WO1992008230A1 - High-speed, five-port register file having simultaneous read and write capability and high tolerance to clock skew - Google Patents

High-speed, five-port register file having simultaneous read and write capability and high tolerance to clock skew Download PDF

Info

Publication number
WO1992008230A1
WO1992008230A1 PCT/US1991/008057 US9108057W WO9208230A1 WO 1992008230 A1 WO1992008230 A1 WO 1992008230A1 US 9108057 W US9108057 W US 9108057W WO 9208230 A1 WO9208230 A1 WO 9208230A1
Authority
WO
WIPO (PCT)
Prior art keywords
register file
tri
data
write
state
Prior art date
Application number
PCT/US1991/008057
Other languages
French (fr)
Inventor
James H. Hesson
Original Assignee
Micron Technology, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology, Inc. filed Critical Micron Technology, Inc.
Publication of WO1992008230A1 publication Critical patent/WO1992008230A1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups

Definitions

  • This invention relates to data processing systems, semiconductor logic circuits and, more particularly, to multiport register files that support simultaneous read and write operations.
  • High-speed local memory incorporated in a microprocessor system is generally termed a register file.
  • the register file is typically the first level of high- speed storage, it is beneficial from the compiler's point of view for it to be as large as possible. Latency time associated with the processing of data will be minimized if data may be both written to and read from the same register file location, or from different register file locations during a single clock cycle. As clock frequencies continue to increase, clock skew (as a percentage of the clock cycle) also increases, thus necessitating a register file design with a high degree of immunity to that phenomenon.
  • microprocessor systems are designed for data input in both byte and multi-byte formats (i.e., byte, 16- bit halfword, 32-bit word, and 64-bit doubleword) . Additionally, as a means to enhance system reliability, memory error correction may also be desireable. Both of these requirements make difficult the design of a register file that is both large and fast.
  • the first is to provide support for both 32- bit words and 64-bit doublewords within the register file; the second is to provide a means to simultaneously write to and read from a single register or different registers of the register file during a single clock cycle; the third is to provide a means to format input data loaded to the register file as bytes, halfwords, words or doublewords; the fourth is to provide a means to correct the data stored within the register file using the syndrome bits of a modified Hamming code; the fifth is to allow operation of the register file at clock frequencies in excess of 100MHz with a high degree of immunity to clock skew; and the sixth is that the register file is manufacturable using existing semiconductor production equipment.
  • the improved register file is a memory register array having input ports which are formatted by means of a high ⁇ speed multiplexer. Such formatting is required to support memory-to-register file load operations for byte, halfword (2-byte) , word (4-byte) , and doubleword operands.
  • a modified Hamming error correction code (ECC)
  • ECC Hamming error correction code
  • ECC Hamming error correction code
  • ECC syndrome bits By altering the conventional sequence of events, error correction for the improved register file is performed during the format decode and format operations, thus permitting the generation of ECC syndrome bits to occur in parallel with the formatting operations.
  • ECC is enabled, any byte, halfword, and word store operations are packed within the processor so that all external memory store operations remain 64-bit in width.
  • Formatted and corrected data passes through latches that both sample the input on the low state of a single phase master clock, and hold the input data through the high state of the next clock cycle.
  • Cells within the register file array may be characterized as being of the feedback-type latch variety, having multiple tri-state inverter input paths for the writing of data, and multiple tri-state inverter output paths for the reading of data.
  • a tri-state inverter provides the feedback within each array cell. The feedback inverter is tri-stated during each write operation, thus increasing circuit speed and permitting simultaneous read and write operations to be performed on the same cell during a single machine cycle. As multiple input sources exist for each register file cell, the feedback tri-state inverter must be disabled whenever any of the input sources desire to write data to that cell.
  • the address decode operation is performed during the high state (first phase) of the clock cycle and gated by the clock when the clock is in the low state.
  • a write operation is terminated by the positive clock edge while the data is held valid for the first half of the next clock cycle. Moreover, the input data to the write port is held for the first half of the next clock cycle.
  • isolation buffers consisting of tri-state buffers are used to both isolate the bit lines and to buffer the bit lines as data is accessed.
  • each register file cell tri- state output device sees only the tri-state output capacitance of its seven neighboring cells, the output capacitance of an upper tri-state isolation buffer, and the input capacitance of a lower tri-state isolation buffer.
  • An output read multiplexer is used to select a data bit or its complement depending on the register block source location.
  • Figure 1 is a block diagram showing the architecture of a five-port register file
  • Figure 2 is logic diagram for an input format array cell of first write port WPl
  • Figure 3 is a logic diagram of an input format array cell for second write port WP2 ;
  • Figure 4 is a logic diagram of the second high-speed multiplexer designated as item 33 of Figure' 3;
  • Figure 5 is a logic diagram for a core cell within the five-port register file
  • Figure 6 depicts a tri-state inverter building block
  • Figure 7 is a circuit diagram of the tri-state inverter building block depicted in Figure 6;
  • Figure 8 is a logic diagram for a write decoder cell
  • Figure 9 is a timing diagram depicting write timing cycles for the first write port WPl and the second write port WP2;
  • Figure 10 is a logic diagram of an isolation buffer array cell;
  • Figure 11 is a logic diagram depicting a single column within the register file core array, showing isolation buffer positions
  • Figure 12 is a logic diagram showing output pipeline compensation register elements for readports RD1 and RD2;
  • Figure 13 is a logic diagram showing output pipeline compensation register elements for readport RD3.
  • Figure 1 is a block diagram of the architecture for a five-port register file unit.
  • the unit contains thirty- two 64-bit doublewords. Each 64-bit doubleword is constructed from a pair of 32-bit words, which permits loads and stores to be effected as 32-bit or 64-bit operands.
  • Three of the five ports, RD1, RD2 and RD3, are read ports, while the remaining two ports, WPl and WP2 are write ports.
  • Read ports RD1 and RD2 are associated with an execution unit of the system data processor, while read port RD3 is associated with the data load store unit, which performs all data load store operations between main memory and the register file.
  • Write port WPl is associated with the execution unit, while write port WP2 is associated with the data load store unit.
  • WPl format unit 1 formats execution unit results as either word (32-bit integer, 32- bit single precision floating point) or doubleword (64-bit integer and 64-bit double precision floating point) quantities.
  • WP2 format unit 2 formats data being loaded from external memory. It contains support for an ECC modified Hamming code with 64 data bits and eight check bits. When ECC is enabled, the unit will flip a single erroneous data bit at a location specific to a syndrome vector (bits S0-S7) generated by an ECC unit (not shown) .
  • the register file unit is further partitioned into eight array sections 3 with eight doublewords per section.
  • Isolation buffers 4 through 9 are positioned between each array section 3, and serve the dual purpose of isolating bit lines and providing drive current to read output ports RD1, RD2, and RD3.
  • isolation buffers 8 and 9 decouple the array section containing words W32 through W47 from the array section containing words W48 through W63 by being driven to a tri-state condition.
  • Isolation buffer arrays 4, 5, 6 and 7 function as drivers during such a read operation.
  • Formatting is required to support memory-to-register file load operations for byte, halfword (2-byte) , word (4- byte) and doubleword operands. Formatting is performed separately for each write port.
  • each array doublesection consisting of eight doublewords, is serviced by a pair of odd and even write decoders.
  • Odd write decoders are items 10-OD, 11-OD, 12-OD and 13-OD
  • even write decoders are items 10-EV, 11-EV, 12-EV and 13-EV.
  • both write decoders 10-OD and 10-EV are activated.
  • the cell comprises an input high-speed multiplexer 21 and a latch 22 enabled by the low phase of the clock signal CLK. Multiplexing is achieved by selecting one of the data inputs, INO through INK, via their respective enable control inputs, ENO through ENK and enable-bar control inputs ENOB through ENKB, from the WPl format decoders (items 14-OD and 14-EV of Figure 1) .
  • a pair of series inverters 23 and 24 serve to buffer the output of first write port WPl format unit 1.
  • second write port WP2 is formatted by means of a first high-speed multiplexer 31. Multiplexing is achieved by selecting one of the data inputs, INO through INM, via their respective enable control inputs, ENO through ENM and enable-bar control inputs ENOB through ENMB, from the WP2 format decoders (items 15-OD and 15-EV) of Figure 1) . If a Hamming error correction code (ECC) is enabled, syndrome vector bits SO through S7 will designate a single bit error location within a doubleword operand. The syndrome vector and its complement (not shown) are decoded by an error location decoder 32 which performs an 8-bit AND operation.
  • ECC Hamming error correction code
  • a second high ⁇ speed multiplexer 33 will flip the incorrect bit within the doubleword operand.
  • a normal sequence for performing error correction on operands during load operations requires error correction to be performed prior to a format decode operation, the formatting operation itself and the load- to-register file operation. By altering the normal sequence of events, error correction is performed subsequent to the format decode and format operations, thus permitting the generation of ECC syndrome bits to occur in parallel with the formatting operation.
  • ECC is enabled, any byte, halfword, and word store operations must be packed within a 64-bit quantity within the processor so that all external memory store operations remain 64-bit in width. Formatted and corrected data passes through latches 34 that sample the input on the low state of a single phase master clock CLK, and hold the input data through the high state of the next clock cycle.
  • the second high-speed multiplexer 33 depicted in Figure 3 is formed from a pair of tri-state inverters 41 and a single inverter 42.
  • cells within the register file array may be characterized as being of the feedback-type latch variety, having multiple tri-state inverters 51 in the data write path, and multiple tri-state inverters 52 in the data read path.
  • a tri-state inverter 53 provides feedback within each array cell. Feedback inverter 53 is tri- stated during each write operation, thus increasing circuit speed and permitting simultaneous read and write operations to be performed on the same cell during a single machine, cycle. As multiple input sources WPl and WP2 are routed to each register file cell, feedback tri-state inverter 53 must be disabled whenever any of the input sources desire to write data to that cell.
  • Tri-state inverter building block 61 is used as the building block for the register file cell depicted in Figure 5.
  • Tri- state inverters 51, 52 and 53, shown in Figure 5 are functionally identical to tri-state inverter building block 61.
  • tri-state inverter building block 61 is constructed by connecting a pair of series P- channel MOSFETs Ql and Q2 with a pair of series N-channel MOSFETs Q3 and Q4.
  • write decoder cell logic diagram of Figure 8 write decode for each cell within first write port WPl is performed by a six-input AND block 81, while write address decode for each cell within second write port WP2 is performed by a six-input AND block 82, in conjunction with an enable bar control signal DLAT1. If either AND block 81 or AND block 82 signal a write operation to a particular cell, the feedback clock signal WCLK and its complement WCLKB are generated.
  • All clock timing signals (WCLK, WCLK1, WCLK2 and their complements) are gated by a master clock signal CLK. Furthermore, an enabled transmission gate 83, having enable and enable bar signals tied off, is interposed in each clock complement signal path in order to equalize the delay in the complemented and uncomplemented clock paths.
  • a timing sequence is depicted for a write to write port 1 followed by a write to write port 2.
  • the timing signals in this Figure correspond to like-named signals in Figures 5 and 8.
  • the write address decode operation is performed during the high state (first phase) of the clock cycle and gated by the clock when the clock is in the low state.
  • a write operation is terminated by the positive clock edge while the data is held valid for the first half of the next clock cycle.
  • the input data to the write port is held for the first half of the next clock cycle.
  • the isolation buffer array cell of Figure 10 the cell is formed from three tri-inverters 101, 102 and 103 that are functionally identical to the tri- state inverter depicted in Figure 7. From Figure 1, as read ports RD1 and RD2 exit the bottom of the register file and read port RD3 exits the top of the register file, the tri-state inverters which form the isolation buffer cell are directed accordingly.
  • the signals RB1EN, RB2EN, RB3EN and their complements are the isolation buffer array enable signals generated by the isolation read decoders ISDECO, ISDEC1 and ISDEC2 of Figure 1.
  • each register file cell tri-state output device sees only the tri-state output capacitance of its seven neighboring cells, the output capacitance of an upper tri-state isolation buffer, and the input capacitance of a lower tri- state isolation buffer.
  • an output multiplexer 121 is associated with each column of each read port (RD1 and RD2) .
  • Each multiplexer is used to select a data bit or its complement depending on the word source location within the register file.
  • an output multiplexer 131 is also associated with each column of third read port RD3. Each multiplexer is used to select a data bit or its complement depending on the word source location within the register file.

Abstract

A memory register file array addressable in both word and doubleword format has memory cells of a feedback-type latch variety, having at least two tri-state inverter paths (WP1 and WP2) for the input of data, and at least two tri-state inverter paths (RP1, RP2 and RP3) for the output of data. A tri-state inverter (53) provides the feedback within each array cell. This feedback inverter is tri-stated during each write operation, thus increasing circuit speed and permitting simultaneous read and write operations to be performed on the same cell during a single machine cycle. Error correction is performed during format decode and format operations so that error correction code (ECC) syndrome bit generation can occur in parallel with formatting. Improved clocking operations maintain symmetry of the register file clock signals and provide high clock skew tolerance. Tri-state isolation buffers (4, 5, 6, 7, 8 and 9) are used to reduce read access time.

Description

HIGH-SPEED, FIVE-PORT REGISTER FILE HAVING SIMULTANEOUS READ AND WRITE CAPABILITY AND HIGH TOLERANCE TO CLOCK SKEW
Field of the Invention
This invention relates to data processing systems, semiconductor logic circuits and, more particularly, to multiport register files that support simultaneous read and write operations.
Background of the Invention
High-speed local memory incorporated in a microprocessor system is generally termed a register file. As the register file is typically the first level of high- speed storage, it is beneficial from the compiler's point of view for it to be as large as possible. Latency time associated with the processing of data will be minimized if data may be both written to and read from the same register file location, or from different register file locations during a single clock cycle. As clock frequencies continue to increase, clock skew (as a percentage of the clock cycle) also increases, thus necessitating a register file design with a high degree of immunity to that phenomenon.
Certain microprocessor systems are designed for data input in both byte and multi-byte formats (i.e., byte, 16- bit halfword, 32-bit word, and 64-bit doubleword) . Additionally, as a means to enhance system reliability, memory error correction may also be desireable. Both of these requirements make difficult the design of a register file that is both large and fast. Summary of the Invention
Six principal objectives have been met in the design of the improved register file that constitutes the present invention: The first is to provide support for both 32- bit words and 64-bit doublewords within the register file; the second is to provide a means to simultaneously write to and read from a single register or different registers of the register file during a single clock cycle; the third is to provide a means to format input data loaded to the register file as bytes, halfwords, words or doublewords; the fourth is to provide a means to correct the data stored within the register file using the syndrome bits of a modified Hamming code; the fifth is to allow operation of the register file at clock frequencies in excess of 100MHz with a high degree of immunity to clock skew; and the sixth is that the register file is manufacturable using existing semiconductor production equipment.
The improved register file is a memory register array having input ports which are formatted by means of a high¬ speed multiplexer. Such formatting is required to support memory-to-register file load operations for byte, halfword (2-byte) , word (4-byte) , and doubleword operands. A modified Hamming error correction code (ECC) , when enabled, will designate a single bit error location within a doubleword operand. If ECC is enabled and an error is detected, the multiplexer will flip the incorrect bit within the doubleword operand. In contemporary microprocessor systems, error correction is performed on operands during load operations prior to a format decode operation, a formatting operation, and a load-to-register file operation. By altering the conventional sequence of events, error correction for the improved register file is performed during the format decode and format operations, thus permitting the generation of ECC syndrome bits to occur in parallel with the formatting operations. When ECC is enabled, any byte, halfword, and word store operations are packed within the processor so that all external memory store operations remain 64-bit in width.
Formatted and corrected data passes through latches that both sample the input on the low state of a single phase master clock, and hold the input data through the high state of the next clock cycle. Cells within the register file array may be characterized as being of the feedback-type latch variety, having multiple tri-state inverter input paths for the writing of data, and multiple tri-state inverter output paths for the reading of data. A tri-state inverter provides the feedback within each array cell. The feedback inverter is tri-stated during each write operation, thus increasing circuit speed and permitting simultaneous read and write operations to be performed on the same cell during a single machine cycle. As multiple input sources exist for each register file cell, the feedback tri-state inverter must be disabled whenever any of the input sources desire to write data to that cell.
In order to maintain symmetric register file write clock signals, the address decode operation is performed during the high state (first phase) of the clock cycle and gated by the clock when the clock is in the low state. To provide a high degree of clock-skew tolerance during a write operation, a write operation is terminated by the positive clock edge while the data is held valid for the first half of the next clock cycle. Moreover, the input data to the write port is held for the first half of the next clock cycle.
In order to reduce read access time, isolation buffers consisting of tri-state buffers are used to both isolate the bit lines and to buffer the bit lines as data is accessed. In this manner, each register file cell tri- state output device sees only the tri-state output capacitance of its seven neighboring cells, the output capacitance of an upper tri-state isolation buffer, and the input capacitance of a lower tri-state isolation buffer. An output read multiplexer is used to select a data bit or its complement depending on the register block source location.
Brief Description of the Drawings
Figure 1 is a block diagram showing the architecture of a five-port register file;
Figure 2 is logic diagram for an input format array cell of first write port WPl;
Figure 3 is a logic diagram of an input format array cell for second write port WP2 ;
Figure 4 is a logic diagram of the second high-speed multiplexer designated as item 33 of Figure' 3;
Figure 5 is a logic diagram for a core cell within the five-port register file;
Figure 6 depicts a tri-state inverter building block;
Figure 7 is a circuit diagram of the tri-state inverter building block depicted in Figure 6;
Figure 8 is a logic diagram for a write decoder cell;
Figure 9 is a timing diagram depicting write timing cycles for the first write port WPl and the second write port WP2; Figure 10 is a logic diagram of an isolation buffer array cell;
Figure 11 is a logic diagram depicting a single column within the register file core array, showing isolation buffer positions;
Figure 12 is a logic diagram showing output pipeline compensation register elements for readports RD1 and RD2; and
Figure 13 is a logic diagram showing output pipeline compensation register elements for readport RD3.
Preferred Embodiment of the Invention
Figure 1 is a block diagram of the architecture for a five-port register file unit. The unit contains thirty- two 64-bit doublewords. Each 64-bit doubleword is constructed from a pair of 32-bit words, which permits loads and stores to be effected as 32-bit or 64-bit operands. Three of the five ports, RD1, RD2 and RD3, are read ports, while the remaining two ports, WPl and WP2 are write ports. Read ports RD1 and RD2 are associated with an execution unit of the system data processor, while read port RD3 is associated with the data load store unit, which performs all data load store operations between main memory and the register file. Write port WPl is associated with the execution unit, while write port WP2 is associated with the data load store unit. Each of the write ports WPl and WP2 has its own format unit. WPl format unit 1 formats execution unit results as either word (32-bit integer, 32- bit single precision floating point) or doubleword (64-bit integer and 64-bit double precision floating point) quantities. WP2 format unit 2 formats data being loaded from external memory. It contains support for an ECC modified Hamming code with 64 data bits and eight check bits. When ECC is enabled, the unit will flip a single erroneous data bit at a location specific to a syndrome vector (bits S0-S7) generated by an ECC unit (not shown) .
Still referring to Figure 1, the register file unit is further partitioned into eight array sections 3 with eight doublewords per section. Isolation buffers 4 through 9 are positioned between each array section 3, and serve the dual purpose of isolating bit lines and providing drive current to read output ports RD1, RD2, and RD3. For example, during a read from read port RD1 of the doubleword formed from words W38 and W39, isolation buffers 8 and 9 decouple the array section containing words W32 through W47 from the array section containing words W48 through W63 by being driven to a tri-state condition. Isolation buffer arrays 4, 5, 6 and 7 function as drivers during such a read operation.
Formatting is required to support memory-to-register file load operations for byte, halfword (2-byte) , word (4- byte) and doubleword operands. Formatting is performed separately for each write port.
Still referring to Figure 1, each array doublesection, consisting of eight doublewords, is serviced by a pair of odd and even write decoders. Odd write decoders are items 10-OD, 11-OD, 12-OD and 13-OD, while even write decoders are items 10-EV, 11-EV, 12-EV and 13-EV. For example, to write to the doubleword formed from the word locations W4 and W5, both write decoders 10-OD and 10-EV are activated. For a write operation to only word W4, only write decoder 10-EV is activated.
Referring now to the logic diagram of Figure 2, showing an input format array cell of first write port WPl, the cell comprises an input high-speed multiplexer 21 and a latch 22 enabled by the low phase of the clock signal CLK. Multiplexing is achieved by selecting one of the data inputs, INO through INK, via their respective enable control inputs, ENO through ENK and enable-bar control inputs ENOB through ENKB, from the WPl format decoders (items 14-OD and 14-EV of Figure 1) . A pair of series inverters 23 and 24 serve to buffer the output of first write port WPl format unit 1.
Referring now to the logic diagram of Figure 3, showing an input format array cell for second write port WP2, second write port WP2 is formatted by means of a first high-speed multiplexer 31. Multiplexing is achieved by selecting one of the data inputs, INO through INM, via their respective enable control inputs, ENO through ENM and enable-bar control inputs ENOB through ENMB, from the WP2 format decoders (items 15-OD and 15-EV) of Figure 1) . If a Hamming error correction code (ECC) is enabled, syndrome vector bits SO through S7 will designate a single bit error location within a doubleword operand. The syndrome vector and its complement (not shown) are decoded by an error location decoder 32 which performs an 8-bit AND operation. If ECC is enabled and an error is detected, a second high¬ speed multiplexer 33 will flip the incorrect bit within the doubleword operand. A normal sequence for performing error correction on operands during load operations requires error correction to be performed prior to a format decode operation, the formatting operation itself and the load- to-register file operation. By altering the normal sequence of events, error correction is performed subsequent to the format decode and format operations, thus permitting the generation of ECC syndrome bits to occur in parallel with the formatting operation. When ECC is enabled, any byte, halfword, and word store operations must be packed within a 64-bit quantity within the processor so that all external memory store operations remain 64-bit in width. Formatted and corrected data passes through latches 34 that sample the input on the low state of a single phase master clock CLK, and hold the input data through the high state of the next clock cycle.
Referring now to Figure 4, the second high-speed multiplexer 33 depicted in Figure 3 is formed from a pair of tri-state inverters 41 and a single inverter 42.
Referring now to the register file core cell logic diagram of Figure 5, cells within the register file array may be characterized as being of the feedback-type latch variety, having multiple tri-state inverters 51 in the data write path, and multiple tri-state inverters 52 in the data read path. A tri-state inverter 53 provides feedback within each array cell. Feedback inverter 53 is tri- stated during each write operation, thus increasing circuit speed and permitting simultaneous read and write operations to be performed on the same cell during a single machine, cycle. As multiple input sources WPl and WP2 are routed to each register file cell, feedback tri-state inverter 53 must be disabled whenever any of the input sources desire to write data to that cell.
Referring now to Figure 6, the circuitry of a tri- state inverter building block 61 is shown. Tri-state inverter building block 61 is used as the building block for the register file cell depicted in Figure 5. Tri- state inverters 51, 52 and 53, shown in Figure 5, are functionally identical to tri-state inverter building block 61.
Referring now to Figure 7, tri-state inverter building block 61 is constructed by connecting a pair of series P- channel MOSFETs Ql and Q2 with a pair of series N-channel MOSFETs Q3 and Q4. Referring now to the write decoder cell logic diagram of Figure 8, write decode for each cell within first write port WPl is performed by a six-input AND block 81, while write address decode for each cell within second write port WP2 is performed by a six-input AND block 82, in conjunction with an enable bar control signal DLAT1. If either AND block 81 or AND block 82 signal a write operation to a particular cell, the feedback clock signal WCLK and its complement WCLKB are generated. All clock timing signals (WCLK, WCLK1, WCLK2 and their complements) are gated by a master clock signal CLK. Furthermore, an enabled transmission gate 83, having enable and enable bar signals tied off, is interposed in each clock complement signal path in order to equalize the delay in the complemented and uncomplemented clock paths.
Referring now to the timing diagram of Figure 9, a timing sequence is depicted for a write to write port 1 followed by a write to write port 2. The timing signals in this Figure correspond to like-named signals in Figures 5 and 8. In order to maintain symmetric register file write clock signals, the write address decode operation is performed during the high state (first phase) of the clock cycle and gated by the clock when the clock is in the low state. To provide a high degree of clock-skew tolerance during a write operation, a write operation is terminated by the positive clock edge while the data is held valid for the first half of the next clock cycle. Moreover, the input data to the write port is held for the first half of the next clock cycle.
Referring now to the isolation buffer array cell of Figure 10, the cell is formed from three tri-inverters 101, 102 and 103 that are functionally identical to the tri- state inverter depicted in Figure 7. From Figure 1, as read ports RD1 and RD2 exit the bottom of the register file and read port RD3 exits the top of the register file, the tri-state inverters which form the isolation buffer cell are directed accordingly. The signals RB1EN, RB2EN, RB3EN and their complements are the isolation buffer array enable signals generated by the isolation read decoders ISDECO, ISDEC1 and ISDEC2 of Figure 1.
Referring now to Figure 11, the logic diagram of a single column within the register file core array illustrates how isolation buffers 111 through 113 are used to partition the four sections of the register file. In order to reduce read access time, the isolation buffers are used to both isolate and buffer the read bit lines 114 through 117 as data is accessed. In this manner, each register file cell tri-state output device sees only the tri-state output capacitance of its seven neighboring cells, the output capacitance of an upper tri-state isolation buffer, and the input capacitance of a lower tri- state isolation buffer.
Referring now to Figure 12, an output multiplexer 121 is associated with each column of each read port (RD1 and RD2) . Each multiplexer is used to select a data bit or its complement depending on the word source location within the register file.
Referring now to Figure 13, an output multiplexer 131 is also associated with each column of third read port RD3. Each multiplexer is used to select a data bit or its complement depending on the word source location within the register file.
Although only a single embodiment of the invention has been described herein, it will be apparent to those skilled in the art that modifications may be made thereto without departing from the spirit and the scope of the invention as claimed.

Claims

I Claim:
1. An improved, high-speed register file comprising memory cells, each of which has at least two data input tri-state inverter paths (WPl and WP2) , at least two data output tri-state inverter paths (RPl, RP2, and RP3) , and a feedback tri-state inverter (53) that is tri-stated whenever a write operation is attempted through a single input path of the associated cell.
2. The register file of Claim 1, wherein said cells are configured as an array (3) , which is addressable in both word and doubleword format.
3. The register file of Claim 2, wherein format decoding and multiplexing operations are handled in parallel with syndrome bit generation, and bit correction operations are performed subsequent thereto.
4. The register file of Claim 3, wherein address decode operations are initiated when a master clock signal (CLK) is high, and write operations are initiated when the master clock signal (CLK) is low, in order to maintain the symmetry of the register file write clock signals and their complements.
5. The register file of Claim 4, wherein immunity from clock skew is achieved by:
a) passing formatted and corrected input data through format units having latches (22 or 34) that sample the data on the low state of a single phase master clock signal (CLK) ;
b) holding the input data through the high state of the next clock cycle; and
c) terminating write operations with the positive edge of the clock signal, while data input to a write port
(WPl or WP2) is held valid during the first half of the next clock cycle.
6. The register file of Claim 5, wherein tri-state isolation buffers are used to both isolate and buffer bit lines as data is accessed, in order to decrease read access time.
PCT/US1991/008057 1990-10-26 1991-10-28 High-speed, five-port register file having simultaneous read and write capability and high tolerance to clock skew WO1992008230A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60403290A 1990-10-26 1990-10-26
US604,032 1990-10-26

Publications (1)

Publication Number Publication Date
WO1992008230A1 true WO1992008230A1 (en) 1992-05-14

Family

ID=24417909

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1991/008057 WO1992008230A1 (en) 1990-10-26 1991-10-28 High-speed, five-port register file having simultaneous read and write capability and high tolerance to clock skew

Country Status (2)

Country Link
JP (1) JPH05503390A (en)
WO (1) WO1992008230A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5422857A (en) * 1989-11-21 1995-06-06 Matsushita Electric Industrial Co., Ltd. Semiconductor memory unit having overlapping addresses
FR2724472A1 (en) * 1994-09-14 1996-03-15 Suisse Electronique Microtech Finite state machines that are insensitive to clock skew
US5590087A (en) * 1993-05-05 1996-12-31 Hewlett-Packard Company Multi-ported data storage device with improved cell stability
EP1050885A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics S.A. A multiport storage array
US10868531B2 (en) 2016-03-31 2020-12-15 Thine Electronics, Inc. Signal-multiplexing device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4491937A (en) * 1982-02-25 1985-01-01 Trw Inc. Multiport register file
US4610004A (en) * 1984-10-10 1986-09-02 Advanced Micro Devices, Inc. Expandable four-port register file
US4654826A (en) * 1984-08-20 1987-03-31 National Semiconductor Corporation Single device transfer static latch
US4719596A (en) * 1986-03-19 1988-01-12 International Business Machines Corporation Register providing simultaneous reading and writing to multiple ports
JPH01122093A (en) * 1987-11-06 1989-05-15 Hitachi Ltd Semiconductor memory
US4933909A (en) * 1988-12-19 1990-06-12 Bull Hn Information Systems Inc. Dual read/write register file memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4491937A (en) * 1982-02-25 1985-01-01 Trw Inc. Multiport register file
US4654826A (en) * 1984-08-20 1987-03-31 National Semiconductor Corporation Single device transfer static latch
US4610004A (en) * 1984-10-10 1986-09-02 Advanced Micro Devices, Inc. Expandable four-port register file
US4719596A (en) * 1986-03-19 1988-01-12 International Business Machines Corporation Register providing simultaneous reading and writing to multiple ports
JPH01122093A (en) * 1987-11-06 1989-05-15 Hitachi Ltd Semiconductor memory
US4933909A (en) * 1988-12-19 1990-06-12 Bull Hn Information Systems Inc. Dual read/write register file memory

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5422857A (en) * 1989-11-21 1995-06-06 Matsushita Electric Industrial Co., Ltd. Semiconductor memory unit having overlapping addresses
US5631869A (en) * 1989-11-21 1997-05-20 Matsushita Electric Industrial Co, Ltd. Semiconductor memory unit having overlapping addresses
US5590087A (en) * 1993-05-05 1996-12-31 Hewlett-Packard Company Multi-ported data storage device with improved cell stability
FR2724472A1 (en) * 1994-09-14 1996-03-15 Suisse Electronique Microtech Finite state machines that are insensitive to clock skew
EP1050885A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics S.A. A multiport storage array
US6718452B1 (en) 1999-05-03 2004-04-06 Stmicroelectronics S.A. Storage array supporting a plurality of instruction modes
US10868531B2 (en) 2016-03-31 2020-12-15 Thine Electronics, Inc. Signal-multiplexing device

Also Published As

Publication number Publication date
JPH05503390A (en) 1993-06-03

Similar Documents

Publication Publication Date Title
TWI615850B (en) Longest element length determination in memory
US11842191B2 (en) Apparatus and methods related to microcode instructions indicating instruction types
CN111052099B (en) In-memory processing
US7681106B2 (en) Error correction device and methods thereof
US20210326056A1 (en) Apparatuses and methods for memory alignment
US5559986A (en) Interleaved cache for multiple accesses per clock cycle in a microprocessor
EP0418457B1 (en) Pipelined error checking and correction for cache memories
US7353438B2 (en) Transparent error correcting memory
US4814976A (en) RISC computer with unaligned reference handling and method for the same
US5396641A (en) Reconfigurable memory processor
WO2016144951A1 (en) Data shift by elements of a vector in memory
US5657291A (en) Multiport register file memory cell configuration for read operation
US5355335A (en) Semiconductor memory device having a plurality of writing and reading ports for decreasing hardware amount
JPH01195557A (en) Data transfer for data processing system
US5331645A (en) Expandable digital error detection and correction device
US6834024B2 (en) Reduced size multi-port register cell
US5638312A (en) Method and apparatus for generating a zero bit status flag in a microprocessor
WO1992008230A1 (en) High-speed, five-port register file having simultaneous read and write capability and high tolerance to clock skew
GB2241598A (en) Six-way access ported ram array cell
US6442676B1 (en) Processor with different width functional units ignoring extra bits of bus wider than instruction width
US6714475B2 (en) Fast accessing of a memory device using decoded address during setup time
GB2241801A (en) Data bypass structure in a register file on a microprocessor
US4949343A (en) Error detecting circuit for a decoder
US5978957A (en) Very fast pipelined shifter element with parity prediction
WO1992003777A1 (en) Block transfer register scoreboard for data processing systems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): DE JP