CN112863552B - 磁盘装置以及重新排序处理的方法 - Google Patents
磁盘装置以及重新排序处理的方法 Download PDFInfo
- Publication number
- CN112863552B CN112863552B CN202010607899.9A CN202010607899A CN112863552B CN 112863552 B CN112863552 B CN 112863552B CN 202010607899 A CN202010607899 A CN 202010607899A CN 112863552 B CN112863552 B CN 112863552B
- Authority
- CN
- China
- Prior art keywords
- actuator
- command
- reordering
- queue
- unit
- 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
- 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/5578—Multiple actuators addressing the same disk, e.g. to improve data rate or access rate
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
-
- 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/0653—Monitoring storage devices or systems
-
- 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
-
- 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/012—Recording on, or reproducing or erasing from, magnetic disks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Moving Of Heads (AREA)
- Moving Of Head For Track Selection And Changing (AREA)
- Moving Of The Head To Find And Align With The Track (AREA)
Abstract
实施方式提供一种能够提高访问性能的磁盘装置以及重新排序处理的方法。本实施方式的磁盘装置,具备:第1盘;第2盘;第1头,对所述第1盘写入数据,从所述第1盘读出数据;第2头,对所述第2盘写入数据,从所述第2盘读出数据;第1致动器,具有所述第1头;第2致动器,具有所述第2头;第1运算部,执行所述第1致动器所对应的第1队列所存储的命令的第1重新排序处理;以及第2运算部,执行所述第2致动器所对应的第2队列所存储的命令的第2重新排序处理,所述第1运算部执行所述第2重新排序处理,所述第2运算部执行所述第1重新排序处理。
Description
关联申请
本申请享受以日本专利申请2019-204808号(申请日:2019年11月12日)为在先申请的优先权。本申请通过参照该在先申请而包含在先申请的全部内容。
技术领域
本发明的实施方式涉及磁盘装置以及重新排序处理的方法。
背景技术
磁盘装置将从主机等传送的多个命令存储于队列,执行对处理存储于队列的多个命令的顺序进行调换的重新排序处理。近年来,已提出具有多个致动器的分体式(split)致动器磁盘装置。分体式致动器磁盘装置对多个致动器分别进行独立地控制。分体式致动器磁盘装置在各致动器所对应的各队列中存储各致动器所对应的多个命令,对存储于各致动器所对应的各队列的多个命令进行重新排序处理。
发明内容
本发明的实施方式提供一种能够提高访问性能的磁盘装置以及重新排序处理的方法。
本实施方式的磁盘装置具备:第1盘;第2盘;第1头,对所述第1盘写入数据,从所述第1盘读出数据;第2头,对所述第2盘写入数据,从所述第2盘读出数据,第1致动器,具有所述第1头;第2致动器,具有所述第2头,第1运算部,执行所述第1致动器所对应的第1队列所存储的命令的第1重新排序处理;第2运算部,执行所述第2致动器所对应的第2队列所存储的命令的第2重新排序处理,所述第1运算部执行所述第2重新排序处理,所述第2运算部执行所述第1重新排序处理。
附图说明
图1是表示第1实施方式的磁盘装置的构成的一例的示意图。
图2是表示头相对于盘的配置的一例的平面图。
图3是表示队列的一例的示意图。
图4是表示合成队列的一例的示意图。
图5是表示合成队列的一例的示意图。
图6是表示判定表的一例的示意图。
图7是表示第1实施方式的旁路运算处理的状态的判定方法的一例的示意图。
图8是表示第1实施方式的旁路运算处理的状态的判定方法的一例的示意图。
图9是表示第1实施方式的旁路运算处理的状态的判定方法的一例的示意图。
图10是表示存储于队列的队列命令的处理方法的一例的示意图。
图11是表示对图10所示的队列命令的重新排序运算处理的一例的示意图。
图12是表示预定的致动器所对应的重新排序表的一例的示意图。
图13是表示重新排序运算处理的一例的示意图。
图14是表示重新排序运算处理的一例的示意图。
图15是表示对图10所示的队列命令的旁路运算处理的一例的示意图。
图16是表示对图10所示的队列命令的旁路运算处理的一例的示意图。
图17是表示旁路运算处理的一例的示意图。
图18是表示旁路运算处理的一例的示意图。
图19是表示第1实施方式的重新排序运算处理的方法的一例的流程图。
图20是表示变形例1的磁盘装置的构成的一例的示意图。
图21是表示变形例2的磁盘装置的构成的一例的示意图。
具体实施方式
以下,针对实施方式参照附图进行说明。此外,附图是一例,并不限定发明的范围。
(第1实施方式)
图1是表示第1实施方式的磁盘装置1的构成的一例的示意图。
磁盘装置1具备筐体HS、头盘组件(HDA)10、驱动器IC20、头放大器集成电路(以下,头放大器IC或前置放大器)30、易失性存储器70、缓冲存储器(缓冲)80、非易失性存储器90、作为单芯片的集成电路的系统控制器130。另外,磁盘装置1与主机系统(以下,仅称为主机)100连接。磁盘装置1是能够对多个后述的致动器AC分别独立地驱动的分体式致动器磁盘装置。磁盘装置1具有多个例如,2个致动器AC(后述的致动器AC1以及AC2)。此外,磁盘装置1也可以具有3个以上的致动器AC。
筐体HS具有底壁HSB。图1示出了筐体HS仅具有底壁HSB,而实际上,筐体HS具有例如,底壁HSB、沿着底壁HSB的周缘立设的侧壁、由底壁HSB以及侧壁构成的堵塞基座(base)的开口的盖。
HDA10具有磁盘(以下,称为盘)DK、头HD、使主轴12旋转的主轴马达(以下,称为SPM)13、臂AM、致动器块BK、音圈马达(以下,称为VCM)14、搭载有头HD的微致动器(以下,称为MA)15。此外,HDA10也可以不具有MA15。在HDA10不具备MA15的情况下,头HD也可以搭载于臂AM。图1示出了HDA10的剖面。
SPM13安装于底壁HSB。SPM13的中心部分安装有主轴12。盘DK具有多个盘DK。盘DK安装于主轴12,通过SPM13的驱动而旋转。在图1所示的例子中,盘DK具有盘DK1以及DK2。盘DK1以及DK2安装于主轴12。盘DK2例如配置于盘DK1与底壁HSB之间。此外,盘DK1也可以具有多个盘DK1。另外,盘DK2也可以具有多个盘DK2。以下,将沿着盘DK的圆周的方向称为圆周方向,将垂直于圆周方向的方向称为半径方向。半径方向相当于在盘DK上朝向内周侧以及外周侧的方向。
头HD具有多个头HD。头HD与盘DK相对向。头HD具有向盘DK写入数据的写头WH、和将写入到盘DK的数据读出的读头RH。以下,也有时将“向盘DK写入数据的处理”称为“写处理”,将“从盘DK读出数据的处理”称为“读处理”。另外,也有时将“向盘DK的预定的区域写入数据”和/或“从盘DK的预定的区域读数据”等称为“访问”。在图1所示的例子中,头HD具有头HD1以及HD2。头HD1例如具有与盘DK1的主面相对向的头HD1、和与盘DK1的主面相反侧的对向面相对向的头HD1。此外,头HD1也可以仅具有1个头HD1,也可以具有3个以上的头HD1。头HD1具有向盘DK1写入数据的写头WH1、和将写入到盘DK1的数据读出的读头RH1。头HD2例如具有与盘DK2的主面相对向的HD2、和与盘DK2的主面相反侧的对向面相对向的头HD2。此外,头HD2也可以仅具有1个头HD2,也可以具有3个以上的头HD2。头HD2具有向盘DK2写入数据的写头WH2、和将写入到盘DK2的数据读出的读头RH2。
致动器块BK包含多个致动器块BK。致动器块BK以能够旋转的方式安装于立设于底壁HSB的轴承BR。在图1所示的例子中,致动器块BK包含致动器块BK1以及BK2。致动器块BK1以及BK2以能够旋转的方式安装于立设于底壁HSB的轴承BR1。致动器块BK2位于底壁HSB和致动器块BK1之间。
臂AM包含多个臂AM。臂AM与致动器块BK连接。在图1所示的例子中,臂AM具有臂AM1以及AM2。臂AM1例如具有位于盘DK1的主面侧的臂AM1、和位于盘DK1的对向面侧的臂AM1。此外,臂AM1也可以根据头HD1的数量而仅具有1个臂AM1,也可以具有3个以上的臂AM1。臂AM1与致动器块BK1连接。臂AM2例如包含位于盘DK2的主面侧的臂AM2、和位于盘DK2的对向面侧的臂AM2。此外,臂AM2也可以根据头HD2的数量而仅包含1个臂AM2,也可以包含3个以上的臂AM2。臂AM2与致动器块BK2连接。臂AM2配置在臂AM1和筐体HS的底壁HSB之间。
VCM14包含多个VCM14。VCM14在致动器块BK中连接于与臂AM相反一侧。在图1所示的例子中,VCM14包含VCM141以及142。VCM141在致动器块BK1中连接于与臂AM1相反一侧。VCM142在致动器块BK2中连接于与臂AM2相反一侧。
MA15包含多个MA15。MA15在连接于致动器块BK的臂AM的一端部相反一侧的臂AM的前端部上安装。MA15在连接于臂AM的一端部相反一侧的前端部搭载有头HD。MA15对在半径方向上的头HD的动作进行微细地控制。例如,MA15对在半径方向上的头HD的动作进行与由VCM14进行的半径方向的头HD的动作相比更加微细地控制。在图1所示的例子中,MA15包含MA151以及MA152。MA151例如具有在位于盘DK1的主面侧的臂AM1上安装、且搭载与盘DK1的主面相对向的头HD1的MA151、和在位于盘DK1的对向面侧的臂AM1上安装、且搭载与盘DK1的对向面相对向的头HD1的MA151。此外,MA151根据头HD1的数量既可以仅具有1个MA151,也可以具有3个以上的MA151。MA151安装于连接于致动器块BK1的臂AM1的一端部相反一侧的臂AM1的前端部。MA151在连接于臂AM1的一端部相反一侧的臂AM1的前端部搭载有头HD1。MA151对在半径方向上的头HD1的动作进行微细控制。例如,MA151对在半径方向上的头HD1的动作进行与由VCM141进行的半径方向的头HD1的动作更加微细地控制。MA152例如具有在位于盘DK2的主面侧的臂AM2上安装、且搭载与盘DK2的主面相对向的头HD2的MA152、和在位于盘DK2的对向面侧的臂AM2上安装、且与盘DK2的主面相对向的头HD2的MA152。此外,MA152根据头HD2的数量,既可以仅具有1个MA152,也可以具有3个以上的MA152。MA152在与连接于致动器块BK2的臂AM2的一端部相反一侧的臂AM2的前端部上安装。MA152在连接于臂AM2的一端部相反一侧的臂AM2的前端部搭载有头HD2。MA152对在半径方向上的头HD2的动作进行微细控制。例如,MA152对在半径方向上的头HD2的动作进行与由VCM142进行的半径方向的头HD2的动作相比更加微细地控制。
致动器AC具有多个致动器AC。多个致动器AC分别相对于轴承BR以转动自由(或自由旋转)的方式安装。换言之,多个致动器AC分别围绕轴承BR独立转动。多个致动器AC分别由MA15、臂AM、致动器块BK、以及VCM14构成。多个致动器AC分别围绕轴承BR驱动VCM14、且对MA15进行微细驱动,由此将搭载于MA15的头HD定位在盘DK的预定的位置。此外,在不具备MA15的情况下,多个致动器AC分别绕轴承BR驱动VCM14,由此将搭载于臂AM的头HD定位在盘DK的预定的位置。在图1所示的例子中,致动器AC具有致动器AC1以及AC2。此外,致动器AC也可以设置3个以上。致动器AC1相对于轴承BR1以自由旋转的方式安装。致动器AC1由MA151、臂AM1、致动器块BK1、以及VCM141构成。致动器AC1绕轴承BR1的旋转轴驱动VCM141、且对MA151进行微细驱动,由此将搭载于MA151的头HD1定位在盘DK1的预定的位置。此外,在不具备MA151的情况下,致动器AC1绕轴承BR1驱动VCM141,由此将搭载于臂AM1的头HD1定位在盘DK1的预定的位置。致动器AC2相对于轴承BR1以自由旋转的方式安装。致动器AC2配置在底壁HSB和致动器AC1之间。致动器AC2由MA152、臂AM2、致动器块BK2、以及VCM142构成。致动器AC2绕轴承BR1的旋转轴驱动VCM142,且对MA152进行微细驱动,由此将搭载于MA152的头HD2定位在盘DK2的预定的位置。此外,在不具备MA152的情况下,致动器AC2绕轴承BR1驱动VCM142,由此将搭载于臂AM2的头HD2定位在盘DK2的预定的位置。
图2是表示头HD相对于盘DK的配置的一例的平面图。如图2所示,将在半径方向上朝向盘DK的外周向的方向称为外方向(外侧),将与外方向相反的方向称为内方向(内侧)。另外,如图2所示,在圆周方向中,将相对于盘DK向右(顺时针)方向称为右方向,将与向右方向相反(逆时针)方向称为左方向。在圆周方向中,将盘DK的旋转的方向称为旋转方向。此外,在图2所示的例子中,旋转方向以左方向(逆时针方向)示出,但也可以是相反方向(右方向或顺时针方向)。
盘DK对能够写入其数据的区域分配能够由用户利用的用户数据区域DKa、和写入系统管理所需的信息(以下,也有时称为系统信息)的系统区域DKb。以下,也有时将盘DK的半径方向的预定的位置称为半径位置,将盘DK的圆周方向的预定的位置称为圆周位置。也有时将半径位置以及圆周位置汇总仅称为位置。例如,半径位置相当于轨道或扇区(数据扇区)的半径方向的位置,圆周位置相当于预定的轨道的扇区的圆周方向的位置。例如,位置相当于盘DK的扇区(数据扇区)的位置。扇区(数据扇区)的位置可以由包含预定的扇区的柱面(轨道)编号、对预定的扇区进行访问的头HD的头编号、预定的扇区的扇区编号、盘DK的预定的扇区的半径位置、以及预定的扇区的盘角度中的至少1个表示。例如,扇区的位置由包含预定的扇区的柱面(轨道)编号、对预定的扇区进行访问的头HD的头编号、预定的扇区的扇区编号、盘DK的预定的扇区的半径位置、以及预定的扇区的盘角度中的2个组合而表示。盘DK上能配置至少1个轨道。以下,“轨道”以“将盘DK在半径方向上区分而得到的多个区域内的1个区域”、“沿着盘DK的圆周方向写入的1周的数据”、“沿着盘DK的圆周方向1周的路径”或其他各种含义使用。轨道包含多个扇区。“扇区”以“将轨道在圆周方向上区分而得到的多个区域内的1个区域”、“写入到将轨道在圆周方向上区分而得到的多个区域内的1个区域的数据”或其他的各种含义使用。在图2所示的例子中,盘DK1被分配为用户数据区域DKa1、和系统区域DKb1。
盘DK具有未图示的多个伺服区域(以下,也有时称为伺服图形)。多个伺服图形例如在盘DK的半径方向上放射状延伸而在圆周方向上隔开预定的间隔离散地配置。伺服图形被写入有包含前导码(Preamble),伺服标记(Servo Mark),格雷码(Gray Code),PAD、突发数据、以及自检码(Post Code)等的伺服数据。伺服图形以外的用户数据区域DKa被写入用户数据。
头HD例如,在寻道时,致动器AC绕轴承BR旋转由此在盘DK的水平面内滑动。在图2所示的例子中,头HD1例如,在寻道时,致动器AC1绕轴承BR1旋转由此在盘DK1的水平面滑动。
驱动器IC20按系统控制器130(详细而言,后述的MPU50或HDC60)的控制,控制SPM13以及VCM14(VCM141以及142)的驱动。驱动器IC20与SPM13以及VCM14(VCM141以及142)电连接。驱动器IC20具备:SPM控制部210、第1VCM控制部221、第2VCM控制部222、第1微致动器(MA)控制部231、第2微致动器(MA)控制部232。SPM控制部210控制SPM13的旋转。第1VCM控制部221通过控制向VCM141供给的电流(或电压)来控制VCM141的驱动。第2VCM控制部222通过控制向VCM142供给的电流(或电压)来控制VCM142的驱动。第1MA控制部231通过控制向MA151供给的电流(或电压)来控制MA151的驱动。第2MA控制部232通过控制向MA152供给的电流(或电压)来控制MA152的驱动。此外,驱动器IC20的构成的一部分(例如,SPM控制部210、第1VCM控制部221、第2VCM控制部222、第1MA控制部231、以及第2MA控制部232)也可以为系统控制器130所具备。在致动器AC1不具备MA151、且致动器AC2不具备MA152的情况下,也可以没有第1MA控制部231以及第2MA控制部232。另外,驱动器IC20也可以根据致动器AC的数量而设置2个以上。
头放大器IC(前置放大器)30对从盘DK读出的读信号进行放大,向系统控制器130(详细而言,后述的读/写(R/W)通道40)输出。头放大器IC30与各头HD、例如,头HD1以及头HD2电连接。另外,头放大器IC30将从R/W通道40输出的信号相应的写电流向头HD输出。头放大器IC30具备第1读头选择部321、第2读头选择部322、第1读信号检测部331、第2读信号检测部332。第1读头选择部321在致动器AC1中选择从盘DK1读出数据的读头RH1。第2读头选择部322在致动器AC2中选择从盘DK2读出数据的读头RH2。第1读信号检测部331检测从盘DK1由读头RH1读出的信号(读信号)。第2读信号检测部332检测从盘DK2由读头RH2读出的信号(读信号)。此外,头放大器IC30的构成的一部分(例如,第1读头选择部321、第2读头选择部322、第1读信号检测部331、以及第2读信号检测部332)也可以不为系统控制器130所具备。另外,头放大器IC30也可以根据致动器AC的数量设置2个以上。
易失性存储器70是若切断电力供给则保存着的数据会丢失的半导体存储器。易失性存储器70存储磁盘装置1的各部的处理所需的数据等。易失性存储器70例如是DRAM(Dynamic Random Access Memory:动态随机存取存储器)或SDRAM(Synchronous DynamicRandom Access Memory:同步动态存储器)。
缓冲存储器80是暂时记录在磁盘装置1与主机100之间收发的数据等的半导体存储器。此外,缓冲存储器80可以与易失性存储器70一体构成。缓冲存储器80是DRAM、SRAM(Static Random Access Memory:静态随机存取存储器),SDRAM、FeRAM(FerroelectricRandom Access memory:铁电随机存取存储器),或MRAM(Magnetoresistive RandomAccess Memory:磁阻式随机存取存储器)等。
非易失性存储器90是即使电力供给被切断也会记录所保存着的数据的半导体存储器。非易失性存储器90例如是NOR型或NAND型的闪存ROM(Flash Read Only Memory:FROM)。
系统控制器(控制器)130例如使用多个元件集成于单一芯片而成的被称为System-on-a-Chip(SoC)的大规模集成电路(LSI)而实现。系统控制器130包含读/写(R/W)通道40、微处理器(MPU)50、硬盘控制器(HDC)60。系统控制器130与驱动器IC20、头放大器IC30、易失性存储器70、缓冲存储器80、非易失性存储器90、以及主机系统100电连接。此外,系统控制器130也可以具有SPM控制部210、第1VCM控制部221、第2VCM控制部222、第1读头选择部321、第2读头选择部322、第1读信号检测部331、以及第2读信号检测部332。系统控制器130也可以包含驱动器IC20以及头放大器IC30。另外,系统控制器130也可以根据致动器AC的数量而设置2个以上。
R/W通道40根据来自后述的MPU50的指示,执行从盘DK传送到主机100的读数据以及从主机100传送的写数据的信号处理。R/W通道40具有测定读数据的信号质量的电路或功能。R/W通道40例如与头放大器IC30、MPU50、以及HDC60等电连接。此外,R/W通道40也可以根据致动器AC的数量而设置2个以上。
MPU50是根据来自主机100等的指示,控制磁盘装置1的各部的主控制器。MPU50经由驱动器IC20控制致动器AC,执行进行头HD的定位的伺服控制。MPU50控制向盘DK的数据的写动作、并且选择写入数据的保存目的地。另外,MPU50控制来自盘DK的数据的读动作、并且控制读数据的处理。MPU50与磁盘装置1的各部连接。MPU50例如与驱动器IC20、R/W通道40、以及HDC60等电连接。此外,MPU50也可以根据致动器AC的数量而设置2个以上。
HDC60根据来自MPU50的指示,控制读/写处理,控制主机100与R/W通道40之间的数据传送。HDC60例如与R/W通道40、MPU50、易失性存储器70、缓冲存储器80、以及非易失性存储器90等电连接。此外,HDC60也可以根据致动器AC的数量而设置2个以上。
HDC60具备伺服控制部610、以及命令控制部620。HDC60在固件上执行这些各部、例如,伺服控制部610、以及命令控制部620等的处理。此外,HDC60也可以具备这些各部来作为电路。另外,HDC60的构成的一部分也可以为MPU50所具备。例如,伺服控制部610、以及命令控制部620也可以设置于MPU50。
伺服控制部610控制头HD的位置。换言之,伺服控制部610控制向盘DK的预定的区域的由头HD进行的访问。伺服控制部610具有循轨(tracking)控制部6101和寻道(seek)控制部6102。此外,伺服控制部610也可以根据致动器AC的数量而设置2个以上。
循轨控制部6101控制向盘DK的预定的轨道的头HD的循轨。也有时将“向盘DK的预定的轨道对头HD进行循轨”仅称为“循轨”。“循轨”包含“在向盘DK写入数据时追随预定的路径、例如,预定的轨道”和/或“在从盘DK读数据时追随预定的路径、例如,预定的轨道”。
寻道控制部6102在盘DK上控制从预定的轨道向作为目标的轨道的头HD的寻道(seek)。
命令控制部620控制从主机100等接受的命令。例如,命令控制部620将从主机100等接受到的命令按从主机100等接受的顺序存储于等待队列(队列:queue),基于存储于队列的至少1个命令内的预定的命令经由伺服控制部610对由该命令指定的位置或区域、例如,扇区进行访问。以下,也有时将“基于预定的命令对由该命令指定的位置或区域进行访问”称为“处理命令”。也有时将“存储于队列的命令”称为“队列命令”。另外,也有时将“处理队列命令”称为“排队(queuing)”。
命令控制部620在对预定的队列命令(以下,也有时称为当前的命令)进行处理时,基于当前配置有头HD的盘DK的位置、例如,当前配置有头HD的盘DK的数据扇区的位置(以下,也有时仅称为当前的位置)和按从主机100等接受到的顺序存储于队列的多个队列命令,执行运算处理,基于该运算处理的结果从这些多个队列命令中选择预定的命令,将所选择出的命令的顺序调换为接着当前的命令将要处理的命令的顺序(以下,也有时称为下一个顺序),在处理了当前的命令之后处理所选择出的命令。以下,也有时将“调换进行多个命令的处理的顺序”和/或“变更逻辑-物理映射”等称为“重新排序”。也有时将“执行预定的运算(计算)处理,基于该预定的运算(计算)处理结果从多个命令中选择预定的命令,对从这些多个命令中选择出的命令的顺序进行重新排序的处理”称为“重新排序运算处理”、“重新排序运算”或“重新排序处理”。另外,也有时将“接着当前的命令将要处理的命令”称为“下次处理命令”。
例如,命令控制部620在对当前的命令进行处理时,基于当前的位置和表示按从主机100等接受到的顺序存储于队列的多个队列命令、头HD的寻道距离以及寻道时间的关系的表(以下,也有时称为重新排序表或寻道分布表),分别计算从当前的位置对由这些队列命令分别指定的盘DK的多个扇区(数据扇区)的位置(以下,也有时仅称为位置)进行访问的多个时间。以下,也有时将“从盘DK的预定的位置、例如,扇区(数据扇区)对盘DK的与该位置不同的位置、例如,扇区(数据扇区)利用头HD进行访问的时间(到配置头HD为止的时间)”称为“访问成本”。访问成本包含:从盘DK的预定的轨道向盘DK的与该轨道不同的轨道对头HD进行寻道的时间(以下,也有时称为寻道时间)、和直到将头HD配置在盘DK的与该轨道不同的轨道的预定的位置为止的旋转等待时间。重新排序表例如,既可以按每个头HD或每个致动器AC而不同,也可以在多个头HD内的一些头HD或多个致动器AC内的一些致动器中相同,还可以在全部头HD以及全部致动器AC中相同。命令控制部620也可以为了降低磁盘装置1的振动和/或消耗电力的影响,通过对计算出的访问成本进行加权(例如,对预定的值进行乘法运算、或除法运算)、使开始头HD的移动的盘DK的位置和/或使头HD移动的盘DK的位置在半径方向上偏移(例如,对预定的值进行加法运算、或减法运算)来计算访问成本等,从而调整访问成本。
命令控制部620基于这些访问成本的计算处理的计算结果,与从当前的位置向由其他队列命令指定的位置的访问成本进行比较,从这些队列命令中选择指定能够以短的(或小的)访问成本访问的位置的命令(以下,也有时称为低成本命令)来作为下次处理命令,将在这些队列命令中选择出的低成本命令的顺序重新排序为下一个顺序。以下,也有时将头HD的当前的位置的信息、多个队列命令的信息、由多个队列命令分别指定的多个位置的信息、重新排序表、以及从头HD的当前的位置向由多个队列命令分别指定的盘DK的多个位置分别寻道时的信息等的用于重新排序运算处理的信息称为重新排序信息。此外,重新排序信息也可以不包含重新排序表。另外,重新排序信息也可以包含这些信息以外的信息。位置的信息例如相当于头、轨道、扇区、半径位置、以及盘角度中的至少1个信息、或由这些组合构成的信息。以下,为了便于说明,也有时将“从预定的位置向其他位置的访问成本”称为“预定的命令的访问成本”或“预定的命令所对应的访问成本”。命令控制部620如前所述,基于重新排序信息执行这些访问成本的计算处理,基于这些访问成本的计算处理的计算结果从这些队列命令中选择低成本命令,执行将所选择出的低成本命令的顺序重新排序为下一个顺序的重新排序运算处理,在处理了当前的命令之后处理该低成本命令。命令控制部620也可以将重新排序信息记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。此外,命令控制部620也可以将重新排序表以外的重新排序信息记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。该情况下,命令控制部620也可以将重新排序表记录于与重新排序信息不同的预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。另外,命令控制部620也可以通过计算算出重新排序表。
例如,命令控制部620在对当前的命令进行处理时,基于重新排序信息,对这些队列命令各自的多个访问成本分别进行计算,基于这些访问成本的计算处理的结果从这些队列命令中选择指定从当前的位置起能够以最短的(或最小的)访问成本访问的位置的命令(以下,也有时称为最低成本命令)来作为下次处理命令,将在这些队列命令中选择出的最低成本命令的顺序重新排序为下一个顺序。命令控制部620如前所述,基于重新排序信息执行这些队列命令的计算处理,基于访问成本的计算处理的结果从这些队列命令中选择最低成本命令,执行将所选择出的最低成本命令的顺序重新排序为下一个顺序的重新排序运算处理,在处理了当前的命令之后处理该最低成本命令。此外,命令控制部620也可以基于重新排序表以外的重新排序信息,对多个队列命令各自的多个访问成本分别进行计算,基于这些访问成本的计算处理的结果从这些队列命令中选择低成本命令(或最低成本命令),将在这些队列命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。
命令控制部620对队列命令的数量(以下,也有时称为队列命令数)进行计数。命令控制部620对至少1个队列命令内的各致动器AC所对应的各队列命令数进行计数。命令控制部620在多个致动器AC内的预定的致动器AC所对应的队列命令数多、且与该预定的致动器AC不同的其他致动器AC所对应的队列命令数比预定的致动器AC所对应的队列命令数少的情况下,使用在其他致动器AC所对应的重新排序运算处理中能够使用的运算资源内的剩余的运算资源,对预定的致动器AC所对应的多个队列命令执行重新排序运算处理所关联的运算处理。运算资源可以是物理物体、可以是物理区域,可以是逻辑区域、也可以是时间区域。运算资源例如包含:电路、固件的用于处理重新排序的容量、在重新排序的运算处理中使用的存储器的记录容量、以及MPU50以及HDC60等的系统控制器130的计算能力等。以下,也有时将“在预定的致动器AC所对应的重新排序运算处理中能够使用的运算资源内的剩余的运算资源”称为“预定的致动器AC所对应的剩余运算资源”。另外,也有时将“使用预定的致动器AC所对应的剩余运算资源执行的与该预定的致动器AC不同的其他致动器AC所对应的多个队列命令的重新排序运算处理所关联的运算处理”称为“旁路运算处理”、“旁路运算”、或“旁路处理”。
命令控制部620具有:存储部6201、命令数判定部6202、旁路运算判定部6211、通信部6212、执行致动器AC1所对应的多个队列命令的重新排序运算处理的第1重新排序运算部6221、执行致动器AC2所对应的多个队列命令的重新排序运算处理的第2重新排序运算部6222、利用致动器AC1所对应的剩余运算资源执行旁路运算处理的第1旁路运算部6231、利用致动器AC2所对应的剩余运算资源执行旁路运算处理的第2旁路运算部6232。此外,命令控制部620也可以根据致动器AC的数量设置2个以上。
存储部6201具有队列。存储部6201可以具有多个致动器AC所分别对应的多个队列,也可以具有使多个致动器AC所对应的队列进行组合后的1个队列(以下,也有时称为合成队列)。例如,存储部6201可以分别具有致动器AC1所对应的队列和致动器AC2所对应的队列,也可以具有使致动器AC1所对应的队列和致动器AC2所对应的队列组合后的1个合成队列。
存储部6201将从主机100等接受到的命令存储于队列。例如,存储部6201也可以将从主机100等接受到的致动器AC1所对应的多个命令和从主机100等接受到的致动器AC2所对应的多个命令分别按从主机等接受到的顺序沿相同方向存储于合成队列。存储部6201也可以将从主机100等接受到的致动器AC1所对应的多个命令按从主机100等接受到的顺序存储于合成队列,将从主机100等接受到的致动器AC2所对应的多个命令按从主机100等接受到的顺序沿与致动器AC1所对应的多个命令相反的方向存储于合成队列。
存储部6201能够将主机100等所指定的能够存储于队列的命令数(以下,也有时称为队列的深度(queue Depth:QD))的命令存储于队列。存储部6201在预定的致动器AC所对应的队列命令数是该致动器AC所对应的QD的命令数的情况下,不从主机100等接受该致动器AC所对应的命令。存储部6201在预定的致动器AC所对应的队列命令数是比该致动器AC所对应的QD小的命令数的情况下,将从主机100等接受到的该致动器AC所对应的命令存储于队列。例如,存储部6201在致动器AC1所对应的QD是3、且致动器AC1所对应的队列命令数是3的情况下,不从主机100等接受致动器AC1所对应的命令。另外,存储部6201在致动器AC1所对应的QD是3、且致动器AC1所对应的队列命令数是2的情况下,将从主机100等接受到的致动器AC1所对应的命令存储于致动器AC1所对应的队列。例如,预定的致动器AC所对应的QD与该致动器AC所对应的队列命令数的差分值、也即是、该致动器AC所对应的队列的空余数,与该致动器AC所对应的运算资源的空余(剩余运算资源)对应。在一例中,若预定的致动器AC所对应的队列的空余数越多,则该致动器AC所对应的剩余运算资源就越增大。另外,预定的致动器AC所对应的队列的空余数越少,则该致动器AC所对应的剩余运算资源也越减少。
图3是表示队列Q1以及Q2的一例的示意图。在图3中,存储部6201包含:存储致动器AC1所对应的命令的队列Q1、和存储致动器AC2所对应的命令的队列Q2。在图3所示的例子中,队列Q1以及Q2的QD是3。此外,队列Q1以及Q2的QD可以是2以下,也可以是4以上。在图3中,LUN1表示致动器AC1的LUN(逻辑单元编号:Logical Unit Number),LUN2表示致动器AC2的LUN。Cmd1、Cmd2、以及Cmd3表示命令。命令Cmd1、命令Cmd2、以及命令Cmd3的编号1、2、以及3表示从主机100等传送的顺序,小的一方表示与大的一方相比命令被传送的顺序比较早。命令LUN1Cmd1、命令LUN1Cmd2、以及命令LUN1Cmd3相当于致动器AC1所对应的命令。命令LUN1Cmd1、命令LUN1Cmd2、以及命令LUN1Cmd3按所述记载的顺序从主机100等传送至存储部6201而存储于队列Q1。命令LUN2Cmd1、以及命令LUN2Cmd按所述记载的顺序从主机100等传送至存储部6201而存储于队列Q2。图3示出了在队列Q1中存储命令的方向(以下,也有时称为存储方向)CD1、和在队列Q2中存储命令的存储方向CD2。
在图3所示的例子中,存储部6201沿着存储方向CD1,将命令LUN1Cmd1、命令LUN1Cmd2、以及命令LUN2Cmd3按所述记载的顺序存储于队列Q1,沿着存储方向CD2,将命令LUN2Cmd1以及命令LUN2Cmd2按所述记载的顺序存储于队列Q2。
存储部6201,由于存储于队列Q1的致动器AC1所对应的队列命令数(=3)是与QD相等的命令数(=3),所以不从主机100等接受致动器AC1所对应的命令。存储部6201,由于存储于队列Q2的致动器AC2所对应的队列命令数(=2)比QD(=3)小,所以能从主机100等接受致动器AC2所对应的命令并存储于队列Q2。
图4是表示合成队列Q10的一例的示意图。在图4中,存储部6201包含存储致动器AC1以及AC2所对应的命令的合成队列Q10。合成队列Q10相当于例如,使图3所示的队列Q1以及Q2组合后的队列。在图4中,合成队列Q10的QD是致动器AC1所对应的队列的QD、例如,3和致动器AC2所对应的队列的QD、例如,3相加后的QD、例如,6。此外,合成队列Q10可以是5以下,也可以是7以上。在图4中,致动器AC1所对应的队列的QD例如是3,致动器AC2所对应的队列的QD例如是3。在图4中,存储方向CD1与存储方向CD2是相同方向。
存储部6201沿着存储方向CD1,将命令LUN1Cmd1以及命令LUN1Cmd2按所述记载的顺序存储于队列Q1。存储部6201在命令LUN1Cmd2之后接受命令LUN2Cmd1,沿着存储方向CD2,在命令LUN1Cmd2之后将命令LUN2Cmd1存储于合成队列Q10。存储部6201在命令LUN2Cmd1之后接受命令LUN1Cmd3,沿着存储方向CD1,在命令LUN2Cmd1之后将命令LUN1Cmd3存储于合成队列Q10。存储部6201在命令LUN1Cmd3之后接受命令LUN2Cmd2,沿着存储方向CD2,在命令LUN1Cmd3之后将命令LUN2Cmd2存储于合成队列Q10。
存储部6201,由于存储于合成队列Q10的致动器AC1所对应的队列命令数是QD(=3),所以不接受致动器AC1所对应的命令。存储部6201,由于存储于合成队列Q10的致动器AC2所对应的队列命令数比QD(=3)小,所以能接受致动器AC2所对应的命令并存储于合成队列Q10。
图5是表示合成队列Q10的一例的示意图。在图5中,存储部6201包含存储致动器AC1以及AC2所对应的命令的合成队列Q10。合成队列Q10例如相当于使图5(3)所示的队列Q1以及Q2组合后的队列。在图5中,合成队列Q10的QD是将致动器AC1所对应的队列的QD、例如3和致动器AC2所对应的队列的QD、例如,3相加后的QD、例如6。此外,合成队列Q10既可以是5以下,也可以是7以上。在图5中,致动器AC1所对应的队列的QD例如是3,致动器AC2所对应的队列的QD例如是3。在图5中,存储方向CD1与存储方向CD2,彼此是相反方向。
存储部6201沿着存储方向CD1,将命令LUN1Cmd1、命令LUN1Cmd2、以及命令LUN1Cmd3按所述记载的顺序存储于合成队列Q10,沿着存储方向CD2,将命令LUN2Cmd1以及命令LUN2Cmd2按所述记载的顺序存储于合成队列Q10。
存储部6201,由于存储于合成队列Q10的致动器AC1所对应的队列命令数是QD(=3),所以不接受致动器AC1所对应的命令。存储部6201,由于存储于合成队列Q10的致动器AC2所对应的队列命令数比QD(=3)小,所以能接受致动器AC2所对应的命令并存储于合成队列Q10。
命令数判定部6202对各致动器AC所对应的各队列命令数进行计数。命令数判定部6202例如也可以将各致动器AC所对应的各队列命令数与LUN进行关联而记录于表等。此外,包含该各致动器AC所对应的队列命令数的表例如也可以为命令数判定部6202所具备,也可以记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。
命令数判定部6202根据各致动器AC所对应的各队列命令数判定各致动器AC所对应的队列命令数的多少(以下,也有时称为队列命令数的等级)。命令数判定部6202判定各致动器AC所对应的各队列命令数是预定的阈值(以下,也有时称为上限值)以上,还是比上限值小。以下,说明各致动器所对应的各队列命令数的各上限值相同的情况,但是也可以不同。命令数判定部6202在判定为预定的致动器AC所对应的队列命令数为上限值以上的情况下,判定为该预定的致动器AC所对应的队列命令数的多少是多。换言之,命令数判定部6202在判定为预定的致动器AC所对应的队列命令数为上限值以上的情况下,判定为该预定的致动器AC所对应的队列命令数的等级是高等级。上限值例如相当于QD。命令数判定部6202判定各致动器AC所对应的各队列命令为预定的阈值(以下,也有时称为下限值)以下,还是比下限值大。以下,对各致动器所对应的各队列命令数的各下限值相同进行说明,但也可以不同。命令数判定部6202在判定为预定的致动器AC所对应的队列命令数为下限值以下的情况下,判定为该预定的致动器AC所对应的队列命令数的多少是少。换言之,命令数判定部6202在判定为预定的致动器AC所对应的队列命令数为下限值以下的情况下,判定为该预定的致动器AC所对应的队列命令数的等级是低等级。下限值例如相当于0(零)。例如,在预定的致动器AC所对应的队列命令数是下限值的情况下,该致动器AC是空闲(idle)状态。命令数判定部6202在判定为预定的致动器所对应的队列命令数比上限值小、且比下限值大的情况下,判定为该致动器AC所对应的队列命令数的多少不多也不少。换言之,命令数判定部6202判定为预定的致动器AC所对应的队列命令数的等级是中等级。
例如,命令数判定部6202在致动器AC1(或致动器AC2)所对应的队列命令数的上限值是3、且致动器AC1(或致动器AC2)所对应的队列命令数是3的情况下,判定为致动器AC1所对应的队列命令数的等级是高等级。例如,命令数判定部6202在致动器AC1(或致动器AC2)所对应的队列命令数的下限值是1、且致动器AC1(或致动器AC2)所对应的队列命令数是1的情况下,判定为致动器AC1(或致动器AC2)所对应的队列命令数的等级是低等级。例如,命令数判定部6202在致动器AC1(或致动器AC2)所对应的队列命令数(的上限值)是3、致动器AC1(或致动器AC2)所对应的队列命令数的下限值是1、且致动器AC1(或致动器AC2)所对应的队列命令数是2的情况下,判定为致动器AC1(或致动器AC2)所对应的队列命令数的等级是中等级。
旁路运算判定部6211基于多个致动器AC所分别对应的队列命令数的等级判定旁路运算处理是有效还是无效。旁路运算判定部6211在基于多个致动器AC所分别对应的队列命令数的等级判定为旁路运算处理是有效的情况下,生成使旁路运算处理有效的标志(以下,也有时称为有效标志)、和表示传送重新排序信息的方向的标志(以下,也有时称为传送方向标志),输出有效标志以及传送方向标志。旁路运算判定部6211在基于多个致动器AC所分别对应的队列命令数的等级判定为旁路运算处理是无效的情况下,生成使旁路运算处理无效的标志(以下,也有时称为无效标志),输出无效标志。
旁路运算判定部6211例如也可以基于包含多个致动器AC所分别对应的队列命令数的等级、旁路运算处理的状态、以及重新排序信息的传送方向等的表(以下,也有时称为判定表)、和多个致动器AC所分别对应的多个队列命令数的等级,判定旁路运算处理是有效还是无效。判定表也可以为旁路运算判定部6211所具备,也可以记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。
图6是表示判定表TB1的一例的示意图。在图6中,判定表TB1包含:LUN1的致动器AC1所对应的队列命令数的等级、LUN2的致动器AC2所对应的队列命令数的等级、旁路运算处理的状态、重新排序信息的传送方向。在图6所示的判定表TB1中,编号表示LUN1的(致动器AC1所对应的)队列命令数的等级、LUN2的(致动器AC2所对应的)队列命令数的等级、旁路运算处理的状态、以及重新排序信息的传送方向的组合的连续号码。在图6所示的判定表TB1的LUN1以及LUN2的队列命令数的等级中,0:Low表示队列命令数的等级是低等级,1:Middle表示队列命令数的等级是中等级,2:High表示队列命令数的等级是高等级。在图6所示的判定表TB1的旁路运算处理的状态中,0:Disable表示旁路运算处理是无效,1:Enable表示旁路运算处理是有效。在图6所示的判定表TB1的重新排序信息的传送方向中,0(Invalid)表示由于旁路运算处理是无效所以不进行重新排序信息的传送,-1(R2→B1)表示将致动器AC2所对应的重新排序信息从第2重新排序运算部6222向第1旁路运算部6231传送,1(R1→B2)表示将致动器AC1所对应的重新排序信息从第1重新排序运算部6221向第2旁路运算部6232传送。判定表TB1也可以为旁路运算判定部6211所具备,也可以记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。
在图6所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为LUN1的致动器AC1所对应的队列命令数的等级是低等级(0:Low)且LUN2的致动器AC2所对应的队列命令数的等级是低等级(0:Low)的情况下,参照判定表TB1判定为旁路运算处理是无效(0:Disable)。该情况下,旁路运算判定部6211生成无效(0:Disable)标志,将无效(0:Disable)标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
在图6所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为LUN1的致动器AC1所对应的队列命令数的等级是低等级(0:Low)且LUN2的致动器AC2所对应的队列命令数的等级是中等级(1:Middle)的情况下,参照判定表TB1判定为旁路运算处理是无效(0:Disable)。在该情况下,旁路运算判定部6211生成无效(0:Disable)标志。旁路运算判定部6211将所生成的无效(0:Disable)标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
在图6所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为LUN1的致动器AC1所对应的队列命令数的等级是低等级(0:Low)且LUN2的致动器AC2所对应的队列命令数的等级是高等级(2:High)的情况下,参照判定表TB1判定为旁路运算处理是有效(1:Enable)。在该情况下,旁路运算判定部6211生成利用致动器AC1所对应的剩余运算资源使旁路运算处理成为有效的有效(1:Enable)标志、和表示将致动器AC2所对应的重新排序信息从第2重新排序运算部6222向第1旁路运算部6231传送的传送方向标志。旁路运算判定部6211将所生成的有效标志以及传送方向标志向第2重新排序运算部6222、以及第1旁路运算部6231输出。此外,旁路运算判定部6211也可以将所生成的有效标志以及传送方向标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
在图6所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为LUN1的致动器AC1所对应的队列命令数的等级是中等级(1:Middle)且LUN2的致动器AC2所对应的队列命令数的等级是低等级(0:Low)的情况下,参照判定表TB1判定为旁路运算处理是无效(0:Disable)。在该情况下,旁路运算判定部6211生成无效(0:Disable)标志,将无效(0:Disable)标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
在图6所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为LUN1的致动器AC1所对应的队列命令数的等级是中等级(1:Middle)且LUN2的致动器AC2所对应的队列命令数的等级是中等级(1:Middle)的情况下,参照判定表TB1判定为旁路运算处理是无效(0:Disable)。在该情况下,旁路运算判定部6211生成无效(0:Disable)标志,将无效(0:Disable)标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
在图6所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为LUN1的致动器AC1所对应的队列命令数的等级是中等级(1:Middle)且LUN2的致动器AC2所对应的队列命令数的等级是高等级(2:High)的情况下,参照判定表TB1判定为旁路运算处理是无效(0:Disable)。在该情况下,旁路运算判定部6211生成无效(0:Disable)标志,将无效(0:Disable)标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
在图6所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为LUN1的致动器AC1所对应的队列命令数的等级是中等级(1:Middle)且LUN2的致动器AC2所对应的队列命令数的等级是低等级(0:Low)的情况下,参照判定表TB1判定为旁路运算处理是无效(0:Disable)。在该情况下,旁路运算判定部6211生成无效(0:Disable)标志,将无效(0:Disable)标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
在图6所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为LUN1的致动器AC1所对应的队列命令数的等级是高等级(2:High)且LUN2的致动器AC2所对应的队列命令数的等级是低等级(0:Low)的情况下,参照判定表TB1判定为旁路运算处理是有效(1:Enable)。在该情况下,旁路运算判定部6211生成利用致动器AC2所对应的剩余运算资源使旁路运算处理成为有效的有效(1:Enable)标志、和表示将致动器AC1所对应的重新排序信息从第1重新排序运算部6221向第2旁路运算部6232传送的传送方向标志。旁路运算判定部6211将所生成的有效标志以及传送方向标志向第1重新排序运算部6221以及第2旁路运算部6232输出。此外,旁路运算判定部6211也可以将所生成的有效标志以及传送方向标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
在图6所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为LUN1的致动器AC1所对应的队列命令数的等级是高等级(2:High)且LUN2的致动器AC2所对应的队列命令数的等级是中等级(1:Middle)的情况下,参照判定表TB1判定为旁路运算处理是无效(0:Disable)。在该情况下,旁路运算判定部6211生成无效(0:Disable)标志,将无效(0:Disable)标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
在图6所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为LUN1的致动器AC1所对应的队列命令数的等级是高等级(2:High)且LUN2的致动器AC2所对应的队列命令数的等级是高等级(2:High)的情况下,参照判定表TB1判定为旁路运算处理是无效(0:Disable)。在该情况下,旁路运算判定部6211生成无效(0:Disable)标志,将无效(0:Disable)标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
图7是表示本实施方式的旁路运算处理的状态的判定方法的一例的示意图。在图7中,存储部6201包含图3所示的队列Q1以及Q2。在图7中,队列Q1以及Q2的QD分别是3。在图7中,存储方向CD1以及CD2可以是相同方向,但也可以是相反方向。图7示出了致动器AC1以及AC2所对应的队列命令数的上限值thH、和致动器AC1以及AC2所对应的下限值thL。在图7中,上限值thH是3,下限值thL是0。此外,上限值thH也可以是3以外的值,下限值thL也可以是0以外的值。在图7中,存储于队列Q1的致动器AC1所对应的队列命令数是3,存储于队列Q2的致动器AC2所对应的队列命令数是0。
在图7所示的例子中,命令数判定部6202对存储于存储部6201的队列Q1的致动器AC1所对应的队列命令数(=3)和存储于存储部6201的队列Q2的致动器AC2所对应的队列命令数(=0)分别进行计数。此外,命令数判定部6202也可以将计数得到的致动器AC1所对应的队列命令数和致动器AC2所对应的队列命令数分别与LUN进行关联并记录于表中。
在图7所示的例子中,命令数判定部6202在存储于存储部6201的队列Q1的致动器AC1所对应的队列命令数(=3)是上限值thH(=3)以上、存储于存储部6201的队列Q2的致动器AC2所对应的队列命令数(=0)是下限值thL(=0)以下的情况下,判定为致动器AC1所对应的队列命令数的等级是高等级、且致动器AC2所对应的队列命令数的等级是低等级。
在图7所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为致动器AC1所对应的队列命令数的等级是高等级、且致动器AC2所对应的队列命令数的等级是低等级的情况下,参照图6所示的判定表TB1等判定为旁路运算是有效。旁路运算判定部6211生成使使用了致动器AC2所对应的剩余运算资源的旁路运算处理成为有效的有效标志、和表示将致动器AC1所对应的重新排序信息从第1重新排序运算部6221向第2旁路运算部6232传送的传送方向标志。旁路运算判定部6211将所生成的有效标志以及传送方向标志向第1重新排序运算部6221以及第2旁路运算部6232输出。此外,旁路运算判定部6211也可以将所生成的有效标志以及传送方向标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
图8是表示本实施方式的旁路运算处理的状态的判定方法的一例的示意图。在图8中,存储部6201包含图4所示的合成队列Q10。在图8中,合成队列Q10的QD是6。在图8中,致动器AC1所对应的队列的QD是3,致动器AC2所对应的队列的QD是3。在图8中,存储方向CD1以及CD2是相同方向,但也可以是相反方向。图8示出了致动器AC1以及AC2所对应的队列命令数的上限值thH、和致动器AC1以及AC2所对应的下限值thL。在图8中,上限值thH是3,下限值thL是0。此外,上限值thH也可以是3以外的值,下限值thL也可以是0以外的值。在图8中,存储于合成队列Q10的致动器AC1所对应的队列命令数是3,存储于合成队列Q10的致动器AC2所对应的队列命令数是2。图8示出了包含存储于LUN(LUN1)所关联的合成队列Q10的、致动器AC1所对应的队列命令数、和存储于LUN(LUN2)所关联的合成队列Q10的、致动器AC2所对应的队列命令数的表TB2。
在图8所示的例子中,命令数判定部6202对存储部6201的合成队列Q10所存储的致动器AC1所对应的队列命令数(=3)和致动器AC2所对应的队列命令数(=2)分别进行计数,将计数得到的致动器AC1所对应的队列命令数和致动器AC2所对应的队列命令数,分别与LUN进行关联并记录于表TB2。
在图8所示的例子中,命令数判定部6202在存储部6201的合成队列Q10所存储的致动器AC1所对应的队列命令数(=3)为上限值thH(=3)以上、存储部6201的合成队列Q10所存储的致动器AC2所对应的队列命令数(=2)比下限值thL(=0)大的情况下,判定为致动器AC1所对应的队列命令数的等级是高等级、且致动器AC2所对应的队列命令数的等级是中等级。
在图8所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为致动器AC1所对应的队列命令数的等级是高等级、且致动器AC2所对应的队列命令数的等级是中等级的情况下,参照图6所示的判定表TB1等判定为旁路运算是无效。旁路运算判定部6211生成无效标志。旁路运算判定部6211将所生成的无效标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
图9是表示本实施方式的旁路运算处理的状态的判定方法的一例的示意图。在图9中,存储部6201包含图5所示的合成队列Q10。在图9中,合成队列Q10的QD是6。在图9中,致动器AC1所对应的队列的QD是3、致动器AC2所对应的队列的QD是3。在图9中,存储方向CD1以及CD2彼此是相反方向,但也可以是相同方向。图9示出了致动器AC1以及AC2所对应的队列命令数的上限值thH、和致动器AC1以及AC2所对应的下限值thL。在图9中,上限值thH是3,下限值thL是0。此外,上限值thH也可以是3以外的值,下限值thL也可以是0以外的值。在图9中,存储于合成队列Q10的、致动器AC1所对应的队列命令数是3,存储于合成队列Q10的、致动器AC2所对应的队列命令数是2。图9示出了包含LUN(LUN1)所关联的合成队列Q10所存储的致动器AC1所对应的队列命令数、和LUN(LUN2)所关联的合成队列Q10所关联的致动器AC2所对应的队列命令数的表TB2。
在图9所示的例子中,命令数判定部6202对存储部6201的合成队列Q10所存储的致动器AC1所对应的队列命令数(=3)和致动器AC2所对应的队列命令数(=2)分别进行计数,将计数得到的致动器AC1所对应的队列命令数和致动器AC2所对应的队列命令数分别与LUN进行关联并存储于表TB2。
在图9所示的例子中,命令数判定部6202在存储部6201的合成队列Q10所存储的致动器AC1所对应的队列命令数(=3)为上限值thH(=3)以上、存储部6201的合成队列Q10所存储的致动器AC2所对应的队列命令数(=2)比下限值thL(=0)大的情况下,判定为致动器AC1所对应的队列命令数的等级是高等级、且致动器AC2所对应的队列命令数的等级是中等级。
在图9所示的例子中,旁路运算判定部6211在由命令数判定部6202判定为致动器AC1所对应的队列命令数的等级是高等级、且致动器AC2所对应的队列命令数的等级是中等级的情况下,参照图6所示的判定表TB1等判定为旁路运算是无效。旁路运算判定部6211生成无效标志。旁路运算判定部6211将所生成的无效标志向第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232输出。
通信部6212对信息进行传送。通信部6212例如在第1重新排序运算部6221和第2旁路运算部6232之间传送重新排序信息。通信部6212例如在第2重新排序运算部6222和第1旁路运算部6231之间传送重新排序信息。此外,通信部6212也可以在第1重新排序运算部6221和第2重新排序运算部6222之间传送信息,也可以在第1旁路运算部6231和第2旁路运算部6232之间传送信息。通信部6212也可以在磁盘装置1的各部和命令控制部620的各部之间传送信息。另外,通信部6212也可以在主机100和命令控制部620的各部之间传送信息。
第1重新排序运算部6221对致动器AC1所对应的多个队列命令执行重新排序运算处理。例如,第1重新排序运算部6221在正在处理当前的命令时,对从主机100等接受到的致动器AC1所对应的多个队列命令执行重新排序运算处理。
在一例中,第1重新排序运算部6221基于头HD1的当前的位置的信息、致动器AC1所对应的多个队列命令的信息、以及致动器AC1所对应的重新排序表等的致动器AC1所对应的重新排序信息,分别计算从头HD1的当前的位置起到由致动器AC1所对应的多个队列命令内的有可能接着当前的命令将要处理的多个队列命令(以下,也有时称为下次预计处理命令)分别指定的多个位置为止的访问成本(以下,也有时称为下次推定成本)。此外,第1重新排序运算部6221也可以为了降低磁盘装置1的振动和/或消耗电力的影响,通过对所计算出的访问成本(下次推定成本)进行加权(例如,对预定的值进行乘法运算、或除法运算)、使开始头HD1的移动的盘DK的位置和/或使头HD1移动的盘DK的位置在半径方向上偏移(例如,对预定的值进行加法运算、或减法运算)来计算访问成本(下次推定成本)等,从而调整访问成本(下次推定成本)。第1重新排序运算部6221基于这些下次推定成本的计算处理的结果,从这些下次预计处理命令中选择低成本命令(或最低成本命令),将从这些下次预计处理命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。
在一例中,第1重新排序运算部6221基于致动器AC1所对应的重新排序信息分别计算下次推定成本,基于致动器AC1所对应的重新排序信息分别计算从由致动器AC1所对应的多个队列命令内的多个下次预计处理命令分别指定的多个位置起到由这些多个队列命令内的有可能在当前的命令的下下一个将要处理的多个队列命令(以下,也有时称为下下次预计处理命令)分别指定的多个位置为止的多个访问成本(以下,也有时称为下下次推定成本)。换言之,第1重新排序运算部6221基于致动器AC1所对应的重新排序信息分别计算下次推定成本,基于致动器AC1所对应的重新排序信息分别计算从由致动器AC1所对应的多个队列命令内的多个下次预计处理命令分别指定的多个位置起到由多个队列命令内的与下次预计处理命令不同的多个下下次预计处理命令分别指定的多个盘DK的不同的位置为止的多个下下次推定成本。此外,第1重新排序运算部6221也可以为了降低磁盘装置1的振动和/或消耗电力的影响,通过对所计算出的访问成本(下下次推定成本)进行加权(例如,对预定的值进行乘法运算、或除法运算),使开始头HD1的移动的盘DK的位置和/或使头HD1移动的盘DK的位置在半径方向上偏移(例如,对预定的值进行加法运算、或减法运算)来计算访问成本(下下次推定成本)等,从而调整访问成本(下下次推定成本)。第1重新排序运算部6221基于这些下次推定成本以及下下次推定成本的计算处理的结果,从这些下次预计处理命令中选择低成本命令(或最低成本命令),将从这些下次预计处理命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。
第1重新排序运算部6221例如也可以将致动器AC1所对应的重新排序信息记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。此外,第1重新排序运算部6221也可以将致动器AC1所对应的重新排序表以外的致动器AC1所对应的重新排序信息记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。在该情况下,第1重新排序运算部6221也可以将致动器AC1所对应的重新排序表与致动器AC1所对应的重新排序信息分开记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。第1重新排序运算部6221也可以将各致动器AC所对应的重新排序表、例如,致动器AC1所对应的重新排序表和致动器AC2所对应的重新排序表记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。第1重新排序运算部6221也可以将多个致动器AC所对应的重新排序表、例如,致动器AC1以及AC2所对应的重新排序表记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。第1重新排序运算部6221也可以通过计算将致动器AC1所对应的重新排序表算出。第1重新排序运算部6221也可以通过计算将致动器AC1所对应的重新排序表和致动器AC2所对应的重新排序表算出。另外,第1重新排序运算部6221也可以通过计算将致动器AC1以及AC2所对应的重新排序表算出。
第1重新排序运算部6221例如在被输入了利用致动器AC2所对应的剩余运算资源实现的使旁路运算成为有效的有效标志和将致动器AC1所对应的重新排序信息向第2旁路运算部6232传送的传送方向标志的情况下,经由通信部6212将致动器AC1所对应的重新排序信息向第2旁路运算部6232传送。此外,第1重新排序运算部6221也可以在被输入了利用致动器AC2所对应的剩余运算资源实现的使旁路运算成为有效的有效标志和将致动器AC1所对应的重新排序信息向第2旁路运算部6232传送的传送方向标志的情况下,经由通信部6212将致动器AC1所对应的重新排序表以外的重新排序信息向第2旁路运算部6232传送。另外,第1重新排序运算部6221也可以在被输入了利用致动器AC1所对应的剩余运算资源实现的使旁路运算成为有效的有效标志和将致动器AC2所对应的重新排序信息向第1旁路运算部6231传送的传送方向标志的情况下,经由通信部6212将各致动器所对应的重新排序信息向第1旁路运算部6231传送。
第1重新排序运算部6221基于致动器AC1所对应的多个队列命令各自的多个访问成本的计算处理的计算结果和从第2旁路运算部6232传送的对致动器AC1所对应的多个队列命令各自的多个访问成本进行计算得到的旁路运算处理的计算结果,从致动器AC1所对应的这些多个队列命令中选择低成本命令(或最低成本命令),将从这些多个队列命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。
在一例中,第1重新排序运算部6221基于致动器AC1所对应的多个队列命令内的一些下次预计处理命令各自的一些下次推定成本的计算处理的计算结果和从第2旁路运算部6232传送的致动器AC1所对应的多个队列命令内的一些下次预计处理命令各自的一些下次推定成本的计算处理的计算结果,从致动器AC1所对应的这些多个下次预计处理命令中选择低成本命令(或最低成本命令),将从致动器AC1所对应的这些多个下次预计处理命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。
在一例中,第1重新排序运算部6221基于对致动器AC1所对应的多个下次预计处理命令各自的多个下次推定成本分别进行计算得到的计算结果、和从第2旁路运算部6232传送的对致动器AC1所对应的多个下下次预计处理命令各自的多个下下次推定成本分别进行计算得到的计算结果,从致动器AC1所对应的这些下次预计处理命令中选择低成本命令(或最低成本命令),将从致动器AC1所对应的这些多个下次预计处理命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。
第2重新排序运算部6222对致动器AC2所对应的多个队列命令执行重新排序运算处理。例如,第2重新排序运算部6222在正在处理当前的命令时,对从主机100等接受到的致动器AC2所对应的多个队列命令执行重新排序运算处理。
在一例中,第2重新排序运算部6222基于头HD2的当前的位置的信息、致动器AC2所对应的多个队列命令的信息、以及致动器AC2所对应的重新排序表等的致动器AC2所对应的重新排序信息,对从头HD2的当前的位置起到由致动器AC2所对应的多个队列命令内的多个下次预计处理命令分别指定的多个位置为止的多个下次推定成本分别进行计算。此外,第2重新排序运算部6222也可以为了降低磁盘装置1的振动和/或消耗电力的影响,通过对所计算出的访问成本(下次推定成本)进行加权(例如,对预定的值进行乘法运算、或除法运算),使开始头HD2的移动的盘DK的位置和/或使头HD1移动的盘DK的位置在半径方向上偏移(例如,对预定的值进行加法运算、或减法运算)来计算访问成本(下次推定成本)等来调整访问成本(下次推定成本)。第2重新排序运算部6222基于这些下次推定成本的计算处理的结果,从这些下次预计处理命令中选择低成本命令(或最低成本命令),将从这些下次预计处理命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。致动器AC2所对应的重新排序表既可以与致动器AC1所对应的重新排序表相同也可以不同。
在一例中,第2重新排序运算部6222基于致动器AC2所对应的重新排序信息对下次推定成本分别进行计算,基于致动器AC2所对应的重新排序信息对致动器AC2所对应的多个队列命令内的下下次预计处理命令各自的多个下下次推定成本分别进行计算。换言之,第2重新排序运算部6222基于致动器AC2所对应的重新排序信息对下次推定成本分别进行计算,基于致动器AC2所对应的重新排序信息,对从由致动器AC2所对应的多个队列命令内的多个下次预计处理命令分别指定的多个位置起到由多个队列命令内的与下次预计处理命令不同的多个下下次预计处理命令分别指定的多个盘DK的不同的位置为止的多个下下次推定成本分别进行计算。此外,第2重新排序运算部6222也可以为了降低磁盘装置1的振动和/或消耗电力的影响,通过对所计算出的访问成本(下下次推定成本)进行加权(例如,对预定的值进行乘法运算、或除法运算),使开始头HD1的移动的盘DK的位置和/或使头HD1移动的盘DK的位置在半径方向上偏移(例如,对预定的值进行加法运算、或减法运算)来计算访问成本(下下次推定成本)等来调整访问成本(下下次推定成本)。第2重新排序运算部6222基于这些下次推定成本以及下下次推定成本的计算处理的结果从这些下次预计处理命令中选择低成本命令(或最低成本命令),将从这些下次预计处理命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。
第2重新排序运算部6222例如也可以将致动器AC2所对应的重新排序信息记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。此外,第2重新排序运算部6222也可以将致动器AC2所对应的重新排序表以外的致动器AC2所对应的重新排序信息记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。在该情况下,第2重新排序运算部6222也可以将致动器AC2所对应的重新排序表与致动器AC2所对应的重新排序信息分开记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。第2重新排序运算部6222也可以将各致动器AC所对应的重新排序表、例如,致动器AC1所对应的重新排序表和致动器AC2所对应的重新排序表记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。第2重新排序运算部6222也可以将多个致动器AC所对应的重新排序表、例如,致动器AC1以及AC2所对应的重新排序表记录于预定的记录区域、例如,盘DK的系统区域DKb、易失性存储器70、缓冲存储器80、或非易失性存储器90等。第2重新排序运算部6222也可以通过计算将致动器AC2所对应的重新排序表算出。第2重新排序运算部6222也可以通过计算将致动器AC1所对应的重新排序表和致动器AC2所对应的重新排序表算出。另外,第2重新排序运算部6222也可以通过计算将致动器AC1以及AC2所对应的重新排序表算出。
第2重新排序运算部6222例如在被输入了利用致动器AC1所对应的剩余运算资源实现的使旁路运算成为有效的有效标志和将致动器AC2所对应的重新排序信息向第1旁路运算部6231传送的传送方向标志的情况下,经由通信部6212将致动器AC2所对应的重新排序信息向第1旁路运算部6231传送。此外,第2重新排序运算部6222在被输入了利用致动器AC1所对应的剩余运算资源实现的使旁路运算成为有效的有效标志和将致动器AC2所对应的重新排序信息向第1旁路运算部6231传送的传送方向标志的情况下,经由通信部6212将致动器AC2所对应的重新排序表以外的重新排序信息向第1旁路运算部6231传送。另外,第2重新排序运算部6222在被输入了利用致动器AC2所对应的剩余运算资源实现的使旁路运算成为有效的有效标志和将致动器AC1所对应的重新排序信息向第2旁路运算部6232传送的传送方向标志的情况下,经由通信部6212将各致动器所对应的重新排序信息向第2旁路运算部6232传送。
第2重新排序运算部6222基于致动器AC2所对应的多个队列命令各自的多个访问成本的计算处理的计算结果和从第1旁路运算部6231传送的对致动器AC2所对应的多个队列命令各自的多个访问成本进行计算得到的旁路运算处理的计算结果,从致动器AC2所对应的这些多个队列命令中选择低成本命令(或最低成本命令),将从这些多个队列命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。
在一例中,第2重新排序运算部6222基于致动器AC2所对应的多个队列命令内的一些下次预计处理命令各自的一些下次推定成本的计算处理的计算结果和从第1旁路运算部6231传送的致动器AC2所对应的多个队列命令内的一些下次预计处理命令各自的一些下次推定成本的计算处理的计算结果,从致动器AC2所对应的这些多个队列命令中选择低成本命令(或最低成本命令),将从致动器AC2所对应的这些多个下次预计处理命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。
在一例中,第2重新排序运算部6222基于对致动器AC2所对应的多个下次预计处理命令各自的多个下次推定成本分别进行计算得到的计算结果、和从第1旁路运算部6231传送的对致动器AC2所对应的多个下下次预计处理命令各自的多个下下次推定成本分别进行计算得到的计算结果,从致动器AC2所对应的这些下次预计处理命令中选择低成本命令(或最低成本命令),将从致动器AC2所对应的这些多个下次预计处理命令中选择出的低成本命令(或最低成本命令)的顺序重新排序为下一个顺序。
第1旁路运算部6231利用致动器AC1所对应的剩余运算资源执行旁路运算处理,传送旁路运算处理的运算结果。换言之,第1旁路运算部6231在致动器AC1所对应的运算资源存在空余(剩余运算资源)的情况下,执行致动器AC2所对应的重新排序运算处理(或与重新排序运算处理的一部分运算处理相当的旁路运算处理)。例如,第1旁路运算部6231利用致动器AC1所对应的剩余运算资源,基于从第2重新排序运算部6222传送的致动器AC2所对应的重新排序信息执行对致动器AC2所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第2重新排序运算部6222传送。
在一例中,第1旁路运算部6231利用致动器AC1所对应的剩余运算资源,基于致动器AC2所对应的重新排序信息执行对致动器AC2所对应的多个队列命令内的至少1个下次预计处理命令各自的至少1个下次推定成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算(计算)结果向第2重新排序运算部6222传送。换言之,第1旁路运算部6231利用致动器AC1所对应的剩余运算资源,执行:基于致动器AC2所对应的重新排序信息对致动器AC2所对应的多个队列命令内的没有由第2重新排序运算部6222处理的至少1个下次预计处理命令各自的至少1个下次推定成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算(计算)结果向第2重新排序运算部6222传送。此外,第1旁路运算部6231也可以为了降低磁盘装置1的振动和/或消耗电力的影响,通过对所计算出的访问成本(下次推定成本)进行加权(例如,对预定的值进行乘法运算、或除法运算),使开始头HD2的移动的盘DK的位置和/或使头HD2移动的盘DK的位置在半径方向上偏移(例如,对预定的值进行加法运算、或减法运算)来计算访问成本(下次推定成本)等,由此调整访问成本(下次推定成本)。
在一例中,第1旁路运算部6231利用致动器AC1所对应的剩余运算资源,执行:基于致动器AC2所对应的重新排序信息对致动器AC2所对应的多个下下次预计处理命令各自的多个下下次推定成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第2重新排序运算部6222传送。此外,第1旁路运算部6231也可以利用致动器AC1所对应的剩余运算资源,基于从第2重新排序运算部6222传送的致动器AC2所对应的重新排序信息和从第1重新排序运算部6221输入的致动器AC2所对应的重新排序表,执行对致动器AC2所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第2重新排序运算部6222传送。第1旁路运算部6231也可以利用致动器AC1所对应的剩余运算资源,基于从第2重新排序运算部6222传送的致动器AC2所对应的重新排序信息和从第1重新排序运算部6221输入的各致动器AC所对应的重新排序表,执行对致动器AC2所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第2重新排序运算部6222传送。第1重新排序运算部6221以及第1旁路运算部6231例如也可以与致动器AC1所对应的运算资源对应。第1旁路运算部6231例如也可以与致动器AC1所对应的剩余运算资源对应。第1旁路运算部6231也可以包含于第1重新排序运算部6221。另外,第1旁路运算部6231也可以为了降低磁盘装置1的振动和/或消耗电力的影响,通过对所计算出的访问成本(下下次推定成本)进行加权(例如,对预定的值进行乘法运算、或除法运算),使开始头HD2的移动的盘DK的位置和/或使头HD2移动的盘DK的位置在半径方向上偏移(例如,对预定的值进行加法运算、或减法运算)来计算访问成本(下次推定成本)等,由此调整访问成本(下次推定成本)。
第2旁路运算部6232利用致动器AC2所对应的剩余运算资源执行旁路运算处理,传送旁路运算处理的运算结果。换言之,第2旁路运算部6232在致动器AC2所对应的运算资源存在空余(剩余运算资源)的情况下,执行致动器AC1所对应的重新排序运算处理(或与重新排序运算处理的一部分运算处理相当的旁路运算处理)。例如,第2旁路运算部6232利用致动器AC2所对应的剩余运算资源,基于从第1重新排序运算部6221传送的致动器AC1所对应的重新排序信息执行对致动器AC1所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第1重新排序运算部6221传送。
在一例中,第2旁路运算部6232利用致动器AC2所对应的剩余运算资源,基于致动器AC1所对应的重新排序信息执行对致动器AC1所对应的多个队列命令内的至少1个下次预计处理命令各自的至少1个下次推定成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算(计算)结果向第1重新排序运算部6221传送。换言之,第2旁路运算部6232利用致动器AC2所对应的剩余运算资源,基于致动器AC1所对应的重新排序信息,执行对致动器AC1所对应的多个队列命令内的没有由第1重新排序运算部6221处理的至少1个下次预计处理命令各自的至少1个下次推定成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算(计算)结果向第1重新排序运算部6221传送。此外,第2旁路运算部6232也可以为了降低磁盘装置1的振动和/或消耗电力的影响,通过对所计算出的访问成本(下下次推定成本)进行加权(例如,对预定的值进行乘法运算、或除法运算),使开始头HD1的移动的盘DK的位置和/或使头HD1移动的盘DK的位置在半径方向上偏移(例如,对预定的值进行加法运算、或减法运算)来计算访问成本(下下次推定成本)等,由此调整访问成本(下下次推定成本)。
在一例中,第2旁路运算部6232利用致动器AC2所对应的剩余运算资源,基于致动器AC1所对应的重新排序信息执行对致动器AC1所对应的多个下下次预计处理命令各自的多个下下次推定成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第1重新排序运算部6221传送。此外,第2旁路运算部6232也可以利用致动器AC2所对应的剩余运算资源,基于从第1重新排序运算部6221传送的致动器AC1所对应的重新排序信息和从第2重新排序运算部6222输入的致动器AC1所对应的重新排序表,执行对致动器AC1所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第1重新排序运算部6221传送。第2旁路运算部6232也可以利用致动器AC2所对应的剩余运算资源,基于从第1重新排序运算部6221传送的致动器AC1所对应的重新排序信息和从第2重新排序运算部6222输入的各致动器AC所对应的重新排序表,执行对致动器AC1所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第1重新排序运算部6221传送。第2重新排序运算部6222以及第2旁路运算部6232例如也可以与致动器AC2所对应的运算资源对应。第2旁路运算部6232例如也可以与致动器AC2所对应的剩余运算资源对应。第2旁路运算部6232也可以包含于第2重新排序运算部6222。另外,第2旁路运算部6232也可以为了降低磁盘装置1的振动和/或消耗电力的影响,通过对所计算出的访问成本(下下次推定成本)进行加权(例如,对预定的值进行乘法运算、或除法运算),使开始头HD1的移动的盘DK的位置和/或使头HD1移动的盘DK的位置在在半径方向上偏移(例如,对预定的值进行加法运算、或减法运算)来计算访问成本(下下次推定成本)等,由此调整访问成本(下下次推定成本)。
图10是表示存储于队列Qn的队列命令的处理方法的一例的示意图。图10示出了主机100以及磁盘装置1。在图10中,磁盘装置1包含HDC60以及头HD。在图10中,HDC60包含伺服控制部610、以及命令控制部620。在图10中,命令控制部620具有预定的致动器AC、例如,致动器AC1或AC2所对应的队列Qn。在图10中,横轴表示时间。在图10中,时间随着朝向时间的横轴的箭头的前端而经过。图10示出了时间t0、以及时间t4。时间t4相当于比时间t0晚的(后的)时间。在图10中,命令Cmdn、Cmdn+1、Cmdn+2、Cmdn+3、以及Cmdn+4是预定的致动器AC所对应的命令。命令Cmdn相当于比命令Cmdn+1提早(提前)从主机100被传送至命令控制部620并存储于预定的致动器AC的队列Qn的队列命令。命令Cmdn+1相当于比命令Cmdn+2提早(提前)从主机100被传送至命令控制部620并存储于预定的致动器AC的队列Qn的队列命令。命令Cmdn+2相当于比命令Cmdn+3提早(提前)从主机100被传送至命令控制部620并存储于预定的致动器AC的队列Qn的队列命令。命令Cmdn+3相当于比命令Cmdn+4提早(提前)从主机100被传送至命令控制部620并存储于预定的致动器AC的队列Qn的队列命令。在图10中,预定的致动器AC所对应的队列Qn的QD是4。
在图10所示的例子中,磁盘装置1对队列命令Cmdn、Cmdn+1、以及Cmdn+2执行重新排序运算处理,对作为最低成本命令选择出的队列命令Cmdn+1进行处理。磁盘装置1基于队列命令Cmdn+1,开始预定的致动器AC、例如,致动器AC1(或致动器AC2)所对应的头HD的寻道动作的控制,从头HD、例如,头HD1(或头HD2)当前被配置的轨道(以下,也有时称为当前的轨道)的扇区(以下,也有时称为当前的扇区)起到由队列命令Cmdn+1指定的预定的轨道的预定的扇区而开始头HD的寻道动作。磁盘装置1在从当前的轨道起到由队列命令Cmdn+1指定的预定的轨道对头HD进行寻道时为了在预定的扇区定位头HD而进行旋转等待,在预定的扇区定位头HD时将由队列命令Cmdn+1指定的数据向该扇区写入、或将写入到由队列命令Cmdn+1指定的该扇区的数据读出。
磁盘装置1在正在对队列命令Cmdn+1进行处理的时间t0,接受从主机100传送的预定的致动器AC所对应的命令Cmdn+3。由于预定的致动器AC所对应的队列Qn的QD是4、且预定的致动器AC所对应的队列命令数是3,所以磁盘装置1将从主机100接受到的致动器AC所对应的命令Cmdn+3存储于预定的致动器AC所对应的队列Qn。磁盘装置1在对队列命令Cmdn+1进行处理时,对队列命令Cmdn、Cmdn+2、以及Cmdn+3执行重新排序运算处理,选择Cmdn来作为最低成本命令。
磁盘装置1在队列命令Cmdn+1的处理完成后的时间t4,开始Cmdn的处理。磁盘装置1基于队列命令Cmdn,开始预定的致动器AC所对应的头HD的寻道动作的控制,头HD从当前的扇区起到由队列命令Cmdn指定的预定的轨道的预定的扇区而开始头HD的寻道动作。
磁盘装置1在对队列命令Cmdn进行处理时,接受从主机100传送的预定的致动器AC所对应的命令Cmdn+4。由于预定的致动器AC所对应的队列Qn的QD是4、且预定的致动器AC所对应的队列命令数是3,所以磁盘装置1将从主机100接受到的预定的致动器AC所对应的命令Cmdn+4存储于预定的致动器AC所对应的队列Qn。
图11是表示对于图10所示的队列命令的重新排序运算处理的一例的示意图。在图11中,HDC60包含命令控制部620。在图11中,命令控制部620包含第1重新排序运算部6221(或、第2重新排序运算部6222)。在图11中,横轴表示时间,纵轴表示访问成本的计算处理的数量(以下,也有时称为访问成本计算数)。在图11的横轴中,时间随着向横轴的箭头的前端前进而经过。图11的横轴示出了时间t0、时间t1、时间t3、以及时间t4。在图11中,时间t0对应于图10所示的时间t0,时间t4对应于图10所示的时间t4。在图11中,时间t1相当于比时间t0晚的(靠后的)时间,时间t3相当于比时间t1晚的(靠后的)时间,时间t4相当于比时间t3晚的(靠后的)时间。在图11中,时间间隔OHT1相当于时间t0与时间t1的时间间隔,时间间隔CPT1相当于时间t3与时间t4的时间间隔。时间间隔OHT1相当于额外开销(overhead)产生的时间。时间间隔CPT1相当于从预定的致动器AC、例如,致动器AC1(或致动器AC2)所对应的多个下次预计处理命令中选择下次处理命令的时间。在图11的纵轴中,访问成本计算数随着向纵轴的箭头的前端前进而变大。图11的纵轴示出了访问成本计算数N1。在图11中,访问成本计算数N1相当于从时间t1起到时间t3期间能够由第1重新排序运算部6221(或、第2重新排序运算部6222)计算的访问成本计算数。图11示出了访问成本计算数相对于时间的变化(以下,也有时仅称为访问成本计算数的变化)RCL1。图11示出了HDC60。
在图11所示的例子中,第1重新排序运算部6221(或第2重新排序运算部6222)如图10所示在时间t0从主机100接受致动器AC1(或、致动器AC2)所对应的命令Cmdn+3,从时间t0起到时间间隔OHT1后的时间t1为止产生额外开销。第1重新排序运算部6221(或、第2重新排序运算部6222)从时间t1起到时间t3为止,基于致动器AC1(或致动器AC2)所对应的重新排序信息,与访问成本计算数N1相应地计算队列命令Cmdn、Cmdn+2、以及Cmdn+3各自的多个下次推定成本以及多个下下次推定成本。例如,第1重新排序运算部6221(或、第2重新排序运算部6222)在从时间t1到时间t3期间能够计算的访问成本计算数N1中,有可能无法完成队列命令Cmdn、Cmdn+2、以及Cmdn+3各自的多个下次推定成本以及多个下下次推定成本的全部计算处理。
第1重新排序运算部6221(或、第2重新排序运算部6222)在从完成了与访问成本计算数N1相应的下次推定成本以及下下次推定成本的计算处理的时间t3起到时间间隔CPT1之后的时间t4为止,基于与访问成本计算数N1相应的下次推定成本以及下下次推定成本,从多个下次预计处理命令、例如,队列命令Cmdn、Cmdn+1、以及Cmdn+2中选择队列命令Cmdn来作为下次处理命令(低成本命令或最低成本命令)。
图12是表示预定的致动器AC所对应的重新排序表ROT的一例的示意图。在图12所示的例子中,纵轴表示寻道时间,横轴表示寻道距离。在图12的纵轴中,寻道时间随着向纵轴的箭头的前端前进而时间经过。在图12的横轴中,寻道距离随着向横轴的箭头的前端前进而变大。图12示出了寻道时间相对于寻道距离的变化(以下,也有时仅称为寻道时间的变化)STL。在图12中,寻道时间的变化STL是连续的曲线,但是也可以是离散配置的多个点的集合。
HDC60(第1重新排序运算部6221、第2重新排序运算部6222、第1旁路运算部6231、以及第2旁路运算部6232等)基于图12所示的预定的致动器AC、例如,致动器AC1或AC2所对应的重新排序表ROT,对预定的致动器AC所对应的多个队列命令执行重新排序运算处理。例如,HDC60基于图12所示的预定的致动器AC所对应的重新排序表ROT、以及从预定的致动器AC所对应的头HD的预定的位置起到由预定的致动器AC所对应的多个队列命令各自指定的盘DK的多个位置为止的各自的多个距离(寻道距离)的信息等的重新排序信息,对从预定的致动器AC所对应的头HD的预定的位置起到由预定的致动器AC所对应的多个队列命令分别指定的多个位置为止的各自的多个访问成本(寻道时间)分别进行计算。此外,在图12所示的重新排序表ROT的寻道时间的变化STL是离散配置的多个点的集合的情况下,HDC60也可以在图12所示的寻道时间的变化STL中利用插补计算(例如,线性插补计算、或多项式近似计算等)算出从预定的致动器AC所对应的头HD的预定的位置起到由预定的致动器AC所对应的多个队列命令分别指定的盘DK的多个位置为止的各自的距离(寻道距离)所对应的寻道时间。
图13是表示重新排序运算处理的一例的示意图。图13示出了HDC60(命令控制部620)。HDC60(命令控制部620)包含第1重新排序运算部6221(或、第2重新排序运算部6222)。在图13中,Pos0相当于预定的致动器、例如,致动器AC1或AC2所对应的头HD、例如,头HD1或HD2的位置(扇区)。图13示出了预定的致动器AC所对应的队列所存储的下次预计处理命令CmdA、CmdB、CmdC、以及CmdD。在图13中,下次推定成本T0a相当于从位置(扇区)Pos0起到由下次预计处理命令CmdA指定的位置(扇区)为止的访问成本。下次推定成本T0b相当于从位置(扇区)Pos0起到由下次预计处理命令CmdA指定的位置(扇区)为止的访问成本。下次推定成本T0c相当于从位置(扇区)Pos0起到由下次预计处理命令CmdC指定的位置(扇区)为止的访问成本。在图13中,PosC相当于将下次预计处理命令CmdC作为下次处理命令进行了处理的情况下的预定的致动器AC、例如,致动器AC1或AC2所对应的头HD、例如,头HD1或HD2的位置(扇区)。图13中,下次推定成本Tca相当于从位置(扇区)PosC起到由下次预计处理命令CmdA指定的位置(扇区)PosA为止的访问成本。下次推定成本Tcb相当于从位置(扇区)PosC起到由下次预计处理命令CmdB指定的位置(扇区)PosB为止的访问成本。下次推定成本Tcd相当于从位置(扇区)PosC起到由下次预计处理命令CmdD指定的位置(扇区)PosD为止的访问成本。
在图13所示的例子中,第1重新排序运算部6221(或、第2重新排序运算部6222)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或头HD2)的位置Pos0对致动器AC1(或致动器AC2)所对应的下次预计处理命令CmdA、CmdB、以及CmdC各自的下次推定成本T0a、T0b、以及T0c分别进行计算。第1重新排序运算部6221(或、第2重新排序运算部6222)基于这些下次预计处理命令CmdA、CmdB、以及CmdC各自的多个下次推定成本T0a、T0b、以及T0c各自的计算结果,从这些下次预计处理命令中选择队列命令CmdC来作为下次处理命令(低成本命令或最低成本命令),将所选择出的队列命令CmdC的顺序重新排序为下一个顺序。
在图13所示的例子中,在对队列命令CmdC进行了处理之后,第1重新排序运算部6221(或、第2重新排序运算部6222)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或头HD2)的位置PosC对致动器AC1(或致动器AC2)所对应的下次预计处理命令CmdA、CmdB、以及CmdD各自的下次推定成本Tca、Tcb、以及Tcd分别进行计算。
图14是表示重新排序运算处理的一例的示意图。图14示出了HDC60(命令控制部620)。HDC60(命令控制部620)包含第1重新排序运算部6221(或、第2重新排序运算部6222)。在图14中,队列命令CmdA、CmdB、CmdC、以及CmdD分别相当于下次预计处理命令或下下次预计处理命令。在图14中,下下次推定成本Tab相当于从位置(扇区)PosA起到位置(扇区)PosB为止的访问成本。下下次推定成本Tac相当于从位置(扇区)PosA起到位置(扇区)PosC为止的访问成本。下下次推定成本Tba相当于从位置(扇区)PosB起到位置(扇区)PosA为止的访问成本。下下次推定成本Tbc相当于从位置(扇区)PosB起到位置(扇区)PosC为止的访问成本。下下次推定成本Tca相当于从位置(扇区)PosC起到位置(扇区)PosA为止的访问成本。下下次推定成本Tcb相当于从位置(扇区)PosC起到位置(扇区)PosB为止的访问成本。下下次推定成本Tad相当于从位置(扇区)PosA起到位置(扇区)PosD为止的访问成本。下下次推定成本Tbd相当于从位置(扇区)PosB起到位置(扇区)PosD为止的访问成本。下下次推定成本Tda相当于从位置(扇区)PosD起到位置(扇区)PosA为止的访问成本。下下次推定成本Tdb相当于从位置(扇区)PosD起到位置(扇区)PosB为止的访问成本。
在图14所示的例子中,第1重新排序运算部6221(或、第2重新排序运算部6222)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或、头HD2)的位置Pos0对致动器AC1(或、致动器AC2)所对应的下次预计处理命令CmdA、CmdB、以及CmdC各自的下次推定成本T0a、T0b、以及T0c分别进行计算。第1重新排序运算部6221(或、第2重新排序运算部6222)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,对从由多个下次预计处理命令CmdA、CmdB、以及CmdC分别指定的盘DK的多个位置起到由下下次预计处理命令CmdA、CmdB、以及CmdC分别指定的盘DK的多个位置为止的多个下下次推定成本Tab、Tac、Tba、Tbc、Tca、以及Tcb分别进行计算。
第1重新排序运算部6221(或、第2重新排序运算部6222)基于这些下次推定成本以及这些下下次推定成本的计算处理的结果,算出将多个下次推定成本和这些下次推定成本所分别对应的多个下下次推定成本分别相加得到的总和(以下,也有时称为总计成本)。
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本T0ab。
T0ab=k1×T0a+k2×Tab (1)
在此,k1、k2分别是加权系数。k1以及k2既可以相同也可以不同。此外,也可以没有k1、k2。
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本T0ac。
T0ac=k1×T0a+k2×Tac (2)
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本T0ba。
T0ba=k1×T0b+k2×Tba (3)
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本T0bc。
T0bc=k1×T0b+k2×Tbc (4)
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本T0ca。
T0ca=k1×T0c+k2×Tca (5)
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本T0cb。
T0cb=k1×T0c+k2×Tcb (6)
第1重新排序运算部6221(或、第2重新排序运算部6222)选择式(1)至式(6)所示的多个总计成本内的最小的总计成本(以下,也有时称为最低总计成本)T0ca所对应的下次预计处理命令CmdC来作为下次处理命令(低成本命令或最低成本命令),将所选择出的队列命令CmdC的顺序重新排序为下一个顺序。
在图14所示的例子中,在对队列命令CmdC进行了处理之后,第1重新排序运算部6221(或、第2重新排序运算部6222)计算由选择出队列命令CmdC的重新排序运算处理算出的访问成本Tca、Tcb、Tab、以及Tba以外的访问成本。
第1重新排序运算部6221(或、第2重新排序运算部6222)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或、头HD2)的位置PosC计算致动器AC1(或、致动器AC2)所对应的下次预计处理命令CmdD的下次推定成本Tcd。
第1重新排序运算部6221(或、第2重新排序运算部6222)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,计算从由下次预计处理命令CmdA指定的位置起到由下下次预计处理命令CmdD指定的位置为止的下下次推定成本Tad。第1重新排序运算部6221(或、第2重新排序运算部6222)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,计算从由下次预计处理命令CmdB指定的位置起到由下下次预计处理命令CmdD指定的位置为止的下下次推定成本Tbd。第1重新排序运算部6221(或、第2重新排序运算部6222)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,对从由下次预计处理命令CmdD指定的位置起到由下下次预计处理命令CmdA以及CmdB分别指定的盘DK的多个位置为止的多个下下次推定成本Tda以及Tdb分别进行计算。
第1重新排序运算部6221(或、第2重新排序运算部6222)基于这些下次推定成本以及这些下下次推定成本的计算处理的结果,算出将多个下次推定成本和多个下下次推定成本分别相加得到的总和(总计成本)。
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本Tcab。
Tcab=k1×Tca+k2×Tab (7)
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本Tcad。
Tcad=k1×Tca+k2×Tad (8)
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本Tcba。
Tcba=k1×Tcb+k2×Tba (9)
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本Tcbd。
Tcbd=k1×Tcb+k2×Tbd (10)
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本Tcda。
Tcda=k1×Tcd+k2×Tda (11)
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)通过以下式算出总计成本Tcdb。
Tcdb=k1×Tcd+k2×Tdb (12)
第1重新排序运算部6221(或、第2重新排序运算部6222)选择式(7)至式(12)的多个总计成本内的最小的总计成本(以下,也有时称为最低总计成本)Tcbd所对应的下次预计处理命令CmdB来作为下次处理命令(最低成本命令),将所选择出的队列命令CmdB的顺序重新排序为下一个顺序。
图15是表示对于图10所示的队列命令的旁路运算处理的一例的示意图。图15示出了HDC60。在图15中,HDC60包含命令控制部620。在图15中,命令控制部620包含第1重新排序运算部6221(或、第2重新排序运算部6222)、和第2旁路运算部632(或、第1旁路运算部6231)。在图15中,横轴表示时间,纵轴表示访问成本计算数。在图15的横轴中,时间随着向时间的箭头的前端前进而经过。图15的横轴示出了时间t0、时间t1、时间t2、时间t3、以及时间t4。在图15中,时间t0与图10所示的时间t0对应,时间t1与图11所示的时间t1对应,时间t3与图11所示的时间t3对应,时间t4与图10所示的时间t4对应。在图15中,时间t2相当于比时间t1晚的(后的)时间,时间t3相当于比时间t2晚的(后的)时间。在图15中,时间间隔CMT1相当于时间t1与时间t2的时间间隔。时间间隔CMT1相当于通信处理的时间。在图15的纵轴中,访问成本计算数随着向纵轴的箭头的前端前进而变大。图15的纵轴示出了访问成本计算数N1以及N2。访问成本计算数N2相当于第1重新排序运算部6221(或、第2重新排序运算部6222)以及第2旁路运算部(或、第1旁路运算部)的访问成本计算数的总和。访问成本计算数N2比访问成本计算数N1大。图15示出了访问成本计算数的变化RCL1以及RCL2。
图15所示的例子中,第1重新排序运算部6221(或第2重新排序运算部6222)如图10所示在时间t0从主机100接受致动器AC1(或、致动器AC2)所对应的命令Cmdn+3,从时间t0起到时间间隔OHT1后的时间t1为止产生额外开销。第1重新排序运算部6221(或、第2重新排序运算部6222)从时间t1到时间t3为止,基于致动器AC1(或致动器AC2)所对应的重新排序信息,与访问成本计算数N1相应地计算队列命令Cmdn、Cmdn+2、以及Cmdn+3各自的多个下次推定成本。例如,第1重新排序运算部6221(或、第2重新排序运算部6222)能够以从时间t1到时间t3期间能够计算的访问成本计算数N1,完成队列命令Cmdn、Cmdn+2、以及Cmdn+3各自的多个下次推定成本的计算处理。
第1重新排序运算部6221(或、第2重新排序运算部6222)从完成了与访问成本计算数N1相应的下次推定成本的时间t3起时间间隔CPT1之后的时间t4为止,基于与访问成本计算数N1相应的下次推定成本,从多个下次预计处理命令、例如,队列命令Cmdn、Cmdn+1、以及Cmdn+2中选择队列命令Cmdn来作为下次处理命令(低成本命令或最低成本命令)。
在图15所示的例子中,第2旁路运算部6232(或、第1旁路运算部6231)从时间t0起时间间隔OHT1后的时间t1为止产生额外开销。第2旁路运算部6232在从时间t1起到时间间隔CMT1后的时间t2为止执行从第1重新排序运算部6221(或、第2重新排序运算部6222)传送的致动器AC1(或、致动器AC2)所对应的重新排序信息的通信处理。第2旁路运算部6232在时间t2后,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,计算与从访问成本计算数N2减去访问成本计算数N1得到的差分值DFV相应的队列命令Cmdn、Cmdn+2、以及Cmdn+3各自的多个下下次推定成本。例如,第2旁路运算部6232(或、第1旁路运算部6231)能够以时间t2后能够计算的访问成本计算数DFV,完成队列命令Cmdn、Cmdn+2、以及Cmdn+3各自的多个下下次推定成本的计算处理。
第2旁路运算部6232(或、第1旁路运算部6231)在完成了与差分值DFV相应的多个下下次推定成本的计算处理之后,执行将与差分值DFV相应的多个下下次推定成本的计算处理结果向第1重新排序运算部6221(或、第2重新排序运算部6222)传送的通信处理。
图16是表示对于图10所示的队列命令的旁路运算处理的一例的示意图。图16示出了HDC60。在图16中,HDC60包含命令控制部620。在图16中,命令控制部620包含:第1重新排序运算部6221(或、第2重新排序运算部6222)、和第2旁路运算部632(或、第1旁路运算部6231)。在图16中,横轴表示时间,纵轴表示访问成本计算数。在图16的横轴中,随着向时间的箭头的前端前进而时间经过。图16的横轴表示时间t23。在图16中,时间t23相当于比时间t2晚的(靠后的)时间,时间t3相当于比时间t23晚的(靠后的)时间。在图16中,时间间隔CMT2相当于时间t23与时间t3的时间间隔。时间间隔CMT2相当于通信处理的时间。在图16的纵轴中,访问成本计算数随着向纵轴的箭头的前端前进而变大。
在图16所示的例子中,第1重新排序运算部6221(或第2重新排序运算部6222)如图10所示在时间t0从主机100接受致动器AC1(或、致动器AC2)所对应的命令Cmdn+3,从时间t0起到时间间隔OHT1后的时间t1为止产生额外开销。第1重新排序运算部6221(或、第2重新排序运算部6222)从时间t1到时间t3为止,基于致动器AC1(或致动器AC2)所对应的重新排序信息,计算与访问成本计算数N1相应的队列命令Cmdn、Cmdn+2、以及Cmdn+3各自的多个下次推定成本。例如,第1重新排序运算部6221(或、第2重新排序运算部6222)能够以在从时间t1到时间t3期间能够计算的访问成本计算数N1,完成队列命令Cmdn、Cmdn+2、以及Cmdn+3各自的多个下次推定成本的计算处理。
第2旁路运算部6232(或、第1旁路运算部6231)从时间t0起到时间间隔OHT1后的时间t1为止产生额外开销。第2旁路运算部6232从时间t1起到时间间隔CMT1后的时间t2为止执行从第1重新排序运算部6221(或、第2重新排序运算部6222)传送的致动器AC1(或、致动器AC2)所对应的重新排序信息的通信处理。第2旁路运算部6232从时间t2起到时间t23为止,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,计算与从访问成本计算数N2中减去访问成本计算数N1得到的差分值DFV相应的队列命令Cmdn、Cmdn+2、以及Cmdn+3各自的多个下下次推定成本。例如,第2旁路运算部6232(或、第1旁路运算部6231)能够以时间t2后能够计算的访问成本计算数DFV,完成队列命令Cmdn、Cmdn+2、以及Cmdn+3各自的多个下下次推定成本的计算处理。
第2旁路运算部6232(或、第1旁路运算部6231)在从完成与差分值DFV相应的多个下下次推定成本的计算处理后的时间t23起时间间隔CMT2后的时间t3为止,执行将与差分值DFV相应的多个下下次推定成本的计算处理结果向第1重新排序运算部6221(或、第2重新排序运算部6222)传送的通信处理。
第1重新排序运算部6221(或、第2重新排序运算部6222)从与访问成本计算数N1相应的下次推定成本的计算处理完成的时间t3起到时间间隔CPT1后的时间t4为止,基于从第2旁路运算部6232(或、第1旁路运算部6231)接受到的与差分值DFV相应的下下次推定成本的计算处理结果和与访问成本计算数N1相应的下次推定成本的计算处理结果,基于与访问成本计算数N2相应的下次推定成本以及下下次推定成本,从多个下次预计处理命令、例如,队列命令Cmdn、Cmdn+1、以及Cmdn+2中选择队列命令Cmdn来作为下次处理命令(低成本命令或最低成本命令)。
图17是表示旁路运算处理的一例的示意图。图17示出了HDC60(命令控制部620)。HDC60(命令控制部620)包含:第1重新排序运算部6221(或、第2重新排序运算部6222)、和第2旁路运算部6232(或、第1旁路运算部6231)。在图17中,队列命令CmdA、CmdB、CmdC、以及CmdD分别相当于下次预计处理命令或下下次预计处理命令。
在一例中,第1重新排序运算部6221(或、第2重新排序运算部6222)如图17所示,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或头HD2)的位置Pos0对致动器AC1(或致动器AC2)所对应的下次预计处理命令CmdA、CmdB、以及CmdC各自的下次推定成本T0a、T0b、以及T0c分别进行计算。第1重新排序运算部6221(或、第2重新排序运算部6222)基于这些下次预计处理命令各自的多个下次推定成本T0a、T0b、以及T0c各自的计算结果,从这些下次预计处理命令中选择队列命令CmdC来作为下次处理命令(低成本命令或最低成本命令),将所选择出的队列命令CmdC的顺序重新排序为下一个顺序。
第2旁路运算部6232(或、第1旁路运算部6231)如图17所示,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,对从由多个下次预计处理命令CmdA、CmdB、以及CmdC分别指定的盘DK的多个位置起到由下下次预计处理命令CmdA、CmdB、以及CmdC分别指定的盘DK的多个位置为止的下下次推定成本Tab、Tac、Tba、Tbc、Tca、以及Tcb分别进行计算。第2旁路运算部6232(或、第1旁路运算部6231)如图17所示,将多个下下次推定成本的计算结果、例如,下下次推定成本Tab、Tac、Tba、Tbc、Tca、以及Tcb向第1重新排序运算部6221(或、第2重新排序运算部6222)传送。
在对队列命令CmdC进行了处理之后,第1重新排序运算部6221(或、第2重新排序运算部6222)计算在选择了队列命令CmdC的重新排序运算处理中由第2旁路运算部6232(或、第1旁路运算部6231)算出的访问成本Tca以及Tcb以外的访问成本。
第1重新排序运算部6221(或、第2重新排序运算部6222)如图17所示,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或头HD2)的位置PosC计算致动器AC1(或致动器AC2)所对应的下次预计处理命令CmdD的下次推定成本Tcd。第1重新排序运算部6221(或、第2重新排序运算部6222)基于多个下次预计处理命令、例如,CmdA、CmdB、以及CmdD各自的多个下次推定成本Tca、Tcb、以及Tcd各自的计算结果,从这些下次预计处理命令中选择队列命令CmdB来作为下次处理命令(低成本命令或最低成本命令),将所选择出的队列命令CmdB的顺序重新排序为下一个顺序。
在由第1重新排序运算部6221(或、第2重新排序运算部6222)对队列命令CmdC进行了处理之后,第2旁路运算部6232(或、第1旁路运算部6231)计算在由第1重新排序运算部6221(或、第2重新排序运算部6222)选择了队列命令CmdC的重新排序运算处理中算出的访问成本Tab以及Tba以外的访问成本。
第2旁路运算部6232(或、第1旁路运算部6231),如图15所示,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,计算从由下次预计处理命令CmdA指定的位置起到由下下次预计处理命令CmdD指定的位置为止的下下次推定成本Tad。第2旁路运算部6232(或、第1旁路运算部6231)如图15所示,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,计算从由下次预计处理命令CmdB指定的位置起到由下下次预计处理命令CmdD指定的位置为止的下下次推定成本Tbd。第2旁路运算部6232(或、第1旁路运算部6231)如图15所示,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,对从由下次预计处理命令CmdD指定的位置起到由多个下下次预计处理命令CmdA以及CmdB分别指定的盘DK的多个位置为止的多个下下次推定成本Tda以及Tdb分别进行计算。
在一例中,第1重新排序运算部6221(或、第2重新排序运算部6222)如图16所示,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或、头HD2)的位置Pos0对致动器AC1(或、致动器AC2)所对应的下次预计处理命令CmdA、CmdB、以及CmdC各自的下次推定成本T0a、T0b、以及T0c分别进行计算。
第2旁路运算部6232(或、第1旁路运算部6231)如图16所示,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,对从由多个下次预计处理命令CmdA、CmdB、以及CmdC分别指定的盘DK的多个位置起到由下下次预计处理命令CmdA、CmdB、以及CmdC分别指定的盘DK的多个位置为止的多个下下次推定成本Tab、Tac、Tba、Tbc、Tca、以及Tcb分别进行计算。第2旁路运算部6232(或、第1旁路运算部6231)如图16所示,将多个下下次推定成本的计算结果、例如,下下次推定成本Tab、Tac、Tba、Tbc、Tca、以及Tcb向第1重新排序运算部6221(或、第2重新排序运算部6222)传送。
第1重新排序运算部6221(或、第2重新排序运算部6222)基于多个下次推定成本和从第2旁路运算部6232(或、第1旁路运算部6231)接受到的多个下下次推定成本的计算结果,算出将多个下次推定成本和多个下次推定成本所分别对应的多个下下次推定成本分别相加后的总和(总计成本)。
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)选择由式(1)至式(6)表示的多个总计成本内的最小的总计成本(以下,也有时称为最低总计成本)T0ca所对应的下次预计处理命令CmdC来作为下次处理命令(低成本命令或最低成本命令),将所选择出的队列命令CmdC的顺序重新排序为下一个顺序。
在对队列命令CmdC进行了处理之后,第1重新排序运算部6221(或、第2重新排序运算部6222)计算由选择了队列命令CmdC的重新排序运算处理算出的访问成本Tca以及Tcb以外的访问成本。
第1重新排序运算部6221(或、第2重新排序运算部6222)如图16所示,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或、头HD2)的位置PosC计算致动器AC1(或、致动器AC2)所对应的下次预计处理命令CmdD的下次推定成本Tcd。
在由第1重新排序运算部6221(或、第2重新排序运算部6222)对队列命令CmdC进行了处理之后,第2旁路运算部6232(或、第1旁路运算部6231)计算由第1重新排序运算部6221(或、第2重新排序运算部6222)选择了队列命令CmdC的重新排序运算处理中算出的访问成本Tab以及Tba以外的访问成本。
第1旁路运算部6231(或、第2旁路运算部6232)如图16所示,基于致动器AC1(或、致动器AC2)所对应的重新排序信息,计算从由下次预计处理命令CmdA指定的位置起到由下下次预计处理命令CmdD指定的位置为止的下下次推定成本Tad。第1旁路运算部6231(或、第2旁路运算部6232)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,计算从由下次预计处理命令CmdB指定的位置起到由下下次预计处理命令CmdD指定的位置为止的下下次推定成本Tbd。第1旁路运算部6231(或、第2旁路运算部6232)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,对从由下次预计处理命令CmdD指定的位置起到由下下次预计处理命令CmdA以及CmdB分别指定的盘DK的多个位置为止的多个下下次推定成本Tda以及Tdb分别进行计算。第2旁路运算部6232(或、第1旁路运算部6231)如图16所示,将多个下下次推定成本的计算结果、例如,下下次推定成本Tad、Tbd、Tda、以及Tdb向第1重新排序运算部6221(或、第2重新排序运算部6222)传送。
第1重新排序运算部6221(或、第2重新排序运算部6222)基于这些下次推定成本以及这些下下次推定成本的计算处理的结果,算出将多个下次推定成本和多个下下次推定成本分别相加后的总和(总计成本)。
例如,第1重新排序运算部6221(或、第2重新排序运算部6222)选择由式(7)至式(12)表示的多个总计成本内的最小的总计成本(以下,最低总计成本也有时称为)Tcbd所对应的下次预计处理命令CmdB来作为下次处理命令(最低成本命令),将所选择出的队列命令CmdB的顺序重新排序为下一个顺序。
图18是表示旁路运算处理的一例的示意图。图18示出了HDC60(命令控制部620)。HDC60(命令控制部620)包含第1重新排序运算部6221(或、第2重新排序运算部6222)、和第2旁路运算部6232(或、第1旁路运算部6231)。在图18中,队列命令CmdA、CmdB、以及CmdC分别相当于下次预计处理命令。
在图18所示的例子中,第1重新排序运算部6221(或、第2重新排序运算部6222)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或头HD2)的位置Pos0对致动器AC1(或致动器AC2)所对应的下次预计处理命令CmdA以及CmdB各自的下次推定成本T0a以及T0b分别进行计算。
第2旁路运算部6232(或、第1旁路运算部6231)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或头HD2)的位置Pos0计算致动器AC1(或致动器AC2)所对应的下次预计处理命令CmdC的下次推定成本T0c。第2旁路运算部6232(或、第1旁路运算部6231)将下次推定成本的计算结果、例如,下次推定成本T0c向第1重新排序运算部6221(或、第2重新排序运算部6222)传送。
第1重新排序运算部6221(或、第2重新排序运算部6222)基于这些下次预计处理命令CmdA、CmdB、以及CmdC各自的多个下次推定成本T0a、T0b、以及T0c各自的计算结果,从这些下次预计处理命令中选择队列命令CmdC来作为下次处理命令(低成本命令或最低成本命令),将所选择出的队列命令CmdC的顺序重新排序为下一个顺序。
在图18所示的例子中,第1重新排序运算部6221(或、第2重新排序运算部6222)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或头HD2)的位置PosC对致动器AC1(或致动器AC2)所对应的下次预计处理命令CmdA以及CmdB各自的下次推定成本Tca以及Tcb分别进行计算。
第2旁路运算部6232(或、第1旁路运算部6231)基于致动器AC1(或、致动器AC2)所对应的重新排序信息,根据头HD1(或头HD2)的位置PosC计算致动器AC1(或致动器AC2)所对应的下次预计处理命令CmdD的下次推定成本Tcd。第2旁路运算部6232(或、第1旁路运算部6231)将下次推定成本的计算结果、例如,下次推定成本Tcd向第1重新排序运算部6221(或、第2重新排序运算部6222)传送。
图19是表示本实施方式的重新排序运算处理的方法的一例的流程图。
系统控制器130对多个致动器AC所分别对应的多个队列命令数进行计数(B1901)。例如,系统控制器130对致动器AC1所对应的队列命令数、和致动器AC2所对应的队列命令数分别进行计数。系统控制器130对多个致动器AC所分别对应的多个队列命令数的等级分别进行判定(B1902)。系统控制器130基于多个致动器AC所分别对应的多个队列命令数的等级判定旁路运算处理是有效还是无效(B1903)。在判定为旁路运算处理并非是有效、也即是、无效的情况下(B1903的否),系统控制器130结束处理。在判定为旁路运算处理是有效的情况下(B1903的是),系统控制器130传送重新排序信息(B1904)。例如,在判定为利用致动器AC2(或、致动器AC1)所对应的剩余运算资源实现的旁路运算处理是有效的情况下,系统控制器130将致动器AC1(或、致动器AC2)所对应的重新排序信息从第1重新排序运算部6221(或、第2重新排序运算部6222)向第2旁路运算部6232(或、第1旁路运算部6231)传送。系统控制器130执行旁路运算处理(B1905)。例如,系统控制器130利用致动器AC2(或、致动器AC1)所对应的剩余运算资源,基于从第1重新排序运算部6221(或、第2重新排序运算部6222)传送的致动器AC1(或、致动器AC2)所对应的重新排序信息,执行对致动器AC1(或、致动器AC2)所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理。系统控制器130传送旁路运算处理的运算结果(B1906),结束处理。例如,在由第2旁路运算部6232(或、第1旁路运算部6231)执行了旁路运算处理的情况下,系统控制器130将由第2旁路运算部6232(或、第1旁路运算部6231)执行了的旁路运算处理的运算结果向第1重新排序运算部6221(或、第2重新排序运算部6222)传送。
根据本实施方式,磁盘装置1具有多个致动器AC。磁盘装置1对多个致动器AC所分别对应的队列命令数进行计数。磁盘装置1对多个致动器AC所分别对应的多个队列命令数的等级分别进行判定。磁盘装置1基于多个致动器AC所分别对应的多个队列命令数的等级判定旁路运算处理是有效还是无效。在判定为使用了多个致动器内的队列命令数的等级是低等级的致动器AC所对应的剩余运算资源的旁路运算处理是有效的情况下,磁盘装置1将多个致动器内的队列命令数的等级是高等级的致动器AC所对应的重新排序信息向队列命令数的等级是低等级的致动器AC的剩余运算资源传送。磁盘装置1基于队列命令数的等级是高等级的致动器AC所对应的重新排序信息,利用队列命令数的等级是低等级的致动器AC的剩余运算资源执行旁路运算处理。磁盘装置1将利用队列命令数的等级是低等级的致动器AC的剩余运算资源实现的旁路运算处理的运算结果向队列命令数的等级是高等级的致动器AC的运算资源传送。磁盘装置1能够使预定的时间内的访问成本计算数增加。因此,磁盘装置1能够提高访问性能。
接着,对第1实施方式的变形例的磁盘装置进行说明。在变形例中,对与前述的实施方式相同的部分标注同一参照标号且省略其详细说明。
(变形例1)
变形例1的磁盘装置1的构成与前述的第1实施方式的构成不同。
图20是表示变形例1的磁盘装置1的构成的一例的示意图。
磁盘装置1还具备控制器通信部150。
驱动器IC20具有驱动器IC20A以及IC20B。驱动器IC20A例如控制SPM13以及VCM141的驱动。驱动器IC20A与SPM13以及VCM141电连接。驱动器IC20A具备:SPM控制部210、第1VCM控制部221、第1MA控制部231。此外,驱动器IC20A也可以无法控制SPM13的驱动。在不控制SPM13的驱动的情况下,驱动器IC20A也可以不与SPM13电连接,且也可以不具备SPM控制部210。驱动器IC20B例如控制VCM142的驱动,具备第2VCM控制部222和第2MA控制部232。驱动器IC20B与VCM142电连接。此外,驱动器IC20B也可以不控制SPM13的驱动。在控制SPM13的驱动的情况下,驱动器IC20B也可以与SPM13电连接,且也可以具备SPM控制部210。
头放大器IC30具有头放大器IC30A以及30B。头放大器IC30A例如对从盘DK1读出的读信号进行放大,并向后述的系统控制器130A(详细而言,后述的R/W通道40A)输出。头放大器IC30A例如与头HD1电连接。头放大器IC30A将与从R/W通道40A输出的信号相应的写电流向头HD1输出。头放大器IC30A具备:第1读头选择部321、和第1读信号检测部331。头放大器IC30B例如对从盘DK2读出的读信号进行放大,并向后述的系统控制器130B(详细而言,后述的R/W通道40B)输出。头放大器IC30B例如与头HD2电连接。头放大器IC30B将与从R/W通道40B输出的信号相应的写电流向头HD2输出。头放大器IC30B具备第2读头选择部322和第2读信号检测部332。
系统控制器130具有系统控制器130A以及130B。系统控制器130A包含:R/W通道40所包含的R/W通道40A、MPU50所包含的MPU50A、HDC60所包含的HDC60A。
系统控制器130A与驱动器IC20A、头放大器IC30A、易失性存储器70、缓冲存储器80、非易失性存储器90、主机100、以及控制器通信部150电连接。此外,系统控制器130A也可以具有SPM控制部210、第1VCM控制部221、第1MA控制部231、第1读头选择部321、以及第1读信号检测部331。系统控制器130A也可以包含驱动器IC20A以及头放大器IC30A。另外,系统控制器130A也可以不与易失性存储器70、缓冲存储器80、以及非易失性存储器90连接。
R/W通道40A包含于R/W通道40。R/W40A根据来自后述的MPU50A的指示,执行从盘DK1传送至主机100的读数据以及从主机100传送的写数据的信号处理。R/W通道40A例如与头放大器IC30A、MPU50A、以及HDC60A等电连接。
MPU50A经由驱动器IC20A控制致动器AC1,执行进行头HD1的定位的伺服控制。MPU50A控制向盘DK1的数据的写动作、并且选择写入数据的保存目的地。另外,MPU50A控制从盘DK1的数据的读动作、并且控制读数据的处理。MPU50A与磁盘装置1的各部连接。MPU50A例如与驱动器IC20A、R/W通道40A、以及HDC60A等电连接。
HDC60A根据来自MPU50A的指示,控制读/写处理,控制主机100与R/W通道40A之间的数据传送。HDC60A例如与R/W通道40A、MPU50A、易失性存储器70、缓冲存储器80、非易失性存储器90、以及控制器通信部150等电连接。此外,HDC60A也可以不与易失性存储器70、缓冲存储器80、以及非易失性存储器90电连接。
HDC60A具备伺服控制部610所包含的伺服控制部610A、以及命令控制部620所包含的命令控制部620A。HDC60A在固件上执行这些各部、例如,伺服控制部610A、以及命令控制部620A等的处理。此外,HDC60A也可以具备这些各部来作为电路。另外,HDC60A的构成的一部分也可以不为MPU50A所具备。例如,伺服控制部610A、以及命令控制部620A也可以设置于MPU50A。
伺服控制部610A控制头HD1的位置。换言之,伺服控制部610A对向盘DK1的预定的区域的利用头HD1实现的访问进行控制。伺服控制部610A具有循轨控制部6101所包含的循轨控制部6101A、和寻道控制部6102所包含的寻道控制部6102A。循轨控制部6101A对向盘DK1的预定的轨道的头HD1的循轨进行控制。寻道控制部6102A对在盘DK1中从预定的轨道向作为目标的轨道的头HD1的寻道进行控制。
命令控制部620A包含于命令控制部620。命令控制部620A具有:存储部6201所包含的存储部6201A、命令数判定部6202所包含的命令数判定部6202A、旁路运算判定部6211所包含的旁路运算判定部6211A、第1重新排序运算部6221、第1旁路运算部6231。存储部6201A将从主机100等接受到的致动器AC1所对应的命令存储于致动器AC1所对应的队列。命令数判定部6202A根据致动器AC1所对应的队列命令数判定致动器AC1所对应的队列命令数的等级。此外,命令控制部620A也可以具有:存储部6201A、命令数判定部6202A、旁路运算判定部6211A、第1重新排序运算部6221、第1旁路运算部6231、第2重新排序运算部6222、第2旁路运算部6232。另外,命令控制部620A也可以不具有旁路运算判定部6211A。
系统控制器130B包含:R/W通道40所包含的R/W通道40B、MPU50所包含的MPU50B、HDC60所包含的HDC60B。系统控制器130B与驱动器IC20B、头放大器IC30B、主机100、以及控制器通信部150电连接。此外,系统控制器130B也可以具有:第2VCM控制部222、第2MA控制部232、第2读头选择部322、以及第2读信号检测部332。系统控制器130B也可以包含驱动器IC20B以及头放大器IC30B。另外,系统控制器130B也可以与易失性存储器70、缓冲存储器80、以及非易失性存储器90连接。
R/W通道40B包含于R/W通道40。R/W40B根据来自后述的MPU50B的指示,执行从盘DK2传送至主机100的读数据以及从主机100传送的写数据的信号处理。R/W通道40B例如与头放大器IC30B、MPU50B、以及HDC60B等电连接。
MPU50B经由驱动器IC20B控制致动器AC2,执行进行头HD2的定位的伺服控制。MPU50B控制向盘DK2的数据的写动作、并且选择写入数据的保存目的地。另外,MPU50B控制来自盘DK2的数据的读动作、并且控制读数据的处理。MPU50B与磁盘装置1的各部连接。MPU50B例如与驱动器IC20B、R/W通道40B、以及HDC60B等电连接。
HDC60B根据来自MPU50B的指示,控制读/写处理,控制主机100与R/W通道40B之间的数据传送。HDC60B例如与R/W通道40B、MPU50B、以及控制器通信部150等电连接。此外,HDC60B也可以与易失性存储器70、缓冲存储器80、以及非易失性存储器90电连接。
HDC60B具备伺服控制部610所包含的伺服控制部610B、以及命令控制部620所包含的命令控制部620B。HDC60B在固件上执行这些各部、例如,伺服控制部610B、以及命令控制部620B等的处理。此外,HDC60B也可以具备这些各部来作为电路。另外,HDC60B的构成的一部分也可以不为MPU50B所具备。例如,伺服控制部610B、以及命令控制部620B也可以设置于MPU50B。
伺服控制部610B控制头HD2的位置。换言之,伺服控制部610B控制向盘DK2的预定的区域的由头HD2实现的访问。伺服控制部610B具有循轨控制部6101所包含的循轨控制部6101B、和寻道控制部6102所包含的寻道控制部6102B。循轨控制部6101B控制向盘DK1的预定的轨道的头HD2的循轨。寻道控制部6102B对在盘DK2中从预定的轨道向作为目标的轨道的头HD2的寻道进行控制。
命令控制部620B包含于命令控制部620。命令控制部620B具有:存储部6201所包含的存储部6201B、命令数判定部6202所包含的命令数判定部6202B、旁路运算判定部6211所包含的旁路运算判定部6211B、第2重新排序运算部6222、以及第2旁路运算部6232。存储部6201B将从主机100等接受到的致动器AC2所对应的命令存储于致动器AC2所对应的队列。命令数判定部6202B根据致动器AC2所对应的队列命令数判定致动器AC2所对应的队列命令数的等级。此外,命令控制部620B也可以具有存储部6201B、命令数判定部6202B、第1重新排序运算部6221、第1旁路运算部6231、第2重新排序运算部6222、第2旁路运算部6232。
控制器通信部150控制系统控制器130、例如,系统控制器130A以及130B之间的信息的传送。控制器通信部150具有通信部6212。此外,系统控制器130也可以具有R/W通道40A以及40B、MPU50A以及50B、HDC60A以及60B、控制器通信部150。
根据变形例1,磁盘装置1具备:多个致动器AC、多个致动器所分别对应的多个驱动器IC20、多个致动器所分别对应的多个头放大器IC3、多个致动器AC所分别对应的多个系统控制器130、对多个系统控制器之间的信息、例如,重新排序信息等的传送进行控制的控制器通信部150。磁盘装置1能够使预定的时间内的访问成本计算数增加。因此,磁盘装置1能够提高访问性能。
(变形例2)
变形例2的磁盘装置1与前述的第1实施方式以及变形例1的磁盘装置1的不同之处在于,在多个轴承BR分别设置多个致动器AC。
图21是表示变形例2的磁盘装置1的构成的一例的示意图。
在图21所示的例子中,头HD还具有头HD3以及HD4。头HD1以及头HD3例如以主轴12为轴而对称设置。头HD3例如具有:与盘DK1的主面相对向的头HD3、和与盘DK1的对向面相对向的头HD3。此外,头HD3也可以仅具有1个头HD3,也可以具有3个以上的头HD3。头HD3具有向盘DK1写入数据的写头WH3、和将写入到盘DK1的数据读出的读头RH3。头HD4例如具有与盘DK2的主面相对向的头HD4、和与盘DK2的对向面相对向的头HD4。此外,头HD4也可以仅具有1个头HD4,也可以具有3个以上的头HD4。头HD4具有向盘DK4写入数据的写头WH4、和将写入到盘DK4的数据读出的读头RH4。
在图21所示的例子中,致动器块BK还包含致动器块BK3以及BK4。致动器块BK3以及BK4以能够旋转的方式安装于立设于底壁HSB的轴承BR2。致动器块BK4位于底壁HSB和致动器块BK3之间。轴承BR1以及轴承BR2彼此立设于底壁HSB的不同的位置。轴承BR1以及轴承BR2例如以主轴12为轴对称而设置。
在图21所示的例子中,臂AM还具有臂AM3以及AM4。臂AM1以及臂AM3例如以主轴12为轴对称而设置。臂AM3例如具有位于盘DK1的主面侧的臂AM3、和位于盘DK1的对向面侧的臂AM3。此外,臂AM3也可以与头HD3的数量相应地仅具有1个臂AM3,也可以具有3个以上的臂AM3。臂AM3与致动器块BK3连接。臂AM2以及臂AM4例如以主轴12为轴对称而设置。臂AM4例如具有位于盘DK2的主面侧的臂AM4、和位于盘DK2的对向面侧的臂AM4。此外,臂AM4也可以与头HD4的数量相应地仅具有1个臂AM4,也可以具有3个以上的臂AM4。臂AM4与致动器块BK4连接。
在图21所示的例子中,VCM14还具有VCM143以及144。VCM143在致动器块BK3中连接于与臂AM3相反一侧。VCM144在致动器块BK4中连接于与臂AM4相反一侧。
在图21所示的例子中,MA15还包含MA153以及154。MA153例如具有:安装于位于盘DK1的主面侧的臂AM3、且搭载与盘DK1的主面相对向的头HD3的MA153、和安装于位于盘DK1的对向面侧的臂AM3、且搭载与盘DK1的对向面侧相对向的头HD3的MA153。此外,MA153也可以与头HD3的数量相应地仅具有1个MA153,也可以具有3个以上的MA153。MA153安装于与致动器块BK3连接的臂AM3的一端部相反一侧的臂AM3的前端部。MA153对与臂AM3连接的一端部相反一侧的臂AM3的动作进行微细控制。例如,MA153对在半径方向上的头HD3的动作进行与由VCM143实现的半径方向的头HD3的动作相比更加微细地控制。MA154例如具有:安装于位于盘DK2的主面侧的臂AM4、且搭载与盘DK2的主面相对向的头HD4的MA154、和安装于位于盘DK1的对向面侧的臂AM4、且搭载与盘DK2的对向面侧相对向的头HD4的MA154。此外,MA154也可以与头HD4的数量相应地仅具有1个MA154,也可以具有3个以上的MA154。MA154安装于与致动器块BK4连接的臂AM4的一端部相反一侧的臂AM4的前端部。MA154对与臂AM4连接的一端部相反一侧的臂AM4的动作进行微细控制。例如,MA154对在半径方向上的头HD4的动作进行与由VCM144实现的半径方向的头HD4的动作相比更加微细地控制。
在图21所示的例子中,致动器AC还具有致动器AC3以及AC4。致动器AC3以能够自由旋转的方式安装于轴承BR2。致动器AC3由MA153、臂AM3、致动器块BK3、以及VCM143构成。致动器AC3通过绕轴承BR2的旋转轴驱动VCM143,且对MA153进行微细驱动,由此将搭载于MA153的头HD3定位在盘DK1的预定的位置。此外,在不具备MA153的情况下,致动器AC3通过围绕轴承BR2驱动VCM143,将搭载于臂AM3的头HD3定位在盘DK1的预定的位置。致动器AC4以能够自由旋转的方式安装于轴承BR2。致动器AC4由MA154、臂AM4、致动器块BK4、以及VCM144构成。致动器AC4通过绕轴承BR2的旋转轴驱动VCM144,且对MA154进行微细驱动,将搭载于MA154的头HD4定位在盘DK2的预定的位置。此外,在不具备MA154的情况下,致动器AC4通过绕轴承BR2驱动VCM144,将搭载于臂AM4的头HD4定位在盘DK2的预定的位置。
驱动器IC20按照系统控制器130(详细而言,后述的MPU50或HDC60)的控制,控制SPM12以及VCM14(VCM141、142、143、以及144)的驱动。驱动器IC20与SPM13以及VCM14(VCM141、142、143、以及144)电连接。驱动器IC20还具备:第3VCM控制部223、第4VCM控制部224、第3微致动器(MA)控制部233、第4微致动器(MA)控制部234。第3VCM控制部223通过控制向VCM143供给的电流(或电压)来控制VCM143的驱动。第4VCM控制部224通过控制向VCM144供给的电流(或电压)来控制VCM144的驱动。第3MA控制部233通过控制向MA153供给的电流(或电压)来控制MA153的驱动。第4MA控制部234通过控制向MA154供给的电流(或电压)来控制MA154的驱动。此外,驱动器IC20的构成的一部分(例如,第3VCM控制部223、第4VCM控制部224、第3MA控制部233、以及第4MA控制部234)也可以不为系统控制器130所具备。另外,在致动器AC3不具备MA153、且致动器AC4不具备MA154的情况下,也可以没有第3MA控制部233以及第4MA控制部234。
头放大器IC30还具备:第3读头选择部323、第4读头选择部324、第3读信号检测部333、第4读信号检测部334。第3读头选择部323在致动器AC3中选择从盘DK3读出数据的读头RH3。第4读头选择部324在致动器AC4中选择从盘DK2读出数据的读头RH4。第3读信号检测部333检测由读头RH3从盘DK3读出的信号。第4读信号检测部334检测由读头RH4从盘DK2读出的信号。此外,头放大器IV30的构成的一部分(例如,第3读头选择部323、第4读头选择部324、第3读信号检测部333、以及第4读信号检测部334)也可以不为系统控制器130所具备。
命令控制部620还具有:执行致动器AC3所对应的多个队列命令的重新排序运算处理的第3重新排序运算部6223、执行致动器AC4所对应的多个队列命令的重新排序运算处理的第4重新排序运算部6224、利用致动器AC3所对应的剩余运算资源执行旁路运算处理的第3旁路运算部6233、利用致动器AC4所对应的剩余运算资源执行旁路运算处理的第4旁路运算部6234。
第1重新排序运算部6221例如在被输入了使利用致动器AC3或AC4所对应的剩余运算资源实现的旁路运算成为有效的有效标志和将致动器AC1所对应的重新排序信息向第3旁路运算部6233或第4旁路运算部6234传送的传送方向标志的情况下,经由通信部6212将致动器AC1所对应的重新排序信息向第3旁路运算部6233或第4旁路运算部6234传送。
第2重新排序运算部6222例如在被输入了使利用致动器AC3或AC4所对应的剩余运算资源实现的旁路运算成为有效的有效标志和将致动器AC2所对应的重新排序信息向第3旁路运算部6233或第4旁路运算部6234传送的传送方向标志的情况下,经由通信部6212将致动器AC1所对应的重新排序信息向第3旁路运算部6233或第4旁路运算部6234传送。
第3重新排序运算部6223例如在被输入了使利用致动器AC1、AC2、或AC4所对应的剩余运算资源实现的旁路运算成为有效的有效标志和将致动器AC3所对应的重新排序信息向第1旁路运算部6231、第2旁路运算部6232、或第4旁路运算部6234传送的传送方向标志的情况下,经由通信部6212将致动器AC3所对应的重新排序信息向第1旁路运算部6231、第2旁路运算部6232、或第4旁路运算部6234传送。
第4重新排序运算部6224例如在被输入了使利用致动器AC1、AC2、或AC3所对应的剩余运算资源实现的旁路运算成为有效的有效标志和将致动器AC4所对应的重新排序信息向第1旁路运算部6231、第2旁路运算部6232、或第3旁路运算部6233传送的传送方向标志的情况下,经由通信部6212将致动器AC4所对应的重新排序信息向第1旁路运算部6231、第2旁路运算部6232、第3旁路运算部6233、或第4旁路运算部6234传送。
例如,第1旁路运算部6231利用致动器AC1所对应的剩余运算资源,基于从第3重新排序运算部6223或第4重新排序运算部6224传送的致动器AC3或AC4所对应的重新排序信息,执行对致动器AC3或AC4所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第3重新排序运算部6223或第4重新排序运算部6224传送。
例如,第2旁路运算部6232利用致动器AC2所对应的剩余运算资源,基于从第3重新排序运算部6223或第4重新排序运算部6224传送的致动器AC3或AC4所对应的重新排序信息,执行对致动器AC3或AC4所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第3重新排序运算部6223或第4重新排序运算部6224传送。
例如,第3旁路运算部6233利用致动器AC3所对应的剩余运算资源,基于从第1重新排序运算部6221、第2重新排序运算部6222、或第4重新排序运算部6224传送的致动器AC1、AC2、或AC4所对应的重新排序信息,执行对致动器AC1、AC2、或AC4所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第1重新排序运算部6221、第2重新排序运算部6222、或第4重新排序运算部6224传送。此外,第3旁路运算部6233也可以不包含于第3重新排序运算部6223。
例如,第4旁路运算部6234利用致动器AC4所对应的剩余运算资源,基于从第1重新排序运算部6221、第2重新排序运算部6222、或第3重新排序运算部6223传送的致动器AC1、AC2、或AC3所对应的重新排序信息,执行对致动器AC1、AC2、或AC3所对应的多个队列命令各自的多个访问成本分别进行计算的旁路运算处理,经由通信部6212将旁路运算处理的运算结果向第1重新排序运算部6221、第2重新排序运算部6222、或第3重新排序运算部6223传送。此外,第4旁路运算部6234也可以不包含于第4重新排序运算部6224。
根据变形例2,磁盘装置1还具备:以自由旋转的方式安装于相对于轴承BR1以主轴12为轴对称而设置的轴承BR2的致动器AC3以及AC4、执行致动器AC3所对应的多个队列命令的重新排序运算处理的第3重新排序运算部6223、执行致动器AC4所对应的多个队列命令的重新排序运算处理的第4重新排序运算部6224、利用致动器AC3所对应的剩余运算资源执行旁路运算处理的第3旁路运算部6233、利用致动器AC4所对应的剩余运算资源执行旁路运算处理的第4旁路运算部6234。磁盘装置1能够使预定的时间内的访问成本计算数增加。因此,磁盘装置1能够提高访问性能。
对几个实施方式进行了说明,但这些实施方式是作为例子进行了提示,并不意在限定发明的范围。这些新的实施方式能够以其他各种方式实施,在不脱离发明的要旨的范围内能够进行各种省略、替换、变更。这些实施方式及其变形包含于发明的范围和要旨中,并且包含在专利申请的权利要求范围所记载的发明和与其均等的范围中。
Claims (16)
1.一种磁盘装置,具备:
第1盘;
第2盘;
第1头,对所述第1盘写入数据,从所述第1盘读出数据;
第2头,对所述第2盘写入数据,从所述第2盘读出数据;
第1致动器,具有所述第1头;
第2致动器,具有所述第2头;
第1运算部,执行所述第1致动器所对应的第1队列所存储的命令的第1重新排序处理;以及
第2运算部,执行所述第2致动器所对应的第2队列所存储的命令的第2重新排序处理,
所述第1运算部在用于执行所述第1重新排序处理的第1运算资源存在空余的情况下,执行所述第2重新排序处理,
所述第2运算部在用于执行所述第2重新排序处理的第2运算资源存在空余的情况下,执行所述第1重新排序处理。
2.根据权利要求1所述的磁盘装置,
所述第1运算部在所述第1队列所存储的命令数是第1下限值以下、且所述第2队列所存储的命令数是第1上限值以上的情况下,执行所述第2重新排序处理,
所述第2运算部在所述第2队列所存储的命令数是第2下限值以下、且所述第1队列所存储的命令数是第2上限值以上的情况下,执行所述第1重新排序处理。
3.根据权利要求2所述的磁盘装置,
所述第1运算部在所述第2队列所存储的命令数是所述第2下限值以下、且所述第1队列所存储的命令数是所述第2上限值以上的情况下,将用于进行所述第1重新排序处理的第1信息向所述第2运算部传送,
所述第2运算部在所述第1队列所存储的命令数是第1下限值以下、且所述第2队列所存储的命令数是第1上限值以上的情况下,将用于进行所述第2重新排序处理的第2信息向所述第1运算部传送。
4.根据权利要求3所述的磁盘装置,
所述第1信息包含:配置有所述第1头的所述第1盘的数据扇区的位置的信息、和由所述第1队列所存储的多个命令分别指定的所述第1盘的多个数据扇区的位置的信息,
所述第2信息包含:配置有所述第2头的所述第2盘的数据扇区的位置的信息、和由所述第2队列所存储的多个命令分别指定的所述第2盘的多个数据扇区的位置的信息。
5.根据权利要求2所述的磁盘装置,
所述第1下限值比所述第1上限值小,所述第2下限值比所述第2上限值小。
6.根据权利要求2所述的磁盘装置,
所述第1下限值以及所述第2下限值是零。
7.根据权利要求1至6中任一项所述的磁盘装置,
所述第1运算部基于所述第2队列所存储的多个命令,计算与从所述第2队列所存储的多个命令所分别对应的多个数据扇区的位置起将所述第2头分别配置到所述第2队列所存储的多个命令内的多个不同的命令所分别对应的多个不同的数据扇区的位置为止的时间相当的多个第1访问成本,将所述多个第1访问成本向所述第2运算部传送,
所述第2运算部在所述第2队列中存储多个命令,对与从所述第2头的当前的数据扇区的位置起将所述第2头分别配置到所述第2队列所存储的多个数据扇区的位置为止的时间相当的多个第2访问成本分别进行计算,基于所述多个第1访问成本以及所述多个第2访问成本选择接下来处理的命令。
8.根据权利要求7所述的磁盘装置,
所述数据扇区的位置由柱面编号、头编号、扇区编号、所述第1盘或所述第2盘的半径方向的位置、以及所述第1盘或所述第2盘的角度中的至少2个的组合表示。
9.根据权利要求7所述的磁盘装置,
所述第1访问成本包含:从所述第2队列所存储的多个命令所分别对应的多个数据扇区的位置起将所述第2头分别配置到所述第2队列所存储的多个命令内的多个不同的命令所分别对应的多个不同的数据扇区的位置为止的多个寻道时间和多个旋转等待时间,
所述第2访问成本包含:从所述第2头的当前的数据扇区的位置起将所述第2头分别配置到所述第2队列所存储的多个命令所分别对应的多个数据扇区的位置为止的多个寻道时间和多个旋转等待时间。
10.根据权利要求1至6中任一项所述的磁盘装置,
所述第1运算部基于所述第2队列所存储的第1命令以及第2命令,计算与从由所述第1命令指定的第1数据扇区的位置起将所述第2头配置到由所述第2命令指定的第2数据扇区的位置为止的时间相当的第1访问成本、和与从所述第2数据扇区的位置起将所述第2头定位到所述第1数据扇区的位置为止的时间相当的第2访问成本,将所述第1访问成本以及所述第2访问成本向所述第2运算部传送,
所述第2运算部在所述第2队列中存储所述第1命令以及所述第2命令,计算与从第4数据扇区的位置起将所述第2头配置到所述第1数据扇区的位置为止的时间相当的第3访问成本、和与从所述第4数据扇区的位置起将所述第2头配置到所述第2数据扇区的位置为止的时间相当的第4访问成本,计算将所述第1访问成本以及所述第3访问成本相加得到的第5访问成本、和将所述第2访问成本以及所述第4访问成本相加得到的第6访问成本,接下来处理所述第5访问成本以及所述第6访问成本中的最小的访问成本所对应的命令。
11.根据权利要求1至6中任一项所述的磁盘装置,
所述第1运算部基于所述第2队列所存储的第1命令以及第2命令,计算与从由所述第1命令指定的第1数据扇区的位置起将所述第2头配置到由所述第2命令指定的第2数据扇区的位置为止的时间相当的第1访问成本、和与从所述第2数据扇区的位置起将所述第2头配置到所述第1数据扇区的位置为止的时间相当的第2访问成本,将所述第1访问成本以及所述第2访问成本向所述第2运算部传送,
所述第2运算部在所述第2队列中存储所述第1命令以及所述第2命令,计算与从第4数据扇区的位置起将所述第2头配置到所述第1数据扇区的位置为止的时间相当的第3访问成本、和与从所述第4数据扇区的位置起将所述第2头配置到所述第2数据扇区的位置为止的时间相当的第4访问成本,计算对所述第1访问成本以及所述第3访问成本分别进行加权后再相加得到的第5访问成本、和对所述第2访问成本以及所述第4访问成本分别进行加权后再相加得到的第6访问成本,接下来处理所述第5访问成本以及所述第6访问成本中的最小的访问成本所对应的命令。
12.根据权利要求1至6中任一项所述的磁盘装置,
所述第1运算部基于所述第2队列所存储的多个命令,计算与从所述第2头的当前的数据扇区的位置起将所述第2头配置到所述第2队列所存储的多个命令内的至少1个命令所对应的至少1个数据扇区的位置为止的时间相当的至少1个第1访问成本,将所述第1访问成本向所述第2运算部传送,
所述第2运算部在所述第2队列中存储多个命令,计算与从所述第2头的当前的数据扇区的位置起将所述第2头配置到所述第2队列所存储的多个命令内的由所述第1运算部处理的至少1个命令以外的至少1个不同的命令所对应的至少1个不同的数据扇区的位置为止的时间相当的至少1个第2访问成本,基于所述第1访问成本以及所述第2访问成本选择接下来处理的命令。
13.根据权利要求12所述的磁盘装置,
所述数据扇区的位置由柱面编号、头编号、扇区编号、所述第1盘或所述第2盘的半径方向的位置、以及所述第1盘或所述第2盘的角度中的至少2个的组合表示。
14.根据权利要求12所述的磁盘装置,
所述第1访问成本包含:从所述第2头的当前的数据扇区的位置起将所述第2头配置到所述第2队列所存储的多个命令内的至少1个命令所对应的至少1个数据扇区的位置为止的寻道时间和旋转等待时间,
所述第2访问成本包含:从所述第2头的当前的数据扇区的位置起将所述第2头配置到所述第2队列所存储的多个命令内的由所述第1运算部处理的至少1个命令以外的至少1个不同的命令所对应的至少1个不同的数据扇区的位置为止的寻道时间和旋转等待时间。
15.根据权利要求1至6中任一项所述的磁盘装置,
所述第1运算部基于所述第2队列所存储的第1命令以及第2命令,计算与从第1数据扇区的位置起将所述第2头配置到由所述第1命令指定的第2数据扇区的位置为止的时间相当的第1访问成本,将所述第1访问成本向所述第2运算部传送,
所述第2运算部将所述第1命令以及所述第2命令存储于所述第2队列,计算与从所述第1数据扇区的位置起将所述第2头配置到由所述第2命令指定的第3数据扇区的位置为止的时间相当的第2访问成本,接下来处理所述第1访问成本以及所述第2访问成本中的最小的访问成本所对应的命令。
16.一种重新排序处理的方法,是适用于磁盘装置的重新排序处理的方法,所述磁盘装置具备:第1盘;第2盘;第1头,对所述第1盘写入数据,从所述第1盘读出数据;第2头,对所述第2盘写入数据,从所述第2盘读出数据;第1致动器,具有所述第1头;第2致动器,具有所述第2头;第1运算部,执行所述第1致动器所对应的第1队列所存储的命令的第1重新排序处理;以及第2运算部,执行所述第2致动器所对应的第2队列所存储的命令的第2重新排序处理,
所述重新排序处理的方法中,
在用于执行所述第1重新排序处理的第1运算资源存在空余的情况下,由所述第1运算部执行所述第2重新排序处理,
在用于执行所述第2重新排序处理的第2运算资源存在空余的情况下,由所述第2运算部执行所述第1重新排序处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019204808A JP7234098B2 (ja) | 2019-11-12 | 2019-11-12 | 磁気ディスク装置及びリオーダリング処理の方法 |
JP2019-204808 | 2019-11-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112863552A CN112863552A (zh) | 2021-05-28 |
CN112863552B true CN112863552B (zh) | 2022-08-02 |
Family
ID=75846571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010607899.9A Active CN112863552B (zh) | 2019-11-12 | 2020-06-30 | 磁盘装置以及重新排序处理的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11507315B2 (zh) |
JP (1) | JP7234098B2 (zh) |
CN (1) | CN112863552B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021015659A (ja) * | 2019-07-10 | 2021-02-12 | 株式会社東芝 | ハードディスクドライブ |
JP2022138388A (ja) | 2021-03-10 | 2022-09-26 | 株式会社東芝 | 磁気ディスク装置及びリオーダリング処理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4417321A (en) * | 1981-05-18 | 1983-11-22 | International Business Machines Corp. | Qualifying and sorting file record data |
WO2003065818A8 (en) * | 2002-02-06 | 2003-10-16 | Azionaria Costruzioni Acma Spa | Unit and method for reordering confectionery products, such as sweets and similar |
US7061714B1 (en) * | 2003-12-19 | 2006-06-13 | Western Digital Technologies, Inc. | Disk drive modifying estimated seek times for a rotational position optimization algorithm based on change in estimated seek time parameter |
US10055463B1 (en) * | 2015-10-29 | 2018-08-21 | Google Llc | Feature based ranking adjustment |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100208373B1 (ko) * | 1995-08-01 | 1999-07-15 | 윤종용 | 이중의 헤드를 가지는 디스크 기록장치와 그의 헤드스위칭 제어방법 |
JP2001043640A (ja) * | 1999-07-29 | 2001-02-16 | Fujitsu Ltd | 記憶装置 |
US6789132B2 (en) | 2000-02-09 | 2004-09-07 | Seagate Technology Llc | Modular disc drive architecture |
US6490651B1 (en) * | 2000-03-14 | 2002-12-03 | Maxtor Corporation | Host-based virtual disk drive for improving the performance of a hard disk drive's input/output |
JP2001351310A (ja) | 2000-06-12 | 2001-12-21 | Fujitsu Ltd | ディスク装置およびそのためのプログラムを記憶したコンピュータ読み取り可能な記録媒体 |
JP3629216B2 (ja) * | 2001-03-08 | 2005-03-16 | 株式会社東芝 | デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法 |
JP2003308176A (ja) | 2002-04-03 | 2003-10-31 | Internatl Business Mach Corp <Ibm> | データ記憶装置、コマンド・キューのリオーダリング方法、データ処理方法およびプログラム |
CN1300772C (zh) * | 2002-11-05 | 2007-02-14 | 深圳易拓科技有限公司 | 可变存储区结构和磁道间距的磁盘驱动器的制造方法 |
CN102026383B (zh) * | 2010-12-07 | 2013-07-24 | 大唐移动通信设备有限公司 | 一种空分多址接入系统的资源分层方法及装置 |
US9471221B2 (en) * | 2011-04-06 | 2016-10-18 | Seagate Technology Llc | Generalized positional ordering |
US8736998B2 (en) * | 2012-05-17 | 2014-05-27 | Lsi Corporation | Systems and methods for symbol re-grouping decoding processing |
CN102968323B (zh) * | 2012-11-30 | 2016-05-25 | 北京奇虎科技有限公司 | 计算机终端和实现计算机系统开机加速的方法 |
US8824262B1 (en) * | 2013-08-19 | 2014-09-02 | Western Digital Technologies, Inc. | Disk drive accounting for sinusoidal offset between heads when executing a rotational position optimization algorithm |
CN106293503B9 (zh) * | 2015-06-23 | 2019-06-28 | 株式会社东芝 | 磁盘装置及控制方法 |
JP2018026187A (ja) | 2016-08-09 | 2018-02-15 | 株式会社東芝 | 磁気ディスク装置および磁気ディスク装置のコマンドリオーダリング方法 |
US9830939B1 (en) | 2016-12-21 | 2017-11-28 | Western Digital Technologies, Inc. | Workload balancing for multiple actuators |
US10042785B1 (en) | 2017-08-29 | 2018-08-07 | Seagate Technology Llc | Storage drive with multiple controllers having interconnected buffer managers |
JP6689242B2 (ja) * | 2017-09-19 | 2020-04-28 | 株式会社東芝 | 磁気ディスク装置および磁気ヘッド制御方法 |
JP2019169218A (ja) * | 2018-03-22 | 2019-10-03 | 株式会社東芝 | 磁気ディスク装置 |
US10522185B1 (en) * | 2019-02-09 | 2019-12-31 | Western Digital Technologies, Inc. | Data storage device sorting execution order of commands based on a predicted future command |
-
2019
- 2019-11-12 JP JP2019204808A patent/JP7234098B2/ja active Active
-
2020
- 2020-06-30 CN CN202010607899.9A patent/CN112863552B/zh active Active
- 2020-08-27 US US17/004,281 patent/US11507315B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4417321A (en) * | 1981-05-18 | 1983-11-22 | International Business Machines Corp. | Qualifying and sorting file record data |
WO2003065818A8 (en) * | 2002-02-06 | 2003-10-16 | Azionaria Costruzioni Acma Spa | Unit and method for reordering confectionery products, such as sweets and similar |
US7061714B1 (en) * | 2003-12-19 | 2006-06-13 | Western Digital Technologies, Inc. | Disk drive modifying estimated seek times for a rotational position optimization algorithm based on change in estimated seek time parameter |
US10055463B1 (en) * | 2015-10-29 | 2018-08-21 | Google Llc | Feature based ranking adjustment |
Also Published As
Publication number | Publication date |
---|---|
US20210141566A1 (en) | 2021-05-13 |
JP7234098B2 (ja) | 2023-03-07 |
JP2021077434A (ja) | 2021-05-20 |
CN112863552A (zh) | 2021-05-28 |
US11507315B2 (en) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7003644B2 (en) | Execution time dependent command schedule optimization | |
CN109427347B (zh) | 磁盘装置及记录区域的设定方法 | |
CN112863552B (zh) | 磁盘装置以及重新排序处理的方法 | |
US20170186455A1 (en) | Magnetic Disk Device and Write Method | |
US20100079904A1 (en) | Storage control method, storage control unit and storage apparatus | |
US20230280935A1 (en) | Seek scheduling in a split actuator drive | |
US10872040B2 (en) | Magnetic disk device and recording method of the same | |
US10777218B2 (en) | Disk-drive with efficient command reordering | |
US10964344B2 (en) | Magnetic disk device having two regions of different thicknesses | |
KR100855973B1 (ko) | 자기 헤드 부상 높이를 조절하는 하드디스크 드라이브 및그 방법 | |
US7457077B2 (en) | Method and apparatus for optimally write reordering | |
US11862197B2 (en) | Magnetic disk device | |
JP2014086116A (ja) | 磁気ディスク装置およびデータライト方法 | |
CN105096965A (zh) | 磁盘装置及数据刷新的处理方法 | |
US20100017633A1 (en) | Memory device, control device for memory device, and control method for memory device | |
US11875829B2 (en) | Magnetic disk device and reordering method | |
US11893268B2 (en) | Opportunistic command scheduling | |
JP5331670B2 (ja) | 磁気ディスク・ドライブ及びそのリフレッシュ・ライト方法 | |
US11756580B2 (en) | Magnetic disk device, control method, and non-transitory computer-readable storage medium | |
JP2024046317A (ja) | 磁気ディスク装置 | |
CN118266025A (zh) | 具有灵活逻辑磁道和半径无关的数据速率的数据存储设备 | |
US20190103146A1 (en) | Cache access time mitigation | |
KR20090087261A (ko) | 하드디스크 드라이브 및 그 엑세스 방법 |
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 |