[go: up one dir, main page]

WO2010035316A1 - Memory control device and memory control method - Google Patents

Memory control device and memory control method Download PDF

Info

Publication number
WO2010035316A1
WO2010035316A1 PCT/JP2008/067210 JP2008067210W WO2010035316A1 WO 2010035316 A1 WO2010035316 A1 WO 2010035316A1 JP 2008067210 W JP2008067210 W JP 2008067210W WO 2010035316 A1 WO2010035316 A1 WO 2010035316A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
data
read
address
control device
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.)
Ceased
Application number
PCT/JP2008/067210
Other languages
French (fr)
Japanese (ja)
Inventor
恵治 嶋谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Priority to PCT/JP2008/067210 priority Critical patent/WO2010035316A1/en
Publication of WO2010035316A1 publication Critical patent/WO2010035316A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution

Definitions

  • the present invention relates to a memory control device and a memory control method for controlling memory access to a plurality of memory banks.
  • CPU Central Processing Unit
  • PA physical address
  • the memory control device converts the physical address into a memory address and determines an access destination.
  • the present invention has been made in order to solve the above-described problems related to the prior art, and provides a memory control device and a memory control method having the same reliability as the mirror mode and the same transmission speed as the non-mirror mode.
  • the purpose is to provide.
  • the disclosed apparatus and method write data of the same contents to both the first memory bank and the second memory bank and accept a read request.
  • the data specified by the read request is divided into the first half and the second half, and one memory bank is used for normal read of the first half data and preliminary read of the second half data, and the other memory bank is used for normal read of the second half data and preliminary read of the second half data.
  • the preliminary reading is executed when there is an unrecoverable error in the result of normal reading.
  • FIG. 1 is a conceptual diagram illustrating the concept of the memory control method according to the present embodiment.
  • FIG. 2 is a schematic configuration diagram illustrating a schematic configuration of the computer apparatus according to the present embodiment.
  • FIG. 3 is a configuration diagram illustrating the configuration of the write control unit 21.
  • FIG. 4 is a configuration diagram illustrating the configuration of the read control unit 22.
  • FIG. 5 is an explanatory diagram for explaining a basic operation of a conventional memory control device (MAC).
  • FIG. 6 is an explanatory diagram for explaining the operation in the conventional non-mirror mode.
  • FIG. 7 is an explanatory diagram for explaining the operation in the conventional mirror mode.
  • FIG. 8 is an explanatory diagram for explaining the operation of improving the reliability in the conventional mirror mode.
  • FIG. MAC memory control device
  • FIG. 9 is an explanatory diagram for explaining the memory control operation according to the present embodiment.
  • FIG. 10 is an explanatory diagram illustrating the reliability improvement operation in the memory control according to the present embodiment.
  • FIG. 11 is an explanatory diagram for explaining address conversion when the address allocation shown in FIG. 9 is performed.
  • FIG. 12 is a diagram illustrating a first modification of address assignment.
  • FIG. 13 is an explanatory diagram for explaining address conversion when the address allocation shown in FIG. 12 is performed.
  • FIG. 14 is a diagram illustrating a second modification of address assignment.
  • FIG. 15 is an explanatory diagram for explaining address conversion when the address allocation shown in FIG. 14 is performed.
  • FIG. 16 is a flowchart for explaining data read processing of the first 64 bytes.
  • FIG. 17 is a flowchart for explaining read processing of data of the latter half 64 bytes.
  • FIG. 18 is a flowchart for explaining the processing operation of the data selection units 22d0 and 22d1.
  • FIG. 1 is a conceptual diagram illustrating the concept of the memory control method according to the present embodiment.
  • the same contents are duplicated and written at the time of writing, and the data read from different addresses are combined and transmitted at the time of reading.
  • the same physical address is assigned to the same DIMM address for the two memory banks B0 and B1, each of which is a set of a plurality of DIMMs (Dual Inline Memory Modules).
  • the same data is written in 4-7. Since the transfer amount per cycle of the memory banks B0 and B1 is 64 bytes, the transmission rate at the time of writing is 64 bytes / cycle.
  • the DIMM addresses 0 to 3 of the memory bank B0 and the DIMM addresses 4 to 7 of the memory bank B1 are read and combined and transmitted. Since the same contents are written to the same addresses in the memory banks B0 and B1 at the time of writing, the contents obtained by combining the DIMM addresses 0 to 3 of the memory bank B0 and the DIMM addresses 4 to 7 of the memory bank B1 are combined into the memory bank B0. The same contents as the DIMM addresses 0 to 7 and the DIMM addresses 0 to 7 of the memory bank B1.
  • FIG. 1 illustrates a case where both of the DIMM addresses 0 to 3 of the memory bank B0 and the DIMM addresses 4 to 7 of the memory bank B1 are in error, but the DIMM addresses 0 to 3 of the memory bank B0 and the memory addresses of the memory bank B1 If any one of the DIMM addresses 4 to 7 is an error, only the error may be read from the other memory bank.
  • the transmission speed at the time of reading can be set to 128 bytes / cycle.
  • FIG. 2 is a schematic configuration diagram illustrating a schematic configuration of the computer apparatus according to the present embodiment.
  • the computer apparatus 1 shown in FIG. 2 includes a system controller (SC) 13, an arithmetic processing unit (CPU: Central Processing Unit) 11, a memory control unit (MAC: Memory Access controller) 12, and an interface unit 14.
  • the memory control device 12 is further connected to memory banks B0 and B1.
  • the arithmetic processing unit 11 is a device that executes various arithmetic processes.
  • the arithmetic processing executed by the arithmetic processing unit 11 includes writing data to the memory banks B0 and B1, which are main storage devices, and reading data from the memory banks B0 and B1.
  • the arithmetic processing unit 11 issues a physical address (PA) and designates an access destination when performing memory access to the memory banks B0 and B1.
  • PA physical address
  • the interface device 14 is a device for connecting to various devices (not shown) such as an auxiliary storage device and a network communication device.
  • the system control device 13 is a bridge that connects the arithmetic processing device 11, the memory control device 12, and the interface device 14.
  • the memory bank B0 has two memory modules M01 and M02, and the memory bank B1 has two memory modules M11 and M12. Each of the memory modules M01, M02, M11, and M12 is a DIMM.
  • the memory control device 12 includes therein a write control unit 21 that controls writing to the memory banks B0 and B1, and a read control unit 22 that controls reading from the memory banks B0 and B1.
  • FIG. 3 is a configuration diagram illustrating the configuration of the write control unit 21. As shown in FIG. 3, the write control unit 21 includes an address conversion unit 21a and an error detection information generation unit 21b therein.
  • the address conversion unit 21a converts the physical address (PA) issued by the arithmetic processing unit 11 into DA that is an address in the DIMM. In this conversion, the address conversion unit 21a creates an address for the memory bank B0 and an address for the memory bank B1, respectively.
  • the physical address PA is aligned in units of 64 bytes.
  • the error detection information generation unit 21b receives 64 bytes of data from the arithmetic processing unit 11 via the system control unit 13.
  • the error detection information generation unit 21b divides the 64-byte data into four 16-byte data, and calculates an error check code (ECC) that is error detection information every 16 bytes. Then, the error detection information generation unit 21b transmits (data 16 bytes + error check code 2 bytes) ⁇ 4 data to the memory modules in the memory bank B0 and the memory bank B1.
  • ECC error check code
  • FIG. 4 is a configuration diagram illustrating the configuration of the read control unit 22.
  • the read control unit 22 includes address conversion units 22a0 and 22a1, address selection units 22b0 and 22b1, reread confirmation units 22c0 and 22c1, data selection units 22d0 and 22d1, and a data transmission unit 22e.
  • the physical address PA issued when the arithmetic processing unit 11 issues a read request is aligned (aligned) in units of 128 bytes.
  • the read control unit 22 reads the physical address of 128 bytes from the memory bank by dividing the physical address into the first half 64 bytes and the second half 64 bytes.
  • the address conversion unit 22a0 is a processing unit responsible for address conversion of the first half 64 bytes.
  • the address conversion unit 22a0 designates the address of the memory bank B0 as the normal read address, and designates the address of the memory bank B1 as the reread address.
  • the address conversion unit 22a0 calculates the memory address DA by setting the value of the sixth bit of the physical address PA to “0”.
  • the address conversion unit 22a1 is a processing unit responsible for address conversion of the second half 64 bytes.
  • the address conversion unit 22a1 designates the address of the memory bank B1 as the normal read address, and designates the address of the memory bank B0 as the reread address. Further, the address conversion unit 22a1 calculates the memory address DA by setting the value of the sixth bit of the physical address PA to “1”.
  • the address selection unit 22b0 is a processing unit that reads from the memory bank B0. First, when the memory address DA is sent from the address conversion units 22a0 and 22a1, the address selection unit 22b0 selects the normal read address sent from the address conversion unit 22a0 and reads from the memory module in the memory bank B0. . Thereafter, when there is a reread request from the reread confirmation unit 22c1, the reread address is selected and read again from the memory module in the memory bank B0.
  • the address selection unit 22b1 is a processing unit that reads from the memory bank B1. First, when the memory address DA is sent from the address conversion units 22a0 and 22a1, the address selection unit 22b1 selects the normal read address sent from the address conversion unit 22a1 and reads from the memory module in the memory bank B1. . Thereafter, when there is a reread request from the reread confirmation unit 22c0, the reread address is selected and read again from the memory module in the memory bank B0.
  • the read confirmation unit 22c0 is a reread determination unit that determines the necessity of rereading based on the result of the normal read of the first 64 bytes, and makes a reread request to the address selection unit 22b1 when rereading is necessary. From the memory module, a set of data and an error check code (data 16 bytes + error check code 2 bytes) is output four times. The reread confirmation unit 22c0 checks each error check code against the normal read data, and determines that rereading is necessary if there is an uncorrectable error (UE) in any one of the four. .
  • UE uncorrectable error
  • the read confirmation unit 22c1 is a reread determination unit that determines the necessity of rereading based on the result of the normal read of the second half 64 bytes and makes a reread request to the address selection unit 22b0 when rereading is necessary. From the memory module, a set of data and an error check code (data 16 bytes + error check code 2 bytes) is output four times. The reread confirmation unit 22c1 checks each error check code with respect to the normal read data, and determines that rereading is necessary if any one of the four errors (UE) cannot be corrected.
  • the data selection unit 22d0 checks the ECC of normal read data of 64 bytes in the first half, and if there is no error or a correctable error (CE), selects the normal read data. If there is no error, the data is corrected if it is CE, and the data is corrected and sent to the data sending unit 22e.
  • CE correctable error
  • the data selection unit 22d0 checks the error check code of the data reread from the memory bank B1. As a result of this check, if the reread data is no error or CE, the reread data is selected. If there is no error, the data is corrected if it is CE, and the data is corrected and sent to the data sending unit 22e. If the reread data is also a UE, “Marked UE” is sent to the data sending unit 22e.
  • the data selection unit 22d1 checks the ECC of the normal read data of the latter half 64 bytes, and selects normal read data if there is no error or a correctable error (CE). If there is no error, the data is corrected if it is CE, and the data is corrected and sent to the data sending unit 22e.
  • CE correctable error
  • the data selection unit 22d1 checks the error check code of the data reread from the memory bank B0. As a result of this check, if the reread data is no error or CE, the reread data is selected. If there is no error, the data is corrected if it is CE, and the data is corrected and sent to the data sending unit 22e. If the reread data is also a UE, “Marked UE” is sent to the data sending unit 22e.
  • the data transmission unit 22e combines the data of the first half 64 bytes sent from the data selection unit 22d1 with the data of the first half 64 bytes sent from the data selection unit 22d0, and outputs the data to the system controller 13 as 128 bytes data.
  • the designated 128-byte data is divided into the first half and the second half, and the data is read out from different memory banks and combined, whereby the data can be read out in 128 bytes.
  • FIG. 5 is an explanatory diagram for explaining a basic operation of a conventional memory control device (MAC).
  • the physical address (PA) indicates a place to write / read when the arithmetic processing unit accesses the memory, and is 1 byte per address.
  • the memory controller converts the physical address into a DIMM address, and the corresponding DIMM of the DIMM connected to the memory controller Write data to address.
  • Two memory banks B0 and B1 are connected to one memory control device, and two DIMMs are connected to each of the memory banks B0 and B1.
  • the two memory banks B0 and B1 operate independently of each other, and can simultaneously perform operations such as writing to and reading from each connected DIMM.
  • the data to be written to / read from the DIMM uses the error correction code of the data part 16 bytes + ECC part 2 bytes, and can correct a 1-bit error and detect a 2-bit error.
  • the operation mode of the memory control device includes the mirror mode and the non-mirror mode as described above.
  • the non-mirror mode is a capacity and speed priority mode.
  • FIG. 6 is an explanatory diagram for explaining the operation in the conventional non-mirror mode.
  • PA0 to 63 are assigned to DA0 to DA3 of memory bank B0, and PA64 to 127 are assigned to DA0 to 3 of memory bank B1. Further, PA128 to 191 are assigned to DA4 to 7 of memory bank B0, and PA192 to 255 are assigned to DA4 to 7 of memory bank B1.
  • PA0 to 63 are written to DA0 to 3 of memory bank B0, and PA64 to 127 are written to DA0 to 3 of memory bank B1.
  • PA0 to 63 are read from DA0 to DA3 of memory bank B0, and PA64 to 127 are read from DA0 to DA3 of memory bank B1.
  • the mirror mode is a mode in which the reliability of data is improved instead at the expense of capacity and speed.
  • FIG. 7 is an explanatory diagram for explaining the operation in the conventional mirror mode.
  • the same physical address is assigned to the two memory banks B0 and B1, and the same data is written twice at the time of writing.
  • data of the same physical address is simultaneously read from the two memory banks B0 and B1, and ECC check and data compare are performed.
  • ECC check and the data conveyor even if an uncorrectable error occurs in one of the memory banks, the data is not damaged.
  • the same physical address is assigned to the memory bank B0 and the memory bank B1.
  • the data from the system control device is written twice in the memory banks B0 and B1. Therefore, the data transfer amount between the system control device and the memory control device per cycle is 64 bytes.
  • data of the same physical address is simultaneously read from the memory banks B0 and B1, data to be transmitted is determined by ECC check and data compare, and sent to the system controller. Therefore, the data transfer amount between the system control device and the memory control device per cycle is 64 bytes.
  • PA0 to 63 are assigned to DA0 to 3 of memory bank B0 and memory bank B1
  • PA64 to 127 are assigned to DA4 to 7 of memory bank B0 and memory bank B1.
  • PA0 to 63 when a write request specifying physical addresses PA0 to 63 is received from the system controller, PA0 to 63 are written to both DA0 to DA3 of memory bank B0 and DA0 to DA3 of memory bank B1.
  • PA0 to 63 When a read request specifying physical addresses PA0 to 63 is received from the system controller, PA0 to 63 are read from both DA0 to DA3 of memory bank B0 and DA0 to DA3 of memory bank B1, and ECC check, Reliability is improved by performing data comparison.
  • FIG. 8 is an explanatory diagram for explaining the operation of improving the reliability in the conventional mirror mode. As shown in FIG. 8, if the data read from the memory bank B0 and the data read from the memory bank 1 are both error-free (ECC check OK) and the data comparison results match (data conveyor ⁇ ), the data can be obtained. It is assumed that the obtained data is normal.
  • ECC check OK error-free
  • data conveyor ⁇ data conveyor ⁇
  • ECC check UE One of the data read from the memory bank B0 and the data read from the memory bank 1 is an uncorrectable error (ECC check UE), and the other is no error (ECC check OK) or correctable error (CE).
  • ECC check OK no error
  • CE correctable error
  • the data conveyor is not performed, and it is assumed that the data obtained without error (ECC check OK) or the data obtained by correcting the error is normal.
  • one of the data read from the memory bank B0 and the data read from the memory bank 1 is a correctable error (CE), and the other is no error (ECC check OK) or a correctable error (CE). Then, after correcting the error, the data are compared, and if the data comparison results do not match (data conveyor ⁇ ), “Marked UE” is output.
  • data of the same physical address is written to the memory banks B0 and B1 at the time of writing, and data of physical addresses different from each other are read at the memory banks B0 and B1 at the time of reading. If the read data is an error that cannot be corrected, the data of the same physical address is written somewhere in the other memory bank. Do. By doing so, even if the data read from one of the memory banks is an error that cannot be corrected, the data is not lost and normal data can be obtained. If an uncorrectable error does not occur, the transfer speed at the time of reading is the same as in the non-mirror mode.
  • FIG. 9 is an explanatory diagram for explaining the memory control operation according to the present embodiment.
  • the first half of the DIMM address is assigned different physical addresses by 64 bytes alternately in the memory bank B0 and the memory bank B1 as in the non-mirror mode.
  • the second half of the DIMM address is assigned the same physical address as the first half of the paired memory bank.
  • the data from the system control device is written twice in the two memory banks B0 and B1.
  • the DA for writing data is different between the memory bank B0 and the memory bank B1.
  • the data transfer amount between the system controller and the memory controller per cycle is 64 bytes, which is the same as in the conventional mirror mode.
  • the memory bank to be read is changed every time the physical address PA is +64, and the memory banks B0 and B1 are operated in parallel at the same time. Retrieve the data.
  • UE uncorrectable error
  • FIG. 10 is an explanatory diagram for explaining the reliability improving operation in the memory control according to the present embodiment.
  • the ECC check result in the first read indicates no error (OK)
  • reread is not performed and the obtained data is used as normal data as it is.
  • CE correctable error
  • the lead is executed again (reread).
  • the reread ECC check result indicates no error (OK)
  • the data obtained by the reread is set as normal data.
  • the ECC check result in reread is a correctable error (CE)
  • the data obtained by reread is corrected to normal data.
  • “Marked UE” is output.
  • the data transfer amount of one cycle between the system controller and the memory controller is the conventional non-mirror mode. It will be 128 bytes as well as the hour.
  • FIG. 11 is an explanatory diagram for explaining the address conversion when the address allocation shown in FIG. 9 is performed.
  • the capacity per memory bank is 1 Kbyte
  • the value of the fourth bit of PA becomes the value of the 0th bit of DA
  • the value of the fifth bit of PA becomes the value of the first bit of DA.
  • the 6th bit value of PA is the 5th bit value of DA
  • the 7th to 9th bit values of PA are the 2nd to 4th bit values of DA, respectively.
  • the value of the fourth bit of PA becomes the value of the 0th bit of DA
  • the value of the fifth bit of PA becomes the first bit of DA. Value.
  • the 6th bit value of PA is inverted to the 5th bit value of DA
  • the 7th to 9th bit values of PA are set to the 2nd to 4th bit values of DA, respectively.
  • FIG. 12 shows a first modification of address allocation
  • FIG. 13 is an explanatory diagram for explaining address conversion when the address allocation shown in FIG. 12 is performed.
  • the memory bank B0 is the same as the mirror mode. That is, PA0 to 63 are assigned to DA0 to DA3, and PA64 to 127 are assigned to DA4 to DA7. Similarly, PAs 128 to 191 are assigned to DAs 8 to 11, and PAs 192 to 255 are assigned to DAs 12 to 15.
  • PAs 64 to 127 are assigned to DA0 to DA3
  • PAs 0 to 63 are assigned to DA4 to 7.
  • PAs 192 to 255 are assigned to DAs 8 to 11
  • PAs 128 to 191 are assigned to DAs 12 to 15.
  • the value of the fourth bit of PA becomes the value of the 0th bit of DA
  • the value of the fifth bit becomes the value of the first bit of DA.
  • the 6th to 9th bit values of PA are the 2nd to 5th bit values of DA, respectively.
  • the value of the fourth bit of PA becomes the value of the 0th bit of DA
  • the value of the fifth bit of PA becomes the first bit of DA. Value.
  • the 6th bit value of PA is inverted to the 2nd bit value of DA
  • the 7th to 9th bit values of PA are set to the 3rd to 5th bit values of DA, respectively.
  • the memory banks B0 and B1 read a portion where DA is a multiple of 8, and if it is UE, read the portion where DA is +4 in the other memory bank. That is, first, the portion surrounded by the solid line in FIG. 12 is read, and if the error cannot be corrected, the portion surrounded by the broken line is read.
  • the transmission data at the time of reading is the same as the example shown in FIG.
  • FIG. 14 is a second modification of address allocation
  • FIG. 15 is an explanatory diagram for explaining address conversion when the address allocation shown in FIG. 14 is performed.
  • the address assignment shown in FIG. 14 is the same as in the conventional mirror mode.
  • PA0 to 63 are assigned to DA0 to DA3 of memory bank B0 and memory bank B1
  • PA64 to DA4 to 7 of memory bank B0 and memory bank B1 are assigned.
  • 127 is assigned.
  • PA128 to 191 are assigned to DA8 to 11 of memory bank B0 and memory bank B1
  • PA192 to 255 are assigned to DA12 to 15 of memory bank B0 and memory bank B1.
  • the address conversion in this case is the same in the memory bank B0 and the memory bank B1
  • the value of the fourth bit of the physical address PA becomes the value of the 0th bit of DA
  • the PA 5 The value of the bit is the value of the first bit of DA.
  • the 6th to 9th bit values of PA are the 2nd to 5th bit values of DA, respectively.
  • the memory bank to be read is changed every time PA is +64 (DA is +4). If the read result is UE, the same DA location in the other memory bank is read. That is, first, the portion surrounded by the solid line in FIG. 14 is read, and if the error cannot be corrected, the portion surrounded by the broken line is read. As a result, the transmission data at the time of reading is the same as the example shown in FIG.
  • FIG. 16 is a flowchart for explaining data read processing of the first 64 bytes.
  • the address conversion unit 22a0 obtains the DA for normal reading from the physical address PA aligned in 128 bytes using address conversion for the memory bank B0 (PA ⁇ DA conversion).
  • Reread DA is obtained by using address conversion for B1 (PA ⁇ DA conversion).
  • the sixth bit of PA is set to 0 (S101).
  • the address selector 22b0 reads data from the normal read DA (S102), and sends the normal read data obtained by the read to the data selector 22d0 (S103).
  • the reread confirmation unit 22c0 checks the ECC of the normal read data (S104), and if there is no unrecoverable error (S104, no UE), the process is terminated as it is. However, if there is an uncorrectable error (S104, with UE), a reread request is transmitted to the address selection unit 22b1 (S105).
  • the address selection unit 22b1 that has received the reread request reads data from the reread DA (S106), sends the reread data obtained by the read to the data selection unit 22d0 (S107), and ends the processing.
  • FIG. 17 is a flowchart for explaining the data read process of the second half 64 bytes.
  • the address conversion unit 22a1 obtains the DA for normal reading from the physical address PA aligned in 128 bytes by using address conversion for the memory bank B1 (PA ⁇ DA conversion), and the memory bank Reread DA is obtained by using address conversion for B0 (PA ⁇ DA conversion).
  • the sixth bit of PA is set to 1 (S201).
  • the address selector 22b1 reads data from the normal read DA (S202), and sends the normal read data obtained by the read to the data selector 22d1 (S203).
  • the reread confirmation unit 22c1 checks the ECC of the normal read data (S204), and if there is no unrecoverable error (S204, no UE), the process is terminated as it is. However, if there is an uncorrectable error (S204, with UE), a reread request is transmitted to the address selection unit 22b0 (S205).
  • the address selection unit 22b0 that has received the reread request reads data from the reread DA (S206), sends the reread data obtained by the read to the data selection unit 22d1 (S207), and ends the processing.
  • FIG. 18 is a flowchart for explaining the processing operation of the data selection units 22d0 and 22d1.
  • the data selectors 22d0 and 22d1 perform this process for each data 16 bytes.
  • the data selection units 22d0 and 22d1 first check the ECC of the normal read data (S301). As a result, if there is no error (OK) or the error can be corrected even if there is an error (S301, OK or CE), the process proceeds to step S304. If it is CE (S304, Yes), the data is corrected (S305), and the data is sent to the data sending unit 22e (S306). If it is not CE and there is no error (S304, No), the data is sent as it is to the data sending unit 22e (S306).
  • the data selection units 22d0 and 22d1 check the ECC of the reread data (S302). As a result, if there is no error (OK) or if the error can be corrected (S302, OK or CE), the process proceeds to step S307. If it is CE (S307, Yes), data correction is performed (S308), and then the data is sent to the data sending unit 22e (S309). If it is not CE and there is no error (S307, No), the data is sent as it is to the data sending unit 22e (S309).
  • the data selection units 22d0 and 22d1 send “Marked UE” to the data transmission unit 22e (S303).
  • the data of the same physical address is written to the memory banks B0 and B1 at the time of writing, and the data of different physical addresses are read at the memory banks B0 and B1 at the time of reading.
  • the read data is an error that cannot be corrected
  • the data of the same physical address is written somewhere in the other memory bank. Do. By doing so, even if the data read from one of the memory banks is an error that cannot be corrected, the data is not lost and normal data can be obtained.
  • the transfer speed at the time of reading is the same as that in the non-mirror mode, so that the memory control device having the same reliability as the mirror mode and the same transmission speed as the non-mirror mode A memory control method can be obtained.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The data of the same physical address is written to memory banks (B0, B1) at the time of write and the data of different physical addresses is read from the memory banks (B0, B1) at the time of read, which are outputted in combination. If the data read from the memory bank (B0) is an uncorrectable error, the data is reread from the place where the data of the same physical address of the memory bank (B1) is written. If the data read from the memory bank (B1) is an uncorrectable error, the data is reread from the place where the data of the same physical address of the memory bank (B0) is written.

Description

メモリ制御装置およびメモリ制御方法Memory control device and memory control method

 本発明は、複数のメモリバンクに対するメモリアクセスを制御するメモリ制御装置およびメモリ制御方法に関する。 The present invention relates to a memory control device and a memory control method for controlling memory access to a plurality of memory banks.

 演算処理装置、いわゆるCPU(Central Processing Unit)がメモリにアクセスする際には、物理アドレス(PA:Physical Address)を発行してアクセス先を指定する。メモリ制御装置は、この物理アドレスをメモリアドレスに変換してアクセス先の決定を行なう。 When an arithmetic processing unit, so-called CPU (Central Processing Unit) accesses a memory, it issues a physical address (PA) and designates an access destination. The memory control device converts the physical address into a memory address and determines an access destination.

 従来、メモリ制御装置に複数のメモリバンクを接続し、各メモリバンクを独立して動作させることが行なわれてきた。具体的には、同じ物理アドレスを2つのメモリバンクに割り当て、書き込み(ライト)時に同じデータを二重化して書き込むミラーモードや、各メモリバンクに異なった物理アドレスを割り当てて、ライト/リードの際に各メモリバンクにアクセスすることによってスループットを向上させる非ミラーモードが知られている(例えば特許文献1,2参照。)。 Conventionally, a plurality of memory banks have been connected to a memory control device, and each memory bank has been operated independently. Specifically, the same physical address is assigned to two memory banks and the same data is duplicated and written at the time of writing (write), or different physical addresses are assigned to each memory bank, and at the time of writing / reading A non-mirror mode is known in which throughput is improved by accessing each memory bank (see, for example, Patent Documents 1 and 2).

 また、複数のデータをほぼ同時に取り出してそれぞれのエラーを個別に検出し、ほぼ同時にデータの相手方に対するエラーを検出する技術も知られている(例えば特許文献3参照。)。 Also, a technique is known in which a plurality of data is taken out almost simultaneously, each error is individually detected, and an error with respect to the data counterpart is detected almost simultaneously (see, for example, Patent Document 3).

特開昭63-233439号公報JP-A-63-233439 特開平6-250931号公報JP-A-6-250931 特開平8-234922号公報JP-A-8-234922

 しかしながら、従来の技術では、ミラーモードによる信頼性の向上と非ミラーモードによるスループットの向上とを両立することはできなかった。そのため、ミラーモードと同等の信頼性を持ち、かつ非ミラーモードと伝送速度が同等のメモリ制御技術の実現が重要な課題となっていた。 However, with the conventional technology, it has been impossible to achieve both the improvement of reliability by the mirror mode and the improvement of the throughput by the non-mirror mode. Therefore, the realization of a memory control technique having the same reliability as the mirror mode and the same transmission speed as the non-mirror mode has been an important issue.

 本発明は、上述した従来技術にかかる課題を解決するためになされたものであり、ミラーモードと同等の信頼性を持ち、かつ非ミラーモードと伝送速度が同等のメモリ制御装置およびメモリ制御方法を提供すること目的とする。 The present invention has been made in order to solve the above-described problems related to the prior art, and provides a memory control device and a memory control method having the same reliability as the mirror mode and the same transmission speed as the non-mirror mode. The purpose is to provide.

 上述した課題を解決し、目的を達成するために、開示の装置および方法は、第1メモリバンクと第2メモリバンクの双方に対して同一内容のデータを書き込み、読み出し要求を受け付けた場合に、当該読み出し要求が指定するデータを前半と後半に分け、一方のメモリバンクを前半データの通常読み出しと後半データの予備読み出しに用い、他方のメモリバンクを後半データの通常読み出しと後半データの予備読み出しに用いる。そして、予備読み出しについては、通常読み出しの結果に修復不可能なエラーがある場合に実行する。 In order to solve the above-described problems and achieve the object, the disclosed apparatus and method write data of the same contents to both the first memory bank and the second memory bank and accept a read request. The data specified by the read request is divided into the first half and the second half, and one memory bank is used for normal read of the first half data and preliminary read of the second half data, and the other memory bank is used for normal read of the second half data and preliminary read of the second half data. Use. The preliminary reading is executed when there is an unrecoverable error in the result of normal reading.

 開示の装置および方法によれば、ミラーモードと同等の信頼性を持ち、かつ非ミラーモードと伝送速度が同等のメモリ制御装置およびメモリ制御方法を得ることができるという効果を奏する。 According to the disclosed apparatus and method, it is possible to obtain a memory control apparatus and a memory control method having the same reliability as the mirror mode and the transmission speed equivalent to the non-mirror mode.

図1は、本実施例にかかるメモリ制御方法の概念について説明する概念図である。FIG. 1 is a conceptual diagram illustrating the concept of the memory control method according to the present embodiment. 図2は、本実施例にかかるコンピュータ装置の概要構成を示す概要構成図である。FIG. 2 is a schematic configuration diagram illustrating a schematic configuration of the computer apparatus according to the present embodiment. 図3は、ライト制御部21の構成を説明する構成図である。FIG. 3 is a configuration diagram illustrating the configuration of the write control unit 21. 図4は、リード制御部22の構成を説明する構成図である。FIG. 4 is a configuration diagram illustrating the configuration of the read control unit 22. 図5は、従来のメモリ制御装置(MAC)基本動作を説明する説明図である。FIG. 5 is an explanatory diagram for explaining a basic operation of a conventional memory control device (MAC). 図6は、従来の非ミラーモードの動作を説明する説明図である。FIG. 6 is an explanatory diagram for explaining the operation in the conventional non-mirror mode. 図7は、従来のミラーモードの動作を説明する説明図である。FIG. 7 is an explanatory diagram for explaining the operation in the conventional mirror mode. 図8は、従来のミラーモードにおける信頼性向上動作について説明する説明図である。FIG. 8 is an explanatory diagram for explaining the operation of improving the reliability in the conventional mirror mode. 図9は、本実施例にかかるメモリ制御の動作を説明する説明図である。FIG. 9 is an explanatory diagram for explaining the memory control operation according to the present embodiment. 図10は、本実施例にかかるメモリ制御における信頼性向上動作について説明する説明図である。FIG. 10 is an explanatory diagram illustrating the reliability improvement operation in the memory control according to the present embodiment. 図11は、図9に示したアドレス割り付けを行なう場合のアドレス変換について説明する説明図である。FIG. 11 is an explanatory diagram for explaining address conversion when the address allocation shown in FIG. 9 is performed. 図12は、アドレス割り付けの第1の変形例を示す図である。FIG. 12 is a diagram illustrating a first modification of address assignment. 図13は、図12に示したアドレス割り付けを行なう場合のアドレス変換について説明する説明図である。FIG. 13 is an explanatory diagram for explaining address conversion when the address allocation shown in FIG. 12 is performed. 図14は、アドレス割り付けの第2の変形例を示す図である。FIG. 14 is a diagram illustrating a second modification of address assignment. 図15は、図14に示したアドレス割り付けを行なう場合のアドレス変換について説明する説明図である。FIG. 15 is an explanatory diagram for explaining address conversion when the address allocation shown in FIG. 14 is performed. 図16は、前半64Byteのデータのリード処理について説明するフローチャートである。FIG. 16 is a flowchart for explaining data read processing of the first 64 bytes. 図17は、後半64Byteのデータのリード処理について説明するフローチャートである。FIG. 17 is a flowchart for explaining read processing of data of the latter half 64 bytes. 図18は、データ選択部22d0,22d1の処理動作を説明するフローチャートである。FIG. 18 is a flowchart for explaining the processing operation of the data selection units 22d0 and 22d1.

符号の説明Explanation of symbols

  1  コンピュータ装置
 11  演算処理装置
 12  メモリ制御装置
 13  システム制御装置
 14  インタフェース装置
 21  ライト制御部
 21a,22a0,22a1 アドレス変換部
 21b エラー検出情報生成部
 22  リード制御部
 22b0,22b1 アドレス選択部
 22c0,22c1 リリード確認部
 22d0,22d1 データ選択部
 22e データ送出部
 B0,B1 メモリバンク
 M01,M02,M11,M12 メモリモジュール
DESCRIPTION OF SYMBOLS 1 Computer apparatus 11 Arithmetic processing apparatus 12 Memory control apparatus 13 System control apparatus 14 Interface apparatus 21 Write control part 21a, 22a0, 22a1 Address conversion part 21b Error detection information generation part 22 Read control part 22b0, 22b1 Address selection part 22c0, 22c1 Reread Confirmation unit 22d0, 22d1 Data selection unit 22e Data transmission unit B0, B1 Memory bank M01, M02, M11, M12 Memory module

 以下に、本発明にかかるメモリ制御装置およびメモリ制御方法の実施例を図面に基づいて詳細に説明する。 Hereinafter, embodiments of a memory control device and a memory control method according to the present invention will be described in detail with reference to the drawings.

 図1は、本実施例にかかるメモリ制御方法の概念について説明する概念図である。本実施例にかかるメモリ制御方法では、書き込み時は同一内容を二重化して書き込み、読み出し時には異なるアドレスから読み出したデータを結合して伝送する。 FIG. 1 is a conceptual diagram illustrating the concept of the memory control method according to the present embodiment. In the memory control method according to the present embodiment, the same contents are duplicated and written at the time of writing, and the data read from different addresses are combined and transmitted at the time of reading.

 図1に示した例では、各々が複数のDIMM(Dual Inline Memory Module)の集合である2つのメモリバンクB0,B1について、同一のDIMMアドレスに同一の物理アドレスを割り当てており、それぞれのDIMMアドレス4~7に同一のデータが書き込まれている。メモリバンクB0,B1の1サイクルあたりの転送量はそれぞれ64Byteであるので、書き込み時の伝送速度は64Byte/サイクルとなる。 In the example shown in FIG. 1, the same physical address is assigned to the same DIMM address for the two memory banks B0 and B1, each of which is a set of a plurality of DIMMs (Dual Inline Memory Modules). The same data is written in 4-7. Since the transfer amount per cycle of the memory banks B0 and B1 is 64 bytes, the transmission rate at the time of writing is 64 bytes / cycle.

 一方、読み出し時にはメモリバンクB0のDIMMアドレス0~3とメモリバンクB1のDIMMアドレス4~7を読み出して結合して伝送する。書き込み時に同一内容をメモリバンクB0,B1の同一のアドレスに書き込んでいるので、メモリバンクB0のDIMMアドレス0~3とメモリバンクB1のDIMMアドレス4~7を読み出して結合した内容は、メモリバンクB0のDIMMアドレス0~7、またメモリバンクB1のDIMMアドレス0~7と同一の内容となる。 On the other hand, at the time of reading, the DIMM addresses 0 to 3 of the memory bank B0 and the DIMM addresses 4 to 7 of the memory bank B1 are read and combined and transmitted. Since the same contents are written to the same addresses in the memory banks B0 and B1 at the time of writing, the contents obtained by combining the DIMM addresses 0 to 3 of the memory bank B0 and the DIMM addresses 4 to 7 of the memory bank B1 are combined into the memory bank B0. The same contents as the DIMM addresses 0 to 7 and the DIMM addresses 0 to 7 of the memory bank B1.

 メモリバンクB0のDIMMアドレス0~3からの読み出し結果やメモリバンクB1のDIMMアドレス4~7からの読み出し結果にエラーが発生した場合には、他方のメモリバンク、すなわちメモリバンクB1のDIMMアドレス0~3、メモリバンクB0のDIMMアドレス4~7を読み出して用いる。図1では、メモリバンクB0のDIMMアドレス0~3とメモリバンクB1のDIMMアドレス4~7の双方がエラーした場合を例示しているが、メモリバンクB0のDIMMアドレス0~3とメモリバンクB1のDIMMアドレス4~7のいずれか一方がエラーであった場合には、エラー分についてのみ他方のメモリバンクから読み出せばよい。 If an error occurs in the result of reading from DIMM addresses 0 to 3 of memory bank B0 or the result of reading from DIMM addresses 4 to 7 of memory bank B1, the other memory bank, that is, DIMM addresses 0 to 3. Read and use DIMM addresses 4-7 of memory bank B0. FIG. 1 illustrates a case where both of the DIMM addresses 0 to 3 of the memory bank B0 and the DIMM addresses 4 to 7 of the memory bank B1 are in error, but the DIMM addresses 0 to 3 of the memory bank B0 and the memory addresses of the memory bank B1 If any one of the DIMM addresses 4 to 7 is an error, only the error may be read from the other memory bank.

 このように、メモリバンクB0,B1から異なるアドレスのデータを読み出して結合することで、読み出し時の伝送速度を128Byte/サイクルとすることができる。 Thus, by reading and combining data at different addresses from the memory banks B0 and B1, the transmission speed at the time of reading can be set to 128 bytes / cycle.

 図2は、本実施例にかかるコンピュータ装置の概要構成を示す概要構成図である。図2に示したコンピュータ装置1は、システム制御装置(SC:System Controller )13、に演算処理装置(CPU:Central Processing Unit)11、メモリ制御装置(MAC:Memory Access controller )12、インタフェース装置14を接続し、メモリ制御装置12にはさらにメモリバンクB0,B1を接続している。 FIG. 2 is a schematic configuration diagram illustrating a schematic configuration of the computer apparatus according to the present embodiment. The computer apparatus 1 shown in FIG. 2 includes a system controller (SC) 13, an arithmetic processing unit (CPU: Central Processing Unit) 11, a memory control unit (MAC: Memory Access controller) 12, and an interface unit 14. The memory control device 12 is further connected to memory banks B0 and B1.

 演算処理装置11は、各種演算処理を実行する装置である。演算処理装置11が実行する演算処理には、主記憶装置であるメモリバンクB0,B1に対するデータの書き込み、メモリバンクB0,B1からのデータの読み出しを含む。演算処理装置11は、メモリバンクB0,B1に対するメモリアクセスを行なう場合に、物理アドレス(PA)を発行してアクセス先を指定する。 The arithmetic processing unit 11 is a device that executes various arithmetic processes. The arithmetic processing executed by the arithmetic processing unit 11 includes writing data to the memory banks B0 and B1, which are main storage devices, and reading data from the memory banks B0 and B1. The arithmetic processing unit 11 issues a physical address (PA) and designates an access destination when performing memory access to the memory banks B0 and B1.

 インタフェース装置14は、補助記憶装置やネットワーク通信装置など図示しない各種装置との接続を行なう装置である。システム制御装置13は、演算処理装置11、メモリ制御装置12、インタフェース装置14の間を接続するブリッジである。 The interface device 14 is a device for connecting to various devices (not shown) such as an auxiliary storage device and a network communication device. The system control device 13 is a bridge that connects the arithmetic processing device 11, the memory control device 12, and the interface device 14.

 メモリバンクB0は2つのメモリモジュールM01,M02を有し、メモリバンクB1は2つのメモリモジュールM11,M12を有する。メモリモジュールM01,M02,M11,M12は、それぞれDIMMである。 The memory bank B0 has two memory modules M01 and M02, and the memory bank B1 has two memory modules M11 and M12. Each of the memory modules M01, M02, M11, and M12 is a DIMM.

 また、メモリ制御装置12は、その内部にメモリバンクB0,B1に対する書き込みを制御するライト制御部21、メモリバンクB0,B1からの読み出しを制御するリード制御部22を有する。 In addition, the memory control device 12 includes therein a write control unit 21 that controls writing to the memory banks B0 and B1, and a read control unit 22 that controls reading from the memory banks B0 and B1.

 図3は、ライト制御部21の構成を説明する構成図である。図3に示したように、ライト制御部21は、その内部にアドレス変換部21aとエラー検出情報生成部21bを有する。 FIG. 3 is a configuration diagram illustrating the configuration of the write control unit 21. As shown in FIG. 3, the write control unit 21 includes an address conversion unit 21a and an error detection information generation unit 21b therein.

 アドレス変換部21aは、演算処理装置11が発行した物理アドレス(PA)をDIMM内のアドレスであるDAに変換する。この変換において、アドレス変換部21aは、メモリバンクB0用のアドレスとメモリバンクB1用のアドレスをそれぞれ作成する。また物理アドレスPAは64Byte単位でアラインメントされている。 The address conversion unit 21a converts the physical address (PA) issued by the arithmetic processing unit 11 into DA that is an address in the DIMM. In this conversion, the address conversion unit 21a creates an address for the memory bank B0 and an address for the memory bank B1, respectively. The physical address PA is aligned in units of 64 bytes.

 エラー検出情報生成部21bは、演算処理装置11からシステム制御装置13を介して64Byteのデータを受信する。エラー検出情報生成部21bは、この64Byteのデータを16Byteずつ4つに分け、16Byteごとにエラー検出情報であるエラーチェックコード(ECC)を計算する。そして、エラー検出情報生成部21bは、メモリバンクB0とメモリバンクB1のメモリモジュールに、それぞれ(データ16Byte+エラーチェックコード2Byte)×4のデータを送信する。 The error detection information generation unit 21b receives 64 bytes of data from the arithmetic processing unit 11 via the system control unit 13. The error detection information generation unit 21b divides the 64-byte data into four 16-byte data, and calculates an error check code (ECC) that is error detection information every 16 bytes. Then, the error detection information generation unit 21b transmits (data 16 bytes + error check code 2 bytes) × 4 data to the memory modules in the memory bank B0 and the memory bank B1.

 図4は、リード制御部22の構成を説明する構成図である。図4に示したように、リード制御部22は、アドレス変換部22a0,22a1、アドレス選択部22b0,22b1、リリード確認部22c0,22c1、データ選択部22d0,22d1、データ送出部22eを有する。 FIG. 4 is a configuration diagram illustrating the configuration of the read control unit 22. As shown in FIG. 4, the read control unit 22 includes address conversion units 22a0 and 22a1, address selection units 22b0 and 22b1, reread confirmation units 22c0 and 22c1, data selection units 22d0 and 22d1, and a data transmission unit 22e.

 演算処理装置11がリード要求する際に発行する物理アドレスPAは、128Byte単位で整列(アラインメント)されている。リード制御部22は、この128Byteの物理アドレスを前半64Byteと後半64Byteに分けてメモリバンクから読み出す。 The physical address PA issued when the arithmetic processing unit 11 issues a read request is aligned (aligned) in units of 128 bytes. The read control unit 22 reads the physical address of 128 bytes from the memory bank by dividing the physical address into the first half 64 bytes and the second half 64 bytes.

 アドレス変換部22a0は、前半64Byteのアドレス変換を担う処理部であり、物理アドレスの前半64Byte分について、通常読み出し用の通常リードアドレスと、通常読出しの結果が修復不可能なエラーであった場合に使用するリリードアドレスとを求める。ここで、アドレス変換部22a0は、通常リードアドレスとしてメモリバンクB0のアドレスを指定し、リリードアドレスとしてメモリバンクB1のアドレスを指定する。また、アドレス変換部22a0は、物理アドレスPAの第6ビットの値を「0」にしてメモリアドレスDAを計算する。 The address conversion unit 22a0 is a processing unit responsible for address conversion of the first half 64 bytes. When the physical read address for the first half 64 bytes of the physical address and the result of the normal read are unrecoverable errors Find the reread address to be used. Here, the address conversion unit 22a0 designates the address of the memory bank B0 as the normal read address, and designates the address of the memory bank B1 as the reread address. The address conversion unit 22a0 calculates the memory address DA by setting the value of the sixth bit of the physical address PA to “0”.

 アドレス変換部22a1は、後半64Byteのアドレス変換を担う処理部であり、物理アドレスの後半64Byte分について、通常読み出し用の通常リードアドレスと、通常読出しの結果が修復不可能なエラーであった場合に使用するリリードアドレスとを求める。ここで、アドレス変換部22a1は、通常リードアドレスとしてメモリバンクB1のアドレスを指定し、リリードアドレスとしてメモリバンクB0のアドレスを指定する。また、アドレス変換部22a1は、物理アドレスPAの第6ビットの値を「1」にしてメモリアドレスDAを計算する。 The address conversion unit 22a1 is a processing unit responsible for address conversion of the second half 64 bytes. When the second half 64 bytes of the physical address are a normal read address for normal reading and the result of the normal reading is an unrecoverable error. Find the reread address to be used. Here, the address conversion unit 22a1 designates the address of the memory bank B1 as the normal read address, and designates the address of the memory bank B0 as the reread address. Further, the address conversion unit 22a1 calculates the memory address DA by setting the value of the sixth bit of the physical address PA to “1”.

 アドレス選択部22b0は、メモリバンクB0からのリードを行なう処理部である。アドレス選択部22b0は、まず、アドレス変換部22a0,22a1からメモリアドレスDAが送られてきた時に、アドレス変換部22a0から送られてきた通常リードアトレスを選択してメモリバンクB0のメモリモジュールからリードを行なう。その後、リリード確認部22c1からリリード要求があった時は、リリードアドレスを選択してメモリバンクB0のメモリモジュールから再びリードする。 The address selection unit 22b0 is a processing unit that reads from the memory bank B0. First, when the memory address DA is sent from the address conversion units 22a0 and 22a1, the address selection unit 22b0 selects the normal read address sent from the address conversion unit 22a0 and reads from the memory module in the memory bank B0. . Thereafter, when there is a reread request from the reread confirmation unit 22c1, the reread address is selected and read again from the memory module in the memory bank B0.

 アドレス選択部22b1は、メモリバンクB1からのリードを行なう処理部である。アドレス選択部22b1は、まず、アドレス変換部22a0,22a1からメモリアドレスDAが送られてきた時に、アドレス変換部22a1から送られてきた通常リードアトレスを選択してメモリバンクB1のメモリモジュールからリードを行なう。その後、リリード確認部22c0からリリード要求があった時は、リリードアドレスを選択してメモリバンクB0のメモリモジュールから再びリードする。 The address selection unit 22b1 is a processing unit that reads from the memory bank B1. First, when the memory address DA is sent from the address conversion units 22a0 and 22a1, the address selection unit 22b1 selects the normal read address sent from the address conversion unit 22a1 and reads from the memory module in the memory bank B1. . Thereafter, when there is a reread request from the reread confirmation unit 22c0, the reread address is selected and read again from the memory module in the memory bank B0.

 リード確認部22c0は、前半64Byteの通常リードの結果に基づいて再読み込みの必要性を判断し、再読み込みが必要な場合にはアドレス選択部22b1にリリード要求を行なう再読み込み判断部である。メモリモジュールからは、データとエラーチェックコードのセット(データ16Byte+エラーチェックコード2Byte)が4回出力される。リリード確認部22c0は、通常リードデータに対して各エラーチェックコードをチェックし、4つのうち1つでも修正不可能なエラー(UE: uncorrectable error)があれば、再読み込みが必要であると判断する。 The read confirmation unit 22c0 is a reread determination unit that determines the necessity of rereading based on the result of the normal read of the first 64 bytes, and makes a reread request to the address selection unit 22b1 when rereading is necessary. From the memory module, a set of data and an error check code (data 16 bytes + error check code 2 bytes) is output four times. The reread confirmation unit 22c0 checks each error check code against the normal read data, and determines that rereading is necessary if there is an uncorrectable error (UE) in any one of the four. .

 リード確認部22c1は、後半64Byteの通常リードの結果に基づいて再読み込みの必要性を判断し、再読み込みが必要な場合にはアドレス選択部22b0にリリード要求を行なう再読み込み判断部である。メモリモジュールからは、データとエラーチェックコードのセット(データ16Byte+エラーチェックコード2Byte)が4回出力される。リリード確認部22c1は、通常リードデータに対して各エラーチェックコードをチェックし、4つのうち1つでも修正不可能なエラー(UE)があれば、再読み込みが必要であると判断する。 The read confirmation unit 22c1 is a reread determination unit that determines the necessity of rereading based on the result of the normal read of the second half 64 bytes and makes a reread request to the address selection unit 22b0 when rereading is necessary. From the memory module, a set of data and an error check code (data 16 bytes + error check code 2 bytes) is output four times. The reread confirmation unit 22c1 checks each error check code with respect to the normal read data, and determines that rereading is necessary if any one of the four errors (UE) cannot be corrected.

 データ選択部22d0は、前半64Byteの通常時リードデータのECCをチェックして、エラー無しまたは修復可能なエラー(CE: correctable error)の場合は、通常時のリードデータを選択する。そして、エラー無しの場合はそのまま、CEであればデータを訂正してデータ送出部22eに送る。 The data selection unit 22d0 checks the ECC of normal read data of 64 bytes in the first half, and if there is no error or a correctable error (CE), selects the normal read data. If there is no error, the data is corrected if it is CE, and the data is corrected and sent to the data sending unit 22e.

 一方、通常時のリードデータに修復不可能なエラーが存在する場合、データ選択部22d0は、メモリバンクB1からリリードされたデータのエラーチェックコードをチェックする。このチェックの結果、リリードデータがエラー無しまたはCEの場合はリリードされたデータを選択する。そして、エラー無しの場合はそのまま、CEであればデータを訂正してデータ送出部22eに送る。また、リリードされたデータもUEであれば、「Marked UE」をデータ送出部22eに送る。 On the other hand, when there is an unrecoverable error in the normal read data, the data selection unit 22d0 checks the error check code of the data reread from the memory bank B1. As a result of this check, if the reread data is no error or CE, the reread data is selected. If there is no error, the data is corrected if it is CE, and the data is corrected and sent to the data sending unit 22e. If the reread data is also a UE, “Marked UE” is sent to the data sending unit 22e.

 データ選択部22d1は、後半64Byteの通常時リードデータのECCをチェックして、エラー無しまたは修復可能なエラー(CE: correctable error)の場合は、通常時のリードデータを選択する。そして、エラー無しの場合はそのまま、CEであればデータを訂正してデータ送出部22eに送る。 The data selection unit 22d1 checks the ECC of the normal read data of the latter half 64 bytes, and selects normal read data if there is no error or a correctable error (CE). If there is no error, the data is corrected if it is CE, and the data is corrected and sent to the data sending unit 22e.

 一方、通常時のリードデータに修復不可能なエラーが存在する場合、データ選択部22d1は、メモリバンクB0からリリードされたデータのエラーチェックコードをチェックする。このチェックの結果、リリードデータがエラー無しまたはCEの場合はリリードされたデータを選択する。そして、エラー無しの場合はそのまま、CEであればデータを訂正してデータ送出部22eに送る。また、リリードされたデータもUEであれば、「Marked UE」をデータ送出部22eに送る。 On the other hand, if there is an unrecoverable error in the normal read data, the data selection unit 22d1 checks the error check code of the data reread from the memory bank B0. As a result of this check, if the reread data is no error or CE, the reread data is selected. If there is no error, the data is corrected if it is CE, and the data is corrected and sent to the data sending unit 22e. If the reread data is also a UE, “Marked UE” is sent to the data sending unit 22e.

 データ送出部22eは、データ選択部22d0から送られてきた前半64Byteのデータに、データ選択部22d1から送られてきた後半64Byteのデータを結合し、128Byteのデータとしてシステム制御装置13に出力する。 The data transmission unit 22e combines the data of the first half 64 bytes sent from the data selection unit 22d1 with the data of the first half 64 bytes sent from the data selection unit 22d0, and outputs the data to the system controller 13 as 128 bytes data.

 このように、指定された128Byteのデータを前半と後半に分け、それぞれを異なるメモリバンクからそれぞれ読み出して結合することで、128Byteで読み出しを行なうことができる。 As described above, the designated 128-byte data is divided into the first half and the second half, and the data is read out from different memory banks and combined, whereby the data can be read out in 128 bytes.

 次に、図5~図15を参照し、従来のメモリ制御における非ミラーモードおよびミラーモードの動作と比較してメモリ制御装置12の動作を説明する。 Next, the operation of the memory control device 12 will be described with reference to FIGS. 5 to 15 in comparison with the non-mirror mode operation and the mirror mode operation in the conventional memory control.

 図5は、従来のメモリ制御装置(MAC)基本動作を説明する説明図である。物理アドレス(PA)は、演算処理装置がメモリにアクセスする際にライト/リードする場所を指示するもので1つの番地あたり1Byteである。DIMMアドレス(DA)は、DIMMのアドレス線に対応する。そして、メモリバンクB0,B1のデータ幅が16Byteなので、DAの1番地がPAの16Byte分となる。そして、バースト長が4であるので、1つのメモリバンクの1サイクルあたりの転送量は、16×4=64Byteである。 FIG. 5 is an explanatory diagram for explaining a basic operation of a conventional memory control device (MAC). The physical address (PA) indicates a place to write / read when the arithmetic processing unit accesses the memory, and is 1 byte per address. The DIMM address (DA) corresponds to the address line of the DIMM. Since the data widths of the memory banks B0 and B1 are 16 bytes, the address of DA is 16 bytes of PA. Since the burst length is 4, the transfer amount per cycle of one memory bank is 16 × 4 = 64 bytes.

 システム制御装置からメモリ制御装置に、データ書き込み先の物理アドレスとデータの内容が送られてくるとメモリ制御装置は物理アドレスをDIMMアドレスに変換し、メモリ制御装置に接続されているDIMMの該当DIMMアドレスにデータを書き込む。1つのメモリ制御装置には2つのメモリバンクB0,B1が接続され、メモリバンクB0,B1は各々DIMMが2枚接続されている。 When the physical address of the data write destination and the contents of the data are sent from the system controller to the memory controller, the memory controller converts the physical address into a DIMM address, and the corresponding DIMM of the DIMM connected to the memory controller Write data to address. Two memory banks B0 and B1 are connected to one memory control device, and two DIMMs are connected to each of the memory banks B0 and B1.

 2つのメモリバンクB0,B1はそれぞれ独立して動作しており、同時にそれぞれの接続しているDIMMにライトしたり、あるいはリードしたり、といった動作をすることができる。DIMMにライト/リードするデータには、データ部16Byte+ECC部2Byteの誤り訂正符合を用いており、1Bitの誤りを訂正、2Bitの誤りを検出できる。 The two memory banks B0 and B1 operate independently of each other, and can simultaneously perform operations such as writing to and reading from each connected DIMM. The data to be written to / read from the DIMM uses the error correction code of the data part 16 bytes + ECC part 2 bytes, and can correct a 1-bit error and detect a 2-bit error.

 メモリ制御装置の動作モードには、既に述べたようにミラーモードと非ミラーモードがある。非ミラーモードは容量、速度優先のモードである。図6は、従来の非ミラーモードの動作を説明する説明図である。 The operation mode of the memory control device includes the mirror mode and the non-mirror mode as described above. The non-mirror mode is a capacity and speed priority mode. FIG. 6 is an explanatory diagram for explaining the operation in the conventional non-mirror mode.

 図6に示したように、非ミラーモードでは、2つのメモリバンクB0,B1に異なった物理アドレスを割り当てて、ライト/リードの際に2つのメモリバンクB0,B1にアクセスすることにより、メモリバンクB0,B1の幅の2倍のスループットを得る。 As shown in FIG. 6, in the non-mirror mode, by assigning different physical addresses to the two memory banks B0 and B1, and accessing the two memory banks B0 and B1 at the time of writing / reading, the memory bank A throughput twice as large as B0 and B1 is obtained.

 具体的には、アドレスの割り付けでは、メモリバンクB0とメモリバンクB1とで64Byteずつ交互に違う物理アドレスを割り当てる。そして、ライト時には、システム制御装置からのデータをメモリバンクB0,B1に振り分ける。メモリバンクB0,B1を同時に並列して動作させることにより、1サイクルあたりのシステム制御装置-メモリ制御装置間のデータ転送量は64×2=128Byteとなる。同じくリード時には、メモリバンクB0,B1を同時に並列して動作させて、別個のデータを取り出すことにより、1サイクルあたりのシステム制御装置-メモリ制御装置間のデータ転送量は64×2=128Byteとなる。 Specifically, in address allocation, different physical addresses are allocated alternately by 64 bytes for memory bank B0 and memory bank B1. At the time of writing, data from the system control device is distributed to the memory banks B0 and B1. By operating the memory banks B0 and B1 simultaneously in parallel, the data transfer amount between the system control device and the memory control device per cycle is 64 × 2 = 128 bytes. Similarly, at the time of reading, the memory banks B0 and B1 are simultaneously operated in parallel to extract separate data, so that the data transfer amount between the system controller and the memory controller per cycle is 64 × 2 = 128 bytes. .

 図6に示した例では、メモリバンクB0のDA0~3にPA0~63を割り付け、メモリバンクB1のDA0~3にPA64~127を割り付けている。また、メモリバンクB0のDA4~7にPA128~191を割り付け、メモリバンクB1のDA4~7にPA192~255を割り付けている。 In the example shown in FIG. 6, PA0 to 63 are assigned to DA0 to DA3 of memory bank B0, and PA64 to 127 are assigned to DA0 to 3 of memory bank B1. Further, PA128 to 191 are assigned to DA4 to 7 of memory bank B0, and PA192 to 255 are assigned to DA4 to 7 of memory bank B1.

 そのため、システム制御装置から物理アドレスPA0~127を指定したライト要求がきた場合には、PA0~63をメモリバンクB0のDA0~3に書き込み、PA64~127をメモリバンクB1のDA0~3に書き込む。そして、システム制御装置から物理アドレスPA0~127を指定したリード要求がきた場合には、PA0~63をメモリバンクB0のDA0~3から読み出し、PA64~127をメモリバンクB1のDA0~3から読み出す。 Therefore, when a write request specifying physical addresses PA0 to 127 is received from the system controller, PA0 to 63 are written to DA0 to 3 of memory bank B0, and PA64 to 127 are written to DA0 to 3 of memory bank B1. When a read request specifying physical addresses PA0 to 127 is received from the system controller, PA0 to 63 are read from DA0 to DA3 of memory bank B0, and PA64 to 127 are read from DA0 to DA3 of memory bank B1.

 一方、ミラーモードは容量、速度を犠牲にして、その代わりにデータの信頼性を高めたモードである。図7は、従来のミラーモードの動作を説明する説明図である。 On the other hand, the mirror mode is a mode in which the reliability of data is improved instead at the expense of capacity and speed. FIG. 7 is an explanatory diagram for explaining the operation in the conventional mirror mode.

 図7に示したように、ミラーモードでは、2つのメモリバンクB0,B1に同じ物理アドレスを割り当て、ライト時には同じデータを二重に書き込む。リード時には2つのメモリバンクB0,B1から同時に同一物理アドレスのデータを読み出して、ECCチェック、データコンペアを行なう。このECCチェックとデータコンベアによって、どちらか1つのメモリバンクで訂正不能エラーが起きたとしても、データが損なわれないようにしている。 As shown in FIG. 7, in the mirror mode, the same physical address is assigned to the two memory banks B0 and B1, and the same data is written twice at the time of writing. At the time of reading, data of the same physical address is simultaneously read from the two memory banks B0 and B1, and ECC check and data compare are performed. By this ECC check and the data conveyor, even if an uncorrectable error occurs in one of the memory banks, the data is not damaged.

 具体的には、アドレスの割り付けでは、メモリバンクB0とメモリバンクB1とで同じ物理アドレスを割り当てる。そして、ライト時には、システム制御装置からのデータをメモリバンクB0,B1に二重に書き込む。そのため、1サイクルあたりのシステム制御装置-メモリ制御装置間のデータ転送量は、64Byteとなる。同じくリード時には、メモリバンクB0,B1から同時に同一物理アドレスのデータを読み出し、ECCチェック、データコンペアにより送出するデータを決定してシステム制御装置に送る。そのため、1サイクルあたりのシステム制御装置-メモリ制御装置間のデータ転送量は、64Byteとなる。 Specifically, in the address assignment, the same physical address is assigned to the memory bank B0 and the memory bank B1. At the time of writing, the data from the system control device is written twice in the memory banks B0 and B1. Therefore, the data transfer amount between the system control device and the memory control device per cycle is 64 bytes. Similarly, at the time of reading, data of the same physical address is simultaneously read from the memory banks B0 and B1, data to be transmitted is determined by ECC check and data compare, and sent to the system controller. Therefore, the data transfer amount between the system control device and the memory control device per cycle is 64 bytes.

 図7に示した例では、メモリバンクB0とメモリバンクB1のDA0~3にPA0~63を割り付け、メモリバンクB0とメモリバンクB1のDA4~7にPA64~127を割り付けている。 In the example shown in FIG. 7, PA0 to 63 are assigned to DA0 to 3 of memory bank B0 and memory bank B1, and PA64 to 127 are assigned to DA4 to 7 of memory bank B0 and memory bank B1.

 そのため、システム制御装置から物理アドレスPA0~63を指定したライト要求がきた場合には、PA0~63をメモリバンクB0のDA0~3とメモリバンクB1のDA0~3の両方に書き込む。そして、システム制御装置から物理アドレスPA0~63を指定したリード要求がきた場合には、PA0~63をメモリバンクB0のDA0~3とメモリバンクB1のDA0~3の双方からリードし、ECCチェック、データコンペアを行なうことで信頼性を向上する。 Therefore, when a write request specifying physical addresses PA0 to 63 is received from the system controller, PA0 to 63 are written to both DA0 to DA3 of memory bank B0 and DA0 to DA3 of memory bank B1. When a read request specifying physical addresses PA0 to 63 is received from the system controller, PA0 to 63 are read from both DA0 to DA3 of memory bank B0 and DA0 to DA3 of memory bank B1, and ECC check, Reliability is improved by performing data comparison.

 図8は、従来のミラーモードにおける信頼性向上動作について説明する説明図である。図8に示したように、メモリバンクB0から読み出したデータとメモリバンク1から読み出したデータがともにエラーなし(ECCチェックOK)であり、データの比較結果が一致した(データコンベア○)ならば得られたデータは正常であるとする。 FIG. 8 is an explanatory diagram for explaining the operation of improving the reliability in the conventional mirror mode. As shown in FIG. 8, if the data read from the memory bank B0 and the data read from the memory bank 1 are both error-free (ECC check OK) and the data comparison results match (data conveyor ○), the data can be obtained. It is assumed that the obtained data is normal.

 また、メモリバンクB0から読み出したデータとメモリバンク1から読み出したデータの一方がエラーなし(ECCチェックOK)であり、他方が修正可能なエラー(CE)である場合、エラーを修正した上でデータを比較し、データの比較結果が一致した(データコンベア○)ならば得られたデータは正常であるとする。 If one of the data read from the memory bank B0 and the data read from the memory bank 1 is error-free (ECC check OK) and the other is a correctable error (CE), the error is corrected before the data If the data comparison results match (data conveyor ○), the obtained data is assumed to be normal.

 同様に、メモリバンクB0から読み出したデータとメモリバンク1から読み出したデータがともに修正可能なエラー(CE)である場合、双方のエラーを修正した上でデータを比較し、データの比較結果が一致した(データコンベア○)ならば得られたデータは正常であるとする。 Similarly, if both the data read from the memory bank B0 and the data read from the memory bank 1 are correctable errors (CE), the two data are compared after correcting both errors, and the data comparison results match. If (data conveyor ○), the obtained data is assumed to be normal.

 そして、メモリバンクB0から読み出したデータとメモリバンク1から読み出したデータの一方が修正不可能なエラー(ECCチェックUE)であり、他方がエラーなし(ECCチェックOK)もしくは修正可能なエラー(CE)である場合、データコンベアは行なわず、エラー無しで得られたデータ(ECCチェックOK)もしくはエラーを修正して得られたデータを正常であるとする。 One of the data read from the memory bank B0 and the data read from the memory bank 1 is an uncorrectable error (ECC check UE), and the other is no error (ECC check OK) or correctable error (CE). In this case, the data conveyor is not performed, and it is assumed that the data obtained without error (ECC check OK) or the data obtained by correcting the error is normal.

 また、メモリバンクB0から読み出したデータとメモリバンク1から読み出したデータがともに修正不可能なエラー(ECCチェックUE)であるならば、データコンベアは行なわず、リードで正常なデータが得られなかったことを示す「Marked UE」を出力する。 If both the data read from the memory bank B0 and the data read from the memory bank 1 are uncorrectable errors (ECC check UE), the data conveyor is not performed and normal data cannot be obtained by reading. “Marked UE” is output.

 そして、メモリバンクB0から読み出したデータとメモリバンク1から読み出したデータがともにエラーなし(ECCチェックOK)であるにも関わらず、データの比較結果が一致しない(データコンベア×)場合にも「Marked UE」を出力する。 Even if the data read from the memory bank B0 and the data read from the memory bank 1 are both error-free (ECC check OK), the comparison result of the data does not match (data conveyor ×). "UE" is output.

 また、メモリバンクB0から読み出したデータとメモリバンク1から読み出したデータの一方が修正可能なエラー(CE)であり、他方がエラーなし(ECCチェックOK)もしくは修正可能なエラー(CE)である場合、エラーを修正した上でデータを比較し、データの比較結果が一致しなければ(データコンベア×)「Marked UE」を出力する。 Also, one of the data read from the memory bank B0 and the data read from the memory bank 1 is a correctable error (CE), and the other is no error (ECC check OK) or a correctable error (CE). Then, after correcting the error, the data are compared, and if the data comparison results do not match (data conveyor ×), “Marked UE” is output.

 さて、この従来のミラーモードにおける信頼性向上動作でデータコンペアエラーとなる状況として、もっとも起こりやすいと考えられるのは、どちらかのメモリバンクでデータが3Bit誤って、別のデータの1Bit誤りに化ける場合である。しかし、データが3Bit誤ったとしても、必ず別のデータの1Bit誤りになるわけではなく、しかもデータが3Bit誤りとなる確率は極めて小さい。 As a situation where a data compare error is caused by the reliability improvement operation in the conventional mirror mode, the most likely situation is that the data is erroneously 3 bits in either memory bank and becomes 1 bit error of another data. Is the case. However, even if the data is incorrect by 3 bits, it does not always result in a 1-bit error of another data, and the probability that the data becomes a 3-bit error is extremely small.

 そこで、本実施例にかかるメモリ制御方法では、ライト時にはメモリバンクB0,B1に同一物理アドレスのデータを書き込み、リード時にはメモリバンクB0,B1でそれぞれ違う物理アドレスのデータを読むようにする。そして、リードしたデータが修正不可能なエラーだった場合には、もう一方のメモリバンクのどこかに同一物理アドレスのデータが書き込まれているので、それをもう一度読むという処理を信頼性向上動作として行なう。こうすることによって、どちらか1つのメモリバンクから読み出したデータが修正不可能なエラーだったとしてもデータが損なわれず、正常なデータを得ることができる。また、修正不可能なエラーが起きなければリード時の転送速度は非ミラーモードと同じとなる。 Therefore, in the memory control method according to the present embodiment, data of the same physical address is written to the memory banks B0 and B1 at the time of writing, and data of physical addresses different from each other are read at the memory banks B0 and B1 at the time of reading. If the read data is an error that cannot be corrected, the data of the same physical address is written somewhere in the other memory bank. Do. By doing so, even if the data read from one of the memory banks is an error that cannot be corrected, the data is not lost and normal data can be obtained. If an uncorrectable error does not occur, the transfer speed at the time of reading is the same as in the non-mirror mode.

 図9は、本実施例にかかるメモリ制御の動作を説明する説明図である。図9に示した例では、まず、アドレスの割り付けにおいて、DIMMアドレスの前半部分は、非ミラーモード時と同様にメモリバンクB0とメモリバンクB1とで64Byteずつ交互に違う物理アドレスを割り当てる。そして、DIMMアドレスの後半部分は、対になるメモリバンクの前半部分と同一の物理アドレスを割り当てる。 FIG. 9 is an explanatory diagram for explaining the memory control operation according to the present embodiment. In the example shown in FIG. 9, first, in address allocation, the first half of the DIMM address is assigned different physical addresses by 64 bytes alternately in the memory bank B0 and the memory bank B1 as in the non-mirror mode. The second half of the DIMM address is assigned the same physical address as the first half of the paired memory bank.

 図9はメモリバンク1つあたりの容量を1KByteとした場合の例であり、DA=0~31が前半部分、DA=32~63が後半部分である。 FIG. 9 shows an example in which the capacity per memory bank is 1 KByte, where DA = 0 to 31 is the first half and DA = 32 to 63 is the second half.

 そして、前半部分では、非ミラーモードと同様に、メモリバンクB0のDA0~3にPA0~63を割り付け、メモリバンクB1のDA0~3にPA64~127を割り付ける。また、メモリバンクB0のDA4~7にPA128~191を割り付け、メモリバンクB1のDA4~7にPA192~255を割り付けている。この割付を前半終了DA=31まで繰り返す。 And, in the first half, as in the non-mirror mode, PA0 to 63 are allocated to DA0 to DA3 of memory bank B0, and PA64 to 127 are allocated to DA0 to 3 of memory bank B1. Further, PA128 to 191 are assigned to DA4 to 7 of memory bank B0, and PA192 to 255 are assigned to DA4 to 7 of memory bank B1. This allocation is repeated until the first half end DA = 31.

 そして、DA=32~63の後半部分では、メモリバンクB0にはメモリバンクB1の前半と同一の割り当てを行ない、メモリバンクB1にはメモリバンクB0の前半と同一の割り当てを行なう。 In the second half of DA = 32 to 63, the same allocation as that of the first half of the memory bank B1 is performed for the memory bank B0, and the same allocation as that of the first half of the memory bank B0 is performed for the memory bank B1.

 ライト時には、システム制御装置からデータを2つのメモリバンクB0,B1に二重に書き込む。ただし、データを書き込むDAはメモリバンクB0とメモリバンクB1とで異なる。例えば、システム制御装置から物理アドレスPA=0~63に対するライト要求があった場合、メモリバンクB0のDA=0と、メモリバンクB1のDA=32に対してライト処理を行なう。従って、1サイクルあたりのシステム制御装置-メモリ制御装置間のデータ転送量は、従来のミラーモードと同じ64Byteとなる。 At the time of writing, the data from the system control device is written twice in the two memory banks B0 and B1. However, the DA for writing data is different between the memory bank B0 and the memory bank B1. For example, when there is a write request for the physical address PA = 0 to 63 from the system controller, write processing is performed on DA = 0 in the memory bank B0 and DA = 32 in the memory bank B1. Therefore, the data transfer amount between the system controller and the memory controller per cycle is 64 bytes, which is the same as in the conventional mirror mode.

 リード時には、従来の非ミラーモードと同様に、物理アドレスPAを+64するごとリードするメモリバンクを替えて、メモリバンクB0,B1を同時に並列して動作させて、DIMMアドレスの前半部分からそれぞれ異なるPAのデータを取り出す。ただし、ECCチェックにて修正不可能なエラー(UE)を見つけた場合は、もう一方のメモリバンクのDIMMアドレス後半部分に同一PAのデータが記録してあるので、それをリードする。 At the time of reading, as in the conventional non-mirror mode, the memory bank to be read is changed every time the physical address PA is +64, and the memory banks B0 and B1 are operated in parallel at the same time. Retrieve the data. However, when an uncorrectable error (UE) is found by the ECC check, the same PA data is recorded in the latter half of the DIMM address of the other memory bank, and is read.

 図10は、本実施例にかかるメモリ制御における信頼性向上動作について説明する説明図である。図10に示したように、一番目のリード(通常リード)におけるECCチェック結果がエラー無し(OK)である場合には、リリードは行なわず、得られたデータをそのまま正常データとする。同様に、一番目のリード(通常リード)におけるECCチェック結果が修正可能なエラー(CE)である場合にもリリードは行なわず、得られたデータを修正して正常データとする。 FIG. 10 is an explanatory diagram for explaining the reliability improving operation in the memory control according to the present embodiment. As shown in FIG. 10, when the ECC check result in the first read (normal read) indicates no error (OK), reread is not performed and the obtained data is used as normal data as it is. Similarly, when the ECC check result in the first read (normal read) is a correctable error (CE), reread is not performed and the obtained data is corrected to normal data.

 一方、一番目のリードのECCチェック結果が修正不可能なエラー(UE)である場合、もう一度リードを実行する(リリード)。そして、リリードのECCチェック結果がエラー無し(OK)である場合には、リリードで得られたデータを正常データとする。同様に、リリードにおけるECCチェック結果が修正可能なエラー(CE)である場合にもリリードで得られたデータを修正して正常データとする。しかし、リリードも修正不可能なエラーとなった場合には「Marked UE」を出力する。 On the other hand, if the ECC check result of the first lead is an uncorrectable error (UE), the lead is executed again (reread). When the reread ECC check result indicates no error (OK), the data obtained by the reread is set as normal data. Similarly, even when the ECC check result in reread is a correctable error (CE), the data obtained by reread is corrected to normal data. However, if the reread error also cannot be corrected, “Marked UE” is output.

 従って、本実施例にかかるメモリ制御では、DA前半部のリードで修正不可能なエラー(UE)が起こらなければ、システム制御装置-メモリ制御装置の1サイクルのデータ転送量は従来の非ミラーモード時と同じく128Byteとなる。 Therefore, in the memory control according to the present embodiment, if an uncorrectable error (UE) does not occur in the read of the first half of the DA, the data transfer amount of one cycle between the system controller and the memory controller is the conventional non-mirror mode. It will be 128 bytes as well as the hour.

 図11は、図9に示したアドレス割り付けを行なう場合のアドレス変換について説明する説明図である。図9に示したように、メモリバンク1つあたりの容量が1KByteであり、DA=0~31を前半部分、DA=32~63を後半部分とする場合、物理アドレスPAからメモリバンクB0のメモリアドレスDAへの変換では、PAの4ビット目の値がDAの0ビット目の値になり、PAの5ビット目の値がDAの1ビット目の値になる。そして、PAの6ビット目の値をDAの5ビット目の値とし、PAの7~9ビット目の値をそれぞれDAの2~4ビット目の値とする。 FIG. 11 is an explanatory diagram for explaining the address conversion when the address allocation shown in FIG. 9 is performed. As shown in FIG. 9, when the capacity per memory bank is 1 Kbyte, DA = 0 to 31 is the first half, and DA = 32 to 63 is the second half, the memory of the memory bank B0 from the physical address PA In the conversion to the address DA, the value of the fourth bit of PA becomes the value of the 0th bit of DA, and the value of the fifth bit of PA becomes the value of the first bit of DA. The 6th bit value of PA is the 5th bit value of DA, and the 7th to 9th bit values of PA are the 2nd to 4th bit values of DA, respectively.

 一方、物理アドレスPAからメモリバンクB1のメモリアドレスDAへの変換では、PAの4ビット目の値がDAの0ビット目の値になり、PAの5ビット目の値がDAの1ビット目の値になる。そして、PAの6ビット目の値を反転してDAの5ビット目の値とし、PAの7~9ビット目の値をそれぞれDAの2~4ビット目の値とする。 On the other hand, in the conversion from the physical address PA to the memory address DA of the memory bank B1, the value of the fourth bit of PA becomes the value of the 0th bit of DA, and the value of the fifth bit of PA becomes the first bit of DA. Value. Then, the 6th bit value of PA is inverted to the 5th bit value of DA, and the 7th to 9th bit values of PA are set to the 2nd to 4th bit values of DA, respectively.

 なお、アドレスの割り付けとPAからDAへの変換は、適宜変形して実施することができる。図12は、アドレス割り付けの第1の変形例であり、図13は、図12に示したアドレス割り付けを行なう場合のアドレス変換について説明する説明図である。 Note that the address assignment and the conversion from PA to DA can be implemented with appropriate modifications. FIG. 12 shows a first modification of address allocation, and FIG. 13 is an explanatory diagram for explaining address conversion when the address allocation shown in FIG. 12 is performed.

 図12に示したアドレス割り付けでは、メモリバンクB0については、ミラーモードと同様である。すなわち、DA0~3にPA0~63を割り付け、DA4~7にPA64~127を割り付けている。同様に、DA8~11にPA128~191を割り付け、DA12~15にPA192~255を割り付けている。 In the address assignment shown in FIG. 12, the memory bank B0 is the same as the mirror mode. That is, PA0 to 63 are assigned to DA0 to DA3, and PA64 to 127 are assigned to DA4 to DA7. Similarly, PAs 128 to 191 are assigned to DAs 8 to 11, and PAs 192 to 255 are assigned to DAs 12 to 15.

 一方、メモリバンクB1については、DA0~3にPA64~127を割り付け、DA4~7にPA0~63を割り付けている。同様に、DA8~11にPA192~255を割り付け、DA12~15にPA128~191を割り付けている。 On the other hand, for memory bank B1, PAs 64 to 127 are assigned to DA0 to DA3, and PAs 0 to 63 are assigned to DA4 to 7. Similarly, PAs 192 to 255 are assigned to DAs 8 to 11, and PAs 128 to 191 are assigned to DAs 12 to 15.

 この場合のアドレス変換は図13に示したように、物理アドレスPAからメモリバンクB0のメモリアドレスDAへの変換では、PAの4ビット目の値がDAの0ビット目の値になり、PAの5ビット目の値がDAの1ビット目の値になる。同様に、PAの6~9ビット目の値をそれぞれDAの2~5ビット目の値とする。 In the address conversion in this case, as shown in FIG. 13, in the conversion from the physical address PA to the memory address DA of the memory bank B0, the value of the fourth bit of PA becomes the value of the 0th bit of DA, and The value of the fifth bit becomes the value of the first bit of DA. Similarly, the 6th to 9th bit values of PA are the 2nd to 5th bit values of DA, respectively.

 一方、物理アドレスPAからメモリバンクB1のメモリアドレスDAへの変換では、PAの4ビット目の値がDAの0ビット目の値になり、PAの5ビット目の値がDAの1ビット目の値になる。そして、PAの6ビット目の値を反転してDAの2ビット目の値とし、PAの7~9ビット目の値をそれぞれDAの3~5ビット目の値とする。 On the other hand, in the conversion from the physical address PA to the memory address DA of the memory bank B1, the value of the fourth bit of PA becomes the value of the 0th bit of DA, and the value of the fifth bit of PA becomes the first bit of DA. Value. Then, the 6th bit value of PA is inverted to the 2nd bit value of DA, and the 7th to 9th bit values of PA are set to the 3rd to 5th bit values of DA, respectively.

 そしてリード時には、まずメモリバンクB0,B1ともDAが8の倍数の箇所を読み、UEだった場合はもう一方のメモリバンクでDAを+4した箇所を読む。すなわち、まず最初に図12において実線で囲った部分をリードし、修正不可能なエラーだった場合は破線で囲った部分をリードする。その結果、リード時の送出データは図9に示した例と同一となる。 And at the time of reading, first, the memory banks B0 and B1 read a portion where DA is a multiple of 8, and if it is UE, read the portion where DA is +4 in the other memory bank. That is, first, the portion surrounded by the solid line in FIG. 12 is read, and if the error cannot be corrected, the portion surrounded by the broken line is read. As a result, the transmission data at the time of reading is the same as the example shown in FIG.

 図14は、アドレス割り付けの第2の変形例であり、図15は、図14に示したアドレス割り付けを行なう場合のアドレス変換について説明する説明図である。 FIG. 14 is a second modification of address allocation, and FIG. 15 is an explanatory diagram for explaining address conversion when the address allocation shown in FIG. 14 is performed.

 図14に示したアドレス割り付けは、従来のミラーモードと同じであり、メモリバンクB0とメモリバンクB1のDA0~3にPA0~63を割り付け、メモリバンクB0とメモリバンクB1のDA4~7にPA64~127を割り付けている。同様に、メモリバンクB0とメモリバンクB1のDA8~11にPA128~191を割り付け、メモリバンクB0とメモリバンクB1のDA12~15にPA192~255を割り付けている。 The address assignment shown in FIG. 14 is the same as in the conventional mirror mode. PA0 to 63 are assigned to DA0 to DA3 of memory bank B0 and memory bank B1, and PA64 to DA4 to 7 of memory bank B0 and memory bank B1 are assigned. 127 is assigned. Similarly, PA128 to 191 are assigned to DA8 to 11 of memory bank B0 and memory bank B1, and PA192 to 255 are assigned to DA12 to 15 of memory bank B0 and memory bank B1.

 この場合のアドレス変換は図15に示したように、メモリバンクB0とメモリバンクB1とで同一であり、物理アドレスPAの4ビット目の値がDAの0ビット目の値になり、PAの5ビット目の値がDAの1ビット目の値になる。同様に、PAの6~9ビット目の値をそれぞれDAの2~5ビット目の値とする。 As shown in FIG. 15, the address conversion in this case is the same in the memory bank B0 and the memory bank B1, the value of the fourth bit of the physical address PA becomes the value of the 0th bit of DA, and the PA 5 The value of the bit is the value of the first bit of DA. Similarly, the 6th to 9th bit values of PA are the 2nd to 5th bit values of DA, respectively.

 リード時には、PAを+64(DAを+4)するごとにリードするメモリバンクを替える。そして、リード結果がUEだった場合は、もう一方のメモリバンクの同一DAの箇所を読む。すなわち、まず最初に図14において実線で囲った部分をリードし、修正不可能なエラーだった場合は破線で囲った部分をリードする。その結果、リード時の送出データは図9に示した例と同一となる。 When reading, the memory bank to be read is changed every time PA is +64 (DA is +4). If the read result is UE, the same DA location in the other memory bank is read. That is, first, the portion surrounded by the solid line in FIG. 14 is read, and if the error cannot be corrected, the portion surrounded by the broken line is read. As a result, the transmission data at the time of reading is the same as the example shown in FIG.

 次に、リード制御部22の処理動作について説明する。図16は、前半64Byteのデータのリード処理について説明するフローチャートである。図16に示したように、まず、アドレス変換部22a0が128Byteでアラインされた物理アドレスPAから、メモリバンクB0向けアドレス変換(PA→DA変換)を使って通常リード用のDAを求め、メモリバンクB1向けアドレス変換(PA→DA変換)を使ってリリード用のDAを求める。この時、PAの第6ビットを0とする(S101)。 Next, the processing operation of the read control unit 22 will be described. FIG. 16 is a flowchart for explaining data read processing of the first 64 bytes. As shown in FIG. 16, first, the address conversion unit 22a0 obtains the DA for normal reading from the physical address PA aligned in 128 bytes using address conversion for the memory bank B0 (PA → DA conversion). Reread DA is obtained by using address conversion for B1 (PA → DA conversion). At this time, the sixth bit of PA is set to 0 (S101).

 つぎに、アドレス選択部22b0が、通常リード用DAに対してデータをリードし(S102)、リードによって得られた通常リードデータをデータ選択部22d0に送る(S103)。 Next, the address selector 22b0 reads data from the normal read DA (S102), and sends the normal read data obtained by the read to the data selector 22d0 (S103).

 リリード確認部22c0は、通常リードデータのECCをチェックし(S104)、修復不可能なエラーがなければ(S104,UEなし)、そのまま処理を終了する。しかし、修正不可能なエラーがある場合には(S104,UEあり)、アドレス選択部22b1に対してリリード要求を送信する(S105)。 The reread confirmation unit 22c0 checks the ECC of the normal read data (S104), and if there is no unrecoverable error (S104, no UE), the process is terminated as it is. However, if there is an uncorrectable error (S104, with UE), a reread request is transmitted to the address selection unit 22b1 (S105).

 リリード要求を受けたアドレス選択部22b1は、リリード用DAに対してデータをリードし(S106)、リードによって得られたリリードデータをデータ選択部22d0に送って(S107)、処理を終了する。 The address selection unit 22b1 that has received the reread request reads data from the reread DA (S106), sends the reread data obtained by the read to the data selection unit 22d0 (S107), and ends the processing.

 図17は、後半64Byteのデータのリード処理について説明するフローチャートである。図17に示したように、まず、アドレス変換部22a1が128Byteでアラインされた物理アドレスPAから、メモリバンクB1向けアドレス変換(PA→DA変換)を使って通常リード用のDAを求め、メモリバンクB0向けアドレス変換(PA→DA変換)を使ってリリード用のDAを求める。この時、PAの第6ビットを1とする(S201)。 FIG. 17 is a flowchart for explaining the data read process of the second half 64 bytes. As shown in FIG. 17, first, the address conversion unit 22a1 obtains the DA for normal reading from the physical address PA aligned in 128 bytes by using address conversion for the memory bank B1 (PA → DA conversion), and the memory bank Reread DA is obtained by using address conversion for B0 (PA → DA conversion). At this time, the sixth bit of PA is set to 1 (S201).

 つぎに、アドレス選択部22b1が、通常リード用DAに対してデータをリードし(S202)、リードによって得られた通常リードデータをデータ選択部22d1に送る(S203)。 Next, the address selector 22b1 reads data from the normal read DA (S202), and sends the normal read data obtained by the read to the data selector 22d1 (S203).

 リリード確認部22c1は、通常リードデータのECCをチェックし(S204)、修復不可能なエラーがなければ(S204,UEなし)、そのまま処理を終了する。しかし、修正不可能なエラーがある場合には(S204,UEあり)、アドレス選択部22b0に対してリリード要求を送信する(S205)。 The reread confirmation unit 22c1 checks the ECC of the normal read data (S204), and if there is no unrecoverable error (S204, no UE), the process is terminated as it is. However, if there is an uncorrectable error (S204, with UE), a reread request is transmitted to the address selection unit 22b0 (S205).

 リリード要求を受けたアドレス選択部22b0は、リリード用DAに対してデータをリードし(S206)、リードによって得られたリリードデータをデータ選択部22d1に送って(S207)、処理を終了する。 The address selection unit 22b0 that has received the reread request reads data from the reread DA (S206), sends the reread data obtained by the read to the data selection unit 22d1 (S207), and ends the processing.

 図18は、データ選択部22d0,22d1の処理動作を説明するフローチャートである。データ選択部22d0,22d1は、データ16Byteごとにこの処理を行う。データ選択部22d0,22d1は、まず、通常リードデータのECCをチェックする(S301)。その結果、エラー無し(OK)か、エラーがあっても修正可能である場合(S301,OK or CE)、ステップS304に移行する。さらにCEである場合(S304,Yes)にはデータ訂正を行なった(S305)上でデータをデータ送出部22eに送る(S306)。また、CEではなく、エラー無しである場合(S304,No)にはそのままデータをデータ送出部22eに送る(S306)。 FIG. 18 is a flowchart for explaining the processing operation of the data selection units 22d0 and 22d1. The data selectors 22d0 and 22d1 perform this process for each data 16 bytes. The data selection units 22d0 and 22d1 first check the ECC of the normal read data (S301). As a result, if there is no error (OK) or the error can be corrected even if there is an error (S301, OK or CE), the process proceeds to step S304. If it is CE (S304, Yes), the data is corrected (S305), and the data is sent to the data sending unit 22e (S306). If it is not CE and there is no error (S304, No), the data is sent as it is to the data sending unit 22e (S306).

 一方、通常リードデータに修復できないエラーがある場合(S301,UE)、データ選択部22d0,22d1は、リリードデータのECCをチェックする(S302)。その結果、エラー無し(OK)か、エラーがあっても修正可能である場合(S302,OK or CE)、ステップS307に移行する。さらにCEである場合(S307,Yes)にはデータ訂正を行なった(S308)上でデータをデータ送出部22eに送る(S309)。また、CEではなく、エラー無しである場合(S307,No)にはそのままデータをデータ送出部22eに送る(S309)。 On the other hand, when there is an error that cannot be repaired in the normal read data (S301, UE), the data selection units 22d0 and 22d1 check the ECC of the reread data (S302). As a result, if there is no error (OK) or if the error can be corrected (S302, OK or CE), the process proceeds to step S307. If it is CE (S307, Yes), data correction is performed (S308), and then the data is sent to the data sending unit 22e (S309). If it is not CE and there is no error (S307, No), the data is sent as it is to the data sending unit 22e (S309).

 そして、リリードデータにも修復できないエラーがある場合(S303,UE)、データ選択部22d0,22d1は、「Marked UE」をデータ送出部22eに送る(S303)。 If the reread data also has an error that cannot be repaired (S303, UE), the data selection units 22d0 and 22d1 send “Marked UE” to the data transmission unit 22e (S303).

 以上説明してきたように、本実施例にかかるメモリ制御装置では、ライト時にはメモリバンクB0,B1に同一物理アドレスのデータを書き込み、リード時にはメモリバンクB0,B1でそれぞれ違う物理アドレスのデータを読むようにする。そして、リードしたデータが修正不可能なエラーだった場合には、もう一方のメモリバンクのどこかに同一物理アドレスのデータが書き込まれているので、それをもう一度読むという処理を信頼性向上動作として行なう。こうすることによって、どちらか1つのメモリバンクから読み出したデータが修正不可能なエラーだったとしてもデータが損なわれず、正常なデータを得ることができる。また、修正不可能なエラーが起きなければリード時の転送速度は非ミラーモードと同じとなるので、ミラーモードと同等の信頼性を持ち、かつ非ミラーモードと伝送速度が同等のメモリ制御装置およびメモリ制御方法をえることができる。 As described above, in the memory control device according to the present embodiment, the data of the same physical address is written to the memory banks B0 and B1 at the time of writing, and the data of different physical addresses are read at the memory banks B0 and B1 at the time of reading. To. If the read data is an error that cannot be corrected, the data of the same physical address is written somewhere in the other memory bank. Do. By doing so, even if the data read from one of the memory banks is an error that cannot be corrected, the data is not lost and normal data can be obtained. In addition, if the uncorrectable error does not occur, the transfer speed at the time of reading is the same as that in the non-mirror mode, so that the memory control device having the same reliability as the mirror mode and the same transmission speed as the non-mirror mode A memory control method can be obtained.

Claims (8)

 制御装置と複数のメモリモジュールの集合である第1及び第2のメモリバンクにそれぞれ接続されるとともに、前記制御装置から前記第1及び第2のメモリバンクに対するメモリアクセスを制御するメモリ制御装置において、
 前記制御装置から前記第1のメモリバンクに対して読み込みを行う第1の読み込み物理アドレスを、通常の読み込みが行われる場合に前記第1のメモリバンクに属する第1のメモリモジュールの集合に属するいずれかのメモリモジュールを特定する第1の読み込みメモリモジュールアドレスに変換するとともに、再読み込みが発生した場合には前記第1のメモリモジュールと同一のデータを保持し、前記第2のメモリバンクに属する第2のメモリモジュールの集合に属するいずれかのメモリモジュールを特定する第2の読み込みメモリモジュールアドレスに変換する第1の読み込みアドレス変換部と、
 前記制御装置から前記第2のメモリバンクに対して読み込みを行う第2の読み込み物理アドレスを、通常の読み込みが行われる場合に前記第2のメモリモジュールの集合に属するいずれかのメモリモジュールを特定する第3の読み込みメモリモジュールアドレスに変換するとともに、再読み込みが発生した場合には前記第3のメモリモジュールと同一のデータを保持し、前記第1のメモリモジュールの集合に属するいずれかのメモリモジュールを特定する第4の読み込みメモリモジュールアドレスに変換する第2の読み込みアドレス変換部と、
 前記第1のメモリモジュールアドレスと前記第4のメモリモジュールアドレスのうち、第1の再読み込み要求が入力される場合には、前記第4のメモリモジュールアドレスを選択し、又は、前記第1の再読み込み要求が入力されない場合には、前記第1のメモリモジュールアドレスを選択して、前記第1のメモリバンクに出力する第1の読み込みアドレス選択部と、
 前記第2のメモリモジュールアドレスと前記第3のメモリモジュールアドレスのうち、第2の再読み込み要求が入力される場合には、前記第3のメモリモジュールアドレスを選択し、又は、前記第2の再読み込み要求が入力されない場合には、前記第2のメモリモジュールアドレスを選択して、前記第2のメモリバンクに出力する第2の読み込みアドレス選択部を有することを特徴とするメモリ制御装置。
In the memory control device connected to the control device and the first and second memory banks, each of which is a set of a plurality of memory modules, and controlling memory access from the control device to the first and second memory banks,
The first read physical address for reading from the control device to the first memory bank is any of the first memory modules belonging to the first memory bank when normal reading is performed. Is converted to a first read memory module address that identifies the memory module, and when re-reading occurs, the same data as the first memory module is held and the second memory bank belonging to the second memory bank is retained. A first read address conversion unit that converts any of the memory modules belonging to the set of two memory modules into a second read memory module address;
A second read physical address for reading from the control device to the second memory bank is specified, and any memory module belonging to the set of the second memory modules is specified when normal read is performed. The address is converted to a third read memory module address, and when reread occurs, the same data as the third memory module is held, and any one of the memory modules belonging to the set of the first memory modules is stored. A second read address conversion unit for converting to a specified fourth read memory module address;
Of the first memory module address and the fourth memory module address, when a first reload request is input, the fourth memory module address is selected, or the first memory module address is selected. A first read address selection unit that selects the first memory module address and outputs it to the first memory bank if a read request is not input;
Of the second memory module address and the third memory module address, when a second reload request is input, the third memory module address is selected, or the second memory module address is selected. 2. A memory control apparatus comprising: a second read address selection unit that selects the second memory module address and outputs the second memory module address to the second memory bank when a read request is not input.
 前記メモリ制御装置はさらに、
 前記第1の読み込みアドレス選択部が出力した前記第1のメモリモジュールアドレスが特定する前記第1のメモリモジュールの集合に属するいずれかのメモリモジュールが出力する第1の読み込みデータと第1のエラー検出情報に基づき、エラーが発生した前記第1の読み込みデータの再読み込み要求が必要である場合には、前記第2の再読み込み要求を出力する第1の再読み込み判断部と、
 前記第2の読み込みアドレス選択部が出力した前記第2のメモリモジュールアドレスが特定する前記第2のメモリモジュールの集合に属するいずれかのメモリモジュールが出力する第2の読み込みデータと第2のエラー検出情報に基づき、エラーが発生した前記第2の読み込みデータの再読み込み要求が必要である場合には、前記第1の再読み込み要求を出力する第2の再読み込み判断部と、
 前記第1の読み込みデータ、又は、前記第2のメモリモジュールアドレスで特定される前記第2のメモリモジュールの集合に属するいずれかのメモリモジュールが保持する第2の読み込みデータのいずれかを選択して出力する第1の読み込みデータ選択部と、
 前記第3の読み込みデータ、又は、前記第1のメモリモジュールアドレスで特定される前記第1のメモリモジュールの集合に属するいずれかのメモリモジュールが保持する第4の読み込みデータのいずれかを選択して出力する第2の読み込みデータ選択部を有することを特徴とする請求項1記載のメモリ制御装置。
The memory control device further includes:
First read data and first error detection output from one of the memory modules belonging to the set of the first memory modules specified by the first memory module address output by the first read address selection unit Based on the information, when a reread request for the first read data in which an error has occurred is necessary, a first reread determination unit that outputs the second reread request;
Second read data and second error detection output from one of the memory modules belonging to the set of second memory modules specified by the second memory module address output from the second read address selection unit A second re-reading determination unit for outputting the first re-reading request when a re-reading request of the second read data in which an error has occurred is necessary based on the information;
Select either the first read data or the second read data held by any one of the memory modules belonging to the set of the second memory modules specified by the second memory module address A first read data selection unit to output;
Select either the third read data or the fourth read data held by any one of the memory modules belonging to the set of the first memory modules specified by the first memory module address 2. The memory control device according to claim 1, further comprising a second read data selection unit for outputting.
 前記メモリ制御装置はさらに、
 前記第1の読み込みデータ選択部が選択した前記第1の読み込みデータ又は前記第2の読み込みデータのいずれかと、前記第2の読み込みデータ選択部が選択した前記第3の読み込みデータ又は前記第4の読み込みデータのいずれかをマージすることにより、連続する読み込みデータとして前記制御装置に出力する読み込みデータ送出部を有することを特徴とする請求項2記載のメモリ制御装置。
The memory control device further includes:
Either the first read data or the second read data selected by the first read data selection unit, and the third read data or the fourth read data selected by the second read data selection unit. 3. The memory control device according to claim 2, further comprising a read data transmission unit that outputs any of the read data to the control device as continuous read data by merging any of the read data.
 前記メモリ制御装置はさらに、
 前記制御装置から前記第1のメモリバンクに対して第1の書き込みデータの書き込みを行う第1の書き込み物理アドレスを、前記第1のメモリバンクに属する前記第1のメモリモジュールを特定する第1の書き込みメモリモジュールアドレスに変換して、前記第1のメモリバンクに出力するとともに、前記制御装置から前記第2のメモリバンクに属する第2のメモリモジュールに対して第2の書き込みデータの書き込みを行う第2の書き込み物理アドレスを、前記第2のメモリバンクに属する前記第2のメモリモジュールを特定する第2の書き込みメモリモジュールアドレスに変換して、前記第2のメモリバンクに出力する書き込みアドレス変換部と、
 前記第1の書き込みデータと前記第2の書き込みデータに対して、それぞれ前記第1のエラー検出情報と前記第2のエラー検出情報を生成して付加するエラー検出情報生成部を有することを特徴とする請求項1~3のいずれか1項に記載のメモリ制御装置。
The memory control device further includes:
A first write physical address for writing first write data from the control device to the first memory bank is specified, and a first memory module belonging to the first memory bank is specified. A write memory module address is converted and output to the first memory bank, and second write data is written from the control device to the second memory module belonging to the second memory bank. A write address conversion unit that converts a write physical address of 2 into a second write memory module address that identifies the second memory module belonging to the second memory bank and outputs the second write memory module address to the second memory bank; ,
An error detection information generation unit that generates and adds the first error detection information and the second error detection information to the first write data and the second write data, respectively. The memory control device according to any one of claims 1 to 3.
 前記メモリ制御装置はさらに、
 前記第1の書き込みデータを前記第1のメモリモジュールの集合に属するいずれかのメモリモジュールに書き込むとともに、前記第1の書き込みデータを前記第2のメモリモジュールの集合に属するいずれかのメモリモジュールにも書き込み、さらに、前記第2の書き込みデータを前記第1のメモリモジュールの集合に属するいずれかのメモリモジュールに書き込むとともに、前記第2の書き込みデータを前記第2のメモリモジュールの集合に属するいずれかのメモリモジュールに書き込むことを特徴とする請求項4記載のメモリ制御装置。
The memory control device further includes:
The first write data is written to any one of the memory modules belonging to the first set of memory modules, and the first write data is also written to any memory module belonging to the second set of memory modules. Write, and further write the second write data to any memory module belonging to the first set of memory modules, and write the second write data to any one of the second set of memory modules. 5. The memory control device according to claim 4, wherein the data is written in the memory module.
 前記制御装置は演算処理装置に接続され、前記演算処理装置は前記制御装置に対して前記第1の読み込み物理アドレス、前記第2の読み込み物理アドレス、前記第1の書き込み物理アドレス及び前記第2の書き込み物理アドレスを発行し、前記制御装置は前記演算処理装置が発行した前記第1の読み込み物理アドレス、前記第2の読み込み物理アドレス、前記第1の書き込み物理アドレスおよび前記第2の書き込み物理アドレスを用いて前記第1及び第2のメモリバンクに対するメモリアクセスを行なうことを特徴とする請求項1~3のいずれか一つに記載のメモリ制御装置。 The control device is connected to an arithmetic processing device, and the arithmetic processing device sends the first read physical address, the second read physical address, the first write physical address, and the second to the control device. The controller issues the first physical address, the second physical address, the first physical address, and the second physical address issued by the arithmetic processing unit. 4. The memory control device according to claim 1, wherein the memory control device is used to perform memory access to the first and second memory banks.  制御装置と複数のメモリモジュールの集合である第1及び第2のメモリバンクにそれぞれ接続されるとともに、前記制御装置から前記第1及び第2のメモリバンクに対するメモリアクセスを制御するメモリ制御装置のメモリ制御方法であって、
 前記制御装置から書き込み要求を受け付けた場合に、前記第1メモリバンクと第2メモリバンクの双方に対して同一内容のデータを書き込む書き込みステップと、
 前記制御装置から読み出し要求を受け付けた場合に、当該読み出し要求が指定するデータの前半部分について前記第1メモリバンクと前記第2メモリバンクのいずれか一方のメモリバンクを前半データ通常読み出し先、他方のメモリバンクを前半データ予備読み出し先として指定する前半データ読み出し制御ステップと、
 前記前半データ通常読み出し先からの読み出しの結果、正常なデータが得られた場合には当該データを前半読み出しデータとして選択し、前記前半データ通常読み出し先からの読み出しの結果に修復不可能なエラーが存在する場合に前記前半データ予備読み出し先から読み出したデータを前半読み出しデータとして選択する前半読み出しデータ選択ステップと、
 前記制御装置から読み出し要求を受け付けた場合に、当該読み出し要求が指定するデータの後半部分について前記第2メモリバンクと前記第1メモリバンクのいずれか一方のメモリバンクを後半データ通常読み出し先、他方のメモリバンクを後半データ予備読み出し先として指定する後半データ読み出し制御ステップと、
 前記後半データ通常読み出し先からの読み出しの結果、正常なデータが得られた場合には当該データを後半読み出しデータとして選択し、前記後半データ通常読み出し先からの読み出しの結果に修復不可能なエラーが存在する場合に前記後半データ予備読み出し先から読み出したデータを後半読み出しデータとして選択する後半読み出しデータ選択ステップを有することを特徴とするメモリ制御方法。
A memory of a memory control device connected to the control device and first and second memory banks, each of which is a set of a plurality of memory modules, and controlling memory access from the control device to the first and second memory banks. A control method,
A write step of writing data of the same content to both the first memory bank and the second memory bank when a write request is received from the control device;
When a read request is received from the control device, one of the first memory bank and the second memory bank is set to the first half data normal read destination and the other half of the first half of the data designated by the read request. A first half data read control step of designating a memory bank as a first half data preliminary read destination;
When normal data is obtained as a result of reading from the first half data normal read destination, the data is selected as the first half read data, and there is an unrecoverable error in the result of reading from the first half data normal read destination. A first half read data selection step of selecting data read from the first half data preliminary read destination as the first half read data when present,
When a read request is received from the control device, either the second memory bank or the first memory bank of the second half of the data designated by the read request is transferred to the second half data normal read destination, the other A second half data read control step for designating a memory bank as a second half data preliminary read destination;
When normal data is obtained as a result of reading from the latter half data normal read destination, the data is selected as the latter half read data, and an unrecoverable error is found in the result of reading from the latter half data normal read destination. A memory control method comprising a second half read data selection step of selecting data read from the second half data preliminary read destination as second half read data, if present.
 前記メモリ制御方法はさらに、
 前記前半読み出しデータと前記後半読み出しデータとを結合して前記制御装置に送出する読み出しデータ送出ステップを有することを特徴とする請求項7記載のメモリ制御方法。
The memory control method further includes:
8. The memory control method according to claim 7, further comprising a read data transmission step of combining the first half read data and the second half read data and transmitting the combined data to the control device.
PCT/JP2008/067210 2008-09-24 2008-09-24 Memory control device and memory control method Ceased WO2010035316A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/067210 WO2010035316A1 (en) 2008-09-24 2008-09-24 Memory control device and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/067210 WO2010035316A1 (en) 2008-09-24 2008-09-24 Memory control device and memory control method

Publications (1)

Publication Number Publication Date
WO2010035316A1 true WO2010035316A1 (en) 2010-04-01

Family

ID=42059334

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/067210 Ceased WO2010035316A1 (en) 2008-09-24 2008-09-24 Memory control device and memory control method

Country Status (1)

Country Link
WO (1) WO2010035316A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2738677A4 (en) * 2011-08-23 2014-07-23 Huawei Tech Co Ltd METHOD AND DEVICE FOR DETECTING DATA RELIABILITY
GB2519849A (en) * 2013-08-29 2015-05-06 Quixant Plc Memory controller, memory arrangement and memory access method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006505864A (en) * 2002-11-08 2006-02-16 インテル コーポレイション Interleaved mirror memory system
JP2008158804A (en) * 2006-12-22 2008-07-10 Nec Corp Memory controller, computer, and data reading method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006505864A (en) * 2002-11-08 2006-02-16 インテル コーポレイション Interleaved mirror memory system
JP2008158804A (en) * 2006-12-22 2008-07-10 Nec Corp Memory controller, computer, and data reading method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2738677A4 (en) * 2011-08-23 2014-07-23 Huawei Tech Co Ltd METHOD AND DEVICE FOR DETECTING DATA RELIABILITY
JP2014529793A (en) * 2011-08-23 2014-11-13 華為技術有限公司Huawei Technologies Co.,Ltd. Method and apparatus for detecting data reliability
AU2011361394B2 (en) * 2011-08-23 2015-07-09 Huawei Technologies Co., Ltd. Method and device for detecting data reliability
US9195543B2 (en) 2011-08-23 2015-11-24 Huawei Technologies Co., Ltd. Method and device for detecting data reliability
GB2519849A (en) * 2013-08-29 2015-05-06 Quixant Plc Memory controller, memory arrangement and memory access method
GB2519849B (en) * 2013-08-29 2017-02-08 Quixant Plc Memory controller, memory arrangement and memory access method

Similar Documents

Publication Publication Date Title
US12394500B2 (en) Memory system with error detection
JP5107880B2 (en) Data transfer processing apparatus and method
US10127074B2 (en) Transaction identification synchronization
EP2297641B1 (en) Efficient in-band reliability with separate cyclic redundancy code frames
US9627092B2 (en) Semiconductor device performing error correction operation
CN114328316A (en) DMA controller, SOC system and data carrying method based on DMA controller
KR20170076106A (en) Control circuit and memory device including the control circuit
JP4819843B2 (en) ECC code generation method for memory device
US20110004817A1 (en) Crc management method performed in sata interface and data storage device using crc management method
KR102892059B1 (en) Memory system and operation method of memory system
CN111221746A (en) Data storage system and related method
KR20200052842A (en) Memory system, memory module and operation method of memory system
WO2010035316A1 (en) Memory control device and memory control method
JPS6148061A (en) Multiprocessor computer system and computer module
JP2004159333A (en) Configuration for exchanging data using cyclic redundancy check (crc) code, method and apparatus for automatically generating crc code from data exchanged on data bus
CN108664362B (en) Memory mirror image processing method, memory controller and user equipment
CN100394390C (en) Error detection and correction device and control method thereof
JP5213061B2 (en) Mirroring control device, mirroring control circuit, mirroring control method and program thereof
CN105373442B (en) Method and apparatus for monitoring memory data error status
CN108762975B (en) ECC data storage method, system and storage medium
CN104125169B (en) Chain table processing device, chain table processing method and related network switch
US12148491B2 (en) Processing-in-memory (PIM) devices
US7325081B2 (en) CRC data protection scheme for non-block-oriented data
JP4839364B2 (en) Combined command and data code
CN102543207B (en) Method for efficiently utilizing RS error correction and detection algorithm in flash memory controller

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP