CN106933497B - 一种基于sas的管理调度装置、***及方法 - Google Patents
一种基于sas的管理调度装置、***及方法 Download PDFInfo
- Publication number
- CN106933497B CN106933497B CN201511032014.2A CN201511032014A CN106933497B CN 106933497 B CN106933497 B CN 106933497B CN 201511032014 A CN201511032014 A CN 201511032014A CN 106933497 B CN106933497 B CN 106933497B
- Authority
- CN
- China
- Prior art keywords
- input
- information
- processed
- output
- linked list
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0028—Serial attached SCSI [SAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及通信技术领域,尤其涉及一种基于SAS的管理调度装置、***及方法。该装置基于上层协议请求与SAS域中的设备进行通信。链表管理模块通过链表的方式管理基于该上层协议请求而得到的待处理输入输出信息、设备信息。该调度器在有空闲的SAS通路后,通过索引链表的方式获取该链表中的待处理输入输出信息、设备信息。该SAS通路中的DMAC基于该待处理输入输出信息、设备信息,将与SAS域中的相应设备进行帧交互。本申请通过链表管理待处理任务,并实现了统一调度,降低内部资源开销。
Description
技术领域
本发明涉及通信技术领域,尤其涉及SAS(Serial Attached SCSI,串行小型计算机***接口)技术。
背景技术
随着SAS(Serial Attached SCSI,串行小型计算机***接口)在服务器以及阵列中的广泛应用,通过SAS domain(SAS域)组网的设备越来越多。
在SAS HOST/Target(SAS主机/目标)应用中,HOST/Target(主机/目标)需要通过SAS Expander(SAS扩展设备)与远端的Target/HOST(目标/主机)进行互联通信。也就是说,无论HOST(主机)与Target(目标)通信,还是Target与HOST通信,都不在是简单的点对点直连模式,往往需要通过expander(扩展设备)进行扩展。SAS控制器内部会包含多个port(端口),有些port(端口)直连远端设备,有些port(端口)通过expander(扩展设备)与远端设备互联。
例如,一种自研HOST侧的SAS控制器支持2K device(设备)和4K IO(输入输出)并发,Target侧SAS控制器支持64个主机和256个IO并发。因此,SAS控制器内部如何高效管理多port(端口)、多device(设备),以及各device(设备)多IO并发,是必须解决的一个技术问题。
按照SAS标准协议分层,各port相互独立,由port layer(接口层)的PL_OC状态机来管理待发送请求,该机制存有一个严重的问题:一个SAS控制器所支持的device数以及IO并发数与port没有严格的映射关系,如果各port下device和IO分开管理,则每个port必须按照所支持的最大规格对device和IO进行管理,这样所需资源开销与控制器内部port个数成正比,数目庞大,不易管理。
现有技术方案通常是通过软件层面进行待发送任务管理,由软件调度选择一个发送请求来知会hardware(硬件)进行帧处理。此种方案存在以下问题:
(1)软件与逻辑之间每个IO存在多次交互,包括:任务下发配置逻辑寄存器、逻辑完成中断上报、软件查询完成状态等,因此处理时延大;
(2)软件内部需要维护任务队列,其访问队列缓存空间开销大;
(3)各Port独立管理资源开销巨大。
发明内容
本文描述了一种基于SAS的管理调度装置、***及方法,以实现对多端口、多设备、多IO的统一管理和调度。
在一方面,本申请实施例提供一种基于SAS的管理调度装置。该装置基于上层协议请求与相应SAS域进行通信。该装置包括链表管理模块、调度器、SAS通路中的DMAC(DirectMemory Access Control ler,直接内存访问控制器)直接内存访问控制器。该链表管理模块通过链表的方式管理基于上层协议请求而得到的待处理IO信息、设备信息。该调度器在有空闲的SAS通路后,通过索引该链表的方式获取该链表中的待处理IO信息、设备信息。该SAS中的DMAC,基于该待处理输入输出信息、设备信息,将与SAS域中的相应设备进行帧交互。
另一方面,本申请实施例提供了一种基于SAS控制器,该控制器包括上述方面的装置。
另一方面,本申请实施例提供了一种基于SAS的管理调度***,该***包括上述方面的装置及相应SAS域,且该SAS域中包括多个设备。
又一方面,本申请实施例提供了一种基于SAS的管理调度方法。SAS控制器基于上层协议请求与相应SAS域中的设备进行通信。该方法包括,SAS控制器查看相应SAS通路状态,并在所述SAS通路空闲时,通过索引链表的方式获取待处理输入输出信息、设备信息。其中,该待处理输入输出信息、设备信息是通过解析上层协议请求而获得,并通过链表方式对该输入输出信息、设备信息进行管理。该SAS控制器基于该待处理输入输出信息、设备信息,将与SAS域中的相应设备进行帧交互。
本申请实施例通过硬件方式(如SAS控制器)实现对链表的管理及调度,并通过链表对多IO并发进行统一管理。本申请实施例能够高效管理并调度多端口、多设备、多IO并发,降低了内部资源开销。此外,本申请实施例通过SAS控制器感知SAS通路状态以及查看链表管理模块中是否有待处理任务,降低处理时延。
在一个可能设计中,待处理IO信息为待处理IO id(标识),目标设备信息为目标设备id(标识)。
在一个可能设计中,在上述链表中还包括与设备进行帧交互的端口信息,且该端口信息为端口下是否有待处理设备信息。调度器在查看到该端口信息为端口下有待处理设备信息时,获取该端口下的设备信息,根据得到的该设备信息获取待处理IO信息。
在一个可能设计中,待处理IO信息、设备信息、端口信息以数据结构形式存储于上述链表中。
IO结点数据结构包括以下字段中的一个或多个:用于指示当前IO的前驱IO标识、用于指示当前IO的后继IO标识。
设备结点数据结构包括以下字段中的一个或多个:用于指示当前设备下是否存在待处理命令IO、用于指示当前设备下待处理命令IO链表尾结点对应IO标识、用于指示当前设备下待处理命令IO链表头结点对应IO标识、用于指示当前设备下是否存在待处理数据IO、用于指示当前设备下待处理数据IO链表尾结点对应IO标识、用于指示当前设备下待处理数据IO链表头结点对应IO标识、用于指示当前结点的前驱结点设备标识、用于指示当前结点的后继结点设备标识。
端口结点数据结构包括以下字段中的一个或多个:用于指示当前端口下是否有待处理设备、用于指示当前端口下待处理设备链表表头结点标识、用于指示当前端口下待处理设备链表表尾结点标识。
由于端口、设备、IO数据结构分开,由端口结点数据结构、设备链表结点数据结构、IO链表结点数据结构共同组成链表。因此,当出现异常时,方便了SAS控制器将设备下的所有待处理IO取消,或者将端口下的所有待处理IO取消。而在设备链表结点数据结构中,由于命令和数据分开,即以不同字段形式表示出来,因此,可实现命令调度优先、数据调度优先或RR等调度优先策略。
在一个可能设计中,SAS域中的设备为主机或盘片。
本发明通过SAS控制器感知SAS通路状态,并通过检索SAS控制器中链表,将待处理任务通过空闲SAS通路发送出去,实现了SAS域中设备的尽可能轮转,同时防止了高负荷及饿死现象的产生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的主机通过SAS控制器组网的示意图;
图2为本发明实施例提供的盘片通过SAS控制器组网的示意图;
图3为本发明实施例提供的基于SAS的管理调度***示意图;
图4是本发明实施例提供的调度器实现调度的示意图;
图5是本发明实施例提供的LM模块统一管理链表的示意图;
图6是本发明实施例提供的基于SAS的管理调度方法流程图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
图1是SAS主机通过SAS控制器组网示意图。图1中,SAS主机(SAS HOST)通过该主机中的SAS控制器组网。此时,在SAS域(SAS domain)中包含多个盘片和扩展设备(Expander)。该扩展设备用于连接SAS控制器与盘片,和/或连接SAS控制器与另一扩展设备,和/或连接盘片与盘片等,目的是使在SAS域中能够连接更多的盘片。该盘片可以为SAS HDD(机械硬盘)/SSD(固态硬盘)、SATA(接口类型硬盘)等任意一种或多种盘片类型。因此,SAS主机通过SAS控制器组网,使得SAS主机能够与盘片通信,此种情况下,SAS域包含多个盘片。
图2为盘片通过SAS控制器组网示意图。图2中,SAS盘片(如SAS SSD)通过盘片侧中的SAS控制器组网。此种情况下,SAS域(SAS domain)中包含多个SAS主机(SAS HOST)和扩展设备(Expander)。该扩展设备用于连接SAS控制器与SAS主机,和/或连接SAS控制器与另一扩展设备,和/或连接SAS主机与SAS主机等,目的是使SAS域中能够连接更多的SAS主机。因此,盘片通过SAS控制器组网,使得盘片能够与SAS主机通信,此种情况下,SAS域包含多个SAS主机。
图3为本发明一个实施例的基于SAS的管理调度***示意图。该***是通过硬件SAS控制器来实现多端口(port)下的各设备(device,简称DEV)以及各设备多IO(输入输出)并发的管理和调度,且该管理是通过链表来实现的。
在详述图3中各装置、模块作用功能之前,先解释下IO(输入输出,如SSP/SMP/STP命令)并发。在数据处理过程中,数据从一个设备到另一个设备之间的交互称之为数据流(stream),此交互过程即为IO。通常IO都是排序进行的,如硬盘的数据IO、CPU和内存的IO。而网络之间的IO则逐渐趋于并发处理,即IO并发。IO并发是指两个设备之间同时可有多个命令并行执行,即多个IO分时复用SAS链路以进行IO帧交互。为了能够高效管理多IO并发,本发明实施例通过链表对多IO并发进行统一管理,将待处理(pending)IO的id(标识)、设备(目标设备,且属于SAS域中的设备)的id、与该设备进行帧交互的端口(port)id等信息以链表方式进行统一管理。当SAS控制器中的调度器在发现有空闲的SAS通路(SAS chanel,简称SAS chnl)后,通过索引该链表得到待处理IO id(标识)、设备id、端口id等信息。然后该调度器或者该空闲SAS通路中的DMAC(Direct Memory Access Control ler,直接内存访问控制器)根据该待处理IO id(即所选中的IO id),得到IO上下文内容(IO context),例如,得到IO对应帧在存储空间的地址、IO对应帧长度等内容;以及根据该设备id(即所选中的设备id)得到该设备相关信息,例如,得到目标设备在SAS域中地址、与目标设备进行帧交互的端口id等。该DMAC根据得到的IO上下文内容在存储空间中获取帧数据(命令帧或者数据帧),并根据得到的目标设备相关信息与目标设备完成数据帧交互。
下面详述图3中各装置、模块功能作用。
图3中,该基于SAS的管理调度***包括基于SAS的管理调度装置和SAS域(SASdomain)200。
SAS域200中包含有多个设备220及一个或多个扩展器210,该扩展器210用于使该SAS域中连接更多的设备220。该设备220可以是盘片,如该盘片机械硬盘、固态硬盘等;该设备220也可以是SAS主机(SAS HOST),如服务器等。在HOST组网情况下,该设备220为盘片;在由盘片组网情况下,该设备220为SAS主机。
该基于SAS的管理调度装置包括存储器100、CPU400、SAS控制器300。
存储器100用于存储IO交互过程中的相关帧,包括数据帧、命令帧、响应帧;例如,存储器100存储读命令帧、写命令帧、查询设备相关内容(如查询主机日志文本)命令帧、写入SAS域中设备的数据帧、SAS域中设备(如盘片)在命令执行完后作出的响应帧等。
在一个示例中,存储器100用于存储记录IO上下文内容(IO Context)的表项(参见下表4)以及存储记录SAS域(SAS Domain)中扫描到的所有设备(SAS域中设备)信息的表项(参见下表5)。需要说明的是,该用于记录IO内容的表项以及扫描到设备相关内容的表项也可以由SAS控制器中的存储模块存储;或者由存储器100及SAS控制器中的存储模块共同存储。
在一个示例中,存储器100为主存或内存,如存储器100为片外DDR(Double DataRate,双倍速率同步动态随机存储器)或者片内RAM(random access memory,随机存取存储器)。
CPU400用于将由上层协议(如应用层软件)中得到的相关帧存储于存储器100中。例如,应用层软件需要将一个文件(如电影文件)下发至SAS域的某个设备(如某盘片)中,则CPU400先将该文件以数据帧形式存储于存储器100中。
在一个示例中,CPU400还用于扫描SAS域200中所有设备,以获取SAS域中各设备相关内容(参见下表5),并将得到的该所有设备相关内容存储于存储器100或者存储模块313中。
在一个示例中,将CPU400扫描得到的内容以数据结构(自定义数据结构)形式存储,参见下表5。进一步地,该设备相关内容包括该设备是否有效、该设备类型、与该设备进行交互端口的id(标识)、该设备id(标识)等信息,具体参见下表5。需要说明的是,该扫描得到的SAS域中各设备相关内容不限于此,即不限于下表5所示。
下面详述SAS控制器300。
该SAS控制器300包括硬件加速器310、多个SAS通路320、多个端口330;其中,该多个端口为逻辑端口,不具有物理实体结构。
该硬件加速器310包括LM(List manager,链表管理)模块311、调度器(Dispatch)312、存储模块313、解析模块314;其中,每个SAS通路包括相应DMAC(Direct Memory AccessControl ler,直接内存访问控制器)321。
存储模块313为可选模块,即该硬件加速器310中也可以不包含该存储模块313,该存储模块313用于存储记录IO上下文内容的表项(参见下表4)以及存储记录SAS域中扫描到的所有设备相关内容的表项(参见下表5)。
下面将以上述记录IO上下文内容的表项、SAS域中扫描到的各设备相关内容表项存储于存储模块313为例进行阐述。
解析模块314为可选模块,其用于接收上层协议(如应用层软件)下发的请求,即接收来自上层软件的用于记录数据或者命令信息的的数据结构,并进行解析,将解析出的IO上下文内容以新的数据结构形式(参见下表5)存储于存储模块313中;将解析出的IO id、设备id、与设备交互的端口id等信息加至LM模块311的链表中。也就是说,待处理IO id、设备id、与设备交互的端口id等id信息是通过解析上层软件下发的数据结构而得到。
在一个示例中,存储于存储模块313的IO上下文内容包括IO对应的IO id、IO对应帧在存储空间(存储器100、或者存储模块313)中的地址、帧长度(数据帧或命令帧长度)等信息。而存储于LM模块311中的信息仅是IO id、设备id、与设备交互的端口id等id信息,且是以链表形式存储于LM模块311中,目的是便于索引。
LM模块311通过链表方式管理基于上层协议请求(即通过解析上层软件下发的数据结构)而得到的待处理IO信息、设备信息。在一个示例中,该待处理IO信息为待处理IOid,该设备信息为设备id。进一步地,在该链表中还包括与该设备进行帧交互的端口信息,且该端口信息为该端口下是否有待处理设备id。
在一个示例中,该待处理IO信息、设备信息、端口信息是以数据结构形式存储于LM模块311的链表中,具体包括端口结点数据结构、设备链表结点数据结构、IO链表结点数据结构。
在一个示例中,LM模块311以链表方式对端口结点、设备链表结点、IO链表结点进行统一管理(参见下图5及相关内容表述),包括对结点内容刷新、加链、删链、结点位置调整等。例如,当LM模块311接收到来自解析模块314的加链请求后,该LM模块311将该解析模块314解析出的待处理IO id、设备id、与该设备交互的端口id等信息加到该链表中的各结点数据结构中。
下面将对上述端口结点数据结构、设备链表结点数据结构、IO结点数据结构分别做阐述。
下表1示出的是某端口下是否有与其进行信息交互的设备,如果有则可得到与该端口进行信息交互的第一个设备(即首设备)的设备id(标识)以及最后一个设备(即尾设备)的设备id(标识)。根据表1中的首设备id通过查找表2,得到该设备下的第一个待处理IO的id,以及最后一个待处理IO的id。表3中的当前待处理IO的前驱待处理IO id、后继待处理IO id,以及表2中的当前设备的前驱设备的设备id、后继设备的设备id,还可以用于加链、取链中。
该端口结点(port Note)数据结构参见下表1:
表1
其中,Port_have_pending:用来指示当前端口下是否有待处理设备(pendingdevice),该待处理设备是指在该设备下有待处理IO的设备;该待处理设备亦指目标设备,,也就是接收数据的设备,该数据是根据该待处理IO id得到的该IO相应存储地址中的数据。在有待处理设备时必然在该设备下会有待处理的IO,也就是说,有待处理设备必然会有向该待处理设备发送的IO。
Dev_list_hder:用来指示当前端口下设备链表(参见下表2)的首设备id(标识),即当前端口下的第一个设备的设备id。
Dev_list_tail:用来指示当前端口下设备链表(参见下表2)的尾设备id(标识),即当前端口下的最后一个设备的设备id。
表1中,数值y与SAS控制器所支持SAS域中的设备数量有关;并且在port_have_pending无效时,即在当前端口下没有待处理设备时,Dev_list_hder、Dev_list_tail无效,即该端口所对应的首设备id和尾设备id无效,也即不存在目标设备。
该设备链表结点(DEV_list Note)数据结构参见下表2:
表2
其中,In_list:用来指示当前设备的设备id是否在该DEV_List Note数据结构中,且当In_list无效时该DEV_List Note中其他信息无效。
在某些情况下,例如,对端设备请求与SAS控制器300进行信息交互时,即SAS控制器300被动接收数据时,解析模块314解析出的首设备id、尾设备id有时会出现偏差。因此,可通过表2中的in_list字段进一步确定设备id是否在设备链表(DEV_list)中。
Pending_cmd:用来指示当前设备下是否存在待处理的命令(cmd)任务,即用来指示当前设备下是否存在待处理IO,且该待处理IO是待处理命令(cmd)IO。
Cmd_list_tail[x:0]:用来指示当前设备下的待处理cmd任务尾待处理IO id。
Cmd_list_hder[x:0]:用来指示当前设备下待处理的cmd任务首待处理IO id。
Prev_DEV_ID[y:0]:用来指示当前设备的前驱设备的设备id。
Pending_data:用来指示当前设备下是否存在待处理的数据(data)任务,即用来指示当前设备下是否存在待处理IO,且该待处理IO是待处理数据(data)IO。
Data_list_tail[x:0]:用来指示当前设备下待处理数据(data)任务链表的首待处理IO id。
Data_list_hder[x:0]:用来指示当前设备下待处理数据(data)任务链表的尾待处理IO id。
Next_DEV_ID[y:0]:用来指示当前设备的后继设备的设备id;
Rsv:保留域。
其中,x值与SAS控制器所支持的IO并发数目有关;y值与SAS控制器所支持的SAS域中设备数量有关。
IO链表结点(IO_list_Note)数据结构参见下表3:
表3
其中,In_data_list:用来指示当前待处理IO是否为一个数据任务IO,即用来指示当前待处理IO是否是待处理数据IO。
In_cmd_list:用来指示当前待处理IO是否为一个命令任务IO,即用来指示当前待处理IO是否是待处理命令IO。
Prev_IO_ID[x:0]:用来指示当前待处理IO的前驱待处理IO id。
Next_IO_ID[x:0]:用来指示当前待处理IO的后继待处理IO id。其中,x数值与SAS控制器所支持IO并发数有关。
需要说明的是,表1、表2、表3数据结构仅是一个示例,本发明实施例的数据结构并不限于此。
本实施例通过将待处理(pending)IO,即需要发送而尚未发送的IO,以id形式通过链表方式管理起来,便于索引。由于端口、设备、IO的数据结构分开存储,因此,当出现异常时,方便了SAS控制器将设备下的所有待处理IO取消,或者将端口下的所有待处理IO取消。而在设备链表结点数据结构中,由于命令和数据分开,即以不同字段形式表示出来,
下面继续详述图3中的调度器312如何通过索引LM模块311中链表而获得待处理IOid、设备id,以及如何对待处理IO进行调度。
图4是本发明实施例提供的调度器实现调度的示意图。
图4中,调度器312在查看到有空闲的SAS通路后,通过索引的方式获取LM模块的链表中的待处理IO id、设备id、端口id等信息。
在一个示例中,调度器312通过索引LM模块311中链表得到待处理IO id,根据该待处理IO id通过查表方式(参见下表4)获取相应IO上下文内容;以及通过索引LM模块311中链表得到设备id,根据该设备id通过查表方式(参见下表5)获取相应设备相关内容。
具体地,表1、表2、表3存储的是id信息,包括设备id、IO id。通过表1能够得到与端口进行信息交互的设备id。根据该表1的设备id,例如首设备的设备id,通过查找表2得到该设备下的待处理IO id。根据该待处理IO id并通过查找表4可以得到该待处理IO id对应的IO上下文内容,包括该IO在存储空间的存储地址、存储数据的长度等,并且根据表2得到的该设备id通过查表5可以得到该设备id对应的目标设备地址等信息,以便将得到的该数据发送至该目标设备中。
在另一个示例中,调度器312通过索引LM模块311的链表得到待处理IO id、设备id等信息,并将该信息发送至空闲的SAS通路由该SAS通路中的DMAC根据该待处理IO id过查表方式(参见下表4)得到相应IO上下文内容;以及根据该设备id通过查表方式(参见下表5)得到相应设备相关内容。
具体地,调度器312实时查看各SAS通路(SAS通路0、SAS通路1……SAS通路n)的状态,即查看是否有空闲的SAS通路,如果有空闲SAS通路,则调度器查看LM模块中是否有待处理IO。首先调度器查看各端口(port)(端口0、端口1)下是否有待处理设备(该待处理设备指目标设备,也是指在该设备下有待处理IO的设备)。如果端口0下有待处理设备,则选中端口0下的设备链表。通过该设备链表查看该端口0下维护的设备1(即设备链表链头设备),选中该设备1下维护的待处理IO链的链头IO。查看该IO是待处理命令(cmd)任务还是待处理数据(data)任务,即查看是待处理命令IO还是待处理数据IO。如果有待处理数据(data)任务,则获取相应待处理数据IO;如果有待处理命令(cmd)任务,则获取相应待处理命令IO。而后再通过查询待处理IO上下文内容表项(存储于存储模块313中的下表5),得到待处理数据IO内容,如得到该IO对应帧在存储空间地址、IO对应帧(数据帧或命令帧)长度等信息。
下面结合表1、表2、表3对图4调度器如何实现调度进行更详细的阐述。该调度器在探测到有空闲的SAS通路后,该调度器查看该LM模块所存储的链表中各端口结点(port0、port1)数据结构(参见表1),并在某端口(如端口0)中的字段port_have_pending有效时,得知该端口0下有待处理设备。该调度器再通过端口结点数据结构(参见表1)得到该端口0下的首待处理设备id如设备1,尾待处理设备id如设备3。然后该调度器依据得到的该首待处理设备id,查询设备链表结点数据结构(参见表2)。如果设备链表结点(DEV_list结点)数据结构(参见表2)中字段in_list有效,则该设备id在该DEV_list结点中。然后调度器继续查看该DEV_list结点数据结构中是否有待处理的命令任务(通过pending_cmd字段得到)或待处理的数据任务(通过penging_data字段得到)。如果既有待处理命令任务,又有待处理数据任务,则根据命令/数据调度优先策略选中相应任务;如果仅有命令任务或数据任务,则直接选择相应任务。一旦选择本次发送命令还是数据,则直接获取相应任务链表的头结点对应的IO id(通过cmd_list_hder字段得到),至此该待处理IO id被选中。该调度器从该LM模块中取出该待处理IO id。该LM模块更新链表,包括更新端口结点、设备链表结点、IO链表结点。该调度器根据上述索引链表得到的该待处理IO id,查询记录IO上下文内容的表项(参见下表4),得到与该待处理IO id相对应的IO上下文内容,包括IO对应帧在存储空间地址、IO对应帧长度、偏移(offset)等信息。以及该调度器根据上述索引链表得到的设备id,查询记录SAS域中扫描到的所以设备相关内容的表项(参见下表5),从而得到与该设备交互的端口id、该设备在SAS域中地址(如64bit的SAS address)等信息。
下表4中的IO上下文内容通过解析上层协议下发的数据结构而得到,下表5中的设备相关内容通过CPU扫描SAS域中所有设备信息表项二得到。表4是用于记录多个IO内容的表项(IOST),即IO上下文内容数据结构。
表4
表4中,在IOST数据结构中,每个IO上下文内容(IO id 0内容、IO id 1内容……IOid m内容)对应一个IO上下文信息,包括当前IO是否有效、IO对应的IO id、IO对应帧在存储空间的地址、IO对应帧(数据帧或命令帧)长度、数据偏移等信息。
需要说明的是,如果待处理IO是顺次记录于表4的IOST数据结构中,则IO标识(id)即为表4的索引号,因此,表4中也可以不包括IO id。此种情况下,调度器312可通过该索引号得到待处理IO上下文内容。
表5是用于记录SAS域中所扫描到的所有设备相关内容的表项,即设备相关内容的数据结构。
表5
表5中,在ITCT数据结构中,每个设备内容(设备0内容、设备1内容……设备n内容)记录了一个设备信息,包括:设备是否有效、设备类型、设备下面的命令和数据调度的优先级、与设备进行帧交互的端口id、设备在SAS域地址等信息。
需要说明的是,表5中该记录SAS域中扫描到的所有设备相关内容表项,在SAS控制器组网后,由CPU扫描SAS域得到。一旦扫描完成后,该记录SAS域中扫描到的所有设备相关内容(表5)不变,仅在SAS网发生变化之后才会重新扫描,得到新的SAS域中所有设备相关内容表项。
此外,如果CPU扫描的设备是顺次记录于表5的ITCT数据结构中,则设备id即为表5的索引号,因此,表5中也可以不包括设备id。此种情况下,调度器312可通过该索引号得到设备相关内容。
由此可见,LM模块311将多个IO并发以待处理IO的方式通过链表管理起来,实现了多端口、多设备、多并发的统一管理。且该LM模块中链表维护的是IO、设备及端口的id(标识),也即索引号。而后调度器312通过索引的方式,获取该链表中的IO id、设备id、端口id。然后SAS通路中的DMAC,基于该待处理IO id、目标设备id,将与SAS域中的目标设备进行帧交互。由此可见,SAS域中每个设备发送并发IO个数可控,实现了端口与设备尽可能轮转,防止了一部分设备出现高负载而另一部设备出现饿死的现象发生。参见图5。
图5是本发明实施例提供的LM模块统一管理链表的示意图。
图5中,prot 0(端口0)、port 1(端口1)有待处理设备。与该port 0交互设备的id,包括设备id1、设备id4……设备id2y-2;以及与该port1交互设备的id,包括设备id0、设备id2、设备id3、设备id5……设备id2y-1。对于设备id 0,在该设备id 0下的待处理IO的id包括IO id 0、IO id 1、IO id 5……IO id 2x-3、IO id 2x-1。对于设备id 1,在该设备id 1下的待处理IO的id包括IO id 2、IO id 3、IO id 4……IO id 2x-4、IO id 2x-2。图5中,设备链表的深度为SAS控制器所支持设备的个数,IO链表深度为SAS控制器所支持最大IO并发数。由此可见,该LM模块通过链表存储待处理IO,并通过链表将端口、待处理设备、待处理IO相互关联,便于管理,使得SAS控制器能够支持更多的IO并发数并更大限度地接入更多设备。该调度器通过索引链表方式获取待处理IO的id,从而实现了对待处理IO的统一调度。
下面继续阐述图3中SAS通路中各模块功能与作用。
图3中,SAS控制器300包括多个SAS通路。SAS通路320包括DMAC321。
DMAC321用于对数据帧或命令帧进行搬移。
具体地,调度器在发现有空闲的SAS通路后,将IO上下文内容、设备相关内容发送至该空闲的SAS通路(调度器也可以发送待处理处理IO id、设备id等信息,再由该SAS通路中的DMAC通过查表得到IO上下文内容、设备相关内容)。该SAS通路中的DMAC321接收来自调度器312中待处理IO上下文内容,如包括IO id、IO对应帧在存储空间地址、帧长度(数据帧或命令帧长度)等;以及接收该目标设备相关内容,包括设备id、设备类型、与设备交互的端口id、设备在SAS域中地址等。DMAC312根据其接收到的待处理IO上下文内容,从存储器100中获得相应帧数据,包括数据帧或命令帧。DMAC312根据其接收到的目标设备相关内容,启动数据帧或命令帧的搬移,并经由传输层、接口层、数据链路层、物理层等底层链路与目标设备完成帧交互。
综上,本实施例通过将待处理(pending)IO,即通过将需要发送而尚未发送的IO,以及目标设备,以id形式通过链表方式暂存并管理起来。调度器312在感知到有空闲通路后通过索引链表方式获取到待处理IO id、目标设备id,并将该待处理IO id、目标设备id或者由该待处理IO id、目标设备id得到的IO上下文内容、设备相关内容发送至空闲SAS通路。该SAS通路中的DMAC根据该IO上下文内容从存储器中获取命令帧或数据帧,以及根据该设备相关内容与目标设备实现帧数据交互。因此,本发明实施例防止了有部分设备高负载而另外部分设备出现饿死的现象发生。
图6是本发明实施例提供的一种基于SAS的管理调度方法流程图。SAS控制器基于上层协议请求与SAS域中的设备进行通信。
在步骤601,该SAS控制器接收上层协议(如应用层软件)下发的请求,即接收来自上层软件的用于记录数据或命令信息的数据结构,并进行解析,从而得到IO id(标识)、IO是否有效、IO对应帧在存储空间的地址、IO对应帧长度等IO上下文内容;以及得到IO id、设备id、与设备交互端口id等id信息。
在步骤602,该SAS控制器将该IO上下文内容以数据结构形式存储至该IO上下文内容的表项中(参见表4)。且该SAS控制器将该IO id、设备id、与设备交互端口id等id信息加至SAS控制器中的链表中,即该SAS控制器执行加链操作。其中,该链表包括端口结点数据结构(参见表1)、设备链表结点数据结构(参见表2)、IO结点数据结构(参见表3)。
在步骤603,该SAS控制器查看SAS通路状态,并在该SAS通路空闲时,通过索引该链表的方式获取该链表中的该待处理IO id、设备id、端口id等信息,即执行取链操作。
在步骤604,该SAS控制器根据该待处理IO id并通过查表(如表4)方式得到IO上下文内容,包括待处理IO对应帧在存储空间地址、IO对应帧长度、偏移(offset)等信息。该SAS控制器根据该设备id并通过查表(如表5)方式得到设备相关内容,包括与该设备交互的端口id、该设备在SAS域中地址等信息。
在一个示例中,该SAS控制器在查看到有SAS通路空闲时,该SAS控制器将待处理IOid、设备id发送至SAS通路的DMAC中。DMAC通过查询记录IO上下文内容的表项(参见表4),得相应IO上下文内容。DMAC根据该设备id,查询记录SAS域中扫描到的所以设备相关内容的表项(参见表5),得到目标设备相关内容。
在另一个示例中,SAS控制器通过查询记录IO上下文内容的表项(参见表4),得相应IO上下文内容;以及根据该设备id,查询记录SAS域中扫描到的所以设备相关内容的表项(参见表5),得到目标设备相关内容。该SAS控制器在查看到有SAS通路空闲时,将该IO上下文内容、设备相关内容发送至SAS通路。
在步骤605,该SAS控制器根据该IO上下文内容,包括待处理IO id、IO对应帧在存储器中的地址、帧长度等信息,得到存储空间中的相应数据帧或命令帧。此外,该存储空间的数据帧、命令帧是上层软件写入至该存储空间中的。
在步骤606,该SAS控制器将该数据帧或命令帧通过其检测到的空闲SAS通路经由该SAS控制器的端口搬移至目标设备中;其中,该端口id即为步骤605得到的与该设备交互的端口id,该目标设备地址即为步骤605得到的该设备在SAS域中地址。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (28)
1.一种基于串行小型计算机***接口的管理调度装置,其中,所述装置基于上层协议请求与相应串行小型计算机***接口域中的设备进行通信,其特征在于,包括:
链表管理模块,通过链表的方式管理基于所述上层协议请求而得到的待处理输入输出信息、设备信息;
所述链表中还包括与所述设备进行帧交互的端口信息,且所述端口信息为所述端口下是否有待处理设备信息;
调度器,在有空闲的串行小型计算机***通路后,通过索引所述链表的方式获取所述链表中的待处理输入输出信息、设备信息;
所述串行小型计算机***通路中的直接内存访问控制器,基于所述待处理输入输出信息、设备信息,将与所述串行小型计算机***域中的相应设备进行帧交互。
2.如权利要求1所述的一种装置,其特征在于,所述待处理输入输出信息为待处理输入输出标识,所述设备信息为设备标识。
3.如权利要求1所述的一种装置,其特征在于,所述索引方式为,所述调度器在查看到所述端口信息为所述端口下有待处理设备信息时,获取所述端口下的设备信息,根据得到的所述设备信息获取待处理输入输出信息。
4.如权利要求1或3所述的一种装置,其特征在于,所述端口信息是以数据结构形式存储于所述链表中,且所述数据结构包括以下字段中的一个或多个:用于指示当前端口下是否有待处理设备、用于指示当前端口下待处理设备链表表头结点标识、用于指示当前端口下待处理设备链表表尾结点标识。
5.如权利要求1至3任意一项所述装置,其特征在于,所述装置通过解析来自所述上层协议的请求而得到所述待处理输入输出信息、所述设备信息,并将得到的所述待处理输入输出信息存储至所述链表中。
6.如权利要求1至3任意一项所述装置,其特征在于,所述待处理输入输出信息以数据结构形式存储于所述链表中,且所述数据结构包括以下字段中的一个或多个:用于指示当前输入输出标识的前驱输入输出标识、用于指示当前输入输出标识的后继输入输出标识。
7.如权利要求1至3任意一项所述装置,其特征在于,所述装置通过解析来自所述上层协议的请求而得到包含所述待处理输入输出信息的相应输入输出上下文内容。
8.如权利要求7所述的一种装置,其特征在于,所述输入输出上下文内容以数据结构形式存储于第一表项中,且所述数据结构包括以下字段中的一个或多个:输入输出标识是否有效、输入输出标识、输入输出标识对应帧在存储空间的地址、输入输出标识对应帧长度。
9.如权利要求8所述的一种装置,其特征在于,所述调度器或所述直接内存访问控制器,根据所述待处理输入输出信息通过索引所述第一表项的方式,获取相应输入输出上下文内容,以便所述直接内存访问控制器根据所述输入输出上下文内容得到与所述输入输出标识相对应帧数据,以实现对所述帧数据的交互。
10.如权利要求1至3或8至9任意一项所述装置,其特征在于,所述设备信息以数据结构形式存储于所述链表中,且所述数据结构包括以下字段中的一个或多个:用于指示当前设备下是否存在待处理命令输入输出标识、用于指示当前设备下待处理命令输入输出链表尾结点对应输入输出标识、用于指示当前设备下待处理命令输入输出链表头结点对应输入输出标识、用于指示当前设备下是否存在待处理数据输入输出标识、用于指示当前设备下待处理数据输入输出链表尾结点对应输入输出标识、用于指示当前设备下待处理数据输入输出链表头结点对应输入输出标识、用于指示当前结点的前驱结点设备标识、用于指示当前结点的后继结点设备标识。
11.如权利要求1至3或8至9任意一项所述装置,其特征在于,所述装置还包括CPU,所述CPU用于扫描所述串行小型计算机***接口域中的设备,以得到包含所述设备信息在内的所述串行小型计算机***接口域中所有设备相关内容。
12.如权利要求11所述的一种装置,其特征在于,所述设备相关内容以数据结构形式存储于第二表项中,且所述数据结构包括以下字段中的一个或多个:设备类型字段、设备下命令IO和数据IO的调度优先级字段、与设备交互的端口标识字段、设备在SAS域中的地址。
13.如权利要求12所述的一种装置,其特征在于,所述设备信息为设备标识,且所述调度器或所述直接内存访问控制器根据所述设备标识,通过索引所述第二表项的方式,获取与所述设备标识相对应的设备相关内容,以便所述直接内存访问控制器根据所述设备相关内容实现与所述设备的帧交互。
14.一种基于串行小型计算机***接口控制器,其特征在于,包括如权利要求1至13中任意一项所述的装置。
15.一种基于串行小型计算机***接口的管理调度***,其特征在于,包括如权利要求1至14中任意一项所述的装置以及所述串行小型计算机***接口域,且所述串行小型计算机***接口域包括多个设备。
16.一种基于串行小型计算机***接口的管理调度方法,其中,所述串行小型计算机***接口控制器基于上层协议请求与相应串行小型计算机***接口域中的设备进行通信,其特征在于,包括:
步骤a,所述串行小型计算机***接口控制器查看所述串行小型计算机***接口通路状态,并在所述串行小型计算机***接口通路空闲时,通过索引链表的方式获取待处理输入输出信息、设备信息;其中,所述待处理输入输出信息、设备信息是通过解析所述上层协议请求而获得,并通过链表方式对所述输入输出信息、设备信息进行管理;所述链表中还包括与所述设备进行帧交互的端口信息,且所述端口信息为所述端口下是否有待处理设备信息
步骤b,所述串行小型计算机***控制器基于所述待处理输入输出信息、设备信息,与所述串行小型计算机***域中的相应设备进行帧交互。
17.如权利要求16所述的一种方法,其特征在于,所述待处理输入输出信息为待处理输入输出标识,所述设备信息为设备标识。
18.如权利要求16所述的一种方法,其特征在于,所述步骤a包括,
调度器在查看到所述端口信息为所述端口下有待处理设备信息时,获取所述端口下的设备信息,根据得到的所述设备信息获取待处理输入输出信息。
19.如权利要求16或18所述的一种方法,其特征在于,所述端口信息是以数据结构形式存储于所述链表中,且所述数据结构包括以下字段中的一个或多个:用于指示当前端口下是否有待处理设备、用于指示当前端口下待处理设备链表表头结点标识、用于指示当前端口下待处理设备链表表尾结点标识。
20.如权利要求16至18任意一项所述方法,其特征在于,在所述步骤a之前包括,解析来自所述上层协议的请求,得到所述待处理输入输出信息、所述设备信息,并将得到的所述待处理输入输出信息、所述设备信息存储至所述链表中。
21.如权利要求16至18任意一项所述方法,其特征在于,所述待处理输入输出信息以数据结构形式存储于所述链表中,且所述数据结构包括以下字段中的一个或多个:用于指示当前输入输出标识的前驱输入输出标识、用于指示当前输入输出标识的后继输入输出标识。
22.如权利要求16至18任意一项所述方法,其特征在于,在所述步骤a之前包括,解析来自所述上层协议的请求,得到相应输入输出上下文内容。
23.如权利要求22所述的一种方法,其特征在于,所述输入输出上下文内容以数据结构形式存储于第一表项中,且所述数据结构包括以下字段中的一个或多个:输入输出标识是否有效、输入输出标识、输入输出标识对应帧在存储空间的地址、输入输出标识对应帧长度。
24.如权利要求23所述的一种方法,其特征在于,所述步骤b包括,所述串行小型计算机***接口控制器或所述串行小型计算机***接口通路中的直接内存访问控制器,根据所述待处理输入输出信息通过索引所述第一表项的方式,获取相应输入输出上下文内容,以便所述直接内存访问控制器根据所述输入输出上下文内容得到与所述输入输出标识相对应帧数据,以实现对所述帧数据的交互。
25.如权利要求16至18或23至24任意一项所述方法,其特征在于,所述设备信息以数据结构形式存储于所述链表中,且所述数据结构包括以下字段中的一个或多个:用于指示当前设备下是否存在待处理命令输入输出标识、用于指示当前设备下待处理命令输入输出链表尾结点对应输入输出标识、用于指示当前设备下待处理命令输入输出链表头结点对应输入输出标识、用于指示当前设备下是否存在待处理数据输入输出标识、用于指示当前设备下待处理数据输入输出链表尾结点对应输入输出标识、用于指示当前设备下待处理数据输入输出链表头结点对应输入输出标识、用于指示当前结点的前驱结点设备标识、用于指示当前结点的后继结点设备标识。
26.如权利要求16至18或23至24任意一项所述方法,其特征在于,在所述步骤a之前包括,CPU扫描所述串行小型计算机***接口域中的设备,得到包含所述设备信息在内的所述串行小型计算机***接口域中所有设备相关内容。
27.如权利要求26所述的一种方法,其特征在于,所述设备相关内容以数据结构形式存储于第二表项中,且所述数据结构包括以下字段中的一个或多个:设备类型字段、设备下命令IO和数据IO的调度优先级字段、与设备交互的端口标识字段、设备在SAS域中的地址。
28.如权利要求27所述的一种方法,其特征在于,所述设备信息为设备标识,且所述串行小型计算机***接口控制器或所述串行小型计算机***接口中的直接内存访问控制器根据所述设备标识,通过索引所述第二表项的方式,获取与所述设备标识相对应的设备相关内容,以便所述直接内存访问控制器根据所述设备相关内容实现与所述设备的帧交互。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032014.2A CN106933497B (zh) | 2015-12-31 | 2015-12-31 | 一种基于sas的管理调度装置、***及方法 |
EP16207259.9A EP3188029B1 (en) | 2015-12-31 | 2016-12-29 | Management and dispatching apparatus, system, and method based on sas |
US15/393,681 US10402362B2 (en) | 2015-12-31 | 2016-12-29 | Management and dispatching apparatus, system, and method based on SAS |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032014.2A CN106933497B (zh) | 2015-12-31 | 2015-12-31 | 一种基于sas的管理调度装置、***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106933497A CN106933497A (zh) | 2017-07-07 |
CN106933497B true CN106933497B (zh) | 2020-02-21 |
Family
ID=57755069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511032014.2A Active CN106933497B (zh) | 2015-12-31 | 2015-12-31 | 一种基于sas的管理调度装置、***及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10402362B2 (zh) |
EP (1) | EP3188029B1 (zh) |
CN (1) | CN106933497B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559407B (zh) * | 2020-12-22 | 2021-11-16 | 无锡众星微***技术有限公司 | Stp链路层状态机优化方法 |
CN113220238B (zh) * | 2021-05-19 | 2022-08-09 | 无锡众星微***技术有限公司 | 一种通用sas控制器接口实现方法 |
CN117406936B (zh) * | 2023-12-14 | 2024-04-05 | 成都泛联智存科技有限公司 | Io请求调度方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101263464A (zh) * | 2005-09-16 | 2008-09-10 | 英特尔公司 | 基于帧的数据传送并行处理 |
CN102073605A (zh) * | 2010-12-27 | 2011-05-25 | 深圳市创新科信息技术有限公司 | 一种绕过Bio层访问磁盘驱动的存储接口的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060080671A1 (en) * | 2004-10-13 | 2006-04-13 | Day Brian A | Systems and methods for opportunistic frame queue management in SAS connections |
JP2012252416A (ja) * | 2011-05-31 | 2012-12-20 | Toshiba Corp | 記憶装置、データ制御方法、及びデータコントローラ |
-
2015
- 2015-12-31 CN CN201511032014.2A patent/CN106933497B/zh active Active
-
2016
- 2016-12-29 US US15/393,681 patent/US10402362B2/en active Active
- 2016-12-29 EP EP16207259.9A patent/EP3188029B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101263464A (zh) * | 2005-09-16 | 2008-09-10 | 英特尔公司 | 基于帧的数据传送并行处理 |
CN102073605A (zh) * | 2010-12-27 | 2011-05-25 | 深圳市创新科信息技术有限公司 | 一种绕过Bio层访问磁盘驱动的存储接口的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106933497A (zh) | 2017-07-07 |
US20170192932A1 (en) | 2017-07-06 |
US10402362B2 (en) | 2019-09-03 |
EP3188029A1 (en) | 2017-07-05 |
EP3188029B1 (en) | 2018-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7747788B2 (en) | Hardware oriented target-side native command queuing tag management | |
US8612632B2 (en) | Systems and methods for tag information validation in wide port SAS connections | |
US7171500B2 (en) | Systems and methods for target mode connection management in SAS connections | |
US11269956B2 (en) | Systems and methods of managing an index | |
US20120173840A1 (en) | Sas expander connection routing techniques | |
US11550486B2 (en) | Data storage method and apparatus | |
EP4318251A1 (en) | Data access system and method, and device and network card | |
WO2017162175A1 (zh) | 一种数据传输方法及装置 | |
US10523753B2 (en) | Broadcast data operations in distributed file systems | |
WO2017084348A1 (zh) | Ip硬盘的管理方法和装置 | |
CN104020961A (zh) | 分布式数据存储方法、装置及*** | |
JP2020532230A (ja) | パケット転送方法及び装置 | |
CN106933497B (zh) | 一种基于sas的管理调度装置、***及方法 | |
CN112130748A (zh) | 一种数据访问方法、网卡及服务器 | |
US10855538B2 (en) | Single management connection automatic device stack configuration system | |
CN113014662A (zh) | 数据处理方法及基于NVMe-oF协议的存储*** | |
CN114625762A (zh) | 一种元数据获取方法、网络设备及*** | |
CN115270033A (zh) | 一种数据访问***、方法、设备以及网卡 | |
US10545667B1 (en) | Dynamic data partitioning for stateless request routing | |
US20070255738A1 (en) | System, Method, and Computer-Readable Medium for Performing Data Structure Updates in a Multi-Processor System | |
US8930528B2 (en) | Method and system for partitioning directories | |
EP3534576A1 (en) | Packet transmission | |
US8429209B2 (en) | Method and system for efficiently reading a partitioned directory incident to a serialized process | |
Dalessandro et al. | iSER storage target for object-based storage devices | |
US10209923B2 (en) | Coalescing configuration engine, coalescing configuration tool and file system for storage system |
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 |