1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng kiến trúc máy tính chương 3 phan trung kiên

14 554 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 492,78 KB

Nội dung

Phan Trung Kiên 5Một số thanh ghi điển hình „ Các thanh ghi địa chỉ „ Các thanh ghi dữ liệu „ Thanh ghi trạng thái Các thanh ghi địa chỉ: „ Chức năng: dùng để quản lý địa chỉ của ngăn nh

Trang 1

Chương 3 Tập Lệnh

Phan Trung Kiên Đại học Tây Bắc

Chương 3 Kiến Trúc Tập Lệnh

3.1 Tập thanh ghi

„ 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

hay cổng vào-ra

liệu

tin điều khiển và trạng thái của CPU

Trang 2

Phan Trung Kiên 5

Một số thanh ghi điển hình

„ Các thanh ghi địa chỉ

„ Các thanh ghi dữ liệu

„ Thanh ghi trạng thái

Các thanh ghi địa chỉ:

„ Chức năng: dùng để quản lý địa chỉ của ngăn nhớ hay cổng vào – ra

„ 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.

Bộ đếm chương trình (Program

Counter – PC):

sẽ được nhận vào

của PC tự động tăng để trỏ sang lệnh kế tiếp

nằm ngay sau lệnh vừa nhận

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

Trang 3

Phan Trung Kiên 9

Thanh ghi con trỏ dữ liệu (Data

Pointer – DP):

muốn truy nhập

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

Ngăn xếp (Stack)

- First Out)

trình con

trong ngăn xếp

Thanh ghi con trỏ ngăn xếp (Stack

Pointer – SP):

„ 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

„ Thông tin được đọc từ ngăn nhớ được trỏ bởi SP

„ Nội dung của SP tự động tăng

Trang 4

Phan Trung Kiên 13

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

Thanh ghi cơ sở (Base Register) và thanh ghi chỉ số (Index Register):

sở

ngăn nhớ mà CPU cần truy nhập so với ngăn nhớ cơ sở

sở + chỉ số

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

kết qủa trung gian phục vụ cho việc xử lý các dữ liệu của CPU

„ 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)

Trang 5

Phan Trung Kiên 17

Thanh ghi trạng thái:

CPU

„ Các cờ phép toán: biểu thị trạng thái của kết qủa

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.

Các cờ phép toán:

„ 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.

„ Cờ Sign (SF - cờ đấu): được thiết lập lên một kết quả của phép toán vừa thực hiện nhỏ hơn 0, hay nói cách khác, cờ Sign nhận giá trị bằng bit dấu của kết quả.

„ Cờ Carry (CF - cờ nhớ): cờ được thiết lập 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.

„ 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.

Các cờ điều khiển:

„ 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.

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

Trang 6

Phan Trung Kiên 21

3.2 Tập lệnh

„ Mỗi bộ xử lý có một tập lệnh xác định

„ 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

để thực hiện một thao tác xác định

„ Các lệnh được mô tả bằng ký hiệu gợi nhớ ? đó là

các lệnh hợp ngữ

Giản đồ trạng thái của chu kỳ lệnh

Không kiểm tra ngắt

Tính toán địa chỉ lệnh

Giải mã thao tác lệnh

Tính toán địa chỉ toán hạng

Xử lý dữ liệu

Tính toán địa chỉ toán hạng

Nhận lệnh Nhận toánhạng Cất toánhạng

Nhiều toán hạng

Nhiều kết quả

DL dạng xâu hoặc vectơ

Kết thúc lênh, nhận lệnh tiếp theo

Giản đồ trạng thái của chu kỳ lệnh

Có kiểm tra ngắt

Tính toán

địa chỉ

lệnh

Giải mã

thao tác

lệnh

Tính toán địa chỉ toán hạng

Xử lý dữ liệu

Tính toán địa chỉ toán hạng

Nhận lệnh Nhận toánhạng Cất toánhạng

Nhiều toán hạng

Nhiều kết quả

DL dạng xâu hoặc vectơ

Kết thúc lênh,

nhận lệnh

tiếp theo

Kiểm tra ngắt Ngắt

Không

có ngắt

Cấu trúc lệnh mã máy

„ Mã lệnh (opcode): cho biết thao tác cần thực hiện

„ 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, t/h đích

„ Cho biết địa chỉ của lệnh tiếp theo

Mã lệnh Các toán hạng

Trang 7

Phan Trung Kiên 25

Các kiểu lệnh

Các kiểu toán hạng

„ Số nguyên

„ Số dấu phẩy động

„ Mã của ký tự ASCII, BCD mở rộng,

„ Toán hạng xử lý với cờ

Số lượng 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

Số lượng 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

Trang 8

Phan Trung Kiên 29

Số lượng 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

Số lượng toán hạng

„ Điều khiển hệ thống

„ ít dùng

So sánh số lượng 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

„ 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

Các kiểu thao tác

Trang 9

Phan Trung Kiên 33

Các lệnh chuyển dữ liệu

„ Sao chép dữ liệu từ nguồn sang đích

„ Không ảnh hưởng đến các cờ

„ STORE : copy dữ liệu từ BXL đến bộ nhớ

„ EXCHANGE : trao đổi nội dung của nguồn và đích

Các lệnh số học

„ Thực hiện các phép toán số học

„ Có ảnh hưởng đến thanh ghi cờ

„ SUBTRACT : tính hiệu hai toán hạng

„ MULTIPLY : tính tích hai toán hạng

„ DIVIDE : tích thương hai toán hạng

„ ABSOLUTE : lấy giá trị tuyệt đối của toán hạng

„ NEGATE : đổi dấu toán hạng (lấy bù 2)

„ INCREMENT : tăng toán hạng lên 1

„ DECREMENT : giảm toán hạng đi 1

Các lệnh logic

„ Đặc điểm:

„ Thực hiện các phép toán logic

„ Có ảnh hưởng đến thanh ghi cờ

„ Các lệnh:

„ AND : thực hiện AND 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

Các lệnh vào ra

„ Trao đổi dữ liệu với thiết bị ngoại vi

„ 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

Trang 10

Phan Trung Kiên 37

Các lệnh điều khiển hệ thống

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

„ 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

„ Điều khiển rẽ nhánh trong chương trình

„ PC được nạp giá trị địa chỉ mới

„ 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

Sau lÖnh

CALL Proc1

Khëi t¹o néi dung stack

Sau lÖnh

CALL Proc2

Sau lÖnh

RETURN

Sau lÖnh

CALL Proc2

Sau lÖnh

RETURN

Sau lÖnh

RETURN

Trang 11

Phan Trung Kiên 41

Các mode địa chỉ

„ 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

để xác định toán hạng

Các mode địa chỉ

Mode địa chỉ tức thì

Sơ đồ mode địa chỉ tức thì

Toán hạng

Mã lệnh

Lệnh

Trang 12

Phan Trung Kiên 45

Mode địa chỉ trực tiếp

trong lệnh

liệu

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

Địa chỉ

Mã lệnh

Lệnh

Bộ nhớ

Toán hạng

Mode địa chỉ gián tiếp

nằm trong một ngăn nhớ khác, ngăn nhớ khác

đó được thể hiện trong lệnh

để tìm toán hạng ? chậm

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

Địa chỉ

Mã lệnh

Lệnh

Bộ nhớ

Toán hạng Địa chỉ của t/hạng

Trang 13

Phan Trung Kiên 49

Mode địa chỉ thanh ghi

„ Độ dài lệnh ngắn hơn

„ Nhận lệnh nhanh hơn

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

Tên thanh ghi

Mã lệnh

Lệnh

Tập thanh ghi

Toán hạng

Mode địa chỉ gián tiếp qua thanh ghi

một thanh ghi

trong đó n là độ dài (bit) của thanh ghi

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

thanh ghi

Tên thanh ghi

Mã lệnh

Lệnh

Bộ nhớ

Toán hạng Địa chỉ của t/hạng

Tập thanh ghi

Trang 14

Phan Trung Kiên 53

Mode địa chỉ dịch chuyển

„ Mode gián tiếp qua thanh ghi

„ Mode trực tiếp

„ Tên một thanh ghi

„ Một hằng số

Sơ đồ mode địa chỉ dịch

chuyển

Register R

Mã lệnh

Lệnh

Bộ nhớ

Toán hạng Địa chỉ của t/hạng

Tập thanh ghi

Address A +

Mode địa chỉ stack

ngăn xếp

Mã lệnh

Lệnh

Ngăn nhớ đỉnh stack

Ngầm hiểu

Ngày đăng: 22/04/2015, 10:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w