CN1411575A - 处理有序数据请求到存储器 - Google Patents

处理有序数据请求到存储器 Download PDF

Info

Publication number
CN1411575A
CN1411575A CN99814837A CN99814837A CN1411575A CN 1411575 A CN1411575 A CN 1411575A CN 99814837 A CN99814837 A CN 99814837A CN 99814837 A CN99814837 A CN 99814837A CN 1411575 A CN1411575 A CN 1411575A
Authority
CN
China
Prior art keywords
request
data
port
ordered
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN99814837A
Other languages
English (en)
Other versions
CN1208723C (zh
Inventor
J·W·C·傅
D·A·穆尔拉
G·S·马修斯
S·E·塞勒
J·-J·肖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1411575A publication Critical patent/CN1411575A/zh
Application granted granted Critical
Publication of CN1208723C publication Critical patent/CN1208723C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline

Abstract

一种提供用于从一存储器请求数据的方法。该方法包括发出多个数据请求至存储器的数据请求端。多个数据请求包括至少两个有序数据请求。该方法包括确定是否较早的一个有序数据请求之一对应于在该存储中的一个丢失,并将新近的一个有序数据请求之一转换到响应对应于存储器中的一个丢失的较早的一个有序数据请求之一的一个予取。一个设备包括一个具有用于接收数据请求的至少一个流水线端口的存储器。该端口适于确定一个较早的有序数据请求之一是否对应于存储器中的一个丢失。该端口响应于确定对应于存储器中的一个丢失的较早的一个数据请示之一将一个新近有序数据请求转换到一个予取。

Description

处理有序数据请求到存储器
                     发明背景
发明领域
本发明一般涉及数据处理系统领域,特别涉及处理有序数据请求到存储器的方法和设备。
相关技术说明
对更快的更有效的个人计算机的要求已导致计算机工业中许多技术进步,包括快速存储器的开发。历史地,个人计算机的性能已联系到对存储器存取以检索由指令操作的数据和检索对指令本身编码的数据的速度。高速处理器的性能受阻低数据存取时间。为加速数据存取,已开发了一种快速存储器如人们了解的“高速缓存器存储器”。
高速缓存器存储器比较小并运行在比主存储器高的速度上是由于更直接地连接到处理器或硬件应用。该高速缓存器存储器储存最近使用的数据块,使得存取这些块比存取该主存储器更快。
使用高速缓存器存储器通常使处理器减少与从存储器检索数据相关的等待周期量。当数据请求者发出对数据请求时,高速缓存器存储器确定数据是否存在在该高速缓存器存储器内。当该数据是在该高速缓存存储器内时,产生称为高速缓存存储器“命中”的一种情况,而该数据以相对小的等待时间传向该数据的请求者。当数据不存在在该高速缓存存储器内时,产生称为高速缓存器存储器“丢失”的一种情况,而该高速缓存器存储器执行某些操作。首先高速缓存器存储器从一个辅助存储器检索要求的数据。然后高速缓存器存储器将该请求的数据送到该数据请求者并将该检索的数据储存在高速缓存器存储器本身之中。辅助存储器可以是一个主存储器或另一高速缓存器存储器,即一个多级缓冲器存储器。从辅助存储器检索数据通常是一个相当慢的操作。
多数高速缓存器存储器具有两个子系统,一个“高速缓存器标记阵列”和一个“高速缓存器数据阵列”。高速缓存器标记阵列储存与数据阵列入口相关的辅助存储器地址的入口。该地址用于确定一个数据请求是否将引起高速缓存器存储器命中。高速缓存器数据阵列响应数据请求储存和提供数据。在多级高速缓存器存储器中每个高速缓存器数据阵列具有相应的标记阵列。
通过并行和按级执行处理,流水线已进一步改善了处理器的性能。与在开始处理下一个指令之前所有级完成一个指令的串行处理相反,流水线设备交错在同一时间处理不同指令的级。这样虽然每个指令的有效处理速度保持不变,但增加了指令处理的通流能力,因为某些指令可以由不同的单独流水级并行处理。因为对存储器的数据请求是重复进行的,所以流水线数据请求部分能加速数据请求的处理。
图1A为用于对具有一个流水数据请求端口的一个高速缓存器存储器的两个串行数据请求的定时图。流水线具有四个级,即四个级的等待时间。一个数据请求可以在每个时钟周期即每一时钟的一个带宽开始。第一和第二请求分别在t=0和t=1接收。对于在说明的流水线数据请求端口,在第三级一个数据请求的命中或丢失成为已知。这样在端口开始处理一个数据请求的时间和得知该请求能完成的时间之间存在三个时钟周期的延迟而不需要从一个辅助存储器的慢数据检索。
数据请求可以是“有序的”或“无序的”。有序的指示在该贯序的顺序中应当由硬件完成相互地有序的请求。一个排序关系的例子给人以强烈印象,即一个较早发出的请求,例如图1A的第一请求在最近发出的请求、例如图1A的第二请求之前完成。存在另外一些排序的关系、例如同时发出的数据请求可以用一个程序的顺序排序。以下“较早”排序的操作定义为应当在“最近”排序操作之前完成的操作。“较早”和“最近”并不限制到程序的排序。如果两个请求是“无序的”,则硬件可以按任意顺序完成两个请求。数据请求的排序用流水线高速缓存器存储器可以减缓数据请求的处理。
图1B是一个定时图,说明为何处理有序数据请求可以是成问题的。第一和第二数据请求分别是对图1A高速缓存器存储器的较早和最近的有序请求,它们分别在t=0和t=1接收。在图1B中,第一请求导致高速缓存器存储器的丢失。第一请求在大于四个周期中完成,这是因为对于一个高速缓存器存储器的丢失该请求的数据必须从缓慢的辅助存储器检索。另一方面,第二请求在四个周期内完成,因为该第二数据请求导致一个高速缓存器存储器的命中。这样,串行地发出有序数据请求可导致检索,即在高速缓存器存储器丢失的情况下违反有序关系。
图1C表示用于避免违反该有序关系的数据检索的方法。延迟第二或最近有序数据请求发出直到t=3,即直到得知第一请求的命中/丢失状态之后。在所说明的流水线高速缓存器存储器中第二请求等待三个时钟周期,直到确定该第一请求的命中/丢失状态。等待较早请求状态的需要降低了处理有序数据请求的速度,即增加了等待时间,和减小了流水线的优越性。
在每一时钟周期通过起动若干数据请求处理的多端口存储器可进一步增加一个存储器的速度。图2A是用于一高速缓存器存储器中的四级的成双流水线数据请求端口的定时图。两个数据请求可以在每个时钟周期中接收。这样,该成双数据请求端口可以使数据请求通流量加倍,即每时钟带宽为二。高速缓存器存储器的命中和丢失在第三级是已知的,即三个时钟脉冲的延迟。在处理有序数据请求时,该延迟能导致难以对付的问题。
图2B是说明对在图2A成双流水线数据请求端口中处理有序请求时的一个问题的定时图。该第一和第二数据请求是串行有序的,即第一数据请求是较早请求。在t=2,确定该第一数据请求将寄存一个高速缓存器存储器丢失。第二数据请求寄存一个高速缓存器存储器命中并在t=3即在较早的第一请求前能完成,这是由于该第一数据请求必须从辅助存储器完成缓慢数据检索。有序数据请求不能用如一个多端口存储器中的方法处理,因为由于一个高速缓存器存储器丢失一个最近有序指令可在一个较早请求之前完成。
图2C的等时线(time line)说明在图2A的成双流水线数据请求端口中处理有序请求的方法。响应对较早有序数据请求即第一数据请求的一个高速缓存器存储器丢失,所有流水线中的进行中的请求被刷新。该刷新消除了排序违章。然而该刷新也减少了存储器的速度和流水线的优点,因为某些刷新的请求可以不是有序的。
本发明针对克服一个或多个上述问题,或者至少减小其影响。
发明概述
在本发明的一个方面中,提供了一种用于从一个存储器请求数据的方法。该方法包括向该存储器的一个数据请求端口发出多个数据请求。该多个数据请求包括至少两个有序的数据请求。该方法包括确定较早的一个有序数据请求是否相应于在该存储器中的一个丢失,以及响应相应于该存储器中的一个丢失的较早的有序数据请求之一将一个有序数据请求最近的一个转换到一个予取。
在本发明的另一方面中,提供了一个设备。该设备包括一个存储器,其具有至少一个流水线端口,用于接收数据请求。该端口适于确定一个较早有序的一个数据请求是否相应在该存储器中的一个丢失。该端口响应于确定较早的有序数据请求之一相应于在该存储器中的一个丢失将最近的有序数据请求之一转换到一个予取。
附图的简要说明
根据阅读下列详细说明并参照附图,本发明的其他目的和优点将成为显而易见,其中:
图1A是等时线,说明在现有技术高速缓存器存储器的一个流水线数据请求端口中两个连续接收数据请求的进程;
图1B是等时线,说明在图1A流水线数据请求端口中连续处理两个“有序的”数据请求情况下的问题;
图1C是等时线,说明在图1A现有技术高速缓存器存储器中处理“有序的”数据请求的一个现有技术方法;
图2A是等时线,说明在现有技术高速缓存器存储器的成双流水线数据请求端口中两个数据请求的进程;
图2B是等时线,说明在图2A现有技术高速缓存器存储器中处理两个“有序的”数据请求的问题;
图2C是等时线,说明在图2A现有技术高速缓存器存储器中如何可应用刷新来处理有序数据请求;
图3A是用于处理有序数据请求设备的一个实施例的方块图;
图3B是等时线,说明用于响应一较早有序数据请求的一存储器丢失处理最近数据请求的方法;
图4A是流程图,说明用于处理有序数据请求到图3A存储器的方法的一个实施例;
图4B是流程图,说明图4A方法的一个特定实施例;
图5是流程图,说明处理有序数据请求到图3A存储器方法的另一实施例;
图6是用于处理有序数据请求到多级高速缓存器存储器系统的设备的一个实施例的方块图;以及
图7是用于处理来自若干执行单元的有序数据请求的一个实施例的方块图。
虽然本发明可容许各种修改和各种方式,其指定的特定实施例已由附图中的例子表示并在此将详细描述,然而,应当理解,在此对特定实施例的说明并不意味着将本发明限制到所描述的具体形式,相反,本发明将覆盖所有在本发明由附加权利要求限定的精神和范围内的修改,等效和替代。
特定实施例的详细说明
以下将描述本发明的说明性的实施例。为清楚起见,在说明书中并非所有实际实施特征都加以描述。当然应当理解是按任意实际实施例的改进结构设计方式加以描述。为达到开发者的指定目的,必须进行各种实施-专有的判定,例如依照有关系统的和有关业务的约束。这将从一个实施到另一实施改变。此外应当理解这样的一种开发努力可以是复杂的和费时的,但仍然是了解在此公开的好处的普通专业人员的着手路径。
图3A表示本发明的一个实施例。它包括具有一个执行单元105的处理器,流水数据请求端口110,控制逻辑115,和存储器120。虽然图3A实施例的存储器120是一个高速缓存器存储器,但另外的实施例可使用其他类型的存储器。虽然本发明并不限于高速缓存器存储器,但存储器120和相应的端口110以下可以分别按高速缓存器存储器和具有一高速缓存器标记阵列的流水端口说明。此外,虽然在图3中未指明,在某些其他的实施例中控制逻辑115可驻留在流水数据请求端口110中。流水数据请求端口110可以是用于高速缓存器存储器120的多数据请求端口。
在一个时钟周期期间执行单元105能将多个有序数据请求发向高速缓存器存储器120。执行单元105期望每个有序数据请求按原始传送到流水端口110的顺序完成。高速缓存器存储器120还从另外的执行单元(未示)接收数据请求。这些另外的数据请求相对来自执行单元105的数据请求可以是无序的。控制逻辑115能将一个有序的数据请求转换到一个予取,如果流水线端口110确定一个相对于另一有序请求是较早数据请求将寄存一个高速缓存器存储器丢失。换言之,万一一个高速缓存器存储器“丢失”一个较早有序的数据请求,图3实施例中的控制逻辑115将一个后续的有序数据请求转换为一个予取。
仍然参照图3A,一个予取从一第二辅助存储器(未示)检索该请求的数据并将该检索的数据储存在主存储器中,例如高速缓存器存储器120,而不将该数据传送到原始数据请求器,例如执行单元105。在某些实施例中,数据请求如上所述只转换到予取,如果被转换的数据请求自身被确定为一个高速缓存器存储器丢失。
还是参照图3A,高速缓存器存储器120可以具有一个多流水线数据请求端口,该端口在每个时钟周期期间能接受多重的数据请求。这样,在每个时钟周期期间执行单元105可以发出多个有序数据请求到流水线端口110。例如,执行单元105在第一时钟周期期间可发出多个有序数据请求,然后在第二时钟周期期间发出另外的多个有序数据请求。流水线数据请求端口110还可以从其他的执行单元(未示)接收数据请求。另外的数据请求相对来自说明的执行单元105的数据请求可以是或可以不是排序的。这样,流水线端口110可以同时接收有序的和无序的数据请求。所说明的实施例以发出的顺序将该请求的信息返回提供到执行单元105,而不管在处理该数据请求的同时是否发生一个高速缓存器存储器“命中”或“丢失”。
图4A描绘处理数据请求方法190的一个实施例,例如对图3A存储器120的请求,其中某些数据请求彼此是排序的。在块200,发出多个数据请求到存储器120。多个数据请求包括至少两个数据请求是彼此排序的。例如,该两个数据请求可以是来自同样的执行单元,例如图3A中的执行单元105。这多个数据请求可以在一个或多时钟周期内发出,而且可包括未排序数据请求。在块210,流水线端口110确定较早的有序数据请求之一是否为一存储器命中,即,请求的数据是否在存储器120中。在块215,控制逻辑115将最近的有序数据请求之一转换到一个予取。如果较早的有序数据请求之一已被确定为一个高速缓存器存储器丢失。在某些实施例中,相对于数据请求确定为一个高速缓存器存储器丢失的最近排序的所有数据请求被转换到予取。在块220,流水线端口110响应较早的有序数据请求之一对存储器120执行较早的一个和最近的一个有序数据请求,该较早的一个有序数据请求在块210已被确定为一个存储器命中。
参照图3A和4A,一个最近数据请求并不响应相对该最近数据请求是未排序的一个较早数据请求的高速缓存器存储器丢失转换到一个予取。例如,在某些实施例中对于由一第二执行单元(在图3中未示)请求的一个数据的一个高速缓存器存储器丢失并不导致由该执行单元105请求的一个数据转换到一个予取。不论怎样,在其他的实施中来自不同执行单元的数据请求可以相互排序。
图4B说明图4A方法的一个特定实施例225,其中一个自身被确定为一个高速缓存器存储器命中的最近有序数据请求并不被转换到一个予取。块200,210,215和220已相对于图4A加以描述。在块230,流水线数据请求端口110确定最近有序数据请求之一是否为一高速缓存器存储器命中。在块235,流水线数据请求端口110响应确定最近的有序数据请求之一是高速缓存器存储器命中,即未转换这些最近有序请求到予取而刷新最近的有序数据请求之一。块230和235以单独请求为基础执行并可以对不同的最近的有序数据请求分开地执行。块235的刷新可以改善图3A处理器100的效率,这是由于一个予取对于重新登记一个高速缓存器存储器命中的数据请求是无用的。
图5方法240是图4A方法和一个特定实施例。块200,210,215和220已相对图4A加以描述。例外地在块245,流水线端口110完成相对被确定为一个高速缓存器存储器丢失的较早有序请求是未排序的数据请求。在块250,响应在先在块210确定为一个存储器丢失的较早有序请求的完成重新发出最近的有序数据请求。该最近的有序数据请求包括在块215转换到一个予取的请求和也可能是另外的排序的请求,例如在图4B块235的刷新的请求。该最近的排序的请求不得不重新发出,这是因为它们还未将该请求的数据加到数据请求器,例如执行单元105。每次重复图4A和5的方法,执行单元105将有序数据请求发出到流水线端口110。
参照图4A,4B和5,各个实施例可以改善带宽并减少高速缓存器存储器120的等待时间。首先,理论上发出有序数据请求无延迟直到较早有序请求完成。其次,如果一个较早有序请求登记一个高速缓存器存储器丢失,理论上最近发出的有序请求被转换到予取。当转换的数据请求被最近地重新发出时,转换到予取将减少等待时间。第三,如果一个最近数据请示相对一个较早数据请求不是被排序的,最近数据请求并不响应较数据请求重新登记一个存储器丢失而被刷新。图4A,4B和5的方法能够使一个存储器接收有序数据请求而不出现由图1C的流水线端口使用的延迟以及以这样的一种方式,即以比由图2C的流水线端口使用的刷新更小的不利的带宽和等待时间的方式避免失去顺序完成。
如果第一有序数据请求是图3A高速缓存器存储器120中的一个丢失,则按照图4A,4B和5的方法,一个或多个剩余的最近有序数据请求可由流水线端口110和控制逻辑115转换到予取。高速缓存器存储器流水线可以被刷新。已被转换的有序请求和已被刷新的有序请求可以由执行单元105或流水线端口110自身重新发出。
图4A和4B的方法190和225可由图3B的等时线说明。只为说明目的,由图3B描述的流水线端口的每个时钟周期代表四级双端口流水线的不同级,其中在第三级确定存储器命中或丢失状态。第一和第二数据请求在t=0由流水线端口接收,而第三和第四数据请求在t=1接收。在说明的例子中,第一数据请求的状态,一个有序请求在t=2被确定为一个丢失。响应于该第一数据请求的存储器的丢失,流水线端口将最近未定请求-相对第一请求是排序的-转换到予取并允许另外的未定请求-相对该第一请求未排序的-完成。某些实施例刷新所有已知为存储器命中并晚于第一请求的所有有序请求,而不是转换,这是因为对于这样的数据请求-请求数据已在该存储器中-予取是无用的。一个实施例可以只把第二数据请求转换到一个予取,因为当该第一请求在t=2被确定为一个存储器丢失时不知道至今最近的第三第四请求的存储器命中或丢失状态。在该实施例中,当第三和第四请求相对第一数据请求是排序的并响应第一请求完成被重新发出时,它们由流水线刷新。其他的实施例将所有较早流水线级中的有序请求转换到予取,例如该第三和第四请求,因为当在t=2较早有序请求例如第一请求为丢失状态时未知这样的请求的存储器命中或丢失状态。本发明还试图覆盖将最近的有序数据请求转换到予取的其他实施例,这可以由得到本发明公开的普通技术人员来设计而不必过分强调经验。
图6描绘具有三级流水线高速缓存器存储器结构的另一实施例。处理器500包括一个执行单元501,一个第一级高速缓存器存储器L0,502,一个第二级高速缓存器存储器L1,505,一个高速缓存器存储器控制器510用于L1高速缓存器存储器505,一个控制逻辑515,和一个总线控制器517。总线控制器517通过前部总线570连接到主存储器550的存储器控制器540。处理器500越过后部总线580连接到第三级高速缓存器存储器L2,575。第三级高速缓存器存储器575驻留在一个高速缓存器模片585上,并由此不归属于处理器500的模片。
如图6中所示,L1存储器高速缓存器存储器控制器510包括控制逻辑515,用于流水线请求端口,实施图4A,4B和5中说明的方法。使用本发明的方法,L1高速缓存器存储器控制器510能基本同时地接收并处理多个有序数据请求,即不必等待一个较早有序请求完成。高速缓存器存储器控制器和控制逻辑510,515响应于确定一个较早有序数据请求是L1高速缓存器存储器505中的一个丢失将对该L1高速缓存器存储器505的最近未定的有序数据请求转换到来自L2高速缓存器存储器575的数据的一个予取。
用于实施图4A,4B和5中说明的方法的图3和6的控制逻辑115,515能够由得到本发明公开的好处的普通技术人员设计。控制逻辑115,515可以实施成硬件或软件。另外,在图6具体实施例中的控制逻辑515是驻留在高速缓存器存储器的控制器510之中,对于本发明的实践是无此必要的。通过在一个数据处理系统中的另外一处实施类似控制逻辑有可能减少有序数据请求的高速缓存器存储器等待时间,例如对L0,L1和L2高速缓存器存储器502、510、575任意组合的有序数据请求。
用于对有序数据请求减少等待时间和增加带宽的本发明可以应用到任何存储器结构而不局限于图3和6的高速缓存器存储器结构。
图7说明一个数据处理系统400的实施例,用于来自两个执行单元410,430的有序存储器请求。处理器405包括第一执行单元410,一个流水线数据请求端口415,和一个存储器425。流水线请求端口415处理到存储器425的数据请求。第一和第二执行单元410,430能通过流水线请求端口415向存储器425发出数据请求。来自每个执行单元410,430的数据请求相对它们自身是排序的。在某些实施例中来自第一执行单元410的数据请求相对来自第二执行单元430的数据请求是不排序的。在某些实施例中,第一和第二执行单元410,430属于同一个处理器405,在其他的实施例中,第二执行单元430是一个分开的处理器。流水线数据请求端口415可以处理多个数据请求,其中请求的一部分是排序的和请求的一部分是未排序的。
仍旧参照图7,流水线请求端口415按照图4A和4B中说明的方法处理数据请求。响应在存储器425中是丢失的有序数据请求而产生的予取从一辅助存储器435检索数据。流水线端口415通过总线440传送予取请求到辅助存储器435并通过总线440检索储存在存储器425中的予取数据。在某些实施例中,总线440是系统总线,其也传送其他硬件结构间的信号(未示)。对辅助存储器435的予取可以慢于对存储器425的数据请求,其部分原因是由于在总线440上处理速度低和部分原因是由于辅助存储器435的速度更低。在某些实施例中,辅助存储器435可以是脱离处理器405的存储器,而存储器425可以是一个内部的高速缓存器存储器。
以上描述的具体的实施例只是说明性的,对于那些受益于在此教导的本专业人员而言,本发明可以按不同的但等效的方式修改和实践。此外,限制并非指结构细节或在此表示的设计,而是在下面权利要求中所描述的内容。因此明显的是以上描述的具体实施例可以改变或修改。然而所有这样的变化是考虑在本发明的范围和精神之内。因此这里寻求的保护是以下权利要求中所陈述的。

Claims (30)

1.一种用于从一存储器请求数据的方法,包括:
向存储器数据请求端口发出多个数据请求,多个数据请求包括至少两个有序数据请求;
确定较早的有序数据请求之一是否相应于该存储器中的一个丢失;以及
响应相应于该存储器中的一个丢失的较早的有序数据请求之一将最近的有序数据请求之一转换到一个子取。
2.权利要求1的方法,其中较早的和最近的有序数据请求相对数据请求排序关系是较早的和最近的。
3.权利要求1的方法,还包括:
响应相应于该存储器中的一个丢失的较早的有序数据请求之一将另外的有序数据请求转换到予取,该另外的有序数据请求比较早的有序数据请求之一更晚。
4.权利要求3的方法,还包括:
在发出该有序数据请求的一部分至该存储器,该有序数据请求部分已被转换到予取。
5.权利要求3的方法,还包括响应相应于该存储器中的一个丢失的较早的有序数据请求之一刷新来自该端口的有序数据请求的一部分,和该有序数据请求部分发送到该端口晚于该最近的有序数据请求之一。
6.权利要求1的方法,其中如果在同一时钟同期中最近的有序数据请求之一由该数据请求端口接收作为较早的有序数据请求之一,则执行转换作用。
7.权利要求1的方法,其中响应相应于一个存储器丢失的最近的有序数据请求之一,则执行转换作用。
8.权利要求1的方法,还包括发出来自一个合适数据请求器的较早的和最近的数据请求以便按发行的顺序接收请求的数据。
9.权利要求1的方法,还包括响应未排序的数据请求之一完成未排序的数据请求之一,该未排序的数据请求之一未定在转换作用的开始端口。
10.一种设备,包括:
具有至少一个接收数据请求的端口的一个存储器,该端口适于确定较早的有序数据请求之一是否相应该存储器中的一个丢失,并响应确定该较早的有序数据请求之一相应存储器中一个丢失将最近的有序数据请求之一转换到一个予取。
11.权利要求10的设备,其中该端口是具有至少两级的流水线端口。
12.权利要求11的设备,还包括一个执行单元,用于发出该数据请求的一部分到流水线端口。
13.权利要求12的设备,其中执行单元适于发出有序数据请求,流水线端口适于以发出的顺序检索请求的数据。
14.权利要求12的设备,还包括一第二执行单元,用于发出数据请求到该流水线端口。
15.权利要求14的设备,其中流水线端口适于以所说请求执行单元请求数据的顺序将请求数据返回到一个请求执行单元。
16.权利要求12的设备,其中所说执行单元适于响应存储器转换最近的有序数据请求之一为一个予取发出最近有序数据请求之一。
17.权利要求12的设备,还包括连接到另一存储器的一第二存储器,所说予取是从另一存储器到所说第二存储器的数据请求。
18.权利要求17的设备,还包括一个系统总线,第二存储器通过该系统总线连接到另一存储器。
19.权利要求17的设备,其中流水线端口适于通过从第二存储器请求数据并将请求的数据储存到另一存储器执行予取。
20.权利要求19的设备,其中辅助的和另外的存储器分别是第二级和第一级高速缓存器存储器。
21.权利要求12的设备,其中该存储器是一个高速缓存器存储器。
22.权利要求11的设备,其中流水线端口适于在一个时钟周期内接收多数据请求。
23.权利要求11的设备,还包括连接到流水线端口的一辅助存储器,其中流水线端口适于响应另一存储器中对较早有序数据请求之一的一个丢失从辅助存储器检索数据和响应从辅助存储器检索对较早的有序数据请求之一的数据发出最近的有序数据请求之一。
24.一个数据处理系统,包括:
一第一存储器;以及
一处理器,包括:
一具有流水线端口的第二存储器,流水线端口接收数据请求,确定较早的有序数据请求之一是否相应于第二存储器中的一个丢失以及响应相应于第二存储器中的一个丢失的较早的有序数据请求之一将最近的有序数据之一转换到一个予取请求;以及
一执行单元向流水线端口发出数据请求。
25.权利要求14的数据处理系统,还包括一第二执行单元向流水线端口发出数据请求。
26.权利要求25的数据处理系统,其中流水线端口适于以所说请求执行单元的多个数据请求发出的顺序完成相应来自一个请求执行单元的多个数据请求的多个数据检索。
27.权利要求24的数据处理系统,其中所说执行单元适于响应端口转换最近的有序数据请求之一到一个予取重发出最近的有序数据请求之一。
28.权利要求24的数据处理系统,响应较早的和最近的有序数据请求为在第二存储器中的丢失转换最近的有序数据请求之一到对第一存储器的一个予取请求。
29.权利要求24的数据处理系统,其中该第二和另外的存储器分别是第一级和第二级高速缓存器存储器。
30.权利要求24的数据处理系统,其中流水线端口适于响应确定较早的有序数据请求之一相应于第二存储器中的一个丢失和未排序的数据请求之一未定在流水线端口中完成未排序的数据请求之一。
CNB998148377A 1998-10-30 1999-10-18 处理有序数据请求到存储器的方法及设备 Expired - Fee Related CN1208723C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/183,519 US6381678B2 (en) 1998-10-30 1998-10-30 Processing ordered data requests to a memory
US09/183519 1998-10-30

Publications (2)

Publication Number Publication Date
CN1411575A true CN1411575A (zh) 2003-04-16
CN1208723C CN1208723C (zh) 2005-06-29

Family

ID=22673147

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB998148377A Expired - Fee Related CN1208723C (zh) 1998-10-30 1999-10-18 处理有序数据请求到存储器的方法及设备

Country Status (7)

Country Link
US (2) US6381678B2 (zh)
CN (1) CN1208723C (zh)
AU (1) AU1122400A (zh)
DE (1) DE19983687B4 (zh)
GB (1) GB2358941B (zh)
TW (1) TW486628B (zh)
WO (1) WO2000026742A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101495962B (zh) * 2006-08-02 2012-11-28 高通股份有限公司 用于预取不连续指令地址的方法和设备

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381678B2 (en) 1998-10-30 2002-04-30 Intel Corporation Processing ordered data requests to a memory
TW449695B (en) * 1999-11-26 2001-08-11 Via Tech Inc PCI data reading system for using reading requirement pipe and its method
US6826573B1 (en) 2000-02-15 2004-11-30 Intel Corporation Method and apparatus for queue issue pointer
US6832308B1 (en) 2000-02-15 2004-12-14 Intel Corporation Apparatus and method for instruction fetch unit
US6665776B2 (en) 2001-01-04 2003-12-16 Hewlett-Packard Development Company L.P. Apparatus and method for speculative prefetching after data cache misses
US7487330B2 (en) * 2001-05-02 2009-02-03 International Business Machines Corporations Method and apparatus for transferring control in a computer system with dynamic compilation capability
US20030137519A1 (en) * 2002-01-22 2003-07-24 Nazanda Rima M. Method and apparatus to handle multiple requests to different memory agents
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US8601606B2 (en) 2002-11-25 2013-12-03 Carolyn W. Hafeman Computer recovery or return
US7870342B2 (en) * 2003-07-24 2011-01-11 Marvell International Ltd. Line cache controller with lookahead
US7139879B2 (en) * 2003-07-24 2006-11-21 International Business Machinces Corporation System and method of improving fault-based multi-page pre-fetches
US20050039016A1 (en) * 2003-08-12 2005-02-17 Selim Aissi Method for using trusted, hardware-based identity credentials in runtime package signature to secure mobile communications and high-value transaction execution
US7281120B2 (en) * 2004-03-26 2007-10-09 International Business Machines Corporation Apparatus and method for decreasing the latency between an instruction cache and a pipeline processor
US7284092B2 (en) * 2004-06-24 2007-10-16 International Business Machines Corporation Digital data processing apparatus having multi-level register file
US7181575B2 (en) * 2004-09-29 2007-02-20 Hewlett-Packard Development Company, L.P. Instruction cache using single-ported memories
JP2011028736A (ja) * 2009-07-02 2011-02-10 Fujitsu Ltd キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
US20110022802A1 (en) * 2009-07-27 2011-01-27 Arm Limited Controlling data accesses to hierarchical data stores to retain access order
US8700646B2 (en) * 2009-08-12 2014-04-15 Apple Inc. Reference file for formatted views
US8775700B2 (en) * 2011-09-29 2014-07-08 Intel Corporation Issuing requests to a fabric
US9098418B2 (en) * 2012-03-20 2015-08-04 Apple Inc. Coordinated prefetching based on training in hierarchically cached processors
US9971694B1 (en) 2015-06-24 2018-05-15 Apple Inc. Prefetch circuit for a processor with pointer optimization
US10180905B1 (en) 2016-04-07 2019-01-15 Apple Inc. Unified prefetch circuit for multi-level caches
US9904624B1 (en) 2016-04-07 2018-02-27 Apple Inc. Prefetch throttling in a multi-core system
US10331567B1 (en) 2017-02-17 2019-06-25 Apple Inc. Prefetch circuit with global quality factor to reduce aggressiveness in low power modes
US10380034B2 (en) 2017-07-14 2019-08-13 International Business Machines Corporation Cache return order optimization

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
JP2549256B2 (ja) * 1992-12-01 1996-10-30 インターナショナル・ビジネス・マシーンズ・コーポレイション 浮動小数点プロセッサへデータを転送する方法及び装置
US5553276A (en) * 1993-06-30 1996-09-03 International Business Machines Corporation Self-time processor with dynamic clock generator having plurality of tracking elements for outputting sequencing signals to functional units
US5544342A (en) * 1993-06-30 1996-08-06 International Business Machines Corporation System and method for prefetching information in a processing system
US5826052A (en) * 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches
US5724533A (en) * 1995-11-17 1998-03-03 Unisys Corporation High performance instruction data path
US6012134A (en) * 1998-04-09 2000-01-04 Institute For The Development Of Emerging Architectures, L.L.C. High-performance processor with streaming buffer that facilitates prefetching of instructions
US6381678B2 (en) 1998-10-30 2002-04-30 Intel Corporation Processing ordered data requests to a memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101495962B (zh) * 2006-08-02 2012-11-28 高通股份有限公司 用于预取不连续指令地址的方法和设备

Also Published As

Publication number Publication date
US20010044881A1 (en) 2001-11-22
US20020073284A1 (en) 2002-06-13
US6725339B2 (en) 2004-04-20
CN1208723C (zh) 2005-06-29
TW486628B (en) 2002-05-11
DE19983687T1 (de) 2001-11-22
US6381678B2 (en) 2002-04-30
GB0109917D0 (en) 2001-06-13
DE19983687B4 (de) 2008-09-11
GB2358941B (en) 2003-07-23
GB2358941A (en) 2001-08-08
WO2000026742A2 (en) 2000-05-11
AU1122400A (en) 2000-05-22
WO2000026742A3 (en) 2000-08-10

Similar Documents

Publication Publication Date Title
CN1208723C (zh) 处理有序数据请求到存储器的方法及设备
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
CN1109967C (zh) 多线程处理器中指令和关联读取请求的后台完成
US4210961A (en) Sorting system
US7917701B2 (en) Cache circuitry, data processing apparatus and method for prefetching data by selecting one of a first prefetch linefill operation and a second prefetch linefill operation
US6341347B1 (en) Thread switch logic in a multiple-thread processor
US6564313B1 (en) System and method for efficient instruction prefetching based on loop periods
US7185185B2 (en) Multiple-thread processor with in-pipeline, thread selectable storage
JP3807460B2 (ja) 複数のメモリ・モデルを使用してメモリ・トランザクションの実行を並列化するシステムおよび装置
US5598550A (en) Cache controller for processing simultaneous cache accesses
US4916604A (en) Cache storage apparatus
EP0496439A2 (en) Computer system with multi-buffer data cache
US20070250470A1 (en) Parallelization of language-integrated collection operations
US20050144399A1 (en) Multiprocessor system, and consistency control device and consistency control method in multiprocessor system
CN1127899A (zh) 具有推测指令取指的数据处理器及操作方法
CN102084357B (zh) 检索装置以及检索方法
CN101523361A (zh) 数据处理设备中对共享存储器的写访问请求的处理
CN1196997C (zh) 不按序执行指令的装置和检测不按序指令的方法
CN1908890A (zh) 用于使用记录板机制处理加载锁定指令的方法和装置
CN1095506A (zh) 具有最新分配比特的数据处理器及其操作方法
US6463514B1 (en) Method to arbitrate for a cache block
US5313602A (en) Multiprocessor system and method of control over order of transfer of data between buffer storages
US20110320722A1 (en) Management of multipurpose command queues in a multilevel cache hierarchy
CN1258716C (zh) 片内多处理器局部cache一致性的双环监听方法
US20200341764A1 (en) Scatter Gather Using Key-Value Store

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050629

Termination date: 20111018