1 / 11

Lectures for 2nd Edition

Lectures for 2nd Edition.

mdenis
Download Presentation

Lectures for 2nd Edition

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. Lectures for 2nd Edition Note: these lectures are often supplemented with other materials and also problems from the text worked out on the blackboard. You’ll want to customize these lectures for your class. The student audience for these lectures have had assembly language programming and exposure to logic design Text in blue is by N. Guydosh Updated 1/22/04

  2. Chapter 1

  3. Introduction • Rapidly changing field: • vacuum tube -> transistor -> IC -> VLSI (see section 1.4) • doubling every 1.5 years:memory capacity processor speed (Due to advances in technology and organization) • 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

  4. What is a computer? • Components:What “Joe Average” sees: • input (mouse, keyboard) • output (display, printer) • memory (disk drives, DRAM, SRAM, CD) • Network • Our primary focus is to look under the covers: the processor (datapath and control) • implemented using millions of transistors • Impossible to understand by looking at each transistor • We need ... Abstractions

  5. Abstractions • All information in a computer is encoded in 1’s and 0’s – binary • Dealing directly at the bit level is a near impossibility – what was done in the first computers. • We identify functional abstractions in the design of a computer • For example the concept of an instruction which is an encoding of bits • Identifying each instruction symbolically – need for translation • An assembler translates from symbolic to binary – translation is 1 to 1 from symbolic to binary instructions – easier than binary, but still too complex for writing algorithms. • We now abstract to a high level language like C and use a compiler to translate to assembly or true machine instructions – translation is now one C statement to many instructions. • Ideally a high level language will allow portability across many hardware platforms – simply recompile. There may be exceptions in real life.

  6. Abstraction • Delving into the depths reveals more information • An abstraction omits unneeded detail, helps us cope with complexityWhat are some of the details that appear in these familiar abstractions?

  7. Hardware/Software Interface • By abstraction, we identify functional entities in a computer in both the hardware and software. • The network of logic gates are abstracted into functional units such as an ALU’s, registers, etc. • The instruction set (see previous slide) is an abstraction of the overall function of the hardware design – it actually defines (specifies) this hardware function. • Ideally, we my think of the instruction set as a spec for the design of the hardware - design the hardware execute each instruction as efficiently as possible. • In the real world, there may be some tradeoffs between the hardware design and the instruction set in the sense that hardware engineers may negotiate a change in an instruction – but in general we think as the instruction set as relatively fixed. • The relationship between the instruction set and the underlying hardware is called the hardware/software interface.

  8. 61C What are “Machine Structures”? Application (ex: browser) • Coordination of many levels (layers) of abstraction Operating Compiler System (Mac OS X) Software Assembler Instruction Set Architecture Hardware Processor Memory I/O system Datapath & Control Digital Design Circuit Design Acknowledgment: From course CS61C, Berkeley By Dan Garcia transistors

  9. 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 innovationsTrue or False: Binary compatibility is extraordinarily important? • Modern instruction set architectures: • 80x86/Pentium/K6(by AMD), PowerPC, DEC Alpha, MIPS, SPARC, HP

  10. Where we are headed • Performance issues (Chapter 2) vocabulary and motivation • A specific instruction set architecture (Chapter 3) • Arithmetic and how to build an ALU (Chapter 4) • Constructing a processor to execute our instructions (Chapter 5) • Pipelining to improve performance (Chapter 6) • Memory: caches and virtual memory (Chapter 7) • I/O (Chapter 8)Key to a good grade: reading the book!

  11. Anatomy: 5 components of any Computer Personal Computer Keyboard, Mouse Computer Processor Memory (where programs, data live when running) Devices Disk(where programs, data live when not running) Input Control (“brain”) Datapath (“brawn”) Output Display, Printer Acknowledgment: From course CS61C, Berkeley By Dan Garcia

More Related