Vào/ra số liệu không điều kiện

Một phần của tài liệu kiến trúc máy tính giới thiệu chung về máy tính điện tử (Trang 57 - 151)

1. Nguyên lý cấu trúc của một mạch DRAM

4.1.1.Vào/ra số liệu không điều kiện

Văo/rasốliệukhôngđiềukiệncócâcđặcđiểmnhư: -CPUchuyểnsốliệuthôngquachươngtrình

-CPUgiảthiếtTBvăo/raluônsẵnsăngchuyểnsốliệu

- Việc chuyểnsố liệu được thực hiện giữacâc thanh ghi của CPU(ACC) vă thanhghi(cổng)củaTBvăo/ra

a.Văosốliệu(hình4.3)

Trong thiếtbịvăo/racóthanhghisốliệusốliệukýhiệuDATA.R.

573

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

Câcbước thựchiện:

-CPUđưaraBUSđ/cđịachỉcủathanhghiDATA.R -CPUđưaraBUSđ/ktínhiệuIORD

- Số liệu từ DATA.R được đưa văo BUS số liệu vă dưới tâc động của tín hiệu IORDvăđượcđưavăoACCcủaCPU

b.Rasốliệu(hình4.4)

-CPUđưađịachỉcủaTBvăo/raraBUSđ/c -CPUđưasốliệucầnghiraBUSs/l

-CPUđưatínhiệuIOWRraBUSđ/k

- Dướitâc độngcủa tínhiệuIOWR sốliệuđược ghivăo thanh ghiDATA.R của thiếtbịra.

Cơ chế năy có hạn chế vì CPU ra lệnh đọc (IORD) hay ghi (IOWR) mă không kiểmtraxemthiếtbịvăo/racósẵnsănggửihaynhậnsốliệuhaychưa.

Trong hầu hết câc mây tính việcchuyển số liệu được thể hiện qua lệnh văo ra riíng:

IN XXX

địachỉthiếtbịvăo OUT XXX

địachỉTBra

4.1.2. Văo/rasốliệuđốithoại

Trong thiết bị văo/ra ngoăi thanh ghi số liệu còn có thanh ghi trạng thâi (Status.R) đểthôngbâo TBvăo/rađêsẵnsăngchuyểnsốliệuchưa.

583

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

a.Văo sốliệuđốithoại(hình4.5)

-CPUđưađịachỉcủathanhghi trạngthâiSTATUS.RraBUSđ/c -CPUđưatínhiệuđọcIORDraBUSđ/k

-NộidungcủaSTATUS.R chuyểntớiBUSs/lvăđược đưavăoACCcủaCPU -CPU phđn tích xemthiết bịvăo/ra đê sẵn săngchưa. Nếu sẵn săngthì CPU ra lệnhđọcsốliệu,nếuchưathì quayvềchờ.

593

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

b.Rasốliệuđốithoại(hình4.6)

Câcbước thựchiện:

-CPUđưaIORDraBUSđ/k (adsbygoogle = window.adsbygoogle || []).push({});

-NộidungcủathanhghiSTATUS.RđưavăoBUSs/lvăđược đưavăoACCcủa CPU

-CPUphđntíchnộidungcủaACC,cóhaitrườnghợpxảyra: .NếuTBvăo/rasẵnsăng,CPUđưasốliệuraTBvăo/ra

.NếuTBvăo/rachưasẵnsăngCPUquayvềđọcthanhghitrạngthâi.

Trong phương phâp văo/ra có đối thoại, nếu thiết bị văo/ra chưa sẵn săng nhậnhaygửisốliệuthì CPUphảichờ. Nóicâckhâcphương phâpnăygđylêng phí thờigiancủa CPU.Để giảm bớt thờigian chờ,CPU cóthể dùng phương phâphỏi vòngcâcTBvăo/ra

c.Văo/rasốliệuđốithoạibằngphương phâphỏivòng(hình4.7)

Vídụ:CPUquảnlý8TBvăo/raTB0...TB7

Phương phâp năy có ưu điểm lă giảm bớt thời gian chờ của CPU nhưng việc đâp ứng yíu cầu chuyển số liệu của câc thiết bị lă không đều nhau, không có

603

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

khả năng đâp ứng yíu cầu tức thờicủa thiết bị. Nhược điểm năy có thể được khắc phụcbằngphươngphâpvăo/radothiếtbịvăo/rachủđộng.

4.2.Phương phâpvăo/rasốliệudothiết bịvăo/rachủđộng

4.2.1.Nguyínvăo/rabằngngắt (hình4.8 hình 4.9)

Nhữnghạn chế của phương phâp văo/ra bằng chương trình được khắc phục bằng phương phâp văo/ra bằng ngắt. Trong phương phâp năy TB văo/ra chủ động khởiđộngquâtrìnhvăo/rasốliệu.

Quâtrìnhthựchiệnngắt:

613

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

-CPUhoạtđộngbìnhthường

- Khi TB văo/ra sẵn săng chuyển số liệu sẽ gửi yíu ngắt tới CPU bằng tín hiệuINTR(InterruptRequest)

-CPUthựchiệnnốtlệnhđangthựchiệntrướckhitrảlời

- Xâc định ngắt vă trả lời thiết bị văo/ra bằng tín hiệu INTA (Interrupt Acknowledgement)

-ĐẩyPSW(ProgramStateWord)văPC(ProgramCounter)văongănxếp TBvăo/ra thôngqua bộđiều khiểnngắt chobiết địachỉ củachương trình conphục vụngắt. CPUnạpđịachỉnăyvăoPC.

- CPU nhảy đến chương trình con phục vụ ngắt (Interrupt Service Routine) ISR

- Chương trình ISR sẽ đẩy câc thanh sẽ bị thay đổi trong chương trình con văongănxếp.

- Chương trình ISR sẽ thực hiện việc chuyển số liệu giữa TB văo/ra vă bộ nhớquaCPU(ACC).

-Saukhichuyểnsốliệuxong,CPUkhôiphụccâcthanhghi

tiếpnhiệmvụtrướckhicóngắt.

(VẽkiểukhâcvớiInterruptControlerI-8259!)

623

Bằng phươngphâpngắt thiếtbịvăorađược phụcvụtheo yíucầucủachúng nín thường sử dụng trongcâc ứng dụng thờigian thựcđòi hỏi thờigian khởi động phụcvụngắn.

Vídụ: (adsbygoogle = window.adsbygoogle || []).push({});

Hệthốngbâođộng(từđầucảmbiếnđiềukhiểnlòhơikhinhiệtđộvượtngưỡng) Đồnghồthờigianthực

Bâolỗiphầncứng Bâomấtnguồnnuôi Bâolỗitrongtruyềntin

Mộtsốkhâiniệmkhâc

- Ưu tiín:Trong cùng một thời điểm có thể có nhiều yíu cầu ngắt nín mây tính (CPU) phải có phương phâp để lập thứ tự phục vụ ngắt đảm bảo cho việc văo/rasố liệucủatoănhệkhôngbịxâotrộn.Thôngthường mỗithiệtbịvăo/rađược

633

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

gắn một mức ưu tiín. Tuỳ theo mức ưu tiín mă CPU xâc định thứ tự phục vụ cho câcthiếtbịvăo/ra.

- NMI(Non Maskable Interrupt)lă yíucầu ngắttức thời,không cấm văcho phĩpđượcbằngphầnmềmđược.

- Ngắt mềm dùng lệnh (INT) để gọi câc chương trình phục vụ ngắt của hệ thống.

4.2.2. Nguyínthđmnhậpbộnhớtrựctiếp(DMA: DirectMemoryAccess)

Trong câcphương phâpvăo/ratrìnhbăytríncócâcnhượcđiểmsau:

-Văo/rabằngchươngtrìnhphảichuyểnsốliệugiữathiếtbịvăo/ravăbộnhớ thôngquaACC(hình4.10)

Sử dụngphươngphâpvăo/rađiềukhiểnbằngchươngtrìnhtathấy: -Việcvăo/rasốliệuđềuquaACCcủaCPU

-MuốnđọcsốliệutừTBvăo/ravăobộnhớphảiqua2bước

(DATA.R)

→ACC

(ACC)

→MEM

-MuốnđưanộidungcủaônhớtớiTBvăo/racũngphảiqua2bước

(MEM)

(ACC)

→DATA.RcủaTBvăo/ra

Như vậy việc chuyển số liệu giữa thiết bị ngoại vi vă bộ nhớ cần hai bước, tốcđộchậm.

Phươngphâp văo/rabằngngắtbảođảm thiếtbịvăo/rađượcphụcvụgầnnhư tức thời (trong thời gian ngắn). Nhưng trong chương trình con phục vụ ngắt, quâ trìnhchuyểnsốliệuđượcthựchiệnbằngchươngtrìnhníntốcđộchậm.

643

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

Phương phâp văo/ra thđm nhập bộ nhớ trực tiếp DMA (Direct Memory

Access) (hình 4.11) khắc phục câc nhược điểm trín. Phương phâp năy chuyển số liệuvớibộnhớ khôngquaACCcủaCPU

Chương trìnhcon đểchuyển sốliệu giữaTBvăo/ra văbộnhớ được thay đổi bằng đơn vị điều khiển đặc biệt bằng phần cứng DMAC (Direct Memory Access Controller).

QuâtrìnhthựchiệnDMA: (adsbygoogle = window.adsbygoogle || []).push({});

653

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

CPUlămviệcbìnhthường

Khithiếtbịngoạivimuốnchuyểnsốliệutrựctiếpvớibộnhớ thìgửiyíucầu tớiDMACquatínhiệuDRQ(DMAReqest)

BộđiềukhiểnDMACchuyểnyíucầunăytớiCPUquatínhiệuHOLD CPU thực hiện nốt chu kỳ mây đang thực hiện, treo BUS vă trả lời DMAC

bằngtínhiệuHLDA.

DMACtrảlờithiếtbịvăo/rabằngtínhiệuDACK,lămchủBUSsinhra -BUSđ/c(Câctínhiệuđịachỉ)

-Câctínhiệuđiềukhiển

-ĐiềukhiểnchuyểnsốliệugiữabộnhớvăTBvăo/ra Sốliệuchuyểngiữabộnhớvăthiếtbịvăo/rathường lăcảmộtkhối.

Khi chuyển xong số liệu DMAC đưa tín hiệu TC (Terminal Count) thănh tíchcựcđểbâomộtquâtrìnhDMAkếtthúc

Có thể minh họa hoạt động của phương phâp văo/ra số liệu bằng DMAnhư

663

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST 4.3.Địachỉthiếtbị văo/ra

Bộ nhớ lă tập hợp câc thanh ghi, quâ trình chuyển số liệu giữa CPU vă bộ nhớ thựcchấtlăquâtrìnhchuyểnsố liệugiữacâcthanhghiACC củaCPUvăcâcô nhớ.

Trong câc thiết bị văo/ra đều có thanh ghi số liệu, việc chuyển số liệu giữa CPUvăTBvăo/rathựcchấtcũnglăchuyểnsốliệugiữacâcthanhghi.

Trong nhiềuhệmâytínhcókhảnăngcó +địachỉriíngchoTBvăo/ravă +địachỉriíngchobộnhớ

Câchệthốngnhưvậygọilăhệthốngcóvăo/ratâchbiệt. Câchệthốngnăythườngcólệnhvăo/rariíng.

IN XXX

địachỉthiếtbịvăo OUT XXX

địachỉTBra

Trong một số trường hợp (đặc biệt lă câc hệ vi xử lý họ MOTOROLA) không có không gian địa chỉriíng cho TB văo/ramă phải dùng không gianđịa chỉ

củabộnhớthaychokhônggianđịachỉTBvăo/ra.

Trong câc hệ thống năy một số ô nhớ đặc biệt không dùng như ô nhớ mă dùng như câc thanh ghi cho TB văo/ra. Câc ô nhớ năy còn gọi lă câc ô nhớ giả (Pseudo). Quâtrình chuyểnsố liệu giữaCPU văTB văo/ra được thựchiện nhờ câc lệnhchuyểnsốliệugiữaCPUvăbộnhớ.

673

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST CHƯƠNG V

CẤUTRÚC CỦAĐƠNVỊ XỬLÝTRUNGTĐM

5.1.HọVi xửlý Intel80x86

Với sự tiến bộ của công nghệ vi điện tử, toăn bộ CPU được cấy bín trong một mạch vi điện tử. Mạch vi điện tử như vậy còn gọi lă Microprocessor (MPU), (MP). Họ vi xử lý Intel 80x86 được sử dụng để xđy dựng dòng mây tính câ nhđn IBM-PC (Personal Computer), được sử dụng rộng rêi nhất hiện nay. Bảng sau đđy sẽgiớithiệuquâtrìnhphâttriểnvătínhnăngcơbảncủahọvixửlýIntel80x86.

PC/AT Compatibility

→ Pentiu m → Pro Pentiu m → II Pentiu m → 4 Addr-BUS 20 24 32 32 32 36 36 36 VIRTUAL SIZE 1 MEG 16 MEG* 4 GIG* 4 GIG* 4GIG* 64 GIG* 64 GIG* 64 GIG* MEMSIZE NA 1GIG 64 TERA 64 TERA 64 TERA 64 TERA 64 TERA 64 TERA D-BUS REGSIZE 8 16 32 32 64 64 64 64 16 16 32 32 32 32 32 32 4 4 6 6 6 6 6 6 #SEG.REG S 8087 80287 80387 On Chip On Chip On Chip On Chip On Chip MATH 4.77,8 8,12 16,25, 33 33,50 50,60, 66 60,66 66,100 100/40 0* BUSSPEE D (MHz) PAGING (adsbygoogle = window.adsbygoogle || []).push({});

NO NO YES YES YES YES YES YES NO NO NO YES YES #YES #YES #YES

ONCHIP CACHE

5.2. Giới thiệuvềBộvi xửlý80x86

683

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

Chúng tabắtđầu bằngviệctìmhiểu tínhnăngvăkiển trúcbộvixửlý16-bit 80286đểdễdăngtiếntớilămchủcâcbộvixửlý32-bitphứctạphơn nhưPentium.

5.2.1. Tínhnăngbảncủabộvixử80286

Bộvixửlý80286lămộtbộvixửlýthuộchọvixửlý80x86.Họ80x86gồm câcbộvixửlý8086, 8088,8018680286vă80386, 80486văPentium.

MộtsốđặctínhkỹthuậtchínhcủaMP80286lă:

Tầnsốcủađồnghồthờigian:10MHz,8MHz,16MHz,20MHz.

Khảnăngđịachỉhóa:16megabyte(MB)nhớvậtlý,1gigabyte(GB)nhớảo. Haichếđộhoạtđộng:Chếđộđịachỉthực,chếđộđịachỉảohaychếđộbảovệ. Cóđơn vịquảnlýbộnhớbíntrongbộvixửlý.

Cóbốnmứcbảovệbộnhớ.

Cókhảnăngđốithoạivớicâcbộđồngxửlý.

Trong chế độ địa chỉ thực, MP 80286 có mê lệnh tương thích với MP 8086 vă8088, nhưngquâtrìnhthựchiệnnhanhhơn.

Khả năng địa chỉ hóa bộ nhớ vật lý lớn nhất lă 16 MB vì có 24 bit địa chỉ. Trong chế độ thực, chỉ sử dụng câc đường địa chỉA0-A19 vă như vậy địa chỉ hóa

được mộtmegabyte.

5.2.2. đồkhốichứcnăngcủabộvi xử (Hình5.1)

BộvixửlýMPđượcxđydựngtừ4đơnvịcóthểlămviệcsongsong.

a. Đơnvị busBU(BusUnit)

693

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

BUthựchiệncâcchứcnăngchínhsau:

Sinhracâctínhiệu địachỉ,sốliệuvăđiềukhiển đểthđmnhậpvăobộnhớhaythiết bịvăo/ra.

ThiếtlậpquanhệvớibộđồngxửlýEPhaycâcbộxửlýkhâcđanglămchủBUS. Cho phĩpquâ trìnhnhập lệnh songsong vớicâcquâ trìnhkhâc vìcó hăngđợi lệnh

6byte.Vìvậyloạitrừđượcthờigianchếttrongkhitìmlệnhtrongbộnhớ.

b.ĐơnvịlệnhIU(InstructionUnit)

IUthựchiệncâcchứcnăngchínhsau: Nhậnlệnhtừbộnhớvăohăngđợilệnh.

Giảimêlệnhthănhcontrỏtớivichươngtrìnhthựchiệnlệnh.

Quâtrìnhđọclệnhđược thựchiệnkhikhôngcóđơn vịkhâcyíucầusửdụngBUS. Quâ trình nhận lệnh vă giải mê lệnh được thực hiện song song với quâ trình thực

hiệncâclệnhtrướcđó. (adsbygoogle = window.adsbygoogle || []).push({});

c. ĐơnvịthựchiệnlệnhEU(ExecutionUnit)

Cộng, trừ(8,16bit).

Nhđn, chiabằngphầncứng.

Câcphĩptínhxửlýbit,dịchchuyển, quayvòngởcâcthanhghivẵnhớ. Vềphươngkiếntrúc,tậpthanhghiđanăngđêtươngđốiphongphú.

d.ĐơnvịđịachỉAU(AddressUnit)

Baogồmcâcthanhghimảng(CS.DS, SS,ES) văbộchuyểnđổiđịachỉ. Trong họ vi xử lý 80x86, bộ nhớ được tổ chức theo mảng. Địa chỉ ô nhớ gồm hai thănh phần: địa chỉ mảng vă địa chỉ offset. Địa chỉ mảng cho biết mảng nhớ năo trong bộ nhớ, địa chỉ offsetcho biết ô nhớ cụ thể trong bộ nhớ. Cặp địa chỉ mảng: địachỉ offsetcòn gọilăđịachỉlogic. Từđịachỉ logicsẽđược tínhthănhđịachỉvật lýđểtruynhậpbộnhớvậtlý.

5.3. Câc thanhghicủa 80x86

MP80286gồm15thanhghi16bit,chialăm3nhóm:

Thanhghiđanăng(hình5.2a)

Câc thanh ghi năy chứa câc toân hạng của câc phĩp tính số học hay logic. Bốn thanhghi16bitAX, BX, CX,DX cóthểsửdụngnhưtâm thanhghi8bit. Bốn thanh ghi chứa byte thấp (AL, BL, CL, DL) vă bốn thanhghi chứa byte cao (AH, BH, CH,DH).

703

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

Ngoăichứcnăngchung,câcthanhghitríncòncócâcchứcnăngngầmđịnh: -AXgiữvaitrònhưthanhghiACCcủacâcmâytínhtổngquât.

-AXvăDXdùngtrongcâclệnhnhđn,chiavăvăo/ra.

- CX giữ chức năng thanh đếm, dùng cho tất cả câc lệnh quay vòng, lệnh dịch chuyểnvăcâclệnhlặp.

- BX vă BP lă những thanh ghi cơ sở, chứa địa chỉ cơ sở trong phĩp tính địa offset.

- SIvă DIgọilă nhữngthanhghichỉ số,chứađịa chỉofsset cóthểtăngdần khi thđmnhậpvăomộtcấutrúcdữliệu.

- SPlăcon trỏngănxếp,chứađịa chỉoffsetcủađỉnh ngănxếp. BPcòngọi con trỏ cơ sở, được dùng ngầm địnhđể truy nhập văongăn xếp. BPcũng tham gia đểtínhđịachỉoffsettrongcâcphĩptínhđịachỉtronglệnh.

Câcthanhghimảng(segment)(hình5.2b)

713

KiếntrúcMâytính NVTam,HTCước.IOIT,VAST

Câc chương trình thường được cấu tạo từ nhiều modul lệnh vă số liệu. MP 80286chophĩpmộtchươngtrìnhđangthựchiệncóthểthđmnhậptứcthờiđếnbốn mảng nhớ. Bốn thanh ghi mảng nhận biết bốn mảng nhớđang sử dụng.Câc thanh

Một phần của tài liệu kiến trúc máy tính giới thiệu chung về máy tính điện tử (Trang 57 - 151)