120
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

Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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

Page 2: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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

Page 3: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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.

Page 4: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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

Page 5: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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

Page 6: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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

Page 7: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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)

Page 8: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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)

Page 9: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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

Page 10: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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);

Page 11: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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.v…Như 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

Page 12: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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

NK1 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

NK1

Page 13: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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

Page 14: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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

Page 15: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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.

Page 16: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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ự

Page 17: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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

Page 18: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

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 I.11b. Mô hình liên kết phân cấp

Cluster 1

GSM GSM GSM

Mạng kết nối toàn cục

P

P

P

CSM

CSM

CSM

C

I

N

Cluster N

P

P

P

CSM

CSM

CSM

C

I

N

Page 19: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 19

Có thể hiểu được dễ dàng, mô hình hệ thống này là sự

hỗn hợp giữa bộ nhớ chia sẻ, bộ nhớ riêng với những quyền

truy xuất riêng. Có thể nhận ra trên hình I.11b rằng các bộ

xử lý được chia thành các cụm (cluster). Mỗi cụm là một hệ

thống UMA hoặc NUMA. Các cụm được kết nối với bộ nhớ

chia sẻ toàn cục. Toàn bộ hệ thống có thể coi là một hệ

thống NUMA. Các bộ xử lý trên cùng một cụm được gọi là

modul cụm bộ nhớ-chia sẻ.

Tất cả các cụm có quyền bình đẳng truy xuất bộ nhớ

toàn cục. Tất nhiên việc truy xuất bộ nhớ trong cụm bao giờ

cũng nhanh hơn. Mỗi cụm có thể xác định quyền truy xuất

đến các bộ nhớ được ghép nối giữa các cụm.

b) Mô hình hệ thống kiến trúc chỉ-truy-xuất-bộ-nhớ-

cache (COMA)

D: Directory (đường dẫn) C: Cache P: Processor

Hình I.12. Mô hình hệ đa xử lý COMA

Mạng kết nối

D

C

P

D

C

P

D

C

P

Page 20: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

20

Có thể coi hệ thống COMA là trường hợp đặc biệt của

NUMA, trong đó bộ nhớ phân tán được chuyển thành bộ

nhớ cache. Không tồn tại sự phân cấp bộ nhớ tại các điểm

nút. Toàn bộ dung lượng nhớ cache tạo ra không gian địa

chỉ toàn cục. Hiện tượng truy xuất cache từ ngoài phải thông

qua đường dẫn cache phân tán D. Việc phân cấp đường dẫn

D đôi khi cho phép định vị một bản sao chép cache tùy vào

dạng mạng kết nối.

Bên cạnh các kiến trúc UMA, NUMA, COMA, còn tồn

tại những kiến trúc đa xử lý khác. Ví dụ như mô hình kiến

trúc truy xuất bộ nhớ không đồng nhất liên kết cache (CC-

NUMA: Cache-coherent non-uniforrm memory access) có

thể được xác định với bộ nhớ phân tán chia sẻ và các đường

dẫn cache.

c) Mô hình đa máy tính bộ nhớ phân tán

Hình I 13. Mô hình kiến trúc đa máy tính mạng liên kết chuyển thông điệp

M

P

M

P

M

P

Mạng liên kết chuyển thông

điệp (Message-passing

interconnection Network) dạng

lưới, vòng, lập thể …

M

P

M

P

M

P

M P

M P

M P

M P

Page 21: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 21

Hình I.13 là mô hình kiến trúc hệ thống đa máy tính bộ

nhớ phân tán được cấu thành từ nhiều máy tính được gọi là

nút, kết nối với nhau thông qua mạng chuyển thông điệp.

Mỗi nút là một máy tình độc lập cấu thành bởi bộ xử lý , bộ

nhớ cục bộ, cũng có thể có thêm đĩa cứng, hoặc các thiết bị

ngoại vi. Mạng chuyển thông điệp thực thi việc kết nối tĩnh

giữa các nút. Các bộ nhớ cục bộ là riêng biệt với từng nút và

chỉ có thể bị truy xuất bởi chính bộ xử lý tại nút đó. Các hệ

thống truyền thống này được gọi là hệ thống đa máy tính

không-truy-xuất-bộ-nhớ-từ-xa (no-remote-memory-access).

Tuy nhiên, việc đưa thêm bộ nhớ chia sẻ phân tán và khả

năng truyền thông điệp giữa các nút thông qua liên kết mạng

tĩnh đã loại bỏ khái niệm này.

d) Mô hình hệ thống đa vector và các máy tính SIMD

Phần này giới thiệu sơ qua về các hệ thống siêu máy

tính và các hệ thống bộ xử lý song song cho xử lý vector và

dữ liệu song song. Có thể xếp loại chúng thành các máy tính

vector đường ống hóa với các bộ xử lý mạnh được liên kết

cứng kiểu vector, hay còn gọi là hệ thống SIMD xử lý các

tập dữ liệu song song.

Siêu máy tính vector là những máy tính có hướng

hàng đầu. Hình I.14. cho thấy bộ xử lý vector được gắn kèm

với bộ xử lý có hướng, và là hệ thống theo kiến trúc thanh

ghi-đến-thanh ghi. Khởi đầu chương trình và dữ liệu được

nạp vào bộ nhớ chính thông qua máy chủ. Tất cả các lệnh

được giải mã tại đơn vị điều khiển có hướng. Nếu lệnh được

giải mã là thao tác có hướng hay thao tác điều khiển chương

trình, nó sẽ được thực thi trực tiếp tại bộ xử lý đường ống

chức năng scalar. Nếu lệnh được giải mã là thao tác vector,

nó được gửi tới đơn vị điều khiển vector. Đơn vị điều khiển

Page 22: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

22

vector sẽ giám sát dòng dữ liệu vector giữa bộ nhớ chính và

các đường ống vector chức năng. Có thể có nhiều đường

ống vector chức năng được tích hợp trong bộ xử lý vector.

Tập thanh ghi vector được sử dụng để lưu các toán

hạng vector, kết quả tức thời và kết quả cuối cùng. Các

đường ống vector chức năng nhận toán hạng từ các thanh

ghi này và ghi kết quả trở lại tập thanh ghi này. Mỗi thanh

ghi vector được gán với bộ đếm có chức năng đảm bảo quy

trình sử dụng thanh ghi đó trong một chu kỳ đường ống. Độ

dài của thanh ghi vector là cố định, ví dụ với hệ thống siêu

máy tính Cray Series là 64 thanh ghi 64bit.

Còn có loại siêu máy tính theo kiến trúc bộ nhớ-đến-bộ

nhớ mà ở đó, thay vì tập thanh ghi vector là đơn vị chuỗi

vector. Các toán hạng vector lấy trực tiếp từ bộ nhớ chính

và kết quả được ghi trực tiếp vào bộ nhớ chính như các siêu

từ, có thể có độ dài đến 512 bit như ở siêu máy tính Cyber

205.

Hình I.15 cho thấy rõ mô hình cấu trúc và hoạt động

của một siêu máy tính SIMD với một dòng lệnh và nhiều

dòng dữ liệu.

Các mô hình máy tính truy xuất song song ngẫu

nhiên (PRAM – Parallel Random-Access Machine)

Độc giả có thể tìm hiểu kỹ hơn về các loại máy tính

truy xuất ngẫu nhiên (RAM – Ramdom-Access Machine),

máy tính truy xuất song song ngẫu nhiên (PRAM – Parallel

Ramdom-Access Machine), và các dạng khác nhau của máy

tính PRAM tại […. Kai Hwang].

Page 23: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 23

Siêu máy tính SIMD

Mô hình PRAM với bộ nhớ chia sẻ được thể hiện ở

Hình I.16. Tất cả n bộ xử lý hoạt động theo phương thức các

bước tìm kiếm khi truy xuất bộ nhớ trong quá trình thực thi

chương trình. Chúng có thể truy xuất một vị trí nhớ bất kỳ

tại cùng một thời điểm.

Scalar Instructions

Control

Vector Instructions

Vector Data Scalar

Data

Vector Processor

Scalar Processor

Các

đường ống

chứScalarc

năng có hướng

Đơn vị điều

khiển có

hướng

Bộ nhớ chính

Bộ

nhớ

phụ

Các đường ống

chức năng có

hướng

Máy tính

chủ

Đơn vị

điều khiển

vector

Tập

Tha

nh

Ghi

Đơn vị điều

khiển vector

Tập

thanh

ghi

vector

Đường ống chức

năng vector

Đường ống chức

năng vector

I/O User

Hình I.14. Kiến trúc siêu máy tính vector

Page 24: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

24

Hình I.15. Mô hình hoạt động của siêu máy tính SIMD

PE 0

Đơn vị điều khiển

Proc0

Mem0

PE 1

Proc1

Mem1

PE 2

Proc2

Mem2

PE N-1

ProcN-1

MemN-1

Mạng kết nối

P1

P2

Pn

Bộ nhớ

chia sẻ

chung

Đồng bộ

Hình I.16. Mô hình máy tính PRAM

Page 25: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 25

Một hệ thống PRAM n bộ xử lý có bộ nhớ được địa chỉ

hóa một cách toàn cục. Bộ nhớ chia sẻ có thể phân bổ cho

các bộ xử lý hoặc tập trung. Tất cả n bộ xử lý (cũng còn gọi

là n phần tử xử lý) hoạt động ghi đọc theo phương thức

đồng bộ. Với bộ nhớ chia sẻ, hệ thống luôn phải xác định có

thao tác đọc ghi nào xẩy ra đồng thời hay không. Có 4 tùy

chọn Ghi/đọc:

Exclusive Read (ER – Đọc riêng) Cho phép nhiều

nhất là bộ xử lý đọc bất kỳ ô nhớ nào trong 1 chu

kỳ.

Exclusive Write (EW – Ghi riêng) Cho phép nhiều

nhất là bộ xử lý ghi vào bất kỳ ô nhớ nào trong 1

chu kỳ

Concurrent Read (CR – Đọc đồng thời) Cho phép

nhiều bộ xử lý đồng thời đọc dữ liệu tại một ô nhớ

trong cùng 1 chu kỳ

Concurrent Write (CW – Ghi đồng thời) Cho phép

ghi đuổi vào một ô nhớ. Để tránh rối loạn, cần có 1

chiến lược giải quyết tranh chấp.

Mô hình VLSI hoàn chỉnh

Các mô hình lý thuyết của máy tính song song thường

sử dụng theo đề xuất của thuật giải và đề xuất phát triển của

chíp hoặc mạch tích hợp cực lớn. Thông thường những mô

hình này sử dụng các giải thuật song song để thiết kế hệ

thống mà không quan tâm đến cấu trúc vật lý cụ thể của

thiết bị. Mô hình được ứng dụng để đảm bảo việc thực hiện

ý tưởng một máy tính xử lý song song nhờ sự hoàn chỉnh

của các mạch tích hợp cực lớn và thời gian thực hiện chứ

Page 26: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

26

không quan tâm đến việc chíp được tạo ra như thế nào.

Dung lượng nhớ và thời gian truy cập phụ thuộc vào yêu

cầu của giải thuật. Thời gian truy cập phụ thuộc vào độ

phức tạp của vấn đề cần xử lý.

Máy tính xử lý song song hiện thực hóa được nhờ sử

dụng các chip VLSI tạo nên các phần tử chính như mảng

các bộ xử lý, mảng bộ nhớ và các mạng chuyển mạch. Công

nghệ cao trong nền công nghiệp vi điện tử cho phép thiết kế

các máy tính song song nhờ:

Có thêm nhiều không gian trống để tăng thêm các

khối chức năng như MMU, FPU, điều khiển

Vào/Ra, và dung lượng cache trong chip.

Tăng số lượng thanh ghi trong tệp thanh ghi, tạo khả

năng thực hiện được nhiều loại chương trình với

thời gian truy xuất bộ nhớ tối thiểu.

Sử dụng tiến bộ vượt bậc của công nghệ Vi điện tử.

Main

MemoryRegister File

Loadl

store

Unit

FP

Add

Unit

Integer

ALU

Branch

Unit

Load/store FP Add FP multiply Branch Integer ALU

Hình I.17. Mô hình máy tính VLIW và cú pháp lệnh VLIW

Cú pháp một lệnh của hệ thống VLIW

Page 27: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 27

Chương II.

Kỹ thuật đường ống và siêu hướng

Chương này khảo sát về kỹ thuật đường ống

(Pipelining Technique) và kỹ thuật siêu hướng (Superscalar

Technique), về tổ chức đường ống lệnh (Instruction

Pipeline), đường ống số học (Arithmetic Pipeline) và đường

ống truy xuất bộ nhớ (Memory-access Pipeline).

II.1. Đa xử lý đường ống tuyến tính

Bộ xử lý đường ống tuyến tính (linear pipeline

processor) là sự ghép nối các tầng xử lý (processing stage)

liên kết tuyến tính để thực hiện một chức năng cố định trên

chuỗi dữ liệu từ khởi đầu đến kết thúc. Trong các máy tính

hiện đại, đường ống tuyến tính được ứng dụng vào các chức

năng thực hiện lệnh, tính toán số học và thao tác truy xuất

bộ nhớ.

Giả thiết rằng xử lý đường ống tuyến tính có k tầng xử

lý. Dữ liệu từ ngoài được nạp vào đường ống tại tầng thứ

nhất S1. Kết quả xử lý thu được phải trải qua các tầng Si, đến

tầng Si+1 với i = 1, 2, …, k-1. Kết quả cuối cùng thu được là

lối ra của tầng cuối cùng Sk. Dựa vào phương thức điều

khiển dòng dữ liệu trong đường ống có thể chia đường ống

tuyến tính ra 2 loại: dị bộ (asynchronous) và đồng bộ

(synchronous).

a) Mô hình máy tính đường ống dị bộ

Trong loại mô hình này, dòng dữ liệu giữa các tầng liên

tiếp trong một đường ống dị bộ được tiến hành thông qua

phương thức bắt tay (handshaking protocol), nghĩa là khi

nào tầng Si sẵn sàng truyền, Si gửi tín hiệu sẵn sàng (ready)

Page 28: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

28

cho tầng Si+1. Sau khi tầng Si+1 nhận xong dữ liệu từ Si thì

Si+1 gửi tín hiệu nhận biết (acknowledge) cho tầng Si.

Đường ống dị bộ rất thích hợp cho thiết kế các kênh

truyền thông trong các hệ thống đa máy tính liên kết bằng

thông điệp. Nó có thể có vận tốc truyền khác nhau.

Các đường ống động (dynamic pipeline) cho phép tái

cấu hình kết nối để thực hiện nhiều chức năng khác nhau tại

những thời điểm khác nhau. Các đường ống tuyến tính

truyền thống đều là những đường ống tĩnh (static pipeline)

và vì vậy chúng chỉ thực hiện một chức năng cố định.

Đường ống động cho phép dùng cách liên kết ngược hoặc

xuôi cùng các chuỗi liên kết. Cũng vì lý do này, có tác giả

cho rằng các đường ống loại này là đường ống phi tuyến.

b) Mô hình máy tính đường ống đồng bộ

R

eady A

ck

Ack R

eady

Ready

Data

S1 S2 Sk

Input Output

Hình II.1. Mô hình đường ống dị bộ

Thời gian (Xung nhịp)

Hình II. 2. Mô hình hệ thống máy tính đường ống đồng bộ

τm τ d

Latch

Clock

S1 S2 Sk

Page 29: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 29

1 2 3 4 Si Tầng thứ i

S1 × L Chốt

S2 × τ Chu kỳ xung nhịp

S3 × τm Trễ tầng cực đại

S4 × d Trễ chốt

Có thể dễ dàng nhận ra phương thức hoạt động đồng bộ

trên hình II.2. Các mạch chốt Flip-Flop chủ tớ điều khiển

1 2 3 4 5 6 7 8

S1 X X X

S2 X X

S3 X X X

1 2 3 4 5 6

S1 Y Y

S2 Y

S3 Y Y Y

c)Bảng dự phòng đường ống đồng bộ 4 tầng

t

Output Y

Input

S1 S2 S3

Output X

Hình II.2. Một đường ống 3 tầng

Bảng dự phòng

cho chức năng X

Bảng dự phòng

cho chức năng Y

Page 30: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

30

bởi xung nhịp được sử dụng làm giao tiếp giữa các tầng.

Khi xung nhịp xuất hiện các mạch chốt đồng thời truyền dữ

liệu đã được xử lý cho tầng tiếp theo. Các tầng là những

mạch logic tổ hợp và cần phải có độ trễ xấp xỉ nhau. Độ trễ

này quyết định tốc độ xử lý của đường ống.

Việc sử dụng các tầng nối tiếp nhau trong hệ thống

đường ống tuyến tính được xác định bởi bảng dự phòng

(Reservation Table). Bảng dự phòng là biểu đồ thời gian-

không gian (space-time diagram) chỉ rõ mối quan hệ được

sử dụng trong tầng. Với hệ thống đường ống k tầng, cẩn

phải có k xung nhịp để 1 thao tác đường ống được hoàn

thiện. Mỗi thao tác đường ống được khởi động bởi 1 xung

nhịp để bắt đầu. Cho đến kết thúc thao tác trên đường ống,

kết quả được chuyển cho đường ống khác xử lý tiếp. Sự

“xuyên suốt” (throughput) một đường ống chỉ được coi là

hoàn thiện khi các thao tác đường ống độc lập với nhau.

Mức đường ống tinh nhất được gọi là mức vi đường

ống (Micropipelining) với cách phân chia tầng theo mức

cổng logic. Trong thực tế, mỗi tầng chỉ có từ 2 ≤ k ≤ 15

cổng. Trong thực tế, ở các máy tính hiện nay, rất ít các

đường ống vượt quá 10 mức cổng logic. Mức tiếp theo của

đường ống là mức đường ống Macro (Macropipelining).

Lựa chọn tối ưu cho số tầng ở mức đường ống này phụ

thuộc vào giá thành trên 1 sản phẩm hoàn chỉnh. Để đánh

giá chỉ tiêu này thì Larson đã đưa ra biểu thức tính PCR

(Performance/Cost Ratio). [ Xem …..]

Bảng dự phòng của đường ống tuyến tính tĩnh chỉ ra

dòng chuyển của chuỗi dữ liệu trong đường ống. Bảng này

đặc biệt đáng khảo sát trong hệ thống đường ống động, vì

Page 31: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 31

với một loại đường ống, có thể tạo ra nhiều bảng khác nhau

nhằm thực hiện những chức năng xử lý khác nhau. Mỗi

bảng chỉ ra một dòng chuyển theo thời gian và không gian

(time-space flow) của chuỗi dữ liệu trong đường ống. Số

lượng cột chỉ ra thời gian xử lý (evalution time) của chức

năng cần thiết. Trong ví dụ đã nêu trên, chức năng X cần 8

xung nhịp, trong khi chức năng Y chỉ cần 6 xung nhịp. Bảng

thiết lập đường ống phụ thược vào từng nhiệm vụ cần xử lý.

Thiết lập cho đường ống tĩnh luôn sử dụng duy nhất bảng

dự phòng cố định. Đường ống động có thể cho phép sử

dụng những thiết lập khác nhau để đáp ứng những bảng dự

phòng khác nhau. Những đánh dấu X trong bảng dự phòng

ứng với thời điểm (chu kỳ) mà tầng được sử dụng.

II.2. Cấu trúc và hoạt động của hệ thống đường ống siêu hướng

Trong các bộ xử lý siêu hướng, đơn vị giải mã và đơn

vị thực hiện lệnh được mở rộng để tạo ra m thao tác đường

ống đồng thời. Một số tầng trong đường ống có thể được

chia sẻ bởi các đường ống khác. Trên hình II.3 là cấu trúc đa

đường ống với nguồn tài nguyên chia sẻ. Hai lệnh đồng thời

có thể được đưa tới trong 1 chu kỳ, với điều kiện là không

tranh chấp tài nguyên và không có hiện tượng dữ liệu phụ

thuộc lẫn hau. Mỗi đường ống đều có 4 tầng gồm nhận lệnh,

giải mã, thực hiện và ghi kết quả. Cả hai lệnh đều được lấy

từ ICACHE. Giả thiết rằng mỗi tầng đều chỉ cần một chu kỳ

xung nhịp, ngoại trừ tầng thực hiện có thể cần số lượng

xung nhịp khác nhau. Có 4 đơn vị chức năng trong tầng này

gồm bộ nhân, bộ cộng, bộ logic và bộ nạp và đều có thể sử

dụng trong tầng thực hiện. Bộ nhân có đường ống 3 tầng, bộ

cộng là 2 tầng , còn lại là chỉ có một tầng. Hai đơn vị nhớ S1

Hình II.3. Bộ xử lý siêu hướng 2 đường ống với 4 đơn vị chức

Page 32: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

32

và S2 có thể được sử dụng linh hoạt bởi 2 đường ống, phụ

thuộc vào khả năng của chúng theo các chu kỳ riêng biệt.

Đáng chú ý ở đâu là đơn vị cửa sổ giám sát (lookahed

window) với đơn vị nhận lệnh và giải mã lệnh riêng. Cửa sổ

này rất cần thiết cho việc giám sát thực hiện các lệnh trong

trường hợp chuỗi lệnh xuất hiện, nhằm đảm bảo việc thực

hiện chúng trong các đường ống được hiệu suất hơn. Rất

khó để phân chia đồng thời các đường ống trong hệ thống

đa đường ống, nhất là khi các lệnh cùng được lấy từ cùng

một nguồn. Có thể hiểu rõ hơn khái niệm này qua hình II.4

a, b và c.

Decode Stage

From

ICACHE

Load

Logic Logic

Adder

Multiplier

t1

t2

t3

d1

d2

d3

m1 m2 m3

a1 a2

e2

S1

S2

e1

Execute Stage

Fetch Stage

Write Back Stage

Lookahead Window

Hình II.3. Hệ thống siêu hướng 2 đường ống với 4 đơn vị

chức năng tại các tầng thực thi vá cửa sổ giám sát tạo thứ tự

xuất kết quả

Page 33: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 33

Cycle 7 Cycle 6 Cycle 5 Cycle 4 Cycle 3 Cycle 2 Cycle 1 Cycle 8

Reg file

Reg file ALU

Reg file

Reg file ALU

Reg file

Reg file ALU

Reg file

Reg file ALU

Reg file

Reg file ALU

Cycle 9

Instr cache

Instr cache

Instr cache

Instr cache

Instr cache

Data cache

Data cache

Data cache

Data cache

Data cache

Time dimension

Task dimension

In

str

1

In

str

2

In

str

3

In

str

4

In

str

5

Page 34: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

34

1 2 3 4 5 6 7 8 9

Pipe1, I1 f1 d1 e2 s1

Pipe2, I2 f2 d2 a1 a2 s2

Instru

ction

s

I3 f1 d1 a1 a2 s1

I4 f2 d2 m1 m2 m3 s2

I5 f1 d1 e1 s1

I6 f2 d2 m1 m2 m3 s2

4 5 6 7 8 9

Pipe 1 I1 I5 I3

Pipe2 I2 I4 I6

1 2 3 4 5 6 7 8 9

Pipe1, I1 f1 d1 e2 s1

Pipe2, I2 f2 d2 a1 a2 s2

I3 f1 d1 a1 a2 s1

I4 f2 d2 m1 m2 m3 s2

I5 f1 d1 e1 s1

I6 f2 d2 m1 m2 m3 s2

Time (Clock Cycle)

Hình II.4a. Biểu đồ thời gian trong trường hợp lệnh xuất theo thứ

tự và được thực hiện hoàn thành theo thứ tự trong 9 chu kỳ

Hình II.4b. Biểu đồ thời gian trong trường hợp lệnh xuất hiện

theo thứ tự và được thực hiện hoàn thành không theo thứ tự trong 9

chu kỳ

và thứ tự hoàn thiện thực thi lệnh

Page 35: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 35

1 2 3 4 5 6 7

Pipe1, I3 f1 d1 a1 a2 s1

Pipe2, I4 f2 d2 m1 m2 m3 s2

I5 f3 d3 e1 s2 (Pipe1)

Pipe1 I6 f1 d1 m1 m2 m3 s2

Pipe2 I1 f2 d2 e2 s2

Pipe2 I2 f1 d1 a1 a2 s1

Thứ tự xuất

hiện lệnh I3 I6 Pipe1 I5 I3 I2 Pipe1

I4 I1 I2 Pipe2 I1 I4 I6 Pipe2

I5 Lookahead Thứ tự hoàn thành thực hiện lệnh

Gọi k là thời gian cần thiết để thực hiện m lệnh đồng

thời đầu tiên trong m đường ống, N là số lệnh, ta có:

Thời gian hực hiện trên máy scalar cơ bản (1 đường

ống) là:

T(1,1) = k + N-1 (chu kỳ cơ bản)

Với trường hợp m đường ống ta có

m

mNkmT

)1,(

1

Lookahead Window

2 3 4 5 6 7

Hình II.4c. Biểu đồ thời gian trong trường hợp lệnh xuất hiện không theo

thứ tự và được thực hiện hoàn thành không theo thứ tự trong 7 chu kỳ và

thứ tự hoàn thiện thực thi lệnh khi sử dụng cửa sổ giám sát

Page 36: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

36

Tăng tốc lý tưởng của máy siêu hướng sẽ là

)1(

)1(

1

1

)1,(

)1,1()1,(

kmN

kNm

km

N

kN

mT

TmS

Thấy rằng nếu N→∞, giới hạn tăng tốc S(m,1) →m.

Với hệ thống siêu đường ống bậc n với k tầng, thời gian

tối tiểu để thực hiện N lệnh trên đường ống là:

)1(1

),1( Nn

knT (chu kỳ cơ bản)

Và khả năng tăng tốc của máy siêu đường ống sẽ là

1

)1(

1

1

),1(

)1,1(),1(

Nnk

Nkn

n

Nk

Nk

nT

TnS

Và với N→∞ thì S(1,n) →n.

F: Fetch D: Decode E: Execution WB: Write Back

Hình II.5a và II.5b. mô tả việc thực hiện các lệnh trong

hệ thống siêu đường ống bậc n = 3 và hệ thống hỗn hợp siêu

đường ống-siêu hướng bậc (m,n) =(3,3).

Hình II.5a. Thực

hiện đường ống

bậc n = 3

W

Xung nhịp

Page 37: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 37

Dễ dàng thấy rằng hệ thống siêu đường ống-siêu hướng

thực hiện m lệnh trong 1 chu kỳ cơ bản, và với tổ chức siêu

hướng, tốc độ được tăng lên đáng kể. Tổ chức của máy DEC

Alpha có m = 2 và n = 4 cho các thao tác số nguyên, số dấu

phẩy động, ghi/đọc và rẽ nhánh.

Với hệ thống siêu đường ống-siêu hướng bậc (m,n) với

k tầng, thời gian tối tiểu để thực hiện N lệnh là:

)(1

),( mNmn

knmT (chu kỳ cơ bản)

Và khả năng tăng tốc của máy siêu đường ống-siêu

hướng sẽ làmNmnk

Nkmn

mn

mNk

Nk

nmT

TnS

)1(1

),(

)1,1(),1(

Và với N→∞ thì S(m,n) →mn.

II.3. Hệ thống BUS và bộ nhớ

Các bộ Vi xử lý, bộ nhớ và các thiết bị ngoại vi được

kết nối cứng nhờ một hệ thống BUS. Yêu cầu khe khắt đối

với BUS hệ thống là đảm bảo truyền thông giữa các thành

phần trong hệ thống không bị nhiễu và tín hiệu không bị suy

giảm. Phương thức định thời phải phù hợp với mọi yêu cầu

W

Hình II.5b.

Thực hiện lệnh trong

hệ thống siêu đường

ống-siêu hướng với m

= n = 3

Xung nhịp

Page 38: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

38

trao đổi thông tin. Nguyên tắc hoạt động phải đảm bảo việc

chuyển giao thông tin dữ liệu đúng yêu cầu trên BUS.

Các đường dây dẫn tín hiệu trên bo mạch thường được

gộp thành các kênh truyền dẫn theo chức năng.

Slot k Slot k-1

Điều khiển BUS Memory Board CPU Board

BUS các tín hiệu ngắt và tín hiệu đồng bộ

DTB Arbitration BUS (Phân xử sử dụng BUS)

Data Transfer BUS (DTB) Dữ liệu, Địa chỉ và các tín hiệu điều khiển

Processor

và cache

Các mô

đun chức

năng

Logic

giao diện

Mảng các

bộ nhớ

Các mô

đun chức

năng

Logic

giao diện

Tạo xung

nhịp, tạo

chuỗi t/h

điều

khiển,

nguồn

nuôi …

Logic

giao diện

Các mô

đun xử

lý, các

mô đun

nhớ và

thiết bị

Vào/Ra

khác

BUS các tiện ích khác

Hệ thống các đường dây truyền dẫn các tín hiệu trên bo mạch

Slot 1

Hình II.6. Mô hình máy tính đa xử lý

Page 39: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 39

Data Transfer BUS (DTB) được tạo bởi các đường

dây truyền dẫn dữ liệu, địa chỉ và các tín hiệu điều khiển.

Các đường dây địa chỉ truyền dẫn tín hiệu đại diện cho địa

chỉ của dữ liệu và các thiết bị và số lượng đường dây tỷ lệ

thuận với không gian địa chỉ. Số lượng đường dây tín hiệu

dữ liệu tỷ lệ thuận với độ dài từ nhớ.

BUS arbitration and control (Điều khiển và trọng tài

BUS): Quá trình gán điều khiển DTB cho các yêu cầu sử

dụng BUS được gọi là trọng tài BUS. Một số đường dây

được giành cho quá trình phân xử BUS cùng với một số yêu

cầu sử dụng BUS. Bên yêu cầu sử dụng được gọi là chủ

(master), đầu nhận cuối được gọi là tớ (slave).

Các đường dây yêu cầu ngắt dùng để thu hận các ngắt

và thông thường được gán các mức ưu tiên.

Các mô đun chức năng bao gồm các mạch điện tử

được lắp ráp trên các vỉ chức năng. Một số mô đun cụ thể

là:

Trọng tài (Arbiter) là mô đun nhận các yêu cầu sử

dụng BUS, phân xử và gán điều khiển DTB cho mô

đun có yêu cầu.

Định thời BUS (BUS timer) xác định thời gian cần

thiết cho một thao tác truyền thông tin trên DTB và

kết thúc chu kỳ DTB nếu thao tác đó kéo dài quá

mức thời gian cho phép.

Mô đun ngắt (Interrupter Modul) nhận các yêu cầu

ngắt và cung cấp thông tin về trạng thái/số hiệu ngắt

khi interrupt handler cần.

Giám sát định vị (Location Monitor) là mô đun chức

năng giám sát việc truyền dữ liệu trên DTB. Giám

Page 40: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

40

sát nguồn (Power Monitor) theo dõi trạng thái ổn

định của nguồn và các tín hiệu.

Khối cấp xung nhịp hệ thống (System Clock Driver)

là mô đun cấp tín hiệu xung nhịp định thời.

Logic giao tiếp trên bo mạch (Board Interface

Logic) là thành phần chức năng phối ghép công

nghệ, phối ghép logic giữa bo mạch với các vỉ chức

năng.

Master Slave

Th

ời g

ian

1. Gửi yêu cầu sử dụng BUS

2. BUS được định vị

3. Đưa địa chỉ/dữ liệu lên BUS

4. Chọn Slave khi các tín hiệu đã ổn định

5. Truyền các tín hiệu dữ liệu

6. Nhận dữ liệu đã ổn định

7. Thông báo đã nhận dữ liệu

8. Nhận thông báo đã nhận dữ

liệu, rút dữ liệu khỏi BUS

9. Ghi nhận dữ liệu đã rút ra khỏi BUS

10. Gửi tín hiệu hoàn thành chuyển dữ liệu và ưu

tiên BUS

11. Gửi yêu cầu sử dụng BUS

mới

Có 2 giao thức định thời cho thao tác chuyển giao dữ

liệu giữa chủ và tớ, định thời đồng bộ và định thời dị bộ.

BUS

Hình II.7. Định thời cơ bản cho thao tác truyền thông

tin trên BUS giữa Chủ (Master) và Tớ (Slave)

Page 41: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 41

Hình II.7. chỉ ra chuỗi định thời cơ bản khi thông tin được

truyền từ nguồn tới đích trên BUS.

Có hai hình thức trọng tài chia sẻ BUS, trọng tài trung

tâm và trọng tài phân tán. Trọng tài trung tâm sử dụng

phương pháp liên kết các chủ theo tầng (daisy-chained).

Mỗi chủ có quyền đưa ra yêu cầu sử dụng BUS, mọi yêu

cầu được chia sẻ nhờ một đường dây yêu cầu BUS, tín hiệu

đường dây này kích hoạt mức cấp BUS và mức trạng thái

BUS bận (Hình II.9). Mức ưu tiên đồng đều trong liên kết

này theo thứ tự từ trái sang phải. Chỉ khi nào chủ bên trái

không yêu cầu thì chủ bên phải mới được cấp BUS.

DL

sẵn sàng

Nhận DL

Dây dữ

liệu

NhậnDL

DL

sẵn sàng

Dâydữ

liệu

Chủ

Chu kỳ 1 Chu kỳ 2 Chu kỳ 3

Dữ liệu Dữ liệu Dữ liệu

Tớ

Hình II.8. Định thời đồng bộ xung nhịp cố định

Chủ

Chu kỳ 1 Chu kỳ 2 Chu kỳ 3

Dữ liệu Dữ liệu Dữ liệu

Tớ

Hình II.8. Định thời dị bộ

Page 42: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

42

Ở phương thức sử dụng trọng tài phân tán, không sử

dụng liên kết các chủ theo tầng, các trung tâm được gán

mức ưu tiên. Mỗi đơn vị chủ được gán thêm một trọng tài

BUS có cùng số hiệu với chủ. Số hiệu này được sử dụng

cho việc phân xử quyền được giao BUS, chủ có số hiệu lớn

hơn sẽ được giao BUS khi có 2 yêu cầu đồng thời xuất hiện.

Các mode truyền thông tin bao gồm 3 thể loại: Chỉ

truyền địa chỉ (Address-only transfer) chỉ truyền địa chỉ mà

không có dữ liệu đi theo. Truyền dữ liệu đi kèm (Compelled

data transfer) bao gồm truyền địa chỉ sau đó là khối hoặc

nhiều dữ liệu được truyền kèm theo đến các địa chỉ liên tiếp

nhau. Truyền gói dữ liệu (packet data transfer) là truyền địa

chỉ và một khối dữ liệu với độ dài cố định từ tập các địa chỉ

liên tiếp nhau.

BUS busy

Hình II.9. Trọng tài BUS theo kênh Daisy trung tâm với phương

thức chia sẻ yêu cầu với mức ưu tiên đồng đều

Yêu cầu BUS

Cấp BUS

BUS bận BUS

busy

BUS

Grant

BUS

Request

BUS

Grant

BUS Request

Data Transfer BUS

Trọng tài

BUS trung

tâm

Master 1 Master 2 Master n

Page 43: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 43

Truyền dữ liệu và quản lý ngắt là hai lớp chức năng

được thực hiện trên BUS. Các sự kiện xẩy ra trên BUS bao

gồm yêu cầu (request) và tiếp theo là đáp ứng (response).

Các thao tác kết nối là gửi yêu cầu của chủ và tiếp nhận đáp

ứng trên BUS. Các thao tác phân phối sẽ chia các yêu cầu

và đáp ứng cho từng BUS riêng.

Hình II.10a. Mô hình với các yêu cầu độc lập và trọng tài BUS

trung tâm

Data Transfer BUS DTB

BUS Busy

BG2

BGN

BRN

BR2

BR1

Trọng tài

BUS

trung tâm

Master 1 Master 2 Master N

BG1

BRi : Yêu cầu sử dụng BUS từ chủ thứ i, BGi : Cấp BUS cho chủ thứ i

BB BB BB

Hình II.10b.Mô hình sử dụng các trọng tài BUS phân tán

BB: Cấp BUS BB: BUS bận AN: Số hiệu trọng tài

N N N

AN AN AN BG BG BG

Master 1 Master 2 Master N

Arbiter 1 Arbiter 2 Arbiter N

Data Transfer BUS DTB

Page 44: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

44

Cơ chế ngắt (Interrupt Mechanism). Ngắt là yêu cầu

từ các thiết bị Vào/Ra đối với bộ xử lý. BUS ngắt ưu tiên là

nơi tiếp nhận các yêu cầu ngắt. Thiết bị có yêu cầu ngắt phải

cung cấp trạng thái và các thông tin nhận dạng. Các mô đun

chức năng có thể được sử dụng thực hiện các công việc

phục vụ ngắt. Ngắt được quản lý theo các mức ưu tiên. Ngắt

cũng có thể được quản lý theo chuyển thông điệp sử dụng

BUS dữ liệu trên cơ sở chia sẻ theo thời gian. Cách sử dụng

BUS dữ liệu chia sẻ theo thời gian để quản lý và thực hiện

yêu cầu ngắt được gọi là ngắt ảo (virtual interrupt). Việc sử

dụng các đường dây riêng cho các yêu cầu ngắt trên BUS

được mở rộng nhờ các chu kỳ quản lý ngắt theo thông điệp.

II.4. Tổ chức bộ nhớ cache

Bộ nhớ cache được tổ chức theo 3 phương pháp sau:

Cache với địa chỉ vật lý (Physical Address

cache)

Cache với địa chỉ ảo (Virtual Address Cache)

Tổ chức cache liên kết bổ sung đầy đủ, liên

kết theo tập (set-associative), và ánh xạ nhớ

(mapping).

II.4.1. Các phương thức đánh địa chỉ cache

Nhiều hệ thống đa xử lý sử dụng cache riêng liên kết

trực tiếp với bộ Vi xử lý (Hình II.11). Cache được đánh địa

chỉ sử dụng địa chỉ vật lý hoặc địa chỉ ảo.

Main

Memory

Processors

Cache

P P P

C C C

Interconnection (BUS, crosbar, MIN)

Page 45: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 45

a) Cache địa chỉ vật lý (Physical Address Cache)

Khi cache được truy xuất bằng địa chỉ vật lý thì cache

được gọi là cache địa chỉ vật lý.

Hình II.11a là mô hình cache đơn được sử dụng trong

máy tính VAX 8600 và Intel i486. Cache được liên kết với

CPU bằng địa chỉ vật lý.

Hình II. 11. Phân cấp bộ nhớ trong hệ thống đa xử lý với bộ nhớ chia sẻ

VA VA: Địa chỉ ảo

PA: Địa chỉ vật lý

I : Lệnh

D: Dữ liệu II.11.a) Cache đơn truy xuất bằng địa chỉ vật lý

PA

D or I

D or I

CPU

MMU

Cache

Main

Memory

PA

D or I

PA D D

MMU Cache dữ

liệu mức 1

Cache dữ

liệu mức 2

Bộ nhớ chính

PA PA

Page 46: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

46

Truy xuất Cache được thực hiện sau khi địa chỉ được

chuyển từ TLB hoặc từ MMU. Địa chỉ vật lý tạo bởi MMU

có thể được lưu trong các thẻ nhằm phục vụ cho việc nạp lại

nhưng không được sử dụng trong các thao tác tìm kiếm.

Cache hit xuất hiện khi dữ liệu hoặc địa chỉ được tìm thấy

trong cache, nếu không, gọi là cache miss. Khi không tìm

thấy cache được nạp lại thông tin (dữ liệu hoặc lệnh) từ bộ

nhớ chính. Vì việc nạp thông tin vào cache theo từng khối,

dữ liệu không mong muốn cũng có thể được nạp vào. Sự

định vị theo tham chiếu sẽ giúp tìm được các dữ liệu cần

thiết cho các lệnh tiếp theo.

Dữ liệu được ghi trực tiếp vào bộ nhớ chính thông qua

phương thức ghi xuyên cache (Write-throught - WT) hoặc bị

trễ cho đến khikhối thông tin được thay thế nhớ sử dụng ghi

lại cache (Write-back – WB). Ghi xuyên cache đòi hỏi nhiều

chu kỳ truy xuất bộ nhớ chính hơn, trong khi ghi lại cache

có thể thực hiện mà không cần sự chờ đợi chu kỳ bộ nhớ.

Ưu điểm chính của phương thức này là không cần đến

việc tạo cache đồng nhất, không có sự trùng lặp và ít lỗi

cache trong hệ điều hành.

PA D

I or D I or D

PA

VA

CPU

MMU

Cache

Bộ

nhớ

chính

VA: Địa chỉ ảo

PA: Địa chỉ vật lý

I : Lệnh

D: Dữ liệu

I or D: Lệnh hoặc

Dữ liệu

32 64 I-cache

Cache đơn truy xuất bằng địa chỉ ảo

Hình II.11. Mô hình cache truy xuất bằng địa chỉ vật lý

VA

I I

CPU Cache lệnh

P

A

II.11.b) Cache gộp truy xuất bằng địa chỉ vật lý

Page 47: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 47

b) Cache địa chỉ ảo (Virtual Address Cache)

Khi bộ nhớ cache được đánh chỉ số hay được truy xuất

bằng địa chỉ ảo, ta gọi đó là cache địa chỉ ảo.

Trong mô hình này thì sự chuyển giao thông tin của

cache và MMU được thực hiện song song.

Địa chỉ vật lý tạo bởi MMU có thể được lưu giữ để sử

dụng cho việc ghi lại (write-back) nhưng không được sử

dụng cho tìm kiếm. Cache địa chỉ ảo cho phép truy xuất

nhanh hơn nhờ sự chồng gối với MMU.

Về các vấn đề trùng lặp (Aliasing Problem) Vấn đề

chính luôn đi cùng địa chỉ ảo là sự trùng lặp, khi dữ liệu có

địa chỉ logic khác nhau lại có cùng số hiệu và đích trong

cache. Vấn đề trùng lặp này có thể dẫn đến hai hay nhiều

quá trình cùng truy xuất vào một vị trí vật lý trong cache.

Cách xử lý sự trùng lặp này là giải phóng (flush) thông tin

trong cache khi xuất hiện sự trùng lặp.

Page 48: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

48

Việc giải phóng cache nhiều làm giảm hiệu quả của

cache và tỷ lệ cache hit thấp và thường được thực hiện theo

trang, theo đoạn hay theo mức ngữ cảnh.

II.4.2. Cache liên hợp và cache ánh xạ trực tiếp

Việc chuyển thông tin từ bộ nhớ chính sang bộ nhớ

cache được thực hiện theo các khối đơn vị cache hoặc theo

kênh cache. Tính hiệu quả phụ thuộc vào phương thức truy

xuất cache, tổ chức bộ nhớ cache và chiến lược quản lý

cache.

Các khối trong cache được gọi là khung khối (block

frames) để phân biệt với các khối (block) trong bộ nhớ

chính. Các khung khối được ký hiệu là với i = 0,1,2,

…,m, còn các khối được ký hiệu là Bj với j = 0, 1, 2, …,n.

Có nhiều cách ánh xạ (mapping) từ tập Bj sang tập

Giả sử rằng n >> m, n = 2s và m = 2r, mỗi khối hay

khung khối có b từ, b = 2w, như vậy cache có m.b = 2r+w từ.

Bộ nhớ chính có n.b = 2s+w từ và được quản lý nhờ s + w bit

địa chỉ. Khi khung khối được chia thành v = 2t tập, sẽ có k =

m/v = 2r-t khối trong mỗi tập.

Cache ánh xạ trực tiếp: Tổ chức cache theo

phương thức này dựa trên việc ánh xạ trực tiếp 2s-r khối nhớ,

phân tách bằng cùng một khoảng cách như nhau vào một

khung khối trong cache. Việc chuyển khối vào cache sử

dụng chức năng dư của giá trị chia cho m (modulo-m): Khối

Bj được truyền vào khung khối :

Bj → nếu i = j (modulo m).

Bi

Bi

Bi

Bi

Page 49: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 49

Như vậy, mỗi khung khối có thể được nạp từ một

khối Bj. Ánh xạ trực tiếp rất cứng nhắc nhưng bù lại tổ chức

cache là đơn giản nhất.

Địa chỉ ô nhớ bao gồm 3 trường: các bit thấp w xác

định offset của từ nhớ trong mỗi khối. Các bit cao của thẻ

cache s xác định địa chỉ của khối trong bộ nhớ chính khi các

bít trái nhất (s-r) xác định thẻ phù hợp. Trường khối r bít

được dùng để xác định vị trí khối sau mỗi m byte (modulo-

m) với m = 2r. Khi khối được xác định duy nhất với

trường này, thẻ liên kết và địa chỉ khối tương ứng trong bộ

nhớ chính được so sánh. Cache hit là khi 2 thẻ trùng hợp,

nếu không thì xẩy ra cache miss. Ở trường hợp cache hit thì

ofset của từ nhớ được dùng để nhận dạng từ dữ liệu trong

khối được chỉ đến. Khi xẩy ra cache miss thì nội dung chỉ

bởi các bit địa chỉ (s+w) được dùng để truy xuất vào bộ nhớ

Bi

Bi

Hình II.13. Tìm kiếm liên hợp đến tất cả mọi khối đich

Cache hit

Cache mis Khung khối

w

s+w

s-r

r

Địa chỉ ô nhớ

So sánh

s-r w

Tag Block Word

Tag Cache

Data

Data

Data

Data

Data

Data

Data

Data

B0

Bj

Khối

Bộ nhớ chính

s

W0

W1

W2

W3

W4j

W(4j+1)

W(4j+2)

W(4j+3)

w

B0

Bj

Page 50: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

50

chính. Các bit s xác định vị trí (địa chỉ đầu) của khối, còn

các bit w xác định vị trí từ nhớ trong khối.

Hình II.14 là một ví dụ minh hoạ phương pháp tổ chức

bộ nhớ cache theo ánh xạ trực tiếp với n = 16 được ánh xạ

vào m = 4 khung khối trong đó 4 khối nhớ nguồn (từ bộ nhớ

chính) được nạp vào 4 khung khối cache. Hệ thống máy tính

IBM System/370 Model 158 và VAX/8800 sử dụng phương

pháp tổ chức quản lý bộ nhớ cache theo phương thức này.

Một ví dụ: Cache 64kB, cần m = 211 = 2048 khung

khối và r = 11 bít. Giả thiết bộ nhớ chính có dung lượng

32MB, n = 220 khối và thẻ cache cần s = 20 bít và số bit địa

chỉ cần để quản lý theo từ nhớ là s + w = 23 bit, để quản lý

theo byte là 25 bit địa chỉ. Với cách tổ chức theo ánh xạ trực

tiếp, sẽ có 2s-r = 29 = 512 khối nhớ có thể “ánh xạ” vào một

khung khối.

Tag 4 bit Cache

Bộ nhớ chính

B0 B1 B2 B3 B4 B5 B6 B7 B8 B9

B10 B11 B12 B13 B14 B15

B0

B1

B2

B3

Hình II.14. Khối Bj được ánh xạ vào khung khối Bi nếu j = i (modulo 4)

Page 51: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 51

Ưu điểm chính của phương pháp này là phần cứng rất

đơn giản và không cần thêm các phụ kiện và cũng không

cần thuật thay thế trang, giá thành sẽ rẻ hơn và tốc độ truy

xuất nhanh hơn. Tất nhiên, sự cứng nhắc trong tổ chức cũng

sẽ dẫn đến tỷ lệ cache hit thấp hơn.

Cache liên kết đầy đủ (Fully Associative

Cache)

Khác với cache ánh xạ trực tiếp, tổ chức cache theo

phương thức liên kết đầy đủ mềm dẻo hơn. Mỗi một khối

trong bộ nhớ chính có thể được nạp vào một khung khối bất

kỳ trong cache. Nhờ tính mềm dẻo, cần có một thẻ có độ dài

s bít cho mỗi khối cache. Với s > r, độ dài thẻ tăng đáng kể.

a)Tìm kiếm

liên kết

trên tất cả

các khối

đích

s

s

w

s

Memory Address

Tag Word

Khối

Bộ nhớ chính

W0

W1

W2

W3

W4j

W(4j+1)

W(4j+2)

W(4j+3)

Tag Cache

Data

Data

Data

Data

Data

Data

Data

Data

B0

Bj

Data

Data

Data

Data

Bm

So sánh Cache hit

Cache miss Khung khối

s+w

s

w

Page 52: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

52

Cách gọi cache liên kết đầy đủ xuất phát từ việc tìm

kiếm đường liên kết m bất kỳ trên thẻ được so sánh với tất

cả các thẻ khối trong cache. (Xem hình II.14a). Cách tổ

chức này tạo nên sự mềm dẻo trong chiến lược thay thế các

khối nhằm tạo tỷ lệ cache hit cao hơn.

Hình II.14b cho thấy một ví dụ ánh xạ 4 đường theo

phương thức tìm kiếm liên kết đầy đủ. Thẻ cache có 4 bit

tạo khả năng một trong 16 khối có thể nạp vào một khung

khối.

Cache liên kết theo tệp và cache vùng (Set-

Associative and Sector Cache)

Tổ chức cache theo tệp rất thông dụng và được sử dụng

trong máy tính thương mại. Cache ánh xạ theo vùng thường

được sử dụng cùng cache liên kết theo tệp.

Tag 4 bit Cache

Bộ nhớ chính

B0 B1 B2 B3 B4 B5 B6 B7 B8 B9

B10 B11 B12 B13 B14 B15

B0

B1

B2

B3

Hình II.14 b) Mỗi khối có thể được “ánh xạ” đến bất kỳ khung

khối nào

Page 53: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 53

+) Cache liên kết theo tệp (Set-associative cache) là

cách tổ chức thoả hiệp giữa ánh xạ trực tiếp và liên kết đầy

đủ. Tổ chức theo phương thức này làm giảm giá thành đáng

kể.

Trong cache liên kết thứ k có m khung khối cache được

chia thành v = m/k tệp, với k khung khối trong mỗi tệp. Mỗi

tệp được nhận dạng nhờ số hiệu tệp gồm d bít, 2d = v. Thẻ

khối cache bây giờ chỉ cần s – d bít. Trong thực tế, độ lớn

của tệp k hay còn gọi là tính liên hợp thường được chọn

bằng 2, 4, 8, 16 hoặc 64 phụ thuộc vào độ lớn của khối w,

độ lớn dung lượng cache m và giá thành sản phẩm hoàn

thiện. Ánh xạ liên kết đầy đủ có thể xem như trường hợp

với v = 1, hoặc là trường hợp tính liên hợp với dung lượng

cache là m. Khi tìm kiểm trong trường hợp liên kết đường k,

thẻ cache được so sánh với với k thẻ trong tệp (Hình II. 15).

Có thể hiểu phương thức tổ chức này trên Hình II.15b

là ví dụ ánh xạ với n = 16 khối nhớ từ bộ nhớ chính vào

cache liên kết 2 đường (k = 2) và số tệp là v = 4 qua m = 8

khung khối.

cache

s+w

w

w d

s-d

Thẻ cache Địa chỉ từ nhớ

Tag Set Word B0

B1

B(k-1)

B(ik)

B(ik+1)

B(ik+k-1)

B0 B1 B2 B3

B(ik+1)

So sánh

Bộ nhớ chính

set 0

set i

Cache hit

Cache miss

Hình II.15. a) Tìm liên kết đường thứ k trong các tệp có k khối cache

Page 54: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

54

Với hệ thống i860 của Intel (Hình II.12b) D-cache và I-

cache là liên kết 2 đường (k = 2) với 128 tệp trong D-cache,

64 tệp trong I-cache với 256 và 128 khung khối.

+) Cache ánh xạ theo vùng (Sector mapping cache)

được tổng hợp từ những phương thức trên. Ý tưởng chủ yếu

là phân vùng cache và bộ nhớ chính thành từng phân vùng

cố định (sectors), sau đó sử dụng phương thức liên kết đầy

đủ. Nghĩa là mỗi phân vùng (sector) có thể được nạp vào bất

kỳ một khung phân vùng (sector frame) nào có thể.

Yêu cầu truy xuất bộ nhớ được đưa đến các khối, chứ

không được chuyển đến các vùng. Có thể lọc ra yêu cầu này

bằng cách so sánh thẻ vùng trong địa chỉ ô nhớ với tất cả

các thẻ vùng sử dụng cách tìm kiếm liên kết đầy đủ. Khi

khung vùng phù hợp, (cache hit) vùng khối được sử dụng để

định vị khối được yêu cầu trong khung vùng.

Bộ nhớ chính

B0

B1

B2

B3

B4

B5

B6

B7

B0

B1

B2

B3

B4

B5

B6

B7

B8

B9

B10

B11

B12

B13

B14

B15

set 0

set 1

set 2

set 3

Thẻ 2 bít cache

Hình II.15.b) Ánh xạ khối cache vào liên kết 2 đường và 4 tệp

Bộ nhớ chính

Địa chỉ ô nhớ

Sector Block Word

(3 bít) (2 bít) (4 bít) B0

B1

B2

B3

Vùng

0

Page 55: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 55

Page 56: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

56

Khi xẩy ra cache miss, chỉ khối bị lỗi được lấy từ bộ

nhớ chính và đặt vào khung khối thích hợp trong khung

vùng. Có nghĩa là khối thứ i trong vùng phải được đặt đúng

vào khung khối thứ i trong khung vùng đích. Bít xác nhận

hợp lệ (valid bít) được gắn với mỗi khối khung để chỉ ra

khối là hợp lệ hay không hợp lệ. Khi nội dung một khung

khối bị thay thế, tất cả các khung khối còn lại sẽ bị đánh dấu

là không hợp lệ. Chỉ khung khối mới bị thay thế nhất trong

vùng được đánh dấu là hợp lệ cho phép tham chiếu.

Nếu so sánh với hai phép ánh xạ đã trình bày trên đây,

thì phép ánh xạ vùng có ưu điểm ở sự mềm dẻo của thuật

thay thế nội dung các khối và hiệu quả hơn trong việc tìm

kiếm liên kết đầy đủ thông qua một số giới hạn thẻ vùng.

Hình II.16 là một ví dụ về tổ chức cache ánh xạ vùng

với mỗi vùng có 4 khối. Mỗi vùng có thể ánh xạ vào bất kỳ

khung vùng nào với phương thức liên kết đầy đủ ở mức

vùng. Cách tổ chức này được hiện thực hoá trên hệ thống

IBM System/360 Model 85. Tổ chức ở Model 85 có 16

vùng, mỗi vùng có 16 khối, với dung lượng khối là 64

bytes. Như vậy mỗi vùng có 1024 bytes và tổng dung lượng

cache là 16KB.

Hiệu suất sử dụng cache có thể nhìn nhận trên hai

phạm vi liên quan là số chu kỳ (Cycle Count) và tỷ lệ trúng

cache (Hit Ratio). Số chu kỳ được tính dựa vào số các chu

kỳ máy cần cho một truy xuất cache, bổ sung thông tin và

điều khiển liên kết. Tỷ lệ trúng cache xác định tính hiệu quả

của sử dụng cache so với tổng thời gian truy xuất bộ nhớ.

Cần có sự điều chỉnh cân bằng giữa hai phạm vi này. Các hệ

số ảnh hưởng đến tốc độ truy xuất cache và tỷ lệ trúng cache

bao gồm việc mô phỏng theo từng bước thực hiện chương

Page 57: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 57

trình (program trace-driven simulation) và mô hình hoá

phân tích (analytical modeling) quá trình tổ chức và quản lý

bộ nhớ cache. Sự thoả hiệp thông qua kết quả của hai quá

trình này sẽ đưa tới quyết định tổ chức cấu trúc và phương

thức quản lý cache.

II.5. Tổ chức bộ nhớ chia sẻ

Tổ chức bộ nhớ theo phương thức đan xen

(interleaving) tạo ra được giải thông cao hơn cho các hệ

thống truy xuất của đường ống đối với các vị trí liên tiếp

trong bộ nhớ. Phương pháp định vị và phân vùng bộ nhớ

chính cho các chương trình được quan tâm nhất nhằm sử

dụng bộ nhớ một cách tối ưu.

II.5.1. Tổ chức bộ nhớ đan xen (Interleaved Memory Organization)

a) Tổ chức đan xen

Có nhiều cách tổ chức bộ nhớ vật lý. Kỹ thuật đan xen

được sử dụng để làm giảm nhỏ lỗ hổng (bong bóng) trong

tăng tốc truy xuất CPU-cache và bộ nhớ chính. Mục tiêu của

thiết kế bộ nhớ là mở rộng hiệu suất băng thông nhớ sao

cho nhiều từ nhớ có thể truy xuất được trong một đơn vị

thời gian. Mục tiêu cuối cùng chính là phù hợp băng thông

nhớ với băng thông của BUS và băng thông của bộ xử lý.

Giả sử bộ nhớ chính có m = 2a mô đun, mỗi mô đun nhớ

chứa w = 2b từ trong một vị trí nhớ. Tổng dung lượng nhớ

sẽ là m.w = 2a+b từ nhớ. Các từ nhớ này được gán các địa

chỉ tuyến tính. Các phương thức gán địa chỉ tuyến tính khác

nhau sẽ dẫn đến các tổ chức bộ nhớ khác nhau.

Ngoài các truy xuất ngẫu nhiên, bộ nhớ chính còn bị

truy xuất theo khối tại các vùng có địa chỉ liên tiếp nhau.

Page 58: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

58

Việc truy xuất theo khối là cần thiết đối với chuỗi lệnh hay

cấu trúc dữ liệu tuyến tính. Mỗi truy xuất theo khối tương

ứng với độ rộng của khối hoặc một số khối trong cache. Tất

nhiên yêu cầu này dẫn đến việc thiết kế bộ nhớ sao cho

thích hợp với việc truy xuất theo khối.

Hình II.17 a,b chỉ ra hai dạng thức địa chỉ cho đan xen

bộ nhớ. Đan xen bậc thấp (Low-order interleaving) trải

rộng của các vị trí nhớ liên tục trên m mô đun. Hàm ý bậc

thấp tức là a bít thấp của địa chỉ ô nhớ được dùng để xác

định mô đun nhớ, trong khi b bit cao là địa chỉ của từ nhớ

trong từng mô đun. Lưu ý rằng địa chỉ từ nhớ được đưa đến

tất cả các mô đun nhớ đồng thời, còn địa chỉ mô đun nhớ

qua giải mã địa chỉ để xác định mô đun nhớ.

Hình II.17a. m đường đan xen bậc thấp (Low-order)

MDB: Đệm dữ

liệu bộ nhớ

MAB: Đệm địa

chỉ mô đun

Mm-1 M1 M0

Địa chỉ ô nhớ

BUS dữ liệu

Word Mô đun

MA

0

m

m(

MD

MAB

1

m+1

mw-m+1)

MDB

MAB

m-1

2m-1

mw-1

MDB

WA B

MAB

0

m

m(w-1)

MDB

a

b

Giải mã

địa chỉ

Đệm địa chỉ từ nhớ

Giải mã

địa chỉ Mm-1

MA

0

m

MAB

w

w+1

MAB

(m-1)w

mw

MAB

0

1 a

Page 59: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 59

Đan xen bậc cao (High-order interleaving) sử dụng các

bit bậc cao (a bít) làm địa chỉ của mô đun nhớ còn các bít

bậc thấp (b bít) là địa chỉ của từ nhớ. Các vị trí nhớ liên tiếp

được đặt trong từng mô đun. Trong mỗi chu kỳ bộ nhớ, chỉ

một từ nhớ được truy xuất từ mỗi mô đun nhớ. Đây cũng là

nguyên nhân bộ nhớ đan xen bậc cao không thể sử dụng cho

truy xuất theo khối các vị trí nhớ liên tiếp nhau. Chỉ bộ nhớ

đan xen bậc thấp cho phép truy xuất các vị trí nhớ liên tiếp

nhau theo khối trong cơ chế đường ống.

b) Truy xuất bộ nhớ đường ống hoá

Truy xuất m mô đun nhớ có thể thực hiện gối nhau theo

thể thức đường ống hoá. Vì mục đích này, chu kỳ bộ nhớ

(chu kỳ chính) được phân chia thành m chu kỳ thứ cấp.

Hình II.17. Hai cách tổ chức bộ nhớ đan xen với m = 2a và w = 2b từ trong

mỗi mô đun nhớ

Hình II.17b. m đường đan xen bậc cao (High-order)

Page 60: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

60

Một ví dụ về tổ chức bộ nhớ đan xen với m = 8, w = 8,

ứng với a = b = 3 được thể hiện trên Hình II.18a. Gọi θ là

chu kỳ chính và τ là chu kỳ thứ cấp, ta có:

m

trong đó m là bậc đan xen (degree of interleaving).

Định thời của truy xuất đường ống hoá 8 từ nhớ liên tiếp

trong bộ nhớ được thể hiện trên Hình II.18b. Thể thức truy

xuất đồng thời (concurrent access) các từ nhớ liên tiếp nhau

được gọi là biểu đồ C-truy xuất. Chu kỳ chính θ là tổng thời

gian cần thiết để hoàn thành truy xuất một từ trong mô đun.

Chu kỳ thứ cấp τ là thời gian thực tế cần để tạo nên từ, bao

gồm việc truy xuất gối kề các mô đun nhớ kế tiếp nhau và

được phân tách bởi chu kỳ thứ cấp τ.

a)Đan xen bậc thấp 8

đường

1

9

17

25

33

41

49

57

2

10

18

26

34

42

50

58

3

11

19

27

35

43

51

59

4

12

20

28

36

44

52

60

5

13

21

29

37

45

53

61

6

14

22

30

38

46

54

62

7

15

23

31

39

47

55

63

0

8

16

24

32

40

48

56

Thanh ghi địa chỉ ô nhớ

Địa chỉ từ nhớ Địa chỉ mô đun

Thanh ghi dữ liệu ô nhớ

M0 M1 M1 M2 M3 M4 M5 M6 M7

Page 61: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 61

Thấy rằng truy xuất đường ống hoá 8 từ liên tiếp được

thực hiện như trên băng tải giữa truy xuất các khối đường

ống hoá với các khối khác. Trong khi tổng thời gian truy

xuất khối là 2θ, thời gian truy xuất hiệu dụng mỗi từ được

rút xuống chỉ còn là τ, như đối với bộ nhớ truy xuất liên tiếp

trong phương thức đường ống hoá.

II.5.2. Băng thông và dung sai lỗi

Năm 1967 Hellerman đã đưa ra biểu thức khảo sát sự

tăng hiệu quả theo băng thông qua việc tổ chức bộ nhớ đan

xen nhiều đường. Giả sử một mô đun nhớ đơn cho phép truy

xuất một từ trong một chu kỳ bộ nhớ thì băng thông B được

tính bằng 1.

Băng thông B của bộ nhớ đan xen m đường bị

giới hạn trên bởi m và giới hạn dưới bằng 1. Hellerman đưa

ra biểu thức khảo sát B như sau:

mmB 56.0

W0

W1

W2

W3

W4

W5 W6

W7

Thời gian

τ θ 2θ

b)Truy xuất đường ống hoá 8 từ liên tiếp trong bộ nhớ truy

xuất đồng thời (C-access)

Page 62: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

62

trong đó m là số các mô đun nhớ đan xen. Thấy ngay rằng

nếu sử dụng 16 mô đun nhớ theo tổ chức đan xen, băng

thông sẽ gần gấp 4 lần so với bộ nhớ chỉ một mô đun.

Trong máy tính xử lý vector, thời gian truy xuất của

một vector dài n phần tử với khoảng cách giữa chúng bằng 1

được Cragon khảo sát năm 1992 như sau: Giả sử có n phần

tử được lưu giữ liên tiếp trong bộ nhớ đan xem m đường,

thời gian trung bình t1 cần để truy xuất 1 phần tử trong

vector là:

)1

1(1n

m

mt

Khi n→∞, (vector rất dài), t1→θ/m = τ, còn khi n→1

thì t1 = θ, và có thể kết luận, theo quan điểm này, vector

càng dài càng tốt hơn.

Dung sai lỗi : Thấy rằng đan xen bậc cao và đan

xen bậc thấp có thể tổ hợp để tạo ra nhiều cách tổ chức bộ

nhớ đan xen. Các địa chỉ tuần tự sẽ được gán cho bộ nhơ

đan xen bậc cao trong mỗi mô đun nhớ. Nó cho phép dễ

dàng loại trừ lỗi mô đun nhớ trong băng nhớ m mô đun. Khi

xẩy ra lỗi tại một mô đun, lúc đó các mô đun khác có thể

dùng để mở một cửa sổ trong không gian nhớ. Lỗi loại trừ

này không xuất hiện trong tổ chức đan xen bậc thấp, vì lỗi

mô đun có thể gây rối loạn toàn băng nhớ. Chính vì vậy, bộ

nhớ đan xen bậc thấp không thể coi là loại bộ nhớ có dung

sai lỗi.

II.5.3. Sơ đồ định vị bộ nhớ

Ý tưởng bộ nhớ ảo (Virtual Memory) cho phép nhiều

quá trình được thực hiện sử dụng chiến lược chia sẻ theo

Page 63: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 63

thời gian sử dụng bộ nhớ chính, nguồn tài nguyên quý giá

nhưng lại rất hạn chế về dung lượng. Sự phân chia của hệ

điều hành về định vị và hoán vị bộ nhớ chính trong quá trình

thực thi chương trình được gọi là điều hành bộ nhớ

(Memory Manager). Điều hành bộ nhớ thực hiện việc giám

sát phần chung của bộ nhớ và xác định quá trình nào sẽ

được định vị vào, quá trình nào phải trả về ổ đĩa khi dung

lượng bộ nhớ là giới hạn.

Chiến lược định vị (Allocation Policies): Hoán đổi

bộ nhớ là quá trình di chuyển các khối thông tin giữa các

mức của phân cấp bộ nhớ. Để dễ hiểu, ở đây chỉ trình bày

sự hoán vị thông tin giữa bộ nhớ chính và ổ đĩa.

Trước tiên chiến lược hoán đổi có thể thực hiện không

chỉ với vùng nhớ được ưu tiên hay không được ưu tiên.

Trong trường hợp định vị không ưu tiên, khối thông tin đến

chỉ có thể được nạp vào vùng rỗi của bộ nhớ chính. Còn

trường hợp định vị ưu tiên thì khối thông tin mới sẽ thay thế

vị trí tại vùng đang bị chiểm giữ bởi một quá trình. Trong cả

hai trường hợp, điều hành bộ nhớ luôn cố gắng định vị

thông tin vào vùng được ưu tiên.

Khi không gian bộ nhớ chính đã định vị đầy đủ, sơ đồ

không ưu tiên hoán vị một số quá trình đang được định vị

(hoặc trang) để giành chỗ cho các khối sẽ được chuyển đến.

Mặt khác, sơ đồ ưu tiên có sự lựa chọn ưu tiên cho quá trình

đang thực thi. Sơ đồ không ưu tiên tuy dễ dàng thực hiện,

song sự sử dụng bộ nhớ không được hoàn hảo. Sơ đồ ưu

tiên có tính mềm dẻo cao, song nó yêu cầu cơ chế thiết lập

để xác định trang nào hay quá trình nào sẽ phải hoán vị

khỏi, và ngăn ngừa sự thua thiệt do quá thừa vùng hoán vị

giữa các mức bộ nhớ.

Page 64: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

64

Chiến lược định vị có thể là cục bộ hoặc toàn cục.

Chiến lược định vị cục bộ chỉ bao gồm các lớp công việc

của các quá trình không tường minh. Chiến lược định vị

toàn cục cân nhắc quá khứ của lớp các công việc thuộc các

quá trình thường trú để đi đến quyết định hoán vị.

Các hệ thống hoán vị (Swapping Systems) :

Thiết bị hoán vị (swap device) là một phần được định

trước của đĩa đặt trong vùng tạm lưu để sẽ được hoán vị

khỏi bộ nhớ chính. Một phần của vùng nhớ đĩa thiết lập cho

thiết bị hoán vị được gọi là không gian hoán vị (Hình II.19).

Điều hành bộ nhớ định vị không gian đĩa cho tệp

chương trình một khối, nhưng nó lại định không gian cho

thiết bị hoán vị một nhóm các khối liền kề. Để dễ hình

dung, giả thiết các khối là những trang có dung lượng cố

định. Không gian địa chỉ ảo có thể chiếm nhiều trang. Độ

lớn của không gian địa chỉ quá trình bị giới hạn bởi dung

lượng bộ nhớ chính trong hệ thống hoán vị.

a)Di chuyển quá trình (trang) vào vùng hoán vị của đĩa

1023K

400K

(63K)

(16K)

(0)

(1K)

(17K)

2K

800K

801K

(0)

Không

gian

hoán

vị

(4M)

Bộ nhớ chính Bộ nhớ ổ đĩa

Page 65: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 65

Hệ thống hoán vị được sử dụng trong máy tính PDP-11

và các hệ thống UNIX gần đây. Nó được dùng để chuyển

nội dung của quá trình giữa bộ nhớ chính và thiết bị hoán vị,

chứ không chuyển các thành phần (trang) riêng biệt của quá

trình. PDP-11 cho phép quá trình có độ dài lớn nhất là

64KB. Cần nhắc lại rằng, mọi quá trình đều phải được nạp

vào bộ nhớ chính thì mới có thể thực thi được.

Hình II.19 là ví dụ đơn giản mô tả nguyên lý trao đổi

thông tin phục vụ thực hiện quá trình có 5 trang hiện hành

được xác nhận qua địa chỉ bộ nhớ ảo 0, 1K, 16K, 17K và

63K với giả thiết dung lượng trang là 1K từ (tương đương

b)Hoán vị quá trình (trang) vào bộ nhớ

Hình II.19. Nguyên lý hoán vị trong bộ nhớ ảo phân

cấp (dung lượng trang là 1k từ - 4KB)

1

023K 1023K

Bộ nhớ chính Bộ nhớ ổ đĩa

1022K

465K

(0)

(16K)

(63K)

(17K)

(1K)

4K

700K

(0)

Không

gian

hoán

vị

(4M)

b)Hoán vị quá trình (trang) trở lại bộ nhớ chính

Hình II.19. Nguyên lý hoán vị bộ nhớ vào trang bộ nhớ ảo phân

cấp được nhận dạng bởi giả thiết số lượng trang độ lớn là 1K

Page 66: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

66

4Kbyte) Hình II.19a chỉ ra sự định vị trong bộ nhớ vật lý

trước khi hoán vị. Giả thiết bộ nhớ chính có 1024 khung

trang, ổ đĩa có thể điều tiết để có 4M trang. 5 trang thường

trú rời rạc trên bộ nhớ chính được được hoán vị khỏi bộ nhớ

và sắp xếp lại thành các trang liên tiếp trên thiết bị hoán vị.

Sau này, quá trình có thể cần được sắp xếp lại vào bộ

nhớ chính như trong Hình II.19b. Các khung trang khác có

thể được định vị để điều tiết lại sự sắp xếp các trang. Mục

đích của việc ánh xạ các khối liên tiếp vào thiết bị hoán vị là

để tăng tốc hoạt động trao đổi thông tin đa khối so với việc

di chuyển từng khối.

Các hệ thống lập trang theo yêu cầu

(Demand Paging Systems):

Hệ thống bộ nhớ theo trang sử dụng lập trang theo yêu

cầu trong chiến lược định vị. Chiến lược này chỉ cho phép

các trang (không cho phép quá trình) được hoán vị giữa bộ

nhớ chính và thiết bị hoán vị. Trên Hình II.19, các trang của

quá trình được hoán vị độc lập và đó là hệ thống lập trang

theo yêu cầu. Trong hệ thống lập trang theo yêu cầu, toàn bộ

quá trình không được chuyển vào bộ nhớ chính để được

thực thi, chỉ các trang được nạp vào bộ nhớ chính theo yêu

cầu. Ý tưởng lập trang theo yêu cầu tương thích hoàn toàn

với nguyên lý tập hiện hành (working-set). Chỉ các tập hiện

hành của quá trình đang được thực thi là hiện hữu trong bộ

nhớ chính. Back (1996) định nghĩa tập hiện hành của quá

trình là tập các trang tham chiếu bởi quá trình trong n tham

chiếu cuối cùng, và n được gọi là độ rộng cửa sổ (window

size) của tập hiện hành.

Page 67: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 67

Các hệ thống nhớ hỗn hợp (Hybrid Memory

Systems):

Các hệ thống máy tính VAX/VMS và UNIX System V

được lắp đặt hệ thống nhớ hỗn hợp ứng dụng những ưu

điểm của hai phương thức hoán vị và lập trang theo yêu cầu.

Khi một số quá trình đồng thời ở trạng thái sẵn-sàng-chạy

đã-được-hoán-vị (ready-to-run-but-swapped), thiết bị hoán

vị có thể chọn để hoán vị ra một số quá trình để làm rỗng

không gian nhớ cần thiết. Một số hệ thống nhớ ảo có thể sử

dụng phương thức lập trang dự đoán (anticipation

pagging), nghĩa là nhặt trước các trang theo dự đoán. Sơ đồ

làm việc theo phương thức này rất khó thực thi. Cho đến khi

các mẫu tham chiếu bộ nhớ có thể tiên đoán được tại thời

điểm khi bộ dịch tạo địa chỉ, sơ đồ này không phát huy được

thế mạnh. Với các mẫu tham chiếu bộ nhớ ngắn hạn, sẽ dễ

dàng hơn để dự đoán thông qua các đặc trưng cục bộ.

Page 68: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

68

Chương III

Các mô hình máy tính xử lý song song

Chương này khảo sát kiến trúc hệ thống đa xử lý

(MultiProcessors) và kiến trúc hệ thống đa máy tính

(MultiComputers). Các vấn đề được quan tâm ở đây gồm

phương pháp đồng bộ, các mạch chuyển mạch mạng liên

kết, các bộ nhớ đa cổng, mạng nhiều tầng , v. v…

III.1. Liên kết hệ thống đa xử lý

Xử lý song song đòi hỏi việc liên kết hệ thống đảm bảo

truyền thông nhanh chóng giữa các bộ Vi xử lý với bộ nhớ

chia sẻ, với các thiết bị Vào/Ra và với các thiết bị ngoại vi.

BUS phân cấp, các phần tử chuyển mạch và mạng nhiều

tầng luôn được sử dụng co các mục tiêu này.

Hình III.1 là hệ thống đa xử lý tổng quát. Kiến trúc này

tổng hợp các ưu điểm của hệ thống UMA, NUMA và

COMA. Mỗi bộ xử lý Pi được gắn thêm mô đun nhớ cục bộ

và cache riêng. Các bộ xử lý được liên kết với các mô đun

nhớ chia sẻ nhờ mạng kết nối xử lý-bộ nhớ IPMN

(Interprocessor-Memory Network).

Các bộ xử lý chia sẻ nhau các thiết bị Vào/Ra và các

thiết bị ngoại vi khác thông qua mạng kết nối thiết bị

Vào/Ra PION (Processor-I/O Network). Hai mạng liên kết

IPNM và PION là cần thiết cho việc chia sẻ tài nguyên

trong hệ thống đa xử lý. Truyền thông tin trực tiếp giữa các

bộ xử lý với nhau được đảm bảo nhờ mạng liên kết truyền

thông IPCN (Interprocessor-Communication Network) thay

vì phải thông qua bộ nhớ chia sẻ.

Page 69: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 69

Page 70: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

70

Đặc trưng của mạng: Mỗi một mạng được nêu trên có

thể được hiện thực hoá theo nhiều phương pháp. Thông

Ngoại vi bao gồm:

- Các ổ đĩa

- Băng từ

- Máy in

- Thiết bị đầu cuối

Các từ viết tắt: IPMN mạng kết nối các mô đun nhớ với các bộ Vi xử lý

PION Mạng kết nối các bộ Vi xử lý với các thiết bị ngoại vi

IPCN Mạng kết nối các bộ Vi xử lý Pi Bộ Vi xử lý thứ i

Ci Bộ nhớ cache thứ i (của Pi) SM Mô đun nhớ chia sẻ

LM Các mô đun nhớ cục bộ

Hình III.1. Cấu trúc kết nối hệ thống đa xử lý song song tổng

quát với các mô đun nhớ cục bộ, cache riêng, các mô đun

nhớ chia sẻ, thiết bị ngoại vi chia sẻ

Bộ nhớ chia sẻ

Thiết

bị

ngoại

vi

chia

sẻ

SSM2 SS

SMm

IPMN

SM1

IPMN

Cn

Pn LM

Cn

Pn LM

IPCN

PION

Page 71: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 71

thường, chúng được chọn theo tôpô mạng, thep phương thức

định thời, phương pháp chuyển mạch và chiến lược điều

khiển. Định thời, chuyển mạch và điều khiển là ba đặc trưng

chức năng chính của một mạng liên kết. Điều khiển định

thời có thể là đồng bộ hoặc dị bộ. Mạng đồng bộ được điều

khiển bằng xung nhịp toàn cục để đồng bộ hoạt động của

toàn mạng. Mạng không đồng bộ sử dụng cơ chế bắt tay

(Handshaking) hoặc cơ chế liên động (Interlocking

Mechanisms) để điều phối đối với các thành phần có tốc độ

thu phát thông tin nhanh chậm khác nhau trên cùng một

mạng.

Mạng có thể chuyển dữ liệu sử dụng mạch chuyển

(Circuit Swiching) hoặc gói chuyển (Packet switching). Ở

phương thức dùng mạch chuyển, khi một thiết bị được cấp

đường truyền trên mạng, thiết bị chiếm đường truyền trong

một khoảng thời gian nhất định cho việc truyền dữ liệu. Còn

trong phương thức gói chuyển, thông tin được phân thành

từng gói nhỏ và chia nhau đường truyền trên mạng.

Điều khiển mạng được phân thành 2 loại: tập trung

(Centralized) hoặc phân tán (Distributed). Ở phương thức

điều khiển tập trung, bộ điều khiển toàn cục tiếp nhận các

yêu cầu từ tất cả các thành phần gắn kết trên mạng và phân

phối việc truy cập mạng cho một hoặc một số yêu cầu. Còn

ở phương thức điều khiển phân tán các yêu cầu được tiếp

nhận độc lập nhờ các thiết bị cục bộ.

III.1.1. Hệ thống BUS phân cấp

Hệ thống BUS bao gồm hệ phân cấp các BUS kết nối

các hệ thống và các thành phần trong một máy tính. Mỗi

một BUS bao gồm một số các đường dây tín hiệu, đường

Page 72: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

72

dây điều khiển và cấp nguồn nuôi. Các BUS khác nhau thực

hiện các chức năng kết nối khác nhau. Hình III.2 thể hiện

các BUS ở các mức khác nhau, bao gồm BUS cục bộ trên

vỉ, BUS trên bo mạch chủ, BUS Vào/Ra v.v…

BUS cục bộ (Local BUS) thông thường được thực hiện

bằng các đường mạch in trên vỉ chức năng. Trên bo mạch

CPU, BUS cục bộ làm chức năng kết nối truyền thông tin

giữa các phần tử chính (chip) được gắn trên bo. Vỉ nhớ sử

dụng BUS nhớ (Memory BUS) để kết nối bộ nhớ với giao

diện logic. Vỉ Vào/Ra hay vỉ giao diện mạng sử dụng BUS

dữ liệu. Các BUS này bao gồm các đường dây tín hiệu và

đường dây chức năng tiện dụng. Với phương thức chia sẻ

chức năng và tín hiệu trên đường dây, có những đường dây

truyền dẫn các tín hiệu khác nhau theo chia sẻ thời gian.

BUS bo mạch chủ (Backplane BUS) chính là mạch

in có khả năng kết nối thông qua các khối kết nối

(connector) để sử dụng cho việc cắm các vỉ chức năng. BUS

hệ thống, bao gồm các dường dây tín hiệu chia sẻ và các

đường dây đa dụng được thực hiện bằng kết nối mạch in.

BUS hệ thống làm chức năng kết nối tất cả các vỉ chức năng

trong máy tính.

Các BUS này có chuẩn chung và đã được phát triển, sử

dụng nhiều như BUS VME (theo chuẩn IEEE Standard

1014-1987), MultiBus II (IEEE Standard 1296-1987) và

FutureBus+ (IEEE Standard 896.1-1991).

Bo Bo mạch CPU

Ngoại vi cục bộ

(BUS SCSI)

Bo mạch nhớ

CPU IOC Các ô nhớ LM

Page 73: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 73

BUS Vào/Ra (I/O BUS) kết nối các thiết bị Vào/Ra với

hệ thống máy tính.

Page 74: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

74

Có thể kể ra BUS giao diện hệ thống máy tính nhỏ

SCSI (Small Computer Systems Interface). Thông thường là

dây đồng trục (Coaxial), cáp nối ổ đĩa, máy in, v.v… nối

với hệ thống máy tính thông qua các khối điều khiển

Vào/Ra (I/O Controller). Các logic giao diện đặc biệt được

sử dụng để kết nối các thiết bị ngoại vi khác nhau với hệ

thống máy tính.

Một số hệ thống BUS sử dụng trong các hệ thống máy

tính có thể kể ra là NanoBus trong hệ thống đa xử lý Encore

Multimax Multiprocessor với 20 khe cắm, 32 đường dây địa

chỉ, 64 đường dây dữ liệu và BUS vector 14bit, có giải

thông 100Mbytes/sec. BUS hệ thống của máy tính Sequent

Multiprocessor có 64 đường dây dữ liệu. Cũng nên nêu ra ở

đây một ví dụ thực tế: BUS tín hiệu số (Digital BUSes) ở

các máy trạm (Workstation), các máy tính mini, mainframe

và đa xử lý sử dụng hệ thống BUS phân cấp để xây dựng

các hệ thống trung bình với số bộ xử lý nhỏ hơn 100.

Kiến trúc BUS phân cấp và cache được Wilson (1987)

đề xuất với cấu trúc cây nhiều mức mà các nút là các bộ Vi

xử lý (ký hiệu là Pj) liên kết cùng cache riêng (ký hiệu là

C1j).

BUS liên cụm được dùng để trao đổi thông tin giữa các

cụm. Cache mức hai (ký hiệu là C2i) nằm giữa BUS cụm và

BUS liên cụm. Mỗi cache mức hai phải có dung lượng tối

thiểu bằng tổng dung lượng các cache mức một nằm trong

cụm.

BUS liên cụm (Inter-cluster BUS

M1 M2 Mm

C20 C21 C22 Cache

Page 75: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 75

Mỗi cụm làm việc như một hệ thống BUS đơn. Giao

thức thừa kế BUS xen lẫn này có thể sử dụng để thiết lập

tính nhất quán giữa cache mức một với cùng một cụm.

Cache mức hai dùng để mở rộng tính nhất quán từ mỗi cụm

cục bộ đến mức cache cao hơn. Cache mức trên cùng trong

hệ thống bộ nhớ chia sẻ giữa mỗi cụm và bộ nhớ chính được

kết nối qua BUS liên cụm. Sự gắn kết cache liên cụm được

điều khiển giữa cache mức hai và hệ quả khi đi qua cache

mức thấp hơn.

Hình III.4 là kiến trúc đa xử lý Encore’s Ultramax với

BUS phân cấp hai mức, tương tự đề xuất của Wilson, ngoại

trừ Nanobus toàn cục được nối kết với cụm.

Hình III.3. Hệ thống đa xử lý vô hướng với kiến trúc phân cấp

cache/BUS

Nanobus cụm Nanobus cụm

Nanobus toàn cục

SC RS SC RS

PC PC PC PC MM MM

Page 76: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

76

III.1.2. Chuyển mạch ngang dọc và bộ nhớ đa cổng

Mạng chuyển mạch thực hiện kết nối động giữa lối vào

và lối ra. Mạng ngang dọc (Crossbar Network) được dùng

nhiều trong các hệ thống nhỏ và hệ thống trung bình. Mạng

nhiều tầng (Multistage Network) có thể mở rộng cho các hệ

thống lớn nếu giải quyết tốt vấn đề độ trễ (latency) trong

truyền tải thông tin.

Tầng mạng (Network Stage). Phụ thuộc vào các kết

nối sử dụng giữa các tầng, một mạng đơn tầng (single-stage

network) còn được gọi là mạng quay vòng (recirculating

network) vì các dữ liệu quay trong chính một tầng trước khi

tìm được đích đến.

Dual Futurebus+

Đoạn cáp

Bộ VXL Bộ VXL Bộ VXL Bộ VXL Bộ VXL Bộ VXL

Cache Cache Cache Cache Cache Cache

Cache Cache

Bộ nhớ

Cache Cache

Bộ nhớ

Bộ VXL Cầu Cầu Bộ VXL

Page 77: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 77

Dù dễ thực hiện, giá thành rẻ, song có thể cần nhiều

bước để thiết lập được một liên kết xác định. Chuyển mạch

ngang dọc và tổ chức bộ nhớ đa cổng là những mạng đơn

tầng.

Mạng nhiều tầng (Multistage Network) chứa nhiều

hơn một tầng chuyển mạch và cho phép kết nối một đầu vào

bất kỳ tới một đầu ra bất kỳ. Việc lựa chọn sự kết nối giữa

các tầng xác định tính liên kết của mạng. Khuôn mẫu này có

thể giống nhau hoặc khác nhau tại các tầng khác nhau, phụ

thuộc vào lớp mạng được thực hiện. Mạng Omega, mạng

Flip, mạng Baseline là những mạng nhiều tầng.

Hiện tượng nghẽn mạch và mạng không nghẽn

mạch: Mạng nhiều tầng gọi là nghẽn mạch khi sự kết nối

đồng thời nhiều cặp đôi Vào/Ra dẫn tới sự xung đột khi sử

dụng chuyển mạch hoặc liên kết truyền thông. Trong thực

tế, phần lớn các mạng nhiều tầng thường là mạng nghẽn

mạch. Mạng không nghẽn mạch là mạng có thể tạo tất cả

mọi sự kết nối giữa đầu vào với đầu ra bằng cách sắp xếp lại

các liên kết. Trong các mạng này, có thể thiết lập kết nối

giữa một cặp đôi Vào/Ra bất kỳ.

Mạng ngang dọc (Crossbar Network): Ở mạng này,

mỗi cổng vào được nối với một cổng ra nào đó nhờ các

chuyển mạch mà không bị nghẽn. Mạng ngang dọc là mạng

đơn tầng được xây dựng với các chuyển mạch đơn thuần tại

các điểm giao nhau (Hình III.6).

Dữ liệu đọc từ mô đun nhớ được chuyển đến bộ xử lý

có yêu cầu qua các chuyển mạch. Thông thường, các mạng

này cần đến n x m bộ chuyển mạch.

Page 78: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

78

Mỗi bộ xử lý có thể gửi yêu cầu dữ liệu đến bộ nhớ

một cách độc lập và không đồng bộ. Điều này dẫn đến khả

năng xẩy ra là một mô đun nhớ đồng thời nhận được nhiều

yêu cầu cung cấp dữ liệu. Tất nhiên, chỉ có một yêu cầu có

thể được đáp ứng. Hình II.17 là thiết bị chuyển mạch 2 lối

vào 2 lối ra và các khả năng kết nối được điều khiển bởi tín

hiệu điều khiển kết nối.

Với n chuyển mạch tại vị trí giao nhau trên một cột của

mạng lưới m x n điểm giao, chỉ có thể có một chuyển mạch

Hình II.6. Mạng ngang dọc kết nối các bộ xử lý với các mô

đun nhớ. Pi : Bộ xử lý thứ i, Mi : Mô đun nhớ thứ i

P1

P2

P16

M1 M2 M16

m mô đun nhớ chia sẻ

Tín hiệu điều khiển kết nối

Trạng thái ngắt Xuyên suốt Nối chéo

Hình II.7. Chuyển mạch 2 lối vào 2 lối ra và các trạng thái kết nối

Xuyên lên Xuyên xuống

Page 79: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 79

được kết nối. Để có thể tránh xẩy ra tranh chấp đối với mỗi

mô đun nhớ, các thiết bị chuyển mạch phải được thiết kế rất

hoàn thiện nhằm đáp ứng những yêu cầu khe khắt nhất. Tại

mỗi nút giao nhau, cần có một số lượng lớn các đường

truyền tín hiệu cho địa chỉ, cho dữ liệu và cho tín hiệu điều

khiển. Nói cách khác, nút giao nhau phải đảm đang chức

trách của một BUS đơn.

Với n x n nút giao nhau, sẽ cần đến n2 thiết bị chuyển

mạch với rất nhiều đường dây kết nối. Giá thành sản phẩm

sẽ rất đắt khi n lớn. Trong thực tế, các máy tính thương mại

chỉ sử dụng đến n ≤ 16.

Tại mỗi hàng của mạng lưới, nhiều chuyển mạch có thể

kết nối đồng thời. Dữ liệu truyền đồng thời có thể được đặt

Hình III.8. Sơ đồ chuyển mạch tại nút giao nhau

trong mạng ngang dọc

Bộ nhớ

chia sẻ

đun

trộn

kênh

(dạng

cây)

Trọng

tài

phân

xử

Địa chỉ

Dữ liệu

Địa chỉ

Dữ liệu

(n tập)

Yêu cầu

Nhận biết

Yêu cầu

Nhận biết

Yêu cầu

Nhận biết

Tín hiệu

cho phép

n bộ

xử lý

n bộ

xử lý

RD/WR RD/WR

Page 80: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

80

trên lối vào giữa n đôi Bộ xử lý và bộ nhớ. Mô đun dồn

kênh làm nhiệm vụ chọn một từ n yêu cầu đọc hoặc ghi.

Mỗi bộ xử lý gửi yêu cầu độc lập, trọng tài phân xử dựa vào

luật ưu tiên có sẵn để lựa chọn kết nối.

Có thể lấy ví dụ, với 4 bit điều khiển, có thể tạo tín hiệu

điều khiển cho 16 bộ xử lý. Với n tập dữ liệu, địa chỉ và dây

điều khiển Ghi/Đọc đều được nối vào lối vào của bộ dồn

kênh. Trên cơ sở các tín hiệu điều khiển, chỉ một tập được

chọn đưa tới đầu ra.

Tín hiệu địa chỉ ô nhớ được đưa tới trong cả hai trường

hợp đọc hoặc ghi. Nếu là yêu cầu đọc, dữ liệu được nhận từ

bộ nhớ sẽ được chuyển đến bộ xử lý có yêu cầu (Request)

theo hướng từ bộ nhớ đến bộ xử lý thông qua các đường dẫn

được thiết lập qua các chuyển mạch tương ứng. Trong

trường hợp ghi dữ liệu vào ô nhớ, dữ liệu từ bộ xử lý sẽ

thông qua kết nối đó để được lưu vào bộ nhớ.

Tín hiệu nhận biết (Acknowledge) được trọng tài phân

xử dùng để thông báo cho tất cả các bộ xử lý. Các tín hiệu

thiết lập việc truyền dữ liệu được dùng để tránh xung đột.

Lưu ý rằng kênh dữ liệu là hai chiều để phục vụ cho cả hai

thao tác Ghi và Đọc bộ nhớ.

Bộ nhớ đa cổng (Multiport Memory): Việc xây dựng

mạng chuyển mạch cho các hệ thống lớn làm tăng đáng kể

giá thành, nhiều máy tính Mainframe loại đa xử lý sử dụng

tổ chức bộ nhớ đa cổng. Ý tưởng chính là chuyển trọng tài

phân xử và các chức năng chuyển mạch liên quan vào trong

thành phần điều khiển bộ nhớ. Tất nhiên giá thành bộ nhớ

cũng bị tăng do phải tích hợp thêm các mạch logic.

Page 81: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 81

Tổ chức bộ nhớ đa cổng chính là sự thoả hiệp giữa vấn

đề giá thành sản phẩm và tính thực hiện được.

n 2 1 n 2 1 n 2 1

P1 P2 Pn

M1 M2 Mm

n bộ Vi xử lý

m mô đun nhớ chia sẻ

Các mô đun nhớ n cổng

b) Các cổng của bộ nhớ được gán ưu tiên hoặc là dùng riêng

trên mỗi mô đun nhớ bằng số hiệu cổng

Hình III.9. Tổ chức bộ nhớ đa cổng cho các hệ thống đa xử lý

4 3 2

2 1 2 1

2

1 1

4 3

P1 P2

M1 M2 M3 M4

I/O I/O

Page 82: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

82

Tổ chức bộ nhớ đa cổng chính là sự giải quyết thoả

hiệp giữa giá thành thấp, dễ thực hiện của hệ thống BUS với

giá thành cao, băng thông rộng của hệ thống mạng chuyển

mạch. Trên hình III.9b là hệ thống có thêm các Vi xử lý

Vào/Ra chuyên dụng I/O.

Ví dụ thực tế: Hệ thống đa xử lý UNIVAC 1100/94 có

4 bộ xử lý trung tâm, 4 bộ vi xử lý Vào/Ra, 2 bộ xử lý

vector được liên kết với 4 mô đun nhớ chia sẻ, mỗi mô đun

có 10 cổng. Sự truy xuất các cổng được định chế độ ưu tiên

nhờ hệ điều hành. Ở một số hệ thống đa xử lý, một số mô

đun nhớ được giành riêng và chỉ bị truy xuất bởi bộ xử lý sở

hữu nó.

III.1.3. Mạng tổng hợp và mạng nhiều tầng

Mạng nhiều tầng được dùng để xây dựng những hệ

thống máy tính lớn. Các hệ thống máy tính thương mại có

kết cấu theo mạng nhiều tầng là mạng Omega và mạng

Butterfly.

Mạng tổng hợp (Generalized Network) là mạng được

sử dụng trong hệ thống NYU’s UltraComputer. Cấu trúc

tổng quát được thể hiện trên Hình III.10.

Mạng kết nối nhiều tầng MIN (Multistage Intercon-

nection Network):

Mạng được sử dụng trong các hệ thống máy tính

MIMD và SIMD. Mạng tổng hợp nhiều tầng được mô tả tên

Hình III.10. Các mô đun chuyển mạch a x b (a lối vào b lối

ra) làm nhiệm vụ kết nối các tầng. Giữa các mô đun chuyển

mạch và tầng liên hợp là kết nối cố định. Riêng các chuyển

mạch được điều khiển động để tạo các kết nối theo yêu cầu.

Page 83: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 83

Các hệ thống MIN khác nhau ở các mô đun chuyển mạch và

mẫu kết nối tầng ISC (InterStage Connection). Mô đun

chuyển mạch đơn giản nhất là loại 2 x 2 (a = b = 2 ở Hình

II.7.).

0

1

b-1

b

b+1

2b-1

bn-b

bn-1

T

ầng 1

T

ầng 2

T

ầng n

Hình III.10. Cấu trúc tổng quát của mạng kết nối nhiều tầng (MIN) với

các mô đun chuyển mạch a x b và mẫu kết nối ISC1, ISC 2,…, ISC n

0

1

a-1

a

a+1

2a-1

an-a

an-1

Chuyển

mạch

a

Chuyển

mạch

a

Chuyển

mạch

a

Chuyển

mạch

a

Chuyển

mạch

a

Chuyển

mạch

a

ISC1

ISC2

ISCn

Chuyển

mạch

a

Chuyển

mạch

a

Chuyển

mạch

a

0

1 b-1 b

b+1 2b-1

bn-b bn-1

Page 84: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

84

Các mẫu kết nối ISC thường dùng có thể là trộn hoàn

chỉnh (Perfect Shuffle), bay (Butterfly), trộn nhiều đường

S

11

S

21

S

31

S

41

S

12

S

22

S

32

S

42

Một mạng chuyển mạch 3 tầng

P

000

P

001

P

010 P

011

P

100 P

101

P

110 P

111

Hình III.11. Một ví dụ về hệ thống chuyển mạch trong mạng kết nối

3 tầng với mô đun chuyển mạch 2 x 2

Page 85: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 85

(Multiway Shuffle), ngang dọc (Crossbar), kết nối lập thể

(Cube Connection)…

S

11

S

21

S

31

S

41

S

12

S

22

S

32

S

42

Một mạng chuyển mạch 3 tầng, tầng 2 gồm các thành phần chuyển

mạch giao nhau

P

000

P

001

P

010 P

011

P

100 P

101

P

110 P

111

Page 86: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

86

S

11

S

21

S

31

S

41

S

12

S

22

S

32

S

42

Một mạng chuyển mạch 3 tầng, tầng 3 gồm các thành phần chuyển

mạch giao nhau

P

000

P

001

P

010 P

011

P

100 P

101

P

110 P

111

Hình III.12. Vài ví dụ sử dụng các chuyển mạch để tạo các mối liên

kết trong mạng nhiều tầng.

Page 87: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 87

III.2. Một số hệ thống xử lý song song

Theo định nghĩa, các siêu máy tính là những máy tính

hoạt động nhanh nhất. Có thể kể ra họ các máy tính đa

vector (Multivector) và các máy họ SIMD, các máy tính vô

hướng (scalar), máy đa luồng (Multithread), kiến trúc dòng

dữ liệu (Dataflow Architecture), v.v…

III.2.1. Hệ thống đa vector và các máy tính SIMD

a) Nguyên lý xử lý vector

Một vector là một tập của một loại dữ liệu cùng thể

loại được lưu giữ trong bộ nhớ. Thông thường, các phần tử

của vector được sắp xếp để chúng có địa chỉ liên tiếp và

được gọi là một bước (stride). Bộ xử lý vector (vector

processor) là tài nguyên phần cứng, bao gồm thanh ghi

vector, đường ống chức năng, phần tử xử lý, thanh ghi đếm

để thực thi các thao tác xử lý vector. Xử lý vector xuất hiện

khi một thao tác số học hay logic được yêu cầu đối với

vector. Xử lý vô hướng khác xử lý vector ở chỗ nó chỉ thực

thi trên một hoặc một cặp dữ liệu. Việc chuyển đổi từ mã vô

hướng sang mã vector được gọi là vector hoá. Nói chung,

xử lý vector nhanh hơn và thuận tiện hơn xử lý vô hướng.

Các bộ xử lý đường ống và máy tính SIMD có thể thực thi

các thao tác trên vector.

Có 6 dạng lệnh vector như sau:

+ ) Vector-vector: một hoặc hai vector đựoc

nhận từ các thanh ghi vector tương ứng, thông

qua đường ống vào thanh ghi vector khác. Ký

hiệu:

f1 : Vi → Vj ; f2 : Vk x Vj → Vi ;

Page 88: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

88

+ Vector-scalar:

Các lệnh vector-scalar thường có dạng:

f3 : s x Vj → Vi ; Các phần tử của vector Vj

được nhân với giá trị vô hướng s tạo nên vector mới Vi có

chiều dài bằng chiều dài Vj.

+ Vector-Memory: Là dạng lệnh nạp vào vector

các phần tử đang lưu giữ trog bọ nhớ hoặc lưu nội dung

vector vào bộ nhớ

Bộ nhớ

Thanh ghiVj Thanh ghiVk

Thanh ghiSj

Thanh ghiVk Thanh ghiVj

Đường ống chức năng Đường ống chức năng

(Vector Load)

Memory path

Memory path

(Vector Store)

Thanh ghiVj

a) Lệnh Vector-Vector b) Lệnh Vector-Scalar

c) Lệnh Vector-Memory

Thanh ghiVi

Hình III.13. Các dạng lệnh vector trong các máy tính họ Cray

1 2 n 1 2 n

Page 89: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 89

f4 : M → V ; Vector Load

f5 : V → M ; Vector Store

+ Lệnh rút gọn vector (Vector Reduction

Intructions) là dạng lệnh xác định cực trị, tổng hoặc giá trị

chính của các thành phần trong vector

f6 : Vi → si ;

f7 : Vi x Vj → sk ;

Ví dụ minh hoạ cho dạng lệnh này là lệnh tích điểm

(dot product)

n

i

ii bas1

từ hai vector A = (ai) và B = (bi).

+ Lệnh tích luỹ và tán xạ (Gather and Scatter

Intructions) là các lệnh sử dụg hai vector để tích luỹ hay tán

xạ các phần tử thông qua bộ nhớ

f8 : M → V1 × V0 ; Gather

f8 : M → V1 × V0 ; ; Scatter

+ Lệnh mặt nạ sử dụng vector mặt nạ để nén

hoặc giải một vector để có độ dài theo ý muốn

f9 : V0 × Vm → V1 ;

Để tìm hiểu kỹ hơn về các dạng lệnh xử lý vector, tài

liệu tham khảo chính là [ Kai Hwang……]

b) Hệ thống Cray Y-MP, C-90 và MPP

Kiến trúc các hệ thống Cray Reseach Y-MP, C-90 và

hệ thống MPP là những ví dụ điển hình về các hệ thống đa

xử lý đa vector sẽ dược khảo sát. Ngoại trừ các đặc tính kiến

trúc, có thể tham khảo thêm về các hệ điều hành, ngon

Page 90: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

90

ngữ/trình biên dịch và phạm vi ứng dụng của các hệ thống

này.

Đặc tính

Hệ thống

Cray Y-MP

C-90/16256

NEC

SX-X Series

Fujitsu

VP-2000 Series

Số lượng bộ Xử lý 16 CPU 4 xử lý số học 1 ở VP2600/10 và 2 ở

VP2400/40

Thời gian chu kỳ

máy 4.2 ns 2.9 ns 3.2 ns

Dung lượng nhớ 256 Mword (2GB) 2GB, 1024 đường

đan xen 1 hoặc 3 GB SRAM

Tuỳ chọn nhớ

SSD

512M, 1024M, hoặc

2048Mword

16GB với tốc độ

truyền 2.75GB/s

32GB bộ nhớ mở

rộng

Kiến trúc Vi xử

lý: Đường ống

vector, đơn vị

chức năng và vô

hướng

2 đường ống vector,

2 đường ống chức

năng/mỗi CPU,

cung cấp 64 kết quả

vector /chu kỳ xung

nhịp

4 tập đường ống

vector/mỗi CPU,

mỗi tập có 2 bộ

cộng/dịch và 2 bộ

nhân/đường ống

logic. Đường ống

vô hướng riêng

2 ống Đọc/Ghi và 5

ống chức năng/mỗi

đơn vị vector; 1 hoặc

2 đơn vị vector,2 đơn

vị vô hướng có thể

gắn kèm vào đơn vi

vector

Hệ điều hành UNICOS từ

UNIX/V và BSD

Super-UX trên cơ

sở UNIX/V và

4.3BSD

UXP/M và MPS/EX

cải biên cho xử lý

vector

Kết nối mặt sau hệ

thống

IBM, CDC, DEC,

Univac, Apollo,

Honeywell

Tích hợp VXL điều

khiển và 4 VXL

Vào/Ra

Máy chủ IBM và các

máy chủ tương thích

Ngôn ngữ/trình

biên dịch vector

hoá

FORTRAN77, C,

CF77 5.0, Cray C

3.0

FORTRAN77/SX,

Vectorizer/XS,

Analyzer/SX

FORTRAN77/EX/VP,

Trình biên dịch C/VP

với tương tác vector

Tính hoàn thiện và

băng thông

Vào/Ra

16 Gflops

13.6GB/s

22 Gflops, 1GB/s ở

mỗi VXL Vào/Ra

5Gflops, 2GB/s với

256 kênh

Đặc tính kiến trúc 3 loại siêu máy tính hiện đại (thời điểm 1993)

Sơ đồ khối của siêu máy tính Cray Y-MP 816 được thể

hiện trên Hình III.14. Hệ thống có thể có từ 1, 2, 4 đến 8 bộ

xử lý. Cả 8 bộ xử lý chia sẻ chung bộ nhớ trung tâm, thiết bị

Page 91: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 91

Vào/Ra, hệ thống truyền thông giữa các CPU, và xung nhịp

thời gian thực.

Phạm

vi

Vector

Truyền thông giữa

các bộ Vi xử lý

Xung nhịp thời

gian thực (64bit)

CPU1

CPU3

CPU4

CPU5

CPU6

CPU7

Các I/O

Thanh ghi V

8 thanh ghi

Mỗi thanh

ghi

64 phần tử

64bit

Đơn vị chức năng

vector;

Add/Substract

Tập hợp

Shift Logic

(Số học 64 bit)

Đơn vị chức năng

dấu phẩy động;

Add/Substract

Multiply

Đảo xấp xỉ

(Số học 64bit)

Đơn vị chức năng

vô hướng;

Add/Substract

Tập hợp

Shift Logic

(Số học 32 bit)

Đơn vị chức năng

địa chỉ;

Add/Substract

Multiply

(Số học 32 bit)

Giám sát

Thực hiện

Các thanh ghi

trạng thái

Thanh ghi T

(8 thanh ghi

64bit)

Thanh ghi B

(8 thanh ghi

32bit)

Đệm lệnh

(512 gói

lệnh 16bit)

Hoán đổi

tham số

thanh ghi

Mặt nạ

Vector

(64bit)

Độ dài

Vector

(6bit)

Thanh ghi

S (8 thanh

ghi 64 bit)

Thanh ghi

A (8 thanh

ghi 32 bit)

Xung nhịp khả

trình (32 bit)

Điều khiển

Vào/Ra

Bộ

nhớ

trung

tâm

CPU8

Thanh ghi

xuất lệnh

Đến các

thiết bị ngoài

Phạm

vi

hướng

Phạm

vi

địa

chỉ

Phạm

vi

điều

khiển

CPU2

Hình III.14. Tổ chức hệ thống siêu

máy tính Cray Y-MP 816

Page 92: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

92

Bộ nhớ trung tâm được chia thành 256 băng đan xen.

Truy xuất bộ nhớ đan xen có thể thực hiện thông qua 4 cổng

truy xuất cho mỗi CPU. Chu kỳ xung nhịp sử dụng cho các

CPU theo thiết kế là 6ns.

Dung lượng của bộ nhớ trung tâm có thể là 16MWord,

32MWord, 64Mword … hoặc lên đến 256 Mword, tuỳ chọn

lên đến 1Gbyte. Tuỳ chọn cho bộ nhớ SSD là từ 32Mword

đến 512Mword hay lên đến 4Gbytes.

Bộ nhớ 4 cổng cho phép mỗi CPU có thể thực hiện

đồng thời 2 thao tác Đọc (nhặt – fetch) vô hướng hay vector,

1 thao tác Ghi (lưu – store) bộ nhớ và một thao tác Vào/Ra.

Các thao tác truy xuất song song bộ nhớ cũng được đường

ống hoá tạo khả năng Đọc vector (Vector Read) và Ghi

Vector (Vector Write).

Hệ thống phần cứng được xây dựng với mục tiêu tối

thiểu độ trễ do xung đột bộ nhớ. Việc chỉnh sửa lỗi đơn, lỗi

kép (single/error and double/error correction) của dữ liệu

được thực hiện bởi mạch logic dùng trong bộ nhớ trung tâm

và trong kênh kết nối dữ liệu.

Hệ thống sử dụng một số lượng lớn các thanh ghi địa

chỉ, thanh ghi vô hướng, thanh ghi vector, thanh ghi trung

gian và thanh ghi tạm. Đảm bảo quá trình tính toán trong

CPU bao gồm 14 đơn vị chức năng được chia thành các

phạm vi vector, vô hướng, địa chỉ và điều khiển. Chuỗi

mềm dẻo các đường ống chức năng được thực hiện thông

qua sử dụng các thanh ghi, đa truy xuất bộ nhớ và các

đường ống số học/logic. 8 trong số 14 đơn vị chức năng có

khả năng thực thi các lệnh vector. Các đơn vị số học nguyên

và dấu phẩy động đều là 64 bit. Bộ nhớ cache lớn có thể

dùng để lưu đồng thời 512 lệnh 16 bit.

Page 93: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 93

Phần truyền thông giữa các bộ xử lý chứa các cụm

thanh ghi chia sẻ cho mục tiêu đồng bộ nhanh. Mỗi cụm

chứa các thanh ghi mã hiệu (Semaphore), thanh ghi vô

hướng chia sẻ, thanh ghi địa chỉ chia sẻ. Truyền thông dữ

liệu vector giữa các CPU được thực hiện thông qua bộ nhớ

chia sẻ.

Khối xung nhịp thời gian thực (Real-Time Clock) là

một bộ đếm 64bit để đếm chu kỳ xung nhịp. Sự tăng giá trị

bộ đếm đồng bộ với thực hiện chương trình, có thể dùng để

định thời việc thực thi và đếm chính xác xung nhịp.

Khối Vào/Ra có 3 thể loại kênh với vận tốc 6Mbytes/s,

100Mbytes/s và 1Gbytes/s. Các thiết bị Vào/Ra và SSD đều

được thiết kế với khả năng thu phát dữ liệu tốc độ cao.

Proc

1

Proc

2

Proc

3

Proc

4

Proc

5

Proc

6

Proc

7

Proc

8

4×4

4×4

4×4

4×4

4×4

4×4

4×4

4×4

8×8

8×8

8×8

8×8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

1 × 8

Sections

SubSections Memory Banks

0, 4, 6, ….., 28

32, 36, 40, ….., 60

64, 68, 72, ……, 92

224, 226, ….., 252

1, 5, 9, …., 29

225, 229, …., 253

2, 6, 10, ……, 30

226, 230, ….., 254

3, 7, 11, ….., 31

227, 231, ….., 255

Processors Switches ISC

Hình III.15. Sơ đồ logic mạng ngang

dọc giữa 8 CPU và 256 băng nhớ

trong hệ thống Cray Y-MP 816

Page 94: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

94

Hình III.15 mô tả kết nối 8 CPU với 256 băng nhớ

trong siêu máy tính Cray Y-MP 816 sử dụng các bộ chuyển

mạch ngang dọc liên kết và mạng nhiều tầng, các bộ chuyển

mạch được dùng là loại 4x4, 8x8 và giải kênh

(Demultiplexer) 1x8.

Việc sử dụng mạng nhiều tầng nhờ một tầng chuyển

mạch sẽ tăng tính vô hướng khi số CPU trong hệ thống là 64

hay 1024ỉơ các siêu máy tính trong tương lai.

Hệ thống C-90 và các cụm siêu máy tính

C-90 là hệ thống được tăng cường nhất về mức công

nghệ trong họ siêu máy tính Y-MP. Đặc trưng kiến trúc của

C-90/16256 được chỉ rõ trên bảng đặc tính ở phần trên của

mục này. Hệ thống có 16 CPU có các tham số kỹ thuật hoàn

toàn tương thích họ Y-MP với 256MWord (2GBytes) nhớ

chia sẻ và 16GBytes bộ nhớ rắn làm bộ nhớ chính thứ cấp.

Trong mỗi chu kỳ có 2 đường ống vector và 2 đơn vị chức

năng có thể hoạt động song song tạo 4 vector kết quả trong

mỗi nhịp. Đây là loại Vi xử lý 4-đường song song.

C-90 sử dụng Hệ điều hành UNICOX, một HĐH được

mở rộng từ hệ UNIX-V và Berkeley 4.3. C-90 có thể được

C90

(16 CPUs)

C90

(16 CPUs)

C90

(16 CPUs)

C90

(16 CPUs)

C90

(16 CPUs)

Solid-State Storage Device (SSD)

Hình III.16. 4 siêu máy

tính Cray Y-MP C-90

được nối sử dụng chung

bộ nhớ rắn SSD để tạo

nên một hệ thống siêu

máy tính xử lý song

song 64 đường ghép

lỏng (64-way parallel

system)

Page 95: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 95

kết nối với các máy chủ. Trình biên dịch vector hoá cho các

chương trình nguồn viết bằng FORTRAN 77 hoặc C. Với

song song 64 kênh kết nối và chu kỳ xung nhịp 4.2ns cho

phép làm việc tới 16Gflops. Băng thông của hệ thống

Vào/Ra là 13.6 GBytes/s.

C-90 cho phép kết nối theo cụm để giải những bài toán

lớn. Hình III.16 mô tả hệ thống được kết nối với nhóm SSD

thông qua các kênh có vận tốc truyền 1000Mbytes/s. Mỗi

cụm C-90 chỉ cho phép truy xuất bộ nhớ riêng của cụm. Tất

nhiên, chúng được phép chia sẻ truy xuất SSD, nói cách

khác, các tập dữ liệu lớn lưu giữ trong SSD có thể chia sẻ

cho 4 cụm C-90. Các cụm cũng có thể liên lạc với nhau

thông qua đơn vị chia sẻ mã (Shared Semaphore Unit). Chỉ

có các thông tin về đồng bộ và tín hiệu điều khiển được

truyền qua đơn vị chia sẻ mã. Có thể nói các cụm C-90 là

một hệ thống kết nối lỏng (Loosely Coupled) và có thể tạo

ra hệ xử lý song song 256 kênh. Nếu công việc tính toán

được phân đoạn tốt và cân bằng đối với các cụm, hệ thống

với tổ chức 4 cụm (Hình III.16) có thể thực hiện đến

64Gflops.

Hệ thống Cray/MPP là hệ thống xử lý song song hàng

loạt (Massively Parallel Processing) có khả năng thực hiện

các bài toán song song rất cao. Các bộ xử lý tập thể chuẩn

(Standard Off-the-shelf Processors) không đáp ứng được

yêu cầu khi sử dụng trong hệ thống MPP. Yêu cầu cao về

tính cân bằng của hệ thống, tốc độ các bộ xử lý, hệ thống

Vào/Ra, truy xuất bộ nhớ phải cao, và khả năng đáp ứng

phần mềm. Các bộ xử lý RISC đáp ứng được các yêu cầu

trên. Hệ thống MPP đầu tiên của Cray được biết đến là T3D

với kiến trúc vô hướng tổ hợp từ các bộ xử lý của DEC

Alpha và mạng trễ nhỏ. Hệ thống T3D được thiết kế để làm

Page 96: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

96

việc với các máy Cray Y-MP C-90 hoặc bộ nhớ cực lớn M-

90 theo dạng liên kết chặt chẽ.

T3D là một hệ thống MIMD và có thể phân đoạn

động để thực hiện công việc như một hệ thống

SIMD hay hệ thống đa máy tính MIMD.

Sử dụng bộ nhớ phân tán về mặt vật lý, địa chỉ

toàn cục và chia sẻ logic, nghĩa là mỗi phần tử xử lý

(PE – Processing Element) có thể truy xuất đến bất

kỳ phần tử xử lý nào mà không cần thông qua thông

điệp chính xác.

Hệ thống Cray/MPP sử dụng hệ điều hành vi lõi

trên cơ sở HĐH Mach. Mỗi phần tử xử lý có vi lõi

quản lý việc truyền thông với các phần tử xử lý

khác và với bộ xử lý vector liên kết chặt chẽ Y-MP.

Trình biên dịch Cray CFT77 được thay đổi với

định hướng mở rộng cho các ứng dụng MPP.

Giai đoạn I

(1993-1995)

Hệ thống đường ống với

khả năng Tflpos

Hệ thống đường ống với

khả năng 1Tflpos

Hệ thống đường ống với

khả năng Tflops

Hệ thống đường ống với

khả năng 1Tflops

Hình thể 1024-processor

với 300 Gflops

Hình thể 1024-processor

với 150 Gflops Cray Y-MP

(Bao gồm C-90 và M90)

Máy chủ Cray MPP (T3D)

Giai đoạn II

(1995-1997)

Giai đoạn III

(1997-)

Hình III.17. Các giai đoạn phát triển của hệ thống Cray/MPP

Page 97: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 97

Siêu máy tính Fujitsu VP2000 và VPP500

Hệ thống đa xử lý đa vector VP2000 Series của hãng

Fujitsu là những siêu máy tính với cấu hình một hoặc 2 bộ

xử lý. VPP500 Series có từ 7 đến 222 phần tử xử lý trong

một hệ thống MPP. Hai hệ thống trên có thể liên kết lại để

giải quyết những bài toán cực lớn. Hình III.18. là kiến trúc

hệ thống đơn xử lý VP-2600/10, và có thể mở rộng thành

dual (VP-2400/40). Chu kỳ xung nhịp của hệ thống là 3,2ns

và bộ nhớ chính có dung lượng 1 đến 2GBytes, bộ nhớ hệ

thống có thể đến 32 GBytes. Mỗi đơn vị xử lý vector có 2

đường ống Load/Store 3 đường ống chức năng và 2 đường

ống mặt nạ. Có thể gắn kết thêm 2 đơn vị vô hướng với mỗi

đơn vị vector để tạo nên 4 đơn vị vô hướng trong cấu hình

dual-processor.

Tập các thanh ghi vector của các máy Cray và Fujitsu

được mô tả trên Hình III.19. Siêu máy tính Cray có 8 thanh

ghi vector, mỗi thanh ghi có độ dài cố định 64 thanh ghi

Mặt nạ

Mặt nạ

Đơn vị

xử lý vô

hướng

Đơn vị

nhớ của

hệ thống

(System

Storage

Unit –

SSU)

Đơn vị

nhớ

chính

(Main

Storage

Unit -

MSU)

Đường ống mặt nạ

Đường ống mặt nạ

Đường ống Nhân,

cộng và logic

Đường ống Nhân,

cộng và logic

Đường ống Chia

Đường ống

Ghi/Đọc

Đường ống

Ghi/Đọc

Thanh

ghi

vector

Bộ xử lý

kênh

(CHP)

Bộ nhớ

đệm

Đơn vị

thực thi

vô hướng

Đơn vị

xử lý vector

Hình III.18. Kiến trúc siêu máy tính Fujitsu VP2000 Series

Page 98: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

98

thành phần.thanh ghi thành phần có độ dài 64 bit. Một bộ

đếm phần tử được tích hợp trong mỗi thanh ghi vector Cray

để đảm bảo thứ tự số phần tử trong vector khi xử lý. Một

đoạn vector con 64 phần tử được kết gói trong mỗi thanh

ghi vector. Các vector dài hơn được chia thành nhiều đoạn

64 phần tử để được xử lý trong đường ống.

Trong siêu máy tính Fujitsu VP2000 các thanh ghi

vector được tái cấu hình để có độ dài khác nhau. Mục đích

chính là để tương thích động độ dài thanh ghi với độ dài

vector cần xử lý. Hình III.19b cho thấy 64Kbytes trong tập

thanh ghi có thể cấu hình thành 8, 16, 32, 64, 128 và 256

thanh ghi vector với 1024, 512, 256, 128, 64 và 32 thanh ghi

phần tử. Tất cả các thanh ghi phần tử đều có độ dài 64bit.

Phần mềm hỗ trợ cho xử lý vector và xử lý song song

trên các siêu máy tính kể trên bao gồm hỗ trợ đa nhiệm

(Multitasking), xử lý khối (Macrotasking), vi khối

(Microtasking), tự động (Autotasking) và kỹ thuật tối ưu hoá

biên dịch tương tác cho xử lý vector và xử lý song song.

Siêu máy tính VPP500 của hãng Fujitsu là máy xử lý

song song vector (Vector Parallel Processor). Kiến trúc của

VPP500 bao gồm từ 7 đến 222 phần tử xử lý (PE), là hệ

thống đa vector song song MIMD. Tốc độ xử lý đến

335Gflops. Hình III.20 là kién trúc của hệ thống VPP500

được sử dụng làm máy tính xử lý nền trong liên kết với máy

chủ VP2000 hoặc VPX200. Mỗi phần tử xử lý có tốc độ xử

lý lên đến 1,6Gflops, được lắp ghép với mạch LSI loại cổng

256K công nghệ GaAs và BiCMOS. Hệ thống có 2 bộ xử lý

điều khiển hoạt động của các phần tử xử lý (PEs) thông qua

mạng kết nối. Các đơn vị chuyển dữ liệu giữ các PEs được

thực hiện bởi truyền thông giữa các PEs. Mỗi dơn vị xử lý

Page 99: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 99

PE có bộ nhớ riêng dùng RAM tĩnh lên đến 256MB. Hệ

thống sử dụng chiến lược chia sẻ bộ nhớ ảo toàn cục thông

qua việc các PEs tự tạo không gian địa chỉ riêng cho bộ nhớ

vật lý phân tán cục bộ. Như vậy toàn bộ hệ thống có thể có

bộ nhớ chính lên tới 55GB.

Mỗi đơn vị xử lý có một đơn vị vô hướng , một đơn vị

vector hoạt động song song. Các đường ống chức năng

tương thích với loại đường ống sử dụng trong VP2000

(Hình III.18) nhưng chức năng có sự sửa đổi.

Hệ thống trên Hình III.19 có thiết kế với 224x224

chuyển mạch, là một trong những hệ thống mạng chuyển

mạch lớn nhất trong các hệ thống máy tính thương mại.

VPP500 hoạt động trong liên kết với máy chủ sử dụng hệ

PE222

PE221

PE220

PE219

PE001

CP002

CP001

CP001 CP001 PE001 PE220 PE221 PE222 PE219

ON

OFF

Transmit

Receive

Hình III.19.Sơ đồ mạng kết nối các đơn vị xử lý trong hệ thống VPP500

Page 100: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

100

điều hành UXP/-VPP thế hệ 4. Các chức năng tối ưu của

chương trình dịch Fortran77 và chức năng phân lịch của hệ

điều hành UNIX khai thác tối đa khả năng của kiến trúc xử

lý song song.

Đơn vị truyền thông cho phép trao đổi dữ liệu giữa các

phần tử xử lý PEs là 400Mbytes/s một chiều, và 2 chiều đến

800Mbytes/s.

Đây là hệ thống vô hướng với cấu trúc điều khiển nâng

cao. Mỗi đơn vị xử lý điều khiển riêng có khả năng điều

khiển 9 thành phần xử lý (PEs). Hai bộ xử lý điều khiển

được dùng để kết nối VPP với 30 đến 222 thành phần xử lý

(PEs).

c) Các máy tính Mainfram và Siêu máy tính Mini

Các siêu máy tính loại này được thiết kế và xây dựng

cho các ứng dụng trong xử lý các dữ liệu thương mại và

kinh doanh. Thông thường hệ thống có từ 1 đến 6 CPU, như

trong các hệ thống IBM ES/9000, VAX 9000, và Cyber

2000. Bộ nhớ chính có dung lượng trong khoảng từ

32Mbytes đến 1Gbyte. Bộ nhớ mở rộng có thể có dung

lượng đến 8Gbytes như trong hệ thống ES/9000. Tùy chọn

phần cứng vector có thể được sử dụng cùng các đơn vị vô

hướng. Một số đơn vị xử lý vector được xây dựng trong các

đương ống xử lý phép cộng và phép nhân. Các hệ thống

thiết bị Vào/Ra tương đối phong phú và phức tạp để giải

quyết việc xử lý các cơ sở dữ liệu lớn và các ứng dụng trong

môi trường kết nối mạng.

DEC VAX 9000 có cấu hình với 4 đơn vị xử lý. Đơn vị

điều khiển là hệ thống mạng chuyển mạch ngang dọc có khả

năng trao đổi đồng thời 500Mflops/sec trên 4 tuyến. Ngoài

logic kết nối hệ thống chuyển mạch còn được thiết kế để

Page 101: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 101

giám sát nội dung của bộ nhớ cache, theo dõi quá trình gắn

kết cache hợp thời điểm.

Bộ nhớ chính có dung lượng đến 512Mbytes có thể tổ

chức nhờ mảng 64Mbytes loại DRAM 1Mbit. Với bộ nhớ

mở rộng đến 2 Gbytes, có thể sử dụng loại DRAM 4Mbit.

Các kênh Vào/Ra có khả năng trao đổi thông tin dữ liệu với

vận tốc lên đến 320Mbytes/sec. Mạng chuyển mạch có 8

cổng kết nối với 4 trung tâm xử lý, 2 mô đun nhớ và hai

khối điều khiển Vào/Ra. Mỗi cổng đều có vận tốc truyền

1Gbyte/sec, cao hơn cả vận tốc truyền ở các hệ thống kết

nối bằng BUS.

Mỗi bộ xử lý vector (VBOX) được liên kết với đường

ống thực hiện phép cộng và đường ống thực hiện phép nhân

sử dụng các thanh ghi vector và khối tạo mặt nạ/địa chỉ như

trong Hình III.20. Lệnh vector được lấy từ đơn vị nhớ

(MBOX) và giải mã tại IBOX để đưa tới VBOX thông qua

EBOX. Các phép toán vô hướng được thực thi trực tiếp tại

EBOX.

Tệp thanh ghi vector chứa 64x64x64 bits, tạo thành 16

thanh ghi vector 64 phần tử. Không có lệnh nào phải thực

hiện quá 5 chu kỳ.

Hệ thống VAX 9000 có thể hoạt động với hệ điều hành

VMS hoặc ULTRIX. Trung tâm xử lý dịch vụ (service

processor) sử dụng 4 bộ xử lý Micro VAX cho hệ thống, ổ

đĩa, băng từ và điều khiển giao diện với người dùng, và

giám sát toàn bộ hoạt động của hệ thống.

0 1 1 2 63

0 1 1 2 63

64 bit

VR0

VR1

VR7

64 thanh ghi thành phần

Page 102: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

102

Page 103: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 103

Hình vẽ ở trang 431.

Page 104: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

104

d) Xử lý vector hỗn hợp

e) Tổ chức máy tính SIMD

f) Kết nối hệ thống CM-5

III.2.2. Hệ thống vô hướng, đa luồng và kiến trúc dòng dữ liệu

a) Bộ nhớ ảo chia sẻ

b) Nguyên lý đa luồng

c) Các máy tính hạt mịn

d) Kiến trúc vô hướng và đa luồng

e) Kiến trúc hỗn hợp và dòng dữ liệu

Page 105: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 105

Chương IV

Sơ lược về lập trình và đặc trưng mạng

Phần này giới thiều sơ lược về kỹ thuật tính toán, các

điều kiện phân vùng chương trình, sự gắn kết phần cúng với

phần mềm, lưu đồ lập trình … và yêu cầu đối với chương

trình dịch trong xử lý song song.

Hệ thống máy tính xử lý song song là một hướng được

phát triển rất quan trọng trong khoa học máy tính. Để đư xử

lý song song thành một hướng chủ đạo trong kỹ thuật tính

toán, H.T. Kung (1991) đã khuyến cáo sự cần thiết phải

hướng vào 3 quá trình trọng tâm là

1) Mô hình tính toán trong tính toán song song

2) Liên kết các bộ xử lý trong kiến trúc song song

3) Tích hợp hệ thống đối với các hệ thống tổ chức song

song vào một môi trường tính toán chung.

Về lý thuyết, xử lý song song đòi hỏi phải xây dựng cơ

sở theo ba hướng trên. Trong thực tiễn, tính song song xuất

hiện trong nhiều môi trường tính toán khác nhau. Tất cảc

các dạng đều gắn cùng các mức song song, phân vùng tính

toán, tính hoàn thiện theo không gian và thời gian, sự chậm

trễ trong truyền thông, chiến lược phân chia và cân bằng

hoá. Tất nhiên, luôn tồn tại sự trả giá cho các mục tiêu thời

gian, không gian, thực hiện và giá thành.

IV.1. Mối liên hệ nguồn tài nguyên và dữ liệu

Khả năng thực hiện các đoạn chương trình song song

đòi hỏi mỗi đoạn phải độc lập với nhau. Sự độc lập có thể

Page 106: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

106

có dưới nhiều dạng, ví dụ như sự độc lập giữa các lệnh

trong chương trình. Nói chung, mỗi đoạn mã (Code

Segment) có thể có một hay nhiều phát biểu (phát biểu –

statement – câu lệnh ngôn ngữ bậc cao sử dụng trong môi

trường lập trình, còn lệnh – instruction – là chuỗi mã nhị

phân xác định một thao tác xử lý của CPU).

Có thể sử dụng biểu đồ phụ thuộc (dependence graph)

để mô tả mối quan hệ. Các nút của biểu đồ tương ứng với

các phát biểu hoặc lệnh trong chương trình, còn các mũi tên

gắn nhãn chỉ ra quan hệ theo mức của các phát biểu. Phân

tích biểu đồ phụ thuộc sẽ thấy được cơ hội tồn tại cho xử lý

song song và xử lý theo vector.

III.1.1. Quan hệ phụ thuộc tài nguyên và dữ liệu

a) Sự phụ thuộc dữ liệu: Mối quan hệ theo thứ tự của

các phát biểu chỉ ra sự phụ thuộc dữ liệu. Có 5 kiểu phụ

thuộc:

(1) Phụ thuộc dòng: Phát biểu S2 được gọi là phụ thuộc

dòng phát biểu S1 nếu đường thực hiện tồn tại xuất

phát từ S1 đến S2 và ít nhất có một lối ra của S1 hướng

tới lối vào của S2. Phụ thuộc dòng được ký hiệu là

S1→S2.

(2) Chống phụ thuộc: S2 được gọi là chống phụ thuộc S1

nếu S2 đứng sau S1 trong tuần tự chương trình và đầu

ra của S2 gối lên đầu vào của S1. Ký hiệu chống phụ

thuộc là S1→S2.

(3) Phụ thuộc Ra: Hai phát biểu được gọi là phụ thuộc Ra

nếu cả hai cùng ghi kết quả vào một biến ra. Ký hiệu

của phụ thuộc ra la S1→S2.

Page 107: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 107

(4) Phụ thuộc Vào/Ra: Read và Write là các phát biểu

Vào/Ra. Sự phụ thuộc không vì nó làm việc với cùng

một biến, mà là vì sự tham chiếu đến cùng một tệp bởi

cả hai phát biểu.

(5) Những phụ thuộc chưa biết khác: Quan hệ phụ thuộc

giữa hai phát biểu không thể xác định được trong các

trường hợp biến có chỉ số.

Ví dụ đoạn chương trình có 4 lệnh sau:

S1: load R1,A /R1←Memory(A)/

S2: add R2,R1 /R2←(R1)+(R2)/

S3: move R1,R3 /R1←(R3)/

S4: store B,R1 /Memory(B) ←(R1)

Hình III.12a cho thấy S2 phụ thuộc dòng S1 vì biến A

phải đi qua R1. S3 chống phụ thuộc S2 vì xung đột tại nội

dung R1. S3 phụ thuộc Ra với S1 vì chúng cùng thay đổi

nội dung R1. Cũng dễ dàng nhận ra S2 và S4 hoàn toàn độc

lập (không phụ thuộc).

S

1

S

2

S

3

S

4

S

1 S

3

a)Biểu đồ phụ thuộc

b)Sự phụ thuộc

Vào/Ra do việc

cùng truy xuất 1

tệp bởi phát biểu

READ và WRITE

Hình III.12. Sự phụ thuộc Vào/Ra và dữ liệu trong ví dụ đoạn

chương trình trên

Page 108: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

108

b) Sự phụ thuộc điều khiển: Là tình huống khi mà thứ

tự thực hiện các phát biểu không dự đoán trước được (ví dụ

nhảy có điều kiện, phát biểu if…then,v.v…).

Sự phụ thuộc điều khiển thường cản trở khả năng xử lý

song song.

c) Sự phụ thuộc tài nguyên: Sự phụ thuộc tài nguyên

thường liên quan tới những xung đột khi sử dụng các nguồn

tài nguyên chia sẻ, ví dụ như các đơn vị số nguyên, các đơn

vị số dấu phẩy động, các thanh ghi, vùng nhớ v.v… Ví dụ

tài nguyên xung đột xẩy ra khi sử dụng ALU, ta gọi là phụ

thuộc ALU. Xung đột với vùng nhớ, gọi là phụ thuộc lưu

giữ…

d) Các điều kiện Bernstein: Năm 1966, Bernstein đưa

ra tập các điều kiện cơ bản để một quá trình có thể được xử

lý song song. Quá trình là một chủ thể phần mềm tương ứng

với sự trừu tượng của các đoạn chương trình xác định trong

các mức xử lý khác nhau. Coi rằng tập vào Ii của quá trình

Pi là tập tất cả các biến cần thiết cho thực hiện quá trình.

Tập ra Oi là tất cả các biến ra tạo bởi việc thực hiện quá

trình Pi . Các biến vào thực ra là các toán hạng được lấy từ

nội dung thanh ghi hoặc nội dung ô nhớ. Còn các biến ra là

kết quả xử lý có thể được lưu giữ tại các thanh ghi hoặc tại

các ô nhớ.

Giả thiết hai quá trình P1 và P2 với các tập vào là I1 và

I2 , các tập ra tương ứng là O1 và O2 . Hai quá trình này có

thể được thực hiện song song, ký hiệu là P1 ║ P2 khi chúng

là độc lập với nhau và không tạo ra các kết quả vô lý. Nếu

dùng quan điểm phụ thuộc dữ liệu, điều kiện Berstein có thể

phát biểu rằng: Hai quá trình có thể xử lý song song khi

Page 109: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 109

chúng không phụ thuộc dòng, chống phụ thuộc và không

phụ thuộc Ra.

Có thể biểu diễn các điều kiện đó như sau:

I1 ∩ O2 = Ø

I2 ∩ O1 = Ø

O1 ∩ O2 = Ø

3 phương trình trên được gọi là các điều kiện

Bernstein.

Một cách tổng quát, các quá trình P1, P2,…., Pk có thể

xử lý song song khi chúng thoả mãn điều kiện Berstein từng

đôi một, nghĩa là P1 ║ P2 ║ P3 ║ … ║Pk, nói cách khác, khi

và chỉ khi thoả mãn điều kiện Pi ║ Pj với mọi i ≠ j.

Một ví dụ về xác định tính khả thi song song của

chương trình có 5 lệnh như sau (xem Hình III.13):

P1 : C = D x E

P2 : M = G + C

P3 : A= B + C

P4 : C = L + M

P5 : F= G + E

x P1

+1 P2

+3 P4

+2 P3 + P5

E D

E G G

L

A F

B

A

x

+1

+2

+3

D E

G C

B

L

G

E

C

C

P1

P2

P3

P4

Thời gian

P3

III.13.a)Biểu đồ phụ thuộc,

đường đứt quãng thể hiện

sự phụ thuộc tài nguyên

x

+1

+2

+3

P1

P2

P4

+

P5

Page 110: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

110

Trong trường hợp hai bộ cộng có thể làm việc đồng

thời, việc thực thi song song có thể tiến hành trong 3 bước

như ở Hình III.13c. Theo cặp đôi, ta thấy có 10 cặp phát

biểu để xét theo các điều kiện của Bernstein. Có 5 cặp có

thể xử lý song song gồm P1║ P5, P2 ║ P3, P2 ║ P5, P5 ║ P3

và P4 ║ P5 nếu như không có sự xung đột tài nguyên. Và

cuối cùng, có thể thấy được rằng chỉ có P2 ║ P3 ║ P5 là có

thể xử lý song song vì P2 ║ P3, P3 ║ P5 và P5 ║ P2.

Nói chung, quan hệ song song là 1 quan hệ có thể giao

hoán, nhưng không có tính bắc cầu, tức là nếu Pi ║ Pj thì sẽ

có Pj ║ Pi, nhưng nếu Pi ║ Pj và Pj ║ Pk thì chưa đảm bảo

rằng Pi ║ Pk. Tất nhiên, cho dù quan hệ ║ là không tương

đương, nhưng chúng vẫn dảm bảo tính kết hợp, nghĩa là ta

có (Pi ║ Pj) ║ Pk = Pi ║ (Pj ║ Pk) và kết quả sẽ không thay

đổi nếu thay đổi thứ tự xử lý song song các quá trình.

Quan hệ phụ thuộc mức phát biểu (statement-level

dependence) có thể tổng quát hoá thành mức đoạn mã (code

segment), mức thủ tục (soubroutine), mức quá trình

Page 111: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 111

(process), mức nhiệm vụ (task) và cuối cùng, là mức

chương trình (program level).

III.1.2. Cơ chế song song cứng và song song mềm

Để thiết lập cơ chế xử lý song song, cần phải có sự đảm

bảo đặc biệt về phần cứng (Hardware) cũng như phần mềm

(Software).

a) Cơ chế song song cứng (Hardware Parallelism)

Cơ chế song song cứng được xác định bởi kiến trúc và

tính bội phần cứng (Hardware Multiplicity), và dĩ nhiên nó

kéo theo sự tăng trưởng về giá thành sản phẩm. Cách thức

lợi dụng đồng thời nguồn tài nguyên trong các thao tác xử

lý. Đặc trưng của song song cứng là số lượng các lệnh Vi xử

lý thực hiện xong trong một chu kỳ máy. Nếu là k lệnh trong

một chu kỳ máy, ta gọi là bộ xử lý k-issue. Thông thường bộ

xử lý cần một hay nhiều hơn một chu kỳ máy để xuất ra một

lệnh đơn. Loại Vi xử lý này được gọi là Vi xử lý đơn xuất

(one-issue), và có một đường ống đơn trong bộ xử lý. Với

các bộ xử lý hiện đại, có hai hay nhiều lệnh hơn có thể xuất

trong một chu kỳ máy. Trong thực tế, Intel i960CA là Vi xử

lý three-issue, IBM RISC/System 6000 là Vi xử lý four-

issue, có khả năng xuất một lệnh số học, một lệnh truy xuất

bộ nhớ, một lệnh làm việc với số dấu phẩy động và một lệnh

rẽ nhánh trong một chu kỳ.

b) Cơ chế song song mềm (Software Parallelism)

Thể loại song song mềm được định nghĩa theo sự phụ

thuộc về dữ liệu và điều khiển của chương trình. Mức độ

song song có thể phát hiện được thông qua hiện trạng

(Profile) hoặc lưu đồ chương trình (Flow Graph). Song

song mềm có thể coi là hàm của thuật giải (Algorithm), đặc

Page 112: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

112

trưng lập trình (Programming Style), và tối ưu hoá trình

dịch (Compiler Optimization). Lưu đồ thực hiện chương

trình chỉ ra phương thức tiếp cận thông qua các thao tác

thực thi đồng thời. Cơ chế song song phụ thuộc vào từng

giai đoạn mà chương trình được thực hiện. Cơ chế song

song mềm phụ thuộc nhiều vào khả năng của bộ xử lý. Hình

III.14.a) và b) chỉ ra cách hình dung cơ chế song song cứng

và song song mềm trên hệ thống Vi xử lý siêu hướng two-

issue. Hình III.15. cho thấy việc thực hiện chương trình đó

trên hệ thống có 2 Vi xử lý (Dual-Processor System).

Cơ chế xử lý song song trên hệ thống 2 bộ xử lý được

chèn thêm các lệnh S1 và S2 (Store), hai lệnh L5 và L6

(Load) cần thiết cho việc liên kết các bộ xử lý sử dụng bộ

nhớ chia sẻ.

Trong các kiểu xử lý song song mềm, có hai vấn đề nổi

bật được quan tâm là:

Thứ nhất, song song điều khiển (Control Parallelism)

khi hai hay nhiều thao tác xử lý được thực hiện đồng thời;

thứ hai là song song dữ liệu (Data Parallelism), khi mà một

thao tác xử lý duy nhất được thực hiện đồng thời để xử lý

nhiều phần tử dữ liệu bởi nhiều bộ xử lý khác nhau. Song

song điều khiển xuất hiện dưới dạng xử lý đường ống, hoặc

nhiều đơn vị chức năng, giới hạn bởi độ dài đường ống và

số lượng đơn vị chức năng. Cả hai trường hợp xử lý song

song đường ống và song song chức năng đều được thực hiện

Chu kỳ 1 L1 L2 L3 L4

X1 X2

Li Thao tác nhận dữ liệu

Xi Thao tác phép nhân

Chu kỳ 2

Chu kỳ 3

Chu kỳ 1 L1

L2

L3

L4

X1

Chu kỳ 2

Chu kỳ 3

Chu kỳ 4

Page 113: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 113

trong phương thức song song cứng. Người lập trình không

cần đưa thêm bất cứ thao tác đặc biệt nào.

c) Vai trò của chương trình dịch Compiler (chương trình dịch), còn gọi là phần mềm biên dịch, là một

chương trình máy tính làm công việc dịch một chuỗi các câu lệnh được viết

Hình III.14. Ví dụ thực hiện chương

trình trên Vi xử lý siêu hướng two-issue

Hình III.15. Chương trình được thực hiện trên hệ thống có 2 bộ

xử lý (Dual-Processor) có thêm vào hai lệnh S và L.

B

A L1 L2 X1 S1 L5 +

L3 L4 X2 S2 L6

Chu kỳ 1 Chu kỳ 2 Chu kỳ 3 Chu kỳ 4 Chu kỳ 5 Chu kỳ 6

Page 114: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

114

bằng một ngôn ngữ lập trình (gọi là ngôn ngữ nguồn hay mã nguồn), thành

một chương trình tương đương nhưng ở dưới dạng một ngôn ngữ máy tính

mới (gọi là ngôn ngữ đích) và thường là ngôn ngữ ở cấp thấp hơn, ngôn ngữ

máy. Chương trình mới được dịch này gọi mã đối tượng.

Hiểu một cách đơn giản, chương trình biên dịch có thể đọc được các câu

lệnh viết bằng ngôn ngữ lập trình bậc cao, như Pascal hoặc C, C++…, và

biên dịch những câu lệnh đó thành một chương trình mà máy. Các chương

trình được biên dịch chạy nhanh hơn nhiều so với các chương trình được

thông dịch vì toàn bộ chương trình này có thể tương tác trực tiếp với bộ vi

xử lý và không cần trình thông dịch).

Kỹ thuật biên dịch được dùng để khai thác các tính

năng phần cứng. Những chương trình đầu tiên như làm việc

trên hệ thống IBM PL.8, Standford MPIS đều hướng tới

mục tiêu này. Các trình biên dịch tối ưu khai thác khả năng

xử lý song song có thể kể ra như CDC STACKLIB, Cray

CFT, Illinois Parafrase, Rice PFC, Yale Bulldog, hay

Illinois IMPACT.

Có nhiều giai đoạn bất lợi do khả năng hạn chế của

phần cứng khi sử dụng các trình biên dịch đơn giản. Để

khắc phục thường phải đồng thời thiết kế xây dựng trình

biên dịch và phần cứng. Sự tương tác giữa phạm vi này cần

dẫn tới một giải pháp tốt hơn nhằm đáp ứng được tính song

song cứng và song song mềm.

Hướng tổng quát để tăng độ mềm dẻo song song cứng

và khai thác tốt song song mềm là các chương trình điều

khiển sâu (Control-Intensive Programs). Tính thương mại

tốt của thiết kế phần cứng và phần mềm tồn tại giữa các vấn

đề giá thành, tính hoàn thiện, khả năng mở, tính tương thích

và khả năng thực hiện hệ thống. Công việc biên dịch cho

Page 115: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 115

các hệ thống đa xử lý phải sâu hơn rất nhiều so với các hệ

thống đơn xử lý.

III.1.3. Phân cấp các mức song song

Kích thước hạt (Grain Size) và độ hạt (Granularity) là

thước đo của độ lớn tính toán được xét trong quá trình mềm.

Cách tính đơn giản nhất là tính tổng số các lệnh trong hạt

(trong đoạn chương trình). Kích thước hạt xác định đoạn

chương trình cơ sở để chọn cho xử lý song song. Các kích

thước được định nghĩa như là mịn (Fine), trung bình

(Medium) và thô (Coarse).

Hình III.16. thể hiện 5 mức thực thi chương trình đại

diện cho các kích thước hạt khác nhau và yêu cầu về điều

khiển, truyền thông đối với các mức. Mức thấp nhất ứng với

kích thước hạt mịn nhất.

Trong thức tế, thực thi chương trình có thể sử dụng tổ

hợp của các mức trên. Tổ hợp thực thi phụ thưộc vào ứng

dụng cụ thể, mô hình, thuật giải, ngôn ngữ lập trình, chương

trình cụ thể, sự hỗ trợ của trình biên dịch và khả năng đáp

ứng của phần cứng.

Có 5 mức song song trong các hệ thống xử lý song

song hiện đại: mức lệnh (Instruction Level), mức lặp (Loop

Level), mức thủ tục (Procedure Level), mức chương trình

con (Subprogram Level) và mức công việc (chương trình)

(Job (Program) Level).

a) Mức lệnh

Ở mức lệnh, mức phát biểu thành phần chủ yếu thường

chỉ ít hơn 20 lệnh, và được gọi là hạt mịn (fine grain). Phụ

Page 116: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

116

thuộc vào từng chương trình cụ thể, song song ở mức này

thường có khoảng hai đến hàng nghìn hạt. Butler và các tác

giả (1991) cùng ông xác định rằng ở các máy chuỗi lệnh

đơn, song song có hơn hai hạt. Wall (1991) xác định có 5

đến 7 hạt, còn trong các ứng dụng khoa học, Kumar (1988)

đã chỉ ra có khoảng 500 đến 3000 phát biểu FORTRAN có

thể được thực thi đồng thời trong môi trường lý tưởng hoá.

Ưu điểm lớn của tính toán hạt mịn là sự phong phú

trong xử lý song song. Việc khai thác song song hạt mịn

được trợ giúp bằng cách tối ưu chương trình biên dịch, nó

có thể tự động xác định khả năng tính song song và dịch mã

nguồn sang dạng song song được cấp bởi hệ thống thực thi.

Song song mức lệnh thường là công việc tương đối phức tạp

đối với các lập trình viên nếu muốn xác định từ chương

trình nguồn.

b) Mức lặp

Mức lặp liên quan đến các thao tác xử lý vòng lặp. Một

vòng lặp cơ bản thường có khoảng 500 lệnh. Một số thao

tác lặp, nếu phụ thuộc vào lặp trình tự liên tiếp, có thể thực

hiện trong đường ống hoặc trong các hệ thống SIMD. Một

số khác có thể thực hiện bằng cách chia sẻ trong hệ thống

MIMD. Song song mức lặp thường được xây dựng thành

các chương trình tối ưu để được thực thi trong các hệ thống

xử lý song song hoặc các hệ thống vector. Các phép lặp đệ

quy thường rất khó xử lý song song. Xử lý vector được khai

thác nhiều nhất nhờ sự trợ giúp của các chương trình biên

dịch vector. Mức này cũng được coi là mức xử lý hạt mịn

trong tính toán.

Page 117: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 117

c) Mức thủ tục

Song song mức này liên quan đến kích thước hạt trung

bình (Medium-Grain Size) ở nhiệm vụ, thủ tục, chương trình

con… Hạt tiêu chuẩn thường có đến khoảng 2000 lệnh.

Viẹc nhận dạng khả năng xử lý song song ở mức này khó và

phức tạp hơn rất nhiều so với mức hạt mịn. Nhu cầu trao đổi

dữ liệu và truyền thông ở mức này thường không được quan

tâm lắm so với việc xử lý trong các hệ thống MIMD.

Phương thức thực thi SPMD là trường hợp đặc biệt của mức

này. Hệ thống đa nhiệm (Multitasking) cũng được xếp vào

mức này. Mức này cũng đòi hỏi sự nỗ lực của lập trình viên

Hạt trung bình

Công việc

hoặc chương trình

Chương trình con,

các giai đoạn công việc

hoặc một phần chương

Công việc hoặc

chương trình

Chương trình con, các

giai đoạn công việc hoặc

một phần chương trình

Thủ tục, thủ tục

con, nhiệm vụ

Lặp không đệ quy,

lặp không cuộn

Lệnh và

các phát biểu

Hạt thô

Hạt mịn

Mức 1

Mức 2

Mức 3

Mức 4

Mức 5

Yêu cầu

cao về

truyền

thông

và lập

lịch

Mức độ

song

song

cao

dần

Hình III.16. Các mức song song trong thực thi chương trình

trên các hệ thống tính toán hiện đại

Page 118: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

118

để tổ chức tốt chương trình, và cần được sự hỗ trợ lớn từ

chương trình biên dịch.

d) Mức chương trình con

Mức này phù hợp với các bước của công việc và các

chương trình con liên quan. Kích thước hạt thường chứa

hàng ngàn lệnh. Các bước của công việc có thể có sự chồng

gối lên các công việc khác. Chương trình con sẽ được lập

theo lịch cho các bộ xử lý khác nhau trong các nút SPMD

hay MPMD, thường là trong các hệ thống đa máy tính liên

kết bằng thông điệp.

Lập trình đa nhiệm trên các hệ thống đơn xử lý hay đa

xử lý đều thuộc mức này. Xử lý song song ở mức này là do

các nhà thiết kế giải thuật và các lập trình viên chứ không

phải do trình biên dịch. Hiện chưa có trình biên dịch có khả

năng khai thác xử lý song song mức hạt trung bình và hạt

thô. (Theo tài liệu biên soạn năm 1993).

e) Mức công việc (chương trình)

Mức này phù hợp cho việc thực hiện các công việc

(chương trình) độc lập trên các hệ thống xử lý song song.

Kích thước hạt có thể có đến hàng chục ngàn lệnh. Với các

hệ thống siêu máy tính với các bộ xử lý cực mạnh, việc xử

lý song song mức hạt thô là hoàn toàn hiện thực. Song song

mức công việc thường được thực thi bằng các program

loader hay bằng các hệ điều hành. Các hệ thống đa xử lý sử

dụng phương thức chia sẻ thời gian và chia sẻ không gian để

khai thác các ưu điểm xử lý song song ở mức này. Các

phương thức này chính là sự mở rộng cần thiết của lập trình

đa nhiệm.

Page 119: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Nguyễn Trung Đồng Tel. 0983 410 866 119

Page 120: Chương I. Các Hệ Vi xử lý tiên tiếndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/co-so-du-lieu/file... · trễ do tìm lệnh đích trong bộ nhớ chính được

Hệ Vi xử lý tiên tiến

120

Chương I. .................................................................................................................... 1

Các Hệ Vi xử lý tiên tiến ............................................................................................ 1

I.1. Tổng quan về Hệ Vi xử lý tiên tiến ........................................................... 1

I.2. Đặc điểm kiến trúc Hệ Vi xử lý tiên tiến................................................. 10

I.3. Phân loại các bộ Vi xử lý song song ....................................................... 12

I.3.1. Phân loại theo Flynn ............................................................................. 13

I.3.2. Phân loại theo kiến trúc ........................................................................ 16

Chương II. ................................................................................................................ 27

Kỹ thuật đường ống và siêu hướng ........................................................................... 27

II.1. Đa xử lý đường ống tuyến tính .................................................................... 27

II.2. Cấu trúc và hoạt động của hệ thống đường ống siêu hướng ........................ 31

II.3. Hệ thống BUS và bộ nhớ ............................................................................. 37

II.4. Tổ chức bộ nhớ cache .................................................................................. 44

II.4.1. Các phương thức đánh địa chỉ cache................................................... 44

II.4.2. Cache liên hợp và cache ánh xạ trực tiếp ............................................ 48

II.5. Tổ chức bộ nhớ chia sẻ ................................................................................ 57

II.5.1. Tổ chức bộ nhớ đan xen (Interleaved Memory Organization) ............ 57

II.5.2. Băng thông và dung sai lỗi .................................................................. 61

II.5.3. Sơ đồ định vị bộ nhớ ........................................................................... 62

Chương III ................................................................................................................ 68

Các mô hình máy tính xử lý song song..................................................................... 68

III.1. Liên kết hệ thống đa xử lý .......................................................................... 68

III.1.1. Hệ thống BUS phân cấp .................................................................... 71

III.1.2. Chuyển mạch ngang dọc và bộ nhớ đa cổng ..................................... 76

III.1.3. Mạng tổng hợp và mạng nhiều tầng .................................................. 82

III.2. Một số hệ thống xử lý song song ............................................................... 87

III.2.1. Hệ thống đa vector và các máy tính SIMD ........................................ 87

III.2.2. Hệ thống vô hướng, đa luồng và kiến trúc dòng dữ liệu .................. 104

Chương IV .............................................................................................................. 105

Sơ lược về lập trình và đặc trưng mạng .................................................................. 105

IV.1. Mối liên hệ nguồn tài nguyên và dữ liệu .................................................. 105

III.1.1. Quan hệ phụ thuộc tài nguyên và dữ liệu ........................................ 106

III.1.2. Cơ chế song song mềm và song song cứng ..................................... 111

III.1.3. Phân cấp các mức song song ........................................................... 115