# Patent

## Title
Serially interfaced random access memory

## Abstract

A serially interfaced massively parallel Random Access Memory (RAM) includes a matrix of control logic sections on one integrated circuit die, augmented by a switching matrix with an external interface to multiple high speed serial signaling means. A matrix, of the same dimension, of dense memory element arrays is implemented on a different integrated circuit die. One control logic section die and one or more others containing memory sections are joined by appropriate means to form one integrated circuit stack, implementing a matrix of independent memory units. The switching matrix translates command and data content encoded on the external signaling means bidirectionally between internal data and control signals and connects these signals to the control logic sections. Each independent memory unit ably performs atomic read-alter-writes to enable software mutual exclusion operations (MUTEXes). Each and every matrix may guard against defects by having additional rows and/or columns.

## Background
RELATED APPLICATIONS
This application is a continuation of prior application Ser. No. 11/486,897, filed Jul. 14, 2006, now U.S. Pat. No. 7,827,345, which claims priority on provisional patent application Ser. No. 60/705,314, filed on Aug. 4, 2005, entitled “Serially Interfaced Random Access Memory”, both of which are hereby incorporated by reference.


FIELD OF THE INVENTION
The present invention relates generally to the field of integrated circuit memories and more particularly to an arrangement of elements which provides a Random Access Memory integrated circuit with a high speed serial interface.
BACKGROUND OF THE INVENTION
Random Access Memory (RAM) tends to be an integrated circuit (IC) technology in which individual dense memory storage cells, such as capacitive cells, are grouped into various two-dimensional matrices, such that the state of each memory cell may easily be read and/or altered. Very early RAMs held perhaps a few thousand bits; today RAM size has advanced roughly one-million fold: RAMs are now available with more than 1 billion bits on a single silicon die. But during the evolution of RAM technology there has been a massive skew in the difference between some RAM cycle times, in particular capacitive cell Dynamic RAM (DRAM), and the cycle times of other ICs used in a computing system, such as Central Processing Unit (CPU) and/or Input/Output Control (IOC) circuits which access the DRAMs. While DRAM performance has increased very lithe, CPU and IOC circuit speeds have increased by several powers of ten.
The performance discrepancy is in part due to reliance on a RAM architecture which has passed a point of diminishing returns. Each new generation of RAM chips uses a set of parallel paths by which address and data signals arrive at the chip, and/or by which data signals leave the chip. Any RAM interface, no matter what its design or construction, must convey address information, which at present requires slightly less than 30 bits. It must also include a data word of typically 16 or 32 bits; current interfaces present all or a major portion of these bits as separate, parallel signals, one signal per pin. Some arrangements use additional qualifying signals on other pins such that the data and address signals may share pins; this trades off pin count, i.e. the fewer pins the better, against overall interface complexity, which is increased, and latency, which is also increased, when multiple sets of information must use the same pins. Thus each increase in RAM density must either increase the pin count or add complexity and latency to the interface. Even the most powerful current RAM interface, known commonly as RAMBus®, uses a fixed set of parallel signaling lines.
Use of many parallel signal paths further demands that they be used in the nature of a “bus”, i.e. physical signal paths are used to pass signals in both directions depending on an operational phase, and many individual ICs are connected to each physical signal path. Large amounts of power are necessary to successfully drive each bus signal, relative to the power needed to drive a signal in only one direction and only from one IC to one other IC. Further, a relatively long time is needed to drive each bus signal across a lengthy physical path and register successfully on each of the many sensing circuit elements. Since there may be many such paths operating in parallel, they also occupy large amounts of physical space on the chip edge and on the printed circuit board; the bulk and power demands of this style of interface impose severe physical limits on the advance of total system memory bandwidth.
Internally the memory cells of a RAM tend to occur in two-dimensional patterns of rows and columns. For instance, to read a RAM it is necessary to select and stimulate a single row; each cell on that row then dumps its data load onto a sense line which descends a column sense line to the bottom of the array, and when all sense lines have taken a stable state the bits of that row are known. A read operation may have to immediately restore these states, if e.g. it has emptied each element in the selected row; a write operation may tend to initiate a read to clear all bits, then replace the old states with new data and perform the “restore” step.
In fact a chief obstacle impeding improvement in DRAM performance has been the relatively poor quality and large size of the random logic circuit elements on the DRAM die, which tends to use a Negative Metal Oxide Semiconductor, or NMOS, integrated circuit process. NMOS makes possible a very dense array of capacitive cells; but also produces slow, bulky logic gates.
Thus there exists a need for an improved random access memory that has considerably faster cycle times than present DRAMs.
SUMMARY OF THE INVENTION
A random access memory that overcomes these and other problems combines IC's from separate logic families, e.g. NMOS and CMOS, and bonds two or more IC's of one or more IC logic families together to form an IC stack. The IC stack is a practical means to provide RAM or DRAM control logic circuit elements using CMOS technology without placing them on the memory cell die, hence using NMOS technology to implement them. Placing the control logic elements on their own die as part of an IC stack with one or more memory cell ICs makes it possible to construct a RAM IC as a large matrix of fast, independently acting smaller matrices to make a massively parallel RAM. Each RAM unit matrix can be relatively much smaller in both dimensions, which provides faster cycle times.
A single RAM IC capable of performing many parallel operations also creates a corresponding need to transfer many times more address and data signals to and from the IC stack. Changing the interface from a wide complex bus arrangement to a plurality of serial point-to-point unidirectional (PPUD) channels greatly enlarges the overall data density of the signals passing between e.g. CPU and RAM. Thus using very high speed serial PPUD signal connection pairs to construct the external interface to the RAM IC stack provides a practical way to transfer a relatively enormous flow of control and data bits between a RAM IC stack and other ICs such as the CPU, one or a plurality of I/O devices (IOCs), etc. The net data communicated per signal path per unit time can be far greater when the signal paths are PPUD; hence by constructing the RAM interface to use serial PPUD connection pairs it becomes feasible to connect one IC stack RAM to many parallel command and data streams, and for each of these data streams to carry relatively large amounts of data. One possible serial technique for doing this is, or resemble, PCI Express®.
The IC stack mating a suitable random logic IC to one or a plurality of memory cell ICs each having a highly parallel matrix of memory cell matrices will have both a reduced time needed to read or write any RAM location, and a much greater total number of differently located RAM data bits that can be read and/or written simultaneously.
In a preferred embodiment a memory is made of an IC stack and takes the form of one control logic IC and one or a plurality of memory cell IC's, each a grid of independently acting memory cell arrays, where the grid is a rectangular arrangement whose width and depth may each tend to be powers of two, e.g. 32 by 32, e.g. resulting in e.g. an array of 1,024 independent memory arrays. By virtue of having to stimulate only a very small fraction, such as 1/32, of the width of the IC each row selector drive circuit has a smaller, easier, quicker task to perform than in prior generations of IC memories. Further, by virtue of each cell having to drive its information across only a small fraction, such as 1/32, of the length of the IC, the sense operation of each memory column is also simpler, easier, and faster.
The high speed serial PPUD connection pair uses, in one embodiment, one complementary signal pair to pass signals in one direction and a second such pair to simultaneously pass signals in the reverse direction. Each signal may consist of a word of 40 raw bits encoding and 32 information bits. Two such connections acting together may pass a 64 bit information word in each direction in 40 raw bit times. In the case of a connection designed to interface a using IC, such as a CPU, an IOC, or a multiplexer such as a Memory Interface Controller, the 64 bit word may contain address bits which identify one of a number of daisy-chained IC stack RAMs, plus sufficient address bits to select one RAM unit on that IC stack, plus sufficient address bits to select a byte or string of bytes in that RAM unit, plus sufficient bits to encode some reasonable number of contiguous bytes, plus control information commanding e.g. Read, or Write, or an atomic Read-Alter-Write operation. Taking ‘Read’, ‘Write’ and ‘Read-Alter-Write’ as three of the four possible states of a two bit code leaves a fourth command code which may indicate that data is being returned to a requestor in response to a Read or Read-Alter-Write command.
A commanded read operation may consist of a single 64 bit message. When a commanded read operation is complete, the individual RAM control logic returns an appropriate sequence of words sufficient to identify the source and to contain the requested string of information bytes. For instance the first word may repeat the original command but change the function, such as to indicate that data is being returned, and a number of other following words determined by a byte count field in the original command may complete the return message. When a commanded operation includes writing, the originating command sequence includes data words containing the byte or bytes to be written. The number of data words may be determinable by a byte count field in the write command word. Each such write or returning read data sequence may pass as one contiguous message.
PCI ExpressTM flexibly allows link widths of various powers of two. A flexible arrangement of signaling elements, such as defined by PCI Express, enhances the ability of the elements within an IC stack RAM to transfer large amounts of data. While serial PPUD signals are preferable to “bus” signals when separately packaged ICs communicate with each other, the nature of an IC facilitates connecting the internal array of RAM units via a parallel arrangement resembling a bus, but using PPUD elements. In one embodiment, these connections are made via a Switch Matrix circuit on the IC.
A Switch Matrix circuit may accept one or more input serial connections. Appropriate additional connections may be used as a daisy-chain to connect multiple IC stack RAMs, allowing simple construction of a traditional SIMM or DIMM printed circuit card containing a plurality of IC stack RAMs. A power-on discovery sequence may be constructed to disclose a specific board-level organization of the using ICs connected to the memory IC stacks. In addition, the discovery sequence may also enhance the ability of an IC stack RAM to make itself known to the IC or ICs using it, including other IC stack RAMs connected in a daisy-chain fashion.
Internally to the control logic IC a grid arrangement may connect each row of RAM Control Logic sections as an internal daisy chain. Externally another PPUD pair daisy chain connection, while doubling the number of interface pins on the IC stack, enables one printed circuit board path to reach a plurality of IC stack RAMs. The time lost in daisy chain latencies both external to the IC and internally between RAM Control Logic sections is smaller than the overall performance gain derived from there being parallel active signal paths to each IC and massively parallel internal operational capability. Current RAM IC data sheets list read and write access times of many tens of nanoseconds.
Manufacturing defects tend to result in a significant number of rejected DRAMs. A foundry line is considered successful when 90% of the ICs are found to be functional, and only 10% have e.g. a defective row, column, or cell. When a die in an IC stack that is five ICs deep, e.g. one control logic IC and four memory cell ICs, has one chance in ten of a flawed row, column, or cell, then the probability of a defect-free IC stack would be 90% to the fifth power, or about 60%; and the further probability of such an IC stack with only one die having one row, column, or cell defective is 32 of the remaining 40 percents; hence such an IC stack, wherein each die has a 90% probability of being functionally perfect, could have a 92% probability of being functionally perfect, given that due to the highly parallel nature of this approach, each IC could be designed as a 33×33 matrix capable of shedding one defective row and/or column during post-manufacturing construction. The benefit of a massively parallel implementation is that even when stacking multiple ICs prior to effective test and selection (such as stacking and bonding entire wafers prior to IC test and selection) net foundry production of good parts is likely to rise not fall.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a processing system having a plurality of RAMs, a plurality of IOCs, and a CPU in accordance with one embodiment of the invention;
FIG. 2 is a block diagram of a processing system having a plurality of RAMs, a plurality of IOCs, a RAM Interface Control and a CPU in accordance with one embodiment of the invention;
FIG. 3 is a diagram illustrating one possible command/response format for the serial link connecting the IC stack RAM to the other ICs in a typical processing system;
FIG. 4 is a block diagram of a highly parallel matrix of individual memory cell arrays, on an integrated circuit in accordance with one embodiment of the invention;
FIG. 5 is a block diagram of a highly parallel matrix of individual RAM control logic sections, on an integrated circuit in accordance with one embodiment of the invention;
FIG. 6 is a diagram of one memory cell array on one an integrated circuit, and an individual RAM control logic section on another integrated circuit, in accordance with one embodiment of the invention; and
FIG. 7 is a block diagram of a highly parallel matrix of individual RAM control logic sections, including a Switch Matrix and connecting signal paths, on an integrated circuit in accordance with one embodiment of the invention.
FIG. 8 is a block diagram of a plurality of RAM memories which are part of an integrated circuit stack in accordance with one embodiment of the invention.



DETAILED DESCRIPTION OF THE DRAWINGS
The present invention overcomes the limitations of present RAM interface architectures by having a number of independent RAM control logic sections coupled together with a large plurality of small independent RAMs. First the memory speed is increased by virtue of the very small physical size of each of the independent RAMs; and second the effective memory speed is increased by virtue of massive parallelism wherein each small RAM truly operates independently of all the others.
FIG. 1 is a block diagram of a processing system 10 which illustrates the simple nature of the signals connecting an IC stack RAM made according to this invention to other ICs in a typical small computing system. The processing system 10 has a plurality of IOCs 36, a CPU 38 and IC stack RAMs 12, 14, 16, 18, 20, which are interfaced to each other via high speed PPUD signal path pairs 32, 34. Other high speed bi-directional PPUD signal path pairs 22, 24, 26, 28, 30 connect the IC stack RAMs 12, 14, 16, 18, 20 to each other in daisy chain fashion.
FIG. 2 is a block diagram of a processing system 50 which illustrates the simple nature of the signals connecting an IC stack RAM made according to this invention to other ICs in a typical small computing system. The processing system 50 has a plurality of IOCs 82, a CPU 84, a RAM Interface Control IC 86 and IC stack RAMs 52, 54, 56, 58, 60, which are interfaced to each other via high speed bi-directional PPUD signal path pairs 72, 74, 76. Other high speed bi-directional PPUD signal path pairs 62, 64, 66, 68, 70 connect the IC stack RAMs 52, 54, 56, 58, 60 to each other in daisy chain fashion. Note that the RAM Interface Control IC 86 sends and receives high speed serial link words and performs routing using address bits in the first word of a command or response sequence to route each word or sequence of words to the correct recipient. The memory interface control 86 allows the number of serial interface signals 72, 74, 76 to be configured to meet the requirements of the CPU 84 and the requirements of the input/output devices relative to the expected data traffic loading of each in a given PC board design.
FIG. 3 illustrates a command format 90 containing a 64 bit format 92. The format 92 only requires 64 bits to be sufficient to provide a complete, and succinct, command and control interface which makes possible rapid exchanges of information as small as one byte and as large as a maximum of (as illustrated) 256 bytes, or more depending on the arrangement of the fields within the command format, with a single interaction. Four function codes are available to indicate not only standard read and write but also the atomic operation required to implement software mutual exclusion or MUTEX primitives; a function code is also available to unambiguously identify data being returned in an answer to a prior read operation. A field in the format identifies the source of a command, or the target of a reply to a command, and facilitates the presence of a RAM Interface Control IC by enabling it to perform a switching function. A count field makes it possible to precisely read or write a single byte yet powerfully operate on an long sequence of bytes with a single command overhead. Finally, the illustrated format provides sufficient address bits to span 256 Terabytes. By leaving the interpretation of these address bits up to discovery-time negotiation between the using ICs and the IC stack RAM or RAMs, a plurality of varying formats may successfully occupy parallel connections in a single system.
FIG. 4 is a block diagram of a large grid 110 of a plurality of memory cell arrays (such as memory cell array 112) on an integrated circuit in accordance with one embodiment of the invention. Each memory cell array, e.g. memory cell array 112, operates independently of the other memory cell arrays. This grid 110 of memory cell arrays (including memory cell array 112) may be implemented on a single integrated circuit using NMOS technology.
FIG. 5 is a block diagram of a large grid 120 of a plurality control logic sections (such as control logic section 122) on an integrated circuit in accordance with one embodiment of the invention. Each control logic section, e.g. control logic section 122, controls one of the memory cell arrays, e.g. memory cell array 112, of FIG. 4. The control grid 120 is implemented on a separate integrated circuit from the memory cell grid 110. The control gird 120 may be implemented using CMOS technology. A plurality of z-axis connections, not shown, electrically couple the memory grid 110 to the control grid 120.
FIG. 6 is a block diagram of a single RAM memory 130 which is part of an integrated circuit stack in accordance with one embodiment of the invention. This figure illustrates a plurality of integrated circuit connections 132, 134, 136, 138 which directly connect one control logic section 140 located on a random logic integrated circuit to one memory cell array on a memory cell array integrated circuit 142, to form an electrically contiguous and independently acting RAM memory. A plurality of integrated circuit connections 144, 146 connect the control logic section 140 to neighboring control logic sections in a daisy-chain fashion.
FIG. 7 is a block diagram illustrating a control logic integrated circuit 150 representing an embodiment of the invention. A plurality of sets of external PPUD signal path pairs 152, 154, . . . 156 connect the IC stack RAM to other ICs and to other IC stack RAMs in a daisy chain manner. Part of the control logic integrated circuit 150 is a switch matrix 158 which converts between a serial word-oriented format, a possible form of which was shown in FIG. 3, and a plurality of integrated circuit connections 160. The Switch Matrix 158 also routes specific command information to the correct set of internal parallel signals 160 and routes a returned data sequence from signals 160 to a correct external connection 152, 154, . . . 156. The Switch Matrix 158 also resolves multiple command sequences simultaneously contending for delivery along a given set of signals 160 to a control logic segment 162. In one embodiment, these contention issues are resolved by storing some sequences while permitting another sequence to be delivered. The Switch Matrix 158 also resolves multiple reply sequences from a plurality of signals 160 simultaneously contending for access to a given external connection 152, 154, . . . 156, such as via buffering them until access to the external signal connections is possible.
FIG. 8 is a block diagram of a plurality of RAM memories 170 which are part of an integrated circuit stack in accordance with one embodiment of the invention. This figure illustrates the plurality of integrated circuit connections 172, 174, . . . 176, and 178, 180, 182 which directly connect one control logic section 184 located on a random logic integrated circuit to memory cell arrays 186, 188 each located on a different memory cell array integrated circuit, to form an electrically contiguous but independently acting plurality of RAM memories. A plurality of integrated circuit connections 190, 192 connect the control logic section 184 to neighboring control logic sections.
Thus there has been described an improved random access memory that not only has inherently faster cycle times than present DRAMs but also allows each to operate autonomously and in parellel with all the other DRAMs.
While the invention has been described in conjunction with specific embodiments thereof, it is evident that many alterations, modifications, and variations will be apparent to those skilled in the art in light of the foregoing description. Accordingly, it is intended to embrace all such alterations, modifications, and variations in the appended claims.

## Claims

1. A memory, comprising:
an integrated circuit stack having a first planar integrated circuit and a second integrated circuit;
a plurality of memory cell arrays disposed on the first planar integrated circuit;
a plurality of control logic segments disposed on the second planar integrated circuit;
a plurality of electrical connections between the plurality of memory cell arrays and the plurality of control logic segments; and
a switch matrix disposed on the second planar integrated circuit, the switch matrix coupling a plurality of external connections to the plurality of control logic segments via internal parallel integrated circuit connections, the switch matrix configured to route commands received via the plurality of external connections to a correct set of control logic segments via the internal parallel circuit connections.

2. The memory of claim 1, wherein the switch matrix is further configured to route a returned data sequence received via the internal parallel circuit connections to a correct set of external connections.

3. The memory of claim 2, wherein the switch matrix is further configured to resolve contention between a first returned data sequence and a second returned data sequence for delivery along a common set of external connections.

4. The memory of claim 3, wherein the switch matrix is configured to resolve contention between the first and second returned data sequence by buffering at least one of the first and second returned data sequence until delivery along the external connections is possible.

5. The memory of claim 3, wherein the switch matrix is configured to resolve contention between the first and second command sequence by storing one of the first and second command sequence and permitting the other of the first and second command sequence to be delivered.

6. The memory of claim 1, wherein the switch matrix is further configured to resolve contention between a first command sequence and a second command sequence for delivery along a common set of internal parallel integrated circuit connections.

7. A memory comprising:
an integrated circuit stack having a first planar integrated circuit and a second planar integrated circuit;
a plurality of memory cell arrays disposed on the first planar integrated circuit;
a plurality of control logic segments disposed on the second planar integrated circuit and configured to control the plurality of memory cell arrays through a plurality of electrical connections between the first planar integrated circuit and the second planar integrated circuit; and
a switch matrix on the second planar integrated circuit configured to convert an external serial signal into a set of internal parallel signals for transmission to one or more of the plurality of control logic segments.

8. The memory of claim 7, wherein the switch matrix is further configured to route a returned data sequence received from the plurality of control logic segments to a set of external connections.

9. The memory of claim 8, wherein the switch matrix is further configured to resolve contention between a first returned data sequence and a second returned data sequence for delivery along a common set of external connections.

10. The memory of claim 9, wherein the switch matrix is configured to resolve contention between the first and second returned data sequence by buffering at least one of the first and second returned data sequence until delivery along the common set of external connections is possible.

11. The memory of claim 7, wherein the switch matrix is further configured to resolve contention between a first command sequence and a second command sequence for delivery along a common set of internal parallel signals.

12. The memory of claim 11, wherein the switch matrix is configured to resolve contention between the first and second command sequence by storing one of the first and second command sequence and permitting the other of the first and second command sequence to be transmitted.

13. A memory, comprising:
an integrated circuit stack having a first planar integrated circuit and a second integrated circuit;
a plurality of memory cell arrays on the first planar integrated circuit implemented using NMOS technology;
a switch matrix and a plurality of control logic segments on the second planar integrated circuit implemented using CMOS technology wherein the switch matrix couples a plurality of external connections to the plurality of control logic segments; and
a plurality of electrical connections between the plurality of memory cell arrays and the plurality of control logic segments.

14. The memory of claim 13, wherein the external connections comprise serial connections.

15. The memory of claim 13, further comprising a parallel bus comprising the internal parallel circuit connections.

16. The memory of claim 13, wherein the external connections comprise point-to-point unidirectional connection pairs.

17. The memory of claim 16, wherein the point-to-point unidirectional connection pairs are configurable into varying bus widths.