Các hệ Vi xử lý tiên tiến 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, … Dặc điểm

Tài liệu tương tự
Lkgjlfjq?etyuiiofjkfjlsfjkslddghdgertt

Nội dung chương 3 IT1110 Tin học đại cương Phần I: Tin học căn bản Chương 3: Hệ thống máy tính 3.1. Giới thiệu 3.2. Chức năng và các thành phần của má

Slide 1

Microsoft Word - Module 2. Cau truc cua may tinh dien tu.doc

Kyõ Thuaät Truyeàn Soá Lieäu

PowerPoint Presentation

Kiến trúc tập lệnh1

Chapter 5

PHẦN MỀM QUẢN LÝ KHÁCH SẠN

Computer Architecture

Microsoft Word - khoahochethong.docx

ĐỀ CƯƠNG ÔN THI 1. Khái niệm về điều khiển Logic khả trình Có rất nhiều định nghĩa về bộ điều khiển Logic khả trình (Programmable logic controller viế

Kiến trúc bộ nhớ máy vi tính Kiến trúc bộ nhớ máy vi tính Bởi: Ngô Như Khoa Các khái niệm chung Một trong các hoạt động cơ bản của máy tính là lưu trữ

Intro Parallel Computing 03

10 Vạn Câu Hỏi Vì Sao - Tin Học

quy phạm trang bị điện chương ii.2

Chương II - KIẾN TRÚC HỆ ĐIỀU HÀNH

Chöông 1 (tt.)

Chương 1. Các khái niệm cơ sở

9-KiemThu

CÔNG TƠ ĐIỆN XOAY CHIỀU KIỂU ĐIỆN TỬ 3 PHA VSE3T TÀI LIỆU KỸ THUẬT Dùng cho công tơ điện xoay chiều kiểu điện tử 3 pha VSE3T o 230/400V - 5(6)A (VSE3T

i LỜI CAM ĐOAN Tôi xin cam đoan tất cả các nội dung của luận văn này hoàn toàn được hình thành và phát triển từ quan điểm của chính cá nhân tôi, dưới

Cấu trúc và khối lượng kiến thức được xây dựng theo quyết định số 01/QĐ-ĐHQG-ĐH&SĐH ngày 05/01/2009 của Giám đốc ĐHQG-HCM

quy phạm trang bị điện, chương i.1

Điểm ĐỀ THI HK 1 ( ) Môn: Kỹ thuật số Thời gian: 110 phút (SINH VIÊN KHÔNG ĐƯỢC SỬ DỤNG TÀI LIỆU) Chữ kí giám thị HỌ TÊN:. MSSV: NHÓM:.. SINH

Bài 1:

03. CTK tin chi - CONG NGHE KY THUAT CO KHI.doc

Máy tính cá nhân Máy tính cá nhân Bởi: Wiki Pedia Định nghĩa Máy tính cá nhân (tiếng Anh: personal computer, viết tắt PC) là một máy điện toán siêu nh

mySQL - Part 1 - Installation

(Tái bản lần thứ hai)

Microsoft Word - Phan 1 - Kien thuc co so IFS-HANU 2011.doc

Chương 4 PHƯƠNG PHÁP DỰ BÁO TỶ GIÁ HỐI ĐOÁI ( Dựa theo tài liệu Đại Học Công NghiệpTPHCM và các tài liệu khác)

ĐHQG TPHCM ĐH Bách Khoa Khoa Đ-ĐT BM Điện Tử Điểm Đáp án của Đề kiểm tra giửa HK 2 NH: Môn: Vi xử lý Mã MH: Ngày thi: 20/03/2013 Thời

17. CTK tin chi - CONG NGHE KY THUAT O TO.doc

SM-N9208 SM-N920C SM-N920CD SM-N920I Sách hướng dẫn sử dụng Vietnamese. 08/2015. Rev.1.0

Chương trình dịch

HỘI THI TIN HỌC TRẺ TỈNH AN GIANG ĐỀ CHÍNH THỨC ĐỀ THI LÝ THUYẾT BẢNG A - KHỐI TIỂU HỌC Khóa ngày: Thời gian : 20 phút (không kể thời gian

BỘ GIÁO DỤC VÀ ĐÀO TẠO

Co s? d? li?u (Database)

TRƯỜNG ĐẠI HỌC NHA TRANG Khoa: Công nghệ thông tin Bộ môn: Mạng và Truyền thông CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc 1. Thôn

Hệ điều hành UNIX Hệ điều hành UNIX Bởi: Wiki Pedia UNIX Unix hay UNIX là một hệ điều hành máy tính viết vào những năm 1960 và 1970 do một số nhân viê

Hướng dẫn bắt đầu sử dụng mozabook mozabook 2 Cài đặt, bắt đầu, Bản đồ màn hình Mở ấn phẩm, Nhập PDF và PPT Dẫn đường, Cập nhật ấn phẩm Ấn phẩm mới Nộ

MỞ ĐẦU

Tìm hiểu ngôn ngữ lập trình Visual Basic Tìm hiểu ngôn ngữ lập trình Visual Basic Bởi: Khuyet Danh Tìm hiểu ngôn ngữ lập trình Visual Basic Tổng quan

TCVN 11391:2016 MỤC LỤC 1 Phạm vi áp dụng Tài liệu viện dẫn Thuật ngữ, định nghĩa và các từ viết tắt Thuật ngữ và định nghĩa...

Kiểm soát truy suất Kiểm soát truy suất Bởi: Khoa CNTT ĐHSP KT Hưng Yên Khái niệm Bảo mật thực chất là kiểm soát truy xuất [1]. Mục đích của bảo mật m

BỘ GIÁO DỤC VÀ ĐÀO TẠO

Microsoft Word - [vanbanphapluat.co] qcvn bct

XJ-UT311WN_XJ-UT351WN

LỜI CAM ĐOAN

Cấu trúc và hoạt động của máy tính cá nhân Biên tập bởi: Vien CNTT DHQG Hanoi

Thư viện đề thi thử lớn nhất Việt Nam SỞ GD&ĐT KONTUM KIỂM TRA HỌC KÌ I NĂM HỌC TRƯỜNG THPT DUY TÂN MÔN: TIN HỌC - LỚP: 10 Thời gian: 45 phú

CÁC PHƯƠNG PHÁP GIẢNG DẠY TÍCH CỰC

Chuyển đổi tương tự - số photonic bằng cách dùng buồng cộng hưởng Fabry- Perot phi tuyến Chuyển đổi tương tự - số song song về mặt không gian được đề

HỆ THỐNG THÔNG BÁO KHẨN CẤP DÒNG VM-3000 CPD No CPD CPD No CPD-083. Integrated Voice Evacuation System VM-3000 series Cấu hình Tất c

Modbus RTU - Modbus TCP/IP Converter

LỜI CẢM ƠN

SM-G925F Sách hướng dẫn sử dụng Vietnamese. 04/2015. Rev.1.0

Bo mạch đồ họa Bo mạch đồ họa Bởi: Wiki Pedia Bo mạch đồ họa (graphics adapter), card màn hình (graphics card), thiết bị đồ họa, card màn hình, đều là

Microsoft Word - Tom tat Luan van - Nguyen Thi Ngoc Quynh.doc

Những khái niệm cơ bản của hệ điều hành mạng Windows Những khái niệm cơ bản của hệ điều hành mạng Windows Bởi: unknown Giới thiệu tổng quan về Windows

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

Mục Lục Tiền ảo thuận nhân vì mục đích nhân văn đầu tiên-blood... 2 Bối cảnh... 2 Tác giả... 2 Bloodland... 2 Công nghệ đặc trưng của Bloodland... 3 G

Slide 1

PowerPoint Template

APPROACH S60 Hướng dẫn sử dụng

Slide 1

Microsoft Word - Các QĒ 214 vÀ cùng sự chớ Ăạo của TT - ngÀy 9-7 (1) (2)

Microsoft Word - [vanbanphapluat.co] tcvn

Microsoft Word - Day_lop_4_P1.doc

Số tín chỉ Lý thuyết Chữa bài tập /Thảo luận Thí nghiệm /Thực hành (tiết) BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Microsoft Word - [vanbanphapluat.co] qcvn bgtvt

ID

Moduel 7:Trinh chiếu bài thuyết trình 163 Moduel 7: rình chiếu bài thuyết trình 7.1. rình chiếu bài thuyết trình Thiết lập các tùy ch n cho chế độ Sli

UART0

Solutions for Controlled Environment Agriculture Bộ điều khiển nhà màng thông minh Ridder HortiMaX-Go! VN ridder.com

Solutions for Controlled Environment Agriculture Bộ điều khiển nhà màng thông minh Ridder HortiMaX-Go! VN ridder.com

Microsoft Word - DE TAI KIEN TRUC MANG 2.doc

Nh?ng cách cha?y Android trên máy tính

Xu hướng phát triển của các hệ thống nhúng Xu hướng phát triển của các hệ thống nhúng Bởi: Khoa CNTT ĐHSP KT Hưng Yên Xu hướng phát triển của các hệ t

Chương trình dịch

Việc hôm nay (cứ) chớ để ngày mai

2018 Nhận xét, phân tích, góp ý cho Chương trình môn Tin học trong Chương trình Giáo dục Phổ thông mới

Nguồn Động lực BÁO CÁO CỦA Sample Report Nguồn Động lực Bản đánh giá Phong cách động lực Báo cáo của: Sample Report Ngày: 08/06/2017 Bản quyền Copyrig

(untitled)

Specification Eng-Viet-C10K.doc

Hợp đồng Chính

Chương trình dịch

Microsoft Word - IP Law 2005 (Vietnamese).doc

1 BÀI 1: NHỮNG VẤN ĐỀ CHUNG VỀ THỰC TẬP SƯ PHẠM Mục tiêu của bài: Sau khi học xong bài này, người học có khả năng: - Xác định đúng mục đích, nhiệm vụ,

MỘT SỐ LƯU Ý KHI DẠY CÁC TIẾT ÔN TẬP CHƯƠNG Môn Tin học cung cấp cho học sinh những kiến thức phổ thông về ngành khoa học tin học, hình thành và phát

Ch­ng I

Microsoft Word - Ban tom tat.doc

TRƯỜNG ĐẠI HỌC SƯ PHẠM TP. HỒ CHÍ MINH KHOA HÓA HỌC KHÓA LUẬN TỐT NGHIỆP Tên đề tài: SỬ DỤNG MOODLE THIẾT KẾ WEBSITE HỖ TRỢ VIỆC TỰ HỌC CHƯƠNG HIDROCA

Đề cương chương trình đại học

Microsoft Word - TaiLieuTNKTD1PhanPLC-05[1].2008.doc

Khi đọc qua tài liệu này, nếu phát hiện sai sót hoặc nội dung kém chất lượng xin hãy thông báo để chúng tôi sửa chữa hoặc thay thế bằng một tài liệu c

Trước khi sử dụng Hướng dẫn cơ bản Hướng dẫn chuyên sâu Thông tin cơ bản về máy ảnh Chế độ tự động / Chế độ bán tự động Hướng dẫn sử dụng máy ảnh Chế

Thực hành trên Rose Thực hành trên Rose Bởi: Đoàn Văn Ban Xây dựng biểu đồ thành phần + Tạo lập mới hoặc mở một biểu đồ thành phần đã được tạo lập trư

Bản ghi:

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. A-BUS 32n BIU PUIQ (Prefetch Unit & Instruction Queue) DU (Decoding Unit) D-BUS 32+j C-BUS (BUS Interface Unit) ICACHE (Instruction cache) DCACHE (Data Cache) BTC (Target Control Cache Unit) CU (Control Unit) MMU (Memory Management Unit) SFU (Special Function Unit) IU (Integer Unit) IRF (Integer Register File) IOU (Integer Operation Unit) BUS nội (Internal BUS) 32n FPU (Floating Point Unit) FPRF (Floating Point Register File) FPOU (Floating Point Operation Unit) Hình I.1. Sơ đồ khối bộ Vi xử lý công nghệ tiên tiến

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: nhớ biệt 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ộ SFU (Special Function Unit): Đơn vị chức năng đặc 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 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 (2 32 ), 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 Hệ Vi xử lý tiên tiến 32k Data BUS 32+j Address BUS Control BUS Data Interface Address Interface Control Interface PUIQ Prefetch Unit and Instruction Queue ICACHE 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 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. >60GB Dung lượng >1kB >64kB >512kB >1GB >1kB CPU Tập các thanh ghi Bộ nhớ Cache L1 Bộ nhớ Cache L2 Bộ nhớ chính Bộ nhớ ngoài (các ổ đĩa) Tốc độ truy xuất < 1ns < 1-2ns < < 1-2ns < 4ns Hình I.3. Phân cấp bộ nhớ, dung lượng và tốc độ truy xuất < 8ns 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 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. Hình I.4. Kết nối CACHE trong Vi xử lý CACHE thứ cấp L2 Logic điều khiển cache thứ cấp L2 ICACHE IC IU BUS bên trong (Internal BUS) 32n 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 đường ống 1 (Pipelined Operation Unit 1) Đơn vị thao tác đường ống 2 (Pipelined Operation Unit 2) Đơn vị thao tác đường ống i (Pipelined Operation Unit i)

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 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ã (Decoded Instruction Dispatcher) BUS bên trong 32n ADD/ SUB1 ADD/ SUBi MUL/ DIV1 MUL/ DIVk IRF Nx32 hoặc Nx64 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 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ừ BIU Từ đơn vị tiền đọc Đến ICACHE BUS bên trong (Internal BUS) BUS bên trong (Internal BUS) 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 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 b 1, b 2,.., b N. Đ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 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à T add thì tổng thời gian là xấp xỉ NT add. Giả sử có một máy tính có n bộ xử lý P 1, P 2,, P n 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. P 1 P 2 P 3 P N 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ý P i chuyển kết quả phép cộng của nó cho bộ xử lý P i+1, Kết quả của bộ xử lý P i+1 chuyển sang cho bộ xử lý P i+2, v.v Như vậy, kết quả tống N số hạng sẽ nằm ở bộ xử lý P n. Đ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 Hình I.8. Mảng tuyến tính 2 chiều gồm n bộ Vi xử lý

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: a) T L thời gian tính cục bộ để tính k = n N phép cộng N đồng thời trên n bộ xử lý. T L = K 1 trong đó K 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) T C là thời gian truyền thông để gửi dữ liệu trung gian qua n 1 phép cộng. T C = K 2 (n-1) trong đó K 2 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, K 2» K 1 và nếu n càng lớn thì T C càng lớn. Rõ ràng nếu n = 1 thì T(n) = K 1 N. 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 K 1 N n

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 I/O IS DS CU PU MU a) Kiến trúc 1 processor SISD Chương trình từ bộ nhớ chính IS CU IS PE1 PEn DS DS LM1 LMn DS DS b) Kiến trúc multiprocessor SIMD với bộ nhớ phân tán Dữ liệu được lấy từ bộ nhớ chính

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 I/O IS CU 1 PU 1 DS Bộ nhớ chia sẻ I/O CU n IS PU n DS IS c) Kiến trúc MIMD với bộ nhớ chia sẻ IS IS IS CU 1 CU 2 CU n Bộ nhớ (chương trình & dữ liệu) DS IS IS PU 1 DS PU 2 DS IS PU n 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 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 Nguyễn Trung Đồng Tel. 0983 410 866 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 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 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ý P 1 P 2 P n Mạng kết nối hệ thống (BUS, thiết bị chuyển mạch, mạng nhiều tầng) IO SM 1 Bộ nhớ chia sẻ SM m 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 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ụ. LM 1 P 1 LM 2 P 2 Mạng kết nối LM n P n 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 P CSM P CSM Cluster 1 Cluster N Hình I.11b. Mô hình liên kết phân cấp

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 Hình I.12. Mô hình hệ đa xử lý COMA P D: Directory (đường dẫn) C: Cache P: Processor

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 P M P M P M P M P Mạng liên kết chuyển thông điệp (Message-passing interconnection Network) dạng lưới, vòng, lập thể M P 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 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 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 Nguyễn Trung Đồng Tel. 0983 410 866 Siêu máy tính SIMD Scalar Processor Các đường Các ống chức đường năng ống có chứscalarc hướng Hình I.14. Kiến trúc siêu máy tính vector Scalar Instructions Đơn vị điều khiển có hướng Vector Instructions Đơn vị Đơn điều vị khiển điều khiển vector vector Vector Processor Control Scalar Data Bộ nhớ phụ Bộ nhớ chính Vector Data Máy tính chủ Tập Tập thanh Tha ghi nh vector Ghi Đường ống chức năng vector Đường ống chức năng vector 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 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 Đồng bộ P 2 Bộ nhớ chia sẻ chung P n Hình I.16. Mô hình máy tính PRAM

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 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 Memory Register File Loadl store Unit FP Add Unit Integer ALU Branch 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 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 S 1. Kết quả xử lý thu được phải trải qua các tầng S i, đến tầng S i+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 S k. 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 S i sẵn sàng truyền, S i gửi tín hiệu sẵn sàng (ready)

28 Hệ Vi xử lý tiên tiến cho tầng S i+1. Sau khi tầng S i+1 nhận xong dữ liệu từ S i thì S i+1 gửi tín hiệu nhận biết (acknowledge) cho tầng S i. Đườ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. Input Ready Data S 1 S 2 S k Ack Output 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 1 S 2 S 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 Nguyễn Trung Đồng Tel. 0983 410 866 t 1 2 3 4 S i Tầng thứ i S 1 L Chốt S 2 τ Chu kỳ xung nhịp S 3 τ m Trễ tầng cực đại S 4 d Trễ chốt c)bảng dự phòng đường ống đồng bộ 4 tầng Output X Input S 1 S 2 S 3 Output Y Hình II.2. Một đường ống 3 tầng 1 2 3 4 5 6 7 8 S1 X X X S2 X X S3 X X X Bảng dự phòng cho chức năng X 1 2 3 4 5 6 S 1 Y Y S 2 Y S 3 Y Y Y Bảng dự phòng 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 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 giankhô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 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ớ S 1

32 Hệ Vi xử lý tiên tiến Execute Stage Multiplier Write Back Stage Fetch Stage Decode Stage m 1 m 2 m 3 From ICACHE t 1 d 1 Adder a 1 a 2 Logic Logic S1 t 2 d 2 e 1 t 3 d 3 Load S2 Lookahead Window e 2 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à S 2 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 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 Instr 1 Instr cache Reg file ALU Data cache Reg file Time dimension Instr 2 Instr cache Reg file ALU Data cache Reg file Instr 3 Instr cache Reg file ALU Data cache Reg file Instr 4 Instr cache Reg file ALU Data cache Reg file Instr 5 Task dimension Instr cache Reg file ALU Data cache Reg file

Instructions 34 Hệ Vi xử lý tiên tiến 1 2 3 4 5 6 7 8 9 Pipe1, I 1 f 1 d 1 e 2 s 1 Pipe2, I 2 f 2 d 2 a 1 a 2 s 2 Time (Clock Cycle) I 3 f 1 d 1 a 1 a 2 s 1 I 4 f 2 d 2 m 1 m 2 m 3 s2 I 5 f 1 d 1 e 1 s 1 I 6 f 2 d 2 m 1 m 2 m 3 s 2 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, I 1 f1 d 1 e 2 s 1 Pipe2, I 2 f 2 d 2 a 1 a 2 s 2 I 3 f 1 d 1 a 1 a 2 s 1 I 4 f 2 d 2 m 1 m 2 m 3 s 2 I 5 f 1 d 1 e 1 s1 I6 f 2 d 2 m 1 m 2 m 3 s 2 Pipe 1 I 1 I 5 I 3 Pipe2 I 2 I 4 I 6 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ỳ

35 Nguyễn Trung Đồng Tel. 0983 410 866 1 2 3 4 5 6 7 Pipe1, I 3 f 1 d 1 a 1 a 2 s 1 Pipe2, I 4 f 2 d 2 m 1 m 2 m 3 s 2 I5 f 3 d 3 e 1 s 2 (Pipe1) Lookahead Window Pipe1 I6 f 1 d 1 m 1 m 2 m 3 s 2 Pipe2 I1 f 2 d 2 e 2 s 2 Pipe2 I 2 f 1 d 1 a 1 a 2 s 1 Thứ tự xuất hiện lệnh I 3 I 6 Pipe1 I 5 I 3 I 2 Pipe1 I 4 I 1 I 2 Pipe2 I 1 I 4 I 6 Pipe2 I 5 Lookahead Thứ tự hoàn thành thực hiện lệnh 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 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) S ( m,1) T( m,1) N k 1 m( N k 1) N 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) T(1, n) N 1 k nk N 1 n Và với N thì S(1,n) n. 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 Nguyễn Trung Đồng Tel. 0983 410 866 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) T( m, n) N m 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 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 và cache Các mô đun chức năng Các mô đun xử lý, các mô đun nhớ và thiết bị Vào/Ra khác Mảng các bộ nhớ Các mô đun chức năng Tạo xung nhịp, tạo chuỗi t/h điều khiển, nguồn nuôi Logic giao diện Logic giao diện Logic 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 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

Thời gian 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. Master 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 5. Truyền các tín hiệu dữ liệu 8. Nhận thông báo đã nhận dữ liệu, rút dữ liệu khỏi BUS 11. Gửi yêu cầu sử dụng BUS mới BUS Slave 4. Chọn Slave khi các tín hiệu đã ổn định 6. Nhận dữ liệu đã ổn định 7. Thông báo đã nhận dữ liệu 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 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 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. Chủ Tớ Dâydữ liệu DL sẵn sàng NhậnDL Dữ liệu Dữ liệu Dữ liệu Chu kỳ 1 Chu kỳ 2 Chu kỳ 3 Hình II.8. Định thời đồng bộ xung nhịp cố định Chủ Tớ Dây dữ liệu DL sẵn sàng Nhận DL Dữ liệu Dữ liệu Dữ liệu 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 Hệ Vi xử lý tiên tiến BUS Grant Trọng tài BUS trung tâm Master 1 Master 2 Master n BUS busy BUS Request Data Transfer BUS BUS Request Yêu cầu BUS BUS Grant BUS busy Cấp BUS BUS bận 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 Nguyễn Trung Đồng Tel. 0983 410 866 BR 1 Master 1 Master 2 Master N Trọng tài BUS trung tâm BR 2 BG 1 BG 2 BR N BG N BUS Busy Data Transfer BUS DTB BR i : Yêu cầu sử dụng BUS từ chủ thứ i, BG i : 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 Master 1 Master 2 Master N BG AN BG AN BG AN Arbiter 1 Arbiter 2 Arbiter N BB BB BB 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 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 Main C C C Interconnection (BUS, crosbar, MIN)

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ý. CPU VA D or I MMU PA D or I Cache Main Memory VA: Địa chỉ ảo PA: Địa chỉ vật lý 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 D or I MMU PA Cache dữ liệu mức 1 PA D Cache dữ liệu mức 2 PA D Bộ nhớ chính

32 64 I-cache 46 Hệ Vi xử lý tiên tiến VA D PA CPU I Cache lệnh I 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. CPU VA I or D MMU Cache PA I or D Bộ nhớ chính Cache đơn truy xuất bằng địa chỉ ảo VA: Địa chỉ ảo PA: Địa chỉ vật lý I : Lệnh D: Dữ liệu I or D: Lệnh hoặc Dữ liệu

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 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à B j với j = 0, 1, 2,,n. Có nhiều cách ánh xạ (mapping) từ tập B j sang tập Giả sử rằng n >> m, n = 2 s và m = 2 r, mỗi khối hay khung khối có b từ, b = 2 w, như vậy cache có m.b = 2 r+w từ. Bộ nhớ chính có n.b = 2 s+w từ và được quản lý nhờ s + w bit địa chỉ. Khi khung khối được chia thành v = 2 t tập, sẽ có k = m/v = 2 r-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 2 s-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 B j được truyền vào khung khối B: i B j B i nếu i = j (modulo m). B i

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 B j. Á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ớ Tag Block Word s-r r w s+w Tag Cache Data Data Data Data B 0 Bộ nhớ chính W0 W1 W2 W3 B 0 s-r So sánh Cache hit w Data Data Data Data B j s w W4 j W(4 j+1) W(4 j+2) W(4 j+3) B j 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 (modulom) với m = 2 r. 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ớ