Register providing simultaneous reading and writing to multiple ports

Abstract: A memory cell that allows simultaneous writing into the cell and reading from the cell includes a cross-coupled latch (10) in which two pairs of a load transistor (12, 14) and a pull-down transistor (20, 24) are connected at respective first and second coupling points (16, 18). However, the feedback path from the first coupling point (16) to the gate electrode of the pull-down transistor (24) of the other pair passes through a feedback transistor (30) which can thus selectively open this feedback path. In any access to the memory cell, the feedback path is interrupted. Any one of a plurality of write signals (WP1, WP2) can be impressed upon the gate electrode of the thus separated pull down transistor (24). Simultaneously, the signal on the first coupling point (16) can be selectively impressed upon any combination of a plurality of read lines (58, 60, 62). If a simultaneous writing and reading is being performed, the write signal passes immediately through the memory cell to the read lines.

Description: The invention relates generally to semiconductor registers. In particular, the invention relates to a register capable of being simultaneously written into and read from. There exists the need in advanced processor design for a very fast register that can be accessed by a multiplicity of ports. Commonly, the ports are divided into read ports and write ports. For instance, one computer architecture, as described by Furman in U.S. Patent 4,535,428 requires a five port register. During each machine cycle, for example, two writes and three reads are required for the system. For any register location, there is a potential for a single write and perhaps one or more reads nearly simultaneous to the write. The requirement exists that both writes and reads be performed in the single machine cycle. In the prior art, both a write to and a read from register in a single machine cycle has been accomplished by dividing the machine cycle into two sub-cycles, the first for writing into the register and the second and subsequent cycle being for reading from the register. Fig. 1 provides a timing chart of the valid data signals for the five-port system. In a first sub-cycle, two data bits WP1 and WP2 are written into the system at addresses selected by respective decoders. In a second sub-cycle three data bits RP1, RP2 and RP3 are read from selected locations, as selected by decoding circuitry. The third data bit WP3 could be written in the first sub-cycle with a minor addition to the circuitry but this is not required for the desired five-port system. It should be emphasized that all data reads and possibly, at most, one data write shown in Fig. 1 may be addressed to the same register location. The difficulty with the time multiplex approach is that the single machine cycle must be divided into two read and write sub-cycles. As increasing access rates are imposed on the registers, it is becoming increasingly difficult to design and fabricate the registers which will operate at these speeds. Accordingly, the time multiplexed approach is becoming increasingly unsatisfactory for selective reading or writing of registers in a single machine cycle. Furthermore, since the reading and writing are multiplexed, the timing is complex and the control circuitry becomes cumbersome since the reading and writing occur at different times relative to the address decoding. In European Patent Application EP-A-0 145 497 (Toshiba), a three port memory register is shown in which reading and writing of the memory cell can be carried out simultaneously. The latch in the register is constructed from two inverters. The first inverter is associated with reading of data from the register and requires a large drive current. The second inverter is associated with writing of data into the register and requires a small drive current so as to easily invert the data in the register using a voltage signal supplied from outside the register. This type of circuit has the disadvantage in that, even though the writing current is small, its effects can propagate through the register and affect the values read out. Summary of the Invention The object of the invention is therefore to provide an improved method for simultaneously reading and writing of memory registers. The invention as claimed solves the problem of how to provide the simultaneous reading and writing of registers without resort to time multiplexing. As further advantages the invention allows to provide for simultaneous access by any of a multiplicity of read ports or write ports in a multi-register file, and that a single location be simultaneously written and read. The invention can be summarized as a memory register, generally having a latch configuration with feedback. One of the feedback paths is interrupted during the access. During the access, one of a plurality of write data lines is gated by respective control signals to impress a data bit onto the latch of one of the transistors of the latch. However, during this same access time, the state of the latch can be read onto any of the multiplicity of read bit lines as gated by respective control signals. At the completion of the access, the interrupted feedback path is reconnected and the latch resumes regenerative feedback to maintain that state. If the same register is simultaneously written and read, the signal impressed on the latch by the writing will be read. In a multi-register file, the control signals may address different registers. For explaining the invention in greater detail reference is made to the drawings in which: Fig. 1 is a timing diagram for the multiplexed reading and writing in a prior art five-port system. Fig. 2 is a timing diagram for the simultaneous reading and writing in the five-port system of the present invention. Fig. 3 is a circuit diagram of a memory element in the system of the present invention as implemented in NMOS. Fig. 4 is a block diagram of a five-port system. Fig. 5 is a circuit diagram corresponding to Fig. 3 but implemented in CMOS. In this application, a register will be assumed to be a multiple-bit linear storage array for a multiple bit word in which the multiple bits are accessed in parallel. The control circuitry will be the same for all bits in the register. Multiple registers may be arranged in a register file or stack. The different registers will have different addresses to be separately accessed by the read and write ports. Although, the invention will be described for an addressable register file, certain aspects are applicable to a single register for which addressing has no relevance. Fig. 2 is a timing diagram that illustrates the valid data signals in a five-port memory system of the present invention. Simultaneously, two data bits WP1 and WP2 can be written into respective registers or locations at the same time that data bits RP3, RP4 and RP5 are being read from selected locations, perhaps the same and perhaps one of the locations selected for writing. Five decoders are required. In this respect, the invention presents a penalty over the prior art which required only three decoders which could be time-multiplexed to perform the address decoding for both the reading and writing operations. However, more importantly, the present invention does not require time-multiplexing so that the same timing circuitry can be used for both the reading and the writing operations. Fig. 3 shows a memory cell in one register according to the present invention. The memory cell is based upon feedback in a latch 10. Two load transistors 12 and 14 are connected between a positive power supply and respectively a first coupling point 16 and a second coupling point 18. The gate electrodes of the load transistors 12 and 14 are connected to the respective coupling points. A first pull-down transistor 20 is connected at its current electrodes between the first coupling point 16 and ground and has its gate electrode connected, in the usual latch configuration, to the second coupling point 18 by a first feedback path 22. A second pull-down transistor 24 has its current electrodes connected between the second coupling point 18 and ground. The two load transistors 12 and 14 are N-type depletion mode transistors (normally on at V=O) and the two pull-down transistors 20 and 24 are N-type enhancement transistors (normally off). However, the gate electrode of the second pull-down transistor 24 has a second feedback path of two parts 26 and 28 linking it to the first coupling point 16. The two parts 26 and 28 of this second feedback path are connected through the current electrodes of a feedback transistor 30. That is, one of the feedback paths of the latch 10 is interruptible. It is already known that a latch feedback path can be turned off during a writing cycle, as disclosed by Rapp in U.S. Patent 3,440,444. The gate electrode of the feedback transistor 30 is controlled by a complemented selection signal SEL that is low during the accessing as shown in Fig. 2. It should be noted that there is a parasitic capacitance 32 between the first feedback path 22 and ground and another parasitic capacitance 33 between the path 26 of the second feedback path 26 and ground. Typically, these capacitances are an unavoidable artifact of MOS design but are relied upon for this invention. When the second feedback path is interrupted by the feedback transistor 30, the signal on the feedback path capacitances 32 and 33 serve to maintain the latch 10 in its previous state if there is no further impressed signal. These feedback capacitances 32 and 33 are, however, leaky capacitances so that the latch 10 will hold the signal only for a limited time. Nonetheless, this time is more than sufficient for typical access times in which the feedback transistor 30 would be turned off. In an access to the memory cell, the complemented selection signal SEL is brought low. Then control signals SP1 and SP2 on control lines 34 and 36 for the gate electrode of two writing transistors 38 and 40 and control signals SP3, SP4 and SP5 on control lines 42, 44 and 46 for three reading transistors 48, 50 and 52 are selectively brought high by respective address decoders. The high control signals render the respective reading and writing transistors 38, 40, 48, 50 and 52 conductive. There is a requirement that the system be so designed that only one of the two writing transistors 38 and 40 in a particular location is selected in any machine cycle. Otherwise, any combination of the reading and writing transistors 38, 40, 48, 50 and 52 can be selectively addressed. This requirement may be imposed either upon the decoders or the system inputting the decoders. The writing operation will be described first. The two writing transistors 38 and 40 each have a current electrode connected to the first portion 26 of the second feedback path so as to control the gate electrode of the second pull-down transistor 24. The other current electrodes of the writing transistors 38 and 40 are connected to respective write lines 54 and 56 that are connected to the two write ports. It is to be understood that the two write lines 54 and 56 are connected similarly to a multiplicity of memory cells of different registers that are differently addressed. If either of the writing transistors 38 and 40 are selectively addressed, that transistor is made conductive and the data signal on the connected write line 54 or 56 determines the charge state of the capacitor 33 and thus controls the gate electrode of the second pull-down transistor 24. As a result, the state of the latch 10, even with the feedback transistor 30 being opened, is determined. That is, the feedback capacitor 32 is charged or discharged according to the written data. At the end of the write cycle, the control signal SP1 or SP2 to the enabled writing transistor 38 or 40 is returned to a low value to isolate the latch 10 from the write lines 54 and 56. The capacitances 32 and 33 hold this state of the latch 10 until, shortly thereafter, the complemented selection signal SEL is returned to a high value and the feedback transistor 30 is again made conductive. At this point, the second feedback path is reconnected and the latch 10 becomes fully regenerative. In a reading operation, one or more of the reading transistors 48, 50 and 52 are rendered conductive by the control signals SP3, SP4 and SP5 supplied to their respective gate electrodes on control lines 42, 44 and 46 by respective address decoders. The three reading transistors 48, 50 and 52 each have one current electrode connected to the first coupling point 16 and the other current electrode connected to respective read lines 58, 60 and 62. As a result, in a reading operation the electrical signal at the first coupling point 16 is impressed upon whatever of the read lines 58, 60 and 62 have been connected to the latch 10. Although the second feedback path is opened by the feedback transistor 30 during a reading operation, there is power being supplied to the first coupling point 16 by the first load transistor 12 and the first pull-down transistor 20. If there is not a simultaneous write operation to the memory cell, the state of the latch is maintained by the capacitances 32 and 33 during the disconnection. The memory effect is dynamic but is sufficient for a reasonable reading period. If, however, there is a simultaneous reading and writing, then the data signal on one of the write lines 54 and 56 is applied to the gate electrode of the second pull-down transistor 24. The second pull-down transistor 24 and the first pull-down transistor 20 act as a two-stage amplifier for impressing the written signal upon the first coupling point 16. The capacitances 32 and 33 are overwritten by the powered writing operation. Therefore, in a simultaneous reading and writing, the same signal that is written into the memory cell is also read onto whatever read lines 58, 60 and 62 have been selected. The previous state of the latch 10 does not inhibit the change of the newly written state of the latch, that is, there is no write disturbance due to the previous state of the latch and there is no unanticipated interaction between the writing and the other reading. That separate transistors are provided for reading and writing is important in that it is thus always possible to guarantee a positive write condition and a positive read condition without contradictory design requirements on device sizes and parameters. Both the writing and the reading in Fig. 3 is single ended in that a signal is directly written only onto the second coupling point 18 and a signal is directly read only from the first coupling point 16. The more typical procedure in the prior art without feedback interruption was to differentially read to and write from both the first and second coupling points. A few prior art attempts for single ended reads and writes without feedback interruption were largely unsuccessful because of write disturbances propagating across the latch 10. The feedback disconnection by Rapp in U.S. Patent 3,440,444 never addressed the problem of simultaneous reading and writing. In the design of the memory cell, it is important that the beta ratio of the first pull-down transistor 20 and the multiplicity of the reading transistors 48, 50 and 52 be accounted for by making the first pull-down transistor 20 sufficiently large. This requirement potentially sets an upper limit to the number of read ports. However, Furman in U.S. Patents 4,535,428 and 4,554,645 discloses how this limitation on the number of read ports can be overcome and how the first pull-down transistor 20 may be designed to guarantee memory cell stability by using only one read from a given address while still preserving the multi-port capability of the read function. It should be noted that this use of a single read is the preferred embodiment so that only one of the reading transistors 48, 50 and 52 is rendered conductive at any one time. It is of course obvious that the invention can be extended to almost any number of write ports and read ports if the above described teachings of the Furman application are utilized. The register of Fig. 3 can be used in a memory system as shown in Fig. 4. The system contains a plurality of memory elements 70, each containing a latch 10 and the reading and writing transistors 38, 40, 48, 50 and 52. Each memory element 70 has an associated decoder 72 providing the five control signals SP1 and SP2, for the writing transistors 38 and 40, and SP3, SP4 and SP5 for the reading transistors 48, 50 and 52. The decoders 72 receive control signals and the system must be designed so that active control signals SP1 and SP2 are not simultaneously provided to particular memory elements. Also, the decoders 72 must not have more than one memory element 70 being read onto a read line 58, 60 or 62 at a given time. The control information supplied to the decoders 72 may be five addresses corresponding to SP1-SP5. The write lines 54 and 56 receive digital signals from respective write ports 74 and the read lines 58, 60 and 62 provide digital signals to respective read ports 76. The memory system is likely to have replicated versions of the memory elements 70 to provide parallel bits in a data word. The replicated memory elements would be controlled by the same decoders 72 and selection signal SEL but have separate write lines 54 and 56 and read lines 58, 60 and 62. Needless to say, an actual memory system is larger and more complex than Fig. 4 but the concept remains the same. Because of its power saving capability, it is recommended that the latch be implemented in CMOS, as illustrated in Fig. 5 rather than NMOS. A CMOS latch 80 is very similar to the NMOS latch 10 except for P-type transistors 82 and 84 and the modified feedback paths such that the P-type transistor 82 or 84 is complementary to the N-type transistor 20 or 24. Otherwise, the operation remains the same. A principal advantage of the invention is that time multiplexing is not required so that timing circuitry associated with reading and writing in an array of such memory cells can be considerably simplified. Although some of the prior art have described their reading and writing as being simultaneous, in fact, the two operations were simultaneous only in the sense that they occurred in a single machine cycle and that the reading operation was time-separated from the writing operation. In the present invention, the control signals for both reading and writing have equivalent timing. Furthermore, the elimination of time-multiplexing allows a considerable increase in the machine cycle rate within a given fabrication technology.

Claims: A memory system comprising a latch (10) to which is connected through a first field effect transistor (40) a first write line (54) and through a second field effect transistor (48) a first read line (58), whereby means are provided for selectively applying a first control voltage (SP1) to the control electrode of said first transistor (40) and means are provided for selectively applying a second control voltage (SP3) to the control electrode of said second transistor (48) concurrently with applying said first control voltage (SPI) to the control electrode of said first transistor (40) characterised in that the latch (10) comprises third (20) and fourth (24) field effect transistors being connected at one end to ground, first and second loads (12, 14; 82, 84), one end of which is serially connected to a supply voltage level and another end of which is serially connected to another end of said third (20) and fourth (24) transistors, respectively, forming a first common point (16) between said third transistor (20) and said first load (12) and a second common point (18) between said fourth transistor (24) and said second load (14), said second common point (18) being connected to the control electrode of said third transistor (20), and a fifth field effect transistor (30) connected from said first common point (16) to the gate electrode of said fourth transistor (24), whereby means are provided for selectively applying a third control voltage (SEL) to the control electrode of said fifth transistor (30), the first transistor (40) is connected between said first write line (54) and the control electrode of said fourth transistor (24), the fifth field effect transistor (48) is connected between said first read line (58) and said first common point (16), and there is associated a capacitance (32, 33) effective at the control electrodes of each of said third and fourth transistors (20, 24) adapted to maintain the previous memory state if there is no further impressed signal. A memory system as set forth in claim 1 wherein: the first (SP1) and second (SP3) control voltages applied to the control electrodes of said first and second transistors (40, 48) are derived from address signals and further include means for applying binary data signals to said first write line (54) (Fig. 4). A memory system as set forth in claims 1 or 2 further including: a second write line (56), a sixth field effect transistor (38) connected between said second write line (56) and the control electrode of said fourth transistor (24), a second read line (60), a seventh field effect transistor (50) connected between said second read line (60) and said first common point (16) and means for applying fourth and fifth control voltages (SP2, SP4) derived from address signals to the control electrodes of said sixth (38) and seventh (50) transistors. A memory system as set forth in one of the preceding claims wherein said first (12, 82) and second (14, 84) loads are field effect transistors of a different type relative to said third (20) and fourth (24) transistors. A memory system as set forth in claim 4 wherein said first and second loads are depletion-type field effect transistors (12, 14) and said third and fourth transistors (20, 24) are enhancement-type field effect transistors. A memory system as set forth in claim 4 wherein said load field effect transistors (82, 84) are of a conductivity type opposite that of said third and fourth transistors (20, 24). A memory system as set forth in one of the preceding claims wherein there are a plurality of sets of said first, second, third, fourth and fifth transistors, first and second loads, first read lines and first write lines, said sets arranged in a register and wherein said means for applying said first, said second and said third control voltages applies said first, said second and said third control voltages to said control electrodes of all said third, fourth and fifth transistors, respectively. A memory system as recited in one of the preceding claims wherein there are a plurality of sets of said first, second, third, fourth, fifth, sixth and seventh transistors, first and second loads, said sets arranged in an addressable file, and connected to the same first and second read lines and the same first and second write lines. A memory system as recited in one of the preceding claims wherein said fifth field effect transistor (30) is made non-conductive during writing. Method for simultaneously reading and writing data into a memory register (70) containing a latch (10) with a feedback loop in which said feedback loop can be interrupted by an interruption means (30) comprising the following steps: applying a selection signal (SEL) to said interruption means (30) to interrupt the feedback loop in said latch (10); simultaneously selecting a first write line (54, 56) by applying a first control signal (SP1, SP2) to a first write line selection means (38, 40) between said first write line (54, 56) and said latch (10) and selecting a first read line (58) by applying a second control signal (SP3) to a first read line selection means (48) connected between said first read line (58) and said latch (10); applying a write data signal to said selected first write line (54, 56); writing said write data signal into said latch (10) through said first write line selection means (38, 40); and reading a read data signal from said latch (10) through said first read line selection means (48) onto said selected first read line (58); and removing said selection signal (SEL) from said interruption means (30) to restore the feedback loop in said latch (10). Method for simultaneously reading and writing data into a memory register (70) according to claim 10 in which more than one read line (58, 60, 62) is simultaneously selected by applying more than one control signal (SP3, SP4, SP5) to the read line selection means (48, 50, 52) connected between said read line (58, 60, 62) and said latch (10).

Inventors: BERNSTEIN KERRY, FURMAN ANATOL, BERNSTEIN, KERRY, FURMAN, ANATOL
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1987
Main classification: G11C8
IPC codes: G11C11, G11C8