1
MỞ ĐẦU
I. ĐẶT VẤN ĐỀ
Kiến trúc đa xử lý và vi xử lý đa lõi là những giải pháp công nghệ hiện đại
đang được phát triển để nâng cao hiệu suất của các hệ thống máy tính. Kiến trúc đa
xử lý có thể cho phép kết nối đến hàng trăm nghìn chip vi xử lý đảm bảo xử lý song
song nhiều luồng lệnh, dữ liệu ở tốc độ cao, nhưng lại tiêu tốn nhiều điện năng và
công suất tỏa nhiệt rất lớn. Trong khi đó, nhu cầu dân dụng đòi hỏi tiêu thụ điện
năng thấp, hiệu năng xử lý của hệ thống máy tính phải cao, nhưng giá phải rẻ. Kiến
trúc vi xử lý đa lõi đáp ứng được nhu cầu này. Từ chip 2 lõi được Intel và AMD
tung ra thị trường năm 2001, cho đến nay Tirela sắp cho ra bản thương mại với 80
lõi được tích hợp trong cùng một CPU. Tuy nhiên, nếu sắp xếp các lõi theo kiểu
thông thường thì kích thước CPU sẽ rất lớn, rất cồng kềnh.
Do đó, nghiên cứu các kiến trúc kết nối của các vi xử lý đa lõi để giảm diện
tích, giảm độ dài dây dẫn là vấn đề được nhiều nhà thiết kế trên thế giới tiến hành.
Phân tích đánh gía hiệu năng của các kiến trúc vi xử lý đa lõi cũng là một vấn đề
cần thiết.
II. MỤC TIÊU NGHIÊN CỨU CỦA LUẬN VĂN:
Mục tiêu chính của luận văn là tìm hiểu, nghiên cứu về công nghệ vi xử lý đa
lõi cùng với các cấu trúc kết nối chip đa lõi khác nhau, tìm hiểu một số công cụ mô
phỏng và đánh giá hiệu năng hiện nay có thể áp dụng cho các kiến trúc vi xử lý đa
lõi.
III. NHIỆM VỤ CỦA LUẬN VĂN
Trình bày các kiến trúc phổ biến của vi xử lý đa lõi hiện nay, các phương pháp
đánh giá hiệu năng, dựa vào thực nghiệm, mô phỏng để đánh giá các phương pháp
và tìm ra phương án tối ưu để vi xử lý đa lõi đạt được hiệu năng cũng như mức tăng
tốc tốt nhất.
IV. BỐ CỤC CỦA LUẬN VĂN
Luận văn gồm bốn chương như sau:
Chương 1: Tổng quan về vi xử lý đa lõi
Chương 2: Tính toán song song & Luật Amdahl
Chương 3: Luật Amdahl cho vi xử lý đa lõi
Chương 4: Đánh giá ảnh hưởng của các mạng liên kết đến hiệu năng của chip
đa lõi
2
CHƯƠNG 1: CÔNG NGHỆ CHIP ĐA LÕI
1.1. KHÁI NIỆM CHIP ĐA LÕI
1.1.1. Thế nào là chip đa lõi
Chip đa lõi, hay chip đa nhân, CPU đa lõi (tiếng Anh: multi-core) là bộ vi
xử lý trung tâm (Central Processing Unit) có nhiều đơn vị vi xử lý được tích hợp
trên cùng một CPU vật lý duy nhất. Một cách khác, chúng giống như sự ghép nối
nhiều CPU thông thường trước đây trở thành một CPU duy nhất.
CPU đa lõi được giới thiệu lần đầu tiên vào năm 2001 bởi hãng IBM với loại
CPU Power4 dành riêng cho các máy chủ. Bắt đầu từ đó các hãng sản xuất CPU
khác bắt đầu chú ý đến thể loại CPU đa lõi và định hướng phát triển sản phẩm của
mình theo theo thể loại này. Hai nhà sản xuất CPU cho PC lớn là AMD và Intel
cũng có các phản ứng khác nhau: AMD đã bắt đầu có định hướng ngay cho CPU đa
lõi, Intel còn dè dặt trong giai đoạn đầu, nhưng cũng bắt đầu vào cuộc. Kể từ đó có
một sự cạnh tranh giữa hai hãng để chiếm lĩnh thị phần CPU máy tính trên phương
diện đa lõi, hiệu năng xử lý và giá bán, sự cạnh tranh này vẫn còn tồn tại cho đến
thời điểm hiện nay và chưa có dấu hiệu kết thúc
.
1.1.2. Cấu tạo vật lý của CPU đa lõi
Nếu như CPU chỉ có một cụm bộ xử lý bên trong lòng nó giống như các bộ
xử lý thông thường: Các bộ xử lý từ thế hệ đầu tiên cho đến thế hệ thứ 7 gần đây
(như Pentium 4 đơn nhân) được gọi là các CPU chỉ có một nhân - hay gọi cách khác
là một lõi (cách gọi theo thói quen, tuy nhiên từ lõi có thể gây nhầm lẫn với cấu trúc
core của Intel nên hạn chế dùng).
Những CPU hai nhân đầu tiên được Intel và AMD sản xuất khi đặt hai nhân
xử lý trong cùng một tấm đế. Có nghĩa trong một CPU nhìn bề ngoài như một CPU
thông thường nhưng bên trong nó chứa các phần mạch điện của cả hai CPU, điểm
chung của nó là các chân cắm tiếp xúc với socket của bo mạch chủ. Nếu như chỉ
3
nhìn hình dáng mà không nhìn vào các thông số trên vỏ CPU thì các loại CPU hai
nhân này không khác so với các CPU đơn nhân sử dụng cùng loại socket.
Nhiều người có thể thắc mắc: Bên trong một CPU liệu có còn khoảng không
gian trống nào không cho nhân thứ hai, thứ tư hoặc nhiều hơn nữa trong khi tấm đế
của CPU vẫn giữ nguyên diện tích như vậy. Thực tế thì kích thước các nhân hiện tại
của CPU đã rất nhỏ, phần đế của mỗi CPU có kích thước như hiện tại bởi chúng cần
có các vị trí để có thể kết nối với các socket. Thông thường thì các ký hiệu của
socket hiện nay có chứa ý nghĩa về số vị trí tiếp xúc giữa CPU và bo mạch chủ, nếu
như một CPU hiện tại của Intel sử dụng socket T (LGA775) hay như AMD sử dụng
socket 939 thì cũng có nghĩa rằng chúng có 775 hay 939 vị trí tiếp xúc. Với một số
lượng kết nối nhiều như vậy thì các CPU nếu thiết kế tấm đế quá nhỏ sẽ không thể
đáp ứng được sự kết nối giữa CPU với bo mạch chủ theo kiểu cắm để dễ dàng thay
thế (nếu không muốn hàn chắc vào bo mạch chủ).
1.1.3. Thế hệ CPU đa lõi thông dụng
1.1.3.1. Thế hệ đầu tiên
Hãng Intel đã giới thiệu những CPU hai nhân Pentium Extreme Edition và
Pentium D đầu tiên vào tháng 4 năm 2005 phát triển trên nền Pentium 4 Prescott.
Thực chất sự ra đời của những CPU hai nhân đầu tiên này của Intel đã mong muốn
giới thiệu ra thị trường càng nhanh càng tốt nên các CPU hai nhân đầu tiên:
Pentium D, Pentium Extreme Edition (thường gọi tắt là Pentium EE) chứa trong
lòng nó hai nhân của Pentium 4 mã Prescot. Mỗi một nhân được giao tiếp với một
đường khác nhau với chipset cầu bắc trên bo mạch chủ. Chính vì vậy mà các chipset
của hãng Intel như i915, i925 hoặc các chipset của các hãng khác dành cho các CPU
Pentium 4 thông thường không thể sử dụng cho CPU hai nhân Pentium D (hoặc
Pentium Extreme Edition). Các chipset dòng i945, i955X, i975X cho dòng máy tính
cá nhân để bàn và E7230 cho dòng máy trạm là những chipset đầu tiên hỗ trợ cho
những CPU hai nhân này.
4
Với những CPU có số hiệu 830 và 840 còn bao gồm công nghệ mới của Intel
là: “EISS” (Enhanced Intel Speed Step), chúng có thể tự động thay đổi tốc độ làm
việc của CPU theo nhu cầu xử lý của hệ thống để giảm công suất tiêu thụ.
Phiên bản Pentium Extreme Edition 840 có tính năng giống như Pentium D,
nhưng có một số khác biệt thêm như sau:
•
Hỗ trợ công nghệ Siêu phân luồng (HT Technology). Như vậy với mỗi
nhân bên trong sẽ trở thành 2 nhân ảo (hệ điều hành sẽ nhận biết và sử
dụng như có 4 nhân đồng thời).
•
Không hỗ trợ công nghệ EISS.
•
Cho phép thay đổi hệ số nhân của CPU, điều này giúp các người sử dụng
hiểu biết dễ dàng ép xung với CPU mà không phải thay đổi bus hệ thống.
Đây là cách lý giải tại sao Pentium EE lại không hỗ trợ công nghệ EISS
bởi công nghệ này mâu thuẫn với các hành động ép xung khi chúng tự
động giảm hệ số nhân để giảm tốc độ làm việc của hệ thống khi nhu cầu
xử lý thấp.
So sánh công nghệ
Mặc dù AMD không phải là hãng đầu tiên giới thiệu CPU hai nhân, nhưng
cấu trúc của CPU hai nhân của AMD đã có nhiều tiến bộ hơn so với các CPU hai
nhân ban đầu của Intel (Pentium D). Cấu tạo bên trong của AMD cho phép các nhân
có thể trực tiếp liên kết với nhau mà không phải thông qua chipset cầu bắc. Để hạn
chế nhược điểm này, Intel đã tăng FSB để gia tăng băng thông giữa CPU và chipset
cầu bắc.
Tuy nhiên trong giai đoạn này thiết kế CPU đa lõi của AMD vẫn ưu thế hơn
Intel ở các điểm sau:
• Khác với sự thay đổi cấu trúc của Intel trong CPU hai nhân khiến cho khi
nâng cấp hệ thống cần phải thay thế bo mạch chủ do các chipset cũ không
5
hỗ trợ CPU hai nhân mới. Hệ thống của AMD có thể tương thích với hệ
thống cũ, người sử dụng có thể cần nâng cấp BIOS để có thể tương thích
với CPU hai nhân mới. Socket 939 cho Athlon 64 và Socket 940 cho
Opteron vẫn giữ nguyên cho các CPU AMD hai nhân, cùng với các
chipset cũ vẫn hỗ trợ bởi sự giao tiếp với CPU không trở thành hai dòng
riêng biệt cho mỗi nhân. Đây là ưu điểm thứ nhất của CPU hai nhân
AMD thế hệ đầu với Intel.
• Khi thiết kế các CPU dòng Athlon 64/Opteron AMD đã có một sự chuẩn
bị sẵn cho các thiết kế đa lõi theo định hướng ban đầu của AMD, nên khi
các dòng CPU đa lõi ra đời chúng hoàn toàn thích ứng với các tính toán
về nhiệt độ của CPU. Sự tác động về nhiệt độ khi tăng thêm một nhân đã
ảnh hưởng không nhiều. Ví dụ đa số các CPU hai nhân Athlon 64 X2 của
AMD chạy với tần số 2,2 GHz tiêu thụ công suất 89 W cũng bằng với với
Athlon 64 đơn nhân hoạt động ở tần số 2,4 GHz. So sánh giữa một CPU
hai nhân nóng nhất của AMD khi hoạt động ở tốc độ 2,2 đến 2,4 GHz
tiêu thụ công suất 110 W với một CPU hai nhân của Intel như Pentium
Extreme Edition tiêu thụ công suất 130 W sẽ thấy một ưu điểm thứ hai
của CPU hai nhân hãng AMD so với Intel.
Mặc dù tốc độ xử lý thực của các CPU hai nhân AMD thường thấp hơn CPU
Intel, tuy nhiên một số kết quả kiểm tra, đánh giá hiệu năng bằng các phần mềm
chuyên dụng (phần mềm benchmark) cho thấy hiệu năng của các CPU hai nhân
hãng AMD cao hơn hiệu năng các CPU hai nhân của Intel ở những phiên bản đầu
tiên. Nhiều overclocker và người dùng thông thường từng sử dụng hai loại CPU của
các hãng này cũng có nhận xét tương tự.
6
1.1.3.2. Các thế hệ kế tiếp:
Core Duo và Core 2 Duo của Intel:
Core Duo là công nghệ tiếp theo của các CPU hai nhân đầu tiên (Pentium D,
Pentium EE) của Intel sử dụng vi cấu trúc core mang lại nhiều cải tiến hơn. CPU
Core Duo được sản xuất không được bao lâu thì Intel đã chuyển sang sản xuất dòng
Core 2 Duo với thêm các cải tiến mới mà được đánh giá là một bước ngoặt trong
ngành chế tạo bộ vi xử lý
.
Vi cấu trúc core có các cải tiến sau:
•
Mở rộng thực thi động (Wide Dynamic Execution): Đã được sử dụng ở
các CPU thế hệ thứ 6 (Pentium Pro, Pentium II, Pentium III ) được cải
tiến giúp tiên đoán nhanh và sâu, chính xác hơn.
•
Quản lý điện năng thông minh (Intelligent Power Capability) cho phép
tắt các hệ thống con trong CPU khi không sử dụng đến để tiết kiệm năng
lượng, tuy nhiên chúng có thể ngay lập tức được kích hoạt để hoạt động
trở lại khi có các yêu cầu về xử lý lớn và cần thiết đến chúng.
•
Mở rộng bộ nhớ đệm thông minh tiên tiến (Advanced Smart Cache) thay
vì mỗi nhân sử dụng một cache riêng biệt trong cấu trúc của Pentium D
thì nay Intel cải tiến để cả hai nhân đều có thể dụng chung cache L2.
•
Truy xuất bộ nhớ thông minh (Smart Memory Access)
•
Tăng tốc phương tiện số tiên tiến (Advanced Digital Media Boost) giúp
tăng tốc thực thi tập lệnh SEE (Streaming SIMD Extension), cho phép hỗ
trợ các phép toán 128 bit, tức là gấp đôi so với các CPU cũ cùng hãng.
Ngay sau khi ra đời thì Core 2 Duo của Intel đã đánh bại đối thủ cạnh tranh
truyền thống của mình là AMD. Cùng với lộ trình giảm giá các loại sản phẩm
Pentium D, Core Duo, Intel đã lấy lại uy tín và dành lại thị phần của mình sau loạt
sản phẩm CPU hai nhân thế hệ đầu yếu thế hơn so với các CPU hai nhân Althon 64
X2 của AMD.
7
1.1.3.3. CPU ba nhân:
Có thể có CPU ba nhân hay không ? Thực tế ngoài CPU đơn nhân các hãng
thường sản xuất loại đa lõi với số nhân là số chẵn, điều này dường như logic hơn
khi mà thiết đặt các nhân có tính chất đối xứng ở một tấm đế hình vuông.
CPU ba nhân đầu tiên trên thế giới này có mã hiệu Toliman, chúng không
phải là một thiết kế mới ba nhân trên một đế, mà là một CPU bốn nhân đã được cắt
bớt đi một nhân. Nó sẽ tích hợp một điều khiển DDR2, giao diện Hypertransport
3.0, mỗi nhân sử dụng một cache L2 riêng biệt với 512 KB dung lượng. CPU cache
L3 với dung lượng 2 MB.
1.1.3.4. CPU bốn nhân
Với sự phát triển rất nhanh của công nghệ, chỉ một thời gian ngắn, các hãng
sản xuất CPU đã cho ra đời loại bốn nhân dành cho cả dòng máy tính cá nhân để
bàn và các máy trạm, máy chủ. Tuy hiện nay các phần mềm hỗ trợ chưa nhiều, đa
phần người sử dụng còn chưa nâng cấp lên loại CPU hai nhân thì các hãng đã bắt
đầu giảm giá thành sản phẩm để cạnh tranh và hấp dẫn người sử dụng.
Với sự ra đời của 6 bộ vi xử lý bốn nhân Quad-Core Xeon dòng 7300, cho
đến thời điểm quý IV năm 2007, Intel đã hoàn chỉnh kế hoạch chuyển các CPU của
mình sang vi kiến trúc core chỉ sau chưa đầy 15 tháng xuất hiện. Những CPU bốn
nhân đầu tiên của Intel lại được ghép nối hai CPU hai nhân thành một CPU bốn
nhân và AMD lại vẫn phát triển theo hướng bốn nhân độc lập.
Trong cuộc cạnh tranh giữa hai hãng sản xuất CPU cho máy tính cá nhân
giữa hai hãng sản xuất hàng đầu Intel và AMD thì cho đến nay Intel đang tạm dẫn
trước, bỏ rơi đối thủ AMD sau khi ứng dụng vi kiến trúc core và các loại CPU sau
đó - đặc biệt là phát triển đến các dòng CPU bốn nhân. Kết quả so sánh giữa các
CPU của hai hãng trên phần mềm benchmark bằng PCMark 05 so sánh bốn loại
CPU bốn nhân của cả hai hãng cho thấy với cùng cấp độ thì các cặp CPU của Intel
8
có điểm số cao hơn so với cặp CPU của AMD. Các kết quả thử nghiệm mới nhất
trong thời điểm hiện tại (đầu năm 2008) cũng chưa cho thấy AMD có sự bứt phá
như đã từng thành công với các loại CPU hai nhân thế hệ đầu tiên.
Cho đến cuối năm 2007, AMD đã đưa ra thị trường hai CPU bốn nhân dòng
Phenom có số hiệu 9500 và 9600. Hai CPU này chỉ khác nhau ở tần số làm việc
(tương ứng với 2,2 Ghz và 2,3 Ghz), còn lại các thông số như sau:
1.1.3.5. CPU tám nhân
Khi mà hai hãng AMD và Intel đang cạnh tranh nhau cung cấp các CPU cho
nhiều loại máy tính thông dụng thì các hãng khác như Sun Microsystems cũng tập
trung vào các sản phẩm CPU đa lõi dành cho thị trường máy chủ và thiết bị viễn
thông (router, switch và các thiết bị hạ tầng viễn thông khác). Sun giới thiệu CPU
UltraSPARC T2 tên mã là Niagara II với 8 nhân mà theo như quảng cáo của họ
rằng bộ xử lý này có khả năng dành cho những “hệ thống máy chủ trên một chip”.
Sun Microsystems trả lời những khách hàng phàn nàn về sự yếu kém trong thiết kế
các CPU bằng một sản phẩm có thể đồng thời xử lý 64 tập lệnh trên 8 nhân với mỗi
nhân có thể xử lý tám tập lệnh đồng thời, tức là cải tiến gấp đôi số tập lệnh so với
thế hệ Niagara I. Tuy nhiên ở các thử nghiệm cho thấy rằng CPU này không phải là
mạnh nhất so với các CPU hàng đầu hiện nay ngay ở thời điểm quý III năm 2007.
Hai hãng AMD và Intel chưa ra mắt các CPU 8 nhân của mình cho đến thời
điểm đầu năm 2008, nhưng nhiều người vẫn cho rằng hai hãng này đang tích cực
chuẩn bị cho nó. Một số nhà phân tích nhận định rằng rất có thể AMD sẽ chạm đích
trong cuộc đua thời điểm giới thiệu bộ xử lý tám nhân so với Intel trong quá trình
cạnh tranh giữa hai hãng
.
1.1.3.6. CPU công nghệ nano
Trước đây thì chỉ có các “siêu máy tính” hoặc các hệ thống máy tính lớn sử
dụng nhiều CPU mới có khả năng xử lý mạnh mẽ với hàng nghìn tỷ phép tính mỗi
9
giây. Người sử dụng máy tính cá nhân để bàn hiện nay có thể hoàn toàn chạm tới
các tốc độ tính toán đó khi mà Intel đưa ra các CPU đa lõi trong tương lai. Hiện tại
Intel đang thử nghiệm chế tạo các CPU có chứa đến 80 nhân nhưng chưa có kế
hoạch tung chúng ra thị trường.
Các chuyên gia nghiên cứu tại Đại học Tokyo (Nhật Bản) còn công bố một
CPU chứa đến 512 nhân có xung nhịp 500 Mhz với kích thước 17x17 mm với 300
triệu transistor, tiêu thụ công suất chỉ 60 W để phục vụ dự phòng cho các máy chủ.
Những điều này cho thấy rằng công nghệ CPU đa lõi trong tương lai sẽ rất có triển
vọng.
Trở ngại lớn nhất của sự phát triển CPU đa lõi là các kích thước vật lý của
các linh kiện chứa trong lòng nó. Kích thước transistor, tiết diện dây dẫn nội bộ là
những thành phần cơ bản gây cản trở sự phát triển của các CPU đa lõi, mỗi hãng
đều có các công nghệ sản xuất riêng để làm nhỏ kích thước của chúng. Những công
nghệ mới gần đây đã có thể giúp tích hợp trên 2 tỷ transistor trong cùng một CPU.
Công nghệ chế tạo CPU đã tiến đến mức 32 nm (được công bố bởi Intel) và còn tiếp
tục nhỏ hơn nữa (tuy hiện nay nhiều hãng sản xuất vẫn mới áp dụng rộng rãi công
nghệ 65 nm và chỉ một số CPU sản xuất trên công nghệ 45 nm).
1.2. CHIP ĐA LÕI VÀ ỨNG DỤNG
1.2.1. Đa lõi và bản quyền phần mềm
Trước đây, các phiên bản hệ điều hành cho các máy chủ thường được phân
biệt sử dụng cho một hoặc nhiều hơn một CPU mà tuỳ theo số lượng CPU mà có
giá bán khác nhau.
Tuy nhiên, hãng phần mềm Microsoft đã không yêu cầu người sử dụng trả
thêm chi phí cho các hệ điều hành Windows các phiên bản được sử dụng các bộ xử
lý đa lõi cho đến đầu năm 2008. Cách tính số lượng CPU của hãng này vẫn tính trên
số lượng CPU vật lý, như vậy cho dù một máy chủ sử dụng duy nhất một CPU có
10
bốn nhân, tám nhân hay nhiều hơn nữa thì cũng chỉ phải trả chi phí cho hệ điều
hành bằng mức như với một CPU đơn nhân.
Mặc dù các bộ xử lý đa lõi đã xuất hiện từ rất lâu, nhưng đến nay chưa thấy
các phần mềm thông dụng có sự chênh lệch nhau về giá bán giữa các phiên bản sử
dụng cho CPU đơn nhân và đa lõi. Tuy nhiên, trong những thời gian kế tiếp có thể
một số hãng phần mềm sẽ liên kết với nhau cùng tăng giá các phần mềm sử dụng
trên những hệ thống máy tính sử dụng CPU đa lõi trong vòng một vài năm tới. Có
thể điều này sẽ trở thành tất yếu khi mà công nghệ CPU đa lõi phát triển đến mỗi
một CPU vật lý chứa rất nhiều nhân trong nó, và các phần mềm được thiết kế tối ưu
cho chúng.
1.2.2. Tương thích với phần cứng
Trong mục CPU đa lõi thế hệ đầu tiên ta nhận thấy vấn đề tương thích của
các CPU đa lõi với hệ thống phần cứng không hề đơn giản. Một số CPU đa lõi thế
hệ đầu của AMD có thể tương thích với bo mạch chủ cũ dành cho các CPU một
nhân trước khi chúng ra đời, các CPU đa lõi của Intel thì hoàn toàn không tương
thích với các bo mạch chủ sử dụng chipset cũ nếu chúng không được thiết kế lại
hoặc cho ra đời phiên bản khác.
Các thế hệ hai nhân, bốn nhân kế tiếp ra đời thì AMD không còn giữ được
lợi thế về sự nâng cấp hệ thống mà không cần thay đổi bo mạch chủ nữa. Người sử
dụng muốn nâng cấp lên CPU đa lõi cần phải thay thế nhiều thiết bị phần cứng khác
để phù hợp với chúng.
•
Bo mạch chủ là thiết bị phải thay thế đầu tiên bởi các cấu trúc mới không
còn được sự hỗ trợ của chipset thế hệ cũ.
•
Bộ nhớ RAM cũng có sự thay đổi khi thay thế sang loại CPU đa lõi,
chúng thường là loại DDR2 thay thế cho thế hệ DDR đầu tiên để đáp ứng
về tốc độ cho các thế hệ CPU mới.
11
•
Nguồn máy tính cũng là thiết bị cần phải thay thế bởi các hệ thống mới
thường sử dụng nguồn máy tính theo chuẩn ATX loại 24 chân ở phần
cung cấp điện năng cho bo mạch chủ. Riêng phần cung cấp nguồn cho
CPU trước đây thường sử dụng một kết nối 4 chân thì với các hệ thống
mới có thể đòi hỏi kết nối 8 chân.
•
Bo mạch đồ hoạ phải thay đổi nếu hệ thống cũ sử dụng giao tiếp AGP.
Toàn bộ các bo mạch chủ thế hệ mới đều sử dụng khe PCI Express X16.
1.3. KIẾN TRÚC CHIP ĐA LÕI
1.3.1. Kiến trúc chip đa lõi đa luồng
Kiến trúc đa lõi, đa luồng là một trong những giải pháp công nghệ hiện nay
đang được phát triển mạnh nhằm nâng cao hiệu năng của các hệ thống máy tính.
Với xu thế phát triển của công nghệ vi xử lý đa lõi là tiếp tục tăng số lượng lõi CPU
trên một chip, nhưng cũng làm gia tăng tính phức tạp của tổ chức cache, số cấp
cache, cấu trúc mạng kết nối giữa các cache, tăng gánh nặng cho bộ xử lý và bus bộ
nhớ.
Hiệu năng của hệ thống vi xử lý đa lõi, đa luồng phụ thuộc rất nhiều vào số
lượng lõi, số luồng trong mỗi lõi, tổ chức cache, dung lượng của cache, số cấp
cache (L1, L2, hay L3) và cấu trúc mạng kết nối bên trong giữa các cấp cache. Điều
này, đã gây nên những hạn chế đáng kể cho kiến trúc vi xử lý đa lõi, đa luồng.
Các chip vi xử lý đa lõi đa luồng yêu cầu phân cấp cache để quản lý độ trễ
và băng thông. Chúng có thể có 2 cấp cache, hoặc 3 cấp cache (hình 1.1). Trên mỗi
lõi thường có L1cache riêng, L2 cache và L3 cache có thể là riêng hay chia sẻ, và
bộ nhớ chính luôn luôn được chia sẻ và mỗi lõi . Các hình 1.2 và 1.3 thể hiện chip
đa lõi với 2 cấp cache: L2 chia sẻ hay L2 riêng cho từng lõi
12
Cache riêng lẻ có lợi thế: chúng gần lõi, do đó truy cập nhanh hơn, và làm
giảm tranh chấp. Ngoài ra, cache riêng cũng có được vị trí khoảng cách tốt hơn, như
tất cả các dữ liệu cần thiết qua lõi luôn được đưa vào cache của lõi. Cache riêng dễ
dàng để đạt được hiệu năng hơn cache chia sẻ, do ranh giới tự nhiên giữa các cache
sắp xếp cạnh nhau như kiểu ngói lợp (tiles). Kiến trúc đa lõi kiểu ngói lợp (tiles) là
kiến trúc khá phổ biến trong các chế tạo chip đa lõi hiện nay. Chúng cho phép đạt
đến vài trăm lõi xử lý trong một chip. Hình 1.4 là ví dụ chip đa lõi kiểu ngói lợp với
16 ngói (tiles) trên chip. Mỗi tile gồm core (ống lệnh), caches, chuyển mạch/định
tuyến trên interconnect giữa các lõi. Thường mỗi lõi có L1 và L2 caches riêng.
Chip đa xử lý đa lõi đa luồng, sử dụng cache chia sẻ có lợi thế: độ trễ của
thông tin ít, một lõi có thể tìm nạp trước dữ liệu cho lõi khác có kích thước cache
nhỏ hơn cần thiết, tắc nghẽn trên phạm vi kết nối bộ nhớ ít hơn, chia sẻ động cho
phép sử dụng hiệu quả chia sẻ không gian cache. Tuy nhiên, với số lượng lõi cao
đòi hỏi băng thông và kích thước cache cao hơn. Độ trễ trúng cache sẽ cao hơn do
chuyển đổi logic trên bộ nhớ cache. Mặt khác, khi thực hiện đồng thời các luồng
được tạo ra từ các ứng dụng khác nhau, tổng hiệu năng của một bộ vi xử lý đa lõi đa
luồng có thể suy giảm do các xung đột giữa các các luồng trong không gian cache
Hình 1.1: Các kiến trúc của chip đa lõi ứng dụng chung
13
chia sẻ, một luồng của một lõi có thể truy xuất các dữ liệu của một luồng khác và
thời gian thực hiện của nó trở nên dài hơn so với cache riêng .
Hình 1.2: Chip đa lõi có L2 chia sẻ Hình 1.3: Chip đa lõi có L2 riêng
Hình 1.4: Kiến trúc kiểu ngói lợp của chip đa lõi (tiled architecture) với 16 tiles.
1.3.2. Mạng liên kết tĩnh các lõi
Trong các hệ thống đa xử lý: nhiều chip CPU, hoặc chip đa lõi xử lý,
mạng liên kết (interconnect network) các chip CPU (off chip interconnect) và
mạng liên kết các lõi trong chip (on chip interconnect) đóng vai trò quan trọng
ảnh hưởng đến hiệu năng của hệ thống đa xử lý. Các mạng interconnect được
phân biệt hai loại: kết nối tĩnh và kết nối động. Các mạng kết nối động có thể
cấu hình lại được nhờ các nút chuyển mạch.
14
Để đánh giá đặc điểm của các cấu trúc interconnect thường có một số
thông số cấu hình của cấu hình mạng kết nối:
• Độ phức tạp liên kết: toàn bộ số liên kết trong mạng.
• Cấp độ của nút (node degree): số nút liên kết với một nút (number of
incident nodes).
• Đường kính của mạng (network diameter): khoảng cách định tuyến
dài nhất trong mạng giữa 2 nút (hay độ dài của tuyến dài nhất trong mạng
(maximum routing distance, hay maximum hop distance).
• Khoảng cách trung bình (average distance): là khoảng cách định
tuyến trung bình giữa tất cả các cặp nút (average routing distance hay average
hop distance).
• Độ rộng chia đôi (bisection width): số tối thiểu các liên kết mà sự lấy
chúng ra khỏi mạng sẽ tách mạng và cắt mạng thành 2 nửa.
• Độ phức tạp sinh trưởng (growth complexity): số nút có thể được bổ
xung thêm.
1.3.2.1. Mạng dạng Bus
• Bus chia sẻ đơn (single shared bus):
Kiểu bus đơn này (hình 1.5) được sử dụng nhiều trong các hệ thống máy
kiến trúc Von Neumann cổ điển với một bus hệ thống. Nhưng một nhược điểm
lớn là khi số lượng các thành phần xử lý và thành phần nhớ tăng lên sẽ làm
tăng đụng độ cạnh tranh chiếm bus, dẫn đến tăng thời gian chờ đợi được phục
vụ của các thành phần xử lý và thành phần nhớ, và tốc độ truyền thông bị suy
giảm. Khi đó cần phải tăng tốc độ bus. Độ sẵn sàng của kết nối bus thấp.
Hình 1.5: Mạng kết nối N là bus đơn
PE1
PE2
PEn
M1
M2
Mm
15
• Nhiều Bus (multi-bus)
Mạng nhiều Bus (hình 1.6) khắc phục nhược điểm của Bus đơn, trong
đó, một số thành phần xử lý và thành phần nhớ kết nối với một Bus, những
thành phần xử lý và thành phần nhớ khác lại kết nối với một Bus khác, hoặc có
chúng kết nối cùng trên một số Bus, như vậy sẽ giảm quá tải cho các Bus, sự
đụng độ truy nhập Bus giảm tối thiểu. Nhược điểm của mạng: khi có sự cố xảy
ra đối với một Bus nào đó, thì hiệu xuất mạng giảm đi rõ rệt và lỗi tăng lên.
• Các Bus giao nhau (crossbar buses)
Trong cấu trúc kết nối Bus giao nhau (hình 1.7) mỗi thành phần xử lý kết
nối với tất cả thành phần nhớ và tương tự, mỗi thành phần nhớ kết nối với tất
cả thành phần xử lý. Như vậy ta có một kết nối kiểu ma trận hai chiều n x m.
Cấu trúc này khắc phục nhược điểm của cấu trúc nhiều Bus. Trường hợp xấu
nhất có thể xảy ra: nếu tất cả các thành phần xử lý cùng truy nhập vào một
thành phần nhớ. Kết nối này đã được áp dụng một số hệ thống máy tính lớn.
Hình 1.6: Mạng nối N: là nhiều bus
PE1
PE2
PEn
M1
M2
Mm
Hình 1.7: Mạng kết nối N: là các bus giao nhau
PE1
PE2
PEn
M1
M2
Mm
16
1.3.2.2. Chuỗi (Linear Array):
Cấu trúc chuỗi (chain) là một mảng tuyến tính (linear array) các bộ xử lý
(gồm CPU, memory, I/O), nên thường được gọi là cấu trúc mảng tuyến tính, có
các kết trực tiếp chỉ với các nút xử lý kề cận trung gian (hình 1.8).
Cho rằng tổng số nút xử lý là N thì mạng chuỗi này có các thông số: mỗi một
nút bên trong có cấp độ là 2 (một nút nối 2 kênh), ngoại trừ 2 nút ở đầu và cuối chỉ
có cấp độ 1, số liên kết trong mạng là một hàm phụ thuộc vào số lượng nút, O(N)
(độ phức tạp liên kết) của mạng, là L = N-1. Đường kính của mạng, D được tính
bằng D = N-1 (một nút biên nối với N-1 nút). Khoảng cách trung bình là (N-1)/3.
Độ rộng chia đôi là 1. Giữa các nút chỉ có một liên kết nên thuật toán định tuyến
truyền thông đơn giản, như hệ thống bus đơn: các bản tin kèm địa chỉ nguồn và đích
được chuyển từ một nút nguồn đến đích là ‘xuôi dòng’ (downstream), một nút nào
đó tiếp nhận bản tin từ ‘dòng xuôi’ và thu nhận bản tin nếu địa chỉ đích trùng với
nút đó, nếu địa chỉ đích không trùng thì bản tin được chuyển ‘ngược dòng’ trở lại
(upstream).
Cấu trúc chuỗi khác với cấu trúc bus đơn ở chỗ không phải tất cả các nút đều
có thể đọc tất cả các bản tin. Một điều khác biệt nữa là chuỗi cho phép một số các
gói của bản tin đồng thời được vận chuyển đảm bảo chúng không gối đè lên nhau.
Chuỗi cho mở rộng đơn giản, bởi vì phần cứng của các nút đang trong mạng không
cần phải thay đổi và thuật toán định tuyến vẫn duy trì như cũ. Độ sẵn sàng của
chuỗi thấp, tốc độ truyền thông chậm, các nút phải chờ đợi lâu.
1.3.2.3. Kết nối hình cây
Cấu trúc hình cây có dạng giống với các cây tự nhiên. Chúng bắt đầu với một
nút ở đỉnh gọi là gốc (root). Nút gốc kết nối với các nút khác nhờ các cành. Những
nút ở cành lại kết nối với các nút nhờ các cành rẽ tiếp tạo ra một cây có nhiều cành
Hình 1.8:
chu
ỗi
k
ết nối
đa x
ử lý
17
cao và thấp, hay một cấu trúc kết nối các nút xử lý đa tầng. Một nút xử lý ở một
tầng kết nối truyền thông trực tiếp với một nút ở tầng trên và một số nút xử lý ở
tầng dưới. Nút kề cận ở tầng trên gọi là nút cha (chỉ có một nút cha), các nút kề cận
ở tầng dưới gọi là các nút con. Kết nối như vậy gọi là tách (disjoint) và không có
vòng lặp trong cấu trúc.
Cấu trúc cây có một số loại:
•
Cây nhị phân:
Trong cây nhị phân, hay còn gọi là cây nhị phân đầy đủ, mỗi một nút xử lý ở
một tầng (trừ gốc) có 3 nút kề cận: 1 nút cha và 2 nút con. Giữa hai nút kề cận chỉ
một đường dẫn duy nhất (hình 1.9) và là liên kết 2 chiều.
Nếu có cây nhị phân có tổng số N nút, trong đó có n nút bên trong (kể cả
gốc), thì nó có các thông số như sau: n+1 nút kết thúc (ngọn), tổng số nút N = 2n+1,
cấp độ của nút là 3, số liên kết L=2n-1, chiều cao h (số tầng) là h ≥ log
2
(n+1) và n =
2
h
– 1, độ rộng chia đôi là 1, và đường kính của cây là
)12(log2log2
22
+
=
=
nND
.
Ví dụ: với cây nhị phân ở hình 3.19, ta có số nút bên trong n = 7, tổng số nút
ngọn là n+1 = 8, cả cây có tổng số N = 2n+1 = 15, số liên kết L = 2n-1 = 14, và
chiều cao của cây h ≥ log
2
(n+1) = log
2
8 = 3.
Kết nối hình cây đơn giản, có thể thực hiện đánh địa chỉ nhị phân cho
các nút, đơn giản được thuật toán định tuyến. Các nút Hạn chế của cây nhị phân
là có tốc độ trao đổi chậm, càng lên cao trễ càng lớn và nghẽn nút cổ chai. Các
nút con trao đổi với nhau phải thông qua nút cha. Khi có sự cố xảy ra ở nút cha
thì sẽ làm mất đi liên hệ với các nút con, dẫn tới sự loại bỏ nhiều đơn vị xử lý
trong nhánh. Tuy vậy, dạng cấu trúc kết nối này vẫn được sử dụng ở một số hệ
thống máy tính.
Ví dụ, quay lại với bài toán tính SUM đã đề cập.
Hình 1.9:
Cây nhị phân
18
n
bbbbSUM
+
+
+
+
=
321
;
Trong đó:
12 −=
h
n
Quá trình giải phép tính SUM này như sau:
Nạp tất cả các toán hạng
n
bbbb , ,,,
321
vào
1
2
−
h
đơn vị xử lý ngọn của cây
nhị phân (tầng h). Sau đó mỗi một cặp toán hạng
1
,
+
ii
bb
chuyển từ các đơn vị xử lý
tầng h lên đơn vị xử lý cha ở tầng h-1 để tính tổng cục bộ:
1+
+
=
iii
bby
và kết quả
này nằm lại trong đơn vị xử lý cha ở tầng h-1. Như vậy sẽ giảm số lượng toán hạng
đi một nửa, tất cả kết quả cục bộ này nằm ở trong các đơn vị xử lý ở tầng h-1. Từ
tầng h-1, tất cả n/2 toán hạng được cộng song song vào các đơn vị xử lý ở tầng h-2.
Tại đây, ta có các kết quả cộng cục bộ, và số lượng toán hạng giảm xuống còn n/4.
Cuối cùng đạt tới đơn vị xử lý gốc, và tại gốc có kết quả của phép cộng
SUM
. Để
đạt được kết quả cuối cùng
SUM
cần phải có h-1 hay log
2
n lần cộng.
•
Cây tam phân:
Trong cây tam phân (ternary tree) (hình 1.10) mỗi một nút (trừ gốc) có 4 nút
kề cần: 1 nút cha, 3 nút con. Nếu có n nút bên trong (kể cả gốc) thì có 2n +1 nút
ngọn, cả cây có N= 3n+1 nút, 3n-1 cành, và chiều cao h ≥ log
3
(2n+1).
Cây tam phân có ưu điểm hơn cây nhị phân là có nhiều nhánh cây hơn, do đó
kết nối được nhiều nút con hơn, nhưng cũng như cây nhị phân nhược điểm lớn của
nó lại càng lên cao càng gia tăng sự chậm chế và nghẽn nút cổ chai.
• Cây béo:
Cây béo (hình 1.11) là một cách khắc phục nhược điểm nghẽn nút của các
cây nhị phân, tam phân bằng cách bổ xung thêm các kết nối giữa các nút con ở cùng
Hình 1.10:
Cây tam phân
19
tầng dưới (trừ các nút ở các cành ngoài) nhưng thuộc các nút cha khác nhau ở tầng
trên.
1.3.2.4. Vòng (1D-Torus)
Nhược điểm của cấu chuỗi có thể được khắc phục bằng cấu trúc vòng (Ring)
(hình 1.16). Tất cả các nút xử lý có thể truyền thông với nhau ngay cả nếu các bản
tin chỉ có thể chuyển theo một hướng. Nếu vòng có N nút thì nó cũng có N liên kết
(hay độ phức hợp liên kết bằng N), nghĩa độ phức tạp liên kết phụ thuộc số nút,
O(N). Vòng có thể vận chuyển các bản tin theo cả hai hướng. do đó nó là vòng 2
chiều. Thường có tuyến dài và tuyến ngắn giữa các nút truyền thông với nhau.
Thuật toán định tuyến thực hiện định tuyến theo tuyến ngắn nhất nếu tuyến đó đang
rỗi. Vòng có mức phức tạp O(N). Đường kính của mạng vòng D = N/2 nếu liên kết
2 chiều (số N chẵn), và D = N-1 nếu lên kết chỉ một chiều (số N lẻ). Cấp của tất cả
nút trong mạng vòng là 2. Khoảng cách trung bình (N +1)/3, độ rộng chia đôi
(bisection width): 2.
Vòng có các đặc tính tương tự như chuỗi và không phù hợp cho các hệ thống
máy tính song song với nhiều bộ xử lý. Nó phù hợp cho kết nối LAN của các bộ xử
lý có kết nối lỏng lẻo và truyền thông không thường xuyên.
•
Vòng sợi dây
Vòng sợi dây (chordal ring) là một cấu hình mở rộng thêm các kết nối giữa
các cặp nút trong tập hợp gồm các nút ở cách xa nhau. Hình 1.17 là ví dụ một vòng
Hình 1.16:
Vòng đa xử lý
Hình 1.11:
Cây béo (Fat tree)
20
sợi dây gồm 24 nút với các dây (chord) kết nối các cặp nút cách xa 6 nút (dây thừng
là khái niệm toán học cho một đường thẳng kết nối 2 điểm trên một đường cong).
Vòng sợi dây có ưu điểm so với vòng 2 chiều là nó có ‘cắt ngắn’ (short cut)
trong đường dẫn giữa các nút khác nhau. Đường kính của vòng sợi dây là một hàm
phụ thuộc vào số nút trong vòng và ‘độ dài’ của dây. Có một số tuyến cho bản tin
tới đích, nhưng thuật toán định tuyến phức tạp hơn. Nếu vòng sợi có tổng số nút là
n thì tổng số liên kết là 2n. Máy tính song song ILLIAC-IV có mạng kết nối cấu
trúc vòng sợi gồm 64 nút, trong đó các sợi dây kết nối các cặp nút cách xa 9 nút.
1.3.2.5. Các cấu hình lưới:
Hình 1.17:
Vòng s
ợi dây
(a): lưới vuông
(2D mesh)
(d): lưới 6 cạnh
(Hexagohal grid)
(c): lưới rèm
(b): lư
ới v
òng
(2D torus)
Hình 1.19:
Các cấu trúc lưới
(e): lưới 3D
21
Các cấu hình lưới là các kết nối các nút theo các mẫu đan lưới theo 2, hoặc 3
hướng. Có nhiều loại cấu hình lưới: luới vuông (grid, mesh), lưới 6 cạnh
(hexagonal grid), lưới vòng (torus), lưới toroidal (toroidal grid), lưới 3 chiều (3-D
grid),…
• Lưới vuông (2D mesh):
Tổng số nút của lưới vuông (hình 1.19a) là N, và n=2, là số chiều, p là số
nút của một chiều lưới,
2
ppN
n
==
,
2/1
Np =
. Số liên kết là
)1(2)1(2
2/12/1
−=−= NNppL
, đường kính là
)1(2)1(2)1(
2/1
−=−=−= NppnD
,
khoảng cách trung bình là
2/1
3
2
3/23/ Npnp ==
, độ rộng chia đôi là
2/11
Npp
d
==
−
. Cấp độ của nút từ
nd 2
=
. Độ phức tạp sinh trưởng là
12
2/1
+N
.
Ví
dụ, với nếu p = 5, ta có
255
2
==N
,
40)1(2
=
−
=
ppL
,
8
=
D
. Vì có nhiều đường
dẫn giữa nguồn và đích nên mạng có độ sẵn sàng cao, thuật toán định tuyến có
nhiều lựa chọn đường dẫn tối ưu. Mạng cũng cho dễ dàng mở rộng bởi các nút đang
kết nối không phải thay đổi phần cứng.
• Lưới vòng (2D Torus):
Lưới vòng có cấu hình gồm một lưới vuông 2D và thêm các cạnh bổ xung
vòng quanh, do đó nó còn được gọi là Torus hay 2D Torus. Trong lưới vòng (2D
Torus) (hình 1.19b) tất cả các nút đều có cấp độ d = 4 (4 kết nối) và nằm trên giao
điểm của các đường vòng quấn xung quanh từ trên xuống dưới, từ phải sang trái.
Nó có số nút ít, băng thông cao, tăng được không gian sử dụng cho các chip xử lý,
và vì các vòng là thống nhất nên thuật toán định tuyến đơn giản. Nếu số nút là N, n
là số hướng, p là số nút của một chiều lưới, thì 2D torus có:
2
ppN
n
==
, trong đó
2
=
n
, số liên kết là
NpL 22
2
==
, cấp độ của nút là d=2n=4, đường kính
2/1
NpD ==
, khoảng cách trung bình là
2/1
2
1
N
, và độ rộng chia đôi (bisection
width) là
2/1
22 Np =
. Ví dụ, với p =5, thì với 2D Torus có
255
2
==N
,
502
2
==
pL
,
5
2/1
== ND
.
22
• Luới 3D (3D mesh):
Lưới 3D (hình 1.19e) có tổng số nút là N = p
3
, trong đó p là số nút dọc theo
một cạnh. Các nút ở các góc có cấp độ 3, các nút ở các cạnh có cấp độ 4, các nút ở
mặt có cấp độ 5, và các nút bên trong có cấp độ 6. Độ phức tạp liên kết bằng 3p
2
(p-
1) và đường kính bằng D = 3(p-1). Độ phức hợp sinh trưởng là một hàm của p và
bằng 3p+3p+1.
Mạng lưới 3D có nhiều tuyến cho định tuyến giữa hai nút, nhiều đường dẫn
ngắn nhất có thể chọn lựa, và độ sẵn sàng càng cao.
Có thể xây dựng những mạng lưới 4D, 5D, nhưng sẽ rất khó nhận dạng, và
thường các mảng 3D, 4D hoặc nhiều hướng hơn được sắp xếp thành các lưới 2D.
Lưới 3D thực hiện các bài toán nhanh tối thiểu cũng như lưới 2D, nhưng các bài
toán 2D có thể không luôn sử dụng tất cả các nút của lưới 3D.
• Lưới vòng 3D (3D torus):
3D Torus kết nối các nút bằng cách sử dụng cấu hình lưới vòng, có nghĩa là
mỗi nút trong một mặt kết nối với nút lân cận thông qua hệ thống cáp ngắn. Các tín
hiệu được chuyển tiếp từ một nút đến nút khác mà không cần thiết bị chuyển mạch.
3D có nghĩa là thông tin liên lạc trong mỗi nút có thể đi theo 6 hướng X +, X-, Y +,
Y-, Z +, Z Đồ thị của kết nối này giống như một ma trận 3 chiều
(hình 1.20)
1.3.2.6. Hình sao
Cấu trúc hình sao là trường hợp phát sinh từ cấu trúc cây, nhưng chỉ có độ
sâu (hay chiều cao) là 2. Nút gốc của cây trở thành nút trung tâm của cấu trúc hình
sao. Nút trung tâm hoạt động như một nút chuyển mạch thực hiện định tuyến và
Hình 1.20: Vòng 3D (3D torus) 4x4x4
23
chuyển tiếp các bản tin từ một nút đến các nút khác (hình 1.21). Các nút đầu cuối
chỉ liên kết với nhau qua nút trung tâm, do đó chúng có cấp độ là 1, và sự cố ở nút
gốc làm mạng không thể hoạt động. Nếu tổng số nút trong mạng là n thì nút gốc có
cấp độ bằng n-1. Thuật toán định tuyến đơn giản. Để tăng độ sẵn sàng cần tăng độ
tin cậy và khả năng chịu lỗi của nút trung tâm.
1.3.2.7
.
Mạng kết nối siêu lập thể n chiều (n-dimensional hypercube):
Hình 1.21:
Mạng hình sao
Hình 1.22: Các mạng cấu trúc siêu lập thể (Hypercubes)
24
Kiến trúc kết nối lập thể (hình 1.22) còn gọi là kết nối lập phương-n nhị
phân (binary n-cube), vì nếu có n chiều thì có 2n mặt và N = 2
n
nút kết nối
trong khối lập phương, hay
Nn
2
log
=
, đường kính
ND
2
log
=
(bảng 1.1), số
liên kết
NNL
2
log
=
, độ rộng chia đôi là N/2. Cấp độ của nút là
Nd
2
log
=
.
Trong siêu lập thể, một nút (hay đỉnh) là 0-D (hay 0-cube), một đường nối 2
đỉnh là 1D (hay 1-cube), một mạng vuông nối 4 nút gọi là 2D (2-cube), lập thể 3
chiều là 3D (3-cube), và hai 3-cube nối với nhau gọi là 4D (4-cube),v.v
Cấu trúc siêu lập thể phù hợp với một số nhóm bài toán, như đánh giá các
biến đổi Fourier nhanh (FFT: fast Fourier Transforms). Ví dụ, máy tính được thiết
kế ở Caltech (1983) có thêm là Cosmic cube có 64 thành phần xử lý, mỗi thành
phần xử lý có một bộ xử lý 8086 với đồng xử lý 8087.
1.3.2.8. Kết nối đầy đủ:
Trong kết nối đầy đủ FCN (full connected network), mỗi một nút xử lý có
liên kết với tất cả các nút còn lại. Như vậy, số lượng nút tăng thì số lượng liên kết
càng tăng nhiều và nhanh (hình 1.23). Nếu mạng có N nút, thì tổng số liên kết L =
N(N-1)/2. Tất cả các nút đều có cấp độ bằng N-1 (bảng 1.2). Đường kính là 1,
khoảng cách trung bình là 1, độ rộng chia đôi bằng:
2
)2/(
N
nếu N chẵn, và bằng
)4/(
2
N
nếu N lẻ.
Bảng 1.1: Các đặc tính của siêu lập thể
Đặc tính Công thức
Đường kính D = log
2
N = n, trong đó n là số chiều
Độ phức hợp nút N = 2
n
Cấp độ d = log
2
N
Độ phức hợp liên kết L = (Nlog
2
N)/2
Bisection width B = n/2
Độ phức hợp sinh trưởng G = N
25
1.3.3. Các loại cấu hình kết nối động của mạng kết nối N
1.3.3.1. Các thành phần chuyển mạch:
Cấu trúc kết nối động có thể được xây dựng bằng sử dụng các thành phần
chuyển mạch 4-trạng thái (hình 1.24).
Mỗi một thành phần chuyển mạch có 2 đường vào và 2 đường ra để kết nối
với các thành phần chuyển mạch lân cận. Tất cả 4 đường (buses) giống nhau và có
thể làm việc như là các liên kết các bộ xử lý với nhau (processor-to-processor) hay
các thành phần xử lý với thành phần nhớ (procesor-to-memory). Trạng thái của
thành phần chuyển mạch được điều khiển bởi tín hiệu C, nó có các trạng thái:
• Trạng thái đi thông hay trực tiếp (direct) (hình 1.24b): Z
1
= X
1
, Z
2
= X
2
• Trạng thái đấu chéo (cross) (hình 1.24c) : Z
1
= X
2
, Z
2
= X
1.
• Trạng thái quảng bá dưới (hình 1.24d): Z
1
= Z
2
= X
1
.
• Trạnh thái quảng bá dưới (hình 1.24e): Z
1
= Z
2
= X
2
.
Bảng 1.2: Các đặc tính của kết nối đầy đủ
Đặc tính Công thức
Đường kính D = 2
Độ phức hợp nút N= 1
Cấp độ d = n-1
Độ phức hợp liên kết L = n(n-1)/2
Bisection width B = 2
Độ phức hợp sinh trưởng G = 1
Hình 1.23: Các cấu
mạng kết nối đầy đủ