CN111143235A - 多内核存储器系统中的逻辑地址分配 - Google Patents
多内核存储器系统中的逻辑地址分配 Download PDFInfo
- Publication number
- CN111143235A CN111143235A CN201911072545.2A CN201911072545A CN111143235A CN 111143235 A CN111143235 A CN 111143235A CN 201911072545 A CN201911072545 A CN 201911072545A CN 111143235 A CN111143235 A CN 111143235A
- Authority
- CN
- China
- Prior art keywords
- cores
- logical addresses
- memory
- range
- memory system
- 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
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
- 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
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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
Abstract
本发明提供一种用于多内核存储器系统的工作负载分配方案。该存储器系统包括存储器装置和控制器,该存储器装置包括块,该控制器包括内核。控制器从主机接收多个逻辑地址;确定多个逻辑地址之中的待分配给内核的逻辑地址的范围;以及基于对多个逻辑地址的模量运算和混排运算,将该范围中的逻辑地址的多个子集分配给内核。
Description
相关申请的交叉引用
本申请要求于2018年11月6日提交的申请号为62/756,137的美国临时申请的权益,该美国临时申请的全部内容通过引用并入本文。
技术领域
本公开的实施例涉及一种用于多内核存储器系统的地址分配方案。
背景技术
计算机环境范例已经转变成可随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
由于使用存储器装置的存储器系统不具有移动部件,因此其提供优异的稳定性、耐用性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、诸如通用闪存(UFS)的具有各种接口的存储卡以及固态驱动器(SSD)。
存储器系统可以包括多个内核。工作负载可以分配在内核之间。
发明内容
本发明的方面涉及一种用于在多内核存储器系统中的多个内核之间分配工作负载的方案。
在一个方面中,多内核存储器系统包括存储器装置,该存储器装置包括多个块,每个块具有与多个逻辑地址中的一个相对应的物理地址;以及控制器,包括多个内核,控制存储器装置对多个块中的至少一个执行操作。控制器从主机接收多个逻辑地址;确定多个逻辑地址之中的待分配给多个内核的逻辑地址的范围,该范围包括多个子集;以及基于对多个逻辑地址的模量(modulo)运算和混排(shuffling)运算,将子集分配给多个内核。
在另一个方面中,提供了一种存储器系统的操作方法。存储器系统包括存储器装置和控制器,该存储器装置包括多个块,每个块具有与多个逻辑地址中的一个相对应的物理地址;该控制器包括多个内核,用于控制存储器装置对多个块中的至少一个执行操作。该方法包括:控制器从主机接收多个逻辑地址;确定多个逻辑地址之中的待分配给多个内核的逻辑地址的范围,该范围包括多个子集;以及基于对多个逻辑地址的模量运算和混排运算,将子集分配给多个内核。
从以下描述,本发明的其它方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的数据处理系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器装置的存储块的电路图。
图4是示出根据本发明的实施例的多内核存储器系统的示图。
图5是示出根据本发明的实施例的内核的示图。
图6A和图6B是示出根据本公开的实施例的工作负载分配方案的示图。
图7是示出典型工作负载分配方案的示例的示图。
图8是示出典型工作负载分配方案的另一示例的示图。
图9是示出根据本发明的实施例的工作负载分配方案的示图。
图10是示出图9的工作负载分配方案的示例的示图。
图11是示出根据本发明的实施例的工作负载分配方案的示例的示图。
图12是示出根据本发明的实施例的计算原始逻辑地址的方法的示图。
图13是示出根据本发明的实施例的工作负载分配方案的比较结果的示图。
具体实施方式
以下参照附图更详细地描述各个实施例。然而,本发明可以以不同的形式实施,并且因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使得本公开是彻底的且完整的,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任意这种短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以以多种方式实施,比如包括进程;设备;系统;在计算机可读存储介质上实现的计算机程序产品;和/或处理器,诸如适于执行存储在联接至处理器的存储器上和/或由联接至处理器的存储器提供的指令的处理器。在本说明书中,这些实施例或本发明可以采用的任意其它形式可以被称为技术方案。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适于执行任务的诸如处理器或存储器的组件可以被实施为暂时配置成在给定时间执行该任务的一般组件或者被制造为执行该任务的特定组件。如本文所使用的,术语“处理器”等是指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
以下提供了本发明的实施例的详细描述以及示出本发明各方面的附图。以下与示出本发明的方面的附图一起提供本发明的实施例的详细描述。结合这些实施例来描述本发明,但是本发明不限于任意实施例。本发明的范围仅由权利要求限定。本发明涵盖在权利要求范围内的许多替换方案、修改方案和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是为了示例的目的;可以在没有一些或全部这些具体细节的情况下,根据权利要求来实施本发明。为清楚起见,没有详细描述与本发明相关的技术领域中已知的技术内容,以免不必要地模糊本发明。
图1是示出根据本发明的实施例的数据处理系统2的框图。
参照图1,数据处理系统2可以包括主机装置5和存储器系统10。存储器系统10可以从主机或主机装置5接收请求并且响应于所接收的请求而操作。例如,存储器装置10可以存储待由主机装置5访问的数据。
主机装置5可以由各种电子装置中的任意一种来实施。在各个实施例中,主机装置5可以包括诸如下列的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在各个实施例中,主机装置5可以包括诸如下列的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器系统10可以由诸如固态驱动器(SSD)和存储卡的各种存储装置中的任意一种来实施。在各个实施例中,存储器系统10可以被设置为诸如下列的电子装置的各种组件中的一种:计算机、超移动个人计算机(PC)(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和传送信息的装置、射频识别(RFID)装置、以及家庭网络的各种电子装置中的一种、计算机网络的各种电子装置中的一种、远程信息处理网络的电子装置中的一种或计算系统的各种组件中的一种。
存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器控制器100可以控制半导体存储器装置200的全部操作。为简单起见,存储器控制器100和半导体存储器装置200有时可以被分别称为控制器100和存储器装置200。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电力线接收电力PWR,并且通过控制线接收控制信号CTRL。根据存储器系统10的设计和配置,控制信号CTRL可以包括命令锁存使能信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及其它操作信号。
存储器控制器100和半导体存储器装置200可以被集成到诸如固态驱动器(SSD)的单个半导体装置中。SSD可以包括用于将数据存储在其中的存储装置。当存储器系统10用于SSD中时,联接至存储器系统10的主机(例如图1的主机装置5)的操作速度可以显著提高。
存储器控制器100和半导体存储器装置200可以被集成到诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被如此集成以配置:个人计算机(PC)存储卡国际协会(PCMCIA)的PC卡、紧凑式闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、尺寸减小的多媒体卡(RS-MMC)、微型版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、安全数字高容量(SDHC)和/或通用闪存(UFS)。
图2是示出根据本发明的实施例的存储器系统的框图。例如,图2的存储器系统可以描绘图1中所示的存储器系统10。
参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置(例如,图1的主机装置5)的请求而操作,并且特别地,存储待由主机装置访问的数据。
存储器装置200可以存储待由主机装置访问的数据。
存储器装置200可以利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或者诸如下列的非易失性存储器装置来实施:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)。
控制器100可以控制数据在存储器装置200中的存储。例如,控制器100可以响应于来自主机装置的请求来控制存储器装置200。控制器100可以将从存储器装置200读取的数据提供至主机装置,并且可以将从主机装置提供的数据存储至存储器装置200中。
控制器100可以包括通过总线160联接的存储装置110、控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140和存储器接口(I/F)150,其中控制组件120可以被实施为诸如中央处理单元(CPU)的处理器。
存储装置110可以用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可以存储由控制器100和存储器装置200使用的用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储装置110可以由诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实施。如上所述,存储装置110可以将主机装置使用的用于读取操作和写入操作的数据存储在存储器装置200中。为了存储数据,存储装置110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制组件120可以控制存储器系统10的一般操作,并且响应于来自主机装置的写入请求或读取请求,控制存储器装置200的写入操作或读取操作。控制组件120可以驱动被称为闪存转换层(FTL)的固件,以控制存储器系统10的一般操作。例如,FTL可以执行诸如逻辑至物理(L2P)映射、损耗均衡、垃圾收集和/或坏块处理的操作。L2P映射被称为逻辑块寻址(LBA)。
ECC组件130可以检测并校正在读取操作期间从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
在各个实施例中,ECC组件130可以基于诸如下列的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、trubo码、trubo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。然而,错误校正不限于这些技术。正因如此,ECC组件130可以包括用于适当的错误校正操作的任意和所有电路、系统或装置。
主机接口140可以通过诸如下列的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、高速非易失性存储器(NVMe)和通用闪存(UFS)。
存储器接口150可以提供控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可以在控制组件120的控制下生成用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在控制组件120的控制下生成用于存储器的控制信号并且处理数据。
存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以是页面缓冲器阵列形式的页面缓冲器阵列250、列解码器260和输入和输出(输入/输出)电路270。存储器单元阵列210可以包括可存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260和输入/输出电路270可以形成存储器单元阵列210的外围电路。外围电路可以对存储器单元阵列210执行编程操作、读取操作或者擦除操作。控制电路220可以控制外围电路。
电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成诸如擦除电压和通过电压的各种电平的操作电压。
行解码器240可以与电压生成电路230和多个存储块211电通信。行解码器240可以响应于由控制电路220生成的行地址在多个存储块211之中选择至少一个存储块,并且将从电压生成电路230提供的操作电压传送至选择的存储块。
页面缓冲器阵列250可以通过位线BL(图3中示出)与存储器单元阵列210联接。页面缓冲器阵列250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线BL进行预充电、在编程操作中将数据传送至选择的存储块并且在读取操作中从选择的存储块接收数据、或临时存储传送的数据。
列解码器260可以将数据传送至页面缓冲器阵列250并且从页面缓冲器阵列250接收数据,或将数据传送至输入/输出电路270并且从输入/输出电路270接收数据。
输入/输出电路270可以通过输入/输出电路270,将从外部装置(例如,图1的存储器控制器100)接收的命令和地址传送至控制电路220,将来自外部装置的数据传送至列解码器260,或将来自列解码器260的数据输出至外部装置。
控制电路220可以响应于命令和地址来控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中所示的存储器单元阵列210的存储块211中的任意一个。
参照图3,示例性存储块211可以包括联接至行解码器240的多个字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可平行于DSL与SSL之间的多个字线布置。
示例性存储块211可以进一步包括分别联接至位线BL0至BLm-1的多个单元串221。每列的单元串可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在所示的实施例中,每个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可以串联联接在选择晶体管DST和SST之间。存储器单元中的每一个可以形成为多层单元。例如,存储器单元中的每一个可以形成为存储1位数据的单层单元(SLC)。存储器单元中的每一个可以形成为存储2位数据的多层单元(MLC)。例如,存储器单元中的每一个可以形成为存储3位数据的三层单元(TLC)。例如,存储器单元中的每一个可以形成为存储4位数据的四层单元(QLC)。
每个单元串中的SST的源极可以联接至公共源极线CSL,并且每个DST的漏极可以联接至相应的位线。单元串中的SST的栅极可以联接至SSL,并且单元串中的DST的栅极可以联接至DSL。横跨单元串的存储器单元的栅极可以联接至相应的字线。也就是说,存储器单元MC0的栅极联接至相应的字线WL0,存储器单元MC1的栅极联接至相应的字线WL1等。联接至特定字线的存储器单元组可以被称为物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
页面缓冲器阵列250可以包括联接至位线BL0至BLm-1的多个页面缓冲器251。页面缓冲器251可以响应于页面缓冲器控制信号而操作。例如,在读取操作或验证操作期间,页面缓冲器251可以临时存储通过位线BL0至BLm-1接收的数据或者感测位线的电压或电流。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括NOR型闪速存储器单元。存储器单元阵列210可以被实施为组合两种或更多种类型的存储器单元的混合闪速存储器,或者控制器嵌入在存储器芯片内的1-NAND闪速存储器。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括NOR型闪速存储器单元。存储器单元阵列210可以被实施为组合两种或更多种类型的存储器单元的混合闪速存储器,或者控制器嵌入在存储器芯片内的1-NAND闪速存储器。
诸如闪速存储器(例如,NAND闪速存储器)的存储器装置可以包括多个存储块(例如,数百到数千个存储块)。每个块通常可以包括多个字线(例如,数百个字线)。联接至每个字线的每个单元可以包括多个逻辑页面。存储器装置可以包括多个存储器单元并且通过编程操作将单元调制成不同状态或编程电压(PV)电平来在每个单元中存储多个位。
图4是示出根据本发明的实施例的多内核存储器系统的示图。
参照图4,多内核存储器系统可以包括控制器100和存储器装置200。控制器100可以包括控制组件120。控制组件120可以包括多个内核410至450。例如,控制组件120可以包括N个内核CORE0至CORE(N-1)。
存储器装置200可以包括多个平面PLANE0至PLANE(k-1)。多个平面中的每一个可以包括多个块BLK0至BLK(p-1)。多个存储块中的每一个包括多个页面。多个页面中的每一个可以具有物理地址。换言之,多个块中的每一个可以具有与多个逻辑地址中的一个相对应的物理地址的区域。
控制器100可以控制存储器装置200对存储器装置200中的至少一个块执行操作(例如,写入操作、读取操作或擦除操作)。对于该操作,控制器100可以接收逻辑地址、将逻辑地址转换为物理地址,并且将该物理地址提供至存储器装置200。逻辑地址和物理地址可以与该操作相关联。可以从图1的主机装置5接收逻辑地址。可以通过通道CH将物理地址提供至存储器装置200中的相应平面的相应块。这样,控制器100可以包括多个内核,并且存储器系统可以具有多内核结构。
图5是示出根据本发明的实施例的内核的示图。通过示例的方式,图5示出图4中的多个内核410至450之中的内核410、420。本发明不限于任何特定数量的内核;任何合适数量的内核可以包括在控制器100中。
参照图5,内核410可以包括诸如主机接口层(HIL)410A、闪存转换层(FTL)410B和闪存接口层(FIL)410C的固件。内核420可以包括主机接口层(HIL)420A、闪存转换层(FTL)420B和闪存接口层(FIL)420C。
每个主机接口层可以控制图2中的主机接口140的操作。例如,主机接口层可以从主机装置5接收与存储器装置200相关联的命令(或请求)、数据和/或逻辑地址(即,逻辑块地址(LBA))。主机接口层可以将命令、数据和/或地址转发到闪存转换层。
每个闪存转换层可以控制图2中的控制组件120的操作。例如,闪存转换层可以从主机接口层接收逻辑地址,并且将逻辑地址转换为物理地址。此外,闪存转换层可以从主机接口层接收命令,并且将命令转换为操作请求。
每个闪存接口层可以控制图2中的存储器接口150的操作。例如,闪存接口层可以从闪存转换层接收物理地址和操作请求,并且通过存储接口150将物理地址和操作请求提供至存储器装置200。
图6A和图6B是示出根据本公开的实施例的工作负载分配方案的示图。通过示例的方式,工作负载分配方案可以由图4中的多个内核410至450之中的所选择内核(例如,CORE0410)的主机接口层(HIL)来执行。
参照6A,所选择内核可以接收逻辑地址或逻辑块地址(LBA)LBA0至LBA(k-1)。此外,所选择内核(例如,CORE0 410)可以将与逻辑块地址LBA0至LBA4的范围相对应的工作负载分配给内核CORE0至CORE4。逻辑块地址LBA0至LBA4的范围是逻辑块地址LBA0至LBA(k-1)之中的待分配给多个内核的逻辑块地址。例如,所选择内核可以将逻辑块地址LBA0分配给CORE0、将逻辑块地址LBA1分配给CORE1、将逻辑块地址LBA2分配给CORE2、将逻辑块地址LBA3分配给CORE3,并且将逻辑块地址LBA4分配给CORE4。所选择内核可以确定用于分配与逻辑块地址LBA0至LBA4的范围相对应的工作负载的内核索引。
参照图6B,所选择内核的主机接口层可以接收逻辑地址或逻辑块地址(LBA)。此外,这种主机接口层可以确定在接收到的逻辑地址之中的待分配给多个内核的逻辑地址的范围LBA_local。该范围可以包括多个子集。例如,每个子集可以包括logN个位(其中,N是内核的总数)并且对应于多个内核中的各个内核。
此外,所选择内核的主机接口层可以将LBA的每个子集分配给多个内核中的各个内核。例如,主机接口层可以将Subset0分配给CORE0的闪存转换层(FTL_0)、将Subset1分配给CORE1的闪存转换层(FTL_1)、将Subset2分配给CORE2的闪存转换层(FTL_2)、将Subset3分配给CORE3的闪存转换层(FTL_3),并且将Subset4分配给CORE4的闪存转换层(FTL_4)。所选择内核的主机接口层可以确定用于分配逻辑块地址范围的每个子集的内核索引。
图7是示出典型工作负载分配方案(即,逻辑块地址(LBA)分配方案)的示例的示图。通过示例的方式,工作负载分配方案可以由两个内核CORE0、CORE1之中的所选择内核CORE0的主机接口层(HIL)来执行。
参照图7,所选择内核的主机接口层可以接收包括LBA0至LBA7的逻辑地址。CORE0的主机接口层可以将偶数逻辑地址LBA(0、2、4、6、......)分配给其自身的内核CORE0的闪存转换层,并且可以将奇数逻辑地址LBA(1、3、5、7、......)分配给奇数内核CORE1的闪存转换层。换言之,可以以奇偶分配方案在内核之间分配逻辑地址。
图8是示出典型工作负载分配方案(即,逻辑块地址(LBA)分配方案)的另一示例的示图。通过示例的方式,工作负载分配方案可以由四个内核CORE0至CORE3之中的所选择内核CORE0的主机接口层(HIL)来执行。
参照图8,所选择内核CORE0的主机接口层可以接收包括LBA0至LBA15的逻辑地址。主机接口层可以基于模量的方案(即,模量4)将接收到的逻辑地址分配给包括其自身的内核CORE0的所有内核。
CORE0的主机接口层可以将逻辑地址LBA(0、4、8、12、......)分配到其自身的内核CORE0的闪存转换层。主机接口层可以将逻辑地址LBA(1、5、9、13、......)分配给内核CORE1的闪存转换层。主机接口层可以将逻辑地址LBA(2、6、10、14、......)分配给内核CORE0至CORE 3之中的内核CORE2的闪存转换层。主机接口层可以将逻辑地址LBA(3、7、11、15、......)分配给内核CORE3的闪存转换层。
根据图8的工作负载分配方案,可以如列表1中所示确定LBA_local和FTL_index。
列表1:
在列表1中,N表示内核的数量,%表示模量运算,LBA_local表示接收到的逻辑地址之中的待分配给内核的逻辑地址范围,并且FTL_index表示指示分配该范围内的逻辑地址的各个子集的内核或该内核的闪存转换层的索引。
例如,内核的数量N为2。在这种情况下,FTL_index=LBA%2,并且LBA_local=LBA/2。再如,如图8所示,内核的数量N为4。在这种情况下,FTL_index=LBA%4,并且LBA_local=LBA/4。
因为所有FTL内核可以彼此完全独立,所以图7和图8的工作负载分配方案可以显著简化FTL设计。此外,因为移除或添加更多内核对于每个FTL而言都是透明的,所以工作负载分配方案可以使其具有可扩展性。此外,根据工作负载分配方案,可以并行执行对几个块的任何顺序读取/写入。
由于就LBA分配而言,上述工作负载分配方案是静态的,因此不可能实现负载平衡。此外,由于仅一个内核处理命令,所以对于n个内核以n个步骤执行的工作负载(即,读取/写入LBA)可能产生显著的性能下降。此外,当传输(traffic)足够随机(例如,对8K排列的地址(aligned addresses)随机写入4K工作负载或随机写入12K工作负载)时,不均衡的工作负载可能会导致诸如固态驱动器(SSD)的整个装置(即存储器系统)过早出现故障,并且甚至很小的不均衡都会产生重大影响。例如,仅几个百分点的偏差可能会导致预期装置在几个月前就出现故障。
因此,期望提供一种负载均衡而无显著性能下降的工作负载分配方案。工作负载分配方案将保留基于模量的工作负载分配方案的所有优点,并且在内核之间添加工作负载的一些内部混排。换言之,工作负载分配方案基于模量和混排方案。
图9是示出根据本发明的实施例的工作负载分配方案(即,FTL_index分配方案)的示图。通过示例的方式,工作负载分配方案可以由系统中所有内核之中的所选择内核(例如,CORE0 410)的主机接口层(HIL)来执行。
参照图9,所选择内核的主机接口层可以接收多个逻辑地址(即LBA)。此外,主机接口层可以将每个逻辑地址分配给内核中的一个。换言之,主机接口层可以确定FTL_index。每个FTL_index指示内核或该内核的相应闪存转换层。FTL_index中的各个索引,例如FTL_A,对应于范围LBA_local内的逻辑地址的各个子集。每个子集可以包括logN个位(其中,N是内核的数量并且是2的幂)并且对应于内核中的一个。
在实施例中,主机接口层可以通过对多个逻辑地址的位执行按位异或(XOR)操作来执行分配操作。因此,主机接口层可以将该范围中的第一子集分配给与按位XOR运算相对应的多个内核中的内核。下面将参照列表2和列表3描述该分配操作。
在另一实施例中,主机接口层可以基于Thue-Morse序列将每个逻辑地址分配给内核中的一个。Thue-Morse序列可以被定义为通过从0开始并且相继附加至当前为止获得的序列的布尔余数(Boolean complement)而获得的二进制序列(0和1的无穷序列)。另一定义是第i个元素等于数i的二进制计数中的1的数量取2的模数。下面将参照图10和图11描述该分配操作的示例。
图10是示出图9中所示的工作负载分配方案的示例的示图。
参照图10,内核CORE0的主机接口层可以接收包括LBA0至LBA38的多个逻辑地址。此外,主机接口层可以基于Thue-Morse序列将每个逻辑地址分配给两个内核CORE0、CORE1中的一个。
内核CORE0的主机接口层可以将逻辑地址LBA(0、3、5、6、......)分配给两个内核CORE0、CORE1中的内核CORE0的闪存转换层FTL。此外,内核CORE0的主机接口层可以将逻辑地址LBA(1、2、4、7、......)分配给两个内核CORE0、CORE1中的内核CORE1的闪存转换层FTL。
图11是示出根据本发明的实施例的工作负载分配方案的示例的示图。通过示例的方式,工作负载分配方案可以由图4中的多个内核410至450之中的所选择内核(例如,CORE0410)的主机接口层(HIL)来执行。
参照图11,所选择内核的主机接口层可以确定待分配给内核的LBA_local。LBA_local表示接收到的逻辑地址LBA之中的逻辑地址的范围。此外,主机接口层可以确定FTL_index。每个FTL_index指示内核或该内核的相应闪存转换层。
在LBA_local 0至LBA_local 3的范围内,CORE0的主机接口层可以将逻辑地址LBA(0、3、5、6)分配到其自身的内核CORE0的闪存转换层FTL,并且将逻辑地址LBA(1,2,4,7)分配给CORE1的闪存转换层FTL。
在LBA_local 4至LBA_local 7的范围内,CORE0的主机接口层可以将逻辑地址LBA(9、10、12、15)分配到内核CORE0的闪存转换层FTL,并且将逻辑地址LBA(8、11、13、14)分配给CORE1的闪存转换层FTL。
在LBA_local 8至LBA_local 11的范围内,CORE0的主机接口层可以将逻辑地址LBA(17、18、20、23)分配到内核CORE0的闪存转换层FTL,并且将逻辑地址LBA(16、19、21、22)分配给CORE1的闪存转换层FTL。
在LBA_local 12至LBA_local 15的范围内,CORE0的主机接口层可以将逻辑地址LBA(24、27、29、30)分配到内核CORE0的闪存转换层FTL,并且将逻辑地址LBA(25、26、28、31)分配给CORE1的闪存转换层FTL。
在LBA_local 16至LBA_local 19的范围内,CORE0的主机接口层可以将逻辑地址LBA(33、34、36、39)分配到内核CORE0的闪存转换层FTL,并且将逻辑地址LBA(32、35、37、38)分配给CORE1的闪存转换层FTL。
在一些实施例中,可以如列表2中所示确定LBA_local和FTL_index。
列表2:
在列表2中,N表示内核的数量,LBA_local表示接收到的逻辑地址之中的待分配给内核的逻辑地址的范围,并且FTL_index表示指示分配该范围内的逻辑地址的每个子集的内核或该内核的闪存转换层的索引。
在一些实施例中,所选择内核的主机接口层可以基于总逻辑地址LBA和内核的数量N,即通过将LBA除以N,来确定逻辑地址LBA_local的范围。
在一些实施例中,所选择内核的主机接口层可以将总逻辑地址LBA划分成多个子集,以确定FTL_index。每个子集可以具有logN个位的长度。此外,可以对多个子集执行按位异或运算(即,bitwise_xor或bitwise_XOR运算)。换言之,可以对子集Subset0至Subset4的相应位执行bitwise_xor运算。例如,当每个子集包括2个位时,可以对子集Subset0至Subset4的最高有效位(MSB)执行bitwise_xor运算,并且可以对子集Subset0到Subset4的最低有效位(LSB)执行bitwise_xor运算。
列表3中示出确定LBA_local和FTL_index的示例。
列表3:
在列表3中,“0x”表示以下数字是十六进制数字,“0b”表示以下数字是二进制数字。例如,“0x03A4”表示LBA为十六进制数“03A4”,“0b100”表示N为二进制数“100”。此外,LBA“0b0000'0011'1010'0100”中的符号“'”表示二进制的4位(例如0100)对应于十六进制的1位(例如4)。
当LBA为0x03A4=0b0000'0011'1010'0100并且N为0x04=0b100时,可以通过计算LBA/N=0b0000'0000'1110'1001=0x00E9来确定LBA_local。
可以通过对多个逻辑地址LBA执行按位异或运算(即,bitwise_xor运算或bitwise_XOR运算)来确定FTL_index。多个逻辑地址LBA可以包括子集“0000'0011'1010'0100”。由于Subset0具有值00,Subset1具有值00,Subset2具有值00,Subset3具有值11,Subset4具有值10,Subset5具有值10,Subset6具有值01,并且子集7具有值00,所以通过bitwise_xor运算([0b00、0b00、0b00、0b11、0b10、0b10、0b01、0b00])=0b10来确定FTL_index。
在逻辑地址的范围被确定并且该范围中的多个子集的每个子集被分配给多个内核中的每一个之后,所选择内核可以通过通道对存储器装置200中的多个块之中的至少一个块执行操作(例如,读取操作、写入操作或擦除操作)。至少一个块可以具有与多个内核的范围相对应的物理地址。
图12是示出根据本发明的实施例的计算原始逻辑地址的方法的示图。
参照图12,原始逻辑地址LBA可以根据如列表4所示的LBA_local和FTL_index计算。
列表4:
在列表4中,首先可以对LBA_local的子集执行按位异或运算,每个子集对应于logN个位。其次,可以对按位异或运算和FTL_index的结果执行XOR运算。再次,将LBA_local的值乘以内核的数量N。最后,将XOR运算的结果和相乘结果LBA_local*N相加,以计算原始逻辑地址LBA。
在列表5中示出了原始逻辑地址LBA的计算示例。
列表5:
在列表5中,偏移量对应于原始逻辑地址LBA和LBA_local之间的差异。由于FTL_index和LBA_local是已知值,因此可以计算偏移量。当FTL_index为0b10并且LBA_local为0x00E9=0b0000'0000'1110'1001时,可以通过列表5中的公式计算偏移量。当计算偏移量时,可以基于偏移量、LBA_local和内核的数量N来计算原始逻辑地址LBA。
如上所述,实施例可以以模量和混排方案简单且快速地计算LBA_local和FTL_index。此外,实施例可以根据LBA_local和FTL_index来计算原始逻辑地址LBA。此外,如果N个LBA的顺序范围中的第一LBA是N的倍数,则实施例可以在N个内核之间划分N个LBA的顺序范围。该范围中的所有LBA可以映射到针对FTL_index中的不同索引的相同的LBA_local,使得LBA中仅最后logN位不同。此外,内核之间的分配策略可能会针对不同范围而变化。在范围变化后,LBA_local变化,因此下一范围的FTL_index排列与先前范围的FTL_index排列不同。
图13是示出根据本发明的实施例的工作负载分配方案的比较结果的示图。
参照图13,1300A表示图8和列表1中的基于模量的工作负载分配方案而1300B表示图11和列表2中基于模量和混排的工作负载分配方案。通过示例的方式,工作负载分配方案可以由图4中的两个内核CORE0和CORE1之中的所选择内核(例如,CORE0 410)的主机接口层(HIL)来执行。此外,考虑LBA的序列S1={0、1、2、3、4、5、6、7、......},S2={0、2、4、6、8、10、12、14、......},S3={0、4、8、12、16、20、24、28、......}。方案1300A卡顿(stuck)在序列S2和S4上,而方案1300B处理序列而无卡顿。换言之,与方案1300A相比,方案1300B在负载均衡方面具有优势。
另外,可以检查工作负载分配方案的一些属性。可以分析诸如最差FTL共享(worstFTL share)和由某个FTL处理的连续LBA的最大数量的两个属性。最差FTL共享可能是由一个FTL处理的LBA序列的LBA的最大百分比。由特定FTL处理的连续LBA的最大数量可以是具有相同FTL_index值的LBA的最大范围的长度。
对于N为4、d为2、长度为10并且LBA=[0、2、4、6、8、10、12、14、16、18]的情况,列表6中可以示出方案1300A和1300B的两个特性。
列表6:
对于其它情况,表1和表2中可以示出方案1300A和1300B的两个属性。表1表示最差FTL共享(WS),表2表示由某个FTL处理的连续LBA的最大数量(M)。其它情况可以提供表1和表2以检查一些算术序列的一些属性。可以进行1000次测试,其中连续元素之间的差d为从1至1000,长度为10000。
表1
表2
表1和表2证明与方案1300A相比,方案1300B减少了最差FTL共享(WS)和由某个FTL处理的连续LBA的最大数量(M)。这样,工作负载分配方案1300B保留了基于模量的工作负载分配方案1300A的所有优点,并且在最差FTL共享(WS)和由特定FTL处理的连续LBA的最大数量(M)方面具有优势。换言之,与方案1300A相比,方案1300B在性能方面具有优势。
如上所述,实施例提供了能够基于模量和混排简单且快速地计算LBA_local和FTL_index的工作负载分配方案。此外,实施例根据LBA_local和FTL_index计算原始逻辑地址LBA。尤其是,上述基于模量和混排的工作负载分配方案具有基于模量的工作负载分配方案的优点,而且也可以平衡工作负载而无显著性能下降。
虽然出于清楚和理解的目的,已经详细说明并描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的是,存在实施本发明的许多替代方式。因此,所公开的实施例是说明性的而非限制性的。本发明旨在涵盖落入权利要求范围内的所有修改和替换。
Claims (16)
1.一种存储器系统,包括:
存储器装置,包括多个块,每个块具有与多个逻辑地址中的一个相对应的物理地址;以及
控制器,包括多个内核,控制所述存储器装置对所述多个块中的至少一个执行操作,所述控制器:
从主机接收所述多个逻辑地址;
确定所述多个逻辑地址之中的待分配给所述多个内核的逻辑地址的范围,所述范围包括多个子集;以及
基于对所述多个逻辑地址的模量运算和混排运算,将所述子集分配给所述多个内核。
2.根据权利要求1所述的存储器系统,其中所述多个内核中的每一个包括主机接口层,即HIL和闪存转换层,即FTL。
3.根据权利要求2所述的存储器系统,其中所述多个内核中的所选择内核中的主机接口层执行接收、确定和分配。
4.根据权利要求1所述的存储器系统,其中所述控制器基于所述多个逻辑地址和所述多个内核的数量来确定所述范围。
5.根据权利要求1所述的存储器系统,其中所述控制器基于Thue-Morse序列来分配所述子集。
6.根据权利要求1所述的存储器系统,其中所述控制器对所述多个逻辑地址的位执行按位异或运算,即按位XOR运算,并且将所述范围中的第一子集分配给与所述按位XOR运算相对应的所述多个内核中的内核。
7.根据权利要求6所述的存储器系统,其中所述控制器基于所述范围的位、所述多个内核的分配结果和数量来进一步计算所述多个逻辑地址。
8.根据权利要求1所述的存储器系统,其中所述控制器进一步对所述多个块之中的具有与所述多个内核的范围相对应的物理地址的块执行操作。
9.一种存储器系统的操作方法,所述存储器系统包括存储器装置和控制器,所述存储器装置包括多个块,每个块具有与多个逻辑地址中的一个相对应的物理地址;所述控制器包括多个内核,控制所述存储器装置对所述多个块中的至少一个执行操作,所述方法包括:
从主机接收所述多个逻辑地址;
确定所述多个逻辑地址之中的待分配给所述多个内核的逻辑地址的范围,所述范围包括多个子集;以及
基于对所述多个逻辑地址的模量运算和混排运算,将所述子集分配给所述多个内核。
10.根据权利要求9所述的方法,其中所述多个内核中的每一个包括主机接口层,即HIL和闪存转换层,即FTL。
11.根据权利要求10所述的方法,其中所述多个内核中的所选择内核中的主机接口层执行接收、确定和分配。
12.根据权利要求9所述的方法,其中确定逻辑地址的范围包括基于所述多个逻辑地址和所述多个内核的数量来确定所述范围。
13.根据权利要求9所述的方法,其中基于Thue-Morse序列分配所述子集。
14.根据权利要求9所述的方法,其中分配所述子集包括:
对所述多个逻辑地址的位执行按位异或运算,即按位XOR运算;以及
将所述范围中的第一子集分配给与所述按位XOR运算相对应的所述多个内核中的内核。
15.根据权利要求14所述的方法,进一步包括基于所述范围的位、所述多个内核的分配结果和数量来计算所述多个逻辑地址。
16.根据权利要求9所述的方法,进一步包括对所述多个块之中的具有与所述多个内核的范围相对应的物理地址的块执行操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862756137P | 2018-11-06 | 2018-11-06 | |
US62/756,137 | 2018-11-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111143235A true CN111143235A (zh) | 2020-05-12 |
Family
ID=70459860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911072545.2A Pending CN111143235A (zh) | 2018-11-06 | 2019-11-05 | 多内核存储器系统中的逻辑地址分配 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11681554B2 (zh) |
CN (1) | CN111143235A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114047886A (zh) * | 2022-01-13 | 2022-02-15 | 苏州浪潮智能科技有限公司 | 一种nvme命令处理方法、系统、电子设备及存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020174428A2 (en) * | 2019-02-26 | 2020-09-03 | Marvell Asia Pte, Ltd. | Cache management of logical-physical translation metadata |
KR20210044083A (ko) * | 2019-10-14 | 2021-04-22 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이의 동작 방법 |
US11037635B1 (en) * | 2020-02-06 | 2021-06-15 | Sandisk Technologies Llc | Power management for multi-plane read operations |
KR20210142477A (ko) * | 2020-05-18 | 2021-11-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
EP4246336A3 (en) * | 2020-07-15 | 2023-12-06 | Samsung Electronics Co., Ltd. | Storage controller and an operation method of the storage controller |
KR20220009523A (ko) | 2020-07-15 | 2022-01-25 | 삼성전자주식회사 | 스토리지 컨트롤러, 및 스토리지 컨트롤러의 동작 방법 |
KR20230092227A (ko) * | 2021-12-17 | 2023-06-26 | 삼성전자주식회사 | 멀티코어 프로세서 및 스토리지 장치 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6731599B1 (en) * | 1999-07-01 | 2004-05-04 | Nortel Networks Limited | Automatic load sharing-trunking |
US20050015567A1 (en) * | 2003-07-15 | 2005-01-20 | Ofir Zohar | Distributed independent cache memory |
US20140019579A1 (en) * | 2010-11-09 | 2014-01-16 | Cleversafe, Inc. | Transferring data of a dispersed storage network |
CN104102458A (zh) * | 2014-06-27 | 2014-10-15 | 北京兆易创新科技股份有限公司 | 多核cpu的负载均衡方法、多核cpu及固态硬盘 |
US20160154733A1 (en) * | 2014-12-01 | 2016-06-02 | Samsung Electronics Co., Ltd. | Method of operating solid state drive |
US20180189187A1 (en) * | 2016-12-30 | 2018-07-05 | Western Digital Technologies, Inc. | Recovery of validity data for a data storage system |
CN108280033A (zh) * | 2017-01-04 | 2018-07-13 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7051184B2 (en) * | 2003-05-06 | 2006-05-23 | Sun Microsystems, Inc. | Method and apparatus for mapping memory addresses to corresponding cache entries |
JP2009009194A (ja) * | 2007-06-26 | 2009-01-15 | Hitachi Ltd | 消費電力を削減する機能を備えたストレージシステム |
US8589575B2 (en) * | 2010-08-05 | 2013-11-19 | Citrix Systems, Inc. | Systems and methods for IIP address sharing across cores in a multi-core system |
US9141541B2 (en) * | 2013-09-20 | 2015-09-22 | Advanced Micro Devices, Inc. | Nested channel address interleaving |
KR102161448B1 (ko) | 2014-02-03 | 2020-10-05 | 삼성전자 주식회사 | 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법 |
US20170075816A1 (en) * | 2014-04-24 | 2017-03-16 | Hitachi, Ltd. | Storage system |
KR20180041037A (ko) | 2016-10-13 | 2018-04-23 | 삼성전자주식회사 | 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법 |
GB2566986A (en) * | 2017-09-29 | 2019-04-03 | Evonetix Ltd | Error detection during hybridisation of target double-stranded nucleic acid |
-
2019
- 2019-11-05 CN CN201911072545.2A patent/CN111143235A/zh active Pending
- 2019-11-06 US US16/676,102 patent/US11681554B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6731599B1 (en) * | 1999-07-01 | 2004-05-04 | Nortel Networks Limited | Automatic load sharing-trunking |
US20050015567A1 (en) * | 2003-07-15 | 2005-01-20 | Ofir Zohar | Distributed independent cache memory |
US20140019579A1 (en) * | 2010-11-09 | 2014-01-16 | Cleversafe, Inc. | Transferring data of a dispersed storage network |
CN104102458A (zh) * | 2014-06-27 | 2014-10-15 | 北京兆易创新科技股份有限公司 | 多核cpu的负载均衡方法、多核cpu及固态硬盘 |
US20160154733A1 (en) * | 2014-12-01 | 2016-06-02 | Samsung Electronics Co., Ltd. | Method of operating solid state drive |
US20180189187A1 (en) * | 2016-12-30 | 2018-07-05 | Western Digital Technologies, Inc. | Recovery of validity data for a data storage system |
CN108280033A (zh) * | 2017-01-04 | 2018-07-13 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114047886A (zh) * | 2022-01-13 | 2022-02-15 | 苏州浪潮智能科技有限公司 | 一种nvme命令处理方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11681554B2 (en) | 2023-06-20 |
US20200142744A1 (en) | 2020-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884947B2 (en) | Methods and memory systems for address mapping | |
US11681554B2 (en) | Logical address distribution in multicore memory system | |
US10997017B2 (en) | Neighbor assisted correction error recovery for memory system and method thereof | |
CN109428606B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
CN110751974A (zh) | 存储器系统和用于优化读取阈值的方法 | |
CN110442529B (zh) | 可配置的存储器系统及配置和使用该存储器系统的方法 | |
CN109800178B (zh) | 垃圾收集方法以及用于混合地址映射的存储器系统 | |
US20210020217A1 (en) | Encoder for memory system and method thereof | |
US11367488B2 (en) | Memory system and method for read operation based on grouping of word lines | |
CN114944176A (zh) | 用于非对称管芯封装的超级块链接系统和方法 | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
CN112416298A (zh) | 闪速存储器的基于原始读取的物理不可克隆功能 | |
CN113515466B (zh) | 用于多内核之间动态逻辑块地址分布的系统和方法 | |
US11210008B2 (en) | Memory system for multi-clustering read thresholds and method thereof | |
US11087846B1 (en) | Memory system with single decoder, multiple memory sets and method for decoding multiple codewords from memory sets using the single decoder | |
US11366718B2 (en) | Optimal read bias tracking system and method thereof | |
US11356123B2 (en) | Memory system with low-complexity decoding and method of operating such memory system | |
CN110928722A (zh) | 存储器系统以及存储器系统的操作方法 | |
CN110941567A (zh) | 用于存储装置中数据模式的数据路径保护奇偶校验值确定 | |
CN111161781A (zh) | 用于处理编程错误的存储器系统及其方法 | |
US11502703B2 (en) | Descrambler for memory systems and method thereof | |
CN110069428B (zh) | 系统数据压缩和重建方法及系统 | |
CN108073469B (zh) | 用于通用产品代码的数据映射方案 | |
CN112599180A (zh) | 用于存储器系统的解码器及其方法 | |
CN115708164A (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 |