访问公共存储器的方法和系统的制作方法

文档序号:6352255阅读:138来源:国知局
专利名称:访问公共存储器的方法和系统的制作方法
技术领域
本发明涉及管理对包括有几个存储体的存储器的访问操作的方法,上述存储器特别是属于SDRAM(同步动态随机存储器)类型的;本发明还涉及一种存储器接口电路;一种适用于由上述接口电路加以执行的计算机程序;以及,一种数据处理系统。
包括具有几个存储体的特别是SDRAM型的存储器的数据处理系统是周知的,该数据处理系统可以被诸如处理器之类的数据处理电路通过产生访问请求经由相应的接口来进行访问。如下的数据处理系统也是周知的,该数据处理系统包括用于处理专门数据(例如视频数据)的一个或几个电路,上述电路独立地或者组合地发挥作用并且访问存储器,以便读或者写专门的数据,所述数据处理系统还包括一个或几个控制器,该控制器可访问另一个存储器,以便读或者写相应的指令代码。
控制器访问所述存储器来读或写指令代码。只要该控制器还没有实现它的访问,它就处于被封锁状态,这样就减慢了它对必须执行的所有过程的执行。然而,当给它提供高速缓存器时,与诸如视频数据处理电路之类的实现密集使用数据的功能的电路相比,只需要控制器对所述存储器执行较低频度的访问。
本发明的一个目的是仅为一个或几个专门数据处理电路和一个或几个控制器提供单个公共存储器,而不损害它们中的每一个的效率,或不损害作为整体的数据处理系统的效率。
对此,本发明提供一种管理多个数据处理电路对一个包括有几个存储体的公共存储器进行访问的方法,其中可以同步实现对所述存储器的单独访问,所述存储器经由适当的接口与用于处理一般数据的至少一个电路相连接并且与用于处理优先权数据的电路相连接,上述方法包括如下步骤-在所述接口级产生所述用于处理一般数据的电路对所述存储器的存储体的访问请求;-开始实现所请求的访问;-接着,在所述接口级产生用于处理优先权数据的电路对所述存储器的另一个存储体的访问请求;-在实现所述一般数据处理电路所请求的访问期间,预备所述存储器的所述的其它存储体;-所述预备工作一完成,就挂起在实现过程中的所述访问,以便立即实现对所述处理优先权数据的电路的访问。
通过本方法,所述用于处理优先权数据的电路(例如控制器)能够通过中断用于处理一般数据(例如视频数据)的电路的所有访问操作在产生最小的延迟的情况下访问所述存储器。它所控制的所有操作的进展因此就降到了最小。此外,在预备好要立即实现对优先权数据处理电路进行访问的最近可能时刻,可以中断进行中的所述访问。因此,能以优化方式使用所述存储器的通带。
本发明方法的优势在于还包括如下步骤一完成对优先权数据处理电路的访问,就恢复所挂起的访问。
用于处理优先权数据的电路最好包括控制器,所述优先权数据包括命令指令。
所述存储器最好是SDRAM型的,同时所述预备工作包括如下步骤启动构成访问操作的主体的所述其它存储体的行。
本发明还提供一种数据处理系统,所述系统包括-具有几个存储体的存储器,-与所述存储器相连接的接口电路,-与所述接口电路都相连接的用于处理一般数据的至少一个电路和用于处理优先权数据的电路,每个数据处理电路均适用于请求通过接口电路对所述存储器进行访问的操作,所述接口电路适用于命令实现所请求的访问操作,其中对所述存储器的单独访问是能够同步实现的,在所述系统中,所述接口电路包括这样的装置,所述装置用于-在实现一般数据处理电路对所述存储器的另一个存储体的访问操作期间,当所述优先权数据处理电路请求访问所述存储器的确定的存储体时,预备所述的确定的存储体,-当用于实现优先权数据处理电路对所述确定的存储体进行访问的所述预备工作一完成,就挂起在实现过程中的所述访问。
使用用于不同数据处理电路的公共存储器能够降低把系统作为整体来实现的成本。
所述接口电路的优势在于还包括了这样的装置,所述装置用于当优先权数据处理电路的访问一完成就恢复所挂起的访问。
每个数据处理电路均可最佳地通过把访问请求发送到所述接口电路来请求访问所述存储器,每个访问请求都定义了读和写类型中的访问类型,并且指定了构成访问主体的一个或几个存储器单元,所述一般数据处理电路的访问请求指定所述存储器的专用于一般数据的至少一个存储体中的存储器单元,所述优先权数据处理电路的访问请求指定所述存储器的专用于优先权数据的至少一个存储体中的存储器单元。
本发明还提供了存储器的接口电路,所述存储器包括有几个存储体并且能够同时唯一地支持单独访问,所述接口电路用来与用于处理一般数据的至少一个电路和用于处理优先权数据的电路相连接,每个数据处理电路均适用于请求经由所述接口电路对所述存储器进行访问的操作,所述接口电路适用于命令实现所请求的访问操作并且包括这样的装置,所述装置用于在实现一般数据处理电路对所述存储器的另一个存储体的访问操作期间,当所述优先权数据处理电路请求访问所述存储器的确定的存储体时,预备所述确定的存储体,当用于实现所述优先权数据处理电路对所述确定的存储体进行访问的所述预备工作一完成,就挂起在实现过程中的所述访问。
本发明还提供了计算机程序,所述计算机程序包括适用于在记录载体上读或存储的指令代码,所述指令代码适用于由可编程接口电路来执行,所述可编程接口电路用来与存储器相连接,所述存储器包括有几个存储体并且能够同时唯一地支持单独访问操作,而且,所述可编程接口电路与用于处理一般数据的至少一个电路和用于处理优先权数据的电路相连接,每个数据处理电路均适用于请求经由所述接口电路对所述存储器进行访问的操作,所述接口电路适用于命令实现所请求的访问操作,在所述程序中,所述指令代码的执行适用于在所述接口电路级执行如下步骤-在实现一般数据处理电路对所述存储器的另一个存储体的访问操作期间,当所述优先权数据处理电路请求访问所述存储器的确定的存储体时,预备所述确定的存储体,-当用于实现优先权数据处理电路对所述确定的存储体进行访问的所述预备工作一完成,就挂起在实现过程中的所述访问。
本发明涉及对SDRAM或其它类型的包括几个存储体的任何存储器的访问操作,其中当正在访问另一个存储体的同时,可以预备对一个存储体的访问。
通过非限制性的实例并参考下述实施例可以体现并说明本发明的上述和其它方面。
在附图中

图1示意地示出了本发明的数据处理系统,图2示意地示出了本发明的可编程的存储器接口电路,图3示出了对图1的系统的存储器地址进行编码的位序列,图4是图1所示系统的存储器的地址映像,图5a-5c说明了对图2所示的所述存储器接口电路的访问请求进行预处理的三个步骤,图5d-5e说明了对图2所示的存储器接口电路的读请求进行后处理的两个步骤,图6a示出了相对于在不用图5a-5c所示预处理步骤的情况下所处理的两个访问操作的时间的进展,图6b示出了相对于在使用图5a-5c的预处理的步骤的情况下所处理的两个访问操作的时间的进展,图7示出了图1的系统内在实现数据处理电路的访问操作期间中央单元的访问请求所指定的存储体的预加载的进展,图8示出了所述中央单元的写访问操作中断数据处理电路的写访问操作的进展,图9示出了所述中央单元的读访问操作中断数据处理电路的读访问操作的进展,图10示出了所述中央单元的写访问操作中断数据处理电路的读访问操作的进展,图11示出了所述中央单元的读访问操作中断数据处理电路的写访问操作的进展。
图1所示的数据处理系统包括具有四个存储体A、B、C、D的SDRAM类型的存储器1。所述存储器1与包括有缓冲存储器3的存储器接口电路2相连接。所述接口电路2与中央单元4相连接并且与数据处理电路7相连接,所述中央单元4包括逻辑和算术单元5和控制器6。例如,所述数据处理单元7是专用于处理音频、视频和诸如MPEG(运动图像专家组)格式的图形(AVG)数据的处理器。
所述中央单元4通过连接装置8与所述接口电路2相连接,所述连接装置8包括数据总线、地址总线和命令线。所述数据处理电路7通过连接装置9与所述接口电路2相连接,所述连接装置9也包括数据总线15、地址总线和命令线16,这些可参见图2。数据接口模块40与所述数据总线15相连接并且确保从所述接口电路2接收和传送AVG数据。
所述接口电路2通过连接装置17与所述存储器1相连接,所述连接装置17包括数据总线10、地址总线11、两个存储体选择线12和13以及命令线14。当要读或写的数据比所述存储器字短时,掩蔽命令DQM也允许选择被访问的各存储器单元的一部分。存储器字由例如32位构成。
所述存储器1是集合式存储器,其中,所述中央处理单元4执行用于读或写数据和指令代码的访问操作,并且,所述数据处理电路7执行用于读或写AVG数据的访问操作。根据所述存储器1的结构,单独访问操作可以同步地执行。所述中央单元4以及所述数据处理电路7经由接口电路2通过生成被发送到所述接口电路2的访问请求即所述接口电路2执行的转移命令来访问所述存储器1,以便进行读和写。
在一种变化形式中,几个模拟数据处理电路中的每一个均生成对所述存储器1进行访问的请求。在这种情况下,不同的数据处理电路经由公共数据中央单元与接口电路2进行通信,所述公共数据中央单元以周知的方式传送访问请求并在传送上述请求的数据处理电路与接口电路2之间传送相应的数据。在这种情况下,图1的块7被视为代表一组数据处理电路和它们的公共数据中央单元。
根据所述存储器1的结构,按一个或几个存储体中的一组或几组连续单元执行访问操作。在所述实施例中,所述数据处理电路7的请求每次都涉及到16个存储器字,所述16个存储器字例如代表一部分图像的像素值。所述中央单元的请求可以涉及1、4或8个存储器字。
访问请求指定一组存储器单元,这组存储器单元必须构成访问的主体,并且所述访问请求定义一系列要转移的数据以及要实现的转移方向。例如,所述转移方向是通过对所述接口电路2的一个或几个专用输入寄存器进行高或低位设置来定义的。要读的一系列数据通过所述存储器1中的地址来指定。要写的一系列数据通过在所述接口电路2的输入端的数据总线上的信号来指定。所述构成访问主体的存储器单元通过下列参数来定义要读或写的存储器1中的第一个块的第一单元的地址、要读或写的块号、在每个块之间要跳过的单元号以及在每个块中要读或写的连续的存储器单元数。当然,也可以存在有由连续单元构成的单个块。地址包括存储体号、行号以及列号。
所述接口电路2以如下方式来处理各个访问请求,即把所定义的系列数据从请求源转移到由此所定义的存储器单元,或者从由此所定义的单元转移到所述的请求源,这要根据请求是读请求还是写请求而有所不同。
以下参考图2说明所述存储器接口电路2的操作。首先说明专用于所述数据处理电路7发送的访问请求的处理阶段。
所述接口电路2包括与命令线16相连接的仲裁模块18,所述仲裁模块18专门用于仲裁由处理电路或电路7所发送的访问请求。所述仲裁模块18应用某种仲裁过程以便确定必须执行位于队列中并且从处理电路或电路7中发出的访问请求的顺序。在所述过程的开始,通过命令寄存器来接收访问请求42或将访问请求传送到预处理模块19,之后再次仲裁所述队列中的剩余请求。
例如,在所述命令寄存器中以下列方式对所接收的访问请求42进行编码低8位指定在要读或写数据的每个块之间跳过的存储器字的数量,接着的4个位指定每个块的连续的存储器字的数量,下一位指定读或写类型中的访问类型,以及下面的位指定在所述存储器1中要读或写的第一个块的第一个存储器字的地址。
所述预处理模块19将两个步骤的过程应用于从所述电路7或电路7之一中接收到访问请求42-在重组步骤中,计算关于访问请求的不同存储体的数量。当所述访问请求涉及到几个存储体时,它就被划分成访问请求的多个部分。每个请求部分指定由所述请求指定的并且属于不同存储体的所有存储器单元。
-在定序步骤中,所述预处理模块19对从已预处理的请求中所生成的请求部分进行定序,以便防止所执行的请求的两个部分连续地涉及到一个和同一个存储体。为此,它确定涉及到在预处理期间紧跟在所述请求之前的请求的最后一部分的存储体并且把指定不同存储体的请求部分安置在第一单元。
一旦可以获得从访问请求所供应的请求21的所述部分,就按照上面所确定的顺序将它们传送到列生成器20,上述各部分均具有指定的存储体号、在所述存储体中指定的行号、在所述行中指定的列号和列的清单以及访问类型的指示符。所述列生成器20专用于对所述数据处理电路7的访问请求。
所述预处理模块19把信号23发送到冲突管理器22,所述信号23指示已准备好要执行的请求部分的现状。
以下说明专用于由所述中央单元4所发送的访问请求的处理阶段。与所述连接装置8相连接的中央单元接口模块28接收来自所述中央单元4的访问请求。所述接口模块28包括这样的队列,它仅包含正在等待被处理的单独请求。所述接口模块28在接收到下一个请求之前一直等待,直到处于处理过程中的所述请求结束为止。来自所述中央单元4的对所述存储器1进行访问的请求总会涉及一系列连续的地址,即它不包括有跳过的单元。所述接口模块28在接收到请求时把信号29传送到冲突管理器22,以便指示已准备好要执行的中央单元请求的现状,并且,所述接口模块28把所接收的请求33传送到专用于所述中央单元4的访问请求的列生成器30。
所述冲突管理器22具有在请求部分与已准备好要执行的中央单元请求之间进行仲裁的功能。所述冲突管理器22管理所述中央单元4和所述数据处理电路7所请求的访问操作的实现,以便处理具有第一优先权的请求。的确,与所述中央单元4的被视为优先数据的数据和指令代码相反,把AVG数据视为一般数据。为了操作,所述冲突管理器22按照预定的方法分别生成为列生成器20和30指定的启动信号24和34。
以下说明所有请求都有的处理阶段。通过接收冲突管理器22的启动信号24或34来启动列生成器20和30。当接收到相应的启动信号时,列生成器20或30通过分别把处理数据电路的请求的部分21或者所述中央单元33的请求分别翻译成一系列列号31或一系列列号32来分别处理它,以便给命令生成器25形成适当细节级别上的访问请求(存储体号、请求部分或中央单元的请求所分别涉及到的每个存储器单元的行和列)。命令生成器25还与启动的列生成器20或30一起协作生成连续的基本访问命令,每个基本访问命令限定了对单个地址进行访问的操作。
所述命令生成器25还生成预备要执行的访问操作所必需的命令,诸如用于有关存储体并启动形成访问操作的主体的行的预加载命令。所述命令生成器25还确保生成有规律地刷新所述存储器1所必需的命令,例如每毫秒刷新64次左右。
所述信号生成器26生成线14上的命令信号,所述信号专用于所述存储器1,例如是本领域技术人员熟悉的RAS、CAS和WE信号,这些信号随所述命令生成器25所发送的命令27而定。每个请求所定义的系列数据项通过数据总线10在所述存储器1的存储单元和所述缓冲存储器3之间传送。对于每个数据项,通过对所述存储体选择线12和13置位来选择存储体,通过所述地址总线11来选择行和列号。所述接口2还包括用于监视存储体的状态的模块54,所述模块54生成指示每各存储体的状态及其活动的信号。
以下参考图3和4来说明图1所示的数据处理系统的其它特征。
图3示出了如在所述接口电路2接收的访问请求中所指定那样的所述存储器1的地址的24个编码位的序列35。每个编码位分别用范围为0-23的权值来加以标记。图3还示出了所述接口电路2对序列35的每个位的解释。在所示的例子中,假设所述存储器1是总容量为64M的SDRAM存储器,它具有2048行X256列的四存储体。因此,列号用8位编码,行号用11位编码,存储体号用2位编码,完整的地址用32+11+8=21位编码。当然,还可以通过调整用于对相应号码进行编码的位数来使用具有不同行和/或列数的存储体。还可以使用用于所述存储器1的两个完全相同的SDRAM存储单元,每个均含有四个存储体,并且用对应的方式加长存储单元的选择位的地址。实际上,按32位来规范上述地址,其中,未使用标号36所指明的额外的最高位。
如图3所示,所述接口电路2通过下述方法转换在来自处理电路7或来自中央单元4的访问请求中的地址通过由两位构成的二进制代码来确定存储体,所述两位的二进制代码的是由序列35的权值分别为20和3的位按权值的降序构成的,这两个位下面分别用B1和B0来表示。列号通过由8位构成的二进制代码来确定,所述由8位构成的二进制代码是由序列35的权值分别是8、7、6、5、4、2、1和0的位按权值的降序构成的。行号通过由11位构成的二进制代码来确定,所述由11位构成的二进制代码是由序列35的权值分别是19-9的位按权值的降序构成的。
存储体的选择采用如下的方式存储体的选择位B1指定或者一对存储体A-B(低值)或者一对存储体C-D(高值)。在相应的存储体对中,存储体的选择位B0分别指定存储体A或C(低值),或者分别指定存储体A或C(高值)。
在图1的系统中,所述数据处理电路7和所述中央单元4以如下的方式加以设计它们读或写在不同对A-B或C-D存储体中的属于它们的数据。例如,属于数据处理电路7的AVG数据是在存储体对A-B中进行写、读和存储的,位B1在数据处理电路7的访问请求所指定的地址中总是被置于低值。相反,属于中央单元4的数据例如命令指令是在存储体对C-D中进行写、读和存储的,位B1在由中央单元4的相应访问请求所指定的地址中总是被置于高值。
因此,参考图4,所述存储器1的地址映像如下。按照用坐标轴37代表的地址的增序,所述存储器1具有第一个区38,该区专用于属于数据处理电路7的并由存储体A和B的块的交替部分所构成的数据,每个块具有8个字的长度L,并且,所述存储器1具有第二个区39,该区专用于属于中央单元4,并由具有同样长度L的存储体C和D的块的交替部分所构成的数据。
所述数据处理单元7的请求指定所述存储器的第一区38的16个地址的序列中的串,例如采用块数、每块的字数以及在每块之间要跳过的单元数。因为所述存储器1的映像,这些16个地址可以随机的形式分布在存储体A和B之间。在请求指定16个连续地址的频繁情况下,这些地址总是对应那些已经均匀分布在存储体A和B之间的单元。这种特殊的特征降低了出现两个请求序列或两个连续的请求部分指定一个和同一存储体的可能性。
由于对存储器单元的地址的转换是通过所述接口电路2来加以实现的,所以就实现存储器1的映像而言不需修改由中央单元4和处理电路7所使用的寻址模式。这种寻址模式由此可以保持与中央单元4和处理电路7必须通信的其它部件相兼容。
以下参考图5a-5c,更加详细地说明所述预处理模块19对请求的预处理。
图5示意地示出了所述预处理模块19从所述仲裁模决18接收到的访问请求42。第一行表示在所述请求所指定的确定行中构成访问请求主体的列号。第二行表示每一列所属的存储体。假设存储器1的被指定为c1-c16的列包括数据d1-d16。
参考图5b,所述预处理模块19按照请求42所指定的16个列被指定的顺序来读这16个列的号并且对每一列而言都通过队列41向所述接口模块40发送根据存储体中的一个位进行编码的号,在所述存储体中,列是已存在的(例如0对应存储体A,1对应存储体B)。所述预处理模块19还确定在所述请求中所指定的不同存储体的号。
参考图5c,所述预处理模块19包括状态指示符44,它指示上一列所处在的存储体的号,该号是由上一个请求或以前已经预处理的请求部分所指定,所述上一个请求或请求部分现在正在由命令处理器25加以处理或者排在中央单元的访问请求之后。所述状态指示符44指示图5c中的存储体A。当所述请求42指定了几块存储体即在所示的例子中的A和B时,预处理模块19通过将每个关联的存储体中的请求42的列重组成与许多系列来对它们进行重新排序。首先设置属于与状态指示符44所指示的存储体不同的存储体列系列的即属于在所示的例子中的存储体B的列系列。在请求42中按照列号c2和c4-c16的顺序所指定的并属于存储体B的列号C2和C4至C16系列由此作为请求21a的第一部分加以处理。在请求42中按照列号c1和c3的顺序所指定的并属于存储体A的列号C1至C3系列由此作为请求21b的第二部分加以处理。如在前面所说明的那样,向所述列生成器20按照所述顺序传送请求部分21a和21b。
以下参考图5d和5e说明所述接口模块40对数据处理电路7的读类型的请求进行后处理的阶段。假设所处理的请求42是读类型的。
参考图5d,对所述命令生成器25的请求的第一部分的处理涉及按照给列生成器20指定列的顺序对数据进行读取。因此,向所述接口电路2转移的第一数据项是d2,它存储在列c2中。随着所读的数据项的到达,所述接口模块40读取在队列43中可从缓冲存储器3中获得的地址,所述缓冲存储器3包括了所有可获得的地址,并且,所述接口模块40临时在地址@1处存储所接收的数据项。所述接口模块40还包括两个地址队列45a和45b,它们分别专用于来自存储体A和存储体B的数据。所述状态指示符44现在指示正在其中读取所述数据的存储体B。所述接口模块40因此将拷贝专用于来自存储体B的数据的队列45b中的存储地址@1。对请求42所定义的数据d1-d16的整个系列,该过程都重复进行。
参考图5e,假设已经把所有的数据都从所述存储器1中转移到所述接口电路2的所述缓冲存储器3中。所述地址队列45a和45b显示出处在它们的最终状态。所述接口模块40确保对所接收数据的重新排序。为此,读取队列41。对所读的每个存储体号,所述接口模块40读取专用于来自相应存储体的数据的队列的第一地址,即队列45a的第一地址@15,这是因为,所读取的第一存储体号是0。它读取存储在地址@15的数据项即数据项d1并且通过数据总线15把该数据传送到处理电路7。地址@15被释放并在队列43中复位。对于队列41的所有存储体号,该过程重复进行,直到读到表示已经到达了请求的最后列的信号为止。然后中止该请求。因此,按照请求42所定义的存储器单元的顺序,把该数据转移到处理电路7。
对于写请求,所述接口模块40执行预处理操作,所述预处理操作与前面所述的后处理操作是对称的。在执行来自当前中央单元的一部分请求(当前访问)期间,所述命令生成器25检查预备中的中央单元的一部分请求或后续请求的参数(后续访问)。当后续访问涉及到与当前访问所涉及的存储体不同的存储体时,所述命令生成器25在当前访问执行期间按照下述方式生成后续访问所涉及的存储体的预加载和启动命令对于预备后续访问不丢失时钟周期。为此,所述命令生成器25生成这样的命令,这些命令对应于所述命令生成器25同时从列生成器20和30以及从冲突管理器22中按照如下的降序优先权顺序接收的信号1-预加载中央单元的请求所指定的存储体,2-启动中央单元的请求所指定的存储体,
3-为中央单元生成基本访问命令,4-为处理电路7生成基本访问命令,5-启动处理电路7的请求所指定的存储体,6-预加载仲裁存储体,7-中性命令图6a和6b说明了通过预处理所述接口电路2的请求而降低了访问次数。假设在不出现来自中央单元4的请求的情况下处理电路7的两个请求46和47是连续进行处理的。请求46按照这种顺序指定存储体A的8个列的批46a、存储体B的3个列的批46b、存储体A的两个列的批46c以及存储体B的3个列的批46d。请求47按照这种顺序指定存储体B的8个列的批47a和存储体A的8个列的批47b。
图6a表示就在没有进行预处理的情况下执行各请求时处理请求46和47的时间而言的进展。对存储体的访问操作的实现通过预加载存储体并启动用于构成访问操作的主体的行而使预备访问的操作成为必须。该预备工作要求具有例如SDRAM存储器的6个时钟周期的时间Δt。后续访问操作的预备工作的执行始于开始转移对应于当前访问的数据。然而,与列46b和46c的批相对应的转移要短于预备时间Δt,从而在与批46c和46d相对应的转移之前丢失了延迟。此外,请求47始于存储体B中的访问操作,在存储体B中,存在有在访问操作46过程中所访问的最后列。因此,延迟Δt会在两个请求处理之间的预备存储体B期间丢失。
图6b表示就在使用模块19的预处理操作的情况下,请求46和47的处理的时间而言的进展。与列批46a和46c相对应的数据的转移命令被重组为第一请求部分48并按照下述方式加以处理抑制在处理批46c之前所丢失的延迟。与列批46b和46d相对应的数据的转移命令被重组为第二请求部分49并按照下述方式加以处理抑制在处理批46d之前所丢失的延迟。以分别指定了列批47a和列批47b的两个请求部分50和51的方式,通过从指定列批47b的部分51开始来处理请求47,从而在实现对应于请求部分49的转移期间,预备了在存储体A和接口电路2之间对应数据的转移操作。因此,也抑制了在处理两个请求46和47之间所丢失的延迟。处理这两个请求所需要的时间因此而例如按照比不执行预处理操作的情况下的30%的量大大地减少了。
以下参考图7-11详细说明冲突管理器22对访问操作的仲裁。所有的这些图都示出了进展程度,所述进展程度是一个或几个不同类型的访问操作的时间t的函数。所示出的表的每一列都对应于例如SDRAM存储器的8ns的时钟周期。表的第一行表示SDRAM的某些预备命令在命令线14上的传输。预加载命令符号化为PRE。启动命令符号化为ACT。表的第二行代表基本读或写命令在命令线14上的传输。数据处理电路所请求的基本读或写命令分别符号化为TR和TW。中央单元所要求的基本读命令或写命令符号化为CR和Cw。指定几个存储器单元的访问请求被翻译成从0枚举的几个连续的的基本命令。表的第三行代表在数据总线10上转移过程中的那些数据。在执行基本读或写命令的同时被转移的数据项通过字母D加以符号化,随后是对应的基本命令的符号。
参考图7,当在实现数据处理电路7的访问操作期间所述冲突管理器22接收信号29并且中央单元33的请求所指定的存储体必须要预加载时,冲突管理器22向命令生成器25给出命令,以便把预加载命令插入到进展中的如用箭头59所表示的用于访问操作的两个基本命令。冲突管理器22把基本访问命令的生成挂起,以便释放所述存储器的命令线,从而能够传送预加载命令。为此,列生成器20在整个必须挂起基本命令的生成期间即例如在一个时钟周期启动等待信号52。冲突管理器22通过在重启动生成基本访问命令之前的一个时钟周期把启动信号24传送到列生成器20来命令重启动生成基本访问命令,这样就重新初始化了等待信号52。
参考图8,假设由启动信号24启动了数据处理电路7的写访问并且在中央单元4请求写访问时上述写访问正在被实现。在实现所述访问操作期间,即在传输所示例子中的基本命令TW3期间,生成由中央单元的请求所指定的存储体的启动命令。要注意的是,启动命令在寄存器中生成SDRAM的行的一个拷贝,在该寄存器中能够先后地读或写各个列,并且,要注意地是,启动命令的执行花费若干时钟周期例如两个时钟周期。启动一结束,即在所示的例子中的启动命令之后的第三个时钟周期,就由等待信号52把进展中的访问操作挂起。在所示的例子中,在传输基本命令TW5之后,挂起进展中的访问操作。中央单元的写访问由启动信号34发起。在生成用于中央单元所请求的访问操作的最后基本访问命令即基本命令CW7期间,列生成器30向管理器22发送访问结束信号53,这样就导致传输启动信号24并重新初始化等待信号52。从后续的时钟周期起,借助后续的基本命令TW6来恢复用于所挂起的访问操作的基本访问命令的生成。通过该基本命令序列,在每个时钟周期实现数据的转移,而不损失任何通带。
参考图9,数据处理电路7的读访问操作通过传输启动信号24来发起,然后冲突管理器接收信号29。同前面的情况一样,在实现电路7的访问操作期间即在传输基本命令TR2期间,传输中央单元4的请求所指定的存储体的启动命令。然后,如前面所描述的那样,对信号24、34和52进行管理,以便通过临时挂起电路7的访问操作来插入中央单元的访问操作。在写访问操作期间,要写的数据以与传输相应基本命令相同的时钟周期被发送数据总线10上。相反,在读访问操作期间,由于对存储器1中固有的被称为延迟CAS的各个列LC的单独访问的延迟,所以在传输基本命令与转移相应数据项之间存在延迟。该延迟例如是3个时钟周期。
用于监视存储体状态的模块54包括用于每个存储体的访问指示符,所述指示符在所述存储体中的每个访问操作的开始时被启动并且在该访问操作的结束时被重新初始化。在所示的例子中,访问指示符55是用于所述存储体例如是存储体A的指示符,在所述存储体中,数据被数据处理电路7所读取,访问指示符56是用于存储体例如是中央单元4的请求所指定的存储体C的指示符。
参考图10,示出了基本命令序列,在电路7的读访问操作期间生成中央单元4的写访问请求的情况下,生成所述基本命令序列。为实现从读访问到写访问的过渡,所述存储器的数据总线10必须从输出态变为输入态。这种状态的改变通过总线10的晶体管加以执行,这些晶体管为避免任何短路风险通过用符号HIZ所代表的高阻抗状态,在这种状态下,不能够在总线10上实现数据转移。这种传输需要一个时钟周期的延迟。在命令ACT之后的第三个时钟周期,当启动一结束,对中央单元的访问就开始,同时,在前面即命令ACT之后的第二个时钟周期,实现通过状态HIZ的过渡。所读取的能够因此在总线10上传送的最后数据项是在命令ACT之后的第一个时钟周期所转移的数据项。因为延迟CAS是3个时钟周期,所以该数据项对应于在命令ACT之前即在所示的例子中的命令TR0之前的两个时钟周期内所传送的基本命令。因此,从命令ACT传输之前的第一个周期产生读命令是没有用的。实际上,中性命令NOP根据命令ACT替换要被挂起的用于访问操作的基本访问命令,直到在中央单元的访问操作开始。然而,在挂起访问操作之前,产生紧跟在命令ACT之前的基本访问命令即TR1,却没有时间去执行。因此,在这种情况下,中央单元的访问操作一结束,通过重新传送还没有执行的命令TR1来恢复所挂起的访问操作。为此,冲突管理器22在其重新启动期间更新列生成器20的计数器。要重新传送的基本命令号必须要明显地随用于每个具体实现的存储器的特征来加以调整。
图11示出了当中央单元4的读访问操作挂起电路7的写访问操作时所产生的基本命令序列。在这种情况下,在中央单元的访问操作结束时,必须实现过渡到状态HIZ。然而,为了要转移中央单元所读取的所有数据,等于延迟CAS的延迟即在所示的例子中的3个时钟周期必须要留在生成最后的读命令CR7与到状态HIZ的过渡之间。在该延迟期间,列生成器20处于等待状态。所挂起的访问操作在过渡之后立即恢复。
为了考虑该延迟,用于监视各存储体状态的模块54配备供有计数器58,该计数器58在每个时钟周期的值用图11的表的第三行表示。无论何时传送基本读命令,计数器58都被设置成等于LC+1的值即在所示例子中的值4。当没有基本读命令传送时,计数器58就以每次1个单位进行递减。它一达到0值,模块54就产生信号57,如图2所表示的,以便向命令生成器25指示可以实现到状态HIZ的过渡了,这是立即产生的。
尽管已经参考具体实施例对本发明进行了说明,但显而易见的是,本发明绝不会受到限制,只要在本发明的范围内,本发明包括所述装置的所有同等技术以及它们的组合。实际上有许多通过硬件和/或计算机程序元件来实现上述功能的方式。在这方面,附图是非常概略的,每幅附图均代表了单个实施例。尽管附图可以用独立块的形式表示各种功能,但是却不排斥可以用几个独立块来实现一种功能。
权利要求
1.一种管理多个数据处理电路(4,7)对包括有几个存储体(A-D)的公共存储器(1)进行访问的方法,其中可以同步实现对所述存储器的单独访问,所述存储器经由适当的接口(2)与用于处理一般数据的至少一个电路(7)相连接并且与用于处理优先权数据的电路(4)相连接,上述方法包括如下步骤-在所述接口级产生所述用于处理一般数据的电路对所述存储器的存储体的访问请求;-开始实现对所请求的访问;-接着,在所述接口级产生用于处理优先权数据的电路对所述存储器的另一个存储体的访问请求(33);-在实现一般数据处理电路所请求的访问期间,预备(PRE,ACT)所述存储器的所述其它存储体;-所述预备工作一完成,就挂起在实现过程中的所述访问,以便立即实现对处理优先权数据的电路的访问。
2.权利要求1所请求的方法,其特征在于,该方法还包括如下步骤一完成对所述优先权数据处理电路的访问,就恢复所挂起的访问。
3.权利要求1所请求的方法,其特征在于,所述优先权数据处理电路包括控制器(6),所述优先权数据包括命令指令。
4.权利要求1所请求的方法,其特征在于,所述存储器是SDRAM类型的,所述预备工作包括如下步骤启动(ACT)构成访问操作的主体的所述其它存储体的行。
5.一种数据处理系统,包括具有几个存储体(A-D)的存储器(1);与所述存储体相连接的接口电路(2);至少与所述接口电路都相连接的用于处理一般数据的至少一个电路(7)和用于处理优先权数据的电路(4),每个数据处理电路均适用于请求经由所述接口电路对所述存储器进行访问的操作,所述接口电路适用于命令实现所请求的访问操作,其中对所述存储器的单独访问能够同步实现,在上述系统中,所述接口电路包括这样的装置(22、25、30、52),所述装置用于在实现一般数据处理电路对所述存储器的另一个存储体的访问操作期间,当所述优先权数据处理电路请求访问所述存储器的某个存储体时,预备所述某个存储体,当用于实现所述优先权数据处理电路对所述确定的存储体进行访问的所述预备工作一完成,就挂起在实现过程中的所述访问。
6.权利要求5所请求的系统,其特征在于,所述接口电路还包括这样的装置(53、24),所述装置用于当对所述的优先权数据处理电路的访问一完成就恢复所挂起的访问。
7.权利要求5所请求的系统,其特征在于,每个数据处理电路均能通过向所述的接口电路发送访问请求来请求对所述存储器的访问,每个访问请求都定义了读和写类型中的访问类型,并且指定构成访问操作主体的一个或几个存储器单元,所述一般数据处理电路的所述访问请求指定所述存储器的专用于所述一般数据的至少一个存储体中(A、B)中的存储器单元,所述优先权数据处理电路的所述访问请求指定所述存储器的专用于所述优先权数据的至少一个存储体中(C、D)中的存储器单元。
8.一种存储器(1)的接口电路(2),所述存储器包括有几个存储体(A-D)并且运行时能够同时唯一地支持单独访问操作,所述接口电路用来与用于处理一般数据的至少一个电路(7)和用于处理优先权数据的电路(4)相连接,每个数据处理电路均适用于请求经过这样的接口电路对所述存储器进行访问的操作,所述接口电路适用于命令实现所请求的访问操作,并且包括这样的装置(20、22、25、30、52),所述装置用于在实现所述一般数据处理电路对所述存储器的另一个存储体的访问操作期间,当所述优先权数据处理电路请求访问所述存储器的确定的存储体时,预备(PRE、ACT)所述确定的存储体,用于实现所述优先权数据处理电路对所述确定的存储体进行访问所述预备工作一完成,就挂起在实现过程中的所述访问。
9.权利要求8所请求的接口电路,还包括这样的装置(53、24),所述装置用于对用于处理优先权数据的电路的访问一完成,就恢复所挂起的访问。
10.一种包含适用于在记录载体上读或存储的指令代码的计算机程序,所述指令代码适用于由可编程接口电路(2)来执行,所述可编程接口用于在与包括有几个存储体(A-D)的存储器(1)相连接,并且所述存储器能够同时唯一地支持单独的访问操作,所述可编程接口电路与用于处理一般数据的至少一个电路(7)和用于处理优先权数据的电路(4)相连接,每个数据处理电路均适用于请求经由所述接口电路对所述存储器进行访问的操作,所述接口电路适用于命令实现所请求的访问操作,在该程序中,所述指令代码的执行适用于在所述接口电路级执行如下步骤在实现所述一般数据处理电路对所述存储器的另一个存储体的访问操作期间,当所述优先权数据处理电路请求访问所述存储器的确定的存储体时,预备(PRE、ACT)所述某个存储体,用于实现所述优先权数据处理电路对所述确定的存储体进行访问的所述预备工作一完成,就挂起在实现过程中的所述访问。
全文摘要
一种管理多个数据处理电路(4、7)访问包括有几个存储体(A-D)的公共存储器(1)的方法,所述存储器与用于处理一般数据的一个或几个电路(7)相连接,并且所述存储器与用于处理优先权数据的电路(4)相连接,上述方法包括如下步骤产生用于处理一般数据的电路或其中之一对所述存储器的存储体的访问请求;开始实现上述所请求的访问;接着产生用于处理优先权数据的电路对所述存储器的另一个存储体的访问请求;在实现一般数据处理电路或其中之一所请求的访问期间,预备(PRE、ACT)该存储器的所述其它存储器;所述的预备工作一完成,中断在实现过程中的所述访问。
文档编号G06F12/00GK1465013SQ02802468
公开日2003年12月31日 申请日期2002年5月21日 优先权日2001年5月22日
发明者S·穆茨, H·德佩特威斯, T·古尔比勒奥 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1