1. Trang chủ
  2. » Thể loại khác

Chuong 2 Khoi xu ly trung tam TV

85 173 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 85
Dung lượng 2,39 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chuong 2 Khoi xu ly trung tam TV tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh...

Trang 1

Chương 2 Khối xử lý trung tâm - CPU

Trang 2

Nội dung

2.1 Khối xử lý trung tâm

2.2 Tập lệnh máy tính

2.3 Cơ chế ống lệnh (pipeline)

Trang 3

2.1 Khối xử lý trung tâm

Trang 4

2.1.1 Chu kỳ xử lý lệnh

1 Khi một chương trình được chạy, hệ điều hành tải mã chương trình vào bộ nhớ

trong

2 Địa chỉ lệnh đầu tiên của chương trình được đưa vào thành ghi PC

3 Địa chỉ của ô nhớ chứa lệnh được chuyển tới bus A qua thanh ghi MAR

4 Tiếp theo, bus A truyền địa chỉ tới khối quản lý bộ nhớ MMU

(Memory Management Unit)

5 MMU chọn ô nhớ và sinh ra tín hiệu READ

Trang 5

2.1.1 Chu kỳ xử lý lệnh

Lệnh chứa trong ô nhớ được chuyển tới thanh ghi MBR qua

MBR chuyển lệnh tới thanh ghi IR Sau đó IR lại chuyển lệnh

CU giải mã lệnh và sinh ra các tín hiệu xử lý cho các đơn vị

ALU để thực hiện lệnh

Địa chỉ trong PC được tăng lên để trỏ tới lệnh tiếp theo của

được thực hiện

Thực hiện lại các bước

Trang 6

▪ độ rất cao (bằng tốc độ CPU)

➢ Các CPU thế hệ cũ (80x86) có 16 – 32 thanh ghi CPU thế hệ mới (Intel Pentium

4, Core 2 Duo) có hàng trăm thanh ghi

➢ Kích thước thanh ghi phụ thuộc vào thiết kế CPU: 8, 16, 32,

Trang 7

2.1.3 Thanh ghi tích lũy A

Trang 8

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

• Program Counter hay Instruction Pointer lưu địa chỉ bộ nhớ của lệnh tiếp theo

• PC chứa địa chỉ ô nhớ chứa lệnh đầu tiên của chương trình khi nó được kích hoạt

và được tải vào bộ nhớ

• Sau khi CPU chạy xong 1 lệnh, địa chỉ ô nhớ chứa lệnh tiếp theo được tải vào PC

• Kích thước của PC phụ thuộc vào thiết kế CPU: 8, 16, 32, 64 bit

Trang 9

2.1.5 Thanh ghi trạng thái FR

Mỗi

Cờ trạng thái: CF, OF, AF, ZF, PF, SF

Cờ điều khiển: IF, TF, DF

Trang 10

2.1.6 Thanh ghi trạng thái FR

Trang 11

2.1.7 Thanh ghi trạng thái của 8086

Trang 12

2.1.8 Con trỏ ngăn xếp

Trang 13

2.1.9 Các thanh ghi đa năng

• Có thể sử dụng cho nhiều mục đích:

Lưu các toán hạng đầu vào

Lưu các kết quả đầu ra

• Ví dụ: CPU 8086 có 4 thanh ghi đa năng

AX: Accumulator Register

BX: Base Register

CX: Counter Register

DX: Data Register

Trang 14

2.1.10 Thanh ghi lệnh IR

Trang 15

2.1.11 Thanh ghi MBR và MAR

Trang 16

2.1.12 Các thanh ghi tạm thời

CPU thường sử dụng một số thanh ghi tạm thời để:

Lưu trữ các toán hạng đầu vào

Lưu các kết quả đầu ra

Hỗ trợ xử lý song song (tại một thời điểm chạy nhiều hơn 1 lệnh)

Hỗ trợ thực hiện lệnh theo cơ chế thực hiện tiên tiến kiểu không trật tự (OOO –Out Of Order execution)

Trang 17

2.1.13 Khối điều khiển CU

Trang 19

2.1.14 Khối số học và login ALU

Trang 22

2.2 Tập lệnh máy tính

Lệnh máy tính là một từ nhị phân (binary word

Lệnh được lưu trong bộ nhớ

Lệnh được đọc từ bộ nhớ vào CPU để giải mã và thực hiện

Mỗi lệnh có chức năng riêng của nó

Tập

Chuyển dữ liệu (data movement)

Tính toán (computational)

Điều kiện và rẽ nhánh (conditioning & branching)

Các lệnh khác …

Trang 23

2.2 Tập lệnh máy tính

Quá trình thực hiện/ chạy lệnh được chia thành các pha

lệnh có thể được thực hiện theo 4 giai đoạn:

✓ Đọc lệnh IF(Instruction Fetch): lệnh được đọc từ bộ nhớ vào CPU

✓ Giải mã lệnh ID(Instruction Decode): CPU giải mã lệnh

✓ Chay lệnh IE(Instruction Execution): CPU thực hiện lệnh

✓ Ghi WB(Write Back): kết quả lệnh (nếu có) được ghi vào thành ghi hoặc bộ nhớ

Trang 24

2.2.1 Khuôn dạng lệnh

Trang 25

Toán hạng 3 địa chỉ

Trang 28

Toán hạng 1.5 địa chỉ

Trang 29

2.2.2 Chế độ địa chỉ

Trang 30

Chế độ địa chỉ tức thời

Trang 31

CHẾ ĐỘ ĐỊA CHỈ TRỰC TIẾP/ TUYỆT ĐỐI

Trang 32

CHẾ ĐỘ ĐỊA CHỈ TRỰC TIẾP/ TUYỆT ĐỐI

Trang 33

CHẾ ĐỘ ĐỊA CHỈ GIÁN TIẾP

Trang 34

CHẾ ĐỘ ĐỊA CHỈ CHỈ SỐ

Địa

một thanh ghi, là thanh ghi chỉ số

Ví

LOAD

Trang 35

CHẾ ĐỘ ĐỊA CHỈ TƯƠNG ĐỐI

Địa

một thanh ghi, là thanh ghi con đếm chương trình PC

Ví

LOAD

Trang 36

TỔNG KẾT CÁC CHẾ ĐỘ ĐỊA CHỈ

Tức thì (immediate operand_

Giá trị của toán hạng được chứa trong lệnh LOAD Ri, 1000 Ri  1000

Trực tiếp (direct address)

Địa chỉ của toán hạng được chứa trong lệnh LOAD Ri, (1000) Ri  M[1000]

Gián tiếp thanh ghi (Register indirect)

Giá trị của thanh ghi trong lệnh là địa chỉ bô nhớ chứa toán hạng LOAD Ri, (Rj) Ri  M[Rj]

Gián tiếp bộ nhớ (indirect address)

Địa chỉ bộ nhớ trong lệnh chứa địa chỉ

bộ nhớ của toán hạng

LOAD Ri, ((1000)) Ri  M[M[1000]]

Chỉ số (index address) Địa chỉ của toán hạng là tổng của hằng số (trong lệnh) và giá trị của một

thanh ghi chỉ số

LOAD Ri, X(Rind) Ri  M[X+ Rind]

Tương đối (Relative address)

Địa chỉ của toán hạng là tổng của hằng số và giá trị của thanh ghi con đếm chương trình

LOAD Ri, X(PC) Ri  M[ X+ PC]

Trang 37

Autoincrement 400 /* AC  (R1)+ */ 700

Autodecrement 399 /* AC  -(R) */ 450

Load to AC Mode Address = 500 Next instruction

200 201 202

399 400

450 700

PC = 200 R1 = 400

XR = 100 AC

Trang 40

MỘT SỐ LỆNH VẬN CHUYỂN DỮ LIỆU THÔNG DỤNG

MOVE:

nhớ

LOAD:

STORE: lưu nội dung

Trang 44

Lệnh điều khiển/tuần tự

Được

❖ dùng để thay đổi trình tự các lệnh được thực hiện:

Các lệnh rẽ nhánh (nhẩy) có điều

Các lệnh rẽ nhánh (nhẩy) không điều

Trang 45

Một số lệnh điều khiển thông dụng

Trang 46

Các lệnh vào ra

Trang 47

2.2.4 CÁC VÍ DỤ

R0 0 R1 100

R1 R1-1

go to LAP if R1>0 M[2000] R0

Trang 48

Bài tập

• 1 Cho đoạn lệnh sau: ADD R2, (R0); SUBSTRACT R2,

(R1); MOVE 500(R0), R2; LOAD R2, #5000; STORE

Trang 49

Bài tập

2 Cho đoạn lệnh sau:

MOVE R0, #100;

CLEAR R1; CLEAR R2;

Trang 50

2.3 GIỚI THIỆU CƠ CHẾ ỐNG LỆNH PIPELINE

Trang 52

2.3.1 PIPELINE – VÍ DỤ THỰC TẾ

Trang 53

2.3.1 PIPELINE – VÍ DỤ THỰC TẾ

Trang 54

2.3.2 GIỚI THIỆU VỀ CPU PIPELINE – NGUYÊN LÝ

Quá trình thực hiện lệnh được

5

❖ giai đoạn của hệ thống load – store:

Instruction

▪ fetch (IF): lấy lệnh từ bộ nhớ (hoặc cache)

Instruction Decode (ID):

▪ giải mã lệnh và lấy các toán hạng

Execute (EX): thực hiện lệnh: nếu là lệnh truy

▪ cập bộ nhớ thì tính toán địa chỉ bộ nhớ

Memory access

▪ (MEM): đọc/ ghi bộ nhớ ; nếu không truy cập bộ nhớ thì không có

Write

▪ back (WB): lưu kết quả vào thanh ghi

Cải thiện hiệu năng bằng cách tăng số lượng lệnh

Trang 55

2.3.2 GIỚI THIỆU VỀ CPU PIPELINE – NGUYÊN LÝ

Trang 56

2.3.3 GIỚI THIỆU VỀ CPU PIPELINE – ĐẶC ĐIỂM

Pipeline là kỹ thuật song song ở mức lệnh

▪ 2, 3, 5 giai đoạn: pipeline đơn giản

Trang 57

2.3.4 SỐ LƯỢNG GIAI ĐOẠN

Theo lý thuyết, số lượng

Nếu pipeline dài

pipeline

Trang 58

2.3.5 CÁC VẤN ĐỀ CỦA PIPELINE

Vấn

▪ Xung đột truy cập bộ nhớ

▪ Xung đột truy cập thanh ghi

Xung đột/

▪ Hầu hết là RAW hay Read After Write Hazard

Các

▪ Không điều kiện

▪ Có điều kiện

▪ Gọi thực hiện và trở về từ chương trình con

Trang 59

Xung đột tài nguyên

Trang 60

Xung đột tài nguyên

▪ cache: hỗ trợ nhiều thao tác đọc/ ghi cùng lúc

Chia cache thành cache lệnh

▪ và cache dữ liệu để cải thiện truy nhập

Trang 61

Xung đột dữ liệu

▪ giá trị cũ của R1 trước khi ADD lưu trữ giá trị mới vào R1

 Dữ liệu chưa sẵn sàng cho các lệnh phụ thuộc tiếp theo

Trang 62

Xung đột dữ liệu

SUB R4, R1, R2; R4  R1 + R2

Trang 63

Hướng khắc phục xung đột dữ liệu

▪ NO-OP vào giữa các lệnh có RAW

Thay đổi trình tự các lệnh trong chương trình

▪ và chèn các lệnh độc lập dữ liệu vào vị trí giữa 2 lệnh có RAW

Sử dụng

❖ phần cứng để xác định RAW (có trong các CPUs hiện đại) và dự đoán trước giá trị dữ liệu phụ thuộc

Trang 64

QUẢN LÝ CÁC LỆNH RẼ NHÁNH TRONG PIPELINE

❖ các CPU mà pipeline dài (P4 với 31 giai đoạn) và nhiều pipeline chạy song song, vấn

đề rẽ nhánh càng trở nên phức tạp hơn vì:

Trang 65

QUẢN LÝ CÁC LỆNH RẼ NHÁNH TRONG PIPELINE

Trang 66

GIẢI PHÁP QUẢN LÝ CÁC LỆNH RẼ NHÁNH

❖ Đích rẽ nhánh (branch target)

❖ Rẽ nhánh có điều kiện (conditional branches)

Trang 67

GIẢI PHÁP QUẢN LÝ CÁC LỆNH RẼ NHÁNH

Các

❖ lênh rẽ nhánh được xác định tại giai đoạn ID, vậy có thể biết trước chúng bằng cách giải mã trước

Sử dụng

❖ đệm đích rẽ nhánh (BTB: branch target buffer) để lưu vết của các lệnh rẽ nhánh đã được thực thi:

Địa chỉ đích của các lệnh

▪ rẽ nhánh được thực hiện

▪ địa chỉ đích của chúng lưu trong BTB có thể được dùng mà không cần tính lại

Các lệnh đích có thể dùng trực tiếp không cần load lại từ

•  Điều này có thể vì địa chỉ và lệnh đích thường không thay đổi

Trang 68

Lệnh rẽ nhánh có điều kiện

Khó

❖ quản lý các lệnh rẽ nhánh ko có điều kiện hơn vì:

▪ 2 lệnh đích để lựa chọn

Không thể xác định được lệnh đích tới

▪ khi lệnh rẽ nhánh được thực hiện xong

Sử dụng BTB

▪ không hiệu quả vì phải đợi tới khi có thể xác định được lệnh đích

Trang 69

Lệnh rẽ nhánh có điều kiện – các chiến lược

❖ Làm chậm rẽ nhánh

❖ Dự đoán arẽ nhánh

Trang 70

❖ điểm của làm chậm rẽ nhánh:

Hoạt động tốt trên các

▪ vi xử lý RISC trong đó các lệnh có thời gian xử lý bằng nhau Pipeline

▪ ngắn (thông thường là 2 giai đoạn)

Lệnh sau lệnh nhảy luôn được thực hiện, không phụ thuộc

▪ vào kết quả lệnh rẽ nhánh Cài

Trang 71

Làm chậm rẽ nhánh – nhận xét

được viết hoặc biên dịch lại trên các nền VXL mới

Trang 72

Dự đoán rẽ nhánh

Có thể dự

❖ đoán lệnh đích của lệnh rẽ nhánh:

Dự đoán

▪ đúng: nâng cao hiệu năng

Dự đoán sai: đẩy các lệnh tiếp theo đã load

Trường hợp xấu của dự đoán là

Trang 77

) 1 (

nk T

T Speedup

k

n is equivalent to number of loads in

the laundry example

k is the stages (washing, drying and

folding.

Clock cycle is the slowest task time

n

k

Trang 78

*SPEEDUP(tốc độ thực hiện)

After that the remaining (n

Trang 79

If we execute the same task sequentially in a single

•processing unit, it takes (k * n) clock cycles

• The speedup gained by using the pipeline is:

S = k * n / (k + n

Trang 81

Example: 6 tasks, divided into 4 segments

Trang 82

Bài tập

1)Cho Ai*Bi+Ci*Di với i=1->6 Vẽ sơ đồ thực hiện, bảng thực hiện theo chu kỳ clock, tính thời gian và tốc độ thực hiện Biết thời gian của chu kỳ clock là 10ns.

2)Ai+Bi*Ci+Di với i=1->5 Vẽ sơ đồ thực hiện, bảng thực hiện theo chu kỳ clock, tính thời gian và tốc độ thực hiện Biết thời gian của 1 chu kỳ clock là 12ns.

Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc All rights reserved 0-13-

148521-0

Trang 83

TỔNG KẾT

CPU là

hoạt động của các thiết bị trong máy tính để xử lý đúng theo chương trình

đã định

Một

• số các cải tiến như pipeline, kiến trúc siêu hướng và dự đoán rẽ

nhánh đã giúp cho việc xử lý lệnh trong CPU được song song hoá

Trang 84

CÂU HỎI VÀ BÀI TẬP

1 Chức năng của CPU và các thành phần trong CPU.

2 Nêu cấu trúc lệnh và tại sao có thể dùng các lệnh có 1 thành phần địa chỉ trong khi nhiều phép toán thông thường có nhiều đối tượng tham gia tính toán.

3 Mô tả hoạt động xử lý lệnh của CPU.

4 Pipeline là gì.

Trang 85

Tài liệu tham khảo

Slide

Vinh, Học viện CN Bưu Chính Viễn Thông

Ngày đăng: 21/12/2017, 11:50

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w