Kiến trúc RISC Reduced Instruction Set Computer CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN ĐẠI + Cuối những năm 1970, đầu những năm 1980: - Tiến bộ trong lĩnh vực mạch tích hợp IC - Tiến bộ trong
Trang 1KIẾN TRÚC MÁY TÍNH
VÀ HỆ ĐIỀU HÀNH
Trang 24.1 Kiến trúc RISC và CISC
4.2 Mạng liên kết trong (Interconnection
Networks)
CHƯƠNG 4:
MỘT SỐ KIẾN TRÚC HIỆN ĐẠI
4.3 Đa bộ xử lý và đa máy tính
4.4 Lập trình song song và các thuật toán
song song
4.5 Kiến trúc dòng dữ liệu và siêu mảng
4.6 Kiến trúc trong tương lai
Trang 34.1 Kiến trúc RISC và CISC
4.1.1 Kiến trúc CISC (Complex Instruction Set
Computer)
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Phát minh ra từ những năm 1960:
- Các chương trình dịch khó dùng các thanh ghi
- Các vi lệnh được thực hiện nhanh hơn các lệnh
- Phải làm giảm độ dài các chương trình
Trang 44.1 Kiến trúc RISC và CISC
- Các lệnh có chiều dài thay đổi
- Hiệu quả nhất khi dùng bộ điều khiển vi chương trình
Trang 54.1 Kiến trúc RISC và CISC
4.1.1 Kiến trúc CISC
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Kiến trúc CISC:
Trang 64.1 Kiến trúc RISC và CISC
- Sử dụng nhiều kiểu định vị
- Ít hoặc không có đường ống
- Các lệnh đều có thể tham chiếu bộ nhớ
Trang 74.1 Kiến trúc RISC và CISC
4.1.2 Kiến trúc RISC (Reduced Instruction Set
Computer)
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Cuối những năm 1970, đầu những năm 1980:
- Tiến bộ trong lĩnh vực mạch tích hợp (IC)
- Tiến bộ trong kỹ thuật dịch chương trình
CT dịch đã biết sử dụng các thanh ghi
Sử dụng ô nhớ cho vi CT hay CT không có sự khác biệt đáng kể
Máy tính với tập lệnh rút gọn RISC
Trang 84.1 Kiến trúc RISC và CISC
4.1.2 Kiến trúc RISC (Reduced Instruction Set
- Dùng kiểu thực hiện lệnh thanh ghi - thanh ghi
- Mỗi lệnh thực hiện trong một chu kỳ máy
Sử dụng kỹ thuật đường ống một cách thích hợp
- Các lệnh LOAD/STORE mới truy nhập bộ nhớ
Trang 94.1 Kiến trúc RISC và CISC
4.1.2 Kiến trúc RISC (Reduced Instruction Set
Computer)
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Kiến trúc RISC:
Trang 104.1 Kiến trúc RISC và CISC
4.1.2 Kiến trúc RISC (Reduced Instruction Set
- Các lệnh đều có cùng chiều dài
- Có nhiều thanh ghi để giảm bớt thâm nhập bộ nhớ
- Chỉ có lệnh ghi hay đọc ô nhớ mới thâm nhập bộ nhớ
- Có một số ít các kiểu định vị (tức thời, gián tiếp)
Trang 114.1 Kiến trúc RISC và CISC
4.1.2 Kiến trúc RISC (Reduced Instruction Set
Computer)
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Mạch xử lý RISC có các ưu điểm:
- Diện tích dùng cho bộ điều khiển giảm
- Thời gian thiết kế bộ điều khiển giảm
- Bộ điều khiển đơn giản và gọn, giảm rủi ro mắc phải
- Tốc độ tính toán cao
Trang 124.1 Kiến trúc RISC và CISC
4.1.2 Kiến trúc RISC (Reduced Instruction Set
Computer)
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Mạch xử lý RISC có các nhược điểm:
- Các chương trình dài ra do:
- Các CT dịch gặp nhiều khó khăn
- Có ít lệnh trợ giúp cho ngôn ngữ cấp cao
Cấm thâm nhập bộ nhớ đối với hầu hết các lệnh
Phải tính các địa chỉ hiệu dụng
Tập lệnh có ít lệnh
Trang 134.1 Kiến trúc RISC và CISC
8
.
Có ít thanh ghi Có nhiều thanh ghi
Trang 144.2 Mạng liên kết trong (Interconnection Network)
4.2.1 Định nghĩa
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Trong các kiến trúc song song:
- Đa bộ xử lý chia sẻ bộ nhớ - Đa bộ xử lý đa bộ nhớ
Trang 154.2 Mạng liên kết trong (Interconnection Network)4.2.1 Định nghĩa
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
Private
Memory
Global Memory
Trang 164.2 Mạng liên kết trong (Interconnection Network)
Trang 174.2 Mạng liên kết trong (Interconnection Network)4.2.1 Định nghĩa
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Có hai loại cấu hình tôpô cho mạng liên kết:
- Mạng liên kết tĩnh: các thành phần liên kết với nhau một cách cố định, không thay đổi được
- Mạng liên kết động: sự liên kết giữa các thành phần của hệ thống có thể thay đổi được cấu hình + Lĩnh vực liên kết động được tập trung nghiên cứu hơn
Trang 184.2 Mạng liên kết trong (Interconnection Network)
4.2.2 Các loại cấu hình tôpô của mạng liên kết
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Mạng liên kết tuyến tính:
+ Các BXL được tổ chức liên kết với nhau theo dãy
+ Được đánh số theo thứ tự tăng dần
P0 P1 Pn-2 Pn-1+ Tất cả các BXL đều có 2 láng giềng (trừ 2BXL đầu và cuối)+ Dữ liệu phải chuyển qua nhiều BXL chậm đường truyền
Trang 194.2 Mạng liên kết trong (Interconnection Network)
4.2.2 Các loại cấu hình tôpô của mạng liên kết
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Mạng liên kết vòng:
+ Tổ chức tương tự như
liên kết tuyến tính nhưng
BXL đầu và cuối được nối
Trang 204.2 Mạng liên kết trong (Interconnection Network)4.2.2 Các loại cấu hình tôpô của mạng liên kết
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Mạng liên kết xáo trộn:
+ Giả sử có N BXL (N là lũy thừa của 2) (Ví dụ N = 8)
P0 P1 P2 P3 P4 P5 P6 P7
+ Đường liên kết thay đổi
+ Đường liên kết xáo trộn
Trang 214.2 Mạng liên kết trong (Interconnection Network)
4.2.2 Các loại cấu hình tôpô của mạng liên kết
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Mạng liên kết lưới hai chiều:
+ Được sử dụng để thiết kế các máy tính: ILLIAC IV, MPP (Masively Parallel Processor), DAP (Distributed Array Processor)
+ Mỗi BXL được liên kết với bốn láng giềng
+ Có hai dạng: Lưới không quay vòng
Lưới quay vòng tròn
Trang 224.2 Mạng liên kết trong (Interconnection Network)4.2.2 Các loại cấu hình tôpô của mạng liên kết
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Mạng liên kết lưới hai chiều:
Lưới không quay vòng Lưới quay vòng tròn
Trang 234.2 Mạng liên kết trong (Interconnection Network)
4.2.2 Các loại cấu hình tôpô của mạng liên kết
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
0
4
1 5
+ Hai BXL được gọi là láng
giềng nếu nhãn sai khác
nhau đúng 1 bit
+ Mỗi BXL cần liên kết với đúng
q BXL: hình siêu khối q chiều
Trang 244.2 Mạng liên kết trong (Interconnection Network)4.2.2 Các loại cấu hình tôpô của mạng liên kết
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Mạng liên kết hình sao:
* Mạng liên kết hình cây:
Trang 254.2 Mạng liên kết trong (Interconnection Network)4.2.2 Các loại cấu hình tôpô của mạng liên kết
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ILLIAC IV 1972 SIMD 64, tuyến tính
Cyber 1983 MIMD 16, hình vòng xuyến
IPSC/1 1985 MIMD 128, siêu khối
IPSC/2 1987 MIMD 128, siêu khối
Intel Wrap 1990 Vector 50
Trang 264.3 Đa bộ xử lý và đa máy tính
4.3.1 Đa bộ xử lý
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Các BXL chia sẻ bộ nhớ và các thiết bị vào ra
+ Các tác vụ ghi/đọc của các BXL vào cùng một vùng nhớ được giải quyết bới bộ nhớ đệm
+ Kiểu lập trình là sự mở rộng của kiểu đơn BXL
Trang 274.3 Đa bộ xử lý và đa máy tính
4.3.2 Đa máy tính
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Tất cả bộ nhớ và thiết bị vào ra là độc lập
+ Di chuyển dữ liệu trong mạng liên kết chậm
+ Kiểu lập trình là sự mở rộng của kiểu đơn BXL
Trang 284.4 Lập trình song song và các thuật toán song song
- Là một tập các tiến trình có thể thực hiện tuần tự hoặc đồng thời có tương tranh
- Chương trình = Cấu trúc dữ liệu + Giải thuật (Thuật toán)
Trang 294.4 Lập trình song song và các thuật toán song song
4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Trong môi trường lập trình tuần tự:
- Một CT thực hiện trên cùng một tập dữ liệu cho ra cùng một kết quả
- CT thực hiện sẽ tạo ra 1 tiến trình bên trong hệ thống
mà người sử dụng không quan sát được
- Mỗi câu lệnh thực hiện không gây trở ngại cho các câu lệnh khác trong CT
Trang 304.4 Lập trình song song và các thuật toán song song
4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Trong môi trường đa chương trình, đa bộ xử lý:
- Các câu lệnh của các CT có thể được thực hiện đan xen
- Ở cùng 1 thời điểm có thể có nhiều hơn 1 CT được thực hiện
- Các CT tự chủ thực hiện các tiến trình của mình
- Các CT phải tương tác với nhau, việc thực hiện các CT ảnh hưởng tới nhịp độ thực hiện của nhau
Trang 314.4 Lập trình song song và các thuật toán song song
4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
+ Trong môi trường lập trình song song:
- Người lập trình phải cung cấp các công cụ để đồng bộ hóa và điều khiển sự tương tác giữa các tiến trình
- Tạo và lập lịch cho các tiến trình
- Người lập trình có thể “nhìn thấy” quá trình thực hiện CT Tận dụng khả năng tính toán của các BXL:
- Phát triển các ngôn ngữ lập trình
- Xây dựng các chương trình dịch đủ mạnh
Trang 324.4 Lập trình song song và các thuật toán song song
Bổ sung thêm đặc tính con trỏ
Nhiều kiểu dữ liệu được định nghĩa bởi người dùng
Trang 334.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Một số ngôn ngữ lập trình (NNLT) song song:
+ OCCAM (Inmos Company phát triển năm 1988):
- Lập trình cho các hệ thống nhiều máy tính kết nối với nhau hoặc các hệ phân tán
- Thiếu một số đặc tính:
Hỗ trợ cơ chế đệ quy
Định nghĩa kiểu dữ liệu hay con trỏ
- Một hành động có thể thực hiện song song tiến trình
Trang 344.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Quyền ưu tiên: mức độ phụ thuộc tính toán của câu lệnh+ Quan hệ ưu tiên tính toán trong xử lý song song rất quan trọng đảm bảo quá trình tính toán là chính xác
+ Ví dụ:
S1: A := B + C
S2: B := A + E
S3: A := A + B
Trang 354.4 Lập trình song song và các thuật toán song song
- S1 tính giá trị biến A và biến này được S2 và S3 sử dụng
Có sự phụ thuộc S2, S3 vào S1 (ký hiệu là d1, d2)
d1
d2
Trang 364.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Phân tích các phụ thuộc:
- S2 tính giá trị biến B và biến này được S3 sử dụng
Có sự phụ thuộc S3 vào S2 (ký hiệu là d3)
d1
d2
d3
Trang 374.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Phân tích các phụ thuộc:
- Giá trị trước đó của biến B được sử dụng ở S1
Có sự phụ thuộc của S2 vào S1 (ký hiệu là d4)
d1
d2
d3d4
Trang 384.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
d5
Trang 394.4 Lập trình song song và các thuật toán song song
- S3 tính giá trị biến A và biến này được S2 và S3 sử dụng
Có sự phụ thuộc S2, S3 vào S3 (ký hiệu là d6, d7)
d1
d2
d3d4
d5
d6
d7
Trang 404.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
Trang 414.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Các ký hiệu:
- DEF(S): tập các biến có giá trị bị thay đổi khi thực hiện S
- USE(S): tập các biến được truy cập khi thực hiện S
+ Ví dụ: S: B := A + C - 2.0
- DEF(S) = {B}
- USE(S) = {A, C}
Trang 424.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Phân loại các phụ thuộc:
1 Phụ thuộc dòng dữ liệu (Data Flow Dependency):
2 Phản phụ thuộc dữ liệu (Data Anti - Dependency):
DEF(S 1 ) USE(S 2 )
DEF(S 2 ) USE(S 1 )
3 Phụ thuộc dữ liệu ra (Data Output Dependency):
DEF(S 2 ) DEF(S 1 )
Trang 434.4 Lập trình song song và các thuật toán song song
4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Phân loại các phụ thuộc:
4 Phụ thuộc dữ liệu vào (Data Input Dependency):
5 Phụ thuộc điều khiển dữ liệu (Data Control Dependency):
USE(S 2 ) USE(S 1 )
- Sự thực hiện của lệnh này phụ thuộc vào giá trị của các biến được tính ở lệnh kia
Trang 444.4 Lập trình song song và các thuật toán song song
dữ liệu ra
Trang 454.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
Loại bỏ phản phụ thuộc dữ liệu
For i=1,n,1
X = A[i] + B[i]
Y[i] = 2 * XX= C[i] * D[i]
P = X + 15Endfor
Loại bỏ phản phụ thuộc dữ liệu
For i=1,n,1
X = A[i] + B[i]Y[i] = 2 * XXX= C[i] * D[i]
P = XX + 15Endfor
Trang 464.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Ví dụ: Xét dãy câu lệnh sau
S6: else D = 2
endif
S1
S2 S3
S4
Trang 474.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Sự phụ thuộc dữ liệu và đồ thị ưu tiên:
+ Ví dụ: Các câu lệnh sau khi biến đổi
S2’: B = (B + C) * 3
S3: A = 2 * C
S4: P = B >= 0
if (P is true)S5: then D = 1
S6: else D = 2
endif
S2’ S3
S4
Trang 484.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
Trang 494.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
Trang 504.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
Trang 514.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
Trang 524.4 Lập trình song song và các thuật toán song song4.4.1 Lập trình song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
Trang 534.4 Lập trình song song và các thuật toán song song
4.4.2 Thuật toán song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Nguyên lý thiết kế thuật toán song song:
+ Xử lý song song Kiến trúc máy tính
Thuật toán song song
+ Chương trình song song
Thuật toán song songCấu trúc dữ liệu
+ Thuật toán song song: tập các tiến trình (hay tác vụ)
- Có thể trao đổi dữ liệu với nhau
- Có thể thực hiện đồng thời
Giải bài toán
Trang 544.4 Lập trình song song và các thuật toán song song4.4.2 Thuật toán song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Nguyên lý thiết kế thuật toán song song:
+ Cần trả lời các câu hỏi:
- Việc phân chia dữ liệu cho các tác vụ như thế nào?
- Dữ liệu được truy cập như thế nào?
- Những dữ liệu nào cần chia sẻ?
- Phân các tác vụ cho các bộ xử lý như thế nào?
- Các tiến trình được đồng bộ ra sao?
Trang 554.4 Lập trình song song và các thuật toán song song4.4.2 Thuật toán song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Nguyên lý thiết kế thuật toán song song:
+ Năm nguyên lý chính trong thiết kế thuật toán song song:
- Các nguyên lý lập lịch (độ phức tạp thuật toán)
- Nguyên lý hình ống
- Nguyên lý chia để trị
- Nguyên lý đồ thị phụ thuộc dữ liệu
- Nguyên lý điều kiện tranh đua
Trang 564.4 Lập trình song song và các thuật toán song song4.4.2 Thuật toán song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Nguyên lý thiết kế thuật toán song song:
+ Một số điểm cần quan tâm:
- Yếu tố quan trọng nhất ảnh hưởng đến độ phức tạp tính toán là cấu hình tôpô liên kết mạng
- Thuật toán song song phải được thiết kế dựa trên:
Kiến thức về kiến trúc máy tính
Ngôn ngữ lập trình song song
Các phương pháp tính toán
Trang 574.4 Lập trình song song và các thuật toán song song
4.4.2 Thuật toán song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Các thuật toán sắp xếp song song:
+ Thuật toán sắp xếp theo hạng:
Trang 584.4 Lập trình song song và các thuật toán song song4.4.2 Thuật toán song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Các thuật toán sắp xếp song song:
+ Thuật toán sắp xếp theo hạng:
- Thuật toán tuần tự được viết như sau:
x := 0;
for j := 0 to n do
if (a[i] > a[j]) then
x := x + 1;b[x] := a[i];
end
Trang 594.4 Lập trình song song và các thuật toán song song4.4.2 Thuật toán song song
CHƯƠNG 4: MỘT SỐ KIẾN TRÚC HIỆN
ĐẠI
* Các thuật toán sắp xếp song song:
+ Thuật toán sắp xếp theo hạng:
- Thuật toán song song được viết cho n bộ xử lý:
forall (i = 0; i < n; i ++) //n bộ xử lý thực hiện song song{ x = 0;
for (j = 0; j < n; j ++) //đếm số phần tử nhỏ hơn
if (a[i] > a[j]) x++;
b[x] = a[i]; //Sao sang bảng được sắp xếp}