KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH
(Computer Organization and Architecture)
Chương 3
Bộ xử lý trung tâm
Nội dung
1. Nhiệm vụ và cấu trúc cơ bản của CPU
–
Nhiệm vụ của CPU
–
Cấu trúc cơ bản của CPU
2. Hoạt động của CPU
3. Kiến trúc các bộ xử lý tiên tiến
Chương 3 - Bộ xử lý trung tâm
2
3.1. Nhiệm vụ - Cấu trúc cơ bản của CPU
Mô hình máy tính
Chương 3 - Bộ xử lý trung tâm
3
Các mơ hình máy tính
Mơ hình Havard
– Lệnh và dữ liệu được lưu trữ trên hệ thống nhớ riêng
biệt
Mơ hình Von-Newmann
– Lệnh và dữ liệu được lưu trữ trên cùng một hệ thống
nhớ
là mơ hình của máy tính cá nhân hiện nay
Chương 3 - Bộ xử lý trung tâm
4
CPU họ Intel
8080
– Bộ xử lý đa năng đầu tiên
– Đường dẫn dữ liệu 8 bit
– Được dùng như là một PC đầu tiên
8086
–
–
–
–
Có khả năng cao hơn
16 bit
Có cache lệnh, nhận trước được ít lệnh
8088 (bus mở rộng 8 bit), được dùng lần đầu ở máy
IBM PC
80286
– Bộ nhớ RAM: 1M
– Có thể quản lý được bộ nhớ đến 16MB
Chương 3 - Bộ xử lý trung tâm
5
CPU họ Intel
80386
– 32 bit
– Hỗ trợ đa nhiệm
80486
– Chứa cache và pipeline lệnh phức tạp
– Thêm bộ đồng xử lý toán học
Petium
– Siêu vô hướng
– Nhiều lệnh thực hiện song song
Pentium Pro
–
–
–
–
–
Tăng tổ chức siêu vô hướng
Chức năng các thanh ghi linh hoạt
Tiên đốn rẽ nhánh
Phân tích luồng dữ liệu
Thực hiện suy đoán (speculative execution)
Chương 3 - Bộ xử lý trung tâm
6
CPU họ Intel
Pentium II
– Công nghệ MMX (MultiMedia eXtension)
– Xử lý đồ họa, âm thanh, hình ảnh tốt
Pentium III
– Thêm các lệnh dấu chấm động cho đồ họa 3D
Pentium !V
– Chú ý tới các số ả Rập hơn các số La Mã
– Tăng cường xử lý multimedia và dấu chấm động hơn.
Itanium
– 64 bit
– Nhận trước lệnh động, có thể pipeline bằng phần mềm
– .....
Chương 3 - Bộ xử lý trung tâm
7
Sự phát triển của BXL họ Intel
Year
Chip
L
Transistors
Clock rate
MIPS
1971
4004
10µm
2.3K
740kHz
0.07
1972
8008
10µm
3.5K
500kHz
0.05
1974
8080
6µm
4.5K
2MHz
0.29
1978
8086
3µm
29K
5/8/10 MHz 0.33/0.66/0.75
1979
8088
3àm
29K
4.7/8 MHz
0.33/0.66
1982
80286
1.5àm
134K
6/8/16MHz
1.5
1985
80386
1àm
275K
33
9.9
1989
80486
0.8àm
1.2M
50MHz
41
1993
Pentium đ
0.6àm
3.1M
66MHz
126.5
1995
Pentium đ Pro
0.35àm
5.5M
200MHz
200
1998
Pentium đ !!
0.25àm
7.5M
333MHz
>300
1998
Pentium 2 Xeon
0.25àm
7.5M
400MHz
400
Chng 3 - Bộ xử lý trung tâm
8
S phỏt trin ca BXL h Intel
Year
Chip
L
Transistors
Clock rate
MIPS
1999
Pentium đ !!!
0.25àm
9.9M
500MHz
>500
2000
Pentium ® !V
0.18µm
42M
1.5GHz
1.5K
2002
P4 Northwood
0.13µm
55M
2.4GHz
6.5K-10K
2003
Itanium ® 2
0.13µm
410M
3.0GHz
9.726K
2008
Core i3
32nm
3.33GHz
2009
Core i5
32nm
3.6GHz
2011nay
Core i7
32nm
4GHz
Chương 3 - Bộ xử lý trung tâm
9
Minh họa một số CPU của intel
Intel 4004 - 1970s
(First Microprocessor)
Intel 8088
(LSI Microprocessor)
Chương 3 - Bộ xử lý trung tâm
10
Minh họa một số CPU của intel
Pentium® III
PowerPC 7400 (G4)
28M transistors / 733MHz-1Gz / 13-26W
L=0.25µm shrunk to L=0.18µm
6.5M transistors / 450MHz / 8-10W
L=0.15µm
Chương 3 - Bộ xử lý trung tâm
Minh ha mt s CPU ca intel
Co lại
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
Chng 3 - Bộ12xử lý trung tâm
11
Chức năng của CPU
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ớ
Cấu trúc cơ bản
–
–
–
–
–
Khối điều khiển (Control Unit - CU)
Khối số học - logic (Arithmetic - Logic Unit: ALU)
Các thanh ghi (Register File - RF)
Đơn vị ghép nối BUS (Bus Interface Unit – BIU)
Bus bên trong (Internal Bus)
Chương 3 - Bộ xử lý trung tâm
13
Nhiệm vụ của CPU
Nhận lệnh (Fetch Instructions): nhận lệnh từ bộ nhớ
Giải mã lệnh (Decode instructions): Giải mã lệnh
được nhận vào để biết lệnh làm gì
Nhận dữ liệu (Fetch Data): Lệnh có thể u cầu nhận
dữ liệu từ bên ngoài vào
Xử lý dữ liệu (Process Data): Lệnh có thể u cầu
thực hiện một phép tốn nào đó
Ghi dữ liệu (Write Data): Lệnh có thể yêu cầu cất kết
quả ra ngồi
Ngồi ra, trong q trình thực hiện chương trình CPU
cịn nhận các u cầu từ bên ngồi (interrupt) và xử lý
các u cầu đó
Chương 3 - Bộ xử lý trung tâm
14
Chi tiết nhiệm vụ của CPU
Fetch Instructions - FI
– Đia 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 ơ nhớ chứa lệnh
– Tiếp theo, CPU phát ra tín hiệu đọc ơ nhớ vừa
tìm được
– Nội dung của ngăn nhớ được chuyển qua data
bus và đưa đến thanh ghi lệnh (Instruction
Reg.)
Chương 3 - Bộ xử lý trung tâm
15
Chi tiết nhiệm vụ của CPU (tt)
Giải mã lệnh (Interpret Instructions)
– 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 đó.
Chương 3 - Bộ xử lý trung tâm
16
Chi tiết nhiệm vụ của CPU (tt)
Fetch Data
– BXL phát ra địa chỉ của ô 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 ô 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
Chương 3 - Bộ xử lý trung tâm
17
Chi tiết nhiệm vụ của CPU (tt)
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
Chương 3 - Bộ xử lý trung tâm
18
Chi tiết nhiệm vụ của CPU (tt)
Ghi dữ liệu (Write Data - WD)
– BXL phát ra địa chỉ của ô nhớ/cổng vào ra cần ghi dữ
liệu
– BXL phát ra tín hiệu điều khiển ghi ô nhớ/cổng vào ra
– Dữ liệu từ thanh ghi dữ liệu được chuyển ra ngoài
Chương 3 - Bộ xử lý trung tâm
19
Cấu trúc cơ bản của CPU
Chương 3 - Bộ xử lý trung tâm
20
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, đảo dấu, tăng/giảm
– Logic: AND, OR, NOT, XOR, SHR, SHL
Mơ hình kết nối ALU
Chương 3 - Bộ xử lý trung tâm
21
Control Unit - CU
Điều khiển nhận lệnh từ bộ nhớ vào thanh ghi lệnh
Tăng bộ đếm chương trình (Program Counter) để trỏ
san lệnh kế tiếp
Giải mã lệnh để xác định các thao tác mà lệnh yêu
cầu
Phát ra tín hiệu điều khiển thực hiện lệnh
Nhận các tín hiệu yêu cầu từ bus hệ thống và đáp
ứng các yêu cầu đó
Chương 3 - Bộ xử lý trung tâm
22
Mơ hình kết nối CU
Chương 3 - Bộ xử lý trung tâm
23
Control Unit – CU (tt)
Tín hiệu đến CU
– Clock: Tín hiệu từ mạch tạo dao động bên ngồi
T0
•
•
•
•
T0 là 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
Ví dụ: máy tính dùng BXL có tốc độ 5GHz
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ờ (flags) từ thanh ghi cờ cho biết trạng thái của
CPU
– Các tín hiệu yêu cầu khác từ bus điều khiển
Chương 3 - Bộ xử lý trung tâm
24
Control Unit – CU (tt)
Tín hiệu điều khiển của CU
– Điều khiển các thanh ghi
– Điều khiển ALU
Tín hiệu điều khiển bên ngoài CPU
– Điều khiển bộ nhớ
– Điều khiển modle vào/ra
Chương 3 - Bộ xử lý trung tâm
25
Tập các thanh ghi (Registers)
Các thanh ghi nằm trong CPU, được coi là mức đầu
tiên của hệ thống nhớ
Chứa các thông tin tạm thời phục vụ cho hoạt động
của CPU tại một thời điểm nhất định.
Mỗi thế hệ (hãng sản xuất) CPU có tập các thanh ghi
khác nhau
Số lượng thanh ghi nhiều
hiệu năng của CPU tăng
Có 2 loại thanh ghi:
– Lập trình được
– Khơng lập trình được
Chương 3 - Bộ xử lý trung tâm
26
Tập các thanh ghi (tt)
Phân loại thanh ghi theo chức năng
– Thanh ghi địa chỉ: quản lý địa chỉ của các ngăn
nhớ hay của các cổng vào/ra
– Thanh ghi dữ liệu: chứa các dữ liệu tạm thời
trong q trình tính tốn
– 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
– Thanh ghi lệnh: Chứa lệnh đang được thực
hiện
Chương 3 - Bộ xử lý trung tâm
27
Tập các thanh ghi (tt)
Các thanh thi điển hình
Các thanh ghi địa chỉ
Bộ đếm chương trình (PC – Program Counter)
Thanh ghi con trỏ dữ liệu (DP – Data Pointer)
Thanh ghi con trỏ ngăn xếp (SP – Stack Pointer)
Thanh ghi cơ sở và thanh ghi chỉ số (Base Register &
Index Register)
– Các thanh ghi dữ liệu
– Các thanh ghi trạng thái
–
–
–
–
–
Chương 3 - Bộ xử lý trung tâm
28
Bộ đếm chương trình
Cịn được gọi là con trỏ lệnh IP (Instruction Pointer)
Chứa địa chỉ của lệnh tiếp theo sẽ được nhận vào
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
……..
lệnh
lệnh
lệnh sẽ nhận
PC
Lệnh kế tiếp
lệnh
……..
Chương 3 - Bộ xử lý trung tâm
29
Thanh ghi địa chỉ
Vùng lệnh: chứa các lệnh
củă chương trình, do Thanh
ghi bộ đếm chương trình
quản lý.
CPU
Vùng dữ liệu: chứa dữ liệu,
do thanh ghi con trỏ dữ liệu
quản lý
. . .
Vùng nhớ lệnh
. . .
Vựng nhớ lệnh
. . .
Vùng ngăn xếp (stack)
Vùng ngăn xếp: chứa địa chỉ
chương trình chính, ngắt,
phục vụ thực hiện rẽ nhánh,
do thanh ghi con trỏ ngăn
xếp quản lý
Chương 3 - Bộ xử lý trung tâm
. . .
Bộ nhớ
30
Thanh ghi con trỏ dữ liệu
Chứa địa chỉ của ngăn nhớ dữ liệu mà BXL cần truy
cập
Có một số thanh ghi con trỏ dữ liệu
–CS, DS, ES, SS…
. . .
Dữ liệu
Dữ liệu
Dữ liệu
DP
Data pointer
DL cần đọc/ghi
Dữ liệu
Dữ liệu
. . .
Chương 3 - Bộ xử lý trung tâm
31
Con trỏ ngăn xếp
Ngăn xếp (Stack):
– Là vùng nhớ có cấu trúc LIFO (Last-In-First-Out)
– Đáy ngăn xếp là một ngăn nhớ xác định
– Đỉnh ngăn xếp có thể bị thay đổi
Con trỏ ngăn xếp SP:
–
–
–
–
SP trỏ vào ngăn nhớ đỉnh ngăn xếp
Cất thêm thông tin vào ngăn xếp → SP giảm
Lấy thông tin từ ngăn xếp → SP tăng
Khi ngăn xếp rỗng → SP trỏ vào đáy
Chương 3 - Bộ xử lý trung tâm
32
Minh họa con trỏ ngăn xếp
Thao tác trên ngăn xếp
– Cất vào (PUSH)
– Lấy ra (POP)
SP
Đỉnh Stack
Chiều
tăng
của
địa
chỉ
Đáy Stack
Chương 3 - Bộ xử lý trung tâm
Thanh ghi cơ sở và thanh ghi chỉ số
Thanh ghi cơ sở: chứa địa chỉ của ngăn nhớ cơ sở
(ngăn nhớ gốc tương đối), còn goi: địa chỉ đoạn
(segment)
Thanh ghi chỉ số: chứa độ lệch của địa chỉ giữa ngăn
nhớ mà BXL cần truy nhập so với ngăn nhớ cơ sở,
còn gọi: địa chỉ offset
Địa chỉ ngăn nhớ cần truy nhập = segment + offset
Chương 3 - Bộ34xử lý trung tâm
33
Thanh ghi cơ sở và thanh ghi chỉ số
.
Thanh ghi cơ sở
.
.
Ngăn nhớ cơ sở
Gốc tương đối
Thanh ghi chỉ số
Ng/nhớ cần truy nhập
.
.
.
Chương 3 - Bộ xử lý trung tâm
35
Các thanh ghi dữ liệu
Chứa các dữ liệu tạm thời hoặc kết quả trung gian
Cần có nhiều thanh ghi dữ liệu
– AX: dùng để lưu giữ kết quả tính tốn
– BX: Thanh ghi cơ sở, thường dùng để chứa địa chỉ cơ
sở của một vùng nhớ
– CX: Dùng để chứa số lần lặp
– DX: Thường sử dụng cùng thanh ghi AX để thực hiện
các phép nhân hoặc chia 16 bit.
Các thanh ghi số nguyên: 8, 16, 32, 64, ... Bit
Các thanh ghi số thực (dấu phẩy động)
Chương 3 - Bộ xử lý trung tâm
36
Thanh ghi trạng thái
Còn gọi là thanh ghi cờ (Flag Register)
Chứa các thông tin trạng thái của BXL
– Các cờ phép toán: báo hiệu trạng thái của phép toán
– Các cờ điều khiển: biểu thị trnạg thái điều khiển của
BXL
Ví dụ cờ điều khiển: Cờ cho phép ngắt Interrupt (IF)
– Nếu IF = 1 → BXL ở trạng thái cho phép ngắt với tín
hiệu u cầu từ bên ngồi
– Nếu IF = 0 → BXL ở trạng thái cấm ngắt với tín hiệu
u cầu từ bên ngồi
Chương 3 - Bộ xử lý trung tâm
37
Ví dụ cờ phép tốn
Cờ zero (ZF): được thiết lập khi kết quả của
phép toán bằng 0
Cờ Sign (SF): được thiết lập khi kết quả
của phép toán là giá trị âm
Cờ Carry (CF): được thiết lập khi phép tốn
có nhớ hoặc có mượn ra khỏi bit cao nhất
→ tác dụng báo tràn với số không dấu
Cờ Overflow (OF): được thiết lập khi cộng
hai số nguyên cùng dấu mà kết quả có dấu
ngược lại → tác dụng báo tràn với số có
dấu
Chương 3 - Bộ xử lý trung tâm
38
Tập thanh ghi của 1 số CPU
Chương 3 - Bộ xử lý trung tâm
39
Ngắt (interrupt)
Ngắt là cơ chế cho phép CPU tạm dừng chương trình
đang thực hiện để chuyển sang thực hiện 1 chương
trình khác
Các loại ngắt
– Ngắt do lỗi khi thực hiện chương trình
– Ngắt do lỗi phần cứng
– Ngắt do thiết bị ngoại vi phát tín hiệu yêu cầu trao đổi
dữ liệu
Chương 3 - Bộ xử lý trung tâm
40
Ngắt (tt)
Hoạt động của ngắt
– Nội dung của bộ đếm chương trình PC được đưa ra
bus dữ liệu
– Vùng địa chỉ đặc biệt (vd con trỏ ngăng xếp SP) được
đưa vào MAR
– 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 1 vị trí xác
định (vị trí stack)
– Đị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
Chương 3 - Bộ xử lý trung tâm
41
3.3. Kiến trúc 1 số VXL tiên tiến
1. Các VXL tiên tiến
–
–
–
–
–
–
Các VXL họ Intel Pentium ®
VXL họ Intel Atom
Các VXL họ Intel Core và Core 2
VXL họ Intel Xeon
Các VXL họ Intel Cori i3, i5, i7
Các VXL họ AMD A-Series
2. Các công nghệ tiên tiến
– Công nghệ Centrino
– Công nghệ thực thi không theo trật tự (Out of Order
Execution)
– Công nghệ Cache thông minh (Advanced Smart Cache)
– Công nghệ tiết kiệm điện (SpeedStep)
– Công nghệ siêu phân luồng (Hyper Threading)
– Cơng nghệ ảo hóa (Virtualization)
Chương 3 - Bộ xử lý trung tâm
42
Họ VXL Pentium
Intel Pentium I (1993)
Intel Pentium II (1997)
Intel Pentium III (1999)
Intel Pentium IV (2000)
Intel Pentium M (2002)
Chương 3 - Bộ xử lý trung tâm
43
Intel Pentium ®
Chương 3 - Bộ xử lý trung tâm
44
Intel Pentium ® !!
Hỗ trợ cơng nghệ MMX cải tiến
Tích hợp 16KB cache L1 cho mã lệnh và 16KB cache
L1 cho dữ liệu
Tích hợp cache L2 với nhiều lựa chọn 256KB, 512KB
và 1MB
Hỗ trợ tính năng quản lý nguồn nâng cao
Sử dụng khe cắm slot
Chương 3 - Bộ xử lý trung tâm
45
Intel Pentium ® !!!
Chương 3 - Bộ xử lý trung tâm
46
Intel Pentium ® IV
Chương 3 - Bộ xử lý trung tâm
47
Intel Pentium ® IV
Cache thơng thường:
– Mỗi lệnh ln phải giải mã trước khi thực hiện
Execution Trace cache
– Thông thường các cache lệnh L1 được đặt trong bộ
giải mã: cung cấp lệnh cho bộ tìm nạp và giải mã lệnh;
– P4 chuyển cache lệnh L1 thành Execution Trace Cache
(ETC) và đặt sau bộ giải mã
– ETC có thể lưu 12.000 vi lệnh đã giải mã
– Với cách lệnh thuộc vòng lặp
• Chúng được giải mã 1 lần thành các vi lệnh và nạp vào
ETC
• Khi cần thực hiện, các vi lệnh đã giả mã trong ETC được
chuyển thẳng tới khối thực hiện
Chương 3 - Bộ xử lý trung tâm
48
Intel Pentium ® M
Là VXL thiết kế cho các thiết bị di động,
máy tính xác tay. Tiêu thụ điện năng
thấp, hiệu năng cao
Các tính năng tiên tiến của Pentium M
– Thực thi động (Dymanic Execution)
– On-chip 32KB data L1 cache, 32KB
íntruction L1 cahe
– On-chip cache L2 từ 1-2MB (P4 cùng thời
điểm chỉ 512KB-1MB)
– Advanced Branch Prediction and Data
Pefetch Logic
– Hỗ trợ tập lệnh MMX, SSE và SSE2
– Công nghệ quản lý nguồn tiên tiến (Intel
Enhanced SpeedStep)
Chương 3 - Bộ xử lý trung tâm
49
Họ VLX Intel Atom
Dự trên vi kiến trúc Atom và
cơng nghệ 45nm
Vi kiến trúc Atom tối ưu hóa
cho các thiết bị có kích thước
nhỏ, tiêu thụ ít năn lượng
Các đặc điểm tiên tiến
– Enhanced SpeedStep
Technology
– Deep Power Down
Technology with Dynamic
Cache Sizing
– Intel Virtualiztion Technology
– Intel 64 architechture
Chương 3 - Bộ xử lý trung tâm
50