CS61C : Machine Structures

Similar documents
Are Computers Smart? To a programmer: Lecture #1 Introduction & Numbers Andy Carle. Are Computers Smart? What are Machine Structures?

levels (layers) of abstraction

CS61C Machine Structures. Lecture 1 Introduction. 8/25/2003 Brian Harvey. John Wawrzynek (Warznek) www-inst.eecs.berkeley.

CS61C Machine Structures. Lecture 1 Introduction. 8/27/2006 John Wawrzynek (Warzneck)

CS61C : Machine Structures

CS61C : Machine Structures

CS61C : Machine Structures

CS61C : Machine Structures

Intro to Math 230 Assembly Language Programming. Lecture # 01 01/15/08

CS61C : Machine Structures

CS61C : Machine Structures

CS430 - Computer Architecture William J. Taffe Fall 2002 using slides from. CS61C - Machine Structures Dave Patterson Fall 2000

Overview. ELEC2041 Microprocessors and Interfacing. Lecture 7: Number Systems - II. March 2006.

CS61C : Machine Structures

What are Machine Structures? Lecture 1 Introduction C. * Coordination of many. levels (layers) of abstraction

levels (layers) of abstraction I stand on the shoulders of giants Lecture #1 Introduction Are Computers Smart? Where does CS61C fit in?

ECE 15B COMPUTER ORGANIZATION

CS61C : Machine Structures

ELEC 5200/6200. Computer Architecture & Design. Victor P. Nelson Broun 326

Bits, bytes and digital information. Lecture 2 COMPSCI111/111G

Processor. Lecture #2 Number Rep & Intro to C classic components of all computers Control Datapath Memory Input Output

Where are we? Compiler. translating source code (C or Java) Programs to assembly language And linking your code to Library code

Where we are going (today)

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

CS61C : Machine Structures

I stand on the shoulders of giants. Lecture #1 Introduction Where does CS61C fit in? Are Computers Smart?

Introduction to the Use of Computers

CS/COE0447: Computer Organization

Where we are going (today)

Where we are going (today)

CS61C : Machine Structures

Processor. Lecture #2 Number Rep & Intro to C classic components of all computers Control Datapath Memory Input Output }

CS61C : Machine Structures

CS61c Midterm Review (fa06) Number representation and Floating points From your friendly reader

CS61C : Machine Structures

Computer Architecture. Fall Dongkun Shin, SKKU

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Bits and Bytes and Numbers

CS61C : Machine Structures

Here is a diagram of a simple computer system: (this diagram will be the one needed for exams) CPU. cache

30000BC Palaeolithic peoples in central Europe and France record numbers on bones. 5000BC A decimal number system is in use in Egypt.

Topic Notes: Bits and Bytes and Numbers

CS61C : Machine Structures

EECE 321: Computer Organization

EMBEDDED SYSTEMS. Part I: Introduction and Hardware

Microprocessors I MICROCOMPUTERS AND MICROPROCESSORS

Five classic components

Topic Notes: Bits and Bytes and Numbers

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

large units some names for large numbers CIS 2107 Chapter 2 Notes Part 1

CIS 2107 Chapter 2 Notes Part 1. Representing and Manipulating Information

Computer Architecture

CPE300: Digital System Architecture and Design. Fall 2011 MW 17:30-18:45 CBC C316

CS61CL : Machine Structures

CS 61C: Great Ideas in Computer Architecture Lecture 2: Introduction to C, Part I

ECE232: Hardware Organization and Design

CS 110 Computer Architecture. Lecture 2: Introduction to C, Part I. Instructor: Sören Schwertfeger.

1010 2?= ?= CS 64 Lecture 2 Data Representation. Decimal Numbers: Base 10. Reading: FLD Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

ECE232: Hardware Organization and Design

CS61C Machine Structures. Lecture 13 - MIPS Instruction Representation I. 9/26/2007 John Wawrzynek. www-inst.eecs.berkeley.

CS61C : Machine Structures

data within a computer system are stored in one of 2 physical states (hence the use of binary digits)

LECTURE 1. Introduction

CS61C C/Assembler Operators and Operands Lecture 2 January 22, 1999 Dave Patterson (http.cs.berkeley.edu/~patterson)

ECE 154A. Architecture. Dmitri Strukov

Lecture (01) Digital Systems and Binary Numbers By: Dr. Ahmed ElShafee

ELEG3923 Microprocessor Ch.0 & Ch.1 Introduction to Microcontroller

CS & IT Conversions. Magnitude 10,000 1,

CPE300: Digital System Architecture and Design

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2

M1 Computers and Data

מבנה מחשבים Amar Lior Based on lectures notes from Arie Schlesinger

Overview of Computer Organization. Chapter 1 S. Dandamudi

The x86 Microprocessors. Introduction. The 80x86 Microprocessors. 1.1 Assembly Language

Memory Addressing, Binary, and Hexadecimal Review

Review : Pipelining. Memory Hierarchy

CS61C : Machine Structures

CS64 Computer Organization

Agenda EE 224: INTRODUCTION TO DIGITAL CIRCUITS & COMPUTER DESIGN. Lecture 1: Introduction. Go over the syllabus 3/31/2010

Lecture 1: CS/ECE 3810 Introduction

Overview of Computer Organization. Outline

CS 110 Computer Architecture. Lecture 2: Introduction to C, Part I. Instructor: Sören Schwertfeger.

Math 230 Assembly Programming (AKA Computer Organization) Spring 2008

Course Outline. Introduction. Intro Computer Organization. Computer Science Dept Va Tech January McQuain & Ribbens

What s inside your computer? Session 3. Peter Henderson

Computer Architecture

Slide Set 8. for ENCM 369 Winter 2018 Section 01. Steve Norman, PhD, PEng

Representing Information. Bit Juggling. - Representing information using bits - Number representations. - Some other bits - Chapters 1 and 2.3,2.

Number Systems for Computers. Outline of Introduction. Binary, Octal and Hexadecimal numbers. Issues for Binary Representation of Numbers

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

Lecture (01) Introduction Number Systems and Conversion (1)

Lecture Objectives. Introduction to Computing Chapter 0. Topics. Numbering Systems 04/09/2017

LECTURE 1. Introduction

UCB CS61C : Machine Structures

Contents Slide Set 9. Final Notes on Textbook Chapter 7. Outline of Slide Set 9. More about skipped sections in Chapter 7. Outline of Slide Set 9

Page 1. Logistics. Introduction to Embedded Systems. My Records Indicate. Intel 4004 first single chip computer? Acronyms CS/ECE 6780/5780.

ECE 15B Computer Organization Spring 2011

EEC170 Computer Architecture. Lecture 1: Introduction to Computer Architecture

UC Berkeley CS61C : Machine Structures

Chapter 1 Introduction. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan

High-Performance Scientific Computing

Transcription:

inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture #1 Introduction & Numbers 2005-06-20 Andy Carle CS 61C L01 Introduction + Numbers (1)

Are Computers Smart? To a programmer: Very complex operations/functions: - (map (lambda (x) (* x x)) (1 2 3 4)) Automatic memory management: - List l = new List; Basic structures: - Integers, floats, characters, plus, minus, print commands Computers are smart! CS 61C L01 Introduction + Numbers (2)

Are Computers Smart? In real life: Only a handful of operations: - {and, or, not} or {nand, nor} No memory management. Only 2 values: - {0, 1} or {hi, lo} or {on, off} - 3 if you count <undef> Computers are dumb! CS 61C L01 Introduction + Numbers (3)

What are Machine Structures? Software Hardware Application (ex: browser) Compiler Assembler Processor Memory Digital Design Circuit Design transistors Operating System (WinXP) Datapath & Control I/O system 61C Instruction Set Architecture *Coordination of many levels (layers) of abstraction CS 61C L01 Introduction + Numbers (4)

61C Levels of Representation High Level Language Program (e.g., C) Compiler Assembly Language Program (e.g.,mips) Assembler Machine Language Program (MIPS) Machine Interpretation Hardware Architecture Description (Logic, Logisim, etc.) Architecture Implementation Logic Circuit Description (Logisim, etc.) temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; lw $t0, 0($2) lw $t1, 4($2) sw sw $t1, 0($2) $t0, 4($2) 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 CS 61C L01 Introduction + Numbers (5)

Anatomy: 5 components of any Computer Personal Computer Computer Processor Control ( brain ) Datapath ( brawn ) Memory (where programs, data live when running) Devices Input Output Keyboard, Mouse Disk (where programs, data live when not running) Display, Printer CS 61C L01 Introduction + Numbers (6)

Overview of Physical Implementations The hardware out of which we make systems. Integrated Circuits (ICs) Combinational logic circuits, memory elements, analog interfaces. Printed Circuits (PC) boards substrate for ICs and interconnection, distribution of CLK, Vdd, and GND signals, heat dissipation. Power Supplies Converts line AC voltage to regulated DC low voltage levels. Chassis (rack, card case,...) holds boards, power supply, provides physical interface to user or other systems. Connectors and Cables. CS 61C L01 Introduction + Numbers (7)

Integrated Circuits (2003 state-of-the-art) Bare Die Primarily Crystalline Silicon 1mm - 25mm on a side 2003 - feature size ~ 0.13µm = 0.13 x 10-6 m 100-400M transistors (25-100M logic gates") 3-10 conductive layers Chip in Package CMOS (complementary metal oxide semiconductor) - most common. Package provides: spreading of chip-level signal paths to board-level heat dissipation. Ceramic or plastic with gold wires. CS 61C L01 Introduction + Numbers (8)

Printed Circuit Boards fiberglass or ceramic 1-20 conductive layers 1-20in on a side IC packages are soldered down. CS 61C L01 Introduction + Numbers (9)

Technology Trends: Memory Capacity (Single-Chip DRAM) size 1000000000 100000000 10000000 1000000 100000 10000 1000 1970 1975 1980 1985 1990 1995 2000 Year Now 1.4X/yr, or 2X every 2 years. 8000X since 1980! year size (Mbit) 1980 0.0625 1983 0.25 1986 1 1989 4 1992 16 1996 64 1998 128 2000 256 2002 512 CS 61C L01 Introduction + Numbers (10)

Technology Trends: Microprocessor Complexity 100000000 Itanium 2: 41 Million Athlon (K7): 22 Million 10000000 1000000 Moore s Law i80386 i80486 Pentium Alpha 21264: 15 million Pentium Pro: 5.5 million PowerPC 620: 6.9 million Alpha 21164: 9.3 million Sparc Ultra: 5.2 million 100000 i80286 10000 i8086 2X transistors/chip Every 1.5 years i8080 1000 i4004 1970 1975 1980 1985 1990 1995 2000 Year Called Moore s Law CS 61C L01 Introduction + Numbers (11)

Technology Trends: Processor Performance Performance measure 900 800 700 600 500 400 300 200 100 0 1.54X/yr 87 88 89 90 91 92 93 94 95 96 97 year DEC Alpha 21264/600 DEC Alpha 5/500 DEC Alpha 5/300 DEC Alpha 4/266 IBM POWER 100 Intel P4 2000 MHz (Fall 2001) We ll talk about processor performance later on CS 61C L01 Introduction + Numbers (12)

Computer Technology - Dramatic Change! Memory DRAM capacity: 2x / 2 years (since 96); 64x size improvement in last decade. Processor Speed 2x / 1.5 years (since 85); 100X performance in last decade. Disk Capacity: 2x / 1 year (since 97) 250X size in last decade. CS 61C L01 Introduction + Numbers (13)

Computer Technology - Dramatic Change! We ll see that Kilo, Mega, etc. are incorrect later! State-of-the-art PC when you graduate: (at least ) Processor clock speed: Memory capacity: 5000 MegaHertz (5.0 GigaHertz) 4000 MegaBytes (4.0 GigaBytes) Disk capacity: 2000 GigaBytes (2.0 TeraBytes) New units! Mega => Giga, Giga => Tera (Tera => Peta, Peta => Exa, Exa => Zetta Zetta => Yotta = 10 24 ) CS 61C L01 Introduction + Numbers (14)

CS61C: So what's in it for me? Learn some of the big ideas in CS & engineering: 5 Classic components of a Computer Data can be anything (integers, floating point, characters): a program determines what it is Stored program concept: instructions just data Principle of Locality, exploited via a memory hierarchy (cache) Greater performance by exploiting parallelism Principle of abstraction, used to build systems as layers Compilation v. interpretation thru system layers Principles/Pitfalls of Performance Measurement CS 61C L01 Introduction + Numbers (15)

Others Skills learned in 61C Learning C If you know one, you should be able to learn another programming language largely on your own Given that you know C++ or Java, should be easy to pick up their ancestor, C Assembly Language Programming This is a skill you will pick up, as a side effect of understanding the Big Ideas Hardware design We think of hardware at the abstract level, with only a little bit of physical logic to give things perspective CS 150, 152 teach this CS 61C L01 Introduction + Numbers (16)

Course Lecture Outline Number representations C-Language (basics + pointers) Storage management Assembly Programming Floating Point make-ing an Executable Logic Design Introduction to Logisim CPU organization Pipelining Caches Virtual Memory Performance I/O Interrupts Disks, Networks Advanced Topics CS 61C L01 Introduction + Numbers (17)

Texts Required: Computer Organization and Design: The Hardware/Software Interface, Third Edition, Patterson and Hennessy (COD). The second edition is far inferior, and is not suggested. Required: The C Programming Language, Kernighan and Ritchie (K&R), 2nd edition Reading assignments on web page CS 61C L01 Introduction + Numbers (19)

Administrivia We WILL have sections today (320 Soda)! If you are currently waitlisted, attend section 103 at 5:00pm Everyone on the waitlist will eventually be enrolled but you may have to switch yourself to the 5:00 section. HW1 is available Rather simple book problems, due by the end of the day on the 26 th Office Hours are TBD But, Andy will hold a quasi office hour here after class to address any questions anyone has about the course Full course policies + syllabus tomorrow CS 61C L01 Introduction + Numbers (22)

Decimal Numbers: Base 10 Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Example: 3271 = (3x10 3 ) + (2x10 2 ) + (7x10 1 ) + (1x10 0 ) CS 61C L01 Introduction + Numbers (23)

Numbers: positional notation Number Base B B symbols per digit: Base 10 (Decimal): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Base 2 (Binary): 0, 1 Number representation: d 31 d 30... d 1 d 0 is a 32 digit number value = d 31 B 31 + d 30 B 30 +... + d 1 B 1 + d 0 B 0 Binary: 0,1 (In binary digits called bits ) 0b11010 = 1 2 4 + 1 2 3 + 0 2 2 + 1 2 1 + 0 2 0 = 16 + 8 + 2 #s often written = 26 0b Here 5 digit binary # turns into a 2 digit decimal # Can we find a base that converts to binary easily? CS 61C L01 Introduction + Numbers (24)

Hexadecimal Numbers: Base 16 Hexadecimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Normal digits + 6 more from the alphabet In C, written as 0x (e.g., 0xFAB5) Conversion: Binary Hex 1 hex digit represents 16 decimal values 4 binary digits represent 16 decimal values 1 hex digit replaces 4 binary digits One hex digit is a nibble. Two is a byte Example: 1010 1100 0011 (binary) = 0x? CS 61C L01 Introduction + Numbers (25)

Decimal vs. Hexadecimal vs. Binary Examples: 1010 1100 0011 (binary) = 0xAC3 10111 (binary) = 0001 0111 (binary) = 0x17 0x3F9 = 11 1111 1001 (binary) How do we convert between hex and Decimal? MEMORIZE! CS 61C L01 Introduction + Numbers (26) 00 0 0000 01 1 0001 02 2 0010 03 3 0011 04 4 0100 05 5 0101 06 6 0110 07 7 0111 08 8 1000 09 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111

Which base do we use? Decimal: great for humans, especially when doing arithmetic Hex: if human looking at long strings of binary numbers, its much easier to convert to hex and look 4 bits/symbol Terrible for arithmetic on paper Binary: what computers use; you will learn how computers do +, -, *, / To a computer, numbers always binary Regardless of how number is written: 32 ten == 32 10 == 0x20 == 100000 2 == 0b100000 Use subscripts ten, hex, two in book, slides when might be confusing CS 61C L01 Introduction + Numbers (27)

What to do with representations of numbers? Just what we do with numbers! Add them Subtract them Multiply them Divide them Compare them 1 1 1 0 1 0 + 0 1 1 1 ------------------------- 1 0 0 0 1 Example: 10 + 7 = 17 so simple to add in binary that we can build circuits to do it! subtraction just as you would in decimal Comparison: How do you tell if X > Y? CS 61C L01 Introduction + Numbers (28)

How to Represent Negative Numbers? So far, unsigned numbers Obvious solution: define leftmost bit to be sign! 0 +, 1 - Rest of bits can be numerical value of number This is ~ how YOU do signed numbers in decimal! Representation called sign and magnitude MIPS uses 32-bit integers. +1 ten would be: 0000 0000 0000 0000 0000 0000 0000 0001 And - 1 ten in sign and magnitude would be: 1000 0000 0000 0000 0000 0000 0000 0001 CS 61C L01 Introduction + Numbers (29)

Shortcomings of sign and magnitude? Arithmetic circuit complicated Special steps depending whether signs are the same or not Also, two zeros 0x00000000 = +0 ten 0x80000000 = -0 ten What would two 0s mean for programming? Therefore sign and magnitude abandoned* * Ask me about the star in two weeks! CS 61C L01 Introduction + Numbers (30)

Another try: complement the bits Example: 7 10 = 00111 2-7 10 = 11000 2 Called One s Complement Note: positive numbers have leading 0s, negative numbers have leadings 1s. 00000 00001... 01111 10000... 11110 11111 What is -00000? Answer: 11111 How many positive numbers in N bits? How many negative ones? CS 61C L01 Introduction + Numbers (31)

Shortcomings of One s complement? Arithmetic still is somewhat complicated. Still two zeros 0x00000000 = +0 ten 0xFFFFFFFF = -0 ten Although used for awhile on some computer products, one s complement was eventually abandoned because another solution was better. CS 61C L01 Introduction + Numbers (32)

Another Attempt Gedanken: Decimal Car Odometer 00003 00002 00001 00000 99999 99998 Binary Odometer: 00011 00010 00001 00000 11111 11110 With no obvious better alternative, pick representation that makes the math simple! 99999ten == -1ten 11111two == -1ten 11110two == -2ten This representation is Two s Complement CS 61C L01 Introduction + Numbers (33)

2 s Complement Properties As with sign and magnitude, leading 0s positive, leading 1s negative - 000000...xxx is 0, 111111...xxx is < 0 - except 1 1111 is -1, not -0 (as in sign & mag.) Only 1 Zero! CS 61C L01 Introduction + Numbers (34)

2 s Complement Number line : N = 5 11111 11110 11101-2 11100-3 -4... 00000 00001-1 0 00010 1 2... 2 N-1 nonnegatives 2 N-1 negatives one zero how many positives? 10001-15 -16 15 10000 01111 CS 61C L01 Introduction + Numbers (35)

Two s Complement for N=32 0000... 0000 0000 0000 0000 two = 0 ten 0000... 0000 0000 0000 0001 two = 1 ten 0000... 0000 0000 0000 0010 two = 2 ten... 0111... 1111 1111 1111 1101 two = 2,147,483,645 ten 0111... 1111 1111 1111 1110 two = 2,147,483,646 ten 0111... 1111 1111 1111 1111 two = 2,147,483,647 ten 1000... 0000 0000 0000 0000 two = 2,147,483,648 ten 1000... 0000 0000 0000 0001 two = 2,147,483,647 ten 1000... 0000 0000 0000 0010 two = 2,147,483,646 ten... 1111... 1111 1111 1111 1101 two = 3 ten 1111... 1111 1111 1111 1110 two = 2 ten 1111... 1111 1111 1111 1111 two = 1 ten One zero; 1st bit called sign bit 1 extra negative:no positive 2,147,483,648 ten CS 61C L01 Introduction + Numbers (36)

Kilo, Mega, Giga, Tera, Peta, Exa, Zetta, Yotta physics.nist.gov/cuu/units/binary.html Name Kilo Mega Giga Tera Peta Exa Zetta Yotta Common use prefixes (all SI, except K [= k in SI]) Abbr K M G T P E Z Y Factor 2 10 = 1,024 2 20 = 1,048,576 2 30 = 1,073,741,824 2 40 = 1,099,511,627,776 2 50 = 1,125,899,906,842,624 2 60 = 1,152,921,504,606,846,976 2 70 = 1,180,591,620,717,411,303,424 2 80 = 1,208,925,819,614,629,174,706,176 Confusing! Common usage of kilobyte means 1024 bytes, but the correct SI value is 1000 bytes Hard Disk manufacturers & Telecommunications are the only computing groups that use SI factors, so what is advertised as a 30 GB drive will actually only hold about 28 x 2 30 bytes, and a 1 Mbit/s connection transfers 10 6 bps. CS 61C L01 Introduction + Numbers (37) SI size 10 3 = 1,000 10 6 = 1,000,000 10 9 = 1,000,000,000 10 12 = 1,000,000,000,000 10 15 = 1,000,000,000,000,000 10 18 = 1,000,000,000,000,000,000 10 21 = 1,000,000,000,000,000,000,000 10 24 = 1,000,000,000,000,000,000,000,000

kibi, mebi, gibi, tebi, pebi, exbi, zebi, yobi New IEC Standard Prefixes [only to exbi officially] Name kibi mebi gibi tebi pebi exbi zebi yobi en.wikipedia.org/wiki/binary_prefix Abbr Ki Mi Gi Ti Pi Ei Zi Yi Factor 2 10 = 1,024 2 20 = 1,048,576 2 30 = 1,073,741,824 International Electrotechnical Commission (IEC) in 1999 introduced these to specify binary quantities. Names come from shortened versions of the original SI prefixes (same pronunciation) and bi is short for binary, but pronounced bee :-( Now SI prefixes only have their base-10 meaning and never have a base-2 meaning. CS 61C L01 Introduction + Numbers (38) 2 40 = 1,099,511,627,776 2 50 = 1,125,899,906,842,624 2 60 = 1,152,921,504,606,846,976 2 70 = 1,180,591,620,717,411,303,424 2 80 = 1,208,925,819,614,629,174,706,176 As of this writing, this proposal has yet to gain widespread use

The way to remember #s What is 2 34? How many bits addresses (I.e., what s ceil log 2 = lg of) 2.5 TiB? Answer! 2 XY means X=0 --- X=1 kibi ~10 3 X=2 mebi ~10 6 X=3 gibi ~10 9 X=4 tebi ~10 12 X=5 tebi ~10 15 X=6 exbi ~10 18 X=7 zebi ~10 21 X=8 yobi ~10 24 Y=0 1 Y=1 2 Y=2 4 Y=3 8 Y=4 16 Y=5 32 Y=6 64 Y=7 128 Y=8 256 Y=9 512 MEMORIZE! CS 61C L01 Introduction + Numbers (39)