Nguyên tắc làm việc của Intel 80x86 - Phạm Thế Duy
Bạn đang xem 20 trang mẫu của tài liệu "Nguyên tắc làm việc của Intel 80x86 - Phạm Thế Duy", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- nguyen_tac_lam_viec_cua_intel_80x86_pham_the_duy.ppt
Nội dung text: Nguyên tắc làm việc của Intel 80x86 - Phạm Thế Duy
- Nguyên tăć lam̀ viêc̣ cuả Intel 80x86 Phạm Thế Duy (ptduy@yahoo.com)
- Sơ đồ khối ADDRESS UNIT (AU) ADDRESS LATCH AND DRIVER PHYSICAL PROCESSOR OFFSET ADDRESS EXTENTION ADDER PREFETCH ADDER INTERFACE SEGMENT BASE BUS CONTROL SEGMENT SEGMENT LIMIT SIZE DATA CHECK TRANSCEIVERS 6 BYTE PREFETCH QUEUE BUS UNIT (BU) ALU REGISTER LIMIT CONTROL 3 DECODER INSTRUCTION CHECK INSTRUCTION DECODER QUEUE EXECUTION UNIT (EU) INSTRUCTION UNIT (IU)
- Khối tạo địa chỉ (AU) ◼ AU đảm bảo việc quản lý, bảo vệ bộ nhớ, tuỳ theo chế độ địa chỉ các chương trình sẽ sử dụng các loại địa chỉ logic khác nhau, AU có nhiệm vụ chuyển các địa chỉ logic quản lý trong chương trình phần mềm thành địa chỉ vật lý, cung cấp tới BU để giao tiếp với bên ngoài. ◼ Địa chỉ vật lý là địa chỉ cung cấp trực tiếp cho bộ nhớ và vào ra, còn địa chỉ logic là các giá trị được chương trình quản lý sử dụng để tạo ra địa chỉ vật lý, đó chính là các địa chỉ đoạn (segment) và địa chỉ độ dời (offset).
- Khối giao tiếp BUS (BU) ◼ BU cung cấp các tín hiệu địa chỉ, dữ liệu và điều khiển để truy cập các bộ nhớ và vào ra. Khối này cũng cho phép giao tiếp với bộ đồng xử lý hoặc các bộ vi xử lý khác. ◼ Chức năng quan trọng nhất của BU là tự động kích hoạt quá trình lấy lệnh từ bộ nhớ bằng bộ tiền truy cập lệnh (Prefetch). BU còn có chức năng cho phép quá trình lấy lệnh từ bộ nhớ thực hiện song song với các quá trình khác nhớ hàng đợi lệnh 6 byte (Prefetch queue). ◼ Các địa chỉ mà AU tạo ra cung cấp tới các bộ cài (Address Latch) và sẽ được định thời cung cấp ra bên ngoài tại các thời điểm thích hợp. Dữ liệu truyền với CPU sẽ được chuyển qua các cổng đệm hai chiều (Data Transceivers).
- Khối giải mã lệnh (IU) ◼ Lệnh được BU lấy vào hàng đợi, trong khi IU lấy lệnh đã lấy trước đó giải mã và chuyển tới hàng đợi lệnh đã giải mã (Decoded Instruction queue) để EU thực hiện. ◼ Với chức năng giải mã lệnh, các lệnh ngoài bộ nhớ có thể mã hoá ngắn nhất có thể, IU sẽ tạo ra các tín hiệu điều khiển cần thiết từ các mã lệnh này. ◼ Bằng cách sử dụng bộ giải mã lệnh, dung lượng nhớ của hệ thống sẽ yêu cầu ít hơn, thời gian lấy lệnh sẽ được giảm ngắn.
- Khối thực hiện lệnh (EU) ◼ EU thực hiện các lệnh xử lý dữ liệu mà IU đã giải mã, nó giao tiếp dữ liệu với bên ngoài thông qua BU. ◼ Các khối chức năng của EU bao gồm: - Bộ điều khiển (Control) thực hiện việc điều khiển việc thực hiện các lệnh trong EU. - ALU là khối thực hiện các phép toán số học logic, cấu trúc của ALU thông thường có hai ngõ vào nhận hai toán hạng và một ngõ ra cung cấp kết quả. ◼ Các thanh ghi sử dụng làm nơi lưu trữ dữ liệu, sử dụng trong các phép tính, và các giá trị địa chỉ cho phép EU lấy các toán hạng từ bên ngoài.
- Các thanh ghi của 80286 ◼ Các thanh ghi đa năng: AX, BX, CX, DX, DI, SI, BP, SP. ◼ Các thanh ghi đoạn: CS, DS, ES, SS. ◼ Thanh ghi cờ (Flags). ◼ Các thanh ghi đặc biệt: IP, MSW.
- Các thanh ghi đa năng (16bit) ◼ Có thể sử dụng chứa dữ liệu 16 bit. ◼ Có thể chia thanh hai phần 8 bit truy cập riêng rẽ.
- Cać thanh ghi đa năng ◼ AX (Accumulator) thanh chứa cho lệnh nhân và chia. MUL BL ; AX = AL * BL ◼ BX (Base): Sử dụng làm thanh ghi địa chỉ cơ sở. MOV AL,[BX] ;chép nội dung ô nhớ BX giữ địa chỉ. MOV AH,[BX+03] ;chép nội dung ô nhớ có địa chỉ [BX+3] vào AH. MOV CH,[BX+DI+9] ◼ CX (Counter): Sử dụng làm bộ đếm số vòng lặp. LOOP N ;trừ CX đi 1, chuyển tới nhãn N khi CX ≠0. ◼ DX (Data): Làm thanh ghi chứa dữ liệu trong các lệnh nhân chia 16 bit. Làm thanh ghi giữ địa chỉ cổng vào ra. MUL BX ; DX AX = AX*BX OUT DX,BL ; chuyển BL ra cổng có địa chỉ DX
- Cać thanh ghi đa năng (tiêp)́ ◼ DI (Destination Index): thanh ghi chỉ số đích – giữ địa chỉ đích dữ liệu trong các lệnh về chuỗi. Làm thanh ghi địa chỉ. MOV AH,[DI] ;chuyển nội dung ô nhớ có địa chỉ chứa trong DI vào AH. MOV BH,[DI+7] ;Chuyển nội dung ô nhớ [DI+7] vào thanh ghi BH MOVSB ; Chuyển nội dung [SI] vào địa chỉ [DI] ◼ SI (Source Index): thanh ghi chỉ số nguồn – giữ địa chỉ nguồn dữ liệu trong các lệnh về chuỗi. Làm thanh ghi địa chỉ. MOV AH,[SI] MOV BH,[SI+7] MOVSW ◼ BP (base pointer): thanh ghi con trỏ cơ sở – Làm thanh ghi địa chỉ. MOV AL,[BP] MOV AH,[BP+03] MOV CH,[BP+DI+9]
- Ngăn xêṕ ◼ Ngăn xếp là một vùng nhớ sử dụng cho việc chứa các giá trị tạm thời. ◼ Ngăn xếp trong chế độ địa chỉ thực được truy xuất bằng cặp thanh ghi SS:SP segment/offset (StackSegment: StackPointer) ◼ Một số lệnh tác động tới vùng nhớ ngăn xếp như: push, pop, call, ret, và nhiều lệnh khác nữa. ◼ Ngăn xếp là nơi tốt nhất để lưu trữ các giá trị tạm thời vào bộ nhớ.
- Chứ a dữ liêụ vaò ngăn xêṕ Từ ‘stack-ngăn xếp’ được sử dụng là do cách lưu trữ và lấy lại dữ liệu trong vùng nhớ ngăn xếp cũng giống như việc sử dụng một ngăn xếp trong thực tế. Có thể thực hiện ngăn xếp bằng các hộp. Để tạo thành ngăn xếp trước hết đặt hộp A, sau đó tới B và cuối cùng là C. C B B A A A Chú ý rằng chúng ta chỉ có thể lấy được hộp xếp vào ngăn xếp cuối cùng (Đỉnh ngăn xếp - Top of Stack – TOS). Như vậy trình tự phục hồi lại dữ liệu theo trình tự ngược lại khi xếp vào ngăn xếp (C tới B và cuối cùng là A).
- Chứ a dữ liêụ vaò ngăn xêṕ băng̀ lênḥ PUSH ◼ Thanh ghi con trỏ ngăn xếp SP (Stack Pointer) được sử dụng để truy cập ngăn xếp. SP luôn trỏ tới giá trị cuối cùng được cất vào ngăn xếp. ◼ Lệnh PUSH chứa dữ liệu vào đỉnh ngăn xếp. PUSH AX ; SP= SP-1, M[SP] AX ◼ Lệnh “PUSH AX” tương ứng với: SUB SP, 1 ; giảm SP đi 1 MOV [SP], AX ; ghi giá trị của AX vào đỉnh ngăn xếp ◼ Các lệnh truy cập ngăn xếp có thể thực hiện với 16 hoặc 32 bit.
- Quan sat́ hoaṭ đông̣ lênḥ PUSH Trước lệnh PUSH AX Sau lệnh PUSH AX Địa chỉ thấp Địa chỉ thấp ???? ???? ???? ???? ???? ???? Mỗi ô nhớ 16 ???? bit, ngăn xếp ???? ???? được truy cập 16 ???? ???? hoặc 32 bit. ???? ???? ???? ???? ahal SP (SP mới = SP cũ -1) Last value SP Last value Địa chỉ cao Địa chỉ cao
- Nhiêù lênḥ PUSH liên tiêṕ Trước lệnh PUSH Sau các lệnh PUSH Địa chỉ thấp Địa chỉ thấp ???? ???? ???? ???? ???? PUSH AX ???? PUSH BX ???? PUSH CX ???? ???? ???? ???? cx SP ???? bx ???? ax Last value SP Last value Địa chỉ cao Địa chỉ cao
- Đoc̣ dữ liêụ trong ngăn xêṕ băng̀ lênḥ POP Lệnh POP phục hồi một giá trị từ ngăn xếp: POP AX ; AX M[SP] , SP= SP+1 Lệnh “pop AX” tương đương với các lệnh: mov AX, [SP] ; đọc giá trị từ đỉnh ngăn xếp add sp, 1 ; tăng SP lên 1.
- Hoaṭ đông̣ cuả lênḥ POP Trước POP AX Sau POP AX Địa chỉ thấp Địa chỉ thấp ???? ???? ???? ???? ???? Mỗi ô nhớ 16 ???? bit, ngăn xếp ???? truy cập 16 bit ???? ???? hoặc 32 bits. ???? ???? ???? ???? ???? 23AB SP 23AB FF65 FF65 SP Địa chỉ cao Địa chỉ cao AX = 23AB
- Hoaṭ đông̣ nhiêù lênḥ POP liên tiêṕ Trước Sau các lệnh POP Địa chỉ thấp Địa chỉ cao ???? ???? ???? ???? ???? ???? 23F4 pop AX 23F4 AX = 38AC 38AC SP pop BX 38AC BX = D21B pop CX CX = 357F D21B D21B 357F 357F 23AB 23AB SP FF65 FF65 Địa chỉ cao Địa chỉ thấp
- Ngăn xêṕ Overflow, Underflow ◼ Nếu liên tục cất dữ liệu vào ngăn xếp mà không lấy dữ liệu ra thì ngăn xếp cuối cùng sẽ lớn hơn khoảng dung lượng dành cho nó. ❑ Có thể dữ liệu ngăn xếp sẽ ghi tràn qua vùng nhớ chứa mã lệnh hoặc vùng nhớ chứa dữ liệu khác (không phải ngăn xếp). ❑ Việc này gọi là tràn trên ngăn xếp (OVERFLOW). ◼ Nếu lấy dữ liệu ra khỏi ngăn xếp nhiều hơn các giá trị đã cất vào ngăn xếp, con trỏ ngăn xếp có thể tăng lớn hơn giá trị điểm khởi động ngăn xếp. Điều này được gọi là tràn dưới (UNDERFLOW). ◼ Để ngăn xếp được sử dụng tốt cần phải lấy dữ liệu ra khỏi ngăn xếp bằng đúng số dữ liệu đã cất vào ngăn xếp.
- Tông̉ kêt́ về ngăn xêṕ ◼ Là nơi chứa dữ liệu tạm thời. ◼ Đoạn và con trỏ ngăn xếp SS:SP ◼ Push và Pop (LIFO-Last In First Out) ◼ SP : Giữ địa chỉ đỉnh ngăn xếp ◼ Sau lệnh PUSH con trỏ SP sẽ giảm.
- Cać thanh ghi đoaṇ ◼ CS: Code Segment – Đoạn mã lệnh. ◼ DS: Data Segment – Đoạn dữ liệu. ◼ SS: Stack Segment – Đoạn ngăn xếp. ◼ ES:Extra Segment – Đoạn mở rộng. Chế độ địa chỉ thực: Physical address = Segment * 10H +offset
- Phân đoaṇ bộ nhớ FFFFFh • Địa chỉ logic và địa chỉ đoạn (Logical, Code Segment Segmented): 0FE6:012Bh Segment Registers Extra • Địa chỉ độ dời, chỉ số (offset, index): Segment CS 012Bh ES SS Stack DS Segment • Địa chỉ vật lý: 0FE60h → 65120 +012Bh → 299 0FF8Bh → 65419 Data Segment 00000h System Memory
- Thanh ghi cờ D15 D0 * NT IO PL O D I T S Z * A * P * C ◼ Cờ nhớ CF (Carry Flag). CF=1 khi cộng tràn, trừ mượn. ◼ Cờ chẵn lẻ PF (Parity Flag). PF = 1 khi số bit 1 là một số chẵn. ◼ Cờ dấu SF ( Sign Flag). SF =1 khi kết quả có bit cao nhất là 1 ◼ Cờ tràn OF (Overflow Flag) . OF = 1 khi tràn bit 1 từ MSB-1 qua MSB. ◼ Cờ ZERO ZF (Zero Flag). ZF = 1 khi kết quả bằng 0. ◼ Cờ nhớ phụ AF (Auxiliary Carry Flag ). AF=1 khi tràn bit 1 từ D3 qua D4.
- Cać cờ điêù khiên̉ trong thanh ghi cờ . ◼ Cờ định hướng DF (Direction Flag). Xác định hướng địa chỉ của các lệnh xử lý chuỗi. ◼ Cờ ngắt IF : (Interrupt Flag). IF=1 cho phép ngắt. ◼ Cờ bẫy TF: (Trap Flag). Sử dụng chạy từng bước để sửa sai chương trình. ◼ Cờ nhiệm vụ lồng nhau NT (Nested Tast). Cho phép tiến triển hoặc chuyển nhiệm vụ. ◼ Cờ chỉ thị mức đặc quyền vào ra (IOPL). Chỉ thị mức đặc quyền của nhiệm vụ đang thực hiện.
- Các thanh ghi đặc biệt. ◼ Thanh ghi con trỏ lệnh: (IP - Instruction Pointer). ❑ Giữ địa chỉ độ dời của vùng nhớ chứa mã lệnh. ❑ Tự động tăng lên 1 khi đọc xong một ô nhớ lệnh. ❑ Khi điều khiển chương trình IP được thay đổi giá trị mới, (các lệnh CALL giá trị hiện hành sẽ được cất vào đỉnh ngăn xếp trước khi nạp giá trị mới. Lệnh RET phục hồi giá trị của IP). ◼ Thanh ghi trạng thái máy: (MSW – Machine Status Word) D15 D0 TS EM MP PE ❑ TS (Task Set): là bit chuyển nhiệm vụ. TS=1 1 xảy ra việc chuyển nhiệm vụ. ❑ EM (Emulate Processor Extention): Cho phép mô phỏng bộ đồng xử lý toán học. ❑ MP (Monitor Coprocesor Extention): Cho biết hệ thống có bộ đồng xử lý toán học đang làm việc. ❑ PE (Protect Mode Enable): Cho phép chế độ bảo vệ, khi bit này được lập 80286 chuyển qua hoạc động ở chế độ bảo vệ. Khi đã thiết lập, chỉ khi RESET bit này mới được xoá.
- Nguyên tăć lam̀ viêc̣ cuả 80286
- Kêt́ nôí BUS hệ thônǵ 82086 82288 MRDC S0 S0 MWTC S1 Vcc S1 IORC 82284 DEN IOWC CLK DT/R RESET RES ALE INTA READY CLK ADDRESS BUS Latch A0-A23 D0-D15 DIR DATA BUS G Transceiver WE OE WR RD MEMORY I/O
- Sơ đồ kêt́ nôí BUS hệ thônǵ tiêu biêủ U5 74LS373 AA0 3 2 A0 AA1 4 D0 Q0 5 A1 AA2 7 D1 Q1 6 A2 D2 Q2 AA3 8 9 A3 -A23) ADDRESSBUS(A0 D3 Q3 U2 82284 U1 AA4 13 12 A4 7 4 READY READY 63 34 AA0 AA5 14 D4 Q4 15 A5 X1 READY 10 CLK CLK 31 READY A0 33 AA1 AA6 17 D5 Q5 16 A6 CLK 12 RESET RESET 29 CLK A1 32 AA2 AA7 18 D6 Q6 19 A7 8 RESET RESET A2 28 AA3 D7 Q7 X2 13 S0 5 A3 27 AA4 GND 1 5 PCLK S1 4 S0 A4 26 AA5 ALE 11 OC 1 EFI S1 A5 25 AA6 G ARDY A6 17 M/IO 67 24 AA7 U6 74LS373 2 AYEN 68 M/IO A7 23 AA8 AA8 3 2 A8 3 SRDY 59 LOCK A8 22 AA9 AA9 4 D0 Q0 5 A9 SYEN 57 NMI A9 21 AA10 AA10 7 D1 Q1 6 A10 S0 15 INTR A10 20 AA11 AA11 8 D2 Q2 9 A11 S1 16 S0 64 A11 19 AA12 AA12 13 D3 Q3 12 A12 S1 65 HOLD A12 18 AA13 AA13 14 D4 Q4 15 A13 11 HLDA A13 17 AA14 AA14 17 D5 Q5 16 A14 6 RES ERROR 53 A14 16 AA15 AA15 18 D6 Q6 19 A15 F/C BUSY 54 ERROR A15 15 AA16 D7 Q7 PEREQ 61 BUSY A16 14 AA17 GND 1 PEACK 6 PEREQ A17 13 AA18 ALE 11 OC PEACK A18 G U3 COD/INTA 66 12 AA19 COD/INTA A19 READY 40 23 D0 11 AA20 U7 74LS373 CLK 32 READY D0 22 D1 52 A20 10 AA21 AA16 3 2 A16 RESET 35 CLK D1 21 D2 CAP A21 8 AA22 AA17 4 D0 Q0 5 A17 RESET D2 20 D3 A22 7 AA23 AA18 7 D1 Q1 6 A18 CLK 37 D3 19 D4 A23 AA19 8 D2 Q2 9 A19 CLK286 D4 18 D5 1 BHE AA20 13 D3 Q3 12 A20 S0 2 D5 17 D6 BHE AA21 14 D4 Q4 15 A21 S1 1 S0 80287 D6 16 D7 36 DD0 AA22 17 D5 Q5 16 A22 S1 D7 15 D8 D0 38 DD1 AA23 18 D6 Q6 19 A23 38 D8 14 D9 D1 40 DD2 D7 Q7 PEACK 36 HLDA D9 12 D10 D2 42 DD3 GND 1 39 PEACK D10 11 D11 D3 44 DD4 ALE 11 OC CKM D11 8 D12 D4 46 DD5 G 27 D12 7 D13 D5 48 DD6 NPRD D13 D6 28 6 D14 50 DD7 U9 74LS245 NPWR D14 5 D15 D7 37 DD8 DD0 2 18 D0 34 D15 D8 39 DD9 DD1 3 A1 B1 17 D1 33 NPS1 26 ERROR D9 41 DD10 DD2 4 A2 B2 16 D2 NPS2 ERROR 25 BUSY D10 43 DD11 DD3 5 A3 B3 15 D3 BUSY D11 A4 B4 29 24 PEREQ 45 DD12 DD4 6 14 D4 D15) - BUS(D0 DATA 31 CMD0 PEREQ D12 47 DD13 DD5 7 A5 B5 13 D5 COD/INTA 3 CMD1 D13 49 DD14 DD6 8 A6 B6 12 D6 COD/INTA D14 51 DD15 DD7 9 A7 B7 11 D7 D15 A8 B8 80286 DEN 19 DT/R 1 G DIR U4 S0 19 82288 13 INTA U10 74LS245 S1 3 SO INTA 12 IORC DD8 2 18 D8 M/IO 18 S1 IORC 11 IOWC DD9 3 A1 B1 17 D9 M/IO IOWC 8 MRDC DD10 4 A2 B2 16 D10 READY 1 MRDC 9 MWTC DD11 5 A3 B3 15 D11 CLK 2 READY MWTC DD12 6 A4 B4 14 D12 CLK 17 DT/R DD13 7 A5 B5 13 D13 15 DT/R CONTROL BUS (IORC, IOWC, DD14 8 A6 B6 12 D14 CEN/AEN 16 DEN DD15 9 A7 B7 11 D15 14 DEN 5 ALE MRDC,MWTC, INTA) A8 B8 7 CENL ALE 4 BHE 19 6 CMDLY MCE DT/R 1 G MB DIR
- Cać macḥ đêṃ caì BUS D0 Q0 D1 Q1 D2 Q2 D3 Q3 D4 Q4 D5 74LS373 Q5 D6 Q6 D7 Q7 OE LE
- Tc Ts Tc Ts CLK 1 2 1 2 1 2 1 2 A B C D E F PCLK M/IO# A 23-A0 COD/INTA# /S1,/S0 D 15-D0 ALE /MRDC DEN DT/R# /READY Hình 2.9. Chu kỳ đọc thông tin của 80286
- Tc Ts Tc Ts CLK 1 2 1 2 1 2 1 2 A B C D E F PCLK M/IO# A 23-A0 COD/INTA# /S1,/S0 D 15-D0 ALE /MWTC DEN DT/R# /READY Hình 2.10. Chu kỳ ghi thông tin của 80286
- HOAṬ ĐÔNG̣ CUẢ VI XỬ LÝ ◼ Chu kỳ máy - Machine cycle ◼ Lấy lệnh - Fetch, Giải mã lệnh - decode, Thực hiện lệnh - execute ◼ Định thời vi xử lý - Processor timing ◼ Chu kỳ BUS - Bus cycles ◼ Đọc bộ nhớ/vào ra - Memory / IO read ◼ Ghi bộ nhớ/ vào ra - Memory / IO write
- Thực hiện việc lưu trữ dữ liệu ;Giả sử khi bắt đầu chương trình. ;ds = 2000, bx = 0023, ax = 351C ;cs = 1000, ip = 0005 Chương trình sau: mov [bx], al ;8807 hlt ;F4 Sẽ được thực hiện như thế nào?
- Bộ vi xử lý sẽ hoạt động như thế nào? How does the P works? ◼ Lấy lệnh - Fetch ◼ Tăng bộ đếm chương trình PC lên 1 Increment Program Counter (CS:IP) by 1 ◼ Giải mã lệnh - Decode ◼ Thực hiện lệnh nếu cần. Execute (if necessary)
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : CS:IP : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0005 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 1000:0005 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0005 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10005 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0005 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10005 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0005 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10005 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : 88 : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0005 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10005 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : 88 : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0005 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 88 00000 23
- AX 3F1C FFFFF 36 BX 0023 INC. PC FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0005+1 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 88 00000 23
- AX 3F1C FFFFF 36 BX 0023 INC. PC FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0006 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 88 00000 23
- AX 3F1C FFFFF 36 BX 0023 DECODE FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0006 10003 39 10002 27 10001 98 mov [bx], ? 10000 45 : : MEMW WR : : Inst. Queue 00001 95 88 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : CS:IP : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0006 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 88 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 1000:0006 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0006 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 88 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10006 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0006 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 88 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10006 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0006 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 88 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10006 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : 07 : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0006 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 88 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10006 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : 07 : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0006 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 8807 00000 23
- AX 3F1C FFFFF 36 BX 0023 INC. PC FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0006+1 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 8807 00000 23
- AX 3F1C FFFFF 36 BX 0023 INC. PC FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 8807 00000 23
- AX 3F1C FFFFF 36 BX 0023 DECODE FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 10003 39 10002 27 10001 98 mov [bx], al 10000 45 : : MEMW WR : : Inst. Queue 00001 95 8807 00000 23
- AX 3F1C EXECUTE FFFFF 36 BX 0023 FFFFE 25 CX 0000 mov [bx], al FFFFD 19 DX FCA1 : : A19 A19 : : : DS:BX : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 8807 00000 23
- AX 3F1C EXECUTE FFFFF 36 BX 0023 FFFFE 25 CX 0000 mov [bx], al FFFFD 19 DX FCA1 : : A19 A19 : : : 2000:0023 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 8807 00000 23
- AX 3F1C EXECUTE FFFFF 36 BX 0023 FFFFE 25 CX 0000 mov [bx], al FFFFD 19 DX FCA1 : : A19 A19 : : : 20023 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 8807 00000 23
- AX 3F1C EXECUTE FFFFF 36 BX 0023 FFFFE 25 CX 0000 mov [bx], al FFFFD 19 DX FCA1 : : A19 A19 : : : 20023 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : 1C : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 8807 00000 23
- AX 3F1C EXECUTE FFFFF 36 BX 0023 FFFFE 25 CX 0000 mov [bx], al FFFFD 19 DX FCA1 : : A19 A19 : : : 20023 : CS 1000 20023 13 A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : 1C : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 HIGH 10003 39 10002 27 10001 98 10000 45 : : MEMW LOW WR : : Inst. Queue 00001 95 8807 00000 23
- AX 3F1C EXECUTE FFFFF 36 BX 0023 FFFFE 25 CX 0000 mov [bx], al FFFFD 19 DX FCA1 : : A19 A19 : : : 20023 : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : 1C : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 HIGH 10003 39 10002 27 10001 98 10000 45 : : MEMW LOW WR : : Inst. Queue 00001 95 8807 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : CS:IP : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 1000:0007 : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10007 : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10007 : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10007 : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : F4 : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 00000 23
- AX 3F1C FFFFF 36 BX 0023 FETCH FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10007 : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : F4 : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 F4 00000 23
- AX 3F1C FFFFF 36 BX 0023 INC. PC FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10007 : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : F4 : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0007+1 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 F4 00000 23
- AX 3F1C FFFFF 36 BX 0023 INC. PC FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10007 : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : F4 : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0008 LOW 10003 39 10002 27 10001 98 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 F4 00000 23
- AX 3F1C FFFFF 36 BX 0023 DECODE FFFFE 25 CX 0000 FFFFD 19 DX FCA1 : : A19 A19 : : : 10007 : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : F4 : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0008 LOW 10003 39 10002 27 10001 98 hlt 10000 45 : : MEMW HIGH WR : : Inst. Queue 00001 95 F4 00000 23
- AX 3F1C EXECUTE FFFFF 36 BX 0023 FFFFE 25 CX 0000 hlt FFFFD 19 DX FCA1 : : A19 A19 : : : : CS 1000 20023 1C A0 A0 SS 1243 20022 7D DS 2000 20021 12 ES 1AB3 20020 29 : : D7 D7 BP AB12 : : : : SP 34CD 10008 8A D0 D0 10007 F4 SI 1234 10006 07 DI 5678 10005 88 10004 42 MEMR RD IP 0008 10003 39 10002 27 10001 98 10000 45 : : MEMW WR : : Inst. Queue 00001 95 F4 00000 23
- Chu kỳ maý -Machine Cycle
- Machine Cycle Timing Diagram M1 M2 M3 M1 ___ IOR ___ IOW Control Bus ___ MEMR ___ MEMW Address 10005 10006 20023 10007 Bus Data Bus 88 07 1C F4 fetch fetch fetch execute execute mov [bx],al hlt
- M1 M2 M3 M1 ___ IOR ___ IOW Control Bus ___ MEMR ___ MEMW Address 10005 10006 20023 10007 Bus D7 D6 D5 D4 D3 D2 D1 D0
- Định thời vi xử lý Processor Timing
- Biểu đồ định thời bộ vi xử lý cho chu kỳ lấy lệnh thứ nhất của lệnh mov [bx],al M1 T1 T2 T3 CLOCK ___ IOR ___ IOW ___ MEMR ___ MEMW Address 10005 Bus Data Bus 88
- Biểu đồ định thời bộ vi xử lý cho chu kỳ lấy lệnh thứ hai của lệnh mov [bx],al M2 T1 T2 T3 CLOCK ___ IOR ___ IOW ___ MEMR ___ MEMW Address 10006 Bus Data Bus 07
- Biểu đồ định thời bộ vi xử lý cho chu kỳ thực hiện lệnh mov [bx],al M3 T1 T2 T3 CLOCK ___ IOR ___ IOW ___ MEMR ___ MEMW Address 20023 Bus Data Bus 1C
- Biểu đồ định thời bộ vi xử lý cho chu kỳ lấy lệnh thứ nhất của lệnh Halt M1 T1 T2 T3 CLOCK ___ IOR ___ IOW ___ MEMR ___ MEMW Address 10007 Bus Data Bus F4
- Biểu đồ định thời bộ vi xử lý cho một lệnh đọc bộ nhớ bất kỳ T1 T2 T3 CLOCK ___ IOR ___ IOW ___ MEMR ___ MEMW Address memory address Bus data Data Bus in
- Biểu đồ định thời bộ vi xử lý cho một lệnh ghi bộ nhớ bất kỳ T1 T2 T3 CLOCK ___ IOR ___ IOW ___ MEMR ___ MEMW Address memory address Bus Data Bus data out
- Biểu đồ định thời bộ vi xử lý cho một lệnh đọc I/O bất kỳ T1 T2 T3 CLOCK ___ IOR ___ IOW ___ MEMR ___ MEMW Address port address Bus data Data Bus in
- Biểu đồ định thời bộ vi xử lý cho một lệnh ghi I/O bất kỳ T1 T2 T3 CLOCK ___ IOR ___ IOW ___ MEMR ___ MEMW Address port address Bus Data Bus data out
- Định thời sai cho việc ghi bộ nhớ T1 T2 T3 CLOCK ___ IOR ___ IOW ___ MEMR ___ MEMW Address memory address Bus Data Bus data out