37
1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

Embed Size (px)

Citation preview

Page 1: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

1

i206: Lecture 2:Computer Architecture, Binary Encodings, and Data Representation

Marti HearstSpring 2012

Page 2: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

2

ComputerOrganization

Bits & BytesBinary Numbers

Number Systems

Gates

Boolean Logic

Circuits

CPU Machine Instructions

Assembly Instructions

Program Algorithms

Application

Memory

Data compression

Compiler/Interpreter

OperatingSystem

Data Structures

Analysis

I/O

Memory hierarchy

Design

Methodologies/Tools

Process

DataRepresentation

Data

Data storage

Principles

Network

Distributed Systems Security

Cryptography

Standards & Protocols

Inter-processCommunication

Big-O

Formal models

Page 3: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

3John Chuang 3

Computers of Different Shapes and Sizes

Page 4: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

4

Computer System Components

1. Hardware – provides basic computing resources (CPU, memory, I/O devices, network)

2. Operating system – controls and coordinates the use of the hardware among the various application programs for the various users

3. Applications programs – define the ways in which the system resources are used to solve the computing problems of the users (compilers, database systems, video games, business programs)

4. Users (people, machines, other computers)

Source: Silberschatz, Galvin, Gagne

Page 5: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

5

DataRepresentation

Bits & BytesBinary Numbers

Number Systems

Gates

Boolean Logic

Circuits

CPU Machine Instructions

Assembly Instructions

Program Algorithms

Application

Memory

Data compression

Compiler/Interpreter

OperatingSystem

Data Structures

Analysis

I/O

Memory hierarchy

Design

Methodologies/Tools

Process

Numbers, text,audio, video, image, …

Decimal, Hexadecimal, Binary

Lossless v. lossyParity bits & Huffman code

DataRepresentation

Data

Data storage

Principles

Network

Distributed Systems Security

Cryptography

Standards & Protocols

Inter-processCommunication

Big-O

Formal models

Page 6: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

6

How Do Computers Work?We are going bottom-up, with digressions

Bits & Bytes Binary Numbers

Number Systems

Orders of MagnitudeGates

Boolean Logic

Circuits

CPU Machine Instructions

Assembly Language

Programming Languages

Address Space

Code vs. Data

Page 7: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

7

Data Representation• All data stored in and manipulated by a digital

computer are represented by patterns of bits:– Numbers– Text characters– Sound– Images and videos– Anything else…

• Bit – Binary Digit = a symbol whose meaning depends on

the application at hand• Binary: takes on values of ‘0’ or ‘1’

– Or equivalently, “FALSE” or “TRUE”, “OFF” or “ON”

Page 8: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

8

Bytes

• A sequence of bits • 8 bits = 1 byte• 2 bytes = 1 word (sometimes 4 or 8 bytes)• How do binary numbers work?

Page 9: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

9

Number Systems

Images from http://courses.cs.vt.edu/~csonline/MachineArchitecture/Lessons/Circuits/index.html

Page 10: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

10

Binary Number System

Images from http://courses.cs.vt.edu/~csonline/MachineArchitecture/Lessons/Circuits/index.html

110

= 6 decimal

Page 11: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

11

Powers of Two

Decimal Binary Power of 2

1 1

2 10

4 100

8 1000

16 10000

32 100000

64 1000000

128 10000000

021222

42

32

526272

Page 12: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

12

Famous Powers of Two

Images from http://courses.cs.vt.edu/~csonline/MachineArchitecture/Lessons/Circuits/index.html

As Brookshear points out, these are non-standard uses of K,M,G,B

but we’re stuck with them.

As Brookshear points out, these are non-standard uses of K,M,G,B

but we’re stuck with them.

Page 13: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

13

Orders of Magnitude

• Each increase in the power of 10 is an increase in the order of magnitude• http://micro.magnet.fsu.edu/primer/java/scienceopticsu/powersof10/index.html

Page 14: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

14

Other Number Systems

Images from http://courses.cs.vt.edu/~csonline/MachineArchitecture/Lessons/Circuits/index.html

Page 15: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

15

Where do we see Hex on the Web?

Page 16: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

16

Binary Addition

Images from http://courses.cs.vt.edu/~csonline/MachineArchitecture/Lessons/Circuits/index.html

Also: 1 + 1 + 1 = 1 with a carry of 1

Page 17: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

17

Convert Decimal to Binary

Images from http://courses.cs.vt.edu/~csonline/MachineArchitecture/Lessons/Circuits/index.html

13 = 8 + 4 + 1 = 1101

128 64 32 16 8 4 2 1

128 64 32 16 8 4 2 1

Page 18: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

18

Decimal-Binary ConversionDecimal to binary:

Binary to decimal:

Page 19: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

19

Binary Representation of Fractions and Floating-Point Numbers

Page 20: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

20

Representing text

• Each printable character (letter, punctuation, etc.) is assigned a unique bit pattern.– ASCII = 7-bit values for most symbols used in written

English text (see Appendix A in Brookshear)– Unicode = 16-bit values for most symbols used in most

world languages today– ISO proposed standard = 32-bit values

• Example: the message ‘Hello.’ in ASCII encoding

Page 21: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

21

Write “Go Bears!” in hex or binary (the code below is decimal)

! is 33, space is 32

128 64 32 16 8 4 2 1

128 64 32 16 8 4 2 1

Page 22: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

22

Write “Go Bears!” in binary / hex

010001110110111100100000010000100110010101100001011100100111001100100001

476F20426561727321

Page 23: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

23

Representation of Images and Video

• Image encoding:– Number of bits per pixel (e.g.,

24 bits for RGB color)– Number of pixels in image

(e.g., 480*640)

• Video encoding:– Number of bits per pixel– Number of pixels per frame– Number of frames per second

Page 24: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

24

Audio Encoding

• Telephone: – 8,000 samples per second– 8 bits per sample 64 kbps

• CD-quality audio: – 44,100 samples per second– 16 bits per sample– 2 channels for stereo 1.4 Mbps 60 minute music CD takes ~630MB

• There are many audio encoding standards (e.g., H.323 for Voice-over-IP, MP3 for music)

The sound wave represented by the sequence 0, 1.5, 2.0, 1.5, 2.0, 3.0, 4.0, 3.0, 0

Page 25: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

25

Data Compression

• Encoding data using fewer bits

• There are many encoding standards– (e.g., JPEG, MPEG, MP3) include data compression

• Lossless – data received = data sent– used for executables, text files, numeric data

• Lossy– data received != data sent– used for images, video, audio

Page 26: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

26

Video Encoding Examples

• Uncompressed video:– 8 bits per pixel– 480*640 pixels per frame– 24 frames per second 56 Mbps

• Uncompressed HDTV:– 24 bits per pixel– 1920*1080 pixels per frame– 24-60 frames per second 1000-3000 Mbps

Page 27: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

27

Data Compression:Run-length encoding

If there is a long sequence of repeated numbers, just say how many of each.

– 0000000000000100000000000– 13 0’s– 1 1– 11 0’s– How many bits long is this in binary?

Page 28: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

28

Data Compression:Frequency-dependent encoding

• The length of the representation of the bit pattern is inversely related to its frequency of occurrence.

• Which letters of English are most frequent?

• Give these shorter representations.

Page 29: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

29

Wikipedia (via google cache)

Page 30: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

30

What else do we see this used?

Wikipedia (via google cache)

Page 31: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

31

Data CompressionFrequency Dependent Encoding

• ASCII coding uses 7 bits to represent characters• Can we devise a more intelligent encoding

scheme given knowledge that some characters (e.g., “a”, “e”) occur more frequently than others (e.g., “q”, “z”)?

• Huffman code: variable length frequency dependent encoding– Intuition: assign shorter codes for characters that occur

more frequently

Page 32: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

32

Huffman Coding• Choose codes such that less likely messages have

longer lengths.• Given: messages with known weights (probabilities

of occurrence)– Construct binary tree with each message as a leaf node– Iteratively merge two nodes with lowest weights– Assign bits (0/1) to each branch– Read binary tree from root to leaf to obtain code for

each message

Message

Code

a1 0

a2 10

a3 111

a4 110

http://en.wikipedia.org/wiki/Huffman_code

Page 33: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

33

Error-Correction Codes

• Parity Bits: add an additional bit to the code– If the sum of the bits is even, add a 1 to make it odd

• What if there are two errors?– Checkbyte for long codes – Example: 1 bit for every 8th bit in the code

• But this doesn’t correct the error!• How can we do this?

Page 34: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

34

Error-Correction Codes

• Hamming Distance:– Number of bits in which the codes differ

• Assign codes so they all have a Hamming Difference of at least 3

• If a code differs by 1, you can tell which bit flipped.

• If a code differs by 2, you can tell there is an error of some kind.

Page 35: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

35

Error-Correction Codes

Pattern: 010100

Page 36: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

36

Summary

• Different types of data (e.g., numbers, text characters, sounds, images, videos) can all be represented using binary bits

• Compression techniques allow compact encoding of information

• There are many standards for encoding different data types– Compression often part of encoding standard

• Up next: how these binary represented data can be stored, communicated, and operated upon

Page 37: 1 i206: Lecture 2: Computer Architecture, Binary Encodings, and Data Representation Marti Hearst Spring 2012

37

Next

• Read: Brookshear 1.1, 2.1 – 2.4 • Read: Brookshear 6.1-6.5 (for a review of OO for lab)