CN113490923A - 加速对数据存储系统中的存储器组的访问 - Google Patents
加速对数据存储系统中的存储器组的访问 Download PDFInfo
- Publication number
- CN113490923A CN113490923A CN202080016432.5A CN202080016432A CN113490923A CN 113490923 A CN113490923 A CN 113490923A CN 202080016432 A CN202080016432 A CN 202080016432A CN 113490923 A CN113490923 A CN 113490923A
- Authority
- CN
- China
- Prior art keywords
- address
- memory
- physical
- virtual
- host
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 457
- 238000013500 data storage Methods 0.000 title claims description 26
- 238000013507 mapping Methods 0.000 claims abstract description 64
- 230000006870 function Effects 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims description 22
- 239000007787 solid Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- 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/1615—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
-
- 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/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/653—Page colouring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System (AREA)
- Dram (AREA)
Abstract
第一主机接收虚拟存储器中的第一虚拟地址,虚拟存储器中的第一虚拟地址根据映射函数对应于由第一主机要访问的第一物理存储器组的第一物理地址。第一主机访问第一物理地址,以在第一物理存储器组中执行第一存储操作。第二主机接收虚拟存储器中的第二虚拟地址,虚拟存储器中的第二虚拟地址根据映射函数对应于由第二主机要访问的第二物理存储器组的第二物理地址。与由第一主机访问第一物理地址同时,第二主机访问第二物理地址,以在第二物理存储器组中执行第二存储操作。
Description
相关申请的交叉引用
本公开要求于2019年2月25日提交的题为“用于加速对存储器的访问的方法和装置”的序列号为62/810,227的美国临时申请的优先权权益,该申请的内容通过引用整体并入本文。
技术领域
本公开涉及一种数据存储系统,即,加速对数据存储系统中的存储器组的访问,以改善数据存储系统的吞吐量和/或减少访问数据存储系统的延迟。
背景技术
本文中提供的背景描述是为了概括地呈现本公开的上下文。当前署名的发明人的工作、在本背景技术部分中描述的工作范围、以及在提交申请时可能不符合现有技术的描述方面,既不明示也不暗示承认为相对于本公开的现有技术。
数据存储系统有助于以易失性或非易失性存储器的形式存储和检索数据。数据存储系统的读写性能根据吞吐量和延迟来测量。吞吐量限定数据读取或写入数据存储系统的速率,延迟是从数据存储系统访问数据的延迟。用于增加数据存储系统的吞吐量和减少延迟的常规解决方案通常导致数据存储系统的功耗和数据存储系统的成本的实质性增加。
发明内容
本公开涉及一种数据存储系统,即,加速对数据存储系统中的存储器组的访问,以改善数据存储系统的吞吐量和/或减少访问存储系统的延迟。
本公开的方面提供一种用于改善数据存储系统中的存储器访问的方法,方法包括:在第一主机处接收虚拟存储器中的第一虚拟地址,虚拟存储器中的第一虚拟地址根据映射函数对应于由第一主机要访问的第一物理存储器组的第一物理地址;通过第一主机访问第一物理地址以执行第一读取操作,以读取存储在第一物理地址处的第一物理存储器组中的数据单元的第一部分,或执行第一写入操作以将数据单元的第一部分写入到在第一物理地址处的第一物理存储器组;在第二主机处接收虚拟存储器中的第二虚拟地址,虚拟存储器中的第二虚拟地址根据映射函数对应于由第二主机要访问的第二物理存储器组的第二物理地址;与第一主机访问第一物理地址同时,第二主机访问第二物理地址以执行第二读取操作,以读取存储在第二物理地址处的第二物理存储器组中的数据单元的第二部分,或执行第二写入操作以将数据单元的第二部分写入到在第二物理地址处的第二物理存储器组。
在一个示例中,映射函数将虚拟存储器中的与数据单元的第一部分相关联的第一虚拟地址映射到第一物理存储器组中的与数据单元的第一部分相关联的第一物理地址,并且将虚拟存储器中的与数据单元的第二部分相关联的第二虚拟地址映射到第二物理存储器组中的与数据单元的第二部分相关联的第二物理地址。在另一示例中,虚拟存储器中的与数据单元的第一部分相关联的第一虚拟地址以及虚拟存储器中的与数据单元的第二部分相关联的第二虚拟地址与虚拟存储器中的连续行相关联,并且第一物理存储器组中的第一物理地址以及第二物理存储器组中的第一物理地址标识连续的存储器组。在又一示例中,映射函数基于对虚拟存储器中的与数据单元的第一部分相关联的第一虚拟地址的位的逻辑异或(XOR)运算,将虚拟存储器中的与数据单元的第一部分相关联的第一虚拟地址映射到第一物理地址,逻辑XOR运算的输出标识与数据单元的第一部分相关联的第一物理存储器组。在另一示例中,数据单元是32字节,虚拟存储器中的与数据单元的第一部分相关联的第一虚拟地址是通过变量地址表示的23位,其中第22位是最高有效位,第0位是最低有效位,并且逻辑XOR运算是地址的第12位至第9位与地址的第8位至第5位进行的XOR运算,以便标识与数据单元的第一部分相关联的第一物理存储器组。在再一示例中,第一主机基于第一物理地址访问第一物理存储器组的一部分,或者第二主机基于第二物理地址访问第二物理存储器组的一部分。在另一示例中,第一物理存储器组与第二物理存储器组是相同的存储器组,方法还包括:仲裁由第一主机和第二主机对第一物理存储器组和第二物理存储器组的访问。在又一示例中,第一物理存储器组和第二物理存储器组各自为单端口存储器组。在另一示例中,映射函数是将虚拟存储器的虚拟地址映射到物理存储器组的物理地址的映射表,映射表由第一主机与第二主机共享。在再一示例中,由第一主机与第二主机的并发访问在一个时钟周期内。
本公开的方面提供一种存储系统,存储系统包括:第一存储器组;第二存储器组;第一主机,被配置为:接收虚拟存储器中的第一虚拟地址,虚拟存储器中的第一虚拟地址根据映射函数对应于由第一主机要访问的第一物理存储器组的第一物理地址;访问第一物理地址以执行第一读取操作,以读取存储在第一物理地址处的第一物理存储器组中的数据单元的第一部分,或执行第一写入操作以将数据单元的第一部分写入到在第一物理地址处的第一物理存储器组;第二主机,被配置为:接收虚拟存储器中的第二虚拟地址,虚拟存储器中的第二虚拟地址根据映射函数对应于由第二主机要访问的第二物理存储器组的第二物理地址;与由第一主机访问第一物理地址同时,访问第二物理地址以执行第二读取操作,以读取存储在第二物理地址处的第二物理存储器组中的数据单元的第二部分,或执行第二写入操作以将数据单元的第二部分写入到在第二物理地址处的第二物理存储器组。
附图说明
图1示出了将通过主机的访问分布到存储器组的示例存储系统。
图2示出了虚拟存储器中的地址到存储器组的地址的示例映射,以将通过主机的访问分布到示例存储系统中的存储器组。
图3示出了基于将虚拟存储器中的地址映射到示例存储系统中的存储器组的地址的通过主机对存储器组的示例访问。
图4是与通过将虚拟存储器中的地址映射到示例存储系统中的存储器组的地址的通过主机对存储器组的访问相关联的功能的流程图。
附图是为了说明示例实施例的目的,但是应当理解,实施例不限于附图中所示的布置和手段。
具体实施方式
本公开涉及数据存储系统,数据存储系统具有多个主机和多个存储器组,并且该数据存储系统改善由多个主机对多个存储器组的访问。存储器组存储数据并且有助于存储数据的检索。此外,在一个实施例中,存储器组是单端口存储器组,其仅在给定的时间段中允许一个主机访问存储器组。存储器访问被分布在多个物理存储器组中,以增大每个主机能够成功访问存储器组的概率,同时避免在给定的时间段中与另一个主机并发访问而发生冲突。通过使多个不同的主机能够以降低的冲突概率同时访问存储器组,存储系统的吞吐量被增大并且存储系统的延迟被减少。在一些示例中,特别是当使用单端口存储器组时,在保持数据存储系统的低功耗与降低的成本的同时,实现了提高存储器组访问的速率和减少延迟的益处。
概述
数据存储系统具有多个主机和多个存储器组。多个主机寻求访问多个存储器组,以在多个存储器组中执行读取操作或写入操作。每个物理存储器组是允许通过一个主机在诸如时钟周期的时间段中访问的单端口存储器。
在一些示例中,两个或更多个主机想要在时间段内访问相同的存储器组。为了每个主机能够访问相同的组,数据存储具有仲裁器以公平地仲裁访问。仲裁器授予主机1访问,然后在另一时间段内授予主机2访问,然后在另一时间段内授予主机3访问,等等。此外,每个主机可以访问被称为数据突发的存储器组中最大数目的数据字节。例如,如果时间段是时钟周期,则主机1在2个连续时钟周期内以突发形式一次访问多达64字节的数据。作为另一示例,主机2在16个连续时钟周期内以突发形式一次访问多达512字节的数据。作为又一示例,主机3在32个连续时钟周期内以突发形式一次访问多达1024字节的数据。突发访问允许有效地访问存储器组中的数据,但是如果由两个或更多个主机要访问在同一存储器组中的数据,则除了一个主机之外的所有主机将需要等待直到另一个主机完成其突发访问为止。为了增大数据存储系统的吞吐量并且减少延迟,常规的是增大到数据存储系统的数据路径的宽度,以使得由数据路径一次承载更多位或字节、或者常规的是增大为存储系统提供定时的时钟的时钟速率以使得随着时间的推移从存储器组中读取或写入更多的数据。增大数据路径的宽度和增大时钟速率均增大了数据存储系统的成本并且导致存储系统消耗更多的功率。
系统、设备、方法和技术被描述以通过在存储器组之间分布多个主机的访问来改善对多个存储器组的访问。主机基于存储器组的虚拟存储器访问多个存储器组。虚拟存储器具有多个地址,其中存储器组的虚拟存储器中的地址与待从存储器组读取或待被存储在存储器组中的数据的相应部分相关联。例如,虚拟存储器中的第一地址与数据的第一部分相关联,并且虚拟存储器中的第二地址与数据的第二部分相关联。在一个实施例中,存储器组是允许通过一个主机在诸如时钟周期的时间段内访问的单端口存储器组。主机使用与数据的部分相关联的存储器组的虚拟存储器中的地址来访问作为物理存储器组的存储器组,以从存储器组读取数据的部分以及将数据的部分写入存储器组。例如,多个主机中的第一主机确定第一存储器组中的地址,以基于在第一地址与第一存储器组中的地址之间的映射,在时间段内将数据的第一部分存储在第一存储器组中或从第一存储器组中检索数据的第一部分。然后第一主机访问第一存储器组中的地址。作为另一示例,多个主机中的第二主机确定第二存储器组中的地址,以基于在虚拟存储器中的第一地址与第一存储器组中的地址之间的映射,在该时间段内将数据的第二部分存储在第二存储器组中或从第二存储器组中检索数据的第二部分。然后第二主机访问第二存储器组中的地址。映射将访问分布到用于数据的不同部分的不同存储器组,以使得每个主机将能够以增大的概率成功访问存储器组,而不会在时间段内与另一个主机发生冲突,从而增大存储系统的吞吐量并且减少存储系统的延迟。
下面的描述包括体现本公开的方面的示例系统、设备和方法。然而,应注意的是,可以在没有这些具体细节的情况下实践本公开。在其他实例中,为了不混淆描述,没有详细示出公知的指令实例、结构和技术。
示例系统
图1示出了有助于在易失性或非易失性存储器中存储和检索数据的示例存储系统100的框图。在示例中,存储系统100可以是诸如计算系统、网络装置或存储外壳,或者具体地是个人计算机、服务器、大型机、智能电话、游戏系统、机顶盒、通信设备等的较大系统的一部分。对此,取决于较大系统的性质,数据可以采用多种形式,包括但不限于数据包、代码或数据结构。存储系统100包括示出为1…N个的多个存储器组102、示出为1…M个的多个主机104和仲裁器106。多个存储器组102、多个主机104、和仲裁器106可以通过总线110通信耦合在一起。总线110可以符合外围组件互连(PCI)、工业标准架构(ISA)、PCI-Express、新总线(NuBus)、高级可分布总线AXI总线或以太网标准以及其他标准。
被示为多个存储器组102中的一个的存储器组是包含实施在一个或多个半导体存储器芯片中或者在一个或多个存储驱动器中的多个存储器位置的电子数据存储器的单元,所述半导体存储器芯片诸如随机存取存储器(RAM)、同步RAM(SRAM)、动态RAM(DRAM)、零电容RAM、双晶体管RAM、嵌入式DRAM(eDRAM)、分布数据输出RAM(EDORAM)、双倍数据速率RAM(DDRRAM)和闪存,所述存储驱动器诸如固态驱动器、硬盘等。尽管每个存储器组被描绘为单个块,但是在一些构造中,存储器组包括多个不同的物理存储器。存储器组可以是同一集成电路内的每个单独的片上存储器组,或者被设置在不同的固态装置或不同的集成电路上。
在示例中,存储器位置可以被组织为存储器组中的行。例如,存储器组可以具有16384行,并且每个行具有32个存储器位置,其中每个存储器位置存储一个字节的数据。每个存储器位置可以与唯一地标识存储器组中的存储器位置的地址相关联。每个行可以与行号或唯一标识该行的诸如该行中的存储器位置的第一个字节或最后一个字节的存储器地址相关联。作为示例,存储系统100被示出为具有N个存储器组,被标识为存储器组1至存储器组N中的一个存储器组。在一些示例中,N=16。在其他示例中,存储系统100可以具有更多或更少的存储器组。此外,多个存储器组102中的每个存储器组可以具有相同数目的存储器位置或不同数目的存储器位置。此外,每个存储器组还可以与不重叠的地址范围相关联,使得每个存储器组中的每个存储器位置和行在多个存储器组102上是唯一可标识的。如下面所描述的,每个存储器组可以独立地并行访问,但不能同时被两个或更多个的主机访问。在示例中,每个存储器组可以是允许一次通过一个主机访问的单端口存储器。此外,在一个实施例中,存储器组的一部分可以经由单个访问通道(或端口)来访问,单个访问通道(或端口)提供通过单个主机对存储器组的对应部分的访问。
多个主机104中的每个主机是执行存储器组的读取访问或写入访问的集成电路。在一些示例中,多个主机104和多个存储器组可以设置在相同的集成电路(IC)或固态装置上。在其他示例中,多个存储器组102和多个主机104可以设置在多个集成电路或多个其他合适的固态装置上。
存储系统100被示出为具有M个主机,被标识为主机1到主机M。虽然在一些示例中M=6,但是在其他示例中,存在更多或更少数目的主机。主机可以访问存储器组。为了有助于这种读取访问和写入访问,有助于在多个主机104与多个存储器组102之间的通信的总线110限定控制路径、地址路径和数据路径中的一个或多个路径。控制路径指示是将数据写入存储器位置还是从存储器位置读取数据。地址路径携带指示待读取或写入的存储器位置的存储器地址。数据路径携带待存储在存储器位置中的数据或待从存储器位置读取的数据。主机在控制路径上断言一个或多个信号以指示读取或写入操作,在地址路径上断言一个或多个信号以指示待访问的数据,或者在数据路径上断言一个或多个信号以指示待写入的数据。在示例中,信号可以是施加到控制路径或地址路径的电压电平。说明性地,主机可以通过在控制路径上放置高(或低)电压信号来指定在控制线路上的读取操作或写入操作。然后,主机通过在标识存储器位置的地址路径上施加指示唯一存储器地址的一个或多个信号来指定待访问的存储器组中的存储器位置。对于写入访问,主机将指示待存储的数据的一个或多个信号施加到数据路径,这使得数据被存储在所标识的存储器位置中。对于读取访问,存储器组可以在数据路径上施加一个或多个信号,所述一个或多个信号指示从存储器组中标识的存储器位置检索并且提供给主机的数据。其他变型也是可能的。
存储系统100可以具有时钟114。时钟114被配置为生成由多个主机104参考的周期信号,并且其限定当主机尝试访问存储器组时的时间段或时钟周期。具体地,存储系统100可以被布置为使得对于每个时钟周期,一个或多个主机可以尝试访问多个存储器组102中的存储器组。例如,主机可以访问存储器组的一行中的数据,诸如32字节的数据。此外,每个主机可以能够作为连续数据的突发而一次访问一个或多个存储器组中的最大数量的数据。例如,主机1可以在2个时钟周期内一次访问多达64个字节的数据。作为另一示例,主机2可以在16个时钟周期内一次访问多达512个字节。作为又一示例,主机3可以在32个时钟周期内一次访问多达1024个字节的数据。最大访问量允许有效访问存储器组中的数据。
存储器组在一个时钟周期内仅提供一个主机的访问。如果两个或更多个主机尝试经由单个访问端口或通道在同一时钟周期内访问同一存储器组或同一存储器组(诸如存储器组1)的一部分,则会发生冲突,并且在没有进一步干预的情况下这两个主机都不会被授予访问。仲裁器106可以是集成电路,其拦截两个或更多个的主机对一个或多个存储器组的访问,检测两个或更多个的主机对同一存储器组的访问是否会导致冲突,并且对两个或更多个主机对同一存储器组的访问进行仲裁。如果两个或更多个的主机在一个时钟周期内寻求访问同一存储器组,则仲裁器106可以公平地向所述两个或更多个的主机提供对同一存储器组的访问。公平访问可以允许每个主机完成其存储器操作,使得每个主机能够满足单独的吞吐量和延迟标准。例如,仲裁器可以根据诸如循环、加权循环等的访问方案而通过在两个竞争主机之间的交替访问,在第一时钟周期中允许第一主机访问,然后在第二时钟周期中允许第二主机访问。以这种方式,每个主机可以能够及时访问同一存储器组。否则,如果两个主机访问同一存储器组中的数据,则一个主机可以需要等待多达与由另一个主机的最大访问相关的时钟周期数,然后才能访问同一存储器组。
在一个实施例中,存储器组102是物理存储器。主机访问基于存储器组的虚拟存储器的多个存储器组。虚拟存储器具有与数据相关联的一个或多个地址,作为示例,所述数据可以是帧、数据包、块或其他合适的数据单元。数据可以与虚拟存储器中的单个地址相关联。作为备选,数据被分成数据的部分,并且存储器组的虚拟存储器中的地址与数据的相应部分相关联。此外,多个数据的部分可以是虚拟存储器的连续地址。例如,虚拟存储器中的第一地址与数据的第一部分相关联,虚拟存储器中的第二地址与数据的第二部分相关联。在示例中,虚拟存储器中的每个地址映射到存储器组中的一个地址。该映射确定存储数据的相应部分的存储器组或从何处检索数据的相应部分的存储器组。每个主机104可以具有相应的存储器组访问分布器(“访问分布器”)120来执行映射。访问分布器108是集成电路,其被配置为将虚拟存储器中的虚拟地址映射到存储器组中的物理地址。该映射实现由主机对存储器组102的访问,诸如对被分布到不同物理存储器组的数据的不同部分的读取或写入,使得每个主机将能够以增大的概率成功访问存储器组,而不会与另一个主机冲突,从而在一些示例中增大存储系统的吞吐量并且减少存储系统的延迟。
说明性地,两个主机可以试图读取与在时钟周期内虚拟存储器中的不同地址相关联的数据的不同部分或写入与虚拟存储器中的不同地址相关联的数据的不同部分。数据的第一部分可以与虚拟存储器中的第一地址相关联,数据的第二部分可以与虚拟存储器中的第二地址相关联。与第一主机相关联的访问分布器可以将虚拟存储器中的第一地址映射到第一存储器组中的地址,并且一个主机可以访问第一存储器组。与第二主机相关联的访问分布器可以将虚拟存储器中的第二地址映射到第二存储器组中的地址,第二主机可以在同一时钟周期内访问第二存储器组。映射函数可以将虚拟存储器的地址映射到存储器组的地址,使得每个主机将能够成功访问存储器组以进行读取或写入操作,并且仲裁器106可以不需要经常仲裁对同一存储器组的访问。
在M=6且N=16的示例存储系统100中,基于访问分布器将通过主机的访问分布在不同的存储器组上,由主机在一个时钟周期内成功访问(即,另一个主机不会同时尝试访问同一存储器组)具有85.6%的概率。85.6%的概率是基于存储器组被访问的概率是1/6并且没有体被访问的概率给定为(1-1/6)6=0.679。然后,可以访问多个存储器组102中的任何一个存储器组的概率给定为1-0.679=0.321,并且主机将成功访问存储器组的概率给定为0.321*16/6=0.856或85.6%。成功访问的概率指示如果由主机对多个存储器组102的访问在时钟周期内均匀分布、并且由主机中的每个主机对存储器组的访问是独立的,那么由主机成功访问存储器组而不与另一个主机发生冲突的概率接近一。可以基于存储器组的数目N和/或主机的数目M来增大或减小该概率。因为在一些示例中,主机在存储器组上的访问分布是一致的,所以数据存储系统100的吞吐量增大并且减小数据存储系统100的延迟。
图2示出了通过访问分布器108执行的将主机对存储器组204、206、208的访问进行分布的示例过程200。访问分布器108可以基于通过主机提供的虚拟存储器202中的地址分布对三个存储器组204、206、208的访问。虚拟存储器202可以在单个线性地址空间中限定具有开始存储器地址和结束存储器地址的存储器地址空间。虚拟存储器202可以具有多行,其示例被示出为行250。在示例中,每个行可以对应于32字节的数据或者待读取或写入的数据的一部分。存储器组204、206、208也可以按行布置,例如其示例被示出为行252。行252也可以对应于32字节的数据,但是在其他示例中,行250和行252可以对应于不同的尺寸。每个存储器组和存储器组中的每个行可以是可寻址的,并且每个存储器组可以具有多个行,在该示例中其被示出为16584行,并且存储器组204、206、208可以共同限定存储页面。访问分布器108可以限定映射函数,所述映射函数执行与虚拟存储器中的地址相关联的地址到存储器组中的地址的映射,这在示例中为一对一映射。
映射函数可以指示虚拟存储器202中的连续行的地址被映射到连续存储器组的地址。在示例中,多个连续行可以表示数据,并且连续行的地址可以与数据的部分相关联。当每个后续存储器组的地址范围增大(或减少)时,存储器组可以是连续的。说明性地,标签10-15是虚拟存储器202的行的地址。虚拟存储器202中的行的地址被映射到存储器组的地址,每个地址唯一地标识存储器组和存储器组中的行。例如,虚拟存储器202中的地址10可以映射到与存储器组204中所图示的行相关联的存储器组中的地址,虚拟存储器202中的地址11可以映射到与存储器组206中的所图示的行相关联的存储器组中的地址,虚拟存储器202中的地址12可以映射到与存储器组208中的所图示的行相关联的存储器组中的地址。存储器组中的地址通过B-R表示,其中,B是指示存储器组的变量,并且R是存储器组的行,如所示的,1-1对应于存储器组1中的第1行的地址,1-2对应于体1中的第2行的地址,2-2对应于存储器组2中的第1行的地址,等等。因为在该示例中存在三个存储器组,所以虚拟存储器202中的附加地址可以映射到同一存储器组。说明性地,全部都与虚拟存储器202相关联的地址13、地址14和地址15可以基于映射函数而被分别映射到与存储器组204、206、208中的另一行相关联的存储器组中的地址。映射函数可以是提供在虚拟存储器中的地址与存储器组中的地址之间的一对一映射的散列函数。映射函数可以将虚拟存储器的地址映射到存储器组的地址,使得每个主机将能够成功访问存储器组以进行读取或写入操作。
在另一示例中,访问分布器108可以基于虚拟存储器202中的地址的位来指示虚拟存储器202中的地址被映射到存储器组。说明性地,考虑虚拟存储器202中的地址通过可变地址表示。例如,可变地址可以是23位,并且表示为地址[22:0],其是标识第22位到第0位的值的速记符号,其中,第22位是最高有效位,第0位是最低有效位。地址[22:0]可以是虚拟存储器202中的唯一地标识字节的地址。地址[22:5]可以指示地址的第22位至第5位的值,地址[4:0]可以指示地址的第4位到第0位的值。虚拟存储器202中的可以是32字节的一行可以通过地址[22:5]唯一标识,并且地址[4:0]唯一寻址行的字节。访问分布器108可以基于逻辑运算而将虚拟存储器202中的地址映射到存储器组的地址。指示地址的第8位到第5位的地址[8:5]对应于表示16个值中的一个值的四个位。指示地址的第12位至第9位的地址[12:9]可以是上部位。逻辑运算可以是:
地址[12:9]异或地址[8:5]
这是两个4位数字的逻辑异或(XOR)运算,以产生指示与地址相关联的16个存储器组中的一个存储器组的四位的模式。地址可以被映射到所指示的存储器组的地址。然后,地址[22:9]指示所标识的存储器组中行的地址,并且地址[4:0]指示行中的字节数。异或运算使得虚拟存储器中具有相同地址[8:5]的行被映射到不同页面中的不同存储器组。异或运算将虚拟存储器的地址映射到存储器组的地址,使得每个主机将能够成功访问存储器组以进行读或写操作。
示例函数
图3示出了由多个主机104对多个存储器组102的示例访问。主机1、主机2和主机3可以各自基于虚拟存储器的与数据的部分相关联的地址来访问数据的一部分。映射函数指示虚拟存储器中的与数据的一部分相关联的地址与数据的部分被存储或可以被写入的存储器组中的地址之间的映射。在该示例中,映射函数被表示为映射表320。映射表320将多个主机的访问分布在数据存储系统100中的多个存储器组102上。虚拟存储器的与主机试图访问的数据的部分相关联的地址被示出为分别用于主机1、主机2和主机3的302、304、306。例如,主机1可以试图访问与虚拟存储器中的地址10、11、20和21相关联的数据的部分,主机2可以试图访问与虚拟存储器中的地址10、11、12和13相关联的数据的部分,主机3可以试图访问与虚拟存储器中的地址10、11、12、13、14、15和16相关联的数据的部分。10-21范围内的地址可以被映射到存储器组的地址。在该示例中,地址N和N+10在该示例中可以在同一存储器组中。说明性地,在该示例中,地址10和20可以在同一存储器组中,而地址11和12可以在不同存储器组中。块308的右下角的主机编号(例如,1、2或3)还可以指示哪个主机(例如,主机1、主机2或主机3)试图访问存储器组中的与地址相关联的数据的部分。仲裁器106还可以在两个或更多个的主机尝试在诸如同一时钟周期的同一时间段访问同一存储器组时进行仲裁。在发生冲突的情况下,仲裁器106可以允许第一主机访问一个存储器组,然后提供对第二主机的访问,然后提供对要访问该存储器组的任何附加主机的访问。在该示例中,主机1可以具有2个块的最大访问权限,而主机2和主机3可以分别具有16个块和32个块的最大访问权限。
在示例中,主机可以使用映射表320来将虚拟存储器中的与数据的一部分相关联的虚拟地址映射到存储器组中的物理地址。数据的一部分可以是将作为存储器操作的一部分从存储器组读取或存储在存储器组中的数据块、数据包的一部分或数据单元的一些其他部分。基于存储器组的映射地址,主机然后可以读取存储器组中的数据的一部分或将数据的一部分写入存储器组中。例如,虚拟存储器202中的虚拟地址10可以映射到存储器组1中的物理地址。作为另一示例,虚拟存储器202中的虚拟地址11可以映射到存储器组2中的物理地址。然后,主机可以访问存储器组中的映射地址,以执行与存储器组中的数据的一部分相关联的存储操作,例如读取或写入。
如所示的,在时钟周期1中,主机1、主机2和主机3尝试访问与虚拟存储器中的虚拟地址10相关联的数据的部分。主机可以正试图基于映射表320访问同一物理存储器组。仲裁器106可以允许主机1访问物理存储器组。因为每个物理存储器组允许在一个时钟周期内访问一个主机,所以主机2和主机3可以被拒绝访问。
如所示的,在时钟周期2中,仲裁器允许主机2访问与虚拟存储器中的虚拟地址10相关联的数据的部分。主机1可以希望访问与虚拟地址11相关联的数据的部分,所述数据的部分基于映射表120和与虚拟地址10相关联的数据的部分在不同存储器组中。访问与虚拟地址11相关联的数据的部分之所以被允许是因为与虚拟地址10相关联的数据的部分基于映射表320和与虚拟地址11相关联的数据的部分在不同物理存储器组中。因为主机2被仲裁器允许在时钟周期中进行访问,所以主机3无法访问与虚拟地址10相关联的数据的部分。
如所示的,在时钟周期3中,仲裁器允许主机3访问与虚拟地址10相关联的数据的部分。主机2被允许访问与虚拟地址11相关联的数据的部分,所述数据的部分基于映射表320和与虚拟地址10相关联的数据的部分在不同物理存储器组中。因为主机1已经执行了其最大突发访问长度的两个块的最大访问,所以主机1不被允许访问与虚拟地址10相关联的数据的部分。
如所示的,在时钟周期4中,主机1访问与虚拟地址20相关联的数据的部分。主机3访问与虚拟地址11相关联的数据的部分,所述数据的部分基于映射表320和与虚拟地址20相关联的数据的部分在不同的物理存储器组中。因为与地址12相关联的数据的部分基于映射表320和与虚拟地址20相关联的数据的部分或与虚拟地址11相关联的数据的部分不在同一物理存储器组中,所以主机2访问与虚拟地址12相关联的数据的部分。
如所示的,在时钟周期5中,主机1访问与虚拟地址21相关联的数据的部分。主机3访问与虚拟地址12相关联的数据的部分,所述数据的部分基于映射表320和与虚拟地址21相关联的数据的部分在不同的物理存储器组中。因为主机2基于映射表320不和与虚拟地址21相关联的数据的部分或与虚拟地址12相关联的数据的部分相同的物理存储器组相关联,所以主机2访问与虚拟地址13相关联的数据的部分。
这个过程可以持续直到主机完成它的访问为止。映射表将虚拟存储器中的与数据的部分相关联的地址映射到不同存储器组的地址,以提供与每个主机访问的数据在同一存储器组中的情况相比更高的吞吐量和更低的延迟。如果访问在同一存储器组中,则主机1将仅基于其最大访问量来突发访问两个块。仲裁器106然后可以在允许主机1完成其突发访问之前允许主机2并且然后允许主机3突发访问。与示例中的5个周期相比,这可能使得主机1访问需要13个时钟周期来访问数据。
图4是与将主机的访问分布到多个存储器组102相关联的功能的流程图400。在示例中,这些功能可以通过图1的示例中的存储系统100来执行。这些功能从402开始并且进行到412。
在402处,虚拟存储器中的与数据的第一部分相关联的地址被第一主机接收。第一主机可以需要读取数据的第一部分或写入数据的第一部分。在示例中,存储系统100可以是诸如计算系统、网络装置或存储外壳或者具体地是个人计算机、服务器、大型机、智能电话、游戏系统、机顶盒、通信设备等的较大系统的一部分。第一主机可以从较大系统中的子系统接收地址。
在404处,虚拟存储器中的与数据的第一部分相关联的地址被映射到第一存储器组中的与数据的第一部分相关联的地址。第一存储器组可以是物理单端口存储器。可以使用通过访问分布器108限定的第一主机的映射函数来映射地址,使得主机将能够成功访问第一存储器组以进行读取或写入操作。映射函数可以采用散列函数、逻辑运算或映射表等形式。
在406处,第一主机在时间段内访问第一存储器组中的与数据的第一部分相关联的地址。访问可以是读取存储器组的地址中的数据的部分或将数据的部分写入存储器组的地址。在示例中,时间段可以是时钟周期。
在408处,虚拟存储器中的与数据的第二部分相关联的地址由第二主机接收。第二主机可以需要读取数据的第二部分或写入数据的第二部分。第二主机可以从较大系统中的子系统接收地址。
在410处,虚拟存储器中的与数据的第二部分相关联的地址被映射到第二存储器组中的与数据的第二部分相关联的地址。第二存储器组可以是与第一存储器组分离的物理单端口存储器。可以使用通过访问分布器108限定的第二主机的映射函数来映射地址,使得第二主机将能够成功地访问第二存储器组以进行读取或写入操作。该映射函数可以与由第一主机使用的映射函数相同。在一些示例中,映射函数可以在第一主机与第二主机之间共享,例如,在访问分布器108访问的共享存储器中。
在412处,第二主机访问第二存储器组中的与该时间段中的数据的第二部分相关联的地址。访问可以是读取存储器组的地址中的数据的部分或将数据的部分写入存储器组的地址。在示例中,通过第二主机的访问与通过第一主机的访问可以是并发的,例如在相同的时钟周期中。
在示例中,访问可以基于映射函数分布在存储器组上,使得数据的部分可以由多个主机以高吞吐量和低延迟访问,并且减少主机之间的冲突。取决于访问,分布可以在存储器组上均匀或在存储器组上不均匀。
虽然已经结合作为示例提出的其特定实施例描述了本公开的方面,但是可以对示例做出替代、修改和变化。因此,本文中阐述的实施例意在是说明性的而非限制性的。在不脱离下面阐述的权利要求的范围的情况下可以做出改变。
Claims (20)
1.一种用于改善数据存储系统中的存储器访问的方法,所述方法包括:
在第一主机处接收虚拟存储器中的第一虚拟地址,所述虚拟存储器中的所述第一虚拟地址根据映射函数对应于由所述第一主机要访问的第一物理存储器组的第一物理地址;
通过所述第一主机访问所述第一物理地址,以执行第一读取操作以读取存储在所述第一物理地址处的所述第一物理存储器组中的数据单元的第一部分,或执行第一写入操作以将所述数据单元的所述第一部分写入到在所述第一物理地址处的所述第一物理存储器组;
在第二主机处接收虚拟存储器中的第二虚拟地址,所述虚拟存储器中的所述第二虚拟地址根据所述映射函数对应于由所述第二主机要访问的第二物理存储器组的第二物理地址;以及
与由所述第一主机访问所述第一物理地址同时,由所述第二主机访问所述第二物理地址,以执行第二读取操作以读取存储在所述第二物理地址处的所述第二物理存储器组中的所述数据单元的第二部分,或执行第二写入操作以将所述数据单元的所述第二部分写入到在所述第二物理地址处的所述第二物理存储器组。
2.根据权利要求1所述的方法,其中所述映射函数将所述虚拟存储器中的与所述数据单元的第一部分相关联的所述第一虚拟地址映射到所述第一物理存储器组的与所述数据单元的第一部分相关联的所述第一物理地址,并且将所述虚拟存储器中的与所述数据单元的第二部分相关联的所述第二虚拟地址映射到所述第二物理存储器组中的与所述数据单元的第二部分相关联的所述第二物理地址。
3.根据权利要求1所述的方法,其中所述虚拟存储器中的与所述数据单元的第一部分相关联的所述第一虚拟地址、以及所述虚拟存储器中的与所述数据单元的第二部分相关联的所述第二虚拟地址与所述虚拟存储器中的连续行相关联,并且所述第一物理存储器组中的第一物理地址以及所述第二物理存储器组中的第一物理地址标识连续的存储器组。
4.根据权利要求1所述的方法,其中所述映射函数基于对所述虚拟存储器中的与所述数据单元的第一部分相关联的所述第一虚拟地址的位的逻辑异或(XOR)运算来将所述虚拟存储器中的与所述数据单元的第一部分相关联的所述第一虚拟地址映射到所述第一物理地址,所述逻辑XOR运算的输出标识与所述数据单元的第一部分相关联的所述第一物理存储器组。
5.根据权利要求4所述的方法,其中所述数据单元是32字节,所述虚拟存储器中的与所述数据单元的第一部分相关联的所述第一虚拟地址是通过变量地址表示的23位,其中第22位是最高有效位并且第0位是最低有效位,并且所述逻辑XOR运算是地址的第12位至第9位与地址的第8位至第5位进行XOR运算,以标识与所述数据单元的第一部分相关联的所述第一物理存储器组。
6.根据权利要求1所述的方法,其中所述第一主机基于所述第一物理地址访问所述第一物理存储器组的一部分,或者所述第二主机基于所述第二物理地址访问所述第二物理存储器组的一部分。
7.根据权利要求1所述的方法,其中所述第一物理存储器组与所述第二物理存储器组是相同的存储器组,所述方法还包括:仲裁由所述第一主机以及所述第二主机对所述第一物理存储器组以及所述第二物理存储器组的访问。
8.根据权利要求1所述的方法,其中所述第一物理存储器组以及所述第二物理存储器组均为单端口存储器组。
9.根据权利要求1所述的方法,其中所述映射函数是将所述虚拟存储器的虚拟地址映射到物理存储器组的物理地址的映射表,所述映射表由所述第一主机与所述第二主机共享。
10.根据权利要求1所述的方法,其中由所述第一主机以及所述第二主机的并发访问在一个时钟周期内。
11.一种存储系统,包括:
第一存储器组;
第二存储器组;
第一主机,被配置为:
接收虚拟存储器中的第一虚拟地址,所述虚拟存储器中的所述第一虚拟地址根据映射函数对应于由所述第一主机要访问的第一物理存储器组的第一物理地址;
访问所述第一物理地址,以执行第一读取操作以读取存储在所述第一物理地址处的所述第一物理存储器组中的数据单元的第一部分,或执行第一写入操作以将所述数据单元的所述第一部分写入到在所述第一物理地址处的所述第一物理存储器组;
第二主机,被配置为:
接收虚拟存储器中的第二虚拟地址,所述虚拟存储器中的所述第二虚拟地址根据所述映射函数对应于由所述第二主机要访问的第二物理存储器组的第二物理地址;
与由所述第一主机访问所述第一物理地址同时,访问所述第二物理地址,以执行第二读取操作以读取存储在所述第二物理地址处的所述第二物理存储器组中的所述数据单元的第二部分,或执行第二写入操作以将所述数据单元的所述第二部分写入到在所述第二物理地址处的所述第二物理存储器组。
12.根据权利要求11所述的存储系统,其中所述虚拟存储器以及所述存储器组配置有连续地址。
13.根据权利要求11所述的存储系统,其中所述虚拟存储器中的与所述数据单元的第一部分相关联的所述第一虚拟地址、以及所述虚拟存储器中的与所述数据单元的第二部分相关联的所述第二虚拟地址与所述虚拟存储器中的连续行相关联,以及其中由所述第一主机访问的所述第一物理地址以及由所述第二主机访问的所述第二物理地址与连续的存储器组相关联。
14.根据权利要求11所述的存储系统,其中所述第一主机被配置为基于对所述虚拟存储器中的与所述数据单元的第一部分相关联的所述第一虚拟地址的位的逻辑异或(XOR)运算来将所述虚拟存储器中的与所述数据单元的第一部分相关联的所述第一虚拟地址映射到所述第一物理地址,所述逻辑XOR运算的输出标识与所述数据单元的第一部分相关联的所述第一存储器组。
15.根据权利要求14所述的存储系统,其中所述数据单元是32字节,所述虚拟存储器中的与所述数据单元的第一部分相关联的所述第一虚拟地址是通过变量地址表示的23位,其中第22位是最高有效位并且第0位是最低有效位,并且所述逻辑XOR运算是地址的第12位至第9位与地址的第8位至第5位进行XOR运算,以标识与所述数据单元的第一部分相关联的所述第一物理存储器组。
16.根据权利要求11所述的存储系统,其中在一个时钟周期内同时地,所述第一主机被配置为访问所述第一物理地址,并且所述第二主机被配置为访问所述第二物理地址。
17.根据权利要求11所述的存储系统,其中所述第一物理存储器组与所述第二物理存储器组是相同的存储器组,所述存储系统还包括仲裁器,所述仲裁器被配置为仲裁对所述第一物理存储器组以及所述第二物理存储器组的访问。
18.根据权利要求11所述的存储系统,其中所述第一物理存储器组以及所述第二物理存储器组是单端口存储器组。
19.根据权利要求11所述的存储系统,其中所述映射函数是将所述虚拟存储器的虚拟地址映射到存储器组的物理地址的映射表,所述映射表由所述第一主机与所述第二主机共享。
20.根据权利要求11所述的存储系统,其中所述第一主机被配置为基于所述第一物理地址访问所述第一存储器组的一部分,或者所述第二主机被配置为基于所述第二物理地址访问所述第二存储器组的一部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962810227P | 2019-02-25 | 2019-02-25 | |
US62/810,227 | 2019-02-25 | ||
PCT/IB2020/000147 WO2020174278A1 (en) | 2019-02-25 | 2020-02-25 | Accelerating access to memory banks in a data storage system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113490923A true CN113490923A (zh) | 2021-10-08 |
Family
ID=71069876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080016432.5A Pending CN113490923A (zh) | 2019-02-25 | 2020-02-25 | 加速对数据存储系统中的存储器组的访问 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11194733B2 (zh) |
EP (1) | EP3931704B1 (zh) |
CN (1) | CN113490923A (zh) |
WO (1) | WO2020174278A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114255793A (zh) * | 2020-11-20 | 2022-03-29 | 台湾积体电路制造股份有限公司 | 存储器器件的写入电路 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805587B1 (en) * | 2006-11-01 | 2010-09-28 | Nvidia Corporation | Memory addressing controlled by PTE fields |
US8397010B1 (en) * | 2007-04-16 | 2013-03-12 | Juniper Networks, Inc. | Convenient, flexible, and efficient management of memory space and bandwidth |
US9442846B2 (en) * | 2009-03-17 | 2016-09-13 | Cisco Technology, Inc. | High speed memory systems and methods for designing hierarchical memory systems |
US8266408B2 (en) * | 2009-03-17 | 2012-09-11 | Memoir Systems, Inc. | System and method for storing data in a virtualized high speed memory system |
US9063841B1 (en) | 2011-08-01 | 2015-06-23 | Marvell Israel (M.L.S.L.) Ltd. | External memory management in a network device |
US9996468B1 (en) | 2011-11-02 | 2018-06-12 | Marvell Israel (M.I.S.L) Ltd. | Scalable dynamic memory management in a network device |
US9658951B1 (en) | 2011-11-02 | 2017-05-23 | Marvell Israel (M.I.S.L) Ltd. | Scalable high bandwidth memory in a network device |
US11099746B2 (en) * | 2015-04-29 | 2021-08-24 | Marvell Israel (M.I.S.L) Ltd. | Multi-bank memory with one read port and one or more write ports per cycle |
KR20180009217A (ko) * | 2016-07-18 | 2018-01-26 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법 |
US10678724B1 (en) * | 2018-12-29 | 2020-06-09 | Intel Corporation | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator |
-
2020
- 2020-02-25 CN CN202080016432.5A patent/CN113490923A/zh active Pending
- 2020-02-25 US US16/800,913 patent/US11194733B2/en active Active
- 2020-02-25 EP EP20731543.3A patent/EP3931704B1/en active Active
- 2020-02-25 WO PCT/IB2020/000147 patent/WO2020174278A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2020174278A1 (en) | 2020-09-03 |
EP3931704A1 (en) | 2022-01-05 |
EP3931704B1 (en) | 2024-01-24 |
US11194733B2 (en) | 2021-12-07 |
US20200272576A1 (en) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318434B2 (en) | Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application | |
US7287101B2 (en) | Direct memory access using memory descriptor list | |
US8437190B2 (en) | Interleaved flash storage system and method | |
US6088772A (en) | Method and apparatus for improving system performance when reordering commands | |
US7222224B2 (en) | System and method for improving performance in computer memory systems supporting multiple memory access latencies | |
US7496711B2 (en) | Multi-level memory architecture with data prioritization | |
US5390308A (en) | Method and apparatus for address mapping of dynamic random access memory | |
US7552292B2 (en) | Method of memory space configuration | |
US20050289317A1 (en) | Method and related apparatus for accessing memory | |
US8412870B2 (en) | Optimized arbiter using multi-level arbitration | |
US11281585B2 (en) | Forward caching memory systems and methods | |
CN109478169A (zh) | 具有灵活地址解码的存储器控制器 | |
US10725902B2 (en) | Methods for scheduling read commands and apparatuses using the same | |
US10152434B2 (en) | Efficient arbitration for memory accesses | |
CN112639748B (zh) | 异步正向缓存存储器系统和方法 | |
CN112602071B (zh) | 正向高速缓存应用程序编程接口系统和方法 | |
KR20180006645A (ko) | 메모리 버퍼를 포함하는 메모리 시스템 | |
CN117389914B (zh) | 缓存系统、缓存写回方法、片上系统及电子设备 | |
US20180188976A1 (en) | Increasing read pending queue capacity to increase memory bandwidth | |
CN113490923A (zh) | 加速对数据存储系统中的存储器组的访问 | |
US6738840B1 (en) | Arrangement with a plurality of processors having an interface for a collective memory | |
WO2018094620A1 (zh) | 一种内存分配方法和设备 | |
US20230004489A1 (en) | Method and nmp dimm for managing address map | |
US11755235B2 (en) | Increasing random access bandwidth of a DDR memory in a counter application | |
KR20230037649A (ko) | 메모리 관리 기술 및 컴퓨터 시스템 |
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 |