1 / 24

Computer Organization

Goals. Understanding the computer organizationThe design and implementation issues of computers will be clarified.The course prepares for the design and implementation of new computers.. Organization . Schedule: Text book: Andrew S. Tanenbaum: Structured Computer Organization", 5th ed., Pren

kalinda
Télécharger la présentation

Computer Organization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Computer Organization Tennessee State University

    2. Goals Understanding the computer organization The design and implementation issues of computers will be clarified. The course prepares for the design and implementation of new computers.

    3. Organization Schedule: Text book: Andrew S. Tanenbaum: Structured Computer Organization, 5th ed., Prentice Hall, 2006.

    4. Outline Introduction Computer Systems Organization The Digital Logic Level The Microarchitecture Level The Instruction Set Architecture Level The Operating System Machine Level The Assembly Language Level Parallel Computer Architectures

    5. 1. Introduction 1.1 Structured computer organization 1.2 Milestones in computer architecture 1.3 The computer zoo 1.4 Example computer families 1.5 Outline of this book

    6. Primitive operations in a program Add 2 numbers. Check a number to see if it is zero Copy a piece of data from one part of the computer memory to another. Machine language: a set of CPUs primitive instructions Computer design decide what instructions to include in its machine language make instructions as simple as possible e.g. 01100000 (IADD in IJVM ) Structured computer architecture: a series of abstractions, each abstraction building on the one below it. A program is a sequence of instructions describing how to perform a certain task. A set of CPUs primitive instructions form a language in which it is possible for people to communicate with the computer, such a language is called a machine language. The people designing a new computer must decide what instructions to include in its machine language. Usually, they try to make primitive instructions as simple as possible, in order to reduce the complexity and cost of the electronics needed. Because most machine languages are so simple, it is difficult and tedious for people to use them. This simple observation has led to a way of structuring computers as a series of abstractions, each abstraction building on the one below it. In this course, we will study this structured computer architecture. A program is a sequence of instructions describing how to perform a certain task. A set of CPUs primitive instructions form a language in which it is possible for people to communicate with the computer, such a language is called a machine language. The people designing a new computer must decide what instructions to include in its machine language. Usually, they try to make primitive instructions as simple as possible, in order to reduce the complexity and cost of the electronics needed. Because most machine languages are so simple, it is difficult and tedious for people to use them. This simple observation has led to a way of structuring computers as a series of abstractions, each abstraction building on the one below it. In this course, we will study this structured computer architecture.

    7. 1.1 Structure computer organization Languages, Levels, and Virtual Machines Now let us look at the layers or levels of the computer closely. Explain the figure. A computer with n levels can be regarded as n different virtual machines, each with a different machine language. We will use the terms level and virtual machine interchangeably. Only programs written in language L0 can be directly carried out by electronic circuits, without the need for intervening translation or interpretation. Programs written in L1, L2, Ln must either be interpreted by an interpreter running on a lower level or translated to another language corresponding to a lower level. Now let us look at the layers or levels of the computer closely. Explain the figure. A computer with n levels can be regarded as n different virtual machines, each with a different machine language. We will use the terms level and virtual machine interchangeably. Only programs written in language L0 can be directly carried out by electronic circuits, without the need for intervening translation or interpretation. Programs written in L1, L2, Ln must either be interpreted by an interpreter running on a lower level or translated to another language corresponding to a lower level.

    8. Contemporary Multilevel Machines This figure shows the levels of the present computers. Level 0: the digital logic level. The interesting objects are called gates. Each gate has one or more digital inputs, and performs some simple function of these inputs such as AND or OR. A small number of gates can be combined to form a 1-bit memory, which can store a 0 or a 1. The 1-bit memories can be combined in groups of 8, 16, 32, or 64 to form registers. Each register can hold a single binary number up to some maximum. Gates can also be combined to form CPU. We will examine gates and digital logic in detail in Chap. 3. Level 1: the microarchitecture level. At this level we see a collection of 8 to 32 registers that form a local memory and a circuit called ALU (Arithmetic Logic Unit) that is capable of performing simple arithmetic operations. The registers are connected to the ALU to form a data path, over which the data flow. The basic operation of the data path consists of selecting one or two registers having the ALU operate on them, for example, adding them together, with the result being stored back in some register. On some machines the operation of data path is controlled by a program called a microprogram. On other machines the data path is controlled directly by hardware. We will study the microarchitecture level in Chap. 4. Level 2: Instruction Set Architecture level (ISA level). Every CPU has its own instruction set. The CPU manufacturer will publish a manual for the CPUs it sells. We will study ISA level in Chap.5. Level 3: Operating system machine level. Most of the instructions in its language are also in the ISA level. In addition, there is a set of new instructions, a different memory organization, the ability to run two or more programs concurrently, and various other features. They are not designed for the use by the average programmer. Instead they are intended primarily for running the interpreters and translators needed to support the higher level. We will study this level in Chap. 6. Level 4: the assembly language level. It is a symbolic form for one of the underlying languages. We will study this level in Chap. 7. Level 5: problem-oriented language level. It consists of languages designed to be used by application programmers with problem to solve. Such languages are often called high-level languages. For example, BASIC, C, C++, Java, LISP, and Prolog. Programs written in these languages are generally translated to level 3 or 4 by the translator known as compilers. Occasionally they are interpreted instead, e.g., programs in Java are often interpreted. This figure shows the levels of the present computers. Level 0: the digital logic level. The interesting objects are called gates. Each gate has one or more digital inputs, and performs some simple function of these inputs such as AND or OR. A small number of gates can be combined to form a 1-bit memory, which can store a 0 or a 1. The 1-bit memories can be combined in groups of 8, 16, 32, or 64 to form registers. Each register can hold a single binary number up to some maximum. Gates can also be combined to form CPU. We will examine gates and digital logic in detail in Chap. 3. Level 1: the microarchitecture level. At this level we see a collection of 8 to 32 registers that form a local memory and a circuit called ALU (Arithmetic Logic Unit) that is capable of performing simple arithmetic operations. The registers are connected to the ALU to form a data path, over which the data flow. The basic operation of the data path consists of selecting one or two registers having the ALU operate on them, for example, adding them together, with the result being stored back in some register. On some machines the operation of data path is controlled by a program called a microprogram. On other machines the data path is controlled directly by hardware. We will study the microarchitecture level in Chap. 4. Level 2: Instruction Set Architecture level (ISA level). Every CPU has its own instruction set. The CPU manufacturer will publish a manual for the CPUs it sells. We will study ISA level in Chap.5. Level 3: Operating system machine level. Most of the instructions in its language are also in the ISA level. In addition, there is a set of new instructions, a different memory organization, the ability to run two or more programs concurrently, and various other features. They are not designed for the use by the average programmer. Instead they are intended primarily for running the interpreters and translators needed to support the higher level. We will study this level in Chap. 6. Level 4: the assembly language level. It is a symbolic form for one of the underlying languages. We will study this level in Chap. 7. Level 5: problem-oriented language level. It consists of languages designed to be used by application programmers with problem to solve. Such languages are often called high-level languages. For example, BASIC, C, C++, Java, LISP, and Prolog. Programs written in these languages are generally translated to level 3 or 4 by the translator known as compilers. Occasionally they are interpreted instead, e.g., programs in Java are often interpreted.

    9. 1.2 Milestones in computer architechture 0th generation (1642 - 1945) : mechanical computers 1st generation (1945 - 1955): vacuum tubes 2nd generation (1955 - 1965): transistors 3rd generation (1965 -1980): integrated circuites 4th generation (1980 - present): Very Large Scale Integration 0th generation (1642 - 1945) : mechanical computers 1st generation (1945 - 1955): vacuum tubes 2nd generation (1955 - 1965): transistors 3rd generation (1965 -1980): integrated circuites 4th generation (1980 - present): Very Large Scale Integration

    10. ENIAC(Electronic Numerical Integrator And Computer, 1946) J. Mauchley, J. P. Eckert 18,000 vacuum tubes, 1500 relays, weight: 30 tons, power: 140kw Programming: 6000 multiposition switches and jumper cables decimal arithmetic ABC (Atanasoff - Berry Computer, Iowa Univ., 1942 )

    11. Neuman Machine the program stored in the computers memory Binary arithmetic The idea was used in EDSAC made by Wilkes. Programming computers with huge numbers of switches and cables was slow, tedious, and inflexible. Von Neumann proposed that the program could be represented in digital form in the computers memory, he also proposed that the decimal arithmetic in the ENIAC could be replaced by using parallel binary arithmetic. This idea was used in the EDSAC, the first stored program computer, and is still the basis for nearly all digital computers, even now, more than half a century later. This basic design is now know as von Neumann machine. The original von Neumann machine is shown in this figure, which had five basic parts: the memory, the arithmetic logic unit, the control unit, and the input and output equipment. Programming computers with huge numbers of switches and cables was slow, tedious, and inflexible. Von Neumann proposed that the program could be represented in digital form in the computers memory, he also proposed that the decimal arithmetic in the ENIAC could be replaced by using parallel binary arithmetic. This idea was used in the EDSAC, the first stored program computer, and is still the basis for nearly all digital computers, even now, more than half a century later. This basic design is now know as von Neumann machine. The original von Neumann machine is shown in this figure, which had five basic parts: the memory, the arithmetic logic unit, the control unit, and the input and output equipment.

    12. The Second Generation Transistors (1955-1965) MITs Lincoln Laboratory : TX-0, TX-2 TX-0: the first transitorized computer IBM: IBM7090 IBM7090: transistorized successor to IBM709 (vacuum tube machine) cost millions DEC (formed by Kenneth Olsen) : PDP-1, PDP-8 PDP-1: 1961, cost $120,000, sold dozens. minicomputer industry was born The first transistorized computer was built at MITs Lincoln Laboratory. It was called TX-0 (Transistorized eXperimental computer 0) It was merely intended as device to test the much fancier TX-2. IBM7090: transistorized successor to IBM709 (vacuum tube machine) the fastest computer in the world at that time. One of the engineers working at MITs Lincoln Laboratory, Kenneth Olsen, formed a company, Digital Equipment Corporation in 1957, and made PDP-1, cost $120,000. DEC sold dozens of PDP-1s, and the minicomputer industry was born. The first transistorized computer was built at MITs Lincoln Laboratory. It was called TX-0 (Transistorized eXperimental computer 0) It was merely intended as device to test the much fancier TX-2. IBM7090: transistorized successor to IBM709 (vacuum tube machine) the fastest computer in the world at that time. One of the engineers working at MITs Lincoln Laboratory, Kenneth Olsen, formed a company, Digital Equipment Corporation in 1957, and made PDP-1, cost $120,000. DEC sold dozens of PDP-1s, and the minicomputer industry was born.

    13. A few years later, DEC introduced the PDP-8, which was much cheaper that PDP-1, cost $16,000. This figure shows the block diagram of PDP-8. A major innovation of PDP-8 is the single bus as shown in this Fig. A bus is a collection of parallel wires used to connect the components of a computer. This architecture has been adopted by nearly all small computers since then. A few years later, DEC introduced the PDP-8, which was much cheaper that PDP-1, cost $16,000. This figure shows the block diagram of PDP-8. A major innovation of PDP-8 is the single bus as shown in this Fig. A bus is a collection of parallel wires used to connect the components of a computer. This architecture has been adopted by nearly all small computers since then.

    14. The Third Generation IC (1965-1980) IC: Integrated Circuit - dozens of transistors to be put on a single chip. - possible to build computers that were smaller, faster, and cheaper Machine families: based on ICs - using the same assembly language - software written for one of them could run on the other.

    15. IBM 360 machine family

    16. The Fourth Generation VLSI (1980-present) VLSI: Very Large Scale IC - tens of thousands, then hundreds of thousands, and finally millions of transistors to be put on a single chip. - possible to build computer that were smaller, faster, and cheaper. Personal computer era - IBM PC, Apple PC OS: MS-DOS, Windows, Mac OS, UNIX, Linux etc.

    17. 1.3 The Computer Zoo Technological and Economic Forces The computer industry is moving ahead. The primary driving force is the ability of chip manufacturers to pack more and more transistors per chip every year. The rate of technological progress can be modeled by an observation called Moores law, named after Gordon Moore, co-founder and Chairman of Intel, who discovered in 1965. See figure notation. Today, Moores law is often expressed as the number of transistor doubling every 18 months. The computer industry is moving ahead. The primary driving force is the ability of chip manufacturers to pack more and more transistors per chip every year. The rate of technological progress can be modeled by an observation called Moores law, named after Gordon Moore, co-founder and Chairman of Intel, who discovered in 1965. See figure notation. Today, Moores law is often expressed as the number of transistor doubling every 18 months.

    18. The Computer Spectrum

    19. Example Computer Families Introduction to the Pentium II All then Intel chips are backward compatible with their predecessors back as far as the 8086. In other words, a Pentium II can run 8086 programs without modification. This compatibility has always been a design requirement for Intel, to allow users to maintain their existing investment. Of course, the Pentium II is 250 times more complex than the 8086. All then Intel chips are backward compatible with their predecessors back as far as the 8086. In other words, a Pentium II can run 8086 programs without modification. This compatibility has always been a design requirement for Intel, to allow users to maintain their existing investment. Of course, the Pentium II is 250 times more complex than the 8086.

    20. As shown in the figure, the Moores law also holds here. The vertical axis is the transistor number on each chip on a semilog scale. As shown in the figure, the Moores law also holds here. The vertical axis is the transistor number on each chip on a semilog scale.

    21. Introduction to the UltraSPARC II Sun Microsystems founded in 1982 Sun-1, Sun-2, Sun-3 - Motorola CPUs - Equipped with Ethernet connection and with TCP/IP software In 1987, Sun designed its own RISC CPU SPARC (Scalable Processor ARChitecture), formed the basis of Sun-4 workstation. - 32-bit, 36MHz (contrast to Intel line: 8- and 16-bit 8088, 8086, 80286, 32-bit 80386) In 1995, UltraSPARC I (Ver 9 SPARC architecture ) - 64-bit machine, but compatible with 32-bit SPARCs. - 2 TB (1012 bytes) memory space. UltraSPARC II, III: successors of UltraSPARC I, differ primarily in clock speed.

    22. Introduction to the picoJava II Java - to fetch binary programs over Internet and run them as part of WWW page. - a type-safe object-oriented language. - possible to write compilers that compile to Pentium, SPARC, or other architecture. JVM (Java Virtual Machine): to make binary programs portable across different machines. - memory consisting of 32-bit words, 226 instructions - Java compiler compiles Java to JVM. - JVM interpreter: to execute Java binary program. Problem: Interpreting JVM programs is slow. In the mid 1990s, researchers at Sun Microsystems were investigating ways of allowing users to fetch binary programs over Internet and run them as part of WWW page. They liked C++, except that it was not secure. Their solution to this was to invent a new programming language, Java, inspired by C++, but without the C++s security problem. Java is a type-safe object-oriented language which is increasingly used for many applications. Our textbook used it for programming example. In the mid 1990s, researchers at Sun Microsystems were investigating ways of allowing users to fetch binary programs over Internet and run them as part of WWW page. They liked C++, except that it was not secure. Their solution to this was to invent a new programming language, Java, inspired by C++, but without the C++s security problem. Java is a type-safe object-oriented language which is increasingly used for many applications. Our textbook used it for programming example.

    23. Hardware JVM chips: picoJava-I (1997), picoJava-II (1998) directly execute JVM binary programs, without the need for a layer of software interpretation. picoJava II: not a concrete chip, but the basis for a number of chips, such as Sun microJava 701 CPU. picoJava II has two optional units: a cache and a floating-point unit which each chip manufacturer can include or remove, as it wishes. Our example CPUs: Pentium II, UltraSPARC II, picoJava II picoJava-I (1997), picoJava-II (1998): hardware Java chips that directly execute JVM binary programs, without the need for a layer of software interpretation. They were targeted at the embedded systems market. This market requires powerful, flexible, and especially low-cost chips that are embedded inside smart cards, TV sets, telephones, and other appliances. picoJava II is not a concrete chip, it is the basis for a number of chips, such as Sun microJava 701 CPU. picoJava II has two optional units: a cache and a floating-point unit which each chip manufacture can include or remove, as it wishes. For the sake of simplicity, we will refer to the picoJava II as if it were a chip rather than a chip design. We will Pentium II, UltraSPARC II, picoJava II as our example CPUs. So we can study three different CPUs. Pentium II is a traditional CISC architecture implemented with modern superscalar technology. UltraSPARC II is a true RISC architecture implemented with modern superscalar technology. picoJava II is a dedicated java chip for use in embedded systems. picoJava-I (1997), picoJava-II (1998): hardware Java chips that directly execute JVM binary programs, without the need for a layer of software interpretation. They were targeted at the embedded systems market. This market requires powerful, flexible, and especially low-cost chips that are embedded inside smart cards, TV sets, telephones, and other appliances. picoJava II is not a concrete chip, it is the basis for a number of chips, such as Sun microJava 701 CPU. picoJava II has two optional units: a cache and a floating-point unit which each chip manufacture can include or remove, as it wishes. For the sake of simplicity, we will refer to the picoJava II as if it were a chip rather than a chip design. We will Pentium II, UltraSPARC II, picoJava II as our example CPUs. So we can study three different CPUs. Pentium II is a traditional CISC architecture implemented with modern superscalar technology. UltraSPARC II is a true RISC architecture implemented with modern superscalar technology. picoJava II is a dedicated java chip for use in embedded systems.

    24. Conclusions Introducing structured computer organization Review of Computer History Example CPUs: Pentium II, UltraSPARC II, picoJava II What next ? Computer System Organization

More Related