下面的注解涉及参考符号。在所有的图中相似的部件用相同的参考字母表示。多个相似的部件可出现在一个图中。在那种情况下,数字后缀有参考字母以区分相似的部件。为方便可省略数字或后缀。这既适用于说明书部分,也适用于权利要求部分。
图1所示为数据处理装置。该装置包括共用存储器SDRAM、存储器接口INT以及三个数据处理单元B1、B2和B3。这些数据处理单元在下文中称为“单元”。每个单元B均通过专用读总线BBR和专用写总线BBW与存储器接口INT相连。每个专用读总线BBR和每个专用写总线BBW均用于给定单元B。存储器接口INT通过专用读总线BBR与共用存储器SDRAM相连。单元B、专用读和写总线BBR、BBW以及存储器接口INT可以形成集成电路的一部分,共用存储器SDRAM是外部设备。
下面描述数据处理装置的一般操作。请求单元B接收将被处理的、存储在共用存储器SDRAM中的数据。在对所述数据进行处理之后,单元B将处理后的数据经存储器接口INT提供给共用存储器SDRAM。存储器接口INT通过不同的单元B控制对共用存储器SDRAM的访问。
存储器接口INT有两个基本功能。首先,它在共用存储器SDRAM的访问级别上在不同单元B之间执行仲裁。一个单元B在某个时间能读或写访问共用存储器SDRAM。这意味着单元B仅能以串方式访问存储器。其次,在读的情况下,存储器接口INT将来自共用存储器SDRAM并打算用于给定单元B的数据串(data burst)转换成稳定的数据流。由此,该数据流经各自的专用读总线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后加括号的参考标记指示串中的数据属于该单元B,还指示访问类型:写(W)或读(R)。例如,DB1(B1/R)指示数据串DB1通过B1以读方式访问共用存储器SDRAM。
图2示出了存储器接口INT执行来自共用存储器SDRAM且属于某一单元B的数据串的“平滑”。相反地,该图还示出了存储器接口INT执行从单元B接收的数据的时间集中,目的是将所述数据作为串(数据压缩)写入共用存储器SDRAM中。因此,通过专用读总线BBR和专用写总线BBW的数据传送受影响率较低。因此,这使专用读总线BBR和专用写总线BBW能具有相对较窄的通带,结果,具有相对小的宽度。在这方面,应注意,总线大小不需要一定对应于包含在通过该总线传送的数据中的位数。例如,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包括仲裁器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的过程。水平维度表示时间。该图的垂直维度表示所涉及的不同功能部件。该图包含箭头。这些箭头表示访问接口存储器SRAM过程中的不同步骤S。
S1=相关单元B的处理器将逻辑请求LRQ发送到通用地址电路AGA。逻辑请求LRQ指定数据子集,例如在将要处理的一组数据例如图象中线的亮度象素。
S2=通用地址电路AGA将逻辑请求LRQ转换为物理请求PRQ。
S3=通用地址电路AGA将物理请求PRQ发送到宏命令地址电路AGB。
S4=宏命令地址电路AGB将物理请求PRQ转换为宏命令。
S5=宏命令地址电路AGB将从物理请求PRQ导出的第一条宏命令发送到缓冲存储器装置BUF。
S6=缓冲存储器装置BUF校验是否有存储宏命令所确定的数据数的空间。
S7=缓冲存储器装置BUF将对有空间的确认发送给宏命令地址电路AGB。
S8=表示给定延迟。
S9=缓冲存储器装置BUF将宏命令发送给仲裁器ARB。
S10=仲裁器ARB根据仲裁方案对作为访问共用存储器SDRAM的请求进行处理,仲裁方案通过单元(以读和写方式)提供对共用存储器SDRAM的任何访问。
S11=仲裁器ARB将宏命令发送到存取接口SIF。
S12=宏命令在存取接口SIF排序,首先处理先接收到的宏命令。
S13=存取接口SIF根据宏命令产生共用存储器SDRAM的控制信号。这些控制信号是宏命令指定地址上的数据被连续读取。
S14=从共用存储器SDRAM连续读出的数据传送到缓冲存储器装置BUF。
S15=缓冲存储器装置BUF暂时存储数据。
S16=缓冲存储器装置BUF以稳定方式将数据传送到处理器P中。
在步骤S1中作出的逻辑请求LRQ之后对每个宏命令重复步骤S1-S15。
下面的步骤在图5中未示出。在步骤S1,通用地址电路AGA向处理器P发送确认信号。该信号指示逻辑请求LRQ已经被接受并将对其进行处理。响应确认信号,处理器P产生新的逻辑请求并保持该请求直至进一步通知。当缓冲存储器装置BUF响应逻辑请求LRQ发送最后的宏命令时,完成逻辑请求LRQ的处理。在那种情况下,缓冲存储器装置BUF向通用地址电路AGA发送确认信号以指示后者逻辑请求LRQ的处理已经完成。作为响应,通用地址电路AGA开始处理新的逻辑请求LRQ,处理方式与步骤S1中逻辑请求LRQ的处理过程类似。换言之,重复该过程
图6a和6b示出了仲裁器ARB的仲裁方案。在图6a中,循环示出了8个状态ST1-ST8。这些状态ST以循环的方式一个接一个出现。每个状态ST表示向存取接口SIF发送宏命令的可能性。因此,每个状态表示访问存储器的可能性。每个状态对应于一个给定处理器P。对应于给定状态的处理器P在表示状态的循环中中被指定。
图6b表示与图6a相对应的仲裁过程。该过程包括多个步骤SA1-SA8,并对图6a中的每个状态ST加以实施。步骤SA1是在状态跳跃之后实施的第一个步聚。在步骤SA1,仲裁器ARB校验宏命令是否处于等待状态,宏命令由缓冲存储器装置BUF发送并跟随来自对应于状态S[i]的处理器P[j]的逻辑请求LRQ。如果这种宏命令处于等待状态,则在步骤SA1之后进行步骤SA2。在步骤SA2中,仲裁器ARB将相关的宏命令发送到存取接口SIF。其作用是在给定延迟之后,共用存储器SDRAM被宏命令定义的相关处理器P访问。在宏命令已经向下一个状态发送仲裁跳跃后,这意味着重复图6b中所表示的过程。
但是,如果在步骤S1中,仲裁器ARB已经检测出没有与对应于状态S[i]的处理器P相关的处于等待状态的宏命令,则在步骤SA1之后进行步骤SA3,仲裁器ARB校验是否其他宏命令正在等待。如果没有其他宏命令正在等待,仲裁器ARB就跳到下一个状态,并重复图6b所示的过程。如果有其他宏命令正在等待,仲裁器ARB则执行步骤SA4。在步骤SA4中,仲裁器ARB以优先权顺序选择宏命令。每个宏命令有给定的优先级。优先级由发出宏命令的处理器P确定。因此,仲裁器ARB选择优先级最高的宏命令并将该宏命令发送到存取接口SIF。在发送宏命令之后,ARB跳到下一个状态,这意味着重复图6b所示过程。
根据图6a和6b,应注意,每个状态对应于一个处理器P是不必要的。可能引入不与任何处理器P对应的一个或多个状态,这意味着有可能引入自由状态。在自由状态的情况下,仲裁器ARB仅在优先级的基础上选择宏命令。这种自由状态在这种情况下是有用的:数据处理装置包括处理器P,处理器P在等待时间和共用存储器SDRAM的访问等级上的通带方面的限制是比较适中的。因此,为了避免该处理器P未给定充分的存取,可能引入自由状态。处理器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存储将写入共用存储器SDRAM中的和从单元B接收到的数据。确认信号缓冲存储器FIFO_ACK接收来自仲裁器ARB的确认信号。这种信号指示仲裁器ARB已经将宏命令提供给存取接口SIF。
确认信号缓冲存储器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控制一组参数,这些参数包括写指针,读指针和区占有值。写指针定义来自共用存储器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将写指针加1。而且,更新占有值。控制电路CON继续这样做直至有宏命令定义的对共用存储器SDRAM的读访问已经完成。控制电路CON借助于包含在存取操作中的数据数量来检测存储操作的结束,该数量由确认信号和通过记数写入接口存储器SRAM内的数据表示。
每次从给定区Z读出数据对之后,控制该区的控制电路CON就将读指针加1。而且,更新占有值。
接口存储器存取仲裁器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之间的专用读总线BBR的大小作出的。例如,假设总线大小是N/2位。这意味着在每个时钟周期内N/2位部分能从输出缓冲存储器OB传送到单元B。接口存储器SRAM的读取是以数据对的形成进行的。一个数据对包括2N位。所以,将一个数据对送入单元B需要4个时钟周期。一个数据对的传送包含请求以读方式访问接口存储器SRAM。因此,在本例中,OB将每4个时钟周期提交一个访问请求。该例显示出通向单元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提交新请求;
待处理的请求:存取接口SIF;
周期26:具有最高优先级的存取接口SIF占用该通路并撤销其请求;
输出缓冲存储器OB1正在用尽缓冲容量并再次提交请求;
待处理的请求:输出缓冲储器OB1;等等。
上文所述的存取操作具有8个周期的一个循环。这就好象仲裁是通过具有8个状态的循环机来实现的。这是由于在本例中假没所有的单元B都以有规律的方式处理其数据。
而且,假设每两个时钟周期有规律地通过存取接口SIF递交一次访问请求。实际上,这些假设不一定是正确的。为此,最好借助于仲裁器并按照优先级的顺序控制对接口存储器SRAM的访问,而不是借助于循环机。就对接口存储器SRAM的访问而言,仲裁器具有一定程度的灵活性,因此,它能更好地利用可用于数据传送的带宽。
下面是一个规则之例外的例子,根据该例子,每两个时钟周期仅有一次对接口存储器SRAM写访问(=通过存取接口SIF访问)。该例外出现在响应包含奇数个数据的宏命令对共用存储器SDRAM进行访问的情况下。在该访问中涉及的所有数据,除了最后的数据元,都具有伙伴并由此形成对写入接口存储器SRAM中。最后的数据元是单独的。用下一个数据元形成一个对是不可能的,因为该数据元是另一个存取操作的第一个数据元,因此将用于另一个处理器P。结果,该另一个存取操作的第一个数据元应当存储在接口存储器SRAM的另一个区Z中。因此,一旦到达包含奇数个数据元的访问的最后数据元的输入缓冲存储器IB,所述数据就在该时钟周期内在没有伙伴的情况下载入接口存储器SRAM中,该时钟周期在对包含在存取操作内的最后的数据对进行写操作之后。因此,在一个周期内将连续有两个写访问操作,否则在两次写访问操作之间会允许一次读访问。
图5和9与存储器借口INT以读方式进行的操作有关。在写方式下的操作实际上是对称的。这意味着写缓冲存储器装置BUFW与上文所述的读缓冲存储器装置BUFR相类似。因此,写缓冲存储器装置BUFW包括分成区的接口存储器,每个区与不同的单元B相关联。单元B能在指示该数据应该存取在哪里的宏命令之前或之后提供将写入共用存储器的数据。实际上,与区相对应的单元B一提供将存储在共用存储器的数据,区就会被填满。例如所述填充可以继续直至该区完全被数据填满。在这种情况下,存储器接口INT将向相关单元B表示再没有存储新数据的空间了。这将防止单元B提供新数据直至空间变得在相关区中是可用的。数据从区Z传送到共用存储器导致空间可用。宏命令一被仲裁器ARB接受并经存取接口SIF处理,就会发生该数据传送。在相关单元B已经提供数据之前发送宏命令也同样是可能的。在任何情况下,只要写缓冲存储器装置BUFW不指示相关区的充分填充水平,就不会向仲裁器ARB提供宏命令。
上文参考图1-9所述的数据处理装置是开头部分的“发明概述”概括的本发明的一个实施例。参考图1,专用读总线BBR1和专用写总线BBW1能使数据专门在单元B1和共用存储器SDRAM之间进行通信。专用读总线BBR2和专用写总线BBW2能使数据专门在单元B2和共用存储器SDRAM之间进行通信。专用读总线BBR3和专用写总线BBW3能使数据专门在单元B3和共用存储器SDRAM之间进行通信。存储器接口INT允许每个单元B以数据串的形式访问共用存储器,同时在专用读和写总线BBR、BBW上产生稳定的数据流。事实上,对于每个单元B来说,存储器接口INT对从共用存储器SDRAM读出并将用于单元B的数据串进行平滑。相反,对于每个单元B来说,存储器接口INT对从单元B接收到的数据执行时间集中,以便将数据以串的形式写入共用存储器SDRAM中。
附图以及上文的说明都是示意性的而不限制本发明。显然,可以在所附权利要求的范围内进行各种变形。就此作出以下说明。
实现本发明所述的数据处理装置有各种方式。图1所示的数据处理装置包括三个处理器。其他的实施例可以包括三个以上或三个以下的处理器。而且,每个处理器具有专用总线不是必须的。一些处理器可以共享一条共用总线,通过该共用总线,处理器可以访问共用存储器。例如,图1所示的数据处理装置可以包括两个或两个以上附加处理器,未示出,这些处理器共享一条共用总线,通过该共用总线,它们可以访问共用存储器SDRAM或另一个共用存储器。
实现专用总线有不同的方式。图1所示的数据处理装置包括专用读总线BBR和专用写总线BBW。其他实施例可以包括专用双向总线。在该实施例中,处理器通过专用双向总线既能从共用存储器读数据又能将数据写入共用存储器总。该专用双向总线将运送稳定的读数据流和稳定的写数据流,这两种流是交叉存取的。
实现存储器接口有不同的方式。图4所示的存储器接口在仲裁的基础上提供对共用存储器的访问。其他实施例可以在固定方案的基础上提供对共用存储器的访问。固定方案可以是包括用于每个处理器的至少一个时隙的重复性存取方式。
通过硬件或软件,或者既用硬件又用软件来实现功能有不同的方式。在这方面,图是概略的,每个图仅表示本发明的一种可能的实施例。因此,尽管图示出了不同的功能作为不同的块,但这决不排除一个硬件或软件完成几种功能。也不排除硬件、软件或两者的组合实现一种功能。
例如,图4示出了包括不同块组合的存储器接口控制对共用存储器的访问,并控制包括在存储器接口内的存储器电路。原理上,通过适当的被编程的计算机电路实现三个块是可能的。载入程序存储器的指令组使计算机电路实现参考图1-9所述的各种控制操作。指令组可以通过读载体例如磁盘将指令组载入程序存储器中,所述载体包含指令组。读载体可以通过通信网络实现,例如因特网。即,服务提供商可以通过通信网络使指令组可用。
权利要求中的任何参考标记都不限制权利要求。词“包含”不排除存在权利要求中所列部件和步骤以外的其他部件和步骤。部件或步骤前面的字“一个”不排除存在多个这种部件和步骤。