CHƯƠNG 1.KHÁI QUÁT VỀ KỸ THUẬT SONG SONG MỨC LỆNH..................................................................................................................................2 1.1. Kỹ thuật song song mức lệnh vấn đề đang dược quan tâm........ 2 1.2. Khái niệm về kỹ thuật song song mức lệnh.................................. 3 1.3. Cách tiếp cận xử lý song song (xử lý đa lệnh). ............................. 4 CHƯƠNG 2. CÁC LOẠI MÁY TÍNH SỬ DỤNG KIẾN TRÚC SONG SONG.......................................................................................... 5 2.1. Siêu ống dẩn .................................................................................... 5 2.2. Siêu vô hướng (superscalar) .......................................................... 6 2.3.Máy tính có lệnh thật dài VLIW(Very long instruction word)... 6 2.4.Máy tính vector ................................................................................ 7 2.5.Máy tính song song .......................................................................... 7 CHƯƠNG 3.MỘT SỐ KẾN TRÚC SONG SONG THÔNG DỤNG.9 3.1.Máy tính SISD.................................................................................. .9 3.2.Các máy MISD kiểu máy tính này không sản xuất thương mại...9 3.3.Kiến trúc SIMD................................................................................ 9 3.4.Kiến trúc MIMD .............................................................................. 10 3.4.1.SMP (Symmetric Multiprocesors)............................................ 10 3.4.2. Hệ thống Cluster...................................................................... 11 3.4.3.Hệ thống NUMA (Nonunifrom Memory Access) .................... 12 CHƯƠNG 4. KẾT LUẬN ..................................................................... 16TRƯỜNG ĐHCN HÀ NỘI KỸ THUẬT SONG SONG MỨC LỆNH NHÓM SV: KHOA ĐIỆN TỬ LỚP LT TC ĐH ĐIỆN TỬ 1_K1 2 CHƯƠNG 1. TỔNG QUAN VỀ KỸ THUẬT SONG SONG MỨC LỆNH 1.1. Kỹ thuật song song mức lệnh vấn đề đang dược quan tâm. Từ khi bộ xử lý sử dụng công nghệ bán dẫn ra đời lần đầu tiên vào những năm 60 cho đến nay, công nghệ chế tạo vi mạch đã có nhiều bước phát triển nhảy vọt. Các IC bán dẫn ngày càng đạt được tốc độ và hiệu năng hoạt động cao hơn tỷ lệ với mật độ tích hợp các transistor trên chip. Với công nghệ vi mạch 0.13 và 0.09um, các bộ vi xử lý chắc chắn sẽ đạt tới tốc độ hàng chục Gigahertz trong vài năm tới . Như vậy chừng nào định luật Moore còn đúng thì các bộ vi xử lý sẽ ngày càng trở nên mạnh mẽ hơn. Tuy nhiên dù các bộ xử lý đơn sẽ còn tiếp tục phát triển nhanh chóng, các bộ xử lý song song chắc chắn sẽ chiếm một vị thế quan trọng trong tương lai không xa. Quan điểm này được đưa ra dựa trên các cơ sở sau: Thứ nhất, do các bộ vi xử lý hiện nay vẫn đang dùng công nghệ đơn xử lý nên để tăng hiệu năng chung cho hệ thống có thể thực hiện kết nối nhiều bộ đơn xử lý với nhau. Nói chung đây là giải pháp khá kinh tế và hợp lý hơn so với việc thiết kế một vi xử lý mới. Thứ hai, trong thời gian tới xu hướng phát triển các bộ vi xử lý đơn sẽ đi theo hướng đơn giản hoá so với hiện nay. Như chúng ta đã thấy, các bộ vi xử lý đa năng mà chúng ta dùng hiện nay có kiến trúc ngày càng phức tạp. Việc tăng hiệu năng của các bộ vi xử lý này đồng nghĩa với việc tăng số lượng các mạch tích hợp, tăng công suất tiêu thụ điện. Hơn nữa, trong một thời gian ngắn sắp tới khi định luật Moore không còn hiệu lực, các bộ vi xử lý đơn có thể sẽ tiến tới một ngưỡng phát triển nào đó. Khi đó muốn tăng sức mạnh cho các hệ thống tính toán bắt buộc phải sử dụng nhiều bộ xử lý song song với nhau. Thứ ba, chúng ta đã thấy những tiến bộ vượt bậc trên một lĩnh vực mà bấy lâu nay là vật cản đường trong việc ứng dụng rộng rãi các bộ vi xử lý song song, đó là lĩnh vực phần mềm. Các thành tựu trong lĩnh vực này dường như nhanh hơn trên các thị trường các ứng dụng máy chủ và các ứng dụng nhúng. Các ứng dụng loại này cần phải có cơ chế xử lý song song mà không phải viết lại các phần mềm sẵn có, đây luôn được coi là một công việc vô cùng nặng nề khi phải viết lại các bộ mã khổng lồ. Điều này đặt ra không ít thách thức cho chúng ta, khi mà chúng ta vẫn sử dụng các bộ vi xử lý đơn. Trong thực tế, việc cải thiện hiệu năng của các bộ vi xử lý sẽ được tiếp tục trong vòng tối thiểu là 5 năm tới nhằm chế tạo ra các bộ xử lý đơn ngày càng mạnh hơn. Việc xu hướng này còn được tiếp diễn lâu nữa hayTRƯỜNG ĐHCN HÀ NỘI KỸ THUẬT SONG SONG MỨC LỆNH NHÓM SV: KHOA ĐIỆN TỬ LỚP LT TC ĐH ĐIỆN TỬ 1_K1 3 không thì rất khó dự đoán. Tuy nhiên, chắc chằn rằng khi hiệu quả do bộ đơn xử lý mang lại bị giảm xuống thì vai trò của kiến trúc đa xử lý sẽ trở nên rất quan trọng. 1.2. Khái niệm về kỹ thuật song song mức lệnh. Với một bộ vi xử lý có nhiều dòng mã lệnh và nhiều dòng dữ liệu, mỗi một bộ vi xử lý có thể chạy các lệnh của chính nó. Trong nhiều trường hợp, các vi xử lý có thể chạy các tiến trình khác nhau (một tiến trình trên một bộ vi xử lý là một đoạn mã có thể chạy độc lập và các trạng thái của tiến trình có chứa toàn bộ các thông tin cần thiết cho việc chạy chương trình trên bộ vi xử lý đó). Trong một môi trường nhiều chương trình, nơi mà các bộ vi xử lý có thể đảm nhận các công việc của riêng nó, mỗi tiến trình trên một bộ vi xử lý là hoàn toàn độc lập với các tiến trình khác trên các bộ vi xử lý khác. Chúng ta nhận thấy rằng thật là hữu ích nếu có thể chạy một chương trình trên một bộ đa xử lý, chia sẻ mã lệnh và hầu hết các không gian địa chỉ của nó. Khi có nhiều tiến trình cùng chia sẻ mã lệnh và dữ liệu theo kiểu này, chúng được gọi là các lệnh. Ngày nay, thuật ngữ dòng thường được dùng để chỉ việc tiến hành chạy mã trên nhiều vùng, có thể là trên nhiều vi xử lý khác nhau, ngay cả khi chúng không chia sẻ không gian địa chỉ. Để có thể tận dụng hiệu năng của một bộ đa xử lý có n vi xử lý, chúng ta cần phải có tổi thiểu là n dòng hoặc n tiến trình chạy đồng thời. Các tiến trình độc lập có thể là do lập trình viên xác định tại thời điểm lập trình hoặc có thể được tạo lập bởi trình biên dịch. Vì rằng khái niệm song song trong trường hợp này được bao hàm trong các dòng nên được gọi là xử lý song song mức lệnh. Xử lý song song song cho phép các dòng có thể chia sẻ các đơn vị chức năng của một bộ vi xử lý đơn theo kiểu xếp chồng. Để có thể cho phép chia sẻ các đơn vị này, bộ vi xử lý cần thiết phải nhân đôi trạng thái độc lập của mỗi dòng lệnh. Ví dụ là phải có một bản copy riêng biệt cho file đăng ký, một PC riêng biệt và một bảng phân trang cho mỗi dòng lệnh. Bộ nhớ có thể được chia sẻ thông qua cơ chế bộ nhớ ảo, cơ chế này đã hỗ trợ lập trình đa lệnh. Thêm vào đó, phần cứng phải hỗ trợ khả năng thay đổi tới các dòng khác nhau đủ nhanh; trong thực tế, cơ chế chuyển dòng phải nhanh hơn cơ chế chuyển tiến trình, và thông thường, cơ chế này đòi hỏi hàng trăm tới hàng ngàn chu kỳ vi xử lý.TRƯỜNG ĐHCN HÀ NỘI KỸ THUẬT SONG SONG MỨC LỆNH NHÓM SV: KHOA ĐIỆN TỬ LỚP LT TC ĐH ĐIỆN TỬ 1_K1 4 1.3. Cách tiếp cận xử lý song song (xử lý đa lệnh). Có hai cách tiếp cận tới xử lý đa lệnh. Đó là: Chuyển mạch đa dòng mịn giữa các dòng trên mỗi lệnh, làm cho việc chạy các lệnh được tiến hành luân phiên. Việc chạy luân phiên này được thực hiện thông qua cơ chế xoay vòng, bỏ qua mọi lệnh bị giữ tại thời điểm đó. Để có thể thực hiện đa lệnh theo kiểu này, khối xử lý trung tâm phải có thể chuyển giữa các lệnh trong mọi chu kỳ đồng hồ. Một lợi điểm quan trọng của chuyển mạch đa dòng mịn là nó thế thế che giấu thông lượng bị mất phát sinh do quá trình giữ các lệnh quá nhanh hoặc quá lâu vì rằng các lệnh từ các dòng khác vẫn có thể chạy trong khi một dòng bị giữ lại. Nhược điểm chính của phương pháp này là nó làm chậm quá trình chạy các dòng riêng rẽ vì rằng mỗi dòng sắp chạy mà không bị giữ lại sẽ phải bị làm trễ bởi các lệnh từ các dòng khác. Một cách tiếp cận khác là xử lý đa dòng thô. Đây là giải pháp được phát minh như là một giải pháp thay thế cho phương pháp đa dòng mịn. Phương pháp đa dòng thô tiến hành chuyển các lệnh chỉ khi lệnh này bị giữ lại đủ lâu, chẳng hạn như là bị giữ lại ở cache L2. Việc này làm giảm thời gian trễ khi thực hiện các luồng độc lập vì rằng một lệnh chỉ bị làm trễ khi mà nó bị giữ lại đủ lâu. Đa lệnh thô có một nhược điểm chính là khả năng giảm thông lượng bị mất của nó luôn bị giới hạn, nhất là đối với các lệnh có thời gian giữ lại ngắn.TRƯỜNG ĐHCN HÀ NỘI KỸ THUẬT SONG SONG MỨC LỆNH NHÓM SV: KHOA ĐIỆN TỬ LỚP LT TC ĐH ĐIỆN TỬ 1_K1 5 CHƯƠNG 2. KHÁI QUÁT MÁY TÍNH SONG SONG. Ở chương này chúng ta tìm hiểu về một số kiến trúc cơ bản liên quan đến kiến trúc song song đó là: Siêu ống dẩn, Siêu vô hướng (superscalar), Máy tính có lệnh thật dài VLIW (Very long instruction word), Máy tính vector. Trên cơ sở đó người ta đưa ra kiến trúc song song để hạn chế những nhược điẻn và tăng hiệu quả của máy tính. 2.1. Siêu ống dẩn Máy tính có kỹ thuật siêu ống dẫn bậc n bằng cách chia các giai đoạn của kỹ thuật ống dẫn đơn giản, mỗi giai đoạn được thực hiện trong khoản thời gian Tc, thành n giai đoạn con thực hiện trong khoản thời gian Tcn. Độ hữu hiệu của kỹ thuật này tương đương với việc thi hành n lệnh trong mỗi chu kỳ Tc. Hình III.7 trình bày thí dụ về siêu ống dẫn bậc 2, có so sánh với siêu ống dẫn đơn giản. Ta thấy trong một chu kỳ Tc, máy dùng kỹ thuật siêu ống dẫn làm 2 lệnh thay vì làm1 lệnh trong máy dùng kỹ thuật ống dẫn bình thường. Trong máy tính siêu ống dẫn, tốc độ thực hiện lệnh tương đương với việc thực hiện một lệnh trong khoảng thời gian Tcn. Các bất lợi của siêu ống dẫn là thời gian thực hiện một giai đoạn con ngắn Tcn và việc trì hoãn trong thi hành lệnh nhảy lớn. Trong ví dụ ở hình III.7, nếu lệnh thứ i là một lệnh nhảy tương đối thì lệnh này được giải mã trong giai đoạn ID, địa chỉ nhảy đến được tính vào giai đoạn EX, lệnh phải được nhảy tới là lệnh thứ i+4, vậy có trì trệ 3 lệnh thay vì 1 lệnh trong kỹ thuật ống dẫn bình thường. Hình 1. Siêu ống dẫn bậc 2 so với siêu ống dẫn đơn giản. Trong khoảng thời gian Tc, máy có siêu ống dẫn làm 2 lệnh thay vì 1 lệnh như trong máy có kỹ thuật ống dẫn đơn giản.TRƯỜNG ĐHCN HÀ NỘI KỸ THUẬT SONG SONG MỨC LỆNH NHÓM SV: KHOA ĐIỆN TỬ LỚP LT TC ĐH ĐIỆN TỬ 1_K1 6 2.2. Siêu vô hướng (superscalar) Máy tính siêu vô hướng bậc n có thể thực hiện đồng thời n lệnh trong một chu kỳ xung nhịp Tc. Hình III.8 trình bày một ví dụ về sự vận hành của một máy tính siêu vô hướng bậc 2 so với một máy tính dùng kỹ thuật ống dẫn. Trong một máy tính siêu vô hướng phần cứng phải quản lý việc đọc và thi hành đồng thời nhiều lệnh. Vậy nó phải có khả năng quản lý các quan hệ giữa số liệu với nhau. Cũng cần phải chọn các lệnh có khả năng được thi hành cùng một lúc. Những bộ xử lý đầu tiên đưa ra thị trường dùng kỹ thuật này là các bộ xử lý Intel i860 và IBM RS6000. Các bộ xử lý này có khả năng thực hiện song song nhiều tác vụ trên số nguyên và trên số lẻ. Năm 1992, người ta thấy xuất hiện các bộ xử lý có nhiều bộ thực hiện tác vụ độc lập với nhau (nhiều ALU, bộ tính toán số lẻ, nạp dữ liệu, lưu dữ liệu, nhảy), có thể thực hiện song song nhiều lệnh (lệnh tính số nguyên, số lẻ, lệnh bộ nhớ, lệnh nhảy...). Số lệnh có thể được thi hành song song càng nhiều thì phần cứng thực hiện việc này càng phức tạp. Hình 2. Siêu vô hướng (a) so với kỹ thuật ống dẫn (b). 2.3.Máy tính có lệnh thật dài VLIW (Very long instruction word) Máy tính siêu vô hướng có thể thực hiện 2 hoặc 3 lệnh trong mỗi chu kỳ xung nhịp. Do kỹ thuật ống dẫn đòi hỏi các lệnh phải phụ thuộc vào nhau nên rất khó thực hiện nhiều lệnh trong một chu kỳ. Như vậy,TRƯỜNG ĐHCN HÀ NỘI KỸ THUẬT SONG SONG MỨC LỆNH NHÓM SV: KHOA ĐIỆN TỬ LỚP LT TC ĐH ĐIỆN TỬ 1_K1 7 thay vì cố thực hiện nhiều lệnh trong một chu kỳ, người ta tìm cách đưa
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA ĐIỆN TỬ
o0o _
BÀI TẬP LỚN
MÔN KIẾN TRÚC MÁY TÍNH
§Ò tµi:
KỸ THUẬT SONG SONG MỨC LỆNH
GVHD : VŨ THỊ THU HƯƠNG
SVTH : LÊ VĂN DŨNG
NGUYỄN THỊ HƯỜNG
BÁ ĐÌNH NHẤT
NGUYỄN VĂN TRUNG NGUYỄN KHẮC TUY LỚP : LT TC- ĐH ĐIỆN TỬ 1_K1
Hà Nội Tháng 06/2008
Trang 3MỤC LỤC
trang
CHƯƠNG 1.KHÁI QUÁT VỀ KỸ THUẬT SONG SONG MỨC
LỆNH 2
1.1 Kỹ thuật song song mức lệnh vấn đề đang dược quan tâm 2
1.2 Khái niệm về kỹ thuật song song mức lệnh 3
1.3 Cách tiếp cận xử lý song song (xử lý đa lệnh) 4
CHƯƠNG 2 CÁC LOẠI MÁY TÍNH SỬ DỤNG KIẾN TRÚC SONG SONG 5
2.1 Siêu ống dẩn 5
2.2 Siêu vô hướng (superscalar) 6
2.3.Máy tính có lệnh thật dài VLIW(Very long instruction word) 6
2.4.Máy tính vector 7
2.5.Máy tính song song 7
CHƯƠNG 3.MỘT SỐ KẾN TRÚC SONG SONG THÔNG DỤNG.9 3.1.Máy tính SISD 9
3.2.Các máy MISD kiểu máy tính này không sản xuất thương mại 9
3.3.Kiến trúc SIMD 9
3.4.Kiến trúc MIMD 10
3.4.1.SMP (Symmetric Multiprocesors) 10
3.4.2 Hệ thống Cluster 11
3.4.3.Hệ thống NUMA (Nonunifrom Memory Access) 12
CHƯƠNG 4 KẾT LUẬN 16
Trang 4
CHƯƠNG 1 TỔNG QUAN VỀ KỸ THUẬT SONG SONG MỨC LỆNH
1.1 Kỹ thuật song song mức lệnh vấn đề đang dược quan tâm
Từ khi bộ xử lý sử dụng công nghệ bán dẫn ra đời lần đầu tiên vào những năm 60 cho đến nay, công nghệ chế tạo vi mạch đã có nhiều bước phát triển nhảy vọt Các IC bán dẫn ngày càng đạt được tốc độ và hiệu năng hoạt động cao hơn tỷ lệ với mật độ tích hợp các transistor trên chip Với công nghệ vi mạch 0.13 và 0.09um, các bộ vi xử lý chắc chắn sẽ đạt tới tốc độ hàng chục Gigahertz trong vài năm tới
Như vậy chừng nào định luật Moore còn đúng thì các bộ vi xử lý sẽ ngày càng trở nên mạnh mẽ hơn Tuy nhiên dù các bộ xử lý đơn sẽ còn tiếp tục phát triển nhanh chóng, các bộ xử lý song song chắc chắn sẽ chiếm một vị thế quan trọng trong tương lai không xa Quan điểm này được đưa ra dựa trên các cơ sở sau:
Thứ nhất, do các bộ vi xử lý hiện nay vẫn đang dùng công nghệ đơn
xử lý nên để tăng hiệu năng chung cho hệ thống có thể thực hiện kết nối nhiều bộ đơn xử lý với nhau Nói chung đây là giải pháp khá kinh tế và hợp lý hơn so với việc thiết kế một vi xử lý mới
Thứ hai, trong thời gian tới xu hướng phát triển các bộ vi xử lý đơn sẽ
đi theo hướng đơn giản hoá so với hiện nay Như chúng ta đã thấy, các bộ
vi xử lý đa năng mà chúng ta dùng hiện nay có kiến trúc ngày càng phức tạp Việc tăng hiệu năng của các bộ vi xử lý này đồng nghĩa với việc tăng
số lượng các mạch tích hợp, tăng công suất tiêu thụ điện Hơn nữa, trong một thời gian ngắn sắp tới khi định luật Moore không còn hiệu lực, các
bộ vi xử lý đơn có thể sẽ tiến tới một ngưỡng phát triển nào đó Khi đó muốn tăng sức mạnh cho các hệ thống tính toán bắt buộc phải sử dụng nhiều bộ xử lý song song với nhau
Thứ ba, chúng ta đã thấy những tiến bộ vượt bậc trên một lĩnh vực mà
bấy lâu nay là vật cản đường trong việc ứng dụng rộng rãi các bộ vi xử lý song song, đó là lĩnh vực phần mềm Các thành tựu trong lĩnh vực này dường như nhanh hơn trên các thị trường các ứng dụng máy chủ và các ứng dụng nhúng Các ứng dụng loại này cần phải có cơ chế xử lý song song mà không phải viết lại các phần mềm sẵn có, đây luôn được coi là một công việc vô cùng nặng nề khi phải viết lại các bộ mã khổng lồ Điều này đặt ra không ít thách thức cho chúng ta, khi mà chúng ta vẫn sử dụng các bộ vi xử lý đơn
Trong thực tế, việc cải thiện hiệu năng của các bộ vi xử lý sẽ được tiếp tục trong vòng tối thiểu là 5 năm tới nhằm chế tạo ra các bộ xử lý đơn ngày càng mạnh hơn Việc xu hướng này còn được tiếp diễn lâu nữa hay
Trang 5không thì rất khó dự đoán Tuy nhiên, chắc chằn rằng khi hiệu quả do bộ đơn xử lý mang lại bị giảm xuống thì vai trò của kiến trúc đa xử lý sẽ trở nên rất quan trọng
1.2 Khái niệm về kỹ thuật song song mức lệnh
Với một bộ vi xử lý có nhiều dòng mã lệnh và nhiều dòng dữ liệu, mỗi một bộ vi xử lý có thể chạy các lệnh của chính nó Trong nhiều trường hợp, các vi xử lý có thể chạy các tiến trình khác nhau (một tiến trình trên một bộ vi xử lý là một đoạn mã có thể chạy độc lập và các trạng thái của tiến trình có chứa toàn bộ các thông tin cần thiết cho việc chạy chương trình trên bộ vi xử lý đó) Trong một môi trường nhiều chương trình, nơi
mà các bộ vi xử lý có thể đảm nhận các công việc của riêng nó, mỗi tiến trình trên một bộ vi xử lý là hoàn toàn độc lập với các tiến trình khác trên các bộ vi xử lý khác
Chúng ta nhận thấy rằng thật là hữu ích nếu có thể chạy một chương trình trên một bộ đa xử lý, chia sẻ mã lệnh và hầu hết các không gian địa chỉ của nó Khi có nhiều tiến trình cùng chia sẻ mã lệnh và dữ liệu theo
kiểu này, chúng được gọi là các lệnh Ngày nay, thuật ngữ dòng thường
được dùng để chỉ việc tiến hành chạy mã trên nhiều vùng, có thể là trên nhiều vi xử lý khác nhau, ngay cả khi chúng không chia sẻ không gian địa chỉ
Để có thể tận dụng hiệu năng của một bộ đa xử lý có n vi xử lý, chúng
ta cần phải có tổi thiểu là n dòng hoặc n tiến trình chạy đồng thời Các
tiến trình độc lập có thể là do lập trình viên xác định tại thời điểm lập trình hoặc có thể được tạo lập bởi trình biên dịch Vì rằng khái niệm song song trong trường hợp này được bao hàm trong các dòng nên được gọi là
xử lý song song mức lệnh
Xử lý song song song cho phép các dòng có thể chia sẻ các đơn vị chức năng của một bộ vi xử lý đơn theo kiểu xếp chồng Để có thể cho phép chia sẻ các đơn vị này, bộ vi xử lý cần thiết phải nhân đôi trạng thái độc lập của mỗi dòng lệnh Ví dụ là phải có một bản copy riêng biệt cho file đăng ký, một PC riêng biệt và một bảng phân trang cho mỗi dòng lệnh Bộ nhớ có thể được chia sẻ thông qua cơ chế bộ nhớ ảo, cơ chế này
đã hỗ trợ lập trình đa lệnh Thêm vào đó, phần cứng phải hỗ trợ khả năng thay đổi tới các dòng khác nhau đủ nhanh; trong thực tế, cơ chế chuyển dòng phải nhanh hơn cơ chế chuyển tiến trình, và thông thường, cơ chế này đòi hỏi hàng trăm tới hàng ngàn chu kỳ vi xử lý
Trang 61.3 Cách tiếp cận xử lý song song (xử lý đa lệnh)
Có hai cách tiếp cận tới xử lý đa lệnh Đó là:
Chuyển mạch đa dòng mịn giữa các dòng trên mỗi lệnh, làm cho việc chạy các lệnh được tiến hành luân phiên Việc chạy luân phiên này được thực hiện thông qua cơ chế xoay vòng, bỏ qua mọi lệnh bị giữ tại thời điểm đó Để có thể thực hiện đa lệnh theo kiểu này, khối xử lý trung tâm phải có thể chuyển giữa các lệnh trong mọi chu kỳ đồng hồ Một lợi điểm quan trọng của chuyển mạch đa dòng mịn là nó thế thế che giấu thông lượng bị mất phát sinh do quá trình giữ các lệnh quá nhanh hoặc quá lâu
vì rằng các lệnh từ các dòng khác vẫn có thể chạy trong khi một dòng bị giữ lại Nhược điểm chính của phương pháp này là nó làm chậm quá trình chạy các dòng riêng rẽ vì rằng mỗi dòng sắp chạy mà không bị giữ lại sẽ phải bị làm trễ bởi các lệnh từ các dòng khác
Một cách tiếp cận khác là xử lý đa dòng thô Đây là giải pháp được phát minh như là một giải pháp thay thế cho phương pháp đa dòng mịn Phương pháp đa dòng thô tiến hành chuyển các lệnh chỉ khi lệnh này bị giữ lại đủ lâu, chẳng hạn như là bị giữ lại ở cache L2 Việc này làm giảm thời gian trễ khi thực hiện các luồng độc lập vì rằng một lệnh chỉ bị làm trễ khi mà nó bị giữ lại đủ lâu Đa lệnh thô có một nhược điểm chính là khả năng giảm thông lượng bị mất của nó luôn bị giới hạn, nhất là đối với các lệnh có thời gian giữ lại ngắn
Trang 7CHƯƠNG 2 KHÁI QUÁT MÁY TÍNH SONG SONG
Ở chương này chúng ta tìm hiểu về một số kiến trúc cơ bản liên quan
đến kiến trúc song song đó là: Siêu ống dẩn, Siêu vô hướng (superscalar),
Máy tính có lệnh thật dài VLIW (Very long instruction word), Máy tính
vector Trên cơ sở đó người ta đưa ra kiến trúc song song để hạn chế
những nhược điẻn và tăng hiệu quả của máy tính
2.1 Siêu ống dẩn
Máy tính có kỹ thuật siêu ống dẫn bậc n bằng cách chia các giai
đoạn của kỹ thuật ống dẫn đơn giản, mỗi giai đoạn được thực hiện trong
khoản thời gian Tc, thành n giai đoạn con thực hiện trong khoản thời gian
Tc/n Độ hữu hiệu của kỹ thuật này tương đương với việc thi hành n lệnh
trong mỗi chu kỳ Tc Hình III.7 trình bày thí dụ về siêu ống dẫn bậc 2, có
so sánh với siêu ống dẫn đơn giản Ta thấy trong một chu kỳ Tc, máy
dùng kỹ thuật siêu ống dẫn làm 2 lệnh thay vì làm1 lệnh trong máy dùng
kỹ thuật ống dẫn bình thường Trong máy tính siêu ống dẫn, tốc độ thực
hiện lệnh tương đương với việc thực hiện một lệnh trong khoảng thời
gian Tc/n Các bất lợi của siêu ống dẫn là thời gian thực hiện một giai
đoạn con ngắn Tc/n và việc trì hoãn trong thi hành lệnh nhảy lớn Trong
ví dụ ở hình III.7, nếu lệnh thứ i là một lệnh nhảy tương đối thì lệnh này
được giải mã trong giai đoạn ID, địa chỉ nhảy đến được tính vào giai đoạn
EX, lệnh phải được nhảy tới là lệnh thứ i+4, vậy có trì trệ 3 lệnh thay vì 1
lệnh trong kỹ thuật ống dẫn bình thường
Hình 1 Siêu ống dẫn bậc 2 so với siêu ống dẫn đơn giản
Trong khoảng thời gian Tc, máy có siêu ống dẫn làm 2 lệnh thay vì 1
lệnh như trong máy có kỹ thuật ống dẫn đơn giản
Trang 82.2 Siêu vô hướng (superscalar)
Máy tính siêu vô hướng bậc n có thể thực hiện đồng thời n lệnh
trong một chu kỳ xung nhịp Tc Hình III.8 trình bày một ví dụ về sự vận
hành của một máy tính siêu vô hướng bậc 2 so với một máy tính dùng kỹ thuật ống dẫn
Trong một máy tính siêu vô hướng phần cứng phải quản lý việc
đọc và thi hành đồng thời nhiều lệnh Vậy nó phải có khả năng quản lý
các quan hệ giữa số liệu với nhau Cũng cần phải chọn các lệnh có khả
năng được thi hành cùng một lúc Những bộ xử lý đầu tiên đưa ra thị
trường dùng kỹ thuật này là các bộ xử lý Intel i860 và IBM RS/6000 Các
bộ xử lý này có khả năng thực hiện song song nhiều tác vụ trên số nguyên
và trên số lẻ
Năm 1992, người ta thấy xuất hiện các bộ xử lý có nhiều bộ thực hiện tác vụ độc lập với nhau (nhiều ALU, bộ tính toán số lẻ, nạp dữ liệu,
lưu dữ liệu, nhảy), có thể thực hiện song song nhiều lệnh (lệnh tính số
nguyên, số lẻ, lệnh bộ nhớ, lệnh nhảy ) Số lệnh có thể được thi hành
song song càng nhiều thì phần cứng thực hiện việc này càng phức tạp
Hình 2 Siêu vô hướng (a) so với kỹ thuật ống dẫn (b)
2.3.Máy tính có lệnh thật dài VLIW (Very long instruction word)
Máy tính siêu vô hướng có thể thực hiện 2 hoặc 3 lệnh trong mỗi chu kỳ xung nhịp Do kỹ thuật ống dẫn đòi hỏi các lệnh phải phụ thuộc
vào nhau nên rất khó thực hiện nhiều lệnh trong một chu kỳ Như vậy,
Trang 9thay vì cố thực hiện nhiều lệnh trong một chu kỳ, người ta tìm cách đưa vào nhiều lệnh trong một từ lệnh dài Một lệnh VLIW có thể chứa hai tác
vụ tính toán số nguyên, hai tác vụ tính toán số lẻ, hai tác vụ thâm nhập bộ nhớ và một lệnh nhảy Một lệnh như vậy được chia thành nhiều trường, mỗi trường có thể có từ 16 đến 24 bít và chiều dài của lệnh VLIW là từ
112 đến 168 bít Có nhiều kỹ thuật tạo ra một lệnh VLIW trong đó tất cả các trường đều được dùng Giá thành và độ phức tạp của một máy tính có lệnh thật dài tăng lên rất nhiều nếu người ta tăng số trường trong một lệnh VLIW
Hình 3 Biểu diễntư lệnh dài 2.4.Máy tính vector
Một máy tính vectơ bao gồm một bộ tính toán vô hướng bình thường dùng kỹ thuật ống dẫn và một bộ làm tính vectơ Bộ tính toán vô hướng, giống như bộ xử lý dùng kỹ thuật ống dẫn, thực hiện các phép tính vô hướng, còn bộ làm tính vectơ thực hiện các phép tính vectơ Đa số các máy tính vectơ cho phép làm các phép tính trên vectơ số nguyên, vectơ số lẻ và vectơ số logic (số Boolean)
Có 2 kiểu kiến trúc máy tính vectơ: kiểu vectơ ô nhớ - ô nhớ và kiểu thanh ghi vectơ Trong máy tính loại vectơ bộ nhớ - bộ nhớ, các phép tính vectơ được thực hiện trong bộ nhớ Kiến trúc kiểu thanh ghi vectơ được thực hiện trong các siêu máy tính CRAY - 1, CRAY - 2, X -
MP, Y - MP, trong các siêu máy tính của Nhật NEC SX/2, Fujitsu VP200
và Hitachi S820 Các máy này có một bộ nhiều thanh ghi vectơ và những tác vụ vectơ được thực hiện trên các thanh ghi này ngoại trừ các tác vụ nạp dữ liệu và lưu dữ liệu Máy CRAY-2 (1995) có 8 thanh ghi vectơ, mỗi thanh ghi có thể chứa 64 vectơ, mỗi vectơ có chiều dài 64 bít
2.5 Máy tính song song
Trong các máy tính siêu ống dẫn, siêu vô hướng, máy tính vectơ, máy tính VLIW, người ta đã dùng tính thực hiện song song các lệnh ở các
Trang 10mức độ khác nhau để làm tăng hiệu quả của chúng Giới hạn về khả năng tính toán của loại máy trên cùng với sự phát triển của công nghệ máy tính khiến người ta nghĩ tới giải pháp song song theo đó người ta tăng cường hiệu quả của máy tính bằng cách tăng số lượng bộ xử lý
Dựa vào nguyên tắc hoạt động và cơ chế trao đổi lệnh, dữ liệu của bộ vi
xử lý Các kiến trúc máy tính có thể sắp xếp vào 4 loại sau:
- SISD (Single Instructions Stream, Single Data Stream): Máy tính một
dòng lệnh, một dòng số liệu Đây chính là kiến trúc đơn xử lý
- SIMD (Single Instructions Stream, Multiple Data Stream): Máy tính
một dòng lệnh, nhiều dòng số liệu Kiến trúc này bao gồm nhiều bộ xử lý chạy song song, các bộ xử lý này có vùng nhớ dữ liệu riêng nhưng luôn cùng thực hiện một lệnh
- MISD (Multiple Instructions Stream, Single Data Stream):Máy tính
nhiều dòng lệnh, một dòng số liệu Hiện tại các máy tính hoạt động theo
cơ chế này chưa được chế tạo
- MIMD (Multiple Instruction Stream, Multiple Data Stream): Máy
tính nhiều dòng lệnh, nhiều dòng số liệu
Kiểu phân loại này đơn giản, dễ hiểu, vẫn còn hiệu lực đến hôm nay, mặc dù có những máy tính dùng kiến trúc hỗn tạp
Ngoài ra còn có nhiều hệ thống máy tính được xây dựng trên cơ sở lai ghép giữa các kiển kiến trúc cơ bản trên Thông thường các hệ thống máy tính song song hiện nay nhất là các hệ đa xử lý đa năng được thiết kế trên
cơ sở kiến trúc MIMD, bởi vì:
Đây là kiến trúc linh hoạt Nó có thể hoạt động như một hệ thống đa
xử lý hiệu năng cao dùng cho một ứng dụng hoặc được lập trình để chạy đồng thời nhiều tác vụ hay kết hợp cả hai khả năng trên
Thông thường các máy tính MIMD được xây dựng từ các bộ xử lý thông thường, đảm bảo tối ưu hoá hiệu năng cũng như giá thành của hệ thống
Việc thực thi các chương trình trên hệ thống đa xử lý có thể tiến hành theo các cách sau:
Mỗi bộ xử lý thực hiện một tiến trình riêng, độc lập với các tiến trình trên các bộ xử lý khác
Các bộ xử lý cùng thực hiện một chương trình Chúng chia sẻ mã và dữ liệu với nhau Khi đó, các tác vụ chạy trên các bộ xử lý được gọi là các luồng (thread)
Trang 11CHƯƠNG 3 MỘT SỐ KẾN TRÚC SONG SONG THÔNG
DUNG
3.1.Máy tính SISD
Các máy tính SISD tương ứng với các máy một bộ xử lý mà
chúng ta đã nghiên cứu
Hình 4: Kiến trúc SISD
CU: Control Unit
PU: Procesing Unit
MU: Memory Unit
Một bộ xử lý
Đơn dòng lệnh
Dữ liệu duựơc lưu trữ trong bộ nhớ
Chính là kiến trúc von Neumann
3.2 Các máy MISD kiểu máy tính này không sản xuất thương mại
Một luồng dữ liệu cùng được truyền đến một tập các bộ xử lý Một bộ xử lý thực hiện một dãy lệnh khác nhau
kiểu kiến trúc này không tồn tại trong thực tế, có thể tồn tại trong tương lai
3.3 Kiến trúc SIMD
Các máy SIMD có một số lớn các bộ xử lý giống nhau, cùng thực hiện một lệnh giống nhau để xử lý nhiều dòng dữ liệu khác nhau Mỗi bộ
xử lý có bộ nhớ dữ liệu riêng, nhưng chỉ có một bộ nhớ lệnh và một bộ
xử lý điều khiển, bộ này đọc và thi hành các lệnh Máy CONNECTION MACHINE 2 (65536 bộ xử lý 1 bít) của công ty Thinking Machine Inc,
là một ví dụ điển hình của SIMD Tính song song dùng trong các máy SIMD là tính song song của các dữ liệu Nó chỉ có hiệu quả nếu cấu trúc các dữ liệu dễ dàng thích ứng với cấu trúc vật lý của các bộ xử lý thành