高速数据交换接口的数据缓存器及其数据缓存控制方法

文档序号:6752229阅读:218来源:国知局
专利名称:高速数据交换接口的数据缓存器及其数据缓存控制方法
技术领域
本发明属于数据通信技术领域,涉及数据缓存,特别是一种用于高速交换 接口的数据缓存器及其数据缓存控制方法,用于网络处理器与链路层设备的数据交 换。
背景技术
随着网络通信技术的发展,互联网的数据流量呈现几何级数的增长,网络带宽 从几年前的2Gbps已增长到现在的40Gbps,这对交换机和路由器数据处理能力的要 求越来越高,另外,为适应不同的工作环境和网络服务质量QoS的要求,还要求网 络交换设备具备更加灵活的可编程性和可扩展性,因此网络处理器由于兼具高灵活 性和高性能己经逐渐代替了传统的通用处理器和专用集成电路而广泛应用于网络交 换设备中。
图1为典型的网络处理器结构图,图1中的数据交换接口完成网络数据包的接 收和发送功能,在网络处理器转发数据包的过程中,数据包的接收和发送占据了大 量的时间,因此合理的设计数据交换接口部件可以有效的提高网络处理器的性能。 数据交换接口在包处理引擎和网络处理器外部的OSI低层次设备之间传递数据包。 一方面,包处理引擎通常工作在较高的频率以处理大量的数据包,而外部设备通常 以较低的频率运行;另一方面,网络数据包具有突发性的特点,所以数据交换接口 的一个重要的功能就是异步时钟域之间的数据缓冲。
目前用于异步时钟域数据接口的缓冲方法,主要是基于异步FIFO技术。异步 FIFO是采用双端口 RAM,读写时钟分别位于不同的时钟域,按照先入先出的顺序 写入和读出数据。在面向网络数据包的缓冲时,异步FIFO结构存在以下缺陷.
1. FIFO缓冲器的数据存取严格按照先入先出的顺序,数据必须按照写入的顺 序被读出,而网络处理器通常采用多个并行处理核心或线程处理多个端口的数据包 转发,这种严格的顺序要求限制了并行处理系统面向多端口处理的灵活性;
2. FIFO的存储状态是半透明的,外界只能通过空满标志或者半满半空等信号 来获得FIFO的棊本存储状态,且这些标志的产生需要很复杂的逻辑电路,诸如格雷码转换、地址比较运算等。
3.网络处理器对网络数据包的处理通常以块传输的方式进行,比如执行一次接 收需要接收64字节的网络数据,这种块传输能够适应IP数据包的特点,而FIFO 的存取单位与RAM的数据宽度相同, 一个数据存储单元只能是32位或64位这种 较小的长度,不利于支持块传输。

发明内容
本发明的目的在于针对传统的基于异步FIFO缓冲器的数据缓存在用于网络 处理器数据交换接口时存在的不足,提供一种高速数据交换接口的数据缓存器及其 数据缓存控制方法,以使得数据在缓存中的写入和读取具有较高的灵活性,更加适 用于多线程多处理器并行处理的要求和更好的支持多端口的数据交换,且在无需复 杂的空满标志产生逻辑的条件下实现存储状态的全透明,同时适应IP数据包的结构 特点和满足块传输的要求。
为实现上述目的,本发明提供的高速接口数据缓存器,包括数据存储单元、
缓存读写控制单元、位宽转换单元,控制和状态寄存器单元,该缓存读写控制单元 与控制和状态寄存器单元双向连接,并向数据存储单元提供控制信号,该数据存储
单元的数据写入和读出通过位宽转换单元后连接到外部数据总线,其中
数据存储单元,采用两块位宽为64比特的双端口静态随机存储器SRAM构 成,两块SRAM存储器分别作为接收缓存器和发送缓存器;
位宽转换单元,包括第一位宽转换模块,位于发送缓存器的数据写入端口, 用于将数据由内部总线的32位位宽转换为发送缓存器的64位位宽;第二位宽转换 模块,位于发送缓存器的数据读出端口,用于将数据由发送缓存器的64位位宽转换 为外部数据总线位宽;第三位宽转换模块,位于接收缓存器的数据读出端口,用于 将数据由接收缓存器的64位位宽转换为内部总线的32位位宽;第四位宽转换模块, 位于接收缓存器的数据写入端口,用于将数据由外部数据总线位宽转换为接收缓存 器的64位位宽。.
控制状态寄存器单元,包括发送标志状态寄存器、接收控制寄存器和接收 状态寄存器,该发送标志状态寄存器用于存储发送缓存器各个单元的数据有效标志, 该接收控制寄存器用于接受包处理引擎的写接收缓存器指令,产生接收数据的控制 信息,该接收状态寄存器用于保存数据接收的状态信息。
所述的每块SRAM存储器均进行单元划分,每个单元具有80字节的存储
6空间;每个单元的存储空间中有64字节用来存放常规的网络数据包,另外16字节 用来存放控制信息、状态信息和扩展数据。为实现上述目的,本发明提供的高速接口数据缓存控制方法,包括如下步骤a. 接收控制寄存器获得包处理引擎发出的数据接收控制信息,接收缓存写控 制模块在该控制信息的控制下从外部数据总线接收数据并存入接收缓存器,并将 接收信息写入接收状态寄存器;b. 包处理引擎读取接收状态寄存器,根据读取的信息发出读接收缓存器指 令,接收缓存读控制模块得到指令后将数据从接收缓存器读出并发送给包处理引 擎sc. 包处理引擎对接收到的数据进行査找表匹配、包头改写的处理,读取发送 标志状态寄存器用以查找空闲的发送缓存器单元,之后向发送缓存器写控制模块 发出写发送缓存器指令,发送缓存器写控制模块将包处理引擎的发送控制信息和待发送数据写入发送缓存器,并更新发送标志状态寄存器;d. 发送缓存读控制模块根据其自增指针的位置,在指针所指发送缓存器单元 数据有效的情况下,按照发送缓存器单元中发送控制信息字段的要求将数据发送 到外部数据总线,并更新发送标志状态寄存器。本发明具有以下优点1) 本发明由于将SRAM存储器构造成单元的形式,每个单元的数据量与网络处理器执行一次块传输的数据量相匹配,同时也与IP数据包的64字节最小长度相 匹配,另外每个单元还能够存储扩展数据和控制信息,增加了数据传输的灵活性;2) 本发明由于设置缓存器中单元的数量远小于SRAM存储器的地址数量,因 而能够为每个单元设置一个标志位,进一步使得数据缓存器的存储状态对于包处理 引擎完全透明,无需异步FIFO的空满标志产生逻辑就提供更详细的缓存器存储状 态;3) 本发明由于采用除发送缓存器的读取采用自增指针外,写发送缓存器、读接 收缓存器和写接收缓存器操作均是通过显式的给定单元号来执行,因而在并行处理 器处理多端口数据的环境下,大大增加了数据交换的灵活性;4) 本发明由于采用在发送缓存器单元的IO个字节存储空间中,除8个字节的 常规数据和l个字节的扩展数据外,还有l个空闲字节,将其加以有效利用,用来 存储发送控制信息,避免在使用控制寄存器在异步时钟域传送信息时产生的亚稳态问题,且省略了一组控制寄存器,进而省略了一段指令改写寄存器的延迟,不但提 高了电路可靠性,而且提高了数据发送效率。5)本发明由于采用位宽转换装置,使得该缓存实现方案能够支持多种位宽的总 线数据传输,为网络处理器支持多种外部设备提供了保障。


图1为典型的网络处理器结构图;图2为本发明的数据缓存器框图;图3为本发明的数据缓存器结构示意4为本发明的缓存器单元划分结构示意图;图5为本发明的数据缓存控制过程图。
具体实施方式
参照图2和图3,本发明的数据缓存器主要由数据存储单元、缓存读写控制单元、位宽转换单元,控制状态寄存器单元组成。其中所述的数据存储单元,由SRAM存储器构成,SRAM读写位宽为64位,有效 地址数量为320,寻址空间为0x000到0xl3F,需要9位的地址总线,实现20Kb的 有效存储容量。对SRAM存储器进行单元划分,将320个有效地址抽象划分为32 个单元,每单元可存储10个四字,即80字节的数据,对于发送缓存器和接收缓存 器,单元内容略有不同,图4给出了发送和接收缓存器中单元的划分结构。对于发 送缓存器,每个单元的第一个四字为发送控制信息字段,该字段的内容指示发送缓 存读控制模块如何发送本单元的数据,其具体含义第63位表示是否跳过本单元而 准备发送下一单元;57-62位用来声明发送目标设备号;54-56位用来声明有效的四 字64位数,即指示发送缓存读控制模块产生几组读地址;53位用来声明是否有扩 展数据需要发送;50-52位用来声明最后一个有效四字中的有效字节数;49位为包 结束标志位,如果该位置位则说明这一单元的数据位于一个数据包的结尾部分,48 位为包起始标志;0-46位为保留位。发送控制信息字段之后是8个四字的常规数据 字段,最后一个四字作为扩展数据字段,用于在特殊情况下发送一个额外的四字数 据。对于接收缓存器,由于无需在单元起始位置保留控制信息字段,所以单元中的 存储顺序是8个常规数据字段和1个扩展数据字段,最后一个四字的空间用来存放 状态信息,用于接收特定的接收源设备提供的状态信息。以包处理引擎的角度看, 接收和发送缓存器是一个含有32个数据单元的存储器,所有的指令操作都是基于单8元的操作,所有的数据传输都是基于单元的块传输,缓存读写控制单元接受这些基 于单元的指令,实现由单元操作到具体的读写操作的过渡。所述的缓存读写控制单元由发送缓存写控制、发送缓存读控制、接收缓存写控 制和接收缓存读控制四个模块组成。该发送缓存写控制模块,工作在网络处理器核 心频率时钟频率下,接受包处理引擎的写发送缓存器指令,写发送缓存器指令中包 含了发送缓存器的目标单元号和有效四字数量,发送缓存写控制模块将目标单元号 译码,产生正确的地址,再由计数逻辑控制地址产生的数量,同时置位发送缓存器 的写使能信号,使待发送数据按顺序写入发送缓存器。由于内部数据总线位宽为32 位,所以位宽转换装置需要两个时钟周期将两组32位的数据转换位64位,因而每 个写地址的保持时间为两个时钟周期。完成单元写入后,发送缓存写控制模块将已 写单元号发送给发送标志状态寄存器使对应单元的标志位置位。该发送缓存读控制 模块,工作在网络处理器外部数据总线时钟频率下,该模块无需接受指令控制,而 是拥有一个自增的循环指针指向发送缓存器单元。当指针指向一个新的单元时,译 码器自动将单元号译码,生成该单元发送控制信息字段的读地址,发送控制信息被 读出并存入一组内部寄存器。单元指针同时也被输出到发送标志状态寄存器,进而 可以从发送标志状态寄存器读取当前指针单元的数据有效状态,如果状态为有效, 则发送缓存读控制模块启动数据发送,关闭内部寄存器的写使能开关,使得发送控 制信息被锁存,控制后续读地址的产生,发送控制信息同时也控制接口逻辑单元产 生正确的外部设备选通信号,实现数据发送。单元数据发送完毕后,向发送标志状 态寄存器发出清零信号,则当前指针指向的单元标志位被清零,之后指针加一,开 始新一轮的发送过程。该接收缓存写控制模块,工作在网络处理器外部数据总线时 钟频率下,由接收控制寄存器控制,接收控制寄存器提供了接收缓存器单元号与接 收四字数量等信息,接收缓存写控制模块根据接收控制寄存器产生接收缓存的写地 址和写使能信号。在单元写入完毕后,接收缓存写控制模块将接收状态信息写入接 收状态寄存器,其内容将在后面详述。该接收缓存读控制模块,工作在网络处理器 核心频率下,接受包处理引擎的读接收缓存器指令,读接收缓存器指令中包含了接 收缓存器的源单元号和有效四字数量,接收缓存读控制模块将单元号译码,产生正 确的地址,再由计数逻辑控制地址产生的数量,使接收数据按顺序送入内部数据总 线。由于内部数据总线位宽为32位,所以位宽转换装置需要两个周期可以将两组 32位的数据转换为64位,因而每个写地址的保持时间为两个时钟周期。所述的控制与状态寄存器由发送标志状态寄存器、接收控制寄存器和接收状态 寄存器组成。该发送标志状态寄存器有效位32位,分别对应了发送缓存器的32个 数据单元,该寄存器的功能主要有接受发送缓存写控制模块的置位信号,该信号 由5位地址线和1位选通线组成,置位时选通线产生一个周期的正脉冲,使被地址 线选定的寄存器标志位置位;接受发送缓存读控制模块的指针信号,输出指针指向 的寄存器标志位的值;接受发送缓存读控制模块的清零信号,使指针所指的标志位 清零。该接收控制寄存器有效位7位,由包处理引擎直接改写,其中0-4位为接收 缓存器单元号,第5位声明是否接收扩展数据,第6位声明是否接收状态信息。该 寄存器在被读取后清空,等待下一次控制信息的写入。该接收状态寄存器有效位为 18位,由接收缓存写控制模块改写,其中0-4位为接收缓存器单元号,5-7位为有 效四字数量,第8位声明是否有扩展数据,第9位声明是否有状态信息,10-15位 为接收源设备号,16位为数据包起始标志,17位为数据包结束标志。该寄存器的作 用是向包处理引擎提交数据接收状态,所以需要被包处理引擎读取,由于接收缓存 写控制模块在每次接收完成后都会无条件更新该寄存器,所以包处理引擎必须按照 一定的周期定时的读取接收状态寄存器才能保证没有信息丢失,寄存器在被读取之 后清空。
所述的位宽转换单元,由第一位宽转换模块、第二位宽转换模块、第三位宽转 换模块和第四位宽转换模块组成,该第一位宽转换模块位于发送缓存器的数据写入 端口,提供32位数据转64位的功能,花费两个周期将内部总线的两个32位数据串 联组成64位数据,送入发送缓存器;该第二位宽转换模块位于发送缓存器的数据读 出端口,在外部设备的数据总线位宽为32位时,该转换器实现64位数据转32位的 功能,从发送缓存器读取的数据在转换器中暂存两个时钟周期,分两次以32位的位 宽发送到外部数据总线,高位在先,低位在后。在外部设备的数据总线位宽位64 位时,该转换器不执行转换功能,仅相当于一级寄存器;该第三位宽转换模块位于 接收缓存器的数据写入端口,在外部设备的数据总线位宽为32位时,该转换器实现 32位数据转64位的功能,外部数据总线的数据分两次组合成64位的数据后送入接 收缓存器。在外部设备的数据总线位宽为64位时,该转换器不执行转换功能,仅相 当于一级寄存器;该第四位宽转换模块位于接收缓存器的数据读出端口,提供64 位数据转32位的功能,将1组64位数据分两个时钟周期按照高位在前低位在后的 顺序送入内部数据总线。
10参照图5,本发明的数据缓存控制包括如下过程
过程1,当接收缓存写控制模块处于空闲时,数据缓存器处于接收就绪状态, 随时执行新的数据接收;
过程2,包处理引擎查看内部寄存器中保存的接收缓存器存储状态,选择空闲 的接收缓存器单元,向接收控制寄存器中写入接收控制信息。接收缓存写控制模块 检测接收控制寄存器中是否有新的接收控制信息,若是接收控制寄存器的所有位均 为零,则没有控制信息,若不为零,就表示接收控制寄存器收到了新的写接收缓存 器指令,接收缓存写控制模块读取控制信息,准备执行数据接收;
过程3,接收缓存写控制模块按照接收控制寄存器中的控制信息开始数据接收, 首先在将控制信息读回后清空接收控制寄存器,之后根据接收控制信息中的单元号 执行译码,产生对应单元的数据字段地址,并置位接收缓存器的写使能信号,产生 的地址个数根据接收控制寄存器中的信息确定。在完成这一单元的数据写入后,接 收缓存写控制模块将本次接收的情况写入接收状态寄存器,至此,接收缓存写控制 模块完成一次完整操作,进入接收就绪状态等待下一次接收;
过程4,包处理引擎每隔一定的周期就检查接收状态寄存器,如果发现接收状 态寄存器非零,就表示有新的数据已被放在接收缓存器中等待读取,则包处理引擎
将接收状态寄存器中的状态信息取回,之后清空该寄存器;
.过程5,包处理引擎根据读回的接收状态信息发出读接收缓存器指令,指令加 载到接收缓存读控制模块,接收缓存读控制模块解析指令内容,产生连续的接收缓 存器读地址,将数据读入内部数据总线,发送给包处理引擎。包处理引擎收到数据 后更新其保存接收缓存器存储状态的内部寄存器;
过程6,数据包在包处理引擎中经过査找表匹配和包头改写处理,成为能够进 行发送的数据包;
过程7,已准备好待发送数据后,包处理引擎查看发送标志状态寄存器以获取 发送缓存器的数据存储情况,选择空闲的发送缓存器单元,向发送缓存写控制模块 发出写发送缓存器指令;
过程8,发送缓存写控制模块接收写发送缓存器指令,将指令中的发送缓存器 单元号译码,产生正确数量的写地址,同时置位发送缓存器的写使能信号,将待发 送数据从内部总线传送到发送缓存器,在完成单元数据写入后将发送标志状态寄存 器中的对应标志位置位;过程9,发送缓存读控制模块根据单元指针译码出所在单元的发送控制信息字 段地址,读取发送控制信息;
过程10,发送缓存读控制模块检查发送标志状态寄存器中指针所指位的数据有 效标志,如果标志位有效,则将发送控制信息锁存到内部寄存器,关闭内部寄存器 写使能,准备数据发送,如果标志位无效,则等待该标志位变为有效;
过程11,发送缓存读控制模块根据读到内部寄存器中的发送控制信息产生连续 的发送缓存器读地址,使数据被发送到外部数据总线;
过程12, 一个单元的数据发送完毕后,发送缓存读控制模块将发送标志状态寄 存器中指针所指标志位清零,之后将指针加一,指向下一个发送缓存器单元,重复 以上过程。
1权利要求
1.一种高速接口数据缓存器,包括数据存储单元、缓存读写控制单元、位宽转换单元,控制和状态寄存器单元,该缓存读写控制单元与控制和状态寄存器单元双向连接,并向数据存储单元提供控制信号,该数据存储单元的数据写入和读出通过位宽转换单元后连接到外部数据总线,其特征在于数据存储单元,采用两块位宽为64比特的双端口静态随机存储器SRAM构成,两块SRAM存储器分别作为接收缓存器和发送缓存器;缓存读写控制单元,包含发送缓存写控制模块、发送缓存读控制模块、接收缓存写控制模块和接收缓存读控制模块,该发送缓存读控制模块中设有一个递增读指针指向发送缓存单元;位宽转换单元,包括第一位宽转换模块,它位于发送缓存器的数据写入端口,用于将数据由内部总线的32位位宽转换为发送缓存器的64位位宽;第二位宽转换模块,它位于发送缓存器的数据读出端口,用于将数据由发送缓存器的64位位宽转换为外部数据总线位宽;第三位宽转换模块,它位于接收缓存器的数据读出端口,用于将数据由接收缓存器的64位位宽转换为内部总线的32位位宽;第四位宽转换模块,它位于接收缓存器的数据写入端口,用于将数据由外部数据总线位宽转换为接收缓存器的64位位宽;控制状态寄存器单元,包括发送标志状态寄存器、接收控制寄存器和接收状态寄存器,该发送标志状态寄存器用于存储发送缓存器各个单元的数据有效标志,该接收控制寄存器用于接受包处理引擎的写接收缓存器指令,产生接收数据的控制信息,该接收状态寄存器用于保存数据接收的状态信息。
2. 根据权利要求1所述的数据缓存器,其特征在于每块SRAM存储器均 进行单元划分,每个单元具有80字节的存储空间。
3. 根据权利要求2所述的数据存储单元,其特征在于每个单元的存储空间 中有64字节用来存放常规的网络数据包,另外16字节用来存放控制信息、状 态信息和扩展数据。
4. 根据权利要求1所述的数据缓存器,其特征在于第二位宽转换模块和第 四位宽转换模块根据外部数据总线位宽设置不同的转换位宽,用以支持32位 和64位的外部数据总线。
5. —种高速接口数据缓存控制方法,包含如下过程a. 接收控制寄存器获得包处理引擎发出的数据接收控制信息,接收缓存写 控制模块在该控制信息的控制下从外部数据总线接收数据并存入接收缓存器, 并将接收信息写入接收状态寄存器;b. 包处理引擎读取接收状态寄存器,根据读取的信息发出读接收缓存器指 令,接收缓存读控制模块得到指令后将数据从接收缓存器读出并发送给包处理 引擎;c. 包处理引擎对接收到的数据进行査找表匹配、包头改写的处理,读取发 送标志状态寄存器用以査找空闲的发送缓存器单元,之后向发送缓存器写控制 模块发出写发送缓存器指令,发送缓存器写控制模块将包处理引擎的发送控制 信息和待发送数据写入发送缓存器,并更新发送标志状态寄存器;d. 发送缓存器读控制模块根据其自增指针的位置,在指针所指发送缓存器 单元数据有效的情况下,按照发送缓存器单元中发送控制信息字段的要求将数 据发送到外部数据总线,并更新发送标志状态寄存器。
6. 根据权利要求5所述的数据缓存控制方法,其特征在于包处理引擎所发 出的缓存器读写指令均是面向缓存器单元的块传输操作,缓存读写控制单元执 行块传输指令时,对数据存储单元的控制是基于SRAM存储器位宽的操作, 且包处理引擎定时的读取接收状态寄存器,以避免数据接收信息的丢失。
7. 根据权利要求5所述的数据缓存控制方法,其特征在于接收缓存器的存 储状态由包处理引擎的内部寄存器保持,包处理引擎在每次发出写接收缓存器 和读接收缓存器指令后更新该存储状态。
8. 根据权利要求5所述的数据缓存控制方法,其特征在于发送缓存器的存 储状态由发送标志状态寄存器保持,发送缓存写控制模块在完成一个数据单元 的写入后将发送标志状态寄存器中的对应标志位置位,发送缓存读控制在完成 一个数据单元的读出后将发送标志状态寄存器中的对应标志位清零。
9. 根据权利要求5所述的数据缓存控制方法,其特征在于包处理引擎对于 发送缓存读控制模块的控制,是把控制信息写入发送缓存每个单元的控制信息 字段,通过该控制信息字段控制发送缓存读控制模块读取本单元的数据,节省 一组控制寄存器的使用。
10. 根据权利要求5所述的数据缓存控制方法,其特征在于发送缓存器的读地址根据读指针产生,在准备发送时,读地址指向读指针所指单元的控制信息字段,发送缓存读控制模块获取发送控制信息,同时査看发送标志状态寄存器对应单元的数据有效标志,如果数据有效,则执行该单元的数据发送,发送完毕后将对应的有效标志清空并将读指针加一;如果不存在有效数据,发送缓存读控制模块将处于等待状态直到有效标志的出现。
全文摘要
本发明公开了一种高速接口数据缓存器及其数据缓存控制方法,该数据缓存器包括用于在异步时钟域间缓冲数据的数据存储单元、用于控制数据存储单元的读写操作的缓存读写控制单元、用于与缓存读写控制单元交换控制和状态信息的控制状态寄存器和用于在数据存储单元位宽和总线位宽不相同时进行位宽转换的位宽转换单元。该数据缓存控制过程是包处理引擎采用面向单元的方式向缓存读写控制单元发送读写指令;采用发送标志状态寄存器保存缓存器存储状态;用缓存器数据本身来控制数据发送;使用自增指针来实现有序的数据发送。本发明具有控制灵活性强和数据传输效率高的优点,用于网络处理器与数据链路层设备的多端口高速数据交换。
文档编号G11C11/41GK101667451SQ200910023890
公开日2010年3月10日 申请日期2009年9月11日 优先权日2009年9月11日
发明者宇 刘, 史江义, 康 李, 跃 郝, 马佩军 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1