CN102169419A - RAID (redundant array of independent disks) data block splitting and assembling method based on SATA (serial advanced technology attachment) controller - Google Patents

RAID (redundant array of independent disks) data block splitting and assembling method based on SATA (serial advanced technology attachment) controller Download PDF

Info

Publication number
CN102169419A
CN102169419A CN2011100829054A CN201110082905A CN102169419A CN 102169419 A CN102169419 A CN 102169419A CN 2011100829054 A CN2011100829054 A CN 2011100829054A CN 201110082905 A CN201110082905 A CN 201110082905A CN 102169419 A CN102169419 A CN 102169419A
Authority
CN
China
Prior art keywords
data
disk
block
module
data block
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.)
Pending
Application number
CN2011100829054A
Other languages
Chinese (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.)
WUXI SOUL STORAGE TECHNOLOGY Co Ltd
Original Assignee
WUXI SOUL STORAGE TECHNOLOGY 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 WUXI SOUL STORAGE TECHNOLOGY Co Ltd filed Critical WUXI SOUL STORAGE TECHNOLOGY Co Ltd
Priority to CN2011100829054A priority Critical patent/CN102169419A/en
Publication of CN102169419A publication Critical patent/CN102169419A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

The invention discloses an RAID (redundant array of independent disks) data block splitting and assembling method based on an SATA (serial advanced technology attachment) controller, relating to the storage technology of a computer. The transmission layer of the SATA (serial advanced technology attachment) controller comprises a link layer interface module, a bus interface module, a DMA (direct memory access) reading module, a DMA (direct memory access) writing module, a register, a port control module and an error processing module. The splitting method is as follows: three variables comprising mark bonding disc number, basic units for data block splitting and assembling and mark start offset are set; the DMA (direct memory access) writing module of the SATA (serial advanced technology attachment) controller fetches from a memory access in sequence according to a start address of data and the variables with an unchanged fetch length in accordance with a rule that the fetch address for each time is a product of a last fetch address plus with the bonding disc number and the basic units until the fetch address exceeds the scope of an end address of the writing operation, wherein the number fetching length is constant; and the data block assembling method of reading the discs is same with that of writing the discs. The RAID (redundant array of independent disks) data block splitting and assembling method based on the SATA (serial advanced technology attachment) controller can improve the overall performance of an RAID system.

Description

RAID data block based on the SATA controller splits, assemble method
Technical field
The present invention relates to computer memory technical, particularly relate to a kind ofly, be implemented in the RAID system fractionation and assemble method data block based on the SATA controller.
Background technology
SATA(Serial Advanced Technology Attachment) being a kind of high-speed serial bus, is one of disk interface agreement of widespread use.It is fast that SATA has transmission speed, supports hot plug, carries out advantages such as efficient height.SATA adopts point-to-point mode to connect, and an end is called SATA controller (SATA Host), and the other end is called SATA equipment (SATA Device).The SATA controller has two kinds of patterns: IDE pattern and AHCI pattern.That commonly used is AHCI(Advanced Host Controller Interface now) pattern, data transfer mode efficiently can be provided, support the formation of NCQ(native command, Native Comand Quening) technology, Auto Activate for DMA(DMA self-activation) technology or the like.
The AHCI pattern of SATA controller, to the monolithic disk read-write, and the polylith disk read-write provides data transfer mode efficiently.Nowadays, in storage system, often need as a whole parallel use is done in the binding of polylith disk, (for example: RAID) obtain higher disk access speed.In the prior art, by software with the disk of polylith binding as a virtual disk.Mainly be operating as read and write for virtual disk: for example a data block writes virtual disk, data block need be divided into a plurality of little data blocks and give corresponding SATA controller respectively and write physical disk.Need to carry out data in the process and split,, need carry out the data assembling equally for reading virtual disk.
But because single SATA controller only is responsible for single disk access, not contact between a plurality of disks is so traditional SATA controller can't be finished fractionation and assembling to data.Like this, the fractionation of data can only be finished by software with assembling, needs extra metadata cache, repeatedly memory copying.Increase the complexity of data processing in this process, consumed a large amount of software and hardware resources, certainly will influence overall performance.
Summary of the invention
The objective of the invention is at the described the deficiencies in the prior art of background technology, invent a kind of based on SATA control, the method that the data block of the virtual disk (RAID system) that can be bound into the polylith disk splits, assembles is in the hope of improving the overall performance of storage system.
Use the SATA controller of the inventive method, contain Physical layer, link layer, transport layer, wherein, transport layer is connected with system bus, adopts the AHCI pattern, specifically comprises following module composition:
Link layer interface module, bus interface module, read dma module, write dma module, register, port controlling module, fault processing module.
The inventive method comprises the fractionation of write data and assembling two parts of read data:
At first set three variablees:
1. sign binding disk number is remembered and is made disk_num;
2. data block splits and the base unit of assembling, and note is made block_size;
3. start offset is remembered and is made offset;
Based on above-mentioned setting, the method for splitting of writing in the data in magnetic disk piece process is:
The port controlling module is read from internal memory and is write disk associative operation descriptor and write register module, comprises above-mentioned three variablees in the descriptor; Write dma module and from register, take out data start address (data_base_addr) and above-mentioned three variablees.Read dma module and begin peek from the data block start address of internal memory and (data_base_addr+offset) position of start offset sum, peek length is that data block splits and the base unit of assembling (block_size), peeks successively from memory address by a sequence rules then.This rule is: the address of at every turn peeking is that the product (data_base_addr+offset+ (disk_num * block_size)) of binding disk number and base unit is added in the address of peeking last time, peek length is constant, exceeds current write operation end addresses scope up to the peek address.
Read the data chunk process of assembling of disk:
The port controlling module is read disk associative operation descriptor and is write register module from internal memory, comprise above-mentioned three variablees in the descriptor.Read dma module and from register, take out data start address and three variablees, from disk, read the data that length is base unit (block_size), the data_base_addr+offset position of write memory, for the second time the reading of data write memory data_base_addr+offset+ (position of disk_num * block_size).Successively backward, each write memory address for last time the address add disk_num * block_size, length is constant, exceeds current read operation end addresses scope up to the address.
Preferred default data piece splits and the base unit of assembling is 512 bytes.
The invention has the beneficial effects as follows: realization SATA controller is finished simultaneously when reading and writing data data block is split and assembling, is applied to many disk storage systems such as RAID, can improve overall performance.
Description of drawings
Fig. 1, the structural drawing of the transport layer of SATA controller of the present invention;
Fig. 2, the course of work synoptic diagram of the embodiment of the invention one;
Fig. 3, the present invention have the course of work synoptic diagram of the embodiment two of check disk.
Embodiment
As Fig. 1, the present invention is based on the SATA controller, and this SATA controller transport layer is made up of following module:
Ll_if: the link layer interface module, be responsible for data transmit-receive with link layer.
Bus_if: bus interface module, be responsible for the visit of transport layer to bus.
Rd_dma: read dma module, be responsible for reading of data write memory from disk.
Wr_dma: write dma module, be responsible for that reading of data writes disk from internal memory.
Reg_file: register, deposit control register information and status information.
Port_ctrl: the port controlling module, be responsible for sata port control and monitoring.
Err_ctrl: the fault processing module, be responsible for error reporting and processing.
As Fig. 2, forming the RAID system with 4 disks is example, disk disk 0, disk1, disk2, the disk3 binding, become virtual disk virtual disk, each disk has a data block data to write to a SATA controller control should be arranged in the internal memory, this data block is by d0, d1, d2 ... several small data pieces constitute, and reference position is data_base_
addr。Below with the process of a read-write of this condition stub with clearer elaboration the present invention.
At first set variable: 1. sign is bound disk number disk_num; 2. identification data block splits and the base unit block_size that assembles, and present embodiment is given tacit consent to 512 bytes, a sector size; 3. identify start offset offset.
The process that writes:
The SATA controller of disk0 begins peek from the reference position (data_base_addr) of data in EMS memory piece data, gets 512 bytes (block_size) length small data piece d0 is write disk0.(disk_num * block_size), d4 writes disk with the small data piece, and (disk_num * block_size), d8 writes disk with the small data piece to skip 4 512 bytes once more to skip 4 512 bytes then.Successively up to the end of data block data.
The SATA controller of disk1 is skipped 1 512 byte (data_base_addr+offset+ (disk_num * block_size)) from the reference position (data_base_addr) of data in EMS memory piece data and is begun peek, gets 512 bytes (block_size) length small data piece d1 is write disk1.(disk_num * block_size), d5 writes disk with the small data piece, and (disk_num * block_size), d9 writes disk with the small data piece to skip 4 512 bytes once more to skip 4 512 bytes then.Successively up to the end of data block data.
The SATA controller of disk2 is skipped 2 512 bytes (data_base_addr+offset+ (disk_num * block_size)) from the reference position of data in EMS memory piece data and is begun peek, gets 512 byte lengths small data piece d2 is write disk2.Skip 4 512 bytes then, d6 writes disk with the small data piece, skips 4 512 bytes once more, and d10 writes disk with the small data piece.Successively up to the end of data block data.
The SATA controller of disk3 is skipped 3 512 bytes from the reference position of data in EMS memory piece data and is begun peek, gets 512 byte lengths small data piece d3 is write disk3.Skip 4 512 bytes then, d7 writes disk with the small data piece, skips 4 512 bytes once more, and d11 writes disk with the small data piece.Successively up to the end of data block data.
4 SATA controllers are finished when writing disk, and what every disk was written into respectively is a bit of of data block data, and also just having finished with 512 bytes is the data fractionation work of unit.
If read the virtual disk operation:
The SATA controller of disk0 sense data piece d0 from disk is placed on the space reference position (data_base_addr) of distributing for data block data in the internal memory, from disk, get the initial position of skipping 4 512 bytes of 512 byte data piece d4 write memory allocation space (disk_num * block_size) again, and then take out 512 byte data piece d8 write memories from disk, successively up to the end of data block data.
The SATA controller of disk1 sense data piece d1 from disk is placed on the initial position of distributing for data block data in the internal memory (data_base_addr+offset) that adds 1 512 byte offset, space, from disk, get 512 bytes (block_size) data block d5 write memory again and skip 4 512 bytes (position of disk_num * block_size) again, and then take out 512 byte data piece d9 write memories from disk, successively up to the end of data block data.
The SATA controller of disk2 sense data piece d2 from disk is placed on the initial position of distributing for data block data in the internal memory that adds 2 512 byte offset, space, from disk, get the position that 512 byte data piece d6 write memories are skipped 4 512 bytes more again, and then take out 512 byte data piece d10 write memories from disk, successively up to the end of data block data.
The SATA controller of disk3 sense data piece d3 from disk is placed on the initial position of distributing for data block data in the internal memory that adds 3 512 byte offset, space, from disk, get the position that 512 byte data piece d7 write memories are skipped 4 512 bytes more again, and then take out 512 byte data piece d11 write memories from disk, successively up to the end of data block data.
4 SATA controllers finish read disk in, also finished assembling to data block data.
Shown in Figure 3 forms virtual disk by 4 disks, the embodiment of another one check disk.
According to the present invention, it is as follows to set variable:
SATA controller 0:
disk_num?=?4;
block_size?=?0x200;
offset?=?0x000;
SATA controller 1:
disk_num?=?3;
block_size?=?0x200;
offset?=?0x200;
SATA controller 2:
disk_num?=?3;
block_size?=?0x200;
offset?=?0x400;
SATA controller 3:
disk_num?=?3;
block_size?=?1;
offset?=?0x600;
SATA controller 4:
num?=?0;
block?=?1;
offset?=?0x0。
The DMA of SATA controller 4 takes out checking data from P_buf, write disk.
According to the method for the invention, the SATA controller carries out data and splits when writing disk.RAID controller calculation check value P writes disk synchronously.Whole reading and writing method and embodiment one are similar, repeat no more.

Claims (2)

1. based on the fractionation of RAID data block, the assemble method of SATA controller, related SATA controller contains Physical layer, link layer and transport layer, and wherein, transport layer is connected with system bus, adopts the AHCI pattern, it is characterized in that,
Transport layer is made up of following module: link layer interface module, bus interface module, read dma module (rd_dma), write dma module (wr_dma), register (reg_file), port controlling module (port_ctrl), fault processing module;
This method comprises fractionation and assembling two parts of data block,
Method for splitting is to split simultaneously when data write:
Port controlling module (port_ctrl) is read from internal memory and is write disk associative operation descriptor and write register, comprises sign binding disk number (disk_num) in the descriptor, data block splits with the base unit (block_size) of assembling and identifies these three variablees of start offset (offset); Write dma module (wr_dma) and from register (reg_file), take out data start address (data_base_addr) and above-mentioned variable, begin peek from the data block start address of internal memory and the position of start offset sum (data_base_addr+offset), peek length is that data block splits and the base unit of assembling (block_size), peek successively from memory address by a sequence rules then, this rule is: the address of at every turn peeking is that the product (data_base_addr+offset+ (disk_num * block_size)) of binding disk number and base unit is added in the address of peeking last time, peek length is constant, exceeds current write operation end addresses scope up to the peek address;
The data block assembling method of reading disk is:
Read dma module (rd_dma) and from register, take out data start address and three variablees, from disk, read the data that length is base unit (block_size), the data_base_addr+offset position of write memory, for the second time the read data write memory data_base_addr+offset+ (position of disk_num * block_size); Successively backward, each write memory address for last time the address add disk_num * block_size, length is constant, exceeds current read operation end addresses scope up to the address.
2. the RAID data block based on the SATA controller according to claim 1 splits, assemble method, and it is characterized in that: described data block splits and the base unit (block_size) of assembling is 512 bytes.
CN2011100829054A 2011-04-02 2011-04-02 RAID (redundant array of independent disks) data block splitting and assembling method based on SATA (serial advanced technology attachment) controller Pending CN102169419A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100829054A CN102169419A (en) 2011-04-02 2011-04-02 RAID (redundant array of independent disks) data block splitting and assembling method based on SATA (serial advanced technology attachment) controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100829054A CN102169419A (en) 2011-04-02 2011-04-02 RAID (redundant array of independent disks) data block splitting and assembling method based on SATA (serial advanced technology attachment) controller

Publications (1)

Publication Number Publication Date
CN102169419A true CN102169419A (en) 2011-08-31

Family

ID=44490590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100829054A Pending CN102169419A (en) 2011-04-02 2011-04-02 RAID (redundant array of independent disks) data block splitting and assembling method based on SATA (serial advanced technology attachment) controller

Country Status (1)

Country Link
CN (1) CN102169419A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609221A (en) * 2012-02-07 2012-07-25 无锡众志和达存储技术有限公司 Architecture and data processing method for hardware RAID 5/6 memory system
CN106021147A (en) * 2011-09-30 2016-10-12 英特尔公司 Storage device for presenting direct access under logical drive model
CN108536614A (en) * 2018-03-30 2018-09-14 天津麒麟信息技术有限公司 A kind of direct random write implementation method of Flash, device and storage medium
CN111190537A (en) * 2019-12-10 2020-05-22 优刻得科技股份有限公司 Method and system for managing sequential storage disks in write-addition scene
CN112035056A (en) * 2020-07-09 2020-12-04 苏州浪潮智能科技有限公司 Parallel RAM access architecture and access method based on multiple computing units
CN113722277A (en) * 2020-05-25 2021-11-30 中兴通讯股份有限公司 Data import method, device, service platform and storage medium
US11604746B2 (en) 2011-09-30 2023-03-14 Sk Hynix Nand Product Solutions Corp. Presentation of direct accessed storage under a logical drive model

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169703A (en) * 2007-11-05 2008-04-30 湖南源科创新科技股份有限公司 Solid state hard disk memory card based on RAID technology
CN101169702A (en) * 2007-11-05 2008-04-30 湖南源科创新科技股份有限公司 High speed storage array based on SATA interface solid hard disk
CN101833424A (en) * 2010-03-26 2010-09-15 中国科学院光电技术研究所 High speed storage and transmission device based on FPGA

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169703A (en) * 2007-11-05 2008-04-30 湖南源科创新科技股份有限公司 Solid state hard disk memory card based on RAID technology
CN101169702A (en) * 2007-11-05 2008-04-30 湖南源科创新科技股份有限公司 High speed storage array based on SATA interface solid hard disk
CN101833424A (en) * 2010-03-26 2010-09-15 中国科学院光电技术研究所 High speed storage and transmission device based on FPGA

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵亮: "高性能磁盘阵列(RAID)关键技术的研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》, 15 March 2003 (2003-03-15), pages 5 - 18 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021147A (en) * 2011-09-30 2016-10-12 英特尔公司 Storage device for presenting direct access under logical drive model
CN106021147B (en) * 2011-09-30 2020-04-28 英特尔公司 Storage device exhibiting direct access under logical drive model
US11604746B2 (en) 2011-09-30 2023-03-14 Sk Hynix Nand Product Solutions Corp. Presentation of direct accessed storage under a logical drive model
CN102609221A (en) * 2012-02-07 2012-07-25 无锡众志和达存储技术有限公司 Architecture and data processing method for hardware RAID 5/6 memory system
CN102609221B (en) * 2012-02-07 2015-07-08 无锡众志和达数据计算股份有限公司 Hardware RAID 5/6 memory system and data processing method
CN108536614A (en) * 2018-03-30 2018-09-14 天津麒麟信息技术有限公司 A kind of direct random write implementation method of Flash, device and storage medium
CN111190537A (en) * 2019-12-10 2020-05-22 优刻得科技股份有限公司 Method and system for managing sequential storage disks in write-addition scene
CN111190537B (en) * 2019-12-10 2023-08-25 优刻得科技股份有限公司 Method and system for managing sequential storage disk in additional writing scene
CN113722277A (en) * 2020-05-25 2021-11-30 中兴通讯股份有限公司 Data import method, device, service platform and storage medium
CN112035056A (en) * 2020-07-09 2020-12-04 苏州浪潮智能科技有限公司 Parallel RAM access architecture and access method based on multiple computing units
CN112035056B (en) * 2020-07-09 2022-11-29 苏州浪潮智能科技有限公司 Parallel RAM access equipment and access method based on multiple computing units

Similar Documents

Publication Publication Date Title
CN102880428B (en) The creation method of distributed Redundant Array of Independent Disks (RAID) and device
US9959058B1 (en) Utilizing flash optimized layouts which minimize wear of internal flash memory of solid state drives
CN102171649B (en) Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US8103825B2 (en) System and method for providing performance-enhanced rebuild of a solid-state drive (SSD) in a solid-state drive hard disk drive (SSD HDD) redundant array of inexpensive disks 1 (RAID 1) pair
CN102169419A (en) RAID (redundant array of independent disks) data block splitting and assembling method based on SATA (serial advanced technology attachment) controller
US8850114B2 (en) Storage array controller for flash-based storage devices
US20110296084A1 (en) Data storage apparatus and method of writing data
US10209922B2 (en) Communication via a memory interface
CN102819408B (en) The implementation method of the RAID 0 of dynamic adjustment stripe depth and system
US8650379B2 (en) Data processing method for nonvolatile memory system
US20120260020A1 (en) Non-volatile semiconductor memory module enabling out of order host command chunk media access
US20080162792A1 (en) Caching device for nand flash translation layer
US20090157756A1 (en) File System For Storing Files In Multiple Different Data Storage Media
TWI531963B (en) Data storage systems and their specific instruction enforcement methods
US8060669B2 (en) Memory controller with automatic command processing unit and memory system including the same
KR102585883B1 (en) Operating method of memory system and memory system
US20130036256A1 (en) Method and apparatus of sanitizing storage device
CN102326141A (en) Processing method and apparatus for raid configuration information and raid controller
US20150234595A1 (en) Storage device
US10628300B2 (en) RAID stripe physical placement
CN103645862A (en) Initialization performance improvement method of redundant arrays of inexpensive disks
US8949528B2 (en) Writing of data of a first block size in a raid array that stores and mirrors data in a second block size
KR102366512B1 (en) logical block addressing range collision crawler
CN1924786A (en) Individual disc redundancy array system
US20120079194A1 (en) Method of testing data storage devices and a gender therefor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 214000 Jiangsu Province, Wuxi City District Zhenze Road No. 18 Jiangsu Software Outsourcing Industrial Park Building 6 layer A Taurus

Applicant after: SOUL Storage Technology (Wuxi) Co., Ltd.

Address before: 214000 Jiangsu Province, Wuxi City District Zhenze Road No. 18 Jiangsu Software Outsourcing Industrial Park Building 6 layer A Taurus

Applicant before: Wuxi SOUL Storage Technology Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: WUXI SOUL STORAGE TECHNOLOGY CO., LTD. TO: SOUL STORAGE TECHNOLOGY UXI O., LTD.

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110831