Bài giảng Kiến trúc máy tính - Chương 1: Tập lệnh. Đặc điểm và chức năng - Nguyễn Thị Phương
10.1 Đặc điểm tập lệnh
Hoạt động (operation) của VXL được quyết định bởi các lệnh nó thực
hiện, đó là các lệnh máy tính (machine instructions hay computer
instructions)
VD: Lệnh STORE: lưu trữ dữ liệu vào bộ nhớ
Tập hợp các lệnh khác nhau mà VXL có thể thực hiện được gọi là tập
lệnh (instruction set) của VXL
Mỗi lệnh phải có những thông tin cần thiết cho bộ xử lý thực hiện
hoạt động
VD: Lệnh STORE ở trên phải đi kèm địa chỉ ngăn nhớ mà dữ liệu được ghi
vào
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 1: Tập lệnh. Đặc điểm và chức năng - Nguyễn Thị Phương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính - Chương 1: Tập lệnh. Đặc điểm và chức năng - Nguyễn Thị Phương
a địa chỉ của toán hạng + Ví dụ Viết chương trình tính giá trị biểu thức sau sử dụng các tập lệnh 0, 1, 2, 3 địa chỉ cho ở bảng dưới = ( + × )/( − × 퐹) 10.2 Các kiểu toán hạng + Dữ liệu kiểu số Tất cả các ngôn ngữ máy đều có dữ liệu dạng số Các số được lưu trữ trong máy tính đều hữu hạn: Hữu hạn về độ lớn của các số biểu diễn trên máy Hữu hạn về độ chính xác đối với số dấu phẩy động Ba kiểu dữ liệu số thông thường trong máy tính: 1. Số nguyên nhị phân hoặc số nhị phân dấu chấm tĩnh 2. Số nhị phân dấu chấm động 3. Số thập phân đóng Mỗi chữ số thập phân được biểu diễn bởi một mã 4 bit 0 = 0000, 1 = 0001,, 8 = 1000 và 9 = 1001 Dấu dương (+): 1100, dấu âm (-): 1101 Chiều dài mã thường là bội của 8b + Dữ liệu kiểu ký tự Một trong những dạng dữ liệu cơ bản là văn bản (text) hoặc xâu ký tự (character strings) Dữ liệu văn bản dưới dạng ký tự không thể lưu trữ hoặc truyền qua hệ thống xử lý dữ liệu và truyền thông vì các hệ thống này được thiết kế cho dữ liệu nhị phân sử dụng bảng mã Bảng mã mã hóa ký tự được sử dụng phổ biến nhất là bảng mã IRA (International Reference Alphabet) Còn được gọi ở Mỹ là bảng mã ASCII (American Standard Code for Information Interchange) Một bảng mã khác được sử dụng để mã hoá các ký tự bảng mã EBCDIC (Extended Binary Coded Decimal Interchange Code) được sử dụng trong các máy mainframe của IBM + Dữ liệu logic Một khối n-bit gồm n phần tử dữ liệu 1 bit, mỗi item có giá trị 0 hoặc 1 Hai ưu điểm của view theo hướng bit: Đôi khi, ta muốn lưu trữ một mảng các bit nhị phân hoặc dữ liệu Boolean/nhị phân, trong đó mỗi phần tử chỉ nhận giá trị 1 (đúng) hoặc 0 (sai). Với kiểu dữ liệu logic, bộ nhớ lưu trữ điều này hiệu quả nhất Trong một số trường hợp chúng ta cần thao tác với các bit Trường hợp phép toán dấu chấm động: dịch các bit có nghĩa Trường hợp chuyển đổi từ mã IRA thành mã thập phân đóng gói: trích xuất 4 bit bên phải của mỗi byte + 10.3 Các kiểu dữ liệu Intel x86 và ARM a. Intel x86 Kiểu dữ liệu Mô tả Các vị trí bộ nhớ kích thước byte, word (16 bits), doubleword (32 bits), quadword (64 bits), và double General quadword (128 bits) với dữ liệu nhị phân bất kỳ Integer Giá trị nhị phân có dấu lưu trữ trong một byte, word, hoặc doubleword, sử dụng dạng biểu diễn bù 2 Ordinal Một số nguyên không dấu lưu trữ trong một byte, word, hoặc doubleword. Unpacked binary coded decimal Biểu diễn một ký tự BCD trong khoảng từ 0 đến 9, với mỗi ký tự dùng một byte (BCD) Packed BCD Biểu diễn 2 ký tự BCD trong 1 byte, một packed BCD có dải giá trị từ 0 đến 99 Địa chỉ hiệu dụng 16-bit, 32-bit, hoặc 64-bit biểu diễn độ lệch (offset) trong một phân đoạn. Được sử Near pointer dụng cho tất cả các con trỏ trong bộ nhớ không phân đoạn và cho các tham chiếu trong một đoạn của bộ nhớ phân đoạn Địa chỉ logic gồm 16-bit trỏ tới một đoạn (segment) và một địa chỉ lệch offset 16, 32, hoặc 64 bits. Far Far pointer pointers được sử dụng để tham chiếu bộ nhớ trong mô hình bộ nhớ phân đoạn Một chuỗi bit liên tục trong đó mỗi bit được coi như một đơn vị độc lập. Chuỗi bit có thể bắt đầu tại bất Bit field cứ vị trí nào trong bất cứ byte nào và có thể chứa tới 32 bit Bit string Một dãy bit liên tục, gồm từ 0 đến 232 - 1 bit. Byte string Một dãy byte, word hoặc doublewords liên tục gồm từ 0 đến 232 - 1 byte. Floating point Xem hình 10.4. Packed SIMD (single instruction, Các kiểu dữ liệu Packed 64-bit and 128-bit multiple data) + Định dạng dữ liệu số x86 + Các kiểu dữ liệu SIMD (Single-Instruction-Multiple-Data) Dùng cho kiến trúc x86 như là 1 phần của mở rộng tập lệnh để tối ưu hóa hiệu năng của các ứng dụng đa phương tiện Các mở rộng tập lệnh gồm MMX (multimedia extensions) và SSE (streaming SIMD extensions) Các kiểu dữ liệu SMID: Byte đóng gói và số nguyên byte đóng gói Word đóng gói và số nguyên word đóng gói Doubleword đóng gói và số nguyên doubleword đóng gói Quadword đóng gói và số nguyên quadword đóng gói Packed single-precision floating-point and packed doubleprecision floating-point + b. Các kiểu dữ liệu của ARM Vi xử lý ARM hỗ trợ các kiểu dữ liệu có kích thước: 8b (byte) 16b (halfword) 32b (word) Đối với tất cả ba kiểu dữ liệu, có một kiểu tương ứng dành cho số nguyên không dấu (số nguyên dương) Tất cả ba kiểu dữ liệu cũng có thể được sử dụng cho số nguyên biểu diễn bù 2 VXL ARM không hỗ trợ phần cứng cho biểu diễn dấu chấm động. Các phép toán cho dấu chấm động phải được thực hiện bằng phần mềm + Hỗ trợ chuyển đổi Endian trong ARM Khái niệm Endian: cách tổ chức dữ liệu trong bộ nhớ máy tính Có 2 loại endian: Little Endian: byte có giá trị nhỏ nhất lưu trữ ở vị trí nhớ có địa chỉ nhỏ nhất Big Endian: byte có giá trị lớn nhất lưu trữ ở vị trí nhớ có địa chỉ nhỏ nhất ARM cho phép chuyển đổi giữa hai dạng endian: sử dụng E-bit trong thanh ghi PS( thanh ghi trạng thái chương trình) E-bit = 1: Big endian E-bit = 0: Little endian + 10.4 Các loại operation (hoạt động, phép toán) Có rất nhiều các loại lệnh khác nhau đối với mỗi thế hệ máy tính. Tuy nhiên, một số loại chung đối với tất cả các máy tính như sau: a. Các lệnh truyền dữ liệu b. Các lệnh tính toán số học c. Các lệnh logic d. Các lệnh chuyển đổi e. Các lệnh vào/ra f. Các lệnh điều khiển hệ thống g. Các lệnh truyền điều khiển a. Truyền dữ liệu . Đây là lệnh cơ bản nhất của tất cả các hệ máy tính . Cần phải định rõ: o Địa chỉ của các toán hạng nguồn và đích, loại vị trí: bộ nhớ, thanh ghi, ngăn xếp o Kích thước của dữ liệu được truyền o Chế độ định địa chỉ đối với mỗi toán hạng . Các lệnh cơ bản MOVE Copy dữ liệu từ nguồn đến đích LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ Truyền EXCHANGE Trao đổi nội dung của nguồn và đích dữ liệu CLEAR Chuyển các bit 0 vào toán hạng đích SET Chuyển các bit 1 vào toán hạng đích PUSH Cất nội dung toán hạng nguồn vào ngăn xếp POP Lấy nội dung đỉnh ngăn xếp đưa đến toán hạng đích + b. Số học Hầu hết các máy đều cung cấp các phép toán số học cơ bản: cộng, trừ, nhân, chia Cố định với toán hạng là số nguyên có dấu. Một số máy có các phép toán trên với: Số thực dấu chấm động Số thập phân đóng Một số phép toán khác có dạng lệnh một toán hạng: Tuyệt đối: Tính giá trị tuyệt đối của một toán hạng Phép đảo: Đổi dấu một toán hạng Phép tăng: Cộng toán hạng thêm 1 đơn vị Phép giảm: Trừ toán hạng đi 1 đơn vị + Một số lệnh số học ADD Cộng hai toán hạng SUBTRACT Trừ hai toán hạng MULTIPLY Nhân hai toán hạng Xử lý DIVIDE Chia hai toán hạng số học ABSOLUTE Lấy trị tuyệt đối toán hạng NEGATE Đổi dấu toán hạng (lấy bù 2) INCREMENT Tăng toán hạng thêm 1 DECREMENT Giảm toán hạng đi 1 c. Phép toán logic (luận lý) Các phép toán logic cơ bản AND Thực hiện phép AND hai toán hạng OR Thực hiện phép OR hai toán hạng NOT Đảo bit của toán hạng (lấy bù 1) Xử lý XOR Thực hiện phép XOR hai toán hạng TEST Kiểm tra điều kiện cụ thể; thiết lập cờ dựa trên kết quả logic So sánh logic hoặc số học của hai hoặc nhiều toán hạng; thiết COMPARE lập cờ dựa trên kết quả SHIFT Dịch trái (phải) toán hạng ROTATE Quay vòng trái (phải) toán hạng + Cho phép thực hiện với các khối n-bit Ngoài ra, gồm có một số phép toán dịch và xoay vòng Ví dụ về các phép toán dịch và xoay vòng + d. Chuyển đổi Lệnh chuyển đổi: thay đổi định dạng hoặc tác động vào định dạng của dữ liệu Ví dụ 1: chuyển đổi từ nhị phân sang mã thập phân đóng Ví dụ 2: chuyển đổi từ mã IRA sang mã EBCDIC qua một bảng gồm 256 byte trong bộ nhớ chính. +e. Vào/ra Các lệnh vào/ra liên quan đến: Cơ chế địa chỉ: I/O chương trình, ánh xạ riêng biệt - Isolated programmed I/O I/O chương trình, ánh xạ bộ nhớ - Memory-mapped programmed I/O Cơ chế DMA Cơ chế điều khiển I/O sử dụng bộ xử lý vào ra Nhiều tập lệnh của các hệ VXL chỉ cung cấp một vài lệnh I/O với các hoạt động cụ thể được xác định bởi các tham số, các mã hoặc các từ lệnh Truyền dữ liệu từ một cổng hoặc thiết bị I/O INPUT xác định đến đích (VD: Bộ nhớ chính hoặc thanh ghi bộ xử lý) Truyền dữ liệu từ nguồn xác định đến cổng OUTPUT Điều hoặc thiết bị I/O khiển vào/ra Truyền lệnh đến bộ xử lý I/O để bắt đầu hoạt START I/O động I/O Truyền thông tin trạng thái từ hệ thống I/O đến TEST I/O đích xác định f. Điều khiển hệ thống • Các câu lệnh có thể được thực hiện chỉ khi VXL trong trạng thái đặc quyền hoặc đang thực hiện một chương trình trong vùng đặc quyền đặc biệt của bộ nhớ. • Thông thường các lệnh này được dành riêng cho hệ điều hành • Ví dụ về các hoạt động điều khiển hệ thống: • Một câu lệnh điều khiển hệ thống có thể đọc hoặc thay đổi thanh ghi điều khiển • Câu lệnh để đọc hoặc thay đổi khóa bảo vệ bộ nhớ • Truy cập vào các khối điều khiển tiến trình trong hệ thống đa chương trình + g. Truyền điều khiển Các hoạt động truyền điều khiển là cần thiết: Cần thiết để có thể thực thi mỗi câu lệnh nhiều hơn một lần Hầu như mọi chương trình đều gồm có việc ra quyết định Cơ chế phân tách các nhiệm vụ ra thành các công việc nhỏ hơn có thể thực hiện tại các thời điểm khác nhau Các hoạt động truyền điều khiển nói chung: Rẽ nhánh: Rẽ nhánh có điều kiện: chỉ rẽ nhánh (thiết lập địa chỉ (toán hạng của lệnh) vào thanh ghi PC) khi một điều kiện nhất định được thỏa mãn Rẽ nhánh không điều kiện: việc rẽ nhánh luôn được thực hiện. Lệnh nhảy Lệnh gọi thủ tục + Truyền điều khiển Các lệnh nhảy và gọi thủ tục JUMP (BRANCH) Truyền không điều kiện; tải địa chỉ xác định vào PC JUMP Kiểm tra điều kiện cụ thể; tải địa chỉ xác định vào PC CONDITIONAL hoặc không làm gì tùy thuộc vào điều kiện Cất nội dung của PC (địa chỉ trở về) vào một vị trí xác CALL định; Nạp địa chỉ lệnh đầu tiên của chương trình con vào PC Đặt địa chỉ trở về trả lại cho PC để trở về chương trình RETURN Truyền chính điều khiển SKIP Tăng PC để bỏ qua lệnh tiếp theo SKIP Kiểm tra điều kiện cụ thể; bỏ qua lệnh hoặc không làm gì CONDITIONAL tùy thuộc vào điều kiện HALT Dừng thực thi chương trình Dừng thực thi chương trình; liên tục kiểm tra điều kiện cụ WAIT (HOLD) thể; quay lại thực thi tiếp khi điều kiện được thỏa mãn Không có hành động nào được thực hiện, nhưng việc NO OPERATION thực thi chương trình vẫn được tiếp tục + Ví dụ một số lệnh rẽ nhánh BRP X: Rẽ nhánh đến vị trí X nếu kết quả dương. BRN X: Rẽ nhánh đến vị trí X nếu kết quả âm. BRZ X: Rẽ nhánh đến vị trí X nếu kết quả là 0. BRO X: Rẽ nhánh đến vị trí X nếu xảy ra tràn. + Hành động của VXL đối với các loại hoạt động Truyền dữ liệu: Truyền dữ liệu từ một vị trí đến vị trí khác Nếu gồm bộ nhớ: Xác định địa chỉ bộ nhớ Thực hiện việc chuyển địa chỉ ảo sang đ/c thực tế Kiểm tra cache Bắt đầu hoạt động đọc/ghi Tính toán số học Có thể bao gồm cả hoạt động truyền dữ liệu (trước hoặc sau khi tính toán) Các phép toán được thực hiện trong ALU Thiết lập các mã điều kiện và các cờ + Hành động của VXL đối với các loại hoạt động (tiếp) Tính toán logic: giống tính toán số học Chuyển đổi: tương tự như tính toán số học và logic. Có thể gồm một logic đặc biệt để thực hiện chuyển đổi Truyền điều khiển: Cập nhật thanh ghi PC. Với lời gọi/trả về chương trình con, quản lý các thông số đi qua hoặc liên kết Vào/ra Đưa ra các lệnh cho module I/O Trong chế đó memory-mapped I/O, xác định địa chỉ I/O + 10.5 Các loại hoạt động Intel x86 và ARM Bảng12.8 Các loại hoạt động x86 (Với các ví dụ của các hoạt động + thông thường) (page 1 of 2) Bảng12.8 Các loại hoạt động x86 (Với các ví dụ của các hoạt động thông thường) (page 2 of 2) Các cờ trạng thái x86 Bảng 12.10 Các mã điều kiện x86 cho lệnh SETcc và lệnh nhảy có điều kiện + Ví dụ 1. Với mỗi số được mã hóa thập phân đóng như dưới đây, xác định giá trị số thập phân tương ứng: a. 0111 0011 0000 1001 b. 0101 1000 0010 c. 0100 1010 0110 2. VXL có kích thước từ nhớ là 1 byte. Giá trị số nguyên lớn nhất và nhỏ nhất biểu diễn theo các dạng dưới đây là bao nhiêu a. Số nguyên không dấu b. Số nguyên dạng dấu – độ lớn c. Số bù hai d. Số thập phân đóng không dấu e. Số thập phân đóng có dấu 3. Thực hiện dịch trái logic, dịch phải logic, dịch trái số học, dịch phải số học , vòng trái, vòng phải 4b với word 16b sau: 1001 1101 1100 0001 +Các lệnh Đơn-lệnh, nhiều-dữ liệu x86 (Single Instruction – Multiple Data - SIMD Instructions) Năm 1996 Intel giới thiệu công nghệ MMX cho dòng VXL Pentium MMX là một tập các lệnh được tối ưu hóa cao cho các chức năng đa phương tiện Các dữ liệu video và audio thường bao gồm các mảng lớn các kiểu dữ liệu nhỏ Ba kiểu dữ liệu mới được định nghĩa trong MMX Packed Byte Packed word Packed doubleword Mỗi kiểu dữ liệu có kích thước 64 bit và gồm có nhiều trường dữ liệu nhỏ hơn, các trường này chứa dữ liệu số nguyên dấu phẩy tĩnh Tập lệnh MMX Note: If an instruction supports multiple data types [byte (B), word (W), doubleword (D), quadword (Q)], the data types are indicated in brackets. + Image Compositing on Color Plane Representation Các loại câu lệnh ARM Các lệnh tải Các lệnh rẽ Các lệnh xử và lưu trữ dữ nhánh lý dữ liệu liệu Các lệnh Các lệnh Các lệnh mở cộng trừ nhân rộng song song Các lệnh truy cập vào thanh ghi trạng thái Các điều kiện ARM cho thực thi câu lệnh điều kiện + Tổng kết Tập lệnh: Đặc điểm và chức năng Chương 10 Các kiểu dữ liệu Intel x86 và ARM Đặc điểm lệnh máy Các loại hoạt động Các thành phần của lệnh máy Truyền dữ liệu Biểu diễn lệnh Tính toán số học Các loại lệnh Logical Number of addresses Chuyển đổi Thiết kế tập lệnh Vào/ra Các loại toán hạng Điều khiển hệ thống Số Ký tự Truyền điều khiển Dữ liệu logic Các loại hoạt động trong Intel x86 và ARM + Câu hỏi chương 10 1 Các thành phần điển hình của một lệnh máy? 2 Toán hạng nguồn và đích có thể được đặt ở đâu? 3 Nếu một lệnh có 4 địa chỉ, mục đích của từng địa chỉ là gì? 4 Trình bày ngắn gọn 5 vấn đề thiết kế tập lệnh quan trọng. 5 Các loại toán hạng điển hình trong tập lệnh máy? 6 Mối quan hệ giữa mã ký tự IRA và biểu diễn packed decimal? 7 Phân biệt dịch số học và dịch logic? 8 Tại sao phải truyền lệnh điều khiển? 9 Trình bày hai cách tạo điều kiện để kiểm tra một lệnh rẽ nhánh 10 Ý nghĩa của thuật ngữ làm thủ tục lồng nhau là gì? 11 Liệt kê ba vị trí có thể lưu trữ địa chỉ trả về của thủ tục có trả về. 12 Phân biệt endian lớn và endian nhỏ?
File đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_1_tap_lenh_dac_diem_va_c.pdf