310 likes | 325 Views
CDA 3100 Spring 2010. Special Thanks. Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course. Class organization. My name is Zhenghao Zhang
E N D
Special Thanks • Thanks to Dr. Xiuwen Liu for letting me use his class slides and other materials as a base for this course
Class organization • 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. • Class web page • http://www.cs.fsu.edu/~zzhang/CDA3100_Spring 2010.htm CDA3100
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 CDA3100
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 CDA3100
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 CDA3100
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
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 science major CDA3100
Career Potential for a Computer Science Graduate http://www.jobweb.com/studentarticles.aspx?id=904&terms=starting+salary CDA3100
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) CDA3100
Computer System Overview • A computer system consists of hardware and software that are combined to provide a tool to solve problems (with best performance) • Hardware includes CPU, memory, disks, screen, keyboard, mouse ... • Software includes • System software • A general environment to create specific applications • Application software • A tool to solve a specific problem CDA3100
Steps to Run a C Program – First, compiling it into machine code CDA3100
Steps to Run a C Program • Then we need to run the program • The operating system locates where the program is • Then it loads the program into memory • The instructions in the program are then executed one by one • When the program is done, the operating system then releases the memory and other resources allocated to the program CDA3100
Opening the Box CDA3100
A Pentium 4 Processor Chip CDA3100
Numbers • Numbers are abstraction of quantities • http://www.debtclock.com/ • How do we represent these quantities? CDA3100
We humans naturally use a particular numbering system Decimal Numbering System CDA3100
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 CDA3100
General Numbering System – Base X • Besides 10, we can use other bases as well • In base X, the value of CDA3100
Commonly Used Bases • Note that other bases are used as well including 12 and 60 • Which one is natural to computers? • Why? CDA3100
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 CDA3100
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? CDA3100
Conversion Between Bases • From binary to decimal example CDA3100
Conversion Between Bases • Converting from decimal to binary: • given a number in decimal, repeatedly divide it by 2, and write down the remainder from right to the left, until the quotient is 0 • Example: 11.
Signed Numbers • How to represent negative numbers? • Sign and magnitude • We use an additional bit to represent the sign of the number • If the sign bit is 1, it represents a negative number • If the sign bit is 0, it represents a positive number • How about zero then? • There are other shortcomings of this representation • Related to the hardware implementation of adders • An extra step is required in general to set the sign since the proper sign can not be determined in advance • It is not widely used for integer representations CDA3100
Signed Numbers • Two’s complement • The negative of a two’s complement is given by inverting each bit from 0 to 1 and 1 to 0 and then adding 1 CDA3100
2’s complement • In any computer, if numbers are represented in n bits, the non-negative numbers are from 0000…00 to 0111…11, the negative numbers are from 1000…00 to 1111…11.
The positive half from 0 to 2,147,483,647 • The negative half from -2,147,483,648 to -1
Two’s Complement Representation • Properties • All negative numbers have a 1 in the most significant bit • Hardware only needs to test this bit to see if a number is positive or negative • The leading bit is often called the sign bit • For , the decimal value is CDA3100
Why use 2’s complement? • For example, consider 01101 +(– 00011) = 01101 – 00011 = 01010 (13-3=10 in decimal). • 01101 – 00011 = 01101 + 100000 – 00011 – 100000 = 01101 + (100000 – 00011) – 100000 = 01101 + 11101 – 100000 = 101010 – 100000 = 01010 • 11101 is the 2’s complement of 00011. • Means that computer (the adder) does not have to be specifically redesigned for dealing with negative numbers, make life easier for the computer • The reason is, assume you are subtracting a with b , where 2^{n}>a>b>0. Note that a-b=a+2^{n+1}-b-2^{n+1}. But 2^{n+1}-b is the 2’s complement of b. Also note that 2^{n}>a-b>0. So if represented in binary forms, a+2^{n+1}-b will be having a 1 bit in bit n+1 and some thing in bit 0 to bit n-1 equal to a-b. Bit n will be 0. So you take what is in bit 0 to bit n and it must be a-b.