Commit 75cc38d
Changed files (1)
doc
doc/8.md
@@ -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 | |
+ | |
+ | |
+ ------------
+```