Вы находитесь на странице: 1из 35

Computer Architecture I (1DT016)

Cary Laxer, Ph.D.


Visiting Lecturer

Informationsteknologi

Todays class
Introductions
Computer organization overview
Introduction to assembly language
programming

Friday, Septembe

Computer Architecture I - Clas

Introductions

Informationsteknologi

Instructor

Cary Laxer
Visiting lecturer
Home institution is Rose-Hulman Institute of
Technology, Terre Haute, Indiana, USA
Professor and Head of Computer Science and
Software Engineering
Bachelors degree in computer science and
mathematics from New York University
Ph.D. in biomedical engineering from Duke
University

Friday, Septembe

Computer Architecture I - Clas

Informationsteknologi

Course

Information is maintained on the course website:

www.it.uu.se/edu/course/homepage/dark/ht07

Three weekend meetings

Friday and Saturday each time


Lecture and lab time both days

Texts

Structured Computer Organization (Fifth Edition) by Andrew S.


Tanenbaum
Introduction to RISC Assembly Language Programming by
John Waldron

Friday, Septembe

Computer Architecture I - Clas

Informationsteknologi

Introduce yourselves

Tell us:
Your

name
Your hometown
Your computer background
Something interesting about yourself

Friday, Septembe

Computer Architecture I - Clas

Computer organization
overview

Informationsteknologi

Programs and languages

Program a sequence of instructions to


perform a certain task
High level language English-like programming
languages such as C++, Java, etc.
Machine language computers primitive
instruction set (e.g. add two numbers, compare
a number to 0)
Assembly language mnemonics for machine
language instructions

Friday, Septembe

Computer Architecture I - Clas

Informationsteknologi

Languages, Levels, Virtual Machines

A multilevel machine

Friday, Septembe

Computer Architecture I - Clas

Informationsteknologi

Contemporary Multilevel
Machines

Friday, Septembe

Computer Architecture I - Clas

10

Informationsteknologi

Milestones in Computer
Architecture (1)

Friday, Septembe

Computer Architecture I - Clas

11

Informationsteknologi

Milestones in Computer
Architecture (2)

Friday, Septembe

Computer Architecture I - Clas

12

Informationsteknologi

Computer Generations

Zeroth Generation
Mechanical Computers (1642 1945)
First Generation
Vacuum Tubes (1945 1955)
Second Generation
Transistors (1955 1965)
Third Generation
Integrated Circuits (1965 1980)
Fourth Generation
Very Large Scale Integration (1980 ?)

Friday, Septembe

Computer Architecture I - Clas

13

Informationsteknologi

Von Neumann Machine

Friday, Septembe

Computer Architecture I - Clas

14

Informationsteknologi

PDP-8 Innovation Single


Bus

Friday, Septembe

Computer Architecture I - Clas

15

Informationsteknologi

IBM 360

Friday, Septembe

Computer Architecture I - Clas

16

Informationsteknologi

The Computer Spectrum

Friday, Septembe

Computer Architecture I - Clas

17

Informationsteknologi

Personal Computer
1. Pentium 4 socket
2. 875P Support chip
3. Memory sockets
4. AGP connector
5. Disk interface
6. Gigabit Ethernet
7. Five PCI slots
8. USB 2.0 ports
9. Cooling technology
10. BIOS

Friday, Septembe

Computer Architecture I - Clas

18

Informationsteknologi

Intel Computer Family

Friday, Septembe

Computer Architecture I - Clas

19

Informationsteknologi

The Pentium 4 Chip

Friday, Septembe

Computer Architecture I - Clas

20

Informationsteknologi

Metric Units

The principal metric prefixes.


Friday, Septembe

Computer Architecture I - Clas

21

Introduction to Assembly
Language

Informationsteknologi

Number systems
Decimal (base 10)
Binary (base 2)
Hexadecimal (base 16)

Friday, Septembe

Computer Architecture I - Clas

23

Informationsteknologi

Twos complement numbers

Represent negative integers to the computer


To determine the twos complement of an
integer:

Invert all the bits (make zeroes ones and ones


zeroes)
Add 1

Example: 29 = 0001 1101

Invert all the bits: 1110 0010


Add 1: 1110 0011 (this is -29)

Friday, Septembe

Computer Architecture I - Clas

24

Informationsteknologi

Integer storage and


capacities
Bit 0 or 1 (one binary digit)
Nibble 4 bits, 0-15 (one hex digit)
Byte 8 bits, 2 hex digits, 0-255 or -128
to +127
Word 4 bytes, 32 bits, 8 hex digits

to 232-1 or 0 to 4,294,967,295 unsigned


-(231) to 231-1 or -2,147,483,648 to
+2,147,483,647 signed
Friday, Septembe

Computer Architecture I - Clas

25

Informationsteknologi

Characters
ASCII (American Standard Code for
Information Interchange)
EBCDIC (Extended Binary-Coded
Decimal Interchange Code)
Unicode

Friday, Septembe

Computer Architecture I - Clas

26

Informationsteknologi

In-class exercise

Write the number 30010 in:

Write the number -7810 in:

Binary
Hex
Eight-bit twos complement binary notation
32-bit twos complement hexadecimal notation

Using one byte to store integers, what happens


when you add:

255 + 1 using unsigned numbers


127 + 1 using signed numbers

Friday, Septembe

Computer Architecture I - Clas

27

Informationsteknologi

The MIPS Processor


MIPS = Microprocessor without
Interlocked Pipeline Stages
It is a RISC (reduced instruction set
computer) architecture
Currently used in many embedded
systems, such as TiVO, Windows CE
devices, Nintendo 64, and Sony
Playstation 2

Friday, Septembe

Computer Architecture I - Clas

28

Informationsteknologi

MIPS Memory Organization

Memory is byteaddressable
Addresses of
memory
cells

Friday, Septembe

0x00000000

0x00

0x00000001

0xA0

0x00000002

0x3E

0x00000003

0x10

.
.
.
0xFFFFFFFC

0x90

0xFFFFFFFD

0x6F

0xFFFFFFFE

0xA1

0xFFFFFFFF

0x00

Computer Architecture I - Clas

Each
cell
holds
one
byte

29

Informationsteknologi

MIPS Memory Layout

A programs address
space is composed of
three parts:

At the bottom of the user


address space
(0x00400000) is the text
segment, which holds the
programs instructions
Starting at address
0x10000000 is the data
segment
The program stack resides
at the top of the address
space (0x7FFFFFFF) and
grows down

Friday, Septembe

0x7FFFFFFF

Stack segment

.
.
.
Data segment
0x10000000

Text segment
0x00400000

Reserved

Computer Architecture I - Clas

30

Informationsteknologi

MIPS Registers

Program counter (PC) holds address of next


instruction to be executed
32 general purpose registers, numbered 0-31

Register n is designated by $n or Rn
Register zero, $0, always contains the hardwired
value 0
There are conventions governing their use (see
Table 3.1 on page 20 of Waldron)

16 floating point registers $f0$f15 to hold


floating point numbers

Friday, Septembe

Computer Architecture I - Clas

31

Informationsteknologi

SPIM Simulator
Runs programs for the MIPS assembly
language on other platforms
Free versions available online (I got a
Windows version at
http://pages.cs.wisc.edu/~larus/spim.html)

Friday, Septembe

Computer Architecture I - Clas

32

Informationsteknologi

SPIM I/O

10 operating system-like services through the


syscall instruction
Load the system call code (see Table 3.2 on
page 22 of Waldron) into register $v0 ($2)
Load the arguments into registers $a0$a3
($4$7) (or $f12 for floating point values)
Return values are placed in register $v0 (or
$f0 for floating point results)

Friday, Septembe

Computer Architecture I - Clas

33

Informationsteknologi

Hello World
.text
.globl __start
__start:
la $a0,str
li $v0,4
syscall
li $v0,10
syscall

str:

#
#
#
#

execution starts here


put string address into a0
system call to print
out a string

# au revoir...

.data
.asciiz "hello world\n"

Friday, Septembe

Computer Architecture I - Clas

34

Informationsteknologi

Demonstration

Demo of PCSpim using the Hello World


program

Friday, Septembe

Computer Architecture I - Clas

35

Вам также может понравиться