CN114281723A - 一种存储设备的内存控制器系统和内存调度方法 - Google Patents
一种存储设备的内存控制器系统和内存调度方法 Download PDFInfo
- Publication number
- CN114281723A CN114281723A CN202110007968.7A CN202110007968A CN114281723A CN 114281723 A CN114281723 A CN 114281723A CN 202110007968 A CN202110007968 A CN 202110007968A CN 114281723 A CN114281723 A CN 114281723A
- Authority
- CN
- China
- Prior art keywords
- command
- data
- write
- read
- module
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 239000000872 buffer Substances 0.000 claims abstract description 156
- 238000012163 sequencing technique Methods 0.000 claims abstract description 28
- 230000003139 buffering effect Effects 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 11
- 230000001960 triggered effect Effects 0.000 claims description 17
- 239000003607 modifier Substances 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 claims description 8
- 238000002360 preparation method Methods 0.000 claims 1
- 240000007320 Pinus strobus Species 0.000 description 24
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 238000013481 data capture Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种内存控制器系统(100),包括:调度模块(8);其特征在于,数据缓冲模块(2);全局定序缓冲模块(4);以及链表控制模块(3),用于接收并处理第一命令。该第一命令包括写入命令和读取命令。其中,链表控制模块(3)基于调度依赖关系创建有至少一个链表头,并通过比较第一命令与所述全局定序缓冲模块(4)中缓存的现有命令,来确定第一命令是否为依赖命中。如果第一命令为依赖命中,则链表控制模块(3)用于触发写入合并程序或读取程序。本发明还公开了用于存储设备的内存调度写入命令或读取命令的方法(200a和200b)。本发明还公开了用于执行原子操作的方法(300)和用于执行数据缓存的方法(400)。
Description
技术领域
本发明总体上涉及内存管理技术领域,具体涉及一种存储设备的内存控制器和内存调度方法。
背景技术
现有技术中,在设计计算系统时,提高性能和降低功耗是须重点强调的两个共同目标。由于系统的主内存是程序运行需要的关键资源之一,因此它对系统性能和功耗都起着重要的作用。主内存的性能取决于其访问内容的方式。内存控制器的访问调度程序根据所采用的内存访问调度策略,而决定在每个动态随机存取存储器(DRAM)时钟周期内发出哪个命令。
根据现有的访问策略,以减少DRAM的延迟和功耗的方式来调度DRAM操作。以下现有技术参考文献中列举了其中一些示例:
US20100153636A1公开了一种用于内存访问的控制系统,其包括系统内存访问命令缓冲器、内存访问命令并行处理器、DRAM命令控制器和读取数据缓冲器。该系统内存访问命令缓冲器存储有多个系统内存访问命令。该内存访问命令并行处理器连接到该系统内存访问命令缓冲器,用于提取系统内存访问命令并将其解码为多个DRAM访问命令,将DRAM访问命令存储在DRAM库命令FIFO中,并且根据DRAM库优先级表执行优先级设置。DRAM命令控制器连接到内存访问命令并行处理器和DRAM,用于接收DRAM访问命令并将控制命令发送到DRAM。读取数据缓冲器连接到DRAM命令控制器和系统总线,用于存储读取数据并重新安排读取数据的序列。
US20060090044A1公开了一种内存控制器,其通过将读取/修改/写入(RMW)命令分解为单独且唯一的读取和写入命令,而不需要一起执行且仅需要以适当的顺序执行,从而优化RMW命令的执行。在最优选的实施例中,结合读取队列和写入队列在控制器中使用单独的RMW队列。在其他实施例中,控制器将RMW的读取和写入部分放置在读取和写入队列中,但是其中写入队列具有与写入队列中的RMW写入命令相关联的依赖性指示符,以确保控制器维护适当的执行顺序。在实施例中,内存控制器可以适当的执行顺序将RMW命令转换为读取和写入命令,以保持数据一致性。
前述参考文献旨在提供改进的内存控制器架构。然而,它们仍然有许多局限性和不足。例如,前述参考文献中的内存控制器必须维护基于年龄的矩阵(age-based matrix)或固定的读取/写入命令队列分配,以便通过基于年龄的调度策略来仲裁DRAM带宽。此外,上述参考文献独立地处理读取和写入命令,而没有转换存储器周期的能力。
因此,仍然需要一种能够克服上述问题和缺点的内存控制器系统。
发明内容
如下的本发明内容简述提供了对本发明的某些方面的基本理解。该内容简述不是本发明的广泛概述,其唯一的目的是以简化的形式呈现本发明的一些概念,作为后文中更详细描述的序言。
本发明的一个目的是提供一种内存控制器系统,该内存控制器系统实现了基于年龄和优先级的调度,而不需要维护基于年龄的矩阵。
本发明的另一个目的是提供一种内存控制器系统,其允许在读取和写入周期之间进行无缝转换以支持写入合并和读取捕捉(read snarfing)以提高性能。
本发明的又一个目的是提供一种内存控制器系统,其支持基于控制器的缓存以提高性能。
本发明的又一个目的是提供一种内存控制器系统,其支持基于控制器的原子操作。
本发明的又一个目的是提供一种用于存储设备的内存调度方法。
相应地,可以通过遵循本发明的教导来实现这些目的。本发明涉及一种用于存储设备的内存控制器系统,包括:调度模块;其特征在于,数据缓冲模块,所述数据缓冲模块包括写入数据单元、读取数据单元和捕捉(snarf)数据先进先出缓冲器,用于存储传输到存储设备或从存储设备接收的数据;全局定序缓冲模块,其包括读取命令缓冲器、读取-写入命令缓冲器和读取-合并命令缓冲器,用于缓冲多个现有命令;以及链表控制模块,用于接收和处理包括写入命令或读取命令的第一命令;其中,所述链表控制模块基于调度依赖关系创建有至少一个链表头,并比较所述第一命令与全局定序缓冲模块中缓存的现有命令,来确定所述第一命令是否为依赖命中(dependency-hit);如果所述第一命令是依赖命中,则所述链表控制模块用于触发写入合并程序或读取捕捉程序,将所述第一命令与所述现有命令进行处理以形成下一命令,并将所述下一命令加载到全局定序缓冲模块,在数据缓冲模块中整理与所述下一命令相关联的数据,并由调度模块对所述下一命令进行调度,以便检索和传输来自数据缓冲模块中与所述下一命令相关联的数据。
本发明还涉及一种用于存储设备的内存调度的方法,所述方法包括以下步骤:由链表控制模块接收第一命令;确定所述第一命令是写入命令还是读取命令;比较所述第一命令与所述全局定序缓冲模块中缓存的现有命令,以确定所述第一命令是否为依赖命中;如果所述第一命令是依赖命中,则触发写入合并程序或读取捕捉程序,将所述第一命令与所述现有命令进行处理以形成下一命令,将所述下一命令加载到全局定序缓冲模块中,在数据缓存模块中整理与所述下一命令关联的数据,并由调度模块对所述下一命令进行调度,以便检索和传输来自数据缓冲模块中与所述下一命令相关联的数据。
本发明还涉及一种用于存储设备的内存调度写入命令的方法,所述方法包括以下步骤:由链表控制模块接收第一写入命令;比较所述第一写入命令和所述全局定序缓冲模块中缓存的现有写入命令,以确定所述第一写入命令是否为依赖命中;如果所述第一写入命令为依赖命中,则触发写入合并过程,将所述第一写入命令与所述现有写入命令进行处理以形成下一写入命令;将所述下一写入命令加载到所述全局定序缓冲模块中,并在数据缓冲模块中整理与所述下一写入命令相关联的写入数据;并由调度模块对所述下一写入命令进行调度,以便检索和传输来自所述数据缓冲模块中与所述下一写入命令相关联的写入数据。
本发明还涉及一种用于存储设备的内存调度读取命令的方法,所述方法包括以下步骤:由链表控制模块接收第一读取命令;以及比较所述第一读取命令和所述现有读取命令以及在全局定序缓冲模块中缓存的现有写入命令,以确定所述第一读取命令是否为依赖命中;如果所述第一读取命令是依赖命中,则触发读取捕捉程序,将所述第一读取命令与现有读取命令或现有写入命令进行处理以形成下一读取命令,并将所述下一读取命令加载到全局定序缓冲模块中,在数据缓冲模块中整理与下一读取命令相关联的数据,并由调度模块对所述下一读取命令进行调度,以便检索和传输来自数据缓冲模块中与下一读取命令相关联的读取数据或写入数据。
本发明还涉及一种用于执行存储设备的原子操作的方法,所述方法包括以下步骤:由链表控制模块接收原子访问;从存储设备中获取与原子访问相关联的读取数据并放入数据修改器中;将与所述原子访问相关联的原子数据存储在数据修改器中;根据所述数据修改器中的原子数据修改获取到的读取数据;以及将修改后的数据整理在写入数据缓冲器中。
本发明还涉及一种用于执行存储设备的数据缓存的方法,所述方法包括以下步骤:由链表控制模块接收命令;以及确定所述命令是否为缓存命中;如果所述命令是读取命令,则触发读取捕捉程序,在数据缓冲模块中捕捉与所述读取命令相关联的缓存数据,并由调度模块对所述读取命令进行调度,以便检索和传输来自所述数据缓冲模块中与所述读取命令相关的缓存数据;如果所述命令是写入命令,则触发写入合并过程,在所述数据缓冲模块合并与所述写入命令相关联的缓存数据,并由所述调度模块对所述写入命令进行调度,以便检索和传输来自所述数据缓冲模块中与写入命令相关联的缓存数据。
结合本文下面提供的详细描述并适当参考附图,本发明的前述和其他目的、特征、方面和优点将变得更容易理解。
附图说明
为了可以详细理解本发明的上述特征,以上简要概述的本发明的更具体描述可以通过实施例来引出,其中一些实施例在附图中示出。然而,应当注意,附图仅示出了本发明的典型实施例,因此不应视为对本发明范围的限制,因为本发明可允许其他的等效实施例。
通过参考以下附图,本发明的这些和其他特征、益处和优点将变得显而易见,相同的附图标记指代整个视图中的相同结构,其中:
图1是根据本发明实施例的一种用于存储设备的内存控制器系统的框图;
图2示出了根据本发明实施例的一种用于存储设备的内存调度的方法;
图3示出了根据本发明实施例的一种用于存储设备的内存调度写入命令的方法;
图4示出了根据本发明实施例的一种用于存储设备的内存调度读取命令的方法;
图5示出了根据本发明实施例的一种用于执行存储设备的原子操作的方法;
图6示出了根据本发明实施例的一种用于执行存储设备的数据缓存的方法。
具体实施方式
根据需要,在此公开了本发明的详细实施例。然而,应当理解,所公开的实施例仅仅是本发明的示例,其可以以各种形式实施。因此,本文公开的具体结构和功能细节不应解释为限制性的,而仅作为权利要求的基础。应当理解的是,附图及其详细描述并非旨在将本发明限制为所公开的特定形式,相反地,本发明将覆盖落入权利要求书所定义的本发明范围内的所有修改、等同形式和替代形式。在本申请中通篇所使用的术语中,词语“可以(may)”表示允许的意义(即意味着有可能),而不是强制性的意义(即必须)。类似地,词语“包括(include,including,include)”表示包括但不限于。此外,除非另有说明,否则词语“一(a,an)”表示“至少一个”,词语“复数(plurality)”表示一个或多个。在使用缩写词或技术术语的情况下,它们表示在该技术领域公认的通用含义。
在下文中,通过各种实施方式参考附图来描述本发明,其中在附图中使用的附图标记在整个说明书中对应于相似的元件。然而,本发明可以许多不同的形式实施,并且不应被解释为限于本文阐述的实施例。相反地,提供的实施例使得本公开变得充分且完整,并将向本领域技术人员充分传达本发明的范围。在以下的详细描述中,为所描述的实施方式的各个方面提供了数值和范围。这些数值和范围仅应被视为示例,而无意于限制权利要求的范围。另外,许多材料被认定为适合于实施的各个方面。这些材料将被视为示例性的,并且不意图限制本发明的范围。
现将参照图1至图6所示的附图更详细地描述本发明。
参照图1,本发明涉及一种用于存储设备的内存控制器系统(100),包括:调度模块(8);其特征在于,数据缓冲模块(2),其包括写入数据单元(22)、读取数据单元(24)和捕捉数据先进先出缓冲器(26),用于存储传输到存储器或从存储器接收的数据;全局定序缓冲模块(4),其包括读取命令缓冲器(5)、读取-写入命令缓冲器(6)和读取-合并命令缓冲器(7),用于缓冲多个现有命令;以及链表控制模块(3),用于接收并处理包括写入命令或读取命令的第一命令;其中,该链表控制模块(3)基于调度依赖关系创建有至少一个链表头,并比较第一命令与全局定序缓冲模块(4)中缓存的现有命令,来确定第一命令是否为依赖命中;如果第一命令是依赖命中,则链表控制模块(3)用于触发写入合并过程或读取捕捉过程,将第一命令与现有命令进行处理以形成下一命令,并将下一命令加载到全局定序缓冲模块(4),在数据缓冲模块(2)中整理与下一命令相关联的数据,并由调度模块(8)调度该下一命令,以便检索和传输来自数据缓存模块(2)中与下一命令相关联的数据。
根据本发明的实施例,内存控制器系统(100)被构造为充当处理器与存储设备之间的联络者。该存储设备可以是动态随机存取存储器(DRAM),或者可以使用其他存储技术来实现。此外,DRAM标准包括但不限于高带宽存储器(HBM)标准、双数据速率(DDR)标准和低功率双数据速率(LPDDR)标准。同样,容易理解的是,DRAM标准包括但不限于上述标准的不同代,例如HBM3和DDR5。
根据本发明的实施例,通信接口(1)是高级可扩展接口(AXI)。
根据本发明的实施例,内存接口(11)是DDR PHY接口(DFI),其用于经由内存PHY向存储设备或DRAM设备和从存储设备或DRAM设备传输命令和数据。
根据本发明的实施例,链表控制模块(3)基于依赖关系(例如,相同的库访问)来构建链表,以允许将预调度的年龄信息存储在链表中。
根据本发明的实施例,数据缓冲模块(2)是指在数据从一个地方移动到另一地方时临时存储数据的存储器。例如,数据缓冲模块(2)包括静态随机存取存储器(SRAM)。SRAM可以是简单双端口SRAM,也可以是真正双端口SRAM。
根据本发明的实施例,链表控制模块(3)包括缓存匹配单元(32)。缓存匹配单元(32)可以是缓存查找表或合并标识表,其充当用于存储每个命令的标识的寄存器。该寄存器允许在新命令的标识和现有命令的标识之间进行比较。在查找命中时,链表控制模块(3)可以标记新命令以合并或捕捉它命中的缓存条目。该命令是指读取命令或写入命令。缓存匹配单元(32)包括链表创建逻辑,以基于寻址依赖性和/或DRAM资源依赖性来构建链表。
根据本发明的实施例,链表控制模块(3)创建输入命令或新命令的依赖性,以允许维持命令或内存访问的相对的年龄、优先级和/或访问顺序。例如,具有调度依赖性的读取/写入命令被链接到多层链表中,该链表包括链表头,该链表头是对在全局定序缓冲模块(4)中止用之前的相同内存/存储库的最早内存访问或命令。在链表控制模块(3)中可存在多个链表头,例如,其中之一用于每个DRAM库,该链表头可以基于不同链表头的相对年龄而链接在一起。这有助于保留相对年龄信息以进行调度,其中链表头始终是最早的内存访问或命令,其不依赖于对相同内存/存储资源(例如,相同的DRAM库)具有相同依赖关系的任何较新的内存访问或命令。一旦在全局定序缓冲模块(4)中止用,则可以将读取/写入命令视为被全局定序,随后对DRAM的读取/写入命令的调度可以以任何顺序完成,从而允许内存控制器系统(100)以最佳利用DRAM带宽的方式安排读取/写入命令,同时遵守DRAM存储器的时序限制。
根据本发明的实施例,当新命令和现有命令去往相同地址时,会发生依赖命中。
根据本发明的实施例,读取-写入命令缓冲器(6)可以独立地处理读取或写入周期。例如,读取-写入命令缓冲器(6)可以在高内存读取流量期间处理读取命令。同样,读取-写入命令缓冲器(6)可被动态地重新分配,以在低内存读取流量期间处理写入命令。
根据本发明的实施例,数据缓冲模块(2)还包括写入数据和选通(strobe)先进先出缓冲器(27)和写入选通缓冲器(28),以使用选通控制写入数据和缓冲器字节。
根据本发明的实施例,写入数据单元(22)包括写入数据控制器(22a)和写入数据缓冲器(22b),用于识别写入命令并从写入数据缓冲器(22b)检索写入数据。
根据本发明的实施例,读取数据单元(24)包括读取数据控制器(24a)和读取数据缓冲器(24b),用于识别读取命令并从读取数据缓冲器(24b)检索读取数据。
根据本发明的实施例,调度模块(8)包括并行操作的仲裁器(9)和读取-合并仲裁器(10),这是因为来自读取-合并仲裁器(10)的读取合并命令不进入存储设备或DRAM设备,仅在内存控制器系统(100)中循环。
根据本发明的实施例,内存控制器系统(100)是可扩展的以支持缓存,从而通过使用可配置的缓存和分配方案维护数据缓存来提高性能。例如,通过将读取数据缓冲器(24b)和写入数据缓冲器(22b)转换为同时支持读取和写入数据的单个组相联缓存,使得内存控制器(100)可扩展。通过单个组相联缓存,可以在链表控制模块(3)中维护缓存标记阵列,并且可以使用链表控制模块(3)中的依赖性检查处理程序查找标记阵列,并管理缓存收回。由于缓存存储较大且具有更多方式,因此增加了缓存命中的可能性,并导致较高的写入合并和读取捕捉概率。相应地,可以减少对存储设备的访问。
根据本发明的实施例,数据缓冲模块(2)还包括数据修改器和数据仲裁器,以支持内存控制器系统(100)的原子操作。
参考图2,本发明还涉及一种用于存储设备的内存调度方法(200),该方法包括以下步骤:由链表控制模块(3)接收第一命令;确定该第一命令为写入命令或读取命令;比较该第一命令与全局定序缓冲模块(4)中缓存的现有命令,判断该第一命令是否为依赖命中。如果第一命令是依赖命中,则触发写入合并程序或读取捕捉程序,将第一命令与现有命令进行处理以形成下一命令,将该下一命令加载到全局定序缓冲模块(4)中,在数据缓冲模块(2)中整理与下一命令相关联的数据,并由调度模块(8)对下一命令进行调度,以便检索和传输来自数据缓冲模块(2)中与下一命令相关联的数据。
根据本发明的实施例,如果第一命令是写入命令,则触发写入合并过程。
根据本发明的实施例,如果第一命令是读取命令,则触发读取合并过程。
参照图3,本发明还涉及一种用于存储设备的内存调度写入命令的方法(200a),该方法(200a)包括以下步骤:由链表控制模块(3)接收第一写入命令;比较该第一写入命令与全局定序缓冲模块(4)中缓存的现有写入命令,以确定该第一写入命令是否为依赖命中。如果该第一写入命令为依赖命中,则触发写入合并过程,将该第一写入命令与现有写入命令进行处理,形成下一写入命令,并将该下一写入命令加载到全局定序缓冲模块(4)中。在数据缓冲模块(2)中整理与下一写入命令相关联的写入数据,并由调度模块(8)对该下一写入命令进行调度,以便检索和传输来自数据缓冲模块(2)中与该下一写入命令相关联的写入数据。
根据本发明的实施例,该第一写入命令与写入数据相关联,并且该写入数据被数据缓冲模块(2)接收。
根据本发明的实施例,该写入数据由数据缓冲模块(2)的写入数据和选通先进先出缓冲器(27)接收。
根据本发明的实施例,将第一命令与现有写入命令进行处理的步骤包括:丢弃第一写入命令;将该第一写入命令合并到现有写入命令中以形成下一写入命令;以及确定现有写入命令的标识。
根据本发明的实施例,在数据缓冲模块(2)中整理与下一写入命令相关联的写入数据的步骤包括以下步骤:从链表控制模块(3)接收下一写入命令的信号和接收现有写入命令的标识;将写入数据从写入数据和选通先进先出缓冲器(27)加载到数据缓冲模块(2)中的写入数据缓冲器(22b)中;并将新选通与现有选通合并到写入选通缓冲器(28)中。
根据本发明的实施例,检索和传输与下一写入命令相关联的写入数据的步骤包括以下步骤:使用现有写入命令的标识来检索与下一写入命令相关联的写入数据;在链表控制模块(3)验证现有写入命令的标识;以及传输来自数据缓冲模块(2)中与下一写入命令相关联的写入数据。
参照图4,本发明还涉及一种用于存储设备的内存调度读取命令的方法(200b),该方法(200b)包括以下步骤:由链表控制模块(3)接收第一读取命令;将第一读取命令与现有读取命令和全局定序缓冲模块(4)中缓存的现有写入命令进行比较,以确定第一读取命令是否为依赖命中。如果第一读取命令是依赖命中,则触发读取捕捉程序,将第一读取命令与现有读取命令或现有写入命令进行处理以形成下一读取命令,并将下一读取命令加载到全局定序缓冲模块中(4)。在数据缓冲模块(2)中整理与下一读取命令相关联的已捕捉数据,并由调度模块(8)对下一读取命令进行调度,以便检索和传输来自数据缓冲模块(2)中与下一读取命令相关联的已捕捉数据,其中该已捕捉数据包括读取数据或写入数据。
根据本发明的实施例,将第一读取命令与现有读取命令或现有写入命令处理的步骤包括:确定第一读取命令是捕捉写入数据还是捕捉读取数据;将第一读取命令作为下一读取命令;以及确定现有读取命令或现有写入命令的标识。
根据本发明的实施例,如果第一读取命令是捕捉写入数据,则在数据缓冲模块(2)中整理与下一读取命令相关联的已捕捉数据的步骤包括以下步骤:从链表控制模块(3)接收下一读取命令的信号和接收现有写入命令的标识;将已捕捉写入数据从写入数据缓冲器(22b)中加载到数据缓冲模块(2)中的捕捉数据先进先出缓冲器(26);将已捕捉写入数据从捕捉数据先进先出缓冲器(26)加载到数据缓冲模块(2)中的读取数据缓冲器(24b)。
根据本发明的实施例,如果第一读取命令是捕捉读取数据,则在数据缓冲模块(2)中整理与下一读取命令相关联的已捕捉数据的步骤包括以下步骤:从链表控制模块(3)接收下一读取命令的信号和现有读取命令的标识;将已捕捉读取数据整理在数据缓冲模块(2)的读取数据缓冲器(24b)中。
参照图5,本发明还涉及一种用于执行存储设备的原子操作方法(300),该方法包括以下步骤:由链表控制模块(3)接收原子访问;从存储设备中获取与原子访问相关联的读取数据并放入数据修改器中;将与原子访问相关联的原子数据存储在数据修改器中;根据数据修改器中的原子数据修改获取到的读取数据;将修改后的数据整理在写入数据缓冲器中(22b)。
参考图6,本发明还涉及一种用于执行存储设备的数据缓存的方法(400),该方法包括以下步骤:由链表控制模块(3)接收命令;确定该命令是否为缓存命中。如果该命令是读取命令,则触发读取捕捉程序,在该数据缓存模块(2)中捕捉与读取命令相关联的缓存数据,并由调度模块(8)对该读取命令进行调度,以便从数据缓冲模块(2)获取和传输与读取命令相关联的缓存数据。如果该命令是写入命令,则触发写入合并过程,将与该写入命令相关联的缓存数据合并到数据缓冲模块(2)中,并由调度模块(8)对写入命令进行调度,以便检索和传输来自数据缓冲模块(2)中与写入命令相关联的缓存数据。
在下文中,将提供本发明的示例以用于更详细的说明。应当理解的是,以下描述的示例并非用于限制本发明的范围。
实例
写入合并流程
用户通过AXI接口向内存控制器系统(100)发出新的写入命令和相应的写入数据。该新的写入命令进入链表控制模块(3),而写入数据进入写入数据和选通先进先出缓冲器(27)。此后,链表控制模块(3)检查新的写入命令是否对读取-写入命令缓冲器(6)中的现有写入命令具有依赖命中。如果存在依赖命中,其中新的写入命令和现有命令之一转到相同的地址,则将触发写入合并过程。新的写入命令将会被合并到读取-写入命令缓冲器(6)中。链表控制模块(3)将写入合并过程连同匹配的现有命令的标识通知给写入数据和选通先进先出缓冲器(27)。随后,新的写入数据将从写入数据和选通先进先出缓冲器(27)中弹出,并加载到写入数据缓冲器(22b)的现有写入数据位置。选通将被用于控制缓冲器字节启用以覆盖特定字节。新的写入数据的选通将被合并到写入选通缓冲器(28)的现有写入选通位置中,这使用寄存器/触发器来实现。随后,可以由仲裁器(9)来调度合并的写入命令。合并的写入命令可能不会立即被调度到存储设备。合并的写入命令可以继续与去往相同地址的未来写入命令合并。在将合并的写入命令发送到DFI接口之后,将使用上述标识来检索合并的写入数据,并以适当的延迟将其发送到DFI接口。然后,将上述标识返回到链表控制模块(3),并根据缓存策略检查是否可以释放该标识以供重新使用。例如,如果存在缓存命中,则不能释放上述ID。
写入合并场景
如果现有全写入之后是新的全写入,其中所有字节使能选通被确认,则新的写入数据将覆盖现有的写入数据,并且不对现有写入命令进行任何更改。
如果现有全写入之后是新的部分写入,其中不是所有字节使能选通被确认,则新的部分写入数据将基于新的部分写入选通来覆盖现有写入数据的特定字节。不会对现有的写入命令进行任何更改。
如果现有部分写入之后是新的全写入,并且在写入合并过程之前发生了读取修改操作,则新的写入数据将覆盖修改后的写入数据。现有的部分写入命令将转换为全写入命令。当内存控制器系统(100)从关联地址执行读取操作并使用选通执行与相应写入数据的数据合并时,将发生读取修改操作。
如果现有部分写入之后是新的全写入,并且在写入合并过程之后发生了读取修改操作,则新的写入数据将覆盖现有的写入数据,然后使用新的选通信息进行读取修改操作(没有修改操作,因为新的选通将指示全写入)。现有的部分写入命令将转换为全写入命令。
如果现有部分写入之后是新的部分写入,并且在写入合并过程之前发生了读取修改操作,则新的部分写入数据将基于新的部分写入选通覆盖现有写入数据。不会对现有写入命令进行任何更改。
如果现有部分写入之后是新的部分写入,并且在写入合并过程之后发生了读取修改操作,则新的部分写入数据将基于新的部分写入选通覆盖现有写入数据,然后使用新的选通信息进行读取修改操作。不会对现有写入命令进行任何更改。
读取捕捉流程
用户通过AXI接口向内存控制器系统(100)发出新的读取命令。此后,链表控制模块(3)检查新读取命令是否对读取-写入命令缓冲器(6)中的现有写入命令和读取命令缓冲器(5)中的现有读取命令具有依赖命中。如果存在依赖命中且其中新的读取命令和现有命令之一去往相同的地址,则会触发读取捕捉过程。随后,将丢弃新的读取命令,并在读取-合并命令缓冲器(7)中创建新的读取捕捉命令。然后,读取-合并仲裁器(10)调度该读取捕捉命令。
如果该读取捕捉命令与写入数据捕捉有关,则向写入数据控制器(22a)通知发生了读取捕捉命令及其标识。将从写入数据缓冲器(22b)中检索数据。然后将该数据加载到捕捉数据先进先出缓冲器(26)。当读取数据缓冲器写入端口空闲时,数据将被传输到读取数据缓冲器(24b)中。最后,读取的数据返回到AXI接口。将上述标识返回到链表控制模块(3)中,并根据缓存策略检查是否可以释放该标识以供重新使用。例如,如果存在缓存命中,则不能释放上述标识。
如果读取命令与读取数据捕捉有关,则通知读取数据控制器(24a)发生了读取捕捉命令及其标识。将从读取数据缓冲器(24b)中捕捉数据。此后,当读取数据缓冲器(24b)中的已捕捉数据可用时,该已捕捉数据返回到AXI接口。然后,将上述标识返回到链表控制模块(3),并根据缓存策略检查是否可以释放该标识以供重新使用。例如,如果存在缓存命中,则不能释放上述标识。
数据缓存流程
缓存控制逻辑将为每个标记预选收回候选对象。收回策略是可配置的。该收回策略的示例包括但不限于先进先出(FIFO)和最近最少使用(LRU)。如果缓存具有空条目(冷缓存),则始终选择空条目作为收回候选对象。缓存可以将所有的本地SRAM器件或读取数据缓冲器和写入数据缓冲器之间的合并SRAM缓冲器作为完整缓存。
当用户通过AXI接口向内存控制器系统(100)发出新命令时,链表控制模块(3)将检查缓存命中。如果该新命令是写入命令并且缓存中有自由槽,则将写入数据的标识和地址存储到缓存中并存储写入数据。如果该新命令是写入命令并且地址与缓存中的现有插槽匹配,则该写入命令将被合并到缓存条目中。
如果该新命令是读取命令,则会触发读取捕捉过程,并且读取命令会捕捉现有的缓存数据。
原子操作流程
用户通过AXI接口向内存控制器系统(100)发出原子访问。该原子访问存储在读取-写入命令缓冲器(6)中。原子访问流类似于读取-修改-写入(RMW)流。例如,原子访问将首先发出读取命令,以将读取的数据从DRAM获取到数据修改器。还将从写入数据缓冲器(22b)中检索原子数据并将其存储在数据修改器中。此后,将根据原子操作修改已获取的读取数据,这些原子操作包括但不限于递增、递减、位移位、布尔运算(AND,OR,NOT,XOR)和内存交换。之后,将修改后的数据写入到写入数据缓冲器(22b),并且将通知读取-写入命令缓冲器(6)修改后的数据已就绪。然后,原子访问将向DRAM位置发出写入命令。根据原子访问要求,修改前或修改后的数据可以通过AXI接口返回给用户。例如,内存交换将返回预修改的数据。
上述内存控制器系统(100)克服了现有内存控制器系统的问题和缺点。在本发明中,写入合并和读取捕捉能力减少了发给DRAM的读取/写入命令的数量,因此为其他命令保留了命令带宽。此外,读取捕捉功能力可降低往返延迟,因为数据检索是从本地SRAM而不是从DRAM存储器执行的。同样,在本发明中,可以通过基于控制器的缓存来快速检索并返回数据,以提高性能。另外,本发明中的基于控制器的原子操作通过减少共享内存与内存控制器系统(100)之间的内存流量来增强系统性能和功率。此外,本发明中的读取-写入命令缓冲器(6)可以灵活地处理读取或写入周期,以允许内存控制器(100)优化内存流量。
上述示例性实施方式采用特定特征示出,但是本发明的范围还可以包括各种其他特征。
通过说明书和附图,对本领域技术人员而言,对这些实施例的各种修改均是显而易见的。与本文描述的各种实施例相关联的原理可以应用于其他实施例。因此,对发明的描述无意限于与附图一起示出的实施例,而是提供与本文公开或建议的原理以及新颖性和发明性特征相一致的最广泛范围。因此,凡依照本发明作出的替代方案、修改和变化均落入本发明和所附权利要求书的范围内。
应当理解,本文所指的任何现有技术公开文献均不是承认该公开文献构成本领域公知常识的一部分。
Claims (24)
1.一种用于存储设备的内存控制器系统(100),包括:
调度模块(8);
其特征在于,
数据缓冲模块(2),其包括写入数据单元(22)、读取数据单元(24)和捕捉数据先进先出缓冲器(26),用于存储传输到存储设备或从存储设备接收的数据;
全局定序缓冲模块(4),其包括读取命令缓冲器(5)、读取-写入命令缓冲器(6)和读取-合并命令缓冲器(7),用于缓冲多个现有命令;以及
链表控制模块(3),用于接收和处理包括写入命令或读取命令的第一命令;
其中,所述链表控制模块(3)通过将所述第一命令与所述全局定序缓冲模块(4)中缓存的现有命令进行比较,来确定所述第一命令是否为依赖命中;
如果所述第一命令是依赖命中,则所述链表控制模块(3)用于触发写入合并程序或读取捕捉程序,将所述第一命令与所述现有命令进行处理以形成下一命令,并将所述下一命令加载到所述全局定序缓冲模块(4),在所述数据缓存模块(2)中整理与所述下一命令相关联的数据,并由所述调度模块(8)调度所述下一命令,以便检索和传输来自所述数据缓存模块(2)中与所述下一命令相关的数据。
2.根据权利要求1所述的内存控制器系统(100),其特征在于,所述链表控制模块(3)基于依赖关系构建链表,以允许将预调度的年龄信息存储在所述链表中。
3.根据权利要求1所述的内存控制器系统(100),其特征在于,所述写入数据单元(22)包括写入数据控制器(22a)和写入数据缓冲器(22b),用于识别所述写入命令并从所述写入数据缓冲器(22b)检索写入数据。
4.根据权利要求1所述的内存控制器系统(100),其特征在于,所述读取数据单元(24)包括读取数据控制器(24a)和读取数据缓冲器(24b),用于识别所述读取命令并从所述读取数据缓冲器(24b)检索读取数据。
5.根据权利要求1所述的内存控制器系统(100),其特征在于,所述调度模块(8)包括并行操作的仲裁器(9)和读取-合并仲裁器(10)。
6.根据权利要求1所述的内存控制器系统(100),其特征在于,所述数据缓存模块(2)还包括数据修改器和数据仲裁器,以支持所述内存控制器系统(100)的原子操作。
7.根据权利要求1所述的内存控制器系统(100),其特征在于,所述数据缓冲模块(2)还包括写入数据和选通先进先出缓冲器(27)和写入选通缓冲器(28),以使用选通控制写入数据和缓冲器字节。
8.根据权利要求1所述的内存控制器系统(100),其特征在于,所述链表控制模块(3)包括缓存匹配单元(32)。
9.根据权利要求8所述的内存控制器系统(100),其特征在于,所述缓存匹配单元(32)包括链表创建逻辑,以基于寻址依赖性和/或DRAM资源依赖性来构建链表。
10.一种用于存储设备的内存调度的方法(200),所述方法(200)包括以下步骤:
由链表控制模块(3)接收第一命令;
确定所述第一命令是写入命令还是读取命令;以及
比较所述第一命令与全局定序缓冲模块(4)中缓冲的现有命令,以确定所述第一命令是否为依赖命中;
其中如果所述第一命令是依赖命中,则触发写入合并程序或读取捕捉程序,将所述第一命令与所述现有命令进行处理以形成下一命令,将所述下一命令加载到所述全局定序缓存模块(4)中,在所述数据缓存模块(2)中整理与所述下一命令关联的数据,并由所述调度模块(8)对所述下一命令进行调度,以便检索和传输来自所述数据缓冲模块(2)中与所述下一命令相关联的数据。
11.根据权利要求10所述的方法(200),其特征在于,如果所述第一命令是写入命令,则触发所述写入合并程序。
12.根据权利要求10所述的方法(200),其特征在于,如果所述第一命令是读取命令,则触发所述读取捕捉程序。
13.一种用于存储设备的内存调度写入命令的方法(200a),所述方法(200a)包括以下步骤:
链表控制模块(3)接收第一写入命令;以及
比较所述第一写入命令与全局定序缓冲模块(4)中缓存的现有写入命令,以确定所述第一写入命令是否为依赖命中;
如果所述第一写入命令为依赖命中,则触发写入合并过程,将所述第一写入命令与所述现有写入命令进行处理以形成下一写入命令,将所述下一写入命令加载到所述全局定序缓冲模块(4)中,在数据缓冲模块(2)中整理与所述下一写入命令相关联的写入数据,并由调度模块(8)对所述下一写入命令进行调度,以便检索和传输来自所述数据缓冲模块(2)中与所述下一写入命令相关联的写入数据。
14.根据权利要求13所述的方法(200a),其特征在于,所述第一写入命令与写入数据相关联,并且所述写入数据由所述数据缓冲模块(2)接收。
15.根据权利要求14所述的方法(200a),其特征在于,所述写入数据由所述数据缓冲模块(2)的写入数据和选通先入先出缓冲器(27)接收。
16.根据权利要求13所述的方法(200a),其特征在于,将所述第一写入命令与所述现有写入命令进行处理的步骤包括:
丢弃所述第一写入命令;
将所述第一写入命令合并到所述现有写入命令中,以形成所述下一写入命令;以及
确定所述现有写入命令的标识。
17.根据权利要求13至16中任一项所述的方法(200a),其特征在于,在所述数据缓冲模块(2)中整理与所述下一写入命令相关联的写入数据的步骤包括以下步骤:
从所述链表控制模块(3)接收所述下一写入命令的信号和接收所述现有写入命令的标识;
将所述写入数据从所述写入数据和选通先进先出缓冲器(27)中加载到所述数据缓冲模块(2)中的写入数据缓冲器(22b);以及
在写入选通缓冲器(28)中将新选通与现有选通合并。
18.根据权利要求13至16中任一项所述的方法(200a),其特征在于,检索和传输与所述下一写入命令相关联的所述写入数据的步骤包括以下步骤:
使用所述现有写入命令的所述标识来检索与所述下一写入命令相关联的所述写入数据;
在所述链表控制模块(3)验证所述现有写入命令的标识;以及
从所述数据缓冲模块(2)传输与所述下一写入命令相关联的所述写入数据。
19.一种用于存储设备的内存调度读取命令的方法(200b),所述方法(200b)包括以下步骤:
由链表控制模块(3)接收第一读取命令;以及
比较所述第一读取命令与现有读取命令和在全局定序缓冲模块(4)中缓存的现有写入命令,以确定所述第一读取命令是否为依赖命中;
如果所述第一读取命令是依赖命中,则触发读取捕捉过程,将所述第一读取命令与现有读取命令或现有写入命令进行处理以形成下一读取命令,并将所述下一读取命令加载到所述全局定序缓冲模块(4)中,在数据缓冲模块(2)中整理与所述下一读取命令相关联的已捕捉数据,并由调度模块(8)对所述下一读取命令进行调度,以便检索和传输来自数据缓冲模块(2)中与所述下一读取命令相关联的已捕捉数据;
其中所述已捕捉数据包括读取数据或写入数据。
20.根据权利要求19所述的方法(200b),其特征在于,将所述第一读取命令与现有读取命令或现有写入命令进行处理的步骤包括:
确定所述第一读取命令是捕捉写入数据还是捕捉读取数据;
将所述第一读取命令作为所述下一读取命令;以及
确定现有读取命令或现有写入命令的标识。
21.根据权利要求19或20所述的方法(200b),其特征在于,如果所述第一读取命令是捕捉写入数据,则在所述数据缓冲模块(2)中整理与所述下一读取命令相关联的已捕捉数据的步骤包括以下步骤:
从所述链表控制模块(3)接收所述下一读取命令的信号和接收所述现有写入命令的标识;
将已捕捉写入数据从写入数据缓冲器(22b)加载到所述数据缓冲模块(2)中的捕捉数据先进先出缓冲器(26);以及
将已捕捉写入数据从所述捕捉数据先进先出缓冲器(26)加载到所述数据缓冲模块(2)中的读取数据缓冲器(24b)。
22.根据权利要求19或20所述的方法(200b),其特征在于,如果所述第一读取命令是捕捉读取数据,则在所述数据缓冲模块(2)中整理与所述下一读取命令相关联的已捕捉数据的步骤包括如下步骤:
从所述链表控制模块(3)接收所述下一读取命令的信号和接收所述现有读取命令的标识;以及
将所述已捕捉读取数据整理在所述数据缓冲模块(2)的所述读取数据缓冲器(24b)中。
23.一种用于执行存储设备的原子操作的方法(300),所述方法(300)包括以下步骤:
由链表控制模块(3)接受原子访问;
从存储设备获取与所述原子访问相关联的读取数据并放入数据修改器中;
将与所述原子访问相关联的原子数据存储在所述数据修改器中;
根据所述数据修改器中的原子数据修改获取到的读取数据;以及
将修改后的数据整理在写入数据缓冲器(22b)中。
24.一种用于执行存储设备的数据缓存的方法(400),所述方法(400)包括以下步骤:
由链表控制模块(3)接收命令;以及
确定所述命令是否为缓存命中;
如果所述命令是读取命令,则触发读取捕捉程序,在数据缓冲模块(2)捕捉与所述读取命令相关联的缓存数据,并由调度模块(8)对所述读取命令进行调度,以便检索和传输来自所述数据缓冲模块(2)中与所述读取命令相关联的缓存数据;
如果所述命令为写入命令,则触发写入合并程序,在所述数据缓冲模块(2)合并与所述写入命令相关联的缓存数据,并由所述调度模块(8)对写入命令进行调度,以便检索和传输来自所述数据缓冲模块(2)中与所述写入命令相关联的缓存数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
MYPI2020005066 | 2020-09-28 | ||
MYPI2020005066 | 2020-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281723A true CN114281723A (zh) | 2022-04-05 |
Family
ID=80822493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110007968.7A Pending CN114281723A (zh) | 2020-09-28 | 2021-01-05 | 一种存储设备的内存控制器系统和内存调度方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11609709B2 (zh) |
CN (1) | CN114281723A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056255A (zh) * | 2023-10-12 | 2023-11-14 | 沐曦集成电路(上海)有限公司 | 一种原子操作装置、方法、设备及介质 |
CN118377741A (zh) * | 2024-06-27 | 2024-07-23 | 北京辉羲智能科技有限公司 | 原子操作的执行系统、方法和装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11829643B2 (en) * | 2021-10-25 | 2023-11-28 | Skyechip Sdn Bhd | Memory controller system and a method of pre-scheduling memory transaction for a storage device |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870625A (en) * | 1995-12-11 | 1999-02-09 | Industrial Technology Research Institute | Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command |
US20060090044A1 (en) * | 2004-10-21 | 2006-04-27 | International Business Machines Corporation | Memory controller and method for optimized read/modify/write performance |
US20110082985A1 (en) * | 2009-10-05 | 2011-04-07 | Seagate Technology Llc | Data management in a data storage system |
US20140181421A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Processing engine for complex atomic operations |
CN107305475A (zh) * | 2016-04-22 | 2017-10-31 | 中国科学院微电子研究所 | 一种flashcache混合存储系统的缓存调度方法及系统 |
US20170352403A1 (en) * | 2016-06-01 | 2017-12-07 | MemRay Corporation | Memory controller, and memory module and processor including the same |
CN107992436A (zh) * | 2016-10-26 | 2018-05-04 | 杭州华为数字技术有限公司 | 一种NVMe数据读写方法及NVMe设备 |
CN108139904A (zh) * | 2015-10-23 | 2018-06-08 | 惠普发展公司,有限责任合伙企业 | 写入命令过滤 |
CN109426446A (zh) * | 2017-08-29 | 2019-03-05 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110308866A (zh) * | 2018-03-20 | 2019-10-08 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US20200081654A1 (en) * | 2018-09-06 | 2020-03-12 | Shenzhen Epostar Electronics Limited Co. | Command processing method and storage controller using the same |
US20200081652A1 (en) * | 2018-09-12 | 2020-03-12 | Apple Inc. | Memory access scheduling using a linked list |
CN110910921A (zh) * | 2019-11-29 | 2020-03-24 | 深圳市国微电子有限公司 | 一种命令读写方法、装置及计算机存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201022935A (en) | 2008-12-12 | 2010-06-16 | Sunplus Technology Co Ltd | Control system for accessing memory and method of the same |
US11429526B2 (en) * | 2018-10-15 | 2022-08-30 | Texas Instruments Incorporated | Credit aware central arbitration for multi-endpoint, multi-core system |
KR102406449B1 (ko) * | 2020-06-25 | 2022-06-08 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
-
2021
- 2021-01-05 US US17/141,723 patent/US11609709B2/en active Active
- 2021-01-05 CN CN202110007968.7A patent/CN114281723A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870625A (en) * | 1995-12-11 | 1999-02-09 | Industrial Technology Research Institute | Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command |
US20060090044A1 (en) * | 2004-10-21 | 2006-04-27 | International Business Machines Corporation | Memory controller and method for optimized read/modify/write performance |
US20110082985A1 (en) * | 2009-10-05 | 2011-04-07 | Seagate Technology Llc | Data management in a data storage system |
US20140181421A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Processing engine for complex atomic operations |
CN108139904A (zh) * | 2015-10-23 | 2018-06-08 | 惠普发展公司,有限责任合伙企业 | 写入命令过滤 |
CN107305475A (zh) * | 2016-04-22 | 2017-10-31 | 中国科学院微电子研究所 | 一种flashcache混合存储系统的缓存调度方法及系统 |
US20170352403A1 (en) * | 2016-06-01 | 2017-12-07 | MemRay Corporation | Memory controller, and memory module and processor including the same |
CN107992436A (zh) * | 2016-10-26 | 2018-05-04 | 杭州华为数字技术有限公司 | 一种NVMe数据读写方法及NVMe设备 |
CN109426446A (zh) * | 2017-08-29 | 2019-03-05 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110308866A (zh) * | 2018-03-20 | 2019-10-08 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US20200081654A1 (en) * | 2018-09-06 | 2020-03-12 | Shenzhen Epostar Electronics Limited Co. | Command processing method and storage controller using the same |
US20200081652A1 (en) * | 2018-09-12 | 2020-03-12 | Apple Inc. | Memory access scheduling using a linked list |
CN110910921A (zh) * | 2019-11-29 | 2020-03-24 | 深圳市国微电子有限公司 | 一种命令读写方法、装置及计算机存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056255A (zh) * | 2023-10-12 | 2023-11-14 | 沐曦集成电路(上海)有限公司 | 一种原子操作装置、方法、设备及介质 |
CN117056255B (zh) * | 2023-10-12 | 2024-02-27 | 沐曦集成电路(上海)有限公司 | 一种原子操作装置、方法、设备及介质 |
CN118377741A (zh) * | 2024-06-27 | 2024-07-23 | 北京辉羲智能科技有限公司 | 原子操作的执行系统、方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20220100423A1 (en) | 2022-03-31 |
US11609709B2 (en) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347649B2 (en) | Victim cache with write miss merging | |
US7873785B2 (en) | Multi-core multi-thread processor | |
CN114281723A (zh) | 一种存储设备的内存控制器系统和内存调度方法 | |
US9183145B2 (en) | Data caching in a network communications processor architecture | |
US9218290B2 (en) | Data caching in a network communications processor architecture | |
US6658533B1 (en) | Method and apparatus for write cache flush and fill mechanisms | |
US6141734A (en) | Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol | |
US6877077B2 (en) | Memory controller and method using read and write queues and an ordering queue for dispatching read and write memory requests out of order to reduce memory latency | |
US8537832B2 (en) | Exception detection and thread rescheduling in a multi-core, multi-thread network processor | |
US5163142A (en) | Efficient cache write technique through deferred tag modification | |
US7284102B2 (en) | System and method of re-ordering store operations within a processor | |
CN103959261B (zh) | 网络处理器中的多内核互联 | |
JPH04232549A (ja) | キャッシュメモリシステム | |
US7370152B2 (en) | Memory controller with prefetching capability | |
US6539457B1 (en) | Cache address conflict mechanism without store buffers | |
US7941608B2 (en) | Cache eviction | |
US7325099B2 (en) | Method and apparatus to enable DRAM to support low-latency access via vertical caching | |
US9009415B2 (en) | Memory system including a spiral cache | |
US7277990B2 (en) | Method and apparatus providing efficient queue descriptor memory access | |
US20050044320A1 (en) | Cache bank interface unit | |
CN114153756B (zh) | 面向多核处理器目录协议的可配置微操作机制 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |