01.02.2013 Views

Chapter 4 PA-RISC Computer Systems - OpenPA.net

Chapter 4 PA-RISC Computer Systems - OpenPA.net

Chapter 4 PA-RISC Computer Systems - OpenPA.net

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>PA</strong>-<strong>RISC</strong> Instruction Set Architecture Block Transition Lookaside Buffer (BTLB)<br />

� Software: If software TLB miss handling is implemented, a TLB miss fault interruption routine<br />

performs the translation. It inserts the translation and protection fields in the TLB and afterward<br />

restarts the interrupted routine, in which the TLB miss occurred.<br />

2.3.4 Block Transition Lookaside Buffer (BTLB)<br />

Similar as the TLB, the BTLB provides virtual-to-physical address translations. However the BTLB<br />

maps large address ranges rather that single pages as the TLB does. These large address ranges are<br />

called block translations and therefore stored in the Block Translation Lookaside Buffer. These block<br />

translations are useful for virtual address ranges that do not get paged in or out.<br />

BTLBs were only implemented on 32-bit <strong>PA</strong>-<strong>RISC</strong> processors (<strong>PA</strong>-7x00), the 64-bit versions instead<br />

implement variable page sizes, thus any entry can be of >4k mapping.<br />

2.3.5 Superscalar execution<br />

Overview<br />

A superscalar processor implementation decodes, dispatches and executes multiple instructions per<br />

cycle if dependencies between the instructions permit. This is possible if the instruction stream contains<br />

independent instructions. Superscalarity can be easily gained from an decoupled floating point unit<br />

(FPU) which executes floating point operations (calculations) indepently from the (integer) ALU. More<br />

complicated variations allow for parallel load/store operations, integer calculations et al, which need a<br />

more complex CPU design that analyzes the instructions/branches.<br />

Every <strong>PA</strong>-<strong>RISC</strong> processor from the <strong>PA</strong>-7100 upwards implements superscalar execution. Instructions<br />

proceed together through the execution pipeline which is called instruction bundling. The superscalar<br />

execution is functionally transparent to the software, the effects of any given instruction are the same<br />

whether it was executed as part of a bundle or alone. Bundling rules are applied at run-time by the<br />

hardware; optimal performance may only be gained by proper ordering of the instructions so the<br />

processor can use its full superscalar potential.<br />

Several kinds of restrictions are placed upon the instruction bundling:<br />

� Functional unit contention<br />

� Data dependency restrictions<br />

� Control flow restrictions<br />

� Special instruction restrictions<br />

For bundling purposes, all instruction are divided into classes:<br />

Table 2.3: <strong>PA</strong>-<strong>RISC</strong> superscalar instruction classes<br />

Class Description<br />

FLOP Floating point operation<br />

LDST Loads and stores<br />

ALU Integer ALU<br />

MM Shifts, extracts, deposits<br />

NUL Might nullify successor<br />

BV Branch Vectored (BV) local, Branch (BE) external<br />

BR Other branches<br />

FSYS FTEST and FP status/exception<br />

44

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!