多队列FIFO——支持网络QoS的重要芯片
列,用锁定有效信号Waden/Raden的高电平指定新的写/读子队列,写/读使能是Wen/Ren。
多队列FIFO写操作相比写队列地址的切换存在延后效应,即写总线上的数据送入新的子队列是发生在锁定新子队列地址后的第二个写时钟周期。如果能够利用此时序特征,提前两个周期锁定新的子队列地址,则可以做到100%使用写总线周期。
当子队列满指示FF有效时,新的数据无法写入该队列,会发生数据丢失。一般为了避免这种情况,都要配置好PAF偏移值,在看到PAFn~拉低有效后,停止写入操作。图5给出不间断写操作时序图。
图5
2.3读操作
与写操作类似的读操作也存在相对读队列地址的延后效应,即在新队列地址锁定后的第三个读时钟周期,读总线上呈现的数据转变为新子队列内的数据。所以若能够提前三个周期锁定新队列,则可以做到100%读总线利用率。
当选定队列状态为空时,读端口上呈现全高电平。配置好PAE偏移值后,通过查看PAEn~便可以得知队列的空或非空状态,并提前做好读或切换新队列的动作。图6给出不间断读操作时序图。
图6
3多队列FIFO的应用
多队列FIFO可满足设备实现服务质量、信息包优先级和多数据流汇集/分开的要求。例如,根据信息包客户定制优先次序,进入系统的数据可被分配到多个队列之一,每个队列都代表不同的服务等级。处理器根据一定的运算法则首先处理优先级高的信息包,以确保整个网络的服务水平。笔者就使用了多队列FIFO在骨干路由器交换网络中实现了多优先级调度,具体例子如图7所示。
划分服务等级通常依据分组的类型,对延迟敏感型分组给予高优先级。区别于传统的先到先服务(FCFS),有区分的服务可以提供一定的网络服务质量,图8是一个具体的例子。如果不应用多队列FIFO,势必要使用SRAM模拟多队列,不得不增加许多复杂的控制逻辑,消耗处理器的资源;或者是采用多个独立的存储器件对不同类型分组进行排队,既增加了实际制板(PCB)的难度,而且可扩展性差。
另外,在不断电连续运行的情况下,FPGA可控制在不同时段改变多队列FIFO配置,以适应不同的应用需要。比如,要适配不同类型数据,暂存时可将其串行配置成相应多个子队列;而只做同一类型数据缓有时可以将其配置成单队列使用。故多队列FIFO应用灵活性高,前景好。
《多队列FIFO——支持网络QoS的重要芯片(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/171998.html
多队列FIFO写操作相比写队列地址的切换存在延后效应,即写总线上的数据送入新的子队列是发生在锁定新子队列地址后的第二个写时钟周期。如果能够利用此时序特征,提前两个周期锁定新的子队列地址,则可以做到100%使用写总线周期。
当子队列满指示FF有效时,新的数据无法写入该队列,会发生数据丢失。一般为了避免这种情况,都要配置好PAF偏移值,在看到PAFn~拉低有效后,停止写入操作。图5给出不间断写操作时序图。
图5
2.3读操作
与写操作类似的读操作也存在相对读队列地址的延后效应,即在新队列地址锁定后的第三个读时钟周期,读总线上呈现的数据转变为新子队列内的数据。所以若能够提前三个周期锁定新队列,则可以做到100%读总线利用率。
当选定队列状态为空时,读端口上呈现全高电平。配置好PAE偏移值后,通过查看PAEn~便可以得知队列的空或非空状态,并提前做好读或切换新队列的动作。图6给出不间断读操作时序图。
图6
3多队列FIFO的应用
多队列FIFO可满足设备实现服务质量、信息包优先级和多数据流汇集/分开的要求。例如,根据信息包客户定制优先次序,进入系统的数据可被分配到多个队列之一,每个队列都代表不同的服务等级。处理器根据一定的运算法则首先处理优先级高的信息包,以确保整个网络的服务水平。笔者就使用了多队列FIFO在骨干路由器交换网络中实现了多优先级调度,具体例子如图7所示。
划分服务等级通常依据分组的类型,对延迟敏感型分组给予高优先级。区别于传统的先到先服务(FCFS),有区分的服务可以提供一定的网络服务质量,图8是一个具体的例子。如果不应用多队列FIFO,势必要使用SRAM模拟多队列,不得不增加许多复杂的控制逻辑,消耗处理器的资源;或者是采用多个独立的存储器件对不同类型分组进行排队,既增加了实际制板(PCB)的难度,而且可扩展性差。
另外,在不断电连续运行的情况下,FPGA可控制在不同时段改变多队列FIFO配置,以适应不同的应用需要。比如,要适配不同类型数据,暂存时可将其串行配置成相应多个子队列;而只做同一类型数据缓有时可以将其配置成单队列使用。故多队列FIFO应用灵活性高,前景好。
《多队列FIFO——支持网络QoS的重要芯片(第2页)》