CN110232033B - 磁盘装置及写入方法 - Google Patents
磁盘装置及写入方法 Download PDFInfo
- Publication number
- CN110232033B CN110232033B CN201810839547.9A CN201810839547A CN110232033B CN 110232033 B CN110232033 B CN 110232033B CN 201810839547 A CN201810839547 A CN 201810839547A CN 110232033 B CN110232033 B CN 110232033B
- Authority
- CN
- China
- Prior art keywords
- data
- area
- buffer memory
- memory
- disk
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
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)
- Computer Security & Cryptography (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Digital Magnetic Recording (AREA)
Abstract
本发明的实施方式提供能够提高写入性能的磁盘装置及写入方法。实施方式涉及的磁盘装置具备:盘;头,其对所述盘写入数据;缓冲存储器,其记录要向所述盘写入的数据;以及控制器,其将第1数据记录于所述缓冲存储器,将已记录于所述缓冲存储器的所述第1数据复制到内部存储器,在所述内部存储器中基于所述第1数据生成多个第2数据,将所述多个第2数据传送到所述缓冲存储器。
Description
相关申请
本申请享有以日本专利申请2018-38817号(申请日:2018年3月5日)作为在先申请的优先权。本申请通过参照该在先申请而包括在先申请的全部内容。
技术领域
本发明的实施方式涉及磁盘装置及写入方法。
背景技术
磁盘装置支持WRITE SAME命令。WRITE SAME命令为基于预定的数据写入到多个逻辑块的命令。WRITE SAME命令在RAID环境的逻辑块的初始化时等使用。在接收到WRITESAME命令的情况下,磁盘装置接收从主机系统接收到的预定的数据,基于该预定的数据生成多个逻辑块的数据,执行对所生成的各逻辑块的数据进行加密、添加保护信息的处理等,将所生成的各数据写入到盘。磁盘装置在每次接收WRITE SAME命令时都执行这些处理,所以在接收到对多个连续的逻辑块的WRITE SAME命令的情况下,可能会按每个命令发生等待旋转一圈的延迟。
发明内容
本发明的实施方式提供能够提高写入性能的磁盘装置及写入方法。
本实施方式涉及的磁盘装置具备:盘;头,其对所述盘写入数据;缓冲存储器,其记录要向所述盘写入的数据;以及控制器,其将第1数据记录于所述缓冲存储器,将已记录于所述缓冲存储器的所述第1数据复制到内部存储器,在所述内部存储器中基于所述第1数据生成多个第2数据,将所述多个第2数据传送到所述缓冲存储器。
附图说明
图1是表示第1实施方式涉及的磁盘装置的构成的框图。
图2是表示第1实施方式涉及的磁盘装置的写入系统的构成例的示意图。
图3是第1实施方式涉及的写入方法的一个例子的流程图。
图4是表示第2实施方式涉及的磁盘装置的构成的框图。
图5是表示第2实施方式涉及的磁盘装置的写入系统的构成例的示意图。
图6是第2实施方式涉及的写入方法的一个例子的流程图。
图7是第2实施方式涉及的当在主电源产生了异常的情况下的与WRITE SAME命令相关的数据的转移保存(退避)方法的一个例子的流程图。
图8是第2实施方式涉及的当在主电源产生了异常的情况下的与WRITE SAME命令相关的数据的复原方法的一个例子的流程图。
具体实施方式
以下,参照附图对实施方式进行说明。此外,附图是一个例子,并不限定发明的范围。
(第1实施方式)
图1是表示第1实施方式涉及的磁盘装置1的构成的框图。
磁盘装置1具备后述的头盘组件(HDA)、驱动器IC20、头放大器集成电路(以下,称为头放大器IC或前置放大器)30、缓冲存储器(缓冲器)70、易失性存储器80、非易失性存储器90以及作为一芯片的集成电路的系统控制器130。另外,磁盘装置1与主机系统(以下,简称为主机)100连接。
HDA具有磁盘(以下,称为盘)10、主轴马达(以下,称为SPM)12、搭载头15的臂13以及音圈马达(以下,称为VCM)14。盘10安装于主轴马达12,通过主轴马达12的驱动而旋转。臂13和VCM14构成致动器。致动器通过VCM14的驱动来控制搭载于臂13的头15以使其移动到盘10上的目标位置为止。盘10和头15也可以设置为两个以上的数目。
盘10在其记录区域分配有能够供用户利用的用户数据区域10a、和写入系统管理所需要的信息的系统区域10b。
头15以滑块为主体,具备安装于该滑块的写入头15W和读取头15R。写入头15W在盘10上写入数据。读取头15R读取已记录于盘10上的数据磁道的数据。
驱动器IC20按照系统控制器130(详细而言,后述的MPU60)的控制来控制SPM12和VCM14的驱动。
头放大器IC(前置放大器)30具备读取放大器和写入驱动器。读取放大器放大从盘10读取到的读取信号,并将其向系统控制器130(详细而言,后述的读取/写入(R/W)通道40)输出。写入驱动器向头15输出与从R/W通道40输出的信号相应的写入电流。
缓冲存储器70为暂时地记录在磁盘装置1与主机系统100之间发送接收的数据等的半导体存储器。此外,缓冲存储器70也可以与易失性存储器80一体地构成。缓冲存储器70为例如DRAM、SRAM(Static Random Access Memory:静态随机存取存储器)、SDRAM、FeRAM(Ferroelectric Random Access memory:铁电随机存取存储器)或MRAM(Magnetoresistive Random Access Memory:磁阻随机存取存储器)等。缓冲存储器70具有例如保存区域71和段(segment)缓冲区域72。段缓冲区域72例如作为FIFO(First In FirstOut,先进先出)或Circular Buffer(循环缓冲器)而发挥作用。此外,缓冲存储器70也可以不具备保存区域71和段缓冲区域72。
易失性存储器80为若切断电力供给则所保存的数据丢失的半导体存储器。易失性存储器80保存磁盘装置1的各部中的处理所需要的数据等。易失性存储器80为例如SRAM、DRAM(Dynamic Random Access Memory:动态随机存取存储器)或SDRAM(SynchronousDynamic Random Access Memory:同步动态随机存取存储器)。
非易失性存储器90为即使切断电力供给也记录所保存的数据的半导体存储器。非易失性存储器90例如为NOR型或NAND型的闪速ROM(Flash Read Only Memory:FROM,闪速只读存储器)。
系统控制器(控制器)130使用例如多个元件集成于单一芯片而成的被称为System-on-a-Chip(SoC,片上系统)的大规模集成电路(LSI)来实现。系统控制器130包括读取/写入(R/W)通道40、硬盘控制器(HDC)50以及微处理器(MPU)60。系统控制器130电连接于驱动器IC20、头放大器IC30、缓冲存储器70、易失性存储器80、非易失性存储器90以及主机系统100。
R/W通道40根据来自后述的MPU60的指示来执行从盘10向主机系统100传送的读取数据和从主机系统100传送的写入数据的信号处理。R/W通道40具有测定读取数据的信号品质的电路或功能。R/W通道40电连接于头放大器IC30、HDC50以及MPU60等。此外,有时也将读取数据和写入数据简称为数据。
HDC50根据来自后述的MPU60的指示来控制主机系统100与R/W通道40之间的数据传送。HDC50电连接于R/W通道40、MPU60、缓冲存储器70以及非易失性存储器90等。
MPU60为控制磁盘装置1的各部的主控制器。MPU60经由驱动器IC20来控制VCM14,执行进行头15的定位的伺服控制。MPU60控制对盘10的数据的写入动作,并且选择写入数据的保存目的地。另外,MPU60控制来自盘10的数据的读取动作,并且控制读取数据的处理。MPU60连接于磁盘装置1的各部。例如MPU60电连接于驱动器IC20、R/W通道40、HDC50以及易失性存储器80。
MPU60具备命令处理部61、计数器62以及读取/写入控制部63。MPU60在固件上执行这些各部例如命令处理部61、计数器62以及读取/写入控制部63等的处理。此外,MPU60也可以具备这些各部作为电路。另外,系统控制器130的其他部分例如R/W通道40、HDC50等也可以具有这些各部。
命令处理部61具有能够从主机系统100接收多个命令的命令队列。命令处理部61执行与从主机系统100接收到的命令对应的处理。命令包括操作码、向盘10传送的块数(以下,称为传送块数)、写入数据的盘10的位置例如LBA(Logical Block Address:逻辑块地址)等信息。例如,命令处理部61能够执行与如下命令对应的处理:基于从主机系统100接收到的预定的数据生成多个数据,并将所生成的多个数据写入到盘10的命令例如WRITE SAME命令。在从主机系统100接收到WRITE SAME命令的情况下,命令处理部61基于与WRITE SAME命令相关的数据(以下,称为WS(WRITE SAME)数据)生成多个数据(以下,为了便于说明,称为生成数据)。例如,分别与基于WS数据生成的多个生成数据对应的多个LBA是连续的。此外,传送块数也可以为1。以下,有时也将基于一个WS数据生成的多个生成数据称为生成数据组。生成数据也可以包括WS数据所包含的信息。另外,WS数据所包含的信息也可以作为与生成数据关联的其他的数据记录于存储器例如后述的存储器53、易失性存储器80、非易失性存储器90等。WS数据和生成数据的数据大小分别为在传送数据的情况下使用的数据大小、和/或在读取数据以及写入数据的情况下使用的数据大小。在一个例子中,WS数据和生成数据的数据大小相同。例如,WS数据和生成数据的数据大小为一逻辑块大小。一逻辑块大小为例如512Byte或4KByte。命令处理部61例如使得在HDC50中基于WS数据生成与传送块数相应的多个生成数据。
在连续地(顺序地)接收到多个WRITE SAME命令的情况下,命令处理部61基于分别与多个WRITE SAME命令对应的WS数据来判定分别写入所生成的多个生成数据组的盘10的位置是否连续。例如,当在紧跟前处理了的WRITE SAME命令(以下,称为紧跟前的WRITESAME命令)之后连续地接收到当前要处理的WRITE SAME命令(以下,称为当前的WRITE SAME命令)的情况下,命令处理部61判定基于与当前的WRITE SAME命令对应的WS数据生成的生成数据组中的最初的生成数据的LBA与基于与紧跟前的WRITE SAME命令对应的WS数据生成的生成数据组中的最后的生成数据的LBA是否连续。以下,为了便于说明,将“与紧跟前的WRITE SAME命令对应的WS数据”称为“紧跟前的WS数据”,将“与当前的WRITE SAME命令对应的WS数据”称为“当前的WS数据”。将“基于紧跟前的WS数据生成的生成数据组”称为“紧跟前的生成数据组”,将“基于当前的WS数据生成的生成数据组”称为“当前的生成数据组”。将“基于紧跟前的WS数据生成的生成数据组中的最后的生成数据”称为“与紧跟前的WS数据对应的最后的生成数据”,将“基于当前的WS数据生成的生成数据组中的最初的生成数据”称为“与当前的WS数据对应的最初的生成数据”。另外,将“写入与紧跟前的WS数据对应的最后的生成数据的盘10的位置或LBA”称为“与紧跟前的WS数据对应的最后的位置或LBA”,将“写入与当前的WS数据对应的最初的生成数据的盘10的位置或LBA”称为“与当前的WS数据对应的最初的位置或LBA”。在判定为与紧跟前的WS数据对应的最后的LBA和与当前的WS数据对应的最初的LBA连续的情况下,命令处理部61向计数器62、读取/写入控制部63等输出:表示与紧跟前的WS数据对应的最后的LBA和与当前的WS数据对应的最初的LBA连续这一情况的信号(以下,称为顺序信号)。换言之,在判定为能够顺序地访问与紧跟前的WS数据对应的最后的LBA和与当前的WS数据对应的最初的LBA的情况下,命令处理部61向计数器62、读取/写入控制部63等输出顺序信号。
计数器62对数据进行计数。例如,计数器62将与由WRITE SAME命令指定的传送块数对应的值加到表示向盘10传送的生成数据的块数的写入计数值。在接收到顺序信号的情况下,计数器62将与由当前的WRITE SAME命令指定的传送块数对应的值加到写入计数值。计数器62在每次完成将生成数据向缓冲存储器70的传送例如向段缓冲区域72的传送时,使表示传送到段缓冲区域72的生成数据的块数的传送计数值增加一定值,例如每次增加1。计数器62在每次将已传送到段缓冲区域72的生成数据写入到盘10时、或者每次传送到盘10时,使传送计数值和写入计数值减少一定值,例如每次减少1。以下,将“每次增加一定值例如每次增加1”这一情况称为“递增”,将“每次减少一定值例如每次减少1”这一情况称为“递减”。此外,计数器62也可以不对写入计数值进行计数。也可以为:例如,计数器62每次完成将生成数据向段缓冲区域72的传送时,使表示传送到段缓冲区域72的生成数据的块数的传送计数值递增,每次将传送到段缓冲区域72的生成数据写入到盘10时、或者每次传送到盘10时,使传送计数值递减。
读取/写入控制部63根据命令处理部61的处理来控制数据的读取处理和写入处理。读取/写入控制部63经由驱动器IC20来控制VCM14,将头15定位于盘10上的目标位置,执行读取处理和写入处理。读取/写入控制部63在执行写入处理的情况下,在缓冲存储器70中确保段缓冲区域72。
在与从主机系统100接收到的命令相关的处理结束了的情况下,读取/写入控制部63对主机系统100输出信号。例如,在判定为传送计数值达到了与WS数据所包含的传送块数对应的值的情况下,读取/写入控制部63向主机系统100输出:表示WRITE SAME命令的处理结束了的信号(以下,称为命令完成状态)。
读取/写入控制部63能够根据计数值来控制对盘10的写入处理。例如,在写入计数值为0的情况下,也就是说,在判定为在段缓冲区域72没有记录有效的生成数据的情况下,读取/写入控制部63抑制对盘10的生成数据的写入处理。在该情况下,读取/写入控制部63例如向主机系统100输出:表示对盘10的生成数据的写入处理完成了的信号(以下,称为写入完成状态)。
读取/写入控制部63能够根据传送计数值来控制生成数据向缓冲存储器70的传送,例如生成数据向段缓冲区域72的传送。例如,在判定为传送计数值达到了阈值的情况下,读取/写入控制部63抑制生成数据向段缓冲区域72的传送。阈值为与在缓冲存储器70中能够记录生成数据的容量对应的计数值,例如为与在段缓冲区域72中能够记录生成数据的容量对应的计数值。
另外,在接收到顺序信号的情况下,读取/写入控制部63判定是否为对盘10的写入处理中。在判定为是写入处理中的情况下,读取/写入控制部63向已经确保的段缓冲区域72依次传送与当前的WS数据对应的多个生成数据,并依次向盘10传送已传送到段缓冲区域72的与当前的WS数据对应的多个生成数据。读取/写入控制部63后续于紧跟前的生成数据组地连续地将当前的生成数据组写入(顺序写入)盘10。在一个例子中,读取/写入控制部63后续于与紧跟前的WS数据对应的最后的生成数据地将与当前的WS数据对应的最初的生成数据顺序写入盘10。
以下,在头15、头放大器IC30、缓冲存储器70、易失性存储器80、非易失性存储器90、系统控制器130等中,将从主机系统100传送的数据写入盘10的系统有时也称为写入系统。
图2是表示本实施方式涉及的磁盘装置1的写入系统的构成例的示意图。在图2中仅图示出说明所需要的构成。
作为写入系统,HDC50具备主机控制部51、缓冲控制部52、存储器(内部存储器)53、加密部54、数据添加部55以及盘控制部56。这些各部经由总线(bus)等彼此连接。
主机控制部51连接于主机系统100并控制与主机系统100之间的数据传送。例如,在从主机系统100接收到WS数据的情况下,主机控制部51向缓冲控制部52输出所接收到的WS数据。
缓冲控制部52连接于缓冲存储器70并控制与缓冲存储器70之间的数据传送。例如,在输入了WS数据的情况下,缓冲控制部52向缓冲存储器70的保存区域71传送WS数据。另外,缓冲控制部52将记录于保存区域71的WS数据复制(拷贝)到存储器53。另外,在输入了生成数据的情况下,缓冲控制部52向段缓冲区域72传送生成数据。在将生成数据传送到段缓冲区域72的情况下,缓冲控制部52例如向计数器62输出使传送计数值递增的信号。在接收到抑制生成数据从读取/写入控制部63向段缓冲区域72的传送的信号的情况下,缓冲控制部52抑制生成数据向段缓冲区域72的传送。另外,缓冲控制部52按照LBA依次向盘控制部56传送已记录于段缓冲区域72的多个生成数据。
存储器53保持数据。存储器53例如作为FIFO而发挥作用。例如在存储器53中,按被进行复制的顺序处理WS数据,基于WS数据生成与传送块数相应的多个生成数据。存储器53按照LBA依次向加密部54输出所生成的多个生成数据。
加密部54执行数据的加密处理。例如,加密部54对所输入的生成数据进行加密,向数据添加部55输出加密后的生成数据。
数据添加部55对数据添加保护数据。保护数据包括表示数据的匹配性、例如表示数据是否错误的信息等。保护数据例如包括CRC(Cyclic Redundancy Check:循环冗余校验)码等。例如,数据添加部55对所输入的生成数据添加保护数据,添加保护数据地向缓冲控制部52输出生成数据。
盘控制部56与R/W通道40连接,经由R/W通道40来控制与盘10之间的数据传送。例如,盘控制部56向R/W通道40传送所输入的生成数据。例如,在将生成数据传送到R/W通道40的情况下,盘控制部56也可以向计数器62输出使传送计数值和写入计数值递减的信号。此外,在将生成数据传送到R/W通道40的情况下,盘控制部56也可以向计数器62输出仅使传送计数值递减的信号。另外,使传送计数值和写入计数值递减的信号也可以从头放大器IC30、R/W通道40等其他部分输出。
图3是本实施方式涉及的写入方法的一个例子的流程图。
在接收到WRITE SAME命令的情况下,系统控制器130向保存区域71传送从主机系统100接收到的WS数据(B301)。例如,在接收到WRITE SAME命令的情况下,系统控制器130向保存区域71传送并记录从主机系统100接收到的WS数据。系统控制器130将传送到保存区域71的WS数据复制到存储器53(B302)。系统控制器130在存储器53中基于WS数据生成多个生成数据(B303)。例如,系统控制器130基于WS数据生成与传送块数相应的多个生成数据,对多个生成数据分别执行加密处理,对多个生成数据分别添加保护数据。
系统控制器130判定是否为向盘10写入数据中(B304)。在判定为不是写入中的情况下(B304的否(NO)),系统控制器130在缓冲存储器70确保段缓冲区域72(B305)。系统控制器130向段缓冲区域72依次传送多个生成数据(B306),将依次传送到段缓冲区域72的至少一个生成数据依次写入盘10(B307),前进至B309的处理。例如,系统控制器130按照LBA向段缓冲区域72依次传送多个生成数据,将多个生成数据暂时地记录于段缓冲区域72。在判定为是写入中的情况下(B304的是(YES)),系统控制器130向已经确保的段缓冲区域72依次传送多个生成数据(B308)。例如,系统控制器130按照LBA向已经确保的段缓冲区域72依次传送多个生成数据,将多个生成数据暂时地记录于该段缓冲区域72。
系统控制器130判定生成数据组向段缓冲区域72的传送是否完成(B309)。例如,系统控制器130判定与传送块数相应的多个生成数据向段缓冲区域72的传送是否完成。在判定为与传送块数相应的多个生成数据的传送未完成的情况下(B309的否),系统控制器130返回到B309的处理。在判定为与传送块数相应的多个生成数据的传送完成了的情况下(B309的是),系统控制器130向主机系统100输出命令完成状态(B310)。
系统控制器130判定是否从主机系统100接收到向连续的LBA的WRITE SAME命令(B311)。在判定为接收到向连续的LBA的WRITE SAME命令的情况下(B311的是),系统控制器130返回到B301的处理。在判定为未接收到向连续的LBA的WRITE SAME命令的情况下(B311的否),系统控制器130判定对盘10的全部的生成数据的写入处理是否完成(B312)。例如,系统控制器130判定写入计数值或传送计数值是否为0。在判定为全部的生成数据的写入处理未完成的情况下(B312的否),系统控制器130返回到B311的处理。在判定为全部的生成数据的写入处理完成的情况下(B312的是),系统控制器130结束处理。
根据本实施方式,磁盘装置1具备缓冲存储器70和系统控制器130。缓冲存储器70具有保存区域71和段缓冲区域72。系统控制器130具备R/W通道40、HDC50以及MPU60。HDC50具备主机控制部51、缓冲控制部52、存储器53、加密部54以及数据添加部55。在接收到WRITESAME命令的情况下,磁盘装置1将WS数据记录于保存区域71,将WS数据复制(拷贝)到存储器53。磁盘装置1在缓冲存储器70中确保段缓冲区域72。磁盘装置1在存储器53中基于WS数据生成多个生成数据,对所生成的多个生成数据分别执行加密处理,对多个生成数据分别添加保护数据,按照LBA向段缓冲区域72依次传送多个生成数据,按照LBA将多个生成数据依次写入盘10。在将与紧跟前的WRITE SAME命令对应的生成数据组写入盘10期间接收到当前的WRITE SAME命令的情况下,磁盘装置1判定相对于紧跟前的生成数据组而言当前的生成数据组是否为顺序访问。在判定为相对于紧跟前的生成数据组而言当前的生成数据组是顺序访问的情况下,磁盘装置1后续于紧跟前的生成数据组地顺序写入当前的生成数据组。因此,在将与紧跟前的WRITE SAME命令对应的生成数据组写入盘10期间接收到当前的WRITESAME命令的情况下,磁盘装置1能够不等待盘10的旋转而后续于紧跟前的生成数据组地顺序写入当前的生成数据组。因此,磁盘装置1能够提高写入性能。
接着,对其他实施方式涉及的磁盘装置进行说明。在其他实施方式中,对与前述的实施方式相同的部分标注有相同的参照符号而省略其详细的说明。
(第2实施方式)
第2实施方式的磁盘装置1在当从电源供给的电力被切断或降低了时转移保存(退避)数据这一方面,与前述的实施方式不同。
图4是表示第2实施方式涉及的磁盘装置1的构成的框图。
驱动器IC20具备备用电源21。此外,备用电源21的其中一部分,例如整流电路,也可以设置于驱动器IC20的外部。
备用电源21在从磁盘装置1的电源(以下,称为主电源)供给的电力被切断或降低了的情况(以下,称为在主电源产生了异常的情况)下,供给为了维持磁盘装置1的保护动作所需要的电力。保护动作包括例如使头15向离开盘10的位置移动的动作、基于断电保护(PLP:Power Loss Protection)功能的数据的写入和/或复制(以下,有时也称为转移保存)动作。PLP功能是在主电源产生了异常的情况下通过将对盘10的写入处理未完成的写入数据(以下,称为未写入数据)转移保存至非易失性存储器等而保证未写入数据的功能。在主电源产生了异常的情况下,备用电源21至少向缓冲存储器70、非易失性存储器90以及系统控制器130等供给电力。备用电源21例如为了生成供给电力而利用SPM12的反电动势。此外,备用电源21为了生成供给电力也可以利用通过主电源来充电的电容器。
MPU60还具备转移保存处理部64。MPU60在固件上执行转移保存处理部64等的处理。此外,MPU60也可以具备转移保存处理部64来作为电路。另外,系统控制器130的其他部分例如R/W通道40、HDC50等也可以具有转移保存处理部64。
在第2实施方式中,在判定为传送计数值(写入未完成的块数)为与能够转移保存的生成数据的块数对应的值(以下,称为可转移保存值)以下的情况下,读取/写入控制部63向主机系统100输出命令完成状态。可转移保存值为例如:与在能够维持从备用电源21供给的供给电力的时间内能够转移保存至非易失性存储器90的生成数据的块数对应的值。此外,在判定为传送计数值为可转移保存值以下的情况下,读取/写入控制部63也可以向主机系统100输出命令完成状态。
转移保存处理部64具有管理未写入数据的功能。像这样管理未写入数据的功能例如有时也被称为PWC(Persistent Write Cache,持续写高速缓存)功能。在主电源产生了异常的情况下,转移保存处理部64通过PLP功能接受从备用电源21暂时地供给的电力而执行数据的保护动作。
例如,在主电源产生了异常的情况下,转移保存处理部64将记录于保存区域71的WS数据与记录于段缓冲区域72的至少一个生成数据(以下,称为未写入生成数据)转移保存至非易失性存储器90。在该情况下,转移保存处理部64也可以将与记录于保存区域71的WS数据对应的WRITE SAME命令的信息(以下,称为WS命令信息)转移保存至非易失性存储器90。另外,转移保存处理部64也可以将如下信息转移保存至非易失性存储器90:在与对已记录于段缓冲区域72的未写入生成数据进行写入的盘10的位置例如LBA、WS数据对应的传送块数中,去除向盘10的写入完成了的生成数据而得到的剩余的传送块数(以下,称为剩余的块数)等信息(以下,称为生成数据信息)。在主电源恢复了的情况下,转移保存处理部64执行数据的复原动作。
例如,在主电源恢复了的情况下,转移保存处理部64从非易失性存储器90向段缓冲区域72传送已转移保存了的未写入生成数据。在该情况下,转移保存处理部64从非易失性存储器90向存储器53和/或保存区域71传送WS数据。另外,转移保存处理部64基于转移保存至非易失性存储器90的WS数据和生成数据信息,根据与LBA对应的生成数据使与剩余的块数相应的至少一个生成数据(以下,称为剩余的生成数据)在HDC50中再次生成(复原),该LBA是转移保存至非易失性存储器90的至少一个未写入生成数据中的与最后的LBA对应的未写入生成数据的下一个LBA。此外,当在主电源产生了异常的情况下,转移保存处理部64也可以仅将记录于保存区域71的WS数据转移保存至非易失性存储器90。在主电源恢复了的情况下,转移保存处理部64也可以基于转移保存至非易失性存储器90的WS数据而使生成数据组在HDC50中再次生成。
图5是表示第2实施方式涉及的磁盘装置1的写入系统的构成例的示意图。在图5中仅图示出说明所需要的构成。
当在主电源产生了异常的情况下,缓冲控制部52例如向非易失性存储器90传送已记录于保存区域71的WS数据和已记录于段缓冲区域72的至少一个未写入生成数据。在主电源恢复了的情况下,缓冲控制部52例如从非易失性存储器90向段缓冲区域72传送至少一个未写入生成数据。在该情况下,缓冲控制部52从非易失性存储器90向存储器53和保存区域71传送WS数据。
图6是第2实施方式涉及的写入方法的一个例子的流程图。
在接收到WRITE SAME命令的情况下,系统控制器130向保存区域71传送WS数据(B301),将WS数据复制到存储器53(B302),基于WS数据生成多个生成数据(B303)。系统控制器130判定是否为向盘10写入数据中(B304)。在判定为不是写入中的情况下(B304的否),系统控制器130在缓冲存储器70确保段缓冲区域72(B305),向段缓冲区域72依次传送生成数据(B306),将依次传送到段缓冲区域72的至少一个生成数据依次写入盘10(B307),并前进至B309的处理。在判定为是写入中的情况下(B304的是),系统控制器130向已经确保的段缓冲区域72依次传送多个生成数据(B308)。
系统控制器130判定生成数据组向段缓冲区域72的传送是否完成(B309)。在判定为与传送块数相应的多个生成数据的传送未完成的情况下(B309的否),系统控制器130返回到B309的处理。在判定为与传送块数相应的多个生成数据的传送完成了的情况下(B309的是),系统控制器130判定能否将记录于段缓冲区域72的全部的未写入生成数据转移保存至非易失性存储器90(B601)。例如,系统控制器130判定传送计数值为可转移保存值以下还是比可转移保存值大。在判定为无法转移保存全部的未写入生成数据的情况下(B601的否),系统控制器130前进至B311的处理。例如,在判定为传送计数值比可转移保存值大的情况下,系统控制器130前进至B311的处理。在判定为能够转移保存全部的未写入生成数据的情况下(B601的是),系统控制器130向主机系统100输出命令完成状态(B310)。例如,在判定为传送计数值为可转移保存值以下的情况下,系统控制器130向主机系统100输出命令完成状态。
系统控制器130判定是否从主机系统100接收到向连续的LBA的WRITE SAME命令(B311)。在判定为接收到向连续的LBA的WRITE SAME命令的情况下(B311的是),系统控制器130返回到B301的处理。在判定为未接收到向连续的LBA的WRITE SAME命令的情况下(B311的否),系统控制器130判定对盘10的全部的生成数据的写入处理是否完成(B312)。在判定为全部的生成数据的写入处理未完成的情况下(B312的否),系统控制器130返回到B601的处理。在判定为全部的生成数据的写入处理完成的情况下(B312的是),系统控制器130结束处理。
图7是第2实施方式涉及的当在主电源产生了异常的情况下的与WRITE SAME命令相关的数据的转移保存方法的一个例子的流程图。
在主电源产生了异常的情况下,系统控制器130将WS数据从保存区域71转移保存至非易失性存储器90(B701)。系统控制器130将未写入生成数据从段缓冲区域72转移保存至非易失性存储器90(B702)。系统控制器130将WS命令信息和/或生成数据信息转移保存至非易失性存储器90(B703),并结束处理。
图8是第2实施方式涉及的当在主电源产生了异常的情况下的与WRITE SAME命令相关的数据的复原方法的一个例子的流程图。
在主电源恢复了的情况下,系统控制器130从非易失性存储器90向存储器53和/或保存区域71传送并记录WS数据(B801)。系统控制器130从非易失性存储器90向段缓冲区域72传送并记录未写入生成数据(B802)。系统控制器130基于转移保存至非易失性存储器90的WS数据和生成数据信息将剩余的生成数据复原到存储器53(B803),并结束处理。
根据第2实施方式,磁盘装置1判定能否将记录于段缓冲区域72的全部的未写入生成数据转移保存至非易失性存储器90。在判定为能够转移保存全部的未写入生成数据的情况下,磁盘装置1向主机系统100输出命令完成状态。因此,即使当意外地在主电源产生了异常的情况下,磁盘装置1也能够保证与输出了命令完成状态的WRITE SAME命令对应的生成数据。
当在主电源产生了异常的情况下,磁盘装置1通过PLP功能接受从备用电源21暂时地供给的电力而执行数据的保护动作。当在主电源产生了异常的情况下,磁盘装置1将记录于保存区域71的WS数据和/或记录于段缓冲区域72的至少一个未写入生成数据转移保存至非易失性存储器90。在该情况下,磁盘装置1也能够将WS命令信息和/或生成数据信息转移保存至非易失性存储器90。在主电源恢复了的情况下,磁盘装置1从非易失性存储器90向存储器53和/或保存区域71传送WS数据。在该情况下,磁盘装置1从非易失性存储器90向段缓冲区域72传送未写入生成数据。磁盘装置1基于转移保存至非易失性存储器90的WS数据和生成数据信息将剩余的生成数据复原到存储器53,向段缓冲区域72依次传送已复原的剩余的生成数据,将传送到段缓冲区域72的至少一个生成数据依次写入盘10。因此,磁盘装置1能够提高数据的记录品质。
对若干实施方式进行了说明,但这些实施方式是作为例子而示出,并非意在限定发明的范围。这些新颖的实施方式可以以其他各种方式来实施,在不脱离发明的要旨的范围内可以进行各种省略、替换、变更。这些实施方式和/或其变形包含于发明的范围和/或要旨内,并且包含于技术方案所记载的发明和与其同等的范围内。
Claims (10)
1.一种磁盘装置,其具备:
盘;
头,其对所述盘写入数据;
缓冲存储器,其记录要向所述盘写入的数据;以及
控制器,其将第1数据记录于所述缓冲存储器,将已记录于所述缓冲存储器的所述第1数据复制到内部存储器,在所述内部存储器中基于所述第1数据生成多个第2数据,将所述多个第2数据传送到所述缓冲存储器,
所述控制器在所述缓冲存储器中确保第1区域,向所述第1区域顺序传送所述多个第2数据,按向所述第1区域进行了传送的顺序将所述多个第2数据写入到所述盘。
2.根据权利要求1所述的磁盘装置,
所述控制器分别对所述多个第2数据进行加密,分别向所述多个第2数据添加表示数据的匹配性的保护信息。
3.根据权利要求1所述的磁盘装置,
所述控制器在所述多个第2数据全部被传送到了所述第1区域的情况下,输出表示所述多个第2数据全部被传送了这一情况的信号。
4.根据权利要求3所述的磁盘装置,
所述控制器在每次所述多个第2数据中的一个所述第2数据被传送到所述第1区域时,对与被传送到了所述第1区域的所述第2数据的第1块数对应的计数值加上第1值,在所述计数值达到了基于所述第1数据所生成的所述多个第2数据的第2块数的情况下,输出所述信号。
5.根据权利要求1所述的磁盘装置,
所述磁盘装置还具备:在主电源产生了异常的情况下暂时地供给电力的第1电源和非易失性存储器,
所述控制器在能够利用由所述第1电源所供给的电力将传送到了所述第1区域的至少一个所述第2数据转移保存至所述非易失性存储器的情况下,输出表示所述多个第2数据全部被传送了这一情况的信号。
6.根据权利要求5所述的磁盘装置,
所述控制器在每次所述多个第2数据中的一个所述第2数据被传送到所述第1区域时,对与被传送到了所述第1区域的所述第2数据的第1块数对应的计数值加上第1值,在每次所述第2数据被写入到所述盘时,从所述计数值减去所述第1值,在所述计数值达到了基于所述第1数据所生成的所述多个第2数据的第2块数之后变为能够利用由所述第1电源所供给的电力转移保存至所述非易失性存储器的所述第2数据的第3块数的情况下,输出所述信号。
7.根据权利要求1所述的磁盘装置,
所述控制器在所述第2数据被写入到所述盘的情况下,将第3数据记录于所述缓冲存储器,将已记录于所述缓冲存储器的所述第3数据复制到所述内部存储器,在所述内部存储器中基于所述第3数据生成多个第4数据,向所述第1区域顺序传送所述多个第4数据,按向所述第1区域进行了传送的顺序将所述多个第4数据写入到所述盘。
8.根据权利要求7所述的磁盘装置,
所述控制器在接收到WRITE SAME命令的情况下,分别接收与WRITE SAME命令对应的所述第1数据和所述第3数据。
9.一种磁盘装置,其具备:
盘;
头,其对所述盘写入数据;
缓冲存储器,其记录要向所述盘写入的数据;以及
控制器,其接收WRITE SAME命令,将与WRITE SAME命令对应的第1数据记录于缓冲存储器,将已记录于所述缓冲存储器的所述第1数据复制到内部存储器,在所述内部存储器中基于所述第1数据生成多个第2数据,将所述多个第2数据传送到所述缓冲存储器,
所述控制器在所述缓冲存储器中确保第1区域,向所述第1区域顺序传送所述多个第2数据,按向所述第1区域进行了传送的顺序将所述多个第2数据写入到所述盘。
10.一种写入方法,其应用于磁盘装置,所述磁盘装置具备盘、对所述盘写入数据的头、以及记录要向所述盘写入的数据的缓冲存储器,
在所述写入方法中,
将第1数据记录于缓冲存储器,
将已记录于所述缓冲存储器的所述第1数据复制到内部存储器,
在所述内部存储器中基于所述第1数据生成多个第2数据,
将所述多个第2数据传送到所述缓冲存储器,
在所述缓冲存储器中确保第1区域,向所述第1区域顺序传送所述多个第2数据,按向所述第1区域进行了传送的顺序将所述多个第2数据写入到所述盘。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018038817A JP2019153363A (ja) | 2018-03-05 | 2018-03-05 | 磁気ディスク装置及びライト方法 |
JP2018-038817 | 2018-03-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110232033A CN110232033A (zh) | 2019-09-13 |
CN110232033B true CN110232033B (zh) | 2023-08-11 |
Family
ID=67767667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810839547.9A Active CN110232033B (zh) | 2018-03-05 | 2018-07-27 | 磁盘装置及写入方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10705739B2 (zh) |
JP (1) | JP2019153363A (zh) |
CN (1) | CN110232033B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021179211A1 (zh) * | 2020-03-11 | 2021-09-16 | 深圳市欢太科技有限公司 | 确定数据完整性的方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06309234A (ja) * | 1993-02-15 | 1994-11-04 | Toshiba Corp | ディスク制御装置 |
CN104077174A (zh) * | 2009-03-27 | 2014-10-01 | Lsi公司 | 用于提供存储系统逻辑块地址的数据固化的方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2652587B1 (en) | 2011-06-07 | 2017-11-15 | Hitachi, Ltd. | Storage system comprising flash memory, and storage control method |
JP2016021133A (ja) | 2014-07-14 | 2016-02-04 | 株式会社東芝 | 磁気ディスク装置、及びライトコマンドを実行する方法 |
CN106293503B9 (zh) * | 2015-06-23 | 2019-06-28 | 株式会社东芝 | 磁盘装置及控制方法 |
US10353626B2 (en) * | 2016-02-03 | 2019-07-16 | Samsung Electronics Co., Ltd. | Buffer memory management method and write method using the same |
JP2018156716A (ja) * | 2017-03-21 | 2018-10-04 | 株式会社東芝 | 磁気ディスク装置、コントローラ及び方法 |
-
2018
- 2018-03-05 JP JP2018038817A patent/JP2019153363A/ja active Pending
- 2018-07-27 CN CN201810839547.9A patent/CN110232033B/zh active Active
- 2018-09-10 US US16/126,229 patent/US10705739B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06309234A (ja) * | 1993-02-15 | 1994-11-04 | Toshiba Corp | ディスク制御装置 |
CN104077174A (zh) * | 2009-03-27 | 2014-10-01 | Lsi公司 | 用于提供存储系统逻辑块地址的数据固化的方法及系统 |
Non-Patent Citations (1)
Title |
---|
谁为"BT"狂――两款近线硬盘大PK;alfa;《电脑自做》;20061201(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20190272109A1 (en) | 2019-09-05 |
CN110232033A (zh) | 2019-09-13 |
JP2019153363A (ja) | 2019-09-12 |
US10705739B2 (en) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776153B2 (en) | Information processing device and system capable of preventing loss of user data | |
US8578100B1 (en) | Disk drive flushing write data in response to computed flush time | |
US9652164B2 (en) | Solid-state mass storage device and method for processing forced unit access write commands | |
US7487392B2 (en) | Data storage device, and method for rewriting data in nonvolatile memory | |
US8782336B2 (en) | Hybrid storage system with control module embedded solid-state memory | |
US9268499B1 (en) | Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory | |
KR20150035560A (ko) | 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭 | |
US8291190B2 (en) | Disk drive including a host interface supporting different sizes of data sectors and method for writing data thereto | |
CN106469021A (zh) | 存储装置和写高速缓存数据退避方法 | |
JP2013157068A (ja) | データ記憶制御装置、データ記憶装置、及びデータ記憶方法 | |
JP5787839B2 (ja) | ディスク記憶装置及びデータ保護方法 | |
CN110232033B (zh) | 磁盘装置及写入方法 | |
US11016665B2 (en) | Event-based dynamic memory allocation in a data storage device | |
JP5886803B2 (ja) | 情報記録装置およびデータ復旧方法 | |
US20170090768A1 (en) | Storage device that performs error-rate-based data backup | |
US9299387B2 (en) | Magnetic disk apparatus, controller and data processing method | |
US10102869B1 (en) | Magnetic disk device and read method | |
US20070174739A1 (en) | Disk device, method of writing data in disk device, and computer product | |
CN113345476B (zh) | 磁盘装置以及磁盘装置的存储管理方法 | |
US20140068178A1 (en) | Write performance optimized format for a hybrid drive | |
US20160170891A1 (en) | Disk apparatus and control method | |
US20210065738A1 (en) | Magnetic disk device and read retry processing method | |
JP2005242708A (ja) | ファイル修復方法、およびファイル記録装置 | |
US9053746B2 (en) | Disk device and data recording method | |
US20120324165A1 (en) | Memory control device and memory control method |
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 |