Hot replace power control sequence logic

Information

  • Patent Grant
  • 6640282
  • Patent Number
    6,640,282
  • Date Filed
    Thursday, January 25, 2001
    23 years ago
  • Date Issued
    Tuesday, October 28, 2003
    20 years ago
Abstract
The control logic for a hot-pluggable memory cartridge for use in a redundant memory system. To implement a hot-pluggable memory cartridge in a redundant memory system, control logic to control the sequence of events for powering-up and powering-down a memory cartridge is provided.
Description




BACKGROUND OF THE INVENTION




1. Field of the Invention




This invention relates generally to memory systems and, more particularly, to redundant memory systems.




2. Background of the Related Art




This section is intended to introduce the reader to various aspects of art which may be related to various aspects of the present invention which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.




As most people know, the use of computers has increased dramatically over the past few decades. In the early days, computers were relatively few in number and primarily used as scientific tools. However, with the advent of standardized architectures and operating systems, computers soon became virtually indispensable tools for a wide variety of businesses. Perhaps even more significantly, in the past ten to fifteen years with the advent of relatively simple user interfaces and ever increasing processing capabilities, computers have now found their way into many homes. Today, at least one full generation has been raised in a world which, from their perspective, has always known computers, thus making computers a familiar and integral part of many lives.




The types of computing systems have similarly evolved over this period of time. For example, early scientific computers were typically stand-alone systems designed to carry out relatively specific tasks and requiring relatively knowledgeable users. As computer systems evolved into the business arena, mainframe computers emerged. In mainframe systems, users utilized “dumb” terminals to provide input to and to receive output from the mainframe computer, while all processing was done centrally by the mainframe computer. As users desired more autonomy in their choice of computing services, personal computers evolved to provide processing capability on each user's desktop. More recently, personal computers have given rise to relatively powerful computers called servers. Servers are typically multiprocessor computers that couple numerous personal computers together in a network. In addition, these powerful servers are also finding applications in various other capacities, such as in the communications and Internet industries.




Computers today, such as the personal computers and servers mentioned above, rely on microprocessors, associated chip sets, and memory chips to perform most of their processing functions. Because these devices are integrated circuits formed on semiconducting substrates, the technological improvements of these devices have essentially kept pace with one another over the years. In contrast to the dramatic improvements of the processing portions of a computer system, the mass storage portion of a computer system has experienced only modest growth in speed and reliability. As a result, computer systems failed to capitalize fully on the increased speed of the improving processing systems due to the dramatically inferior capabilities of the mass data storage devices coupled to the systems.




While the speed of these mass storage devices, such as magnetic disk drives, has not improved much in recent years, the size of such disk drives has become smaller while maintaining the same or greater storage capacity. Furthermore, such disk drives have become less expensive. To capitalize on these benefits, it was recognized that a high capacity data storage system could be realized by organizing multiple small disk drives into an array of drives. However, it was further recognized that large numbers of smaller disk drives dramatically increased the chance of a disk drive failure which, in turn, increases the risk of data loss. Accordingly, this problem has been addressed by including redundancy in the disk drive arrays so that data lost on any failed disk drive can be reconstructed through the redundant information stored on the other disk drives. This technology has been commonly referred to as “redundant arrays of inexpensive disks”(RAID).




To date, at least five different levels of RAID have been introduced. The first RAID level utilized mirrored devices. In other words, data was written identically to at least two disks. Thus, if one disk failed, the data could be retrieved from one of the other disks. Of course, a level 1 RAID system requires the cost of an additional disk without increasing overall memory capacity in exchange for decreased likelihood of data loss. The second level of RAID introduced an error code correction (ECC) scheme where additional check disks were provided to detect single errors, identify the failed disk, and correct the disk with the error. The third level RAID system utilizes disk drives that can detect their own errors, thus eliminating the many check disks of level 2 RAID. The fourth level of RAID provides for independent reads and writes to each disk which allows parallel input-output operations. Finally, a level 5 RAID system provides memory striping where data and parity information are distributed in some form throughout the disk drives in the array.




The implementation of data redundancy, such as in the RAID schemes discussed above, creates fault tolerant computer systems where the system may still operate without data loss even if one drive fails. This is contrasted to a disk drive array in a non-fault tolerant system where the entire system is considered to have failed if any one of the drives fail. Of course, it should be appreciated that each RAID scheme necessarily trades some overall storage capacity and additional expense in favor of fault tolerant capability. Thus, RAID systems are primarily found in computers performing relatively critical functions where failures are not easily tolerated. Such functions may include, for example, a network server, a web server, a communication server, etc.




One of the primary advantages of a fault tolerant mass data storage system is that it permits the system to operate even in the presence of errors that would otherwise cause the system to malfunction. As discussed previously, this is particularly important in critical systems where downtime may cause relatively major economic repercussions. However, it should be understood that a RAID system merely permits the computer system to function even though one of the drives is malfunctioning. It does not necessarily permit the computer system to be repaired or upgraded without powering down the system. To address this problem, various schemes have been developed, some related to RAID and some not, which facilitate the removal and/or installation of computer components, such as a faulty disk drive, without powering down the computer system. Such schemes are typically referred to as “hot plug” schemes since the devices may be unplugged from and/or plugged into the system while it is “hot” or operating.




Although hot plug schemes have been developed for many computer components, including microprocessors, memory chips, and disk drives, most such schemes do not permit the removal and replacement of a faulty device without downgrading system performance to some extent. Furthermore, because memory chips have been traditionally more reliable than disk drives, error detection and correction schemes for memory chips have generally lagged behind the schemes used for disk drives.




However, certain factors may suggest that the reliability of semiconductor memory systems may also require improvement. For instance, in the near future, it is believed that it will be desirable for approximately 50% of business applications to run continuously 24 hours a day, 365 days a years. Furthermore, in 1998, it was reported that the average cost of a minute of downtime for a mission-critical application was $10,000.00. In addition to the increasing criticality of such computer systems and the high cost of downtime of such systems, the amount of semiconductor memory capacity of such systems has been increasing steadily and is expected to continue to increase. Although semiconductor memories are less likely to fail than disk drives, semiconductor memories also suffer from a variety of memory errors. Specifically, “soft” errors account for the vast majority of memory errors in a semiconductor memory. Such soft errors include cosmic rays and transient events, for instance, that tend to alter the data stored in the memory. Most soft errors are single bit errors that are correctable using standard ECC technology. However, some percentage of these errors are multi-bit errors that are uncorrectable by current ECC technology. Furthermore, the occurrence of soft errors increases linearly with memory capacity. Therefore, as memory capacities continue to increase, the number of soft errors will similarly increase, thus leading to an increased likelihood that the system will fail due to a soft error. Semiconductor memories may also suffer from “hard” errors. Such hard errors may be caused by over voltage conditions which destroy a portion of the memory structure, bad solder joints, malfunctioning sense amplifiers, etc. While semiconductor memories are typically subjected to rigorous performance and burn-in testing prior to shipment, a certain percentage of these memories will still malfunction after being integrated into a computer system. Again, as the number of memory chips and the memory capacities of computer systems increase, a likelihood of a semiconductor memory developing a hard error also increases.




System performance of a server depends strongly on the memory's bandwidth and latency. Traditionally, memory latency is quoted using two measures: access time and cycle time. Access time is the time between when a read is requested and when the desired data arrives. The cycle time is the minimum time between requests to memory.




In the past, DRAM or SDRAM have been the only choices for main memory. However, in the near future, there will be more choices from which customers may choose. Therefore, it may be desirable for the future computer servers to be able to support several types of memory devices. Currently, most memory controllers cannot support different memory types, sizes, and speeds.




The present invention may be directed to one or more of the problems set forth above.











BRIEF DESCRIPTION OF THE DRAWINGS




The foregoing and other advantages of the invention will become apparent upon reading the following detailed description and upon reference to the drawings in which:





FIG. 1

is a block diagram illustrating an exemplary computer system in accordance with the present invention;





FIG. 2

is a block diagram generally illustrating one implementation of a RAID architecture in accordance with the present invention;





FIG. 3

is a block diagram illustrating an exemplary memory controller in accordance with the present invention;





FIG. 4

is a state diagram illustrating the various states for a memory array in accordance with the present invention;





FIG. 5

illustrates a block diagram of the hot-plug interface in accordance with the present invention;





FIG. 6

illustrates a block diagram of an alarm and indication system in accordance with the present invention; and





FIGS. 7 and 8

illustrate a diagrammatic views of variously-sized channels of memory segments in accordance with the present invention.











DESCRIPTION OF SPECIFIC EMBODIMENTS




One or more specific embodiments of the present invention will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.




Turning now to the drawings and referring initially to

FIG. 1

, a block diagram of an exemplary computer system is illustrated and designated using a reference numeral


10


. The computer system


10


typically includes one or more processors or CPUs. In the exemplary embodiment, the system


10


utilizes eight microprocessors


12


A-


12


H. The system


10


utilizes a split bus configuration in which the processors


12


A-


12


D are coupled to a bus


14


A, whereas the processors


12


E-


12


H are coupled to a bus


14


B. It should be understood that the processor or processors


12


may be of any suitable type, such as a microprocessor available from Intel, AMD, or Motorola, for example. Furthermore, any suitable bus arrangement may be coupled to the processors


12


, such as a single bus, a split bus (as illustrated), or individual buses. By way of example, the exemplary system


10


may utilize Intel Pentium III processors and the buses


14


A and


14


B may operate at 100/133 MHz.




Each of the buses


14


A and


14


B is coupled to a chip set which includes a host controller


16


and a data controller


18


. In this embodiment, the data controller


18


is effectively a data cross bar slave device controlled by the host controller


16


. Therefore, these chips will be referred to together as the host/data controller


16


,


18


. The host/data controller


16


,


18


is further coupled to one or more memory controllers. In this particular example, the host/data controller


16


,


18


is coupled to five memory controllers


20


A-


20


E via five individual bus segments


22


A-


22


E, respectively. As will be appreciated from a study of the remainder of this disclosure, these individual bus segments


22


A-


22


E (also referred to herein as MNET) facilitate the removal of individual memory modules. Each of the memory controllers


20


A-


20


E is further coupled to a segment of main memory designated as


24


A-


24


E, respectively. As discussed in detail below, each of the memory segments or modules


24


A-


24


E is typically comprised of dual inline memory modules (DIMMs).




As will be appreciated from the discussion herein, the number of memory segments


24


may vary depending upon the type of memory system desired. In general, redundant memory systems will utilize two or more memory segments


24


. Although the five memory segments


24


A-


24


E illustrated in the exemplary embodiment facilitates a “4+1” striping pattern of data and parity information as discussed in detail below, a memory system having two memory segments


24


may be used in which data is mirrored on each segment to provide redundancy. Similarly, a memory system having three or more memory segments may be used to provide various combinations of data and parity striping.




The host/data controller


16


,


18


is typically coupled to one or more bridges


28


A-


28


C via a suitable bus


27


. The opposite side of each bridge


28


A-


28


C is coupled to a respective bus


30


A-


30


C, and a plurality of peripheral devices


32


A and B,


34


A and B, and


36


A and B may be coupled to the respective buses


30


A,


30


B, and


30


C. The bridges


28


A-


28


C may be any of a variety of suitable types, such as PCI, PCI-X, EISA, AGP, etc.




Each of the memory controllers


20


A-


20


E and its associated main memory segment


24


A-


24


E forms a portion of the main memory array


26


. The five memory controllers


20


A-


20


E operate in lock-step. In this example, each of the memory controllers


20


A-


20


E handle a separate quad-word of each cacheline of data (assuming a 32 byte cacheline) that is being transferred to or from the host and data controllers


16


and


18


. For example, the memory controller


20


A handles the first quad-word of every data read and write transaction, the memory controller


20


B handles the second quad-word, the memory controller


20


C handles the third quad-word, and the memory controller


20


D handles the fourth quad-word. Instead of receiving one of the four quad-words, the memory controller


20


E handles data parity for the four quad-words handled by the memory controllers


20


A-


20


D. Thus, as described below, the memory array


26


forms a “redundant array of industry standard DIMMs”(RAID) memory structure.




As will be explained in greater detail below, during a data read operation, the host/data controller


16


,


18


receives four quad-words of data plus parity from the five memory controllers


20


A-


20


E, validates data integrity of each quad-word and parity using ECC codes, and, if necessary, corrects bad data using an exclusive OR (XOR) engine before forwarding the data to its destination. During a data write operation, the host/data controller


16


,


18


uses the XOR engine to calculate data parity and transfers the four quad-words of data and parity to the five respective memory controllers


20


A-


20


E. In this embodiment, all data transfers between the host/data controller


16


,


18


and the five memory controllers


20


A-


20


E are an entire cacheline, and partial writes are translated into read-modify-write operations.




Furthermore, as also described in greater detail below, the five MNET bus segments


22


A-


22


E provide electrical isolation to each of the respective five memory controllers


20


A-


20


E to facilitate hot-plug removal and/or replacement of each of the five memory segments


24


A-


24


E. The RAID functionality described herein allows any one of the five memory segments


24


A-


24


E to be removed while the system


10


continues to operate normally, albeit not in a redundant mode. Once the removed memory segment is reinstalled, the data is rebuilt from the other four memory segments, and the memory system resumes operation in its redundant, or fault-tolerant, mode.




In this embodiment, each of the memory segments


24


A-


24


E may include one to eight dual inline memory modules (DIMMs). Typically, such DIMMs are organized in an X4 or an X8 fashion. In other words, the memory chips on the DIMM are either 4 bits wide or 8 bits wide. To produce a 72 bit quad-word using an X4 memory organization, an exemplary DIMM may include nine 4 bit wide memory chips located on one side of the DIMM and nine 4 bit wide memory chips located on the opposite side of the DIMM. Conversely, to produce a 72 bit quad-word using an X8 memory organization, an exemplary DIMM may include nine 8 bit wide memory chips located on a single side of the DIMM. As discussed below, X8 memory organization may defeat the ECC capability to detect a failure in a single device. Therefore, an X4 memory organization may provide a slightly more reliable memory. The memory chips on each DIMM are typically selected from one or more DRAM technologies, such as synchronous DRAM, double data rate SDRAM, direct-RAM BUS, and synclink DRAM.




The manner in which the exemplary “4+1” RAID architecture functions will now be explained with reference to FIG.


2


. During a memory read operation, a quad-word from each of the first four memory segments


24


A-


24


D and parity from the one remaining memory segment


24


E are transmitted to the respective memory controllers


20


A-


20


E. When operating in X4 memory mode, each of the memory controllers


20


A-


20


E uses an ECC algorithm (such as a P6 ECC algorithm) to detect single bit memory errors and a single bit error correction algorithm to correct any single bit errors detected by the ECC algorithm. When operating in X8 memory mode, each of the memory controllers


20


A-


20


E uses an ECC algorithm to detect single bit errors, but such errors are not corrected by the memory controllers


20


A-


20


E.




Indeed, it should be appreciated that parity information can detect a single bit error, but it cannot even detect, much less correct, double bit errors, multi-bit errors in a nibble or a byte, or any other type of error. Standard ECC algorithms, on the other hand, are more capable. ECC can detect and correct single bit errors, and can detect double bit errors and multi-bit errors in a nibble. ECC cannot detect multiple errors in both nibbles of a byte. However, as will be appreciated from the discussion herein, the RAID architecture can detect and correct single bit errors, double bit errors, mulit-bit errors in a nibble, and multi-bit errors in a byte, as well as detect errors in other situations.




Once the memory controllers


20


A-


20


E have processed the data as discussed above, the data is transferred via the respective buses


22


A-


22


E to the host/data controller


16


,


18


. The host/data controller


16


,


18


includes ECC modules


40


A-


40


E to detect multi-bit errors in each of the four quad-words and the parity information delivered from the respective memory controllers


20


A-


20


E. The outputs


42


A-


42


E of each of the ECC modules


40


A-


40


E are coupled to a respective multiplexer


44


A-


44


E. Based on the output


42


A-


42


E of each of the ECC modules


40


A-


40


E, each respective multiplexer


44


A-


44


E selects between the original data delivered to the multiplexers


44


A-


44


E on respective buses


46


A-


46


E and the re-created data generated by the exclusive OR (XOR) engine


48


delivered to the multiplexers


44


A-


44


E via the respective buses


50


A-


50


E. Specifically, if one of the ECC modules


40


A-


40


E detects a multi-bit error, the ECC module


40


A-


40


E switches its respective multiplexer


44


A-


44


E such that the bad data on the respective bus


46


A-


46


E is replaced by the good re-created data available on the respective bus


50


A-


50


E. Thus, when operating in X4 memory mode, the XOR engine


48


is used to correct multi-bit errors only, while when operating in X8 memory mode, the XOR engine


48


corrects both single bit errors and multi-bit errors.




A few aspects of this type of RAID functionality should be understood. First, when operating in X4 memory mode, each memory segment


24


A-


24


E may exhibit a single bit error which may be corrected without even triggering the use of the re-created data generated by the XOR engine


48


. However, only a single multi-bit error on one of the memory segments


24


A-


24


E can be corrected per each memory transaction using the XOR engine


48


. Conversely, when operating in X8 memory mode, the host/data controller


16


,


18


can correct only one single bit error or multi-bit error in one of the memory segments


24


A-


24


E. Thus, if more than one of the memory segments


24


A-


24


E exhibits a single bit error or a multi-bit error in X8 memory mode, or if more than one of the memory segments


24


A-


24


E exhibits a multi-bit error in X4 memory mode, the XOR engine


48


will be unable to create good data to be transmitted out of the host/data controller


16


,


18


on the buses


52


A-


52


E. In these circumstances, the comparator circuits


54


A-


54


E, which receive the data on the respective bus errors


46


A-


46


E and


50


A-


50


E, deliver a non-maskable interrupt (NMI) on the respective lines


56


A-


56


E. The NMI is typically delivered to the requesting device to indicate that a memory error has occurred and that the requested data cannot be delivered.




The memory segments may be organized on a single channel or on 2N channels, where N is an integer. In this particular embodiment, each of the memory segments


24


A-


24


E is divided into two channels—a first channel


67


A-


67


E and a second channel


69


A-


69


E, respectively. Since each memory segment


24


A-


24


E in this embodiment is capable of containing up to eight DIMMs, each channel is adapted to access up to four of the eight DIMMs. Because this embodiment includes two channels, each of the memory controllers


20


A-


20


E essentially includes two independent memory controllers.




A block diagram of an exemplary memory controller


20


is illustrated in FIG.


3


. The memory controller


20


includes a bus interface


60


that is coupled to the respective bus segment


22


A-


22


E to enable the memory controller to pass data to and from the bus


22


. In this example, the bus interface


60


communicates between the bus


22


, which is operating at 400 MHz, and internal decode logic


62


, which is operating at 100 or 133 MHz. One primary function of the bus interface


60


is to meet the protocol and timing requirements of the MNET bus


22


for receiving write data and commands and for transmitting read data and status.




The decode logic


62


decodes the destination of read and write transaction according to the commands from the bus


22


, as well as the internal set of configuration registers


63


. In the case of memory transactions, the decode logic


62


generates the bank address, chip-select signals, and row and column addresses. Commands, write data, and read data may be transferred between the decode logic


62


and the configuration registers


63


for a variety of reasons. For example, the configuration registers


63


may be used to store different CAS latencies, parameters the dictate memory controller operation, log information, ID information, and error capturing logic. The configuration registers


63


are coupled to an IIC bus


65


to permit communication with the DIMMs.




The decoded information from the decode logic


62


is then delivered to one of two identical memory controller circuits


64


A and


64


B, each of which controls a respective first channel


67


and a respective second channel


69


. As discussed in greater detail with respect to

FIG. 7

, the memory controller circuit


64


A generally handles the even cachelines for the first channel


67


, while the memory controller circuit


64


B generally handles the odd cachelines for the second channel


69


. Read and write command information from the decode logic


62


is delivered, respectively, to the read command queues


66


A and


66


B and the write command queues


68


A and


68


B. Write data is delivered from the decode logic


62


to respective write data queues


70


A and


70


B. In this embodiment, each of the write data paths includes a respective ECC module


72


A and


72


B that is designed to detect and correct single bit errors in the write data before it reaches the respective write data queues


70


A and


70


B.




The read command and write command information from the queues


66


A and


66


B,


68


A and


68


B is delivered to a respective arbitration logic circuit


74


A and


74


B. The arbitration logic


74


A and


74


B controls transaction timing to the memory modules, and is typically employed to maximize bus bandwidth. The arbitration logic


74


A and


74


B delivers a request signal to a respective memory controller


76


A and


76


B which provides control and address information to a respective output buffer


78


A and


78


B. The arbitration logic


74


A and


74


B, in conjunction with the respective memory controller


76


A and


76


B also queues and/or dequeues write data stored in the write data queues


70


A and


70


B. It should also be noted that this embodiment includes fast read request lines


77


A and


77


B and fast read acknowledgement lines


79


A and


79


B. The fast read request lines


77


A and


77


B deliver a fast read request from the decode logic


62


to the respective memory controller


76


A and


76


B to request a read operation that bypasses the read command queue


66


A and


66


B—an operation that is permitted to reduce latency and improve timing during certain situations where the read command queue is empty. If the operation is permitted, an acknowledgement is transmitted from the respective memory controller


76


A and


76


B to the bus interface


60


on the fast read acknowledgement lines


79


A and


79


B.




During a read transaction, the data received from the DIMMs is transferred to a respective read data queue


80


A and


80


B. As with the write data, the read data may also be passed through a respective ECC circuit


82


A and


82


B to detect and optionally correct any single bit errors prior to the data reaching the respective read data queue


80


A and


80


B. The arbitration logic


74


A and


74


B, in conjunction with the memory controllers


76


A and


76


B, also controls the queuing and dequeuing of data in the read data queues


80


A and


80


B. Read data is delivered from the read data queues


80


A and


80


B to the bus interface


60


for transmission on the bus


22


.




The manner in which the memory array


26


operates in a redundant, i.e., RAID, mode has been described above. One benefit of such functionality is the ability to remove, replace, upgrade, or add DIMMs to a selected memory segment


24


A-


24


E while the system


10


remains operational. Such capability may be referred to as “hot-plugging.” As described below, the memory segments


24


A-


24


E may be configured as separate memory cartridges


25


A-


25


E to facilitate hot-plugging operations. The memory controllers


20


A-


20


E may be part of the cartridges or separate from them. When the system


10


is provided with this capability, the memory array


26


will operate in one of several different modes: redundant, non-redundant, rebuilding, or failed. The state of the memory array


26


may directly impact what operations can be performed without jeopardizing the integrity of the system


10


. The state diagram illustrated in

FIG. 4

shows the various states and state transitions for the memory array


26


.




When all of the memory modules are operating in an error free mode, the memory array


26


is operating in the redundant state


100


. If a user unlocks a memory cartridge


25


(to upgrade or add to the memory for example), the memory array


26


will transition from the redundant state


100


to the non-redundant state


104


. If a single bit or a multi-bit error is detected in one of the memory segments


24


A-


24


E, the memory array


26


switches states, and it begins operating in a redundant-fault state


102


. If the ECC and/or XOR engine


48


is able to clear the error condition and provide good data, the memory array


26


switches back to the redundant state


100


. Such a transition from the redundant-fault state


102


to the redundant state


100


may take place, for instance, due to a non-reoccurring soft error. However, if soft errors reoccur frequently, the memory array


26


may continue to operate in the redundant-fault state


102


for a certain period of time.




If soft errors occur too frequently, if a hard error occurs, or if a user unlocks a memory cartridge (to replace the faulty memory device for instance), the memory array


26


transitions into a non-redundant state


104


. In the non-redundant state


104


, the system


10


will typically provide one or more messages to alert a user or system administrator that a memory fault has occurred, for example, and that the system


10


is operating in a non-redundant state. Of course, in the non-redundant state


104


, one of the memory segments


24


A-


24


E is essentially disabled so that data that would normally be stored on the disabled segment is not accessed, but instead re-created using the XOR engine


48


. As discussed previously, the memory array


26


may continue to operate in the non-redundant state


104


for an extended period of time and provide good data. Of course, if another fault occurs in one of the other memory segments while the memory array


26


is operating in the non-redundant state


104


, data could be corrupted.




Typically, a user or system administrator typically would not find it desirable for the memory array


26


to continue to operate in a non-redundant state for an extended period of time. Accordingly, at some point, the error-prone portion of the faulty memory segment


24


A-


24


E would likely be replaced. Because, as discussed below, the memory array


26


provides hot-pluggable capabilities, the faulty memory module may be temporarily removed so that the memory error can be rectified, e.g., by replacing a faulty DIMM, for instance. During this hot plug replacement, the memory array


26


will continue to operate in the non-redundant state


104


.




Once the faulty portion of memory has been replaced, the memory array


26


will switch into a rebuild state


106


. In the rebuild state


106


, the memory array


26


uses the good data from the four non-faulty memory segments


24


A-


24


E to rebuild the data that should be stored in the fifth memory segment. Once the rebuild is completed successfully, the memory array


26


switches back to operating in the redundant state


100


. However, if a rebuild error occurs, the memory array


26


will switch back to the non-redundant state


104


and provide the user and/or administrator with the appropriate warnings.




Of course, another possibility exists. If the memory array is operating in the redundant-fault mode


102


and a second memory fault occurs in one of the other four memory segments


24


A-


24


E, the memory array


26


switches into a double fault state


108


. In this state, the memory array


26


can neither operate in a redundant mode nor in a non-redundant mode because the memory array


26


cannot ensure that it is providing uncorrupted data. Accordingly, the memory array


26


will remain in the double fault mode state


108


, and the user and/or administrator will be notified accordingly that two memory segments


24


A-


24


E have exhibited errors that require correction.




Table 1, below, shows the memory array responses based on the current state of the memory array


26


, the current state of the memory segments


24


A-


24


E, and the action taken by a user. Each event may be initiated by user input, such as by the user unlocking and removing a memory cartridge.












TABLE 1











Memory Array State Transition Table
















Memory Array




Memory Module




Event




Memory Array




Memory Module







Current State




Current State




(lock, unlock)




Next State




Next State




Comments









Redundant




Normal




Unlock




Non-redundant




Power-down




Any memory module can be











removed in redundant state






Redundant-




Normal




Unlock




Redundant-fault




Illegal




Cannot remove a normal






fault








module when another module











is in the fault state.






Redundant-




Fault




Unlock




Non-redundant




Power-down




The fault memory module can






fault








be removed when the memory











array is in the fault state






Non-redundant




Normal




Unlock




Non-redundant




Illegal




Cannot remove any memory











modules when current











configuration is non-











redundant.






Non-redundant




Powerdown




Add




Rebuild




Rebuild




Initialize, rebuild, and verify











new memory module.






Rebuild




Normal




Unlock




Rebuild




Illegal




Cannot remove any other











memory modules while a











module is rebuilding, system











is not redundant.






Rebuild




Rebuild




Unlock




Non-redundant




Power-down




Can power-down the memory











module that is rebuilding






Double fault




Normal, fault




Unlock




Double-fault




Illegal




Cannot remove any memory











modules after a double fault,











redundancy not guaranteed.














As illustrated in

FIG. 5

, an exemplary embodiment of the system


10


is configured so that the memory cartridges


25


A-


25


E are hot-pluggable, i.e., the memory cartridges may be installed and removed from the system


10


without having to remove power to the system


10


or to halt the operation of the system


10


. A memory hot plug interface system


110


controls the power to each memory segment


24


A-


24


E.




In the illustrated embodiment, the memory hot plug interface


110


utilizes various inputs and programmable array logic (PAL) devices


112


to control power to each memory segment


24


, illustrated as memory cartridges


25


in FIG.


5


. The PAL arrangement


112


receives input from several sources. In the illustrated embodiment, female pins


114


A-


114


E on a cartridge connector


116


, which may reside on the memory cartridge


25


, are configured to engage male pins


118


A-


118


E on a memory control board


120


. Each pin connection provides an electrical path to exchange data and control signals between the memory cartridge


25


and the memory control board


120


. For example, an insertion/removal sensor (IRS) and a pre-insertion/removal notification sensor (PIRN) are used to provide inputs to the system.




A PIRN switch


120


may be associated with a mechanical lock


122


to provide an input based on whether the lock


122


is positioned in a LOCKED or UNLOCKED position. The PIRN switch


120


has a plurality of electrical terminals


124


. The position of the lock


122


defines the electrical properties of the PIRN switch


120


between each terminal


124


. The terminals


124


are used to provide an input to an audible alarm. The PIRN switch


120


may be disposed on a memory cartridge


25


to engage a portion of the memory control board


120


or on the memory control board


120


to engage a portion of the memory cartridge


25


.




A power controller


126


supplies power to each memory cartridge


25


through the cartridge connector


116


. The operation of the power controller


126


is controlled by the PAL arrangement


112


. The PAL arrangement


112


controls the operation of the power controller


126


based on the inputs to the PAL arrangement


112


and on the internal programming of PAL arrangement


112


.




The insertion/removal sensor (IRS) may utilize a pin


118


A and a pin


118


B to detect when a memory cartridge


25


is being installed or removed. For example, the pin


118


A may be made shorter relative to the pin


118


B. Additionally, the pin


118


B may be made longer than the pins


118


C and shorter than the pins


118


D and


118


E. Thus, during insertion of a memory cartridge


25


, the pin


118


B will come into contact with a female socket


114


B before pins


118


A and


118


C, but after pins


118


D and


118


E come into contact with their respective female counterparts. Additionally, during removal of a memory cartridge


25


, pin


118


B will remain in contact with a female socket


114


B longer than pins


118


A or


118


C. This information may be used by the system


10


to determine when installation or removal of a cartridge


25


has started and when it has been completed. By varying the lengths of the pins


118


A-


118


E, the sequence of signal initialization can be controlled during a hot-plug insertion or removal event.




Referring generally to

FIG. 6

, the system


10


may also use sensors as part of an alarm and indication system


130


. The alarm and indication system


130


also utilizes the PAL arrangement


112


. In this embodiment, the PAL arrangement


112


utilizes one system PAL (SYSPAL)


132


and five memory cartridge specific PALs


134


(M3PAL)—one M3PAL for each memory cartridge


25


. The alarm and indication system


130


utilizes the PAL arrangement


112


to identify operating conditions and to initiate an alarm and/or various indications when specific operating conditions exist.




In the illustrated embodiment, the PAL arrangement


112


receives one series of inputs through the five PIRN switches


120


(one for each memory cartridge


25


A-


25


E). Another input is an MNET error signal provided by the host/data controller


16


,


18


. The host/data controller


16


,


18


receives memory error signals from the memory controllers


20


A-


20


E disposed within each of the five memory cartridges


25


A-


25


E. The host/data controller


16


,


18


determines if the memory error signals indicate a fault condition and provides a fault condition signal to each M3PAL


134


. An alarm or indication is provided when the inputs correspond to error conditions programmed into the PAL arrangement


112


.




One feature of the alarm and indication system


130


is an audible alarm


138


to provide audible error condition messages to an operator. For example, the alarm and indication system


130


may respond with two long beeps if there are no valid banks of memory available to the system ROM during an initial system test. Additionally, the audible alarm


138


may sound to caution the user that an improper action has occurred, is occurring, or will occur. This enables a user to stop an improper course of action and/or reverse previous actions.




In this embodiment, various conditions may cause the memory caution alarm to emit a continuous tone. First, the alarm and indication system


130


may be configured to initiate the alarm when positioning the wrong mechanical lock


122


to an UNLOCK position. This can occur when one of the memory cartridges


25


A-


25


E requires attention, e.g., is not online, but the wrong memory cartridge


25


A-


25


E is unlocked. The alarm and indication system


130


may be configured so that returning the errant lock


122


to a LOCK position discontinues the alarm. Also, the alarm and indication system


130


may be configured so that positioning the cartridge lock


122


to a LOCK position during system operation while the cartridge is removed triggers the alarm. An exemplary alarm and indication system


130


discontinues the alarm when this condition is corrected by immediately positioning the lock


122


to an UNLOCK position.




Other system indications are also provided by alarm and indication system


130


. One indication is a cartridge power (CP) LED


140


. In this embodiment each CP LED


140


is disposed on the memory control board


120


. The light from the CP LED


140


is coupled by an optical fiber to a CP light which is visible to the user. Alternatively, the alarm and indication system


130


may energize an incandescent lamp, or some other illumination means other than an LED.




The CP LED


140


may be configured to inform the user when the cartridge


25


A-


25


E is powered on or off, when the cartridge is undergoing a memory rebuild/verify, and/or whether the cartridge is ready to be removed. There is one CP LED


140


for each memory cartridge


25


A-


25


E. In this embodiment, each CP LED


140


is green and has a blinking capability. Exemplary states of operation of a CP LED


140


, the definition of each CP LED operating state, the conditions causing the CP LED operating state, the mechanisms that produce a change in the CP LED operating state, and the resulting CP LED state are provided in TABLE 2 below.












TABLE 2











CP LED States













LED State Change



















Resulting






LED State




Definitions




Conditions




Mechanism




LED State









Off




Cartridge is




System off




ON/STBY




POST: Blink






(assumes




not on-line




or in standby




switch to ON




green once for






IRS







LED test, transi-






connected)







tioning to blink










continuous for










init and verify








System on,




PIRN to




DAS: blinks








PIRN




LOCK




continuous during








unlocked





rebuild and verify








Error




De-assert




Blink green








condition




and assertion




once (LED test)








exists such




of IRS (user








that the car-




removal and








tridge is not




insertion)








on-line






Solid




Cartridge




System on.




PIRN to




CP Of







on-line




Cartridge




UNLOCK,







(Normal)




locked. No




four other








cartridge




cartridges in








errors




Normal state









PIRN to




Alarm sounds









UNLOCK,




CP solid green









another car-









tridge not in









Normal state









Cartridge




CP Off









Power Fault




CA solid









Cartridge




CP Off









MNET Fault




CA blinking









ON/STBY




CP Off









to STBY






Blinking




Cartridge in




Cartridge




Verify or




CP solid green







power up




verify or




rebuild







transition




rebuild in




complete








progress









Error during




CP Off, One or









verify




more DS on









PIRN to




CP Off (user









UNLOCK




aborted rebuild)









System ON/




CP Off









STBY to









STBY






Blink once




Cartridge




1. ON/STBY




Complete




CP Off







LED test




to ON




blink test








2. Cartridge








inserted into








live system














Another indication provided by the alarm and indication system


130


is a cartridge attention (CA) LED


142


. Each CA LED


142


is optically coupled to a CA light


102


which is visible to a user to inform the user of cartridge specific conditions that require user attention, e.g., a power fault. In the illustrated embodiment, there is one CA LED


142


for each memory cartridge


25


A-


25


E. In this embodiment, the CA LED


142


is amber in color and has the capability of blinking. Exemplary CA LED operating states, the definition of each CA LED operating state, the conditions causing the CA LED operating state, the mechanisms that produce a change in the CA LED state and the resulting CA LED state are provided in TABLE 3 below.












TABLE 3











CA LED States













LED State Change



















Resulting






LED State




Definitions




Conditions




Mechanism




LED State









Off




Cartridge




Normal




Cartridge power




CA On







does not




operation




fault defect







require







attention.







(Normal)









NMET error




CA Blinking









detected









PIRN to




CA









UNLOCK for




Blinking,









cartridge that




buzzer on









can't be hot-









plugged






Solid




Cartridge




Power Fault:




IRS de-asserted




CA Off








PIRN








locked,








cartridge








power








control








circuitry has








detected an








condition on








the cartridge








Cartridge is




• IRS# asserted




CA Off








not fully




due to complete








inserted




insertion









• Aux5V power









lost to cartridge









by cartridge









removal






Blinking




MNET error




PIRN




• System reset




CA Off






(buzzer





locked: An




• Power good






off)





uncorrect-








able error on








MNET has








been detec-








ted. This








channel of








memory is








no longer in








use






Blinking




Illegal




PIRN




• PIRN to LOCK




CA Off,






(buzzer




PIRN




unlocked,





buzzer off






on)





buzzer on:








User has








illegally








turned a








PIRN for








a cartridge








that can't be








hot-plugged






Blink once




Cartridge




• ON/STBY




Complete blink




CA Off







LED test




to ON




test








• Cartridge








insertion








with system








on)














Still another set of indications that may be provided by the alarm and indication system


130


are DIMM status LEDs


144


. There are eight DIMM status LEDs


144


for each memory cartridge in this embodiment, one for each possible DIMM in a memory cartridge


25


A-


25


E. Each DIMM status LED


144


is optically coupled to a DIMM status light which is visible to the user. The DIMM status (DS) LEDs


144


may inform the user whether a specific memory element is installed in a boardholder, if a memory element MNET error condition exists that requires user attention, or if a memory element bank-specific condition exists that requires user attention.




In this embodiment each DIMM status light may be amber in color. Exemplary DS LED states, the definition of each DS LED state, the conditions causing the DS LED state, the mechanisms that produce a change in the DS LED state, and the resulting DS LED state are provided in TABLE 4 below.












TABLE 4











DS LED States













LED State Change















LED







Resulting






State




Definitions




Conditions




Mechanism




LED State









Off




DIMM




DIMM




Hot Add




SMI (add invalid)







socket not




socket was




operation:




• DS blinking







in use




empty




• PIRN to









LOCK









• DIMM now









present










Driver










• First, legal; DS










blinking, CP on










• First, not legal










DS blinking, CP










off • Not










first, similar: DS










blinking CP on










• Not first,










not similar: DS










blinking, CP off







DIMM in




DIMM




Hot Replace




• Not similar to







use, no




socket was




operation:




ROB_DS







errors




populated




• PIRN to




blinking







(Normal)




(similar to




LOCK




• Similar to








3 or 4 other




• Existing




ROB_DS off








DIMMs in




DIMM








the same




replaced








bank









Hot Removed




Hot remove not









operation:




supported: DS









• PIRN to




blinking









LOCK









• DIMM









removed









Hot Upgrade




SMI









operation:




(upgrade invalid)









• PIRN to




• DS blinking









LOCK









• Different









DIMM now









present










Driver










• First, legal; DS










blinking










• First, not legal










DS blinking










• Not first,










similar: DS










blinking • Not










first, not similar:










other DS off,










this DS blinking









DIMM ECC




Hard MBE or









error detected




SBE-DS on






Solid




DIMM ECC




A “hard”




PIRN to




• Not similar to






amber




Error




SBE or MBE




LOCK




ROB_DS








was detected




(replace)




blinking








by chipset





• Similar to








error logic





ROB_DS off






Blink-




DIMM




The DIMM




PIRN to




Same as LED off,






ing




configuration




installed in




LOCK




PIRN to LOCK






amber




error (POST




this socket is




(after







or normal




not expected




cartridge







operation)




The DIMM




reinsertion)








in this








socket is








not similar








with DIMM








in the rest








of the bank








There is no








DIMM








installed in








this socket








but a DIMM








is expected








The DIMM









System On/




DS off









STBY









switch to









STBY






Blink




LED test




System ON/




Complete




DS off






once





STBY




blink test








switch to








ON














Unique combinations of the cartridge power, cartridge attention, and DIMM status LEDs may used to identify some memory operating states. Various examples of unique LED combinations, their definitions, conditions, and LED state change mechanisms are provided in TABLE 5 below.












TABLE 5











Unique LED Combinations














LED






State Change






Combinations




Definitions




Conditons




Mechanism









All CP, CA, DS




POST LED blink




System ON/




Blink test






LEDs blink once




test




STBY switch




complete








to ON






All DS LEDs in




Bank of memory not




POST finds




• Power down






bank blinking




valid due to more




problem:




to correct






amber contin-




missing DIMM +




maps out




• Hot Add can






uously




incompatible DIMM




memory




correct







2 missing DIMMs




F1 message at







2 incompatible




boot







DIMMs




ASR will








reboot, no F1






All CP LEDs




POST is initializing




No HP activ-




Post






blinking




memory




ities can take




initialization








place




completes






5 cartridges with:




Redundant memory






All CP LEDs




array






solid green






All CA LEDs off






All DS LEDs off






CP LED solid




Cartridge






green




UNLOCKED but




• PIRN in




Power down to






CA LED various




not allowed to




UNLOCK




correct






DS LEDs various




be removed




• Memory






Memory alarm





array non-






continuous





redundant






CP LED solid




• Cartridge normal






green




• DIMMs or






CA LED off




banks may have






DS various




problems






All DS LEDs in




• Bank populated






bank off




and normal







• Bank unpopulated






4 or 5




Memory array




Memory may




Correct DIMM






cartridges with:




normal




or may not be




errors, bank






CP LED solid





redundant




errors to go






green






redundant






CA LED off






Same DS LEDs






off














A number of alternative configurations of the alarm and indication system


130


are possible. For example, the alarm and indication system


130


may be configured with a set of status lights for each memory cartridge


25


A-


25


E and a set of DIMM status LEDs, one for each memory slot, that may be shifted between memory cartridges, thus reducing the total number of indications.




During memory system operation, many events may occur, including a hot-plug power-up (occurring as a result of the insertion of a new memory cartridge), a hot-plug power-down (occurring as a result of the removal of a memory cartridge), and an auto hardware power-down (occurring as a result of an illegal unlocking of a memory cartridge). It is desirable to maintain data integrity and not to damage memory system components during any of the events. During the hot-plug power-up event and the hot-plug power-down event, there may be a preferred order of events to power-up and power-down the redundant memory cartridge, including the memory DIMMs, the memory controllers


20


A-


20


E, the MNET bus


60


, host controller/data controller bus interfaces


22


A-


22


E, memory cartridge LEDs


140


,


142


, and


144


and the audible alarm


138


.




As previously discussed, certain external logic is implemented during the hot-plug power-up and hot-plug power-down events. The PIRN is the pre-insertion/removal notification which is controlled by the memory cartridge lock


122


. The IRS-long (IRSL_) pin


118


B is a long pin on the memory cartridge connector


116


used to indicate the insertion and removal of the memory cartridge


25


from the cartridge connector


116


. The IRS-short (IRSS_) pin


118


A is a pin on the memory cartridge connector


116


used to indicate the insertion and removal of the memory cartridge


25


from the cartridge connector


116


. The M3PAL


134


is a PAL on the memory system board


120


use to control the power sequence logic. The Power Controller


126


is a standard power control chip used to detect under-voltage and over-current conditions.




Table 6 below illustrates one hot-plug power-up sequence which may be implemented in the present system


10


. Initially, during a power-up hot-plug event, one of the memory cartridge slots is powered down. The slot may be empty or occupied. Power is initially off and the clock is disabled to the slot. The host controller (HC)


16


and host/data controller


16


,


18


drive all MNET signals on the particular bus segment


22


A-


22


E to “0” on the slot. The host/data controller


16


,


18


drives RESET signals to “1” on the slot. The data controller (DC)


18


data ECC and XOR compare logic are disabled to the slot. The PIRN is in the unlock state.












TABLE 6











Hot-plug Power-up Sequence
















HW




SW




Δt




Description



















 1




Ext.






The M3PAL detets the IRS-long pin







Logic






connector. The PAL will assert the










PWRON_signal to the power controller.










When the power controller see the










PWRON_signal asserted, it will










turn the external FETs on to provide










power to the cartridge.






 1




Ext.






The power controller senses the voltage







Logic






level on the output side of the FETs.










When the voltage reaches ˜2.95 V,










the power controller will deassert the










PWRFAULT_signal. The M3PAL










detects the PWRFAULT_signal deasser-










tion and asserts the CLKEN_signal.










The CLKEN_signal will enable










the quick switch to connect the system










clock to the cartridge.






 1




HC





t


SCANIN






Detect a transition on the IRS-short










signal indicating that a memory cartridge










has been installed.






 2




HC






Generates an interrupt indicating a new










memory cartridge has been installed.






 3





SW





Write to clear HC IRS status (HG, f0,










A4-AC, bit1).






 3





SW





Write to HC to “blink once” all memory










cartridge LED's for power-on test










(HC, f0, 94-9C).






 4




HC





t


SCANIN






Detect a transition on the PIRN signal










indicating that the memory cartridge is










ready for power-up.






 5




HC






Generates an interrupt indicating a new










memory cartridge is ready to be










powered up






 5





SW





Write to clear HC PIRN status










(HC, f0, A4-AC, bit0).






 6





SW





Writes to HC to turn Power LED to the










blink state on the added memory










cartridge (HC, f0, 94-9C, bit6-5).






 7





SW





Writes to the HC Auto Power On










configuration register










(HC, f0, D2, bit4-0).






 8




HC





t


PU




+






Asserts a signal indicating to an external









t


SCANOUT






device to enable power to the memory










cartridge.






 9




HC






Load counter with Power Up Delay










register value and begin count (HC, f0,










E6).






10




HC






Wait for count to expire.






11




HC





t


PLL




+






Asserts a signal indicating to an external









t


SCANOUT






device to enable the system clock to










memory cartridge and wait for PLL to










lock.






12




HC






Load counter with Clock Enable Delay










register value and begin count (HC, f0,










E8).






13




HC






Wait for count to expire.






14




HC





t


DC






Signal to DC to execute power-up










sequence.






15




DC






Tristate MNET inputs.






16




HC





t


HC






Tristate MNET inputs (if driving 0's when










bus is disabled).






17




HC






Drive RESET inactive to hot-plugged










memory cartridge.






18




HC





t


SYNC






Synchronize the MNET bus interface










between HC, DC, and MC for the hot-










plugged cartridge.






19




HC






Generates an interrupt indicating that










the power-on sequence is complete










(HC, f0, D3, bit4-0).






20





SW





Clear the Auto Power Up status register










(HC, F0, D3, bit4-0).






20





SW





Program 12C configuration registers










(MC, f0, E8).






20





SW





Program MC 12C configuration registers










to execute reads of DIMM SPD register










space (MC, f0, E0, E4, F0, F4).






21




MC





t


SPD






MC executes 12C reads of up to 64-bits










per programmed read and generates an










interrupt MC, f0, D8, bit4-0.






21





SW





Write to clear IIC status (MC, f0, D8,










bit4-0).






22





SW





Verify DIMM compatibility of the hot-










plugged memory cartridge with the other










memory cartridges. If DIMM compatibil-










ity fails, see DIMM Incompatibility






23





SW





section. If initiating a hot-upgrade










sequence, program all MC's to be in non-










pipelined mode










(MC, f0, C8, bit1).






24





SW





Program MC configuration space on the










hot-plugged memory cartridge.






25





SW





Update CAS latency in other MC's if










necessary. If CAS latency is changed,










must set the Hot-reset MRS configuration










bit so that an MRS will be executed










on the MNET RESYNG










(MC, f0, C8, bit12).






26





SW





Update memory controller timing










attributes in other MC's if necessary.










Changes to memory controller attributes










will not be seen by internal logic until










HC generates an MNET RESYNG










command (MC, f0, CC, D0).






27





SW





Write to MC Initialize Memory










configuration register (MC, f0, C8, bit9).






28




MC





t


INITMEM






Memory controller executes a precharge.






29




MC






Memory controller executes a Mode










Register Set cycle.






30




MC






Memory controller executes 8 refresh










transactions.






31





SW





Set the HC Flush and Resync con-










figuration register (HC, f0, 90, bit4).






32




HC





t


FLUSH






Flushes all of the outstanding memory










cycles to the MC's.






33




HC






Generates an MNET RESYNG command










to resynchronize all of the MC's.






34




MC-






Updates Memory Controller Attribute







all






registers with shadow register program










values, resets queue pointers and state










machines, disables and re-enables the










refresh counters to sync refresh, enables










memory transactions, executes MRS










if enabled.






35





SW





Clear the HC Flush and Resync










configuration register (HC, f0, 90, bit4).






36





SW





Execute the Rebuild procedure










(HC, f0, 92 bit0).






36




HC





t


REBUILD






Execute Rebuild procedure and generate










an interrupt (HC, f0, 92, bit0).






37





SW





Enable data ECC and XOR compare logic










in DC, auto-replace still enabled.






38





SW





Place DC in Verify mode (DC, f0, 62,










bit1).






39





SW





Execute the Verify procedure (HC, f0,










90, bit2). See Verify Procedure section










for details on handling errors during










the Verify procedure.






39




HC





t


VERIFY






Execute Verify procedure and generate










an interrupt (HC, f0, 92, bit0).






40





SW





Turn off XOR engine auto-replace,










system fully redundant (DC, f0, 62, bit1)






41





SW





Write to HC to turn Power LED to “on”










state on the added memory cartridge






42





SW





Write to HC to set the Fault LED to the










“off” state for the powered up memory










cartridge if previously indicating a fault










condition (HC, f0, 94-9C, bit8-7).






43







If a full set of additional memory










added (hot-add, hot-upgrade):










Execute Initialize procedure across










new memory.










Execute Verify procedure across new










memory.






44

























Δt Timing parameters:













Paramater




Value




Description

















t


SCANIN






200




usec.




time required to bring input in through the scan









chain, this does not account for debounce time






t


SCANOUT






200




usec.




time required to drive an output through the









scan chain






t


PU








time required to enable power to the cartridge






t


PLL






10




usec.




time required to lock PLL






t


DC






100




nsec.




time required for DC to complete sequence






t


HC






100




nsec.




time required for HC to complete sequence






t


SYNC






2




usec.




time required to execute MNET









resynchronization process






t


SPD






1.2




msec.




time required to do a single SPD access,









assumes IIC interface operating at 80 kHz






t


INITMEM






1




usec.




time required for MC to complete initialization









process






t


FLUSH






3




usec.




time required to complete memory cycle flush









and MC resychronization






t


REBUILD






5




min.




time required to complete memory rebuild






t


VERIFY






5




min.




time required to complete memory verify







0





no additional time-indicates that this step









is included in the previous εt value











Notes:










(1) Assumes 100 MHz core clock frequency.










(2) All values are approximations to be used as guidelines for software.










Note:










All interrupts and polled registers referred to in this table can be programmed to be INTR, SMI, NMI, or poll. Table recommends most likely programming for each condition.













Table 7 below illustrates one hot-plug power-down sequence which may be implemented in the present system


10


. Initially, all memory cartridges


25


A-


25


E are online and operating in a fully redundant state


100


, as previously described herein. Only the memory cartridge to be powered-down may be in the fault state


102


or rebuild state


106


.












TABLE 7











Hot-plug Power-down Sequence
















HW




SW




Δt




Description



















 1




HC





t


SCANIN






Detect the transition of the PIRN signal,










indicating that the operator is ready to










power-down the memory module (HC, f0,










A4-Ac, bit0)






 2




HC






Generate an interrupt.






 3





SW





Clear PIRN status (HC, f0, A4-AC, bit0).






 3





SW





Verify that the system is in a redundant










configuration (DC, f0, ????, ????) and










that only the memory cartridge generating










the PIRN interrupt may be in the










attention or rebuild state.










If the selected memory cartridge cannot










be legally powered down, ignore the










request and inform the operator that the










cartridge cannot be removed by sounding










the audible alarm. (HC, f0, ????, ????).










If the operator proceeds to remove the










cartridge in an illegal, see the Illegal










Memory Cartridge Removal section.






 4





SW




t


WAIT






<Optional> Write to the HC to set the










Power LED to the “flash” state on the










selected cartridge to allow the operator










to abort the power-down sequence for










approximately 5 seconds. If an interrupt










is generated off the PIRN signal, the










power-down operation is aborted and the










state of the system is unchanged. If not,










set the Power LED to the “off” state.










(HC, f0, 94-9C, bit6-5).






 5





SW





Write to selected MC Interrupt Enable










registers to disable interrupts (MC, f0,










D9-DB).






 6





SW





Write to HC Auto Power Down configur-










ation register for the selected cartridge










(HC, f0, D0, bit4-0).






 7




HC





t


DC






Signal to DC to execute power-down










sequence.






 8




DC






Disable DC data ECC on the selected










memory segment, disable XOR compare,










and enable XOR engine auto-replace.






 9




HC





t


HC






Drive RESET to the selected memory










cartridge so that the MC on the memory










cartridge will tristate its MNET and










SDRAM signals.






10




HC






Drive 0's or tristate all MNET interface










signals to the selected memory cartridge.






11




HC





t


DC






Signal to DC to execute power-down










sequence.






12




DC






DC drive 0's or tristate all MNET










interface signals to the selected










memory cartridge.






13




HC





t


CLK




+






Disable the clock to the selected









t


SCANOUT






memory cartridge.






14




HC





t


PD




+






Deasserts a signal to an external









t


SCANOUT






device to disable power to the memory










cartridge.






15




HC






Load counter with Safe Power Down










Delay register value and begin count.






16




HC






Wait for count to expire.






17




HC






Generate an interrupt indicating the










completion of the power down sequence










(HC, f0, D1, bit4-0).






18





SW





Clear the Power Down status (HC, f0, D1,










bit4-0).

























Δt Timing parameters:













Parameter




Value




Description

















t


SCANIN






200




usec.




time required to bring input in through the scan









chain, this does not account for debounce time






t


WAIT






5




sec.




time allowed for operator to abort operation






t


DC






100




nsec.




time required for DC to complete sequence






t


HC






100




nsec.




time required for HC to complete sequence






t


CLK








time required to disable external clock,









uses scan out chain






t


PD








time required to power up cartridge, uses









scan out chain







0





no time-indicates that this step is included









in the previous εt value











Notes:










(1) Assumes 100 MHz core clock frequency.










(2) All values are approximations to be used as guidelines for software.










Note: All interrupts and polled registers referred to in this table can be programmed to be INTR, SMI, NMI, or poll. Table recommends most likely programming for each condition.










Note: The auto power-down sequence can be bypassed, all of the steps within the auto power-down sequence would then need to be controlled by software.










Note: All of the serial shift-out and serial shift-in operations take 4 us.













Table 8 below illustrates an auto hardware power-down sequence which may be implemented in the present system


10


. This event is implemented when a user has unlocked the memory cartridge illegally. Despite the fact that software has determined that performing a hot-plug operation on this memory cartridge is an illegal operation and the audible alarm has been enabled, the user continues to remove the memory cartridge. This event will result in a disconnect of the IRSS_and then the IRSL_pins. In the sequence described in Table 8, it is possible that the time required to detect IRSS_and execute the auto power-down sequence may exceed the time between the disconnect of the IRSS_and IRSL_. In this instance, the external logic powers-down the memory cartridge and may result in signals being driven into the memory controller


20


A-


20


E after it has been powered down, which may be undesirable. The sequence will terminate in a NMI.












TABLE 8











Auto Hardware Power-down Sequence
















HW




SW




Δt




Description



















1




Ext.






IRS-short pin disconnects at memory







Logic






cartridge connector.






2




HC






Detect the transition of the IRS-short










signal indicating the emminent removal










of the corresponding memory module.










IRS-short is a serial shift input,










no glitch filtering.






3




HC





t


AUTOPD






Executes the auto power-down sequence;










see “Table 4 Hot-plug Power-down










Sequence” above.






4




HC






Generate an interrupt (NMI) indicating










the completion of the power down










sequence (HC, f0, D1, bit4-0).






4




Ext.






IRS-long pin disconnects at the memory







Logic






cartridge connector






5




Ext.






The power controller senses the voltage







Logic






level on the output side of the FETs.










When the voltage reaches ˜2.95 V, the










power controller will deassert the










PWRFAULT_signal. The M3PAL detects










the PWRFAULT_signal deassertion










and asserts the CLKEN_signal. The










CLKEN_signal will enable the










quick switch to connect the system clock










to the cartridge.






6




Ext.






The M3PAL detects the IRS-long pin







Logic






disconnect on the connector. The PAL will










deassert the PWRON_signal to the power










controller. When the power controllers










see the PWRON_signal deasserted,










it will turn the external FETs off to










remove power to the cartridge.

























Δt Timing parameters:













Parameter




Value




Description









t


SCANIN






200 usec.




time required to bring input in through the scan








chain, this does not account for debounce time






t


AUTOPD






5 sec.




time required to complete auto power-down








sequence







0




no time - indicates that this step is








included in the previous εt value











Note:










All interrupts and polled registers referred to in this table can be programmed to be INTR, SMI, NMI, or poll. Table recommends most likely programming for each condition.













The hot-plug events associated with the present system allow a user to remove a memory cartridge


25


A-


25


E while the system remains operational. It may be desirable to be able to replace individual memory modules (DIMMs) while the system is still operational. Such a “hot-replace” feature provides the ability in a fault-tolerant memory configuration to disable redundancy, replace a failed DIMM with an equivalent DIMM, and then re-establish redundancy without significantly impacting normal system operation and without requiring the system to be powered down. Hot-replace is generally associated with a failure condition or a pre-failure condition. A failure condition will result in a light associated with one of the DS LEDs


144


being illuminated indicating which corresponding DIMM has failed. For a pre-failure condition, the host/data controller


16


,


18


will indicate which DIMM is faulty. Once a user is notified of the failure, a normal hot-plug procedure described with reference to Table 7 is initiated on the memory cartridge


25


A-


25


E containing the faulty DIMM. The system is taken out of a redundant mode of operation, and the individual memory cartridge is powered-down. The user then replaces the faulty DIMM and inserts the memory cartridge back into the system. The memory cartridge is then powered-up in accordance with the procedure described with reference to Table 6. Once the memory cartridge is powered up, it is rebuilt and verified for functionality. If the memory cartridge has no faults, the system is returned to a redundant mode of operation.




Hot-add and hot-upgrade procedures may also be implemented using the techniques described above. A hot-add procedure is the ability to add one or more banks of DIMMs in empty DIMM sockets to a system that is currently operational to increase the memory capacity using the hot-plug procedures described above. A hot-upgrade procedure is the ability to replace an existing bank of DIMMs currently operational within the system with larger capacity DIMMs using the hot-plug procedures described above.




In a hot-add procedure, equivalent DIMMs are added in the same empty DIMM slot across all five memory cartridges before the additional memory capacity can be utilized. Any supported DIMM may be added independent of the current memory configuration. Further, no system degradation occurs during the hot-add procedure except for the transaction overhead associated with the rebuild procedure is typically executed on each hot-plug event. Once all five DIMMs are added, an initialize procedure will write a known value to all of the new memory locations. This procedure may have a 25% overhead and a duration of approximately 30 sec/Gbyte.




The hot-add procedure may be implemented if there is an empty slot on the memory cartridge


25


A-


25


E and if software support exists. To implement the hot-add procedure, the user performs a normal hot-plug procedure on each of the memory cartridges


25


A-


25


E and adds the same size DIMM to the same empty slot across all memory cartridges


25


A-


25


E. If more than one DIMM per cartridge


25


A-


25


E is added, the DIMMs added to the same memory cartridge


25


A-


25


E do not need to be the same. However, if the current memory is striped, and memory striping is to be maintained on the new memory, the new memory is typically added in identical pairs across the two memory controller channels. Adhering to the striping rules will facilitate a hot-upgrade in the future. Next, the system rebuilds and verifies the current memory as each of the memory cartridges


25


A-


25


E is hot-plugged into the system. Additional memory capacity may not be available until each of the memory cartridges


25


A-


25


E is upgraded. Once all of the new memory (DIMMs) is added, it is initialized to a known value. This procedure may be initiated automatically or through a user interface. Once the additional memory is initialized, the operating system is informed that the additional memory is available.




The hot-upgrade procedure can potentially introduce a large number of memory configurations. Each memory configuration that is supported is tested. To reduce the number of configurations that are validated, certain limitations may be placed on legal hot-upgrade options, as set forth by way of example. First, the initial memory configuration may pair similar DIMMs in the two channels


67


,


69


of each memory cartridge


25


A-


25


E. Each channel may have two dissimilar DIMMs within the channel as long as the other channel mirrors those DIMMs. Second, DIMM upgrades may be done in pairs of similar DIMMS. The user may upgrade two or four DIMMs per memory cartridge


25


A-


25


E at a time. Third, all of the memory may be completely striped.




The hot-upgrade procedure does not place additional constraints on the system, beyond those discussed with reference to the hot-add procedure. A user can add any supported DIMM into any unoccupied slot in the memory cartridge


25


A-


25


E. However, to ensure that hot-upgrade to the system will be possible in the future, the user should follow the hot-add requirements, along with the limitations set forth above.




To implement the hot-upgrade procedure, the user first verifies that the system is in a state that allows hot-upgrade. The user then determines the current memory configuration by part-number and DIMM-slot. Next, the user implements a normal hot-plug procedure, as described above, on the first memory cartridge to replace the smaller DIMM with the larger DIMM. The system will rebuild and verify the contiguous portion of the new DIMM. Next, the memory is brought online and the entire memory subsystem begins to operate in the redundant state using the new DIMM, until the system again enters the non-redundant state to upgrade the next memory cartridge. It should be understood that the additional memory capacity may not be available until all memory cartridges


25


A-


25


E have been upgraded. Once the final memory cartridge


25


A-


25


E is upgraded, the additional memory is initialized and the operating system is informed that additional memory is available so that the memory subsystem may return to normal operation.




The memory array


26


normally operates in a pipelined mode in which multiple transactions may take place of the bus


22


at any given time. However, during an upgrade procedure, there may be differences between the new DIMMs and the existing DIMMs, such as timing and latency differences. Therefore, when the first DIMM is upgraded, the memory array


26


transitions from the pipelined mode into a non-pipelined mode in which only one transaction may take place on the bus at any given time. This transition essentially slows operation of the memory array


26


so that any timing differences between the DIMMs may be handled without creating data errors. Once all of the DIMMs have been replaced, rebuilt, and verified, the memory array


26


will transition back into the faster pipelined mode of operation. It should also be noted that the non-pipelined state may be entered in order to conserve power. In this context, the transition may take place at user selection or based upon a signal from an appropriate system, such as a thermal indication from a power supply.




The system


10


is also designed to adapt to various memory technologies. For example, several DRAM technologies are available (or will be available soon) in addition to SDRAM and EDO/FPM. These newer memory devices include: SDRAM2 or Double Data Rate SDRAM, Direct-Rambus, and SyncLink DRAM. To mitigate the risks of: (1) having to redesign the host and data controllers to support different memory types, (2) being limited to only a certain type of memory, and (3) choosing the wrong type of memory, a high-performance memory interface, the aforementioned MNET bus


22


, is used to decouple the host and data controllers from interfacing directly to the memory segments


24


, as previously discussed with reference to

FIGS. 1-3

. The MNET bus


22


is a point-to-point, general-purpose memory bus. As also previously mentioned, each MNET bus segment


22


A-


22


E is coupled to an individual memory controller


20


A-


20


E associated with each of the respective memory segments


24


A-


24


E. Therefore, if a different memory type is to be used, a memory segment


24


of the chosen memory type with an appropriate memory controller


20


(in the form of a memory cartridge


25


, for example) may be substituted for the existing memory segment and memory controller since the bus


22


will communicate with each type.




Another interesting aspect of the system


10


is its ability to “interleave” data on the different channels


67


A-


67


E and


69


A-


69


E of the memory segments


24


A-


24


E. In this context, “interleaving” refers to writing odd cachelines on the first channels


67


A-


67


E and writing even cachelines on the second channels


69


A-


69


E. As mentioned previously during the discussion of the exemplary memory controller illustrated in

FIG. 3

, the memory segments


24


A-


24


E may be organized on a single channel or on 2N channels, where N is an integer, and in this particular embodiment, each of the memory segments


24


A-


24


E is divided into two channels


67


A-


67


E and


69


A-


69


E. Since channel


67


A-


67


E and


69


A-


69


E in this embodiment is capable of containing up to four DIMMs, a system may be constructed in which the memory devices in one channel


67


are not identical to the memory devices in the other channel


69


. Although each memory segment


24


A-


24


E will typically be identical to simplify timing and latency concerns, as well as to facilitate the striping of data across the multiple memory segments


24


A-


24


E as described above, interleaving allows each channel to contain different amounts of memory.




By way of example,

FIG. 7

illustrates the five memory segments


24


A-


24


E in a configuration in which each of the first channels


67


A-


67


E accesses a 1 GB DIMM and a 2 GB DIMM and each of the second channels


69


A-


69


E accesses a 1 GB DIMM. Because the fifth memory segment


24


E is used to store parity information in this running example, the available memory capacity for storing data resides on the first four memory segments


24


A-


24


D and, thus, equals 16 GB. Of this 16 GB of memory, the addressable space available on both the first channels


67


A-


67


D and the second channels


69


A-


69


D equals 8 GB due to the presence of the 1 GB DIMMs on each of the channels


67


A-


67


D and


69


A-


69


D. Accordingly, the addressable space available past the space that is available on both channels equals 8 GB due to the presence of the 2 GB DIMMs on each of the first channels


67


A-


67


D. Thus, the address space is mapped such that the space from 0 to 8 GB may be interleaved on both channels


67


A-


67


D and


69


A-


69


D, while the space from 8 GB to 16 GB will not be interleaved since it resides only on the first channels


67


A-


67


D.




Given this exemplary construction, from 0 to 8 GB, odd cachelines are written on the first channels


67


A-


67


D and even cachelines are written on the second channels


69


A-


69


D. From 8 GB to 16 GB, all cachelines are written on the first channels


67


A-


67


D. Thus, the memory array


26


in this example will contain an interleaved region from 0 to 8 GB and a non-interleaved region from 8 GB to 16 GB.




Of course, it should be understood that this discussion has focused on the address space defined by the first four memory segments


24


A-


24


D. However, the discussion applies equally to the manner in which parity information is written to the fifth memory segment


24


E. In other words, from 0 to 8 GB, odd cachelines of parity information are written on the first channel


67


E and even cachelines of parity information are written on the second channel


69


E, and from 8 GB to 16 GB, all cachelines of parity information are written on the first channel


67


E.




It should be appreciated that additional channels would be interleaved in a similar fashion. In other words, if each memory segment


24


A-


24


E included four channels instead of the two channels discussed by way of example above, memory devices present on each of the four channels would define an initial address space that would define an initial interleaved region. However, unlike the example discussed above, a secondary interleaved region may be defined by memory devices present on a selected two of the four channels. One such example is illustrated in FIG.


8


.




In this example, each of the memory segments


24


A-


24


E includes four channels


150


A-


150


E,


152


A-


152


E,


154


A-


154


E, and


156


A-


156


E. Each channel accesses 1 GB DIMM, each of the first and second channels


150


A-


150


E and


152


A-


152


E accesses an additional 2 GB DIMM, and each of the fourth channels accesses an additional 4 GB DIMM. Thus, in this example, the initial interleaved region extends from 0 to 16 GB, since it is defined by the four 1 GB DIMMs on each of the channels of the first four memory segments


24


A-


24


E. The secondary interleaved region extends from 16 GB to 32 GB, since it is defined by the two 2 GB DIMMs on each of the first two channels


150


and


152


of the first four memory segments


24


A-


24


E. Finally, the non-interleaved region extends from 32 GB to 48 GB, since it is defined by the single 4 GB DIMMs on each of the fourth channels


156


of the first four memory segments


24


A-


24


E.




Although the presence of similar memory devices across 2N channels does not require interleaving, it should be appreciated that interleaving does provide certain advantages. For instance, interleaving increases the bandwidth of the memory system since it permits two or more memory accesses to occur simultaneously. This capability is particularly advantageous in applications involving sequential addressing.




While the invention may be susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, it should be understood that the invention is not intended to be limited to the particular forms disclosed. Rather, the invention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the invention as defined by the following appended claims.



Claims
  • 1. A method of powering-up a segment of semiconductor memory in a computer system, comprising the acts of:(a) inserting the segment of semiconductor memory into the computer system while the computer system is operating, wherein inserting the segment of semiconductor memory comprises connecting one or more first insertion removal sense pins from the segment of semiconductor memory, thereby causing the assertion of a power signal to a power controller; (b) initializing the segment of semiconductor memory while the computer system is operating; (c) rebuilding the segment of semiconductor memory while the computer system is operating; and (d) verifying the segment of semiconductor memory for validity while the computer system is operating.
  • 2. The method, as set forth in claim 1, wherein the segment of semiconductor memory comprises a memory cartridge.
  • 3. The method, as set forth in claim 2, wherein act (a) comprises the acts of:sequentially connecting a plurality of pins at an interface, the interface comprising a connector configured to couple the memory cartridge to the computer system in response to the memory cartridge being inserted into the computer system; and sequentially enabling a plurality of signals in response to the sequential connection of the plurality of pins.
  • 4. The method, as set forth in claim 3, wherein the plurality of pins comprise varying pin lengths, the pin lengths assigned to sequentially connect the plurality of pins upon insertion memory cartridge into the computer system.
  • 5. The method, as set forth in claim 3, wherein act (a) comprises:connecting one or more ground pins from the memory cartridge to the computer system; connecting one or more power pins from the memory cartridge to the computer system; connecting one or more data pins from the memory cartridge to the computer system; and connecting one or more second insertion removal sense pins from the memory cartridge to the computer system.
  • 6. The method, as set forth in claim 2, wherein the assertion of the power signal to the power controller activates power transistors to provide power to the memory cartridge.
  • 7. The method, as set forth in claim 6, wherein the power controller monitors the voltage level at an output of the power transistors and connects a system clock to the memory cartridge when the voltage level reaches a minimum threshold.
  • 8. The method, as set forth in claim 5, wherein the act of connecting the one or more second insertion removal sense pins generates an interrupt from a host controller indicating that the memory cartridge has been installed.
  • 9. The method, as set forth in claim 2, wherein act (a) comprises the act of locking the memory cartridge into the memory system.
  • 10. A method of powering-down a segment of a redundant memory in a computer system, the segment comprising a memory cartridge, comprising the acts of:(a) generating an interrupt to the computer system; (b) verifying that the computer system is in a redundant mode of operation; (c) executing a power-down sequence from a data-controller; and (d) generating an interrupt to the computer system indicating that the power-down sequence is complete.
  • 11. A method of inserting a memory cartridge into a cartridge connector, comprising the acts of:(a) connecting a ground pin from the memory cartridge to the cartridge connector; (b) connecting a power pin from the memory cartridge to the cartridge connector; (c) connecting a first insertion sense pin from the memory cartridge to the cartridge connector; (d) asserting a present detect signal to a host controller; (e) asserting a power enable signal to a power controller; (f) asserting a power signal supplied through the power pin to implement a soft-start of the memory cartridge; (g) connecting signal pins from the memory cartridge to the cartridge connector; (h) connecting a second insertion pin from the memory cartridge to the cartridge connector; (i) asserting an insertion removal sense signal to the host controller; (j) generating a system interrupt; (k) de-asserting a power fault signal when a voltage supplied to the memory cartridge is greater than a threshold voltage; (l) asserting a clock enable signal to enable a system clock to a memory control device; (m) asserting a control signal to the memory cartridge to enable the internal PLLs in the memory control device; (n) asserting a power good signal to the memory cartridge to indicate that the power signal is received by the memory cartridge; (o) unlocking a system lock configured to secure the memory cartridge in the cartridge connector; (p) asserting a pre-insertion removal notification signal to the host controller; (q) generating an interrupt indicating that the memory cartridge is ready to be powered-up; and (r) initializing the memory cartridge.
  • 12. The method of inserting a memory cartridge into a cartridge connector, as set forth in claim 11, wherein the acts are performed in the recited order.
  • 13. A method for removing a memory cartridge from a cartridge connector comprising the acts of:(a) unlocking the memory cartridge; (b) de-asserting a pre-insertion removal notification signal to a host controller; (c) generating a system interrupt; (d) powering down the memory cartridge; (e) disconnecting a first insertion pin from the memory cartridge to the cartridge connector; (f) de-asserting an insertion removal signal to the host controller; (g) disconnecting signal pins from the memory cartridge to the cartridge connector; (h) disconnecting a second insertion pin from the memory cartridge to the cartridge connector; (i) de-asserting a present detect signal; (j) generating a system interrupt; (k) de-asserting power to the power controller; (l) asserting a power fault signal to the host controller when a voltage supplied to the memory cartridge is less than a threshold voltage; (m) de-asserting a clock enable signal; (n) disconnecting a system clock to a memory control device; (o) de-asserting a power good signal to the memory control device; (p) disconnecting a power pin from the memory cartridge to the cartridge connector; and (q) disconnecting a ground pin from the memory cartridge to the cartridge connector.
  • 14. The method of inserting a memory cartridge into a cartridge connector, as set forth in claim 13, wherein the acts are performed in the recited order.
  • 15. A method of powering-up a segment of semiconductor memory in a computer system, comprising the acts of:(a) inserting the segment of semiconductor memory into the computer system while the computer system is operating, wherein inserting the segment of semiconductor memory comprises connecting one or more second insertion removal sense pins from the segment of semiconductor memory, thereby generating an interrupt from a host controller indicating that the segment of semiconductor memory has been installed; (b) initializing the segment of semiconductor memory while the computer system is operating; (c) rebuilding the segment of semiconductor memory while the computer system is operating; and (d) verifying the segment of semiconductor memory for validity while the computer system is operating.
  • 16. The method, as set forth in claim 15, wherein the segment of semiconductor memory comprises a memory cartridge.
  • 17. The method, as set forth in claim 16, wherein act (a) comprises the acts of:sequentially connecting a plurality of pins at an interface, the interface comprising a connector configured to couple the memory cartridge to the computer system in response to the memory cartridge being inserted into the computer system; and sequentially enabling a plurality of signals in response to the sequential connection of the plurality of pins.
  • 18. The method, as set forth in claim 17, wherein the plurality of pins comprise varying pin lengths, the pin lengths assigned to sequentially connect the plurality of pins upon insertion memory cartridge into the computer system.
  • 19. The method, as set forth in claim 17, wherein act (a) comprises:connecting one or more ground pins from the memory cartridge to the computer system; connecting one or more power pins from the memory cartridge to the computer system; connecting one or more first insertion removal sense pins from the memory cartridge to the computer system; and connecting one or more data pins from the memory cartridge to the computer system.
  • 20. The method, as set forth in claim 19, wherein the act of connecting the one or more first insertion removal sense pins causes the assertion of a power signal to a power controller.
  • 21. The method, as set forth in claim 20, wherein the assertion of the power signal to the power controller activates power transistors to provide power to the memory cartridge.
  • 22. The method, as set forth in claim 21, wherein the power controller monitors the voltage level at an output of the power transistors and connects a system clock to the memory cartridge when the voltage level reaches a minimum threshold.
  • 23. The method, as set forth in claim 16, wherein act (a) comprises the act of locking the memory cartridge into the memory system.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to Provisional Application Ser. No. 60/177,810, filed on Jan. 25, 2000.

US Referenced Citations (3)
Number Name Date Kind
5268592 Bellamy et al. Dec 1993 A
5784576 Guthrie et al. Jul 1998 A
6487623 Emerson et al. Nov 2002 B1
Provisional Applications (1)
Number Date Country
60/177810 Jan 2000 US