CN1977336B - 改善支持多存储器访问延迟的计算机存储器***的性能的***和方法 - Google Patents
改善支持多存储器访问延迟的计算机存储器***的性能的***和方法 Download PDFInfo
- Publication number
- CN1977336B CN1977336B CN2005800218157A CN200580021815A CN1977336B CN 1977336 B CN1977336 B CN 1977336B CN 2005800218157 A CN2005800218157 A CN 2005800218157A CN 200580021815 A CN200580021815 A CN 200580021815A CN 1977336 B CN1977336 B CN 1977336B
- Authority
- CN
- China
- Prior art keywords
- memory
- delay
- group
- memory devices
- time
- 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
Links
- 238000000034 method Methods 0.000 title claims description 28
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 6
- 230000005611 electricity Effects 0.000 claims description 4
- 230000006872 improvement Effects 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 244000188472 Ilex paraguariensis Species 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006993 memory improvement Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种具有多个存储器设备的存储器***,其通过以下降低平均访问延迟:针对物理存储器的不同区域支持不同延迟;提供有助于将频繁访问的存储器地址置于物理存储器的最低延迟区域的地址映射;以及,将频繁访问的存储器地址分配到物理存储器的最低延迟区域。
Description
技术领域
本发明一般涉及计算机存储器***和方法,并且特别涉及支持多存储器访问延迟的存储器***的性能改善。
背景技术
随着计算机***不断发展,存储器***正在成为整个***性能的限制因素。尽管存储器带宽的重要性不断增加,存储器延迟对于***性能仍然起着重要作用。例如,在较高的信号发送速率下,多列存储器设备之间的传播延时可能超过一个时钟周期,可能导致不同列的存储器设备之间不同的访问延迟。使用直接存储器总线式动态随机存储器(Direct Rambus Dynamic Random-Access Memory,RDRAM)的存储器***是这种***的一个示例。例如双倍数据速率(DDR)和DDR-II的其他存储器类型采用允许不同列的DRAM(例如不同的存储器模块)具有不同访问延迟的信号发送和互连拓扑。
使用直接RDRAM的***利用通道一致化(levelization)(下面也称为“全局一致化”)以通过对能够较早响应的设备列添加延时而强制所有DRAM列具有统一的延迟。其结果是使得有效带宽增加,因为消除了不同DRAM列之间存在的数据气泡(bubble)。并且还简化了存储器控制器的设计。尽管通道一致化提供了某些重要优点,但是也具有增加了原本能够以较短延迟进行响应的设备列的DRAM延迟的负面效应。因此,在某些应用中,可能由于全局一致化导致性能损失。
附图说明
图1A为采用全局一致化的存储器***的方框图;
图1B为采用全局一致化的存储器***的存储器映射;
图2A为采用分组一致化的存储器***的方框图;
图2B为采用分组一致化的存储器***的存储器映射;
图3为在分组一致化中使用的存储器设备的方框图;
图4为在分组一致化中使用的存储器控制器的方框图;
图5为采用分组一致化并且包含容量增加的缓冲存储器的存储器***的方框图;
图6为向采用分组一致化的存储器***中使用的存储器设备分配存储器地址的处理的流程图;以及
图7为在采用分组一致化的存储器***中控制延迟的处理的流程图。
具体实施方式
概述
如同在下文将详述的,在一种对存储器***中的存储器设备的访问进行控制的方法中,将该存储器***中的存储器设备分配到包含第一延迟组和第二延迟组的延迟组。所述第一延迟组具有低于第二延迟组的延迟。另外,标识存储器地址空间的第一和第二部分,并且将地址空间的第一部分映射到被分配到第一延迟组的至少一个存储器设备,而将地址空间的第二部分映射到被分配到第二延迟组的至少一个存储器设备。为地址空间的第一部分提供低于地址空间的第二部分的访问延迟,可以导致存储器***性能的改善。在某些实施例中,可以使用超过两个的延迟组和超过两个的存储器地址空间部分。
在某些实施例中,一种存储器设备,包括耦合到命令接口的存储器阵列,所述命令接口适合于耦合到存储器***以接收延时值。所述存储器设备还包括耦合到所述命令接口的延时设备和输出数据路径。所述延时设备配置为将从存储器阵列获取并且在所述输出数据路径上传输的数据延时由所述延时值确定的延时周期。在其他实施例中,可以使用延迟控制信号控制存储器访问延迟。
在某些实施例中,一种对在支持多存储器访问延迟的存储器***中的存储器设备的访问进行控制的方法,包括:解码存储器访问请求以提供存储器设备标识符;标识与所述存储器设备标识符关联的延迟组,其中所述延迟组是所述存储器***中的多个延迟组之一;将标识的延迟组与和先前存储器访问请求关联的延迟组进行比较;以及响应于比较结果生成定时控制信号。在某些实施例中,通过以下执行对在存储器***中的存储器设备的访问进行控制的所述方法:存储器控制器配置为通过比较先前和当前存储器访问请求的次数,并且然后将比较结果与先前和当前存储器访问请求的延迟组信息结合在一起使用,确定是否对发出当前的存储器访问命令进行延时以避免总线冲突。
在某些实施例中,一种***,包括:存储器控制器、耦合到所述存储器控制器的第一存储器模块、以及耦合到所述存储器控制器的第二存储器模块。所述第一存储器模块包括第一缓冲存储器和耦合到所述第一缓冲存储器的第一存储器设备。所述第一缓冲存储器具有第一分配的访问延迟。所述第二存储器模块包括第二缓冲存储器和耦合到所述第二缓冲存储器的第二存储器设备。所述第二缓冲存储器具有第二分配的访问延迟。
第一存储器模块可以设置为与第二存储器模块串联。所述第一分配的访问延迟可以包括读取请求从控制器被驱动到第一缓冲存储器的时间至读取完成数据被从第一缓冲存储器发送到控制器并由控制器采样的时间。所述第二分配的访问延迟可以包括读取请求从控制器被驱动到第二缓冲存储器的时间至读取完成数据从第二缓冲存储器发送到控制器并由控制器采样的时间。
在某些实施例中,可以访问设置在第一和第二存储器模块中的存储器设备。可以为第一存储器模块分配第一访问延迟。第一存储器模块包括第一缓冲存储器和耦合到第一缓冲存储器的第一存储器设备。为第二存储器模块分配第二访问延迟。第二存储器模块包括第二缓冲存储器和耦合到第二缓冲存储器的第二存储器设备。
分组一致化的优点在于大部分的实现是通过软件进行的(例如BIOS)。例如,所述技术在现货供应(off-the-shelf)的存储器控制器(例如SiS R658)中可以实现为BIOS选项,其可以由主板制造商、***集成商、终端用户等等启用。由于大部分实现通过软件进行,终端用户可以从大量设备ID/列映射中进行选择或者生成其自身的定制映射。
全局一致化
图1为采用全局一致化的存储器***100的方框图。存储器***100包括通过多个并行传输线路(下面称为“通道”)串联耦合到一个或者多个存储器设备104-1、...、104-N的存储器控制器102。在某些实施例中,并行传输线路包括数据总线、请求总线、参考电压(VRef)线路、至主时钟(clock to master)(CTM)线路、源主时钟(clock frommaster)(CFM)线路以及串行(SOut)总线。在其他实施例中,可以使用附加或者其他的总线配置或者传输线路。存储器设备104(例如DRAM、RDRAM)可以是分立的存储器芯片或者存储器模块112的一部分(例如SIMM、DIMM、RIMM、C-RIMM)。注意,尽管图1A显示了通常使用RDRAM的存储器***体系结构,在此公开的技术可以应用到具有多访问延迟的任何存储器***体系结构(例如DDR、DDR-II等等)。
在某些实施例中,存储器控制器102包括高速存储器接口106用于与存储器设备104进行通信。每个存储器设备104包括命令接口108,其包括可编程延时设备110,可以配置为提供必要的延时以调节访问延迟。存储器设备104相对于存储器控制器102可以位于不同的电学距离,导致存储器设备104和存储器控制器102之间不同的信号传播时间。存储器设备104还可以支持不同的CAS延迟,导致存储器控制器102的不同访问延迟。在某些实施例中,每个各自的存储器设备104的可编程延时设备110配置为存储各自指定的时间周期的输出数据,从而数据响应于存储器访问操作在独立于存储器设备被访问的时间到达存储器控制器102。因此,存储器***100中的每个存储器设备104以与存储器***100中的最高延迟存储器设备104(即存储器设备104-N)的延迟LG相同的延迟做出响应。
在某些实施例中,延时设备110可以通过公知的可编程延时设备和设计技术实现。然而随着时钟速度增加,设计能够提供全局一致化所需的延时而不会对存储器设备104和/或存储器控制器102的设计产生显著影响(例如尺寸增加)或者不会将***限制为有限数量的存储器设备104的延时设备110变得越来越困难。在某些实施例中,使用移位寄存器和输出多路复用器实现延时设备100以将输出数据信号延时指定数量的时钟周期。指定数量的时钟周期存储在存储器设备的寄存器中,其中延时设备嵌入所述存储器设备。在某些实施例中,可以通过在初始化期间由存储器控制器102执行寄存器写入操作而对寄存器进行加载。在其他实施例中,可以通过编码为由存储器控制器102发送到存储器设备的命令的可变延时而对寄存器进行加载。在初始化期间可以通过计算离存储器控制器102最远的存储器设备的存储器访问延迟而确定时钟周期数量。
在包括使用全局一致化的存储器***的传统的存储器***中,以传统的方式将存储器地址分配给存储器设备104。如图1B所示,传统的存储器分配方案可以将操作***(OS)过程分配到低地址(并且在需要更多存储器时向上推进),并且将应用程序分配到高地址(并且在需要更多存储器时向下推进)。而且,存储器地址以线性方式被映射到存储器设备104(如映射114所示),最低的地址映射到通道一端的存储器设备(例如最靠近存储器控制器102的存储器设备),并且最高地址映射到通道另一端的存储器设备。在图1B所示的示例中,操作***和应用程序仅使用了部分存储器空间,这是多数计算机***正常工作期间的典型情况。如上所述的地址映射方案导致OS过程被存储在最靠近存储器控制器102的存储器设备104中,并且最频繁使用的应用程序被存储在最远离存储器控制器102的存储器设备104中。这种存储器分配方法对于使用经由全局一致化的存储器***的计算机不存在问题,因为访问延迟LG独立于被访问的存储器设备。然而,这种存储器分配方法在不同的存储器设备具有不同的访问延迟的***中可能次优地执行。
分组一致化
图2A为采用基于区域的分组一致化的存储器***200的方框图。存储器***200类似于存储器***100,但是存储器地址被映射到存储器设备104的方式不同。另外,可编程延时设备110在***200中配置为使得每个延迟组中的存储器设备具有共同的访问延迟,但是每个延迟组具有不同的访问延迟,最靠近存储器控制器202的延迟组中的设备比最远离存储器控制器202的延迟组中的设备具有较低的访问延迟。
在存储器***200中,最靠近存储器控制器102的存储器设备104(例如设备104-0、104-1和104-2)被映射或者分配到最频繁访问的存储器位置(例如应用程序和操作***使用的地址位置),并且最远离存储器控制器的存储器设备104(例如104-5至104-N)被映射或者分配到被较不频繁地访问的存储器地址。注意,操作***首先可以通过优先分配来自最低延迟组的存储器利用这种映射的优点,从而改善性能。并且,当存储器满载时,操作***可以监视哪些存储器区域被最频繁地访问,并且然后在较低和较高的延迟组之间来回移动数据以改善性能。还有可能通过以下来动态改变每个延迟组中的设备数量以优化***性能:监视存储器***活动以确定作为例如存储器带宽需求和应用程序存储器足迹(footprints)的各种因素的函数的最优化平均***延迟,以及然后在延迟组之中重新分配设备,如果这种重新分配将改善预测的***性能的话。
图2B显示了用于分组一致化的存储器映射214。设备1和2(104-1、104-2)被映射到应用程序的地址,而设备5至N(104-5至104-N)被映射到被较不频繁地访问的存储器地址。注意,OS过程仍然被映射到通道中的第一设备(设备0),因为OS过程比应用程序被更加频繁地访问。更一般地,OS过程和最频繁使用的应用程序的地址被映射到最低延迟组中的存储器设备G1。延迟组在下文讨论。
除了将存储器设备104分配到存储器地址空间的部分,每个存储器设备104被分配到延迟组G1...GN集合中的一组,各组具有不同的延迟。例如,在图2A中,通道被分割为存储器设备104的两个延迟组,下面称为延迟组G1(近端组)和G2(远端组)。分配到延迟组G1的存储器设备104被一致化为该组中最高延时设备的延迟L1(以时钟周期衡量),而分配到延迟组G2的存储器设备104被一致化为组G2中最高延迟设备的延迟L2。在某些实施例中,延迟L2比G1组的延迟L1高N个时钟周期,或者L2=L1+N,其中基于各种标准选择N,该标准包括但不限于存储器总线时钟周期与控制器时钟周期的比值、时钟周期中数据包的长度、以及在延时设备被设置为零延时的同时组G2中的最大延迟设备和组G1中的最大延迟设备之间的延迟差。在某些实施例中,N等于4,即为至少某些使用RDRAM设备的存储器***中的存储器总线时钟周期中的数据包的长度。
延迟L1和N可以基于各种因素而确定,该因素包括但不限于***配置、存储器设备列数量、设备密度、主板布局、前端总线(FSB)速度、存储器总线速度、存储器控制器时钟速度、匹配前端总线定时所需的延迟以及存储器设备104的传送速率。分配到特定延迟组的存储器设备104的数量可以基于应用程序而设置为所需值。因此,通过使用分组一致化,与具有延迟LG的全局一致化相比在满足下式时存在潜在的性能改善:
L1<LG≤L2 (1)
尽管上述实施例具有两个延迟组,在其他实施例中,可以使用超过两个的延迟组。
图3为在分组一致化中使用的存储器设备104的方框图。存储器设备104通常包括耦合到存储器阵列302的命令接口108。命令接口108包括存储器访问控制304用于处理从存储器控制器202接收到的信号并且提供存储器访问命令(例如读取、写入)给存储器阵列302。存储器设备104包括输入和输出数据路径308和310。输出数据路径310耦合到可编程延时设备110,可编程延时设备110根据存储在寄存器306中的延时值将从存储器阵列302获取的数据延时。延时值(可以通过时钟周期衡量)是通过由存储器控制器202发送的延迟控制信号而确定的,如同参考图4所述。
图4为在分组一致化中使用的存储器控制器202的一个实施例的方框图。在某些实施例中,存储器控制器202包括前端总线接口402(例如用于处理与数据处理器或者CPU的通信)、图形接口404(例如AGP接口)、I/O接口408、仲裁单元406、控制器逻辑410、存储器412、以及高速存储器接口106。在某些实施例中,这些组件中的一个或多个不被包含在所述控制器中(例如在控制器202与CPU集成的实现中可以省略前端总线接口)。控制器逻辑410耦合到存储器412,存储器412包括组表414、最后的组416、初始化代码418、以及分组一致化代码420。注意,图4代表了存储器控制器的一个特定实施例。所公开的分组一致化技术可以用于许多类型的存储器控制器(例如结合Intel处理器、AMD处理器、GPU、网络处理器等等使用的存储器控制器)。在某些实施例中,初始化代码418和分组一致化代码420存储在BIOSEPROM中,所述BIOS EPROM可以为通过总线或者其他互连结构耦合到存储器控制器202的单独的芯片。
在存储器控制器202的初始化期间,通过控制器逻辑410执行初始化代码418。初始化代码负责将存储器设备分配到延迟组,从而填写组表414中的条目。组表414的格式和内容在下文更加详细地描述。在某些实施例中,组表414并不是静态表,而是在每次***引导时动态创建的表,从而说明***中的变化(例如可能添加或者移除了存储器)。在其他实施例中,组表414可以随着存储器访问频率的改变而改变。
同样在初始化期间,分组一致化代码420被执行以确保每个延迟组中的所有存储器设备具有相同的延迟。当***首次加电时,特定延迟组中的第一设备的访问延迟可以比该组中的最后的设备的访问延迟较低。分组一致化代码420负责使得相同组中的所有存储器设备的延迟一致化。为了达到此目的,分组一致化代码420确定添加多少延时(如果存在的话)到组中的每个存储器设备,使得它们匹配于该组中的最高延迟存储器设备的延迟。每组中具有最低延迟的存储器设备可以在分组一致化代码的控制下,例如通过在寄存器306(图3)中存储适当值,使其延时设备110(图3)得以配置。然后对每个延迟组重复该处理。在某些实施例中,分组一致化代码实现为初始化代码418的一部分。
在操作期间,通过接口402、404和408接收存储器请求,并且在队列422中存储。队列422中存储的存储器请求由仲裁单元406使用传统的仲裁技术(例如轮转(round-robin),优先级等等)检查存储器访问争用。仲裁单元406从队列422中存储的请求中选择存储器请求并且将选择的存储器请求转发到控制器逻辑410。然后所选择的存储器请求的N位地址(例如28位、32位或者64位地址)被解码以访问特定存储器设备104中的特定段、行和列。下面的表I中显示了样本地址映射(即N位地址的映射):
表I
样本地址映射
比特N-1 比特0
设备ID | 行 | 存储段 | 列 |
地址的设备ID字段包括表示存储器***200中的特定存储器设备的值,存储段(Bank)的字段包括表示由设备ID标识的存储器设备内的子阵列的值,并且行和列的字段包括标识与设备ID和段值关联的存储器段中的具***置的值。然而,如同下文所述的,设备ID的值并不指定存储器***中相关存储器设备的物理位置。
控制器逻辑410从存储器地址提取设备ID(例如使用比特掩码技术)并且将其用作组表414的索引。组表具有针对每个各自存储器设备的条目,该条目表示各自存储器设备被分配到的延迟组。在某些实施例中,组表414具有如下的表II所示的格式(参考图2):
表II
组数据结构
设备ID | 延迟组 | 物理设备 |
0 | 近端组(G1) | 0 |
1 | 远端组(G2) | N-2 |
2 | 远端组(G2) | N-1 |
: | : | |
N-2 | 近端组(G1) | 1 |
N-1 | 近端组(G1) | 2 |
组表414使用参考图6所述的处理,提供了存储器地址(由其设备ID表示)和存储器设备104所分配到的延迟组G1...GN之间的映射。尽管表II还示出了物理存储器设备的位置,其设备ID和组值存储在组表中,在某些实施例中(例如使用其设备ID寻址存储器设备的实施例),物理存储器位置不被存储在组表414中。在其他实施例中,组表414存储每个存储器设备的物理位置。
一旦通过组表414确定了存储器访问请求的物理存储器设备和延迟组,如果连续的存储器访问请求属于不同组,则可能需要对所述连续的存储器访问请求进行延时,从而避免数据总线冲突。如果连续的请求的延迟组不同,并且特别是如果当前的存储器请求是在比先前存储器访问请求的延迟组(由最后的组数据结构416中存储的数据标识)较低的延迟组中的存储器设备中读取数据的请求,则控制器逻辑410将当前存储器访问命令的传输延时足够的时间量以避免由紧接在前面的和当前存储器访问的命令返回的数据之间的冲突。更一般地,当前和先前存储器访问请求的组延迟可以用于确定先前存储器访问请求的传输和当前存储器访问请求的传输之间的最小时间延时。如果当前和先前存储器访问请求之间的时间小于确定的最小时间延时,则当前存储器访问事务的传输必须被延时,直到先前存储器访问请求的传输至少经过了最小时间延时为止。注意,如果存储器访问请求并非连续的,并且分隔了足够的时间量,则不需要延时后续的存储器访问请求,因为不会发生数据总线冲突。
连续的存储器访问请求之间的延时可以通过各种方式实现,例如在发送存储器访问命令之前由控制器逻辑410执行预定数量的“无操作”命令,或者将存储器接口106中的定时电路编程为将存储器访问命令的发送延时指定的时间量(例如指定数量的控制器时钟周期或者指定数量的存储器总线周期)。
使用上述技术,对映射到存储器设备104-0、104-1以及104-2的存储器地址的存储器请求将具有组延迟L1,该组延迟L1低于由全局一致化提供的延迟LG。类似地,对映射到存储器设备104-5至104-N的存储器地址的存储器请求将具有组延迟L2,该组延迟L2大于或者等于由全局一致化提供的延迟LG。
图5为采用分组一致化并且包含缓冲存储器以扩充容量和/或改善信号完整性的存储器***500的方框图。存储器***500一般包括耦合到串联的缓冲存储器504的存储器控制器502。每个缓冲存储器耦合到一个或者多个存储器设备,共同形成存储器模块。在某些实施例中,可以通过将每个单独存储器模块指定到其自身的延迟组而实现分组一致化。在其他实施例中,模块内最靠近缓冲存储器的存储器设备可以在一个延迟组中,而远离缓冲存储器的相同模块上的存储器设备可以在另一个延迟组中。在此配置中,不同模块中的存储器设备子集可能在相同延迟组中。可替换地,多个存储器模块可以被指定到相同的延迟组。
图6为向采用分组一致化的存储器***200中使用的存储器设备分配存储器地址的处理的流程图。在某些实施例中,分配存储器地址给存储器设备的处理在存储器***200初始化期间进行。所述处理开始于将存储器设备104分配到延迟组G1...GN(步骤600)。可以具有任意数量的延迟组G1...GN,每个组具有不同的延迟。接着,标识存储器***200的存储器地址空间中最频繁被访问的部分(步骤602)。这可以通过使用监视设备(例如存储器访问监视电路)、监视软件或者存储器控制器中的监视逻辑以监视存储器访问请求并且确定存储器地址空间的各个部分的存储器访问频率,在***开发或者实际操作(on-the-fly)期间进行实验而实现。最后的步骤包括将存储器地址空间的标识部分映射604到所分配的延迟组中的存储器设备104。其结果是使得被最频繁地访问的地址(或者更准确的说是被最频繁地访问的地址范围)被映射到最靠近存储器控制器202的存储器设备以降低平均访问延迟。注意,访问频率可能随着时间而改变。因此,分组一致化技术相对于传统全局一致化技术的优点在于基于监视存储器访问频率而动态改变存储器地址映射的能力。换言之,在某些实施例中,步骤602和604在适当的时间被重新执行以将被最频繁地访问的地址范围重新映射到具有最低延迟的延迟组,或者更一般地重新映射到一个延迟组,所述延迟组具有相关的延迟小于至少一个其他延迟组的延迟。
图7为在采用分组一致化的存储器***200中控制延迟的处理的流程图。在某些实施例中,控制采用分组一致化的存储器***200中的延迟的处理在存储器***200工作期间进行。所述处理开始于解码存储器访问请求以提供存储器设备ID(步骤700)。存储器***200标识与所述存储器设备标识符关联的延迟组(步骤702)。在某些实施例中,该步骤通过使用存储器设备ID作为具有如表II所示结构的组表414中的索引而完成。一旦标识了延迟组(步骤702),则与先前存储器访问请求关联的延迟组和先前存储器访问请求的时间进行比较(步骤704)。响应于所述比较(步骤704),生成定时控制信号(步骤706)。更具体的,如果当前存储器请求为读取比紧接在当前请求之前的存储器读取请求较低的延迟组中的存储器设备中的数据,则所述定时控制信号导致控制器逻辑将当前的存储器访问命令的传输延时需要的时间量,从而避免由紧接在先的和当前的存储器访问命令返回的数据之间发生冲突。
对于某些***,可能需要与多个先前事务进行比较以避免数据总线冲突。如果存储器***的最大和最小的组延迟之间的差别大(多个存储器总线周期),则步骤704可能需要将当前存储器请求的延迟组与K个先前存储器访问命令的每一个的延迟组进行比较,其中K表示能够与当前存储器访问请求潜在地发生干扰的最大数量的先前存储器访问请求。此外,当前存储器请求被延时的量,如果存在的话,是潜在干扰的存储器请求之间的组延迟中的差异以及潜在发生干扰的存储器请求的时间的函数。例如,如果存储器***的最大和最小组延迟之间的差异为8个存储器总线周期,并且如果每个读取请求占用存储器总线上的4个存储器总线周期,则控制器逻辑需要将当前延迟组与多个先前的存储器访问请求比较以确保不会发生数据总线冲突。如果当前的存储器访问请求被发现与任何先前存储器访问请求发生干扰,则当前存储器访问请求的存储器访问命令的传输被延时一定的时间量(例如多个控制器时钟周期或者多个存储器总线周期),所述时间量是避免响应于先前和当前存储器访问请求返回的数据的冲突所需的时间量。
以上为了解释目的参考具体实施例描述了本发明。然而,以上的示例性讨论并非试图穷举,或将本发明限制于所公开的具体形式。参考上述内容可以做出各种修改和变形。所述实施例被选择并且描述为最好的解释本发明的原理及其实际应用,从而使得本领域技术人员可以最好地利用本发明以及通过各种修改的各种实施例适合于预期的特定应用。
Claims (25)
1.一种对在存储器***中的存储器设备的访问进行控制的方法,包括:
将所述存储器***中的存储器设备分配到包含第一延迟组和第二延迟组的延迟组,其中所述第一延迟组具有低于所述第二延迟组的延迟;
标识存储器地址空间的至少第一和第二部分;
将所述地址空间的所述第一部分映射到被分配到所述第一延迟组的至少一个存储器设备;以及
将所述地址空间的所述第二部分映射到被分配到所述第二延迟组的至少一个存储器设备;
接收存储器访问请求;
解码所述存储器访问请求以确定存储器设备标识符;
基于所述标识符确定所述存储器设备的延迟组;以及
基于所述存储器设备的延迟组生成定时控制信号。
2.根据权利要求1所述的方法,其中所述映射步骤为所述地址空间的所述第一部分提供低于所述地址空间的所述第二部分的延迟,从而导致***性能的改善。
3.根据权利要求1所述的方法,其中所述标识存储器地址空间的至少第一和第二部分的步骤是基于对所述存储器地址空间的各个部分的访问频率,并且其中所述地址空间的所述第一部分比所述地址空间的所述第二部分更加频繁的被访问。
4.根据权利要求1所述的方法,其中确定所述存储器设备的所述延迟组的所述步骤进一步包括:
将所述延迟组与和先前的存储器请求关联的延迟组进行比较;以及
基于所述比较生成定时控制信号。
5.根据权利要求1所述的方法,其中所述第一和第二延迟组的所述延迟至少部分地由于将被分配给所述第一和第二延迟组的存储器设备与存储器控制器互连的通道上的信号电学传播时间所引起。
6.一种适合于在支持多存储器访问延迟的存储器***中使用的存储器设备,包括:
存储器阵列;
命令接口,耦合到所述存储器阵列,并且适合于耦合到存储器***以接收延时值,其中所述延时值与多个延迟组中的各自的延迟组关联,其中每个延迟组与不同的存储器访问延迟关联;以及
延时设备,耦合到所述命令接口和输出数据路径,所述延时设备配置为将从所述存储器阵列获取的并且在所述输出数据路径上传输的数据延时由所述延时值确定的延时周期。
7.根据权利要求6所述的存储器设备,其中每个延迟组与不同的延时值关联。
8.根据权利要求7所述的存储器设备,其中与至少一个延迟组关联的至少一个延时值至少部分地由于将被分配给所述延迟组的存储器设备与存储器控制器互连的通道上的信号电学传播时间所引起。
9.根据权利要求6所述的存储器设备,其中与所述各自的延迟组关联的所述延时值是基于所述延迟组中的最高访问延迟。
10.根据权利要求6所述的存储器设备,其中所述存储器设备被包含在存储器模块中并且所述存储器模块被分配到所述各自的延迟组。
11.根据权利要求10所述的存储器设备,其中所述存储器模块通过缓冲存储器耦合到存储器控制器。
12.根据权利要求6所述的存储器设备,其中所述延时设备包括移位寄存器和输出多路复用器。
13.一种对在支持多存储器访问延迟的存储器***中的存储器设备的访问进行控制的方法,包括:
解码存储器访问请求以提供存储器设备标识符;
标识与所述存储器设备标识符关联的延迟组,其中所述延迟组是所述存储器***中的多个延迟组之一,并且其中每个延迟组与不同的存储器访问延迟关联;
将所述标识的延迟组与和先前存储器访问请求关联的延迟组进行比较;
响应于所述比较的结果生成定时控制信号;以及
使用所述定时控制信号将与所述存储器访问请求关联的存储器访问命令的传输进行延时。
14.根据权利要求13所述的方法,其中生成定时控制信号进一步包括:
确定与所述所标识的延迟组以及与所述先前存储器访问请求关联的所述延迟组相对应的最小时间差是否大于所述存储器访问请求以及所述先前存储器访问请求之间的时间差;以及
当所述确定结果为肯定时,将所述存储器访问请求的存储器访问命令的发出延时足以避免总线冲突的时间。
15.根据权利要求14所述的方法,其中延时发出存储器访问命令进一步包括:
在发出所述存储器访问命令之前发出至少一个无操作命令。
16.根据权利要求13所述的方法,进一步包括:
在所述存储器***中为第一存储器模块分配第一存储器访问延迟,所述第一存储器模块包括第一缓冲存储器和耦合到所述第一缓冲存储器的第一存储器设备;以及
在所述存储器***中为第二存储器模块分配第二存储器访问延迟,所述第二存储器模块包括第二缓冲存储器和耦合到所述第二缓冲存储器的第二存储器设备,其中所述第一存储器访问延迟低于所述第二存储器访问延迟。
17.一种用于对在支持多存储器访问延迟的存储器***中的存储器设备的访问进行控制的***,包括:
用于解码存储器访问请求以提供存储器设备标识符的装置;
用于标识与所述存储器设备标识符关联的延迟组的装置,其中所述所标识的延迟组是所述***的所述存储器***中的多个延迟组之一,并且其中每个延迟组与不同的存储器访问延迟关联;
用于将所述标识的延迟组与和先前存储器访问请求关联的延迟组进行比较的装置;
用于响应于所述比较的结果生成定时控制信号的装置;以及
用于使用所述定时控制信号将与所述存储器访问请求关联的存储器访问命令的传输进行延时的装置。
18.根据权利要求17所述的***,其中所述延迟组是通过使用所述存储器设备标识符访问查找表而标识的。
19.根据权利要求17所述的***,其中与至少一个延迟组关联的至少一个存储器访问延迟至少部分地由于将被分配给所述延迟组的存储器设备与存储器控制器互连的通道上的信号电学传播时间所引起。
20.根据权利要求17所述的***,其中与所述标识的延迟组关联的所述存储器访问延迟是基于所述所标识的延迟组中的最高访问延迟。
21.一种用于对在支持多存储器访问延迟的存储器***中的存储器设备的访问进行控制的***,包括:
存储器控制器;
第一存储器模块,耦合到所述存储器控制器,其中所述第一存储器模块包括第一缓冲存储器和耦合到所述第一缓冲存储器的第一存储器设备,所述第一缓冲存储器具有第一分配的存储器访问延迟;以及
第二存储器模块,耦合到所述存储器控制器,其中所述第二存储器模块包括第二缓冲存储器和耦合到所述第二缓冲存储器的第二存储器设备,所述第二缓冲存储器具有第二分配的存储器访问延迟,其中所述第一分配的存储器访问延迟低于所述第二分配的存储器访问延迟,
所述存储器控制器包括:
将所述第一存储器模块中的第一存储器设备分配到第一延迟组和将所述第二存储器模块中的第二存储器设备分配到第二延迟组,其中所述第一延迟组具有低于所述第二延迟组的延迟;
将地址空间的第一部分映射到在所述第一存储器模块中的至少一个存储器设备;
将地址空间的第二部分映射到在所述第二存储器模块中的至少一个存储器设备;
接收存储器访问请求;
解码所述存储器访问请求以标识存储器设备,所标识的存储器设备包括第一或第二存储器设备之一;
确定所标识的存储器设备的延迟组;以及
基于所标识的存储器设备的延迟组生成定时控制信号。
22.根据权利要求21所述的***,其中所述第二存储器模块连接到所述第一存储器模块,并且所述存储器控制器、第一存储器模块以及第二存储器模块串联连接。
23.根据权利要求21所述的***,其中所述第一分配的存储器访问延迟包括读取请求从所述控制器被驱动到所述第一缓冲存储器的时间至读取完成数据被从所述第一缓冲存储器发送到所述控制器并由所述控制器采样的时间。
24.根据权利要求23所述的***,其中所述第二分配的存储器访问延迟包括读取请求从所述控制器被驱动到所述第二缓冲存储器的时间至读取完成数据被从所述第二缓冲存储器发送到所述控制器并由所述控制器采样的时间。
25.一种存储器模块,包括:
第一存储器设备,具有第一关联的存储器访问延迟;
第二存储器设备,具有第二关联的存储器访问延迟,其中所述第一关联的存储器访问延迟低于所述第二关联的存储器访问延迟;以及
缓冲存储器,耦合到所述第一和第二存储器设备,所述缓冲存储器被置于所述第一和第二存储器设备和存储器控制器之间,
其中每个所述第一存储器设备和所述第二存储器设备包括:
存储器阵列;
命令接口,耦合到所述存储器阵列,并且适合于耦合到存储器***以接收延时值,其中所述延时值与多个延迟组中的各自的延迟组关联;以及
延时设备,耦合到所述命令接口和输出数据路径,所述延时设备配置为将从所述存储器阵列获取的并且在所述输出数据路径上传输的数据延时由所述延时值确定的延时周期。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/850,803 | 2004-05-21 | ||
US10/850,803 US7222224B2 (en) | 2004-05-21 | 2004-05-21 | System and method for improving performance in computer memory systems supporting multiple memory access latencies |
PCT/US2005/018246 WO2005114669A2 (en) | 2004-05-21 | 2005-05-20 | System and method for improving performance in computer memory systems supporting multiple memory access latencies |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1977336A CN1977336A (zh) | 2007-06-06 |
CN1977336B true CN1977336B (zh) | 2012-02-22 |
Family
ID=35266747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800218157A Expired - Fee Related CN1977336B (zh) | 2004-05-21 | 2005-05-20 | 改善支持多存储器访问延迟的计算机存储器***的性能的***和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7222224B2 (zh) |
EP (1) | EP1754229B1 (zh) |
JP (1) | JP4926963B2 (zh) |
CN (1) | CN1977336B (zh) |
WO (1) | WO2005114669A2 (zh) |
Families Citing this family (90)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6464628B1 (en) * | 1999-08-12 | 2002-10-15 | Obtech Medical Ag | Mechanical anal incontinence |
US6471635B1 (en) * | 2000-02-10 | 2002-10-29 | Obtech Medical Ag | Anal incontinence disease treatment with controlled wireless energy supply |
CN1202784C (zh) | 2000-02-10 | 2005-05-25 | 波滕西亚医疗公司 | 控制小便失禁的治疗 |
ATE391468T1 (de) | 2000-02-10 | 2008-04-15 | Potencia Medical Ag | Mechanische vorrichtung zur impotenzbehandlung |
BR0108142B1 (pt) * | 2000-02-11 | 2009-01-13 | aparelho para tratamento controlado da impotência. | |
US7442165B2 (en) * | 2000-02-14 | 2008-10-28 | Obtech Medical Ag | Penile prosthesis |
BR0108307B1 (pt) | 2000-02-14 | 2009-12-01 | aparelho de prótese para o tratamento de impotência sexual masculina com dispositivo de suprimento de energia sem fio. | |
KR100448717B1 (ko) * | 2002-08-02 | 2004-09-13 | 삼성전자주식회사 | 메모리 시스템 |
US9138644B2 (en) | 2002-12-10 | 2015-09-22 | Sony Computer Entertainment America Llc | System and method for accelerated machine switching |
US20090118019A1 (en) | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
US9314691B2 (en) | 2002-12-10 | 2016-04-19 | Sony Computer Entertainment America Llc | System and method for compressing video frames or portions thereof based on feedback information from a client device |
KR100564635B1 (ko) * | 2004-10-25 | 2006-03-28 | 삼성전자주식회사 | 메모리 모듈 내에서의 인터페이스 타이밍을 제어하는메모리 시스템 및 그 방법 |
US7512762B2 (en) * | 2004-10-29 | 2009-03-31 | International Business Machines Corporation | System, method and storage medium for a memory subsystem with positional read data latency |
US7331010B2 (en) | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
JP2006236105A (ja) * | 2005-02-25 | 2006-09-07 | Canon Inc | アクセス制御装置及びその制御方法 |
KR100588599B1 (ko) * | 2005-05-03 | 2006-06-14 | 삼성전자주식회사 | 메모리 모듈 및 메모리 시스템 |
US20070005922A1 (en) * | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
US7551486B2 (en) * | 2006-05-15 | 2009-06-23 | Apple Inc. | Iterative memory cell charging based on reference cell value |
US7613043B2 (en) * | 2006-05-15 | 2009-11-03 | Apple Inc. | Shifting reference values to account for voltage sag |
US7911834B2 (en) * | 2006-05-15 | 2011-03-22 | Apple Inc. | Analog interface for a flash memory die |
US8000134B2 (en) | 2006-05-15 | 2011-08-16 | Apple Inc. | Off-die charge pump that supplies multiple flash devices |
US7568135B2 (en) * | 2006-05-15 | 2009-07-28 | Apple Inc. | Use of alternative value in cell detection |
US7511646B2 (en) * | 2006-05-15 | 2009-03-31 | Apple Inc. | Use of 8-bit or higher A/D for NAND cell value |
US7852690B2 (en) * | 2006-05-15 | 2010-12-14 | Apple Inc. | Multi-chip package for a flash memory |
US7639542B2 (en) * | 2006-05-15 | 2009-12-29 | Apple Inc. | Maintenance operations for multi-level data storage cells |
US7701797B2 (en) * | 2006-05-15 | 2010-04-20 | Apple Inc. | Two levels of voltage regulation supplied for logic and data programming voltage of a memory device |
US7639531B2 (en) * | 2006-05-15 | 2009-12-29 | Apple Inc. | Dynamic cell bit resolution |
JP5065618B2 (ja) * | 2006-05-16 | 2012-11-07 | 株式会社日立製作所 | メモリモジュール |
US7496711B2 (en) * | 2006-07-13 | 2009-02-24 | International Business Machines Corporation | Multi-level memory architecture with data prioritization |
US7861140B2 (en) * | 2006-10-31 | 2010-12-28 | Globalfoundries Inc. | Memory system including asymmetric high-speed differential memory interconnect |
US20080104352A1 (en) * | 2006-10-31 | 2008-05-01 | Advanced Micro Devices, Inc. | Memory system including a high-speed serial buffer |
US7788414B2 (en) * | 2007-01-16 | 2010-08-31 | Lantiq Deutschland Gmbh | Memory controller and method of controlling a memory |
EP2410436A1 (en) * | 2007-06-12 | 2012-01-25 | Rambus Inc. | In-dram cycle-based levelization |
US7729168B2 (en) | 2007-06-28 | 2010-06-01 | Intel Corporation | Reduced signal level support for memory devices |
JP5349775B2 (ja) * | 2007-09-07 | 2013-11-20 | キヤノン株式会社 | メモリコントローラ及びその制御方法 |
JP5103663B2 (ja) * | 2007-09-27 | 2012-12-19 | ルネサスエレクトロニクス株式会社 | メモリ制御装置 |
JP5188134B2 (ja) * | 2007-10-03 | 2013-04-24 | キヤノン株式会社 | メモリアクセス制御装置及びメモリアクセス制御方法 |
US20090157940A1 (en) * | 2007-12-15 | 2009-06-18 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques For Storing Data In Multiple Different Data Storage Media |
US8825965B2 (en) * | 2008-01-08 | 2014-09-02 | Cisco Technology, Inc. | System and methods for memory expansion |
EP2244760B8 (en) * | 2008-01-28 | 2022-07-20 | Implantica Patent Ltd. | An implantable drainage device |
US9877859B2 (en) | 2008-01-29 | 2018-01-30 | Peter Forsell | Methods and instruments for treating obesity and gastroesophageal reflux disease |
US20090215538A1 (en) * | 2008-02-22 | 2009-08-27 | Samuel Jew | Method for dynamically synchronizing computer network latency |
WO2010042011A1 (en) | 2008-10-10 | 2010-04-15 | Milux Holding Sa | Heart help device, system, and method |
US10219898B2 (en) | 2008-10-10 | 2019-03-05 | Peter Forsell | Artificial valve |
WO2010042014A1 (en) | 2008-10-10 | 2010-04-15 | Milux Holding Sa | Heart help device, system, and method |
WO2010042032A1 (en) | 2008-10-10 | 2010-04-15 | Milux Holding S.A. | Fastening means for implantable medcial control assembly |
US8874215B2 (en) | 2008-10-10 | 2014-10-28 | Peter Forsell | System, an apparatus, and a method for treating a sexual dysfunctional female patient |
ES2962384T3 (es) | 2008-10-10 | 2024-03-18 | Implantica Patent Ltd | Aparato para el tratamiento de la disfunción sexual femenina |
US8135723B2 (en) * | 2008-11-12 | 2012-03-13 | Microsoft Corporation | Leveraging low-latency memory access |
US9949812B2 (en) | 2009-07-17 | 2018-04-24 | Peter Forsell | Vaginal operation method for the treatment of anal incontinence in women |
US10952836B2 (en) | 2009-07-17 | 2021-03-23 | Peter Forsell | Vaginal operation method for the treatment of urinary incontinence in women |
US8375180B2 (en) | 2010-02-05 | 2013-02-12 | International Business Machines Corporation | Storage application performance matching |
US8639879B2 (en) * | 2010-03-25 | 2014-01-28 | International Business Machines Corporation | Sorting movable memory hierarchies in a computer system |
JP5314640B2 (ja) | 2010-06-21 | 2013-10-16 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US10114746B2 (en) * | 2010-10-14 | 2018-10-30 | Micron Technology, Inc. | Nonvolatile storage using low latency and high latency memory |
US8725128B2 (en) | 2010-12-10 | 2014-05-13 | Alcatel Lucent | Pre-fetching of assets to user equipment |
US9081893B2 (en) * | 2011-02-18 | 2015-07-14 | Microsoft Technology Licensing, Llc | Dynamic lazy type system |
US10140208B2 (en) | 2011-03-31 | 2018-11-27 | Oracle International Corporation | NUMA-aware garbage collection |
US11099982B2 (en) * | 2011-03-31 | 2021-08-24 | Oracle International Corporation | NUMA-aware garbage collection |
JP5658082B2 (ja) * | 2011-05-10 | 2015-01-21 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
EP2798499B1 (en) | 2011-12-27 | 2020-11-18 | Intel Corporation | Methods and apparatus to manage workload memory allocation |
US20140372682A1 (en) * | 2012-03-27 | 2014-12-18 | Melvin K. Benedict | Nonvolatile memory bank groups |
JP5942037B2 (ja) | 2012-04-20 | 2016-06-29 | エンモータス・インコーポレイテッドEnmotus Inc. | データ管理メカニズムを備えたストレージシステムおよびその動作方法 |
GB2516435A (en) | 2013-04-05 | 2015-01-28 | Continental Automotive Systems | Embedded memory management scheme for real-time applications |
KR20140123203A (ko) * | 2013-04-11 | 2014-10-22 | 삼성전자주식회사 | 메모리 시스템 |
US9141541B2 (en) | 2013-09-20 | 2015-09-22 | Advanced Micro Devices, Inc. | Nested channel address interleaving |
CN105612493A (zh) * | 2013-09-30 | 2016-05-25 | 慧与发展有限责任合伙企业 | 编程存储器控制器以允许执行主动式存储器操作 |
GB2518884A (en) * | 2013-10-04 | 2015-04-08 | Ibm | Network attached storage system and corresponding method for request handling in a network attached storage system |
US9992090B2 (en) | 2014-01-08 | 2018-06-05 | Bank Of America Corporation | Data metrics analytics |
US9547834B2 (en) * | 2014-01-08 | 2017-01-17 | Bank Of America Corporation | Transaction performance monitoring |
US9798628B2 (en) | 2014-04-25 | 2017-10-24 | Rambus Inc. | Memory mirroring |
WO2015164049A1 (en) * | 2014-04-25 | 2015-10-29 | Rambus, Inc. | Memory mirroring |
KR20150145465A (ko) * | 2014-06-19 | 2015-12-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US9606928B2 (en) | 2014-08-26 | 2017-03-28 | Kabushiki Kaisha Toshiba | Memory system |
KR102076196B1 (ko) * | 2015-04-14 | 2020-02-12 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법 |
JP6464916B2 (ja) * | 2015-05-12 | 2019-02-06 | 富士通株式会社 | メモリ装置及びメモリ装置の制御方法 |
JP6459820B2 (ja) * | 2015-07-23 | 2019-01-30 | 富士通株式会社 | 記憶制御装置、情報処理装置、および制御方法 |
JP6456799B2 (ja) * | 2015-08-31 | 2019-01-23 | 株式会社メガチップス | メモリコントローラ |
KR102532581B1 (ko) * | 2016-03-17 | 2023-05-17 | 에스케이하이닉스 주식회사 | 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법 |
KR102617843B1 (ko) * | 2016-05-13 | 2023-12-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US20180032429A1 (en) * | 2016-07-29 | 2018-02-01 | Intel Corporation | Techniques to allocate regions of a multi-level, multi-technology system memory to appropriate memory access initiators |
DE102016218280B4 (de) * | 2016-09-22 | 2018-07-19 | Infineon Technologies Ag | Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen |
US10095421B2 (en) | 2016-10-21 | 2018-10-09 | Advanced Micro Devices, Inc. | Hybrid memory module bridge network and buffers |
US10331581B2 (en) | 2017-04-10 | 2019-06-25 | Hewlett Packard Enterprise Development Lp | Virtual channel and resource assignment |
US10489225B2 (en) | 2017-08-10 | 2019-11-26 | Bank Of America Corporation | Automatic resource dependency tracking and structure for maintenance of resource fault propagation |
US10990525B2 (en) * | 2018-12-12 | 2021-04-27 | Mipsology SAS | Caching data in artificial neural network computations |
WO2020121030A1 (en) * | 2018-12-12 | 2020-06-18 | Mipsology SAS | Caching data in artificial neural network computations |
US11526632B2 (en) | 2019-09-04 | 2022-12-13 | Rambus Inc. | Securing address information in a memory controller |
US11243804B2 (en) | 2019-11-19 | 2022-02-08 | Micron Technology, Inc. | Time to live for memory access by processors |
US11199995B2 (en) | 2019-11-19 | 2021-12-14 | Micron Technology, Inc. | Time to live for load commands |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1265509A (zh) * | 1999-03-01 | 2000-09-06 | 摩托罗拉公司 | 存储器中的可编程延迟控制 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6807609B1 (en) * | 1989-12-04 | 2004-10-19 | Hewlett-Packard Development Company, L.P. | Interleaving read and write operations on a bus and minimizing buffering on a memory module in a computer system |
JP3523286B2 (ja) * | 1993-03-12 | 2004-04-26 | 株式会社日立製作所 | 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム |
JP3445476B2 (ja) * | 1997-10-02 | 2003-09-08 | 株式会社東芝 | 半導体メモリシステム |
JPH11242629A (ja) * | 1997-10-09 | 1999-09-07 | Matsushita Electric Ind Co Ltd | メモリシステム |
US6587912B2 (en) * | 1998-09-30 | 2003-07-01 | Intel Corporation | Method and apparatus for implementing multiple memory buses on a memory module |
US6646953B1 (en) | 2000-07-06 | 2003-11-11 | Rambus Inc. | Single-clock, strobeless signaling system |
JP2001290697A (ja) * | 2000-04-06 | 2001-10-19 | Hitachi Ltd | 情報処理システム |
US6493250B2 (en) * | 2000-12-28 | 2002-12-10 | Intel Corporation | Multi-tier point-to-point buffered memory interface |
US6877079B2 (en) * | 2001-03-06 | 2005-04-05 | Samsung Electronics Co., Ltd. | Memory system having point-to-point bus configuration |
US6658523B2 (en) * | 2001-03-13 | 2003-12-02 | Micron Technology, Inc. | System latency levelization for read data |
US6934823B2 (en) * | 2001-03-29 | 2005-08-23 | Intel Corporation | Method and apparatus for handling memory read return data from different time domains |
US6675272B2 (en) * | 2001-04-24 | 2004-01-06 | Rambus Inc. | Method and apparatus for coordinating memory operations among diversely-located memory components |
US6785793B2 (en) | 2001-09-27 | 2004-08-31 | Intel Corporation | Method and apparatus for memory access scheduling to reduce memory access latency |
KR100446291B1 (ko) | 2001-11-07 | 2004-09-01 | 삼성전자주식회사 | 카스 레이턴시를 이용하여 락킹 레졸루션 조절이 가능한지연동기 루프 회로 |
JP4159415B2 (ja) * | 2002-08-23 | 2008-10-01 | エルピーダメモリ株式会社 | メモリモジュール及びメモリシステム |
JPWO2004025478A1 (ja) * | 2002-09-11 | 2006-01-12 | 富士通株式会社 | メモリブロック間のレイテンシ差を活用するデータ処理装置および方法 |
US7089412B2 (en) * | 2003-01-17 | 2006-08-08 | Wintec Industries, Inc. | Adaptive memory module |
US7020757B2 (en) * | 2003-03-27 | 2006-03-28 | Hewlett-Packard Development Company, L.P. | Providing an arrangement of memory devices to enable high-speed data access |
US7133991B2 (en) * | 2003-08-20 | 2006-11-07 | Micron Technology, Inc. | Method and system for capturing and bypassing memory transactions in a hub-based memory system |
US7366864B2 (en) * | 2004-03-08 | 2008-04-29 | Micron Technology, Inc. | Memory hub architecture having programmable lane widths |
-
2004
- 2004-05-21 US US10/850,803 patent/US7222224B2/en active Active
-
2005
- 2005-05-20 CN CN2005800218157A patent/CN1977336B/zh not_active Expired - Fee Related
- 2005-05-20 EP EP05753838A patent/EP1754229B1/en not_active Not-in-force
- 2005-05-20 WO PCT/US2005/018246 patent/WO2005114669A2/en active Application Filing
- 2005-05-20 JP JP2007527567A patent/JP4926963B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1265509A (zh) * | 1999-03-01 | 2000-09-06 | 摩托罗拉公司 | 存储器中的可编程延迟控制 |
Also Published As
Publication number | Publication date |
---|---|
JP4926963B2 (ja) | 2012-05-09 |
EP1754229A2 (en) | 2007-02-21 |
WO2005114669A2 (en) | 2005-12-01 |
WO2005114669A3 (en) | 2006-03-16 |
CN1977336A (zh) | 2007-06-06 |
EP1754229B1 (en) | 2012-07-11 |
US20050262323A1 (en) | 2005-11-24 |
JP2008500668A (ja) | 2008-01-10 |
US7222224B2 (en) | 2007-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1977336B (zh) | 改善支持多存储器访问延迟的计算机存储器***的性能的***和方法 | |
US7636833B2 (en) | Method for selecting memory busses according to physical memory organization information associated with virtual address translation tables | |
US7490217B2 (en) | Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables | |
US6260127B1 (en) | Method and apparatus for supporting heterogeneous memory in computer systems | |
US7872892B2 (en) | Identifying and accessing individual memory devices in a memory channel | |
US6088772A (en) | Method and apparatus for improving system performance when reordering commands | |
CN109690508B (zh) | 带虚拟控制器模式的存储器控制器 | |
JP5231642B2 (ja) | メモリモジュール内の独立制御式仮想メモリ装置 | |
US20070005890A1 (en) | Automatic detection of micro-tile enabled memory | |
CN116324744A (zh) | 具有多个命令子队列和对应的仲裁器的存储器控制器 | |
US11379136B2 (en) | Adjustable access energy and access latency memory system and devices | |
CN110633229A (zh) | 用于高带宽存储器通道的dimm | |
US12001283B2 (en) | Energy efficient storage of error-correction-detection information | |
CN108139989B (zh) | 配备有存储器中的处理和窄访问端口的计算机设备 | |
US6412039B1 (en) | Cross-bank, cross-page data accessing and controlling system | |
CN112513824B (zh) | 一种内存交织方法及装置 | |
EP0831402A1 (en) | Dynamically configuring timing to match memory bus loading conditions | |
JPH10260895A (ja) | 半導体記憶装置およびそれを用いた計算機システム | |
US6516396B1 (en) | Means to extend tTR range of RDRAMS via the RDRAM memory controller |
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: 20120222 Termination date: 20130520 |