CN104137081A - 偏移在先的高等待时间操作的存储器重排序队列 - Google Patents
偏移在先的高等待时间操作的存储器重排序队列 Download PDFInfo
- Publication number
- CN104137081A CN104137081A CN201380009178.6A CN201380009178A CN104137081A CN 104137081 A CN104137081 A CN 104137081A CN 201380009178 A CN201380009178 A CN 201380009178A CN 104137081 A CN104137081 A CN 104137081A
- Authority
- CN
- China
- Prior art keywords
- memory
- high priority
- refresh
- period
- scheduling
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40607—Refresh operations in memory devices with an internal cache or data buffer
-
- 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
-
- 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/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Memory System (AREA)
Abstract
用于控制在动态随机存取存储器中的存储器刷新操作的方法、存储器***和数据处理***。该方法包括确定对于第一存储器列的推迟的存储器刷新操作的计数,并且响应于该计数接近高优先级阈值,发出对于该第一存储器列的早期高优先级刷新通知。该高优先级阈值指示用于在该第一存储器列处进行高优先级存储器刷新操作的预定时间。响应于该早期高优先级刷新通知,动态地修改读取重排序队列行为以向以该第一存储器列为目标的至少一个读取命令给予优先调度,并且根据该优先调度,对该第一存储器列执行所述至少一个读取命令中的一个或多个。优先调度在刷新操作在该第一存储器列处开始之前从该重排序队列中移除了这些命令。
Description
技术领域
本公开大体涉及存储器***并且尤其涉及存储器***中操作的调度。更具体地,本公开涉及控制存储器***中存储器访问操作以及高等待时间(latency)存储器操作的调度。
背景技术
存储器中进行的最高等待时间操作之一是刷新操作。刷新操作在动态随机存取存储器(DRAM)中周期性地进行,这要求周期的刷新操作以便保持一个或多个存储器区(bank)的内容。没有持续的刷新,随着存储器单元电容器泄露它们的电荷,DRAM将丢失写入到DRAM的数据。DRAM制造商和标准委员会已经定义了刷新操作之间的最大间隔或时间段(tREFI)。响应于存储器控制器周期性发出的刷新命令而刷新DRAM。刷新操作花费称为刷新周期时间(tRFC)的时间段来完成。在被刷新的存储器区可以由所调度的读取操作访问之前完成刷新周期。
技术进步已经引起了DRAM芯片容量(或密度)的增加。随着DRAM容量增加,单元包含DRAM的每个列(rank)的刷新周期时间也增加。对于低密度DRAM芯片,刷新周期时间具有对读取性能的可忽略的影响。然而,对于高密度DRAM芯片,可能要求存储器读取在完成所要求的刷新操作之前等待。该长等待时间可能导致对于高密度DRAM芯片的劣化的性能。例如,1千兆字节DRAM可以具有110纳秒的刷新周期时间,而8千兆字节DRAM可以具有350纳秒的刷新周期时间。相反,对存储器位置的读取操作通常可以在25纳秒内完成。随着未来的DRAM芯片以更高密度和增加的容量构建,预见刷新周期时间进一步增加。
发明内容
一般地公开了用于控制在存储器***中的高优先级、高等待时间操作的方法、存储器***和数据处理***。一个具体实施例提供了用于控制在动态随机存取存储器中的存储器刷新操作的方法和存储器***。根据该具体实施例,该方法包括对于第一存储器列确定推迟的存储器刷新操作的计数,并且响应于该计数接近高优先级阈值,发出对于第一存储器列的早期高优先级刷新通知。该高优先级阈值指示用于在第一存储器列处作为高优先级存储器刷新操作来进行存储器刷新操作的预定调度时间。响应于早期高优先级刷新通知,动态地修改读取重排序(reorder)队列行为动态地修改以对目标是第一存储器列的至少一个读取命令给出优先级调度,并且根据优先级调度对该第一存储器列执行该至少一个读取命令的一个或多个。在刷新操作在第一存储器列上开始之前,目标是第一存储器列的读取命令的优先级调度从重排序队列中移除了这些具体命令。
以上发明内容包含了细节的简化、概括和省略,并且不意图作为对所要求的主题的综合性描述,而是意图提供与之关联的一些功能的简要概述。所要求主题的其他***、方法、功能、特征和优势在以下附图和详细书写的描述之上对于本领域技术人员将是或将变得显而易见。
附图标记
示例性实施例的描述将结合附图来阅读,附图中:
图1A-1C提供了其中实践所述实施例中的一个或多个的三个示例数据处理***的框图表示;
图2图示了根据一个或多个实施例的示例存储器***的框图表示;
图3A图示了根据一个实施例的在重排序操作之前和之后的示例读取重排序队列的内容;
图3B图示了根据一个实施例的在响应于早期高优先级刷新通知的重排序操作之前和之后的示例读取重排序队列的内容;
图3C图示了根据一个实施例的在响应于早期高优先级刷新通知的重排序操作之前和之后的示例读取重排序队列的内容;
图4图示了根据一个实施例的在响应于早期完成通知的重排序操作之前和之后的示例读取重排序队列的内容;
图5A提供了图示根据一个实施例的用于控制存储器刷新操作的方法处理的流程图;
图5B提供了图示根据一个实施例的用于控制包括高优先级高等待时间存储器操作的存储器访问操作的调度的方法处理的流程图;并且
图6是图示了根据一个实施例的存储器刷新周期的时序图。
具体实施方式
说明性实施例一般地公开了用于控制存储器***中的高优先级、高等待时间操作的方法、存储器***和数据处理***。存储器***包括存储器控制器,该存储器控制器具有跟踪在用于在存储器***的第一存储器列中进行高优先级、高等待时间操作的所调度时间之前剩余的时间的逻辑。该存储器***配置有由从存储器控制器的命令重排序队列调度的不同存储器访问操作单独可访问的多个列。响应于在用于进行高优先级、高等待时间操作的调度时间之前剩余时间达到预建立的早期通知时间,存储器控制器逻辑偏移(bias)包含目标是多个列的存储器访问操作的重排序队列,以使目标是第一存储器列的任何第一存储器访问操作的调度优先。相对于目标是其他存储器列的重排序队列中的其他存储器访问操作,该逻辑还调度对第一存储器列的第一存储器访问操作用于早期完成。然后该逻辑在调度的时间在第一存储器列处进行高优先级、高等待时间操作。重排序队列的偏移和第一存储器访问操作的调度触发了在第一存储器列处进行高优先级、高等待时间操作之前在重排序队列内剩余的第一存储器访问命令的更快消耗。
一个具体实施例提供了用于控制动态随机存取存储器中的存储器刷新操作的方法和存储器***。对于第一存储器列确定推迟的存储器刷新操作的计数。响应于该计数接近高优先级阈值,对第一存储器列发出早期高优先级刷新通知。响应于该早期高优先级刷新通知,修改读取重排序队列行为以向目标是第一存储器列的至少一个命令给予优先级。在第一存储器列上执行该命令。通过预先通知在存储器控制器内的逻辑何时需要存储器刷新,存储器控制器逻辑可以修改读取重排序队列中的读取命令的执行顺序并且在该操作开始之前发出目标是与该存储器刷新相同的存储器列的读取命令。在对于正被刷新的存储器列的高等待时间存储器刷新操作正在处理并且等待完成的同时,可以发出对其他存储器列的读取命令。命令的该早期处理改进了读取重排序队列、存储器总线和动态随机存取存储器的整体性能和利用。
在对本公开的示例性实施例的以下详细描述中,足够详细地描述了其中可以实践本公开的具体示例性实施例,以使得本领域技术人员能够实践本公开,并且将理解,可以利用其他实施例,并且不背离本公开的精神或范围可以做出逻辑的、架构的、程序的、机械的、电的以及其他的改变。以下详细描述因而不认为是限制性的,并且本公开的范围由所附权利要求及其等同物定义。
要理解具体组件、装置和/或参数名称(比如在此描述的执行实体/逻辑的那些)的使用仅作为示例并且不意味着暗示对本公开的任何限制。本公开可以因此可以没有限制地用被利用来描述在此的组件/装置/参数的不同命名法/术语来实现。给出利用术语的上下文中,这里使用的每一个术语被给予其最广的含义。
现在参考附图,并以图1A、1B和1C开始,描绘了可以在其中有利地实现实施例的示例数据处理***(DPS)100的框图表示。如这里所用,术语“数据处理***”意图包括包含了可以处理具有不同等待时间的存储器访问操作的存储器子***的任意类型的计算装置或机器。在实施例的更具体的应用中,DPS指代具有动态随机存取存储器(DRAM)的存储器子***的装置,该DRAM具有单独可访问的子部分,这里通常称为列,并且对其的访问由存储器控制器内的逻辑控制。
图1A、1B和1C图示了分别标记为DPS100A、100B和100C的示例DPS的三个不同配置。因为这三个DPS具有类似组件,所以用单个描述来描述这三个配置。为了简化,对于DPS的引用通常应当指示为DPS100,而对DPS的三个配置之一的具体引用将由对附图标记的A、B或C扩展来指示。每一个DPS100A、100B、100C分别包括一个或多个处理器模块或处理器芯片102A、102B、102C。每一个处理器芯片102A、102B、102C包括一个或多个中央处理器(CPU),图示了其中的CPU104。在这里的描述通篇,可以可互换地利用术语CPU和处理器作为指代同一组件。每一个处理器芯片102A、102B、102C进一步包括翻译后备缓冲器(TLB)106和高速缓存子***108。高速缓存子***108可以包括一个或多个级的高速缓存,比如L1高速缓存和L2高速缓存,并且较低级高速缓存中的一个或多个可以是共享高速缓存。
在DPS100A的配置中(图1A),处理器芯片102A进一步包括片上存储器控制器110,并且图示了单个***存储器112的一个或多个***存储器组件。***存储器112(或简单地说,存储器112)经由***互连组织(称为***总线114)物理地耦接到处理器芯片102。如由DPS100B和100C的配置所示,DPS100内的存储器控制器110的位置以及存储器控制器110的数量可以基于DPS100的设计而变化。因此,在图1B,存储器控制器110从处理器芯片102B分离或是在处理器芯片102B的片外,并且经由***总线114耦接到***存储器112。同样,在图1C中,对于每一个***存储器112A和112B提供单独的存储器控制器110A、110B,并且每一个存储器控制器110A、110B直接连接到相应的存储器112A、112B并且通过***总线114可通信地耦接到处理器芯片102C。
DPS100C的实施例提供了分布式***存储器配置,通过该配置,两个分离的***存储器(存储器112A、112B)在DPS100内连接,作为分布式存储器的代表性集合。分离的存储器控制器110A、110B然后可以连接到三个不同配置之一中的存储器112A、112B和或处理器芯片。无论存储器控制器110相对于处理器芯片和或存储器112的位置以及不同存储器的数量如何,对***存储器112的访问由存储器控制器110控制。
如图1进一步示出的,DPS100A可以包括其他组件中的物理计算机可读存储介质120(或储存器(storage))、输入/输出装置和对应的控制器(通常表示为I/O122)和网络接口卡(NIC)125。NIC125使得DPS100A能够连接到其他远程装置和网络并与其他远程装置和网络通信。
本领域普通技术人员将理解,图1A、1B和1C中描绘的硬件组件和基本配置可以改变。DPS100内的说明性组件不意图为穷尽的,而是代表性的以突出被用来实现本公开的主要组件。例如,除了或取代所描绘的硬件,可以使用其他装置/组件。所描绘的示例不意图暗示对目前描述的实施例和/或大体公开的架构的或其他的限制。图1A、1B和1C中描绘的示例数据处理***可以例如是IBM eServer pSeries***(纽约阿芒克州的国际商用机器公司的产品,其运行高级交互执行(AIX)操作***(IBM公司的商标))或LINUX操作***(Linus Torvalds的商标)。
图2图示了可以在DPS100内利用的存储器访问子***200的框图。存储器访问子***200通常包括存储器112和控制并管理到存储器112以及来自存储器112的命令和数据的流的存储器控制器110。存储器访问子***200还包括通用读取队列(GPRQ)205和命令分派逻辑207。GPRQ205包含用于保持从DPS100(图1A、1B、1C)的CPU104发出的要在存储器112上执行的读取命令。通用读取队列205可以是先入先出队列。GPRQ205通信地连接到命令分派207,该命令分派207通信地连接到存储器控制器110的读取重排序队列(RRQ)210。当RRQ210具有用于接收用于调度到存储器112的新命令的开放条目时,命令分派207转发来自GPRQ205的读取命令或指令到读取重排序队列210。
***存储器112包括多个存储器列,每列由至少一个可以由存储器控制器100经由存储器访问地址和数据总线218而访问的动态随机存取存储器(DRAM)构成。在说明性实施例中,存储器112被图示为具有4个列,列0 225、列1 226、列2 227以及列3 228,每一列具有在其中可以存储数据250-253的DRAM220-223。当指代具有连接到相同地址和数据总线(通常由从存储器访问总线218延伸的箭头示出)的DRAM集合的***存储器112的子集时,使用术语“存储器列”。尽管对于多个列的访问可能重叠,但是因为全部存储器列共享相同的存储器访问总线218,所以在任意给定时间仅一个列可以利用存储器访问总线218。数据250-253可以通过读和写命令的操作而存储在列225-228内的DRAM220-223内以及从列225-228内的DRAM220-223取回。
存储器控制器110包含对DRAM220-223读和写并通过周期性地发送电流脉冲经过每一个存储器列225-228来刷新DRAM220-223的各个列所需的逻辑。存储器控制器110包括读取重排序队列(RRQ)210、读取重排序队列逻辑(RRQ逻辑)212、命令调度器(或最终仲裁器)215、其他控制逻辑240A-240N以及刷新控制器230。其他控制逻辑240A-240N管理存储器控制器110的整体操作,刷新控制器230管理存储器列225-228的周期性刷新。每一个存储器控制器组件可以经由通信组织彼此通信,该通信组织包括经过具体信号线而传送的具体发消息信号,图示了其中一些。
本公开的功能、方法和处理可以作为存储器控制器110内的固件代码和/或逻辑而提供。固件代码和逻辑可以包括读取重排序队列(RRQ)逻辑212、也可以称为最终仲裁器215的命令调度器215、其他控制逻辑240A-240N、刷新控制器230、以及用于控制相应列225-228内的DRAM的220-223的存储器刷新操作的可编程方法的实现。
读取重排序队列210包含用于保持要在存储器列225-228上执行的重排序的读取命令的多个寄存器条目。说明性实施例提供了8个寄存器条目RRQ(0)-RRQ(7),使得八个不同读取命令相对于彼此被重排序和/或调度。尽管示出了八个槽(slot)或条目RRQ(0)-RRQ(7),但是在不同的实施例中可以使用更多或更少的条目。读取重排序队列210的操作的某些方面可以由读取重排序队列逻辑212控制,该读取重排序队列逻辑212被示出为读取重排序队列210的组件和/或与读取重排序队列210关联的组件。在一个替代配置中,RRQ逻辑212可以是命令调度器215内的功能逻辑,并且终止于或者起源于RRQ逻辑212的信号线在必要时将被到命令调度器215和来自命令调度器215的恰当信号线而替代。读取重排序队列逻辑212至少部分确定在读取重排序队列210中存储的读取命令的次序。在一个实施例中,读取重排序队列210允许将对于不同的存储器列225-228的待决(pending)读取命令的次序改变或重新布置为不同的次序,使得较高优先级的读取命令首先被发送到对应的存储器列225-228。读取重排序队列210从命令分派207接收读取命令并且发出所选择的读取命令到命令调度器215。
命令调度器(或最终仲裁器)215选择要在存储器列225-228上进行的操作的次序和定时。命令调度器215接收所选择的来自读取重排序队列210、写入重排序队列(未示出)、刷新控制器230和其他混杂资源的读取命令或指令,并且命令调度器215基于给定优先级对这些命令或指令排序。命令调度器215可以响应于来自刷新控制器230的高优先级刷新命令233或低优先级刷新命令234的输入而调度对存储器列225-228的存储器刷新操作。
刷新控制器230包括刷新控制器逻辑232和多个计数器,包括计数器0235、计数器1 236、计数器2 237和计数器3 238。刷新控制器逻辑232确定何时要在存储器列225-228的具体一个上执行刷新操作。刷新控制器逻辑232管理诸如存储器刷新操作之类的高等待时间存储器操作。刷新控制器逻辑232确定何时需要进行存储器刷新操作或其他高优先级和/或高等待时间操作,并且调度该存储器刷新操作或其他高等待时间操作以最大化对于诸如读取命令之类的正常等待时间操作的向DRAM220和从DRAM220的数据传输的速率。要理解尽管刷新控制器230在这里被图示并描述为控制并管理在DRAM220上的存储器刷新操作的执行,但是刷新控制器230可以是用来控制和/或管理可以在DRAM220-223上进行并且已知其执行的调度时间的预先知识的任意高等待时间存储器操作的通用管理器。
根据一个实施例,刷新控制器230管理或控制诸如存储器刷新操作之类的高等待时间存储器操作。刷新控制器230确定何时需要在存储器列225-228上执行存储器刷新操作或其他高等待时间操作,并且触发命令调度器215和/或RRQ逻辑212以使得目标是与该存储器刷新操作或其他高等待时间操作相同的列的所有其他读取命令的调度优先,以便在对该特定列进行刷新操作之前最大化向DRAM220-223和从DRAM220-223的数据传输的速率。存储器刷新操作之间的最大间隔或时间段被定义为tREFI。在一个实施例中,存储器刷新操作需要在tREFI间隔内进行以避免存储器列225-228中数据的丢失。刷新控制器逻辑232可以保持跟踪(keep track of)自从对给定存储器列的先前存储器刷新操作已经发生起的经过时间和/或在将开始下一存储器刷新操作之前的时间。对每一个列225-228经由分配给该特定列的对应计数器235-238跟踪该信息。该计数可以向上计数到用于进行高等待时间操作的调度的时间或向下计数到计时器的到期,此时进行高等待时间操作。
在一个实施例中,计数器235-238保持跟踪或计数对每一个相应的存储器列225-228已经被推迟到将来时间段的存储器刷新操作的数量。因此,计数器0 235计数对于存储器列0 225的被推迟的存储器刷新操作的数量,计数器1 236计数对于存储器列1 226的被推迟的存储器刷新操作的数量,计数器2 237计数对于存储器列2 227的被推迟的存储器刷新操作的数量,以及计数器3 238计数对于存储器列3 228的被推迟的存储器刷新操作的数量。被推迟的存储器刷新操作称为存储器刷新积压(backlog)计数。联合电子设备工程委员会(JEDEC)标准DRAM规范允许存储器刷新操作的推迟高达8个推迟的最大限制。可以在高存储器总线利用的时段期间建立存储器刷新积压,因为存储器刷新操作通常被分配了比性能关键的读取命令更低的优先级。要理解尽管所述实施例引入了具体的最大限制,但是该限制是基于存储器访问子***200的设计和/或在存储器访问子***200的设计期间或基于存储器访问子***200的操作条件而可编程的和/或可上下调节的。
刷新控制逻辑232可以监视由计数器235-238跟踪的被推迟的存储器刷新操作的计数,并且通过对N个存储器列之一发出低优先级刷新(N)命令234到命令调度器215来周期性地调度存储器刷新操作。响应于接收到该低优先级刷新(N)命令234,例如当在目标是该存储器列的读取重排序队列内存在大量的正常读取操作时,命令调度器215可以推迟低优先级刷新命令的调度。
刷新控制逻辑232可以检测计数器235-238的任意一个何时达到被推迟的存储器刷新操作的高优先级阈值水平或数量。例如,当被推迟的存储器刷新操作的最大计数是8时,高优先级阈值数量可以是6的计数。高优先级阈值可以是预定的并且是可编程或可改变的。当计数器235-238的任意一个达到高优先级阈值时,刷新控制逻辑232向命令调度器215发出对于N个存储器列中的对应一个的高优先级刷新(N)命令233。响应于接收到该高优先级刷新(N)命令233,命令调度器215将对于给定存储器列的待决存储器刷新的优先级动态地提升为在任意读取或写入命令的优先级之上。命令调度器215调度以进行对于该存储器列的存储器刷新操作。
当发出诸如存储器刷新操作之类的高等待时间操作时,不能发出目标是相同的存储器列的读取重排序队列210中的命令,直到对该存储器列的存储器刷新操作完成。在存储器刷新操作在处理中的同时,目标是正被刷新的相同列的待决读取命令占据读取重排序队列中的空间,并且有效地降低了读取重排序队列210的尺寸。
在一个实施例中,刷新控制逻辑232可以检测计数器235-238的任意一个何时已经超出了预定早期阈值计数,并且刷新控制逻辑232从刷新控制器230向读取重排序队列逻辑212发出对给定存储器列N的早期高优先级刷新(N)通知244。早期高优先级刷新(N)通知244用信号通知读取重排序队列逻辑212对给定存储器列的高优先级存储器刷新命令或请求不久将接近。响应于接收到早期高优先级刷新(N)通知244,读取重排序队列逻辑212改变或偏移其调度算法以向读取重排序队列210中的、目标是与迫近的(impending)存储器刷新操作相同的存储器列N的那些命令给予优先级。早期高优先级刷新(N)通知244和由高优先级(N)命令233触发的实际高优先级刷新操作之间的时间延迟在刷新控制逻辑232内可编程。
本公开的方面基于如下理解:期望在存储器刷新操作发生之前耗尽(drain of)读取重排序队列210的尽可能多的读取命令。具体地,一个或多个实施例指向减少目标是将要被刷新的具体存储器列的RRQ内的存储器访问命令的数量。通常,所述的早期通知功能触发在重排序队列内的目标是相同的第一存储器列的剩余命令在高优先级、高等待时间操作在该第一存储器列处进行之前更快消耗。在高等待时间存储器刷新操作在第一存储器列上在处理中并且等待完成时,可以发出对其他存储器列的读取命令。因此,来自读取重排序队列210的这些具体读取命令的早期移除允许当诸如存储器刷新操作之类的高等待时间操作正在存储器列225-228之一上执行时读取重排序队列210可用于保持目标是其他存储器列的读取命令。这改进了读取重排序队列210、存储器访问总线218和DRAM220-223的整体性能和利用。
当分配给特定存储器列的计数器235-238中包含的计数/值小于高优先级阈值计数时,命令调度器215和读取重排序队列逻辑212可以使得对该存储器列的命令优先于低(或正常)优先级存储器刷新请求。只要在读取重排序队列210中存在指向相同存储器列的读取命令,存储器刷新就被推迟。在一个或多个实施例中,每次推迟刷新时,计数的值递增1(或对于下降计数器是递减)。当在对于特定存储器列的计数器235-238中包含的计数增加到等于高优先级阈值水平时,存储器刷新操作被认为是高优先级存储器刷新操作并且不可以再被推迟。刷新控制器230的刷新控制逻辑232通知命令调度器215执行高优先级存储器刷新操作。在一个实施例中,刷新控制逻辑232赋予(assert)高优先级(N)刷新命令233到命令调度器215,这使得命令调度器215停止(withhold)调度读取重排序队列210中的目标是与该高优先级刷新命令相同的存储器列的任何读取命令,并且命令调度器215还触发和/或开始刷新在该特定存储器列上的进行。
在一个实施例中,早期高优先级刷新(N)通知244可以由读取重排序队列逻辑212使用以防止或阻挡对于作为存储器刷新的目标的相同存储器列的任何新读取命令从命令分派207进入读取重排序队列210。由此防止读取重排序队列210在命令调度器215正在耗尽读取重排序队列210的对相同存储器列的命令以为该列处的存储器刷新操作做准备的同时被用对该相同存储器列的读取命令重新填充。
在一个实施例中,RRQ逻辑212监视读取重排序队列210中的目标是与待决的高优先级存储器刷新操作相同的存储器列的所有读取命令的完成。如果在读取重排序队列210中没有剩下要发出到将被刷新的相同存储器列的命令,则读取重排序队列逻辑212可以发送早期完成通知246到刷新控制器230,该通知指示在该队列中不存在剩余的对该目标列的命令。响应于接收到该早期完成通知246,刷新控制器逻辑232可以指令命令调度器215开始在作为目标的存储器列处的存储器刷新操作,作为在来自读取重排序队列210的命令之前的下一命令。触发了待决高优先级存储器刷新操作的早期处理的该条件可以称为早期完成条件。
继续参考图2,图3A图示了初始的读取重排序队列210和重排序的读取重排序队列310A的示例。初始的读取重排序队列210包含8个条目(寄存器)RRQ0-RRQ7(从右到左),其包含目标是4个可能的存储器列的不同存储器列225-228的命令。作为读取重排序队列的条目的目标的具体列由放置在各个条目内的整数0-3指示。例如,假定寄存器从右到左顺序地是寄存器0(Reg0)到寄存器7(Reg7)),则Reg0包含目标是存储器列(1)的命令,并且Reg7包含目标是存储器列(0)的命令。在本实施例中,读取重排序队列210是先入先出队列(FIFO)。读取重排序队列210中的命令的序列的目标是以(10312100)的次序序列的存储器列。从读取重排序队列210发出的下一读取命令或指令是来自Reg0并且目标是存储器列(1)。读取重排序队列逻辑212可以改变或重排序目标是这些存储器列的命令的序列以允许对数据总线218的更有效利用,如重排序的读取重排序队列310A中所示。重排序的读取重排序队列310A中的命令的序列以(10312010)的新次序序列的存储器列为目标。
图3B图示了初始的读取重排序队列210和重排序的读取重排序队列310B,该重排序的读取重排序队列310B是基于早期高优先级刷新(0)通知244A的接收而重排序的。早期高优先级刷新(0)通知244A指示目标是第一存储器列或列(0)225的待决高优先级刷新操作。如图3A那样,寄存器-1包含目标是第一存储器列(列0)的读取命令,寄存器6和7两者包含目标是第一存储器列或列(0)的命令。其他列是剩余的寄存器中的读取命令的目标。读取重排序队列210中的命令的初始序列的目标是以(10312100)的次序序列的存储器列。从读取重排序队列210发出的下一读取命令或指令是来自寄存器0并且目标是存储器列(1)。响应于接收到来自刷新控制器230的对于存储器列(0)的早期高优先级刷新(0)通知244A,读取重排序队列逻辑212可以改变或重排序目标是这些存储器列的命令的序列,如重排序的读取重排序队列310B中所示。
相对于在命令调度器215处对读取命令的调度,高优先级刷新(0)命令233A然后将在命令分派次序315内示出的位置处而开始。如所示,高优先级刷新(0)操作233将由命令调度器215(图2)进行,遵循对目标是第一存储器列(R0)的所有读取命令的调度,以使得到高优先级刷新(0)命令233A发出时,读取重排序队列的这些读取命令被耗尽。在重排序的读取重排序队列310B中的命令的序列的目标是以(01030121)的新次序序列的存储器列。如命令分派次序315所示,在重排序的读取重排序队列310B中的对存储器列(0)的所有读取命令现在被调度或排序为在对存储器列(0)的存储器刷新操作233开始之前完成。换言之,相对于目标是其他存储器列的其他命令,朝向队列的前方推动对存储器列(0)的读取命令用于优先调度。根据本实施例,尽管对目标是第一列的第一命令给予了高优先级,但是对其他列的命令的分派仍然散布在对这些第一命令的优先级调度之间,以说明如下事实:在先前调度的第一命令正在第一列上完成的同时,可以(基于其初始排序)调度目标是其他列的命令。
图3C图示了相对于基于早期高优先级刷新(0)通知244B的的接收而调度重排序的读取重排序队列310B中命令的、对重排序的读取重排序队列310C内的命令的不同调度。读取重排序队列210的初始寄存器值与图3B中的那些相同。因此,读取重排序队列210中的命令序列的目标是以(10312100)的次序序列的存储器列。响应于从刷新控制器230接收到对于存储器列(0)的早期高优先级刷新(0)通知244B,读取重排序队列逻辑212可以改变或重排序以该存储器列为目标的命令序列,如重排序的读取重排序队列310C中所示。
在重排序的读取重排序队列310C中的命令序列的目标是以(00013121)的新次序序列的存储器列。注意到,在重排序的读取重排序队列310C中的对存储器列(0)的所有读取命令被给予了相对于所有其他读取命令的第一优先级,并且还被调度或重排序为在对存储器列(0)的高优先级存储器刷新操作发生之前完成。换言之,对存储器列(0)的读取命令被推向队列的前方。按照来自命令调度器215的分派次序(315),由高优先级刷新(0)命令233B触发的高优先级刷新(0)操作233被指示为在先前位于队列寄存器RRQ0-RRQ3中的读取命令之后顺序地调度,使得在目标是第一列(0)的所有读取命令的分派和完成之后以及在下一读取命令的分派之后的时间时调度高优先级刷新(0)操作233。
尽管在以上实施例中示出第一命令的分派在高优先级刷新(0)操作的开始时间之前完成,但是本公开的功能方面还可应用于其中调度的读取命令中的仅一些可以在高优先级刷新(0)操作之前发出的实施例。实施例的总体效果是偏移读取重排序队列以提前调度否则在正在特定列上进行刷新操作的同时将保留在读取重排序队列中并且占据有价值的队列空间的任意第一命令。另外,根据一个实施例并且如重排序的读取重排序队列310(t2)所示,其中t2表示在第一读取命令的优先执行之后且恰在高优先级刷新(0)操作由命令调度器215执行之前的稍后时间,重排序的读取重排序队列310(t2)已经从命令分派207接收了若干新命令的输入;然而,没有新的读取命令以即将被刷新的DRAM220的第一列(0)为目标。
图4图示了初始读取重排序队列210和重排序的读取重排序队列410,示出了在读取重排序队列210处接收早期高优先级刷新(1)通知244B之后的早期完成条件的。寄存器3包含目标是存储器列(1)的命令,并且所有其他寄存器包含目标是不同存储器列的命令。在刷新(1)通知244B的接收时在读取重排序队列210中的命令的初始序列的目标是以(20312300)的次序序列的存储器列。要从读取重排序队列210发出的调度的下一读取命令或指令是来自寄存器0并目标是存储器列(2)。响应于从刷新控制器230接收到对于存储器列(1)的早期高优先级刷新(1)通知244B,读取重排序队列逻辑212偏移该队列以向目标是列(1)的读取命令给予优先级,并且在读取重排序队列210中的其他读取命令之前发出该读取命令。因为这是以列(1)为目标的唯一命令,所以在早期通知时段到期之前耗尽了读取重排序队列的所有相关命令。在该情形下,并且根据一个或多个实施例,RRQ逻辑212向刷新控制器230发出早期完成信号246。该早期完成信号246指示不存对目标列通知246的剩余命令。响应于接收到早期完成信号246,刷新控制器230向命令调度器215发出高优先级刷新(1)命令233B,这使得命令调度器215开始存储器112中的列1226的刷新。高优先级刷新(1)操作233被示出为在命令分派次序415内在对列1的读取命令的完成之后立即被分派。高优先级刷新(1)命令233B因此在其他读取命令之前被选择,包括在当前在寄存器RRQ0中的读取命令之前。因为在重排序的读取重排序队列410中不存在目标是存储器列(1)的剩余读取命令,所以存储器刷新操作233可以相对于刷新命令本该被调度开始的正常时间更早地开始。
图5A图示根据说明性实施例的用于控制存储器刷新操作的示例性处理的流程图。在图5的讨论中,也参考图2中描述的要素。方法500可以实现在存储器控制器110中。在一个实施例中,方法500可以通过识别出对存储器列的诸如刷新操作的高等待时间操作在不久的将来将要发生、并且修改读取重排序队列210中的读取命令的次序以耗尽读取重排序队列的目标是相同存储器列的任意命令而增加存储器***的性能。该方法的各个方面可以由存储器控制器110内的不同逻辑组件完成。然而,为了简化,方法500被描述为大体由存储器控制器逻辑或更具体地由刷新控制器逻辑完成。
图5A的方法在块502处开始。刷新控制器逻辑232对每一个存储器列设置高优先级阈值或最大计数值以及对应的早期高优先级刷新通知时间值(块504)。在一个实施例中,高优先级阈值是可编程的并且可以设置在JEDEC标准DRAM存储器刷新推迟的最大数量,对于给定的存储器列这是8个推迟。在一个实施例中,为了避免每个列同时被刷新,可以错开对于列的tREFI定时器。在一个实施例中,早期高优先级刷新通知时间可以是预定的,并且可以定义为小于一个tREFI间隔的任意时间延迟,高优先级阈值是8个刷新推迟。在一个实施例中,较大或较小的时间延迟时段可以用来确定早期高优先级刷新通知时间和/或较大或较小的积压计数值可以用于高优先级阈值。
刷新控制器逻辑232检查积压计数是否等于高优先级阈值-1(块506)。如果积压计数不等于高优先级阈值-1,则重置早期高优先级通知(块508),然后返回到决定块506。如果积压计数等于高优先级阈值-1,则方法500前进到块510。
刷新控制器逻辑232检查以查看时间是否等于对该列的预建立的早期高优先级刷新通知值(N)(块510)。如果时间不等于对该存储器列的早期刷新通知(N)值,则方法500的处理返回到块506,在那里刷新控制器逻辑232继续跟踪积压计数,如果时间等于对存储器列的早期高优先级刷新通知(N)值,则刷新控制器230的刷新控制器逻辑232发出早期高优先级刷新(N)通知244到读取重排序队列逻辑212(块512)。早期高优先级刷新通知提供了对于存储器列(N)的高优先级存储器刷新操作将发生在不久的将来的早期通知和/或警告。
响应于早期高优先级刷新(N)通知244,读取重排序队列逻辑212可以防止到对作为目标的存储器列的读取命令进入读取重排序队列210(块514)。因此,在一个实施例中,早期高优先级刷新(N)通知的接收可以用来防止或阻挡对相同存储器列的任何新读的取命令从任何上游队列进入读取重排序队列210。由此防止读取重排序队列210在命令调度器215正试图在存储器刷新操作之前耗尽读取重排序队列210的对作为目标的存储器列的命令的同时被用对相同存储器列的读取命令重新填充。在某些实施例中,在块514处进行的处理可以从方法500省略。
同样,响应于早期高优先级刷新(N)通知244,读取重排序队列逻辑212偏移其重排序以分配较高优先级给对由待决存储器刷新操作作为目标的存储器列的待决读取命令的调度顺序(块516)。命令调度器215在该存储器列的积压计数达到高优先级阈值之前处理重排序的序列中的下一高优先级读取命令(块518)。特定读取命令的该优先化和早期调度允许读取重排序队列210可用于在存储器刷新操作正在作为目标的存储器列上执行时保持对除了作为目标的存储器列之外的其他存储器列的读取命令。在高等待时间存储器刷新操作在处理中并且等待完成的同时,可以发出对其他存储器列的读取命令。最终,以上处理改进了存储器112内的读取重排序队列210、存储器总线和DRAM220的整体性能和利用。
在决定块520,读取重排序队列逻辑212确定在读取重排序队列210中是否存在目标是由待决高优先级存储器刷新操作作为目标的相同存储器列的任何剩余命令(块520)。如果在读取重排序队列210中不存在目标是由该存储器刷新操作作为目标的相同存储器列的命令,读取重排序队列逻辑212发送早期完成通知246到刷新控制器230,指示不存在对该目标列的剩余命令(块522)。刷新控制器逻辑232通知命令调度器215在比高优先级刷新本该将被调度更早的时间时进行或执行对于作为目标的存储器列的存储器刷新操作。
如果在读取重排序队列210中存在剩余的目标是与待决高优先级存储器刷新操作相同的存储器列的命令(块520),则刷新控制器逻辑232确定推迟的刷新操作的计数是否等于高优先级阈值(块524)。如果推迟的刷新操作的计数等于高优先级阈值,则刷新控制器逻辑232触发命令调度器215以发出刷新命令到具有高优先级刷新操作的列(N)(块526)。执行存储器刷新操作以开始该特定列的刷新。如果推迟的刷新操作的计数不等于高优先级阈值,则方法500返回到步骤518,在那里命令调度器215继续处理重排序的序列中的下一读取命令。在存储器刷新操作(块526)已经完成之后,方法500返回到步骤508,在那里刷新控制器逻辑232重置早期高优先级阈值。
图5B是图示可以与图5A中所示的方法500并行操作的方法550的具体实现的流程图。参考该图,方法550在块552处开始,并且前进到块554,在那里刷新控制器逻辑232通过将计数器235-238设置为诸如0的初始值并且开始tREFI计时器来初始化计数器235-238。刷新控制器逻辑232确定tREFI计时器是否已经到期或者是否已经发出存储器刷新操作命令(块556)。响应于tREFI计时器到期,积压计数由刷新控制器逻辑232递增(块558)。响应于存储器刷新命令被发出,积压计数被刷新控制器逻辑232递减(块560)。响应于tREFI计时器没有到期存储器刷新命令也没有被发出,方法550返回到块556并且重复直到这两个条件之一出现。
在一个实施例中,该方法包括存储器控制器通过以下跟踪在调度的时间之前剩余的时间:设置计数器以跟踪进行先前的高优先级、高等待时间操作和高优先级、高等待时间操作之间的时段;当计数器到期时进行高优先级、高等待时间操作;并且重置计数器以跟踪下一高优先级、高等待时间操作。取决于具体实现,用于进行下一高优先级、高等待时间操作的调度的时间可以基于(a)用于进行高优先级、高等待时间操作的预建立的周期性和(b)对下一高优先级、高等待时间操作的调度的时间的预先通知而为存储器控制器逻辑所知晓。该预先通知可以源自于所连接的处理器或进行高等待时间存储器访问的其他组件。
现在参考图6,其图示了具有早期完成条件的基于定时的计数器(图5)的存储器刷新周期的时间段T0-T3的时间线或时序图。另外参考图2,示出了在包括对存储器的给定列(N)的待决高优先级刷新命令的存储器刷新周期期间刷新控制器230、刷新控制器逻辑232和命令调度器215发出若干命令、以及对存储器的给定列(N)的高优先级刷新命令的执行。
在时间T0,刷新积压计数已经递增到等于HP刷新阈值-1的值。在时间T1,由于被调度在时间T2开始的待决高优先级刷新命令,从刷新控制器230发出对于存储器的列(N)的早期高优先级刷新(N)通知233。如果RRQ210的状态允许由于在RRQ210中没有带来目标是相同列(N)的命令而在T1之前发出刷新,则因为积压计数由于所发出的刷新而递减,不发出早期通知。在时间T1之后,命令调度器215处理来自读取重排序队列210的目标是与该待决高优先级刷新命令相同的列(N)的三个读取命令。当读取重排序队列210不再包含目标是该存储器列(N)的读取命令时,读取重排序队列发送早期完成信号或通知246到刷新控制器230的刷新控制器逻辑232。这发生在比T2更早的时间,表示为时间T2-N,其中N是在T2之前的时间的实际值。命令调度器215在T2-N发出对DRAM器件220的存储器列(N)的刷新命令,并且刷新操作在时间段T2-N和T3-N之间执行。存储器刷新周期在时间T3-N而非时间T3结束。因此,由读取重排序队列逻辑232发出早期完成信号或通知246允许存储器刷新操作比以否则将发生的时间更早地完成。这允许目标是相同存储器列的新读取命令比如果新读取命令必须等待直到时间T3到期更早地被调度。
所描述的实施例中的一个或多个提供了用于控制存储器刷新操作的方法、存储器***和数据处理***。所述实施例通过允许存储器读取操作发生在诸如存储器刷新之类的高等待时间操作的发生之前而改进了存储器***的性能。通过在需要存储器刷新之前通知命令调度器,命令调度器可以修改读取重排序队列中的读取命令的执行顺序并且在存储器刷新操作开始之前发出目标是与该操作相同的存储器列的读取命令。在高等待时间存储器刷新操作处于处理中的同时,可以发出对其他存储器列的读取命令。这改进了读取重排序队列、存储器总线和动态随机存取存储器的整体性能和利用。
在以上流程图的每一个中,一个或多个方法可以具体实现在包含计算机可读代码的计算机可读介质中,使得当在计算装置上执行该计算机可读代码时进行一系列步骤。在一些实现中,不脱离本公开的精神和范围,方法的某些步骤被组合、同时进行或以不同顺序进行或可能被省略。因此,尽管以特定序列描述和图示了方法步骤,但是步骤的具体序列的使用不意图暗示对本公开的任何限制。不脱离本公开的精神和范围,可以关于步骤的序列做出改变。特定序列的使用因而不被理解为限制的意思,并且本公开的范围仅由所附权利要求定义。
所属技术领域的技术人员将理解的,本公开的方面可以体现为***、方法或计算机程序产品。因此,本公开的方面可以采取完全的硬件实施例或组合了软件和硬件方面的在此可以统称为“电路”、“模块”或“***”的实施实施例的形式。此外,本公开的方面可以采取在一个或多个具有计算机可读程序代码的计算机可读介质中体现的计算机程序产品的形式。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。计算机程序指令还可以载入到计算机、其他可编程数据处理设备或其他装置上,以使得在计算机、其他可编程设备或其他装置上进行一系列操作步骤,以产生计算机实现的处理,使得在计算机或其他可编程设备上执行的指令提供用于实现在流程图和/或框图的一个或多个块中指定的功能/动作的处理。
因此,重要的是,尽管在具有安装的(或执行的)软件的全功能的计算机(服务器)的背景下描述本公开的说明性实施例,但是本领域技术人员将理解,本公开的说明性实施例的软件方面能够以各种形式作为程序产品而分发,并且无论用来实际实现分发的介质的特定类型如何,本公开的说明性实施例都同样适用。
尽管已经参考示例性实施例描述了本公开,但是本领域技术人员将明白,可以不脱离本公开的范围而做出各种改变并且对于其要素可以替换其等效物。此外,可以做出很多修改以使特定***、装置或其组件适应本公开的教导而不脱离其实质范围。因而,意图本公开不限于用于实现本公开而公开的特定实施例,而是本公开将包括落入所附权利要求的范围内的所有实施例。此外,第一、第二等术语的使用不表示任何顺序或重要性,而是使用术语第一、第二等来彼此区分要素。
这里使用的术语仅是为了描述特定实施例的目的而不意图限制本发明。如这里使用的,单数形式“一”、“一个”和“该”也意图包括复数形式,除非上下文以其他方式明确指示。将进一步理解,术语“包括”和/或“包含”在本说明书中使用时,指定了所述的特征、整体、步骤、操作、要素和/或组件的存在,但是不排除一个或多个其他特征、整体、步骤、操作、要素组件和/或它们的组的存在或添加。
以下权利要求中的所有部件或步骤加上功能要素的相应结构、材料、动作和等同物意图包括用于结合如具体声明的其他要求保护的要素来进行功能的任何结构、材料或动作。已经出于说明和描述的目的而呈现本发明的描述,但是不意图为穷尽或限制于所公开的形式的发明。不背离本发明的范围和精神,许多修改和变型将对于本领域普通技术人员是显然的。选择并描述实施例以便于最佳地说明本公开的原理和实际应用,并且使得本领域普通技术人员能够对于具有适合于所预期的具体用途的各种修改的各种实施例理解本公开。
Claims (20)
1.一种操作存储器***的方法,包括:
存储器控制器跟踪在用于进行对存储器***的第一存储器列的高优先级、高等待时间操作的所调度时间之前剩余的时间,其中所述存储器***包括多个列,所述多个列能够由从该存储器控制器的命令重排序队列调度的不同存储器访问操作单独地访问;
响应于在用于进行该高优先级、高等待时间操作的所调度时间之前剩余的时间达到预建立的早期通知时间,偏移包含以所述多个列为目标的存储器访问操作的重排序队列,以使以该第一存储器列为目标的任何第一存储器访问操作的调度优先;
调度对该第一存储器列的第一存储器访问操作以相对于该重排序队列中的以其他存储器列为目标的其他存储器访问操作而早完成;以及
在所调度时间在该第一存储器列处进行所述高优先级、高等待时间操作;
其中,对所述重排序队列的偏移以及对所述第一存储器访问操作的调度触发在所述重排序队列内剩余的第一存储器访问命令在所述高优先级、高等待时间操作在所述第一存储器列处进行之前的更快消耗。
2.如权利要求1所述的方法,其中存储器控制器跟踪在所调度时间之前剩余的时间包括:
设置计数器以跟踪在进行先前的高优先级、高等待时间操作和所述高优先级、高等待时间操作之间的时段;
当该计数器到期时,进行所述高优先级、高等待时间操作;以及
重置该计数器以跟踪下一高优先级、高等待时间操作,其中,用于进行下一高优先级、高等待时间操作的所调度时间基于以下之一而已知:(a)用于进行高优先级、高等待时间操作的预建立的周期性和(b)对下一高优先级、高等待时间操作的所调度时间的预先通知。
3.如权利要求1所述的方法,其中,所述高优先级、高等待时间操作是高优先级存储器刷新操作,并且所述存储器访问操作是读取命令,并且该方法包括:
确定对于该第一存储器列的推迟的存储器刷新操作的计数;
响应于该计数接近高优先级阈值,发出对于该第一存储器列的早期高优先级刷新通知,其中所述高优先级阈值指示用于在该第一存储器列处作为高优先级存储器刷新操作而进行存储器刷新操作的所调度时间;
响应于该早期高优先级刷新通知,修改读取重排序队列以向以该第一存储器列为目标的至少一个读取命令给予优先调度;以及
根据该优先调度,对该第一存储器列执行所述至少一个读取命令中的一个或多个。
4.如权利要求3所述的方法,进一步包括响应于该计数等于该高优先级阈值,指示该所调度时间,刷新该第一存储器列。
5.如权利要求4所述的方法,进一步包括在接收到该早期高优先级刷新通知之后并且直到该高优先级刷新操作的进行达到预定的完成点之前,阻止以该第一存储器列为目标的至少一个新的读取命令进入该读取重排序队列。
6.如权利要求3所述的方法,进一步包括响应于该计数不等于该高优先级阈值,推迟对该第一存储器列的存储器刷新操作。
7.如权利要求3所述的方法,进一步包括:
响应于在该计数等于该高优先级阈值之前该读取重排序队列不具有以该第一存储器列为目标的剩余的读取命令,刷新该第一存储器列,其中该第一存储器列在所调度时间之前被刷新;以及
将该计数重置到初始状态并且开始跟踪对于下一高优先级存储器刷新操作的计数。
8.一种存储器***,包括:
至少一个存储器器件,具有多个单独能够访问的列;
存储器控制器,耦接到该至少一个存储器器件并且控制存储器访问操作的调度,其中所述存储器控制器包括进行以下的逻辑:
跟踪在用于进行对该存储器***的第一存储器列的高优先级、高等待时间操作的所调度时间之前剩余的时间,其中所述存储器***包括多个列,所述多个列能够由从该存储器控制器的命令重排序队列调度的不同存储器访问操作单独地访问;
响应于在用于进行该高优先级、高等待时间操作的所调度时间之前剩余的时间达到预建立的早期通知时间,偏移包含以所述多个列为目标的存储器访问操作的重排序队列,以使以该第一存储器列为目标的任何第一存储器访问操作的调度优先;
调度对该第一存储器列的第一存储器访问操作以相对于该重排序队列中的以其他存储器列为目标的其他存储器访问操作而早完成;以及
在所调度时间在该第一存储器列处进行所述高优先级、高等待时间操作;
其中,对所述重排序队列的偏移以及对所述第一存储器访问操作的调度触发在所述重排序队列内剩余的第一存储器访问命令在所述高优先级、高等待时间操作在所述第一存储器列处进行之前的更快消耗。
9.如权利要求8所述的存储器***,其中所述高优先级、高等待时间操作是高优先级存储器刷新操作,并且所述存储器访问操作是读取命令,以及其中该存储器控制器包括进行以下的逻辑:
确定对于该第一存储器列的推迟的存储器刷新操作的计数;
响应于该计数接近高优先级阈值,发出对于该第一存储器列的早期高优先级刷新通知,其中所述高优先级阈值指示用于在该第一存储器列处作为高优先级存储器刷新操作而进行存储器刷新操作的所调度时间;
响应于该早期高优先级刷新通知,修改读取重排序队列以向以该第一存储器列为目标的至少一个读取命令给予优先调度;以及
根据该优先调度,对该第一存储器列执行所述至少一个读取命令中的一个或多个。
10.如权利要求8所述的存储器***,其中所述存储器控制器进一步包括进行以下的逻辑:响应于该计数等于该高优先级阈值,指示该所调度时间,刷新该第一存储器列。
11.如权利要求10所述的存储器***,其中所述存储器控制器进一步包括进行以下的逻辑:在接收到该早期高优先级刷新通知之后并且直到该高优先级刷新操作的进行达到预定的完成点之前,阻止以该第一存储器列为目标的至少一个新的读取命令进入该读取重排序队列。
12.如权利要求8所述的存储器***,其中所述存储器控制器进一步包括进行以下的逻辑:响应于该计数不等于该高优先级阈值,推迟对该第一存储器列的存储器刷新操作。
13.如权利要求8所述的存储器***,其中所述存储器控制器进一步包括进行以下的逻辑:
响应于在该计数等于该高优先级阈值之前该读取重排序队列不具有以该第一存储器列为目标的剩余的读取命令,刷新该第一存储器列,其中该第一存储器列在所调度时间之前被刷新;以及
将该计数重置到初始状态并且开始跟踪对于下一高优先级存储器刷新操作的计数。
14.一种数据处理***,包括:
一个或多个处理器;
与所述处理器通信的存储器***,所述存储器***包括:至少一个存储器器件,具有多个单独能够访问的列;以及存储器控制器,耦接到该至少一个存储器器件并且控制存储器访问操作的调度,其中所述存储器控制器包括进行以下的逻辑:
跟踪在用于进行对该存储器***的第一存储器列的高优先级、高等待时间操作的所调度时间之前剩余的时间,其中所述存储器***包括多个列,所述多个列能够由从该存储器控制器的命令重排序队列调度的不同存储器访问操作单独地访问;
响应于在用于进行该高优先级、高等待时间操作的所调度时间之前剩余的时间达到预建立的早期通知时间,偏移包含以所述多个列为目标的存储器访问操作的重排序队列,以使以该第一存储器列为目标的任何第一存储器访问操作的调度优先;
调度对该第一存储器列的第一存储器访问操作以相对于该重排序队列中的以其他存储器列为目标的其他存储器访问操作而早完成;以及
在所调度时间在该第一存储器列处进行所述高优先级、高等待时间操作;
其中,对所述重排序队列的偏移以及对所述第一存储器访问操作的调度触发在所述重排序队列内剩余的第一存储器访问命令在所述高优先级、高等待时间操作在所述第一存储器列处进行之前的更快消耗。
15.如权利要求14所述的数据处理***,其中跟踪在所调度时间之前剩余的时间的逻辑包括:
至少一个计数器;以及
设置该至少一个计数器中的一个以跟踪在该第一存储器列处进行先前的高优先级、高等待时间操作和所述高优先级、高等待时间操作之间的时段的逻辑;
当该计数器到期时进行所述高优先级、高等待时间操作的逻辑;以及
重置该计数器以跟踪下一高优先级、高等待时间操作的逻辑,其中,用于进行下一高优先级、高等待时间操作的所调度时间基于以下之一而已知:(a)用于进行高优先级、高等待时间操作的预建立的周期性和(b)对下一高优先级、高等待时间操作的所调度时间的预先通知。
16.如权利要求14所述的数据处理***,其中所述高优先级、高等待时间操作是高优先级存储器刷新操作,并且所述存储器访问操作是读取命令,以及其中该存储器控制器包括进行以下的逻辑:
确定对于该第一存储器列的推迟的存储器刷新操作的计数;
响应于该计数接近高优先级阈值,发出对于该第一存储器列的早期高优先级刷新通知,其中所述高优先级阈值指示用于在该第一存储器列处作为高优先级存储器刷新操作而进行存储器刷新操作的所调度时间;
响应于该早期高优先级刷新通知,修改读取重排序队列以向以该第一存储器列为目标的至少一个读取命令给予优先调度;以及
根据该优先调度,对该第一存储器列执行所述至少一个读取命令中的一个或多个。
17.如权利要求16所述的数据处理***,其中所述存储器控制器进一步包括进行以下的逻辑:响应于该计数等于该高优先级阈值,指示该所调度时间,刷新该第一存储器列。
18.如权利要求17所述的存储器***,其中所述存储器控制器进一步包括进行以下的逻辑:在接收到该早期高优先级刷新通知之后并且直到该高优先级刷新操作的进行达到预定的完成点之前,阻止以该第一存储器列为目标的至少一个新的读取命令进入该读取重排序队列。
19.如权利要求16所述的数据处理***,其中所述存储器控制器进一步包括进行以下的逻辑:响应于该计数不等于该高优先级阈值,推迟对该第一存储器列的存储器刷新操作。
20.如权利要求16所述的存储器***,其中所述存储器控制器进一步包括进行以下的逻辑:
响应于在该计数等于该高优先级阈值之前该读取重排序队列不具有以该第一存储器列为目标的剩余的读取命令,刷新该第一存储器列,其中该第一存储器列在所调度时间之前被刷新;以及
将该计数重置到初始状态并且开始跟踪对于下一高优先级存储器刷新操作的计数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/371,906 | 2012-02-13 | ||
US13/371,906 US8909874B2 (en) | 2012-02-13 | 2012-02-13 | Memory reorder queue biasing preceding high latency operations |
PCT/IB2013/050138 WO2013121305A1 (en) | 2012-02-13 | 2013-01-08 | Memory reorder queue biasing preceding high latency operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104137081A true CN104137081A (zh) | 2014-11-05 |
CN104137081B CN104137081B (zh) | 2016-10-26 |
Family
ID=48946620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380009178.6A Active CN104137081B (zh) | 2012-02-13 | 2013-01-08 | 偏移在先的高等待时间操作的存储器重排序队列的方法及*** |
Country Status (4)
Country | Link |
---|---|
US (2) | US8909874B2 (zh) |
EP (1) | EP2815321B1 (zh) |
CN (1) | CN104137081B (zh) |
WO (1) | WO2013121305A1 (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203336A (zh) * | 2016-03-17 | 2017-09-26 | 联发科技股份有限公司 | 管理存储器功耗的方法及其*** |
CN109840224A (zh) * | 2017-11-29 | 2019-06-04 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN111158585A (zh) * | 2019-11-27 | 2020-05-15 | 核芯互联科技(青岛)有限公司 | 一种内存控制器刷新优化方法、装置、设备和存储介质 |
CN111684430A (zh) * | 2017-12-28 | 2020-09-18 | 超威半导体公司 | 支持同一信道上对不统一等待时间的存储器类型的响应 |
CN111857814A (zh) * | 2015-05-18 | 2020-10-30 | 北京忆芯科技有限公司 | 执行微指令的存储控制器 |
CN112088368A (zh) * | 2017-12-21 | 2020-12-15 | 超威半导体公司 | 动态的每存储体和全存储体刷新 |
CN112259141A (zh) * | 2020-10-27 | 2021-01-22 | 海光信息技术股份有限公司 | 动态随机存取存储器的刷新方法及内存控制器、电子装置 |
CN112447242A (zh) * | 2019-08-28 | 2021-03-05 | 美光科技公司 | 对可用电源的改变的响应 |
CN112749006A (zh) * | 2019-10-31 | 2021-05-04 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN112840310A (zh) * | 2018-08-24 | 2021-05-25 | 美光科技公司 | 增加用于命令调度的带宽的存储器子*** |
CN113518970A (zh) * | 2019-02-28 | 2021-10-19 | 美光科技公司 | 存储器存取命令的双阈值受控调度 |
CN113900973A (zh) * | 2020-07-06 | 2022-01-07 | 美光科技公司 | 命令队列中的命令优先级排序 |
WO2022023891A1 (en) * | 2020-07-31 | 2022-02-03 | International Business Machines Corporation | Instruction dispatch routing |
WO2022142595A1 (zh) * | 2020-12-29 | 2022-07-07 | 华为技术有限公司 | 程序检测方法及装置 |
TWI821105B (zh) * | 2022-12-21 | 2023-11-01 | 艾普勒科技股份有限公司 | 通訊資料的排序方法及用於排序通訊資料的通訊設備 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014081984A (ja) * | 2012-10-18 | 2014-05-08 | Toshiba Corp | 情報記録装置および情報記録方法 |
US20150318035A1 (en) * | 2014-05-02 | 2015-11-05 | Qualcomm Incorporated | Priority adjustment of dynamic random access memory (dram) transactions prior to issuing a per-bank refresh for reducing dram unavailability |
KR20160023274A (ko) * | 2014-08-22 | 2016-03-03 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
TWI553483B (zh) * | 2014-10-13 | 2016-10-11 | 瑞昱半導體股份有限公司 | 處理器及存取記憶體的方法 |
US9639280B2 (en) * | 2015-06-18 | 2017-05-02 | Advanced Micro Devices, Inc. | Ordering memory commands in a computer system |
US9595312B1 (en) | 2016-03-31 | 2017-03-14 | Altera Corporation | Adaptive refresh scheduling for memory |
CN106339326A (zh) * | 2016-08-26 | 2017-01-18 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘顺序读性能的方法 |
CN107870866B (zh) * | 2016-09-28 | 2023-09-26 | 厦门鑫忆讯科技有限公司 | Io命令调度方法与nvm接口控制器 |
JP6780897B2 (ja) | 2017-04-14 | 2020-11-04 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | メモリリフレッシュ技術及びコンピュータシステム |
EP3605542B1 (en) * | 2017-04-14 | 2021-07-21 | Huawei Technologies Co., Ltd. | Memory refreshing technique and computer system |
US11023166B2 (en) * | 2018-08-08 | 2021-06-01 | Micron Technology, Inc. | Quality of service control for read operations in memory systems |
US11681465B2 (en) | 2020-06-12 | 2023-06-20 | Advanced Micro Devices, Inc. | Dynamic multi-bank memory command coalescing |
US11960404B2 (en) * | 2020-09-23 | 2024-04-16 | Advanced Micro Devices, Inc. | Method and apparatus for reducing the latency of long latency memory requests |
CN112395011B (zh) * | 2020-11-24 | 2022-11-29 | 海宁奕斯伟集成电路设计有限公司 | 命令响应信息的返回方法、返回控制装置和电子设备 |
US11961547B2 (en) * | 2022-02-09 | 2024-04-16 | Micron Technology, Inc. | Techniques for memory system refresh |
US20240020058A1 (en) * | 2022-07-14 | 2024-01-18 | Xilinx, Inc. | Memory controller with a preprocessor |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4238842A (en) * | 1978-12-26 | 1980-12-09 | Ibm Corporation | LARAM Memory with reordered selection sequence for refresh |
CN1383511A (zh) * | 1998-11-16 | 2002-12-04 | 因芬尼昂技术股份公司 | 通过重排序存储器请求提高总线利用率的存储器控制器 |
US7043599B1 (en) * | 2002-06-20 | 2006-05-09 | Rambus Inc. | Dynamic memory supporting simultaneous refresh and data-access transactions |
CN101256539A (zh) * | 2007-03-01 | 2008-09-03 | 国际商业机器公司 | 用于调度数据请求的服务的存储器控制器、方法和*** |
US20090019341A1 (en) * | 2004-10-29 | 2009-01-15 | Philip George Emma | Dynamic memory architecture employing passive expiration of data |
US20090172681A1 (en) * | 2007-12-28 | 2009-07-02 | Intel Corporation | Systems, methods and apparatuses for clock enable (cke) coordination |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5568620A (en) | 1993-06-30 | 1996-10-22 | Intel Corporation | Method and apparatus for performing bus transactions in a computer system |
US6370073B2 (en) | 1998-10-01 | 2002-04-09 | Monlithic System Technology, Inc. | Single-port multi-bank memory system having read and write buffers and method of operating same |
US6587918B1 (en) * | 1998-11-19 | 2003-07-01 | Micron Technology, Inc. | Method for controlling refresh of a multibank memory device |
US6298413B1 (en) | 1998-11-19 | 2001-10-02 | Micron Technology, Inc. | Apparatus for controlling refresh of a multibank memory device |
US6687247B1 (en) | 1999-10-27 | 2004-02-03 | Cisco Technology, Inc. | Architecture for high speed class of service enabled linecard |
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 |
US20020194444A1 (en) | 2001-06-14 | 2002-12-19 | Telgen Corporation | System and method for managing out-of-order memory access requests via an age-shifted index |
US20040022094A1 (en) | 2002-02-25 | 2004-02-05 | Sivakumar Radhakrishnan | Cache usage for concurrent multiple streams |
CA2428977C (en) | 2002-05-16 | 2010-08-10 | Tundra Semiconductor Corporation | Buffer management in packet switched fabric devices |
US7277982B2 (en) | 2004-07-27 | 2007-10-02 | International Business Machines Corporation | DRAM access command queuing structure |
US20060174431A1 (en) | 2005-02-09 | 2006-08-10 | Dr. Fresh, Inc. | Electric toothbrush |
US7373471B2 (en) | 2005-02-09 | 2008-05-13 | International Business Machines Corporation | Executing background writes to idle DIMMs |
US7739462B2 (en) | 2005-02-23 | 2010-06-15 | International Business Machines Corporation | Policy based data shredding for storage controller |
US7724589B2 (en) | 2006-07-31 | 2010-05-25 | Google Inc. | System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits |
US7724602B2 (en) | 2007-07-10 | 2010-05-25 | International Business Machines Corporation | Memory controller with programmable regression model for power control |
US7739461B2 (en) | 2007-07-10 | 2010-06-15 | International Business Machines Corporation | DRAM power management in a memory controller |
US7870351B2 (en) | 2007-11-15 | 2011-01-11 | Micron Technology, Inc. | System, apparatus, and method for modifying the order of memory accesses |
US8615629B2 (en) | 2010-01-18 | 2013-12-24 | Marvell International Ltd. | Access scheduler |
US9632954B2 (en) * | 2011-11-07 | 2017-04-25 | International Business Machines Corporation | Memory queue handling techniques for reducing impact of high-latency memory operations |
-
2012
- 2012-02-13 US US13/371,906 patent/US8909874B2/en active Active
-
2013
- 2013-01-08 WO PCT/IB2013/050138 patent/WO2013121305A1/en active Application Filing
- 2013-01-08 CN CN201380009178.6A patent/CN104137081B/zh active Active
- 2013-01-08 EP EP13749682.4A patent/EP2815321B1/en active Active
- 2013-02-28 US US13/781,519 patent/US8996824B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4238842A (en) * | 1978-12-26 | 1980-12-09 | Ibm Corporation | LARAM Memory with reordered selection sequence for refresh |
CN1383511A (zh) * | 1998-11-16 | 2002-12-04 | 因芬尼昂技术股份公司 | 通过重排序存储器请求提高总线利用率的存储器控制器 |
US7043599B1 (en) * | 2002-06-20 | 2006-05-09 | Rambus Inc. | Dynamic memory supporting simultaneous refresh and data-access transactions |
US20090019341A1 (en) * | 2004-10-29 | 2009-01-15 | Philip George Emma | Dynamic memory architecture employing passive expiration of data |
CN101256539A (zh) * | 2007-03-01 | 2008-09-03 | 国际商业机器公司 | 用于调度数据请求的服务的存储器控制器、方法和*** |
US20090172681A1 (en) * | 2007-12-28 | 2009-07-02 | Intel Corporation | Systems, methods and apparatuses for clock enable (cke) coordination |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857814A (zh) * | 2015-05-18 | 2020-10-30 | 北京忆芯科技有限公司 | 执行微指令的存储控制器 |
CN107203336A (zh) * | 2016-03-17 | 2017-09-26 | 联发科技股份有限公司 | 管理存储器功耗的方法及其*** |
CN109840224A (zh) * | 2017-11-29 | 2019-06-04 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN109840224B (zh) * | 2017-11-29 | 2023-10-20 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN112088368B (zh) * | 2017-12-21 | 2024-05-14 | 超威半导体公司 | 动态的每存储体和全存储体刷新 |
CN112088368A (zh) * | 2017-12-21 | 2020-12-15 | 超威半导体公司 | 动态的每存储体和全存储体刷新 |
CN111684430A (zh) * | 2017-12-28 | 2020-09-18 | 超威半导体公司 | 支持同一信道上对不统一等待时间的存储器类型的响应 |
US11625197B2 (en) | 2018-08-24 | 2023-04-11 | Micron Technology, Inc. | Memory sub-system for increasing bandwidth for command scheduling |
CN112840310A (zh) * | 2018-08-24 | 2021-05-25 | 美光科技公司 | 增加用于命令调度的带宽的存储器子*** |
CN113518970A (zh) * | 2019-02-28 | 2021-10-19 | 美光科技公司 | 存储器存取命令的双阈值受控调度 |
CN112447242A (zh) * | 2019-08-28 | 2021-03-05 | 美光科技公司 | 对可用电源的改变的响应 |
CN112749006A (zh) * | 2019-10-31 | 2021-05-04 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN112749006B (zh) * | 2019-10-31 | 2024-04-16 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN111158585A (zh) * | 2019-11-27 | 2020-05-15 | 核芯互联科技(青岛)有限公司 | 一种内存控制器刷新优化方法、装置、设备和存储介质 |
CN111158585B (zh) * | 2019-11-27 | 2023-08-01 | 核芯互联科技(青岛)有限公司 | 一种内存控制器刷新优化方法、装置、设备和存储介质 |
CN113900973A (zh) * | 2020-07-06 | 2022-01-07 | 美光科技公司 | 命令队列中的命令优先级排序 |
GB2612550A (en) * | 2020-07-31 | 2023-05-03 | Ibm | Instruction dispatch routing |
US11327766B2 (en) | 2020-07-31 | 2022-05-10 | International Business Machines Corporation | Instruction dispatch routing |
WO2022023891A1 (en) * | 2020-07-31 | 2022-02-03 | International Business Machines Corporation | Instruction dispatch routing |
CN112259141A (zh) * | 2020-10-27 | 2021-01-22 | 海光信息技术股份有限公司 | 动态随机存取存储器的刷新方法及内存控制器、电子装置 |
CN112259141B (zh) * | 2020-10-27 | 2023-11-03 | 海光信息技术股份有限公司 | 动态随机存取存储器的刷新方法及内存控制器、电子装置 |
WO2022142595A1 (zh) * | 2020-12-29 | 2022-07-07 | 华为技术有限公司 | 程序检测方法及装置 |
TWI821105B (zh) * | 2022-12-21 | 2023-11-01 | 艾普勒科技股份有限公司 | 通訊資料的排序方法及用於排序通訊資料的通訊設備 |
Also Published As
Publication number | Publication date |
---|---|
EP2815321A1 (en) | 2014-12-24 |
WO2013121305A1 (en) | 2013-08-22 |
US8909874B2 (en) | 2014-12-09 |
EP2815321A4 (en) | 2015-02-25 |
US20130212330A1 (en) | 2013-08-15 |
US20140082272A1 (en) | 2014-03-20 |
CN104137081B (zh) | 2016-10-26 |
US8996824B2 (en) | 2015-03-31 |
EP2815321B1 (en) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104137081A (zh) | 偏移在先的高等待时间操作的存储器重排序队列 | |
JP6072783B2 (ja) | メモリコントローラおよびかかるメモリコントローラの動作方法 | |
US10817217B2 (en) | Data storage system with improved time-to-ready | |
US9852008B2 (en) | Computer-readable recording medium storing execution information notification program, information processing apparatus, and information processing system | |
CN101872314B (zh) | 用于多处理器的动态调度中断控制器 | |
US9588810B2 (en) | Parallelism-aware memory request scheduling in shared memory controllers | |
TW201715390A (zh) | 經由重映射同步來加速任務子圖 | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
JP2011059777A (ja) | タスクスケジューリング方法及びマルチコアシステム | |
CN103631624A (zh) | 读写请求的处理方法和装置 | |
US20190213146A1 (en) | Minimizing usage of hardware counters in triggered operations for collective communication | |
WO2016202153A1 (zh) | 一种gpu资源的分配方法及*** | |
CN114500401B (zh) | 一种应对突发流量的资源调度方法和*** | |
US20120185672A1 (en) | Local-only synchronizing operations | |
US8990473B2 (en) | Managing requests to open and closed banks in a memory system | |
CN109491785B (zh) | 内存访问调度方法、装置及设备 | |
JP4789269B2 (ja) | ベクトル処理装置及びベクトル処理方法 | |
CN105224258B (zh) | 一种数据缓冲区的复用方法与*** | |
CN101847128A (zh) | 管理tlb的方法和装置 | |
CN116244219A (zh) | 一种基于raid缓存状态的落盘方法及*** | |
WO2017018978A1 (en) | Scheduling jobs in a computing cluster | |
CN115202842A (zh) | 任务调度方法及装置 | |
CN107924310A (zh) | 使用避免转出表(pat)预测计算机处理器中的存储器指令转出 | |
US20140013148A1 (en) | Barrier synchronization method, barrier synchronization apparatus and arithmetic processing unit | |
US7793295B2 (en) | Setting bandwidth limiter and adjusting execution cycle of second device using one of the GBL classes selected based on priority of task from first device |
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 |