A CMOS MULTIPORT GENERAL PURPOSE REGISTER

Abstract: General purpose registers used in large computers for temporary storage of information. The use of such registers eliminates the need to always access the main memory of the computer. In order to provide most efficient operation, the general purpose register (14) of the present invention includes two input ports (A, B) and two output ports (C, D) having four independent addresses. The general purpose register includes a number of internal registers (38, 40, 42, 44), and the provision of four independent addresses enables data to be written into two internal registers while data is being read out of two internal registers. The general purpose register also includes circuitry (50, 52) for transferring data at the input ports directly to the output ports without entering the data into the internal registers. Interchanging of bytes of data input words is also facilitated.

Description: A CMOS MULTIPORT GENERAL PURPOSE REGISTER BACKGROUND OF THE INVENTION: This invention relates to a general purpose register (GPR), used in the design of large computers, that provides for the temporary storage of information, and more particularly to a GPR fabricated using very large scale integration (VLSI) of complementary metal oxide semiconductor (CMOS) circuits. More speci ically, the present invention relate to a GPR that has two input ports and two output ports and is designed such that two read operations and two write operations, using four independent addresses, with byte changing between the two inputs and also between an input and an output if desired, can be performed during one cycle of operation. The use of general purpose registers in the design of large computers is common practice. As the name implies, GPR's are designed to be general purpose and a large number of them might be used in a large computer design to provide temporary storage for the computer hardware for data, addresses, instructions, etc., while the computer executes the instructions of a program. GPR's have a relatively small number of registers, typically equal to some power of two, but * generally no more than thirty-two. Each register of a GPR is an independent storaje location but all registers have the same word size (a word consists of some defined number of bits). The word size and the speed of the GPR are determined by the particular application. In its most simple form ' , a GPR has a single set of address lines that allow any of the registers to be addressed. When addressed, a register can have data written into it or data read from it, as determined by other control signals of the GPR. Only one write operation or one read operation can take place at a time. A more sophisticated GPR is one that has two sets of address lines, two data inpμt ports and tow data output ports. This design allows two registers within the GPR to be addressed at the same time. Data can be read from both or written into both registers during the same cycle. Such operation is desirable since two data words are often required to be applied to an execution unit within the computer. Alternatively, a read operation from one addressed register and a write operation into the other addressed register during the same cycle is also possible. Control signals are used to enable either or both sets of addresses, and the read and write functions, during every operation. If parity bits are used as part of the word to insure data integrity, the generation of the parity bits to be written and the checking of parity for the word read is performed by logic circuitry external to the GPR. SUMMARY OF THE INVENTION The primary objective of the present invention is to improve the design of general purpose registers to make them more versatile in their application. This is accomplished by a design which- includes a GPR having two separate read addresses and two separate write addresses. Tow input ports are associated with the two write addresses and two output ports are associated with the two read addresses. The GPR is designed such that data can be read from two internal registers at the same time that data is being written into two different internal registers. This significantly increases the operating speed of a system utilizing the GPR. The design also allows the interchange of the bytes of the two data words on the two input ports or the bytes of an input port and its associated output port. Logic circuitry internal to the GPR checks for correct parity on all input bytes. The design allows data on either input port that is to be written in an internal register to also be made available on the associated output port for use on the next system cycle, by means of unique bypass circuitry. The GPR is fabricated using CMOS circuitry and VLSI techniques. The GPR circuitry occupies approximately one-third of a CMOS chip. The remainder of the chip contains undedicated, general purpose circuitry. The invention allows a designer to customize the overall design of the GPR chip by utilizing the general purpose circuitry in the manner required for the particular application.. The unique features of the design, along with the undedicated circuitry, all on a single CMOS chip, allow the present invention to be used in applications where GPR's are not normally used, such as in the I/O channels, for temporary storage in the floating point logic, in variable field logic, in character manipulation logic, etc. BRIEF DESCRIPTION OF THE DRAWINGS The invention will be described with respect to the accompanying drawings wherein: FIGURE 1 is a diagrammatic top plan view of the chip of the present invention; FIGURE 2 is a block diagram showing the input control elements of the GPR; FIGURE 3. is a block diagram showing the organization of the internal registers of the GPR; FIGURE 1 is a block diagram showing the output control elements of the GPR; FIGURE 5 combines the elements of FIGURES 3, ■*-» and 5 to show an overall block diagram of the GPR; FIGURE 6 is a block diagram of the BPR showing the details of the output port multiplexers; and FIGURE 7 is a circuit diagram of an internal cell of the GPR. DESCRIPTION OF THE PREFERRED EMBODIMENT The following description is of the presently contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best defined by the appended claims. Referring to FIGURE 1, a semiconductor chip 10 is seen to comprise two major elements: the undedicated circuitry 12, and the general purpose register 14. .In one embodiment, the chip is made using a thirty by seventy-five array of blocks, each block consisting of eight CMOS transistors (Four pairs of complementary transistors). The GPR portion 14 of the chip uses a twelve block by sixty block area of the array. Special circuitry, in addition to the standard eight transistor block, is used in the GPR portion of the chip. The undedicated circuitry 12 consists of 1530 blocks which may be- selectively interconnected to customize the GPR chip so as to perform a particular function. For example, four inverters or two two-input NAND gates can be made from one block, while a master-slave latch takes four blocks. The designer has literally thousands of logic elements available to use in customizing the chip. ' The customizing is done by interconnecting the blocks (which are formed in a semiconductor substrate) in the desired manner with metalization layers which overlie the substrate. The designers metalization pattern and the standard metalization pattern for the GPR circuitry are combined to form metalization masks. These masks are then used to form metalization layers by means of photolithographic techniques. The GPR portion 14 of the chip consists of three functional blocks: the input control 16, the internal storage registers 18, and the output control 20. The operation of each of these blocks is explained in the following paragraphs. Referring to FIGURE 2, the elements that make up the input control portion 16 of the GPR are shown. As can be seen from FIGURE 2, there are two separate sets of input control elements: one set for an A input port, and another set for a B input port. Each set of control elements consists of a write register 22 or 24, a write enable register 26 or 28, and a write address register 30 or 32, along with a write address decoded 3 or 36. The write registers 22 and 24 are used to hold the thirty-six bit word (consisting of four eight-bit bytes plus a parity bit for each byte) that may be written into the selected internal register of the GPR. A unique feature of the invention is the self contained parity logic within the two write registers. That is, each register advantageously contains parity checking logic to check the parity of each byte., This is accomplished by using an exclusive-NOR parity tree wherein the eight bits of the byte are compared, in groups of two, by our exclusive-NOR gates. The four outputs are compared, in groups of two, by two exclusive-NOR gates, and the output of these two gates are compared by a single exclusive-NOR gate. The output of this gate and the input parity bit are compared by a single exclusive-NOR gate. The output of this final gate must be a logical one or a parity error exists in the input byte and its associated parity bit. If a parity error occurs, the parity checking logic generates a parity error signal. The designer may use the undedicated logic to perform whatever function is necessary in response to the error signal. The two write enable registers 26 and 28 each hold four bits which are used to determine which of the four bytes of a write register, including the associated parity bit, will be written into the selected internal register associated with that write register. All, any, or none, of the bytes of each input port may be enabled for each write operation by loading the appropriate bit pattern into the write enable registers. The enable bits are used directly without any decoding. That is, for each port, the first enable bit is used to enable or disable the first byte, the second enable bit is used to enable or disable the second byte, and so on. The write address registers 30 and 32 each hold four-bits which are used to specify the addresses of the internal registers of the GPR for the write operation. Each write address register has its own address decoder 34 or 36. Each decoder has the four address bits as the input and has sixteen outputs which are used to enable one of the sixteen internal registers of the GPR. Only one of the sixteen outputs of each decoder can be true at any time. The six input control registers 22 through 32 insure that spurious write operations do not occur while the input signals are being changed. All six registers are loaded with the data on their inputs by the • clock signal C. In addition, two clock enable signals, CA on the A write register 22, and CB on the B write register 24, are used to control the loading of data into the write registers. If the clock enable signal is false on a write register, the clock signal C does not load the input * data into that write register. Since the write enable registers and the write address registers are always loaded by the clock signal C, the clock enable signals allow data in the write register to be held for more than one cycle while all or part of it is written into more than one internal register of the GPR. Referring to FIGURE 3 . the internal registers of the GPR are organized as four independent sets 01 registers 38 through 44. Each set of registers consists of sixteen nine bit storage locations. Each set of registers has two sets of input port control signals, one from port A and one from port B. The input port control signals consist of the byte that is to be written, the write enable signal that determines whether the byte will be written, and the address of the byte. The address for a given input port is the same for all four bytes contained in each of the write registers 22 and 24. Each set of registers 38 through 44 also has two sets of output port signals, one for a C port and one for a D port. The output port signals consist of the address to be read, the byte read, and the byte bypassed from the write register. The address for a given output port is the same for all four bytes. The elements that make up the output control portion of the GPR are shown in FIGURE 4. As can be seen in the Figure, there are two separate sets of output control elements, one for the C port and one for the D port. Each set consists of a read address decoder 46 or 48 and an output port multiplexer 50 or 52. The read address decoders 46 and 48 are similar to the write address decoders 34 and 36 shown in FIGURE 2. The output port multiplexers 50 and 52 select bytes from either the addressed internal, register of the GPR or from the write data bypass and put them on the output of the port. Four sets of read enable signals, EC, ED, EE and EF, are used to control the two output port multiplexers. Each set of read enable signals is four bits and they are used without any decoding; the first enable bit enables or disables the first byte, the second enable bit enables or disables the second byte, and so on. The read enable signals EC and ED enable or disable bytes from the addressed internal registers for ports C and D, respectively, while the bypass enable signals EE and EF enable signals from the write data bypass, from input ports A and B, to output ports C and D, respectively. Referring to FIGURE 5, the input port control elements, the internal register elements and the output port control elements are combined to give an overall block diagram of the GPR. The two thirty-six bit words, DA and DB, that are to be written into the selected internal registers are loaded by the clock signal C into the two write registers A22 and B24, respectively, dependent upon the state of the clock enable signals, CA and CB, respectively. At the same time, the two write enable registers A26 and B26 are loaded with the enable signals EA and EB, respectively, and the two write address registers A30 and B32 are loaded with the address signals AA and- AB, respectively. The outputs of the two address registers are decoded by the write address decoders 34 and 36. The outputs of the two write enable registers A and B are made available as the signals EAR and EBR, respectively, while the outputs of the two address registers A and B are made available as the signals AAR and ABR, respectively. This is a unique feature of the invention which allows the designer to use the register outputs, along with the undedicated logic, to customize the design of the GPR chip, e.g., to multiplex the outputs back into the inputs to form a recirculating type register, incrementing the output before feeding them back to input to form a self-incrementing counter, etc. At this time, the write operation takes place. The latches used in the internal registers are RS (reset-set) type latches which do not require a clock pulse. Those addressed bytes of the registers 38 through 44 that are enabled by the outputs of the two write enable registers will have the corresponding byte of the appropriate write register 22 or 24 written into them. A write operation can be disabled by loading four false bits into the appropriate write enable register with the clock signal C. No write operation will occur on the selected register (the outputs of the two write address decoders are always selecting an internal register) since all four bytes will be disabled. The enable bits allow all, any, or none of four bytes in the write register to be loaded into the selected internal register for either port. Another unique feature of the invention is the capability of selecting some number of bytes from one write register and some number of bytes from the other write register to be written into .a single internal register. When using this feature, the same address must be loaded in both write address registers. This feature also allows bytes to be interchanged between the two words in the write register. As an example, suppose it is necessary to interchange the odd numbered bytes. On the first write cycle, the two write enable registers would be loaded with bits that would enable the even numbered bytes from write register A and the odd numbered bytes from write register B to be written into the addressed internal register. During the next clock signal C, the two write enable registers would be loaded with a new set of bits and the two address registers would be loaded with an identical address (but different from the one used during the first operation). However, the two clock enable signals are held false, and the contents of the two write registers are not changed. The seco ' nd set ' of write enable signals would enable the even numbered bytes from write register B and the odd numbered bytes from write register A to be written into the currently addressed internal register. At the end of the second write cycle, two internal registers contain the original two words from the write registers with their odd numbered bytes interchanged. The read address signals AC and AD for the two output ports C and D, respectively, are applied to the read address decoder 46 and' 48 respectively. The enable signals EC, ED, EE and EF are applied to the output port multiplexers 50 and 52. A read operation is always taking place on the addressed internal registers. However, the read enable signals and/or external circuitry and timing determine if the internal register outputs will be used. The read enable signals EC and EE control the operation of the output port C multiplexer 50 while read enable signals ED and EF control output port D multiplexer 52. The contents of the two write registers are connected to both the internal registers and to the output port multiplexers. This is a unique feature of the invention, called write data bypass, which allows the data in the write register to be written into an addressed internal register and also be multiplexed onto an output port. There are many* operations in a computer where the data being stored in the GPR is needed for the next operation. Because of the inherent timing of a GPR, data cannot be written into an internal register and read from the internal register during the same cycle. The provision of the write data bypass enables data entered into the GPR to be read out for use in the next cycle. Referring to FIGURE 6, the details of the output port multiplexers are shown. FIGURE 6 is similar to FIGURE 5 except only one bit is illustrated. To truly represent the entire GPR, the sixteen word by one bit box 60 and the two output port multiplexers 50 and 52 would have to be shown thirty-six times. The remaining elements of FIGURE 6 would be common to all thirty-six bits, with the exception of the read enable signals EC, ED, EE and EF. These signals are four bits each with each bit controlling a byte on the output ports. The output port C multiplexer 50 is controlled by the read enable signals EC and EE. If the read enable signal EC is time, the appropriate byte from the internal register addressed by address signals AC will be gated onto the output of port C. If the read enable signal EE is true, the appropriate byte from write ' register A22 will be gated, by means of the write data bypass line 70, onto the output of port C. A unique feature of the invention is that some number of bytes from the addressed internal register and some number f bytes from the write register can be used, by the proper selection of EC and EE, to form the port C output. The read enable signals ED and Ef control the output of port D in a manner similai' to the manner in which EC and EE control port C. however, the output of port D will be either from the internal register addressed by address AD or from write register B. The write data bypass lines 70 and 72 from the two write registers A and B are made available as the signals DE and DF, respectively. The designer can use these signals, along with the undedicated logic, to customize the GPR for those applications where 11 both the data from the internal register and the data in the write register are required for the next cycle. FIGURE 7 is a circuit diagram of an internal cell of the GPR. THe basic storage element of the cell is the pair of inverters 82-83. The two inverters are connected in a loop; the output of inverter 82 is connected to the input of inverter " 83 1 and the output of inverter 83 is connected to the input of inverter 82. Hence, the signal applied to the input of inverter 82 is inverted and applied to the input of Inverter 83. which inverter 63 inverts it again and applied it back to the input of inverter 82. Thus, when the input signal is changed, it is latched by these two- inverters. The input to the cell comes from two sources, shown as ABITn and BBITn, where n represents one of the thirty six bits from the A and B write registers 22-24 (see FIGURE 6), respectively. Each nth-bit from each input port, A and B, is applied to all sixteen nth-cells via the busses represented by ABITn and BBITn, respectively. The two transistors 80-81 determine which of the two input bits will be written into the cell. The transistors are controlled by the select signals, SELA and SELB. The signal SELA is the logical AND of the decoded address for this cell, as decoded by the write address A decoder 34 (see FIGURE 6), and the' write enable signal EA. This SELA signal is applied to each of the thirty six cells that make up the register with this address. Each of the sixteen registers have their own unique SELA, as determined by the write address A decoder. The signal SELB is similar except the output of the write address B decoder 36 nd the write enable signal EB are used to generate the signal. During the write portion of the cycle, either or none of the two transistors 80-81 will be turned on, depending upon the signals SELA and SELB, respectively. If one of them is turned on, the appropriate input signal, ABITn or. BBITn, will be applied to the input of the inverter 82. The inverter 83 is required because of the leakage current from the gates of the transistors of the inverter 82. If there were no leakage current, the input signal could charge or discharge the gates of inverter 82 and its output would remain unchanged until the input was changed. Because of the leakage, inverter 83 is required to hold the input of inverter 82 to the desired level. The transistors of the inverter 83 are physically relatively small. They have sufficient drive capability to replenish the leakage current of the input of inverter 82 but not enough drive capability to overcome the input signal from the select transistors 80 or 81. Thus, if the output of the inverter 8 is low, the input signal from the select transistor 82 or 81 can pull it to a high level. The transistors of the inverter 82 are physically relatively large. They have sufficient drive capability to give a fast rise to the output signal during the read cycle. Thus the invention conserves area on the chip by making the transistors of the cell of unequal physical sizes, but of the appropriate size to perform their desired function. The output of the cell goes to two destinations, CBITn and DBITn, as shown in the-FIGURE 7. These two lines are similar to the two input lines, where n represents one of the thirty six bits on the output of the. register 60 (see FIGURE 6) that are the input to the bypass/read multiplexers 50 and 52. The output of the cell is directed to either the C port or the D port by the transistors 82 and 83 which are controlled oy the select signals SELC and SELD, respectively. These two signals are generated by the read address decoders 46-48 (see FIGURE 6). As in the case of the input, a unique SELC and a unique SELD a_*e applied to all ' thirty six bits of each of the sixteen registers of the GPR. Thus, any of the sixteen registers can be selected by SELC and any of the remaining fifteen registers can be selected by SELD. In summary, the present invention provides a GPR having two input ports and two output ports and four independent addresses. This arrangement provides a substantial improvement in the operating speed of a computer which utilizes the GPR. Although the invention has been described in terms of a particular embodiment, modification within the scope of the invention will be apparent to those skilled in the art. Therefore, the scope of the invention should be determined with reference to the appended claims rather than the foregoing description. S UR -ES OMPI W _ > WIPO -42_NATIC

Claims: CLAIMS We claim; 1. a general purpose register for temporary storage of data in a computer system, comprising: a plurality of internal storage registers; first input control means for writing data into a selected internal register; second input control means for writing data into a selected internal register; first output control means for reading data from a selected internal register to a first output; and second output control means for reading data from a selected internal register to a second output wherein the control means are independently operable to thereby facilitate simultaneous writing into two internal registers and reading from two internal registers. 2. A general purpose register according to claim 1 wherein the first and second input control means each includes 'input addressing means for addressing the internal registers. 3. A general purpose register according to claim 2 wherein the addressing means includes a write address register for receiving and storing a binary address code indicating a selected internal regiscer and a decoder for receiving the address code and addressing the selected internal register. 4. A general purpose register according to claim 2 wherein each input control means further includes a write register for receiving an input data word, wherein data in each write register is subsequently transferred to the internal- registers, wherein the OMPI ty^ WIPO addressing means and write registers receive first control signals to initiate the addressing of and transfer of data into the internal registers. 5. A general purpose register according to claim 4 wherein each data input word is comprised of a plurality of bytes, ' wherein each control means further includes write enable means for selecting which of the bytes of a data input word will be written into the internal registers, wherein the operation of the write ' enable means is controlled by the first control signals. 6. A general purpose register according to claim 5 wherein each write enable means comprises a write enable register. 7. A general purpose register according to claim 4 wherein the write registers receive second control signals in addition to the first control signals, wherein data is transferred from the write registers to the internal registers upon receipt of both the first and second control signals. 8. A general- purpose register according to claim 4 wherein the write registers include parity checking means for generating a parity error signal whenever a parity error occurs the input data word. 9. A general purpose register according to claim 2 wherein the first and second output control means each Includes output addressing means for addressing the internal registers. 10. A general purpose register according to claim 4 including bypass means for transferring data from the write registers directly to the first and second outputs without being stored in the internal registers. 11. A general purpose register according to claim 9 wherein the bypass means comprises first and second multiplexers, each coupled to a write register and the internal registers, wherein the outputs of the first and second multiplexers are coupled to the first and second outputs respectively. 12. A general purpose register for storage of data in a computer system, comprising: a plurality of internal storage registers; first input control means for writing an input data word into a selected internal register; second input control means for writing an input data word.into a selected internal register, wherein each data word is comprised of a plurality .of data sections, wherein each input control means includes enable means .for determining which data sections of a data word are to be written into a selected internal register; first output control means for reading data from a selected internal register to a first output; and second output control means for reading data from a selected internal register to a second output; wherein the control means are independently operable to thereby facilitate simultaneous writing into two internal registers and reading f om two internal registers. 13 * A general purpose register according to claim 11 wherein each input control means includes a write register for receiving a data word, wherein the enable means determines which data sections of the data word in each write register is to be written into the internal registers. O PI 14. A general purpose register according to claim 13 wherein each enable means comprises a write enable register which controls the writing of data sections from the write registers to the internal registers. 15. A general purpose register according to claim 14 wherein each write register includes parity checking means for generating a parity error signal in response to a parity error occurring in the data word. 16. A general purpose register according to claim 13 wherein each input control means includes addressing means for selecting an internal register to which data is to be transferred. 17 * A general purpose register according to claim 16 wherein the addressing means of each input means can simultaneously address the same internal register, whereby predetermined data sections from each of the write registers can be written into a single internal register. 18. A general purpose register according to claim 12 wherein each output control means includes output enabling means for determining which data, sections of a selected data word in an internal register are to be read to the output. 19. A general purpose register according to claim 13 wherein each output control means includes output enabling means for determining which data sections of a selected data word in an internal register are to be read to the output, wherein the general purpose register further includes bypass means for bypassing the internal registers and transferring predetermined data sections of OMP: κ wipe the data words in the write registers directly to the outputs whereby data sections from the internal registers and write registers can be combined to form output data words. 20. An integrated circuit chip comprising: undedicated circuitry comprising a first array of complementary MOS transistor pairs, wherein the transistors are selectively Interconnected to perform desired functions; and general purpose register circuitry comprising a second array of complementary MOS transistor pairs, said general purpose register circuitry comprising a plurality of internal storage registers, first input control means for addressing the internal registers to provide an input data word thereto, second input control means for addressing the internal registers to provide an input data word thereto, first output control means for addressing the internal registers to obtain a data word therefrom, and second output control means for addressing the internal registers to obtain a data word therefrom, wherein each of the control means addresses the internal registers independently, thereby facilitating simultaneous writing of data into two internal registers and reading of data from two internal registers. 21. An Integrated circuit chip as defined in"Claim 20 wherein said internal storage registers comprise a pair of inverter circuits connected in a loop such that the output of one is connected to the input of the other, and further including means for selectively connecting either input or said pair of inverter circuits to one of two input signal lines, and means for selectively connecting either output or said pair of inverter circuits to one of two output signal lines. AMENDED CLAIMS [received by the Intemitiorul Bureau on 19 June 1984 (19.06.84): [original claims 1.5.8. 11.12, 13 and 19 amended; original claims 24, 7.9.10. 14. 15 and 18 cancelled, original claims 6. 16. 17.20 and 21 unchanged] 1. A general purpose register for temporary storage of data in a computer system, comprising; a plurality of internal storage registers residing within a single integrated circuit package; first input control means for writing data into a selected internal register; second input control means for writing data into a selected internal register; said first and second control means each including a write register for receiving an input data word, the data in each write register being subsequently transferred to the internal registers in response to a first control signal; first output control means for reading data from a selected internal register to a first output terminal; and second output control means for reading data from a selected internal register to a second output terminal; bypass means for selectively transferring data from the write registers directly to the first and second output terminals without being stored in the internal registers; said input and output control means being independently operable to facilitate simultaneous writing into two internal registers and reading from two internal registers; and said input and output control means residing within the same integrated circuit package as said internal storage registers. 2. Cancel led. 3. Cancel led. 4. Cancelled. 5. A general purpose register according to claim 1 wherein each data input word is comprised of a plurality of bytes, wherein each control means further includes write enable means for selecting which of the bytes of a data input word will be written into the internal registers, wherein the operation of the write enable means is controlled by the first control signals. 6. A general purpose register according to claim 5 wherein each write enable means comprises a write enable register. 7. Cancelled. 8. A general purpose register according to claim 1 wherein the write registers include parity checking means for generating a parity error signal whenever a parity error occurs the input data word. 9. Cancelled. 10. Cancelled. 11. A general purpose register according to claim 1 wherein the bypass means comprises first and second multiplexers, each coupled to a write register and the internal registers, wherein the output lines of the first and second multiplexers are coupled to the first and second output terminals respectively. _\fS ~ EA OMPI O 12. A general purpose register for storage of data in a computer system, comprising: a plurality of internal storage registers residing within a single integrated circuit package; first input control means for writing a first input data word into a selected one of said plurality of internal registers; second input control means for writing a second input data word into another, selected internal register, each data word being comprised of a plurality of data sections, and each input control means including enable means for determining which data sections of a data word are to be written into the selected internal registers; first output control means for reading data from a selected one of said internal registers to a first desired output terminal; second output control means for reading data from another selected internal register to a second desired output terminal; said input and output control means being independently operable to facilitate simultaneous writing into two internal registers and reading from two internal registers, and said input and output control means residing within the same integrated circuit package as said internal storage registers. 13. A general purpose register according to claim 12 wherein each input control means includes a write register for receiving a data word, said enable means determining which data sections of the data word in each write register is to be written into the internal registers and each output control means including output enabling means for determining which data sections of a selected data word in an internal register are to be read to the desired output terminal. 14. Cancelled. 15. Cancelled. 16. A general purpose register according to claim 13 wherein each input control means includes addressing means for selecting an internal register to which data is to be transferred. 17. A general purpose register according to claim 16 wherein the addressing means of each input means can simultaneously address the same internal register, whereby predetermined data sections from each of the write registers can be written into a single internal register. 18. Cancelled. 19. A general purpose register according to claim 13 further including bypass means for bypassing the internal registers and transferring predetermined data sections of the data words in the write registers directly to the output terminals, whereby data sections from the internal registers and write registers can be combined to form desired output data words. 20. An integrated circuit chip comprising: undedicated circuitry comprising a first array of complementary MOS transistor pairs, wherein the transistors are selectively interconnected to perform desired functions; and general purpose register circuitry comprising a second array of complementary MOS transistor pairs, said general purpose register circuitry comprising a plurality of internal storage registers, first input control means for addressing the internal registers to provide an input data word thereto, second input control means for addressing the internal registers to provide an input data word thereto, first output control means for addressing the internal registers to obtain a data word therefrom, and second output control means for addressing the internal registers to obtain a data word therefrom, wherein each of the control means addresses the internal registers independently, thereby facilitating simultaneous writing of data into two internal registers and reading of data from two internal registers. 21. An integrated circuit chip as defined i -claim 20 wherein said internal storage registers comprise a pair of inverter circuits connected in a loop such that the output of one is connected to the input of the otber, and further including means for selectively connecting either input or said pair of inverter circuits to one of two input signal lines, and means for selectively connecting either output or said pair of inverter circuits to one of two output signal lines.

Inventors: CHIANG MICHAEL, HWANG TIEN-LAI, ZASIO JOHN J, CHIANG, MICHAEL, HWANG, TIEN-LAI, ZASIO, JOHN, J.
Applicants: STORAGE TECHNOLOGY PARTNERS
Application year: 1984
Main classification: G06F13
IPC codes: G06F7, G06F9, G11C7, G11C8