|
|
|
| Unit | | | Integer ALU (32b) | | | Bypass | | | Integer reg. | | | Shifter | | | Incrementor | | | I-fetch/PC unit | |  |
|
|
|
|
PC chain |
|
|
|
| |  |
|
|
|
|
Cache miss logic |
|
|
|
| | | 2 TLBs (Assumes use of PID) | |  |
|
|
|
|
32b virtual to 24b real |
|
|
|
| | | Decode + control | | | Cache controller | | | Bus logic | | | Store buffer + bypass | | | Load/store byte support | | | Clock generator | | | Subtotal integer | |
|
|
|
|
|
|
Most of the preceding data is empirically determined. The TLB requires some discussion, as it occupies almost a third of the base area of the integer processor. The dual TLBs (one for IF and one for DF/DS) are assumed to consist of single-ported register sets (i.e., one TLB bit = 1 rbe). This is consistent with fast TLB access requirements. Each TLB is assumed to be 2-way set associative with a total of 128 entries (64 ´ 2). Each entry (4KB pages) has a 14-bit virtual address tag (32b - 12b(byte in a page address) - 6b(TLB entry address)) and a 12-bit real address (24b - 12b). Also, the entry contains a 4-bit PID (process ID number) and 4 bits of control information (LRU, R/W, etc.). See Chapter 5 for further discussion. Summing up, this gives 34 bits/entry or about 4,352 rbe per TLB (34 ´ 128). From our earlier discussion, we know that 1,481 rbe occupies 1 mm2 = 1A. Thus, including MUX and comparitors, a single TLB occupies about 3A. We assume that two TLBs will be used: one for data fetching and one for instruction fetching. Since instruction fetches frequently are simply in-line fetches, it might be possible to have both instructions and data share the same TLB. However, for the moment we choose not to do that, and show two separate TLBs. This correspondingly implies that we have two separate caches, an I-cache and a D-cache. |
|
|
|
|
|
|
|
|
Floating Point It has been empirically determined that a floating-point adder occupies the area corresponding to 13.5 times the integer ALU. For our floating-point multiplier, we assume a high-speed two-pass multiplier, which will occupy 1.5 times the floating-point adder area. The divider uses the multiplier hardware. This combination provides a performance of the following: |
|
|
|
|
|