28
บบบบบ 12 Pipeline, Scalar & Vector Processor

บทที่ 12 Pipeline, Scalar & Vector Processor

Embed Size (px)

DESCRIPTION

บทที่ 12 Pipeline, Scalar & Vector Processor. ปี 1989 Intel ประกาศตัว 80486 ซึ่งเป็นซีพียูแบบ 32 บิต พร้อมเปิดตัวสิ่งที่เรียกว่า ” ไปป์ไลน์ ” ( P ipeline) - PowerPoint PPT Presentation

Citation preview

Page 1: บทที่ 12 Pipeline,  Scalar &  Vector Processor

บทท่ี 12 Pipeline,

Scalar & VectorProcessor

Page 2: บทที่ 12 Pipeline,  Scalar &  Vector Processor

โปรเซสเซอร์ ปี 1989 Intel ประกาศตัว 80486 ซึ่งเป็นซพียูี

แบบ 32 บติ พรอ้มเปิดตัวสิง่ท่ีเรยีกวา่ ”ไปป์ไลน์ ” (P )

ไปปไ์ลน์ชว่ยใหซ้พียูีสามารถเฟต็ชค์ำาสัง่เขา้มาทำางานได้หลาย ๆ คำาสัง่ในเวลาเดียวกันได้ โดยเอ็กซคิิวต์ในแต่ละคำาสัง่ในแต่ละสญัญาณนาฬิกา (Clock cycle) เรยีกการทำางานแบบนี้วา่ “สเกลลาร์ ” (Scalar)

ปี 1993 ได้เปิดตัวซพียูีในยุคที่ 5 ท่ีเรยีกวา่ “ Pentium” โดยนำาไปปไ์ลน์มาใสไ่วใ้นซพียูีถึง 2 ตัว ทำางานแบบขนานพรอ้ม ๆ กัน โดยไมข่ึ้นต่อกัน ทำาใหส้ามารถเอ็กซคิิวต์ได้ 2 คำาสัง่ใน 1 สญัญาณนาฬิกา

เรยีกสถาปัตยกรรมนี้วา่ ซุปเปอรส์เกลลาร์ “ ” ()

Page 3: บทที่ 12 Pipeline,  Scalar &  Vector Processor

องค์ประกอบซพียูี

Page 4: บทที่ 12 Pipeline,  Scalar &  Vector Processor

Pipeline ไปปไ์ลน์ (Pipeline) คือการทำางานแบบคาบเก่ียวกัน

(overlap) โดยการแบง่ซพียูีออกเป็นสว่นยอ่ย ๆ แล้วแบง่งานกันรบัผิดชอบ

เดิมไปปไ์ลน์เป็นเทคนิคของสถาปัตยกรรมแบบ RISCต่อมานำามาใชกั้บสถาปัตยกรรมแบบ CISC

แบง่เป็นภาคหลัก ๆ คือ ภาคเฟต็ชค์ำาสัง่ (Instruction Fetch)

ภาคการถอดรหสัคำาสัง่ (Instruction Decode) ภาครบัขอ้มูล (Get Operands) ภาคเอ็กซคิิวต์ (Execute) ภาคเขยีนผลลัพธ ์(Write Result)

Page 5: บทที่ 12 Pipeline,  Scalar &  Vector Processor

ขัน้ตอนการทำางานของ Pipeline ภาคเฟต็ชค์ำาสัง่ หรอื Instruction Fetch สว่นนี้จะทำา

หน้าที่รบัคำาสัง่ใหม ่ๆ ทัง้จากหน่วยความจำาหลัก หรอืจาก Instruction Cache เขา้มา

ภาคถอดรหัสคำาสัง่ หรอื Instruction Decode สว่นนี้จะทำาหน้าท่ีแยกแยะคำาสัง่ต่าง ๆ ของ CISC

ภาครบัขอ้มูล หรอื Get Operands สว่นนี้ทำาหน้าที่รบัขอ้มูลที่จะใชใ้นการเอ็กซคิิวต์เขา้มาเก็บไว ้

ภาคเอ็กซคิิวต์ หรอื Execute สว่นน้ีเป็นขัน้ตอนท่ีทำาการเอ็กวคิิวต์ตามคำาสัง่และโอเปอแรนด์ท่ีได้รบัมา

ภาคเขยีนผลลัพธ ์หรอื Write Result เมื่อทำาการเอ็กซิคิวต์เสรจ็เรยีบรอ้ยแล้ว ผลลัพธท่ี์ได้ก็จะนำาไปเก็บไวใ้นรจีิสเตอร ์หรอืในแคช

Page 6: บทที่ 12 Pipeline,  Scalar &  Vector Processor

ขัน้ตอนการทำางานของ Pipeline

Page 7: บทที่ 12 Pipeline,  Scalar &  Vector Processor

การทำางานของ Pipeline

การทำางานของไปปไ์ลน์เทียบกับชุดคำาสั่ง Assembly

100 : 4 6 8add r , r , r ; -- 4 6 8R[ ] < R[ ] + R[ ]

104 : 7, 128(5) -- ; R[7] < M[R[5] +128]

108 : 9 11 001brl r , r ,

-- -- ; PC < R[1 1 ] (=5 1 2 ) : R[9 ] < PC

112 : 12 32str r , ; -- [+ 3 2 ] < [1 2 ]

... 512 : …… ;Nexti nstr …

Page 8: บทที่ 12 Pipeline,  Scalar &  Vector Processor
Page 9: บทที่ 12 Pipeline,  Scalar &  Vector Processor
Page 10: บทที่ 12 Pipeline,  Scalar &  Vector Processor
Page 11: บทที่ 12 Pipeline,  Scalar &  Vector Processor
Page 12: บทที่ 12 Pipeline,  Scalar &  Vector Processor
Page 13: บทที่ 12 Pipeline,  Scalar &  Vector Processor

Pipeline hazard เหตกุารณ์ท่ีอาจเกิดผลกระทบอยา่งรุนแรง

กับผลลัพธท่ี์ออกมาได้ เน่ืองจากคำาสัง่บางคำาสัง่จะมกีารเขยีนผลลัพธล์งบนตัวโอเปอร์แรนด์บางตัวท่ีต้องถกูอ่านค่าจากอีกคำาสัง่หนึ่ง

ประเภทของการเกิด Pipeline hazard Data hazard Branch hazard

Page 14: บทที่ 12 Pipeline,  Scalar &  Vector Processor

Data hazard “ Read after write” หรอื RAW Data

hazard

100 0 2 4: add r , r , r 104 3 0 1: sub r , r , r

Page 15: บทที่ 12 Pipeline,  Scalar &  Vector Processor

Data hazard

Page 16: บทที่ 12 Pipeline,  Scalar &  Vector Processor

Data hazard Write after write (WAW) Write after read (WAR) เปรยีบเทียบ RAW, WAW และ WAR

RAW WAW WAR 1 0 1 2. add r , r , r 1. add 0 1 2r , r , r 1 2 1 0. add r , r , r

2 4 3 0. sub r , r , r 2 04.subr ,r ,5r 2 0 3 4. sub r , r , r

Page 17: บทที่ 12 Pipeline,  Scalar &  Vector Processor
Page 18: บทที่ 12 Pipeline,  Scalar &  Vector Processor

Branch hazard Branch delay ระบบจะต้องเก็บขอ้มูลบางอยา่งเอาไวเ้ชน่

แอดเดรสของชุดคำาสัง่ก่อนและหลังท่ีจะพบปัญหา branch delay หรอื ค่า PC ของชุดคำาสัง่ถัดจากคำาสัง่ branch ควรจะเป็นค่าใด

หน่วยความจำาแคช มกัจะใช ้ branch prediction ท่ีเรยีกวา่ B ranch T arget

B uffer (BTB) เขา้มาทำางานรว่มกันในชพิของโปรเซสเซอร์

Page 19: บทที่ 12 Pipeline,  Scalar &  Vector Processor

Scalar & SuperscalarProcessor

โปรเซสเซอรแ์บบ สเกลลาร์ “ ” (Scalar processor) ใช้การประมาณค่าเฉล่ียความเรว็ของการเอ็กซคิิวต์คำาสัง่ให้เท่ากับความเรว็ของสญัญาณนาฬิกา (clock speed)

โปรเซสเซอรแ์บบ ซุปเปอรส์เกลลาร์ “ ” (Superscalar processor) ใชก้ารเอ็กซคิิวต์คำาสัง่แบบคู่ขนานกันไป ดัง

นัน้ในหน่ึงสญัญาณนาฬิกาจะสามารถเอ็กซคิิวต์คำาสัง่ได้มากกวา่หนึ่งคำาสัง่

ระบบไปปไ์ลน์และซุปเปอรส์เกลลาร ์ไมไ่ด้หมายความวา่ทำาใหข้ัน้ตอนการเอ็กซคิิวต์คำาสัง่ลดน้อยลง (การเอ็กซคิิวต์คำาสัง่ยงัคงม ี 5 ขัน้ตอน ) เพยีงแต่สามารถท่ีจะทำางานแบบคู่ขนานกันได้ สง่ผลใหใ้นเวลาท่ีเท่ากัน

Page 20: บทที่ 12 Pipeline,  Scalar &  Vector Processor

การประมวลผลแบบสเกลลาร ์และซุปเปอรส์เกลลาร ์

Page 21: บทที่ 12 Pipeline,  Scalar &  Vector Processor

ปัญหาการเอ็กซคิิวต์ของ Superscalar Processor

ปัญหาท่ีเกิดจากลำาดับก่อนหลังในการประมวลผลคำาสัง่เสรจ็สิน้

ปัญหาท่ีเกิดจากการเปล่ียนทิศทางการทำางานของโปรแกรมเนื่องมาจากคำาสัง่ branch

ปัญหาการขดัแยง้กันในการใชท้รพัยากรภายในซพียูี เชน่ - general purpose regi

ster

Page 22: บทที่ 12 Pipeline,  Scalar &  Vector Processor

Modern Superscalar

Page 23: บทที่ 12 Pipeline,  Scalar &  Vector Processor

เวกเตอรโ์ปรเซสเซอร ์(Vector Processor)

ทัว่ไปเรยีกวา่ ซุปเปอรค์อมพวิเตอร์ “ ”(Supercomputer)

ใชส้ถาปัตยกรรมไปปไ์ลน์ที่ประมวลผลแบบเวกเตอร์และเมทรกิซท์ำาใหร้ะบบมปีระสทิธภิาพสงู

โปรเซสเซอรน์ี้สามารถประมวลผลเวกเตอร ์(ชุดของขอ้มูล ) ทัง้ชุดได้โดยคำาสัง่เดียว

โอเปอแรนด์จะเป็นเวกเตอร ์เชน่ C=A+B เป็นผลบวกของขอ้มูลในเวกเตอรเ์ป็นคู่ ๆ

มรีจีสิเตอรใ์นตัวโปรเซสเซอรท่ี์เรยีกวา่ เวกเตอรร์จีิ“สเตอร์ ” (V ector Register)

Page 24: บทที่ 12 Pipeline,  Scalar &  Vector Processor

เวกเตอรโ์ปรเซสเซอร ์ (VectorProcessor)

ขอ้มูลท่ีอ่านเขา้มาในเวกเตอรโ์ปรเซสเซอรจ์ะเป็นคิวแบบ FIFO (First-In First-Out)

ชุดคำาสัง่ประกอบด้วยคำาสัง่ท่ีสามารถ โหลดเวกเตอรร์จีสิเตอรจ์ากตำาแหน่งในหน่วยความจำา ทำาโอเปอเรชนัต่าง ๆ ในเวกเตอรร์จีสิเตอร ์ เก็บค่าขอ้มูลจากเวกเตอรร์จีสิเตอรก์ลับลงหน่วยความจำา

การคอมไพล์จะม ีVVVVVVVVVVV VVV VVVVV เป็นตัวคอมไพเลอร ์

แปลงการวนรอบ ใหก้ลายมาเป็นคำาสัง่แบบเวกเตอร์เพยีงคำาสัง่เดียว

Page 25: บทที่ 12 Pipeline,  Scalar &  Vector Processor

โครงสรา้งเวกเตอรร์จีสิเตอร ์

Page 26: บทที่ 12 Pipeline,  Scalar &  Vector Processor

เวกเตอรโ์ปรเซสเซอร ์ (VectorProcessor)

ประเภทของเวก็เตอรโ์ปรเซสเซอร์ - - Memory to memory Vector Processor - - Register to register Vector Processor

- - Memory to memory Vector Processor มีความสามารถในการประมวลผลเวกเตอรท่ี์ยาวมาก ๆ มขีอ้เสยีคือมค่ีาเสยีเวลาท่ีเรยีกวา่ startup time สงู ประสทิธภิาพของเวกเตอรโ์ปรเซสเซอร ์จะอยูใ่นรูป

T = s + aN - - Register to register Vector Processor แบง่

เวกเตอรอ์อกเป็นชิน้ยอ่ย ทำาการคำานวณเป็นชุด ๆ

Page 27: บทที่ 12 Pipeline,  Scalar &  Vector Processor

เวกเตอรโ์ปรเซสเซอร ์ (VectorProcessor)

Cary Supercomputer Vector Chaining ของ Cary

Supercomputer 2 0* 1V = V V

4 = 2 + 3

Page 28: บทที่ 12 Pipeline,  Scalar &  Vector Processor

Vector Chaining