340 likes | 457 Views
International Technology University CEN 951 Computer Architecture Lecture 1 - Introduction. Introduction. Rapidly changing field: vacuum tube -> transistor -> IC -> VLSI Doubling every 1.5 years memory capacity processor speed ( Due to advances in technology and organization).
E N D
International Technology UniversityCEN 951 Computer ArchitectureLecture 1 - Introduction
Introduction • Rapidly changing field: • vacuum tube -> transistor -> IC -> VLSI • Doubling every 1.5 years • memory capacity • processor speed (Due to advances in technology and organization)
Intel 4004 1971 • Note: • 16 wires bonded • lines in parallel are buses • function modules are rectangular
Pentium IIIb1997 • Bond pads on border • buses are parallel lines • function blocks rectangular
Processor speed in MIPS Processor speed increases by factor 10 each 5 years
Growth of DRAM chip capacity DRAM capacity grows by factor 10 each 5 years
Things you’ll be learning: • How computers work, a basic foundation • How to analyze their performance (or how not to!) • Issues affecting modern processors (caches, pipelines) Why learn this stuff? • You want to call yourself a “computer scientist” • You want to build software people use (need performance) • You need to make a purchasing decision or offer “expert” advice • You want to understand specs of current Pentium
Components: input (mouse, keyboard) output (display, printer) memory (disk drives, DRAM, SRAM, CD) network Our primary focus: the processor (data-path and control) implemented using millions of transistors Impossible to understand by looking at each transistor We need…abstraction What is a computer?
PC motherboard in case with cooling for CPU, daughter boards for peripherals
High Level Low Level User Level: Application Programs High Level Languages Assembly Language / Machine Code Micro-programmed / Hardwired Control Functional Units (Memory, ALU, etc.) Logic Gates Transistors and Wires 7 Layer model for architecture
Abstraction • Delving into the depths reveals more information • An abstraction • omits unneeded detail • helps us cope with complexity • What are some of the details that appear in these familiar abstractions?
swap( int v[ ], int k) { int temp; temp = v[ k]; v[ k] = v[ k+ 1]; v[ k+ 1] = temp; } swap: muli $2, $5, 4 add $2, $4,$2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 High- level language program (in C) and equivalent assembler code $5=k , $4=addr of v[0] v[k] v[k+1] return from routine
swap: muli $2, $5, 4 add $2, $4,$ 2 lw $15, 0($ 2) lw $16, 4($ 2) sw $16, 0($ 2) sw $15, 4($ 2) jr $31 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000 Assembly language program (for MIPS), and binary machine language program (for MIPS) These 32 bit codes are not exactly the MIPS codes!!
Instruction Set Architecture • A very important abstraction • interface between hardware and low- level software • standardizes instructions, machine language bit patterns, etc. • advantage: • different implementations of the same architecture • disadvantage: • sometimes prevents using new innovations
Modern instruction set architectures 80x86/ Pentium/ K6, PowerPC, DEC Alpha, MIPS, SPARC, HP
Where we are headed • Performance issues, vocabulary and motivation • A specific instruction set architecture • Arithmetic and how to build an ALU • Constructing a processor to execute our instructions • Pipelining to improve performance • Memory: caches and virtual memory • I/ O • Assembler programming
coherent collaborative connected extensible flexible hidden instrumented maintainable open reusable robust scalable secure transportable Desirable features of systems
coherent • made of individual components with defined interfaces, unaffected by changes in implementation of other components
collaborative • data and transactions work across environments from different vendors and implementations
connected • information and functionality are available by defined interfaces, paths and connections from elsewhere in the system
extensible • the system components can be extended to new unanticipated contexts and situations
flexible • performance degrades gradually allowing time for corrective action with evolving business context and environment
hidden data • interfaces are well defined, complexity of implementation is hidden, simplicity of design is presented
instrumented • the system is provided with built in sensors or data gathering devices for system diagnostics
maintainable • useful life of the system can be prolonged by routine attention to features that change or wear out
open • implemented in publicly available standards
reusable • components are well defined, subjected to configuration management, and documented so that they can be used again in different contexts
robust • able to adapt to changing requirements and contexts, allowing for effective modification, administration and management; gradual degredation under stress
scalable • performance improves linearly or nearly linearly as system components are added to handle additional data volume, users and processing requirements
secure • defensible against intentional or accident attack or damage
transportable • components of the system can be installed in a variety of implementations • Also consider: • Security • Availability • Performance