CN101256539A - 用于调度数据请求的服务的存储器控制器、方法和*** - Google Patents

用于调度数据请求的服务的存储器控制器、方法和*** Download PDF

Info

Publication number
CN101256539A
CN101256539A CNA2008100828083A CN200810082808A CN101256539A CN 101256539 A CN101256539 A CN 101256539A CN A2008100828083 A CNA2008100828083 A CN A2008100828083A CN 200810082808 A CN200810082808 A CN 200810082808A CN 101256539 A CN101256539 A CN 101256539A
Authority
CN
China
Prior art keywords
request
data
logic
time
vector
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
CNA2008100828083A
Other languages
English (en)
Other versions
CN101256539B (zh
Inventor
J·J·小艾伦
S·K·詹金斯
M·R·特朗布利
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.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101256539A publication Critical patent/CN101256539A/zh
Application granted granted Critical
Publication of CN101256539B publication Critical patent/CN101256539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

一种用于在FBDIMM存储器子***中使用可变等待时间模式调度数据请求的服务的方法和***。一种调度算法预计算连接到所有DRAM缓冲器芯片的数据的返回时间数据,并且将该返回时间数据存储在表中。所述返回时间数据被表述为其中每个向量中一位等于“1”的一组数据返回时间二进制向量。对于每个已接收数据请求,所述存储器控制器检索合适的返回时间向量。另外,所述调度算法利用表示所有正在执行的请求的数据返回时间向量的汇集的已更新历史向量来确定该已接收请求是否呈现与所述正在执行的请求的冲突。经由计算和利用每个请求的得分,所述调度算法重排序和调度所选请求的执行,从而在避免冲突的同时保存尽可能多的数据总线带宽。

Description

用于调度数据请求的服务的存储器控制器、方法和***
技术领域
本发明一般涉及计算机存储器***,并且特别涉及访问计算机存储器***中的数据。更特别地,本发明涉及调度对计算机存储器***中的存储器数据的访问。
背景技术
在数据处理***中,对存储在存储器中的数据(存储器数据)的请求被存储器控制器接收,其中,该存储器控制器控制对所述存储器数据的访问。在完全缓冲双列直插存储器模块(FBDIMM)存储器子***中,当特定数据项通过所述存储器控制器被请求时,命令分组被(经由串行信令)沿缓冲器模块链向下发送,直到该分组到达连接到包含所请求数据的动态随机存取存储器(DRAM)芯片的缓冲器芯片。
所述缓冲器模块通常经由基于并行双倍数据速率(DDR)的接口互连。所述缓冲器芯片使用DRAM协议来访问所述数据。所述缓冲器被称为AMB(高级存储器缓冲器)。AMB被设计为仅响应于存储器控制器命令采取动作。AMB在没有对在基于并行DDR的接口上的DRAM设备的任何更改的情况下基于FBDIMM接口递送来自存储器控制器的DRAM命令。
DRAM芯片是具有以各种成本可用的许多速度等级的容量非常高的部分。在存储器控制器处接收来自DRAM芯片的数据的时间延迟(即等待时间)取决于所述部分的速度级别/等级。同样地,所述存储器控制器可见的时间延迟的另一组成部分是所述命令分组到达目的地缓冲器芯片以及一旦该缓冲器芯片已从所述DRAM芯片获得数据时该缓冲器芯片发送所请求数据所花费的时间。
通过FBDIMM技术,存储器控制器与DRAM芯片之间的信令接口被拆分成两个独立的信令接口,其中,该两个接口之间具有缓冲器。所述缓冲器与DRAM芯片之间的第一接口支持DDR2(DDR2是第二代DDR接口标准,其中,DDR是一种类型的同步动态随机存取存储器(SDRAM)存储器访问)。然而,存储器控制器与所述缓冲器之间的第二接口是点到点的串行接口。
双倍数据速率同步动态随机存取存储器(DDR SDRAM)经由在时钟信号的上升和下降沿都传输数据而达到比之前技术(单一数据速率(SDR)SDRAM)更高的带宽。在不增大前端总线的频率的情况下,所述更高带宽几乎使传输速率加倍。由此,100MHz DDR***当相比于等价SDRSDRAM时具有200MHz的有效时钟速率。通过一次8字节地被传输的数据,DDR RAM给出(存储器总线时钟速率)×2(对于双工速率)×8(被传输的字节的数量)的传输速率。由此,通过100MHz的总线频率,DDR-SDRAM给出1600兆字节每秒(MB/s)的最大传输速率(即DDR 1600速度)。
由于FBDIMM接口基于串行差分信令(类似于串行高级技术附件(ATA)、串行小型计算机***接口(SCSI)、***计算机互连(PCI)Express等),所以存储器控制器能够支持许多代的基于FBDIMM技术的部件。作为新的存储器体系结构的FBDIMM技术解决了容量和带宽的扩展需求,并且使存储器能够与企业平台中的处理器和I/O改进并驾齐驱。
在FBDIMM存储器子***中,存在两种可能的等待时间模式--固定的和可变的。在固定等待时间模式中,缓冲器芯片在所述缓冲器芯片接近存储器控制器时持有数据。缓冲器芯片还在所述缓冲器芯片所附加到的DRAM比所述链中的其它缓冲器芯片更快时持有数据。所述缓冲器芯片持有数据从而使得存储器控制器可见的总延迟对于所有数据相同。使用恒定总延迟的优点是该恒定总延迟极大简化了存储器控制器的设计。然而,缺点是所有存储器请求被延迟以匹配最慢或最远DRAM的延迟。相反,可变延迟允许每个缓冲器芯片尽可能快地返回数据。其优点当然是每个数据项以最少可能时间被访问。然而其缺点是,由于所有返回数据必须通过同一缓冲器芯片链传递,所以下述负担被放置到存储器控制器上,所述负担为,以当从不同DRAM返回数据时避免总线冲突的方式安排请求的时间。
发明内容
所公开的是一种用于使用可变等待时间模式在完全缓冲双列直插存储器模块(FBDIMM)存储器子***中高效调度数据请求的服务的方法和***。高速集成电路包含一种调度算法,该算法预计算(经由基于并行双倍数据速率(DDR)的接口)连接到多个缓冲器芯片的动态随机存取存储器(DRAM)数据的返回时间参数。所述返回时间参数从存储器控制器发送用于从各个存储器位置检索数据的命令分组与在存储器控制器处接收所请求的数据之间的时间间隔的所有可能值的汇集。所述时间间隔的每个可能值被表述为二进制向量,其中,一位为“打开”(即被设为“1”)。所述算法将一组返回时间向量存储在表中,以便当存储器访问请求被接收时被所述存储器控制器使用。
对于每个所接收的数据请求,所述存储器控制器经由使用关联于(连接到特定缓冲器的DRAM中的)所请求DRAM数据的存储器地址的索引来检索合适的返回时间向量。所述调度算法还维护表示所有当前执行的请求的返回时间向量的汇集(经由逻辑或运算)的历史向量。每个所接收请求(即,正等待执行的请求)的返回时间向量被与所述历史向量比较(经由逻辑与运算),以便确定该所接收请求是否呈现与已在执行的请求的总线冲突。在一个实施例中,总线冲突由在逻辑与运算之后产生的向量中的任意“1”位的出现来标识。
所述调度算法计算这样的得分,该得分指示在给定如由所述历史向量指示的数据的已调度返回的情况下,相比于其它请求,对每个等待的请求在下一调度周期时的调度有多么好地保存了带宽。经由利用每个请求的所述得分,所述调度算法以在避免总线冲突的同时保存尽可能多的数据总线带宽的顺序重排序和发出请求。当请求被所述存储器控制器发出(执行)时,所述调度算法更新所述历史向量以反映该新被发出的请求被包括在所述执行请求集合中。
在以下详细写出的描述中,本发明的以上和附加目的、特征和优点将变得显而易见。
附图说明
经由参考以下当参考附图阅读时对说明性实施例的详细描述,本发明其自己以及其优选使用模式、进一步目的和优点将被最好地理解,在附图中:
图1示出了在其中本发明的特征可以被有利地实现的数据处理***的框图;
图2示出了FBDIMM存储器子***;
图3示出了实现调度算法的电路的框图表示;
图4示出了根据本发明的说明性实施例的用于对一组所接收数据请求的总线冲突的确定以及向量和与得分的计算的向量表;
图5是示出根据本发明的说明性实施例的由用于在以可变等待时间模式运转的存储器***中重排序数据请求的算法所完成的过程的流程图;以及
图6是示出根据本发明的说明性实施例的调度算法的测试结果的图。
具体实施方式
本发明提供一种用于使用可变等待时间模式在完全缓冲双列直插存储器模块(FBDIMM)存储器子***中高效调度数据请求的服务的方法和***。高速集成电路包含一种调度算法,该调度算法预计算(经由基于并行双倍数据速率(DDR)的接口)连接到多个缓冲器芯片的动态随机存取存储器(DRAM)数据的返回时间参数。所述返回时间参数是从所述存储器控制器发送用于从各个存储器位置检索数据的命令分组与在所述存储器控制器处接收所请求的数据之间的时间间隔的所有可能值的汇集。所述时间间隔的每个可能值被表述为二进制向量,其中,一位为“打开”(即被设为“1”)。所述算法将一组返回时间向量存储在表中,以便当存储器访问请求被接收时被所述存储器控制器使用。
对于每个所接收的数据请求,所述存储器控制器经由使用关联于(连接到特定缓冲器的DRAM中的)所请求DRAM数据的存储器地址的索引来检索合适的返回时间向量。所述调度算法还维护表示所有当前执行的请求的返回时间向量的汇集(经由逻辑或运算)的历史向量。每个所接收请求(即,正等待执行的请求)的返回时间向量被与所述历史向量比较(经由逻辑与运算),以便确定该所接收请求是否呈现与已在执行请求的总线冲突。在一个实施例中,总线冲突由在逻辑与运算之后产生的向量中的任意“1”位的出现来标识。
所述调度算法计算这样的得分,该得分指示在给定如由所述历史向量指示的数据的已调度返回的情况下,相比于其它请求,对每个等待的请求在下一调度周期时的调度有多么好地保存了带宽。经由利用每个请求的所述得分,所述调度算法以在避免总线冲突的同时保存尽可能多的数据总线带宽的顺序重排序和发出请求。当请求被所述存储器控制器发出(执行)时,所述调度算法更新所述历史向量以反映该新被发出请求被包括在执行请求集合中。
在下面对本发明的示例性实施例的详细描述中,在其中本发明可以被实现的特定示例性实施例被充分详细地描述,以便使本领域的技术人员能够实现本发明,并且应当理解,其它实施例可以被使用,以及在不脱离本发明的精神或范围的情况下,逻辑、体系结构、程序、机械、电气和其它改变可以被作出。以下详细描述因此不在限制性意义上被理解,并且本发明的范围仅由所附权利要求定义。
在附图的描述中,类似单元被提供与之前图的那些单元相类似的名称和标号。在后面的附图在不同上下文中使用所述单元或使用具有不同功能的所述单元的情况下,所述单元被提供表示图号的不同前导数字(例如用于图1的1xx和用于图2的2xx)。被指派给所述单元的特定数字只为了辅助本说明书而被提供,并且不意味着暗示对本发明的任意限制(结构的或功能的)。
还应当理解,特定参数名称的使用仅作为示例被使用,并且不意味着暗示对本发明的任意限制。本发明由此可以不受限制地使用用于描述以上参数的不同命名/术语来实现。
现在参考附图,图1示出了在其中本发明的特征可以被有利地实现的基本数据处理***的框图表示。DSP 100包括连接到***总线/互连102的处理器101和存储器106。控制对存储器106的访问的是:也连接到***总线/互连102的存储器控制器105。存储器控制器105包括使存储器控制器105能够控制对存储在存储器106中的存储器数据的访问(即检索和存储)的硬件和软件逻辑。
本领域的普通技术人员将理解,图1中所示的硬件和基本配置可以改变。所示的示例不意味着暗示对本发明的体系结构限制。图1中所示的数据处理***例如可以是运行高级交互式执行(AIX)操作***或LINUX操作***的纽约Armonk的国际商业机器公司的产品IBM eServer pSeries***。
本发明的各个特征作为存储器控制器105中的固件代码和/或逻辑被提供。在所述固件代码中有:用于提供存储器控制器105与存储器部件之间的串行信令功能的代码、用于使DRAM协议连接能够访问存储器数据的代码、以及更专用于本发明的用于使能下面描述的可变等待时间调度特征的代码。为简单起见,使能所述可变等待时间调度特征的代码和逻辑的集合体这里被称为可变等待时间调度工具。在实际实现中,所述可变等待时间调度工具可以在以用于提供下面描述的可变等待时间调度功能的可变等待时间模式运转的存储器子***中被实现。
由此,如由图1所示,除上面描述的硬件部件之外,数据处理***100的存储器控制器105包括一个或更多固件部件,其中,所述固件部件包括可变等待时间调度(VLS)工具110。根据该说明性实施例,可变等待时间调度工具110使存储器控制器105能够完成一系列功能过程,所述功能过程包括:(1)预计算关联于连接到所有可能的缓冲器芯片的存储器数据的检索的等待时间;(2)维护历史向量,该历史向量提供关于关联于当前执行的请求的数据的已调度返回的信息;(3)从所述(预计算的)返回时间参数检索已接收数据请求的返回时间向量;(4)确定在下一个调度周期时将调度哪个已接收请求作为下一个执行请求;以及下面描述和由图2-6所示的其它特征/功能。
图2示出了FBDIMM存储器子***。存储器子***200包括存储器控制器105,其中,该存储器控制器105经由串行链路201连接到被示为缓冲器集合202的缓冲器链。存储器子***200还包括被假设为FBDIMM的许多动态随机存取存储器组203。缓冲器集合202中的缓冲器经由被示为DDR2接口204的基于并行双倍数据速率(DDR)的接口连接到各自DRAM组中的DRAM芯片。
FBDIMM技术指示存储器控制器105与DRAM芯片203之间的信令接口,以及该接口被拆分为两个独立的信令接口,其中,所述两个接口之间具有称为AMB(高级存储器缓冲器)的缓冲器。所述缓冲器与DRAM芯片之间的并行接口支持DDR2。然而,所述存储器控制器与所述缓冲器之间的接口是点到点串行接口。
存储器子***200由几个电路组成,所述电路被精心设计为以实际上在超高速集成电路芯片中实现的方式(在图1的存储器控制器105中的VLS工具110中)包含调度算法。在优化所述调度算法的设计时,当对以下因素给予特别考虑时性能收益被最大化:(1)逻辑门的数量;以及(2)互连线的长度。可能根据所嵌入的技术而不同的这两(2)个因素还可以降低电路运转的速度。幸好,所述调度算法当以DDR1600速度以可变等待时间模式运转时,在FBDIMM技术中理想地运转(在设计中已将逻辑门的数量和连接线的长度计算在内)。可以预期,处于特定速度和特定电路技术中的更高性能解决方案可以由特定级别的重新设计(其也将逻辑门的数量和连接线的长度计算在内)来理想地达到。
存储器子***200以允许缓冲器集合202中的每个缓冲器芯片在可能的最小时间内返回数据的可变等待时间模式运转。为避免数据总线冲突以及尽可能快和尽可能高效地执行请求,作为存储器控制器(图1)中的VLS工具110被实现的调度算法(其在图3中示出)被提供。在存储器访问操作期间,所述调度算法预计算关联于所有数据请求的等待时间信息(即返回时间信息),并且利用该信息来确定关联于对存储器数据的每个随后请求的等待时间。缓冲器集合202(即缓冲器链)中的缓冲器芯片的数量指示可能的不同等待时间值的数量。由此,例如,在所述链中具有八个缓冲器的缓冲器集合指示存在八个可能的等待时间值。
用于连接到每个缓冲器芯片的数据的返回时间信息(等待时间)被表述为其中仅一位被打开(等价于二进制“1”,以及被称为“1”位)的返回时间(二进制)向量。因此,具有仅一个“1”位的八个单一位分量的二进制向量可以考虑全部八个可能的等待时间值。具有最小关联等待时间的数据请求(例如目标是最靠近存储器控制器105的缓冲器芯片中的存储器数据的请求)具有这样的关联返回时间向量,其中,该向量的最左位(第一分量)是“1”位。具有最大关联等待时间的数据请求(即目标是最远离存储器控制器105的缓冲器芯片中的存储器数据的请求)具有这样的关联返回时间向量,其中,该向量的最右位(例如,给定所述八缓冲器示例的情况下的第八个分量)为“1”位。
所述调度算法使用这些返回时间向量来汇集被选择进行执行的请求的历史向量。所述调度算法然后使用该历史向量来进一步确定由随后被接收的请求呈现的与当前执行的请求的潜在冲突。另外,所述调度算法执行“总和”和“得分”计算过程(其在图4中示出)来选择将在下一周期时开始执行的“等待”请求,其中,在所述下一周期时,所选请求可以被调度。
图3示出了实现所述调度算法的各个功能的电路(或调度逻辑)的框图表示。调度逻辑300包括从一列已预计算值中查找/检索的一组已按顺序排序的数据返回时间向量302,其中,DRAM基于所述一列已预计算值包含用于在存储器控制器105(图1)处接收的新请求301的数据。调度逻辑300还包括连接到并且为请求选择器310提供控制输入的冲突指示符向量311和得分向量312。冲突指示符向量311和得分向量312都包含对应于所述一组数据返回时间向量302的各自条目的参数值。冲突指示符向量311和得分向量312的特定功能在下面被详细说明。
请求选择器310为连接到数据返回时间向量302的多路复用器(MUX)309提供选择输入。还连接到数据返回时间向量302的是一组加法器303,其用于提供用于所述返回时间向量的条目的列的总和。产生的总和的确定和使用在下面对图4的表的描述中被进一步详细描述。
调度逻辑300还包括一系列与逻辑(未示出),其中,所述与逻辑被用于将每个返回时间向量与当前历史向量逻辑进行逻辑与。根据一个实施例,所述逻辑与过程的结果被存储在冲突向量311的各个条目中。完成这些数据返回时间向量与所述历史向量的逻辑与的目的以及从产生的总和向量认识到的推论在下面参考图4被描述。
在调度逻辑300中,MUX 309经由输入线路--耦合到数据返回时间向量302的MUX入(MUXin)线路304接收作为输入的向量条目,以及MUX 309经由输出线路--每个耦合到一组逻辑或门308的第一输入的MUX出(MUXout)线路305提供作为输出的所选择的向量条目。所述一组或门308的第二输入连接到一系列锁存器307的输出。这些锁存器包含被称为所述历史向量(306)的之前选择的累加。
调度逻辑300进一步包括历史向量306,该历史向量306是与数据返回时间向量302的大小相等数量的一组位。历史向量306是通过上面与被移出所述向量的最左位和经由接地被设为零的最右位的逻辑或过程的锁存输出。该向量(306)经由首先(从向量302)选择对应于由请求选择器310在MUX 309选择的特定已接收请求的特定数据返回时间向量被确定。一旦所述特定数据返回时间向量被选择,该向量条目被输入到一组或门308,并且被与存储在所述一系列锁存器307中的之前一组当前历史向量的条目进行逻辑或。所选数据返回时间向量与所述当前历史向量的所述逻辑或然后生成新的历史向量306。
通过调度逻辑300,新请求301在存储器控制器105被接收。关联于该新请求301的返回时间向量被放入数据返回时间向量302中。由所接收的请求呈现的与正在执行的请求的冲突在冲突指示符向量311中被标识。加法器(303)被用于所述总和的计算。所述总和向量、冲突向量311和得分向量312被用于确定作为将开始执行的下一个已调度请求的“等待”请求。所述历史向量提供被所有当前正在执行的请求所请求的数据的已汇集返回时间信息。
数据可以在多倍的“n”个时钟周期中被返回,其中,n是指所述存储器控制器处的连续数据返回之间的时钟周期的最小数量。在附图和讨论中,值“n”还与从所述存储器控制器发送命令分组与在所述存储器控制器处接收关联数据之间的最短间隔成比例。该间隔对应于与检索连接到最靠近所述存储器控制器的缓冲器芯片的数据和从较快DRAM检索数据相关联的短延迟。取决于实际实现中涉及的时间延迟,该第一延迟可以大于连续传输之间的时钟周期的数量。由于该延迟被加到所有访问,所以该延迟不改变所述算法。请求选择器310触发MUX 309将所选请求的返回时间向量(经由MUX出线路305)转发到或门308的各个第一输入。历史向量(306)(由锁存器组307的输出提供)进一步为各个或门300提供另一组(第二)输入。在调度逻辑300中,所述或门提供用于将所选请求的返回时间向量并入历史向量306的逻辑或运算。在下一个调度时钟周期时,历史向量306被经由或门308用来自MUX出线路305的数据所更新。在历史向量306的所述更新期间,已过期向量分量(即最左位)被从历史向量306移除。
现在转向图4,根据本发明的说明性实施例的用于冲突的确定以及一组所接收数据请求的“总和”和“得分”的计算的向量表被示出。表400包括被放置在表400的第一行中的历史向量401。另外,表400包括数据返回时间向量403。数据返回时间向量403对应于在存储器控制器105处所接收的各个请求。数据返回时间向量403按所述各个请求被接收的顺序被包括在表400中(在包含历史向量401的行之下)。另外,表400包括冲突向量列407,其中,该冲突向量列407具有被设为“1”的特定的所述条目,其指示针对第一返回时间向量、第三返回时间向量和第六返回时间向量的冲突。表400还包括总和向量405,该总和向量405是对应于所述各个请求的总和的行。最后,表400还包括被示为单独、独立的向量的得分向量列409,该得分向量列409是所示的“最后”或“最右”列。
如果所接收的请求在下一个调度周期之后开始执行,则所述调度算法确定由每个所接收请求呈现的潜在冲突。在表400中,在与历史向量401相同的列中具有“1”位的返回时间向量403的分量对应于呈现与当前正在执行的请求的冲突的各个所接收请求。所述调度算法经由对历史向量401和所述返回时间向量(对应于单一请求)实施逻辑与运算来确定由单一请求呈现的冲突。所述逻辑与运算对于每个所接收请求被重复。如果任何“1”位出现在产生的向量中,则(通过实施所述逻辑与运算)对应产生的向量指示冲突。如果存在冲突(如由产生的向量中“1”位的出现所指示的),则冲突向量列407(或冲突向量311,图3)中的对应冲突指示符被设为“1”。
在表400中,针对第一返回时间向量、第三返回时间向量和第六返回时间向量的冲突指示符通过被放置在冲突向量列407的合适位置中的“1”位而全部阐明了冲突的出现。由此,第一所接收请求、第三所接收请求和第六所接收请求的每个呈现与当前正在执行的请求的冲突,以及由此,这三个请求中都不被选择在下一个调度周期时开始执行。
总和向量405中的总和按照如下被计算。对于第一列的列总和的计算以“0”开始。对于除第一列之外的所有列,特定列总和的计算以来自前一列的列总和开始。前一列总和(或对于第一列的“0”)然后被加到对于其列总和正被计算的列中的“1”位的数量。然后,只要值(在“1”位的所述加之后)不等于“0”,则在加“1”位的数量之后,“1”被减去。所述总和被包含在总和向量405中。所述总和给出了对于数据返回的已请求时隙(包括已被调度的时隙)的聚类的指示。
经由构造,关联于每个请求的返回时间向量恰恰具有一个打开的位,以及被存储在得分列409中的每个请求的得分是(被标识为)在其中所述(返回时间)向量的唯一“1”位出现的列之前的列总和。在最左列中具有“1”位的请求只要这些请求没有冲突则具有得分“0”。例如,第二个所接收请求具有得分“0”并且是具有最低得分的请求,以及其不呈现冲突。由此,在表400中所示的示例中,请求2是被选择在下一个调度周期时/在下一个调度周期期间开始执行的所接收请求。使用所述得分准则的特定请求选择被作出,以便在避免冲突的同时最好地减少用于更高效地服务于请求的所请求时隙的聚类(即平均分布所述请求的服务)。
所述历史向量和所述返回时间向量(关联于所述已接收请求)的集合在每个调度周期时被全部更新。特别地,所述调度算法经由首先合并所选请求的返回时间向量(到历史向量401中)来开始更新历史向量401。所述更新经由历史向量401与所述返回时间向量的逻辑或而被执行。所述调度算法然后在所述调度周期时移除历史向量401的已过期(第一)向量分量(位)。该位移除对应于历史向量401在表400中的左(时间)移位。同样,所选返回时间向量之下的数据返回时间向量的集合在从表400中的所述集合移除所选请求和关联的数据返回时间向量之后在表400中被向上移位。该向上移位被提供,以便维护接收顺序以及按照请求被接收的顺序接受任何新请求。
图5是示出根据本发明的说明性实施例的由用于在以可变等待时间模式运转的存储器子***中重排序数据请求以及用于避免冲突的算法完成的过程的流程图。所述过程在方框501处开始,在此处,包含所述调度算法的高速集成电路预计算连接到所有可能的DRAM缓冲器芯片的数据的返回时间数据。连接到每个缓冲器芯片的数据的所述返回时间信息被表述为其中仅一位被打开(等价于二进制“1”,并且被称为“1”位)的二进制向量。当数据可以以最少量时间被返回时,所述向量的最左位为所述“1”位,以及当所述数据能够以最大量时间作出返回时,则所述向量的最右位为所述“1”位。连接到所有缓冲器芯片的数据的二进制返回时间向量的所述已汇集集合可以被称为返回时间向量的集合/集体,其被存储在在每个存储器访问请求的接收之后被所述存储器控制器访问的表中。在方框502处,所述调度算法维护所述历史向量,其中,所述历史向量指示返回所述存储器控制器的数据的预期到达时间。特别地,所述历史向量在锁存器链中被维护,以及也被表述为二进制向量。如果没有任何存储器请求正被执行,或如果所有之前的请求已被完成,则所述历史向量为零向量。
对所述存储器控制器呈现的任何新请求关联于数据返回时间向量(从所述已预计算的返回时间信息检索),如方框503中所示。所述存储器控制器维护已由微处理器或其它数据消费者向所述存储器控制器发出的多个存储器请求的列表。每个请求具有关联的数据返回时间向量。这些返回时间向量每个被故意表述为其中仅一位被打开的二进制向量,以便通过时间尺度将所述返回时间向量与所述历史向量对齐。该时间尺度的对齐允许所述历史向量被与特定访问请求的返回时间向量逻辑上进行逻辑与,从而确定该请求是否导致与已被发出的请求的冲突。
为开始用于确定新请求是否呈现与正在执行的请求的任何调度冲突的过程,如在方框504处所示,包含所述算法的电路在(针对每个新请求的)每个数据返回时间向量与所述历史向量之间实施逻辑与运算。在方框505处,产生的向量被检查以确定是否零向量被产生。在方框507处,所述算法确定是否存在冲突(即所述逻辑与运算是否导致非零向量)。如果冲突存在,则如在方框508处所示,所述算法确认该新请求确实呈现与正在执行的请求的冲突,并且在所述冲突向量的合适空间中放入“1”。如果在方框507处所述算法确定所述逻辑与运算的结果不指示冲突的出现(即所述逻辑与运算导致零向量),则如在方框509处所示,“0”被放入所述冲突向量的合适空间中,以指示该新请求没有呈现与正在执行的请求的冲突。
在方框510处,在此处,所述算法计算每个列的总和,以及在方框511处,所述算法确定每个请求的得分。如在方框512处所示,所述算法然后选择没有冲突的具有最低得分的请求(或具有相同最低得分的多个请求中的第一个被接收的请求)。用于总和与得分的计算的行和列的表格说明在图4中示出。
所述总和与得分计算被用于在“保存”尽可能多的带宽的同时经由重排序请求而在较短时间空间中高效服务于更大量的请求。保存带宽是指可用带宽的高效使用,即在避免数据总线冲突的同时具有最小带宽浪费。为达到带宽使用的理论最大限制,数据每n个周期被返回,即数据占用总线上的每个可能的时隙。所述重排序过程(或请求)最大化了利用每个可用机会或可用时隙用于在所述存储器控制器与所述缓冲器芯片之间发送数据的能力。
为考虑执行的开始以及为跟踪所选请求的返回时间,在方框513处,所述算法在对应于所选请求的数据返回时间向量与所述历史向量之间实施逻辑或运算。如在方框514处所示,所述历史向量在用于下一总和与得分计算之时的调度周期时被更新。另外,如在方框515处所示,所选请求向量之下的所有数据返回时间向量在所选向量被从所述表移除后被向上移位一个表行。所述向量在所述表中的移位对于在调度周期时更新所述向量是必要的。如在方框516处所示,任意新向量/新请求被添加到所述向量/请求的表/矩阵的结尾,以及所述过程在方框517处结束。
图6示出了被编码为测试根据本发明的说明性实施例的调度算法的C语言程序的结果的图。图600包括吞吐量轴601和配置轴602。图600示出了针对1000个不同存储器配置的、对于整齐请求排序相对于由所述调度算法产生的排序的、按照总共可能总线带宽的百分比来测量的吞吐量。每个实验通过1000个随机请求被运行,以及总共吞吐量被测量。每个存储器配置包括按不同顺序被***FBDIMM信道中的不同速度等级的DRAM。在所有所述实验中,总线吞吐量上的平均增益被观测到,以及所述新算法在基本所有所述实验中改进了吞吐量。
在上面的流程图(图5)中,尽管所述过程步骤按特定顺序被描述和示出,但步骤的特定顺序的使用不意味着暗示对本发明的任何限制。在不脱离本发明的精神或范围的情况下,可以关于步骤的顺序作出改变。因此,特定顺序的使用不在限制性意义上被理解,以及本发明的范围仅由所附权利要求定义。
最后,重要的是,尽管本发明的说明性实施例已经并且将继续在安装了软件的完全功能计算机***的上下文中被描述,但本领域的技术人员将理解,本发明的说明性实施例的软件方面能够作为多种形式下的程序产品被分布,以及本发明的说明性实施例不论用于实际实现所述分布的特定类型的信号承载媒体如何而同样适用。信号承载媒体的示例包括例如软盘、硬盘驱动器、CD ROM的可记录类型媒体以及例如数字和模拟通信链路的传输类型媒体。
尽管本发明已参考优选实施例被特别示出和描述,但本领域的技术人员将理解,在不脱离本发明的精神和范围的情况下,可以在其中作出形式和细节上的各种的改变。

Claims (20)

1.一种在具有多个缓冲器芯片的存储器子***中的存储器控制器,其中,所述多个缓冲器芯片具有不同访问等待时间,所述等待时间与从关联于所述缓冲器芯片的存储器部件检索存储器数据相关联,所述存储器控制器包括:
用于从返回时间信息的表中检索已接收数据请求的返回时间向量的逻辑;以及
用于确定地选择将调度在下一个调度周期开始执行的下一个请求的逻辑,所述选择是基于被与当前正在执行的请求的历史向量比较的该下一个请求的数据返回时间向量,其中,所述下一个请求是不提供与所述当前正在执行的请求的数据总线冲突的请求,以及其导致所述缓冲器芯片与所述存储器控制器之间的数据总线带宽的最大使用率。
2.根据权利要求1所述的存储器控制器,进一步包括:
用于提供下一个历史向量的逻辑,所述提供是经由将所选用于在所述下一个调度周期时执行的所述下一个请求的返回时间向量与之前生成的所有当前正在执行的请求的历史向量进行逻辑或;
用于位置移位所述之前生成的历史向量以生成下一个历史向量的逻辑,其是经由(a)移除所述之前生成的历史向量中对应于已完成其执行并且将其数据返回所述存储器控制器的请求的条目;以及(b)添加用于所述下一个请求的新条目。
3.根据权利要求1所述的存储器控制器,其中,所述用于确定地选择的逻辑进一步包括:
用于预计算存储在各个所述多个缓冲器芯片的存储器部件中的存储器数据的返回时间信息的表的逻辑;
用于以时间单位计算所述数据返回时间信息的逻辑;
用于将所述数据返回时间信息表述为其中单一位被打开为具有位值“1”的多个二进制返回时间向量的逻辑;以及
用于将第一多个数据返回时间向量存储在所述表中的逻辑。
4.根据权利要求2所述的存储器控制器,其中,所述用于提供的逻辑进一步包括:
用于以零向量初始化所述历史向量的逻辑;以及
用于当已接收请求变为下一个正在执行请求时更新所述历史向量的逻辑。
5.根据权利要求1所述的存储器控制器,其中,所述用于确定地选择的逻辑进一步包括:
用于确定何时已接收请求呈现与所述当前正在执行的请求的冲突的逻辑;
用于从所述返回时间向量计算总和的向量的逻辑;以及
用于计算针对各个已接收请求被提供的所述数据返回时间向量的每一个的得分的逻辑。
6.根据权利要求5所述的存储器控制器,进一步包括:
用于标识具有最低得分并且其执行不呈现任何数据总线冲突的单一已接收请求的逻辑;
当所述单一已接收请求具有所述最低得分时,用于选择所述单一已接收请求作为下一个正在执行的请求进行调度的逻辑;以及
当多于一个已接收请求具有所述相同的最低得分时,用于选择所述已接收请求中的较老请求以作为下一个正在执行的请求进行调度的逻辑。
7.根据权利要求2所述的存储器控制器,进一步包括:
用于实施与所述历史向量和与所述下一个正在执行请求的数据返回时间向量的逻辑或运算的逻辑,其中,所述逻辑或运算将所述返回时间向量并入所述历史向量中;以及
用于从所述历史向量移除已过期单元的逻辑。
8.一种在接收数据请求和发起对存储器部件的数据访问的存储器控制器中的方法,其中,所述存储器部件经由具有不同访问等待时间的多个缓冲器芯片可访问,所述方法包括:
从返回时间信息的表中检索已接收数据请求的数据返回时间向量;以及
确定地选择将调度在下一个调度周期时开始执行的下一个请求,所述选择是基于被与当前正在执行的请求的历史向量比较的该下一个请求的数据返回时间向量,其中,所述下一个请求是不提供与所述当前正在执行的请求的数据总线冲突的请求,以及其导致所述缓冲器芯片与所述存储器控制器之间的数据总线带宽的最大使用率。
9.根据权利要求8所述的方法,进一步包括:
提供下一个历史向量,其中,所述提供是经由将被选择用于在所述下一个调度周期时执行的所述下一个请求的返回时间向量与之前生成的所有当前正在执行的请求的历史向量进行逻辑或;
位置移位所述之前生成的历史向量以生成所述下一个历史向量,其是经由(a)移除所述之前生成的历史向量中对应于已完成其执行并且将其数据返回所述存储器控制器的请求的条目;以及(b)添加用于所述下一个请求的新条目。
10.根据权利要求8所述的方法,其中,所述确定地选择进一步包括:
预计算存储在各个所述多个缓冲器芯片的存储器部件中的存储器数据的返回时间信息的表;
以时间单位计算所述返回时间信息;
将所述返回时间信息表述为其中单一位被打开为具有位值“1”的多个二进制返回时间向量;
将第一多个数据返回时间向量存储在所述表中;
以零向量初始化所述历史向量;以及
当所述已接收请求变为所述下一个正在执行的请求时,更新所述历史向量。
11.根据权利要求9所述的方法,其中,所述确定地选择进一步包括:
确定何时已接收请求呈现与所述当前正在执行的请求的冲突;
从所述返回时间向量计算总和的向量;以及
计算针对各个已接收请求被提供的所述返回时间向量的每一个的得分。
12.根据权利要求11所述的方法,进一步包括:
标识具有最低得分并且其执行不呈现任何数据总线冲突的单一已接收请求;
当所述单一已接收请求具有所述最低得分时,选择所述单一已接收请求作为所述下一个正在执行的请求进行调度;以及
当多于一个已接收请求具有所述相同的最低得分时,选择所述已接收请求中的较老请求以作为所述下一个正在执行的请求进行调度。
13.根据权利要求9所述的方法,进一步包括:
实施与所述历史向量和与所述下一个正在执行的请求的所述数据返回时间向量的逻辑或运算,其中,所述逻辑或运算将所述数据返回时间向量并入所述历史向量中;以及
从所述历史向量移除已过期单元。
14.一种数据处理***,其包括:
处理部件,其生成数据请求并且发出针对数据返回的数据请求;
耦合到所述处理部件的存储器子***,所述存储器子***带有具有不同访问等待时间的多个缓冲器芯片,所述访问等待时间与从关联于所述缓冲器芯片的存储器部件检索存储器数据相关联;以及
关联于所述存储器子***的存储器控制器,所述存储器控制器具有:
用于预计算存储在各个所述多个缓冲器芯片的存储器部件中的存储器数据的返回时间信息的表的逻辑;
用于以时间单位计算所述返回时间信息的逻辑;
用于将所述返回时间信息表述为其中单一位被打开为具有位值“1”的多个二进制返回时间向量的逻辑;以及
用于将第一多个数据返回时间向量存储在返回时间信息的表中的逻辑;
用于从所述返回时间信息的表中检索已接收数据请求的数据返回时间向量的逻辑;以及
用于确定地选择将调度在下一个调度周期时开始执行的下一个请求的逻辑,所述选择是基于被与当前正在执行的请求的历史向量比较的该下一个请求的数据返回时间向量,其中,所述下一个请求是不提供与当前正在执行的请求的数据总线冲突的请求,以及其导致所述缓冲器芯片与所述存储器控制器之间的数据总线带宽的最大使用率。
15.根据权利要求14所述的数据处理***,其中,所述存储器控制器进一步包括:
用于提供下一个历史向量的逻辑,所述提供是经由将所选用于在所述下一个调度周期时执行的所述下一个请求的数据返回时间向量与之前生成的所有当前正在执行的请求的历史向量进行逻辑或;
用于位置移位所述之前生成的历史向量以生成下一个历史向量的逻辑,其是经由(a)移除所述之前生成的历史向量中对应于已完成其执行并且将其数据返回所述存储器控制器的请求的条目;以及(b)添加用于所述下一个请求的新条目。
16.根据权利要求15所述的数据处理***,其中,所述用于提供的逻辑进一步包括:
用于以零向量初始化所述历史向量的逻辑;以及
用于当所述已接收请求变为所述下一个正在执行的请求时更新所述历史向量的逻辑;
17.根据权利要求14所述的数据处理***,其中,所述用于确定地选择的逻辑进一步包括:
用于确定何时已接收请求呈现与所述当前正在执行的请求的冲突的逻辑;
用于从所述数据返回时间向量计算总和的向量的逻辑;以及
用于计算针对各个已接收请求被提供的所述数据返回时间向量的每一个的得分的逻辑。
18.根据权利要求14所述的数据处理***,其中,所述存储器控制器进一步包括:
用于标识具有最低得分并且其执行不呈现任何数据总线冲突的单一已接收请求;
当所述单一已接收请求具有所述最低得分时,用于选择所述单一已接收请求作为所述下一个正在执行的请求进行调度的逻辑;以及
当多于一个已接收请求具有所述相同的最低得分时,用于选择所述已接收请求中较老请求以作为所述下一个正在执行的请求进行调度的逻辑。
19.根据权利要求14所述的数据处理***,其中,所述存储器控制器进一步包括:
用于实施与所述历史向量和与所述下一个正在执行的请求的所述数据返回时间向量的逻辑或运算的逻辑,其中,所述逻辑或运算将所述数据返回时间向量并入所述历史向量;以及
用于从所述历史向量移除已过期单元的逻辑。
20.根据权利要求14所述的数据处理***,其中,所述存储器子***以可变等待时间模式运转。
CN2008100828083A 2007-03-01 2008-02-28 用于调度数据请求的服务的存储器控制器、方法和*** Active CN101256539B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/680,695 US7660952B2 (en) 2007-03-01 2007-03-01 Data bus bandwidth scheduling in an FBDIMM memory system operating in variable latency mode
US11/680,695 2007-03-01

Publications (2)

Publication Number Publication Date
CN101256539A true CN101256539A (zh) 2008-09-03
CN101256539B CN101256539B (zh) 2011-11-09

Family

ID=39733962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100828083A Active CN101256539B (zh) 2007-03-01 2008-02-28 用于调度数据请求的服务的存储器控制器、方法和***

Country Status (2)

Country Link
US (1) US7660952B2 (zh)
CN (1) CN101256539B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103502934A (zh) * 2010-12-22 2014-01-08 英特尔公司 向量冲突指令
CN104137081A (zh) * 2012-02-13 2014-11-05 国际商业机器公司 偏移在先的高等待时间操作的存储器重排序队列
CN105339916A (zh) * 2012-10-26 2016-02-17 美光科技公司 用于具有可变等待时间的存储器操作的设备及方法
US10067890B2 (en) 2013-03-15 2018-09-04 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US10163472B2 (en) 2012-10-26 2018-12-25 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
CN111742305A (zh) * 2017-12-22 2020-10-02 超威半导体公司 调度具有不统一等待时间的存储器请求
US10860482B2 (en) 2013-08-14 2020-12-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
WO2007028109A2 (en) 2005-09-02 2007-03-08 Metaram, Inc. Methods and apparatus of stacking drams
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
WO2010144624A1 (en) 2009-06-09 2010-12-16 Google Inc. Programming of dimm termination resistance values
US9342471B2 (en) * 2010-01-29 2016-05-17 Mosys, Inc. High utilization multi-partitioned serial memory
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
KR101949382B1 (ko) 2012-04-04 2019-02-18 삼성전자주식회사 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법
US9563251B2 (en) * 2013-12-28 2017-02-07 Intel Corporation Representing a cache line bit pattern via meta signaling
JP6477228B2 (ja) * 2015-05-18 2019-03-06 富士通株式会社 情報処理装置、メモリ制御装置、および情報処理装置の制御方法
US10339063B2 (en) * 2016-07-19 2019-07-02 Advanced Micro Devices, Inc. Scheduling independent and dependent operations for processing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4771287A (en) * 1983-06-23 1988-09-13 Westinghouse Electric Corp. Method of correcting for errors in radar imaging
US6067408A (en) 1993-05-27 2000-05-23 Advanced Micro Devices, Inc. Full duplex buffer management and apparatus
US5742784A (en) 1995-01-25 1998-04-21 International Business Machines Corporation System for reordering of instructions before placement into cache to reduce dispatch latency
USRE38428E1 (en) 1995-05-02 2004-02-10 Apple Computer, Inc. Bus transaction reordering in a computer system having unordered slaves
US5765204A (en) 1996-06-05 1998-06-09 International Business Machines Corporation Method and apparatus for adaptive localization of frequently accessed, randomly addressed data
US6578107B1 (en) 2000-05-25 2003-06-10 International Business Machines Corporation Method and system for prefetching data where commands are reordered for execution
US6564304B1 (en) 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching
US7925624B2 (en) * 2006-03-31 2011-04-12 Amazon Technologies, Inc. System and method for providing high availability data

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103502934B (zh) * 2010-12-22 2017-01-18 英特尔公司 向量冲突指令
CN103502934A (zh) * 2010-12-22 2014-01-08 英特尔公司 向量冲突指令
CN104137081A (zh) * 2012-02-13 2014-11-05 国际商业机器公司 偏移在先的高等待时间操作的存储器重排序队列
CN104137081B (zh) * 2012-02-13 2016-10-26 国际商业机器公司 偏移在先的高等待时间操作的存储器重排序队列的方法及***
US10885957B2 (en) 2012-10-26 2021-01-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
CN105339916A (zh) * 2012-10-26 2016-02-17 美光科技公司 用于具有可变等待时间的存储器操作的设备及方法
US10067764B2 (en) 2012-10-26 2018-09-04 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US10163472B2 (en) 2012-10-26 2018-12-25 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US10915321B2 (en) 2012-10-26 2021-02-09 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US10067890B2 (en) 2013-03-15 2018-09-04 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US10740263B2 (en) 2013-03-15 2020-08-11 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US10860482B2 (en) 2013-08-14 2020-12-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
CN111742305A (zh) * 2017-12-22 2020-10-02 超威半导体公司 调度具有不统一等待时间的存储器请求

Also Published As

Publication number Publication date
CN101256539B (zh) 2011-11-09
US7660952B2 (en) 2010-02-09
US20080215832A1 (en) 2008-09-04

Similar Documents

Publication Publication Date Title
CN101256539B (zh) 用于调度数据请求的服务的存储器控制器、方法和***
CN100354796C (zh) 使用多存储体存储器设备中的标记寄存器的方法
CN1977336B (zh) 改善支持多存储器访问延迟的计算机存储器***的性能的***和方法
CN1282066C (zh) 计算机***中用于访问磁带设备的方法和***
CN102084345B (zh) 侦测推测性预充电
CN102428451B (zh) 用于数据存储装置的命令及中断分组
US6088772A (en) Method and apparatus for improving system performance when reordering commands
CN100507874C (zh) 用于存储器***性能监视的存储器集线器和方法
US8984085B2 (en) Apparatus and method for controlling distributed memory cluster
RU2597520C2 (ru) Контроллер памяти и способ работы такого контроллера памяти
CN101615106B (zh) 用于虚拟化sas存储适配器的方法和***
CN101809551B (zh) 自动精简配置迁移和清理
CN108009008A (zh) 数据处理方法和***、电子设备
CN102203717A (zh) 固态驱动器优化器
CN107220185A (zh) 基于闪存的数据存储方法、装置以及闪存芯片
CN104685498A (zh) 聚合/分组操作的硬件实现方式:散列表方法
EP0978044A4 (en) METHOD AND APPARATUS FOR REORDERING INSTRUCTIONS AND RESTORING DATA BASED ON AN INITIAL INSTRUCTION ORDER
CN101390060A (zh) 存储集线器和存储排序的方法
CN1329809C (zh) 磁盘阵列的控制器及其工作方法
CN105320608A (zh) 用于控制存储器设备处理访问请求的存储器控制器和方法
CN101493795A (zh) 存储***和存储控制器以及存储***中的缓存实现方法
CN1607508B (zh) 自适应重构缓冲区的***和方法
US20090083741A1 (en) Techniques for Accessing a Resource in a Processor System
US5659707A (en) Transfer labeling mechanism for multiple outstanding read requests on a split transaction bus
EP0032956A1 (en) Data processing system utilizing hierarchical memory

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171107

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171107

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.