1. Nguyên lý cấu trúc của một mạch DRAM
5.3. Các thanh ghi
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 ghimảngđólà:
CS:thanhghimảnglệnh DS:thanhghimảngsốliệu SSthanhghimảngngănxếp ESthanhghimảngsốliệuphụ.
Nội dung của thanh ghi mảng gọi làbộ chọn mảng nên có nhiều khi còn gọi thanh ghimảnglàthanhghichọnmảng.
c. Cácthanhghiđiềukhiểnvàtrạngthái
Cácthanhghinàygồm: Thanhghicờ FR(FlagRegister) ContrỏlệnhIP(InstructionPointer)
ThanhghitrạngtháimáyMSW(MachineStatusWord)
Con trỏlệnh IP
Con trỏ lệnh luônchứa địa chỉtương đối (so với đầu của mảng nhớđang sử dụng) của lệnh sẽ thực hiện tiếp theo. Như vậy con trỏ lệnh cùng với thanh ghi mảng lệnh (CS: IP) định nghĩa địa chỉ logic của lệnh tiếp theo, có chức năng như thanhđếmchươngtrình(PC)trongmáytínhtổngquát.
723
KiếntrúcMáytính NVTam,HTCước.IOIT,VAST
Con trỏ lệnh được điều khiển bởi cơ chế ngắt, bẫy và các phép chuyển điều khiển.
ThanhghicờFR
ThanhghicờFRcó16bitđượcbiểudiễntrênhình5.3:
CF(CarryFlag),cờ nhớ.
CF=1 chỉrằngcóhiện tượngnhớ từbitcaonhấtcủa mộtphéptoán8bit hay 16 bit,sau khithựchiện cáclệnh sốhọc. Tấtcảcác lệnhdịch chuyểnvàquay vòng đềuảnhhưởngđếncờCF.
PF(ParityFlag),cờ kiểmtrachẵnlẻ.
PF=1,nếu8bitthấpcủakếtquảcósốcácchữsố1làchẵn, ngượclạiPF=0. AF(auxiliarycarryFlag),cờnhớ phụ.
AF được sử dụng trong các phép tính số học với mã BCD (Binary Coded Decimal). Nó chobiết có nhớtừ số BCD thấpsang sốBCD caohay bitsố liệu D3 sangbitD4trongthanhghiAL.
ZF=1,khikếtquảphéptínhbằng0. SF(SignFlag),cờ dấu.
SF cho biết kết quả phép tính là dương hay âm, nếu âm, SF=1 ngược lại, SF=0
OF(OverflowFlag),cờ tràn.
OFdùngtrongphéptínhsốhọccódấu,nóchỉrằngkếtquảtrànsangbitdấu. - TF (TrapFlag), cờTF chỉchếđộchạytừnglệnh. Nếucờ TF=1,MP80286ở chếđộchạytừngbướcđểgiúpchoviệchiệuchỉnhchương trìnhđượcthuậnlợi.
Mỗi lệnh gây ra một ngắt đểMP 80286 nhảy vàochương trình conphục vụ hiệuchỉnhchươngtrình.
Cờ TFchỉcó thểthayđổi thôngquangăn xếp:cấtthanh ghicờ RFvàongăn xếp,thiếtlậpbitTFtrongngănxếpvàđưatrởlạithanhghicờ.
Trước khi nhảy vào chương trình con phục vụ hiệu chỉnh, thanh ghi cờ FR đượctựđộnglưugiữ.TrongchươngtrìnhconnàybitTFđượcxoá,đểkhithựchiện các lệnh của chương trình con không xẩy ra chế độchạy từng bước. Khi trở về từ chương trìnhcon phụcvụhiệu chỉnh,thanh ghicờ đượcphục hồivàbitTFvẫn giữ giátrịcũ.(TF=1).
- IF(InterruptenableFlag),cờchophépngắt.NếucờIF=1chophépghinhận ngắtởchânINTRcủabộvixửlý.
733
KiếntrúcMáytính NVTam,HTCước.IOIT,VAST
Bit IF được thiết lập bằng lệnh STI và được xóa bằng lệnh CLI hoặc thông quangănxếp.
- DF(DirectionFlag),bithướng.
DFchobiếthướngtiếntriểntrongmộtchuỗisốliệu.
Nếu DF=1, nội dung của thanh ghi SI hoặc DI hay cảhai thanh SI và DI sẽ tự động giảm đi 1. Nếu DF=0, nội dung của các thanh ghi này sẽ tự động tăng 1 trongcáclệnhxửlýchuỗi.
Bit DF có thể thiết lập bằng lệnh STD, xóa bằng lệnh CLD hay có thể điều khiểnthôngquangănxếp.
NT(NestedTask),nhiệmvụlồngnhau.
NT cho biết lệnh đang thực hiện đang tiến triển bên trong cùng một nhiệm vụ hay sẽ gây ra việc chuyển nhiệm vụ. NT chỉ dùng trong chế độ bảo vệ của MP 80286.
IOPLchỉramứcđặcquyềnthấpnhấtmànhiệmvụđangthựchiệncầncó, để được phépthựchiệncáclệnhvào/ra. CũngnhưNT,IOPLchỉcóởchếđộbảovệ.
Thanh ghi trạng thái máy MSW
743
KiếntrúcMáytính NVTam,HTCước.IOIT,VAST
Thanh ghiMSWcó 16bitnhưngchỉ có4bitđượcdùng,còncác bitkhácdự
trữchocácbộvixửlý32bit(hình5.4).
- PE(Protected modeEnable), cho phép bộvi xửlýchuyển sangchế độbảo vệ.
Bit PE=1 chỉ rằng MP 80286 đang làm việc ở chế độ bảo vệ. Một khi đã được thiếtlậpthìchỉcóRESETmớixóaPEvề0được.
-MP(MonitorProcessorExtension).
BitMPchobiếtđangcómộtbộđồngxửlýcùnglàmviệc. - EM(EmulateProcessorExtension).
EMsẽchophépmôphỏngmộtbộđồngxửlý. -TS(TaskSwitch)
Bit này sẽ được thiết lập mỗi khi chuyển nhiệm vụ và thường được dùng trong trường hợp có bộ đồng xử lý. Khi chuyển nhiệm vụ không thay đổi phạm vi (context) củabộđồng xửlý. Nhưvậy, khiMP80286thựchiện lệnhđồngxửlýđầu tiên (sau chuyển nhiệm vụ), sẽ gây ra ngoạilệ số 7.Xử lý ngoại lệ nàycho biết có cầnthayđổiphạmvicủabộđồngxửlýhaykhông?