存储器的寻址的制作方法

文档序号:6599033阅读:259来源:国知局
专利名称:存储器的寻址的制作方法
技术领域
本发明涉及与存储器协作的数据处理并涉及为此目的的对该存储器的寻址。本发明可用于例如MPEG解码器(MPEG是动画专家组的缩写)。
处理器能通过存储器接口访问存储器,以便读出要被处理的数据或写入已经处理过的数据。处理器能向存储器接口传送内部地址。存储器接口通过这个内部地址为存储器生成适当的控制信号。这些控制信号激活与内部地址对应的特定存储单元。
举例来说,假设内部地址18位A[170]。对于DRAM-FPM类型的存储器,存储器接口由9个较高有效位A[179]生成页号,由9个较低有效位A[80]生成列号。对于SRAM类型的存储器,存储器接口由最低有效位后的第5位A[5]生成存储体选择(bank selection),由6个较高有效位A[1712]和最低有效位后的第6位A[6]生成页号,由最低有效位后的第7位A[7]生成奇/偶选择,由5个最低有效位A[40]生成64位字选择。
由于以上所述的存储器接口,处理器总是用相同的通信方式、内部地址,而不管所用的存储器的类型是DRAM-FPM还是SDRAM。这种与存储器合作的数据处理已经在公开号为0793390的欧洲专利申请(律师文件号PHF96517)中披露过。
本发明的一个目的是方便用于与存储器合作的数据处理设备的设计。
本发明考虑了下列方面。方便设计的一个方法是保证设备能使用一个或多个已经被设计用于一个或多个其它设备的处理器。设备例如从在它们包含相同类型的处理器的同时使用不同的存储器的意义上来说可以是不同的。假设设备具有按照以上所述现行技术的体系结构。在该情况下原则上足以设计能在内部地址的基础上为所需存储器生成适当控制信号的存储器接口。所以,原则上该设计应当仅涉及存储器接口。
然而,当在已经是为其它设备设计的处理器的基础上设计设备时会出现下列问题。要设计的设备最好采用不同于其它设备的数据存储方案。不同的存储方案可以由于不同原因而是更可取的。例如,要设计的设备可能涉及一组结构不同于其它设备的结构的处理器。建议避免两个处理器使用同一个存储区或者一个或多个存储区不用。要设计的设备与其它设备之间在操作参数方面的不同可能是不同存储方案更可取的另一个原因。例如,假设设备是MPEG解码器。有不同的MPEG解码的类型,每个类型有其自己的参数和操作方式。
按照现行技术,不同的存储方案意味着内部地址的不同生成。这只能通过修改处理器才能实现。所以,按照现行技术,在已经是为其它设备设计的处理器的基础上的设备的设计,如果希望要设计的设备采用的存储方案与其它设备采用的存储方案不同时,就需要修改这些处理器。
按照本发明的与存储器合作的数据的处理具有以下特点。处理器生成逻辑请求。逻辑请求定义一组数据的至少一个共同特征。寻址电路在逻辑请求的基础上生成物理请求。物理请求定义有关该组数据的存储器地址。存储器接口响应物理请求而实现该组数据在存储器与处理器之间的传输。
所以,按照本发明,处理器借助数据的一个或多个共同特征来指出某组数据。例如,按照本发明,图象处理设备的处理器指出“请将当前图象第10行的色度样本提供给我”。寻址电路将这个逻辑请求转换成定义存储器存储这些样本的位置的地址的物理请求。所以处理器不需要指出存储器在哪里存储和如何存储这些样本。按照本发明,处理器不受存储方案的影响,不需要为了使其能被用于采用不同存储方案的不同处理设备而被修改。本发明因此方便了设计。
现在将结合附图来更详细地说明本发明。


图1表示按照本发明的信号处理设备;图2表示该设备的存储器接口的操作;图3表示该设备的信号处理单元;图4表示该设备的存储器接口;图5表示由某单元进行的读访问;图6A和6B表示为对公共存储器访问的仲裁;
图7表示存储器接口的存取接口;图8表示存储器接口的缓冲存储器;图9表示读缓冲存储器(read buffer memory device);图10表示如权利要求1所定义的本发明的基本特征。
以下说明涉及标注符。在所有附图中类同的部件具有相同的标注字母。在一个附图中可能出现若干个类同的部件。在该情况下将数字后缀到标注字母,以区分类同的部件。为方便计可以省略数字或后缀。这适用于说明书和权利要求二者。
图1表示一个信号处理设备。该设备包含公共存储器SDRAM、存储器接口INT和三个信号处理单元B1、B2和B3。以下将称这些信号处理单元为“单元”。每个单元B通过专用读总线BBR和专用写总线BBW与存储器接口INT相连。每个专用读总线BBR和每个专用写总线BBW都专用于给定单元B。存储器接口INT通过公共总线BM与公共存储器SDRAM相连。
信号处理设备的一般操作如下。单元B应请求接收要被处理并在公共存储器SDRAM中存储的数据。处理过数据后,单元B将处理过的数据通过存储器接口NT施加到公共存储器SDRAM。存储器接口INT控制由各种单元B对公共存储器SDRAM的存取。
存储器接口INT有两个基本功能。第一,它在对公共存储器SDRAM的存取的层次在各种单元B之间进行仲裁(arbitration)。单一的单元B能访问公共存储器SDRAM,要么读一次要么写一次。这意味着单元B只能以成组方式(burst mode)访问存储器。第二,就读而言,存储器接口INT将来自公共存储器SDRAM的、去往给定单元B的数据组串(data bursts)转换成基本稳定的数据流。该数据流就是这样通过相应的专用读总线BBR被传输到单元B的。就写而言,存储器接口INT将来自给定单元B的基本稳定的数据流转换成要写入公共存储器SDRAM的数据组串。
图2表示存储器接口INT的操作。T(BM)代表公共存储器SDRAM与存储器接口INT之间通过公共总线BM的数据传输。T(BBR1)、T(BBR2)和T(BBR3)代表存储器接口INT与单元B1、B2和B3之间分别通过相应的专用读总线BBR1、BBR2和BBR3的数据传输。T(BBW1)、T(BBW2)和T(BBW3)代表存储器接口INT与单元B1、B2和B3之间分别通过相应的专用写总线BBW1、BBW2和BBW3的数据传输。
数据传输T(BM)由数据组串DB组成。每个数据组串DB对应于由单元B或者以读方式或者以写方式对公共存储器SDRAM进行的一个存取操作。DB后括号内的标注,指出组串(burst)中的数据属于哪个单元B,也指出存取的类型是写(W)还是读(R)。例如DB1(B1/R)指出数据组串DB1涉及B1以读方式对公共存储器SDRAM的存取。
图2显示,存储器接口INT对来自公共存储器SDRAM的、属于某单元B的数据组串进行“平滑”(smoothing)。相反地,该图也显示存储器接口INT对从单元B接收的数据进行时间集中(timeconcentration),以便将数据以组串的形式写入公共存储器SDRAM(数据压缩)。这样就实现以较低的速率通过专用读总线BBR和专用写总线进行数据的传输。因此这就使得专用读总线BBR和专用写总线BBW有可能具有相对较窄的传输(bands),因而具有较小的宽度。对此要注意的是,总线的大小不必非要相应于由该总线传输的数据的位数。例如,可以将16位的字分裂成4位的字。这样,该数据就能以4个字的序列的形式通过4位的总线传输。
图3表示单元B。单元B包含处理器P和通用寻址电路AGA。处理器P发出逻辑请求LRQ。假设单元B处理视频数据,在这种情况下逻辑请求LRQ例如可以是请求当前图象的给定行中的像素。通用寻址电路AGA将逻辑请求LRQ转换成物理请求PRQ。物理请求PRQ定义被请求数据被存储在公共存储器SDRAM中的位置的物理地址。物理请求PRQ可以有下列形式起始地址、从所述地址开始要被检索的地址的数目以及-适合的话-在数据检索期间要采用的方案。该方案可以以下列形式定义要读取的连续地址的数目,要被跳过的地址的数目和“读并跳过”循环的次数。AGA可以以用翻译参数定义逻辑请求LRQ向物理请求PRQ的翻译的方式可编程。这就能实现在公共存储器SDRAM中数据存储的灵活性。
图4表示存储器接口INT。存储器接口INT包含仲裁器(arbiter)ARB,存取接口SIF、缓冲存储器BUF和寻址与宏命令电路AGB。每个单元B有个对应的寻址与宏命令电路AGB。
总的来说,存储器接口INT的操作如下。每个寻址与宏命令电路AGB将来自其相关单元B的物理请求划分成宏命令。一个宏命令代表一个访问存储器中给定行的请求。宏命令被提交给仲裁器ARB之前,寻址与宏命令电路AGB查验缓冲存储器BUF是否有足够的空间。为此,它首先将宏命令施加到缓冲存储器BUF。如果缓冲存储器BUF确认有空间用于存储由宏命令所定义的数据的数量,寻址与宏命令电路AGB就将宏命令提交给仲裁器ARB。仲裁器ARB接收来自各种寻址与宏命令电路AGB的宏命令并选择一个要被施加到存取接口SIF的宏命令。这种选择是按照以下所述的仲裁方案作出的。存取接口SIF按接收顺序处理从仲裁器ARB接收的宏命令。然后,存取接口SIF提供对公共存储器SDRAM的存取,存取操作是由被处理的宏命令定义的。
宏命令使X组地址能被访问,其中每组包含Y个地址,各地址组由Z个字分隔,X、Y和Z为整数。所以,宏命令含有下列信息-要被访问的首地址;-在一组地址中的首地址后要被访问的地址的数目(Y-1);-要在两组连续地址之间跳过的地址的数目(Z);-除第一组外还要访问的地址组的数目(X-1);-存取类型读或写。
一个在位层次的宏命令的例子如下。假设在公共存储器SDRAM中存储的数据的宽度是32位,公共存储器SDRAM的最大存储容量是256兆位。这意味着地址是以23位表达的。进一步假设存取操作被限制在大小最多16个地址。鉴于延迟,这种限制是可取的。所以X-1和Y-1最大为15,因此能用4个位编码。最后,按照公共存储器SDRAM的配置,一行含有最多512个地址。所以,要被跳过的地址的数目不可超过511,因此这个数目可以用9个位编码。因此,宏命令的大小为23+2*4+9+1=41位。地址可以在位40至18中编码,存取类型在位17中编码,要被读取的字的数目(Y-1)在位16至13中编码,要被跳过的字的数目(Z)在位12至4中编码,字组的数目(X-1)在位3至0中编码。
图5表示由给定单元B以读方式对公共存储器SDRAM的存取的过程。横向代表时间。图中的纵向代表涉及的不同功能部件。图中含有箭头。这些箭头代表在对接口存储器SRRAM的存取的过程中的各种步骤S。
S1=有关单元B的处理器P向通用寻址电路AGA提交逻辑请求LRQ。该逻辑请求规定一个数据子集,例如待处理数据的集合(例如图象)中某行的亮度像素(luminance pixels)。
S2=通用寻址电路AGA将逻辑请求LRQ转换成物理请求PRQ。
S3=通用寻址电路AGA向宏命令寻址电路AGB提交物理请求PRQ。
S4=宏命令寻址电路AGB将物理请求PRQ转换成宏命令S5=宏命令寻址电路AGB将从物理请求PRQ导出的第一个宏命令提交给缓冲存储器BUF。
S6=缓冲存储器BUF检验是否有足够的空间用于存储由宏命令所定义的数据的数量。
S7=缓冲存储器BUF向宏命令寻址电路AGB发送表示有空间的应答。
S8=代表一定的延迟。
S9=宏命令寻址电路AGB将宏命令提交给仲裁器ARB。
S10=仲裁器ARB按照适用于任何由单元(以读方式和写方式)进行的对公共存储器SDRAM的存取的仲裁方案来处理请求存取公共存储器SDRAM的宏命令。
S11=仲裁器ARB将宏命令提交给存取接口SIF。
S11a=仲裁器ARB向缓冲存储器BUF发送表示已经将宏命令提交给存取接口SIF的应答。
S12=宏命令在存取接口SIF中排队,存取接口SIF先处理以前收到的宏命令。
S13=存取接口SIF根据该宏命令为公共存储器SDRAM生成控制信号。这些控制信号导致位于由宏命令指定地址的数据被连续读出。
S14=从公共存储器SDRAM连续读出的数据被传送到缓冲存储器BUF。
S15=缓冲存储器BUF暂时存储数据。
S16=缓冲存储器BUF以基本稳定的方式将数据传送到处理器P。
对于步骤S1中提出的逻辑请求以后的每个宏命令,重复步骤S5-S15。
下一步在图5中没有表示。在执行步骤S1时,通用寻址电路AGA向处理器P发送一个应答信号,该信号指出逻辑请求LRQ已经被接受,将要被处理。处理器P响应该应答信号,提出新的逻辑请求并保持它,直到进一步通知。当宏命令寻址电路AGB应逻辑请求LRQ提交最后一个宏命令时,逻辑请求LRQ的处理就结束。在这种情况下宏命令寻址电路AGB向通用寻址电路AGA发送一个应答,向后者指出对逻辑请求LRQ的处理已经完成。据此,通用寻址电路AGA以与步骤1中启动的对逻辑请求LRQ的处理的类似方式开始处理新的逻辑请求LRQ。换言之,重复该过程。
图6a和6b表示仲裁器ARB的一个仲裁方案。图6a中以圆圈的形式表示8个状态ST1-ST8。这些状态ST以循环的方式一个接着另一个发生。每个状态ST代表向存取接口发送宏命令的一个可能。所以,每个状态代表访问存储器的一个可能。每个状态对应于一定的处理器P。某状态对应的处理器P在代表该状态的圆圈中确定。
图6b表示与图6a对应的仲裁过程。这个过程包含多个步骤SA1-SA4,对图6a中的每个状态而执行。步骤SA1是状态跳转之后执行的第一个步骤。在步骤SA1中,仲裁器ARB查验是否有由宏命令寻址电路AGB提交的、紧接着来自状态S[i]对应的处理器P[j]的逻辑请求LRQ的宏命令在等待执行。如果有这种宏命令在等待执行,则在步骤SA1后进行步骤SA2。在步骤SA2中,仲裁器ARB将有关宏命令发送给存取接口SIF。这个步骤的作用是,在一定的延迟后,公共存储器SDRAM将被该宏命令所确定的有关处理器P存取。在宏命令已经被发送后,仲裁器跳转到下一个状态,这意味着重复图6b中所表示的过程。然而,如果在步骤SA1中仲裁器ARB检测到没有与状态S[i]对应的处理器P相关的等待执行的宏命令,则在步骤SA1后进行步骤SA3。在步骤SA3中,仲裁器ARB检验是否有其它宏命令在等待。如果没有其它宏命令在等待,仲裁器ARB就跳转到下一个状态,重复图6b中所表示的过程。如果有其它宏命令在等待,仲裁器ARB就执行步骤SA4,在步骤SA4中,仲裁器ARB按优先顺序选择一个宏命令。每个宏命令都有一定的优先级。优先级是由该宏命令来自的处理器P确定的。仲裁器ARB于是选择具有最高优先级的宏命令并将这个宏命令发送给存取接口SIF。发送宏命令后,ARB跳转到下一个状态,这意味着重复图6b中所表示的过程。
关于图6a和6b要注意的是,没有必要每个状态对应一个处理器P。引入一个或多个不与任何处理器P对应的状态是可能的,这意味着引入自由状态是可能的。就自由状态的情况来说,仲裁器ARB仅仅根据优先级顺序来选择宏命令。在信号处理设备包含一个在存取公共存储器SDRAM的层次上对延迟时间和传送频带(pass band)的约束比较适中的处理器P的情况中,这种自由状态可以是有用的。所以,为了避免这种处理器P不被赋予足够的访问权(access),可以引入自由状态。处理器P利用这些自由状态来访问公共存储器SDRAM。
图7表示一例存取接口SIF。存取接口SIF包含宏命令缓冲存储器FIFO MC、列发生器CAGU、命令发生器CGU、控制信号发生器IF_SDRAM、数据缓冲存储器IF_D。
存取接口SIF一般操作如下。宏命令缓冲存储器FIFO_MC从仲裁器ARB接收宏命令。该存储器暂时存储这些宏命令并按它们的到达顺序将它们发送给列发生器CAGU。如果宏命令缓冲存储器FIFO_MC已满,因此不能接受新的宏命令,它就向仲裁器ARB报告这个情况。由于来自存取接口SIF的这个指出其“FIFO已满”的信号,仲裁器ARB就推迟传送当前选择的宏命令,直到宏命令缓冲存储器FIFO_MC报告它能接受新的宏命令。实际上,来自存取接口SIF的“FIFO已满”的信号“冻结”仲裁器ARB一定的时间。
列发生器CAGU在根据前一个宏命令进行的存储器存取操作已经被执行后从宏命令缓冲存储器FIFO_MC请求一个新的宏命令。事实上,列发生器CAGU配合命令发生器CGU将宏命令翻译成一系列地址。公共存储器SDRAM的地址是由公共存储器SDRAM的存储体号、行号和列号定义的。本文已经指出宏命令涉及对接口存储器SRAM的单一行的存取,这自然意味着存取发生在单一的存储体中。因此,为根据宏命令而定义一系列地址,列发生器CAGU根据宏命令生成一系列的列就足够了。列发生器CAGU的一个实现例如可包含一些计数器和一些逻辑电路。在这种实现中,宏命令的内容的作用是编程设置各计数器。
命令发生器CGU连续接收公共存储器SDRAM的另一个列号。命令发生器CGU另外从宏命令缓冲存储器FIFO_MC接收由宏命令所定义的存储体号和行号。该信息使列发生器CAGU能定义一系列用于存取公共存储器SDRAM的命令,其中每个命令定义一个地址。此外,命令发生器CGU还生成将公共存储器SDRAM设置成允许宏命令所定义的存取操作的正确状态而必需的命令。这些命令涉及公共存储器SDRAM的适当过程,诸如预加载和启动。此外,命令发生器CGU还确保公共存储器SDRAM每隔一定时间就被刷新并生成进行这种刷新操作所必需的命令。
控制信号发生器IF_SDRAM根据从命令发生器CGU接收的命令生成控制信号。例如,控制信号发生器成IF_SDRAM生成缩写名为RAS、CAS的信号。控制信号发生器IF_SDRAM保证,在一系列控制信号中,遵守公共存储器SDRAM的一定等待时间。这些等待时间可能因所使用SDRAM的类型而不同。所以,控制信号发生器IF_SDRAM是特定于所使用的公共存储器SDRAM的类型的。如果要使用另一种类型的公共存储器SDRAM,只要修改-即重新编程设置-控制信号发生器IF_SDRAM就足够了。原则上,存取接口的其它部件不需要作任何修改。
数据缓冲存储器IF_D的作用,就读数据而言,是从公共存储器SDRAM向如图4所示的缓冲存储器传送数据;就写数据而言,是从缓冲存储器BUF向公共存储器SDRAM传送数据。为此,数据缓冲存储器IF_D将公共存储器SDRAM提供的数据(读)或向公共存储器SDRAM的施加的数据(写)同步。此外,数据缓冲存储器IF_D构成了一个具有单位深度的FIFO。这意味着,如果一定的时钟脉冲导致从公共存储器SDRAM读取数据,该数据将在下一个时钟脉冲被传送到缓冲存储器BUF。就写操作而言,次序相反。
图8表示构成图4中所示存储器接口INT的一部分的缓冲存储器BUF的例子。缓冲存储器BUF包含读缓冲存储器BUFR及写缓冲存储器BUFW和应答信号缓冲存储器FIFO_ACK。如图1中所示,读缓冲存储器BUFR和写缓冲存储器BUFW通过存取接口SIF和公共总线BM与公共存储器SDRAM相连。读缓冲存储器BUFR分别通过专用读总线BBR1、BBR2和BBR3与单元B1、B2和B3相连。写缓冲存储器BUFW分别通过专用写总线BBW1、BBW2和BBW3与单元B1、B2和B3相连。应答信号缓冲存储器FIFO_ACK与仲裁器ARB相连。
缓冲存储器BUF的一般操作如下。读缓冲存储器BUFR暂时存储从公共存储器SDRAM接收的数据,而写缓冲存储器BUFW则存储从不同单元B接收的、要被写入公共存储器SDRAM的数据。应答信号缓冲存储器FIFO_ACK接收来自仲裁器ARB的应答信号,这种应答信号指出仲裁器已经将宏命令施加到存取接口INF。
应答信号缓冲存储器FIFO_ACK与图7中所示的存取接口SIF的宏命令缓冲存储器FIFO_MC有相同的深度。所以,当宏命令离开宏命令缓冲存储器FIFO_MC时,其结果是,按照宏命令启动存储器访问,对应这个宏命令的应答信号离开应答信号缓冲存储器FIFO_ACK。该信号指示有关存取操作是读访问还是写访问。在前一种情况中,读缓冲存储器BUFR被激活,以便接收来自公共存储器SDRAM的数据,而在后一种情况中,写缓冲存储器BUFW被激活,以便向公共存储器SDRAM发送数据。由应答信号缓冲存储器FIFO_ACK提供的应答信号进一步指示宏命令所定义的、存取操作中涉及的数据的数量。该指示由缓冲存储器BUF分别在读或写的情况中用于“在哪里存储数据或从哪里提取数据“的内部管理。
图9表示一例读缓冲存储器BUFR。读缓冲存储器BUFR包含一个输入缓冲存储器IB、一个接口存储器SRAM、一个包含多个输出缓冲存储器OB的装置,一个控制电路CON的装置,以及一个接口存储器存取仲裁器ARBBR。输入缓冲存储器IB通过已经在图4中表示过的存取接口SIF与公共存储器SDRAM相连。输出缓冲存储器OB1、OB2和OB3分别通过专用读总线BBR1、BBR2和BBR3与处理器P1、P2和P3相连,其中各专用读总线在图2和3中表示。控制电路CON1、CON2和CON3分别连接到宏命令寻址电路AGB1、宏命令寻址电路AGB2和宏命令寻址电路AGB3,也连接到存取接口SIF。
读缓冲存储器BUFR以如下方式操作。从公共存储器SDRAM接收的数据宽度为N位(N是整数),以频率F到达。接口存储器SRAM的宽度为2N位(这意味着一个地址可含有2N个位)并以频率F操作。输入缓冲存储器IB将来自公共存储器SDRAM的数据组成一对对的两个连续数据,然后这些数据对装入接口存储器SRAM。组成一对要花费两个时钟周期。如果假设能将从公共存储器SDRAM接收的所有连续数据组成数据对,则每两个时钟周期启动一次对接口存储器SRAM的写访问。访问一个地址只要求一个时钟周期。所以,在两个写访问操作之间有一个时钟周期可用来访问接口存储器SRAM,进行读数据,以便将从公共存储器SDRAM读取的数据传送到单元B。所以,原则上,对接口存储器SRAM的写访问和读访问可以交替地、一个接着另一个地启动。以下将更详细地说明对接口存储器SRAM的存取。
接口存储器SRAM实际上被划分成三个存储区Z1、Z2和Z3。存储区Z1、Z2和Z3分别含有要用于处理器P1、P2和P3的数据。来自公共存储器SDRAM的数据,是根据发生当前宏命令的处理器P而通过IB被写入存储区Z1、Z2或Z3的。存储区Z1、Z2和Z3中出现的数据是以基本稳定的方式和按照基本固定的方案分别被传送到输出缓冲存储器OB1、OB2和OB3的。输出缓冲存储器OB实际上将数据分离成若干部分并一部分一部分地将有关数据施加到相应的处理器P。例如,输出缓冲存储器OB可以将16位的数据分离成4位的各部分。这样,就不用在一个时钟周期传送该数据(这需要16位的总线),而是在4个时钟周期中一部分一部分地传送该数据,这只需要4位的总线。
控制电路CON1、CON2和CON3分别控制存储区Z1、Z2和Z3。为此每个控制电路CON控制一组参数。这些参数包括一个写指针、一个读指针和一个存储区占用值(occupancy value)。写指针定义来自公共存储器SDRAM的数据要被写入的地址。读指针定义要向有关输出缓冲存储器OB传送的数据的地址。占用值指示仍然可用于存储从公共存储器SDRAM接收的数据的地址的数量。控制电路CON1、CON2和CON3分别控制输出缓冲存储器OB1、OB2和OB3。为此,每个控制电路CON控制一个表示相应输出缓冲存储器OB的占用状态的参数。
现在将说明由控制电路CON进行的控制过程-假设公共存储器SDRAM是以图5所示的方式被访问的。在步骤S5中,宏命令寻址电路AGB向缓冲存储器BUF提交宏命令。该宏命令被对应于发生该宏命令的处理器P的控制电路CON处理。控制电路CON将宏命令所定义的数据的数目与占用值作比较。这样,控制电路CON查验有关存储区Z中是否有足够的空间用于存储所需的数据。如果有足够的空间,控制电路CON就将这个情况报告给宏命令寻址电路AGB,此外还更新占用参数。这意味着,它将该数据视为已经存储在有关存储区-尽管数据尚待存入。所以,可以将对占用参数的更新看作是在相关存储区中的预定。
现在将描述在图5中所示的步骤S12期间发生什么事情。步骤S12代表按照有关宏命令进行公共存储器SDRAM的读出。已经解释过,在存取接口SIF开始处理宏命令并因此启动该读出的时刻,该有关宏命令相关的应答信号离开图7中所示的应答信号缓冲存储器FIFO_ACK。该应答信号指出该访问是个写操作,此外,该信号还指明宏命令来自的处理器P。这样,与该处理器P相应的控制电路CON就知道它应当提供数据应当在公共存储器SDRAM中存储的位置的地址。此外,控制电路CON还接收关于根据该宏命令在该存取操作中涉及的数据的数量的标志,该标志构成应答信号的一部分。
来自公共存储器SDRAM的一个数据对每次被写入有关存储区Z时,控制电路CON就递增写指针。此外,它还更新占用值。控制电路CON继续这样的操作,一直到由宏命令所定义的对公共存储器SDRAM的读访问已经完成。控制电路CON借助存取操作中所涉及数据的数量(该数量由应答信号指示)和对写入接口存储器SRAM的数据的计数来检测存取操作的完成。
每从一定的存储区Z读出一个数据对后,控制该存储区的控制电路CON就递增读指针。此外,它还更新占用值。
接口存储器存取仲裁器ARBBR控制对接口存储器SRAM的存取。有不同存取类型(1)由存取接口SIF将来自公共存储器SDRAM的数据写入接口存储器SRAM的存取,(2)由输出缓冲存储器OB1进行的存取操作,(3)由输出缓冲存储器OB2进行的存取操作,(4)由输出缓冲存储器OB3进行的存取操作。后三种存取操作的作用分别将接口存储器SRAM中含有的数据传送到处理器P1、P2和P3。
任何对接口存储器SRAM的存取,都是响应向接口存储器存取仲裁器ARBBR提交的请求而启动的。接口存储器存取仲裁器ARBBR从当前的各请求中选择具有最高优先级的请求。写访问请求(通过存取接口SIF的访问)具有最高的优先级。由于数据是成对被写的,所以-正如前文所解释的那样,这种请求一般每两个时钟周期只发生一次。写操作只需要一个时钟周期。因此在读方式中将足够的机会来访问接口存储器SRAM,以便向各种处理器P传送数据。
读访问请求是由一定的输出缓冲存储器OB视输出缓冲存储器OB与单元B之间的专用读总线的大小情况而作出的。例如假设总线的大小是N/2位。这意味着在每个时钟周期能从输出缓冲存储器OB向单元B传送N/2位的部分。接口存储器SRAM的读是按数据对进行的。一个数据对包含2N个位。因此,要向单元B发送一个数据对就需要4个时钟周期。传送一个数据对涉及以读方式访问接口存储器SRAM的请求。所以在本例中,输出缓冲存储器OB将每四个时钟周期提交一个访问请求。本例说明,与单元B相连的总线的大小,决定了各种输出缓冲存储器OB的访问请求的频率。如果专用读总线BBR是N/4位的,将每隔8个时钟周期有一个访问请求。
以下说明涉及一例对访问接口存储器SRAM的仲裁。假设专用读总线BBR1的大小是N/2位的,专用读总线BBR2和专用读总线BBR3的大小是N/4位的。存取接口SIF的存取操作具有最高优先级,按照优先级的顺序,接着依次为输出缓冲存储器OB1、OB2和OB3的存取操作。最后,假设所有类型的存取(SIF、OB1、OB2、OB3)的请求都是在第一时钟周期同时提交的。
周期1所有请求同时被提出;等待处理的请求存取接口SIF、输出缓冲存储器OB1、OB2和OB3。
周期2具有最高优先级的接口存取SIF在首位,于是投入其请求;输出缓冲存储器OB1、OB2和OB3维持它们的请求;等待处理的请求输出缓冲存储器OB1、OB2和OB3。
周期3具有第二最高优先级的输出缓冲存储器OB1在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF、输出缓冲存储器OB2和OB3。
周期4具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB2和OB3维持它们的请求;等待处理的请求输出缓冲存储器OB2和OB3。
周期5具有第三最高优先级的输出缓冲存储器OB2在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF和输出缓冲存储器OB3。
周期6具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB1用光缓冲器的容量,于是再次提出请求;等待处理的请求存取接口SIF、输出缓冲存储器OB1和OB3。
周期7具有第二最高优先级的输出缓冲存储器OB1在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF、输出缓冲存储器OB3。
周期8具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB3维持其请求;等待处理的请求输出缓冲存储器OB3。
周期9具有第四最高优先级的输出缓冲存储器OB3在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF。
周期10具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB1用光缓冲器的容量,于是再次提出请求;等待处理的请求输出缓冲存储器OB1。
周期11具有第二最高优先级的输出缓冲存储器OB1在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF。
周期12具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB2用光缓冲器的容量,于是再次提出请求;等待处理的请求输出缓冲存储器OB2。
周期13具有第三最高优先级的输出缓冲存储器OB2在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF。
周期14具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB1用光缓冲器的容量,于是再次提出请求;等待处理的请求输出缓冲存储器OB1。
周期15具有第二最高优先级的输出缓冲存储器OB1在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF。
周期16具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB3用光缓冲器的容量,于是再次提出请求;等待处理的请求输出缓冲存储器OB3。
周期17具有第四最高优先级的输出缓冲存储器OB3在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF。
周期18具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB1用光缓冲器的容量,于是再次提出请求;等待处理的请求输出缓冲存储器OB1。
周期19具有第二最高优先级的输出缓冲存储器OB1在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF。
周期20具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB2用光缓冲器的容量,于是再次提出请求;等待处理的请求输出缓冲存储器OB2。
周期21具有第三最高优先级的输出缓冲存储器OB2在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF。
周期22具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB1用光缓冲器的容量,于是再次提出请求;等待处理的请求输出缓冲存储器OB1。
周期23具有第二最高优先级的输出缓冲存储器OB1在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口SIF。
周期24具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB3用光缓冲器的容量,于是再次提出请求;等待处理的请求输出缓冲存储器OB3。
周期25具有第四最高优先级的输出缓冲存储器OB3在首位,于是投入其请求;存取接口SIF提交新请求;等待处理的请求存取接口STF。
周期26具有最高优先级的存取接口SIF在首位,于是投入其请求;输出缓冲存储器OB1用光缓冲器的容量,于是再次提出请求;等待处理的请求输出缓冲存储器OB1。
如此等等。
以上所述的存取操作具有8个时钟周期的周期性。仲裁就像是由一个有8个状态的循环机(cyclic machine)进行的一样。这是由于在本例中假设所有单元B都按一定规律处理它们的数据。
此外,还假设由存取接口SIF进行的存取请求是有规律地每隔两个时钟周期提交一次的。实际中,这些假设未必正确。由于这个原因,借助仲裁器并按优先级顺序而不是借助循环机来控制对接口存储器SRAM的访问,是可取的。仲裁器对于对接口存储器SRAM的访问有一定程度的灵活性,因此它便于更好地利用可用带宽来进行数据传送。
下面是规则的一个例外的例子,这个例外是,每两个时钟周期只有一个对接口存储器SRAM的写访问(=由存取接口SIF进行的访问)。当根据涉及奇数个数据的宏命令对公共存储器SDRAM进行存取时,这个例外发生。这种存取中所涉及的所有数据,除最后一个数据单元外,都有一个相配的数据单元并由此形成要被写入接口存储器SRAM的数据对。最后一个数据单元没有相配的数据单元。不可能用下一个数据单元来构成数据对,这是因为,下一个数据单元是另一个存取操作的第一个数据单元,因此是要用于另一个处理器P的。所以应当将另一个存取操作的第一个数据单元存储在接口存储器SRAM的另一个存储区中。这样,当涉及奇数个数据单元的访问的最后一个数据单元到达IB中时,该数据在紧接对该存取操作中所包含的最后的数据对的写操作之后的一个时钟周期中被装入接口存储器SRAM,而没有与之相配的数据单元。所以,将会有不中断一个时钟周期的连续两个写访问操作,这一个时钟周期否则会使得能在两个写访问操作之间进行一次读访问。
图5和9涉及存储器接口INT在读方式中的操作。写方式中的操作基本上是对称的。这意味着写缓冲存储器BUFW是与以上所述的读缓冲存储器BUFR类似的。所以,写缓冲存储器BUFW包含一个被划分成各存储区的接口存储器,每个存储区与不同的单元B相关联。各单元B能在指示应当在何处存储这一数据的宏命令之前或之后提供要被写入公共存储器的数据。实际上,存储区的对应单元B一提供要在公共存储器中存储的数据,该存储区就将被填入数据。这种填入例如会一直继续到存储区完全充满数据。在这种情况下,存储器接口INT将向有关单元B指出不再有任何空间用于存储新的数据。这将阻止单元B提供新的数据,直到有关存储区中开始有空间可用。从存储区Z向公共存储器的数据传送,导致腾出可用的空间。只有当宏命令被仲裁器ARB接收并被存取接口SIF,这种转储就可能立即发生。同样也可能在有关单元B提供该数据之前就发出宏命令。在任何情况下,只要写缓冲存储器BUFW不指出有关存储区的足够填充水平,就不向仲裁器ARB施加宏命令。
图10表示如“发明综述”一节中所概括的本发明的基本特点。处理器P生成逻辑请求LRQ。逻辑请求LRQ定义一组数据FRP的至少一个公共特征CAR。寻址电路AGA根据逻辑请求LRQ生成物理请求PRQ。物理请求PRQ定义与数据组GRP相关的、存储器MEM的地址A。存储器接口INT应物理请求PRQ而启动在存储器MEM与处理器P之间对数据组GRP的传送TRNSFR。
图10中所示的特点可用于例如视频处理设备中。在这种情况下,逻辑请求LRQ例如可定义一行亮度像素。这种请求例如可以由为显示而执行处理操作的处理器提出。逻辑请求一般将被改编得适合其来自的处理器。因此逻辑请求具有一定的轮廓特征(profile),一个处理器与另一个处理器的这种轮廓特征差别很大。然而,有可能标准化例如一个用于交换参数(诸如行号和像素类型亮度或色度)的协议。寻址电路AGA具有的任务一般将是存储存储参数、存储器类型、数据存储开始位置的一个或多个地址。这种存储可以与中央处理单元(CPU)协作实现。
以上附图和它们的说明具体解释而不是限制了本发明。很显然在后附的权利要求的范围内显然有许多另外的形式或方案。最后,就此指出几点。
各功能单位或功能可以以许多不同方式分配。对此,要注意的是,各附图是高度示意性的,每个附图只表示本发明的一个实施例。所以,尽管某附图以单独的方框的形式来表示不同的功能实体,这并不排除以一个物理实体的形式来表达若干个功能实体。
最后,在权项中的括号中给出的任何标注符不应被解释为是对该权项的限制。动词“包含”的使用,并不排除出现权项中所定义之外的部件或步骤的存在。部件或步骤前的不定冠词“a”的使用,并不排除出现若干个这些部件或步骤的存在。
权利要求
1.一种用于与存储器(MEM)协作处理数据的设备,特征在于该设备包含被设置成生成定义一组数据(GRP)的至少一个公共特征(CAR)的逻辑请求(LRQ)的处理器(P)。根据该逻辑请求(LRQ)生成物理请求(PRQ)的寻址电路(AGA),该物理请求定义与数据组(GRP)相关的存储器(MEM)的地址(A);根据该物理请求(PRQ)而启动在存储器(MEM)与处理器(P)之间对所述数据组(GRP)的传送(TRNSFR)的存储器接口(INT)。
2.如权利要求1中所要求的设备,该设备包含若干个处理器和寻址电路,特征在于该存储器接口(INT)包含用于根据物理请求(PRQ)生成宏命令的另外一个寻址电路(AGB),宏命令指定该存储器的一部分和该部分中的与该有关数据组相关的地址;用于接收与各处理器相关的宏命令和用于按照仲裁方案逐个地选择所述宏命令的仲裁器(ARB);用于按仲裁器所选择的顺序处理该宏命令的存取接口(SIF),被处理的宏命令建立对由该宏命令所指定的存储器部分和地址的访问。
全文摘要
与存储器(MEM)协作的数据的处理,例如 MPEG解码,具有下列特点。处理器(P)生成逻辑请求(LRQ)。逻辑请求(LRQ)定义一组数据(GRP)的至少一个公共特征(CAR)。寻址电路(AGA)根据逻辑请求(LRQ)生成物理请求(PRQ)。逻辑请求(LRQ)定义与数据组(GRP)相关的、存储器(MEM)的地址(A)。存储器接口(INT)根据物理请求(PRQ)而启动在存储器(MEM)与处理器(P)之间对数据组(GRP)的传送(TRNSFR)。这样,处理器不必知道待处理或处理过的数据在存储器中的存储方式和位置。这就便于数据处理设备—特别是一组这种设备的设计。
文档编号G06F13/16GK1286433SQ0012608
公开日2001年3月7日 申请日期2000年8月28日 优先权日1999年8月31日
发明者H·德佩图伊斯, T·诺维特 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1