Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
345,58 KB
Nội dung
CHƯƠNG 2: TỔ CHỨC CPU Định chu kỳ bus Kiến trúc nội Các ghi Mã hoá lệnh Phân đoạn nhớ Các cách định địa 8:17 AM Chương Định chu kỳ bus Chu kỳ đọc nhớ T1 T2 T3 T4 Clk Address bus Địa Đọc nhớ MEMR (Control bus) Data bus 8:17 AM Dữ liệu Chương 2 Định chu kỳ bus Chu kỳ đọc IO T2 T1 T3 T4 Clk Address bus Địa IOR Data bus Dữ liệu 8:17 AM Chương Kiến trúc nội Kiến trúc tổng quát EU Hàng lệnh BIU Bus hệ thống 8:17 AM Chương BIU EU Điều khiển bus sinh địa Kiến trúc nội AH AL BH BL CH CL DH DL CS BP ES DI SS SI DS SP IP Internal bus Thanh ghi cờ ALU 8:17 AM Chương Kiến trúc nội Cơ chế đường ống (pipeline) Nhận Nhận Thực thi Nhận 8:17 AM Nhận Thực thi Nhận Nhận Thực thi Thực thi Thực thi Thực thi Chương Kiến trúc nội Cơ chế siêu phân luồng (hyper – threading) Là dạng kỹ thuật đa luồng song song (SMT – Simultaneous Multi Threading) Chia ứng dụng thành nhiều luồng khác Các luồng thực thi thời điểm Mỗi luồng ứng với AS (Architectural State) Các luồng dùng chung tài nguyên thực thi 8:17 AM Chương Kiến trúc nội Cơ chế siêu phân luồng (hyper – threading) So sánh hệ thống đa nhân (multi-core) siêu phân luồng Siêu phân luồng Bộ xử lý đa nhân AS AS Tài nguyên thực thi Tài nguyên thực thi 8:17 AM AS AS Tài nguyên thực thi Chương Kiến trúc nội Cơ chế siêu phân luồng (hyper – threading) Đoạn lệnh: Thực thi (thông thường): MOV AL,1 MOV BL,2 ADD AL,3 ADD BL,AL Lần Lần Lần Lần 1: 2: 3: 4: MOV AL,1 MOV BL,2 ADD AL,3 ADD BL,AL Số lần thực thi: 8:17 AM Chương Kiến trúc nội Cơ chế siêu phân luồng (hyper – threading) Đoạn lệnh: MOV AL,1 MOV BL,2 ADD AL,3 ADD BL,3 Thực thi (siêu phân luồng): Luồng Luồng Lần 1: Lần 2: Lần 3: MOV AL,1 MOV BL,2 ADD AL,3 ADD BL,3 Số lần thực thi: 8:17 AM Chương 10 Kiến trúc nội Cơ chế siêu phân luồng (hyper – threading) Đoạn lệnh: MOV AL,1 MOV BL,2 ADD AL,3 ADD BL,3 Thực thi (siêu phân luồng): Lần 1: Luồng Luồng Lần 2: MOV AL,1 MOV BL,2 ADD AL,3 ADD BL,3 Số lần thực thi: 8:17 AM Chương 11 Các ghi Thanh ghi liệu AX (Accumulator): 16 bit AH (High): bit cao AL(low): bit thấp CX (Count): 16 bit CH (High): bit cao 8:17 AM CL(low): bit thấp BX (Base): 16 bit BH (High): bit cao BL(low): bit thấp DX (Data): 16 bit DH (High): bit cao Chương DL(low): bit thấp 12 Các ghi Thanh ghi số trỏ BP (Base Pointer): 16 bit SP (Stack Pointer): 16 bit SI (Source Index): 16 bit DI (Destination Index): 16 bit 8:17 AM Chương 13 Các ghi Thanh ghi đoạn CS (Code Segment): 16 bit DS (Data Segment): 16 bit SS (Stack Segment): 16 bit ES (Extra Segment): 16 bit 8:17 AM Chương 14 Các ghi Thanh ghi điều khiển trạng thái IP (Instruction Pointer): 16 bit Flag register: 16 bit - - - - OF DF IF TF SF ZF OF (Overflow Flag) DF (Direction Flag) IF (Interrupt Flag) TF (Trap Flag) SF (Signed Flag) - AF - PF - CF ZF (Zero Flag) CF (Carry Flag) PF (Parity Flag) AF (Auxiliary Flag) 8:17 AM Chương 15 Mã hoá lệnh Byte Byte Opcode D W Mod Opcode: thay đổi tuỳ theo lệnh Lệnh MOV: 100010 Lệnh ADD: 000000 Lệnh CMP: 001110 … D (Direction): chiều truyền theo ghi sở D = 1: In 8:17 D = AM 0: Out reg Byte Byte R/M W (Word): kích thước ghi sở W = 1: byte (1 word) W = 0: byte Reg: bit chọn ghi sở Mod, R/M: bit chọn chế độ toán hạng lại Chương 16 Mã hố lệnh 0 Opcode D W Mod R/M reg Các chế độ địa MOD 00 R/M 000 001 010 011 100 101 110 111 01 [BX + SI] [BX + DI] [BP + SI] [BP + DI] [SI] [DI] [addr16] [BX] 10 [BX + SI + addr8] [BX + DI + addr8] [BP + SI + addr8] [BP + DI + addr8] [SI + addr8] [DI + addr8] [BP + addr8] [BX + addr8] 8:17 AM [BX + SI + addr16] [BX + DI + addr16] [BP + SI + addr16] [BP + DI + addr16] [SI + addr16] [DI + addr16] [BP + addr16] [BX + addr16] 11 W=1 W=0 AX AL CX CL DX DL BX BL SP AH BP CH SI DH DI BH Chương 17 Mã hoá lệnh MOV Thanh ghi sở 0 Còn lại: CL Còn lại Opcode (Lệnh MOV) Mã lệnh: 8:17 AM Chiều liệu: CL -> AL AL , CL D = 1: W = 0: liệu byte vào 8AC1h 1 Mod Chương 0 Thanh ghi sở: AL 0 b R/M 18 Mã hoá lệnh ADD AL,CL 0 0 0 D W Opcode (lệnh ADD) Mã lệnh: 1 Mod 0 Reg b R/M 02C1h 8:17 AM Chương 19 Mã hoá lệnh Chiều liệu: CX-> [SI] MOV [SI] , CX Thanh ghi sở 0 Opcode (Lệnh MOV) Mã lệnh: 8:17 AM Còn lại: [SI] Còn lại 0 D = 0: W = 1: liệu byte 890Ch 0 Mod Chương 0 Thanh ghi sở: CX 0 b R/M 20 10 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Byte FFFFFh Segment (đoạn): Byte F0000h Cần 16 bit biểu diễn 216 = 26 x 210 = 64KB 220 địa Byte 20000h Byte 10000h 220 / 216 = 16 đoạn Byte 00000h 8:17 AM Chương 37 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Code segment CS = 5678h Byte 56780h Data segment DS = 3456h Byte 34560h Stack segment Byte 23450h SS = 2345h Extra segment Byte 12340h ES = 1234h Địa đoạn phải kết thúc giá trị 8:17 AM Chương 38 19 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Byte 21FFFh Byte 1FFFFh Byte 12000h Byte 10000h 8:17 AM Chương 39 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Địa segment: 2000h Địa logic: Địa offset: 3456h 2000h : 3456h Byte 2FFFFh Segment bắt đầu địa 20000h Byte 23456h Địa vật lý 23456h Độ lệch (offset): 3456h Byte 20000h 23456h 8:17 AM Chương 40 20 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Địa segment: 2100h Địa logic: Địa offset: 2456h 2100h : 2456h Byte 30FFFh Segment bắt đầu địa 21000h Byte 23456h Địa vật lý 23456h Độ lệch (offset): 2456h Byte 21000h 23456h 8:17 AM Chương 41 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Chuyển từ địa vật lý địa logic: Biết trước địa segment, tính địa offset: Thêm số vào sau địa segment Thực trừ với địa vật lý Kết chấp nhận 16 bit 8:17 AM Chương 42 21 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Chuyển từ địa vật lý địa logic: Biết trước địa segment, tính địa offset: Chuyển địa 75643h sang địa logic, biết segment 7453h: Địa segment 7453h 74530h Địa vật lý 75643h - 75643h 74530h 01113h Địa logic: 7453h : 1113h 8:17 AM Chương 43 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Chuyển từ địa vật lý địa logic: Biết trước địa segment, tính địa offset: Chuyển địa 75643h sang địa logic, biết segment 6453h: Địa segment 6453h 64530h Địa vật lý 75643h - 75643h 64530h 11113h Offset 20 bit không tồn địa logic có segment 6453h 8:17 AM Chương 44 22 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Chuyển từ địa vật lý địa logic: Biết trước địa segment, tính địa offset: Chuyển địa 75643h sang địa logic, biết segment 7853h: Địa segment 7853h 78530h Địa vật lý 75643h - 75643h 78530h Số âm Offset âm không tồn địa logic có segment 7853h 8:17 AM Chương 45 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Chuyển từ địa vật lý địa logic: Biết trước địa segment, tính địa offset: Địa vật lý Địa segment ABCDEh A567h 45678h 442Ah 6789Ah 56CDh 8:17 AM Chương 46 23 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Chuyển từ địa vật lý địa logic: Biết trước địa offset, tính địa segment: Lấy địa vật lý trừ địa offset Kết chấp nhận kết thúc số Địa segment kết phép trừ bỏ số cuối 8:17 AM Chương 47 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Chuyển từ địa vật lý địa logic: Biết trước địa offset, tính địa segment: Chuyển địa 75643h sang địa logic, biết offset 6453h: Địa offset 6453h - Địa vật lý 75643h 75643h 6453h 6F1F0h Địa segment 6F1Fh Địa logic: 6F1Fh : 6453h 8:17 AM Chương 48 24 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Chuyển từ địa vật lý địa logic: Biết trước địa offset, tính địa segment: Chuyển địa 75643h sang địa logic, biết offset 5321h: Địa offset 5321h Địa vật lý 75643h - 75643h 5321h 70322h Địa segment không chấp nhận Khơng tồn địa logic có địa offset 5321h 8:17 AM Chương 49 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Chuyển từ địa vật lý địa logic: Biết trước địa offset, tính địa segment: Chuyển địa 05643h sang địa logic, biết offset 6453h: Địa offset 6453h Địa vật lý 05643h - 05643h 6453h Số âm Địa segment không chấp nhận Không tồn địa logic có địa offset 6453h 8:17 AM Chương 50 25 Phân đoạn nhớ Chế độ bình thường (tác động đến 1M nhớ): Chuyển từ địa logic địa vật lý : Thêm số vào sau địa segment Thực cộng với địa offset Kết chấp nhận 20 bit Chuyển địa 6578h : 7598h sang địa vật lý: Địa segment 6578h 65780h + Địa offset 7598h Địa vật lý: 6CD18h 8:17 AM 65780h 7598h 6CD18h Chương 51 Phân đoạn nhớ Chế độ bảo vệ (protected mode): Cho phép truy xuất tới vùng nhớ 1M Các ghi đoạn gọi ghi chọn đoạn (segment selector) Các ghi đoạn: CS, DS, ES, SS, FS, GS Thanh ghi chọn đoạn dùng để chọn phần tử bảng mô tả Bảng mơ tả (descriptor table) có kích thước 64 KB Bảng mơ tả tồn cục (GDT – Global descriptor table): chứa thông tin đoạn nhớ mà tất chương trình truy xuất Bảng mô tả cục (LDT – Local descriptor table): chứa thông tin đoạn nhớ mà chương trình sử dụng 8:17 AM Chương 52 26 Phân đoạn nhớ Chế độ bảo vệ (protected mode): Nội dung ghi đoạn: Index RPL (Requested Privilege Level) TI (Table Indicator) 13 bit bit bit RPL: mức ưu tiên TI: xác định đoạn nằm LDT hay GDT 11: cao (nhân hệ điều hành) 1: LDT; 0: GDT 00: thấp (ứng dụng) Index: chọn mục (entry) LDT hay GDT (tổng cộng 8192 mục) 8:17 AM Chương 53 Phân đoạn nhớ Chế độ bảo vệ (protected mode): Nội dung entry bảng mô tả: 8B = 64 bit Bit Ý nghĩa Bit Ý nghĩa – 15 Limit – 15 – 15 Limit – 15 16 – 31 Base – 15 16 – 31 Base – 15 32 – 39 Base 16 – 23 32 – 39 Base 16 – 23 40 – 47 Access byte 40 – 47 Access byte 48 – 51 Limit 16 – 19 48 – 63 000…000 52 – 55 Flag 56 – 63 Base 24 - 31 80386 trở lên 8:17 AM 80286 Chương 54 27 Phân đoạn nhớ Chế độ bảo vệ (protected mode): Nội dung entry bảng mô tả: 8B = 64 bit Pr 32 bit base: địa sở Pr (Present) = 1: selector hợp lệ 20 bit limit: kích thước tối đa đoạn Privl: giống RPL 8 bit access Ex (Executable) = 1: code segment; = 0: data segment Privl Ex DC RW AC DC (Direction/Conforming) RW (Readable/Writeable) AC (Accessed): CPU set lên truy xuất segment 8:17 AM Chương 55 Phân đoạn nhớ Chế độ bảo vệ (protected mode): Nội dung entry bảng mô tả: 8B = 64 bit 8 bit access Pr Privl Ex DC RW AC Direction: dùng cho data selector, = xác định chiều tăng, = xác định chiều giảm Comforming: dùng cho code selector, =1: xác định mã lệnh segment thực thi từ mức ưu tiên hay thấp hơn, =0: xác định mã lệnh thực thi theo mức ưu tiên Privl Readable: dùng cho code selector, cho phép đọc từ segment hay không luôn cấm ghi vào segment Writeable: dùng cho data selector, cho phép ghi vào segment hay không luôn cho phép đọc từ segment 8:17 AM Chương 56 28 Phân đoạn nhớ Chế độ bảo vệ (protected mode): Nội dung entry bảng mô tả: 8B = 64 bit Flag Gr Sz Gr (Granularity): =0 xác định 20 bit limit dạng byte, =1 xác định dạng trang KB limit = 12345h (74,565) Gr = kích thước đoạn tối đa 74,565 byte Gr = kích thước đoạn tối đa 74,565 x 4KB = 298,260 KByte Sz (Size): =0 xác định chế độ 16 bit, =1 xác định chế độ 32 bit 8:17 AM Chương 57 Các phương pháp định địa Định địa Tức thời AX AH AL MOV AX,1000h 10h 8:17 AM Chương 00h 58 29 Các phương pháp định địa Thanh ghi AH AL CH CL MOV AX,CX 8:17 AM Chương 59 Các phương pháp định địa Trực tiếp Bộ nhớ AX DS MOV AX,[1000h] AL 1000h MOV AX,DS:[1000h] 8:17 AM AH 1001h Chương 60 30 Các phương pháp định địa Gián tiếp ghi Bộ nhớ AX DS MOV AX,[BX] AH AL BX MOV AX,DS:[BX] BX+1 Các ghi sử dụng: 8:17 AM BX,Chương BP, 2SI, DI 61 Các phương pháp định địa Gián tiếp ghi có số Bộ nhớ AX DS MOV AX,[SI+10h] AH SI MOV AX,DS:[SI+10h] SI+10h AL 10h SI+10h+1 Các ghi sử dụng: 8:17 AM SI, Chương DI 62 31 Các phương pháp định địa Gián tiếp ghi có Bộ nhớ AX DS MOV AX,[BX+10h] AH BX MOV AX,DS:[BX+10h] BX+10h AL 10h BX+10h+1 Các ghi sử dụng: BX,Chương BP 8:17 AM 63 Các phương pháp định địa Gián tiếp ghi có số Bộ nhớ AX DS AH BX MOV AX,[BX+SI] BX+SI AL SI BX+SI+1 Cặp ghi sử dụng: 8:17 AM Chương BX+SI, BX+DI, BP+SI, BP+DI 64 32 Các phương pháp định địa Gián tiếp ghi có nền, số độ dời DS BX MOV AX,[BX+SI+10h] BX+SI Bộ nhớ AX AL SI 10h BX+SI+10h Cặp ghi sử dụng: AH BX BX+SI+10h+1 8:17 AM Chương BX+SI, BX+DI, BP+SI, BP+DI 65 33 ... IOR Data bus Dữ liệu 8:17 AM Chương Kiến trúc nội Kiến trúc tổng quát EU Hàng lệnh BIU Bus hệ thống 8:17 AM Chương BIU EU Điều khiển bus sinh địa Kiến trúc nội AH AL BH BL CH CL DH DL CS BP... cờ ALU 8:17 AM Chương Kiến trúc nội Cơ chế đường ống (pipeline) Nhận Nhận Thực thi Nhận 8:17 AM Nhận Thực thi Nhận Nhận Thực thi Thực thi Thực thi Thực thi Chương Kiến trúc nội Cơ chế siêu phân... luồng ứng với AS (Architectural State) Các luồng dùng chung tài nguyên thực thi 8:17 AM Chương Kiến trúc nội Cơ chế siêu phân luồng (hyper – threading) So sánh hệ thống đa nhân (multi-core) siêu phân