Chương I.
Các Hệ Vi xử lý tiên tiến
I.1.Tổng quan về Hệ Vi xử lý tiên tiến
Các hệ Vi xử lý tiên tiến bắt đầu xuất hiện vào giữa
những năm 1990 từ các hãng chế tạo hàng đầu thế giới như
Intel, Motorola, Sun, IBM, DEC, AMD, Đặc điểm cơ
bản của các hệ Vi xử lý loại này là xử lý dữ liệu 32 bit hoặc
64 bit. BUS dữ liệu trong (Internal Data BUS) và BUS dữ
liệu ngoài (External Data BUS) thường là 32 bit hoặc 64 bit.
120 trang |
Chia sẻ: hoang10 | Lượt xem: 569 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Điện - Điện Tử - Chương I: Các hệ vi xử lý tiên tiến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nguyễn Trung Đồng Tel. 0983 410 866 1
Chương I.
Các Hệ Vi xử lý tiên tiến
I.1. Tổng quan về Hệ Vi xử lý tiên tiến
Các hệ Vi xử lý tiên tiến bắt đầu xuất hiện vào giữa
những năm 1990 từ các hãng chế tạo hàng đầu thế giới như
Intel, Motorola, Sun, IBM, DEC, AMD, Đặc điểm cơ
bản của các hệ Vi xử lý loại này là xử lý dữ liệu 32 bit hoặc
64 bit. BUS dữ liệu trong (Internal Data BUS) và BUS dữ
liệu ngoài (External Data BUS) thường là 32 bit hoặc 64 bit.
A-BUS 32n
D-BUS 32+j
C-BUS
BIU
(BUS
Inter-
face
Unit)
PUIQ
(Prefetch Unit & Instruction Queue)
DU
(Decoding Unit)
ICACHE
(Instruction cache)
DCACHE
(Data Cache)
BTC
(Target Control
Cache Unit)
CU
(Control Unit)
MMU
(Me-
mory
Ma-
nage-
ment
Unit)
SFU
(Spe-
cial
Func-
tion
Unit)
BUS nội (Internal BUS) 32n
IU (Integer Unit) FPU (Floating Point Unit)
IRF
(Integer Register File)
FPRF
(Floating Point Register
File)
IOU
(Integer Operation
Unit)
FPOU
(Floating Point Operation
Unit)
Hình I.1. Sơ đồ khối bộ Vi xử lý công nghệ tiên tiến
Hệ Vi xử lý tiên tiến
2
Các đơn vị chức năng cơ bản trong sơ đồ khối cấu trúc
của một CPU công nghệ tiên tiến gồm:
A-BUS (Address BUS): BUS địa chỉ
D-BUS (Data BUS): BUS dữ liệu
C-BUS (Control BUS): BUS điều khiển
BIU (BUS Interface Unit): Đơn vị giao tiếp BUS
MMU (Memory Management Unit): Đơn vị quản lý bộ
nhớ
SFU (Special Function Unit): Đơn vị chức năng đặc
biệt
PUIQ (Prefetch Unit and Instruction Queue): Đơn vị
tiền đọc lệnh và hàng lệnh
DU (Decoding Unit): Đơn vị giải mã
ICACHE (Instruction Cache): Cache lệnh
DCACHE (Data Cache): Cache dữ liệu
BTC (Branche Target Control Cache Unit): Đơn vị
cache điều khiển đích rẽ nhánh
CU (Control Unit): Đơn vị điều khiển
IU (Integer Unit): Đơn vị số nguyên
FPU (Floating Point Unit): Đơn vị dấu phẩy động
IRF (Integer Register File): Tệp thanh ghi số nguyên
IOU (Integer Operation Unit): Đơn vị thao tác số
nguyên
Nguyễn Trung Đồng Tel. 0983 410 866 3
FPRF (Floating Point Register File): Tệp thanh ghi số
dấu phẩy động
FPOU (Floating Point Operation Unit): Đơn vị thao
tác số dấu phẩy động
Với các bộ Vi xử lý 32 bit, các thanh ghi FPR và đơn vị
số nguyên IU là 32 bit, BUS dữ liệu có thể là 32 bit, còn
trong các bộ Vi xử lý 64 bit, thì IU là 64 bit, các FPR là 64
bit, BUS dữ liệu có thể là 64, 64x3 hoặc 64x4 bit (32n hoặc
32k, trong đó n, k là các số nguyên). BUS địa chỉ thường
cho phép quản lý bộ nhớ có dung lượng đến 4GB (232), hoặc
lớn hơn với BUS địa chỉ 32+j bit.
Đơn vị giao tiếp BUS (BIU) là bộ đệm giữa các khối
chức năng bên trong CPU với các thành phần chức năng bên
ngoài gồm bộ nhớ, thiết bị vào/ra và được tổ chức hành ba
loại giao tiếp sau:
Giao tiếp dữ liệu (Data Interface)
Giao tiếp địa chỉ (Address Interface)
Giao tiếp điều khiển (Control Interface).
Các thành phần chức năng bên trong CPU được liên kết
với nhau qua BUS bên trong (Internal BUS). Giao tiếp dữ
liệu thực hiện việc kết nối trực tiếp với PUIQ và vùng nhớ
cache. Giao tiếp địa chỉ được tạo bởi đơn vị MMU và địa
chỉ của các vị trí nhớ, của thiết bị ngoại vi được đưa tới các
thành phần tương ứng. Giao tiếp điều khiển gửi các tín hiệu
điều khiển hoạt động và nhận các tín hiệu trạng thái (trạng
thái sẵn sàng, tín hiệu yêu cầu ngắt v.v), của các thành
phần chức năng có liên lạc trao đổi dữ liệu với CPU. Các
liên kết này được nối trực tiếp với đơn vị điều khiển CU.
Hệ Vi xử lý tiên tiến
4
Đơn vị tiền đọc lệnh và hàng lệnh (PUIQ) được xây
dựng từ các mạch logic để đọc trước các lệnh từ ICACHE
và đặt lệnh vào hàng đợi. Hàng đợi được tổ chức theo
nguyên lý FIFO (First In First Out). Hàng đợi thường có độ
dài từ 8 đến 32 byte. Từ hàng đợi, lệnh được chuyển tới đơn
vị giải mã DU. Ở các hệ Vi xử lý tiên tiến, DU có thể đồng
thời giải mã một số lệnh để được thực hiện theo cơ chế xử
lý song song.
Đơn vị các chức năng đặc biệt (SFU) bao gồm các
đơn vị chức năng bổ sung thêm cho CPU như đơn vị đồ họa
(Graphic Unit), đơn vị xử lý tín hiệu (Signal Processing
Unit), đơn vị xử lý ma trận và vector (Vector and Matrix
Unit), v.v Một số bộ Vi xử lý có thể được tích hợp thêm
một số SFU và cấu trúc này làm giảm tối thiểu thời gian trễ
giao tiếp, nâng hiệu suất CPU lên đáng kể.
Bộ nhớ Cache (Cache Memory) là bộ nhớ trung gian
có tốc độ truy xuất rất cao, là vùng nhớ đệm giữa CPU và
bộ nhớ chính. Với các CPU tiên tiến, bộ nhớ cache có dung
Hình I.2. Đơn vị giao tiếp BUS BIU
Control
BUS
32+j Address
BUS
Data Interface
Address Interface
Control Interface
PUIQ
Prefetch Unit and Instruction Queue
ICACHE
DCACHE
MMU
Memory Management Unit
Internal BUS 32n
32k Data
BUS
Nguyễn Trung Đồng Tel. 0983 410 866 5
lượng đủ lớn và tối ưu giúp cải tiến đáng kể hiệu suất làm
việc của CPU nhờ được cung cấp lệnh và dữ liệu nhanh hơn
nhiều so với bộ nhớ chính. Bộ nhớ cache thường được chia
ra thành cache lệnh (ICACHE) và cache dữ liệu
(DCACHE). BIU làm nhiệm vụ lấy thông tin (lệnh và dữ
liệu) từ bộ nhớ chính vào bộ nhớ cache, ICACHE được kết
nối trực tiếp với PUIQ. ICACHE và DCACHE được kết nối
với các thành phần chức năng của CPU thông qua BUS bên
trong (internal BUS) và BUS dữ liệu điều hành ODB
(Operation Data BUS). Thông thường ODB có thể có độ
rộng là 128 đến 256 bit để có khả năng chuyển tải một lúc
nhiều toán hạng. Có thể thấy được vai trò quan trọng của bộ
nhớ Cache thông qua sơ đồ tổ chức bộ nhớ theo phân cấp
như ở hình I.3.
Cache thứ cấp L2 nằm giữa cache sơ cấp L1 và bộ nhớ
chính, kết nối trực tiếp với CPU không qua BUS hệ thống,
được chế tạo từ RAM tĩnh nên có tốc độ truy xuất rất nhanh.
Dung lượng cache thứ cấp L2 có thể lên đến hơn vài MB.
Điều khiển và giao tiếp cache thứ cấp là mạch logic tổ hợp
được tích hợp bên trong CPU.
CPU
Tập các thanh ghi
Bộ nhớ Cache L1
Bộ nhớ Cache L2
Bộ nhớ chính
Bộ nhớ ngoài (các ổ đĩa)
>1kB
>1kB
>64kB
>512kB
>1GB
>60GB
Dung lượng Tốc độ truy xuất
< 1ns
<
< 1-2ns
< 1-2ns
< 4ns
< 8ns
<
Hình I.3. Phân cấp bộ nhớ , dung lượng và tốc độ truy xuất
Hệ Vi xử lý tiên tiến
6
Hình I.5. cho thấy trong kiến trúc siêu hướng (superscalar)
ICACHE được liên kết trực tiếp với đơn vị tiền đọc lệnh để
thực thi việc xử lý song song các lệnh.
IU
IC
DCACHE
BUS beeb trong (Internal BUS) 32n
ICACHE
BUS bên trong (Internal BUS) 32n
IU FPU SFU
Logic điều khiển cache thứ cấp L2
CACHE thứ cấp L2
BUS thao tác dữ liệu ODB 32n
Hình I.4. Kết nối CACHE trong Vi xử lý
ICACHE
Instruction Fetch
Decoding Unit
Control Unit
Đơn vị thao tác
đường ống 1
(Pipelined
Operation Unit
1)
Đơn vị thao tác
đường ống 2
(Pipelined
Operation Unit
2)
Đơn vị thao tác
đường ống i
(Pipelined
Operation Unit
i)
32i
32i
Nguyễn Trung Đồng Tel. 0983 410 866 7
Để nâng cao hiệu suất thực hiện, nhất là khi gặp các
lệnh rẽ nhánh, các CPU được tích hợp thêm cache đích rẽ
nhánh BTC (Branche Target Cache). Lệnh đích đầu tiên của
lệnh rẽ nhánh được nạp vào vùng cache này, nên thời gian
trễ do tìm lệnh đích trong bộ nhớ chính được giảm đáng kể.
Trong một số trường hợp BTC chỉ chứa địa chỉ của các lệnh
đích rẽ nhánh, chứ không chứa chính các lệnh đó.
Đơn vị điều khiển (CU) có thể là “cứng hóa”, hoặc
được lập trình như đối với các CPU họ x86 của Intel. Trong
các CPU kiến trúc RISC, CU thường được “cứng hóa”
nhằm tăng tốc độ thực hiện lệnh chỉ trong một chu kỳ đơn.
Hầu hết các tín hiệu điều khiển của giao tiếp điều khiển
được kết nối với CU. Các tín hiệu từ đơn vị giải mã lệnh
cũng được đưa về CU. Tín hiệu phát ra từ CU được đưa đến
các thành phần chức năng thực hiện lệnh.
Đơn vị số nguyên (IU) thực hiện các phép xử lý với dữ
liệu nguyên (integer) như các phép tính số học cộng/trừ,
nhân/chia. IU có tệp thanh ghi 32 hoặc 64bit phụ thuộc vào
loại CPU. Các Vi xử lý kiến trúc CISC có từ 8 đến 16 thanh
ghi, còn các CPU kiến trúc RISC có thể có từ 32 đến hơn
100 thanh ghi. Dòng dữ liệu di chuyển theo hai đường (cho
mỗi toán hạng là một đường) để tới các đơn vị thao tác xử lý
thông qua ODB. Đơn vị điều phối lệnh đã dược giải mã
nhận các tín hiệu từ CU và gửi tới các đơn vị thực hiện
phép xử lý.
Hình I.5. Xử lý lệnh trong kiến trúc siêu hướng (Superscalar)
Hệ Vi xử lý tiên tiến
8
Tương tự, đơn vị số dấu phẩy động (FPU) nhận dữ
liệu từ DCACHE thông qua BUS thao tác dữ liệu chuyển tới
các đơn vị xử lý. Đơn vị dịch ống (Barrel Shifter) có thể
thực hiện phép dịch nhiều bit trong một chu kỳ đơn.
FPU có cấu trúc hoàn toàn tương tự IU, chỉ thay thế các
khối xử lý nguyên bằng các khối xử lý dấu phẩy động. Với
tệp các thanh ghi thì ở đơn vị số dấu phẩy động, N = 8 với
các CPU CISC và là 32 hoặc nhiều hơn với các CPU RISC.
Số dấu phẩy động được biểu diễn theo chuẩn IEEE 754-
1985 với chính xác đơn là 32 bit, chính xác gấp đôi là 64
bit, số chính xác mở rộng lên tới 80 bit.
Đơn vị điều khiển
BUS bên trong 32n
Đơn vị điều phối lệnh
đã được giải mã
(Decoded Instruction
Dispatcher)
ADD/
SUB1
ADD/
SUBi
MUL/
DIV1
MUL/
DIVk
IRF
Nx32
hoặc
Nx64
BUS thao tác dữ liệu ODB 32n
DCACHE
Đến FPU hoặc SFU
Hình I.6. Đơn vị số nguyên IU
Dịch ống (Barrel shifter)
Nguyễn Trung Đồng Tel. 0983 410 866 9
Đơn vị quản lý bộ nhớ (MMU) thực hiện các chức
năng:
Chuyển đổi địa chỉ ảo hay địa chỉ logic thành địa
chỉ vật lý của ô nhớ. Địa chỉ này được chuyển tới
bộ nhớ cache hoặc tới bộ nhớ chính.
Đảm bảo cơ chế phân trang
Đảm bảo cơ chế phân đoạn
Đảm bảo chế độ bảo vệ bộ nhớ theo luật truy nhập
theo đặc quyền
Quản lý bộ đệm duyệt chuyển đổi TLB
(Translation Lookaside Buffer) hay cache chuyển
đổi địa chỉ ATC (Address Translation Cache) để
chuyển đổi địa chỉ ảo thành địa chỉ vật lý.
Các chip Vi xử lý công nghệ cao thường có đơn vị
chức năng phân trang (Paging Unit) và TLB, hoặc ATC, chỉ
có riêng họ Vi xử lý x86 của Intel có thêm đơn vị phân đoạn
(Segment Unit). Trong MMU còn có mạch logic thực hiện
chức năng giám sát các truy nhập đến các thư mục trang và
Từ đơn vị
tiền đọc
Đến ICACHE
BUS bên trong (Internal BUS)
Bộ đệm
chuyển đổi
BUS bên trong (Internal BUS)
Đơn vị phân trang Đơn vị phân đoạn
Từ BIU
Hình I.7. Đơn vị quản lý bộ nhớ MMU
Hệ Vi xử lý tiên tiến
10
các bảng tương ứng trong bộ nhớ chính, và nạp vào TLB số
hiệu trang nếu như không tìm thấy trong TLB (hiện tượng
chưa nạp số hiệu trang).
I.2. Đặc điểm kiến trúc Hệ Vi xử lý tiên tiến
Nói đến các hệ thống máy tính tiên tiến, khái niệm xử
lý song song được quan tâm nhiều nhất, và là cơ sở để đánh
giá tính tiên tiến, hiện đại của hệ thống. Phạm trù công nghệ
trong các Hệ Vi xử lý tiên tiến chủ yếu tập trung vào các
nhu cầu cấp thiết của sự hoàn thiện cấu hình cao, giá thành
hạ, tổ chức sản xuất hàng thương phẩm và ứng dụng thực
tiễn.
Xử lý song song xuất hiện dưới những hình thức tổ
chức và kiến trúc khác nhau, trong đó, các kiến trúc siêu
hướng (Superscalar), kiến trúc đường ống (Pipeline), kiến
trúc đa xử lý (Multiptiprocessor) và kiến trúc từ lệnh rất dài
(VLIW – Very Long Instruction Word) là những kiến trúc
tiêu biểu nhất. Tuy dưới dạng các kiến trúc khác nhau,
nhưng về nguyên lý, xử lý song song có thể hiểu được thông
qua một ví dụ cụ thể sau đây:
Giả sử một nhiệm vụ T có thể chia thành n công việc
con có kích thước xấp xỉ nhau và có thể xử lý đồng thời
(thực hiện song song), thì nhiệm vụ T sẽ được thực hiện
xong trong một khoảng thời gian ngắn hơn rất nhiều so với
cách thực hiện theo tuần tự. Ví dụ phải tính tổng của N số
hạng b1, b2, .., bN. Đoạn chương trình đơn giản tính tổng
đó có thể mô tả như sau:
SUM = 0;
for i = 1 to N do SUM = SUM +b(i);
Nguyễn Trung Đồng Tel. 0983 410 866 11
Trong máy tuần tự, sau N phép cộng, tổng sẽ là kết quả
ở biến SUM. Nếu mỗi phép cộng được thực hiện trong
khoảng thời gian là Tadd thì tổng thời gian là xấp xỉ NTadd .
Giả sử có một máy tính có n bộ xử lý P1, P2, , Pn giống
nhau được kết nối theo cấu trúc mảng 2 chiều, mỗi bộ đồng
thời tiếp nhận (receive) và gửi (send) dữ liệu cho bộ xử lý
kề cận.
Nếu thực hiện xử lý song song để tính tổng SUM trên
hệ thống này, ta có thể chia cho mỗi bộ xử lý tính tổng của k
số hạng, tổng SUM được tính qua k tổng của N/n số hạng,
mà các tổng con này được tiến hành tính đồng thời. Bộ xử
lý Pi chuyển kết quả phép cộng của nó cho bộ xử lý Pi+1, Kết
quả của bộ xử lý Pi+1 chuyển sang cho bộ xử lý Pi+2,
v.vNhư vậy, kết quả tống N số hạng sẽ nằm ở bộ xử lý Pn.
Đoạn chương trình thực hiện phép tính tổng N số hạng sẽ
như sau:
SUM = 0;
for i = 1 to k do SUM = SUM + b(i);
if INDEX = 1 then
begin
if n > 1 then send (RIGHT, SUM)
end else
P1
Hình I.8. Mảng tuyến tính 2 chiều gồm n bộ Vi xử lý
P2
P3
PN
Hệ Vi xử lý tiên tiến
12
begin
receive (LEFT, LEFTSUM);
if INDEX < n then send (RIGHT,SUM);
end;
Từ chương trình thực hiện, thấy rằng thời gian T(n) cần
để tính tổng SUM theo xử lý song song trên n bộ xử lý có 2
thành phần chính:
a) TL thời gian tính cục bộ để tính k =
n
N
phép cộng
đồng thời trên n bộ xử lý. TL =
n
N
K1 trong đó K1
là hằng số phụ thuộc vào thời gian cộng và lưu giữ
trên 1 bộ Vi xử lý.
b) TC là thời gian truyền thông để gửi dữ liệu trung
gian qua n – 1 phép cộng. TC = K2(n-1) trong đó
K2 phụ thuộc vào độ trễ truyền thông giữa các bộ
Vi xử lý.
T(n) = TL + TC = + K2(n-1)
Thời gian truyền dữ liệu giữa các bộ Vi xử lý lớn hơn
rất nhiều so với thời gian tính toán, K2 » K1 và nếu n càng
lớn thì TC càng lớn. Rõ ràng nếu n = 1 thì T(n) = K1N.
I.3. Phân loại các bộ Vi xử lý song song
Các bộ Vi xử lý song song có thể phân loại theo hành
vi hoặc theo cấu trúc. Theo hành vi, chúng được phân loại
n
N
K1
Nguyễn Trung Đồng Tel. 0983 410 866 13
dựa trên số lượng các lệnh và các toán hạng được xử lý
đồng thời, còn theo cấu trúc chúng được phân loại theo cách
kết nối các bộ Vi xử lý trong hệ thống. Tuy nhiên cả hai
cách phân loại này cũng chỉ là tương đối.
I.3.1. Phân loại theo Flynn
a) Khái niệm chuỗi lệnh và chuỗi dữ liệu
Đơn vị xử lý P đọc các lệnh (Fetching Instructions) và
các dữ liệu (Operands) từ bộ nhớ, thực hiện lệnh (Executing
Instructions) và chuyển kết quả vào bộ nhớ chính. Các bước
thực hiện này gộp thành 1 chu kỳ lệnh (Instruction Cycle).
Các lệnh có thể hình thành một chuỗi lệnh liên tiếp nhau
(Instruction Stream) được đọc từ bộ nhớ vào bộ xử lý, các
toán hạng cũng hình thành 1 chuỗi dữ liệu theo sau đó tới bộ
xử lý.
Chuỗi dữ liệu
Chuỗi lệnh
Bộ xử lý P
Bộ nhớ M
Hình I.9. Trao đổi chuỗi lệnh và chuỗi dữ liệu
IS
a) Kiến trúc 1 processor SISD
b) Kiến trúc multiprocessor SIMD với bộ nhớ phân tán
IS
IS
Chương
trình từ bộ
nhớ chính
DS
DS
DS
I/O
IS DS
CU PU MU
PE1
CU
LM1
PEn LMn
DS Dữ
liệu
được
lấy từ
bộ
nhớ
chính
Hệ Vi xử lý tiên tiến
14
b) Phân loại theo Flynn là phân loại theo chuỗi lệnh và
chuỗi dữ liệu. Hình a, b, c, d dưới đây mô tả các hệ
xử lý song song theo cách phân loại của Flynn
Các ký hiệu viết tắt:
CU (Control Unit) Đơn vị điều khiển
c) Kiến trúc MIMD với bộ nhớ chia sẻ
IS
IS
I/O
IS
CU1 PU1
CUn PUn IS
DS
DS
Bộ nhớ
chia sẻ
I/O
I/O
IS
DS
DS DS DS
IS IS IS
IS IS
CU1 CU2
PU1 PU2
CUn
PUn
Bộ nhớ
(chương
trình & dữ
liệu)
d) Kiến trúc MISD
Nguyễn Trung Đồng Tel. 0983 410 866 15
PU (Processing Unit) Đơn vị xử lý
MU (Memory Unit) Đơn vị nhớ
IS (Instruction Stream) Chuỗi lệnh
DS (Data Stream) Chuỗi dữ liệu
PE (Processing Element) Phần tử xử lý
LM (Local Memory) Bộ nhớ cục bộ
Như vậy, theo Flynn, các hệ thống xử lý song song
được chia thành 4 loại theo số lượng chuỗi lệnh và chuỗi dữ
liệu:
a) SISD (Single Instruction Stream over Single Data
Stream) Máy tính với chuỗi lệnh đơn xử lý chuỗi
dữ liệu đơn.
b) SIMD (Single Instruction Stream over Multiple
Data Stream) Máy tính với chuỗi lệnh đơn xử lý
chuỗi đa dữ liệu
c) MISD (Multiple Instruction Stream over Single
Data Stream) Máy tính với chuỗi đa lệnh xử lý
chuỗi dữ liệu đơn
d) MIMD (Multiple Instruction Stream over Multiple
Data Stream) Máy tính với chuỗi đa lệnh xử lý
chuỗi đa dữ liệu.
Với cách phân loại như trên, trong thực tế máy tính
MIMD thường được sử dụng như máy tính đa năng, còn các
hệ thống SIMD và MISD là những hệ thống máy tính
chuyên dụng. Trong thực tế, máy tính MIMD được sử dụng
nhiều nhất, tiếp theo là các máy loại MISD rồi đến loại máy
tính SIMD.
Hệ Vi xử lý tiên tiến
16
I.3.2. Phân loại theo kiến trúc
Theo quan điểm kiến trúc, máy tính xử lý song song
được phân thành 2 loại chủ yếu là máy tính đa xử lý
(Multiprocessors) và kiến trúc đa máy tính
(Multicomputers). Thực tế, các máy tính này khác nhau cơ
bản ở tổ chức bộ nhớ chia sẻ dùng chung và tổ chức bộ nhớ
phân tán.
a) Đa xử lý với bộ nhớ chia sẻ được phân ra làm 3 loại:
Mô hình với bộ nhớ truy xuất đồng nhất (UMA –
Uniform Memory-Access), bộ nhớ truy xuất không đồng
nhất (NUMA – Nonuniform Memory-Access) và cuối cùng
là loại kiến trúc chỉ-có-bộ-nhớ-cache (COMA – Cache-Only
Memory Architecture).
Với mô hình đa xử lý với bộ nhớ truy xuất bộ nhớ
đồng nhất (UMA), bộ nhớ vật lý được chia sẻ đồng nhất cho
tất cả các đơn vị xử lý. Tất cả các bộ xử lý đều có tốc độ
truy xuất bằng nhau đối với tất cả các từ nhớ. Mỗi đơn vị
xử lý có thể có cache riêng, nhưng các thiết bị ngoại vi thì
cũng được chia sẻ đồng nhất.
Đa xử lý được gọi là hệ thống gắn kết chặt chẽ (tightly
coupled systems) vì hình thức chia sẻ nguồn tài nguyên
chung. Liên kết giữa các đơn vị xử lý được thực hiện dưới
dạng BUS chung thông qua các chuyển mạch chéo, hoặc
thông qua các mạng nhiều tầng. Các hệ thống loại này rất
thích hợp với các ứng dụng đa năng và ứng dụng nhiều
người dùng thông qua việc chia sẻ theo thời gian. Đặc biệt
hơn, loại hệ thống này được sử dụng cho những chương
trình ứng dụng lớn cần được thực thi trong khoảng thời gian
bị hạn chế. Việc tổ chức đồng bộ và liên kết xử lý các sự
Nguyễn Trung Đồng Tel. 0983 410 866 17
kiện song song được thực hiện trong các đơn vị xử lý thông
qua việc chia sẻ biến lưu giữ trong bộ nhớ dùng chung. Khi
tất cả các bộ xử lý đều có thời gian truy xuất như nhau đối
với các thiết bị ngoại vi, hệ thống được gọi là đa xử lý đối
xứng. Trong hệ thống này, tất cả các bộ xử lý đều có khả
năng thực hiện các chương trình khả thi, cũng như kernel hệ
điều hành và các thủ tục phục vụ ngoại vi. Trong hệ thống
đa xử lý phi đối xứng chỉ có một số các đơn vị xử lý có khả
năng thực thi chương trình. Đơn vị xử lý chủ có thể thực
hiện các chương trình của hệ điều hành và phục vụ các thiết
bị ngoại vi, các bộ xử lý khác chỉ có khả năng phục vụ các
thiết bị ngoại vi và được gọi là các bộ xử lý gắn kèm
(attached processors – Aps). Các bộ xử lý gắn kèm thực
hiện lệnh dưới sự giám sát của đơn vị xử lý chủ.
Với mô hình đa xử lý truy xuất bộ nhớ không đồng
nhất (NUMA), thời gian truy xuất đến một vị trí nhớ là khác
nhau. Mô hình hệ thống NUMA có bộ nhớ chia sẻ được
phân phối cho từng đơn vị xử lý và được gọi là bộ nhớ cục
bộ.
Hình I.10. Mô hình đa xử lý truy xuất bộ nhớ đồng nhất
P1
Mạng kết nối hệ thống (BUS, thiết bị chuyển
mạch, mạng nhiều tầng)
IO
SM1
Bộ nhớ chia sẻ
Các bộ xử lý
P2 Pn
SMm
Hệ Vi xử lý tiên tiến
18
Ngoài bộ nhớ phân tán, còn có thể có bộ nhớ toàn cục
chia sẻ trong hệ thống đa xử lý. Như vậy, sẽ có 3 khả năng
truy xuất bộ nhớ: Nhanh nhất là truy xuất bộ nhớ cục bộ,
tiếp đến là truy xuất bộ nhớ toàn cục, và chậm nhất là khi
truy xuất bộ nhớ phụ.
LM1 P1
LM2 P2
LMn Pn
Mạng
kết nối
Hình I.11a. Bộ nhớ cục bộ chia sẻ
Hình