具有响应于周期地址模式的地址重定向的数据处理设备的制作方法

文档序号:6422364阅读:148来源:国知局
专利名称:具有响应于周期地址模式的地址重定向的数据处理设备的制作方法
技术领域
本发明涉及一种数据处理设备和一种数据处理方法。
背景技术
根据美国专利No.4,956,768可以得知一种数据处理设备,其用于双重缓冲在处理器和多个出口之间转送的数据。每个出口具有一对存储器。所述处理器交替地写所述第一个存储器和第二个存储器。当所述处理器写一个存储器时,另一个存储器与所述出口耦合。从而,来自所述处理器的写入和到所述出口的输出可以并行地进行。
与所述出口相关联的处理器控制把哪个存储器连接到所述处理器并且把哪个存储器连接到所述出口。美国专利No.4,956,768没有描述怎样寻址在所述存储器内的存储单元并且在什么条件下切换所述存储器的角色。
通常使用双重缓冲来在分别用于生成和消耗来自数据流的数据的设备之间提供去耦。写入装置交替地寻址一个存储器和另一个存储器以便写入数据块。读取装置通过寻址没有正被寻址进行写入的存储器来读取所述块。通常,此外,在所述设备之间需要某种形式的信令以便指示所述写入装置何时从一个块切换到另一块。

发明内容
其中,本发明的目的是为在不同的数据处理单元之间的通信提供一种形式的双重缓冲,其中所述双重缓冲对于所述数据处理单元来说透明地被支持。
本发明提供了如权利要求1所述的数据处理设备。依照本发明,独立的切换单元控制把哪个存储单元连接到哪个数据处理单元。来自所述数据处理单元的地址用来寻址由所述切换单元选择的在存储单元中的位置,因此给定的地址可以在执行相同程序期间在不同的时间、根据切换单元的选择来寻址在不同存储单元中的位置。独立的切换单元监视由至少一个数据处理单元提供的地址以便检测在由所述处理单元提供的地址模式中的重复。当检测到重复时,所述切换单元切换所述存储单元的选择,该存储单元连接到数据处理单元。
优选地是,利用例如检测在可编程范围内地址的重复或可编程的重复数目或来自不同处理单元的地址的重复的可编程组合(例如在检测到来自两个处理单元的重复之后交替,或当在特定处理单元的地址模式中检测到重复时,对每个特定的处理单元交替,可选地在前一次从所述处理单元中特定一个地址映射改变之后被另一处理单元检测到重复时交替),用于检测所述重复的准则是可编程的。
可以使用各种检测重复的方法,诸如在检测从处理单元接收的地址的重复之后,或检测在某一范围内确定数目的访问操作,或在使用了在某一范围内的所有地址之后检测。
一般说来,所述数据处理设备还将包含存储单元,其连接不被所述切换单元来切换。从而,数据处理单元可以用来寻址存储器的地址范围中,只有该范围的一个子集寻址经由所述切换单元连接的该存储单元中的位置。虽然把在该子集中的地址交替地映射到不同的存储单元,但是一般把剩余地址映射到相同的存储单元。优选地是,所述切换单元只监视在用于寻址存储单元中位置的地址的子集中的地址重复,所述存储单元经由所述切换单元连接到所述数据处理单元。从而,不同的存储单元之间的交替并不直接取决于经由所述切换单元连接的该存储单元之外的寻址模式。
至少两个数据处理单元和至少两个存储单元可以经由所述切换单元连接。然而,本发明是可以容易地扩展的。在不脱离本发明范围的情况下,可以连接两个以上数据处理单元和/或存储单元,因此可以把来自数据处理单元的地址映射到三个或更多存储单元中的任何一个。在这种情况下,所述切换单元可以采用循环方式把三个或更多存储单元交替地连接到数据处理单元。作为替代方案,所述切换单元可以是可编程的,以便选择把所述存储单元中的哪个子集交替地连接到特定的数据处理单元。从而可以把所述数据处理设备配置为在两个以上的数据处理单元之间提供一个以上数据流的灵活的多缓冲通信。


将参考下列图描述依照本发明的数据处理设备的这些及其它目的和有益方面图1示出了一个数据处理设备,图2示出了切换控制单元的一个实施例,图3示出了切换控制单元的另一实施例,图3a示出了切换控制单元的另一实施例,和图4示出了一个切换单元。
具体实施例方式
图1示出了一个数据处理设备。所述设备包括处理单元10a、b、多个存储单元18a-c、切换单元17和切换控制单元16。每个数据处理单元10a、b具有与各自地址/控制总线14、15和各自数据总线12、13的连接。示出了与切换单元17的第一端口和第一存储单元18a耦合的第一处理单元10a的地址总线12和数据总线14。示出了与切换单元17的第二端口耦合的第二处理单元10a的地址/控制总线13和数据总线15。此外,所述第一和第二处理单元10a、b的地址/控制总线14、15与切换控制单元16耦合。所述切换控制单元16具有与所述切换单元17耦合的控制输出端。所述切换单元17具有第三和第四端口,其分别把地址/控制和数据总线线路连接到所述存储单元18a-c中的第二个和第三个。
操作中,处理单元10a、b执行包括用于从存储单元读取和/或向存储单元写入数据的指令的程序。所述指令定义相关存储单元的地址。响应于所述指令,所述处理单元10a、b经由所述地址/控制总线14、15向所述存储单元18a-c提供这些地址。取决于所述指令是读指令还是写指令,所述处理单元10a、b还分别经由所述数据总线12、13读取数据,或经由所述数据总线12、13写入数据。包含通过所述地址寻址的位置的存储单元18a-c把来自所寻址的位置的数据返回到所述数据总线12、13,或把来自这些数据总线12、13的数据存储在所寻址的位置。
第一和第二存储单元18b、c包含由相同地址寻址的位置。取决于来自切换控制单元16的控制信号,所述切换单元17把这些地址有选择地传送到所述第一或第二存储单元18b、c。类似地,把对应于这些地址的数据传送到所选择的存储单元18b、c。从而,取决于所述切换控制单元16的状态,来自处理单元10a、b的地址寻址在第一存储单元18b中的位置或在第二存储单元18c中的位置。当来自所述第一处理单元10a的地址在寻址所述第一和第二存储单元18b、c中的位置的地址范围之外时,所述地址可以直接寻址第三存储单元18a,即不经由切换单元17。
尽管只示出了单个直接寻址的第三存储单元18a,然而应当理解事实上可以存在多个这样直接连接的存储单元,一些存储单元与第一处理单元10a的地址/控制总线14和数据总线12耦合,而其它的存储单元与第二处理单元10b的地址/控制总线15和数据总线13耦合。
所述切换控制单元16包含诸如状态寄存器之类的状态保持电路(未示出),其保持状态信息,用于确定所述存储单元18b、c中的哪个连接到哪个处理单元10a、b的地址/控制总线14、15和数据总线12、13。所述切换控制单元16根据经由所述地址/控制总线14、15从所述处理单元10a、b接收的地址来更新该状态信息。所述切换控制单元16使用这些地址来检测在所述地址中周期模式的不同周期的开始。每当所述切换控制单元16检测到周期开始时,其更新所述状态信息以便随后将所述地址应用于不同的存储单元18b、c。可以使用各种检测周期开始的方法。
图2示出了切换控制单元16依照其最简单形式的第一实施例,其中只产生一个用于控制切换单元17的信号。在该实施例中,所述切换控制单元16包含与所述地址/控制总线14耦合的地址比较器20a。所述比较器20a具有与状态寄存器22a耦合的输出端,所述状态寄存器22a本身又具有与所述切换单元17(未示出)的控制输入端耦合的输出端。操作中,所述比较器20a把来自所述地址/控制总线14的地址与设置地址比较。当检测到所述设置地址时,所述比较器20a使所述状态寄存器22a的内容切换,这又使所述切换单元17交换存储单元18b、c,所述存储单元18b、c分别与所述第一和第二处理单元10a、b耦合。
切换控制单元16的另一实施例具有与图2所示的相同的结构,但是在该实施例中,所述比较器20a是当所述地址在用于寻址在第一或第二存储单元18b、c中的位置的地址的范围内的任何位置时发信号的比较器(例如通过进行两次比较,测试比上界地址低且比下界地址高的地址,或通过只使用所述地址的更有效的部分)。在该实施例中,所述单元22a是计数器,该计数器对寻址所述范围内的地址的次数进行计数,当已经计数了确定的寻址次数时复位并更新状态寄存器,所述状态寄存器控制由所述切换单元17在新的周期开始时进行的连接。这种确定的数目可以是预先确定的数,或是由程序设置的可编程的数,所述程序由处理单元18b、c之一执行。在该实施例中,产生用于所述存储单元18b、c的存储单元使能信号(或者在每个存储单元18b、c由存储器芯片组成时产生芯片使能信号)的电路可以被用作为比较器20a,在这种情况下其可以用于根据已经被选择的存储单元来向任一个存储单元18b、c提供存储单元使能信号。
图3示出了所述切换控制单元16的另一个实施例。在该实施例中,所述切换控制单元16包含读取修改写入存储器(read modifywrite memory)30、检测器32和反转触发器34。地址/控制总线14与所述读取修改写入存储器的地址输入端耦合,而所述读取修改写入存储器30的数据输出端与所述检测器32的输入端耦合。所述检测器32的输出端与反转触发器34的输入端耦合,所述反转触发器34本身又具有与所述切换控制单元16的输出端耦合的输出端。所述检测器32的该输出端此外还与所述读取修改写入存储器30的复位输入端耦合。所述读取修改写入存储器30对于每个地址值具有各自的位置,所述地址值可以用于寻址在所述第一和第二存储器18b、c中的位置。
操作中,切换控制单元16的该实施例通过检查对第一或第二存储单元18a、b中任何地址的重复寻址来检测寻址的新的周期的开始。读取修改写入存储器30为每个地址值保留信息,其表明所述地址值是否已经在当前周期中被使用。寻址所述第一或第二存储器18b、c中位置的地址也寻址在读取修改写入存储器30中的位置。最初,在一个周期开始时,所述检测器32复位所述读取修改写入存储器30的内容。每当接收到这种地址时,设置在所述读取修改写入存储器30中相应位置的内容。由所述检测器测试先前存储在所述读取修改写入存储器30中所述位置上的数据。如果已经设置该数据,那么所述检测器32发信号通知周期重复,这导致切换在反转触发器34中的数据内容并且导致所述读取修改写入存储器30的内容被复位。所述反转触发器34的数据内容控制由切换单元17进行的连接。该实施例使提供更精炼形式的周期检测成为可能,例如当某些地址在某个周期中没有被使用时忽略。
在另一个实施例中,可以由计数器来代替所述检测器32,所述计数器对从读取修改写入存储器30中读取数据进行计数,表明在一个周期中第一次使用地址。在该实施例中,该计数器在超出某个计数时发信号通知新的周期(导致切换单元17切换,复位读取修改写入存储器30,以及计数过程的一个新的周期)。从而,所述切换控制单元在已经寻址了足够多的不同位置(大于确定的数目)时发信号通知新的周期。所述确定的数目可以由处理单元10a、b预先确定或编程,例如借助于与至少一个处理单元耦合的寄存器,所述处理单元用于设置所述计数器的初始值。该实施例使实现更精炼的周期检测成为可能,例如忽略对相同地址的重复访问操作。
尽管至此参考图2和3所描述的实施例示出了根据在地址/控制总线14之一上的地址来检测该周期,然而应当理解的是,可以使用地址/控制总线14、15中的任何一个,或者可以使用来自所述总线的组合的地址,例如当已经在处理单元10a、b中的任何一个或在每个处理单元中检测到开始新的周期时切换。当所述切换单元17允许把一个以上处理单元10a、b同时连接到相同存储单元时(例如采用时间交叉方式或根据请求仲裁),所述切换控制单元16可以在两个存储单元18b、c之间彼此独立地切换处理单元10a、b的总线连接。为此,所述切换控制单元16可以具有两个检测电路,每一个例如是在图2或3范围内讨论的一种类型,其均与各自的数据和地址总线耦合,并且都控制将地址数据总线连接到哪个存储单元18b、c。
图3a示出了所述切换控制单元16的实施例的一个例子,其中使用来自总线组合的地址。所述实施例包含第一和第二重复检测单元300a、b、状态比较器302和控制寄存器304。每个重复检测单元300a、b可以包含地址比较器或具有如图2和3所示的检测器的读取修改写入存储器。重复检测单元300a、b的输出端与状态比较器302耦合,所述状态比较器302本身又具有与控制寄存器304耦合的更新输出端。所述控制寄存器304具有与切换单元17(未示出)耦合的控制输出端。
操作中,所述重复检测单元300a、b检测在来自相应处理单元的寻址模式中的重复,例如,如在图2和3的范围内所描述。在检测到重复时,所述重复检测单元300a、b就向所述状态比较器302发送信号。在一个简单的实施例中,所述状态比较器302保持当设置各自重复时所设置的状态位,并且一旦已经设置了两个状态位,所述状态比较器就切换控制寄存器304,清除所述状态位。在该实施例中,一旦已经设置了针对特定处理单元的状态位,那么优选地暂停来自该处理单元的访问操作。
在另一实施例中,所述状态比较器302不延迟所述控制寄存器304的更新,直到已经针对所有的处理单元设置了状态位,但是例如一旦在来自特定处理单元的地址模式中出现重复,就产生更新以便交替映射来自每个特定处理单元的地址,除非自从上述处理单元的最后一次交替映射以来没有发生来自另一处理单元的地址的任何交替映射。
尽管为了提供简单的设计已经举例说明了仅仅使用地址来控制切换,然而应当理解的是,在更复杂的设计中,也可以使用来自所述地址/控制总线14、15的其它控制信号。例如,可以这样设计所述切换控制单元16使得其只有当地址用于读取或只有当地址用于写入时才使用所述地址。这使实现更精炼的周期检测成为可能,例如忽略读取操作。
此外,尽管已经假定用图2和3中示出的简单的切换控制单元来检测在地址的固定范围内的重复或固定地址的重复,但是作为替代方案可以例如通过在比较器20a中使用一个或多个可编程寄存器以便定义检测范围来使用、控制可编程的范围或可编程的地址,所述寄存器与至少一个处理单元耦合,以便该处理单元可以在程序的控制下在这些寄存器中写入值。类似地,可以把地址范围检测器增加到图3的检测器中,以便检测每个地址是否处于所编程的范围内。当借助于读取修改写入存储器来检测地址的重复时,只有当所述地址处于所编程的范围内时才发信号通知重复。从而,可以在程序控制下,根据所使用的程序来调整用于检测地址模式重复的准则。类似地,用于检测来自处理单元10a、b的组合的重复的准则可以由程序控制。
优选地是,在参考图2和3描述的实施例中用来检测重复的所有地址仅仅是在寻址存储单元18b、c中的存储位置的地址范围内的地址。然而,在另外的实施例中,可以使用在该范围之外的地址。从而,可以允许具有存储单元18b、c中地址的访问模式的大的变化,所述存储单元18b、c经由切换单元17连接,而仍然允许使用在那些存储单元18b、c的地址范围之外的地址来检测重复。
图4示出了所述切换单元17的一个实施例。所述实施例包含了可选择的地址/数据总线驱动器40a、b、42a、b。第一地址/数据总线驱动器40a在一侧连接在所述第一处理单元10a(未示出)的地址/控制总线14和数据总线12之间,在另一侧连接到第一存储单元18a(未示出)的数据/地址连接端。第二地址/数据总线驱动器40b在一侧连接在所述第一处理单元10a(未示出)的地址/控制总线14和数据总线12之间,在另一侧连接到第二存储单元18b(未示出)的数据/地址连接端。第三地址/数据总线驱动器42a在一侧连接在第二处理单元10b(未示出)的地址/控制总线15和数据总线13之间,而在另一侧连接到第一存储单元18a(未示出)的数据/地址连接端。第四地址/数据总线驱动器42b在一侧连接在第二处理单元10b(未示出)的地址/控制总线15和数据总线13之间,而在另一侧连接到所述第二存储单元18b(未示出)的数据/地址连接端。
切换单元17具有控制信号的输入端44,其与地址/数据总线驱动器40a、b、42a、b的使能输入端耦合,以便根据来自切换控制单元16(未示出)的控制信号来同时使能第一和第四地址/数据总线驱动器40a、42b或者同时使能第二和第三地址/数据总线驱动器40b、42a。当使能时,所述地址/数据总线驱动器40a、b、42a、b传送数据信号和地址信号。
在不脱离本发明范围的情况下,假如提供允许共享访问存储单元18a、b的某个共享机制(例如时隙复用机制,优先权机制或仲裁机制),则可以使用更复杂的控制信号,例如允许独立于第三和第四地址/数据总线驱动器42a、b来控制第一和第二地址/数据总线驱动器40a、b的控制信号。
可以容易地把所述切换单元17扩展为支持更多数量的处理单元和/或存储单元。通过增加更多的地址/数据总线驱动器来支持更多的处理单元;通过把更多的地址/数据总线驱动器连接在一起来支持更多的存储单元。例如,为了采用循环方式来把来自所述处理单元10a、b的地址映射到不同的存储器,可以使用两个以上的存储单元。为此,代替在中图2和3示出的反转触发器,循环计数器可以用于每个处理单元10a、b,以便选择由每个处理单元10a、b来寻址存储单元18a、b中的哪个。这使得一旦已经检测到重复就可以更容易地切换来自单个处理单元10a、b的地址的映射,而不会导致存储器冲突。在程序控制下可以选择存储单元18a-b的不同循环,例如,交替寻址在第一对存储单元之间的某些地址以及交替寻址在第二对存储单元之间的其它地址,或者经由三个存储单元来循环映射所述地址。
现在将理解,所述设备允许处理单元10a、b用相同的地址来寻址在相应的存储单元18a、b中的位置。由切换控制单元来行使对存储单元的控制,在该存储单元中寻址位置,所述切换控制单元在处理单元之外,而且根据检测周期模式重复的开始来选择切换。尽管来自任何一个处理单元10a、b的相同地址根据所述切换控制单元16的状态来寻址在不同存储单元18a、b中的位置,然而通过来自不同处理单元10a、b的相同地址来寻址在所述存储单元18a、b中的位置并不是严格必要的。可以在处理单元10a、b和存储单元18a、b之间包括某些地址变换机制(只要抑制所述地址中区分在存储单元18a、b内的地址所不需要的的较有效部分),以便根据提供所述地址的处理单元,不同的地址寻址相同的位置。
权利要求
1.一种数据处理设备,包括-多个数据处理单元(10a-b),均具有地址输出端(14,15)和数据输入端和/或输出端(12,13);-多个存储单元(18a,b),均具有地址输入端和数据输入端和/或输出端;-切换单元(16,17),包括-第一可选连接,在所述处理单元(10a)的数据输入端和/或输出端(12,13)和存储单元(18a,b)中可选的一个数据输入端和/或输出端之间,-第二可选连接,其从处理单元(10b)的地址输出端到存储单元(18a,b)中可选的一个的地址输入端,-检测单元(20a,30,32),与所述处理单元(10a,b)的地址输出端耦合,被布置用来检测由至少一个处理单元(10a,b)输出的地址模式的周期的重复,-状态保持元件(22a,34),用于控制第一和第二可选连接,所述状态保持元件(22a,34)具有与所述检测单元(20a,30,32)耦合的输入端,以便响应于检测到一个新的重复来切换所述第一和第二可选连接,以便在连续的重复期间把来自数据处理单元(10a,b)的同样的地址交替地映射到不同的存储单元(18a,b)。
2.如权利要求1所述的数据处理设备,其中用于检测一个新的重复的准则在由所述设备执行的程序的控制下是可编程的。
3.如权利要求1所述的数据处理设备,其中所述检测单元包括地址比较器(20a),其被布置用来检测来自数据处理单元(10a,b)中的第一个数据处理单元的地址输出端的地址是否落入与所述存储单元(18a,b)相关联的一个或多个地址的范围内,并且每当来自数据处理单元(10a,b)中的第一个数据处理单元的地址输出端的地址之一已输出在所述范围内的地址确定的次数时,产生表明一个新的重复的检测信号。
4.如权利要求3所述的数据处理设备,其中所述确定的数目是一,并且其中所述范围是与所述存储单元(18a,b)相关联的一个或多个地址的子集。
5.如权利要求3所述的数据处理设备,其中所述确定的数目大于一,所述设备包括计数器,用于在所述范围内对根据所述数据处理单元中的第一个数据处理单元的地址输出端的地址来计数所计数的次数,至少直到所述确定的数目。
6.如权利要求1所述的数据处理设备,其中所述检测单元包括所述数据处理单元(10a,b)中的至少之一的访问存储器(30),所述访问存储器(30)包括针对多个地址的位置,所述地址寻址在所述存储单元(18a,b)中可由数据处理单元(10a,b)中的第一个数据处理单元来寻址的位置,布置所述访问存储器(30)来记录对所述存储单元(18a,b)中的这些位置的访问,布置所述检测单元(32)以便根据所述访问存储器(30)是否表明在重复期间之前已经提供了由所述处理单元(10a,b)中的第一个处理单元提供的地址来产生表明新的重复的检测信号。
7.如权利要求6所述的数据处理设备,其中如果数据处理单元(10a,b)中至少之一输出一个地址,针对该地址在先前检测到所述新的重复之后所述访问存储器(30)先前已经记录访问,则所述检测单元(32)产生所述检测信号。
8.如权利要求6所述的数据处理设备,其中如果数据处理单元(10a,b)中至少之一已经执行多于确定数目的地址,针对这些地址所述访问存储器表明先前在重复期间没有提供所述地址,则所述检测单元(32)产生所述检测信号。
9.如权利要求1所述的数据处理单元,其中所述多个存储单元(18a,b)包括三个或更多存储单元,所述状态保持元件控制所述第一和第二可选连接的切换,以便来自所述数据处理单元的同样的地址在连续的重复期间循环地映射到三个或更多存储单元中不同的存储单元上。
10.如权利要求1所述的数据处理单元,其中布置所述检测单元以便执行重复检测,所述重复包括来自所述处理单元(10a,b)中至少之一的读和/或写控制信号的重复。
11.一种数据处理方法,所述方法包括-检测从多个处理单元中的至少一个所输出的访问地址模式的周期的重复,-切换在所述处理单元的数据输入端和/或输出端和多个存储单元中可选的存储单元的数据输入端和/或输出端之间的可选连接,以便来自多个处理单元中至少一个的相同地址根据所述重复的检测来交替地寻址在所述存储单元中不同存储单元中的位置。
全文摘要
一种处理系统包括检测单元,该检测单元检测从多个处理单元中至少之一输出的访问地址模式的周期的重复。所述接口切换在所述处理单元的数据输入端和/或输出端和多个存储单元中可选存储单元的数据输入端和/或输出端之间的可选连接。结果,来自多个处理单元中至少一个的相同地址根据所述重复的检测交替地寻址在所述存储单元中不同存储单元中的位置。优选地是,所述检测单元包含地址比较器,其被布置用来检测来自所述数据处理单元中的第一个数据处理单元的地址输出端的地址是否落入与所述存储单元相关联的一个或多个地址的范围内。每当来自所述数据处理单元中的第一个数据处理单元的地址输出端的地址之一已经输出在所述范围内的地址达到确定的次数时,所述检测器产生一个表明一个新的重复的检测信号。
文档编号G06F12/06GK1711528SQ200380102770
公开日2005年12月21日 申请日期2003年10月8日 优先权日2002年11月5日
发明者B·托马斯 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1