WO2012174953A1 - 一种数据读、写方法及*** - Google Patents

一种数据读、写方法及*** Download PDF

Info

Publication number
WO2012174953A1
WO2012174953A1 PCT/CN2012/075146 CN2012075146W WO2012174953A1 WO 2012174953 A1 WO2012174953 A1 WO 2012174953A1 CN 2012075146 W CN2012075146 W CN 2012075146W WO 2012174953 A1 WO2012174953 A1 WO 2012174953A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
main processing
read
data
data frame
Prior art date
Application number
PCT/CN2012/075146
Other languages
English (en)
French (fr)
Inventor
王建兵
吴边
曾敏
吴风波
王闯
于克东
丁己善
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2012174953A1 publication Critical patent/WO2012174953A1/zh

Links

Classifications

    • 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

Definitions

  • the present invention relates to the field of communications, and in particular, to a data reading and writing method and system. Background technique
  • mainstream router storage mainly adopts DDR2 and DDR3 technologies, which have the advantages of high bandwidth, strong parallelism and large capacity.
  • DDR double rate synchronous dynamic random access memory
  • the mainstream double rate synchronous dynamic random access memory (DDR) particles are basically between lGb and 8Gb. If multiple parallels are used, the bandwidth can reach 10Gb/s ⁇ 200Gb/s.
  • DDR technology uses parallel transmission for storage, which occupies more pin resources.
  • a high-speed serial distributed storage method based on a multi-layer message protocol is proposed in the prior art, which combines an increasingly sophisticated serial high-speed interface with a multi-layer message. Protocols ensure high storage performance under distributed conditions.
  • a prior art describes the physical structure of the serial connection between the internal use of the IC chip and the serial-to-serial-parallel converter (SERDES), which mainly includes an application layer, a logic layer, and a physical layer.
  • SERDES serial-to-serial-parallel converter
  • this technique only describes the placement of physical logic modules and does not involve the interaction of message protocols between the various logic modules.
  • the error retransmission process is not used in the high-speed transmission of SERDES, which makes the constructed platform have a high bit error rate and cannot be used in a highly reliable storage environment. Summary of the invention
  • Embodiments of the present invention provide a data reading and writing method and system, which are used to implement data distribution. Storage, saving resources.
  • a data read and write system including:
  • a main processing device configured to send the processed read and write commands to the storage control device through the serial link, and receive the read data returned by the storage control device;
  • a storage control device configured to read the corresponding read data locally from the received read command and send the data to the main processing device via the serial link, or write the corresponding write data to the local according to the received write command.
  • the main processing device and the storage control device are located on the same or different boards.
  • the serial link is a serial serial-to-serial-serial converter (SERDES) in the board, or a SERDES between boards, or a high-speed interface connected by a fiber.
  • SERDES serial serial-to-serial-serial converter
  • the main processing device includes:
  • a first main processing module configured to encapsulate the read and write instructions, send the read data to the second main processing module, and receive the read data transmitted by the second main processing module;
  • the first main processing module is located at the command layer;
  • a second main processing module configured to perform framing processing on the encapsulated read and write instructions, so that the read and write instructions become the first data frame, and then sent to the first physical layer module, and the first read data to be received The frame is restored to the read data and sent to the first main processing module;
  • the second main processing module is located at the data link layer;
  • a first physical layer module configured to perform a cyclic redundancy CRC check and a scrambling process on the received first data frame, so that the first data frame is sent to the second data frame and then sent to the first a second physical layer module, and the received second read data frame is restored to the first read data frame and sent to the second main processing module;
  • the first physical layer module is located at the physical layer;
  • the storage control device includes:
  • a second physical layer module configured to restore the received second data frame to the first data frame and send the data frame to the second control module, and perform CRC check and scrambling processing on the received first read data frame, so that
  • the first read data frame is a second read data frame and is sent to the first physical layer module by using the serial link;
  • the second physical layer module is located at a physical layer;
  • a second control module configured to restore the received first data frame to the encapsulated read and write command and send the command to the first control module, and package the received read data into the first read data frame and send the data to the first a second physical layer module;
  • the second control module is located at a data link layer;
  • a first control module configured to read corresponding data from the local according to the received read command and package the data into the second control module, or write the write data to the local according to the received write command;
  • the control module is located at the command level.
  • the system further includes: a scheduling module;
  • the at least two first main processing modules are further configured to send the read and write instructions to the scheduling module;
  • the scheduling module is configured to send all the read and write commands received to the second main processing module, where the scheduling mode is priority scheduling, or first-in first-out scheduling, or weighted fair scheduling.
  • the first data frame and the second data frame include a destination identifier for identifying the first control module, so that the primary processing device passes the second physical layer module according to the destination identifier.
  • the second control module sends a read and write instruction to the corresponding first control module, and includes a source identifier for identifying the first main processing module; the first read data frame and the second read data And the source identifier and the destination identifier included in the first data frame and the second data frame are respectively the same, so that the storage control device passes the The first physical layer module and the second main processing module send read data to the first main processing module.
  • a data reading and writing method includes the following steps:
  • the processed read and write commands are sent by the main processing device to the storage control device through the serial link.
  • the memory control device reads the corresponding read data locally from the received read command and transmits it to the main processing device via the serial link, or writes the write data to the local device according to the received write command.
  • the processing of the read and write commands after the processing is sent by the main processing device to the storage control device via the serial link is:
  • the first main processing module in the main processing device encapsulates the read and write instructions and sends the read and write instructions to the second main processing module in the main processing device;
  • the first main processing module is located at the command layer;
  • the second main processing module performs framing processing on the read and write instructions, and causes the read and write instructions to be the first data frame and then sent to the first physical layer module in the main processing device;
  • the processing module is located at the data link layer;
  • a second physical layer module in the device the first physical layer module is located at a physical layer;
  • the second physical layer module Recovering, by the second physical layer module, the received second data frame into a first data frame and transmitting the second data frame to a second control module in the storage control device;
  • the second physical layer module is located at a physical layer;
  • the second control module restores the received first data frame to the encapsulated read and write command and sends it to the first control module in the storage control device;
  • the second control module is located at the data link layer;
  • the first control module reads the corresponding data locally according to the received encapsulated read command and encapsulates the data into the second control module, or writes the write data according to the received packaged write command.
  • Local; the first control module is located at the command layer.
  • the storage control device reads the corresponding read data locally according to the received read command and sends the data to the main processing device through the serial link:
  • the first control module in the storage control device is configured according to the received read command from the package Reading the corresponding data locally and packaging the data into the second control module in the storage control device; the first control module is located at the command layer;
  • the second control module encapsulates the received read data into a first read data frame and sends the read data to the second physical layer module in the storage control device; the second control module is located at the data link layer; The second physical layer module performs CRC check and scrambling processing on the received first read data frame, so that the first read data frame becomes the second read data frame and is sent to the main processing through the serial link.
  • the second physical layer module is located at a physical layer.
  • the method further includes:
  • the main processing device receives read data returned by the storage control device
  • the main processing device receives the read data returned by the storage control device: the first physical layer module in the main processing device restores the received second read data frame to the first read data frame, and then sends the read data to the first read data frame.
  • a second main processing module in the main processing device the first physical layer module is located at a physical layer;
  • the second main processing module the received first read data frame to the read data, and then sending the data to the first main processing module in the main processing device; the second main processing module is located at the data link layer;
  • the first main processing module Receiving, by the first main processing module, read data sent by the second main processing module; the first main processing module is located at a command layer.
  • the method further includes:
  • the data reading and writing method is: the main processing device sends the processed read and write commands to the storage control device through the serial link; and the storage control device reads the corresponding read from the local according to the received read command.
  • the data is sent to the main processing device via the serial link, or the write data is written locally according to the received write command.
  • the pin used by the main processing device for connecting with the storage control device is reduced, the utilization of the pin is improved, and the pin resource is saved.
  • the main processing device and the storage control device may be located on different boards, which facilitates distributed storage, and has better adaptability for applications with large capacity and ultra-high bandwidth.
  • FIG. 1 is a detailed structural diagram of a data read and write system in an embodiment of the present invention.
  • FIG. 2 is a schematic diagram of a format of a read command in an embodiment of the present invention.
  • FIG. 3 is a schematic diagram of a format of a write instruction in an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of a format of a first data frame in an embodiment of the present invention.
  • FIG. 5 is a main flowchart of a data reading and writing method according to an embodiment of the present invention.
  • FIG. 6 is a flowchart of a detailed method for writing data in an embodiment of the present invention.
  • FIG. 7 is a flow chart of a detailed method for reading data in an embodiment of the present invention. detailed description
  • the data reading and writing method is: the main processing device sends the processed read and write commands to the storage control device through the serial link; and the storage control device reads the corresponding read from the local according to the received read command.
  • the data is sent to the main processing device via the serial link, or the write data is written locally according to the received write command.
  • the pin used by the main processing device for connecting with the storage control device is reduced, the utilization of the pin is improved, and the pin resource is saved.
  • the main processing device and the storage control device may be located on different boards, which facilitate distributed storage, and has a large capacity and Ultra-high bandwidth applications have better adaptability.
  • a data read and write system in the embodiment of the present invention includes a main processing device 100A and a storage control device 100B.
  • the main processing device 100A includes a first main processing module 101, a second main processing module 102, and a first physical layer module 103.
  • the storage control device 100B includes a first control module 104, a second control module 105, and a second physical layer module. 106.
  • the data read and write system in the embodiment of the present invention further includes a third main processing module 107 and a scheduling module 108, and the third main processing module 107 and the scheduling module 108 may be located in the main processing device 100A.
  • the main processing device 100A may be located on a main processing board, the storage control device 100B may be located on a memory board, and the main processing board and the memory board may be two independent boards.
  • the storage control device 100B may be located on the main processing board, that is, the storage control device 100B may be located on the same or different board as the main processing device 100A.
  • the main processing device 100A is for transmitting the processed read and write commands to the storage control device 100B via the serial link, and receiving the read data returned by the storage control device 100B.
  • the first main processing module 101 is configured to encapsulate the read and write instructions and send the instructions to the second main processing module 102.
  • the first main processing module 101 receives the read command or the write command output by the third main processing module 107.
  • the first main processing module 101 encapsulates the received read or write instruction in a corresponding format.
  • the encapsulation format of the read command wherein the read command needs to include information such as the length of the read data and the valid byte of the read data, and the read data is data to be read from the memory
  • Data_width is The bit width of the memory data. Addr_width is the bit width of the memory address.
  • Figure 3 shows the encapsulation format of the write command.
  • the write command includes information such as the length of the write data and the valid byte of the write data.
  • the write data is the data to be written to the memory, and the data_width is the bit width of the memory data. . Addr_width is the bit width of the memory address. If it is a write command, after being encapsulated by the first main processing module 101, the data to be written into the memory is converted into data that is convenient for memory storage.
  • the first main processing module 101 sends the encapsulated read and write instructions to the second main processing module 102.
  • the first main processing module 101 is further configured to receive the read data transmitted by the second main processing module 102.
  • the read data that is, the data read from the first control module 104, is requested by the corresponding read command sent by the first main processing module 101.
  • the first main processing module 101 can be located in the Command layer.
  • the main processing device 100A may include a plurality of first main processing modules 101, that is, the main processing device 100A includes at least one first main processing module 101.
  • the second main processing module 102 is configured to perform framing processing on the encapsulated read and write instructions, and then send the first data frame to the first physical layer module 103.
  • the second main processing module 102 receives the encapsulated read and write instructions sent by the first main processing module 101, and divides the data into fixed-size data frames.
  • the data frame format processed by the second main processing module 102 in the embodiment of the present invention where the Command layer payload is the load of the command layer.
  • a CRC (Cyclic Redundancy Check Code) check can be added to each data frame to facilitate verification, which can be added at the end of each data frame.
  • the CRC check can use different check polynoms, but in order to improve the transmission efficiency as much as possible, the CRC data can be verified with as little CRC as possible, for example, using 4-byte CRC check data. It is also possible to add a source ID (source identifier) in each data frame, that is, a corresponding main processing module number (which may include the number of the corresponding first main processing module 101), a target ID (destination identifier), that is, a destination memory number ( The number of the corresponding first control module 104 may be included, the ACK ID (acknowledgement character identifier), etc., and the ACK ID is a frame transmission timestamp, indicating the order of transmission, and each time a data frame is sent, the next data frame is carried.
  • the value of the ACK ID is incremented by one.
  • the encapsulated read and write instructions processed by the second main processing module 102 may be referred to as a first data frame.
  • the second main processing module 102 transmits the first data frame to the first physical layer module 103.
  • the second main processing module 102 is further configured to receive the first read data frame sent by the first physical layer module 103, and restore the received first read data frame to the read data, and then send the data to the first main processing module 101. After receiving the first read data frame, the second main processing module 102 restores the first read data frame to read data, and sends the restored read data to the first main processing module 101. Second main processing mode Block 102 may send the recovered read data to the corresponding first main processing module 101 according to the source ID included in the first read data frame.
  • the second main processing module 102 can be located at a data link layer.
  • the first physical layer module 103 is configured to perform CRC check and scrambling on the received first data frame, and then send the data frame to the second physical layer module 106 through the serial link.
  • the first physical layer module 103 may include a first PMA (Physical Medium Access Layer) sublayer and a second PCS (Physical Encoding) sublayer.
  • the first physical layer module 103 may be located at a physical layer.
  • the first physical layer module 103 is further configured to restore the received second read data frame to the first read data frame and then send the second read data frame to the second main processing module 102.
  • the first PCS sub-layer may perform CRC check processing on the first data processing frame, and if the first data frame is incorrectly verified, notify the second main processing module 102 to re- Transmitting includes the first data frame and all first data frames before the first data frame. If all the first data frames are verified correctly, the first PCS sublayer can perform load distribution on the serial channel.
  • the first data frame may be scrambled, and the first data frame processed by the first PCS sublayer may be referred to as a second data frame, and the first PCS sublayer sends the second data frame to the first PMA sub Layer, which is sent by the first PMA sublayer over a serial link.
  • the serial link may be a SERDES in the board, a SERDES between the boards, or a high-speed interface connected by a fiber.
  • the first PMA sublayer After receiving the second read data frame returned by the information processing device, the first PMA sublayer transmits the second read data frame to the first PCS sublayer.
  • the first PCS sublayer processes the received second read data frame.
  • the information included in the second read data frame may be recovered by operations such as specific boundary, CRC check, descrambling, etc., and may be The second read data frame is restored to the first read data frame, and the format may be a format processed by the second main processing module 102 as shown in FIG.
  • the second PCS sublayer transmits the first read data frame to the second main processing module 102.
  • the second PMA sublayer may be configured according to the source ID included in the first read data frame.
  • the first read data frame is sent to the corresponding second main processing module 102, and the second main processing module 102 can restore the first read data frame to read data, and send the read data to the corresponding first according to the source ID.
  • a main processing module 101 The first read data frame is sent to the corresponding second main processing module
  • the storage control device 100B is for reading the corresponding read data locally from the received read command and transmitting it to the main processing device 100A through the serial link, or writing the corresponding write data to the local according to the received write command.
  • the first control module 104 is configured to read the corresponding data locally according to the received encapsulated read command, package it as read data, and send it to the second control module 105, or according to the received packaged write command. Write data is written locally. Both the read command and the write command are read commands or write commands encapsulated by the first main processing module 101.
  • the first control module 104 further includes a processing unit and a storage unit, wherein the processing unit and the storage unit may be in a corresponding relationship. All of the first control module 104 and the second control module 105 in the embodiment of the present invention may constitute a memory array. There may be a plurality of first control modules 104 and second control modules 105 in the memory array in the embodiment of the present invention.
  • the processing unit in the first control module 104 reads the corresponding data from the storage unit according to the received encapsulated read and write command, encapsulates it into read data, and sends it to the second control module 105, or according to the received package.
  • the subsequent write command writes the write data to the memory location.
  • the processing unit performs a corresponding operation according to the received read and write instructions sent by the first main processing module 101. For example, when receiving the encapsulated write instruction, the processing unit sends the encapsulated write instruction to the corresponding storage unit, and after receiving the encapsulated write instruction, the storage unit encapsulates the package according to the encapsulated write instruction.
  • the write data to be written carried in the subsequent write command is stored.
  • the memory unit After receiving the encapsulated read command, after receiving the encapsulated read command, the memory unit reads the data pointed to by the read address and sends the data to the processing unit according to the read address carried in the encapsulated read command. After receiving the data sent by the storage unit, the processing unit encapsulates the data into a reply data format of the read command, that is, encapsulates the data into the read data, and sends the read data to the second control module 105.
  • the encapsulated reply data can be referred to as read data.
  • the first control module 104 can be located in the Command layer.
  • the second control module 105 is configured to restore the received first data frame to the encapsulated read and write command and send it to the first control module 104.
  • the second control module 105 receives the first data frame transmitted by the second physical layer module 106. After receiving the first data frame, the second control module 105 restores the first data frame to the encapsulated read and write command, and sends the restored encapsulated read and write command to the first control module 104.
  • the second control module 105 may send the restored encapsulated read and write commands to the corresponding first control module 104 according to the target ID included in the first data frame.
  • the second control module 105 can be located in the Data link layer.
  • the second control module 105 is further configured to encapsulate the received read data into a first read data frame and then send the data to the second physical layer module 106.
  • the second control module 105 may divide the data into a fixed size reply data frame, and the format of the reply data frame may be the same as that shown in FIG. 4, and is processed by the second control module 105.
  • the subsequent read data may be referred to as a first read data frame.
  • the source ID and the target ID in each of the first read data frames are consistent with the encapsulated read command corresponding to the first read data frame, and the ACK ID is determined according to the encapsulated read command, and after the same encapsulation
  • the reply data corresponding to the read command has the same ACK ID.
  • the target ID in the first data frame that is, the encapsulated read command and the write command, may include the ID of the corresponding first control module 104 and the ID of the corresponding second control module 105.
  • the second physical layer module 106 is configured to restore the received second data frame to the first data frame, and send the second data frame to the second control module 105.
  • the second physical layer module 106 can include a second PCS sublayer and a second PMA sublayer.
  • the second physical layer module 106 is further configured to process the received first read data frame into a second read data frame and send the first read data frame to the first physical layer module 103.
  • the second PMA sublayer After receiving the second data frame sent by the first PMA sublayer, the second PMA sublayer sends the data frame to the second PCS sublayer.
  • the second PCS sublayer processes the received second data frame, for example, the information contained in the second data frame by operations such as specific boundaries, CRC check, descrambling, etc.
  • the information is recovered, and the second data frame may be restored to the first data frame, and the format may be a format processed by the second main processing module 102 as shown in FIG.
  • the second PCS sublayer sends the first data frame to the second control module 105.
  • the second PMA sub-layer may send the first data frame to the corresponding second control module 105 according to the target ID included in the first data frame, where the second control module 105 may Reverting to the encapsulated read and write instructions, and transmitting the encapsulated read and write instructions to the corresponding first control module 104 according to the target ID.
  • the second PCS sub-layer After receiving the first read data frame sent by the second control module 105, the second PCS sub-layer performs load distribution on the serial channel, and can scramble the first read data frame, and can also perform CRC check processing, if one of them If the first read data frame is incorrectly verified, the second main processing module 102 is notified to resend all the first read data frames including the first read data frame and the first read data frame, if all the first read data frames If the verification is correct, the second PCS sub-layer sends the processed first read data frame to the second PMA sub-layer, and the second PMA sub-layer transmits the data through the serial link.
  • the first read data frame processed by the second PCS sublayer may be referred to as a second read data frame.
  • the serial link in the embodiment of the present invention may be a SERDES in the board, a SERDES between boards, or a high speed interface such as a fiber connection.
  • the bidirectional serial connection since the traffic in the two directions of the serial link may not be completely equal, the bidirectional serial connection may be unbalanced, and needs to be evaluated according to the specific read/write traffic.
  • the third main processing module 107 is configured to generate read and write instructions, and output the generated read and write instructions to the first main processing module 101 for packaging by the first main processing module 101.
  • the third main processing module 107 can be located at the application layer.
  • the scheduling module 108 is configured to schedule the first main processing module 101. There may be multiple first main processing modules 101. Each of the first main processing modules 101 encapsulates the read and write instructions to form source information (the encapsulated read and write instructions may be referred to as source information), and may first source the source. The information is sent to the scheduling module 108, and the scheduling module 108 determines which of the first primary processing modules 101 to send the source first. The information is output to the second main processing module 102, that is, the scheduling module 108 determines the order in which the source information is transmitted.
  • the scheduling module 108 can perform scheduling in multiple manners, including but not limited to priority scheduling, first-in first-out scheduling, and weighted fair scheduling.
  • the scheduling module 108 can be located between the Command layer and the Data link layer.
  • the main method for reading and writing data in the embodiment of the present invention is as follows:
  • Step 501 The processed read and write commands are sent by the main processing device 100A to the storage control device 100B through the serial link;
  • Step 502 The storage control device 100B reads the corresponding read data locally according to the received read command and sends the data to the main processing device 100A through the serial link, or writes the write data to the local device according to the received write command. .
  • Step 601 The first main processing module 101 encapsulates the write instruction, forms a packaged write instruction, and sends the write instruction to the second main processing module 102.
  • the encapsulated write instruction can be referred to as source information and can be in the format of a write instruction as shown in FIG.
  • Step 602 The second main processing module 102 performs framing processing on the encapsulated write command, and sends the packet to the first physical layer module 103 after being the first data frame.
  • the second main processing module 102 may divide the write instruction into fixed-size data frames, add a CRC check, and corresponding source ID, target ID, ACK ID, etc., so as to be the first data frame.
  • Step 603 The first physical layer module 103 processes the received first data frame into a second data frame and sends the received data frame to the second physical layer module 106.
  • the first data frame processed by the first physical layer module 103 may be referred to as a second data frame.
  • the first physical layer module 103 can transmit the second data frame to the second physical layer module 106 over the serial link.
  • Step 604 The second physical layer module 106 restores the received second data frame to the first data frame, and sends the data frame to the second control module 105.
  • Step 605 The second control module 105 restores the received first data frame to the encapsulated write command and sends it to the first control module 104.
  • Step 606 The first control module 104 writes the write data to the local according to the received encapsulated write instruction.
  • Step 701 The first main processing module 101 encapsulates the read command, forms a encapsulated read command, and sends the read command to the second main processing module 102.
  • the encapsulated read instruction may be referred to as source information and may be in the format of a read instruction as shown in FIG.
  • Step 702 The second main processing module 102 performs framing processing on the encapsulated read command, and sends it to the first physical layer module 103 after being the first data frame.
  • the second main processing module 102 can divide the write instruction into fixed-size data frames, add a CRC check, and corresponding source ID, target ID, ACK ID, etc., so as to be the first data frame.
  • Step 703 The first physical layer module 103 processes the received first data frame into a second data frame and sends the received data frame to the second physical layer module 106.
  • the first data frame processed by the first physical layer module 103 may be referred to as a second data frame.
  • the first physical layer module 103 can transmit the second data frame to the second physical layer module 106 over the serial link.
  • Step 704 The second physical layer module 106 restores the received second data frame to the first data frame, and sends the data frame to the second control module 105.
  • Step 705 The second control module 105 restores the received first data frame to the encapsulated read command, and sends the received data to the first control module 104.
  • Step 706 The first control module 104 reads the corresponding data locally according to the encapsulated read command, and encapsulates the read data into read data and sends the data to the second control module 105.
  • Step 707 The second control module 105 performs framing processing on the received read data to be the first read data frame and then sends the data to the second physical layer module 106.
  • the source ID and the target ID included in the first read data frame are the same as the source ID and the target ID in the read command, respectively.
  • the ACK ID is also the same.
  • Step 708 The second physical layer module 107 processes the received first read data frame into a second read data frame and sends the first read data frame to the first physical layer module 103.
  • the second physical layer module 107 can transmit the second read data frame to the first physical layer module 103 over the serial link.
  • Step 709 The first physical layer module 103 restores the received second read data frame to the first read data frame and sends it to the second main processing module 102.
  • Step 710 The second main processing module 102 restores the received first read data frame to read data and then sends the data to the first main processing module 101.
  • Step 711 The first main processing module 101 receives the read data.
  • the information processing method in the embodiment of the present invention is: the main processing device 100A transmits the processed read and write commands to the storage control device 100B through a serial link; the storage control device 100B reads from the local according to the received read command. The data is read accordingly and sent to the main processing device 100A via the serial link, or the write data is written locally according to the received write command.
  • the pin used by the main processing device 100A for connecting with the storage control device 100B is reduced, the utilization of the pin is improved, and the pin resource is saved.
  • the main processing module and the storage module can be located on different boards, which facilitates distributed storage, and has better adaptability for applications with large capacity and ultra-high bandwidth.
  • the storage module is used as a separate module for easy upgrade.
  • the storage module can use the same physical layer as other interface parts, which simplifies the design of the physical layer. The complexity is also reduced accordingly.
  • the error correction mechanism such as error retransmission is adopted to improve the reliability of transmission.
  • embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer usable storage media (including but not limited to disk storage and optical storage, etc.) in which computer usable program code is embodied.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明实施例提供一种数据读、写方法及***,所述***包括:主处理装置及存储控制装置;其中,所述主处理装置,用于将处理后的读、写指令通过串行链路发送给存储控制装置,及接收所述存储控制装置返回的读数据;所述存储控制装置,用于根据接收的读指令从本地读取相应读数据并通过所述串行链路发送给所述主处理装置,或根据接收的写指令将相应写数据写入本地。本发明实施例通过将指令通过串行链路进行发送,减少了主处理装置用于与存储控制装置连接的管脚,提高了管脚的利用率,节约了管脚资源。且本发明实施例中主处理装置与存储控制装置可以位于不同的单板上,便于进行分布式存储,对于超大容量及超高带宽的应用具有较好的适应性。

Description

一种数据读、 写方法及*** 技术领域
本发明涉及通信领域, 特别涉及一种数据读、 写方法及***。 背景技术
随着因特网的高速发展, IP所承载的内容越来越广泛, 从电子邮件, 流媒体, 交互式语音到互动电视, 在线游戏等, 这对传统路由器的存储转 发性能要求越来越高。 目前主流路由器存储主要采用 DDR2, DDR3技术, 它具有带宽高, 并行性强, 容量大等优点, 目前主流的双倍速率同步动态 随机存储器( Double Data Rate, DDR )颗粒基本在 lGb~8Gb之间, 如果采 用多片并联, 则带宽可以达到 10Gb/s~200Gb/s。 但 DDR技术采用并行传输 的方式进行存储, 占用了较多的管脚资源。
为了提高路由器存储容量及带宽, 适应未来网络存储的需求, 现有技 术中提出了基于多层消息协议的高速串行分布式存储方法, 该方法结合日 益完善的串行高速接口, 采用多层消息协议, 保证在分布式条件下可达到 较高的存储性能。例如一种现有技术对 IC芯片内部使用并串行与串并行转 换器(SERDES ) 串行连接的物理结构进行了阐述, 主要有应用层, 逻辑层 以及物理层。 但该技术只是描述了物理逻辑模块的摆放方法, 并没有涉及 各个逻辑模块之间的消息协议交互。 且在 SERDES的高速传输中没有采用 错误重传处理, 使得构建的平台误码率很高, 无法在高可靠性的存储环境 中使用。 发明内容
本发明实施例提供一种数据读、 写方法及***, 用于实现数据的分布 式存储, 节约资源。
一种数据读、 写***, 包括:
主处理装置, 用于将处理后的读、 写指令通过串行链路发送给存储控 制装置, 及接收所述存储控制装置返回的读数据;
存储控制装置, 用于根据接收的读指令从本地读取相应读数据并通过 所述串行链路发送给所述主处理装置, 或根据接收的写指令将相应写数据 写入本地。
其中, 所述主处理装置与所述存储控制装置位于相同或不同的单板上。 其中, 所述串行链路为板内的并串行与串并行转换器(SERDES ), 或 板间的 SERDES, 或光纤连接的高速接口。
进一步地, 所述主处理装置包括:
第一主处理模块, 用于将读、 写指令进行封装后发送给第二主处理模 块, 及接收所述第二主处理模块传送的读数据; 所述第一主处理模块位于 命令层;
第二主处理模块, 用于对封装后的读、 写指令进行成帧处理, 使所述 读、 写指令成为第一数据帧后发送给第一物理层模块, 及将接收的第一读 数据帧恢复为读数据后发送给所述第一主处理模块; 所述第二主处理模块 位于数据链路层;
第一物理层模块, 用于对接收的第一数据帧进行循环冗余 CRC校验、 扰码处理, 使所述第一数据帧成为第二数据帧后通过所述串行链路发送给 第二物理层模块, 及将接收的第二读数据帧恢复为第一读数据帧后发送给 所述第二主处理模块; 所述第一物理层模块位于物理层;
所述存储控制装置包括:
第二物理层模块, 用于将接收的第二数据帧恢复为第一数据帧并发送 给第二控制模块, 及对接收的第一读数据帧进行 CRC校验、 扰码处理, 使 所述第一读数据帧成为第二读数据帧并通过所述串行链路发送给所述第一 物理层模块; 所述第二物理层模块位于物理层;
第二控制模块, 用于将接收的第一数据帧恢复为所述封装后的读、 写 指令并发送给第一控制模块, 及将接收的读数据封装为第一读数据帧后发 送给第二物理层模块; 所述第二控制模块位于数据链路层;
第一控制模块, 用于根据接收的读指令从本地读取相应数据并封装为 读数据后发送给所述第二控制模块, 或根据接收的写指令将写数据写入本 地; 所述第一控制模块位于命令层。
进一步地, 当所述主处理装置中包含至少两个第一主处理模块时, 所 述***还包括: 调度模块;
所述至少两个第一主处理模块, 还用于将所述读、 写指令发送给所述 调度模块;
所述调度模块, 用于对接收的所有读、 写指令进行调度后发送给所述 第二主处理模块; 其中, 调度方式为优先级调度, 或先进先出调度, 或加 权公平调度。
其中, 所述第一数据帧及第二数据帧中包含用于标识所述第一控制模 块的目的标识, 以使所述主处理装置根据所述目的标识, 通过所述第二物 理层模块及所述第二控制模块将读、 写指令发送至相应的所述第一控制模 块, 及包含用于标识所述第一主处理模块的源标识; 所述第一读数据帧及 第二读数据帧中包含的源标识及目的标识与相应的所述第一数据帧及第二 数据帧中包含的源标识及目的标识分别相同, 以使所述存储控制装置根据 所述源标识, 通过所述第一物理层模块及所述第二主处理模块将读数据发 送至所述第一主处理模块。
一种数据读、 写方法, 包括以下步驟:
将处理后的读、 写指令由主处理装置通过串行链路发送给存储控制装 置;
所述存储控制装置根据接收的读指令从本地读取相应读数据并通过所 述串行链路发送给所述主处理装置, 或根据接收的写指令将写数据写入本 地。
其中, 所述将处理后的读、 写指令由主处理装置通过串行链路发送给 存储控制装置为:
由所述主处理装置中的第一主处理模块将读、 写指令进行封装后发送 给所述主处理装置中的第二主处理模块; 所述第一主处理模块位于命令层; 由所述第二主处理模块将所述读、 写指令进行成帧处理, 使所述读、 写指令成为第一数据帧后发送给所述主处理装置中的第一物理层模块; 所 述第二主处理模块位于数据链路层;
由所述第一物理层模块对接收的第一数据帧进行 CRC校验、扰码处理, 使所述第一数据帧成为第二数据帧后通过所述串行链路发送给所述存储控 制装置中的第二物理层模块; 所述第一物理层模块位于物理层;
由所述第二物理层模块将接收的第二数据帧恢复为第一数据帧并发送 给所述存储控制装置中的第二控制模块; 所述第二物理层模块位于物理层; 由所述第二控制模块将接收的第一数据帧恢复为所述封装后的读、 写 指令并发送给所述存储控制装置中的第一控制模块; 所述第二控制模块位 于数据链路层;
由所述第一控制模块根据接收的封装后的读指令从本地读取相应数据 并封装为读数据后发送给所述第二控制模块, 或根据接收的封装后的写指 令将写数据写入本地; 所述第一控制模块位于命令层。
其中, 所述存储控制装置根据接收的读指令从本地读取相应读数据并 通过所述串行链路发送给所述主处理装置为:
由所述存储控制装置中的第一控制模块根据接收的封装后的读指令从 本地读取相应数据并封装为读数据后发送给所述存储控制装置中的第二控 制模块; 所述第一控制模块位于命令层;
由所述第二控制模块将接收的读数据封装为第一读数据帧后发送给所 述存储控制装置中的第二物理层模块; 所述第二控制模块位于数据链路层; 由所述第二物理层模块对接收的第一读数据帧进行 CRC校验、 扰码处 理, 使所述第一读数据帧成为第二读数据帧并通过所述串行链路发送给所 述主处理装置; 所述第二物理层模块位于物理层。
进一步地, 所述方法还包括:
所述主处理装置接收所述存储控制装置返回的读数据;
其中, 所述主处理装置接收所述存储控制装置返回的读数据为: 由所述主处理装置中的第一物理层模块将接收的第二读数据帧恢复为 第一读数据帧后发送给所述主处理装置中的第二主处理模块; 所述第一物 理层模块位于物理层;
由所述第二主处理模块将接收的第一读数据帧恢复为读数据后发送给 所述主处理装置中的第一主处理模块; 所述第二主处理模块位于数据链路 层;
由所述第一主处理模块接收所述第二主处理模块发送的读数据; 所述 第一主处理模块位于命令层。
进一步地, 当所述主处理装置包含至少两个第一主处理模块时, 所述 方法还包括:
由所述至少两个第一主处理模块将所述封装后的读、 写指令发送给调 度模块;
由所述调度模块对接收的所有封装后的读、 写指令进行调度后发送给 所述主处理装置中的第二主处理模块; 其中, 调度方式为优先级调度, 或 先进先出调度, 或加权公平调度。 本发明实施例中数据读、 写方法为: 主处理装置将处理后的读、 写指 令通过串行链路发送给存储控制装置; 所述存储控制装置根据接收的读指 令从本地读取相应读数据并通过所述串行链路发送给所述主处理装置, 或 根据接收的写指令将写数据写入本地。 本发明实施例通过将指令通过串行 链路进行发送, 减少了主处理装置用于与存储控制装置连接的管脚, 提高 了管脚的利用率, 节约了管脚资源。 且本发明实施例中主处理装置与存储 控制装置可以位于不同的单板上, 便于进行分布式存储, 对于超大容量及 超高带宽的应用具有较好的适应性。 附图说明
图 1为本发明实施例中数据读、 写***的详细结构图;
图 2为本发明实施例中读指令的格式示意图;
图 3为本发明实施例中写指令的格式示意图;
图 4为本发明实施例中第一数据帧的格式示意图;
图 5为本发明实施例中数据读、 写方法的主要流程图;
图 6为本发明实施例中写数据的详细方法流程图;
图 7为本发明实施例中读数据的详细方法流程图。 具体实施方式
本发明实施例中数据读、 写方法为: 主处理装置将处理后的读、 写指 令通过串行链路发送给存储控制装置; 所述存储控制装置根据接收的读指 令从本地读取相应读数据并通过所述串行链路发送给所述主处理装置, 或 根据接收的写指令将写数据写入本地。 本发明实施例通过将指令通过串行 链路进行发送, 减少了主处理装置用于与存储控制装置连接的管脚, 提高 了管脚的利用率, 节约了管脚资源。 且本发明实施例中主处理装置与存储 控制装置可以位于不同的单板上, 便于进行分布式存储, 对于超大容量及 超高带宽的应用具有较好的适应性。
参见图 1 , 本发明实施例中数据读、 写***包括主处理装置 100A及存 储控制装置 100B。 其中, 主处理装置 100A包括第一主处理模块 101、 第二 主处理模块 102及第一物理层模块 103; 存储控制装置 100B包括第一控制 模块 104、 第二控制模块 105和第二物理层模块 106。 本发明实施例中所述 数据读、 写***还包括第三主处理模块 107及调度模块 108, 所述第三主处 理模块 107及调度模块 108可以位于主处理装置 100A中。所述主处理装置 100A可以位于主处理板上,所述存储控制装置 100B可以位于存储器板上, 所述主处理板和所述存储器板可以是两个独立的单板。 或者所述存储控制 装置 100B也可以位于主处理板上, 即所述存储控制装置 100B可以与所述 主处理装置 100A位于相同或不同的单板上。
主处理装置 100A用于将处理后的读、写指令通过串行链路发送给存储 控制装置 100B, 及接收所述存储控制装置 100B返回的读数据。
第一主处理模块 101 , 用于将读、写指令进行封装后发送给第二主处理 模块 102。第一主处理模块 101接收第三主处理模块 107输出的读指令或写 指令。 第一主处理模块 101 将接收的读指令或写指令按照相应格式进行封 装。 例如, 如图 2所示为读指令的封装格式, 其中读命令中需包含读数据 的长度及读数据的有效字节等信息, 所述读数据为需从存储器中读取的数 据, Data_width为存储器数据的位宽。 Addr_width为存储器地址的位宽。 如图 3 所示为写命令的封装格式, 其中写命令需包括写数据的长度及写数 据的有效字节等信息, 所述写数据为需写入存储器的数据, Data_width 为 存储器数据的位宽。 Addr_width 为存储器地址的位宽。 如果是写命令, 则 经第一主处理模块 101封装后, 将需写入存储器的数据转换成了便于存储 器存储的数据。 第一主处理模块 101 将封装后的读、 写指令发送给第二主 处理模块 102。 第一主处理模块 101还用于接收第二主处理模块 102传送的读数据。 所述读数据即第一主处理模块 101发送的相应读指令所请求从第一控制模 块 104中读出的数据。 其中, 第一主处理模块 101可以位于 Command layer (命令层)。 主处理装置 100A中可以包括多个第一主处理模块 101 , 即主 处理装置 100A中包括至少一个第一主处理模块 101。
第二主处理模块 102用于对封装后的所述读、 写指令进行成帧处理, 使其成为第一数据帧后发送给第一物理层模块 103。第二主处理模块 102接 收第一主处理模块 101发送的封装后的读、 写指令, 将其切分为固定大小 的数据帧。 如图 4所示, 为本发明实施例中经第二主处理模块 102处理后 的数据帧格式, 其中 Command layer payload为命令层的负载。 可以在每个 数据帧中添加 CRC (循环冗余校验码)校验, 以方便进行校验, 所述 CRC 校验可以添加在每个数据帧的帧尾。 其中 CRC校验可以采用不同的校验多 项式, 但为了尽可能提高传输效率, 可以用尽可能少的 CRC校验数据, 例 如用 4字节的 CRC校验数据即可。还可以在每个数据帧中添加 source ID(源 标识), 即相应的主处理模块编号(可以包括相应第一主处理模块 101的编 号)、 target ID (目的标识 ), 即目的存储器的编号(可以包括相应第一控制 模块 104的编号)、 ACK ID (确认字符标识 )等, 所述 ACK ID为帧发送时 间戳, 表明发送的先后顺序, 每发送一个数据帧, 则下一个数据帧所携带 的 ACK ID的值加 1。 经第二主处理模块 102处理后的已封装的读、 写指令 可以称为第一数据帧。 第二主处理模块 102将第一数据帧发送给第一物理 层模块 103。
第二主处理模块 102还用于接收第一物理层模块 103发送的第一读数 据帧, 及将接收的第一读数据帧恢复为读数据后发送给第一主处理模块 101。 第二主处理模块 102接收第一读数据帧后, 将所述第一读数据帧恢复 为读数据, 并将恢复出的读数据发送给第一主处理模块 101。 第二主处理模 块 102可以根据所述第一读数据帧中包含的 source ID将恢复出的读数据发 送给相应的第一主处理模块 101。其中,第二主处理模块 102可以位于 Data link layer (数据链路层)。
第一物理层模块 103用于对接收的第一数据帧进行 CRC校验、 扰码处 理, 使其成为第二数据帧后通过所述串行链路发送给第二物理层模块 106。 第一物理层模块 103可以包括第一 PMA(物理介质接入层)子层及第二 PCS (物理编码)子层。 其中, 第一物理层模块 103 可以位于物理层。 第一物 理层模块 103还用于将接收的第二读数据帧恢复为第一读数据帧后发送给 第二主处理模块 102。
第一 PCS子层接收第二主处理模块 102发送的第一数据帧后可以首先 对其进行 CRC校验处理, 如果其中一个第一数据帧校验有误, 则通知第二 主处理模块 102重新发送包括该第一数据帧及该第一数据帧之前的所有第 一数据帧, 如果所有第一数据帧均校验正确, 则第一 PCS子层可以在串行 通道上对其进行负载分配, 还可对所述第一数据帧进行扰码, 经第一 PCS 子层处理后的第一数据帧可以称为第二数据帧, 第一 PCS子层将第二数据 帧发送给第一 PMA子层, 由第一 PMA子层通过串行链路将其进行发送。 本发明实施例中所述串行链路可以是板内的 SERDES , 也可以是板间的 SERDES, 或者是光纤连接的高速接口等。
第一 PMA子层接收信息处理装置返回的第二读数据帧后,将该第二读 数据帧发送给第一 PCS子层。 第一 PCS子层对接收的第二读数据帧进行处 理, 例如, 可以通过比特定界、 CRC校验、 解扰等操作, 将所述第二读数 据帧中包含的信息恢复出来, 可以将所述第二读数据帧恢复为第一读数据 帧, 其格式可以是如图 4中所示的经第二主处理模块 102成帧处理后的格 式。 第二 PCS子层将所述第一读数据帧发送给第二主处理模块 102。 其中, 第二 PMA子层可以根据所述第一读数据帧中所包含的 source ID将所述第 一读数据帧发送给相应的第二主处理模块 102,第二主处理模块 102可以将 所述第一读数据帧恢复为读数据, 并根据该 source ID将所述读数据发送给 相应的第一主处理模块 101。
存储控制装置 100B 用于根据接收的读指令从本地读取相应读数据并 通过所述串行链路发送给所述主处理装置 100A, 或根据接收的写指令将相 应写数据写入本地。
第一控制模块 104用于根据接收的封装后的读指令从本地读取相应数 据, 将其封装为读数据后发送给所述第二控制模块 105, 或根据接收的封装 后的写指令将相应写数据写入本地。 所述读指令和写指令均为经第一主处 理模块 101封装后的读指令或写指令。 第一控制模块 104还包括处理单元 及存储单元, 其中, 处理单元和存储单元可以是——对应的关系。 本发明 实施例中所有的第一控制模块 104及第二控制模块 105可以构成一个存储 器阵列。 本发明实施例中所述存储器阵列中可以有多个第一控制模块 104 及第二控制模块 105。
第一控制模块 104 中的处理单元根据接收的封装后的读、 写指令从存 储单元中读取相应数据, 将其封装为读数据后发送给所述第二控制模块 105, 或根据接收的封装后的写指令将写数据写入存储单元。 处理单元根据 接收到的第一主处理模块 101发送的读、 写指令进行相应操作。 例如, 接 收到封装后的写指令时, 处理单元将该封装后的写指令发送给相应的存储 单元, 存储单元在接收到该封装后的写指令后, 根据该封装后的写指令将 该封装后的写指令中携带的需写入的写数据进行存储。 接收到封装后的读 指令时, 则存储单元在接收到该封装后的读指令后, 根据该封装后的读指 令中携带的读地址, 将该读地址指向的数据读出后发送给处理单元, 处理 单元在接收到存储单元发送的数据后, 将该数据封装为读指令的回复 ( Reply )数据格式,即封装为读数据,并将读数据发送给第二控制模块 105。 该封装后的回复数据可以称为读数据。 其中, 第一控制模块 104可以位于 Command layer。
第二控制模块 105 用于将接收的第一数据帧恢复为所述封装后的读、 写指令, 并发送给第一控制模块 104。 第二控制模块 105接收第二物理层模 块 106发送的第一数据帧。 第二控制模块 105接收第一数据帧后, 将所述 第一数据帧恢复为封装后的读、 写指令, 并将恢复出的封装后的读、 写指 令发送给第一控制模块 104。第二控制模块 105可以根据所述第一数据帧中 包含的 target ID将恢复出的封装后的读、 写指令发送给相应的第一控制模 块 104。 其中, 第二控制模块 105可以位于 Data link layer。
第二控制模块 105还用于将接收的读数据封装为第一读数据帧后发送 给第二物理层模块 106。 第二控制模块 105在接收到相应的读数据后, 可以 将其切分为固定大小的回复数据帧, 所述回复数据帧的格式可以与图 4 中 所示相同, 经第二控制模块 105处理后的读数据可以称为第一读数据帧。 其中每个第一读数据帧中的 source ID及 target ID与该第一读数据帧所对应 的封装后的读指令中一致, ACK ID根据所述封装后的读指令确定, 对于同 一个封装后的读指令所对应的回复数据, ACK ID相同。 其中, 第一数据帧 中, 即封装后的读指令与写指令中的 target ID可以包括相应的第一控制模 块 104的 ID及相应的第二控制模块 105的 ID。
第二物理层模块 106, 用于将接收的第二数据帧恢复为第一数据帧, 并 发送给第二控制模块 105。 第二物理层模块 106可以包括第二 PCS子层及 第二 PMA子层。第二物理层模块 106还用于将接收的第一读数据帧处理为 第二读数据帧, 并通过所述串行链路发送给第一物理层模块 103。
第二 PMA子层接收第一 PMA子层发送的第二数据帧后, 将该数据帧 发送给第二 PCS子层。第二 PCS子层对接收的第二数据帧进行处理,例如, 可以通过比特定界、 CRC校验、 解扰等操作将所述第二数据帧中包含的信 息恢复出来, 可以将所述第二数据帧恢复为第一数据帧, 其格式可以是如 图 4中所示的经第二主处理模块 102成帧处理后的格式。 第二 PCS子层将 所述第一数据帧发送给第二控制模块 105。 其中, 第二 PMA子层可以根据 所述第一数据帧中所包含的 target ID将所述第一数据帧发送给相应的第二 控制模块 105, 第二控制模块 105可以将该第一数据帧恢复为封装后的读、 写指令, 并根据该 target ID将所述封装后的读、 写指令发送给相应的第一 控制模块 104。
第二 PCS子层接收第二控制模块 105发送的第一读数据帧后在串行通 道上进行负载分配, 可对第一读数据帧进行扰码, 还可以进行 CRC校验处 理, 如果其中一个第一读数据帧校验有误, 则通知第二主处理模块 102重 新发送包括该第一读数据帧及该第一读数据帧之前的所有第一读数据帧, 如果所有第一读数据帧均校验正确, 则第二 PCS子层将处理后的第一读数 据帧发送给第二 PMA子层, 由第二 PMA子层通过串行链路进行发送。 其 中, 经第二 PCS子层处理后的第一读数据帧可以称为第二读数据帧。 本发 明实施例中所述串行链路可以是板内的 SERDES , 也可以是板间的 SERDES, 或者是光纤连接的高速接口等。 本发明实施例中由于串行链路的 两个方向的流量可能不完全相等, 因此双向的串行连接可以是不平衡的, 需根据具体的读写流量进行评估。
第三主处理模块 107用于生成读、 写指令, 并将生成的读、 写指令输 出给第一主处理模块 101 , 以供第一主处理模块 101进行封装。 其中, 第三 主处理模块 107可以位于应用层。
调度模块 108用于对第一主处理模块 101进行调度。 第一主处理模块 101可以有多个, 每个第一主处理模块 101将读、 写指令进行封装, 形成源 信息 (封装后的读、 写指令可以称为源信息)后, 可以先将源信息发送给 调度模块 108,由调度模块 108决定先将哪个第一主处理模块 101发送的源 信息输出给第二主处理模块 102,即由调度模块 108决定源信息的发送顺序。 调度模块 108进行调度的方式可以有多种, 可以包括但不限于优先级调度、 先进先出调度、加权公平调度等方式。调度模块 108可以位于 Command layer 及 Data link layer之间。
参见图 5 , 本发明实施例中数据读、 写的主要方法流程如下:
步驟 501 : 将处理后的读、 写指令由主处理装置 100A通过串行链路发 送给存储控制装置 100B;
步驟 502: 所述存储控制装置 100B根据接收的读指令从本地读取相应 读数据并通过所述串行链路发送给所述主处理装置 100A, 或根据接收的写 指令将写数据写入本地。
参见图 6, 本发明实施例中写数据的详细方法流程如下:
步驟 601 : 第一主处理模块 101将写指令进行封装, 形成封装后的写指 令后发送给第二主处理模块 102。
封装后的写指令可以称为源信息, 其格式可以是如图 3 所示的写指令 格式。
步驟 602: 第二主处理模块 102将所述封装后的写指令进行成帧处理, 使其成为第一数据帧后发送给第一物理层模块 103。
第二主处理模块 102 可以将所述写指令切分为固定大小的数据帧, 对 其添加 CRC校验, 及相应的 source ID、 target ID, ACK ID等, 使其成为第 一数据帧。
步驟 603:第一物理层模块 103将接收的第一数据帧处理为第二数据帧 后发送给第二物理层模块 106。
经第一物理层模块 103处理后的第一数据帧可以称为第二数据帧。 第 一物理层模块 103可以通过串行链路将第二数据帧发送给第二物理层模块 106。 步驟 604:第二物理层模块 106将接收的第二数据帧恢复为第一数据帧 , 并发送给第二控制模块 105。
步驟 605:第二控制模块 105将接收的第一数据帧恢复为所述封装后的 写指令, 并发送给第一控制模块 104。
步驟 606:第一控制模块 104根据接收的封装后的写指令将写数据写入 本地。
参见图 7, 本发明实施例中读数据的详细方法流程如下:
步驟 701: 第一主处理模块 101将读指令进行封装, 形成封装后的读指 令后发送给第二主处理模块 102。
封装后的读指令可以称为源信息, 其格式可以是如图 2所示的读指令 格式。
步驟 702: 第二主处理模块 102将所述封装后的读指令进行成帧处理, 使其成为第一数据帧后发送给第一物理层模块 103。
第二主处理模块 102可以将所述写指令切分为固定大小的数据帧, 对 其添加 CRC校验, 及相应的 source ID、 target ID、 ACK ID等, 使其成为第 一数据帧。
步驟 703:第一物理层模块 103将接收的第一数据帧处理为第二数据帧 后发送给第二物理层模块 106。
经第一物理层模块 103处理后的第一数据帧可以称为第二数据帧。 第 一物理层模块 103可以通过串行链路将第二数据帧发送给第二物理层模块 106。
步驟 704:第二物理层模块 106将接收的第二数据帧恢复为第一数据帧, 并发送给第二控制模块 105。
步驟 705:第二控制模块 105将接收的第一数据帧恢复为所述封装后的 读指令, 并发送给第一控制模块 104。 步驟 706:第一控制模块 104根据所述封装后的读指令从本地读取相应 数据, 并将读取的数据封装为读数据后发送给第二控制模块 105。
步驟 707: 第二控制模块 105对接收的读数据进行成帧处理,使其成为 第一读数据帧后发送给第二物理层模块 106。
第一读数据帧中包含的 source ID和 target ID与所述读指令中的 source ID和 target ID分别相同。 对于同一个读指令, ACK ID也相同。
步驟 708:第二物理层模块 107将接收的第一读数据帧处理为第二读数 据帧后发送给第一物理层模块 103。
第二物理层模块 107 可以通过串行链路将第二读数据帧发送给第一物 理层模块 103。
步驟 709:第一物理层模块 103将接收的第二读数据帧恢复为第一读数 据帧后发送给第二主处理模块 102。
步驟 710:第二主处理模块 102将接收的第一读数据帧恢复为读数据后 发送给第一主处理模块 101。
步驟 711: 第一主处理模块 101接收所述读数据。
本发明实施例中信息处理的方法为: 主处理装置 100A将处理后的读、 写指令通过串行链路发送给存储控制装置 100B; 所述存储控制装置 100B 根据接收的读指令从本地读取相应读数据并通过所述串行链路发送给所述 主处理装置 100A, 或根据接收的写指令将写数据写入本地。
本发明实施例通过将指令通过串行链路进行发送, 减少了主处理装置 100A用于与存储控制装置 100B连接的管脚, 提高了管脚的利用率, 节约 了管脚资源。 且本发明实施例中主处理模块与存储模块可以位于不同的单 板上, 便于进行分布式存储, 对于超大容量及超高带宽的应用具有较好的 适应性。 将存储模块单独作为一个独立的模块, 便于升级。 存储模块可以 与其它接口部分采用相同的物理层, 使得物理层的设计得到了简化, 涉及 复杂度也相应降低。 且采用了错误重传等纠错机制, 提高了传输的可靠性。 本领域内的技术人员应明白, 本发明的实施例可提供为方法、 ***、 或计算机程序产品。 因此, 本发明可采用完全硬件实施例、 完全软件实施 例、 或结合软件和硬件方面的实施例的形式。 而且, 本发明可采用在一个 或多个其中包含有计算机可用程序代码的计算机可用存储介质 (包括但不 限于磁盘存储器和光学存储器等 )上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、 设备(***)、 和计算机程序 产品的流程图和 /或方框图来描述的。 应理解可由计算机程序指令实现流 程图和 /或方框图中的每一流程和 /或方框、 以及流程图和 /或方框图中 的流程和 /或方框的结合。 可提供这些计算机程序指令到通用计算机、 专 用计算机、 嵌入式处理机或其他可编程数据处理设备的处理器以产生一个 机器, 使得通过计算机或其他可编程数据处理设备的处理器执行的指令产 生用于实现在流程图一个流程或多个流程和 /或方框图一个方框或多个方 框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理 设备以特定方式工作的计算机可读存储器中, 使得存储在该计算机可读存 储器中的指令产生包括指令装置的制造品, 该指令装置实现在流程图一个 流程或多个流程和 /或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备 上, 使得在计算机或其他可编程设备上执行一系列操作步驟以产生计算机 实现的处理, 从而在计算机或其他可编程设备上执行的指令提供用于实现 在流程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的 功能的步驟。
显然, 本领域的技术人员可以对本发明进行各种改动和变型而不脱离 本发明的精神和范围。 这样, 倘若本发明的这些修改和变型属于本发明权 利要求及其等同技术的范围之内, 则本发明也意图包含这些改动和变型在 内。

Claims

权利要求书
1、 一种数据读、 写***, 其特征在于, 所述***包括: 主处理装置及 存储控制装置; 其中,
所述主处理装置, 用于将处理后的读、 写指令通过串行链路发送给存 储控制装置 , 及接收所述存储控制装置返回的读数据;
所述存储控制装置, 用于根据接收的读指令从本地读取相应读数据并 通过所述串行链路发送给所述主处理装置, 或根据接收的写指令将相应写 数据写入本地。
2、 如权利要求 1所述的***, 其特征在于, 所述主处理装置与所述存 储控制装置位于相同或不同的单板上。
3、 如权利要求 1所述的***, 其特征在于, 所述串行链路为板内的并 串行与串并行转换器 SERDES, 或板间的 SERDES, 或光纤连接的高速接 口。
4、 如权利要求 1所述的***, 其特征在于, 所述主处理装置包括: 第一主处理模块, 用于将读、 写指令进行封装后发送给第二主处理模 块, 及接收所述第二主处理模块传送的读数据; 所述第一主处理模块位于 命令层;
第二主处理模块, 用于对封装后的读、 写指令进行成帧处理, 使所述 读、 写指令成为第一数据帧后发送给第一物理层模块, 及将接收的第一读 数据帧恢复为读数据后发送给所述第一主处理模块; 所述第二主处理模块 位于数据链路层;
第一物理层模块, 用于对接收的第一数据帧进行循环冗余 CRC校验、 扰码处理, 使所述第一数据帧成为第二数据帧后通过所述串行链路发送给 第二物理层模块, 及将接收的第二读数据帧恢复为第一读数据帧后发送给 所述第二主处理模块; 所述第一物理层模块位于物理层; 所述存储控制装置包括:
第二物理层模块, 用于将接收的第二数据帧恢复为第一数据帧并发送 给第二控制模块, 及对接收的第一读数据帧进行 CRC校验、 扰码处理, 使 所述第一读数据帧成为第二读数据帧并通过所述串行链路发送给所述第一 物理层模块; 所述第二物理层模块位于物理层;
第二控制模块, 用于将接收的第一数据帧恢复为所述封装后的读、 写 指令并发送给第一控制模块, 及将接收的读数据封装为第一读数据帧后发 送给第二物理层模块; 所述第二控制模块位于数据链路层;
第一控制模块, 用于根据接收的读指令从本地读取相应数据并封装为 读数据后发送给所述第二控制模块, 或根据接收的写指令将写数据写入本 地; 所述第一控制模块位于命令层。
5、 如权利要求 4所述的***, 其特征在于, 当所述主处理装置中包含 至少两个第一主处理模块时, 所述***还包括: 调度模块;
所述至少两个第一主处理模块, 还用于将所述读、 写指令发送给所述 调度模块;
所述调度模块, 用于对接收的所有读、 写指令进行调度后发送给所述 第二主处理模块; 其中, 调度方式为优先级调度, 或先进先出调度, 或加 权公平调度。
6、 如权利要求 4所述的***, 其特征在于, 所述第一数据帧及第二数 据帧中包含用于标识所述第一控制模块的目的标识, 以使所述主处理装置 根据所述目的标识, 通过所述第二物理层模块及所述第二控制模块将读、 写指令发送至相应的所述第一控制模块, 及包含用于标识所述第一主处理 模块的源标识; 所述第一读数据帧及第二读数据帧中包含的源标识及目的 标识与相应的所述第一数据帧及第二数据帧中包含的源标识及目的标识分 别相同, 以使所述存储控制装置根据所述源标识, 通过所述第一物理层模 块及所述第二主处理模块将读数据发送至所述第一主处理模块。
7、 一种数据读、 写方法, 其特征在于, 包括:
将处理后的读、 写指令由主处理装置通过串行链路发送给存储控制装 置;
所述存储控制装置根据接收的读指令从本地读取相应读数据并通过所 述串行链路发送给所述主处理装置, 或根据接收的写指令将写数据写入本 地。
8、 如权利要求 7所述的方法, 其特征在于, 所述将处理后的读、 写指 令由主处理装置通过串行链路发送给存储控制装置为:
由所述主处理装置中的第一主处理模块将读、 写指令进行封装后发送 给所述主处理装置中的第二主处理模块; 所述第一主处理模块位于命令层; 由所述第二主处理模块将所述读、 写指令进行成帧处理, 使所述读、 写指令成为第一数据帧后发送给所述主处理装置中的第一物理层模块; 所 述第二主处理模块位于数据链路层;
由所述第一物理层模块对接收的第一数据帧进行 CRC校验、扰码处理, 使所述第一数据帧成为第二数据帧后通过所述串行链路发送给所述存储控 制装置中的第二物理层模块; 所述第一物理层模块位于物理层;
由所述第二物理层模块将接收的第二数据帧恢复为第一数据帧并发送 给所述存储控制装置中的第二控制模块; 所述第二物理层模块位于物理层; 由所述第二控制模块将接收的第一数据帧恢复为所述封装后的读、 写 指令并发送给所述存储控制装置中的第一控制模块; 所述第二控制模块位 于数据链路层;
由所述第一控制模块根据接收的封装后的读指令从本地读取相应数据 并封装为读数据后发送给所述第二控制模块, 或根据接收的封装后的写指 令将写数据写入本地; 所述第一控制模块位于命令层。
9、 如权利要求 7所述的方法, 其特征在于, 所述存储控制装置根据接 收的读指令从本地读取相应读数据并通过所述串行链路发送给所述主处理 装置为:
由所述存储控制装置中的第一控制模块根据接收的封装后的读指令从 本地读取相应数据并封装为读数据后发送给所述存储控制装置中的第二控 制模块; 所述第一控制模块位于命令层;
由所述第二控制模块将接收的读数据封装为第一读数据帧后发送给所 述存储控制装置中的第二物理层模块; 所述第二控制模块位于数据链路层; 由所述第二物理层模块对接收的第一读数据帧进行 CRC校验、 扰码处 理, 使所述第一读数据帧成为第二读数据帧并通过所述串行链路发送给所 述主处理装置; 所述第二物理层模块位于物理层。
10、 如权利要求 7所述的方法, 其特征在于, 所述方法还包括: 所述主处理装置接收所述存储控制装置返回的读数据。
11、 如权利要求 10所述的方法, 其特征在于, 所述主处理装置接收所 述存储控制装置返回的读数据为:
由所述主处理装置中的第一物理层模块将接收的第二读数据帧恢复为 第一读数据帧后发送给所述主处理装置中的第二主处理模块; 所述第一物 理层模块位于物理层;
由所述第二主处理模块将接收的第一读数据帧恢复为读数据后发送给 所述主处理装置中的第一主处理模块; 所述第二主处理模块位于数据链路 层;
由所述第一主处理模块接收所述第二主处理模块发送的读数据; 所述 第一主处理模块位于命令层。
12、 如权利要求 7所述的方法, 其特征在于, 当所述主处理装置包含 至少两个第一主处理模块时, 所述方法还包括: 由所述至少两个第一主处理模块将所述封装后的读、 写指令发送给调 度模块;
由所述调度模块对接收的所有封装后的读、 写指令进行调度后发送给 所述主处理装置中的第二主处理模块; 其中, 调度方式为优先级调度, 或 先进先出调度, 或加权公平调度。
PCT/CN2012/075146 2011-06-21 2012-05-07 一种数据读、写方法及*** WO2012174953A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110167199.3A CN102231141B (zh) 2011-06-21 2011-06-21 一种数据读、写方法及***
CN201110167199.3 2011-06-21

Publications (1)

Publication Number Publication Date
WO2012174953A1 true WO2012174953A1 (zh) 2012-12-27

Family

ID=44843705

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/075146 WO2012174953A1 (zh) 2011-06-21 2012-05-07 一种数据读、写方法及***

Country Status (2)

Country Link
CN (1) CN102231141B (zh)
WO (1) WO2012174953A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231141B (zh) * 2011-06-21 2017-04-05 深圳市中兴微电子技术有限公司 一种数据读、写方法及***
CN103544123A (zh) * 2012-07-16 2014-01-29 深圳市中兴微电子技术有限公司 Sdram控制器及对sdram存储空间的访问方法
EP2874073A1 (en) 2013-11-18 2015-05-20 Fujitsu Limited System, apparatus, program and method for data aggregation
CN103955440A (zh) * 2013-12-18 2014-07-30 记忆科技(深圳)有限公司 一种非易失存储设备及其进行数据操作的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1194715A (zh) * 1996-05-30 1998-09-30 卡西欧计算机株式会社 数据存储装置
CN1828510A (zh) * 2005-03-03 2006-09-06 富士通株式会社 数据存储***和数据存储控制装置
CN101495975A (zh) * 2006-12-25 2009-07-29 松下电器产业株式会社 存储控制装置、存储装置及存储控制方法
CN102231141A (zh) * 2011-06-21 2011-11-02 中兴通讯股份有限公司 一种数据读、写方法及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100573491C (zh) * 2006-12-15 2009-12-23 凌阳科技股份有限公司 串行传输控制器与串行传输解码器及其串行传输方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1194715A (zh) * 1996-05-30 1998-09-30 卡西欧计算机株式会社 数据存储装置
CN1828510A (zh) * 2005-03-03 2006-09-06 富士通株式会社 数据存储***和数据存储控制装置
CN101495975A (zh) * 2006-12-25 2009-07-29 松下电器产业株式会社 存储控制装置、存储装置及存储控制方法
CN102231141A (zh) * 2011-06-21 2011-11-02 中兴通讯股份有限公司 一种数据读、写方法及***

Also Published As

Publication number Publication date
CN102231141B (zh) 2017-04-05
CN102231141A (zh) 2011-11-02

Similar Documents

Publication Publication Date Title
US20200236140A1 (en) Transport layer security offload to a network interface
US9830289B2 (en) Methods and apparatus for aggregating packet transfer over a virtual bus interface
WO2016187813A1 (zh) 一种光电混合网络的数据传输方法及装置
US11909642B2 (en) Offload of acknowledgements to a network device
CN103902486B (zh) 一种远端直接内存访问实现方法、装置及***
US20210211467A1 (en) Offload of decryption operations
US11907140B2 (en) Serial interface for semiconductor package
CN114930786A (zh) 流传输协议封包形成的负载转移
JP6189898B2 (ja) アクティブメッセージによるrmaapiのサポート
CN105357147A (zh) 一种高速高可靠的片上网络适配单元
US20220261370A1 (en) Signal processing chip and signal processing system
CN106598889A (zh) 一种基于fpga夹层板的sata主控器
WO2012174953A1 (zh) 一种数据读、写方法及***
TWI497307B (zh) 通用串列匯流排事務轉譯器及通用串列匯流排傳輸轉譯方法
WO2023125212A1 (zh) 数据传输方法、装置、设备及介质
CN105933325A (zh) 一种基于NFSoRDMA的内核态RPC通信加速方法
CN104579605B (zh) 一种数据传输方法及装置
TWI343738B (zh)
CN101453479A (zh) 一种快速的文件传输***
CN111782579B (zh) 一种基于fpga的以太网协议硬件逻辑处理结构
WO2015055008A1 (zh) 一种存储控制芯片及磁盘报文传输方法
CN110830386B (zh) 报文保序的方法、装置和***
JP3988475B2 (ja) 送信装置、受信装置およびそれらの方法
CN110798366B (zh) 任务逻辑的处理方法、装置及设备
CN102546112B (zh) 一种数据封装方法及装置

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: 12803450

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12803450

Country of ref document: EP

Kind code of ref document: A1