cda 3100 spring 2013. special thanks thanks to dr. xiuwen liu for letting me use his class slides...

38
CDA 3100 Spring 2013

Upload: shavonne-sullivan

Post on 21-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

CDA 3100 Spring 2013

Page 2: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Special Thanks

• Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Page 3: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Course Information

Page 4: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 4

About Me

• My name is Zhenghao Zhang– Why I am teaching this course: I worked for two

years as an embedded system engineer, writing codes for embedded controllers.

Page 5: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 5

Class Communication

• This class will use class web site to post news, changes, and updates. So please check the class website regularly

• Please also make sure that you check your emails on the account on your University record

• Blackboard will be used for posting the grades

Page 6: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 6

Required Textbook

• The required textbook for this class is – “Computer Organization and Design”

• The hardware/software interface

– By David A. Patterson and John L. Hennessy– Fourth Edition

Page 7: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 7

Lecture Notes and Textbook• All the materials that you will be tested on will be

covered in the lectures – Even though you may need to read the textbook for

review and further detail explanations– The lectures will be based on the textbook and handouts

distributed in class

Page 8: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Motivations

Page 9: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

What you will learn to answer (among other things)

• How does the software instruct the hardware to perform the needed functions

• What is going on in the processor • How a simple processor is designed

Page 10: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 10

Why This Class Important?• If you want to create better computers

– It introduces necessary concepts, components, and principles for a computer scientist

– By understanding the existing systems, you may create better ones

• If you want to build software with better performance

• If you want to have a good choice of jobs• If you want to be a real computer scientist

Page 11: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 11

Career Potential for a Computer Science Graduate

http://www.jobweb.com/studentarticles.aspx?id=904&terms=starting+salary

Page 12: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 12

Career Potential for a Computer Science Graduate

Source: NACE Fall 2005 Report (http://www.jobweb.com/resources/library/Careers_In/Starting_Salary_51_01.htm)

Page 13: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Required Background

Page 14: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Required Background

• Based on years of teaching this course, I find that you will suffer if you do not have the required C/C++ programming background.

• We will need assembly coding, which is more advanced than C/C++.

• If you do not have a clear understanding at this moment of array and loop , it is recommended that you take this course at a later time, after getting more experience with C/C++ programming.

Page 15: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Array – What Happens? #include <stdio.h>

int main (void)

{

int A[5] = {16, 2, 77, 40, 12071};

A[A[1]] += 1;

return 0;

}

Page 16: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Loop – What Happens?#include <stdio.h>

int main ()

{

int A[5] = {16, 20, 77, 40, 12071};

int result = 0;

int i = 0;

while (result < A[i]) {

result += A[i];

i++;

}

return 0;

}

Page 17: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Getting Started!

Page 18: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 18

Decimal Numbering System• We humans naturally use a particular numbering system

Page 19: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 19

Decimal Numbering System• For any nonnegative integer , its

value is given by

– Here d0 is the least significant digit and dn is the most significant digit

011 dddd nn

011

00

11

11

0

10)10)10)100((((

1010101010

dddd

ddddd

nn

nn

nn

n

i

ii

Page 20: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 20

General Numbering System – Base X

• Besides 10, we can use other bases as well– In base X,

– Then, the base X representation of this number is defined as dndn-1…d2d1d0.

– The same number can have many representations on many bases. For 23 based 10, it is• 23ten

• 10111two

• 17sixteen, often written as 0x17.

011

00

11

11

0

)))0(((( dXdXdXdX

XdXdXdXdXd

nn

nn

nn

n

i

ii

Page 21: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 21

Commonly Used Bases

– Note that other bases are used as well including 12 and 60

• Which one is natural to computers?– Why?

Base Common Name Representation Digits

10 Decimal 5023ten or 5023 0-9

2 Binary 1001110011111two 0-1

8 Octal 11637eight 0-7

16 Hexadecimal 139Fhex or 0x139F 0-9, A-F

Page 22: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 22

Meaning of a Number Representation

• When we specify a number, we need also to specify the base– For example, 10 presents a different quantity in a

different base

• – There are 10 kinds of mathematicians. Those who

can think binarily and those who can't... http://www.math.ualberta.ca/~runde/jokes.html

Page 23: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course
Page 24: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Question

• How many different numbers that can be represented by 4 bits?

Page 25: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Question

• How many different numbers that can be represented by 4 bits?

• Always 16 (24), because there are this number of different combinations with 4 bits, regardless of the type of the number these 4 bits are representing.

• Obviously, this also applies to other number of bits. With n bits, we can represent 2n different numbers. If the number is unsigned integer, it is from 0 to 2n-1.

Page 26: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 26

Conversion between Representations

• Now we can represent a quantity in different number representations– How can we convert a decimal number to binary?– How can we then convert a binary number to a

decimal one?

Page 27: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

04/21/23 CDA3100 27

Conversion Between Bases

• From binary to decimal example15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20

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

5023

1248161282565124096

222222222 0123478912

Page 28: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Converting from binary to decimal

• Converting from binary to decimal. This conversion is also based on the formula:d = dn-12n-1 + dn-22n-2 +…+ d222 + d121 + d020

while remembering that the digits in the binary representation are the coefficients.

• For example, given 101011two, in decimal, it is

25 + 23 + 21 + 20 = 43.

Page 29: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Conversion Between Bases

• Converting from decimal to binary: – Repeatedly divide it by 2, until the quotient is 0.– Write down the remainder from right to the left.

• Example: 11.

Quotient Remainder

5 1

2 1

1 0

0 1

Page 30: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Digging a little deeper

• Why can a binary number be obtained by keeping on dividing by 2, and why should the last remainder be the first bit?

• Note that– Any integer can be represented by the summation of the

powers of 2: d = dn-12n-1 + dn-22n-2 +…+ d222 + d121 + d020

– For example, 19 = 16 + 2 + 1 = 1 * 24 + 0 * 23 + 0 * 22 + 1 * 21 + 1 * 20.

– The binary representation is the binary coefficients. So 19ten in binary is 10011two.

Page 31: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Digging a little deeper

• In fact, any integer can be represented by the summation of the powers of some base, where the base is either 10, 2 or 16 in this course. For example, 19 = 1 * 101 + 9 * 100. How do you get the 1 and 9? You divide 19 by 10 repeatedly until the quotient is 0, same as binary!

• In fact, the dividing process is just an efficient way to get the coefficients.

• How do you determine whether the last bit is 0 or 1? You can do it by checking whether the number is even or odd. Once this is determined, you go ahead to determine the next bit, by checking (d - d020)/2 is even or odd, and so on, until you don’t have to check any more (when the number is 0).

Page 32: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Conversion between Base 16 and Base 2

• Extremely easy. – From base 2 to base 16: divide the digits in to

groups of 4, then apply the table.– From base 16 to base 2: replace every digit by a 4-

bit string according to the table.

• Because 16 is 2 to the power of 4.

Page 33: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Addition in binary

• 39ten + 57ten = ?

• How to do it in binary?

Page 34: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Addition in Binary

• First, convert the numbers to binary forms. We are using 8 bits. – 39ten -> 001001112

– 57ten -> 001110012

• Second, add them.001001110011100101100000

Page 35: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Addition in binary

• The addition is bit by bit. • We will encounter at most 4 cases, where the

leading bit of the result is the carry: 1. 0+0+0=00 2. 1+0+0=013. 1+1+0=104. 1+1+1=11

Page 36: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Subtraction in Binary

• 57ten – 39ten = ?

Page 37: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Subtraction in Binary

001110010010011100010010

Page 38: CDA 3100 Spring 2013. Special Thanks Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course

Subtraction in binary• Do this digit by digit. • No problem if

– 0 - 0 = 0, – 1 - 0 = 1– 1 – 1 = 0.

• When encounter 0 - 1, set the result to be 1 first, then borrow 1 from the next more significant bit, just as in decimal. – Borrow means setting the borrowed bit to be 0 and the bits from the bit following the

borrowed bit to the bit before the current bit to be 1. – Think about, for example, subtracting 349 from 5003 (both based 10). The last digit is

first set to be 4, and you will be basically subtracting 34 from 499 from now on.