The present invention relates to the field of memory systems and particularly to memory system repairs.
In computing, memory refers to the physical devices used to store programs or data on a temporary or permanent basis for use in a computer or other digital electronic device.
Accordingly, an embodiment of the present disclosure is directed to a memory system. The memory system includes a tiled memory having a plurality of memory blocks, a plurality of repair blocks serving as a shared repair resource for the plurality of memory blocks in the tiled memory, and a memory controller. The memory controller is configured for: identifying a defective memory block among the plurality of memory blocks in the tiled memory; identifying a replacement block among the plurality of repair blocks for replacement of the defective memory block; retrieving a set of memory blocks from the plurality of memory blocks in the tiled memory in response to a data access request, wherein the set of memory blocks retrieved containing the defective memory block; retrieving a set of repair blocks from the plurality of repair blocks in response to the data access request, wherein the set of repair blocks retrieved containing the replacement block for replacement of the defective memory block; and replacing the defective memory block in the set of memory blocks with the replacement block.
A further embodiment of the present disclosure is directed to a memory repair method for a tiled memory. The method includes the steps of: organizing a plurality of repair blocks to serve as a shared repair resource for the plurality of memory blocks in the tiled memory; identifying a defective memory block among the plurality of memory blocks in the tiled memory; identifying a replacement block among the plurality of repair blocks for replacement of the defective memory block; retrieving a set of memory blocks from the plurality of memory blocks in the tiled memory in response to a data access request, wherein the set of memory blocks retrieved containing the defective memory block; retrieving a set of repair blocks from the plurality of repair blocks in response to the data access request, wherein the set of repair blocks retrieved containing the replacement block for replacement of the defective memory block; and replacing the defective memory block in the set of memory blocks with the replacement block.
An additional embodiment of the present disclosure is also directed to a memory repair method for a tiled memory. The method includes the steps of: organizing at least one repair block to serve as a shared repair resource for the plurality of memory blocks in the tiled memory; identifying a defective memory unit among the plurality of memory blocks in the tiled memory; identifying a replacement unit in the repair block for replacement of the defective memory unit; retrieving a set of memory blocks from the plurality of memory blocks in the tiled memory in response to a data access request, wherein the set of memory blocks retrieved containing the defective memory unit; retrieving the replacement unit from the repair block in response to the data access request; and replacing the defective memory unit in the set of memory blocks with the replacement unit.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not necessarily restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and together with the general description, serve to explain the principles of the invention.
The numerous advantages of the present invention may be better understood by those skilled in the art by reference to the accompanying figures in which:
Reference will now be made in detail to the presently preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings.
It is noted that the tiled memory 100 is accessed in a per row fashion. When an input/output (I/O) device needs to access a particular row in the tiled memory, row 106 for instance, the interface 104 is utilized to select that particular row 106 and to establish communication between the selected row 106 and the I/O device to facilitate data access. It is contemplated that the interface 104 can be implemented utilizing a multiplexer as well as other suitable devices.
It is contemplated that some of the memory blocks 102 may fail during the operation. To provide repair capabilities for such tiled memories, in accordance with an embodiment of the present disclosure, one or more redundant memory blocks (macros) 108 are provided and shared as repair resource among the memory blocks 102 in the tiled memory. As illustrated in
More specifically, in accordance with an embodiment of the present disclosure, the tiled memory 100 implements a memory self test logic to test each of the memory blocks being covered by the redundancy policy. When a failed memory block is detected, a repair controller/multiplexer 110 is informed and the failed memory block is identified. The repair controller 110 then diverts read/write access intended to the identified failed memory block to a redundancy block in the shared repair resource instead.
As illustrated in
In the example depicted in
In one embodiment, the redundant memory blocks are accessible in a per row fashion. In such a configuration, the repair controller 110 can utilize a multiplexer to select one or more rows that contain the replacement blocks 106B′ and 106C′ as illustrated in
An alternative multiplexer implementation when there is only one redundant block is to use a barrel shifter, similar to column repair within a memory, where each of the memory can be replaced by the repairing neighbor. The repairing neighbor is one and only one neighboring memory that can be used to replace the current memory. The repairing neighbor, when used as replacement, can be replaced by its own repairing neighbor. This repair action continues until the redundant memory is used.
In one embodiment, after a repair decision is made, the failed memory blocks in the tiled memory are put into sleep mode or disabled. The unused redundancy blocks can also be put into sleep mode or disabled. It is contemplated that memory access control signals can still be sent to the disabled memories and they will not cause any harm to the overall functionality. In addition, the redundant memory and memory been replaced are accessed at the same time in certain implementations to further improve timing. For instance, for the read data path, the tiling multiplexer 104 (i.e., the memory subsystem functional path) and the repair controller 110 (i.e., the repair path) can be configured to perform the selection processes in parallel. For write requests, write data and control signals are sent to the failed memory in the original tiled memory structure as well as the repair memory in the redundant memories. In this manner, the input signals to the original tiled memory structure can be left unmodified and there is no timing impact to the original tiled memory.
While replacing the failed memory blocks as described above provides adequate memory repair capabilities, it is contemplated that the replacement is not limited to the block/macro level repair. In one embodiment in accordance with the present disclosure, the memory self test logic is utilized to identify defects at a sub-block level. For instance, sub-blocks, bits, words, rows or columns among memories can be tested and defects can be identified. Identifier of such defective units (e.g., bits, words, rows, columns or the like) are then provided to the repair controller 110, and replacement units corresponding to the defective units can be retrieved and selectively merged with the non-defective units in the similar manner as described above. It is contemplated that smaller repairable unit sizes (e.g., identifying and repairing defects at bits or words level) generally require more processing/tracking compared to larger repairable unit sizes (e.g., identifying and repairing defects at rows or columns level). However, the specific repairable unit size defined for self testing and repairing is an implementation specific decision and may vary without departing from the spirit and scope of the present disclosure.
It is also contemplated that shared redundancy among the memory blocks as described above can be used in combination with dedicated redundancy within each block itself. Dedicated redundancy allows each memory block to provide repair capabilities for itself, and can co-exist with the shared redundancy scheme in repairing a group of memories. It is contemplated that the dedicated redundancy for each memory block can be implemented utilizing any self repair mechanisms or the like without departing from the spirit and scope of the present disclosure. In certain implementations, utilizing both types of redundancy may reduce repair multiplexer area and timing impact, and utilizing both types of redundancy may be utilized to server some other test purposes.
It is further contemplated that in one embodiment of the present disclosure, the group of memory blocks 102 as indicated in
It is contemplated that the defective memory unit size and the replacement unit size need to be identical. However, this unit size is not required to be the same as the size of each memory block. Unit size smaller than the memory block size is utilized in certain embodiments in accordance with the present disclosure to provide sub-block level repair capabilities. It is also contemplated that more than one defective memory unit can be identified and replaced at once, and that step 308 and 310 can be performed in parallel to improve the performance. Furthermore, it is contemplated that the memory repair method is carried out by a memory controller in accordance with one embodiment of the present disclosure. For instance, the interface 104 and the repair controller 110 depicted in
It is also contemplated that the term “block” referenced above (e.g., repair blocks and memory blocks) is not limited to any particular type of memory hardware structure. A memory block, for example, can contain one or more groups and/or types of memory cells, arrays or devices. A memory block can also contain logical memory groups or the like. It is contemplated that the memory repair techniques described above are applicable to any data application that utilizes any of such blocks, wherein one or more defective blocks or sub-blocks can be replaced by accessing blocks or sub-blocks from the shared repair resource as previously described.
It is to be understood that the present disclosure may be conveniently implemented in forms of a software package. Such a software package may be a computer program product which employs a computer-readable storage medium including stored computer code which is used to program a computer to perform the disclosed function and process of the present invention. The computer-readable medium may include, but is not limited to, any type of conventional floppy disk, optical disk, CD-ROM, magnetic disk, hard disk drive, magneto-optical disk, ROM, RAM, EPROM, EEPROM, magnetic or optical card, or any other suitable media for storing electronic instructions.
It is understood that the specific order or hierarchy of steps in the foregoing disclosed methods are examples of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the scope of the present invention. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
It is believed that the present invention and many of its attendant advantages will be understood by the foregoing description. It is also believed that it will be apparent that various changes may be made in the form, construction and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages. The form herein before described being merely an explanatory embodiment thereof, it is the intention of the following claims to encompass and include such changes.
The present application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Application Ser. No. 61/738,756, filed Dec. 18, 2012. Said U.S. Provisional Application Ser. No. 61/738,756 is hereby incorporated by reference in its entirety. The present application also claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Application Ser. No. 61/788,148, filed Mar. 15, 2013. Said U.S. Provisional Application Ser. No. 61/788,148 is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61738756 | Dec 2012 | US | |
61788148 | Mar 2013 | US |