新闻中心

EEPW首页>嵌入式系统>设计应用> 星载交换机高性能队列管理器的设计与实现

星载交换机高性能队列管理器的设计与实现

作者: 时间:2013-02-19 来源:网络 收藏

3器工作方法

当系统复位后,器对地址空间进行初始化,将可用的地址指针写入到地址空间。信元存储空间分为两部分,一部分为共享存储空间,另一部分为K个针对每个端口固定分配的信元空间,以确保每个端口都有可用的存储空间。当一个信元到达时,如果固定分配的空间和共享空间剩余容量之和不能满足该信元时,则拒绝该信元。器只需要知道到达信元的输出端口和优先级,就可以确定其进入哪个逻辑队列。信元的写入和读出采用状态机进行控制。

当有新的信元(n,k)到达时,其中n为优先级,1≤n≤N;k为输出端口,1≤k≤K。信元写入控制流程如图4所示。最后根据wr_addr,将信元写入缓冲区。如果发生队列挤占,则被挤占的逻辑队列需要被更新,如果仅有一个信元,则header和tailer都被置0;反之,用前一个信元的地址来更新tailer。写入信元的逻辑队列需要被更新:如果该逻辑队列没有信元,则header和tailer都被置为wr_addr;反之,将tailer的内容记录在pre_addr的第wr_addr个地址中,将wr_addr记录在nxt_addr的第tailer个地址中,tailer的内容被更新为wr_addr。

当有信元读出时,各输出端口采用轮询的方式,信元读出控制流程如图5所示。读出信元的逻辑队列需要被更新:如果仅有一个信元,则header和tailer都被置0;反之,用下一个信元的地址来更新header,tailer不变。

4仿真结果

采用XilinxVertex-5FPGA,开发环境是Xilinx集成开发环境ISE13.1,电路核心模块用VerilogHDL编程,仿真工具采用ModelSimSE。星载有16个输出端口,信元有4个优先级,PFIFOk为256,SFIFO为4096。仿真验证结果表明电路功能符合要求。

4.1寄存器读写指针时序仿真

由仿真时序图6可以看出,初始状态时,PFIFO0、PFIFO2、…、PFIFO15和SFIFO都为空,队列管理器将空闲指针依次写入PFIFO0、PFIFO2、…、PFIFO15中,当它们都为满时,最后写入SFIFO中。

由仿真时序图7可以看出,队列管理器首先从PFIFO0中读出可用指针,当其为空时,就从SFIFO中读出,然后依次从PFIFO0、PFIFO2、…、PFIFO15中读出可用指针。当它们都为空时,则从SFIFO中读出,直到no_ptr=1,说明地址空间无可用指针。

4.2信元的读写时序仿真

由仿真时序图8可以看出,队列管理器根据信头中的输出端口和优先级,依次将信元写入信元存储器,信元存储器形成64个逻辑队列,然后在调度器的控制下,依次将信元从相应的逻辑队列中读出。

在卫星通信中,业务种类繁多且突发性强,用户对服务质量(QoS)要求较高,而卫星网络拓扑结构变化快,传播时延大,这就要求星载具有较小的交换时延和丢包率。本文了一种队列管理器,通过硬件仿真验证,其基本能够满足星载的各种性能指标要求,本队列管理器采用动态扩展的设计方式,灵活度较大,但也存在许多不足之处,如组播信元的处理考虑不足、可能存在队头阻塞问题及IP包的管理问题,有可能由于一个信元的丢失导致整个IP包无法接受,这些都是今后进一步的研究工作。

交换机相关文章:交换机工作原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭