请求数据的方法及其设备的制作方法

文档序号:6407789阅读:145来源:国知局
专利名称:请求数据的方法及其设备的制作方法
技术领域
本发明一般来说涉及数字计算系统,并特别涉及用于数据通信的协议。
数据处理系统的基本操作之一是存储器读操作。在存储器读操作中,数据请求者是通过下标(index)或称“地址”来识别数据段的,并把该地址提供给存储系统。然后存储系统把相关的数据段通过一个或多个机器周期发给请求者。原先存储读操作曾经是相当简单的操作。例如,在第一代个人计算机中,唯一的数据请求者是中央处理单元,唯一的存储系统是随机存取存储器(“RAM”)单元的外部组合,唯一的数据量是一个字节(8位)。RAM电路可以把单个的数据字节在单个的机器周期中通过典型的八位总线发出。历史上,每一新的数据处理系统的性能都会使原先的系统的性能黯然失色。相继的系统之间某些最明显的改进直接影响了存储器读操作的复杂性与作用范围。很多这些改进对于集成为一个或数个集成电路的数据处理器是特别重要的。
影响数据读指令的数据处理系统的某些改进是多执行单元,分级存储系统以及多处理器的体系结构,包括多个执行单元的体系结构通常可同时执行两个或多个指令。这些同时出现的指令可能会在时间上彼此有微小的交错,象管道运输系统那样,它们也可能在时间上是一致的,象超级标量数据处理器的情形那样,或两者都有。不管怎样,多执行单元产生可能同时请求数据的多个数据请求者。通常,多执行单元从一个小型的,速度高的存储器超高速缓冲存储器中请求数据。速度高的存储器超高速缓冲存储器是两层的多级存储系统的一部分。超高速缓冲存储器是对大型的、较慢的外部RAM部件(block)的补充。超高速缓冲存储器与外部的RAM部件合起来提供了快速有效的存储器存取。多处理器体系结构实现了以下模式,在此模式中多处理器可从单一外部存储器请求数据或一个处理器可请求另一个处理器的存储器的超高速缓冲存储器中的数据。所有这些情形中,数据读操作必须能考虑大约是在相同时间请求数据的多个请求器。
最早的读数据操作的两个已知的改进是数据脉冲串(burst)协议与临界(critical)字第一协议。这些协议认可数据读操作是耗时的而且存储器在小时间间隔过程中的存取常发生在存储器相同的通用区域。后者被称为“局部性”。
按照脉冲串操作,虽然操作是以单一下标被编址的,但几个数据读操作作为一组是在几个时钟周期中一同发生的。开始一个请求者可能只要求等于或小于数据总线带宽的数据量。但是,相关的存储系统向请求器发出比在一个时钟周期中总线带宽所允许的更多的数据。例如,六十四位数据处理器可以具有128位的总线带宽。在一个脉冲串操作中相关存储系统在四个时钟周期中可以向请求者发出总共512位。这种情形下,该存储系统在每一时钟周期中发出128位。通常,存储器系统发出由X…XX000000(最有效的位到有效性最小的位)规定的地址开始的四个四倍长字,其中X为0或1,它由请求者地址决定。脉冲串操作的一个基本假定是存在某种可能性,即请求器在后继时刻请求与被编址的字节相邻的一些数据。如果该请求者在以后的时间中确是要求了某些相邻的数据,则该请求者将准备具有该数据而不必占据该总线。
临界字第一协议是上述脉冲串协议的细化。在上例中,临界字第一协议要求存储系统首先发出四个四倍长字中的特定的一个。其余三个四倍长字跟随临界字之后。选择第一个四倍长字或“临界字”是由于它包含特定的数据字节,半字或字等这些相关的请求者立即需要的信息,存储系统通过发出由地址X…XXXX0000(最有效的位到有效性最小的位)作下标的四倍长字来满足临界字第一协议,其中X按请求者地址确定为0或1。
已知的协议已不能与数据处理体系结构中的改进相适应。例如,上述的两协议原设计为增加连续发生的读操作的效率。但它们不能提供用于同时数据请求的协议。
根据本发明,公开了一种基本上消除现有的数据请求协议不足之处的数据请求方法。
数据处理系统中的请求数据的方法具有以下步骤通过请求仲裁器从多个请求者接收多个请求,在第一时刻请求每一请求的第一段并在第二时刻请求每一请求的第二段。对数据的每一请求对应于数据的第一段。至少一个请求也对应于数据的第二段。第一段与第二段是根据第一和第二预定顺序分别被请求的。
而且,本发明透露了具有多个存储器单元的数据处理系统,与请求仲裁器耦合的每一存储单元存储一个数据值。该请求仲裁器接收多个数据请求。多个数据请求的每一个对应于多个数据值之一的第一段,并且至少多个数据请求之一也对应于多个数据请求之一也对应于多个数据值之一的第二段。该请求仲裁器在第一时刻以第一预定顺序请求多个数据请求的每个第一段,并在后继的第二时刻以第二预定顺序请求多个数据请求的每一第二段数据。
本发明的特点和优点由以下结合附图所作的详细说明将会得到更清晰的理解,其中各个图号表示附图的各对应部分,其中

图1表示按本发明所构造的数据处理器的框图;
图2表示图1中所示的存储器行的框图;
图3表示用于对图2中所示存储器行作下标的地址格式的框图;
图4表示根据第一组初始条件的图1中所示的数据处理器的时序图;
图5表示根据第二组初始条件的图1中所示的数据处理器的时序图;以及图6表示根据第二实施例的图1中所示的数据处理器的时序图。
图1表示根据本发明构造的数据处理器10的框图。数据处理器包括请求仲裁器12与存储器行部件14。存储器部件14的各行标以“行0,行1,行2,”等等。请求仲裁器12接收标以“请求者A”,“请求者B”以及“请求者C”的多个数据请求。请求仲裁器如下所述经由标以“数据请求”的路径在各时刻向存储器单元14发出各个请求的字段。然后存储器单元14对应于所发出的请求经标以“数据”的路径发出数据。如下所述,请求仲裁12收到包含在存储器部件14中的多个数据请求。每一请求有与之相关的一个临界字和一个或多个非临界字。首先,请求仲裁器12将根据第一优先序向存储器部件14发出每个临界字请求。其次,该请求仲裁器12将根据同样的优先序向存储器部件14发出每个非临界字。因而即使在请求是同时的情形下,请求仲裁器12与存储器部件14也能够以有效的方式向多个数据请求者提供数据。
所应明白的是数据处理器10是一个高度简化了的数据处理器的表示。数据处理器10的大部分都被简化掉了,因为它们的内容对本发明理解没有太大帮助。例如,本专业技术人员易于理解,数据处理器10要包括诸如一个或多个执行单元,数据总线接口单元等部件。
所透露的本发明可以在数据处理系统内,以一种或多种方式实现。请求仲裁器12与存储器部件14可以在数据处理器的内部,也可以在外面。而且也不必要求这两个部件在一个单独的集成电路上。结合说明所透露的本发明的其它应用对于本专业人员也将是易于理解的。
在所示的实施例中,请求仲裁器12是数据处理器10中的存储器管理单元,而存储器部件14则是同一个数据处理器中的存储器的超高速缓冲存储器。存储器管理单元管理着出入相关的存储器的超高速缓冲存储器的数据流。这种情况下,“请求者”A、B与C可以分别是数据读取单元,指令读取单元与总线接口单元。返回这三个单元的数据将分别被数据处理器作为数据应用,被数据处理器作为指令应用或被经由总线(未示出)连接的外部设备作为数据或指令应用。
在第二个实施例中,请求仲裁器12可以是数据处理上的一个存储器管理单元,而存储器部件14可以是存储器外部部件。这种情况下,请求仲裁器12可以为一个L2超高速缓冲存储器控制器。三个请求者之中的两个可以是L1超高速缓冲存储器的控制器以及总线接口单元。这两个请求者将分别把数据在错过L1高速缓冲存储器之后返回给L1高速缓冲存储器控制器,以及返回给通过总线连接的外部设备。
在第三个实施例中,请求仲裁器12可以是一个独立的设备,该设备监视着处于存在有几个设备从存储器部件14请求数据的环境中的总线。这种情形下,存储器部件14可被集成到包含请求仲裁12的集成电路的内部或外部。多处理器数据处理系统是另一种环境,其中多个请求者可能从一个存储器部件中要求数据。在多处理器数据处理系统中,“请求者”A,B与C对应着三个各自不同的数据处理器。
图2表示3图1所示的示例性的存储器16的框图。在所示的实施例中,存储器行16具有六十四个单独的字节18。每个字节18包含了8位数据。因而,整个的行包含了五百一十二个数据位。这六十四个字节的数据可分为四个四倍长字(128位),标以“四倍长字1”,“四倍长字2”“四倍长字3”以及“四倍长字4”。如图1所示,路径“数据”为一百二十八位宽。因而,在每一时钟周期之中可向请求者发出直到一个完整的四倍长字。在一个脉冲串操作中,请求仲裁器12请求需要多于一个时钟周期才能发出的数据量。这里,请求仲裁器12请求,并且存储器部件14发出存储器行是在四个时钟周期上进行的。特别地,一个特定行的四个四倍长字之一,即存储器行的四分之一在四个时钟周期之一过程中被发向请求者。其余的三个四倍长字的每一个在其它的三个时钟周期中发向请求者的。如以下所述,其他数据请求可在这四个时钟周期之间插入(intervene)。
当请求仲裁器12请求存储器部件14的特定行时,请求仲裁器并不总是从该行内同一四倍长字开始。而是请求仲裁器12首先请求包含临界数据字的四倍长字。在稍后的时刻请求仲裁器12请求其余的三个四倍长字。临界数据字的长度小于脉冲串的全长而与路径“数据”的宽度相同。按照定义,临界字是相关的请求者立即需要的数据。该行中其余的数据仅由于上述的局部性原因而为该请求者所需要。在所示的实施例中,临界数据字是一字节。虽然已描述了特定行的长度,数据路径的宽度与临界字的长度,但所公开的本发明并不限于这些特定的规格。
作为一个例子,图2表示出被一个特定的请求者请求的存储器行16。在所示的该例中,特定的请求者需要整个的数据行,但是特别需要在“四倍长字”3中标以临界字节的第六字节。因而,请求仲裁器12将首先请求所示的存储器行的第三个四倍长字。有关其余三个四倍长字的协议如下所述。
图3表示用以对图2所示的存储器行16加下标的地址格式20的框图。在所示的实施例中,存储器部件16的每一字节具有专用的四十位地址。特定地址的三十四个最有效的位(标以B39到B6)对存储器部件14中的特定存储器行加下标。其余六个有效性最小的位(标以B5到B0)对特定存储器行16中的六十四字节之一加下标。第四与第六位(分别标为B5与B4)确定被请求的字节在那一个四倍长字。继续2中所开始的例子,特定的请求者将向请求仲裁器12发出四十位地址。所发出的地址有效性最小的六位将等于100110,最有效的位到有效性最小的位。请求仲裁器12将首先请求由所发出的地址的三十六个最有效的位与0000的并置(concatenation)加下标的字节开始的四倍长字。这一并置对在第三个四倍长字内的第一字节加下标。其余三个四倍长字由三十四个最有效的位,不同于那些位的第三个四倍长字的值的B5与B4的三种排列之一以及0000并置作下标。在所示的例子中,不同于那些位的第三个四倍长字的B5与B4的三个排列为00,01与11。
图4表示根据第一组初始条件的图1中所示的数据处理器10的时序图22。时序图22表示出标以“时钟”的时钟信号24,标以“请求者A”的第一请求信号26,标以“请求者B”的第二请求信号28,标以“请求者C”的第三请求信号30,以及标以“数据请求”的所发出的数据请求信号32。这后四种信号对应于图1中同样命名的四种信号。时钟信号24的每一周期对应于一时间间隔,在该间隔中存储器部件14可发出最大长度等于信号通路“数据”的宽度的一组数据。在时钟信号24的第二周期中,三个请求者的每个都使其输出指示出其从存储器部件14中请求数据。在该示例中,请求者A请求数据字A,请求者B请求数据字B,以及请求者C请求数据字C。每一数据请求为四周期数据脉冲串。但是,这些请求中仅有一个请求需要一个多周期数据操作以实现所透露的本发明。还应当明白的是数据请求信号32可以包含一些间隙,在这些间隙中没有数据请求发生或在其中发生与本发明无关的其它事件。这些部分的细节取决于请求仲裁器12与存储器部件14的细节。
继续看图4,请求仲裁器12首先根据第一优先模式发出包含四个请求的各个临界字的数据量。其中,第一优先模式为A-B-C。于是,请求仲裁器14按顺序请求临界字A,临界字B与临界字C。如上所述,在每一时钟周期中所传送的数据量可与数据路径“数据”的宽度一样。临界字可以与同样的数据路径宽度一样大或小于它。在所示的实施例中,数据传输量与临界字长分别为一百二十八位与八位。
请求仲裁器12仅在已请求了每一临界字之后请求与每一请求相关的其余的数据。在这第一实施例中,请求仲裁器12遵循同样的第一优先模式。因而,请求仲裁器按顺序请求非临界字A,非临界字B与非临界字C。如上所述述,每一请求需要四个时钟周期来完成所有的数据传送。因而,每一非临界数据的传送需要三个(包括临界字的传送小于四个)时钟周期来完成。对于数据字A的非临界数据请求标以A+1,A+2,A+3。对于数据字B的非临界数据请求标以B+1,B+2,以及B+3。对于数据字C的非临界数据请求标以C+1,C+2,以及C+3。
图5是图1中所示的数据处理器根据第二组初始条件的时序图。其中,请求者A在时钟信号24的第五个周期中请求数据。如图所示,请求仲裁器12在时钟信号24第一周期中依据两个请求已经请求了包含临界字B、临界字C和请求B的一部分非临界数据。这种情形下,请求仲裁器12停止请求非临界数据(不包含临界字的数据)而请求请求者A的临界字。请求这个临界字之后,请求仲裁器12根据相同的第一协议请求非临界数据。这种情形下,由于请求者A与请求者B或C比较是较高优先的请求,于是请求仲裁器12请求与请求者A相关的三个非临界数据字。然后请求仲裁器继续请求B与C余下的部分。
图6表示图1所示的数据处理器按第二实施例的时序图36。在这第二实施例中,请求仲裁器12按照与第一优先模式不同的第二优先模式请求非临界数据字。所示的第二优先模式为C-A-B。如同与图4相关的陈述,请求仲裁器首先请求包含临界字A、临界字B与临界字C的数据。而后请求仲裁器12请求非临界字C,非临界字A与非临界字B。每一非临界字也需要三个时钟周期进行访问。这第二实施例还可适用于请求者之一,C,为几个数据处理器共用的总线的情况。
所公开的发明提供了一个通信协议,它在多个数据请求者与数据总线带宽限制的制约中集成了数据脉冲串传送的优点的通信协议。该协议允许在与数据请求相关的非临界数据字从存储器系统被请求之前,代表几个数据请求的临界字被请求。
虽然对本发明是参照特定实施例进行说明的,但是进一步的修改和改进对于本专业技术人员是可行的。例如,请求仲裁器12与存储器部件14可在各式各类的实施例中实现,包括多个和单个处理器的数据处理系统以及在带有主级或次级存储器的超高速缓冲存储器的数据处理系统中实现。因此,应当明白,本发明是包括了所有那些不背离所附权利要求中定义的本发明的要求和范围的修改形式。
权利要求
1.数据处理系统中请求数据的方法,它包括以下步骤·由请求仲裁器从多个请求者接收多个数据请求,该多个数据请求的每一个分别对应于数据的第一段,至少多个数据请求中的一个对数据的第一段和数据的第二段都加下标;·在第一时刻,该请求仲裁器以第一预定顺序请求多个数据请求的每一个第一段,以及·在第二后继时刻,该请求仲裁器以第二预定顺序请求多个数据请求的每一个第二段数据。
2.请求数据的方法,它包括以下步骤·请求仲裁器从多个请求者接收多个数据请求,该多个数据请求的每一个包括一对位组,每一对位组包含第一与第二子位组,每一第一子位组对第一数据值加下标,一对位组的每一第一子位组包含每一第二子位组,每一第二子位组包含预定数目的位;·在第一时刻,按第一预定顺序请求对每一第一子位组标以下标的每一数据值;以及·在后继的第二时刻,按第二预定顺序,请求对选定位组对的第二子位组之一与位的排列的至少一个并置加下标的至少一个数据值,该位的排列包含预定数目的位,该位的排列逻辑上不同于所选定的位对的第二个子位组。
3.一种数据处理系统,它包括·多个存储单元(14),每个存储单元存储一个数据值;以及·与该多个存储单元(14)的每个单元相连的请求仲裁器(12),该请求仲裁器接收多个数据的请求,这些多个数据请求的每一个对该多个数据值之一的第一段作下标,该多个数据请求中至少一个对该多个数据值之一的第一段加下标并对多个数据值之一的第二段加下标,该请求仲裁器在第一时刻按第一预定顺序请求该多个数据请求的每个第一段,并且在第二个后继时刻按第二预定顺序请求多个数据请求的每个第二数据段。
全文摘要
数据处理系统中请求数据的方法具有以下步骤从多个请求者通过请求仲裁器(12)接收多个数据请求,在第一时刻对每一请求的第一段进行请求并在第二时刻对第一请求的第二段进行请求。每一数据请求对应于数据的第一段。这些数据中至少一个也对应于数据的第二段。对第一段与第二段的请求是分别根据第一和第二预定顺序进行的。所透露的方式在任何非临界数据段被请求之前首先对每一请求的所有临界数据进行请求。
文档编号G06F9/52GK1109610SQ9410354
公开日1995年10月4日 申请日期1994年4月1日 优先权日1993年4月5日
发明者约翰·D·科丁顿 申请人:莫托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1