Patent Publication Number: US-9904596-B2

Title: Serial bus event notification in a memory device

Description:
CROSS REFERENCE TO OTHER APPLICATIONS 
     This application is a continuation-in-part of U.S. patent application Ser. No. 15/354,773, entitled SERIAL BUS DRAM ERROR CORRECTION EVENT NOTIFICATION, filed Nov. 17, 2016, which is a continuation-in-part of U.S. patent application Ser. No. 14/279,113, entitled DRAM ERROR CORRECTION EVENT NOTIFICATION, filed May 15, 2014, now U.S. Pat. No. 9,529,667, issued Dec. 27, 2016, which applications are incorporated herein by reference for all purposes. 
    
    
     BACKGROUND OF THE INVENTION 
     Modern day semiconductor memories have been produced with very high storage capacities (hundreds of millions of bits) with scaling down of transistors and the power source voltage. However, an incremental increase in storage capacity with low power source voltage tends to reduce the reliability of these memory devices. For example, the scaling down of transistor has reduced the capacitance in each memory cell, often resulting in random one-bit error due to cosmic radiation or alpha radiation or other random event. There are also coupling effects internal to the silicon, silicon aging effects, and DRAM bits changing state before a refresh due to increased temperatures. These random one-bit errors occur frequently enough that such errors can no longer be ignored as these devices are employed into systems where a bit-error could have a catastrophic consequence. The increase in the number of cells in memory devices tends to reduce the mean time to failure (MTTF) of the entire memory device. As a result, the level of reliability required for the memory device become increasingly stringent. In some applications, semiconductor memory devices have been implemented with error correction to improve the reliability of the memory devices. 
     Error correction code (ECC) is a technique that can be used to reduce or recover bit errors in memory devices. A well know error correction code is the Hamming code, which appends a series of check bits to a data word as the data word is stored in the memory device. Upon a read operation, the retrieved check bits are compared to recalculated check bits to detect and correct bit errors in the read out data. By adding more check bits and appropriately overlapping the subsets of data bits represented by the check bits, these error correcting codes may provide for multiple error corrections and detection. ECC error correction operation is performed transparent to the user or to the system in which the memory device is incorporated. The read out data from the memory device bears no distinction between original data or corrected data. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings. 
         FIG. 1  is a block diagram of a memory device implementing an error correction event notification method using a serial data bus interface in embodiments of the present invention. 
         FIG. 2  illustrates a memory bank n of the memory device  60  organized as K words of 16-bit memory data in one example. 
         FIG. 3  illustrates mode register assignments for a set of mode registers which can be incorporated into the memory device of  FIG. 1  to implement the error correction event notification method in embodiments of the present invention. 
         FIG. 4  is a flowchart illustrating the error correction event notification method using a serial bus interface in a memory device implemented with error correction in an alternate embodiment of the present invention. 
         FIG. 5  illustrates mode register assignments for a set of mode registers which can be incorporated into the memory device of  FIG. 1  to implement the error correction event notification method using a serial bus in embodiments of the present invention. 
         FIG. 6  is a block diagram of a memory device implementing an error correction event notification method using an I2C serial data bus interface in embodiments of the present invention. 
         FIG. 7  illustrates register assignments for the ECC registers which can be incorporated into the memory device of  FIG. 6  to implement the error correction event notification method in embodiments of the present invention. 
         FIG. 8  is a flowchart illustrating the error correction event notification method using an I2C serial bus interface in a memory device implemented with error correction in embodiments of the present invention. 
         FIG. 9  is a schematic diagram of a system including multiple memory devices communicating with a controller using an I2C serial data bus in one example. 
         FIG. 10  illustrates two exemplary I2C address frames in some examples. 
     
    
    
     DETAILED DESCRIPTION 
     The invention can be implemented in numerous ways, including as a process; an apparatus; a system; and/or a composition of matter. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. 
     A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured. 
     In embodiments of the present invention, a memory device implementing error correction is configured to record the memory location of an error correction event and to provide a notification thereof. In this manner, a system or a user using the memory device of the present invention may monitor the error correction event notification to obtain information on the occurrence of error correction events and/or the memory locations of the bit errors. Meanwhile, data read out from the memory device continues with the error checking and correction operation being performed transparent to the data read out process. The error correction event notification method of the present invention can be implemented in a memory device to give insight into the health of the memory device and enabling preventive repair or replacement of the memory device or system in which it is used when needed. 
     In some embodiments, a memory device incorporates a serial data bus coupled to the control circuit of the memory device to provide direct access to the error correction control circuit and to the error correction event notification information stored in mode registers of the control circuit. The error correction event notification information includes error correction event notification data and functions. The serial data bus enables access to the error correction control functions and to the error correction event notification information without requiring modifications to the memory controller used to control and communicate with the memory device. Furthermore, the serial data bus enables access to the error correction control functions and to the error correction event notification information without interfering with and independent of the normal memory operation of the memory device. In some embodiments, the serial data bus is an I 2 C serial data bus. 
     In embodiments of the present invention, a memory device implements error correction code (ECC) as the error correction technique to recover from bit errors in the memory array. One example of an error correction code is the Hamming code, which appends a series of check bits to a data word as the data word is stored in the memory device. Upon a read operation, the retrieved check bits are compared to recalculated check bits to detect and correct bit errors in the read out data. Other error correction methods and techniques may be applied in the memory device in other embodiments. The use of the ECC error correction technique in the present description is illustrative only. Accordingly, in some embodiments, the error correction event notification method of the present invention is implemented in a memory device using ECC for error detection and correction where the memory array stores memory data and associated check bits for performing ECC operation. In the present description, an error correction event, also referred to as an “ECC event,” occurs when an error is detected in the read out data from the memory array and the stored check bits are used to recover the correct read out data. 
     In some embodiments, the error correction event notification method is implemented in a monolithic memory device. A monolithic memory device refers to a standalone memory integrated circuit and may also be referred to as a memory integrated circuit or a memory chip. A monolithic memory device provides primarily data storage functions and is to be distinguished from an integrated circuit with an embedded memory formed thereon where the integrated circuit has primary functions other than for storing data. For example, a microprocessor integrated circuit with embedded memory is not a monolithic memory device in the present description. In the present description, the memory device may be a volatile memory device, such as a random access memory (SRAM) device, including static random access memory (SRAM) devices, dynamic random access memory (DRAM) devices, synchronous DRAM (SDRAM) devices, and double data rate random access memory (DDR RAM) devices. Furthermore, in the present description, the memory device may further be a non-volatile memory device, such as FLASH memory devices, or other types of persistent storage devices. 
     In a conventional memory device implementing ECC, the ECC operation is transparent to the system or the user. The system or the user of the memory device does not know which, if any, of the read out data has been error corrected. Transparent error correction operation in the memory read out process is intentional and is viewed as a benefit of the error correction technique in that errors in the memory read out data are automatically corrected without involvement or intervention from the external system or a user. 
     Increasingly, memory devices are being incorporated into safety systems or into systems where safety is a primary concern. For example, DRAM devices are being incorporated into automobile safety equipment or systems, such as machine vision camera systems used for lane departure warning and blind spot detection, or automotive radar systems that are used for adaptive cruise control and collision avoidance systems. As memory devices with ECC are applied in these safety-critical applications, it may be necessary to know actually when an ECC event has occurred and/or when the read out data has been ECC corrected. For example, international standards, such as the ISO26262 standard, may require a system to have knowledge of an error correction event occurring in the system during the course of operation. The system may also need to know the location in the memory array where the error is occurring in order to determine if an error persists at the same location. In embodiments of the present invention, a memory device with ECC implements the error correction event notification method of the present invention to record the occurrence of an error correction event in the memory device. Additional information, such as the location of the error in the memory device, may also be recorded and stored in the memory device. The system or a user may monitor the ECC event notification to keep track of occurrences of ECC events. The system or user may further obtain information concerning the memory locations at which each ECC event occurs to determine if compensating action needs to be taken. 
     In embodiments of the present invention, the error correction event notification method is implemented in a memory device using the reserved or unused mode register cells in the mode registers or control registers of the memory device for error correction event notification. In this manner, error correction event notification can be provided using existing circuit elements in the memory device, without requiring modification of or addition to the memory device circuitry. In one embodiment, unused or reserved mode register cells in the mode registers of the memory device are used to implement error correction event notification and also to store error correction event data, such as the memory bank ID and the memory address location where the error correction event has occurred. In alternate embodiments of the present invention, the error correction event notification method is implemented in a memory device using special purpose registers that are provided in the memory device apart from the mode registers. The special purpose registers may be provided to implement error correction event notification and also to store error correction event data, such as the memory bank ID and the memory address location where the error correction event has occurred. In the present description, registers or register cells, whether the reserved mode register cells or the special purpose registers, that are used for error correction event notification are referred to as “ECC event registers.” An external system, such as a memory controller, coupled to control and communicate with the memory device, may access the designated ECC event registers, such as the “ECC event” mode register cell, to obtain the error correction event notification information. 
     ECC Event Notification Using a Serial Data Bus 
     Conventional memory controllers are often designed to access mode registers that are assigned for control operations and functions under the industry standard specification. The conventional memory controllers are typically not provided with means to access the unused or reserved mode registers or mode register cells as these mode registers or mode register cells are not used under the industry standard specification. Therefore, the conventional memory controllers may have to be modified in order to enable access to these unused or reserved mode register cells or the special purpose register cells to obtain the error correction event notification information. In some cases, modifications to memory controllers are not feasible or practical. 
     In embodiments of the present invention, a memory device, implementing an error correction event notification method described herein, incorporates a serial data bus coupled to the control circuit of the memory device to provide direct access to the error correction event notification information generated by the error correction event notification method and stored in the ECC event registers, such as the mode registers of the control circuit. Furthermore, the memory device uses the serial data bus to control the ECC functions, such as to turn the ECC function on or off in the memory device. The ECC functions may be controlled by accessing an ECC control circuit in the control circuit of the memory device through the serial data bus. The serial data bus is provided as an external interface to the memory device to enable an external system to communicate with the control circuit on the serial data bus to control or access the ECC functions of the memory device through the use of a serial data interface protocol. In this manner, the serial data bus enables an external system, such as microprocessor, to directly access and control the error correction event notification data and functions that are stored in the ECC event registers, without requiring any modification to the memory controller itself. For example, an external system, or a memory controller, may use a serial data interface client to communicate with the memory device on the serial data bus to access and control the error correction event notification information. 
     In some embodiments, the ECC control circuit and the associated ECC functions may be accessed by both the serial data bus and the parallel interface bus for the address and command signals. In particular, a memory device includes a parallel interface bus coupled to the control circuit to provide the address and command signals. This standard parallel interface bus can be used in addition to the serial data bus of the present invention to access the ECC control circuit and functions. In this manner, flexibility in access to the ECC control circuit is ensured. 
     In the present description, error correction event notification information refers to both the error correction event notification data, such as the ECC event indicator, the memory bank ID and the memory location address, and the error correction event notification control functions, such as the ECC Pin assignment and clearing or resetting of the values of the ECC event registers. 
     In some embodiments, the error correction event notification information are stored in unused or reserved mode registers of the control circuit of the memory device where the other mode registers of the control circuit are used to store control data for the control operation of the memory device, including control data for configuring operational functions and features of the memory device. In other embodiments, the error correction event notification information is stored in special purpose registers that are specifically designated for the error correction event notification and information. 
     In embodiments of the present invention, the memory device is provided with the serial data bus which is used to configure the error correction event notification function, such as to set the ECC Pin, and also to retrieve the error correction event notification data, such as the address location of the ECC error. In some embodiments, the serial data bus is a synchronous serial communication interface formed as a multi-wire serial bus. In one example, the serial data bus may include a serial clock signal, a serial data input signal, and a serial data output signal. In other examples, the serial data bus may further include an enable signal to enable the serial data bus. 
     In some embodiments, the serial data bus incorporated in the memory device is a Serial Peripheral Interface (SPI) bus. The Serial Peripheral Interface (SPI) is a synchronous serial communication interface that provides full-duplex synchronous serial communication between master and slave devices. The SPI bus is a four-wire serial bus including four logic signals with signaling convention specified by the SPI specification. In particular, the logic signals of the SPI bus includes: a serial clock (SCLK), a Master Output/Slave Input (or Serial Data Input SDI), a Master Input/Slave Output (or Serial Data Output SDO), and a Slave Select (or Enable EN). 
     In other embodiments, the serial data bus incorporated in the memory device is an PC (Inter-Integrated Circuit) bus. The I 2 C is a multi-master, multi-slave, single-ended, serial computer bus. The I 2 C is typically used for attaching lower-speed peripheral integrated circuits to processors and microcontrollers in short-distance, intra-board communication. The I 2 C bus is sometimes referred to as I2C or IIC bus. The I 2 C bus includes two wires called SCL and SDA. The SCL wire is the clock line used to synchronize data transfers over the I 2 C bus. The SDA wire is the data line. 
     In embodiments of the present invention, the serial data bus is coupled to the control circuit of the memory device to provide direct access to the error correction event notification information. It is instructive to note that there are conventional memory devices with serial data interfaces used for memory data input and output or address/command input and output. In these conventional memory devices, the serial data bus is used for memory data or for the address and command used to access memory data. In embodiments of the present invention, a serial data bus is added to a memory device and configured for use in control functions only. The use of a serial data bus for control functions of a memory device has not been previously described. 
     In some embodiments, a memory device, such as a DRAM, includes a parallel data bus for memory data and address/command and a serial data bus for error correction event notification information.  FIG. 1  is a block diagram of a memory device implementing an error correction event notification method using a serial data bus interface in embodiments of the present invention. Referring to  FIG. 1 , a memory device  60  includes a memory array  12  for storing memory data. The memory device  60  includes an address/command input terminal  52  to receive an M-bit input address Addr to access a memory location in the memory array  12 . The memory device  60  also receives commands on the address/command input terminal  52 . The memory device  60  further includes a data terminal  54  being a P-bit input/output data terminal to receive input memory data and to provide output memory data (or read out data). Thus, the P-bit memory data DQ may be write data or read data depending on the operation mode of the memory device. In the present embodiment, the address/command input terminal  52  and the data terminal  54  are both configured as parallel data buses. The M-bit input address Addr or commands are received on an M-bit parallel data bus as the address/command input terminal  52 . Meanwhile, the P-bit memory read data or the P-bit memory write data are received or provided on a P-bit parallel data bus as the data terminal  54 . 
     The memory device  60  in  FIG. 1  is an example representation of a random access memory device, such as a DRAM device. The configuration of memory device  60  in  FIG. 1  is illustrative only and is not intended to be limiting. The memory device  60  may include other elements or components not shown in  FIG. 1  for simplicity reasons. Furthermore, the memory device  60  is a monolithic memory integrated circuit, or a standalone memory chip. The address/command input terminal  52  and the data terminal  54  are formed as multiple input or input-output pins on the integrated circuit. The memory integrated circuit may include other input and output terminals not shown in  FIG. 1  for simplicity reasons. For example, the memory integrated circuit may include input-output pins for the power and ground connections and for control signals. 
     In the present embodiment, the memory device  60  implements ECC as the error correction technique to recover form bit errors in the memory array. In some embodiments of the present invention, the memory device  60  is a low power double data rate synchronous DRAM, or LPDDR2 SDRAM. The LPDDR2 SDRAM implements the error correction event notification method described above to enable the DRAM device to provide notification of an occurrence of an error correction event during data read out. In this manner, the LPDDR2 DRAM device can be implemented in systems requiring compliance with intentional standards, such as the ISO26262 standard, which require systems to be aware of the occurrence of an error correction event in a memory device incorporated therein. 
     Referring still to  FIG. 1 , the memory device  60  includes an address latch  16  to latch an input address Addr. The latched address is divided into a row address which is coupled to a row decoder  18  and a column address which is coupled to the column decoder  20 . The row decoder decodes the row address and provides the decoded row address to the memory array  12  to activate an associated word line in the memory array. The column decoder decodes the column address and provides the decoder column address to an I/O gating circuit  24  to activate one or more bit lines in the memory array. In this manner, one or more memory cells associated with the activated word line and the activated bit lines are made available for either read, write or erase operation. In practice, the memory device activates the memory cells associated with all of the I/Os of the memory device. For example, the memory cells associated with one word of data or sixteen I/Os, may be activated for access based on the input address. 
     In the present illustration, the memory array  12  is organized as N+1 banks of memory cells, each bank storing K words of P-bit memory data. For example, the memory array  12  may be organized as 8 banks of 8Meg words of 16-bit memory data.  FIG. 2  illustrates a memory bank n of the memory device  60  organized as K words of 16-bit memory data in one example. To implement ECC, the memory array  12  of the memory device  60  includes a main memory array  13  for storing memory data and an ECC memory array  14  for storing ECC check bits. 
     The memory device  60  further includes a sense amplifier  22  to facilitate read out of stored memory data, including the ECC check bits. The sense amplifier  22  may include a bank of sense amplifier circuits for a set of I/Os. Memory data read out of the main memory array  13  is stored in read registers  26  while the corresponding ECC check bits read out of the ECC memory array  14  are provided to an ECC decoder  28  for processing. The read out data from the read registers  26  and the processed ECC check bits from ECC decoder  28  are provided to an ECC logic circuit  30  to perform error checking and correction. In particular, the ECC logic circuit  30  calculates check bits from the read out data and compares the calculated check bits with the processed check bits read from the ECC memory array  14  to detect and correct bit errors in the read out data. The read out data, which may or may not be error corrected, is then provided to a data output circuit  32  which provides the read out data as the output data DQ on the data terminal  54 . The data output circuit  32  may provide buffering or clocking functions. In some embodiments, the ECC logic circuit  30  determines if an error correction event has occurred. In some examples, the ECC logic circuit  30  may use Hamming Code logic and the ECC logic circuit would determine if the data was corrected by the Hamming Code or not. 
     To write data into the memory device  60 , the memory device  60  further includes write drivers  34  configured to receive input memory data DQ on data terminal  54 . The write drivers  34  may include a bank of write driver circuits for a set of I/Os. The write data from the write drivers  34  is coupled through sense amplifier  22  to be written into the main memory array  12 . Meanwhile, the write data is also provided to an ECC check bit generation circuit  36  (or “ECC check bit generator”) to generate the ECC check bits for the data being written into the memory array  13 . The corresponding ECC check bits are then stored in the ECC memory array  14 . In some embodiments, the ECC check bit generation circuit  36  may use a Hamming Code as the error correction code. 
     The memory device  60  includes a control circuit  40  to control the operation of the memory device. In some configurations, commands for the memory device  60  are also received on the address/command input terminal  52  and such operational commands are provided to the control circuit  40 . Control circuit  40  is in communication with the various circuit elements in memory device  60  to control the memory device in response to the received commands, such as to read data, to write data, or to configure the memory device. The control circuit  40  includes an error correction control circuit  47  (or “ECC control circuit”) used to control or configure the ECC functions of the memory device  60  via the Serial Data Bus  70 . For example, the ECC control circuit  47  may be used to turn the ECC function of the memory device  60  on and off, or to turn on or off the external ECC pin  56 , and various other functions. The ECC control circuit  47  may also be used to read the ECC status, the memory location of ECC Events, and to clear the ECC event status. The control circuit includes mode registers  45  used to store configuration information for the memory device. Mode registers  45  are sometimes referred to as “control registers” and are used to store values for controlling various operational functions and features of the memory device, such as how the memory device should be addressed and the functions of the input/output pins of the memory device. 
     In some embodiments, the control circuit  40  is configured to control the ECC decoder  28  and the ECC check bit generator  36  through a control bus  38 . In one example, ECC control circuit  47  in the control circuit  40 , in response to commands received on the input terminal  52  or ECC configuration information stored in the mode register cells, generates the control signal to turn the ECC function on or off, that is, to enable or disable the ECC function. In other words, the control circuit  40  can be configured to enable or disable the ECC decoder  28  and the ECC check bit generator  36 . 
     In embodiments of the present invention, the error correction event notification method is implemented in the memory device  60  using the reserved or unused mode register cells in the mode registers  45  for error correction event notification and for error correction function configuration information. In this manner, error correction event notification can be provided using existing circuit elements in the memory device, without requiring modification of or addition to the memory device circuitry. In the present description, mode registers or mode register cells used for error correction event notification are referred to as “ECC event registers.” 
       FIG. 3  illustrates mode register assignments for a set of mode registers which can be incorporated into the memory device of  FIG. 1  to implement the error correction event notification method in embodiments of the present invention. In the present example, the mode register assignments are illustrated for a LPDDR2 DRAM and are extended from the JEDEC standard. The mode register assignments in  FIG. 3  are illustrative only and are not intended to be limiting. The error correction event notification method can be applied in other memory devices having other mode register assignment configuration. 
     In some embodiments, the ECC event registers include an ECC On/Off mode register cell which is used to configure the ECC function by enabling or disabling the ECC function. The ECC event registers may further include a PIN mode register cell which is used to assign a pin or input/output terminal of the memory device as the ECC event notification pin. The memory device  60  may designate a pin, such as ECC pin  56 , for use as an ECC event notification and may make use of previously unused or no-connect pin. In the present embodiment, the ECC logic circuit  30  controls the ECC pin  56  to provide the ECC event notification. In other embodiments, the ECC pin  56  may be controlled indirectly by the ECC logic circuit. There may be intervening circuitry between the ECC logic circuit  30  and the ECC pin  56 . Furthermore, in some embodiments, the ECC pin  56  may be initialized to a first state (e.g., 0V) and may be asserted to a second state (e.g., 5V) in response to the ECC event signal generated by the ECC logic circuit  30 . 
     More specifically, referring to  FIG. 3 , the set of mode registers  100  includes mode registers  0  to  15  with each mode register include eight mode register cells OP 0  to OP 7 . Mode registers  100  store values which are used to configure various operational features of the memory device, such as the operational mode of the memory device and/or the functions of one or more pins of the memory device. In the present example, mode register MR 0  is assigned to store device information and mode register cells OP 0  and OP 1  are assigned to hold device information values DAI and DI. The remaining mode register cells are left unused or reserved. In another example, mode register MR 1  is assigned to store device feature set  1  and all of the mode register cells OP 0  to OP 7  are assigned to feature configuration values. Under any given standard, the mode registers will include a number of unused or reserved mode registers or mode registers cells. For example, mode registers MR 11  to MR 15  are reserved and not used. In the present illustration, the unused or reserved register cells are illustrated as shaded. 
     In embodiments of the present invention, the error correction event notification method makes use of the unused or reserved mode register cells to store error correction related information. In this manner, the error correction event notification method can control the operation state of the event notification method, including initializing states, monitoring error correction events, recording events and resetting states. The error correction event notification method can further make use of the unused or reserved mode register cells to assign an external pin of the memory device for error correction event notification. 
     In the embodiment shown in  FIG. 3 , the mode registers  100  includes mode register cells that are configured for ECC event notification. Specifically, mode register cell OP 7  in mode register MR 0  is assigned to provide an error correction event (or “ECC Event”) notification. The ECC Event mode register cell is a read only cell for external systems. The ECC Event mode register cell has a first value (e.g., “0”) to indicate no error correction event has occurred and a second value (e.g., “1”) to indicate an error correction event has occurred. In embodiments of the present invention, the ECC logic circuit  30  ( FIG. 1 ) asserts the ECC event signal which is coupled to the mode registers. When an ECC event is detected, the ECC event signal will be asserted to write the ECC Event mode register cell to the second value (“1”). In this manner, a system using the memory device, through its firmware, may monitor the ECC Event mode register cell for the occurrence of an error correction event. In particular, the system may use standard register access method to read the value of the ECC Event mode register cell. 
     The mode registers  100  further make use of the reserved mode registers MR 11  to MR 15  to provide information related to an error correction event. In one embodiment, mode register cell OP 1  in mode register MR 11  is assigned a value “PIN” which is used to assign a pin or input/output terminal of the memory device as the ECC event notification pin. The PIN mode register cell is a write only cell by external systems. The PIN mode register cell is written to a first value (e.g., “0”) to indicate no external pin is used for event notification and is written to a second value (e.g., “1”) to indicate the ECC event notification should be provided to an external pin of the memory device. The system, through its firmware, may write to the PIN mode register cell if ECC event notification on an external pin is desired. The memory device may designate a pin for use as an ECC event notification and may make use of previously unused or no-connect pin. For example, as shown in  FIG. 1 , an ECC terminal  56  ( FIG. 1 ) is designated as the ECC event notification pin (“ECC pin”). When the PIN mode register cell has been written to the second value (“1”) by an external system, the ECC pin will be asserted in response to the ECC event signal being asserted. In the example shown in  FIG. 1 , the ECC logic circuit  30  controls the ECC pin  56  to provide the ECC event notification. In other embodiments, the ECC pin  56  may be controlled indirectly by the ECC logic circuit. There may be intervening circuitry between the ECC logic circuit  30  and the ECC pin  56 . Furthermore, in some embodiments, the ECC pin may be initialized to a first state (e.g., 0V) and may be asserted to a second state (e.g., 5V) in response to the ECC event signal generated by the ECC logic circuit  30 . 
     In this manner, a system or a user can use standard register access to read the ECC Event mode register to monitor for ECC events. Alternately, the system or user can write to the PIN mode register cell and use the designated ECC pin to monitor the ECC notification. This allows for external hardware to recognize the event and allows for external processors to create Interrupt routines for external events instead of monitoring them in DRAM operations registers. 
     In one embodiment, mode register MR 12  is used to store the values indicating the memory bank in which the ECC event occurred. In the present embodiment, mode register cells OP 0  to OP 7  are used to indicate which of the 8 memory banks is associated with the ECC event. The Memory Bank ID mode register cells are read only cells for external systems. Each of the Memory Bank ID mode register cells has a first value (e.g., “0”) to indicate no error correction event in that bank and a second value (e.g., “1”) to indicate an error correction event has occurred in that bank. In embodiments of the present invention, in response to the ECC logic circuit  30  ( FIG. 1 ) providing the ECC event signal, the Memory Bank ID mode register cell associated with the memory bank ID of the current address being accessed is written to the second value (“1”). In this manner, a system using the memory device, through its firmware, may use standard register access method to read the value of the Memory bank ID mode register cells to determine the memory bank in which an error correction event has occurred. 
     In one embodiment, mode registers MR 13  and MR 14  are used to store the address values indicating the memory address location in which the ECC event occurred. In the present embodiment, the memory array is assumed to be organized in 8 banks of 16-bit words. Accordingly, the mode register MR 13  stores the upper 8-bit of the memory address (ADDR-H) while the mode register MR 14  stores the lower 8-bit of the memory address (ADDR-L). In this manner, a system using the memory device, through its firmware, may use standard register access method to read the value of the ADDR-H and ADDR-L mode register cells to determine the memory address location in which an error correction event has occurred. 
     In one embodiment, mode register cell OP 0  in mode register MR 11  (“CLR ECC”) is used to clear the ECC event notification. The CLR ECC mode register cell is a write only cell by the external system. The CLR ECC mode register cell is written to a first value (e.g., “0”) for no action taken and is written to a second value (e.g., “1”) to reset or clear the ECC event registers, such as to set the ECC Event mode register cell to the reset value (“0”) and to reset the ECC pin. Furthermore, the Memory Bank ID cells, the ADDR-H and ADDR-L mode register cells are also reset to their initial state or to null value when cleared by the CLR ECC mode register cell. An external system can use standard register access to write to the CLR ECC mode register cell to clear the ECC event registers and also to reset the ECC pin. 
     In operation, the error correction event notification method responds to the occurrence of an error correction event by setting the ECC Event mode register cell or providing ECC event notification on the ECC pin, or by recording the memory bank ID and the memory address. The external system may then monitor the ECC event mode register cell, or monitor the ECC pin for the occurrence of an error correction event. The external system can collect ECC event data over time to determine if the same memory address or the same memory bank is experiencing repeated ECC correction which can indicate a serious enough problem with the memory device. The external system may then generate an alert to service the system. 
     In some embodiments of the present invention, the memory device  60  is implemented with an ECC control function to enable the ECC function to be turned on or off. Referring back to  FIG. 1 , the control circuit  40  is configured to control the ECC decoder  28  and the ECC check bit generator  36  through a control bus  38 . The control circuit  40 , in response to commands received on the input terminal  52 , provides the control signal to turn the ECC function on or off, that is, to enable or disable the ECC function. In other words, the control circuit  40  can be configured to enable or disable the ECC decoder  28  and the ECC check bit generator  36 . In some embodiments, the mode registers  45 , besides storing error correction event notification information, the mode registers may also be configured to store error correction configuration information. For example, the control circuit  40  includes a mode register cell in the mode registers  45  to store configuration information for the ECC on/off function. For example, referring to  FIG. 3 , mode register  100  may be configured to include a mode register cell for controlling the on and off status of the ECC function. Specifically, in the present example, mode register cell OP 7  in mode register MR 11  is assigned to provide an error correction function on and off status (ECC On/Off). The ECC On/Off mode register cell has a first value (e.g., “0”) to indicate that the error correction function is disabled and a second value (e.g., “1”) to indicate that the error correction function is enabled. In particular, an external system may use standard register access method to write the value of the ECC On/Off mode register cell to control the enable or disable status of the ECC function. The control circuit  40 , in response to the value of the ECC On/Off mode register cell, controls the ECC decoder  28  and the ECC check bit generator  36  through a control bus  38  to turn the ECC function on or off 
     In the above described embodiments, the ECC event registers are implemented in the unused or reserved mode register cells of the control registers of the control circuit. In this manner, the error correction event notification method can be implemented in legacy memory devices without requiring modification to the memory device circuitry. In other embodiments, the memory device may be configured with additional registers that are specifically designated for use as the ECC event registers. These additional registers are also referred to as “special purpose registers.” The error correction event notification method of the present invention may be applied to memory devices that are provided only with control registers where the unused or reserved mode registers are designated as ECC event registers. Alternately, the error correction event notification method of the present invention may be applied to memory devices that are provided with additional special purpose registers in addition to the control registers where the special purpose registers are designated as the ECC event registers for ECC event notification. Regardless of the mode register configuration, the error correction event notification method of the present invention enables access to the mode register cells through the use of a serial data bus  70 . 
     Accordingly, in the present embodiment, the memory device  60  includes a serial data bus  70  configured to interface or communicate with the control circuit  40 . In one embodiment, the serial data bus  70  is a Serial Peripheral Interface (SPI) bus. The SPI bus  70  is a four-wire bus carrying four logic signals: SCLK as the serial clock, MOSI as the serial data input, MISO as the serial data output, and /SS as the serial bus enable signal. The SPI bus  70  may be controlled under the signaling convention of the SPI specification. An external system may access the error correction event notification information stored in the mode registers  45  of the control circuit  40  through the use of the serial data bus  70 . In particular, an external system may use the serial data bus  70  to clear or reset the ECC event registers. The external system may use the serial data bus  70  to access the ECC event registers to retrieve the values stored in the ECC event registers, such as the ECC Event indicator, or the memory bank ID or the memory address stored therein. Finally, the external system may use the serial data bus  70  to control the ECC functions of the memory device through the ECC control circuit  47 , such as to turn the ECC function of the memory device on or off. The ability to control the ECC functions of the memory device is particularly useful to meet the requirements of industrial standards requiring testing of the functionality of the ECC circuitry in the memory device, as will be explained in more detail below. 
     During the memory operation of the memory device  60 , the error correction event notification method may respond to the occurrence of an error correction event by setting the ECC Event mode register cell or providing ECC event notification on the ECC pin, and by recording the memory bank ID and the memory address in the designated mode register cells. An external system may monitor the ECC Event mode register cell or monitor the ECC pin for the occurrence of an error correction event. In particular, the external system may access the ECC event registers through the serial data bus  70  to access the ECC Event mode register cell and the mode register cells storing the memory bank ID and the memory address. 
       FIG. 4  is a flowchart illustrating the error correction event notification method using a serial bus interface in a memory device implemented with error correction in an alternate embodiment of the present invention. Referring to  FIG. 4 , in response to a power on reset event at the memory device ( 252 ), the error correction event notification method  250  write to the ECC On/Off mode register cell using the serial data bus to activate or enable ECC function ( 254 ). In some embodiments, the method  250  may also write to the PIN mode register cell using the serial data bus to activate the ECC pin if the pin is used. The method  250  clears the ECC event registers using the serial data bus to access the ECC event registers. As such, the ECC pin is initialized and the other ECC event registers are set to their initial states. For example, the ECC pin, if used, is set to a reset state indicating no ECC event and the ECC Event mode register cell ( FIG. 3 ) is set to the first state (“0”). Furthermore, the Memory Bank ID cells, the ADDR-H cells, and the ADDR-L cells are reset to their initial states (“0”) or null value. Then, the method  250  monitors for the occurrence of ECC events during memory operation ( 256 ). For example, the method  250  monitors for the occurrence of ECC events during memory read operations. In one embodiment, the method  250  monitors the ECC event signal from the ECC logic circuit ( FIG. 1 ) for the occurrence of an ECC event. The method  250  determines if an ECC event has occurred ( 258 ). When no ECC event is reported, the method  250  repeats at  256  to continue to monitor for ECC event occurrence during the memory operation. 
     When an ECC event has occurred, such as indicated by the ECC event signal being asserted by the ECC logic circuit, the method  250  then set the ECC Event mode register cell to the second state (“1”) indicating the occurrence of an ECC event ( 260 ). If an ECC pin has been configured by the PIN mode register cell, the method  250  also set the ECC pin to an asserted state to indicate the occurrence of an ECC event. Next, the method  250  stores the memory bank ID and the memory address location into the respective mode registers ( 262 ). For example, the memory bank ID is stored in the respective Memory Bank ID mode register cell, the upper p-bit of the memory address is stored in the ADDR-H mode register cells and the lower p-bit of the memory address is stored in the ADDR-L mode register cells. 
     After recording an ECC event, the method  250  continues at  256  to monitor for ECC events during the memory operation. Subsequent ECC events will be recorded in the mode register cells by overwriting of previous data. With the error correction event notification information thus stored in the ECC event registers, the method  250  enables the ECC event registers to be accessed through the serial data bus ( 264 ). 
     In some cases, the external system may want to reset the values of the error correction event registers. In that case, the external system may, through the serial data bus, write to the CLR ECC mode register cell to clear or reset the values of the ECC event registers ( 266 ). When the CLR ECC mode register cell is written to the second state (“1”), the method  250  returns to  254  where the ECC pin, if used, and the ECC event registers are cleared. That is, the ECC Event mode register cell, the Memory Bank ID cells, the ADDR-H cells, and the ADDR-L cells are all reset to their initial states (“0”) or null value, and the ECC pin, if used, is initialized. The method  250  then continues with monitoring the ECC event  256  during memory operation. 
     As described above, the error correction event notification method of the present invention may be implemented in a memory device using special purpose mode registers in the control circuit, instead of the unused or reserved mode register cells of the control registers.  FIG. 5  illustrates mode register assignments for a set of mode registers which can be incorporated into the memory device of  FIG. 1  to implement the error correction event notification method using a serial bus in embodiments of the present invention. Referring to  FIG. 5 , a set of mode registers  300  includes mode registers  0  to  7  with each mode register include eight mode register cells OP 0  to OP 7 . Mode registers  300  are special purpose registers designated for use as the ECC event registers. Accordingly, the mode register cells may be assigned as needed to store error correction event notification information and error correction function configuration information. 
     In mode registers  300  as shown in  FIG. 5 , the mode register cell OP 0  in mode register MR 0  is assigned to provide an error correction event (or “ECC Event”) notification. The ECC Event mode register cell is a read only cell for external systems. The ECC Event mode register cell has a first value (e.g., “0”) to indicate no error correction event has occurred and a second value (e.g., “1”) to indicate an error correction event has occurred. In embodiments of the present invention, the ECC logic circuit  30  ( FIG. 1 ) asserts the ECC event signal which is coupled to the mode registers  300 . When an ECC event is detected, the ECC event signal will be asserted to write the ECC Event mode register cell to the second value (“1”). In this manner, an external system using the memory device, through its firmware, may monitor the ECC Event mode register cell for the occurrence of an error correction event. In particular, the external system may use the serial data bus  70  ( FIG. 1 ) to read the value of the ECC Event mode register cell. 
     In mode registers  300 , mode register cell OP 7  in mode register MR 2  is assigned a value “PIN” which is used to assign a pin or input/output terminal of the memory device as the ECC event notification pin. The PIN mode register cell is a write only cell by external systems. The PIN mode register cell is written to a first value (e.g., “0”) to indicate no external pin is used for event notification and is written to a second value (e.g., “1”) to indicate the ECC event notification should be provided to an external pin of the memory device. The external system, through its firmware, may write to the PIN mode register cell if ECC event notification on an external pin is desired. For example, as shown in  FIG. 1 , an ECC terminal  56  is designated as the ECC event notification pin (“ECC pin”). When the PIN mode register cell has been written to the second value (“1”) by an external system, the ECC pin will be asserted in response to the ECC event signal being asserted. In this manner, the system or user can write to the PIN mode register cell and use the designated ECC pin to monitor the ECC notification. 
     In one embodiment, mode register MR 4  is used to store the values indicating the memory bank in which the ECC event occurred. In the present embodiment, mode register cells OP 0  to OP 7  in the mode register MR 4  are used to indicate which of the 8 memory banks is associated with the ECC event. The Memory Bank ID mode register cells are read only cells for external systems. Each of the Memory Bank ID mode register cells has a first value (e.g., “0”) to indicate no error correction event in that bank and a second value (e.g., “1”) to indicate an error correction event has occurred in that bank. In embodiments of the present invention, in response to the ECC logic circuit  30  ( FIG. 1 ) providing the ECC event signal, the Memory Bank ID mode register cell associated with the memory bank ID of the current address being accessed is written to the second value (“1”). In this manner, an external system using the memory device, through its firmware, may use the serial data bus  70  to read the value of the Memory bank ID mode register cells to determine the memory bank in which an error correction event has occurred. 
     In one embodiment, mode registers MR 5  and MR 6  are used to store the address values indicating the memory address location in which the ECC event occurred. In the present embodiment, the memory array is assumed to be organized in 8 banks of 16-bit words. Accordingly, the mode register MR 5  stores the upper 8-bit of the memory address (ADDR-H) while the mode register MR 6  stores the lower 8-bit of the memory address (ADDR-L). In this manner, an external system using the memory device, through its firmware, may use the serial data bus  70  to read the value of the ADDR-H and ADDR-L mode register cells to determine the memory address location in which an error correction event has occurred. 
     In one embodiment, mode register cell OP 4  in mode register MR 1  (“CLR ECC”) is used to clear the ECC event notification. The CLR ECC mode register cell is a write only cell by the external system. The CLR ECC mode register cell is written to a first value (e.g., “0”) for no action taken and is written to a second value (e.g., “1”) to reset or clear the ECC event registers, such as to set the ECC Event mode register cell to the reset value (“0”) and to reset the ECC pin. Furthermore, the Memory Bank ID cells, the ADDR-H and ADDR-L mode register cells are also reset to their initial state or to null value when cleared by the CLR ECC mode register cell. An external system can use the serial data bus  70  to write to the CLR ECC mode register cell to clear the ECC event registers and also to reset the ECC pin. 
     Finally, in one embodiment, mode register cell OP 7  in mode register MR 0  (“ECC On/Off”) is used to enable or disable the ECC function. The ECC On/Off mode register cell is a write only cell by the external system. The ECC On/Off mode register cell has a first value (e.g., “ 0 ”) to indicate that the error correction function is disabled and a second value (e.g., “ 1 ”) to indicate that the error correction function is enabled. In particular, an external system may use the serial data bus to write the value of the ECC On/Off mode register cell to control the enable or disable status of the ECC function. The ECC control circuit  47  in the control circuit  40 , in response to the value of the ECC On/Off mode register cell, controls the ECC decoder  28  and the ECC check bit generator  36  through the control bus  38  to turn the ECC function on or off. 
     As described above, under the ISO26262 standard, a memory device implementing ECC function must be provided with the ability to demonstrate that the ECC function works properly. The testing scheme for the ECC function requires the ability to turn the ECC function on and off in the memory device. In embodiments of the present invention, the testing scheme uses the ECC On/Off mode register cell to instruct the control circuit of the memory device to enable or disable the ECC function, as described above. For example, as shown in  FIG. 1 , the control circuit  40  may control the ECC decoder  28  and the ECC check bit generator  36  through a control bus  38  in response to the value of the ECC On/Off mode register cell to turn the decoder or check bit generator circuits on or off. 
     In some embodiments, a testing scheme for the ECC function in a memory device includes turning on the ECC function of the memory device and writing a first data pattern to pre-determined memory locations in the memory device with the ECC function enabled. Then, the testing scheme includes turning off the ECC function and writing a second data pattern to a subset of the pre-determined memory locations in the memory device with the ECC function disabled where the second data pattern is different from the first data pattern. Then, the testing scheme includes turning on the ECC function again and reading the pre-determined memory locations. The read result should include ECC errors in the subset of memory locations where different data values were written without generating the ECC check bits. In this manner, the testing scheme simulates the occurrence of data corruption event and enables the ECC function of the memory device to be verified as operational. For example, as a result of the testing scheme, an ECC event notification should thus be generated and the memory location of the ECC event should be recorded in the mode register cells. 
     In embodiments of the present invention, the serial data bus  70  provided to the memory device  60  facilitates the testing of the ECC function by enabling the ECC function to be turned on and off through accessing the ECC control circuit  47  in the control circuit  40  using the serial data bus  70 . In some embodiment, the ECC On/Off mode register cell is written by the serial data bus  70  to configure the ECC function. Furthermore, the ECC event notification data stored in the mode registers  45  can be read through the serial data bus to verify the correct functionality of the ECC function in the memory device. 
     ECC Event Notification Using an I 2 C Serial Data Bus 
     In some embodiments, a memory device, such as a DRAM, includes a parallel data bus for memory data and address/command and an I 2 C serial data bus for error correction event notification and information.  FIG. 6  is a block diagram of a memory device implementing an error correction event notification method using an I 2 C serial data bus interface in embodiments of the present invention. Referring to  FIG. 6 , a memory device  400  includes a memory array  405  for storing memory data. The memory device  400  includes a memory control circuit  401  to receive control signals for operating the memory device. For example, the memory control circuit  401  receives an input address A[ 0 :M] to access a memory location in the memory array  405 . The memory control circuit  401  further receives command signals to control the operation of the memory device. For example, the memory control circuit  401  may receive a clock signal CK, a chip select signal CS, a write enable signal WE and other command signals associated with the operation of the memory device. More specifically, the memory control circuit  401  of the memory device  400  receives input address and command signals and is configured to control the operation of the memory device  400 . The memory control circuit  401  is in communication with the various circuit elements in memory device  400  to control the memory device in response to the received commands, such as to read data, to write data, or to configure memory device. 
     The memory device  400  further includes a data terminal  408  being a P-bit input/output data terminal to receive input memory data and to provide output memory data (or read out data). Thus, the P-bit memory data DQ may be write data or read data depending on the operation mode of the memory device. In the present embodiment, the memory data DQ is a 16 bit memory data DQ[ 0 : 15 ]. The data terminal  408  is connected to a write driver  402  for receiving write data to be written to the memory array. The data terminal  408  is also connected to a data out driver  403  for receiving read data from the memory array  405  and providing read out data to the data terminal  408 . In the present embodiment, the address and command signals and the data terminal  408  are configured as parallel data buses. The input address A[ 0 :M] or commands are received on a parallel data bus. Meanwhile, the P-bit memory read/write data DQ[ 0 : 15 ] are received or provided on a P-bit parallel data bus as the data terminal  408 . 
     The memory device  400  in  FIG. 6  is an example representation of a random access memory device, such as a DRAM device. The configuration of memory device  400  in  FIG. 6  is illustrative only and is not intended to be limiting. The memory device  400  may include other elements or components not shown in  FIG. 6  for simplicity reasons. Furthermore, the memory device  400  is a monolithic memory integrated circuit, or a standalone memory chip. The address and command input signals and the data terminal  408  are formed as multiple input or input-output pins on the integrated circuit. The memory integrated circuit may include other input and output terminals not shown in  FIG. 6  for simplicity reasons. For example, the memory integrated circuit may include input-output pins for the power and ground connections and for other control signals. 
     In the present embodiment, the memory device  400  implements ECC as the error correction technique to recover form bit errors in the memory array. In some embodiments of the present invention, the memory device  400  is a low power double data rate synchronous DRAM, or LPDDR2 SDRAM. The memory device  400  implements the error correction event notification method described above to enable the DRAM or SDRAM device to provide notification of an occurrence of an error correction event during data read out. In this manner, the DRAM or SDRAM device can be implemented in systems requiring compliance with intentional standards, such as the ISO26262 standard, which require systems to be aware of the occurrence of an error correction event in a memory device incorporated therein. 
     Referring still to  FIG. 6 , the memory control circuit  401  of the memory device  400  includes address latch and address decoder circuits (not shown) to latch and decode the input address A[ 0 :M]. The address decoder circuits typically include a row decoder and a column decoder. The row decoder decodes the row address and provides the decoded row address to the memory array  405  to activate an associated word line in the memory array. The column decoder decodes the column address and provides the decoded column address to activate one or more bit lines in the memory array  405 . In this manner, one or more memory cells associated with the activated word line and the activated bit lines are made available for either read, write or erase operation. In practice, the memory device activates the memory cells associated with all of the I/Os of the memory device. For example, for memory data DQ[ 0 : 15 ], the memory cells associated with one word of data or sixteen I/Os, may be activated for access based on the input address. In some examples, the memory array  405  may be organized as N+1 banks of memory cells, each bank storing K words of P-bit memory data, as described above with reference to  FIGS. 1 and 2 . The exact configuration of the memory array  405  is not critical to the practice of the present invention. 
     To implement ECC, the memory array  405  of the memory device  400  includes a main memory array  410  for storing memory data and an ECC memory array  412  for storing ECC check bits. ECC check bits for a corresponding memory location are stored in the ECC memory array  412  when write data is received and written to the main memory array  410 . ECC check bits for a corresponding memory location are retrieved from the ECC memory array  412  when read data is retrieved from the main memory array  410 . The memory device  400  further includes an ECC control circuit  404  coupled to the memory array  405  for performing the ECC operations. 
     To write data into the memory device  400 , the memory device  400  includes the write driver  402  configured to receive input memory data DQ[ 0 : 15 ] on data terminal  408 . The write driver  402  may include a bank of write driver circuits for a set of I/Os. The write data from the write driver  402  is provided to the ECC control circuit  404  to generate the ECC check bits. In particular, the ECC control circuit  404  may include an ECC check bit generation circuit or “ECC check bit generator” (not shown) to generate the ECC check bits for the data being written into the memory array  410 . The write data is then written into the main memory array  410  and the corresponding ECC check bits are stored in the ECC memory array  412 . In some embodiments, the ECC check bit generator may use a Hamming Code as the error correction code. 
     To read data from the memory device  400 , the memory device  400  includes a sense amplifier (not shown) coupled to the memory array  405  to facilitate read out of stored memory data, including the ECC check bits. The sense amplifier may include a bank of sense amplifier circuits for a set of I/Os. Memory data read out of the main memory array  410  and the corresponding ECC check bits read out of the ECC memory array  412  are provided to the ECC control circuit  404 . In particular, the ECC control circuit  404  may include read registers to store the read out data and an ECC decoder to decode the retrieved ECC check bits. The read out data and the decoded ECC check bits are then processed to perform error checking and correction. For example, the ECC control circuit  404  may calculate check bits from the read out data and compares the calculated check bits with the decoded check bits read from the ECC memory array  412  to detect and correct bit errors in the read out data. The read out data is corrected if a bit error is detected. The read out data is not corrected if no bit error is detected. The read out data, which may or may not be error corrected, is then provided to the data our driver  403  which provides the read out data as the output data DQ[ 0 : 15 ] on the data terminal  408 . The data our driver  403  may provide buffering or clocking functions. In some embodiments, the ECC control circuit  404  determines if an error correction event has occurred in the read out data. In some examples, the ECC control circuit  404  may use Hamming Code logic and the ECC control circuit would determine if the data was corrected by the Hamming Code or not. 
     In embodiments of the present invention, the memory device  400  implements the error correction event notification method using an I2C control circuit  406  coupled to an I2C (or I 2 C) Serial Data Bus  420  and a set of ECC registers  430  in communication with the I2C control circuit  405  and the ECC control circuit  404 . The I2C control circuit  406  receives control signals from the I2C Serial Data Bus  420  to configure the ECC function in the memory device and also to obtain information concerning ECC events from the memory device. For example, the I2C control circuit  406  may be used to turn the ECC function of the memory device  400  on or off, or to turn on or off an external ERR pin  416 , and various other functions. The I2C control circuit  406  may also be used to read ECC event information from the ECC registers  430 , such as the ECC event status, the memory location of ECC Events, and to clear the ECC event status. In the present embodiment, the memory device  400  uses a bank of special purpose registers as the ECC registers  430  for storing ECC control information and ECC event information. In other embodiments, the memory device  400  may use the reserved or unused registers in the control registers of the memory device  400  as the ECC registers, as described above. 
     In embodiments of the present invention, an external system, such as a host computer or a memory controller, can access the ECC registers  430  using the I2C serial data bus  420  to obtain ECC event notification and event information. The I2C serial data bus  420  is coupled to the I2C control circuit  406  which in turns is in communication with the ECC registers  430 . The I2C control circuit  406  may receive control data on the I2C serial data bus  420  and writes the control data to specific registers of the ECC registers  430  to control the ECC operation at the ECC control circuit  404 . In one example, the I2C control circuit  406  writes control data to a first ECC register to turn the ECC function on or off. The ECC control circuit  404 , in response to the control data stored in the first ECC register, generates the control signal to turn the ECC function on or off, that is, to enable or disable the ECC function. In other words, the ECC control circuit  404 , through the control data stored in the ECC registers  430 , can be configured to enable or disable the ECC decoder and the ECC check bit generator therein so as to control the ECC function in the memory device  400 . In another example, the I2C control circuit  406  may receive command data on the I2C serial data bus  420  to read out data stored in the ECC registers  430 . In this manner, ECC event information may be read and provided to a system external to the memory device. Furthermore, ECC event information may be accessed during normal memory operation of the memory device and without interfering with the operation of the memory device. 
     Meanwhile, the ECC control circuit, in communication with the ECC registers  430 , performs error correction for the memory device  400  in accordance with the configuration or control data stored in the ECC registers. Furthermore, the ECC control circuit  404  is configured to store information relating to an occurrence of an error correction event into the ECC registers  430 . For example, the ECC control circuit  404  may store the memory location where ECC correction has been applied. The ECC control circuit  404  may store other ECC event information, such as the type of ECC errors corrected. The ECC event information stored in the ECC registers  430  may be retrieved and provided to an external system, such as a memory controller, through the I2C Serial Data bus  430  in communication with the I2C control circuit  406 . 
     In the present embodiment, the ECC registers  430  is implemented using a set of 6 registers, denoted as ECC Register # 0  to ECC register # 5 , to store error correction event notification information and error correction function configuration information. The I2C control circuit  406  may read from the ECC registers # 0  to # 5  and may write to the ECC register # 5  only while the ECC control circuit  404  may read from the ECC register # 5  and may write to the ECC registers # 0  to # 4 . 
       FIG. 7  illustrates register assignments for the ECC registers which can be incorporated into the memory device of  FIG. 6  to implement the error correction event notification method in embodiments of the present invention. Referring to  FIG. 7 , a set of six 8-bit wide special purpose registers are designated to use as the ECC registers  430 . The ECC registers  430  includes six ECC registers, denoted as ECC Register # 0  to ECC register # 5 . Each ECC register includes eight register cells OP 0  to OP 7 . ECC Registers # 0  to # 4  are read access only registers by the I2C serial data bus. That is, the I2C serial data bus can only read data from these registers but cannot write to the registers. ECC Registers # 0  to # 4  store data that are written into the register cells by the ECC control circuit  404 . ECC Register # 5  is a read and write access register by the I2C serial data bus. That is, the I2C serial data bus can write data to and read data from the ECC Register # 5 . 
     In the present embodiment, the register cells in ECC Register # 0  are assigned as follows: register cells OP 5  to OP 7  stores a multi-bit error counter, register cells OP 2  to OP 4  stores a one-bit error counter, register cell OP 1  stores an ECC type value and register cell OP 0  stores an ECC Event value. 
     Register cell OP 0  in ECC Register # 0  is also referred to as the ECC Event register cell and is used to indicate whether an ECC event has occurred in the memory device. The ECC Event register cell is a read only cell for the I2C serial data bus. The ECC Event register cell has a first value (e.g., “0”) to indicate no error correction event has occurred and a second value (e.g., “1”) to indicate an error correction event has occurred. In embodiments of the present invention, the ECC control circuit  404  ( FIG. 6 ) generates an ECC event signal which is written to the ECC Event register cell. When an ECC event is detected, the ECC event signal will be asserted to write the ECC Event register cell to the second value (“1”). In this manner, an external system using the memory device, through the I2C serial data bus, may monitor the ECC Event register cell for the occurrence of an error correction event. In particular, the external system may use the I2C serial data bus  420  to read the value of the ECC Event register cell to obtain the status of the error correction events. 
     Register cell OP 1  in ECC Register # 0  issued to indicate the type of ECC error that has occurred. In particular, the ECC type register cell has a first value (e.g., “0”) to indicate a one-bit error correction and a second value (e.g., “1”) to indicate aa multiple bit error correction. That is, the ECC type register cell stores an indicator whether the error correction event that has occurred is a one-bit error or a multi-bit error. The ECC Register # 0  further stores the count value for one-bit errors (register cells OP 2 -OP 4 ) and the count value for multi-bit errors (register cells OP 5  to OP 7 ). That is, the one-bit error count register cells store how many single bit errors have occurred on the memory device and the multi-bit error count register cells store how many multiple bit errors have occurred on the memory device. 
     In the present embodiment, the register cells in ECC Register # 1  are assigned to store the memory address location in which the last ECC event has occurred. In particular, register cells OP 0  to OP 2  in ECC Register # 1  store the memory bank address[ 2 : 0 ] indicating the memory bank in which the ECC event occurred. Register cells OP 3  to OP 7  in ECC Register # 1  store the lower five bits of the column address [ 4 : 0 ] . The ECC Register # 1  is a read only register by the I2C serial data bus. The bank address and column address values are written into the ECC Register # 1  by the ECC control circuit  404 . 
     In the present embodiment, the register cells in ECC Register # 2  are assigned to store the upper eight bits of the column address [ 12 : 5 ] in which the last ECC event has occurred. The register cells in ECC Register # 3  are assigned to store the lower eight bits of the row address [ 7 : 0 ] in which the last ECC event has occurred. The register cells in ECC Register # 4  are assigned to store the upper eight bits of the row address [ 15 : 8 ] in which the last ECC event has occurred. The ECC Registers # 2 - 4  are read only registers by the I2C serial data bus. The column address and row address values are written into the ECC Registers # 2 - 4  by the ECC control circuit  404 . 
     The ECC Register # 5  stores values for configuring the ECC operation in the memory device. In the present embodiment, the register cells in ECC Register # 5  are assigned as follows: register cell OP 4  stores a Clear ECC (CLRECC) value, register cells OP 2  to OP 3  store an ERR type value, register cell OP 1  store an ERRON value, and register cell OP 0  store an ECCON value. Register cells OP 5  to OP 7  are reserved or unused. The register cells in the ECC Register # 5  are available for both read and write operations by the I2C serial data bus. 
     Register cell OP 0  in ECC register # 5  stores the ECCON value which is used to enable or disable the ECC function in the memory device. The ECCON register cell has a first value (e.g., “0”) to indicate that the error correction function should be disabled and a second value (e.g., “1”) to indicate that the error correction function should be enabled. In particular, an external system, such as a memory controller, may use the I2C serial data bus to write the value of the ECCON register cell to control the enable or disable status of the ECC function. The ECC control circuit  404  enables or disables the ECC function in response to the value of the ECCON register cell. By writing the ECCON register cell using the I2C serial data bus  420 , the ECC function of the memory device  400  may be turned on or off. 
     Register cell OP 1  in ECC register # 5  stores the ERRON value which is used to enable or disable an output terminal of the memory device as the ECC event notification pin. In the present embodiment, the memory device  400  includes an ERR terminal  416  to use as the ECC event notification pin. The ERR terminal or pin  416  may be activated or deactivated by writing to the ERRON register cell. The ERRON register cell is written to a first value (e.g., “0”) to indicate no external pin is used for event notification and is written to a second value (e.g., “1”) to indicate the ECC event notification should be provided to the external pin of the memory device, such as the ERR pin. An external system, through the I2C serial data bus, may write to the ERRON register cell if ECC event notification on an external pin of the memory device is desired. For example, as shown in  FIG. 6 , the ERR terminal  416  of the memory device  400  is designated as the ECC event notification pin. When the ERRON register cell has been written to the first value (“0”) through the I2C serial data bus, the ERR pin is not enabled and no ECC event notification is provided. For example, the ERR pin may be driven to a tri-state or high impedance mode. When the ERRON register cell has been written to the second value (“1”) through the I2C serial data bus, the ERR pin is enabled and will be deasserted (e.g. at a logical low level) until an ECC event has occurred. The ERR pin will be asserted (e.g. at a logical high level) in response to an occurrence of an ECC event, such as when the ECC Event register cell is being written to the second value (“1”). In this manner, a host system, or a memory controller can write to the ERRON register cell and use the designated ERR pin to monitor the ECC event notification. 
     Register cells OP 2  and OP 3  in ECC Register # 5  store an ERR type value to indicate which type of ECC error to be reported on the ERR pin. In embodiments of the present invention, the ERR type is a two-bit value to support the selection of three ERR type choices: one-bit error, multi-bit error or any kind of ECC error. The ERR type register cells [ 1 : 0 ] are written to a first value (“00”) to select reporting of one-bit error in the ECC events. The ERR type register cells [ 1 : 0 ] are written to a second value (“01”) to select reporting of multi-bit error in the ECC events. The ERR type register cells [ 1 : 0 ] are written to a third value (“10”) to select reporting of any type of ECC events, including both one-bit and multi-bit error ECC events. 
     Register cell OP 4  in ECC register # 5  stores the CLRECC value which is used to clear the ECC registers. The CLRECC register cell is written to a first value (e.g., “0”) for no action taken and is written to a second value (e.g., “1”) to reset or clear the ECC registers, such as to set the ECC Event register cell to the reset value (“0”). Furthermore, the memory bank address register cells, the column and row address register cells are also reset to their initial state or to null value when cleared by the CLRECC register cell. An external system can use the I2C serial data bus to write to the CLRECC register cell to clear the ECC registers. 
     Returning to  FIG. 6 , as thus configured, the memory device  400  uses the I2C serial data bus  420  to interface or communicate with the memory device to configure the ECC operation and to obtain ECC event notification information. The I2C serial data bus is a two-wire data bus including a first wire carrying the clock input signal SCL and a second wire carrying the data input and output signal SDA. The I2C serial data bus supports multi-master and multi-slave configurations. In some embodiments, a single memory controller may be used to control multiple memory devices. In that case, each of the memory devices will be assigned a unique device address by programming the device address terminal  422  coupled to the I2C control circuit  406  of the memory device  200 . In the present embodiment, the device address terminal  422  is configured as a two-bit signal AD[ 0 : 1 ] to allow a memory controller to control up to 4 memory devices connected to the same I2C bus. Instructions transmitted on the I2C bus will identify in the slave address the specific device address so that each memory device processes only instructions designated to it. In other embodiments, the device address terminal  422  may be configured as a multi-bit signal depending on the number of memory devices to be 
     As thus configured in  FIG. 6 , an external system, such as a memory controller, may access the error correction event notification information stored in the ECC registers  430  through the use of the I2C serial data bus  420 . In particular, the external system may use the I2C serial data bus  420  to clear or reset the ECC event registers. The external system may use the I2C serial data bus  420  to access the ECC event registers to retrieve the values stored in the ECC event registers, such as the ECC Event indicator, or the memory bank address and the memory row and column address stored therein. More specifically, during the memory operation of the memory device  400 , the error correction event notification method may respond to the occurrence of an error correction event by setting the ECC Event register cell or providing ECC event notification on the ERR terminal, and by recording the memory bank address and the memory address (row and column addresses) in the designated register cells of the ECC registers. In particular, the external system may access the ECC registers through the I2C serial data bus  420  to access the ECC Event register cell and the register cells storing the memory bank address and the memory address of the memory location associated with the ECC corrected memory data. 
     Finally, the external system may use the I2C serial data bus  420  to control the ECC functions of the memory device through the ECC control circuit  404 , such as to turn the ECC function of the memory device on and off. The ability to control the ECC functions of the memory device is particularly useful to meet the requirements of industrial standards requiring testing of the functionality of the ECC circuitry in the memory device, as described above. 
       FIG. 8  is a flowchart illustrating the error correction event notification method using an I2C serial bus interface in a memory device implemented with error correction in an embodiments of the present invention. Referring to  FIG. 8 , in response to a power on reset event at the memory device ( 452 ), the error correction event notification method  450 , using the I2C serial data bus, writes to the ECCON register cell to activate the ECC function ( 454 ). The method  450  also writes to the CLRECC register cell to clear the ECC registers. For example, the Memory Bank address register cells, the row and column address cells are reset to their initial states (“0”) or null value, the ECC Event register cell is set to the first state (“0”). The ERR pin, if used, is set to a reset state indicating no ECC event. In some embodiments, the method  450 , using the I2C serial data bus, writes to the ERRON register cell and the ERR type register cells to configure the ERR pin for use as an external indicator of ECC events ( 455 ). 
     Then, the method  450  monitors for the occurrence of ECC events during memory operation ( 456 ). For example, the method  450  monitors for the occurrence of ECC events during memory read operations. In one embodiment, the ECC control circuit  404  detects an ECC event and generates an indicator signal thereof. The method  450  determines if an ECC event has occurred ( 458 ). When no ECC event is reported, the method  450  repeats at  456  to continue to monitor for ECC event occurrence during the memory operation. 
     When an ECC event has occurred, such as indicated by the ECC control circuit  404 , the method  450  then set the ECC Event register cell to the second state (“1”) indicating the occurrence of an ECC event ( 460 ). If the ERR pin has been configured by the ERRON register cell, the method  450  also set the ERR pin to an asserted state to indicate the occurrence of an ECC event. Next, the method  450  stores the memory bank address and the memory address location (row and column addresses) into the respective mode registers ( 462 ). For example, the memory bank address is stored in the respective bank address register cells, the lower five bits of the column address are stored in the column addr[ 4 : 0 ] register cells, the upper eight bits of the column address are stored in the column addr[ 12 : 5 ] register cells, and the 16-bit row address is stored in the row address register cells row addr[ 7 : 0 ] and row addr[ 15 : 8 ]. 
     After recording an ECC event, the method  450  continues at  456  to monitor for ECC events during the memory operation. Subsequent ECC events will be recorded in the ECC register by overwriting of previous data. With the error correction event notification information thus stored in the ECC event registers, the method  450  enables the ECC registers to be accessed through the I2C serial data bus ( 464 ). 
     In some cases, the external system may want to reset the values of the error correction registers ( 466 ). For example, after the external system reads out the current ECC information, the external system may wish to reset the ECC registers so that the ECC registers can record the next ECC event. In that case, the external system may, through the I2C serial data bus, write to the CLRECC register cell to clear or reset the values of the ECC registers ( 454 ). When the CLRECC register cell is written to the second state (“1”), the ECC registers are cleared and the ERR pin, if used, is reset. That is, the ECC Event register cell, the memory bank address cells, the row and column address cells are all reset to their initial states (“0”) or null value, and the ERR pin, if used, is initialized. The method  450  then continues with monitoring the ECC event  456  during memory operation. 
     As described above, the error correction event notification method using an I2C serial data bus of the present invention can be applied in system configuration involving a single memory controller driving multiple memory devices. The error correction event notification method is capable of reading the ECC event information and of configuring the ECC operation for each memory device through the I2C serial data bus.  FIG. 9  is a schematic diagram of a system including multiple memory devices communicating with a controller using an I2C serial data bus in one example. Referring to  FIG. 9 , a set of memory devices  491  to  494 , each implementing the error correction event notification method of the present invention, enable a micro-controller  490  to act as a master to communicate over the I2C bus with the memory devices  491 - 494  to obtain ECC event information and to configure the ECC operation on each memory device. The micro-controller  490  communicates over an I2C bus  495  with the memory devices  491  to  494 . In the present example, the memory devices are DRAMs. 
     The I2C protocol describes the use of open drain bus drivers. Therefore, the SCL signal line and the SDA signal are connected to the positive power supply VDD through respective pull up resistors Rp. The SCL signal line and the SDA signal line are shared by all the memory devices (slave devices). 
     As thus configured, the micro-controller  490  acts as a master and the memory devices  491 - 494  act as slaves in the I2C communication protocol. The device address terminal for each memory device is connected in a given manner to assign each memory device with a unique device address. For example, the memory device  491  has the device address terminal AD[ 1 : 0 ] programmed to &lt;0,0&gt;, the memory device  492  has the device address terminal AD[ 1 : 0 ] programmed to &lt;0,1&gt;, the memory device  493  has the device address terminal AD[ 1 : 0 ] programmed to &lt;1,0&gt;, and the memory device  494  has the device address terminal AD[ 1 : 0 ] programmed to &lt;1,1&gt;. Under the I2C communication protocol, the micro-controller  491  sends a message indicating the device address of the intended memory device in the slave address frame so that the respective memory device understands if it is the intended recipient of the message. With the use of the I2C serial data bus, a system involving multiple memory devices may implement the error correction event notification method using an I2C serial data bus of the present invention to configure and monitor ECC events at the multiple memory devices using a single micro-controller master. 
     In the present embodiment, the ERR pin of each memory device  491 - 494  are connected to a parallel data bus  496  and coupled to the micro-controller  490 . As thus configured, the micro-controller  490  may monitor the ECC event notification status of each memory device. 
     Under the I2C communication protocol, the master and slave devices communicate using messages that are transmitted over the SDA data signal line at the clock rate defined by the SCL clock signal line. Under I2C, messages are broken up into two types of frame: an address frame, where the master indicates the slave to which the message is being sent, and one or more data frames, which are 8-bit data messages passed from master to slave or from slave to master. The address frame is always first in any new communication sequence. For a 7-bit address, the address is clocked out most significant bit (MSB) first, followed by a R/W bit indicating whether this is a read (1) or write (0) operation. 
     The 9th bit of the frame is the NACK/ACK bit. This is the case for all address and data frames. Once the first 8 bits of the frame are sent, the receiving device is given control over the SDA signal line. If the receiving device does not pull the SDA signal line low before the 9th clock pulse, it can be inferred that the receiving device either did not receive the data or did not know how to parse the message. In that case, the exchange halts, and it&#39;s up to the master of the system to decide how to proceed. 
     After the address frame has been sent, data can begin being transmitted. The master will simply continue generating clock pulses at a regular interval, and the data will be placed on SDA data signal line by either the master or the slave, depending on whether the R/W bit indicated a read or write operation. The number of data frames is arbitrary, and most slave devices will auto-increment the internal register, meaning that subsequent reads or writes will come from the next register in line. 
       FIG. 10  illustrates two exemplary I 2 C address frames in some examples. Referring to  FIG. 10 , after the start condition, the master generates the slave address frame to select a particular slave device, such as one of memory devices  491 - 494 . The slave address frame uses the four most significant bits to indicate the device type or the slave ID, and the second and third least significant bits (bits  6  and  7 ) to indicate the device select address (AD[ 1 ] and AD[ 0 ]) and the least significant bit (bit  8 ) to indicate the read or write operation. The device type or slave ID indicates the type of devices, such as DRAM or SRAM. The device select address must match the device address AD[ 1 : 0 ] assigned for each memory device in order to select the respective device. 
     The master transmits the slave address frame designated a specific slave device. After the selected slave device acknowledges the slave address frame, the master can then transmit a register address frame on the SDA bus for a write or read operation. In the present example, the register address frame has three bits A[ 0 ] to A[ 2 ] to select one of the six ECC registers. The I 2 C control circuit  406  includes an address latch to latch the register address provided in the register address frame. Subsequently, each access to the selected slave device will cause the latched address to increment automatically. Thus, sequential read or write operation does not require the register address to be provided again. The current register address is the address value stored in the latch—which can be a newly latched register address or an incremented register address. Read operation always uses the current register address. After the last register address, the address latch will roll over to the first register address (e.g.  000 b). 
     Event Notification in a Memory Device Using an I 2 C Serial Data Bus 
     According to another aspect of the present invention, a memory device incorporates a serial data bus coupled to a control circuit of the memory device to enable monitoring and notification of operational events of the memory device. In this manner, a system or a user using the memory device of the present invention may monitor the operational events during the normal operation of the memory device to obtain information on the occurrence or status of certain events and/or the circuit locations of the event occurrence which may be critical to the functionality or reliability of the memory device. In particular, the memory device may continue with normal device operation while event notification data is provided through the serial data bus. In some embodiments, the serial data bus is an I 2 C serial data bus. The serial data bus event notification method of the present invention can be implemented in a memory device to give insight into the health of the semiconductor device and enabling preventive repair or replacement of the memory device or system in which it is used when needed. 
     More specifically, the error correction event notification method described above can be applied to monitor other events or functions in a memory device other than error correction events. In embodiments of the present invention, a memory device implements an event notification method to monitor events and functions in a memory device where the status or states of the events and functions are stored in designated event registers. In some embodiment, an I 2 C serial data bus coupled to an I 2 C control circuit is used to configure the events and functions and to access the designated event registers to retrieve the state or state information. 
     In one example, the event notification method is applied to monitor the redundancy function of a memory device. A redundancy control circuit in the memory device may detect when memory cell redundancy needs to be applied and stores in the designated event registers the redundancy status, and the row address and column address to which redundant memory cells have been assigned. In this manner, an external system, such as a memory controller, may use the serial data bus, such as the I 2 C bus, to access the event registers to determine the redundancy status of the memory device in terms of the usage of the redundant memory cells and the memory location where redundant memory cells are applied. 
     In embodiments of the present invention, the control circuit and the ECC control circuit of the memory device are constructed as digital or analog circuitry on a semiconductor substrate. 
     Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.