time step first instruction second instruction

Similar documents
Computer Organization CS 206T

Chapter 1: Introduction to Computers

Chapter 1: Introduction to Computers. In this chapter you will learn about:

Learning Objectives. In this chapter you will learn about:

Evolution of the Computer

Computers in Engineering COMP 208. A Brief History. Mechanical Calculators. A Historic Perspective Michael A. Hawker

Computers in Engineering COMP 208

Figure 1-1. A multilevel machine.

Computer System architectures

COMS 1003 Fall Introduction to Computer Programming in C. History & Computer Organization. September 15 th

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?

Monday, January 27, 2014

Computer Systems. Hardware, Software and Layers of Abstraction

HISTORY OF COMPUTERS HISTORY OF COMPUTERS. Mesleki İngilizce - Technical English. Punch Card. Digital Data. II Prof. Dr. Nizamettin AYDIN.

History of Computing. Slides from NYU and Georgia Tech

The Central Processing Unit

Copyright 2012 Pearson Education, Inc. Publishing as Prentice Hall

Computer Architecture Computer Architecture. Computer Architecture. What is Computer Architecture? Grading

CHAPTER 1 Introduction

Computer Architecture

CHAPTER 1 Introduction

Chapter 1. Introduction To Computer Systems

Computer Systems. Computer Systems. Wolfgang Schreiner Research Institute for Symbolic Computation (RISC-Linz) Johannes Kepler University

EITF20: Computer Architecture Part1.1.1: Introduction

Wednesday, January 28, 2018

Introduction to Microprocessor

7/28/ Prentice-Hall, Inc Prentice-Hall, Inc Prentice-Hall, Inc Prentice-Hall, Inc Prentice-Hall, Inc.

The trusted, student-friendly online reference tool. Name: Date:

Evolution of Computers & Microprocessors. Dr. Cahit Karakuş

Computers: Inside and Out

1: History, Generation & Classification. Shobhanjana Kalita, Dept. of CSE, Tezpur University

Computer Systems Architecture

Computer Organization

1.2.1 Electronic computers based on digital switching

EECE416 :Microcomputer Fundamentals and Design ( Microcomputer & Microprocessor ) COMPUTER HISTORY. Computers and Microprocessors

Handouts. (CSC-3501) Lecture 1 (15 Jan 2008) Seung-Jong Park (Jay) Class information. Schedule (check online frequently)

Outline Marquette University

Computer Evolution. Computer Generation. The Zero Generation (3) Charles Babbage. First Generation- Time Line

EECE416 :Microcomputer Fundamentals and Design ( Microcomputer & Microprocessor ) COMPUTER HISTORY

Unit 9 : Fundamentals of Parallel Processing

Chapter 2 HISTORICAL DEVELOPMENT OF COMPUTERS

Chapter 2 : Computational tools

CS Computer Architecture

Computer Evolution. Budditha Hettige. Department of Computer Science

CS 105 Review Questions #3

Advanced Processor Architecture. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

EECE416 :Microcomputer Fundamentals and Design ( Microcomputer & Microprocessor ) COMPUTER HISTORY

CS 1 Notes 1 - Early Computing and 2 - Electronic Computing

3.1 Description of Microprocessor. 3.2 History of Microprocessor

EVOLUTION OF COMPUTERS. In the early years, before the computer was invented, there are several inventions of counting machines.

SYSTEM BUS AND MOCROPROCESSORS HISTORY

An Incomplete History of Computation

Fundamentals of Python: First Programs. Chapter 1: Introduction Modifications by Mr. Dave Clausen

Fundamentals of Digital Computers The mechanical computer age began with the advent of the abacus in 500 B.C by Babylonians. The abacus, which was

Elements of Computers and Programming Dr. William C. Bulko. What is a Computer?

Overview of a computer

Advanced Processor Architecture

Computer Architecture

Computer Architecture. Fall Dongkun Shin, SKKU

Alternate definition: Instruction Set Architecture (ISA) What is Computer Architecture? Computer Organization. Computer structure: Von Neumann model

Microprocessors I MICROCOMPUTERS AND MICROPROCESSORS

What is Good Performance. Benchmark at Home and Office. Benchmark at Home and Office. Program with 2 threads Home program.

Computer & Microprocessor Architecture HCA103

IT 252 Computer Organization and Architecture. Introduction. Chia-Chi Teng

History of Computers. What Is A Computer? Egyptian Numbers. Ancient Tools for Computation. Introduction to Computers

Microprocessor Architecture Dr. Charles Kim Howard University

History. 3rd Generation- Integrated Circuits, Transistors (Integrated Circuit form) for Memory ( memory is now volatile), Terminal/Keyboard for I/O

Computer Organization

ENIAC - background. ENIAC - details. Structure of von Nuemann machine. von Neumann/Turing Computer Architecture

Chronological History of the Pre-Computer Developments

CISC 360. Computer Architecture. Seth Morecraft Course Web Site:

Babbage Analytical Machine

Homeschool Enrichment. The System Unit: Processing & Memory

CS101 Lecture 29: Brief History of Computing

1DT157 Digitalteknik och datorarkitekt. Digital technology and computer architecture, 5p

Three-box Model: These three boxes need interconnecting (usually done by wiring known as a bus. 1. Processor CPU e.g. Pentium 4 2.

What is Information Technology. Chapter 1: Computer System. Why use Information Technology? What is Data?

COMPUTER STRUCTURE AND ORGANIZATION

Introduction to Computer Science. What is Computer Science?

SAE5C Computer Organization and Architecture. Unit : I - V

Calendar Description

Computer Basics/Algorithms

CS1100 Introduction to Programming

Computer Architecture Dr. Charles Kim Howard University

Trends in HPC (hardware complexity and software challenges)

Computers Programming Introduction. Iulian Năstac

Computer Organization. 8 th Edition. Chapter 2 p Computer Evolution and Performance

Computer Architecture s Changing Definition

You Will Need Floppy Disks for your labs!

CSC 121 Computers and Scientific Thinking

Chapter 1. The Big Picture

CSE : Introduction to Computer Architecture

Alpha AXP Workstation Family Performance Brief - OpenVMS

HISTORY OF COMPUTING

ELE ELE Microprocessors

Computer Architecture. Prologue. Topics Computer Architecture. Computer Organization. Organization vs. Architecture. History of Computers

Computer Organization & Assembly Language Programming. CSE 2312 Lecture 2 Introduction to Computers

Performance of computer systems

COMPUTER ORGANISATION CHAPTER 1 BASIC STRUCTURE OF COMPUTERS

The Generations of Computers

Transcription:

COMP1200 2001 Semester 1 61 Parallelism Microprocessors can use a variety of tricks to execute more instructions in a given amount of time. One of the most successful is to execute more than one instruction at a time. Two common types of parallelism are pipelining and multiple functional units. Pipelining. The execution of an instruction can be divided into several stages. For example: fetch the instruction, decode the instruction, fetch the data required, perform the operation, store the result. This can be overlapped: time step first instruction second instruction 1 fetch instruction 2 decode fetch instruction 3 fetch data decode 4 do operation fetch data 5 store result do operation 6 store result In a long stream of instructions, this technique can mean that one instruction finishes each time step, even though each instruction needs 4 times steps to be executed. In reality, a lot of complications occur. For example, if the data needed by the second instruction includes the answer from the first instruction, then the second instruction will have to wait for the first one to finish. Multiple functional units. Here we have circuits for executing several instructions at once. The difficult part is deciding when this is possible. Consider these instructions.

COMP1200 2001 Semester 1 62 A: ADD R5,R6 B: ADD R9,R10 C: ADD R6,R7 D: ADD R6,R13 Instructions A and B are completely independent and so can be executed at the same time. Similarly C and D are independent. However, C and D can t be executed until A finishes, because they need the answer from A. Thus, these 4 instructions can be executed in two steps: (1) execute instructions A and B at the same time (2) execute instructions C and D at the same time Major general-purpose microprocessors Here we will summarize a few of the major lines of microprocessors used in desk-top computers. As well as these, there are many others. x86 line (Intel and Advanced Micro Devices) These include the sequence of processors 8086 (5 MHz, 3 microns, 1978), 80286, 386, 486, Pentium, Pentium II, Pentium III, Pentium IV (up to 1500 MHz, 0.18 microns) manufactured by Intel and used in PC computers. Another current family of Intel microprocessors are called Celeron. There is a competing line of Athlon processors manufactured by AMD. The current processors are 32-bit. Intel and AMD will soon introduce lines of 64-bit processors running at over 1 GHz. PowerPC line (Motorola, IBM) These are the processors in current Macintosh computers. Main steps 601, 603, 604, G3, G4. The latest is the G4 processor, which is one of the first mass-market processors

COMP1200 2001 Semester 1 63 using copper instead of aluminium. Up to 733 MHz, 0.15 or 0.18 microns. Alpha (Compaq) These are 64-bit processors used in high-end UNIX workstations. Up to 833 MHz, with much better performance than Intel processors for scientific applications. Alpha processors are specifically designed for multiprocessing, which is the practice of having several CPUs in the one computer. Sparc (SUN Microsystems, Fujitsu) The current main family is the Ultrasparc series, up to 750 MHZ. Used mostly in SUN computers (like iwaki). Comparing microprocessor performance The clock rate is the most commonly quoted measure of processor speed, but it is only a reasonable measure for comparing similar members of the same processor family (and even then isn t the whole story). It does not even measure the number of instructions executed each second, because different instructions might need a different number of clock cycles to complete. An obsolete alternative to MHz (but arguably better) is mips (millions of instructions per second). There is a similar measure of floating-point performance: flops (floating-point operations per second). Moreover, even the concept of one processor being faster than another is somewhat dodgey. One processor might be faster for some applications and slower for others. This can easily happen, for example, if one processor has a faster CPU but the other has a faster memory bus.

COMP1200 2001 Semester 1 64 In an attempt to give more meaningful performance figures, there are a number of benchmarks that are quoted. A benchmark consists of a family of computing tasks. An overall score is determined from the time taken to perform all the tasks. The most famous benchmarks are the SPEC series (after the company that distributes them). Advances in processors mean that the criteria used for measuring performance need to change every so often, so the definition of the benchmarks changes every few years. Currently the main benchmarks for microprocessors are SPECint2000 for problems mostly involving integer arithmetic and SPECfp2000 for floating-point arithmetic. Larger numbers are better. Here are some approximate values for a few processors. SPECint2000 SPECfp2000 Alpha 21264B, 833 MHz 544 658 Pentium IV, 1.5 GHz 536 561 Ultrasparc 3, 750 MHz 467 421 It is seen that Alpha is ahead of the others in floating-point performance even though it is equal to Pentium for integer performance. This means that Alpha is easily the fastest for scientific applications (which need much floating-point arithmetic). However, note that its clock speed is much lower than the Pentium s. Recent versions of many processors include extra instructions especially designed for the most CPU-hungry tasks of the mass market: processing of images, sound, video, and the 3-D graphics needed for computer games. For example, Pentium III has Streaming SIMD, Athlon

COMP1200 2001 Semester 1 65 has 3DNow! and G4 has Altivec. Programs have to be modified in order to use these instructions but then might run much faster. For example, the image-processing package Photoshop runs faster on a G4 than on the fastest Pentium because it makes good use of the Altivec instructions. Evolution of processor speeds over time Gordon Moore (one of the founders of Intel) predicted in 1973 that that number of transistors put on a single chip would double every 18 months until fundamental physical limits are reached. A similar statement about processor speeds is often called Moore s Law. Moore s Law has held remarkably well for more than 20 years, despite confident expert opinion every few years that the trend cannot last much longer. There currently seems little reason to doubt that Moore s Law will continue to approximately apply for the rest of this decade and maybe longer. The next few years seem assured because processors meeting the requirements are already running in the labs of several manufacturers. The required technology for continuing the trend for some years after that is fairly well understood theoretically and only needs more engineering development for practical application. Beyond the next decade, things are much less clear. The existing type of metal+silicon microprocessors will eventually reach a limit where the current flows between components cannot be reliably distinguished from the thermal motions of electrons. However, other possible technologies may be able to take over. Possibilities include replacing transistors by specially designed molecules, and circuits where the information is carried by photons (i.e.

COMP1200 2001 Semester 1 66 light) rather than by electrons. Beyond the next decade, things are much less clear. The existing type of metal+silicon microprocessors will eventually reach a limit where the current flows between components cannot be reliably distinguished from the thermal motions of electrons. However, other possible technologies may be able to take over. Possibilities include replacing transistors by specially designed molecules, and circuits where the information is carried by photons (i.e. light) rather than by electrons. There is a theoretical possibility of an entirely different type of computer based on quantum physics. It this type of computer can be built, some types of computation will be possible that are out of the question for traditional computers. However, practical investigation of these possibilities are only at the most primitive stage and it is not yet clear whether full scale quantum computers will be possible in the near future (or ever). It is also not clear whether the special abilities of quantum computers will be of sufficiently general applicability that they will make a large difference to the computing world.

COMP1200 2001 Semester 1 67 The History of Computing 1500 Leonardo da Vinci s mechanical calculator 1621 Slide rule 1623 Wilhelm Schikard s Calculating Clock 1642 Blaise Pascal s Arithmetic Machine 1670s Gottfied von Leibniz s Step Reckoner 1820 Charles Xavier Thomas de Colmar s Arithmometer 1822 Charles Babbage s Difference Engine 1834 Charles Babbage s Analytical Engine Augusta Ada Lovelace writes first computer program 1853 Scheutz & Son, working difference engine 1857 Wheatstone s use of paper tape 1885 Baldwin and Odhner, better mechanical calculator 1890 US Census tabulated using punched cards using method of Hollerith (later founder of IBM) 1935 IBM 601 punched card machine using relays (USA) 1938 Konrad Zuse, electro-mechanical computer Z1 (DE) 1939 Atanasoff and Berry, special purpose electronic computer (USA) 1941 Atanasoff and Berry, linear equation solver (USA) 1941 Konrad Zuse, Z3 programmable computer (Germany) 1943 Harvard Mark I programmable computer (USA) 1943 Thomas Flowers, Colossus, the first electronic computer (UK) 1946 ENIAC fully electronic computer (USA) 1946 Konrad Zuse s programming language Plankalkül 1946 von Neumann s paper on computer architecture 1948 First stored-program computer (UK) 1949 CSIRAC, the first Australian computer 1949 First use of magnetic tape (USA) 1950 Floppy disk invented (Japan) 1951 First commercially available computer (USA)

COMP1200 2001 Semester 1 68 1953 Magnetic core memory 1957 High level languages become significant 1959 Move from valves to transistors 1964 Move from transistors to integrated circuits 1964 IBM 360 1969 ARPARNET network started (USA) 1970 RAM chips appear 1971 First microprocessor appears (4004) 1972 e-mail invented 1973 First mass-market computer game (Pong) 1974 Personal computers appear 1975 UNIX marketed 1981 IBM PC released 1984 Apple Macintosh released 1989 World Wide Web invented 1997 Deep Blue beats Gary Kasparov 2000 First 1 GHz microprocessors See the comp1200 links file for much more information.

COMP1200 2001 Semester 1 69 Operating Systems Programs running on a computer can be loosely classified into two groups: Application software consists of programs that perform specific tasks requested by the human user of the computer. For example, a web browser, email client, movie player, word processor, or game. System software consists of programs that manage the resources of the computer and facilitate access to those resources. For example, an assembler for translating assembly language into machine language, a compiler for translating a high-level language, programs for talking with disk drives, servicing page faults, sharing the CPU between different application programs. The boundary between application and system software is indistinct. The overall set of system software, or at least its more essential parts, comprise the operating system. Again, there is no precise definition of which components of system software belong to the operating system. Often the most essential parts of the operating system are called the kernel. Examples of operating systems are UNIX (of which Linux is a variant), Windows and MacOS.

COMP1200 2001 Semester 1 70 Processes A process is essentially a program being executed (whether or not it is actually using the CPU right now). A process consists of some machine instructions and some data areas, residing in the virtual address space of the process, and the contents of the CPU registers. Some things we think of as programs might actually be several processes cooperating with each other. For example, a web browser might have one process that communicates with the internet and another process that displays web pages on the screen. The operating system itself consists of one or more processes. Operating System tasks The most important tasks of an operating system are: To communicate with the computer user. To arrange for the execution of processes. To provide a standard interface between itself and other processes (system calls). To share the resources of the computer (memory, access to peripheral devices, CPU time, etc) between the various processes that want them. To manage page tables and paging. To communicate with storage devices, keyboards, monitors, network connections, etc. To maintain i/o caches, search directories, etc.