200 likes | 602 Views
Advanced Computer Architecture. George Wells. Course Overview. Background Historical SPARC Architecture Modern Trends in Computer Architecture Quantitative assessment (price/performance) Pipelining Superscalar and VLIW Architectures Memory Hierarchies Vector Processing Input/Output
E N D
Advanced Computer Architecture George Wells
Course Overview • Background • Historical • SPARC Architecture • Modern Trends in Computer Architecture • Quantitative assessment (price/performance) • Pipelining • Superscalar and VLIW Architectures • Memory Hierarchies • Vector Processing • Input/Output • Future Trends
Historical Background • First Generation (1950 – 1959) • Vacuum Tube Technology • Second Generation (1960 – 1968) • Transistor Technology • 1964: IBM coined the term “Computer Architecture” • Third Generation (1969 – 1977) • Integrated Circuits • Fourth Generation (1978 – ?) • Large and Very/Ultra Large Scale Integration
RISC • Reduced Instruction Set Computing • Proposed by Patterson and Ditzel in 1980
The SPARC Architecture • SPARC: • Scalable Processor ARChitecture • Programming Model • Instruction Set
l2 i6 i0 i2 o6 l0 i4 l6 o0 o2 o4 l4 l7 l3 o3 i1 o1 i3 i7 o7 o5 l1 i5 l5 SPARC Programming Model Twenty-four “window” registers:
Y (multiply step) g0 g2 g4 g6 PSR NZVC S –cwp- g5 g3 g1 g7 TBR WIM PC nPC SPARC Programming Model (cont.) Eight “global” registers, and control registers:
SPARC Instruction Set • Load/Store operations • Arithmetic, logical and shift operations • Control transfer • Control register access • Floating point (or other coprocessor) operations
Assembling and Linking • Use the GNU C compiler (gcc): % gcc -g prog.s -o prog
Macros • Use m4 • Generic UNIX text macro processor
Debugging • Use the GNU debugger (gdb): % gdb prog
A First Example • Temperature conversion
SPARC Program /* This program converts a temperature in Celcius to Fahrenheit. George Wells - 30 May 2003 */ offs = 32 /* Variables c and f are stored in %l0 and %l1 */ .global main main: mov 24, %l0! Initialize c = 24 mov 9, %o0! 9 into %o0 for multiplication mov %l0, %o1! c into %o1 for multiplication call .mul ! Result in %o0 nop ! Delay slot mov 5, %o1! 5 into %o1 for division call .div ! Result in %o0 nop ! Delay slot
Example (cont.) ... add %o0, offs, %l1 ! f = result + offs mov 1, %g1! Trap dispatch ta 0 ! Trap to system