diff options
| author | mo khan <mo@mokhan.ca> | 2021-04-05 17:32:12 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2021-04-05 17:32:12 -0600 |
| commit | 75cc38d6bdc522bbfe9c883fc6e68446a748d8f2 (patch) | |
| tree | e66706ba3751bc542ed9e06cb60248414b05c9c4 | |
| parent | eede021ddfb074cf931cc15fb2ee082b4883a4eb (diff) | |
logical vs. physical address space
| -rw-r--r-- | doc/8.md | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -72,3 +72,34 @@ Each binding is a mapping from one address space to another. * Load time binding: The compiler generates `relocatable code` where final binding is delayed until load time. * If the starting address changes, then we need to reload the user code to adjust. * Execution time binding: binding can be delayed until run time but special hardware must be available for this scheme to work. + +## Logical vs. Physical Address Space + +CPU generated addresses are referred to as a `logical address`. +An address seen by the memory unit, i.e. loaded into the `memory-address register`, +is called `physcial address`. + +The compile-time and load-time address-binding methods generate identical logical and physical addresses. +Execution-time addresses result in differing logical and physical addresses. + +```plaintext + ------------ + | | + | | + |------------| | | + | relocation | | | + | register | | | + | | | | + | | 14000 | | | | + | | | | +------- | _ | | | +| CPU | --> logical address --> | (+) | ---> physical address --> | memory | +------- 346 | - | 14346 | | + | | | | + | | | | + |------------| | | + MMU | | + | | + | | + ------------ +``` |
