Giáo trình Kiến trúc máy tính - Chương 3: Tập lệnh - Phạm Trung Kiên
Bạn đang xem tài liệu "Giáo trình Kiến trúc máy tính - Chương 3: Tập lệnh - Phạm Trung Kiên", để 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:
- giao_trinh_kien_truc_may_tinh_chuong_3_tap_lenh_pham_trung_k.pdf
Nội dung text: Giáo trình Kiến trúc máy tính - Chương 3: Tập lệnh - Phạm Trung Kiên
- Chương 3. Kiến Trúc Tập Lệnh Tập thanh ghi Chương 3. Tập Lệnh Tập lệnh Ví dụ nghiên cứu Phan Trung Kiên Đại học Tây Bắc 2 1 Phan Trung Kiên 3.1. Tập thanh ghi Phân loại thanh ghi theo chức năng Chức năng và đặc điểm: Thanh ghi địa chỉ: quản lý địa chỉ của ngăn nhớ Chứa các thơng tin tạm thời phục vụ cho hoạt động hay cổng vào-ra. ở thời điểm hiện tại của CPU Thanh ghi dữ liệu: chứa tạm thời các dữ liệu. Được coi là mức đầu tiên của hệ thống nhớ Thanh ghi đa năng: cĩ thể chứa địa chỉ hoặc dữ Số lượng thanh ghi nhiều Ỵ tăng hiệu năng của liệu. CPU Thanh ghi điều khiển/trạng thái: chứa các thơng Cĩ hai loại thanh ghi: Các thanh ghi lập trình được tin điều khiển và trạng thái của CPU. Các thanh ghi khơng lập trình được Thanh ghi lệnh: chứa lệnh đang được thực hiện. Phan Trung Kiên 3 Phan Trung Kiên 4 1
- Một số thanh ghi điển hình Các thanh ghi địa chỉ: Các thanh ghi địa chỉ Các thanh ghi dữ liệu Chức năng: dùng để quản lý địa chỉ của ngăn nhớ hay cổng vào – ra Thanh ghi trạng thái Chương trình đang thực hiện phải nằm trong bộ nhớ chính và nĩ chiếm 3 vùng nhớ cỏ bản sau: Vùng nhớ lệnh (Code): chứa các lệnh của chương trình. Vùng dữ liệu (Data): chứa dữ liệu của chương trình. Thực chất đây là nơi cấp phát các ngăn nhớ cho các biến nhớ. Vùng ngăn xếp (Stack): là vùng nhớ cĩ cấu trúc LIFO (Last in first Out) dùng để cất dữ thơng tin và sau đĩcĩthể khơi phục lại. Thường dùng cho việc thực hiện các chương trình con. Phan Trung Kiên 5 Phan Trung Kiên 6 Bộ đếm chương trình (Program Minh họa bộ đếm chương trình Counter – PC): Cịn gọi là con trỏ lệnh (Instruction Pointer – IP) Là thanh ghi chứa địa chỉ cảu một lệnh tiếp theo sẽ được nhận vào. Sau khi một lệnh được nhận vào thì nội dung của PC tự động tăng để trỏ sang lệnh kế tiếp nằm ngay sau lệnh vừa nhận. Phan Trung Kiên 7 Phan Trung Kiên 8 2
- Thanh ghi con trỏ dữ liệu (Data Minh hoạ thanh ghi con trỏ dữ liệu Pointer – DP): Chứa địa chỉ của ngăn nhớ dữ liệu mà CPU muốn truy nhập. Thường cĩ một số thanh ghi con trỏ dữ liệu Phan Trung Kiên 9 Phan Trung Kiên 10 Ngăn xếp (Stack) Thanh ghi con trỏ ngăn xếp (Stack Pointer – SP): Ngăn xếp là vùng nhớ cĩ cấu trúc LIFO (Last In - First Out) Ngăn xếp thường dùng để phục vụ cho chương Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp trình con Khi cất một thơng tin vào ngăn xếp: Nội dung của SP tự động giảm Đáy ngăn xếp là một ngăn nhớ xác định Thơng tin được cất vào ngăn nhớ được trỏ bởi SP Đỉnh ngăn xếp là thơng tin nằm ở vị trí trên cùng Khi lấy một thơng tin ra khỏi ngăn xếp: trong ngăn xếp Thơng tin được đọc từ ngăn nhớ được trỏ bởi SP Đỉnh ngăn xếp cĩ thể bị thay đổi Nội dung của SP tự động tăng Khi ngăn xếp rỗng, SP trỏ vào đáy Phan Trung Kiên 11 Phan Trung Kiên 12 3
- Minh họa con trỏ ngăn xếp SP Thanh ghi cơ sở (Base Register) và thanh ghi chỉ số (Index Register): Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở Thanh ghi chỉ số: chứa độ lệch địa chỉ giữa ngăn nhớ mà CPU cần truy nhập so với ngăn nhớ cơ sở. Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số Phan Trung Kiên 13 Phan Trung Kiên 14 Minh họa thanh ghi cơ sở và thanh ghi Các thanh ghi dữ liệu: chỉ số Chức năng: chứa các dữ liệu tạm thời hoặc các kết qủa trung gian phục vụ cho việc xử lý các dữ liệu của CPU. Các loại thanh ghi dữ liệu: Các thanh ghi số nguyên:8, 16, 32, 64 bit Các thanh ghi số dấu chấm động (Cĩ trên các bộ xử lý cĩ khối FPU – Floadting Point Unit) Phan Trung Kiên 15 Phan Trung Kiên 16 4
- Thanh ghi trạng thái: Các cờ phép tốn: Cịn gọi là thanh ghi cờ (Flag Register) Cờ Zero (ZF - cờ rỗng): đựoc thiết lập lên một kết quả của phép tốn vừa thực hiện bằng 0. Chức năng: chứa các thơng tin trạng thái của CPU. Cờ Sign (SF - cờ đấu): được thiết lập lên một kết quả của phép tốn vừa thực hiện nhỏ hơn 0, hay nĩi cách Các cờ phép tốn: biểu thị trạng thái của kết qủa khác, cờ Sign nhận giá trị bằng bit dấu của kết quả. phép tốn. Cờ Carry (CF - cờ nhớ): cờ được thiết lập nếu phép Các cờ điều khiển: biểu thị trạng thái điều khiển của tốn cĩ nhớ ra ngồi bit cao nhất → cờ báo tràn với số CPU. khơng dấu. Cờ Overflow (OF - cờ tràn): cờ được thiết lập nếu cộng hai số cùng dấu mà kết quả cĩ dấu ngược lại → cờ báo tràn với số cĩ dấu. Phan Trung Kiên 17 Phan Trung Kiên 18 Các cờ điều khiển: Tập thanh ghi của một số bộ xử lý Cờ Interrupt (IF - cờ cho phép ngắt): Nếu IF = 1 → CPU ở trạng thái cho phép ngắt với tín hiệu yêu cầu ngắt từ bên ngồi. Nếu IF = 0 → CPU ở trạng thái cấm ngắt với tín hiệu yêu cầu ngắt từ bên ngồi. Phan Trung Kiên 19 Phan Trung Kiên 20 5
- 3.2. Tập lệnh Giản đồ trạng thái của chu kỳ lệnh Giới thiệu chung Nhận tốn Cất tốn Mỗi bộ xử lý cĩ một tập lệnh xác định Nhận lệnh hạng hạng Tập lệnh thường từ hàng chục đến hàng trăm lệnh Mỗi lệnh là một chuỗi số nhị phân mà BXL hiểu được Nhiều Nhiều tốn kết để thực hiện một thao tác xác định hạng quả Các lệnh được mơ tả bằng ký hiệu gợi nhớ ? đĩlà Giải mã Tính tốn Tính tốn Tính tốn thao tác địa chỉ tốn Xử lý dữ liệu địa chỉ tốn các lệnh hợp ngữ địa chỉ lệnh lệnh hạng hạng Kết thúc lênh, DL dạng nhận lệnh xâu hoặc tiếp theo vectơ Khơng kiểm tra ngắt Phan Trung Kiên 21 Phan Trung Kiên 22 Giản đồ trạng thái của chu kỳ lệnh Cấu trúc lệnh mã máy Nhận tốn Cất tốn Nhận lệnh hạng hạng Mã lệnh Các tốn hạng Nhiều Nhiều tốn kết hạng quả Mã lệnh (opcode): cho biết thao tác cần thực hiện Tính tốn Giải mã Tính tốn Tính tốn Xử lý dữ Kiểm tra địa chỉ thao tác địa chỉ địa chỉ Ngắt liệu ngắt lệnh lệnh tốn hạng tốn hạng Các tốn hạng (Operands): cho biết: Nơi chứa dữ liệu cần tác động vào: t/h nguồn, t/h đích Kết thúc lênh, DL dạng Khơng nhận lệnh xâu hoặc cĩ ngắt tiếp theo vectơ Cho biết địa chỉ của lệnh tiếp theo Cĩ kiểm tra ngắt Phan Trung Kiên 23 Phan Trung Kiên 24 6
- Các kiểu lệnh Các kiểu tốn hạng Xử lý dữ liệu Số lượng tốn hạng Lưu trữ dữ liệu Kiểu số Di chuyển dữ liệu Số nguyên Số dấu phẩy động Điều khiển thứ tự thực hiện lệnh Kiểu ký tự Mã của ký tự ASCII, BCD mở rộng, Kiểu logic Tốn hạng xử lý với cờ Phan Trung Kiên 25 Phan Trung Kiên 26 Số lượng tốn hạng Số lượng tốn hạng 3 tốn hạng: 2 tốn hạng: Tốn hạng 1, tốn hạng 2, kết quả Cĩ một tốn hạng vừa là nguồn, vừa là đích a = b + c a = a + b Cĩ thể dẫn tới lệnh tiếp theo (thường là ngầm hiểu) Giảm độ dài của lệnh Loại này khơng phổ dụng Cĩ thể thêm thao tác: Cần rất nhiều từ lệnh dài để chứa loại này Dùng vùng nhớ tạm để chứa giá trị trước khi thực hiện Ví dụ: SUB r1, r2, r3 (Motorola) Ví dụ: ADD AX, BX Phan Trung Kiên 27 Phan Trung Kiên 28 7
- Số lượng tốn hạng Số lượng tốn hạng 1 tốn hạng: 0 tốn hạng Tốn hạng thường là một thanh ghi Điều khiển hệ thống Tốn hạng thứ hai được ngầm hiểu ít dùng Phổ dụng trong các máy xa xưa Ví dụ: NOP (No OPeration) Ví dụ: PUSH AX Phan Trung Kiên 29 Phan Trung Kiên 30 So sánh số lượng tốn hạng Các kiểu thao tác Nhiều tốn hạng: Các lệnh chuyển dữ liệu Các lệnh phức tạp hơn Các lệnh số học Cần nhiều thanh ghi hơn Các lệnh logic Chỉ cần ít lệnh trong một chương trình Các lệnh vào/ra ít tốn hạng: Các lệnh điều khiển hệ thống Các lệnh ít phức tạp hơn Các lệnh chuyển điều khiển Cần dùng nhiều lệnh trong một chương trình Nhận/xử lý các lệnh nhanh hơn Phan Trung Kiên 31 Phan Trung Kiên 32 8
- Các lệnh chuyển dữ liệu Các lệnh số học Đặc điểm: Đặc điểm: Thực hiện các phép tốn số học Sao chép dữ liệu từ nguồn sang đích Cĩ ảnh hưởng đến thanh ghi cờ Khơng ảnh hưởng đến các cờ Các lệnh: Các lệnh: ADD: tính tổng hai tốn hạng MOVE: copy dữ liệu từ nguồn đến đích SUBTRACT: tính hiệu hai tốn hạng LOAD: copy dữ liệu từ bộ nhớ đến BXL MULTIPLY: tính tích hai tốn hạng DIVIDE: tích thương hai tốn hạng STORE: copy dữ liệu từ BXL đến bộ nhớ ABSOLUTE: lấy giá trị tuyệt đối của tốn hạng EXCHANGE: trao đổi nội dung của nguồn và đích NEGATE: đổi dấu tốn hạng (lấy bù 2) PUSH: copy dữ liệu từ nguồn đến stack INCREMENT: tăng tốn hạng lên 1 POP: copy dữ liệu từ stack đến đích DECREMENT: giảm tốn hạng đi 1 Phan Trung Kiên 33 Phan Trung Kiên 34 Các lệnh logic Các lệnh vào ra Đặc điểm: Đặc điểm: Thực hiện các phép tốn logic Cĩ ảnh hưởng đến thanh ghi cờ Trao đổi dữ liệu với thiết bị ngoại vi Các lệnh: Các lệnh: AND: thực hiện AND bit hai tốn hạng INPUT: copy dữ liệu từ một cổng xác định đến đích OR:thực hiện OR bit hai tốn hạng OUTPUT: copy dữ liệu từ nguồn đến cổng xác định XOR:thực hiện XOR bit hai tốn hạng NOT: đảo bit của tốn hạng (lấy bù 1) START I/O: chuyển các lệnh đến BXL vào/ra để khởi tạo thao TEST:thực hiện AND hai tốn hạng để lập cờ tác vào/ra SHIFT:thực hiện dịch bit tốn hạng TEST I/O: chuyển thơng tin trạng thái từ hệ thống vào/ra đến ROTATE: thực hiện quay bit tốn hạng đích xác định COMPARE: so sánh hai tốn hạng Phan Trung Kiên 35 Phan Trung Kiên 36 9
- Các lệnh điều khiển hệ thống Các lệnh chuyển điều khiển HALT: dừng thực hiện chương trình Đặc điểm: Điều khiển rẽ nhánh trong chương trình WAIT: dừng thực hiện chương trình; liên tục kiểm tra điều kiện được chỉ định; chương trình PC được nạp giá trị địa chỉ mới được thực hiện khi điều kiện được thỏa mãn Các lệnh: JUMP: nhảy khơng điều kiện đến lệnh mới NO OPERATION: khơng cĩ thao tác nào được JUMP CONDITIONAL: nhảy cĩ điều kiện thực hiện, nhưng chương trình vẫn tiếp tục chạy CALL: lệnh gọi CTC RETURN: trở về từ CTC INTERRUPT: lệnh gọi CTC ngắt INTERRUPT RETURN: trở về từ CTC ngắt Phan Trung Kiên 37 Phan Trung Kiên 38 Minh họa lệnh gọi CTC Thể hiện ở Stack Khëi t¹o Sau lƯnh Sau lƯnh Sau lƯnh Sau lƯnh Sau lƯnh Sau lƯnh néi dung CALL Proc1 CALL Proc2 RETURN CALL Proc2 RETURN RETURN stack Phan Trung Kiên 39 Phan Trung Kiên 40 10
- Các mode địa chỉ Các mode địa chỉ Tốn hạng cĩ thể là: Mode địa chỉ tức thì Một giá trị cụ thể Mode địa chỉ trực tiếp Nội dung của thanh ghi Mode địa chỉ gián tiếp Nội dung của ngăn nhớ Mode địa chỉ thanh ghi Nội dung của cổng vào ra Mode địa chỉ gián tiếp qua thanh ghi Mode địa chỉ là cách thức địa chỉ hĩa trong lệnh Mode địa chỉ dịch chuyển để xác định tốn hạng Mode địa chỉ stack Phan Trung Kiên 41 Phan Trung Kiên 42 Mode địa chỉ tức thì Sơ đồ mode địa chỉ tức thì Tốn hạng là một phần của lệnh Tốn hạng nằm ngay trong trường địa chỉ Lệnh Chỉ cĩ thể là tốn hạng nguồn Truy nhập tốn hạng rất nhanh Mã lệnh Tốn hạng Dải giá trị của tốn hạng bị hạn chế Ví dụ: ADD AX, 10 Phan Trung Kiên 43 Phan Trung Kiên 44 11
- Mode địa chỉ trực tiếp Sơ đồ mode địa chỉ trực tiếp Tốn hạng là ngăn nhớ cĩ địa chỉ được chỉ ra trong lệnh Lệnh BXL tham chiếu bộ nhớ một lần để truy nhập dữ Mã lệnh Địa chỉ liệu Bộ nhớ Khơng gian địa chỉ là hữu hạn Ví dụ: ADD AL, [100] Tốn hạng Phan Trung Kiên 45 Phan Trung Kiên 46 Mode địa chỉ gián tiếp Sơ đồ mode địa chỉ gián tiếp Tốn hạng là nội dung của ngăn nhớ cĩ địa chỉ Lệnh nằm trong một ngăn nhớ khác, ngăn nhớ khác Mã lệnh Địa chỉ đĩ được thể hiện trong lệnh Bộ nhớ Vùng nhớ cĩ thể được tham chiếu là lớn Địa chỉ của t/hạng Cĩ thể gián tiếp nhiều lần BXL phải thực hiện tham chiếu bộ nhớ nhiều lần để tìm tốn hạng ? chậm Tốn hạng Ví dụ: ADD AH, [a] Phan Trung Kiên 47 Phan Trung Kiên 48 12
- Mode địa chỉ thanh ghi Sơ đồ mode địa chỉ thanh ghi Tốn hạng là nội dung của một thanh ghi Số lượng thanh ghi cĩ hạn Lệnh Trường địa chỉ nhỏ (chỉ cần ít bit) Mã lệnh Tên thanh ghi Độ dài lệnh ngắn hơn Tập thanh ghi Nhận lệnh nhanh hơn Khơng tham chiếu bộ nhớ Truy nhập tốn hạng nhanh Tăng số lượng thanh ghi ? tăng tốc độ Tốn hạng Ví dụ: ADD AL, AH Phan Trung Kiên 49 Phan Trung Kiên 50 Mode địa chỉ gián tiếp qua thanh ghi Sơ đồ mode gián tiếp qua Tốn hạng là ngăn nhớ cĩ địa chỉ nằm trong thanh ghi Lệnh một thanh ghi Mã lệnh Tên thanh ghi Thanh ghi này được gọi là thanh ghi con trỏ Bộ nhớ Vùng nhớ cĩ thể được tham chiếu là lớn: 2n, trong đĩn là độ dài (bit) của thanh ghi Tập thanh ghi Ví dụ: SUB AL, [BX] Địa chỉ của t/hạng Tốn hạng Phan Trung Kiên 51 Phan Trung Kiên 52 13
- Mode địa chỉ dịch chuyển Sơ đồ mode địa chỉ dịch Kết hợp hai mode: chuyển Lệnh Mode gián tiếp qua thanh ghi Mã lệnhRegister Address A Mode trực tiếp R Bộ nhớ Trường địa chứa hai thành phần: Tập thanh ghi + Tên một thanh ghi Một hằng số Địa chỉ tốn hạng = ND thanh ghi = hằng số Địa chỉ của t/hạng Ví dụ: ADD AL, [SI + 50] Tốn hạng Phan Trung Kiên 53 Phan Trung Kiên 54 Mode địa chỉ stack Tốn hạng được ngầm hiểu là ngăn nhớ đỉnh ngăn xếp Ví dụ: PUSH AX Lệnh Mã lệnh Ngầm hiểu Ngăn nhớ đỉnh stack Phan Trung Kiên 55 14