Computer Organization & Assembly Language

Download Report

Transcript Computer Organization & Assembly Language

Computer Organization
& Assembly Language
1
Grading
อ.เกตุกาญจน์ ไชยขันธุ์
 Midterm
 เข้าเรี ยน
 Quiz
(ทุกวันจันทร์ )
 Homework
Total
อ.สนัน่ จันทร์พรม
 55%
20%
5%
10%
10%
45%
2
Syllabus

The Basic Structure of Computers
 Number Representations
 Instruction Formats and Addressing Modes
 Assembly Language
 I/O Organization
 Computer Arithmetic
 Basic Processing Unit
 Memory Subsystem Design
 Cache memory
 Virtual memory
 Pipelining
3
Lecture 1 Introduction
The Basic Structure of
Computers.
4
What is computer?
 อุปกรณ์อิเล็กทรอนิ กส์ที่มีความเร็ วสู งในการประมวลผล ซึ่งจะ
ประมวลผลข้อมูลที่เป็ นดิจิตอล (0 และ 1)
 โปรแกรมคอมพิวเตอร์ คือส่ วนที่ใช้ในเก็บคาสัง่ (instruction)
เพื่อสัง่ ให้คอมพิวเตอร์ทางาน
 ส่ วนที่ใช้เก็บคาสัง่ ภายในระบบคอมพิวเตอร์ คือ Memory
(หน่วยความจา)
 ระบบคอมพิวเตอร์ ที่แตกต่างกันก็จะมีโครงสร้างที่ต่างกันไปด้วย
5
Basic Functional Units
Arithmetic &
Logic Unit
Input
Main Memory
Output
Control Unit
I/O
PROCESSOR
6
Basic Functional Units
: รับคาสัง่ หรื อข้อมูลจาก operators (human,
device or machine) หรื อ คอมพิวเตอร์เครื่ องอื่นๆ
 Memory : ใช้สาหรับเก็บคาสัง่ หรื อข้อมูลต่าง ๆ
 ALU : สาหรับคานวณทางคณิ ตศาสตร์ หรื อตรรกะ
 Output : สาหรับแสดงผล
 Control Unit : สาหรับควบคุมและประสานงานให้หน่วยต่าง ๆ
ทางานด้วยกันได้
 Input
7
What is an instruction?
คือ คาสัง่ ที่ถูก fetched มาจาก Main
Memory เพื่อที่จะนาไป execute ภายใน Processor
 Data คือ operand
 Instruction
 Example
Add
R1, R2
=>
Instruction
Add
=>
Operator
R1, R2
=>
Operand
8
Concept of memory
Storage : fast access memory ที่ใช้
สาหรับเก็บ Program ตัวอย่าง เช่น cache, RAM ซึ่งมีการ
เข้าถึงข้อมูลโดยใช้ความเร็ วสูง
 เมื่อมีการ Execute Memory จะจัดการข้อมูลในลักษณะของ
word (n-bit) ซึ่งโดยปกติแล้วในระบบคอมพิวเตอร์ใน 1
word จะสามารถมีได้ต้ งั แต่ 16 – 64 bit ซึ่งขึ้นอยูก่ บั ประเภท
ของระบบคอมพิวเตอร์
 RAM (random access memory) : หน่วยของ
word ใด ๆ ที่อยูใ่ น RAM สามารถเข้าถึง word ใด ๆ ได้อย่าง
รวดเร็ ว โดยไม่จาเป็ นต้องเป็ นแบบลาดับ (sequence)
 Primary
9
Concept of memory
สามารถจัดเรี ยงได้เป็ นรู ปแบบของลาดับขั้น ซึ่งจะมี
ความแตกต่างกันในด้านของ ความเร็ ว(speed) และขนาด(size)
 Memory
Smaller size, faster
access speed, and more
expensive
(Register,cache, RAM)
Larger size, slower
access speed, and
cheaper (Disk, CD, Tape)
10
Concept of memory
 Secondary
Storage : Disk, CD-Rom, Tape
่ น Disk หรื อ
 เมื่อต้องการ Execute Program ที่เก็บอยูบ
Hard disk จาเป็ นจะต้องมีการโอนย้าย Program ไปยัง
Main Memory ก่อน
 เหตุผลที่จะต้องมี Main Memory ขนาดใหญ่เพื่อทาให้การ
ประมวลผลเร็ วขึ้นก็คืออะไร ?
11
ALU (Arithmetic and Logic Unit)
: คือส่ วนหนึ่งของ Processor ที่ใช้เพื่อการ
execute operations / instructions
 Operators : +, -, *, /, %, compare
 Operand : data หรื อข้อมูล
่ ายใน
 Register : หน่วยเก็บข้อมูลที่มีความเร็ วสู ง ที่ถูกสร้างอยูภ
Processor ซึ่ง ALU สามารถเข้าถึง data ที่อยูภ่ ายใน
register ได้
 ALU
12
ALU (Arithmetic and Logic Unit)
Main
Memory
4
register
8
ALU
12
Processor
13
Control Unit
Unit : ควบคุม, ประสาน การทางานของหน่วยต่าง ๆ ให้
สอดคล้องกัน
 การทางานพื้นฐานของ Control Unit :
 Control



รับ input จาก input unit และส่ งไปจัดเก็บยัง Main memory
Fetch คาสั่ง(instruction) จาก Main memory ไปยัง
Register เพื่อนาไปให้ ALU คานวณ
นาข้อมูลหรื อผลลัพธ์ที่ได้จากการ Process ไปแสดงผลยัง output
unit
14
Basic Operation Concepts
Example Operation : Add LOCA, R0
Event (เหตุการณ์) ที่เกิดขึ้นจากคาสัง่ ด้านบน


1.
2.
3.
4.
คาสั่ง (instruction : Add) จะถูก fetch จาก Main
Memory
Operand ใน location A (ใน main memory) จะถูก
fetch ไปยัง Register
Operand จะถูกบวก(Add) เข้าไปใน R0
ผลลัพธ์(Result) จะถูกเก็บไว้ใน R0
15
Basic Operation Concepts
LOCA, R0 ใน Processor รุ่ นใหม่ๆ
จะทาการแยก คาสัง่ ด้านบนออกเป็ น 2 คาสัง่ ดังนี้
 จากคาสัง่ ADD
Load
Add
LOCA, R1
R1, R0
ซึ่งการแยกออกมาเป็ น 2 คาสั่ งนีจ้ ะทาให้ การประมวลผลเร็วกว่ า เนื่องจากมีการใช้ คาสั่ ง
Load ค่ าใน Main memory มาเก็บไว้ ใน register R1 ก่ อนแล้ วจึงใช้
คาสั่ ง Add ค่ าระหว่ าง register 2 ตัว ซึ่งจะทาให้ เร็วกว่ าการใช้ คาสั่ ง
เพือ่ Add ค่ าใน Main memory กับ register
16
General Architecture of a Processor
Main Memory
MAR
MDR
PC
R0
IR
.
.
.
.
.
.
Control
Unit
ALU
Rn-1
n general purpose registers
PROCESSOR
17
General Architecture of a Processor





IR (instruction register) : เก็บคาสั่งปั จจุบนั
PC (program counter) : เก็บ memory address ของ
คาสั่งถัดไป (next instruction)
MAR (memory address register) : เก็บ address ของ
Main memory ที่จะเข้าถึง
MDR (memory data register) : เก็บ data ที่จะทาการส่ งไป
ยัง Main memory หรื อ รับมาจาก Main memory
General purpose registers : สาหรับเก็บ ข้อมูล, operand
หรื อคาสัง่ ใด ๆ
18
Basic Operation Concepts
เมื่อ Program ถูก execute :

1.
2.
3.
4.
5.
6.
PC จะถูก set ให้ช้ ีไปยังคาสัง่ แรก (first instruction)
Address ที่ PC ชี้อยูจ่ ะถูกส่ งไปยัง MAR
Control unit ส่ งสัญญาณในการอ่าน (Read signal)
คาสั่ง(instruction) จะถูก fetch จาก Main Memory ไปยัง
MDR
คาสั่งที่อยูใ่ น MDR จะถูกส่ งไปยัง IR
ถ้ามี operand ให้ทาการ fetch operand จนครบ (ในบาง
คาสั่งอาจจะไม่มี operand หรื อมี 1 หรื อ 2 หรื อ 3 ตัวก็ได้)
19
Basic Operation Concepts
7.
8.
9.

หลังจาก fetch operand แล้ว ก็จะทาการส่ ง operand จาก
MDR ไปยัง ALU
ALU จะทาการคานวณ
ถ้าต้องการเขียนข้อมูลหรื อผลลัพธ์กลับไปยัง Main memory ก็
จะต้องมีการทา Memory write cycle นัน่ ก็คือ Address จะ
ถูกส่ งไปยัง MAR และ data จะถูกส่ งไปยัง MDR เพื่อนากลับไป
เขียนลงใน Main Memory
ในขณะที่ทาการ execute PC ก็จะทาการเพิ่มค่าเพื่อชี้ไปยัง
คาสัง่ ถัดไป (next instruction)
20
Bus Structure
INPUT
OUTPUT
MEMORY
PROCESSOR
Single Bus Structure
 Bus คือ ทางเชื่อมต่อระหว่างอุปกรณ์ต่าง ๆ ใน computer เข้าด้วยกัน
 ใน Bus จะอนุญาตให้อุปกรณ์เพียงคู่เดียวทาการสื่ อสารกันได้ในช่วงเวลานั้น ๆ
 เมื่อมีการโอนถ่ายข้อมูลที่เป็ น word ระหว่างหน่วยต่าง ๆ เช่น ระหว่าง
Memory กับ Processor ถ้าใน 1 word มี 32 bit ความกว้างของ
Bus ก็จะต้องเป็ น 32 เส้นด้วย (1 bit / 1 line)
21
Bus Structure
 เนื่ องจาก Bus จะอนุญาตให้อุปกรณ์เพียงคู่เดียวทาการสื่ อสารกันได้
ในช่วงเวลานั้น ๆ ดังนั้นจึงต้องมี ประเภทของ Bus แยกออกไปเพื่อ
ทาการแยกการส่ งระหว่าง data, address และ control
signal ดังนี้ :



Data Bus : สาหรับโอนถ่าย Data
Address Bus : สาหรับส่ ง Address
Control Bus : สาหรับ Control signal
22
Performance
 ประสิ ทธิ ภาพของ



Computer ขึ้นอยูก่ บั :
Compiler : compiler สามารถแปล High level
language statement ไปเป็ น Machine level
language statement ได้เร็ วแค่ไหน
Machine Instructions set : ในระบบคอมพิวเตอร์ ที่ต่างกันก็
จะมี Machine Instructions set ที่ต่างกันด้วย
Hardware : ความเร็ วของ Processor และขนาดของ
Memory
23
Performance
time : คือเวลาทั้งหมดที่ทาการ execute
program (รวมทั้งหมด ทั้ง processor speed, I/O
speed, etc.)
 Processor time : ใช้วดั เฉพาะ processor time
เท่านั้น
 จุดประสงค์เมื่อเราทาการ execute program คือ :
 Elapsed


Maximize processor time (ใช้ประโยชน์จาก
processor ให้ได้มากที่สุด)
Minimize transfer time
24
Performance
คือ สัญญาณที่ใช้เพื่อให้จงั หวะเวลากับ processor
เพื่อให้การทางานระหว่างหน่วยต่าง ๆ เข้าจังหวะกัน
 Clock :
 Given




:
P : ความยาวของ Clock cycle
R = 1/P : number of clock cycles per second
Cycles per second หรื อ เฮิร์ท (Hz)
What is the speed of faster processor today?
example
3 GHz = สามารถ execute
3000 million cycle/second
25
Basic Performance Equation
T
= (N*S)/R
 โดย




T : Processor time สาหรับ execute ใน 1 program
N : จานวนของคาสั่ง(instruction)ที่ถกู execute ใน 1
program
S : จานวนของ clock cycle ที่ทาการ execute ใน 1 คาสัง่
(instruction)
R : Clock rate
26
High Performance

การทาให้ Processor มีประสิ ทธิภาพสูงสุ ด (ทาให้ T มีค่าน้อยที่สุด)


Reduces N : โดยการใช้ Compiler ประสิ ทธิภาพสูง
Reduces S : ใช้ pipelining technique
R
E
W
Pipelining
R
E
W
6 cycles

R
E
W
R
E
W
4 cycles
Increase R : Upgrade Hardware
27