CN113345476B - 磁盘装置以及磁盘装置的存储管理方法 - Google Patents
磁盘装置以及磁盘装置的存储管理方法 Download PDFInfo
- Publication number
- CN113345476B CN113345476B CN202010729696.7A CN202010729696A CN113345476B CN 113345476 B CN113345476 B CN 113345476B CN 202010729696 A CN202010729696 A CN 202010729696A CN 113345476 B CN113345476 B CN 113345476B
- Authority
- CN
- China
- Prior art keywords
- data
- determination condition
- write
- processing thread
- amount
- 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
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
- G11B19/04—Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
- G11B19/041—Detection or prevention of read or write errors
- G11B19/044—Detection or prevention of read or write errors by using a data buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/02—Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/48—Disposition 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/54—Disposition 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 into or out of its operative position or across tracks
- G11B5/55—Track change, selection or acquisition by displacement of the head
- G11B5/5521—Track change, selection or acquisition by displacement of the head across disk tracks
- G11B5/5569—Track change, selection or acquisition by displacement of the head across disk tracks details of specially adapted mobile parts, e.g. electromechanical control devices
- G11B5/5573—Details of the magnetic circuit, e.g. of actuators
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明的实施方式涉及磁盘装置以及该磁盘中的存储管理方法。实施方式的磁盘装置具备磁盘、致动器、非易失性存储器和控制器。控制器在第1判定条件成立的情况下,将执行写指令的一个处理线程中的写指令的执行完成通知给主机,该第1判定条件是在该一个处理线程中未通知执行完成而未写入到磁盘的数据的量、与在执行写指令的其他处理线程中已通知执行完成而未写入到磁盘的数据的量的合计值是否小于等于非易失性存储器的容量的判定条件。
Description
本申请享受以日本专利申请2020-35744号(申请日:2020年3月3日)为基础申请的优先权。本申请通过参照该基础申请而包括基础申请的全部内容。
技术领域
本发明的实施方式涉及磁盘装置以及该磁盘中的存储(memory)管理方法。
背景技术
在磁盘装置中,为了提高随机写入的效率而暂时在高速缓存(cache)写出数据。在高速缓存中写出的数据被转移保存(退避)到串行闪存(serial flash memory)等非易失性存储器。在失去电源(失电、断电)时,例如通过主轴马达的反电动势来供给电力,使高速缓存数据转移保存到作为非易失存储器之一的PLP(Power Loss Protection,失电保护)缓冲器(buffer)。由此,谋求失去电源时的数据保护。
例如,在通过从主机接收到的写指令(write command)的处理线程(thread)能够将数据量写入到PLP缓冲器的情况下,硬盘控制器(以下称为HDC)通过在SAS(SerialAttached SCSI,串行SCSI接口)发送响应帧等,从而将写指令的完成通知给主机。若做出写指令的完成通知,则即使假设在通知后失去了电源的情况下,也需要在电源恢复后能正常读出通知对象的写入数据。
由于PLP缓冲器的容量是有限的,因此在写指令通过多个处理线程分别执行的情况下,例如在具有分体式致动器(split actuator)结构的硬盘这样的具有多个LUN(Logical Unit Number,逻辑单元号)的磁盘装置中,要求由各LUN中的写指令的处理线程高效地共享PLP缓冲器以备失去电源时之需。LUN是在磁盘装置中与多个独立的LBA(Logical Block Addressing,逻辑块地址)空间对应所分配的标识符。
发明内容
本发明的实施方式提供即使是在一个装置内具有多个独立的LBA空间(LUN)的磁盘装置也能够由各LUN中的写指令的处理线程高效地共享存储器(PLP缓冲器)的磁盘装置及其存储管理方法。
实施方式的磁盘装置具备:磁盘;致动器,其向磁盘写入数据;非易失性存储器,其转移保存未写入到磁盘的数据;以及控制器,其分别控制致动器和非易失性存储器,执行从主机发送来的指示向磁盘写入数据的写指令,将写指令的执行完成通知给主机。控制器判定第1判定条件,该第1判定条件是在执行写指令的一个处理线程中未通知执行完成而未写入到磁盘的数据的量、与在执行写指令的其他处理线程中已通知执行完成而未写入到磁盘的数据的量的合计值是否小于等于非易失性存储器的容量的判定条件。在第1判定条件成立的情况下,控制器将一个处理线程中的写指令的执行完成通知给主机。
附图说明
图1是表示实施方式涉及的磁盘装置的概略构成的一例的图。
图2是表示实施方式涉及的磁盘装置的系统控制器的概略构成的一例的图。
图3是表示第1实施方式涉及的磁盘装置中的缓冲器管理处理的一例的流程图。
图4是表示第1实施方式涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(未写入数据量判定条件以及未写入数据合计量判定条件)的成立与否的具体示例的一例的示意图。
图5是表示第1实施方式涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(未写入数据量判定条件以及未写入数据合计量判定条件)的成立与否的具体示例的另一例的示意图。
图6是表示第1实施方式涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(未写入数据量判定条件以及未写入数据合计量判定条件)的成立与否的具体示例的又一例的示意图。
图7是表示第2实施方式涉及的磁盘装置中的缓冲器管理处理的一例的流程图。
图8是表示第2实施方式涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(调整数据合计量判定条件)的成立与否的具体示例的一例的示意图。
图9是表示第2实施方式涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(调整数据合计量判定条件)的成立与否的具体示例的另一例的示意图。
图10是表示第2实施方式涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(调整数据合计量判定条件)的成立与否的具体示例的又一例的示意图。
图11是表示第3实施方式涉及的磁盘装置中的缓冲器管理处理的一例的流程图。
图12是表示第3实施方式涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(调整数据量判定条件以及调整数据合计量判定条件)的成立与否的具体示例的一例的示意图。
图13是表示第3实施方式涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(调整数据量判定条件以及调整数据合计量判定条件)的成立与否的具体示例的另一例的示意图。
图14是表示第3实施方式涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(调整数据量判定条件以及调整数据合计量判定条件)的成立与否的具体示例的又一例的示意图。
图15是表示第1实施方式的变形例涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(未写入数据量判定条件)的成立与否的具体示例的一例的示意图。
图16是表示第1实施方式的变形例涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(未写入数据量判定条件)的成立与否的具体示例的另一例的示意图。
图17是表示第3实施方式的变形例涉及的磁盘装置中的缓冲器管理处理中的指令完成通知条件(调整数据量判定条件以及调整数据合计量判定条件)的成立与否的具体示例的一例的示意图。
具体实施方式
以下,参照图1至图17,对实施方式涉及的磁盘装置进行说明。
(第1实施方式)
图1是表示第1实施方式涉及的磁盘装置1的概略构成的一例的图。图1中表示具备多个(作为一例为两个)致动器的双致动器(dual actuator)方式的磁盘装置1。
磁盘装置1具备头盘组件(head disk assembly,以下称为HDA)2、驱动器IC3a、3b、头放大器集成电路(以下称为头放大器IC)4a、4b、易失性存储器(以下称为缓冲器)5、非易失性存储器6、系统控制器(第1控制器)7a和系统控制器(第2控制器)7b。另外,磁盘装置1与主机8以可通信的方式连接。
HDA2具有磁盘(以下简称为盘)21、主轴马达(以下称为SPM)22、臂(arm)23a、23b和音圈马达(voice coil motor,以下称为VCM)24a、24b。
盘21例如是在其一面具备以磁的方式记录数据的记录面的磁记录介质。在盘21的记录区域分配有能够由用户利用的记录区域21a、和写入系统管理所需的信息的系统区21b。盘21通过SPM22驱动而旋转。SPM22利用从磁盘装置1的电源(以下称为主电源)9经由驱动器IC3a供给的电力来进行驱动。此外,盘21的片数也可以是多片。另外,盘21也可以在两面具备记录面,与这些记录面分别对应地配置有臂(头)。
臂23a以及VCM24a构成致动器(以下称为第1致动器)。在臂23a上搭载有头25a。VCM24a利用从主电源9经由驱动器IC3a供给的电力来进行驱动,对臂23a进行移动控制来使头25a定位于盘21上的目标位置。同样地,臂23b以及VCM24b构成致动器(以下称为第2致动器)。在臂23b上搭载有头25b。VCM24b利用从主电源9经由驱动器IC3b供给的电力来进行驱动,对臂23b进行移动控制来使头25b定位于盘21上的目标位置。
头25a、25b以滑块作为主体,具备安装于该滑块的读头RHa、RHb以及写头WHa、WHb。读头RHa、RHb读出盘21上的数据磁道中所记录的数据。写头WHa、WHb在盘21上写入数据。头25a、25b以至少包含一个扇区(sector)的区块(block)为单位将数据写入到盘21上,以区块为单位从盘21读出数据。扇区是从盘21读出的数据或者向盘21写入的数据的最小单位。
驱动器IC3a按照来自系统控制器7a(详细而言为后述的CPU71a)的控制,对SPM22以及VCM24a的驱动进行控制。另外,驱动器IC3b按照来自系统控制器7b(详细而言为后述的CPU71b)的控制,对VCM24b的驱动进行控制。
驱动器IC3a具备备用(backup)电源部31。如后所述,在实施方式中,系统控制器7a相当于磁盘装置1的主(母)SoC(System-on-a-Chip,片上系统),系统控制器7b相当于从(子)SoC。备用电源部31设于主(母)SoC即可,但也可以除了主SoC还设于从(子)SoC。
备用电源部31在磁盘装置1的主电源9失去(切断)了的情况下,代替主电源9生成电力。即,备用电源部31在主电源9失去了的情况下生成执行磁盘装置1的数据保护处理的电力。数据保护处理包括即使是在发生了失去主电源9的情况下也保障写数据的失电保护(PLP:Power Loss Protection)处理。PLP处理是将在失去主电源9的时间点没有写入(记录)到盘21的数据保存于后述的非易失性存储器6的处理。所生成的电力被供给至系统控制器7a、7b、缓冲器5以及非易失性存储器6。备用电源部31在该电力的生成中使用SPM22的反电动势。
驱动器IC3a具备监视来自主电源9的电压的供给状况的监视部32。从主电源9供给的电压(供给电压)是用于驱动器IC3a、3b使致动器(臂23a、23b以及VCM24a、24b)驱动的供给电力的电压。
头放大器IC4a、4b具备读放大器以及写驱动器。读放大器对从盘21读出的读信号进行放大,并输出至系统控制器7a、7b(详细而言为后述的HDC74a、74b)。写驱动器将与从HDC74a、74b输出的写数据相应的写电流输出至头25a、25b。
缓冲器5是将在磁盘装置1与主机8之间收发的数据等临时进行记录的半导体存储器。缓冲器5例如是DRAM(Dynamic Random Access Memory,动态随机存取存储器)、SRAM(Static Random Access Memory,静态随机存取存储器)、SDRAM(Synchronous DynamicRandom Access Memory,同步动态随机存取存储器)、FeRAM(Ferroelectric RandomAccess memory,铁电随机存取存储器)或者MRAM(Magneto resistive Random AccessMemory,磁阻随机存取存储器)等。缓冲器5的存储区域的一部分被用作易失性高速缓存5a。易失性高速缓存5a是临时保存要写入到盘21的写数据的存储区域。易失性存储器5的存储区域的另一部分保存磁盘装置1的各部分中的处理所需的数据等。
非易失性存储器6是即使电力供给被切断也记录所保存着的数据的半导体存储器。非易失性存储器6例如是NOR型或者NAND型的闪速ROM(Flash Read Only Memory(闪速只读存储器):FROM)。非易失性存储器6的存储区域的一部分被用作系统区域6a。在系统区域6a的一部分预先保存有初始程序加载程序(IPL)。后述的CPU71a、71b例如通过在接通了主电源9时执行IPL,将保存于盘21的控制程序的至少一部分加载到后述的控制存储器75a、75b。
非易失性存储器6的存储区域的另一部分被用作非易失性高速缓存6b。非易失性高速缓存6b是为了将虽然写入到了易失性高速缓存5a但还没有写入(记录)到盘21的数据(以下称为未写入数据)临时进行保存直到该数据被写入到盘21为止所使用的存储器。保存于非易失性高速缓存6b的数据在被写入到盘21时被删除。在失去主电源9时所执行的PLP处理中,非易失性高速缓存6b被用作用于使在失去电源的时间点仍留在易失性高速缓存5a中的未写入数据从易失性高速缓存5a转移保存的存储区域。以下,将非易失性高速缓存6b作为PLP缓冲器6b进行说明。
系统控制器7a、7b例如使用多个元件集成于单一芯片的被称为SoC的大规模集成电路(LSI)来实现。系统控制器7a是控制第1致动器(臂23a以及VCM24a)、驱动器IC3a、头放大器IC4a、缓冲器5以及非易失性存储器6的控制器。系统控制器7b是控制第2致动器(臂23b以及VCM24b)、驱动器IC3b和头放大器IC4b的控制器。
图2是表示系统控制器7a、7b的概略构成的一例的图。系统控制器7a和系统控制器7b为相同的构成。系统控制器7a相当于双致动器方式的磁盘装置1的主(母)SoC。系统控制器7b相当于双致动器方式的磁盘装置1的从(子)SoC。
如图2所示,上述系统控制器7a、7b分别构成为包括CPU71a、71b、缓冲器控制部72a、72b、数据通信电路73a、73b、硬盘控制器(以下称为HDC)74a、74b、控制存储器75a、75b。
系统控制器7a与驱动器IC3a、头放大器IC4a、缓冲器5、非易失性存储器6、系统控制器7b以及主机8连接。与此相对,系统控制器7b与驱动器IC3b、头放大器IC4b和系统控制器7a连接。系统控制器7a与系统控制器7b通过通信路径C连接。通信路径C是能够高速地进行数据传输的通信路径。
CPU71a以及CPU71b是控制磁盘装置1的各部分的主控制器。CPU71a、71b执行伺服控制:经由驱动器IC3a、3b控制SPM22的转速,并且控制VCM24a、24b,进行头25a、25b的定位。在读出数据时(执行读指令时),CPU71a、71b控制从盘21读出数据的读动作,并且控制读数据的处理。另外,在写入数据时(执行写指令时),CPU71a、71b控制向盘21写入数据的写动作,并且选择从主机8传输的写数据的保存目的地。CPU71a、71b与驱动器IC3a、3b、HDC74a、74b以及控制存储器75a、75b连接。
主电源9接通时,CPU71a、71b从非易失性存储器6的系统区域6a执行IPL,将保存于盘21的控制程序加载到控制存储器75a、75b。由此,CPU71a、71b执行用于使系统控制器7a、7b以预定的动作模式动作的处理。作为一例,CPU71a使系统控制器7a作为主(母)SoC而发挥功能,CPU71b使系统控制器7b作为从(子)SoC而发挥功能。
缓冲器控制部72a、72b控制缓冲器5与系统控制器7a、7b的数据的交换。在实施方式中,作为一例,由于系统控制器7b作为从(子)SoC而发挥功能,因此缓冲器控制部72b的功能被设为无效。
数据通信电路73a、73b经由通信路径C将系统控制器7a与系统控制器7b相互连接,控制它们之间的数据的收发。
HDC74a、74b根据来自CPU71a、71b的指示,执行读数据以及写数据的信号处理。HDC74a、74b具有测定读数据的信号品质的电路或者功能。例如,HDC74a、74b具有执行对于从盘21读出的读数据的纠错(或者误差校正)处理(Error Checking and Correcting:ECC)的功能等。HDC74a、74b与头放大器IC4a、4b和CPU71a、71b连接。在本实施方式中,由于系统控制器7a作为主(母)SoC而发挥功能,因此根据来自CPU71a的指示,HDC74a从主机8接收读指令以及写指令,控制与主机8之间的数据传输。HDC74a与非易失性存储器6连接。
控制存储器75a、75b例如是如DRAM这样的易失性存储器。在控制存储器75a、75b的存储区域中加载控制程序的一部分。另外,在控制存储器75a、75b的存储区域中保存管理表76a、76b。管理表76a、76b包含易失性高速缓存目录信息以及PLP缓冲器目录信息。易失性高速缓存目录信息是用于以一定大小的区块为单位对易失性高速缓存5a内的数据的所在位置进行管理的信息。PLP缓冲器目录信息是用于以一定大小的区块为单位对PLP缓冲器6b内的数据所在位置进行管理的信息。再者,控制存储器75a、75b的存储区域的一部分被用作指令缓冲器77a、77b。指令缓冲器77a、77b保存从主机8接收到的读指令以及写指令的队列。读指令以及写指令例如在与各指令对应的处理线程中按队列的顺序被执行。
在从盘21读出数据时以及向盘21写入数据时,系统控制器7a、7b如下进行工作。此时,与主机8的通信由作为主(母)Soc的系统控制器7a控制。此外,以下所说明的第1数据是使用头25a从盘21读或者向盘21写的数据,第2数据是使用头25b从盘21读或者向盘21写的数据。
系统控制器7a在从主机8接收到指示从盘21读出读数据的读指令的情况下,基于CPU71a的指示,将读数据分成第1数据和第2数据,并将与第2数据有关的信息经由通信路径C通知给CPU71b。CPU71a将第1数据经由头放大器IC4a、HDC74a以及缓冲器控制部72a保存于缓冲器5。CPU71b经由头放大器IC4b、HDC74b、数据通信电路73b、通信路径C、数据通信电路73a以及缓冲器控制部72a将第2数据保存于缓冲器5。而且,CPU71a进行控制以使得将保存于缓冲器5的第1数据以及第2数据发送到主机8。
另外,系统控制器7a在从主机8接收到指示向盘21写入写数据的写指令的情况下,经由缓冲器控制部72a将写数据保存于缓冲器5(易失性高速缓存5a)。CPU71a将写数据分成第1数据和第2数据,并将与第2数据有关的信息经由通信路径C通知给CPU71b。CPU71a经由缓冲器控制部72a、HDC74a以及头放大器IC4a将第1数据从易失性高速缓存5a写入(记录)到盘21。与此相对,CPU71b经由缓冲器控制部72a、数据通信电路73a、通信路径C、数据通信电路73b、HDC74b以及头放大器IC4b将第2数据从易失性高速缓存5a写入(记录)到盘21。
此外,分离为第1数据和第2数据的条件例如既可以设为以读出或者写入数据的磁道为单位、以头为单位、以盘为单位来进行分离,也可以设为按以主体(main)处理的数据和以后台(background)处理的数据来进行分离。
接着,对实施方式涉及的磁盘装置1中的用于包括PLP处理在内的数据保护处理的PLP缓冲器6b的管理方法进行说明。
在本实施方式中,磁盘装置1中分配有两个LUN(Logical Unit Number)。LUN是在磁盘装置1中与多个独立的LBA(Logical Block Addressing)空间对应所分配的标识符。第1致动器、简而言之是系统控制器7a通过一方的LUN(以下称为LUNA)的写指令的处理线程执行写数据的写入。与此相对,第2致动器、简而言之是系统控制器7b通过另一方的LUN(称为LUNB)的写指令的处理线程执行写数据的写入。即,LUNA相当于与系统控制器7a相关联的标识符,LUNB相当于与系统控制器7b相关联的标识符。在写指令被执行的一个时间点,正在执行该写指令的处理线程与LUN唯一地对应。
图3是表示数据保护处理中的PLP缓冲器6b的管理方法的流程图。具体而言是表示关于两个LUNA、LUNB,在PLP缓冲器6b确保写数据的存储区域时所执行的一系列处理(以下称为缓冲器管理处理)。
如图3所示,在缓冲器管理处理时,系统控制器7a检测是否接收到来自主机8的写指令(S101)。此时,CPU71a判定HDC74a是否从主机8接收到写指令。
在没有接收到写指令的情况下,系统控制器7a结束缓冲器管理处理。
与此相对,在接收到写指令的情况下,CPU71a通过该写指令的处理线程将写数据保存于缓冲器5(易失性高速缓存5a)(S102)。
接着,CPU71a取得为了判定指令完成通知条件所需的数据(判定参数)(S103)。指令完成通知条件是能否将写指令正常执行完成这一情况通知给主机8的判定条件。以下,将有关通知称为指令完成通知。判定参数是表示与PLP缓冲器6b以及LUN的相关的各种值。在此是写指令的处理线程中的未写入数据量、和未写入数据量的合计值(以下称为未写入数据合计量)这两个。
在此刻(当前时刻)正在执行写指令的LUN(以下称为对象LUN。作为一例为LUNA)的情况下,未写入数据量是正要确保PLP缓冲器6b的存储区域的写数据的量。换言之,是在正要通知完成的(此刻还没有进行指令完成通知的)写指令的处理线程中尚未确定能向PLP缓冲器6b写入(转移保存)的写数据的量。另外,在已经执行了写指令的LUN(以下称为对象外LUN。作为一例为LUNB)的情况下,未写入数据量是已经确保了PLP缓冲器6b的存储区域的写数据的量。换言之,是在已经将写指令的完成进行了通知的(此刻进行了指令完成通知的)写指令的处理线程中尚未写入(记录)到盘21但已经确定了能向PLP缓冲器6b写入(转移保存)的写数据的量。
关于对象外LUN,作为一例为LUNB,但在以下的情况下,也包含LUNA。例如如下情况:在执行了与此刻在LUNA中所执行的写指令不同的另一写指令的LUNA的处理线程中,已经进行了指令完成通知但是尚未写入(记录)到盘21,因而有确保了PLP缓冲器6b的存储区域的写数据。在该情况下,有关PLP缓冲器6b的剩余的LUNA的处理线程的未写入数据量也被加入到未写入数据合计量。
未写入数据合计量是对象LUN的未写入数据量与对象外LUN的未写入数据量的合计量。即,未写入数据合计量是关于所有LUN(在本实施方式中为LUNA和LUNB),已经进行了指令完成通知但是尚未写入(记录)到盘21且确保了PLP缓冲器6b的存储区域的写数据的量、与对象LUN的未写入数据量的合计量。
换言之,PLP缓冲器6b成为确保了能将未写入数据合计量的写数据写入的存储区域的状态。因此,在PLP缓冲器6b中,仅剩余有能将从缓冲器容量减去未写入数据合计量所得到的容量的写数据写入(转移保存)的存储区域。缓冲器容量是最大限度地能将写数据写入到PLP缓冲器6b的存储容量,例如设定为在由SPM22的反电动势维持的时间内能写入(转移保存)的存储容量的最大值。
未写入数据量以及未写入数据合计量例如根据对PLP缓冲器6b的存储区域附加的区块地址、换言之是区块数来算出。与向盘21进行了写入(记录)的写数据对应的PLP缓冲器6b的区块地址的信息(SVSC)从驱动器IC3a、3b提供给CPU71a、71b。各LUN的写指令的处理线程中的未写入数据量被作为与如下差量相当的区块数来算出,所述差量是该写指令的最终区块地址和与向盘21进行了写入的写数据对应的区块地址的差量。
当通过写指令的处理线程向盘21写入了写数据时,其数据量的可在PLP缓冲器6b确保的存储区域被释放。因此,在未写入数据量变为负的情况下,成为写数据以与有关写指令的处理线程中的写数据量以上的数据量相当的区块数写入到了盘21的状态。即,在该情况下,完成了向盘21写入有关写数据,对应的写指令的未写入数据量的值成为0(零)。
当取得了判定参数时,CPU71a基于判定参数判定指令完成通知条件。在此,作为指令完成通知条件,分别判定未写入数据合计量判定条件(第1判定条件)和未写入数据量判定条件(第2判定条件)。作为一例,首先判定未写入数据量判定条件(S104),接下来判定未写入数据合计量判定条件(S105)。这些判定条件的判定顺序也可以相反。
未写入数据量判定条件是对象LUN的未写入数据量是否在最大可占用容量以下的判定条件。最大可占用容量是一个LUN能够占用的PLP缓冲器6b的存储区域的最大值。在未写入数据量判定条件的判定时,CPU71a将对象LUN的未写入数据量与最大可占用容量进行比较。如果对象LUN的未写入数据量在最大可占用容量以下,则CPU71a判定为未写入数据量判定条件成立。另一方面,如果对象LUN的未写入数据量超过最大可占用容量,则CPU71a判定为未写入数据量判定条件不成立。但是,未写入数据量与最大可占用容量一致的情况下的未写入数据量判定条件的成立与否也可以与上述相反。
在未写入数据量判定条件成立的情况下,CPU71a判定未写入数据合计量判定条件(S105)。未写入数据合计量判定条件是未写入数据合计量是否在缓冲器容量以下的判定条件。在未写入数据合计量判定条件的判定时,CPU71a将未写入数据合计量与缓冲器容量进行比较。如果未写入数据合计量在缓冲器容量以下,则CPU71a判定为未写入数据合计量判定条件成立。另一方面,如果未写入数据合计量超过缓冲器容量,则CPU71a判定为未写入数据合计量判定条件不成立。但是,未写入数据合计量与缓冲器容量一致的情况下的未写入数据合计量判定条件的成立与否也可以与上述相反。
在未写入数据合计量判定条件成立的情况下,CPU71a设为对象LUN的写指令已完成,经由HDC74a向主机8发送指令完成通知(S106)。在该情况下,PLP缓冲器6b中剩余有对象LUN的写指令的处理线程中的可写入写数据的存储区域,成为能够将该写数据写入到PLP缓冲器6b的状态。因此,能够将指令完成通知、也即是说写指令正常完成这一情况通知给主机8。
与此相对,当在S104中未写入数据量判定条件不成立的情况下、或者在S105中未写入数据合计量判定条件不成立的情况下,CPU71a进行不成立处理(S107)。在该情况下,PLP缓冲器6b中没有剩余对象LUN的写指令的处理线程中的可写入写数据的存储区域。因此,对象LUN的写指令没有完成,CPU71a不向主机8发送指令完成通知。取而代之,作为不成立处理,例如执行在经过预定时间后使缓冲器管理处理结束的超时处理、在重复进行预定次数的判定后指令完成通知条件(未写入数据量判定条件以及未写入数据合计量判定条件)仍不成立的情况下使缓冲器管理处理结束的重试处理、和组合这些处理而成的处理等。此外,也可以省略不成立处理,而在指令完成通知条件不成立的情况下使缓冲器管理处理结束。
在图4至图6中,分别表示图3所示的缓冲器管理处理中的指令完成通知的可否、也即是说指令完成通知条件(未写入数据量判定条件以及未写入数据合计量判定条件)的成立与否的具体示例。在图4至图6所示的例子中,PLP缓冲器6b的缓冲器容量(MAX_CAP)为100,最大可占用容量(TH1)为80。另外,对象LUN为LUNA,对象外LUN为LUNB。即,LUNA在此刻通过写指令的处理线程正要在PLP缓冲器6b确保写数据的存储区域而发出指令完成通知。另一方面,关于LUNB,通过与LUNA不同的另一写指令的处理线程已经在PLP缓冲器6b确保写数据的存储区域并进行了指令完成通知。
在图4所示的例子中,LUNB的写指令的处理线程已经在PLP缓冲器6b确保了写数据的存储区域,其未写入数据量(DAB)为10。DAB是作为对象外LUN的LUNB的未写入数据量,是虽然已经进行了指令完成通知但是尚未写入(记录)到盘21而PLP缓冲器6b的存储区域不被释放仍被确保不变的写数据的量。与此相对,作为对象LUN的LUNA的未写入数据量(DAA)为90。DAA是作为对象LUN的LUNA的未写入数据量,是尚未进行指令完成通知并正要确保PLP缓冲器6b的存储区域的写数据的量。
最大可占用容量(TH1)为80,LUNA的未写入数据量(DAA)超过此容量(DAA>TH1),因此未写入数据量判定条件不成立。即,在作为对象LUN的LUNA的写指令的处理线程中无法在PLP缓冲器6b确保写数据的存储区域。作为结果,无法向主机8发送LUNA的指令完成通知。
此外,在该情况下,未写入数据合计量是对DAB加上DAA后的未写入数据量(10+90),成为100。因此,由于未写入数据合计量在缓冲器容量(MAX_CAP)以下(DAA+DAB≤MAX_CAP),因而未写入数据合计量判定条件成立。然而,如上所述,未写入数据量判定条件不成立,因此指令完成通知条件不成立,不能向主机8发送LUNA的指令完成通知。
在图5所示的例子中,LUNB的未写入数据量(DAB)为30。另一方面,LUNA的未写入数据量(DAA)为80。因此,由于LUNA的未写入数据量(DAA)在最大可占用容量(TH1)以下(DAA≤TH1),因而未写入数据量判定条件成立。
与此相对,未写入数据合计量(DAA+DAB)为110。因此,由于未写入数据合计量(DAA+DAB)超过了缓冲器容量(MAX_CAP)(DAA+DAB>MAX_CAP),因而未写入数据合计量判定条件不成立。在该情况下,在PLP缓冲器6b中,没有剩余能将LUNA的未写入数据量(DAA)的写数据写入(转移保存)的存储区域。即,在作为对象LUN的LUNA的写指令的处理线程中无法在PLP缓冲器6b确保写数据的存储区域。
如此,在图5所示的例子中,虽然未写入数据量判定条件成立,但由于未写入数据合计量判定条件不成立,因此指令完成通知条件不成立,不能向主机8发送LUNA的指令完成通知。
在图6所示的例子中,LUNB的未写入数据量(DAB)为20。另一方面,LUNA的未写入数据量(DAA)为70。因此,LUNA的未写入数据量(DAA)在最大可占用容量(TH1)以下(DAA≤TH1),未写入数据量判定条件成立。
与此相对,未写入数据合计量(DAA+DAB)为90。因此,由于未写入数据合计量(DAA+DAB)在缓冲器容量(MAX_CAP)以下(DAA+DAB≤MAX_CAP),因而未写入数据合计量判定条件成立。在该情况下,在PLP缓冲器6b中,剩余有能将LUNA的未写入数据量(DAA)的写数据写入(转移保存)的存储区域。即,在作为对象LUN的LUNA的写指令的处理线程中能够在PLP缓冲器6b确保写数据的存储区域。
如此,在图6所示的例子中,由于未写入数据量判定条件以及未写入数据合计量判定条件均成立,因此指令完成通知条件成立,能够向主机8发送LUNA中的指令完成通知。
在上述的第1实施方式中,使用未写入数据量判定条件和未写入数据合计量判定条件作为写指令完成通知条件,但是指令完成通知条件不限定于此。例如,也可以使用后述的调整数据合计量判定条件作为指令完成通知条件。以下,以如此将指令完成通知条件设为调整数据合计量判定条件的实施方式作为第2实施方式来进行说明。第2实施方式的磁盘装置的构成本身与图1以及图2所示的第1实施方式的磁盘装置1的构成是同等的。
(第2实施方式)
图7是表示本实施方式中的缓冲器管理处理的一例的流程图。以下,按照图7所示的流程图,对缓冲器管理处理中的指令完成通知条件(调整数据合计量判定条件)的成立与否进行说明。此外,本实施方式的缓冲器管理处理的控制流程是将第1实施方式的控制流程(图3)的一部分更换为第2实施方式所特有的控制的流程。因此,对于与上述的第1实施方式同等的控制,赋予同一步骤号并省略说明,仅对第2实施方式所特有的控制进行说明。
如图7所示,在缓冲器管理处理时,当接收到写指令(S101)并通过该写指令的处理线程将写数据保存于缓冲器5(易失性高速缓存5a)时(S102),CPU71a取得判定参数(S103)。判定参数是未写入数据量和未写入数据合计量。
在本实施方式中,未写入数据量根据需要而被调整(修正)。因此,CPU71a判定数据量调整要否条件(S201)。数据量调整要否条件是是否需要调整未写入数据量的判定条件。在数据量调整要否条件的判定时,CPU71a将各LUN的未写入数据量与占用确保容量进行比较。占用确保容量是一个LUN一定能够占用的PLP缓冲器6b的存储区域的容量值。即,在PLP缓冲器6b中,作为所有LUN分别一定能够占用的存储区域,预先根据LUN的数量而确保有占用确保容量的存储区域。关于占用确保容量,只要对于所有LUN为一定值即可,但也可以为按LUN所设定的固有值,还可以为变动值。如果未写入数据量小于占用确保容量,则CPU71a判定为数据量调整要否条件成立。另一方面,如果未写入数据量在占用确保容量以上,则CPU71a判定为数据量调整要否条件不成立。
占用确保容量(TH2)与最大可占用容量(TH1)以及缓冲器容量(MAX_CAP)具有由如下的两个关系式所示的关系。第1关系式为TH2≤TH1。第2关系式为TH1+(n-1)×TH2≤MAX_CAP。在第2关系式中,n为LUN的总数。如上所述,缓冲器容量例如是固定值,该固定值被设定为在由SPM22的反电动势维持的时间内能写入(转移保存)的存储容量的最大值。占用确保容量和最大可占用容量基于根据反电动势所设定的缓冲器容量而设定为使第1关系式以及第2关系式均成立。换言之,在第1关系式以及第2关系式均成立的条件下,占用确保容量和最大可占用容量能够基于缓冲器容量设定为最佳值。
在数据量调整要否条件成立的情况下,CPU71a将LUN的未写入数据量的值调整(修正)为占用确保容量的值(S202)。在该情况下,由于未写入数据量在此刻小于占用确保容量,因而需要预先按占用确保容量确保PLP缓冲器6b的存储区域以备有关LUN的处理线程中的写数据的今后的写入(转移保存)之需。因此,将此刻小于占用确保容量的LUN的未写入数据量的值调整为占用确保容量的值。在调整了未写入数据量的情况下,使用调整后的未写入数据容量的值来算出未写入数据合计量。
与此相对,当在S202中数据量调整要否条件不成立的情况下,CPU71a不调整(修正)LUN的未写入数据量的值。即,由于在此刻未写入数据量在占用确保容量以上,因而针对有关LUN的写指令的处理线程,无需进一步确保PLP缓冲器6b的存储区域。因此,不调整此刻在占用确保容量以上的LUN的未写入数据量,而维持实际的值不变。
接下来,CPU71a基于判定参数判定指令完成通知条件。在此,作为指令完成通知条件,判定调整数据合计量判定条件(S203)。
调整数据合计量判定条件是未写入数据合计量是否在缓冲器容量以下的判定条件。但是,在调整了未写入数据量的情况下,有关LUN的未写入数据量的值成为调整后(修正后)的值,由此算出未写入数据合计量。在调整数据合计量判定条件的判定时,CPU71a将未写入数据合计量与缓冲器容量进行比较。如果未写入数据合计量在缓冲器容量以下,则CPU71a判定为调整数据合计量判定条件成立。另一方面,如果未写入数据合计量超过缓冲器容量,则CPU71a判定为调整数据合计量判定条件不成立。但是,未写入数据合计量与缓冲器容量一致的情况下的调整数据合计量判定条件的成立与否也可以与上述相反。
在调整数据合计量判定条件成立的情况下,CPU71a设为对象LUN的写指令已完成,经由HDC74a向主机8发送指令完成通知(S106)。
与此相对,当在S203中调整数据合计量判定条件不成立的情况下,CPU71a进行不成立处理(S107)。在该情况下,对象LUN的写指令没有完成,CPU71a不向主机8发送指令完成通知。
在图8至图10中,分别表示图7所示的缓冲器管理处理中的指令完成通知的可否、也即是说指令完成通知条件(调整数据合计量判定条件)的成立与否的具体示例。在图8至图10所示的例子中,PLP缓冲器6b的缓冲器容量(MAX_CAP)为100,占用确保容量(TH2)为10。另外,对象LUN为LUNA,对象外LUN为LUNB。即,LUNA在此刻通过写指令的处理线程正要在PLP缓冲器6b确保写数据的存储区域而发出指令完成通知。另一方面,关于LUNB,通过与LUNA不同的另一写指令的处理线程已经在PLP缓冲器6b确保写数据的存储区域并进行了指令完成通知。
在图8所示的例子中,LUNB的写指令的处理线程已经在PLP缓冲器6b确保了写数据的存储区域,其未写入数据量(DAB)为50。另一方面,作为对象LUN的LUNA的未写入数据量(DAA)为60。在该情况下,LUNA的未写入数据量(DAA)的值以及LUNB的未写入数据量(DAB)的值均超过了占用确保容量(TH2),因此不调整(修正),而维持实际的值不变。
未写入数据合计量为对DAB加上DAA后的实际的未写入数据量(50+60),成为110。由于未写入数据合计量超过缓冲器容量(MAX_CAP)(DAA+DAB>MAX_CAP),因而调整数据合计量判定条件不成立。即,在作为对象LUN的LUNA的写指令的处理线程中无法在PLP缓冲器6b确保写数据的存储区域。因此,不能向主机8发送LUNA中的指令完成通知。
在图9所示的例子中,LUNB的未写入数据量(DAB)为5。在该情况下,由于小于占用确保容量(TH2),因而将LUNB的未写入数据量(DAB)的值调整(修正)为TH2的值而成为10。另一方面,LUNA的未写入数据量(DAA)为95。在该情况下,LUNA的未写入数据量(DAA)的值超过占用确保容量(TH2),因此不调整,而维持实际的值不变。
未写入数据合计量是对调整后的DAB加上实际的DAA后的未写入数据合计量(10+95),成为105。由于未写入数据合计量超过了缓冲器容量(MAX_CAP)(DAA+DAB>MAX_CAP),因而调整数据合计量判定条件不成立。即,在作为对象LUN的LUNA的写指令的处理线程中无法在PLP缓冲器6b确保写数据的存储区域。因此,不能向主机8发送LUNA中的指令完成通知。
此外,由于LUNB的实际的(也即是说调整前的)未写入数据量(DAB)为5,在使用实际的值的情况下,未写入数据合计量为100(5+95),在缓冲器容量(MAX_CAP)以下(DAA+DAB≤MAX_CAP),因此调整数据合计量判定条件成立。然而,如上所述,需要预先按占用确保容量(TH2)确保PLP缓冲器6b的存储区域以备今后确保LUNB的处理线程中的写数据的存储区域的情况之需。因此,将LUNB的未写入数据量(DAB)的值调整为占用确保容量(TH2)的值,设为调整数据合计量判定条件不成立。
在图10所示的例子中,LUNB的未写入数据量(DAB)为40。另一方面,LUNA的未写入数据量(DAA)为60。在该情况下,LUNA的未写入数据量(DAA)的值以及LUNB的未写入数据量(DAB)的值均超过了占用确保容量(TH2),因此不调整(修正),而维持实际的值不变。
未写入数据合计量是对DAB加上DAA后的实际的未写入数据合计量(40+60),成为100。由于未写入数据合计量在缓冲器容量(MAX_CAP)以下(DAA+DAB≤MAX_CAP),因而调整数据合计量判定条件成立。即,在作为对象LUN的LUNA的写指令的处理线程中能够在PLP缓冲器6b确保写数据的存储区域,能够向主机8发送LUNA中的指令完成通知。
另外,也可以除了第2实施方式中的调整数据合计量判定条件之外还使用后述的调整数据量判定条件作为指令完成通知条件。以下,以如此将指令完成通知条件设为调整数据量判定条件以及调整数据合计量判定条件的实施方式作为第3实施方式来进行说明。第3实施方式的磁盘装置的构成本身与图1以及图2所示的第1实施方式的磁盘装置1的构成是同等的。
(第3实施方式)
图11是表示本实施方式中的缓冲器管理处理的一例的流程图。以下,按照图11所示的流程图,对缓冲器管理处理中的指令完成通知条件(调整数据量判定条件以及调整数据合计量判定条件)的成立与否进行说明。此外,本实施方式的缓冲器管理处理的控制流程是将第2实施方式的控制流程(图7)的一部分更换为第3实施方式所特有的控制的流程。因此,对于与上述的第2实施方式同等的控制,赋予同一步骤号并省略说明,仅对第3实施方式所特有的控制进行说明。
如图11所示,在缓冲器管理处理时,当接收到写指令(S101)并通过该写指令的处理线程将写数据保存于缓冲器5(易失性高速缓存5a)时(S102),CPU71a取得判定参数(S103)。判定参数是未写入数据量和未写入数据合计量。
未写入数据量根据需要而被调整(修正),因此CPU71a判定数据量调整要否条件(S201)。
在数据量调整要否条件成立的情况下,CPU71a将LUN的未写入数据量的值调整(修正)为占用确保容量的值(S202)。在调整了未写入数据量的情况下,使用调整后的未写入数据容量算出未写入数据合计量。与此相对,在数据量调整要否条件不成立的情况下,CPU71a不调整(修正)LUN的未写入数据量的值。因此,不调整此刻小于占用确保容量的LUN的未写入数据量,而维持实际的值不变。
接下来,CPU71a基于判定参数判定指令完成通知条件。在此,作为指令完成通知条件,分别判定调整数据量判定条件以及调整数据合计量判定条件。作为一例,首先判定调整数据量判定条件(S301),接着判定调整数据合计量判定条件(S203)。
调整数据量判定条件是对象LUN的未写入数据量是否在最大可占用容量以下的判定条件。但是,在调整了未写入数据量的情况下,未写入数据量的值成为调整后(修正后)的值。在调整数据量判定条件的判定时,CPU71a将对象LUN的未写入数据量与最大可占用容量进行比较。如果对象LUN的未写入数据量在最大可占用容量以下,则CPU71a判定为调整数据量判定条件成立。另一方面,如果对象LUN的未写入数据量超过最大可占用容量,则CPU71a判定为调整数据量判定条件不成立。但是,未写入数据量与最大可占用容量一致的情况下的调整数据量判定条件的成立与否也可以与上述相反。
在调整数据量判定条件成立的情况下,CPU71a判定调整数据合计量判定条件(S203)。在调整数据合计量判定条件成立的情况下,CPU71a设为对象LUN的写指令已完成,经由HDC74a向主机8发送指令完成通知(S106)。
与此相对,当在S301中调整数据量判定条件不成立的情况下、或者在S203中调整数据合计量判定条件不成立的情况下,CPU71a进行不成立处理(S107)。在该情况下,对象LUN的写指令没有完成,CPU71a不向主机8发送指令完成通知。
在图12至图14中,分别表示图11所示的缓冲器管理处理中的指令完成通知的可否、也即是说指令完成通知条件(调整数据量判定条件以及调整数据合计量判定条件)的成立与否的具体示例。在图12至图14所示的例子中,PLP缓冲器6b的缓冲器容量(MAX_CAP)为100,最大可占用容量(TH1)为60,占用确保容量(TH2)为10。另外,对象LUN为LUNA,对象外LUN为LUNB。即,LUNA在此刻通过写指令的处理线程正要在PLP缓冲器6b确保写数据的存储区域而发出指令完成通知。另一方面,关于LUNB,通过写指令的处理线程已经在PLP缓冲器6b中确保了写数据的存储区域并进行了指令完成通知。
在图12所示的例子中,通过LUNB的写指令的处理线程已经在PLP缓冲器6b写入了写数据,其未写入数据量(DAB)为5。在该情况下,由于小于占用确保容量(TH2),因而将LUNB的未写入数据量(DAB)的值调整(修正)为TH2的值而成为10。另一方面,LUNA的未写入数据量(DAA)为70。在该情况下,LUNA的未写入数据量(DAA)的值超过了占用确保容量(TH2),因此不调整,而维持实际的值不变。
最大可占用容量(TH1)为60,LUNA的未写入数据量(DAA)超过了该容量(DAA>TH1),因此调整数据量判定条件不成立。即,在作为对象LUN的LUNA的写指令的处理线程中无法在PLP缓冲器6b确保写数据的存储区域。因此,不能向主机8发送LUNA中的指令完成通知。
此外,在该情况下,未写入数据合计量是对调整后的DAB加上实际的DAA后的数据量(10+70),成为80。因此,由于未写入数据合计量在缓冲器容量(MAX_CAP)以下(DAA+DAB≤MAX_CAP),因而调整数据合计量判定条件成立。然而,如上所述,由于调整数据量判定条件不成立,因而指令完成通知条件不成立,无法向主机8发送LUNA中的指令完成通知。
在图13所示的例子中,LUNB的未写入数据量(DAB)为50。另一方面,LUNA的未写入数据量(DAA)为60。在该情况下,LUNA的未写入数据量(DAA)的值以及LUNB的未写入数据量(DAB)的值均超过了占用确保容量(TH2),因此不调整(修正),而维持实际的值不变。
未写入数据合计量是对DAB加上DAA得到的调整后的未写入数据合计量(50+60),成为110。由于未写入数据合计量超过缓冲器容量(MAX_CAP)(DAA+DAB>MAX_CAP),因而调整数据合计量判定条件不成立。即,在作为对象LUN的LUNA的写指令的处理线程中无法在PLP缓冲器6b确保写数据的存储区域。因此,不能向主机8发送LUNA中的指令完成通知。
在图14所示的例子中,LUNB的未写入数据量(DAB)为40。另一方面,LUNA的未写入数据量(DAA)为60。在该情况下,LUNA的未写入数据量(DAA)的值以及LUNB的未写入数据量(DAB)的值均超过了占用确保容量(TH2),因而不调整(修正),而维持实际的值不变。
因此,LUNA的未写入数据量(DAA)在最大可占用容量(TH1)以下(DAA≤TH1),调整数据量判定条件成立。
与此相对,未写入数据合计量是对DAB加上DAA得到的实际的未写入数据合计量(40+60),成为100。因此,由于未写入数据合计量在缓冲器容量(MAX_CAP)以下(DAA+DAB≤MAX_CAP),因而调整数据合计量判定条件成立。
在图14所示的例子中,调整数据量判定条件以及调整数据合计量判定条件均成立,因此指令完成通知条件成立。即,在作为对象LUN的LUNA的写指令的处理线程中能够在PLP缓冲器6b确保写数据的存储区域,能够向主机8发送LUNA中的指令完成通知。
如此,根据实施方式涉及的磁盘装置1,能够根据在对象LUN的写指令的处理线程中指令完成通知条件的成立与否,确保用于将写数据向PLP缓冲器6b写入(转移保存)的存储区域。因此,即使在一个装置内具有多个LUN的情况下,也能够在各LUN的写指令的处理线程中高效地共享PLP缓冲器6b。
例如,在对一个LUN发送了许多写指令且这些写指令的处理线程中的未写入数据量达到了缓冲器容量的情况下,在以往,很可能无法将其他LUN的写指令的处理线程中的未写入数据量的写数据向PLP缓冲器6b转移保存。然而,通过如本实施方式这样共享PLP缓冲器6b,所有LUN的写指令的处理线程中没有偏颇而能够在PLP缓冲器6b确保用于未写入数据量的写数据的存储区域。
即,未写入数据量根据数据量调整要否条件的成立与否而被调整(修正),因此能够对所有LUN确保占用确保容量的存储区域。因此,不会由一个LUN将PLP缓冲器6b用尽,而由多个LUN共享PLP缓冲器6b,一定能够占用占用确保容量的存储区域。此时,可由一个LUN占用的PLP缓冲器6b的存储容量被抑制为最大可占用容量。因此,能够以最大可占用容量作为上限而可占用预定量的存储区域地由多个LUN共享PLP缓冲器6b。由此,能够在失去了电源时使未写入数据量的写数据高效地转移保存。
此外,在这样共享PLP缓冲器6b后,将在PLP缓冲器6b确保了未写入数据量的写数据的存储区域这一情况通过指令完成通知来通知给主机8。因此,对于进行了指令完成通知的写数据,即使在通知后失去了电源时尚未写入(记录)到盘21,也能够切实地保障能转移保存于PLP缓冲器6b。即,能够实现失去电源时的数据保护性能的提高。
以上,说明了本发明的几个实施方式,但是上述的各实施方式是作为例子而提示的,并非意图限定发明的范围。涉及的新的实施方式能够以其他各种各样的方式来实施,在不脱离发明要旨的范围内能够进行各种省略、替换、变更。这些实施方式和/或其变形包含于发明的范围和/或要旨内,并且包含于技术方案中记载的发明及与其等同的范围内。
在上述的各实施方式中,磁盘装置1中分配有两个LUN(LUNA、LUNB),但LUN的数量不特别限定,也可以为一个,还可以为三个以上。
例如,即使在如单致动器方式的磁盘装置那样仅分配有单一的LUN(以下称为LUNS)的情况下,也能够在同样的缓冲器管理处理中进行写指令的完成通知可否的判定。
在该情况下,作为判定参数,使用LUNS的未写入数据量(DAS)和PLP缓冲器6b的缓冲器容量(MAX_CAP),判定指令完成通知条件。在图15以及图16中,分别表示指令完成通知条件的成立与否的具体示例。在图15以及图16所示的例子中,PLP缓冲器6b的缓冲器容量(MAX_CAP)为100。对象LUN为LUNS。如此,图15以及图16所示的例子相当于第1实施方式的变形例。
在图15所示的例子中,LUNS的未写入数据量(DAS)为80,在缓冲器容量(MAX_CAP)以下(DAS≤MAX_CAP)。即,PLP缓冲器6b中剩余有能将LUNS的未写入数据量(DAS)的写数据写入(转移保存)的存储区域。因此,在作为对象LUN的LUNS的写指令的处理线程中能够在PLP缓冲器6b确保写数据的存储区域。作为结果,指令完成通知条件成立,能够向主机8发送LUNS中的指令完成通知。
在图16所示的例子中,LUNS的未写入数据量(DAS)为110,超过了缓冲器容量(MAX_CAP)(DAS>MAX_CAP)。因此,在作为对象LUN的LUNS的写指令的处理线程中无法在PLP缓冲器6b确保写数据的存储区域。作为结果,指令完成通知条件不成立,不能向主机8发送LUNS中的指令完成通知。
在图17中,表示LUN的数量为三个、换言之是对象外LUN的数量为两个以上(包括对象LUN在内LUN的总数为三个以上)的情况下的指令完成通知条件的成立与否的具体示例(不成立的一例)。在图17所示的例子中,PLP缓冲器6b的缓冲器容量(MAX_CAP)为100,最大可占用容量(TH1)为60,占用确保容量(TH2)为10。另外,对象LUN为LUNA,对象外LUN为LUNB和LUNC。即,LUNA在此刻通过写指令的处理线程正要在PLP缓冲器6b确保写数据的存储区域而发出指令完成通知。另一方面,关于LUNB以及LUNC,在分别与LUNA不同的另外的写指令的处理线程中已经在PLP缓冲器6b确保了写数据的存储区域并进行了指令完成通知。如此,图17所示的例子相当于第3实施方式的变形例。
在图17所示的例子中,在LUNB的写指令的处理线程中已经在PLP缓冲器6b确保了写数据的存储区域,其未写入数据量(DAB)为35。另外,在LUNC的写指令的处理线程中已经在PLP缓冲器6b确保了写数据的存储区域,其未写入数据量(DAC)为5。而且,LUNA的未写入数据量(DAA)为60。由于超过了占用确保容量(TH2),因而LUNA的未写入数据量(DAA)的值以及LUNB的未写入数据量(DAB)的值不调整,而维持实际的值不变。与此相对,由于小于占用确保容量(TH2),因而LUNC的未写入数据量(DAC)的值调整(修正)为TH2的值而成为10。
最大可占用容量(TH1)为60,LUNA的未写入数据量(DAA)在该容量以下(DAA≤TH1),因此调整数据量判定条件成立。即,PLP缓冲器6b中剩余有能将LUNA的未写入数据量(DAA)的写数据写入(转移保存)的存储区域。
另一方面,未写入数据合计量是对实际的DAB和调整后的DAC加上实际的DAA得到的数据量(35+10+60),成为105。因此,未写入数据合计量超过了缓冲器容量(MAX_CAP)(DAA+DAB+DAC>MAX_CAP),因而调整数据合计量判定条件不成立。在使用实际的DAC的情况下的数据量为100(35+5+60),在缓冲器容量(MAX_CAP)以下。然而,由于对LUNC的数据未写入量使用调整后的值,因而调整数据合计量判定条件变为不成立。
如此,在图17所示的例子中,虽然调整数据量判定条件成立,但由于调整数据合计量判定条件不成立,因而指令完成通知条件不成立,不能向主机8发送LUNA中的指令完成通知。
说明了本发明的几个实施方式,但是这些实施方式是作为例子而提示的,并非意图限定发明的范围。这些新的实施方式能够以其他各种各样的方式来实施,在不脱离发明要旨的范围内能够进行各种省略、替换、变更。这些实施方式和/或其变形包含于发明的范围和/或要旨内,并且包含于技术方案中记载的发明及与其等同的范围内。
Claims (8)
1.一种磁盘装置,具备:
磁盘;
致动器,其向所述磁盘写入数据;
非易失性存储器,其转移保存未写入到所述磁盘的所述数据;以及
控制器,其分别控制所述致动器和所述非易失性存储器,执行从主机发送来的指示向所述磁盘写入所述数据的写指令,将所述写指令的执行完成通知给所述主机,
所述控制器在第1判定条件成立的情况下,将执行所述写指令的一个处理线程中的所述写指令的执行完成通知给所述主机,所述第1判定条件是在所述一个处理线程中未通知执行完成而未写入到所述磁盘的所述数据的量、与在执行所述写指令的其他处理线程中已通知执行完成而未写入到所述磁盘的所述数据的量的合计值是否小于等于所述非易失性存储器的容量的判定条件。
2.根据权利要求1所述的磁盘装置,
所述控制器在所述第1判定条件成立并且第2判定条件成立的情况下,将所述一个处理线程中的所述写指令的执行完成通知给所述主机,所述第2判定条件是在所述一个处理线程中未写入到所述磁盘的所述数据的量是否小于等于所述一个处理线程能够占用的所述非易失性存储器的存储区域的最大值的判定条件。
3.根据权利要求1所述的磁盘装置,
所述控制器在执行所述写指令的处理线程中的未写入到所述磁盘的所述数据的量小于该处理线程一定能够占用的所述非易失性存储器的存储区域的容量值的情况下,将所述数据的量调整为所述容量值。
4.根据权利要求2所述的磁盘装置,
所述控制器在执行所述写指令的处理线程中的未写入到所述磁盘的所述数据的量小于该处理线程一定能够占用的所述非易失性存储器的存储区域的容量值的情况下,将所述数据的量调整为所述容量值。
5.根据权利要求1至4中任一项所述的磁盘装置,
具备多个所述致动器,
执行所述写指令的处理线程唯一地对应于多个所述致动器中的某一个。
6.一种磁盘装置的存储管理方法,包括:
取得在执行从主机发送来的指示向磁盘写入数据的写指令的一个处理线程中未通知执行完成而未写入到所述磁盘的所述数据的量,
取得在执行所述写指令的其他处理线程中已通知执行完成而未写入到所述磁盘的所述数据的量,
判定第1判定条件,所述第1判定条件是所取得的这些所述数据的量的合计值是否小于等于非易失性存储器的容量的判定条件,
在所述第1判定条件成立的情况下,将所述一个处理线程中的所述写指令的执行完成通知给所述主机。
7.根据权利要求6所述的磁盘装置的存储管理方法,
判定第2判定条件,所述第2判定条件是在所述一个处理线程中未写入到所述磁盘的所述数据的量是否小于等于所述一个处理线程能够占用的所述非易失性存储器的存储区域的最大值的判定条件,
在所述第1判定条件和所述第2判定条件均成立的情况下,将所述一个处理线程中的所述写指令的执行完成通知给所述主机。
8.根据权利要求6或7所述的磁盘装置的存储管理方法,
在执行所述写指令的处理线程中的未写入到所述磁盘的所述数据的量小于该处理线程一定能够占用的所述非易失性存储器的存储区域的容量值的情况下,将所述数据的量调整为所述容量值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020035744A JP7179794B2 (ja) | 2020-03-03 | 2020-03-03 | 磁気ディスク装置、および磁気ディスク装置のメモリ管理方法 |
JP2020-035744 | 2020-03-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113345476A CN113345476A (zh) | 2021-09-03 |
CN113345476B true CN113345476B (zh) | 2022-12-23 |
Family
ID=76094524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010729696.7A Active CN113345476B (zh) | 2020-03-03 | 2020-07-27 | 磁盘装置以及磁盘装置的存储管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11024336B1 (zh) |
JP (1) | JP7179794B2 (zh) |
CN (1) | CN113345476B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007035217A (ja) * | 2005-07-29 | 2007-02-08 | Fujitsu Ltd | ディスク記憶装置のデータ退避処理方法及びディスク記憶システム |
CN101414244A (zh) * | 2007-10-19 | 2009-04-22 | 深圳市亚贝电气技术有限公司 | 一种网络环境下处理数据的方法、装置和系统 |
JP2013061791A (ja) * | 2011-09-13 | 2013-04-04 | Toshiba Corp | ストレージコントローラ、ストレージ装置及びライトキャッシング方法 |
JP2016021133A (ja) * | 2014-07-14 | 2016-02-04 | 株式会社東芝 | 磁気ディスク装置、及びライトコマンドを実行する方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100245896B1 (ko) * | 1990-11-09 | 2000-03-02 | 토마스 에프.멀베니 | 다수의 마이크로프로세서를 사용하는 하드 디스크 드라이브 제어기 |
JPH0667988A (ja) * | 1992-08-21 | 1994-03-11 | Fuji Electric Co Ltd | Ras機能付半導体記憶装置 |
JP4819369B2 (ja) | 2005-02-15 | 2011-11-24 | 株式会社日立製作所 | ストレージシステム |
JP2007193439A (ja) * | 2006-01-17 | 2007-08-02 | Toshiba Corp | 不揮発性キャッシュメモリを用いる記憶装置とその制御方法 |
JP2009093570A (ja) * | 2007-10-11 | 2009-04-30 | Nec Corp | 情報記録再生装置、データ記録方法、およびデータ記録プログラム |
JP5074601B2 (ja) | 2008-12-04 | 2012-11-14 | 株式会社日立製作所 | 揮発性メモリと不揮発性メモリとを備えたストレージシステム |
JP2011008897A (ja) * | 2009-06-29 | 2011-01-13 | Toshiba Storage Device Corp | 磁気ディスク記憶装置および磁気ディスク記憶装置の制御方法 |
JP5888037B2 (ja) * | 2012-03-19 | 2016-03-16 | 富士通株式会社 | テープ装置及びテープ装置の制御方法 |
WO2014118822A1 (en) * | 2013-01-31 | 2014-08-07 | Hitachi, Ltd. | Storage system and cache control method |
CN103324578A (zh) * | 2013-06-20 | 2013-09-25 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存设备及其随机写入方法 |
JP6013998B2 (ja) * | 2013-09-06 | 2016-10-25 | 株式会社東芝 | データストレージ装置およびデータ消去方法 |
US9535844B1 (en) | 2014-06-30 | 2017-01-03 | EMC IP Holding Company LLC | Prioritization for cache systems |
JP6441171B2 (ja) * | 2015-06-12 | 2018-12-19 | 東芝メモリ株式会社 | メモリシステム |
CN106293503B9 (zh) * | 2015-06-23 | 2019-06-28 | 株式会社东芝 | 磁盘装置及控制方法 |
US9996268B2 (en) * | 2015-12-18 | 2018-06-12 | Toshiba Memory Corporation | Memory system and control method of the same |
CN106874223B (zh) * | 2017-01-24 | 2021-04-20 | 合肥兆芯电子有限公司 | 数据传输方法、存储器存储装置及存储器控制电路单元 |
US10152994B1 (en) * | 2017-11-09 | 2018-12-11 | Western Digital Technologies, Inc. | Data storage device concurrently disconnecting multiple voice coil motors from spindle motor BEMF voltage during unload |
JP2019164522A (ja) * | 2018-03-19 | 2019-09-26 | 株式会社東芝 | ディスク装置および方法 |
CN109697033B (zh) * | 2018-12-19 | 2022-01-07 | 中国人民解放军国防科技大学 | 瓦记录磁盘感知的存储缓存方法及系统 |
-
2020
- 2020-03-03 JP JP2020035744A patent/JP7179794B2/ja active Active
- 2020-07-27 CN CN202010729696.7A patent/CN113345476B/zh active Active
- 2020-09-11 US US17/017,880 patent/US11024336B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007035217A (ja) * | 2005-07-29 | 2007-02-08 | Fujitsu Ltd | ディスク記憶装置のデータ退避処理方法及びディスク記憶システム |
CN101414244A (zh) * | 2007-10-19 | 2009-04-22 | 深圳市亚贝电气技术有限公司 | 一种网络环境下处理数据的方法、装置和系统 |
JP2013061791A (ja) * | 2011-09-13 | 2013-04-04 | Toshiba Corp | ストレージコントローラ、ストレージ装置及びライトキャッシング方法 |
JP2016021133A (ja) * | 2014-07-14 | 2016-02-04 | 株式会社東芝 | 磁気ディスク装置、及びライトコマンドを実行する方法 |
Also Published As
Publication number | Publication date |
---|---|
JP7179794B2 (ja) | 2022-11-29 |
JP2021140838A (ja) | 2021-09-16 |
CN113345476A (zh) | 2021-09-03 |
US11024336B1 (en) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI443671B (zh) | 邏輯單元操作 | |
US8291190B2 (en) | Disk drive including a host interface supporting different sizes of data sectors and method for writing data thereto | |
US7487392B2 (en) | Data storage device, and method for rewriting data in nonvolatile memory | |
US20180267827A1 (en) | Information processing device, storage device, and information processing system | |
US8631198B2 (en) | Dynamic cache reduction utilizing voltage warning mechanism | |
US9727265B2 (en) | Disk device and control method that controls amount of data stored in buffer | |
US11699459B2 (en) | Magnetic disk device | |
KR100827287B1 (ko) | 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법 | |
US20190065081A1 (en) | Disk device and data parallel processing method | |
CN113345476B (zh) | 磁盘装置以及磁盘装置的存储管理方法 | |
JP2017068634A (ja) | 記憶装置及び方法 | |
JP2014203285A (ja) | ドライブアレイ装置、コントローラ、データ記憶ドライブ及び方法 | |
US10102869B1 (en) | Magnetic disk device and read method | |
US10705739B2 (en) | Magnetic disk device and write method | |
US20160170891A1 (en) | Disk apparatus and control method | |
CN112447198B (zh) | 磁盘装置以及磁盘装置中的数据保护方法 | |
US11954341B2 (en) | External storage of internal drive management data | |
US20210065738A1 (en) | Magnetic disk device and read retry processing method | |
US20230093769A1 (en) | Magnetic disk device | |
JP2011232962A (ja) | ディスクアレイ装置およびミラードキャッシュ制御方法 | |
CN116820325A (zh) | 磁盘装置 | |
JPH04125725A (ja) | 磁気テープ制御装置およびその制御方法 | |
JPH04283825A (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 |