Memory transaction burst operation and memory components supporting temporally multiplexed error correction coding
Abstract
Methods and apparatus for use with memory systems and memory modules are included among the embodiments. In exemplary systems, error-correction coding (ECC) data is temporally multiplexed with user data on the same data bus lines in aburst mode transfer, such that separate chips and data lines are not required to support ECC. The memory devices on the modules each contain additional indirectly addressable ECC segments associated with addressable segments of the device. The temporally multiplexed ECC data is read from and written to the indirectly addressable segment associated with the addressable data transmitted in the burst mode transfer. In some embodiments, two types of burst modes are supported, one which includes ECC data and one which does not. This allows one type of memory module to support both ECC and non-ECC systems, and in some cases to use ECC for some data and not for other data in the same system. Other embodiments are described and claimed.

Term
No projected expiry on record.
- Priority
- Filed
- Granted
- Today
30 claims: 22 independent, 8 dependent
- 1A memory device comprising:a memory cell array of one of a plurality of addressable segments configured to store data in a plurality of memory cells, each addressable segment is associated with at least one additional memory cell, When the associated addressable segment is read in at least one burst read mode, the additional memory cell is read from the memory cell array;and a burst controller for Controlling the burst sequence of output data read from the first segment of the mountain among the addressable segments of the memory cells in a first burst read mode, the first burst read mode including Output data from the first segment through a first plurality of data cycles, wherein during at least one of the first plurality of data cycles, from the at least one additional memory associated with the first segment The cell data will be output. 一種記憶體元件,包含:配置來儲存資料於多個記憶體胞元的多個可定址節段中之一記憶體胞元陣列,各個可定址節段係關聯於至少一個額外記憶體胞元,於至少一個叢發讀取模式下當相關聯的可定址節段被讀取時,該額外記憶體胞元係從該記憶體胞元陣列中被讀取;以及一叢發控制器,用來於一第一叢發讀取模式中控制從該等記憶體胞元的可定址節段中之山第一節段讀取的輸出資料之叢發定序,該第一叢發讀取模式包括經歷第一多個資料週期而從該第一節段輸出資料,其中於該等第一多個資料週期中之至少一個週期期間,來自與該第一節段相關聯的該至少一個額外記憶體胞元的資料會被輸出。
- 2For example, the memory device in the scope of patent application 1, wherein the burst controller can be deployed at least between the first burst read mode and a second burst read mode, the second burst read The mode includes outputting data from the first segment during a second plurality of data periods shorter than the first plurality of data periods, wherein the data obtained from the at least one additional memory cell is in the second plurality of data periods. It is not output during multiple data cycles. 如申請專利範圍第1項之記憶體元件,其中該叢發控制器係至少可佈建於該第一叢發讀取模式與一第二叢發讀取模式間,該第二叢發讀取模式包括於比該等第一多個資料週期更短的第二多個資料週期期間,從該第一節段輸出資料,其中得自該至少一個額外記憶體胞元的資料於該等第二多個資料週期期間並未被輸出。
- 4For example, the memory device of item 3 of the scope of patent application, wherein the burst controller further controls the distribution of the input data received by the memory device in a second burst write mode, the second burst write The mode includes that the memory device receives data in a fourth plurality of data cycles shorter than the third plurality of data cycles, and the burst controller sends a signal to the write circuit to write the received data Into the addressable locations inside the second segment of the memory cells without writing any received data into the at least one additional memory cell associated with the second segment. 如申請專利範圍第3項之記憶體元件,其中該叢發控制器進一步控制於一第二叢發寫入模式下由該記憶體元件所接收的輸入資料的分佈,該第二叢發寫入模式包括該記憶體元件於比該等第三多個資料週期更短的第四多個資料週期內接收資料,且該叢發控制器發訊予該寫入電路,來將所接收的資料寫入該等記憶體胞元之該第二節段內部的多個可定址位置,而未將任何所接收的資料寫入與該第二節段相關聯的該至少一個額外記憶體胞元。
- 5For example, the memory device of item 3 of the scope of patent application further includes a write mask circuit operable based on an external mask signal, wherein in the first burst write mode, the external mask signal is always written When the data received in the portion of the at least one additional memory cell is declared together, it will cause the write mask circuit to prevent the write circuit from writing data to the at least one additional memory cell. 如申請專利範圍第3項之記憶體元件,進一步包含可基於一外部遮罩信號操作的寫入遮罩電路,其中於該第一叢發寫入模式中,該外部遮罩信號在隨同欲寫入該至少一個額外記憶體胞元的該部分所接收的資料一起獲宣告時,會造成該寫入遮罩電路阻止該寫入電路將資料寫入該至少一個額外記憶體胞元。
- 6For example, the memory device of the third item of the scope of patent application, wherein in the first burst write mode, the last data cycle of the third plurality of data cycles contains the data to be written and is associated with the second segment Data of the at least one additional memory cell. 如申請專利範圍第3項之記憶體元件,其中於該第一叢發寫入模式中,該等第三多個資料週期中的最末資料週期含有欲寫入與該第二節段相關聯的該至少一個額外記憶體胞元的資料。
- 9A memory module includes:a circuit board including a plurality of data bus traces forming an N-bit wide data bus;and at least one memory element coupled to the plurality of data bus traces , The at least one memory element has a plurality of memory locations that can be indirectly addressed, and the memory locations can store error correction code data associated with the addressable memory locations of multiple segments;the memory module can Operate in a first burst read mode, which includes outputting data read from the first segment of one of the plurality of addressable memory location segments to the N bits through the first plurality of data cycles On a meta-wide data bus, data obtained from at least one of the indirect addressable memory locations during at least one of the first plurality of data cycles is output to the data bus lines On at least one of the traces. 一種記憶體模組,包含:包含形成一個N位元寬資料匯流排之多個資料匯流排線跡的一塊電路板;以及耦接至該等多個資料匯流排線跡的至少一個記憶體元件,該至少一個記憶體元件具有多個可間接定址之記憶體位置,該等記憶體位置可儲存與多個節段之可定址記憶體位置相關聯的錯誤校正碼資料;該記憶體模組可於一第一叢發讀取模式操作,該模式包括將讀取自該等多個可定址記憶體位置節段中之一第一節段的資料經歷第一多個資料週期輸出至該N位元寬資料匯流排上,其中於該等第一多個資料週期中之至少一個週期期間,得自該等可間接定址記憶體位置中之至少一者的資料係輸出至該等資料匯流排線跡中之至少一線跡上。
- 10For example, the memory module of item 9 of the scope of patent application, wherein the memory module can also be operated in a second burst read mode, and the second burst read mode includes the location of the addressable memory The data read in the first segment undergoes a second plurality of data cycles shorter than the first plurality of data cycles, and is output to the N-bit wide data bus, but not output from the indirect addressable Data of the memory location. 如申請專利範圍第9項之記憶體模組,其中該記憶體模組也可於一第二叢發讀取模式操作,該第二叢發讀取模式包括將從可定址記憶體位置的該第一節段讀取的資料經歷比該等第一多個資料週期更短的第二多個資料週期,來輸出至該N位元寬資料匯流排上,而未輸出來自該等可間接定址記憶體位置的資料。
- 11For example, the memory module of item 9 of the scope of patent application, wherein the at least one memory device includes a plurality of memory devices, each of which is connected to the data bus traces forming an N-bit wide data bus One of the corresponding subsets, each memory device has multiple indirect addressable memory locations for storing error correction code data associated with multiple segments of addressable memory locations. 如申請專利範圍第9項之記憶體模組,其中該至少一個記憶體元件包含多個記憶體元件,其各自係連接至形成一個N位元寬資料匯流排的該等資料匯流排線跡中之一相對應子集,各個記憶體元件具有多個可間接定址記憶體位置,可供儲存與多個節段之可定址記憶體位置相關聯的錯誤校正碼資料。
- 12For example, the memory module of item 9 of the scope of patent application can operate in two burst write modes. The first burst write mode undergoes the third multiple data cycles on the N-bit wide data bus The second burst write mode is to experience the fourth multiple data cycles longer than the third multiple data cycles, and the burst data and error correction codes are received on the N-bit wide data bus material. 如申請專利範圍第9項之記憶體模組,其可於兩個叢發寫入模式中操作,第一叢發寫入模式係經歷第三多個資料週期於該N位元寬資料匯流排上接收叢發資料,第二叢發寫入模式係經歷比第三多個資料週期更長的第四多個資料週期,於該N位元寬資料匯流排上接收叢發資料和錯誤校正碼資料。
- 13An arithmetic device comprising:a memory system including a plurality of memory data bus lines, the memory system transmits error correction codes on the memory data bus lines to ensure that the data stored in the memory system The data integrity of at least some device data, wherein the error correction code data and the device data share at least part of the memory data bus line temporally. 一種運算裝置,包含:包含多條記憶體資料匯流排線之一記憶體系統,該記憶體系統於該等記憶體資料匯流排線上傳輸錯誤校正編碼,來確保對儲存於該記憶體系統中之至少若干裝置資料的資料完好性,其中錯誤校正編碼資料和裝置資料係時間性共享至少部分該等記憶體資料匯流排線。
- 14For example, the computing device of item 13 of the scope of patent application further includes a processor coupled to the memory system. 如申請專利範圍第13項之運算裝置,進一步包含耦接至該記憶體系統的一處理器。
- 15For example, the computing device of item 13 of the scope of patent application, wherein the memory system includes a memory controller coupled to the memory data bus lines, and at least one coupled to the memory data bus lines A memory device, wherein in at least one data transmission burst mode between the memory controller and the at least one memory device, the burst length is expanded to match the memory data bus lines in a common burst Time sharing status between error correction coded data and processor data. 如申請專利範圍第13項之運算裝置,其中該記憶體系統包括耦接至該等記憶體資料匯流排線的一記憶體控制器,和耦接至該等記憶體資料匯流排線的至少一個記憶體元件,其中於該記憶體控制器與該至少一個記憶體元件間的至少一個資料傳送叢發模式中,叢發長度經擴充來配合於一共通叢發內該等記憶體資料匯流排線於錯誤校正編碼資料與處理器資料間的時間性共享狀況。
- 17For example, the arithmetic device of the 15th patent application, wherein the at least one memory element includes a movable memory module, and the memory module can also function in a different memory system that does not use error correction codes. 如申請專利範圍第15項之運算裝置,其中該至少一個記憶體元件包含一活動式記憶體模組,該記憶體模組也可於未使用錯誤校正編碼的一不同記憶體系統中發揮功能。
- 18A method of operating a memory system, the method comprising the following steps:transmitting a data cycle packet, so that the error-protected data and the error correction code data related to the error-protected data are temporally multiplexed into the same data stream Cable;receiving the data cycle packet;and demultiplexing the data cycle packet to separate the error correction coded data and the error-protected data. 一種操作記憶體系統之方法,該方法包含下列步驟:傳輸一資料週期叢訊,讓錯誤經保護之資料和與該錯誤經保護資料相關的錯誤校正編碼資料係時間性多工化至相同資料匯流排線上;接收該資料週期叢訊;以及將該資料週期叢訊解多工來分開該錯誤校正編碼資料與該錯誤經保護之資料。
- 19For example, the method of item 18 of the scope of patent application, in which one data cycle of error correction coding is to transmit each of the eight error data cycles of the protected data. 如申請專利範圍第18項之方法,其中錯誤校正編碼的一個資料週期係對經保護之資料的各八個錯誤資料週期傳輸。
- 21For example, the method of item 20 of the scope of patent application, in which a data period of error correction coding is transmitted for the number of data periods less than 8;the method further includes adding a part of the data transmitted during a data period of error correction coding Matte. 如申請專利範圍第20項之方法,其中對數目少於8的資料週期數目傳輸錯誤校正編碼的一個資料週期,該方法進一步包含把於錯誤校正編碼的一個資料週期期間所傳輸的資料之一部分加以遮罩。
- 23For example, the method of item 21 of the scope of the patent application further includes determining which part of the error correction code data from the address of the addressed segment address when the component feeds the error correction code data to the memory device array To mask, and declare the corresponding mask signal to the memory device group, and transmit the error correction code data at the same time. 如申請專利範圍第21項之方法,進一步包含於該元件進送該錯誤校正編碼資料予該記憶體元件排組時,從該定址節段位址之位址判定該錯誤校正編碼資料的哪一個部分欲遮罩,以及宣告相對應遮罩信號予該記憶體元件排組,同時傳輸該錯誤校正編碼資料。
- 25For example, the method of item 18 of the scope of patent application further includes selecting a data burst mode with temporal multiplexing error correction coded data and error-protected data from at least two data burst modes, and the data bursts At least the other of the modes uses the same addressing, but transmits data that does not have time-multiplexed error correction coded data. 如申請專利範圍第18項之方法,進一步包含從至少兩個資料叢發模式中選出具有時間性多工化錯誤校正編碼資料與錯誤經保護之資料的一個資料叢發模式,該等資料叢發模式中之至少另一者係使用相同定址,但傳輸未具經時間性多工化錯誤校正編碼資料的資料。
- 26A method of operating a memory device, the method includes the following steps:receiving a command from an addressable section of the memory device to read and transmit data;reading the data from the addressable section, and from At least one indirect addressable memory location associated with the addressable segment reads error correction code data;and in a multi-period data burst, the addressable segment is transmitted on the same bus line with the error Correct the time-multiplexed data of the coded data. 一種操作記憶體元件之方法,該方法包含有下列步驟:接收一命令來於該記憶體元件之一可定址節段中讀取與傳輸資料;從該可定址節段讀取該資料,且從與該可定址節段相關聯的至少一個可間接定址記憶體位置讀取錯誤校正編碼資料;以及於一個多週期資料叢發中,於該可定址節段,傳輸於相同匯流排線上與該錯誤校正編碼資料時間性多工化的資料。
- 27For example, the method of item 26 of the scope of patent application, wherein whether the error correction coding data is temporally multiplexed is determined based on the type of the burst mode selected from at least two burst modes, at least one of which is the burst mode The error correction coding data is not time-multiplexed. 如申請專利範圍第26項之方法,其中該錯誤校正編碼資料是否為時間性多工化,係依據選自於至少兩個叢發模式中的叢發模式型別決定,其中至少一個叢發模式並未時間性多工化該錯誤校正編碼資料。
- 29A method of operating a memory controller, the method comprising the following steps:transmitting a command to a memory device, the command instructing the memory device to read data in an addressable section of the memory device;In a multi-period data burst, data from the addressable segment is received from the memory device, and the data is time-multiplexed on the same bus line as the error correction code data associated with the addressable segment And demultiplex the data from the addressable segment with the associated error correction coding data. 一種操作記憶體控制器之方法,該方法包含有下列步驟:傳輸一命令至一記憶體元件,該命令指示該記憶體元件來讀取該記憶體元件的一可定址節段中的資料;於一個多週期資料叢發中,從該記憶體元件接收來自該可定址節段之資料,該資料於與和該可定址節段相關聯的錯誤校正編碼資料相同之匯流排線上受時間性多工化;以及將來自該可定址節段的資料與該相關聯的錯誤校正編碼資料解多工。
- 30For example, the 28th method in the scope of patent application, which is used for multi-period data bursts of at least some size, part of the received error correction coded data will be ignored by the memory controller. 如申請專利範圍第28項之方法,其中用於至少某些大小的多週期資料叢發,部分所接收的錯誤校正編碼資料會由該記憶體控制器予以忽略。
Independent claims22
57 paragraphs, as filed
Supports time-based multiplex error correction coding for memory change burst operations and memory components
Invention field
The present invention generally relates to digital memory systems, components, and methods, and more particularly relates to memory system components that can multiplex error correction encoding data during burst memory transactions.
Background of the invention
Digital processors such as microprocessors use computer memory subsystems to store data and processor instructions. Some processors communicate directly with memory, while others use dedicated controller chips and often form part of a "chipset" to access memory.
Conventional computer memory subsystems are often implemented using memory modules. Referring to the computer system 100 shown in FIG. 1, the processor 120 crosses the front bus 125 to communicate with the memory controller/hub (MCH) 130, and the memory controller/hub 130 couples the processor 120 to each peripheral Device. One of the peripheral devices is the system memory, shown as the memory module MM0. Although memory does not need to be arranged on such a module in each system, multiple modules are used in multiple systems to allow modules to be replaced with larger capacity modules and/or additional memory card slots can be added Module (not shown in the figure) to allow memory expansion. When connected, the memory module MM0 can be addressed from the MCH 130 whenever the MCH 130 announces an appropriate signal on the address/command (ADD/CMD) bus 150. The data transmission between the MCH 130 and one of the memory modules takes place on the data bus 140.
Typically, a memory module is built using a plurality of semiconductor memory elements, and individual elements store part of each data word stored on the module. For example, the memory module MM0 displays 5 dynamic random access memory (DRAM) components, namely DRAM0 to DRAM4. Each DRAM element receives the same address and command signal from the ADD/CMD bus 150. Each DRAM component is connected to the signal (DQ<i>n</i>) A subset of lines, DRAM0 is connected to the 16th bus line DQ0-DQ15, DRAM1 is connected to DQ16-DQ31, DRAM2 is connected to DQ32-DQ47, DRAM3 is connected to DQ48-DQ63, and DRAM4 is connected to DQ64-DQ71. So during the data cycle, when 72-bit data is transmitted across the data bus 140, each DRAM is responsible for 16 bits, except for DRAM4, which is responsible for 8 bits (typically, the other 8DQ of DRAM4).<i>n</i>The input is simply unconnected, so half of the DRAM4 cannot be accessed). Each DRAM stores the allocated 72-bit word portion in the same chip location where each other DRAM stores its 72-bit word portion.
In the example in Figure 1, the size of each addressable data word is 72 bits. 64 bits are used to store data. The extra eight bits are used to store the ECC information corresponding to the 64-bit data with the same address. For example, DRAM4 can be dedicated to ECC storage, and DQ64-DQ71 are used to store and retrieve ECC information. Other systems can use other bus widths, and 36 bits are common. The bus is divided into 32 data bit channels and 4 ECC bit channels.
Multiple current memory devices and controllers provide a burst mode, which allows access to multiple sequentially stored data words with a single command. Figure 2 shows a timing diagram of 16-word burst mode data transmission using the ECC memory module MM0 of Figure 1. The MCH 130 supplies the module MM0 with the starting address, and the burst mode 16 read or write commands. When the command is a read command, the DRAM on the module MM0 reads the data storage cell connected to the word line containing the start address, and then drives the data from the start address and the data in 16 consecutive data cycles Data of 15 subsequent consecutive addresses on bus 140. The MCH 130 supplies write data through 16 continuous data cycles, receives, buffers, and writes to the continuous memory location on the word line (starting from the starting address) on the DRAM on the module MM0.
The function of DRAM4 is similar to all other DRAMs during these burst commands. DRAM4 does not need to know that its data may be used to perform the ECC function on the data stored on DRAM0 to DRAM3. For example, during the time slot T0, the data "A" and the ECC data "A" are transmitted, where "A" represents the data at the start address specified in the MCH 130. During the time slot T1, the data "B" and the ECC data "B" are transmitted, where "B" means the data of consecutive addresses after the "A" address.
Not all systems use the protection described in the previous section. The reason is that ECC protection requires a wider data bus. Usually, each memory bank requires additional memory chips (for example, DRAM4 and DQ64-DQ71 are not 64-bit non-ECC systems). Required). In addition, ECC can usually increase latency (due to the error checking function) and increase power consumption (due to the need for additional chips). As for the other aspects of the non-ECC system, it is the same as the previous description. For example, the memory controller must trust the data received from DRAM0-DRAM3 in the read operation to be intact. In this way, ECC memory modules and non-ECC memory modules are not interchangeable. Currently, there are more non-ECC systems manufactured than ECC systems, mainly due to the shortcomings listed above.
The present invention is a memory device, including: a memory cell array of one of a plurality of addressable segments configured to store data in a plurality of memory cells, each addressable segment is associated with at least one additional memory Somatic cell, when the associated addressable segment is read in at least one burst read mode, the additional memory cell is read from the memory cell array; and a burst control A device for controlling the burst sequence of the output data read from the first segment of the mountain among the addressable segments of the memory cells in a first burst read mode, the first burst The reading mode includes outputting data from the first segment through a first plurality of data periods, wherein during at least one of the first plurality of data periods, the data from the at least one associated with the first segment The data of an extra memory cell will be output.
Schematic description
The embodiment will be clearest by studying the following description with reference to the drawings. With the drawings: Figure 1 shows the processor and some memory system components of the prior art computer system; Figure 2 shows the data bus on the data bus in Figure 1 Timing diagram of data transmission in sending mode; Figure 3 contains a block diagram of the processor and several memory system components of the computer system according to an embodiment of the present invention; Figures 4A, 4B, 5, 6A, 6B, and 6C show that according to the present invention Several embodiments of the invention, a timing diagram of error-corrected burst mode data transmission; and Figure 7 contains a block diagram of a DRAM device according to an embodiment of the invention.
Detailed description of the preferred embodiment
This article describes a novel approach to provide ECC memory system components. This approach can avoid the need for dedicated ECC memory components and dedicated ECC bit channels, and allows interchangeability between ECC modules and non-ECC modules in at least some embodiments. Instead of dedicated ECC components and dedicated bit channels, the embodiment described in this article multiplexes ECC data and system data in time during burst mode transmission across data bit channels, and the memory controller and memory components are responsible for scheduling Ways to handle mixed data/ECC burst transmission. In some embodiments, the memory device is designed with ECC burst transmission mode and non-ECC burst transmission mode, allowing each mode to be used interchangeably in ECC systems and non-ECC systems, or even relying on ECC to protect certain critical data. Used interchangeably in systems that do not protect other data. The preferred embodiment uses a memory structure in which the ECC data does not occupy directly addressable memory space, but is stored in an internal addressable memory area associated with the addressable memory space.
As for the introduction of the embodiments, FIG. 3 shows the computer system 300 coupled with the processor 320 to the memory controller 330. The processor 320 and the memory controller 330 may be integrated on a single circuit, or may reside on a separate circuit connected by the front bus in a manner similar to that described in FIG. 1. The memory controller 330 is connected to the dual-mode memory module BMM0 through the address/command bus 350 and the data bus 340. The data bus 340 is shown as having 64-bit lines DQ0-DQ63, but this is merely an example, and other embodiments may use, for example, 16, 32, or 128 data bus line channels. The dual-mode memory module BMM0 contains four error-corrected mode (ECB) DRAMs, namely ECB-DRAM0, ECB-DRAM1, ECB-DRAM2, and CB-DRAM3, which will be further developed in the memory device embodiment of the present invention. The detailed description is as follows. In the system embodiment using the error-corrected burst mode, the memory controller 330 is designed to receive and transmit error-corrected burst mode data. However, in some system embodiments that only use the non-ECC burst mode of the prior art, the module BMM0 can be coupled to the prior art non-ECC memory controller.
The system-level functions of the memory controller 330 and ECB DRAM will be made clearer by examining the timing diagram of the error-corrected burst mode data transmission across the data bus 340. First, referring to Figures 4A and 4B, the 18 data periods T0-T17 of the "error-corrected burst mode 18A" are shown. In this example, these 18 data cycles are transmitted with the same 16 72-bit data words A to P transmitted by the prior art computer system 100 in Figure 2. Obviously, Figure 4 uses 64-bit channels and 18 data cycles for transmission instead of 72-bit channels and 16 data cycles as in the prior art. In addition, the ECC code of the data word is not transmitted at the same time as the data word, and the time configuration of the data is modified from Figure 2.
The order of reading data and writing data by BMM0 will be considered. First, check the data reading cycle T0 in Figure 4A. It can be seen that only ECC data is transmitted during T0. During the data period T0, ECC data A and C are transmitted from ECB-DRAM0. This ECC data corresponds to data A and data C respectively. Data A will be transmitted through all ECB-DRAM0 during data period T2, and data C All ECB DRAM will be used for data transfer during the data period T4. In addition, during the data period T0, ECC data E and G are transmitted through ECB-DRAM1. This ECC data corresponds to data E and data G respectively. Data E will be transmitted through all ECB DRAMs during data period T6. G will be transmitted by all ECB DRAMs during the data period T8. Similarly, during T0, ECB-DRAM2 and ECB-DRAM3 transmit ECC data I, K, M, and O. These ECC data are respectively the data transmitted by all ECB DRAMs during data periods T10, T12, T14, and T16. corresponding.
Secondly, check the data period T1, and it can be seen that only ECC data is transmitted during T1. The transmitted ECC data corresponds to the data to be transmitted during the rest of the odd data period such as T3, T5, T7, T9, T11, T13, T15, and T17.
When the memory controller 330 receives ECC data during T0 and T1, the memory controller 330 transmits the data to the ECC register bank 335 containing 16 8-bit ECC registers. In this way, when data is received by the memory controller 330 at T2, the ECC data "A" is retrieved from its register in the bank 335 and used to perform error correction on the data A. When the data is received by the memory controller 330 at T3, the ECC data "B" is retrieved from its register in the bank 335 and used to perform error correction on the data B. This process continues through the data cycle T17, at which time the ECC data "P" is read from the last ECC register and used to perform error correction on the data P. The error-corrected data words A to P are sent to the processor 320 via the memory controller 330, or sent to a number of other peripheral devices that request data with direct memory access (DMA) commands.
It is now known that if error correction is not required for data words A to P, the same data transmission in Figure 4 can be used, but without the first two data cycles.
For writing data into BMM0, the data cycle structure shown in Figure 4B is used in one embodiment. During the data period T0 to T15, the data words A to P are respectively transmitted to all ECB DRAMs. When the memory controller 330 prepares each data word for transmission, the memory controller 330 calculates the corresponding ECC data and stores the ECC data in one of the 16 ECC registers of the aforementioned bank 335. Then, during the data period T16, the ECC data A, C, E, G, I, K, M, and O are transferred to the ECB DRAM as shown. During the data period T17, the remaining ECC data B, D, F, H, J, L, N, and P are sent to the ECB DRAM as shown.
It must be understood that the special configuration of ECC data is for illustrative purposes only. For example, during the first ECC data period, the ECC data value A-H can be transmitted; and during the second ECC data period, the ECC data value I-P can be transmitted. As long as the memory controller 330 is consistent with reading and writing, any convenient configuration can be adopted. As will be described in detail later, in the described embodiment, the ECB DRAM only needs to understand the data cycle format, and does not need to understand how the ECC data is distributed among the various memory elements by the memory controller.
Figure 5 shows another burst mode 18B. In this burst mode, one ECC data cycle is alternately scattered with 8 data cycles. During this ECC data cycle, corresponding 8 cycles of individual ECC data are transmitted. In one embodiment, during the data period T0, the ECC data is transmitted corresponding to the data words A-H to be transmitted during the following eight periods T1-T8. However, during the data period T9, the ECC data is transmitted corresponding to the data word I-P, and then the data word I-P in the data period T10-T17. Note that Figure 5 is composed of two concatenated bursts of 9 data cycles, suggesting that this mode can also be used for burst mode 9 transmission that performs half of the transmission. In addition, the burst mode 18B can be modified for the write operation, so the data cycle of eight user data is transmitted first, and then a data cycle of ECC data corresponding to the data cycle of eight user data.
The foregoing timing embodiment shows the following situation. There is an integer relationship between the number of ECC values that can be transmitted in a data period and the burst length of the corresponding data. Figures 6A-6C show an embodiment that does not need to be true.
In Figure 6A, the memory controller 330 requests the error-corrected burst mode 5 transmission, which transmits one ECC data cycle and four user data cycles from the ECB DRAM. This transmission system is the same as the first five data periods in Fig. 5, but the data period is truncated after the data period T4. Note that the ECC data E-H received from ECB-DRAM2 and ECB-DRAM3 are "no problem" data. Although the ECC data E-H is sent by the memory controller 330 and loaded into the ECC register bank 335, the data It has never been used.
For this example, suppose the row address supplied to the ECB-DRAM is 0xC80, where 0x represents the hexadecimal notation, and the user data "A" is stored at the row address 0xC80 and a certain column address RA. ECC data "A" and "B" are related to row address RA and row address 0xC80-87 in ECB-DRAM0 memory. Retrieving any user data in the address range from the ECB-DRAM0 memory array also results in the slave and row address RA and row address 0xC8[0b0XXX] (the value in brackets here is binary (0b) notation , And "X" means no harm bit) ECC memory array element retrieves the ECC data "A" and "B". Similarly, the ECC data "I" and "J" are stored in the ECC memory array element associated with the row address RA and row address 0xC8[0b1XXX]. In the normal user ECC burst mode, the memory controller cannot explicitly address these ECC memory array elements, but understands that when user data addressed in the corresponding user space is supplied, these ECC memory array elements Will be accessed in ECC mode.
It should also be noted that if the burst is related across two ECCs (for example, a 4-word burst G-J is requested from Figure 4A), the memory system can be designed to increase the burst by one data period and provide two ECCs. Associated.
In each of Figures 6A, 6B, and 6C, the memory module BMM0 returns the same ECC data, but returns different user data. Depending on the low order bit of the row address, the memory controller will select which ECC data to use, and which ECC data will be ignored. For example, in Figure 6B, the starting row address is 0xC82, so the CC data returned from ECB-DRAM1 and ECB-DRAM2 will be used, while the ECC data returned from ECB-DRAM0 and ECB-DRAM3 will be ignored. In Figure 6C, the starting row address is 0xC84, so the ECC data sent back from ECB-DRAM2 and ECB-DRAM3 will be used.
Although other burst lengths are not shown, those skilled in the art can apply the aforementioned principles to, for example, burst length 3 (including one ECC data period) burst mode, and burst length 2 (including one ECC data period) burst mode. A single address sends user data, and any other unspecified burst length.
In some embodiments, user data and ECC data can also be written to include a number of invalid ECC data burst lengths. In one embodiment, the memory device includes a data mask (DM) signal input, and the memory controller announces an appropriate mask line during the ECC data cycle to prevent writing to correspond to the written user data ECC location. For example, in Figure 6B, the memory controller can declare DM inputs to ECB-DRAM0 and ECB-DRAM3 during T0. Therefore, during T0, only ECB-DRAM1 and ECB-DRAM2 actually pick up ECC data, and the ECC Data is stored in ECC memory.
In another embodiment, the DM signal input does not exist or is not used to control the ECC data on the data bus. Instead, the module location register in the mode register set (MRS) of each memory device is used for the address planning of the memory device on the BMM0, or the option is hard-coded when the module is created . The logic of each memory device is compared with the requested row address range and the module location register to determine whether the ECC data supplied to the memory device should be written or ignored. For example, on ECB-DRAM0, the MRS module position register is programmed with the value 000 and 001. When the write burst row address range includes low-order address 000, ECB-DRAM0 will store the ECC data received at T0 in DQ0-DQ7 of its ECC memory space, otherwise it will not store the data. The similar logic of low order address 001 determines whether the ECC data received from DQ8-DQ15 at T0 will be stored in the ECC memory space.
A specific example of the ECB DRAM 700 is illustrated in the block diagram of FIG. 7. ECB DRAM 700 includes address and control logic 710, address register 720, column decoder 730, row decoder 740, burst/ECC controller/counter 750, I/O register, driver and receiver 760 , I/O gating and masking logic 770, sense amplifier 780, and memory cell array 790. Some blocks are familiar to those skilled in the art, but other blocks have been modified to match the error correction bursts described above. The following description focuses on the cooperation between the blocks and the novel functions that support error correction bursts.
The address and control logic 710, for example, receives a command from the memory controller in the signal input CMD. Typical commands include the ACTIVE command for selecting the word line in the memory cell array 790, the READ command specifying the row to be read from in the memory cell array 790, and the memory cell array 790 to be written. WRITE command, update command and various mode setting commands in each line in the.
During the ACTIVE command, the column address is received at the signal input ADD and latched by the address register 720. The column address is transmitted to the column decoder 730 by the signal from the address and control logic 710, and then used To activate the corresponding column of the memory cell array 790. The sense amplifier 780 reads and updates the column content of the memory cell array in response to the ACTIVE command.
During the READ command, the row address is received at the signal input ADD, and the address register 720 is latched. The row address is sent to the burst/ECC controller/counter 750 by a signal from the address and control logic 710. The burst/ECC controller/counter 750 will use the row address to control the data selection from the sense amplifier 780 during the data phase to be operated, and transmit the data through the I/O gating and mask logic 770 To I/O register and driver 760.
During the WRITE command period, during the write command period, the row address is received at the signal input ADD, and the address register 720 is latched. The row address is sent to the burst/ECC controller/counter 750 by a signal from the address and control logic 710. The burst/ECC controller/counter 750 will use the row address to control data from the I/O register and receiver 760 to the I/O gating and masking logic 770 during the data phase of the write operation.
During at least some mode setting commands, the mode register value is received on the signal input ADD and latched by the address register 720. The value of the mode register is transferred to the mode register 715. The mode register 715 is shown as part of the address and control logic 710 in FIG. In some embodiments, one of the values of the mode register is ECC MODE, and ECC MODE indicates whether the READ and WRITE burst commands will include additional data cycles for transmitting ECC data. The mode register value ECC MODE is supplied to the burst/ECC controller/counter 750, which will determine how the burst/ECC controller/counter 750 selects the data row during the read and write command data transmission.
The row decoder 740 selects n rows in the memory cell array 790 for data transfer between the I/O gating and masking logic 770 and the I/O register 760 in each read or write data cycle. The selected row is determined based on the address provided by the burst/ECC controller/counter 750 for the data period. For writing data, the row selection is also determined by one or more data mask (DM) inputs received together with the writing data. When the writing data instruction is masked, I/O gate control and mask The logic 770 blocks the transfer of the data to the memory cell array 790.
The I/O register, driver, and receiver 760 operate in a conventional manner, but the burst length can be adjusted by the burst/ECC controller/counter 750 to support ECC burst length and non-ECC burst length. During the write burst, the receiver 760 receives the I/O pins DQ1-DQ during each data cycle<i>n</i>The data and the data mask input of pin DM, where the data cycle is indicated by the strobe signal on the strobe I/O pin DQS, and the data received by the latch and the data mask are input to the I/O temporary The register is used to transfer to the I/O gating and masking logic 770. During the read burst, the I/O register 760 receives data from the I/O gating and masking logic 770, and the driver drives on DQ1-DQ<i>n</i>The data on the DQS and the strobe data on the DQS.
The configuration of the memory cell array 790 enables the ECB DRAM 700 to function in ECC mode and non-ECC mode. For every eight rows of data, there are also ECC rows. This configuration is used to illustrate the way in which the embodiments of the present invention can be implemented. Here, the addressable row segment is associated with additional ECC rows; other configurations and data to ECC row ratios are also possible, as long as the burst/ The ECC controller counter and row decoder can match these other configurations.
The further operation of the ECB DRAM 700 will now be described in conjunction with FIG. 6A. It is assumed that the ECB DRAM 700 is the ECB-DRAM0 referred to in the figure. First, in response to the ACTIVE command, the sense amplifier 780 reads data from a row of the memory cell array 790, which row is selected by the row decoder 730. The data read by the sense amplifier 780 includes ECC data obtained from the ECC row and user data obtained from the data row.
Secondly, assuming that the error correction burst mode 5 is selected, the row address 0xC80 supplied by the READ command is sent to the burst/ECC controller/counter 750 (note that although Figure 7 shows a memory bank, ECB DRAM 700 also There can be multiple rank groups, and several row address bits are used as the selected rank group). The burst/ECC controller/counter 750 first sends a signal to the row decoder 740 to select the ECC row associated with the row address 0xC80. Such signaling includes, for example, providing the starting line address 0xC80 on the CA, and at the same time declaring the ECC address cancellation signal ECC-AO. When the ECC-AO signal is declared, the row decoder 740 ignores the three low-order address bits appearing on the CA, and instead selects the ninth address associated with the external addressable segment 0xC80-87. The ninth address is not directly addressable through an external supply line address, but can be addressed internally by a line decoder in ECC mode. In this way, by addressing the corresponding data segment in the ECC mode, the memory controller can only indirectly address the ECC data.
The ninth address is selected, and the I/O gating and masking logic 770 transfers the data from the ECC row associated with the external row address 0xC80-87 to the I/O register and driver 760 in the data period T0. At Q1-DQ<i>n</i>Drive up.
Secondly, the burst/ECC controller/counter changes from the ECC address state to the data address state. Continue to supply the starting line address 0xC80 to the line decoder, but cancel the declaration of ECC-AO. This causes the row decoder 740 to select the data row associated with the external address to transmit to the I/O register and driver 760 via the I/O gating and masking logic 770 for use in DQ1 during the data period T1. -DQ<i>n</i>Drive up.
The burst/ECC controller/counter increments its internal row address to 0xC81, and repeats the operation described above to supply data to the data period T2. This process is repeated twice to complete the 5-data cycle burst read operation in Figure 6A.
When the mode register 715 indicates that the ECC mode cannot be operated, the burst/ECC controller/counter 750 has not entered the ECC address state, and has not declared ECC-AO. The data address status remains the same, causing data rows (but not ECC rows) to be read in a 4-data cycle burst read operation.
The operation in the error correction write burst mode is similar. In the appropriate data cycle, the burst/ECC controller/counter 750 declares ECC-AO to cause the ECC row associated with the data row segment to be indicated by the CA to be selected for writing. The length of the write burst is extended to match the additional data period in the data correction write burst mode. As explained above, the ECC data relies on the data mask signal DM to simplify the logic and allow the memory controller to determine which CC data will be written based on a detailed criterion.
The mode register method for indicating ECC mode and non-ECC mode has been explained. In such a system, unless it is changed by the memory controller, a mode (such as non-ECC) can be selected as the internal device. Another way to indicate ECC mode and non-ECC mode can provide two different commands. For example, depending on the data standard indicated by the processor, this method allows the memory controller to effectively mix ECC data bursts and non-ECC data bursts.
Although a 4-chip module and a 64-bit data bus are shown, it is only an example, and other numbers of chips or data bus widths can be used. For example, a 1-chip, 2-chip or 8-chip module can also be implemented according to the aforementioned principles. The module does not need to have a single row of memory components, for example, two rows of 8 chips can each be included in the module. The present invention can also be used in a system having a memory component mounted on the same circuit board as a processor using the memory component.
Those skilled in the art understand that the ideas taught in this article can be adjusted to specific uses in a variety of other advantageous ways. In particular, those skilled in the art understand that the specific embodiments described herein are selected from other implementations that will be apparent when studying this disclosure. For example, multiple temporal configurations of different user data and ECC data in the burst are all possible, even though part of the temporal configuration may mix ECC data and user data in part or all of the data cycle. Although the DRAM embodiments have been described, the principles described here are the same as applying the principles to memory cell configuration and data transfer rather than to memory types. These principles are equally applicable to other types of semiconductor memory. Such as static memory, flash memory, etc. The specific functional configurations of the element embodiments described herein provide a possible functional grouping, but these functions can be subdivided and/or combined in a variety of other combinations that fall within the scope of the accompanying patent application.
The purpose of the present invention is error correction coding. However, those skilled in the art understand that the auxiliary memory space used for ECC and the burst transfer data cycle can also be used to store and retrieve any auxiliary data. Processors and/or memory controllers are deployed with addressable memory address ranges. Associated auxiliary information.
Many of the features shown here are design options, and many other design options have been deleted because they belong to the technical scope of the industry and/or are based on various implementation decisions. These minor modifications are included in the scope of the embodiments of the present invention, and are intended to fall within the scope of the patent application.
The previous embodiment is for illustration only. Although the description may refer to "one", "one", "another", or "several" embodiments in several places, these terms do not necessarily mean that these descriptions refer to the same embodiment, or that these features only refer to the same embodiment. Apply to a single embodiment.
<p>100. . . computer system</p><p>120. . . processor</p><p>125. . . Front bus</p><p>130. . . Memory Controller / Hub (MCH)</p><p>140. . . Data bus</p><p>150. . . Address/Command (ADD/CMD) bus</p><p>300. . . computer system</p><p>320. . . processor</p><p>330. . . Memory controller</p><p>335. . . ECC register bank group</p><p>340. . . Data bus</p><p>350. . . Address/Command (ADD/CMD) bus</p><p>700. . . ECB DRAM</p><p>710. . . Address and control logic</p><p>715. . . Mode register</p><p>720. . . Address register</p><p>730. . . Column decoder</p><p>740. . . Row decoder</p><p>750. . . Burst/ECC Controller/Counter</p><p>760. . . I/O registers, drivers and receivers</p><p>770. . . I/O gating and masking logic</p><p>780. . . Sense amplifier</p><p>790. . . Memory cell array</p>
Figure 1 shows the processor and several memory system components of the prior art computer system; Figure 2 shows the timing diagram of burst mode data transmission on the data bus in Figure 1; Figure 3 contains an embodiment according to the present invention , A block diagram of the processor and several memory system components of the computer system; Figures 4A, 4B, 5, 6A, 6B, and 6C show the timing diagram of error-corrected burst mode data transmission according to several embodiments of the present invention And Figure 7 contains a block diagram of a DRAM device according to an embodiment of the present invention.
12 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12
18 members in 8 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 10995850 | United States of America | – | |
| 99585004 | United States of America | A | |
| 99585004 | United States of America | A | |
| 10995850 | – | – | – |
| US20040995850 | – | – | – |
Members18
| Document | Office | Kind | |
|---|---|---|---|
| WO2006057963A2 | World Intellectual Property Organization (WIPO) | A2 | |
| US2006123320A1 | United States of America | A1 | |
| WO2006057963A3 | World Intellectual Property Organization (WIPO) | A3 | |
| TW200627469A | Taiwan Province of China | A | |
| GB0706172D0 | United Kingdom | D0 | |
| KR20070051930A | Republic of Korea | A | |
| GB2433624A | United Kingdom | A | |
| CN101036131A | China | A | |
| DE112005002390T5 | Germany | T5 | |
| JP2008521160A | Japan | A | |
| GB2433624B | United Kingdom | B | |
| US7464241B2 | United States of America | B2 | |
| TWI304591BThis record | Taiwan Province of China | B | |
| KR100884096B1 | Republic of Korea | B1 | |
| CN101036131B | China | B | |
| JP4777358B2 | Japan | B2 | |
| JP2011243206A | Japan | A | |
| JP5399442B2 | Japan | B2 |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Annulment or lapse of patent due to non-payment of feesLapsedMM4A | MM4A |
Numbers
- Publication
- I304591
- Publication, DOCDB
- I304591
- Publication, EPODOC
- TWI304591B
- Application
- 94140809
- Application, DOCDB
- 94140809
- Application, EPODOC
- TW20050140809
Titles4
- Chinese
- 支援時間性多工錯誤校正編碼之記憶體異動叢發操作與記憶體構件
- English
- MEMORY TRANSACTION BURST OPERATION AND MEMORY COMPONENTS SUPPORTING TEMPORALLY MULTIPLEXED ERROR CORRECTION CODING
- Unlabeled
- 支援時間性多工錯誤校正編碼之記憶體異動叢發操作與記憶體構件
- Unlabeled
- Supports time-based multiplex error correction coding for memory change burst operations and memory components
Classification
- CPC, 8
- G11C5/04
- G06F12/0879
- G11C29/42
- G11C7/1006
- G11C7/1027
- G06F13/287
- G11C7/1051
- G11C7/00
- IPC, 1
- G11C7 00