Giáo trình Hệ thống vi xử lý tiên tiến

pdf 120 trang ngocly 110
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hệ thống vi xử lý tiên tiến", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_he_thong_vi_xu_ly_tien_tien.pdf

Nội dung text: Giáo trình Hệ thống vi xử lý tiên tiến

  1. 1 Nguyễn Trung Đồng Tel. 0983 410 866 Chương I. Các Hệ Vi xử lý tiên tiến I.1. Tổng quan về Hệ Vi xử lý tiên tiến Các hệ Vi xử lý tiên tiến bắt đầu xuất hiện vào giữa những năm 1990 từ các hãng chế tạo hàng đầu thế giới như Intel, Motorola, Sun, IBM, DEC, AMD, Đặc điểm cơ bản của các hệ Vi xử lý loại này là xử lý dữ liệu 32 bit hoặc 64 bit. BUS dữ liệu trong (Internal Data BUS) và BUS dữ liệu ngoài (External Data BUS) thường là 32 bit hoặc 64 bit. PUIQ DU A-BUS 32n (Prefetch Unit & Instruction Queue) (Decoding Unit) BIU D-BUS 32+j (BUS ICACHE Inter- (Instruction cache) C-BUS face BTC CU Unit) (Target Control (Control Unit) DCACHE Cache Unit) (Data Cache) MMU (Me- mory BUS nội (Internal BUS) 32n Ma- nage- ment IU (Integer Unit) FPU (Floating Point Unit) Unit) IRF FPRF SFU (Integer Register File) (Floating Point Register (Spe- File) cial Func- IOU FPOU tion (Integer Operation (Floating Point Operation Unit) Unit) Unit) Hình I.1. Sơ đồ khối bộ Vi xử lý công nghệ tiên tiến
  2. 2 Hệ Vi xử lý tiên tiến Các đơn vị chức năng cơ bản trong sơ đồ khối cấu trúc của một CPU công nghệ tiên tiến gồm: A-BUS (Address BUS): BUS địa chỉ D-BUS (Data BUS): BUS dữ liệu C-BUS (Control BUS): BUS điều khiển BIU (BUS Interface Unit): Đơn vị giao tiếp BUS MMU (Memory Management Unit): Đơn vị quản lý bộ nhớ SFU (Special Function Unit): Đơn vị chức năng đặc biệt PUIQ (Prefetch Unit and Instruction Queue): Đơn vị tiền đọc lệnh và hàng lệnh DU (Decoding Unit): Đơn vị giải mã ICACHE (Instruction Cache): Cache lệnh DCACHE (Data Cache): Cache dữ liệu BTC (Branche Target Control Cache Unit): Đơn vị cache điều khiển đích rẽ nhánh CU (Control Unit): Đơn vị điều khiển IU (Integer Unit): Đơn vị số nguyên FPU (Floating Point Unit): Đơn vị dấu phẩy động IRF (Integer Register File): Tệp thanh ghi số nguyên IOU (Integer Operation Unit): Đơn vị thao tác số nguyên
  3. 3 Nguyễn Trung Đồng Tel. 0983 410 866 FPRF (Floating Point Register File): Tệp thanh ghi số dấu phẩy động FPOU (Floating Point Operation Unit): Đơn vị thao tác số dấu phẩy động Với các bộ Vi xử lý 32 bit, các thanh ghi FPR và đơn vị số nguyên IU là 32 bit, BUS dữ liệu có thể là 32 bit, còn trong các bộ Vi xử lý 64 bit, thì IU là 64 bit, các FPR là 64 bit, BUS dữ liệu có thể là 64, 64x3 hoặc 64x4 bit (32n hoặc 32k, trong đó n, k là các số nguyên). BUS địa chỉ thường cho phép quản lý bộ nhớ có dung lượng đến 4GB (232), hoặc lớn hơn với BUS địa chỉ 32+j bit. Đơn vị giao tiếp BUS (BIU) là bộ đệm giữa các khối chức năng bên trong CPU với các thành phần chức năng bên ngoài gồm bộ nhớ, thiết bị vào/ra và được tổ chức hành ba loại giao tiếp sau: Giao tiếp dữ liệu (Data Interface) Giao tiếp địa chỉ (Address Interface) Giao tiếp điều khiển (Control Interface). Các thành phần chức năng bên trong CPU được liên kết với nhau qua BUS bên trong (Internal BUS). Giao tiếp dữ liệu thực hiện việc kết nối trực tiếp với PUIQ và vùng nhớ cache. Giao tiếp địa chỉ được tạo bởi đơn vị MMU và địa chỉ của các vị trí nhớ, của thiết bị ngoại vi được đưa tới các thành phần tương ứng. Giao tiếp điều khiển gửi các tín hiệu điều khiển hoạt động và nhận các tín hiệu trạng thái (trạng thái sẵn sàng, tín hiệu yêu cầu ngắt v.v ), của các thành phần chức năng có liên lạc trao đổi dữ liệu với CPU. Các liên kết này được nối trực tiếp với đơn vị điều khiển CU.
  4. 4 Hệ Vi xử lý tiên tiến 32k Data BUS Data Interface PUIQ Prefetch Unit and Instruction Queue 32+j Address BUS Address Interface ICACHE Control BUS Control Interface DCACHE MMU Memory Management Unit Internal BUS 32n Hình I.2. Đơn vị giao tiếp BUS BIU Đơn vị tiền đọc lệnh và hàng lệnh (PUIQ) được xây dựng từ các mạch logic để đọc trước các lệnh từ ICACHE và đặt lệnh vào hàng đợi. Hàng đợi được tổ chức theo nguyên lý FIFO (First In First Out). Hàng đợi thường có độ dài từ 8 đến 32 byte. Từ hàng đợi, lệnh được chuyển tới đơn vị giải mã DU. Ở các hệ Vi xử lý tiên tiến, DU có thể đồng thời giải mã một số lệnh để được thực hiện theo cơ chế xử lý song song. Đơn vị các chức năng đặc biệt (SFU) bao gồm các đơn vị chức năng bổ sung thêm cho CPU như đơn vị đồ họa (Graphic Unit), đơn vị xử lý tín hiệu (Signal Processing Unit), đơn vị xử lý ma trận và vector (Vector and Matrix Unit), v.v Một số bộ Vi xử lý có thể được tích hợp thêm một số SFU và cấu trúc này làm giảm tối thiểu thời gian trễ giao tiếp, nâng hiệu suất CPU lên đáng kể. Bộ nhớ Cache (Cache Memory) là bộ nhớ trung gian có tốc độ truy xuất rất cao, là vùng nhớ đệm giữa CPU và bộ nhớ chính. Với các CPU tiên tiến, bộ nhớ cache có dung
  5. 5 Nguyễn Trung Đồng Tel. 0983 410 866 lượng đủ lớn và tối ưu giúp cải tiến đáng kể hiệu suất làm việc của CPU nhờ được cung cấp lệnh và dữ liệu nhanh hơn nhiều so với bộ nhớ chính. Bộ nhớ cache thường được chia ra thành cache lệnh (ICACHE) và cache dữ liệu (DCACHE). BIU làm nhiệm vụ lấy thông tin (lệnh và dữ liệu) từ bộ nhớ chính vào bộ nhớ cache, ICACHE được kết nối trực tiếp với PUIQ. ICACHE và DCACHE được kết nối với các thành phần chức năng của CPU thông qua BUS bên trong (internal BUS) và BUS dữ liệu điều hành ODB (Operation Data BUS). Thông thường ODB có thể có độ rộng là 128 đến 256 bit để có khả năng chuyển tải một lúc nhiều toán hạng. Có thể thấy được vai trò quan trọng của bộ nhớ Cache thông qua sơ đồ tổ chức bộ nhớ theo phân cấp như ở hình I.3. Dung lượng Tốc độ truy xuất >1kB CPU 1kB 64kB Bộ nhớ Cache L1 512kB Bộ nhớ Cache L2 1GB Bộ nhớ chính 60GB Bộ nhớ ngoài (các ổ đĩa) < Hình I.3. Phân cấp bộ nhớ , dung lượng và tốc độ truy xuất Cache thứ cấp L2 nằm giữa cache sơ cấp L1 và bộ nhớ chính, kết nối trực tiếp với CPU không qua BUS hệ thống, được chế tạo từ RAM tĩnh nên có tốc độ truy xuất rất nhanh. Dung lượng cache thứ cấp L2 có thể lên đến hơn vài MB. Điều khiển và giao tiếp cache thứ cấp là mạch logic tổ hợp được tích hợp bên trong CPU.
  6. 6 Hệ Vi xử lý tiên tiến Hình I.5. cho thấy trong kiến trúc siêu hướng (superscalar) ICACHE được liên kết trực tiếp với đơn vị tiền đọc lệnh để thực thi việc xử lý song song các lệnh. CACHE thứ cấp L2 Hình I.4. Kết nối CACHE trong Vi xử lý Logic điều khiển cache thứ cấp L2 ICACHE IC BUS bên trong (Internal BUS) 32n IU BUS beeb trong (Internal BUS) 32n DCACHE IU FPU SFU BUS thao tác dữ liệu ODB 32n ICACHE 32i Instruction Fetch 32i Decoding Unit Control Unit Đơn vị thao tác Đơn vị thao tác Đơn vị thao tác đường ống 1 đường ống 2 đường ống i (Pipelined (Pipelined (Pipelined Operation Unit Operation Unit Operation Unit 1) 2) i)
  7. 7 Nguyễn Trung Đồng Tel. 0983 410 866 Hình I.5. Xử lý lệnh trong kiến trúc siêu hướng (Superscalar) Để nâng cao hiệu suất thực hiện, nhất là khi gặp các lệnh rẽ nhánh, các CPU được tích hợp thêm cache đích rẽ nhánh BTC (Branche Target Cache). Lệnh đích đầu tiên của lệnh rẽ nhánh được nạp vào vùng cache này, nên thời gian trễ do tìm lệnh đích trong bộ nhớ chính được giảm đáng kể. Trong một số trường hợp BTC chỉ chứa địa chỉ của các lệnh đích rẽ nhánh, chứ không chứa chính các lệnh đó. Đơn vị điều khiển (CU) có thể là “cứng hóa”, hoặc được lập trình như đối với các CPU họ x86 của Intel. Trong các CPU kiến trúc RISC, CU thường được “cứng hóa” nhằm tăng tốc độ thực hiện lệnh chỉ trong một chu kỳ đơn. Hầu hết các tín hiệu điều khiển của giao tiếp điều khiển được kết nối với CU. Các tín hiệu từ đơn vị giải mã lệnh cũng được đưa về CU. Tín hiệu phát ra từ CU được đưa đến các thành phần chức năng thực hiện lệnh. Đơn vị số nguyên (IU) thực hiện các phép xử lý với dữ liệu nguyên (integer) như các phép tính số học cộng/trừ, nhân/chia. IU có tệp thanh ghi 32 hoặc 64bit phụ thuộc vào loại CPU. Các Vi xử lý kiến trúc CISC có từ 8 đến 16 thanh ghi, còn các CPU kiến trúc RISC có thể có từ 32 đến hơn 100 thanh ghi. Dòng dữ liệu di chuyển theo hai đường (cho mỗi toán hạng là một đường) để tới các đơn vị thao tác xử lý thông qua ODB. Đơn vị điều phối lệnh đã dược giải mã nhận các tín hiệu từ CU và gửi tới các đơn vị thực hiện phép xử lý.
  8. 8 Hệ Vi xử lý tiên tiến Tương tự, đơn vị số dấu phẩy động (FPU) nhận dữ liệu từ DCACHE thông qua BUS thao tác dữ liệu chuyển tới các đơn vị xử lý. Đơn vị dịch ống (Barrel Shifter) có thể thực hiện phép dịch nhiều bit trong một chu kỳ đơn. Đơn vị điều khiển Đến FPU hoặc SFU Đơn vị điều phối lệnh đã được giải mã BUS bên trong 32n (Decoded Instruction Dispatcher) IRF Nx32 hoặc ADD/ ADD/ MUL/ MUL/ Nx64 SUB1 SUBi DIV1 DIVk BUS thao tác dữ liệu ODB 32n DCACHE Dịch ống (Barrel shifter) Hình I.6. Đơn vị số nguyên IU FPU có cấu trúc hoàn toàn tương tự IU, chỉ thay thế các khối xử lý nguyên bằng các khối xử lý dấu phẩy động. Với tệp các thanh ghi thì ở đơn vị số dấu phẩy động, N = 8 với các CPU CISC và là 32 hoặc nhiều hơn với các CPU RISC. Số dấu phẩy động được biểu diễn theo chuẩn IEEE 754- 1985 với chính xác đơn là 32 bit, chính xác gấp đôi là 64 bit, số chính xác mở rộng lên tới 80 bit.
  9. 9 Nguyễn Trung Đồng Tel. 0983 410 866 Đơn vị quản lý bộ nhớ (MMU) thực hiện các chức năng: Chuyển đổi địa chỉ ảo hay địa chỉ logic thành địa chỉ vật lý của ô nhớ. Địa chỉ này được chuyển tới bộ nhớ cache hoặc tới bộ nhớ chính. Đảm bảo cơ chế phân trang Đảm bảo cơ chế phân đoạn Đảm bảo chế độ bảo vệ bộ nhớ theo luật truy nhập theo đặc quyền Quản lý bộ đệm duyệt chuyển đổi TLB (Translation Lookaside Buffer) hay cache chuyển đổi địa chỉ ATC (Address Translation Cache) để chuyển đổi địa chỉ ảo thành địa chỉ vật lý. Từ đơn vị tiền đọc Đến ICACHE BUS bên trong (Internal BUS) BUS bên trong (Internal BUS) Từ BIU Bộ đệm chuyển đổi Đơn vị phân trang Đơn vị phân đoạn Hình I.7. Đơn vị quản lý bộ nhớ MMU Các chip Vi xử lý công nghệ cao thường có đơn vị chức năng phân trang (Paging Unit) và TLB, hoặc ATC, chỉ có riêng họ Vi xử lý x86 của Intel có thêm đơn vị phân đoạn (Segment Unit). Trong MMU còn có mạch logic thực hiện chức năng giám sát các truy nhập đến các thư mục trang và
  10. 10 Hệ Vi xử lý tiên tiến các bảng tương ứng trong bộ nhớ chính, và nạp vào TLB số hiệu trang nếu như không tìm thấy trong TLB (hiện tượng chưa nạp số hiệu trang). I.2. Đặc điểm kiến trúc Hệ Vi xử lý tiên tiến Nói đến các hệ thống máy tính tiên tiến, khái niệm xử lý song song được quan tâm nhiều nhất, và là cơ sở để đánh giá tính tiên tiến, hiện đại của hệ thống. Phạm trù công nghệ trong các Hệ Vi xử lý tiên tiến chủ yếu tập trung vào các nhu cầu cấp thiết của sự hoàn thiện cấu hình cao, giá thành hạ, tổ chức sản xuất hàng thương phẩm và ứng dụng thực tiễn. Xử lý song song xuất hiện dưới những hình thức tổ chức và kiến trúc khác nhau, trong đó, các kiến trúc siêu hướng (Superscalar), kiến trúc đường ống (Pipeline), kiến trúc đa xử lý (Multiptiprocessor) và kiến trúc từ lệnh rất dài (VLIW – Very Long Instruction Word) là những kiến trúc tiêu biểu nhất. Tuy dưới dạng các kiến trúc khác nhau, nhưng về nguyên lý, xử lý song song có thể hiểu được thông qua một ví dụ cụ thể sau đây: Giả sử một nhiệm vụ T có thể chia thành n công việc con có kích thước xấp xỉ nhau và có thể xử lý đồng thời (thực hiện song song), thì nhiệm vụ T sẽ được thực hiện xong trong một khoảng thời gian ngắn hơn rất nhiều so với cách thực hiện theo tuần tự. Ví dụ phải tính tổng của N số hạng b1, b2, , bN. Đoạn chương trình đơn giản tính tổng đó có thể mô tả như sau: SUM = 0; for i = 1 to N do SUM = SUM +b(i);
  11. 11 Nguyễn Trung Đồng Tel. 0983 410 866 Trong máy tuần tự, sau N phép cộng, tổng sẽ là kết quả ở biến SUM. Nếu mỗi phép cộng được thực hiện trong khoảng thời gian là Tadd thì tổng thời gian là xấp xỉ NTadd . Giả sử có một máy tính có n bộ xử lý P1, P2, , Pn giống nhau được kết nối theo cấu trúc mảng 2 chiều, mỗi bộ đồng thời tiếp nhận (receive) và gửi (send) dữ liệu cho bộ xử lý kề cận. P1 P2 P3 PN Hình I.8. Mảng tuyến tính 2 chiều gồm n bộ Vi xử lý Nếu thực hiện xử lý song song để tính tổng SUM trên hệ thống này, ta có thể chia cho mỗi bộ xử lý tính tổng của k số hạng, tổng SUM được tính qua k tổng của N/n số hạng, mà các tổng con này được tiến hành tính đồng thời. Bộ xử lý Pi chuyển kết quả phép cộng của nó cho bộ xử lý Pi+1, Kết quả của bộ xử lý Pi+1 chuyển sang cho bộ xử lý Pi+2, v.v Như vậy, kết quả tống N số hạng sẽ nằm ở bộ xử lý Pn. Đoạn chương trình thực hiện phép tính tổng N số hạng sẽ như sau: SUM = 0; for i = 1 to k do SUM = SUM + b(i); if INDEX = 1 then begin if n > 1 then send (RIGHT, SUM) end else
  12. 12 Hệ Vi xử lý tiên tiến begin receive (LEFT, LEFTSUM); if INDEX < n then send (RIGHT,SUM); end; Từ chương trình thực hiện, thấy rằng thời gian T(n) cần để tính tổng SUM theo xử lý song song trên n bộ xử lý có 2 thành phần chính: N a) TL thời gian tính cục bộ để tính k = phép cộng n N đồng thời trên n bộ xử lý. TL = K trong đó K1 1 n là hằng số phụ thuộc vào thời gian cộng và lưu giữ trên 1 bộ Vi xử lý. b) TC là thời gian truyền thông để gửi dữ liệu trung gian qua n – 1 phép cộng. TC = K2(n-1) trong đó K2 phụ thuộc vào độ trễ truyền thông giữa các bộ Vi xử lý. T(n) = TL + TC = + K2(n-1) Thời gian truyền dữ liệu giữa các bộ Vi xử lý lớn hơn rất nhiều so với thời gian tính toán, K2 » K1 và nếu n càng lớn thì TC càng lớn. Rõ ràng nếu n = 1 thì T(n) = K1N. I.3. Phân loại các bộ Vi xử lý song song Các bộ Vi xử lý song song có thể phân loại theo hành vi hoặc theo cấu trúc. Theo hành vi, chúng được phân loại
  13. 13 Nguyễn Trung Đồng Tel. 0983 410 866 dựa trên số lượng các lệnh và các toán hạng được xử lý đồng thời, còn theo cấu trúc chúng được phân loại theo cách kết nối các bộ Vi xử lý trong hệ thống. Tuy nhiên cả hai cách phân loại này cũng chỉ là tương đối. I.3.1. Phân loại theo Flynn a) Khái niệm chuỗi lệnh và chuỗi dữ liệu Chuỗi lệnh Bộ xử lý P Chuỗi dữ liệu Bộ nhớ M Hình I.9. Trao đổi chuỗi lệnh và chuỗi dữ liệu Đơn vị xử lý P đọc các lệnh (Fetching Instructions) và các dữ liệu (Operands) từ bộ nhớ, thực hiện lệnh (Executing Instructions) và chuyển kết quả vào bộ nhớ chính. Các bước thực hiện này gộp thành 1 chu kỳ lệnh (Instruction Cycle). Các lệnh có thể hình thành một chuỗi lệnh liên tiếp nhau (Instruction Stream) được đọc từ bộ nhớ vào bộ xử lý, các toán hạng cũng hình thành 1 chuỗi dữ liệu theo sau đó tới bộ xử lý. IS IS DS CU PU MU I/O a) Kiến trúc 1 processor SISD Dữ Chương DS DS PE1 LM1 liệu trình từ bộ được nhớ chính lấy từ IS CU bộ IS nhớ DS DS chính PEn LMn b) Kiến trúc multiprocessor SIMD với bộ nhớ phân tán
  14. 14 Hệ Vi xử lý tiên tiến b) Phân loại theo Flynn là phân loại theo chuỗi lệnh và chuỗi dữ liệu. Hình a, b, c, d dưới đây mô tả các hệ xử lý song song theo cách phân loại của Flynn IS IS DS CU1 PU1 I/O Bộ nhớ chia sẻ I/O CU IS PU DS n n IS c) Kiến trúc MIMD với bộ nhớ chia sẻ IS IS IS CU1 CU2 CUn Bộ nhớ IS IS IS (chương trình & dữ DS DS DS liệu) PU1 PU2 PUn DS I/O d) Kiến trúc MISD Các ký hiệu viết tắt: CU (Control Unit) Đơn vị điều khiển
  15. 15 Nguyễn Trung Đồng Tel. 0983 410 866 PU (Processing Unit) Đơn vị xử lý MU (Memory Unit) Đơn vị nhớ IS (Instruction Stream) Chuỗi lệnh DS (Data Stream) Chuỗi dữ liệu PE (Processing Element) Phần tử xử lý LM (Local Memory) Bộ nhớ cục bộ Như vậy, theo Flynn, các hệ thống xử lý song song được chia thành 4 loại theo số lượng chuỗi lệnh và chuỗi dữ liệu: a) SISD (Single Instruction Stream over Single Data Stream) Máy tính với chuỗi lệnh đơn xử lý chuỗi dữ liệu đơn. b) SIMD (Single Instruction Stream over Multiple Data Stream) Máy tính với chuỗi lệnh đơn xử lý chuỗi đa dữ liệu c) MISD (Multiple Instruction Stream over Single Data Stream) Máy tính với chuỗi đa lệnh xử lý chuỗi dữ liệu đơn d) MIMD (Multiple Instruction Stream over Multiple Data Stream) Máy tính với chuỗi đa lệnh xử lý chuỗi đa dữ liệu. Với cách phân loại như trên, trong thực tế máy tính MIMD thường được sử dụng như máy tính đa năng, còn các hệ thống SIMD và MISD là những hệ thống máy tính chuyên dụng. Trong thực tế, máy tính MIMD được sử dụng nhiều nhất, tiếp theo là các máy loại MISD rồi đến loại máy tính SIMD.
  16. 16 Hệ Vi xử lý tiên tiến I.3.2. Phân loại theo kiến trúc Theo quan điểm kiến trúc, máy tính xử lý song song được phân thành 2 loại chủ yếu là máy tính đa xử lý (Multiprocessors) và kiến trúc đa máy tính (Multicomputers). Thực tế, các máy tính này khác nhau cơ bản ở tổ chức bộ nhớ chia sẻ dùng chung và tổ chức bộ nhớ phân tán. a) Đa xử lý với bộ nhớ chia sẻ được phân ra làm 3 loại: Mô hình với bộ nhớ truy xuất đồng nhất (UMA – Uniform Memory-Access), bộ nhớ truy xuất không đồng nhất (NUMA – Nonuniform Memory-Access) và cuối cùng là loại kiến trúc chỉ-có-bộ-nhớ-cache (COMA – Cache-Only Memory Architecture). Với mô hình đa xử lý với bộ nhớ truy xuất bộ nhớ đồng nhất (UMA), bộ nhớ vật lý được chia sẻ đồng nhất cho tất cả các đơn vị xử lý. Tất cả các bộ xử lý đều có tốc độ truy xuất bằng nhau đối với tất cả các từ nhớ. Mỗi đơn vị xử lý có thể có cache riêng, nhưng các thiết bị ngoại vi thì cũng được chia sẻ đồng nhất. Đa xử lý được gọi là hệ thống gắn kết chặt chẽ (tightly coupled systems) vì hình thức chia sẻ nguồn tài nguyên chung. Liên kết giữa các đơn vị xử lý được thực hiện dưới dạng BUS chung thông qua các chuyển mạch chéo, hoặc thông qua các mạng nhiều tầng. Các hệ thống loại này rất thích hợp với các ứng dụng đa năng và ứng dụng nhiều người dùng thông qua việc chia sẻ theo thời gian. Đặc biệt hơn, loại hệ thống này được sử dụng cho những chương trình ứng dụng lớn cần được thực thi trong khoảng thời gian bị hạn chế. Việc tổ chức đồng bộ và liên kết xử lý các sự
  17. 17 Nguyễn Trung Đồng Tel. 0983 410 866 kiện song song được thực hiện trong các đơn vị xử lý thông qua việc chia sẻ biến lưu giữ trong bộ nhớ dùng chung. Khi tất cả các bộ xử lý đều có thời gian truy xuất như nhau đối với các thiết bị ngoại vi, hệ thống được gọi là đa xử lý đối xứng. Trong hệ thống này, tất cả các bộ xử lý đều có khả năng thực hiện các chương trình khả thi, cũng như kernel hệ điều hành và các thủ tục phục vụ ngoại vi. Trong hệ thống đa xử lý phi đối xứng chỉ có một số các đơn vị xử lý có khả năng thực thi chương trình. Đơn vị xử lý chủ có thể thực hiện các chương trình của hệ điều hành và phục vụ các thiết bị ngoại vi, các bộ xử lý khác chỉ có khả năng phục vụ các thiết bị ngoại vi và được gọi là các bộ xử lý gắn kèm (attached processors – Aps). Các bộ xử lý gắn kèm thực hiện lệnh dưới sự giám sát của đơn vị xử lý chủ. Các bộ xử lý P1 P2 Pn Mạng kết nối hệ thống (BUS, thiết bị chuyển mạch, mạng nhiều tầng) Bộ nhớ chia sẻ IO SM1 SMm Hình I.10. Mô hình đa xử lý truy xuất bộ nhớ đồng nhất Với mô hình đa xử lý truy xuất bộ nhớ không đồng nhất (NUMA), thời gian truy xuất đến một vị trí nhớ là khác nhau. Mô hình hệ thống NUMA có bộ nhớ chia sẻ được phân phối cho từng đơn vị xử lý và được gọi là bộ nhớ cục bộ.
  18. 18 Hệ Vi xử lý tiên tiến Ngoài bộ nhớ phân tán, còn có thể có bộ nhớ toàn cục chia sẻ trong hệ thống đa xử lý. Như vậy, sẽ có 3 khả năng truy xuất bộ nhớ: Nhanh nhất là truy xuất bộ nhớ cục bộ, tiếp đến là truy xuất bộ nhớ toàn cục, và chậm nhất là khi truy xuất bộ nhớ phụ. LM1 P1 LM2 P2 Mạng kết nối LMn Pn Hình I.11a. Bộ nhớ cục bộ chia sẻ GSM GSM GSM Mạng kết nối toàn cục P CSM P CSM P CSM P CSM C C I I P CSM P CSM N N Cluster 1 Cluster N Hình I.11b. Mô hình liên kết phân cấp
  19. 19 Nguyễn Trung Đồng Tel. 0983 410 866 Có thể hiểu được dễ dàng, mô hình hệ thống này là sự hỗn hợp giữa bộ nhớ chia sẻ, bộ nhớ riêng với những quyền truy xuất riêng. Có thể nhận ra trên hình I.11b rằng các bộ xử lý được chia thành các cụm (cluster). Mỗi cụm là một hệ thống UMA hoặc NUMA. Các cụm được kết nối với bộ nhớ chia sẻ toàn cục. Toàn bộ hệ thống có thể coi là một hệ thống NUMA. Các bộ xử lý trên cùng một cụm được gọi là modul cụm bộ nhớ-chia sẻ. Tất cả các cụm có quyền bình đẳng truy xuất bộ nhớ toàn cục. Tất nhiên việc truy xuất bộ nhớ trong cụm bao giờ cũng nhanh hơn. Mỗi cụm có thể xác định quyền truy xuất đến các bộ nhớ được ghép nối giữa các cụm. b) Mô hình hệ thống kiến trúc chỉ-truy-xuất-bộ-nhớ- cache (COMA) Mạng kết nối D D D C C C P P P Hình I.12. Mô hình hệ đa xử lý COMA D: Directory (đường dẫn) C: Cache P: Processor
  20. 20 Hệ Vi xử lý tiên tiến Có thể coi hệ thống COMA là trường hợp đặc biệt của NUMA, trong đó bộ nhớ phân tán được chuyển thành bộ nhớ cache. Không tồn tại sự phân cấp bộ nhớ tại các điểm nút. Toàn bộ dung lượng nhớ cache tạo ra không gian địa chỉ toàn cục. Hiện tượng truy xuất cache từ ngoài phải thông qua đường dẫn cache phân tán D. Việc phân cấp đường dẫn D đôi khi cho phép định vị một bản sao chép cache tùy vào dạng mạng kết nối. Bên cạnh các kiến trúc UMA, NUMA, COMA, còn tồn tại những kiến trúc đa xử lý khác. Ví dụ như mô hình kiến trúc truy xuất bộ nhớ không đồng nhất liên kết cache (CC- NUMA: Cache-coherent non-uniforrm memory access) có thể được xác định với bộ nhớ phân tán chia sẻ và các đường dẫn cache. c) Mô hình đa máy tính bộ nhớ phân tán M M M P P P M P Mạng liên kết chuyển thông M P điệp (Message-passing interconnection Network) dạng M P lưới, vòng, lập thể M P M M M P P P Hình I 13. Mô hình kiến trúc đa máy tính mạng liên kết chuyển thông điệp
  21. 21 Nguyễn Trung Đồng Tel. 0983 410 866 Hình I.13 là mô hình kiến trúc hệ thống đa máy tính bộ nhớ phân tán được cấu thành từ nhiều máy tính được gọi là nút, kết nối với nhau thông qua mạng chuyển thông điệp. Mỗi nút là một máy tình độc lập cấu thành bởi bộ xử lý , bộ nhớ cục bộ, cũng có thể có thêm đĩa cứng, hoặc các thiết bị ngoại vi. Mạng chuyển thông điệp thực thi việc kết nối tĩnh giữa các nút. Các bộ nhớ cục bộ là riêng biệt với từng nút và chỉ có thể bị truy xuất bởi chính bộ xử lý tại nút đó. Các hệ thống truyền thống này được gọi là hệ thống đa máy tính không-truy-xuất-bộ-nhớ-từ-xa (no-remote-memory-access). Tuy nhiên, việc đưa thêm bộ nhớ chia sẻ phân tán và khả năng truyền thông điệp giữa các nút thông qua liên kết mạng tĩnh đã loại bỏ khái niệm này. d) Mô hình hệ thống đa vector và các máy tính SIMD Phần này giới thiệu sơ qua về các hệ thống siêu máy tính và các hệ thống bộ xử lý song song cho xử lý vector và dữ liệu song song. Có thể xếp loại chúng thành các máy tính vector đường ống hóa với các bộ xử lý mạnh được liên kết cứng kiểu vector, hay còn gọi là hệ thống SIMD xử lý các tập dữ liệu song song. Siêu máy tính vector là những máy tính có hướng hàng đầu. Hình I.14. cho thấy bộ xử lý vector được gắn kèm với bộ xử lý có hướng, và là hệ thống theo kiến trúc thanh ghi-đến-thanh ghi. Khởi đầu chương trình và dữ liệu được nạp vào bộ nhớ chính thông qua máy chủ. Tất cả các lệnh được giải mã tại đơn vị điều khiển có hướng. Nếu lệnh được giải mã là thao tác có hướng hay thao tác điều khiển chương trình, nó sẽ được thực thi trực tiếp tại bộ xử lý đường ống chức năng scalar. Nếu lệnh được giải mã là thao tác vector, nó được gửi tới đơn vị điều khiển vector. Đơn vị điều khiển
  22. 22 Hệ Vi xử lý tiên tiến vector sẽ giám sát dòng dữ liệu vector giữa bộ nhớ chính và các đường ống vector chức năng. Có thể có nhiều đường ống vector chức năng được tích hợp trong bộ xử lý vector. Tập thanh ghi vector được sử dụng để lưu các toán hạng vector, kết quả tức thời và kết quả cuối cùng. Các đường ống vector chức năng nhận toán hạng từ các thanh ghi này và ghi kết quả trở lại tập thanh ghi này. Mỗi thanh ghi vector được gán với bộ đếm có chức năng đảm bảo quy trình sử dụng thanh ghi đó trong một chu kỳ đường ống. Độ dài của thanh ghi vector là cố định, ví dụ với hệ thống siêu máy tính Cray Series là 64 thanh ghi 64bit. Còn có loại siêu máy tính theo kiến trúc bộ nhớ-đến-bộ nhớ mà ở đó, thay vì tập thanh ghi vector là đơn vị chuỗi vector. Các toán hạng vector lấy trực tiếp từ bộ nhớ chính và kết quả được ghi trực tiếp vào bộ nhớ chính như các siêu từ, có thể có độ dài đến 512 bit như ở siêu máy tính Cyber 205. Hình I.15 cho thấy rõ mô hình cấu trúc và hoạt động của một siêu máy tính SIMD với một dòng lệnh và nhiều dòng dữ liệu. Các mô hình máy tính truy xuất song song ngẫu nhiên (PRAM – Parallel Random-Access Machine) Độc giả có thể tìm hiểu kỹ hơn về các loại máy tính truy xuất ngẫu nhiên (RAM – Ramdom-Access Machine), máy tính truy xuất song song ngẫu nhiên (PRAM – Parallel Ramdom-Access Machine), và các dạng khác nhau của máy tính PRAM tại [ . Kai Hwang].
  23. 23 Nguyễn Trung Đồng Tel. 0983 410 866 Siêu máy tính SIMD Scalar Processor Các đường ống Các Hình I.14. Kiến trúc siêu máy tính vector chứcđường năng ống có chứScalarchướng năng có hướng Scalar Instructions Đơn vị điều Vector Processor khiển có Đơn vị điều Vector Instructions Đơn vị hướng khiểnđiều khiểnvector vector Control Đường ống chức Bộ nhớ chính Vector Data năng vector Scalar Data TậpTập thanh Tha ghi nh vector Bộ Ghi Đường ống chức năng vector nhớ Máy tính phụ chủ I/O User Mô hình PRAM với bộ nhớ chia sẻ được thể hiện ở Hình I.16. Tất cả n bộ xử lý hoạt động theo phương thức các bước tìm kiếm khi truy xuất bộ nhớ trong quá trình thực thi chương trình. Chúng có thể truy xuất một vị trí nhớ bất kỳ tại cùng một thời điểm.
  24. 24 Hệ Vi xử lý tiên tiến Đơn vị điều khiển PE 0 PE 1 PE 2 PE N-1 Proc0 Proc1 Proc2 ProcN-1 Mem0 Mem1 Mem2 MemN-1 Mạng kết nối Hình I.15. Mô hình hoạt động của siêu máy tính SIMD P 1 P2 Bộ nhớ chia sẻ chung Đồng bộ Pn Hình I.16. Mô hình máy tính PRAM
  25. 25 Nguyễn Trung Đồng Tel. 0983 410 866 Một hệ thống PRAM n bộ xử lý có bộ nhớ được địa chỉ hóa một cách toàn cục. Bộ nhớ chia sẻ có thể phân bổ cho các bộ xử lý hoặc tập trung. Tất cả n bộ xử lý (cũng còn gọi là n phần tử xử lý) hoạt động ghi đọc theo phương thức đồng bộ. Với bộ nhớ chia sẻ, hệ thống luôn phải xác định có thao tác đọc ghi nào xẩy ra đồng thời hay không. Có 4 tùy chọn Ghi/đọc: Exclusive Read (ER – Đọc riêng) Cho phép nhiều nhất là bộ xử lý đọc bất kỳ ô nhớ nào trong 1 chu kỳ. Exclusive Write (EW – Ghi riêng) Cho phép nhiều nhất là bộ xử lý ghi vào bất kỳ ô nhớ nào trong 1 chu kỳ Concurrent Read (CR – Đọc đồng thời) Cho phép nhiều bộ xử lý đồng thời đọc dữ liệu tại một ô nhớ trong cùng 1 chu kỳ Concurrent Write (CW – Ghi đồng thời) Cho phép ghi đuổi vào một ô nhớ. Để tránh rối loạn, cần có 1 chiến lược giải quyết tranh chấp. Mô hình VLSI hoàn chỉnh Các mô hình lý thuyết của máy tính song song thường sử dụng theo đề xuất của thuật giải và đề xuất phát triển của chíp hoặc mạch tích hợp cực lớn. Thông thường những mô hình này sử dụng các giải thuật song song để thiết kế hệ thống mà không quan tâm đến cấu trúc vật lý cụ thể của thiết bị. Mô hình được ứng dụng để đảm bảo việc thực hiện ý tưởng một máy tính xử lý song song nhờ sự hoàn chỉnh của các mạch tích hợp cực lớn và thời gian thực hiện chứ
  26. 26 Hệ Vi xử lý tiên tiến không quan tâm đến việc chíp được tạo ra như thế nào. Dung lượng nhớ và thời gian truy cập phụ thuộc vào yêu cầu của giải thuật. Thời gian truy cập phụ thuộc vào độ phức tạp của vấn đề cần xử lý. Máy tính xử lý song song hiện thực hóa được nhờ sử dụng các chip VLSI tạo nên các phần tử chính như mảng các bộ xử lý, mảng bộ nhớ và các mạng chuyển mạch. Công nghệ cao trong nền công nghiệp vi điện tử cho phép thiết kế các máy tính song song nhờ: Có thêm nhiều không gian trống để tăng thêm các khối chức năng như MMU, FPU, điều khiển Vào/Ra, và dung lượng cache trong chip. Tăng số lượng thanh ghi trong tệp thanh ghi, tạo khả năng thực hiện được nhiều loại chương trình với thời gian truy xuất bộ nhớ tối thiểu. Sử dụng tiến bộ vượt bậc của công nghệ Vi điện tử. Main Register File Memory Loadl FP store Add Integer Branch Unit Unit ALU Unit Load/store FP Add FP multiply Branch Integer ALU Cú pháp một lệnh của hệ thống VLIW Hình I.17. Mô hình máy tính VLIW và cú pháp lệnh VLIW
  27. 27 Nguyễn Trung Đồng Tel. 0983 410 866 Chương II. Kỹ thuật đường ống và siêu hướng Chương này khảo sát về kỹ thuật đường ống (Pipelining Technique) và kỹ thuật siêu hướng (Superscalar Technique), về tổ chức đường ống lệnh (Instruction Pipeline), đường ống số học (Arithmetic Pipeline) và đường ống truy xuất bộ nhớ (Memory-access Pipeline). II.1. Đa xử lý đường ống tuyến tính Bộ xử lý đường ống tuyến tính (linear pipeline processor) là sự ghép nối các tầng xử lý (processing stage) liên kết tuyến tính để thực hiện một chức năng cố định trên chuỗi dữ liệu từ khởi đầu đến kết thúc. Trong các máy tính hiện đại, đường ống tuyến tính được ứng dụng vào các chức năng thực hiện lệnh, tính toán số học và thao tác truy xuất bộ nhớ. Giả thiết rằng xử lý đường ống tuyến tính có k tầng xử lý. Dữ liệu từ ngoài được nạp vào đường ống tại tầng thứ nhất S1. Kết quả xử lý thu được phải trải qua các tầng Si, đến tầng Si+1 với i = 1, 2, , k-1. Kết quả cuối cùng thu được là lối ra của tầng cuối cùng Sk. Dựa vào phương thức điều khiển dòng dữ liệu trong đường ống có thể chia đường ống tuyến tính ra 2 loại: dị bộ (asynchronous) và đồng bộ (synchronous). a) Mô hình máy tính đường ống dị bộ Trong loại mô hình này, dòng dữ liệu giữa các tầng liên tiếp trong một đường ống dị bộ được tiến hành thông qua phương thức bắt tay (handshaking protocol), nghĩa là khi nào tầng Si sẵn sàng truyền, Si gửi tín hiệu sẵn sàng (ready)
  28. 28 Hệ Vi xử lý tiên tiến cho tầng Si+1. Sau khi tầng Si+1 nhận xong dữ liệu từ Si thì Si+1 gửi tín hiệu nhận biết (acknowledge) cho tầng Si. Đường ống dị bộ rất thích hợp cho thiết kế các kênh truyền thông trong các hệ thống đa máy tính liên kết bằng thông điệp. Nó có thể có vận tốc truyền khác nhau. Output Input Data Ready R R S1 Ack S2 Sk eady eady A ck Hình II.1. Mô hình đường ống dị bộ Các đường ống động (dynamic pipeline) cho phép tái cấu hình kết nối để thực hiện nhiều chức năng khác nhau tại những thời điểm khác nhau. Các đường ống tuyến tính truyền thống đều là những đường ống tĩnh (static pipeline) và vì vậy chúng chỉ thực hiện một chức năng cố định. Đường ống động cho phép dùng cách liên kết ngược hoặc xuôi cùng các chuỗi liên kết. Cũng vì lý do này, có tác giả cho rằng các đường ống loại này là đường ống phi tuyến. b) Mô hình máy tính đường ống đồng bộ Latch S S S 1 2 k Clock τ d Thời gian (Xung nhịp) τm Hình II. 2. Mô hình hệ thống máy tính đường ống đồng bộ
  29. 29 Nguyễn Trung Đồng Tel. 0983 410 866 t 1 2 3 4 S i Tầng thứ i S1 × L Chốt S2 × τ Chu kỳ xung nhịp S3 × τm Trễ tầng cực đại S4 × d Trễ chốt c)Bảng dự phòng đường ống đồng bộ 4 tầng Output X Input S1 S2 S3 Output Y Hình II.2. Một đường ống 3 tầng 1 2 3 4 5 6 7 8 1 2 3 4 5 6 S1 X X X S1 Y Y S2 X X S2 Y S3 X X X S3 Y Y Y Bảng dự phòng Bảng dự phòng cho chức năng X cho chức năng Y Có thể dễ dàng nhận ra phương thức hoạt động đồng bộ trên hình II.2. Các mạch chốt Flip-Flop chủ tớ điều khiển
  30. 30 Hệ Vi xử lý tiên tiến bởi xung nhịp được sử dụng làm giao tiếp giữa các tầng. Khi xung nhịp xuất hiện các mạch chốt đồng thời truyền dữ liệu đã được xử lý cho tầng tiếp theo. Các tầng là những mạch logic tổ hợp và cần phải có độ trễ xấp xỉ nhau. Độ trễ này quyết định tốc độ xử lý của đường ống. Việc sử dụng các tầng nối tiếp nhau trong hệ thống đường ống tuyến tính được xác định bởi bảng dự phòng (Reservation Table). Bảng dự phòng là biểu đồ thời gian- không gian (space-time diagram) chỉ rõ mối quan hệ được sử dụng trong tầng. Với hệ thống đường ống k tầng, cẩn phải có k xung nhịp để 1 thao tác đường ống được hoàn thiện. Mỗi thao tác đường ống được khởi động bởi 1 xung nhịp để bắt đầu. Cho đến kết thúc thao tác trên đường ống, kết quả được chuyển cho đường ống khác xử lý tiếp. Sự “xuyên suốt” (throughput) một đường ống chỉ được coi là hoàn thiện khi các thao tác đường ống độc lập với nhau. Mức đường ống tinh nhất được gọi là mức vi đường ống (Micropipelining) với cách phân chia tầng theo mức cổng logic. Trong thực tế, mỗi tầng chỉ có từ 2 ≤ k ≤ 15 cổng. Trong thực tế, ở các máy tính hiện nay, rất ít các đường ống vượt quá 10 mức cổng logic. Mức tiếp theo của đường ống là mức đường ống Macro (Macropipelining). Lựa chọn tối ưu cho số tầng ở mức đường ống này phụ thuộc vào giá thành trên 1 sản phẩm hoàn chỉnh. Để đánh giá chỉ tiêu này thì Larson đã đưa ra biểu thức tính PCR (Performance/Cost Ratio). [ Xem ] Bảng dự phòng của đường ống tuyến tính tĩnh chỉ ra dòng chuyển của chuỗi dữ liệu trong đường ống. Bảng này đặc biệt đáng khảo sát trong hệ thống đường ống động, vì
  31. 31 Nguyễn Trung Đồng Tel. 0983 410 866 với một loại đường ống, có thể tạo ra nhiều bảng khác nhau nhằm thực hiện những chức năng xử lý khác nhau. Mỗi bảng chỉ ra một dòng chuyển theo thời gian và không gian (time-space flow) của chuỗi dữ liệu trong đường ống. Số lượng cột chỉ ra thời gian xử lý (evalution time) của chức năng cần thiết. Trong ví dụ đã nêu trên, chức năng X cần 8 xung nhịp, trong khi chức năng Y chỉ cần 6 xung nhịp. Bảng thiết lập đường ống phụ thược vào từng nhiệm vụ cần xử lý. Thiết lập cho đường ống tĩnh luôn sử dụng duy nhất bảng dự phòng cố định. Đường ống động có thể cho phép sử dụng những thiết lập khác nhau để đáp ứng những bảng dự phòng khác nhau. Những đánh dấu X trong bảng dự phòng ứng với thời điểm (chu kỳ) mà tầng được sử dụng. II.2. Cấu trúc và hoạt động của hệ thống đường ống siêu hướng Trong các bộ xử lý siêu hướng, đơn vị giải mã và đơn vị thực hiện lệnh được mở rộng để tạo ra m thao tác đường ống đồng thời. Một số tầng trong đường ống có thể được chia sẻ bởi các đường ống khác. Trên hình II.3 là cấu trúc đa đường ống với nguồn tài nguyên chia sẻ. Hai lệnh đồng thời có thể được đưa tới trong 1 chu kỳ, với điều kiện là không tranh chấp tài nguyên và không có hiện tượng dữ liệu phụ thuộc lẫn hau. Mỗi đường ống đều có 4 tầng gồm nhận lệnh, giải mã, thực hiện và ghi kết quả. Cả hai lệnh đều được lấy từ ICACHE. Giả thiết rằng mỗi tầng đều chỉ cần một chu kỳ xung nhịp, ngoại trừ tầng thực hiện có thể cần số lượng xung nhịp khác nhau. Có 4 đơn vị chức năng trong tầng này gồm bộ nhân, bộ cộng, bộ logic và bộ nạp và đều có thể sử dụng trong tầng thực hiện. Bộ nhân có đường ống 3 tầng, bộ cộng là 2 tầng , còn lại là chỉ có một tầng. Hai đơn vị nhớ S1 Hình II.3. Bộ xử lý siêu hướng 2 đường ống với 4 đơn vị chức
  32. 32 Hệ Vi xử lý tiên tiến Execute Stage Write Back Stage Multiplier Fetch Stage Decode Stage m1 m2 m3 Adder t d S1 1 1 a1 a2 From Logic ICACHE Logic t2 d2 e1 S2 Load t d 3 3 e2 Lookahead Window Hình II.3. Hệ thống siêu hướng 2 đường ống với 4 đơn vị chức năng tại các tầng thực thi vá cửa sổ giám sát tạo thứ tự xuất kết quả và S2 có thể được sử dụng linh hoạt bởi 2 đường ống, phụ thuộc vào khả năng của chúng theo các chu kỳ riêng biệt. Đáng chú ý ở đâu là đơn vị cửa sổ giám sát (lookahed window) với đơn vị nhận lệnh và giải mã lệnh riêng. Cửa sổ này rất cần thiết cho việc giám sát thực hiện các lệnh trong trường hợp chuỗi lệnh xuất hiện, nhằm đảm bảo việc thực hiện chúng trong các đường ống được hiệu suất hơn. Rất khó để phân chia đồng thời các đường ống trong hệ thống đa đường ống, nhất là khi các lệnh cùng được lấy từ cùng một nguồn. Có thể hiểu rõ hơn khái niệm này qua hình II.4 a, b và c.
  33. 33 Nguyễn Trung Đồng Tel. 0983 410 866 Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Time dimension Instr Reg Data Reg cache file ALU cache file Instr1 Reg Reg Instr Data cache file ALU cache file Instr2 Reg Reg Instr Data cache file ALU cache file Instr3 Reg Reg Instr Data cache file ALU cache file Instr4 Reg Reg Instr Data cache file ALU cache file Task Instr5 dimension
  34. 34 Hệ Vi xử lý tiên tiến 1 2 3 4 5 6 7 8 9 Time (Clock Cycle) Pipe1, I1 f1 d1 e2 s1 Pipe2, I2 f2 d2 a1 a2 s2 I3 f1 d1 a1 a2 s1 Instructions I4 f2 d2 m1 m2 m3 s2 I5 f1 d1 e1 s1 I6 f2 d2 m 1 m2 m3 s2 Hình II.4a. Biểu đồ thời gian trong trường hợp lệnh xuất theo thứ tự và được thực hiện hoàn thành theo thứ tự trong 9 chu kỳ 1 2 3 4 5 6 7 8 9 Pipe1, I1 f1 d1 e2 s1 Pipe2, I2 f2 d2 a1 a2 s2 I3 f1 d1 a1 a2 s1 I4 f2 d2 m1 m2 m3 s2 I5 f1 d1 e1 s1 I6 f2 d2 m1 m2 m3 s2 4 5 6 7 8 9 Pipe 1 I1 I5 I3 Pipe2 I2 I4 I6 Hình II.4b. Biểu đồ thời gian trong trường hợp lệnh xuất hiện theo thứ tự và được thực hiện hoàn thành không theo thứ tự trong 9 chu kỳ và thứ tự hoàn thiện thực thi lệnh
  35. 35 Nguyễn Trung Đồng Tel. 0983 410 866 1 2 3 4 5 6 7 Pipe1, I3 f1 d1 a1 a2 s1 Pipe2, I4 f2 d2 m1 m2 m3 s2 I5 f3 d3 e1 s2 (Pipe1) Lookahead Window Pipe1 I6 f1 d1 m1 m2 m3 s2 Pipe2 I1 f2 d2 e2 s2 Pipe2 I2 f1 d1 a1 a2 s1 1 2 3 4 5 6 7 Thứ tự xuất Pipe1 I3 I6 Pipe1 I5 I3 I 2 hiện lệnh Pipe2 I4 I1 I2 Pipe2 I 1 I4 I6 Thứ tự hoàn thành thực hiện lệnh I5 Lookahead Hình II.4c. Biểu đồ thời gian trong trường hợp lệnh xuất hiện không theo thứ tự và được thực hiện hoàn thành không theo thứ tự trong 7 chu kỳ và thứ tự hoàn thiện thực thi lệnh khi sử dụng cửa sổ giám sát Gọi k là thời gian cần thiết để thực hiện m lệnh đồng thời đầu tiên trong m đường ống, N là số lệnh, ta có: Thời gian hực hiện trên máy scalar cơ bản (1 đường ống) là: T(1,1) = k + N-1 (chu kỳ cơ bản) Với trường hợp m đường ống ta có N m T (m,1) k m
  36. 36 Hệ Vi xử lý tiên tiến Tăng tốc lý tưởng của máy siêu hướng sẽ là T(1,1) N k 1 m(N k 1) S(m,1) N T(m,1) k 1 N m(k 1) m Thấy rằng nếu N→∞, giới hạn tăng tốc S(m,1) →m. Với hệ thống siêu đường ống bậc n với k tầng, thời gian tối tiểu để thực hiện N lệnh trên đường ống là: 1 T (1,n) k (N 1) (chu kỳ cơ bản) n Và khả năng tăng tốc của máy siêu đường ống sẽ là T(1,1) k N 1 n(k N 1) S(1,n) N 1 T(1,n) k nk N 1 n Và với N→∞ thì S(1,n) →n. W Hình II.5a. Thực hiện đường ống bậc n = 3 Xung nhịp F: Fetch D: Decode E: Execution WB: Write Back Hình II.5a và II.5b. mô tả việc thực hiện các lệnh trong hệ thống siêu đường ống bậc n = 3 và hệ thống hỗn hợp siêu đường ống-siêu hướng bậc (m,n) =(3,3).
  37. 37 Nguyễn Trung Đồng Tel. 0983 410 866 W Hình II.5b. Thực hiện lệnh trong hệ thống siêu đường ống-siêu hướng với m = n = 3 Xung nhịp Dễ dàng thấy rằng hệ thống siêu đường ống-siêu hướng thực hiện m lệnh trong 1 chu kỳ cơ bản, và với tổ chức siêu hướng, tốc độ được tăng lên đáng kể. Tổ chức của máy DEC Alpha có m = 2 và n = 4 cho các thao tác số nguyên, số dấu phẩy động, ghi/đọc và rẽ nhánh. Với hệ thống siêu đường ống-siêu hướng bậc (m,n) với k tầng, thời gian tối tiểu để thực hiện N lệnh là: 1 T(m,n) k (N m) (chu kỳ cơ bản) mn Và khả năng tăng tốc của máy siêu đường ống-siêu T(1,1) k N 1 mn(k N 1) hướng sẽ là S(1,n) N m T(m,n) k mnk N m mn Và với N→∞ thì S(m,n) →mn. II.3. Hệ thống BUS và bộ nhớ Các bộ Vi xử lý, bộ nhớ và các thiết bị ngoại vi được kết nối cứng nhờ một hệ thống BUS. Yêu cầu khe khắt đối với BUS hệ thống là đảm bảo truyền thông giữa các thành phần trong hệ thống không bị nhiễu và tín hiệu không bị suy giảm. Phương thức định thời phải phù hợp với mọi yêu cầu
  38. 38 Hệ Vi xử lý tiên tiến trao đổi thông tin. Nguyên tắc hoạt động phải đảm bảo việc chuyển giao thông tin dữ liệu đúng yêu cầu trên BUS. Các đường dây dẫn tín hiệu trên bo mạch thường được gộp thành các kênh truyền dẫn theo chức năng. CPU Board Memory Board Điều khiển BUS Processor Mảng các Tạo xung và cache Các mô bộ nhớ nhịp, tạo đun xử chuỗi t/h lý, các điều khiển, Các mô mô đun Các mô nhớ và nguồn đun chức đun chức nuôi năng thiết bị năng Vào/Ra khác Logic Logic Logic giao diện giao diện giao diện Slot 1 Slot k-1 Slot k Data Transfer BUS (DTB) Dữ liệu, Địa chỉ và các tín hiệu điều khiển DTB Arbitration BUS (Phân xử sử dụng BUS) BUS các tín hiệu ngắt và tín hiệu đồng bộ BUS các tiện ích khác Hệ thống các đường dây truyền dẫn các tín hiệu trên bo mạch Hình II.6. Mô hình máy tính đa xử lý
  39. 39 Nguyễn Trung Đồng Tel. 0983 410 866 Data Transfer BUS (DTB) được tạo bởi các đường dây truyền dẫn dữ liệu, địa chỉ và các tín hiệu điều khiển. Các đường dây địa chỉ truyền dẫn tín hiệu đại diện cho địa chỉ của dữ liệu và các thiết bị và số lượng đường dây tỷ lệ thuận với không gian địa chỉ. Số lượng đường dây tín hiệu dữ liệu tỷ lệ thuận với độ dài từ nhớ. BUS arbitration and control (Điều khiển và trọng tài BUS): Quá trình gán điều khiển DTB cho các yêu cầu sử dụng BUS được gọi là trọng tài BUS. Một số đường dây được giành cho quá trình phân xử BUS cùng với một số yêu cầu sử dụng BUS. Bên yêu cầu sử dụng được gọi là chủ (master), đầu nhận cuối được gọi là tớ (slave). Các đường dây yêu cầu ngắt dùng để thu hận các ngắt và thông thường được gán các mức ưu tiên. Các mô đun chức năng bao gồm các mạch điện tử được lắp ráp trên các vỉ chức năng. Một số mô đun cụ thể là: Trọng tài (Arbiter) là mô đun nhận các yêu cầu sử dụng BUS, phân xử và gán điều khiển DTB cho mô đun có yêu cầu. Định thời BUS (BUS timer) xác định thời gian cần thiết cho một thao tác truyền thông tin trên DTB và kết thúc chu kỳ DTB nếu thao tác đó kéo dài quá mức thời gian cho phép. Mô đun ngắt (Interrupter Modul) nhận các yêu cầu ngắt và cung cấp thông tin về trạng thái/số hiệu ngắt khi interrupt handler cần. Giám sát định vị (Location Monitor) là mô đun chức năng giám sát việc truyền dữ liệu trên DTB. Giám
  40. 40 Hệ Vi xử lý tiên tiến sát nguồn (Power Monitor) theo dõi trạng thái ổn định của nguồn và các tín hiệu. Khối cấp xung nhịp hệ thống (System Clock Driver) là mô đun cấp tín hiệu xung nhịp định thời. Logic giao tiếp trên bo mạch (Board Interface Logic) là thành phần chức năng phối ghép công nghệ, phối ghép logic giữa bo mạch với các vỉ chức năng. BUS Master Slave 1. Gửi yêu cầu sử dụng BUS 2. BUS được định vị 3. Đưa địa chỉ/dữ liệu lên BUS 4. Chọn Slave khi các tín hiệu đã ổn định 5. Truyền các tín hiệu dữ liệu 6. Nhận dữ liệu đã ổn định Thời gian Thời 7. Thông báo đã nhận dữ liệu 8. Nhận thông báo đã nhận dữ liệu, rút dữ liệu khỏi BUS 9. Ghi nhận dữ liệu đã rút ra khỏi BUS 10. Gửi tín hiệu hoàn thành chuyển dữ liệu và ưu tiên BUS 11. Gửi yêu cầu sử dụng BUS mới Hình II.7. Định thời cơ bản cho thao tác truyền thông tin trên BUS giữa Chủ (Master) và Tớ (Slave) Có 2 giao thức định thời cho thao tác chuyển giao dữ liệu giữa chủ và tớ, định thời đồng bộ và định thời dị bộ.
  41. 41 Nguyễn Trung Đồng Tel. 0983 410 866 Hình II.7. chỉ ra chuỗi định thời cơ bản khi thông tin được truyền từ nguồn tới đích trên BUS. Dâydữ liệu Dữ liệu Dữ liệu Dữ liệu Chủ DL sẵn sàng Tớ NhậnDL Chu kỳ 1 Chu kỳ 2 Chu kỳ 3 Hình II.8. Định thời đồng bộ xung nhịp cố định Dây dữ Dữ liệu Dữ liệu Dữ liệu liệu Chủ DL sẵn sàng Tớ Nhận DL Chu kỳ 1 Chu kỳ 2 Chu kỳ 3 Hình II.8. Định thời dị bộ Có hai hình thức trọng tài chia sẻ BUS, trọng tài trung tâm và trọng tài phân tán. Trọng tài trung tâm sử dụng phương pháp liên kết các chủ theo tầng (daisy-chained). Mỗi chủ có quyền đưa ra yêu cầu sử dụng BUS, mọi yêu cầu được chia sẻ nhờ một đường dây yêu cầu BUS, tín hiệu đường dây này kích hoạt mức cấp BUS và mức trạng thái BUS bận (Hình II.9). Mức ưu tiên đồng đều trong liên kết này theo thứ tự từ trái sang phải. Chỉ khi nào chủ bên trái không yêu cầu thì chủ bên phải mới được cấp BUS.
  42. 42 Hệ Vi xử lý tiên tiến BUS Master 1 Master 2 Master n Grant Trọng tài BUS trung tâm BUS Request BUS busy Data Transfer BUS BUS Request Yêu cầu BUS BUS Cấp BUS Grant BUS BUS bận busy Hình II.9. Trọng tài BUS theo kênh Daisy trung tâm với phương thức chia sẻ yêu cầu với mức ưu tiên đồng đều Ở phương thức sử dụng trọng tài phân tán, không sử dụng liên kết các chủ theo tầng, các trung tâm được gán mức ưu tiên. Mỗi đơn vị chủ được gán thêm một trọng tài BUS có cùng số hiệu với chủ. Số hiệu này được sử dụng cho việc phân xử quyền được giao BUS, chủ có số hiệu lớn hơn sẽ được giao BUS khi có 2 yêu cầu đồng thời xuất hiện. Các mode truyền thông tin bao gồm 3 thể loại: Chỉ truyền địa chỉ (Address-only transfer) chỉ truyền địa chỉ mà không có dữ liệu đi theo. Truyền dữ liệu đi kèm (Compelled data transfer) bao gồm truyền địa chỉ sau đó là khối hoặc nhiều dữ liệu được truyền kèm theo đến các địa chỉ liên tiếp nhau. Truyền gói dữ liệu (packet data transfer) là truyền địa chỉ và một khối dữ liệu với độ dài cố định từ tập các địa chỉ liên tiếp nhau.
  43. 43 Nguyễn Trung Đồng Tel. 0983 410 866 Master 1 Master 2 Master N BR1 BG 1 BR2 Trọng tài BUS BG2 trung tâm BRN BGN BUS Busy Data Transfer BUS DTB BRi : Yêu cầu sử dụng BUS từ chủ thứ i, BGi : Cấp BUS cho chủ thứ i Hình II.10a. Mô hình với các yêu cầu độc lập và trọng tài BUS trung tâm Master 1 Master 2 Master N BG AN BG AN BG AN Arbiter 1 Arbiter 2 Arbiter N BB BB BB N N N Data Transfer BUS DTB BB: Cấp BUS BB: BUS bận AN: Số hiệu trọng tài Hình II.10b.Mô hình sử dụng các trọng tài BUS phân tán Truyền dữ liệu và quản lý ngắt là hai lớp chức năng được thực hiện trên BUS. Các sự kiện xẩy ra trên BUS bao gồm yêu cầu (request) và tiếp theo là đáp ứng (response). Các thao tác kết nối là gửi yêu cầu của chủ và tiếp nhận đáp ứng trên BUS. Các thao tác phân phối sẽ chia các yêu cầu và đáp ứng cho từng BUS riêng.
  44. 44 Hệ Vi xử lý tiên tiến Cơ chế ngắt (Interrupt Mechanism). Ngắt là yêu cầu từ các thiết bị Vào/Ra đối với bộ xử lý. BUS ngắt ưu tiên là nơi tiếp nhận các yêu cầu ngắt. Thiết bị có yêu cầu ngắt phải cung cấp trạng thái và các thông tin nhận dạng. Các mô đun chức năng có thể được sử dụng thực hiện các công việc phục vụ ngắt. Ngắt được quản lý theo các mức ưu tiên. Ngắt cũng có thể được quản lý theo chuyển thông điệp sử dụng BUS dữ liệu trên cơ sở chia sẻ theo thời gian. Cách sử dụng BUS dữ liệu chia sẻ theo thời gian để quản lý và thực hiện yêu cầu ngắt được gọi là ngắt ảo (virtual interrupt). Việc sử dụng các đường dây riêng cho các yêu cầu ngắt trên BUS được mở rộng nhờ các chu kỳ quản lý ngắt theo thông điệp. II.4. Tổ chức bộ nhớ cache Bộ nhớ cache được tổ chức theo 3 phương pháp sau: Cache với địa chỉ vật lý (Physical Address cache) Cache với địa chỉ ảo (Virtual Address Cache) Tổ chức cache liên kết bổ sung đầy đủ, liên kết theo tập (set-associative), và ánh xạ nhớ (mapping). II.4.1. Các phương thức đánh địa chỉ cache Nhiều hệ thống đa xử lý sử dụng cache riêng liên kết trực tiếp với bộ Vi xử lý (Hình II.11). Cache được đánh địa chỉ sử dụng địa chỉ vật lý hoặc địa chỉ ảo. Processors P P P Cache C C C Main Interconnection (BUS, crosbar, MIN) Memory
  45. 45 Nguyễn Trung Đồng Tel. 0983 410 866 Hình II. 11. Phân cấp bộ nhớ trong hệ thống đa xử lý với bộ nhớ chia sẻ a) Cache địa chỉ vật lý (Physical Address Cache) Khi cache được truy xuất bằng địa chỉ vật lý thì cache được gọi là cache địa chỉ vật lý. PA PA VA VA: Địa chỉ ảo MMU D or I Main CPU Cache D or I Memory PA: Địa chỉ vật lý D or I I : Lệnh D: Dữ liệu II.11.a) Cache đơn truy xuất bằng địa chỉ vật lý Hình II.11a là mô hình cache đơn được sử dụng trong máy tính VAX 8600 và Intel i486. Cache được liên kết với CPU bằng địa chỉ vật lý. PA PA PA Cache dữ Cache dữ D D MMU liệu mức 1 liệu mức 2 Bộ nhớ chính
  46. 46 Hệ Vi xử lý tiên tiến VA D PA P CPU I Cache lệnh AI II.11.b) Cache gộp truy xuất bằng địa chỉ vật lý Hình II.11. Mô hình cache truy xuất bằng địa chỉ vật lý Truy xuất Cache được thực hiện sau khi địa chỉ được chuyển từ TLB hoặc từ MMU. Địa chỉ vật lý tạo bởi MMU có thể được lưu trong các thẻ nhằm phục vụ cho việc nạp lại nhưng không được sử dụng trong các thao tác tìm kiếm. Cache hit xuất hiện khi dữ liệu hoặc địa chỉ được tìm thấy trong cache, nếu không, gọi là cache miss. Khi không tìm thấy cache được nạp lại thông tin (dữ liệu hoặc lệnh) từ bộ nhớ chính. Vì việc nạp thông tin vào cache theo từng khối, dữ liệu không mong muốn cũng có thể được nạp vào. Sự định vị theo tham chiếu sẽ giúp tìm được các dữ liệu cần thiết cho các lệnh tiếp theo. Dữ liệu được ghi trực tiếp vào bộ nhớ chính thông qua phương thức ghi xuyên cache (Write-throught - WT) hoặc bị trễ cho đến khikhối thông tin được thay thế nhớ sử dụng ghi lại cache (Write-back – WB). Ghi xuyên cache đòi hỏi nhiều chu kỳ truy xuất bộ nhớ chính hơn, trong khi ghi lại cache có thể thực hiện mà không cần sự chờ đợi chu kỳ bộ nhớ. Ưu điểm chính của phương thức này là không cần đến việc tạo cache đồng nhất, không có sự trùng lặp và ít lỗi cache trong hệ điều hành. PA VA: Địa chỉ ảo MMU Bộ VA PA: Địa chỉ vật lý nhớ CPU I : Lệnh chính D: Dữ liệu I or D I or D: Lệnh hoặc I or D Cache Dữ liệu Cache đơn truy xuất bằng địa chỉ ảo 32 64 I-cache
  47. 47 Nguyễn Trung Đồng Tel. 0983 410 866 b) Cache địa chỉ ảo (Virtual Address Cache) Khi bộ nhớ cache được đánh chỉ số hay được truy xuất bằng địa chỉ ảo, ta gọi đó là cache địa chỉ ảo. Trong mô hình này thì sự chuyển giao thông tin của cache và MMU được thực hiện song song. Địa chỉ vật lý tạo bởi MMU có thể được lưu giữ để sử dụng cho việc ghi lại (write-back) nhưng không được sử dụng cho tìm kiếm. Cache địa chỉ ảo cho phép truy xuất nhanh hơn nhờ sự chồng gối với MMU. Về các vấn đề trùng lặp (Aliasing Problem) Vấn đề chính luôn đi cùng địa chỉ ảo là sự trùng lặp, khi dữ liệu có địa chỉ logic khác nhau lại có cùng số hiệu và đích trong cache. Vấn đề trùng lặp này có thể dẫn đến hai hay nhiều quá trình cùng truy xuất vào một vị trí vật lý trong cache. Cách xử lý sự trùng lặp này là giải phóng (flush) thông tin trong cache khi xuất hiện sự trùng lặp.
  48. 48 Hệ Vi xử lý tiên tiến Việc giải phóng cache nhiều làm giảm hiệu quả của cache và tỷ lệ cache hit thấp và thường được thực hiện theo trang, theo đoạn hay theo mức ngữ cảnh. II.4.2. Cache liên hợp và cache ánh xạ trực tiếp Việc chuyển thông tin từ bộ nhớ chính sang bộ nhớ cache được thực hiện theo các khối đơn vị cache hoặc theo kênh cache. Tính hiệu quả phụ thuộc vào phương thức truy xuất cache, tổ chức bộ nhớ cache và chiến lược quản lý cache. Các khối trong cache được gọi là khung khối (block frames) để phân biệt với các khối (block) trong bộ nhớ chính. Các khung khối được ký hiệu là B i với i = 0,1,2, ,m, còn các khối được ký hiệu là Bj với j = 0, 1, 2, ,n. Có nhiều cách ánh xạ (mapping) từ tập Bj sang tập Bi Giả sử rằng n >> m, n = 2s và m = 2r, mỗi khối hay khung khối có b từ, b = 2w, như vậy cache có m.b = 2r+w từ. Bộ nhớ chính có n.b = 2s+w từ và được quản lý nhờ s + w bit địa chỉ. Khi khung khối được chia thành v = 2t tập, sẽ có k = m/v = 2r-t khối trong mỗi tập. Cache ánh xạ trực tiếp: Tổ chức cache theo phương thức này dựa trên việc ánh xạ trực tiếp 2s-r khối nhớ, phân tách bằng cùng một khoảng cách như nhau vào một khung khối trong cache. Việc chuyển khối vào cache sử dụng chức năng dư của giá trị chia cho m (modulo-m): Khối Bj được truyền vào khung khối B :i Bj → B i nếu i = j (modulo m).
  49. 49 Nguyễn Trung Đồng Tel. 0983 410 866 Như vậy, mỗi khung khối B i có thể được nạp từ một khối Bj. Ánh xạ trực tiếp rất cứng nhắc nhưng bù lại tổ chức cache là đơn giản nhất. Địa chỉ ô nhớ s+w Bộ nhớ chính Tag Cache Tag Block Word Data W0 Data W1 B0 Data B0 W2 s-r r w Data W3 s-r s Data W4 w j Data W(4j+1) So sánh w Bj Data Bj W(4j+2) Cache hit Data W(4j+3) Cache mis Khung khối Khối Hình II.13. Tìm kiếm liên hợp đến tất cả mọi khối đich Địa chỉ ô nhớ bao gồm 3 trường: các bit thấp w xác định offset của từ nhớ trong mỗi khối. Các bit cao của thẻ cache s xác định địa chỉ của khối trong bộ nhớ chính khi các bít trái nhất (s-r) xác định thẻ phù hợp. Trường khối r bít được dùng để xác định vị trí khối sau mỗi m byte (modulo- r m) với m = 2 . Khi khối B i được xác định duy nhất với trường này, thẻ liên kết và địa chỉ khối tương ứng trong bộ nhớ chính được so sánh. Cache hit là khi 2 thẻ trùng hợp, nếu không thì xẩy ra cache miss. Ở trường hợp cache hit thì ofset của từ nhớ được dùng để nhận dạng từ dữ liệu trong khối được chỉ đến. Khi xẩy ra cache miss thì nội dung chỉ bởi các bit địa chỉ (s+w) được dùng để truy xuất vào bộ nhớ
  50. 50 Hệ Vi xử lý tiên tiến chính. Các bit s xác định vị trí (địa chỉ đầu) của khối, còn các bit w xác định vị trí từ nhớ trong khối. Bộ nhớ chính Tag 4 bit Cache B0 B1 B0 B2 B3 B4 B5 B1 B6 B7 B8 B9 B2 B10 B11 B12 B13 B3 B14 B15 Hình II.14. Khối Bj được ánh xạ vào khung khối Bi nếu j = i (modulo 4) Hình II.14 là một ví dụ minh hoạ phương pháp tổ chức bộ nhớ cache theo ánh xạ trực tiếp với n = 16 được ánh xạ vào m = 4 khung khối trong đó 4 khối nhớ nguồn (từ bộ nhớ chính) được nạp vào 4 khung khối cache. Hệ thống máy tính IBM System/370 Model 158 và VAX/8800 sử dụng phương pháp tổ chức quản lý bộ nhớ cache theo phương thức này. Một ví dụ: Cache 64kB, cần m = 211 = 2048 khung khối và r = 11 bít. Giả thiết bộ nhớ chính có dung lượng 32MB, n = 220 khối và thẻ cache cần s = 20 bít và số bit địa chỉ cần để quản lý theo từ nhớ là s + w = 23 bit, để quản lý theo byte là 25 bit địa chỉ. Với cách tổ chức theo ánh xạ trực tiếp, sẽ có 2s-r = 29 = 512 khối nhớ có thể “ánh xạ” vào một khung khối.
  51. 51 Nguyễn Trung Đồng Tel. 0983 410 866 Ưu điểm chính của phương pháp này là phần cứng rất đơn giản và không cần thêm các phụ kiện và cũng không cần thuật thay thế trang, giá thành sẽ rẻ hơn và tốc độ truy xuất nhanh hơn. Tất nhiên, sự cứng nhắc trong tổ chức cũng sẽ dẫn đến tỷ lệ cache hit thấp hơn. Cache liên kết đầy đủ (Fully Associative Cache) Khác với cache ánh xạ trực tiếp, tổ chức cache theo phương thức liên kết đầy đủ mềm dẻo hơn. Mỗi một khối trong bộ nhớ chính có thể được nạp vào một khung khối bất kỳ trong cache. Nhờ tính mềm dẻo, cần có một thẻ có độ dài s bít cho mỗi khối cache. Với s > r, độ dài thẻ tăng đáng kể. s+w Bộ nhớ chính Memory Address Tag Cache Data W0 Tag Word Data W1 B Data 0 W2 s Data W3 w s Data W4j w Data W(4j+1) s B Data j W(4j+2) Data W(4j+3) So sánh Cache hit Khối Data Data Bm a)Tìm kiếm s Data liên kết Data trên tất cả các khối đích Cache miss Khung khối
  52. 52 Hệ Vi xử lý tiên tiến Cách gọi cache liên kết đầy đủ xuất phát từ việc tìm kiếm đường liên kết m bất kỳ trên thẻ được so sánh với tất cả các thẻ khối trong cache. (Xem hình II.14a). Cách tổ chức này tạo nên sự mềm dẻo trong chiến lược thay thế các khối nhằm tạo tỷ lệ cache hit cao hơn. Hình II.14b cho thấy một ví dụ ánh xạ 4 đường theo phương thức tìm kiếm liên kết đầy đủ. Thẻ cache có 4 bit tạo khả năng một trong 16 khối có thể nạp vào một khung khối. Bộ nhớ chính Tag 4 bit Cache B0 B1 B0 B2 B3 B4 B5 B1 B6 B7 B8 B9 B2 B10 B11 B12 B13 B3 B14 B15 Hình II.14 b) Mỗi khối có thể được “ánh xạ” đến bất kỳ khung khối nào Cache liên kết theo tệp và cache vùng (Set- Associative and Sector Cache) Tổ chức cache theo tệp rất thông dụng và được sử dụng trong máy tính thương mại. Cache ánh xạ theo vùng thường được sử dụng cùng cache liên kết theo tệp.
  53. 53 Nguyễn Trung Đồng Tel. 0983 410 866 +) Cache liên kết theo tệp (Set-associative cache) là cách tổ chức thoả hiệp giữa ánh xạ trực tiếp và liên kết đầy đủ. Tổ chức theo phương thức này làm giảm giá thành đáng kể. Trong cache liên kết thứ k có m khung khối cache được chia thành v = m/k tệp, với k khung khối trong mỗi tệp. Mỗi tệp được nhận dạng nhờ số hiệu tệp gồm d bít, 2d = v. Thẻ khối cache bây giờ chỉ cần s – d bít. Trong thực tế, độ lớn của tệp k hay còn gọi là tính liên hợp thường được chọn bằng 2, 4, 8, 16 hoặc 64 phụ thuộc vào độ lớn của khối w, độ lớn dung lượng cache m và giá thành sản phẩm hoàn thiện. Ánh xạ liên kết đầy đủ có thể xem như trường hợp với v = 1, hoặc là trường hợp tính liên hợp với dung lượng cache là m. Khi tìm kiểm trong trường hợp liên kết đường k, thẻ cache được so sánh với với k thẻ trong tệp (Hình II. 15). Có thể hiểu phương thức tổ chức này trên Hình II.15b là ví dụ ánh xạ với n = 16 khối nhớ từ bộ nhớ chính vào cache liên kết 2 đường (k = 2) và số tệp là v = 4 qua m = 8 khung khối. Địa chỉ từ nhớ s+w Thẻ cache Tag Set Word B0 B0 B1 B1 set 0 B2 d w B(k-1) B3 s-d w B(ik) set i B(ik+1) B(ik+1) So sánh B(ik+k-1) Cache hit cache Bộ nhớ chính Cache miss Hình II.15. a) Tìm liên kết đường thứ k trong các tệp có k khối cache
  54. 54 Hệ Vi xử lý tiên tiến Thẻ 2 bít cache Bộ nhớ chính B0 B0 set 0 B1 B1 B2 B3 B4 set 1 B2 B5 B3 B6 B7 B8 set 2 B4 B9 B10 B5 B11 B12 B13 set 3 B6 B14 B7 B15 Hình II.15.b) Ánh xạ khối cache vào liên kết 2 đường và 4 tệp Với hệ thống i860 của Intel (Hình II.12b) D-cache và I- cache là liên kết 2 đường (k = 2) với 128 tệp trong D-cache, 64 tệp trong I-cache với 256 và 128 khung khối. +) Cache ánh xạ theo vùng (Sector mapping cache) được tổng hợp từ những phương thức trên. Ý tưởng chủ yếu là phân vùng cache và bộ nhớ chính thành từng phân vùng cố định (sectors), sau đó sử dụng phương thức liên kết đầy đủ. Nghĩa là mỗi phân vùng (sector) có thể được nạp vào bất kỳ một khung phân vùng (sector frame) nào có thể. Yêu cầu truy xuất bộ nhớ được đưa đến các khối, chứ không được chuyển đến các vùng. Có thể lọc ra yêu cầu này bằng cách so sánh thẻ vùng trong địa chỉ ô nhớ với tất cả các thẻ vùng sử dụng cách tìm kiếm liên kết đầy đủ. Khi khung vùng phù hợp, (cache hit) vùng khối được sử dụng để định vị khối được yêu cầu trong khung vùng. Bộ nhớ chính (3 bít) (2 bít) (4 bít) Vùng Sector Block Word B0 Địa chỉ ô nhớ B1 B2 0 B3
  55. 55 Nguyễn Trung Đồng Tel. 0983 410 866
  56. 56 Hệ Vi xử lý tiên tiến Khi xẩy ra cache miss, chỉ khối bị lỗi được lấy từ bộ nhớ chính và đặt vào khung khối thích hợp trong khung vùng. Có nghĩa là khối thứ i trong vùng phải được đặt đúng vào khung khối thứ i trong khung vùng đích. Bít xác nhận hợp lệ (valid bít) được gắn với mỗi khối khung để chỉ ra khối là hợp lệ hay không hợp lệ. Khi nội dung một khung khối bị thay thế, tất cả các khung khối còn lại sẽ bị đánh dấu là không hợp lệ. Chỉ khung khối mới bị thay thế nhất trong vùng được đánh dấu là hợp lệ cho phép tham chiếu. Nếu so sánh với hai phép ánh xạ đã trình bày trên đây, thì phép ánh xạ vùng có ưu điểm ở sự mềm dẻo của thuật thay thế nội dung các khối và hiệu quả hơn trong việc tìm kiếm liên kết đầy đủ thông qua một số giới hạn thẻ vùng. Hình II.16 là một ví dụ về tổ chức cache ánh xạ vùng với mỗi vùng có 4 khối. Mỗi vùng có thể ánh xạ vào bất kỳ khung vùng nào với phương thức liên kết đầy đủ ở mức vùng. Cách tổ chức này được hiện thực hoá trên hệ thống IBM System/360 Model 85. Tổ chức ở Model 85 có 16 vùng, mỗi vùng có 16 khối, với dung lượng khối là 64 bytes. Như vậy mỗi vùng có 1024 bytes và tổng dung lượng cache là 16KB. Hiệu suất sử dụng cache có thể nhìn nhận trên hai phạm vi liên quan là số chu kỳ (Cycle Count) và tỷ lệ trúng cache (Hit Ratio). Số chu kỳ được tính dựa vào số các chu kỳ máy cần cho một truy xuất cache, bổ sung thông tin và điều khiển liên kết. Tỷ lệ trúng cache xác định tính hiệu quả của sử dụng cache so với tổng thời gian truy xuất bộ nhớ. Cần có sự điều chỉnh cân bằng giữa hai phạm vi này. Các hệ số ảnh hưởng đến tốc độ truy xuất cache và tỷ lệ trúng cache bao gồm việc mô phỏng theo từng bước thực hiện chương
  57. 57 Nguyễn Trung Đồng Tel. 0983 410 866 trình (program trace-driven simulation) và mô hình hoá phân tích (analytical modeling) quá trình tổ chức và quản lý bộ nhớ cache. Sự thoả hiệp thông qua kết quả của hai quá trình này sẽ đưa tới quyết định tổ chức cấu trúc và phương thức quản lý cache. II.5. Tổ chức bộ nhớ chia sẻ Tổ chức bộ nhớ theo phương thức đan xen (interleaving) tạo ra được giải thông cao hơn cho các hệ thống truy xuất của đường ống đối với các vị trí liên tiếp trong bộ nhớ. Phương pháp định vị và phân vùng bộ nhớ chính cho các chương trình được quan tâm nhất nhằm sử dụng bộ nhớ một cách tối ưu. II.5.1. Tổ chức bộ nhớ đan xen (Interleaved Memory Organization) a) Tổ chức đan xen Có nhiều cách tổ chức bộ nhớ vật lý. Kỹ thuật đan xen được sử dụng để làm giảm nhỏ lỗ hổng (bong bóng) trong tăng tốc truy xuất CPU-cache và bộ nhớ chính. Mục tiêu của thiết kế bộ nhớ là mở rộng hiệu suất băng thông nhớ sao cho nhiều từ nhớ có thể truy xuất được trong một đơn vị thời gian. Mục tiêu cuối cùng chính là phù hợp băng thông nhớ với băng thông của BUS và băng thông của bộ xử lý. Giả sử bộ nhớ chính có m = 2a mô đun, mỗi mô đun nhớ chứa w = 2b từ trong một vị trí nhớ. Tổng dung lượng nhớ sẽ là m.w = 2a+b từ nhớ. Các từ nhớ này được gán các địa chỉ tuyến tính. Các phương thức gán địa chỉ tuyến tính khác nhau sẽ dẫn đến các tổ chức bộ nhớ khác nhau. Ngoài các truy xuất ngẫu nhiên, bộ nhớ chính còn bị truy xuất theo khối tại các vùng có địa chỉ liên tiếp nhau.
  58. 58 Hệ Vi xử lý tiên tiến Việc truy xuất theo khối là cần thiết đối với chuỗi lệnh hay cấu trúc dữ liệu tuyến tính. Mỗi truy xuất theo khối tương ứng với độ rộng của khối hoặc một số khối trong cache. Tất nhiên yêu cầu này dẫn đến việc thiết kế bộ nhớ sao cho thích hợp với việc truy xuất theo khối. MAB: Đệm địa chỉ mô đun MAB MAB MAB Giải mã MA địa chỉ M0 M1 Mm-1 0 1 m-1 a 0 m m+1 2m-1 Địa chỉ ô nhớ m Word Mô đun m(w-1) mw-m+1) mw-1 m( MDB: Đệm dữ b liệu bộ nhớ MDB MDB MDB MD W A B Đệm địa chỉ từ nhớ BUS dữ liệu Hình II.17a. m đường đan xen bậc thấp (Low-order) Hình II.17 a,b chỉ ra hai dạng thức địa chỉ cho đan xen bộ nhớ. Đan xen bậc thấp (Low-order interleaving) trải rộng của các vị trí nhớ liên tục trên m mô đun. Hàm ý bậc thấp tức là a bít thấp của địa chỉ ô nhớ được dùng để xác định mô đun nhớ, trong khi b bit cao là địa chỉ của từ nhớ trong từng mô đun. Lưu ý rằng địa chỉ từ nhớ được đưa đến tất cả các mô đun nhớ đồng thời, còn địa chỉ mô đun nhớ qua giải mã địa chỉ để xác định mô đun nhớ. MAB MAB MAB Giải mã MA địa chỉ Mm-1 0 w (m-1)w 0 a 1 w+1 m mw
  59. 59 Nguyễn Trung Đồng Tel. 0983 410 866 Hình II.17b. m đường đan xen bậc cao (High-order) Hình II.17. Hai cách tổ chức bộ nhớ đan xen với m = 2a và w = 2b từ trong mỗi mô đun nhớ Đan xen bậc cao (High-order interleaving) sử dụng các bit bậc cao (a bít) làm địa chỉ của mô đun nhớ còn các bít bậc thấp (b bít) là địa chỉ của từ nhớ. Các vị trí nhớ liên tiếp được đặt trong từng mô đun. Trong mỗi chu kỳ bộ nhớ, chỉ một từ nhớ được truy xuất từ mỗi mô đun nhớ. Đây cũng là nguyên nhân bộ nhớ đan xen bậc cao không thể sử dụng cho truy xuất theo khối các vị trí nhớ liên tiếp nhau. Chỉ bộ nhớ đan xen bậc thấp cho phép truy xuất các vị trí nhớ liên tiếp nhau theo khối trong cơ chế đường ống. b) Truy xuất bộ nhớ đường ống hoá Truy xuất m mô đun nhớ có thể thực hiện gối nhau theo thể thức đường ống hoá. Vì mục đích này, chu kỳ bộ nhớ (chu kỳ chính) được phân chia thành m chu kỳ thứ cấp.
  60. 60 Hệ Vi xử lý tiên tiến Một ví dụ về tổ chức bộ nhớ đan xen với m = 8, w = 8, ứng với a = b = 3 được thể hiện trên Hình II.18a. Gọi θ là chu kỳ chính và τ là chu kỳ thứ cấp, ta có:   m trong đó m là bậc đan xen (degree of interleaving). Định thời của truy xuất đường ống hoá 8 từ nhớ liên tiếp trong bộ nhớ được thể hiện trên Hình II.18b. Thể thức truy xuất đồng thời (concurrent access) các từ nhớ liên tiếp nhau được gọi là biểu đồ C-truy xuất. Chu kỳ chính θ là tổng thời gian cần thiết để hoàn thành truy xuất một từ trong mô đun. Chu kỳ thứ cấp τ là thời gian thực tế cần để tạo nên từ, bao gồm việc truy xuất gối kề các mô đun nhớ kế tiếp nhau và được phân tách bởi chu kỳ thứ cấp τ. Thanh ghi địa chỉ ô nhớ Địa chỉ từ nhớ Địa chỉ mô đun M0 M1 M2 M3 M4 M5 M6 M7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 Thanh ghi dữ liệu ô nhớ a)Đan xen bậc thấp 8 đường
  61. 61 Nguyễn Trung Đồng Tel. 0983 410 866 W7 W6 W5 W4 W3 W2 W1 W0 Thời gian θ τ 2θ b)Truy xuất đường ống hoá 8 từ liên tiếp trong bộ nhớ truy xuất đồng thời (C-access) Thấy rằng truy xuất đường ống hoá 8 từ liên tiếp được thực hiện như trên băng tải giữa truy xuất các khối đường ống hoá với các khối khác. Trong khi tổng thời gian truy xuất khối là 2θ, thời gian truy xuất hiệu dụng mỗi từ được rút xuống chỉ còn là τ, như đối với bộ nhớ truy xuất liên tiếp trong phương thức đường ống hoá. II.5.2. Băng thông và dung sai lỗi Năm 1967 Hellerman đã đưa ra biểu thức khảo sát sự tăng hiệu quả theo băng thông qua việc tổ chức bộ nhớ đan xen nhiều đường. Giả sử một mô đun nhớ đơn cho phép truy xuất một từ trong một chu kỳ bộ nhớ thì băng thông B được tính bằng 1. Băng thông B của bộ nhớ đan xen m đường bị giới hạn trên bởi m và giới hạn dưới bằng 1. Hellerman đưa ra biểu thức khảo sát B như sau: B m0.56 m
  62. 62 Hệ Vi xử lý tiên tiến trong đó m là số các mô đun nhớ đan xen. Thấy ngay rằng nếu sử dụng 16 mô đun nhớ theo tổ chức đan xen, băng thông sẽ gần gấp 4 lần so với bộ nhớ chỉ một mô đun. Trong máy tính xử lý vector, thời gian truy xuất của một vector dài n phần tử với khoảng cách giữa chúng bằng 1 được Cragon khảo sát năm 1992 như sau: Giả sử có n phần tử được lưu giữ liên tiếp trong bộ nhớ đan xem m đường, thời gian trung bình t1 cần để truy xuất 1 phần tử trong vector là:  m 1 t (1 ) 1 m n Khi n→∞, (vector rất dài), t1→θ/m = τ, còn khi n→1 thì t1 = θ, và có thể kết luận, theo quan điểm này, vector càng dài càng tốt hơn. Dung sai lỗi : Thấy rằng đan xen bậc cao và đan xen bậc thấp có thể tổ hợp để tạo ra nhiều cách tổ chức bộ nhớ đan xen. Các địa chỉ tuần tự sẽ được gán cho bộ nhơ đan xen bậc cao trong mỗi mô đun nhớ. Nó cho phép dễ dàng loại trừ lỗi mô đun nhớ trong băng nhớ m mô đun. Khi xẩy ra lỗi tại một mô đun, lúc đó các mô đun khác có thể dùng để mở một cửa sổ trong không gian nhớ. Lỗi loại trừ này không xuất hiện trong tổ chức đan xen bậc thấp, vì lỗi mô đun có thể gây rối loạn toàn băng nhớ. Chính vì vậy, bộ nhớ đan xen bậc thấp không thể coi là loại bộ nhớ có dung sai lỗi. II.5.3. Sơ đồ định vị bộ nhớ Ý tưởng bộ nhớ ảo (Virtual Memory) cho phép nhiều quá trình được thực hiện sử dụng chiến lược chia sẻ theo
  63. 63 Nguyễn Trung Đồng Tel. 0983 410 866 thời gian sử dụng bộ nhớ chính, nguồn tài nguyên quý giá nhưng lại rất hạn chế về dung lượng. Sự phân chia của hệ điều hành về định vị và hoán vị bộ nhớ chính trong quá trình thực thi chương trình được gọi là điều hành bộ nhớ (Memory Manager). Điều hành bộ nhớ thực hiện việc giám sát phần chung của bộ nhớ và xác định quá trình nào sẽ được định vị vào, quá trình nào phải trả về ổ đĩa khi dung lượng bộ nhớ là giới hạn. Chiến lược định vị (Allocation Policies): Hoán đổi bộ nhớ là quá trình di chuyển các khối thông tin giữa các mức của phân cấp bộ nhớ. Để dễ hiểu, ở đây chỉ trình bày sự hoán vị thông tin giữa bộ nhớ chính và ổ đĩa. Trước tiên chiến lược hoán đổi có thể thực hiện không chỉ với vùng nhớ được ưu tiên hay không được ưu tiên. Trong trường hợp định vị không ưu tiên, khối thông tin đến chỉ có thể được nạp vào vùng rỗi của bộ nhớ chính. Còn trường hợp định vị ưu tiên thì khối thông tin mới sẽ thay thế vị trí tại vùng đang bị chiểm giữ bởi một quá trình. Trong cả hai trường hợp, điều hành bộ nhớ luôn cố gắng định vị thông tin vào vùng được ưu tiên. Khi không gian bộ nhớ chính đã định vị đầy đủ, sơ đồ không ưu tiên hoán vị một số quá trình đang được định vị (hoặc trang) để giành chỗ cho các khối sẽ được chuyển đến. Mặt khác, sơ đồ ưu tiên có sự lựa chọn ưu tiên cho quá trình đang thực thi. Sơ đồ không ưu tiên tuy dễ dàng thực hiện, song sự sử dụng bộ nhớ không được hoàn hảo. Sơ đồ ưu tiên có tính mềm dẻo cao, song nó yêu cầu cơ chế thiết lập để xác định trang nào hay quá trình nào sẽ phải hoán vị khỏi, và ngăn ngừa sự thua thiệt do quá thừa vùng hoán vị giữa các mức bộ nhớ.
  64. 64 Hệ Vi xử lý tiên tiến Chiến lược định vị có thể là cục bộ hoặc toàn cục. Chiến lược định vị cục bộ chỉ bao gồm các lớp công việc của các quá trình không tường minh. Chiến lược định vị toàn cục cân nhắc quá khứ của lớp các công việc thuộc các quá trình thường trú để đi đến quyết định hoán vị. Các hệ thống hoán vị (Swapping Systems) : Thiết bị hoán vị (swap device) là một phần được định trước của đĩa đặt trong vùng tạm lưu để sẽ được hoán vị khỏi bộ nhớ chính. Một phần của vùng nhớ đĩa thiết lập cho thiết bị hoán vị được gọi là không gian hoán vị (Hình II.19). Điều hành bộ nhớ định vị không gian đĩa cho tệp chương trình một khối, nhưng nó lại định không gian cho thiết bị hoán vị một nhóm các khối liền kề. Để dễ hình dung, giả thiết các khối là những trang có dung lượng cố định. Không gian địa chỉ ảo có thể chiếm nhiều trang. Độ lớn của không gian địa chỉ quá trình bị giới hạn bởi dung lượng bộ nhớ chính trong hệ thống hoán vị. Bộ nhớ chính Bộ nhớ ổ đĩa (0) 2K (63K) 400K (16K) Không gian hoán 800K (0) vị 801K (1K) 1023K (17K) (4M) a)Di chuyển quá trình (trang) vào vùng hoán vị của đĩa
  65. 65 Nguyễn Trung Đồng Tel. 0983 410 866 Bộ nhớ chính Bộ nhớ ổ đĩa (0) (0) 4K (16K) 465K (63K) Không gian hoán vị 700K (17K) 1022K (1K) 1 (4M) 023K1023K b)Hoán vị quá trình (trang) vào bộ nhớ b)Hoán vị quá trình ( trang ) trở lại bộ nhớ chính Hình II.19.Hình NguyênII.19. Nguyên lý hoán lývị hoánbộ nhớ vị vào trong trang bộ bộnhớ nhớ ảo ảo phân phân cấp đượccấp nhận (dung dạng lượngbởi giả trang thiết sốlà lượng1k từ trang- 4KB độ) lớn là 1K Hệ thống hoán vị được sử dụng trong máy tính PDP-11 và các hệ thống UNIX gần đây. Nó được dùng để chuyển nội dung của quá trình giữa bộ nhớ chính và thiết bị hoán vị, chứ không chuyển các thành phần (trang) riêng biệt của quá trình. PDP-11 cho phép quá trình có độ dài lớn nhất là 64KB. Cần nhắc lại rằng, mọi quá trình đều phải được nạp vào bộ nhớ chính thì mới có thể thực thi được. Hình II.19 là ví dụ đơn giản mô tả nguyên lý trao đổi thông tin phục vụ thực hiện quá trình có 5 trang hiện hành được xác nhận qua địa chỉ bộ nhớ ảo 0, 1K, 16K, 17K và 63K với giả thiết dung lượng trang là 1K từ (tương đương
  66. 66 Hệ Vi xử lý tiên tiến 4Kbyte) Hình II.19a chỉ ra sự định vị trong bộ nhớ vật lý trước khi hoán vị. Giả thiết bộ nhớ chính có 1024 khung trang, ổ đĩa có thể điều tiết để có 4M trang. 5 trang thường trú rời rạc trên bộ nhớ chính được được hoán vị khỏi bộ nhớ và sắp xếp lại thành các trang liên tiếp trên thiết bị hoán vị. Sau này, quá trình có thể cần được sắp xếp lại vào bộ nhớ chính như trong Hình II.19b. Các khung trang khác có thể được định vị để điều tiết lại sự sắp xếp các trang. Mục đích của việc ánh xạ các khối liên tiếp vào thiết bị hoán vị là để tăng tốc hoạt động trao đổi thông tin đa khối so với việc di chuyển từng khối. Các hệ thống lập trang theo yêu cầu (Demand Paging Systems): Hệ thống bộ nhớ theo trang sử dụng lập trang theo yêu cầu trong chiến lược định vị. Chiến lược này chỉ cho phép các trang (không cho phép quá trình) được hoán vị giữa bộ nhớ chính và thiết bị hoán vị. Trên Hình II.19, các trang của quá trình được hoán vị độc lập và đó là hệ thống lập trang theo yêu cầu. Trong hệ thống lập trang theo yêu cầu, toàn bộ quá trình không được chuyển vào bộ nhớ chính để được thực thi, chỉ các trang được nạp vào bộ nhớ chính theo yêu cầu. Ý tưởng lập trang theo yêu cầu tương thích hoàn toàn với nguyên lý tập hiện hành (working-set). Chỉ các tập hiện hành của quá trình đang được thực thi là hiện hữu trong bộ nhớ chính. Back (1996) định nghĩa tập hiện hành của quá trình là tập các trang tham chiếu bởi quá trình trong n tham chiếu cuối cùng, và n được gọi là độ rộng cửa sổ (window size) của tập hiện hành.
  67. 67 Nguyễn Trung Đồng Tel. 0983 410 866 Các hệ thống nhớ hỗn hợp (Hybrid Memory Systems): Các hệ thống máy tính VAX/VMS và UNIX System V được lắp đặt hệ thống nhớ hỗn hợp ứng dụng những ưu điểm của hai phương thức hoán vị và lập trang theo yêu cầu. Khi một số quá trình đồng thời ở trạng thái sẵn-sàng-chạy đã-được-hoán-vị (ready-to-run-but-swapped), thiết bị hoán vị có thể chọn để hoán vị ra một số quá trình để làm rỗng không gian nhớ cần thiết. Một số hệ thống nhớ ảo có thể sử dụng phương thức lập trang dự đoán (anticipation pagging), nghĩa là nhặt trước các trang theo dự đoán. Sơ đồ làm việc theo phương thức này rất khó thực thi. Cho đến khi các mẫu tham chiếu bộ nhớ có thể tiên đoán được tại thời điểm khi bộ dịch tạo địa chỉ, sơ đồ này không phát huy được thế mạnh. Với các mẫu tham chiếu bộ nhớ ngắn hạn, sẽ dễ dàng hơn để dự đoán thông qua các đặc trưng cục bộ.
  68. 68 Hệ Vi xử lý tiên tiến Chương III Các mô hình máy tính xử lý song song Chương này khảo sát kiến trúc hệ thống đa xử lý (MultiProcessors) và kiến trúc hệ thống đa máy tính (MultiComputers). Các vấn đề được quan tâm ở đây gồm phương pháp đồng bộ, các mạch chuyển mạch mạng liên kết, các bộ nhớ đa cổng, mạng nhiều tầng , v. v III.1. Liên kết hệ thống đa xử lý Xử lý song song đòi hỏi việc liên kết hệ thống đảm bảo truyền thông nhanh chóng giữa các bộ Vi xử lý với bộ nhớ chia sẻ, với các thiết bị Vào/Ra và với các thiết bị ngoại vi. BUS phân cấp, các phần tử chuyển mạch và mạng nhiều tầng luôn được sử dụng co các mục tiêu này. Hình III.1 là hệ thống đa xử lý tổng quát. Kiến trúc này tổng hợp các ưu điểm của hệ thống UMA, NUMA và COMA. Mỗi bộ xử lý Pi được gắn thêm mô đun nhớ cục bộ và cache riêng. Các bộ xử lý được liên kết với các mô đun nhớ chia sẻ nhờ mạng kết nối xử lý-bộ nhớ IPMN (Interprocessor-Memory Network). Các bộ xử lý chia sẻ nhau các thiết bị Vào/Ra và các thiết bị ngoại vi khác thông qua mạng kết nối thiết bị Vào/Ra PION (Processor-I/O Network). Hai mạng liên kết IPNM và PION là cần thiết cho việc chia sẻ tài nguyên trong hệ thống đa xử lý. Truyền thông tin trực tiếp giữa các bộ xử lý với nhau được đảm bảo nhờ mạng liên kết truyền thông IPCN (Interprocessor-Communication Network) thay vì phải thông qua bộ nhớ chia sẻ.
  69. 69 Nguyễn Trung Đồng Tel. 0983 410 866
  70. 70 Hệ Vi xử lý tiên tiến Bộ nhớ chia sẻ Ngoại vi bao gồm: - Các ổ đĩa SM 1 SM2 SMm S S - Băng từ - Máy in IPMN IPMN - Thiết bị đầu cuối Cn Thiết bị LM Pn PION ngoại vi chia C n sẻ LM Pn IPCN Các từ viết tắt: IPMN mạng kết nối các mô đun nhớ với các bộ Vi xử lý PION Mạng kết nối các bộ Vi xử lý với các thiết bị ngoại vi IPCN Mạng kết nối các bộ Vi xử lý Pi Bộ Vi xử lý thứ i Ci Bộ nhớ cache thứ i (của Pi) SM Mô đun nhớ chia sẻ LM Các mô đun nhớ cục bộ Hình III.1. Cấu trúc kết nối hệ thống đa xử lý song song tổng quát với các mô đun nhớ cục bộ, cache riêng, các mô đun nhớ chia sẻ, thiết bị ngoại vi chia sẻ Đặc trưng của mạng: Mỗi một mạng được nêu trên có thể được hiện thực hoá theo nhiều phương pháp. Thông
  71. 71 Nguyễn Trung Đồng Tel. 0983 410 866 thường, chúng được chọn theo tôpô mạng, thep phương thức định thời, phương pháp chuyển mạch và chiến lược điều khiển. Định thời, chuyển mạch và điều khiển là ba đặc trưng chức năng chính của một mạng liên kết. Điều khiển định thời có thể là đồng bộ hoặc dị bộ. Mạng đồng bộ được điều khiển bằng xung nhịp toàn cục để đồng bộ hoạt động của toàn mạng. Mạng không đồng bộ sử dụng cơ chế bắt tay (Handshaking) hoặc cơ chế liên động (Interlocking Mechanisms) để điều phối đối với các thành phần có tốc độ thu phát thông tin nhanh chậm khác nhau trên cùng một mạng. Mạng có thể chuyển dữ liệu sử dụng mạch chuyển (Circuit Swiching) hoặc gói chuyển (Packet switching). Ở phương thức dùng mạch chuyển, khi một thiết bị được cấp đường truyền trên mạng, thiết bị chiếm đường truyền trong một khoảng thời gian nhất định cho việc truyền dữ liệu. Còn trong phương thức gói chuyển, thông tin được phân thành từng gói nhỏ và chia nhau đường truyền trên mạng. Điều khiển mạng được phân thành 2 loại: tập trung (Centralized) hoặc phân tán (Distributed). Ở phương thức điều khiển tập trung, bộ điều khiển toàn cục tiếp nhận các yêu cầu từ tất cả các thành phần gắn kết trên mạng và phân phối việc truy cập mạng cho một hoặc một số yêu cầu. Còn ở phương thức điều khiển phân tán các yêu cầu được tiếp nhận độc lập nhờ các thiết bị cục bộ. III.1.1. Hệ thống BUS phân cấp Hệ thống BUS bao gồm hệ phân cấp các BUS kết nối các hệ thống và các thành phần trong một máy tính. Mỗi một BUS bao gồm một số các đường dây tín hiệu, đường
  72. 72 Hệ Vi xử lý tiên tiến dây điều khiển và cấp nguồn nuôi. Các BUS khác nhau thực hiện các chức năng kết nối khác nhau. Hình III.2 thể hiện các BUS ở các mức khác nhau, bao gồm BUS cục bộ trên vỉ, BUS trên bo mạch chủ, BUS Vào/Ra v.v BUS cục bộ (Local BUS) thông thường được thực hiện bằng các đường mạch in trên vỉ chức năng. Trên bo mạch CPU, BUS cục bộ làm chức năng kết nối truyền thông tin giữa các phần tử chính (chip) được gắn trên bo. Vỉ nhớ sử dụng BUS nhớ (Memory BUS) để kết nối bộ nhớ với giao diện logic. Vỉ Vào/Ra hay vỉ giao diện mạng sử dụng BUS dữ liệu. Các BUS này bao gồm các đường dây tín hiệu và đường dây chức năng tiện dụng. Với phương thức chia sẻ chức năng và tín hiệu trên đường dây, có những đường dây truyền dẫn các tín hiệu khác nhau theo chia sẻ thời gian. BUS bo mạch chủ (Backplane BUS) chính là mạch in có khả năng kết nối thông qua các khối kết nối (connector) để sử dụng cho việc cắm các vỉ chức năng. BUS hệ thống, bao gồm các dường dây tín hiệu chia sẻ và các đường dây đa dụng được thực hiện bằng kết nối mạch in. BUS hệ thống làm chức năng kết nối tất cả các vỉ chức năng trong máy tính. Các BUS này có chuẩn chung và đã được phát triển, sử dụng nhiều như BUS VME (theo chuẩn IEEE Standard 1014-1987), MultiBus II (IEEE Standard 1296-1987) và FutureBus+ (IEEE Standard 896.1-1991). Ngoại vi cục bộ (BUS SCSI) Bo mạchBo CPU Bo mạch nhớ LM CPU IOC Các ô nhớ
  73. 73 Nguyễn Trung Đồng Tel. 0983 410 866 BUS Vào/Ra (I/O BUS) kết nối các thiết bị Vào/Ra với hệ thống máy tính.
  74. 74 Hệ Vi xử lý tiên tiến Có thể kể ra BUS giao diện hệ thống máy tính nhỏ SCSI (Small Computer Systems Interface). Thông thường là dây đồng trục (Coaxial), cáp nối ổ đĩa, máy in, v.v nối với hệ thống máy tính thông qua các khối điều khiển Vào/Ra (I/O Controller). Các logic giao diện đặc biệt được sử dụng để kết nối các thiết bị ngoại vi khác nhau với hệ thống máy tính. Một số hệ thống BUS sử dụng trong các hệ thống máy tính có thể kể ra là NanoBus trong hệ thống đa xử lý Encore Multimax Multiprocessor với 20 khe cắm, 32 đường dây địa chỉ, 64 đường dây dữ liệu và BUS vector 14bit, có giải thông 100Mbytes/sec. BUS hệ thống của máy tính Sequent Multiprocessor có 64 đường dây dữ liệu. Cũng nên nêu ra ở đây một ví dụ thực tế: BUS tín hiệu số (Digital BUSes) ở các máy trạm (Workstation), các máy tính mini, mainframe và đa xử lý sử dụng hệ thống BUS phân cấp để xây dựng các hệ thống trung bình với số bộ xử lý nhỏ hơn 100. Kiến trúc BUS phân cấp và cache được Wilson (1987) đề xuất với cấu trúc cây nhiều mức mà các nút là các bộ Vi xử lý (ký hiệu là Pj) liên kết cùng cache riêng (ký hiệu là C1j). BUS liên cụm được dùng để trao đổi thông tin giữa các cụm. Cache mức hai (ký hiệu là C2i) nằm giữa BUS cụm và BUS liên cụm. Mỗi cache mức hai phải có dung lượng tối thiểu bằng tổng dung lượng các cache mức một nằm trong cụm. M1 M2 Mm BUS liên cụm (Inter-cluster BUS C20 C21 C22 Cache
  75. 75 Nguyễn Trung Đồng Tel. 0983 410 866 Hình III.3. Hệ thống đa xử lý vô hướng với kiến trúc phân cấp cache/BUS Mỗi cụm làm việc như một hệ thống BUS đơn. Giao thức thừa kế BUS xen lẫn này có thể sử dụng để thiết lập tính nhất quán giữa cache mức một với cùng một cụm. Cache mức hai dùng để mở rộng tính nhất quán từ mỗi cụm cục bộ đến mức cache cao hơn. Cache mức trên cùng trong hệ thống bộ nhớ chia sẻ giữa mỗi cụm và bộ nhớ chính được kết nối qua BUS liên cụm. Sự gắn kết cache liên cụm được điều khiển giữa cache mức hai và hệ quả khi đi qua cache mức thấp hơn. Hình III.4 là kiến trúc đa xử lý Encore’s Ultramax với BUS phân cấp hai mức, tương tự đề xuất của Wilson, ngoại trừ Nanobus toàn cục được nối kết với cụm. Nanobus toàn cục SC RS SC RS Nanobus cụm Nanobus cụm MM PC PC PC PC MM
  76. 76 Hệ Vi xử lý tiên tiến III.1.2. Chuyển mạch ngang dọc và bộ nhớ đa cổng Mạng chuyển mạch thực hiện kết nối động giữa lối vào và lối ra. Mạng ngang dọc (Crossbar Network) được dùng nhiều trong các hệ thống nhỏ và hệ thống trung bình. Mạng nhiều tầng (Multistage Network) có thể mở rộng cho các hệ thống lớn nếu giải quyết tốt vấn đề độ trễ (latency) trong truyền tải thông tin. Tầng mạng (Network Stage). Phụ thuộc vào các kết nối sử dụng giữa các tầng, một mạng đơn tầng (single-stage network) còn được gọi là mạng quay vòng (recirculating network) vì các dữ liệu quay trong chính một tầng trước khi tìm được đích đến. Bộ VXL Bộ VXL Bộ VXL Bộ VXL Bộ VXL Bộ VXL Cache Cache Cache Cache Cache Cache Dual Futurebus+ Cache Cache Cache Cache Bộ nhớ Bộ nhớ Bộ VXL Cầu Cầu Bộ VXL Đoạn cáp
  77. 77 Nguyễn Trung Đồng Tel. 0983 410 866 Dù dễ thực hiện, giá thành rẻ, song có thể cần nhiều bước để thiết lập được một liên kết xác định. Chuyển mạch ngang dọc và tổ chức bộ nhớ đa cổng là những mạng đơn tầng. Mạng nhiều tầng (Multistage Network) chứa nhiều hơn một tầng chuyển mạch và cho phép kết nối một đầu vào bất kỳ tới một đầu ra bất kỳ. Việc lựa chọn sự kết nối giữa các tầng xác định tính liên kết của mạng. Khuôn mẫu này có thể giống nhau hoặc khác nhau tại các tầng khác nhau, phụ thuộc vào lớp mạng được thực hiện. Mạng Omega, mạng Flip, mạng Baseline là những mạng nhiều tầng. Hiện tượng nghẽn mạch và mạng không nghẽn mạch: Mạng nhiều tầng gọi là nghẽn mạch khi sự kết nối đồng thời nhiều cặp đôi Vào/Ra dẫn tới sự xung đột khi sử dụng chuyển mạch hoặc liên kết truyền thông. Trong thực tế, phần lớn các mạng nhiều tầng thường là mạng nghẽn mạch. Mạng không nghẽn mạch là mạng có thể tạo tất cả mọi sự kết nối giữa đầu vào với đầu ra bằng cách sắp xếp lại các liên kết. Trong các mạng này, có thể thiết lập kết nối giữa một cặp đôi Vào/Ra bất kỳ. Mạng ngang dọc (Crossbar Network): Ở mạng này, mỗi cổng vào được nối với một cổng ra nào đó nhờ các chuyển mạch mà không bị nghẽn. Mạng ngang dọc là mạng đơn tầng được xây dựng với các chuyển mạch đơn thuần tại các điểm giao nhau (Hình III.6). Dữ liệu đọc từ mô đun nhớ được chuyển đến bộ xử lý có yêu cầu qua các chuyển mạch. Thông thường, các mạng này cần đến n x m bộ chuyển mạch.
  78. 78 Hệ Vi xử lý tiên tiến P1 P2 P16 M1 M2 M16 m mô đun nhớ chia sẻ Hình II.6. Mạng ngang dọc kết nối các bộ xử lý với các mô đun nhớ. Pi : Bộ xử lý thứ i, Mi : Mô đun nhớ thứ i Mỗi bộ xử lý có thể gửi yêu cầu dữ liệu đến bộ nhớ một cách độc lập và không đồng bộ. Điều này dẫn đến khả năng xẩy ra là một mô đun nhớ đồng thời nhận được nhiều yêu cầu cung cấp dữ liệu. Tất nhiên, chỉ có một yêu cầu có thể được đáp ứng. Hình II.17 là thiết bị chuyển mạch 2 lối vào 2 lối ra và các khả năng kết nối được điều khiển bởi tín hiệu điều khiển kết nối. Tín hiệu điều khiển kết nối Trạng thái ngắt Xuyên suốt Nối chéo Xuyên lên Xuyên xuống Hình II.7. Chuyển mạch 2 lối vào 2 lối ra và các trạng thái kết nối Với n chuyển mạch tại vị trí giao nhau trên một cột của mạng lưới m x n điểm giao, chỉ có thể có một chuyển mạch
  79. 79 Nguyễn Trung Đồng Tel. 0983 410 866 được kết nối. Để có thể tránh xẩy ra tranh chấp đối với mỗi mô đun nhớ, các thiết bị chuyển mạch phải được thiết kế rất hoàn thiện nhằm đáp ứng những yêu cầu khe khắt nhất. Tại mỗi nút giao nhau, cần có một số lượng lớn các đường truyền tín hiệu cho địa chỉ, cho dữ liệu và cho tín hiệu điều khiển. Nói cách khác, nút giao nhau phải đảm đang chức trách của một BUS đơn. Với n x n nút giao nhau, sẽ cần đến n2 thiết bị chuyển mạch với rất nhiều đường dây kết nối. Giá thành sản phẩm sẽ rất đắt khi n lớn. Trong thực tế, các máy tính thương mại chỉ sử dụng đến n ≤ 16. Mô Dữ liệu Dữ liệu đun (n tập) trộn n bộ kênh xử lý Địa chỉ (dạng Địa chỉ cây) RD/WR RD/WR Bộ nhớ chia sẻ Yêu cầu Nhận biết Trọng Yêu cầu tài Nhận biết n bộ Tín hiệu phân xử lý xử cho phép Yêu cầu Nhận biết Hình III.8. Sơ đồ chuyển mạch tại nút giao nhau trong mạng ngang dọc Tại mỗi hàng của mạng lưới, nhiều chuyển mạch có thể kết nối đồng thời. Dữ liệu truyền đồng thời có thể được đặt
  80. 80 Hệ Vi xử lý tiên tiến trên lối vào giữa n đôi Bộ xử lý và bộ nhớ. Mô đun dồn kênh làm nhiệm vụ chọn một từ n yêu cầu đọc hoặc ghi. Mỗi bộ xử lý gửi yêu cầu độc lập, trọng tài phân xử dựa vào luật ưu tiên có sẵn để lựa chọn kết nối. Có thể lấy ví dụ, với 4 bit điều khiển, có thể tạo tín hiệu điều khiển cho 16 bộ xử lý. Với n tập dữ liệu, địa chỉ và dây điều khiển Ghi/Đọc đều được nối vào lối vào của bộ dồn kênh. Trên cơ sở các tín hiệu điều khiển, chỉ một tập được chọn đưa tới đầu ra. Tín hiệu địa chỉ ô nhớ được đưa tới trong cả hai trường hợp đọc hoặc ghi. Nếu là yêu cầu đọc, dữ liệu được nhận từ bộ nhớ sẽ được chuyển đến bộ xử lý có yêu cầu (Request) theo hướng từ bộ nhớ đến bộ xử lý thông qua các đường dẫn được thiết lập qua các chuyển mạch tương ứng. Trong trường hợp ghi dữ liệu vào ô nhớ, dữ liệu từ bộ xử lý sẽ thông qua kết nối đó để được lưu vào bộ nhớ. Tín hiệu nhận biết (Acknowledge) được trọng tài phân xử dùng để thông báo cho tất cả các bộ xử lý. Các tín hiệu thiết lập việc truyền dữ liệu được dùng để tránh xung đột. Lưu ý rằng kênh dữ liệu là hai chiều để phục vụ cho cả hai thao tác Ghi và Đọc bộ nhớ. Bộ nhớ đa cổng (Multiport Memory): Việc xây dựng mạng chuyển mạch cho các hệ thống lớn làm tăng đáng kể giá thành, nhiều máy tính Mainframe loại đa xử lý sử dụng tổ chức bộ nhớ đa cổng. Ý tưởng chính là chuyển trọng tài phân xử và các chức năng chuyển mạch liên quan vào trong thành phần điều khiển bộ nhớ. Tất nhiên giá thành bộ nhớ cũng bị tăng do phải tích hợp thêm các mạch logic.
  81. 81 Nguyễn Trung Đồng Tel. 0983 410 866 Tổ chức bộ nhớ đa cổng chính là sự thoả hiệp giữa vấn đề giá thành sản phẩm và tính thực hiện được. n bộ Vi xử lý P1 P2 Pn 1 2 n 1 2 n 1 2 n M1 M2 Mm m mô đun nhớ chia sẻ Các mô đun nhớ n cổng P1 P2 1 1 2 2 1 1 M1 M2 M3 M4 2 3 4 4 3 2 I/O I/O b) Các cổng của bộ nhớ được gán ưu tiên hoặc là dùng riêng trên mỗi mô đun nhớ bằng số hiệu cổng Hình III.9. Tổ chức bộ nhớ đa cổng cho các hệ thống đa xử lý
  82. 82 Hệ Vi xử lý tiên tiến Tổ chức bộ nhớ đa cổng chính là sự giải quyết thoả hiệp giữa giá thành thấp, dễ thực hiện của hệ thống BUS với giá thành cao, băng thông rộng của hệ thống mạng chuyển mạch. Trên hình III.9b là hệ thống có thêm các Vi xử lý Vào/Ra chuyên dụng I/O. Ví dụ thực tế: Hệ thống đa xử lý UNIVAC 1100/94 có 4 bộ xử lý trung tâm, 4 bộ vi xử lý Vào/Ra, 2 bộ xử lý vector được liên kết với 4 mô đun nhớ chia sẻ, mỗi mô đun có 10 cổng. Sự truy xuất các cổng được định chế độ ưu tiên nhờ hệ điều hành. Ở một số hệ thống đa xử lý, một số mô đun nhớ được giành riêng và chỉ bị truy xuất bởi bộ xử lý sở hữu nó. III.1.3. Mạng tổng hợp và mạng nhiều tầng Mạng nhiều tầng được dùng để xây dựng những hệ thống máy tính lớn. Các hệ thống máy tính thương mại có kết cấu theo mạng nhiều tầng là mạng Omega và mạng Butterfly. Mạng tổng hợp (Generalized Network) là mạng được sử dụng trong hệ thống NYU’s UltraComputer. Cấu trúc tổng quát được thể hiện trên Hình III.10. Mạng kết nối nhiều tầng MIN (Multistage Intercon- nection Network): Mạng được sử dụng trong các hệ thống máy tính MIMD và SIMD. Mạng tổng hợp nhiều tầng được mô tả tên Hình III.10. Các mô đun chuyển mạch a x b (a lối vào b lối ra) làm nhiệm vụ kết nối các tầng. Giữa các mô đun chuyển mạch và tầng liên hợp là kết nối cố định. Riêng các chuyển mạch được điều khiển động để tạo các kết nối theo yêu cầu.
  83. 83 Nguyễn Trung Đồng Tel. 0983 410 866 Các hệ thống MIN khác nhau ở các mô đun chuyển mạch và mẫu kết nối tầng ISC (InterStage Connection). Mô đun chuyển mạch đơn giản nhất là loại 2 x 2 (a = b = 2 ở Hình II.7.). 0 0 1 Chuyển Chuyển Chuyển 1 mạch mạch mạch a-1 b-1 a a a a b a+1 Chuyển Chuyển Chuyển b+1 mạch mạch mạch 2a-1 ISC1 ISC2 ISCn 2b-1 a a a an-a bn-b Chuyển Chuyển Chuyển T T T n mạch mạch mạch n a -1 ầng 1 ầng 2 ầng n b -1 a a a 0 Hình III.10. Cấu trúc tổng quát của mạng kết nối nhiều tầng (MIN) với 1 các mô đun chuyển mạch a x b và mẫu kết nối ISC1, ISC 2, , ISC n b-1 b b+1 2b-1 bn-b bn-1
  84. 84 Hệ Vi xử lý tiên tiến P S S 000 P 11 12 001 P S S 010 P 21 22 011 P S S 100 P 31 32 101 P S S 110 P 41 42 111 Một mạng chuyển mạch 3 tầng Hình III.11. Một ví dụ về hệ thống chuyển mạch trong mạng kết nối 3 tầng với mô đun chuyển mạch 2 x 2 Các mẫu kết nối ISC thường dùng có thể là trộn hoàn chỉnh (Perfect Shuffle), bay (Butterfly), trộn nhiều đường
  85. 85 Nguyễn Trung Đồng Tel. 0983 410 866 (Multiway Shuffle), ngang dọc (Crossbar), kết nối lập thể (Cube Connection) P S S 000 P 11 12 001 P S S 010 P 21 22 011 P S S 100 P 31 32 101 P S S 110 P 41 42 111 Một mạng chuyển mạch 3 tầng, tầng 2 gồm các thành phần chuyển mạch giao nhau
  86. 86 Hệ Vi xử lý tiên tiến P S S 000 P 11 12 001 P S S 010 P 21 22 011 P S S 100 P 31 32 101 P S S 110 P 41 42 111 Một mạng chuyển mạch 3 tầng, tầng 3 gồm các thành phần chuyển Hình III.12. Vài ví dụ sử dụng các chuyển mạch để tạo cácmạch mối giaoliên nhau kết trong mạng nhiều tầng.
  87. 87 Nguyễn Trung Đồng Tel. 0983 410 866 III.2. Một số hệ thống xử lý song song Theo định nghĩa, các siêu máy tính là những máy tính hoạt động nhanh nhất. Có thể kể ra họ các máy tính đa vector (Multivector) và các máy họ SIMD, các máy tính vô hướng (scalar), máy đa luồng (Multithread), kiến trúc dòng dữ liệu (Dataflow Architecture), v.v III.2.1. Hệ thống đa vector và các máy tính SIMD a) Nguyên lý xử lý vector Một vector là một tập của một loại dữ liệu cùng thể loại được lưu giữ trong bộ nhớ. Thông thường, các phần tử của vector được sắp xếp để chúng có địa chỉ liên tiếp và được gọi là một bước (stride). Bộ xử lý vector (vector processor) là tài nguyên phần cứng, bao gồm thanh ghi vector, đường ống chức năng, phần tử xử lý, thanh ghi đếm để thực thi các thao tác xử lý vector. Xử lý vector xuất hiện khi một thao tác số học hay logic được yêu cầu đối với vector. Xử lý vô hướng khác xử lý vector ở chỗ nó chỉ thực thi trên một hoặc một cặp dữ liệu. Việc chuyển đổi từ mã vô hướng sang mã vector được gọi là vector hoá. Nói chung, xử lý vector nhanh hơn và thuận tiện hơn xử lý vô hướng. Các bộ xử lý đường ống và máy tính SIMD có thể thực thi các thao tác trên vector. Có 6 dạng lệnh vector như sau: + ) Vector-vector: một hoặc hai vector đựoc nhận từ các thanh ghi vector tương ứng, thông qua đường ống vào thanh ghi vector khác. Ký hiệu: f1 : Vi → Vj ; f2 : Vk x Vj → Vi ;
  88. 88 Hệ Vi xử lý tiên tiến + Vector-scalar: Thanh ghi Vj Thanh ghiVk Thanh ghiVi Thanh ghiVk Thanh ghiVj Thanh ghiSj 1 2 n 1 2 n Đường ống chức năng Đường ống chức năng a) Lệnh Vector-Vector b) Lệnh Vector-Scalar Thanh ghiVj (Vector Load) Memory path Bộ nhớ Memory path (Vector Store) c) Lệnh Vector-Memory Hình III.13. Các dạng lệnh vector trong các máy tính họ Cray Các lệnh vector-scalar thường có dạng: f3 : s x Vj → Vi ; Các phần tử của vector Vj được nhân với giá trị vô hướng s tạo nên vector mới Vi có chiều dài bằng chiều dài Vj. + Vector-Memory: Là dạng lệnh nạp vào vector các phần tử đang lưu giữ trog bọ nhớ hoặc lưu nội dung vector vào bộ nhớ
  89. 89 Nguyễn Trung Đồng Tel. 0983 410 866 f4 : M → V ; Vector Load f5 : V → M ; Vector Store + Lệnh rút gọn vector (Vector Reduction Intructions) là dạng lệnh xác định cực trị, tổng hoặc giá trị chính của các thành phần trong vector f6 : Vi → si ; f7 : Vi x Vj → sk ; Ví dụ minh hoạ cho dạng lệnh này là lệnh tích điểm (dot product) n s ai bi từ hai vector A = (ai) và B = (bi). i 1 + Lệnh tích luỹ và tán xạ (Gather and Scatter Intructions) là các lệnh sử dụg hai vector để tích luỹ hay tán xạ các phần tử thông qua bộ nhớ f8 : M → V1 × V0 ; Gather f8 : M → V1 × V0 ; ; Scatter + Lệnh mặt nạ sử dụng vector mặt nạ để nén hoặc giải một vector để có độ dài theo ý muốn f9 : V0 × Vm → V1 ; Để tìm hiểu kỹ hơn về các dạng lệnh xử lý vector, tài liệu tham khảo chính là [ Kai Hwang ] b) Hệ thống Cray Y-MP, C-90 và MPP Kiến trúc các hệ thống Cray Reseach Y-MP, C-90 và hệ thống MPP là những ví dụ điển hình về các hệ thống đa xử lý đa vector sẽ dược khảo sát. Ngoại trừ các đặc tính kiến trúc, có thể tham khảo thêm về các hệ điều hành, ngon
  90. 90 Hệ Vi xử lý tiên tiến ngữ/trình biên dịch và phạm vi ứng dụng của các hệ thống này. Đặc tính Cray Y-MP NEC Fujitsu Hệ thống C-90/16256 SX-X Series VP-2000 Series 1 ở VP2600/10 và 2 ở Số lượng bộ Xử lý 16 CPU 4 xử lý số học VP2400/40 Thời gian chu kỳ 4.2 ns 2.9 ns 3.2 ns máy 2GB, 1024 đường Dung lượng nhớ 256 Mword (2GB) 1 hoặc 3 GB SRAM đan xen Tuỳ chọn nhớ 512M, 1024M, hoặc 16GB với tốc độ 32GB bộ nhớ mở SSD 2048Mword truyền 2.75GB/s rộng 4 tập đường ống 2 ống Đọc/Ghi và 5 2 đường ống vector, Kiến trúc Vi xử vector/mỗi CPU, ống chức năng/mỗi 2 đường ống chức lý: Đường ống mỗi tập có 2 bộ đơn vị vector; 1 hoặc năng/mỗi CPU, vector, đơn vị cộng/dịch và 2 bộ 2 đơn vị vector,2 đơn cung cấp 64 kết quả chức năng và vô nhân/đường ống vị vô hướng có thể vector /chu kỳ xung hướng logic. Đường ống gắn kèm vào đơn vi nhịp vô hướng riêng vector Super-UX trên cơ UXP/M và MPS/EX UNICOS từ Hệ điều hành sở UNIX/V và cải biên cho xử lý UNIX/V và BSD 4.3BSD vector IBM, CDC, DEC, Tích hợp VXL điều Kết nối mặt sau hệ Máy chủ IBM và các Univac, Apollo, khiển và 4 VXL thống máy chủ tương thích Honeywell Vào/Ra Ngôn ngữ/trình FORTRAN77, C, FORTRAN77/SX, FORTRAN77/EX/VP, biên dịch vector CF77 5.0, Cray C Vectorizer/XS, Trình biên dịch C/VP hoá 3.0 Analyzer/SX với tương tác vector Tính hoàn thiện và 16 Gflops 22 Gflops, 1GB/s ở 5Gflops, 2GB/s với băng thông 13.6GB/s mỗi VXL Vào/Ra 256 kênh Vào/Ra Đặc tính kiến trúc 3 loại siêu máy tính hiện đại (thời điểm 1993) Sơ đồ khối của siêu máy tính Cray Y-MP 816 được thể hiện trên Hình III.14. Hệ thống có thể có từ 1, 2, 4 đến 8 bộ xử lý. Cả 8 bộ xử lý chia sẻ chung bộ nhớ trung tâm, thiết bị
  91. 91 Nguyễn Trung Đồng Tel. 0983 410 866 Vào/Ra, hệ thống truyền thông giữa các CPU, và xung nhịp thời gian thực. Hình III.14. Tổ chức hệ thống siêu Truyền thông giữa máy tính Cray Y-MP 816 các bộ Vi xử lý Xung nhịp thời gian thực (64bit) CPU1 Đơn vị chức năng Thanh ghi V CPU2 vector; 8 thanh ghi Add/Substract Mỗi thanh Phạm Tập hợp ghi Mặt nạ Shift Logic vi CPU3 64 phần tử Vector (Số học 64 bit) 64bit (64bit) Vector Đơn vị chức năng CPU4 Độ dài dấu phẩy động; Vector Add/Substract (6bit) Multiply Phạm Đảo xấp xỉ CPU5 (Số học 64bit) vi Thanh ghi T (8 thanh ghi Bộ 64bit) Thanh ghi Đơn vị chức năng vô S (8 thanh vô hướng; CPU6 ghi 64 bit) Add/Substract hướng nhớ Tập hợp Shift Logic (Số học 32 bit) CPU7 trung Thanh ghi B Thanh ghi (8 thanh ghi Đơn vị chức năng A (8 thanh Phạm tâm 32bit) địa chỉ; ghi 32 bit) vi CPU8 Add/Substract địa Multiply chỉ (Số học 32 bit) Đệm lệnh Thanh ghi (512 gói xuất lệnh lệnh 16bit) Giám sát Xung nhịp khả Thực hiện Phạm trình (32 bit) vi Hoán đổi tham số điều Điều khiển Các thanh ghi thanh ghi khiển Vào/Ra trạng thái Đến các Các I/O thiết bị ngoài
  92. 92 Hệ Vi xử lý tiên tiến Bộ nhớ trung tâm được chia thành 256 băng đan xen. Truy xuất bộ nhớ đan xen có thể thực hiện thông qua 4 cổng truy xuất cho mỗi CPU. Chu kỳ xung nhịp sử dụng cho các CPU theo thiết kế là 6ns. Dung lượng của bộ nhớ trung tâm có thể là 16MWord, 32MWord, 64Mword hoặc lên đến 256 Mword, tuỳ chọn lên đến 1Gbyte. Tuỳ chọn cho bộ nhớ SSD là từ 32Mword đến 512Mword hay lên đến 4Gbytes. Bộ nhớ 4 cổng cho phép mỗi CPU có thể thực hiện đồng thời 2 thao tác Đọc (nhặt – fetch) vô hướng hay vector, 1 thao tác Ghi (lưu – store) bộ nhớ và một thao tác Vào/Ra. Các thao tác truy xuất song song bộ nhớ cũng được đường ống hoá tạo khả năng Đọc vector (Vector Read) và Ghi Vector (Vector Write). Hệ thống phần cứng được xây dựng với mục tiêu tối thiểu độ trễ do xung đột bộ nhớ. Việc chỉnh sửa lỗi đơn, lỗi kép (single/error and double/error correction) của dữ liệu được thực hiện bởi mạch logic dùng trong bộ nhớ trung tâm và trong kênh kết nối dữ liệu. Hệ thống sử dụng một số lượng lớn các thanh ghi địa chỉ, thanh ghi vô hướng, thanh ghi vector, thanh ghi trung gian và thanh ghi tạm. Đảm bảo quá trình tính toán trong CPU bao gồm 14 đơn vị chức năng được chia thành các phạm vi vector, vô hướng, địa chỉ và điều khiển. Chuỗi mềm dẻo các đường ống chức năng được thực hiện thông qua sử dụng các thanh ghi, đa truy xuất bộ nhớ và các đường ống số học/logic. 8 trong số 14 đơn vị chức năng có khả năng thực thi các lệnh vector. Các đơn vị số học nguyên và dấu phẩy động đều là 64 bit. Bộ nhớ cache lớn có thể dùng để lưu đồng thời 512 lệnh 16 bit.
  93. 93 Nguyễn Trung Đồng Tel. 0983 410 866 Phần truyền thông giữa các bộ xử lý chứa các cụm thanh ghi chia sẻ cho mục tiêu đồng bộ nhanh. Mỗi cụm chứa các thanh ghi mã hiệu (Semaphore), thanh ghi vô hướng chia sẻ, thanh ghi địa chỉ chia sẻ. Truyền thông dữ liệu vector giữa các CPU được thực hiện thông qua bộ nhớ chia sẻ. Khối xung nhịp thời gian thực (Real-Time Clock) là một bộ đếm 64bit để đếm chu kỳ xung nhịp. Sự tăng giá trị bộ đếm đồng bộ với thực hiện chương trình, có thể dùng để định thời việc thực thi và đếm chính xác xung nhịp. Khối Vào/Ra có 3 thể loại kênh với vận tốc 6Mbytes/s, 100Mbytes/s và 1Gbytes/s. Các thiết bị Vào/Ra và SSD đều được thiết kế với khả năng thu phát dữ liệu tốc độ cao. SubSections Memory Banks 1 × 8 0, 4, 6, , 28 1 × 8 32, 36, 40, , 60 1 × 8 64, 68, 72, , 92 Processors Switches ISC Sections 1 × 8 Proc 1 × 8 4×4 1 × 8 1 1 × 8 8×8 1 × 8 224, 226, , 252 Proc 1, 5, 9, ., 29 2 4×4 1 × 8 1 × 8 Proc 1 × 8 4×4 1 × 8 3 1 × 8 8×8 Proc 1 × 8 4×4 1 × 8 4 1 × 8 225, 229, ., 253 Proc 1 × 8 2, 6, 10, , 30 4×4 1 × 8 5 1 × 8 8×8 Proc 1 × 8 4×4 1 × 8 6 1 × 8 1 × 8 Proc 1 × 8 226, 230, , 254 7 4×4 8×8 1 × 8 3, 7, 11, , 31 Proc 1 × 8 4×4 1 × 8 8 1 × 8 1 × 8 1 × 8 Hình III.15. Sơ đồ logic mạng ngang 1 × 8 dọc giữa 8 CPU và 256 băng nhớ 1 × 8 227, 231, , 255 trong hệ thống Cray Y-MP 816
  94. 94 Hệ Vi xử lý tiên tiến Hình III.15 mô tả kết nối 8 CPU với 256 băng nhớ trong siêu máy tính Cray Y-MP 816 sử dụng các bộ chuyển mạch ngang dọc liên kết và mạng nhiều tầng, các bộ chuyển mạch được dùng là loại 4x4, 8x8 và giải kênh (Demultiplexer) 1x8. Việc sử dụng mạng nhiều tầng nhờ một tầng chuyển mạch sẽ tăng tính vô hướng khi số CPU trong hệ thống là 64 hay 1024ỉơ các siêu máy tính trong tương lai. Hệ thống C-90 và các cụm siêu máy tính C90 C90 Hình III.16. 4 siêu máy (16 CPUs) (16 CPUs) tính Cray Y-MP C-90 được nối sử dụng chung bộ nhớ rắn SSD để tạo Solid-State Storage Device (SSD) nên một hệ thống siêu máy tính xử lý song song 64 đường ghép lỏng (64-way parallel C90 C90 system ) (16 CPUs) (16 CPUs) C-90 là hệ thống được tăng cường nhất về mức công nghệ trong họ siêu máy tính Y-MP. Đặc trưng kiến trúc của C-90/16256 được chỉ rõ trên bảng đặc tính ở phần trên của mục này. Hệ thống có 16 CPU có các tham số kỹ thuật hoàn toàn tương thích họ Y-MP với 256MWord (2GBytes) nhớ chia sẻ và 16GBytes bộ nhớ rắn làm bộ nhớ chính thứ cấp. Trong mỗi chu kỳ có 2 đường ống vector và 2 đơn vị chức năng có thể hoạt động song song tạo 4 vector kết quả trong mỗi nhịp. Đây là loại Vi xử lý 4-đường song song. C-90 sử dụng Hệ điều hành UNICOX, một HĐH được mở rộng từ hệ UNIX-V và Berkeley 4.3. C-90 có thể được
  95. 95 Nguyễn Trung Đồng Tel. 0983 410 866 kết nối với các máy chủ. Trình biên dịch vector hoá cho các chương trình nguồn viết bằng FORTRAN 77 hoặc C. Với song song 64 kênh kết nối và chu kỳ xung nhịp 4.2ns cho phép làm việc tới 16Gflops. Băng thông của hệ thống Vào/Ra là 13.6 GBytes/s. C-90 cho phép kết nối theo cụm để giải những bài toán lớn. Hình III.16 mô tả hệ thống được kết nối với nhóm SSD thông qua các kênh có vận tốc truyền 1000Mbytes/s. Mỗi cụm C-90 chỉ cho phép truy xuất bộ nhớ riêng của cụm. Tất nhiên, chúng được phép chia sẻ truy xuất SSD, nói cách khác, các tập dữ liệu lớn lưu giữ trong SSD có thể chia sẻ cho 4 cụm C-90. Các cụm cũng có thể liên lạc với nhau thông qua đơn vị chia sẻ mã (Shared Semaphore Unit). Chỉ có các thông tin về đồng bộ và tín hiệu điều khiển được truyền qua đơn vị chia sẻ mã. Có thể nói các cụm C-90 là một hệ thống kết nối lỏng (Loosely Coupled) và có thể tạo ra hệ xử lý song song 256 kênh. Nếu công việc tính toán được phân đoạn tốt và cân bằng đối với các cụm, hệ thống với tổ chức 4 cụm (Hình III.16) có thể thực hiện đến 64Gflops. Hệ thống Cray/MPP là hệ thống xử lý song song hàng loạt (Massively Parallel Processing) có khả năng thực hiện các bài toán song song rất cao. Các bộ xử lý tập thể chuẩn (Standard Off-the-shelf Processors) không đáp ứng được yêu cầu khi sử dụng trong hệ thống MPP. Yêu cầu cao về tính cân bằng của hệ thống, tốc độ các bộ xử lý, hệ thống Vào/Ra, truy xuất bộ nhớ phải cao, và khả năng đáp ứng phần mềm. Các bộ xử lý RISC đáp ứng được các yêu cầu trên. Hệ thống MPP đầu tiên của Cray được biết đến là T3D với kiến trúc vô hướng tổ hợp từ các bộ xử lý của DEC Alpha và mạng trễ nhỏ. Hệ thống T3D được thiết kế để làm