1. Trang chủ
  2. » Công Nghệ Thông Tin

Tối ưu hoá trong thiết kế bộ xử lý số song song

106 215 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 106
Dung lượng 1,55 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nắm bắt xu hướng phát triển hiện nay của các bộ xử lý, đề tài sẽ trình bày các nghiên cứu kiến trúc máy tính nâng cao với kỹ thuật xử lý song song sử dụng nhiều đơn vị xử lý nhằm mục đíc

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-LUẬN VĂN THẠC SĨ KHOA HỌC

TỐI ƯU HÓA TRONG THIẾT KẾ

Trang 2

Lời cảm ơn

Tôi xin gửi lời chân thành cảm ơn tiến sĩ Nguyễn Kim Khánh Thầy là người đã giúp tôi lựa chọn được luận văn phù hợp và hữu ích, vạch ra những bước đi đầu tiên của luận văn Trong quá trình thực hiện luận án, đã phát sinh rất nhiều khó khăn nhưng dưới sự gợi ý, chỉ bảo của thầy, các vấn đề đã được giải quyết Cảm ơn sự quan tâm, giúp đỡ, hướng dẫn tận tình của thầy xuyên suốt quá trình nghiên cứu xây dựng luận án, đưa luận án tới thành công

Tôi cũng xin gửi lời cảm ơn sâu sắc tới Trung tâm Đào tạo sau đại học và toàn thể các thầy cô giáo, những người đã tậm tâm giảng dạy, lắng nghe, và truyền đạt những kiến thức quý báu cho tôi

Trong thời gian học tập tại trường đại học Bách Khoa Hà Nội, tập thể lớp cao học

Xử lý thông tin 2005-2007 rất đoàn kết, gắn bó, giúp đỡ lẫn nhau Xin được cảm ơn tới tất cả các anh chị em đã khuyến khích, trợ giúp, đóng góp những kinh nghiệm quý báu cho tôi

Tôi cũng xin cảm ơn tới tất cả bạn bè, người thân đã giúp đỡ động viên và hỗ trợ rất lớn lao, giúp đỡ tôi hoàn thành luận văn

Học viên lớp cao học Xử lý thông tin – Khoá 2005-2007

Trang 3

Mục lục

Danh mục bảng viii

Danh mục bảng viii

Bảng kí hiệu và viết tắt ix

1 TỔNG QUAN ĐỀ TÀI 10

2 CƠ SỞ LÝ THUYẾT 12

2.1 Giới thiệu kiến trúc máy tính cao cấp và công nghệ xử lý song song 12

2.1.1 Bốn kỷ nguyên computing 13

2.1.2 Kỷ nguyên ‘Batch’ 13

2.1.3 Kỷ nguyên ‘Chia sẻ thời gian’ 13

2.1.4 Kỷ nguyên ‘Máy tính bàn’ 14

2.1.5 Kỷ nguyên ‘Mạng’ 15

2.1.6 Xu hướng hiện nay 15

2.2 Nguyên tắc phân loại kiến trúc máy tỉnh của FLYNN 16

2.3 Kiến trúc SIMD 19

2.4 Kiến trúc MIMD 21

2.4.1 Tổ chức kiến trúc bộ nhớ chia sẻ 23

2.4.2 Tổ chức kiến trúc bộ nhớ phân tán 24

2.5 Mạng tương kết 26

2.5.1 Chế độ hoạt động 26

2.5.2 Cơ chế điều khiển 27

2.5.3 Kỹ thuật chuyển mạch 27

2.5.4 Tôpô 27

3 PHÂN TÍCH HỆ THỐNG 32

3.1 Nguyên tắc phân loại mạng tương kết 33

3.2 Mạng tương kết động dựa trên nền bus 33

3.2.1 Hệ thống đơn bus 33

3.2.2 Hệ thống đa bus 34

Trang 4

3.2.3 Đồng bộ hóa bus 37

3.3 Mạng tương kết động dựa trên nền chuyển mạch .38

3.3.1 Mạng crossbar 38

3.3.2 Mạng đơn tầng 40

3.3.3 Mạng đa tầng 43

3.3.4 Các trở ngại của mạng tương kết đa tầng 47

3.4 Mạng tương kết tĩnh 50

3.4.1 Mạng kết nối đầy đủ 50

3.4.2 Mạng kết nối giới hạn 51

3.4.3 Mạng cube 53

3.4.4 Mạng Mesh 54

3.4.5 Mạng k-ary n-Cube 56

3.5 Phân tích hiệu năng 57

3.5.1 Mạng động 57

3.5.2 Mạng tĩnh 60

3.6 Mô hình tính toán 62

3.6.1 Mô hình khoảng thời gian bằng nhau 62

3.6.2 Mô hình tính toán song song với đoạn tuần tự 64

3.7 Các luật chi phối kiến trúc song song 66

3.7.1 Luật Grosch 66

3.7.2 Luật Amdahl 66

3.7.3 Luật Gustafson-Barsis 68

3.8 Hiệu năng của mạng tương kết 69

3.8.1 Băng thông của mạng Crossbar 70

3.8.2 Băng thông của mạng đa bus 72

3.8.3 Băng thông của mạng đa tầng 73

3.9 Khả năng mở rộng của kiến trúc song song 75

3.10 Chuẩn đo hiệu năng 79

4 PHÁT TRIỂN ỨNG DỤNG 86

4.1 Các thành phần của mini MIMD 86

4.2 Kiến trúc của mini MIMD 86

Trang 5

4.3 Đặc điểm của mini MIMD 87

4.3.1 Xử lý tranh chấp bộ nhớ 88

4.3.2 Phân xử lệnh 89

4.4 Cài đặt thiết kế 91

5 ĐÁNH GIÁ KẾT QUẢ 93

6 KẾT LUẬN 96

7 PHỤ LỤC 97

7.1 Mô hình chip PTBDC8x 97

7.2 Pipeplining trong PTBDC8x 97

7.3 Hệ thống mini MIMD 98

7.4 Phân xử lệnh trong mini MIMD 99

7.5 Mã nguồn VHDL của mạng tương kết 100

7.6 Hệ thống đơn xử lý 102

7.7 Tập lệnh của PTBDC8x 103

7.8 Chương trình chạy thử nghiệm 104

8 TÀI LIỆU THAM KHẢO 106

Trang 6

Danh mục hình

Hình 2-1: Kiến trúc SISD 16

Hình 2-2: Kiến trúc SIMD 17

Hình 2-3: Kiến trúc MIMD 17

Hình 2-4: Phân loại kiến trúc vô hướng và mảng 17

Hình 2-5: Kiến trúc SIMD 19

Hình 2-6: Hai mô hình kiến trúc SIMD 20

Hình 2-7: Hai mô hình kiến trúc MIMD 21

Hình 2-8: Sự kết hợp của mô hình DSM 22

Hình 2-9: Phân loại mạng tương kết 26

Hình 2-10: Mạng tương kết bộ nhớ chia sẻ 28

Hình 2-11: Hệ thống đơn bus và đa bus 28

Hình 2-12: Một số mạng tĩnh thông dụng 29

Hình 2-13: Một số mạng động thông dụng 30

Hình 3-1: Phân loại mạng tương kết dựa trên topo 33

Hình 3-2: Mạng tương kết động đơn bus 34

Hình 3-3: Một số mô hình mạng đa bus 36

Hình 3-4: Kỹ thuật bus handshaking 38

Hình 3-5: Mạng crossbar 8 x 8 39

Hình 3-6: Các cách cấu hình chuyển mạch 2 x 2 40

Hình 3-7: Mạng cube với N = 8 41

Hình 3-8: Mạng PM2I với N = 8 42

Hình 3-9: Mạng tương kết đa tầng 44

Hình 3-10: Qui tắc chuyển mạch bằng địa chỉ đích 44

Hình 3-11: Mạng Shuffle-Exchange (SEN) kích thước 8 x 8 45

Hình 3-12: Mạng Banyan 8 x 8 46

Trang 7

Hình 3-13: Mạng Omega N = 8 47

Hình 3-14: Mạng Benes 8 x 8 48

Hình 3-15: Mạng Clos ba tầng 49

Hình 3-16: Mạng kết nối đầy đủ với N = 6 51

Hình 3-17: Mạng tĩnh kết nối giới hạn 52

Hình 3-18: Khối 4 chiều 54

Hình 3-19: Mạng Mesh 3 x 3 x 2 55

Hình 3-20: Mạng k-ary n-cube 56

Hình 3-21: Mạng crossbar 8 x 8 với 1 điểm lỗi 58

Hình 3-22: Hệ thống mạng đa bus 59

Hình 3-23: Ví dụ về đoạn chương trình 64

Hình 3-24: Đồ thị Grosch biểu diễn quan hệ Năng suất - Chi phí 66

Hình 3-25: Băng thông của mạng Crossbar 3 x 3 70

Hình 3-26: Hệ thống đa bus 72

Hình 27: Đo hiệu năng bằng Dhrystone (chỉ số MIPS) và Whetstone (MFLOPS) bởi SiSoft Sandra 79

Hình 28: Đo hiệu năng Intel Pentium 4 520 theo SPEC2000 85

Hình 29: Sơ đồ khối hệ thống mini MIMD 86

Hình 30: Kiến trúc của hệ thống mini MIMD 87

Hình 31: Giới hạn đa truy xuất của bộ nhớ chia sẻ 88

Hình 32: Ưu điểm của cách phân địa chỉ chẵn lẻ 89

Hình 33: Nguyên lý của khối điều khiển trong mini MIMD 90

Hình 34: Minh họa chương trình dịch BDC_Compiler 92

Trang 8

Danh mục bảng

Bảng 1: Bốn kỷ nguyên Computing 14

Bảng 2: So sánh hiệu năng của một số mạng động 29

Bảng 3: So sánh hiệu năng của một số mạng tĩnh 31

Bảng 4: Đặc trưng của một số hệ thống đơn bus thương mại 34

Bảng 5: Đặc tính của một số hệ thống đa bus 35

Bảng 6: Số lần giả lập chuyển đổi giữa 3 kiểu mạng 43

Bảng 7: So sánh hiệu năng của một số mạng động 60

Bảng 8: So sánh hiệu năng của một số mạng tĩnh 62

Bảng 9: Ví dụ về đặc tính topo của một số mạng tĩnh 69

Bảng 10: Đặc tính topo của một số mạng tĩnh 69

Bảng 11: Hiệu năng của một số mạng động 71

Bảng 12: Khoảng cách từ node 0000 tới các node khác 74

Bảng 13: Hiệu năng của một số mạng tĩnh 74

Bảng 14: Hệ số tăng tốc tương ứng với các giá trị của m và n 76

Bảng 15: Hiệu năng tương ứng với các giá trị của m và n 76

Bảng 16: Chương trình đo số nguyên CINT92 80

Bảng 17: Chương trình đo số dấu phẩy động CFP92 80

Bảng 18: 5 SPEC92 so sánh thời gian thực hiện giữa 2 hệ thống 82

Bảng 19: Ví dụ về kết quả đo theo chuẩn SPEC95 83

Bảng 20: Hệ thống chuẩn số nguyên CPU200 84

Bảng 21: Hệ` thống chuẩn số dấu phẩy động CPU200 84

Bảng 22: Kết quả chạy chương trình trên mini MIMD 93

Trang 9

Bảng kí hiệu và viết tắt

CCNs : Completely Connected Networks

COMA : Cache Only Memory Architecture

DSM : Distributed Shared Memory

IN : Interconnection Network

ISC : Inter-Stage Connection

LAN : Local Area Network

LCNs : Limited Connection Networks

MBCBMC : Multiple Bus with Class-Based Memory Connection

MBFBMC : Multiple Bus with Full Bus-Memory Connection

MBPBMC : Multiple Bus with Partial Bus Memory Connection

MBSBMC : Multiple Bus with Single Bus Memory Connection

MIMD : Multiple Instruction Multiple Data

MINs : Multistage Interconnection Networks

MISD : Multiple Instruction Single Data

NUMA : NonUniform Memory Access

SEN : Shuffle-Exchange Network

DFS : Design For Scalability

SIMD : Single Instruction Multiple Data

SISD : Single Instruction Single Data

SMP : Symmetric MultiProcessor

UMA : Uniform Memory Access

WAN : Wide Area Network

Trang 10

1 TỔNG QUAN ĐỀ TÀI

Các siêu máy tính đơn bộ xử lý hiện nay đã đạt được tốc độ và hiệu năng mạnh mẽ, đáng kinh ngạc và đã đạt tới giới hạn về mặt phần cứng, về mặt vật lý của công nghệ sản xuất Điều này đã đóng lại xu thế đơn xử lý và đòi hỏi phải có một kỹ thuật mới tiên tiến khác thay thế để nâng cao hơn nữa khả năng tính toán của hệ thống xử lý Hiện nay, trên thế giới, các bộ xử lý tiến tiến, các hệ thống tính toán tích hợp, phức tạp có tốc độ cao đều áp dụng kỹ thuật xử lý song song, coi đây như

là một kỹ thuật tiên tiến, khả thi, có tính mở cao Có thể thấy, sự phát triển mạnh mẽ của các thế hệ bộ xử lý Dual-Core, Quad-Core, các hệ thống đa bộ xử lý như Digital AlphaStation, Sun Sparc đã cho thấy khả năng ứng dụng vượt trội của kỹ thuật xử

lý song song trong

Nắm bắt xu hướng phát triển hiện nay của các bộ xử lý, đề tài sẽ trình bày các nghiên cứu kiến trúc máy tính nâng cao với kỹ thuật xử lý song song sử dụng nhiều

đơn vị xử lý nhằm mục đích “Tối ưu hóa trong thiết kế các bộ xử lý số song

song” Đề tài được chia làm 4 phần chính bao gồm: cơ sở lý thuyết, phân tích hệ

thống, phát triển ứng dụng, kết luận và đánh giá

Phần Cơ sở lý thuyết trình bày về kiến trúc máy tính cao cấp, các cách phân loại

kiến trúc máy tính, các thành phần và vai trò của chúng trong một hệ thống số xử lý song song

Phần Phân tích hệ thống mô tả chi tiết kiến trúc các hệ thống đa xử lý, những giải

pháp thiết kế khác nhau cho các mạng tương kết giữa các bộ xử lý, đánh giá ưu nhược điểm của từng mạng Tiếp theo, đề tài trình bày các công thức đánh giá và so sánh hiệu năng, băng thông của từng mạng tương kết Sau đó, giới hạn và ràng buộc của kiến trúc song song sẽ được thể hiện dưới dạng các định luật, thể hiện mối liên

hệ giữa các thông số như hệ số tăng tốc, chi phí, số bộ xử lý, kích thước bài toán… Khả năng mở rộng và các phương pháp đánh giá khả năng mở rộng của một hệ thống song song Cuối cùng, đề tài giới thiệu về một số chuẩn đo hiệu năng phổ biến

Phần Phát triển ứng dụng trình bày về thiết kế của 1 hệ thống mini MIMD gồm 2

bộ xử lý PTBDC8x và 2 bộ nhớ chia sẻ, sử dụng mạng tương kết đa bus Bộ xử lý PTBDC8x nói riêng và hệ thống mini MIMD được xây dựng trên ngôn ngữ VHDL

Hệ thống mini MIMD và bộ xử lý đơn sẽ được chạy giả lập độc lập với cùng một chương trình phần mềm, cho phép đánh giá tốc độ và so sánh hiệu năng

Trang 11

Phần Đánh giá kết quả trình bày chi tiết các kết quả, số liệu mà phần Phát triền ứng

dụng đã thực hiện được Ngoài ra, phần này cũng trình bày một số các vấn đề phát sinh và hướng xử lý trong quá trình thực hiện ứng dụng

Trang 12

2 CƠ SỞ LÝ THUYẾT

Kiến trúc máy tính luôn luôn được thay đổi, nâng cấp để nâng cao hiệu năng xử lý của các bộ xử lý Hiệu năng đó có thể được cải tiến bằng cách tăng cường mật độ tích hợp, công nghệ chế tạo, kỹ thuật gói – packaging technology và kỹ thuật song song Nếu chỉ sử dụng một siêu máy tính với 1 bộ xử lý duy nhất, chúng ta sẽ nhanh chóng gặp phải những giới hạn về phần cứng, những giới hạn về mặt vật lý trong công nghệ sản xuất chip, vì thế đã giới hạn tốc độ và sức mạnh tính toán của các bộ

xử lý.Tuy nhiên, khuynh hướng trên đã dần dần kết thúc và chuyển sang một giai đoạn mới Trong phần này, đề tài trình bày về cơ sở lý thuyết chung về kiến trúc máy tính nâng cao với kỹ thuật xử lý song song sử dụng nhiều đơn vị xử lý

song song

Các kiến trúc sư tin học luôn luôn cố gắng để nâng cao hiệu năng của các cấu trúc máy tính của họ Hiệu năng cao có thể đạt được từ các mạch chạy nhanh và dày đặc, công nghệ đóng gói, và công nghệ xử lý song song Những siêu máy tính một bộ xử

lý đã đạt được tốc độ chưa từng có và đã đẩy ngành công nghệ phần cứng đến giới hạn vật lý của ngành sản xuất chip Tuy nhiên, xu hướng này sẽ sớm kết thúc do những giới hạn về mặt cấu trúc và vật lý hạn chế sức tính toán mà hệ thống xử lý đơn có thể đạt được Trong phần này, chúng ta sẽ nghiên cứu cấu trúc máy tính cao cấp áp dụng công nghệ song song bằng nhiều đơn vị xử lý

Những bộ xử lý song song là những hệ thống máy tính gồm nhiều đơn vị xử lý kết nối với nhau qua một số mạng tương kết kết hợp với những phần mềm cần thiết để giúp các đơn vị xử lý này cùng hoạt động Có 2 nhân tố chính để phân loại những

hệ thống này là: bản thân những đơn vị xử lý và mạng tương kết nối chúng với nhau Các đơn vị xử lý có thể giao tiếp và tương tác lẫn nhau bằng phương pháp chia sẻ bộ nhớ - shared memory method - hoặc phương pháp truyền thông điệp - message passing methods Mạng tương kết dùng cho các hệ thống chia sẻ bộ nhớ có thể được phân loại thành mạng tương kết kiểu bus và mạng tương kết kiểu switch Đối với các hệ thống truyền thông điệp, mạng tương kết được chia làm dạng động

là dạng tĩnh Các kết nối dạng tĩnh có topo cố định không thay đổi khi các chương

Trang 13

trình đang chạy Các kết nối động tạo ra các liên kết tạm chỉ khi chương trình được thực hiện

Các tranh luận chủ yếu xung quanh việc sử dụng những đa bộ đa xử lý là làm thế nào để tạo nên những chiếc máy tính siêu mạnh chỉ đơn giản bằng cách kết nối nhiều bộ xử lý với nhau.Một bộ đa xử lý được coi là có thể đạt được tốc độ nhanh hơn cả hệ thống xử đơn nhanh nhất Ngoài ra, một bộ đa xử lý tạo nên từ nhiều bộ đơn xử lý sẽ có chi phí thấp hơn so với việc tạo nên một bộ xử lý đơn có hiệu năng cao Một lợi thế nữa của một bộ đa xử lý là nó có thể giảm khả năng hỏng hóc Nếu một bộ xử lý bị hỏng thì các bộ xử lý còn lại vẫn có thể tiếp tục cung cấp dịch vụ mặc dụ hiệu năng sẽ bị giảm đi

2.1.1 Bốn kỷ nguyên computing

Hầu hết các nhà khoa học trong lĩnh vực tin học đều thống nhất rằng có 4 kỷ nguyên của kỹ thuật tính toán computing, đó là : Batch, Chia sẻ thời gian, Máy tính bàn và Mạng Bảng 1.1 được sửa đổi từ bảng do Lawrence Tesler đề xuất Trong bảng này những đặc tính tiêu biểu của từng kỷ nguyên computing có mối quan hệ với từng thập kỷ của tin học, bắt đầu từ năm 1960

2.1.2 Kỷ nguyên ‘Batch’

Đến năm 1965, chiếc máy tính lớn của IBM loại System/360 đã thống trị hầu hết các trung tấm tin học của các công ty Đây là loại máy xử lý BAT tiêu biểu, đặc trưng với các thiết bị đọc card đục lỗ, các ổ tệp và các ổ đĩa nhưng không có mối liên kết nào vượt quá phạm vi phòng máy tính Chiếc máy tính này đã thiết lập nên chuẩn công thức tính toán bằng các máy tính cỡ to tập trung IBM System/360 có một hệ hệ điều hành, lập trình đa ngôn ngữ và có ổ lưu trức tới 10 megabytes System/360 này chất đầy cả phòng máy tính với những hộp kim loại và những con người điều khiển để cho chúng hoạt động Các mạch bán dẫn của thiết bị này tương đối nhanh Những người sử dụng đòi hỏi tốc độ cao có thể mua thêm bộ nhớ lõi nam châm lên tới 1 megabye của 32 bit words Chiếc máy này đủ lớn để hỗ trợ nhiều chương trình cùng chạy trong bộ nhớ mặc dù đơn vị xử lý trung tâm CPU phải chuyển từ chương trình này sang chương trình khác

2.1.3 Kỷ nguyên ‘Chia sẻ thời gian’

Những chiếc máy tính cỡ to của kỷ nguyên BAT đã có vị trí vững chắc vào nhứng năm cuối thập niên 1960 khi những tiến bộ trong công nghệ chất bán dẫn đã tạo nên

Trang 14

tính khả thi của bộ nhớ dạng chất rắn và các mạch tích hợp Những tiến bộ về công nghệ phần cứng này đã sinh ra kỷ nguyên của những chiếc máy tính mini Những chiếc tính này nhỏ, nhanh và chi phí không đắt lắm khiến cho các công ty có thể mua cho các phòng ban cấp dưới Tuy nhiên người dùng đầu cuối vẫn chưa được sử dụng chiếc máy tính này vì nó vẫn quá đắt và khó sử dụng Những chiếc máy tính mini do DEC, Prime và Data General sản xuất đã bắt đầu cho việc định nghĩa computing theo một cách mới, đó là chia sẽ thời gian - time sharing Vào những năm 1970 người ta đã thấy rõ là có 2 kiểu máy tính doanh nghiệp và thương mại cùng tồn tại đó là :

• máy tính xử lý dữ liệu tập trung

• máy tính mini chia sẻ thời gian

Song song với sản xuất các máy tính có tốc độ nhỏ, những chiếc siêu máy tính cũng bắt đầu vào cuộc Một chiếc siêu máy tính như thế, CDC6600, đã được tổng công ty Control Data giới thiệu vào năm 1961 Tổng công ty Cray Research vào năm 1976

đã đưa ra chiếc siêu máy tính có giá thành và hiệu năng tốt nhất tên là Cray-I

Bảng 1: Bốn kỷ nguyên Computing

2.1.4 Kỷ nguyên ‘Máy tính bàn’

Những chiếc máy tính cá nhân được giới thiệu vào năm 1977 bởi Altair, Processor Technology, North Star, Tandy, Commodore, Apple và nhiều hãng khác đã nâng cao năng suất làm việc của người dùng lên rất nhiều lần Những chiếc máy tính cá nhân của Compaq, Apple, IBM, Dell và nhiều hãng khác nhanh chóng thâm nhập khắp nơi và làm thay đổi bộ mặt của computing

Trang 15

Đến năm 1990, hệ thống mạng LAN của các máy tính cá nhân mạnh và những chiếc workstations bắt đầu thay thế những chiếc máy tính cỡ lớn – mainframes - và những chiếc máy tính mini Giờ đây, sức mạnh của một chiếc máy to lớn nhất thì một chiếc một chiếc máy tính để bàn với giá chỉ bằng 1/10 cũng có thể đạt được Hơn thế nữa, những chiếc máy tính để bàn đơn lẻ này đã nhanh chóng được kết nối vào mạng liên kết máy tính rộng lớn thông qua mạng diện rộng WAN

2.1.5 Kỷ nguyên ‘Mạng’

Kỷ nguyên thứ tư của tin học là kỷ nguyên sôi nổi nhất nhờ vào sự phát triển nhanh chóng của công nghệ mạng Công nghệ mạng đã nhanh chóng vượt xa so với công nghệ xử lý trong hầu hết những năm của thập kỷ 1990s Điều này giải thích sự phát triển của kỷ nguyên mạng liệt kê trong bảng 1.1 Sự nhảy vọt của hiệu năng mạng

đã chuyển quan niệm từ xu hướng xử lý dựa trên các bộ xử lý trung tâm sang quan niệm xử lý trên cơ sở mạng

Những năm 1980s và 1990s đã chứng kiến sự ra đời của những chiếc máy tính thương mại áp dụng công nghệ song song với đa bộ xử lý Thông thường, chúng có thể phân loại thành hai loại chính:

2.1.6 Xu hướng hiện nay

Một trong những xu hướng rõ rệt của computing là sự thay thế các máy tính song song chuyên dụng đắt tiền bằng các cụm máy tính có giá thành thấp hơn Cụm máy

là một tập hợp các máy tính đơn lẻ kết nối với nhau bằng các mạng tương kết Ngoài ra sự thâm nhập rộng rãi của Internet đã góp phần tạo ra sự quan tâm đối với tính toán mạng và gần đây là tính toán lưới Lưới là những nền tảng tính toán phân

bổ theo địa lý Chúng giúp chúng ta tiếp cận với các tiện nghi tính toán cao cấp - high end computational facilities - với chi phí thấp, khả năng thâm nhập rộng rãi, nhất quán và tin cậy

Trang 16

Một nguyên tắc phân loại cấu trúc máy tính phổ biến nhất được Flynn đưa ra vào năm 1996 Cách thức phân loại của ông dựa trên khái niệm dòng thông tin - stream

of information Có 2 loại thông tin chạy vào một bộ xử lý đó là: lệnh và dữ liệu Dòng chảy lệnh được định nghĩa là trình tự các lệnh mà đơn vị xử lý thực hiện Dòng chảy thông tin được định nghĩa là lưu lượng dữ liệu được trao đổi giữa bộ nhớ

và đơn vị xử lý Theo sự phân loại của Flynn, các dòng lệnh và dòng dự liệu đều có thể là đơn lẻ hoặc nhiều Do đó, kiến trúc máy tính có thể được phân ra thành 4 loại sau:

- Đơn dòng lệnh đơn và đơn dòng dữ liệu – SISD - single instruction single data streams

- Đơn dòng lệnh đơn và đa dòng dữ liệu – SIMD - single instruction multiple data streams

- Đa dòng lệnh đa và đơn dòng dữ liệu – MISD - multiple instruction single data streams

- Đa dòng lệnh và đa dòng dữ liệu – MIMD - multiple instruction multiple data streams

Những chiếc máy tính von Neurmann một bộ xử lý truyền thống được xếp vào kiến trúc SISD Những chiếc máy tính song song (áp dụng công nghệ song song, parallel computer) được xếp vào SIMD hoặc MIMD Khi chỉ có một khối điều khiển duy nhất và tất cả các bộ xử lý thực hiện cùng một lệnh theo kiểu đồng bộ thì chiếc máy song song đó được xét vào lại SIMD Trong chiếc máy MIMD, mỗi bộ xử lý có đơn

vị điều khiển CU riêng và có thể thực hiện các lệnh khác nhau trên các dữ liệu khác nhau Trong MISD, cùng một dòng dữ liệu chạy qua mảng tuyến tính các bộ xử lý thực hiện các lệnh khác nhau Trong thực tế không thể làm được một chiếc máy MISD nào, tuy nhiên một số tác giả đã coi những chiếc máy sử dụng kỹ thuật pipeline và những bộ máy mảng tâm thu – systolic array computers là MISD Các hình 1.1, 1.2 và 1.3 lần lượt miêu tả mô hình của SISD, SIMD và MIMD

Hình 2-1: Kiến trúc SISD

Trang 17

Hình 2-2: Kiến trúc SIMD

Hình 2-3: Kiến trúc MIMD

Vào năm 1978 thì D.J.Kuck đã mở rộng thêm thuyết phân loại của Flynn Theo sự phân loại của ông, ông chia dòng lệnh thành dòng lệnh đơn (2 loại: vô hướng và loại mảng) và dòng lệnh đa (2 loại: vô hướng và mảng) Theo sự phân loại của Kuck, dòng dữ liệu được gọi là dòng thực hiện (execution stream) và cũng được mở rộng thành dòng dữ liệu đơn (2 loại: loại vô hướng và loại mảng) và dòng dữ liệu đa (2 loại: loại vô hướng và loại mảng) Sự kết hợp của những loại dòng này đã tạo nên tất cả 16 loại cấu trúc máy tính

Hình 2-4: Phân loại kiến trúc vô hướng và mảng

Trang 18

Bộ xử lý vô hướng tuần tự (serial scalar) Đây là vi xử lý có kiến trúc truyền

thống von Neuman Các mệnh lệnh được thực thi một cách tuần tự trên một đơn vị thực hiện lệnh (IEU), lệnh này thực hiện xong mới đến lượt lệnh khác Dữ liệu được IEU xử lý thông qua các thanh ghi vô hướng Thanh ghi vô hướng là thanh ghi trên

đó chỉ chứa một số nguyên hoặc một số thực Thời gian toàn bộ để thực hiện một chương trình bằng tổng thời gian thực thi tất cả các lệnh Hiệu suất của kiến trúc này bị giới hạn bởi tốc độ xung của CPU

Vi xử lý siêu vô hướng (super-scalar) Bộ vi xử lý này cũng sử dụng các thanh ghi

vô hướng, tuy nhiên khác với bộ vi xử lý vô hướng tuần tự, nó chứa nhiều hơn một đơn vị thực hiện lệnh Kiến trúc này giúp CPU có thể xử lý công việc song song bởi các IEU khác nhau Nó phù hợp với mô hình lập trình Multiple Instruction Multiple Data(MIMD) Hầu hết các bộ vi xử lý cho PC và Workstation trên thị trường hiện nay là super-scalar processor, ví dụ: Intel Pentium 4 có 6 pipelines, AMD Athlon

XP có 9 pipelines,

Bộ vi xử lý vector (vector processor) Bộ vi xử lý này sử dụng chiến thuật song

song dữ liệu Giống như bộ vi xử lý vô hướng tuần tự, nó cũng chỉ có một đơn vị thực hiện lệnh IEU Tuy nhiên thay vì chỉ xử lý được một số nguyên hay thực, IEU này có thể xử lý một mảng các số nguyên hoặc thực mỗi lần bằng cách làm việc với các thanh ghi vector Thanh ghi vector là thanh ghi chứa được một mảng các số nguyên hoặc thực Bộ vi xử lý này phù hợp với các mô hình lập trình Single Instruction Multiple Data (SIMD) Cấu trúc vector thường thấy trên các siêu máy tính thương mại hiệu suất cao, được sử dụng trong các ứng dụng khoa học, ví dụ: CRAY, NEC,

Trang 19

Kiến trúc SIMD trong mô hình tính toán song song gồm 2 phần: phần máy tính ngoại vi (thường là máy Von Neuman), và một mảng đơn vị xử lý như trong hình dưới đây

Máy Von Neumann

có thể thực hiện đồng thời hoặc khiến cho dữ liệu di chuyển trong bộ nhớ Một chương trình nào đó hoàn toàn có thể được phát triển và chạy trong thiết bị ngoại vi

sử dụng ngôn ngữ lập trình nối tiếp truyền thống Chương trình ứng dụng được thực hiện bởi thiết bị ngoại vi theo cách tuần tự thông thường nhưng nó phát ra các lệnh đến mảng đơn vị xử lý để nhằm thao tác SIMD song song Sự giống nhau giữa lập trình song song và nối tiếp là một trong những ưu điểm của cơ chế song song hóa

dữ liệu Mỗi đơn vị xử lý luôn thực hiện các thao tác giống nhau tại cùng một thời điểm, hoặc là không làm gì cả.Trong kiến trúc SIMD, việc song song hóa đạt được kết quả tuyệt vời khi áp dụng cho các thao tác giống nhau trên một tập dữ liệu lớn Kiến trúc này rất hữu ích khi sử dụng để giải quyết vấn đề: dữ liệu khối lượng lớn cần cập nhật Hơn thế nữa, nó đặc biệt hiệu quả trong trường hợp xử lý nhiều phép tính số một cách thường xuyên

Trang 20

Hình 2-6: Hai mô hình kiến trúc SIMD

Có hai mô hình kiến trúc SIMD chính, được thể hiện trong Hình 2-6

- Mô hình Vector Computer

- Mô hình Array Processor

Trong mô hình đầu tiên, mỗi đơn vị xử lý có một bộ nhớ riêng Các đơn vị xử lý chỉ

có thể kết nối với nhau thông qua mạng tương kết Nếu mạng tương kết không thể cung cấp một kết nối trực tiếp giữa một cặp xử lý nào đó thì cặp này có thể truyền

dữ liệu thông qua một đơn vị xử lý trung gian Máy ILLIAC IV cũng sử dụng mô hình tương tự như vậy Theo như cấu trúc mạng tương kết dạng ma trận vị trí 8x8

Trang 21

bên trong, ILLIAC IV cho phép mỗi đơn vị xử lý có thể kết nối trực tiếp tới 4 đơn

vị xử lý lân cận, tức là đơn vị xử lý thứ i có thể kết nối trực tiếp với đơn vị xử lý 1), (i+1), (i-8) và (i+8)

(i-Trong mô hình thứ hai, cả bộ nhớ bộ và đơn vị xử lý đều giao tiếp với nhau thông qua mạng tương kết Hai đơn vị xử lý bất kỳ có thể truyền dữ liệu cho nhau thông qua một hoặc nhiều bộ nhớ trung gian nào đó hoặc có thể thông qua một hoặc nhiều đơn vị xử lý lân cận BSP – Buroughs’ Scientific Processor – là ví dụ điển hình sử dụng theo mô hình này

Kiến trúc song song Đa lệnh đa dữ liệu – MIMD – có nhiều đơn vị xử lý và đơn vị

bộ nhớ, kết nối với nhau thông qua một số mạng tương kết Đối với dạng kiến trúc này, cũng có hai mô hình khác nhau:

- Mô hình bộ nhớ chia sẻ (Multiprocesors)

- Mô hình bộ nhớ phân tán (Multicomputer), còn có tên gọi khác là Truyền thông điệp – Message Passing

Kiến trúc bộ nhớ chia sẻ Kiến trúc bộ nhớ phân tán

Hình 2-7: Hai mô hình kiến trúc MIMD

Hệ thống bộ nhớ chia sẻ thường được ứng dụng trong kiến trúc mà tất cả các đơn vị

xử lý đều sử dụng chung một bộ nhớ toàn cục Đây là các hệ thống máy chủ đặc trưng, giao tiếp bằng bus và khối điều khiển bộ nhớ cache Kiến trúc bus/cache giúp làm giảm sự phụ thuộc của hệ thống vào dạng bộ nhớ nhiều cổng đắt tiền cũng như

là sự cần thiết phải nhận một mô hình truyền thông điệp khi phát triển phần mềm ứng dụng Bởi vì việc truy cập vào bộ nhớ chia sẻ là không phân biệt và như nhau

Trang 22

với mọi đơn vị xử lý, hệ thống này còn được gọi với tên khác là SMP –Symmetric MultiProcessor – Đa bộ xử lý đối xứng

Trong hệ thống SMP, mỗi bộ xử lý có quyền và khả năng, tốc độ đọc/ghi bộ nhớ là như nhau Mỗi một máy tính có tối thiểu 2 bộ xử lý giống nhau và có thể thực hiện chức năng giống nhau Toàn hệ thống được điều khiển bởi một hệ điều hành phân tán Ưu điểm của mô hình này là các công việc có thể thực hiện song song Hơn thế nữa, khi một bộ xử lý bị sự cố, hệ thống sẽ không bị dừng lại vì các bộ xử lý có thể thực hiện chức năng giống nhau Ưu điểm nữa là khả năng mở rộng dễ dàng, có thể tăng cường hiệu năng xử lý bằng cách thêm bộ xử lý Có thể kể tới một số ví dụ về sản phầm thương mại theo mô hình SMP là máy chủ đa bộ xử lý của Sun Microsystem, và máy chủ đa bộ xử lý của Silicon Graphic

Hệ thống bộ nhớ phân tán bao gồm một mạng tương kết kết nối các điểm trong đó mỗi điểm là một bộ xử lý và một bộ nhớ cục bộ Ở đây, hoàn toàn không có bộ nhớ toàn cục, vì vậy việc di chuyển dữ liệu từ bộ nhớ này sang bộ nhớ khác là nhờ vào phương pháp truyền thông điệp Quá trình truyền thông điệp dựa vào một cặp lệnh chính là Send/Receive, phải được viết trước trong chương trình ứng dụng của người lập trình Điều đó đòi hỏi người lập trình phải học về mô hình truyền thông điệp, bao gồm cả việc sao chép và phân phối dữ liệu được xác định cụ thể trước Một vài sản phẩm điển hình theo mô hình này là nCUBE, iPSC/2 và các hệ thống dựa trên nền phần mềm trung gian

Hình 2-8: Sự kết hợp của mô hình DSM

Có thể nhận thấy rõ ràng rằng mô hình bộ nhớ phân tán chỉ là một giải pháp hiệu quả nhằm tăng cường số lượng bộ xử lý được quản lý bởi một hệ thống phân tán và song song Nếu tăng dần phạm vi của hệ thống ngày càng lớn, điều tất yếu là hệ thống buộc phải sử dụng kỹ thuật phân tán Tuy vậy, trong thực tế tồn tại hai yếu tố trái ngược nhau: lập trình theo mô hình bộ nhớ chia sẻ dễ dàng hơn và thiết kế hệ thống theo mô hình bộ nhớ phân tán tạo cho hệ thống khả năng mở rộng Kết quả là một mô hình lai xuất hiện, mô hình bộ nhớ chia sẻ phân tán DSM – Distributed Shared Memory – đã được ứng dụng vào các sản phẩm như SGI 2000 Trong những

hệ thống như vậy, bộ nhớ được phân tán về mặt vật lý, tức là kiến trúc phần cứng tuân theo thiết kế dạng bộ nhớ phân tán nhưng dạng lập trình thì tuân theo tư duy

Trang 23

kiểu bộ nhớ chia sẻ Để có hiệu quả, phần mềm phải phủ lên trên phần cứng Về phía người lập trình, kiến trúc trông giống và xử sự giống như kiểu bộ nhớ chia sẻ, nhưng thực tế kiến trúc truyền thông điệp đang tồn tại ngầm trong phần mềm Tóm lại, mô hình DSM là sự lai tạp để tăng cường hiệu năng cho cả hai trường phái trên

2.4.1 Tổ chức kiến trúc bộ nhớ chia sẻ

Mô hình bộ nhớ chia sẻ là mô hình trong đó các bộ xử lý giao tiếp đọc và ghi một

bộ nhớ toàn cục, trong đó khả năng truy xuất là tương đương nhau với mọi bộ xử lý Mỗi bộ xử lý có thể có các tài nguyên nhớ khác như các thanh ghi, bộ đệm, cache,

và các bank nhớ cục bộ Tuy nhiên, có một số vấn đề phát sinh khi thiết kế theo mô hình bộ nhớ chia sẻ cần phải cân nhắc Đó là vấn đề điều khiển truy cập, đồng bộ hóa, bảo vệ và bảo mật Điều khiển truy xuất quyết định truy xuất nào được phép với tài nguyên nào Mô hình điều khiển truy xuất đòi hỏi phải kiểm tra mọi yêu cầu truy xuất do các bộ xử lý đưa ra đối với bộ nhớ chia sẻ, ngược lại với nội dung của bảng điều khiển truy xuất Bộ xử lý cuối cùng chứa cờ báo hiệu sự hợp lệ của mỗi lần thử truy xuất Nếu có những yêu cầu truy xuất tài nguyên, thì trừ phi việc truy cập kết thúc, tất cả sự truy cập không được phép và tiến trình không hợp lệ đều bị chặn lại Các yêu cầu của các tiến trình chia sẻ có thể làm thay đổi nội dung của bảng điều khiển truy cập trong suốt quá trình thực hiện Các cờ hiệu của bộ điều khiển truy xuất với các luật đồng bộ hóa sẽ quyết định chức năng của hệ thống Đồng bộ hóa giới hạn thời lượng truy xuất của các tiến trình để có thể chia sẻ bộ nhớ, bảo đảm cho thông tin lưu chuyển hợp lý và bảo đảm các chức năng của hệ thống Tiếp theo, vấn đề bảo vệ là một tính năng cần có của hệ thống, để ngăn chặn các bộ xử lý cố tạo ra cảc truy xuất vào tài nguyên thuộc bộ xử lý khác Chia sẻ và bảo vệ là hai mặt trái ngược hẳn với nhau; chia sẻ nhằm cho phép truy cập, trong khi đó bảo vệ nhằm để giới hạn nó

Một hệ thống bộ nhớ đơn giản nhất bao gồm một bộ nhớ duy nhất được truy cập bởi hai bộ xử lý Các yêu cầu gửi tới module nhớ thông qua hai cổng giao tiếp của nó Một bộ trọng tài bên trong module nhớ sẽ truyền đi các yêu cầu này thông qua khối điều khiển bộ nhớ Nếu module nhớ đang rảnh và chỉ có một yêu cầu được gửi tới,

bộ trọng tài sẽ gửi yêu cầu đó tới khối điều khiển bộ nhớ và yêu cầu sẽ được thực hiện Ngay sau đó, module nhớ sẽ được đặt vào trạng thái bận khi yêu cầu đang được đáp ứng Nếu một yêu cầu mới lại gửi đến trong khi bộ nhớ đang bận thực hiện một yêu cầu trước đó, bộ xử lý gửi yêu cầu mới đó sẽ phải duy trì yêu cầu đó cho tới khi bộ nhớ được rỗi hoặc bộ xử lý có thể gửi lại yêu cầu vào một thời điểm khác

Trang 24

Do phụ thuộc vào mạng tương kết nên một hệ thống bộ nhớ chia sẻ có thể chia thành các loại hệ thống sau:

• Truy cập bộ nhớ đồng nhất (uniform memory access, UMA),

• Truy cập bộ nhớ không đồng nhất (NUMA),

• Cấu trúc bộ nhớ chỉ có cache (cache only memory architecture, COMA) Trong hệ thống UMA, các bộ xử lý đều truy cập được vào bộ nhớ chia sẻ thông qua mạng tương kết giống như bộ xử lý truy cập vào bộ nhớ của nó Do đó, tất cả các bộ

xử đều có quyền truy cập như nhau đến bất kỳ một điểm nào trong bộ nhớ Mạng tương kết được dùng trong UMA có thể là bus đơn, bus đa, crossbar hoặc bộ nhớ đa cổng

Trong hệ thống NUMA, mỗi bộ xử lý gắn liền với một phần cụ thể nào đó của bộ nhớ chia sẻ Bộ nhớ chỉ có một không gian địa chỉ đơn nhất Vì thế, bất kỳ bộ xử lý nào cũng có thể truy cập trực tiếp vào bất cứ địa điểm nào của bộ nhớ sử dụng địa chỉ thật của nó Tuy nhiên, thời gian truy cập đến các mô đun phụ thuộc vào khoảng cách đến bộ xử lý Điều này khiến cho thời gian truy cập bộ nhớ không được đồng nhất Một số các cấu trúc được sử dụng để tương kết các bộ xử lý đến các module

bộ nhớ trong NUMA

Giống như NUMA, mỗi bộ xử lý có một phần của bộ nhớ chia sẻ trong COMA Tuy nhiên, trong trường hợp này bộ nhớ chia sẻ bao gồm bộ nhớ cache Một hệ thống COMA đòi hỏi dữ liệu phải được di trú đến bộ xử lý yêu cầu nó

nối với nhau bằng nhiều cách như cấu trúc tương kết có kiến trúc chuyên dụng

Trang 25

(architecture specific interconnection structure) đến các mạng phân bố theo địa lý

(geographically dispersed networks) Về nguyên tắc phương thức truyền thông điệp

có thể mở rộng ở quy mô lớn Khi nói đến mở rộng, tức là ta có thể tăng số lượng

bộ xử lý lên mà không làm giảm nhiều tính hiệu quả của hoạt động

Hệ thống truyền thông cục bộ giữa những bộ đa xử lý truyền thông điệp sử dụng các dạng mạng tĩnh, trong đó quan trọng là mạng hypercube đã gây được sự chú ý rất nhiều trong nhiều năm Các mạng lưới mesh hai và ba chiều lân cận gần nhất cũng đã được sử dụng trong các hệ thống truyền thông điệp Có 2 yếu tố mà chúng

ta phải lưu lý khi thiết kế các mạng tương kết cho những hệ thống truyền thông điệp gồm:

• Băng thông – link bandwidth

• Độ trễ của mạng – network latency

Băng thông được xác định bằng số lượng bit có thể được phát ra trên đơn vị thời gian (thứ nguyên là bit/s) Trễ mạng được định nghĩa là thời gian để hoàn thành việc truyền một thông điệp Phương pháp định tuyến Wormhole được giới thiệu vào năm

1987 để thay cho phương pháp định tuyến truyền thống store & forward để làm giảm kích cỡ bộ đệm và giảm trễ thông điệp Theo phương pháp định tuyến wormhole, một gói tin có thể được chia thành nhiều gói nhỏ hơn được gọi là các flit (flow control bits), theo đó các các flit dịch chuyển trong các pipeline, flit đầu tiên của gói tin sẽ cho biết đường dẫn tới đích Khi flit đầu tiên bị chặn do tắc nghẽn mạng thì những flit còn lại cũng sẽ bị chặn

Trang 26

Các mạng tương kết đa xử lý(multprocessors interconnection networks-Ins) có thể được phân loại dựa trên các tiêu chuẩn bao gồm: (1) Chế độ hoạt động (đồng bộ hay không đồng bộ), (2) cơ chế điều khiển (tập trung hay phân tán), (3) Kỹ thuật chuyển mạch (chuyển mạch kênh hoặc chuyển mạch gói), và (4) Tôpô (tĩnh hoặc động)

Hình 2-9: Phân loại mạng tương kết

2.5.1 Chế độ hoạt động

Tùy theo cơ chế hoạt đông thì INs được phân loại thành đồng bộ hay không đồng

bộ Trong chế độ đồng bộ, một đồng hộ chung toàn cục duy nhất sẽ được sử dụng cho tất cả thành phần trong hệ thống, theo đó toàn bộ hệ thống sẽ vận hành theo phương thức tuần tự (lock-step) Trong cơ chế không đồng bộ, hệ thống không cần một đồng hồ toàn cục Các tín hiệu bắt tay sẽ được dùng để phối hợp các hoạt động trong hệ thống không đồng bộ Có thể nói các hệ thống đồng bộ thường sẽ chậm hơn so với các hệ thống không đồng bộ, tuy nhiên chúng tránh được race & hazard

Trang 27

2.5.2 Cơ chế điều khiển

Tùy theo cơ chế điều khiển, Ins được phân loại thành tập trung hoặc phân tán Trong các hệ thống tập trung, một đơn vị điều khiển trung tâp duy nhất sẽ theo dõi

và điều khiển mọi hoạt động của tất cả các thành phần trong hệ thồng Trong hệ thống phân tán, chức năng điều khiển được phân tán cho nhiều thành phần khác nhau trong hệ thống Sự tập chung xử lý và độ an toàn tin cậy của đơn vị xử lý trung tập sẽ tạo nên nút cổ chai của kiểu hệ thống điều khiển này Trong thực tế, mạng crossbar là hệ thống tập trung, và mạng tương kết đa tầng là hệ thống phân tán

2.5.3 Kỹ thuật chuyển mạch

Các mạng tương kết được phân loại theo cơ chế chuyển mạch thành chuyển mạch kênh và chuyển mạch gói Trong cơ chế chuyển mạch kênh, một đường kết nối hoàn chỉnh phải được thiết lập trước khi bắt đầu truyền thông giữa nguồn và đích Đường kết nối này sẽ được duy trì trong suốt quá trình truyền thông Trong cơ chế chuyển mạch gói, quá trình truyền thông giữa nguồn và đích sẽ được thực hiện thông qua các thông điệp, trong đó các thông điệp được chia nhỏ thành các thực thể nhỏ hơn nữa được gọi là các gói Để di chuyển từ nguồn đến đích, các gói tin sẽ được truyền thông qua các nút trung gian theo phương thức store & forward cho đến khi chúng đến được đích Có thể nói chuyển mạch gói sẽ sử dụng các tài nguyên mạng một cách hiệu quả hơn so với chuyển mạch kênh, tuy nhiên chúng lại

có nguy cơ tiềm tàng do việc trễ gói tin khác nhau

2.5.4 Tôpô

Một tôpô của mạng tương kết sẽ ánh xạ các chức năng từ một tập các bộ xử lý và bộ nhớ vào cùng một tập các bộ xử lý và bộ nhớ Nói một cách khác, tôpô mô tả sự liên kết giữa các bộ xử lý và bộ nhớ này với các bộ xử lý và bộ nhớ khác Ví dụ một tôpô đầy đủ sẽ ánh xạ mỗi một bộ xử lý đến tất cả các bộ xử lý khác trong một computer Một tôpô dạng ring sẽ ánh xạ bộ xử lý k nào đó với hai láng giềng của nó

là bộ xử lý k-1 và k+1

Tóm lại, mạng tương kết có thể được phân loại thành tĩnh hoặc động Trong mạng tĩnh,các đường kết nối cố định trực tiếp được thiết lập giữa các node để tạo nên một mạng cố định Trong khi đó, đối với mạng động,các kết nối chỉ được tạo nên khi cần thiết Các đơn vị chuyển mạch sẽ được dùng để tạo nên các kết nối giữa các đầu vào và đầu ra Các tương kết khác nhau sẽ được tạo ra dựa theo sự cài đặt các

Trang 28

chuyển mạch Hầu như tất cả các hệ thống đa xử lý có thể được phân biệt theo các tôpô mạng của chúng

a) đơn bus b) đa bus

Hình 2-11: Hệ thống đơn bus và đa bus

Hệ thống chia sẻ bộ nhớ được thiết kế trên cơ sở mạng tương kết chuyển mạch kênh hoặc cấu trúc bus Mạng tương kết đơn giản nhất chia sẻ bộ nhớ là bus Tuy nhiên, bus có thể bị bão hòa nếu nhiều bộ xử lý cùng cố gắng truy cập vào bộ nhớ chia sẻ Một thiết kế điển hình dựa trên cấu trúc bus sử dụng bộ nhớ cache để khắc phục sự tranh chấp bus Các thiết kế chia sẻ bộ nhớ khác dựa vào chuyển mạch để kết nối với nhau Cho một ví dụ, chuyển mạch crossbar được sử dụng để kết nối các bộ xử

lý tới nhiều module nhớ Chuyển mạch crossbar có thể được ví như là một mesh của các dây nối và các chuyển mạch – đóng vai trò của các giao kết

Mạng tương kết truyền thông điệp có hai dạng tĩnh và động Trong mạng tĩnh, mọi kết nối đã được xác định trước khi hệ thống được thiết kế Khi đó các thông điệp bắt buộc phải truyền đi theo đường nối đã định sẵn đó

Mạng tương kết động chỉ thiết lập kết nối giữa hai node khi message đang được định tuyến trên đường đi Số lượng hop trên đường đi từ nguồn tới đích bằng với số

Trang 29

liên kết điểm điểm mà gói tin phải vượt qua để tới được đích Trong cả hai mạng tĩnh và động, các gói tin đều phải đi qua các hop Vì thế, hiệu năng của một mạng tương kết chịu ảnh hưởng chủ yếu bởi số lượng hop mà thông điệp phải đi qua

Hình 2-12 sẽ trình bày một số topo tĩnh thông dụng nhất như dạng (a) line, (b) ring, (c) mesh, (d) tree, (e) hypercube

Hình 2-12: Một số mạng tĩnh thông dụng

Hình 2-13 mô tả một số mạng động thông dụng Mạng đơn tầng như trong hình (a)

là dạng đơn giản, trong đó, thực hiện kết nỗi mỗi đầu vào ở bên trái với một vài, không phải tất cả, đầu ra ở bên phải, thông qua một lớp các chuyển mạch nhị phân Chuyển mạch nhị phân định hướng thông điệp từ đầu vào bên trái chuyển tới một trong hai đầu ra ở bên phải Nếu chúng ta kết hợp các tầng với nhau, chúng ta sẽ có

mạng đa tầng được biểu diễn trong hình (b) Mạng đa tầng Omega kết nối 8 nguồn

tới 8 đích Trong hình (b) cũng mô tả quá trình kết nối từ nguồn 010 tới đích 010

Để kết nối từ một nguồn tới một đích vào đó, chúng ta chỉ việc đơn giản là áp dụng một hàm nhị phân nào đó lên địa chỉ nguồn và địa chỉ đích, sử dụng như là lệnh đề chọn đường dẫn thông qua các chuyển mạch Ví dụ, để kết nối nguồn 111 tới đích

001 trong mạng Omega, các chuyển mạch ở tầng một và tầng hai phải được thiết lập

để nối với cổng ra trên, trong khi đó chuyển mạch ở tầng 3 phải nối với cổng ra dưới Hình (c) cho thấy khả năng tạo đường nối từ bất cứ một nguồn – dòng – nào tới bất cứ một đích – cột – nào

Bảng 2: So sánh hiệu năng của một số mạng động

Trang 30

Hình 2-13: Một số mạng động thông dụng

a mạng đơn tầng

b mạng đa tâng

c mạng crossbar

Mạng crossbar sử dụng rất nhiều chuyển mạch nhị phân Trong một mạng crossbar

có N x N cặp nguồn/đích thì crossbar đòi hỏi phải có N2 chuyển mạch Mạng omega thì chỉ cần N/2(logN) Tuy nhiên, điểm quan trọng nhất của crossbar là khả năng về tốc độ của nó Chỉ trong một xung clock, một kết nối có thể được thiết lập từ nguồn tới đích Đường kính của mạng crossbar bằng 1 (Chú thích: Đường kính D của mạng có N node là độ dài tối đa của một đường nối bất kì giữa hai node) So sánh với Omega, mạng Omega cần logN xung đồng hồ để tạo kết nối và do đó, đường

Trang 31

kính của mạng Omega là logN Tuy vậy, cả hai mạng này đểu bị giới hạn bởi số lượng đường nối có thể có hay có thể thay đổi, giữa hai cặp nguồn đích Nói một cách khác, chỉ cần 1 đường nối giữa 1 cặp node nào đó bị hỏng, cặp node đó sẽ không thể kết nối được nữa Nếu có 2 cặp node cùng đòi hỏi phải sử dụng một đường nối chung nào đó, một trong hai cặp sẽ phải đợi Tình trạng này gọi là

blocking Một mạng nào đó có thể khiển tất cả các kết nối có thể được đều không bị blocking, được gọi là mạng nonblocking

Bảng 2 mô tả sự so sánh hiệu năng của một số mạng tương kết động Trong bảng này, m biểu diễn số lượng bus sử dụng trong mạng đa bus, N biểu diễn số lượng bộ

xử lý, số lượng module nhớ hoặc số lượng đầu vào/ra trong mạng

Bảng 3 mô tả sự so sánh hiệu năng của một số mạng tương kết tĩnh Trong bảng này, bậc của mạng là đại lượng được tính bằng số lượng tối đa các liên kết (kênh) khác nhau nối giữa bất kì node nào trong mạng Đường kính mạng là độ dài tối đa,

p, của đường nối ngắn nhất giữa hai node bất kỳ Bậc của node, d, là số lượng các

liên kết có liên quan tới node

Bảng 3: So sánh hiệu năng của một số mạng tĩnh

Trang 32

3 PHÂN TÍCH HỆ THỐNG

Một hệ thống đa xử lý bao gồm nhiều bộ xử lý đơn kết nối với nhau thông qua một vài mạng tương kết và các phần mềm phù hợp để tạo nên một hệ thống thống nhất

Có 2 nhân tố chính để phân loại những hệ thống này đó là: bản thân các đơn vị xử

lý và mạng tương kết kết nối chúng với nhau Có rất nhiều các kiểu truyền thông khác nhau trong các mạng đa xử lý Ở mức độ tổng quát có thể phân chia hệ thống theo kiểu truyền thông là chia sẻ bộ nhớ (không gian địa chỉ đơn) và truyền thông điệp (không gian đa địa chỉ) Việc truyền thông trong hệ thống chia sẻ bộ nhớ được thực hiện bằng cách đọc và ghi từ bộ nhớ toàn cục, trong khi đó việc truyền thông trong hệ thống truyền thông điệp được thực hiện qua việc gửi và nhận lệnh.Trong cả

2 trường hợp, mạng tương kết sẽ đóng vai trò chính trong việc quyết định tốc độ truyền thông Đề tài sẽ giới thiệu các tôpô khác nhau sử dụng trong các bộ đa xử lý tương kết và các module nhớ với dạng mạng tương kết tĩnh và động Mạng tương kết tĩnh đã có sẵn tất cả các kết nối ngay từ khi hệ thống được thước kế chứ không phải tại thời điểm các kết nối được tạo ra Trong mạng tĩnh, các thông điệp được truyền đi theo các liên kết đã được tạo ra Ngược lại, mạng tương kết động tạo ra các kết nối giữa 2 hoặc nhiều node khi thông điệp được truyền đi Các tôpô như hypercube, mesh và k-ary n-cube là các mạng tĩnh Các tôpô tương kết đa tầng, crossbar,bus là các mạng tương kết động Tiếp theo đề tài trình bày nghiên cứu về đánh giá hiệu năng và đưa ra phân tích về các mạng tương kết khác nhau

Trong phần sau, đề tài tiếp tục đi sâu phân tích các công cụ đo hiệu năng của kiến trúc song song Một số khái niệm của mô hình tính toán trong các bộ đa xử lý cũng được giới thiệu, trong đó tập trung vào khía cạnh tính toán của các đơn vị xử lý Hai

mô hình tính toán được nghiên cứu đó là mô hình xử lý theo các khoảng bằng nhau

và mô hình tính toàn song song với đoạn tuần tự Hai mô hình này sử dụng hai tham

số để đánh giá đó là hệ số tăng tốc và hiệu suất Ảnh hưởng của chi phí truyền thông đối với hiệu năng tốc độ tổng thể của các bộ đa xử lý được nhấn mạnh trong các mô hình này Sau khi giới thiệu về các mô hình tính toán này, đề tài tiếp tục trình bày về các tham số có liên quan trong kiến trúc song song Tiếp theo, đề tài nghiên cứu các thước đo hiệu năng của các mạng tương kết, bao gồm băng thông, trễ tối đa, khả năng khai thác, độ dài trung bình mà một thông điệp đi qua, chi phí,

và tính tương kết Các cách tính các thước đo trên đối với một số loại mạng tĩnh và động cũng sẽ được đề cập tới Kế tiếp, đề tài mô tả khả năng mở rộng của các hệ thống song song và chuẩn đo hiệu năng

Trang 33

Một mạng tương kết có thể là tĩnh hoặc động Các kết nối trong một mạng tĩnh là các liên kết cố định và ngược lại, trong mạng động đó là các liên kết mà chỉ được tạo ra khi cần Các mạng tĩnh có thể được phân loại nhỏ hơn nữa theo kiểu tương kết: một chiều (1D), hai chiều (2D) hoặc là hypercube(HC) Mạng động cũng có thể được phân loại dựa trên lược đồ tương kết như là lược đồ bus hoặc là lược đồ chuyển mạch Mạng dựa trên nền bus cũng có thể chia nhỏ hơn nữa thành đơn bus hoặc đa bus Mạng đông dựa trên nền chuyển mạch có thể được phân loại theo cấu trúc mạng tương kết thành đơn tầng (SS) đa tầng (MS) hoặc crossbar

Hình 3-1: Phân loại mạng tương kết dựa trên topo

Trang 34

đổi giữa bộ nhớ và bộ xử lý Tất cả các bộ xử lý đều truyền thông với một bộ nhớ chia sẻ duy nhất Thông thường một hệ thống như vậy sẽ có chứa từ 2 đến 50 bộ xử

lý bên trong Kích thước thực sự của hệ thống sẽ phụ thuộc vào nhiều yếu tố trong

đó có lưu lượng trên mỗi bộ xử lý và băng thông của bus (được hiểu như là tốc độ tối đa mà cái bus này có thể truyền) Độ phức tạp của mạng đơn bus, tính theo số lượng bus được sử dụng, là O(1), trong khi đó độ phức tạp thời gian được tính bằng

độ trễ từ đầu vào đến đầu ra là O(N)

Hình 3-2: Mạng tương kết động đơn bus

Mặc dù đơn giản và dễ dàng nâng cấp, hệ thống đa xử lý đơn bus bị giới hạn bởi băng thông của bus và trên thực tế chỉ có một bộ xử lý có thể truy cập bus và do đó chỉ có chỉ có thể truy cập được một và chỉ một bộ nhớ tại một thời điểm bất kỳ

Sun Enterprise 6000 30 UltraSPARC 1 167 MHz 30720 MB 2600 MB/s

Bảng 4: Đặc trưng của một số hệ thống đơn bus thương mại

3.2.2 Hệ thống đa bus

Việc áp dụng đa bus để kết nối các bộ đa xử lý là sự phát triển đương nhiên của hệ thống chia sẻ đơn bus Hệ thống đa xử lý đa bus sử dụng nhiều bus song song để kết nối các bộ xử lý và các module nhớ Có nhiều lược đồ tương kết khác nhau đối với trường hợp này Có thể kể ra một vài ví dụ trong số đó như là: MBFBMC (multiple bus with full bus-memory connection), MBSBMC (multiple bus with single bus memory connection), MBPBMC (multiple bus with partial bus memory connection) Trong Hình 3-3 sẽ mô tả các lược đồ kết nối trong trường hợp N=6 bộ

xử lý, M=4 module nhớ và B=4 bus Kết nối MBFBMC tất cả các module bộ nhớ

Trang 35

đều được kết nối với tất cả các bus Kết nối MBSBMC thì mỗi module nhớ được kết nối với một bus duy nhất dành riêng cho nó Kết nối MBPBMC thì mỗi một module nhớ sẽ kết nối với một vài bus Đa bus với kết nối bộ nhớ trên nền lớp có các module nhớ được phân loại vào các lớp khác nhau, trong đó mỗi lớp được kết nối với một tập các bus cụ thể nào đó Mỗi một lớp là một tập tùy ý các module nhớ

Kiểu kết nối Số lượng kết nối Tải trên Bus i

+∑ = + −

Bảng 5: Đặc tính của một số hệ thống đa bus

Chúng ta có thể mô tả các kết nối này dựa theo số lượng các kết nối được yêu cầu

và mức tải trên mỗi bus như trong Bảng 5 Trong bảng này, k biểu diễn số lượng

lớp, g biểu diễn số lượng bus trong mỗi nhóm, và Mj biểu diễn số lượng module nhớ trong lớp j

Tóm lại, thiết kế hệ thống đa xử lý đa bus đem lại nhiều đặc tính ưu viết như là độ

an toàn tin cậy cao và dễ dàng phát triển thêm Khi một bus bị hỏng thì (B-1)bus còn lại vẫn không bị ảnh hưởng và tiếp tục duy trì kết nối giữa các bộ xử lý và module nhớ Nói một cách khác, khi số lượng bus nhỏ hơn số lượng các module nhớ (hoặc số lượng các bộ xử lý) thì sự tranh chấp bus sẽ tăng lên

Trang 36

a) MBFBMC (multiple bus with full bus-memory connection)

b) MBSBMC (multiple bus with single bus memory connection),

c) MBPBMC (multiple bus with partial bus memory connection)

d) MBCBMC (multiple bus with class-based memory connection)

Trang 37

Trong một hệ thống đa xử lý đơn bus, phân xử bus là cần thiết để giải quyết sự cạnh tranh bus khi có nhiều hơn một bộ xử lý tranh chấp quyền truy cập bus Trong trường hợp này, các bộ xử lý muốn sử dụng bus phải đưa yêu cầu của chúng tới bộ phân xử bus, trọng tài-bus arbitration logic Bộ trọng tài sử dụng lược đồ ưu tiên để xác định và cho phép một bộ xử lý nào đó được quyền truy xuất bus vào một khoảng thời gian cụ thể nào đó Quá trình chuyển quyền chiếm dụng bus từ một bộ

xử lý này sang một bộ xử lý khác được gọi là handshaking và nó đòi hỏi phải có 2 tín hiệu điều khiển là: yêu cầu bus và cho phép bus - request & bus grant Tín hiệu yêu cầu bus cho thấy một bộ xử lý nào đó đang yêu cầu quyền sử dụng bus, tín hiệu thứ 2 sẽ cho biết quyền sử dụng bus đã được cho phép Ngoài ra còn một tín hiệu thứ 3 gọi là bus busy Tín hiệu này để thông báo rằng bus đang được sử dụng Hình 3-4 mô tả một hệ thống như vậy

Để ra quyết định bộ xử lý nào được quyền điều khiển bus, bộ trọng tài sẽ sử dụng một lược đồ ưu tiên đã được định nghĩa trước đó Có nhiều cơ chế xác định quyền

ưu tiên ví dụ như độ ưu tiên ngẫu nhiên, ưu tiên xoay vòng đơn giản, ưu tiên bình đẳng, ưu tiên theo lần sử dụng gần nhất –LRU (least recently used) Sau mỗi vòng phân xử, đối với phương pháp ưu tiên xoay vòng đơn giản, tất cả các mức ưu tiên bị giảm một bậc và cuối cùng bộ xử lý có mức ưu tiên thấp nhất sẽ trở thành cao nhất Theo phương pháp ưu tiên bình đẳng, khi bộ trọng tài nhận được 2 hoặc nhiều yêu cầu, tất cả các yêu cầu đều được xử lý bình đẳng Trong giải thuật LRU, mức ưu tiên cao nhất được dành cho bộ xử lý không sử dụng bus trong một khoảng thời gian dài nhất

Trang 38

Hình 3-4: Kỹ thuật bus handshaking a) Mô hình

b) Giản đồ thời gian

Đối với kiểu mạng này, các kết nối giữa bộ xử lý và bộ nhớ được tạo thành bởi rất nhiều các chuyển mạch đơn giản Có 3 tôpô chính là : crossbar, đơn tầng-single stage, và đa tầng-multistage

3.3.1 Mạng crossbar

Mạng crossbar hoàn toàn đối lập với mạng đơn bus Trong khi hệ thống đơn bus chỉ

có một kết nối duy nhất thì mạng crossbar cung cấp đồng thời tất cả các kết nối giữa

Trang 39

tất cả các đầu vào và đầu ra Crossbar chứa một đơn vị chuyển mạch tại giao điểm của bất kỳ hai đường ngang và dọc kéo dài nào trong chuyển mạch Ví dụ mạng crossbar 8x8 như trong Hình 3-5, mỗi một SE (switching element) được đặt tại 64 giao điểm (được thể hiện bởi các hình vuông nhỏ trong Hình 3-5) Hình này cũng thể hiện cách cấu hình SE sao cho các bộ xử lý Pi và M8-i+1 với 1≤ i ≤8 được nối với nhau Như vậy có 2 trạng thái khác nhau của SE trong mạng crossbar

Hình 3-5: Mạng crossbar 8 x 8 a) cấu hình chuyển mạch dạng thẳng b) cấu hình chuyển mạch dạng chéo

Cũng theo như Hình 3-5, số lượng các SE cần thiết là 64 và trễ truyền thông điệp từ đầu vào cho tới đầu ra bất kỳ là hằng số không phụ thuộc vào đầu vào hay đầu ra cụ thể Nói chung, đối với mạng crossbar N x N, độ phức tạp mạng được tính theo số lượng các điểm chuyển mạch là O(N2) trong khi độ phức tạp thời gian được tính theo độ trễ từ đầu vào đến đầu ra là O(1) Điều này cho thấy rằng độ phức tạp trong

hệ thống mạng crossbar đã được đáp lại dưới dạng giảm độ phức tạp của thời gian Cũng lưu ý rằng mạng crossbar là mạng nonblocking cho phép nhiều kết nối đầu

Trang 40

vào đầu ra theo nhiều cách đồng thời Dù vậy, với một hệ thống có quá nhiều bộ xử

lý thì độ phức tạp của mạng crossbar sẽ là một trở ngại lớn về tài chính

3.3.2 Mạng đơn tầng

Trong loại mạng này, chỉ tồn tại một tầng duy nhất bao gồm các đơn vị chuyển mạch SE giữa đầu vào và đầu ra Đơn vị chuyển mạch đơn giản nhất là kiểu chuyển mạch 2 x 2 Hình 3-6 mô tả 4 trạng thái có thể của SE Chúng được gọi là chuyển mạch straight, chuyển mạch exchange, chuyển mạch upper-broadcast và chuyển mạch lower-broadcast Đối với kiểu chuyển mạch straight, đầu vào cao sẽ được truyền tới đầu ra cao và đầu vào thấp sẽ được truyền tới đầu ra thấp Đối với kiểu chuyển mạch exchange, đầu vào cao sẽ được truyền tới đầu ra thấp và đầu vào thấp

sẽ được truyền tới đầu ra cao Đối với kiểu chuyển mạch upper broadcast thì đầu vào cao sẽ được nối với đầu ra cao và đầu ra thấp Đối với kiểu chuyển mạch lower-broadcast, đầu vào thấp sẽ nối với cả đầu ra cao và thấp

Hình 3-6: Các cách cấu hình chuyển mạch 2 x 2

Để thiết lập một kết nối giữa một đầu vào đã cho (nguồn) tới một đầu ra cho trước(đích), dữ liệu sẽ phải được truyền nhiều lần trong mạng Một kiểu kết nối phổ biến nhất cho tương kết đầu vào đầu ra của mạng đơn tầng là Shuffle-Exchange Có

2 thao tác được sử dụng 2 thao tác này sẽ được mô tả dưới đây, trong đó m là độ rộng bit địa chỉ của đầu vào, pm-1 pm-2 p1 p0

1 0 1 2 0

1 2

( pmpmp p = pmp p pmS

0 1 2 1 0

1 2

Ngày đăng: 26/07/2017, 21:06

HÌNH ẢNH LIÊN QUAN

Hình 2-6: Hai mô hình kiến trúc SIMD - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 2 6: Hai mô hình kiến trúc SIMD (Trang 20)
Hình 2-9: Phân loại mạng tương kết - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 2 9: Phân loại mạng tương kết (Trang 26)
Hình 3-1: Phân loại mạng tương kết dựa trên topo - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 3 1: Phân loại mạng tương kết dựa trên topo (Trang 33)
Hình 3-4: Kỹ thuật bus handshaking  a)  Mô hình - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 3 4: Kỹ thuật bus handshaking a) Mô hình (Trang 38)
Hình 3-11: Mạng Shuffle-Exchange (SEN) kích thước 8 x 8 - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 3 11: Mạng Shuffle-Exchange (SEN) kích thước 8 x 8 (Trang 45)
Hình 3-12: Mạng Banyan 8 x 8 - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 3 12: Mạng Banyan 8 x 8 (Trang 46)
Hình 3-13: Mạng Omega N = 8 - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 3 13: Mạng Omega N = 8 (Trang 47)
Hình 3-14: Mạng Benes 8 x 8 - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 3 14: Mạng Benes 8 x 8 (Trang 48)
Hình 3-18: Khối 4 chiều - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 3 18: Khối 4 chiều (Trang 54)
Hình 3-21: Mạng crossbar 8 x 8 với 1 điểm lỗi - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 3 21: Mạng crossbar 8 x 8 với 1 điểm lỗi (Trang 58)
Hình 3-22: Hệ thống mạng đa bus - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 3 22: Hệ thống mạng đa bus (Trang 59)
Hình 27: Đo hiệu năng bằng Dhrystone (chỉ số MIPS) và Whetstone (MFLOPS) bởi SiSoft Sandra - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 27 Đo hiệu năng bằng Dhrystone (chỉ số MIPS) và Whetstone (MFLOPS) bởi SiSoft Sandra (Trang 79)
Bảng 18: 5 SPEC92 so sánh thời gian thực hiện giữa 2 hệ thống - Tối ưu hoá trong thiết kế bộ xử lý số song song
Bảng 18 5 SPEC92 so sánh thời gian thực hiện giữa 2 hệ thống (Trang 82)
Hình 28: Đo hiệu năng Intel Pentium 4 520 theo SPEC2000 - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 28 Đo hiệu năng Intel Pentium 4 520 theo SPEC2000 (Trang 85)
Hình 33: Nguyên lý của khối điều khiển trong mini MIMD - Tối ưu hoá trong thiết kế bộ xử lý số song song
Hình 33 Nguyên lý của khối điều khiển trong mini MIMD (Trang 90)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm