A memory system includes a memory, an input circuit and a logic circuit. The input circuit is coupled to receive a memory address and, during a write operation, the corresponding write data to be written into the SRAM. The logic circuit causes the write data to be stored in the input circuit for the duration of any sequential read operations immediately following the write operation and then to be read into the memory during subsequent write operation. During the read operation, data which is stored in the write data storage registers prior to being read into the memory can be read out from the memory system should the address of one or more read operations equal the address of the data to be written into the memory while temporarily stored in the write data storage registers. Thus, no "bus turnaround" down time is experienced by the system thereby increasing the bandwidth of the system. The system can operate in a single pipeline mode or a dual pipeline mode.
|
9. A method of controlling a memory device comprising:
storing a sequence of at least three pending memory operations in a pipeline, the sequence of pending memory operations including a read operation and a write operation having identical addresses, wherein the read operation is later in the sequence than the write operation; and processing the read operation by accessing data stored in the pipeline for the write operation instead of accessing data in a memory array.
1. memory device comprising:
a memory array; a controller, coupled to the memory array, including pipeline circuitry for storing a sequence of at least three pending memory operations, wherein the at least three pending memory operations can include any sequence of read and write operations; wherein the pipeline circuitry includes read operation processing circuitry that, when the pipeline circuitry stores a read operation and a write operation having identical addresses, and the read operation is later in the sequence than the write operation, processes the read operation by accessing data stored in the pipeline circuitry for the write operation instead of accessing data in the memory array.
2. The memory device of
3. The device of
a first address register; a second address register coupled to the first address register; a third address register coupled to the second address register; a memory array; a first data register coupled to the memory array; a second data register coupled to the first data register; a first comparator coupled to the first, second and third address registers; a second comparator coupled to the first, second and third address registers.
4. The device of
5. The device of
pipeline circuitry for performing a read operation while storing the two pending write operations; pipeline circuitry for performing a write operation while storing the two pending write operations.
7. The device of
8. The device of
a first address register; a second address register coupled to the first address register; a third address register coupled to the second address register; a memory array; a first data register coupled to the memory array; a second data register coupled to the first data register; a first comparator coupled to the first, second and third a memory array; a second comparator coupled to the first, second and third address registers.
|
This application is a continuation application of Ser. No. 09/429,849, filed Oct. 28, 1999, which is a divisional of U.S. application Ser. No. 09/253,577, filed Feb. 19, 1999 (now U.S. Pat. No. 6,094,399), which is a continuation of Ser. No. 08/864,456, (now U.S. Pat. No. 5,875,151 filed May 28, 1997, which is a divisional application of Serial No. 08/635,128, filed Apr. 19, 1996 (now U.S. Pat. No. 5,838,831).
This invention relates to memory circuits and, more particularly, to fully synchronous pipelined random access memory circuits.
Many high performance systems require a memory that operates with a fast system clock. Some designers use synchronous random access memories ("RAMs") to meet this system requirement. For example, some synchronous static RAMs (SRAMs) are available which use registers or latches to temporarily store the address and control. These SRAMs use a "pipeline" scheme whereby the address to be accessed is provided during one cycle and, during the next sequential cycle, the data is provided on the data bus. For example, during a read operation, the address from which data is to be read is provided on the nth cycle and the data read from the SRAM is provided on the data bus on the (n+1)th cycle. For write operations, there are SRAMs that provide the address, control and data during the same cycle and there are designs where address and control are provided on the nth cycle and data is provided on the (n+1)th cycle.
The speed of the SRAM is increased because the set-up and hold time for a register or latch is typically much shorter than the time to access the main array of the SRAM (the difference typically being several nanoseconds). The result is to break the operations into shorter cycles. On the (n+1)th cycle, the register or latch provides the stored address to the SRAMs main array along with the data to be written to the stored address, meeting the set-up and hold times for writing to the SRAM's main array. Because of the reduced set-up and hold time for the address and data on the (n+1)th cycle, the SRAM's cycle time, as viewed at the pins of the device, can be significantly reduced. As a result, the frequency of the system clock can be increased.
One problem with conventional SRAMs is that, typically, trying to intermix reads and writes in a high speed system causes a cycle to be "lost" when a memory write is immediately followed by a memory read (i.e., bus turnaround). Generally, a cycle is lost on turnaround because the structure of these RAMs requires an extra cycle to make sure that all of the data is written into the memory before a read operation can be performed. For example, if a write operation is followed by a read operation from the same address, a lost cycle is needed so that the "new" data will be written to the specified address before the read operation is performed on the data stored at the same address. In systems where bus turnaround occurs frequently, the lost cycles on bus turnaround can significantly reduce the bandwidth of the system. With conventional synchronous SRAMs, the same problem can exist.
According to the present invention, a fully synchronous pipelined RAM with no lost cycles on bus turnaround is provided (i.e., the RAM is capable of performing a read operation during any clock cycle or a write operation during any clock cycle without limitation).
One embodiment of the present invention, an SRAM, includes a memory, an input circuit and a logic circuit. The input circuit is coupled to receive a memory address and control signals during any cycle referred to as the nth cycle. During a write operation on the nth cycle, the corresponding write data to be written into the SRAM is provided during the next, (n+1)th, cycle. During the nth cycle, the logic circuit causes the previously stored write data to be written from the input circuit into the memory. The new write data associated with the address and control signal received on the nth cycle is received into the input circuit on the (n+1)th cycle. The write data and the address remain in the input circuit during any intervening read operations.
In this embodiment, when performing a read operation, the logic circuit compares the address of the read operation to the address of the most recent write operation. If the addresses match, then the SRAM outputs the data stored in the input circuit; however, if the addresses do not match, the SRAM outputs the data stored in the memory corresponding to the requested read address.
In another embodiment of the present invention, an SRAM includes an input circuit, an output circuit, a logic circuit and a memory. In this embodiment, the input circuit is coupled to receive a memory address and control signals during any cycle referred to as the nth cycle. The output circuit includes a register to store data read from the memory which is read during the (n+1)th cycle. Data will then be provided out of the output circuit on the next, (n+2)th, cycle.
The logic circuit causes the write data to be stored in a first data register in the input circuit two clock cycles after receipt of the write address and control signals. This data will move through the two-stage pipeline in the input circuit during intervening read operations. Thus, write data is written into the memory during the second write operation after the data has been received in the input circuit. These operations and their associated variations will be more fully understood in accordance with the detailed description taken with the drawings.
When performing a read operation, the logic circuit compares the address of the read operation to the addresses of the previous two write operations. If the read address matches one of the write-addresses stored in the input circuit, then the SRAM outputs to the output circuit the data corresponding to the matched address from the input circuit to the output circuit; if the read address matches both of the write-addresses stored in the input circuit, then the SRAM outputs to the output circuit the data corresponding to the most recently written matched address from the input circuit to the output circuit; however, if the addresses do not match, the SRAM outputs to the output circuit the data stored in the memory corresponding to the requested read address.
This invention will be more fully understood in accordance with the following detailed description taken with the drawings.
A read operation is performed as follows. During the nth cycle, the processor or controller (not shown) provides to SRAM 100 an address to be read on bus 131. The processor or controller also indicates a read operation by asserting (i.e. taking high) the read/write signal transmitted on control lead or bus 132. During the (n+1)th cycle, control logic 120 compares the address of the read operation stored in input circuit 130 to the address stored in control logic 120 during the most recent write operation. If the addresses match, then control logic 120 outputs the data stored in the control logic 120 corresponding to the most recent write operation via an output buffer 140; however, if the addresses do not match, control logic 120 outputs, via output port D0 and buffer 140, the data stored in SRAM memory 110 corresponding to the address of the read operation. Because the data is read from control logic 120 when a read operation sequentially follows a write operation and the address of the data to be read corresponds to the address to which the last received write data is to be written, no extra cycle is needed to write the data into memory 110 before it can be read as in conventional synchronous SRAMs. As a result, lost cycles are eliminated during bus turnaround, thereby increasing the bandwidth of a system using SRAM 100.
A write operation is performed as follows. The processor or controller (not shown) provides to SRAM 100 an address on bus 131 during an nth cycle. The processor or controller also indicates a write operation by deasserting (i.e. taking low) a read/write signal transmitted on input control lead or bus 132. Control lead 132 may be replaced by a bus which can then carry other control signals, such as a chip enable signal and a chip select signal. The processor provides on the (n+1)th cycle the corresponding data on bus 133 (called "write data") to be written to SRAM 110 during the (n+2)th write cycle at the address on bus 131 during the nth cycle.
Input circuit 130 receives and stores the address and control on one cycle and the corresponding write data on the next following cycle. Input circuit 130 receives the address and control and input logic 120 receives the write data with a much shorter set up and hold time relative to a typical SRAM memory, thereby allowing SRAM 100 to have a shorter cycle time.
During the (n+1)th cycle, control logic circuit 120 causes the write data stored in control logic 120 during the previous write operation to be written into SRAM memory 110 and stored there at the address also stored in control logic 120 associated with that write data.
Logic circuit 120 simply holds the write data and write address during any intervening read operations.
Registers A1, R1 and D3 are respectively coupled to receive the address signals via bus 131, the read/write control signal via bus 132 and the data signals from the Data I/O input port via bus 133. The output bus 201 of register A1 is connected to the input bus 202 of register A3 and to the H input port 203 of a multiplexer 204. The output bus 205 of register A3 is connected to the L input port 206 of multiplexer 204. The output port 207 of multiplexer 204 is connected to the address port of memory 110. Thus, multiplexer 204 operates to provide either the address stored in register A1 or the address stored in register A3 to memory 110 to identify in memory 110 either the address from which read data is to be read or the address to which write data is to be written.
Multiplexer 204 is controlled by the read/write signal stored in register R1, which signal register R1 provides to the select input lead of multiplexer 204 via line 208. The stored read/write signal, when asserted (i.e. high) to indicate a read operation, causes multiplexer 204 to pass the output signals of register A1 to the address port of memory 110.
Conversely, the stored read/write signal, when deasserted (i.e. low) to mean a data-write operation, causes multiplexer 204 to pass the output signals of register A3 to the address port of memory 110; the write data signals in register D3 are already applied to the Data-In port of memory 110.
In addition, the stored read/write signal, when deasserted to indicate a write operation, enables register A3 to store the output address signals from register A1 and further enables new write data to be stored in register D3, this new write data being associated with the address signals being transferred from address register A1 to address register A3. All register storage is on the rising clock edge where the clock signal transitions from low-to-high.
Assuming that the read/write signal applied on the input lead 132 to control register R1 during the (n-1)th cycle represented a write operation, then the address a0 stored in address register A1 during the nth cycle represents the address in memory 110 to which data do is to be written. Data d0, data to be written into SRAM 110 at address a0, is applied at the Data I/O port during the nth cycle and is stored in data register D3 on the low-to-high transition of the clock signal at the end of the nth cycle.
SRAM system 100 also includes a comparator 211 having an input bus 212 connected to output port 201 of register A1 and another input bus 213 connected to output port 205 of register A3. Consequently, during the first part of the (n+1)th cycle comparator 211 compares the requested read address a1 0 (the address stored in register A1) to the address a0 of the location in memory to which data d0 in register D3 will be sent on the next write clock cycle (this location is at the address a0 stored in register A3). When comparator 211 detects that addresses a1 and a0 match, then the read operation is reading from the address a0 (stored in register A3) to which data d0 in register D3 is to be written in the next write operation. The updated data d0 stored in register D3 and corresponding to address a0 in register A3 has not yet been written into memory 110; rather, the updated data d0 is passed to the input port 218 of mux 217.
The output lead 215 of comparator 211 is connected to select lead 216 of multiplexer 217. Multiplexer 217 has an H input port 218 connected by bus 221 to the output port 219 of register D3. Multiplexer 217 has an L input port 220 connected to the Data-Out port of memory 110.
During the read operation in the (n+1)th cycle, if comparator 211 detects that address al in register A1 does not match address a0 in register A3, then multiplexer 217 selects the Data-Out port of memory 110 (i.e., data d1 stored in memory 110 corresponding to address a1) and outputs this data on bus 220 through mux 217 and through buffer 140 to the Data I/O bus. However, if comparator 211 detects that address a1does match address a0 in register A3, then during the (n+1)th cycle, multiplexer 217 passes the output signals d0 on buses 221 and 218 from the data out port 219 of register D3 to the Data I/O bus through buffer 140.
Referring to
Write enable circuit 210 controls the actual writing of data into SRAM 110. Circuit 210 is enabled by the deasserted (i.e. low) write signal as is register D3, thereby causing memory 110 to receive at the Data-In port, the data signals d0 on buses 221 and 218 from register D3 on the next low clock signal (SRAM 110 is enabled by write enable circuit 210 to write data d0 on the low clock signal during cycle (n+2)). During cycle (n+2) the data d0 in register D3 will be written into the location in memory 110 defined by the address a0 in register A3. Also, during cycle (n+2), register A1 receives, stores and outputs the address a2 to which to-be-received data d2 applied to the Data I/O terminal during the (n+2)th cycle is to be written in SRAM 110 on the next write cycle.
Pulse circuit 210 provides a delayed self timed high-low-high pulse after a low-to-high clock signal after waiting the required time to receive the stored deasserted read/write signal from register R1 via a line 200. This pulse causes memory 110 to store at the address a0 (received from register A3 via multiplexer 204) the data d0 received at the Data-In port of memory 110. The Data-In port of memory 110 is connected by buses 218 and 221 to the output port 219 of register D3, which outputs data d0 (the data from the previous write operation associated with address a0).
In addition, during the (n+2)th cycle, data d2 is applied to the Data I/O terminal and thus to the input port of register D3. Data d2 corresponds to address a2 loaded in register A1 during the low-to-high transition of the clock signal signifying the end of the (n+1)th cycle and the beginning of the (n+2)th cycle. During the (n+2)th cycle, the read/write signal is asserted (i.e. goes high) to indicate that a read operation associated with address a3 will take place during cycle (n+3).
At the end of cycle (n+2), on the low-to-high transition of the clock signal, register D3 stores data d2 associated with address a2. Address a2 in register A1 is transferred to register A3 also at the end of cycle (n+2).
In the same manner as described above, the read/write signal asserted during the end of cycle (n+2) is stored in register R1 on the low-to-high transition of the clock signal at the start of cycle (n+3). Register R1 provides the asserted read/write signal on output lead 200 to disable pulse circuit 210, on output lead 200-2 to disable data register D3 and on output lead 200-1 to disable address register A3. Thus, on the low-to-high transition of the clock signal at the start of the (n+4)th cycle, address a2 remains in address register A3.
Then, during the cycle (n+3), the read/write signal is deasserted (i.e. goes low), thereby indicating the start of another write operation during upcoming cycle (n+4). Thus, during cycle (n+4) the output signal from register R1 is low thus enabling pulse circuit 210. Pulse circuit 210 provides a pulse to write data d2 from register D3 into the location in memory 110 at address a2 in address register A3 during cycle (n+4) a delayed time after the low-high transition of the clock signal.
Referring back to cycle (n+2), during this cycle the read/write signal is asserted, thereby indicating a read operation. This read operation sequentially follows a write operation (i.e., bus turnaround), which would result in a lost cycle in conventional synchronous SRAMS because the conventional synchronous SRAM must write the data into the main memory before this data can be read during the read operation. However, in memory circuit 100, the operation of comparator 211 and multiplexer 217 provides the data requested by the read operation (specified by an address a3 in register A1) if this data is d2 (the address a2 to which this data d2 is to be written is stored in register A3 at the start of cycle (n+3)) without first writing this data d2 into memory 110, thereby eliminating the lost cycle. Accordingly, an SRAM memory system 100 will have higher system bandwidth relative to the conventional synchronous SRAM system because there is no lost cycle on bus turnaround.
As shown in
The double pipe write shown in
In the single pipeline delay mode, read data to be output from the system is available at the Data I/O bus on the next clock cycle after the read address and control signals are presented to the input leads. A separate asynchronous output structure is available to solve high speed timing problems on read cycles should such problems arise.
Data for write cycles is presented to the Data I/O bus on the cycle following the cycle in which the address and control signals are presented to the address input bus and the control signal input bus, respectively. Thus, whether read or write, the data signals are always one cycle delayed from address and control signals. But the address and control signals are applied to the memory simultaneously in proper timing to ensure that the data is written to or read from the proper cells in the memory.
The structure shown in
In the circuit block diagram schematic shown in
NAME | PINS | FUNCTION | |
Address | 17 or more | Address inputs. Word | |
select in the SRAM. | |||
Data | 8 | Data inputs/outputs. | |
CLK | 1 | Clock input. All | |
operations (except write | |||
to SRAM 710) execute on | |||
the low-to-high | |||
transitions. | |||
R/W* | 1 | Read/Write input. | |
CS* | 1 | Chip select input. When | |
active (low), the chip is | |||
enabled. When high, the | |||
chip is deselected and | |||
all functions are | |||
disabled. | |||
CEN* | 1 | Clock enable input. | |
CpEN | 1 | When active (low), the | |
chip is enabled. When | |||
not active (high), all | |||
register operations are | |||
disabled. Data still | |||
appears on the output | |||
data bus if the last | |||
valid operation was a | |||
read and data still | |||
appears on the input bus | |||
to be written into memory | |||
if the last valid | |||
operation was a write. | |||
OE* | 1 | Output enable input. An | |
asynchronous signal. | |||
When low, the output | |||
buses are enabled. When | |||
high, the output buses | |||
are high impedance. | |||
Sgl/Dbl* | 1 | When high, the data in or | |
out is delayed by one | |||
clock cycle. When low, | |||
the data in or out is | |||
delayed by two clock | |||
cycles. | |||
Cnt/Load* | 1 | When low, the address | |
register will load the | |||
address presented on the | |||
address pins. When high, | |||
the address register will | |||
load the value currently | |||
held in the register as | |||
modified by the +1 logic; | |||
linear or other mapping. | |||
Vdd | 6 | Plus voltage inputs. | |
Vss | 7 | Ground inputs. | |
With the above definitions of terms, the schematic block diagram shown in
The circuit of
In the schematic block diagram of
In the single pipeline configuration (i.e. one clock delay version) of the structure of
While time has been shown as starting at t0 in
Period t0
During period t0 the address signals a0 and the R/W* signal are supplied to appropriate input buses to the circuit. These signals are clocked into address register 704-1 and control register 707-1 on the low-to-high clock transition at the end of period t0 and the start of period t1. During period t0 (and all subsequent time periods of operation of this circuit of
Mux 703-3 has the FLIP signal applied to its gate. This FLIP signal is low because the signal S/D*, applied to one input lead of inverter 705-4 is high (indicating one clock cycle delay). The output signal from inverter 705-4 is low so long as the system is operating in the single pipeline mode. Therefore the output signal from AND gate 706-7 will be low regardless of the states of the input signals W1 and R2 on the other two input leads to AND gate 706-7.
Similarly, OR gate 706-5 receives input signals on three input leads. The first input lead is connected to the output lead of mux 703-8. Because mux 703-8 is controlled by the high S/D* signal, mux 703-8 passes the CS1* signal through the S input lead. Since CS1* is low, OR gate 706-5 will have a low input signal on the input lead connected to the output lead of mux 703-8. Chip enable signal CpEn*, applied to the middle input lead of OR gate 706-5, is also low to enable the chip containing the circuit of
Referring to
During time period t0, a write signal w-1 is shown as stored in register 707-1.
Period t1
If the R/W* signal is a write signal (i.e. low) during time t0, then the output lead R1 of register 707-1 will have a low level signal during period t1. The output signal W1 from inverter 705-1 will be high during period t1.
The output address signal a0 at address register 704-1 is applied to the H input bus of multiplexer 703-4. However the select input of mux 703-4 is driven by the low R1 signal from register 707-1 and therefore the address signal a0 applied to the H input bus of mux 703-4 is not passed through mux 703-4.
On the low-to-high transition of the clock signal at start of period t1, data d-1 is transferred into data register 709-1.
During period t1, a new address a1 is applied to the input bus to register 704-1. Simultaneously, data d0 is applied through the Data I/O pin to the input bus to data register 709-1. Register 709-1 is enabled to receive and store data by the low write signal R1 on the Q output lead of control register 707-1 (corresponding to the signal w0 in
The address a-1 in register 704-1 during period to is transferred to address registers 704-2 and 704-3 during the low-to-high transition of the clock signal at the start of period t1. This latter transfer occurs through the S input bus of mux 703-2, the select input signal to which is S/D* which is high for the single pipeline mode of operation. The states of the select inputs on muxes 703-3 and 703-4 remain as they were during period t0.
Mux 703-3 passes the output address a-1 on the Q output bus from register 704-3 and on the L input bus to mux 703-3 to the L input bus of mux 703-4 (selected by signal R1 from control register 707-1 being low) and from there to the address port of memory 710. Thus, the address of memory 710 to which data d-1 in data register 709-1 will be written is a-1. Simultaneously, the low FLIP signal is applied to the select input lead of mux 703-5, the output bus of which is connected to the Data-In port of memory 710. Consequently mux 703-5 passes the data signal d-1 from data register 709-1 to the L input bus of mux 703-5. Because W1 is high when R1 is low and HOLD is high (HOLD is the inverted low output signal on the Q output lead from register 710-1, the input signal to which is low CpEn*), AND gate 706-3 is enabled. The output signal from AND gate 706-3 goes high in response to the delayed clock signal being applied to one input lead of AND gate 706-3 through delay 706-2. This clock signal causes write enable circuit 706-4 to produce a low pulse to enable the write input to SRAM 710. Consequently during the period t1, the data d-1 is read into and stored at the location in SRAM memory 710 given by address a-1 because the control signal in register 707-1 during time t0 is a write signal w-1.
Period t2
On the low-to-high transition of the clock signal at the end of period t1 and the start of period t2, address a1 is entered into register 704-1 and address a0, previously in register 704-1, is transferred to registers 704-2 (a "don't care") and 704-3, replacing the address a-1 formerly in these two registers. Simultaneously, write signal w1 is stored in control register 707-1. Data d0 is transferred into data register 709-1 and data d1 which corresponds to the address a1 stored in address register 704-1, is placed on the input bus to data register 709-1 from Data I/O terminal. Data d-1 is transferred from register 709-1 to register 709-2 (a "don't care").
During period t2 the clock signal is transmitted through delay 706-2 and, since HOLD and W1 are both high, causes AND gate 706-3 to cause write enable circuit 706-4 to enable SRAM 710 to write into memory the data d0 stored in data register 709-1 at the address a0 stored in address register 704-3. Address a0 stored in address register 704-3 is transmitted to the address port of SRAM 710 on the L input bus of mux 703-3 and the L input bus of mux 703-4.
Thus, by the end of period t2, data d0 has been placed in memory 710 at the address a0, and data d1, corresponding to address a1 placed in address register 704-1 at the start of period t2, has been placed on the input bus to data storage register 709-1.
Period t3
At the start of the next time period t3, the data d1 is transferred into data storage register 709-1 and the data d0 previously in this data register is transferred to data register 709-2 (a "don't care"). During period t3, data d1 is transferred into SRAM memory 710 through the L input bus of mux 703-5 to the Data-In port of memory 710 and stored in memory 710 at the address a1 stored in register 704-3 during the low-to-high transition of the clock signal at the start of period t3. Address a1 is transmitted through the L input bus of mux 703-3 and the L input bus of mux 703-4 into the address port of memory 710 to control the location to which the data d1 in data register 709-1 is written.
Period t4
On the low-to-high transition of the clock signal at the start of period t4, data d1 is transmitted into data register 709-2 (a "don't care") replacing the data d0 previously in that register. Simultaneously control signal W3 is placed in control register 707-1 and the control signal W2 previously in register 707-1 is transferred to control register 707-2. Thus, signals R1 and R2 remain low reflecting the write control signals stored in registers 707-1 and 707-2, respectively. Data d2 is transferred into data register 709-1 replacing the data d1 simultaneously transmitted into data register 709-2. The address a2 previously in address register 704-1 is transferred into address registers 704-2 (a "don't care") and 704-3. The address a2 is transmitted through the L input bus of mux 703-3 to the L input bus of mux 703-4 to the address port of SRAM 710. Simultaneously, data d2 in data register 709-1 is transmitted through the low input bus of mux 703-5 to the Data-In port of SRAM 710. Thus, data d2 will be written to address a2 in SRAM 710 upon the low write enable signal from enable circuit 706-4 being applied to the write enabled port of SRAM 710 during period t4.
Address a4 is placed on the input bus to address register 704-1 and R/W* signal r4, denoting a read operation, is placed on the input bus to control register 707-1 during period t4. The Q output lead of register 707-1 still carries a low level signal because write signal w3 is stored in register 707-1 and W1 from inverter 705-1 remains high. W2 remains high because the previous low write signal w2 is transferred into control register 707-2 causing the output signal W2 from inverter 705-2 to remain high. The R1 input signal on the S input lead to mux 703-6 remains low thereby enabling data registers 709-1 and 709-2 and address registers 704-3 and 704-4.
Period t5
On the low-to-high transition of the clock signal at the start of period t5, address a4 is transferred into address register 704-1 and address a3 previously in this register is transferred into address registers 704-2 (a "don't care") and 704-3. Data d3 is passed into data register 709-1 and write signal r4 is transferred into control register 707-1 thereby causing signal R1 to go high. Thus, the signal W1 from inverter 705-1 goes low. The write signal r4 in control register 707-1 causes mux 703-4 to select the signals on the H input bus for transfer to the output bus connected to the address port of SRAM 710. Thus, the address a3 stored in address register 704-3 is not transferred to the address port of SRAM 710. Rather, the address a4 stored in address register 704-1 is transmitted through the H input bus of mux 703-4 to the address port of SRAM 710.
Because a read control signal is now stored in control register 707-1, a read operation is to be carried out during time period t5. If the address a4 stored in address register 704-1 does not equal the address a3 stored in address register 704-3, then the output signal Eq3 from comparator 701-2 will be low. Thus, mux 703-13 will be activated to pass the data out at the address a4 in SRAM 710 through the L input bus of mux 703-13 to the S input bus of output mux 703-12 activated by the high level signal S/D*. This output signal will then be transmitted through output buffer 706-9 to the Data I/O pin.
The signal R1 going high passes through mux 703-6 on the S input lead and then through OR gate 706-5 to cause OR gate 706-5 to produce a high level output signal thereby disabling data registers 709-1 and 709-2 and address registers 704-3 and 704-4. Consequently, at the start of the next time period, these registers will be disabled and will retain the contents which they held during period t5.
Should, however, the address a4 equal the address a3 stored in address register 704-3, Eq3 will be high. High Eq3 will cause the data d3 in data register 709-1 to be transmitted through the H input bus of mux 703-13 and from there to the S input bus of mux 703-12 to the output buffer 706-9 and from there to the Data I/O port. Thus, the data stored in data register 709-1 does not have to be written into SRAM 710 when address a4 equals address a3 but rather can be read out of the system to the Data I/O bus.
Address signal a5 and control signal r5 are applied to the input bus and lead, respectively, of address register 704-1 and control register 707-1.
Period t6
On the low-to-high transition of the clock signal at the start of time period t6, address a5 is loaded into address register 704-1. Address a4 previously in this register is transferred to address register 704-2 (a "don't care"). Address a3 previously in address register 704-3 remains in address register 704-3, because register 704-3 has been disabled by a high level output signal from OR gate 706-5.
Simultaneously, read control signal r5 is loaded into control register 707-1 and the previous read control signal r4 in register 707-1 is transferred to register 707-2. Thus, signal R1 is high and signal W1 is low. Because OR gate 706-5 produced a high level output signal during period t5, data register 709-1 is disabled. Thus, throughout period t6 data register 709-1 retains the data d3 previously placed in that register at the start of time period t5.
Control signal r5 indicates that a read of the data at address a5 is to be carried out on SRAM memory 710 during period t6. Address a5 from register 704-1 is transmitted through the H input bus of mux 703-4 selected by R1 being high to the address port of SRAM 710. If address a5 does not equal address a4 in data register 704-2, then the signal Eq2 from comparator 701-1 will be low. If as does not equal a3 stored in data register 704-3, the signal Eq3 will also be low. Thus, the data in SRAM 710 at address a5 will be transmitted through the Data Out port and through the L input bus of mux 703-13 to the S input bus of mux 703-12 and from there through output buffer 706-9 to the Data I/O bus from the system.
If, however, the address a5 equals the address a3 stored in data register 704-3, then the output signal Eq3 from comparator 701-2 will be high. Eq3 high will cause the data d3 stored in data register 709-1 to be transmitted through the H input bus of mux 703-13 to the S input bus of mux 703-12 and from there through buffer 706-9 to the Data I/O port. Buffer 706-9 is enabled during period t6 as it was during period t5 by the high R1 output signal from control register 707-1.
Address a6 and control signal w6 are applied to the input bus and input lead, respectively, of address register 704-1 and storage register 707-1.
Period t7
On the low-to-high transition of the clock signal at the start of period t7, address a6 is loaded into address register 704-1. Address a5 previously in address register 704-1 is loaded into address register 704-2. However address a3 previously in address register 704-3 remains in address register 704-3 because this register has been disabled by the high output signal from OR gate 706-5.
Simultaneously, write control signal w6 is transferred into control register 707-1. Read signal r5 previously in control register 707-1 is transferred to control register 707-2. Thus, the signal R1 goes low and W1 goes high enabling AND gate 706-3.
The control signal w6 means a write operation is now to be carried out on SRAM memory 710. However, the last write data to be placed in data register 709-1 is data d3. This data has yet to be written to SRAM 710. The address a3 to which this data d3 should be written is still stored in address register 704-3 which has been disabled by the two high level read signals during periods t5 and t6. Thus, during period t7 the address a3 is transmitted from address register 704-3 through the L input bus to mux 703-3 to the L input bus of mux 703-4 selected by the signal R1 being low, and thus to the address port of SRAM 710. Simultaneously, the signal d3 in data register 709-1 is transmitted on the L input bus of mux 703-5 to the data in port of SRAM 710. The clock signal passed through delay 706-2 and AND gate 706-3 during cycle t7, enables data d3 to be written into SRAM 710 to the address a3 at the address port of SRAM 710.
Period t8 and Subsequent Periods
The system operation during period t8 and subsequent periods will be as described above with the data to be written into or read from memory always appearing on the Data I/O bus one cycle after the address to which this data is to be written or from which it is to be read, appears on the input bus to the address register 704-1.
Thus, the system operates to eliminate the one cycle delay during the reading of data from the memory caused by the need to store in the memory the data to be written into the memory before the same data can be read from the memory during a read operation immediately following a write operation.
The double pipeline operation is characterized by S/D* going low. Thus, the signal FLIP from AND gate 706-7 will be high or low depending on the states of signals W1 and R2. Contrary to the single pipeline operation described above, where the signal FLIP was always low because the signal S/D* was always high, FLIP will change from high to low depending on the states of the control signals in control registers 707-1 and 707-2.
Also, as with
Period t0
Referring to
Period t1
On the low-to-high transition of the clock signal CK at the start of period t1, address signal a0 is transferred into address register 704-1. Simultaneously address a-1, already in address register 704-1, is transferred to address register 704-2.
At the same time, the read control signal R/W*, shown in
The low S/D* signal causes mux 703-2 to transmit the address a31 1 in register 704-2 on output bus Q to the D* input bus of mux 703-2 and through mux 703-2 to the D input bus of address register 704-3.
The control signal r0 is stored in register 707-1. The control signal r0 is high meaning that information is to be read from SRAM 710 during time period t0. To d0 this, the address signal a0 in address register 704-1 is applied to the H input bus of mux 703-4. Mux 703-4 has the high level signal R1 on its select input lead and thus passes address a0 to the address port of SRAM 710. The data stored at the location in SRAM 710 given by address a0 is then passed to the Data Out port of SRAM 710 and to the low input bus of mux 703-7. Mux 703-7 passes this data to the low input bus of mux 703-9 which in turn passes this data to the low input bus of mux 703-11. The select inputs of muxes 703-7 and 703-9 both have low signals thereby activating their low input buses. The output signal from AND gate 706-6 is low because Eq2 is low meaning comparator 701-1 produces a low output signal. Thus, mux 703-11 passes the data being read out of SRAM 710 to the D input-bus of output register 710-2. This data is then read into register 710-2 on the low-to-high transition of the clock signal at the end of period t1 and the start of period t2. Thus, during period t2 the data being read out of SRAM 710 will be applied to the D input bus of mux 703-12 and from this D input bus to the output bus from mux 703-12 (S/D* is low thereby enabling this path). Because during period t2 the signal R2 will be high, this data will be passed during period t2 from buffer 706-9 (enabled by a high output signal from AND gate 706-8 reflecting the high level signal R2) to the Data I/O terminal from which this data will be sent to its destination.
Address signal a1 and read control signal r1 are applied to the input bus and input lead, respectively, of address register 704-1 and control register 707-1.
Period t2
At the start of period t2, the low-to-high transition of the clock signal causes the address a1 applied to the input bus of address register 704-1 to be stored in address register 704-1. Simultaneously, the address a0 previously stored in address register 704-1 is stored in address register 704-2. The control signal r1 indicating that the information stored at address a1 is to be read out of SRAM 710, is read into control register 707-1. The control signal r0 previously in register 707-1 is read into control register 707-2. Thus, the signals W1 and W2 are both low and the signals R1 and R2 are both high. The data d0 read out from SRAM 710 during period t1 and placed on the input bus D to output register 710-2 is transferred into output register 710-2 and transferred on the Q output bus from register 710-2 to the D input bus of mux 703-12. As described above under period t1, this data d0 is then passed from the D input bus of mux 703-12 through mux 703-12 enabled by the S/D* signal being low, to and through output buffer 706-9 enabled by the high level output signal from AND gate 706-8. The data d0 being output from the memory is passed through buffer 706-9 to the Data I/O port and sent from there to its destination.
Simultaneously, the address a1 in register 704-1 is passed to the H input bus of mux 703-4. Because the select input of mux 703-4 is driven high by signal R1, this address a1 is passed to the address port of SRAM 710. The information d1 located in SRAM 710 at address a1 is then passed through the Data Out port from SRAM 710 to the L input bus of mux 703-7 and through mux 703-7 to the L input bus of mux 703-9. Both muxes 703-7 and 703-9 have low input signals on their select inputs and thus pass this data d1 to the L input bus of mux 703-11. This mux also has a low input signal on its select lead and thus passes the data d1 through mux 703-11 to the D input bus of register 710-2.
Address signal a2 is applied to the input bus of address register 704-1 while write control signal w2 is applied to the input lead of control register 707-1.
Period t3
At the low-to-high clock transition at the start of period t3 the address a2 which has previously been placed on the input bus to address register 704-1 during period t2, is loaded into address register 704-1. Simultaneously, the control signal w2 applied to the D input lead of control register 707-1 is loaded into control register 707-1. The signal r1 previously in control register 707-1 is loaded into control register 707-2. Thus, the signals W1 and W2 become high and low, respectively, and the signals R1 and R2 become low and high, respectively. At the low-to-high clock transition at the start of time t3, the data d1 on the D input bus to register 710-2 (read out from the address location a1 during the previous period t2) is transferred into register 710-2 and made available through mux 703-12 and output buffer 706-9 to the Data I/O port.
Address signal a3 and write control signal w3 are applied to the input bus and input lead, respectively, of address register 704-1 and control register 707-1.
Period t4
The control signal w2 in register 707-1 during period t3 means that in period t4 data d2 will be applied to the Data I/O bus and to the D input bus of register 709-1. This data d2 will be written into SRAM 710 at the address given by w2 during a subsequent write period.
On the low-to-high transition of the clock signal at the start of period t4, the write control signal w3 is placed in register 707-1 and the address a2 specifying the location in memory 710 at which data d2 is to be stored is transferred from address register 704-1 to address register 704-2. The control signal w2 is transferred from control register 707-1 to control register 707-2. During this period read signal r4 is applied to the input terminal of control register 707-1 and the address signal a4 is applied to the input bus of address register 704-1. During this period the data d2 is applied to the Data I/O bus and to the D input bus of data register 709-1.
Period t5
On the low-to-high transition of the clock signal at the start of period t5, the control signal r4 is stored in control register 707-1, address a4 is stored in address register 704-1 and data d2 is stored in data register 709-1. Output signal R1 from register 707-1 is high. Output signal W1 from inverter 705-1 is low. Control register 707-2 stores the write signal w3. Thus, output signal W2 from inverter 705-2 is high because w3 is low. However, the output signal from mux 703-6 remains low because the signal R2 is low. Data registers 709-1 and 709-2 along with address registers 704-3 and 704-4 are disabled. In addition, AND gate 706-3 is disabled when signal W1 goes low thereby preventing information from being written into SRAM 710. Data d3 is applied to the Data I/O bus; data d3 corresponds to address a3 applied two cycle previously to the input bus of address register 704-1.
The address a4 stored in address register 704-1 depicts the location in SRAM 710 at which information d4 is to be read out from SRAM 710. Because R1 is high, this address is supplied directly through the H input bus of mux 703-4 to the address port of SRAM 710. Simultaneously, this address a4 is compared in comparator 701-1 to the address a3 stored in register 704-2 and also in comparator 701-2 to the address a2 stored in address register 704-3. Should the address a3 stored in address register 704-2 equal the address a4 stored in address register 704-1, then Eq2 goes high. When Eq2 goes high, AND gate 706-6 produces a high output signal enabling mux 703-11. Data d3 on the input Data I/O bus (corresponding to data d4 to be read out of memory-710) is passed through mux 703-11 to the D input bus of register 710-2. If Eq3 goes high indicating address a2 matches address a4, then data d2 stored in register 709-1 (corresponding to data d4 to be read out of memory 710) is transmitted to the H input bus of mux 703-9 enabled by Eq3 being high, and through mux 703-9 to the low input bus of mux 703-11 (enabled by Eq2 low causing the output signal of AND gate 706-6 to be low) and to the D input bus of register 710-2.
Address signal a5 and read control signal r5 are applied to the input bus and input lead, respectively, of address register 704-1 and control register 707-1. Data d3 is applied to the Data I/O bus.
Period t6
At the end of period t5 1 and the beginning of period t6, address a5 on the input bus to address register 704-1 is transferred into register 704-1 on the low-to-high transition of the clock signal. Address a5 is then applied to the input bus of address register 704-2. During period t5, a read signal r5 was applied to the input lead of control register 707-1. This read signal r5 is then transferred into control register 707-1 on the low-to-high transition of the clock signal at the beginning of period t6. The read control signal r4 in control register 707-1 is transferred to register 707-2. Thus, both signals W1 and W2 go low. Data d3 is transferred into data register 709-1 and data d2 is transferred from register 709-1 into data register 709-2 on the low-to-high transition of the clock signal.
Address register 704-3, however, has been enabled by the low level signal from OR gate 706-5 generated by R2 being low during period t5. Accordingly, the address a3 on the input bus to address register 704-3 during period t5 is transferred to address register 704-3 at the beginning of period t6 and the address a2 on the input bus to address register 704-4 during period t5 is transferred to address register 704-4 at the beginning of period t6.
A read operation is to take place during time period t6. The information stored in SRAM 710 at address a5 is to be read from the system.
Should the address as not equal the address a3 stored in register 704-3 or the address a4 stored in register 704-2, then the address a5, transmitted to the H input bus of mux 703-4 and from there to the address port of SRAM 710, will determine the address within SRAM 710 at which the information d5, to be read from the memory, is located. This information, d5, will then be read out of SRAM 710 through the Data Out port and through the L input bus of mux 703-7, the L input bus of mux 703-9, the L input bus of mux 703-11 to the input bus of register 710-2. This data d5 will be transferred into register 710-2 on the low-to-high clock transition at the start of period t7. Note that the comparators 701-1, 701-2 and 701-3 all produce low output signals Eq2, Eq3 and Eq4, respectively.
If, however, address a5 in address register 704-1 equals address a3 in address register 704-3, then, comparator 701-2 produces a high level output signal Eq3. A high level signal Eq3 indicates that the data d5 to be read out from the memory system is stored in data register 709-1. This data is read out from register 709-1 through the H input bus of mux 703-9, the L input bus of mux 703-11, to the D input bus of register 710-2 and is stored in register 710-2 on the low-to-high transition of the clock signal at the start of period t7.
If the address a5 in register 704-1 equals the address a4 stored in register 704-2, then the signal Eq2 goes high. However, the address a4 does not correspond to data being read into the system but rather corresponds to a read signal r4. Accordingly, no data is present in storage register 709-1 or 709-2 corresponding to the address a4 and the address a5 is transmitted directly to the address input port of SRAM 710 through the H input bus of mux 703-4.
Thus, in both periods t5 and t6, which correspond to read operations, the data d3 stored in data register 709-1 during period t6, identified by the address a3 in address register 704-3 during period t6 and by the address a3 in address register 704-2 during period t5, is read directly out of data register 709-1 when the address stored in address register 704-1 matches the address stored in address register 704-3. The data d3 is read from the Data I/O bus when the address a4 stored in register 704-1 matches the address a3 stored in register 704-2 during period t5.
The address signal a6 and write control signal w6 are applied to the input bus and input lead, respectively, of address register 704-1 and control register 707-1. Data d4 corresponding to the information at or to be placed at address a4 in memory 710 is placed on the Data I/O.
Period t7
On the low-to-high transition of the clock signal CK at the start of period t7, address a6 located on the input bus to address register 704-1 during period t6, is transferred into and stored in address register 704-1. Simultaneously, the address a5 previously stored in address register 704-1 is transferred to address register 704-2. During period t6, R2 was high. Thus, data registers 709-1 and 709-2 and address registers 704-3 and 704-4 were disabled. These registers are also disabled during time period t7. Consequently, the data d3 in data register 709-1 and the data d2 in data register 709-2 during period t6 remain in place in these registers on the low-to-high clock signal transition at the start of period t7. In addition, the addresses a3 and a2 in address registers 704-3 and 704-4, respectively, likewise remain in place. Thus, during period t7, write signal w6 is stored in control register 707-1 while read signal r5 is stored in control register 707-2. Thus, a write operation is to take place and the data to be written into SRAM 710 is the data d2 associated with the address a2 stored in address register 704-4. This data d2 is stored in register 709-2. Because both R2 and W1 are high, the FLIP signal from AND gate 706-7 is high. Thus, mux 703-5 provides the data from the Q output bus of data register 709-2 through the H input bus of mux 703-5 to the Data In port of SRAM 710. Meanwhile the address a2 stored in register 704-4 is provided through the H input bus of mux 703-3 to the L input bus of mux 703-4 to the address port of SRAM 710. The L input bus of mux 703-4 is activated by the low level signal R1 on the select input of mux 703-4.
As shown in
Address signal a7 and write control signal w7 are applied to the input bus and input lead, respectively, of address register 704-1 and control register 707-1.
Period t8
On the low-to-high transition of the clock signal at the start of period t8, address a7 on the input bus of register 704-1 is stored in register 704-1. Address a6 in register 704-1 during period t7 is transferred to and stored in register 704-2. Registers 704-3 and 704-4, however, are still disabled by the high level signal R2 transmitted through OR gate 706-5. Therefore, registers 704-3 and 704-4 continue to hold the addresses a3 and a2, respectively. The data in data registers 709-1 and 709-2 likewise remains d3 and d2 respectively. The signal w7 on the input lead to control register 707-1 during period t7 is transferred into control register 707-1. Signal w6, previously in control register 707-1, is transferred to control register 707-2. The signals R1 and R2 become low. Consequently, the FLIP signal from AND gate 706-7 changes from high to low and thereby enables the L input bus of mux 703-5. Consequently, the data d3 in data register 709-1 is transferred through the L input bus of mux 703-5 to the Data In port of SRAM 710. Simultaneously, the address a3 stored in address register 704-3 is transmitted through the L input bus of mux 703-3 to the L input bus of mux 703-4 thereby to the address port of SRAM 710. Consequently, the data d3 is stored in SRAM 710 at the address a3 during period t8.
As can be seen from the above description, in the dual pipeline version of the invention, data to be written into the memory is applied to the Data I/O two clock periods after the write signal associated with that data is applied to the control circuit. Thus, a read signal immediately following a write signal occurs before the data associated with that write signal even appears on the Data I/O port. The data read out from the SRAM memory during the next cycle will be stored in a register prior to being transmitted on the second following clock cycle to the Data I/O port. Thus, the Data I/O port will at all times either have input data being transmitted into the system or output data being transmitted from the system. The system basically allows data being written into the system to be held in suspense during the reading out of data from the system. The reading out of data from the system causes the addresses of the two sets of data being written into the system but still in the double pipeline to be checked to determine if the data being read out is one of these two pieces of data. If it is, the system automatically reads out the correct data from a temporary storage register; if it is not, the system automatically reads out the correct data from SRAM 710.
Turning to
XENB = Enable signal (Low to enable) | |
XADDR = Address | |
CLK = Clock | |
S/DB = Single Pipeline (high)/Double | |
Pipeline (low) | |
XWEB = Write (low)/Read (high) | |
XIO = Data signals, Input/output | |
XCSB = Chip Select - Low to Select | |
EQX = Comparator last address - AX to AR | |
EQY = Comparator - Second to last address | |
AY to AR | |
DX = Last data received | |
DY = Second to last data received | |
XOEB = Output buffer enable signal | |
AX = Address in register 804-2 | |
AY = Address in register 804-3 | |
WXB = Output signal from control register | |
807-2 | |
Dout = Data out from memory array 810 | |
XDin = Data In to System | |
WB = output signal from register 807-1 | |
RB = Inverted output signal from register | |
807-1 | |
XENB is low to enable operation of the system.
Time Period t0
At the beginning of time t0 (an arbitrary time during the operation of the system picked solely for illustrative purposes), on the low-to-high transition of the clock signal, the address a0 is transferred into the address register 804-1. Simultaneously, the control signal XWEB, corresponding to a read, is transferred into control register 807-1. The chip select signal XCSB (not shown in FIG. 10A), which is low to select a particular chip, is applied to the D input lead of and is thus stored in register 808-1. The output signal CSB from register 808-1 is passed to one input lead of OR gate 805-4 and thus CSB when low enables this OR gate to pass the Q output signal from register 807-1. CSB is also passed through inverter 812-1 which, when CSB is low, produces a high level signal CS which enables the NAND gate 805-3. Thus, the signal RB output from NAND gate 805-3 is the complement of signal WB from OR gate 805-4. Because at the start of time period to a read control signal is transferred into the system, address a0 in memory array 810 is applied through the H input bus of mux 803-2 (selected because WB is high to indicate a read operation is taking place) to the address port of memory array 810. The data in memory array 810 at address a0 is then placed on the output bus OUT from memory array 810 and then transmitted through a buffer 812-3 to the input bus to data register 811-1. This data is then stored in register 711-1 on the low-to-high transition of the clock signal at the end of period t0 and the beginning of period t1.
Time Period t1
During period t1 a write signal w1 has been applied to control register 807-1 and the read signal r0 previously in control register 807-1 is transmitted through OR gate 805-4 to control register 807-2. Signal CSB remains low as it will during all operations. Thus, the signal WXB represents the control signal in register 807-1 during the preceding time period t0 whereas the signal WB represents the control signal in register 807-1 during the current time period t1. Because during period t1 a write operation is being called for, the address a1 stored in register 804-1 represents the address to which data d1, to be applied to the XIO pin in the next clock cycle after the address a1 is stored in register 804-1, is to be stored in memory array 810. This data d1 will be transmitted into data register 809-1 two cycles after the address a1 is transferred into register 804-1.
The data stored in register 811-1 during time period t1 is transmitted through the L input bus of mux 803-5, enabled by the low level S/DB signal, to output buffer 812-4 and from there to the XIO bus of the system. Buffer 812-4 is enabled by a high level signal from AND gate 805-10. Gate 805-10 is enabled by the high level signal WXB stored in register 807-2 and the high level signal CSX from mux 803-3. The high level signal CSX reflects the high level output signal from inverter 812-1 during time period to stored in register 808-2 on the low-to-high transition of the clock signal at the start of period t1. This high level signal is passed through the L bus of mux 803-3 to become the CSX output signal from mux 803-3.
Time Period t2
During time period t2, a write operation is also called for. Thus, on the low-to-high transition of the clock signal at the start of period t2, write signal w2 is transferred into control register 807-1 and the write signal w1 previously in control register 807-1 is transferred into control register 807-2. Accordingly, WB and WXB become low level signals. The address a2 is stored in address register 804-1 and the address a1 previously stored in address register 804-1 is transferred to address register 804-2. Data d1 is applied to the input data bus XIO and will be transferred into data register 809-1 on the low-to-high transition of the clock signal at the start of the next time period t3.
Time Period t3
At the low-to-high transition of the clock signal at the start of time period t3, the data d1 on the input bus XIO is transmitted into data register 809-1. Also at approximately the same time a new address a3 is placed in address register 804-1 and the address a2 previously in register 804-1 is transferred to address register 804-2. The address a1 previously in address register 804-2 is transferred to address register 804-3. The read signal r3 is transferred into control register 807-1 and the write signal w2 previously in control register 807-1 during period t2 is transferred into register 807-2.
The address signal a3 stored in register 804-1 is transmitted through the H input bus of mux 803-2, selected by signal WB being high, to the address port of memory array 810. Because a read operation is being called for, if address a3 stored in address register 804-1 equals the address a2 stored in address register 804-2 or the address a1 stored in address register 804-3, then comparator 801-1 will produce a high output signal EQX or comparator 801-2 will produce a high output signal EQY, respectively. If address a3 equals address a1 then the high level signal EQY passed through inverter 812-2 causes NAND gate 805-6 to produce a low level signal thereby disabling buffer 812-3. Thus, no output signal will be transmitted from memory array 810 to the output register 811-1. However, because EQY is high, and EQX is low, and WXB is low then the output signal of AND gate 805-9 is high and the output signal of OR gate 805-8 is high thereby enabling buffer 812-6 to pass data d1 (DX, the last data received) from register 809-1, to the input bus to output register 811-1. Thus, the data d1 stored in data register 809-1 will be stored in output register 811-1 on the low-to-high transition of the clock signal at the start of time period t4.
If address a3 equals address a2 then the high level signal EQX passed through inverter 812-5 causes NAND gate 805-6 to produce a low level signal thereby disabling buffer 812-3. Thus, no output signal will be transmitted from memory array 810 to the output register 811-1. However, because EQX is high and WXB is low reflecting the fact that a write signal w2 was stored in control register 807-1 during time period t2 and is stored in register 807-2 during time period t3, AND gate 805-12 produces a high level output signal enabling buffer 812-12 to pass the data d2 on the input bus XIO to the system corresponding to address a2 in register 804-2 to output register 811-1. Thus, the data d2 is passed to the input bus of output register 811-1 to be stored in this register on the low-to-high transition of the clock signal at the start of period t4.
Time Period t4
During time period t4, read signal r4 is stored in control register 807-1 and previous read signal r3 is stored in control register 807-2. Simultaneously, on the low-to-high transition of the clock signal at the start of period t4, address a4 is stored in address register 804-1. Data d1 stored in data register 809-1 is transferred to data register 809-2 and data d2 on the XIO input bus is transferred into data register 809-1. Because the signal WB passed through OR gate 805-1 is high at the end of time period t3 and also at the start of time period t4, address registers 804-2 and 804-3 are disabled and thus retain the addresses a2 and a1, respectively. The address a4 is compared to the addresses stored in address registers 804-2 and 804-3, respectively. If the address a4 equals the address a2 stored in address register 804-2 or the address a1 stored in address register 804-3 then the signal EQX or EQY, respectively will be high. If EQY is high, then EQX will be low and the address al stored in address register 804-3 corresponds to the data d1 stored in data register 809-2. Signal WXB is now high level reflecting the storage of the signal r3 in control register 807-2. Consequently, AND gate 805-11 produces a high level output signal which enables buffer 812-10 to pass the data d1 represented by signal DY, stored in data register 809-2, to the input bus of output register 811-1. Data d1 will be stored in output register 811-1 on the low-to-high clock transition of the clock signal at the start of time period t5.
Time Period t5
During time period t5, data in register 811-1 will be passed through the L input bus of mux 803-5 (selected by signal S/DB being low) to output buffer 812-4 and from there to the Data I/O pin XIO to be sent outside the system.
During time period t5 a write signal w5 is stored in control register 807-1 and the read signal r4 previously in this control register is transferred to and stored in control register 807-2. Address a5 is stored in address register 804-1 but address registers 804-2 and 804-3 continue to store addresses a2 and a1, respectively because these two registers are still disabled by the read signal r4 at the low-to-high transition of the clock signal at the start of time period t5.
Because this is a write operation, the data d1 in data register 809-2 is to be written into memory array 810 at the address a1 stored in address register 804-3. The system writes data into memory array 810 on the second write operation after the address to which the data is to be written is stored in address register 804-1. Signal WB is low therefore the mux 803-2 passes the address a1 in address register 804-3 directly to the L input bus of mux 803-2 to the address port of memory 810. Simultaneously, the data DY stored in data register 809-2 is applied through the H input bus of mux 803-7 selected by the high signal WXB from control register 807-2 passed through the L input bus of mux 803-6 (selected by the low S/DB signal) to the L input bus of mux 803-8 (also selected by the low S/DB signal) to the select input lead of mux 803-7. Thus, the data d1, represented in
Time Period t6
On the low-to-high transition of the clock signal at the start of time period t6, address a6 is placed in address register 804-1 and address as previously in this register is transmitted to address register 804-2.
Address a2 previously in address register 804-2 is transferred to address register 804-3. Control signal w6, a write signal (low), is transferred into control register 807-1 and control signal w5, also a write signal (low), is transferred from control register 807-1 to control register 807-2. Data d1 remains in register 809-2 and data d2 remains in register 809-1 because these registers are disabled by the high level signal WXB from control register 807-2 passed to the L input bus of mux 803-6 and from there through OR gate 805-5 (enabled by the low XENB signal) to disable data registers 809-1 and 809-2.
A write operation is to take place during time period t6. This write operation involves the transfer of the data d2 in data register 809-1 into SRAM 810 at the address a2 now stored in address register 804-3. Because WB is low reflecting the write signal w6 stored in control register 807-1, the address a2 is transmitted from address register 804-3 through the L input bus of mux 803-2 to the address port of memory array 810.
Data d2, however, is stored in data register 809-1. The data d2 in data register 809-1 is transmitted through the L input bus of mux 803-7 selected by the low output signal from mux 803-8 transmitted from the WXB output lead of control register 807-2 through the L input bus of mux 803-6 to the L input bus of mux 803-8 to the select input lead of mux 803-7. The low signal WXB (note that WXB goes low during period t6 because write signal w5 is transmitted into register 807-2 during period t6) thus ensures that the data d2 is passed through mux 803-7 from data register 809-1 to the Data In port of memory array 810 and placed at the location in memory array 810 given by address a2 during period t6.
Data d5, corresponding to address a5, is placed on the input bus XIO.
Time Period t7
At the low-to-high transition of the clock signal at the start of period t7, address signal a7 is stored in address register 804-1. Addresses a6 and a5 are transferred to address registers 804-2 and 804-3, respectively. Read signal r7 is transmitted into and stored in the control register 807-1 and the write signal w6 previously in register 807-1 is transferred into and stored in register 807-2. Data d5 corresponding to the write address a5 received and stored in address register 804-1 during period t5, is stored in data register 809-1 and the data d2 previously stored in register 809-1 is transferred to and stored in register 809-2. WXB is low and thus data registers 809-1 and 809-2 are enabled. Because a read operation is being carried out during period t7, the data stored in memory array 810 at address a7 is to be read out of the memory array. However, if this data corresponds to the data at the address a6 stored in address register 804-2 or to the data at the address a5 stored in address register 804-3, EQX or EQY from comparator 801-1 or comparator 801-2 will be high, respectively. Under these circumstances, the data d5 stored in data register 809-1 or the data d6 applied to the Data I/O port (shown as signal XIO) will be selected to be transferred to the input bus to storage register 811-1. If the data d6 is selected, reflecting the high level EQX signal, then WXB, which is low, will be inverted by inverter 812-13 and applied to one input lead of AND gate 805-12. The high level signal EQX will be applied to the other input lead of AND gate 805-12 causing AND gate 805-12 to produce a high level output signal which enables buffer 812-12. Buffer 812-12 transmits the data signal d6 on the input I/O bus directly to the input bus to register 811-1 to be stored in register 811-1 on the low-to-high transition of the clock signal at the start of the next time period t8. Thus, during period t8, the data d6 stored in register 811-1 will be read out of register 811-1 through the L input bus of mux 803-5 and through the output buffer 812-4 (enabled by WXB and CSX both high and XOEB low) to the I/O output bus. The circuit continues to operate as described above as additional read and write signals are applied to the circuit.
Time Period T0
At time t0 (t0 is a time arbitrarily selected during the operation of the system), the address signal a0 is loaded into address register 804-1. A high level signal XWEB corresponding to a read r0 is loaded into control register 807-1.
Time Period t1
At the low-to-high transition of the clock signal at the start of period t1, address a1 is loaded into address register 804-1. Because the signal WB is still high, reflecting the read control signal r0 in control 807-1 during time period t0, OR gate 805-1 produces a high output signal disabling address registers 804-2 and 804-3. Therefore the address a0 in register 804-1 is essentially lost and replaced with address a1. The control signal w1, a low write signal, is read into control register 807-1 causing the signal WB to become low and the signal RB output from NAND gate 805-3 to become high. The write signal w1 indicates that data d1 is going to be applied to XIO, the Data I/O terminal, sometime during the next clock period and will be written into the data register 809-1 during the second following clock period. Meanwhile any data d0 being read out of the system as a result of the read control signal during period t0 is transferred into output register 811-1 on the low-to-high transition of the clock signal at the start of the time period t1. This data d0, the data at address a0 in memory array 810, is transferred through buffer 812-3 enabled by EQY and EQX both being low thereby causing the output signal from AND gate 805-6 to be high and thus enable buffer 812-3. From register 811-1, this data d0 is transmitted on the L input bus of mux 83-5, through buffer 812-4, to the Data I/O.
Time Period t2
On the low-to-high transition of the clock signal at the start of period t2, address a2 is read into address register 804-1. Address a1 previously in address register 804-1 is transferred into address register 804-2, enabled by the low write signal WB during time period t1. Any address in address register 804-2 is also transferred through mux 803-1 to address register 804-3 during the same low-to-high transition of the clock signal. The read signal r2 is transferred into control register 807-1 and the low level write signal w1 previously in control register 807-1 during time period t1 is transferred to control register 807-2. Therefore WXB, the output signal from control register 807-2 is low during time period t2. Because the operation during time period t2 is a read, information contained at address a2 in SRAM memory 810 is transferred to the data output of memory array 810 and through enabled buffer 812-3 to the input port of register 811-1. If, however, the address a2 stored in address register 804-1 of the information to be read from the memory system is equal to the address a1 stored in address register 804-2, comparator 804-1 produces a high level signal EQX. High level signal EQX disables buffer 812-3 and means that the data d1 being applied to the input bus XIO during time period t2 must also be transferred to the input bus of the output register 811-1 because this is the data to be read out from the circuit during period t2 in response to the read signal r1. This data d1, represented by the signal XIO, is applied directly to the input bus to buffer 812-12. Buffer 812-12 is enabled by the high level EQX signal from comparator 801-1 together with the low level signal WXB inverted by inverter 812-13 to produce a high level output signal from NAND gate 805-12. Thus, the data d1 on the input bus XIO is transferred to the input bus D of output register 811-1.
Time Period t3
On the low-to-high transition of the clock signal at the start of time period t3, the data d1 on the input bus D of output register 811-1 is transferred into register 811-1. The data d1 is also transferred into data register 809-1 and the address a3 is transferred into address register 804-1. Write control signal w3 is transferred into control register 807-1 and the read control signal r2 previously in control register 807-1 is transferred through OR gate 805-4 enabled by the low level CSB signal from chip select register 808-1 to control register 807-2. Thus, the signal WXB goes high. Because during time period t2 the signal WB is high level, the address signal a2 in register 804-1 is not transferred into address register 804-2 and the address signal a1 in address 804-2 remains in address register 804-2. The write signal w3 is stored in control register 807-1. Thus, the signal WB goes low. The address stored in register 804-3 is transferred through the L input bus of mux 803-2 to the address port of memory array 810. The data previously in data register 809-2 is transmitted through the H input bus of mux 803-7 (selected by the high WXB signal passed through the L input bus of mux 803-6 and the L input bus of mux 803-8) to the Data In port of memory array 810. WXB going high disables data registers 809-1 and 809-2 so that on the low-to-high transition of the clock signal at the start of the next time period t4, the data in these two registers will remain in place and not be transferred. However, the address registers 804-2 and 804-3 are enabled so that the addresses in registers 804-1 and 804-2 can be transferred to registers 804-2 and 804-3, respectively, on the low-to-high transition of the clock signal at the start of time t4.
Time period t4
On the low-to-high transition of the clock signal at the start of time period t41, address a4 is loaded into address register 804-1. Address a3 previously in address register 804-1 is transferred to address register 804-2 and address a1 previously in address register 804-2 is transferred to address register 804-3. The read signal r4 is transferred into control register 807-1 and the write signal w3 previously in control register 807-1 is transferred through OR gate 805-4 into control register 807-2. Thus, the signal WXB goes low. The read signal r4 means that information d4 contained in memory array 810 at the location given by address a4 is to be read out of memory array 810. If, however, the address a4 equals the address a3 stored in address register 804-2 or equals the address a1 stored in address register 804-3, the output signal EQX from comparator 801-1, or the output signal EQY from comparator 801-2, goes high. If both EQX and EQY are not high, then the data stored at address a4 is passed through the Data Out port from SRAM 810 and through buffer 812-3 to the input bus of output register 811-1. On the low-to-high transition of the clock signal at the start of the next time period t5, this data will be loaded into output register 811-1 and passed through the L input bus of mux 803-5 to buffer 812-4 and then read out of the system. If, however, EQX is high then the address a4 of the data to be read out from the memory array equals the address a3 stored in address register 804-2. The address a3 corresponds to data d3 placed on the input bus XIO. EQX being high and WXB being low (to reflect the write signal w3 stored in control register 807-2) causes AND gate 805-12 to produce a high output signal to enable buffer 812-12. The data signal d3 is thereby passed directly to the input bus of output register 811-1. This data signal d3 will then be stored in output register 811-1 on the low-to-high transition of the clock signal at the start of time period t5.
Alternatively, if EQY is high, then the address a4 equals the address a1 stored in address register 804-3. The address a1 corresponds to the data d1 stored in data register 809-1. Accordingly, the data d1 (corresponding to the signal DX) is read out of the system through buffer 812-6. Buffer 812-6 is enabled by a high output signal from AND gate 805-9 caused by a high signal EQY applied to one input lead and low signals EQX and WXB applied to and inverted by inverters 812-8 and 812-9, respectively. Thus, the data d1 is transferred through buffer 812-6 to the input bus of output register 811-1 to be loaded into output register 811-1 on the low-to-high transition of the clock signal at the start of the next time period t5.
The system continues to operate as described above with the data corresponding to a given write signal being written into memory array 810 two write cycles following the loading of the address corresponding to that data into address register 804-1.
While the circuit in
Time Period t0
On the low-to-high transition of the clock signal at the start of time period t0 (a time arbitrarily selected after the system has begun operating), address a0 is read into address register 804-1. Read signal r0 is read into control register 807-1. Thus, the signal WB is high and thus the address a0 is transmitted directly through the H input bus of mux 803-2 to the address port of memory array 810.
The address a-1 is transferred simultaneously into address register 804-2 and address register 804-3, the latter register receiving the output signal from mux 803-1, the input signal to mux 803-1 being applied to the H input bus directly from the output bus of register 804-1. If address a0 equals address a-1 stored in both registers 804-2 and 804-3, then both EQX and EQY from comparators 801-1 and 801-2 are high. The high EQY signal causes mux 803-4 to pass the DX signal reflecting the data signal in register 809-1 through the H input bus of mux 803-4 to the H input bus of mux 803-5 and from there through buffer 812-4 to the XIO pin of the circuit. Because EQY is high, the signal DX is the data d-1 stored in data register 809-1. Note that in the single pipeline mode, signals EQX and EQY are both simultaneously high or simultaneously low because the same address is stored in both data registers 804-2 and 804-3.
Time Period t1
On the low-to-high transition of the clock signal at the start of time period t1, the address signal a1 is written to address register 804-1. Because the signal WB is high at the start of time period t1, the address registers 804-2 and 804-3 retain their contents, namely the address a-1 in both registers. Because a write signal w1 is stored in control register 807-1 and the previous read signal r0 is stored in control register 807-2, the signal WB is low and the signal RB is high. Because the write operation is to take place, and because WB is low, the address a-1 stored in address register 804-3 is transmitted directly through the L input bus of mux 803-2 (selected because the control signal WB is low). The data d-1 in data register 809-1 is then written into memory array 810 at the address a-1 stored in address registers 804-2 and 804-3.
Time Period t2
On the low-to-high transition of the clock signal at the start of time period t2, the address signal a2 is written to address register 804-1. Because the signal WB is low at the start of time period t2, the address a1 in address register 804-1 is transferred to register 804-2 and also to 804-3. On the low-to-high transition of the clock signal at the start of time period t2, the write signal w2 is transferred into control register 807-1. The previous write signal w1 stored in control register 807-1 is transferred to control register 807-2. Thus the signal WXB is low as is the signal WB. The data d1 is stored in data register 809-1 and the data d-1 is transferred from data register 809-1 to data register 809-2. Because WB is low, the address a1 in address register 804-3 is transmitted directly to the address port of SRAM 810 and the data d1 in data register 809-1 is transmitted directly to the Data In port of SRAM 810 to be stored there at address a1. The data d2 corresponding to the address a2 is placed on the Data I/O pin during the time period t2.
Time Period t3
On the low-to-high transition of the clock signal at the start of time period t3, the address signal a3 is read into address register 804-1. Simultaneously the data d2 placed on the input bus XIO during the latter portion of time period t2 is read into data register 809-1 and the data d1 previously in data register 809-1 is transferred to data register 809-2. Both of these registers are enabled at the start of time period t3 by the low level write signal w2 stored in control register 807-1 during time period t2. This low level signal is transferred through the H input bus of mux 803-6 and through one input lead of OR gate 805-5 to enable these two data registers.
On the low-to-high transition of the clock signal at the start of time period t3, the signal w2 in control register 807-1 is transferred to control register 807-2 and the signal r3, a read signal, is transferred into control register 807-1. The signal WB becomes high level thereby selecting the H input bus of mux 803-2 which passes the address a3 from address register 804-1 through mux 803-2 to the address port associated with memory array 810. Simultaneously the address a2 previously in address register 804-1 is stored in address registers 804-2 and 804-3.
If address a3 equals address a2, then both EQX and EQY go high thereby both disabling buffer 812-3. EQY high selects the H input bus of mux 803-4 which thereby passes to the H input bus of mux 803-S and through the output buffer 812-4 to the XIO port the data d2 associated with the address a2.
Thus, the single pipeline delay system operates to either read out of memory the data at the address associated with a read control signal or to read out of a data storage register the data associated with the address of the location in memory to be read from when that address is the immediately preceding address of data to be written to the memory.
While several embodiments of this invention have been described, other embodiments of this invention will be obvious to those skilled in the art. In particular, embodiments involving three or more pipeline delays will be obvious in view of this disclosure. Also, while a single Data I/O terminal is shown in
Patent | Priority | Assignee | Title |
10521229, | Dec 06 2016 | GSI TECHNOLOGY, INC | Computational memory cell and processing array device using memory cells |
10720205, | Jun 05 2014 | GSI TECHNOLOGY, INC | Systems and methods involving multi-bank, dual-pipe memory circuitry |
10725777, | Dec 06 2016 | GSI TECHNOLOGY, INC | Computational memory cell and processing array device using memory cells |
10770133, | Dec 06 2016 | GSI TECHNOLOGY, INC | Read and write data processing circuits and methods associated with computational memory cells that provides write inhibits and read bit line pre-charge inhibits |
10777262, | Dec 06 2016 | GSI TECHNOLOGY, INC | Read data processing circuits and methods associated memory cells |
10817292, | Dec 06 2016 | GSI TECHNOLOGY, INC | Computational memory cell and processing array device using memory cells |
10847212, | Dec 06 2016 | GSI TECHNOLOGY, INC | Read and write data processing circuits and methods associated with computational memory cells using two read multiplexers |
10847213, | Dec 06 2016 | GSI TECHNOLOGY, INC | Write data processing circuits and methods associated with computational memory cells |
10854284, | Dec 06 2016 | GSI TECHNOLOGY, INC | Computational memory cell and processing array device with ratioless write port |
10860318, | Dec 06 2016 | GSI TECHNOLOGY, INC | Computational memory cell and processing array device using memory cells |
10860320, | Dec 06 2016 | GSI TECHNOLOGY, INC | Orthogonal data transposition system and method during data transfers to/from a processing array |
10877731, | Jun 18 2019 | GSI TECHNOLOGY, INC | Processing array device that performs one cycle full adder operation and bit line read/write logic features |
10891076, | Dec 06 2016 | GSI TECHNOLOGY, INC | Results processing circuits and methods associated with computational memory cells |
10930341, | Jun 18 2019 | GSI TECHNOLOGY, INC | Processing array device that performs one cycle full adder operation and bit line read/write logic features |
10943648, | Dec 06 2016 | GSI TECHNOLOGY, INC | Ultra low VDD memory cell with ratioless write port |
10958272, | Jun 18 2019 | GSI TECHNOLOGY, INC | Computational memory cell and processing array device using complementary exclusive or memory cells |
10998040, | Dec 06 2016 | GSI TECHNOLOGY, INC | Computational memory cell and processing array device using the memory cells for XOR and XNOR computations |
11094374, | Dec 06 2016 | GSI Technology, Inc. | Write data processing circuits and methods associated with computational memory cells |
11150903, | Dec 06 2016 | GSI Technology, Inc. | Computational memory cell and processing array device using memory cells |
11194519, | Dec 06 2016 | GSI Technology, Inc. | Results processing circuits and methods associated with computational memory cells |
11194548, | Jun 18 2019 | GSI Technology, Inc. | Processing array device that performs one cycle full adder operation and bit line read/write logic features |
11205476, | Dec 06 2016 | GSI Technology, Inc. | Read data processing circuits and methods associated with computational memory cells |
11227653, | Dec 06 2016 | GSI TECHNOLOGY, INC | Storage array circuits and methods for computational memory cells |
11257540, | Dec 06 2016 | GSI Technology, Inc. | Write data processing methods associated with computational memory cells |
11409528, | Dec 06 2016 | GSI Technology, Inc. | Orthogonal data transposition system and method during data transfers to/from a processing array |
11763881, | Dec 06 2016 | GSI Technology, Inc. | Computational memory cell and processing array device using the memory cells for XOR and XNOR computations |
6785188, | Apr 19 1996 | Integrated Device Technology, Inc. | Fully synchronous pipelined RAM |
6938142, | Aug 28 2002 | Round Rock Research, LLC | Multi-bank memory accesses using posted writes |
6985398, | Sep 26 2003 | Polaris Innovations Limited | Memory device having multiple array structure for increased bandwidth |
7042777, | Jan 28 2004 | Polaris Innovations Limited | Memory device with non-variable write latency |
7225312, | Aug 28 2002 | Round Rock Research, LLC | Multi-bank memory accesses using posted writes |
7916554, | Aug 28 2002 | Round Rock Research, LLC | Multi-bank memory accesses using posted writes |
8154932, | Aug 28 2002 | Round Rock Research, LLC | Increasing efficiency of memory accesses by selectively introducing a relative delay between the time that write addresses are provided to the memory and the time that write data is provided to the memory |
8687436, | Aug 28 2002 | Round Rock Research, LLC | Increasing efficiency of memory accesses by selectively introducing a relative delay between the time that write addresses are provided to the memory and the time that write data is provided to the memory |
8982649, | Aug 12 2011 | GSI TECHNOLOGY, INC | Systems and methods involving multi-bank, dual- or multi-pipe SRAMs |
9196324, | Aug 12 2011 | GSI TECHNOLOGY, INC | Systems and methods involving multi-bank, dual- or multi-pipe SRAMs |
9679631, | Aug 12 2011 | GSI Technology, Inc. | Systems and methods involving multi-bank, dual- or multi-pipe SRAMs |
Patent | Priority | Assignee | Title |
3967247, | Nov 11 1974 | Sperry Rand Corporation | Storage interface unit |
4096402, | Dec 29 1975 | SGS-Thomson Microelectronics, Inc | MOSFET buffer for TTL logic input and method of operation |
4208716, | Dec 11 1978 | Honeywell Information Systems Inc. | Cache arrangement for performing simultaneous read/write operations |
4225922, | Dec 11 1978 | Honeywell Information Systems Inc. | Command queue apparatus included within a cache unit for facilitating command sequencing |
4371929, | May 05 1980 | IBM Corporation | Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory |
4394732, | Nov 14 1980 | SPERRY CORPORATION, A CORP OF DE | Cache/disk subsystem trickle |
4394733, | Nov 14 1980 | SPERRY CORPORATION, A CORP OF DE | Cache/disk subsystem |
4404474, | Feb 06 1981 | RCA Corporation | Active load pulse generating circuit |
4410942, | Mar 06 1981 | International Business Machines Corporation | Synchronizing buffered peripheral subsystems to host operations |
4415970, | Nov 14 1980 | SPERRY CORPORATION, A CORP OF DE | Cache/disk subsystem with load equalization |
4423479, | Nov 14 1980 | SPERRY CORPORATION, A CORP OF DE | Cache/disk subsystem with acquire write command |
4426681, | Jan 22 1980 | CII Honeywell Bull | Process and device for managing the conflicts raised by multiple access to same cache memory of a digital data processing system having plural processors, each having a cache memory |
4433374, | Nov 14 1980 | SPERRY CORPORATION, A CORP OF DE | Cache/disk subsystem with cache bypass |
4437155, | Nov 14 1980 | SPERRY CORPORATION, A CORP OF DE | Cache/disk subsystem with dual aging of cache entries |
4442488, | May 05 1980 | Silicon Graphics, Inc | Instruction cache memory system |
4476526, | Nov 27 1981 | Storage Technology Corporation | Cache buffered memory subsystem |
4490782, | Jun 05 1981 | INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, NY 10504 A CORP OF NY | I/O Storage controller cache system with prefetch determined by requested record's position within data block |
4523275, | Nov 14 1980 | Sperry Corporation | Cache/disk subsystem with floating entry |
4530054, | Mar 03 1982 | Sperry Corporation | Processor-addressable timestamp for indicating oldest written-to cache entry not copied back to bulk memory |
4530055, | Mar 03 1982 | Sperry Corporation | Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory |
4547848, | Jun 30 1982 | Fujitsu Limited | Access control processing system in computer system |
4611337, | Aug 29 1983 | ERICSSON GE MOBILE COMMUNICATIONS INC | Minimal logic synchronous up/down counter implementations for CMOS |
4638187, | Oct 01 1985 | CYPRESS SEMICONDUCTOR MINNESOTA INC | CMOS output buffer providing high drive current with minimum output signal distortion |
4695943, | Sep 27 1984 | Intel Corporation | Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization |
4755930, | Jun 27 1985 | Sun Microsystems, Inc | Hierarchical cache memory system and method |
4789796, | Dec 23 1985 | NXP B V | Output buffer having sequentially-switched output |
4794521, | Jul 22 1985 | ALLIANT COMPUTER SYSTEMS CORPORATION, ACTON, MA , A CORP OF MA | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors |
4817058, | May 21 1987 | Texas Instruments Incorporated | Multiple input/output read/write memory having a multiple-cycle write mask |
4882709, | Aug 25 1988 | Integrated Device Technology, Inc. | Conditional write RAM |
4884270, | Dec 11 1986 | Texas Instruments Incorporated | Easily cascadable and testable cache memory |
4912630, | Jul 29 1988 | NCR Corporation | Cache address comparator with sram having burst addressing control |
4916604, | Jun 26 1987 | Hitachi, Ltd. | Cache storage apparatus |
4928281, | Jun 13 1986 | Hitachi, Ltd. | Semiconductor memory |
4942550, | Jun 23 1987 | Burr-Brown Ltd. | Printed circuit board topography for high speed intelligent industrial controller with multiple boards located within a single slot |
4958088, | Jun 19 1989 | Micron Technology, Inc. | Low power three-stage CMOS input buffer with controlled switching |
4984204, | Jan 28 1988 | Hitachi, LTD; Hitachi VLSI Engineering Corp | High speed sensor system using a level shift circuit |
5022011, | Dec 28 1989 | Inova Microelectronics Corporation | Apparatus and method for reducing the access time after a write operation in a static memory device |
5043937, | Dec 23 1987 | International Business Machines Corporation | Efficient interface for the main store of a data processing system |
5050072, | Jun 17 1988 | MODULAR COMPUTER SYSTEMS, INC A FLORIDA CORPORATION | Semaphore memory to reduce common bus contention to global memory with localized semaphores in a multiprocessor system |
5111435, | Mar 31 1987 | Kabushiki Kaisha Toshiba | Bipolar-CMOS semiconductor memory device |
5122690, | Oct 16 1990 | Lockheed Martin Corporation | Interface circuits including driver circuits with switching noise reduction |
5128560, | Mar 22 1991 | Micron Technology, Inc. | Boosted supply output driver circuit for driving an all N-channel output stage |
5128563, | Nov 28 1990 | Micron Technology, Inc. | CMOS bootstrapped output driver method and circuit |
5134311, | Jun 07 1990 | MILAN JANKOVIC | Self-adjusting impedance matching driver |
5150186, | Mar 06 1991 | Micron Technology, Inc. | CMOS output pull-up driver |
5165046, | Nov 06 1989 | Micron Technology, Inc.; MICRON TECHNOLOGY, INC , A CORP OF DE | High speed CMOS driver circuit |
5170074, | Mar 13 1990 | NEC Corporation | Master-slave clocked flip-flop circuit |
5179298, | Jan 17 1990 | Matsushita Electric Industrial Co., Ltd. | CMOS buffer circuit which is not influenced by bounce noise |
5194765, | Jun 28 1991 | AGERE Systems Inc | Digitally controlled element sizing |
5195056, | May 21 1987 | Texas Instruments, Incorporated | Read/write memory having an on-chip input data register, having pointer circuits between a serial data register and input/output buffer circuits |
5220208, | Apr 29 1991 | Texas Instruments Incorporated; TEXAS INSTRUMENTS INCORPORATED, A CORPORATION OF DE | Circuitry and method for controlling current in an electronic circuit |
5239206, | Mar 06 1990 | AMD TECHNOLOGIES HOLDINGS, INC ; GLOBALFOUNDRIES Inc | Synchronous circuit with clock skew compensating function and circuits utilizing same |
5251181, | Jun 05 1991 | Kabushiki Kaisha Toshiba | Random access memory device and method of controlling same in pipe line page mode |
5254883, | Apr 22 1992 | RAMBUS, INC , A CORP OF CA | Electrical current source circuitry for a bus |
5274276, | Jun 26 1992 | Micron Technology, Inc.; Micron Technology, Inc | Output driver circuit comprising a programmable circuit for determining the potential at the output node and the method of implementing the circuit |
5276642, | Jul 15 1991 | Round Rock Research, LLC | Method for performing a split read/write operation in a dynamic random access memory |
5278460, | Apr 07 1992 | Micron Technology Inc | Voltage compensating CMOS input buffer |
5281865, | Nov 28 1990 | Hitachi, Ltd. | Flip-flop circuit |
5311481, | Dec 17 1992 | Micron Technology, Inc | Wordline driver circuit having a directly gated pull-down device |
5319606, | Dec 14 1992 | International Business Machines Corporation | Blocked flash write in dynamic RAM devices |
5321368, | Feb 27 1992 | Infineon Technologies AG | Synchronized, digital sequential circuit |
5321651, | Jul 30 1991 | SGS-Thomson Microelectronics Limited | Read and write circuitry for a memory |
5341341, | Mar 26 1992 | Elpida Memory, Inc | Dynamic random access memory device having addressing section and/or data transferring path arranged in pipeline architecture |
5347177, | Jan 14 1993 | System for interconnecting VLSI circuits with transmission line characteristics | |
5347179, | Apr 15 1993 | Micron Technology, Inc | Inverting output driver circuit for reducing electron injection into the substrate |
5349566, | May 19 1993 | Round Rock Research, LLC | Memory device with pulse circuit for timing data output, and method for outputting data |
5361002, | Apr 07 1992 | Micron Technology Inc | Voltage compensating CMOS input buffer |
5377338, | Oct 12 1993 | SAMSUNG ELECTRONICS CO , LTD | Apparatus and methods for reducing numbers of read-modify-write cycles to a memory, and for improving DMA efficiency |
5383157, | Aug 06 1993 | Cypress Semiconductor Corporation | Parallel TESTMODE |
5384737, | Mar 08 1994 | Apple Inc | Pipelined memory having synchronous and asynchronous operating modes |
5384745, | Apr 27 1992 | Mitsubishi Denki Kabushiki Kaisha | Synchronous semiconductor memory device |
5387809, | Feb 25 1991 | Hitachi, Ltd. | Semiconductor integrated circuit device capable of outputting a plurality of interface levels |
5390308, | Apr 15 1992 | Rambus Inc | Method and apparatus for address mapping of dynamic random access memory |
5394555, | Dec 23 1992 | BULL HN INFORMATION SYSTEMS INC | Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory |
5400283, | Dec 13 1993 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | RAM row decode circuitry that utilizes a precharge circuit that is deactivated by a feedback from an activated word line driver |
5438545, | Dec 21 1993 | LG SEMICON CO , LTD | Data output buffer of semiconductor memory device for preventing noises |
5440260, | Aug 14 1991 | Advantest Corporation | Variable delay circuit |
5457407, | Jul 06 1994 | Sony Electronics, INC | Binary weighted reference circuit for a variable impedance output buffer |
5467473, | Jan 08 1993 | International Business Machines Corporation | Out of order instruction load and store comparison |
5471591, | Jun 29 1990 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Combined write-operand queue and read-after-write dependency scoreboard |
5473575, | Apr 18 1990 | Rambus, Inc. | Integrated circuit I/O using a high performance bus interface |
5475642, | Jun 23 1992 | Dynamic random access memory with bit line preamp/driver | |
5483497, | Aug 24 1993 | Fujitsu Semiconductor Limited | Semiconductor memory having a plurality of banks usable in a plurality of bank configurations |
5487035, | Aug 26 1993 | Nippon Telegraph and Telephone Corp | Method of multiplexed data reading/writing suitable for video-on-demand system |
5488712, | Dec 28 1990 | NEC Corporation | Memory circuit with pipeline processing |
5497127, | Dec 14 1994 | Sarnoff Corporation | Wide frequency range CMOS relaxation oscillator with variable hysteresis |
5498990, | Nov 05 1991 | MOSYS, INC | Reduced CMOS-swing clamping circuit for bus lines |
5502676, | Apr 24 1995 | Motorola, Inc. | Integrated circuit memory with column redundancy having shared read global data lines |
5506814, | May 28 1993 | Micron Technology, Inc.; MICRON SEMICONDUCTOR, INC | Video random access memory device and method implementing independent two WE nibble control |
5508638, | Feb 24 1994 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Low current redundancy fuse assembly |
5513327, | Apr 18 1990 | Rambus, Inc. | Integrated circuit I/O using a high performance bus interface |
5515325, | Dec 24 1993 | Acacia Research Group LLC | Synchronous random access memory |
5523320, | Jan 20 1993 | Ohgen Research Laboratories, Ltd. | N-methyldeacetylcolchiceinamide derivatives |
5546344, | Jun 06 1995 | Cirrus Logic, Inc. | Extended data output DRAM interface |
5561781, | Jul 28 1993 | International Business Machines Corporation | Port swapping for improved virtual SRAM performance and processing of concurrent processor access requests |
5562320, | Nov 04 1994 | International Business Machines Corporation | Gripper head |
5568077, | Nov 07 1994 | Mitsubishi Denki Kabushiki Kaisha | Latch circuit |
5568430, | Dec 04 1995 | Etron Technology, Inc. | Self timed address locking and data latching circuit |
5572467, | Apr 24 1995 | SHENZHEN XINGUODU TECHNOLOGY CO , LTD | Address comparison in an inteagrated circuit memory having shared read global data lines |
5574698, | Dec 13 1993 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Ram row decode circuitry that utilizes a precharge circuit that is deactivated by a feedback from an activated word line driver |
5576645, | Jun 05 1995 | Texas Instruments Incorporated | Sample and hold flip-flop for CMOS logic |
5577236, | Dec 30 1994 | International Business Machines Corporation | Memory controller for reading data from synchronous RAM |
5578941, | Aug 23 1995 | Micron Technology, Inc. | Voltage compensating CMOS input buffer circuit |
5581197, | May 31 1995 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD ; AVAGO TECHNOLOGIES GENERAL IP PTE LTD | Method of programming a desired source resistance for a driver stage |
5581718, | Feb 06 1992 | Intel Corporation | Method and apparatus for selecting instructions for simultaneous execution |
5581734, | Aug 02 1993 | International Business Machines Corporation | Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity |
5590073, | Nov 30 1993 | Sony Corporation | Random access memory having flash memory |
5594700, | Dec 17 1990 | Texas Instruments Incorporated | Sequential memory |
5617362, | Dec 21 1993 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device having extended data out function |
5619453, | Jul 28 1995 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Memory system having programmable flow control register |
5619473, | Aug 23 1994 | SAMSUNG ELECTRONICS CO , LTD | Semiconductor memory device with dual address memory read amplifiers |
5621690, | Apr 28 1995 | Intel Corporation | Nonvolatile memory blocking architecture and redundancy |
5627780, | Aug 26 1994 | SGS-Thomson Microelectronics Limited | Testing a non-volatile memory |
5627791, | Feb 16 1996 | Round Rock Research, LLC | Multiple bank memory with auto refresh to specified bank |
5631872, | Aug 14 1995 | NEC Corporation | Low power consumption semiconductor dynamic random access memory device by reusing residual electric charge on bit line pairs |
5636163, | Jul 30 1986 | Renesas Electronics Corporation | Random access memory with a plurality amplifier groups for reading and writing in normal and test modes |
5636173, | Jun 07 1995 | Round Rock Research, LLC | Auto-precharge during bank selection |
5636174, | Jan 11 1996 | Intellectual Ventures II LLC | Fast cycle time-low latency dynamic random access memories and systems and methods using the same |
5638335, | May 22 1995 | PS4 LUXCO S A R L | Semiconductor device |
5644729, | Jan 02 1992 | International Business Machines Corporation | Bidirectional data buffer for a bus-to-bus interface unit in a computer system |
5650971, | Aug 14 1992 | Intersil Corporation | Sense amplifier for a multiport memory and method |
5652724, | Dec 23 1994 | Round Rock Research, LLC | Burst EDO memory device having pipelined output buffer |
5655105, | Jun 30 1995 | Round Rock Research, LLC | Method and apparatus for multiple latency synchronous pipelined dynamic random access memory |
5659696, | Jan 02 1992 | International Business Machines Corporation | Method and apparatus for determining address location and taking one of two actions depending on the type of read/write data transfer required |
5663901, | Apr 11 1991 | SanDisk Technologies LLC | Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems |
5668763, | Feb 26 1996 | Fujitsu Semiconductor Limited | Semiconductor memory for increasing the number of half good memories by selecting and using good memory blocks |
5675549, | Feb 10 1995 | Round Rock Research, LLC | Burst EDO memory device address counter |
5694065, | Aug 16 1994 | Texas Instruments Incorporated | Switching control circuitry for low noise CMOS inverter |
5699317, | Jan 22 1992 | Intellectual Ventures I LLC | Enhanced DRAM with all reads from on-chip cache and all writers to memory array |
5717904, | Oct 13 1995 | THE BANK OF NEW YORK TRUST COMPANY, N A | Apparatus and methods for automatically controlling block writes |
5737276, | Sep 11 1995 | SAMSUNG ELECTRONICS CO , LTD | Memory device with fast extended data out (EDO) mode and methods of operation therefor |
5748558, | Jul 29 1994 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
5754815, | Jul 29 1994 | Siemens Aktiengesellschaft | Method for controlling a sequence of accesses of a processor to an allocated memory |
5757704, | Jul 30 1996 | NEC Electronics Corporation | Semiconductor memory integrated circuit with simplified circuit structure |
5761147, | Feb 21 1997 | International Business Machines Corporation | Virtual two-port memory structure with fast write-thru operation |
5761150, | May 24 1995 | Renesas Electronics Corporation | Synchronous memory with pipelined write operation |
5777942, | Nov 06 1992 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device including dynamic type memory and static type memory formed on the common chip and an operating method thereof |
5781480, | Jul 29 1997 | SHENZHEN XINGUODU TECHNOLOGY CO , LTD | Pipelined dual port integrated circuit memory |
5781481, | Nov 07 1995 | LAPIS SEMICONDUCTOR CO , LTD | Semiconductor memory device with reduced leakage current and improved data retention |
5790838, | Aug 20 1996 | International Business Machines Corporation | Pipelined memory interface and method for using the same |
5793688, | Jun 30 1995 | Round Rock Research, LLC | Method for multiple latency synchronous dynamic random access memory |
5819060, | Oct 08 1996 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Instruction swapping in dual pipeline microprocessor |
5825711, | Jun 13 1997 | Round Rock Research, LLC | Method and system for storing and processing multiple memory addresses |
5828606, | Apr 19 1996 | Integrated Device Technology, Inc. | Fully synchronous pipelined RAM |
5831929, | Apr 04 1997 | Round Rock Research, LLC | Memory device with staggered data paths |
5838631, | Apr 19 1996 | Integrated Device Technology, Inc. | Fully synchronous pipelined ram |
5841732, | Apr 19 1996 | Integrated Device Technology, Inc. | Fully synchronous pipelined ram |
5847577, | Feb 24 1995 | XILINX, Inc.; Xilinx, Inc | DRAM memory cell for programmable logic devices |
5854911, | Jul 01 1996 | Oracle America, Inc | Data buffer prefetch apparatus and method |
5870347, | Mar 11 1997 | Round Rock Research, LLC | Multi-bank memory input/output line selection |
5875151, | Apr 19 1996 | Integrated Device Technology, Inc. | Fully synchronous pipelined ram |
5875152, | Nov 15 1996 | MACRONIX INTERNATIONAL CO , LTD | Address transition detection circuit for a semiconductor memory capable of detecting narrowly spaced address changes |
5890195, | Mar 13 1997 | COMPLEX MEMORY LLC | Dram with integral sram comprising a plurality of sets of address latches each associated with one of a plurality of sram |
5917772, | Sep 16 1997 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Data input circuit for eliminating idle cycles in a memory device |
5933385, | Jul 31 1997 | Integrated Silicon Solution Inc. | System and method for a flexible memory controller |
5978311, | Mar 03 1998 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Memory with combined synchronous burst and bus efficient functionality |
6044429, | Jul 10 1997 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Method and apparatus for collision-free data transfers in a memory device with selectable data or address paths |
6052769, | Mar 31 1998 | Intel Corporation | Method and apparatus for moving select non-contiguous bytes of packed data in a single instruction |
6058448, | Dec 19 1995 | Micron Technology, Inc. | Circuit for preventing bus contention |
6078527, | Jul 29 1997 | SHENZHEN XINGUODU TECHNOLOGY CO , LTD | Pipelined dual port integrated circuit memory |
6094399, | Apr 19 1996 | Integrated Device Technology, Inc. | Fully synchronous pipelined RAM |
6144616, | Oct 30 1998 | SOCIONEXT INC | Semiconductor memory device |
6151236, | Feb 29 2000 | FOOTHILLS IP LLC | Enhanced bus turnaround integrated circuit dynamic random access memory device |
6163500, | Mar 03 1998 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Memory with combined synchronous burst and bus efficient functionality |
6167487, | Mar 07 1997 | RENESAS ELECTRONICS AMERICA INC | Multi-port RAM having functionally identical ports |
6212109, | Feb 13 1999 | INNOMEMORY LLC | Dynamic memory array having write data applied to selected bit line sense amplifiers before sensing to write associated selected memory cells |
6219283, | Sep 03 1998 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Memory device with local write data latches |
6249480, | Apr 19 1996 | Integrated Device Technology, Inc. | Fully synchronous pipelined ram |
6256716, | Dec 10 1998 | Sun Microsystems, Inc. | Apparatus, system and method for reducing bus contention during consecutive read-write operations |
6259648, | Mar 21 2000 | CURTISS-WRIGHT CONTROLS ELECTRONIC SYSTEMS, INC | Methods and apparatus for implementing pseudo dual port memory |
6272064, | Sep 02 1999 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Memory with combined synchronous burst and bus efficient functionality |
EP276871, | |||
EP294287, | |||
EP432509, | |||
EP450871, | |||
EP655741, | |||
EP680049, | |||
EP692872, | |||
EP1130603, | |||
JP2112317, | |||
JP4135311, | |||
JP5136664, | |||
JP5282868, | |||
RE35934, | Apr 02 1993 | Renesas Electronics Corporation | Semiconductor memory device synchronous with external clock signal for outputting data bits through a small number of data lines |
WO9429871, | |||
WO9703445, | |||
WO9714289, | |||
WO9715055, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 25 2000 | Integrated Device Technology, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Mar 26 2002 | ASPN: Payor Number Assigned. |
Nov 20 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Nov 22 2010 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 24 2014 | REM: Maintenance Fee Reminder Mailed. |
May 20 2015 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
May 20 2006 | 4 years fee payment window open |
Nov 20 2006 | 6 months grace period start (w surcharge) |
May 20 2007 | patent expiry (for year 4) |
May 20 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 20 2010 | 8 years fee payment window open |
Nov 20 2010 | 6 months grace period start (w surcharge) |
May 20 2011 | patent expiry (for year 8) |
May 20 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 20 2014 | 12 years fee payment window open |
Nov 20 2014 | 6 months grace period start (w surcharge) |
May 20 2015 | patent expiry (for year 12) |
May 20 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |