Trong nhiều kiến trúc xử lý song song hiện tại hoặc đang được đề xuất, một mạng liên kết được sử dụng để thực hiện sự trao đổi dữ liệu giữa các bộ xử lý hoặc giữa các bộ xử lý với các
Trang 2Lưu ý của tác giả
Không được tự ý sao chép hay quảng bá bài giảng này khi chưa được sự đồng ý của các tác giả.
Địa chỉ liên hệ của các tác giả:
Nguyễn Phú Bình
Email: ngphubinh@yahoo.com Mobile: 0983533925
Website: http://phubinh.vicosoft.com/ktmt
Trần Trung Kiên
Email: trankien_bk@yahoo.com Mobile: 0914919392
Bộ môn Kỹ thuật Máy tính
Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội C1- P322, Tel: 8696125
Trang 3Kiến trúc các hệ thống tính toán
Chương 3
MẠNG LIÊN KẾT
(Interconnection Networks)
Nguyễn Phú Bình – Trần Trung Kiên
Bộ môn Kỹ thuật Máy tính, Khoa Công nghệ Thông tin
Trường Đại học Bách Khoa Hà Nội
Trang 4Nội dung chương 3
3.1 Giới thiệu
3.2 Cấu trúc liên kết mạng
3.3 Lựa chọn thiết kế mạng liên kết
Trang 53.1 Giới thiệu
Telephone Network
Chiến lược mạng được ứng dụng lần đầu tiên vào
những năm 1950 bởi nền công nghiệp điện thoại như
Trang 6Giới thiệu (tiếp)
Computer Network
Nền công nghiệp máy tính
Trang 7Giới thiệu (tiếp)
Năng lực của các kiến trúc đơn chip không đáp ứng
được yêu cầu về tốc độ của nhiều ứng dụng
VD như dự báo thời tiết, xử lý tín hiệu, radar dò tìm, xử lý ảnh.
thành các công việc song song để có thể thực hiện
đồng thời, giảm đáng kể thời gian xử lý của ứng dụng
Trang 8Giới thiệu (tiếp)
Bất kỳ hệ thống song song nào sử dụng nhiều hơn một
bộ xử lý (processor) cho một chương trình ứng dụng
phải được thiết kế để cho các bộ xử lý của nó có thể
trao đổi một cách hiệu quả
Nói cách khác, những ưu điểm của xử lý song song cóthể mất đi nếu sự trao đổi thông tin giữa các bộ xử lý không hiệu quả
Trang 9Giới thiệu (tiếp)
Sự thật này đã nhấn mạnh đến tầm quan trọng của
mạng liên kết đối với toàn bộ hiệu suất của hệ thống
song song
Trong nhiều kiến trúc xử lý song song hiện tại hoặc
đang được đề xuất, một mạng liên kết được sử dụng
để thực hiện sự trao đổi dữ liệu giữa các bộ xử lý hoặc giữa các bộ xử lý với các module nhớ
Trang 10Nội dung chương 3
3.1 Giới thiệu
3.2 Cấu trúc liên kết mạng
3.3 Lựa chọn thiết kế mạng liên kết
Trang 113.2 Cấu trúc liên kết mạng
Cấu trúc liên kết mạng (Network Topology) đề cập đến
sơ đồ các liên kết (link), bộ chuyển mạch (switch) để
Trang 12Cấu trúc liên kết (tiếp)
Có 2 dạng cấu trúc liên kết:
Các mạng liên kết tĩnh:
Cung cấp các liên kết cố định giữa các node (nút mạng).
Một node có thể là một bộ xử lý, một module nhớ hoặc một module vào-ra hay bất cứ sự tổ hợp nào.
Liên kết giữa các nodes là không thể thay đổi và không dễ dàng
có thể cấu hình lại được.
Các mạng liên kết động:
Cung cấp các kết nối có thể cấu hình lại được giữa các node.
Các bộ chuyển mạch là thành phần cơ bản của mạng liên kết động.
Các kết nối giữa các node được thiết lập bằng việc cấu hình một
Trang 131 Mạng liên kết tĩnh
Có nhiều loại, được phân biệt bởi bậc của node; bậc của node là số lượng các kết nối nối với node đó
sánh các đặc điểm hoạt động tương đối của các mạng khác nhau
Đường kính của mạng được xác định là giá trị lớn nhất trong số khoảng cách tối thiểu kết nối giữa 2 node bất
kỳ trong mạng
Khoảng cách tối thiểu giữa 2 node là số lượng nhỏ
nhất các kết nối – bước nhảy (hop) mà dữ liệu từ một node phải đi qua theo thứ tự để đến được node kia
Trang 14Một số kiểu mạng liên kết tĩnh
Bậc 1: shared bus (bus dùng chung)
Bậc 2: linear array (mạng tuyến tính), ring (mạng vòng)
Bậc 3: binary tree, fat tree, shuffle-exchange (Cây nhịphân)
Bậc 4: two-dimensional mesh (llliac, torus) (mạng lưới
2 chiều)
Bậc thay đổi: n-cube, n-dimensional mesh, k-aryn-cube (siêu khối)
Trang 15a Bus dùng chung (shared bus)
Là loại mạng liên kết tĩnh đơn giản nhất
Bus dùng chung có tất cả các node chia sẻ một mối liên kết truyền thông chung
Mạng liên kết này có bậc 1, mỗi node có thể truy nhập tới node khác thông qua bus chung
Trang 16Bus dùng chung (tiếp)
Mạng chia sẻ bus là loại mạng rẻ nhất để triển khai
Các node có thể dễ dàng thêm hay loại bỏ khỏi mạng này
Tuy nhiên, nó yêu cầu một cơ chế cho việc xử lý xung đột khi nhiều node đồng thời yêu cầu sử dụng đường bus chung
Cơ chế này có thể đạt được thông qua một bộ điều
Trang 17b Mạng tuyến tính (linear array)
Mạng tuyến tính (bậc 2) có mỗi node được nối với 2
node bên cạnh (trừ node đầu và node cuối)
Tính chất tuyến tính của cấu trúc này được xuất phát từ node đầu và node cuối không kết nối với nhau.
Có cấu trúc đơn giản, thiết kế của nó có độ trễ truyền thông lớn, đặc biệt giữa hai node đầu cuối
Điều đó là do bất kỳ dữ liệu truyền trên mạng từ một node phải qua một số node để có thể đến được node kia.
Mạng tuyến tính với N node sẽ có đường kính là N-1
Trang 18Mạng vòng (ring)
Mạng vòng có bậc 2, mỗi một node được nối với 2
node bên cạnh, node cuối cùng và node đầu tiên được kết nối với nhau tạo thành một vòng
Mạng vòng có thể theo 1 hướng hoặc 2 hướng
Trong mạng vòng 1 hướng, đường kính mạng là N-1
giống như mạng tuyến tính.
Trong mạng vòng 2 hướng, đường kính mạng chỉ còn
N/2 hoặc nhỏ hơn nếu N chẵn.
Trang 19Mạng vòng (tiếp)
Mặc dù đường kính của mạng vòng tốt hơn so với
mạng tuyến tính nhưng cấu hình của nó vẫn gây ra một
độ trễ truyền thông lớn giữa các node cách xa nhau khi
N lớn
Độ ổn định của mạng vòng 2 hướng được cải thiện nếu
so sánh với mạng tuyến tính Nếu 1 node bị hỏng, 1
hướng bị mất kết nối, hướng kia có thể sử dụng để
hoàn thành việc truyền dữ liệu
Một khi kết nối bị mất giữa bất kỳ 2 node cạnh nhau,
mạng vòng trở thành mạng tuyến tính
Trang 20c Cây nhị phân (binary tree)
Node đầu tiên gọi là gốc (root) Các node ở cuối cùng gọi là node lá (leaf/terminal), phần còn lại gọi là node giữa (intermediate) Mỗi node giữa có 2 node con Bậc của mạng là 3
Node root có địa chỉ là 1 Địa chỉ của một node con
được xác định bằng thêm vào số 0 và 1 vào địa chỉ của node mẹ; nghĩa là node con của node x được mang
Trang 21Cây nhị phân (tiếp)
Một cây nhị phân với N node có đường kính là 2(h - 1), trong đó h =[log2N] và được gọi là chiều cao của cây
Cây nhị phân có ưu điểm là có thể mở rộng và triển
khai dễ dàng
Định tuyến dữ liệu đơn giản
Tuy nhiên, nó vẫn còn gây ra độ trễ lớn giữa các node
lá ở xa nhau
Trang 22d Cây nhị phân "béo" (fat tree)
Khắc phục sự tắc nghẽn ở khu vực gần nút gốc bằng cách tăng dần băng thông của các đường link giữa các node gần với gốc
Trang 23e Mạng tráo đổi (Shuffle-exchange)
Bậc của mạng là 3
Liên kết của mạng tráo đổi là sự tổ hợp của hai hàm: Hoán vị (shuffle) và đổi chỗ (exchange)
Mạng tráo đổi cung cấp kiểu mẫu liên kết phù hợp cho
sự thực hiện các thuật toán song song như phép biến đổi Fourier nhanh (FFT), sắp xếp và biến đổi ma trận
Trang 24Đích Nguồn
Trang 25Hàm hoán vị (tiếp)
Nếu địa chỉ node được thể hiện theo hệ thập phân thìhàm shuffle được tính như sau:
Giả sử số node N=2n, i là địa chỉ thập phân của node
Với 0i (N/2) – 1, node i được nối với node 2i
Với N/2 i N – 1, node i được nối với node 2i+1-N
Ví dụ:
N = 8, các node đánh địa chỉ từ 0 đến 7
Ta có: 00, 12, 24, 36, 41, 53, 65, 77
Trang 26Đích Nguồn
Trang 27Ví dụ
Cấu trúc mạng Shuffle-Exchange với N = 8
Trang 28Ví dụ - Tính giá trị của đa thức
Tính toán đa thức có thể dễ dàng thực hiện trên hệ
thống xử lý song song mà trong đó các node (bộ xử lý) được liên kết theo mô hình mạng Shuffle-Exchange
VD: sử dụng mô hình mạng ở ví dụ trên để tính giá trịcủa 1 đa thức bậc N=7
a0+a1x+a2x2+a3x3+a4x4+a5x5+a6x6+a7x7
Trong đó: ai là các hệ số, x là biến
Trang 29Tính giá trị của đa thức (tiếp)
Ta sử dụng mô hình mạng Shuffle-Exchange với N=8
3 thanh ghi sau:
Thanh ghi hệ số (Coefficient register)
Thanh ghi biến (Variable register)
Thanh ghi mặt nạ (Mask register)
Thanh ghi hệ số
Thanh ghi biến
Thanh ghi mặt nạ
Trang 30Tính giá trị của đa thức (tiếp)
Các bước tiến hành có thể chia làm 2 pha:
Pha 1: Tính các giá trị aixi – sử dụng hàm Shuffle
Pha 2: Tính giá trị của đa thức – sử dụng 2 hàm Shuffle và
Exchange.
Trang 31Pha 1
Khởi tạo: với node i (i = 0÷7)
Thanh ghi hệ số = ai
Thanh ghi biến = x
Thanh ghi mặt nạ = 0 nếu i chẵn, = 1 nếu i lẻ
Bước lặp (lặp n=3 lần):
Với từng node:
Nếu thanh ghi mặt nạ = 1 thì:
Thanh ghi hệ số := Thanh ghi hệ số x Thanh ghi biến
Thanh ghi biến := Thanh ghi biến x Thanh ghi biến
Giá trị của thanh ghi mặt nạ giữa các node được hoán vị cho nhau theo hàm Shuffle.
Kết thúc pha 1: thanh ghi hệ số của node i chứa a xi
Trang 32VD: Pha 1 – Bước khởi tạo
Trang 33VD: Pha 1 – Bước lặp 1
Trang 34VD: Pha 1 – Bước lặp 2
Trang 35VD: Pha 1 – Bước lặp 3
Trang 36Pha 2
Đầu vào: là đầu ra của pha 1 (thanh ghi hệ số của
node i chứa giá trị aixi)
Bước lặp (lặp n=3 lần):
Chuyển giá trị của thanh ghi hệ số ở từng node sang node
khác theo thứ tự được xác định từ hàm Shuffle.
Cộng thêm vào thanh ghi hệ số ở từng node giá trị của thanh ghi hệ số ở node khác theo thứ tự được xác định từ hàm
Exchange.
Kết thúc pha 2: thanh ghi hệ số ở từng node chứa giátrị của đa thức
Trang 37Thực hiện pha 2
Shuffle: 00, 12, 24, 36, 41, 53, 65, 77
Exchange: 01, 10, 23, 32, 45, 54, 67, 76
Trang 38Bài tập
Thực hiện từng bước giải thuật trên với đa thức sau:
P = 1 + 2x - 3x2 + 5x3 + 2x4 - 4x5 + 2x7
x = 2
Trang 39Node 1
-3 x 0
Node 2
5 x 1
Node 3
2 x 0
Node 4
-4 x 1
Node 5
0 x 0
Node 6
2 x 1
Node 7
1 + 2x - 3x2 + 5x3 + 2x4 - 4x5 + 2x7
Trang 40f Mạng lưới 2 chiều
Two-dimensional mesh
Bậc của mạng là 4
Một lưới 2 chiều bao gồm k1 x k0 node
ki 2 biểu thị số các node dọc theo chiều i
Mỗi node trong lưới 2 chiều được nối với các node lân cận
Trang 41Mạng lưới 2 chiều (tiếp)
Mạng lưới 2 chiều với k0=4 và k1=2
Mạng lưới 2 chiều với k0=k1=4
Trang 42Mạng lưới 2 chiều (tiếp)
Đường kính của mạng 2 chiều bằng khoảng cách giữa các node ở hai góc đối diện Như vậy, lưới 2 chiều với
k1 x k0 node có đường kính (k1-1) + (k0-1)
Trong thực tế, lưới 2 chiều với số node bằng nhau theo
2 hướng thường được sử dụng để kết nối một tập hợp các bộ xử lý
Trang 43Định tuyến trong mạng lưới 2 chiều
Thuật toán định tuyến 1 gói tin truyền từ nguồn S đến đích D trong mạng lưới 2 chiều có n2 node:
Tính khoảng cách hàng: R = (D div n) – (S div n)
Tính khoảng cách cột: C = (D mod n) – (S mod n)
Bổ sung giá trị của R và C vào header của gói tin ở node
nguồn.
Bắt đầu từ node nguồn, gửi gói tin đi R hàng và sau đó là C cột.
Trang 44Giải thích thuật toán
Hướng của gói tin tại mỗi node được xác định bởi dấu của giá trị
R và C.
Khi R (hoặc C) dương, gói tin sẽ đi theo chiều hướng xuống
(hoặc sang phải), ngược lại, gói tin sẽ theo chiều đi lên (hoặc
sang trái).
Mỗi lần gói tin đi từ một node tới một node liền kề theo hướng
xuống, giá trị R được giảm 1; khi đi theo hướng lên, nó được
tăng 1.
Khi R bằng 0, gói tin bắt đầu đi theo chiều ngang Mỗi lần gói tin
đi từ một node tới một node liền kề theo hướng bên phải, giá trị C được giảm 1; khi đi theo hướng bên trái, nó được tăng 1.
Khi C bằng 0, gói tin đã tới đích.
Trang 46 Trong mạng Illiac có N=n2 node, mối liên kết node j
(0j<N) được xác định bởi 4 hàm sau:
Trang 48h Mạng khối n chiều (siêu khối)
n-Cube (hypercube)
Trong mạng khối n chiều, mỗi node được đánh địa chỉbằng n bit (tương ứng với các số từ 0 đến N-1)
Một node có địa chỉ nhị phân là d được kết nối với n
node khác có địa chỉ sai khác duy nhất 1 bit so với d
Đường kính của mạng là n
Trang 49Ví dụ: Mạng khối 3 chiều
Node 7 (111) được nối với các node 6 (110), 5 (101) và 3 (011)
Trang 50Định tuyến trong mạng khối n chiều
Thuật toán định tuyến cho gói tin truyền từ node nguồn
S = (sn-1 s0) tới node đích D = (dn-1 d0)
Thêm vào header của gói tin ở node nguồn 1 thẻ
T = S D = tn-1 t0 (kí hiệu : phép toán XOR)
Nếu có 1 bit ti = 1 (0in-1) thì gửi gói tin đến node có địa chỉ khác địa chỉ của node hiện tại ở duy nhất bit thứ i, sau đó xóa
ti về 0.
Lặp lại bước trên cho đến khi tất cả các bit ti = 0 (0in-1)
Trang 51Ví dụ - Định tuyến trong khối 3 chiều
Giả sử cần truyền 1 gói tin từ
node 0 (000) tới node 5 (101).
Trang 52i Mạng lưới n chiều
Trang 53Kiến trúc các hệ thống tính toán
VẪN CHƯA HẾT CHƯƠNG 3