Title: Impact of Machine Architectures
1Impact of Machine Architectures
- Juan Carlos Guzmán
- CS 6123 Theory Implementation of Programming
Languages - Southern Polytechnic State University
2Machines
Von Neumann Machine
- Hardware computer that built out of wires,
gates, circuit boards, etc. - An elaboration of the Von Neumann Machine
- Software simulated computer that implemented in
software, which runs on top of another computer
- Data
- Primitive Operations
- Sequence Control
- Data Access
- Storage Management
- Operating Environment
3Why So Many Computers?
- It is economically feasible to produce in
hardware (or firmware) only relatively simple
computers - More complex or abstract computers are built in
software
4A Six-Level Computer
Applications
Level 5
Application Level
Compilers, Editors, Navigators
Software
Level 4
Assembly Language Level
Assembler, Linker, Loader
Level 3
Operating System Machine Level
Operating System
Level 2
Instruction Set Architecture Level
Hardware
Microprogram or hardware
Level 1
Microarchitecture Level
Hardware
Level 0
Digital Logic Level
from Andrew S. Tanenbaum, Structured Computer
Organization, 4th Edition, Prentice Hall, 1999.
5Virtual Computers
- How can we execute programs written in the
high-level computer, given that all we have is
the low-level computer? - Compilation
- Translate instructions to the high-level computer
to those of the low-level - Simulation (interpretation)
- create a virtual machine
6A Web Application
Input
Output
Web Application Computer (HTML web pages)
Web Virtual Computer (Navigator implemented in C
or Java)
C Virtual Computer (standard C libraries)
Operating System Virtual Computer (implemented in
machine Instructions)
Firmware Virtual Computer (implemented in
microcode)
Actual Hardware Computer
7Binding
- Binding an association between an attribute and
an entity - Binding Time when does it happen?
- and, when can it happen?
8Binding Time
- Static
- Language definition time
- Language implementation time
- Program writing time
- Compile time
- Link time
- Load time
- Dynamic
- Run time
- At the start of execution (program)
- On entry to a subprogram or block
- When the expression is evaluated
- When the data is accessed
9Attributes
- Value (10)
- Value representation (10102)
- big-endian vs. little-endian
- Type (int)
- Storage (4 bytes)
- stack or global allocation
- Scope
- lexical or dynamic scope
10Little- vs. Big-Endians
- Big-endian
- A computer architecture in which, within a given
multi-byte numeric representation, the most
significant byte has the lowest address (the word
is stored big-end-first'). - Motorola and Sun processors
- Little-endian
- a computer architecture in which, within a given
16- or 32-bit word, bytes at lower addresses have
lower significance (the word is stored
little-end-first'). - Intel processors
from The Jargon Dictionary - http//info.astrian.n
et/jargon
11Static vs. Dynamic Scope
- Under lexical scope, sub1 will always reference
the x defined in big - Under dynamic scope, the x it references depends
on the dynamic state of execution
- procedure big
- var x integer
- procedure sub1
- begin sub1
- ... x ...
- end sub1
- procedure sub2
- var x integer
- begin sub2
- ...
- sub1
- ...
- end sub2
begin big ... sub1 sub2
... end big