HC VIN NG N HNG KHOA H THNG

  • Slides: 32
Download presentation
HỌC VIỆN NG N HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ KIẾN TRÚC

HỌC VIỆN NG N HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ KIẾN TRÚC MÁY TÍNH CHƯƠNG 4: KIẾN TRÚC TẬP LỆNH II Hà Nội – 2016

Các kiểu thao tác của lệnh v Các lệnh chuyển dữ liệu v Các

Các kiểu thao tác của lệnh v Các lệnh chuyển dữ liệu v Các lệnh số học v Các lệnh logic v Các lệnh vào/ra v Các lệnh điều khiển hệ thống v Các lệnh chuyển điều khiển

Các lệnh chuyển dữ liệu v Đặc điểm: § Sao chép dữ liệu từ

Các lệnh chuyển dữ liệu v Đặc điểm: § Sao chép dữ liệu từ nguồn sang đích § Không ảnh hưởng đến các cờ v Các lệnh: § § § MOVE: LOAD: STORE: EXCHANGE: PUSH: POP: copy dữ liệu từ nguồn đến đích copy dữ liệu từ bộ nhớ đến BXL copy dữ liệu từ BXL đến bộ nhớ trao đổi nội dung của nguồn và đích copy dữ liệu từ nguồn đến stack copy dữ liệu từ stack đến đích

Các lệnh số học v Đặc điểm: § Thực hiện các phép toán số

Các lệnh số học v Đặc điểm: § Thực hiện các phép toán số học § Có ảnh hưởng đến thanh ghi cờ v Các lệnh: § § § § ADD: SUBTRACT: MULTIPLY: DIVIDE: ABSOLUTE: NEGATE: INCREMENT: DECREMENT: tính tổng hai toán hạng tính hiệu hai toán hạng tính tích hai toán hạng tích thương hai toán hạng lấy giá trị tuyệt đối của toán hạng đổi dấu toán hạng (lấy bù 2) tăng toán hạng lên 1 giảm toán hạng đi 1

Các lệnh logic v Đặc điểm: § Thực hiện các phép toán logic §

Các lệnh logic v Đặc điểm: § Thực hiện các phép toán logic § Có ảnh hưởng đến thanh ghi cờ v Các lệnh: § § § § AND: thực hiện AND bit hai toán hạng OR: thực hiện OR bit hai toán hạng XOR: thực hiện XOR bit hai toán hạng NOT: đảo bit của toán hạng (lấy bù 1) TEST: thực hiện AND hai toán hạng để lập cờ SHIFT: thực hiện dịch bit toán hạng ROTATE: thực hiện quay bit toán hạng COMPARE: so sánh hai toán hạng

Minh hoạ các lệnh AND, OR, XOR v Giả sử có hai thanh ghi

Minh hoạ các lệnh AND, OR, XOR v Giả sử có hai thanh ghi chứa dữ liệu như sau: (R 1) = 1010 (R 2) = 0000 1111 v R 1 ← (R 1) AND (R 2) = 0000 1010 Phép toán AND dùng để xoá một số bit và giữ nguyên một số bit còn lại của toán hạng. v R 1 ← (R 1) OR (R 2) = 1010 1111 Phép toán OR dùng để thiết lập một số bit và giữ nguyên một số bit còn lại của toán hạng. v R 1 ←(R 1) XOR (R 2) = 1010 0101 Phép toán XOR dùng để đảo một số bit và giữ nguyên một số bit còn lại của toán hạng.

Các thao tác SHIFT và ROTAT

Các thao tác SHIFT và ROTAT

Các lệnh vào ra v Đặc điểm: § Trao đổi dữ liệu với thiết

Các lệnh vào ra v Đặc điểm: § Trao đổi dữ liệu với thiết bị ngoại vi v Các lệnh: § INPUT: copy dữ liệu từ một cổng xác định đến đích § OUTPUT: copy dữ liệu từ nguồn đến cổng xác định § START I/O: chuyển các lệnh đến BXL vào/ra để khởi tạo thao tác vào/ra § TEST I/O: chuyển thông tin trạng thái từ hệ thống vào/ra đến đích xác định

Các lệnh điều khiển hệ thống v HALT: dừng thực hiện chương trình v

Các lệnh điều khiển hệ thống v HALT: dừng thực hiện chương trình v 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 được thực hiện khi điều kiện được thỏa mãn v NO OPERATION: không có thao tác nào được thực hiện, nhưng chương trình vẫn tiếp tục chạy

Các lệnh chuyển điều khiển v Đặc điểm: § Điều khiển rẽ nhánh trong

Các lệnh chuyển điều khiển v Đặc điểm: § Điều khiển rẽ nhánh trong chương trình § PC được nạp giá trị địa chỉ mới v Các lệnh: § § § JUMP: nhảy không điều kiện đến lệnh mới JUMP CONDITIONAL: nhảy có điều kiện 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

Lệnh CALL và RETURN v Lệnh gọi chương trình con: lệnh CALL § Cất

Lệnh CALL và RETURN v Lệnh gọi chương trình con: lệnh CALL § Cất nội dung PC (chứa địa chỉ của lệnh_kế_tiếp) ra Stack § Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con được gọi Bộ xử lý được chuyển sang thực hiện chương trình con tương ứng v Lệnh trở về từ chương trình con: lệnh RETURN § Lấy địa chỉ của lệnh_kế_tiếp được cất ở Stack nạp trả lại cho PC Æ Bộ xử lý được điều khiển quay trở về thực hiện tiếp lệnh nằm sau lệnh CALL

Minh hoạ lệnh CALL và RETURN

Minh hoạ lệnh CALL và RETURN

Minh họa lệnh gọi CTC

Minh họa lệnh gọi CTC

Thể hiện ở Stack

Thể hiện ở Stack

Các mode địa chỉ v Toán hạng có thể là: § § Một giá

Các mode địa chỉ v Toán hạng có thể là: § § Một giá trị cụ thể Nội dung của thanh ghi Nội dung của ngăn nhớ Nội dung của cổng vào ra v Mode địa chỉ là cách thức địa chỉ hóa trong lệnh để xác định toán hạng

Các mode địa chỉ v Mode địa chỉ tức thì v Mode địa chỉ

Các mode địa chỉ v Mode địa chỉ tức thì v Mode địa chỉ trực tiếp v Mode địa chỉ gián tiếp v Mode địa chỉ thanh ghi v Mode địa chỉ gián tiếp qua thanh ghi v Mode địa chỉ dịch chuyển v Mode địa chỉ stack

Mode địa chỉ tức thì v Toán hạng là một phần của lệnh v

Mode địa chỉ tức thì v Toán hạng là một phần của lệnh v Toán hạng nằm ngay trong trường địa chỉ v Chỉ có thể là toán hạng nguồn v Truy nhập toán hạng rất nhanh v Dải giá trị của toán hạng bị hạn chế v Ví dụ: ADD AX, 10

Mode địa chỉ trực tiếp v Toán hạng là ngăn nhớ có địa chỉ

Mode địa chỉ trực tiếp v Toán hạng là ngăn nhớ có địa chỉ được chỉ ra trong lệnh v BXL tham chiếu bộ nhớ một lần để truy nhập dữ liệu v Không gian địa chỉ là hữu hạn v Ví dụ: ADD AL, [100]

Sơ đồ mode địa chỉ trực tiếp

Sơ đồ mode địa chỉ trực tiếp

Mode địa chỉ gián tiếp v Toán hạng là nội dung của ngăn nhớ

Mode địa chỉ gián tiếp v Toán hạng là nội dung của ngăn nhớ có địa chỉ nằm trong một ngăn nhớ khác, ngăn nhớ khác đó được thể hiện trong lệnh v Vùng nhớ có thể được tham chiếu là lớn v Có thể gián tiếp nhiều lần v BXL phải thực hiện tham chiếu bộ nhớ nhiều lần để tìm toán hạng chậm v Ví dụ: ADD AH, [a]

Sơ đồ mode địa chỉ gián tiếp

Sơ đồ mode địa chỉ gián tiếp

Mode địa chỉ thanh ghi v Toán hạng là nội dung của một thanh

Mode địa chỉ thanh ghi v Toán hạng là nội dung của một thanh ghi v Số lượng thanh ghi có hạn v Trường địa chỉ nhỏ (chỉ cần ít bit) § Độ dài lệnh ngắn hơn § Nhận lệnh nhanh hơn v Không tham chiếu bộ nhớ v Truy nhập toán hạng nhanh v Tăng số lượng thanh ghi tăng tốc độ v Ví dụ: ADD AL, AH

Sơ đồ mode địa chỉ thanh ghi

Sơ đồ mode địa chỉ thanh ghi

Mode địa chỉ gián tiếp qua thanh ghi v Toán hạng là ngăn nhớ

Mode địa chỉ gián tiếp qua thanh ghi v Toán hạng là ngăn nhớ có địa chỉ nằm trong một thanh ghi v Thanh ghi này được gọi là thanh ghi con trỏ v Vùng nhớ có thể được tham chiếu là lớn: 2 n, trong đó n là độ dài (bit) của thanh ghi v Ví dụ: SUB AL, [BX]

Sơ đồ mode gián tiếp qua thanh ghi

Sơ đồ mode gián tiếp qua thanh ghi

Mode địa chỉ dịch chuyển v Kết hợp hai mode: § Mode gián tiếp

Mode địa chỉ dịch chuyển v Kết hợp hai mode: § Mode gián tiếp qua thanh ghi § Mode trực tiếp v Trường địa chứa hai thành phần: § Tên một thanh ghi § Một hằng số v Địa chỉ toán hạng = ND thanh ghi + hằng số v Ví du: ADD AL, [SI + 50]

Sơ đồ mode địa chỉ dịch chuyển

Sơ đồ mode địa chỉ dịch chuyển

Mode địa chỉ stack v Toán hạng được ngầm hiểu là ngăn nhớ đỉnh

Mode địa chỉ stack v Toán hạng được ngầm hiểu là ngăn nhớ đỉnh ngăn xếp v Ví dụ: PUSH AX

Khái niệm về lập trình hợp ngữ v Hợp ngữ là ngôn ngữ lập

Khái niệm về lập trình hợp ngữ v Hợp ngữ là ngôn ngữ lập trình bậc thấp v Phụ thuộc vào bộ xử lý cụ thể v Lập trình theo các ký hiệu lệnh v Chương trình dịch: assembler v Cú pháp: § Các lệnh của tập lệnh § Các lệnh giả của chương trình dịch

CISC và RISC v CISC(Complex Instruction Set Computer): § Máy tính với tập lệnh

CISC và RISC v CISC(Complex Instruction Set Computer): § Máy tính với tập lệnh phức tạp § Các bộ xử lý truyền thống: Intel x 86, Motorola 680 x 0 v RISC(Reduced Instruction Set Computer): § Máy tính với tập lệnh thu gọn § Sun. SPARC, Power PC, MIPS, ARM. . . § RISC đối nghịch với CISC

Các đặc trưng của RISC v Số lượng lệnh ít v Hầu hết các

Các đặc trưng của RISC v Số lượng lệnh ít v Hầu hết các lệnh truy nhập toán hạng ở các thanh ghi v Truy nhập bộ nhớ bằng các lệnh LOAD/STORE v Thời gian thực hiện lệnh là một chu kỳ máy v Các lệnh có độ dài cố định (32 bit) v Số lượng khuôn dạng lệnh là ít (<=4) v CPU có tập thanh ghi lớn v Có ít mode địa chỉ (<=4) v Hỗ trợ các thao tác của ngôn ngữ bậc cao v Đều được thiết kế kiểu pipeline lện