480 likes | 633 Views
Essentially……. I would like this to be an interactive class. We will try and deal with many practical and useful examples. Interrupt me If I am too fast,vague,if you need more explanation. I Will make some sense of hardware for your software brains. What is a Computer?.
E N D
Essentially…… • I would like this to be an interactive class. • We will try and deal with many practical and useful examples. • Interrupt me If I am too fast,vague,if you need more explanation. • I Will make some sense of hardware for your software brains. COA-Lecture-1
What is a Computer? • Historically, a computer was a job title, not a piece of equipment! • A machine for performing calculations automatically. • The ability to store and execute lists of instructions called programs makes computers extremely versatile, distinguishing them from calculators. • A machine that manipulates store/input information (data) according to a set of instructions(programs). • Is one which I use to “chat” and send “emails”. • A keyboard with a monitor and an electronic box. • Piece of electronic hardware circuits (with some human interface devices) on which I – a software professional run a program. COA-Lecture-1
Why should you study Computers? • The computer lies at the heart of computing. Without it most of the computing disciplines today would be a branch of theoretical mathematics. To be a professional in any field of computing today, one should not regard the computer as just a black box that executes programs by magic. All students of computing should acquire some understanding and appreciation of a computer system's functional components, their characteristics, their performance, and their interactions. There are practical implications as well. Students need to understand computer architecture in order to structure a program so that it runs more efficiently on a real machine. In selecting a system to use, they should to able to understand the trade off among various components, such as CPU clock speed vs. memory size. (From IEEE/ACM Computing Curricula 2001). COA-Lecture-1
So why should a S/W guy(also gal) know about H/W? • What is a software program without a platform to execute it? • How will you write an executable program without knowing the platform on which it must run? • How will you optimize your program? and tune the system . • What if you want to write compilers. • What if you ever need to model large, complex, real-world systems. • What if you wish to design peripheral equipment or the software that drives peripheral equipment. • What if you wish to design embedded systems. COA-Lecture-1
What is Architecture?(Various views) • Baer: “The design of the integrated system which provides a useful tool to the programmer” • Hayes: “The study of the structure, behaviour and design of computers” • Abd-Alla: “The design of the system specification at a general or subsystem level” • Foster: “The art of designing a machine that will be a pleasure to work with” • Hennessy and Patterson: “The interface between the hardware and the lowest level software” COA-Lecture-1
All the above summarily means…. • Architecture is collection of attributes of the system that are visible to a programmer(But many times not limited to only visible attributes) • Those attributes that have a direct impact on the execution of a program • Instruction sets(Is there a “ADD”) • Data representations( How many bits 16/32/64?) • Addressing [Register mode…] (“Add” R4,R3 R4 <- R4 + R3. When a value is in a register) • I/O(Does your computer have a MIC /Speaker?) COA-Lecture-1
So what is Organization then? • Some people say architecture encompasses • Instruction set design • Organization • System design.(Is dealt in this course..but not openly specified) • There is a subtle difference between organization and architecture though.(But often blurred) • Organization is that which defines how an architecture is implemented. • Usually not visible to the programmers. • So is often used synonymous with “architecture” . COA-Lecture-1
IT means • Organization talks about the structure of the computer with which a particular architecture is implemented. • Example :- • How much memory? ( 3 GB ) • How many memory slots? ( One/two/three/four) • What is the speed of your processor? (1.66 Ghz/ 700 Mhz) • How is multiplication done? (By repeated addition or by a separate multiplier unit?) COA-Lecture-1
How will you understand a computer? • Through its structure and function • Structure is the way in which components relate to each other. • Function is the operation of individual components as part of the structure. • There are many levels and many views • We will visit them in a while • All computer functions are either • Storage • Processing • Movement • Control COA-Lecture-1
Structure –How does a computer look?Different Views We will use (TOP Down approach at) the Functional unit level COA-Lecture-1
Components of the Computer Structure (Not exhaustive but basic) • Central Processing unit(CPU) Controls the operation and performs its data processing function. Often referred to as processor. • Main memory :-That which stores data. • System Interconnection :- Some mechanism that provides for communication among CPU main memory and I/O. • Control unit:-Controls the operation of the CPU and hence the computer. • Arithmetic and logic unit(ALU) Performs the computer’s data processing functions., • CPU Interconnection :- Some mechanism that provides for communication among the control unit ALU and registers. COA-Lecture-1
Structural Views In all these views we see the various functionalities of different structures of the computer. COA-Lecture-1
Functional View :- Processing Operation:- Processing from storage to I/O • Processing-The computer must do a particular course of action intended to achieve a result. • There are many processing requirements • But only few data processing types (seen later in the course) Operation:- Processing from/to storage COA-Lecture-1
Functional View :- Data Storage • Data storage facility:-Computers must “retain” data for future use.(in order of few nano (10^-9 seconds) to years). • Even if it is on the fly(data come in get processed and results given immediately) it needs to be stored it temporarily. Operation :- Storage COA-Lecture-1
Functional View :- Data Movement • Data movement :- A computer must data within( between internal functional components) and to the outside world(peripheral – An external device etc)and between both. • I/O generally refers to the data movement between a computer and a peripheral • Any movement of data to another computer is called data communication. Operation :-Data movement COA-Lecture-1
Functional View :- Control • A component that has the power to direct and determine the course of action and hence provide (to the rest of the functional components ) some instructions. • This manages the resources. • Orchestrates the performance of the rest of the functional components. • In the previous slides you would have seen that every arrow -flow is through the control mechanismBUT for one function. • Does that mean you don’t need to control “mechanism” to do processing from storage to I/O? COA-Lecture-1
Going back ..Architecture (VS) Organization Computer Architecture deals with the functional behaviour of a computer system as viewed by a programmer. This view includes aspects such as the sizes of data types (e.g. using 16 binary digits to represent an integer), and the types of operations that are supported (like addition, subtraction, and subroutine calls). Computer organization deals with structural relationships that are not visible to the programmer, such as interfaces to peripheral devices, the clock frequency, and the technology used for the memory. The perspective of programmers The perspective of engineers An architecture can have different organizational implementations. Architecture Organization COA-Lecture-1
So why study both of them? • They complement each-other. • Both affect the way in which a computer perform and directly impact the capability /performance of a computer. • The more you know about both the better computer professional you will be. • Like how an experienced biker knows which is the best and pleasurable bike to drive. COA-Lecture-1
The evolution of computers • 1st generation computers • Vacuum tube, 1946-1957, 40K operations/sec • 2nd generation computers • Transistor, 1958-1964, 200 K operations/sec • 3rd generation computers • SSI, MSI, 1965-1971, 1 M operations/sec • 4th generation computers • LSI, 1972-1977, 10 M operations/sec • 5th generation computers • VLSI, 1978 to date, 100 M operations/sec COA-Lecture-1
Vacuum Tubes :- ENIAC . 1943-46, ENIAC (Electronic Numerical Integrator and Calculator) by J Mauchly and J. Presper Eckert.first general purpose electronic computer. A program was created manually by setting switches and plugging & unplugging cables. It used 18,000 tubes, weighted 30 tones and had a performance of 5,000 ops/sec. Occupied 15,000 square feet and consumed 140kw. Did 5,000 additions per second More than decimal than binary. It had a card reader, a printer and a card punch COA-Lecture-1
Van Neumann • Introduced the concept of stored program* • Main memory storing programs and data • ALU operating on binary data • Control unit interpreting instructions from memory and executing • Input and output equipment operated by control unit • The first proto-type digital computer called the IAS was built on van-Neumann model. • All most all of today’s(with rare exception) computers are extension of IAS.(with slight modification)** *Some controversy about who did that first ** Some do-not accept it. COA-Lecture-1
The IAS-Computer- Specific parts • The IAS machine was the first electronic digital computer built by the Institute for Advanced Study (IAS) Princeton, NJ USA. The paper describing the design of the IAS machine was edited by John von Neumann. • He conceptualized a computer with the following critical blocks • CA(The first specific part) :- Central arithmetic to do all arithmetic operations • CC(The second specific part) :- Central control responsible of logic control that proper sequencing of operations. • M(The third specific part) :-The total memory constitutes the third specific part of the device.(Many different parts of memory must do a different function but you can group them together). • R:-An outside recording medium –with very less human intervention to maintain the input and output. • I(The fourth specific part) :-To transfer inputs from R to Cthrough M and not directly into CA/CC. • O(The fifth specific part) :-To transfer the output from C to Rthrough Mand not directly to R. • ***This means one can have different type of storage (i.e) memory. COA-Lecture-1
The IAS -Basics • Stored-Program concept • Main memory stores both data and instructions • Arithmetic and logic unit (ALU) capable of operating on binary data • Control unit, which interprets and executes the instructions in memory • Input and output (I/O) equipment operated by the control unit COA-Lecture-1
IAS Structure • 1000 x 40 bit words • Two group of words(Data/Instruction) • Binary number • 2 x 20 bit instructions • Set of registers (storage in CPU) • Memory Buffer Register • Memory Address Register • Instruction Register • Instruction Buffer Register • Program Counter • Accumulator • Multiplier Quotient COA-Lecture-1
IAS :- Word Formats COA-Lecture-1
IAS –Register and their functions • The control unit operates the IAS by fetching instructions from memory and executing them one at a time. • The control unit and the ALU contain storage locations, called registers. • Memory buffer register (MBR): contains a word to be stored in memory, or is used to receive a word from memory. • Memory address register (MAR): specifies the address in memory of the word to be written from or read into the MBR. • Instruction register (IR): contains the 8-bit opcode(operation code specifies the operation to be performed) instruction being executed. • Instruction buffer register (IBR): employed to hold temporarily the right hand instruction from a word in memory. • Program Counter (PC): contains the address of the next instruction-pair to be fetched from memory. • Accumulator (AC) and multiplier quotient (MQ): employed to hold temporarily operands and results of ALU operations. COA-Lecture-1
Partial Flow Chart of IAS Operation COA-Lecture-1
IAS Operation • The IAS operates by repetitively performing an instruction cycle. • Each instruction cycle consists of two sub cycles. • Fetch cycle: • The opcode of the next instruction is loaded into the IR and the address portion is loaded into the MAR. This instruction may be taken from the IBR, or it can be obtained from memory by loading a word into the MBR, and then down to the IBR, IR, and MAR. • Execute cycle: • The control circuitry interprets the opcode and executes the instruction by sending out the appropriate control signals to cause data to be moved or an operation to be performed by the ALU. COA-Lecture-1
IAS Operation • The IAS computer had 21 instructions which can be grouped as follows: • Data transfer: To move data between memory and ALU registers or between two ALU registers. • Unconditional branch: Used to facilitate repetitive operations. • Conditional branch: Branch can be made dependent on a condition, thus allowing decision points. • Arithmetic: Operations performed by the ALU. • Address modify: Permits address to be computed in the ALU and then inserted into instructions stored in memory. COA-Lecture-1
IAS Instruction Set COA-Lecture-1
The Rest of Evolution • 1947 - Eckert-Mauchly Computer Corporation • UNIVAC I (Universal Automatic Computer) • US Bureau of Census 1950 calculations • Became part of Sperry-Rand Corporation • Late 1950s - UNIVAC II Faster, more memory • Punched-card processing equipment • 1953 - the 701 • IBM’s first stored program computer Did scientific calculations • 1955 - the 702 • Business applications Lead to 700/7000 series COA-Lecture-1
The Transistor & Micro Electronics Era • Transistors replaced vacuum tubes • Smaller, cheaper, less heat, Same functionality, Solid-state device – made from silicon (sand) • Invented by Bell Labs 1947 • Fully transistorized computers commercially available late 1950s • NCR and RCA first to produce small transistor machines • IBM 7000,Digital Equipment Corporation (DEC) PDP-1 • High-level programming languages Provision of system software with computers • Micro electronics :- Literally - “small electronics” • A computer is made up of gates, memory cells and interconnections • These can be manufactured on a semiconductor • e.g. silicon wafer COA-Lecture-1
Example members of IBM 700/7000 Series(Vacuum tubes-Transistor era) Technology Improvement COA-Lecture-1
IBM 7094 Configuration (Improvements) • Two new structures –Data Channel and Multiplexor. • CPU does not execute detailed I/O instructions. • Data channel gets the “control signal” from CPU fetches such “instruction” from a fixed location memory, executes them in sequence independent of CPU. • Data channel “signals” the CPU once such execution is over. • Data channel has its own dedicated processor and instruction set. • Multiplexor schedules the transfer between memory and the Data channel , memory and the CPU. COA-Lecture-1
The Micro -Electronics era –The invention of IC- Integrated Chip Four basic functions • Data Storage: memory cells • Data Processing: gates • Data Movement: connections (paths) between gates and memory cells • Control: Control signals activate gates and memory and determine whether memory access is read or write • Gates, memory cells and interconnections can be etched into a single piece of silicon. COA-Lecture-1
Moore’s law and its implication • Increased density of components on chip Implication • Number of transistors on a chip will double every year • Since 1970’s development has slowed a little • Number of transistors doubles every 18 months • Cost of a chip has remained almost unchanged • Higher packing density means shorter electrical paths, giving higher performance • Smaller size gives increased flexibility • Reduced power and cooling requirements • Fewer interconnections increases reliability Growth of no of transistors in CPU COA-Lecture-1
Computer Families - IBM System/360 family • Introduced in 1964. • Replaced (& not compatible with) 7000 series • First planned “family” of computers • Similar or identical instruction sets • Similar or identical O/S • Increasing speed • Increasing number of I/O ports (i.e. more terminals) • Increased memory size • Increased cost of higher family members • The above diversity was achieved by speed, circuit complexity, some parallelism increase in data width COA-Lecture-1
Computer Families –DEC PDP • Introduced in 1964 • First minicomputer (named after the miniskirt!) • Did not need air conditioned room • Small enough to sit on a lab bench • $16,000— vs.$100k+ for IBM 360 • Embedded applications & OEM • Introduced the BUS structure (vs. the central switched IBM architecture). • 96 separate signal paths carry address, data and control signals • Easy to plug new modules into bus • Bus is controlled by CPU • Now virtually universal in microcomputers COA-Lecture-1
What is a (Computer) BUS? • A bus, in computing, is a set of physical connections (printed circuits board tracks) which can be shared by multiple hardware components in order to communicate with one another. • The purpose of buses is to reduce the number of "pathways" needed for communication between them. • All data transfer between all components is transmitted by a dedicated set of (grouped) electrical conducting lines. COA-Lecture-1
Memories and Micro-Processors Micro processor Memory • 1970 (Fairchild) • Size of a single core (1 bit of magnetic core storage) • Holds 256 bits • Non-destructive read • Much faster than core • Capacity approximately doubles each year. (From 1k to 1Gb.) • Density increases 4 times every generation. • Cost and access time declines. • Intel 1971 - 4004 • First microprocessor • All CPU components on a single chip • 4 bit • Followed in 1972 by 8008 • 8 bit • Both designed for specific applications • 1974 - 8080 • Intel’s first general purpose microprocessor • Classification by generation became less meaningful after the early 1970’s due to rapid pace of technological development. • Two main developments are still being worked out: • Semiconductor memory • Microprocessors COA-Lecture-1
Intel Processor Evolution COA-Lecture-1
Performance How to design?(Techniques) • Pipelining • On board cache • On board L1 & L2 cache • Branch prediction • Data flow analysis • Speculative execution More about these later sessions Will brief about this in a while COA-Lecture-1
Techniques • Processor looks ahead in instruction stream. • Attempts to predict which branch will be taken by conditional code • Execute predicted branch and hope it’s right • Wrong guess leads to pipeline stall • Processor examines code to determine which instructions are dependent on results of instructions in pipeline • Reorders instructions in code so that independent instructions can be executed in parallel pipelines Data Flow Analysis Branch Prediction • With branch prediction and data flow analysis processor can execute some instructions before they appear in the execution stream • Results stored in temporary locations Speculative Execution COA-Lecture-1
BUT!!!! • Processor speed increased • Memory capacity increased • Memory speed lags behind processor speed. • Peripheral speed? COA-Lecture-1
Performance Balance • Increase number of bits retrieved at one time Make DRAM “wider” rather than “deeper” • Change DRAM interface Cache) • Reduce frequency of memory access More complex cache and cache on chip • Increase interconnection bandwidth High speed buses,Hierarchy of buses Trends in DRAM use COA-Lecture-1
One more thing pending – The Peripherals • Peripherals with intensive I/O demands • Large data throughput demands • Processors can handle this • Problem moving data • Solutions: • Caching • Buffering • Higher-speed interconnection buses • More elaborate bus structures • Multiple-processor configurations COA-Lecture-1
Pentium Evolution COA-Lecture-1