291 likes | 691 Views
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
E N D
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 CPU’s 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 CPU’s 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 CPU’s 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 computer’s 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 computer’s 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 computer’s 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) MIT’s 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 MIT’s 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 MIT’s 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 MIT’s 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 MIT’s 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 Moore’s law, named after Gordon Moore, co-founder and Chairman of Intel, who discovered in 1965.
See figure notation. …
Today, Moore’s 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 Moore’s law, named after Gordon Moore, co-founder and Chairman of Intel, who discovered in 1965.
See figure notation. …
Today, Moore’s law is often expressed as the number of transistor doubling every 18 months.
18. The Computer Spectrum
19. Example Computer FamiliesIntroduction 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 Moore’s law also holds here.
The vertical axis is the transistor number on each chip on a semilog scale. As shown in the figure, the Moore’s 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