US20050278602A1 - Data transmitting apparatus, data receiving apparatus, data transmitting method, and data receiving method - Google Patents

Data transmitting apparatus, data receiving apparatus, data transmitting method, and data receiving method Download PDF

Info

Publication number
US20050278602A1
US20050278602A1 US10/971,099 US97109904A US2005278602A1 US 20050278602 A1 US20050278602 A1 US 20050278602A1 US 97109904 A US97109904 A US 97109904A US 2005278602 A1 US2005278602 A1 US 2005278602A1
Authority
US
United States
Prior art keywords
data
clock
transmission
error correction
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/971,099
Other versions
US7555695B2 (en
Inventor
Syougo Oogami
Hiroshi Murakami
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Assigned to FUJITSU LIMITED reassignment FUJITSU LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MURAKAMI, HIROSHI, OOGAMI, SYOUGO
Publication of US20050278602A1 publication Critical patent/US20050278602A1/en
Application granted granted Critical
Publication of US7555695B2 publication Critical patent/US7555695B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end

Definitions

  • the present invention relates to a technology for transmitting and receiving a plurality of bits in parallel in synchronization with clocks, which improves an error correction capability in data transmission without increasing the number of signal lines and without causing a transmission delay for a reliable data transmission.
  • N-bit data When N-bit data is transmitted by using a bus between large-scale-integrated (LSI) devices, such as a central processing unit (CPU) and a crossover LSI or between modules in an LSI device, the data is divided into N/m bits at m clocks. For example, when 128-bit data is transmitted by using a 32-bit bus, the 128-bit data are divided into 32 bits, and the 32-bit data are transmitted at four clocks.
  • LSI large-scale-integrated
  • FIG. 15 is a schematic for explaining a conventional error correction method in inter-module data transmission.
  • 128-bit data is divided into 32 bits and transmitted at four clocks.
  • One parity bit is added to one 32-bit clock data in a bit direction to transmit 33-bit data.
  • a parity bit is added to each bit position of the 32 bits in a clock direction. The data is transmitted in the next additional cycle of the 4-clock data cycle.
  • one bit error in N-bits can be corrected, and a 2-bit error can be detected.
  • the error can be corrected by using the parity bit added to the data and the parity bit added to the bit position “32” in a clock direction (see, for example, Japanese Patent Laying-Open No. 6-125331 and Mitani Masaaki, “Yarinaoshi no tame no kougyou sugaku”, p. 48, CQ Publishing Co., Ltd., Jan. 1, 2001).
  • a data transmitting apparatus includes a code generating unit that divides transmission data into a plurality of partial data, and generates an error correction code for each of the partial data; a data dividing unit that divides the transmission data into a plurality of 1-clock data formed of a plurality of bits transmitted in parallel; and a transmission control unit that sequentially transmits each of the 1-clock data in synchronization with a clock cycle, and collectively transmits the error correction codes generated by the code generating unit in a 1-clock cycle.
  • a data transmitting apparatus includes a code generating unit that divides transmission data into a plurality of partial data, and generates an error correction code for each of the partial data; a data dividing unit that divides the transmission data into a plurality of 1-clock data formed of a plurality of bits transmitted in parallel; and a transmission control unit that sequentially transmits each of the 1-clock data in synchronization with a clock cycle, and collectively transmits the error correction codes generated by the code generating unit using a blank of a control signal.
  • a data receiving apparatus includes a reception control unit that receives transmission data transmitted by a data transmitting apparatus using a plurality of clock cycles as a plurality of 1-clock data, and collectively receives a plurality of error correction codes generated from a plurality of partial data generated by dividing the transmission data in a 1-clock cycle; a data building unit that builds entire data from the 1-clock data received by the reception control unit; and an error correcting unit that corrects the entire data built by the data building unit using the error correction codes received by the reception control unit to obtain reception data.
  • a data receiving apparatus includes a reception control unit that receives transmission data transmitted by a data transmitting apparatus using a plurality of clock cycles as a plurality of 1-clock data, and collectively receives a plurality of error correction codes generated from a plurality of partial data generated by dividing the transmission data using a blank of a control signal; a data building unit that builds entire data from the 1-clock data received by the reception control unit; and an error correcting unit that corrects the entire data built by the data building unit using the error correction codes received by the reception control unit to obtain reception data.
  • a data transmitting method includes dividing transmission data into a plurality of partial data; generating an error correction code for each of the partial data; dividing the transmission data into a plurality of 1-clock data formed of a plurality of bits transmitted in parallel; transmitting each of the 1-clock data in synchronization with a clock cycle in sequence; and transmitting the error correction codes generated by the code generating unit in a 1-clock cycle collectively.
  • a data transmitting method includes receiving transmission data transmitted by the data transmitting apparatus using a plurality of clock cycles as a plurality of 1-clock data; receiving a plurality of error correction codes generated from a plurality of partial data generated by dividing the transmission data in a 1-clock cycle collectively; building entire data from the 1-clock data received by the reception control unit; and correcting the entire data using the error correction codes received to obtain reception data.
  • FIG. 1 is a schematic for explaining an error correction method according to an embodiment of the present invention
  • FIG. 2 is a block diagram of a transmission-side module and a reception-side module according to the embodiment
  • FIG. 3 is a time chart of data transmission
  • FIG. 4 is a circuit diagram of an example of implementing the transmission-side module and the reception-side module shown in FIG. 2 ;
  • FIG. 5 is a flowchart of a process procedure for transmitting data by the transmission-side module shown in FIG. 2 ;
  • FIG. 6 is a flowchart of a process procedure for receiving data by the reception-side module shown in FIG. 2 ;
  • FIG. 7 is a schematic for explaining a method of generating an ECC for respective data transmitted at each clock
  • FIG. 8 is a schematic for explaining a method of correcting an error always occurring at a specific bit of a bus
  • FIG. 9 is a schematic for explaining a method of dividing transmission data into a plurality of ECC groups
  • FIG. 10 is a schematic for explaining a method of transmitting the ECC in a cycle before a data cycle
  • FIG. 11 is a schematic for explaining a method of selecting whether to transmit the ECC
  • FIG. 12 is a schematic for explaining a method of transmitting the ECC when transmitting two data in a row
  • FIG. 13 is a schematic for explaining a method of transmitting the ECC using a control signal
  • FIG. 14 is a schematic for explaining a method of transmitting the using a blank of a bus.
  • FIG. 15 is a schematic for explaining a conventional error correction method for inter-module data transmission.
  • FIG. 1 is a schematic for explaining an error correction method according to an embodiment of the present invention.
  • An ECC 1 that corrects a 1-bit error is generated for 32-bit partial data, which is transmitted at bit positions 1 to 8 , of a bus of 128-bit transmission data transmitted at 4 clocks, i.e., data 1 .
  • An ECC 2 that corrects a 1-bit error is generated to 32-bit partial data transmitted at bit positions 9 to 16 of the bus, i.e., data 2 .
  • ECC error correction code
  • an ECC 3 that corrects a 1-bit error is generated for 32-bit partial data transmitted at bit positions 17 to 24 of the bus, i.e., data 3 .
  • An ECC 4 that corrects a 1-bit error is generated for 32-bit partial data transmitted at bit positions 25 to 32 of the bus, i.e., data 4 .
  • the ECC 1 to ECC 4 are simultaneously transmitted in the next cycle subsequent to the 4-clock data cycle.
  • a parity bit in a bit direction need not be added to 32-bit 1-clock data transmitted in clock cycles. Therefore, an error correction can be performed without increasing a bus width.
  • FIG. 2 is a block diagram of a transmission-side module and a reception-side module according to the embodiment.
  • a transmission-side module 100 according to the embodiment includes a data output request unit 110 , an output data storage buffer 120 , an ECC generating unit 130 , a time-direction-data dividing unit 140 , and a data-output control unit 150 .
  • a reception-side module 200 includes a data input request unit 210 , a data input control unit 220 , an ECC correcting unit 230 , and an input data storage buffer 240 .
  • the data output request unit 110 is a processing unit that requests the reception-side module 200 to transmit 128-bit data.
  • the data output request unit 110 stores transmission data in the output data storage buffer 120 and transmits a valid signal to be synchronized with the reception-side module 200 .
  • the output data storage buffer 120 is a buffer that stores 128-bit data transmitted from the transmission-side module 100 to the reception-side module 200 based on a request from the data output request unit 110 .
  • the ECC generating unit 130 is a processing unit that reads the transmission data from the output data storage buffer 120 to generate an ECC. More specifically, the ECC generating unit 130 , as shown in FIG. 1 , divides the 128-bit transmission data into four data 1 to data 4 based on the bit positions of a 32-bit bus, and generates ECC 1 to ECC 4 for the data 1 to data 4 .
  • the ECC generating unit 130 When the ECC generating unit 130 generates the ECC 1 to ECC 4 for the data 1 to data 4 , respectively, a 1-bit error can be corrected in each of the data 1 to data 4 .
  • the time-direction-data dividing unit 140 is a processing unit that reads the transmission data from the output data storage buffer 120 and divides the read transmission data into four 32-bit data transmitted in the 4-clock data cycle shown in FIG. 1 .
  • the data-output control unit 150 is a processing unit that transmits the four 32-bit data generated by the time-direction-data dividing unit 140 in continuous 4-clock data cycles and simultaneously transmits the ECC 1 to ECC 4 generated by the ECC generating unit 130 in the next cycle.
  • the data-output control unit 150 receives the valid signal from the data output request unit 110 to transmit the front 32-bit data in synchronization with the valid signal.
  • the data input request unit 210 is a processing unit that receives a valid signal from the transmission-side module 100 and requests the data input control unit 220 to receive data in synchronization with valid signals.
  • the data input control unit 220 is a processing unit that receives the divided data and the ECCs transmitted from the transmission-side module 100 based on the request from the data input request unit 210 and assembles 128-bit data obtained before the division.
  • the ECC correcting unit 230 is a processing unit that receives the 128-bit data and the ECCs from the data input control unit 220 to perform error correction. More specifically, the ECC correcting unit 230 performs error correction for the data 1 to data 4 by using the ECC 1 to ECC 4 , respectively.
  • the ECC correcting unit 230 performs error correction by using the ECC 1 to ECC 4 for the data 1 to data 4 , respectively, 1-bit errors occurring in the data 1 to data 4 during data transmission can be corrected.
  • the input data storage buffer 240 is a buffer that stores 128-bit data subjected to error correction by the ECC correcting unit 230 .
  • the 128-bit data is stored in the input data storage buffer 240 , data receiving is completed.
  • FIG. 4 is a circuit diagram of an example of implementing the transmission-side module 100 and the reception-side module 200 shown in FIG. 2 .
  • the transmission-side module 100 includes a data output unit 11 , an ECC generating unit 12 , and a counter 13 .
  • the reception-side module 200 includes an ECC storage buffer 21 , an error correction circuit 22 , and a data input unit 23 .
  • reference symbol “D” denotes delay of one clock.
  • the data output unit 11 outputs 128-bit data by using four 32-bit signal lines.
  • the ECC generating unit 12 generates ECC 1 to ECC 4 for the data 1 to data 4 shown in FIG. 1 by using four 32-bit data output by the data output unit 11 .
  • the ECC generating unit 12 does not generate ECCs for the four 32-bit data received by using the 32-bit signal line, and generates the ECC 1 to ECC 4 for the data 1 to data 4 based on bit positions of the 32-bit bus.
  • the counter 13 receives a valid signal to count clocks. On the basis of the number of clocks counted by the counter 13 , an ECC generated by the ECC generating unit 12 or one of the four 32-bit data output by the data output unit 11 is selected to be transmitted to the reception-side module 200 .
  • the 32-bit data and the ECC transmitted by the transmission-side module 100 are temporarily stored in the ECC storage buffer 21 by the reception-side module 200 and given to the error correction circuit 22 .
  • the error correction circuit 22 performs error correction to the received data to store the data in the data input unit 23 .
  • FIG. 5 is a flowchart of a process procedure for transmitting data by the transmission-side module 100 shown in FIG. 2 .
  • the data output request unit 110 requests the output data storage buffer 120 to output transmission data (step S 101 ).
  • the ECC generating unit 130 reads the transmission data from the output data storage buffer 120 to generate ECC 1 to ECC 4 for the data 1 to data 4 shown in FIG. 1 (step S 102 ).
  • the time-direction-data dividing unit 140 reads from the transmission data from the output data storage buffer 120 and divides the transmission data into four 32-bit data to be transmitted in a 4-clock data cycle (step S 103 ).
  • the data-output control unit 150 sequentially outputs the four 32-bit data generated by the time-direction-data dividing unit 140 at four clocks synchronized with the valid signals from the data output request unit 110 (step S 104 ), and the ECC 1 to ECC 4 are simultaneously output at the next clock (step S 105 ).
  • the data-output control unit 150 outputs the ECC 1 to ECC 4 at the clock next to the clocks at which the four 32-bit data are sequentially output, so that the reception-side module 200 receives the ECC 1 to ECC 4 to make it possible to correct an error occurring during data transmission.
  • FIG. 6 is a flowchart of a process procedure for receiving data by the reception-side module 200 shown in FIG. 2 .
  • the data input control unit 220 based on a request from the data input request unit 210 , the data input control unit 220 sequentially inputs the four divided data in synchronization with the valid signals (step S 201 ) to assemble 128-bit data (step S 202 ).
  • the ECC 1 to ECC 4 are input (step S 203 ) and given to the ECC correcting unit 230 together with the assembled 128-bit data.
  • the ECC correcting unit 230 which receives the 128-bit data and the ECC 1 to ECC 4 perform error correction (step S 204 ) and stores the corrected data in the input data storage buffer 240 (step S 205 ).
  • the ECC correcting unit 230 of the reception-side module 200 performs the error correction by using the ECC 1 to ECC 4 , so that data transmission between the reception-side module 200 and the transmission-side module 100 can be performed with high reliability.
  • the ECC generating unit 130 generates the ECC 1 to ECC 4 for the data 1 to data 4 obtained by dividing the transmission data
  • the time-direction-data dividing unit 140 divides the transmission data to generate four 32-bit data
  • the data-output control unit 150 sequentially transmits the four 32-bit data in a 4-clock data cycle.
  • the ECC 1 to ECC 4 are simultaneously transmitted.
  • the data input control unit 220 receives the data and the ECC 1 to ECC 4
  • the ECC correcting unit 230 performs error correction for the received data by using the ECC 1 to ECC 4 . Therefore, data transmission between the modules can be performed with high reliability without increasing a bus width.
  • the present embodiment describes the case in which the ECC 1 to ECC 4 are simultaneously transmitted in one additional cycle. However, when a bus width can be increased, data of each clock can be transmitted together with an ECC to make an additional cycle unnecessary.
  • the present embodiment describes the case in which the four 32-bit data and the ECC 1 to ECC 4 are transmitted in continuous clock cycles.
  • the data and the ECCs need not be transmitted in continuous clock cycles, and the data and the ECCs can also be transmitted clock cycles including an idle clock cycle set therebetween.
  • the present embodiment describes a single data rate (SDR) in which one data is transmitted in a 1-clock cycle.
  • SDR single data rate
  • DDR double data rate
  • QDR quad data rate
  • the present embodiment describes the scheme in which transmission data is divided by four based on bit positions used when the transmission data is transmitted on the bus to generate ECC 1 to ECC 4 .
  • the transmission data can be differently divided to make it possible to generate ECCs. Therefore, a scheme in which the transmission data is differently divided to generate ECCs will be described below.
  • FIG. 7 is a schematic for explaining a method of generating an ECC for respective data transmitted at each clock.
  • ECC 5 to ECC 8 are generated for data 5 to data 8 serving as 32-bit data transmitted at the clocks, and the data-output control unit 150 simultaneously transmits the ECC 5 to ECC 8 in the cycle next to the cycle in which the data 5 to data 8 are transmitted.
  • the ECC generating unit 130 generates the ECC 5 to ECC 8 for the data 5 to data 8 , respectively, and the data-output control unit 150 simultaneously transmits the ECC 5 to ECC 8 in the cycle next to the cycle in which the data 5 to data 8 are transmitted.
  • the data input control unit 220 simultaneously receives the ECC 5 to ECC 8 subsequently to the data 5 to data 8 .
  • the ECC correcting unit 230 performs error correction to the received data by using the ECC 5 to ECC 8 .
  • the ECC 5 to ECC 8 are generated for the data 5 to data 8 , respectively, to transmit the data 5 to data 8 , so that error correction for bits the number of which is equal the number of clocks at which divided data are transmitted.
  • FIG. 8 is a schematic for explaining a method of correcting an error always occurring at a specific bit of a bus.
  • FIG. 8 depicts a case in which 96-bit data is divided into 32-bit data to transmit the data at three clocks.
  • a 32-bit 1-clock data transmitted at each clock is divided into four 8-bit 1-clock partial data, and one 8-bit 1-clock partial data is selected from each 1-clock data not to overlap bit positions to form groups A to D.
  • ECCA to ECCD are generated for the data in the groups A to D, respectively.
  • the ECC generating unit 130 generates the ECC A to ECC D for the data in the groups A to D, respectively, and the data-output control unit 150 simultaneously transmits the ECC A to ECC D in the cycle next to the data cycle.
  • the data input control unit 220 simultaneously receives the ECC A to ECC D subsequently to the data cycle, and the ECC correcting unit 230 performs error correction to the received data by using the ECC A to ECC D .
  • bits at specific positions of the bus are assigned to different groups throughout all the cycles including the cycle in which ECCs are transmitted. For example, in FIG. 8 , a bit at a bit position “1” on the bus belongs to the group D in the first cycle, belongs to the group C in the second cycle, belongs to the group B in the third cycle, and belongs to the group A in the fourth cycle.
  • FIG. 8 depicts the case in which the transmission data is divided into ECC groups constituted by the groups A to D. However, when the transmission data is divided into a larger number of ECC groups, the number of bits of bit errors at specific positions on the bus can be increased.
  • FIG. 9 is a schematic for explaining a method of dividing transmission data into a plurality of ECC groups.
  • transmission data is divided into two ECC groups constituted by three groups A to C and three groups D to F.
  • this scheme in transmission in which data length is larger in a bit direction than in a clock direction, even though a plurality of signal lines is broken, when a signal line belonging to another ECC group is present, an error can be corrected.
  • the present embodiment describes the case in which ECCs are transmitted in an additional cycle subsequent to a data cycle.
  • the ECCs may also be transmitted in another cycle. Therefore, a scheme in which ECCs are transmitted in another cycle or the like will be described below.
  • FIG. 10 is a schematic for explaining a method of transmitting the ECC in a cycle before a data cycle.
  • ECC 5 to ECC 8 are transmitted in the cycle before the data cycle.
  • ECCs are output at step S 105 before data are output at step S 104 .
  • ECCs are input at step S 203 before data are input at step S 201 .
  • the reception-side module 200 since the reception-side module 200 receives ECCs ahead of data, the reception-side module 200 needs not wait for reception of the ECCs, and the reception-side module 200 can perform error correction in a receiving order of data. For example, in FIG. 10 , the reception-side module 200 can start an error correction process for the data 5 at a timing of reception of the data 6 . Therefore, the error correction process can be performed at a high speed.
  • FIG. 11 is a schematic for explaining a method of selecting whether to transmit the ECC.
  • an ECC is transmitted for the first data in a cycle before a data cycle, and no ECCs are transmitted for the second and subsequent data.
  • the data output request unit 110 designates whether an ECC is transmitted.
  • the data-output control unit 150 outputs the ECC.
  • the data input request unit 210 designates the presence/absence of an ECC, and the data input control unit 220 inputs the ECC based on the designation performed by the data input request unit 210 .
  • FIG. 12 is a schematic for explaining a method of transmitting the ECC when transmitting two data in a row.
  • an ECC for the first data is transmitted in a cycle before a cycle in which the first data is transmitted
  • an ECC for the second data is transmitted in the cycle next to the cycle in which the second data is transmitted.
  • the ECCs are transmitted before and after the two data to make it possible to transmit the ECCs without adversely affecting transmission of the transmission data.
  • FIG. 13 is a schematic for explaining a method of transmitting the ECC using a control signal. Under the condition using a control signal (Ctl-In), the ECC can be transmitted by using an idle cycle which does not use the control signal.
  • a control signal Ctl-In
  • the data-output control unit 150 finds a blank for a control signal by using a control signal line in place of a data bus to output an ECC.
  • the data input control unit 220 inputs the ECC by using the control signal line in place of a data bus.
  • the ECC when the ECC is transmitted by using the blank for a control signal, the ECC can be transmitted without adversely affecting data transmission, and the reliability of data transmission can be improved.
  • FIG. 14 is a schematic for explaining a method of transmitting the using a blank of a bus.
  • FIG. 14 depicts a case in which an ECC for the first data is transmitted before transmission of the first data; and ECCs are not transmitted for the second and subsequent data.
  • ECCs for the second and third data are transmitted by using the blank.
  • the blank of the bus is set within a predetermined period starting from transmission of the data, the ECCs are not transmitted.
  • a period of average bus busy time starting from transmission of the first ECC is stopped or a period in which transmission of an ECC is stopped a predetermined number of times is set.
  • a period until the next packet is received is set as an ECC transmission period.
  • the data-output control unit 150 holds ECCs for the second and subsequent data. When a blank of the data bus is found in the predetermined period, the held ECCs are output.
  • the data input control unit 220 holds received data in the predetermined period and receives the ECCs transmitted in the predetermined period.
  • Association between data and ECCs can be performed by the following manners. That is, ECCs are sequentially associated with data from front data to rear data, the number of transmission routes is increased by several bits to add indexes to data and ECCs, an identification packet is transmitted before ECCs are transmitted, or only an ECC for the most recent data is transmitted.
  • the ECCs when ECCs are transmitted by using a blank of a bus, the ECCs can be transmitted without adversely affecting data transmission, and the reliability of data transmission can be improved.
  • the present embodiment describes the case in which data is transmitted between modules.
  • the present invention is not limited to the case.
  • the present invention can also be applied to a case in which data is transmitted by using a plurality of clock cycles in which a plurality of bits is transmitted in parallel between different apparatuses.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

A data transmitting apparatus that transmits a plurality of bits in parallel in synchronization with clocks includes a code generating unit that divides transmission data into a plurality of partial data, and generates an error correction code for each of the partial data; a data dividing unit that divides the transmission data into a plurality of 1-clock data formed of a plurality of bits transmitted in parallel; and a transmission control unit that sequentially transmits each of the 1-clock data in synchronization with a clock cycle, and collectively transmits the error correction codes generated by the code generating unit in a 1-clock cycle.

Description

    BACKGROUND OF THE INVENTION
  • 1) Field of the Invention
  • The present invention relates to a technology for transmitting and receiving a plurality of bits in parallel in synchronization with clocks, which improves an error correction capability in data transmission without increasing the number of signal lines and without causing a transmission delay for a reliable data transmission.
  • 2) Description of the Related Art
  • When N-bit data is transmitted by using a bus between large-scale-integrated (LSI) devices, such as a central processing unit (CPU) and a crossover LSI or between modules in an LSI device, the data is divided into N/m bits at m clocks. For example, when 128-bit data is transmitted by using a 32-bit bus, the 128-bit data are divided into 32 bits, and the 32-bit data are transmitted at four clocks.
  • In the conventional data transmission between the LSI devices or between the modules, a parity bit is used to cope with a transmission error. FIG. 15 is a schematic for explaining a conventional error correction method in inter-module data transmission.
  • In the example shown in FIG. 15, 128-bit data is divided into 32 bits and transmitted at four clocks. One parity bit is added to one 32-bit clock data in a bit direction to transmit 33-bit data. A parity bit is added to each bit position of the 32 bits in a clock direction. The data is transmitted in the next additional cycle of the 4-clock data cycle.
  • In the vertical/horizontal parity coding scheme, one bit error in N-bits can be corrected, and a 2-bit error can be detected. For example, in the example shown in FIG. 15, when an error “X” occurs at a bit position “32” of data transmitted at the first clock, the error can be corrected by using the parity bit added to the data and the parity bit added to the bit position “32” in a clock direction (see, for example, Japanese Patent Laying-Open No. 6-125331 and Mitani Masaaki, “Yarinaoshi no tame no kougyou sugaku”, p. 48, CQ Publishing Co., Ltd., Jan. 1, 2001).
  • However, in the conventional vertical/horizontal parity coding scheme, it impossible to correct an error having equal to or more than two bits. In addition, when an even number of errors occur at data at the same clock or the same bit position, it is impossible to detect the error.
  • SUMMARY OF THE INVENTION
  • It is an object of the present invention to solve at least the above problems in the conventional technology.
  • A data transmitting apparatus according to one aspect of the present invention includes a code generating unit that divides transmission data into a plurality of partial data, and generates an error correction code for each of the partial data; a data dividing unit that divides the transmission data into a plurality of 1-clock data formed of a plurality of bits transmitted in parallel; and a transmission control unit that sequentially transmits each of the 1-clock data in synchronization with a clock cycle, and collectively transmits the error correction codes generated by the code generating unit in a 1-clock cycle.
  • A data transmitting apparatus according to another aspect of the present invention includes a code generating unit that divides transmission data into a plurality of partial data, and generates an error correction code for each of the partial data; a data dividing unit that divides the transmission data into a plurality of 1-clock data formed of a plurality of bits transmitted in parallel; and a transmission control unit that sequentially transmits each of the 1-clock data in synchronization with a clock cycle, and collectively transmits the error correction codes generated by the code generating unit using a blank of a control signal.
  • A data receiving apparatus according to still another aspect of the present invention includes a reception control unit that receives transmission data transmitted by a data transmitting apparatus using a plurality of clock cycles as a plurality of 1-clock data, and collectively receives a plurality of error correction codes generated from a plurality of partial data generated by dividing the transmission data in a 1-clock cycle; a data building unit that builds entire data from the 1-clock data received by the reception control unit; and an error correcting unit that corrects the entire data built by the data building unit using the error correction codes received by the reception control unit to obtain reception data.
  • A data receiving apparatus according to still another aspect of the present invention includes a reception control unit that receives transmission data transmitted by a data transmitting apparatus using a plurality of clock cycles as a plurality of 1-clock data, and collectively receives a plurality of error correction codes generated from a plurality of partial data generated by dividing the transmission data using a blank of a control signal; a data building unit that builds entire data from the 1-clock data received by the reception control unit; and an error correcting unit that corrects the entire data built by the data building unit using the error correction codes received by the reception control unit to obtain reception data.
  • A data transmitting method according to still another aspect of the present invention includes dividing transmission data into a plurality of partial data; generating an error correction code for each of the partial data; dividing the transmission data into a plurality of 1-clock data formed of a plurality of bits transmitted in parallel; transmitting each of the 1-clock data in synchronization with a clock cycle in sequence; and transmitting the error correction codes generated by the code generating unit in a 1-clock cycle collectively.
  • A data transmitting method according to still another aspect of the present invention includes receiving transmission data transmitted by the data transmitting apparatus using a plurality of clock cycles as a plurality of 1-clock data; receiving a plurality of error correction codes generated from a plurality of partial data generated by dividing the transmission data in a 1-clock cycle collectively; building entire data from the 1-clock data received by the reception control unit; and correcting the entire data using the error correction codes received to obtain reception data.
  • The other objects, features, and advantages of the present invention are specifically set forth in or will become apparent from the following detailed description of the invention when read in conjunction with the accompanying drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a schematic for explaining an error correction method according to an embodiment of the present invention;
  • FIG. 2 is a block diagram of a transmission-side module and a reception-side module according to the embodiment;
  • FIG. 3 is a time chart of data transmission;
  • FIG. 4 is a circuit diagram of an example of implementing the transmission-side module and the reception-side module shown in FIG. 2;
  • FIG. 5 is a flowchart of a process procedure for transmitting data by the transmission-side module shown in FIG. 2;
  • FIG. 6 is a flowchart of a process procedure for receiving data by the reception-side module shown in FIG. 2;
  • FIG. 7 is a schematic for explaining a method of generating an ECC for respective data transmitted at each clock;
  • FIG. 8 is a schematic for explaining a method of correcting an error always occurring at a specific bit of a bus;
  • FIG. 9 is a schematic for explaining a method of dividing transmission data into a plurality of ECC groups;
  • FIG. 10 is a schematic for explaining a method of transmitting the ECC in a cycle before a data cycle;
  • FIG. 11 is a schematic for explaining a method of selecting whether to transmit the ECC;
  • FIG. 12 is a schematic for explaining a method of transmitting the ECC when transmitting two data in a row;
  • FIG. 13 is a schematic for explaining a method of transmitting the ECC using a control signal;
  • FIG. 14 is a schematic for explaining a method of transmitting the using a blank of a bus; and
  • FIG. 15 is a schematic for explaining a conventional error correction method for inter-module data transmission.
  • DETAILED DESCRIPTION
  • Exemplary embodiments of a data transmitting apparatus, a data receiving apparatus, a data transmitting method, and a data receiving method according to the present invention are described in detail with reference to the accompanying drawings. A case in which the present invention is applied to data transmission between modules is mainly explained.
  • FIG. 1 is a schematic for explaining an error correction method according to an embodiment of the present invention. An ECC1 that corrects a 1-bit error is generated for 32-bit partial data, which is transmitted at bit positions 1 to 8, of a bus of 128-bit transmission data transmitted at 4 clocks, i.e., data1. An ECC2 that corrects a 1-bit error is generated to 32-bit partial data transmitted at bit positions 9 to 16 of the bus, i.e., data2.
  • In this case, the bit length of an error correction code (ECC) that corrects a 1-bit error with respect to an N-bit data is given by log 2N+2. Therefore, the bit length of the ECC that corrects a 1-bit error for 32-bit data is given by log 232+2=7. ECC bits may be made redundant to be 8 bits.
  • Similarly, an ECC3 that corrects a 1-bit error is generated for 32-bit partial data transmitted at bit positions 17 to 24 of the bus, i.e., data3. An ECC4 that corrects a 1-bit error is generated for 32-bit partial data transmitted at bit positions 25 to 32 of the bus, i.e., data4. The ECC1 to ECC4 are simultaneously transmitted in the next cycle subsequent to the 4-clock data cycle.
  • In this manner, in the error correction scheme according to the embodiment, ECC1 to ECC4 are generated for the data1 to data4 obtained by dividing the transmission data based on the bit positions of the bus to transmit the data, so that 1-bit error correction can be performed in each of the datai (i=1, 4). Therefore, a 4-bit error can be corrected in the entire 128-bit data, and error correction capability that is higher than that of 1-bit error correction in the vertical/horizontal parity coding scheme can be achieved.
  • In the error correction scheme according to the embodiment, a parity bit in a bit direction need not be added to 32-bit 1-clock data transmitted in clock cycles. Therefore, an error correction can be performed without increasing a bus width.
  • FIG. 2 is a block diagram of a transmission-side module and a reception-side module according to the embodiment. As shown in FIG. 2, a transmission-side module 100 according to the embodiment includes a data output request unit 110, an output data storage buffer 120, an ECC generating unit 130, a time-direction-data dividing unit 140, and a data-output control unit 150. A reception-side module 200 includes a data input request unit 210, a data input control unit 220, an ECC correcting unit 230, and an input data storage buffer 240.
  • The data output request unit 110 is a processing unit that requests the reception-side module 200 to transmit 128-bit data. The data output request unit 110 stores transmission data in the output data storage buffer 120 and transmits a valid signal to be synchronized with the reception-side module 200.
  • FIG. 3 is a time chart of data transmission. As shown in FIG. 3, the valid signal representing the start of data transmitted in a plurality of clock cycles. Therefore, one data is transmitted in a period from valid=ON to the fourth clock.
  • The output data storage buffer 120 is a buffer that stores 128-bit data transmitted from the transmission-side module 100 to the reception-side module 200 based on a request from the data output request unit 110.
  • The ECC generating unit 130 is a processing unit that reads the transmission data from the output data storage buffer 120 to generate an ECC. More specifically, the ECC generating unit 130, as shown in FIG. 1, divides the 128-bit transmission data into four data1 to data4 based on the bit positions of a 32-bit bus, and generates ECC1 to ECC4 for the data1 to data4.
  • When the ECC generating unit 130 generates the ECC1 to ECC4 for the data1 to data4, respectively, a 1-bit error can be corrected in each of the data1 to data4.
  • The time-direction-data dividing unit 140 is a processing unit that reads the transmission data from the output data storage buffer 120 and divides the read transmission data into four 32-bit data transmitted in the 4-clock data cycle shown in FIG. 1.
  • The data-output control unit 150 is a processing unit that transmits the four 32-bit data generated by the time-direction-data dividing unit 140 in continuous 4-clock data cycles and simultaneously transmits the ECC1 to ECC4 generated by the ECC generating unit 130 in the next cycle. The data-output control unit 150 receives the valid signal from the data output request unit 110 to transmit the front 32-bit data in synchronization with the valid signal.
  • The data input request unit 210 is a processing unit that receives a valid signal from the transmission-side module 100 and requests the data input control unit 220 to receive data in synchronization with valid signals.
  • The data input control unit 220 is a processing unit that receives the divided data and the ECCs transmitted from the transmission-side module 100 based on the request from the data input request unit 210 and assembles 128-bit data obtained before the division.
  • The ECC correcting unit 230 is a processing unit that receives the 128-bit data and the ECCs from the data input control unit 220 to perform error correction. More specifically, the ECC correcting unit 230 performs error correction for the data1 to data4 by using the ECC1 to ECC4, respectively.
  • When the ECC correcting unit 230 performs error correction by using the ECC1 to ECC4 for the data1 to data4, respectively, 1-bit errors occurring in the data1 to data4 during data transmission can be corrected.
  • The input data storage buffer 240 is a buffer that stores 128-bit data subjected to error correction by the ECC correcting unit 230. When the 128-bit data is stored in the input data storage buffer 240, data receiving is completed.
  • FIG. 4 is a circuit diagram of an example of implementing the transmission-side module 100 and the reception-side module 200 shown in FIG. 2. The transmission-side module 100 includes a data output unit 11, an ECC generating unit 12, and a counter 13. The reception-side module 200 includes an ECC storage buffer 21, an error correction circuit 22, and a data input unit 23. As shown in FIG. 4, reference symbol “D” denotes delay of one clock.
  • The data output unit 11 outputs 128-bit data by using four 32-bit signal lines. The ECC generating unit 12 generates ECC1 to ECC4 for the data1 to data4 shown in FIG. 1 by using four 32-bit data output by the data output unit 11.
  • More specifically, the ECC generating unit 12 does not generate ECCs for the four 32-bit data received by using the 32-bit signal line, and generates the ECC1 to ECC4 for the data1 to data4 based on bit positions of the 32-bit bus.
  • The counter 13 receives a valid signal to count clocks. On the basis of the number of clocks counted by the counter 13, an ECC generated by the ECC generating unit 12 or one of the four 32-bit data output by the data output unit 11 is selected to be transmitted to the reception-side module 200.
  • The 32-bit data and the ECC transmitted by the transmission-side module 100 are temporarily stored in the ECC storage buffer 21 by the reception-side module 200 and given to the error correction circuit 22. The error correction circuit 22 performs error correction to the received data to store the data in the data input unit 23.
  • FIG. 5 is a flowchart of a process procedure for transmitting data by the transmission-side module 100 shown in FIG. 2. In the transmission-side module 100, the data output request unit 110 requests the output data storage buffer 120 to output transmission data (step S101). The ECC generating unit 130 reads the transmission data from the output data storage buffer 120 to generate ECC1 to ECC4 for the data1 to data4 shown in FIG. 1 (step S102).
  • The time-direction-data dividing unit 140 reads from the transmission data from the output data storage buffer 120 and divides the transmission data into four 32-bit data to be transmitted in a 4-clock data cycle (step S103).
  • The data-output control unit 150 sequentially outputs the four 32-bit data generated by the time-direction-data dividing unit 140 at four clocks synchronized with the valid signals from the data output request unit 110 (step S104), and the ECC1 to ECC4 are simultaneously output at the next clock (step S105).
  • In this manner, the data-output control unit 150 outputs the ECC1 to ECC4 at the clock next to the clocks at which the four 32-bit data are sequentially output, so that the reception-side module 200 receives the ECC1 to ECC4 to make it possible to correct an error occurring during data transmission.
  • FIG. 6 is a flowchart of a process procedure for receiving data by the reception-side module 200 shown in FIG. 2. In the reception-side module 200, based on a request from the data input request unit 210, the data input control unit 220 sequentially inputs the four divided data in synchronization with the valid signals (step S201) to assemble 128-bit data (step S202).
  • Subsequent to the four divided data, the ECC1 to ECC4 are input (step S203) and given to the ECC correcting unit 230 together with the assembled 128-bit data. The ECC correcting unit 230 which receives the 128-bit data and the ECC1 to ECC4 perform error correction (step S204) and stores the corrected data in the input data storage buffer 240 (step S205).
  • In this manner, the ECC correcting unit 230 of the reception-side module 200 performs the error correction by using the ECC1 to ECC4, so that data transmission between the reception-side module 200 and the transmission-side module 100 can be performed with high reliability.
  • As has been described above, in the present embodiment, in the transmission-side module 100, the ECC generating unit 130 generates the ECC1 to ECC4 for the data1 to data4 obtained by dividing the transmission data, the time-direction-data dividing unit 140 divides the transmission data to generate four 32-bit data, and the data-output control unit 150 sequentially transmits the four 32-bit data in a 4-clock data cycle. In the next cycle, the ECC1 to ECC4 are simultaneously transmitted. In the reception-side module 200, the data input control unit 220 receives the data and the ECC1 to ECC4, and the ECC correcting unit 230 performs error correction for the received data by using the ECC1 to ECC4. Therefore, data transmission between the modules can be performed with high reliability without increasing a bus width.
  • In the present embodiment, since the ECC1 to ECC4 are simultaneously transmitted in one additional cycle, unlike in the vertical/horizontal parity coding scheme, transmission delay can be prevented without requiring an excessive additional cycle.
  • The present embodiment describes the case in which the ECC1 to ECC4 are simultaneously transmitted in one additional cycle. However, when a bus width can be increased, data of each clock can be transmitted together with an ECC to make an additional cycle unnecessary.
  • The present embodiment describes the case in which the four 32-bit data and the ECC1 to ECC4 are transmitted in continuous clock cycles. However, the data and the ECCs need not be transmitted in continuous clock cycles, and the data and the ECCs can also be transmitted clock cycles including an idle clock cycle set therebetween.
  • The present embodiment describes a single data rate (SDR) in which one data is transmitted in a 1-clock cycle. However, the present invention can also be applied to a double data rate (DDR) in which two data are transmitted in a 1-clock cycle and a quad data rate (QDR) in which four data are transmitted in a 1-clock cycle.
  • The present embodiment describes the scheme in which transmission data is divided by four based on bit positions used when the transmission data is transmitted on the bus to generate ECC1 to ECC4. However, the transmission data can be differently divided to make it possible to generate ECCs. Therefore, a scheme in which the transmission data is differently divided to generate ECCs will be described below.
  • FIG. 7 is a schematic for explaining a method of generating an ECC for respective data transmitted at each clock. In this scheme, ECC5 to ECC8 are generated for data5 to data8 serving as 32-bit data transmitted at the clocks, and the data-output control unit 150 simultaneously transmits the ECC5 to ECC8 in the cycle next to the cycle in which the data5 to data8 are transmitted.
  • More specifically, in the transmission-side module 100 shown in FIG. 2, the ECC generating unit 130 generates the ECC5 to ECC8 for the data5 to data8, respectively, and the data-output control unit 150 simultaneously transmits the ECC5 to ECC8 in the cycle next to the cycle in which the data5 to data8 are transmitted.
  • In the reception-side module 200, the data input control unit 220 simultaneously receives the ECC5 to ECC8 subsequently to the data5 to data8. The ECC correcting unit 230 performs error correction to the received data by using the ECC5 to ECC8.
  • In this manner, in the scheme shown in FIG. 7, the ECC5 to ECC8 are generated for the data5 to data8, respectively, to transmit the data5 to data8, so that error correction for bits the number of which is equal the number of clocks at which divided data are transmitted.
  • FIG. 8 is a schematic for explaining a method of correcting an error always occurring at a specific bit of a bus. FIG. 8 depicts a case in which 96-bit data is divided into 32-bit data to transmit the data at three clocks. In this scheme, a 32-bit 1-clock data transmitted at each clock is divided into four 8-bit 1-clock partial data, and one 8-bit 1-clock partial data is selected from each 1-clock data not to overlap bit positions to form groups A to D. ECCA to ECCD are generated for the data in the groups A to D, respectively.
  • More specifically, in the transmission-side module 100 shown in FIG. 2, the ECC generating unit 130 generates the ECCA to ECCD for the data in the groups A to D, respectively, and the data-output control unit 150 simultaneously transmits the ECCA to ECCD in the cycle next to the data cycle.
  • In the reception-side module 200, the data input control unit 220 simultaneously receives the ECCA to ECCD subsequently to the data cycle, and the ECC correcting unit 230 performs error correction to the received data by using the ECCA to ECCD.
  • In the scheme shown in FIG. 8, bits at specific positions of the bus are assigned to different groups throughout all the cycles including the cycle in which ECCs are transmitted. For example, in FIG. 8, a bit at a bit position “1” on the bus belongs to the group D in the first cycle, belongs to the group C in the second cycle, belongs to the group B in the third cycle, and belongs to the group A in the fourth cycle.
  • Therefore, when a bit at a specific position on the bus is always an error bit, if the error bit is one bit, the error can be corrected. When 1-bit errors occur in the four groups in one cycle, all the errors can be corrected.
  • FIG. 8 depicts the case in which the transmission data is divided into ECC groups constituted by the groups A to D. However, when the transmission data is divided into a larger number of ECC groups, the number of bits of bit errors at specific positions on the bus can be increased.
  • FIG. 9 is a schematic for explaining a method of dividing transmission data into a plurality of ECC groups. In this scheme, transmission data is divided into two ECC groups constituted by three groups A to C and three groups D to F. In this scheme, in transmission in which data length is larger in a bit direction than in a clock direction, even though a plurality of signal lines is broken, when a signal line belonging to another ECC group is present, an error can be corrected.
  • The present embodiment describes the case in which ECCs are transmitted in an additional cycle subsequent to a data cycle. The ECCs may also be transmitted in another cycle. Therefore, a scheme in which ECCs are transmitted in another cycle or the like will be described below.
  • FIG. 10 is a schematic for explaining a method of transmitting the ECC in a cycle before a data cycle. In this scheme, ECC5 to ECC8 are transmitted in the cycle before the data cycle.
  • More specifically, in the transmission procedure shown in FIG. 5, ECCs are output at step S105 before data are output at step S104. In the receiving procedure shown in FIG. 6, ECCs are input at step S203 before data are input at step S201.
  • In the scheme shown in FIG. 10, since the reception-side module 200 receives ECCs ahead of data, the reception-side module 200 needs not wait for reception of the ECCs, and the reception-side module 200 can perform error correction in a receiving order of data. For example, in FIG. 10, the reception-side module 200 can start an error correction process for the data5 at a timing of reception of the data6. Therefore, the error correction process can be performed at a high speed.
  • FIG. 11 is a schematic for explaining a method of selecting whether to transmit the ECC. In this scheme, an ECC is transmitted for the first data in a cycle before a data cycle, and no ECCs are transmitted for the second and subsequent data.
  • More specifically, in the transmission-side module 100 shown in FIG. 2, the data output request unit 110 designates whether an ECC is transmitted. When the data output request unit 110 designates that an ECC is transmitted, the data-output control unit 150 outputs the ECC.
  • In the reception-side module 200, the data input request unit 210 designates the presence/absence of an ECC, and the data input control unit 220 inputs the ECC based on the designation performed by the data input request unit 210.
  • In this manner, when it can be selected whether an ECC is transmitted for each data, it is selected that no ECC is transmitted when a transmission rate is important. When error correction capability is important, it is selected that an ECC is transmitted.
  • FIG. 12 is a schematic for explaining a method of transmitting the ECC when transmitting two data in a row. In this scheme, an ECC for the first data is transmitted in a cycle before a cycle in which the first data is transmitted, and an ECC for the second data is transmitted in the cycle next to the cycle in which the second data is transmitted.
  • In this manner, when the two data are continuously transmitted, the ECCs are transmitted before and after the two data to make it possible to transmit the ECCs without adversely affecting transmission of the transmission data.
  • FIG. 13 is a schematic for explaining a method of transmitting the ECC using a control signal. Under the condition using a control signal (Ctl-In), the ECC can be transmitted by using an idle cycle which does not use the control signal.
  • More specifically, in the transmission-side module 100 shown in FIG. 2, the data-output control unit 150 finds a blank for a control signal by using a control signal line in place of a data bus to output an ECC. In the reception-side module 200, the data input control unit 220 inputs the ECC by using the control signal line in place of a data bus.
  • In this manner, when the ECC is transmitted by using the blank for a control signal, the ECC can be transmitted without adversely affecting data transmission, and the reliability of data transmission can be improved.
  • FIG. 14 is a schematic for explaining a method of transmitting the using a blank of a bus. FIG. 14 depicts a case in which an ECC for the first data is transmitted before transmission of the first data; and ECCs are not transmitted for the second and subsequent data. In this case, since the bus has a blank after the third data is transmitted, ECCs for the second and third data are transmitted by using the blank. However, in this scheme, the blank of the bus is set within a predetermined period starting from transmission of the data, the ECCs are not transmitted.
  • In this case, as the predetermined period, a period of average bus busy time starting from transmission of the first ECC is stopped or a period in which transmission of an ECC is stopped a predetermined number of times is set. A period until the next packet is received is set as an ECC transmission period.
  • More specifically, in the transmission-side module 100 shown in FIG. 2, the data-output control unit 150 holds ECCs for the second and subsequent data. When a blank of the data bus is found in the predetermined period, the held ECCs are output. In the reception-side module 200, the data input control unit 220 holds received data in the predetermined period and receives the ECCs transmitted in the predetermined period.
  • Association between data and ECCs can be performed by the following manners. That is, ECCs are sequentially associated with data from front data to rear data, the number of transmission routes is increased by several bits to add indexes to data and ECCs, an identification packet is transmitted before ECCs are transmitted, or only an ECC for the most recent data is transmitted.
  • In this manner, when ECCs are transmitted by using a blank of a bus, the ECCs can be transmitted without adversely affecting data transmission, and the reliability of data transmission can be improved.
  • The present embodiment describes the case in which data is transmitted between modules. The present invention is not limited to the case. The present invention can also be applied to a case in which data is transmitted by using a plurality of clock cycles in which a plurality of bits is transmitted in parallel between different apparatuses.
  • According to the present invention, since error correction capability in data transmission is improved, the reliability of data transmission can be advantageously improved.
  • Although the invention has been described with respect to a specific embodiment for a complete and clear disclosure, the appended claims are not to be thus limited but are to be construed as embodying all modifications and alternative constructions that may occur to one skilled in the art which fairly fall within the basic teaching herein set forth.

Claims (20)

1. A data transmitting apparatus that transmits a plurality of bits in parallel in synchronization with clocks, the data transmitting apparatus comprising:
a code generating unit that divides transmission data into a plurality of partial data, and generates an error correction code for each of the partial data;
a data dividing unit that divides the transmission data into a plurality of 1-clock data formed of a plurality of bits transmitted in parallel; and
a transmission control unit that sequentially transmits each of the 1-clock data in synchronization with a clock cycle, and collectively transmits the error correction codes generated by the code generating unit in a 1-clock cycle.
2. The data transmitting apparatus according to claim 1, wherein the code generating unit divides the transmission data based on a bit position at which the transmission data transmitted in a plurality of clock cycles are transmitted in parallel in each of the clock cycles.
3. The data transmitting apparatus according to claim 1, wherein the code generating unit generates the error correction code for each of the 1-clock data.
4. The data transmitting apparatus according to claim 1, wherein
the code generating unit divides the transmission data into the partial data by dividing each of the 1-clock data into a plurality of 1-clock partial data and selecting 1-clock partial data having a different bit position when the 1-clock data are transmitted in parallel from each of the 1-clock data, and
the transmission control unit transmits the error correction code at a bit position different from that of the 1-clock partial data used for generating the error correction code.
5. The data transmitting apparatus according to claim 1, wherein the transmission control unit collectively transmits the error correction codes in a clock cycle after a transmission clock cycle of the 1-clock data.
6. The data transmitting apparatus according to claim 1, wherein the transmission control unit collectively transmits the error correction codes in a clock cycle before a transmission clock cycle of the 1-clock data.
7. The data transmitting apparatus according to claim 1, wherein the transmission control unit includes
a determining unit that determines whether the error correction codes are transmitted after the transmission clock cycle of the 1-clock data; and
a code transmission unit that collectively transmits the error correction codes when the determining unit determines to transmit the error correction codes.
8. The data transmitting apparatus according to claim 7, wherein the transmission control unit further includes a path monitoring unit that monitors a blank on a data transmission path, wherein
when the determining unit determines not to transmit the error correction codes, the code transmission unit collectively transmits the error correction codes when the path monitoring unit detects the blank on the data transmission path within a predetermined period from transmission of the transmission data.
9. A data transmitting apparatus that transmits a plurality of bits in parallel in synchronization with clocks, the data transmitting apparatus comprising:
a code generating unit that divides transmission data into a plurality of partial data, and generates an error correction code for each of the partial data;
a data dividing unit that divides the transmission data into a plurality of 1-clock data formed of a plurality of bits transmitted in parallel; and
a transmission control unit that sequentially transmits each of the 1-clock data in synchronization with a clock cycle, and collectively transmits the error correction codes generated by the code generating unit using a blank of a control signal.
10. A data receiving apparatus that receives a plurality of bits transmitted in parallel from a data transmitting apparatus in synchronization with clocks, as 1-clock data, the data receiving apparatus comprising:
a reception control unit that receives transmission data transmitted by the data transmitting apparatus using a plurality of clock cycles as a plurality of 1-clock data, and collectively receives a plurality of error correction codes generated from a plurality of partial data generated by dividing the transmission data in a 1-clock cycle;
a data building unit that builds entire data from the 1-clock data received by the reception control unit; and
an error correcting unit that corrects the entire data built by the data building unit using the error correction codes received by the reception control unit to obtain reception data.
11. The data receiving apparatus according to claim 10, wherein the partial data are generated based on a bit position at which the transmission data transmitted in a plurality of clock cycles are transmitted in parallel in each of the clock cycles.
12. The data receiving apparatus according to claim 10, wherein the partial data are the 1-clock data.
13. The data receiving apparatus according to claim 10, wherein the partial data are generated by dividing each of the 1-clock data into a plurality of partial clock data and selecting 1-clock partial data having a different bit position when the 1-clock data are transmitted in parallel from each of the 1-clock data.
14. The data receiving apparatus according to claim 10, wherein the reception control unit collectively receives the error correction codes in a clock cycle after a reception clock cycle of the 1-clock data.
15. The data receiving apparatus according to claim 10, wherein the reception control unit collectively receives the error correction codes in a clock cycle before a reception clock cycle of the 1-clock data.
16. The data receiving apparatus according to claim 10, wherein the reception control unit includes
a determining unit that determines whether the error correction codes are received after the reception clock cycle of the 1-clock data; and
a code reception unit that collectively receives the error correction codes when the determining unit determines to receive the error correction codes.
17. The data receiving apparatus according to claim 16, wherein the reception control unit further includes a path monitoring unit that monitors a blank on a data transmission path, wherein
when the determining unit determines not to receive the error correction codes, the code reception unit collectively receives the error correction codes when the path monitoring unit detects the blank on the data transmission path within a predetermined period from reception of the transmission data.
18. A data receiving apparatus that receives a plurality of bits transmitted in parallel from a data transmitting apparatus in synchronization with clocks, as 1-clock data, the data receiving apparatus comprising:
a reception control unit that receives transmission data transmitted by the data transmitting apparatus using a plurality of clock cycles as a plurality of 1-clock data, and collectively receives a plurality of error correction codes generated from a plurality of partial data generated by dividing the transmission data using a blank of a control signal;
a data building unit that builds entire data from the 1-clock data received by the reception control unit; and
an error correcting unit that corrects the entire data built by the data building unit using the error correction codes received by the reception control unit to obtain reception data.
19. A method of transmitting a plurality of bits in parallel in synchronization with clocks, the method comprising:
dividing transmission data into a plurality of partial data;
generating an error correction code for each of the partial data;
dividing the transmission data into a plurality of 1-clock data formed of a plurality of bits transmitted in parallel;
transmitting each of the 1-clock data in synchronization with a clock cycle in sequence; and
transmitting the error correction codes generated by the code generating unit in a 1-clock cycle collectively.
20. A method of receiving a plurality of bits transmitted in parallel from a data transmitting apparatus in synchronization with clocks, as 1-clock data, the method comprising:
receiving transmission data transmitted by the data transmitting apparatus using a plurality of clock cycles as a plurality of 1-clock data;
receiving a plurality of error correction codes generated from a plurality of partial data generated by dividing the transmission data in a 1-clock cycle collectively;
building entire data from the 1-clock data received by the reception control unit; and
correcting the entire data using the error correction codes received to obtain reception data.
US10/971,099 2004-06-09 2004-10-25 Data transmitting apparatus, data receiving apparatus, data transmitting method, and data receiving method Expired - Fee Related US7555695B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004171681A JP4260688B2 (en) 2004-06-09 2004-06-09 Data transmission device, data transmission / reception system, data transmission device control method, and data transmission / reception system control method
JP2004-171681 2004-06-09

Publications (2)

Publication Number Publication Date
US20050278602A1 true US20050278602A1 (en) 2005-12-15
US7555695B2 US7555695B2 (en) 2009-06-30

Family

ID=35057111

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/971,099 Expired - Fee Related US7555695B2 (en) 2004-06-09 2004-10-25 Data transmitting apparatus, data receiving apparatus, data transmitting method, and data receiving method

Country Status (3)

Country Link
US (1) US7555695B2 (en)
EP (1) EP1605621A3 (en)
JP (1) JP4260688B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080130667A1 (en) * 2006-11-30 2008-06-05 International Business Machines Corporation Distributed arbitration mechanism for ring networks
US20130117632A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Storage control apparatus
US20130266030A1 (en) * 2012-04-09 2013-10-10 Novatek Microelectronics Corp. Device and Method for Transmitting and Receiving Data
US20150339184A1 (en) * 2013-01-24 2015-11-26 Hitachi, Ltd. Storage apparatus and storage apparatus control method
US20220188185A1 (en) * 2020-12-10 2022-06-16 Advanced Micro Devices, Inc. Method and apparatus for data protection in memory devices
US11515889B2 (en) 2017-11-17 2022-11-29 Qualcomm Incorporated Uplink control information segmentation for polar codes

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009147735A1 (en) 2008-06-04 2009-12-10 富士通株式会社 Information processor, data transmission device, and data transfer method of the data transmission device
JP4867980B2 (en) 2008-11-26 2012-02-01 住友電気工業株式会社 Error correction decoding device
KR101198250B1 (en) 2010-12-06 2012-11-07 에스케이하이닉스 주식회사 Error code generating circuit and memory device including the same
US10447429B2 (en) 2014-05-28 2019-10-15 Samsung Display Co., Ltd. Methods to transport forward error correction codes in a symbol encoded transmission stream
US10432353B2 (en) 2014-12-04 2019-10-01 Samsung Display Co., Ltd. Memory-efficient methods of transporting error correction codes in a symbol encoded transmission stream
JP6861611B2 (en) * 2017-11-07 2021-04-21 ルネサスエレクトロニクス株式会社 Semiconductor devices and semiconductor systems equipped with them
KR102115436B1 (en) * 2018-11-02 2020-05-27 주식회사 넥스트칩 Method for managing data and memory wrapper performing the method
US11239944B1 (en) * 2020-08-14 2022-02-01 Huawei Technologies Co., Ltd. Methods and devices for rate adaptive forward error correction using a flexible irregular error correcting code

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241546A (en) * 1991-02-01 1993-08-31 Quantum Corporation On-the-fly error correction with embedded digital controller
US5448592A (en) * 1990-07-26 1995-09-05 British Telecommunications Public Limited Company Coded QAM system
US5856988A (en) * 1995-03-23 1999-01-05 Nec Corporation Method and apparatus for data transmission
US5875439A (en) * 1994-12-02 1999-02-23 Northrop Grumman Corporation Nonrecurrent binary code recognizer
US5881071A (en) * 1996-03-15 1999-03-09 Hitachi, Ltd. Digital write-and-read method and signal processing apparatus
US5896374A (en) * 1995-02-23 1999-04-20 Ntt Mobile Communications Network, Inc. Variable rate transmission method, transmitter and receiver using the same
US5903560A (en) * 1995-04-24 1999-05-11 Fujitsu Limited Parallel optical transmission system and optical transmission apparatus
US6226769B1 (en) * 1997-12-12 2001-05-01 3Com Corporation Forward error correction system for packet based real time media
US6266710B1 (en) * 1997-08-04 2001-07-24 Robert Bosch Gmbh Serial data transfer device
US20010053225A1 (en) * 2000-06-09 2001-12-20 Masaki Ohira Method for encoding/decoding error correcting code, transmitting apparatus and network
US6377643B1 (en) * 1998-01-12 2002-04-23 Lg Electronics, Inc. Apparatus for detecting a synchronization signal in a digital data record/replay device
US20020048335A1 (en) * 2000-06-27 2002-04-25 Yuji Saeki Phase-adjustment control method and information processing apparatus
US20020129313A1 (en) * 1999-12-07 2002-09-12 Kazuo Kubo Fec frame structuring method and fec multiplexer
US20020184592A1 (en) * 2001-06-04 2002-12-05 Mitsuhiro Koga Semiconductor memory device
US20030123389A1 (en) * 2001-12-31 2003-07-03 Russell Patrick Gene Apparatus and method for controlling data transmission
US6598203B1 (en) * 2000-06-28 2003-07-22 Northrop Grumman Corporation Parallel punctured convolutional encoder
US6772385B2 (en) * 2000-01-31 2004-08-03 Sanyo Electric Co., Ltd. Error-correcting device and decoder enabling fast error correction with reduced circuit scale
US7246303B2 (en) * 2002-03-25 2007-07-17 Intel Corporation Error detection and recovery of data in striped channels

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS627238A (en) 1985-07-03 1987-01-14 Mitsubishi Electric Corp Data transmission control device
JPS6330036A (en) 1986-07-23 1988-02-08 Nec Corp Data transmission system
US5164944A (en) * 1990-06-08 1992-11-17 Unisys Corporation Method and apparatus for effecting multiple error correction in a computer memory
JPH06125331A (en) 1992-10-12 1994-05-06 Nec Corp Digital line terminator
US5465260A (en) * 1993-11-04 1995-11-07 Cirrus Logic, Inc. Dual purpose cyclic redundancy check
JP2822922B2 (en) 1995-04-08 1998-11-11 日本電気株式会社 Parallel data transmission equipment
JP2772266B2 (en) 1995-09-13 1998-07-02 中部日本電気ソフトウェア株式会社 Data communication method and device
JP3062469B2 (en) 1998-01-28 2000-07-10 三菱電機株式会社 Parallel broadcasting system and broadcasting system
US6336192B1 (en) 1998-02-16 2002-01-01 Nippon Telegraph And Telephone Corporation Parallel redundancy encoding apparatus
JPH11275086A (en) 1998-03-19 1999-10-08 Fujitsu Ltd Error correction system
JP2000020409A (en) 1998-07-07 2000-01-21 Seiko Epson Corp Semiconductor memory device
JP2001285260A (en) 2000-03-28 2001-10-12 Hitachi Kokusai Electric Inc Error correction code generator
JP3669960B2 (en) 2001-12-27 2005-07-13 富士通テン株式会社 Data communication device
US6683817B2 (en) * 2002-02-21 2004-01-27 Qualcomm, Incorporated Direct memory swapping between NAND flash and SRAM with error correction coding

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448592A (en) * 1990-07-26 1995-09-05 British Telecommunications Public Limited Company Coded QAM system
US5241546A (en) * 1991-02-01 1993-08-31 Quantum Corporation On-the-fly error correction with embedded digital controller
US5875439A (en) * 1994-12-02 1999-02-23 Northrop Grumman Corporation Nonrecurrent binary code recognizer
US5896374A (en) * 1995-02-23 1999-04-20 Ntt Mobile Communications Network, Inc. Variable rate transmission method, transmitter and receiver using the same
US5856988A (en) * 1995-03-23 1999-01-05 Nec Corporation Method and apparatus for data transmission
US5903560A (en) * 1995-04-24 1999-05-11 Fujitsu Limited Parallel optical transmission system and optical transmission apparatus
US5881071A (en) * 1996-03-15 1999-03-09 Hitachi, Ltd. Digital write-and-read method and signal processing apparatus
US6266710B1 (en) * 1997-08-04 2001-07-24 Robert Bosch Gmbh Serial data transfer device
US6226769B1 (en) * 1997-12-12 2001-05-01 3Com Corporation Forward error correction system for packet based real time media
US6377643B1 (en) * 1998-01-12 2002-04-23 Lg Electronics, Inc. Apparatus for detecting a synchronization signal in a digital data record/replay device
US20020129313A1 (en) * 1999-12-07 2002-09-12 Kazuo Kubo Fec frame structuring method and fec multiplexer
US6772385B2 (en) * 2000-01-31 2004-08-03 Sanyo Electric Co., Ltd. Error-correcting device and decoder enabling fast error correction with reduced circuit scale
US20010053225A1 (en) * 2000-06-09 2001-12-20 Masaki Ohira Method for encoding/decoding error correcting code, transmitting apparatus and network
US20020048335A1 (en) * 2000-06-27 2002-04-25 Yuji Saeki Phase-adjustment control method and information processing apparatus
US6598203B1 (en) * 2000-06-28 2003-07-22 Northrop Grumman Corporation Parallel punctured convolutional encoder
US20020184592A1 (en) * 2001-06-04 2002-12-05 Mitsuhiro Koga Semiconductor memory device
US6957378B2 (en) * 2001-06-04 2005-10-18 Kabushiki Kaisha Toshiba Semiconductor memory device
US20030123389A1 (en) * 2001-12-31 2003-07-03 Russell Patrick Gene Apparatus and method for controlling data transmission
US7246303B2 (en) * 2002-03-25 2007-07-17 Intel Corporation Error detection and recovery of data in striped channels

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080130667A1 (en) * 2006-11-30 2008-06-05 International Business Machines Corporation Distributed arbitration mechanism for ring networks
US20130117632A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Storage control apparatus
US20130266030A1 (en) * 2012-04-09 2013-10-10 Novatek Microelectronics Corp. Device and Method for Transmitting and Receiving Data
US20150339184A1 (en) * 2013-01-24 2015-11-26 Hitachi, Ltd. Storage apparatus and storage apparatus control method
US9720767B2 (en) * 2013-01-24 2017-08-01 Hitachi, Ltd. Storage apparatus and storage apparatus control method
US11515889B2 (en) 2017-11-17 2022-11-29 Qualcomm Incorporated Uplink control information segmentation for polar codes
US20220188185A1 (en) * 2020-12-10 2022-06-16 Advanced Micro Devices, Inc. Method and apparatus for data protection in memory devices
US11663073B2 (en) * 2020-12-10 2023-05-30 Advanced Micro Devices, Inc. Method and apparatus for data protection in memory devices

Also Published As

Publication number Publication date
EP1605621A2 (en) 2005-12-14
US7555695B2 (en) 2009-06-30
JP4260688B2 (en) 2009-04-30
EP1605621A3 (en) 2012-09-26
JP2005354310A (en) 2005-12-22

Similar Documents

Publication Publication Date Title
US7555695B2 (en) Data transmitting apparatus, data receiving apparatus, data transmitting method, and data receiving method
US7810013B2 (en) Memory device that reflects back error detection signals
CN101366183B (en) Method and apparatus for error management
US20100262887A1 (en) High Integrity Data Network System and Method
US8539305B2 (en) Semiconductor apparatus and data processing method
US20100138573A1 (en) System including transmitter and receiver
CN108337069B (en) Improved error rate reducing end parallel grouping CRC (Cyclic redundancy check) system
JP3217716B2 (en) Wireless packet communication device
JP2012124642A (en) Receiving device, data transfer device, and program
JP5459308B2 (en) Data transfer apparatus and data transfer apparatus control method
US20040153945A1 (en) Error correction circuit employing cyclic code
US20090150727A1 (en) Data transmission method
US11005599B2 (en) Data transmission systems and data transmission methods of suppressing data error occurrences due to crosstalk
JPH0738626B2 (en) Word sync detection circuit
US20230224076A1 (en) Processor and system
US8699624B2 (en) Receiving apparatus and data transmission apparatus
JP3137092B2 (en) Data transmission method and transmission / reception device
JP3536799B2 (en) Frame synchronization circuit and synchronization method, and recording medium recording the program
JPH10294720A (en) Signal transmission circuit and signal-transmitting method
JPS6362427A (en) Detection system for error of data communication
KR100670041B1 (en) Fast Ethernet Receive Data Error Correction Circuit
CN117639797A (en) FEC decoding circuit applied to JESD204C receiving end
JP2016092632A (en) Data transmission/reception system, data transmission device, data reception device, data transmission/reception method, and program
JP2004214743A (en) Packet synchronizing system
JPH02272929A (en) Majority decision coding/decoding system and encoder and decoder in the same system

Legal Events

Date Code Title Description
AS Assignment

Owner name: FUJITSU LIMITED, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OOGAMI, SYOUGO;MURAKAMI, HIROSHI;REEL/FRAME:015925/0919

Effective date: 20041001

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20170630