• No results found

CMPT 295. Unit - Data Representation Lecture 2 Representing information as bits

N/A
N/A
Protected

Academic year: 2021

Share "CMPT 295. Unit - Data Representation Lecture 2 Representing information as bits"

Copied!
24
0
0

Loading.... (view fulltext now)

Full text

(1)

1

CMPT 295

Unit - Data Representation

(2)

Unit Objectives

 Understand how a computer represents (encodes) data using fixed-size memory

 Become aware of the impact this fixed size has on …

 Range of values represented

 Arithmetic operations

 Become aware of the impact this representation has on …

 Conversion from one data type to another

 Bottom Line: allow software developers to write more reliable code

(3)

Last Lecture

 What is CMPT 295?

 What shall we learn in CMPT 295?  What should we already know?  What course activities shall we do?

 What course resources do we have?

 How will CMPT 295 work remotely this semester?  A suggestion

 A word about Academic Honesty

 Academic Dishonesty - Consequences

 Questions  Activity

(4)

Today’s Menu

 Representing information as a series of bits – Most of this is review

 “Under the Hood” - Von Neumann architecture and Memory

 Bits and bytes in memory

 How to depict memory -> Memory diagram used in this course

 How to represent values of bit vectors/words -> Binary and Hex (conversion)

 What do these bits and bytes mean -> Encoding scheme

 Order of bytes in memory -> Endian

 Bit manipulation – bitwise operations

 Boolean algebra + Shifting

 Representing integral numbers in memory

 Unsigned and signed

 Converting, expanding and truncating

 Arithmetic operations

 Representing real numbers in memory

 IEEE floating point representation

 Floating point in C – casting, rounding, addition, …

(5)

5

“Under the hood”:

Von Neumann architecture

Architecture of most computers Its features:

 CPU, memory,

input and ouput, bus

 Data and code

(programs) both stored in memory

(6)

Closer look at memory

 Seen as a linear array of bytes

 1 byte (8 bits) smallest addressable unit of memory

 Each byte has a unique address

Byte-addressable memory

 Computer reads a “word size” worth of bits at a time

 Questions:

1. If word size is 8, how many bytes are read at a time from memory?

Answer: _________________

2. If a computer can read 4 bytes at a time, its word size is _________________ . 6 M[ ] size−1 0x0000

. .

.

0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 Address

(7)

Even closer look at memory

 Typically, we represent memory content as a series of memory “cells” in which one value (of two possible values) is stored

 i.e., a bit in which 0 or 1 is stored

7 0 1 0 0 0 0 0 0 M[ ]

. .

.

0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 size−1 Address

(8)

Compressed view of memory

8 M[ ]

. .

.

M[ ]

. .

.

0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0000 0x0008 0x0010 0x0018 0x0001 0x0002 0x0003 0x0004 0x0007 0x0005 0x0006 size−1 Address size−8 Address

(9)

Why can only two possible values

be stored in a memory “cell”?

9

 As electronic machines, computers use two voltage levels

 Transmitted on noisy wires -> value of two voltage levels vary over a range

 These ranges are abstracted using “0” and “1”

 Back to the question Why can only two possible values be stored in a memory “cell”?

 Because computers manipulate two-valued information

0.0V 0.2V 0.9V 1.1V

(10)

A bit of history

ENIAC: Electronic Numerical Integrator And Calculator  U. Penn by Eckert + Mauchly (1946)

Data: 20 × 10-digit regs

+ ~18,000 vacuum tubes  To code: manually set switches

and plugged cables

 Debugging was manual

 No method to save program

for later use

 Separated code from

the data 10

(11)

Back to our bits

From binary numeral system

Base: 2

Bit values: 0 and 1

Possible bit patterns in a byte: 00000000

2

to 11111111

2

Drawback of manipulating binary numbers?

What number is this?

01001010 01000101 01000101 01001000

2

Lengthy to write -> not very compact

Difficult to read

11

Error prone!

(12)

A solution: hexadecimal numbers

12

Base: 16

Values: 0, 1, 2, …, 9, A, B, C, D, E, F

Possible patterns in a byte: 00

16

to FF

16

Conversion binary -> hex

e.g.: 1001100 11001001 01000101 01001000

2

Conversion hex -> binary

e.g.: 3D5F

16

(in C:

0x

3D5F)

Decimal Binary Hexadecimal

0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F

Review

(13)

What could these 32 bits represent?

What info do they encode?

13

0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1

2 Answer:

(14)

What do bits represent?

• ASCII character • Unsigned integer • Two’s complement (signed) integer • Floating point • Memory Address • Assembly language and compiler • … Encoding Scheme Bit pattern

• Letters and symbols • Positive numbers • Negative numbers • Real numbers • C pointers • Machine-level instructions • …

14 Definition: An encoding scheme is an interpretation/representation of bits.

0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1

(15)

Endian – Order of bytes in memory

15

It is straight forward to store a byte in memory

All we need is the byte and a memory address

For example, let’s store byte

0 1 1 1 0 0 1 12 at address 0x0000

M[ ] . . . 0x0000 0x0001 0x0002 0x0003 size−1 Address 0 1 1 1 0 0 1 12

(16)

Endian – Order of bytes in memory

16

Question: But how do we store several bytes in memory?

For example, let’s store these 4 bytes starting at address

0x0000

01000010 01101001 01110100 01110011

2

Answer:

M[ ]

. .

.

Way 1: Little endian Way 2: Big endian

M[ ] . . . 0x0000 0x0001 0x0002 0x0003 0x0000 0x0001 0x0002 0x0003 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 size−1 Address size−1 Address

(17)

Manipulating bits -

Boolean algebra

Developed by George Boole in 19th Century

 Algebraic representation of logic

Encode “True” as 1 and “False” as 0

AND -> A&B = 1 when both A=1 and B=1OR -> A|B = 1 when either A=1 or B=1

NOT -> ~A = 1 when A=0XOR (Exclusive-Or) -> A^B = 1 when either A=1 or B=1, but not both

17

(18)

Interesting fact

about Boolean algebra and digital logic

Claude Shannon – 1937 master’s thesis

Made connection between Boolean algebra and digital

logic

 Boolean algebra could be applied to design and analysis of digital systems

Example:

(19)

Let’s try some Boolean algebra!

Operations applied bitwise -> to each bit

Spot the error(s):

19

01101001

2

& 01010101

2

01000001

01101001

2

| 01010101

2

01111101

01101001

2

^ 01010101

2

00111100

~ 01010101

2

10101010

Review

01000001

2

01111101

2

00111110

2

10101010

2

(20)

Manipulating bits -

Shift operations

Left Shift:

x << y

Shift

bit vector

x

left

y

positions

Throw away y most significant

bits (MSb) on left Fill with y 0’s on right

Right Shift:

x >> y

Shift

bit vector

x

right

y

positions

Throw away y bits on right

Logical shift: Fill with y 0’s on left

Arithmetic shift: Replicate most significant bit (sign bit) on left

(21)

Manipulating bits -

Shift operations – Let’s try!

Left Shift:

10111001

2

<< 4

Left Shift:

10111001

2

<< 2

21

Right Shift:

00111001

2

>> 4

Right Shift:

10111001

2

>> 4

Right Shift:

00111001

2

>> 2

logical arithmetic

(22)

Useful bit manipulations

Binary or bit mask

1. AND: Extracts particular bit(s) so we can test whether they are set Example: 101100112 <- some value x

& 000000012 <- binary mask 000000012

2. XOR: Toggle specific bits

Example: 101100112 <- some value x ^ 000111002 <- binary mask

101011112

22

This tells us that the least significant bit (LSb) of x is set

We get a toggled version of the 3 original bits (of x) that correspond to the 3 bits of the binary mask that are set

(23)

Summary

 Von Neumann architecture

 Architecture of most computers

 Its components: CPU, memory, input and ouput, bus

 One of its characteristics: Data and code (programs) both stored in memory

 A look at memory: defined byte-addressablememory, diagram of (compressed) memory

 Word size (w): size of bit vectors we manipulate, also size of machine words (see Section 2.1.2)

 A look at bits in memory

 Reason binary numeral system (0 and 1 -> two values) is used when representing information

 Algorithm for converting binary to hexadecimal (hex)?

1. Partition bit vector into groups of 4 bits, starting from the least significant byte (LSB) on the right.

2. When reach the most significant byte (MSB) on the left, pad its lefthand side with 0’s, if necessary.

3. Translate each group of 4 bits into its hex value.

 What do bits represent? Encoding scheme gives meaning to bits

 Order of bytes in memory: little endian versus big endian

 Bit manipulation – regardless of what bit vectors represent

 Boolean algebra: bitwise operations - and (&), or (|), xor (^), not (~)

 Shift operations: left shift, right logical shift and right arithmetic shift

 Logical shift: Fill with 0’s on the left

 Arithmetic shift: Replicate most significant bit (i.e., sign bit) on the left

23

NOTE:

C logical operators and C bitwise (bit-level) operators behave differently!

Watch out for &&versus &,

(24)

 Representing information as a series of bits – Most of this is review

 “Under the Hood” - Von Neumann architecture and Memory

 Bits and bytes in memory

 How to depict memory -> Memory diagram used in this course

 How to represent values of bit vectors/words -> Binary and Hex (conversion)

 What do these bits and bytes mean -> Encoding scheme

 Order of bytes in memory -> Endian

 Bit manipulation – bitwise operations

 Boolean algebra + Shifting

 Representing integral numbers in memory

 Unsigned and signed

 Converting, expanding and truncating

 Arithmetic operations

 Representing real numbers in memory

 IEEE floating point representation

 Floating point in C – casting, rounding, addition, …

24

References

Related documents

Figure 3: ATID screenshots including (A) Topological structure and references of two alternative isoforms initiated from CRYBA1 gene, and (B) Annotation page of 23.2 kDa

number of adults without benefits, the growth in public financing at the expense of private insurance, and the increasing diversity of the population all point to very slow growth

 The shift and rotate instructions shift the bits in the destination operand by one or more positions either to the left or right..  For a shift instruction, the bits shifted out

The information search processes of international students seeking an Australian university: the use and importance of marketing communication tools..

General properties (diameter, heartwood percentage, bark and pith, sapwood thickness and pith diameter), physical (specific gravity, radial, tangential and volume shrinkage, ratio

This unit is equipped with history of error code memory function, and can be memorized 16 error codes in sequence from the latest.. When the error is occurred more than 16, the

Kod tvrdnje da u programe njihovih studija nije moguće uključiti sadržaje održivog razvoja zbog specifičnosti područja kojim se bave najviše su se složili

The key regulatory step in bacterial glycogen metabolism occurs at the level of ADP-Glc synthesis, in the reaction catalyzed by allosteric ADP-Glc pyrophosphorylase (EC