CN1149489C - 提供流水线存储器控制器的设备 - Google Patents

提供流水线存储器控制器的设备 Download PDF

Info

Publication number
CN1149489C
CN1149489C CNB998153257A CN99815325A CN1149489C CN 1149489 C CN1149489 C CN 1149489C CN B998153257 A CNB998153257 A CN B998153257A CN 99815325 A CN99815325 A CN 99815325A CN 1149489 C CN1149489 C CN 1149489C
Authority
CN
China
Prior art keywords
memory
memory controller
command
order
command queue
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.)
Expired - Fee Related
Application number
CNB998153257A
Other languages
English (en)
Other versions
CN1332872A (zh
Inventor
Pk
P·K·尼扎
M·W·威廉斯
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 CN1332872A publication Critical patent/CN1332872A/zh
Application granted granted Critical
Publication of CN1149489C publication Critical patent/CN1149489C/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests

Abstract

一种流水线存储器控制器,包括解码级和调度级,其中调度级包括命令队列来存储多个命令。在一个实施例中,调度级还包括超前逻辑电路,其可修改存储器命令被存储在命令队列中的顺序。

Description

提供流水线存储器控制器的设备
发明领域
本发明涉及计算机系统领域,并且尤其涉及处理存储器存取请求领域。
发明背景
计算机系统的性能部分依赖于对系统存储器(例如,计算机系统的主要通用目的存储区)进行存取的速度。例如微处理器仅如向微处理器提供数据操作数一样快地来执行指令。很多数据操作数需要从系统存储器获得。
因此,对系统存储器进行存取的速度对微处理器能完成指令执行的速度有很大的冲击。结果,持续要求提高对系统存储器进行存取的速度。
对系统存储器进行存取通常受称为存储器控制器的单元的控制。存储器控制器从计算机系统内的其它单元(例如中央处理单元(CPU),图形加速器等)接收存储器存取请求(例如,请求读出存储在存储器中的数据或请求向存储器写入数据)。存储器控制器仲裁同意多个请求对存储器进行存取的顺序。而且,存储器控制器还准备/编译要被传送到系统存储器的存储器存取请求。例如,存储器控制器可解码存储器请求为一个或多个要由系统存储器执行的命令(根据存储器协议),以完成存储器请求。
存储器控制器处理存储器请求的速率部分依赖于存储器控制器与系统存储器之间的存储器总线(即电子路径)的带宽(即数据传输率)。例如,存储器控制器通常仅以等于或小于存储器总线上数据传输/控制率的速率向系统存储器提交请求。否则,存储器请求将由存储器控制器以比它们被传输的速率更快的速率来准备,并且结果产生瓶颈效应。
过去,存储器总线的带宽相对慢。结果,存储器控制器能够以串行方式(即,在开始处理随后的存储器请求之前完成一个存储器请求)处理存储器请求。但是,尽管以串行方式处理请求,存储器控制器仍能够填充大部分的存储器总线带宽。
但是,存储器总线的技术上的进步已经增加了存储器总线上数据传输/控制的带宽。结果,为了采用增加的带宽的优点,要求提高存储器控制器的速度来处理存储器请求。
发明概述
本发明提供一种包括解码级和调度级的流水线存储器控制器,其中调度级包括命令队列,以存储多个命令。在一个实施例中,调度级还包括超前逻辑电路,其可修改在命令队列中被存储存储器命令的顺序。
附图简述
本发明通过举例方式示出,并且并不限制于附图,在附图中相同的参考号表示相似元件,其中:
图1是实施根据一个实施例的存储器控制器的计算机系统的框图;
图2是实施根据一个实施例的存储器控制器的具有多个处理器的计算机系统的框图;
图3示出表示流水线操作的定时图;
图4是描述操作根据一个实施例的存储器控制器的步骤的流程图;
图5是根据一个实施例的实施芯片集合(chipset)的存储器控制器的计算机系统的框图。
详细说明
描述一种用于提供高性能存储器控制器的方法和设备。在一个实施例中,存储器控制器在具有多个级的流水线结构中执行存储器请求。结果,多个请求并行执行,这提高了处理存储器请求的吞吐量(即速度和效率)。
另外,在一个实施例中,流水线存储器控制器包括具有一个或多个命令队列以存储多个要被传输到系统存储器的存储器命令的调度级。在一个实施例中,调度级还包括超前逻辑电路,其比较当前存储在命令队列中的存储器命令和要被存储在该队列中的新的存储器命令。基于比较结果,超前逻辑电路把新的存储器命令调度到命令队列的选择的时隙中,这避免存储器冲突和定时或规则违反和/或存储器命令的加速执行。
在下面的描述中,提出多个细节。但是显然对于熟悉本领域的技术人员而言,本发明没有这些特定的细节也可执行。在其它实例中,为了避免混淆本发明,以框图形式而并非具体地表示出已知的结构和装置。
图1是实施根据一个实施例的存储器控制器105的计算机系统101的框图。如所示的那样,存储器控制器105执行从计算机系统内的其它组件接收到的存储器请求。例如,存储器控制器105将执行从处理器103和/或图形控制器104接收到的存储器请求。存储器控制器105还能够执行从连接于计算机系统的另外的外围部件,如盘驱动器、键盘和其它计算机系统内的其它分立的组件接收到的存储器请求。而且,在另外的实施例中,存储器控制器105可提供在具有多个处理器的计算机系统中,如图2中的框图所示。
如图1所示,一个实施例的存储器控制器105在流水线结构中执行存储器请求。例如,在一个实施例中,存储器控制器105包括4个级:请求级,解码级,调度级和发布级。如图1所示,各个级在一个时钟周期中完成。但是在另外的实施例中,在不背离本发明的范围的情况下,在存储器控制器105中可包括更多或更少的级。另外,级可要求多于或少于一个时钟周期来完成。
如前面所讨论的那样,流水线结构允许多个指令并行执行,即使在存储器控制器105内的独立的级上。例如,如图3所示,在第一时钟周期中,请求级接收到第一请求。在第二时钟周期中,第一请求在解码级执行,并且在请求级执行第二请求。在第三时钟周期中,在调度级执行第一请求,在解码级执行第二请求,并且在请求级执行第三请求等。并行执行多个指令的结果是存储器控制器105能够在每一个时钟周期完成处理存储器请求。
操作图1所示的存储器控制器105的一个实施例的步骤在图3的流程图中说明。在步骤402中,存储器控制器105从计算机系统内的组件接收一个或多个请求。在一个实施例中,请求在存储器控制器105的判优器处被接收。在一个以上的存储器请求由存储器控制器105同时接收到的情况下,判优器用于确定存储器请求由存储器控制器105进行处理的顺序。在一个实施例中,判优器实施预定的优先级顺序。
例如,图形控制器104可具有第一优先级并且处理器103具有第二优先级。结果,如果存储器请求从图形控制器104和处理器103同时被接收到,图形控制器的存储器请求将在处理器的请求之前被处理。但是在另外的实施例中,在不背离本发明的范围的情况下可实施确定处理多个存储器请求的顺序的另外的技术。
在步骤404中,存储器控制器105的解码级解码存储器请求。例如,在一个实施例中,解码级解码请求来确定请求的预定操作(例如读出数据或写入数据),以及请求的存储器地址。接着,存储器地址信息与解码的存储器请求的操作一起被传送到存储器控制器105的随后的级。
带有存储器请求的地址信息部分依赖于在系统中实施的存储器类型。例如,在图1所示的一个实施例中,系统存储器115由多个可编址存储器装置构成,每一个具有多个可编址存储器页。存储器页包括多个存储器存储位置(例如行和列)。因此,解码的存储器请求可提供包括存储器装置ID、存储器页的地址信息以及规定存储器地址的行和列。
但是,在一个实施例中,仅可打开每个存储器装置的存储器的一页。结果,在一个实施例中,解码级确定是否由各个存储器请求寻址的存储器页已经被打开(即确定是否有命中页)。例如,当前解码的存储器请求寻址的存储器装置的存储器页已经由较早的存储器请求的命令打开,和/或将要由存储在命令队列之一中的命令打开。
尤其,在一个实施例中,解码级包括识别当前打开的存储器的页的页命中逻辑电路111。结果,解码级比较当前解码的存储器请求寻址的页与识别为当前打开的和/或要由命令队列中已经存在的命令打开的页。把比较结果传送到存储器控制器105的下一级,然后将其用来确定哪个命令必须来完成存储器请求。
例如,要由当前解码的存储器请求存取的存储器装置的页可以已经被调度来由较早的存储于命令队列中的存储器请求的页打开命令来打开。结果,对于当前解码的存储器请求而言,打开页命令不是必要的。另一方面,如果存储器页没有被调度来打开,必须有用于当前解码的存储器请求的页打开命令。但是在另一实施例中,在不脱离本发明的范围的情况下,确定存储器的页是否被打开的步骤可在存储器控制器105的后面级执行。
另外,在另一实施例中,解码级还确定由解码的存储器请求寻址的存储器装置的功率状态。例如,在一个实施例中,存储器115内的存储器装置具有多个功率状态(例如激活、备用或闲置状态)。在另一实施例中,功率状态可在本发明的范围内变化。
在一个实施例中,用于一个或多个存储器装置的功率状态的拷贝被存储在解码级内的功率状态逻辑电路112中。基于来自解码的存储器请求的存储器地址,功率状态逻辑电路112提供用于各个存储器装置的功率状态。此后,相关的功率状态信息被传送到存储器控制器105中的随后的级。
在解码级后,在步骤406中,存储器控制器105的调度级接收用于解码的存储器请求的操作、地址信息和如在解码级产生的页命中信息。在另一实施例中,用于寻址的存储器装置的功率状态信息还可由调度级接收到。
响应于此,调度级把解码的存储器请求的操作(与页命中和/或功率状态信息一起)映射到一个或多个命令。之后,命令(例如打开页、关闭页、写入数据、读出数据等)被传送到存储器来执行存储器存取请求。
在一个实施例中,调度级的包产生逻辑电路113同时对解码的存储器请求的一个操作产生多个命令。例如,在寻址的存储器页被关闭的情况(即页丢失)下,调度级将提供命令来关闭寻址的存储器装置内的打开页、提供命令来打开寻址的页以及提供命令来读出地址数据。映射到解码的存储器请求的操作的命令组有时称为包。
在一个实施例中,从解码级接收到的操作、页命中和/或功率状态信息被用于映射到包产生逻辑电路113内的微码表,以得到各个命令。在另一个实施例中,包产生逻辑电路可使用另外的方法来提供命令,以执行解码的存储器请求的操作。
调度级的包产生逻辑电路113提供的命令的数目和类型依赖于在计算机系统中实施的存储器装置的类型。例如,在一个实施例中,Direct Rambus(直接随机存储器总线)存储器子系统作为计算机系统的存储器实施。
在一个实施例中,Direct Rambus的特征包括在2.5/1.8V的电压下800MHz的操作频率。连接存储器控制器105与存储器115(或称为Rambus Channe(随机存储器信道)1)存储器总线以1.6Gb/S的速率传输数据,并且具有每数据信道16位的数据路径。另外,Rambus Channel包括多个命令信道,其允许多个命令从存储器控制器105并行传送到存储器115。或者存储器总线/信道也可提供多个命令信道。
而且,在不背离本发明的范围的情况下,另外的存储器子系统可与存储器控制器105一起使用。另外,在实施Direct Rambus的实施例中,Direct Rambus的特征在不背离本发明的范围的情况下还可改变。
在调度级已经映射解码的存储器请求的操作到一个或多个命令后,在传送到存储器之前把命令调度为一个或多个命令队列。存储器控制器105的调度级包括至少一个具有多个时隙以存储多个命令的命令队列,该队列被传送到存储器来完成存储器请求。
在实施具有多个命令信道的存储器总线的另外的实施例中,可使用对应于命令信道的多个命令队列(例如命令队列121和命令队列123),如图1所示。此外,在Direct Rambus的情况下,至少两个队列被提供在存储器控制器105的包和调度级中:基本控制包队列(PCP)和从属控制包队列(SCP)。
在一个实施例中,预定要被放置的队列。例如,在Direct Rambus的情况下,诸如寻址的存储器装置的页打开、页关闭和/或改变功率状态的命令将被放置在PCP队列中。此外,SCP队列将包括诸如存储器读出和存储器写入这样的命令。
如后面将具体说明的那样,在一个实施例中,命令队列内的命令每一时钟周期被移动一个存储器控制器105。结果,每一时钟周期一个或多个命令(根据队列的数目)被移动到存储器总线上(除非队列内的时隙没有命令)。在一个实施例中,如果不是队列的时隙中的命令,则传送无效的包。
在把命令调度为命令队列之前,在步骤408中,包括在调度级中的超前逻辑电路114比较要被存储到命令队列中的命令和已经存储在命令队列中的命令。基于计较,超前逻辑电路114可检测潜在的存储器定时或规则违章。为避免潜在的定时或规则违章,超前逻辑电路114可在命令队列中以将避免潜在定时或规则违反的修改的顺序存储解码的存储器请求的命令。
例如,某些存储器操作(例如读出/写入数据)要求预定数目的存储器时钟周期来完成操作(操作可根据存储器类型而变化)。结果,需要把寻址相同的存储器装置、页和/或地址的多个存储器操作由一个或多个时钟周期分割开。但是,两个或多个操作之间的实际定时限制可根据操作类型而改变(例如读出后面是读出,读出后面是写入、写入后面是读出等)。
在一个实施例中,超前逻辑电路114可首先比较要被调度的存储器命令的地址信息与已经存在于命令队列中的命令。响应于检测到匹配(基于预定标准一其可在本发明的范围内改变),逻辑电路可继续比较具有匹配地址信息的命令的“操作”。
然后存储器命令的操作(具有匹配地址信息)可与多个不同的“操作”标准作比较(读出vs.读出、写入vs.读出、关闭页vs.读出等)。存储器命令与“操作”标准之一之间的匹配可识别出两个或多个具有匹配存储器地址信息的存储器命令之间的潜在的定时或规则违反(例如两个独立的存储器操作要由预定的数目的时钟周期来分割)。
然后超前逻辑电路114使用比较操作(例如定时限制信息)的结果来确定何时何地把命令插入到命令队列中,以避免定时或规则违反。例如,为避免定时或规则违反,调度逻辑电路可在将其插入命令队列之前锁存存储器命令(即延迟该命令)。结果,带有匹配地址信息和定时限制的命令可由另外的时钟周期分割开以避免定时或规则违反。
在另一实施例中,调度级的超前逻辑电路114可锁存已经存储在命令队列的时隙中的命令。结果,新的命令可被插入已经存储在队列中的锁存的命令之前。
另外,调度级的超前逻辑电路114还可修改已经存储在队列中的命令的顺序,以加快要被调度的命令的执行。例如,如果新的存储器操作寻址了由已经存储在命令队列中的存储器操作打开的存储器的页,调度级的超前逻辑电路114可使已经存储于队列中的页关闭操作无效。结果,在没有打开存储器的页的情况下可执行新的命令。或者,超前逻辑电路114可锁存已经存储在队列中的页关闭命令,并在锁存的页关闭命令之前插入新的命令。
在调度级后,在步骤410中,在发布级把命令从命令队列移动到存储器总线上。在本发明的一个实施例中,存储在命令队列的端时隙中的命令在存储器控制器105的每一个时钟周期被移动到存储器总线的对应的命令信道上。除了如上所述超前逻辑电路114改变队列内命令的顺序的情况外,存储在剩余的时隙中的命令被移动到相邻的时隙。
在另一个实施多个命令队列的实施例中,队列之间的预定时间偏移被用于分割存储在队列的相应的时隙中的命令。例如,命令队列的两端时隙中的命令可同时被移动到总线访问单元(BAC)中,这提供对存储器总线的多路复用/多路分用访问。但是,BAC可在放置各个命令到存储器总线上之前锁存从用于存储器时钟周期预定部分的队列之一接受到的命令。例如,在一个实施例中,其中存储器总线以存储器控制器105的数倍的频率操作(例如800MHz,400MHz或100MHz),来自命令队列的命令可被锁存用于存储器总线的一个或多个时钟周期。
另外,在队列之间实施预定偏离的实施例中,超前逻辑电路114认识到在命令队列之间提供的偏离。结果,超前逻辑电路114在确定何时何地把命令插入到队列中来避免定时或规则违反时考虑该偏离,如上所述。
在第二个另外的实施例中,可提供队列之间的动态(即改变)偏离。尤其,超前逻辑电路114插入偏离信息和存储器命令到队列中。结果,当命令和偏离定时信息从队列的端时隙移开时,BAC可使用定时信息来根据定时信息锁存各个命令。
超前逻辑电路114可在调度级期间在确定是否定时条件/限制如前面所述出现时产生偏离定时信息。超前逻辑电路114可把偏离定时信息和命令插入到队列的时隙中以避免定时约束条件/限制。
而且,考虑动态产生偏离定时信息(即插入变化的长度的偏离)的超前逻辑电路114的灵活性,选择何时和哪个队列时隙插入命令的任务进一步简化。例如,有一个例子是其中超前逻辑电路114可插入偏离定时信息来避免定时约束条件/限制,而不是控制已经存储在队列中的命令的顺序。
在前述的说明中,本发明已经参考其特定示例的实施例作了描述。但是显然在不背离本发明的广义精神和范围的情况下可对其作各种修改和改变。因此说明书和附图被视为是为了图示而不是限定的意义。
例如,在一个实施例中,如前面整个具体的描述所说明的存储器控制器105在一组提供计算机系统的子系统和/或多个组件之间的接口的芯片(即芯片集合)上实施。例如,芯片集合提供总线和电子部件来允许中央处理单元、存储器和输入/输出装置相互作用。而且,在另外的实施例中,在图5所示的芯片集合上实施的存储器控制器105还能具有在芯片集合上集成的附加组件(如处理器、图形加速器)。

Claims (18)

1.一种流水线存储器控制器,包括:
解码级;和
连接于所述解码级的调度级,所述调度级包括命令队列来存储多个命令和超前逻辑电路,该超前逻辑电路修改被储存在所述命令队列中的存储器命令的顺序。
2.根据权利要求1的存储器控制器,其中所述调度级包括至少两个命令队列。
3.根据权利要求2的存储器控制器,其中所述存储器控制器可操作来连接于具有两个命令信道的存储器总线。
4.根据权利要求1的存储器控制器,其中存储在所述命令队列中的命令在被传送到存储器总线上之前被动态地延迟。
5.根据权利要求4的存储器控制器,其中存储在所述命令队列中的命令包括由所述调度级提供的定时信息,以实施所述动态延迟。
6.根据权利要求1的存储器控制器,其中存储在所述命令队列中的命令以固定的预定速率传送到存储器总线。
7.根据权利要求6的存储器控制器,其中存储在两个独立的命令队列中的命令以固定的偏移被独立地传送到存储器总线上。
8.根据权利要求3的存储器控制器,其中存储器总线是Rambus ChannelTM
9.根据权利要求3的存储器控制器,其中所述存储器控制器在芯片集合上实施。
10.一种流水线存储器控制器,包括:
用于解码存储器请求的装置;和
用于把多个存储器命令调度成用于存储多个存储器命令的命令队列的装置,所说用于调度多个存储器命令的装置包括超前逻辑电路,该超前逻辑电路包括用于修改被储存在所说命令队列中的存储器命令的顺序的装置。
11.根据权利要求10的存储器控制器,其中用于调度多个存储器命令的所述装置还包括至少两个命令队列。
12.根据权利要求11的存储器控制器,其中所述存储器控制器包括用于把存储器控制器连接到具有两个命令信道的存储器总线的装置。
13.根据权利要求10的存储器控制器,其中所述存储器控制器还包括用于在将所述存储器命令传送到存储器总线上之前动态地延迟存储在所述命令队列中的存储器命令的装置。
14.根据权利要求13的存储器控制器,其中存储在所述命令队列中的命令包括由用于调度的所述装置提供的定时信息。
15.根据权利要求10的存储器控制器,其中所述存储器控制器还包括用于以固定的预定速率将所述存储器命令传送到存储器总线上的装置。
16.根据权利要求15的存储器控制器,其中所述存储器控制器还包括用于以固定的偏移将存储在两个独立的命令队列中的命令传送到存储器总线上的装置。
17.根据权利要求12的存储器控制器,其中存储器总线是Rambus ChannelTM
18.根据权利要求12的存储器控制器,其中所述存储器控制器在芯片集合上实施。
CNB998153257A 1998-11-03 1999-11-01 提供流水线存储器控制器的设备 Expired - Fee Related CN1149489C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/186,045 1998-11-03
US09/186,045 US6212611B1 (en) 1998-11-03 1998-11-03 Method and apparatus for providing a pipelined memory controller

Publications (2)

Publication Number Publication Date
CN1332872A CN1332872A (zh) 2002-01-23
CN1149489C true CN1149489C (zh) 2004-05-12

Family

ID=22683433

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB998153257A Expired - Fee Related CN1149489C (zh) 1998-11-03 1999-11-01 提供流水线存储器控制器的设备

Country Status (7)

Country Link
US (1) US6212611B1 (zh)
EP (1) EP1135720A4 (zh)
KR (1) KR100543887B1 (zh)
CN (1) CN1149489C (zh)
AU (1) AU1241700A (zh)
TW (1) TW449721B (zh)
WO (1) WO2000026744A2 (zh)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4111472B2 (ja) * 1998-05-15 2008-07-02 キヤノン株式会社 通信制御方法及び装置及び通信システム
US6542159B1 (en) * 1999-05-19 2003-04-01 Ati International S.R.L. Apparatus to control memory accesses in a video system and method thereof
US6469703B1 (en) 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6668317B1 (en) * 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6983350B1 (en) * 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6631430B1 (en) * 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6629253B1 (en) * 1999-12-30 2003-09-30 Intel Corporation System for efficient management of memory access requests from a planar video overlay data stream using a time delay
US6584522B1 (en) * 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6631462B1 (en) * 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
US7395399B2 (en) * 2000-08-25 2008-07-01 Stmicroelectronics S.A. Control circuit to enable high data rate access to a DRAM with a plurality of areas
US20040210730A1 (en) * 2000-08-25 2004-10-21 Stmicroelectronics S.A. Dram control circuit
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US6940816B2 (en) 2000-12-29 2005-09-06 Intel Corporation Method and apparatus for a slot-based memory controller
US7076627B2 (en) * 2001-06-29 2006-07-11 Intel Corporation Memory control for multiple read requests
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US6820169B2 (en) 2001-09-25 2004-11-16 Intel Corporation Memory control with lookahead power management
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US6510099B1 (en) 2001-09-28 2003-01-21 Intel Corporation Memory control with dynamic driver disabling
US7194561B2 (en) * 2001-10-12 2007-03-20 Sonics, Inc. Method and apparatus for scheduling requests to a resource using a configurable threshold
US6804738B2 (en) * 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US6578117B2 (en) * 2001-10-12 2003-06-10 Sonics, Inc. Method and apparatus for scheduling requests using ordered stages of scheduling criteria
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US6934951B2 (en) * 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
JP2003216943A (ja) * 2002-01-22 2003-07-31 Toshiba Corp 画像処理装置、この装置に用いられるコンパイラおよび画像処理方法
US20030163654A1 (en) * 2002-02-22 2003-08-28 Eliel Louzoun System and method for efficient scheduling of memory
US7149857B2 (en) 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
US7471688B2 (en) * 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7433307B2 (en) * 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
AU2004200593B2 (en) * 2003-02-19 2006-10-19 Canon Kabushiki Kaisha Dynamic Reordering of Memory Requests
AU2003900733A0 (en) * 2003-02-19 2003-03-06 Canon Kabushiki Kaisha Dynamic Reordering of Memory Requests
EP1639479B1 (en) * 2003-06-30 2008-09-03 Raytheon Company Efficient memory controller
US7370169B2 (en) * 2003-06-30 2008-05-06 Raytheon Company Efficient memory controller
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
CN1555005A (zh) * 2003-12-29 2004-12-15 ����ͨѶ�ɷ����޹�˾ 动态循环流水线的交叠式命令提交方法
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US8001353B2 (en) * 2005-06-10 2011-08-16 Hewlett-Packard Development Company, L.P. Apparatus and method for configuring memory blocks
US7644248B2 (en) * 2006-09-27 2010-01-05 Intel Corporation Mechanism to generate logically dedicated read and write channels in a memory controller
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
KR101627321B1 (ko) * 2009-01-13 2016-06-03 삼성전자주식회사 I/o 리퀘스트 핸들링 방법 및 이를 이용한 솔리드 스테이트 드라이브
US8560796B2 (en) * 2010-03-29 2013-10-15 Freescale Semiconductor, Inc. Scheduling memory access requests using predicted memory timing and state information
US8572322B2 (en) * 2010-03-29 2013-10-29 Freescale Semiconductor, Inc. Asynchronously scheduling memory access requests
US8627021B2 (en) 2011-08-31 2014-01-07 Qualcomm Incorporated Method and apparatus for load-based prefetch access
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US10089243B2 (en) * 2016-02-25 2018-10-02 SK Hynix Inc. Memory controller and system including variable address mapping tables and a fixed address mapping table
US10379940B2 (en) 2016-12-08 2019-08-13 Sandisk Technologies Llc Pipeline delay detection during decoding by a data storage device
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
US10275352B1 (en) 2017-12-28 2019-04-30 Advanced Micro Devices, Inc. Supporting responses for memory types with non-uniform latencies on same channel

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0425550B1 (en) * 1988-06-30 1995-01-04 Wang Laboratories, Inc. Memory control unit
US5058051A (en) 1988-07-29 1991-10-15 Texas Medical Instruments, Inc. Address register processor system
US5222223A (en) 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5060145A (en) 1989-09-06 1991-10-22 Unisys Corporation Memory access system for pipelined data paths to and from storage
US5280597A (en) 1990-03-30 1994-01-18 Mitsubishi Denki Kabushiki Kaisha Pipeline processor with self timed data transfer
JP3215105B2 (ja) 1990-08-24 2001-10-02 富士通株式会社 メモリアクセス装置
JP2532300B2 (ja) 1990-10-17 1996-09-11 三菱電機株式会社 並列処理装置における命令供給装置
US5323489A (en) 1991-11-14 1994-06-21 Bird Peter L Method and apparatus employing lookahead to reduce memory bank contention for decoupled operand references
US5732236A (en) 1993-05-28 1998-03-24 Texas Instruments Incorporated Circuit and method for controlling access to paged DRAM banks with request prioritization and improved precharge schedule
US5546546A (en) 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5721860A (en) 1994-05-24 1998-02-24 Intel Corporation Memory controller for independently supporting synchronous and asynchronous DRAM memories
US5617559A (en) 1994-08-31 1997-04-01 Motorola Inc. Modular chip select control circuit and method for performing pipelined memory accesses
DE69637294T2 (de) 1995-03-03 2008-05-08 Fujitsu Ltd., Kawasaki Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
US5680577A (en) 1995-04-27 1997-10-21 International Business Machines Corporation Method and system for processing multiple requests for data residing at the same memory address
US5696910A (en) 1995-09-26 1997-12-09 Intel Corporation Method and apparatus for tracking transactions in a pipelined bus
US5873119A (en) 1996-02-09 1999-02-16 Intel Corporation Method for parallel processing of dram read request in a memory-cache controller system
US5822772A (en) 1996-03-22 1998-10-13 Industrial Technology Research Institute Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US5920898A (en) 1996-08-16 1999-07-06 Unisys Corporation Memory control unit providing optimal timing of memory control sequences between different memory segments by optimally selecting among a plurality of memory requests
US5903916A (en) 1996-12-16 1999-05-11 Intel Corporation Computer memory subsystem and method for performing opportunistic write data transfers during an access latency period within a read or refresh operation
US5940848A (en) 1997-01-14 1999-08-17 Intel Corporation Computer system and method for efficiently controlling the opening and closing of pages for an aborted row on page miss cycle
US5983325A (en) * 1997-12-09 1999-11-09 Advanced Micro Devices, Inc. Dataless touch to open a memory page
US6052756A (en) * 1998-01-23 2000-04-18 Oki Electric Industry Co., Ltd. Memory page management

Also Published As

Publication number Publication date
TW449721B (en) 2001-08-11
EP1135720A2 (en) 2001-09-26
KR20010089392A (ko) 2001-10-06
US6212611B1 (en) 2001-04-03
AU1241700A (en) 2000-05-22
WO2000026744A3 (en) 2000-10-05
KR100543887B1 (ko) 2006-01-20
WO2000026744A2 (en) 2000-05-11
CN1332872A (zh) 2002-01-23
EP1135720A4 (en) 2003-06-11

Similar Documents

Publication Publication Date Title
CN1149489C (zh) 提供流水线存储器控制器的设备
CN1126028C (zh) 带有重放系统的计算机处理器
CN1165840C (zh) 计算机处理器检验指令的方法和系统及相应计算机系统
US9195786B2 (en) Hardware simulation controller, system and method for functional verification
US8200992B2 (en) Parallel processing computer systems with reduced power consumption and methods for providing the same
CN101241446B (zh) 非易失数据存储装置中虚拟文件系统命令调度方法和设备
CN101048762A (zh) 用于在总线上发送存储器预取命令的方法和设备
CN1437730A (zh) 分布式存储器控制和带宽优化
CN1512507A (zh) 外存储装置及其控制装置和数据发送与接收装置
CN111090464B (zh) 一种数据流处理方法及相关设备
CN101763251B (zh) 含有译码缓冲装置的多线程的微处理器
CN1866230A (zh) 具等待机制的存储器仲裁器
CN100416529C (zh) 用于确定动态随机存取存储器页面管理实现的方法和装置
CN1760847A (zh) 总线桥和数据传输方法
CN108958924B (zh) 具有延时分布优化的存储器系统及其操作方法
US5784711A (en) Data cache prefetching under control of instruction cache
US10049035B1 (en) Stream memory management unit (SMMU)
CN1855033A (zh) 可避免写后读的危险的存储器指令的发出和执行
CN1227670C (zh) 控制同步存储器内的脉冲串序列
CN110888592A (zh) 基于延迟ssd系统智能并行资源利用的请求调度方法及系统
CN1801396A (zh) 利用动态随机存取存储器写缓冲器的存储器控制器
CN1795442A (zh) 用于在主存储器和存储装置之间传送数据的方法和设备
US7937565B2 (en) Method and system for data speculation on multicore systems
JP2883465B2 (ja) 電子計算機
CN201449602U (zh) 访存请求调度装置

Legal Events

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

Granted publication date: 20040512

Termination date: 20151101

EXPY Termination of patent right or utility model