3 instruction design

30

Transcript of 3 instruction design

Page 1: 3 instruction design
Page 2: 3 instruction design

ชดคาสง คอ กลมของคาสงทใชในการบอกขนตอนการ

ทางานอยางเปนลาดบใหกบ CPU

ชดคาสง เชน ADD (บวก), SUBTRACT (ลบ),

MULTIPLY (คณ), DIVIDE (หาร), COMPARE

(เปรยบเทยบ), MOVE (ยาย), INPUT (นาเขา) และ

OUTPUT (แสดงผล)

Page 3: 3 instruction design

หนาทของ Instruction Set จะชวย Complier ทาการ

แปลง Source Code ของโปรแกรมภาษาระดบสง ใหเปน

Object Code ของภาษาระดบตา

เมอแปลงเสรจแลว จะนา Object Code ไปเกบใน

หนวยความจาหลก เพอรอสงไปประมวลผลท CPU

Page 4: 3 instruction design

ภาษาระดบตา

หนวยความจา

Compiler Object Code CPUSource Code

ภาษาระดบสง

Instruction Set

Page 5: 3 instruction design

CISC (Complex Instruction Set Computer)

RISC (Reduced Instruction Set Computer)

Presenter
Presentation Notes
CISC มชดคำสงทซบซอนเปนจำนวนมาก RISC มแนวคดทจะลดความซบซอน ลดคำสงทไมจำเปน
Page 6: 3 instruction design

เปนสถาปตยกรรมทมขนาดใหญ และซบซอน

ม Instruction Set จานวนมากและซบซอน

Object Code มขนาดเลก เพอประหยดเนอทของ

หนวยความจา

หนวยความจาทางานไดชา

CPU มความซบซอน

Presenter
Presentation Notes
เปนสถาปตยกรรมทมขนาดใหญ และซบซอน - ในการทำงานแตละครง จะตองกระทำผาน Instruction ทงหมด ทำใหตองมการเตรยม Instruction ไวเปนจำนวนมากเพอรองรบสนบสนนการทำงานทกงาน ม Instruction Set จำนวนมากและซบซอน ทำใหโปรแกรมเมอรทเขยนภาษาระดบสง สะดวกตอการเขยนโปรแกรม Object Code มขนาดเลก เพอประหยดเนอทของหนวยความจำ หนวยความจำทำงานไดชา เพราะ Object Code ของแตละโปรแกรมมขนาดไมเทากน จงทำใหหนวยความจำหลกตองเสยเวลาในการถอดรหส Instruction ทอยภายใน Object Code CPU มความซบซอน เนองจาก CISC ม Instruction Set ทซบซอน ดงนน CPU ทควบคมการทำงานของ Instruction จงมความซบซอนและตองใชแผงวงจรขนาดใหญตามไปดวย ทำใหคาใชจายสงขน
Page 7: 3 instruction design

เปนสถาปตยกรรมทมขนาดเลก

Instruction Set มขนาดเลก

Object Code มขนาดใหญ

หนวยความจาทางานไดเรว

CPU ไมซบซอน

Presenter
Presentation Notes
เปนสถาปตยกรรมทมขนาดเลก เพราะ มการลดจำนวนคำสงและความซบซอนของ Instruction ลง โดยกำหนดใหคำสงทสามารถเขาถงหนวยความจำได คอ คำสง Load และ Store เทานน สวนคำสงอน ๆ จะกระทำกบขอมล ใน Register Instruction Set มขนาดเลก ทำให Instruction Set ไมซบซอนเหมอนกบ CISC Object Code มขนาดใหญ RISC กำหนดให Object Code มความยาวคงท ซงกคอ ความยาวของ Object Code มขนาดเทากบจำนวน Instruction ทงหมด จงทำให Object Code ของบางโปรแกรม มขนาดใหญกวาการใชงานจรง หนวยความจำทำงานไดเรว เนองมาจากการกำหนดขนาด Object Code ใหมความยาวคงท ทำใหหนวยความจำ สามารถถอดรหส Instruction ไดอยางรวดเรว CPU ไมซบซอน เมอ Instruction Set มขนาดเลก และไมซบซอน CPU จงไมจำเปนทจะตองมความซบซอน
Page 8: 3 instruction design

การสอสารระหวาง CPU กบหนวยความจา สามารถทาได

ทงอานและเขยนขอมล

CPU หนวยความจา

Address

Memory Read

Data

Presenter
Presentation Notes
1. CPU สง Address เพอระบตำแหนงของขอมลทตอง 2. CPU สงสญญาณ เพอระบจดประสงคของการตดตอสอสารกบหนวยความจำ โดยกรณน CPU ตองการอานขอมลบนหนวยความจำ 3. หลงจากทหนวยความจำไดรบสญญาณดงกลาว กจะเรมอานขอมลตามตำแหนง Address ท CPU สงมา แลวนำขอมลนนสงกลบไปยง CPU
Page 9: 3 instruction design

ขนตอนการสอสาร เพอทาการเขยนขอมลลงบน

หนวยความจา

CPU หนวยความจา

Address

Memory Write

Data

Presenter
Presentation Notes
1. CPU สง Address เพอระบตำแหนงของขอมลทตอง 2. CPU สงสญญาณ เพอระบจดประสงคของการตดตอสอสารกบหนวยความจำ โดยกรณน CPU ตองการเขยนขอมลบนหนวยความจำ 3. หลงจากทหนวยความจำไดรบสญญาณดงกลาว กจะเรมอานขอมลตามตำแหนง Address ท CPU สงมา แลวนำขอมลทถกสงมาเขยนลงบนหนวยความจำทนท
Page 10: 3 instruction design

Synchronous Interface ใชชวงเวลาเปนตวกาหนดใน

การอานหรอเขยนขอมล ไมมสญญาณตอบกลบ

CPU หนวยความจา

Address

Memory Write

Data

Memory Read

Presenter
Presentation Notes
เปนรปแบบการสอสารทนำชวงเวลามาใชกำหนดการอานหรอ การเขยนขอมลบนหนวยความจำ จงทำใหไมมสญญาณตอบกลบจากหนวยความจำไปยง CPU
Page 11: 3 instruction design

Asynchronous Interface หนวยความจาจะมการแจง

กลบไปยง CPU เมอขอมลถกเขยนหรออานเรยบรอยแลว

CPU หนวยความจา

Address

Memory Write

Data

Memory Read

MFC

Presenter
Presentation Notes
ลกษณะเดนของการสอสารรปแบบนคอ หนวยความจำจะแจงกลบไปยง CPU เมอขอมลนนไดอานหรอเขยนเรยบรอยแลว โดยใชสญญาณสถานะ (Status Signal) ทมชอวา Memory Function Complete : MFC
Page 12: 3 instruction design

ระยะ Fetch เปนระยะท CPU ดงชดคาสง (Instruction)

ขนมาจากหนวยความจาหลก

ระยะ Execute เปนระยะท CPU แปลความหมายชดคาสง

(Instruction) เพอประมวลผล

Presenter
Presentation Notes
ระยะ Fetch เปนระยะท CPU ทำหนาทดง Instruction (Fetch Instruction) ขนมาจากหนวยความจำหลกกอน ระยะ Execute เปนระยะท CPU ทำหนาทตความ Instruction (Execute Instruction) เพอปฏบตงานตาม Instruction จากนนจงเตรยมทำ Instruction ถดไป การดง Instruction และตความ Instruction จะกระทำวนรอบไปเรอย ๆ ลกษณะการทำงาน ดงกลาวน เรยกวา “กระบวนการ Instruction Cycle”
Page 13: 3 instruction design

รปแบบปกตของ Instruction ทใชกบ Instruction Cycle

OpCode Operand

Fetch Instruction

Execute Instruction

NextInstruction

Presenter
Presentation Notes
Operation Code หรอ OpCode เปนรหสคำสงทตองการดำเนนการ เชน ADD SUB STORE LOAD Operand ทำหนาทเกบ Address ทใชอางองขอมลทอยในหนวยความจำทตองการ
Page 14: 3 instruction design

รปแบบ Instruction ชนด ADD

Add OpCode Operand Address 1 Operand Address 2

Presenter
Presentation Notes
Operation Code หรอ OpCode เปนรหสคำสงทตองการดำเนนการ เชน ADD SUB STORE LOAD Operand ทำหนาทเกบ Address ทใชอางองขอมลทอยในหนวยความจำทตองการ
Page 15: 3 instruction design

Fetch Instruction

Decode Instruction

Fetch Operands

Do Addition

Store Result

NextInstruction

Presenter
Presentation Notes
Fetch Instruction ดง Instruction จากหนวยความจำหลก Decode Instruction ตความ Instruction วาตองการทำงานอะไร Fetch Operands ดงขอมล (ตวถกดำเนนการ) ทตองการจากหนวยความจำหลก หรอ CPU Register แลวสงไปยง ALU Do Addition คำนวณทางคณตศาสตร โดยกระทำในสวนของ ALU Store Result เกบผลลพธลงในหนวยความจำหรอ Register
Page 16: 3 instruction design

Fetch the first word of Instruction

Analyze

Instruction Fetch Completion

Go to Execute Phase

IL <= 1 Word

Fetch One More Word

Analyze

Fetch Instruction

จนครบ

Fetch Instruction

ยงไมครบ

IL >1 Word

Presenter
Presentation Notes
การ Fetch คำสงแตละครง จะตองวเคราะหวา ขนาดความยาวของ Instruction เปนเทาไร หากขนาดความยาวของ Instruction <=1 word แสดงวาคำสงนน ถก Fetch อยางสมบรณแลว แตหากขนาดความยาวของ Instruction มากกวา 1 word ให Fetch คำสง ออกมากอนหนงครง และวเคราะหคำสงอกรอบ หากยงไมครบให Fetch อกรอบ ทำเชนนไปเรอย ๆ จนกวาจะ Fetch Instruction จนครบถวนสมบรณพรอมทจะ นำเขาไปสระยะ Execute ตอไป
Page 17: 3 instruction design

คาสงในการเคลอนยายขอมล

ตวดาเนนการ คาอธบาย

MOVE ยายขอมลจากหนวยความจาหรอ Register ไปยงแหลงปลายทาง

LOAD ดงขอมลจากหนวยความจาไปยง Register

STORE ยายขอมลจาก Register ไปเกบลงในหนวยความจา

PUSH ยายขอมลจากแหลงขอมล เขาไปยง Stack

POP ยายขอมลจาก Stack ไปยงแหลงปลายทาง

XCHG แลกเปลยนขอมลระหวางแหลงตนทางกบปลายทาง

Presenter
Presentation Notes
เปนชนดของ Instruction สำหรบเคลอนยายขอมลจากหนวยความจำ หรอ Register จากทหนงไปยงอกทหนง
Page 18: 3 instruction design

คาสงการคานวณ

ตวดาเนนการ คาอธบาย

ADD การบวก สาหรบหาผลรวมระหวางตวถกดาเนนการ 2 ตว

SUB การลบ สาหรบหาผลตางระหวางตวถกดาเนนการ 2 ตว

MUL การคณ สาหรบหาผลตางระหวางตวถกดาเนนการ 2 ตว

DIV การหาร สาหรบหาผลตางระหวางตวถกดาเนนการ 2 ตว

INC เพมคา ทละหนงลงใน Register

DEC ลดคา ทละหนงลงใน Register

NEG นเสธ สาหรบเปลยนเครองหมายของตวถกดาเนนการ

Presenter
Presentation Notes
เปนชนดของ Instruction ทใชสำหรบคำนวณทางคณตศาสตรตาง ๆ เชน บวก ลบ คณ และหาร เปนตน
Page 19: 3 instruction design

คาสงทางตรรกะ

ตวดาเนนการ คาอธบาย

NOT คลายกบนเสธ เปลยนจากคาจรงเปนเทจ / เทจเปนจรง

OR การเปรยบเทยบดวย “หรอ”

AND การเปรยบเทยบดวย “และ”

Presenter
Presentation Notes
เปนชนดของ Instruction ทใชสำหรบคำนวณทางตรรกศาสตรตาง ๆ
Page 20: 3 instruction design

คาสงการเคลอนยาย

ตวดาเนนการ คาอธบาย

JUMP เปนการกระโดดไปทางานอกคาสงทถกระบ

โดย Program Counter

JUMPIF เปนการยายไปทางานแบบมเงอนไข

INT เปนการกระโดดไปทางานกบอปกรณอนทเขามาขดจงหวะ

LOOP การทางานซ าแบบวนรอบ

Presenter
Presentation Notes
เปนชนดของ Instruction ทควบคมลำดบการประมวลผล
Page 21: 3 instruction design

คาสง Input / Output

ตวดาเนนการ คาอธบาย

IN อานขอมลจาก Input เขาสระบบคอมพวเตอร

OUT เขยนขอมลจากระบบคอมพวเตอร แลวสงออกส Output

TEST I/O อานสถานะจากอปกรณ I/O

START I/O เปนสญญาณจาก I/O เพอเรมคาสงการทางานของโปรแกรม I/O

HALT I/O เปนสญญาณจาก I/O เพอยกเลกคาสงการทางานของโปรแกรม

I/O

Presenter
Presentation Notes
เปนชนดของ Instruction ทใชสำหรบแลกเปลยน ขอมลระหวางอปกรณภายนอก และภายในระบบคอมพวเตอร
Page 22: 3 instruction design

คาสงจดการกบขอมลทเปนตวอกษร

ตวดาเนนการ คาอธบาย

MOVS เคลอนยายขอความ

LODS โหลดขอความ

CMPS เปรยบเทยบขอความ

STOS เกบบนทกขอความ

SCAS ตรวจสอบขอความ

Presenter
Presentation Notes
เปนชนดของ Instruction ทใชสำหรบจดการกบกลมตวอกษร (String) ซงโดยสวนใหญขอความทเกบภายในหนวยความจำ จะมความยาว Word เทากบจำนวนบตของสถาปตยกรรมคอมพวเตอรนน ๆ เชน คอมพวเตอรขนาด 32 บต จะมความยาวของขอมลเปน 32 บตเชนกน
Page 23: 3 instruction design

คาสงการแปลง

ตวดาเนนการ คาอธบาย

PACK การแปลงเลขฐานสบ แบบ Unpacked ใหเปนแบบ Packed

UNPACK การแปลงเลขฐานสบ แบบ Packed ใหเปนแบบ Unpacked

Presenter
Presentation Notes
เปนชนดของ Instruction ทใชในการแปลงรปแบบขอมล ใหเปนอกรปแบบหนง
Page 24: 3 instruction design

คาสงควบคมการประมวลผล

ตวดาเนนการ คาอธบาย

HLT หยดกระบวนการ Instruction Cycle (Halt)

WAIT หยดกระบวนการ Instruction Cycle และคอยจนกวาจะม

สญญาณใหทางานตอไปได

NOOP ไมมการทาคาสงใด ๆ

Presenter
Presentation Notes
เปนชนดของ Instruction ทสามารถควบคมการทำงานของ CPU ได
Page 25: 3 instruction design

Instruction จะมขนาดทคอนขางจากด จงทาใหไม

สามารถเกบขอมลจรงลง Operand ไดทงหมด

จงมการเกบ Address ของ Operand แทน

Operand ของจรงจะอยบนหนวยความจาหรอ Register

Presenter
Presentation Notes
จากการออกแบบ Instruction พบวา Instruction จะมขนาดคอนขางจำกด จงทำใหบาง Instruction ไมสามารถเกบขอมลจรงลงใน Operand ทงหมดได แตจะเกบเปน Address ของ Operand แทน เพอใชบอกตำแหนงของ Operand ทอยบนหนวยความจำหรอ Register แทน
Page 26: 3 instruction design

เปนวธการอางองขอมลแบบงาย โดยเกบขอมลลงในพนท

ของ Operand ภายใน Instruction โดยตรง

โหลดขอมล 101011 ลงไปใน Register

OpCode Operand (#101011)

Presenter
Presentation Notes
# แทนสญลกษณทบอกวาเปนขอมล ไมใช Address
Page 27: 3 instruction design

เปนวธการอางองขอมล โดยเกบ Address ไวใน

Instruction ซงเปนตวระบไปยง Operand ทถกจดเกบ

อยในหนวยความจาไดโดยตรง

OpCode Operand Address (100100)

Operand (101011)100100

หนวยความจา

Presenter
Presentation Notes
# แทนสญลกษณทบอกวาเปนขอมล ไมใช Address ขอด Operand ถกเกบอยในหนวยความ จงทำใหขนาดของ Operand ไมถกจำกดดวยขนาดของ Instruction เหมอน Immediate ขอเสย หาก Address มขนาดใหญกวาพนทใน Instruction อาจทำใหเกดความ ผดพลาดในการอางองขอมลได ทำใหใชเวลาในกระบวนการ Instruction Cycle มากกวา Immediate เพราะ มการเกบ Address อางอง
Page 28: 3 instruction design

เปนวธการอางองขอมล โดยเกบ Address ไวใน

Instruction ซงเปนตวระบไปยง Operand Address ท

ถกจดเกบอยในหนวยความจา และอางองไปยง Operand

ทอยในหนวยความจาอกท

OpCode Address (100100)

Operand Address(101101)

100100

หนวยความจา

Operand (101011)100101

Presenter
Presentation Notes
ขอด มความยดหยนในทางการเขยนโปรแกรม เพราะ สามารถเปลยน Address ระหวางทโปรแกรม กำลงทำงานอยได โดยทขนาดของ Instruction ไมเปลยนแปลง
Page 29: 3 instruction design

เปนวธการอางองทคลายกบ Direct Addressing แตจะ

อางองขอมลผาน Register โดยตรง

OpCode Register Number (R)

Operand (101011)R

Register

Presenter
Presentation Notes
ขอด Register Number มขนาดทเลกมาก จงสามารถเกบตำแหนงของ Operand ทอยใน Register ไวใน Instruction ไดอยางไมมปญหา เรองขนาด -การ Fetch คา Operand จาก Register ยงทำไดเรวกวา Fetch จากหนวยความจำ ขอเสย - ขนาดความจของ Register จำนวนนอย
Page 30: 3 instruction design

เปนวธการอางองทคลายกบ Indirect Addressing แตจะ

อางอง Operand Address ผาน Register ทจะอางองไป

ยงขอมลทอยในหนวยความจา

OpCode Register Number (R)

Operand Address(101101)

หนวยความจา

Operand (101011)

100101Register

Presenter
Presentation Notes
ขอด Register Number มขนาดทเลกมาก จงสามารถเกบตำแหนงของ Operand ทอยใน Register ไวใน Instruction ไดอยางไมมปญหา เรองขนาด -มความยดหยนในการเขยนโปรแกรม เพราะสามารถเปลยน Address ระหวางทโปรแกรมกำลงทำงานอยได โดยทขนาดของ Instruction ไมเปลยนแปลง ขอเสย การเขาถงขอมล จะตองอางองผาน Register และหนวยความจำ ตามลำดบ จงทำใหใชเวลาในกระบวนการ Instruction Cycle มาก