Bài giảng Kiến trúc máy tính: Chương 3 - Phan Trung Kiên
lượt xem 17
download
Bài giảng Kiến trúc máy tính: Chương 3 do Phan Trung Kiên biên soạn trình bày về kiến trúc tập lệnh trong máy tính với những nội dung cơ bản về tập thanh ghi, tập lệnh và những ví dụ nghiên cứu về tập lệnh. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức cho mình về lĩnh vực này.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kiến trúc máy tính: Chương 3 - Phan 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 1 Phan Trung Kiên 2 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 Có hai loại thanh ghi: Thanh ghi điều khiển/trạng thái: chứa các thông 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 Ngăn xếp là vùng nhớ có cấu trúc LIFO (Last In Pointer – SP): - 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 chỉ số Các thanh ghi dữ liệu: 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 toá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 toá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 Cờ Sign (SF - cờ đấu): được thiết lập lên một kết quả CPU. của phép toán vừa thực hiện nhỏ hơn 0, hay nói cách Các cờ phép toá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 toá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 toán có nhớ ra ngoà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 ngoà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 ngoà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 Mỗi bộ xử lý có một tập lệnh xác định Nhận toán Cất toán 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 kết toán để 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à Tính toán Giải mã Tính toán Tính toán thao tác địa chỉ toán Xử lý dữ liệu địa chỉ toá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 toán Cất toán Nhận lệnh hạng hạng Mã lệnh Các toán hạng Nhiều Nhiều toán kết hạng quả Tính toán Giải mã Tính toán Tính toán Mã lệnh (opcode): cho biết thao tác cần thực hiện Xử lý dữ Kiểm tra địa chỉ lệnh thao tác lệnh địa chỉ toán hạng liệu địa chỉ toán hạng ngắt Ngắt Các toán hạng (Operands): cho biết: Kết thúc lênh, DL dạng Nơi chứa dữ liệu cần tác động vào: t/h nguồn, t/h đích Không nhận lệnh tiếp theo xâu hoặc vectơ có ngắt 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 toán hạng Xử lý dữ liệu Số lượng toán hạng Lưu trữ dữ liệu Kiểu số Di chuyển dữ liệu Số nguyên Điều khiển thứ tự thực hiện lệnh Số dấu phẩy động Kiểu ký tự Mã của ký tự ASCII, BCD mở rộng, ... Kiểu logic Toán hạng xử lý với cờ Phan Trung Kiên 25 Phan Trung Kiên 26 Số lượng toán hạng Số lượng toán hạng 3 toán hạng: 2 toán hạng: Toán hạng 1, toán hạng 2, kết quả Có một toá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 toán hạng Số lượng toán hạng 1 toán hạng: 0 toán hạng Toán hạng thường là một thanh ghi Điều khiển hệ thống Toá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 toán hạng Các kiểu thao tác Nhiều toá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 toá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: Sao chép dữ liệu từ nguồn sang đích Thực hiện các phép toán số học 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 toán hạng MOVE: copy dữ liệu từ nguồn đến đích SUBTRACT: tính hiệu hai toán hạng LOAD: copy dữ liệu từ bộ nhớ đến BXL MULTIPLY: tính tích hai toán hạng STORE: copy dữ liệu từ BXL đến bộ nhớ DIVIDE: tích thương hai toán hạng ABSOLUTE: lấy giá trị tuyệt đối của toán hạng EXCHANGE: trao đổi nội dung của nguồn và đích NEGATE: đổi dấu toán hạng (lấy bù 2) PUSH: copy dữ liệu từ nguồn đến stack INCREMENT: tăng toán hạng lên 1 POP: copy dữ liệu từ stack đến đích DECREMENT: giảm toá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 toá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 toá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 toán hạng XOR: thực hiện XOR bit hai toán hạng OUTPUT: copy dữ liệu từ nguồn đến cổng xác định NOT: đảo bit của toá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 toán hạng để lập cờ tác vào/ra SHIFT: thực hiện dịch bit toá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 toán hạng COMPARE: so sánh hai toán hạng đích xác định 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: WAIT: dừng thực hiện chương trình; liên tục Điều khiển rẽ nhánh trong chương trình PC được nạp giá trị địa chỉ mới kiểm tra điều kiện được chỉ định; chương trình đượ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ỉ Toá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 toá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ì Toán hạng là một phần của lệnh Toán hạng nằm ngay trong trường địa chỉ Lệnh Chỉ có thể là toán hạng nguồn Truy nhập toán hạng rất nhanh Mã lệnh Toán hạng Dải giá trị của toá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 Toá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] Toá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 Toá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 toán hạng ? chậm Toá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 Toá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 toán hạng nhanh Tăng số lượng thanh ghi ? tăng tốc độ Toá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 Toá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 Toá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 Mode trực tiếp Mã lệnhRegister Address A 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ỉ toán hạng = ND thanh ghi = hằng số Địa chỉ của t/hạng Ví dụ: ADD AL, [SI + 50] Toán hạng Phan Trung Kiên 53 Phan Trung Kiên 54 Mode địa chỉ stack Toá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
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kiến trúc máy tính: Chương 1 - TS. Nguyễn Qúy Sỹ
46 p | 269 | 52
-
Bài giảng Kiến trúc máy tính: Chương 3 - Cấu trúc phần cứng của máy tính
12 p | 269 | 48
-
Bài giảng Kiến trúc máy tính - ĐH Hàng Hải
95 p | 207 | 32
-
Bài giảng Kiến trúc máy tính (238tr)
238 p | 149 | 23
-
Bài giảng Kiến trúc máy tính: Chương 1 - Phạm Hoàng Sơn
70 p | 138 | 20
-
Bài giảng Kiến trúc máy tính: Chương 1 - ThS. Lê Văn Hùng
17 p | 147 | 11
-
Bài giảng Kiến trúc máy tính - Chương 1: Tổng quan về kiến trúc máy tính
40 p | 29 | 9
-
Bài giảng Kiến trúc máy tính: Chương 1 - ThS. Nguyễn Hằng Phương
24 p | 110 | 9
-
Bài giảng Kiến trúc máy tính và hệ điều hành: Chương 1 - Nguyễn Ngọc Duy
30 p | 56 | 6
-
Bài giảng Kiến trúc máy tính: Chương 7 - ThS. Lê Văn Hùng
18 p | 122 | 5
-
Bài giảng Kiến trúc máy tính - Kiến trúc bộ lệnh
78 p | 82 | 4
-
Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu
51 p | 78 | 3
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 3 - Vũ Thị Thúy Hà
89 p | 12 | 3
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 1 - Vũ Thị Thúy Hà
83 p | 9 | 2
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 2 - Vũ Thị Thúy Hà
106 p | 4 | 2
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 4 - Vũ Thị Thúy Hà
64 p | 5 | 2
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 5 - Vũ Thị Thúy Hà
20 p | 6 | 2
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 6 - Vũ Thị Thúy Hà
74 p | 13 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn