intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo Trình Kiến Trúc Máy Tính - Nguyễn Hữu Lộ phần 9

Chia sẻ: Dqwdqweferg Vgergerghegh | Ngày: | Loại File: PDF | Số trang:13

68
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Thông thường, trong mỗi nhịp đồng hồ, máy tính sẽ nhận được các chỉ thị và dữ liệu từ bộ nhớ của nó. Các chỉ thị được thực thi, kết quả được lưu lại và chỉ thị tiếp theo được nhận về. Quá trình này tiếp diễn cho đến khi gặp chỉ thị dừng.

Chủ đề:
Lưu

Nội dung Text: Giáo Trình Kiến Trúc Máy Tính - Nguyễn Hữu Lộ phần 9

  1. -105- Caán Truùc Maùy Tính (a) caùc thanh ghi nhanh hôn boä nhôù chính (b) bôûi vì coù quaù ít thanh ghi neân chæ caàn ít bit ñeå ñòa chæ hoùa chuùng. Ñaùng tieác laø coù 8 hoaëc 16 thanh ghi cuõng laøm phöùc taïp cho vieäc laäp trình do bôûi phaûi taïo ranhieàu quyeát ñònh nhö : caùc toaùn haïng naøo, caùc keát quaû trung gian naøo ñöôïc giöõ trong soá thanh ghi giôùi haïn ñoù vaø caùc toaùn haïng naøo, caùc keát quaû trung gian naøo ñöôïc giöõ trong boä nhôù chính. W.L.vander Poel (1968) ñaõ nhaän xeùt moät caùch tinh teá, caùc maùy tính phaûi ñöôïc cung lôùp hoaëc 0, 1 hoaëc moät soá voâ haïn cho moãi ñaëc tính (voâ haïn coù nghóa laø nhieàu ñuû ñeå ngöôøi laäp trình khoâng caàn phaûi toán thôøi gian suy nghó phaûi laøm gì neáu ñieàu gì ñoù ñaõ ñöôïc duøng heát ). Caû 2 chip Intel vaø Motorola ñeàu coù moät löôïng lôùn caùc leänh laáy caùc toaùn haïng töø caùc thanh ghi vaø ñaët keát quaû vaøo moät thanh ghi. 4. Ñònh ñòa chæ giaùn tieáp Ñònh ñòa chæ tröïc tieáp laøsô ñoà trong ñoù ñòa chæ c ho bieát töø nhôù naøo hoaëc thanh ghi naøo chöùa toaùn haïng. Ñònh ñòa chæ giaùn tieáp laø sô ñoà trong ñoù ñòa chæ cho bieät töø nhôù naøo hoaëc thanh ghi naøo chöùa ñòa chæ cuûa toaùn haïng. Thí duï xeùt moät leänh naâp moät thanh ghi (chuùng ta seõ goïi laø thanh ghi R1 ) giaùn tieáp töø vò trí nhôù 1000, noäi dung taïi vò trí 1000 laø 1510. Hình 5.8: Ñòa chæ giaùn tieáp Tröôùc tieân noäi dung taïi vò trí 1000 ñöôïc tìm naïp vaøo 1 thanh ghi noäi cuûa CPU. Noäi dung 16 bit naøy (1510) khoâng ñöôïc ñaët trong thanh ghi R1. Neáu 1510 coù trong R1, ta coù leänh ñòa chæ tröïc tieáp. Thay vaøo ñoù noäi dung cuûa vò trí 1510 ñöôïc tìm naïp vaø ñaët vaøo R1. Noäi dung ôû vò trí 1000 khoâng phaûi laø toaùn haïng maø troû tôùi toaùn haïng vaø vì lyù do naøy, ta goïi laø con troû (pointer). Caùc boä xöû lyù cuûa Intel ñeàu coù ñònh ñòa chæ giaùn tieáp thoâng qua thanh ghi. Thí du coù theå ñaët con troû trong SI vaø chæ ra raèng toaùn haïng ñaët trong boä nhôù taïi ñòa chæ ñöôïc troû tôùi bôûi SI. Treân 8088 vaø 80286, chæ coù BX, BP, SI vaø DI ñöôïc söû duïng trong kieåu ñòa chæ giaùn tieáp, treân 80386 taát caû caùc thanh ghi ñeàu coù theå söû duïng ñöôïc cho kieåu ñònh ñòa chæ naøy. Ñònh ñòa chæ giaùn tieáp duøng con troû trong boä nhôù khoâng thöïc hieän ñöôïc treân baát kyø thanh ghi naøo. Nguyeãn Höõu Loäc Khoa Vaät Lyù
  2. -106- Caán Truùc Maùy Tính 68000 cho pheùp ñòng ñòa chæ giaùn tieáp thoâng qua caùc thanh ghi ñòa chæ vaø khoâng coù daïng ñònh ñòa chæ giaùn tieáp naøo khaùc. Treân 68020 vaø 68030 ñònh ñòa chæ giaùn tieáp coøn coù daïng thoâng qua boä nhôù. Ñaây laø moät trong nhöõng khaùc nhau chính giöõa 68000 vaø caùc CPU sau naøy. Moät soá maùy cho pheùp ñònh ñòa chæ giaùn tieáp nhieàu lôùp. ÔÛ kieåu ñònh vò ñòa chæ naøy, ngöôøi ta duøng moät con troû ñeå ñònh vò moät töø nhôù vaø chính töø nhôù naøy troû tôùi moät töø nhôù khaùc vaø vv… Ñòa chæ töùc thôøi, tröïc tieáp, giaùn tieáp vaø ñòa chæ giaùn tieáp nhieàu lôùp bieåu dieãn moät söï tieán trieån trong vieäc ñònh ñòa chæ. Ñònh ñòa chæ töùc thôøi khoâng caàn tham chieáu boä nhôù vì toaùn haïng ñöôïc tìm naïp cuøng luùc vôùi leänh. Ñònh ñòa chæ tröïc tieáp caàn moät tham chieáu boä nhôù ñeå tìm naïp toaùn haïng. Ñònh ñòa chæ giaùn tieáp caàn 2 tham chieáu boä nhôù, moät cho con troû vaø moät cho toaùn haïng. Ñònh ñòa chæ giaùn tieáp nhieàu lôùp caàn ít nhaát 3 tham chieáu boä nhôù, 2 hoaëc nhieàu tham chieáu cho con troû vaø moät cho toaùn haïng. Caùc tham chieáu boä nhôù trong ngöõ caûnh naøy goàm caùc tham chieáu thanh ghi. 5. Ñònh chæ soá Nhieàu thuaät toaùn caàøn thöïc hieän moät thao taùc naøo ñoù treân moät chuoãi caáu truùc döõ lieäu löu giöõ trong nhöõng vò trí nhôù lieân tieáp. Thí duï xeùt moät khoái n töø maùy chieám caùc vò trí A, A +1, A+2,…,A+n-1 Caùc töø naøy phaûi ñöôïc chuyeån ñeán caùc vò trí B,B+1,B+2,…,B+n-1 Giaû thuyeát raèng maùy coù leänh MOVE A,B Chuyeån noäi dung cuûa vò trí A tôùi vò trí B, ngöôøi ta coù theå thöïc thi leänh naøy vaø thay ñoåi treân chính leänh thaønh MOVE A+1,B+1 Thöïc thi leänh laàn nöõa, sau ñoù laïi thay ñoåi leänh laàn nöõa vaø laäp laïi cho tôùi khi taát caû n töø ñöôïc sao cheùp heát. Maëc duø caùc chöông trình töï thay ñoåi ñöôïc duøng phoå bieán tröôùc kia, nhöng nay ñöôïc xem nhö moät phöông caùch laäp trình dôû. Caùc chöông trình nhö vaäy khoù söûa sai vaø laøm khoù khaên cho vieäc duøng chung moät chöông trình giöõa nhieàu ngöôøi söû duïng trong heä thoáng phaân chia thôøi gian. Vaán ñeà sao cheùp cuõng coù theå ñöôïc giaûi quyeát baèng ñònh ñòa chæ giaùn tieáp. Moät thanh ghi hoaëc moät töø nhôù ñöôïc naïp vôùi ñòa chæ A ; moät thanh ghi hoaëc moät töø nhôù thöù 2 ñöôïc naïp vôùi ñòa chæ B. leänh MOVE duøng 2 thanh ghi naøy laøm caùc con troû. Sau moãi laàn sao cheùp moät töø , caùc con troû ñöôïc taêng theâm 1. Caùc con troû laø moät phaàn cuûa döõ lieäu, khoâng phaûi laø phaàn cuûa chöông trình vaø nhöõng ngöôøi söû duïng khoâng ñöôïc duøng chung ñoàng thôøi. Nguyeãn Höõu Loäc Khoa Vaät Lyù
  3. -107- Caán Truùc Maùy Tính Moät giaûi phaùp khaùc laø coù 1 hoaëc nhieàu thanh ghi, goïi laø thanh ghi chæ soá (Index register) hoaït ñoäng nhö sau. Ñòa chæ coù 2 phaàn: soá cuûa moät thanh ghi chæ soá vaø moät haèng soá. Ñòa chæ cuûa toaùn haïng laø toång cuûa haèng soá vôùi noäi dung cuûa thanh ghi chæ soá. Trong thí duï tröôùc, neáu caû 2 ñòa chæ ñöôïc ñònh chæ soá baèng caùch duøng moät thanh ghi chæ soá chöùa soá nguyeân k, leänh MOVE A, B seõ chuyeån noäi dung cuûa vò trí nhôù A+k tôùi B+k. Baèng caùch khôùi ñoäng thanh ghi chæ soá laø 0 vaø taêng noäi dung thanh ghi naøy leân moät löôïng baèng kích thöôùc cuûa töø sau khi sao cheùp 1 töø, chæ caán moät thanh ghi cho voøng laëp sao cheùp. Hôn nöõa, vieäc taêng thanh ghi seõ nhanh hôn vieäc taêng 1 vò trí nhôù. Ñònh chæ soá (indexing) cuõng thöôøng ñöôïc duøng ñeå ñònh ñòa chæ 1 tröôøng coù offset ñaõ bieát töø vò trí baét ñaàu 1 caáu truùc ñaõ cho. Caùc bieán cuïc boä trong moät thuû tuïc cuõng ñöôïc truy xuaát theo phöông phaùp naøy. Trong thí duï ñaõ cho ôû treân, ngöôøi ta caàn taêng thanh ghi chæ soá moät löôïng ñuùng baèng kích thöôùc cuûa töø sau moãi laàn söû duïng. Nhu caàu taêng hoaëc giaûm thanh ghi chæ soá ngay tröôc hoaëc sau khi söû duïng raát phoå bieán neân 1 soá maùy tính cung lôùp nhöõng leänh hoaëc caùc kieåu ñònh ñòa chæ ñaëc bieät hoaëc thaäm chí caùc thanh ghi chæ soá ñaëc bieät töï ñoäng taêng hoaëc giaûm. Söï thay ñoåi töï ñoäng cuûa moät thanh ghi chæ soá ñöôïc goïi laø töï ñònh chæ soá (autoindexing). Caû 2 chip cuûa Intel vaø Motorola ñeàu coù nhieàu kieåu ñònh ñòa chæ khaùc nhau bao goàm ñònh chæ soá. 680x0 cuõng coù kieåu töï ñònh chæ soá. 6. Ñònh ñòa chæ ngaên xeáp Chuùng ta ñaõ löu yù raèng vieäc taïo ra caùc leänh maùy caøng ngaén caøng tieát kieäm boä nhôù vaø thôøi gian cuûa CPU. Giôùi haïn cuoái cuøng cuûa vieäc giaûm chieàu daøi ñòa chæ seõ daãn ñeán caùc leänh khoâng coù ñòa chæ, chæ coù opcode. Ñaây laø ñieàu coù theå xaûy ra baèng caùch toå chöùc maùy xung quanh moät caáu truùc döõ lieäu goïi laø ngaên xeáp (Stack). Ngaên xeáp bao goàm caùc phaàn töû döõ lieäu ( töø, kyù töï, bit, vv…) ñöôïc caát theo moät traät töï lieân tieáp trong boä nhôù. Phaàn töû ñaàu tieân ñöôïc caát vaøo ngaên xeáp. Phaàn töû gaàn nhaát ñöôïc caát vaøo stack seõ ôû ñænh cuûa ngaên xeáp. Keát hôïp vôùi moät ngaên xeáp laø moät thanh ghi hoaëc töø nhôù chöùa ñòa chæ cuûa ñænh ngaên xeáp, ñöôïc goïi laø con troû ngaên xeáp (stack pointer). Maët duø ñaõ thaûo luaän veà ngaên xeáp ôû chöông 4, chuùng ta cuõng seõ oân laïi ôû ñaây bôûi vì vieäc söû duïng ngaên xeáp cho caùc pheùp toaùn soá hoïc hoaøn toaøn khaùc vôùi vieäc söû duïng ngaên xeáp ñeå löu giöõ caùc bieán cuïc boä ( dó nhieân coù theå duøng keát hôïp caû 2). Hình 5.9 minh hoïa hoaït ñoäng cuûa ngaên xeáp. Trong hình 5.9(a) ñaõ coù 2 phaàn töû trong ngaên xeáp. Ñaùy cuûa ngaên xeáp ôû vò trí nhôù 1000 vaø ñænh cuûa ngaên xeáp ôû vò trí nhôù 1001. Con troû ngaên xeáp chöùa ñòa chæ cuûa phaàn töû treân ñænh ngaên xeáp, töùc laø 1001 ; nghóa laø troû tôùi ñænh cuûa ngaên xeáp. Trong hình 5.9(b), 6 ñöôïc caát vaøo ngaên xeáp vaø con troû ngaên xeáp chöùa 1002 laø ñænh môùi cuûa ngaên xeáp. Trong hình 5.9(c), 75 ñöôïc caát leân ngaên xeáp, taêng con troû ngaên xeáp leân 1003. Trong hình 5.9(d), 75 ñöôïc laáy ra khoûi ngaên xeáp. Nguyeãn Höõu Loäc Khoa Vaät Lyù
  4. -108- Caán Truùc Maùy Tính Hình 5.9: Hoaït ñoäng cuûa moät ngaên xeáp Caùc maùy tính höôùng ngaên xeáp (stack-oriented) coù leänh caát ( push) caùc noäi dung cuûa vò trí nhôù hoaëc thanh ghi vaøo ngaên xeáp. Moät leänh nhö vaäy phaûi thöïc hieän vieäc sao cheùp phaàn töû ñoù vaø taêng con troû ngaên xeáp. Töông töï, leänh laáy (pop) ñænh cuûa ngaên xeáp ñöa vaøo thanh ghi hoaëc vò trí nhôù phaûi thöïc hieän moät sao cheùp môùi vaøo nôi thích hôïp vaø giaûm con troû ngaên xeáp. Moät soá maùy tính coù ngaên xeáp ñaûo ngöôïc, vôùi nhöõng phaàn töû ñöôïc caát lieân tieáp vaøo nhöõng vò trí thaáp hôn cuûa boä nhôù thay vì caát lieân tieáp vaøo nhöõng vò trí cao hôn nhö trong hình 5.9. III. LUOÀNG ÑIEÀU KHIEÅN Luoàng dieàu khieån coù lieân quan tôùi trình töï thöïc thi caùc leänh. Nhìn chung, caùc leänh ñöôïc thöïc hieän laàn löôïc ñöôïc tìm naïp töø nhöõng vò trí lieân tieáp. Caùc leänh goïi thuû tuïc laø nguyeân nhaân laøm thay luoàng ñieàu khieån, döøng thuû tuïc ñang thöïc hieän hieän taïi vaø baét ñaàu thuû tuïc ñöôïc goïi. Ñoàng thöôøng trình (coroutine) lieân quan ñeán thuû tuïc (procedure) vaø laøm cho luoàng ñieàu khieån bò thay ñoåi. Caùc baåy vaø caùc ngaét cuõng laøm cho luoàng ñieàu khieån thay ñoåi khi coù caùc ñieàu kieän ñaëc bieät xaûy ra. Taát caû caùc vaán ñeà naøy seõ ñöôïc thaûo luaän trong caùc phaàn sau. 1. Luoàng ñieàu khieån tuaàn töï vaø caùc leänh nhaûy. Ña soá caùc leänh khoâng laøm thay ñoåi luoàng ñieàu khieån. Sau khi moät leänh ñöôïc thöïc hieän, leänh tieáp theo sau trong boä nhôù ñöôïc tìm naïp vaø thöïc hieän. Sau moãi moät leänh, boä ñeám chöông trình ñöôïc taêng bôûi chieàu daøi cuûa leänh. Neáu quan saùt treân moät khoaûng thôøi gian daøi so vôùi thôøi gian trung bình cuûa leänh, boä ñeám chöông trình gaàn nhö coù moät haøm tuyeán tính theo thôøi gian. Noùi caùch khaùc, traät töï ñoäng trong ñoù boä xöû lyù thöïc söï thöïc hieän caùc leänh gioáng nhö traät töï trong ñoù caùc leänh xuaát hieän theo söï lieät keâ cuûa chöông trình. Neáu chöông trình chöùa caùc leänh nhaûy, moái lieân heä ñôn giaûn naøy giöõa traät töï trong ñoù caùc leänh ñöôïc thöïc hieän trong boä nhôù vaø traät töï trong ñoù caùc leänh ñöôïc thöïc hieän khoâng coøn ñuùng nöõa. Khi coù maët caùc leänh nhaûy, boä ñeám chöông trình khoâng coøn laø moät haøm taêng ñeàu theo thôøi gian. Keát quaû laø khoù hình dung chuoãi thöïc thi leänh töø baûn danh Nguyeãn Höõu Loäc Khoa Vaät Lyù
  5. -109- Caán Truùc Maùy Tính saùch cuûa chöông trình. Khi ngöôøi laäp chöông trình gaëp raéc roái trong vieäc theo doõi chuoãi leänh maø boä xöû lyù seõ thöïc thi, hoï deã gaây ra loãi. Söï quan saùt naøy ñaõ daãn ñöôøng cho Dijkstra (1968) vieát moät thö gaây tranh luaän sau naøy coù töïa ñeà ‘GO TO Statement Considered Harmfull ‘ (phaùt bieåu GO TO ñöôïc xem nhö coù haïi), trong ñoù oâng ñeà nghò neân traùnh duøng phaùt bieåu GO TO. Böùc thö ñoù laøm khai sinh ra cuoäc caùch maïng cho phöông phaùp laäp trình coù caáu truùc, moät trong nhöõng nguyeân lyù cuûa phöông phaùp naøy laø thay theá phaùt bieåu GO TO baèng nhöõng daïng coù caáu truùc hôn cuûa luoàng ñieàu khieån, nhö voøng laäp WHILE. Dó nhieân, nhöõng chöông trình naøy bieân dòch thaønh nhöõng chöông trình lôùp 2 chöùa nhieàu leänh nhaûy, bôûi vì hieäbn thöïc IF, WHILE vaø nhöõng caáu truùc ñieàu khieån lôùp cao khaùc yeâu caàu vieäc nhaûy. 2. Thuû tuïc Kyõ thuaät quan troïng nhaát ñoái vôùi caùc chöông trình coù caáu truùc laø thuû tuïc. Leänh goïi thuû tuïc cuõng laøm thay ñoåi doøng ñieàu khieån nhö leänh nhaûy nhöng khoâng gioáng. Khi thöïc hieän song coâng vieäc, thuû tuïc traû ñieàu khieån trôû veà cho phaùt bieåu hoaëc leänh theo sau leänh goïi. Tuy nhieân, vôùi caùch nhìn khaùc, phaàn thaân cuûa thuû tuïc coù theå ñöôïc xem nhö xaùc ñònh moät leänh môùi ôû lôùp cao hôn. Töø quan ñieåm naøy, leänh goïi thuû tuïc ñöôïc xem nhö moät leänh ñôn cho duø coù theå raát phöùc taïp. Ñeå hieåu phaàn maõ chöùa leänh goïi thuû tuïc, ñieàu duy nhaát caàn bieát laø laøm gì, khoâng caàn bieát caùch thöïc hieän. 3. Ñoàng thuû tuïc. Trong chuoãi goïi thoâng thöôøng, coù söï phaân bieät roõ giöõa thuû tuïc goïi vaø thuû tuïc ñöôïc goïi. Xeùt thuû tuïc A goïi thuû tuïc B. Thuû tuïc B tính toaùn trong moät khoaûng thôøi gianvaø sau ñoù trôû veà thuû tuïc A. Thoaït nhìn coù leõ ta seõ nghó raèng tình huoáng naøy coù tính ñoái xöùng, bôûi vì caû A vaø B ñeàu khoâng phaûi laø chöông trình chính, chuùng ñeàu laø caùc thuû tuïc. Hôn nöõa, ñieàu khieån ñaàu tieân ñöôïc chuyeån töø A tôùi B – goïi – vaø sau ñoù ñieàu khieån ñöôïc chuyeån töø B tôùi A – trôû veà. Tính khoâng ñoái xöùng naûy sinh töø thöïc teá. Khi ñieàu khieån chuyeån töù A tôùi B , thuû tuïc B baét ñaàu ñöôïc thöïc thi ôû ñaàu thuû tuïc; khi ñieàu khieån töø B trôû veà A , vieäc thöïc thi A khoâng phaûi ôû ñaàu thuû tuïc maø ôû phaùt bieåu theo sau lôøi goïi thuû tuïc B. Neáu A chaïy theâm moät khoaûng thôøi gian vaø goïi B laàn nöõa, vieäc thöïc thi B laïi baét ñaàu ôû ñaàu thuû tuïc B, khoâng phaûi ôû phaùt bieåu theo sau laàn trôû veà tröôùc. Trong höôùng hoaït ñoäng naøy, neáu A goïi B nhieàu laàn, B luoân luoân baét ñaàu laïi ôû ñaàu thuû tuïc moãi laàn ñöôïc goïi, traùi laïi A khoâng bao giôø baét ñaàu laïi töø ñaàu thuû tuïc. Söï khaùc nhau naøy ñöôïc phaûn aùnh trong caùch maø ñieàu khieån ñöôïc chuyeån giöõa A vaø B. Khi A goïi B, A duøng leänh goïi thuû tuïc leänh naøy ñaët ñòa chæ quay veà (ñòa chæ cuûa phaùt bieåu theo sau leänh goïi ) vaøo nôi naøo ñoù thí duï vaøo ñænh cuûa ngaên xeáp. Sau ñoù leänh Nguyeãn Höõu Loäc Khoa Vaät Lyù
  6. -110- Caán Truùc Maùy Tính naøy ñaët ñòa chæ cuûa B vaøo boä ñeám chöông trình ñeå hoaøn taát vieäc goïi. Khi B trôû veà, B khoâng söû duïng leänh goïi maø laø leänh quay veà, leänh naøy ñôn giaûn chæ laáy ñòa chæ trôû veà töø ngaên xeáp vaø ñaët vaøo boä ñeám chöông trình . Ñoâi khi ta coù 2 thuû tuïc A vaø B, thuû tuïc naøy goïi thuû tuïc kia nhö laø moät thuû tuïc. Khi töø B trôû veà A, ñieàu khieån nhaûy tôùi phaùt bieåu theo sau leänh goïi B. Khi A chuyeån ñieàu khieån tôùi B, ñieàu khieån khoâng ñi tôùi phaùt bieåu ñaàu tieân cuûa thuû tuïc (tröø laàu ñaàu tieân) maø ñi tôùi phaùt bieåu theo sau phaùt bieåu “trôû veà “ gaàn nhaát, nghóa laø, laàn goïi A gaàn ñaây nhaát 2 thuû tuïc maø trong ñoù thuû tuïc naøy xem thuû tuïc kia nhö laø moät thuû tuïc ñöôïc goïi laø caùc ñoàng chöông trình (coroutine) hay ñoàng thuû tuïc. 4. Baãy Baãy (trap) laø moät loaïi lôøi goïi thuû tuïc töï ñoäng ñöôïc khôûi ñoäng bôûi 1 ñieàu kieän naøo ñoù do chöông trình taïo ra ,thöôøng laø ñieàu kieän quan troïng nhöng hieám khi xaûy ra. Traøn (overflow) laø moät thí duï. Treân nhieàu maùy tính, neáu keát quaû cuûa 1 pheùp toaùn soá hoïc vöôït quaù soá lôùn nhaát coù theå bieåu dieãn, moät baãy xuaát hieän, nghóa laø luoàng ñieàu khieån ñöôïc chuyeån ñeán 1 vò trí nhôù naøo ñoù thay vì tieáp tuïc theo trình töï. Taïi vò trí coá ñònh ñoù coù moät leänh nhaûy tôùi 1 thuû tuïc goïi laø boä ñieàu khieån baãy (trap handler), boä naøy thöïc hieän 1 ñoäng taùc thích hôïp naøo ñoù, nhö in 1 thoâng baùo loãi. Neáu keát quaû cuûa pheùp toaùn naèm trong phaïm vi cho pheùp, baãy khoâng xuaát hieän. Ñieåm cô baûn cuûa baãy laø baãy ñöôïc khôûi ñoäng bôûi 1 ñieàu kieän ngoaïi leä naøo ñoù gaây ra bôûi chính chöông trình vaø ñöôïc phaàn cöùng hoaëc vi chöông trình phaùt hieän. Moät phöông phaùp khaùc coù khaû naêng ñieàu khieån traøn laø duøng moät thanh ghi 1 bit ñöôïc thieát laäp laø 1 moãi khi xaûy ra traøn. Ngöôøi laäp trình muoán kieåm tra traøn phaûi ñöa theâm vaøo moät leänh “nhaûy neáu bit traøn ñöôïc thieát laäp” sau moãi leänh soá hoïc. Hieän thöïc nhö vaäy vöøa toán khoâng gian nhôù vöøa laøm cho toác ñoä chaäm laïi. Baãy tieát kieäm ñöôïc thôøi gian vaø boä nhôù so vôùi phöông phaùp kieåm tra ñieàu khieån bôûi ngöôøi laäp trình. Baãy thöôøng ñöôïc thöïc hieän baèng caùch coù vi chöông trình, vi chöông trình naøy ñôn giaûn chæ thöïc hieän söï kieåm tra. Baãy cuõng coù theå ñöôïc thöïc hieän nhôø vaøo vieäc kieåm tra thöïc hieän bôûi trình bieân dòch ôû lôùp 1. Neáu phaùt hieän thaáy coù traøn, ñòa chæ cuûa baãy ñöôïc naïp vaøo boä ñeám chöông trình. Ñieàu naøy nghóa laø baãy ôû moät lôùp coù theå ôû döôùi söï ñieàu khieån cuûa chöông trình ôû lôùp thaáp hôn. Vi chöông trình thöïc hieän vieäc kieåm tra vaãn tieát kieäm thôøi gian hôn so vôùi vieäc kieåm tra cuûa ngöôøi laäp trình, bôûi vì vieäc naøy deã daøng choàng laáp vôùi vieâc khaùc vaø cuõng tieát kieäm ñöôïc boä nhôù, bôûi vì vieäc naøy chæ caàn xaûy ra ôû moät vaøi thuû tuïc cuûa lôùp 1, ñoäc laäp vôùi vieäc coù bao nhieâu leänh soá hoïc xuaát hieän trong chöông trình chính. Moät vaøi ñieàu kieän thöøông gaây ra baãy laø traøn treân daáu chaám ñoäng, traøn döôùi daáu chaám ñoäng, vi phaïm söï baûo veä, opcode khoâng ñöôïc xaùc ñònh, traøn stack, khôûi ñoäng thieát bò khoâng coù thöïc, tìm naïp moät töø ôû ñòa chæ leû vaø chia cho zero. 5. Ngaét Ngaét (interrupt) laø nhöõng thay ñoåi trong luoàng ñieàu khieån gaây ra khoâng phaûi do chöông trình ñang ñöôïc thöïc thi maø do bôûi moät taùc ñoäng khaùc, thöôøng lieân quan tôùi I/O. Nguyeãn Höõu Loäc Khoa Vaät Lyù
  7. -111- Caán Truùc Maùy Tính thí duï chöông trình ra leänh cho ñóa khôûi ñoäng truyeàn thoâng tin vaø thieát laäp traïng thaùi ñóa ñeå cung lôùp moät ngaét ngay khi vieäc truyeàn thoâng tin hoaøn taát. Gioáng nhö baãy, ngaét cuõng laøm ngöøng chöông trình ñang ñöôïc thöïc thi vaø chuyeån ñieàu khieån ñeán boä ñieàu khieån ngaét ñeå thöïc hieän moät soá ñoäng taùc thiùch hôïp. Khi hoaøn taát, boä ñieàu khieån ngaét traû ñieàu khieån cho chöông trình bò ngaét. Chöông trình naøy phaûi khôûi ñoäng laïi quaù trình bò ngaét moät caùch chính xaùc ôû traïng thaùi gioáng nhö ñaõ coù khi xaûy ra ngaét, nghóa laø khoâi phuïc laïi taát caû caùc thanh ghi noäi veà traïng thaùi tröôùc khi xaûy ra ngaét. Söï khaùc nhau cô baûn giöõa baãy vaø ngaét laø caùc baãy ñoàng boä vôùi chöông trình coøn ngaét laò khoâng ñoàng boä. Neáu chöông trình chaïy laïi moät trieäu laàn vôùi cuøng döõ lieäu vaøo, baãy seõ laïi xaûy ra ôû cuøng moät nôi cho moãi laàn chaïy nhöng ngaét laïi khaùc, thí duï tuyø thuoäc chính xaùc luùc moät ngöôøi ôû thieát bi ñaàu cuoái aán phím CR (carriage return). Nguyeân nhaân ñoái vôùi vieät taùi taïo laïi baãy aø khoâng taùi taïo laïi ngaét laø baãy ñöôïc gaây ra tröïc tieáp bôûi chöông trình coøn ngaét toát nhaát ñöôïc gay ra giaùn tieáp bôûi chöông trình. Nguyeãn Höõu Loäc Khoa Vaät Lyù
  8. -112- Caán Truùc Maùy Tính CHÖÔNG 6: LÔÙP MAÙY HEÄ ÑIEÀU HAØNH Caùc chöông tröôùc ñaõ trình baøy caùch thöùc moät trình bieân dòch chaïy treân lôùp vi chöông trình (lôùp 1) thöïc thi caùc chöông trình vieát cho lôùp maùy qui öôùc (lôùp 2). Treân moät maùy tính ñöôïc vi laäp trình, caùc leänh cuûa lôùp maùy qui öôùc nhö goïi thuû tuïc, nhaân vaø laäp voøng khoâng ñöôïc thöïc hieän tröïc tieáp baèng phaàn cöùng. Thay vaøo ñoù, chuùng ñöôïc tìm naïp, ñöôïc khaûo saùt vaø ñöôïc thöïc thi nhö moät chuoãi caùc böôùc nhoû bôûi vi chöông trình. Maùy lôùp hai coù theå ñöôïc laäp trình bôûi nhöõng ngöôøi khoâng bieát gì veà maùy lôùp 1 vaø trình phieân dòch cuûa lôùp naøy. ÔÛ chöøng möïc maø chuùng coù lieân quan, maùy lôùp 2 coù theå ñöôïc söû duïng nhö theå maùy naøy laø moät phaàn cöùng thaät söï . Cuõng nhö moät trình phieân dòch chaïy treân maùy lôùp 1 coù theå phieân dòch caùc chöông trình vieát baèng ngoân ngöõ maùy lôùp 2 moät trình phieân dòch chaïy treân maùy lôùp 2 coù theå phieân dòch caùc chöông trình vieát baèng ngoân ngöø maùy lôùp 3. Vôùi caùc lyù do coù tính lòch söû, trình phieân dòch chaïy treân maùy lôùp 2 hoã trôï cho maùy lôùp 3 ñöôïc goïi laø heä ñieàu haønh (operating system). Do vaäy chuùng ta seõ goïi lôùp 3 laø lôùp maùy heä ñieàu haønh do thieáu thuaät ngöõ toång quaùt chaáp nhaän ñöôïc. Coù söï khaùc bieät quan troïng giöõa caùch maø lôùp maùy heä ñieàu haønh ñöôïc hoã trôï caùch maø lôùp maùy qui öôùc ñöôïc hoã trôï. söï khaùc nhau naøy thöïc teá do bôûi lôùp maùy heä ñieàu haønh ñöôïc phaùt trieån daàn daàn ra khoûi lôùp maùy qui öôùc. Haàu heát caùc leänh cuûa lôùp maùy heä ñieàu haønh cuõng hieän dieän ôû lôùp maùy qui öôùc. Chuùng ta seõ goïi nhöõng leänh naøy laø caùc leänh lôùp 3 "taàm thöôøng" (ordinary) do bôûi chuùng bao goàm caùc thao taùc bình thöôøng nhö caùc pheùp toaùn soá hoïc, logic, dòch bit v v… chuùng ta cuõng seõ goïi caùc leänh khaùc cuûa maùy lôùp 3 (chuùng khoâng hieän dieän trong maùy lôùp 2) laø caùc leänh OSML (Operating System Machine Language) ñeå nhaán maïnh chuùng chæ hieän dieän trong lôùp maùy heä ñieàu haønh. Maëc duø ta coù theå coù heä ñieàu haønh phieân dòch taát caû caùc leänh cuûa lôùp 3, nhöng ñieàu naøy khoâng coù hieäu quaû cuõng nhö khoâng caàn thieát. Caùc leänh lôùp 3 taàm thöôøng coù theå ñöôïc dòch tröïc tieáp bôûi vi chöông trình. Tình huoáng naøy ñöôïc moâ taû cho tröông hôïp maùy tính chæ coù 1 boä nhôù ñeå löu tröõ moïi chöông trình. Mieãn laø chæ coù caùc leänh taàm thöôøng ñang thöïc thi, vi chöông trình tìm naïp caùc leänh tröïc tieáp töø chöông trình ngöôøi söû duïng, khaûo saùt chuùng vaø thöïc thi chuùng. Tuy nhieân ngay khi gaëp moät leänh OSML, tình huoáng seõ thay ñoåi. Vi chöông trình ngöøng phieân dòch chöông trình cuûa ngöôøi söû duïng vaø baét ñaàu phieân dòch heä ñieàu haønh. Heä ñieàu haønh sau ñoù khaûo saùt leänh OSML trong chöông trình ngöôøi söû duïng vaø thöïc thi leänh naøy. Khi leänh OSML ñaõ ñöôïc thöïc thi, heä ñieàu haønh thöïc thi moät leänh naøo ñoù laøm cho vi chöông trình tieáp tuïc tìm naïp vaø thöïc thi caùc leänh cuûa chöông trình ngöôøi söû duïng. Dó nhieân neáu leänh keá cuûa chöông trình ngöôøi söû duïng cuõng laø leänh OSML, heä ñieàu haønh seõ ñöôïc khôûi ñoäng laàn nöõa. Phöông phaùp thöïc thi caùc chöông trình lôùp 3 naøy coù nghóa laø moät phaàn thôøi gian maùy tính coù chöùc naêng cuûa moät maùy 3-lôùp vaø moät phaàn thôøi gian coù chöùc naêng cuûa moät Nguyeãn Höõu Loäc Khoa Vaät Lyù
  9. -113- Caán Truùc Maùy Tính m a ù y 2 - l ô ù p . T r o n g k h i t h ö ï c t h i m o ä t l e ä n h OSML, 3 chöông trình ñang chaïy, moãi chöông trình treân moãi maùy (aûo). Moãi chöông trình c o ù m o ä t t r a ï n g t h a ù i r i e â n g b a o g o à m b o ä ñ e á m chöông trình rieâng. Moät caùch khaùi quaùt, boä ñeám chöông trình cuûa lôùp 3 troû tôùi leänh OSML, boä ñeám chöông trình cuûa lôùp 2 troû tôùi leänh cuûa heä ñieàu haønh ñang ñöôïc thöïc thivaø boä ñeám chöông trình cuûa lôùp 1 cho bieát phaàn cöùng thöïc söï maø vi leänh ñöôïc thöïc thi. Trong chöông naøy ñeå ñôn giaûn, heä ñieàu haønh seõ ñöôïc nghieân cöùu nhö moät lôùp ñôn, ñieàu naøy khoâng coù nghóa laø moïi heä ñieàu haønh ñeàu ñöôïc toå chöùc coù moät lôùp. Ngöôïc laïi, moät soá heä ñieàu haønh naâng cao ñöôïc caáu truùc thaønh 1 chuoãi nhieàu lôùp. Ñieàu caàn ñeà caäp laø ña soá caùc heä ñieàu haønh cuûa caùc maùy tính lôùn ñeàu laø caùc heä thoáng ña laäp trình (multiprogramming system), nghóa laø thay vì chæ hoã trôï cho maùy aûo lôùp 3, heä ñieàu haønh hoã trôï cho vaøi maùy aûo lôùp 3 chaïy song song. Neáu moãi maùy aûo ñöôïc noái vôùi moät thieá bò ñaàu cuoái töø xa, ta coù moät heä thoáng chia seû thôøi gian (time-shared system). Neáu khoâng coù caùc thieát bò ñaàu cuoái töø xa, ta coù moät heä thoáng ña laäp trình nhoùm (batch). Vôùi daïng hoãn hôïp, moät soá maùy aûo ñang ñöôïc söû duïng tröïc tuyeán (on line), moät soá maùy khaùc thì khoâng. Phaàn chuû yeáu cuûa heä ñieàu haønh lieân quan ñeán vieäc quaûn lyù taát caû maùy aûo hôn laø phieân dòch caùc leänh OSML. Chuùng ta seõ taäp trung vaøo 3 vaán ñeà quan troïng. Tröôùc tieân laø boä nhôù aûo (virtual memory), moät kyõ thuaät ñöôïc cung caáp bôûi nhieàu heä ñieàu haønh laøm cho maùy coù nhieàu boä nhôù hôn laø maùy thaät söï coù. Thöù 2 laø xuaát/nhaäp taäp tin(file I/O), moät khaùi nieäm ôû möùc cao hôn caùc leänh vaøo/ra maø ta ñaõ nghieân cöùu trong chöông tröùôc. Thöù 3 vaø cuoái cuøng laø xöû lyù song song, caùch maø caùc quaù trình (process) coù theå thöïc thi ñoàng thôøi ôû lôùp 3. Khaùi nieäm quaù trình laø moät khaùi nieäm quan troïng, chuùng ta seõ moâ taû chi tieát sau trong chöông naøy. Moät quaù trình coù theå xem nhö moät chöông trình ñang chaïy vôùi taát caû caùc thoâng tin traïng thaùi cuûa chöông trình (boä nhôù, caùc thanh ghi, boä ñeám chöông trình, traïng thaùi vaøo/ra…). I. BOÄ NHÔÙ AÛO Trong nhöõng ngaøy ñaàu cuûa maùy tính, boä nhôù coù dung löôïng nhoû vaø raát ñaét tieàn. Maùy IBM 650, maùy tính khoa hoïc haøng ñaàu luùc naøy (vaøo nhöõng naêm cuoái thaäp nieân 1950) chæ coù moät boä nhôù 2000 töø. Moät trong nhöõng trình bieân dòch vieát baèng ALGOL 60 ñaàu tieân ñöôïc vieát cho maùy tính chæ coù 1024 töø nhôù. Moät heä thoáng chia seû thôøi gian tröôùc ñaây chaïy raát toát treân PDP-1 vôùi kích thöôùc boä nhôù toång coäng chæ coù 4096 töø 18 bit cho caû heä ñieàu haønh vaø caùc chöông trình cuûa ngöôøi söû duïng. Thôøi ñoù nhöõng ngöôøi laäp trình phaûi toán nhieàu thôøi gian ñeå neùn kích thöôùc caùc chöông trình sao cho ñaët vöøa trong moät boä nhôù nhoû. Thoâng thöôøng hoï duøng moät giaûi thuaät chaïy raát chaäm so vôùi giaûi thuaät khaùc maø giaûi thuaät toát hôn thöôøng seõ raát lôùn nghóa laø chöông trình söû duïng giaûi thuaät toát hôn seõ khoâng ñaët vöøa trong boä nhôù cuûa maùy tính. Giaûi phaùp cho vaán ñeà naøy laø duøng boä nhôù phuï, nhö ñóa chaüng haïn. Ngöôøi laäp trình chia chöông trình thaønh moät soá maûng nhoû goïi laø phaàn phuû laáp (overlay) coù theå ñaët vöøa Nguyeãn Höõu Loäc Khoa Vaät Lyù
  10. -114- Caán Truùc Maùy Tính trong boä nhôù. Ñeå chaïy chöông trình, phaàn phuû ñaàu tieân ñöôïc ñem vaøo boä nhôù vaø chaïy trong moät khoaûng thôøi gian. Khi phaàn phuû ñaõ hoaøn taát, chöông trình ñoïc phaàn phuû keá tieáp vaø goïi phaàn phuû naøy vaø v.v. Ngöôøi laäp trình coù traùch nhieäm taùch chöông trình thaønh caùc phaàn phuû, quyeát ñònh xem moãi phaàn phuû ñöôïc caát ôû ñaâu trong boä nhôù phuï, vaø moät caùch toång quaùt quaûn lyù toaøn boä quaù trình phaàn phuû maø khoâng caàn coù söï giuùp ñôõ naøo töø maùy tính. Maët duø phaàn phuû ñöôïc duøng roäng raõi qua nhieàu naêm nhöng kyõ thuaät naøy keùo theo nhieàu coâng vieäc lieân quan ñeán vieäc quaûn lyù phaàn phuû. Vaøo naêm 1961, moät nhoùm ngöôøi ôû Manchester nöôùc Anh ñaõ deà nghò moät phöông phaùp thöïc hieän töï ñoäng quaù trình che phuû, ngöôøi laäp trình thaäm chí khoâng caàn bieát quaù trình che phuû dang xaûy ra (Fotheringham, 1961). Phöông phaùp naøy, baây giôø goïi laø boä nhôù aûo, roõ raøng coù thuaän lôïi trong vieäc giuùp cho ngöôøi laäp trình thoaùt khoûi nhieàu coâng vieäc keá toaùn phieàn phöùc. Ñaàu tieân phöông phaùp naøy ñöôïc duøng treân moät soá maùy tính trong nhöõng naêm 1960, haàu heát thöôøng gaén lieàn vôùi nhöõng ñeà aùn nghieân cöùu thieát keá heä thoáng maùy tính. Baây giôø thaäm chí caùc boä vi xöû lyù, keå caû 80386 vaø 68030 cuõng nhö caùc boä vi xöû lyù sau naøy ñeàu coù heä thoáng boä nhôù aûo raát phöùc taïp. Phaân trang Nhoùm Manchester ñaõ naûy sinh moät yù töôûng taùch rieâng khaùi nieäm veà khoâng gian ñòa chæ vaø caùc vò trí oâ nhôù (memory location). Thí du ïxeùt moät maùy tính coù moät tröôøng ñòa chæ 16 bit trong caùc leänh cuûa maùy naøy vaø coù 4096 töø nhôù. Moät chöông trình treân maùy tính naøy coù theå ñòa chæ hoaù 65536 töø nhôù vì coù 65536(216) ñòa chæ 16 bit. Soá töø ñòa chæ hoaù ñöôïc chæ tuyø thuoäc vaøo soá bit coù trong moät ñòa chæ vaø khoâng coù lieân quan duø baèng caùch naøo vôùi soá töø nhôù thöïc söï söû duïng ñöôïc. Khoâng gian ñòa chæ (address space) cuûa maùy tính naøy bao goàm caùc soá 0, 1, 2…, 65535 bôûi vì ñoù laø taäp caùc ñòa chæ coù theå coù. Tröôùc khi phaùt minh ra boä aûo, ngöôøi ta ñaõ coù söï phaân bieät giöõa caùc ñòa chæ döôùi 4096 vaø caùc ñòa chæ baèng hoaëc treân 4096. Maëc duø tröôùc khi ñöôïc phaùt bieåu thaúng nhöng 2 phaàn ñòa chæ ñöôïc xem nhö khoâng gian ñòa chæ coù ích ( caùc ñòa chæ treân 4096 khoâng ñöôïc duøng bôûi vì chuùng khoâng töông öùng vôùi caùc ñòa chæ cuûa boä nhôù thöïc). Ngöôøi ta khoâng coù söï phaân bieät nhieàu giöõa khoâng gian ñòa chæ vaø caùc ñòa chæ cuûa boä nhôù thöïc bôûi vì phaàn cöùng baét buoäc phaûi coù söï töông öùng moät-moät giöõa chuùng vôùi nhau. YÙ töôûng taùch rieâng khoâng gian ñòa chæ vaø caùc ñòa chæ boä nhôù nhö sau. Baát cöù luùc naøo, 4096 töø cuûa boä nhôù ñeàu coù theå ñöôïc truy xuaát tröïc tieáp nhöng chuùng khoâng caàn töông öùng vôùi caùc ñòa chæ töø 0 tôùi 4096. Thí duï ta coù theå “baûo” maùy tính raèng töø baây giôø trôû ñi moãi khi ñòa chæ 4096 ñöôïc tham chieáu, töø nhôù 0 ñöôïc söû duïng; moãi khi ñòa chæ 4097 ñöôïc tham chieáu, töø nhôù 1 ñöôïc söû duïng; moãi khi ñòa chæ 8191 ñöôïc tham chieáu, töø nhôù 4095 ñöôïc söû duïng vaø v.v … noùi caùch khaùc ta ñaõ ñònh nghóa moät aùnh xaï töø khoâng gian ñòa chæ leân caùc ñòa chæ boä nhôù thöïc, nhö trình baøy trong hình 6.1. Nguyeãn Höõu Loäc Khoa Vaät Lyù
  11. -115- Caán Truùc Maùy Tính Hình 6.1: AÙnh xaï trong ñoù caùc ñòa chæ töø 4096 tôùi 8191 ñöôïc aùnh xaï leân caùc ñòa chæ boä nhôù chính töø 0 tôùi 4095 Baèng hình veõ naøy, hình veõ aùnh xaï caùc ñòa chæ töø khoâng gian ñòa chæ leân caùc vò trí boä nhôù thöïc, moät maùy 4K thöôøng chæ coù moät aùnh xaï coá ñònh giöõa caùc ñòa chæ töø 0 tôùi 4095 vaø 4096 töø cuûa boä nhôù, khoâng coù boä nhôù aûo. Moät caâu hoûi thuù vò laø: ñieàu gì seõ xaûy ra neáu tröông trình nhaûy tôùi moät ñòa chæ naèm trong khoaûng 8192 vaø 12297? treân maùy khoâng coù boä nhôù aûo, chöông trình seõ gaây ra moät baãy loãi ( error trap) in ra moät thoâng baùo thích hôïp nhö “boä nhôù ñöôïc tham chieáu khoâng hieän höõu“ (non-existent memory referenced) vaø keát thuùc chöông trình. Treân maùy coù boä nhôù aûo, chuoãi caùc böôùc sau seõ xaûy ra: 1. Noäi dung caùc boä nhôù chính seõ ñöôïc caát vaøo boä nhôù phuï 2. Caùc töø nhôù töø 8192 tôùi 12287 ñöôïc ñaët vaøo boä nhôù phuï 3. Caùc töø nhôù töø 8192 tôùi 12287 ñöôïc naïp vaøo boä nhôù chính 4. Baûn ñoà ñòa chæ ñöôïc thay ñoåi ñeå aùnh xaï caùc ñòa chæ töø 8192 tôùi 12287 leân caùc vò trí töø 0 tôùi 4095 5. Vieäc thöïc hieän tieáp tuïc nhö theå khoâng coù gì baát thöøông ñaõ xaûy ra Kyõ thuaät che phuû töï ñoäng naøy ñöôïc goïi laø söï phaân trang (paping) vaø nhöõng ñoaïn (chunk) cuûa chöông trình ñöôïc ñoïc vaøo töø boä nhôù phuï ñöôïc goïi laø caùc trang (page) Cuõng coù moät phöông phaùp phöùc taïp hôn ñeå aùnh xaï caùc ñòa chæ töø khoâng gian ñòa chæ leân caùc ñòa chæ boä nhôù thöïc. Ñeå nhaán maïnh, ta seõ goïi caùc ñòa chæ maø chöông trình coù theå tham chieáu tôùi laø khoâng gian ñòa chæ aûo (virtual address space) vaø caùc ñòa chæ boä nhôù ñöôïc noái daây (boä nhôù thöïc ) laø khoâng gian ñòa chæ vaät lyù ( physical address space). Baûn ñoà boä nhôù (memory map) lieân keát caùc ñòa chæ aûo vôùi caùc ñòa chæ vaät lyù. Chuùng ta cuõng giaû thuyeát raèng boä nhôù phuï coù ñuû choã ñeå caát toaøn boä chöông trình vaø döõ lieäu cuûa chöông trình. Caùc chöông trình ñöôïc vieát nhö coù theå coù ñuû boä nhôù chính cho toaøn boä khoâng gian boä nhôù aûo, cho duø khoâng ñuùng nhö theá. Caùc chöông trình coù theå naïp töø hoaëc caát vaøo baát kyø töø nhôù naøo trong khoâng gian ñòa chæ aûo maø khoâng quan taâm ñeán thöïc teá laø thaät ra khoâng coù ñuû boä nhôù vaät lyù. Nhöõng ngöôøi laäp trình coù theå vieát caùc chöông trình maø thaäm chí hoï khoâng caàn bieát ñeán söï toàn taïi cuûa boä nhôù aûo. Maùy tính döôøng nhö coù moät boä nhôù dung löôïng lôùn. Nguyeãn Höõu Loäc Khoa Vaät Lyù
  12. -116- Caán Truùc Maùy Tính Ñieåm naøy laø vaán ñeà chuû yeáu vaø seõ ñöôïc ñoái chieáu sau naøy vôùi söï phaân ñoaïn (segmentation), trong ñoù ngöôøi laäp trình phaûi bieát ñeán söï toàn taïi ccuûa caùc segment. Nhaán maïnh laïi moät laàn nöõa, söï phaân trang cung caáp cho ngöôøi laäp trình aûo töôûng veà moät boä nhôù chính lôùn tuyeán tính vaø lieân tuïc coù kích thöôùc baèng vôùi kích thöôùc cuûa khoâng gian ñòa chæ trong khi boä nhôù chính söû duïng ñöôïc coù theå nhoû hôn (hoaëc lôùn hôn) khoâng gian ñòa chæ. Vieäc moâ phoûng boä nhôù chính lôùn naøy baèng caùch phaân trang khoâng bò chöông trình phaùt hieän (tröø phi bò phaùt hieän khi ñang chaïy caùc chöông trình kieåm tra ñònh thì); moãi khi moät ñòa chæ ñöôïc tham chieáu, leänh hoaëc töø döõ lieäu thích hôïp seõ xuaát hieän. Bôûi vì ngöôøi laäp trình coù theå laäp trình nhö theå söï phaân trang khoâng toàn taïi, neân cô cheá phaân trang ñöôïc goïi laø trong suoát (transparent). Söï phaân trang (paging) vaø söï phaân ñoaïn (segmentation) ñöôïc so saùnh nhö trong hình 6.2 Söï xem xeùt Phaân trang Phaân ñoaïn Ngöôøi laäp trình coù caàn bieát kyõ thuaät naøy Khoâng Coù ñang ñöôïc söû duïng khoâng ? Coù bao nhieâu khoâng gian ñòa chæ tuyeán 1 Nhieàu tính? Khoâng gian ñòa chæ toång coäng coù theå Coù Coù vöôït quaù kích thöôùc boä nhôù vaät lyù khoâng? Caùc thuû tuïc vaø döõ lieäu coù theå ñöôïc phaân Khoâng Coù bieät vaø ñöôïc baûo veä rieâng reõ khoâng ? Caùc baûng maø kích thöôùc cuûa chuùng dao Khoâng Coù ñoäng coù theå ñöôïc ñieàu tieát deã daøng khoâng ? Vieäc duøng chung caùc thuû tuïc cuûa nhöõng Khoâng Coù ngöôøi söû duïng coù ñöôïc thuaän lôïi khoâng ? Söï xem xeùt Phaân trang Phaân ñoaïn Taïi sao kyõ thuaät naøy ñöôïc phaùt minh ? Ñeå coù moät khoâng gian Ñeå cho pheùp ñòa chæ tuyeán tính lôùn maø caùc chöông khoâng caàn phaûi mua trình vaø döõ lieäu nhieàu boä nhôù vaät lyù ñöôïc chia ra thaønh nhieàu khoâng gian ñòa chæ logic ñoäc laäp vaø ñeå cung caáp khaû naêng duøng chung vaø Nguyeãn Höõu Loäc Khoa Vaät Lyù
  13. -117- Caán Truùc Maùy Tính baûo veä Hình 6.2 So saùnh phaân trang vaø phaân ñoaïn YÙù töôûng maø ngöôøi laäp trình coù theå söû duïng moät ñaëc tính naøo ñoù khoâng toàn taïi vaø khoâng quan taâm ñeán caùch laøm vieäc cuûa ñaëc tính naøy khoâng phaûi laø môùi ñoái vôùi chuùng ta. Taäp leänh cuûa maùy lôùp 2 khoâng toàn taïi trong yù nghóa khoâng coù leänh naøo hoaøn toaøn laø leänh phaàn cöùng, nhöng taát caû chuùng thöïc teá ñeàu ñöôïc thöïc hieän bôûi phaàn meàn ôû lôùp 1. Töông töï, ngöôøi laäp trình ôû lôùp 3 coù theå duøng boä nhôù aûo maø khoâng phaûi lo laéng gì veà caùch boä nhôù naøy laøm vieäc. Chæ coù nhöõng ngöôøi vieát heä ñieàu haønh caàn phaûi bieát boä nhôù aûo laøm vieäc nhö theá naøo. II. CAÙC LEÄNH VAØO/RA AÛO Thoâng thöôøng taäp leänh cuûa lôùp 2 hoaøn toaøn khaùc vôùi taäp leänh cuûa lôùp 1. Caùc thao taùc maø caû hai coù theå ñöôïc thöïc hieän vaø caùc khuoân daïng cuûa caùc leänh cuûa caû hai raát khaùc nhau. Söï hieän dieän cuûa vaøi leänh gioáng nhau treân caû 2 lôùp chæ laø tình côø. Taäp caùc leänh cuûa lôùp 3 traùi laïi chöùa haàu heát caùc leänh cuûa lôùp 2 coäng theâm vaøi leänh môùi nhöng quan troïng vaø vaøi leänh gaây toån haïi ñöôïc loaïi boû. Vaøo/ra laø moät trong nhieàu phaïm vi trong ñoù caùc maùy lôùp 2 vaø lôùp 3 khaùc nhau. Lyù do cuûa söï khaùc nhau naøy ñôn giaûn laø: nhöõng ngöôøi söû duïng coù theå thöïc thi caùc leänh lôùp 2 thaät söï, coù theå ñoïc caùc döõ lieäu rieâng chöùa trong heä thoáng, ghi caùc thieát bò ñaàu cuoái cuûa nhöõng ngöôøi söû duïng khaùc vaø moät caùch toång quaùt coù theå taïo ra noãi phieàn toaùi lôùn cho chính hoï cuõng hö ñe doïa söï an toaøn cuûa heä thoáng. Lyù do thöù hai, nhöõng ngöôøi laäp trình bình thöôøng vaø ñuùng möïc khoâng muoán töï vieát caùc chöông trình vaøo/ra rieâng cho hoï. Tieâu bieåu laø caùc thanh ghi thieát bò ñoái vôùi ñóa ñieån hình coù caùc bit ñeå phaùt hieän caùc loãi. Khi moät trong caùc loãi xuaát hieän, bit töông öùng trong moät thanh ghi thieát bò ñöôïc thieát laäp. Vaøi ngöôøi söû duïng muoán ñöôïc lo laéng theo doõi taát caû caùc bit loãi naøy vaø caùc thoâng tin traïng thaùi khaùc. 1. Caùc taäp tin tuaàn töï Moät phöông phaùp toå chöùc vaøo/ra aûo laø töôûng töôïng döõ lieäu ñöôïc ñoïc hoaëc ghi nhö laø moät chuoãi caùc baûn ghi logic (logical record), trong ñoù moät baûn ghi logic laø moät ñôn vò naøo ñoù cuûa thoâng tin coù nghóa ñoái vôùi ngöôøi laäp trình. Trong tröôøng hôïp ñôn giaûn nhaát, moät baûn ghi logic coù theå laø moät ma traän 10x10. Vôùi moät öùng duïng khaùc baûn ghi coù theå laø moät caáu truùc döõ lieäu bao goàm 5 thaønh phaàn: hai chuoãi kyù töï “teân” vaø “ngöôøi giaùm saùt”; hai soá nguyeân “phoøng” vaø “cô quan”; moät chuoãi 1-bit “phaùi”. Moät chuoãi caùc baûn ghi logic ñöôïc goïi laø moät taäp tin. Caùc baûn ghi trong moät taäp tin khoâng caàn coù cuøng chieàu daøi, trong tröôøng hôïp naøy chuùng ñöôïc goïi laø caùc baûn ghi chieàu daøi thay ñoåi. Leänh vaøo aûo cô baûn ñoïc baûn ghi keá töø 1 taäp tin ñaõ ñöôïc xaùc ñònh vaø ñaët baûn ghi naøy trong caùc oâ nhôùâ lieân tieáp trong boä nhôù chính ôû moät ñòa chæ ñaõ ñöôïc xaùc. Ñeå thöïc Nguyeãn Höõu Loäc Khoa Vaät Lyù
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2