You are on page 1of 108

MC LC Chng1 .............................................................................................................................. 3 Kin trc my vi tnh PC v n v x l trung tm............................................................... 3 1.1. Cc thnh phn c bn ca my tnh s ................................................................... 3 1.2.

Biu din thng tin trong my tnh s ......................................................................... 5 1.3 Kin trc c bn my vi tnh PC................................................................................ 14 1.4. n v x l trung tm CPU (Central Proccessing Unit) .......................................... 18 1.4.1. Cu hnh bn ngoi ........................................................................................... 18 1.4.2. Cu hnh bn trong........................................................................................... 21 1.4.3. Qun l b nh trong ch thc v cc thanh ghi on................................. 21 1.4.4. Cc thanh ghi .................................................................................................... 24 1.4.5 Qun l b nh trong ch bo v .................................................................. 27 1.4.6. C ch a nhim ............................................................................................... 35 1.4.7 Cc ch xc nh a ch ton hng............................................................... 36 1.5. K thut ng ng v k thut x l song song mc lnh..................................... 40 1.5.1. K thut x l lnh kiu ng ng (Pipeline)................................................... 41 1.5.2. K thut ILP (x l song song mc lnh) .......................................................... 42 Chng 2 ........................................................................................................................... 43 T chc b nh trong my vi tnh PC ................................................................................. 43 2.1. T chc b nh theo phn cp ................................................................................ 43 2.2. T chc cache ......................................................................................................... 45 2.2.1. Trng hp mi khi cha mt t (hoc 1 byte) d liu ................................. 45 2.2.2. Trng hp mi khi cha nhiu t d liu...................................................... 47 2.2.3. K thut tp lin hp ......................................................................................... 47 2.3 T chc b nh my vi tnh PC ................................................................................ 48 2.3.1. C ch qun l b nh theo phn trang ............................................................ 48 2.3.2 C ch truy nhp b nh theo trang .................................................................. 50 Chng 3 ........................................................................................................................... 52 Cc phng php vo ra d liu trong my vi tnh ............................................................ 52 3.1. Cu trc phn cng ca h thng vo/ra d liu ..................................................... 52 3.2. Cc phng php vo/ra d liu ............................................................................. 52 3.2.1 Phn loi ............................................................................................................ 52 3.2.2 Phng php vo/ra d liu theo nh trnh....................................................... 53 3.2.3 Phng php vo/ra d liu theo kiu thm d ................................................. 54 3.2.4 Phng php vo/ra d liu theo ngt cng ..................................................... 55 3.2.5 Phng php vo/ra d liu theo kiu DMA (truy nhp trc tip b nh - Direct Memory Access) .................................................................................................... 57 Chng 4 ........................................................................................................................... 59 Cc thit b vo ra............................................................................................................... 59 4.1 Cc thit b giao din v iu khin vo/ra d liu.................................................... 59 4.1.1 Ngt v b iu khin ngt PIC 8259 ................................................................. 59 4.1.2 Truy nhp trc tip b nh v b iu khin DMAC 8237 ................................. 68 4.1.3 Vo-ra ni tip v thit b giao din vo-ra ni tip UART 8250/16450 .............. 75 1

4.1.4 Thit b giao din song song............................................................................... 83 4.2. Cc thit b ngoi vi.................................................................................................. 86 4.2.1. Bn phm ........................................................................................................... 86 4.2.2 Mn hnh ............................................................................................................ 90 4.2.3 a t ................................................................................................................. 93

Chng1 Kin trc my vi tnh PC v n v x l trung tm


1.1. Cc thnh phn c bn ca my tnh s Trong lch s, my tnh in t c pht trin theo 2 hng k thut tch bit, t sinh ra 2 loi my tnh l My tnh tng t (analog computer) v my tnh s (digital computer). My tnh tng t hot ng trn cc loi s liu lin tc vi cc mch in t tng t, cn my tnh s hot ng trn cc loi s liu ri rc vi cc mch in t s. Hin nay cc my tnh s chim u th vt tri nn khi ni n my tnh ngi ta cng thng hiu ngm l my tnh s. My tnh s gm cc khi chc nng chnh nh sau:

- n v x l trung tm (CPU): c ch to bi mt mch vi in t c tch hp rt cao, n c nhim v c m lnh l cc bit thng tin 0 hoc 1 t b nh chnh, gii m cc lnh ny thnh mt chui cc xung iu khin iu khin cc khi khc thc hin tng bc cc thao tc trong lnh. lm c iu ny bn trong vi x l c cc thanh ghi (registers) cha a ch ca cc lnh sp thc hin (lnh k tip) nh thanh ghi con tr lnh IP (Instruction Pointer) hay cn gi l b m chng trnh PC (Program Counter) v cc thanh ghi khc dng lu tr d liu tm thi hoc cc trng thi ca h thng. Cc thanh ghi ny cng vi b tnh s hc v logic ALU (Arithmetical and Logic Unit) cho php thc hin cc thao tc vi d liu. Trong vi x l th n v iu khin CU (Control Unit) l phn phc tp nht v n c chc nng gii m lnh v to cc xung iu khin ton h thng. CPU thc hin cc chc nng chnh sau: - iu khin ghi/c thng tin ln b nh -Hiu v thc hin 1 tp hu hn cc ch th c th hin di dng m s -Nhp tun t cc ch th t b nh v thc thi cc ch th ny (chc nng thc hin chng trnh ang c trong b nh). -iu khin qu trnh nhp thng tin t thit b u vo v iu khin qu trnh xut thng tin qua thit b u ra. - B nh chnh (RAM+ROM): c to bi cc vi mch nh bn dn c tc truy cp nhanh nhng dung lng hn ch, nm trn bn mch chnh c chia thnh cc nh v mi nh c mt a ch duy nht xc nh. a ch ca cc nh (xc nh v tr ca trong b nh) bt u t 0 v tng dn, mi nh di 1 byte. ROM : ROM l b nh ch c. D liu trong ROM c duy tr ngay c khi khng c 3

ngun in nui. ROM cha cc chng trnh kim tra h thng, chng trnh xc lp cu hnh h thng, chng trnh c cung a khi ng, cc chng trnh iu khin cc thit b vo-ra c bn ca my tnh (BIOS-Basic Input/Output/Output System)... RAM: RAM l b nh thao tc. B nh RAM c chc nng cha cc phn mm ca h thng (h iu hnh), phn mm v d liu ca mt hoc nhiu chng trnh ang hot ng (chng trnh ng dng). Ni dung RAM s b xa khi mt in Ngoi ra cn c: + B nh khi (b nh ngoi): Lu gi ti nguyn phn mm ca my tnh bao gm: HH, cc chng trnh v cc d liu. B nh ngoi c kt ni vi h thng di dng cc thit b vo/ra. N c dung lng ln nhng tc truy cp chm. Cc loi b nh ngoi nh: a cng, a mm, + B nh cache: L thnh phn nh tc nhanh c t m gia CPU v b nh chnh nhm tng tc truy cp b nh ca CPU. Dung lng nh hn b nh chnh. N c s dng lu tr cc lnh v d liu thng c s dng nhiu trong qu trnh thc hin chng trnh. (b nh ny c th c hoc ko c). -Thit b vo: Thc hin chc nng nhp thng tin cho my tnh V d: Bn phm, chut, -Thit b ra: Hin th cc thng tin a ra t my tnh dng con ngi c th hiu c VD: Mn hnh, my in, thit b m thanh, - Phi ghp vo/ra (thit b giao din): l cc mch in t thc hin chc nng ghp ni, cho php CPU thng tin c vi cc thit b ngoi vi nh bn phm, mn hnh, a t, chut,Cc mch in t ny gi l cc cng vo/ra (I/O port). Ty theo yu cu m chng c chc nng hoc l cng vo nu cho php CPU nhn thng tin t ngoi hoc l cng ra nu cho php CPU xut thng tin ra ngoi hoc c hai. S c mt ca thit b giao din l do c s khc bit rt ln v dng thc truyn ti v tc x l thng tin gia n v x l trung tm v cc thit b ngoi vi. Bn trong my tnh con s c s dng lm phng tin truyn ti thng tin, th gii bn ngoi my tnh thng tin c truyn ti di dng k t, nh sng, m thanh,..n v x l trung tm x l thng tin vi tc rt cao, cc thit b bn ngoi my tnh x l thng tin vi tc chm hn nhiu. - H thng bus: Cc khi c bn ca my tnh c kt ni vi nhau qua mt tp ng dy truyn tn hiu gi l bus h thng: L ng truyn thng tin trong my tnh.V mt vt l Bus l tp hp ca cc ng dy truyn tn hiu in, mi mt ng dy truyn c mt bit thng tin ti mt thi im. n v x l trung tm CPU thc hin kt ni v trao i thng tin vi cc n v chc nng khc thng qua h thng BUS. Bus h thng gm 3 bus thnh phn l: + Bus d liu (2 chiu): truyn ti d liu. + Bus a ch (1 chiu: chiu ra t CPU) CPU nh v, chn nh hoc chn thit b ngoi vi cn lin lc, l loi bus 1 chiu.

+ Bus iu khin(2 chiu): Do CPU hay thit b khc pht ra iu khin qu trnh trao i d liu nh tn hiu phn bit n v c CPU truy nhp l thuc b nh hay thit b vo/ra, thao tc truy nhp l c hay vit, ngi s dng c th lm vic c trn my tnh (nh vit v cho chy cc chng trnh ng dng ca ring h) th ch vi cc b phn phn cng trn l khng , mt phn mm gi l HH phi c ci t sn trong my tnh. l 1 tp hp cc chng trnh s dng cc chc nng c bn ca cc b phn phn cng hay phn mm trn h thng my tnh. Khc vi chng trnh ng dng, HH l mt chng trnh h thng c bit chy trong sut thi gian hot ng ca my tnh. Thc ra n l mt tp hp cc chng trnh lo vic iu khin hot ng ca my tnh cng nh cho php cc chng trnh phn mm khc chy c. N iu khin my tnh quyt nh cho cc chng trnh no chy trong khong thi gian no, quyt nh ngun ti nguyn no (b nh, thit b vo/ra,) ang c s dng,.. Trong cc lnh vc khoa hc v i sng, my tnh s c th dng trong lnh vc x l d liu, s dng trong o lng v iu khin t ng hay c dng nh mt b x l s 1.2. Biu din thng tin trong my tnh s 1. Cc h m lin quan ti my tnh - Trong cuc sng hng ngy ta thng dng h m c s mi hay h thp phn l t hp cc ch s t 0 ti 9 biu din gi tr cc s. Cn trong my tnh s th h m nh phn c s dng biu din gi tr cc s. Bi v my tnh s c xy dng trn c s cc mch in, m cc mch in tng thi im ch mt trong hai trng thi ng hoc m; c hoc khng c dng in trong mch; in p cao hoc in p thp. Trong h nh phn th bit (l s 0 hoc 1) l n v nh nht biu din d liu (n v nh nht mang thng tin) trong my tnh. - biu gi tr ca mt s N bt k ta dng k php v tr nh sau: anan-1.a1a0a-1a-2a-(m-1)a-m=an*bn+an-1*bn-1++a1*b1+a0*b0+a-1*b-1+a-2*b-2 ++a-(m-1)*b(m-1) +a-m*b-m Trong : b : l c s ; bn-1,,b2,b1,b0,b-1,b-2,,b-(m-1),b-m l cc trng s. an , an-1,an-2,,a1,a0,a-1,a-2,a-(m-1),a-m : l cc s nm v tr tng ng vi trng s. Khi cn phn bit r h m thng vit thm ch s di k hiu c s vo cc s. V d s 65 trong h thp phn c vit l 6510, trong h nh phn c vit l 1001022. V d: - Biu din s 541.2510 : 541.2510 = 5*10-2 + 2*10-1 + 1*100 + 4*101 + 5*102 Trong : 10 - c s ; 10-2, 10-1, 100, 101, 102 cc trng s 5, 2, 1, 4, 5 l cc ch s c t v tr tng ng vi trng s 357.123 = 3*102 + 5*101 + 100 + 1*10-1+2*10-2+3*10-3 - Mt gi tr 126.5 h thp phn s c biu din h nh phn di dng : 1111110.12=1*26+1*25+1*24+1*23+1*22+1*21+0*20+1*2-1 5

Trong : 2 - c s ; 2-1, 20, 21, 22, 23 ,24, 25, 26 cc trng s 1, 0, 1, 1, 1,1,1,1 l cc ch s c t v tr tng ng vi trng s. - Hin nay c 4 h m hay c dng trong nhng bi ton lin quan n my tnh l : H mi (decimal) b=10 a={0,1,2,3,4,5,6,7,8,9} H nh phn (binary) b=2 a={0,1} H tm (octal) b=8 a={0,1,2,3,4,5,6,7} H mi su (hexaldecimal) b=16 a={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} Gia cc h m thng xuyn phi c s chuyn i qua li : + i s thp phn sang cc s c h c s r c thc hin bng cch tch s thnh 2 phn : Phn nguyn v phn phn s bin i ring r. S bin i phn nguyn c thc hin bng cch chia lin tip cho r v tch ly cc s d li. Bin i phn phn s c thc hin bng cch nhn lin tip vi r v tch ly cc s nguyn nhn c. V d di y l qu trnh bin i s thp phn sang s nh phn : i 23.37510 sang nh phn. Chng ta s chuyn i phn nguyn dng phng thc s d :

KQ : 23.37510 = 10111.0112 Tuy nhin, trong vic bin i phn l ca mt s thp phn sang s nh phn theo phng thc nhn, c mt s trng hp vic bin i s lp li v hn nh:

+ i s nh phn sang s thp phn: Bng cch cng cc s m 2 ng vi cc s bng 1 trong s nh phn. V d: 1 26 64 0 25 0 1 24 16 0 23 0 1 22 4 1 21 2 1 20 1 S nh phn Cc trng s Kt qu =87

+ Chuyn i gia cc s nh phn v s h thp lc: Mt nhm s nh phn 4 bit va biu din mt ch s trong h mi su nn ta s nhm s nh phn cn chuyn i thnh cc nhm 4bit v i mi nhm ra 1 ch s mi su: V d: 11000001112 nhm: 11 0000 0111 kt qu l: 30716 + Chuyn i mt s h thp lc phn sang s nh phn ch vic i mi ch s h thp lc sang mt nhm 4bit V d : AB4C = 1010 1011 0100 11002 + Gia h thp phn v nh phn tn ti mt h lai BCD (binary coded decimal): H ny m ha mi con s trong h thp phn bng mt s nh phn. Thng dng mt s nh phn 4 bit m ha cho cc ch s t 0 n 9. Nh vy khng dng ht cc t hp c th c ca 4bit (24=16). V d: S 52010 nu biu din theo s BCD s l: S thp phn Cc s BCD 5 0101BCD 2 0010BCD 0 0000BCD

2. Cc php ton i vi cc s nh phn - Php cng : Ta c nguyn tc sau 0+0=0 0+1=1 1+0=1 1 + 1 = 0 nh 1 ( cng vo hng trc n, tng t nh php cng s thp phn). Gi tr 1 + 1 = 2, nhng v trong h nh phn ch c hai s 0 v 1, mt khc

biu din ca 2 trong h nh phn l 2 = 1*21 + 0*20 = 10 nn kt qu chnh l 0 v nh 1. V d: Cng hai s 1000111 (s 71 trong h thp phn) v s 11110 (s 30 trong h thp phn). Ct 71 = 30 = Bit nh 101 0 1 1 1 7 1 6 0 5 0 1 1 0 4 0 1 1 0 3 1 1 1 1 2 1 1 0 0 1 1 1 0

V kt qu chng ta c: 1000111 + 11110 = 1100101 (71 + 30 = 101, ta c th kim tra li bng cch i s 101 sang nh phn xem c ng kt qu va lm ra khng). - Php tr : Nguyn tc 00=0 0 1 = 1 mn 1 (v s b tr nh hn s tr nn phi mn 1t s v tr cao hn bn tri) 10=1 11=0 V d: Thc hin php tr 51 28 = 23 S 5110 = 1100112, s 2810 = 111002 C t 51 = 28 = Bit mn 23 = 6 1 0 1 0 5 1 1 1 1 4 0 1 1 0 3 0 1 0 1 2 1 0 0 1 1 1 1 0

Vy 110011 11100 = 010111 (tng ng vi 51 28 = 23) V d : 6 3 = 3 110 - 011 11 phn n 011 - Nhn hai s nh phn: Php tnh nhn trong h nh phn cng tng t nh phng php lm trong h thp phn. Hai s A v B c nhn vi nhau bi nhng tch s ca cc k s 0 v 1 ca A v B: vi mi con s B, tch ca n vi mt con s trong A c tnh v vit xung mt hng mi, mi hng mi phi chuyn dch v tr sang bn tri 1 bit. Tng ca cc tch cc b ny cho ta kt qu tch s cui cng. Nguyn tc: 0 * 0 = 0 ; 1 * 0 = 0; 0 * 1 = 0; 1 * 1 = 1 V d: 9 x 6 = 54 (1001 x 110 = 110110)

d hiu, xem 2 hnh di y, hnh th nht biu din cch nhn 2 s thp phn v hnh th 2 l cch nhn 2 s nh phn.

- Chia 2 s nh phn: Php chia s nh phn tng i phc tp hn php cng, tr v nhn. Cch chia s nh phn cng ging nh chia 2 s thp phn, do cc bn cn nm vng cch chia trn s thp phn, ng thi cn nm vng cch tr 2 s nh phn. u tin hy xem hnh 1 nh li cch chia 2 s thp phn, sau xem hnh 2 cc bn s hiu cch chia s nh phn. Nguyn tc: 0 : 1 = 0; 1 : 1 = 1

3. Biu din s nguyn khng du v c du trong my tnh 3.1. Biu din s nguyn khng du Tt c cc s cng nh cc m ... trong my vi tnh u c biu din bng cc ch s nh phn. biu din cc s nguyn khng du, ngi ta dng n bit. Tng ng vi di ca s bit c s dng, ta c cc khong gi tr xc nh nh sau: S bit Khong gi tr n bit: 0 2n - 1 8 bit (Byte) 0 255 16 bit(Word) 0 65535 9

3.2. Biu din s nguyn c du trong my tnh Cc s nguyn c du dng bit tn cng bn tri lm bit du : bit bng 0 biu din cho du (+) v bng 1 cho du (-). Mt cch tng qut ta c S bit n bit: 8 bit Khong gi tr -(2n) +(2n-1) -128 +127

Mt s nguyn dng trong khong ny s c biu din nh m nh phn thng thng c s 0 bit cao nht. V d : +25 = 00011001 +6510=0100 00012
10 2

Mt s nguyn m trong khong ny s c biu din theo m s b 2 ca s nguyn dng tng ng. S b 2 ca mt s nh phn c to ra bng cch ly 1 tr mi ch s v cng 1 vo ch s c ngha thp nht ca s va c to ra. Phng php to s b 2 ca mt s trn thc t uc thc hin bng cch i s 0 thnh s 1, i s 1 thnh s 0 v cng 1 vo ch s c ngha thp nht ca s va c to ra. -25 = 11100111 -6510=1011 1111 V d : S b 2 ca
10 2

Vi h thng b 2 cc php tnh cng v tr hai s nh phn c thc hin qua ch mt php tnh cng. Trong h thng b 2 khi thc hin cng hai s c th c bn tnh hung xy ra: + C 2 s l dng : Khi thc hin php cng th cng tng s t phi qua tri, k c bit du. V d cng hai s dng 4 bit :

+ Mt s l dng, mt s l m v s m c tr tuyt i nh hn. B 2 ca s m c to v thm bit du vo v tr cao nht. Khi thc hin php cng, mt bit nh s c to ra t bit du. Cn b bit nh i. Kt qu l mt s dng. V d cng hai s khc du 4 bit :

10

+ Mt s l dng, mt s l m v s m c tr tuyt i ln hn. Khi thc hin php cng, khng c nh t bit du. Kt qu l mt s m dng b 2. Cn b bit du kt qu v phi to s b 2 vi s nhn c kt qu tht. V d cng hai s khc du 4 bit :

+ C hai s l m : Khi thc hin php cng, c nh c to ra t bit du. Cn b bit nh v kt qu l mt s m dng b 2. Phi b bit du v to s b 2 vi s nhn c kt qu tht. V d cng hai s m 4 bit :

4. Biu din s thc trong my tnh Trong cc h m m t cc gi tr c phn nh hn 1 ngi ta dng 1 du . (theo ting Anh) hay du , (theo ting Vit) phn cch 2 phn: Phn nguyn v phn phn s. V vy trong mc ny ta s gi s c du phy l s c du chm. C 2 cch biu din mt s thc trong h nh phn : S c du chm c nh (fixed point number) v s c du chm ng (floating point number). 4.1. Biu din s c du chm c nh Tng t nh cch biu din 1 s thc thng thng ca h thp phn gm 2 phn : Phn nguyn v phn sau du chm. Cng thc nh sau : an-1an-2.b1b2bm-1bm=an-1*En-1+an-2*En-2++a1*E1+a0*E0+b1*E-1+b2*E-2 ++bm-1*E(m-1) +bm*E-m VD : 111.11=2*2-2 + 2*2-1 + 2*20 + 2*21 + 2*22 4.2. Biu din s c du chm ng Khi cn biu din v x l nhng phn s v nhng s rt di, th d cc s bao gm rt nhiu con s 0 m ch c mt t con s c ngha nh hai s sau : Khi lng mt tri : 199000000000000000000000000000000000g 11

Khi lng in t : 0.000000000000000000000000000000910956g Khi ny my tnh s phi dng n mt s ln byte nh lu tr cc con s 0 nh vy. Nh bit rng 1 byte biu din c 256 s (t 0 ti 255) th biu din mt s trong di rt rng t ln n nh nh vy cn n c 14 byte cho phn nguyn v 12 byte cho phn thp phn. R rng trong trng hp ny dng loi s c du chm tnh s rt bt tin. My tnh s thng biu din v lu tr nhng s trn trong dng du chm ng nh sau : 1.99*1033g v 0.910956*10-27g hay theo cch vit khoa hc l 1.99E33g v 0.910956E-27g. Tng qut ln th mt s du chm ng s c dng l: nh tr *C s s m V d : 490000=0.49*106 0.00023=0.23*10-3 Gi tr du chm ng c biu din dng m nh phn tun theo chun IEEE754. C 2 dng s du chm ng : Dng n gin v dng chnh xc gp i. + Dng n gin : S du chm ng c lu tr di dng d liu 32bit :

D liu ny biu din gi tr : V=(-1)S*2E-127*1.F V : gi tr ca s du chm ng S : bit du E : S nguyn nh phn F : Phn sau du chm nh phn (dng m nh phn). Phn nh tr c dng 1.F + Dng chnh xc gp i : Gi tr du chm ng chnh xc gp i c lu tr di dng d liu 64bit :

D liu ny biu din gi tr : V=(-1)S*2E-1023*1.F Phm vi biu din ca s du chm ng 64bit c hiu theo cch tng t nh vi s chm ng 32bit. V d cc bc bin i s thp phn -12.625 sang s chm ng chun IEEE 754 chnh
10

xc n (32 bit): Bc 1: i s -12.625 sang nh phn: -12.625 = -1100.101 .


10 10 3 2

Bc 2: Chun ho: -1100.101 = -1.100101 * 2 (S 1.100101 dng 1.f)


2 2 2

Bc 3: in cc bit vo cc trng theo chun: S m: bit du S c gi tr 1. Phn m E vi s tha K=127, ta c: E-127=3 E = 3 + 127 = 130 (1000 0010 ).
2

12

1.2.4. Biu din cc k t

Tu theo cc h thng khc nhau, c th s dng cc bng m khc nhau: ASCII, EBCDIC, UNICODE,....
+ Bng m ASCII (American Standard Codes for Information Interchange) : Bng m ny gn cho mi k t c c v khng c c (k t iu khin) mt s nh phn nht nh. Bng m ny dng mt byte biu din mt k t. Vi chun m ASCII ny khi biu din th s gp phi kh khn trong vic biu din cc bng ch ci khng phi l ting anh nh ting Vit, hay cho cc h ch tng hnh nh (hn, hn, nht). K t Null 31 k t iu khin Cc du 0-9 Cc du khc Z Cc du khc z Cc du khc 31 32 47 -57 -64 -90 -96 -122 123-127 -1F 20 2F -39 3A-40 -5A 5B-60 -7A 7B-7F M thp phn M thp lc phn

+ Chun Unicode : Dng 2 byte m ha mt k t. c im chnh ca Unicode l n khng cha k t iu khin v dng c 16bit m ha k t. Tu theo cc h thng khc nhau, c th s dng cc bng m khc nhau: ASCII, EBCDIC, UNICODE,....Cc h thng trc y thng dng bng m ASCII (American Standard Codes for Information Interchange) biu din cc ch, s v mt s du thng dng m ta gi chung l k t. 1.2.5. Biu din cc dng thng tin khc - Biu din hnh nh : nh thc cht l mt tp hp cc im mu lin tip lin nhau hoc 1 tp hp cc ng hnh hc nhm miu t 1 phong cnh s vt hay mt ch no . Trn my tnh nh c lu trn cc file nh phn theo cc nh dng do nh sn xut quy nh. Hin ti c hn 50 nh dng nh khc nhau c chia lm 2 loi c bn nht l nh bitmap v nh vecto. Nh nh bitmap mi bit tng ng mt im nh (gi tr 1 mu en, gi tr 0 mu trng) Ta c th gp rt nhiu cc nh dng nh khc nhau nh : BMP,ICO,GIF, JPG, - Biu din m thanh : ta c th m ha m thanh theo h m nh phn bng cch ngt m thanh ra thnh nhiu gi tr sau mt khong thi gian nht nh. Sau gn cho mi gi tr mt m nh phn v lu tr chng tun t trong mt tp. V thnh gic con ngi ch phn bit c tn s 13

m thanh ti a l fmax=20Khz, nn theo quy lut ly mu tn s ngt m thanh ti thiu phi ln gp i tn s ti a fmax. M ha m thanh bng 8bit s cho 256 gi tr khc nhau. Nhng kh m thanh thng gp l WAVE, MPEG, 1.3 Kin trc c bn my vi tnh PC Mt my tnh PC c xy dng trn c s cc khi chc nng c bn sau:

1. n v x l trung tm CPU 80286 CPU 80286 l loi 16 bt ( rng ca d liu hoc m lnh l 16 bit). Chc nng chnh ca CPU: + Qun l b nh. CPU 80286 c Bus a ch 24bit v qun l c 24*220 = 16M nh vt l. + Hiu v x l mt tp hu hn cc lnh. - Chuyn d liu gia CPU v b nh (MOV, PH, POP v.v.) - S hc v logic (ADD, SUB, MUL, DIV v.v...) - X l bit (SHL.SHR.ROL.R v.v...) - R nhnh (JMP. CALL, RET. INT v.v...) - Vo/ra d liu cc cng (IN, OUT) - Cc lnh khc (CLI. STI v.v...) + Thc hin chng trnh theo c ch nhp tun t tng lnh t b nh v x l. + iu khin hot ng trao i d liu gia CPU v b nh, gia CPU vi thit b vo/ra v vi cc thit b khc. CPU 80286 c hai ch lm vic. 14

+ Ch thc: l ch hot ng ging nh CPU.8086. Khi bt ngun in th CPU c t ch thc. Trong ch ny CPU qun l b nh vt l ln n 24*216 = 1Mb, v c th m rng n 16Mb. + Ch bo v Ch bo v cung cp c ch bo v b nh v cng c h tr qun l b nh o. Trong ch ny CPU qun l c 214 * 216 = 230 = 1G nh. Cc CPU t 80286 tr v sau u c kh nng lm vic ch ny. 2. B ng x l B ng x l tr gip CPU x l cc php tnh s hc c gi tr l du chm ng, cc php tnh logarit, lng gic vi tc nhanh v vi chnh xc cao. 3. B nh chnh B nh chnh c hiu l b nh c tc truy nhp cao (b nh bn dn). B nh chnh c t chc kiu tuyn tnh. a ch ca cc nh (xc nh v tr ca trong b nh) bt u t 0 v tng dn. B nh chnh cha m lnh chng trnh v d liu ca chng trnh ang chy hin thi. Khi CPU pht a ch ln Bus a ch l truy nhp b nh chnh. B nh chnh c hai phn ROM v RAM. ROM : ROM l b nh ch c. D liu trong ROM c duy tr ngay c khi khng c ngun in nui. ROM cha cc phn mm c bn sau: - Cc chng trnh kim tra h thng (qu trnh POST): Kim tra CPU, kim tra RAM, kim tra cc thit b iu khin v giao din, cc thit b ngoi vi nh bn phm, a, v.v... - Chng trnh xc lp cu hnh h thng. - Chng trnh qut ROM m rng (Ti cc a ch C000 : 0000, D000: 000. Nu tm thy bt k ROM no c chng trnh th n s c thc thi). - Chng trnh c cung khi ng (mt 0, rnh 0, cung vt l 1) ca a khi ng mc nh. BIOS thng cho php chn a khi ng m c nh. Nu khi ng t a mm th cung khi ng (Boot Record) c c. Nu khi ng t cng th cung khi ng ch (Master Boot Record-MBR) ca a cng th nht c c. Ni dung cung ny c np vo RAM ti a ch 0000 : 7C00. CPU chy chng trnh khi ng h iu hnh ti a ch ny. ROM cn cha cc chng trnh iu khin cc thit b vo-ra c bn ca my tnh (BIOSBasic Input/Output/Output System). BIOS l cu ni gia phn cng v phn mm trong h thng my tnh. Cc chng trnh iu khin ny lun gn vi cu hnh phn cng ca my tnh. Thng qua cc chng trnh ny h iu hnh c th giao din c vi phn cng ca tng my tnh. RAM: RAM l b nh thao tc. B nh RAM c chc nng cha cc phn mm ca h thng (h iu hnh), phn mm v d liu ca mt hoc nhiu chng trnh ang hot ng (chng trnh ng dng). Phn b a ch ca cc vng chc nng ti vng nh u tin nh sau: 15

a ch vt (hexadecimal) 000000-09FFFF 0A0000-0BFFFF 0C0000-0DFFFF 0E0000-0EFFFF 0F0000-0FFFFF 100000-FFFFFF

a ch on (hexadecimal) 00000 A000 C000 E000 F000

Tn v chc nng vng nh Vng nh quy c 640Kb dnh cho h iu hnh v ngi s dng Vng nh 128Kb dnh cho hin th (VIDEO RAM). Vng nh 128Kb d phng cho ROM, m rng (C000,C800,D000,D800) Vng nh 64kb d phng cho RAM h thng. Vng nh 64Kb ROM h thng Vng nh m rng 15Mb

4. CMOS Thit b CMOS gm hai b phn chnh: ng h thi gian thc v RAM-CMOS. Cc thit b ny c nui bng ngun in c lp. ng h thi gian thc cung cp thng tin thi gian thc; nm-thngngy, gi-pht-giy. Cc thng tin ny c cha 10 byte u tin trong RAM-CMOS. RAM-CMOS: phn cn li ca RAM-CMOS cha thng tin v cu hnh h thng (kch thc RAM, cc thng tin v a t, v.v...). Vic truy nhp RAM-CMOS c thc hin thng qua cc cng vi a ch 070h v 071h. 5. B nh thi TIMER 8254 TIMER 8254 gm c 3 b m nh phn 16 bt. y l cc b m kh trnh. Cc b m 16 bt trong TIMER 8254 nhn xung nhp tn s 1190MHz t mch to xung chun. TIMER 8254 to ra xung nhp cho ng h h thng, xung nhp lm ti DRAM v xung m thanh cho loa: B m # 0: to xung nhp chu k 55ms (18.2 xung/ls) cho ng h h thng. B m #1: to xung nhp kch hot h thng lm ti DRAM. B m #2: Cho php ngi s dng lp trnh to xung m thanh cho loa. 6. B iu khin ngt PIC8259 (Programmable Interrupt Controller) PIC 8259 l thit b iu khin kh trnh. PIC 8259 h tr CPU thc hin c ch ngt cng cho php CPU phn ng tc thi vi yu cu ca cc thit b vo-ra d liu v cc thit b khc. Trong my vi tnh dng AT c hai thit b PIC 8259, mi thit b ghi nhn c 8 yu cu ngt. 16

7. B iu khin truy nhp trc tip b nh DMAC 8237 (Direct Memory Access Controller) DMAC 8237 l thit b iu khin kh trnh. DMAC 8237 iu khin qu trnh vo/ra d liu trc tip gia b nh v cc thit b ngoi vi (v d: thit b a t), gi tt l qu trnh DMA (Direct Memory Access). Trong my vi tnh dng AT c hai thit b DMAC 8237, mi thit b phc v 4 knh DMA. 8. Thit b giao din bn phm KC 8042 (Keyboard Controller) KC 8042 thc hin chc nng giao din gia bn phm v n v x l trung tm CPU. KC 8042 thc hin giao din kiu ni tip ng b gia CPU v bn phm, pht cc ch th v nhn m phm t bn phm. 9. Thit b giao din mn hnh CRTC (Cathode Ray Tube Controller) CRTC l thit b kh trnh. CRTC thc hin chc nng giao din gia CPU v mn hnh hin th. CRTC nhn lnh v d liu t CPU, to ra tn hiu nh v cc tn hiu ng b iu khin hin th trn mn hnh. CRTC c th lm vi c hai ch vn bn v ho mu. 10. Thit b giao din ni tip UART 8250 (Universal Asynchronous Receiver Transmitter) UART 8250 thc hin chc nng giao din kiu ni tip khng ng b gia CPU v cc thit b ngoi vi theo chun RS232.UART 8250 thc hin chc nng nhn v pht d liu dng ni tip, to v nhn cc tn hiu bt tay vi th gii bn ngoi theo chun RS232. Trong my vi tnh dng AT c hai thit b UART 8250. 11. Thit b giao din song song PPI (Programmable Peripheral Interface) Mch PPI thc hin qu trnh giao din song song gia CPU v cc thit b ngoi vi. PPI thc hin chc nng nhn v pht d liu dng song song, to v nhn cc tn hiu bt tay vi cc thit b ngoi vi. 12. Thit b giao din mm FDC (Floppy Disk Controller) FDC thc hin chc nng giao din gia CPU v thit b a mm. FDC nhn lnh v d liu t CPU hoc b nh, chuyn thnh dng thch hp a ra thit b a mm v ngc li. 13. Thit b giao din a cng HDC (Hard Disk Controller) HDC thc hin chc nng giao din gia CPU v thit b a cng theo chun IDE, HDC nhn d liu t b nh, chuyn thnh dng thch hp a ra thit b a cng v ngc li theo chun IDE. Trong PC hin i cc mch chc nng nh 8254, 8259, 8237, CMOSRAM, 8250, PPI, 8042, iu khin IDE, cu PCI, v.v... c tch hp vo cc mch tch hp c ln (chipset). Khng gian a ch cc thit b vo-ra c phn b cht ch. a ch cc cng vo-ra (port address) c phn b nh sau: vng a ch (hexadecimalthp lc phn) 000-01F 020-03F 040-043 Thit b B iu khin DMAC-1 8237 B iu khin ngt PIC-1 8259, ch B nh thi 8254 17

060-064 070-071 080-09F 0A0-0BF 0C0-0DF 0F8-0FF 170-177 1F0-1F7 200-207 278-27F 2F8-2FF 300-31F 378-37F 380-38F 3A0-3AF 3B0-3BF 3C0-3CF 3D0-3DF 3F0-3F7 3F8-3FF

Thit b iu khin giao din bn phm KC8042 CMOS-RAM-ng h thi gian thc Thanh ghi trang DMA B iu khin ngt PIC-2 8259, th B iu khin DMAC-2 8237 B ng x l 80x87 Thit b iu khin giao din IDE-1 Thit b iu khin giao din IDE-0 Thit b giao din iu khin tr chi Thit b giao din song song 2 (cng my in LPT2) Thit b giao din ni tip 2 (cng ni tip COM2) Card th nghim Thit b giao din song song 1 (cng my in LPT1) D phng D phng Thit b giao din mn hnh n sc D phng Thit b giao din mn hnh VGA Thit b giao din a mm FDC Thit b giao din ni tip 1 (cng ni tip COM1)

1.4. n v x l trung tm CPU (Central Proccessing Unit) 1.4.1. Cu hnh bn ngoi n v x l trung tm 80286 ca my vi tnh PC/AT c cc chn tn hiu nh hnh sau:

18

MI/-IO

PEREQ

- CLK: tn hiu xung to nhp thi gian c s cho n v x l trung tm. - RST: tn hiu khi ng h thng (a mch logic bn trong CPU v trng thi ban u). Nu RST=1 trong t nht 16 nhp ng h th vi x l s b chng trnh ang chy v nhy vo trng thi khi ng li ngay sau khi chuyn xung mc 0. - A23-A0: BUS a ch (24 tn hiu a ch, 3 trng thi) xc nh a ch b nh v cc thit b vo-ra. Kch thc ti a ca b nh vt l l 224 = 16Mb. Khi CPU lm vic vi cc cng vo-ra th cc chn A23-A16 c mc 0, cc dy A15-A0 c dng xc nh a ch 64Kb cng vo-ra. - D15-D0: BUS d liu 16 bt, hai chiu, 3 trng thi.

- Vcc: Ngun nui +5V cho vi x l - GND: c ni t (0V)


Cc tn hu iu khin - INT: tn hiu yu cu ngt cng. Yu cu ngt c th b che khi bit c IF trong thanh ghi FLAGS c t xung 0. - NMI: yu cu ngt khng che c bng c IF. Ngt ny khng b che bi c ngt. Ngt ny s c thc hin ngay sau khi kt thc lnh hin ti. - HOLD: yu cu CPU "th ni" h thng BUS. Khi c thit b no mun lm ch (qun l h thng bus nh DMAC 8237) n s gi tn hiu HOLD cho CPU. - HLDA: tr li "HOLD". Khi HLDA tch cc th cc u Ao-A23, Do-D15 v mt s u tn hiu iu khin khc c tr khng cao, CPU b cch ly vi th gii bn ngoi. (Nu ng th HLDA=1) - -LOCK: cm cc P khc lm ch BUS. - PEREQ, -PEACK, -BUSY, -ERROR: Cc tn hiu ny c dng ghp ni 80286 vi cc phn t m rng ca vi x l nh b ng x l ton 80287. + PEREQ: tn hiu t b ng x l l mt ton hng c gi. + -PEACK: Bo cho b ng x l l 1 ton hng c gi. 19

+ -BUSY: tn hiu t b ng x l bo bn. + -ERROR: tn hiu t b ng x l bo li. - -BHE: Khi kt hp vi chn A0 s cho cc ch th sau: -BHE 0 0 1 1 A0 0 1 0 1 ngha Mt t c truyn qua D15D0 1 byte trn D15D8 c truy xut ti a ch l (vd 2F05H) 1 byte trn D15D8 c truy xut ti a ch chn (vd 2F04H) Cha xc nh

- COD/-INTA: mc tch cc thp l tn hiu tr li ngt. - M/-IO: Nu =1 truy xut b nh Nu =0 Truy xut b phn vo/ra - READY: Nu b nh (thit b ngoi vi) cn truy nhp hon tt vic chuyn s liu n (hoc i) chng cn pht ra tn hiu READY mc tch cc 1 ti vi x l, ch khi y vi x l mi c s liu vo hoc tip tc xut ra s liu. - V iu khin th 80286 pht ra cc tn hiu trng thi ti 1 chip gi l b iu khin bus (82288) tip chip ny s dch (gii m) cc tn hiu trng thi v pht ra cc tn hiu iu khin ti cc bus c th sau:

20

1.4.2. Cu hnh bn trong CPU 80286 c cu thnh t 4 n v chnh nh sau:


AU (n v a ch)

A23A0

IU (n v lnh) - n v BUS (BU): BU bao gm cc m a ch, iu khin v d liu. BU thc hin giao din BUS, to ra v nhn vo cc tn hiu a ch, iu khin v d liu v nhp lnh t b nh vo hng i. - n v lnh IU IU gm b gii m lnh v hng i lnh gii m. n v lnh IU thc hin gii m lnh v a vo hng i. - n v thc hin EU : EU thc hin lnh c gii m. EU bao gm n v iu khin, cc thanh ghi v n v s hc logic. + n v iu khin CU (Control Unit) : n v iu khin CU c chc nng gii m lnh v t to ra cc tn hiu iu khin hot ng ca cc n v chc nng khc bn trong v bn ngoi n v x l trung tm CPU, nhm thc thi c lnh hin hnh. CU iu khin thc hin cc vi thao tc thc hin lnh theo nhp ca xung ng h Clock. + n v s hc logic ALU (Arithmetic Logic Unit) : ALU thc hin cc php tnh s hc, logic v cc php x l d liu khc. + Cc thanh ghi dng cha a ca nh, cha d liu, hay trng thi kt qu ca php tnh trong qu trnh CPU thc hin chng trnh - n v a ch AU : n v a ch AU gm cc thanh ghi on, cc thanh ghi trong ch bo v, b cng a ch offset, b to a ch vt l t a ch logic. AU qun l b nh trong c hai ch lm vic : ch thc v ch bo v.

1.4.3. Qun l b nh trong ch thc v cc thanh ghi on a. t vn - Bus a ch ca CPU 8086 c di 20bit nn n qun l c 220 nh = 220 byte= 1Mbyte khng gian nh. (v mi nh c di l 1 byte)

21

- Cc thanh ghi ca CPU 8086 ch c di 16bits nn nu dng 1 thanh ghi nh a ch th qun l c 216 nh. gii quyt vn qun l 1Mbyte th ta s thng qua ni dung ca 2 thanh ghi 16bits theo phng thc nh sau : + Chia khng gian a ch thnh cc on nh vi kch thc c nh l 64Kbyte. ++ Mi on gm cc nh lin tip, c lp v c nh v tch ri nhau. ++ Mi on s c gn mt a ch duy nht xc nh gi l a ch on (l a ch ca nh u tin ca on , cn c gi l a ch nn). ++ Mi nh trong on c xc nh bng a ch offset (a ch lch) : l khong cch t a ch on n nh . Mt cp gi tr a ch on v a ch lch c nh dng : a ch on : a ch offset c gi l a ch logic. a ch logic ny cho php nh v chnh xc 1 nh (1byte nh) trong khng gian a ch. b. Cch qun l Trong ch thc b nh c qun l theo c ch phn on (segmentation), tc l b nh c nh v v gim st theo on. Trong c ch phn on mi mt chng trnh khng c xem l mt chui lin tc ca m lnh v d liu m c chia thnh cc modul m lnh, d liu, ngn xp,Mi modul c cha trong mt on nh v c mt a ch xc nh. CPU 16bit mi mt on c kch thc 64Kb. H iu hnh c th t cc modul ca chng trnh bt k ch no trong b nh vt l, on nh s mang tn ca loi modul n cha. C 4 loi on khc nhau: + on m lnh (code segment): cha m lnh ca chng trnh. + on d liu (data segment): cha d liu ca chng trnh. + on ngn xp (stack segment): l on cha cc thng tin v d liu phc v chng trnh con. + on m rng (extra segment): cha d liu m rng. Mi mt on c mt a ch gi l a ch on. CPU c phn cng h tr vic qun l v truy nhp cc on, l cc thanh ghi on 16bit CS, DS, SS, ES. Trong ch thc thanh ghi on cha a ch on. C th : + Thanh ghi CS cha a ch on m lnh + Thanh ghi DS cha a ch on d liu. + Thanh ghi SS cha a ch on ngn xp. + Thanh ghi ES cha a ch on m rng. - a ch on xc nh v tr ca on trong b nh. Ta nhn c a ch nn ca on vt l (a ch ca nh u tin ca on) bng cch dch tri a ch on i 4 bit v in cc s 0 vo 4 bit thp nht. - Mi nh trong on c nh v bng mt cp con s : a ch on v a ch offset (a ch lch), trong a ch offset l con s xc nh v tr ca nh so vi nn on. Cp s ny c gi l a ch logic ca nh. a ch logic ca mt nh thng c biu din dng : a ch on : a ch offset. Ta c 2 cp thanh ghi sau lun i vi nhau : CS : IP v SS : SP

22

+ IP : Cha a ch offset ca nh trong on m lnh cha lnh CPU cn nhp thc hin + SP : Cha a ch offset ca nh ngn xp trong on ngn xp. - Khi truy nhp cc on d liu ngi lp trnh cn xc nh offset ca cc nh bng cc phng php xc nh a ch ton hng (nh v ton hng). - Ta c th hnh dung c ch qun l b nh trong ch thc nh hnh v sau :

Cch tnh a ch vt l - V thanh ghi on l thanh ghi 16bit c nhim v xc nh on ca nh. Cn cc thanh ghi 16bit cn li (thanh ghi a nng, con tr, ch s) xc nh v tr ca nh trong on. - V a ch vt l c di 20bit a ch on chim 16bits cao trong 20bits a ch vt l a ch offset chim 16bits thp trong 20bit a ch vt l ta c cch chuyn i sau: B1: Dch tri a ch on i 4 bit v in cc bit 0 vo 4 bit thp B2: Cng a ch offset vi a ch on sau khi dch tri C th nh sau:

Cng thc tnh: a ch vt l = a ch on *10H + a ch offset Vd: a ch logic 1234h:0005h s ng vi

23

a ch vt l 1234h * 10h + 0005h = 12340h + 0005h = 12345h Vic i t a ch vt l sang a ch logic cng khng c g phc tp. Tuy nhin, do cc segment gi u nhau nn mi nh c th thuc mt vi segment khc nhau. V vy, mt a ch vt l c th ng vi nhiu a ch logic khc nhau. Vd: a ch vt l 12345h c th ng vi cc a ch logic sau: 1234h:0005h 1230h:0045h 1200h:0345h 1000h:2345h 1232h:0025h Ta c th thy r hn v c ch qun l b nh trong ch thc qua hnh v di:

- Nhn xt: + Cc on khng c xp tun t nhau m c xp chng gi ln nhau + Khong cch ti thiu ca mi on l cch nhau 16 nh hay cch nhau 16bytes. 1.4.4. Cc thanh ghi Cc thanh ghi l cc n v lu tr d liu nm trong CPU c tc truy cp nhanh. Chng c dng cha cc ton hng ca lnh, cc kt qu tm thi ca cc qu trnh tnh ton. Cc thanh ghi trong 80286 c chia ra thnh cc nhm sau : Cc thanh ghi a nng AX, BX, CX, DX : 24

AX, BX, CX, DX l cc thanh ghi a nng 16 bit, c dng cha cc ton hng ca lnh hoc cc kt qu ca php tnh. C th truy nhp tng thanh ghi ny nh l cc thanh ghi 16 bit AX, BX, CX, DX hoc nh cc thanh ghi 8 bit AH, AL, BH, BL, CH, CL, DH, DL...

Cc thanh ghi AX, BX, CX, DX cn c cc chc nng mc nh ring trong mt s ng cnh c th sau : - AX (Accumulator): Khi gi cc hm chc nng ca h iu hnh qua lnh INT, thanh ghi AX hoc AH c dng cha con s xc nh mt chc nng c th cn thc hin ca hm ny. VD : INT 21 thc hin hm 5B- To tp tin mi th AH=5B - BX (Base): Khi thc hin cc lnh truy nhp on d liu, BX c dng xc nh a ch offset hoc a ch offset nn ca nh trong on. - CX (Counter): Khi thc hin cc lnh LOOP hoc REP, CX ng vai tr mt b m (cha s m), xc nh s ln thc hin lp. CX=n. Gi tr ny c gim i 1 khi thc hin song 1 ln lp VD : lp 1 vng n ln v c tip tc nh vy cho ti khi CX=0 th kt thc. - DX (Data) : c dng cha hai byte cao kt qu php nhn hoc phn d ca php chia 16 bit. Khi truy nhp cc cng vo/ra c a ch ln hn 255, DX c dng cha a ch (xc nh a ch) cc cng ny. VD : DX=378H l a ch ca cng my in Cc thanh ghi a ch BP, SI, DI, SP: l cc thanh ghi 16 bit - SP (Base Pointer): BP c dng xc nh a ch offset hoc a ch offset nn ca nh khi thc hin cc lnh truy nhp cc on d liu. BP thng c dng xc nh a ch offset hoc a ch offset nn khi truy nhp on ngn xp. - SI (Source Index) : SI c dng cha (xc nh) a ch offset hoc mt phn ca a ch offset khi truy nhp on d liu. SI thng c dng cha a ch offset ca xu k t trong on d liu (DS : SI) khi thc hin lnh thao tc xu. - DI (Destination Index) : DI c dng cha (xc nh) a ch offset hoc mt phn ca a ch offset khi truy nhp on d liu. DI thng c dng cha a ch offset ca xu k t trong on m rng (ES: DI khi thc hin lnh thao tc xu). - SP (Stack Pointer) : Con tr ngn xp SP cha a ch offset ca nh trong on ngn xp. SP lun tr n nh ngn xp. Nhm thanh ghi on CS, DS, SS, ES : L cc thanh ghi 16bit, trong qun l b nh theo c ch phn on th 25

CS : Cha a ch on ca on m lnh DS : Cha a ch on ca on d liu ES : Cha a ch on ca on m rng SS : Cha a ch on ca on ngn xp Cc thanh ghi iu khin v trng thi : - Con tr lnh IP (In struction Pointer): l thanh ghi 16 bit IP cha a ch offset ca nh trong on m lnh. Khi nhp lnh th IP t ng tng dn v khi CPU nhp xong mt lnh th IP tr n nh cha lnh tip theo trong on m lnh. Ni dung IP b thay i bt thng khi CPU thc lnh nhy, lnh gi chng trnh con hoc bi cc c ch ngt cng v mm. - Thanh ghi c FLAGS : l thanh ghi 16 bit cha cc bt thng tin phn nh trng thi ca kt qu php tnh. Mt s bit c nh IF, TF, IOPL nh hng n hot ng ca CPU.

Khng th tc ng trc tip vo ton b thanh ghi c m ch c th tc ng vo mt s bit c qua cc lnh CLC, STC, CLI, STI, CLD, STD. - CF (Carry Flag) : c nh ; Nu c hin tng nh t bit cao nht khi thc hin php tnh th CF = 1. Cc lnh CLC, STC v cc lnh dch bit, quay vng nh hng ti c ny - PF (Parity Flag) : c kim tra chn l ; Nu lng cc bit 1 trong kt qu chn th PF=1. - AF(Auxiliary Flags) : c nh ph. C AF c s dng trong cc php tnh s hc vi cc s BCD (Binary Coe Decimal). Nu c nh hay c mn i vi 4 bit thp th AF= 1 - ZF (Zero Flag) : c zero. Nu kt qu php tnh bng khng th ZF = 1. - SF (Sign Flag): c du ; Nu kt qa m (bt cao nht ca kt qu c gi tr 1) th SF =1 - TF (Trap Flag) : c by ; Nu TF = 1, CPU c t ch chy tng lnh phc v hiu chnh chng trnh (debug). Trong ch ny mi lnh khi c thc hin xong s gy ra mt ngt logic (ngt 01H) kch hot chng trnh hiu chnh. - IF (Interrupt Flag) : c ngt ; Nu IF = 1, cho php CPU phn ng vi tn hiu bo ngt INT. Dng lnh CLI hoc ST1 tc ng c vo c ny. - DF (Direction Flag): c hng ; DF xc nh hng tng hoc gim ca cc thanh ghi SI. DI khi thc hin cc lnh thao tc xu k t. Nu DF = 1 th SI v DI gim. Nu DF = 0 th SI v DI tng Dng lnh STD v CLD tc ng c vo bt c ny. - OF (Overflow Flag) : c trn ; OF c dng trong cc php tnh s hc du chm ng. OF = 1 nu kt qu qu ln hoc qu nh, vt qu kh nng biu din ca my tnh (b trn). - Hai c NT v IOPL (I/O Privilege Level) ch c dng trong ch bo v. Thanh ghi trng thi my (MSW) :

26

- PE (Protected Mode Enable) cho php ch bo v. Nu PE = 1 : cho php CPU lm vic ch bo v. Khi khi ng my tnh th PE = 0. - MP (Monitor CoProcessor): MP c dng ng b hot ng ca CPU v b ng x l. - EM (Emulation) : EM = 0 cho php thc hin cc m lnh du phy ng trn b ng x l. EM = 1 khi CPU gp m lnh lnh du phy ng s sinh ra ngoi t kch hot chng trnh thc hin php tnh du chm ng (chng trnh m phng b ng x l). - TS (Task Switch) dng ch a nhim. Lnh LMSW tc ng c vo thanh ghi ny. CPU 80286 cn c cc thanh ghi khc nh sau : (Hot ng trong ch bo v) - Thanh ghi nhim v TR (Task Register) - Thanh ghi bng m t cc b LDT (Local Descriptor Table) - Thanh ghi bng m t ngt IDT (Interrupt Descriptor Table) - Thanh ghi bng b m t ton cc GDT (Global Descriptor Table) - Thanh ghi t trng thi my MSW (Machine Status Word). 1.4.5 Qun l b nh trong ch bo v Ch bo v (Protected Mode) c thit k cho CPU dng Intel t 80286 cho n cc CPU 32 bt sau ny. Ch bo v c thit k h tr h iu hnh a nhim, cch ly v bo v h iu hnh khi nhng truy nhp tri php ca cc chng trnh ng dng, cch ly v bo v chng trnh ng dng ny khi s truy nhp tri php ca chng trnh ng dng khc. 1.4.5.1- Cc mc c quyn v lut v quyn truy nhp. Trong ch bo v th mi on nh c gn mt mc c quyn v c bo v nh c ch v quyn truy nhp. Cc mc c quyn c thit k h tr hot ng ca h iu hnh a nhim nhm: + Cch ly v bo v h iu hnh khi cc truy nhp tri php ca chng trnh ng dng. + Cch ly v bo v chng trnh ng dng ny khi s truy nhp tri php ca chng trnh ng dng khc. Da vo mc c quyn v lut v quyn truy nhp m CPU s quyt nh cho php hay khng cho php truy nhp on nh yu cu. Cc mc c quyn (k hiu l PL - Privilg Level) nm trong mt h thng cc mc c quyn 4 cp. + c quyn mc PL = 0, mc c quyn cao nht. Mc c quyn PL = 0 c gn cho cc chng trrnh qun l thit b v qun l b nh. + c quyn mc PL = 1. Mc c quyn PL = 1 c gn cho cc chng trnh thit lp mc u tin gia cc nhim v, chng trnh hon i d liu gia b nh chnh v b nh th cp (a t, chng trnh qun l cc cng vo/ra v cc dch v h thng khc. + c quyn mc PL = 2. Mc c quyn PL = 2 c gn cho cc chng trnh qun l tp, th mc v cc chc nng m rng ca h iu hnh.

27

+ c quyn mc PL = 3 mc thp nht mc c quyn PL = 3 c gn cho cc chng trnh ng dng. Cc lut v quyn truy nhp: lut v quyn truy nhp xc nh quy tc truy nhp on nh. Lut 1: D liu c lu tr trong on nh coa mc c quyn PL = P ch c th b truy nhp bi m lnh c mc c quyn bng hoc cao hn P (CPL <= DPL, CPL l mc c quyn ca nhim v ang thc hin, DPL l mc c quyn ca on d liu b truy nhp). Lut 2: on m lnh c mc c quyn PL = P c th b gi hoc truy nhp bi nhim v c mc c quyn bc hoc thp hn P. on m lnh c mc c quyn thp c th gi hoc truy nhp on m lnh c mc c quyn cao hn thng qua cng gi. Theo cc lut v quyn truy nhp th chong trnh dang thc hin c th truy nhp t do vo cc on m lnh v on d liu c cng mc c quyn. Mt chng trnh c th truy nhp vo mt on d liu c mc c quyn thp hn, nhng nu truy nhp hoc gi on m lnh c mc c quyn cao hn th phi thng qua cng gi. 1.4.5.2. Qun l b nh theo phn on trong ch bo v. Cc on nh trong ch bo v c qun l theo ba thng s: + a ch nn + Gii hn on + Quyn truy nhp. Do thng tin v cc on kh ln nn khng th cha trong thanh ghi on m c cha trong cc b m t on. Cc b m t on nm trong bng b m t. C ba loi bng b m t. - Bng b m t ton cc GDT (bng GDT - Global Descriptor Table). Bng GDT qun l cc on (cc vng nh) cha cc chng trnh ca h iu hnh v d liu ca h thng (cc vng nh cha cc thng tin c tnh cht ton cc, thuc khng gian nh ton cc). Cc chng trnh ng dng c th truy nhp vng nh ny. + Bng b m t cc b LDT (bng LDT - Local Desriptor Table). Mi bng LDT qun l cc vng nh thuc mt nhim v (cc vng nh cha cc thng tin c tnh cht cc b, thuc khng gian nh cc b). M lnh v d liu ca mt nhim v ang chy s c bo v trc s truy nhp tri thp ca cc nhim v khc. Cc bng LDT thuc khng gian nh ton cc. + Bng b m t ngt (bng IDT - Interrupt Descriptor Table). Bng IDT cha cc b m t tr n 256 chng trnh phc v ngt. Bng IDT ng vai tr bng vect ngt, trong mi vc t ngt l mt b m t. Tt c cc Bng b m t u nm trong b nh chnh. a) B chn on 16 bt Trong ch bo v cc thanh ghi on CS, DS, ES, SS khng c dng xc nh a ch nn on nh trong ch thc, m c dng chn b m t on trong Bng b m t, thc hin chc nng B chn on. B chn on c dng xc nh v tr ca B m t

28

on trong Bng b m t. Ngi lp trnh phi np B chn on vo thanh ghi on tng ng khi mun truy nhp mt on no . B chn on c ba phn : + Phn Index: 13 bt, dng xc nh v tr ca B m t on, tnh t nn ca Bng b m t. + TI : xc nh loi Bng b m t cn truy nhp. TI = 1 truy nhp cc bng LDT TI = 0 truy nhp bng GDT + RPL (Requested Privilege Level) : mc c quyn yu cu. Mc c quyn RPL c sinh ra bi ngi np b chn on.

b) B m t on B m t on cha cc thng tin qun l mt on: a ch nn on, kch thc (gii hn) on v quyn truy nhp on. B m t on c h iu hnh, trnh bin dch hoc trnh np b nh to ra. B m t on gm 8 byte:

29

Trng a ch nn on (24 bt : A23 - A0) xc nh a ch nn ca on. h 16 bt th a ch ny cng l a ch vt l nn ca on. Trng gii hn on (16 bit : L15 - L0) xc nh kch thc ca on t 1 byte n 64Kb). Trng quyn truy nhp (8 bit) xc nh mc c quyn v cc thuc tnh khc ca on:

P - (Present) : Nu P = 1 on ang tn ti trong b nh. Nu P = 0 CPU s to ra ngoi t "khng tn ti on" khi ngi yu cu chn on ny. DPL - Descriptor Privilege Level): xc nh mc c quyn ca b m t (mc c quy ca on). DT - Descriptor Type) : xc nh loi b m t. DT = 1 B m t on m lnh hoc d liu DT = 0 B m t on h thng hoc cng giao dch. Kiu b m t: cu trc ca trng ny ph thuc vo loi b m t. C cc loi b m t sau: B m t on d liu. B m t on m lnh, B m t on h thng. B m t on h (DT = 0) c hai loi: b m t LDT, b m t TSS. B m t cng giao dch (DT = 0) (cn gi l cng giao dch) c dng truy nhp vo cc on m lnh. Cc b m t ny s c trnh by cc phn sau. - Cu trc ca byte quyn truy nhp trong B m t on d liu:

ED (Expansion Direction): xc nh hng truy nhp on (hng tin trin ca a ch). ED = 1 : hng a ch gim, on d liu l loi ngn xp. ED = 0 : hng a ch tng W/R (Wrie/Read): xc nh quyn ghi/c W/R = 1 : cho ghi/c on, d liu W/R = 0 cm ghi on d liu A (Accessed): A = 1 on b truy nhp - Cu trc ca byte quyn truy nhp trong B m t on m lnh:

C (Conforming) : C = 0 chng trnh con s thc hin vi mc c quyn PL = DPL C = 1 chng trnh s thc hin vi mc c quyn PL bng mc c quyn ca on cha chng trnh gi chng trnh con ny. R (Read): R = 0 : on m lnh thc hin c R = 1 : on m lnh thc hin c v c c. 30

A (Accessed): A = 1 on m lnh b truy nhp - Cu trc ca byte quyn truy nhp trong B m t on h thng: B m t on h thng (B m t TSS, B m t LDT) quy chiu n (tr n) cc on cha thng tin h thng.

Kiu on: - Kiu = 1: B m t quy chiu n on trng thi nhim v TSS, nhim v ny khng trng thi ang thc hin. - Kiu = 2 : B m t quy chiu n on cha bng LDT - Kiu = 3: B m t quy chiu n on trng thi nhim v TSS ca nhim v ang thc hin. + Hai byte d phng cho h 32 bit c dng:

i vi h 16 bt th hai byte ny phi c gi tr l 0000H. c) B m t cng giao dch (cng giao dch): B m t cng giao dch (cng giao dch) c dng truy nhp vo cc on m lnh. Cng giao dch cung cp phng tin chuyn giao iu khin gia chng trnh ngun v chng trnh dch, v d qua cc lnh CALL. C th truy nhp vo cc on c mc c quyn cao hn thng qua mt cng giao dch l cng gi. Cng giao dch c cu trc nh sau:

B m (WC - word count): xc nh s t cn sao chp t ngn xp ca chng trnh gi sang chng trnh c gi. Thng s WC ch c cng giao dch kiu gi (cng gi). Cu trc ca byte quyn truy nhp trong B m t cng giao dch (cng giao dch):

31

Kiu cng giao dch: c 4 loi cng giao dch. Kiu = 4 : cng giao dch kiu gi (cng gi) Kiu = 5 : cng giao dch kiu nhim v (cng nhim v) Kiu = 6 : cng giao dch kiu ngt (cng ngt) Kiu = 7 : cng giao dch kiu by (cng by) B m t cng giao dch kiu gi (cng gi) thng c dng chng trnh ngun c mc c quyn thp hn gi chng trnh ch c mc c quyn cao hn. B m t cng giao dch kiu nhim v (cng nhim v) c s dng khi c s thay i nhim v trong nhim v hin hnh. B m t cng giao dch kiu nhim v quy chiu n B m t on TSS. B m t cng giao dch kiu ngt v kiu by (cng ngt v cng by) cung cp b chn v a ch offset xc nh v tr ca chng trnh con phc v ngt bn trong on m lnh . d) Lc truy nhp on nh nh B chn on v B m t on :

Trong ch bo v do b chn on cho kh nng tr ti c 213 B m t on v mi B m t ca CPU 80286 tr n mt on c kch thc cc i 216 byte nn CPU 80286 c th qun l c b nh kch thc. 2*213*216 = 230 = 1 Gbyte e) C ch truy nhp b nh ( nh) qua bng GDT

32

Bng GDT c h iu hnh to ra khi khi ng h thng. CPU qun l bng GDT qua thanh ghi GDTR. Thanh ghi GDTR cha hai thng tin v bng GDT: a ch nn bng v kch thc (gii hn) bng. Khi c yu cu truy nhp on, ngi yu cu cung cp B chn on, CPU thc hin thao tc kim tra quyn truy nhp on trc khi cho truy nhp. i vi vic truy nhp on d liu, qu trnh kim tra c tin hnh theo quy tc: EPL = max (CPL, RPL) DPL trong : + CPL l mc c quyn ca nhim v ang thc hin. Thng thng CPL c gi tr bng mc c quyn ca on cha m lnh ang chy. B x l trung tm c th thay i gi tr ca CPL khi iu khin chng trnh chuyn n mt on m c sc c quyn cao hn. + RPL l mc c quyn yu cu v l mc c quyn ca b chn. Mc c quyn RPL c sinh ra bi ngi np b chn on. + EPL l mc c quyn hiu dng. + DPL l mc c quyn ca on b truy nhp Nu iu kin trn khng c tho mn th s sinh ra mt ngoi l v CPU khng cho truy nhp on. Nu iu kin v quyn truy nhp c tho mn th CPU cho truy nhp on. Vic truy nhp tng nh trong on c thc hin khng qua a ch nn on (c c t B m t on va c chn) v a ch offset ca nh . i vi vic truy nhp on m lnh, qu trnh kim tra c tin hnh theo quy tc: EPL = max (CPL, RPL) DPL trong vic truy nhp mt on m lnh c mc c quyn cao hn (EPL > DPL) phi thc hin thng qua cng gi. f) C ch truy nhp b nh ( nh) qua bng LDT. Bng LDT c h iu hnh to ra khi np mt chng trnh ng dng vo b nh hoc khi thc hin mt nhim v. Mi bng LDT qun l cc on ca mt chng trnh ng dng (mt nhim v). Vic qun l cc on (cc vng nh) thuc mt chng trnh ng dng (mt nhim v) c t chc nh sau :

33

Mi mt on nh c qun l bi mt B m t on. Cc B m t on ca mt nhim v c cha trong mt bng LDT ring bit. Ni cch khc, mi bng LDT qun l cc on nh ca mt nhim v. Mi bng LDT c qun l bi mt B m t LDT. B m t LDT cha a ch nn bng LDT, kch thc bng, quyn truy nhp bng (quyn truy nhp nhim v). Cc B m t LDT ca cc nhim v c cha trong bng GDT, Bng GDT c qun l bi thanh ghi h thng GDTR. Khi mt nhim v c thc hin, h iu hnh s np B chn LDT vo thanh ghi h thng LDTR. Thanh ghi LDTR tr n B m t LDT vo thanh ghi h thng LDTR. Thanh ghi LDTR tr n B m t LDT trong bng GDT, t y CPU thng qua bng LDT qun l c cc on ca nhim v v bt u (hoc tip tc) thc hin nhim v ny. truy nhp cc on trong nhim v, ngi yu cu cn np B chn on vo thanh ghi on tng ng. CPU thc hin thao tc kim tra quyn truy nhp on. Nu iu kin v quyn truy nhp c tho mn th CPU s sinh ra mt ngoi l v khng cho truy nhp on. Vic truy nhp tng nh trong on c thc hin thng qua a ch nn on (c c t B m t on va c chn) v a ch offset ca nh . g) C ch chuyn iu khin v gi chng trnh con trong ch bo v. Vic chuyn iu khin xy ra khi thc hin cc lnh nhy (lnh JMP) hoc lnh gi chng trnh con (lnh CALL). Trng hp thc hin lnh nhy hoc lnh gi trong cng on m lnh ca nhim v ang chy (lnh nhy gn, lnh gi gn) xy ra nh sau:

34

Khi thc hin lnh nhy gn (NEAR JUMP), con tr lnh IP c np gi tr mi. Chng trnh tip tc c thc hin t v tr mi do IP tr n. Khi thc hin lnh gi gn (NEAR, CALL), b x l trung tm thc hin cc thao tc sau: + Ct gi tr hin thi ca IP vo ngn tip. + Np a ch offset ca chng trnh con c gi (ich) vo IP. + Thc hin chng trnh con (ch). Trng hp chuyn iu khin n nhng on m lnh khc khi thc hin lnh gi xa (FAR CALL) th c hai tnh hung: - on m lnh ch c mc c quyn thp hn hoc bng mc c quyn ca on m lnh ngun hin ti. Khi b x l trung tm thc hin cc thao tc sau: + Ct gi tr hin thi ca CS v IP vo ngn xp. + Np b chn on m lnh cha chng trnh con (ch) vo CS + Np a ch offset ca chng trnh con (ch vo IP + Thc hin chng trnh ch Lnh RET cho php ri khi chng trnh con tr v chng trnh gi n. Lnh ny khi phc li ni dung b chn on m lnh ngun (ni dung thanh ghi CS), ni dung con tr lnh (ni dung thanh ghi IP) v tip tc thc hin chng trnh gi chng trnh con ny. - on m lnh chng trnh con (ch) c mc c quyn cao hn mc c quyn ca on m lnh ngun hin ti. Khi vic gi chng trnh con (ch) phi thc hin qua cng gi. B chn on lc ny khng tr n b m t on m lnh cha chng trnh con (ch), m tr n cng gi (b m t cng gi). Cng gi tr n b m t on m lnh ca chng trnh con (ch), cng gi cng cha a ch offset bt u chng trnh con (ch), qua gi c chng trnh con (ch. B x l trung tm thc hin qu trnh ny nh sau: + Tm lu gi ni dung CS, IP, SS, SP hin thi (thuc chng trnh ngun). + Np b chn cng gi v kim tra quyn truy nhp. + Ct gi gi tr tm lu ca SS v SP ngun vo ngn xp ch + Chuyn cc tham s t ngn xp ngun sang ngn xp ch + Ct gi gi tr tm lu ca CS v IP ngun vo ngn xp ch. + Np b chn b m t on m lnh ch v a ch offset (ly t cng gi), qua np b m t on m lnh ch. + Thc hin chng trnh con (ch). Khi b x l trung tm gp lnh RET th vic tr v chng trnh ngun c thc hin bt u bng vic kim tra quyn truy nhp, sau l khi phc ni dung cc thanh ghi CS, IP, SS, SP theo mt trnh t ngc li. 1.4.6. C ch a nhim Nhim v c nh ngha nh l mt thc hin ca chng trnh no . Mi mt nhim v c mt on trng thi nhim v (on TSS - Task State Segment) cha ton b trng thi ca nhim v . Mi on TSS c qun l (tr) bi mt B m t TSS nm trong bng GDT. CPU x86 c phn cng h tr thao thc chuyn nhim v. Thao tc chuyn nhim v thc hin lu v bo v ton b trng thi hot ng ca nhim v ang thc hin (bao gm

35

ni dung ton b cc thanh ghi ca CPU, khng gian a ch c lin quan v B chn LDT ca nhim v ang chy) vo on TSS, sau np trng thi ca nhim v tip theo t on TSS tng ng vo CPU, kim tra quyn truy nhp v bt u thc hin nhim v mi.

Thanh ghi nhim v TR (Task Register) tr n B m t TSS qun l nhim v hin thi. Thao tc chuyn nhim v c tin hnh theo cc bc sau : + Lu ton b trng thi hot ng ca nhim v ang thc hin (bao gm ni dung ton b cc thanh ghi ca CPU, cc a ch c lin quan v B chn LDT ca nhim v hin thi) vo on trng thi nhim v TSS ca nhim v ny. + Np B chn nhim v tip theo vo thanh ghi TR. Thanh ghi TR tr n B m t TSS qun l on TSS ca nhim v tip theo. + Qua B m t TSS truy nhp on TSS ca nhim v tip theo, np trng thi nhim v tip theo vo cc thanh ghi ca CPU, trong c thanh ghi LDTR. B m t TSS c np vo phn kn ca TR. + Thc hin kim tra quyn truy nhp. + Thc hin nhim v tip theo. 1.4.7 Cc ch xc nh a ch ton hng CPU thc hin chng trnh bng cch thc hin tun t cc lnh trong b nh chnh 1.4.7.1 Cu trc lnh Cu trc ca mt lnh c th c cc dng sau:

- M lnh: l phn cha thng tin xc nh cc thao tc hoc cng vic cn c thc hin. CPU x86 thc hin mt tp cc nhm lnh: - Nhm lnh s hc: ADD, SUB, MUL, DIV, ... 36

- Nhm lnh chuyn s liu: MOV, PUSH, POP ... - Nhm lnh r nhnh v iu khin: JMP, CALL, RET, INT, LOOP, CLI, STI, ... - Nhm lnh vo ra: IN, OUT - Cc lnh khc: logic, thao tc bt, x l xu... - Phn a ch: l phn thng tin xc nh ni cha ton hng. Cc ni c th cha ton hng: + Tc thi trong lnh (gi tr ton hng nm ngay trong lnh). + Cc thanh ghi ca CPU. + B nh. 1.4.7.2 Cc phng php xc nh a ch ton hng Cc phng php xc nh a ch ton hng (Cc phng php nh v ton hng) cho php xc nh ni cha ton hng. Ni cha ton hng c th l: Trn lnh, thanh ghi v b nh. B nh mc nh c hiu l on d liu, xc nh a ch nh l xc nh a ch offset hiu dng ca nh trong on . Trong cc trng hp khc cn ch r on nh cn truy nhp, v d ES: [a ch offset]. C ba nhm ch nh v ton hng + nh v tc thi + nh v thanh ghi + nh v b nh. Cc thao tc c th xy ra gia cc i tng sau: Thanh ghi Tc thi Thanh ghi Thanh ghi B nh Tc thi B nh Thanh ghi - nh v tc thi: D liu nm ngay trong cu lnh V d: MOV AX. 0F000h: a gi tr F000h vo AX - nh v thanh ghi : Cc thanh ghi a nng, cc thanh ghi a ch hoc cc thanh ghi on ca CPU l ni cha d liu. V d: MOV AX. BX: a gi tr BX v AX - nh v b nh: Phng php nh v b nh cho php xc nh a ch offset (a ch lch) ca nh cha ton hng, nh mc nh nm trong on d liu. C cc phng php nh v b nh sau: - nh v trc tip - nh v gin tip. - nh v c s - nh v ch s - nh v c s ch s - nh v y . + nh v trc tip : a ch nh cha d liu nm ngay trong lnh. a ch offset = [gi tr c th] 37

V d: MOV AX, [1000h]: a ni dung nh c a ch DS: 1000h vo AX MOV AX. ALFA: ALFA l tn tin c khai bo

+ nh v gin tip (thanh ghi). Cc thanh ghi a ch BX, BP, SI, DI, SP l ni cha a ch d liu. V d: MOV AX, [BX] ; Trong [BX]: = 1000h : lnh thc hin a ni dung nh c a ch DS:1000h vo AX.

+ nh v c s :

Phng php nh v c s thng c dng trong cc thao tc vi phn t mng d liu hoc vi cc cu trc d liu tng ng. V d: MOV AX, [BX + 10h] ; Trong [BX] = 1000h, lnh thc hin a ni dung nh c a ch DS:1010h vo AX.

38

+ nh v ch s :

V d: MOV AX, [SI + 1000h] ; Trong [SI] = 10h. lnh thc hin a ni dung nh c a ch DS:1010h vo AX.

iu khc bit gia phng php nh v ch s so vi phng php nh v c s bt u t h 32 bit l c th vit (SI*bi s). (DI*bi s). Bi s l 1, 2, 4, 8. S khc nhau gia nh v ch s v nh v c s ? V d : 1 chui d liu c cha trong cc nh c a ch A, A+1, A+2. Mun chuyn chui ny ti v tr B, B+1, B+2 Phng n a ra l : Mov B,A Mov B+1, A+1 Mov B+2,A+2 Thc hin bng phng php nh v gin tip : Dng 2 thanh ghi sau mi ln thc hin lnh 2 thanh ghi li tng ln 1. Mt gii php khc a ra l s dng 1 thanh ghi ch s. Khi ny a ch nh s gm 2 phn : Ni dung thanh ghi ch s v mt hng s (bng tng thanh ghi ch s cng vi hng s). Vi cch ny ch cn dng mt thanh ghi cho vng lp sao chp bng cch khi ng cho thanh ghi ch s bng 0 (SI=0) ri tng dn ni dung thanh ghi ny ln 1 lng bng kch thc ca khi d liu cn sao chp. - nh v c s ch s :

V d: MOV AX, [BX + SI] ; 39

trong [BX] =1000h, [SI] =10h. Lnh thc hin a ni dung nh c a ch DS:1010h vo AX.

Phng php nh v c s ch s thng c dng trong cc thao tc vi mng d liu hoc vi cc cu trc d liu tng ng. - nh v y : a ch offset= [Thanh ghi c s + Thanh ghi ch s + khong dch].

Phng php nh v ny thng c dng trong cc thao tc vi mng d liu hai chiu hoc vi cc cu trc d liu phc tp. 1.5. K thut ng ng v k thut x l song song mc lnh t vn Vic thi hnh mt lnh m my thng c chia thnh 5 giai on:

1. Nhp lnh (FI Fetch the Instruction) 2. Gii m lnh (DI Decode the Instruction) 3. To a ch ton hng (GOA Generate Operand Address) 4. Nhp ton hng (FO Fetch Operands) 5. Thc hin lnh (EI Execute Instruction) Vi k thut x l lnh thng thng, n v x l trung tm phi tun t thc hin xong tt c cc giai on thc hin mt lnh, thng l sau 5 chu k my, ri mi chuyn sang nhp v thc hin lnh tip theo. tng tc x l lnh m khng nht thit phi tng

40

tn s nhp ca my, ngi ta s dng cc k thut khc nh k thut x l lnh kiu ng ng (Pipeline) v k thut x l lnh song song (ILP).
1.5.1. K thut x l lnh kiu ng ng (Pipeline)

K thut x l lnh kiu ng ng c s dng trong cc n v x l trung tm t i n v x l trung tm Intel 8086.

ng ng tng t nh dy chuyn sn xut nhiu cng on. dy chuyn sn xut, mi cng on thc hin mt thao tc sn xut. Sn phm c chuyn v hnh thnh dn sau mi cng on sn xut, cho n khi c hon thnh cng on cui cng. Trong k thut x l lnh theo kiu ng ng, vic thc hin lnh cng c thc hin qua 5 giai on, giai on n tip sau giai on kia, cho n khi thc hin xong lnh. V i mt ng ng 5-giai on, ti mi chu k my c 5 b d liu thuc 5 giai on x l c gi vo ng ng v 5 thao tc c thc hin ng thi, nh vy nu tnh t khi thc thi xong lnh u tin th c sau mi chu k my li c mt lnh c hon thnh v mt lnh mi c nhp. K thut ng ng cho php tng tc thc hin lnh ln gp nhiu ln: So snh vi kiu x l tun t thng thng, 5 lnh c thc hin trong 25 chu k xung nhp, th x l lnh theo k thut ng dn thc hin 5 lnh ch trong 9 chu k xung nhp. Nhc im: Ta thy rng ton b lnh c x l khng phi l nhng lnh c lp, m cn mt phn kh ln nhng lnh ph thuc. n gin nht l nhng lnh trong thut ton xoay vng: php tnh sau phi ch kt qu ca php tnh ngay trc mi c th thc hin. y chnh l im yu ca kin trc pipeline. Khi lnh trc (vd lnh 1) c thc hin giai on n+1 ca pipeline, lnh k sau n (vd lnh 2) c np vo v thc hin giai on n, nhng nu lnh 2 l ph thuc kt qu ca lnh 1, th mc d lnh 2 ny vn c np vo pipeline nhng n vn khng h c x l. Sau khi lnh 1 x l xong, ra kt qu, ton b lnh trong pipeline hin thi d ang c x l bc no u phi "tng ra ngoi" np lnh 2 li t giai on u tin. Qu trnh thi - np - x l li ny mt rt nhiu thi gian (c 10 giai on th ch phi thi, np v x l li 10 giai on, cn c 30 giai on th...), nn y chnh l nhc im ln ca cu trc pipeline di, tu vo tng soft, nhc im ny s cn bng, ln hn, hoc nh hn so vi u im ni trn. Chnh do trong mt tp lnh c s tn ti ca c nhng lnh c lp v ph thuc, nn trong CPU mi cn b tin on nhnh BPU. BPU lm nhim v tin on xem lnh no l ph thuc, c lp, v xp th t chng sao cho vic x l c li nht. VD pipeline c 20 giai on th 2 lnh ph thuc nhau s c xp cch nhau 19 lnh khc. Lc khi lnh trc va x l xong giai on th 20 th kt qu ca n s c chuyn ngay n lnh ph thuc k

41

sau n va c np vo giai on 1, v 19 lnh xen gia 2 lnh ny vn c x l bnh thng. 1.5.2. K thut ILP (x l song song mc lnh) K thut ILP l k thut thit k n v x l trung tm v chng trnh dch nhm lm tng tc cc thao tc my (nh ghi-c b nh) v thc hin cc php tnh. Trong cc k thut ILP c k thut superscalar, trong ti mt chu k my, nhiu lnh c nhp v c thc hin ng thi trn nhiu ng ng khc nhau. Pentium l loi n v x l trung tm c thit k theo k thut superscalar, trong hai lnh c nhp v gii m ng thi. Pentium c hai ng ng thc hin lnh song song U v V. Qu trnh thc hin lnh c m t nh sau :
Chu k 1 FI 2 DI FI 3 GOA GOA DI FI 4 FO FO GOA GOA DI 5 EI EI FO FO GOA GOA EI EI FO FO EI EI 6 7

Trong mt my tnh siu v hng phn cng phi qun l vic c v thi hnh ng thi nhiu lnh. Vy n phi c kh nng qun l cc quan h gia s liu vi nhau. Cng cn phi chn cc lnh c kh nng c thi hnh cng mt lc. Nhng b x l u tin a ra th trng dng k thut ny l cc b x l Intel i860 v IBM RS/6000. Cc b x l ny c kh nng thc hin song song nhiu tc v trn s nguyn v trn s l. Nm 1992, ngi ta thy xut hin cc b x l c nhiu b thc hin tc v c lp vi nhau (nhiu ALU, b tnh ton s l, np d liu, lu d liu, nhy), c th thc hin song song nhiu lnh (lnh tnh s nguyn, s l, lnh b nh, lnh nhy...). S lnh c th c thi hnh song song cng nhiu th phn cng thc hin vic ny cng phc tp.

42

Chng 2 T chc b nh trong my vi tnh PC


2.1. T chc b nh theo phn cp - H thng nh ca my tnh ngy nay gm cc loi sau: + Cc thanh ghi bn trong CPU + B nh trong (b nh chnh): c RAM +ROM + B nh ngoi: c a cng, a mm, a quang, a CD, + B nh cache Mi loi b nh c vai tr th no? v cc loi b nh ny c t chc nh th no? - Mt trong cc chc nng ca CPU l tun t nhp lnh t b nh chnh v thc hin lnh m tc truy nhp b nh chnh (b nh thao tc) tng i chm (vi DRAM l khong 100ns = 1.10-7s) so vi kh nng ca CPU (v d vi Pentium IV 3,4 GHz th tn s xung nhp trong l tn s xung nhp ngoi 200MHz * 17) Nu CPU nhp cc lnh v d liu trc tip t b nh chnh th tc x l thc ca CPU ph thuc vo tc truy nhp ca b nh chnh K thut c s dng gim thi gian trung bnh truy nhp b nh chnh l thm mt b nh c tc truy nhp cao, b nh SRAM vo h thng lu tr. B nh loi ny c gi l b nh cache (b nh n). - Mt khc dung lng nh ca b nh chnh cng kh hn ch, do vy nu h thng lu tr ch gm b nh chnh cng s hn ch kh nng ca CPU gii php a ra l s dng b nh ngoi nh l mt thnh phn ca h thng b nh tng kh nng lu tr thng tin ca my tnh. - K thut t chc h thng nh: Ti mt thi khong th cc lnh v d liu c s dng thng u nm mt khu vc tng i nh trong b nh chnh. Cc vng ny lun chuyn dch khi chy chng trnh do ngi ta t chc h thng b nh my tnh theo kiu h thng c phn cp. C th nh hnh v sau:

43

+ Cc thanh ghi: L n v lu tr, c kch thc nh (di 8bits, 16bits, 32bits) nm ngay trong CPU do vy tc truy cp rt nhanh. Chng c dng cha ton hng ca lnh. + B nh cache: c dung lng ln hn cc thanh ghi, c ch to theo kiu SRAM (n v nh c bn tnh l mt mch lt flip-flop), nm gia b nh chnh CPU. c s dng lu tr cc cc lnh v d liu thng c s dng nhiu trong qu trnh thc hin chng trnh. + B nh chnh: C dung lng ln hn b nh cache, c to bi cc vi mch nh bn dn DRAM nn c tc truy xut chm hn b nh cache. B nh chnh cha m lnh chng trnh v d liu ca chng trnh ang chy hin thi nh cc chng trnh iu khin hot ng ca h thng, cc chng trnh ng dng . N cho php CPU nhn lnh t y khi ng h thng. Cc chng trnh ng dng cng nh cc d liu cng cc kt qu tm thi c lu tr trong RAM. + B nh ngoi: Dung lng ln, thng tin vn c lu tr khi mt ngun nui. B nh ngoi dng cha chng trnh ca h iu hnh, cc chng trnh ng dng, kt qu php tnh Nhn xt: Tc truy cp ca CPU s gim dn theo tng cp ca b nh t cc thanh ghi trong CPU ti b nh th cp (a t). Dung lng nh s tng dn tnh t CPU -> b nh th cp (a t) - C s ca vic qun l h thng b nh c phn cp l da trn nguyn l quy chiu phn vng (Mi d liu trong mt cp th c gp li trong cp thp hn v c th tip tc gp li trong cp thp nht), nh hnh sau:

Khi CPU cn truy xut d liu: + Nu d liu nm ngay trong thanh ghi th CPU truy xut ngay v a vo x l. + Nu d liu nm ngoi thanh ghi: CPU s tm v np d liu t b nh cache. + Nu d liu khng c trong b nh cache th d liu s c tm np trong RAM sau 44

a vo cache. + Nu d liu khng c trong RAM th d liu tip tc c tm np trong b nh ngoi. Nh vy tng tc truy xut b nh th cn phi c chng trnh hon v d liu (Swapping) thc hin lun chuyn cc khi d liu vo b nh cache sao cho xc sut tm thy d liu trong b nh cache l ln nht. 2.2. T chc cache Th tc qun l b nh phn cp c cache l np tng on chng trnh v d liu t b nh chnh vo cache. Phng php n gin nht c dng quy chiu b nh c cache l phng php nh x trc tip. Vic quy chiu n cache c gi l "trng" (hit) nu truy nhp c thng tin (nm trong nh c a ch CPU i hi) trong cache, v gi l "trt" (miss) nu khng truy nhp c thng tin trong cache v phi c t b nh chnh. B nh chnh c chia thnh nhiu khi, mi khi bao gm nhiu t hoc nhiu byte . a ch thp Khi 0 Khi 1 Khi 2 Khi 3 Khi 4 Khi 5 Khi 6 1t (1byte) 1t (1byte) 1t (1byte) 1 t (1byte) 1 t (1byte) 1 t (1byte) 1 t (1byte) 00 01 10 11 00 01 10

B nh cache c th cha nhiu khi, gi l khi cache. Mi khi cache nm mt v tr xc nh trong cache. Mi khi cache cha cc thng tin nh: s hiu th, bit c v bn thn khi d liu (khi d liu trong cache l bn sao ca khi d liu trong b nh chnh). Cu trc mt khi cache nh sau: S hiu th
24 24

Khi d liu
2

Gi thit b nh c 2 nh. Nu cache c 2 v tr cha (khi cache) th s lng th s l 2 /22 = 222 (=4triu th). 2.2.1. Trng hp mi khi cha mt t (hoc 1 byte) d liu a) Thao tc c b nh Gi s c b nh chnh c BUS a ch 24 bt v cache c 4 khi.

45

Khi mt t (1byte) d liu c c th CPU cung cp a ch cho b iu khin b nh. B iu khin b nh tch a ch 24 bit lm hai phn nh hnh di: - 2 bit a ch thp nht c t vo thanh ghi a ch MAR ca cache. Cc bit ny xc nh v tr (th t) khi cn tm trong cache. - 22 bit a ch cao m t s hiu th. S hiu th l con s xc nh v tr ca khi nh trong b nh. Thao tc c d liu t b nh c tin hnh nh sau: Bc 1: b iu khin cache c khi d liu trong cache ti v tr c s th t trng vi phn s th t khi trong a ch trn BUS. Bc 2: b iu khin cache xc nh xem s hiu th ca khi trong cache ny c trng vi s hiu th trong a ch BUS hay khng. Bc 3: nu trng th vic quy chiu l "trng" v mt t d liu c c t cache vo CPU. Nu khng trng (trng hp "trt") th t d liu phi c ly t b nh chnh. Trong trng hp "trt" cn phi sao lu d liu trong cache vo b nh chnh theo a ch ca n, sau mi np d liu mi cng vi th ca n vo cache v t bit c F = 0 (ghi nhn ni dung cache trng vi ni dung b nh chnh) v d liu c cung cp cho CPU. S th cache trong cc khi cache c th trng nhau (khi khi cache cha b thay th) v c th khc nhau (khi ni dung khi cache b thay). b) Thao tc ghi b nh C mt vi k thut c dng ghi d liu vo b nh chnh khi thc hin cc lnh ghi b

nh: K thut ghi xuyn (write through) v k thut sao lu (copy back). + loi cache ghi xuyn (write through) d liu c ghi ln c cache ln b nh chnh cng mt lc, khng dng n bit c F. K thut ny lm cho thi gian ghi b nh tng ln. + loi cache sao lu (copy back) th d liu ch c ghi vo cache v bit c F c lp (F = 1), ghi nhn ni dung cache khc vi ni dung b nh chnh. Sau nu khi d liu cn c thay th bng khi d liu khc t b nh chnh (trng hp "trt") th bit c F c kim tra xc nh xem c cn

46

thc hin thao tc sao lu ny khng, nu F = 1 th cn thc hin sao lu, nu F = 0 th khng cn sao lu. K thut ny lm tng tc thao tc vi b nh v c gi l k thut sao lu c dng c. 2.2.2. Trng hp mi khi cha nhiu t d liu Khi c nhiu t d liu trong mt khi th k thut nh x trc tip phc tp hn. Gi thit a ch l 24 bit v mi khi gm 4 t (hoc byte) d liu. a ch trn BUS s c tch thnh ba phn (hnh di):

Phn xc nh s th t t (hoc byte) trong mt khi, v d l 2 bit. Cc bt ny xc nh v tr t d liu cn truy nhp nm trong khi cache. Phn xc nh s th t khi, v d l 2. Phn s liu th, v d l 20 bit. Cc thao tc khc c thc hin tng t nh trnh by trn. 2.2.3. K thut tp lin hp Vn tc li c t ra khi CPU lin tc nhp 2 (hoc 4) lnh c cng a ch khi nh (cc bit a ch thp ca cc khi nh trng nhau). Cch gii quyt l cha 2 (hay 4) khi nh ni trn ti vng mt v tr (mt khi) trong cache, nhng mi khi c mt th ring. Khi v tr ny trong cache c truy nhp th c 2 (hay 4) th trong 2 khi con (hoc 4 khi con) cng c kim tra. Cc khi con ny to thnh mt tp lin hp (hnh di) K thut t nhiu (2 hoc 4) khi vo cng mt v tr trong cache c gi l k thut tp lin hp.

47

2.3 T chc b nh my vi tnh PC C hai cch t chc qun l b nh: t chc theo phn on v t chc tuyn tnh. cch tip cn theo phn on chng trnh v d liu c ngi lp trnh chia thnh cc modul. Mi modul c mt khng gian a ch ring. Mi modul c gi l mt on v c gn mt con s, gi l a ch on. Mi nh trong on c xc nh bi a ch logic gm hai con s: a ch on v a ch offset (a ch lch). Cc modul c np vo b nh v c qun l theo c ch phn on. cch tip cn tuyn tnh, mt b nh vi khng gian a ch rt ln (o) c cung cp cho chng trnh. a ch ny l a ch tuyn tnh v bt u t 0. Chng trnh c chia thnh cc khuc nh c kch thc c nh, mi khc ny c gi l mt trang, v c np vo b nh vt l. Mi chng trnh c h iu hnh qun l bng mt bng trang. Cc khc chng trnh cha trong b nh c qun l theo c ch phn trang. Nhim v ang chy ti mt thi im ch cn mt s t trang chng trnh v d liu trong b nh vt l, nn k thut qun l b nh theo trang l mt k thut thch hp cho vic t chc b nh o. Ngi ta c th kt hp c hai cch ni trn qun l b nh. 2.3.1. C ch qun l b nh theo phn trang Cc CPU x86 32 bit c phn cng h tr qun l b nh trong ch bo v theo c hai c ch phn on v phn trang. C ch qun l b nh theo phn on c trnh by chng 1. Trong phn ny ta ch xt c ch qun l b nh theo phn trang. n v qun l b nh chuyn a ch logic gm a ch nn on 32 bit v a ch offset 32 bit thnh a ch tuyn tnh. Nu chn cch qun l theo phn on th a ch tuyn tnh s l a ch vt l. Nu chn cch qun l theo phn trang th n v qun l b nh s chuyn a ch tuyn tnh thnh a ch vt l theo c ch qun l theo phn trang. Trong c ch qun l theo trang, chng trnh c chia thnh cc khc nh c kch thc xc nh, c gi l trang. Mi trang chng trnh c gn vo tng on nh ca b nh, mi on nh cha trang c gi l mt khung 48

trang. H iu hnh qun l qu trnh thc hin chng trnh bng bng trang. Bng trang ch ra v tr khung trang (a ch nn) ca mi trang chng trnh. CPU da vo v tr khung trang v a ch offset ca nh trong trang tnh ra a ch vt l ca nh. Cu trc ca h thng qun l gm 3 phn: th mc trang (Page Directory), bng trang (Page Table) v trang (Page). Th mc trang, bng trang v trang u c cng mt kch thc l 4Kbyte. Th mc trang: Th mc trang c kch thc 4Kbyte. Th mc trang cha ti 1024 Li vo th mc trang PDE (Page Directory Entry). PDE c kch thc 32 bit (4 byte). Mi PDE cha 20 bt a ch nn bng trang (tr n nn bng trang). Mi mt th mc trang c th qun l c ti 1024 bng trang. Cu trc mt PDE trong th mc trang: 31 12 11 0 a ch bng trang (20bit) Thng tin v bng trang Phn a ch bng trang cha 20 bit cao ca a ch nn bng trang (a ch bt u mt bng trang), 12 bt thp ca a ch nn bng trang lun bng 0. Phn thng tin v bng trang cha cc thng tin v quyn truy nhp bng trang v mt s thuc tnh khc ca trang. Cc bit 1 v 2 trong mi PDE cung cp mc c quyn v quyn ghi/c v.v... ca tt c cc trang tr bi PDE ny. Trong c ch qun l b nh theo trang, 10 bit cao (t bit 22 n bit 31) ca a ch tuyn tnh c dng xc nh v tr ca PDE trong th mc trang (v tr so vi nn th mc trang). Bng trang: Bng trang c kch thc 4 Kbyte. Bng trang cha 1024 li vo bng trang PTE (Page Table Entry). PTE c kch thc 32 bit (4 byte). Mi PTE cha a ch nn ca mt trang 4Kbyte, do vy mt bng trang c th qun l c ti 1024 trang. Cu trc mt PTE: 31 12 11 0 a ch trang (20bit) Thng tin v trang

Phn a ch trang cha 20 bit cao ca a ch vt l nn trang (a ch vt l bt u mt trang), 12 bt thp ca a ch nn trang lun bng 0. Phn Thng tin v trang cha cc thng tin v quyn truy nhp trang v mt s thuc tnh khc ca trang. Cc bt 1 v 2 trong mi PTE cung cp mc c quyn v quyn ghi/c, v.v... ca tt c cc trang tr bi PTE ny. Trong c ch qun l b nh theo trang, 10 bit ca a ch tuyn tnh (t bit 12 n bt 21) c dng xc nh v tr ca PTE trong bng trang (v tr so vi nn bng trang). C hai mc c quyn c dng bo v trang: mc chng trnh ng dng (tng ng mc 3 trong qun l theo on) v mc chng trnh gim st (tng ng mc 0, 1, 49

2 trong qun l theo on). Mc thp nht trong hai mc ca PDE v PTE c ly lm mc c quyn v quyn ghi/c ca tng trang. a ch vt l ca nh trong trang c tnh bng cch kt hp 20 bit cao (phn a ch trang) trong PTE vi 12 bit thp nht trong a ch tuyn tnh. 2.3.2 C ch truy nhp b nh theo trang Cc my tnh PC loi 32 bit qun l b nh theo cch kt hp hai c ch phn on v phn trang. truy nhp mt nh CPU cn c mt a ch logic, gm a ch nn on (nhn c t b m t on theo c ch c trnh by Chng I) v a ch offset. a ch logic ny c chuyn thnh a ch tuyn tnh. a ch tuyn tnh ny c dng tnh a ch vt l v truy nhp nh theo c ch phn trang (hnh bn di). Khi truy nhp theo c ch phn trang a ch tuyn tnh c tch thnh 3 phn: + A31 A22: 10bit ch s PDE, xc nh v tr PDE trong th mc trang. + A21 A12: 10 bit ch s PTE, xc nh v tr PTE trong bng trang. + A11 A0: l 12 bt a ch offset ca nh trong trang. a ch vt l ca nh trong trang c tnh bng cch kt hp 20 bit cao (phn a ch trang) trong PTE vi 12 bit thp (A11A0) nm trong a ch tuyn tnh ny.

50

51

Chng 3 Cc phng php vo ra d liu trong my vi tnh


3.1. Cu trc phn cng ca h thng vo/ra d liu - n v x l trung tm CPU thc hin trao i thng tin vi cc thit b ngoi vi v th gii bn ngoi thng qua thit b giao din. Thit b giao din l loi thit b kh trnh. Mi mt thit b giao din u c ba loi thanh ghi, mi loi thc hin mt chc nng khc nhau, l cc thanh ghi iu khin (control), thanh ghi trng thi (status) v thanh ghi d liu (data). Mi mt thanh ghi u c gn mt a ch xc nh, gi l a ch cng.

+ Cc thanh ghi iu khin (thanh ghi CONTROL) nhn v cha cc t iu khin xc lp ch lm vic ca thit b. + Cc thanh ghi trng thi (thanh ghi STATUS) cha thng tin phn nh trng thi lm vic ca thit b giao din v thit b ngoi vi. + Cc thanh ghi d liu (thanh ghi DATA) thc hin chc nng b m tm cha d liu vo/ra. Khi CPU a mt d liu ra ngoi (khi CPU thc hin lnh OUT xut mt d liu ra cng c a ch xc nh) thc cht l CPU a d liu ra thanh ghi d liu ca thit b giao din, thit b giao din s chuyn n thnh dng thch hp vi thit b ngoi vi ri mi a ra ngoi cho thit b ngoi vi. Khi thit b ngoi vi gi mt d liu cho my tnh, d liu ny c a vo thanh ghi d liu trong thit b giao din. CPU nhp d liu t ngoi bng cch c thanh ghi d liu m ny. VD: OUT port 378, AL: a ni dung thanh ghi AL ra cng my in 3.2. Cc phng php vo/ra d liu 3.2.1 Phn loi Thit b giao din ch gip CPU kt ni mt cch thch hp v mt vt l cc thit b bn ngoi, nhng cha m bo tnh tin cy ca qu trnh trao i thng tin. iu ny xut pht t mt s nguyn nhn khch quan l nhp lm vic v tc lm vic ca CPU khc xa thit b bn ngoi nhiu. CPU c th thc hin trao i thng tin vi cc thit b bn ngoi c tin cy cao cn phi p dng cc phng php vo ra thch hp, cc phng php ny c gi l cc phng php vo ra d liu. C 4 phng php vo ra d liu, nm trong hai nhm phng php khc nhau (hnh 52

v):

3.2.2 Phng php vo/ra d liu theo nh trnh Phng php vo ra theo nh trnh l phng php trong qu trnh vo ra c thc hin theo mt chu k xc nh trc, nh cc lnh vo ra ( lnh IN hoc OUT) v CPU khng quan tm n trng thi ca thit b vo ra ( gm thit b giao din v thit b ngoi vi). .

u im: Phng php ny ph hp vi nhng qu trnh vo/ra c chu k c nh v c th xc nh trc. Nhc im: tin cy khng cao

53

3.2.3 Phng php vo/ra d liu theo kiu thm d Vn iu khin vo/ra d liu s l n gin nu thit b ngoi vi lun sn sng lm vic vi CPU. V d, vi thit b vo nh b phn o nhit s lp sn trong mt h thng iu khin lc no cng c th cung cp s o v nhit ca i tng cn iu chnh, hay thit b ra nh b n LED dng hin th gi tr nhit trong h thng ni trn th lc no cng c th biu hin thng tin . Nh vy khi CPU cn c thng tin v nhit ca i tng th n ch vic c d liu ti cng phi ghp vi b o nhit v nu CPU mun biu din thng tin va c ln n LED th n ch vic a ra tn hiu iu khin ti m khng cn kim tra xem cc thit b ny c ang sn sng lm vic hay khng. Trong mi thit b giao din thng c t nht mt thanh ghi trng thi cha thng tin phn nh trng thi lm vic ca thit b ny v ca thit b ngoi vi. Khi thc hin phng php vo ra c thm d, CPU lun thc hin kim tra trng thi sn sng lm vic ca thit b trc khi thc hin tht s vic vo ra d liu. Vic kim tra trng thi sn sng ca thit b bng cch kim tra thng tin trn thanh ghi trng thi.

Qu trnh vo/ra d liu theo phng php thm d nh sau:

Qu trnh vo/ra d liu vi nhiu thit b theo phng php thm d:

54

u im ca phng php thm d: do CPU lun kim tra trng thi sn sng lm vic ca thit b trc khi thc hin vo/ra d liu nn qu trnh vo/ra d liu kiu ny c tin cy cao. Nhc im: Do CPU lun phi kim tra ln lt trng thi lm vic ca cc thit b cho nn tc vo/ra d liu chm. Hn na, nu CPU ch lm c mt cng vic l vo/ra d liu (theo phng php thm d) th hiu qu khng cao, ngc li nu CPU ng thi phi thc hin nhiu loi cng vic hn th thi gian lm vic ca CPU s b chia x, ng thi tin cy ca phng php vo/ra thm d cng b gim i rt nhiu. 3.2.4 Phng php vo/ra d liu theo ngt cng Trong cch vo/ra d liu iu khin bng phng php thm d, trc khi tin hnh trao i d liu CPU phi dnh ton b thi gian vo vic xc nh trng thi sn sng ca thit b cn trao i. Trong h thng VXL vi cch lm vic nh vy, thng thng CPU c thit k ch yu ch l phc v cho vic vo/ ra d liu v thc hin cc tc v x l d liu lin quan. Trong thc t, ngi ta phi tn dng nhng kh nng ca CPU thc hin nhng cng vic khc ngoi vic trao i d liu vi TBN, ch khi no c yu cu trao i d liu th mi yu cu CPU tm dng cng vic hin ti phc v vic trao i d liu. Sau khi hon thnh th CPU li tr li thc hin tip cng vic ang tin hnh, hoc thc hin mt cng vic mi. Cch lm vic nh vy gi l ngt cng trao i d liu. Mt h thng nh vy c th p ng rt nhanh vi cc yu cu trao i d liu trong khi vn c th thc hin cc cng vic khc.

55

Ngt l s kin CPU b tm dng tin trnh ang thc hin chuyn sang thc hin qu trnh phc v ngt.

Ngt cng l phng php vo/ra d liu trong thit b vo/ra ch ng khi ng qu trnh vo/ra d liu nh h thng ngt cng. Thng thng qu trnh vo/ra theo ngt cng c tr gip bi thit b iu khin ngt PIC (Programmable Interrupt Controller). PIC c chc nng ghi nhn cc yu cu ngt IRQ v cung cp cho CPU s ngt i din cho a ch ca chng trnh con phc v ngt v tng ng yu cu ngt IRQ. Cu trc ca h thng ngt cng:

Qu trnh vo ra theo ngt cng; - CPU dang thc hin mt chng trnh no - Mt hoc nhiu thit b vo/ra c yu cu c phc v pht tn hiu IRQ cho PIC - Thit b PIC pht ra tn hiu INT cho CPU, i CPU phc v - CPU thc hin cc thao tc sau: ++ Thc hin nt lnh ca chng trnh hin hnh. ++ Lu a ch tr v (ni dung cc thanh ghi CS, IP) v thanh ghi c FLAGS vo ngn xp. ++ Gi 2 tn hiu tr li ngt INTA cho PIC - PIC nhn c tn hiu INTA ln th 1 t CPU th PIC khng gi g cho CPU m thc hin chc nng ca n nh: Sp xp u tin cho cc yu cu ngt IRQi. - PIC nhn c tn hiu INTA ln 2 th n pht s hiu ngt (con s i din cho a ch ca chng trnh con phc v ngt, v tng ng vi tn hiu IRQ) cho CPU. - Da trn s hiu ngt ny CPU kch hot v thc hin chng trnh con phc v ngt thc hin vo ra d liu. - Khi chng trnh phc v ngt kt thc (Khi CPU thc hin lnh IRET) th CPU khi phc a ch tr v vo thanh ghi CS, IP, ni dung thanh ghi FLAGS v tip tc tip tc thc hin chng trnh va b tm dng. 56

u im: - CPU thc hin vo ra d liu ngay sau khi c yu cu t TB bn ngoi do vy qu trnh vo d liu c tin cy cao. CPU. Do nhng u im ny m phng php ny c dng thc hin vo/ra d liu vi phn ln cc thit b chun ca my tnh nh: Bn phm, my in, thit b vo/ra ni tip, song song, Tuy nhin i vi phng php ny qu trnh chuyn d liu gia b nh v thit b vo/ra vn phi qua CPU v qu trnh vo/ra d liu vn do CPU thc hin nn y cha phi l phng php vo ra d liu nhanh nht. 3.2.5 Phng php vo/ra d liu theo kiu DMA (truy nhp trc tip b nh - Direct Memory Access) Trong cc cch iu khin vic trao i d liu gia thit b ngoi vi v VXL bng cc cch thm d trng thi sn sng ca thit b ngoi vi hay bng cch ngt b VXL nh trn, d liu thng c chuyn t b nh qua b VXL ri t ghi vo thit b ngoi vi hoc ngc li, t thit b ngoi vi, d liu c c vo qua b VXL ri t ghi vo b nh. V th tc trao i d liu ph thuc rt nhiu vo tc thc hin ca cc lnh MOV, IN v OUT ca b VXL. Do tc trao i d liu ni chung l chm. Trong thc t c nhng khi rt cn thit phi trao i d liu tht nhanh vi thit b ngoi vi: nh khi a d liu hin th ra mn hnh hoc c, ghi a ... . Trong cc trng hp ta cn c c kh nng ghi/ c d liu trc tip vi b nh th mi p ng c yu cu v tc trao i d liu. C mt phng php vo ra d liu p ng c yu cu cao v tc vo ra, l phng php truy nhp trc tip b nh ( phng php DMA). lm c iu ny, cc h VXL ni chung u phi dng thm mch chuyn dng iu khin vic truy nhp trc tip b nh (Direct Memory Access Controller, DMAC) v phng php ny l phng php iu khin vo/ra d liu bng DMA. Qu trnh vo ra d liu trc tip gia b nh v thit b ngoi vi khng qua CPU c gi l qu trnh DMA. Trong qu trnh DMA vic chuyn d liu khng c iu khin bi CPU m bi mt thit b phn cng c gi l b iu khin DMAC(Direct Memory Access Controller) Cu trc h thng vo ra d liu theo kiu truy nhp trc tip b nh nh sau. CPU ch phc v thit b vo ra khi c yu cu do vy tng hiu qu lm vic ca

Qu trnh DMA c thc hin nh sau:

57

Gi s CPU ang thc hin bnh thng - DMAC c xc lp ch lm vic, nhn thng tin v a ch u khi nh cha d liu v kch thc khi d liu cn truyn - Thit b vo/ra pht tn hiu DRQ cho DMAC - DMAC pht tn hiu HOLD=1 cho CPU, i CPU i vo ch DMA - CPU thc hin nt chu k my - CPU pht tn hiu HLDA tr li cho DMAC v t tch ra khi h thng BUS. Quyn iu khin h thng BUS thuc v DMAC. - DMAC lm ch h thng BUS (bus d liu, bus iu khin, bus iu khin) - DMAC to ra tn hiu DACK tr li thit b yu cu, pht a ch nh ln BUS a ch, pht ra cc tn hiu iu khin ghi/c thit b vo/ra v cc tn hiu iu khin ghi/c b nh v thc hn iu khin ton b qu trnh chuyn d liu trc tip gia thit b vo/ra v b nh. - Khi mt khi d liu c chuyn xong, DMAC kt thc qu trnh DMA bng vic pht tn hiu HOLD=0 cho CPU v tr quyn iu khin h thng BUS cho CPU. - CPU tip tc lm vic bnh thng Phng php vo ra d liu kiu DMA c dng thc hin truyn d liu gia cc thit b c kh nng truy xut thng tin vi khi lng ln v i hi tc truy xut cao nh thit b a cng, a mm v b nh.

58

Chng 4 Cc thit b vo ra
4.1 Cc thit b giao din v iu khin vo/ra d liu 4.1.1 Ngt v b iu khin ngt PIC 8259 - Mt s khi nim Ngt l s kin CPU b tm dng vic thc hin qu trnh chnh v chuyn sang thc hin qu trnh phc v ngt. Ngt cng l phng php vo/ra d liu, trong thit b vo/ra (thit b vt t: bn phm, my in, ng h nhp thi gian,v.v...) ch ng khi ng qu trnh vo/ra. Qu trnh phc v ngt cng c kch hot bng mt tn hiu vt l t bn ngoi.

Thut ng "ngt" xut pht t k thut ngt cng. Khi ni n ngt cng, ngt mm hoc ngt logic (ngoi l) l hm ni n cc chng trnh con phc v hot ng ca h thng my tnh v ni n cch kch hot cc chng trnh con ny. Tt c cc chng trnh phc v ngt u c chung c im: th nht l hu ht c vit sn (l cc chng trnh ca h iu hnh) v c php s dng: th hai l a ch ca cc chng trnh con ny phi c t mt vng xc nh l bng vect ngt, nm trong b nh chnh. Cc chng trnh con phc v ngt cng thng c dng iu khin qu trnh vo/ra vi cc thit b vo-ra chun b mc vt l. Cc chng trnh con phc v ngt cng c kch hot bi cc tn hiu vt l IRQ n thit b vo-ra. Cc chng trnh con phc v ngt mm l cc chng trnh h thng thc hin cc thao tc vo-ra c bn mc logic v cc hot ng bi ca h thng. Cc chng trnh con phc v ngt mm c kch hot bi lnh INT trong h lnh ca CPU. Cc chng trnh con phc v ngt logic cng phc v cho hot ng ca h thng, nhng chng ch c kch hot khi CPU thc hin lnh v pht sinh mt ngoi l no . - Bng vect ngt Bng vect ngt l bng cha a ch ca cc chng trnh phc v ngt. Bng ny c 256 , cc c nh s th t ln lt t 00h, 01h, ..., 08h, ... 0Fh, 10h, ... FFh. S th t 59

ca tng trong bng c gi l s ngt. Mi cha a ch logic ca mt chng trnh phc v ngt xc nh, cc a ch ny cn c gi l vect ngt. Cu trc bng vect ngt ch thc:

- H thng ngt cng CPU c thit k p ng c vi cc qu trnh ngt cng. CPU c mt u vo nhn tn hiu ngt INT, khi nhn c tn hiu ny CPU s phn ng theo c ch ngt cng. Trong thc t c nhiu thit b ngoi vi yu cu c phc v theo phng php ngt cng (bn phm, ng h h thng, my in, v.v..) v sinh ra nhiu yu cu ngt, do vy cn c mt b iu khin gip CPU qun l v phc v cc yu cu ngt, l b iu khin ngt PIC (Programmeble Interrupt Controller). Cu trc ca h thng ngt cng nh sau:

H thng ngt cng c xy dng trn c s 2 b iu khin ngt PIC 8259, mi PIC 8259 c th nhn 8 tn hiu yu cu ngt IRQ t thit b vo/ra. Hai PIC ny c kt ni vi nhau theo kiu ghp tng (ch/th tc l tn hiu u ra INT ca PIC th c ni vi yu cu ngt IRQ2 ca PIC ch), kt hp hot ng c th phc v c 16 yu cu ngt IRQ. 60

Chc nng c bn ca PIC 8259, PIC 8259 l mt vi mch in t kh trnh c thit k gip CPU thc hin qu trnh ngt cng, PIC 8259 thc hin cc chc nng sau: + Ghi nhn c 8 yu cu ngt IRQi. S ngt ny i din cho a ch ca chng trnh con phc v thit b yu cu ngt IRQi. + Cho php chn v phc v cc yu cu ngt theo mc u tin + Cung cp cho CPU s ngt tng ng vi yu cu ngt IRQi. S ngt ny i din cho a ch ca chng trnh con phc v thit b yu cu ngt IRQi. + Cho php hoc khng cho php cc yu cu IRQi kch hot h thng ngt. Thit b iu khin ngt PIC 8259 v c ch hot ng ca h thng ngt cng: Cu trc bn ngoi ca PIC 8259 (hnh di):

ngha cc chn tn hiu ca PIC 8259 nh sau: + IRQ0IRQ7: Cc yu cu ngt t thit b ngoi vi + -WR/RD: Tn hiu ghi/c + A0: Tn hiu xc nh a ch cng (v PIC ch c 2 a ch l 20h hoc 21h; PIC th c 2 a ch cng A0h hoc A1h). + INT: tn hiu yu cu i CPU phc v + -INTA: Tn hiu tr li t CPU sn sng phc v theo phng php ngt cng. + CAS0CAS2: Cc tn hiu ni tng (l u ra i vi vi mch ch v l u vo i vi vi mch th). + -SP/-EN (Slave Program, Enable Buffer): Tn hiu lp trnh ch t hoc m m bus d liu. -SP/-EN=0: PIC lm vic ch th v m thng bus h thng (ch m bus) -SP/-EN=1: PIC lm vic ch ch Cu trc bn trong ca PIC 8259 (hnh di):

61

- Cc khi chc nng: + Thanh ghi yu cu ngt IRR (Interrupt Request Register): l thanh ghi 8 bt. IRR chc (ghi nhn) tt c cc yu cu ngt IRQi i phc v. Nu tn hiu IRQi = "1" th bit IRRi tng ng c t bng "1". + B gii quyt u tin RR (Priority Resolver): l thanh 8 bit. PR xc nh mc u tin ca cc yu cu ngt. Ngt c u tin cao nht c chn v t vo bit tng ng trong ISR trong chu k INTA. + Thanh ghi ngt ang c phc v ISR (In Service Register): l thanh ghi 8 bt. ISR ghi nhn cc ngt ang c phc v. Yu cu ngt IRQi no ang c phc v th bit ISRi tng ng c t bng "1". + Khi logic iukhin: khi logic iu khin a ra tn hiu INT, c ni thng vi chn INT ca CPU. Khi INT c mc cao i CPU phc v ngt. Khi logic iu khin nhn tn hiu INTA t CPU. Khi nhn c tn hiu INTA, PIC 8259 s cung cp s ngt ra BUS d liu cho CPU. + Khi m Bus: l loi 8 bt, 2 hng, 3 trng thi. Cc t iu khin ICW, OCW c a vo PIC 8259 qua khi ny xc lp ch hot ng ca 8259. S ngt v trng thi hot ng ca PIC cng c a ra BUS d liu qua khi ny. + Khi ghp tng PIC 8259 c c cu cho php ni ghp tng cc PIC 8259 vi nhau v phi hp hot ng ca cc PIC ny. Tng th nht c u ra INT ni trc tip vi CPU, gi l PIC 8259 - ch. u vo IRQi ca PIC ch c ni vi u ra INT ca PIC 8259 th hai. PIC ny c gi l PIC 8259 - th. C ch ghp tng cho php xy dng mt h thng ngt cng qun l c n 64 yu cu ngt IRQ. + Khi logic ghi/c v gii m: Xc lp v thc hin gii m cc t iu khin ICW (Initialization Command Word - T iu khin khi ng) v OCW (Operation Command Word - T iu khin hot ng). Qua hai loi t iu khin ny ngi s dng c th lp trnh xc lm ch hot ng cho PIC. + Thanh ghi IMR: l thanh ghi 8 bit, cho php t/xo mt n ngt. 62

+ Bng cc tn hiu CS, A0, RD, WR, v cch ghi/c PIC 8259:

C ch hot ng ca h thng ngt cng: iu kin ban u: PIC 8259 cn c lp trnh khi ng qua cc t iu khin ICW. Sau khi cc t iu khin ICW c np th PIC 8259 sn sng hot ng. - Mt hoc nhiu thit b vo - ra c yu cu c phc v pht tn hiu IRQi = "1" (mc tch cc) cho PIC. PIC ghi nhn cc yu cu ngt IRQi ny bng cch t cc bit IRRi tng ng ln "1". - PIC 8259 chn IRQi c mc u tin cao nht phc v. PIC gi tn hiu INT cho CPU, i CPU phc v. - CPU thc hin cc thao tc sau: + Thc hin nt lnh ca qu trnh hin hnh. + Lu a ch tr v (ni dung ca cc thanh ghi CS, IP) v thanh ghi c FLAGS vo ngn xp. + Gi hai tn hiu tr li ngt INTA cho PIC. - Khi PIC 8259 nhn c tn hiu INTA th 1: bit ISRi ng vi IRQi c mc u tin cao nht c thit lp (ISRi = 1) v bit IRRi tng ng b xo (IRRi=0). Trong chu k INTA th nht ny PIC 8259 khng gi g cho CPU qua BUS d liu. - Khi PIC 8259 nhn c tn hiu INTA th 2: PIC 8259 gi s ngt tng ng vi IRQi ang c phc v qua BUS d liu cho CPU. - CPU nhn s ngt v trn c s s ngt ny vo v tr tng ng trong Bng vct ngt xc nh a ch ca chng trnh phc v ngt. CPU np a ch chng trnh phc v ngt vo cc thanh ghi CS v IP v bt u thc hin chng trnh phc v ngt ny. - Khi thc hin xong chng trnh phc v ngt (khi CPU thc hin lnh IRET) th qu trnh phc v ngt ca CPU cng kt thc. CPU khi phc a ch tr v vo cc thanh ghi CS, IP, khi phc ni dung thanh ghi FLAGS v tip tc thc hin qu trnh va b ngt. H thng ngt cng c th kt thc phc v ngt hin thi theo hai ch : + Kt thc ngt bnh thng EOI (End Of Interrupt): khi PIC c t ch kt thc ngt bnh thng EOI th CPU phi pht lnh bo kt thc ngt EOI (qua t iu khin OCW2) cho PIC trc khi ri khi chng trnh con phc v ngt. Khi bit ISRi ca ngt ang c phc v s c t xung 0. + Kt thc ngt t ng AEOI (Automatic EOI): khi PIC c t ch 63

kt thc ngt t ng AEOI th ti chu k INTA th 2 bit ISRi ca ngt ang c phc v s c t xung 0. Bng cch ni trn h thng ngt cng c th tip tc phc v yu cu ngt ny nhng l tip theo. Lp trnh khi ng PIC 8259 v cc t iu khin khi ng ICW Cn xc lp ch lm vic ca PIC 8259 trc khi s dng. Qu trnh ny c gi l lp trnh khi ng thit b. Vic lp trnh khi ng PIC 8259 c thc hin qua cc t iu khin ICW v theo lu sau:

- ICW1

Cc bit D5 - D7 khng dng cho CPU x86. + IC4 (bit D): Cho bit c cn ICW4? IC4 = 0: khng cn ICW4. IC4 = 1: c ICW4. + SNGL (bit D1): cho bit h thng ngt ch c mt PIC hay c nhiu PIC ghp tng. SNGL = 0 c ghp tng. SNGL = 1 ch c mt PIC 8259 + ADI (bit D2): khng dng cho h CPU x86. + LTIM: xc nh dng tn hiu IRQ. LTIM = 1 IRQ phi l tn hiu mc TTL. LTIM=0 IRQ phi l tn hiu dng sn xung + D4 = 1 + D5 = D6 = D7 = 0 - ICW2 64

ICW2 nh ngha s ngt nn cho 7 s ngt cn li.

Cc bit T7 - T3 l 5 bit cao ca s ngt, 3 bt cn li lin quan n cc u vo IRQi. Nm bit cao T7 - T3 (do ngi s dng tu chn) cng vi 3 bit thp nht bng 0 xc nh s ngt nn. Da trn s ngt nn ng vi IRQ0 ny. PIC 8259 t to ra cc s ngt tip theo tng ng vi cc IRQ1 n IRQ7. V d: h thng ngt cng ca my vi tnh PC, cc s ngt do PIC 8259 ch cung cp nh sau:

ICW3: lin quan n ghp tng Mch phn cng c chn SP/EN xc nh ch/th ch ghp tng: nu SP = 1 th PIC l ch, nu SP = 0 th PIC l th. C hai loi ICW3 - ICW3 cho PIC ch: xc nh u vo IRQi nhn tn hiu INT t PIC th th i.

Nu Si=1 bo c PIC th ni vo chn IRQi ca ch. - ICW3 cho PIC th: Xc nh a ch (ch th nhn dng) ca PIC th

Cc bit ID2, ID1, ID0 xc nh a ch ring ca cc PIC 8259 - th. Khi nhn c tn hiu INTA2, PIC 8259 - th so snh cc tn hiu CAS0 - CAS2 (pht t PIC 8259 - ch) vi ID2 - ID0, nu chng ging nhau th PIC 8259 - th gi s ngt ln BUS d liu cho CPU, ngi li th khng gi. ICW4:

+ bit P: bo co cho PIC 8259 bit phi lm vic vi h vi x l no. P = 1: lm vic vi h x86 P = 0: lm vic vi h 8085 + bit AEOI: xc lp ch kt thc ngt. AEOI = 0: kt thc bnh thng EOI AEOI = 1: kt thc t ng AEOI 65

+ bit BUFF: bo ch c b m BUS BUFF = 1: PIC lm vic ch m bus, lc ny tn hiu SP/EN ch ra v vic nh ngha ch/th c xc nh bng bit M/S. + bit M/S: xc nh ch th M/S = 1: PIC l ch M/S = 0: PIC l th Nu BUFF = 0 th M/S khng c ngha + Bit SFNM: bit ny c t bng 0 ngay khi khi ng h thng. Kiu u tin c nh l mc nh, trong IRQ0 c mc u tin cao nht, IRQ7 c mc u tin thp nht. C th thay i kiu u tin bng t iu khin OCW2. Trong kiu u tin c nh, khi SFNM = 0, khi bit ISRi = 1 tt c cc IRQi c mc u tin thp hn u b cm. Ch c cc IRQi c mc u tin cao hn c php gy ngt chng trnh phc v ngt hin thi. Cc t iu khin hot ng OCW Cc t iu khin OCW c dng xc lp cc ch lm vic c th trong qu trnh hot ng ca PIC 8259. C th gi cc t OCW ny cho PIC3259 vo bt k lc no sau khi khi ng h thng ngt. + OCW1: cho php hoc cm nhn mt yu cu ngt IRQi no bng mt n ngt. Vi PIC ch : a ch thanh ghi cha OCW1 l 21H. Vi PIC th : a ch thanh ghi cha OCW1 l A1H

Mi bit Mi tng ng vi IRQi Khi Mi = 1 mt n ngt c t, cm PIC nhn IRQi (gy ngt) Khi Mi = 0 mt n ngt c xo, cho php PIC nhn IRQi (cho php IRQi gy ngt. H iu hnh t mt n che chn cc IRQ m h thng cha dng n. + OCW2: dng i kiu u tin v bo kt thc ngt EOI. a ch thanh ghi cha OCW2 : 20h (PIC ch), AOh (PIC th) PIC cho php chn mt trong ba ch u tin: u tin c nh IRQo c mc u tin cao nht, IRQ7 c mc u tin thp nht. Trong ch ny IRQ mc cao c quyn ngt chng trnh phc v ngt c mc u tin thp hn. u tin quay vng: IRQi no va c phc v th bit ISRi s b xo xung 0 v t ng c mc u tin thp nht. iu ny thc t to ra cc mc u tin bng nhau. u tin c bit: ngi lp trnh c th thay i mc u tin bng chng trnh. Nu cc bit trong OCW2 R = 1, SL = 1 th cc bt L2-L0 s t IRQn xung mc thp nht v IRQn+1 ln mc cao nht.

66

OCW3: Cho php t/c ISR v cc thanh ghi khc ca PIC 8259

- ESMM = 1 v SMM cho php t/xo ch mt n c bit. Ch mt n c bit ny ch cm mt IRQ v cho php tt c cc IRQ cn li c yu cu ngt. - D4 = 0, D3 = 1 - Bit P : cho php PIC 8259 lm vic vi CPU ch hi p, khng cn qua cc tn hiu INT, INTA. Nu P = 1 th PIC coi tn hiu iu khin c RD nh l tn hiu INTA. - Cc bit RR v RIS: RR = 1 & RIS = 0 : bo s c IRR lnh c tip sau. RR = 1 & RIS = 1 : bo s c IRR lnh c tip sau. - Phn b chc nng cc yu cu ngt v s ngt trong my PC PIC 8259 - ch: PIC 8259 - ch chim hai a ch cng : 20h, 21h

PIC 8259 - th PIC 8259 - th chim hai a ch cng: A0h, A1h

67

4.1.2- Truy nhp trc tip b nh v b iu khin DMAC 8237 - Khi nim c bn Qu trnh chuyn d liu trc tip gia thit b ngoi vi v b nh chnh khng qua CPU c gi l qu trnh DMA (Direct Memory Access). Trong qu trnh DMA, vic chuyn d liu khng c iu khin bng chng trnh m c iu khin bng mt thit b c bit gi l b iu khin DMAC (DMA Controller). Cu trc h thng vo - ra d liu kiu DMA nh sau (hnh sau):

- S khi mch DMAC 8237

68

- DRQ0 - DRQ3 (tn hiu vo): tn hiu yu cu DMA. bn dy DRQ ni vi 4 thit b cn phc v kiu DMA. Khi thit b ngoi vi a tn hiu DRQ ln mc tch cc th qu trnh DMA bt u. DRQ0 c mc u tin cao nht, DRQ3 c mc u tin thp nht. - DACK0-DACK3 (tn hiu ra): tn hiu tr li DMA, DACK c ni vo tng thit b ngoi bo cho thit b ngoi bit l DMAC ang phc v n. - HOLD (tn hiu ra): dng bo co CPU l DMAC i quyn iu khin BUS. - HLDA (tn hiu vo): Tn hiu HLDA c gi t CPU bo cho DMAC bit l quyn iu khin bus thuc v DMAC. - A0-A3 (tn hiu vo/ra): 4 dy a ch thp. Trong chu k ngh c dng xc nh a ch cc thanh ghi trong DMAC khi lp trnh hot ng cho DMAC. Trong chu k tch cc c dng cung cp 4 bit a ch A0-A3 cho BUS a ch. - A4-A7 (tn hiu vo/ra): cung cp 4 bit a ch cao cho bus a ch trong qu trnh DMA. - DB0 - DB7 (tn hiu vo/ra): l BUS 8 bt a nng. Trong chu k ngh: l BUS 8 bit d liu vo truyn d liu xc lp ch lm vic cho DMAC v cng l BUS 8 bit d liu ra trong qu trnh CPU c trng thi DMAC. Trong chu k tch cc (chu k DMA): truyn hai loi thng tin trong hai thi khong: + Thi khong u: vi s c mt ca tn hiu ADSTB th DB0-DB7 l BUS 8 bit a ch cao nht (A15-A8), 8 bit a ch ny cn c cht li kt hp vi 8 bit a ch thp (A7A0) thnh a ch 16 bit. + Thi khong sau: l BUS 8 bit d liu, dnh cho truyn d liu trong ch DMA. - MR (tn hiu ra): l tn hiu iu khin c b nh trong ch DMA. 69

- MW(tn hiu ra): l tn hiu iu khin ghi b nh trong ch DMA. - ADSTB (tn hiu ra): dng iu khin vic cht (ghi li) 8 bit a ch cao (A8-A15). - AEN : (tn hiu ra) cho php/cm thit b cht a ch hot ng. AEN cng c dng cm cc thit b iu khin BUS khc trong ch DMA. - EOP (tn hiu vo/ra): khi l tn hiu vo, tn hiu EOP buc DMAC kt

thc qu trnh DMA. L tn hiu ra trong ch hot ng, tn hiu EOP do DMAC pht ra bo truyn s byte xc nh bi TC. - IOW (tn hiu vo/ra): trong ch ngh l tn hiu vo, tn hiu ny do CPU cung cp iu khin ghi d liu vo DMAC. Trong chu k tch cc l tn hiu ra. DMAC to tn hiu iu khin ghi thit b ngoi vi. - Cc ch hot ng ca DMAC 8237 DMAC 8237 hot ng trong 2 chu k chnh l: chu k ngh v chu k hot ng. + Chu k ngh: khi khng c knh no yu cu th DMAC i vo chu k ngh. Trong chu k ny DMAC "quan st" cc dy DRQ tng nhp ng h, ng thi lm vic vi CPU. Trong chu k ngh ca DMAC th CPU c th xc lp, thay i hoc kim tra ni dung cc thanh ghi ch lm vic ca DMAC. Khi c tn hiu DRQ tch cc, DMAC gi ra tn hiu HOLD v i vo chu k hot ng. + Chu k hot ng: trong chu k hot ng DMAC 8237 c th hot ng theo mt trong 4 kiu, tu theo lp trnh: - - Kiu truyn n l (single transfer mode): trong kiu truyn ny, DMAC c lp trnh thc hin ch mt ln truyn. Thanh m t TC t ng gim, a ch tng hoc gim cho n khi TC = 0. Trong kiu truyn ny DRQ phi c gi mc tch cc chng no DACK tch cc cn c ghi nhn. Nu DRQ cn gi mc tch cc qu mt ln truyn th HOLD b t xung 0 v DMAC tr quyn iu khin bus cho CPU. -- Kiu truyn khi (block transfer mode): trong kiu truyn khi DMAC bt u thc hin vic truyn c khi d liu khi DRQ tch cc v tip tc truyn cho n khi thanh m TC m xung 0 hoc cho n khi nhn c tn hiu EOP t bn ngoi. Tn hiu DRQ ch cn c gi tch cc cho n khi DACK tr thnh tch cc. -- Kiu truyn theo yu cu (demand transfer mode): trong kiu truyn ny, d liu c truyn cho n khi DRQ khng tch cc hoc TC = 0 hoc nhn c tn hiu EOP. Vic truyn d liu trc tip cho n khi thit b bn ngoi chuyn c ht d liu ca n. Nu thit b chun b d liu chm hn, n t DRQ thnh khng tch cc. Khi thit b chun b xong th n t DRQ ln thnh tch cc v qu trnh DMA li tip tc. - Kiu ghp tng (Cascade mode)

70

Trong kiu ghp tng: dy HOLD ca DMAC tng 2 ni vi dy DRQ ca DMAC tng 1. Dy DACK ca DMAC tng 1 ni vi cc dy HLDA ca DMAC tng 2. Yu cu DRQ ca DMAC tng 2 c truyn qua mch phn nh u tin ca DMAC tng 1. Trong trng hp knh c ni tng, DMAC tng 1 ch thc hin chc nng phn nh u tin v khng a ra cc tn hiu iu khin BUS ca ring n. Cc thanh ghi ca DMAC Mi knh DMA c 4 thanh ghi chc nng. - Thanh ghi a ch nn (16 bit): lu gi a ch nn (a ch u) ca vng nh cn truy cp. - Thanh ghi m nn (16 bt): lu gi con s xc nh lng t d liu gc cn truyn. - Thanh ghi a ch hin thi (16 bit): Thanh ghi ny cha gi tr a ch ca nh ang c truy nhp trong qu trnh DMA. a ch t ng tng hoc gim sau mi ln truyn v gi tr tc thi ny lp tc c np vo y. Thanh ghi ny c ghi/c bi CPU. - Thanh ghi m t hin thi (16 bit): thanh ghi ny gi s ln truyn c thc hin. S m ny gim sau mi ln truyn. Khi gi tr ca thanh ghi m t hin thi gim xung 0 th tn hiu EOP c to ra. Thanh ghi ny c ghi/c bi CPU. Cc thanh ghi iu khin v trng thi: + Thanh ghi lnh (Command Register). Thanh ghi lnh (8 bit) ny c np xc lp ch lm vic cho DMAC: cho php hot ng, kiu u tin, kiu tc truy nhp, dng tn hiu DRQ v DACK.

+ Thanh ghi yu cu (request register) Thanh ghi yu cu (8bit): Cho php DMAC c th tr li DACK cho tng thit b yu cu

71

v t/xa yu cu DRQ. + Thanh ghi kiu lm vic (8bit): Xc lp ch v kiu lm vic cho tng knh DMA, cho php chn: Knh, kiu truyn, thc hin DMA ghi hay c, kiu tng/gim a ch, cm/cho php t khi u li.

+ Thanh ghi mt n: Thanh ghi mt n (8bit): thanh ghi ny cho php t/xa mt n (nhn/khng nhn DRQ) n mc tng knh.

+ Thanh ghi trng thi: Thanh ghi trng thi (8bit) cho bit trng thi DRQ v TC ca tng knh

Lp trnh ch lm vic DMAC 8237: 72

a ch nn ca DMAC 8237#1: 000h a ch nn ca DMAC 8237#2:0C0h + Lp trnh cc thanh ghi iu khin

+ Lp trnh cc thanh ghi a ch v m

Trnh t lp trnh khi ng DMAC + Np byte thp cho thanh ghi a ch nn + Np byte cao cho thanh ghi a ch nn + Np byte thp cho thanh ghi m + Np byte cao cho thanh ghi m + Np thanh ghi lnh, thanh ghi yu cu v thanh ghi kiu lm vic. 73

+ Np thanh ghi a ch trang + Xo mt n knh cn dng + Cho php knh hot ng. - Qu trnh DMA DMAC c xc lp ch lm vic: cc thanh ghi lnh, thanh ghi kiu lm vic, thanh ghi a ch nn v thanh m kch thc khi d liu c np, cho php knh lm vic. - Thit b vo-ra pht tn hiu DRQ cho DMAC. - DMAC pht tn hiu HOLD = 1 cho CPU, i CPU i vo ch DMA. - CPU thc hin nt chu k my. - CPU pht tn hiu HLDA cho DMAC v tch ra khi h thng BUS. Quyn iu khin BUS thuc v DMAC. - DMAC lm ch cc BUS a ch, BUS s liu v BUS iu khin. DMAC to ra tn hiu DACK, pht ra a ch b nh (16 bit), to tn hiu iu khin ghi/c thit b vo/ra, tn hiu iu khin ghi/c b nh v mt byte d liu c truyn trc tip gia b nh v tit b vo-ra. a ch nh tip theo c pht ra v qu trnh trn lp li cho n khi thc hin xong qu tnh DMA theo kiu c lp trnh (TC = 0). - Khi qu trnh DMA kt thc DMAC pht tn hiu HOLD = 0 cho CPU v tr quyn iu khin h thng BUS cho CPU. Qu trnh DMA cng c th c kt thc t bn ngoi bng tn hiu EOP. - CPU nm li quyn iu khin h thng BUS v tip tc lm vic bnh thng. - Mch DMA trong my vi tnh CP/AT

C 8 knh DMA. - a ch cng DMAC 8237 # 1 : 000h - 01Fh a ch nn ca cc thanh ghi DMAC 8237 # 1 l 000h DMAC # 1 c 4 knh: Knh 0 : DRQ0, lm ti b nh Knh 1 : DRQ1, tu chn Knh 2 : DRQ2, dnh cho a mm Knh 3 : DRQ3, tu chn 74

- a ch cng DMAC 8237 #2 : 0C0h - 0DFh a ch nn ca cc thanh ghi DMAC 8237 #2 l: 0C0h DMAC #2 c 4 knh DMA: Knh 0 : DRQ4, ni tng vi DMAC 8237 #1 Knh 1 : DRQ5, tu chn Knh 2 : DRQ6, tu chn Knh 3 : DRQ7, tu chn - Thanh ghi trang v a ch trang DMAC ch to c a ch 16 bt nn ch cho php truy nhp c vng nh 64 Kbyte. thc hin qu trnh DMA vi loi b nh c bus a ch 24 bit my PC ngi ta t chc qun l b nh theo trang. Ngi ta thit k cc thanh ghi trang cha 8 bit cao ca a ch 24 bit, kt hp vi mt mch in t (74LS612) to cc a ch vt l 24 bit trong qu trnh DMA. H thng DMA trong my vi tnh PC c 4 thanh ghi trang ng vi 4 knh DMAC.

Cc thanh ghi trang cha a ch u ca cc vng nh, mi mt vng nh c dng lm vng nh m phc v qu trnh DMA.

4.1.3 Vo-ra ni tip v thit b giao din vo-ra ni tip UART 8250/16450 Cc my tnh tng thch IBM u c trang b 2 cng ni tip (COM1, COM2) v cc cng ny c thit kt hot ng theo tiu chun RS232. Vo/ra ni tip l phng php kt ni v truyn d liu gia my tnh v thit b ngoi vi trong m cha thng tin c truyn theo tng bt, bt n sau bt kia (truyn tin ni tip). #Truyn tin ni tip c 2 dng: + Truyn ng b: Ngoi tn hiu s phi thm vo tn hiu nhp ng h lm chun. u im ca phng php ny l tn s truyn c gi tr bt k v tc truyn ch ph thuc vo di tn m cp dn v b iu khin cho php. + Truyn khng ng b: Truyn vi tc xc nh. Thit b nhn v thit b pht u phi lm vic trong cng 1 tn s. D liu c ng b tng byte trong 1 khung d liu nm gia bit khi u (start bit, 1) v bit kt thc (stop bit,0). Tc truyn c tnh theo baund: S baund l s ln thay i tn hiu trong 1 giy. i vi 75

giao din song song n gin th s baund bng s bit c truyn i trong 1 giy. Qu trnh thu pht thng tin ni tip qua cng COM do vi mch thu pht khng ng b vn nng UART (Universal Asychronous Receiver and Transmitter) m nhim. Vi mch ny c thit k hot ng tun theo tiu chun RS232 dng : + Bin i cc d liu song song trong my tnh thnh dng bit ni tip ra cng COM. + Bin i cc bit d liu ni tip t cng COM thnh cc t d liu song song trong my tnh. - Chun truyn tin RS-232 Chun truyn tin RS-232 quy nh v phng php kt ni v giao din gia DTE v DCE (h.55). DTE (Data Terminal Equipment) thit b u cui d liu: l thit b pht hoc nhn d liu DCE (Data Circuit - terminating Equipment) : thit b truyn d liu.

Chun RS232 quy nh v: - Kt ni vt l: loi u ni, s lng, v tr v chc nng truyn thng tin ca mi chn trong u ni. - Mc in p tn hiu. - Tc truyn + Kt ni vt l: s dng hai loi u ni 9 chn hoc 25 chn: DB9 v DB25. Kt ni DTE & DCE qua u ni DB25 (hnh di):

Kt ni DTE & DCE qua u ni DB9 (hnh di):

76

ngha ca cc tn hiu, nhn t pha DTE - Cc tn hiu mang d liu TxD: tn hiu d liu pht RxD: tn hiu d liu nhn - Cc tn hiu bt tay (khi cc tn hiu c mc tch cc). T DTE (t cng COM my vi tnh) DTR : DTE bo sn sng lm vic RTS : DTE bo c d liu mun gi n DTE (vo my tnh) DSR : DCE bo sn sng lm vic CTS : DCE sn sng nhn d liu gi i CD : DCE bo pht hin c sng mang ca pha bn kia RI : DCE bo nhn c tn hiu rung chung + Mc tn hiu: +/- 25V "0" : +3V n +25V "1" : -3V n -25V + Kch thc cp ni khng qu 20m. + Tc truyn: hai bn pht v nhn phi c tc bng nhau: t 50 bit/s n 20000bit/s. Phng php truyn DTE truyn d liu khng ng b v pha nhng ng b trn tng byte d liu bng bt

"START". D liu khi c truyn c khun dng sau: Khun dng d liu gia bn pht v bn nhn phi c chn ging nhau.

77

Cu trc b tr chn thc t ca DB9 v DB 25 nh sau:

Cng COM c hai dng: u ni DB25 (25 chn) v u ni DB9 (9 chn). ngha ca cc chn c m t nh sau:

- Thit b giao din vo/ra ni tip UART 8250/16450 Thit b giao din vo/ra ni tip UART 8250/16450 thc hin hai chc nng chnh. + Chuyn 1 byte d liu (nhn t CPU) dng 8 bits song song thnh dng ni tip, to khung d liu dng ni tip v pht i tun t tng bit cho n ht byte d liu. + Nhn 1 khung d liu dng ni tip, loi b cc bt to khung (bit START, PARITY, STOP), chuyn thnh dng d liu song song. + To v nhn cc tn hiu bt tay theo chun RS232. S khi cng vo-ra ni tip trong my vi tnh PC (hnh di).

78

Ti sao li cn B iu hp EIA? V: Mc tn hiu theo chun RS 232 l: + Logic 0: +3V -> +25V + Logic 1: -3V ->-25V Mi tn hiu gia -3V->+3V u khng c ngha. V tn hiu bn trong my tnh ch c in th t 0V->5V (TTL) hay thp hn nn tn hiu t my tnh ra giao din RS 232 v ngc li phi qua b chuyn mc tn hiu. Vi mch MAX 232 (B iu hp EIA) l mt b chuyn mc tn hiu hay c dng nht. Vi mch ny ch cn ngun nui 5V. B bm in tch bn trong vi mch c kh nng to tn hiu +10V v -10V t 5V. Vi mch ny c 2 b chuyn mc tn hiu cho mi chiu. + CS (CS0,CS1,-CS2): Tn hiu chn UART ni vi bus iu khin ca my tnh. + A2 A0: 3 tn hiu chn a ch hoc thanh ghi, xc nh thanh ghi no CPU ang thm nhp cho c hoc vit. + -RD: Tn hiu c d liu t UART + -WD: tn hiu ghi d liu vo UART + D7-D0: Ni vi bus d liu ca my tnh + INT: Tn hiu yu cu ngt ( a yu cu ngt v b vi x l) + OUT: OUT1: Cho ngi s dng OUT2: Dng lm tn hiu cho php ngt chnh qua cng logic - UART8250 c 10 thanh ghi iu khin v trng thi. Cc thanh ghi c a ch lin tip nhau v c th c thm nhp bng 3 bit a ch. a ch c s ca UART v cng l ca cc thanh ghi c lu tr vng s liu ca BIOS. Thng tm cc a ch c s v ngt IRQ nh sau: Cng COM1 COM2 a ch c s 3F8H 2F8H Yu cu ngt IRQ4 IRQ3

- Ni dung cc thanh ghi trong UART nh sau: a ch nn ca hai thit b giao din vo-ra ni tip: Thit b UART#1 (COM1) : 3F8h Thit b UART#2 (COM2) : 2F8h Thanh ghi d liu pht THR THR l ni cha d liu (hoc k t) cn pht i 79

a ch: a ch nn +0, ghi, DLAB = 0 D7 Bit D0 l bit thp nht, c pht hin u tin Thanh ghi d liu nhn RBR: RBR l ni cha d liu (hoc k t) nhn c. a ch: a ch nn +0, c, DLAB = 0 D7 DLAB l bit D7 ca thanh ghi LCR # DLAB: bit thm nhp cht b chia Thanh ghi iu khin ng truyn LCR Thanh ghi LCR xc nh khun dng d liu pht/ nhn v cho php truy nhp vo cc thanh ghi THR, RBR, IER hoc BRG. a ch: a ch nn +3, ghi D7 D1 v D0: Xc nh kch thc d liu truyn D0 D0 D0

D2- xc nh s lng bit stop c to v kim tra D2 = 0 1 Bit Stop D2 = 1 2 Bit Stop D3- cho php to hoc kim tra pariy D3 = 0 khng cho php D3 = 0 cho php D4 - chn kiu parity D4 = 0 s lng l bt "1" c bo hoc kim tra D4 = 1 s lng chn bit "1" c bo hoc kim tra D5 - chn mc tch cc ca bit parity: Nu D5 = 1 v D4 = 1 th mc tch cc ca bit parity l 0 (Parity chn) Nu D5 = 1 v D4 = 0 th mc tch cc ca bit parity l 1 (Parity l) D6 - t iu khin ngh (BREAK) Khi D6 = 1 th SOUT = 0, ch D6 = 0! (thng t) D7-DLAB bit: cho php truy nhp cc thanh ghi THR, RBR, IER hoc BRG D7 = 1 cho php truy nhp cp thanh ghi tc truyn BRG. 80

D7 = 0 cho php truy nhp cc thanh ghi THR, RBR v IER. Thanh ghi xc lp tc truyn 16 bt BRG: BRG gm 2 thanh ghi byte cao v byte thp, xc nh h s chia ca tc truyn. Byte thp: a ch: a ch nn +0, ghi, DLAB = 1 D7 Byte cao: a ch: a ch nn +1, ghi,DLAB=1 D7 Ni dung thanh ghi BRG: D0 D0

Thanh ghi iu khin giao din vi Modem MCR MCR iu khin giao din vi Modem v cho php ngt yu cu ngt IRQ. a ch: a ch nn + 4, ghi D7 D0 D0 - DTR bit: D0 = 1 t DTR tch cc. D0 = 0 t DTR khng tch cc. D1 - RTS bit: D1 = 1 t RTS tch cc. D1 = 0 t RTS khng tch cc. D2 - OUT1 bit: nh hung n u ra OUT1. D3 - OUT2 bit: nh hung n u ra OUT2. D3 = 1 t OUT2 = 0, cho php UART pht tn hiu IRQ. D3 = 0 khng cho php UART pht tn hiu IRQ. D4: cho php vo ch t kim tra UART 8250 bng cch ni tt b cc u TxD& RxD: 81

DTR; RTS & CTS... D5 = D6 = D7 = 0 Thanh ghi trng thi ng truyn LSR: LSR cung cp thng tin v trng thi ng truyn tin. a ch: a ch nn +5, c D7 D0 - RBR bit: D0 = 1 bo UART nhn c 1 byte d liu v t vo thanh ghi RBR. (bo RBR y). D1 - li : D1=1 bo RBR c d liu nhn nhng cha c CPU c v b 1 byte mi nhn tip theo ln. D2 - Li Parity D2 = 1 bo li c Parity (li truyn tin). D3 - Li khun dng D3 = 1 bo khun dng d liu b nhn sai. D4 - Li Break D4 = 1 bo u nhn d liu c trng thi logic 0 di hn thi gian truyn 1 byte d liu. D5 - THR bit: D5 = 1 bo UART sn sng nhn 1 byte d liu mi t CPU pht i (thanh ghi THR rng). D6 - TSR bit: D6 = 1 thanh bo ghi TSR rng. D7 - khng dng. Thanh ghi trng thi Modem MSR: MSR cung cp thng tin v trng thi cc tn hiu bt tay t Modem. a ch: a ch nn +6, c D7 D0 - D3: bo c s thay i trng thi ca tn hiu bt tay t modem. D4 - CTS bit: D4 = 1 bo hiu CTS c mc tch cc. D5 - DSR bit: D5 = 1 bo hiu DSR c mc tch cc. D6 - RI bit: D6 = 1 bo hiu RI c mc tch cc. D7 CD - bit: D7 = 1 bo hiu CD c mc tch cc. Thanh ghi chn ngun ngt IER: IER cho php chn cc ngun ngt. 82 D0 D0

a ch: a ch nn +1, ghi, DLAB = 0 D7 D0 D0 - lin quan n bo ngt ca thanh ghi d liu nhn RBR. D0 = 1 cho php UART bo ngt khi n nhn c d liu (khi RBR y) D0 = 0 khng cho php bo ngt. D1 - lin quan n bo ngt ca thanh ghi pht THR. D1 = 1 cho php UART bo ngt khi n sn sng nhn 1 byte d liu mi t CPU pht i (khi THR rng). D1 = 0 khng cho php. D2- lin quan n bo ngt ca thanh ghi LSR. D2 = 1 cho php UART bo ngt khi c thay i thng tin v trng thi truyn tin trong LSR. D2 = 0 khng cho php. D3 - lin quan n bo ngt ca thanh ghi MSR D3 = 1 cho php UART bo ngt khi c thay i thng tin v trng thi Modem trong MSR. D3 = 0 khng cho php bo ngt. D4 = D7 = 0 Thanh ghi nhn dng ngun ngt IIR: Thanh ghi IIR cho php nhn dng ngun gy ngt v kim tra trng thi bo ngt. a ch: a ch nn +2, c D7 D3 D7 = 0 D0 - trng thi bo ngt. D0 = 0 cn ngun bo ngt D0 = 1 ht bo ngt. D1, D2: t hp gi tr hai bit ny ch th ngun ang bo ngt D0

4.1.4. Thit b giao din song song Thit b giao din gip kt ni gia CPU v cc thit b ngoi vi. Trong my tnh th thit b giao din chnh l cc cng LPT, COM, USB,..c phn thnh 2 loi cng cho php ghp ni vi

83

thit b bn ngoi l cng song song v cng ni tip. Cng song song l cng m cho php truyn s liu ng thi cc bit ca 1 t d liu trong 1 nhp truyn. Nh vy nu t d liu di 8 bit th ngoi dy chung (dy t) ra cng s phi c 8 dy d liu cho 8 bit thng tin. Trong khi cng ni tip ch cho truyn ln lt mi nhp 1 bit trong t d liu v nh vy cng ch cn 1 dy truyn d liu nhng li phi cn t nht l 8 nhp truyn cho 1 t d liu nh v d truyn 8 bit d liu. Thit b giao din song song chun - Thit b giao din song song chun (hnh di) thc hin chc nng giao din gia CPU v cc thit b ngoi vi (trong c my in) theo kiu song song, trong cc bit ca 1 byte d liu c a ra hoc nhn vo CPU trong cng mt nhp thi gian. - Cng song song LPT trong my vi tnh c u ni loi DB 25. N cho php dng cho c pht v nhn s liu. Do c th thit k cc thit b ngoi nh a cng mang xch c, my qut hnh ghp ni vi my tnh qua cng ny. Hin nay thng c 1 cng LPT c t sau my tnh cy PC. - S khi cng cc tn hiu ca giao din song song. Cc thanh ghi u c truy nhp qua 1 a ch cng cng.

Cc tn hiu giao din song song c chia lm 3 nhm chnh: + D liu (8 ng vo) + Trng thi ( 5 ng vo) + iu khin ( 4 ng ra). Nhng tn hiu ny c lit k trong bng di y Chn 1 2-9 10 11 12 13 14 15 16 Tn hiu - Strobe, ra D0-D7 -ACK, vo BUSY, vo PE, vo SELECT-IN, vo -Autofeed, ra -Error, vo -INIT, ra ngha D liu c truyn ra ngoi (my in), tn hiu cht d liu. Bus d liu 8bit, 2 chiu Thit b ngoi nhn 1 byte v sn sng nhn tip Thit b khng ni, thit b c li, b m thit b y Ht giy (my in) Thit b c ni vi my tnh My tin t iu khin xung dng Li thit b Khi ng v ci t thit b

84

17 18-25

SELECT-OUT GND

Chn thit b Ni t

Cc thanh ghi: LPT c 3 loi thanh ghi: d liu, iu khin, trng thi a ch nn: 378h Thanh ghi d liu Thanh ghi d liu cha d liu xut ra hoc d liu nhp vo a ch: a ch nn +0, c/ghi D7 D7-D0: Cc bit ca byte d liu Thanh ghi iu khin Thanh ghi iu khin cha cc bit to tn hiu bt tay vi thit b ngoi vi. Nu thit b ngoi vi l my in th y l cc bit to tn hiu bt tay v iu khin my in. a ch: a ch nn +2,ghi D7 D0 - D0: STROBE bit D0 = 1 to tn hiu STROBE vi mc tch cc (thp). Tn hiu ny c dng cht d liu vo thit b ngoi vi hoc my in. D1 : AUTOFEED-bit D1 : = 1 to tn hiu AUTOFEED tch cc (thp. Vi my in : tn hiu ny iu khin dch mt dng in. D2:INT-bit D2 = 0 to tn hiu xung INIT mc tch cc (thp) vi rng 50 micro giy. Vi my in : tn hiu ny khi ng my in. D3:SELECT-OUT-bit D3=1 to tn hiu SELECT-OUT tch cc (thp). Tn hiu SELECT-OUT c dng "bt tay" vi thit b ngoi vi hoc chn my in. D4:IRQ-bit D4-1 cho php thit b giao din song song chun pht tn hiu yu cu ngt IRQ khi nhn c tn hiu ACK chuyn t mc "1" sang mc "0". D5-D7: khng dng. Thanh ghi trng thi Thanh ghi trng thi cha cc bit thng tin phn nh trng thi ca cc tn hiu vo (trng thi ca thit b ngoi vi hoc ca my in). a ch: a ch nn + 1, c D7 D0 D0-D2: khng dng D3:ERROR-bit D3=0 bo tn hiu ERROR c mc tch cc thp. Vi my in: bo my in ang 85 D0

trong trng thi c li. D4:SELECT-IN-bit D4 =1 bo tn hiu SELECT-IN tch cc (thp). Vi my in: bo my in sn sng lm vic. D5:PE-bit D5 = 1 bo my in gp li ht giy, mc tch cc cao. D6:ACK-bit D6=0 bo tn hiu xung ACK c mc tch cc thp. Vi my in: tn hiu xung ACK tch cc bo my in sn sng nhn mt k t mi. D7: BUSY-bit D7=0 bo tn hiu BUSY c mc tch cc cao. Vi my in: bo my in ang bn, khng th nhn d liu. D7= "1" bo my in khng bn. - Kt ni v truyn d liu trc tip gia hai my tnh qua cng song song C th thc hin kt ni trc tip v truyn d liu gia hai my tnh qua cng song song chun theo cch sau:

4.2. Cc thit b ngoi vi 4.2.1. Bn phm - Cu to v nguyn tc hot ng - Bn phm l thit b ngoi vi cho php a thng tin vo my tnh di dng m k t. Bn phm thc hin cc chc nng chuyn thng tin dng lc nhn phm v v tr ca phm c nhn thnh m phm v chuyn cho my tnh. Bn phm gm hai b phn chnh l ma trn phm v mch in t qut phm. + Ma trn phm l t hp cc phm nhn c sp xp theo cc hng v ct. Phm nhn c cu trc c in nh sau:

86

Bnh thng phm lun trng thi nh, khi phm nh th hai tip im khng c ni vi nhau, u ra c mc in p dng tng ng vi mc logic 1. Khi phm c nhn th hai tip im c ni vi nhau qua cng tc phm v u ra c mc in p bng 0V tng ng mc logic 0. + Mch in t qut l mt vi x l ca bn phm: Nu 1 phm c nhn cng tc s ng mch tip xc in gia cc dy hng v ct. Khi ny b vi x l (8048) ca bn phm s xc nh phm no c nhn da vo thng tin ta ca phm nhn Mt m cc bit gi l m qut (m phm) c chuyn v vi x l. - Ta s xem xt cu trc ca ma trn 16 phm cng vi phng php to m qut (hnh di) hiu r hn v bn phm.

+ B m nh phn: Nhn tn hiu xung nhp ph hp vi tc nhn phm v tn hiu ra ca b m c a vo u vo mch gii m + Mch gii m: Thc hin chc nng gii m cc tn hiu vo tng ng thnh tn hiu ra ni vi cc dy ct ca bn phm sao cho ln lt cc dy ct s c mc logic l 0 (tn hiu qut bn phm). + Ma trn phm gm cc dy hng v cc dy ct giao nhau nhng khng tip xc vi nhau. Cc cng tc phm c t ch giao ca hng v ct. Hai tip im ca cng tc nm trn hng v ct ti ch giao nhau . Mi khi phm c nhn th hai dy hng v ct c ni vi nhau qua hai tip im v cng tc ti ch giao nhau. + Nguyn tc qut phm v to m nh sau: u ra X0X1 ca b m nh phn 2 bit ln lt cho ra cc m 00, 01, 87

10,11, ..., m ny c a vo b gii m hai u vo 4 u. u ra C3C2C1C0 ca b gii m s ln lt xut hin cc gi tr 1110, 1101, 1011, 0111, ... Cc dy ct Ci ca ma trn phm ln lt c mc logic 0, thao tc ny c gi l thao tc "qut" bn phm. Khi khng phm no uc nhn th tt c cc dy hng H3H2H1H0 u c mc logic 1. Khi c mt phm no c nhn th hai dy hng v ct c ni vi nhau ti ch phm ang nhn, mt m tng ng phm ang nhn c to ra u ra X1X0H3H2H1H0. V d: Nu phm 6 c nhn, ti thi im dy ct cha phm 6 (dy C2) c mc logic 0 th dy hng cha phm 6 (dy H2), do cng tc 6 ng, cng c mc logic 0. M u ra X1X0H3H2H1H0 = 101011. Nu phm A c nhn, ti thi im dy ct cha phm A (dy C2) c mc logic 0 th dy hng cha phm A (dy H1), do cng tc A ng, cng c mc logic 0. M u ra X1X0H3H2H1H0 = 101101. Nu phm 7 c nhn, ti thi im dy ct cha phm 7 (dy C3) c mc logic 0 th dy hng cha phm s 7 (dy H2), do cng tc 7 ng, cng c mc logic 0. M u ra X1X0H3H2H1H0 = 111011, v.v... - H thng bn phm ca my tnh H thng bn phm ca my tnh gm hai phn bn phm v thit b giao din bn phm, c kt ni v trao i thng tin theo kiu ch th.

Bn phm l t hp ca ma trn 8x13 phm v mch iu khin 8048. Mch 8048 l mt h vi x l nh c tch hp trn mt n nhp. Mch 8048 bao gm CPU, b nh ROM cha chng trnh iu khin qut v to m phm. RAM cha d liu ca chng trnh iu khin, hai cng vo/ra P1 v P2, mt cng d liu 8 bit. Mch 8048 tun t a m nh phn 3 bit ra ti cng P2, qua b gii m Vo 3 Ra 8 to ra tn hiu qut bn phm. Ti thi im m 3 bt c a ra, mch 8048 thc hin c tn hiu 13 bit t ma trn phm vo cng P1, t y to ra m phm (m qut) ca phm uc nhn. Khi phm c nh mt m 88

phm (m qut) cng c to ra bng cch cng m phm nhn vi 80h. Mch 8048, c nui bng ngun t my tnh, thc hin trao i thng tin vi thit b giao din bn phm KC8042 theo kiu ni tip ng b. KC 8042 c cu trc tng t mch 8048. KC 8042 ng vai tr "ch", 8048 ng vai tr "th" trong cc qu trnh truyn tin thng qua hai dy tn hiu: dy "DATA" v dy "CLOCK". Dy "DATA" truyn tn hiu d liu ni tip gia 8048 v KC 8042. Tn hiu ni tip bao gm: bit START, 8 bit d liu, 1 bit PARITY, 1 bit STOP. Quy trnh trao i thng tin gia 8048 v KC 8042 c ng b bi tn hiu trn dy "CLOCK". Qu trnh truyn d liu c thc hin nh sau: Mch 8048 lun phi kim tra trng thi truyn tin qua hai dy "DATA" v "CLOCK" trc khi pht i m phm. Khi KC 8042 t "DATA" = 0 v "CLOCK" = 1 th 8048 phi nhn cc ch lnh t KC 8042. Khi KC 8042 t "DATA" = 1 v (CLOCK" = 1 th 8048 c quyn truyn m phm cho my tnh. Qu trnh truyn d liu c ng b bng dy xung ng b do 8048 pht ra trn y CLOCK. Khi KC 8042 nhn c m phm dng ni tip, n loi b cc bit to khung d liu truyn, chuyn m phm vo thanh ghi tm v pht ra yu cu ngt IRQ1 cho h thng ngt cng. H thng ngt cng s kch hot chng trnh phc v bn phm 09h (chng trnh phc v ngt 09h) nm BIOS. Chng trnh phc v bn phm 09h c chc nng dch m phm thnh m hai byte v cha vo vng m bn phm. Chng trnh phc v bn phm 09h trc ht kim tra (m) cc phm trt (Shift, Alt, Ctrl) v cc phm c bit (ScrollLock, NumLock, CapsLock, Insert) trc khi dch m phm sang m hai byte. M hai byte c chng trnh phc v bn phm 09h to ra c cu trc tu thuc m phm hoc t hp m phm nhn c. Nu nhn c m ca phm k t th byte thp ca m hai byte cha m ASCII ca k t tng ng, byte cao cha m phm (m qut phm). Khi chng trnh phc v bn phm 09h nhn c m cc phim khng phi l k t th byte thp ca m hai byte c gi tr 0, byte cao cha m phm m rng. Vng m bn phm c kch thc 32 byte nm trn b nh chnh ti a ch 0000h : 041Eh. Trng thi ca cc phm trt v cc phm c bit c cha hai nh 0000h : 0417h v 0000h : 0418h. C th truy nhp vng m bn phm c thng tin v bn phm nh chng trnh phc v ngt 16h ca BIOS. Chng trnh phc v bn phm 09h cng x l cc trng hp c bit nh: - Khi phm c nhn qu lu (v d qu 0,5 giy) v KC 8042 khng nhn c m phm nh, n s gi ra cho n v x l trung tm m ca phm c nhn. - Khi nhn c t hp cc phm Ctrl+Alt+Del n s khi ng li my tnh hoc kt thc mt nhim v. - Khi nhn c m phm PrintSereen n s kch hot ngt 05h ca BIOS. - Khi nhn c m phm Ctrl+Break n s kch hot ngt 1Bh ca BIOS. # Vng m bn phm c kch thc 32byte nm trn b nh chnh ti a ch 000h:041EH. 89

Trng thi ca cc phm c bit c cha 2 nh 0000h:0417h v 0000:0418h. C th truy nhp vng m bn phm c thng tin v bn phm nh chng trnh phc v ngt 16h ca BIOS. Vng m (b m) bn phm: Lu tr tm thi cc k t. B m c th lu tr tm thi n 16 k t. 4.2.2 Mn hnh Vi cng ngh ch to mn hnh hin nay th c rt nhiu loi mn hnh : + Mn hnh CRT + Mn hnh tinh th lng LCD + Mn hnh cm ng Chng ta s i tm hiu v mn hnh CRT - Mn hnh ng tia m cc CRT (Cathode Ray Tube) Mn hnh ng tia m cc CRT l thit b hin th thng dng nht hin nay. Mn hnh CRT c cu to nh sau:

Mn hnh CRT l mt ng thu tinh chn khng vi cc b phn: cathode pht x in t, ng phng tia in t, cun li tia v mn hin th. Cathode bng kim loi c ni vi in p m, c t nng v to ra cc in t t do. Mn hin th c ph mt lp cht liu pht quang v dn in, c ni vi in p dng v ng vai tr mt anode. Di tc dng ca in trng cng cao trong ng phng, in t ri khi cathode, c hi t thnh chm tia hng v pha mn hin th. Cun li tia c tc dng li chm tia in t dch chuyn theo hai chiu dc v ngang mn hnh. Khi chm tia in t p vo mn hin th s to nn mt im pht sng. Cng im sng ph thuc vo cng chm tia v cht liu pht sng. Khi chm tia mt i hoc chuyn hng th im vn cn lu sng mt khong thi gian ngn sau , thi gian lu sng ph thuc vo cht liu pht sng v cng chm tia. nh trn mn hnh CRT c to t cc im nh. im nh c to ra khi cng chm tia in t c tng ln, im nh khng xut hin khi chm tia b tt i. Cc im nh c to theo tng dng, t trn xung di. Mt nh hon chnh c to ra trn mn hin th bi cc dng cha cc im nh. Cc im nh ch tn ti trong mt thi gian rt ngn. c th quan st c nh cn lm ti cc im nh theo mt chu k xc nh. Cc im nh c lm ti theo tng dng, bt u t dng th nht. Cc dng c lm ti tun t t trn xung di. Khi dng cui cng c qut xong, qu trnh lm ti c bt u li 90

t dng u tin.

- Hin th ch vn bn Cc thit b hin th c s dng my vi tnh PC u l loi nh x b nh. B nh ny c c n v x l trung tm v thit b iu khin mn hnh cng truy nhp v c gi l b nh hin th. Thng tin cn hin th c a ra b nh hin th, thit b iu khin mn hnh CRTC lin tc c li b nh ny a ra mn hnh. Hnh di minh ha nguyn tc nh x t b nh hin th ra mn hnh t ch vn bn:

Mi mt k t trn mn hnh l mt nh x ca mt nh hai byte trong b nh hin th. Byte u cha m ASCII ca k t, byte th hai cha thuc tnh (mu nn, mu ch, c/khng nhp nhy) ca k t. V tr ca m k t trong b nh xc nh v tr k t trn mn hnh. M k t u tin trong b nh hin th (v d : m 41H) c nh x thnh k t (k t A) ln gc tri trn ca mn hin th, m k t tip theo c nh x thnh k t tip theo v.v. Phng php nh x b nh cho php chng trnh my tnh c th d dng thay i n dung mn hin th bng cch thay i ni dung ca b nh hin th. Mi k t c hin th trn mn hnh di dng mt ma trn 8x8 im nh sng/ti nh trn hnh v

91

Phng php hin th nh x b nh khng hon ton ph hp vi vic hin th cc i tng c hnh dng khng bnh thng v chuyn ng nhanh, p ng thi gian thc b chm v cn phi thao tc nhiu im nh dch chuyn i tng. - B iu khin mn hnh CRTC Thit b giao din mn hnh (b iu khin mn hnh) CRTC thc hin vic chuyn m k t trong b nh hin th thnh k t hin trn mn hnh. ch vn bn cc mu k t ch c hin th cc v tr hng v ct c nh (25 hng x 80 ct). S nguyn l ca thit b giao din mn hnh ch vn bn nh sau (hnh di):

Mi k t trn mn hnh cha nhiu hng im nh. CRTC c nhim v chuyn i m ASCII trong b nh hin th thnh chui cc mu im nh, a mi mu ln mt dng mn hnh. iu ny c thc hin nh b ROM to k t. V d hp mu k t A c dng sau :

92

Nu cn hin th 256 k t ASCII cn mt ROM 2Kbyte, cha 256 hp mu k t, mi hp mu chim 8 nh lin nhau. Cc hp mu k t trong b ROM to k t c nh v bng a ch 11 bit, trong 8 bit a ch cao xc nh v tr ca hp trong ROM, 3 bit a ch thp xc nh v tr ca tng byte mu im nh trong hp . Cc mu k t c t trong ROM theo trt t ca bng m ASCII. Nguyn l hot ng ca thit b mn hnh trong ch vn bn nh sau : gi s cn hin th hai k t A v B ti cc v tr 0 - ct 0 v hng 0 - ct 1 trn mn hnh. M ASCII ca hai k t c t ti hai v tr tng ng trong b nh hin th (xem hnh v mc hin th ch vn bn). CRTC gi a ch hng v ct mn hnh cho b nh hin th (hng = 0, ct = 0). B nh hin th gi m ASCII ca k t mang thng tin v a ch ca hp mu k t trong ROM ca k t (k t A) cho ROM, m ASCII ca k t mang thng tin v a ch ca hp mu k t trong ROM (8bit a ch cao). Ti cng thi im ny CRTC gi a ch ca dng mu im nh (dng mu im 0) cho ROM (3 bit a ch thp). Hai a ch ny c kt hp to thnh a ch (11 bit) cho php truy nhp vo dng mu im nh u tin ca k t (k t A) trong ROM v xut n ra thanh ghi dch nh. T thanh ghi dch nh, tng bit mu nh tun t c a ra mn hnh. Khi tt c cc bit mu nh t thanh ghi dch c y ra mn hnh, CRTC tip tc gi a ch hng - ct (hng =0, ct = 1) cho b nh hin th v gi a ch dng mu im nh (dng mu im 0) cho ROM, b nh hin th gi m ASCII ca k t (k t B) cho ROM. Dng mu im nh u tin ca k t (k t B) c xut ra thanh ghi dch nh. Tng t nh th cc dng mu im u tin ca tt c cc k t trn cng mt hng mn hnh c hin th, cho n k t cui cng trn hng. CRTC tip tc gi a ch hng - ct (hng = 0, ct = 0) n b nh hin th, nhng a ch dng mu im nh by gi l 1 (dng mu im 1) cho ROM. B nh hin th gi m ASCII ca k t A cho ROM, ROM xut ra dng mu im nh 1 ca k t A. Dng 1 ca k t B xut ra theo cch tng t. Cc dng im nh tip theo ca k t ln lt c hin th ln mn hnh cho n khi tt c cc dng im nh ca hng vn bn u tin (hng 0) c hin th ln mn hnh. Cc hng vn bn tip theo cng c hin th theo phng php ni trn. Trn thc t hot ng ca CRTC phc tp hn. CRTC phi c kh nng hin th ch ho. CRTC phi theo di thng tin v thuc tnh v k t hin th, phi to ra im nhy. CRTC cng phi to ra hai tn hiu ng b nh ngang - dc v lm ti mn hnh. Tn s lm ti ti thiu l 50 Hz. Phng php hin th trn khng hon ton ph hp vi vic hin th cc i tng c hnh dng khng bnh thng v chuyn ng nhanh, p ng thi gian thc b chm v cn phi thao tc nhiu im nh dch chuyn i tng. 4.2.3 a t 4.2.3.1 Nguyn l lu tr thng tin trn a t Cc thit b lu tr thng tin nh a mm v cng u thc hin ghi/c thng

93

tin trn c s hin tng cm ng in t. Khi c mt dng in chy qua dy dn th xut hin t trng quanh dy dn ny. Khi chiu dng in trong dy thay i th cc ca t trng cng thay i theo. Hin tng in t c tnh hai chiu, khi dy dn nm trong mt t trng bin thin s c dng in cm ng xut hin trong dy dn ny. T trng sinh ra bi dy dn c dng in chy qua c th tc ng mt lc t ln cc cht t tnh nm trong t trng ny. Thit b lu tr kiu a t bao gm hai b phn chnh l u t ghi/c v a t. u t ghi c l mt cun dy c li hnh ch U bng cht liu t. a t, vt lu tr thng tin, l mt a c lm t cht do hoc nhm v c ph mt cht liu t tnh. Khi mi c ch to mi phn t t trn a c mt t trng ring, cc ca cc phn t t c hng ngu nhin, do vy t trng ca chng trit tiu ln nhau v khng quan st c. Trong qu trnh ghi thng tin mt dng in c a vo cun dy, sinh ra mt t trng trong li dy. ng cm ng i qua mt cc ca li ch U, i qua lp ph t tnh trn a, tr li li dy qua cc th hai. Khi t trng i qua mt vng cc phn t t tnh trn a s lm nh hng li cc t ca chng. Tng t trng ca cc phn t t trong mt vng c t ho cng hng lc ny tr nn quan st c (mang ti c thng tin). Khi dng in trong cun dy o chiu th cng sinh ra o chiu phn cc ca cc vng t tnh trn mt a, hin tng ny gi l o t thng. Cc o t thng to nn danh gii giu c vng t ho. Vic to ra cc o t thng c b iu khin a dng m ha vic ghi d liu ln a. Cc phng php m ho c dng l MF, MFM, RLL. Khi c, u t chuyn ng song song vi t trng c to ra trn mt a, v th dng in cm ng ch xut hin trong cun dy khi u t i ngang qua mt on o t thng. Trong thao tc c, nh pht hin c cc o t thng m b iu gii m v khi phc li thng tin ghi. 4.2.3.2 Thit b a mm - a mm c cu trc nh sau:

94

a mm c hai u t ghi/c, mi u t c hai khe ghi/c v xo nm so le vi nhau. Khi ghi d liu th u xo ng thi s xo ht vt nm bn ngoi v to nn mt vt cch li gia cc rnh. u ghi/c c dch chuyn trn b mt a mm bi mt c cu chuyn ng u t. C cu chuyn ng u t s dng ng c bc. Loi ng c ny mi ln dch chuyn ch quay c mt gc nht nh, gi l mt bc. Lng bc c xc nh bi dung lng xung in cp cho ng c. Logic iu khin a c th d dng iu khin ng c dch chuyn u t n cc lng bc xc nh trc. ng c quay c chc nng quay a mm vi mt vn tc nht nh, thng l 300vng/pht. Nh a t c quay lin tc nn khi d liu c phn b u trn rnh v khi c s to nn mt t trng bin thin u c. Logic ghi/c to tn hiu ghi. Nhn v khuch i tn hiu c. Logic iu khin mt mt to giao din gia a v thit b dao din a mm FDC, mt kia to tn hiu iu khin ng c quay, c cu truyn ng u t, nhn cc tn hiu cm bin l ch s v cm bin chng ghi. - Thit b giao din a mm FDC (Floppy Disk Controller) Giao din chun ca cc a mm l giao din SA 400. Thit b giao din a mm c xy dng trn c s vi mch iu khin chuyn dng PD765 ca hng NEC. Thit b giao din a mm FDC thc hin chc nng giao din gia n v x l trung tm v a mm. FDC thc hin vi giao din x l trung tm qua cc tn hiu iu khin chun ca n v x l trung tm v qua mt h 15 lnh. FDC c kh nng lm vic c hai ch DMA v khng DMA. ch khng DMA FDC to ra tn hiu ngt mi khi byte d liu c truyn. ch DMA n v x l trung tm ch cn np lnh cho FDC v ton b vic truyn d liu c thc hin di s iu khin ca FDC v DMAC. FDC thc hin ghi 15 lnh : Ghi d liu, c d liu, c mt rnh, c trng nhn dng trong mt cung, to khun dng mt rnh, xc lp kiu m ho d liu ghi/c, dch chuyn u t v.v. V d, lnh ghi d liu cha cc thng s nh : rnh, mt, cung v di mt cung cha d liu cn ghi. Khi lnh ghi c np cho FDC, FDC bt u c cc trng a ch trn rnh, n khi gp trng a ch ph hp vi a ch yu cu FDC bt u ly tng byte d liu n v x l trung tm v a ra a. Qu trnh thc hin mt lnh tri qua 3 giai on : Giai on np lnh : FDC nhn lnh t B x l trung tm, gii m nhn cc thng tin v cc thao tc cn thit khi nhn lnh ny. Giai on thc hin: FDC thc hin cc thao tc thc thi lnh Giai on kt qu : Sau khi lnh c thc thi, trng thi thc hin lnh c chuyn v cho B x l trung tm. 95

Giai on np lnh cho FDC c thc hin theo lu sau:

Lu thc hin giai on kt qu:

96

4.2.3.3 Thit b a cng v giao din IDE - a cng a cng l mt thit b lu tr kiu t tnh. a cng gm cc l a bng hp kim nhm hoc thu tinh. Mt l a c ph mt lp mng mng oxit kim loi c kh nng t ho. Cc l a cng c gn kt ng tm trn mt trc v c quay bi ng c mt chiu vi tc 3600 vng/pht, mt s a c tc quay ti 5400, 6400 v 7200 vng/pht. Mi a c t 2 n 5 l a, mt s a c ti 11 l a. Mi l c hai mt, cc mt c nh s th t t 0, 1, 2 v.v Mi mt a c mt t ghi/c, cc u t ghi v c d liu trn a theo nhng vng trn ng tm, c gi l rnh ( track). Do cc l a cng c gn cht trn mt trc, do c cu iu khin u t c chnh xc cao, nn mt rnh thc c th ln ti 30000 rnh/inch. Cc u t ghi/c c gn trn mt c cu dch chuyn duy nht, nn chng c dch chuyn ng thi trn cc l a. Mi mt u t nm trn mt cnh tay ca c cu truyn ng v c p st mt a khi a khng quay. Khi a quay vi tc cao th p lc khng kh hnh thnh gia mt a v u t s nng u t ln cch mt a khong 3 10 inch. Cc loi u t kiu ferit c kch thc ln v nng n nn khng thch hp cho vic ghi/c d liu vi mt v tc cao cng. Trong cc cng thng dng u t phim mng TF (Thin Film). u t TF c sn xut theo cng ngh sn xut mch vi in t nn c cht lng cao v rt nh. Do nh v nh m chng c th ni trn b mt l a cao cha ti 3 inch, iu ny to kh nng ghi d liu vi mt cao hn, ng thi li cm nhn tn hiu khi c mnh hn. C cu dch chuyn u t tm kim rnh a cng khc hn so vi a mm. ng c dch chuyn u t khng theo bc m hot ng theo c 97

ch truyn ng c phn hi. Thng tin phn hi nhn c trong qu trnh dch chuyn u t l nh c mt thng tin c bit c ghi sn trn a cng khi sn xut a. Thng tin v v tr rnh c ghi (Nhng) trn tng cung ca a di dng m Gray. C cu truyn ng c dng thng tin nh v nhng gia cc cung c gi l c cu truyn ng nhng ( Embedded Servo). Nh nhn c thng tin phn hi lin tc v v tr rnh trong qu trnh dch chuyn m vic nh v u t c thc hin chnh xc v nhanh chng. - Giao din IDE Giao din IDE (Integrated Drive Electronic - Mch in t tch hp trn thit b) l giao din c dng kt ni thit b a cng vi BUS h thng ca my tnh. IDE l thut ng dng m t vic mch in t iu khin giao din HDC c gn ngay cng vi a HDD trong thit b a cng. Trc y xut hin nhiu loi giao din a cng. Chc nng ca thit b giao din a cng HDC l thc hin truyn d liu t CPU n a v nhn d liu cung cp cho CPU. Tc truyn d liu vi cng l mt thng s quan trng v nh hng ti tc hot ng ca my tnh. Tc truyn d liu ph thuc vo cch giao din gia cng v CPU. Loi thit b a cng c b iu khin giao din thch hp ngay trong thit b c gi l a IDE hoc a ATA IDE (AT attachment IDA). Vic t thit b giao din bao gm cc thit b to cc tn hiu iu khin a v thit b m ho/gii m dng s/tng t, ngay trong a lm cho ATA IDE c tin cy cao hn so vi kiu thit b giao din nm c lp v c ni vi a bng cc (nh thit b a mm). Thng tin dng tng vn d b nhiu lon, c khi ng truyn di. Giao din IDE lm cho ng dn tin hiu ngn nn trnh c nhiu trn ng truyn. Cu hnh tch hp cng lm cho vic m ho d liu t s sang tng t v ngc li c lm trc tip nn tng c tc ng b ca b m ho cng nh mt lu tr d liu. Vic tch hp thit b giao din trn a v thc hin giao din vi h thng BUS ca my tnh theo chun IDE cn cho php cc nh sn xut a c th c lp thit k pht trin thit b a cng c tnh nng ngy cng mnh hn. Phn b tn hiu trn u ni ATA IDE v BUS IDE nh sau :

98

Tn hiu RESET c dng khi ng li a. D liu c truyn qua BUS D0D15. Qu trnh truyn d liu c thc hin theo phng php truy nhp trc tip b nh (Phng php DMA) thng qua cc tn hiu DRQ v DACK. Hng truyn d liu ph thuc tn hiu IOW v IOR. Tn hiu DRV READY bo a sn sng hot ng. Tn hiu DA/SP thi im khi ng my tnh cho bit a th c mt hay khng. Khi a hot ng tn hiu DA/SP c dng bo trng thi hot ng ca a. a IDE c cc thanh ghi, a ch ca cc thanh ghi ny c xc nh bi cc tn hiu A0, A1, A2. Thit b giao din IDE c mt tp cc thanh ghi cho php iu khin v giao din vi a. Thanh ghi d liu : D7 D6 D5 D4 D3 D2 D1 D0

Thanh ghi d liu c dng gi lnh cho thit b giao din, cn cc d liu ghi/c c chuyn theo ch DMA. Thanh ghi iu khin chn iu khin a v u t: 1 0 1 DRV H3 H2 H1 H0 DRV chn a H3-H0: Chn u t Thanh ghi iu khin ph: 99

RST

INT

RST: Khi ng mm INT: cho php bo ngt. INT=1 cm thit b giao din bo ngt. - Ba thanh ghi s cung, a ch cung v a ch rnh cn ghi/c: Thanh ghi trng thi: BSY RDY WFT SK DTRQ COR IDX ERR

+ BSY: a bn + a sn sng WFT: Li ghi SK: Trng thi dch chuyn u t

DTRQ: Yu cu truyn d liu COR: Li d liu cha c IDX: Index ERR: C li. M li nm thanh ghi trng thi li Thanh ghi trng thi li: NDM NTR ABT X NID X UC BK

NMD: Khng tm c vng DM NTR: Khng tm c rnh ABT: Lnh b ngt NID: Khng tm c vng ID UC: Li d liu khng khi phc BK: Cung c li Qu trnh thc hin mt lnh tri qua 3 giai on: Giai on np lnh: HDC nhn lnh v cc thng s iu khin t n v x l trung tm, gii m c cc thng tin v nhng thao tc cn thit khi thc thi lnh ny. Giai on thc hin: HDC thc hin cc thao tc thc thi lnh Giai on kt qu: Sau khi lnh c thc thi, trng thi thc hin lnh c chuyn v cho B x l trung tm. 4.2.3.4. T chc lu tr thng tin trn a t mc logic a ch vt l (mt, rnh, cung) ca mt cung l kiu a ch khng tuyn tnh v khng thch hp cho vic qun l v s dng cung vi t cch l mt n v lu tr thng tin ca b nh my tnh. Vic dng a t nh l mt h thng lu tr tp tin (tin) ca my tnh i hi phi c t chc li cch qun l cc cung ni ring v qun l lu tr thng tin trn a t ni chung. Cc h iu hnh khc nhau c cc cch t chc lu tr v qun l tp trn a t khc nhau. H iu hnh DOS v Window 9X s dng cch t chc lu tr v qun l tp (t chc h thng tp) kiu FAT (File Allocation Tabe). Theo cch t chc ny b nh ngoi c coi l tp hp ca cc volume, mt volume c th l ton b n v vt l (nh a mm) hoc l mt phn ca cng. Mi volume c xem l mt tp hp lin tc cc cung lgic. Cc cung logic c nh s th t, bt u l cung logic 0, tip tc l cung logic 1 v.v ln 100

lt tng dn cho n ht volume. Vic t chc li cc thit b a t theo volume lm cho vic qun l cc thit b ny tr nn thng nht, khng ph thuc vo cu trc vt l c th ca cc a. Qu trnh thao tc vi tp lc ny phi thc hin qua hai bc : trc ht yu cu ghi/c cc cung logic (c a ch tuyn tnh), sau cc a ch tuyn tnh ca cc cung c thnh a ch vt l (mt, rnh, cung) Qu trnh ghi/c tp tht s c thc hin theo a ch vt l ny. Mi volume c chia ra thnh cc vng cha mt loi thng tin v cch t chc lu tr trn volume. Cu trc ca mt volume nh sau(hnh v di) :

Cung khi ng volume (Volume Boot Sector) Cung khi ng volume (gi tt l khi ng) nm cung logic 0 ca mt volume. i vi a mm cung logic 0 c a ch vt l l : mt 0, rnh 0, cung 1. i vi a cng cung logic 0 ca volume u tin c a ch vt l l: mt 1, rnh 0, cung 1. Cung khi ng cha thng tin v cch phn vng trn volume v cha chng trnh khi ng h iu hnh :

101

Cung khi ng c kt thc bng 2 byte ch k AA55h. Khi khi ng my tnh, cung khi ng c np vo a ch 0000h : 7C00h. BIOS thc hin kim tra ch k, Nu khng tm they hai byte ch k th s bo ki, nu tm they ch BIOS s cho thc hin chng trnh t a ch 7C00h. cng l l do v sao byte u tin ca cung khi ng lun cha m lnh nhy khng iu kin. Cung khi ng cha cc d liu m t c th tnh ra c v tr bt u v kch thc (theo n v cung) ca cc vng thng tin trn volume. Bng FAT (File Allocation Table) H iu hnh lu tr tp trong vng cha tp. Vng ch tp nm sau th mc gc v chim ton b khng gian cn li ca volume. Vng cha tp c coi l tp hp ca cc cluster. Cluster l tp hp ca mt hoc nhiu cung lion nhau. Cluster l n v lu tr thng tin nh nht m h iu hnh dng lu tr tp. Cc cluster c nh s th t bt u t 2 v tng dn n ht volume. Bng FAT nm ngay sau cung khi ng. Mi volume thng c hai bng FAT # 1 v # 2, ni dung hai bng ny ging ht nhau. Bng FAT c dng qun l cc cluster. Bng FAT cha cc li vo (entry). Kch thc ca mt li vo c th l 12, 16 hoc 32 bit, tu thuc vo kch thc ca volume v cc t chc h tp. Hai li vo u tin trong bng FAT c dng ch ra cc dng t chc ca a. S lng cc li vo cn ng bng s lng cc cluster. Cc li vo ny cng c nh s th t u t 2 v tng dn cho n tn li vo cui cng trong bng FAT. Mi mt vo, bt u t li vo s 2, cha mt thng tin v trng thi ca cluster c s t tng ng. Thng tin v trng thi ca cluster c th hin di dng m nh phn nh sau li bt li th

Bng FAT ng vai tr mt bn v trng thi cc cluster. T bng FAT c th tm ra c mt chui danh sch cc cluster thuc mt tp no , nhng cn thiu thng tin v cluster u tin ca tp. Thng tin ny gn vi mt tp c th v nm th mc. Th mc gc: Mi volume c mt th mc gc. Th mc gc nm sau bng FAT #2. Th mc gc cha cc li vo th mc (Directory Entry), mi li vo th mc c kch thc 32 byte. Th mc gc c kch thc hn ch xc nh trc. Li vo th mc cha cc thng tin (tn tp, thuc tnh, kch thc v.v.) ca 102

mt tp ang c lu tr trn volume v s th t cluster u tin ca tp . Li vo th mc c cu trc nh sau :

- Byte u tin ca phn tn tp c th cha cc thng tin c bit sau : 00h : bo th mc kt thc y. e5h : Tp b xo 2eh : Li vo th mc ca th mc hin thi. Li vo ny cha thng tin v v tr v kch thc ca chnh th mc ang cha li vo ny. 2eh 2eh : Li vo th mc m ca th mc hin thi. Li vo ny cha thng tin v v tr v kch thc ca th mc m ca th mc ang cha li vo ny. Nh thng tin ny m t th mc hin thi ta c th chuyn v th mc m. Trng thi gian c m ho nh sau :

Trng ngy c m ha nh sau:

- Trng thuc tnh tp, khi bit c t bng 1 th mang thng tin nh sau:

Cu trc ca th mc con ging nh th mc gc. Th mc con nm vng cha tp v th mc con. Th mc con c qun l nh mt tp thng thng v c kch thc khng hn ch. Vng cha tp v th mc con 103

vng cha tp v th mc con l ton b vng cn li nm sau th mc gc. Vng nay c coi l tp hp ca cc cluster. Cc cluster c nh s th t bt u t 2 v tng dn n cluster cui cng trong volume. Trng thi ca cc cluster c phn nh bi li vo tng ng trong bng FAT. Cc th mc con nm vng ny. th mc con c qun l nh mt tp thng thng v c kch thc khng hn ch. Mt tp c lu tr trn mt hoc nhiu cluster khc nhau, tu thuc kch thc tp. Cc cluster cha d liu ca mt tp khng nht thit phi lin k nhau. Nu volume cha h thng khi ng h iu hnh th cc cluster u tin ca vng ny c dnh cha cc tp h thng ca h iu hnh. 4.2.3.5 Mi quan h gia th mc, bng FAT v cluster Mi quan h gia bng FAT v cluster c trnh by mc v bng FAT. Mi quan h gia th mc, bng FAT v cluster trong vic qun l mt tp c minh ha qua v d c th sau: Gi s c tp tn MYFILE.DAT, tn tp nm ti th mc gc. Trong th mc gc ta c th tm thy v c c mt li vo th mc c ni dung sau:

Cc byte 00h - 0Ah: M ASCII ca tn tp MYFILE.DAT Byte 0B:20h - tp lu tr Byte 1A-1Bh: (0)003h S th t ca cluster u tin ca tp. Li vo u tin ca tp trn bng FAT cng l (0)003h. Byte 1Ch 1Fh: Kch thc tp 0542h1346 byte

104

Qu trnh truy cp tp mc thp bt u t vic tm kim th mc cha tn tp. Trong th mc s tm c li vo th mc c cha tn tp cn truy cp, v d li vo th mc c cha tn tp MYFILE.DAT. T li vo th mc ny tm c a ch (s th t) cluster u tin ca tp MYFILE.DAT, v d (0)003h. Con s (0)003h cng l s th t u tin ca tp ny trong bng FAT. Thao tc tip theo l tm n bng FAT. Li vo u tin cn c l (0)003h. Li vo (0)003h cha con s (0)004h, con s ny phn nh hai thng tin : mt l cluster s (0)003h ang cha mt phn ca tp, hai l cluster tip theo ca tp l (0)004h. T y tip tc truy nhp v c li vo s (0)004h v.v. Cho n khi gp li vo cha gi tr (F)FFFh th dng tm kim. V d y ta c danh sch cc cluster cha tp l (0)003h, (0)004h, (0)005h. Tng qut m ni, t li vo v tr I ta c c ni dung J, nu J thuc khong gi tr (0)002h - (F)FFFh th n phn nh hai thng tin : cluster th I ang cha tp v cluster th J l cluster tip theo ca tp. Qu trnh tm kim danh sch cc cluster cha tp dng khi gp li vo cha gi tri (F)FFFh. Cluster tng ng li vo ny l cluster cu cng ca tp. Trn thc t khng phi bao gi cng nhn c chui danh sch cc cluster lin k nhau. truy nhp tp trn a cn phi chuyn danh sch cc cluster cha tp thnh danh sch cc cung logic. Cng thc chuyn i a ch (s th t) cluster thnh a ch (s th t) cung logic nh sau : a ch cung logic = (a ch cluster - 2) *(s lng cung trn mt cluster) + a ch cung logic u tin ca vng d liu. Qu trnh truy nhp cung khi ng, bng FAT v tp c th thc hin nh cc ngt 25h v 26h. Khi truy nhp tp v c vo b nh cn lu d liu ca tp ch cha mt phn ca cluster cui cng ch khng phi ton b cluster ny. Thng tin v kch thc tp gip xc nh chnh xc lng d liu tht ca tp trn cluster cui cng. 105

4.2.3.6 Bng phn khu (ParTition table) Mt cng vt l c th c phn chia thnh nhiu phn khu (Partition) v t mi phn khu to ra c mt volume tch bit. Vic to ra cc phn khu cho php ta c th ci t nhiu h iu hnh v h thng tp ring bit trong cng mt cng vt l. Cc h thng tp khc nhau (v d nh h tp FAT, FAT32, NTFS ring phn chia v qun l khng gian lu tr tp. v.v) s s dng cc phng php

Mi cng phi c t nht mt phn khu v c th c ti a 4 phn khu chnh. Vi h thng tp FAT qu trnh to phn khu c th thc hin bng lnh FDISK ca h iu hnh. Thng tin v cch phn chia a cnh thnh cc phn khu c cha trong bng phn khu. H iu hnh c s dng 1 vng ring v c nh trn a cng cha bng phn khu, l cung vt l mt trn rnh 0 ca mt 0. Cung vt l u tin ca a cng ( mt 0 rnh 0, cung 1) khng cha cung me khi ng volume (Volume Boot Record) m cha cung khi ng chnh (Master Boot Record MBR). - Cung khi ng chnh c cu trc nh sau: a ch offset(hexadecimal) 000 1BE 1FE Ni dung Chng trnh c cung khi ng Bng phn khu chnh Ch k AA55h

Cung khi ng chnh cha chng trnh c Bng phn khu chnh v cung khi ng. Chc nng ca chng trnh c cung khi ng l chuyn iu khin h thng n chng trnh khi ng h iu hnh, chng trnh ny nm trong cung khi ng ca phn khu khi ng. Bng phn khu chnh cha cc li vo phn khu (Partition Entry). Bng phn khu chnh c t nht 1 li vo phn khu v nhiu nht 4 li vo phn khu. Li vo phn khu cha thng tin v v tr v kch thc ca phn khu trong a cng. Bng phn khu chnh c cu trc nh sau:

Mi mt li vo phn khu mang thng tin v phn khu tng ng: v tr (mt, rnh,cung) bt u phn khu, v tr (mt, rnh, cung) kt thc phn khu, kch thc phn khu (tnh theo n v cung) Cu trc ca mt li vo phn khu: a ch offset(hexadecimal) Ni dung Kch thc (byte)

106

00 01 04 05 08 0c Ch th khi ng:

Ch th khi ng a ch u phn khu Ch th h thng a ch cui phn khu S lng cung trc phn khu S lng cung trong phn khu

1 3 1 3 4 4

80h: Phn khu khi ng (Khi ng h iu hnh t phn khu ny) 00h: Phn khu khng tch cc Ch th h thng: cho bit loi h thng tp c s dng trong phn khu 01h FAT 12 06h,0Eh FAT16 07h NTFS 0Bh FAT32 Khun dng ca trng a ch u/a ch cui phn khu:

a ch mt l mt s nh phn 8 bit: H7-H0. S mt ti a c th l 256 a ch cung l mt s nh phn 6 bit: S5-S0. S cung ti a c th l 63 a ch rnh l mt s nh phn 10bit: C9-C0.S rnh ti a c th l 1024 Ni dung mt li vo phn khu c th nh sau:

Phn khu ny l phn khu khi ng a ch u phn khu: Mt 1, rnh 0, cung vt l 1 a ch cui phn khu: Mt 4, rnh 964, cung vt l 34 Kch thc phn khu: 023290h = 164016 cung Ti mi phn khu c th thc hin nh dng (mc cao) to volume v ci t h iu hnh trn cc volume .

107

Ti liu tham kho :


[1] V Chn Hng, Gio trnh kin trc my tnh, nh xut bn giao thng vn ti, 2004 [2] Nguyn Nam Trung,Cu trc my vi tnh v thit b ngoi vi.Nh xut bn Khoa hc k thut. 2000. [3] Nguyn Trung ng- Bui Hoa, Gio trnh k thut vi x l, Khoa CNTT [4] Daniel Tabak, Advanced Microprocessors. McGraw-Hill, Inc. 1995. [5] William Stalling, Computer Architecture.

108

You might also like