CN107037976B - 存储装置及其工作方法 - Google Patents

存储装置及其工作方法 Download PDF

Info

Publication number
CN107037976B
CN107037976B CN201610137295.6A CN201610137295A CN107037976B CN 107037976 B CN107037976 B CN 107037976B CN 201610137295 A CN201610137295 A CN 201610137295A CN 107037976 B CN107037976 B CN 107037976B
Authority
CN
China
Prior art keywords
data
storage area
sector
written
storage
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.)
Expired - Fee Related
Application number
CN201610137295.6A
Other languages
English (en)
Other versions
CN107037976A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Publication of CN107037976A publication Critical patent/CN107037976A/zh
Application granted granted Critical
Publication of CN107037976B publication Critical patent/CN107037976B/zh
Expired - Fee Related 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas
    • G11B20/1889Methods for assignment of alternate areas for defective areas with discs
    • 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/2017Error 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 memory access, memory control or I/O control functionality is redundant
    • 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
    • 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/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B15/00Driving, starting or stopping record carriers of filamentary or web form; Driving both such record carriers and heads; Guiding such record carriers or containers therefor; Control thereof; Control of operating function
    • G11B15/18Driving; Starting; Stopping; Arrangements for control or regulation thereof
    • G11B15/46Controlling, regulating, or indicating speed
    • G11B15/467Controlling, regulating, or indicating speed in arrangements for recording or reproducing wherein both record carriers and heads are driven
    • G11B15/473Controlling, regulating, or indicating speed in arrangements for recording or reproducing wherein both record carriers and heads are driven by controlling the speed of the heads
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/48Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
    • G11B5/58Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following
    • G11B5/596Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following for track following on disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

实施方式的存储装置具有接口、读写器以及控制器。所述接口接收命令。所述读写器从具备多个存储区域的存储介质中的一部分或全部存储区域读出数据,并向所述存储区域写入数据。所述控制器基于从所述接口接收到的命令控制所述读写器。另外,所述控制器使所述读写器向与检测出错误的第一存储区域不同的至少一个存储区域写入至少包含第一数据和第二数据的数据组。所述第一数据是写入到所述第一存储区域的数据的至少一部分,所述第二数据是写入到与所述第一存储区域物理上连续的第二存储区域的数据的至少一部分。

Description

存储装置及其工作方法
技术领域
本发明的实施方式主要涉及存储装置及其工作方法。
背景技术
已知有磁盘、半导体存储器等向存储介质写入数据的存储装置。
发明内容
本发明的实施方式提供一种能够提高对从主机接收到的读出命令的响应性的存储装置及其工作方法。
实施方式的存储装置具有接口、读写器以及控制器。所述接口接收命令。所述读写器从具备多个存储区域的存储介质中的一部分或全部存储区域读出数据,并向所述存储区域写入数据。所述控制器基于通过所述接口接收到的命令控制所述读写器。另外,所述控制器使所述读写器将至少包含第一数据和第二数据的数据组向与检测出错误的第一存储区域不同的至少一个存储区域写入。所述第一数据是向所述第一存储区域写入了的数据的至少一部分,所述第二数据是向与所述第一存储区域物理上连续的第二存储区域写入了的数据的至少一部分。
附图说明
图1是表示第一实施方式中的存储设备的构成的一例的图。
图2是表示第一实施方式中的磁盘的构成的一例的图。
图3是表示第一实施方式中的MCU(Microcontroller Unit:微控制单元)的构成和保存于RAM的信息的一例的图。
图4是表示扇区管理表的一例的图。
图5是表示在键值(key-value)方式中使用的各键地址表的一例的图。
图6是表示第一实施方式中的存储设备进行的处理的一例的流程图。
图7是表示将向包含异常扇区的扇区组写入了的数据组向在磁盘的周向上连续的扇区写入的处理的一例的流程图。
图8是示意地表示将数据组向其他扇区写入的处理的情形的图。
图9是示意地表示将数据组向其他扇区写入的处理的情形的图。
图10是示意地表示在相同的轨道内不存在连续的空闲区域的情况下进行的向其他扇区写入数据组的处理的情形的图。
图11是示意性地表示在磁盘内通过碎片整理增加了连续的空闲区域的数量的情形的图。
图12是表示伴随着向其他扇区写入数据组的处理而被改写的各键地址表的一例的图。
图13是表示第一实施方式中的向其他扇区写入用户数据的处理的结果的图。
图14是示意地表示跨越在磁盘的径向上连续的轨道并将数据组写入的处理的情形的图。
图15是示意地表示跨越在磁盘的径向上连续的轨道并将数据组写入的处理的情形的图。
图16是表示第二实施方式中的存储设备进行的处理的一例的流程图。
图17是表示仅将写入到异常扇区的用户数据写入到相同的轨道内的情形的图。
图18是表示仅将写入到异常扇区的用户数据写入到相同的轨道内的情形的图。
图19是表示了将写入到包含异常扇区的扇区组的数据组写入到相邻的轨道内的情形的图。
图20是表示了将写入到包含异常扇区在内的扇区组的数据组写入到相邻的轨道内的情形的图。
图21是表示利用LBA方式从主机接收的写入命令的内容的一例的图。
图22是表示在LBA方式中使用的各LBA地址表的一例的图。
图23是表示第四实施方式中的MCU的构成的一例的图。
图24是表示同时访问(access)频率表的一例的图。
图25是表示第四实施方式中的存储设备进行的处理的一例的流程图。
图26是表示第五实施方式中的存储设备的构成的一例的图。
图27是表示转换表的一例的图。
图28是表示再配置管理表的一例的图。
图29是表示将写入到包含异常单元的页的数据组向其他页写入的处理的情形的图。
图30是表示将写入到包含异常页的块(block)的数据组向其他块写入的处理的情形的图。
具体实施方式
以下,参照附图说明本发明的实施方式。此外,以下说明中的构成要素的数量、大小、比率、处理的顺序等仅为一例,并不限定于此。
实施方式的存储装置是向磁盘、NAND等半导体存储器、磁阻存储器等存储介质的存储区域写入数据或从存储区域读出数据的存储装置。“存储区域”是指非易失性存储介质的一部分或全部,是存储数据的区域。
在存储介质为磁盘的情况下,“存储区域”可以是一个或多个扇区或者一个扇区的一部分。
在存储介质为半导体存储器或磁阻存储器的情况下,“存储区域”可以是一个或多个页或簇,或者是一个页或簇的一部分。
以下,有时将实施方式的存储装置和存储介质合在一起的部件称为存储设备来进行说明。
(第一实施方式)
图1是表示第一实施方式中的存储设备的构成的一例的图。第一实施方式中的存储设备1可以包含磁盘10、磁头臂组件(Head Stack Assembly:HSA)20、读写通道(在图中为R/W通道)30、VCM(Voice Coil Motor:音圈马达)驱动电路31、SPM(Spindle Motor:主轴马达)驱动电路32、主机接口40、HDC(Hard Disk Controller:硬盘控制器)50、MCU(MicroController Unit:中央控制器单元)60、RAM(Random Access Memory:随机访问存储器)70、ROM(Read Only Memory:只读存储器)80,但不限定于此。
磁头臂组件20和读写通道30为“读写器”的一例,HDC50和MCU60为“控制器”的一例。此外,在“读写器”中,除了磁头臂组件20和读写通道30之外,也可以包含VCM驱动电路31和SPM驱动电路32。
存储设备1与主机(客户端)100进行通信。存储设备1根据来自主机100的请求,向磁盘10写入信息或读出写入到磁盘10的信息。主机100既可以是存储设备1的利用者(用户)使用的信息处理装置,也可以是进一步基于从另一装置接收到的命令等向存储设备1发送各种命令的装置。另外,主机100也可以是基于在内部进行了信息处理的结果,生成各种命令并发送给存储设备1的装置。
主机100对存储设备1发送指示读出数据的读出命令、指示写入数据的写入命令以及指示删除数据的删除命令等。
主机100也可以利用键值(key-value)方式生成对存储设备1的命令。键值方式是用指定了识别数据的键和作为数据的内容的值的命令,对存储设备1进行指示的方式。键是不受连号生成等规则的限制而任意生成的信息。以下,有时将根据来自主机100的指示写入到存储设备1的数据或被指示了写入的数据称为用户数据。
用户数据是与各键地址表72进行了关联的数据,所述地址表72是将物理地址与由来自后述的主机100的命令指定的键进行了关联而得到的表。另外,用户数据也可以是与各LBA地址表72A进行了关联的数据,所述地址表72A是将物理地址与后述的来自主机100的命令指定的LBA(Logical Block Addressing:逻辑区块地址)进行了关联而得到的表。
磁盘10是在铝或玻璃等基板的正反面形成了磁记录层的圆盘(platter:盘片)。磁盘10既可以由单一的圆盘构成,也可以相对于圆盘的厚度方向层叠多片圆盘而构成。在本实施方式中,对磁盘10由单一的圆盘构成进行说明。磁盘10是存储介质的一例。
图2是表示第一实施方式中的磁盘的构成的一例的图。在磁盘10中设置有多个轨道TR。轨道TR是将磁盘10的一个面分割成同心圆状而成的各个区域。在各轨道TR中包含多个扇区SC。扇区SC是沿周向分割轨道TR而成的各个区域,所述周向是绕着磁盘10的中心的方向。扇区SC是数据的写入和读出的单位。彼此相邻的多个扇区SC是“物理上连续的存储区域”的一例。“物理”是指非“逻辑”的意思。
另外,也可以在磁盘10中设置伺服区域SV,所述伺服区域SV保存有用于进行记录再生磁头21的定位的伺服信息。磁盘10中的数据的记录方式既可以是面内(in-plane)记录方式,也可以是垂直记录方式。
返回图1,磁头臂组件20包含记录再生磁头21、头放大器(head amplifier)IC22、音圈马达23以及主轴马达24。
记录再生磁头21搭载在头臂上,利用音圈马达23的驱动一边在磁盘10上方悬浮,一边相对于磁盘10进行相对移动。记录再生磁头21既可以是使用了记录和再生兼用的电磁铁的薄膜头,也可以是组合了由MR(Magneto Resistive:磁电阻)头实现的再生专用头和由薄膜头实现的记录专用头而成的部件,MR头是使用了GMR(Giant Magneto Resistive:特大磁电阻)或TMR(Tunnel Magneto Resistance:隧道磁电阻)等半导体的部件。
记录再生磁头21在写入用户数据的情况下,通过基于由头放大器IC22供给的电信号产生磁场使磁盘10的磁记录层的磁化方向变化。由此,记录再生磁头21将用户数据向磁盘10写入。
另外,记录再生磁头21在读出用户数据的情况下,一边在磁盘10上移动,一边生成与磁盘10的磁记录层的磁化方向对应的电信号。记录再生磁头21经由头放大器IC22将生成的电信号供给到读写通道30。
头放大器IC22对由记录再生磁头21供给的电信号的信号强度进行放大。另外,头放大器IC22将由读写通道30供给的用户数据转换成电信号,并供给到记录再生磁头21。
音圈马达23根据由VCM驱动电路31供给的驱动电流,驱动磁头臂组件20。由此,音圈马达23使记录再生磁头21沿着磁盘10的径向(或沿着相对于径向具有角度的倾斜的方向)向外侧或内侧移动,并使之在轨道TR间移动。径向是指穿过磁盘的中心的方向。
主轴马达24根据由SPM驱动电路32供给的驱动电流,使磁盘10旋转。例如,主轴马达24是DC(直流)无刷电机(brushless motor)。
读写通道30例如由LSI(Large Scale Integration:大规模集成电路)或ASIC(Application Specific Integrated Circuit:专用集成电路)、FPGA(Field-Programmable Gate Array:现场可编程门阵列)等硬件来实现。读写通道30将经由MCU60由HDC50供给的用户数据编码成预定格式的数据序列。读写通道30将编码而成的数据序列供给到头放大器IC22。
另外,读写通道30对由记录再生磁头21读出并由头放大器IC22放大而成的电信号进行解码,并经由MCU60供给到HDC50。此外,在记录再生磁头21采用DFH(Dynamic FlyingHeight control:动态浮动高度控制)技术的情况下,读写通道30也可以向对记录再生磁头21进行加热的加热器供给电流。
VCM驱动电路31接受来自MCU60的控制信号并向音圈马达23供给驱动电流。SPM驱动电路32接受MCU60的控制信号并向主轴马达24供给驱动电流。
主机接口40与主机100进行通信。主机接口40是接口的一例。主机接口40从主机100接收写入命令、读出命令或其他命令,所述写入命令请求对磁盘10写入用户数据,所述读出命令请求从磁盘10读出用户数据。例如,在由主机100发送的写入命令中,至少包含键和值(用户数据),在读出命令中至少包含键。此外,主机100也可以向存储设备1分别发送写入命令、键或值。另外,主机100也可以向存储设备1分别发送读出命令和键。
另外,主机接口40将根据接收到的读出命令而读出的用户数据发送给作为读出命令的发送源的主机100。
另外,主机接口40也可以在对从主机100接收到的命令进行预定的信号处理之后,将进行了该信号处理的命令供给到之后的HDC50等。
HDC50将通过主机接口40接收到的写入命令所包含的用户数据暂时保存在RAM70的写入缓存(未图示)中。另外,HDC50将通过MCU60的控制从磁盘10读出的用户数据暂时保存在RAM70的读出缓存(未图示)中。
另外,HDC50向从主机100接收到的用户数据赋予纠错码(Error CorrectionCode:ECC),并供给到读写通道30。HDC50在纠错码中使用LDPC(Low-Density Parity-Check:低密度奇偶校验)符号或里德所罗门符号、汉明符号、块符号、奇偶校验符号等码。另外,HDC50也可以向用户数据赋予CRC(Cyclic Redundancy Check:循环冗余检验)符号。
另外,HDC50基于由读写通道30解码而成的用户数据所包含的纠错码,进行纠错。
所谓“纠错”可以是包含对数据中的错误进行订正的处理,或者将检测出错误的数据使用通过冗余化保存在其他存储区域中的与该数据内容相同的其他数据来进行改写(overwrite)的处理的过程(process)。
例如,HDC50使用纠错码,以位为单位或以字节为单位等按照预定的数据大小的单位,检测数据的错误,并对检测出错误的数据进行订正。“错误error”的概念包含错误(errors)和可能的错误(likely errors)。可以设为:用“纠错”订正的数据中是否真的存在错误并不是问题(matter),而是经“纠错”的数据存在有错误的可能性。
另外,“纠错”也可以通过将基于纠错码检测出错误的数据用与该数据内容相同的其他数据进行改写来执行。
“与该数据内容相同的其他数据”例如既可以保存在相同的存储介质内的、与保存有该数据的存储区域不同的其他存储区域,也可以保存在与具有保存该数据的存储区域的存储介质不同的存储介质的存储区域。
例如,HDC50以保存在磁盘10上的预定存储区域的冗余化数据为基础,将不能读出的用户数据复原,并使复原后的用户数据向作为读出对象的扇区SC覆盖并写入。
另外,HDC50也可以在未利用后述的MCU60进行用户数据的写入处理或读出处理的期间控制记录再生磁头21并进行验证。验证是存储设备1主动地读出被写入到磁盘10的任意的扇区SC的数据,并对读出的数据进行纠错的处理。
另外,HDC50也可以通过反向(reverse)ECC(Error Correction Code:纠错码),进行纠错码的赋予和纠错。反向ECC是在进行数据的编码前赋予纠错码,并在进行用户数据的解码前进行纠错的方式。
MCU60按保存在写入缓存中的顺序,写入或读出用户数据,所述写入缓存保存在RAM70中。MCU60需要等待用户数据的写入或读出,直到记录再生磁头21向作为目的的轨道TR上的移动完成。因此,为了提高对主机100的命令的响应速度,HDC50可以调换写入缓存中的用户数据的保存顺序,以使得记录再生磁头21的移动时间成为最小,即音圈马达23的驱动量成为最小。
图3是表示第一实施方式中的MCU的构成和保存于RAM的信息的一例的图。第一实施方式中的MCU60也可以包含头控制部61、异常判定部62以及改写处理部63,但不限于此。上述MCU60的构成要素的一部分或全部也可以通过MPU(Micro Processing Unit:微型处理单元)等处理器执行存储于ROM80的程序来实现。另外,MCU60的构成要素中的一部分或全部也可以由LSI或ASIC、FPGA等硬件实现,并具有用于实现各个功能的电路结构(circuitry)。
例如,除了将用户数据保存在写入缓存中以外,RAM70还保存扇区管理表71和各键地址表72等。扇区管理表71和各键地址表72在存储设备1的电源设为关闭状态期间保持在磁盘10中。
另外,当存储设备1的电源成为开启状态时,扇区管理表71和各键地址表72在RAM70中被展开并使用,在电源设为关闭状态时,回写到磁盘10中。此外,存储设备1也可以包含非易失地保持扇区管理表71、各键地址表72的非易失性存储器(未图示)。非易失性存储器例如是指闪存或MRAM(Magnetoresistive Random Access Memory:磁阻式随机访问存储器)。
ROM80保存HDC50、MCU60的处理器执行的引导程序、固件等程序。程序的一部分也可以保存在磁盘10或上述非易失性存储器中。
图4是表示扇区管理表的一例的图。如图所示,扇区管理表71对按各轨道TR的编号(轨道编号)的轨道TR所包含的扇区SC的编号(扇区编号)赋予表示数据保存完成或未保存这样的保存状态的信息。
例如,轨道编号表示磁盘10上的轨道TR的物理坐标(在径向上,从外侧或从内侧起第几个)。扇区编号表示从利用轨道编号确定的轨道TR上的成为基准的扇区SC起,沿周向数为第几个扇区SC。因此,带有与第一扇区SC的编号连续的扇区编号的第二扇区SC是与第一扇区SC物理上连续的扇区SC。
图5是表示在键值方式中使用的各键地址表的一例的图。各键地址表72是参照信息的一例。在图示的例子中,在各键地址表72中,对用命令指定的键关联有用户数据的数据长度、轨道编号以及最前头扇区的扇区编号。最前头扇区是指,被写入了与相应的键进行了关联的用户数据的扇区SC中的、扇区编号最小的扇区SC。以下,有时将被写入了与一个键进行了关联的数据的扇区SC的集合称为扇区组SG。此外,在图5的例子中,设为与一个键进行了关联的数据向一个轨道TR内写入,但是也可以是与一个键进行了关联的数据跨越多个轨道TR而写入的情况。在该情况下,也可以对一个键关联有多组轨道编号与最前头扇区的扇区编号的组合。
头控制部61根据由主机接口40接收到的命令,使记录再生磁头21在作为对象的扇区SC上移动。头控制部61在使记录再生磁头21在作为对象的扇区SC上移动时,使记录再生磁头21从轨道TR上的伺服区域SV读出伺服信息,并控制在磁盘10上移动的记录再生磁头21的位置。在伺服信息中包含轨道编号、扇区编号以及用于定位的突发(burst)信号。
例如,头控制部61在使记录再生磁头21向由命令指定的期望的扇区SC移动的情况下,首先,控制SPM驱动电路32使磁盘10旋转,从记录再生磁头21所处的轨道TR上的伺服区域SV读出伺服信息。头控制部61基于读出的两点间的伺服信息(最近的信息和其之前的一点的信息),算出记录再生磁头21相对于磁盘10的相对移动速度。
头控制部61算出包含最近读出的伺服信息的轨道TR与包含期望的扇区SC的轨道TR的距离,决定与该算出的距离对应的记录再生磁头21的目标速度。头控制部61基于决定了的目标速度和算出的相对移动速度,决定向音圈马达23供给的驱动电流。头控制部61控制VCM驱动电路31,向音圈马达23供给决定了的驱动电流。这样,头控制部61控制记录再生磁头21的移动速度。
在记录再生磁头21移动到目的轨道TR上后,头控制部61等待,直到期望的扇区SC旋转到记录再生磁头21的位置。当期望的扇区SC到达记录再生磁头21的位置时,头控制部61使记录再生磁头21对该期望的扇区SC进行与命令相应的读出、写入以及删除等处理。
在期望的扇区SC要旋转来到记录再生磁头21的写入位置期间,为了维持包含期望的扇区SC的轨道TR上的位置,头控制部61使记录再生磁头21从该轨道TR上的伺服区域SV读出伺服信息。头控制部61基于读出的伺服信息中的突发信号的波形图案(信号电平、脉冲宽度等),调整音圈马达23的驱动量。由此,头控制部61使记录再生磁头21维持在轨道TR的中心线(沿着磁盘10的周向将各轨道的区域二等分的线)上的位置。
[写入处理]
以下,说明通过主机接口40接收到写入命令的情况下的头控制部61的处理。在通过主机接口40接收到指定了新的键的写入命令的情况下,头控制部61基于由写入命令指定的数据长度,决定要写入用户数据的扇区SC。新的键是未登记在各键地址表72中的键。头控制部61基于用户数据的数据长度和每个扇区SC的存储容量算出需要的扇区数,并判定在磁盘10上是否存在该扇区数以上的物理上连续的空闲区域。空闲区域是指能够写入数据的一个以上存储区域。在存储介质为磁盘10的情况下,空闲区域是指能够写入数据的一个以上扇区SC(空闲扇区)。头控制部61通过参照扇区管理表71来判定是否为空闲区域。此外,在写入命令中不包含数据长度的情况下,头控制部61通过参照HDC50或MCU60将用户数据(值)保存于RAM70时的开始地址和结束地址来导出数据长度。
在扇区SC的编号连续且保存状态为未保存的扇区SC数为需要的扇区数以上的情况下,头控制部61将用户数据写入到该扇区SC的编号连续的一个以上的扇区SC的集合中。并且,头控制部61改写扇区管理表71和各键地址表72。
在向磁盘10写入与新的键对应的用户数据的情况下,头控制部61在各键地址表72上追加数据序列,所述数据序列是将新的键、用户数据(值)的数据长度、写入了的轨道编号、开始写入的最初的最前头扇区SCh的扇区编号进行了关联得到的数据序列。并且,头控制部61在扇区管理表71上,将表示写入了与新的键对应的用户数据的扇区SC的扇区编号的保存状态改写为“保存完成”。
另外,在通过主机接口40接收到指定了存在于各键地址表72的已有的键和新的用户数据的写入命令的情况下,头控制部61在与已有的键对应的扇区SC的集合中覆盖并写入新的用户数据。
[读出处理]
以下,说明在通过主机接口40接收到读出命令的情况下的头控制部61的处理。在通过主机接口40接收到读出命令的情况下,头控制部61使用由读出命令指定的键,参照各键地址表72,判定在各键地址表72中是否存在与读出命令所包含的键一致的键。
在存在一致的键的情况下,头控制部61使记录再生磁头21从与键对应的全部扇区中依次读出用户数据。并且,头控制部61经由读写通道30,向HDC50发送读出的用户数据。
例如,头控制部61参照与键对应的轨道编号和最前头扇区SCh的扇区编号,确定写入了用户数据的扇区组SG的最前头扇区SCh。并且,头控制部61从以该最前头扇区SCh开始的扇区组SG依次读出用户数据。在不存在一致的键的情况下,头控制部61使主机接口40向主机100发送错误响应。
头控制部61经由HDC50向主机接口40供给包含从扇区组SG读出的用户数据的数据的集合(以下称为数据组)。“数据组”是指分别已存储或将要存储在不同的存储区域中的多个数据的集合。主机接口40对作为读出命令的发送源的主机100发送用户数据。
[异常判定·改写处理]
以下,说明异常判定部62和改写处理部63的处理。异常判定部62基于记录再生磁头21对用户数据的读取状态,判定在扇区组SG内的某一个扇区SC中是否检测出错误。
例如,异常判定部62可以在磁盘10旋转期间,试行两次以上的某决定的次数的从相同的扇区SC读出用户数据,在其结果为该某决定的次数都不能读出用户数据的情况(用户数据的读出失败的情况)下,判定为在该扇区SC中检测出错误。“某决定的次数都不能读出用户数据的情况”是指,例如在某决定的次数为三次的情况下,包含在第一至三次都不能读出用户数据,在第四次能够读出用户数据的情况。
另外,异常判定部62也可以在利用HDC50进行的基于纠错码的纠错的结果是,在经纠错订正后的用户数据的错误数为阈值以上的情况下,判定为在该扇区SC中检测出错误。即,检测出错误的状态可以是指以位为单位或以字节为单位等以预定的数据大小为单位,执行了一次以上的某决定的次数的纠错后的状态。
HDC50在进行纠错期间对订正后的用户数据的错误数进行计数,并存储在RAM70中。异常判定部62参照存储在该RAM70中的信息,取得订正后的用户数据的错误数。
异常判定部62在利用HDC50进行了验证的情况下也同样地判定在扇区SC中是否检测出错误。
改写处理部63在由异常判定部62判定为在扇区SC中检测出错误的情况下,控制记录再生磁头21,将写入到包含由异常判定部62判定为检测出错误的扇区SC(以下,称为异常扇区SCe)的扇区组SG的数据组向同一轨道TR内的物理上连续的一个以上扇区SC的集合(不包含异常扇区SCe)写入(改写)。在写入到包含异常扇区SCe的扇区组SG的数据组中,例如至少包含写入到异常扇区SCe的用户数据中的一部分或全部,和写入到与异常扇区SCe不同的一个以上扇区SC的用户数据中的一部分或全部并且是与写入到异常扇区SCe的用户数据关联的用户数据。
“与写入到异常扇区SCe的用户数据关联的用户数据”是指,例如与写入异常扇区SCe的用户数据关联有相同的键的用户数据。即,“与写入到异常扇区SCe的用户数据关联的用户数据”是指,与写入到异常扇区SCe的用户数据指定了相同的键信息并被指示了写入的用户数据。写入到异常扇区SCe的用户数据是“第一数据”的一例,与写入到异常扇区SCe的用户数据关联的用户数据是“第二数据”的一例。写入到异常扇区SCe的用户数据和与写入到异常扇区SCe的用户数据关联的用户数据是指,在写入处理或利用改写处理部63进行的改写处理中,写入到物理上连续的扇区SC中。因此,在数据组中包含写入到与异常扇区SCe物理上连续的扇区SC的数据。
在该数据组中还可以包含不与写入到异常扇区SCe的用户数据(第一数据)关联的用户数据或伺服信息等其他数据。“不与写入到异常扇区SCe的用户数据关联的用户数据”是指,例如关联了与写入到异常扇区SCe的用户数据不同的键的用户数据。
此外,即使伺服区域SV进入到扇区组SG之间,也将各个扇区SC彼此作为物理上连续的扇区进行处理。
图6是表示第一实施方式中的存储设备进行的处理的一例的流程图。本流程图的处理例如在主机接口40从主机100接收到读出命令时或进行验证时开始。
首先,头控制部61控制记录再生磁头21,以主机接口40接收到的读出命令的键所对应的数据长度为基础,开始从以最前头扇区SCh起始的扇区组SG读出用户数据(步骤S100)。
接着,异常判定部62判定是否能够从扇区组SG读出用户数据(步骤S102)。在判定为能够读出用户数据的情况下,异常判定部62判定为在作为读出对象的扇区组SG内的任一个扇区SC中均没有产生异常,并结束本流程图的处理。
另一方面,在由异常判定部62判定为不能读出用户数据的情况下,HDC50基于用户数据所包含的纠错码进行用户数据的纠错,并将用户数据复原(步骤S104)。
例如,在尽管进行了纠错用户数据也没被复原的情况下,头控制部61使记录再生磁头21维持在相同的轨道TR上的位置,控制SPM驱动电路32,一边使磁盘10旋转预定次数,一边每当磁盘10旋转时,从作为读出对象的扇区SC读出用户数据。HDC50在利用头控制部61反复进行读出处理期间,每次都试行纠错。
接着,异常判定部62判定在利用头控制部61反复进行的读出处理的次数为预定次数以内的期间是否能够读出用户数据(步骤S106)。在由异常判定部62判定为在读出处理的次数为预定次数以内的期间不能读出用户数据的情况下,HDC50经由主机接口40向主机100发送错误信息,所述错误信息表示不能读出与读出命令对应的用户数据(步骤S108)。
另一方面,在由异常判定部62判定为在读出处理的次数为预定次数以内的期间读出了用户数据的情况下,异常判定部62判定为在相应的扇区SC中检测出错误。
当利用异常判定部62在作为读出对象的扇区组SG内的某一个扇区SC中检测出错误时,改写处理部63进行将写入到包含异常扇区SCe的扇区组SG的数据组向不包含异常扇区SCe且同一轨道TR内的物理上连续的扇区SC写入的处理(步骤S110)。如上所述,在写入到包含异常扇区SCe的扇区组SG的数据组中,包含写入到异常扇区SCe的第一数据和在各键地址表72中关联了与第一数据相同的键的第二数据。
图7是表示将写入到包含异常扇区的扇区组的数据组向在磁盘的周向上连续的扇区写入的处理的一例的流程图。本流程图的处理相当于上述图6所示的流程图的步骤S110。
首先,改写处理部63判定在与包含异常扇区SCe的扇区组SG相同的轨道TR内,是否存在扇区组SG的扇区数以上的物理上连续的空闲区域(步骤S200)。在判定为在相同的轨道TR内存在连续的空闲区域的情况下,改写处理部63控制记录再生磁头21,将写入到与键对应的扇区组SG(包含异常扇区SCe的扇区组SG)的数据组向相同的轨道TR内的物理上连续的空闲区域写入(步骤S202)。在这里,“写入”例如是指如下处理:读出或复原写入到扇区组SG的数据组,将读出或复原后的数据组向RAM70写入,并将写入到RAM70的数据组向轨道TR内的连续的空闲区域写入。
图8和图9是示意地表示向其他扇区写入数据组的处理的情形的图。如图8所示,在扇区组SG内中产生了异常扇区SCe。因此,改写处理部63判定在相同的轨道TR内是否存在扇区组SG的扇区数7以上的物理上连续的空闲区域。在图8的例子中,在相同的轨道TR内,存在8个扇区数的物理上连续的空闲区域。因此,如图9所示,改写处理部63将写入到扇区组SG的数据组向物理上连续的空闲区域写入。以下,在图中,有时对包含异常扇区SCe的扇区组赋予并示出SG的符号,对改写了数据组而得到的扇区的集合赋予并示出SG#的符号。
返回图7的说明。在步骤S200中判定为在相同的轨道TR内不存在物理上连续的空闲区域的情况下,改写处理部63判定在其他轨道TR内是否存在扇区组SG的扇区数以上的物理上连续的空闲区域(步骤S204)。在判定为在其他轨道TR内存在物理上连续的空闲区域的情况下,改写处理部63控制记录再生磁头21,将写入到与键对应的扇区组SG的数据组向其他轨道TR内的物理上连续的空闲区域写入(步骤S206)。
图10是示意地表示在相同的轨道内不存在物理上连续的空闲区域的情况下进行的向其他扇区写入数据组的处理的情形的图。在图示的例子中,在轨道TR2内不存在包含异常扇区SCe的扇区组SG的扇区数以上的物理上连续的空闲区域。在该情况下,改写处理部63例如可以优先将用户数据向相对于该轨道TR2在磁盘10的径向上相邻的轨道TR1写入。在这里,径向既可以是指向外侧的方向,也可以是指向内侧的方向。
例如,改写处理部63判定在与轨道TR2相邻的轨道TR1内是否存在包含异常扇区SCe的扇区组SG的扇区数以上的物理上连续的空闲区域。在图示的例子中,由于在轨道TR1内存在扇区组SG的扇区数以上的物理上连续的空闲区域,所以异常判定部62将写入到扇区组SG的数据组向该轨道TR1内的物理上连续的空闲区域写入。
此外,写入数据组的轨道TR的优先顺序既可以优先设定相对于包含异常扇区SCe的轨道TR位于径向外侧的轨道TR,也可以优先设定相对于包含异常扇区SCe的轨道TR位于内侧的轨道TR。
返回图7的说明。在步骤S204中判定为在其他轨道TR内不存在连续的空闲区域的情况下,改写处理部63对磁盘10进行碎片整理(盘碎片整理),进行增加物理上连续的空闲区域的数量的处理(步骤S208)。
图11是示意性地表示在磁盘内通过碎片整理增加了物理上连续的空闲区域的数量的情形的图。例如,改写处理部63为了将零碎化的数据统一归拢而进行数据的再配置。“数据的再配置”是指如下处理:将写入到已经写入有数据的扇区SC的数据向能够写入数据的扇区SC写入,释放原本写入有数据的扇区SC的数据,并生成物理上连续的空闲区域。
“释放”例如是指在扇区管理表71上,将与扇区SC的扇区编号对应的保存状态改写为“未保存”,并将改写了保存状态的扇区SC设为能够写入新的数据的状态。另外,“释放”也可以指包含如下处理:向写入了数据的扇区SC实际写入预定的数据,并擦除数据。
返回图7的说明。改写处理部63在进行盘碎片整理后,判定在与包含异常扇区SCe的扇区组SG相同的轨道TR内,是否生成了扇区组SG的扇区数以上的物理上连续的空闲区域(步骤S210)。如果判定为在相同的轨道TR内生成了扇区组SG的扇区数以上的物理上连续的空闲区域的情况下,改写处理部63进行步骤S202的处理。
另一方面,如果判定为在相同的轨道TR内未生成扇区组SG的扇区数以上的物理上连续的空闲区域的情况下,改写处理部63进行步骤S206的处理。
在结束了向其他扇区SC写入数据组的处理的情况下,改写处理部63改写扇区管理表71和各键地址表72(步骤S212)。
在使数据组移动至相同的轨道TR内的物理上连续的空闲区域的情况下,改写处理部63在各键地址表72上将最前头扇区SCh的扇区编号改写为移动目的地的扇区SC的扇区编号。另外,改写处理部63在扇区管理表71上将与移动目的地的扇区SC的扇区编号对应的保存状态改写为“保存完成”,并且,将除去了异常扇区SCe的扇区组SG的扇区编号所对应的保存状态改写为“未保存”。
在将数据组写入到其他轨道TR内的物理上连续的空闲区域的情况下,改写处理部63在各键地址表72上,将轨道编号改写为移动目的地的轨道编号,并且将最前头扇区SCh的扇区编号改写为移动目的地的扇区SC的扇区编号。另外,改写处理部63在扇区管理表71上将与移动目的地的扇区SC的扇区编号对应的保存状态改写为“保存完成”,并且,将除去了异常扇区SCe的扇区组SG的扇区编号所对应的保存状态改写为“未保存”。
图12是表示伴随着向其他扇区写入数据组的处理而被改写的各键地址表的一例的图。例如,改写处理部63在上述图5所示的各键地址表72中将与键“AAAA”对应的用户数据从轨道TR2移动到相邻的轨道TR1内的连续的空闲区域的情况下,将各键地址表72的轨道编号2改写为移动目的地的轨道编号1,并且将最前头扇区SCh的扇区编号02改写为移动目的地的扇区SC的扇区编号22。
在结束了将数据组写入到其他扇区SC的处理的情况下,为了禁止对异常扇区SCe的数据的写入,改写处理部63也可以在扇区管理表71上将异常扇区SCe的扇区编号所对应的保存状态固定为“保存完成”。
图13是表示第一实施方式中的向其他扇区写入用户数据的处理的结果的图。如图所示,在第一实施方式中,将写入到包含异常扇区SCe的扇区组SG的数据组写入到不包含异常扇区SCe且物理上连续的扇区SC。
因此,由于反复使用存储设备1而成为产生了异常扇区SCe的状态后,通过读出全部扇区SC,对写入到异常扇区SCe的用户数据的移动后的扇区SC的位置与写入有相同的数据组所包含的剩余的数据的扇区SC的位置进行比较,能够判断是否进行了与实施方式同样的处理。
根据以上说明的第一实施方式,由于将至少包含第一数据和第二数据的数据组写入到与异常扇区SCe不同的至少一个扇区SC,所以在接下来读出数据组的情况下,能够减少在使记录再生磁头21移动到期望的扇区SC后还发生记录再生磁头21的寻找(移动)的可能性,所述第一数据是写入到检测出错误的异常扇区SCe的数据的至少一部分,所述第二数据是写入到与异常扇区SCe物理上连续的扇区SC的数据的至少一部分。其结果,第一实施方式中的存储设备1能够提高对从主机100接收到的读出命令的响应性。
(第一实施方式的变形例)
以下,说明第一实施方式的变形例。上述第一实施方式中的改写处理部63在判定为包含异常扇区SCe的扇区组SG的扇区数以上的物理上连续的空闲区域在任一个轨道TR中都不存在的情况下,也可以使写入到扇区组SG的数据组跨越在磁盘10的径向上连续的轨道TR而移动。
图14和图15是示意地表示跨越在磁盘的径向上连续的轨道并写入数据组的处理的情形的图。在图14的例子中,在包含异常扇区SCe的轨道TR2内,不存在扇区组SG的7个扇区数以上的物理上连续的空闲区域,仅存在与3个扇区数相应的物理上连续的空闲区域。另外,假设与7个扇区数相应的空闲区域也不存在于任一个轨道TR中。在该情况下,改写处理部63判定在相邻的轨道TR1内是否存在与剩余的4个扇区数相应的物理上连续的空闲区域。在图14的例子中,在轨道TR1内存在与5个扇区数相应的物理上连续的空闲区域。因此,如图15所示,改写处理部63将写入到扇区组SG的数据组进行分割,并将分割得到的数据组(以下,称为子数据组)向轨道TR2内的与3个扇区数相应的物理上连续的空闲区域和轨道TR1内的与4个扇区数相应的物理上连续的空闲区域写入。
进一步,即使一个轨道TR全部为空闲区域,在该一个轨道TR内无法容纳数据组的情况下,改写处理部63也可以同样地将数据组分割为子数据组,使子数据组跨越多个轨道TR移动。
另外,改写处理部63也可以算出或推定碎片整理所需的处理时间或处理负荷,如果算出或推定出的处理时间或处理负荷大于基准以上,则将数据组分割为子数据组,使子数据组跨越多个轨道TR移动,而不进行碎片整理。
(第二实施方式)
以下,说明第二实施方式中的存储设备1A。在第二实施方式的存储设备1A中,与第一实施方式的不同之处在于:如果能够将写入到异常扇区SCe的用户数据向相同的轨道TR写入,则仅将写入到异常扇区SCe的用户数据向相同的轨道TR的空闲区域写入。因此,以涉及的不同之处为中心进行说明,并省略针对共同的部分的说明。
图16是表示第二实施方式中的存储设备进行的处理的一例的流程图。本流程图的处理相当于上述图6所示的流程图的步骤S110。
首先,改写处理部63判定在包含异常扇区SCe的相同的轨道TR内是否存在与异常扇区SCe的扇区数数目相同的空闲区域(步骤S300)。在判定为在相同的轨道TR内存在数目相同的空闲区域的情况下,改写处理部63控制记录再生磁头21,将写入到异常扇区SCe的用户数据向相同的轨道TR内的空闲区域写入(步骤S302)。
图17和图18是表示仅将写入到异常扇区的用户数据向相同的轨道内写入的情形的图。在图17中,示出了在磁盘10内产生了一个异常扇区SCe的情况。在该情况下,例如,如图18所示,改写处理部63仅将写入到异常扇区SCe的用户数据向同一轨道TR上的一个空闲区域写入(图中用SC#表示的区域)。
另一方面,在判定为在相同的轨道TR内不存在数目相同的空闲区域的情况下,改写处理部63判定在其他轨道TR内是否存在与包含异常扇区SCe的扇区组SG的扇区数数目相同的物理上连续的空闲区域(步骤S304)。在判定为在其他轨道TR内存在与扇区组SG的扇区数数目相同的物理上连续的空闲区域的情况下,改写处理部63控制记录再生磁头21,将写入到扇区组SG的数据组向其他轨道TR内的空闲区域写入(步骤S306)。
图19和图20是表示了将写入到包含异常扇区的扇区组的数据组向相邻的轨道内写入的情形的图。在图19中,示出了在与扇区组SG相同的轨道TR内不存在与扇区组SG的扇区数数目相同的空闲区域,在相邻的轨道TR内存在与扇区组SG的扇区数数目相同的空闲区域。在该情况下,例如,如图20所示,改写处理部63将写入到包含异常扇区SCe的扇区组SG的数据组向相邻的轨道TR内的物理上连续的空闲区域写入。
另一方面,在判定为在其他轨道TR内不存在与扇区组SG的扇区数数目相同的空闲区域的情况下,改写处理部63对磁盘10进行碎片整理,进行增加连续的空闲区域的数量的处理(步骤S308)。
接着,改写处理部63判定在包含异常扇区SCe的相同的轨道TR内是否生成了与异常扇区SCe的扇区数数目相同的空闲区域(步骤S310)。在判定为在相同的轨道TR内生成了与异常扇区SCe的扇区数数目相同的空闲区域的情况下,改写处理部63进行步骤S302的处理。
另一方面,在判定为在相同的轨道TR内未生成与异常扇区SCe的扇区数数目相同的空闲区域的情况下,改写处理部63进行步骤S306的处理。接着,在将写入到异常扇区SCe的用户数据或写入到扇区组SG的数据组向其他扇区SC写入的处理结束了的情况下,改写处理部63改写扇区管理表71和各键地址表72(步骤S312)。由此,本流程图的处理结束。
根据以上说明的第二实施方式,在相同的轨道TR内存在与异常扇区SCe的扇区数数目相同的空闲区域的情况下,将写入到异常扇区SCe的第一数据写入到相同的轨道TR内的空闲区域,并且在相同的轨道TR内不存在与异常扇区SCe的扇区数数目相同的空闲区域的情况下,在其他轨道TR内的空闲区域中,将至少包含第一数据和第二数据的数据组写入到与异常扇区SCe不同的至少一个扇区SC。由此,第二实施方式中的存储设备1A与第一实施方式同样地,能够提高对从主机100接收到的读出命令的响应性。
(第三实施方式)
以下,说明第三实施方式中的存储设备1B。在第三实施方式的存储设备1B中,与第一和第二实施方式的不同之处在于:与主机100进行包含遵从LBA方式的地址的命令的通信,并进行用某固定的数据长度指定的数据的写入和读出。因此,以涉及的不同之处为中心进行说明,并省略针对共同的部分的说明。
图21是表示利用LBA方式从主机接收的写入命令的内容的一例的图。在第三实施方式中,在从主机100接收的写入命令中包含LBA、向由LBA指定的扇区SC写入的或从扇区SC读出的数据的数据长度、以及表示同时进行访问的同时访问标记。
同时访问标记是指定主机100对跨越多个扇区SC写入的用户数据同时进行写入或读出的标记。同时访问标记例如包含能够识别用户数据的识别符。写入到建立了相同的同时访问标记的扇区SC的各个数据彼此作为相互关联的数据来处理。
当由主机接口40接收到写入命令时,MCU60生成图22例示的各LBA地址表72A并保存在RAM70中。
图22是表示在LBA方式中使用的各LBA地址表的一例的图。各LBA地址表72A是参照信息的另一例。在图示的例子中,在各LBA地址表72A中,与LBA关联有用户数据的数据长度、轨道编号、扇区编号以及同时访问标记。
在由主机接口40接收到遵从LBA方式的读出命令的情况下,头控制部61参照各LBA地址表72A,对读出命令的LBA所对应的扇区编号判定是否建立了同时访问标记。在建立了同时访问标记的情况下,头控制部61从建立了同时访问标记的全部扇区编号表示的扇区SC读出用户数据。在图22的例子中,由于对扇区编号02至07建立了同时访问标记,所以头控制部61从这些扇区编号的扇区SC同时读出用户数据。此外,也可以不进行这样的处理。在该情况下,主机100对预先赋予了同时访问标记的用户数据发行多个命令,一次写入或读出。
在由主机接口40接收到的LBA方式的命令为读出命令的情况下或进行验证的情况下,异常判定部62判定在建立了同时访问标记的扇区SC的任一个中是否检测出错误。在由异常判定部62判定为在建立了同时访问标记的扇区SC的任一个中检测出错误的情况下,与第一实施方式同样地,改写处理部63将写入到建立了相同的同时访问标记的扇区组SG的数据组向不包含异常扇区SCe且同一轨道TR内的物理上连续的扇区SC写入。
第三实施方式的存储设备1B既可以如第一实施方式的变形例那样,在判定为在任一个轨道TR中均不存在包含异常扇区SCe的扇区组SG的扇区数以上的物理上连续的空闲区域的情况下,使写入到扇区组SG的数据组跨越在磁盘10的径向上连续的多个轨道TR而移动,也可以如第二实施方式那样,如果能够将写入到异常扇区SCe的用户数据向相同的轨道TR写入,则仅将写入到异常扇区SCe的用户数据移动到相同的轨道TR的空闲区域。
根据以上说明的第三实施方式中的存储设备1B,在赋予了表示同时被访问的信息的扇区SC的任一个中检测出错误的情况下,将写入到异常扇区SCe的第一数据和带有与该第一数据相同的同时访问标记的第二数据向同一轨道TR内的物理上连续的扇区SC写入。其结果,第三实施方式中的存储设备1B能够提高对从主机100接收到的读出命令的响应性。
(第四实施方式)
以下,说明第四实施方式中的存储设备1C。第四实施方式中的存储设备1C与第一至第三实施方式的不同之处在于:基于从主机100接收到的读出命令的内容,判定是否关联有扇区SC间的数据。因此,以涉及的不同之处为中心进行说明,并省略针对共同的部分的说明。
图23是表示第四实施方式中的MCU的构成的一例的图。第四实施方式中的MCU60C除了上述的头控制部61、异常判定部62以及改写处理部63以外,还包含访问解析部64。另外,RAM70C除了上述扇区管理表71和各LBA地址表72A以外,还保存同时访问频率表73。对第四实施方式中的存储设备1C与主机100进行按照LBA方式的命令的通信进行说明,但不限于此,也可以进行按照键值方式的命令的通信。在该情况下,RAM70C也可以包含各键地址表72。
访问解析部64基于由主机接口40接收到的读出命令的内容,判定是否关联有扇区SC间的各个数据。例如,在指定按照LBA方式的地址而与主机100进行通信的情况下,在接收到包含某LBA的读出命令时,访问解析部64判定是否存在与包含该LBA的读出命令同时或连续地接收的频率高的读出命令。“连续地接收”例如既可以指在预定时间以内接收,也可以指在预定时间以内持续地(在中间不夹入其他命令)接收。在判定为存在同时或连续地接收的频率高的读出命令的情况下,访问解析部64判定为关联了与这些读出命令所包含的LBA对应的多个扇区SC间的各个数据。例如,访问解析部64通过参照保存在RAM70中的同时访问频率表73,判定是否关联了各个数据彼此。
图24是表示同时访问频率表的一例的图。同时访问频率表73是参照信息的另一例。访问解析部64按轨道编号与扇区编号的组合的每一个,对接收次数进行计数,并登记在同时访问频率表73中,所述轨道编号与扇区编号的组合是表示由主机接口40同时接收到的LBA所对应的扇区SC的轨道编号与扇区编号的组合,或表示连续地通过主机接口40接收到的LBA所对应的扇区SC的轨道编号与扇区编号的组合。访问解析部64在通过登记在同时访问频率表73中的轨道编号与扇区编号的组合中的、接收次数为阈值以上的组合表示的扇区SC的组中将数据彼此关联。
异常判定部62判定在构成扇区SC的组的任一个扇区SC中是否检测出错误,所述扇区SC保存由访问解析部64进行了关联的数据。在由异常判定部62判定为在构成扇区SC的组的任一个扇区SC中检测出错误的情况下,改写处理部63将写入到扇区SC的组的用户数据向同一轨道TR内的物理上连续的扇区SC写入。
首先,第四实施方式中的存储设备1C进行与上述图6所示流程图的处理相同的处理,在判定为在作为读出对象的扇区组SG内的任一个扇区SC中检测出错误时,进行后述的图25所示的流程图的处理。
图25是表示第四实施方式中的存储设备进行的处理的一例的流程图。本流程图的处理相当于上述图6所示的流程图的步骤S110。
首先,改写处理部63判定表示异常扇区SCe的轨道编号和扇区编号是否登记在同时访问频率表73中(步骤S400)。在判定为表示异常扇区SCe的轨道编号和扇区编号未登记在同时访问频率表73中的情况下,改写处理部63将写入到异常扇区SCe的用户数据单独地向相同的轨道TR内的空闲区域或其他轨道TR内的空闲区域写入(步骤S402)。
另一方面,在判定为表示异常扇区SCe的轨道编号和扇区编号登记在同时访问频率表73中的情况下,改写处理部63从同时访问频率表73提取包含异常扇区SCe的扇区SC的组(步骤S404)。接着,改写处理部63判定在与异常扇区SCe相同的轨道TR内,是否存在与构成提取出的扇区SC的组的扇区SC的扇区数数目相同的连续的空闲区域(步骤S406)。
在判定为在相同的轨道TR内存在与构成扇区SC的组的扇区SC的扇区数数目相同的连续的空闲区域的情况下,改写处理部63将写入到扇区SC的组的用户数据向相同的轨道TR内的物理上连续的空闲区域写入(步骤S408)。
另一方面,在判定为在相同的轨道TR内不存在与构成扇区SC的组的扇区SC的扇区数数目相同的连续的空闲区域的情况下,改写处理部63判定在其他轨道TR内,是否存在与构成提取出的扇区SC的组的扇区SC的扇区数数目相同的物理上连续的空闲区域(步骤S410)。
在判定为在其他轨道TR内存在与构成扇区SC的组的扇区SC的扇区数数目相同的连续的空闲区域的情况下,改写处理部63将写入到扇区SC的组的用户数据向其他轨道TR内的物理上连续的空闲区域写入(步骤S412)。
另一方面,在判定为在其他轨道TR内不存在与构成扇区SC的组的扇区SC的扇区数数目相同的物理上连续的空闲区域的情况下,改写处理部63对磁盘10进行碎片整理(盘碎片整理),并进行增加空闲区域的处理(步骤S414)。
接着,改写处理部63判定在与异常扇区SCe相同的轨道TR内是否生成了与构成扇区SC的组的扇区SC的扇区数数目相同的物理上连续的空闲区域(步骤S416)。在判定为在相同的轨道TR内生成了与构成扇区SC的组的扇区SC的扇区数数目相同的物理上连续的空闲区域的情况下,改写处理部63进行步骤S408的处理。
另一方面,在判定为在相同的轨道TR内未生成与构成扇区SC的组的扇区SC的扇区数数目相同的物理上连续的空闲区域的情况下,改写处理部63进行步骤S412的处理。接着,在结束了将用户数据写入到其他扇区SC的处理的情况下,改写处理部63改写扇区管理表71和各LBA地址表72A(步骤S418)。由此,本流程图的处理结束。
第四实施方式的存储设备1C既可以如第一实施方式的变形例那样,在判定为在任一个轨道TR中均不存在包含异常扇区SCe的扇区SC的组的扇区数以上的物理上连续的空闲区域的情况下,使写入到扇区SC的组的用户数据跨越在磁盘10的径向上连续的多个轨道TR而移动,也可以如第二实施方式那样,如果能够将写入到异常扇区SCe的用户数据写入相同的轨道TR,则仅将写入到异常扇区SCe的用户数据移动到相同的轨道TR的空闲区域中。
根据以上说明的第四实施方式中的存储设备1C,基于从主机100接收到的读出命令的内容将扇区SC间的数据进行关联,并确定写入了容易同时被主机100访问的数据的扇区SC的组。并且,第四实施方式中的存储设备1C在构成扇区SC的组的任一个扇区SC中检测出错误的情况下,使以该扇区SC的组为单位写入的数据通过同一归拢,向同一轨道TR内的物理上连续的扇区SC写入。由此,第四实施方式中的存储设备1C能够提高对从主机100接收到的读出命令的响应性。
(第五实施方式)
以下,说明第五实施方式中的存储设备1D。第五实施方式中的存储设备1D与第一至第四实施方式不同之处在于存储介质为NAND等半导体存储器270。
图26是表示第五实施方式中的存储设备的构成的一例的图。存储设备1D可以包含主机接口210、读/写管理器220、命令缓存222、写入缓存224、读出缓存226、转换表230、读/写器240、再配置管理器250、再配置管理表252、再写入缓存254、垃圾收集管理器(以下称为GC管理器)260、访问频率管理表262以及半导体存储器270,但不限定于此。
主机接口210通过连接器与主机100连接,并从主机100接收各种命令。命令既可以从主机100主动地发送来,也可以通过根据来自主机100的通知,存储设备1D向主机100请求命令发送(通过命令获取),从而从主机100发送过来。
第五实施方式中的主机100与上述第一实施方式同样地,既可以利用键值方式生成对存储设备1D的命令,也可以利用LBA方式生成对存储设备1D的命令。在本实施方式中,作为一例,对主机100利用键值方式生成对存储设备1D的命令进行说明。
读/写管理器220、读/写器240、再配置管理器250以及GC管理器260也可以由LSI或ASIC、FRGA、PLC等硬件实现,并具有用于实现各自的功能的电路结构(circuitry)等。另外,读/写管理器220、读/写器240、再配置管理器250以及GC管理器260中的一部分或全部也可以通过CPU等处理器执行程序来实现。读/写管理器220、读/写器240、再配置管理器250以及GC管理器260的一部分或全部是“控制器”的一例。
命令缓存222、写入缓存224、读出缓存226、转换表230、再配置管理表252以及访问频率管理表262被设定为存储设备1D具备的易失性存储器(未图示)。作为易失性存储器,可以使用DRAM(Dynamic Random Access Memory:动态随机访问存储器)等各种RAM。另外,转换表230、再配置管理表252以及访问频率管理表262在存储设备1D的电源被设为关闭时保存于半导体存储器270,并在下次接通电源时被从半导体存储器270读出并在易失性存储器中展开。
读/写管理器220控制读/写器240,基于从主机100接收到的写入命令向半导体存储器270写入数据,或基于从主机100接收到的读出命令从半导体存储器270读出数据。
从主机100接收到的命令保存在命令缓存222中。在写入命令保存在命令缓存222的情况下,读/写管理器220在写入缓存224中确保写入区域,并将数据发送请求发送给主机100。主机100接受该数据发送请求而将请求写入的数据(以下称为写入数据)发送给存储设备1D。存储设备1D将从主机100接收到的写入数据保存在写入缓存224中。读/写管理器220控制读/写器240,将保存在写入缓存224的写入数据向与附加在写入命令中的键对应的半导体存储器270的物理地址写入。此外,存储设备1D也可以不以这样的形式取得写入数据,可以从最初起接收附加有数据的命令。
另一方面,在读出命令保存于命令缓存222的情况下,读/写管理器220控制读/写器240,从与附加在写入命令中的键对应的半导体存储器270的物理地址读出数据,将该数据向读出缓存226写入。
图27是表示转换表230的一例的图。转换表230是用于将命令所包含的键和半导体存储器270的物理地址相互转换的表。物理地址可以用块编号和页编号表现,但不限定于此。
在通过向半导体存储器270写入数据而变更了物理地址与键的关系的情况下,利用读/写管理器220或读/写器240更新转换表230。存储设备1D既可以包含一个转换表230,也可以冗余地包含多个转换表230。
读/写器240包含作为与半导体存储器270的接口的接口电路、纠错用的电路以及DMA控制器等。读/写器240将保存于写入缓存224的数据向半导体存储器270写入,或读出写入到半导体存储器270的数据并向读出缓存226写入。
在向半导体存储器270写入数据的情况下,读/写器240向数据赋予纠错码。另外,读/写器240读出写入到半导体存储器270的数据,并基于读出的数据的纠错码进行纠错。
例如,读/写器240使用纠错码,以位为单位或以字节为单位等以预定的数据大小为单位,检测数据的错误,并对检测出错误的数据进行订正。
在检测出数据的错误的情况下,读/写器240向再配置管理器250通知表示在数据中产生了错误的信息。
再配置管理器250包含再配置管理表252。在这里,半导体存储器270可以是NAND存储器,但不限定于此。半导体存储器270包含多个作为数据的擦除单位的块272。此外,半导体存储器270中的数据的写入以簇为单位进行。该簇既可以是与NAND存储器中的页相同的大小,也可以是不同的大小。
图28是表示再配置管理表252的一例的图。再配置管理表252也可以是对识别块272的“块No.”关联了表示在该块272内的存储区域是有空闲区域还是没有空闲区域的“空闲区域信息”、表示能够写入的簇的数量的“残留簇数”、表示进行了擦除的次数的“擦除次数”以及表示在数据的读出时产生了错误的“错误发生标记”等信息而得到的表。第五实施方式中的空闲区域是指能够写入数据的一个以上页(空闲扇区)或单元(空闲单元)。
再配置管理表252中的各项目由再配置管理器250基于从存储设备1D的各构成要素通知的信息进行更新。
再配置管理器250进行刷新和损耗均衡。
刷新是按块272将写入到作为对象的块272的数据改写到其他块272的处理。例如向“错误发生标记”写入有表示产生了错误的信息的情况下,再配置管理器250对该块272进行刷新。在由读/写器240进行了纠错的情况下,“错误发生标记”接受来自读/写器240的通知而由再配置管理器250更新。当进行刷新时,解除对应的块272的错误发生标记(例如返回到0)。
另外,刷新也可以是将写入到作为对象的块272内的页的数据向作为对象的块272内的其他页改写的处理。
损耗均衡是指进行控制以使得改写次数、擦除次数或从擦除起的经过时间在块272间或存储元件之间变得均等的处理。损耗均衡包括在接受写入命令的情况下作为选择数据的写入目的地的处理而执行的情况和与写入命令无关而作为数据的再配置处理而执行的情况。
另外,损耗均衡也可以指进行控制以使得改写次数、擦除次数或从擦除起的经过时间在各块272内的页之间成为均等的处理。
返回图26,在再写入缓存254中保存有在执行了上述刷新、损耗均衡或后述的垃圾收集的情况下,从半导体存储器270读出并被再次向半导体存储器270写入的数据。
另外,再配置管理器250在通过读/写管理器220的控制读出数据或者在上述损耗均衡或刷新的过程中,按各块272的页或页的单元判定是否检测出错误。以下,有时将检测出错误的页称为“异常页”,将检测出错误的单元称为“异常单元”来进行说明。
例如,也可以在某决定的时间中试行了两次以上的某决定的次数的从相同的页或单元读出数据的结果是,在该某决定的次数中不能读出数据的情况(数据的读出失败的情况下)下,再配置管理器250判定为在该页或该单元中检测出错误。
另外,也可以在利用读/写器240进行的基于纠错码的纠错的结果是,在通过纠错订正而得到的数据的错误数为阈值以上的情况下,再配置管理器250判定为在该页或该单元中检测出错误。即,检测出错误的状态可以是以位为单位或以字节为单位等以预定的数据大小为单位、执行了一次以上的某决定的次数的纠错而得到的状态。
读/写器240在进行纠错期间对订正而得到的数据的错误数进行计数,并存储于易失性存储器。再配置管理器250参照存储于该易失性存储器的信息,取得订正而得到的数据的错误数。
另外,在利用后述的GC管理器260进行了垃圾收集的情况下,再配置管理器250也可以同样地判定在页或单元是否检测出错误。
GC管理器260进行如下处理:将保存在至少一个块272中的数据移动到其他区域,并且擦除保存在作为移动源的块272中的数据(垃圾收集)。
GC管理器260在存储设备1D从主机100接收到写入命令的情况下,进行后述的判定并决定是否执行垃圾收集,但不限定于此。GC管理器260也可以不管是否接收到来自主机100的命令,都执行垃圾收集。
垃圾收集是指为了将零碎化的数据统一归拢而进行块内的数据的再配置。
例如,GC管理器260参照再配置管理表252的空闲区域信息,当GC用的块272的空闲区域消失时,使读/写器240读出块272内的数据,并将读出的数据向再写入缓存254写入。接着,GC管理器2 60将写入到再写入缓存254的数据向与作为数据的读出对象的块272不同的块272写入。并且,GC管理器260将读出了数据的块272释放并擦除。此外,该擦除的处理也可以在进行释放之后,在有数据的写入指示时进行。
在执行垃圾收集期间,读/写器240进行上述纠错,在检测出数据的错误的情况下,向再配置管理器250通知表示在数据中产生了错误的信息。
图29是表示将写入到包含异常单元的页的数据组向其他页写入的处理的情形的图。该处理也可以作为损耗均衡的一部分执行。
例如,在读/写器240对从属于块272a的页274a的某单元276读出的数据进行了纠错的情况下,再配置管理器250将写入到包含单元(以下称为异常单元)276的页274的数据组写入相同的块272的其他页中,所述单元276保存有进行了纠错的数据。在这里的数据组是保存在页274的各单元276中的数据的集合。在图示的例子中,再配置管理器250将写入到包含异常单元276的页274a中的数据组写入到相同的块272a的页274c中。
图30是表示将写入到包含异常页的块的数据组向其他块写入的处理的情形的图。该处理也可以作为刷新、损耗均衡或垃圾收集的一部分执行。
例如,在读/写器240对从块272的某页274读出的数据组的任一个的数据进行了纠错的情况下,再配置管理器250将写入到包含页(以下称为异常页)274的块272中的数据组向其他块272改写,所述页274保存有进行了纠错的数据组。在这里的数据组是保存在块272的各页274中的数据的集合。在图示的例子中,再配置管理器250将写入到包含异常页274a的块272a中的数据组写入到块272b的页274a和274b。
根据以上说明的第五实施方式中的存储设备1D,由于以包含检测出错误的页274的块272为单位,或以包含检测出错误的单元276的页274为单位,使数据移动到其他页274或其他块272,所以能够容易地进行数据的管理。
根据以上说明的至少一个实施方式,由于将至少包含第一数据和第二数据的数据组写入到与检测出错误的存储区域不同的至少一个存储区域,所以能够提高对从主机100接收到的读出命令的响应性,所述第一数据是写入到检测出错误的存储区域中的数据的至少一部分,所述第二数据是写入到与检测出错误的存储区域物理上连续的存储区域中的数据的至少一部分。
以上说明了几个实施方式,但是这些实施方式只是作为例子而提出,并不是意在限定发明的范围。这些实施方式能以其他各种方式来实施,在不脱离发明的要旨的范围内,能够进行各种省略、替换以及变更。这些实施方式或其变形包含在发明的范围或要旨内,并被包含在权利要求书所记载的发明及与之等同的范围内。

Claims (15)

1.一种存储装置,具备:
接口,其接收命令;
读写器,其从具备多个存储区域的存储介质中的一部分或全部存储区域读出数据,并向所述存储区域写入数据;以及
控制器,其基于通过所述接口接收到的命令控制所述读写器,
所述控制器使所述读写器将至少包含第一数据和第二数据的数据组向与检测出错误的第一存储区域不同的至少一个存储区域写入,
所述第一数据是向所述第一存储区域写入了的数据的至少一部分,
所述第二数据是向与所述第一存储区域物理上连续的第二存储区域写入了的数据的至少一部分,
所述控制器基于通过所述接口接收到的命令的内容,选择要向与所述第一存储区域不同的至少一个存储区域写入的数据。
2.根据权利要求1所述的存储装置,
所述控制器使所述读写器将所述数据组向物理上连续的多个存储区域写入。
3.根据权利要求1所述的存储装置,
所述控制器将执行了预先确定的次数以上的纠错的存储区域设为检测出错误的所述第一存储区域,其中,该次数为一次以上的次数。
4.根据权利要求1所述的存储装置,
所述控制器将数据的读出失败了预先确定的一次以上的次数的存储区域设为检测出错误的所述第一存储区域。
5.根据权利要求1所述的存储装置,
所述控制器使所述读写器与来自所述接口的命令独立而进行数据的读出,在所述独立而进行的数据的读出的过程中,检测所述错误。
6.根据权利要求1所述的存储装置,
所述接口接收写入命令,所述写入命令包含在所述命令中,并且指定了键信息和向所述存储介质写入的数据,
所述控制器使所述读写器将所述第一数据和与所述第一数据指定相同的键信息并被指示了写入的数据写入到与所述第一存储区域不同的至少一个存储区域。
7.根据权利要求1所述的存储装置,
所述接口接收写入命令,所述写入命令包含在所述命令中,并且指定了逻辑地址、向所述存储介质写入的数据以及表示同时读出数据的标记,
所述控制器使所述第一数据和与所述第一数据关联了相同标记的数据向与所述第一存储区域不同的至少一个存储区域写入。
8.根据权利要求1所述的存储装置,
所述控制器使所述读写器对一个命令进行响应而将要向与所述第一存储区域不同的至少一个存储区域写入的全部数据读出。
9.根据权利要求1所述的存储装置,
所述存储介质是具有圆盘形状,且在呈同心圆状划分而成的多个轨道内分别具有作为所述存储区域的多个扇区的磁盘,
所述第二存储区域是包含在与所述第一存储区域相同的轨道中、并与所述第一存储区域物理上连续的存储区域。
10.根据权利要求9所述的存储装置,
所述控制器使所述读写器将所述数据组向同一轨道内的物理上连续的多个存储区域写入。
11.根据权利要求9所述的存储装置,
所述控制器将所述数据组分割,使所述读写器将所述分割所得到的子数据组分别向第一轨道内的物理上连续的多个存储区域和第二轨道内的物理上连续的多个存储区域写入。
12.根据权利要求9所述的存储装置,
所述控制器在能够将所述第一数据向包含所述第一存储区域的第一轨道写入的情况下,使所述读写器将所述第一数据向所述第一轨道所包含的且与所述第一存储区域不同的存储区域写入,在不能够将所述第一数据向包含所述第一存储区域的第一轨道写入的情况下,使所述读写器将所述数据组向与所述第一轨道不同的第二轨道写入。
13.根据权利要求9所述的存储装置,
所述控制器在第三存储区域存在于包含所述第一存储区域的第一轨道内的情况下,使所述读写器将所述数据组向所述第三存储区域写入,所述第三存储区域是能够写入数据的区域,并且具有将所述第一存储区域和所述第二存储区域合计而成的大小以上的大小且具有连续的扇区编号,
在所述第三存储区域不存在于所述第一轨道内的情况下,使所述读写器将所述数据组写入与所述第一轨道不同的第二轨道。
14.根据权利要求9所述的存储装置,
所述控制器在第三存储区域不存在于所述磁盘内的情况下,在所述磁盘内进行数据的再配置,生成所述第三存储区域,所述第三存储区域是能够写入数据的区域,并且具有将所述第一存储区域和所述第二存储区域合计而成的大小以上的大小且具有连续的扇区编号。
15.一种存储装置的工作方法,包括:
基于通过接口接收到的命令,从具备多个存储区域的存储介质中的一部分或全部存储区域读出数据,或向所述存储区域写入数据,
将至少包含第一数据和第二数据的数据组向与在读出数据的情况下检测出错误的第一存储区域不同的至少一个存储区域写入,所述第一数据是向所述第一存储区域写入了的数据,所述第二数据是向与所述第一存储区域物理上连续的第二存储区域写入了的数据,
基于通过所述接口接收到的命令的内容,选择要向与所述第一存储区域不同的至少一个存储区域写入的数据。
CN201610137295.6A 2016-02-03 2016-03-10 存储装置及其工作方法 Expired - Fee Related CN107037976B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662290834P 2016-02-03 2016-02-03
US62/290834 2016-02-03

Publications (2)

Publication Number Publication Date
CN107037976A CN107037976A (zh) 2017-08-11
CN107037976B true CN107037976B (zh) 2020-03-20

Family

ID=59385713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610137295.6A Expired - Fee Related CN107037976B (zh) 2016-02-03 2016-03-10 存储装置及其工作方法

Country Status (2)

Country Link
US (1) US10210900B2 (zh)
CN (1) CN107037976B (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
KR102362767B1 (ko) 2017-12-29 2022-02-15 마이크론 테크놀로지, 인크. 정정 불가능 ecc
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) * 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
JP6668445B1 (ja) * 2018-11-22 2020-03-18 株式会社東芝 情報処理装置
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
CN109885255A (zh) * 2019-01-07 2019-06-14 北京小米移动软件有限公司 存储空间整理方法及装置
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
CN113838487B (zh) * 2021-09-28 2023-04-25 北京信息科技大学 一种多读写头的盘状存储器、读写方法及数据保护方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1670854A (zh) * 2004-03-17 2005-09-21 日立环球储存科技荷兰有限公司 磁盘驱动器和刷新方法
US6972917B2 (en) * 2001-03-26 2005-12-06 Hitachi, Ltd. Signal processing technique for preventing delay in read time from retry operations
US8988800B1 (en) * 2009-09-15 2015-03-24 Marvell International Ltd. Error correction for storage devices

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3628337B2 (ja) 1996-03-18 2005-03-09 松下電器産業株式会社 円盤状記録媒体の記録欠陥代替方法、及び円盤状記録媒体記録再生装置
JPH11213626A (ja) 1998-01-21 1999-08-06 Toshiba Corp データ記録媒体とデータ記録装置とデータ再生装置
JP2005310215A (ja) 2004-04-16 2005-11-04 Matsushita Electric Ind Co Ltd 欠陥領域管理方法、及び光記録媒体制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6972917B2 (en) * 2001-03-26 2005-12-06 Hitachi, Ltd. Signal processing technique for preventing delay in read time from retry operations
CN1670854A (zh) * 2004-03-17 2005-09-21 日立环球储存科技荷兰有限公司 磁盘驱动器和刷新方法
US8988800B1 (en) * 2009-09-15 2015-03-24 Marvell International Ltd. Error correction for storage devices

Also Published As

Publication number Publication date
CN107037976A (zh) 2017-08-11
US20170221519A1 (en) 2017-08-03
US10210900B2 (en) 2019-02-19

Similar Documents

Publication Publication Date Title
CN107037976B (zh) 存储装置及其工作方法
US8667248B1 (en) Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US10776153B2 (en) Information processing device and system capable of preventing loss of user data
US9740406B2 (en) Dynamic granule-based intermediate storage
US8055942B2 (en) Data storage devices and methods for power-on initialization
US20090103203A1 (en) Recording apparatus and control circuit
US9588887B2 (en) Staging sorted data in intermediate storage
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
JP5891027B2 (ja) 記憶装置をサニタイズする方法及び装置
US10140180B1 (en) Segment-based outer code recovery
JP2010211910A (ja) データ記憶装置
US10366726B1 (en) Interlaced magnetic recording in with multiple independent-actuators having respective independent heads
US20120151134A1 (en) Data Storage Management in a Memory Device
US20170090768A1 (en) Storage device that performs error-rate-based data backup
CN112420080B (zh) 磁盘装置
CN110931050B (zh) 磁盘装置
US9047206B1 (en) Disk drive apparatus and method of manufacturing the disk drive apparatus
US20160170891A1 (en) Disk apparatus and control method
US9710197B2 (en) Storage device, controller, and method
US20220084554A1 (en) Magnetic disk device and error correction method
CN117746917A (zh) 磁盘装置
US9053746B2 (en) Disk device and data recording method
JP2023142223A (ja) 磁気ディスク装置
JP2010157278A (ja) ディスク記憶装置及び欠陥処理方法
JP2003345526A (ja) 記憶装置

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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200320

Termination date: 20210310