1. Trang chủ
  2. » Công Nghệ Thông Tin

Kiến trúc máy tính chương 2 Kiến trúc tập lệnh

66 427 9

Đ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 66
Dung lượng 7,19 MB

Nội dung

Kiến trúc máy tính là bộ môn trong nhiều ngành về phần cứng, slide bài giảng của Gv Nguyễn Thanh Đăng hy vọng sẽ giúp bạn đọc hiểu rõ về môn Học kiến trúc máy tính, cũng như giúp các bạn sinh viên có tài liệu tham khảo từ đại học Công nghiệp thành phố Hồ Chí Minh

Trang 1

KIẾN TRÚC TẬP LỆNH

Gv: Ths Nguyễn Thanh Đăng

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TPHCM

 KHOA

CÔNG NGHỆ ĐIỆN TỬ

Trang 2

MỤC LỤC

2.1 - Giới Thiệu

2.2 - Kiến Trúc CISC và RISC

2.3 - Các thành phần cơ bản của máy tính

2.4 - Kiến Trúc tập lệnh MIPS

2.5 - Gọi thủ tục và hàm

2.6 - Định dạng lệnh MIPS và cách mã hóa địa chỉ 2.7 - Kết chương

Trang 3

Câu hỏi:

1.Những đặc điểm nổi bật nào khiến cho các Kỹ Sư

máy tính chuyển hướng sang tiếp cập kiến trúc RISC

Họ tập trung vào khai thác ưu điểm nào của kiến trúc RISC đưa vào CISC

2 Trình bày cấu trúc cơ bản của máy tính

3 So sánh toán hạng thanh ghi & toán hạng bộ nhớ?

4 So sánh “lệnh đọc dữ liệu” với “lệnh lưu dữ liệu

5 Hãy phân biệt 3 định dạng R, I, J thông qua các lệnh

mà chúng hướng tới

Trang 4

2.1 Giới Thiệu:

Ngôn ngữ là 1 hệ thống giao tiếp bao gồm âm thanh,

từ ngữ và ngữ pháp được sử dụng bởi những người

trong 1 đất nước cụ thể hoặc trong 1 loại công việc

là ngôn ngữ của máy tính Ngôn ngữ là gì?

Lệnh  tập lệnh

Trang 5

Mục tiêu

MIPS (Microprocessor without Interlocked

Pipeline Stages) ở cả 2 dạng hợp ngữ và ngôn ngữ máy

o Lịch sử MIPS: Đại học Standford (1981) 

MIPS Technologies

o Ứng dụng MIPS: hệ thống nhúng, nền tảng cho

kiến trúc tập lênh sau này

o Phương pháp của kiến trúc MIPS: phương

pháp ánh xạ và quản lý địa chỉ

Trang 6

2.2 Kiến trúc CISC và RISC

A Ngôn ngữ lập trình

o Nhiều, mạnh, phức tạp  phát triển ứng dụng

(chính xác cho từng ứng dụng, chi tiết hóa mục

đích)

o Hạn chế: khoảng cách ngữ nghĩa giữa NNLT &

tác vụ cung cấp của kiến trúc máy tính

 Giải quyết: xây dựng kiến trúc máy tính hỗ trợ

lớn các loại lệnh phức tạp với nhiều phương pháp

tính toán địa chỉ khác nhau

Mục tiêu

 Làm giảm độ phức tạp của trình biên dịch

 Cải tiến thời gian thực thi

 Hoàn thành tác vụ với ít số lượng lệnh hợp ngữ.

Trang 7

B Kiến trúc CISC (Complex Instruction Set Computer)

2.2 Kiến trúc CISC và RISC

 Đặc điểm:

- 120 – 350 lệnh

- Số lượng thanh thi khá ít (8 -24 thanh ghi)

- Tham khảo bộ nhớ thông qua nhiều phương

pháp tính toán địa chỉ khác nhau (12 – 24)

- CPI trung bình trong khoảng từ 2 - 15

KHÔNG ĐẠT HIỆU QUẢ SỬ DỤNG PHẦN CỨNG CAO

Trang 8

C Kiến trúc RISC (Reduced Instruction Set Computer)

2.2 Kiến trúc CISC và RISC

 Đặc điểm:

- Ít hơn 100 lệnh, kích thước cố định (32 bit)

- Số lượng thanh ghi GPRs nhiều (32 – 192)

Trang 9

kiến trúc CISC và ưu điểm của kiến trúc RISC

Gia tăng số lượng thanh ghi

Kỹ thuật xử lý ống

Trang 11

2.3 Các thành phần cơ bản của máy tính

Trang 12

2.3 Các thành phần cơ bản của máy tính

2.3.1 Bộ xử lý trung tâm (CPU)

Tập thanh ghi

Thanh ghi bộ đếm

chương trình

Khối số học vàlogic(ALU)

Khối điều khiển

Trang 13

2.3 Các thành phần cơ bản của máy tính

2.3.1 Bộ xử lý trung tâm (CPU)

Tập thanh ghi

• Lưu trữ tạm thời các lệnh, dữ liệu cho CPU xử lý

• Kích thước nhỏ, tốc độ làm việc cao (~CPU)

• MIPS chuẩn: 32bit

Thanh ghi

bộ đếm chương trình

• Lưu trữ địa chỉ của lệnh sẽ được thực thi tiếp theo ngay sau lệnh đang được xử lý

• Chỉ được cập nhật bởi phần cứng.

Khối Khối

số học và logic (ALU

• Thực hiện các phép tính số học( + /) và các phép toán luận lý( NOT, AND, OR, XOR)

Khối điều khiển • Điều khiển việc thực thi các lệnh

Trang 14

2.3 Các thành phần cơ bản của máy tính

2.3.2 Bộ nhớ chính

Bộ nhớ chính

Nơi lưu trữ chương trình

và dữ liệu cần thiết cho

chương trình

Ô nhớ 1 byte( 8 bit)

 Từ nhớ

Trang 15

2.3 Các thành phần cơ bản của máy tính

2.3.2 Bộ nhớ chính

MIPS

Từ nhớ = 4 byte liên tục bắt đầu từ byte

có địa chỉ chia hết cho 4

Big Endian: byte dữ liệu

có trọng số lớn nhất ==> ô

nhớ có địa chỉ thấp nhất

Trang 16

2.3 Các thành phần cơ bản của máy tính 2.3.2 Bộ nhớ chính

Bộ nhớ chính trong kiến trúc MIPS

Trang 17

Câu hỏi 2

Trình bày cấu trúc cơ bản của máy tính.

Trang 18

2.4 Kiến trúc tập lệnh MIPS

Trang 19

2.4.5 Nhóm lệnh di chuyển dữ liệu

Trang 20

Nền tảng cho nhiều kiến trúc tập lệnh thế hệ mới

Trang 22

2.4.1 Giới thiệu

Kiến trúc MIPS chuẩn 32 bit có những đặc điểm:

Một lệnh hợp ngữ tương đương một lệnh máy

Có kích thước 32 bit

Chỉ suy nhất một tác vụ thực hiện trong một lệnh

Trang 23

2.4.5 Nhóm lệnh di chuyển dữ liệu

Trang 25

4 Thiết kế tốt đòi hỏi sự thỏa hiệp tốt

1 Đơn giản tạo nên tính quy tắc

2 Càng nhỏ

sẽ càng nhanh

Nguyên tắc chính trong thiết kế:

Trang 26

2.4.5 Nhóm lệnh di chuyển dữ liệu

Trang 27

Các thanh

ghi

Địa chỉ bộ nhớ

Một số nguyên

• Toán hạng là các đối tượng sẽ được xử lý bởi các lệnh hoặc các toán tử

2.4.3 Các toán hạng của MIPS

• Các lệnh MIPS chỉ hỗ trợ ba loại toán hạng:

Trang 28

2.4.3 Các toán hạng của MIPS

Toán hạng thanh ghi:

Có nhiều lệnh số học sử dụng các thanh ghi là toán hạng

MIPS có tệp 32 thanh ghi 32-bit

Đánh số từ 0 đến 31

32-bit dữ liệu được gọi là 1

“từ”(“word”)

Trang 29

2.4.3 Các toán hạng của MIPS

Toán hạng thanh ghi:

Được đặt tên gợi nhớ bắt đầu bằng ký hiệu

“$” và theo sau tên của thanh ghi

Trang 30

2.4.3 Các toán hạng của MIPS

Ví dụ toán hạng thanh ghi:

Trang 31

2.4.3 Các toán hạng của MIPS

Toán hạng bộ nhớ:

Bộ nhớ chính dùng để lưu trữ toán hạng có dạng cấu trúc phức tạp như dãy hay cấu trúc

Sử dụng cho các phép số học

Nạp các giá trị từ bộ nhớ vào các thanh ghi

Lưu giữ các kết quả trong thanh ghi ra bộ nhớ

Bộ nhớ được định vị theo đơn vị từng byte

1 từ được sắp xếp gồm 4 bytes trong bộ nhớ

Địa chỉ truy xuất = Địa chỉ biểu diễn * 4 byte

MIPS chứa dữ liệu theo byte có giá trị lớn nằm

ở địa chỉ thấp

Trang 32

2.4.3 Các toán hạng của MIPS

Ví dụ toán hạng bộ nhớ:

Trang 33

2.4.3 Các toán hạng của MIPS

Toán hạng số nguyên:

• MIPS cho phép các số nguyên (dương hoặc âm) được tham giao vào một số lệnh như là một toán hạng

• Các số nguyên tham gia làm toán hạng sẽ được mã hóa trực tiếp thành các bit nhị phân trong lệnh máy

Tính toán các số nguyên sẽ nhanh chóng và thuận tiện thay vì phải tiếp cần theo cách truy xuất bộ nhớ tương ứng dành cho các số nguyên

Trang 34

2.4.5 Nhóm lệnh di chuyển dữ liệu

Trang 35

2.4.4 Nhóm lệnh số học và luận lý

Ồn

Toán hạng đích

nguồn Định dạng lệnh số học và luận lý gồm 4 phần:

Trang 36

 Các lệnh số học và luận lý không chấp nhận toán hạng bộ nhớ

 Thực hiện phép toán số học và luận lý trên hai toán hạng nguồn

và ghi kết quả vào toán hạng đích

• Lệnh số học chuẩn

• Lệnh luận lý chuẩn

• Toán hạng nguồn 1 bắt buộc phải là thanh ghi

• Toán hạng nguồn 2 có thể là thanh ghi hoặc số

nguyên tùy vào từng lệnh

Trang 38

2.4.4 Nhóm lệnh số học và luận lý

Ví dụ các lệnh số học:

Trang 39

2.4.4 Nhóm lệnh số học và luận lý

Các lệnh luận lý thực hiện xử lý một nhóm bit trong một thanh ghi hoặc xử lý từng bit thay vì xả thanh ghi 32 bit

Ví dụ lệnh luận lý

 Thanh ghi $s1 có giá trị 0x12345678

 Yêu cầu thực hiện lệnh sau:

 s11 $s2, $s1, 4

• Kết quả:

• $s2 = 0x23456780

Trang 40

Câu hỏi 3: So sánh toán hạng thanh ghi & toán hạng bộ nhớ?

Trang 41

Nhóm lệnh di chuyển

dữ liệu

Nhóm lệnh hỗ trợ ra quyết định

Gọi thủ tục và hàm

Nội dung

2.4.4

2.4.5

2.5

Trang 42

Các lệnh số học và luận lý chỉ có thể xử lí các toán hạng là

thanh ghi hoặc số nguyên Nên các giá trị được lưu trữ trong bộ nhớ cần phải được nạp vào các thanh ghi trước khi tham gia vào các lệnh số học hoặc luận lý.

2.4.4: Nhóm lệnh di chuyển dữ liệu

Lệnh Thanh ghi dữ liệu Toán hạng bộ nhớ

Các lệnh đọc dữ liệu Các lệnh lưu dữ liệu

Trang 43

Các lệnh đọc dữ liệu:

Lệnh đọc dữ liệu:

- Dữ liệu trong ô nhớ có địa chỉ được xác định bằng toán hạng

bộ nhớ sẽ được sao chép và ghi vào thanh ghi dữ liệu.

- Dữ liệu được chứa trong thanh ghi là dữ liệu sẽ tham gia vào

phép tính số học và luận lý nên được lưu trữ theo trọng số và độc lập với cách lưu trữ của bộ nhớ.

Bộ nhớ Dữ liệu Thanh ghi

Trang 44

Các lệnh đọc dữ liệu:

Trang 45

Các lệnh lưu dữ liệu:

Lệnh lưu dữ liệu:

- Sao chép nội dung một thanh ghi hoặc một phần

nội dung thanh ghi xuống các ô nhớ trong bộ nhớ.

- Lệnh lưu dữ liệu không xét đến dấu của giá trị sẽ

được lưu trữ

Bộ nhớ

Thanh ghi Dữ liệu

Trang 46

Các lệnh lưu dữ liệu:

Trang 48

Lệnh rẽ nhánh khi bằng nhau Lệnh rẽ nhánh khi không bằng nhau

Rẽ nhánh có điều kiện:

beq register1, register2, L1

Nếu giá trị chứa trong 2 thanh

ghi 1 và 2 bằng nhau thì lệnh

được gán nhãn L1 thực thi

Ngược lại lệnh ngay phía sau

lệnh rẽ nhánh beq thực thi

bne register1, register2, L1

Nếu giá trị chứa trong 2 thanhghi 1 và 2 khác nhau thì lệnhđược gán nhãn L1 thực thi.Ngược lại lệnh ngay phía saulệnh rẽ nhánh bne thực thi

Trang 49

Thay vì thực hiện lệnh tiếp theo thì bộ xử lí sẽ

thực hiện lệnh được lưu trong thanh ghi

Thực hiện ngay việc rẽ nhánh đến lệnh

có nhãn L1

Ngoài việc thực hiện rẽ nhánh đến lệnh có nhãn L1thì lệnh còn lưu địa chỉ của lệnh tiếp theo vàothanh ghi đặc biệt $ra

Trang 50

Các lệnh so sánh:

Trang 52

2

3

4 6

Thực hiện các lệnh của thủ tục

Trang 53

2

3

4 6

1

Thủ tục cần sử dụng

nhiều thanh ghi hơn các

thanh ghi dành riêng.

Khi lưu giá trị thanh ghi vào stack

cần giảm địa chỉ thanh ghi $sp đi

một từ nhớ (4 byte) Ngược lại khi

lấy giá trị một thanh ghi ra khỏi

stack cần tăng địa chỉ thanh ghi $sp

lên một từ nhớ.

Các thanh ghi đa dụng nếu được sử dụng trong thủ tục phải đảm bảo giá trị của chúng trước và sau khi hoàn tất thủ tục phải giống nhau.

Các thanh ghi này sẽ được lưu trữ trong bộ nhớ gọi là

“chồng”.

MIPS sử dụng một thanh ghi chuyên biệt ($sp) để lưu trữ địa chỉ của phần tử đầu tiên trên đỉnh stack trong bộ nhớ

Lưu trữ các thanh ghi khi sử dụng trong thủ tục

5

Thủ tục chỉ cần lưu các

thanh ghi chứa giá trị cần

được sử dụng sau khi thủ

tục kết thúc.

Trang 54

Thủ tục lồng nhau:

Thủ tục không gọi thêm bất kì thủ tục nào khác trong quá trình thực hiện được gọi

là thủ tục “lá” Không phải mọi thủ tục đều là thủ tục “lá” vì một thủ tục có thể

gọi một thủ tục khác hay chính nó Các thủ tục dạng này gọi là thủ tục lồng nhau.

- Vấn đề 1: MIPS chỉ sử dụng thanh ghi $ra để lưu trữ địa chỉ trả về chương trình gọi Mà thủ tục được gọi lại gọi một thủ tục khác hoặc chính nó Lúc này thanh ghi được cập nhật lại ở lần gọi tiếp theo Nếu giá trị cũ không

được giữ lại thì không thể quay về chương trình gọi đầu tiên Vì vậy thủ

tục được gọi từ chương trình chính cần phải lưu trữ thanh ghi $ra vào

stack.

- Vấn đề 2: Lưu trữ các thanh ghi có thể được sử dụng sau khi thủ tục được gọi kết thúc Các thanh ghi cần được lưu trữ theo nguyên tắc sau khi thực hiện việc gọi thủ tục lồng nhau

Trang 55

Câu hỏi 4

So sánh “lệnh đọc dữ liệu” với “lệnh lưu

dữ liệu:

Trang 56

2.6 ĐỊNH DẠNG LỆNH MIPS

VÀ CÁCH MÃ HÓA ĐỊA CHỈ

Trang 57

2.6.1.Định dạng lệnh MIPs

2.6.2 Mã hóa địa chỉ nhóm lệnh rẽ nhánh

Trang 58

●Máy tính, vi xử lý chỉ có thể hiểu được các lệnh máy – 100100101101

●Hợp ngữ

( $s0)

Mã Hóa ●Mã máy 01101010

Trang 59

Toán hạng thanh ghi $s0-$s7

Toán hạng bộ nhớ 4 ($s0)

Toán hạng số nguyên -210 = 111111102

Trang 60

2.6.1.Định dạng lệnh MIPs

Định dạng R (Register)

6bit 5bit 5bit 5bit 5bit 6bit

Chỉ mã hóa các lệnh có toán hạng là thanh ghi

Trang 64

Định dạng J (Jump)

Mã hóa hai lệnh rẽ nhanh j và jal

6bit 26bit

Trang 65

Câu hỏi 5

Hãy phân biệt 3 định dạng R,I,J thông qua các lệnh mà chúng hướng tới.

Trang 66

2.7 Kết chương

Tập lệnh MIPS: nhóm lệnh số học và luận lý

nhóm lệnh chuyển dữ liệunhóm lệnh hộ trợ tra quyết định

Khi mã hóa xuống thành các lệnh máy : 32bit và phân thành 3 địnhdạng R, I, J

ᴥ R: mã hóa các lệnh chỉ dùng thanh ghi làm các toán hạngcùng với hai lệnh dịch trái, phải

ᴥ I: mã hóa các lệnh có số nguyên trong toán hạng

ᴥ J: mã hóa 2 lệnh j và jal.

Các lệnh rẽ nhánh: mã hóa các lệnh, các thanh ghi toán hạng và tínhtoán địa chỉ

Ngày đăng: 28/05/2020, 21:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w