一种用于访问系统芯片外sdram的控制器及其实现方法

文档序号:7165747阅读:377来源:国知局
专利名称:一种用于访问系统芯片外sdram的控制器及其实现方法
技术领域
本发明涉及集成电路(IC)设计领域,尤其涉及一种在基于ARM内核的具有AMBA总线的片上系统(SOC)内访问片外同步动态随机存储器(SDRAM)的控制器,以及其实现方法。
背景技术
在集成电路设计领域,片上系统(SOC,system on a chip)在进入本世纪后得到迅猛发展。片上系统SOC简单地讲是将计算机系统集成到一片芯片上。当该系统需要外接大容量的动态随机存储器DRAM(以SDRAM为例)时,片内的访问接口模块(或称SDRAM controller)的性能就显得尤为重要。从计算机系统角度来看,在计算机系统中的存储子系统是决定整个系统性能的重要一环。当系统中如果有同步动态随机存储器SDRAM的话,为保证系统性能,一般要加高速缓存(cache)对数据进行缓存。一般而言,片上系统SOC也是一个计算机系统,当外接大容量的SDRAM时,同步动态随机存储器控制器(SDRAMcontroller)一方面要将片内CPU的访问命令转换成符合SDRAM访问时序,同时也要考虑性能要满足要求。
关于高速缓存(cache)在计算机系统中的作用在关于现代计算机体系结构教材中都有描述,也可以参见美国加州大学Irvine分校的Preeti RanjanPanda的博士论文《Memory Optimizations and Exploration for EmbeddedSystems》(1998),对此作了专门描述。但在片上系统SOC领域专门对此进行论述的较为少见。
目前,商业上成熟的同步动态随机存储器控制器(SDRAM controller)比如Lattic公司、Xlinx公司以及ARM公司提供的SDRAM controller IP,均不带有高速缓存功能,ARM公司提供的SDRAM controller IP顶多具有写缓冲器(writebuffer)和读缓冲器(read buffer),只具有极为有限的数据缓存功能。
同步动态随机存储器(SDRAM)的优点是容量大,密度高,但是访问周期长,与静态随机存储器(SRAM)相比,访问它需要许多额外的开销(latency),因此在SOC设计中,如果使用现有的同步动态随机存储器控制器SDRAMcontroller,那么在选用CPU内核时,必须具有数据缓冲功能,否则很可能由于同步动态随机存储器SDRAM访问周期过长而导致性能下降,甚至不能正常工作。
本发明人针对SOC系统芯片中存在的上述不足而构思设计,希望通过提高SOC系统芯片对片外SDRAM的访问效率,从而提高整个SOC的系统性能。

发明内容
本发明所要解决的技术问题是提供一种在片上系统(SOC)内设置访问片外同步动态随机存储器的控制器及其实现方法,采用该控制器和方法能够提高整个片上系统(SOC)对片外SDRAM的访问效率,从而提高了整个系统的性能。
为了实现上述目的,本发明提供了一种访问片外同步动态随机存储器的控制器,设置于基于ARM内核的、具有AHB总线的片上系统内,介于所述AHB总线和片外同步动态随机存储器之间,其特点在于,包括一SDRAM访问接口模块,用于与所述外同步动态随机存储器连接,满足同步动态随机存储器SDRAM的访问时序;一高速缓存控制器,用于连接所述AHB总线和所述SDRAM访问接口模块,并对来自片外同步动态随机存储器SDRAM的数据进行预取和缓存。
上述的控制器,其特点在于,所述高速缓存控制器进一步包括存储器控制器、控制器、不命中地址(miss_addr)模块、置换单元;其中,所述存储器控制器,用于与所述所述AHB总线和片外同步动态随机存储器连接,对缓存的数据和相关标志位存放进行控制,以及与所述SDRAM访问接口模块之间的数据传输;所述控制器,用于通过状态机实现对整个高速缓存的访问操作过程进行统筹调度;所述不命中地址模块,用于与所述存储器控制器和控制器连接,在不命中的情况下产生访问所述存储器控制器内高速缓存存储器的地址,以及地址切换信号;所述置换单元,用于在所述控制器控制下产生需要被替换出去的存储体的选择信号,输出给所述存储器控制器。
上述的控制器,其特点在于,所述存储器控制器进一步包括一数据存储器,为高速缓存cache的数据存储区,用于对缓存的数据和相关标志位进行存放;一逻辑电路,用于对所述数据存储器的存储数据进行逻辑控制。
上述的控制器,其特点在于,所述存储器控制器为带4个存储体的存储器结构,所述存储体进一步包括8×16bit的存储块和dirty、tay、tag标志位。
上述的控制器,其特点在于,所述置换单元为一线性反馈转位寄存器LFSR。
上述的控制器,其特点在于,所述SDRAM访问接口模块进一步包括一配置模块,用于完成所述同步动态随机存储器参数配置;一主控模块,又包括与存储器的接口,用于使高速缓存的接口符合标准的SDRAM接口;二个主状态机,包括初始化工作机和正常工作状态机;一组计数器,用于控制各个命令的时序满足接口规范的要求。
上述的控制器,其特点在于,所述的计数器采用同步递减计数的方式,所述计数器的位宽由与其相关的时序参数的最大值决定。
为了更好地实现上述目的,本发明还提供了一种利用该控制器进行数据存取控制的方法,其特点在于在片上系统内,介于所述AHB总线和片外同步动态随机存储器之间,分别设置SDRAM访问接口模块和高速缓存控制器;将所述高速缓存控制器与所述AHB总线连接,负责向所述SDRAM访问接口模块产生片外同步动态随机存储器SDRAM的访问控制信息,所述SDRAM访问接口模块根据所述控制信息来访问片外同步动态随机存储器SDRAM,满足片外同步动态随机存储器SDRAM的时序接口。在该方法中采用了内嵌高速缓存cache来完成SDRAMcontroller的功能。
本发明还有一个目的,是提供一种片上系统芯片,该芯片的片上系统能够克服现有技术中对片外同步动态随机存储器SDRAM访问效率不高,对系统性能有较大制约的缺点。
为了实现上述目的,本发明还提供了一种系统芯片,包括通过AHB总线连接的ARM内核、SDRAM控制器和其他模块,所述SDRAM控制器与片外同步动态随机存储器连接,其特点在于,所述SDRAM控制器进一步包括
一SDRAM访问接口模块,用于与所述外同步动态随机存储器连接,满足同步动态随机存储器SDRAM的访问时序;一高速缓存控制器,用于连接所述AHB总线和所述SDRAM访问接口模块,并对来自片外同步动态随机存储器SDRAM的数据进行预取和缓存。
下面结合附图进一步说明本发明的具体实施例


图1是本发明所示的一种带有SDRAM controller的SOC芯片结构示意图;图2是图1中SDRAM controller的系统结构图;图3是图2中高速缓存控制器模块与SDRAM访问接口模块的接口时序图;图4是本发明所示的一种高速缓存控制器模块组成结构图;图5是本发明所示的一种采用4路组相联变换(4_way set_associativemapping)结构的高速缓存存储器的组织结构图;图6是本发明所用的一种线性反馈转位寄存器LFSR的电路结构图;图7是图5中所示存储器中一个存储体的存储结构图。
具体实施例方式
图1是同步动态随机存储器(SDRAM controller)1在SOC系统芯片10中的位置,它介于AHB总线4和外部SDRAM 20之间,将来自ARM总线4的CPU访问命令转换成符合SDRAM的接口时序。其中,系统芯片10包括通过AHB总线条连接的ARM内核3、其它模块2和同步动态随机存储器(SDRAM controller)1。
图2是同步动态随机存储器(SDRAM controller)的系统结构图。同步动态随机存储器(SDRAM controller)1,作为业界流行的片上总线AMBA(AHB+APB)上的从设备,它用两个相对独立的模块来实现,高速缓存控制器(cachecontroller)11和SDRAM访问接口模块(sdram interface)12,高速缓存控制器(cache controller)11负责与AHB总线4接口,向SDRAM访问接口模块(sdraminterface)12产生SDRAM 20的访问控制信息;SDRAM访问接口模块(sdraminterface)12根据这些访问控制信息来访问片外SDRAM 20,满足片外SDRAM 20的时序接口。
图3是高速缓存控制器(cache controller)11与SDRAM访问接口模块(sdram interface)12的接口时序图。其中该信号说明如下Sdwrdata是将要写到SDRAM 20中的数据;Sdrddata是从SDRAM中读入数据;Wrind为写命令,为高时,将开始一次写burst操作;Rdind为读命令,为高时,将开始一次读burst操作;Datardy为SDRAM访问接口模块12的应答信号,当SDRAM访问接口模块12收到Wrind或Rdind命令后,表明准备就绪,开始读写操作;Sdaddr为高速缓存控制器(cache controller)11送到SDRAM访问接口模块12的地址。
图4是高速缓存控制器(cache controller)11组成结构图。它的内部子模块包括存储器控制器(Memory controller)110主要完成对数据控制器(datamemory)110a的控制,以及与SDRAM访问接口模块12之间的数据传输等。
控制器(Controller)111对高速缓存(cache)的较高层次的控制单元,内有状态机,对整个操作过程进行调度。
置换单元(replacement)113产生需要被替换出去的存储块(block)的选择信号。
不命用地址(addr_miss)模块112在不命中(miss)时产生所需的地址。
图5是存储器控制器(Memory controller)110采用4路组相联变换(4_wayset_associative mapping)时,一个存储体(bank)的存储器(memory)的存储结构图。实际有4个这样的存储体(bank)。存储器控制器(Memorycontroller)110作为高速缓存(cache)的数据存储区,存储了SDRAM 20中的数据,是以存储块(block)为单位进行存储,存储块(block)大小可以根据实际需求来设置,本设计中,存储块(block)大小为8×16bits,也是一个SDRAM的瞬时脉冲(burst)传输。除了存储块(block),还包括相关标志位,标志位包括dirty,tag和valid。Dirty位用来表明在采用write_back方式写入时,该存储块(block)已被改写,但SDRAM 20中并没有更新,因此在替换时,先要把该存储块(block)写入到SDRAM中,如果dirty位为无效值,则不必将该模块写入到SDRAM 20中;Tag随机存储器中存放存储块(block)的高位地址(来自CPU);Valid标志是在判断是否命中时使用,当某存储块(block)被写入时,与Tag随机存储器一起,该valid位置1,否则说明该存储块(block)中还是无效数据(初始值),肯定是不命中的。
图6是LFSR的电路结构图。该电路值需要产生两位伪随机数据,在给定初值后,该电路就在不受干扰的情况下运行,当来自控制器(controller)111的“捕捉”信号有效后,将锁定该电路的输出,该输出被送到存储器控制器(memory controller)110中,选择其中一个存储体(bank)。
在图7中,根据来自处理器(processor)的存储器地址(memory address),取出4组数据(data或称line)的Tag值,该Tag值是数据(data)对应在SDRAM中的高位地址,同时与来自处理器(processor)的高位地址(Tag)比较,则共有4个比较器,如果有一个相同,说明有命中(hit)的情况,否则说明没有命中(miss)。
在图1、图2中,本发明揭示了一种带缓存的同步动态随机存储器的控制器1,包括SDRAM访问接口模块12,其用于满足SDRAM的访问时序,因为SDRAM存储器与静态存储器(SRAM)相比,本身带有比较复杂的控制状态机。在本发明中,除了用SDRAM访问接口模块12实现上述功能外,还包括高速缓存控制器模块11,实现对来自SDRAM的数据进行预取和缓存的新功能。
带缓存的同步动态随机存储器的控制器1在SOC芯片10中的位置参见图1,它介于AHB总线4和外部SDRAM 20之间。带缓存的同步动态随机存储器的控制器1的组成参见图2,该高速缓存控制器(Cache controller)11负责与AHB总线4接口,向SDRAM访问接口模块(sdram interface)12产生SDRAM 20的访问控制信息;SDRAM访问接口模块(sdram interface)12根据这些访问控制信息来访问片外SDRAM 20,满足片外SDRAM 20的时序接口。
在实施过程中,这两个部分是分开独立设计的,两者之间接口比较简单,用预先定义好的接口信号及时序来进行约束,参见图3。其中,一、高速缓存控制器(cache controller)11该高速缓存控制器11,负责向SDRAM访问接口模块(sdram interface)12产生SDRAM 20的访问控制信息,同时也负责与AHB总线4接口。
该高速缓存控制器11的组成结构图,参见图4,其内部子模块进一步包括存储器控制器(Memory controller)110,主要用于完成对数据存储器(data memory)110a的控制,以及与SDRAM访问接口模块(sdram interface)12之间的数据传输等。
控制器(Controller)111,是高速缓存(cache)的较高层次的控制单元,内设置有状态机,对整个操作过程进行调度。
置换单元(replacement)113,用于产生需要被替换出去的存储块(block)的选择信号。
命中地址模块(addr_miss)112,用于在发生不命中(miss)时产生所需的地址。
该存储器控制器(memory controller)110是高速缓存(cache)中最重要的模块。也是高速缓存(cache)的核心所在,缓存的数据以及相关的标志位存放在该存储器控制器110中。
在图5中,该存储器控制器(memory controller)110采用4路组相联变换(4_way set_associative mapping)时,一个存储体(a bank)的存储器的存储结构图,实际有4个这样的存储体(bank)。该存储器控制器(memorycontroller)110作为高速缓存(cache)的数据存储区,不仅存储SDRAM中的数据,还包括相关标志位,标志位包括Tag,Valid和Dirty。该存储器控制器(memory controller)110用单端SRAM(singal port sram)来实现。
高速缓存访问的单元是存储块(block或称line),一个存储块(block)存放一次SDRAM的瞬间脉冲(burst)传输,一个存储体(bank)放多个存储块(block),存储块(block)大小和数量可根据实际需求来确定。
Dirty位用来表明在采用write_back方式写入时,该存储块(block)已被改写,但SDRAM中并没有更新,因此在替换时,先要把该存储块(block)写入到SDRAM中,如果dirty位为无效值,则不必将该模块写入到SDRAM中。
Tag随机存储器中存放存储块(block)的高位地址(来自CPU)。存储体(Bank)中的存储块(block)也是由来自CPU的地址提供而形成的索引(index)。
Valid标志是在判断是否命中时使用,当某存储块(block)被写入时,与Tag存储器一起,该Valid位置1,否则说明该存储块(block)中还是无效数据(初始值),肯定是不命中的。
在图4中,该不命中地址模块(miss_addr)112主要是用来在不命中(miss)的情况下访问存储器控制器(memory controller)110的内部高速缓存存储器(cache memory)的地址,以及地址切换信号。
该不命中地址模块(miss_addr)112也有状态机,该状态机与控制器(controller)111的状态机同步,因为都是针对高速缓存(cache)访问而言,只是输出的结果不同。
在图4中,该控制器(controller)111实现统筹协调高速缓存(cache)的整个访问过程。它是用状态机实现的,因此该控制器(controller)111比较简单,不必画出其结构图。
在图4中,置换单元(replacement unit)113为简化设计,在本发明中将采用随机(radom)的方法来选中需要被替换出去的存储块(block)。用线性反馈转位寄存器LFSR(Linear Feeaback Shift Register,)来产生伪随机数据,用线性反馈转位寄存器LFSR的电路结构图见图6。该用线性反馈转位寄存器LFSR在上电复位后就一直运行,只是在需要的时候将数据作为需要被替换的存储块(block)的存储体(bank)值输出,这是一个比较简单的方法。
二、SDRAM访问接口模块(sdram interface)12SDRAM访问接口模块12包括两个功能模块,即配置模块(sdram_reg),主控制模块(sdram_cmd_seq)。
配置模块主要完成SDRAM的参数配置工作,是一个独立的AHB SLAVE模块,它与AHB的接口遵从AMBA总线AHB读写规范。配置内容包括与SDRAM芯片相关的控制和时序参数;初始化SDRAM的控制寄存器,软件通过向该寄存器写值发布初始化命令初始化外挂SDRAM;自动刷新时间参数。
主控模块(sdram_cmd_seq),主要包括这几个部分与MEMORY的接口;两个主控状态机;时序计数器组。
主控模块(sdram_cmd_seq)的存储器(MEMORY)接口符合标准的SDRAM接口,数据位宽为16bit,也可以根据SDRAM的大小进行扩展。
主控模块(sdram_cmd_seq)有两个主状态机,一个是初始化状态机,一个是正常工作状态机。均采用读写后自动充电方式,存储器(MEMORY)刷新方式也采用定时自动刷新方式。
主控模块(sdram_cmd_seq)另外还包括一组计数器,主要是用于控制各个命令的时序满足接口规范的要求,它们包括Tcd计数器,Trp计数器,Trc计数器,auto-refresh计数器,burst-wr计数器,burst-rd计数器,所有计数器统一采用同步递减计数的方式,计数器的位宽由与其相关的时序参数的最大值决定。
在本发明中,该带缓存的同步动态随机存储器的控制器111的实现方法是基于下列设计原理高速缓存(Cache)的目的是在高速CPU和低速memory之间建立容量小、速度快的存储器(memory),因此CPU在每次读写存储器(memory)时不必都访问外部的慢速存储器(memory)。这是因为,程序执行时的具有空间局部性(spatial locality)和时间局部性(temporal locality)属性。也就是说,在空间上相邻的数据被访问的概率越大;被访问过的数据被再次访问的可能性也很大。比如,如果CPU要读取程序指令(作为数据保存在SDRAM中),高速缓存(cache)将它相邻的一片数据也一并写入到高速缓存(cache)中,这样,在CPU在执行随后的程序时,存储到高速缓存(cache)中的其余数据很有可能被CPU读取,而不需要从外部SDRAM中读取。
高速缓存(cache)设计时要考虑高速缓存(cache)的数据的存储方式、取出(fetching)策略、写入(writing)策略、置换(replacement)策略。
高速缓存(cache)性能的计算公式如下(Access time)=(hit cost)+(miss rate)*(miss penalty)(1)在公式(1)中,不难看出,要提高高速缓存(cache)的性能,只需要减少hit cost,miss rate和miss penalty的数值即可。比如hit cost为1个cycle,miss rate为10%,miss penalty为8个cycle的话,平均访问时间为1+0.1*8=1.8(cycles)这样就大大提高了访问的速度。
高速缓存(cache)的实现策略如下1)高速缓存存储器组织结构(cache memory organization)在本实施例中,采用4路组相联变换(4_way set_associative mapping)结构。如图7所示2)取出方式(fetch mechanism)取出(fetch)有很多种方式,实现起来难易程度不同,本设计按需预取方式,降低实现的复杂程度,也就是在发生不命中的情况下才从SDRAM中取数据。
3)写入方式(write mechanism)
本设计将采用write_back方法以及write_allocate方式。Write_back方法是当CPU要往SDRAM中写入数据时,只是将数据写到高速缓存(cache)中,并不直接写到SDRAM中,只是在它所在的存储块(block)被替换出去的时候,才被真正写入SDRAM,这特别适合对某存储区域反复多次读写以及先写后读的情况,但这种写入方式会导致存储一致性问题,而对于单处理器(singleprocessor)情况,一致性问题可以不予考虑,但会增加标志位和被替换时传输开销。
Write_allocate方式是在出现写不命中(write miss)时,先把该存储块(block)读入高速缓存(cache)中,再在高速缓存(cache)中进行修改。
4)置换策略(replacement policy)从易实现性角度来讲,随时(random)方法将是比较好的选择,用LFSR方法来产生随机数。
在本发明的具体实施例中,带缓存的同步动态随机存储器的控制器实现方法,具体实现步骤包括步骤1,对片上系统的CPU发出读/写操作指令进行判断,当操作指令为读操作时,执行步骤11,当操作指令为写操作指令时,执行步骤21;步骤11,在高速缓存控制器中的状态机的控制下,启动是否命中的判断,如果命中,则将高速缓存控制器中缓存的数据送到AHB总线上,执行过程完毕;如果不命中,将执行步骤12;步骤12,立即启动高速缓存控制器中的一置换单元,选一个高速缓存控制器中的存储体来存放数据;步骤13,对被选中存储体中的存储块,其drity标志位无效/有效进行判断;如果被选中存储体中的存储块,其drity标志位无效,则执行步骤14;如果被选中存储体中的存储块,其drity标志位有效,则执行步骤15;步骤14,直接从同步动态随机存储器SDRAM中取出长度为一个存储块的数据,覆盖到被选中的所述存储块中,并将CPU所需数据送到AHB总线上,过程执行完毕;步骤15,将CPU所需数据送到AHB总线上,过程执行完毕;步骤21,在高速缓存控制器中的状态机的控制下,启动是否命中的判断,如果命中,则将来自AHB总线的数据写入高速缓存控制器中的高速缓存存储器,并将所述高速缓存存储器中相应存储块的drity标志位设置为有效,执行过程完毕;如果不命中,将执行步骤22;步骤22,立即启动高速缓存控制器中的一置换单元,选一个高速缓存控制器中存储体来存放数据;步骤23,对被选中存储体中的存储块,其drity标志位无效/有效进行判断;如果被选中存储体中的存储块,其drity标志位无效,则执行步骤24;如果被选中存储体中的存储块,其drity标志位有效,则执行步骤25;步骤24,直接从SDRAM中取出长度为一个存储块的数据,覆盖到所述存储块中,并将来自AHB总线的数据写入到所述存储块中,并设drity标志位为有效,过程执行完毕;步骤25,先将所述存储块中的数据替换出去,保存到同步动态随机存储器SDRAM中,然后从同步动态随机存储器SDRAM中取出被寻址的地址的内容,长度为一个存储块,写入到高速缓存存储器中,并将来自AHB的数据写入到所述存储块中,并设drity标志位为有效,过程执行完毕。
采用本发明所述的方法和装置,与现有的技术相比,由于采取了cache缓存的技术措施,访问外接SDRAM的效率提高了40%以上,使得在SOC设计时,可提高系统的性能,因此也提高了设计的灵活性。
权利要求
1.一种访问片外同步动态随机存储器的控制器,设置于基于ARM内核的、具有AHB总线的片上系统内,介于所述AHB总线和片外同步动态随机存储器之间,其特征在于,包括一SDRAM访问接口模块,用于与所述外同步动态随机存储器连接,满足同步动态随机存储器SDRAM的访问时序;一高速缓存控制器,用于连接所述AHB总线和所述SDRAM访问接口模块,并对来自片外同步动态随机存储器SDRAM的数据进行预取和缓存。
2.根据权利要求1所述的控制器,其特征在于,所述高速缓存控制器进一步包括存储器控制器、控制器、不命中地址模块、置换单元;其中,所述存储器控制器,用于与所述所述AHB总线和片外同步动态随机存储器连接,对缓存的数据和相关标志位存放进行控制,以及与所述SDRAM访问接口模块之间的数据传输;所述控制器,用于通过状态机实现对整个高速缓存的访问操作过程进行统筹调度;所述不命中地址模块,用于与所述存储器控制器和控制器连接,在不命中的情况下产生访问所述存储器控制器内高速缓存存储器的地址,以及地址切换信号;所述置换单元,用于在所述控制器控制下产生需要被替换出去的存储体的选择信号,输出给所述存储器控制器。
3.根据权利要求2所述的控制器,其特征在于,所述存储器控制器进一步包括一数据存储器,为高速缓存cache的数据存储区,用于对缓存的数据和相关标志位进行存放;一逻辑电路,用于对所述数据存储器的存储数据进行逻辑控制。
4.根据权利要求2或3所述的控制器,其特征在于,所述存储器控制器为带4个存储体的存储器结构,所述存储体进一步包括8×16bit的存储块和dirty、tay、tag标志位。
5.根据权利要求4所述的控制器,其特征在于,所述置换单元为一线性反馈转位寄存器LFSR。
6.根据权利要求1、2、3或5所述的控制器,其特征在于,所述SDRAM访问接口模块进一步包括一配置模块,用于完成所述同步动态随机存储器参数配置;一主控模块,又包括与存储器的接口,用于使高速缓存的接口符合标准的SDRAM接口;二个主状态机,包括初始化工作机和正常工作状态机;一组计数器,用于控制各个命令的时序满足接口规范的要求。
7.根据权利要求6所述的控制器,其特征在于,所述的计数器采用同步递减计数的方式,所述计数器的位宽由与其相关的时序参数的最大值决定。
8.一种利用同步动态随机存储器的控制器进行数据存取控制的方法,其特征在于在片上系统内,介于所述AHB总线和片外同步动态随机存储器之间,分别设置SDRAM访问接口模块和高速缓存控制器;将所述高速缓存控制器与所述AHB总线连接,负责向所述SDRAM访问接口模块产生片外同步动态随机存储器SDRAM的访问控制信息,所述SDRAM访问接口模块根据所述控制信息来访问片外同步动态随机存储器SDRAM,满足片外同步动态随机存储器SDRAM的时序接口。
9.根据权利要求8所述控制器进行数据存取控制的方法,其特征在于进一步包括如下步骤步骤1,对片上系统的CPU发出读/写操作指令进行判断,当操作指令为读操作时,执行步骤11,当操作指令为写操作指令时,执行步骤21;步骤11,在高速缓存控制器中的状态机的控制下,启动是否命中的判断,如果命中,则将高速缓存控制器中缓存的数据送到AHB总线上,执行过程完毕;如果不命中,将执行步骤12;步骤12,立即启动高速缓存控制器中的一置换单元,选一个高速缓存控制器中的存储体来存放数据;步骤13,对被选中存储体中的存储块,其drity标志位无效/有效进行判断;如果被选中存储体中的存储块,其drity标志位无效,则执行步骤14;如果被选中存储体中的存储块,其drity标志位有效,则执行步骤15;步骤14,直接从同步动态随机存储器SDRAM中取出长度为一个存储块的数据,覆盖到被选中的所述存储块中,并将CPU所需数据送到AHB总线上,过程执行完毕;步骤15,将CPU所需数据送到AHB总线上,过程执行完毕;步骤21,在高速缓存控制器中的状态机的控制下,启动是否命中的判断,如果命中,则将来自AHB总线的数据写入高速缓存控制器中的高速缓存存储器,并将所述高速缓存存储器中相应存储块的drity标志位设置为有效,执行过程完毕;如果不命中,将执行步骤22;步骤22,立即启动高速缓存控制器中的一置换单元,选一个高速缓存控制器中存储体来存放数据;步骤23,对被选中存储体中的存储块,其drity标志位无效/有效进行判断;如果被选中存储体中的存储块,其drity标志位无效,则执行步骤24;如果被选中存储体中的存储块,其drity标志位有效,则执行步骤25;步骤24,直接从SDRAM中取出长度为一个存储块的数据,覆盖到所述存储块中,并将来自AHB总线的数据写入到所述存储块中,并设drity标志位为有效,过程执行完毕;步骤25,先将所述存储块中的数据替换出去,保存到同步动态随机存储器SDRAM中,然后从同步动态随机存储器SDRAM中取出被寻址的地址的内容,长度为一个存储块,写入到高速缓存存储器中,并将来自AHB的数据写入到所述存储块中,并设drity标志位为有效,过程执行完毕。
10.根据权利要求8所述的数据存取控制的方法,其特征在于,所述启动置换单元的步骤中,是采用随机的方法来选中需要被替换出去的存储块。
11.一种系统芯片,包括通过AHB总线连接的ARM内核、SDRAM控制器和其他模块,所述SDRAM控制器与片外同步动态随机存储器连接,其特征在于,所述SDRAM控制器进一步包括一SDRAM访问接口模块,用于与所述外同步动态随机存储器连接,满足同步动态随机存储器SDRAM的访问时序;一高速缓存控制器,用于连接所述AHB总线和所述SDRAM访问接口模块,并对来自片外同步动态随机存储器SDRAM的数据进行预取和缓存。
12.根据权利要求11所述的芯片,其特征在于,所述高速缓存控制器进一步包括存储器控制器、控制器、不命中地址模块、置换单元;其中,所述存储器控制器,用于与所述所述AHB总线和片外同步动态随机存储器连接,对缓存的数据和相关标志位存放进行控制,以及与所述SDRAM访问接口模块之间的数据传输;所述控制器,用于通过状态机实现对整个高速缓存的访问操作过程进行统筹调度;所述不命中地址模块,用于与所述存储器控制器和控制器连接,在不命中的情况下产生访问所述存储器控制器内高速缓存存储器的地址,以及地址切换信号;所述置换单元,用于在所述控制器控制下产生需要被替换出去的存储体的选择信号,输出给所述存储器控制器。
全文摘要
本发明公开了一种访问片外SDRAM的控制器及其实现方式,该控制器设置于基于ARM内核的、具有AHB总线的片上系统内,介于所述AHB总线和片外同步动态随机存储器之间,包括SDRAM访问接口模块,用于与外同步动态随机存储器连接,满足同步动态随机存储器SDRAM的访问时序;高速缓存控制器,用于连接AHB总线和SDRAM访问接口模块,并对来自片外同步动态随机存储器SDRAM的数据进行预取和缓存。由于在系统芯片内设置了高速缓存,从而使访问外接SDRAM的效率提高,提高了整个系统的性能,同时也提高了芯片设计的灵活性。
文档编号H01L27/00GK1553496SQ0313181
公开日2004年12月8日 申请日期2003年6月5日 优先权日2003年6月5日
发明者叶辉, 熊小昆, 叶 辉 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1