CN101221483B - 改善连续串行小型机系统接口存储设备性能的装置和方法 - Google Patents

改善连续串行小型机系统接口存储设备性能的装置和方法 Download PDF

Info

Publication number
CN101221483B
CN101221483B CN2007103077999A CN200710307799A CN101221483B CN 101221483 B CN101221483 B CN 101221483B CN 2007103077999 A CN2007103077999 A CN 2007103077999A CN 200710307799 A CN200710307799 A CN 200710307799A CN 101221483 B CN101221483 B CN 101221483B
Authority
CN
China
Prior art keywords
task
tasks
sas
target device
parts
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2007103077999A
Other languages
English (en)
Other versions
CN101221483A (zh
Inventor
小托马斯·R·福里尔
贾森·E·穆尔
阿斯加·塔瓦索利
埃布尔·E·祖祖尔雷吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101221483A publication Critical patent/CN101221483A/zh
Application granted granted Critical
Publication of CN101221483B publication Critical patent/CN101221483B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明包括一种用于改善连续串行小型计算机系统接口存储设备性能的系统、计算机可执行的方法和计算机可读介质。根据优选的实施例,目标设备内的微处理器经由启动器路径的集合接收来自于至少一个启动器设备的任务的集合。该目标设备是循环非易失性存储介质。该微处理器按照任务列表的集合来排列任务的集合。每一个任务列表对应于相应的启动器路径。微处理器任务的集合组合到执行队列中。基于优先权机制对执行队列上的任务的集合进行重新排序。微处理器执行来自执行队列的任务的集合。

Description

改善连续串行小型机系统接口存储设备性能的装置和方法
技术领域
本发明一般涉及数据处理系统的领域,且具体地,涉及数据处理系统内存储设备的领域。还更具体地,本发明涉及一种用于改善数据处理系统内的存储设备性能的系统和方法。
背景技术
串行小型计算机系统接口(Serial Attached Small Computer SystemInterface)(SAS)体系可以支持从SAS启动器设备通向SAS目标设备的多条路径。因为大多数SAS目标设备至少包括SAS两个端口,而且大多数SAS启动器设备具有多个SAS端口,所以多条路径是有可能的。当向SAS目标设备分配任务时,SAS启动器设备可以基于路径可用性来使用不同的路径。因此,如果正由返回数据到SAS启动器设备的另一个SAS目标设备使用一条路径,SAS启动器将经由备选的路径连接到SAS目标设备来发送另一个任务。
SAS目标设备将每一条SAS启动器设备路径都视为单独的SAS启动器设备。SAS体系还支持多启动器环境,这使不同的系统SAS启动器设备能够通过相同的SAS底层结构与SAS目标设备进行对话。一般将SAS目标设备配置成为每一个SAS启动器设备维持单独的任务集。执行对不同任务集的维持以在每个SAS启动器设备基础上提供错误恢复过程。
并行小型计算机系统接口(并行SCSI)、即SAS体系的前趋结构曾支持多启动器环境。然而,SCSI目标设备只包括通向每一个启动器设备的一条路径。因此,每一个目标设备在每个SCSI适配器基础上维持任务集。
如上所述,SAS目标设备在每个路径基础上维持单独的任务集。由于可以存在到达SAS启动器设备的两条或更多的路径,所以单个SAS目标设备可以具有对于单个SAS启动器设备的两个或更多任务集。例如,如果SAS启动器设备开始向SAS目标设备发送连续的任务(例如,命令或SCSI命令描述符块),则一个任务可以沿着第一路径行进,而第二任务可以沿着第二路径行进。SAS目标设备将在单独的任务集中保持这些连续的任务。当连续的SCSI命令被排列在单独的任务集中时,当前的SAS执行并不把连续的SCSI命令看作连续的。因此,如果连续的任务是连续的写操作,它要求对在硬盘启动器上位置相关的位置进行写操作,则当前的SAS执行可以产生以第一盘位置为目标的第一写操作、以第二盘位置为目标的第二写操作和以第三盘位置为目标的第三写操作,其中第二盘位置位于硬盘的另一部分,而第三盘位置非常接近于第一盘位置。为了执行这三个写操作,硬盘驱动器需要将盘旋转到第一盘位置,再将盘旋转到第二盘位置,然后第三次将盘旋转到接近于第一盘位置的第三盘位置。在连续的写操作情况下,这些不必要的盘旋转明显影响了SAS体系的性能。
另一方面,并行SCSI盘驱动在相同任务集中保持来自于相同启动器设备的连续写操作,并将执行一系列连续的写操作而无需插入盘旋转。因此,就需要一种用于改善连续SAS盘驱动的系统和方法来克服上述现有技术的局限。
发明内容
本发明包括一种用于改善连续串行小型计算机系统接口存储设备性能的系统、计算机可执行的方法和计算机可读介质。根据优选的实施例,目标设备内的微处理器经由启动器路径的集合接收来自于至少一个启动器设备的任务的集合。该目标设备是循环非易失性存储介质。该微处理器按照任务列表的集合来排列任务的集合。每一个任务列表对应于相应的启动器路径。微处理器任务的集合组合到执行队列中。基于优先权机制对执行队列上的任务的集合进行重新排序。微处理器执行来自执行队列的任务的集合。
在本发明的优选实施例中,微处理器确定是否存在多于一个的非空任务集。响应于确定存在多于一个的非空任务集,微处理器执行任务选择代码以把任务的集合重新组合和重新排序到单个执行队列中。
在本发明的另一优选实施例中,微处理器确定是否应当执行任务的集合。响应于确定应当执行任务的集合,微处理器从任务列表的集合中选择用于执行的任务。然后,微处理器向执行队列发送所选择的任务来执行。
本发明以上及附加的目标、特征和优势将在以下的详细描述中变得明显。
附图说明
在附加的权利要求中阐述了本发明所认为特性的新颖性特征。然而,通过参考以下结合附图来阅读的对示范性实施例的详细描述将最好地理解本发明本身及优选方式的使用,还有其目的和优势。
图1是图示在其中可以执行本发明实施例的示范性网络的框图;
图2A是描述在其中可以执行本发明实施例的示范性数据处理系统的框图;
图2B是图示在其中可以执行本发明实施例的示范性存储设备的框图;
图3是描述在其中可以执行本发明实施例的示范性硬盘驱动(hard drive)的框图;
图4是图示通过图2和3所示的硬盘驱动进行任务集管理的框图;以及
图5A和5B是描述根据本发明的用于改善连续SAS存储设备性能的示范性方法的高级逻辑流程图。
具体实施方式
本发明包括一种用于改善连续串行小型计算机系统(SAS)接口存储设备性能的系统和方法。根据本发明的实施例,硬盘驱动包括微处理器、高速缓冲存储器和只读存储器(ROM)/电可擦除可编程只读存储器(EEPROM)。在EEPROM内存储的是可由微处理器执行的任务选择代码,该任务选择代码能够把存在于多个任务集内的命令重新排序到执行队列中,以处理连续命令的方式来改善SAS接口存储设备的性能。
现在参照图1,图示了在其中可以执行本发明实施例的示范性网络100的框图。如图所示,网络100包括服务器104、存储器106、客户端集合108-112,它们都通过通信结构102相连。正如本领域技术人员众所周知的,可以通过局域网、广域网、WiFi(IEEE 802.11x)、以太网、因特网或其他任何类型的网络来执行通信结构102。
存储器106包括硬盘驱动集合232a-232d和SAS扩展器(expander)集合238a-238b(图2B),其中SAS扩展器238a-238b被用来与SAS适配器231(图2A)接口。正如在此结合图2A-2B所讨论的,服务器104和客户端108-112可以通过它们相应的SAS适配器231来与存储器106通信。本领域技术人员将理解示范性网络100可以包括许多非图1具体所示的附加组件。因为这样的附加组件不是为理解本发明所必需的,所以没有在图1中图示也没有在此进一步进行讨论。
图2A是描述示范性数据处理系统200的框图,其中该示范性数据处理系统200可以被用来执行服务器104和客户端108-112。如上所述,处理器202-204通过系统总线206和存储器控制器/高速缓冲存储器208耦接到本地存储器209。优选地,本地存储器209可以被作为动态随机存取存储器(DRAM)模块的集合来执行。而且,处理器202-204还通过系统总线206耦接到I/O桥210以能够与I/O总线212通信。
本领域技术人员将理解I/O总线212可以被作为PCI、工业标准结构(ISA)或任何其他的外围总线来执行。PCI总线桥214耦接PCI总线216与I/O总线212,并能够与调制解调器218和网络适配器220通信。调制解调器218和/或网络适配器220使数据处理系统200能够在诸如网络100的网络上通信。
PCI总线桥222耦接PCI总线226与I/O总线212,并与SAS适配器231接口。SAS适配器231充当数据处理系统100内的SAS启动器,它使任何请求的设备(例如,处理器202-204,诸如调制解调器218或网络适配器220的外围设备等)能够访问图2B中所示的存储设备106内的硬盘驱动232a-232d。如图2A所示,SAS适配器231包括四个端口:端口A 233a、端口B 233b、端口C 233c和端口D 233d。正如在此结合图2B进一步详细描述的,这些端口使适配器231能够向存储器106发送命令(在此称为“任务”)。PCI总线桥224耦接PCI总线228与I/O总线212。PCI总线226使其他外围设备(未显示)能够在I/O总线212上通信。
图2B是图示在其中可以执行本发明实施例的示范性存储器106的框图。如图所示,存储器106包括循环非易失性存储介质、诸如硬盘驱动232a-232d(其为SAS目标设备)和SAS扩展器238a-238b的集合。SAS扩展器238a通过端口A 233a和端口B 233b被耦接到SAS适配器231(存在于服务器104和客户端108-112内),而SAS扩展器238b通过端口C 233c和端口D 233d被耦接到SAS适配器231。硬盘驱动232a-232d通过端口A 234a-234d被耦接到SAS扩展器238a,并通过端口B 236a-236d被耦接到SAS扩展器238b。本领域技术人员将理解本发明并不把存储器106限定为四个硬盘驱动232a-232d,而可以包括其他任何数量的硬盘。
根据本发明的实施例,SAS扩展器238a-238b包括通向每一个双端口硬盘驱动232a-232d的四条路径(端口A 233a、端口B 233b、端口C 233c和端口D 233d)。正如在此结合图3-5更详细讨论的,每一个硬盘驱动232a-232d为每一条路径维持单独的任务集。为了与存储器106通信,首先通过数据处理系统200的组件(例如,处理器202和204)向SAS适配器231(在此称为“SAS启动器设备”)发送任务。SAS启动器设备通过任何可利用的SAS启动器路径(端口A 233a、端口B 233b、端口C 233c和端口D 233d)向存储器106发送该任务。SAS扩展器238a-238b向至少一个硬盘驱动232a-232d转发该任务,该硬盘驱动232a-232d在此称为“SAS目标设备”。正如在此结合图3-4更详细讨论的,每一个SAS目标设备为每一条SAS启动器路径维持单独的任务列表。因此,如果作为SAS启动器设备的SAS适配器231向存储器106发送命令,而且该命令为跨越四条路径扩展的连续操作(例如,连续的写操作),则将在每一个硬盘驱动232a-232d中单独的任务集中对连续的操作加以分类。
图3是图示根据本发明实施例的示范性硬盘驱动232的框图。如图所示,硬盘驱动232包括主接口芯片301,用于调整在硬盘驱动232与诸如SAS适配器231的SAS启动器设备之间的通信。一旦系统启动,微处理器302从只读存储器(ROM)/电可擦除可编程只读存储器(EEPROM)304中加载引导数据。在硬盘驱动操作期间,微处理器302在高速缓冲存储器303中排列被发送到硬盘驱动232的任务。读/写(R/W)通道305和前置放大器306使微处理器302能够访问硬盘驱动232中的读/写头。
正如在此更详细讨论的,硬盘驱动232支持来自于SAS启动器设备(例如,SAS适配器231)的多条路径(例如端口A 233a、端口B 233b、端口C 233c和端口D 233d)。当向SAS目标设备(例如,硬盘驱动232)发送任务时,SAS启动器设备可以根据路径可用性来使用不同的路径。例如,如果正由另一个SAS启动器设备使用一条路径,则第一SAS启动器设备将通过备选的路径连接到SAS目标设备来发送任务。SAS目标设备将把每一条SAS启动器路径都视为单独的SAS启动器。作为SAS目标设备,硬盘驱动232为每一条SAS启动器路径维持单独的任务列表。这些任务列表将被存储在高速缓冲存储器303内。
微处理器302分别通过伺服控制器308和主轴电动机(spindle motor)控制器309来控制硬盘驱动的音圈和主轴电动机。这些电动机操纵存储了数据和指令的硬盘驱动母板(platter)。微处理器302还被耦接到至少一个空气滤波器,例如驱动再循环滤波器307,其被设计成对在读/写头移去和导入期间从母板中擦除的小部分介质进行滤波(并有可能对在操作期间在驱动内部驱除的其他小部分进行滤波)。
图4是图示由根据本发明实施例的硬盘驱动232进行的任务集管理的框图。如图所示,SAS启动器设备1402和SAS启动器设备2404通过多条SAS启动器路径414-420发送命令。SAS启动器路径416和418通过端口A 234进入硬盘驱动232,而SAS启动器路径414和420通过端口B 236进入硬盘驱动232。
由于SAS启动器设备1402和SAS启动器设备2404向硬盘驱动232发送命令,所以在(都被存储在高速缓冲存储器303内的)任务集406、408、410和411内排列命令,这取决于这些命令在哪一条SAS启动器路径414-420上发送。执行队列412还被存储在高速缓冲存储器303中,并缓冲来自于任务集406、408、410和411的命令,其中由微处理器302执行的任务选择代码414来重新排序这些命令。本领域技术人员将理解本发明根本不限制可以执行的任务集和启动器路径的数量。图4为了起举例说明的目的且为了便于讨论而仅显示了四个任务集和四个启动器路径。
任务选择代码414表示被存储在ROM/EEPROM 304上、由微处理器302执行的代码。任务选择代码414使微处理器能够扫视所有任务集406、408、410和411,且对任务集中的命令重新排序并把它们置于执行队列412中。
根据本发明的实施例,(由微处理器302执行的)任务选择代码414创建单独的任务集,其在图4中作为执行队列412来执行。单独的任务集包括来自于各个任务集406、408、410和411的所有任务。由任务选择代码414基于属性来重新排序执行队列412中的各个任务,用以优化执行效率。例如,将持续地重新排序连续的任务来优化性能。本领域技术人员将理解任务选择代码414可以使用任何重新排序机制,它包括但不局限于基于读/写头相对于在排列的命令中定义的物理位置或逻辑块地址(LBA)的物理位置的机制。当在执行队列412中重新排序这些命令时,可以持续地执行诸如连续的写命令的连续的命令,而不管该命令最初排列在哪一个任务集中。如果由于归因于至少一个任务集406、408、410和411的错误状态而需要从执行队列412中断各个任务,其中该错误状态,则驱动任务管理器416(被存储在ROM/EEPROM 304内并由微处理器302执行的代码)可以冻结任务执行直至被中断的任务被驱动任务管理器416移除。
在本发明的另一个实施例中,每一个硬盘驱动232a-232d在高速缓冲存储器303中维持各个任务集406、408、410和411。任务选择代码414在执行时对任务集406、408、410和411中的任务重新排序,并向执行队列412发送重新排序后的任务。例如,任务选择代码414询问所有任务集406、408、410和411,并基于哪一个任务可以最快被执行来选择要执行的下一任务。例如,硬盘驱动232a-232d可以随时在驱动上检测读/写头相对于LBA位置的位置。因此,最佳任务执行策略是任务选择代码414基于任务的目标LBA来选择将需要最少的时间到达的下一任务。
图5A是图示根据本发明的用于改善连续SAS存储设备性能的示范性方法的框图。该处理开始于步骤500并继续到步骤502,这图示了硬盘驱动232内的微处理器302确定主机接口芯片301是否已经接收了来自于SAS启动器的新命令。如果还没有接收到命令,处理继续到步骤504,其描述了微处理器302正在等待将要从SAS启动器发送的下一个命令。然后,处理返回到步骤502并以循环的方式继续进行。
返回到步骤502,如果微处理器302确定是否已经接收了新命令,则处理进行到步骤506,这示出微处理器302在适当的任务集中排列所接收的命令。如上所述,SAS目标设备(例如,硬盘驱动232)组织该由任务集排列的命令。SAS目标设备为每一条SAS启动器路径维持任务集。由于SAS启动器通过任何可利用的SAS启动器路径发送命令,所以可能存在每个SAS启动器维持的多于一个的任务列表。
处理进行到步骤507,这示出了微处理器302确定是否存在多于一个的非空任务集。如果存在不多于一个的非空任务集,处理就返回到步骤504并以循环的方式继续进行。
如果存在多于一个的非空任务集,处理就继续到步骤508,这图示了微处理器302确定是否应该由微处理器302通过执行任务选择代码414来聚集执行队列412。当存在多于一个的非空任务集时,创建执行队列。如果否,处理就返回到步骤504并以循环的方式继续进行。如果应当聚集执行队列412,则微处理器302执行被存储在ROM/EEPROM 304中的任务选择代码414,并把所有任务集内的所有命令重新组合和重新排序到执行队列412中,如步骤510中所描述。处理继续到步骤512,这示出了微处理器302通过接收来自于伺服控制器308、主轴电动机控制器309、前置放大器306或R/W通道305中任何一个的中断,确定已经检测到归因于至少一个任务集的错误状态。如果已经检测到归因于至少一个任务集的错误状态,处理继续到步骤514,这图示了驱动任务管理器416从执行队列412中移除来自于(多个)错误的任务集的任务。处理返回到步骤510。
然而,如果检测不到错误状态,处理就继续到步骤516,这图示了微处理器302按照执行队列412所示的顺序来执行命令。如图所示,处理结束于步骤518。
图5B是图示根据本发明的用于改善连续的SAS存储设备性能的另一个示范性方法的框图。处理开始于步骤550并继续到步骤552,这图示了硬盘驱动232内的微处理器302确定主机接口芯片301是否已经接收了来自于SAS启动器的新命令。如果已经接收了命令,处理就继续到步骤554,这描述了微处理器302正在等待将要从SAS启动器设备发送的新命令。然后,处理返回到步骤552并以循环的方式继续进行。
返回到步骤552,如果微处理器302确定是否已经接收了新命令,处理就进行到步骤556,这示出了微处理器302正在适当的任务集中排列所接收的命令。如上所述,SAS目标设备(例如,硬盘驱动232)组织该由任务集排列的命令。SAS目标设备为每一条SAS启动器路径维持任务集。由于SAS启动器通过任何可利用的SAS启动器路径发送命令,所以可能存在每个SAS启动器维持的多于一个的任务列表。
处理继续到步骤558,这图示了微处理器302确定是否应当执行任务。如果否,处理就返回到步骤554并以循环的方式继续进行。如果应当执行任务,微处理器302就执行被存储在ROM/EEPROM 304中的任务选择代码414。任务选择代码414询问被存储在高速缓冲存储器303中的所有任务集,并从任务集中选择用于执行的任务。如上所述,最佳任务执行策略是任务选择代码414基于相对于数据头的物理位置的任务的目标LBA来选择将需要最少的时间来到达的下一任务。
处理继续到步骤562,这图示了任务选择代码414向执行队列412发送所选择的任务。然后,处理继续到步骤564,这表示微处理器302执行如在执行队列412中所排序的任务。如图所示,处理结束于步骤566。
如上所述,本发明包括一种用于改善连续串行小型计算机系统接口存储设备性能的系统、计算机可执行的方法和计算机可读介质。根据优选的实施例,目标设备中的微处理器经由启动器路径集合来接收来自于至少一个启动器设备的任务集合。该目标设备是循环非易失性存储介质。该微处理器按照任务列表的集合来排列这些任务的集合。每一个任务列表对应于相应的启动器路径。微处理器把这些任务的集合组合到执行队列中。基于优先权机制对执行队列上的任务集合进行重新排序。微处理器从执行队列中执行这些任务的集合。
应当理解在包含了程序产品的计算机可用介质中至少可供选择地执行了本发明的某些方面。可以通过各种信号承载介质向数据存储器系统或计算机系统传送在本发明中定义了功能的程序,该信号承载介质包括但不局限于不可写存储介质(例如,CD-ROM)、可写存储介质(例如,硬盘、读/写CD-ROM、光介质)、诸如但不局限于随机存取存储器(RAM)的系统存储器以及诸如计算机和电话网络的通信介质,该计算机和电话网络包括以太网、因特网、无线网络等网络系统。因此,应当理解在本发明中,这样的信号承载介质当承载或编码指导本发明中的方法功能的计算机可读指令呈现了本发明的备选实施例。此外,理解到可由如下系统来执行本发明,该系统包括以在此所述硬件、软件或软硬件组合或者其等同物形式的装置。
虽然已经参考优选的实施例具体显示和描述了本发明,但是本领域技术人员将理解在此可以在不脱离本发明精神和范围的情况下进行形式和细节上的各种改变。

Claims (14)

1.一种改善连续串行小型机系统接口存储设备性能的方法,包括:
经由多个启动器路径,在目标设备中接收来自于至少一个启动器设备的多个任务,其中所述目标设备是循环的、非易失性存储介质;
按照多个任务列表来排列多个任务,其中在所述多个任务列表中的每一个任务列表对应于在所述多个启动器路径中的相应的启动器路径;
把所述多个任务组合到执行队列中,其中基于优先权机制对所述执行队列中的所述多个任务进行重新排序;以及
执行来自所述执行队列的所述多个任务。
2.根据权利要求1所述的方法,其中所述组合进一步包括:
确定是否存在多于一个的非空任务集;以及
响应于确定存在多于一个的非空任务集,执行任务选择代码以把所述多个任务重新组合和重新排序到单个执行队列中。
3.根据权利要求1所述的方法,其中所述组合进一步包括:
确定是否应当执行所述多个任务;
响应于确定应当执行所述多个任务,从所述多个任务列表中选择用于执行的任务;以及
向所述执行队列发送所述任务。
4.根据权利要求1所述的方法,进一步包括:
在执行来自所述执行队列的所述多个任务之前,响应于确定存在归因于多个任务集中至少一个任务集的至少一种错误状态,从所述执行队列中移除与所述至少一个任务集相关的至少一个任务。
5.根据权利要求1所述的方法,其中所述目标设备与所述至少一个启动器设备是连续串行小型计算机系统接口SAS设备。
6.根据权利要求1所述的方法,其中所述优先权机制是以所述目标设备中读/写头相对于所述多个任务中所定义的逻辑块地址的物理位置为基础的机制。
7.根据权利要求1所述的方法,其中所述目标设备是硬盘驱动器。
8.一种改善连续串行小型机系统接口存储设备性能的装置,包括:
经由多个启动器路径,在目标设备中接收来自于至少一个启动器设备的多个任务的部件,其中所述目标设备是循环的、非易失性存储介质;
按照多个任务列表来排列多个任务的部件,其中在所述多个任务列表中的每一个任务列表对应于在所述多个启动器路径中的相应的启动器路径;
把所述多个任务组合到执行队列中的部件,其中基于优先权机制对所述执行队列中的所述多个任务进行重新排序;以及
执行来自所述执行队列的所述多个任务的部件。
9.根据权利要求8所述的装置,其中所述把所述多个任务组合到执行队列中的部件进一步包括:
确定是否存在多于一个的非空任务集的部件;以及
响应于确定存在多于一个的非空任务集,执行任务选择代码以把所述多个任务重新组合和重新排序到单个执行队列中的部件。
10.根据权利要求8所述的装置,其中把所述多个任务组合到执行队列中的部件进一步包括:
确定是否应当执行所述多个任务的部件;
响应于确定应当执行所述多个任务,从所述多个任务列表中选择用于执行的任务的部件;以及
向所述执行队列发送所述任务的部件。
11.根据权利要求8所述的装置,还包括:
在执行来自所述执行队列的所述多个任务之前,响应于确定存在归因于多个任务集中至少一个任务集的至少一种错误状态,从所述执行队列中移除与所述至少一个任务集相关的至少一个任务的部件。
12.根据权利要求8所述的装置,其中所述目标设备与所述至少一个启动器设备是连续串行小型计算机系统接口SAS设备。
13.根据权利要求8所述的装置,其中所述优先权机制是以所述目标设备中读/写头相对于所述多个任务中所定义的逻辑块地址的物理位置为基础的机制。
14.根据权利要求8所述的装置,其中所述目标设备是硬盘驱动器。
CN2007103077999A 2006-12-08 2007-11-16 改善连续串行小型机系统接口存储设备性能的装置和方法 Expired - Fee Related CN101221483B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/608,512 US8307128B2 (en) 2006-12-08 2006-12-08 System and method to improve sequential serial attached small computer system interface storage device performance
US11/608,512 2006-12-08

Publications (2)

Publication Number Publication Date
CN101221483A CN101221483A (zh) 2008-07-16
CN101221483B true CN101221483B (zh) 2010-08-11

Family

ID=39499856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007103077999A Expired - Fee Related CN101221483B (zh) 2006-12-08 2007-11-16 改善连续串行小型机系统接口存储设备性能的装置和方法

Country Status (2)

Country Link
US (1) US8307128B2 (zh)
CN (1) CN101221483B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101541344B1 (ko) * 2008-12-05 2015-08-03 삼성전자주식회사 메모리 장치 및 메모리 장치의 제어 방법
US8281054B2 (en) * 2010-08-25 2012-10-02 Lsi Corporation Methods and apparatus for improved host/initiator utilization in serial advanced technology attachment communication
CN102253860A (zh) * 2011-07-13 2011-11-23 深圳市万兴软件有限公司 一种异步操作方法及异步操作管理装置
FR2996655B1 (fr) * 2012-10-08 2014-12-26 Thales Sa Procede de reordonnancement d'une liste initiale ordonnee de taches en une liste finale ordonnee de taches
CN106462360B (zh) * 2014-12-23 2019-10-25 华为技术有限公司 一种资源调度方法以及相关装置
US10298437B2 (en) * 2016-09-06 2019-05-21 Quest Software Inc. Distributed data collection in an enterprise network
US10528414B2 (en) * 2017-09-13 2020-01-07 Toshiba Memory Corporation Centralized error handling in application specific integrated circuits
US10540219B2 (en) * 2017-09-13 2020-01-21 Toshiba Memory Corporation Reset and error handling in application specific integrated circuits
KR20190083150A (ko) * 2018-01-03 2019-07-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1553346A (zh) * 2003-07-02 2004-12-08 普安科技股份有限公司 冗余外部储存虚拟化计算机系统
CN1655540A (zh) * 2003-11-13 2005-08-17 戴尔产品有限公司 在串行连接scsi存储网络中进行通讯的系统和方法
CN1713127A (zh) * 2004-06-24 2005-12-28 戴尔产品有限公司 Scsi和sas硬件有效性的系统和方法
CN1794162A (zh) * 2004-12-21 2006-06-28 普安科技股份有限公司 储存虚拟化控制器、子系统及系统与方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236744A (ja) * 2000-02-18 2001-08-31 Hitachi Ltd 情報記録再生方法及び情報記録再生装置
US7366800B2 (en) * 2003-10-09 2008-04-29 International Business Machines Corporation System and method for dynamically assigning I/O priority
JP2006323729A (ja) * 2005-05-20 2006-11-30 Hitachi Ltd マルチパス制御をする装置及びシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1553346A (zh) * 2003-07-02 2004-12-08 普安科技股份有限公司 冗余外部储存虚拟化计算机系统
CN1655540A (zh) * 2003-11-13 2005-08-17 戴尔产品有限公司 在串行连接scsi存储网络中进行通讯的系统和方法
CN1713127A (zh) * 2004-06-24 2005-12-28 戴尔产品有限公司 Scsi和sas硬件有效性的系统和方法
CN1794162A (zh) * 2004-12-21 2006-06-28 普安科技股份有限公司 储存虚拟化控制器、子系统及系统与方法

Also Published As

Publication number Publication date
US20080141256A1 (en) 2008-06-12
US8307128B2 (en) 2012-11-06
CN101221483A (zh) 2008-07-16

Similar Documents

Publication Publication Date Title
CN101221483B (zh) 改善连续串行小型机系统接口存储设备性能的装置和方法
JP5128079B2 (ja) ユニバーサルストレージバスアダプタ
US6922738B2 (en) ATA/SATA combined controller
CN101305334B (zh) 降低的本地总线通信量的磁盘驱动器操作的智能存储引擎
US9003414B2 (en) Storage management computer and method for avoiding conflict by adjusting the task starting time and switching the order of task execution
US20070162626A1 (en) System and method for enhancing external storage
US20170102874A1 (en) Computer system
TWI334543B (en) Method of scheduling tasks in computer systems architectures, apparatus for implementing task scheduling, and computing system
US20180032471A1 (en) Self-configuring ssd multi-protocol support in host-less environment
CN103699372A (zh) 从中央存储装置引导计算机系统
CN102486752A (zh) Sas扩展器中数据预取
CN104598170B (zh) 确定读写路径的方法和装置
CN1650276B (zh) Ata/sata组合控制器
KR20140119679A (ko) 스토리지 장치, 제어 장치 및 기록 매체
JP2015026112A (ja) ストレージ制御装置、制御プログラム及び制御方法
US20030191872A1 (en) ATA and SATA compliant controller
CN104603737A (zh) 实现存储设备的高速访问和数据保护的计算机、计算机系统和i/o请求处理方法
JP5372262B2 (ja) 割込み信号受付け装置及びコンピュータ装置
US9817583B2 (en) Storage system and method for allocating virtual volumes based on access frequency
CN104991874A (zh) 一种基于scst的多控制器存储设备alua配置方法
EP3918461A1 (en) Adjustable seek energy settings in storage device systems
US20090089498A1 (en) Transparently migrating ongoing I/O to virtualized storage
EP2527973A1 (en) Computer system with multiple operation modes and method of switching modes thereof
JP2000112666A (ja) ディスク制御装置
CN103197915B (zh) 一种处理敏感指令的方法、装置以及物理机

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100811

Termination date: 20181116