HC VIN NG N HNG KHOA H THNG

  • Slides: 33
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 I Hà Nội – 2016

Trạng thái của chu kỳ lệnh

Trạng thái của chu kỳ lệnh

Trạng thái của chu kỳ lệnh

Trạng thái của chu kỳ lệnh

Mô hình lập trình của máy tính

Mô hình lập trình của máy tính

Tập thanh ghi v Chức năng và đặc điểm: § Chứa các thông tin

Tập thanh ghi v Chức năng và đặc điểm: § Chứa các thông tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của CPU § Được coi là mức đầu tiên của hệ thống nhớ § Số lượng thanh ghi nhiều Æ tăng hiệu năng của CPU § Có hai loại thanh ghi: • Các thanh ghi lập trình được • Các thanh ghi không lập trình được

Phân loại thanh ghi theo chức năng v Thanh ghi địa chỉ: quản lý

Phân loại thanh ghi theo chức năng v Thanh ghi địa chỉ: quản lý địa chỉ của ngăn nhớ hay cổng vào-ra. v Thanh ghi dữ liệu: chứa tạm thời các dữ liệu. v Thanh ghi đa năng: có thể chứa địa chỉ hoặc dữ liệu. v Thanh ghi điều khiển/trạng thái: chứa các thông tin điều khiển và trạng thái của CPU. v Thanh ghi lệnh: chứa lệnh đang được thực %hiện.

Một số thanh ghi điển hình v Các thanh ghi địa chỉ § §

Một số thanh ghi điển hình v Các thanh ghi địa chỉ § § Bộ đếm chương trình PC (Program Counter) Con trỏ dữ liệu DP (Data Pointer) Con trỏ ngăn xếp SP (Stack Pointer) Thanh ghi cơ sở và thanh ghi chỉ số (Base Register & Index Register) v Các thanh ghi dữ liệu v Thanh ghi trạng thái

Bộ đếm chương trình PC v Còn được gọi là con trỏ lệnh IP

Bộ đếm chương trình PC v Còn được gọi là con trỏ lệnh IP (Instruction Pointer) v Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vào. v Sau khi một lệnh được nhận vào, nội dung PC tự động tăng để trỏ sang lệnh kế tiếp.

Minh họa bộ đếm chương trình

Minh họa bộ đếm chương trình

Thanh ghi con trỏ dữ liệu v Chứa địa chỉ của ngăn nhớ dữ

Thanh ghi con trỏ dữ liệu v Chứa địa chỉ của ngăn nhớ dữ liệu mà CPU muốn truy nhập v Thường có một số thanh ghi con trỏ dữ liệu

Minh hoạ thanh ghi con trỏ dữ liệu

Minh hoạ thanh ghi con trỏ dữ liệu

Ngăn xếp (Stack) v Ngăn xếp là vùng nhớ có cấu trúc LIFO (Last

Ngăn xếp (Stack) v Ngăn xếp là vùng nhớ có cấu trúc LIFO (Last In First Out) v Ngăn xếp thường dùng để phục vụ cho chương trình con v Đáy ngăn xếp là một ngăn nhớ xác định v Đỉnh ngăn xếp là thông tin nằm ở vị trí trên cùng trong ngăn xếp v Đỉnh ngăn xếp có thể bị thay đổi

Con trỏ ngăn xếp SP (Stack Pointer) v Chứa địa chỉ của ngăn nhớ

Con trỏ ngăn xếp SP (Stack Pointer) v Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp v Khi cất một thông tin vào ngăn xếp: § Nội dung của SP tự động giảm § Thông tin được cất vào ngăn nhớ được trỏ bởi SP v Khi lấy một thông tin ra khỏi ngăn xếp: § Thông tin được đọc từ ngăn nhớ được trỏ bởi SP § Nội dung của SP tự động tăng v Khi ngăn xếp rỗng, SP trỏ vào đáy

Minh họa con trỏ ngăn xếp SP

Minh họa con trỏ ngăn xếp SP

Thanh ghi cơ sở và thanh ghi chỉ số v Thanh ghi cơ sở:

Thanh ghi cơ sở và thanh ghi chỉ số v Thanh ghi cơ sở: chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở) v 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ở (chỉ số) v Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số

Minh họa thanh ghi cơ sở và thanh ghi chỉ số

Minh họa thanh ghi cơ sở và thanh ghi chỉ số

Các thanh ghi dữ liệu v Chứa các dữ liệu tạm thời hoặc các

Các thanh ghi dữ liệu v Chứa các dữ liệu tạm thời hoặc các kết quả trung gian v Cần có nhiều thanh ghi dữ liệu v Các thanh ghi số nguyên: 8, 16, 32, 64 bit v Các thanh ghi số dấu phẩy động

Thanh ghi trạng thái (Status Register) v Còn gọi là thanh ghi cờ (Flag

Thanh ghi trạng thái (Status Register) v Còn gọi là thanh ghi cờ (Flag Register) v Chứa các thông tin trạng thái của CPU § Các cờ phép toán: báo hiệu trạng thái của kết quả phép toán § Các cờ điều khiển: biểu thị trạng thái điều khiển của CPU

Ví dụ cờ phép toán v Cờ Zero (cờ rỗng): được thiết lập lên

Ví dụ cờ phép toán v Cờ Zero (cờ rỗng): được thiết lập lên 1 khi kết quả của phép toán bằng 0. v Cờ Sign (cờ dấu): được thiết lập lên 1 khi kết quả phép toán nhỏ hơn 0 v Cờ Carry (cờ nhớ): được thiết lập lên 1 nếu phép toán có nhớ ra ngoài bit cao nhất cờ báo tràn với số không dấu. v Cờ Overflow (cờ tràn): được thiết lập lên 1 nếu cộng hai số nguyên 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

Ví dụ cờ điều khiển v Cờ Interrupt (Cờ cho phép ngắt): § Nếu

Ví dụ cờ điều khiển v Cờ Interrupt (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 gửi tớ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 gửi tới

Tập thanh ghi của một số bộ xử lý

Tập thanh ghi của một số bộ xử lý

Giới thiệu chung về lệnh máy v Mỗi bộ xử lý có một tập

Giới thiệu chung về lệnh máy v Mỗi bộ xử lý có một tập lệnh xác định v Tập lệnh thường từ hàng chục đến hàng trăm lệnh v Mỗi lệnh là một chuỗi số nhị phân mà BXL hiểu được để thực hiện một thao tác xác định v Các lệnh được mô tả bằng ký hiệu gợi nhớ đó là các lệnh hợp ngữ

Cấu trúc lệnh mã máy v Mã lệnh (operation code opcode): mã hóa cho

Cấu trúc lệnh mã máy v Mã lệnh (operation code opcode): mã hóa cho thao tác mà bộ xử lý phải thực hiện v Các toá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 (dữ liệu vào của thao tác), t/h đích (dữ liệu ra của thao tác) § Cho biết địa chỉ của lệnh tiếp theo

Mô tả lệnh v Lệnh máy là mã nhị phân v Để dễ hiểu

Mô tả lệnh v Lệnh máy là mã nhị phân v Để dễ hiểu và dễ nhớ đối với con người, người ta mô tả lệnh bằng các ký hiệu gợi nhớ § Ví dụ: ADD, SUB, LOAD v Toán hạng có thể được mô tả như sau: § ADD A, B

Các kiểu lệnh v Xử lý dữ liệu v Lưu trữ dữ liệu v

Các kiểu lệnh v Xử lý dữ liệu v Lưu trữ dữ liệu v Di chuyển dữ liệu v Điều khiển thứ tự thực hiện lệnh

Các kiểu toán hạng v Số lượng toán hạng v Kiểu số § Số

Các kiểu toán hạng v Số lượng toán hạng v Kiểu số § Số nguyên § Số dấu phẩy động v Kiểu ký tự § Mã của ký tự ASCII, BCD mở rộng, . . . v Kiểu logic § Toán hạng xử lý với cờ

Số lượng toán hạng v 3 toán hạng: § § § Toán hạng 1,

Số lượng toán hạng v 3 toán hạng: § § § Toán hạng 1, toán hạng 2, kết quả a=b+c Có thể dẫn tới lệnh tiếp theo (thường là ngầm hiểu) Loại này không phổ dụng Cần rất nhiều từ lệnh dài để chứa loại này v Ví dụ: SUB r 1, r 2, r 3 (Motorola)

Số lượng toán hạng v 2 toán hạng: § § Có một toán hạng

Số lượng toán hạng v 2 toán hạng: § § Có một toán hạng vừa là nguồn, vừa là đích a=a+b Giảm độ dài của lệnh Có thể thêm thao tác: • Dùng vùng nhớ tạm để chứa giá trị trước khi thực hiện v Ví dụ: ADD AX, BX

Số lượng toán hạng v 1 toán hạng: § Toán hạng thường là một

Số lượng toán hạng v 1 toán hạng: § Toán hạng thường là một thanh ghi § Toán hạng thứ hai được ngầm hiểu § Phổ dụng trong các máy xa xưa v Ví dụ: PUSH AX

Số lượng toán hạng v 0 toán hạng § Điều khiển hệ thống §

Số lượng toán hạng v 0 toán hạng § Điều khiển hệ thống § Ít dùng v Ví dụ: NOP (No OPeration)

So sánh số lượng toán hạng v Nhiều toán hạng: § § Các lệnh

So sánh số lượng toán hạng v Nhiều toán hạng: § § Các lệnh phức tạp hơn Cần nhiều thanh ghi hơn Chỉ cần ít lệnh trong một chương trình Nhận lệnh và thực hiện lệnh chậm hơn v Ít toán hạng: § § Các lệnh ít phức tạp hơ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 Nhận lệnh và thực hiện lệnh nhanh hơn

Các kiểu toán hạng v Địa chỉ v Số § Số nguyên § Số

Các kiểu toán hạng v Địa chỉ v Số § Số nguyên § Số dấu phẩy động v Ký tự Ví dụ: mã ASCII v Dữ liệu logic Các bit hoặc cá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

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