静态存储器接口装置及其数据传输方法

文档序号:6560638阅读:478来源:国知局
专利名称:静态存储器接口装置及其数据传输方法
技术领域
本发明涉及电子技术领域中的数字ASIC(专用集成电路)设计与SOC(System-On-Chip,片上系统)领域,尤其涉及一种静态存储器接口装置及其数据传输方法。
背景技术
AHB总线(Advanced High-performance bus,先进高性能总线)是AMBA(Advanced Microcontroller Bus Architecture,先进微处理器总线架构)规范中的一种高效的基于流水线架构的总线,用于连接高性能系统模块。它支持single(单个数据传送)方式及burst(突发数据传送)方式,AHB总线的所有时序都以单一时钟的周期为基准。
在大规模集成电路中为了利用SRAM(Static Random AccessMemory,静态存储器)可以被高速访问的特点,往往会在芯片内部集成静态存储器。但是对静态存储器的访问通常只支持单个数据访问方式,不支持突发数据访问方式。因此类似AHB的流水线总线若仅以单个数据访问方式对静态存储器进行操作,会降低总线的访问效率,影响系统的整体性能。这种总线利用率低的现象在片内总线访问片外静态存储器时也同样存在。
现有技术中一种访问静态存储器的方法为采用AHB的单个数据访问方式访问静态存储器。在该方法中,静态存储器的写时序示意图如图1所示,在进行写操作时,写使能、片选、写地址、写数据对齐,数据在一个时钟内写入相应地址;静态存储器的读时序示意图如图2所示,在进行读操作时,读使能、片选、读地址对齐,相应地址的数据延迟一个时钟周期后送出,因此SRAM接口延迟一个时钟周期后才能读到正确数据。
上述现有技术的访问静态存储器的方法的缺点为1、该方法降低了读操作的性能。
在该方法中,在single方式下IMI(internal memory interface,内部存储器接口)模块向SRAM模块写数据的时序示意图如图3所示,其中共发生了5次写操作,有1次为无效写操作。haddr分别发出了地址A1至A5,在地址的下一周期hwdata分别发出数据D1-D5,地址A经过锁存与数据D一起输出至IMI接口的imi_addr和imi_hwdata,hreadyout信号在imi_hwdata数据写周期为高,hresp此时为有效。第五次写操作时,hsize不符合要求产生错误,wren信号无效,hreadyout拉低一个时钟周期,hresp变为Error持续两周期。
single方式下IMI模块从SRAM模块中读数据的时序示意图如图4所示,其中共发生了5次读操作,有1次为无效读操作。haddr的A1地址发出后,直通到imi_addr,imi_rdata经过2拍后给出D1。D1直通到hrdata,hreadyout在imi_addr的A1有效的下一个时钟周期被拉低,直到imi_rdata的D1有效被置高,图4中hreadyout等待了一个时钟周期。hreadyout有效时haddr发生变化,A2地址发出至静态存储器的SRAM,重复读过程。imi_rden是组合逻辑,在hwrite为低、hready和hsel(hready和hsel为AHB总线送过来的信号,图4中没有表达出来)都为高时,给出高电平。由于读操作处于single模式下,每次读命令发出后hreadyout均要延迟一个时钟周期,等待数据从静态存储器的SRAM中读出。A5地址读操作时,由于给出了IMI不支持的字节操作,因此imi_rden无效,读出数据无效(图4中的×所示部分),hresp回应2周期的error。
因此可见,在该方法中,对于读SRAM操作而言,single方式在每次读操作时,都会产生一个周期的等待时间;对于写操作而言,没有这方面的影响。当系统发生频繁读SRAM的内容操作的时候,AHB总线将会多花费一倍的时间用于等待数据从SRAM中读出,严重影响了系统性能。
2、对于某些特定的模块如基带处理模块等,往往是寄存器堆与静态存储器统一编址,静态存储器的数据位宽在生产时就已经固定,但是寄存器堆的数据位宽要求可动态配置,例如一个接口既要能够进行16位访问,又要能够进行32位访问,对于32位数据的访问,既要能单独访问32位的高16位,又要能单独访问低16位。这样,单一的静态存储器接口就不能满足这种需求。

发明内容
本发明的目的是提供一种静态存储器接口装置及其数据传输方法,从而可以在静态存储器接口装置内部计算出当前静态存储器的访问地址,实现流水线架构的总线以突发数据传送方式访问静态存储器。
本发明的目的是通过以下技术方案实现的一种静态存储器接口装置,流水线架构的总线通过该静态存储器接口装置与静态存储器进行数据交互,所述的静态存储器接口装置具体包括控制逻辑模块监控流水线架构的总线的读写状态并进行判断处理,产生流水线架构的总线与静态存储器进行交互所需要的读写控制信号,并将产生的读写控制信号传递给地址译码模块;地址译码模块根据流水线架构的总线的地址状态和控制逻辑模块传递过来的读写控制信号,产生与静态存储器进行交互的数据流的地址信号。
所述的静态存储器接口装置还包括字节选择模块根据地址译码模块产生的地址信号和与静态存储器进行交互的数据流的总字节数据位宽输出字节选择标志给静态存储器。
所述的数据流的总字节数据位宽为8位或16位或32位或64位或128位。
所述的静态存储器接口装置还包括读写使能模块和数据传输模块,
读写使能模块根据控制逻辑模块传递过来的读写控制信号,产生流水线架构的总线与静态存储器进行交互的读使能信号或写使能信号,将该读使能信号或写使能信号传递给静态存储器与数据传输模块;数据传输模块根据读写使能模块传递过来的读使能信号,从静态存储器输出数据到流水线架构的总线;或者,根据读写使能模块传递过来的写使能信号,从流水线架构的总线输出数据到静态存储器。
所述的静态存储器接口装置还包括响应反馈模块根据控制逻辑模块产生并传递过来的冲突控制信号,向流水线架构的总线反馈相应的冲突信号,使流水线架构的总线不执行当前周期的读操作;根据控制逻辑模块产生并传递过来的错误控制信号,向流水线架构的总线反馈相应的错误信号。
所述的控制逻辑模块包括传送类型错误判别模块当流水线架构的总线发送完一个写操作后,在紧接着的下一个时钟周期发送一个读操作时,向响应反馈模块发送冲突控制信号;和/或,当流水线架构的总线发生传输错误时,向响应反馈模块发送错误控制信号。
所述的地址译码模块计算模块,根据流水线架构的总线传递过来的首地址和控制逻辑模块传递过来的读写控制信号,利用地址计数器、地址加法器,计算出与静态存储器进行交互的数据流的当前地址并输出给静态存储器;或者传送模块,直接将流水线架构总线传递过来的首地址输出至静态存储器。
所述的静态存储器接口装置适用于突发数据传送方式或单个数据传送方式。
所述的静态存储器接口装置挂接在流水线架构的总线上或嵌入到静态存储器内部。
所述的流水线架构的总线为先进高性能AHB总线或先进可扩展接口AXI总线或AHB总线的子集。
所述的控制逻辑子模块和所述的响应反馈子模块组成总线状态机,所述的地址译码子模块和所述的读写使能子模块组成地址和读写控制状态机。
一种静态存储器接口装置的数据传输方法,包括静态存储器接口装置监控流水线架构的总线的读写状态和地址状态产生相应的地址信号;根据所述地址信号所述流水线架构的总线按照设定数据传送方式与静态存储器进行数据交互。
所述方法具体包括当AHB总线以突发数据传送方式与所述静态存储器进行数据交互时,AHB总线发送的读首地址的数据接收比读地址发送晚两个时钟周期,以后,AHB总线发送的读数据接收比读地址发送晚一个时钟周期;AHB总线发送的写数据比写地址晚一个时钟周期。
所述方法还包括当在AHB总线上发送完一个写操作后,在紧接着的下一个时钟周期发送一个读操作时,将AHB总线设置为繁忙状态,将响应反馈模块向AHB总线输出的任务完成hreadyout信号置位一个时钟周期,该时钟周期内读写使能模块产生的读使能信号无效,在该时钟周期结束后,将AHB总线和hreadyout信号设置为正常状态。
由上述本发明提供的技术方案可以看出,本发明设计了一种多功能静态存储器接口装置,在多功能静态存储器接口装置内部通过地址自增机制计算出当前静态存储器的访问地址,实现了AHB等流水线架构的总线以突发数据传送方式访问静态存储器。和现有技术相比,具有如下优点1、静态存储器接口读数据接收比读地址发送(及读控制信号)晚两个时钟周期;写数据与写地址同拍发送,静态存储器接口的写地址比AHB接口的写地址晚一个时钟周期发送。在burst方式下,读首地址的数据接收比读地址发送(及读控制信号)晚两个时钟周期,以后均连续读出;写数据比写地址晚一个时钟周期;这样减少了burst读操作时,流水线架构总线(如AHB总线)访问静态存储器的读等待时间,提高总线访问效率。
2、对读写转换作了专门处理,可以消除写后读带来的一个额外时钟周期的等待,提高了流水线架构总线(如AHB总线)对于静态存储器的访问效率。
3、在静态存储器接口装置的输出信号中增加了字节选择信号,从而使该静态存储器接口装置可以同时支持多数据位访问,支持用户自定义的数据访问,使静态存储器接口装置的适应面更广。
4、作为一个IP单元的设计,本发明的地址线和数据线都可以按需要配置或扩展,可以外接多种类型的静态存储器,静态存器可以位于芯片内部,可以位于芯片外部。


图1为现有技术中同步SRAM的写时序示意图;图2为现有技术中同步SRAM的读时序示意图;图3为现有技术中single方式下IMI模块接口的写操作时序示意图;图4为现有技术中single方式下IMI模块接口的读操作时序示意图;图5为应用了本发明所述静态存储器接口装置的系统结构示意图;图6为本发明所述静态存储器接口装置的实施例的接口示意图;图7为本发明所述静态存储器接口装置的实施例的结构示意图;图8为本发明所述静态存储器接口装置的内部读写交替时序示意图;图9为本发明所述静态存储器接口装置的连接交替读写时序示意图;
图10为在burst方式下本发明所述静态存储器接口装置向静态存储器写入数据的时序示意图;图11为无地址计数器时burst方式下本发明所述静态存储器接口装置的从静态存储器读出数据时的时序示意图;图12为有地址计数器时burst方式下本发明所述静态存储器接口装置从静态存储器读出数据时的时序示意图;图13为在burst方式下本发明所述静态存储器接口装置内部的一个写时序示意图;图14为在burst方式下本发明所述静态存储器接口装置内部的一个读时序示意图。
具体实施例方式
本发明提供了一种静态存储器接口装置及其数据传输方法,本发明的核心为在多功能静态存储器接口装置内部根据流水线架构的总线的地址状态和相应的读写控制信号计算出当前静态存储器的访问地址。
下面结合附图来详细描述本发明,本方法所述静态存储器接口装置具有多种功能,应用了本发明所述静态存储器接口装置的系统的典型结构如图5所示。该多功能静态存储器接口装置可以和ARM处理器、其它设备(比如设备0、设备1和设备2)一起挂接在系统的AHB总线上,再与SRAM与寄存器堆相连。AHB总线通过该多功能静态存储器接口装置来访问SRAM与寄存器堆。在实际应用中,上述AHB总线可以用AXI(先进可扩展接口)总线或AHB总线的任何子集,如AHB Lite总线来代替。
本发明所述静态存储器接口装置的实施例的接口示意图如图6所示。AHB Slave总线接口信号与AHB总线相连,用于AHB总线对该静态存储器接口装置进行读写访问,SRAM与寄存器堆接口信号用于该模块访问SRAM或者寄存器堆。Imi_addr信号是地址信号,Imi_rdata信号和Imi_wdata信号分别是读数据信号和写数据信号,Imi_rden信号和Imi_wren信号分别是读使能信号和写使能信号,Imi_hwls信号是字节选择信号,用于选择读写数据中的有效字节,Imi_hwls信号对于固定数据位宽的静态存储器无效。
本发明所述静态存储器接口装置的实施例的结构如图7所示,具体包括控制逻辑模块、地址译码模块、字节选择模块、读写使能模块、响应反馈模块和数据传输模块,下面分别介绍上述各个模块的功能。
1、控制逻辑模块。
控制逻辑模块包括传送类型错误判别模块、总线监控逻辑模块、比较器等模块。在AHB总线通过上述静态存储器接口装置与静态存储器进行数据交互时,控制逻辑模块主要监控AHB总线的读写状态,通过burst结束比较器进行判断处理,产生AHB总线与静态存储器进行交互所需要的读写控制信号,并将产生的数据流控制信号传递给地址译码模块。控制逻辑模块还根据AHB总线当前周期和上一个周期的读写状态,产生冲突控制信号,并传递给响应反馈模块。控制逻辑模块还产生错误控制信号,并传递给响应反馈模块。
传送类型错误判别模块当AHB总线发生读写冲突时,即当AHB总线发送完一个写操作后,在紧接着的下一个时钟周期发送一个读操作时,将所述AHB总线设置为繁忙状态,并设置相应的读使能信号为无效,向响应反馈模块发送冲突控制信号;当读写冲突结束后,设置相应的读使能信号为有效;当AHB总线发生传输错误时,向响应反馈模块发送错误控制信号。错误控制信号产生的条件为,AHB总线发出了上述静态存储器接口装置不支持的突发传送类型和不支持的数据位宽。
在上述图7所示的静态存储器接口装置中,控制逻辑模块的具体处理过程如下
本发明所述静态存储器接口装置的内部读写交替时序图如图8所示。首先,控制逻辑模块中的总线监控逻辑模块判断AHB总线的当前周期是否开始进行一次新的有效读写操作,若符合读写传送条件,则new_read或new_write有效。若符合传输类型出错条件,则error有效。
在上述new_read或new_write有效的同时,总线监控逻辑模块同时产生读起始信号read_start,表示当前AHB为burst读起始地址操作(或者single读操作)。如果上一个周期为写操作(write_busy有效),而紧接着这一周期为读操作,则这一周期发生了读写冲突,读写同时read_during_write信号被置位,任务完成hreadyout信号需要等一个时钟周期,读起始信号read_start信号无效;等到下一周期read_during_write无效,而读接着写read_after_write信号有效时,才能将imi_rden置位,此时read_start变为有效。
Burst读写标志控制逻辑产生burst状态标志burst_proc、读burst状态标志burst_rdproc、写burst状态标志burst_wrproc。由于single方式可以看成burst方式对首地址的操作,因此single方式也被当成一种特殊的burst操作进行处理。Burst结束比较器产生burst结束标志burst_end,用以控制burst操作是否结束。Burst结束条件为burst计数器burst_cnt等于计数器满值标志burst_cntmax。
本发明所述静态存储器接口装置的连接交替读写的时序示意图如图9所示。A1至A2、A4至A5皆为静态存储器接口装置写到读的时序切换。由于写操作时,写数据要延迟一拍给出,此时静态存储器接口的地址及控制信号属于写操作所有,因此hreadyout信号在下一周期发出一拍无效(由于hreadyout为寄存器输出,所以只能在下一周期才给出无效信号),表明此时总线忙,正在进行上一拍的写操作,紧接着的第二个数据的读操作须延迟一拍,最后导致imi_rden延迟一拍。
A2至A3为静态存储器接口装置读到写的时序切换。由于读时序中从imi_addr地址发出至静态存储器接口,到数据自静态存储器接口读出本身有两拍的延迟,因此hreadyout在imi_rden有效后继续拉低一拍,以留出时间从静态存储器读取数据。此时AHB总线保持A3的地址和控制信号不变,待到hreadyout再次为高时将D3写入,并读取A4。A4为写操作,A5、A6为读操作,工作原理同A1、A2、A3。
2、地址译码模块。
地址译码模块主要根据控制逻辑子模块传递过来的读写控制信号,通过地址预取机制和地址自增功能产生与静态存储器进行交互的数据流的地址信号并传递给静态存储器。地址预取机制的过程为,当产生一个读起始信号read_start后,MUX将总线上的地址直接输出,以节省一个时钟周期。地址自增机制的过程为,每当产一个新的读写信号时(即new_read/new_write信号有效),总线上的地址被载入到起始地址寄存器start_addr。地址计数器根据流水线架构的总线传递过来的首地址和控制逻辑模块传递过来的数据流控制信号,计算出当前操作地址的偏移量burst_cnt;地址加法器将起始地址start_addr和地址偏移量burst_cnt相加,得到与静态存储器进行交互的数据流的当前地址并传输给静态存储器。地址译码模块还将产生的地址信号传递给字节选择模块。
在上述图7所示的静态存储器接口装置中,地址译码模块的地址预取机制和地址自增功能的具体处理过程如下地址预取机制为满足最大计数条件(hsize=WORD,burst次数为16;hsize=INCR,INCR表示不规定长度的数据。,burst次数最大与地址界限相同,为1K),burst计数器burst_cnt应为一个10位宽的计数器。当new_write或read_during_write有效时,burst计数器清零(read_during_write有效即读写冲突时,读操作地址应该提前一个时钟周期载入,以便当read_after_write有效时输出前一个时钟周期的读地址A2,而不是当前AHB总线的地址,此时haddr已经改变成下一个时钟周期的地址A3了)。当new_read有效时载入读操作初值,hsize为WORD时为2,hsize为HWORD时为1。burst_cnt在WORD时计数累进值为2,在HWORD时计数累进值为1,htrans为BUSY时不计数。
由于静态存储器接口装置的读操作会延迟两个时钟周期,因此读起始信号read_start有效时,直接将haddr地址发出,以减少一个时钟周期等待周期;当进行写burst第二拍操作,或者写操作时才将burst_addr发出。burst_addr在时钟边沿改变,因此写操作时的burst_addr总是为总线上延迟一个时钟周期的地址。也正因为要提早一个时钟周期进行读操作,burst_cnt在读burst第一个时钟周期时载入值应为1或2,以在第二拍时直接将1或2输出。
地址自增机制起始地址产生逻辑产生burst操作的起始地址start_addr,在new_read或new_write有效时从AHB载入地址haddr,其余时候保持不变。地址加法器将burst_cnt与起始地址start_addr的低位相加,得到当前burst操作访问内存的地址burst_addr。为了保证地址不越出1K范围,以及满足WRAP操作要求,burst_cnt左移一位后与start_addr的加法规则如下hburst=xx1,低10相加(INCR,范围1K)hburst=000,single方式,burst_cnt始终为0hburst=010,低4位相加(WRAP4,范围4*HSIZE/8)hburst=100,低5位相加(WRAP8,范围8*HSIZE/8)hburst=110,低6位相加(WRAP16,范围16*HSIZE/8)为了提高效率,burst方式时,在模块内增加地址计数器,根据hburst信号进行累进计数或循环计数。在首地址给出时需要根据haddr、hburst信号和hsize信号来判断其合法性。
在burst方式下本发明所述静态存储器接口装置向静态存储器写入数据的时序示意图如图10所示。该模式与single方式操作类似,这是因为写操作无需额外的等待周期,地址计数器的作用没有发挥。
无地址计数器时burst方式下静态存储器接口装置从静态存储器读出数据时的时序示意图如图11所示。burst读操作时,由于地址需要由AHB总线给出,尽管imi_rden已经在第2和5个时钟提前有效以读取数据,但是此时hreadyout还是必须要插入1个等待周期,以等待A3地址到来,并读数D1和D3。burst次数越多,插入的等待周期也多(第8个周期也将插入等待周期)。这样每读取两次数据,中间就会有一个等待周期,操作时间=burst次数*1.5+1。而single方式下,每读取一次数据,就会有一个等待周期,操作时间=burst次数*2+1。
有地址计数器时burst方式下静态存储器接口装置从静态存储器读出数据时的时序示意图如图12所示。由于读地址由静态存储器接口装置内部产生,因此hreadyout只需要在读数D1时插入等待周期,其它时间均能连续读数据,这样burst次数越多,效率也就越高。操作周期=burst次数+2。静态存储器接口装置采用此种方式。当burst次数为16时,原IMI模块操作周期为33,无地址计数器的静态存储器接口装置操作周期为25,有地址计数器的IMI模块静态存储器接口装置操作周期为18,比原来提高83.3%。现有IMI模块、不含Burst计数器的静态存储器接口装置和含有Burst计数器的静态存储器接口装置读Burst操作效率比较如表1所示。
表1IMI模块读Burst操作效率比较


3、字节选择模块。
字节选择模块根据地址译码模块产生的地址信号和与静态存储器进行交互的数据流的总字节数据位宽输出字节选择标志给静态存储器,该字节选择标志用以确定所述数据流的有效字节。所述的数据流的总字节数据位宽为8位或16位或32位或64位或128位。
在上述图7所示的静态存储器接口装置中,字节选择模块的具体处理过程如下字节选择逻辑根据hsize和imi_addr输出字节选择标志imi_hwls,用于标志当前读写操作的数据中哪些字节是有效的。imi_hwls与读写使能信号同相位,信号定义可根据具体应用要求有所改变。例如,如果IMI仅要求支持16位或32位,imi_hwls可以按如下规则定义1、hsize为WORD时(表示数据为32位)imi_hwls[1:0]输出为11;2、hsize为HWORD时(表示数据为16位)当系统为小端模式时如果总线上的地址信号第1位imi_addr[1]=1,则imi_hwls[1:0]输出为10(表示数据总线上的内容为上半字有效);如果总线上的地址信号第1位imi_addr[1]=0,则imi_hwls[1:0]输出为01(表示数据总线上的内容为下半字有效);当系统为大端模式时
如果总线上的地址信号第1位imi_addr[1]=1时,则imi_hwls[1:0]=01(表示数据总线上的内容为下半字有效);如果总线上的地址信号第1位imi_addr[1]=0时,则imi_hwls[1:0]=10(表示数据总线上的内容为上半字有效);3、hsize为其他值时imi_hwls[1:0]输出00(表示数据总线上的内容一直为无效)。
对于8位,64位,或者更高数据位宽如128位,可以仿照上述例子做出不同的规定,但基本原理都一样,采用相关信号表示一个读写数据中哪一个或几个字节是有效的。
4、读写使能模块。
读写使能模块主要根据控制逻辑模块产生的读写控制信号,产生访问静态存储器的读使能信号或写使能信号,将该读使能信号或写使能信号传递给静态存储器和数据传输模块。
在上述图7所示的静态存储器接口装置中,读写使能模块的具体处理过程如下写使能在AHB发出写信号后延迟一个时钟周期产生,与hwdata对齐,在burst过程中一直保持有效,且当htrans为BUSY时写使能无效(延迟给出)。
读使能与写使能产生不同,在burst读开始,即new_read有效时读使能应立即产生,在读burst过程中一直保持有效。每当产生一次new_read,hreadyout信号就要拉低一个时钟周期,以保证静态存储器接口装置的双周期响应。需要注意的是,当read_during_wirte有效时,读写冲突,读使能imi_rden无效,要等到read_after_write有效时,读使能才能有效。
5、响应反馈模块。
响应反馈模块根据传送类型错误判别模块传递过来的冲突控制信号,向流水线架构的总线反馈相应的冲突信号,使流水线架构的总线不执行当前周期的读操作;根据传送类型错误判别模块传递过来的错误控制信号,向流水线架构的总线反馈相应的错误信号。
在上述图7所示的静态存储器接口装置中,响应反馈模块的具体处理过程如下响应反馈模块主要产生hresp和hreadyout信号,该hresp和hreadyout信号应符合AHB协议,并将该hresp和hreadyout信号传递给AHB总线接口。
hreadyout在读起始信号发生时,在下一个时钟周期被拉低,以满足静态存储器接口装置双周期响应条件。因此每当new_read被置位时,hreadyout均被置位,并在下一周期清零。同时,为解决写后读产生的冲突,每当正在进行写操作即imi_wren有效时,如果此时紧接的周期为读操作,那么此时hreadyout信号应被置位,表明模块正忙于处理上一个周期的写操作,当前周期的读操作不能立即执行,以保证地址线不被冲突。可由read_during_write和read_after_write控制,当它们有效时,hreadyout皆为等待状态。
当产生错误时,error标志被置位,此时产生一个双周期的hresp=ERROR响应。error产生条件为发生静态存储器接口装置也不支持的字节操作,可根据实际情况改变,如8位数据操作或64位及其以上数据位宽的操作。
6、数据传输模块。
数据传输模块主要根据读写使能模块传递过来的读使能信号,从静态存储器读出数据并输出到流水线架构的总线;根据读写使能模块传递过来的写使能信号,从流水线架构的总线读出数据并输出到静态存储器。
本发明还提供了一个按照Burst数据传送方式访问上述静态存储器接口装置的实施例。
在burst方式下静态存储器接口装置内部的一个写时序示意图如图13所示。AHB发出一个INCR4的写HWORD信号,控制逻辑检测到有burst写信号产生,在时钟边沿产生一个burst_wrproc,该burst_wrproc表明开始一个写burst操作。起始地址产生逻辑锁存了起始地址4Ch,并在burst_wrproc有效时保持其不变,同时使imi_wren有效,开始向静态存储器接口装置写数据。Burst操作开始时,计数器burst_cnt载入了00,以后按照HWORD规律依次递增。burst_cnt与start_addr相加,依次输出4C、4E、50、52。当计数至06时,产生burst_end信号表示burst结束,因此在下一周期burst_wrproc和imi_wren均为无效。
可见,burst写操作的时序与连续的single写操作时序相同,所有的AHB写数据均延迟一个时钟周期给出,除非总线有额外要求(如图13中在第3拍AHB插入了一个等待周期,延迟一个时钟周期后,imi_wren无效,计数器停止计数)。
在burst方式下静态存储器接口装置内部的一个读时序示意图如图14所示。AHB发出一个WRAP4的读WORD信号。控制逻辑检测到有读信号产生,置burst_start为1,并在时钟边沿产生一个burst_rdproc,该burst_rdproc表明开始一个读burst操作。起始地址产生逻辑锁存了起始地址44h,并在burst_rdproc有效时其不变,同时使imi_rden有效,开始向静态存储器接口装置模块读数据。Burst操作开始的第一个周期时,read_start有效,因此最终输的地址imi_addr为直通的haddr的44,同时计数器burst_cnt载入了04。在burst操作的第二个周期以后,burst_cnt与start_addr相加,依次输出48、4C、40。当计数至0C时,产生burst_end信号表示burst结束,因此在下一周期burst_rdproc和imi_rden均为无效。
可见,在burst读操作方式下,静态存储器接口装置所有的读数据均延迟两个时钟周期给出,除非总线有等待的要求(图14中在第3拍AHB插入了一个等待周期,此时imi_rden无效,计数器停止计数)。第一个时钟周期读完以后,hreadyout置低,AHB等待一个时钟周期,在以后的读过程中就不再等待。
在上述方案中,总线和静态存储器的数据位宽和地址位宽可以根据实际情况扩展或删减数据位宽可包括8位或16位或32位或64位或128位或者任意的非2N的数据位宽,如10位、12位等;地址位宽根据整个系统和静态存储器的容量而定;字节选择信号imi_hwls根据总线数据位宽和静态存储器数据位宽而定。
在上述方案中,本方法所述静态存储器接口装置是作为一个单独的模块挂接在AHB总线上,在实际应用中,可以将该静态存储器接口装置或者该静态存储器接口装置中的主要模块(控制逻辑模块,地址译码模块等)嵌入到其他模块中。
在上述方案中,采用了分离信号完成整个静态存储器接口装置的实现,但是实际上也可以利用状态机来实现本发明所述静态存储器接口装置的核心控制模块。例如,控制逻辑子模块和响应反馈子模块可组成总线状态机、地址译码子模块和读写使能子模块可组成地址和读写控制状态机。状态机的中心思想是用多个状态来表示系统的运行过程,主要的控制状态机可以包含单字节读、单字节写、突发方式读、突发方式写、空闲、数据传送出错等状态;突发方式读可以分为首次读、非首次读、等待等子状态;突发方式写可以分为首次写、非首次写、等待等子状态。用状态机设计控制逻辑也可以达到预期效果。
在上述方案中,所述的静态存储器可以是内部静态存储器或外部静态存储器,也可以是指具有同步静态存储器接口行为的器件或模块,以及它们的组合,如寄存器堆。并且静态存储器的种类包括各种单向单端口、双向单端口、单向双端口和双向双端口等各种类型。
本发明所述静态存储器接口装置的数据传输方法主要包括
静态存储器接口装置监控流水线架构的总线的读写状态和地址状态产生相应的地址信号;根据所述地址信号所述流水线架构的总线按照设定数据传送方式与静态存储器进行数据交互。
上述设定数据传送方式包括突发数据传送方式或单个数据传送方式。
当AHB总线以突发数据传送方式与所述静态存储器进行数据交互时,AHB总线发送的读首地址的数据接收比读地址发送晚两个时钟周期,以后,AHB总线发送的读数据接收比读地址发送晚一个时钟周期;AHB总线发送的写数据比写地址晚一个时钟周期。
当在AHB总线上发送完一个写操作后,在紧接着的下一个时钟周期发送一个读操作时,将AHB总线设置为繁忙状态,将响应反馈模块向AHB总线输出的任务完成hreadyout信号置位一个时钟周期,该时钟周期内读写使能模块产生的读使能信号无效,在该时钟周期结束后,将AHB总线和hreadyout信号设置为正常状态。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种静态存储器接口装置,其特征在于,流水线架构的总线通过该静态存储器接口装置与静态存储器进行数据交互,所述的静态存储器接口装置具体包括控制逻辑模块监控流水线架构的总线的读写状态并进行判断处理,产生流水线架构的总线与静态存储器进行交互所需要的读写控制信号,并将产生的读写控制信号传递给地址译码模块;地址译码模块根据流水线架构的总线的地址状态和控制逻辑模块传递过来的读写控制信号,产生与静态存储器进行交互的数据流的地址信号。
2.根据权利要求1所述的静态存储器接口装置,其特征在于,所述的静态存储器接口装置还包括字节选择模块根据地址译码模块产生的地址信号和与静态存储器进行交互的数据流的总字节数据位宽,输出字节选择标志给静态存储器。
3.根据权利要求2所述的静态存储器接口装置,其特征在于,所述的数据流的总字节数据位宽为8位或16位或32位或64位或128位。
4.根据权利要求1所述的静态存储器接口装置,其特征在于,所述的静态存储器接口装置还包括读写使能模块和数据传输模块,读写使能模块根据控制逻辑模块传递过来的读写控制信号,产生流水线架构的总线与静态存储器进行交互的读使能信号或写使能信号,将该读使能信号或写使能信号传递给静态存储器与数据传输模块;数据传输模块根据读写使能模块传递过来的读使能信号,从静态存储器输出数据到流水线架构的总线;或者,根据读写使能模块传递过来的写使能信号,从流水线架构的总线输出数据到静态存储器。
5.根据权利要求4所述的静态存储器接口装置,其特征在于,所述的静态存储器接口装置还包括响应反馈模块根据控制逻辑模块产生并传递过来的冲突控制信号,向流水线架构的总线反馈相应的冲突信号;根据控制逻辑模块产生并传递过来的错误控制信号,向流水线架构的总线反馈相应的错误信号。
6.根据权利要求5所述的静态存储器接口装置,其特征在于,所述的控制逻辑模块包括传送类型错误判别模块当流水线架构的总线发送完一个写操作后,在紧接着的下一个时钟周期发送一个读操作时,向响应反馈模块发送所述冲突控制信号;和/或,当流水线架构的总线发生传输错误时,向响应反馈模块发送所述错误控制信号。
7.根据权利要求1、2、3、4、5或6所述的静态存储器接口装置,其特征在于,所述的地址译码模块包括计算模块,根据流水线架构的总线传递过来的首地址和控制逻辑模块传递过来的读写控制信号,利用地址计数器、地址加法器,计算出与静态存储器进行交互的数据流的当前地址并输出给静态存储器;或者传送模块,直接将流水线架构总线传递过来的首地址输出至静态存储器。
8.根据权利要求7所述的静态存储器接口装置,其特征在于,所述的静态存储器接口装置挂接在流水线架构的总线上或嵌入到静态存储器内部。
9.根据权利要求5或6所述的静态存储器接口装置,其特征在于,所述的控制逻辑模块和所述的响应反馈模块组成总线状态机,所述的地址译码模块和所述的读写使能模块组成地址和读写控制状态机。
10.一种静态存储器接口装置的数据传输方法,其特征在于,包括静态存储器接口装置监控流水线架构的总线的读写状态和地址状态产生相应的地址信号;根据所述地址信号所述流水线架构的总线按照设定数据传送方式与静态存储器进行数据交互。
11.根据权利要求10所述的方法,其特征在于,所述方法具体包括当AHB总线以突发数据传送方式与所述静态存储器进行数据交互时,AHB总线发送的读首地址的数据接收比读地址发送晚两个时钟周期,以后,AHB总线发送的读数据接收比读地址发送晚一个时钟周期;AHB总线发送的写数据比写地址晚一个时钟周期。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括当在AHB总线上发送完一个写操作后,在紧接着的下一个时钟周期发送一个读操作时,将AHB总线设置为繁忙状态,将响应反馈模块向AHB总线输出的任务完成hreadyout(最好改为中文)信号置位一个时钟周期,该时钟周期内读写使能模块产生的读使能信号无效,在该时钟周期结束后,将AHB总线和hreadyout(最好改为中文)信号设置为正常状态。
全文摘要
本发明提供了一种静态存储器接口装置及其数据传输方法,流水线架构的总线通过该静态存储器接口装置与静态存储器进行数据交互,该静态存储器接口装置主要包括控制逻辑模块和地址译码模块。该方法主要包括静态存储器接口装置监控流水线架构的总线的读写状态和地址状态产生相应的地址信号;根据所述地址信号所述流水线架构的总线按照设定数据传送方式与静态存储器进行数据交互。利用本发明所述装置和方法,从而可以在多功能静态存储器接口装置内部计算出当前静态存储器的访问地址,实现流水线架构的总线以突发数据传送方式访问静态存储器。
文档编号G06F13/38GK1908885SQ20061010978
公开日2007年2月7日 申请日期2006年8月11日 优先权日2006年8月11日
发明者季渊, 刘铁锋, 刘宇, 陈庆 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1