Electrical computers and digital processing systems: memory – Storage accessing and control – Specific memory composition
Reexamination Certificate
2002-03-29
2004-04-06
Kim, Matthew (Department: 2186)
Electrical computers and digital processing systems: memory
Storage accessing and control
Specific memory composition
C711S109000, C711S149000, C711S170000
Reexamination Certificate
active
06718429
ABSTRACT:
1. FIELD OF THE INVENTION
The present invention relates to the field of architecture design of data processing devices. More specifically, the invention is dealing with architecture design and functionality issues of register files used inside data processing devices.
2. CONVENTIONS, DEFINITION OF TERMS, TERMINOLOGY
The term ‘data processing device’ has a very broad meaning and stands for terms like microprocessor, central processing unit (CPU), digital signal processor (DSP), application specific integrated circuit (ASIC), application specific standard product (ASSP), application specific instruction set processor (ASIP). The term ‘register file’ has the same meaning as used throughout the literature and is intimately related to the terms ‘microprocessor’, ‘CPU’ and ‘DSP’. A register file represents an important building block of a data processing device (microprocessor, CPU, DSP). It comprises a set of registers used to store intermediate computation results as well as to store data loaded from memory/cache. Usually, a register file has one or more read and write ports as well as one or more read and write address ports. The write/read address ports determine the registers to/from which data are written/read respectively. A complete description of usual (conventional) register files is given in section 3. As mentioned before, the present invention is dealing with architecture design and functionality issues of register files. Although the scope of the present invention is independent of any specific register-transfer level architecture and implementation of a register file, the description of the drawings in section 4 will rely on a specific register-transfer level architecture, this with the goal to ease the explanation of the exact functionality of such a register file.
The register-transfer level architecture of a register file can be thought of as consisting of a limited number of elementary building blocks with which the register file is built up. It typically comprises registers, crossbars and multiplexers as address logic. The register-transfer level architecture of a register file is an equivalent graphical representation of the functionality of a register file. Furthermore, the functionality of a register file can be exactly deduced from a given register-transfer level architecture. Therefore, the register-transfer level architecture is a convenient means to explain the functionality of a register file. Usually, implementation details like amplifiers, buffers, latches and registers which might be inserted between or inside elementary building blocks, are not considered as being relevant for the register-transfer level architecture since, although they may change the timing (due to the insertion of buffers, latches and registers), they do not change the functionality. Follows some terminology concerning crossbars. A crossbar is a building block that makes connections between its data inputs and data outputs via the signals which are applied to the control inputs of the crossbar. A fully connected crossbar is able to connect any data input to one, more or even all data outputs. A partially connected crossbar is able to connect any data input to one or more but not all data outputs. Multiplexers/demultiplexers are crossbars with one data input output and one or more data outputs/inputs respectively.
In all the figures that follow, arrows represent either bussed connections between building blocks or between bussed inputs and bussed outputs of building blocks, where the bus width of a bussed connection or of a bussed input and output is equal to one or more bits.
3. PRIOR ART
In the following sections, it is assumed that all mentioned ports and inputs are driven by digital signals having a finite set of possible values, this set usually comprising at least logical ‘0’, logical ‘1’ and high impedance ‘Z’.
FIG. 1
shows the register transfer level architecture of a ‘conventional’ register file as based on the prior art and which contains several data read and data write ports. The data write ports are connected to the data inputs of a crossbar whose data outputs are connected to the data inputs of the registers of the register file. The data outputs of the registers are connected to the data inputs of a second crossbar whose data outputs are connected to the data read ports of the register file. The connections made by the two crossbars are controlled by the address signals applied to the write and read address ports, the write and read address ports being connected to the control inputs of said crossbars. In this way, the values applied to the write address ports determine the registers whose contents are going to be (over)written with the values applied to the data write ports of the register file whereas the values applied to the read address ports determine the registers whose contents are going to be read out via the data read ports. Normally, there are as many read and write address ports as there are data read and write ports of the register file. Furthermore, to each read port and each write address port is normally associated one data read and one write port respectively. Usually, as many register contents can be read simultaneously as there are data read ports. The same holds true for the write address ports data and write ports, with the exception that it is normally forbidden that two write address ports specify the same register to be written with two different values. Finally, it should be noted that normally register files have a clock input which is connected to the clock input of the registers of the register file. It means that the writing or reading of a specific register content happens either on the falling or on the rising edge of said clock signal. In other words the registers are clocked either on the falling or rising clock edge of said clock signal while the read and write address signals applied to the read and write address ports as well as the values applied to the write ports must be valid on the rising or falling clock edge.
A major drawback of such a conventional register file is that it does not support register renaming by itself. Register renaming is required to increase instruction level parallelism in order to achieve higher data processing rates and performance without deteriorating the utilization of the register file. Therefore, with such a conventional register file register renaming is only possible with additional hardware circuitry doing dynamic register (re)allocation and scheduling. This however implies higher power consumption as well as higher implementation and production costs.
The configurable register file as based on the present invention allows to solve this problem by inherently performing register renaming with only a small hardware overhead.
4. SUMMARY OF THE INVENTION
The present invention concerns a register file of a data processing device (microprocessor, DSP, CPU) according to claim
1
.
REFERENCES:
patent: 5493687 (1996-02-01), Garg et al.
patent: 5523979 (1996-06-01), Nemazie
patent: 5828623 (1998-10-01), Dilbeck
patent: 5835405 (1998-11-01), Tsui et al.
patent: 6343356 (2002-01-01), Pechanek et al.
patent: 6370637 (2002-04-01), Meier et al.
patent: 2001/0014930 (2001-08-01), Soderquist
patent: 0657802 (1995-06-01), None
patent: WO-99-61997 (1999-12-01), None
International Search Report, Application No. PCT/EP00/08178, pp 1-3, Jul. 16, 2001.*
Ercanli et al., “A Register File and Scheduling Model for Application Specific Synthesis,” pp 35-40, IEEE, Jun. 1996.*
Zalamea et al., “Two-level Hierarchical Register File Organization for VLIW Processors,” pp137-146, IEEE, Dec. 2000.*
Lopez et al., “Widening resources: a cost-effective technique for aggressive ILP architectures,” pp 237-246, IEEE, Dec. 1998.
AnteVista GmbH
Elmore Stephen
Kim Matthew
LandOfFree
Configurable register file with multi-range shift register... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Configurable register file with multi-range shift register..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Configurable register file with multi-range shift register... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3257053