Upload
hatram
View
225
Download
5
Embed Size (px)
Citation preview
6/6/2011
1
Instruction Set Architecture
คุณสมบัติพื้นฐานของค าสั่งประเภทของตวัด าเนินการรูปแบบค าสั่งโหมดการเข้าถึงต าแหน่งหน่วยความจ า
1
MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
คุณสมบัติพื้นฐานของค าส่ัง2Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
ชุดค าสั่ง (Instruction Set) หมายถึงชุดของค าสั่งที่โปรเซสเซอร์ปฏิบัติตามค าสั่งที่ถูกเขียนข้ึน อาจเรียกอีกอย่างว่าค าสั่งเครื่องหรือค าสั่งคอมพิวเตอร์
ชุดค าสั่งของเครื่อง (Machine Instruction Set) ผู้ออกแบบระบบคอมพิวเตอร์และโปรแกรมเมอร์จะต้องอยู่ในขอบเขตเดียวกัน โดยผู้ออกแบบระบบคอมพิวเตอร์จะมองว่าชุดค าสั่งจะประกอบด้ายฟังก์ชันพื้นฐานส าหรับการท างานของคอมพิวเตอร์ โปรแกรมเมอร์เป็นผู้โปรแกรมในภาษาเครื่อง
Operator คือตัวด าเนินการ ยกก าลัง ^ คูณ หาร *,/; บวก ลบ +,/Operand คือตัวถูกด าเนินการตัวแปรต่าง ๆ A,B,C,D,E
6/6/2011
2
คุณสมบัติพ้ืนฐานของค าสั่ง3Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
Instruction cycle4Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
วงรอบค าสั่งจะประกอบด้วยสองขั้นตอนคือ 1.วงรอบการดึงค าสั่ง (fetch cycle) 2.วงรอบการประมวลผล (execute cycle)
การประมวลผลโปรแกรมจะหยุดลงก็ต่อเมื่อเครื่องคอมพิวเตอร์ถูกปิดหรือเกิดข้อผิดพลาดอย่างรุนแรงที่เกิดขึ้นภายในโปรแกรมหรือพบค าสั่งในโปรแกรมที่สั่งให้เครื่องหยุดท างาน
6/6/2011
3
Instruction cycle5Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
หน่วย ความหมาย
Program Counter (PC) ใช้เก็บต าแหน่งของค าสั่งที่จะถูกดึงเข้าไปในโปรเซสเซอร์
Instruction Register (IR) ใช้เก็บค าสั่งที่ถูกดึงเข้ามาเพื่อถอดรหัส
Memory Buffer Register (MBR)
ใช้เก็บข้อมูลที่จะส่งออกไปเก็บหรือที่ดึงมาจากหน่วยความจ า
Memory Address Register (MAR)
เป็นตัวก าหนดที่อยู่ของหน่วยความจ าที่ MBR จะท าการอ่านหรือเก็บข้อมูล
Fetch cycle6Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
1
CPU
6/6/2011
4
Interrupt cycle7Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
1
CPU
Instruction cycle State Diagram8Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
6/6/2011
5
9Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
Instruction cycle State Diagramการกระท า ค าอธิบาย
Instruction Address Calculation (IAC) หาต าแหน่งที่เก็บค าสั่งต่อไปที่โปรเซสเซอร์จะอ่านเข้ามา
Instruction Fetch (IF) อ่านค าสั่งจากต าแหน่งบนหน่วยความจ าลงในโปรเซสเซอร์
Instruction Operation Decoding (IOD) ถอดรหัสค าสั่งเพื่อหาตวัด าเนินการและตัวถูกด าเนินการ
Operand Address Calculator (OAC) หาต าแหน่งของตัวถูกกระท า
Operation Fetch (OF) อ่านค่าตัวถูกกระท าจากหน่วยความจ าหรือจากอุปกรณ์อินพุต/เอาต์พตุ
Operand Store (OS) เขียนผลลัพธ์ลงในหน่วยความจ าหรือส่งออกไปยังอุปกรณ์อินพุต/เอาต์พตุ
ส่วนประกอบของค าสั่งเคร่ือง10Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
Operation code or Opcodeโค้ดงานหรือรหัสด าเนินการ เป็นส่วนที่บ่งบอกถึงการท างานที่
ต้องการ เช่น บวก ลบหรือเกี่ยวกับอินพุต เอาต์พุต จะเป็นรหัสเลขฐานสอง Source operand reference
แหล่งอ้างอิงข้อมูลของตัวถูกด าเนินการ หมายถึงข้อมูลที่น าเขส าหรับการท าค าสั่งนั้นๆ Destination operand reference
แหล่งอ้างอิงข้อมูลปลายทางของตัวถูกด าเนินการ หมายถึงข้อมูลที่เป็นผลลัพธ์จากการท าค าสั่งนั้นๆ
Next instruction reference การอ้างอิงถึงค าสั่งถัดไป หมายถึงต าแหน่งของค าสั่งถัดไป
6/6/2011
6
รูปแบบค าสั่ง11Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
Opcode Operand reference Operand reference
16 bits
4 bits 6 bits 6 bits
Mnemonics Maen
ADD Addition
SUB Subtraction
MPY Multiply
DIV Divide
LOAD Load data from memory
STOR Store data to memory
ตัวอย่าง Mnemonics12Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
Mult R1, X, YMult R2, W, UAdd Z, R2, R1
Load R1, XMult R1, YLoad R2, WMult R2, UAdd R1, R2Store Z, R1
Z = (X * Y) + (W * U)
3 - Operand
2 - Operand
6/6/2011
7
ชนิดของค าสั่ง13Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
Data Processing : ค าสั่งที่เกี่ยวข้องกับการท างานทางคณิตศาสตร์และตรรกะ
Data Storage : ค าสั่งเกี่ยวกับหน่วยความจ า Data Movement : ค าสั่งเกี่ยวกับอินพุต เอาต์พุต Control : ค าสั่งควบคุมล าดับการประมวลผล
การก าหนดโหมดของต าแหน่ง14Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
เพื่อให้การก าหนดต าแหน่งมีประสิทธิภาพจึงมีการเสนอโหมด
การก าหนดต าแหน่งหลายแบบ ความแตกต่างในโหมดต่างๆ ต้องพิจารณา
เลือกใช้ ระหว่างกลุ่มที่มีขอบเขตจ ากัดแต่มีความคล่องตัวสูงหรืออีกกลุ่ม
มีขอบเขตในการก าหนดมากแต่มีความซับซ้อนในการค านวณต าแหน่ง
ที่แท้จริง
6/6/2011
8
โหมดของต าแหน่ง15Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
Addressing Mode ทั่วๆ ไปมีดังต่อไปนี้
การก าหนดต าแหน่งแบบให้ค่าโดยตรง (Immediate Addressing) การก าหนดต าแหน่งโดยตรง (Direct Addressing) การก าหนดต าแหน่งทางอ้อม (Indirect Addressing) การก าหนดต าแหน่งผ่านรีจีสเตอร์ (Register Addressing) การก าหนดต าแหน่งโดยตัวชี้ (Indexed Addressing) การก าหนดต าแหน่งแบบสัมพันธ์ (Relative Addressing) การก าหนดต าแหน่งโดยใช้สแตก (Stack Addressing)
Immediate Addressing16Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
• การก าหนดต าแหน่งแบบให้ค่าโดยตรง (Immediate Addressing)เป็นการก าหนดหรือให้ค่าคงที่ โดยไม่มีการอ้างอิงหน่วยความจ า ท า
ให้ประหยัดเวลาในการท างาน แต่ขนาดของตัวเลขจะถูกจ ากัดด้วยขนาดของฟิลด์ของต าแหน่ง
• รูปแบบ LOAD X, #1000 โหลดข้อมูล1000 ไว้ที่ตัวแปร X
Opcode Operand
6/6/2011
9
Direct Addressing17Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
• การก าหนดต าแหน่งโดยตรง (Direct Addressing)เป็นการก าหนดต าแหน่งจากหน่วยความจ าโดยตรง ปัจจุบันไม่นิยม
ใช้งาน เพราะต้องใช้วงรอบการอ้างอิงหน่วยความจ าเพิ่มอีก 1 ค าสั่ง
• รูปแบบ LOAD X, 1000 โหลดข้อมูลที่ต าแหน่ง 1000 ไว้ที่ตัวแปร X
Opcode Operand A D
999 10
1000 30
1001 50
Indirect Addressing18Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
• การก าหนดต าแหน่งทางอ้อม (Indirect Addressing)เป็นการก าหนดต าแหน่งของข้อมูลผ่านต าแหน่งของหน่วยความจ า
ซึ่งค่าที่อ้างถึงจะเป็นต าแหน่งที่เก็บข้อมูลจริง
• รูปแบบ LOAD X, (1005) โหลดต าแหน่ง 1005 แล้วเอาข้อมูลที่ถูกเก็บภายในต าแหน่ง 1005 ไว้ที่ตัวแปร X
Opcode Operand A D
1004 50
1005 1006
1006 60
6/6/2011
10
Register Addressing19Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
• การก าหนดต าแหน่งผ่านรีจีสเตอร์ (Register Addressing)เป็นการก าหนดต าแหน่งของข้อมูลผ่านตัวรีจีสเตอร์ ซึ่งค่าภายในตัวรี
จีสเตอร์อาจจะเก็บข้อมูลโดยตรงหรือต าแหน่งท่ีอ้างถึงข้อมูล
• รูปแบบ LOAD X, R1 โหลดข้อมูลที่ถูกเก็บภายในรีจีสเตอร์ R1 ไว้ทีต่ัวแปร X
Opcode R1 …
R1 30
Indexed Addressing20Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
• Indexed หรือ Displacement หรือ Based Addressing เป็นการอ้างอิงจากต าแหน่งที่อยู่ในตัวรีจีสเตอร์และน าไปบวกค่าคงที่
(Constant) จึงจะได้ต าแหน่งของข้อมูลจริง
• รูปแบบ LOAD X, (R) + Constant โหลดข้อมูลมาเก็บไว้ที่ X โดยเก็บในต าแหน่งของรีจีสเตอร์ R และเพิ่มค่าไปอีก 2ต าแหน่งไว้ทีต่ัวแปร X
Opcode Operand A D
1002 30
1003 45
1004 60
Opcode R1 2
R1 1002
6/6/2011
11
Relative Addressing21Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
• การก าหนดต าแหน่งแบบสัมพันธ์ (Relative Addressing)การอ้างอิงต าแหน่งแบบสัมพันธ์จะคล้ายกับแบบดัชนี
เพียงแต่เปลี่ยนจากตัวรีจีสเตอร์เป็นโปรแกรมตัวนับแทน (PC)
• รูปแบบ LOAD X, PC + Constant โหลดข้อมูลมาเก็บไว้ที่ X โดยเก็บในต าแหน่งของ PC และเพิ่มค่าไปอีก 2ต าแหน่งไว้ทีต่ัวแปร XOpcode Operand A D
1002 30
1003 45
1004 60
Opcode 2
PC 1002
Stack22Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011
• การอ้างอิงแบบสแตกจะใช้ตัวชี้ (Pointer) โดยปกติตัวชี้จะช้ีที่ต าแหน่งบนสุดของสแตกซึ่งระบุต าแหน่งของข้อมูลที่ต้องการ
• รูปแบบ LOAD X, Stack โหลดต าแหน่ง 1005 แล้วเอาข้อมูลที่ถูกเก็บภายในต าแหน่ง 1005 ไว้ที่ตัวแปร X
Opcode Operand 1001
1300
1050
765
Opcode 2Stack