0% found this document useful (0 votes)
104 views27 pages

Computer Architecture Computer Systems

Computer Architecture Computer Systems

Uploaded by

Rudolf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
104 views27 pages

Computer Architecture Computer Systems

Computer Architecture Computer Systems

Uploaded by

Rudolf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Elements of Computing Systems, Nisan & Schocken, MIT Press

www.idc.ac.il/tecs

Computer Architecture
Usage and Copyright Notice:
Copyright 2005 Noam Nisan and Shimon Schocken
This presentation contains lecture materials that accompany the textbook The Elements of
Computing Systems by Noam Nisan & Shimon Schocken, MIT Press, 2005.
We provide both PPT and PDF versions.
The book web site, www.idc.ac.il/tecs , features 13 such presentations, one for each book
chapter. Each presentation is designed to support about 3 hours of classroom or self-study
instruction.
You are welcome to use or edit this presentation as you see fit for instructional and noncommercial purposes.
If you use our materials, we will appreciate it if you will include in them a reference to the books
web site.
If you have any questions or comments, you can reach us at [email protected]

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 1

Babbages Analytical Engine (1835)


We may say most aptly that the
Analytical Engine weaves algebraic
patterns just as the Jacquardloom weaves flowers and leaves
(Ada Lovelace)
Charles Babbage (1791-1871)

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 2

Other early computers and computer scientists

Blaise Pascal
1623-1662

Gottfried Leibniz
1646-1716

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 3

Von Neumann machine (c. 1940)


CPU
Memory

Arithmetic Logic
Unit (ALU)

Input
device

(data
+

Registers

instructions)

Output
device

Control

Stored
program
concept!

John Von Neumann (and others) ... made it possible

Andy Grove (and others) ... made it small and fast.

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 4

Processing logic: fetch-execute cycle


CPU
Memory

Arithmetic Logic
Unit (ALU)

Input
device

(data
+

Registers

instructions)
Control

Output
device

Executing the current instruction involves one or more of


the following micro tasks:

Have the ALU compute some function f(registers)

Write the ALU output to selected register(s)

As a side-effect of executing these tasks,


figure out which instruction to fetch and execute next.

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 5

The Hack chip-set and hardware platform


Elementary logic gates

Combinational chips

Sequential chips

Computer Architecture

Nand

HalfAdder

DFF

Memory

FullAdder

Bit

CPU

And

Add16

Register

Computer

Or

Inc16

RAM8

Xor

ALU

RAM64

Not

done

RAM512

Mux
Dmux

this lecture

done

RAM4K

Not16

RAM16K

And16

PC

Or16
Mux16

done

Or8Way
Mux4Way16
Mux8Way16
DMux4Way
DMux8Way

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 6

The Hack computer


16-bit Von Neumann platform
Instruction memory and data memory are physically separate
I/O: 512 by 256 black and white screen, standard keyboard
Designed to execute programs written in the Hack machine language
Can be easily built from the chip-set that we built so far in the course
Main parts of the Hack computer:

Instruction memory

Memory:

Data memory

Screen

Keyboard

CPU

Computer (the glue that holds everything together).

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 7

Lecture plan
Instruction memory
Memory:

Data memory

Screen

Keyboard

CPU
Computer

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 8

Instruction memory

out

address
ROM32K
15

16

Function:
Pre-loaded with a machine language program
Always emits a 16-bit number:
out = ROM32K[address]
This number is interpreted as the current instruction.
Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 9

Data memory
load

in

RAM16K

out
16

16

address
15

Reading/writing logic
Low level: Set address, in, load ; probe out
Higher level (e.g. OS level):

peek(address)
poke(address,value).

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 10

Lecture plan

Instruction memory
Memory:

Data memory

Screen

Keyboard

CPU
Computer

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 11

Screen
load
in
out

16

Screen
address

16

15
Physical
Screen

Functions exactly like a 16-bit 8K RAM :


out = Screen[address]

If load then Screen[address] = in

Side effect:
continuously refreshes a 256 by 512 black-and-white screen.

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 12

Screen memory map


Screen

0 0011000000000000
1 0000000000000000
.
.
.

0 1 2 3 4 5 6 7
row 0

31 0000000000000000
32 0001110000000000
33 0000000000000000
.
.
.

0
1

.
.
.

...
...
...

511

.
.
.

row 1

63 0000000000000000

255

...

8129 0100100000000000
8130 0000000000000000
.
.
.
8160 0000000000000000

row
255

refresh several times


each second

Writing pixel(x,y) to the screen:


Low level: Set the y%16 bit of the word found at
Screen[x*32+y/16]
High level: Use drawPixel(x,y)

(OS service, later).

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 13

Keyboard
out

Keyboard
Keyboard

16

Keyboard chip = 16-bit register


Input: 16-bit value coming from a physical keyboard
Output: the scan code of the pressed key, or 0 if no key is pressed
Special keys:

Reading the keyboard:


Low level: probe the contents of the Keyboard register
High level: use keyPressed()

(OS service, later).

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 14

The Hack computer

Instruction memory
Memory:



Data memory

Screen

Keyboard

CPU
Computer

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 15

Memory
load

Memory
0

in
RAM
(16K)

16

address
15

16383
16384

24575
24576

out
16

Screen
memory map
(8K)
Keyboard
memory map

Screen

Keyboard

Function:
Access to any address from 0 to 16,383 results in accessing the RAM
Access to any address from 16,384 to 24,575 results in accessing the Screen
memory map
Access to address 24,576 results in accessing the keyboard memory map
Access to any address > 24576 is invalid.
Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 16

The Hack computer


Instruction memory
Memory:



Data memory

Screen

Keyboard

CPU
Computer

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 17

CPU
from
data memory

inM
outM

16

instruction
16

CPU

from
instruction
memory

16

writeM
1

to data
memory

addressM
15

pc
reset

15

to instruction
memory

CPU components: ALU + A, D, PC registers


CPU Function: Executes the instruction according to the Hack language specification:
The M value is read from inM
The D and A values are read from (or written to) these CPU-resident registers
If the instruction wants to write to M (e.g. M=D), then the M value is placed in outM, the
value of the CPU-resident A register is placed in addressM, and writeM is asserted
If reset=1, then pc is set to 0;
Otherwise, pc is set to the address resulting from executing the current instruction.
Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 18

CPU
from
data memory

inM
outM

16

from
instruction
memory

instruction
16

CPU

16

writeM
1

to data
memory

addressM
15

pc
reset

15

to instruction
memory

CHIP
CHIP CPU
CPU {{
IN
IN inM[16],
inM[16], instruction[16],
instruction[16], reset;
reset;
OUT
outM[16],
writeM,
addressM[15],
OUT outM[16], writeM, addressM[15], pc[15];
pc[15];
PARTS:
PARTS:
//
// Implementation
Implementation missing
missing
}}

CPU implementation: next 3 slides.


Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 19

The C-instruction revisited


dest = comp; jump
binary:

comp
1

c1 c2 c3 c4

dest
c5 c6

d1 d2

jump
d3 j1 j2 j3

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 20

dest = comp; jump

CPU implementation

binary:

comp
1

dest

c1 c2 c3 c4

c5 c6

d1 d2

jump
d3 j1 j2 j3

Chip diagram:
Includes
most of the
exec. logic

ALU output

Control
logic is
hinted.

D
C

decode

outM
ALU

Mux

Mux

instruction

A/M

inM

writeM
addressM

reset
A

PC

pc

Cycle:

Execute logic:

Fetch logic:

Reset logic:

Fetch

Decode

Execute

Execute

If jump then set PC to A


else set PC to PC+1

Set reset to 1,
then to 0.

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 21

The Hack computer


Instruction memory
Memory:



Data memory

Screen

Keyboard

CPU
Computer

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 22

Computer-on-a-chip interface

reset

Screen

Computer

Keyboard

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 23

Computer-on-a-chip implementation

inM
writeM
instruction

(ROM32K)

outM
CPU

Instruction
Memory

addressM
pc

reset

Data
Memory
(Memory)

CHIP
CHIP Computer
Computer {{
IN
IN reset;
reset;
PARTS:
PARTS:
//
// implementation
implementation missing
missing
}}

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 24

The Big Picture



Instruction memory
Memory:



Data memory

Screen

Keyboard

CPU
Computer

Ya, right,
but what about
the software?

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 25

How it actually looks (thank goodness for abstractions!)

Extension
slots / ports

RAM

CPU

bus

I/O board
(graphics card)

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 26

Perspective
I/O: more units, processors
Special-purpose processors (graphics, communications, )
Efficiency
CISC / RISC (HW/SW trade-off)
Diversity: desktop, laptop, hand-held, game machines,
General-purpose VS dedicated / embedded computers
Silicon compilers
And more ...

Elements of Computing Systems, Nisan & Schocken, MIT Press, www.idc.ac.il/tecs , Chapter 5: Computer Architecture

slide 27

You might also like