12
6/6/2011 1 Instruction Set Architecture คุณสมบัติพื้นฐานของคาสั่ง ประเภทของตัวดาเนินการ รูปแบบคาสั่ง โหมดการเข้าถึงตาแหน่งหน่วยความจา 1 MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011 คุณสมบัติพื้นฐานของคาสั่ง 2 Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011 ชุดคาสั่ง (Instruction Set) หมายถึงชุดของคาสั่งที่โปรเซสเซอร์ ปฏิบัติตามคาสั่งที่ถูกเขียนขึ้น อาจเรียกอีกอย่างว่าคาสั่งเครื่องหรือ คาสั่งคอมพิวเตอร์ ชุดคาสั่งของเครื่อง (Machine Instruction Set ) ผู้ออกแบบระบบ คอมพิวเตอร์และโปรแกรมเมอร์จะต้องอยู่ในขอบเขตเดียวกัน โดยผู้ออกแบบ ระบบคอมพิวเตอร์จะมองว่าชุดคาสั่งจะประกอบด้ายฟังก์ชันพื้นฐานสาหรับ การทางานของคอมพิวเตอร์ โปรแกรมเมอร์เป็นผู้โปรแกรมในภาษาเครื่อง Operator คือตัวดาเนินการ ยกกาลัง ^ คูณ หาร *,/; บวก ลบ +,/ Operand คือตัวถูกดาเนินการตัวแปรต่าง ๆ A,B,C,D,E

Instruction Set Architecture - pk.homgun.compk.homgun.com/pk/wp-content/uploads/2011/06/Chapter4.pdf · 6/6/2011 3 Instruction cycle Computer Organization and Architecture MR.PATIWAT

  • Upload
    hatram

  • View
    223

  • 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

6/6/2011

12

สรุป (Summary)23Computer Organization and Architecture MR.PATIWAT KAEWSIT : TEC : RMUTI KKC : 2011

Operator คือตัวด าเนินการ ยกก าลัง ^ คูณ หาร *,/; บวก ลบ +,/Operand คือตัวถูกด าเนินการตัวแปรต่าง ๆ A,B,C,D,E

การก าหนดโหมดของต าแหน่ง