You are on page 1of 35

Cҩu trúc và chӭc năng CPU

Giҧng viên hưӟng dүn : TS.NguyӉn TiӃn Dũng


Nhóm sinh viên : Nhóm FSSGroup_DT8_K50

Thành viên : Trӏnh Văn Sơn


Phҥm Hҧi Tuҩn
Phҥm Gia Như
NguyӉn Thanh Hҧi
NguyӉn Thӏ Xuyên
NguyӉn Thӏ Thùy
Nӝi dung

1. Tә chӭc bӝ vi xӱ lý
2. Tә chӭc thanh ghi
3. Chu trÖnh dòng lӋnh
4. KiӃn trúc Pipeline
5. Bӝ xӱ lý PowerPC
ß. Tә chӭc bӝ vi xӱ lý

Các chӭc năng cӫa CPU


m Nҥp lӋnh ( Fetch ßnstructions ) : CPU đӑc 1 lӋnh tӯ bӝ nhӟ
m Biên dӏch lӋnh ( ßnterpret ßnstructions ) : LӋnh đưӧc mã hóa
đӇ xác đӏnh hành đӝng gì đưӧc yêu cҫu.
m Nҥp dӳ liӋu ( Fetch Data ) : Sӵ thӵc thi 1 lӋnh có thӇ yêu cҫu
dӳ liӋu đang đӑc tӯ bӝ nhӟ hoһc tӯ thiӃt bӏ vào ra
m Xӱ lý dӳ liӋu ( Process Data ) : Mӝt lӋnh thi hành có thӇ phҧi
sӱ dөng mӝt vài phép toán sӕ hӑc hoһc logic trên dӳ liӋu
m Ghi dӳ liӋu ( Write Data ) : KӃt quҧ cӫa mӝt thao tác thӵc
hiӋn có thӇ yêu cҫu đưӧc ghi vào bӝ nhӟ hoһc thiӃt bӏ vào ra.
ß. Tә chӭc bӝ vi xӱ lý ( tiӃp)

æ Cҩu trúc CPU vӟi hӋ thӕng Bus


ß. Tә chӭc bӝ vi xӱ lý ( tiӃp)

æ Cҩu trúc bên trong cӫa CPU


ßß. Tә chӭc thanh ghi

æ Là nơi CPU lưu trӳ tҥm thӡi dӳ liӋu và lӋnh


mà CPU sӁ thӵc hiӋn
æ Sӕ lưӧng và chӭc năng cӫa các thanh ghi là
thay đәi giӳa các bҧn thiӃt kӃ
æ Có 2 loҥi thanh ghi
m Thanh ghi ngưӡi dùng lұp trình đưӧc (User Visible
Registers )
m Thanh ghi trҥng thái và điӅu khiӇn ( Control and
Status Registers )
ßß. Tә chӭc thanh ghi (tiӃp)
æ Thanh ghi ngưӡi dùng lұp trình đưӧc
m Thanh ghi đa năng
m Có thӇ đưӧc gán nhiӅu chӭc năng khác nhau : cho dӳ liӋu hoһc cho viӋc
đánh đӏa chӍ
m Thanh ghi dӳ liӋu
m Là các thanh ghi tích lũy
m Thanh ghi đӏa chӍ
m Con trӓ đoҥn (Segment pointers) : Nҳm giӳ đӏa chӍ cơ sӣ cӫa thanh ghi
m Các thanh ghi chӍ sӕ (ßndex Registers ) :Đưӧc sӱ dөng cho viӋc đánh đӏa
chӍ
m Con trӓ Stack (Stack pointers) : Thanh ghi chuyên dөng trӓ đӃn đӍnh
cӫa ngăn xӃp (Stack) , cho phép đӏa chӍ hóa ҭn
m Các thanh ghi mã điӅu kiӋn (Flags)
m Các bit đưӧc thiӃt lұp bӣi phҫn cӭng CPU như là mӝt kӃt quҧ cӫa phép
toán.
m Các vҩn đӅ cҫn quan tâm
m Sӕ lưӧng thanh ghi
m Đӝ dài các thanh ghi
ßß. Tә chӭc thanh ghi (tiӃp)
æ Thanh ghi trҥng thái và điӅu khiӇn
m ĐiӅu khiӇn hoҥt đӝng cӫa CPU
m Các thanh ghi này là ҭn vӟi ngưӡi sӱ dөng
m Các bӝ xӱ lý khác nhau thì có sӵ tә chӭc thanh ghi là khác nhau.
m Có 4 loҥi thanh ghi cơ bҧn đӇ thӵc thi lӋnh
m ?  
?  
m   


   !"
m #
 $%


 #%  & '( )&*
m #
 $+,,


 #+   -.'/ '0)&*
1 -!"
m PSW (Program Status Word ) : Mӝt thanh ghi hoһc 1 tұp các thanh
ghi chӭa thông tin trҥng thái
m PSW chӭa mã điӅu kiӋn và các thông tin trҥng thái khác
m O 2" 
m 3
 24
m  $ 2*
m 56
m 7'
,8 2 0
m 
 
)
9)
:
m O
' 2;;
ßß. Tә chӭc thanh ghi (tiӃp)
æ Ví dө vӅ sӵ tә chӭc các thanh ghi
ßßß. Chu trình lӋnh
æ Chu trình vòng lӋnh gӗm các chu trình con dưӟi đây
m Nҥp: đӑc lӋnh tiӃp theo tӯ bӝ nhӟ vào CPU
m Thӵc thi: Biên dӏch opcode và sӱ dөng các điӅu khiӇn chӍ dүn
m Ngҳt: NӃu ngҳt đưӧc kích hoҥt và mӝt ngҳt đã xuҩt hiӋn, lưu trҥng thái
lӋnh hiӋn tҥi và phөc vө ngҳt
ßßß. Chu trình lӋnh (TiӃp)
æ ĐӇ cө thӇ hóa chu trình lӋnh, chúng ta phҧi đưa vào mӝt chu trình con, gӑi là Õ 
  

5 Có thӇ yêu cҫu bӝ nhӟ truy nhұp đӇ truy xuҩt các operand
5 Đӏa chӍ gián tiӃp yêu cҫu nhiӅu bӝ nhӟ truy nhұp hơn
5 Có thӇ xem như chu trình lӋnh phө thêm vào
ßßß. Chu trình lӋnh (tiӃp)

æ BiӇu đӗ trҥng thái chu trình lӋnh


ßßß. Chu trình lӋnh (tiӃp)
æ Luӗng dӳ liӋu : Chu kǤ nҥp
m PC chӭa đӏa chӍ cӫa lӋnh tiӃp
theo
m Đӏa chӍ đưӧc chuyӇn tӟi
MAR
m Đӏa chӍ đưӧc đһt trên đӏa chӍ
bus
m ĐiӅu khiӇn đơn vӏ truy vҩn
bӝ nhӟ đӑc
m KӃt quҧ đһt trên bus dӳ liӋu,
đưӧc sao chép tӟi MR, sau
đó tӟi ßR
m Trong lúc đó PC đưӧc tăng
lên 1
ßßß. Chu trình lӋnh (tiӃp)

æ Luӗng dӳ liӋu : Chu kǤ gián tiӃp


m N bit bên phҧi cӫa MBR đưӧc chuyӇn tӟi MAR
m ĐiӅu khiӇn đơn vӏ truy xuҩt bӝ nhӟ đӑc
m KӃt quҧ (đӏa chӍ cӫa operand) đưӧc chuyӇn tӟi MBR
ßßß. Chu trình lӋnh (tiӃp)
æ Luӗng dӳ liӋu : Chu kǤ ngҳt
m Đơn giҧn
m Có thӇ đoán trưӟc
m PC hiӋn tҥi đưӧc lưu đӇ
cho phép khôi phөc sau khi
ngҳt
m Nӝi dung cӫa PC đưӧc sao
chép tӟi MBR
m Vӏ trí bӝ nhӟ đһc biӋt ( như
con trӓ ngăn xӃp) đưӧc nҥp
vào MAR
m MBR đưӧc ghi vào bӝ nhӟ
m PC đưӧc nҥp vӟi đӏa chӍ
cӫa chương trình con quҧn
lý ngҳt
m LӋnh tiӃp theo ( đҫu tiên
cӫa trình quҧn lý ngҳt) có
thӇ đưӧc truy xuҩt
ßV. KiӃn trúc Pipeline

æ KiӃn trúc Pipeline 2 công đoҥn


ßV. KiӃn trúc Pipeline (TiӃp)

KiӃn trúc pipeline 6 công đoҥn


Bao gӗm:
æ < $="  > @A / 
'0& )&
:
æ BCD  E;D &'0; ;F
$/ :
æ <G ;; ; 7 <G ;HI
;J:@K0$L M)0N$MO; /
O N /O$;P; G ;:
æ < $=" ; ; >7 < $="  - ; -)&*:
; ; ; PQ! $=" :
æ <N  5 <N;KPMR'0P/ 
6COL MO S; ;G' 
F $/ :
æ B ; T7  UP/ 6C'0 )&*:
ßV. KiӃn trúc Pipeline (tiӃp)

æ Ë  
  kiӃn trúc Pipeline
ßV. KiӃn trúc Pipeline (tiӃp)
æ Ҧnh hưӣng cӫa rӁ nhánh trong kiӃn trúc
Pipeline
ßV. KiӃn trúc Pipeline (tiӃp)
æ KiӃn trúc Pipeline CPU 6 công đoҥn
ßV. KiӃn trúc Pipeline (tiӃp)

æ Phân chia vӟi các lӋnh rӁ nhánh


5 Đa dòng
5 Đích rӁ nhánh tìm nҥp trưӟc
5 Bӝ đӋm vòng
5 Sӵ dӵ báo nhánh
ßV. KiӃn trúc Pipeline (tiӃp)
æ Đa dòng
m Có 2 xӱ lý liên lӋnh
m Tìm nҥp trưӟc mӛi nhánh rӁ vào mӝt xӱ lý liên lӋnh riêng biӋt
m Xӱ dөng xӱ lý liên lӋnh tương thích
m Nҥp vào bӝ nhӟ kӃt hӧp bus & thanh ghi
m NhiӅu nhánh nҥp vào xӱ lý liên lӋnh sau đó là cҫn thiӃt

æ Đích rӁ nhánh tìm nҥp trưӟc


m Đích cӫa lӋnh rӁ nhánh đưӧc tìm nҥp trưӟc, thêm vào đó là các
lӋnh theo sau lӋnh rӁ nhánh.
m Đích này sau đó đưӧc lưu lҥi tӟi khi lӋnh rӁ nhánh đưӧc thӵc
hiӋn
m Sӱ dөng trong ßBM 360/91
ßV. KiӃn trúc Pipeline (tiӃp)
æ Bӝ đӋm vòng
m Là mӝt bӝ nhӟ nhӓ tӕc đӝ cao
m Duy trì bӣi giai đoҥn tìm nҥp lӋnh cӫa pipeline.
m KiӇm tra bӝ đӋm trưӟc khi tìm nҥp tӯ bӝ nhӟ.
m Phù hӧp cho các lӋnh lһp hoһc lӋnh nhҧy nhӓ.
m Nguyên lý tương tӵ như mӝt bӝ nhӟ cache dành cho các lӋnh.
ßV. KiӃn trúc Pipeline (tiӃp)

æ Dӵ báo nhánh
m Phân loҥi dӵ báo nhánh
m Static
Dӵ báo trӭc khi chҥy
Bao gӗm
m Predict never taken
m Predict always taken
m Predict by opcode
m Dynamic
Có thӇ thay đәi trong khi thӵc thi chương trình
Bao gӗm
m Taken/Not taken switch
m Branch history table( Bҧng quá trình rӁ nhánh )
ßV. KiӃn trúc Pipeline (tiӃp)
æ i    
m 

m   

      

!   "#  $#


m  
%


     

!   "# & 


m   # 
i
'  #  (
   
     
Ö #  (

 )' Ö  
*+'   ', -./
ßV. KiӃn trúc Pipeline (tiӃp)
æ Dӵ báo nhánh
m Dynamic
m Taken/Not taken switch
Dӵa vào quá trình trưӟc đó
Phù hӧp cho vòng lһp
m Branch history table( Bҧng quá trình rӁ nhánh )
Là mӝt bӝ nhӟ Cache nhӓ kӃt hӧp vӟi tҫng tìm nҥp
lӋnh cӫa pipeline
Mӛi entry trong bҧng bao gӗm 3 thành phҫn:
m Đӏa chӍ cӫa lӋnh rӁ nhánh,
m Mӝt vài bit quá trình ghi lҥi trҥng thái sӱ dөng cӫa lӋnh đó,
m Thông tin vӅ lӋnh đích
ßV. KiӃn trúc Pipeline (tiӃp)

æ Lưu đӗ dӵ báo
nhánh
ßV. KiӃn trúc Pipeline (tiӃp)

æ ßntel 80486 Pipelining


æ Tìm nҥp (Fetch)
æ Giҧi mã giai đoҥn 1 (D1)
æ Giҧi mã giai đoҥn 2 (D2)
æ Thӵc hiӋn (EX)
æ Ghi lҥi (WB)
ßV. KiӃn trúc Pipeline (tiӃp)
æ Ví dө vӅ kiӃn trúc Pipeline 80486
 Bӝ xӱ lý PowerPC
æ Giӟi thiӋu vӅ PowerPC
m ViӃt tҳt cӫa Power Performance Computing ±
PPC
m Mӝt loҥi vi xӱ lý RßSC do Motorola chӃ tҥo, đang
cҥnh tranh vӟi ßntel Pentium
m Đưӧc ßBM dùng cho dòng máy RS/6000
m Đưӧc Apple Corporation dùng làm bӝ xӱ lý cho
thӃ hӋ kӃ tiӃp cӫa máy tính Macintosh
m Sӕ bits 32/64 bits
 Bӝ xӱ lý PowerPC(TiӃp)

æ Tә chӭc thanh ghi trong PowerPC 64 bits


m Thanh ghi tәng quát
m Thanh ghi ngoҥi lӋ
m Thanh ghi điӅu khiӇn và trҥng thái dҩu phҧy đӝng
m Thanh ghi điӅu kiӋn
m Thanh ghi liên kӃt
m Thanh ghi đӃm
 Bӝ xӱ lý PowerPC (TiӃp)
æ Các thanh ghi ngưӡi dùng lұp trình đưӧc
trong PowerPC
 Bӝ xӱ lý PowerPC (TiӃp)
æ Đӏnh dҥng thanh ghi PowerPC
 Bӝ xӱ lý PowerPC (TiӃp)
æ Sӵ thӇ hiӋn cӫa các bit trong thanh ghi điӅu kiӋn
 Bӝ xӱ lý PowerPC (TiӃp)
æ Xӱ lý ngҳt trong PowerPC
m Các ngҳt đưӧc chҩp nhұn trong PowerPC
Ë 

You might also like