|
|
|
|
| THE INSTRUCTION PIPELINE |
 |
MPC755 implementation : superscalar operation, out-of-order execution, register renaming, serializations, isync instruction. |
 |
Branch processing unit : BTIC, static prediction vs dynamic prediction, speculative loads, guarded memory. |
 |
Branch instructions. |
 |
Coding guidelines. |
| DATA AND INSTRUCTION PATHS |
 |
Load / store buffers |
 |
Sync and eieio instructions |
 |
Store gathering mechanism |
| CACHES |
 |
Cache basics |
 |
L1 caches: PLRU algorithm |
 |
Shared resource management |
 |
Cache coherency mechanism |
 |
The MEI state machine |
 |
Management of cache enabled pages shared with PCI DMAs |
 |
Reservation coherency, management of Boolean semaphores in a multi-processor system |
 |
Cache related instructions |
 |
Cache flush routine |
 |
The L2 cache, organization, replacement algorithm |
 |
Implementation of a private memory |
| SOFTWARE IMPLEMENTATION |
 |
PowerPC architecture specification, the 3 books UISA, VEA and OEA |
 |
7XX registers |
 |
addressing modes |
 |
Integer instructions |
 |
IEEE754 basics |
 |
Floating point load / store instructions |
 |
Floating point arithmetical instructions |
 |
The PowerPC EABI |
 |
Linking an application with Diab Data |
| THE MMU |
 |
Thread vs process |
 |
Introduction to real, block and segmentation / pagination translations |
 |
Memory attributes and access rights definition |
 |
Virtual space benefit, page protection through segmentation |
 |
TLBs organization |
 |
Segmentation : process ID definition |
 |
Pagination : PTE table organization, tablesearch algorithm |
 |
Benefits of the software tablewalk in comparison with the hardware tablewalk |
 |
MMU implementation in real-time sensitive applications |