CH 01
CH 01
CH 01
TEXT BOOK:
1. Introduction to Computing Systems
From Bits and Gates to C and Beyond, 2nd Edition
Au: Yale N. Patt, Sanjay J. Patel
1-1
1-2
1
Vietnamese book
Hệ thống
máy tính và
Ngôn ngữ C
1-3
1-4
2
Grading
- Assignments, attending, exercises, …: 5 %
- Machine problems: 5 MPs: 20 %
- Mid-term 1: 10 % in week 6 (?)
- Mid-term 2: 15% in week 11 (?)
- Final exam: 50%
+ 5 problems, with the following rules:
* closed books exam
* format: writing
* time: >= 90 minutes.
- The project:
Car robot designing project using Arduino and C
-> +1 p. to final exam max. and +1 p. to final grade on
my side.
1-5
http://tuyensinh.tuoitre.vn/tin/20170115/thue-xe-di-du-tu-van-tuyen-sinh-tu-giua-khuya/1252447.html
1-6
3
SYLLABUS
1-7
1. Math, Physics, …
2. Literature, History, …
3. Art, Music, …
1-8
4
Chapter 1
Welcome Aboard
Introduction
1-10
5
From Theory to Practice
In theory, computer can compute anything
that’s possible to compute
• given enough memory and time
1-11
Problems
Algorithms
Language
Microarchitecture
Circuits
Devices
1-12
6
How do we solve a problem using a computer?
A systematic sequence of transformations between
layers of abstraction.
Problem
Software Design:
choose algorithms and data structures
Algorithm
Programming:
use language to express design
Program
Compiling/Interpreting:
convert language to
Instr Set machine instructions
Architecture
1-13
Instr Set
Architecture
Processor Design:
choose structures to implement ISA
Microarch
Logic/Circuit Design:
gates and low-level circuits to
Circuits implement components
1-14
7
Descriptions of Each Level
Problem Statement
• stated using "natural language"
• may be ambiguous, imprecise
Algorithm
• step-by-step procedure, guaranteed to finish
• definiteness, effective computability, finiteness
Program
• express the algorithm using a computer language
• high-level language, low-level language
Instruction Set Architecture (ISA)
• specifies the set of instructions the computer can perform
• data types, addressing mode
1-15
Microarchitecture
• detailed organization of a processor implementation
• different implementations of a single ISA
Logic Circuits
• combine basic operations to realize microarchitecture
• many different ways to implement a single function
(e.g., addition)
Devices
• properties of materials, manufacturability
1-16
8
Many Choices at Each Level
Solve a system of equations
Gaussian Jacobi
Red-black SOR Multigrid
elimination iteration
Course Outline
Bits and Bytes
• How do we represent information using electrical signals?
Processor and Instruction Set
• How do we build a processor out of logic elements?
• What operations (instructions) will we implement?
Assembly Language Programming
• How do we use processor instructions to implement algorithms?
• How do we write modular, reusable code? (subroutines)
I/O, Traps, and Interrupts
• How does processor communicate with outside world?
C Programming
• How do we write programs in C?
• How do we implement high-level programming constructs?
• Data structures: stack, linked lists, tree, …
• Object oriented programming with C++
1-18
9
A BLANK PAPER !!!
1-19
1-20
10
START…
How do we represent data in a computer?
At the lowest level, a computer is an electronic machine.
• works by controlling the flow of electrons
2-21
11
What kinds of data do we need to represent?
Data type:
• representation and operations within the computer
We’ll start with numbers…
2-23
Unsigned Integers
Non-positional notation
• could represent a number (“5”) with a string of ones (“11111”)
• problems?
most least
329 significant
101 significant
2-24
12
Unsigned Integers (cont.)
An n-bit unsigned integer represents 2n values:
from 0 to 2n-1.
22 21 20
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7
2-25
carry
10111
+ 111
13
Signed Integers
With n bits, we have 2n distinct values.
• assign about half to positive integers (1 through 2 n-1)
and about half to negative (- 2n-1 through -1)
• that leaves two values: one for 0, and one extra
Positive integers
• just like unsigned – zero in most significant (MS) bit
00101 = 5
Negative integers
• sign-magnitude – set MS bit to show negative,
other bits are the same as unsigned
10101 = -5
• one’s complement – flip every bit to represent negative
11010 = -5
• in either case, MS bit indicates sign: 0=positive, 1=negative
2-27
2-28
14
Two’s Complement
Problems with sign-magnitude and 1’s complement
• two representations of zero (+0 and –0)
• arithmetic circuits are complex
How to add two sign-magnitude numbers?
– e.g., try 2 + (-3)
How to add to one’s complement numbers?
– e.g., try 4 + (-3)
Two’s complement representation developed to make
circuits easy for arithmetic.
• for each positive number (X), assign value to its negative (-X),
such that X + (-X) = 0 with “normal” addition, ignoring carry out
2-30
15
Two’s Complement Shortcut
To take the two’s complement of a number:
• copy bits from right to left until (and including) the first “1”
• flip remaining bits to the left
011010000 011010000
100101111 (1’s comp) (flip) (copy)
+ 1
100110000 100110000
2-31
-23 22 21 20 -23 22 21 20
0 0 0 0 0 1 0 0 0 -8
0 0 0 1 1 1 0 0 1 -7
0 0 1 0 2 1 0 1 0 -6
0 0 1 1 3 1 0 1 1 -5
0 1 0 0 4 1 1 0 0 -4
0 1 0 1 5 1 1 0 1 -3
0 1 1 0 6 1 1 1 0 -2
0 1 1 1 7 1 1 1 1 -1
2-32
16
Converting Binary (2’s C) to Decimal
1. If leading bit is one, take two’s
complement to get a positive number.
2. Add powers of 2 that have “1” in the n 2n
0 1
corresponding bit positions. 1 2
3. If original number was negative, 2 4
add a minus sign. 3 8
4 16
5 32
X = 01101000two 6 64
7 128
= 26+25+23 = 64+32+8 8 256
= 104ten 9 512
10 1024
2-33
More Examples
X = 00100111two
= 25+22+21+20 = 32+4+2+1 n 2n
= 39ten 0 1
1 2
2 4
X = 11100110two 3 8
4 16
-X = 00011010 5 32
= 24+23+21 = 16+8+2 6 64
7 128
= 26ten 8 256
X= -26ten 9 512
10 1024
2-34
17
Converting Decimal to Binary (2’s C)
First Method: Division
1. Find magnitude of decimal number. (Always positive.)
2. Divide by two – remainder is least significant bit.
3. Keep dividing by two until answer is zero,
writing remainders from right to left.
4. Append a zero as the MS bit;
if original number was negative, take two’s complement.
18
Operations: Arithmetic and Logical
Recall:
a data type includes representation and operations.
We now have a good representation for signed integers,
so let’s look at some arithmetic operations:
• Addition
• Subtraction
• Sign Extension
We’ll also look at overflow conditions for addition.
Multiplication, division, etc., can be built from these
basic operations.
Logical operations are also useful:
• AND
• OR
• NOT
2-37
Addition
As we’ve discussed, 2’s comp. addition is just
binary addition.
• assume all integers have the same number of bits
• ignore carry out
• for now, assume that sum fits in n-bit 2’s comp. representation
2-38
19
Subtraction
Negate subtrahend (2nd no.) and add.
• assume all integers have the same number of bits
• ignore carry out
• for now, assume that difference fits in n-bit 2’s comp.
representation
2-39
Sign Extension
To add two numbers, we must represent them
with the same number of bits.
If we just pad with zeroes on the left:
4-bit 8-bit
0100 (4) 00000100 (still 4)
1100 (-4) 00001100 (12, not -4)
2-40
20
Overflow
If operands are too big, then sum cannot be represented
as an n-bit 2’s comp number.
2-41
TAKE OUT
A BLANK PAPER
2-42
21
Exercises in class
1. How many possible states (combinations) from 5 bits,
6 bits, 7 bits.
2. If we use the numbers of bits above as numbers of
address pins of memory. Give these addresses.
3. Give ranges of unsigned integers, signed integers (2’s
comp.) from 6, 7 bits.
4. Look for 2’s comp. of 25, 76, -54, -65
5. Take sums in binary systems:
25 – 15 7–6
2-43
Logical Operations
Operations on logical TRUE or FALSE
• two states -- takes one bit to represent: TRUE=1, FALSE=0
A B A AND B A B A OR B A NOT A
0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 1 0 1
1 1 1 1 1 1
22
Examples of Logical Operations
AND 11000101
• useful for clearing bits
AND 00001111
AND with zero = 0
AND with one = no change 00000101
OR
11000101
• useful for setting bits
OR with zero = no change OR 00001111
OR with one = 1 11001111
NOT
• unary operation -- one argument
NOT 11000101
• flips every bit 00111010
2-45
Hexadecimal Notation
It is often convenient to write binary (base-2) numbers
as hexadecimal (base-16) numbers instead.
• fewer digits -- four bits per hex digit
• less error prone -- easy to corrupt long string of 1’s and 0’s
2-46
23
Converting from Binary to Hexadecimal
Every four bits is a hex digit.
• start grouping from right-hand side
3 A 8 F 4 D 7
2-47
Fractions: Fixed-Point
How can we represent fractions?
• Use a “binary point” to separate positive
from negative powers of two -- just like “decimal point.”
• 2’s comp addition and subtraction still work.
if binary points are aligned
2-1 = 0.5
2-2 = 0.25
2-3 = 0.125
00101000.101 (40.625)
+ 11111110.110 (-1.25)
00100111.011 (39.375)
No new operations -- same as integer arithmetic.
2-48
24
Very Large and Very Small: Floating-Point
Large values: 6.023 x 1023 -- requires 79 bits
Small values: 6.626 x 10-34 -- requires >110 bits
S Exponent Fraction
2-50
25
Floating Point Example
Single-precision IEEE floating point number:
10111111010000000000000000000000
2-51
00 nul 10 dle 20 sp 30 0 40 @ 50 P 60 ` 70 p
01 soh 11 dc1 21 ! 31 1 41 A 51 Q 61 a 71 q
02 stx 12 dc2 22 " 32 2 42 B 52 R 62 b 72 r
03 etx 13 dc3 23 # 33 3 43 C 53 S 63 c 73 s
04 eot 14 dc4 24 $ 34 4 44 D 54 T 64 d 74 t
05 enq 15 nak 25 % 35 5 45 E 55 U 65 e 75 u
06 ack 16 syn 26 & 36 6 46 F 56 V 66 f 76 v
07 bel 17 etb 27 ' 37 7 47 G 57 W 67 g 77 w
08 bs 18 can 28 ( 38 8 48 H 58 X 68 h 78 x
09 ht 19 em 29 ) 39 9 49 I 59 Y 69 i 79 y
0a nl 1a sub 2a * 3a : 4a J 5a Z 6a j 7a z
0b vt 1b esc 2b + 3b ; 4b K 5b [ 6b k 7b {
0c np 1c fs 2c , 3c < 4c L 5c \ 6c l 7c |
0d cr 1d gs 2d - 3d = 4d M 5d ] 6d m 7d }
0e so 1e rs 2e . 3e > 4e N 5e ^ 6e n 7e ~
0f si 1f us 2f / 3f ? 4f O 5f _ 6f o 7f del
2-52
26
Interesting Properties of ASCII Code
What is relationship between a decimal digit ('0', '1', …)
and its ASCII code?
2-54
27
LC-3
Little Computer 3, or LC-3, is a type of computer
educational programming language, an assembly
language, which is a type of low-level programming
language.
2-56
28