CN104050115A - 一种存储控制器及其使用方法 - Google Patents

一种存储控制器及其使用方法 Download PDF

Info

Publication number
CN104050115A
CN104050115A CN201410304951.8A CN201410304951A CN104050115A CN 104050115 A CN104050115 A CN 104050115A CN 201410304951 A CN201410304951 A CN 201410304951A CN 104050115 A CN104050115 A CN 104050115A
Authority
CN
China
Prior art keywords
hard disk
processor
storage instruction
controller
interchanger
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.)
Granted
Application number
CN201410304951.8A
Other languages
English (en)
Other versions
CN104050115B (zh
Inventor
聂华
杨晓君
倪亚路
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.)
Zhongke Controllable Information Industry Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
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 Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN201410304951.8A priority Critical patent/CN104050115B/zh
Publication of CN104050115A publication Critical patent/CN104050115A/zh
Priority to US15/323,083 priority patent/US10338813B2/en
Priority to PCT/CN2015/077172 priority patent/WO2016000478A1/zh
Application granted granted Critical
Publication of CN104050115B publication Critical patent/CN104050115B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/0608Saving storage space on storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0661Format or protocol conversion arrangements
    • 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
    • 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/0658Controller construction arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种存储控制器及其使用方法,包括各处理器发出存储指令,处理器控制器接收处理器发送的存储指令,并将其发送至交换器,由交换器逐一发送至硬盘控制器,硬盘控制器按照存储指令中指示存储的地址空间发送至硬盘,其中,所指示的地址空间是分配给发出存储指令的处理器的地址空间。采用本发明的技术方案,能够实现在分时机制下保证多个处理器存储指令复用同一实体存储空间,从而实现了通过硬件方式实现多颗处理器共享同一实体存储空间的目的。

Description

一种存储控制器及其使用方法
技术领域
本发明涉及计算机技术领域,特别涉及一种存储控制器及其使用方法。
背景技术
随着云计算技术的发展,虚拟化技术作为支撑云计算的核心技术,其应用模式已经从最初的服务器整合虚拟化,转变到现在的桌面虚拟化,网络虚拟化,存储虚拟化等等。虚拟化技术在云计算领域的技术价值与应用空间正在不断扩展。
目前现有技术中,是通过软件的方式,将存储空间进行逻辑的分隔,组成不同的逻辑存储空间。
现有技术的不足在于:需要对操作系统以及软件做改动才能实现为不同的处理器分配不同的地址空间。
发明内容
本发明提供了一种存储控制器及其使用方法,用以通过硬件方式实现多个处理器存储指令复用同一实体存储空间。
本发明提供了一种存储控制器,包括:至少一个处理器控制器、交换器、以及硬盘控制器;其中:
各处理器控制器,用于分别与其相对应的处理器相连,接收处理器发送的存储指令,并将其发送至交换器;
交换器一端与各处理器控制器相连,另一端与硬盘控制器相连,用于将处理器控制器发来的存储指令逐一发送至硬盘控制器,以及将硬盘控制器发来的的响应结果发送至相应的处理器控制器;
硬盘控制器,用于与硬盘相连,接收交换器发来的存储指令并发送至硬盘后接收硬盘的响应结果。
本发明还提供了一种存储控制器的使用方法,包括:
处理器控制器接收其对应的处理器发送的存储指令,并将该存储指令发送至交换器;
交换器将处理器控制器发来的存储指令逐一发送至硬盘控制器;
硬盘控制器在接收到交换器发来的存储指令时,在存储指令中指示存储的地址空间后发送至硬盘,其中,所指示的地址空间是分配给发出存储指令的处理器的地址空间。
本发明的有益效果是:
本发明实施例提供的技术方案中,对于各处理器发出的存储指令,由交换器逐一发送至硬盘控制器,而硬盘控制器在存储指令中指示存储的地址空间后发送至硬盘,其中,所指示的地址空间是分配给发出存储指令的处理器的地址空间。由于该地址空间是由硬盘控制器预先为各处理器在实体存储空间上分配的,这样,相应的存储指令实质上是在专属于发出存储指令的该处理器的地址空间上执行的,而硬盘控制器处理的存储指令是经交换器对各存储指令的仲裁协调控制后逐一发出的,这样,在分时机制下保证了多个处理器存储指令复用同一实体存储空间,从而实现了通过硬件方式实现多颗处理器共享同一实体存储空间的目的。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1为本发明实施例中存储控制器的实施结构示意图。
图2为本发明实施例中存储控制器的使用流程示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。
发明人在发明过程中注意到:
目前现有技术中,如果要实现共享同一实体存储空间,即为不同的处理器分配不同的地址空间,通常是通过软件的方式,将存储空间进行逻辑的分隔,组成不同的逻辑存储空间。这样的方式需要对操作系统以及软件做一些改动。
这种方案的不足在于:对操作系统及软件的改变,必然会带来一些兼容性、稳定性的问题,后期维护及升级也需投入较大的人力成本。现有技术中尚未有利用硬件的方式实现共享同一实体存储空间的方案。
针对上述不足,本发明实施例中提供了一种存储控制器及其使用方法,下面进行说明。
图1为本发明实施例中存储控制器的实施结构示意图,如图所示,可以包括至少一个处理器控制器1011、交换器102、以及硬盘控制器103;其中:
各处理器控制器1011,用于分别与其相对应的处理器相连,接收处理器发送的存储指令,并将其发送至交换器102;
交换器102一端与各处理器控制器1011相连,另一端与硬盘控制器103相连,用于将处理器控制器1011发来的存储指令逐一发送至硬盘控制器103;
硬盘控制器103,用于与硬盘相连,在接收到交换器102发来的存储指令时,在存储指令中指示存储的地址空间后发送至硬盘,其中,所指示的地址空间是分配给发出存储指令的处理器的地址空间。
具体实施中,硬盘控制器103可以预先为各处理器在实体存储空间上分配地址空间,这样,相应的存储指令实质上是在专属于发出存储指令的该处理器的地址空间上执行的。
实施中,处理器控制器1011还可以用于在接收到处理器发送的存储指令时,将存储指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至交换器102。
具体实施中,按照协议规范,处理器和硬盘之间是串行进行数据交互的。串行的数据一来频率太高无法处理,再有就是都经过了编码和加扰操作,所以从处理器接收到的存储指令可能无法直接进行处理,因此,需对接收到的存储指令进行串并转换,将串行数据变为并行数据,并进行8b/10b编码转换以及解扰操作,这样才能得到可处理的存储指令,然后将其发送至交换器102。
实施中,处理器控制器1011还可以用于对处理器发送的存储指令进行标识:
具体实施中,处理器控制器1011可以对接收到的存储指令通过打包的方式来进行标识,其目的是是为了标记是由哪个处理器发送的指令。
实施中,硬盘控制器103还可以用于根据标识确定发出存储指令的处理器的地址空间。
具体实施中,标识过的存储指令传送到硬盘控制器103后,硬盘控制器103就可以知道是哪个处理器的存储指令,及对应哪个地址空间。
实施中,处理器控制器1011还可以用于在硬盘控制器103不空闲时,暂存存储指令,在硬盘控制器103空闲时将其发送至交换器102。
具体实施中,处理器控制器1011可能并不是接收到存储指令立马发送给交换器102,而要进行暂存。暂存的作用是等待硬盘控制器103空闲时,将暂存的存储指令发往交换器102。
实施中,硬盘控制器103还可以用于通过修改存储指令的地址域,将其映射到分配给该处理器的地址空间的方式来在存储指令中指示存储的地址空间。
实施中,硬盘控制器103还可以用于在接收到交换器102发来的存储指令时,将存储指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至硬盘。
具体实施中,如前所述,按照协议规范,处理器和硬盘之间是串行进行数据交互的,因此,可以将存储指令进行串并转换,将并行数据变为串行数据,并进行8b/10b编码转换以及加扰操作,这样得到硬盘可处理的存储指令,然后发送至硬盘。
实施中,硬盘控制器103还可以用于在接收到硬盘发来的响应结果时,将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至交换器102。
具体实施中,按照协议规范,处理器和硬盘之间是串行进行数据交互的。串行的数据一来频率太高无法处理,再有就是都经过了编码和加扰操作,所以从硬盘接收到的响应结果可能无法直接进行处理,因此,需对接收到的响应结果进行串并转换,将串行数据变为并行数据,并进行8b/10b编码转换以及解扰操作,这样才能得到可处理的响应结果,然后将其发送至交换器102。
实施中,硬盘控制器103还可以用于通过修改响应结果的地址域,将其反映射到分配给该处理器的地址空间的方式来在响应结果中指示响应的地址空间。
具体实施中,硬盘控制器103将接收到的存储指令中的地址域进行地址映射后发送给硬盘,硬盘本身会将响应结果传回给硬盘控制器103,然后硬盘控制器103在对这个响应结果中的地址域修改后进行地址反映射,再传给交换器102。其中,地址映射与地址反映射是一个互为相反的过程,可以都在硬盘控制器103上完成。
实施中,硬盘控制器103还可以用于在处理器控制器1011不空闲时,暂存响应结果,在处理器控制器1011空闲时将其发送至交换器102。
实施中,硬盘控制器103还可以用于对硬盘发送的响应结果进行标识;交换器102还可以用于根据标识确定接收响应结果的处理器控制器1011。
具体实施中,每个处理器控制器1011对发送给交换器102的存储指令都会进行标识,使硬盘控制器103得知是哪个处理器的指令,硬盘控制器103根据这个标识除了进行地址映射与地址反映射外,还会根据这个标识,将修改后的响应结果通过交换器102发送给对应的处理器。
实施中,处理器控制器1011还可以用于在接收到交换器102发送的响应结果时,将响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送至处理器。
实施中,交换器102可以根据存储指令和Matrix Arbiter算法对存储指令进行仲裁,按照该仲裁结果逐一发送至硬盘控制器103。
具体实施中,交换器102可以进一步包括更新单元、读取单元、判断单元、第一执行单元、第二执行单元、以及第三执行单元,其中:
更新单元,用于更新Matrix Arbiter算法中的仲裁矩阵;
读取单元,用于读取处理器控制器1011发来的第一帧;
判断单元,用于判断第一帧是否为PIO Data In指令,若为PIO Data In指令在转发完毕后进入PIOSetupFIS状态,若为其他指令,则进入RegFIS状态;
第一执行单元,用于对进入RegFIS状态的存储指令,等待Register FIS-Device to Host帧,当收到该帧并接收完毕后,返回初始状态。
第二执行单元,用于对进入PIOSetupFIS状态的存储指令,接收最后一帧,且在该帧E_STATUS域中BSY和DRQ位均为0时,进入DataFIS状态;
第三执行单元,用于对进入DataFIS状态的存储指令,接收最后一帧完毕后,返回初始状态;其中,在返回初始状态时,交换器开始接收多个处理器发送的SATA指令,并进行下一次仲裁。
具体实施中,根据存储指令和Matrix Arbiter算法对各存储指令进行仲裁,仲裁后监控存储指令的发送和响应过程。保证了在分时机制下不同处理器的存储指令复用同一实体存储空间,避免了不同处理器的指令同时发往同一块硬盘而带来的不可预知的错误。
为了描述的方便,以上所述存储控制器的各部分以功能分为各种部件或单元分别描述。当然,在实施本发明时可以把各部件或单元的功能在同一个或多个软件或硬件中实现。
下面结合一个具体的实施示例来进行说明。
硬盘控制器103预先为各处理器在实体存储空间上分配地址空间。存储控制器包含多个处理器控制器,各处理器控制器与其对应的处理器相连,当处理器控制器1011、处理器控制器1012、处理器控制器1013……处理器控制器101N接收到其对应处理器发来的存储指令时,首先将存储指令进行串并转换,8b/10b编码转换以及解扰操作,得到可处理的存储指令;然后通过打包的方式对存储指令进行标识,来标记是由哪个处理器发送的存储指令;其次当硬盘控制器103不空闲时,暂存存储指令;当硬盘控制器103空闲时,将该存储指令发送至交换器102;接着,交换器102根据存储指令和Matrix Arbiter算法对处理器控制器1011、处理器控制器1012、处理器控制器1013……处理器控制器101N发来的存储指令进行仲裁,按照该仲裁结果逐一发送至硬盘控制器103;然后硬盘控制器103根据标识确定发出存储指令的处理器的地址空间;通过修改存储指令的地址域,将其映射到分配给该处理器的地址空间的方式来在存储指令中指示存储的地址空间;找到存储的地址空间后,将存储指令进行串并转换,8b/10b编码转换以及加扰操作后发送至硬盘。
硬盘接收到存储指令后,返回一个响应结果。首先,硬盘控制器103在接收到硬盘发来的响应结果时,将响应结果进行串并转换,8b/10b编码转换以及解扰操作,变为可处理的响应结果;然后通过对这个响应结果中的地址域修改后进行地址反映射,其中,地址映射与地址反映射是一个互为相反的过程;其次对硬盘发送的响应结果进行标识,交换器102根据标识确定接收响应结果的处理器控制器1011;接着,在处理器控制器1011或处理器控制器1012或处理器控制器1013……或处理器控制器101N不空闲时,暂存响应结果,在其空闲时将其发送至交换器102;处理器控制器1011、处理器控制器1012、处理器控制器1013……处理器控制器101N在接收到交换器102发送的响应结果时,将响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送至对应的处理器。至此完成一次完整的交互。
基于同一发明构思,本发明实施例中还提供了一种存储控制器的使用方法,由于该使用方法的原理与一种存储控制器相似,因此该方法的实施可以参见存储控制器的实施,重复之处不再赘述。
图2为本发明实施例中存储控制器的使用流程示意图,如图所示,可以包括如下步骤:
步骤201、处理器控制器1011接收其对应的处理器发送的存储指令,并将该存储指令发送至交换器102;
步骤202、交换器102将处理器控制器1011发来的存储指令逐一发送至硬盘控制器103;
步骤203、硬盘控制器103在接收到交换器102发来的存储指令时,在存储指令中指示存储的地址空间后发送至硬盘,其中,所指示的地址空间是分配给发出存储指令的处理器的地址空间。
进一步的,在处理器控制器1011接收到处理器发送的存储指令时,可以将存储指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至交换器102。
进一步的,在处理器控制器1011接收到处理器发送的存储指令时,可以对处理器发送的存储指令进行标识;
在硬盘控制器103接收到硬盘发送的响应结果时,根据所述标识确定发出存储指令的处理器的地址空间。
进一步的,在处理器控制器1011接收到处理器发送的存储指令时,可以在硬盘控制器103不空闲时,暂存存储指令,在硬盘控制器103空闲时将其发送至交换器102。
进一步的,在硬盘控制器103在接收到交换器102发来的存储指令时,可以通过修改存储指令的地址域的方式来在存储指令中指示存储的地址空间,将存储指令映射到分配给该处理器的地址空间。
进一步的,在硬盘控制器103接收到交换器102发来的存储指令时,可以将存储指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至硬盘。
进一步的,在硬盘控制器103将存储指令发送至硬盘后,接收硬盘发来的响应结果,可以将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至交换器102。
进一步的,在硬盘控制器103接收到硬盘发来的响应结果时,可以通过修改响应结果的地址域,将其反映射到分配给该处理器的地址空间的方式来在响应结果中指示响应的地址空间。
进一步的,在硬盘控制器103接收到硬盘发来的响应结果时,可以在处理器控制器1011不空闲时,暂存响应结果,在处理器控制器1011空闲时将其发送至交换器102。
进一步的,在硬盘控制器103接收到硬盘发来的响应结果时,可以对硬盘发送的响应结果进行标识;
在处理器控制器1011接收交换器102发送的响应结果时,可以根据标识确定接收响应结果的处理器控制器1011。
进一步的,在处理器控制器1011接收到交换器102发送的响应结果时,可以将响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送至处理器。
进一步的,在交换器102将存储指令逐一发送至硬盘控制器103时,可以根据存储指令和Matrix Arbiter算法对存储指令进行仲裁,按照该仲裁结果逐一发送至硬盘控制器103。
进一步的,在交换器对存储指令进行仲裁后,可以进行以下步骤:
更新Matrix Arbiter算法中的仲裁矩阵;
读取处理器控制器1011发来的第一帧;
判断第一帧是否为PIO Data In指令,若为PIO Data In指令,在转发完毕后进入PIOSetupFIS状态,若为其他指令,则进入RegFIS状态;
对进入RegFIS状态的存储指令,等待Register FIS-Device to Host帧,当收到该帧并接收完毕后,返回初始状态;
对进入PIOSetupFIS状态的存储指令,接收完最后一帧,且在该帧E_STATUS域中BSY和DRQ位均为0时,进入DataFIS状态;
对进入DataFIS状态的存储指令,接收最后一个数据帧完毕后,返回初始状态;其中,在返回初始状态时,开始接收多个处理器发送的SATA指令,并进行下一次仲裁。
实施中,存储指令和响应结果都可以是以帧的形式存在。
进一步的,在物理层对存储指令或响应结果进行串并转换,8b/10b编码转换。
进一步的,在链路层对存储指令或响应结果进行加解扰操作。
进一步的,在链路层对存储指令进行CRC校验。
进一步的,在链路层对存储指令的发送及接收进行流控。
进一步的,在传输层上,接收到从链路层发来的帧;检查帧头以及长度,若丢弃错误的帧时,告知链路层。
进一步的,在传输层上,接收到从网络层发来的帧;检查帧头以及长度,若丢弃错误的帧时,告知网络层。
进一步的,在传输层上,接收到从网络层发来的存储指令;
将存储指令按照指令中指示存储的地址空间,映射到分配给该处理器的地址空间。
进一步的,在传输层上,接收到从链路层发来的响应结果;
将响应结果按照地址空间的标识,映射到发出响应结果的硬盘对应的处理器的地址空间。
进一步的,在网络层上,对传输层接收到的存储指令进行标识;发送至交换器102。
进一步的,在网络层上,接收到从交换器102发来的响应结果;发送至传输层。
本发明实施例提供的存储控制器及其使用方法,通过由硬盘控制器预先为各处理器在实体上分配存储空间,交换器按排序等方式逐一发送存储指令至硬盘控制器,在分时机制下保证了多个处理器存储指令复用同一实体存储空间,从而实现了通过硬件方式实现多颗处理器共享同一实体存储空间的目的。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制。因此,在不背离本发明的精神及其实质的情况下,本领域技术人员可作出各种改变、替换和变型。很显然,但这些改变、替换和变型都应涵盖于本发明权利要求的保护范围之内。

Claims (36)

1.一种存储控制器,其特征在于,所述存储控制器包括:至少一个处理器控制器、交换器、以及硬盘控制器;其中:
各处理器控制器,用于分别与其相对应的处理器相连,接收处理器发送的存储指令,并将其发送至交换器;
交换器一端与各处理器控制器相连,另一端与硬盘控制器相连,用于将处理器控制器发来的存储指令逐一发送至硬盘控制器;
硬盘控制器,用于与硬盘相连,在接收到交换器发来的存储指令时,在存储指令中指示存储的地址空间后发送至硬盘,其中,所指示的地址空间是分配给发出存储指令的处理器的地址空间。
2.如权利要求1所述的存储控制器,其特征在于,所述处理器控制器进一步用于在接收到处理器发送的存储指令时,将存储指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至交换器。
3.如权利要求1所述的存储控制器,其特征在于,所述处理器控制器进一步用于对处理器发送的存储指令进行标识;
所述硬盘控制器进一步用于根据所述标识确定发出存储指令的处理器的地址空间。
4.如权利要求1所述的存储控制器,其特征在于,所述处理器控制器进一步用于在硬盘控制器不空闲时,暂存存储指令,在硬盘控制器空闲时将其发送至交换器。
5.如权利要求1所述的存储控制器,其特征在于,所述硬盘控制器进一步用于通过修改存储指令的地址域,将其映射到分配给该处理器的地址空间的方式来在存储指令中指示存储的地址空间。
6.如权利要求5所述的存储控制器,其特征在于,所述硬盘控制器进一步用于在接收到交换器发来的存储指令时,将存储指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至硬盘。
7.如权利要求1所述的存储控制器,其特征在于,所述硬盘控制器进一步用于在接收到硬盘发来的响应结果时,将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至交换器。
8.如权利要求7所述的存储控制器,其特征在于,所述硬盘控制器进一步用于通过修改响应结果的地址域,将其反映射到分配给该处理器的地址空间的方式来在响应结果中指示响应的地址空间。
9.如权利要求1所述的存储控制器,其特征在于,所述硬盘控制器进一步用于在处理器控制器不空闲时,暂存响应结果,在处理器控制器空闲时将其发送至交换器。
10.如权利要求1所述的存储控制器,其特征在于,所述硬盘控制器进一步用于对硬盘发送的响应结果进行标识;
所述交换器进一步用于根据所述标识确定接收响应结果的处理器控制器。
11.如权利要求1所述的存储控制器,其特征在于,所述处理器控制器进一步用于在接收到交换器发送的响应结果时,将响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送至处理器。
12.如权利要求1至11任一所述的存储控制器,其特征在于,所述交换器根据存储指令和Matrix Arbiter算法对存储指令进行仲裁,按照该仲裁结果逐一发送至硬盘控制器。
13.如权利要求12所述的存储控制器,其特征在于,所述交换器进一步包括更新单元、读取单元、判断单元、第一执行单元、第二执行单元、以及第三执行单元,其中:
更新单元,用于更新Matrix Arbiter算法中的仲裁矩阵;
读取单元,用于读取处理器控制器发来的第一帧;
判断单元,用于判断第一帧是否为PIO Data In指令,若为PIO Data In指令在转发完毕后进入PIOSetupFIS状态,若为其他指令,则进入RegFIS状态;
第一执行单元,用于对进入RegFIS状态的存储指令,等待Register FIS-Device to Host帧,当收到该帧并接收完毕后,返回初始状态。
第二执行单元,用于对进入PIOSetupFIS状态的存储指令,接收最后一帧,且在该帧E_STATUS域中BSY和DRQ位均为0时,进入DataFIS状态;
第三执行单元,用于对进入DataFIS状态的存储指令,接收最后一帧完毕后,返回初始状态;
其中,在返回初始状态时,交换器开始接收多个处理器发送的SATA指令,并进行下一次仲裁。
14.如权利要求1至13任一所述的存储控制器的使用方法,其特征在于,所述方法包括步骤:
处理器控制器接收其对应的处理器发送的存储指令,并将该存储指令发送至交换器;
交换器将处理器控制器发来的存储指令逐一发送至硬盘控制器;
硬盘控制器在接收到交换器发来的存储指令时,在存储指令中指示存储的地址空间后发送至硬盘,其中,所指示的地址空间是分配给发出存储指令的处理器的地址空间。
15.如权利要求14所述的使用方法,其特征在于,在处理器控制器接收到处理器发送的存储指令时,进一步包括,将存储指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至交换器。
16.如权利要求14所述的使用方法,其特征在于,在处理器控制器接收到处理器发送的存储指令时,进一步包括,对处理器发送的存储指令进行标识;
在硬盘控制器接收到硬盘发送的响应结果时,进一步包括,根据所述标识确定发出存储指令的处理器的地址空间。
17.如权利要求14所述的使用方法,其特征在于,在处理器控制器接收到处理器发送的存储指令时,进一步包括,在硬盘控制器不空闲时,暂存存储指令,在硬盘控制器空闲时将其发送至交换器。
18.如权利要求14所述的使用方法,其特征在于,在硬盘控制器在接收到交换器发来的存储指令时,进一步包括,通过修改存储指令的地址域的方式来在存储指令中指示存储的地址空间,将存储指令映射到分配给该处理器的地址空间。
19.如权利要求18所述的使用方法,其特征在于,在硬盘控制器接收到交换器发来的存储指令时,进一步包括,将存储指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至硬盘。
20.如权利要求14所述的使用方法,其特征在于,在硬盘控制器将存储指令发送至硬盘后,进一步包括,接收硬盘发来的响应结果,将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至交换器。
21.如权利要求20所述的使用方法,其特征在于,在硬盘控制器接收到硬盘发来的响应结果时,进一步包括,通过修改响应结果的地址域,将其反映射到分配给该处理器的地址空间的方式来在响应结果中指示响应的地址空间。
22.如权利要求20所述的使用方法,其特征在于,在硬盘控制器接收到硬盘发来的响应结果时,进一步包括,在处理器控制器不空闲时,暂存响应结果,在处理器控制器空闲时将其发送至交换器。
23.如权利要求20所述的使用方法,其特征在于,在硬盘控制器接收到硬盘发来的响应结果时,进一步包括,对硬盘发送的响应结果进行标识;
在处理器控制器接收交换器发送的响应结果时,进一步包括,根据所述标识确定接收响应结果的处理器控制器。
24.如权利要求20所述的使用方法,其特征在于,在处理器控制器接收到交换器发送的响应结果时,进一步包括,将响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送至处理器。
25.如权利要求14至24任一所述的使用方法,其特征在于,在交换器将存储指令逐一发送至硬盘控制器时,根据存储指令和Matrix Arbiter算法对存储指令进行仲裁,按照该仲裁结果逐一发送至硬盘控制器。
26.如权利要求25所述的使用方法,其特征在于,在交换器对存储指令进行仲裁后,进一步包括:
更新Matrix Arbiter算法中的仲裁矩阵;
读取处理器控制器发来的第一帧;
判断第一帧是否为PIO Data In指令,若为PIO Data In指令,在转发完毕后进入PIOSetupFIS状态,若为其他指令,则进入RegFIS状态;
对进入RegFIS状态的存储指令,等待Register FIS-Device to Host帧,当收到该帧并接收完毕后,返回初始状态;
对进入PIOSetupFIS状态的存储指令,接收完最后一帧,且在该帧E_STATUS域中BSY和DRQ位均为0时,进入DataFIS状态;
对进入DataFIS状态的存储指令,接收最后一个数据帧完毕后,返回初始状态;
其中,在返回初始状态时,开始接收多个处理器发送的SATA指令,并进行下一次仲裁。
27.如权利要求14所述的使用方法,其特征在于,在物理层对存储指令或响应结果进行串并转换,8b/10b编码转换。
28.如权利要求14所述的使用方法,其特征在于,在链路层对存储指令或响应结果进行加解扰操作。
29.如权利要求28所述的使用方法,其特征在于,在链路层对存储指令进行CRC校验。
30.如权利要求29所述的使用方法,其特征在于,在链路层对存储指令的发送及接收进行流控。
31.如权利要求14所述的使用方法,其特征在于,
在传输层上,接收到从链路层发来的帧;
检查帧头以及长度,若丢弃错误的帧时,告知链路层。
32.如权利要求31所述的使用方法,其特征在于,
在传输层上,接收到从网络层发来的帧;
检查帧头以及长度,若丢弃错误的帧时,告知网络层。
33.如权利要求31所述的使用方法,其特征在于,
在传输层上,接收到从网络层发来的存储指令;
将存储指令按照指令中指示存储的地址空间,映射到分配给该处理器的地址空间。
34.如权利要求33所述的使用方法,其特征在于,
在传输层上,接收到从链路层发来的响应结果;
将响应结果按照地址空间的标识,映射到发出响应结果的硬盘对应的处理器的地址空间。
35.如权利要求14所述的使用方法,其特征在于,
在网络层上,对传输层接收到的存储指令进行标识;
发送至交换器。
36.如权利要求35所述的使用方法,其特征在于,
在网络层上,接收到从交换器发来的响应结果;
发送至传输层。
CN201410304951.8A 2014-06-30 2014-06-30 一种存储控制器及其使用方法 Active CN104050115B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410304951.8A CN104050115B (zh) 2014-06-30 2014-06-30 一种存储控制器及其使用方法
US15/323,083 US10338813B2 (en) 2014-06-30 2015-04-22 Storage controller and using method therefor
PCT/CN2015/077172 WO2016000478A1 (zh) 2014-06-30 2015-04-22 一种存储控制器及其使用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410304951.8A CN104050115B (zh) 2014-06-30 2014-06-30 一种存储控制器及其使用方法

Publications (2)

Publication Number Publication Date
CN104050115A true CN104050115A (zh) 2014-09-17
CN104050115B CN104050115B (zh) 2017-02-08

Family

ID=51502990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410304951.8A Active CN104050115B (zh) 2014-06-30 2014-06-30 一种存储控制器及其使用方法

Country Status (3)

Country Link
US (1) US10338813B2 (zh)
CN (1) CN104050115B (zh)
WO (1) WO2016000478A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104657086A (zh) * 2015-02-02 2015-05-27 曙光云计算技术有限公司 云服务器的数据存储方法和系统
CN105184195A (zh) * 2015-07-31 2015-12-23 山东超越数控电子有限公司 一种多硬盘分时销毁的设计方法
WO2016000478A1 (zh) * 2014-06-30 2016-01-07 曙光云计算技术有限公司 一种存储控制器及其使用方法
CN109213436A (zh) * 2017-06-30 2019-01-15 慧荣科技股份有限公司 降低快闪储存介面中传收数据错误方法及装置
CN113259474A (zh) * 2021-06-10 2021-08-13 苏州浪潮智能科技有限公司 一种存储管理方法、系统、存储介质及设备
WO2022142173A1 (zh) * 2020-12-29 2022-07-07 华为技术有限公司 一种数据校验方法及其相关设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112437342B (zh) * 2020-05-14 2022-09-23 上海哔哩哔哩科技有限公司 一种视频编辑的方法及设备
CN114721984B (zh) * 2022-03-30 2024-03-26 湖南长城银河科技有限公司 面向低延时应用的sata接口数据传输方法和系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232846A (ja) * 1997-02-18 1998-09-02 Ricoh Co Ltd ネットワーク通信に適用される電子機器、ネットワーク通信に適用される電子機器のネットワーク通信方法およびその方法をコンピュータに実行させるプログラムを記録した機械読み取り可能な記録媒体
US6763030B1 (en) * 1997-08-05 2004-07-13 Micron Technology, Inc. Simplified switching hub for data communication networks
JP3166692B2 (ja) * 1997-12-09 2001-05-14 日本電気株式会社 符号化回路
US6275900B1 (en) * 1999-01-27 2001-08-14 International Business Machines Company Hybrid NUMA/S-COMA system and method
US7076627B2 (en) * 2001-06-29 2006-07-11 Intel Corporation Memory control for multiple read requests
US7380085B2 (en) * 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
JP2005318073A (ja) * 2004-04-27 2005-11-10 Hitachi Ltd 通信装置、その動作プログラム、及び通信方法
US7257655B1 (en) * 2004-10-13 2007-08-14 Altera Corporation Embedded PCI-Express implementation
CN101233786B (zh) * 2005-06-05 2013-05-29 斯达克实验室公司 用于无线音频设备的通信系统
US7788420B2 (en) * 2005-09-22 2010-08-31 Lsi Corporation Address buffer mode switching for varying request sizes
KR101355308B1 (ko) * 2007-07-25 2014-02-07 삼성전자주식회사 무선 센서 네트워크 내에서 데이터를 송수신하는 방법
CN201142696Y (zh) * 2007-12-18 2008-10-29 张家港市万科信息技术有限公司 基于ip方式的嵌入式硬盘阵列控制器
JP2010072753A (ja) * 2008-09-16 2010-04-02 Hitachi Ltd 自動拡張ボリューム及び省電力機能を備えたストレージシステム
US10133883B2 (en) * 2009-02-09 2018-11-20 International Business Machines Corporation Rapid safeguarding of NVS data during power loss event
US8514976B2 (en) * 2010-09-27 2013-08-20 Qualcomm Incorporated Method and apparatus for coding and interleaving for very high throughput wireless communications
US8825988B2 (en) * 2010-11-12 2014-09-02 Advanced Micro Devices, Inc. Matrix algorithm for scheduling operations
CN102063274B (zh) * 2010-12-30 2013-10-09 华为技术有限公司 存储阵列和存储系统及数据访问方法
US8861371B2 (en) * 2011-11-21 2014-10-14 Verizon Patent And Licensing Inc. Service status signaling in Ethernet networks
CN102662887B (zh) * 2012-05-03 2015-05-20 天津市英贝特航天科技有限公司 一种多端口随机存储器
JP5730446B1 (ja) * 2014-03-18 2015-06-10 株式会社東芝 トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム
CN104050115B (zh) * 2014-06-30 2017-02-08 曙光信息产业(北京)有限公司 一种存储控制器及其使用方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016000478A1 (zh) * 2014-06-30 2016-01-07 曙光云计算技术有限公司 一种存储控制器及其使用方法
US10338813B2 (en) 2014-06-30 2019-07-02 Dawning Cloud Computing Group Co., Ltd Storage controller and using method therefor
CN104657086A (zh) * 2015-02-02 2015-05-27 曙光云计算技术有限公司 云服务器的数据存储方法和系统
CN104657086B (zh) * 2015-02-02 2019-01-04 曙光云计算集团有限公司 云服务器的数据存储方法和系统
CN105184195A (zh) * 2015-07-31 2015-12-23 山东超越数控电子有限公司 一种多硬盘分时销毁的设计方法
CN109213436A (zh) * 2017-06-30 2019-01-15 慧荣科技股份有限公司 降低快闪储存介面中传收数据错误方法及装置
CN109213436B (zh) * 2017-06-30 2021-08-24 慧荣科技股份有限公司 降低快闪储存介面中传收数据错误方法及装置
WO2022142173A1 (zh) * 2020-12-29 2022-07-07 华为技术有限公司 一种数据校验方法及其相关设备
CN113259474A (zh) * 2021-06-10 2021-08-13 苏州浪潮智能科技有限公司 一种存储管理方法、系统、存储介质及设备
WO2022257338A1 (zh) * 2021-06-10 2022-12-15 苏州浪潮智能科技有限公司 一种存储管理方法、系统、存储介质及设备
US11907591B1 (en) 2021-06-10 2024-02-20 Inspur Suzhou Intelligent Technology Co., Ltd. Method and system for storage management, storage medium and device

Also Published As

Publication number Publication date
CN104050115B (zh) 2017-02-08
US20170206013A1 (en) 2017-07-20
US10338813B2 (en) 2019-07-02
WO2016000478A1 (zh) 2016-01-07

Similar Documents

Publication Publication Date Title
CN104050115A (zh) 一种存储控制器及其使用方法
CN105993009B (zh) 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置
US9965826B2 (en) Resource management
KR20200017363A (ko) 호스트 스토리지 서비스들을 제공하기 위한 NVMe 프로토콜에 근거하는 하나 이상의 호스트들과 솔리드 스테이트 드라이브(SSD)들 간의 관리되는 스위칭
KR102209525B1 (ko) 마이크로 서버, mac 주소 할당 방법 및 컴퓨터 판독가능 기록매체
JP2005122640A (ja) サーバシステム及びi/oスロット共有方法。
US10409519B2 (en) Interface device, and computer system including interface device
CN103942087A (zh) 虚拟机热迁移方法及相关装置和集群系统
JP2005284343A (ja) ストレージ装置
US9336032B2 (en) Zoning data to a virtual machine
US20200151130A1 (en) Queue depth management for host systems accessing a peripheral component interconnect express (pcie) device via a pcie switch
KR102387922B1 (ko) 솔리드 스테이트 드라이브의 비동기 이벤트 요청 명령 처리 방법 및 시스템
EP2570913A1 (en) Method and system for accessing storage device
CN103873489A (zh) 具有PCIe接口的装置共享系统及方法
CN106484549A (zh) 一种交互方法、NVMe设备、HOST及物理机系统
CN103176913B (zh) 硬盘动态映射方法与应用其的服务器
US10459768B2 (en) Computer system, management system, and resource management method
US7865587B1 (en) System and method for reassigning port names on storage controller to minimize host traffic disruption
US9459910B1 (en) Controlling a layered driver
CN105718211B (zh) 信息处理设备和信息处理方法
EP2782002A2 (en) Control device, storage system, and control program
KR101676159B1 (ko) 드라이브 컨트롤러를 포함하는 저장 장치 및 상기 드라이브 컨트롤러가 수행하는 주소 사상 방법
US9436621B1 (en) Layered device driver
CN103812893A (zh) 虚拟桌面外部设备传输方法及系统
CN105264498B (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
TR01 Transfer of patent right

Effective date of registration: 20200826

Address after: 215300 No.88 Nansong Road, Yushan Town, Kunshan City, Suzhou City, Jiangsu Province

Patentee after: ZHONGKE CONTROLLABLE INFORMATION INDUSTRY Co.,Ltd.

Address before: 100193, 36 building, Zhongguancun Software Park, 8 northeast Wang Xi Road, Beijing, Haidian District

Patentee before: Dawning Information Industry (Beijing) Co.,Ltd.

TR01 Transfer of patent right