WO2016000478A1 - 一种存储控制器及其使用方法 - Google Patents
一种存储控制器及其使用方法 Download PDFInfo
- Publication number
- WO2016000478A1 WO2016000478A1 PCT/CN2015/077172 CN2015077172W WO2016000478A1 WO 2016000478 A1 WO2016000478 A1 WO 2016000478A1 CN 2015077172 W CN2015077172 W CN 2015077172W WO 2016000478 A1 WO2016000478 A1 WO 2016000478A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processor
- controller
- hard disk
- sent
- storage
- Prior art date
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/16—Handling requests for interconnection or transfer for access to memory 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/0608—Saving storage space on 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk 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/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
Definitions
- the present invention relates to the field of computer technologies, and in particular, to a memory controller and a method for using the same.
- the storage space is logically separated by software to form different logical storage spaces.
- the present invention provides a memory controller and a method for using the same, which are used to implement multiple processor storage instructions to multiplex the same physical storage space by hardware.
- the present invention provides a memory controller comprising: at least one processor controller, a switch, and a hard disk controller; wherein:
- Each processor controller is configured to be respectively connected to a corresponding processor, receive a storage instruction sent by the processor, and send the storage instruction to the switch;
- One end of the switch is connected to each processor controller, and the other end is connected to the hard disk controller, and is used to send the storage instructions sent by the processor controller to the hard disk controller one by one, and send the response result sent by the hard disk controller.
- the hard disk controller is connected to the hard disk, receives the storage instruction sent by the switch, and sends the response result of the hard disk after being sent to the hard disk.
- the invention also provides a method for using a storage controller, comprising:
- the processor controller receives the storage instruction sent by its corresponding processor and sends the storage instruction to the switch;
- the switch sends the storage instructions sent by the processor controller to the hard disk controller one by one;
- the hard disk controller When receiving the storage instruction sent by the switch, the hard disk controller sends the address space to the hard disk after indicating the stored address space in the storage instruction, wherein the indicated address space is an address space allocated to the processor that issues the storage instruction.
- the storage instructions issued by the processors are sent to the hard disk controller one by one by the switch, and the hard disk controller indicates the stored address space in the storage instruction, and then sends the storage address to the hard disk, where The indicated address space is the address space allocated to the processor that issued the store instruction.
- the corresponding storage instruction is substantially executed on the address space of the processor exclusively for issuing the storage instruction, and the hard disk is
- the storage instruction processed by the controller is issued one by one after the arbitration coordination control of each storage instruction by the switch, so that under the time sharing mechanism, multiple processor storage instructions are multiplexed with the same physical storage space, thereby realizing the hardware passing through The way to achieve the purpose of multiple processors sharing the same physical storage space.
- FIG. 1 is a schematic structural diagram of an implementation of a memory controller according to an embodiment of the present invention.
- FIG. 2 is a schematic diagram of a usage flow of a storage controller according to an embodiment of the present invention.
- FIG. 1 is a schematic structural diagram of an implementation of a storage controller according to an embodiment of the present invention. As shown, at least one processor controller 1011, a switch 102, and a hard disk controller 103 may be included;
- Each processor controller 1011 is configured to be connected to its corresponding processor, receive a storage instruction sent by the processor, and send it to the switch 102;
- the switch 102 is connected to the processor controller 1011 at one end, and is connected to the hard disk controller 103 at the other end, and is configured to send the storage command sent by the processor controller 1011 to the hard disk controller 103 one by one;
- the hard disk controller 103 is configured to be connected to the hard disk.
- the storage address is indicated in the storage instruction and then sent to the hard disk, where the indicated address space is allocated to the storage device.
- the address space of the processor of the instruction is configured to be connected to the hard disk.
- the hard disk controller 103 may allocate an address space on the physical storage space for each processor in advance, such that the corresponding storage instruction is substantially executed on the address space of the processor exclusively for issuing the storage instruction.
- the processor controller 1011 is further configured to perform a serial-to-parallel conversion, 8b/10b code conversion, and descrambling operation on the storage instruction sent by the processor, and then send the same to the switch 102.
- serial data interaction is performed serially between the processor and the hard disk.
- the serial data is too high to be processed, and then both are encoded and scrambled, so the stored instructions received from the processor may not be processed directly. Therefore, the received storage instructions need to be serialized.
- the processor controller 1011 can also be used to mark the storage instructions sent by the processor. knowledge;
- the processor controller 1011 may identify the received storage instruction by means of packing, and the purpose is to mark which processor is sent by the processor.
- the hard disk controller 103 can also be configured to determine an address space of a processor that issues a store instruction based on the identification.
- the hard disk controller 103 can know which processor stores the storage instruction and which address space.
- the processor controller 1011 can also be used to temporarily store the storage command when the hard disk controller 103 is not idle, and send it to the switch 102 when the hard disk controller 103 is idle.
- the processor controller 1011 may not send the storage instruction to the switch 102 immediately, but may perform temporary storage.
- the role of the temporary storage is to send the temporarily stored storage instructions to the switch 102 while the hard disk controller 103 is idle.
- the hard disk controller 103 can also be used to indicate the stored address space in the store instruction by modifying the address field of the store instruction to map it to the address space allocated to the processor.
- the hard disk controller 103 can also be configured to perform serial-to-parallel conversion, 8b/10b code conversion and scrambling operations, and then send the storage instructions to the hard disk when receiving the storage instruction sent by the switch 102.
- the data is serially exchanged between the processor and the hard disk. Therefore, the storage instruction can be serial-to-parallel converted, the parallel data is converted into serial data, and 8b is performed. /10b code conversion and scrambling operation, so that the storage instructions that the hard disk can process are sent to the hard disk.
- the hard disk controller 103 can also be configured to perform serial-to-parallel conversion, 8b/10b code conversion and descrambling operations, and then send to the switch 102 after receiving the response result sent by the hard disk.
- serial data interaction is performed serially between the processor and the hard disk.
- the serial data is too high to be processed, and then both are encoded and scrambled, so the response received from the hard disk may not be processed directly. Therefore, the received response is serialized.
- the conversion converts the serial data into parallel data and performs 8b/10b transcoding and descrambling operations to obtain a processable response result, which is then sent to the switch 102.
- the hard disk controller 103 can also be used to indicate the address of the response in the response result by modifying the address field of the response result and de-mapping it to the address space allocated to the processor. between.
- the hard disk controller 103 performs address mapping on the received storage command and sends the address to the hard disk.
- the hard disk itself transmits the response result to the hard disk controller 103, and then the hard disk controller 103 responds to the result.
- the address field in the modification is subjected to address de-mapping and then transmitted to the switch 102.
- the address mapping and the address de-mapping are mutually opposite processes, which can all be completed on the hard disk controller 103.
- the hard disk controller 103 can also be used to temporarily store the response result when the processor controller 1011 is not idle, and send it to the switch 102 when the processor controller 1011 is idle.
- the hard disk controller 103 can also be used to identify the response result sent by the hard disk; the switch 102 can also be used to determine the processor controller 1011 that receives the response result according to the identifier.
- each processor controller 1011 identifies the storage instruction sent to the switch 102, so that the hard disk controller 103 knows which processor the instruction is, and the hard disk controller 103 performs address mapping according to the identifier. In addition to the address de-mapping, the modified response result is sent to the corresponding processor through the switch 102 according to the identifier.
- the processor controller 1011 is further configured to perform a serial-to-parallel conversion, 8b/10b code conversion, and scrambling operation on the response result sent by the switch 102, and then send the result to the processor.
- the switch 102 can arbitrate the storage instructions according to the storage instruction and the Matrix Arbiter algorithm, and send them to the hard disk controller 103 one by one according to the arbitration result.
- the switch 102 may further include an update unit, a reading unit, a determining unit, a first executing unit, a second executing unit, and a third executing unit, where:
- a reading unit configured to read the first frame sent by the processor controller 1011;
- the determining unit is configured to determine whether the first frame is a PIO Data In command, and if the PIO Data In command enters the PIOSetupFIS state after the forwarding is completed, if it is another instruction, the RegFIS state is entered;
- the first execution unit is configured to wait for the Register FIS-Device to Host frame to enter the RegFIS state, and return to the initial state after receiving the frame and receiving the frame.
- a second execution unit configured to receive a last instruction into a PIOSetupFIS state storage instruction, and enter a DataFIS state when both the BSY and DRQ bits are 0 in the E_STATUS field of the frame;
- the third execution unit is configured to return to the initial state after receiving the last frame after receiving the storage instruction of the DataFIS state; wherein, when returning to the initial state, the switch starts to receive the SATA command sent by the multiple processors, and performs the next One arbitration.
- each storage instruction is arbitrated according to the storage instruction and the Matrix Arbiter algorithm, and the transmission and response process of the storage instruction is monitored after the arbitration. It ensures that the storage instructions of different processors multiplex the same physical storage space under the time-sharing mechanism, and avoid the unpredictable errors caused by the instructions of different processors being sent to the same hard disk at the same time.
- the hard disk controller 103 allocates an address space on the physical storage space for each processor in advance.
- the storage controller includes a plurality of processor controllers, each of which is coupled to its corresponding processor, when the processor controller 1011, the processor controller 1012, the processor controller 1013, ...
- the processor controller 101N receives When it corresponds to the storage instruction sent by the processor, the storage instruction is first serial-to-parallel converted, 8b/10b code conversion and descrambling operation, and a storage instruction that can be processed is obtained; then the storage instruction is marked by the packing method to mark Which storage instruction is sent by which processor; secondly, when the hard disk controller 103 is not idle, the storage instruction is temporarily stored; when the hard disk controller 103 is idle, the storage instruction is sent to the switch 102; then, the switch 102 is stored according to the storage
- the instruction and the Matrix Arbiter algorithm arbitrate the storage instructions sent by the processor controller 1011, the processor controller 1012, the processor controller 1013, ...
- the hard disk controller 103 determines the address space of the processor that issued the store instruction based on the identification; by modifying the store instruction The address field, mapping it to the address space allocated to the processor to indicate the stored address space in the store instruction; after finding the stored address space, the store instruction is serial-to-parallel converted, 8b/10b code conversion and addition The disturbance is sent to the hard disk.
- the hard disk After the hard disk receives the store instruction, it returns a response result.
- the hard disk controller 103 serially converts the response result, 8b/10b code conversion and descrambling operation, and becomes a processable response result; and then passes the response result.
- the address field is modified to perform address de-mapping, where address mapping and address de-mapping are mutually opposite processes;
- the response result sent by the hard disk is identified, and the switch 102 determines the processor controller 1011 that receives the response result according to the identifier; then, at the processor controller 1011 or the processor controller 1012 or the processor controller 1013...
- the controller 101N When the controller 101N is not idle, the response result is temporarily stored, and when it is idle, it is sent to the switch 102; the processor controller 1011, the processor controller 1012, the processor controller 1013, ... the processor controller 101N is Upon receiving the response result sent by the switch 102, the response result is serial-to-parallel converted, and after the 8b/10b code conversion and scrambling operation, it is sent to the corresponding processor. This completes a complete interaction.
- a method for using a storage controller is also provided in the embodiment of the present invention. Since the principle of the method is similar to that of a storage controller, the implementation of the method can be implemented by referring to the implementation of the storage controller. It will not be repeated here.
- FIG. 2 is a schematic diagram of a usage flow of a storage controller according to an embodiment of the present invention. As shown in the figure, the following steps may be included:
- Step 201 the processor controller 1011 receives the storage instruction sent by its corresponding processor, and sends the storage instruction to the switch 102;
- Step 202 the switch 102 sends the storage instructions sent by the processor controller 1011 one by one to the hard disk controller 103;
- Step 203 When receiving the storage instruction sent by the switch 102, the hard disk controller 103 sends the address space indicated in the storage instruction to the hard disk, where the indicated address space is allocated to the processor that issues the storage instruction. Address space.
- the processor controller 1011 when the processor controller 1011 receives the storage instruction sent by the processor, the storage instruction may be serial-to-parallel converted, 8b/10b code conversion and descrambling operation, and then sent to the switch 102.
- the processor controller 1011 receives the storage instruction sent by the processor, the storage instruction sent by the processor may be identified;
- the address space of the processor that issues the storage instruction is determined according to the identifier.
- the storage command may be temporarily stored when the hard disk controller 103 is not idle, and sent to the switch 102 when the hard disk controller 103 is idle.
- the hard disk controller 103 may indicate the stored address space in the storage instruction by modifying the address field of the storage instruction, and map the storage instruction to the storage instruction.
- the address space of the processor may indicate the stored address space in the storage instruction by modifying the address field of the storage instruction, and map the storage instruction to the storage instruction.
- the storage instruction may be serial-to-parallel converted, 8b/10b code conversion and scramble operation, and then sent to the hard disk.
- the hard disk controller 103 sends the storage command to the hard disk
- the response result sent by the hard disk is received, and the response result can be serial-to-parallel converted, 8b/10b code conversion and descrambling operation, and then sent to the switch 102.
- the response field may be indicated in the response result by modifying the address field of the response result and mapping it to the address space allocated to the processor. Address space.
- the hard disk controller 103 when the hard disk controller 103 receives the response result from the hard disk, the response may be temporarily stored when the processor controller 1011 is not idle, and sent to the switch 102 when the processor controller 1011 is idle.
- the hard disk controller 103 when the hard disk controller 103 receives the response result sent by the hard disk, the response result sent by the hard disk may be identified;
- the processor controller 1011 When the processor controller 1011 receives the response result transmitted by the switch 102, the processor controller 1011 that receives the response result may be determined based on the identification.
- the processor controller 1011 when the processor controller 1011 receives the response result sent by the switch 102, the response result may be serial-to-parallel converted, 8b/10b code conversion and scramble operation, and then sent to the processor.
- the storage instructions may be arbitrated according to the storage instruction and the Matrix Arbiter algorithm, and sent to the hard disk controller 103 one by one according to the arbitration result.
- the storage instruction entering the PIOSetupFIS state receives the last frame, and enters the DataFIS state when both the BSY and DRQ bits are 0 in the E_STATUS field of the frame;
- the storage instruction entering the DataFIS state returns to the initial state; wherein, when returning to the initial state, the SATA command sent by the plurality of processors is started to be received, and the next arbitration is performed.
- both the store instruction and the response result may be in the form of a frame.
- the storage instruction or the response result is serial-to-parallel conversion at the physical layer, and the 8b/10b code conversion is performed.
- a descrambling operation is performed on the storage instruction or the response result at the link layer.
- the storage layer is CRC-checked at the link layer.
- the transmission and reception of the storage instruction are flow-controlled at the link layer.
- a frame sent from the link layer is received; the frame header and the length are checked, and if the wrong frame is discarded, the link layer is notified.
- a frame sent from the network layer is received; the frame header and the length are checked, and when the wrong frame is discarded, the network layer is notified.
- the store instruction is mapped to the address space allocated to the processor in accordance with the address space stored in the instruction.
- the response result is mapped to the address space of the processor corresponding to the hard disk that sends the response according to the identifier of the address space.
- the storage instruction received by the transport layer is identified; and sent to the switch 102.
- the response result sent from the switch 102 is received; and sent to the transport layer.
- the storage unit is allocated to each processor in advance by the hard disk controller, and the switch sends the storage instruction one by one to the hard one by way of sorting.
- the disk controller ensures that multiple processor storage instructions multiplex the same physical storage space under the time sharing mechanism, thereby realizing the purpose of realizing multiple processors sharing the same physical storage space through hardware.
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所述的存储控制器,其特征在于,所述处理器控制器进一步用于在接收到处理器发送的存储指令时,将存储指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至交换器。
- 如权利要求1所述的存储控制器,其特征在于,所述处理器控制器进一步用于对处理器发送的存储指令进行标识;所述硬盘控制器进一步用于根据所述标识确定发出存储指令的处理器的地址空间。
- 如权利要求1所述的存储控制器,其特征在于,所述处理器控制器进一步用于在硬盘控制器不空闲时,暂存存储指令,在硬盘控制器空闲时将其发送至交换器。
- 如权利要求1所述的存储控制器,其特征在于,所述硬盘控制器进一步用于通过修改存储指令的地址域,将其映射到分配给该处理器的地址空间的方式来在存储指令中指示存储的地址空间。
- 如权利要求5所述的存储控制器,其特征在于,所述硬盘控制器进一步用于在接收到交换器发来的存储指令时,将存储指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至硬盘。
- 如权利要求1所述的存储控制器,其特征在于,所述硬盘控制器进一 步用于在接收到硬盘发来的响应结果时,将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至交换器。
- 如权利要求7所述的存储控制器,其特征在于,所述硬盘控制器进一步用于通过修改响应结果的地址域,将其反映射到分配给该处理器的地址空间的方式来在响应结果中指示响应的地址空间。
- 如权利要求1所述的存储控制器,其特征在于,所述硬盘控制器进一步用于在处理器控制器不空闲时,暂存响应结果,在处理器控制器空闲时将其发送至交换器。
- 如权利要求1所述的存储控制器,其特征在于,所述硬盘控制器进一步用于对硬盘发送的响应结果进行标识;所述交换器进一步用于根据所述标识确定接收响应结果的处理器控制器。
- 如权利要求1所述的存储控制器,其特征在于,所述处理器控制器进一步用于在接收到交换器发送的响应结果时,将响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送至处理器。
- 如权利要求1至11任一所述的存储控制器,其特征在于,所述交换器根据存储指令和Matrix Arbiter算法对存储指令进行仲裁,按照该仲裁结果逐一发送至硬盘控制器。
- 如权利要求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指令,并进行下一次仲裁。
- 如权利要求1至13任一所述的存储控制器的使用方法,其特征在于,所述方法包括步骤:处理器控制器接收其对应的处理器发送的存储指令,并将该存储指令发送至交换器;交换器将处理器控制器发来的存储指令逐一发送至硬盘控制器;硬盘控制器在接收到交换器发来的存储指令时,在存储指令中指示存储的地址空间后发送至硬盘,其中,所指示的地址空间是分配给发出存储指令的处理器的地址空间。
- 如权利要求14所述的使用方法,其特征在于,在处理器控制器接收到处理器发送的存储指令时,进一步包括,将存储指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至交换器。
- 如权利要求14所述的使用方法,其特征在于,在处理器控制器接收到处理器发送的存储指令时,进一步包括,对处理器发送的存储指令进行标识;在硬盘控制器接收到硬盘发送的响应结果时,进一步包括,根据所述标识确定发出存储指令的处理器的地址空间。
- 如权利要求14所述的使用方法,其特征在于,在处理器控制器接收到处理器发送的存储指令时,进一步包括,在硬盘控制器不空闲时,暂存存储指令,在硬盘控制器空闲时将其发送至交换器。
- 如权利要求14所述的使用方法,其特征在于,在硬盘控制器在接收到交换器发来的存储指令时,进一步包括,通过修改存储指令的地址域的方式来在存储指令中指示存储的地址空间,将存储指令映射到分配给该处理器的地址空间。
- 如权利要求18所述的使用方法,其特征在于,在硬盘控制器接收到交换器发来的存储指令时,进一步包括,将存储指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至硬盘。
- 如权利要求14所述的使用方法,其特征在于,在硬盘控制器将存储 指令发送至硬盘后,进一步包括,接收硬盘发来的响应结果,将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至交换器。
- 如权利要求20所述的使用方法,其特征在于,在硬盘控制器接收到硬盘发来的响应结果时,进一步包括,通过修改响应结果的地址域,将其反映射到分配给该处理器的地址空间的方式来在响应结果中指示响应的地址空间。
- 如权利要求20所述的使用方法,其特征在于,在硬盘控制器接收到硬盘发来的响应结果时,进一步包括,在处理器控制器不空闲时,暂存响应结果,在处理器控制器空闲时将其发送至交换器。
- 如权利要求20所述的使用方法,其特征在于,在硬盘控制器接收到硬盘发来的响应结果时,进一步包括,对硬盘发送的响应结果进行标识;在处理器控制器接收交换器发送的响应结果时,进一步包括,根据所述标识确定接收响应结果的处理器控制器。
- 如权利要求20所述的使用方法,其特征在于,在处理器控制器接收到交换器发送的响应结果时,进一步包括,将响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送至处理器。
- 如权利要求14至24任一所述的使用方法,其特征在于,在交换器将存储指令逐一发送至硬盘控制器时,根据存储指令和Matrix Arbiter算法对存储指令进行仲裁,按照该仲裁结果逐一发送至硬盘控制器。
- 如权利要求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指令,并进行下一次仲裁。
- 如权利要求14所述的使用方法,其特征在于,在物理层对存储指令或响应结果进行串并转换,8b/10b编码转换。
- 如权利要求14所述的使用方法,其特征在于,在链路层对存储指令或响应结果进行加解扰操作。
- 如权利要求28所述的使用方法,其特征在于,在链路层对存储指令进行CRC校验。
- 如权利要求29所述的使用方法,其特征在于,在链路层对存储指令的发送及接收进行流控。
- 如权利要求14所述的使用方法,其特征在于,在传输层上,接收到从链路层发来的帧;检查帧头以及长度,若丢弃错误的帧时,告知链路层。
- 如权利要求31所述的使用方法,其特征在于,在传输层上,接收到从网络层发来的帧;检查帧头以及长度,若丢弃错误的帧时,告知网络层。
- 如权利要求31所述的使用方法,其特征在于,在传输层上,接收到从网络层发来的存储指令;将存储指令按照指令中指示存储的地址空间,映射到分配给该处理器的地址空间。
- 如权利要求33所述的使用方法,其特征在于,在传输层上,接收到从链路层发来的响应结果;将响应结果按照地址空间的标识,映射到发出响应结果的硬盘对应的处理器的地址空间。
- 如权利要求14所述的使用方法,其特征在于,在网络层上,对传输层接收到的存储指令进行标识;发送至交换器。
- 如权利要求35所述的使用方法,其特征在于,在网络层上,接收到从交换器发来的响应结果;发送至传输层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/323,083 US10338813B2 (en) | 2014-06-30 | 2015-04-22 | Storage controller and using method therefor |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410304951.8A CN104050115B (zh) | 2014-06-30 | 2014-06-30 | 一种存储控制器及其使用方法 |
CN201410304951.8 | 2014-06-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016000478A1 true WO2016000478A1 (zh) | 2016-01-07 |
Family
ID=51502990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2015/077172 WO2016000478A1 (zh) | 2014-06-30 | 2015-04-22 | 一种存储控制器及其使用方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10338813B2 (zh) |
CN (1) | CN104050115B (zh) |
WO (1) | WO2016000478A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721984A (zh) * | 2022-03-30 | 2022-07-08 | 湖南长城银河科技有限公司 | 面向低延时应用的sata接口数据传输方法和系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050115B (zh) * | 2014-06-30 | 2017-02-08 | 曙光信息产业(北京)有限公司 | 一种存储控制器及其使用方法 |
CN104657086B (zh) * | 2015-02-02 | 2019-01-04 | 曙光云计算集团有限公司 | 云服务器的数据存储方法和系统 |
CN105184195A (zh) * | 2015-07-31 | 2015-12-23 | 山东超越数控电子有限公司 | 一种多硬盘分时销毁的设计方法 |
CN109213436B (zh) * | 2017-06-30 | 2021-08-24 | 慧荣科技股份有限公司 | 降低快闪储存介面中传收数据错误方法及装置 |
CN112437342B (zh) * | 2020-05-14 | 2022-09-23 | 上海哔哩哔哩科技有限公司 | 一种视频编辑的方法及设备 |
CN114691412A (zh) * | 2020-12-29 | 2022-07-01 | 华为技术有限公司 | 一种数据校验方法及其相关设备 |
CN113259474B (zh) | 2021-06-10 | 2021-10-08 | 苏州浪潮智能科技有限公司 | 一种存储管理方法、系统、存储介质及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201142696Y (zh) * | 2007-12-18 | 2008-10-29 | 张家港市万科信息技术有限公司 | 基于ip方式的嵌入式硬盘阵列控制器 |
US7788420B2 (en) * | 2005-09-22 | 2010-08-31 | Lsi Corporation | Address buffer mode switching for varying request sizes |
CN102063274A (zh) * | 2010-12-30 | 2011-05-18 | 成都市华为赛门铁克科技有限公司 | 存储阵列和存储系统及数据访问方法 |
CN104050115A (zh) * | 2014-06-30 | 2014-09-17 | 曙光信息产业(北京)有限公司 | 一种存储控制器及其使用方法 |
Family Cites Families (17)
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 |
CA2609979A1 (en) * | 2005-06-05 | 2006-12-14 | Starkey Laboratories, Inc. | Communication system for wireless audio devices |
KR101355308B1 (ko) * | 2007-07-25 | 2014-02-07 | 삼성전자주식회사 | 무선 센서 네트워크 내에서 데이터를 송수신하는 방법 |
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 |
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 | 天津市英贝特航天科技有限公司 | 一种多端口随机存储器 |
WO2015140931A1 (ja) * | 2014-03-18 | 2015-09-24 | 株式会社 東芝 | トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム |
-
2014
- 2014-06-30 CN CN201410304951.8A patent/CN104050115B/zh active Active
-
2015
- 2015-04-22 WO PCT/CN2015/077172 patent/WO2016000478A1/zh active Application Filing
- 2015-04-22 US US15/323,083 patent/US10338813B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788420B2 (en) * | 2005-09-22 | 2010-08-31 | Lsi Corporation | Address buffer mode switching for varying request sizes |
CN201142696Y (zh) * | 2007-12-18 | 2008-10-29 | 张家港市万科信息技术有限公司 | 基于ip方式的嵌入式硬盘阵列控制器 |
CN102063274A (zh) * | 2010-12-30 | 2011-05-18 | 成都市华为赛门铁克科技有限公司 | 存储阵列和存储系统及数据访问方法 |
CN104050115A (zh) * | 2014-06-30 | 2014-09-17 | 曙光信息产业(北京)有限公司 | 一种存储控制器及其使用方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721984A (zh) * | 2022-03-30 | 2022-07-08 | 湖南长城银河科技有限公司 | 面向低延时应用的sata接口数据传输方法和系统 |
CN114721984B (zh) * | 2022-03-30 | 2024-03-26 | 湖南长城银河科技有限公司 | 面向低延时应用的sata接口数据传输方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104050115A (zh) | 2014-09-17 |
US10338813B2 (en) | 2019-07-02 |
CN104050115B (zh) | 2017-02-08 |
US20170206013A1 (en) | 2017-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016000478A1 (zh) | 一种存储控制器及其使用方法 | |
TWI765138B (zh) | 主機系統及其方法和加速模組 | |
US11922070B2 (en) | Granting access to a storage device based on reservations | |
CN110431542B (zh) | 管理存储网络中的i/o操作 | |
CN105993009B (zh) | 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置 | |
US9841902B2 (en) | Peripheral component interconnect express controllers configured with non-volatile memory express interfaces | |
JP6014271B2 (ja) | データ処理システム及びデータ処理方法 | |
US11113089B2 (en) | Sharing data via virtual machine to host device bridging | |
US20140164666A1 (en) | Server and method for sharing peripheral component interconnect express interface | |
US10496676B2 (en) | Synchronization cache seeding | |
US10656874B2 (en) | Storage device operation control method, and storage device | |
CN103942087A (zh) | 虚拟机热迁移方法及相关装置和集群系统 | |
JP2009301162A (ja) | 計算機システム、デバイス共有方法及びそのプログラム | |
US10956189B2 (en) | Methods for managing virtualized remote direct memory access devices | |
KR102387922B1 (ko) | 솔리드 스테이트 드라이브의 비동기 이벤트 요청 명령 처리 방법 및 시스템 | |
CN112106032A (zh) | I/o主设备和cpu之间优化数据共享的有序写存储的高性能流 | |
US8392629B1 (en) | System and methods for using a DMA module for a plurality of virtual machines | |
US8364871B2 (en) | Providing virtual functions after an input/output adapter is moved from a first location to a second location | |
US20170293589A1 (en) | Parallel processing apparatus and method for controlling communication | |
JP6534851B2 (ja) | インタフェースユニット | |
JP2008065515A (ja) | リモートi/oを構成する計算機システム及びi/oデータ転送方法 | |
JP6398417B2 (ja) | ストレージ装置、ストレージシステム及びストレージ制御プログラム | |
US11509562B1 (en) | System and method for a system level data sharding analysis of information handling systems | |
US20170139755A1 (en) | Efficient chained post-copy virtual machine migration | |
US9588920B1 (en) | Method and system for port trunking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15814189 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15323083 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15814189 Country of ref document: EP Kind code of ref document: A1 |