Tải bản đầy đủ (.doc) (77 trang)

Nghiên cứu hệ vi xử lý vectơ mc431

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.22 MB, 77 trang )

Chơng 1
Lý thuyết về xử lý song song
1.1 Phân loại các kiến trúc hệ vi xử lý song song
Có nhiều phơng án phân loại kiến trúc các hệ vi xử lý, mỗi phơng án
dựa trên các tiêu chí khác nhau. Trong đó, phơng án phân loại nổi tiếng nhất
và đợc sử dụng rộng rãi nhất là phơng án phân loại của Flynn, dựa trên hai
khái niệm là dòng lệnh (Instruction stream) và dòng dữ liệu (Data stream).
Theo đó, kiến trúc hệ vi xử lý đợc chia thành 4 loại sau:
SISD (Single Instruction stream, Single Data stream): Kiểu kiến trúc
đơn dòng lệnh, đơn dòng dữ liệu.
SIMD (Multiple Instruction stream, Multiple Data stream): Kiểu kiến
trúc đơn dòng lệnh, đa dòng dữ liệu.
MISD (Multiple Instruction stream, Single Data stream): Kiểu kiến
trúc đa dòng lệnh, đơn dòng dữ liệu.
MIMD (Multiple Instruction stream, Mutiple Data stream): Kiểu đa
dòng lệnh, đa dòng dữ liệu.
Sau đây ta sẽ xem xét từng kiểu kiến trúc trên. Trong đó, SISD chính
là kiểu kiến trúc Von Neuman cho các hệ vi xử lý tuần tự thông thờng, còn
lại là các kiểu kiến trúc cho hệ vi xử lý song song.
1.1.1 Kiến trúc hệ vi xử lý theo cách thông thờng đơn chỉ thị đơn dữ
liệu (SISD)
Trong kiến trúc này (hình 1.1), tại một thời điểm chỉ có một dòng
lệnh thao tác trên một dòng dữ liệu. Đây chính là kiểu kiến trúc Von
Neuman cho hệ vi xử lý tuần tự thông thờng, có u điểm là đơn giản cả về
cấu trúc phần cứng và phần mềm hệ thống. Tuy nhiên, với cách truyền
thống này thì tốc độ xử lý sẽ chỉ đạt đến một giới hạn nào đó, bởi vì không
thể nâng tốc độ của bộ xử lý đơn lên mãi đợc, trong khi yêu cầu về tốc độ
xử lý luôn đợc đặt ra hàng đầu đối với một hệ vi xử lý hiện đại. Vì vậy, kiến
trúc này không đợc áp dụng cho các hệ vi xử lý tốc độ cao hiện đại.
30
Hình 1.1. Kiến trúc hệ vi xử lý truyền thống xử lý theo kiểu SISD


1.1.2 Kiến trúc hệ vi xử lý đơn chỉ thị đa dữ liệu (SIMD)
Hình 1.2. Kiến trúc hệ vi xử lý kiểu SIMD
Kiểu kiến trúc này (hình 1.2) cho phép tại một thời điểm một dòng
lệnh có thể thao tác trên nhiều dòng dữ liệu. Các hệ vi xử lý vectơ là một ví
dụ điển hình cho kiểu kiến trúc này. ở đó, một dòng lệnh (thao tác) đợc đa
đồng thời tới nhiều dòng dữ liệu (ví dụ nh một vectơ chứa các phần tử dữ
liệu vô hớng) và thực hiện trên các bộ xử lý khác nhau. Các lệnh kiểu SIMD
giúp giảm bớt các tiếp đầu phần mềm do không phải lặp lại trên nhiều dòng
dữ liệu khác nhau.
31
Theo đó, nếu trong mô hình một hệ xử lý đơn có nhiều bộ xử lý thì
một chỉ thị đợc phát tới các bộ xử lý, mỗi bộ xử lý thực hiện xử lý dữ liệu
riêng của mình và kết quả đầu ra có thể đợc tổng hợp lại hoặc thực hiện tiếp
các thao tác tiếp theo. Còn đối với mô hình nhiều bộ xử lý đợc kết nối với
nhau qua mạng thì một chơng trình sẽ đợc khởi động trên các bộ xử lý đó,
mỗi bộ xử lý cũng làm việc với dữ liệu riêng của mình và kết quả đầu ra đ-
ợc tiếp tục xử lý theo ý đồ của ngời lập trình.
Mô hình này có thể cho phép giảm bớt độ phức tạp của cả phần cứng
lẫn phần mềm nhng chỉ thích hợp cho những hệ thống chuyên dụng, chẳng
hạn nh trong xử lý ảnh và những ứng dụng mô phỏng số. Hiện nay các hệ
xử lý song song theo kiến trúc SIMD đang đợc phát triển mạnh mẽ, đặc biệt
trong thiết kế các hệ vi xử lý chuyên dụng có tốc độ và hiệu quả cao với giá
thành hợp lý.
1.1.3 Kiến trúc hệ vi xử lý đa chỉ thị đơn dữ liệu (MISD)
Trong mô hình này, nhiều chỉ thị đợc phân tán tới các bộ xử lý và các
bộ xử lý đó thực hiện xử lý một dữ liệu chung và kết quả đầu ra của chúng
đợc tổng hợp lại thành một dữ liệu đơn (hình 1.3). Có thể mô tả cơ chế của
kiến trúc MISD bằng mô hình các lớp hệ vi xử lý có các đơn vị xử lý riêng
nhận các lệnh riêng biệt xử lý trên cùng một dữ liệu, hoặc các lớp hệ vi xử
lý trong đó dữ liệu chuyển qua một dãy các đơn vị xử lý.

Hiện nay, phơng pháp xử lý này chỉ mới thành công trong thực
nghiệm còn về mặt thơng mại thì cha thực hiện đợc. Tuy nhiên, những
thành công ban đầu của nó trong nghiên cứu hứa hẹn nhiều kết quả và
những ứng dụng khả quan trong tơng lai.
32
Hình 1.3. Kiến trúc hệ vi xử lý kiểu MISD
1.1.4 Kiến trúc hệ vi xử lý đa chỉ thị đa dữ liệu (MIMD)
Trong kiến trúc này (hình 1.4), các chỉ thị đợc phân phát đến các bộ
xử lý. Các bộ xử lý này thực hiện xử lý trên dữ liệu của riêng mình và kết
quả đầu ra của chúng cũng là những dữ liệu đã đợc xử lý phục vụ cho mục
đích tính toán nhất định. Vì vậy, tại một thời điểm có nhiều dòng lệnh đợc
thực hiện đồng thời trên nhiều dòng dữ liệu.
Hình 1.4. Kiến trúc hệ vi xử lý kiểu MIMD
Mô hình này đang đợc tập trung nghiên cứu ở nhiều nớc trên thế giới
do tính dễ hiểu, hiệu quả, linh hoạt và sự phù hợp của nó với những gì
33
chúng ta đang có (ví dụ những máy tốc độ thấp ta có rất nhiều). Kết quả
những nghiên cứu về kiến trúc MIMD cho phép xây dựng các hệ vi xử lý
song song tốc độ cao, đặc biệt là các hệ siêu máy tính song song đa năng.
1.2 Phơng pháp tổ chức bộ nhớ của hệ vi xử lý song song
Trong các hệ vi xử lý song song, việc truy nhập và sử dụng hiệu quả
các tài nguyên hệ thống là yêu cầu hết sức quan trọng. Bộ nhớ là một tài
nguyên có quan trọng hàng đầu của hệ xử lý. Vì vậy, việc tổ chức bộ nhớ
cho các hệ vi xử lý song song một cách hợp lý sẽ giúp phát huy hiệu năng,
tính song song của hệ vi xử lý. Đầu tiên ta xem xét phơng pháp tổ chức bộ
nhớ phân cấp cho các hệ vi xử lý song song.
1.2.1 Phơng pháp tổ chức bộ nhớ phân cấp
1.2.1.1 Khái niệm về bộ nhớ phân cấp
Mục đích của việc tổ chức bộ nhớ phân cấp là nhằm tạo ra sự phối
hợp giữa tốc độ của bộ xử lý với tốc độ truyền dữ liệu hay băng thông của

bộ nhớ. Đối với các bộ xử lý song song, sự tồn tại của nhiều bộ xử lý dẫn
đến khả năng xuất hiện đồng thời các yêu cầu tham chiếu tới bộ nhớ ở cùng
mức trong phân cấp. Nếu có hai hoặc nhiều hơn các yêu cầu tham chiếu tới
cùng một vị trí trong bộ nhớ ở cùng cấp thì sẽ xảy ra xung đột, làm giảm
hiệu năng của hệ thống. Vì vậy trong các hệ xử lý song song, bộ nhớ phải
đợc tổ chức để giảm tới mức thấp nhất khả năng xảy ra xung đột tại mỗi
cấp. Điều này thờng đợc thực hiện bằng cách phân vùng bộ nhớ tại cấp xác
định thành các module sao cho sự truy nhập đồng thời có thể thực hiện đợc
ở mức độ nào đó.
Nói chung, phân cấp bộ nhớ đợc cấu trúc sao cho các bộ nhớ ở cấp i
là cao hơn các bộ nhớ ở cấp i+1. Gọi c
i
, t
i
và s
i
tơng ứng là chi phí trên
một byte, thời gian truy nhập trung bình và kích thớc bộ nhớ tổng cộng ở
cấp i, ta có quan hệ giữa các cấp i và i+1 nh sau:
Về chi phí trên một byte nhớ: c
i
> c
i
+1
Về thời gian truy nhập trung bình: t
i
< t
i
+1
Về kích thớc bộ nhớ: s

i
< s
i
+1
Nh vậy bộ nhớ ở cấp i có chi phí cao hơn nhng thời gian truy nhập
ngắn hơn (nhanh hơn) và có kích thớc nhỏ hơn bộ nhớ ở cấp i+1. Bộ nhớ
34
cấp 1 là bộ nhớ gắn liền với mỗi bộ xử lý và đợc gọi là bộ nhớ cục bộ (bộ
nhớ cache).
Bộ xử lý thờng tham chiếu tới một nội dung trong bộ nhớ bằng cách
đa ra vị trí hay địa chỉ của ô nhớ. Một phân cấp bộ nhớ thờng đợc tổ chức
sao cho không gian địa chỉ ở cấp i là một bộ phận của không gian địa chỉ ở
cấp i+1. Tuy nhiên, điều này chỉ đúng trong mối quan hệ giữa các cấp. Địa
chỉ A
k
tại cấp i không nhất thiết là địa chỉ A
k
ở cấp i+1, nhng bất kỳ dữ liệu
ở cấp i có thể cũng có ở cấp i+1. Tuy vậy, một số dữ liệu ở cấp i có thể đợc
sử dụng thờng xuyên hơn cũng dữ liệu ấy ở cấp i+1. Điều này làm nảy sinh
vấn đề về tính nhất quán dữ liệu hay vấn đề tính tơng hợp giữa các cấp kế
cận do chúng chứa các bản sao khác nhau của cùng một dữ liệu. Thông th-
ờng cấp i+1 cuối cùng đợc cập nhật với dữ liệu đã đợc thay đổi từ cấp i.
Vấn đề về tính nhất quán dữ liệu cũng có thể tồn tại giữa các bộ nhớ
cục bộ hay các cache khi hai quá trình đồng thao tác, có thể đợc thực thi
đồng thời hay trên các bộ xử lý riêng, tơng tác qua một hay nhiều biến chia
sẻ. Một quá trình có thể cập nhật bản sao của một biến chia sẻ vào trong bộ
nhớ cục bộ của nó trong khi quá trình khác tiếp tục truy nhập bản sao trớc
của biến trong bộ nhớ cục bộ của nó. Điều này có thể gây ra sự thực thi
không đúng với các quá trình đồng thao tác. Nói chung, một phân cấp bộ

nhớ gặp phải vấn đề tính nhất quán này ngay khi một trong các cấp của nó
đợc chia thành một số khối độc lập mà chúng không cho phép truy nhập nh
nhau từ các cấp hay các bộ xử lý nhanh hơn. Để giải quyết vấn đề này, có
một số giải pháp đợc đề xuất nh: phân phối và quản lý bộ nhớ một cách hợp
lý, tổ chức các phân hệ vào/ra và bộ nhớ song song một cách hiệu quả.
Để mô hình hóa hiệu năng của bộ nhớ phân cấp, ta thờng công nhận
rằng việc kiểm soát điều hành bộ nhớ đợc đặc trng bởi hàm thành công
(success function) hay hệ số đạt đợc (hit ratio) H, là xác suất tìm thấy dữ
liệu yêu cầu trong bộ nhớ của một cấp nhất định. Nói chung, H phụ thuộc
vào độ chia nhỏ (granularity) của việc truyền dữ liệu, dung lợng của bộ nhớ
tại cấp đó, chiến lợc giám sát và các yếu tố khác. Tuy nhiên, đối với hầu hết
các phơng pháp kiểm soát điều hành, có thể thấy rằng H chịu ảnh hởng
nhiều nhất bởi kích thớc bộ nhớ s. Vì vậy hàm thành công có thể đợc viết là
H(s). Hệ số hay xác suất nhỡ đợc xác định bởi F(s) = 1 H(s). Do các bản
sao của dữ liệu ở cấp i đợc giả định là tồn tại ở các cấp lớn hơn i, xác suất
đạt đợc tại cấp i và nhỡ tại các cấp cao hơn (1 đến i 1) là:
35
h
i
= H(s
i
) H(s
i 1
) (1.1)
Trong đó h
i
là tần số truy nhập tại cấp i và chỉ thị số tơng đối các truy
nhập thành công tới cấp i. Tần số hỏng do nhỡ nội dung tại cấp i là:
f
i

= 1 h
i
1.2.1.2 Tối u hóa phân cấp bộ nhớ
Mục tiêu của kiến trúc phân cấp bộ nhớ n cấp là nhằm đạt đợc hiệu
năng gần bằng hiệu năng của bộ nhớ nhanh nhất (cấp 1) và giá thành trên
mỗi bit nhớ gần bằng giá thành của bộ nhớ rẻ nhất (cấp n). Hiệu năng của
bộ nhớ có thể đợc chỉ thị bởi thời gian truy nhập phân cấp hiệu dụng trên
mỗi tham chiếu bộ nhớ. Tuy nhiên, cần chú ý rằng hiệu năng phụ thuộc vào
nhiều hệ số liên quan lẫn nhau, gồm cách xử lý của chơng trình với các
tham chiếu bộ nhớ, thời gian truy nhập và kích thớc bộ nhớ của mỗi cấp, độ
chia nhỏ của việc truyền dữ liệu (kích thớc khối) và phơng pháp kiểm soát
điều hành. Một hệ số quan trọng khác cũng ảnh hởng đến thời gian truy
nhập hiệu dụng là việc thiết kế mạng liên kết bộ xử lý bộ nhớ.
Tơng quan giữa các hệ số này có thể đợc sử dụng để đa ra một tiêu
chuẩn cho việc tối u hóa hiệu năng của phân cấp bộ nhớ. Một tham số xác
định hiệu năng là thời gian truy nhập bộ nhớ hiệu dụng. Tham số khác là
hiệu suất sử dụng bộ xử lý. Thời gian truy nhập hiệu dụng T
i
từ bộ xử lý tới
cấp i trong phân cấp bộ nhớ bằng tổng các thời gian truy nhập trung bình
riêng lẻ của mỗi cấp từ k = 1 đến i:
1
i
i k
k
T t
=
=

(1.2)

Tổng quát, t
k
gồm thời gian chờ do các xung đột bộ nhớ tại cấp k và
độ trễ trong mạng chuyển mạch giữa các cấp k 1 và k. Mức độ các xung
đột thờng là một hàm của số lợng bộ xử lý, số lợng module nhớ và mạng
liên kết giữa các bộ xử lý với các module nhớ. Trong hầu hết các hệ thống,
một yêu cầu tới một từ nhớ không nằm ở cấp i sẽ làm xuất hiện khối dữ liệu
chứa từ đợc yêu cầu đợc truyền từ cấp i+1 tới cấp i. Khi việc truyền khối dữ
liệu tới cấp 1 hoàn thành, từ yêu cầu đợc truy nhập tại bộ nhớ cục bộ
(cache).
Thời gian truy nhập trung bình đối với mỗi tham chiếu bộ nhớ trong
phân cấp bộ nhớ n cấp là:
1
n
i i
i
T hT
=
=

(1.3)
Thay h
i
và T
i
từ các biểu thức trên vào (1.3) ta có:
36
( ) ( )
1
1

n
n i i
i
T H s H s t

=
=


(1.4)
Giả thiết rằng có một bản sao của mọi dữ liệu yêu cầu tại cấp thấp
nhất (n), nên H(s
n
) = 1. Trong (1.4) ta định nghĩa H(s
0
) = 0, do đó F(s
0
) = 1.
Khi đó có thể viết lại (1.4) nh sau:
( )
1
1
1
n
i i
i
T H s t

=
=



Do
( ) ( )
1 1
1
i i
H s F s

=
, ta có:
( )
1
1
n
i i
i
T F s t

=
=


(1.5)
Nếu c(t
i
) là giá thành trên một byte của bộ nhớ tại cấp i, đợc biểu
diễn nh một hàm của thời gian truy nhập trung bình của nó, chi phí tổng
cộng của hệ thống bộ nhớ là:
( )

1
n
i i
i
C c t s
=
=

(1.6)
Vấn đề đặt ra trong thiết kế một phân cấp bộ nhớ điển hình là việc tối
u hóa để giảm đến thấp nhất thời gian truy nhập phân cấp hiệu dụng T với
chi phí hệ thống bộ nhớ cho trớc là C
0
và các ràng buộc về kích thớc. Tức là
tối thiểu hóa
( )
1
1
n
i i
i
T F s t

=
=


với điều kiện ràng buộc
( )
0

1
n
i i
i
C c t s C
=
=

,
trong đó s
i
> 0 và t
i
> 0 với i = 1, 2, , n. Trong thực tế, các ràng buộc về
chi phí bao gồm cả chi phí của mạng liên kết bộ xử lý bộ nhớ.
1.2.1.3 Các phơng pháp địa chỉ hóa cho bộ nhớ chính
Trong môi trờng xử lý song song, bộ nhớ chính là một tài nguyên hệ
thống quan trọng hàng đầu, thờng đợc chia sẻ cho tất cả các bộ xử lý hay
các khối độc lập trong bộ xử lý đờng ống. Hệ thống bộ nhớ phải đợc tổ
chức hợp lý để loại trừ sự suy giảm trầm trọng hiệu năng hệ thống do xung
đột bộ nhớ gây ra bởi hai hay nhiều bộ xử lý cùng cố gắng truy nhập tới
cùng các module trong hệ thống bộ nhớ. Điều này sẽ gây khó khăn cho việc
có một khối bộ nhớ vững chắc chia sẻ giữa một vài bộ xử lý, vì xung đột bộ
nhớ nghiêm trọng. Do vậy, bộ nhớ chính đợc chia thành vài module nhớ độc
lập và các địa chỉ đợc phân phối qua các module này. Phơng pháp này, đợc
gọi là đan xen (Interleaving), giải quyết xung đột bằng cách cho phép các
truy nhập đồng thời tới nhiều hơn một module. Việc đan xen các địa chỉ
giữa M module đợc gọi là đan xen M đờng.
37
Có hai phơng pháp phân chia các địa chỉ giữa các module nhớ. Giả

thiết rằng có tổng cộng N = 2
n
từ trong bộ nhớ chính. Khi đó địa chỉ vật lý
cho mỗi từ trong bộ nhớ gồm n bit a
n
1
a
n
2
a
1
a
0
. Một phơng pháp, gọi
là đan xen bậc cao, phân chia địa chỉ trong M = 2
m
module sao cho mỗi
module i, với
0 1i M

, chứa các địa chỉ liên tiếp
.2
n m
i

đến
( )
1 .2 1
n m
i


+
.
Trong đó m bit cao đợc sử dụng để chọn module còn n m bit thấp đợc sử
dụng để chọn địa chỉ bên trong module (hình 1.5).
Hình 1.5. Hệ thống bộ nhớ song song với các từ kế tiếp
trong một module (Đan xen bậc cao)
38
Hình 1.6. Hệ thống bộ nhớ song song với các từ kế tiếp trong
các module kế tiếp (Đan xen bậc thấp)
Phơng pháp thứ hai, đan xen bậc thấp, phân chia địa chỉ sao cho các
địa chỉ kế tiếp đợc đặt trong các module kế tiếp. Trong đó m bit thấp của địa
chỉ đợc sử dụng để chọn module, trong khi n m bit cao chọn địa chỉ bên
trong module, nh mô tả trong hình 1.6. Nh vậy, một địa chỉ A đợc đặt tại
module A mod M.
Hai phơng pháp trên thể hiện hai hớng giải quyết hoàn toàn khác
nhau trong lựa chọn việc giải mã địa chỉ. Phơng pháp thứ nhất cho phép mở
rộng bộ nhớ dễ dàng bằng cách thêm một hay nhiều module nhớ nếu cần
thiết với giá trị tối đa là M 1 module. Tuy nhiên, việc đặt các địa chỉ bộ
nhớ liên tục trong một module có thể gây ra các xung đột bộ nhớ đáng kể
trong các bộ xử lý kiểu đờng ống, vectơ hay kiểu mảng (SIMD). Tính liên
tục của các lệnh trong chơng trình và tính liên tục của dữ liệu trong các bộ
xử lý vectơ tạo ra các lệnh hay dữ liệu liên tiếp nhau trong cùng một
module. Do thời gian chu kỳ bộ nhớ lớn hơn nhiều thời gian clock của
pipeline, một yêu cầu bộ nhớ trớc đó cha hoàn thành việc truy nhập của nó
trớc khi một yêu cầu tiếp theo đến, vì vậy gây ra trễ.
Trong các bộ xử lý mảng, nếu các phần tử dữ liệu của một vectơ nằm
ở cùng một module, sự song song hóa trong tính toán sẽ không có ý nghĩa
bởi vì mọi bộ xử lý không thể nhận đồng thời các phần tử dữ liệu theo kiểu
kế tiếp sát nhau nh vậy. Đan xen bậc cao có thể đợc sử dụng mà không gây

xung đột trong các bộ đa xử lý nếu các module đợc chia theo các quá trình
39
rời nhau hay không tơng tác nhau. Tuy nhiên, trong thực tế các quá trình lại
tơng tác với nhau và chia sẻ các lệnh, dữ liệu trong các hệ thống đa xử lý và
vì thế sẽ gặp phải các xung đột đáng kể trong một phân hệ bộ nhớ đan xen
bậc cao. Do các nguyên nhân trên, đan xen bậc thấp đợc sử dụng thờng
xuyên để giảm xung đột bộ nhớ.
Một u diểm của đan xen bậc cao là có độ tin cậy hệ thống cao, do
một module lỗi chỉ ảnh hởng đến một vùng cục bộ của không gian nhớ, do
vậy gây suy giảm không trầm trọng đối với hiệu năng hệ thống. Module lỗi
có thể đợc cách ly về mặt logic với hệ thống và bộ giám sát bộ nhớ có thể
đợc chỉ thị sao cho không có không gian địa chỉ xử lý nào đợc ánh xạ tới
module lỗi. Ngợc lại, trong phơng pháp thứ hai, một lỗi ở một module đơn
bất kỳ sẽ ảnh hởng trầm trọng đến toàn hệ thống. Tuy nhiên, phơng pháp
thứ hai này dờng nh tốt hơn nếu vấn đề xung đột bộ nhớ là cơ sở của việc
lựa chọn.
Kỹ thuật đan xen dung hòa cả hai phơng án trên thực hiện phân chia
trờng địa chỉ module thành hai phần S
m r
và S
r
sao cho phần S
r
là r bit thấp
nhất của địa chỉ bộ nhớ và phần S
m r
là m r bit bậc cao hơn của địa chỉ.
Chú ý rằng địa chỉ module đợc tạo thành bằng sự liên kết của S
m r
và S

r
.
Trong phơng pháp này, các địa chỉ đợc đan xen trong các nhóm chứa 2
r
module nhớ. Mục đích của việc này là nhằm giảm xung đột bộ nhớ tới một
đoạn của dữ liệu chia sẻ. Hệ thống bộ nhớ có thể mở rộng trong các khối 2
r
module nhớ. Tuy nhiên, một module nhớ lỗi sẽ vô hiệu hóa toàn bộ khối 2
r
module nhớ. Phơng pháp này phù hợp cho các hệ thống có số lợng lớn các
module nhớ nếu r đợc chọn rất nhỏ.
1.2.2 Các phơng pháp tổ chức bộ nhớ đan xen (Interleaved)
Các bộ xử lý vectơ hay pipeline đòi hỏi việc truy nhập chính xác, có
hiệu quả tới các mảng tuyến tính hoặc tới từng lệnh tuần tự. Vì vậy, bộ nhớ
phải đợc thiết kế sao cho tránh đợc các xung đột khi truy nhập. Thuộc tính
cơ bản để xác định hiệu năng của một cấu hình bộ nhớ là băng thông bộ
nhớ, đợc xác định bởi số lợng trung bình các từ đợc truy nhập trong một
giây. Các nhân tố cơ bản ảnh hởng tới băng thông bộ nhớ là cấu trúc bộ xử
lý, cấu hình bộ nhớ và đặc điểm của các module nhớ. Cấu hình bộ nhớ đợc
xác định qua số lợng module nhớ, cấu trúc địa chỉ và độ rộng bus. Các đặc
điểm của module nhớ bao gồm: kích thớc module nhớ, thời gian truy nhập
và chu kỳ clock. Sau đây ta xem xét các phơng pháp tổ chức bộ nhớ đan
40
xen cơ bản với mục đích là giải quyết vấn đề xung đột bộ nhớ và nâng cao
hiệu năng hệ thống.
1.2.2.1 Phơng pháp tổ chức bộ nhớ S access
Phơng pháp này (hình 1.7) áp dụng kiểu định địa chỉ đan xen bậc
thấp bằng cách đa ra n m bit cao của địa chỉ cùng lúc tới toàn bộ M = 2
m
module nhớ trong một truy nhập. Mỗi truy nhập đơn đa ra M từ dữ liệu liên

tiếp từ M module nhớ. Việc sử dụng m bit địa chỉ bậc thấp cho phép truy
nhập tới dữ liệu từ một module nhớ cụ thể. Phơng pháp này đợc gọi là S
access vì tất cả các module đợc truy nhập đồng thời (Simultaneous). Mỗi
module có một chốt dữ liệu. Đối với một thao tác nhận dữ liệu, dữ liệu từ
mỗi module đợc đa qua chốt, và bộ dồn kênh (multiplexer) đợc sử dụng để
định hớng dữ liệu mong muốn tới bus các từ dữ liệu đơn.
Hình 1.7. Cấu hình bộ nhớ S access
Hình 1.8 thể hiện giản đồ thời gian cho các truy nhập đọc nhiều từ
mẫu sử dụng cấu hình S access. Với thời gian truy nhập bộ nhớ T
a

thời gian trễ chốt , thời gian để truy nhập tới một từ dữ liệu đơn là T
a
+ .
Tuy nhiên, tổng thời gian truy nhập k từ kế tiếp, bắt đầu tại module i, là T
a
+ k. nếu i + k M, và trong trờng hợp ngợc lại là 2 T
a
+ (i + k M ).
Trong cả hai trờng hợp thì 1 k M. Để truy nhập hiệu quả các vectơ dài,
điều kiện là: M T
a
; nếu không sẽ xảy ra tràn dữ liệu. Cấu hình S
access rất phù hợp cho truy nhập một vectơ dữ liệu hay nhận trớc các lệnh
41
tuần tự cho một bộ xử lý pipeline. Nó còn có thể đợc sử dụng cho truy nhập
một khối dữ liệu cho một bộ xử lý pipeline với một bộ nhớ cache.
Hình 1.8. Giản đồ thời gian đối với cấu hình S access
Khi có các yêu cầu tới các từ định địa chỉ không liên tiếp, hiệu năng
của hệ thống bộ nhớ bị giảm đi nhanh chóng. Để đa ra giải pháp khắc phục

cục bộ cho các truy nhập không liên tiếp, một sự thực thi đồng thời đợc đa
ra trong cấu hình này bằng cách đa thêm một bộ chốt địa chỉ cho mỗi
module nhớ sao cho chu kỳ địa chỉ hiệu dụng (thời gian giữ) t
a
nhỏ hơn
nhiều so với thời gian chu kỳ bộ nhớ t
c
. Vì địa chỉ này thờng đợc giữ trên
bus địa chỉ ít nhất miễn là dữ liệu đợc giữ trên bus dữ liệu, các bus dữ liệu
không đa ra một ràng buộc giới hạn nào với hiệu năng. Bằng cách đa ra
chốt địa chỉ, nhóm M module có thể đợc dồn lại trên một bus địa chỉ bộ nhớ
trong, đợc gọi là một băng nhớ hay một tuyến nhớ.
1.2.2.2 Phơng pháp tổ chức bộ nhớ C access
Khi một thao tác bộ nhớ đợc khởi tạo trong một module, nó làm cho
băng nhớ đợc kích hoạt trong t
a
giây và module đợc kích hoạt trong t
c
giây.
Nếu t
a
rất nhỏ so với t
c
, module đợc khởi tạo này sử dụng băng nhớ trong
khoảng thời gian nhỏ hơn nhiều so với một chu kỳ bộ nhớ trong mỗi lần
truy nhập. Vì vậy để tăng hiệu quả việc sử dụng băng nhớ và giảm giá thành
băng nhớ thì nhiều module nhớ có thể chia sẻ một băng nhớ. Cấu hình này
đợc gọi là C access (hình 1.8) vì các module nhớ đợc truy nhập cùng
một lúc (Concurrent).
42

Hình 1.9. Cấu hình bộ nhớ C access
Hình 1.10. Giản đồ thời gian đối với cấu hình C access
Cấu hình này cũng sử dụng phơng pháp định địa chỉ kiểu đan xen bậc
thấp. Theo đó, m bit thấp đợc sử dụng để chọn module còn n m bit cao
định địa chỉ phần tử bên trong module. Bộ điều khiển bộ nhớ đợc sử dụng
để đệm một yêu cầu cả những tham chiếu tới một module bận và khởi tạo
phục vụ khi module hoàn thành chu kỳ hiện thời. Hình 1.10 chỉ ra một giản
đồ thời gian ví dụ trong đó K từ kế tiếp đợc nhận trong T
a
+ k., với giả thiết
rằng chu kỳ địa chỉ là t
a
= = T
a
/M.
1.2.2.3 Phơng pháp truy nhập C/S access
43
Đây là cấu hình kết hợp giữa hai cấu hình S access và C access
ở trên. Các module đợc sắp xếp trong một mảng hai chiều. Trong cấu hình
này, nếu S access đợc đan xen M đờng và C access đợc đan xen L đ-
ờng thì có thể có tới L truy nhập khác nhau đến các khối M từ lu giữ đợc
thực hiện đồng thời. Phơng pháp này hiệu quả đối với nhiều bộ xử lý
pipeline.
Nh vậy, ta đã nghiên cứu hai phơng pháp tổ chức bộ nhớ cơ bản cho
các hệ vi xử lý song song. Tùy theo kiến trúc cụ thể của hệ vi xử lý mà ta
lựa chọn phơng pháp tổ hức bộ nhớ phù hợp. Phần sau của đồ án sẽ trình
bày một số mô hình cụ thể của hệ vi xử lý song song, ở đó có áp dụng các
phơng pháp tổ chức bộ nhớ trên.
1.3 Các mô hình hệ vi xử lý song song
ở những thập niên trớc, sự thâm nhập nhanh của máy tính vào các

lĩnh vực khác nhau đã tạo ra việc chuẩn hóa trên mô hình máy tính đơn Von
Neumann. Một máy tính Von Neumann gồm một bộ phận xử lý trung tâm
(CPU) đợc kết nối tới một bộ phận lu trữ (bộ nhớ). CPU thực hiện một ch-
ơng trình đã đợc lu trữ, chơng trình này xác định thứ tự các thao tác đọc,
ghi tuần tự trên bộ nhớ gắn liền. Với hơn 40 năm chiếm lĩnh trên thị trờng,
mô hình đơn giản này tỏ ra có sức mạnh và các nhà lập trình thờng phải dựa
vào hệ thống này để tạo ra những chơng trình phục vụ cho các mục đích xử
lý khác nhau. Sự nghiên cứu của chúng ta về xử lý song song sẽ thoả đáng
nếu chúng ta có thể xác định đợc một mô hình máy song song hữu ích và
phổ biến giống nh mô hình máy tuần tự Von Neumann. Mô hình máy này
phải vừa đơn giản lại vừa thực tế: Đơn giản làm cho sự hiểu biết và việc lập
trình đơn giản hơn, và thực tế để bảo đảm rằng, những chơng trình phát
triển sẽ thực hiện hiệu quả trên những máy tính hiện có.
Hình 1.11. Mô hình hệ xử lý tuần tự kiểu Von Neumann
44
CPU
Bộ nhớ
1.3.1 Mô hình đa máy tính
Một mô hình máy song song gồm nhiều máy tính phục vụ cho các
yêu cầu. Nh minh họa ở hình 1.12 dới đây, mô hình đa máy tính gồm có
một số máy tính Von Neumann (hoặc những nút), đợc liên kết thông qua
mạng. Mỗi máy tính thực hiện chơng trình riêng của mình. Chơng trình này
có thể truy nhập bộ nhớ cục bộ và có thể gửi và nhận những thông báo
thông qua mạng. Những thông báo đợc sử dụng để giao tiếp với những máy
tính khác hoặc tơng đơng với việc đọc và ghi trên các bộ nhớ từ xa. Để tiến
tới một mạng lý tởng, thời gian của việc gửi một thông báo giữa hai node
không phụ thuộc vào vị trí giữa hai node và sự giao tiếp với các mạng khác,
mà chỉ phụ thuộc vào độ dài của thông báo. Trong hình vẽ 1.12, mỗi nút là
một máy tính Von Neuman (gồm một CPU và bộ nhớ). Một nút có thể giao
tiếp với những nút khác nhờ việc gửi và nhận những thông báo thông qua

mạng liên kết.
Trong mô hình đa máy tính, việc truy nhập vào bộ nhớ cục bộ rẻ hơn
là truy nhập tới bộ nhớ từ xa (của các nút khác). Có nghĩa là việc đọc và ghi
trên bộ nhớ cục bộ ít tốn kém hơn việc gửi và nhận. Nh vậy trong mô hình
song song đa máy tính ta phải làm sao để hạn chế việc giao tiếp trên mạng,
đó đợc gọi là tính địa phơng. Đây là yêu cầu cơ bản thứ ba cho các phần
mềm song song, ngoài tính song song và tính biến đổi đợc. Tỷ lệ giữa giá
thành truy cập bộ nhớ từ xa và cục bộ thể hiện sự quan trọng của tính địa
phơng. Tỷ lệ này có thể thay đổi từ 10:1 tới 1000:1 hoặc lớn hơn, phụ thuộc
vào sự thực hiện tính địa phơng, mạng, và những kỹ thuật đợc sử dụng để
truyền dữ liệu trên mạng.
1.3.2 Các mô hình hệ vi xử lý song song khác
45
Bộ nhớ
Mạng liên kết
CPU
Hình 1.12. Mô hình đa máy tính
Mỗi mô hình hệ vi xử lý song song thể hiện một phơng án tổ chức hệ
xử lý song song cụ thể nhằm đạt đợc hiệu quả xử lý cao nhất. Ngoài mô
hình đa máy tính, các mô hình khác đối với hệ vi xử lý song song đã đợc
nghiên cứu phát triển (hình 1.13). ở đây ta xem xét ba mô hình điển hình
ngoài mô hình đa máy tính. Trong hình vẽ n y, kí hiệu P biểu thị một bộ xử
lý độc lập. Đầu tiên, trong hình 1.13a, là một máy tính kiểu MIMD có bộ
nhớ phân tán đợc liên kết với nhau nh một mạng lới (mesh). Trong đó mỗi
bộ xử lý có bộ nhớ phân tán riêng. Hình 1.13b là mô hình bộ đa xử lý với
bộ nhớ chia sẻ. Trong đó, các bộ xử lý truy nhập tới bộ nhớ chung, thông
qua một bus. Để nâng cao hiệu quả và giảm thời gian truy nhập bộ nhớ, các
bộ nhớ cache cho mỗi bộ xử lý đợc thiết kế để lu trữ các dữ liệu thờng
xuyên đợc sử dụng. Và thứ ba là mô hình đa xử lý với các bộ xử lý đợc liên
kết qua một mạng cục bộ, ở đây là mạng Ethernet (hình 1.13c).

(a)
(b)
(c)
46
Hình 1.13. Các mô hình hệ vi xử lý song song khác
Sau đây ta sẽ đánh giá khái quát về các mô hình hệ vi xử lý song
song đã đề cập ở trên và xu hớng phát triển của các mô hình hệ vi xử lý
song song hiện đại.
Mô hình đa máy tính cũng tơng tự nh mô hình MIMD có bộ nhớ
phân tán. Bộ nhớ phân tán có nghĩa là bộ nhớ đợc phân tán giữa những bộ
xử lý, hơn là đợc đặt ở một vị trí trung tâm. Sự khác nhau cơ bản giữa đa
máy tính và hệ vi xử lý MIMD có bộ nhớ phân tán là: trong mô hình MIMD
thời gian của việc gửi và nhận thông báo giữa hai nút có thể phụ thuộc vào
vị trí của hai nút (vì các nút chỉ truyền dữ liệu tới các nút kề nó). Các ví dụ
về lớp hệ vi xử lý này là: IBM SP, Paragon Intel, Cray T3D và nCUBE.
Lớp quan trọng khác của các hệ vi xử lý song song là mô hình đa xử
lý (multiprocessor), hay mô hình MIMD có bộ nhớ dùng chung. Trong
multiprocessor, tất cả các bộ xử lý truy nhập tới một bộ nhớ chung, thông
qua một bus hoặc các bus có sự phân cấp. Trong mô hình máy truy nhập
ngẫu nhiên song song (PRAM), thờng đợc sử dụng trong nghiên cứu lý
thuyết các giải thuật song song, bất kỳ bộ xử lý nào cũng có thể truy nhập
bất kỳ phần tử bộ nhớ nào ở cùng thời điểm. Trong thực tế, việc giải quyết
kiến trúc này thờng đa ra một số định dạng về phân cấp bộ nhớ, đặc biệt là
tần suất trong bộ nhớ dùng chung đợc truy cập sẽ đợc giảm đi bằng cách lu
trữ những bản sao của những đối tợng dữ liệu có tần suất cao vào bộ nhớ
cache trong mỗi bộ xử lý. Việc truy cập đến bộ nhớ cache sẽ nhanh hơn
nhiều so với việc truy cập đến bộ nhớ dùng chung, vì thế tính cục bộ là rất
quan trọng và sự khác nhau giữa đa máy tính và đa xử lý thực sự là vấn đề
cần xem xét. Các chơng trình đợc phát triển trên đa máy tính cũng có thể
thực hiện hiệu quả hơn trên hệ đa xử lý, bởi vì bộ nhớ dùng chung cho phép

một sự thực hiện truyền thông báo hiệu quả. Các ví dụ của lớp hệ vi xử lý
này nh: Graphics Challenge, Sequent Symmetry.
Một lớp đặc biệt hơn của hệ vi xử lý song song là mô hình SIMD.
Trong mô hình SIMD, tất cả các bộ xử lý cùng thực hiện các chỉ thị giống
nhau trên các phần khác nhau của dữ liệu. Mô hình này có thể giảm bớt độ
phức tạp của cả phần cứng lẫn phần mềm nhng chỉ thích hợp chỉ cho những
hệ vi xử lý chuyên dụng, chẳng hạn nh xử lý ảnh và mô phỏng số.
Hai lớp hệ thống máy tính đôi khi đợc sử dụng nh các hệ vi xử lý
song song là những máy tính có cấu trúc vật lý tơng tự nhau đợc liên kết bởi
47
một mạng cục bộ (LAN) nhanh hay một mạng diện rộng (WAN). Các hệ
thống này có những u điểm nh độ tin cậy và sự an toàn, nhng giá thành truy
nhập từ xa lại cao.
Nh vậy, xu hớng phát triển hiện nay của kiến trúc hệ vi xử lý song
song là các kiến trúc SIMD và MIMD. Trong thiết kế các hệ siêu máy tính
đa năng, kiến trúc MIMD thờng đợc sử dụng để xây dựng các hệ đa xử lý
với cấu hình mạnh cho nhiều lớp bài toán ứng dụng đa dạng. Tuy nhiên, các
hệ siêu máy tính kiểu này có giá thành cao và sẽ rất lãng phí khi sử dụng
trong các ứng dụng chuyên dụng với lớp bài toán hẹp hơn. Vì thế, đối với
các hệ vi xử lý song song chuyên dụng, kiến trúc SIMD là phù hợp và hiệu
quả, cho phép xây dựng các hệ vi xử lý có tốc độ xử lý cao với cấu trúc đơn
giản và giá thành hợp lý.
Ngày nay, với sự phát triển của khoa học kỹ thuật, các yêu cầu về hệ
vi xử lý chuyên dụng ngày càng cấp thiết. Đối với một số ứng dụng nh xử lý
cấp một trong các hệ thống quan sát, các hệ thống đo lờng, điều khiển vệ
tinh thì số lợng phép tính phải thực hiện đồng thời là cực lớn. Vì vậy, hệ vi
xử lý chuyên dụng phải có khả năng tính toán cực mạnh với lớp bài toán
hẹp. Khi đó, một phơng án hợp lý là xây dựng hệ đa xử lý gồm các bộ xử lý
song song đợc kết hợp với nhau thành một mạng cùng với việc phân phối
hợp lý tài nguyên bộ nhớ. Bộ xử lý kiểu Neural-Matrix NM6403 (sẽ đợc

nghiên cứu chi tiết trong chơng hai) có kiến trúc phù hợp và hiệu quả cho
các hệ vi xử lý kiểu này. Sau đây là một số kiến trúc hệ vi xử lý song song
chuyên dụng đợc xây dựng trên cơ sở các bộ xử lý NM6403.
1.3.3 Các mô hình hệ vi xử lý song song chuyên dụng trên cơ sở bộ xử
lý NM6403
Các bộ xử lý NM6403 có thể đợc liên kết với nhau bằng các cổng
truyền thông để tạo thành hệ vi xử lý song song chuyên dụng kiểu đa xử lý.
Mỗi bộ xử lý NM6403 đều có giao tiếp với bộ nhớ ngoài (hình 1.14). Đầu
tiên là mô hình kiến trúc hệ vi xử lý kiểu mạng song hớng một chiều, trong
đó các bộ xử lý NM6403 đợc liên kết với nhau theo kiểu băng truyền ngang
cho phép chúng trao đổi dữ liệu trực tiếp với nhau theo hai hớng trong
không gian một chiều (hình 1.14a).
48
H×nh 1.14. C¸c kiÕn tróc hÖ vi xö lý song song chuyªn dông
trªn c¬ së bé xö lý NM6403
a. KiÕn tróc liªn kÕt mét chiÒu song híng
b. KiÕn tróc líi hai chiÒu
c. KiÕn tróc vßng song híng
49
Mô hình này có thể ứng dụng trong các thao tác tính toán ma trận,
xây dựng hệ vi xử lý mạng Neural kiểu lan truyền thẳng hay các hệ vi xử lý
kiểu đờng ống (Pipeline) tuyến tính, trong đó, mỗi bộ xử lý NM6403 đóng
vai trò một tầng trong hệ vi xử lý pipeline này. Nhiệm vụ toàn thể của hệ vi
xử lý đợc chia thành các nhiệm vụ con độc lập với nhau và mỗi nhiệm vụ
con này do một bộ xử lý NM6403 tơng ứng đảm nhiệm.
Mô hình thứ hai (hình 1.14b) là kiểu kiến trúc lới hai chiều (trong
mặt phẳng). Kiến trúc này đợc ứng dụng trong các tính toán ma trận, xây
dựng các mạng Neural lan truyền thẳng và thiết kế các hệ vi xử lý dạng
pipeline cận tuyến tính, trong đó quá trình thực hiện các nhiệm vụ con của
các pipeline không hoàn toàn độc lập nhau mà có sự liên hệ yếu. Và thứ ba

là mô hình kiến trúc dạng mạch vòng song hớng (hình 1.14c). Mô hình này
cho phép xây dựng các kiểu mạng Neural khác nhau nh kiểu đa lớp và kiểu
lan truyền hồi tiếp, hay trong các hệ thống tự động điều chỉnh dạng kín để
đảm bảo sự ổn định của hệ thống.
Ngoài ra, các hệ vi xử lý song song chuyên dụng tốc độ cao có thể đ-
ợc xây dựng trên cơ sở bộ xử lý NM6403 kết hợp với các bộ xử lý tín hiệu
số TMS320C40, trong đó TMS320C40 đóng vai trò nh các nút chuyển
mạch. Các kiến trúc này cho phép nâng cao mạnh mẽ hiệu năng của hệ
thống, đặc biệt trong các ứng dụng chuyên biệt yêu cầu tốc độ tính toán cực
nhanh với độ chính xác cao. Hình 1.15 đa ra hai mô hình kiến trúc theo
nguyên tắc này. Đầu tiên là kiến trúc kiểu cây (hình 1.15a), trong đó các bộ
xử lý tín hiệu số TMS320C40 đóng vai trò các nút giao tiếp trung gian tại
các cấp của cây. Kiến trúc này có thể đợc ứng dụng trong các hệ thống xử
lý nhận dạng. Trong các hệ thống này, số phép tính phải thực hiện là cực
lớn. Vì vậy, để nâng cao tốc độ và sức mạnh tính toán, mô hình kiến trúc hệ
vi xử lý toán theo không gian ba chiều đợc đa ra: kiến trúc kiểu lới ba chiều
(hình 1.15b). ở đây, mỗi khối lập phơng biểu diễn một tập hợp gồm bộ xử
lý TMS320C40 và hai bộ xử lý NM6403 có các giao tiếp theo không gian
ba chiều với các tập hợp tơng ứng khác. Kiến trúc này cũng cho phép xây
dựng các hệ thống tính toán chuyên dụng tốc độ cao theo kiến trúc mạng
Neural trên cơ sở các bộ xử lý NM6403 kết hợp với các bộ xử lý tín hiệu số
nh TMS320C40.
50
a. Kiến trúc kiểu cây
b. Kiến trúc kiểu lới ba chiều
Việc sử dụng bộ xử lý NM6403 trong xây dựng các kiến trúc hệ vi xử
lý chuyên dụng phải đợc kết hợp với việc tổ chức các bộ nhớ một cách thích
hợp để đạt hiệu năng hệ thống cao nhất. Hình 1.16 chỉ ra các phơng án tổ
chức bộ nhớ khác nhau cho các hệ thống này.
51

Hình 1.15. Các kiến trúc hệ vi xử lý song song chuyên dụng trên cơ sở
bộ xử lý NM6403 và bộ xử lý tín hiệu số TMS320C40
a. Kiến trúc với bộ nhớ chung
b. Kiến trúc với bộ nhớ phân bố
c. Kiến trúc kiểu hỗn hợp
Hình 1.16. Các phơng pháp tổ chức bộ nhớ trong hệ thống tính toán
trên cơ sở bộ xử lý NM6403
Với kiến trúc sử dụng bộ nhớ chung (hình 1.16a), một bộ nhớ toàn
cục đợc sử dụng cho tất cả các bộ xử lý NM6403. Khi đó mọi bộ xử lý đều
có thể truy nhập tới bộ nhớ toàn cục. Kiến trúc này phù hợp với hệ thống có
số lợng bộ xử lý NM6403 nhỏ. Khi số lợng bộ xử lý NM6403 lớn hay khi l-
ợng truy nhập tới bộ nhớ toàn cục lớn thì hiệu năng hệ thống bị giảm sút.
Khi đó, việc sử dụng kiến trúc bộ nhớ phân bố là phù hợp hơn (hình 1.16b).
Trong kiến trúc với bộ nhớ phân bố, mỗi bộ nhớ có bộ nhớ cục bộ
của riêng mình. Khi đó việc truy nhập sẽ nhanh hơn so với việc truy nhập
bộ nhớ toàn cục. Tuy nhiên, với kiểu tổ chức nh vậy thì rõ ràng chi phí cho
52
hệ thống sẽ tăng lên vì nh đã trình bày ở mục 1.2.1 thì bộ nhớ bộ nhớ cục
bộ (cấp 1) luôn có chi phí cao hơn bộ nhớ toàn cục (cấp 2). Vì vậy, một
kiến trúc hỗn hợp đợc đa ra để dung hòa hai yếu tố giá thành và thời gian
truy nhập bộ nhớ. Trong đó, mỗi bộ xử lý NM6403 có bộ nhớ cục bộ riêng
nhng đều có thể truy nhập đến bộ nhớ toàn cục (hình 1.16c).
Nh vậy, chơng 1 đã trình bày lý thuyết tổng quan về xử lý song song,
đa ra một số mô hình hệ vi xử lý song song cơ bản và các mô hình hệ
vi xử lý song song chuyên dụng trên cơ sở bộ xử lý NM6403 và bộ xử
lý tín hiệu số TMS320C40. Các kiến trúc hệ vi xử lý song song khác
nhau đợc xây dựng nhằm nâng cao hiệu năng và tốc độ của hệ vi xử lý
so với hệ vi xử lý đơn. Các hệ vi xử lý kiểu pipeline vô hớng có tốc độ
và hiệu năng cao hơn đáng kể so với các hệ vi xử lý đơn. Tuy nhiên,
tốc độ của hệ vi xử lý sẽ đợc nâng cao mạnh mẽ khi nó đợc cấu trúc

theo một giải pháp mới: hệ vi xử lý vectơ.
Hiệu năng của một hệ vi xử lý song song phụ thuộc vào nhiều yếu tố
khác nhau, trớc hết là số lợng CPU đợc sử dụng trong hệ vi xử lý song song,
với điều kiện là chúng đã đợc tối u hóa về thiết kế đối với một hệ thống cụ
thể, bởi vì không phải lúc nào hiệu năng của hệ vi xử lý cũng tỉ lệ với số
CPU đợc sử dụng. Một yếu tố quan trọng là cách thức tổ chức bên trong của
hệ vi xử lý, để đảm bảo hiệu năng cao nhất. Đó là cơ cấu tổ chức các thành
phần bên trong, cơ cấu lu trữ và phơng thức truy nhập dữ liệu trong hệ vi xử
lý. Và một yếu tố ảnh hởng rất lớn đến hiệu năng hệ thống là cách thức tổ
chức dữ liệu và tổ chức không gian nhớ trong hệ vi xử lý.
Khi dữ liệu đợc tổ chức dới dạng vectơ, do các phần tử của vectơ có
tính đồng nhất cao và đợc sắp xếp theo một trật tự thống nhất nên việc quản
lý dữ liệu vectơ trở nên đơn giản hơn. Khi đó, thay cho việc quản lý tới từng
đơn vị dữ liệu đối với dữ liệu vô hớng thì với dữ liệu vectơ ta chỉ phải quản
lý hai tham số của một vectơ là kích thớc vectơ và chỉ số của các phần tử dữ
liệu.
Ngày nay, bên cạnh việc xây dựng các hệ vi xử lý đa năng tốc độ cao,
khi các yêu cầu xử lý dữ liệu đối với các ứng dụng chuyên biệt ngày càng
lớn thì một xu hớng đang phát triển mạnh mẽ là xây dựng các hệ vi xử lý
chuyên dụng có khả năng tính toán cao với độ phức tạp vừa phải và giá
thành hợp lý. Với các ứng dụng chuyên biệt nh vậy thì lớp bài toán sẽ hẹp
hơn nên việc tổ chức dữ liệu kiểu vectơ và áp dụng phơng pháp xử lý vectơ
53
là hợp lý và hiệu quả. Ưu điểm của xử lý vectơ so với xử lý vô hớng khi dữ
liệu đợc tổ chức dạng vectơ là tốc độ xử lý đợc tăng lên một cách tối đa và
việc lập trình cho các hệ vi xử lý vectơ cũng đơn giản hơn nhờ giảm đợc
phần mào đầu phần mềm (overhead). Việc vectơ hóa các hệ vi xử lý cần đ-
ợc thực hiện cả về cấu trúc phần cứng và về tổ chức dữ liệu. Bởi vì, việc
vectơ hóa chỉ về phần cứng sẽ chẳng còn có ý nghĩa gì khi dữ liệu đợc xử lý
là dữ liệu vô hớng. Khi đó, hiệu năng của hệ vi xử lý vectơ sẽ bị giảm sút

trầm trọng. Ngoài ra, các hệ vi xử lý song song tốc độ cao còn có thể đợc
xây dựng bằng cách kết hợp một mạng các bộ xử lý song song, chẳng hạn
NM6403 nh đã đợc đề ở trên. Vì vậy, chơng 2 sẽ trình bày lý thuyết tổng
quan cơ bản nhất về xử lý vectơ và đi vào nghiên cứu một hệ vi xử lý vectơ
hiện đại dựa trên bộ xử lý NM6403, có khả năng tính toán mạnh mẽ, đặc
biệt là trong các thao tác xử lý tín hiệu số, mạng Neural và tính toán kiểu
vectơ ma trận. Đó là hệ vi xử lý vectơ MC431.
54

×