Ktmt chuong 4

67
1 Kiến trúc máy tính Chương 4 BXLÝ TRUNG TÂM (CPU)

Transcript of Ktmt chuong 4

1

Kiến trúc máy tính

Chương 4BỘ

XỬ

LÝ TRUNG TÂM (CPU)

Phan Trung Kiên 2

Nội dung chương 4

Cấu trúc chung của bộ

xử

Khối điều khiển

Khối số

học & logic

Ho?t d?ng c?a CPU

RISC & CISC

Phan Trung Kiên 3

Sơ đồ

cấu trúc cơ bản của CPU

Phan Trung Kiên 4

Cấu trúc chung của bộ

xử

lý (BXL)

Cấu trúc

Đơn vị điều khiển (Control Unit - CU)

Đơn vị

số

học và

logic (Arithmetic and Logic Unit - ALU)

Tập thanh ghi (Register File - RF)

Đơn vị

nối ghép bus (Bus Interface Unit -

BIU)

Bus bên trong (Internal Bus)

Các thanh ghi (Registers)

Phan Trung Kiên 5

Cấu trúc chung của bộ

xử

lý (BXL)

Chức năng

Điều khiển toàn bộ

hoạt động của hệ

thống

Xử

lý dữ

liệu

Nguyên tắc hoạt động

BXL hoạt động dựa theo chương trình nằm sẵn trong bộ

nhớ

Phan Trung Kiên 6

Cấu trúc chung của bộ

xử

lý (BXL)

Các nhiệm vụ

của BXL

Nhận lệnh: nhận lệnh từ

bộ

nhớ

Giải mã lệnh: Giải mã lệnh được nhận vào để

biết lệnh làm gì

Nhận dữ

liệu: Lệnh có

thể

yêu cầu nhận dữ

liệu từ

bên ngoài vào

Xử

lý dữ

liệu: Lệnh có

thể

yêu cầu thực hiện một phép toán nào đó

Ghi dữ

liệu: Lệnh có

thể

yêu cầu cất kết quả

ra ngoàiNgoài ra, trong quá

trình thực hiện chương trình còn

nhận

các yêu cầu từ

bên ngoài, xử

các yêu cầu đó

Phan Trung Kiên 7

BXL với bus hệ

thống

Phan Trung Kiên 8

Cấu trúc bên trong của BXL

Phan Trung Kiên 9

Phân tích nhiệm vụ

của BXL

Nhận lệnh (Fetch Instructions -

FI)

Địa chỉ

của lệnh cần thực hiện nằm trong bộ đếm chương trình (PC - Program Counter), được đưa qua bộ đệm địa chỉ, qua bus địa chỉ để

tìm ra ngăn nhớ

chứa lệnh

Tiếp theo, BXL phát ra tín hiệu đọc ngăn nhớ

vừa tìm được

Nội dung của ngăn nhớ được chuyển qua bus dữ

liệu và đưa đến thanh ghi lệnh

(Instruction Reg.)

Phan Trung Kiên 10

Phân tích nhiệm vụ

của BXL

Giải mã lệnh (Interpret Instructions -

II)

Lệnh từ

thanh ghi lệnh được đưa đến khối điều khiển

Tại đây, lệnh được giải mã để

xác định thao tác mà lệnh yêu cầu

Khi đó, khối điều khiển sẽ

phát ra tín hiệu điều khiển tương ứng với lệnh đó.

Phan Trung Kiên 11

Phân tích nhiệm vụ

của BXL

Nhận dữ

liệu (Fetch Data -

FD)

BXL phát ra địa chỉ

của ngăn nhớ/cổng vào ra chứa dữ

liệu cần nhận

BXL phát ra tín hiệu điều khiển đọc ngăn nhớ/cổng vào ra tương ứng

Dữ

liệu được chuyển qua bus dữ

liệu đưa vào tập thanh ghi

bên trong

Phan Trung Kiên 12

Phân tích nhiệm vụ

của BXL

Xử

lý dữ

liệu (Process Data -

PD)

Dữ

liệu được chuyển từ

các thanh ghi vào ALU

ALU sẽ

thực hiện các phép

toán dưới sự điều khiển của khối điều khiển

Kết quả

phép toán được cất tạm thời vào thanh ghi dữ

liệu

Phan Trung Kiên 13

Khối điều khiển (CU)

Chức năng

ĐK nhận lệnh tiếp theo từ

bộ

nhớ, đưa vào thanh ghi lệnh

Tăng nội dung của PC để

trỏ

sang lệnh tiếp theo

Giải mã lệnh nằm trong thanh ghi lệnh để

xác định thao tác mà

lệnh yêu cầu

Phát ra các tín hiệu điều khiển thực hiện lệnh đó

Nhận tín hiệu yêu cầu từ

bên ngoài, xử

lý các tín hiệu đó.

Phan Trung Kiên 14

Mô hình kết nối KĐK

Khối điều khiển

Thanh ghi lệnhCác t/h điều khiển bên trong BXL

Các t/h điều khiển từ

bus hệ

thống

Các t/h điều khiển đến bus hệ

thống

Các cờ

. . .

Xung nhịp

Bus hệ

thống

Phan Trung Kiên 15

Các tín hiệu đưa đến KĐK

Nhịp: tín hiệu đồng hồ

từ

mạch tạo nhịp bên ngoài:

T0

chu kỳ

của xung nhịp

Mỗi thao tác của BXL cần k.T0 , k ? N

Tần số xung đồng hồ: f0

= 1/T0

dụ: máy tính dùng BXL có

tốc độ

5GHzTa có: f0

= 5GHz = 5*109 Hz ? T0

= 1/f0

= 1/(5*109) = 0.2 ns

Mã lệnh

từ

thanh ghi lệnh đưa đến để

giải mã

Các cờ

từ

thanh ghi cờ

cho biết trạng thái của BXL

Các tín hiệu điều khiển

từ bus điều khiển yêu cầu BXL

T0

Phan Trung Kiên 16

Các tín hiệu phát ra từ KĐK

Các tín hiệu điều khiển bên trong BXL:

Điều khiển các thanh ghi

Điều khiển ALU

Các tín hiệu điều khiển bên ngoài BXL:

Điều khiển bộ

nhớ

Điều khiển các modul vào-ra

Phan Trung Kiên 17

Các phương pháp thiết kế KĐK

KĐK vi chương trình(Microprogrammed Control Unit)

KĐK nối kết cứng(Hardwired Control Unit)

Phan Trung Kiên 18

Đơn vị điều khiển vi chương trình

Phan Trung Kiên 19

Đơn vị điều khiển vi chương trình

Bộ

nhớ vi chương trình (ROM) lưu trữ

các vi chương trình (microprogram)

Một vi chương trình bao gồm các vi lệnh (microinstruction)

Mỗi vi lệnh mã hoá

cho một vi thao tác (microoperation)

Để

hoàn thành một lệnh cần thực hiện một hoặc một vài vi chương trình

Tốc độ

chậm

Phan Trung Kiên 20

Đơn vị điều khiển nối kết cứng

Phan Trung Kiên 21

Đơn vị điều khiển nối kết cứng

Sử

dụng mạch cứng để

giải mã và

tạo các tín hiệu điều khiển thực hiện lệnh

Tốc độ nhanh

Đơn vị điều khiển phức tạp

Phan Trung Kiên 22

Khối số

học và

logic (ALU)

Chức năng: thực hiện các phép toán số

học và phép toán logic

Số

học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu

Logic: AND, OR, NOT, XOR, dịch bit, quay bit

Phan Trung Kiên 23

Mô hình kết nối ALU

ALU

Thanh ghi cờ

Dữ

liệu ra đến các thanh ghi

Dữ

liệu vào từ

các thanh ghi

T/h điều khiển từ KĐK

Phan Trung Kiên 24

Hoạt động của CPU

Chu trình lệnh

Nhận lệnh

Giải mã lệnh

Nhận toán hạng

Thực hiện lệnh

Cất toán hạng

Ngắt

Phan Trung Kiên 25

Giản đồ

trạng thái của chu kỳ

lệnh

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ềutoánhạng

Nhiềukếtquả

DL dạngxâu hoặc

vectơ

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

Kiểm trangắt Ngắt

Khôngcó

ngắt

Phan Trung Kiên 26

Nhận lệnh

CPU đưa địa chỉ

của lệnh cần nhận từ

bộ đếm chương trình PC ra bus địa chỉ

CPU phát tín hiệu điều khiển đọc bộ

nhớ

Lệnh từ

bộ

nhớ được đặt lên bus dữ

liệu và được CPU copy vào thanh ghi lệnh IR

CPU tăng nội dung PC để

trỏ

sang lệnh kế

tiếp

Phan Trung Kiên 27

Sơ đồ

mô tả

quá

trình nhận lệnh

Phan Trung Kiên 28

Giải mã lệnh

Lệnh từ

thanh ghi lệnh IR được đưa đến đơn vị điều khiển

Đơn vị điều khiển tiến hành giải mã lệnh để

xác định thao tác phải thực hiện

Giải mã lệnh xảy ra bên trong CPU

Phan Trung Kiên 29

Nhận dữ

liệu

CPU đưa địa chỉ

của toán hạng ra bus địa chỉ

CPU phát tín hiệu điều khiển đọc

Toán hạng được đọc vào CPU

Tương tự như nhận lệnh

Phan Trung Kiên 30

Nhận dữ

liệu gián tiếp

CPU đưa địa chỉ ra bus địa chỉ

CPU phát tín hiệu điều khiển đọc

Nội dung ngăn nhớ được đọc vào CPU, đó chính là địa chỉ

của toán hạng

Địa chỉ

này được CPU phát ra bus địa chỉ để

tìm ra toán hạng

CPU phát tín hiệu điều khiển đọc

Toán hạng được đọc vào CPU

Phan Trung Kiên 31

Sơ đồ

tả

nhận toán hạng gián tiếp

Phan Trung Kiên 32

Thực hiện lệnh

nhiều dạng tuỳ

thuộc vào lệnh

thể

là:

Đọc/Ghi bộ

nhớ

Vào/Ra

Chuyển giữa các thanh ghi

Thao tác số

học/logic

Chuyển điều khiển (rẽ

nhánh)

...

Phan Trung Kiên 33

Ghi toán hạng

CPU đưa địa chỉ ra bus địa chỉ

CPU đưa dữ

liệu cần ghi ra bus dữ

liệu

CPU phát tín hiệu điều khiển ghi

Dữ

liệu trên bus dữ

liệu được copy đến vị

trí

xác định

Phan Trung Kiên 34

Sơ đồ

mô tả

quá

trình ghi toán hạng

Phan Trung Kiên 35

Ngắt

Nội dung của bộ đếm chương trình PC (địa chỉ trở

về

sau khi ngắt) được đưa ra bus dữ

liệu

CPU đưa địa chỉ (thường được lấy từ

con trỏ ngăn xếp SP) ra bus địa chỉ

CPU phát tín hiệu điều khiển ghi bộ

nhớ

Địa chỉ

trở

về

trên bus dữ

liệu được ghi ra vị

trí xác định (ở ngăn xếp)

Địa chỉ

lệnh đầu tiên của chương trình con điều khiển ngắt được nạp vào PC

Phan Trung Kiên 36

Sơ đồ

mô tả

chu trình ngắt

Phan Trung Kiên 37

Đường ống lệnh (Instruction Pipelining)

Chia chu trình lệnh thành các công đoạn và

cho phép thực hiện gối lên nhau (như dây chuyền lắp ráp)

Chẳng hạn có 6 công đoạn:

Nhận lệnh (Fetch Instruction -

FI)

Giải mã lệnh (Decode Instruction -

DI)

Tính địa chỉ

toán hạng (Calculate Operand Address-CO)

Nhận toán hạng (Fetch Operands -

FO)

Thực hiện lệnh (Execute Instruction -

EI)

Ghi toán hạng (Write Operands -

WO)

Phan Trung Kiên 38

Biểu đồ

thời gian của đường ống lệnh

Phan Trung Kiên 39

Các xung đột của đường ống lệch:

Xung đột có

cấu trúc: do nhiều công đoạn dùng chung 1 tài nguyên

Xung đột dữ

liệu: lệnh sau sử

dụng kết quả

của lệnh trước

Xung đột điều khiển: do rẽ

nhánh gây ra

Phan Trung Kiên 40

Rẽ

nhánh trong Pipelining

Phan Trung Kiên 41

Các kỹ

thuật tiên tiến của bộ

xử

Cấu trúc chung của các bộ

xử

lý tiên tiến

Các kiến trúc song song mức lệnh

Kiến trúc RISC

Phan Trung Kiên 42

Cấu trúc chung của các bộ

xử

lý tiên tiến

Phan Trung Kiên 43

Các đơn vị

xử

lý dữ

liệu

Các đơn vị

số

nguyên

Các đơn vị

số

dấu phẩy động

Các đơn vị

chức năng đặc biệt

Đơn vị

xử

lý dữ

liệu âm thanh

Đơn vị

xử

lý dữ

liệu hình ảnh

Đơn vị

xử

lý dữ

liệu vector

Phan Trung Kiên 44

Bộ

nhớ

cache

Được tích hợp trên chip vi xử

Bao gồm hai mức cache:

Cache L1 gồm hai phần tách rời:

Cache lệnh

Cache dữ

liệu giải quyết xung đột khi nhận lệnh và

dữ

liệu

Cache L2: chung cho lệnh và

dữ

liệu

Phan Trung Kiên 45

Đơn vị

quản lý bộ

nhớ

(MMU)

Chuyển đổi địa chỉ ảo thành địa chỉ

vật lý

Cung cấp cơ chế phân trang/phân đoạn

Cung cấp chế độ

bảo vệ

bộ

nhớ

Phan Trung Kiên 46

Các kiến trúc song song mức lệnh

Siêu đường ống (Superpipeline & Hyperpipeline)

Siêu vô hướng (Superscalar)

VLIW (Very Long Instruction Word)

Phan Trung Kiên 47

Superpipeline

Phan Trung Kiên 48

Superscalar

Phan Trung Kiên 49

VLIW (Very Long Instruction Word)

Phan Trung Kiên 50

RISC

CISC và

RISC

CISCComplex Instruction Set Computer:

Máy tính với tập lệnh phức tạp

Các bộ

xử

lý truyền thống: x86, 680x0

RISCReduced Instruction Set Computer:

Máy tính với tập lệnh thu gọn

SunSPARC, Power PC, ...

RISC đối nghịch với CISC

Phan Trung Kiên 51

Các đặc trưng của RISC

Số lượng lệnh ít

Hầu hết các lệnh truy nhập toán hạng ở

các thanh ghi

Truy nhập bộ

nhớ

bằng các lệnh LOAD/STORE

Thời gian thực hiện lệnh là

một chu kỳ

máy

Các lệnh có độ

dài cố định (32 bit)

Phan Trung Kiên 52

Các đặc trưng của RISC

Số lượng khuôn dạng lệnh là

ít (<=4)

CPU có

tập thanh ghi lớn

ít mode địa chỉ

(<=4)

Hỗ

trợ

các thao tác của ngôn ngữ

bậc cao

Đều được thiết kế

kiểu pipeline lệnh

Phan Trung Kiên 53

Cửa sổ

thanh ghi

Phan Trung Kiên 54

Kiến trúc Intel

Kiến trúc 4-bit: 4004

Kiến trúc 8-bit: 8008,8080,8085

Kiến trúc 16-bit: 8086/8088,80186,80286

Kiến trúc 32-bit: 80386, 80486, Pentium,Pentium II, Celeron, Pentium III, Pentium 4

Kiến trúc 64-bit: Itanium, Core 2 Duo

Phan Trung Kiên 55

Kiến trúc 16-bit (IA-16)

Các thanh ghi bên trong: 16-bit

Xử

lý các phép toán số

nguyên với 16-bit

Quản lý bộ

nhớ theo đoạn 64KBytes

Mở đầu cho dòng máy tính IBM-PC

Phan Trung Kiên 56

Kiến trúc 32-bit (IA-32)

Các thanh ghi bên trong: 32-bit

Xử

lý các phép toán số

nguyên với 32-bit

ba chế độ

làm việc:

Chế độ

8086 thực (Real 8086 mode): làm việc như một bộ

xử lý 8086

Chế độ

8086 ảo (Virtual 8086 mode): làm việc như nhiều bộ

xử lý 8086 (đa nhiệm 16-bit)

Chế độ

bảo vệ

(Protected mode)

Đa nhiệm 32-bit

Quản lý bộ

nhớ ảo

Xử

lý các phép toán số

dấu phẩy động (từ

80486)

Phan Trung Kiên 57

Kiến trúc 64-bit (IA-64)

Các thanh ghi bên trong: 64-bit

Xử

lý các phép toán số

nguyên với 64-bit

Xử

lý các phép toán số

dấu phẩy động

Không tương thích phần cứng với các bộ

xử lý trước đó

Tương thích phần mềm bằng cách giả

lập môi trường

Phan Trung Kiên 58

ph¸t

triÓn

cña

BXL hä

Intel

Year Chip L transistors1971 4004 10µm 2.3K1974 8080 6µm 6.0K1976 8088 3µm 29K1982 80286 1.5µm 134K1985 80386 1.5µm 275K1989 80486 0.8µm 1.2M1993 Pentium® 0.8µm 3.1M1995 Pentium® Pro 0.6µm 15.5M1999 Mobile PII 0.25µm 27.42000 Pentium® 4 0.18µm 42M2002 Pentium® 4 (N) 0.13µm 55M2003 Itanium® 2 (M) 0.13µm 410M

Phan Trung Kiên 59

Minh

häa

mét

BXL

Intel 4004 -

1970s(First Microprocessor)

Intel 8088

(LSI Microprocessor)

Phan Trung Kiên 60

Minh

häa

mét

BXL

PowerPC 7400 (G4)

6.5M transistors / 450MHz / 8-10W

L=0.15µm

Pentium®

III

28M transistors / 733MHz-1Gz / 13-26W

L=0.25µm shrunk to L=0.18µm

Phan Trung Kiên 61

Minh häa mét sè

BXL

Pentium®

4

42M transistors / 1.3-1.8GHz / 49-55W

L=0.18µm

Pentium®

4 “Northwood”

55M transistors / 2-2.5GHz L=0.13µm Area=131mm2

Co l¹i

Phan Trung Kiên 62

Minh häa mét sè

BXL

PowerPC®

940 (G5)

58M transistors / 2GHz / 97W

L=0.13µm Area=118mm2

Image courtesy International Business Machines All Rights ReservedIntel Itanium®

2

410M transistors / 1.3GHz / 130W

L=0.13µm Area=374mm2

Image source: Intel Corporation www.intel.com

Phan Trung Kiên 63

Minh häa mét sè

BXL

Phan Trung Kiên 64

Phan Trung Kiên 65

Phan Trung Kiên 66

Phan Trung Kiên 67