外部存储器sdram读写处理方法

文档序号:6584230阅读:440来源:国知局
专利名称:外部存储器sdram读写处理方法
技术领域
本发明涉及电数字数据处理,尤其涉及一种外部存储器SDRAM读写处理方法。
背景技术
在对以太网包或者IP包这种带有包头包尾以及错误标志的数据包进行存储转发时,必须使用大容量的外部存储器,一般常用的大容量外部存储器包括外部存储器SDRAM以及SSRAM,其中SDRAM因为价格较低而应用范围相当大,但是存在着控制复杂、读写开销较大的缺点,从而影响SDRAM的读写带宽。
目前,利用SDRAM进行存储控制涉及到对SDRAM的读写仲裁问题,存在于利用SDRAM对以太网包进行存储转发中,对SDRAM分成两个部分用来存储数据正常包数据以及数据包长度等状态数据,将SDRAM划分为两个数据区进行操作带来的最直接问题就是需要管理两套指针正常包数据区的读/写指针和状态数据区读/写指针,在进行读写操作时比较复杂。
在进行正常包数据的读写时,将数据放入正常包数据区;在写操作中,当包头信号wr_sop出现时将对当前包进行计数,然后进行写操作的突发,当包尾信号wr_eop出现时,当前包计数结束,接着将当前包的长度打包成状态数据放入状态数据区;在读操作中,首先判断是否是上一个包的结束,如果是的话将给出包头rd_sop,然后从状态数据区中取出该包的长度信息进行减法计数,如果正在读取的数据是当前包的中间数据,则继续进行读操作的突发,当当前包计数器计数到0时,给出包尾信号Rd_eop,因此对SDRAM进行读写仲裁需要多个附加状态,其详细的SDRAM读写控制流程图如图1所示。
从上面的流程图可以看出,对SDRAM进行一次读写仲裁需要遍历多个状态,从而导致读写周期太常,因此不可避免SDRAM读写带宽的利用率低下。

发明内容
本发明的目的在于提供一种提高SDRAM的读写带宽利用率的外部存储器SDRAM读写处理方法。
本发明所采用的方法为这种外部存储器SDRAM读写处理方法,其特征在于A、在外部存储器的前端FIFO中进行如下处理在以太网传送过来的数据包头信号SOP到来之后就进行包计数,当计数到包尾信号之后,停止包长计数,然后将数据包长度加上状态标志后作为状态数据放入该包包头信号SOP前面的单元;同时写指针加一,预留一个单元作为下一个数据包的状态数据空间;B、在外部存储器读写仲裁中,根据数据包的状态数据进行读写仲裁,在进行外部存储器的写操作时,只进行突发写操作;在进行读操作时,直接从外部存储器进行突发读操作;所述的步骤B中,在对外部存储器SDRAM进行写操作时,向前端FIFO发出写允许信号,前端FIFO根据写允许信号送出写数据,外部存储器SDRAM控制器将接收到的写数据按照突发方式写入;当外部存储器SDRAM控制器处于读状态时,向外部存储器SDRAM发出读命令和读地址,外部存储器SDRAM将向控制器按照突发方式顺序送出数据;
所述的外部存储器SDRAM中状态数据和数据包统一存放,在进行读、写操作时只需一套指针;所述的状态标志包括数据有效信号及其延迟项信号、数据包的包尾信号及其延迟项信号等;所述的前端FIFO对数据包的处理中,采用如下控制结构If(wr_vld||(wr_vld_dly && wr_eop_dly))waddr_d+1;上式中,信号wr_vld表示数据有效信号;wr_vld_dly表示数据有效信号延时一个时钟周期的信号;wr_eop_dly表示数据包的包尾信号延时一个时钟周期的信号;waddr_d表示写入外部存储器前端FIFO的数据地址;该式表示,如果当前数据都是有效数据的话,前端FIFO地址加1;如果到了数据包的包尾后,且数据有效信号延时一个时钟周期的信号有效,仍然进行加1操作,预留一个地址;所述的外部存储器读写仲裁中,采用如下控制结构waddr=(wr_eop_dly && wr_vld_dly)waddr_statewaddr_d上式中,waddr是对外部存储器前端FIFO的实际操作地址;waddr_state表示状态数据的状态字节地址;waddr_d是写入外部存储器前端FIFO的数据地址;该式表示,如果数据包的包尾信号延时一个时钟周期的信号wr_eop_dly为1且数据有效信号延时一个时钟周期的信号wr_vld_dly信号同时为1,那么就操作状态字节的地址;否则就操作数据地址。
本发明的有益效果为本专利提出了一种简化外部存储器SDRAM控制和读写开销的方法,将包的状态信息编码后写入外部存储器SDRAM中,从而在对外部存储器SDRAM进行读写仲裁时节约了读写之间的额外开销周期与操作周期,简化外部存储器SDRAM控制仲裁模块的状态转换,从而简化读写控制,节省了带宽,实现了比较简单的状态转换,外部存储器SDRAM不分区处理,在进行读、写操作时只需一套指针等,有效提高了外部存储器SDRAM的读写带宽利用率。


图1为现有SDRAM读写仲裁流程示意图;图2为本发明模块示意图;图3为本发明SDRAM读写流程示意图;图4为SDRAM前端FIFO数据存储方式;图5为前端FIFO对包尾信号的处理时序。
具体实施例方式
下面根据附图和实施例对本发明作进一步详细说明根据图2、图3、图4和图5所示,本发明在外部存储器的前端FIFO中进行如下处理如图2和图4所示,在以太网传送过来的数据包头信号SOP到来之后就进行包计数,当计数到包尾信号之后,停止包长计数,然后将数据包长度加上状态标志后作为状态数据放入该包包头信号SOP前面的单元;同时写指针加一,预留一个单元作为下一个数据包的状态数据空间,其在FIFO中的数据顺序如图4所示;在外部存储器读写仲裁中,根据数据包的状态数据进行读写仲裁,在进行外部存储器的写操作时,只进行突发写操作;在进行读操作时,直接从外部存储器进行突发读操作。
如图3所示,本发明对外部存储器SDRAM的读写仲裁大大简化,首先,外部存储器SDRAM中状态数据和数据包统一存放,不用进行分区处理,因此在进行读/写操作时只需管理一套指针;其次,在进行SDRAM的写操作时,无须考虑写到包尾时的处理,只需进行突发写操作;在进行读操作时,不用从状态数据区读取包长数据,直接从SDRAM进行突发读操作即可。
由于在外部存储器SDRAM控制器的前端FIFO中进行了状态和数据的统一、有序存放,因此在对外部存储器SDRAM进行写操作时,只需向前端FIFO发出写允许信号,前端FIFO根据写允许信号送出写数据,外部存储器SDRAM控制器将接收到的写数据按照突发方式写入外部存储器SDRAM,这样就避免原来方案中需要对包长进行计数操作并分区对外部存储器的进行写操作;同理,当SDRAM控制器处于读状态时,只需向外部存储器发出读命令和读地址,外部存储器将向SDRAM控制器送出数据,读操作也是按照突发方式顺序进行的,这样也简化了现有技术中需要判断当前包的状态从而在数据区和状态区中进行操作切换。
状态标志包括数据有效信号及其延迟项信号、数据包的包尾信号及其延迟项信号等,前端FIFO对数据包的处理中,采用如下控制结构If(wr_vld||(wr_vld_dly && wr_eop_dly))waddr_d+1;上式中,信号wr_vld表示数据有效信号;wr_vld_dly表示数据有效信号延时一个时钟周期的信号;wr_eop_dly表示数据包的包尾信号延时一个时钟周期的信号;waddr_d表示写入外部存储器前端FIFO的数据地址;该式表示,如果当前数据都是有效数据的话,前端FIFO地址加1;如果到了数据包的包尾后,且数据有效信号延时一个时钟周期的信号有效,仍然进行加1操作,预留一个地址;在外部存储器读写仲裁中,采用如下控制结构waddr=(wr_eop_dly && wr_vld_dly)waddr_statewaddr_d
上式中,waddr是对外部存储器前端FIFO的实际操作地址;waddr_state表示状态数据的状态字节地址;waddr_d是写入外部存储器前端FIFO的数据地址;该式表示,如果数据包的包尾信号延时一个时钟周期的信号wr_eop_dly为1且数据有效信号延时一个时钟周期的信号wr_vld_dly信号同时为1,那么就操作状态字节的地址;否则就操作数据地址,前端FIFO对包尾信号的处理时序如图5所示,各信号的代表的含义为CLK50表示时钟信号;wr_data、wr_sop、wr_eop分别表示写入前端FIFO的数据信号、包头、包尾信号;waddr_st、waddr_d、waddr分别表示应写入FIFO的状态字节地址、数据字节地址、实际操作的地址;pkg_st表示状态字节;wren表示写信号;wdata表示写入FIFO的数据。
权利要求
1.一种外部存储器SDRAM读写处理方法,其特征在于A、在外部存储器的前端FIFO中进行如下处理在以太网传送过来的数据包头信号SOP到来之后就进行包计数,当计数到包尾信号之后,停止包长计数,然后将数据包长度加上状态标志后作为状态数据放入该包包头信号SOP前面的单元;同时写指针加一,预留一个单元作为下一个数据包的状态数据空间;B、在外部存储器读写仲裁中,根据数据包的状态数据进行读写仲裁,在进行外部存储器的写操作时,只进行突发写操作;在进行读操作时,直接从外部存储器进行突发读操作。
2.根据权利要求1所述的外部存储器SDRAM读写处理方法,其特征在于所述的步骤B中,在对外部存储器SDRAM进行写操作时,向前端FIFO发出写允许信号,前端FIFO根据写允许信号送出写数据,外部存储器SDRAM控制器将接收到的写数据按照突发方式写入;当外部存储器SDRAM控制器处于读状态时,向外部存储器SDRAM发出读命令和读地址,外部存储器SDRAM将向控制器按照突发方式顺序送出数据。
3.根据权利要求1或2所述的外部存储器SDRAM读写处理方法,其特征在于所述的外部存储器SDRAM中状态数据和数据包统一存放,在进行读、写操作时只需一套指针。
4.根据权利要求1所述的外部存储器SDRAM读写处理方法,其特征在于所述的状态标志包括数据有效信号及其延迟项信号、数据包的包尾信号及其延迟项信号等。
5.根据权利要求1或2所述的外部存储器SDRAM读写处理方法,其特征在于所述的前端FIFO对数据包的处理中,采用如下控制结构If(wr_vld||(wr_vld_dly && wr_eop_dly))waddr_d+1;上式中,信号wr_vld表示数据有效信号;wr_vld_dly表示数据有效信号延时一个时钟周期的信号;wr_eop_dly表示数据包的包尾信号延时一个时钟周期的信号;waddr_d表示写入外部存储器前端FIFO的数据地址;该式表示,如果当前数据都是有效数据的话,前端FIFO地址加1;如果到了数据包的包尾后,且数据有效信号延时一个时钟周期的信号有效,仍然进行加1操作,预留一个地址。
6.根据权利要求1或2所述的外部存储器SDRAM读写处理方法,其特征在于所述的外部存储器SDRAM读写仲裁中,采用如下控制结构waddr=(wr_eop_dly && wr_vld_dly)waddr_statewaddr_d上式中,waddr是对外部存储器前端FIFO的实际操作地址;waddr_state表示状态数据的状态字节地址;waddr_d是写入外部存储器前端FIFO的数据地址;该式表示,如果数据包的包尾信号延时一个时钟周期的信号wr_eop_dly为1且数据有效信号延时一个时钟周期的信号wr_vld_dly信号同时为1,那么就操作状态字节的地址;否则就操作数据地址。
全文摘要
一种涉及电数字数据处理的外部存储器SDRAM读写处理方法,其特征在于在外部存储器的前端FIFO中进行如下处理在以太网传送过来的数据包头信号SOP到来之后就进行包计数,当计数到包尾信号之后,停止包长计数,然后将数据包长度加上状态标志后作为状态数据放入该包包头信号SOP前面的单元;同时写指针加一,预留一个单元作为下一个数据包的状态数据空间;在外部存储器读写仲裁中,根据数据包的状态数据进行读写仲裁,在进行外部存储器的写操作时,只进行突发写操作;在进行读操作时,直接从外部存储器进行突发读操作,本发明简化控读写制,节省了带宽,实现了比较简单的状态转换,有效提高了SDRAM的读写带宽利用率。
文档编号G06F12/06GK1470996SQ0212679
公开日2004年1月28日 申请日期2002年7月23日 优先权日2002年7月23日
发明者陈文 , 徐春, 陈 文 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1