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

Preview:

DESCRIPTION

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

Citation preview

บทท่ี 12 Pipeline,

Scalar & VectorProcessor

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

การทำางานของ 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 …

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

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

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

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

hazard

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

Data hazard

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

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

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

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

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

Scalar & SuperscalarProcessor

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

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

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

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

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

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

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

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

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

ster

Modern Superscalar

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

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

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

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

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

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

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

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

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

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

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

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

เวกเตอรโ์ปรเซสเซอร ์ (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 แบง่

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

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

Cary Supercomputer Vector Chaining ของ Cary

Supercomputer 2 0* 1V = V V

4 = 2 + 3

Vector Chaining