一种实现静态与动态存储控制器访问无缝切换的控制结构的制作方法

文档序号:11864628阅读:245来源:国知局
一种实现静态与动态存储控制器访问无缝切换的控制结构的制作方法与工艺

本发明属于集成电路设计领域,具体涉及一种实现静态与动态存储控制器访问无缝切换的控制结构,面向于SoC控制芯片。



背景技术:

存储器是嵌入式系统中至关重要的部件,它为嵌入式系统提供数据保存的中转载体。按照存储特性划分,存储器分为静态存储器和动态存储器两类。静态存储器作为出现最早、使用最广泛的存储介质,为嵌入式系统的程序存储、编程数据存放以及关键信息的保护提供了最直接的手段和最简化的操作方式,这以ROM、SRAM、E2PROM和Flash为典型代表。

静态存储器的存储原理是依靠双稳结构存储‘0’和‘1’信息,需要较多的MOS管来搭建存储阵列,因此它的缺点在于成本较高、容量有限且速度较慢。随着处理器性能以年平均超过40%的速度增长,对于速度更高的片外存储器的需求日益强烈,以求解决日益严峻的“存储墙”问题。于是,一种不依赖于双稳结构,而是通过暂稳结构的动态存储器应运而生,它对于存储单元而言是依靠电容来存储信息,因此存储密度高而且成本较低,同时需要时钟对时序进行精确控制。随着制造工艺和设计技术的不断深入,动态存储器已经由最初的SDR DRAM发展到如今的DDR3DRAM,其存储容量和时钟频率都已得到迅猛提升。然而,动态存储器的一大缺点在于需要定时刷新电容内容,否则信息将因得不到补偿而造成丢失。基于此,业界将两种存储器进行优势互补,在嵌入式开发中综合运用两种存储器,以求发挥静态存储器操作简单、存储可靠的优势,以及动态存储器大容量、低成本的优势。然而,两种存储器一般共用相同的地址、数据总线,所以原则上要求微控制器需要将两种存储器控制器在顶层进行融合,形成统一的顶层控制结构接受来自微处理器的访问。

随着SoC片内总线标准的逐步明朗,以ARM公司推出的AMBA总线以其流水化、低功耗的特性,已经被认为是事实上的总线标准。基于此,研究一种基于标准总线的,融合静态和动态两种控制结构的统一硬件逻辑,不仅能够通过IP复用将SoC的研发成本进一步降低,同时也能以较好的移植性得到更广泛的应用。这种设计方案,在现阶段所有的SoC研发平台中均被认为是一种可行的研究思路。目前尚未发现有解决该问题的方法。



技术实现要素:

本发明的目的在于针对上述现有技术中的问题,提供一种实现静态与动态存储控制器访问无缝切换的控制结构,不仅能够实现与两种分立存储控制器同样的功能,同时还能保证在时序上不出现因空间切换而造成的时序浪费,达到高性能和低延迟的目的。

为了实现上述目的,本发明控制结构采用的技术方案为:包括与AHB总线相连的状态机,状态机输出的地址和写数据分别经过寄存器进行锁存,锁存后广播至SDRAM控制器和SRAM控制器,同时地址输入译码器进行空间识别以产生各控制器的选通信号,SDRAM控制器输出的SDRAM读数据和SRAM控制器输出的SRAM读数据经过多路复选器MUX4选择输出,多路复选器MUX4受译码器输出的读数据选择信号控制;所述的状态机根据主机访问控制信号、SDRAM初始化进度、预充电等待时间以及刷新等待时间产生三级应答时序控制信号,每级应答时序控制信号均基于多路复选器产生相应的应答信号。

所述三级应答时序控制信号的第一级选择受控于状态机产生的SDRAM初始化完成标识,若未完成初始化,由非门A1和与门B1驱动多路复选器MUX1的‘0’端,初始化开始则非门A1的输入信号有效,非门A1和与门B1运算后的结果为应答信号无效,初始化未开始,与门B1改由SR应答信号驱动,即由SRAM控制器直接控制应答信号的使能。

当SDRAM初始化完成后,多路复选器MUX1持续由‘1’口输出,此时由多路复选器MUX2选择判断访问对象是否为SRAM,若译码器输出的SR选通信号确认访问对象为SRAM,则多路复选器MUX2的‘1’端口输出由SRAM控制器输出的SR应答信号,否则由多路复选器MUX3经过多路复选器MUX2的‘0’口输出。

多路复选器MUX3选择器由译码器输出的SD选通信号控制,若当前无访问,则由多路复选器MUX3的‘0’口输出常‘1’,表示此时能够接收主机的任意访问。

SD选通信号有效即表示访问的确实为SDRAM,通过多路复选器MUX3非门A2和与门B2仅当SDRAM的预充电以及刷新操作结束,才能由SDRAM控制器输出应答信号。

所述的AHB总线为标准的片内AHB总线,SDRAM控制器和SRAM控制器分别为标准的SDRAM控制器和SRAM控制器。

与现有技术相比,本发明具有如下的有益效果:SDRAM控制器和SRAM控制器经过多路复选器对于一个读访问只能激活二者其中之一,避免了竞争冲突。本发明不局限于特定的静态和动态存储器结构,它能够为两种控制器提供片内和片外的标准接口,有利于发挥各控制器的优势,使得该控制结构具有很强的通用性。本发明通过应答信号的产生时机,使得两种控制器在复用地址、数据引脚的同时,避免因非访存操作引发竞争冲突的问题。本发明对接的对象分别是标准的片内AHB总线和以及标准的SRAM、SDRAM,因此整个控制结构能够作为一个独立的IP集成于任何一款以AHB总线为架构的SoC设计中,缩短了研发进度。

附图说明

图1本发明控制结构的原理框图;

图2本发明控制结构的整体框图;

图3本发明控制结构内部访问时序图;

具体实施方式

下面结合附图对本发明做进一步的详细说明。

参见图1,该图中展示了如何从SoC片内AHB总线的访问转换到片外的SDRAM存储器以及SRAM存储器的控制访问。整个控制结构的主要部分包括了状态机、读控制、写控制、SDRAM控制器、SRAM控制器以及输出多路复选器MUX。

对于任意的AHB总线读写访问,控制结构都要接收来自AHB的输入信号,并在存储器访问结束后将读数据或应答等输出信号返回至AHB总线。控制结构内部的核心部件是状态机,它的作用是根据AHB总线的输入信号组织控制接口内的控制逻辑以及两套子控制器按照预置的时序动作,一方面,它将AHB输入信号中的地址与写数据分离出来,发往写控制单元,另一方面,他接收来自读控制单元输出的读数据与应答信号。

对于一个写访问而言,写控制单元将对访问地址进行译码,区分访问的存储空间是SDRAM还是SRAM,以便输出SR地址&写数据信号以及SD地址&写数据信号至SRAM控制器和SDRAM控制器。由于片外SDRAM和SRAM共用同一套地址和数据线,因此两个控制器的输出地址和写数据必须经过一个多路复选器MUX进行选择,但是SDRAM和SRAM的控制信号不同,因此两套控制器分别输出各自的控制信号(控制1和控制2)。对于一个读访问而言,经过与写访问相同的控制路径后,SDRAM和SRAM中只有一个存储器会得到控制使能,并且输出读数据,虽然图中SDRAM输出的读数据1与SRAM输出的读数据2均发往了各自对应的控制器,但是由于控制路径上只有一个控制器被激活,所以只有被激活的控制器才能采样读数据,因此并不会造成多数据的竞争冲突。

值得说明的是,上述过程描述的仅是整个控制接口的控制与数据路径,该控制结构的核心功能是确定与核对当前AHB总线的访问是否能够立即发往对应的控制器。这是因为,SDRAM存储器存在初始化、预充电和刷新操作,这两种操作均隐形的由SDRAM控制器根据内置时间参数进行独立的控制,并不由AHB总线进行控制。

也就是说,AHB总线无法获知当前的SDRAM是否正在进行自我操作而无法及时响应AHB总线的访问,这种情况下是无法依靠单独的SDRAM或PROM控制器进行应对,因此需要在两者之上设计一个统一的控制结构。它主要解决的问题有两类:(1)由于SDRAM需要初始化才能使用,因此控制结构需要接收到初始化完毕信号后,才能允许对SDARM的后续访问呢,在此之前的任何访问都必须由控制结构进行锁存,并撤销应答信号以阻塞后继的访存行为;(2)SDRAM在使用过程中需要执行预充电,因此对于SDRAM的任何访问,都必须等待预充电或刷新操作所对应的时间结束,才能释放对SDRAM的访问,在此等待期间需强制撤销应答,以避免AHB总线发出新的访问。

参见图2,本发明在工作时状态机接收来自AHB总线的访问请求,输出的地址和写数据分别经过寄存器进行锁存,锁存后广播至SDRAM控制器和SRAM控制器,同时地址进入译码器进行空间识别以产生各控制器的选通信号(SR选通和SD选通)。对于读访问,SDRAM控制器输出的SDRAM读数据以及SRAM控制器输出的SRAM读数据经过多路复选器MUX4的选择输出,多路复选器MUX4受到译码器输出的读数据选择信号控制。

该控制器应答信号的生成如图中虚线框所示。该应答机制由三级选择构成,且受控于存储器控制器时序状态机,该状态机根据主机的访问控制信号、SDRAM的初始化进度、预充电等待时间以及刷新等待时间而产生控制信号。第一级选择受控于状态机产生的SDRAM初始化完成标识,若未完成初始化,此时由非门A1和与门B1负责驱动多路复选器MUX1的‘0’端,当非门A1的输入信号“初始化进行中”有效时,则非门A1和与门B1运算后的结果为应答信号无效,若初始化尚未开始,即“初始化进行中”信号无效,则此时与门B1改由SR应答信号驱动,即由SRAM控制器直接控制应答信号的使能。当SDRAM初始化完成后,那么多路复选器MUX1将持续由‘1’口输出,此时将由多路复选器MUX2选择判断访问对象是否为SRAM。如果译码器输出的SR选通信号确认访问对象为SRAM,则由多路复选器MUX2的‘1’端口输出由SRAM控制器输出的SR应答信号,否则由多路复选器MUX3经过多路复选器MUX2的‘0’口输出。多路复选器MUX3同样由译码器输出的SD选通信号控制,若当前无访问,则由多路复选器MUX3的‘0’口输出常1,表示此时能够接收主机的任意访问;若SD选通有效表示访问的确为SDRAM,那么由非门A2和与门B2组成的逻辑表示只有当SDRAM的预充电及刷新操作结束,才能由SDRAM控制器输出应答信号。

参见图3,时序图中包括T0~T14共15个周期,对于AHB总线而言,它分别发出了A、B、C三个访问,其中A和C是SDRAM的访问,B为SRAM的访问。从图中能够看出,在T0时刻,SDRAM的A访问发生,此时顶层应答信号默认为‘1’表明接受此次访问,此后访问命令切换至B,同时顶层应答信号变为‘0’表示正在处理A访问。在T3时刻,顶层应答信号再次拉高,表明可以接受B访问,但是,这并不表明SDRAM对于A的操作已经完全结束,这是因为还有预充电和刷新操作正在后台执行。实际上,SDRAM对于A的访问在T6时刻才真正结束,此时SDRAM产生的内部应答在T6时刻拉高。对于SRAM的B访问,在T14时刻结束,此时顶层应答拉高表示B访问结束,同时由于SD应答已经拉高,所以在T14时刻,能够立即对SDRAM的C访问进行处理而不需要等待。

本发明已经应用于一款兼容SPARC V8结构处理器的SoC中,该SoC使用了本发明中的静态与动态存储器访问无缝切换的控制方法,不仅能够有效解决因动态存储器的预充电和刷新等操作引发不同类型存储访问的竞争冲突问题,同时该控制结构对片内和片外的接口均为标准化接口,具有较高的可移植性。该SoC芯片已完成流片,所有电路结构功能正常。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1