US 7134057 B1
An apparatus and method for controlling and providing off-pitch shifting circuitry for implementing column redundancy in a multiple-array memory is described in connection with an on-board cache memory integrated with a microprocessor. Depending upon the particular sub-array being accessed, shift position data is provided to a shared, off-pitch shift circuit to control the read and/or write operations for the memory. A register bank stores data identifying the defective columns which is compared to the incoming address information to detect any matches. In response to a match, control information is provided to the off-pitch shift circuit for shifting or re-routing the incoming data to a non-defective address in the memory. In this way, defective columns located in different positions in each sub-array can be replaced by redundant paths, thereby repairing the cache and increasing the manufacturing yield of microprocessors with an on-board cache memory.
1. A microprocessor system comprising:
a central processing unit;
an integrated memory array coupled to the central processing unit and addressable by a primary memory address, said memory array comprising a plurality of sub-arrays and a corresponding plurality of redundant columns,
an integrated redundancy control circuit coupled to and physically separate from the memory array, comprising a dynamic shift circuit coupled to and shared by the plurality of sub-arrays for shifting at least a portion of a primary memory address to address at least one of the corresponding plurality of redundant columns when said primary memory address includes a defective address in a sub-array.
2. The microprocessor system of
3. The microprocessor system of
4. The microprocessor system of
5. The microprocessor system of
6. The microprocessor system of
7. The microprocessor system of
8. The microprocessor system of
9. The microprocessor system of
10. A fault-tolerant integrated memory circuit formed on semiconductor substrate, comprising:
a memory array formed on said substrate comprising a plurality of memory clusters, each cluster having a set of memory banks, each memory bank having a set of N primary columns and M redundant columns, where “N” and “M” are predetermined whole numbers and where the primary columns and redundant columns may be addressed with array column address signals; and
an off-pitch column redundancy control circuit formed on said substrate adjacent to said memory array, comprising:
a storage circuit for holding defective column indicator information representing a location of any defective column in a memory bank;
a comparison circuit coupled to receive defective column indicator information from the storage circuit and configured to compare, for each memory array access, defective column indicator information with a primary memory address signal received by said memory array and to generate a redundancy address control signal if the primary memory address signal includes a defective column;
for each cluster, a shifter circuit physically located outside the memory array, each said shifter circuit being selectively coupled to each memory bank in said cluster depending on which memory bank is being accessed by said primary memory address, said shifter circuit coupling data associated with the primary memory address signal to an array column address signal in response to the redundancy address control signal so any defective column in the memory array is avoided during any memory access to said memory array.
11. The integrated memory circuit of
12. The integrated memory circuit of
13. The integrated memory circuit of
14. The integrated memory circuit of
15. The integrated memory circuit of
16. The integrated memory circuit of
17. The integrated memory circuit of
18. The integrated memory circuit of
19. In an integrated circuit memory circuit comprising a memory array comprising a first plurality of memory sub-arrays and a second plurality of memory sub-arrays, where each sub-array comprises redundant column elements, a method for providing off-pitch column redundancy, comprising:
storing defect data in a plurality of redundancy registers identifying defective columns in the memory array;
comparing the defect data to a memory array address to generate a select signal that identifies any defective column relating to the memory array address; and
using a shift circuit that is shared by the first plurality of memory sub-arrays and that is located outside of the memory array to repair any location in the first plurality of memory sub-arrays with one or more column redundant elements.
20. The method of
1. Field of the Invention
The present invention relates generally to the field of fault tolerant memory devices. In one aspect, the present invention relates to a column redundancy method and system using off-pitch column shifting in connection with a semiconductor memory device.
2. Description of the Related Art
Computer systems are constructed of many components, typically including one or more processors that are connected to a motherboard for access to one or more memory devices, (such as RAM) and secondary storage devices (such as hard disks and optical discs). For example,
Redundancy circuits are used to overcome such defects and thereby boost semiconductor yield. Various redundancy schemes have been developed to repair memories having faulty memory cells by replacing the column having the defect with a redundant column of the memory array while preserving the original addresses of the affected data paths. In general, once the location of a defective memory cell or cells is identified during testing, the column containing the defective cell(s) is effectively disabled so that it can no longer be addressed, and a spare column of memory cells physically located elsewhere on the chip is programmed to be accessed by the logical address that would have accessed the defective column. Typically, information identifying a defective element is stored in latches or fuses located on each column or row of data path, though this requires excessive space in the valuable memory array area.
As microprocessors become more and more sophisticated (such as with 32-bit or 64-bit data path processors), additional problems arise, particularly when such devices use memories having multiple arrays. For example, a single redundant set of arrays cannot compensate for a short defect between arrays belonging to two adjacent main memory arrays. Therefore, at least two sets of redundant arrays would be needed to correct such defects. Additionally, data transmissions along the redundant path can suffer a speed penalty due to the extra line length and the incidence of higher parasitic capacitance. In some instances, the input and output data path to the redundant element may be tripled in length (as compared to the primary storage element) for a wide-word computing device. Variable delays from data paths are highly undesirable in high-performance memory storage, as they force the performance of an entire memory array to be no better than that of the extended length path's performance. Finally, fuses must be laid out integrally to each set so as to be able to selectively disconnect sets in which defects exist.
Conventional redundancy solutions that address these issues are described in U.S. Pat. Nos. 5,537,665 and 5,204,836, which are hereby incorporated by reference in their entirety as if fully set forth herein. These references disclose using “on pitch” shift circuits to shift around defective memory elements. For large multi-array memories using such “on-pitch” shift circuits to shift around defective columns, the number of registers and shift circuits required to store and route redundancy information increases dramatically. In addition, an increase in the number of registers increases the tracks that need to be allocated for routing the wires carrying the redundant information. An increase in the register count creates other problems, including reduced array efficiency, reduced redundancy register yield and cosmic ray protection issues. Thus, there is a need for a scheme which minimizes register count while maintaining redundancy coverage. Further limitations and disadvantages of conventional systems will become apparent to one of skill in the art after reviewing the remainder of the present application with reference to the drawings and detailed description which follow.
Broadly speaking, the present invention is a method and apparatus provides an improvement in memory redundancy design by providing for off-pitch column shifting during data read and write operations to a memory array. In a selected embodiment, the shift position is dynamically updated every access cycle, based upon the block of the memory array being accessed. A shifter circuit located outside of the memory sub-blocks may be used to keep track of the bad addresses by comparing a read or write memory address to the bad address and deciding where to shift the address data to thereby implement an improved and efficient column redundancy scheme.
In accordance with various embodiments of the present invention, a method and apparatus provide an on-chip memory for integration on a microprocessor, where the memory uses one or more off-pitch dynamic shifter circuits to provide column redundancy for a plurality of sub-arrays. In particular, a primary memory address provided to an integrated memory array is evaluated against defective column indicator information. The indicator information, which may be retrieved from off-chip storage, is used to identify a location of any defective column in a sub-array of the integrated memory. If the primary address corresponds to a defective address or column, a redundancy address control signal is generated and applied to the off-pitch dynamic shifter circuit. Depending on which sub-array is being accessed by the primary memory address, the dynamic shifter circuit couples data associated with the primary memory address signal to an array column address signal in response to the redundancy address control signal so any defective column in the sub-array is avoided during any access to said memory array. In a selected embodiment, the dynamic shift circuit may be initialized with a first shift value if a defective portion of a first sub-array in the plurality of sub-arrays is addressed in a first access cycle, and may be initialized with a second shift value if a defective portion of a second sub-array in the plurality of sub-arrays is addressed in a second access cycle.
The objects, advantages and other novel features of the present invention will be apparent to those skilled in the art from the following detailed description when read in conjunction with the appended claims and accompanying drawings.
A method and apparatus for providing off-pitch column redundancy using dynamic shifters is described. While various details are set forth in the following description, it will be appreciated that the present invention may be practiced without these specific details. For example, selected aspects are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention. Some portions of the detailed descriptions provided herein are presented in terms of algorithms or operations on data within a computer memory. Such descriptions and representations are used by those skilled in the field of memory design to describe and convey the substance of their work to others skilled in the art. In general, an algorithm refers to a self-consistent sequence of steps leading to a desired result, where a “step” refers to a manipulation of physical quantities which may, though need not necessarily, take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It is common usage to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. These and similar terms may be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions using terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. For purposes of providing an exemplary and not limiting description, it will be useful to describe the various aspects and embodiments of the invention herein in the context of a cache memory structure that is constructed with CMOS SRAM memory cells. However, the present invention is not limited to CMOS-based processes and may be used in connection with other categories of memory products, including without limitation, DRAM, ROM, PLA, flash and the like, whether integrated within a VLSI system, cache or non-cache, or a stand alone memory device.
In connection with the example described herein and depicted in
As semiconductor memories become more and more dense and/or are integrated with other circuitry (such as the integration of CPU 2, L1 cache 4 and L2 cache 6), the overall circuit becomes more and more susceptible to the presence of defects which could impede or corrupt the flow of data through any of the desired paths. A specific example of such a complex integrated circuit system is shown in
As depicted in
Access to the cache 22 is provided through the cache control circuit (which may be implemented in the CPU portion 21), tag/LRU array 26 and redundancy control circuit 24. Thus, access control circuitry may be physically separate from the memory array, though formed on the integrated circuit substrate for the microprocessor 20. As described herein, the access control circuit uses a dynamic shift circuit that is shared by the sub-arrays in a particular cluster (e.g., cluster0). In accordance with the present invention, the shift circuit may be implemented as a combinatorial collection of multiplexers or other connector circuit(s) that may be dynamically configured with each memory access to its associated array so that input or output data is stored or retrieved from non-defective memory elements based on the redundancy defect data associated with the accessed array.
For each of the sub-arrays or sections in a cluster, if and when the primary memory address (or portion thereof) includes a defective column in the cluster, the dynamic shifter adjusts an incoming primary memory address (or portion thereof) to a non-defective column, which may be in the sub-array or in the redundant column array (e.g., Redundancy Columns). In one embodiment, the redundancy control circuit 24 determines if the primary memory address includes a defective address or element by comparing the primary memory address to redundancy data that is stored in redundancy registers. The redundancy data, which may be remotely stored (for example, by using off-pitch fuses), is locally stored in the redundancy registers and identifies defective elements in the primary memory space (e.g., defective columns in a sub-array or section). A plurality of comparison circuits may be used to determine if the incoming primary address matches with any of the defective memory elements identified by the redundancy data. Depending on the match results, the dynamic shifter circuit for a cluster is initialized with control data to route at least part of the primary memory address to an alternate memory location, such as a redundant element in the same cluster.
When the comparison circuits determine that an incoming memory address 72 matches a defective address identified by the information stored in local redundancy register bank 65, the defective address is avoided using the shift circuits located in the peripheral data I/O circuit area 31 and implemented as data-in and out shifters 50, 52, 54, 56, 58. Each of these off-pitch shifters is shared by sub-arrays in a given cluster, and is used to route the incoming data 74 to new, shifted locations in the sub-array and/or redundancy array, as required. Instead of using switch circuits incorporated in the array 30, the present invention accrues a number of advantages from moving the data shifters off-pitch or outside the array 30, including simplified pitched cells, improved array efficiency and less space constrained layout.
In accordance with the present invention, the off-pitch shifter circuits are used to switch the arrays of parallel data paths in memory data structures upon the detection of defects in the data path or memory storage device implicated by the primary memory address 72. In particular, redundant parallel arrays are used to correct for any open or short defects in a parallel memory data structure using the dynamic shift circuits 50, 52, 54, 56, 58 as toggle switches or shifter circuits. Upon encountering any open or short in the one or more data paths (as identified by control information provide to the toggle switch), the toggle switches coupled to the data paths affected by the open or short are “flipped” to connect to the adjacent data paths in a cascading fashion. For example, during memory write operations, if an address 72 for the memory storage location corresponds to a defective column (for example) identified by the redundant data from the fuse farm 70, the local redundancy register bank 65 generates a defect signal output 66. In a selected embodiment, the defect signal 66 is generated using comparison circuits (60, 62, 68, etc.) which receive the incoming address information 72 and simultaneously compare it to defective address information stored in redundancy registers (61, 63, 69, etc.). By storing data from the remotely located fuses in soft redundancy registers, (61, 63, 69, etc.), both row redundancy and column redundancy may be flexibly and efficiently provided with fewer registers and a more efficient circuit layout. In one embodiment, the bank of redundancy registers 65 requires only enough registers for the total number of repairs, and these registers can be shared over the array clusters by using a dynamic channel allocation circuit 64.
Upon receiving the defect signal 66, the dynamic channel circuit 64 issues a shift control signal and/or redundant address control signal 67 to the input data shifter circuit corresponding to the particular section of the array being addressed. For a column redundancy scheme, one or more dynamic channel circuits are provided for replacing defective columns. The dynamic channel circuit 64 provides control information 67 specifying, for example, the shift position, column select and mode to a shifter control circuit (e.g., 51) for the dynamic shifter (e.g., 50) corresponding to the specific memory section (e.g., within section 33 of cluster 32) being addressed for the write operation. The “mode” control information is used by the shifter to distinguish between normal I/O column repair and a wire repair when four adjacent I/O columns are replaced, described more fully below.
The dynamic shifter circuits may be constructed in any suitable fashion to implement the address routing function of the present invention. For example and as illustrated in
Once the dynamic shifter (e.g., 50) corresponding to the cluster (e.g., 32) containing the memory write address (e.g., identifying a sub-block in section 33) receives control information from its shifter control circuit (e.g., 51), the shifter is initialized with a shift pattern. For example, if one or more of the primary data paths in an array section (e.g., 33) is defective, the shifter is initialized with a shift pattern which causes the shifters to shift around the defective primary data paths, thereby supplementing the non-defective primary data paths with redundant data paths when elements within the array section 33 are accessed. In order to maintain substantially uniform access paths to the memory elements, the shifters do not simply replace one of the defective primary data paths with one of the redundant data paths. Instead, the data paths are shifted so that the defective primary data path is replaced with an adjacent non-defective primary data path. Each of the subsequent primary data paths are replaced by their adjacent primary data path until the final primary data path is replaced by a redundant data path which is adjacent to it. With such shift patterns applied to a dynamic off-pitch shifter, incoming data 74 to be written into the memory array 30 is routed around any defective columns in the originally addressed memory space by the dynamic input shifters (50, 52, 53, 56).
A memory read access operates in substantially the same way to generate output data 75. An incoming address 72 for the data to be read from a particular section in the memory array 30 is compared to the redundancy data stored in the register bank 65. If there is a match, control information 67 e is provided to the control circuit 59 for the dynamic output shifter 58 which uses the information to generate the select signals for the mux-based output shifter to shift the outgoing data to its correct position, including selection of the spare multiplexers 58 a if the primary memory read address implicates a defective address, in which case the data stored in the redundant element is routed through multiplexers 58 a to the data output port 75.
Other replacement mechanisms may also be used in connection with the present invention. For example, the dynamic shifters may be initialized with shift data that replaces only the defective primary data path(s) with redundant data path(s), thereby routing incoming data 74 such that only the portion of the incoming data that is addressed to a defective column is shifted to the redundant array.
Once initialized, the shifter retains the shift pattern until power is removed, until the shifter has been reinitialized by its corresponding shifter control circuit, or until the shifter is reset. In a selected embodiment, the shifter is in its default state prior to initialization whereby the primary data paths for the array section are used to access elements within that array.
In accordance with the present invention, redundant columns of a cluster (e.g., 32) can repair any location in the section of sub-blocks (e.g., 33) in that cluster. In addition, different shift patterns can be provided by a dynamic shifter at each memory access by loading custom shift data, depending on which sub-array or section in the cluster for the shifter is being addressed. This flexibility of replacement is made possible by having a single dynamic input shifter (e.g., 50) for that cluster which is dynamically initialized with control signal information provided by the dynamic channel allocation circuit 64.
In accordance with an alternate embodiment of the present invention, column redundant elements from different clusters can be aggregated, thereby allowing the repair of multiple consecutive I/O columns in a single cluster, and all respective control signal metal layers. By using redundant columns in adjacent sub-arrays, cosmic ray double bit hit reliability may be improved. This implementation is advantageously applied with large caches having numerous sub-arrays in the cache where the yield of global wires needs to be accounted for while designing redundancy schemes. For example, where a column select wire is used by multiplying I/O column slices, a defective column select wire would require replacing all affected I/O columns with spare I/O columns. In addition, a defect in the global wire would require replacing corresponding I/O columns in all sub-blocks over the entire cluster. Such a repair is facilitated by the off-pitch column redundancy scheme described herein.
Referring again to
In accordance with a selected embodiment of the dynamic shifting scheme of the present invention, the off-pitch shifters (50, 52, 54, 56, 58) may be configured to shift different amounts, depending on which sub-block is being accessed. For example, if, in cluster 32, column 20 in sub-block0 and column 40 in sub-block 15 need to be repaired, different shift positions are transferred to the shifter 50 by the shift control circuit 51, depending on the sub-block being accessed. As a result, during any given access, the incoming block (or sub-block) and cluster addresses 72 are compared with all the redundancy registers 61, 63, etc. to determine if there is a match. A match indicates that there is a defective column in the accessed sub-block, and the associated shift position is transferred to the shifter control via a dynamic channel. In case of a memory write operation, the shifter control uses this information to generate the selects for the mux-based shifter. During a read operation, the associated shift information is used by the output data shifter 58 for the same purpose.
In accordance with a selected embodiment, the methods and systems for providing off-pitch column redundancy using dynamic shifters as shown and described herein may be implemented in software stored on a computer-readable medium and executed as a computer program on a general purpose or special purpose computer. The invention, for example, can be implemented in connection with any program that is used to control the operation and addressing of an integrated circuit memory, such as a microprocessor circuit. The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, which can be thereafter be read by a computer system. For clarity, only those aspects of the software germane to the invention are described, and product details well known in the art are omitted. For the same reason, the computer hardware is not described in further detail. It should thus be understood that the invention is not limited to any specific computer language, program, or computer.
Thus, the present invention implements an off-pitch data shifter for use in providing column redundancy. The shift-position may be dynamically updated every access cycle, based upon the block of the memory array being accessed. An example application would be in a microprocessor having on-board cache memory comprised of more than one memory cluster. The present invention controls the address shift operation with a reduced number of redundancy registers and shifter circuits. The present invention also enables wire redundancy, which reduces the amount of required wiring and thereby improves device yield. In addition, the address shifting embodiment of the present invention provides better timing control. When the shared, off-pitch shifter is implemented to provide element redundancy, the present invention improves array efficiency, improves area utilization, and reduced the overall design time. As but one example of the benefits that may accrue from the various embodiments of the present invention described herein, the semiconductor yield rate may be improved for complex integrated circuits that require increasing complexity in design and miniaturizations, such as microprocessors which contain large on-board cache memory.
While the present invention has been particularly described with reference to