CN110806839A - 存储控制的方法、记忆装置、存储器控制器及存储服务器 - Google Patents

存储控制的方法、记忆装置、存储器控制器及存储服务器 Download PDF

Info

Publication number
CN110806839A
CN110806839A CN201910723056.2A CN201910723056A CN110806839A CN 110806839 A CN110806839 A CN 110806839A CN 201910723056 A CN201910723056 A CN 201910723056A CN 110806839 A CN110806839 A CN 110806839A
Authority
CN
China
Prior art keywords
disk
pages
channels
memory
storage server
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
Application number
CN201910723056.2A
Other languages
English (en)
Other versions
CN110806839B (zh
Inventor
杨宗杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN110806839A publication Critical patent/CN110806839A/zh
Application granted granted Critical
Publication of CN110806839B publication Critical patent/CN110806839B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了在存储服务器中进行存储控制的方法、记忆装置及其存储器控制器、以及存储服务器,所述方法包括:针对设置于所述存储服务器的多个记忆装置中的任一记忆装置,分配所述记忆装置中的多个通道中的一通道以供对应于在所述存储服务器上执行的多个线程中的一线程的存取控制,其中所述存储服务器组态所述多个记忆装置以形成容错式磁盘阵列;以及依据预定安排规则将信息写入所述多个记忆装置的各组页面以作为于一系列的逻辑存取单元中的一逻辑存取单元中的多个页面,以藉助于分配所述多个通道中的所述通道给所述线程来使得所述各组页面分别被依序写入所述多个记忆装置。通过本发明,存储服务器能够具有更小的写入放大索引。

Description

存储控制的方法、记忆装置、存储器控制器及存储服务器
技术领域
本发明关于数据存储,尤指一种用于在一存储服务器中进行存储控制的方法以及装置,例如,所述存储服务器的一容错式磁盘阵列(Redundant Array of IndependentDisks,RAID)可被实施为一全闪存阵列(all flash array)。
背景技术
当一传统的容错式磁盘阵列(Redundant Array of Independent Disks,简称为“RAID”)以多个固态硬盘(Solid State Drive,SSD)来实施时,写入放大索引(writeamplification index,WAI)相当高,特别是在一全闪存阵列(all flash array)存储服务器。例如,三个数据组(data set)可通过两个校验码组(parity-code set)来保护,且写入一数据组的运作在传统的RAID中可能需要三个读取运作以及三个写入运作以确保传统的RAID能妥善地运作,其中其写入放大索引等于三。由于在所述多个固态硬盘的每一者中的存取闪存的管理相当复杂,其写入放大索引会达到二。于是,***的整体写入放大索引会是上述两个写入放大索引的乘积,诸如六(即写入放大索引等于六)。因此,需要一种新颖的方法以及相关架构,以在没有副作用或较不会带来副作用的情况下解决这些问题。
发明内容
因此,本发明的一目的在于公开一种用于在一存储服务器中进行存储控制的方法以及装置,以解决上述问题。
本发明的另一目的在于公开一种用于在一存储服务器中进行存储控制的方法以及装置,以在没有副作用或较不会带来副作用的情况下达到最佳(optimal)效能。
本发明的至少一实施例公开一种用于在一存储服务器中进行存储控制的方法,其中所述方法是应用于所述存储服务器。所述方法可包括:针对设置于所述存储服务器的多个记忆装置中的任一记忆装置,分配(assign)所述记忆装置中的多个通道中的一通道以供对应于在所述存储服务器上执行的多个线程(thread)中的一线程的存取控制,其中所述存储服务器组态(configure)所述多个记忆装置以形成所述存储服务器的一容错式磁盘阵列(Redundant Array of Independent Disks,RAID);以及于将一系列的逻辑存取单元(logical access unit,LAU)存储至所述容错式磁盘阵列的期间,依据一预定安排规则将信息写入所述多个记忆装置的各组页面(page)以作为于所述系列的逻辑存取单元中的一逻辑存取单元中的多个页面,以藉助于分配所述多个通道中的所述通道给所述线程来使得所述各组页面分别被依序写入所述多个记忆装置,其中所述各组页面中的一组页面代表所述多个记忆装置中的一对应的记忆装置的多组页面中的一组。
本发明的至少一实施例公开一种用来依据上述方法来控制所述记忆装置的运作的存储器控制器,其中所述记忆装置可包括所述存储器控制器以及一非挥发性存储器(non-volatile memory,NV memory),且所述非挥发性存储器可包括分别对应于所述多个通道的多组非挥发性存储器组件。所述存储器控制器是用来分别通过所述多个通道来对所述多组非挥发性存储器组件进行存取运作。尤其是,所述存储器控制器是用来将所述多个通道中的所述通道分配为用于所述线程的一专用通道。
本发明的至少一实施例公开一种依据上述方法来运作的所述记忆装置。所述记忆装置可包括一非挥发性存储器,其中所述非挥发性存储器包括分别对应于所述多个通道的多组非挥发性存储器组件;且所述记忆装置可还包括用来控制所述记忆装置的运作的一存储器控制器,其中所述存储器控制器分别通过所述多个通道来对所述多组非挥发性存储器组件进行存取运作。
本发明的至少一实施例公开一种依据上述方法来运作的所述存储服务器。所述存储服务器可包括用来设置所述多个记忆装置的一接口电路,且还包括用来控制所述存储服务器的运作的一处理电路。于将所述系列的逻辑存取单元存储至所述容错式磁盘阵列的期间,所述处理电路依据所述预定安排规则将所述信息写入所述多个记忆装置的所述各组页面以作为于所述系列的逻辑存取单元中的所述逻辑存取单元中的所述多个页面,以藉助于分配所述多个通道中的所述通道给所述线程来使得所述各组页面分别被依序写入所述多个记忆装置。
本发明的方法以及相关装置能确保所述存储服务器在各种情况下均能妥善地运作。例如,所述方法提供用于存储控制的多个控制方案来提升所述存储服务器的效能。相较于现有技术,依据本发明来实施的存储服务器能具有较佳的效能以及更小的写入放大索引,其中其整体写入放大索引可等于二。
附图说明
图1为依据本发明一实施例的一存储服务器的示意图。
图2绘示对应于多个线程的RAID存取的一个例子。
图3绘示分配记忆装置中的多个通道中的一者以供对应于一线程的存取控制的一个例子。
图4为依据本发明一实施例绘示的于所述存储服务器的所述RAID中的某些逻辑存取单元。
图5为依据本发明一实施例绘示的关于所述存储服务器的所述RAID的不同类型的地址之间的某些映射关系。
图6为依据本发明一实施例绘示的针对图3所示的记忆装置的内部管理的某些实施细节。
图7为依据本发明一实施例绘示的图3所示的记忆装置中的某些依序的(sequential)运作。
图8为依据本发明一实施例绘示的多个可用实体区块地址(Usable PhysicalBlock Addresses,U_PBAs)与多个闪存实体区块地址(Flash Physical Block Address,F_PBA)之间的某些映射关系。
图9为依据本发明一实施例的一种用于在一存储服务器中进行存储控制的方法的工作流程。
其中,附图标记说明如下:
100 存储服务器
110 处理电路
110P 程序模块
111 闪存阵列控制
112 数据缓冲器
113 重复数据删除
114 卷控制
121、122 接口电路
130 存储装置
300 记忆装置
310 存储器控制器
320 非挥发性存储器
CE0、CE1、…、CE7 芯片启用信号
Ch(0)、…、Ch(7) 通道
Disk(0)、Disk(1)、Dusk(2)、
Disk(3)、Disk(4)、…、Disk(N-1) 记忆装置
Th(0)、…、Th(7) 线程
P0,0、P0,1、P0,2、P0,3
P0,4、P0,5、…、P0,12、…、
P1,0、P1,1、P1,2、P1,3
P1,4、P1,5、…、P1,12、…、
P2,0、P2,1、P2,2、P2,3
P2,4、P2,5、…、P2,12、…、
P3,0、P3,1、P3,2、P3,3
P3,4、P3,5、…、P3,12、…、
P4,0、P4,1、P4,2、P4,3
P4,4、P4,5…、P4,12、…、
Pn,0、Pn,1、Pn,2、Pn,3、Pn,4
Pn,5、Pn,6、Pn,7、Pn,8、Pn,9
Pn,10、Pn,11、Pn,12、Pn,13、Pn,14
Pn,15、Pn,16、Pn,17、Pn,18、Pn,19
Pn,20、Pn,21、Pn,22、Pn,23、… 磁盘虚拟实体页面地址
D1、D2、D3、D4、D5、
D6、D7、D8、D9、D10、
D11、D12、D13、D14、D15、
D16、D17、D18、…、
D37、D38、D39 数据
P1、P2、P3、P4、P5、
P6、…、P13、…
Q1、Q2、Q3、Q4、Q5、
Q6、…、Q13、… 校验码
LAU(0)、LAU(1)、… 逻辑存取单元
S_LBA(D1)、S_LBA(D2)、
S_LBA(D3)、S_LBA(D4)、
S_LBA(D5)、S_LBA(D7)、
S_LBA(D8)、…、
S_LBA(P1)、S_LBA(Q1) ***逻辑区块地址
A1、A2、A3、A4、
A5、A6、A7、A8、…
U_PBA(A1)、U_PBA(A2)、
U_PBA(A3)、U_PBA(A4)、
U_PBA(A5)、U_PBA(A6)、
U_PBA(A7)、U_PBA(A8)、…、
U_PBA(A1)’、U_PBA(A2)’、
U_PBA(A3)’、U_PBA(A4)’、
U_PBA(A5)’、U_PBA(A6)’、
U_PBA(A7)’、U_PBA(A8)’、… 可用实体区块地址
S10、S20、S30 步骤
具体实施方式
本发明的实施例公开用于在一存储服务器中进行存储控制的方法以及装置,且所述装置可包括所述存储服务器的至少一部分(例如一部分或全部)。例如,所述装置可包括所述存储服务器的一部分(例如,执行对应于所述方法的程序模块的一处理电路、所述存储服务器中的一相关容错式磁盘阵列(Redundant Array of Independent Disks,简称为“RAID”)、所述RAID的一记忆装置、及/或所述记忆装置中的一存储器控制器)。又例如,所述装置可包括所述记忆装置。又例如,所述装置可包括所述存储服务器的整体。
图1为依据本发明一实施例的一存储服务器100的示意图。存储服务器100可包括用来控制存储服务器100的运作的一处理电路110(例如,至少一处理器、以及相关电路诸如随机存取存储器(Random Access Memory,RAM)及总线等)、一接口电路121诸如用于将存储服务器100耦接到至少一网络的一网络接口电路、以及用于将多个存储装置或记忆装置(例如,一或多个硬式磁盘驱动器(Hard Disk Drive,HDD)及/或一或多个固态硬盘(SolidState Drive,SSD))耦接至存储服务器100的另一接口电路122。例如,这些存储装置或记忆装置可包括用来当作存储服务器100的一***碟的一存储装置130、以及一组记忆装置诸如N个记忆装置Disk(0)、Disk(1)、…、及Disk(N-1),其中符号“N”可代表大于一的正整数。依据本实施例,执行程序模块110P的处理电路110可用来依据所述方法控制存储服务器100的运作,接口电路121诸如所述网络接口电路可用来提供有线或无线网络连接,以及接口电路122可符合一特定标准(例如串行高级技术附件(Serial Advanced TechnologyAttachment,简称为“串行ATA”或“SATA”)标准、外设组件互连(Peripheral ComponentInterconnect,PCI)标准、快捷外设互连(Peripheral Component Interconnect Express,PCIe)标准等中的任一者),并且可依据所述特定标准进行通讯。另外,执行程序模块110P的处理电路110可通过接口电路122存取存储装置130以及记忆装置Disk(0)、Disk(1)、…、及Disk(N-1),并且可组态(configure)记忆装置Disk(0)、Disk(1)、…、及Disk(N-1)以形成存储服务器100的一RAID。为便于理解,于图1所示的架构中的存储服务器100以及相关电路/模块/装置(例如,执行程序模块110P的处理电路110、所述RAID、以及记忆装置Disk(0)、Disk(1)、…、及Disk(N-1)中的任一者)可分别作为上述存储服务器及其相关电路/模块/装置(例如,执行对应于所述方法的程序模块的所述处理电路、所述存储服务器中的相关RAID以及所述记忆装置)的例子。
如图1所示,程序模块110P可包括各种类型的模块/子模块,诸如存储作业(Storage Work)及其子模块、连网(Networking)、健康监控(Health Monitoring)、用户/***管理控制(User/Administration Control)以及故障转移(Failover),且所述存储作业可包括卷控制(Volume Control)114(其可包括快照(Snapshot)、服务质量(Quality ofService,可简称QoS)、以及包括有区块(Block)、文件***以及对象(Object)的数据类型服务(Data Type Service),其中上述数据类型服务可用来提供如区块、文件***及对象的各种数据类型的服务)、重复数据删除(Deduplication,可简称Dedupe)113、数据缓冲器112(其可包括快取(Caching)以及压缩)、以及闪存阵列控制111,其中这些模块/子模块的名字可分别指出其相关功能。
图2绘示对应于运行于存储服务器100上的多个线程(thread)的RAID存取的一个例子。一线程能被视为能由一排程器(scheduler)独立管理的最小的被编程指令(instruction)的序列(最小指令序列)。为便于理解,假设N=5,且记忆装置Disk(0)、Disk(1)、…、及Disk(N-1)可包括记忆装置Disk(0)、Disk(1)、…、及Disk(4),但本发明不限于此。当多个线程诸如线程{Th(0),…,Th(7)}正在运行于处理电路110以存取所述RAID,线程{Th(0),…,Th(7)}中的每一者通常会存取Disk(0)、Disk(1)、…、及Disk(4)的全部。于是,记忆装置Disk(0)、Disk(1)、…、及Disk(4)中的每一者可被线程{Th(0),…,Th(7)}的全部(也就是全体的线程{Th(0),…,Th(7)})存取。本发明的方法以及装置能妥善地控制存取运作,以分别在各种状况下达到最佳效能。更进一步的细节将于后续段落说明。
图3绘示分配(assign)记忆装置300中的多个通道诸如的通道{Ch(0),…,Ch(M-1)}中的一者以供对应于一线程的存取控制的一个例子,其中符号“M”可代表大于一的正整数。为便于理解,假设M=8,且通道{Ch(0),…,Ch(M-1)}可包括通道{Ch(0),…,Ch(7)},但本发明不限于此。记忆装置300可作为记忆装置Disk(0)、Disk(1)、…、及Disk(N-1)中的任一记忆装置Disk(n)的例子,其中符号“n”可代表在区间[0,N-1]内的正整数。依据本实施例,记忆装置300可包括一存储器控制器310以用来控制记忆装置300的运作,且可还包括一非挥发性存储器(non-volatile memory,NV memory)320(例如一闪存(Flash memory))以用来存储数据。例如,非挥发性存储器320可包括一或多个非挥发性存储器组件(例如,一或多个闪存裸晶、或一或多个闪存芯片),诸如分别对应于通道{Ch(0),…,Ch(M-1)}(例如M=8)的多组非挥发性存储器组件。存储器控制器310可依据本发明的方法来控制记忆装置300的运作,以分别通过通道{Ch(0),…,Ch(M-1)}对所述多组非挥发性存储器组件进行存取运作(例如读取或写入)。尤其是,存储器控制器310可分配通道{Ch(0),…,Ch(M-1)}中的任一通道Ch(m)以作为用于一线程诸如线程Th(m)的一专用通道(例如,符号“m”可代表在区间[0,M-1]内的正整数)。例如,在m=0的情况下,存储器控制器310可将通道Ch(0)分配给线程Th(0),并且也可将关联的(尤其,分配到的)所述组非挥发性存储器组件(例如对应于通道Ch(0)的所述组非挥发性存储器组件,诸如通过通道Ch(0)的芯片启用(Chip Enable,CE)信号{CE0,CE1,…,CE7}来控制的所述组非挥发性存储器组件)分配给线程Th(0)。m的数值可予以变化,且其余可依此类推。类似地,在m=7的情况下,存储器控制器310可将通道Ch(7)分配给线程Th(7),并且也可将关联的(尤其,分配到的)所述组非挥发性存储器组件(例如对应于通道Ch(7)的所述组非挥发性存储器组件,诸如通过通道Ch(7)的芯片启用信号{CE0,CE1,…,CE7}来控制的所述组非挥发性存储器组件)分配给线程Th(7)。请注意,一个通道能被分配给两个以上的线程,只要所述通道是分配来专用于所述两个以上的线程即可。类似地,一或多个通道能被分配给一个线程。另外,线程与通道之间的映射关系能依据需求动态地设定。
图4为依据本发明一实施例绘示的于存储服务器100的所述RAID中的某些逻辑存取单元(logical address unit,LAU)。为便于理解,假设N=5(例如在RAID中有记忆装置Disk(0)、Disk(1)、Disk(2)、Disk(3)及Disk(4)),且在记忆装置300中的一逻辑存取单元的大小以及区块、页面(page)等相关的大小可分别等于某些预定值(例如,所述逻辑存取单元可包括(12*N)个页面,其于所述逻辑存取单元中12个页面每磁盘(page per disk),一单阶细胞(Single Level Cell,SLC)区块可包括三个页面,且一四阶细胞(Quadruple LevelCell,QLC)可包括12个页面),但本发明不限于此。
依据本实施例,处理电路110(例如运行其上的闪存阵列控制111)可控制所述RAID接续地存储多个页面的数据诸如数据组(例如D1、D2、D3、D4、D5、D6等数据;于图4中绘示为数据页面诸如带有数据的页面,以便于理解)以及相关的多个页面的校验码(例如P1、Q1、P2、Q2等校验码;于图4中绘示为校验码页面诸如带有校验码的页面,以便于理解),并且以记忆装置Disk(3)及Disk(4)中的两个页面的校验码(例如P1及Q1)来保护记忆装置Disk(0)、Disk(1)及Disk(2)中的三个页面的数据组(例如D1、D2及D3)。例如,处理电路110(例如运行其上的闪存阵列控制111)可将于如图4所示的这多行(row)页面中的一特定行内的三个页面的数据组(例如第一行页面的D1、D2及D3)写入所述RAID并且通过利用各自的错误更正码(Error Correction Code,ECC)编码方法来依据于所述特定行中的所述三个页面的数据组产生两个页面的校验码(例如P1及Q1),并且将对应于所述特定行的所述两个页面的校验码(例如P1及Q1)写入所述RAID。尤其是,处理电路110(例如运行其上的闪存阵列控制111)可对多个其它行(例如下一行以及后续的行,诸如图4所示的所述多行页面当中的其它行)进行类似的运作以接续地将所述多个其它行写入所述RAID,且因此可将一系列的逻辑存取单元{LAU(0),LAU(1),…}写入所述RAID,但本发明不限于此。
另外,当将在所述系列的逻辑存取单元中的一群页面诸如上列这些页面写入所述RAID时,处理电路110(例如运行其上的闪存阵列控制111)可分别为所述群页面记录多个***逻辑区块地址(System Logic Block Address,S_LBA)与多个磁盘虚拟实体页面地址(Disk Pseudo Physical Page Address,D_P_PPA)之间的多个关系以用于所述群页面的存取控制。例如,闪存阵列控制111的至少一上层(例如一或多个上层,诸如数据缓冲器112、重复数据删除113、及/或卷控制114)可传送所述多个***逻辑区块地址至闪存阵列控制111以要求分别在所述多个***逻辑区块地址存取信息,并且闪存阵列控制111可将所述多个磁盘虚拟实体页面地址(例如{P0,0,P1,0,P2,0,P3,0,P4,0}、{P0,1,P1,1,P2,1,P3,1,P4,1}等)分配给对应的记忆装置以供于所述RAID中的所述多个磁盘虚拟实体页面地址存取这些页面,其中闪存阵列控制111可以用写入重定向(Redirect-On-Write,ROW)的方式进行这些运作,但本发明不限于此。请参考图4,为了便于理解,磁盘虚拟实体页面地址{P0,0,P1,0,P2,0,P3,0,P4,0}、{P0,1,P1,1,P2,1,P3,1,P4,1}等在图4中是分别以标记“@”绘示于这些行的数据及校验码页面{D1,D2,D3,P1,Q1}、{D4,D5,D6,P2,Q2}等的旁边,以指出这些页面是分别存储于{P0,0,P1,0,P2,0,P3,0,P4,0},{P0,1,P1,1,P2,1,P3,1,P4,1}等。例如,处理电路110(例如运行其上的闪存阵列控制111)可将页面{{D1,D2,D3,P1,Q1},{D4,D5,D6,P2,Q2},…}的所述多个***逻辑区块地址与磁盘虚拟实体页面地址{{P0,0,P1,0,P2,0,P3,0,P4,0},{P0,1,P1,1,P2,1,P3,1,P4,1},…}之间的所述多个关系记录于至少一***逻辑区块地址对磁盘虚拟实体页面地址表(S_LBA-to-D_P_PPA table)(例如一或多个***逻辑区块地址对磁盘虚拟实体页面地址表)。
依据某些实施例,上述至少一***逻辑区块地址对磁盘虚拟实体页面地址表可包括一单一***逻辑区块地址对磁盘虚拟实体页面地址表,其中所述单一***逻辑区块地址对磁盘虚拟实体页面地址表可用来存储页面{{D1,D2,D3,P1,Q1},{D4,D5,D6,P2,Q2},…}的所述多个***逻辑区块地址与磁盘虚拟实体页面地址{{P0,0,P1,0,P2,0,P3,0,P4,0},{P0,1,P1,1,P2,1,P3,1,P4,1},…}之间的所述多个关系的全部。
依据某些实施例,上述至少一***逻辑区块地址对磁盘虚拟实体页面地址表可包括一主要***逻辑区块地址对磁盘虚拟实体页面地址表,其包括分别对应于记忆装置Disk(0)、Disk(1)、Disk(2)、Disk(3)及Disk(4)的一组***逻辑区块地址对磁盘虚拟实体页面地址子表,其中所述组***逻辑区块地址对磁盘虚拟实体页面地址子表中的每一***逻辑区块地址对磁盘虚拟实体页面地址子表可用来存储页面{{D1,D2,D3,P1,Q1},{D4,D5,D6,P2,Q2},…}的所述多个***逻辑区块地址与磁盘虚拟实体页面地址{{P0,0,P1,0,P2,0,P3,0,P4,0},{P0,1,P1,1,P2,1,P3,1,P4,1},…}之间的所述多个关系的一部分,诸如对应于记忆装置Disk(0)、Disk(1)、Disk(2)、Disk(3)及Disk(4)中的一者的部分,但本发明不限于此。
图5为依据本发明一实施例绘示的关于存储服务器100的所述RAID的不同类型的地址之间的某些映射关系。针对每一通道(例如通道Ch(m)),执行闪存阵列控制111的处理电路110可记录页面{D1,D2,D3,P1,Q1,D4,…}的***逻辑区块地址{S_LBA(D1),S_LBA(D2),S_LBA(D3),S_LBA(P1),S_LBA(Q1),S_LBA(D4),…}与磁盘虚拟实体页面地址{P0,0,P1,0,P2,0,P3,0,P4,0,P0,1,…}之间的这些关系,并且可在***逻辑区块地址{S_LBA(D1),S_LBA(D2),S_LBA(D3),S_LBA(P1),S_LBA(Q1),S_LBA(D4),…}与磁盘虚拟实体页面地址{P0,0,P1,0,P2,0,P3,0,P4,0,P0,1,…}之间进行转译以存取磁盘层(例如记忆装置Disk(0)、Disk(1)、Disk(2)、Disk(3)及Disk(4))。为便于理解,图5的左下角附近所示的***逻辑区块地址对磁盘虚拟实体页面地址表可作为上述单一***逻辑区块地址对磁盘虚拟实体页面地址表的一个例子,并且图5右半部所示的这一系列的***逻辑区块地址对磁盘虚拟实体页面地址表及其组合的整体可分别作为所述组***逻辑区块地址对磁盘虚拟实体页面地址子表以及上述主要***逻辑区块地址对磁盘虚拟实体页面地址表的例子,但本发明不限于此。
依据某些实施例,执行闪存阵列控制111的处理电路110可自图5左下角附近所示的***逻辑区块地址对磁盘虚拟实体页面地址表取得图5右半部所示的所述系列的***逻辑区块地址对磁盘虚拟实体页面地址表的各自的表内容,以产生对应于记忆装置Disk(n)的***逻辑区块地址对磁盘虚拟实体页面地址子表,诸如所述系列的***逻辑区块地址对磁盘虚拟实体页面地址表中的用于记忆装置Disk(0)(例如n=0)的第0个***逻辑区块地址对磁盘虚拟实体页面地址表、用于记忆装置Disk(1)(例如n=1)的第1个***逻辑区块地址对磁盘虚拟实体页面地址表等。请注意,在用于记忆装置Disk(n)的第n个***逻辑区块地址对磁盘虚拟实体页面地址表中,磁盘虚拟实体页面地址{Pn,0,Pn,1,Pn,2,…}中的多个虚拟实体页面地址(Pseudo Physical Page Addresses,P_PPAs)能被依序地安排或排列,并且这些虚拟实体页面地址可对应于在磁盘虚拟实体页面地址{Pn,0,Pn,1,Pn,2,…}的标记的下标中的次要索引(secondary index){0,1,2,…}。如在图5中以虚线描绘的矩形中所示,于{P0,0,P0,1,P0,2,…}(n=0)的下标中的这一序列的次要索引{0,1,2,…}以及于{P1,0,P1,1,P1,2,…}(n=1)的下标中的这一序列的次要索引{0,1,2,…}可指出磁盘虚拟实体页面地址{Pn,0,Pn,1,Pn,2,…}(例如n=0、1、…等)中的所述多个虚拟实体页面地址能被依序地安排或排列。因此,执行闪存阵列控制111的处理电路110在存取记忆装置Disk(n)时能在所述RAID中对记忆装置Disk(n)进行依序的存取控制。
图6为依据本发明一实施例绘示的针对图3所示的记忆装置300的内部管理的某些实施细节。如图6左上角附近所示,磁盘虚拟实体页面地址{Pn,0,Pn,1,Pn,2,…}(例如n=0、1、…等)中的任一磁盘虚拟实体页面地址可包括一磁盘号码(标示为“Disk#”)、一区块号码(标示为“Block#”)以及一页面号码(标示为“Page#”),且在所述磁盘虚拟实体页面地址中的所述虚拟实体页面地址可包括所述区块号码(标示为“Block#”)以及所述页面号码(标示为“Page#”)。例如,所述磁盘虚拟实体页面地址可包括多个位,其中所述磁盘号码(标示为“Disk#”)、所述区块号码(标示为“Block#”)以及所述页面号码(标示为“Page#”)可分别包括一最高位(most significant bit,MSB)、多个次要(secondary)位或较高位、以及多个剩余位或较低位,但本发明不限于此。依据本实施例,针对每一通道(例如通道Ch(m)),存储器控制器310可自磁盘虚拟实体页面地址{Pn,0,Pn,1,Pn,2,…}取得多个虚拟实体页面地址区块号码(标示为“P_PPA Block#”)(例如,磁盘虚拟实体页面地址{Pn,0,Pn,1,Pn,2,…}的所述多个虚拟实体页面地址中的这些区块号码(标示为“Block#”)),并且可将所述多个虚拟实体页面地址区块号码(标示为“P_PPA Block#”)与多个可用实体区块地址(Usable PhysicalBlock Addresses,U_PBAs)之间的多个关系记录至一基于区块的(block-based)映射表诸如图6所示的映射表,尤其是,也可将所记录的虚拟实体页面地址区块号码所对应的这些区块的每一者的相关的区块类型记录下来。例如,存储器控制器310可自相对应的磁盘虚拟实体页面地址(诸如所述基于区块的映射表中的对应行的表内容的左手边附近所示的磁盘虚拟实体页面地址)取得虚拟实体页面地址区块号码{A1,A2,A3,A4,A5,A6,A7,A8,…},并且可记录虚拟实体页面地址区块号码{A1,A2,A3,A4,A5,A6,A7,A8,…}、区块类型(例如符号“S”,其可代表单阶细胞区块)、以及可用实体区块地址{U_PBA(A1),U_PBA(A2),U_PBA(A3),U_PBA(A4),U_PBA(A5),U_PBA(A6),U_PBA(A7),U_PBA(A8),…},以指出所述多个虚拟实体页面地址区块号码(标示为“P_PPA Block#”)与所述多个可用实体区块地址之间的所述多个关系。存储器控制器310可自单阶细胞区块将信息收集至四阶细胞区块中,以达到较佳的存取效能。例如,自处理电路110传送的某数据D应被存储于这些记忆装置中。数据D应先被存储至一存储器的多个单阶细胞区块中,接着存储器控制器310可在之后将于所述多个单阶细胞中的数据D复制至一四阶细胞区块中。存储器控制器310可更新所述基于区块的映射表,尤其,可记录区块类型(例如符号“Q”,其可代表四阶细胞区块)以及可用实体区块地址{U_PBA(A1)’,U_PBA(A2)’,U_PBA(A3)’,U_PBA(A4)’,U_PBA(A5)’,U_PBA(A6)’,U_PBA(A7)’,U_PBA(A8)’,…},以指出所述多个虚拟实体页面地址区块号码(标示为“P_PPABlock#”)与所述多个可用实体区块地址之间的最新的关系。
图7为依据本发明一实施例绘示的图3所示的记忆装置300中的某些依序的存取运作(例如写入运作以及抹除运作)。针对每一通道(例如通道Ch(m)),存储器控制器310可依序地将某些页面(例如数据及校验码页面诸如上述者)写入多个单阶细胞区块,并且可通过将信息自所述多个单阶细胞区块收集至多个四阶细胞区块来依序地进行压缩,尤其是,可于压缩(收集)后依序地抹除所述多个单阶细胞区块,其中写入运作(例如写入所述多个单阶细胞区块)以及抹除运作(例如抹除所述多个单阶细胞区块)能在各自的循环中依序地进行。另外,存储器控制器310可依序地将收集自所述多个单阶细胞区块的所述信息写入所述多个四阶细胞区块,并且可依序地对所述多个四阶细胞区块进行存储器控制器310所触发的压缩运作,尤其,可于存储器控制器310所触发的压缩运作之后依序地抹除所述多个四阶细胞区块,其中写入运作(例如写入所述多个四阶细胞区块)以及抹除运作(例如抹除所述多个四阶细胞区块)能在各自的循环中依序地进行。由于有多个线程分别被分配去这些磁盘的专用的通道,对应于所述多个线程的存取运作通常使得所述数据均匀地被写入至对应于通道Ch(m)的所述组非挥发性存储器中,基于本发明的方法以及装置,依序的控制确实是可行的(workable)。
图8为依据本发明一实施例绘示的多个可用实体区块地址与多个闪存实体区块地址(Flash Physical Block Address,F_PBA)之间的某些映射关系。由于可能有某些损坏的区块(为便于理解,标示为“X”),存储器控制器310可记录所述多个可用实体区块地址与所述多个闪存实体区块地址之间的某些映射关系,并且依据所述多个可用实体区块地址来使用多个可用区块。另外,存储器控制器310可将所述多个可用区块安排至一数据区(dataregion)以及一备用区(spare region)。例如,存储器控制器310可利用于所述数据区中的某些区块来存储用户数据,并且可利用于所述备用区中的某些区块来进行内部管理,但本发明不限于此。
依据某些实施例,针对一第一线程(例如线程{Th(0),…,Th(7)}中的一者),当所述上层要求于一***逻辑区块地址写入第一信息,闪存阵列控制111可将所述***逻辑区块地址转译为一磁盘虚拟实体页面地址,并且将一主装置写入命令以及所述磁盘虚拟实体页面地址传送至所述磁盘层(例如记忆装置Disk(0)、Disk(1)、Disk(2)、Disk(3)及Disk(4))。以记忆装置300作为记忆装置Disk(0)、Disk(1)、…、及Disk(N-1)(例如N=5)中的记忆装置Disk(n)的一个例子,存储器控制器310可自所述磁盘虚拟实体页面地址取得一虚拟实体页面地址,并且将一运作命令诸如一写入命令传送至非挥发性存储器320,以在非挥发性存储器320中的且较佳在对应于所述第一线程的一通道中的所述虚拟实体页面地址写入所述第一信息。例如,存储器控制器310可将所述磁盘虚拟实体页面地址转译为一可用实体区块地址,并且将所述可用实体区块地址转译为一闪存实体区块地址,以将所述第一信息写入于所述闪存实体区块地址的对应页面中,但本发明不限于此。
另外,针对一第二线程(例如线程{Th(0),…,Th(7)}中的另一者),当所述上层要求在一***逻辑区块地址写入第二信息,闪存阵列控制111可将所述***逻辑区块地址转译为一磁盘虚拟实体页面地址,并且将一主装置写入命令以及所述磁盘虚拟实体页面地址传送至所述磁盘层(例如记忆装置Disk(0)、Disk(1)、Disk(2)、Disk(3)及Disk(4))。以记忆装置300作为记忆装置Disk(0)、Disk(1)、…、及Disk(N-1)(例如N=5)中的记忆装置Disk(n)的一个例子,存储器控制器310可自所述磁盘虚拟实体页面地址取得一虚拟实体页面地址,并且将一运作命令诸如一写入命令传送至非挥发性存储器320,以在非挥发性存储器320中的且较佳在对应于所述第二线程的一通道中的所述虚拟实体页面地址写入所述第二信息。例如,存储器控制器310可将所述磁盘虚拟实体页面地址转译为一可用实体区块地址,并且将所述可用实体区块地址转译为一闪存实体区块地址,以将所述第二信息写入于所述闪存实体区块地址的对应页面中,但本发明不限于此。
依据某些实施例,当所述上层要求于一***逻辑区块地址读取信息(例如所述第一信息、所述第二信息等),闪存阵列控制111以及存储器控制器310可以用类似的方式分别进行地址转译运作。为简明起见,这些实施例中类似的细节在此不赘述。
图9为依据本发明一实施例的用于在所述存储服务器中进行存储控制的上述方法的工作流程。所述方法能应用于存储服务器100(其包括有执行对应于所述方法的程序模块110P的处理电路110),其中记忆装置Disk(0)、Disk(1)、…、及Disk(N-1)(例如多个固态硬盘)可被设置于存储服务器100以形成所述RAID诸如一全闪存阵列(All Flash Array,AFA),且执行对应于所述方法的程序模块110P的处理电路110可依据所述方法控制存储服务器100的运作。例如,记忆装置Disk(0)、Disk(1)、…、及Disk(N-1)中的每一记忆装置,诸如上述记忆装置Disk(n),可包括用于控制所述记忆装置的运作的一存储器控制器以及用于存储数据的一非挥发性存储器(例如一闪存),诸如图3所示的存储器控制器310以及非挥发性存储器320。
在步骤S10中,存储服务器100(例如处理电路110)可组态设置于存储服务器100的多个记忆装置,诸如记忆装置Disk(0)、Disk(1)、…、及Disk(N-1),以形成存储服务器100的所述RAID。
在步骤S20中,针对记忆装置Disk(n)诸如记忆装置300,存储器控制器310可分配所述记忆装置中的多个通道中的一通道,诸如通道{Ch(0),…,Ch(M-1)}中的通道Ch(m),以供对应于在存储服务器100上执行的多个线程中的一线程(诸如Th(m))的存取控制。以记忆装置300为记忆装置Disk(n)的一个例子,于记忆装置300中的非挥发性存储器320可包括分别对应于通道{Ch(0),…,Ch(M-1)}的所述多组非挥发性存储器组件,其中所述多组非挥发性存储器组件的每一组是专用于通道{Ch(0),…,Ch(M-1)}中的一者。
在步骤S30中,于将所述系列的逻辑存取单元{LAU(0),LAU(1),…}存储至所述RAID的期间,存储服务器100(例如处理电路110)可依据一预定安排规则(诸如图4所示安排的安排规则)将信息写入所述多个记忆装置的各组页面以作为于所述系列的逻辑存取单元{LAU(0),LAU(1),…}中的一逻辑存取单元中的多个页面,以藉助于分配所述多个通道中的所述通道给所述线程来使得所述各组页面分别被依序写入所述多个记忆装置。例如,所述各组页面可分别代表于所述逻辑存取单元中的各列(column)页面,诸如图4中于多个逻辑存取单元(例如LAU(0)、LAU(1)等)中的一者中的五列页面。依据所述预定安排规则,处理电路110可将所述信息轮流(例如,如图4所示,重复地从记忆装置Disk(0)至记忆装置Disk(4)来进行)写入至于所述逻辑存取单元中的所述各列页面。以逻辑存取单元LAU(0)为步骤S30中所述的这个逻辑存取单元的一个例子,所述信息可包括多个页面的数据(例如D1、D2、D3、D4、D5、D6等)以及相关的多个页面的校验码(例如P1、Q1、P2、Q2等),以及于所述逻辑存取单元中的所述各列页面可包括一第一组的列以及一第二组的列(例如,在此逻辑存取单元中的五列页面中的在左手边的这一组三列页面以及在右手边的这一组两列页面)以供分别存储所述多个页面的数据以及所述相关的多个页面的校验码。
依据本实施例,于将所述系列的逻辑存取单元{LAU(0),LAU(1),…}的一群页面写入所述RAID的期间,处理电路110(例如运行其上的闪存阵列控制111)可分别为所述群页面记录所述多个***逻辑区块地址与所述多个磁盘虚拟实体页面地址之间的关系,以供进行所述系列的逻辑存取单元{LAU(0),LAU(1),…}的存取控制,并且可分配所述多个磁盘虚拟实体页面地址(例如{P0,0,P1,0,P2,0,P3,0,P4,0}、{P0,1,P1,1,P2,1,P3,1,P4,1}等)至所述多个记忆装置中的一组对应的记忆装置,以用来存取于所述RAID中的于所述多个磁盘虚拟实体页面地址的某些页面,尤其,可将页面{{D1,D2,D3,P1,Q1},{D4,D5,D6,P2,Q2},…}的所述多个***逻辑区块地址与磁盘虚拟实体页面地址{{P0,0,P1,0,P2,0,P3,0,P4,0},{P0,1,P1,1,P2,1,P3,1,P4,1},…}之间的关系记录于上述至少一***逻辑区块地址对磁盘虚拟实体页面地址表,其中上述至少一***逻辑区块地址对磁盘虚拟实体页面地址表的多个子集合可用来维护分别对应于所述多个记忆装置的存取控制。针对记忆装置Disk(n)诸如记忆装置300,存储器控制器310可进行记忆装置300的某些内部管理运作,诸如:解析(parse)于所述多个磁盘虚拟实体页面地址的一磁盘虚拟实体页面地址中的一虚拟实体页面地址,诸如图6所示的于磁盘虚拟实体页面地址{Pn,0,Pn,1,Pn,2,…}(例如n=0、1等)的任一者中的一虚拟实体页面地址,以从所述虚拟实体页面地址取得一区块号码(标示为“Block#”);以及于因应所述磁盘虚拟实体页面地址进行存取的期间,依据如图6所示的所述区块号码(标示为“Block#”)更新于记忆装置300中的所述基于区块的映射表,以用来进行对应于所述磁盘虚拟实体页面地址的存取控制。因此,因应所述磁盘虚拟实体页面地址,记忆装置300(例如存储器控制器310)能在不参照一基于页的(page-based)映射表的情况下存取对应于所述磁盘虚拟实体页面地址的一页面。
另外,记忆装置300(例如,存储器控制器310)可分别通过所述多个通道(诸如通道{Ch(0),…,Ch(M-1)})对所述多组非挥发性存储器进行存取运作(例如读取或写入)。由于记忆装置300(例如存储器控制器310)分配所述通道以供对应于所述线程的存取控制的用途,并且由于存储服务器100(例如处理电路110)依据所述预定安排规则(诸如图4所示安排的安排规则)写入所述信息,所述各组页面能藉助于分配所述多个通道中的所述通道给所述线程以分别被依序写入所述多个记忆装置,其中所述各组页面中的一组页面可代表所述多个记忆装置中的一对应的记忆装置的多组页面中的一组。针对所述多个通道中的每一通道(诸如通道Ch(m)),记忆装置300(例如存储器控制器310)可依序将某些信息页面(例如数据页面或校验码页面)写入多个单阶细胞区块(诸如图7所示的多个单阶细胞区块),通过从所述多个单阶细胞区块将信息收集至多个四阶细胞区块来依序进行压缩,以及于压缩(例如此收集运作)之后依序抹除所述多个单阶细胞区块,尤其,可依序将从所述多个单阶细胞区块收集的所述信息写入所述多个四阶细胞区块,依序对所述多个四阶细胞区块进行压缩,以及依序抹除所述多个四阶细胞区块。于是,写入所述多个单阶细胞区块以及抹除所述多个单阶细胞区块能依序于各自的循环中进行,如图7左半部中的这些循环所示,并且写入所述多个四阶细胞区块以及抹除所述多个四阶细胞区块能依序于各自的循环中进行,如图7右半部中的这些循环所示。为了简明起见,本实施例与前述实施例相仿的内容在此不重复赘述。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种用于在一存储服务器中进行存储控制的方法,所述方法是应用于所述存储服务器,所述方法的特征在于,包括:
针对设置于所述存储服务器的多个记忆装置中的任一记忆装置,分配所述记忆装置中的多个通道中的一通道以供对应于在所述存储服务器上执行的多个线程中的一线程的存取控制,其中所述存储服务器组态所述多个记忆装置以形成所述存储服务器的一容错式磁盘阵列;以及
于将一系列的逻辑存取单元存储至所述容错式磁盘阵列的期间,依据一预定安排规则将信息写入所述多个记忆装置的各组页面以作为于所述系列的逻辑存取单元中的一逻辑存取单元中的多个页面,以藉助于分配所述多个通道中的所述通道给所述线程来使得所述各组页面分别被依序写入所述多个记忆装置,其中所述各组页面中的一组页面代表所述多个记忆装置中的一对应的记忆装置的多组页面中的一组。
2.如权利要求1所述的方法,其特征在于,所述记忆装置包括一非挥发性存储器,以及所述非挥发性存储器包括分别对应于所述多个通道的多组非挥发性存储器组件。
3.如权利要求2所述的方法,其特征在于,所述多组非挥发性存储器组件的每一组是专用于所述多个通道中的一者。
4.如权利要求1所述的方法,其特征在于,所述各组页面分别代表于所述逻辑存取单元中的各列页面;以及依据所述预定安排规则将所述信息写入所述多个记忆装置的所述各组页面以作为于所述系列的逻辑存取单元的所述逻辑存取单元中的所述多个页面包括:
依据所述预定安排规则,将所述信息轮流写至于所述逻辑存取单元中的所述各列页面。
5.如权利要求4所述的方法,其特征在于,所述信息包括多个页面的数据以及相关的多个页面的校验码,以及于所述逻辑存取单元中的所述各列页面包括一第一组的列以及一第二组的列以供分别存储所述多个页面的数据以及所述相关的多个页面的校验码。
6.如权利要求1所述的方法,其特征在于,还包括:
于将所述系列的逻辑存取单元的一群页面写入所述容错式磁盘阵列的期间,分别为所述群页面记录多个***逻辑区块地址与多个磁盘虚拟实体页面地址之间的关系,以供进行所述系列的逻辑存取单元的存取控制。
7.如权利要求6所述的方法,其特征在于,还包括:
分配所述多个磁盘虚拟实体页面地址至所述多个记忆装置中的一组对应的记忆装置,以用来存取于所述容错式磁盘阵列中的于所述多个磁盘虚拟实体页面地址的页面。
8.如权利要求6所述的方法,其特征在于,还包括:
将所述多个***逻辑区块地址与所述多个磁盘虚拟实体页面地址之间的所述关系记录于至少一***逻辑区块地址对磁盘虚拟实体页面地址表,其中所述至少一***逻辑区块地址对磁盘虚拟实体页面地址表的多个子集合是用来维护分别对应于所述多个记忆装置的存取控制。
9.如权利要求6所述的方法,其特征在于,还包括:
进行所述记忆装置的多个内部管理运作,其中所述多个内部管理运作包括:
解析于所述多个磁盘虚拟实体页面地址的一磁盘虚拟实体页面地址中的一虚拟实体页面地址,以从所述虚拟实体页面地址取得一区块号码;以及
于因应所述磁盘虚拟实体页面地址进行存取的期间,依据所述区块号码更新于所述记忆装置中的一基于区块的映射表,以用来进行对应于所述磁盘虚拟实体页面地址的存取控制。
10.如权利要求9所述的方法,其特征在于,因应所述磁盘虚拟实体页面地址,所述记忆装置在不参照一基于页面的映射表的状况下存取对应于所述磁盘虚拟实体页面地址的一页面。
11.如权利要求1所述的方法,其特征在于,还包括:
针对所述多个通道中的每一通道,依序写入多个单阶细胞区块。
12.如权利要求11所述的方法,其特征在于,还包括:
针对所述多个通道中的所述每一通道,通过从所述多个单阶细胞区块将信息收集至多个四阶细胞区块来依序进行压缩。
13.如权利要求12所述的方法,其特征在于,还包括:
针对所述多个通道中的所述每一通道,依序将从所述多个单阶细胞区块收集的所述信息写入所述多个四阶细胞区块。
14.如权利要求13所述的方法,其特征在于,还包括:
针对所述多个通道中的所述每一通道,依序对所述多个四阶细胞区块进行压缩。
15.如权利要求13所述的方法,其特征在于,还包括:
针对所述多个通道中的所述每一通道,依序抹除所述多个四阶细胞区块,其中写入所述多个四阶细胞区块以及抹除所述多个四阶细胞区块是依序于各自的循环中进行。
16.如权利要求11所述的方法,其特征在于,还包括:
针对所述多个通道中的所述每一通道,依序抹除所述多个单阶细胞区块,其中写入所述多个单阶细胞区块以及抹除所述多个单阶细胞区块是依序于各自的循环中进行。
17.一种用来依据如权利要求1所述的方法来控制所述记忆装置的运作的存储器控制器,其中所述记忆装置包括所述存储器控制器以及一非挥发性存储器,且所述非挥发性存储器包括分别对应于所述多个通道的多组非挥发性存储器组件,所述存储器控制器的特征在于:
所述存储器控制器是用来分别通过所述多个通道来对所述多组非挥发性存储器组件进行存取运作。
18.如权利要求17所述的存储器控制器,其特征在于,所述存储器控制器是用来分配所述多个通道的所述通道以作为用于所述线程的一专用通道。
19.一种依据如权利要求1所述的方法来运作的所述记忆装置,其特征在于,所述记忆装置包括:
一非挥发性存储器,包括:
分别对应于所述多个通道的多组非挥发性存储器组件;以及
一存储器控制器,用来控制所述记忆装置的运作,其中所述存储器控制器分别通过所述多个通道来对所述多组非挥发性存储器组件进行存取运作。
20.一种依据如权利要求1所述的方法来运作的所述存储服务器,其特征在于,所述存储服务器包括:
一接口电路,用来设置所述多个记忆装置;以及
一处理电路,用来控制所述存储服务器的运作,其中于将所述系列的逻辑存取单元存储至所述容错式磁盘阵列的期间,所述处理电路依据所述预定安排规则将所述信息写入所述多个记忆装置的所述各组页面以作为于所述系列的逻辑存取单元中的所述逻辑存取单元中的所述多个页面,以藉助于分配所述多个通道中的所述通道给所述线程来使得所述各组页面分别被依序写入所述多个记忆装置。
CN201910723056.2A 2018-08-06 2019-08-06 存储控制的方法、记忆装置、存储器控制器及存储服务器 Active CN110806839B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862715229P 2018-08-06 2018-08-06
US62/715,229 2018-08-06
US16/296,161 2019-03-07
US16/296,161 US10884662B2 (en) 2018-08-06 2019-03-07 Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server

Publications (2)

Publication Number Publication Date
CN110806839A true CN110806839A (zh) 2020-02-18
CN110806839B CN110806839B (zh) 2023-06-20

Family

ID=69228669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910723056.2A Active CN110806839B (zh) 2018-08-06 2019-08-06 存储控制的方法、记忆装置、存储器控制器及存储服务器

Country Status (3)

Country Link
US (2) US10884662B2 (zh)
CN (1) CN110806839B (zh)
TW (2) TWI768763B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113345495A (zh) * 2020-03-02 2021-09-03 慧荣科技股份有限公司 伺服器及相关的控制方法
CN113568567A (zh) * 2020-04-29 2021-10-29 香港商希瑞科技股份有限公司 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
CN113568566A (zh) * 2020-04-29 2021-10-29 香港商希瑞科技股份有限公司 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884662B2 (en) * 2018-08-06 2021-01-05 Silicon Motion, Inc. Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server
TWI709042B (zh) * 2018-11-08 2020-11-01 慧榮科技股份有限公司 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統
US20210271393A1 (en) * 2020-03-02 2021-09-02 Silicon Motion, Inc. Method and apparatus for performing data access management of all flash array server
US20220222008A1 (en) * 2021-01-14 2022-07-14 Silicon Motion, Inc. Method for managing flash memory module and associated flash memory controller and memory device
CN117135562B (zh) * 2023-02-27 2024-06-04 荣耀终端有限公司 参数设置方法、终端设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1374662A (zh) * 2001-03-09 2002-10-16 矽统科技股份有限公司 多通道存储管理***
CN102298561A (zh) * 2011-08-10 2011-12-28 北京百度网讯科技有限公司 一种对存储设备进行多通道数据处理的方法、***和装置
CN102393823A (zh) * 2006-08-21 2012-03-28 英特尔公司 执行存储器引用过滤的装置、***和方法
US8347010B1 (en) * 2005-12-02 2013-01-01 Branislav Radovanovic Scalable data storage architecture and methods of eliminating I/O traffic bottlenecks
TW201619971A (zh) * 2008-06-18 2016-06-01 Infomicro Electronics Shenzhen Co Ltd 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
US20170286001A1 (en) * 2016-03-31 2017-10-05 Qualcomm Incorporated Providing memory bandwidth compression using compression indicator (ci) hint directories in a central processing unit (cpu)-based system
CN107341071A (zh) * 2013-08-23 2017-11-10 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049390A (en) * 1997-11-05 2000-04-11 Barco Graphics Nv Compressed merging of raster images for high speed digital printing
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6886074B1 (en) * 2001-12-05 2005-04-26 Adaptec, Inc. Method and apparatus for raid load balancing
US7681014B2 (en) * 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
KR100669352B1 (ko) * 2005-09-07 2007-01-16 삼성전자주식회사 카피 백 프로그램 동작 동안에 에러 검출 및 데이터 리로딩동작을 수행할 수 있는 낸드 플래시 메모리 장치
US20100250826A1 (en) * 2009-03-24 2010-09-30 Micron Technology, Inc. Memory systems with a plurality of structures and methods for operating the same
US20100262773A1 (en) * 2009-04-08 2010-10-14 Google Inc. Data striping in a flash memory data storage device
US8850114B2 (en) * 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US8635407B2 (en) * 2011-09-30 2014-01-21 International Business Machines Corporation Direct memory address for solid-state drives
WO2013140435A1 (en) * 2012-03-19 2013-09-26 Hitachi, Ltd. Data storage system comprising non-volatile semiconductor storage device, and storage control method
US10073626B2 (en) * 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
KR20160075229A (ko) * 2014-12-19 2016-06-29 삼성전자주식회사 가비지 컬렉션 동작 방법 및 이를 적용하는 레이드 스토리지 시스템
US9946642B2 (en) * 2015-11-13 2018-04-17 Samsung Electronics Co., Ltd Distributed multimode storage management
US10216419B2 (en) * 2015-11-19 2019-02-26 HGST Netherlands B.V. Direct interface between graphics processing unit and data storage unit
KR102580123B1 (ko) * 2016-05-03 2023-09-20 삼성전자주식회사 Raid 스토리지 장치 및 그것의 관리 방법
TWI567552B (zh) * 2016-06-08 2017-01-21 捷鼎國際股份有限公司 冗餘磁碟陣列系統及其資料儲存方法
US20200042223A1 (en) * 2018-08-02 2020-02-06 Alibaba Group Holding Limited System and method for facilitating a high-density storage device with improved performance and endurance
US10884662B2 (en) * 2018-08-06 2021-01-05 Silicon Motion, Inc. Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1374662A (zh) * 2001-03-09 2002-10-16 矽统科技股份有限公司 多通道存储管理***
US8347010B1 (en) * 2005-12-02 2013-01-01 Branislav Radovanovic Scalable data storage architecture and methods of eliminating I/O traffic bottlenecks
CN102393823A (zh) * 2006-08-21 2012-03-28 英特尔公司 执行存储器引用过滤的装置、***和方法
TW201619971A (zh) * 2008-06-18 2016-06-01 Infomicro Electronics Shenzhen Co Ltd 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
CN102298561A (zh) * 2011-08-10 2011-12-28 北京百度网讯科技有限公司 一种对存储设备进行多通道数据处理的方法、***和装置
CN107341071A (zh) * 2013-08-23 2017-11-10 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
US20170286001A1 (en) * 2016-03-31 2017-10-05 Qualcomm Incorporated Providing memory bandwidth compression using compression indicator (ci) hint directories in a central processing unit (cpu)-based system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
蔡斌等: "基于分散式体系结构的高可靠文件存储***的研究", 《计算机科学》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113345495A (zh) * 2020-03-02 2021-09-03 慧荣科技股份有限公司 伺服器及相关的控制方法
TWI766590B (zh) * 2020-03-02 2022-06-01 慧榮科技股份有限公司 伺服器及相關的控制方法
US11809293B2 (en) 2020-03-02 2023-11-07 Silicon Motion, Inc. Storage node failure detection based on register values for an all flash array server
CN113568567A (zh) * 2020-04-29 2021-10-29 香港商希瑞科技股份有限公司 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
CN113568566A (zh) * 2020-04-29 2021-10-29 香港商希瑞科技股份有限公司 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
CN113568566B (zh) * 2020-04-29 2023-08-29 香港商希瑞科技股份有限公司 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
CN113568567B (zh) * 2020-04-29 2023-10-24 香港商希瑞科技股份有限公司 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器

Also Published As

Publication number Publication date
US10884662B2 (en) 2021-01-05
US20200042244A1 (en) 2020-02-06
TW202008170A (zh) 2020-02-16
CN110806839B (zh) 2023-06-20
US20210081147A1 (en) 2021-03-18
US11366616B2 (en) 2022-06-21
TW202131192A (zh) 2021-08-16
TWI725490B (zh) 2021-04-21
TWI768763B (zh) 2022-06-21

Similar Documents

Publication Publication Date Title
CN110806839B (zh) 存储控制的方法、记忆装置、存储器控制器及存储服务器
JP6422600B2 (ja) メモリにおけるストライプマッピング
US10102119B2 (en) Garbage collection based on queued and/or selected write commands
US9495245B2 (en) High speed flash controllers
EP2565792B1 (en) Block management schemes in hybrid SLC/MLC memory
KR101459861B1 (ko) 스트라이프 기반 메모리 작동
US8924636B2 (en) Management information generating method, logical block constructing method, and semiconductor memory device
US20180275873A1 (en) System and method for managing mapping data in non-volatile memory systems having multiple mapping layers
US8341336B2 (en) Region-based management method of non-volatile memory
US9582224B2 (en) Memory control circuit unit, memory storage apparatus and data accessing method
KR20200025521A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
TW201945936A (zh) 記憶體管理方法以及儲存控制器
US11513949B2 (en) Storage device, and control method and recording medium thereof
US20200125447A1 (en) Memory reallocation during raid rebuild
CN109976664B (zh) 固态存储设备的日志数据组织
CN112463647A (zh) 使用散列来减小前向映射表的大小
US11829270B2 (en) Semiconductor die failure recovery in a data storage device
CN110865945B (zh) 存储设备的扩展地址空间
JP7407230B2 (ja) キー値データ記憶デバイスのためのeccパリティ偏り
US10891239B2 (en) Method and system for operating NAND flash physical space to extend memory capacity
CN111309642B (zh) 一种存储器及其控制方法与存储***
CN113190469A (zh) 一种存储器、数据写入方法及存储***
CN112115065A (zh) 存储设备的统一地址空间
CN112015339B (zh) 一种存储器的数据保存***,保存方法及存储***
US20220334967A1 (en) Flash memory garbage collection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant