CN106445749A - 使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小 - Google Patents

使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小 Download PDF

Info

Publication number
CN106445749A
CN106445749A CN201610317662.0A CN201610317662A CN106445749A CN 106445749 A CN106445749 A CN 106445749A CN 201610317662 A CN201610317662 A CN 201610317662A CN 106445749 A CN106445749 A CN 106445749A
Authority
CN
China
Prior art keywords
data
disk
busy
raid
threshold value
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
CN201610317662.0A
Other languages
English (en)
Other versions
CN106445749B (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.)
SK Hynix Inc
Original Assignee
Hynix Semiconductor 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 Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN106445749A publication Critical patent/CN106445749A/zh
Application granted granted Critical
Publication of CN106445749B publication Critical patent/CN106445749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0653Monitoring storage devices or 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/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/0688Non-volatile semiconductor memory arrays
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种存储器系统,其可包括:廉价磁盘冗余阵列组,即RAID组,其包括多个磁盘;以及存储访问层,其包括RAID引擎,其中RAID引擎适用于从RAID组请求数据、基于延迟阈值确定多个磁盘中的磁盘是否忙碌、当确定磁盘忙碌时确定被请求的数据是否可以从多个磁盘中的其它非忙碌磁盘获取以及当确定数据从其它非忙碌磁盘可获取时获取被请求的数据。

Description

使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小
相关申请的交叉引用
本申请要求于2015年5月12日提交的临时申请号为62/160,508的美国临时申请的权益,其全部内容通过引用并入本文。
技术领域
本公开的示例性实施例涉及一种存储器系统及其操作方法。
背景技术
计算机环境范例已经转变至可随时随地使用的普适计算系统。由于该事实,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用一直快速增加。这些便携式电子装置通常使用具有存储器装置即数据存储装置的存储器系统。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
由于使用存储器装置的数据存储装置没有移动部件,所以它们提供良好的稳定性、耐用性、高的信息存取速度以及低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本发明的一方面包括存储器系统。存储器系统可包括:廉价磁盘冗余阵列(RAID)组,其包括多个磁盘;以及存储访问层,其包括RAID引擎,其中RAID引擎适用于从RAID组请求数据、基于延迟阈值确定多个磁盘中的磁盘是否忙碌、当确定磁盘忙碌时确定被请求的数据是否可以从多个磁盘中的其它非忙碌磁盘获取以及当确定数据从其它非忙碌磁盘可获取时获取被请求的数据。
本发明的进一步的方面包括方法。该方法可包括利用廉价磁盘冗余阵列(RAID)引擎从包括多个磁盘的RAID组请求数据、基于延迟阈值确定多个磁盘中的磁盘是否忙碌、当确定磁盘忙碌时确定被请求的数据是否可以从多个磁盘中的其它非忙碌磁盘获取以及当确定数据从其它非忙碌磁盘可获取时获取被请求的数据。
本发明的附加方面包括存储器装置。存储器装置可包括廉价磁盘冗余阵列(RAID)组,其包括多个磁盘;以及RAID引擎,其被配置成从RAID组请求数据、基于延迟阈值确定多个磁盘中的磁盘是否忙碌以及当确定磁盘忙碌时从其它非忙碌磁盘获取被请求的数据。
附图说明
图1是示意性示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器装置的存储块的电路图。
图4是根据本发明的一方面的示例存储器系统的简图。
图5是根据本发明的一方面的进程的步骤的流程图。
具体实施方式
下面将参照附图更详细地描述各种实施例。然而,本发明可以不同的形式呈现且不应被解释为限于在本文中提出的实施例。而是,这些实施例被提供使得本公开将是彻底且完整的并将本发明的范围充分传达给本领域技术人员。在整个公开中,相似的参考编号指的是本发明的各种附图和实施例中的相似部件。
本发明可以多种方式实施,包括作为进程;设备;系统;物质组分;呈现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如适用于执行存储在联接至处理器的存储器上和/或由联接至处理器的存储器提供的指令的处理器。在本说明书中,这些实施例或本发明可采用的任何其它形式可被称为技术。通常,公开的进程的步骤的顺序可在本发明的范围内改变。除非另有说明,否则诸如被描述为适用于执行任务的处理器或存储器的组件可被实施为在给定时间临时适用于执行任务的一般组件或被制造为执行任务的专用组件。如在此所使用的,术语“处理器”是指适用于处理数据的一个或多个装置、电路和/或处理核心,诸如计算机程序指令。
下面连同示出本发明的原理的附图一起提供本发明的一个或多个实施例的详细说明。结合这些实施例描述本发明,但本发明不限于任意实施例。本发明的范围仅由权利要求限制且本发明包含许多可选方案、变型和等同方案。为了能够彻底理解本发明,在下面的描述中阐述许多具体细节。这些细节被提供以用于示例的目的,且在没有一些或全部这些具体细节的情况下,本发明可根据权利要求来实施。为了清楚的目的,没有详细描述在与本发明相关的技术领域中已知的技术材料使得本发明没有被不必要地模糊。
图1是示意性示出根据本发明的实施例的存储器系统10的框图。
参照图1,存储器系统10可包括存储器控制器100和半导体存储器装置200。
存储器控制器100可控制半导体存储器装置200的全部操作。
半导体存储器装置200可在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可通过输入/输出线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可通过电源线接收电源PWR以及通过控制线接收控制信号CTRL。控制信号可包括命令锁存启用(CLE)信号、地址锁存启用(ALE)信号、芯片启用(CE)信号、写入启用(WE)信号、读取启用(RE)信号等。
存储器控制器100和半导体存储器装置200可被集成在单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可被集成在诸如固态驱动器(SSD)的单个半导体装置中。固态驱动器可包括用于将数据存储在其中的存储装置。当半导体存储器系统10被用在SSD中时,联接至存储器系统10的主机(未示出)的操作速度可显著提高。
存储器控制器100和半导体存储器装置200可被集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可被集成在单个半导体装置中以配置诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)的PC卡、标准闪存(CF)卡、智能多媒体(SM)卡、记忆棒、多媒体卡(MMC)、减小尺寸的多媒体卡(RS-MMC)、微型版MMC(微型MMC)、安全数码(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、安全数字高容量(SDHC)以及通用闪速存储器(UFS)。
作为另一个示例,存储器系统10可被设置为诸如以下的包括电子装置的各种元件中的一个:计算机、超便携移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、航海装置、黑匣子、数码相机、数码多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境下接收和传输信息的装置、家庭网络的电子装置中的一个、计算机网络的电子装置中的一个、远程信息处理网络的电子装置中的一个、射频识别(RFID)装置或计算系统的元件装置。
图2是示出根据本发明的实施例的存储器系统的详细框图。例如,图2的存储器系统可描述图1中示出的存储器系统10。
参照图2,存储器系统10可包括存储器控制器100和半导体存储器装置200。存储器系统10可响应于来自主机装置的请求而操作,尤其是,存储待被由主机装置访问的数据。
主机装置可利用各种电子装置中的任意一种来实施。在一些实施例中,主机装置可包括诸如台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图像记录器、数字图像播放器、数字视频记录器和数字视频播放器的电子装置。在一些实施例,主机装置可包括诸如移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和便携式游戏机的便携式电子装置。
存储器装置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、主机接口140和存储器接口150。
存储单元110可用作存储器系统10和控制器100的工作存储器并存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储单元110可存储被控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的数据。
存储单元110可利用易失性存储器来实施。存储单元110可利用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。如上所述,存储单元110可将主机装置使用的数据存储在存储器装置200中以用于读取操作和写入操作。为了存储数据,存储单元110可包括编程存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制单元120可响应于来自主机装置的写入请求或读取请求而控制存储器系统10的一般操作和用于存储器装置200的写入操作或读取操作。控制单元120可驱动被称为闪存转换层(FTL)的固件以控制存储器系统10的一般操作。例如,FTL可执行诸如逻辑-物理(L2P)映射、损耗均衡、碎片收集和坏块处理的操作。L2P映射被称为逻辑块寻址(LBA)。
ECC单元130可检测并纠正在读取操作期间从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可纠正错误位的阈值数量时,ECC单元130可不纠正错误位,而是可输出表示纠正错误位失败的错误纠正失败信号。
在一些实施例中,ECC单元130可基于诸如低密度奇偶检查(LDPC)码、博斯-查德胡里-霍昆格姆(BCH)码、涡轮(turbo)码、涡轮乘积码(TPC)、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等的编码调制来执行错误纠正操作。ECC单元130可包括用于错误纠正操作的所有电路、系统或装置。
主机接口140可通过诸如通用串行总线(USB)、多媒体卡(MMC)、外围组件互连高速(PCI-E)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和集成驱动电路(IDE)的各种接口协议中的一个或多个与主机装置通信。
存储器接口150可提供控制器100和存储器装置200之间的接口以允许控制器100响应于来自主机装置的请求而控制存储器装置200。存储器接口150可在CPU120的控制器下生成用于存储器装置200的控制器信号并处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可在CPU120的控制器下生成用于存储器装置200的控制器信号并处理数据。
存储器装置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生成的行地址RADD选择多个存储块211中的至少一个存储块,并将从电压生成电路230供应的操作电压传输至在多个存储块211中选择的存储块。
页面缓冲器250通过位线BL(未示出)连接至存储器单元阵列210。页面缓冲器250可响应于由控制电路220生成的页面缓冲器控制信号利用正电压对位线BL预充电、在编程操作中将数据传输至选择的存储块/在读取操作中从选择的存储块接收数据或临时存储传输的数据。
列解码器260可将数据传输至页面缓冲器250/从页面缓冲器250接收数据或将数据传输至输入电路270/从输出电路270接收数据。
输入/输出电路270可通过输入/输出电路270将从外部装置(例如,存储器控制器100)传输的命令和地址传输至控制电路220、将数据从外部装置传输至列解码器260或将数据从列解码器260输出至外部装置。
控制电路220可响应于命令和地址控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中示出的存储器单元阵列210的存储块211。
参照图3,存储块211可包括分别联接至位线BL0至BLm-1的多个单元字符串221。每列的单元字符串可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元或存储器单元晶体管可串行地联接在选择晶体管DST和SST。存储单元MC0至MCn-1中的每个可由每个单元中都存储多位数据信息的多层单元(MLC)形成。单元字符串221可分别电联接至对应的位线BL0至BLm-1。
在一些实施例中,存储块211可包括NAND型闪速存储单元。然而,存储块211不限于NAND闪速存储器,而是可包括NOR型闪速存储器、结合两个或多个类型的存储单元的混合闪速存储器和控制器被嵌入在存储芯片内部的1-NAND闪速存储器。
基于奇偶校验的廉价磁盘冗余阵列(下文称为“RAID”)用于提供存储系统中的磁盘故障转移服务。其为HDD而设计,同时其也广泛用于诸如固态磁盘(下文称为“SSD”)的基于闪速存储器的存储磁盘。随着SSD的使用,可预期的性能被期望,但随着时间人们可以证明冗余阵列的性能的不一致。原因是当执行耗时任务(例如,垃圾收集、随机写入等)占据磁盘时,整个阵列应该等待该磁盘完成其任务。
数据是当今商业最有价值的资产。RAID通过奇偶校验计算提供不同程度的磁盘故障保护。除故障转移保护外,数据分块潜在地可增加全部系统性能。同时,可预期的性能对企业闪存用户至关重要。对于闪存用户来说,知道最差情况的性能与知道平均性能一样重要。
因此,在此公开的发明使不期望的低的读取I/O(输入/输出)的数量最小化,同时仍然保持最大的故障转移保护,实现更可预期的性能。例如,在多层单元(MLC)SSD中,与单层单元(SLC)装置相反,闪存模块具有难以预期的性能,因此,本发明也有利于利用MLC装置的应用。SSD的性能也非常依赖工作负载。访问模式、读取/写入比例和块大小是可大大影响SSD的性能的因素。因此,在此公开的发明利用底层存储器系统适应于主机以动态方式产生的工作负载通信量以保证最大延迟和性能一致性的技术。
参照图4,根据本发明的方面示出示例系统40和与源自涉及访问RAID组的任意进程的读取请求相关的示例进程中的步骤的简图。系统40可包括存储访问层408、数据布局引擎401以及映射图430。数据布局引擎可包括包含多个磁盘402、404和406的RAID组400(或与其相关、连接至其等)。为简单起见,示出三个磁盘,本领域技术人员将理解更多或更少磁盘可被利用。在实施例中,磁盘可以是非易失性磁盘(例如,NVM express、NVMHCI等)。RAID组400自身可在一个磁盘内包括多个闪存装置或分区,因此,像装置、构件、构件装置等术语通常可指闪速SSD、SSD中的分区和/或取决于RAID方案如何产生的其它类型的存储器结构。
存储访问层408可包括内核420(例如,操作系统,诸如linux、windows等)和控制器/RAID引擎410。控制器410可被配置为具有I/O延迟计算和虚拟读取能力的增强型RAID引擎。系统还可包括下面将描述的用于映射地址的映射图430。
在步骤450中,存储服务器408的RAID引擎410接收启动用于数据集(例如,文件或区块)的读取请求的进程。RAID引擎410可在存储访问层408的软件或硬件中实施(其在图4中被示为嵌入在存储服务器访问层中)。然后,存储访问层408可将该信息传达至数据布局引擎401,数据布局引擎401访问上述数据结构以确定在RAID组400中的任何构件装置是否具有数据(例如,确定在RAID组400中的构件装置是否忙碌)。
在步骤460中,如果包含被请求的数据的装置忙碌,则数据布局引擎401发送信号给存储访问层408以从RAID组中的其余(非忙碌)装置读取被请求的数据。同时,在步骤470中,为了被进程使用以满足读取请求,存储器的一段被映射(例如,映射至映射图430)。此时,为了本公开的发明目的,RAID分块和重建可被使用。然后,在步骤480中,RAID数据重建技术将在忙碌装置中的数据的部分提供至存储访问层408。
另一方面,当包含被请求的数据的构件装置不忙碌时,引擎401仅向存储访问层408发送信号以从保存被请求的数据的装置构件读取被请求的数据。然后,数据被送回至RAID引擎410,这引起数据被送回至请求进程。如上所述,装置状态(忙碌/就绪)可被追踪并被容纳在存储访问层408中而不是数据布局引擎401中,且可在不知道来自闪存子系统的实际硬件状态信号的情况下完成。
图5是利用虚拟读取的用于自动调谐RAID装置的进程的步骤的流程图50。尽管流程图50示出用于虚拟读取的步骤和用于RAID装置的自动调谐的步骤,但两个特征可在装置内分别或独立地实施。
在步骤500中,形成用于读取数据的请求。例如,请求可由如图4中所示的RAID引擎410形成。在步骤502中,包含被请求的数据的RAID组的磁盘(例如,装置、存储器等)被识别。如图4中所示,磁盘可以是数据访问层401内的RAID组400的磁盘402、404、406。
在步骤504中,确定来自主机的工作负载是否已经改变。如果是,则方法继续进行步骤506,其调整对应于工作负载的截止时间(例如,自动调谐)。确定何时将底层装置(例如,存储器、装置等)标记为忙碌取决于RAID组服务的工作负载。这需要仔细监控工作负载通信量,因为不是每个工作负载都应该相同地被处理。在此公开的方法根据工作负载性质动态地调整运行时的延迟阈值。这保证运行时忙碌的存储器装置可被始终检测,即使工作负载的模式意外地改变。因此,系统可被配置以基于工作流或工作流的改变增加或减小延迟阈值。
例如,如下所述,延迟阈值可基于从主机接收的工作负载的量或基于在虚拟读取期间接收的信息。延迟阈值可基于从数据从RAID组被请求的时间到数据被从在RAID组中的存储器/磁盘接收的时间的时间量。延迟阈值还可起截止时间的作用。例如,延迟阈值可被设置为请求数据和接收数据之间允许的时间量。如果数据未在延迟阈值规定的时间量内被从磁盘接收,则系统确定磁盘忙碌并继续访问RAID组中的其它非忙碌磁盘以构造/计算数据块。
如果在步骤504中为否或在步骤506之后,在步骤508中系统周期性地检查哪个磁盘忙碌(例如,虚拟读取)。虚拟读取可通过周期性地将一个数据块大小读取(例如,在典型操作系统中的4K字节的数据块大小)发送到RAID构件确定在识别的RAID组中哪个SSD(例如,磁盘)忙碌。如果对于这个小的数据块读取(例如,虚拟读取)的延迟将高于预期,则其可被转译为装置忙于耗时请求(例如,垃圾收集、随机写入等)的指示。在RAID组中的装置构件忙碌时,在构建来自数据读取的数据集之后,从RAID组中的其它构件读取数据集。
因此,虚拟读取可起到装置构件的促进或刺激的作用以基于延迟阈值确定磁盘是否忙碌。如果在虚拟读取期间请求的最小数据在延迟阈值规定的时间量内未被接收,则磁盘被确定为处于忙碌状态。
因此,在步骤510中,当磁盘被确定为忙碌时,确定忙碌磁盘是否是包含被请求的数据块的磁盘。在一些情况下,多个磁盘可被确定为忙碌。因此,如果步骤510的结果是否(例如,忙碌磁盘不包含被请求的数据块),则方法继续进行步骤512以从包含被请求的数据块的非忙碌磁盘读取数据块返回至请求的发出者,然后方法在步骤520结束。
然而,如果确定忙碌磁盘包含数据块,则方法移到步骤514,在步骤514中,控制器从RAID组中的其它非忙碌磁盘获取(或尝试获取)数据。在步骤514中,确定RAID组的其它非忙碌构件(如用于说明性目的示出的“RAID 4、5、6”)是否可被用于执行请求。例如,在自动调谐阶段后,如果保存被请求的数据的底层装置构件忙碌,则RAID引擎检查其它构件以察看它们是否具有块镜像(步骤516)以复制数据或它们是否具有奇偶校验计算(步骤518)以构建数据。当数据已经从块镜像读取或以其它方式被计算,则方法在步骤520结束。
如上所述,功能性应用至诸如在此公开的闪存阵列的RAID可被应用在存储服务器的存储访问层中。可选地,这种功能性可通过专用于为闪存存储器提供这种功能性的单独层或模块来提供。通过使用诸如更高层的RAID的不同冗余算法,即使在目标组中的两个或更多个闪存装置忙碌,也可以执行通读数据重建。
尽管为了清楚理解的目的已经相当详细地描述了前述实施例,但本发明不限于提供的细节。存在许多实施本发明的可选方法。公开的实施例是说明性的而不是限制性的。

Claims (20)

1.一种存储器系统,其包括:
廉价磁盘冗余阵列组,即RAID组,其包括多个磁盘;以及
存储访问层,其包括RAID引擎,所述RAID引擎适用于:
从所述RAID组请求数据;
基于延迟阈值确定所述多个磁盘中的磁盘是否忙碌;
当确定所述磁盘忙碌时,确定被请求的数据是否可以从所述多个磁盘中的其它非忙碌磁盘获取;以及
当确定所述数据从所述其它非忙碌磁盘可获取时,获取所述被请求的数据。
2.根据权利要求1所述的存储器系统,其中所述RAID引擎进一步适用于执行虚拟读取以确定磁盘是否忙碌。
3.根据权利要求2所述的存储器系统,其中当通过所述虚拟读取请求的数据在所述延迟阈值规定的时间量内未被接收时,所述磁盘被确定为忙碌。
4.根据权利要求1所述的存储器系统,其中所述延迟阈值基于数据被请求和所请求的数据被接收之间的时间量。
5.根据权利要求1所述的存储器系统,其中所述延迟阈值是在磁盘被确定为忙碌之前数据请求和数据接收之间允许的时间量。
6.根据权利要求1所述的存储器系统,其中所述RAID引擎进一步适用于基于所述存储器系统中的工作流的量调整所述延迟阈值。
7.根据权利要求1所述的存储器系统,其中所述RAID引擎适用于通过从块镜像读取所述数据或使用奇偶校验计算所述数据从所述其它非忙碌磁盘读取所述数据。
8.一种方法,其包括:
利用廉价磁盘冗余阵列引擎,即RAID引擎,从RAID组请求数据,所述RAID组包括多个磁盘;
基于延迟阈值确定所述多个磁盘中的磁盘是否忙碌;
当确定所述磁盘忙碌时,确定被请求的数据是否可以从所述多个磁盘中的其它非忙碌磁盘获取;以及
当确定所述数据从所述其它非忙碌磁盘可获取时,获取所述被请求的数据。
9.根据权利要求8所述的方法,其进一步包括执行虚拟读取以确定磁盘是否忙碌。
10.根据权利要求9所述的方法,其中当通过所述虚拟读取请求的数据在所述延迟阈值规定的时间量内未被接收时,所述磁盘被确定为忙碌。
11.根据权利要求8所述的方法,其中所述延迟阈值基于数据被请求和所请求的数据被接收之间的时间量。
12.根据权利要求8所述的方法,其中所述延迟阈值是在磁盘被确定为忙碌之前数据请求和数据接收之间允许的时间量。
13.根据权利要求8所述的方法,其进一步包括基于工作流的量调整所述延迟阈值。
14.根据权利要求8所述的方法,其中获取步骤进一步包括从块镜像读取所述数据或使用奇偶校验计算所述数据。
15.一种存储器装置,其包括:
廉价磁盘冗余阵列组,即RAID组,所述RAID组包括多个磁盘;以及
RAID引擎,其被配置以:
从所述RAID组请求数据;
基于延迟阈值确定所述多个磁盘中的磁盘是否忙碌;以及
当确定所述磁盘忙碌时,从其它非忙碌磁盘获取被请求的数据。
16.根据权利要求15所述的存储器装置,所述RAID引擎进一步被配置以执行虚拟读取以确定磁盘是否忙碌。
17.根据权利要求15所述的存储器装置,其中所述延迟阈值基于数据被请求和所请求的数据被接收之间的时间量。
18.根据权利要求15所述的存储器装置,其中所述延迟阈值是在磁盘被确定为忙碌之前数据请求和数据接收之间允许的时间量。
19.根据权利要求15所述的存储器装置,其中所述RAID引擎进一步被配置以基于所述存储器装置中的工作流的量调整所述延迟阈值。
20.根据权利要求15所述的存储器装置,其中所述RAID引擎被配置以通过从块镜像读取所述数据或使用奇偶校验计算所述数据从所述其它非忙碌磁盘读取所述数据。
CN201610317662.0A 2015-05-12 2016-05-12 使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小 Active CN106445749B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562160508P 2015-05-12 2015-05-12
US62/160,508 2015-05-12

Publications (2)

Publication Number Publication Date
CN106445749A true CN106445749A (zh) 2017-02-22
CN106445749B CN106445749B (zh) 2021-04-23

Family

ID=57277190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610317662.0A Active CN106445749B (zh) 2015-05-12 2016-05-12 使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小

Country Status (2)

Country Link
US (1) US10552048B2 (zh)
CN (1) CN106445749B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106971372A (zh) * 2017-02-24 2017-07-21 北京大学 一种实现图像卷积的编码型闪存系统和方法
CN109284202A (zh) * 2017-07-19 2019-01-29 爱思开海力士有限公司 控制器及其操作方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10312944B2 (en) 2017-03-17 2019-06-04 Micron Technology, Inc. Error correction code (ECC) operations in memory for providing redundant error correction
KR20190063054A (ko) * 2017-11-29 2019-06-07 삼성전자주식회사 메모리 시스템 및 이의 동작 방법
JP2019133391A (ja) * 2018-01-31 2019-08-08 東芝メモリ株式会社 メモリシステムおよび制御方法
US10970155B1 (en) * 2019-03-27 2021-04-06 Amazon Technologies, Inc. Error reporting when reading data
CN113126890B (zh) * 2020-01-15 2024-07-19 伊姆西Ip控股有限责任公司 用于存储的方法、设备和计算机程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026347A1 (en) * 2004-07-29 2006-02-02 Ching-Hai Hung Method for improving data reading performance and storage system for performing the same
CN1851635A (zh) * 2006-06-01 2006-10-25 杭州华为三康技术有限公司 对廉价磁盘冗余阵列进行读写操作的方法和系统
CN102209957A (zh) * 2009-02-26 2011-10-05 株式会社日立制作所 包括raid组的存储系统
CN103370686A (zh) * 2010-09-15 2013-10-23 净睿存储股份有限公司 存储环境中重建i/o读取操作的调度

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321345B1 (en) * 1999-03-01 2001-11-20 Seachange Systems, Inc. Slow response in redundant arrays of inexpensive disks
US6950966B2 (en) * 2001-07-17 2005-09-27 Seachange International, Inc. Data transmission from raid services
US6789165B2 (en) * 2002-05-10 2004-09-07 International Business Machines Corporation Data storage array method and system
TWI350526B (en) * 2005-11-21 2011-10-11 Infortrend Technology Inc Data access methods and storage subsystems thereof
US7917810B2 (en) * 2007-10-17 2011-03-29 Datadirect Networks, Inc. Method for detecting problematic disk drives and disk channels in a RAID memory system based on command processing latency
US8074021B1 (en) * 2008-03-27 2011-12-06 Netapp, Inc. Network storage system including non-volatile solid-state memory controlled by external data layout engine
US8775718B2 (en) * 2008-05-23 2014-07-08 Netapp, Inc. Use of RDMA to access non-volatile solid-state memory in a network storage system
US9128910B1 (en) * 2011-03-16 2015-09-08 Tintri Inc. Avoiding long access latencies in redundant storage systems
US20130117525A1 (en) * 2011-11-04 2013-05-09 Lsi Corporation Method for implementing pre-emptive read reconstruction
CN102662608B (zh) * 2012-03-30 2015-11-25 华为技术有限公司 一种降低读延时的方法及装置
JP2015111334A (ja) * 2013-12-06 2015-06-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US20150324135A1 (en) * 2014-05-06 2015-11-12 Netapp, Inc. Automatic storage system configuration based on workload monitoring

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026347A1 (en) * 2004-07-29 2006-02-02 Ching-Hai Hung Method for improving data reading performance and storage system for performing the same
CN1851635A (zh) * 2006-06-01 2006-10-25 杭州华为三康技术有限公司 对廉价磁盘冗余阵列进行读写操作的方法和系统
CN102209957A (zh) * 2009-02-26 2011-10-05 株式会社日立制作所 包括raid组的存储系统
CN103370686A (zh) * 2010-09-15 2013-10-23 净睿存储股份有限公司 存储环境中重建i/o读取操作的调度

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106971372A (zh) * 2017-02-24 2017-07-21 北京大学 一种实现图像卷积的编码型闪存系统和方法
CN106971372B (zh) * 2017-02-24 2020-01-03 北京大学 一种实现图像卷积的编码型闪存系统和方法
CN109284202A (zh) * 2017-07-19 2019-01-29 爱思开海力士有限公司 控制器及其操作方法
CN109284202B (zh) * 2017-07-19 2022-03-25 爱思开海力士有限公司 控制器及其操作方法

Also Published As

Publication number Publication date
US10552048B2 (en) 2020-02-04
CN106445749B (zh) 2021-04-23
US20160334999A1 (en) 2016-11-17

Similar Documents

Publication Publication Date Title
US10318414B2 (en) Memory system and memory management method thereof
US10180805B2 (en) Memory system and operating method thereof
US10102146B2 (en) Memory system and operating method for improving rebuild efficiency
US10847231B2 (en) Memory system with adaptive read-threshold scheme and method of operating such memory system
US10275349B2 (en) Data storage device and the operating method thereof
US10296452B2 (en) Data separation by delaying hot block garbage collection
CN106445749A (zh) 使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小
US10403369B2 (en) Memory system with file level secure erase and operating method thereof
CN106095699B (zh) 用于快闪存储器的可扩展spor算法
US20190340062A1 (en) Neighbor assisted correction error recovery for memory system and method thereof
CN110457230B (zh) 存储器系统及其操作方法
CN107544925B (zh) 存储器系统及加速引导时间的方法
US20180373629A1 (en) Memory system and operating method thereof
US11036627B2 (en) Self-management memory system and operating method thereof
CN110781095A (zh) 控制器及其操作方法
US11281574B2 (en) Apparatus and method for processing different types of data in memory system
CN110032471A (zh) 存储器系统及其操作方法
US20170024333A1 (en) High performance host queue monitor for pcie ssd controller
CN111435335A (zh) 存储器系统及其操作方法
CN107728932A (zh) 存储器系统及其操作方法
US20160283397A1 (en) Memory system and operating method thereof
CN106055488B (zh) 数据储存设备及其操作方法
US10671323B2 (en) Memory system with shared buffer architecture for multiple decoders and method of operating such memory system
US11809724B2 (en) Memory controller and operating method thereof
KR20240148022A (ko) 저널을 압축하여 저장하는 스토리지 장치 및 그 동작 방법

Legal Events

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