Tài liu Cu trúc máy tính& Hp ng T chc CPU
GV: Phm Hùng Kim Khánh Trang 29
Chương 2
T CHC CPU (8086/8088/80286)
1. Định thi chu k bus
Mi chu k bus bt đầu bng vic xut địa ch b nh hoc I/O port (chu k
xung nhp T1). Vi 8086 thì địa ch này có thđịa ch b nh 20 bit, địa ch I/O gián
tiếp 16 bit (thanh ghi DX) hay địa ch I/O trc tiếp 8 bit. Bus điu khin có 4 tín hiu
tác động mc thp là MEMR , MEMW , IOR IOW .
Các chui s kin xy ra trong mt chu k bus đọc b nh:
T1: CPU xut địa ch b nh. Các đường d liu không hot động và các đường
điu khin b cm
T2: Đường điu khin MEMR xung mc thp. Đơn v b nh ghi nhn chu
k bus này là quá trình đọc b nhđặt byte hay word có địa ch đó lên bus d liu.
T3: CPU đặt cu hình để các đường bus d liu là nhp. Trng thái này ch yếu
để b nh có thi gian tìm kiếm byte hay word d liu
T4: CPU đợi d liu trên bus d liu. Do đó, nó thc hin cht bus d liu và
gii phóng các đường điu khin đọc b nh. Quá trình này s kết thúc chu k bus.
Hình 2.1 – Định thì chu k bus
T1 T2 T3 T4
Địa ch ra
Địa ch vào
D liu ra
D liu vào
Clk
Address
bus
Data bus
IOR hay
MEMR
Address
bus
Data bus
IOW hay
MEMW
Ghi b
nh hay
I/O
Đọc b
nh hay
I/O
Tài liu Cu trúc máy tính& Hp ng T chc CPU
GV: Phm Hùng Kim Khánh Trang 30
Trong mt chu k bus, CPU có th thc hin đọc I/O, ghi I/O, đọc b nh hay
ghi b nh. Các đường bus địa ch và bus điu khin dùng để xác định địa ch b nh
hay I/O và hướng truyn d liu trên bus d liu.
Chú ý rng CPU điu khin tt c các quá trình trên nên b nh bt buc phi
cung cp được d liu vào lúc MEMR lên mc cao trong trng thái T4. Nếu không,
CPU s đọc d liu ngu nhiên không mong mun trên bus d liu. Để gii quyết vn
đề này, ta có th dùng thêm các trng thái ch (wait state).
2. Kiến trúc ni
2.1. Kiến trúc ni
CPU có kh năng thc hin các tác v d liu theo tp lnh bên trong. Mt lnh
được ghi nhn bng mã đã được định nghĩa trước, gi là mã lnh (opcode). Trước khi
thc thi mt lnh, CPU phi nhn được mã lnh t b nh chương trình ca nó. Quá
trình x lý này gi là chu k nhn lnh (fetch cycle). Mt khi các mã được nhn và
được gii mã thì mch bên trong CPU có th tiến hành thc thi (execute) mã lnh.
Hình 2.2 – Kiến trúc tng quát ca CPU 8086
BIU (Bus Interface Unit – đơn v giao tiếp bus) nhn các mã lnh t b nh
đặt chúng vào hàng ch lnh. EU (Execute Unit – đơn v thc thi) s gii mã và thc
hin các lnh trong hàng. Chú ý rng các đơn v EU và BIU làm vic độc lp vi nhau
nên BIU có kh năng đang nhn mt lnh mi trong khi EU dang thc thi lnh trước
đó. Khi EU đã thc hin xong lnh, nó s ly mã lnh kế tiếp trong hàng lnh
(instruction queue).
Kiến trúc ni ca CPU 8086 hình 2.3. Nó có 2 b x lý riêng: BIU và EU.
BIU cung cp các chc năng phn cng, bao gm to các địa ch b nh và I/O để
chuyn d liu gia EU và bên ngoài CPU. EU nhn các mã lnh chương trình và d
liu t BIU, thc thi các lnh này và cha các kết qu trong các thanh ghi. Ngoài ra,
d liu cũng có th cha trong mt v trí b nh hay được ghi vào thiết b xut. Chú ý
rng EU không có bus h thng nên phi thc hin nhn và xut tt c các d liu ca
nó thông qua BIU. S khác bit gia CPU 8086 và 8088 là BIU. Trong 8088, đường
bus d liu là 8 bit trong khi ca 8086 là 16 bit. Ngoài ra hàng lnh ca 8088 dài 4
byte trong khi ca 8086 là 6 byte. Tuy nhiên do EU gia hai loi µP này ging nhau
nên các chương trình viết cho 8086 có th chy được trên 8088 mà không cn thay
đổi gì c.
EU
BIU
Hàng lnh
Bus h thng
Tài liu Cu trúc máy tính& Hp ng T chc CPU
GV: Phm Hùng Kim Khánh Trang 31
Hình 2.3 – Kiến trúc ni ca 8086
2.2. Cơ chế đường ng (pipeline)
Quá trình nhn lnh và thc thi lnh:
1/ BIU xut ni dung ca thanh ghi con tr lnh IP (Instruction Pointer) ra bus
địa ch để chn byte hay word đọc vào BIU.
2/ Thanh ghi IP được tăng lên để chun b nhn lnh kế (s byte tăng lên ca IP
tùy thuc vào kích thước lnh trước đó).
AH AL
BH BL
CH CL
DH DL
BP
DI
SI
SP
ES
SS
DS
IP
CS
Σ
Điu khin bus và
sinh địa ch
4
3
2
1
5
Internal bus
Thanh ghi c ALU
EU BIU
Tài liu Cu trúc máy tính& Hp ng T chc CPU
GV: Phm Hùng Kim Khánh Trang 32
3/ Khi lnh trong BIU, nó được đưa sang hàng lnh (queue). Đây là mt thanh
ghi lưu tr dng FIFO (First In First Out – Vào trước ra trước), dùng cơ chế x lý xen
k liên tc các dòng mã lnh (k thut đường ng – pipelining).
4/ Gi s ban đầu hàng lnh trng, EU s không làm gì c cho đến khi bt đầu
xut hin mt lnh trong hàng, EU s ly lnh ra khi hàng và bt đầu thc thi lnh đó.
5/ Trong khi EU đang thc thi lnh, BIU tiến hành nhn lnh mi. Tu theo
thi gian thc thi lnh mà BIU có th đưa vào hàng lnh nhiu lnh mi trước khi EU
thc hin lnh xong và tiếp tc ly lnh mi.
BIU được lp trình để có th nhn mt lnh mi bt k lúc nào hàng lnh
ch cho 1 byte (8088) hay 2 byte (8086). Li ích ca phương pháp x lý theo cơ chế
pipeline là EU có th thc thi các lnh gn như liên tc thay vì phi đợi BIU nhn
thêm lnh mi.
(a)
(b)
(1): lnh thc thi không cn d liu trong hàng
(2): lnh thc thi cn d liu trong hàng
(3): lnh nhy
(4): các lnh b b qua do lnh nhy
Hình 2.4
(a) CPU thông thường dùng chu k nhn và thc thi lnh tun t
(b) Kiến trúc dng pipeline ca 8086/8088 cho phép thc thi các lnh mà không
b tr do quá trình nhn lnh
Có 3 điu kin làm cho EU chế độ ch:
- Điu kin th nht xy ra khi lnh cn truy xut đến mt v trí b nh không
trong hàng. BIU phi treo quá trình nhn lnh và xut ra địa ch ca ô nh
này. Sau khi truy xut b nh, EU có th tiếp tc quá trình thc thi lnh t
hàng lnh và BIU có th tiếp tc đưa các lnh vào hàng.
- Điu kin th hai xy ra khi lnh được thc thi là lnh nhy (jump). Trong
trường hp này, thay vì dùng địa ch lnh kế tiếp, ta phi chuyn đến địa ch
mi (không tun t). Tuy nhiên, BIU vn luôn đặt các lnh theo tun t
do đó s lưu các lnh không s dng. Trong khi nhn lnh kế tiếp ti địa ch
do lnh jump ch đến, EU phi đợi và tt c các byte trong hàng phi b.
Nhn Thc thi Nhn Thc thi Nhn Thc thi
Nhn (1) Nhn (2) Nhn (3) Đọc Nhn (4) Nhn (4) Nhn
Ch Thc thi Ch Thc thi Thc thi Thc thi Ch Nhn
Tài liu Cu trúc máy tính& Hp ng T chc CPU
GV: Phm Hùng Kim Khánh Trang 33
- Điu kin th ba có th làm BIU treo quá trình nhn lnh đó là khi thc thi
các lnh có thi gian thc thi ln. Gi s như lnh AAM (ASCII Adjust for
Multiplication) cn 83 chu k xung nhp để hoàn tt trong khi đó vi 4 chu
k xung nhp cho quá trình nhn lnh thì hàng s b đầy. Như vy BIU phi
đợi cho đến khi lnh được thc hin xong và EU nhn mã lnh t hàng thì
mi có th tiếp tc quá trình nhn lnh.
2.3. Cơ chế siêu phân lung (hyper-threading)
Internet, thương mi đin t và phn mm ng dng doanh nghip đang ngày
càng đòi hi nhiu năng lc tính toán ca các máy ch hơn. Để nâng cao tc độ, phn
mm cn phi được phân lung - các ch th s được chia thành nhiu dòng lnh để
th xđồng thi trên nhiu b x lý. Intel đã đưa ra k thut phân lung cho phép
nâng cao tc độ kh năng tính toán song song cho nhng ng dng đa lung. Công
ngh mi ca Intel mô phng mi b vi x vt lý như là hai b vi x lý lun lý
(logic), tài nguyên vt lý được chia s và có cu trúc chung ging ht nhau cho c hai
b x lý logic. H điu hành và phn mm ng dng s xem như như đang chy trên
hai hay nhiu b x lý, kết qu là tc độ x lý trung bình có th tăng lên xp x 40%
đối vi mt b x lý vt lý, Intel gi k thut này là siêu phân lung.
K thut siêu phân lung cho phép các phn mm ng dng được viết cho
nhng máy ch đa lung có th thc hin các ch th song song đồng thi trên mi b
x lý rng, bng cách này s ci thin tc thì tc độ giao dch cũng như thi gian đáp
ng và các yêu cu đặc thù khác ca phn mm nghip v và thương mi đin t. K
thut này tương thích vi các phn mm ng dng và h điu hành sn có trên các máy
ch (server), nó cho phép h tr nhiu người dùng hơn và tăng khi lượng công vic
được x lý trên mt máy ch. Vi các máy trm (workstation) cao cp, k thut siêu
phân lung cũng s tăng đáng k tc độ các phn mm ng dng đòi hi năng lc tính
toán cao, ví d như phn mm thiết kế 3 chiu, xnh hay video… Trong thi gian
ti s xut hin ngày càng nhiu phn mm được thiết kế đặc bit và ti ưu hoá cho K
thut này.
T tháng 01/2002, k thut siêu phân lung đã được Intel đưa vào các b vi x
lý Xeon đời mi, khi đầu vi các b x lý có tc độ 1.8GHz và 2.0GHz vi 512KB
cache th cp, sn xut bng công ngh 0.13 micron (Xeon 1.7GHz, 1.8GHz, 2.0GHz
vi 256KB cache th cp được sn xut bng công ngh 0.18 không h tr siêu phân
lung). Ti thi đim đầu tiên khi Intel gii thiu b x lý Xeon cùng vi chipset 860,
ch có mt s rt ít các nhà sn xut hàng đầu như IBM, Compaq, Dell, SuperMicro,
Tyan… h tr b vi x lý này, s lượng sn phm cũng rt ít. Tuy nhiên, khi có thêm
các chipset h tr b x lý Xeon như E7500 và Serverworks GC, nhiu nhà sn xut
khác đã có sn phm h tr b x lý Xeon. Tuy nhiên đối vi đa s người dùng, nht
là người dùng máy tính để bàn (desktop) thì k thut siêu phân lung còn khá xa l.
Intel ch chun b đưa ra b x Pentium IV dành cho desktop áp dng k thut siêu
lung (tc độ khi đim là 3.06GHz).
K thut siêu phân lung (hyper-threading) cho phép các ng dng đa lung
thc hin các lung song song. Trong các k thut trước, s phân lung thc hin bng
cách ct các lnh thành nhiu dòng (stream) khác nhau, mi dòng s do mt vi x
thc hin (trong h thng đa x lý). Vi k thut siêu phân lung, s phân lung s
dng các tài nguyên ca vi x lý hiu qu hơn do quá trình song song là tt hơn.