KP thuEt Jng dQn (PIPELINE)

Một phần của tài liệu Giáo tình kiến trúc máy tính của thầy Vũ Đức Lung (Trang 122 - 125)

CÂU HeI VÀ BÀI TgP CHƯƠNG

7.7.KP thuEt Jng dQn (PIPELINE)

đZi v i máy tắnh dNng bó hoNt ự)ng theo nguyên lý Von neumann thì các l nh th:c hi n m)t cách tu!n t:, h t l nh này rai m i ự n l nh khác. Trong các máy tắnh ngày nay có m)t kẾ thu't làm cho tôc ự) c"a máy tắnh tăng lên nhi=u l!n ựó là vi c chia các l nh ra thành các giai ựoNn khác nhau và các giai ựoNn này có thF ựư;c thi hành cùng m)t lúc.

Vắ dg: Chúng ta có nhHng l nh ự=u ựVn, mri l nh ựư;c th:c hi n trong cùng m)t kho ng th`i gian. Gi s-, mri l nh ựư;c th:c hi n trong 5 giai ựoNn và mri giai ựoNn ựư;c th:c hi n trong 1 chu kỳ xung nhUp. Các giai ựoNn th:c hi n m)t l nh là:

Ớ LUy l4nh (IF: Instruction Fetch),

Ớ GiAi mã (ID: Instruction Decode),

Ớ Thi hành (EX: Execute),

Ớ Thâm nhEp b nhF (MEM: Memory Access),

Ớ Lưu tr3 k;t quA (RS: Result Storing).

Hình 7.9 cho thCy ựF x- lý 5 l nh chúng ta c!n 9 chu kỳ xung nhUp. Trong chu kỳ xung nhUp th8 nhCt, l nh th8 nhCt ựư;c

Chương VII: T ch c B x lý

tìm nNp vào. Trong chu kỳ xung nhUp th8 hai, trong khi l nh th8 ựang th:c hi n gi i mã thì lNi ti p tgc nNp l nh ti p theo '#!Sang chu kỳ xung nhUp th8 ba, trong khi l nh th8 ựang th:c hi n, l nh th8 '#ựang gi i mã thì lNi ti p tgc tìm nNp l nh th8 '%!

Hình 7.9. Th:c hi n l nh trong kẾ thu't pipeline

So sánh v i kiFu x- lý tu!n t: thông thư`ng, 5 l nh ựư;c th:c hi n trong 25 chu kỳ xung nhUp, thì x- lý l nh theo kẾ thu't Zng d}n th:c hi n 5 l nh chB trong 9 chu kỳ xung nhUp.

C8 như th , n u sZ l nh tăng lên nHa thì ti n t i chB trong m)t chu kỳ xung nhUp, b) x- lý có thF th:c hi n m)t l nh (bình thư`ng l nh này ựư;c th:c hi n trong 5 chu kỳ).

Như v'y kẾ thu't Zng d}n làm tăng tZc ự) th:c hi n các l nh. Tuy nhiên kẾ thu't Zng d}n có m)t sZ ràng bu)c:

3 C!n ph i có m)t mNch ựi n t- ựF thi hành mri giai ựoNn c"a l nh vì tCt c các giai ựoNn c"a l nh ựư;c thi hành cùng lúc. Trong m)t b) x- lý không dùng kẾ thu't Zng d}n, ta có thF dùng b) logic sZ h*c ALU ựF c'p nh't thanh ghi PC, c'p nh't ựUa chB c"a toán hNng b) nh , ựUa chB ô nh mà chương trình c!n nh y t i, làm các phép tắnh trên các toán hNng vì các phép tắnh này có thF x y ra D nhi=u giai ựoNn khác nhau.

3 Ph i có nhi=u thanh ghi khác nhau dùng cho các tác vg ự*c và vi t. Trên hình 7.9, tNi m)t chu kỳ xung nhUp (chu kỳ xung

nhUp 5), ta thCy cùng m)t lúc có 2 tác vg ự*c (IF, MEM) và 1 tác vg vi t (RS).

3 Trong m)t máy có kẾ thu't Zng d}n, có khi k t qu c"a m)t tác vg trư c ựó, là toán hNng nguan c"a m)t tác vg khác. Gi s- k t qu c"a l nh th8 ilà toán hNng c"a l nh th8 '1 thì tNi chu kỳ xung nhUp th8 4 l nh th8 '#không thF th:c hi n (EX) ựư;c vì còn chưa có giá trU toán hNng. Như v'y sq có thêm nhHng khó khăn ựòi hJi ph i có cơ ch x- lý riêng.

3 C!n ph i gi i mã các l nh m)t cách ựơn gi n ựF có thF gi i mã và ự*c các toán hNng trong m)t chu kỳ duy nhCt c"a xung nhUp.

3 C!n ph i có các b) làm tắnh ALU hHu hi u ựF có thF thi hành l nh sZ h*c dài nhCt, có sZ giH, trong m)t kho ng th`i gian ắt hơn m)t chu kỳ c"a xung nhUp.

3 C!n ph i có nhi=u thanh ghi l nh ựF lưu giH l nh mà chúng ta ph i xem xét cho mri giai ựoNn thi hành l nh.

3 CuZi cùng ph i có nhi=u thanh ghi b) ự m chương trình PC ựF có thF tái tgc các l nh trong trư`ng h;p có ngzt quãng.

Nh3ng khó khăn trong kP thuEt Jng dQn

Khi thi hành l nh trong m)t máy tắnh dùng kẾ thu't Zng d}n, có nhi=u trư`ng h;p làm cho vi c th:c hi n kẾ thu't Zng d}n không th:c hi n ựư;c như là: thi u các mNch ch8c năng x- lý m)t vi c cg thF nào ựó, m)t l nh dùng k t qu c"a l nh trư c thì m i thi hành ựư;c, m)t l nh nh y.

Ta có thF phân bi t 3 loNi khó khăn: khó khăn do cCu trúc, khó khăn do sZ li u và khó khăn do ựi=u khiFn.

a. Khó khăn do cCu trúc:

Khó khăn ự!u tiên là khó khăn do thi u b) ph'n ch8c năng, vắ dg trong m)t máy tắnh dùng kẾ thu't Zng d}n ph i có nhi=u ALU, nhi=u PC, nhi=u thanh ghi l nh IR ... Như v'y nhHng khó khăn này là do b) ph'n ph!n c8ng thi u và cách gi i quy t duy nhCt là thêm các b) ph'n ch8c năng c!n thi t và hHu hi u vào.

b. Khó khăn do sE li u:

LCy vắ dg trư`ng h;p các l nh liên ti p sau: L nh 1: ADD R1, R2, R3

L nh 2: SUB R4, R1, R5 L nh 3: AND R6, R1, R7 L nh 4: OR R8, R1, R9

Trong hình 7.10 cho ta thCy thanh ghi R1 lưu k t qu c"a l nh 1 chB có thF ựư;c dùng cho l nh 2 sau giai ựoNn MEM c"a l nh 1, nhưng R1 ựư;c dùng cho l nh 2 vào giai ựoNn EX c"a l nh 1. Chúng ta cũng thCy R1 ựư;c dùng cho các l nh 3 và 4. (adsbygoogle = window.adsbygoogle || []).push({});

Hình 7.10. NhHng khó khăn do sZ li u

đF khzc phgc khó khăn này, m)t b) ph'n ph!n c8ng ựư;c dùng ựF ựưa k t qu tQ ngã ra ALU tr:c ti p vô m)t trong các thanh ghi ngã vào như trong hình 7.6.

Chương VII: T ch c B x lý

Khi b) ph'n ph!n c8ng nêu trên phát hi n có dùng k t qu c"a ALU làm toán hNng cho li t kê, nó tác ự)ng vào mNch ựa h;p ựF ựưa ngã ra c"a ALU vào ngã vào c"a ALU hoVc vào ngã vào c"a m)t ựơn vU ch8c năng khác n u c!n.

c. Khó khăn do ựi)u khi+n:

Trong m)t sZ trư`ng h;p, các l nh làm thay ựGi tắnh thi hành các l nh m)t cách tu!n t: (nghĩa là thay vì PC tăng ự=u ựVn sau mri l nh thì ự)t xuCt nó tăng hoVc gi m mNnh hơn), gây khó khăn v= ựi=u khiFn. Các l nh này là l nh nh y ự n m)t ựUa chB tuy t ựZi ch8a trong m)t thanh ghi, hay l nh nh y ự n m)t ựUa chB xác ựUnh m)t cách tương ựZi so v i ựUa chB hi n tNi c"a b) ự m chương trình PC. Các l nh nh y trên có thF có hoVc không ựi=u ki n.

Trong trư`ng h;p ựơn gi n nhCt, tác vg nh y không thF bi t trư c giai ựoNn gi i mã. Như v'y, n u l nh nh y bzt ự!u D chu kỳ C thì l nh mà chương trình nh y t i chB ựư;c bzt ự!u D chu kỳ C+2. Ngoài ra, ph i bi t ựUa chB c!n nh y ự n mà ta có D cuZi giai ựoNn gi i mã ID. Trong l nh nh y tương ựZi, ta ph i c)ng ự) d`i ch8a trong thanh ghi l nh IR vào thanh ghi PC. Vi c tắnh ựUa chB này chB ựư;c th:c hi n vào giai ựoNn ID v i ựi=u ki n ph i có m)t mNch công vi c riêng bi t.

V'y trong trư`ng h;p l nh nh y không ựi=u ki n, l nh mà chương trình nh y ự n bzt ự!u th:c hi n D chu kỳ C+2 n u l nh nh y bzt ự!u D chu kỳ C.

Cho các l nh nh y có ựi=u ki n thì ph i tắnh toán ựi=u ki n. Thông thư`ng các ki n trúc RISC ựVt k t qu vi c so sánh vào trong thanh ghi trNng thái, hoVc vào trong thanh ghi tGng quát. Trong c 2 trư`ng h;p, ự*c ựi=u ki n tương ựương v i ự*c thanh ghi. đ*c thanh ghi có thF ựư;c th:c hi n trong phân n-a chu kỳ cuZi giai ựoNn ID.

Chương VII: T ch c B x lý

M)t trư`ng h;p khó hơn có thF x y ra trong nhHng l nh nh y có ựi=u ki n. đó là ựi=u ki n ựư;c có khi so sánh 2 thanh ghi và chB th:c hi n l nh nh y khi k t qu so sánh là ựúng. Vi c tắnh toán trên các ựNi lư;ng logic không thF th:c hi n ựư;c trong phân n-a chu kỳ và như th ph i kéo dài th`i gian th:c hi n l nh nh y có ựi=u ki n. Ngư`i ta thư`ng tránh các trư`ng h;p này ựF không làm gi m m8c hHu hi u c"a máy tắnh.

V'y trư`ng h;p ựơn gi n, ngư`i ta có thF ựư;c ựUa chB c!n nh y ự n và ựi=u ki n nh y cuZi giai ựoNn ID. V'y có ch'm ựi m)t chu kỳ mà ngư`i ta có thF gi i quy t bong nhi=u cách.

Cách th8 nhCt là ựóng băng kẾ thu't Zng d}n trong m)t chu kỳ, nghĩa là ngưng thi hành l nh th8 i+1 ựang làm n u l nh thư i là l nh nh y. Ta mCt trzng m)t chu kỳ cho mri l nh nh y.

Cách th8 hai là thi hành l nh sau l nh nh y nhưng lưu ý rong hi u qu c"a m)t l nh nh y bU ch'm mCt m)t l nh. V'y l nh theo sau l nh nh y ựư;c th:c hi n trư c khi l nh mà chương trình ph i nh y t i ựư;c th:c hi n. Chương trình dUch hay ngư`i l'p trình có nhi m vg xen vào m)t l nh hHu ắch sau l nh nh y.

Trong l'p trình thư`ng x y ra trư`ng h;p chúng ta so sánh m)t ựi=u ki n nào ựó và vi c nh y có thF ựư;c th:c hi n hay không th:c hi n phg thu)c vào ựi=u ki n ựó. Ngư`i ta g*i l nh hHu ắch ựVt sau l nh nh y không làm sai l ch chương trình dù ựi=u ki n nh y ựúng hay sai. H!u h t các b) x- lý RISC có nhHng l nh nh y v i kh năng hun bJ. Các l nh này cho phép thi hành l nh sau l nh nh y n u ựi=u ki n nh y ựúng và hun bJ th:c hi n l nh ựó n u ựi=u ki n nh y sai giZng như trong câu l nh if (ựi=u ki n ựúng) GOTO ựUa chB else th:c hi n l nh ngay sau dòng if.

Một phần của tài liệu Giáo tình kiến trúc máy tính của thầy Vũ Đức Lung (Trang 122 - 125)