intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Kiến trúc máy tính: Chương 3 - Phan Trung Kiên

Chia sẻ: Đức Tùng | Ngày: | Loại File: PDF | Số trang:14

239
lượt xem
17
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kiến trúc máy tính: Chương 3 - Phan Trung Kiên

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2