BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI HỒ VĂN PHI TỐI ƯU HÓA VÀ ĐÁNH GIÁ HIỆU NĂNG CỦA TỔ CHỨC CACHE TRONG HỆ THỐNG VI XỬ LÝ THẾ HỆ SAU

LUẬN ÁN TIẾN SĨ KỸ THUẬT VIỄN THÔNG

Hà Nội - 2014

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI HỒ VĂN PHI TỐI ƯU HÓA VÀ ĐÁNH GIÁ HIỆU NĂNG CỦA TỔ CHỨC CACHE TRONG HỆ THỐNG VI XỬ LÝ THẾ HỆ SAU

Chuyên ngành: Kỹ thuật Viễn thông Mã số: 62520208

LUẬN ÁN TIẾN SĨ KỸ THUẬT VIỄN THÔNG

NGƯỜI HƯỚNG DẪN KHOA HỌC:

1. TS. HỒ KHÁNH LÂM

2. TS. NGUYỄN VIẾT NGUYÊN

Hà Nội - 2014

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình của riêng tôi. Tất cả các ấn phẩm được

công bố chung với các cán bộ hướng dẫn khoa học và các đồng nghiệp đã được sự

đồng ý của các tác giả trước khi đưa vào Luận án. Các kết quả trong Luận án là

trung thực, chưa từng được công bố trong bất kỳ công trình nào.

Tác giả Luận án

Hồ Văn Phi

LỜI CẢM ƠN

Đầu tiên, tôi xin bày tỏ lời cảm ơn chân thành và sự kính trọng đến các Thầy

giáo TS. Hồ Khánh Lâm và TS. Nguyễn Viết Nguyên, các Thầy đã nhận tôi làm

nghiên cứu sinh và hướng dẫn tôi rất nhiệt tình trong suốt thời gian học tập, nghiên

cứu và thực hiện bản Luận án này. Các Thầy đã tận tình chỉ bảo và giúp đỡ tôi cả về

lĩnh vực khoa học cũng như trong cuộc sống. Tôi vô cùng biết ơn sự kiên trì của các

Thầy, các Thầy đã dành nhiều thời gian để đọc cẩn thận và góp nhiều ý kiến quý

báu cho bản thảo của Luận án. Những kiến thức mà tôi nhận được từ các Thầy

không chỉ là bản Luận án mà trên hết là cách nhìn nhận, đánh giá cũng như phương

thức giải quyết vấn đề một cách toàn diện và khoa học.

Tôi xin trân trọng cảm ơn Lãnh đạo Trường Đại Học Bách khoa Hà Nội, Viện

Sau Đại học, Viện Điện tử - Viễn thông và Bộ môn Điện tử & Kỹ thuật máy tính đã

tạo điều kiện thuận lợi cho tôi được học tập và làm nghiên cứu sinh, luôn quan tâm

động viên tôi trong suốt quá trình học tập và nghiên cứu.

Tôi xin chân thành cảm ơn sự giúp đỡ tận tình của các GS, PGS, TS, các

Thầy, Cô giáo trong Bộ môn Điện Tử & Kỹ thuật máy tính, Viện Điện tử - Viễn

thông, các Nhà khoa học trong và ngoài Trường Đại học Bách khoa Hà Nội.

Tôi xin trân trọng cảm ơn Lãnh đạo Trường Đại học Quy Nhơn và Khoa Kỹ

thuật & Công nghệ - Trường Đại học Quy Nhơn, cũng như bạn bè đồng nghiệp đã

ủng hộ và tạo mọi điều kiện thuận lợi giúp đỡ tôi trong suốt thời gian học tập,

nghiên cứu và hoàn thành Luận án.

Cuối cùng, tôi muốn dành lời cảm ơn đến những người thân yêu nhất của tôi.

Bản Luận án này là món quà quý giá tôi xin được kính tặng cho cha mẹ, vợ và các

con thân yêu của tôi.

Hà Nội, tháng 06 năm 2014

Tác giả Luận án

Hồ Văn Phi

MỤC LỤC

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

DANH MỤC CÁC BẢNG

DANH MỤC CÁC HÌNH, ẢNH VÀ ĐỒ THỊ

MỞ ĐẦU...... ................................................................................................. 1

1. Tính cấp thiết của luận án ..................................................................... 1

2. Mục đích nghiên cứu của luận án .......................................................... 4

3. Đối tượng và phạm vi nghiên cứu của luận án ..................................... 4

4. Phương pháp nghiên cứu của luận án ................................................... 4

5. Ý nghĩa khoa học và thực tiễn của luận án ........................................... 5

6. Cấu trúc của luận án .............................................................................. 5

Chương 1. TỔNG QUAN VỀ KIẾN TRÚC CHIP ĐA XỬ LÝ, ĐA

LUỒNG ....................................................................................... 6

1.1. Giới thiệu ............................................................................................. 6

1.2. Kiến trúc của chip đa xử lý, đa luồng ................................................ 6

1.2.1. Kiến trúc chung của chip đa xử lý, đa luồng ....................................6

1.2.2. Kiến trúc chip đa xử lý, đa luồng đồng thời ................................... 11

1.2.3. Mạng liên kết trên chip ...................................................................... 12

1.2.4. Phân cấp hệ thống nhớ ....................................................................... 16

1.3. Kết luận chương 1 ............................................................................. 18

Chương 2. NGHIÊN CỨU TỔ CHỨC CACHE, CHÍNH SÁCH THAY THẾ CACHE TRONG KIẾN TRÚC CHIP ĐA XỬ LÝ, ĐA LUỒNG ....................................................................... 19

2.1. Tổ chức cache trong kiến trúc chip đa xử lý, đa luồng ................... 19

2.1.1. Cache và các nguyên tắc làm việc của cache .................................. 19

2.1.1.1. Vị trí tạm thời ................................................................................... 20

2.1.1.2. Vị trí không gian ............................................................................... 20

2.1.1.3. Vị trí tuần tự ..................................................................................... 20

2.1.2. Các thành phần của cache ................................................................. 20

2.1.3. Các tổ chức cache ................................................................................ 21

2.1.3.1. Cache liên kết đầy đủ ........................................................................ 22

2.1.3.2. Cache sắp xếp trực tiếp..................................................................... 24

2.2. Các đặc tính hiệu năng của cache .................................................... 28

2.1.3.3. Cache liên kết tập hợp ...................................................................... 26

2.2.1. Các tỷ số trúng cache và trượt cache ............................................... 29

2.2.1.1. Trúng cache ...................................................................................... 29

2.2.1.2. Trượt cache ...................................................................................... 29

2.2.1.3. Tỷ số trúng cache, trượt cache và trượt penalty ................................ 29

2.2.1.4. Bus bộ nhớ, kích thước từ nhớ, kích thước khối và trượt penalty ....... 31

2.2.1.5. Trượt cache cục bộ và toàn cục ........................................................ 31

2.2.1.7. Ảnh hưởng của tổ chức cache đến trượt penalty ............................... 33

2.2.1.8. Kích thước khối cache và tỷ số trượt ................................................. 34

2.2.1.9. Các loại trượt cache ......................................................................... 35

2.2.1.10. Tổ chức cache ảnh hưởng đến tốc độ của CPU ............................... 36

2.2.2. Các giải pháp tăng hiệu năng của cache ......................................... 38

2.3. Các chính sách thay thế dòng cache ..................................................... 38

2.3.1. Chính sách thay thế cache LRU ....................................................... 39

2.3.2. Chính sách thay thế cache LFU ........................................................ 39

2.3.3. Chính sách thay thế cache FIFO ...................................................... 39

2.3.4. Chính sách thay thế cache Random ................................................. 39

2.3.5. Chính sách thay thế cache NRU ....................................................... 40

2.3.6. Chính sách thay thế cache SRRIP.................................................... 40

2.3.7. Chính sách thay thế cache DRRIP ................................................... 42

2.4. Ghi và đọc cache ................................................................................ 42

2.4.1. Ghi cache .............................................................................................. 42

2.4.1.1. Ghi thông qua ................................................................................... 43

2.4.1.2. Ghi trở lại ......................................................................................... 44

2.4.2. Đọc cache .............................................................................................. 46

2.4.2.1. Đọc bên cạnh .................................................................................... 46

2.5.2.2. Đọc thông suốt .................................................................................. 47

2.5. Cache chia sẻ thông minh ................................................................. 48

2.5.1. Tổ chức phân cấp cache trong các chip đa xử lý ........................... 48

2.5.2. Cache chia sẻ thông minh .................................................................. 49

2.6. Tính nhất quán cache trong các chip đa xử lý, đa luồng ................ 50

2.6.1. Thế nào là nhất quán cache ............................................................... 50

2.6.2. Các giao thức nhất quán cache ......................................................... 52

2.7. Kết luận chương 2 ............................................................................. 52

Chương 3. PHÂN TÍCH ĐÁNH GIÁ HIỆU NĂNG CỦA TỔ CHỨC CACHE TRONG KIẾN TRÚC CHIP ĐA XỬ LÝ, ĐA LUỒNG ..................................................................................... 53

3.1. Cơ sở lý thuyết để phân tích đánh giá hiệu năng của tổ chức

cache .................................................................................................. 53

3.1.1. Kiến trúc chip đa xử lý, đa luồng là mạng xếp hàng đóng đa

lớp có dạng tích các xác suất (MCPFQN) ....................................... 53

3.1.1.1. Khái quát mạng xếp hàng đóng ......................................................... 53

3.1.1.2. Khái quát mạng xếp hàng đóng có dạng tích các xác suất ................ 56

3.1.1.3. Kiến trúc chip đa xử lý, đa luồng là mạng xếp hàng đóng đa lớp

có dạng tích các xác suất (MCPFQN)............................................... 58

3.1.2. Thuật toán phân tích giá trị trung bình (MVA) đánh giá hiệu

năng cho các mạng xếp hàng đóng có dạng tích các xác suất ...... 59

3.1.2.1. Mạng xếp hàng đóng đơn lớp có dạng tích các xác suất ................... 59

3.1.2.2. Mạng xếp hàng đóng đa lớp có dạng tích các xác suất ..................... 61

3.2. Mô hình tổ chức cache trong kiến trúc chip đa xử lý, đa luồng...... 62

3.2.1. Khái quát .............................................................................................. 62

3.2.2. Mô hình tổ chức cache trong kiến trúc chip đa xử lý, đa

luồng...................................................................................................... 63

3.3. Phân tích đánh giá hiệu năng của tổ chức cache trong kiến trúc

chip đa xử lý, đa luồng ..................................................................... 64

3.3.1. Mô hình thực hiện phân tích hiệu năng của kiến trúc chip đa

xử lý, đa luồng ..................................................................................... 64

3.3.1.1. Mô hình tổng quát............................................................................. 64

3.3.1.2. Mô hình rút gọn ................................................................................ 66

3.3.2. Kết quả mô phỏng và đánh giá hiệu năng cho kiến trúc CMP

đa luồng ................................................................................................ 72

3.3.2.1. Kết quả mô phỏng cho các kiến trúc CMP đa luồng.......................... 72

3.3.2.2. Đánh giá hiệu năng các chip đa xử lý, đa luồng ............................... 83

3.4. Kết luận chương 3 ............................................................................. 84

Chương 4. GIẢI PHÁP TỐI ƯU HÓA HIỆU NĂNG CỦA TỔ CHỨC CACHE TRONG KIẾN TRÚC CHIP ĐA XỬ LÝ, ĐA LUỒNG ..................................................................................... 85

4.1. Kiến trúc cụm lõi cho chip đa xử lý, đa luồng ................................. 85

4.1.1. Khái quát .............................................................................................. 85

4.1.2. Mô hình MCPFQN cho kiến trúc cụm lõi ....................................... 86

4.1.2.1. Mô hình MCPFQN tổng quát của kiến trúc cụm lõi .......................... 86

4.1.2.2. Mô hình MCPFQN rút gọn của kiến trúc cụm lõi ............................. 88

4.1.3. Kết quả mô phỏng và đánh giá hiệu năng cho kiến trúc cụm

lõi ........................................................................................................... 90

4.1.3.1. Kết quả mô phỏng cho kiến trúc cụm lõi ........................................... 90

4.1.3.2. Đánh giá hiệu năng cho kiến trúc cụm lõi ......................................... 93

4.2. Lựa chọn cấu hình mạng liên kết trên chip ..................................... 94

4.2.1. Khái quát .............................................................................................. 94

4.2.2. Đề xuất công thức tính trễ truyền thông trung bình cho mạng

liên kết trên chip ................................................................................. 94

4.2.3. Lựa chọn cấu hình mạng liên kết trên chip ................................. 99

4.2.3.1. Kết quả mô phỏng ............................................................................. 99

4.2.3.2. Đánh giá kết quả ............................................................................ 104

4.3. Kết luận chương 4 ........................................................................... 104

KẾT LUẬN ............................................................................................... 106

TÀI LIỆU THAM KHẢO ........................................................................ 107

DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN .... 115

PHỤ LỤC..... ............................................................................................. 116

Phụ lục 1. Kịch bản mô phỏng đánh giá hiệu năng của tổ chức cache trong kiến trúc CMP đa luồng có 2 cấp cache và 3 cấp cache ...................................................................................... 116

Phụ lục 2. Kịch bản mô phỏng đánh giá hiệu năng của tổ chức cache

trong kiến trúc cụm lõi 3 cấp cache ..................................... 130

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

Ký hiệu Tên tiếng Anh Tên tiếng Việt

A

ACM Association for Computing Hiệp hội kỹ thuật tính toán Hoa

Machinery Kỳ

ALU Arithmetic Logic Unit Đơn vị số học và logic

AMAT Average Memory Access Time Thời gian trung bình truy nhập

bộ nhớ

AMC Asymmetric Multi-core Chip Chip đa lõi bất đối xứng

ANSI American National Standards Viện tiêu chuẩn quốc gia Hoa

Institute Kỳ

ASCII American Standards Code for Chuẩn mã trao đổi thông tin

Information Interchange Hoa Kỳ

ASIC Application-Specific Integrate Mạch tích hợp ứng dụng

Circuit chuyên biệt

B

BCE Base Core Equivalents Tương đương lõi cơ sở

BIP Bimodal Insertion Policy Chính sách chèn hai phương

thức

BRRIP Bimodal Re-Reference Interval Hai phương thức dự báo

Prediction (Bimodal RRIP) khoảng tham chiếu lại

C

CAD Computer Aided Design Thiết kế bằng máy tính

ccNUMA cache-coherent Non-Uniform Truy cập bộ nhớ không đồng

Memory Access nhất tương quan cache

CD Compact Disk Đĩa compact

CISC Complex Instruction Set Computer Máy tính có tập lệnh phức

CMP Chip Multi-Processors Chip đa xử lý

Cycles per Instruction Chu kỳ cho một lệnh CPI

Central Processing Unit Đơn vị xử lý trung tâm CPU

CSM Centralised Shared Memory Bộ nhớ chia sẻ tập trung

CTMC Continuous-Time Markov Chain Chuỗi Markov có thời gian liên

tục

D

DIMM Dual In-line Memory Modules Module bộ nhớ hai hàng chân

DMA Direct Memory Access Truy cập bộ nhớ trực tiếp

DMC Dynamic Multi-core Chip Chip đa lõi linh hoạt

DRAM Dynamic Random-Access Memory RAM động

DRRIP Dynamic Re-Reference Interval Dự đoán khoảng tham chiếu lại

Prediction (Dynamic RRIP) động

DSM Distributed Shared Memory Bộ nhớ chia sẻ phân tán

DSR Dynamic Spill Receive Nhận dữ liệu tràn tự động

DTMC Discrete-Time Markov Chain Chuỗi Markov có thời gian rời

rạc

DVD Digital Versatile Disk Đĩa kỹ thuật số đa năng

F

FCFS First Come, First Served Đến trước được phục vụ trước

FIFO First In First Out Vào trước ra trước

FPGA Field Programmable Gate Array Mảng cổng lập trình được dạng

trường

G

GALS Globally Asynchronous, Locally Dị bộ toàn cục, đồng bộ cục bộ

Synchronous

H

High-Level Language Ngôn ngữ cấp cao HLL

High Performance Computing Tính toán hiệu năng cao HPC

I

Instruction Address Register Thanh ghi địa chỉ lệnh IAR

Integrated Circuit Mạch tích hợp IC

IEEE Institute of Electrical and Electronics Viện kỹ sư điện và điện tử

Engineers

Instruction Level Parallelism Song song mức lệnh ILP

Integrated Memory Controller Bộ điều khiển bộ nhớ tích hợp IMC

Input/Output Vào/ra I/O

Internet Protocol Giao thức Internet IP

Instruction Register Thanh ghi lệnh IR

J

JMT Java Modelling Tools Công cụ mô phỏng Java

L

Local Area Network Mạng cục bộ LAN

Least Frequently Used Tần suất sử dụng ít nhất LFU

Last Level Cache Cache cấp cuối LLC

Least Recently Used Sử dụng gần đây ít nhất LRU

Large-Scale Integration Tích hợp cỡ lớn LSI

M

MAPI Memory Accesses clock cycles Per Số chu kỳ đồng hồ truy cập bộ

Instruction nhớ/lệnh

MAR Memory Address Register Thanh ghi địa chỉ bộ nhớ

MAT Memory Access Time Thời gian truy nhập bộ nhớ

MCPFQN Multiclass Closed Product-Form Mạng xếp hàng đóng đa lớp có

Queuing Network dạng tích các xác suất

MESI Modified, Exclusive, Shared or Sửa đổi, loại trừ, chia sẻ hoặc

Invalid (Cache-Protocol) vô hiệu (giao thức cache)

MESIF Modified, Exclusive, Shared, Sửa đổi, loại trừ, chia sẻ hoặc

Invalid, Forward vô hiệu; chuyển tiếp

MIMD Multiple Instruction Multiple Data Nhiều lệnh nhiều dữ liệu

MISD Multiple Instruction Single Data Nhiều lệnh một dữ liệu

MMU Memory Management Unit Đơn vị quản lý bộ nhớ

MRU Most Recently Used Sử dụng gần đây nhiều nhất

MSI Medium-Scale Integration Tích hợp cỡ trung bình

MSPI Memory Stalls clock cycles Per Số chu kỳ đồng hồ trì hoãn bộ

Instruction nhớ/lệnh

MSPMA Memory Stalls clock cycles Per Số chu kỳ đồng hồ trì hoãn bộ

Memory Access nhớ/truy cập bộ nhớ

MVA Mean Value Analysis Phân tích giá trị trung bình

N

NoC Network on Chip Mạng trên chip

NRU Not Recently Used Không sử dụng gần đây

NUCA Non-Uniform Cache Architecture Kiến trúc cache không đồng

nhất

NUMA Non-Uniform Memory Access Truy nhập bộ nhớ không đều

O

OCIN On-Chip Interconnection Network Mạng liên kết trên chip

Operating System Hệ điều hành OS

P

Program Counter Bộ đếm chương trình PC

Process Control Block Khối điều khiển quá trình PCB

Programmable Logic Device Thiết bị logic lập trình được PLD

PMF Probability mass function Hàm khối lượng xác suất

PS Processor Sharing Chia sẻ xử lý

PSELC Policy Selection Counter Bộ đếm lựa chọn chính sách

PSW Processor Status Word Từ trạng thái của bộ xử lý

Q

Quick Path Interconnect Liên kết đường dẫn nhanh QPI

R

RAID Redundant Array of Independent Hệ thống đĩa dự phòng

Disks

RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên

RISC Reduced Instruction Set Computer Máy tính với tập lệnh đơn giản

hóa

ROM Read-Only Memory Bộ nhớ chỉ đọc

RRIP Re-Reference Interval Prediction Dự đoán khoảng tham chiếu lại

RRPV Re-reference Prediction Values Giá trị dự đoán tham chiếu lại

S

SD Set Dueling Tranh chấp tay đôi tập hợp

SDM Set Dueling Monitor Bộ giám sát tranh chấp tay đôi

tập hợp

SDRAM Synchronous Dynamic RAM DRAM đồng bộ

SIMD Single Instruction Multiple Data Một lệnh nhiều dữ liệu

SMC Symmetric Multi-core Chip Chip đa lõi đối xứng

SMP Symmetric Multiprocessors Đa xử lý đối xứng

SMT Simultaneous Multi-Threading Đa luồng đồng thời

SoC System on a Chip Hệ thống trên một chip

SP Speed Up Mức tăng tốc

SRAM Static Random-Access Memory RAM tĩnh

SRRIP Static Re-reference Interval Dự đoán khoảng tham chiếu lại

Prediction (Static RRIP) tĩnh

SRRIP- SRRIP-Frequency Priority SRRIP ưu tiên tần xuất

FP

SRRIP- SRRIP-Hit Priority SRRIP ưu tiên trúng cache

HP

SSI Small-Scale Integration Tích hợp cỡ nhỏ

T

TLB Translation Look-aside Buffer Bộ đệm chuyển đổi

TLP Thread Level Parallelism Song song mức luồng

TP Thread Processors Luồng xử lý

TRAM Tag RAM Thẻ RAM

TSC Time Stamp Counter Bộ đếm dấu thời gian

U

ULSI Ultra Large-Scale Integration Tích hợp cỡ siêu lớn

V

VHDL Very-High speed integrated circuit Ngôn ngữ mô tả phần cứng

hardware Description Language VHSIC

VHSIC Very High Speed Integrated Circuit Mạch tích hợp tốc độ rất cao

VLIW Very Long Instruction Word Từ lệnh rất dài

VLSI Very Large-Scale Integration Tích hợp có quy mô rất lớn

DANH MỤC CÁC BẢNG

Bảng 2.1: Tần suất thực hiện các loại lệnh và CPI trong chip kiến trúc RISC. ....... 36

Bảng 3.1: Giá trị trung bình của các thông số hiệu năng khi chip có 2-lõi với 8-

luồng/lõi. ............................................................................................... 73

Bảng 3.2: Giá trị trung bình của các thông số hiệu năng khi chip có 4-lõi với 8-

luồng/lõi. ............................................................................................... 77

Bảng 3.3: Giá trị trung bình của các thông số hiệu năng khi chip có 8-lõi với 8-

luồng/lõi. ............................................................................................... 80

Bảng 4.1: Giá trị trung bình của các thông số hiệu năng khi hệ thống có 2 cụm, mỗi cụm 4-lõi với L3 cache riêng cho mỗi cụm, và L3 cache chung, mỗi lõi xử lý 8-luồng. ............................................................................. 91

Bảng 4.2: Các thông số của các cấu hình mạng liên kết trên CMP đa luồng .......... 97

DANH MỤC CÁC HÌNH, ẢNH VÀ ĐỒ THỊ

Hình 1: Biểu diễn sự gia tăng transistor trên chip theo định luật Moore ..................1

Hình 1.1: Kiến trúc chung của CMP đa luồng. ........................................................6

Hình 1.2: Kiến trúc phân mảnh của CMP. ...............................................................7

Hình 1.3: a) SMC gồm n =16 lõi BCE; b) SMC gồm n/r = 4/4 lõi (4 lõi, mỗi lõi

có 4 BCE). ...............................................................................................8

Hình 1.4: AMC gồm một lõi 4-BCE và n-4 lõi 1-BCE. .............................................9

Hình 1.5: Chip đa lõi linh hoạt (DMC) gồm 16 lõi 1-BCE. .................................... 10

Hình 1.6: CMP với kiến trúc SISD. ........................................................................ 11

Hình 1.7: CMP với kiến trúc SIMD. ....................................................................... 11

Hình 1.8: CMP với kiến trúc MIMD. ...................................................................... 11

Hình 1.9: Một số cấu trúc mạng liên kết đa xử lý. .................................................. 14

Hình 1.10: Phân lớp của hệ thống nhớ. .................................................................. 16

Hình 2.1: Trao đổi dữ liệu giữa CPU, cache và bộ nhớ chính ................................ 19

Hình 2.2: Cache và bộ nhớ chính. .......................................................................... 21

Hình 2.3: Trang cache và dòng cache trên bộ nhớ chính. ...................................... 22

Hình 2.4: Tìm kiếm trong cache liên kết đầy đủ ..................................................... 23

Hình 2.5: Tìm kiếm trong cache sắp xếp trực tiếp. ................................................. 25

Hình 2.6: Tìm kiếm trong cache liên kết tập hợp. ................................................... 27

Hình 2.7: So sánh tỷ số trượt cục bộ và toàn cục với 2 cấp cache. ......................... 33

Hình 2.8: Sự phụ thuộc của tỷ số trượt vào kích thước cache ................................. 34

Hình 2.9: Sự phụ thuộc của tỷ số trượt cache theo kích thước và tổ chức của

cache. .................................................................................................... 35

Hình 2.10: Ghi thông qua. ..................................................................................... 43

Hình 2.11: Ghi trở lại. ........................................................................................... 44

Hình 2.12: Kỹ thuật bộ đệm ghi. ............................................................................ 45

Hình 2.13: Đọc bên cạnh. ...................................................................................... 46

Hình 2.14: Đọc thông suốt. .................................................................................... 47

Hình 2.15: CMP đa luồng hai cấp cache; a) với L2 cache riêng và b) với L2

cache chung cho tất cả các lõi. .............................................................. 48

Hình 2.16: Tổ chức cache trong các bộ xử lý 8-lõi của Intel Xeon họ 5500 ............ 48

Hình 2.17: Tiled CMP 16-lõi với kiến trúc L2 cache chia sẻ. ................................. 49

Hình 2.18: P2 thực hiện lệnh ld r2, x về thanh ghi r2 của P2. ................................ 51

Hình 2.19: P1 thực hiện lệnh ld r2, x. .................................................................... 51

Hình 2.20: P1 thực hiện các lệnh: add r1, r2, r4; st x, r1 ....................................... 51

Hình 3.1: Mô hình mạng xếp hàng đóng. ............................................................... 53

Hình 3.2: Các kiến trúc CMP đa luồng. ................................................................. 64

Hình 3.3: Mô hình MCPFQN tổng quát cho CMP đa luồng của hình 3.2. .............. 65

Hình 3.4: Mô hình MCPFQN rút gọn cho CMP đa luồng, 2 cấp cache với L2

cache chung. .......................................................................................... 67

Hình 3.5: Mô hình MCPFQN rút gọn cho CMP đa luồng, 3 cấp cache với L3

cache chung. .......................................................................................... 69

Hình 3.6: Mô hình MCPFQN 2-lõi, đa luồng; a) với L2 cache chung và b) với

L3 cache chung. ..................................................................................... 73

Hình 3.7: Biểu diễn giá trị trung bình của Thời gian chờ đợi ở các nút khi chip có 2-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. .................................................................................................... 74

Hình 3.8: Biểu diễn giá trị trung bình của Thời gian đáp ứng ở các nút khi chip có 2-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. .................................................................................................... 74

Hình 3.9: Biểu diễn giá trị trung bình của Mức độ sử dụng ở các nút khi chip có

2-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. ...... 75

Hình 3.10: Biểu diễn giá trị trung bình của Thông lượng ở các nút khi chip có

2-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. ...... 75

Hình 3.11: Mô hình MCPFQN 4-lõi, đa luồng; a) với L2 cache chung và b) với

L3 cache chung. ..................................................................................... 76

Hình 3.12: Biểu diễn giá trị trung bình của Thời gian chờ đợi ở các nút khi chip có 4-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. .................................................................................................... 77

Hình 3.13: Biểu diễn giá trị trung bình của Thời gian đáp ứng ở các nút khi chip có 4-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. .................................................................................................... 78

Hình 3.14: Biểu diễn giá trị trung bình của Mức độ sử dụng ở các nút khi chip có 4-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. .................................................................................................... 78

Hình 3.15: Biểu diễn giá trị trung bình của Thông lượng ở các nút khi chip có

4-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. ...... 79

Hình 3.16: Mô hình MCPFQN 8-lõi, đa luồng; a) với L2 cache chung và b) với

L3 cache chung. ..................................................................................... 80

Hình 3.17: Biểu diễn giá trị trung bình của Thời gian chờ đợi ở các nút khi chip có 8-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. .................................................................................................... 81

Hình 3.18: Biểu diễn giá trị trung bình của Thời gian đáp ứng ở các nút khi chip có 8-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. .................................................................................................... 81

Hình 3.19: Biểu diễn giá trị trung bình của Mức độ sử dụng ở các nút khi chip có 8-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. .................................................................................................... 82

Hình 3.20: Biểu diễn giá trị trung bình của Thông lượng ở các nút khi chip có

8-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung. ...... 82

Hình 4.1: Kiến trúc CMP đa luồng gồm n cụm lõi và L3 cache riêng cho mỗi

cụm. ....................................................................................................... 86

Hình 4.2: Mô hình MCPFQN tổng quát của kiến trúc cụm lõi cho ở hình 4.1. ....... 87

Hình 4.3: Mô hình MCPFQN rút gọn của kiến trúc cụm lõi. .................................. 88

Hình 4.4: Mô hình MCFPQN 2-cụm lõi, mỗi cụm 4-lõi, đa luồng. ......................... 90

Hình 4.5: Biểu diễn giá trị trung bình của Thời gian chờ đợi ở các nút khi hệ thống có 2-cụm, L3 cache riêng cho mỗi cụm và L3 cache chung cho 8-lõi, mỗi lõi xử lý 8-luồng. .................................................................... 91

Hình 4.6: Biểu diễn giá trị trung bình của Thời gian đáp ứng ở các nút khi hệ thống có 2-cụm, L3 cache riêng cho mỗi cụm và L3 cache chung cho 8-lõi, mỗi lõi xử lý 8-luồng. .................................................................... 92

Hình 4.7: Biểu diễn giá trị trung bình của Mức độ sử dụng ở các nút khi hệ thống có 2-cụm, L3 cache riêng cho mỗi cụm và L3 cache chung cho 8-lõi, mỗi lõi xử lý 8-luồng. .................................................................... 92

Hình 4.8: Biểu diễn giá trị trung bình của Thông lượng ở các nút khi hệ thống có 2-cụm, L3 cache riêng cho mỗi cụm và L3 cache chung cho 8-lõi, mỗi lõi xử lý 8-luồng. ............................................................................. 93

Hình 4.9: Chip đa lõi với tổ chức cache 3 cấp: L1I, L1D, L2 riêng lẻ cho mỗi

lõi và L3 cache chia sẻ cho tất cả các lõi. .............................................. 96

Hình 4.10: Trễ truyền thông trung bình của các mạng liên kết Ring, 2DMesh, 2DTorus, 3DMesh, 3DTorus, cho các trường hợp số lõi trên chip n = 8, 16, 32, 64, 128. ................................................................................ 101

Hình 4.11: Mức tăng tốc xử lý của các mạng liên kết Ring, 2DMesh, 2DTorus, 3DMesh, 3DTorus, cho các trường hợp số lõi trên chip n = 8, 16, 32, 64, 128. .......................................................................................... 104

1

MỞ ĐẦU

1. Tính cấp thiết của luận án

Những tiến bộ trong công nghệ bán dẫn đã thúc đẩy sự phát triển việc thiết kế

hệ thống trên chip. Những gì trước đây được sản xuất trên toàn bộ một bảng mạch,

giờ đây có thể được chế tạo trong một chip duy nhất. Việc tích hợp bộ xử lý và thiết

bị ngoại vi vào trong một chip duy nhất ngày càng trở nên phổ biến trong các hệ

thống nhúng, máy tính xách tay, máy tính để bàn, máy tính quy mô lớn và điện

thoại di động… đã đáp ứng nhu cầu ứng dụng của người tiêu dùng, kinh doanh và

nghiên cứu. Sự tiến bộ này phần lớn được thúc đẩy bởi định luật Moore, định luật

Moore nói rằng: “Số lượng transistor được tích hợp trên một inch vuông của chip

Hình 1: Biểu diễn sự gia tăng số lượng transistor trên chip theo định luật Moore

từ năm 1970 - 2015. [16].

tăng gấp đôi cứ sau 18 tháng” [1, 16, 21, 37].

Sự gia tăng số lượng transistor trên chip như hình 1 cho phép đổi mới nhanh

chóng công nghệ và kiến trúc các chip đa xử lý: từ đơn lõi và không có cache nhớ

bên trong đến đa lõi xử lý với đa cấp cache bên trong chip; từ chỉ chạy với đồng hồ

vài chục MHz đến hơn 2 GHz [37].

2

Cho đến nay, các nhà sản xuất đã sản xuất thương mại các chip đa xử lý cho

các dòng máy tính cá nhân thông dụng với số lõi là 2, 4, 6, 8-lõi. Các kiến trúc đa

lõi này thường sử dụng 2 cấp cache với L1 cache riêng cho mỗi lõi và L2 cache chia

sẻ cho 2-lõi, hay tất cả các lõi như: các bộ xử lý UltraSPARCT2 8-lõi,

UltraSPARCT3 16-lõi, Rock 16-lõi của Sun; Opteron 2-lõi của AMD [16, 29, 36,

58]; Core 2 duo 2-lõi, Core 2 quad 4-lõi của Intel [2, 8, 27, 59, 60]; Power5 2-lõi

của IBM [16, 17]... Cũng có một số chip đa xử lý có 3 cấp cache với L1 cache riêng

cho mỗi lõi, L2 cache riêng cho mỗi lõi hoặc chia sẻ cho 2 hay 4-lõi và L3 cache

chia sẻ cho tất cả các lõi như: bộ xử lý Dunnington 6-lõi, Nehalem Core i5 4-lõi,

Core i7 4 và 6-lõi của Intel, Opteron 4-lõi, Opteron 6-lõi, Opteron 8-lõi của AMD,

Power7 8-lõi của IBM [1, 18, 29, 36, 64, 72]… Tuy nhiên, cũng có một số chip chỉ

sử dụng 2 cấp cache với L2 cache riêng cho từng lõi như: bộ xử lý Power6 2-lõi của

IBM, Tile64 64-lõi của Tilera, Tera-Scale 80-lõi của Intel [1, 11, 29, 66]. Hầu hết,

các kiến trúc chip đa xử lý trên sử dụng mạng liên kết trên chip theo các cấu hình:

Bus chia sẻ, Ring, Crossbar-switched và 2DMesh [1, 11, 28, 29]. Các cấu hình liên

kết này chỉ phù hợp cho các chip đa lõi có quy mô nhỏ, có độ trễ truyền thông cao,

và khả năng mở rộng thấp. Do đó, khi số lượng lõi trên chip tăng sẽ gây ra trễ

truyền thông quá lớn, mức tăng tốc giảm gây ra nghẽn nút cổ chai làm suy giảm

hiệu năng và khả năng mở rộng của chip đa xử lý. Đây là thách thức lớn cho các

nhà nghiên cứu và sản xuất chip đa lõi hiện nay [28].

Một vấn đề đặt ra cho các nhà nghiên cứu và sản xuất chip đa xử lý, đa luồng

là: với chip đa xử lý thì cần giới hạn bao nhiêu lõi trên chip; chọn bao nhiêu cấp

cache; cấu trúc tổ chức cache như thế nào; dung lượng cache và kích thước dòng

cache là bao nhiêu; đồng thời mạng liên kết trên chip có cấu hình như thế nào để đạt

được hiệu năng tối ưu của bộ xử lý?

Tại Việt Nam vấn đề nghiên cứu và sản xuất chip đa xử lý cũng được bắt đầu

quan tâm và được ưu tiên hàng đầu trong lĩnh vực khoa học và công nghệ nhưng chỉ

là bước đầu sơ khai. Theo [74], ngày 16 tháng 01 năm 2008 tại khu công nghiệp

phần mềm, Đại học Quốc gia Thành phố Hồ Chí Minh đã tổ chức lễ ra mắt “Trung

tâm nghiên cứu và đào tạo thiết kế vi mạch (ICDREC)”, và công bố sản phẩm

SigmaK3 8 bit - chip đa xử lý đầu tiên mang thương hiệu Made in Việt Nam. Thành

3 công của sản phẩm chip đa xử lý 8-bit RISC SigmaK3 góp phần khẳng định Việt

Nam có đủ khả năng tạo được những chip đa xử lý tham gia vào thị trường thế giới.

Sau hơn hai năm tập trung nghiên cứu, ngày 27/10/2010, Trung tâm ICDREC đã

công bố sản xuất thành công chip đa xử lý 32-bit VN1632 với công nghệ IBM

0,13µm đầu tiên tại Việt Nam. Đây được coi là bước tiến mới của ngành công nghệ

vi mạch ở Việt Nam. Đặc biệt, vào ngày 09/11/2013, trung tâm ICDREC thành phố

Hồ Chí Minh và Công ty RADRIX của Nhật Bản đã ký kết Bản ghi nhớ hợp tác

(MOU) về việc phối hợp thiết kế và sản xuất chip. Theo MOU, hai bên sẽ hợp tác

để thực hiện các dự án thiết kế LSI mẫu và hướng đến là chip MPW ở công nghệ

65nm. Sự kiện này đã mở ra một hướng đi mới cho ngành công nghệ chế tạo chip ở

Việt Nam. Tuy nhiên, điều này cũng tạo nên một thách thức mới cho các nhà nghiên

cứu trong nước cũng như trung tâm ICDREC. Hơn thế nữa, trong những năm gần

đây công nghệ vi mạch tích hợp chuyên dụng (ASIC) [65]: PLD và FPGA đã và

đang được các nước đang phát triển và cả ở nước ta quan tâm nghiên cứu ứng dụng

và đưa vào đào tạo. Những công nghệ này cho phép thiết kế các chip đa xử lý, vi

điều khiển, hệ thống trên chip (SoC), hệ thống nhúng, mạng liên kết trên chip

(OCIN) một cách dễ dàng và ít tốn kém, phù hợp với ứng dụng của người dùng.

Cùng với các ngôn ngữ mô phỏng các vi mạch tích hợp tốc độ cao (VHDL) và

Verilog, công nghệ ASIC trở thành một xu hướng mới trong phát triển thiết kế chip

đa xử lý ở Việt Nam.

Có thể thấy rằng, việc nghiên cứu và chế tạo chip đa xử lý, đa luồng đã và

đang là một vấn đề thu hút sự quan tâm đặc biệt lớn trên thế giới và Việt Nam. Đây

là một vấn đề thời sự và cấp thiết nhằm giải quyết bài toán hiệu năng của chip đa xử

lý, đa luồng. Định hướng nghiên cứu tối ưu hóa tổ chức cache nhằm nâng cao hiệu

năng của chip đa xử lý, đa luồng là một định hướng đúng đắn có ý nghĩa khoa học

và thực tiễn. Đây cũng là cơ sở để tác giả lựa chọn nội dung nghiên cứu của bản

Luận án này.

Đề tài luận án: “Tối ưu hoá và đánh giá hiệu năng của tổ chức cache trong

hệ thống vi xử lý thế hệ sau”.

4

2. Mục đích nghiên cứu của luận án

- Nghiên cứu phân tích ảnh hưởng của tổ chức cache đa cấp và các chính sách

thay thế cache đến hiệu năng của chip đa xử lý, đa luồng.

- Xây dựng các mô hình kiến trúc chip đa xử lý, đa luồng, đa cấp cache. Tiến

hành phân tích và đánh giá hiệu năng của các kiến trúc để lựa chọn tổ chức cache

tối ưu nhằm nâng cao hiệu năng của chip đa xử lý, đa luồng.

- Nghiên cứu ảnh hưởng của các mạng liên kết giữa các lõi trên chip đến hiệu

năng của chip đa xử lý, đa luồng để từ đó lựa chọn mạng liên kết trên chip phù hợp

với kiến trúc chip đa xử lý, đa luồng.

3. Đối tượng và phạm vi nghiên cứu của luận án

 Đối tượng nghiên cứu:

Luận án tập trung nghiên cứu tổ chức cache đa cấp trong kiến trúc chip đa xử

lý, đa luồng.

 Phạm vi nghiên cứu:

- Luận án tập trung nghiên cứu các tổ chức cache 2 cấp (với L1 cache riêng

cho mỗi lõi và L2 cache chia sẻ cho tất cả các lõi), và tổ chức cache 3 cấp (với L1,

L2 cache riêng cho mỗi lõi và L3 cache chia sẻ cho tất cả các lõi) cho các kiến trúc

chip đa xử lý, đa luồng có 2-lõi, 4-lõi, và 8-lõi trên chip.

- Dựa vào mô hình mạng xếp hàng đóng đa lớp có dạng tích các xác suất

(MCPFQN) để phân tích, đánh giá hiệu năng của chip đa xử lý, đa luồng với đa cấp

cache theo các thông số hiệu năng (thời gian chờ đợi, thời gian đáp ứng, mức độ sử

dụng, thông lượng tại các nút, thông lượng hệ thống…). Các thông số hiệu năng này

được xác định bằng phân tích giá trị trung bình (MVA). Đồng thời, tiến hành đánh

giá ảnh hưởng của các cấu hình mạng liên kết trên chip đến hiệu năng của kiến trúc

chip đa lõi đã đề xuất. Trên cơ sở đó, lựa chọn tổ chức cache và cấu hình mạng liên

kết trên chip phù hợp nhất để nâng cao hiệu năng của chip đa xử lý, đa luồng.

4. Phương pháp nghiên cứu của luận án

- Sử dụng lý thuyết mạng xếp hàng đóng đa lớp có dạng tích các xác suất để

xây dựng mô hình cho kiến trúc chip đa xử lý, đa luồng với đa cấp cache.

5

- Sử dụng thuật toán giá trị trung bình (MVA) và tiến hành mô phỏng trên máy

tính bằng phần mềm JMT v.0.8.0 để đánh giá hiệu năng của kiến trúc chip đa xử lý,

đa luồng.

5. Ý nghĩa khoa học và thực tiễn của luận án

Nghiên cứu và đề xuất các kiến trúc chip đa xử lý, đa luồng nhằm nâng cao

hiệu năng xử lý của hệ thống luôn được các nhà nghiên cứu và chế tạo chip trong và

ngoài nước quan tâm và hướng tới. Đây là vấn đề có tính khoa học và thực tiễn cao.

Luận án là nghiên cứu mở đầu về kiến trúc chip đa xử lý, đa luồng ở Việt

Nam. Các mô hình đề xuất và các kết quả nghiên cứu của luận án có thể góp phần

mở ra triển vọng nghiên cứu và chế tạo chip đa xử lý, đa luồng đáp ứng nhu cầu đổi

mới công nghệ ở Việt Nam.

6. Cấu trúc của luận án

Ngoài phần Mở đầu, Kết luận, Danh mục các ký hiệu và chữ viết tắt, Danh

mục các bảng, Danh mục các hình vẽ, Danh mục các công trình đã được công bố

của Luận án, Tài liệu tham khảo, và Phụ lục. Nội dung của luận án được trình bày

gồm 4 chương như sau:

Chương 1: Tổng quan về kiến trúc chip đa xử lý, đa luồng.

Chương 2: Nghiên cứu tổ chức cache, chính sách thay thế cache trong kiến

trúc chip đa xử lý, đa luồng.

Chương 3: Phân tích đánh giá hiệu năng của tổ chức cache trong kiến trúc chip

đa xử lý, đa luồng.

Chương 4: Giải pháp tối ưu hóa hiệu năng của tổ chức cache trong kiến trúc

chip đa xử lý, đa luồng.

6

Chương 1

TỔNG QUAN VỀ KIẾN TRÚC CHIP ĐA XỬ LÝ, ĐA LUỒNG

1.1. Giới thiệu

Các chip đa xử lý (CMP) hay đa lõi xử lý hoặc các kiến trúc đa lõi là một lớp

mới của các kiến trúc xử lý hiệu năng cao. Ở đây, nhiều lõi xử lý được đặt trong

một chip vật lý. Kể từ năm 2001, sau khi IBM giới thiệu chip 2-lõi đầu tiên là

Power4 cho các dòng máy chủ eServer, pSeries và iSeries [75], CMP bắt đầu được

nhiều hãng chú ý đến. Hiện nay, CMP đã trở nên thông dụng và là cách duy nhất

tăng hiệu năng cho các bộ xử lý trong hệ thống máy tính và thiết bị thông tin hiện

đại. Chương này sẽ trình bày các đặc điểm của các kiến trúc CMP đa luồng, mạng

liên kết các lõi trên chip, và tổ chức bộ nhớ phân cấp.

1.2. Kiến trúc của chip đa xử lý, đa luồng

1.2.1. Kiến trúc chung của chip đa xử lý, đa luồng

Trong một CMP đa luồng, lõi được xác định như là một CPU. Nghĩa là mỗi lõi

gồm có khối xử lý trung tâm (CPU) như một chip đơn lõi, nhưng có thêm L1 cache

(L1 Icache, L1 Dcache) và có thể L2 cache chia sẻ (hoặc L3 cache chia sẻ) cho các

lõi, các lõi có cấu trúc giống nhau. Hình 1.1 thể hiện một kiến trúc chung của CMP

đa luồng.

Hình 1.1: Kiến trúc chung của CMP đa luồng [46].

7

Lý do lớn nhất cho chế tạo và ứng dụng CMP, đa luồng là việc đặt nhiều lõi

lên cùng một vi mạch sẽ làm giảm không gian trên bản mạch chính khi có nhu cầu

muốn sử dụng một số lượng lớn lõi đơn tương đương. Thêm nữa, lợi thế của việc sử

dụng đa lõi trên cùng một vi mạch là các lõi sẽ làm việc kết hợp cùng nhau chặt chẽ

hơn và nâng cao được hiệu năng xử lý. Đồng thời, khi nhiều lõi cùng nằm trên một

chip, xung tín hiệu truyền giữa các lõi sẽ ngắn hơn, trễ truyền thông không đáng kể

[46]. Ngoài ra, đặc trưng của CMP là chạy với điện năng thấp hơn, vì công suất tiêu

thụ để tín hiệu truyền trên dây bằng bình phương điện áp chia cho điện trở trong

dây, do đó điện năng thấp hơn sẽ dẫn đến kết quả là nguồn điện tiêu thụ ít đi [41,

69]. Một lý do khác đối với việc tiết kiệm nguồn điện là tốc độ đồng hồ, vì tốc độ

xử lý nhanh thì khả năng tiêu tốn điện năng ít.

Một xu hướng phát triển CMP đa luồng là kiến trúc phân mảnh. Trong kiến

trúc này, các lõi được thiết kế với tối thiểu tài nguyên chỉ chiếm không gian nhỏ

trên chip và kết nối mạng theo kiểu ma trận ngói lợp. Hình 1.2 là ví dụ hai thiết kế

CMP dạng này: Tile64 64-lõi của Tilera, Tera-Scale 80-lõi của Intel [11, 18, 29,

Hình 1.2: Kiến trúc phân mảnh của CMP [11, 18].

66].

Có thể nhóm các CMP thành ba loại: chip đa lõi đối xứng (SMC), chip đa lõi

bất đối xứng (AMC), và chip đa lõi linh hoạt (DMC) [7, 19, 40].

 Chip đa lõi đối xứng (SMC)

8

SMC phổ biến gồm 2 loại:

a) SMC gồm n tương đương lõi cơ sở (BCE); mỗi BCE là một lõi xử lý với

tài nguyên tối thiểu như hình 1.3a.

b) SMC bao gồm n/r lõi (nghĩa là SMC có tất cả n BCE, nhưng mỗi lõi là

a) b)

Hình 1.3: a) SMC gồm n =16 lõi BCE.

b) SMC gồm n/r = 4/4 lõi (4 lõi, mỗi lõi có 4 BCE) [40].

một kết hợp r BCE) như hình 1.3b.

SMC cấu trúc n/r cho phép tập trung nhiều tài nguyên vào một số lõi gồm r

BCE để tăng hiệu năng thực hiện perf(r).

Hiệu năng thực hiện tuần tự được bình thường hóa của lõi BCE thứ r được xác

định bằng:

Hiệu năng tuyệt đối của một lõi có r-BCE (1.1) perf(r) = Hiệu năng tuyệt đối của một BCE

Trong đó, hiệu năng tuyệt đối có thể là tốc độ xử lý (ví dụ, MIPS), hoặc số đo

hiệu năng khác.

Muốn perf(r) > r, các nhà thiết kế chip phải tăng các tài nguyên cho lõi r-BCE,

để đạt được sự tăng tốc của cả thực hiện tuần tự và song song. Khi perf(r) < r, sự

tăng hiệu năng của lõi bị ảnh hưởng bởi sự thực hiện tuần tự và như vậy làm ảnh

hưởng đến quá trình thực hiện song song.

Theo Luật Amdahl, mức tăng tốc của SMC phụ thuộc vào tỷ trọng phần có thể

thực hiện song song f, toàn bộ số BCE(n), và số lõi r. Với loại SMC chỉ sử dụng

một lõi để thực hiện tuần tự với hiệu năng tuần tự perf(r) và sử dụng tất cả n/r lõi để

thực hiện song song với hiệu năng perf(r)× n/r.

9

1

Như vậy, tổng mức tăng tốc SP của SMC là:

SP

(f, n, r) =

SMC

+

1 - f perf(r)

f × r perf(r) × n

(1.2)

 Chip đa lõi bất đối xứng (AMC)

AMC gồm một lõi r-BCE (1/r-BCE) và n-r BCE như hình 1.4. Trong AMC,

một hay một số lõi sẽ mạnh hơn các lõi khác. Ví dụ, trong AMC với n = 64 BCE, có

thể được tổ chức 1 lõi 4-BCE và 60 lõi 1-BCE hay 1 lõi 9-BCE và 55 lõi 1-BCE,

v.v... Nói chung, nếu một AMC có n BCE, thì có thể tổ chức 1 lõi r-BCE và n-r lõi

Hình 1.4: AMC gồm một lõi 4-BCE và n-4 lõi 1-BCE [40].

1-BCE.

So với SMC, luật Amdahl cho AMC có dạng khác. Vì AMC sử dụng một lõi

lớn với nhiều tài nguyên hơn để thực hiện phần tuần tự với hiệu năng tuần tự

perf(r). Trong phần thực hiện song song, nó nhận hiệu năng perf(r) từ một lõi lớn r-

BCE và hiệu năng của một trong các n-r lõi 1-BCE. Như vậy, tổng mức tăng tốc của

1

AMC là:

SP

(f, n, r) =

AMC

+

1- f perf(r)

f perf(r) + n - r

(1.3)

 Chip đa lõi linh hoạt (DMC)

Trong DMC có thể kết hợp r lõi với nhau để đẩy hiệu năng của phần tuần tự,

như ở hình 1.5. Khả năng này có thể đạt được ở mức luồng. Trong chế độ tuần tự,

DMC có thể thực hiện với hiệu năng tuần tự perf(r) khi các kỹ thuật linh hoạt sử

dụng r lõi BCE.

10

Hình 1.5: Chip đa lõi linh hoạt (DMC) gồm 16 lõi 1-BCE [40].

Trong chế độ song song, DMC nhận hiệu năng nhờ sử dụng tất cả các lõi cơ

1

sở. Theo luật Amdahl, tổng mức tăng tốc trong DMC là:

SP

(f, n, r) =

DMC

+

1- f perf(r)

f n

(1.4)

Nếu cho rằng hiệu năng thực hiện phần tuần tự đạt được perf(r) = 1 thì công

1

thức (1.4) trở về dạng tổng quát của mức tăng tốc tối đa theo luật Amdahl:

SP

=

DMC

(1- f) +

f n

(1.5)

Khi n tiến tới vô cùng, thì mức tăng tốc chỉ phụ thuộc vào kích thước phần

tuần tự của chương trình là (1- f). Do đó, một chương trình ứng dụng đạt được mức

tăng tốc lớn khi thực hiện song song trong các hệ thống với các CMP đa luồng cần

phải được thiết kế sao cho phần tuần tự chiếm kích thước rất nhỏ và các module

song song phải đạt được mức tối đa f = n.

Dựa theo phân loại kiến trúc song song của Flynn [62], trong CMP có các loại

kiến trúc thực hiện song song theo chuỗi lệnh và chuỗi dữ liệu [24, 72]:

- CMP có kiến trúc một chuỗi lệnh, một chuỗi dữ liệu SISD như hình 1.6.

11

Hình 1.6: CMP với kiến trúc SISD [72].

Hình 1.7: CMP với kiến trúc SIMD [72].

- CMP có kiến trúc nhiều chuỗi lệnh một chuỗi dữ liệu MISD như hình 1.7.

Hình 1.8: CMP với kiến trúc MIMD [72].

- CMP có kiến trúc nhiều chuỗi lệnh nhiều chuỗi dữ liệu MIMD như hình 1.8.

1.2.2. Kiến trúc chip đa xử lý, đa luồng đồng thời

Luồng là một trình tự một số lệnh thực hiện bởi tài nguyên của lõi xử lý. Kỹ

thuật đa luồng đồng thời (SMT) là tên do Intel đặt cho công nghệ siêu luồng [30].

Kỹ thuật này cho phép một CMP có thể thực sự xử lý song song các luồng do các

ứng dụng (phần mềm) tạo ra, bằng cách trang bị thêm một số thành phần của CMP,

khiến hệ điều hành nghĩ rằng nó đang làm việc với nhiều CMP. Hệ điều hành sẽ sắp

xếp để nhiều luồng được gửi đến các bộ xử lý “ảo” đó [57].

12

Trong kỹ thuật SMT, mỗi CPU logic sở hữu một tập các thanh ghi riêng kể cả

thanh ghi bộ đếm chương trình PC. CPU vật lý sẽ luân phiên các giai đoạn tìm/giải

mã giữa các CPU logic và cố gắng thực thi những thao tác từ các chuỗi lệnh đồng

thời theo cách hướng tới những đơn vị thực thi ít được sử dụng [1, 2, 4, 16].

Đặc điểm kiến trúc đa luồng đồng thời (SMT) đưa vào CMP có thể làm tăng

tốc độ xử lý của CMP. Chẳng hạn, mỗi lõi xử lý 2-luồng thì tốc độ xử lý của CMP

tăng lên gấp đôi. Nếu các luồng độc lập với nhau và sử dụng tài nguyên khác nhau

của lõi xử lý thì một lõi có thể thực hiện đồng thời nhiều luồng. Ví dụ, lõi xử lý 2-

luồng thì một luồng đang chờ đợi thực hiện các lệnh dấu phẩy động (sử dụng đường

ống dấu phẩy động của FPU). Khi đó, một luồng khác thực hiện các lệnh số nguyên

có thể sử dụng đường ống lệnh nguyên (IU) của lõi xử lý. Như vậy, nếu một CMP-

SMT có 4-lõi và mỗi lõi xử lý 2-luồng thì có thể coi CMP có tới 8-lõi xử lý ảo [16,

37]. Đối với người dùng, hiệu suất lớn nhất của đặc tính kiến trúc CMP-SMT đạt

được khi lựa chọn một máy tính sử dụng CMP-SMT đó là tính đa nhiệm của bộ xử

lý phải được cải thiện. Ví dụ, khi xem DVD trong lúc máy vẫn đang được quét virus

mà tốc độ không bị ảnh hưởng, bởi vì từng ứng dụng sẽ được gán trên các lõi khác

nhau. Hay trên màn hình máy tính có thể đồng thời chạy các ứng dụng khác nhau

được thể hiện các cửa sổ ứng dụng tương ứng trên màn hình máy tính, hay trên điện

thoại di động thông minh cũng thực hiện tương tự. Nếu CMP không có SMT, thì chỉ

một luồng có thể chạy trên một lõi ở một thời điểm thì hiệu suất sử dụng không cao.

Việc phát triển một ứng dụng đa luồng đã đáp ứng được yêu cầu thực hiện rất nhiều

công việc phức tạp.

1.2.3. Mạng liên kết trên chip

Mạng liên kết trên chip (OCIN) được nghiên cứu nhiều trong tiến trình phát

triển công nghệ CMP đa luồng. Hiện nay, có một số cấu hình OCIN được sử dụng

phổ biến trong kiến trúc CMP đa luồng như: mạng giao nhau (Crossbar) được sử

dụng trong chip Corei7 của Intel, Power5 của IBM, UltraSPARCT1/2 của Sun [1,

26]; mạng vòng (Ring) được sử dụng trong các chip Power4, Cell của IBM [1, 26,

54]; mạng lưới 2D (2DMesh) được sử dụng trong chip Tile64 64-lõi của Tilera,

Tera-Scale 80-lõi của Intel [1, 11, 54, 71]... Ngoài ra, các mạng liên kết như: mạng

13 cây béo (Fat tree), mạng hình bướm (Butterfly), mạng siêu lập thể (Hypercube)

mạng lưới vòng 2D (2DTorus), mạng lưới 3D (3DMesh), mạng lưới vòng 3D

(3DTorus),... cũng được các nhà nghiên cứu và nhà sản xuất chip quan tâm nghiên

cứu đến [11, 15, 28, 44, 47, 51, 61, 63, 70, 71].

Cấu trúc OCIN cung cấp một không gian thiết kế rộng bao gồm cả cấu trúc

liên kết mạng, thuật toán định tuyến, và kiến trúc bộ định tuyến, tất cả đều ảnh

hưởng đến hiệu năng của CMP đa luồng. Khi số lượng lõi xử lý tích hợp trên chip

càng lớn thì vấn đề mạng liên kết các lõi trên chip càng phức tạp và trễ truyền thông

giữa các lõi qua mạng liên kết là đáng kể, khả năng mở rộng bị hạn chế [28]. Đây là

vấn đề thách thức lớn cho các nhà nghiên cứu.

Để đánh giá ảnh hưởng của các cấu trúc OCIN đến hiệu năng của CMP đa

luồng, các nghiên cứu hiện nay đều dựa vào một số thông số mạng như sau [48, 68]:

- Số liên kết (L): toàn bộ số liên kết trong mạng.

- Cấp độ của nút (d): số kênh liên kết với một nút trong mạng.

- Đường kính của mạng (D): khoảng cách định tuyến dài nhất giữa hai nút

trong mạng.

- Khoảng cách trung bình (H): là khoảng cách định tuyến trung bình giữa

tất cả các cặp nút. Thông số này ảnh hưởng đến trễ.

- Độ rộng chia đôi (B): số lượng các liên kết của lát cắt nhỏ nhất mà nó

tách mạng thành hai nửa bằng nhau.

- Độ phức tạp sinh trưởng (G): số nút có thể được bổ sung thêm.

- Trễ: thời gian trễ giữa gửi và nhận. Người thiết kế cấu trúc mạng xác

định trễ phần cứng: mạng càng rộng thì trễ càng lớn, đó là trễ trên đường dây.

Người lập trình quan tâm đến trễ phần mềm: từ chương trình đến chương trình.

- Băng thông của một liên kết: băng thông của một liên kết mạng bằng

W× 1/t. Trong đó: W là số lượng các đường dây, t là thời gian trên bit. Băng

thông thường được đo bằng Gigabytes (GB).

14

- Băng thông hiệu dụng: thông thường nhỏ hơn băng thông của một liên

kết do trễ của gói tin. Băng thông là thông số quan trọng đối với các ứng dụng

với các bản tin kích thước lớn.

- Băng thông của độ rộng chia đôi: là tổng băng thông của tất cả các liên

kết qua lát cắt nhỏ nhất mà nó tách mạng thành hai nửa bằng nhau. Hay là băng

thông đi qua phần hẹp nhất của mạng.

Băng thông của độ rộng chia đôi quan trọng đối với các thuật toán mà

trong đó tất cả các CMP đa luồng cần phải truyền thông với nhau. Băng thông

của độ rộng chia đôi có ảnh hưởng đến trễ.

Hình 1.9 trình bày một số cấu hình OCIN phổ biến cho các hệ thống đa xử lý

(a): Cây nhị phân (b): Cây béo (c): Vòng (d):2DMesh (e): 2DTorus

(f): Crossbar (g): Supercubes (h):3DMesh (i): 3DTorus

Hình 1.9: Một số cấu trúc mạng liên kết đa xử lý [15, 24, 48, 54, 62, 71].

và CMP đa luồng.

 Các thông số của các mạng nDMesh và nDTorus:

n -1

n

N = k đối với mạng nDTorus.

N =

i

k đối với mạng nDMesh;

i =0

1) Tổng số nút:

15

1/n

 đối với mạng nDMesh;

 D n(N

1)

đối với mạng nDTorus.

1/ n D (n / 2)(N )

2) Đường kính:

Trong đó: ki là số liên kết (hay số nút) ở từng hướng i, và n là số hướng.

1/n

3) Khoảng cách trung bình:

H (n / 3)N

1/n

đối với mạng nDMesh;

H (n / 4)N

đối với mạng nDTorus.

4) Cấp độ của nút:

d = 2n đối với mạng nDTorus.

d = n đến 2n đối với mạng nDMesh;

= 2Bn , trong đó: Bn là lấy ở các góc cho cả mạng nDMesh và nDTorus.

maxd

5) Cấp độ lớn nhất của nút:

(n 1)/n

6) Độ rộng chia đôi:

B N 

(n 1)/n

đối với mạng nDMesh;

B 2N 

đối với mạng nDTorus.

n

Trong đó: ki: cơ số lớn nhất. Khi tất cả các hướng đều có cùng cơ số (cùng số

= 2Bn , Bn:

ik = k; i = 0, 1,..., n -1, khi đó

N = k nút, maxd

liên kết hay số nút)

n-1

lấy ở các góc chung cho cả mạng nDMesh và nDTorus, băng thông của độ rộng chia

n-1Bk , và ở mạng nDTorus là

2Bk .

đôi ở mạng nDMesh là

1/n

1/n

 đối với mạng nDMesh;

L nN (N

1)

1/n

7) Số liên kết:

1/n L nN (N )

đối với mạng nDTorus.

Sự gia tăng tính phức tạp của các CMP đa luồng làm cho trễ truyền thông toàn

cục trên CMP trở thành vấn đề chính cần phải khắc phục để cải thiện hiệu năng cho

CMP đa luồng. Tuy nhiên, do hạn chế băng thông và tiêu thụ công suất cao của các

16 mạng liên kết kim loại, nên các OCIN điện tử thông thường không thể thỏa mãn yêu

cầu hiệu năng và công suất của CMP đa luồng trong tương lai.

1.2.4. Phân cấp hệ thống nhớ

Phân cấp hệ thống nhớ là nhóm các thiết bị nhớ thành từng lớp theo tốc độ,

dung lượng, và kiểu kết nối sao cho chúng đảm bảo sự truy nhập của chương trình

đến các khoản (lệnh, dữ liệu) được thực hiện nhanh nhất. Trong hệ thống đa xử lý,

L0

Dung lượng nhỏ hơn, tốc độ nhanh hơn, chí phí cao hơn

CPU Registers

CPU registers chứa các từ lấy từ L1 cache

L1

Cache trên chip (SRAM)

L1 cache chứa các dòng cache lấy từ L2 cache

L2

Cache trên chip (SRAM)

L2 cache chứa các dòng lấy từ L3 cache

L3

Cache trên hay ngoài chip (SRAM)

L3 cache chứa các dòng lấy từ bộ nhớ chính

L4

Dung lượng lớn hơn tốc độ chậm hơn, chí phí thấp hơn

Bộ nhớ chính (DRAM)

Bộ nhớ chính chứa các khối dữ liệu lấy từ đĩa cứng

L5

Thiết bị nhớ trên đĩa cứng

L6

Thiết bị nhớ trên mạng

Đĩa cục bộ chứa các files lấy từ các máy chủ dịch vụ mạng

Hình 1. 10: Phân lớp của hệ thống nhớ [25, 72] .

hệ thống nhớ được phân thành một số lớp [20, 25, 72] như hình 1.10.

Trong đó:

1. L0: là các thanh ghi bên trong chip, có tốc độ bằng tốc độ của lõi CPU và

tham gia trực tiếp vào thực hiện các lệnh với ALU. Các CMP đa luồng hiện nay có

nhiều loại thanh ghi được sử dụng ở nhiều mục đích khác nhau và có số lượng lớn

nên thường được gọi là các tệp thanh ghi. Với tổ chức cache phân cấp, bên trong

CPU các thanh ghi trao đổi các khoản thông tin (dữ liệu, mã lệnh) trực tiếp với L1

cache. Thời gian truy nhập các thanh ghi khoảng (0,3  0,5)ns.

2. L1 cache (cache sơ cấp): là một bộ nhớ có dung lượng nhỏ khoảng (8 

128)KB, L1 cache sử dụng công nghệ SRAM được tích hợp bên trong CMP đa

luồng và được phân chia thành L1I cache và L1D cache. L1 cache có thể đạt tới tốc

độ của lõi, L1 cache có thời gian truy nhập nhỏ khoảng (1  3) ns, hoặc thấp hơn.

17

3. L2 cache (cache thứ cấp): là bộ nhớ sử dụng công nghệ SRAM, L2 cache

thường có dung lượng 256KB, 512KB, (1  3)MB và có độ trễ lớn hơn L1 cache.

L2 cache là cache thống nhất nằm trên CMP, có thời gian truy nhập khoảng (3 

10)ns. Hầu hết, các CMP đa luồng hiện nay đều có 2 cấp cache (L1 và L2 cache)

nằm bên trong CMP, trong đó: L1 cache riêng cho mỗi lõi và L2 cache chia sẻ cho

tất cả các lõi. Nhưng nếu CMP đa luồng có 3 cấp cache (L1, L2, và L3 cache) thì

L2 cache riêng cho từng lõi hay chia sẻ cho 2 hoặc 4-lõi.

4. L3 cache: là bộ nhớ sử dụng công nghệ SRAM, có thể nằm bên trong hay

bên ngoài CMP, hay trên bo mạch chủ giữa CPU và bộ nhớ chính. L3 cache là

cache thống nhất có dung lượng lớn hơn L2 cache. Từ kiến trúc Pentium 4 đã có 3

cấp cache: L1 và L2 cache nằm trên chip, L3 cache nằm bên ngoài chip. Các CMP

Nehalem của Intel, L3 cache có dung lượng 2MB, 4MB, 6MB, 8MB, hay 12MB

(như Core i7) nằm bên trong CMP [25, 76]. L3 cache có thời gian truy nhập lớn hơn

L2 cache, khoảng (10  20)ns.

5. Bộ nhớ chính: có thể là L3 hay L4. Bộ nhớ chính sử dụng công nghệ

DRAM. Bộ nhớ chính có dung lượng lớn hơn nhiều so với các cache, khoảng

(4  16)GB tùy theo khả năng đánh địa chỉ của CMP (hay độ rộng theo số bit của

bus địa chỉ). Thời gian truy nhập bộ nhớ chính lớn, khoảng (50  100)ns.

6. Các thiết bị nhớ trên đĩa cứng: có dung lượng lớn hơn nhiều so với bộ nhớ

chính, dung lượng khoảng (1  16)TB, nhưng thời gian truy nhập lớn, khoảng (5 

10)ms. Các ổ đĩa cứng là bộ nhớ thứ cấp chính của hệ thống máy tính, vì vậy nó

được kết nối cứng trong hệ thống và có độ bền cao. Trong quản lý bộ nhớ trên ổ đĩa

cứng có tạo ra các vùng nhớ ảo lưu trữ các module của chương trình thực hiện.

Vùng nhớ ảo được xem như vùng nhớ mở rộng cho bộ nhớ chính.

7. Thiết bị nhớ trên mạng: như các hệ thống đĩa cứng (RAID) trên các máy

chủ dịch vụ mạng trên LAN. Các khối dữ liệu có thể được vận chuyển từ thiết bị

nhớ ở xa về hệ thống nhớ cục bộ hoặc theo hướng ngược lại qua môi trường LAN

Ethernet, tốc độ 10Mb/s, 100Mb/s, 1Gb/s, hoặc 10Gb/s.

18

1.3. Kết luận chương 1

- Chương này đã trình bày tổng quan về kiến trúc CMP đa luồng, các cấu hình

mạng liên kết trên chip, và tổ chức bộ nhớ phân cấp.

- Hiệu năng của CMP đa luồng phụ thuộc rất nhiều vào công nghệ bộ nhớ

cache: tổ chức cache, dung lượng của cache, số cấp cache (L1, L2, hay L3), chính

sách thay thế cache, và cấu hình mạng liên kết các lõi trên chip. Cấu hình mạng liên

kết có ảnh hưởng rất lớn đến hiệu năng tổng thể của CMP đa luồng. Khi số lượng

lõi trên chip tăng thì một số cấu hình đang được sử dụng không đáp ứng được nhu

cầu băng thông, đồng thời độ trễ truyền thông rất lớn, và khả năng mở rộng hệ

thống cũng bị hạn chế.

Vì vậy, vấn đề nghiên cứu các tổ chức cache, các chính sách thay thế cache, và

tìm ra một cấu hình mạng liên kết phù hợp với kiến trúc đa lõi nhằm nâng cao hiệu

năng là rất cần thiết. Đây cũng là một thách thức lớn cho các nhà nghiên cứu và sản

xuất chip hiện nay.

19

Chương 2

NGHIÊN CỨU TỔ CHỨC CACHE, CHÍNH SÁCH THAY

THẾ CACHE TRONG KIẾN TRÚC CHIP ĐA XỬ LÝ,

ĐA LUỒNG

2.1. Tổ chức cache trong kiến trúc chip đa xử lý, đa luồng

2.1.1. Cache và các nguyên tắc làm việc của cache

Cache như là bộ nhớ trung gian nằm giữa CPU và bộ nhớ chính. Bộ nhớ cache

sử dụng công nghệ SRAM, dung lượng nhỏ, tốc độ truy nhập nhanh. Sự trao đổi dữ

liệu giữa CPU và cache theo các từ, trong khi sự trao đổi dữ liệu giữa cache và bộ

Các từ

Các khối

Cache

CPU

Bộ nhớ chính

Bus cục bộ

Bus bộ nhớ

Hình 2.1: Trao đổi dữ liệu giữa CPU, cache và bộ nhớ chính [62, 72].

nhớ chính theo các khối như hình 2.1.

Cache ở cấp nhớ càng thấp (gần CPU hơn) càng có dung lượng nhỏ và tốc độ

truy nhập càng nhanh hơn. Khi thực hiện các chương trình, mà phần lớn thời gian

CPU tham chiếu đến các cache thì tốc độ xử lý sẽ nhanh hơn so với truy nhập tới bộ

nhớ chính. Để thực hiện được điều này, những khoản nội dung (lệnh, dữ liệu)

thường xuyên được sử dụng của chương trình thực hiện lưu trong bộ nhớ chính sẽ

được sao chép vào trong cache.

Bộ nhớ cache làm việc nhờ sự dự đoán của CPU, CPU sẽ tham chiếu đến vùng

nhớ và tải nội dung của vùng nhớ đó vào cache trước khi CPU thực hiện tham chiếu

đến bộ nhớ chính. CPU luôn tham chiếu đến cache trước, như vậy nếu sự dự đoán

chính xác, thì CPU sẽ chỉ thực hiện trao đổi nội dung nhớ đã được tải vào trước từ

bộ nhớ chính. Nếu cache không có dữ liệu mà CPU cần (do dự đoán sai) thì CPU

phải tham chiếu đến bộ nhớ chính để đọc khoản dữ liệu và khoản dữ liệu đó cũng

đồng thời được nạp từ bộ nhớ chính vào cache. Sự làm việc của cache nhờ dự đoán

dựa trên cơ sở của vị trí của vùng nhớ mà chương trình tham chiếu đến các khoản

20 nội dung (lệnh, dữ liệu). Có 3 nguyên tắc tham chiếu: vị trí tạm thời, vị trí không

gian, và vị trí tuần tự [72].

2.1.1.1. Vị trí tạm thời

Khi CPU thực hiện chương trình, nó tham chiếu đến một nội dung (lệnh, dữ

liệu) ở vị trí nào đó chứa trong bộ nhớ chính, thì nội dung đó có thể nhanh chóng

được tham chiếu tiếp lần nữa. Nội dung đó được đưa vào cache để đón tham chiếu

của chương trình.

2.1.1.2. Vị trí không gian

Khi CPU thực hiện chương trình, nó tham chiếu đến một nội dung (lệnh, dữ

liệu) ở vị trí nào đó chứa trong bộ nhớ, thì các nội dung ở các vị trí nhớ bên cạnh nó

có thể nhanh chóng được tham chiếu sau đó. Nói cách khác, nếu chương trình tham

chiếu đến một địa chỉ trong bộ nhớ chính thì nó có thể nhanh chóng tham chiếu đến

các địa chỉ lân cận. Như vậy, những nội dung kề cận có thể được đưa vào cache để

2.1.1.3. Vị trí tuần tự

đón tham chiếu của chương trình.

Khi CPU thực hiện chương trình, nó tham chiếu đến các nội dung chứa trong

bộ nhớ một cách tuần tự. Do đó, khi tham chiếu của chương trình đến một nội dung

hiện thời thì nó có tham chiếu đến nội dung tiếp theo trong bộ nhớ chính. Như vậy,

nội dung tiếp theo có thể được đưa vào cache để đón tham chiếu của chương trình.

2.1.2. Các thành phần của cache

Cache có thể được chia thành ba khối chức năng đó là: bộ nhớ truy cập ngẫu

nhiên tĩnh (SRAM), thẻ RAM và bộ điều khiển cache [72]. Trong các thiết kế thực

tế, các khối này được kết hợp chung trong một chip.

 SRAM: là khối lưu trữ dữ liệu. Kích thước của SRAM chỉ ra kích thước của

cache, và được chia thành các dòng cache. Để trao đổi thông tin giữa cache và CPU,

giữa cache và bộ nhớ chính, mỗi dòng cache có kích thước bằng kích thước một

khối của bộ nhớ chính. Các khối của bộ nhớ chính ở đây phụ thuộc vào dung lượng

của cache và tổ chức cache, và không liên quan đến khái niệm khối trong chế độ

21 phân chia trang hay chia phần. Dung lượng của cache được xác định bởi dung lượng

của phần dữ liệu.

 Thẻ RAM (TRAM): là một phần nhỏ của SRAM gồm các thẻ, mỗi thẻ ứng

với một dòng cache và lưu trữ địa chỉ của dữ liệu được lưu trong dòng cache tương

ứng. Kích thước của thẻ được tính theo số bit và nội dung phụ thuộc vào tổ chức

của cache.

 Bộ điều khiển cache: Bộ điều khiển cache được xem như bộ não của cache.

Các nhiệm vụ mà nó đảm nhận là thực thi các snoop và snarf, cập nhật SRAM và

TRAM, thực thi quy định ghi. Bộ điều khiển cache còn có nhiệm vụ xác định yêu

cầu bộ nhớ có thể “cache”, nghĩa là vùng nhớ nào được lưu trong cache và các yêu

cầu “trúng cache” và “trượt cache”. Các vùng nhớ chính có thể lưu trong cache

được gọi là được cache, các vùng nhớ chính không thể lưu trong cache được gọi là

vùng không thể được cache, tùy vào thiết kế. Ví dụ như trong PC, vùng video

không được lưu trong cache.

2.1.3. Các tổ chức cache

Mỗi dòng cache gồm có hai phần: phần khối có dung lượng bằng kích thước

của một khối của bộ nhớ chính để lưu dữ liệu của khối nạp từ bộ nhớ chính và phần

Cache

Bộ nhớ chính

Thẻ

Khối

B0

L0

Bj

Lj

BM-1

LC-1

Hình 2.2: Cache và bộ nhớ chính [72].

thẻ chứa địa chỉ của khối mà nội dung của nó đang được lưu tại phần khối.

22

Số bit của phần thẻ xác định số lượng tối đa các khối có thể sắp xếp vào cache.

Nếu dung lượng của cache có C dòng (L0, L1,…, LC-1) và tương ứng có C thẻ, thì

phần dung lượng của cache chứa dữ liệu là C× K, trong đó K là kích thước của dòng

(hay kích thước của khối). Vì dung lượng bộ nhớ chính lớn hơn nhiều lần so với

dung lượng của cache (C << M), nên chỉ có một số ít khối có thể sắp xếp vào

cache. Khi một khoản nhớ (từ, khối) của bộ nhớ chính được chọn (theo các nguyên

tắc tham chiếu) thì sự sắp xếp các khối được chọn từ bộ nhớ chính vào các dòng của

cache phụ thuộc vào cách tổ chức cache như hình 2.2.

Trong cơ chế phân trang, mỗi trang ở bộ nhớ chính gồm các dòng cache. Khi

đó có khái niệm trang cache và dòng cache như hình 2.3. Dòng cache thường được

gọi là khối trong bộ nhớ. Kích thước của dòng cache bằng kích thước của dòng ở

cache. Chú ý rằng, trang cache không liên quan đến trang bộ nhớ trong chế độ trang

Bộ nhớ chính

Trang cache

Dòng cache

của quản lý bộ nhớ của máy tính.

.

Dòng cache Dòng cache Dòng cache

.

Trang cache

Trang cache

Dòng cache Dòng cache Dòng cache Dòng cache

Hình 2.3: Trang cache và dòng cache trên bộ nhớ chính [72].

Các CMP đa luồng có thể sử dụng một trong ba tổ chức cache: Cache liên kết

đầy đủ, cache sắp xếp trực tiếp, và cache liên kết tập hợp [62, 72].

2.1.3.1. Cache liên kết đầy đủ

 Nguyên tắc sắp xếp:

23 - Một khối của bộ nhớ chính có thể nạp vào bất kỳ dòng nào của cache.

- Địa chỉ của bộ nhớ gồm N bit được diễn giải gồm hai trường: trường thẻ với

S bit và trường từ với W bit, N = S + W.

- Trường thẻ xác định địa chỉ của khối ở bộ nhớ, trường từ xác định vị trí của

từ trong khối.

- Trường địa chỉ khối (S bit) của địa chỉ từ nhớ mà lệnh của chương trình thực

hiện (trong CPU) tham chiếu được so sánh với giá trị của từng thẻ của từng dòng.

- Kết quả so sánh: nếu trùng (hay trúng cache), có nghĩa là nội dung của khoản

dữ liệu mà CPU truy nhập đã được nạp theo cả khối từ bộ nhớ chính vào dòng

cache có nội dung thẻ là địa chỉ trùng với địa chỉ khối cần tìm, thì địa chỉ của từ trỏ

đến vị trí của từ có trong phần khối của dòng, khi đó CPU đọc từ yêu cầu từ cache.

Nếu không trùng (hay trượt cache) thì toàn bộ địa chỉ bộ nhớ được trỏ đến bộ nhớ

Thẻ (S = 27 bit)

Từ (W = 5 bit)

A035F002H

101.0000.0001.1010.1111.1000.0000

0.0010

Địa chỉ bộ nhớ

Bộ nhớ chính

Cache

Từ

Thẻ

Khối

Thẻ S

W

S

B0

L0

S

501AF80H

W

W

So sánh

Bj

Lj

Trúng cache

BM-1

LC-1

Trượt cache

Hình 2.4: Tìm kiếm trong cache liên kết đầy đủ [62, 72].

chính để giải mã chọn và đọc đồng thời về CPU và dòng cache.

24

Để minh họa, cho rằng địa chỉ bộ nhớ có N = 32 bit. Trường thẻ có S = 27 bit

và trường từ có W = 5 bit. Như vậy, bộ nhớ chính được chia ra M 272 khối (B0, B1, ..., BM-1), mỗi khối có 32 = 25 từ. Giả định cache có dung lượng phần chứa dữ liệu là 216 = C × 25, thì số dòng là C = 211 (L0, L1, ..., LC-1) và trường thẻ của cache

có 11 bit. Khi CPU thực hiện một chương trình nào đó, giả định nó tham chiếu đến

từ (lệnh hoặc dữ liệu) của bộ nhớ với địa chỉ là A035F002H, thì địa chỉ của khối

501AF80H (có S = 27 bit) trong địa chỉ A035F002H được so sánh với các giá trị

của thẻ của từng dòng cache. Nếu trúng cache, thì có nghĩa là từ này đã được đưa

vào dòng cache và giá trị 02H trong A035F002H là địa chỉ của từ trong khối trỏ đến

vị trí từ trong dòng cache tìm được, nội dung từ được đọc từ dòng cache về CPU.

Nếu không trùng với mọi giá trị của tất cả các thẻ của cache (trượt cache) thì

chương trình phải tham chiếu đến bộ nhớ chính ở địa chỉ A035F002H. Hình 2.4 mô

tả sự tìm kiếm trong cache liên kết đầy đủ.

 Ưu điểm:

Cache liên kết đầy đủ cho phép sắp xếp linh hoạt các khối nhớ từ bộ nhớ chính

vào bất kỳ dòng cache nào có thể, do đó nó cho tỷ số trúng cache cao.

 Nhược điểm:

Sơ đồ thực hiện tìm kiếm cache phức tạp, thời gian tìm kiếm có thể lâu hơn

khi dung lượng cache tăng lên, vì một địa chỉ của từ mà chương trình tham chiếu

phải so sánh với giá trị của tất cả các thẻ. Để hạn chế nhược điểm này, cache liên

kết đầy đủ chỉ ứng dụng cho các cache có dung lượng nhỏ, thường nhỏ hơn 4KB. Vì

lý do này mà cache liên kết đầy đủ ít được sử dụng.

2.1.3.2. Cache sắp xếp trực tiếp

Cache sắp xếp trực tiếp còn được gọi là cache liên kết tập hợp 1-dòng.

 Nguyên tắc sắp xếp:

- Mỗi dòng của cache có thể nhận một số khối, nhưng mỗi khối của bộ nhớ

chính chỉ được sắp xếp vào một dòng cố định của cache có địa chỉ phù hợp với công

thức i = j mod C (trong đó, C là tổng số dòng của cache, j là địa chỉ của khối trong

bộ nhớ chính và i là số hiệu của dòng và là số dư của j chia cho C). Ví dụ, nếu tổng

25 số dòng của cache là C = 10, thì chỉ các khối có các địa chỉ là j = 7, 17, 27, 37,... có

thể nạp vào dòng cache có địa chỉ i = 7, vì j/C cho số dư i = 7. Tương tự, một trong

các khối có địa chỉ là j = 2, 12, 22, 32,.. chỉ có thể được sắp xếp vào dòng i = 2 của

cache như hình 2.5.

- Địa chỉ của từ nhớ gồm N bit được diễn giải thành ba trường: trường thẻ,

trường dòng cache và trường từ.

- Trường từ có W bit ghi địa chỉ từ trong khối, trường dòng có R bit ghi địa chỉ

Thẻ(S-R=16)

Dòng (R=11)

Từ (W=5)

A035F002H

1010.0000.0011.0101

111.1000.0000

0.0010

Địa chỉ bộ nhớ

Cache

Bộ nhớ chính

Khối

Dòng

Thẻ

Từ

dòng của cache, trường thẻ có (S - R) bit ghi địa chỉ của khối.

S-R

R

W

L0

B0

780H

A035H

S

W

Lj

Bj

Thẻ

W

Trúng cache

LC-1

BM-1

Trượt cache

Hình 2.5: Tìm kiếm trong cache sắp xếp trực tiếp [62, 72].

So sánh

Để minh họa, cho rằng bộ nhớ chính dung lượng 232 từ , chia ra M = 227 khối (S = 27), mỗi khối có 25 = 32 từ (W = 5). Dung lượng của cache sắp xếp trực tiếp là 216 = C × 25 , có số dòng là C = 211 (R = 11 bit). Địa chỉ của từ nhớ được diễn giải

gồm ba trường: trường W = 5 bit, trường dòng R = 11 bit và trường thẻ S - R = 27-

11 = 16 bit. Hình 2.5 diễn giải giá trị địa chỉ A035F002H của từ nhớ được chia

thành ba phần: trường địa chỉ từ 01H, trường địa chỉ dòng giá trị 780H, trường thẻ

có địa chỉ khối giá trị A035H của địa chỉ A035F002H. Giá trị của trường thẻ trỏ tới

dòng có địa chỉ 780H của cache. Nội dung của thẻ của dòng này được đọc ra so

26 sánh với địa chỉ A035H. Nếu trùng (đó là trúng cache), thì giá trị 02H của địa chỉ

trỏ tới vị trí từ trong cache có nội dung cần tìm.

 Ưu điểm:

Sơ đồ tìm kiếm trong cache sắp xếp trực tiếp đơn giản, có tốc độ tìm kiếm

nhanh và chi phí thấp, bởi vì nó chỉ cần so sánh địa chỉ yêu cầu với một địa chỉ của

dòng cache tương ứng.

 Nhược điểm:

Có thể xảy ra tham chiếu lặp đi, lặp lại đến một số khối của bộ nhớ chính được

sắp xếp vào cùng một dòng của cache. Những khối này sẽ liên tục hoán đổi vị trí

vào trong và ra ngoài cache, gây ra sự suy giảm tỷ số trúng cache. Trong hệ thống

đơn nhiệm sự hoán đổi vị trí ít xảy ra, nhưng trong các hệ thống đa nhiệm sự hoán

đổi xảy ra thường xuyên và như vậy giảm hiệu năng của cache sắp xếp trực tiếp.

2.1.3.3. Cache liên kết tập hợp

Cache liên kết tập hợp là sự kết hợp của hai tổ chức cache: cache liên kết đầy

đủ và cache sắp xếp trực tiếp nhưng chỉ tận dụng các ưu điểm và hạn chế các nhược

điểm của hai tổ chức cache này.

 Nguyên tắc sắp xếp:

- Cache được chia thành S tập hợp, mỗi tập hợp có K dòng.

- Một khối của bộ nhớ chính chỉ được sắp xếp trực tiếp vào một tập hợp phù

hợp theo “s = b mod S” (trong đó b là địa chỉ khối, S là số tập hợp, s là số hiệu của

tập hợp phù hợp với khối và là số dư của b chia cho S).

Hình 2.6 diễn giải sơ đồ tìm kiếm trong cache liên kết tập hợp 2-dòng, trong

đó mỗi tập hợp chỉ có 2-dòng, mỗi dòng có kích thước bằng một khối gồm 32 từ. Dung lượng của cache là 216 = C × 25 có số dòng C = 211 hay số tập hợp 211/2 = 210

và D = 10 là số bit của trường địa chỉ tập hợp. Địa chỉ mà CPU tham chiếu là

A035F002H được diễn giải như sau: trường địa chỉ tập hợp (D = 10 bit) có giá trị

380H của địa chỉ A035F002H trỏ đến tập hợp trong cache phải tham chiếu, trường

địa chỉ khối (S - D = 17 bit) giá trị 1406BH của địa chỉ A035F002H được so sánh

27 với từng giá trị của hai thẻ của hai dòng trong tập hợp 380H được chọn. Nếu trùng

(trúng cache) thì trường địa chỉ của từ (W = 5) giá trị 02H sẽ trỏ từ thứ 32 của dòng

Thẻ (S-D=17)

Tập hợp (D=10) Từ (W=5)

A035F002H

1.0100.0000.0110.1011

11.1000.0000

0.0010

Địa chỉ bộ nhớ

Thẻ

Cache Khối

Thẻ

L0

Bộ nhớ chính

W

Tập hợp Từ D

S-D

Tập hợp 0

L1

B0

S

W

Li

Bj

Li+1

1406BH

Tập hợp i (380H)

BM-1

W

LC-2

So sánh

Trúng cache

LC-1

Tập hợp (S-1)

Trượt cache

Hình 2.6: Tìm kiếm trong cache liên kết tập hợp [62, 72].

được chọn trong tập hợp 0F80H.

 Ưu điểm:

Sơ đồ tìm kiếm đơn giản, có tốc độ tìm kiếm nhanh và chi phí thấp, bởi vì nó

chỉ cần so sánh địa chỉ yêu cầu với một địa chỉ của tập hợp tương ứng trong cache.

Trong tập hợp được chọn, một khối có thể sắp xếp vào bất kỳ dòng nào (theo cách

của cache liên kết đầy đủ). Do đó, tận dụng được ưu điểm của cache liên kết đầy đủ,

đó là tỷ số trúng cache cao.

Cache liên kết tập hợp diễn giải một địa chỉ bộ nhớ chính gồm ba phần: trường

thẻ có (S - D) bit chứa địa chỉ khối, trường tập hợp có D bit chứa địa chỉ tập hợp và

trường từ có W bit chứa địa chỉ của từ trong khối.

28

Để giảm mức độ phức tạp và chi phí của sơ đồ so sánh tìm kiếm, mỗi tập hợp

chỉ có ít dòng, thường là 2-, 4-, 8-dòng,… Cache liên kết tập hợp thường gắn với số

lượng dòng trong một tập hợp và gọi là cache liên kết tập hợp n-dòng. Nếu mỗi tập

hợp có 4-dòng thì đó là cache liên kết tập hợp 4-dòng và một khối có thể sắp xếp

vào bất kỳ dòng nào trong 4-dòng của tập hợp được chọn theo nguyên tắc sắp xếp

trực tiếp “s = b mod S”.

Tổ chức cache liên kết tập hợp hạn chế được trường hợp tham chiếu lặp đi, lặp

lại đến một số khối của bộ nhớ chính có sắp xếp vào cùng một dòng của cache sắp

xếp trực tiếp, tận dụng được ưu điểm của cache liên kết đầy đủ và hạn chế sự phức

tạp của sơ đồ tìm kiếm nếu mỗi tập hợp chỉ có số ít dòng. Cache liên kết tập hợp 2- ,

4-, …, n-dòng cho tỷ số trúng cache cao [39]. Do đó, chúng được dùng phổ biến

trong các chip đơn lõi và đa lõi. Hầu hết, các kiến trúc Pentium của Intel sử dụng tổ

chức cache liên kết tập hợp 2-dòng, trong đó dòng cache có kích thước 32B (hay

× 32B = 4096B), mỗi tập hợp có 2 dòng cache. Kiến trúc Pentium 4 của Intel với

256 bit), trang cache ở bộ nhớ chính có kích thước 4KB hay 128 dòng cache (vì 128

L2 và L3 cache có tổ chức cache liên kết tập hợp 8-dòng với kích thước mỗi dòng là

128B. Kiến trúc Nehalem Xeon 4, 6-lõi với 2-luồng/lõi của Intel với 3 cấp cache

(L1, L2, L3) trên chip, trong đó: mỗi lõi có L1I cache 32KB liên kết tập hợp 4-

dòng, L1D cache 32KB liên kết tập hợp 4-dòng, L2 cache 256KB liên kết tập hợp

8-dòng và tất cả các lõi chia sẻ L3 cache (2  3)MB liên kết tập hợp 16-dòng. Tương

tự, kiến trúc Core i7 4-lõi, 2-luồng/lõi của Intel, cũng có 3 cấp cache trên chip,

trong đó: mỗi lõi có L1I cache 32KB liên kết tập hợp 4-dòng, L1D cache 32KB liên

kết tập hợp 4-dòng, L2 cache 256KB liên kết tập hợp 8-dòng và tất cả các lõi chia

sẻ L3 cache 8MB liên kết tập hợp 16-dòng [25].

2.2. Các đặc tính hiệu năng của cache

Không có một số duy nhất để chỉ tốc độ của hệ thống cache, thay vào đó cần

phải sử dụng tốc độ “hàng” của cache.

Tốc độ “hàng” của cache là tốc độ của các chip SRAM được dùng làm cache

vì cache được chế tạo bởi công nghệ SRAM. Tốc độ của các chip SRAM cho giới

hạn trên về hiệu năng.

29

Phần SRAM dùng làm thẻ cần phải nhanh hơn phần SRAM dùng để lưu nội

dung của khối. Bởi vì, nội dung của thẻ cần phải được đọc ra trước để so sánh. Cần

phải so sánh nội dung thẻ và đủ thời gian để đọc nội dung của cache trong một chu

kỳ nhịp đồng hồ của bus bộ nhớ.

Ngoài tốc độ truy nhập cache, hiệu năng của các tổ chức cache trong các chip

đơn lõi và đa lõi còn được xác định qua tỷ số trúng cache và trượt cache.

2.2.1. Các tỷ số trúng cache và trượt cache [25]

2.2.1.1. Trúng cache

Trúng cache là khi CPU thực hiện một chương trình, nó phải truy nhập đến

một từ (là dữ liệu hay lệnh) của bộ nhớ mà từ này đã sẵn có ở trong cache. Hiệu

năng của cache phụ thuộc vào số lần trúng cache.

2.2.1.2. Trượt cache

Nếu từ tham chiếu không có trong cache, thì đó là trượt cache. Khi đó, chương

trình phải tham chiếu đến bộ nhớ chính để tải cả khối nhớ, trong đó có từ yêu cầu

vào trong một dòng của cache được chọn. Để nạp khối vào dòng cache, trong khi

toàn bộ phần chứa dữ liệu của cache đã đầy, thì phải có nội dung cũ của một dòng

trong cache phải bị loại bỏ và được thay thế bởi nội dung của khối mới từ cấp cache

cao hơn hay từ bộ nhớ chính. Dòng cache bị thay thế được gọi là dòng “nạn nhân”.

Thay thế dòng cache được thực hiện theo một số chính sách thay thế cache.

2.2.1.3. Tỷ số trúng cache, trượt cache và trượt penalty

 Thời gian trúng cache (Hit time): là khoảng thời gian truy nhập cache khi

trúng cache.

 Tỷ số trúng cache H (Hit rate): là số lần trúng cache trên tổng số lần truy

nhập bộ nhớ.

 Tỷ số trượt cache M (Miss rate): M = 1 - H

 Thời gian trượt penalty (Miss penalty): là khoảng thời gian được tính bằng

số chu kỳ đồng hồ cần thiết để tải nội dung một khối từ bộ nhớ chính vào một dòng

cache (hay từ một dòng của cache cấp cao hơn vào một dòng cache ở cấp thấp hơn)

30 khi CPU tham chiếu đến bộ nhớ. Thời gian trượt penalty được gọi là thời gian truy

nhập bộ nhớ chính (MAT).

 Thời gian trung bình truy nhập bộ nhớ (AMAT) trong hệ thống

- Một cấp cache (L1):

AMAT = L1hit time + (L1miss rate) × (L1miss penalty) (2.2a)

L1

hay AMAT = L1hit time + (L1miss rate)×(MAT) (2.2b)

L1

L1 miss penalty = MAT (2.1)

- Hai cấp cache (L1, L2):

L1miss penalty = (L2 hit time) + (L2 miss rate)(L2 miss penalty) (2.3)

AMAT

= L1 hit time + (L1 miss rate)(L2 hit time

L1L2

L2 miss penalty = MAT (2.4)

+ (L2miss rate)(L2miss penalty))

hay AMAT

= L1 hit time + (L1 miss rate)(L2hit time

L1L2

(2.5a)

+ (L2miss rate)(MAT))

(2.5b)

L1miss penalty = (L2 hit time) + (L2 miss rate)(L2 miss penalty ) (2.6)

L2 miss penalty = (L3 hit time) + (L3 miss rate)(L3 miss penalty) (2.7)

L3 miss penalty = MAT (2.8)

AMAT

= L1hit time + (L1miss rate)(L2hit time + (L2miss rate)

L1L2L3

- Ba cấp cache (L1, L2, L3):

×(L3hit time + (L3miss rate)(L3miss penalty)))

hay AMAT

= L1hit time + (L1miss rate)(L2hit time + (L2miss rate)

L1L2L3

(2.9a)

× (L3hit time + (L3miss rate)(MAT)))

(2.9b)

 Mức tăng tốc (SP) của hệ thống:

SP = MAT/AMAT (2.10)

31 2.2.1.4. Bus bộ nhớ, kích thước từ nhớ, kích thước khối và trượt penalty

Khi có trượt cache, CPU phải tham chiếu đến bộ nhớ chính qua bus bộ nhớ, và

phải xét cả trễ qua bus bộ nhớ và kích thước từ nhớ (bit). Khi đó:

Tốc độ truyền dữ liệu qua bus bộ nhớ = Kích thước từ nhớ (bit)/chu kỳ bus (2.11)

 Tốc độ truyền dữ liệu qua bus bộ nhớ

 Thời gian để truyền khối cache

Kích thước khối cache Thời gian để truyền khối cache = (2.12)

Tốc độ truyền dữ liệu qua bus bộ nhớ

 Trượt penalty

- Một cấp cache (L1):

L1 miss penalty = Trễ truy nhập bộ nhớ + Thời gian để truyền khối L1cache

(2.13)

- Hai cấp cache (L1, L2):

L2 miss penalty = Trễ truy nhập bộ nhớ + Thời gian để truyền khối L2cache

(2.14)

- Ba cấp cache (L1, L2, L3):

L3 miss penalty = Trễ truy nhập bộ nhớ + Thời gian để truyền khối L3cache

(2.15)

2.2.1.5. Trượt cache cục bộ và toàn cục

Trong hệ thống có nhiều cấp cache cần phải xác định tỷ số trượt cache cục bộ

và tỷ số trượt cache toàn cục.

Số lần truy nhập bộ nhớ đến cache cục bộ

Số lần trượt trong cache cục bộ Tỷ số trượt cục bộ = (2.16)

Tổng số lần truy nhập bộ nhớ từ CPU

Số lần trượt trong cache cục bộ Tỷ số trượt toàn cục = (2.17)

2.2.1.6. Trì hoãn truy nhập bộ nhớ

Thời gian trung bình truy nhập bộ nhớ (AMAT), được tính bằng số chu kỳ

đồng hồ cần thiết để hoàn thành yêu cầu truy nhập bộ nhớ của CPU (tính từ khi

32 CPU bắt đầu đưa ra địa chỉ bộ nhớ cho đến khi CPU nhận được nội dung yêu cầu từ

bộ nhớ hoặc bộ nhớ đã được ghi). Lý tưởng, AMAT = 1 chu kỳ, điều này có nghĩa

là không có thời gian trì hoãn (hay chờ đợi) khi truy nhập bộ nhớ.

 Số chu kỳ đồng hồ trì hoãn truy nhập bộ nhớ mà CPU phải thực hiện cho

một truy nhập bộ nhớ (MSPMA) được xác định bằng:

MSPMA = AMAT – 1 (2.18)

 Số chu kỳ đồng hồ trì hoãn truy nhập bộ nhớ mà CPU thực hiện cho một

lệnh (MSPI) được xác định bằng:

MSPI = MSPMA × MAPI (2.19)

 Số chu kỳ đồng hồ trì hoãn truy nhập bộ nhớ mà CPU thực hiện cho một

lệnh được xác định bằng:

MSPI = MAPI × L1 miss rate ×L1 miss penalty (2.20a)

L1

- Đối với một cấp cache (L1):

MSPI = (AMAT - L1 hit time) ×MAPI (2.20b)

L1

L1

hay

MSPI

= MAPI × L1 miss rate ×(L2 hit time

L1L2

- Đối với hai cấp cache (L1, L2):

+ L2 miss rate × L2 miss penalty)

(2.21a)

MSPI

= (AMAT

- L1 hit time) ×MAPI (2.21b)

L1L2

L1L2

hay

MSPI

= MAPI × L1 miss rate × (L2 hit time + L2 miss rate

L1L2L3

- Đối với ba cấp cache (L1, L2, L3):

× (L3hit time + L3 miss rate × L3 miss penalty)

MSPI

= (AMAT

(2.22a)

- L1 hit time) ×MAPI (2.22b)

L1L2L3

L1L2L3

hay

Cho rằng, trong trường hợp lý tưởng CPI = 1 chu kỳ, thì:

Performance = (MSPI

+ L1hit time) / (MSPI

+ L1hit time) (2.23)

L1L2

L1L2L3

 Hiệu năng của hệ thống 2 cấp cache so với 3 cấp cache là :

33

2.2.1.7. Ảnh hưởng của tổ chức cache đến trượt penalty

Các tổ chức cache: cache liên kết đầy đủ, cache sắp xếp trực tiếp, và cache

liên kết tập hợp có mức độ phức tạp khác nhau và có tỷ số trượt cache khác nhau,

do đó ảnh hướng đến MAT cũng khác nhau.

Tỷ số trượt cục bộ và toàn cục với hai cấp cache: L1I cache 64 KB liên kết tập

hợp 2-dòng, L1D cache 64 KB liên kết tập hợp 2-dòng, L2 cache 4 KB  4MB thể

t ợ ư r t ố s ỷ T

Kích thước cache (KB)

Hình 2.7: So sánh tỷ số trượt cục bộ và toàn cục với 2 cấp cache [25].

hiện ở đồ thị như hình 2.7.

Để xét ảnh hưởng của L2 cache liên kết tập hợp 2-dòng và L2 cache sắp xếp

trực tiếp đến trượt penalty. Giả sử rằng cache liên kết tập hợp 2-dòng tăng thời gian

trúng cache lên 10% chu kỳ đồng hồ. Thời gian trúng cache đối với L2 cache sắp

xếp trực tiếp là 10 chu kỳ đồng hồ. Tỷ số trượt cục bộ đối với L2 cache sắp xếp trực

tiếp là 25%. Tỷ số trượt cục bộ đối với L2 cache liên kết tập hợp 2-dòng là 20%.

Trượt penalty đối với L2 cache là 50 chu kỳ đồng hồ.

AMAT

L2 hit time L2 miss rate × L2 miss penalty

L2

Khi đó, AMAT được xác định:

(2.24)

AMAT

10 + 25%×50

L2direct mapped

- Đối với L2 cache sắp xếp trực tiếp:

34

= 22,5 chu kỳ

- Đối với L2 cache liên kết tập hợp 2-dòng.

AMAT

(10 + 0,1) + 20%×50

=

L2 2-way set accociative

Vì thời gian trúng cache tăng lên 0,1 chu kỳ đồng hồ, nên

= 20,1 chu kỳ

Từ các kết quả trên cho thấy rằng: với tổ chức cache liên kết tập hợp cho thời

gian trung bình truy nhập bộ nhớ là nhỏ nhất. Vì vậy, trong kiến trúc CMP đa luồng nên sử dụng tổ chức cache liên kết tập hợp.

2.2.1.8. Kích thước khối cache và tỷ số trượt

Đồ thị ở hình 2.8 biểu diễn sự thay đổi của kích thước khối cache: 1KB, 4KB,

16 KB, 64 KB, 256 KB và dung lượng của dòng cache: 16B, 32B, 64B, 128B, 256B

sẽ ảnh hưởng đến tỷ số trượt cache. Kích thước cache và dung lượng dòng cache

t ợ ư r t ố s ỷ T

Kích thước cache (KB)

Hình 2.8: Sự phụ thuộc của tỷ số trượt vào kích thước cache [25].

lớn thì tỷ số trượt giảm [25, 31].

Hình 2.9 chỉ ra kích thước cache, dung lượng của dòng cache và các tổ chức

của cache: cache sắp xếp trực tiếp, cache liên kết đầy đủ và cache liên kết tập hợp

2-, 4-, 8-,...n-dòng sẽ ảnh hưởng đến tỷ số trượt cache.

35

4-dòng

Trực tiếp

2-dòng

8-dòng

t ợ ư r t ố s ỷ T

0,1 0,01 0,001 1e-04 1e-05 1e-06

Đầy đủ

1K 4K 16K 64K 256K 1M ∞ Kích thước cache

Hình 2.9: Sự phụ thuộc của tỷ số trượt cache theo kích thước và tổ chức của cache [75].

Cache liên kết tập hợp 8-dòng có tỷ số trượt tiệm cận với cache liên kết đầy

đủ. Cache sắp xếp trực tiếp cho tỷ số trượt cao nhất.

2.2.1.9. Các loại trượt cache

Có 4 loại trượt cache: trượt ép buộc, trượt dung lượng, trượt do đụng độ, và

trượt chính sách.

 Trượt ép buộc:

Trượt ép buộc xảy ra khi một khối lần đầu tiên được truy nhập đến mà nó

không có trong cache. Do đó, khối được yêu cầu phải được tải từ bộ nhớ chính vào

một dòng của cache. Loại trượt này còn được gọi là trượt lần tham chiếu đầu tiên

hay trượt lạnh.

 Trượt dung lượng:

Trượt dung lượng xảy ra khi dung lượng của cache không đủ lớn để sắp xếp

tất cả các khối được yêu cầu khi CPU thực hiện chương trình, một số khối bị bỏ đi

và phải nạp lại sau đó.

 Trượt đụng độ:

Trượt đụng độ xảy ra trong các cache liên kết tập hợp hoặc sắp xếp trực tiếp

khi có ít nhất hai khối đồng thời sắp xếp đến cùng một tập hợp, và một khối phải bị

bỏ đi rồi nạp lại (tức là có hai địa chỉ bộ nhớ chính cùng tham chiếu đến một tập

hợp của cache). Loại trượt này còn gọi là trượt giao thoa.

36

 Trượt chính sách:

Trượt chính sách xảy ra bởi chính sách thay thế cache, hay chính sách chọn

dòng cache nào cho thay thế khi cache bị đầy nội dung.

2.2.1.10. Tổ chức cache ảnh hưởng đến tốc độ của CPU

Cho một chương trình với n kiểu lệnh với các đặc tính như sau:

Ci = số lệnh thuộc kiểu i

CPIi = số chu kỳ đồng hồ trung bình của một lệnh thuộc kiểu i

n

Fi = Tần suất của kiểu lệnh i = Ci/Tổng số lệnh

CPI =

CPI × F i i

i =1

Thì: (2.25)

Tỷ số của tổng thời gian thực hiện các lệnh kiểu i là:

i =

CPI × F i i CPI

(2.26)

Để minh họa, cho rằng chip kiến trúc RISC thực hiện một chương trình với các

Bảng 2.1: Tần suất thực hiện các loại lệnh và CPI trong chip kiến trúc RISC [25].

tần suất thực hiện các loại lệnh và CPI như bảng 2.1:

CPI =

(CPI ×F ) = 0,5×1+0,2×5 +0,1×3+ 0,2×2

i

n  i=1

Khí đó:

i = 2,2 chu kỳ/lệnh

Đối với một chương trình được biên dịch để chạy trên một máy tính “A” với

các thông số được cung cấp:

37

- Tổng số lệnh trong một chương trình là I, được xác định bằng lệnh/chương

CPI

trình (instructions per program).

execution

- Số chu kỳ đồng hồ để thực hiện một lệnh là , được xác định bằng

chu kỳ/lệnh (cycles/instruction).

- Số chu kỳ đồng hồ trì hoãn bộ nhớ cho một lệnh (MSPI) được xác định bằng

chu kỳ/lệnh (cycles/instruction):

- Thời gian của một chu kỳ đồng hồ là C = 1/clock rate, được xác định bằng

giây/chu kỳ (seconds/cycle).

Khi đó:

CPU

time = I×(CPI

+ MSPI)×C (2.27a)

execution

execution

CPU

time = I×(CPI

 Thời gian thực hiện chương trình của CPU được xác định bằng:

+ MAPI×miss rate×misspenalty)×C (2.27b)

execution

execution

hay

CPU

time = I× (CPI

+ MSPI

) × C (2.28a)

L1

execution

execution

CPU

time = I×(CPI

- Với một cấp cache (L1):

+MAPI×L1 miss rate×L1 miss penalty)×C (2.28b)

execution

execution

hay

CPU

time = I×(CPI

+ MAPI×(AMAT - L1 hit time))×C (2.28c)

execution

L1

execution

hay

CPU

time = I× (CPI

+ MSPI

) × C (2.29a)

L1L2

execution

execution

hay CPU

time = I×(CPI

+ MAPI×L1 miss rate

execution

- Với hai cấp cache (L1, L2):

execution ×(L2hit time + L2 miss rate×L2 misspenalty))×C

CPU

time = I×(CPI

+ MAPI×(AMAT

(2.29b)

- L1 hit time))×C (2.29c)

execution

execution

L1L2

hay

CPU

time = I× (CPI

+ MSPI

) × C (2.30a)

L1L2L3

execution

execution

- Với ba cấp cache (L1, L2, L3)

38

hay CPU

time = I×(CPI

+ MAPI×L1 miss rate×(L2 hit time

execution

execution

+ L2 miss rate× (L3 hit time + L3 miss rate×L3 misspenalty)))×C

CPU

time = I×(CPI

+ MAPI×(AMAT

(2.30b)

-L1 hit time))×C (2.30c)

L1L2L3

execution

execution

hay

CPI

= CPI

+ MSPI (2.31)

actual

Ideal

 Số chu kỳ thực hiện thực tế của một lệnh (CPIactual):

2.2.2. Các giải pháp tăng hiệu năng của cache

 Giảm tỷ số trượt:

Để giảm tỷ số trượt cần phải tăng dung lượng của dòng cache, tăng kích thước

của cache, tăng mức độ liên kết tập hợp (n-dòng), dự đoán dòng, liên hợp giả, và tối

ưu chương trình dịch.

 Giảm trượt penalty:

Để giảm trượt penalty cần tổ chức nhiều cấp cache, cache nạn nhân, đọc trượt

trước tiên, hợp nhất các bộ đệm ghi, và thực hiện tiến trình song song.

 Giảm thời gian trúng cache:

Để giảm thời gian trúng cache cần thiết kế cache nhỏ và đơn giản, tránh

chuyển đổi địa chỉ, truy nhập cache theo đường ống.

2.3. Các chính sách thay thế dòng cache

Khi có trượt cache, chương trình thực hiện phải tham chiếu đến bộ nhớ chính

để đọc khối nhớ yêu cầu về CPU và đồng thời nạp vào một dòng cache. Sự thay thế

nội dung của một dòng cache chỉ xảy ra khi cache không còn một chỗ trống nào. Vì

vậy, phải lựa chọn một dòng cache nào đó làm dòng “nạn nhân” cho sự thay thế: nội

dung của nó phải được thay thế bằng nội dung của khối mới nạp từ bộ nhớ chính.

Cache sắp xếp trực tiếp không có sự chọn lựa thay thế, vì mỗi khối chỉ được sắp xếp

vào một dòng tương ứng và sơ đồ sắp xếp được thiết kế cứng dễ dàng. Nhưng các

cache liên kết đầy đủ và cache liên kết tập hợp có một số lựa chọn để thay thế dòng

cache, đó là chính sách thay thế dòng cache và chúng được thực hiện bằng phần

cứng. Chính sách thay thế dòng cache thông thường có 4 thuật toán thay thế: Sử

39 dụng gần đây ít nhất (LRU); Vào trước, ra trước (FIFO); Tần suất sử dụng ít nhất

(LFU); và Ngẫu nhiên (Random) [4, 5, 10, 62].

2.3.1. Chính sách thay thế cache LRU

Khi thực hiện thuật toán LRU, một dòng bị chọn làm dòng nạn nhân để thay

thế bằng nội dung mới của một khối từ bộ nhớ chính nếu nội dung cũ của dòng này

ít được sử dụng gần đây nhất. LRU là thuật toán thay thế được sử dụng phổ biến

trong các CMP [4, 12, 59].

2.3.2. Chính sách thay thế cache LFU

Để thực hiện thuật toán LFU, mỗi dòng cache có thêm quan hệ với bộ đếm

riêng, và bộ đếm được tăng lên mỗi khi dòng tương ứng được tham chiếu. Như vậy,

một dòng được thay thế khi giá trị bộ đếm của nó nhỏ nhất, vì nó có tần suất tham

chiếu ít nhất.

2.3.3. Chính sách thay thế cache FIFO

Để thực hiện thuật toán FIFO, các dòng cache được sắp xếp trong một danh

sách theo kiểu hàng đợi. Đầu hàng là dòng được sử dụng gần đây ít nhất (LRU),

cuối hàng là dòng được sử dụng gần đây nhiều nhất (MRU). Khi có trượt cache và

thực hiện thay thế, dòng LRU ở đầu hàng là nạn nhân trước tiên, nó bị đẩy ra ngoài

hàng, nghĩa là nội dung cũ của nó bị thay thế bởi nội dung của khối từ bộ nhớ chính.

Hàng có nội dung bị thay thế trở thành hàng MRU, nó được đưa vào vị trí trống ở

cuối hàng. FIFO cũng là thuật toán thay thế thông dụng.

2.3.4. Chính sách thay thế cache Random

Random là thuật toán thay thế tùy tiện, nghĩa là chọn bất cứ dòng nào của

cache để sắp xếp một khối từ bộ nhớ chính. Thuật toán này đơn giản cho thiết kế

phần cứng, chi phí thấp. Nếu dùng cache liên kết tập hợp 2-dòng thì tỷ số trượt

cache của thuật toán Random chỉ cao hơn thuật toán LRU và vì chỉ có hai dòng

trong một tập hợp nên chỉ có thể thay thế một trong hai dòng mà thôi. Do đó, thuật

toán Random có cơ hội thay thế 50-50 như LRU. Dung lượng cache càng lớn thì tỷ

số trượt cache của cả Random và LRU đều giảm đi và sự khác biệt của hai thuật

toán này không đáng kể.

40

Các chính sách thay thế LRU, LFU, FIFO, Random,.. được sử dụng có hiệu

quả trong các chip đơn lõi và cũng được sử dụng cho các CMP đa luồng, tuy nhiên

không đạt được hiệu năng cao. Do đó, có một số chính sách thay thế cache được đề

xuất cho CMP đa luồng [3, 45] nhằm nâng cao hiệu năng của bộ xử lý.

2.3.5. Chính sách thay thế cache NRU

Chính sách thay thế NRU là một cách xấp xỉ của chính sách thay thế cache

LRU, thường được sử dụng trong CMP đa luồng hiện đại hiệu năng cao. NRU sử

dụng một bit duy nhất cho mỗi khối cache được gọi là nru-bit. Với chỉ 1 bit của

thông tin, NRU cho phép hai dự đoán khoảng tham chiếu lại: Tham chiếu lại gần

ngay lập tức và tham chiếu lại xa. Khi giá trị nru-bit = 0 có nghĩa là một khối cache

được sử dụng gần đây và khối cache đã dự đoán sẽ được tham chiếu lại trong tương

lai gần ngay lập tức. Khi giá trị nru-bit = 1 có nghĩa là khối này không được sử

dụng gần đây và khối được dự đoán sẽ được tham chiếu lại trong tương lai xa. Khi

đầy cache, NRU luôn luôn dự đoán rằng thiếu khối sẽ có tham chiếu lại gần ngay

lập tức. Với tham chiếu lại, NRU một lần nữa dự đoán trước rằng khối tham chiếu

sẽ có tham chiếu lại gần ngay lập tức. Khi trượt cache, NRU lựa chọn các khối

cache nạn nhân mà dự đoán tham chiếu lại trong tương lai xa, tức là, một khối mà

nru-bit = 1. Bởi vì nhiều khối cache có thể có một dự đoán tham chiếu lại xa. Chính

sách lựa chọn nạn nhân NRU luôn luôn bắt đầu việc tìm kiếm nạn nhân từ một vị trí

cố định. Trong trường hợp tất cả các giá trị nru-bit = 0, tức là, tất cả các khối được

dự đoán sẽ được tham chiếu lại trong tương lai gần ngay lập tức, NRU cập nhật các

dự đoán tham chiếu lại của tất cả các khối cache trong tương lai xa và lặp lại tìm

kiếm nạn nhân. Cập nhật tất cả nru-bit = 1 cho phép chính sách lựa chọn nạn nhân

thực hiện tiến trình chuyển tiếp trong khi đó cũng loại bỏ các khối cũ từ cache.

2.3.6. Chính sách thay thế cache SRRIP

Với một bit thông tin, NRU có thể dự đoán hoặc là khoảng tham chiếu lại gần

ngay lập tức hoặc là khoảng tham chiếu lại xa cho tất cả các khối được lấp đầy vào

cache. Luôn dự đoán khoảng tham chiếu lại gần ngay lập tức trên tất cả cache được

chèn vào làm hạn chế hiệu năng cache cho các mô hình truy nhập hỗn hợp. Mặt

khác, luôn dự đoán khoảng tham chiếu lại xa làm giảm đáng kể hiệu năng cache cho

41 các mô hình truy nhập mà chủ yếu là khoảng tham chiếu lại gần ngay lập tức. Để

khắc phục hạn chế của NRU một chính sách thay thế cache SRRIP được đề xuất.

Chính sách thay thế cache SRRIP thực hiện dựa trên dự đoán khoảng cách

tham chiếu lại (RRIP). RRIP sử dụng M-bit cho mỗi khối cache để lưu trữ một trong 2M giá trị dự đoán tham chiếu lại (RRPV) có thể thực hiện được. RRIP biết

được linh hoạt thông tin tham chiếu lại cho mỗi khối cache trong mô hình truy nhập

cache. Khi RRPV = 0 có nghĩa là một khối cache được dự đoán sẽ tham chiếu lại trong tương lai gần ngay lập tức, trong khi RRPV = 2M - 1 có nghĩa là một khối

cache đã dự đoán sẽ được tham chiếu lại trong tương lai xa. Về mặt định lượng,

RRIP dự đoán rằng các khối có các RRPV nhỏ được tham chiếu lại sớm hơn các

khối có các RRPV lớn. Khi M = 1, RRIP cho phép hai dự đoán khoảng tham chiếu

lại đó là tham chiếu lại ngay lập tức và tham chiếu lại xa. Khi M > 1, RRIP cho

phép các khoảng tham chiếu lại trung gian tức là lớn hơn khoảng tham chiếu lại gần

ngay lập tức nhưng nhỏ hơn khoảng tham chiếu lại xa. Mục đích chủ yếu của RRIP

là để ngăn chặn các khối cache với một khoảng tham chiếu lại xa do làm bẩn cache.

Như vậy, SRRIP dự đoán khoảng tham chiếu lại của tất cả các khối cache bị

trượt để có một khoảng tham chiếu lại trung gian. Khi đó, RRIP cập nhật dự đoán

tham chiếu lại ngắn hơn so với dự đoán trước đó trong khoảng tham chiếu lại.

Chính sách thay thế cache SRRIP có hai chính sách để cập nhật dự đoán tham

chiếu lại: SRRIP-ưu tiên trúng (SRRIP-HP) và SRRIP-ưu tiên tần suất (SRRIP-FP).

Chính sách RRIP-HP dự đoán rằng khối cache nhận được trúng cache sẽ được

tham chiếu lại trong tương lai gần ngay lập tức và cập nhật RRPV của khối cache

liên quan bằng không. Mục đích của chính sách HP là ưu tiên thay thế các khối

cache không nhận được trúng cache hơn khối cache bất kỳ nhận được trúng cache.

Chính sách RRIP-FP cập nhật khoảng tham chiếu lại đã được dự đoán là ngắn

hơn khoảng tham chiếu lại trước đó, mỗi lần một khối cache nhận được trúng cache.

Chính sách FP hoàn thành việc này bằng cách giảm số ghi RRPV (trừ khi số ghi

RRPV = 0) khi trúng cache. Mục đích của chính sách FP là ưu tiên thay thế các khối

cache tham chiếu lại không thường xuyên khi các khối cache tham chiếu lại thường

xuyên. Theo [3], SRRIP-HP thực hiện tốt hơn SRRIP-FP rất nhiều.

42

2.3.7. Chính sách thay thế cache DRRIP

Sử dụng chính sách thay thế cache SRRIP sẽ không hiệu quả khi khoảng

tham chiếu lại của các khối cache là lớn hơn so với dung lượng cache sẵn có. Trong

các tình huống như vậy, SRRIP sẽ gây ra hiện tượng đập cache và dẫn đến là không

trúng cache. Hiện tượng này được khắc phục bằng cách đề xuất chính sách thay thế

hai phương thức RRIP (BRRIP). BRRIP chèn vào phần lớn các khối cache với một dự đoán khoảng tham chiếu lại xa (tức là RRPV = 2M - 1) và chèn không thường

xuyên (với xác suất thấp) các khối mới với dự đoán khoảng tham chiếu lại dài (tức là RRPV = 2M - 2). BRRIP tương tự như chính sách chèn hai phương thức (BIP)

[45] thành phần của BIP giúp duy trì một số tập làm việc trong cache.

Đối với các mô hình truy nhập không đập cache, sử dụng BRRIP có thể làm

giảm đáng kể hiệu năng cache. Do đó, để sử dụng cho tất cả các mô hình truy nhập

cache, bằng cách đề xuất một chính sách thay thế cache dự đoán khoảng tham chiếu

lại động (DRRIP).

DRRIP sử dụng tranh chấp tay đôi tập hợp (SD) để xác định chính sách thay

thế nào là phù hợp nhất cho một ứng dụng. Chính sách thay thế cache DRRIP lựa

chọn linh hoạt giữa SRRIP và BRRIP bằng cách sử dụng hai bộ giám sát tranh chấp

tay đôi tập hợp (SDM). SDM hạn chế trượt cache cho bất kỳ chính sách được đưa ra

bằng cách cung cấp thường xuyên một vài tập hợp của cache theo chính sách đó.

SD sử dụng một bộ đếm lựa chọn chính sách (PSELC) duy nhất để xác định chính

sách được chọn. DRRIP sử dụng chính sách được chọn của hai SDM cho các tập

hợp còn lại của cache.

2.4. Ghi và đọc cache

2.4.1. Ghi cache

Khi thực hiện một chương trình, mỗi khi CPU có nhu cầu ghi nội dung mới ra

một khối của bộ nhớ chính, mà một phần hay toàn bộ nội dung cũ của khối nhớ đó

đang lưu giữ trong một dòng của cache. CPU phải thực hiện đồng thời ghi dữ liệu

mới đó vào dòng cache và vào khối nhớ tương ứng trên bộ nhớ chính để đảm bảo sự

đồng nhất dữ liệu trên cả hai vị trí (dòng cache và khối nhớ). Như vậy, khi trúng

43 cache nội dung của dòng cache được đọc đồng nhất với nội dung của khối mà CPU

tham chiếu. Thời gian của quá trình ghi này được điều khiển nhờ chính sách ghi.

Khi có tham chiếu ghi bộ nhớ và cache, có thể xuất hiện 2 trường hợp:

 Dữ liệu bẩn:

Dữ liệu bẩn là dữ liệu bị thay đổi bên trong dòng cache nhưng chưa thay đổi

bên trong khối nhớ tương ứng ở bộ nhớ chính.

 Dữ liệu cũ:

Dữ liệu cũ là dữ liệu bị thay đổi trong khối nhớ ở bộ nhớ chính nhưng không

thay đổi trong dòng cache tương ứng.

Có hai cách ghi cache: ghi thông qua và ghi trở lại [24, 62, 72].

2.4.1.1. Ghi thông qua

Trong ghi thông qua, mỗi lần ghi, CPU đồng thời ghi ngay nội dung mới vào

Lưu trữ

CPU

Nạp vào

Cache

Bộ nhớ chính

Nạp vào cache

Hình 2.10: Ghi thông qua [72].

cả dòng của cache và khối nhớ tương ứng ở bộ nhớ chính như hình 2.10.

Ghi thông qua còn gọi là ghi “caching một nửa”, nội dung mới được ghi ngay

vào cache để cho CPU có thể sớm đọc nó.

 Ưu điểm:

Nội dung của bộ nhớ chính và nội dung của dòng cache luôn tương đồng với

nhau, không cần phải nạp từ cache vào bộ nhớ chính, và thực hiện đơn giản.

 Nhược điểm:

Phải tham chiếu bộ nhớ chính nên thời gian ghi chậm. Như vậy, để tăng tốc

cần tăng băng thông kết nối bộ nhớ chính.

44

2.4.1.2. Ghi trở lại

Ghi trở lại còn gọi là sao lưu trở lại cache, là ghi “caching đầy đủ”. CPU chỉ

ghi nội dung mới vào dòng cache, mà không ghi đồng thời vào khối tương ứng ở bộ

nhớ chính. Như vậy, nội dung cũ trong khối nhớ ở bộ nhớ chính có thể không tương

đồng với nội dung mới của dòng cache tương ứng. Để thực hiện cách ghi này, một

bit trạng thái được bổ sung cho từng dòng cache (thường vào trường thẻ tương ứng

của dòng cache), gọi là “dirty bit”. Khi có ghi vào dòng cache theo kiểu ghi trở lại,

bit này được thiết lập bằng “1” để chỉ cho bộ điều khiển cache biết rằng: dữ liệu đã

bị thay đổi trong dòng cache (dòng bẩn) và nếu quyết định sử dụng lại dòng cache

này làm “nạn nhân” cho thay thế bởi nội dung của một khối khác, thì trước tiên phải

thực hiện sao lưu nội dung hiện tại của dòng “nạn nhân” (hay dòng bẩn) về một

khối nhớ tương ứng trong bộ nhớ chính như hình 2.11. Như vậy, cần phải hai lần

truy nhập bộ nhớ chính: lần truy nhập thứ nhất là ghi nội dung của dòng nạn nhân

vào bộ nhớ và lần truy nhập thứ hai là đọc nội dung một khối nhớ từ bộ nhớ vào

Lưu trữ

Ghi trở lại

Cache

CPU

Bộ nhớ chính

Nạp vào

Nạp vào cache

Hình 2.11: Ghi trở lại [72].

cache khi thay thế dòng cache.

 Ưu điểm:

Tốc độ thực hiện nhanh, tiết kiệm băng thông của bộ nhớ chính vì giảm được

thời gian ghi vào nhớ chính.

 Nhược điểm:

Nội dung của khối nhớ, mà nó đã được lưu trên cache, có thể bị thay đổi bởi

các thiết bị khác (ví dụ khi đọc nội dung đĩa cứng vào bộ nhớ chính qua DMA hoặc

bộ xử lý đa lõi), khi đó bản sao nội dung của khối nhớ trong cache có thể trở thành

cũ. Do đó, bộ điều khiển cache cần phải liên tục giám sát những thay đổi trong bộ

nhớ chính và đảm bảo các nội dung của cache phải phù hợp theo vết các thay đổi

của bộ nhớ chính. Có nhiều kỹ thuật được sử dụng cho phép bộ điều khiển cache

45 giám sát bộ nhớ chính, giảm tần xuất ghi trở lại cache khi xảy ra thay thế dòng

cache, tuy nhiên chúng cũng làm phức tạp hơn khối mạch và tăng chi phí.

Nhiều hệ thống cache sử dụng cách ghi cache trở lại có thể được cấu hình để

thực hiện cách ghi cache thông suốt.

Cả hai cách ghi này đang được sử dụng rộng rãi hiện nay. Hầu hết các CMP đa

luồng của Intel đều sử dụng cách ghi thông suốt [72].

Để nâng cao hiệu năng của quá trình CPU ghi nội dung vào cache bằng cách

sử dụng giải pháp đưa vào một bộ đệm ghi sử dụng công nghệ SRAM, và đặt nó

Cache

CPU

Bộ nhớ chính

Bộ đệm ghi

(a): Bộ đệm ghi ở giữa CPU và bộ nhớ chính.

L1 cache

CPU

L2 cache

Bộ nhớ chính

Bộ đệm ghi

(b): Bộ đệm ghi ở giữa L1 cache và L2 cache.

Hình 2.12: Kỹ thuật bộ đệm ghi [72].

giữa bộ nhớ chính và CPU hoặc giữa L1 cache và L2 cache như hình 2.12 [72].

Trong trường hợp bộ đệm ghi đặt giữa CPU và bộ nhớ chính: CPU ghi nội

dung đồng thời ra dòng cache và bộ đệm ghi với tốc độ cao hơn so với thời gian

CPU ghi ra bộ nhớ chính công nghệ DRAM, sau đó đơn vị điều khiển bộ nhớ thực

hiện ghi tiếp nội dung mới từ bộ đệm ghi ra khối nhớ tương ứng trong bộ nhớ chính

mà không chiếm thời gian của CPU và cache.

Trong trường hợp bộ đệm ghi đặt giữa CPU và L2 cache: CPU đồng thời ghi

nội dung ra dòng L1 cache và bộ đệm ghi, sau đó điều khiển cache sẽ thực hiện ghi

tiếp nội dung của bộ đệm ghi ra L2 cache mà không chiếm thời gian của CPU và L1

cache.

46

Như vậy, kỹ thuật bộ đệm ghi cho phép giảm được trễ do CPU không truy

nhập bộ nhớ chính (hay L2 cache) khi sử dụng cách ghi thông suốt, và trong trường

hợp sử dụng cách ghi trở lại thì chỉ thực hiện sao lưu từ bộ đệm ghi ra khối nhớ của

bộ nhớ chính mà không cần sử dụng tới CPU và cache.

2.4.2. Đọc cache

Hầu hết các tham chiếu của CPU đến bộ nhớ chính là các tham chiếu để đọc

nội dung từ bộ nhớ. Có hai trường hợp để đọc cache: CPU đọc một từ (mã lệnh

hoặc dữ liệu) từ dòng cache khi trúng cache và CPU đọc một từ (mã lệnh hoặc dữ

liệu) từ bộ nhớ chính khi trượt cache. Có hai kiến trúc đọc cache đó là: đọc bên

cạnh và đọc thông suốt [24, 72].

2.4.2.1. Đọc bên cạnh

Hình 2.13 là sơ đồ đơn giản của kiến trúc đọc bên cạnh: bộ nhớ chính và cache

nằm ở hai phía đối diện của giao tiếp của hệ thống. Như vậy, bộ nhớ chính và cache

CPU

Giao tiếp hệ thống

Bộ nhớ chính

Cache (SRAM)

Thẻ RAM (TRAM)

Bộ điều khiển cache

Hình 2.13: Đọc bên cạnh [72].

có thể đồng thời thực hiện các chu kỳ bus riêng của mình.

Khi CPU bắt đầu chu kỳ đọc bộ nhớ, tùy thuộc vào tổ chức cache, có sự so

sánh để tìm kiếm dữ liệu yêu cầu có hay không trong một dòng cache nào đó:

- Nếu trúng cache, thì chu kỳ đọc cache được thực hiện: CPU đọc dữ liệu từ

dòng cache được lựa chọn, và không cần phải tham chiếu bộ nhớ chính.

- Nếu trượt cache, thì chu kỳ đọc bộ nhớ chính được thực hiện: CPU đọc dữ

liệu từ bộ nhớ chính và đồng thời khối chứa dữ liệu đó được đọc về dòng cache

tương ứng, bởi vì theo dự đoán nhờ các nguyên tắc tham chiếu, có thể ngay sau đó

dữ liệu này hoặc những dữ liệu lân cận trong khối có thể nhanh chóng được CPU

tham chiếu.

47

Kỹ thuật đọc này có cấu trúc không phức tạp, chi phí thấp, bảo đảm thời gian

đọc nhỏ khi trượt cache, vì sự truyền tải khối từ bộ nhớ chính đến cache có thể thực

hiện độc lập bằng các chu kỳ bus của mình và chúng không ảnh hưởng đến điều

khiển các truy nhập của các thiết bị khác thông qua giao tiếp hệ thống.

2.5.2.2. Đọc thông suốt

Hình 2.14 là sơ đồ đơn giản của kiến trúc đọc thông suốt. Nó có đặc điểm: bộ

nhớ chính ở phía bên đối diện của giao tiếp hệ thống, cache nằm giữa CPU và bộ

nhớ chính. Như vậy, cache có chu kỳ của CPU trước khi chuyển chu kỳ của CPU

đến giao tiếp hệ thống. Khi CPU bắt đầu chu kỳ đọc bộ nhớ, tùy thuộc vào tổ chức

cache, có sự so sánh để tìm kiếm từ yêu cầu có hay không trong một dòng cache

CPU

Cache (SRAM)

Bộ điều khiển cache

Thẻ RAM (TRAM)

Giao tiếp hệ thống

Bộ nhớ chính

Hình 2.14: Đọc thông suốt [72].

nào đó:

- Nếu trúng cache, thì chu kỳ đọc cache được thực hiện: CPU đọc từ yêu cầu

từ dòng cache được lựa chọn và không cần phải tham chiếu bộ nhớ chính.

- Nếu trượt cache, thì chu kỳ đọc bộ nhớ chính được thực hiện: CPU đọc từ

yêu cầu từ bộ nhớ chính thông suốt qua cache, trong đó có từ yêu cầu được đọc về

dòng cache tương ứng, bởi vì theo dự đoán của các nguyên tắc tham chiếu, có thể

ngay sau đó từ này hoặc những từ lân cận trong khối có thể nhanh chóng được CPU

tham chiếu.

Kỹ thuật đọc thông suốt cho phép thực hiện thao tác với cache trong khi vẫn

dành bus hệ thống cho các thiết bị khác để tham chiếu đến bộ nhớ chính, ví dụ, thực

48 hiện DMA giữa bộ nhớ chính và thiết bị nhớ ngoài như HDD, CD/DVD. Kỹ thuật

này phức tạp cho điều khiển các truy nhập của CPU cho các thành phần còn lại của

hệ thống máy tính, do đó chi phí cũng lớn. Khi có trượt cache, phải thực hiện chu

kỳ đọc từ bộ nhớ chính về CPU thông qua bus hệ thống và hệ thống cache, do đó

làm chậm truy nhập của các thiết bị khác qua bus hệ thống. Để khắc phục hiện

tượng này cần phải tăng tỷ số trúng cache.

2.5. Cache chia sẻ thông minh

2.5.1. Tổ chức phân cấp cache trong các chip đa xử lý

Trong các CMP đa luồng, mỗi lõi xử lý có L1I cache và L1D cache riêng,

nhưng L2 cache hoặc có thể riêng cho từng lõi [11, 29, 38, 50] hoặc có thể chia sẻ

a)

b)

Hình 2.15: CMP đa luồng hai cấp cache; a) với L2 cache riêng và

(b) với L2 cache chung cho tất cả các lõi [38,72].

cho tất cả các lõi [2, 8, 16, 17, 29, 38, 72] như hình 2.15.

Trong một số CMP đa luồng có thể có L3 cache chia sẻ cho các lõi, khi đó L2

Hình 2.16: Tổ chức cache trong các bộ xử lý 8-lõi của Intel Xeon họ 5500 [13, 14, 64, 65].

cache là riêng cho từng lõi như hình 2.16.

49

Với xu hướng công nghệ là tăng số lượng lõi để tiết kiệm không gian, các kiến

trúc đa lõi hiện nay hầu hết sử dụng L2 cache chia sẻ. Các lõi với L1 Icache và L1

Dcache riêng kết hợp vào trong chip và các lõi chia sẻ L2 cache. Ví dụ, kiến trúc

Tiled CMP 16-lõi như hình 2.17. Ở đây, L2 cache được tổ chức thành các mảnh

phân bố đều theo các lõi được chia sẻ, một mảnh L2 cache chia sẻ cho 4-lõi kề.

Kiến trúc này cho phép linh hoạt trong cấu hình lại L2 cache chia sẻ cho các lõi

theo nhu cầu dung lượng, giảm đáng kể yêu cầu băng thông tổng thể, và tăng hiệu

Hình 2.17: Tiled CMP 16-lõi với kiến trúc L2 cache chia sẻ [49, 50].

năng của hệ thống [9, 49, 50].

2.5.2. Cache chia sẻ thông minh

Cache thông minh đầu tiên được đưa ra bởi kiến trúc Intel® Advanced Smart

Cache có cache chia sẻ ở cấp cuối cùng, từ kiến trúc Nehalem họ Xeon 5500 và tiếp

tục đến các kiến trúc Corei (L3 smart cache) [66]. AMD và Sun cũng đưa ra các đặc

tính thông minh của cache chia sẻ ở cấp cache cuối. Cache chia sẻ thông minh có

những đặc điểm sau đây:

 Cache chia sẻ cho tốc độ chuyển dữ liệu giữa các lõi nhanh hơn so với bộ

nhớ chính.

 Kiến trúc cache chia sẻ đem lại nhiều lợi ích và đảm bảo tỷ số hiệu năng/chi

phí tốt hơn so với cache riêng.

 Sử dụng hiệu quả cache chia sẻ

- Nếu một lõi rỗi, lõi còn lại chiếm lấy toàn bộ dung lượng của cache chia sẻ.

- Giảm sự không sử dụng của cache chia sẻ.

50

 Linh hoạt cho người lập trình

- Có nhiều khả năng chia sẻ dữ liệu cho các luồng chạy trên từng lõi riêng mà

chúng cùng chia sẻ cache.

- Một lõi có thể xử lý trước hoặc xử lý sau dữ liệu cho các lõi còn lại.

- Có các cơ chế truyền thông thay phiên nhau giữa các lõi.

 Giảm được sự phức tạp của liên kết logic cache

- Giảm sự chia sẻ bị lỗi của cache chia sẻ.

- Tải nhỏ hơn cho duy trì sự kết dính với nhau so với kiến trúc cache riêng.

 Giảm dư thừa lưu trữ dữ liệu

- Cùng một dữ liệu chỉ cần lưu trữ một lần.

- Các luồng lệnh giống nhau chạy ở các lõi riêng nhưng trên dữ liệu khác

nhau cùng chia sẻ các địa chỉ lệnh. Khi đó, các địa chỉ lệnh được sao chép cho tất cả

các cache (riêng và chia sẻ) sẽ gây ra sự lãng phí, mà chỉ cần có một bản sao của

các lệnh trên cache chia sẻ.

 Giảm lưu lượng của bus bộ nhớ

Chia sẻ dữ liệu hiệu quả giữa các lõi, cho phép dữ liệu yêu cầu được giải

quyết ở cấp cache chia sẻ cuối cùng thay vì tất cả đi đến bộ nhớ chính.

2.6. Tính nhất quán cache trong các chip đa xử lý, đa luồng

2.6.1. Thế nào là nhất quán cache

Nhất quán cache: Tính nhất quán của cache là khi cache chứa bản sao của một

phần của bộ nhớ chính, điều quan trọng là cache luôn phản ánh nội dung bộ nhớ

chính [64, 67]. Một số thuật ngữ được dùng để mô tả quá trình duy trì tính nhất

quán của bộ nhớ cache:

 Snoop:

Snoop là khi cache đang giám sát các đường địa chỉ cho giao tác. Chức năng

này cho phép cache biết được các giao tác đang truy nhập đến vùng bộ nhớ có nội

dung mà nó đang giữ.

51

 Snarf:

Cache được gọi là đã snarf dữ liệu khi nó có được những thông tin từ các

đường dữ liệu. Chức năng này cho phép cache cập nhật và duy trì tính nhất quán

của nó.

Như vậy, snoop và snarf là hai cơ chế mà cache dùng để duy trì tính nhất quán

cache.

Nhất quán cache chỉ có trong kiến trúc chip đa lõi, bởi vì các lõi đều cùng chia

sẻ cache và bộ nhớ. Xét trường hợp cụ thể sau đây: Cho rằng CPU là chip đa xử lý

có 2-lõi là P1 và P2. Giai đoạn thứ nhất P2 thực hiện lệnh: ld r2, x (nạp nội dung

Hình 2.18: P2 thực hiện lệnh ld r2, x về thanh ghi r2 của P2 [67].

của ngăn nhớ x từ bộ nhớ chính về thanh ghi r2 của P2) như hình 2.18.

Giai đoạn thứ hai, P1 thực hiện lệnh ld r2, x (nạp nội dung ngăn nhớ x từ bộ

Hình 2.19: P1 thực hiện lệnh ld r2, x [67]. Hình 2.20: P1 thực hiện các lệnh: add r1,

nhớ chính về thanh ghi r2 của P1) như hình 2.19.

r2, r4; st x, r1 [67].

Lúc này, nội dung ngăn nhớ x giống với nội dung ở các thanh ghi r2 của P1 và

P2. Tiếp theo, P1 thực hiện liên tiếp các lệnh add r1, r2, r4 (cộng nội dung của các

52 thanh ghi r1, r2, r4 và lưu kết quả vào r1), st x, r1 (chuyển nội dung của r1 vào

ngăn nhớ x) như hình 2.20. Đến đây, có thể thấy rằng nội dung của ngăn nhớ x trên

bộ nhớ chính đã thay đổi khác với nội dung của nó đã được lưu trên các thanh ghi

r2 của P1 và P2.

2.6.2. Các giao thức nhất quán cache

Có hai kỹ thuật để đảm bảo tính nhất quán cache: Dựa vào thư mục và rình mò

[25, 34, 62].

Trong giao thức dựa vào thư mục, một thư mục trung tâm chứa trạng thái của

chia sẻ một khối của bộ nhớ chính, giao thức dựa vào thư mục được sử dụng trong

các chip đa xử lý có bộ nhớ chia sẻ phân tán (DSM), nhưng giao thức này trễ cao

hơn so với giao thức “rình mò”.

Trong giao thức rình mò, không cần có thư mục trung tâm, từng cache “rình

mò” hoặc nghe để đảm bảo tính nhất quán trong các cache. Giao thức rình mò được

sử dụng trong các chip đa xử lý có bộ nhớ chia sẻ tập trung (CSM) sử dụng mạng

liên kết có cấu hình Bus và Ring [43].

2.7. Kết luận chương 2

- Chương này đã nghiên cứu các tổ chức cache của kiến trúc CMP đa luồng;

các đặc tính hiệu năng cache, và các cách ghi và đọc cache. Đồng thời, nghiên cứu

đã đánh giá các tổ chức cache và lựa chọn được tổ chức cache liên kết tập hợp n-

dòng cho hiệu năng xử lý cao nhất.

- Nghiên cứu các chính sách thay thế cache cho kiến trúc CMP đa luồng nhằm

nâng cao hiệu năng xử lý.

Tuy nhiên, các nghiên cứu hiện nay đều tập trung tổ chức cache 2 cấp với L2

cache chia sẻ cho tất cả các lõi. Với kiến trúc chip có 2 cấp cache như vậy, khi số

lượng lõi tăng lên sẽ làm hạn chế băng thông, làm tăng độ trễ, và gây nghẽn nút cổ

chai tại cấp cache chia sẻ. Vì vậy, việc nghiên cứu đánh giá, đề xuất mô hình tổ

chức cache phù hợp nhằm cải thiện và nâng cao hiệu năng của CMP đa luồng là hết

sức cần thiết.

53

Chương 3

PHÂN TÍCH ĐÁNH GIÁ HIỆU NĂNG CỦA TỔ CHỨC

CACHE TRONG KIẾN TRÚC CHIP ĐA XỬ LÝ, ĐA LUỒNG

3.1. Cơ sở lý thuyết để phân tích đánh giá hiệu năng của tổ chức cache [6,

23, 42]

3.1.1. Kiến trúc chip đa xử lý, đa luồng là mạng xếp hàng đóng đa lớp có

dạng tích các xác suất (MCPFQN)

3.1.1.1. Khái quát mạng xếp hàng đóng

Mạng xếp hàng đóng là mạng xếp hàng không có các cửa vào và các cửa ra,

mà thay vào đó là các liên kết hồi tiếp từ một số cửa ra của một số hàng đợi nào đó

đến một số cửa vào của một số hàng đợi khác. Như vậy, trong mạng xếp hàng đóng

không có khách hàng (bản tin) nào có thể vào và hoặc ra khỏi mạng và tổng số

khách hàng là một số không đổi và được xác định. Hình 3.1 là ví dụ một mô hình

mạng xếp hàng đóng. Tùy theo số lượng lớp công việc (khách hàng) mà có mạng

µ2

µ3

µ1

xếp hàng đóng đơn lớp công việc và mạng xếp hàng đóng đa lớp công việc.

µN

Hình 3.1: Mô hình mạng xếp hàng đóng [23].

 Các loại nút hàng đợi

Mô hình mạng xếp hàng đóng thường sử dụng một số loại nút hàng đợi sau:

 Loại 1: M/M/m-FCFS

Trong đó, M đầu tiên biểu thị thời gian giữa các lần đến phân bố theo hàm mũ,

M thứ hai biểu thị thời gian phục vụ phân bố theo hàm mũ, và m là số lượng server

(m ≥ 1). Loại này có nguyên tắc phục vụ là khách hàng vào trước được phục vụ

trước (FCFS), các thiết bị nhớ thường được mô hình như một nút hàng đợi loại này.

54

 Loại 2: M/G/m-PS

Trong đó, M biểu thị thời gian giữa các lần đến phân bố theo hàm mũ, G biểu

thị thời gian phục vụ theo phân bố chung, m số lượng server (m ≥ 1), và nguyên tắc

phục vụ là chia sẻ xử lý (PS). Các CPU của máy tính thường được mô hình như một

nút hàng đợi loại này.

 Lọai 3: M/G/∞ (server vô hạn)

Trong đó, M biểu thị thời gian giữa các lần đến phân bố theo hàm mũ, G biểu

thị thời gian phục vụ theo phân bố chung, và số lượng server là vô hạn, các thiết bị

đầu cuối có thể được mô hình như các nút hàng đợi loại này.

 Loại 4: M/G/1-LCFS PR

Trong đó, M biểu thị thời gian giữa các lần đến phân bố theo hàm mũ, G biểu

thị thời gian phục vụ theo phân bố chung, số lượng server bằng 1, và nguyên tắc

phục vụ là khách hàng vào sau được phục vụ trước theo kiểu quay vòng (LCFS PR),

trong thực tế không ứng dụng mô hình nút loại 4 này trong các hệ thống máy tính.

 Đặc điểm của mạng xếp hàng đóng

Mạng xếp hàng đóng có đặc điểm sau đây:

- Có K nút trong mạng; i = 1, 2,…, K

- ni: số lượng khách hàng ở nút i; với i = 1, 2,…, K

K

N =

i

n (3.1)

i=1

- Tổng số khách hàng (công việc) cùng loại (lớp) vận hành trong mạng đóng

0 , tức là p0i = 0. Không có khách hàng nào từ bất kỳ nút i nào ra khỏi mạng,

0iλ

- Không có khách hàng mới nào từ ngoài mạng đến bất kỳ nút i trong mạng,

tức là pi0 = 0. Do đó, tổng số khách hàng ở trong mạng xếp hàng đóng là cố định

không đổi.

K

- Với pij là xác suất định tuyến từ nút i đến nút j thỏa mãn cho mạng đóng

1

ij

 p

 j 1

; i = 1, 2, …, K (3.2)

55

K

- Tổng tốc độ của các khách hàng đến nút i được xác định là

i

λ p j

ji

λ  =

j=1

với i = 1, 2, …, K (3.3)

- Số cuộc trung bình đến nút i (tốc độ tương đối đến nút i) của khách hàng là

ν = i

λ i λ

K

K

p

p j

λ

ν λ j

ji

ji

K

j=1

j=1

hay

=

=

=

ν p j

ν = i

ji

λ

λ

λ i λ

j=1

; với i = 1, 2, …, K (3.4)

iE S có phân

- Mỗi server ở nút i có thời gian phục vụ khách hàng trung bình

 i E S

1 μ

i

bố hàm mũ với giá trị và độc lập với các thời gian phục vụ ở các nút

khác, độc lập với các quá trình đến.

- Mức độ sử dụng của nút i là

< 1

U = i

λ i m μ i

i

(3.5a)

i

Trong đó: mi là số server trong từng nút i. Nếu mi = 1, ta có hàng đợi loại M/M/1, thì mức độ sử dụng của nút i là

λ < μ (3.5b)

< 1

U = i

i

i

λ μ

i

hay

iν .

- Đối với mạng đóng chỉ có thể xác định các giá trị tốc độ đến tương đối

Do đó, mức độ sử dụng tương đối của nút i được xác định

=

U = i

ν i m μ i

λ i m μ λ i

i

i

(3.5c)

;

 n m

n μ × i

i

i

- Các tốc độ phục vụ của từng nút là hàm phụ thuộc số công việc

μ (n ) i

i

;

 n m

i m μ × i

i

i

i

   

(3.6)

56

 Trong trường hợp mạng xếp hàng đóng có đa lớp công việc

- R: số lượng các lớp công việc trong một mạng, với r = 1, 2,.., R.

K R

- nir : số lượng các công việc của lớp thứ r ở nút i

n = N

ir



i=1 j=1

(3.7)

K

n = N

- Nr: số lượng công việc của lớp thứ r trong toàn mạng

ir

r

i=1

(3.8)

- N: tổng số công việc thuộc tất cả các lớp của toàn mạng là một vector tổng

các số lượng công việc của từng lớp, với N = (N1, N2,.., NR).

K

- Si: trạng thái của nút i của mạng, Si = (ni1, ni2,…, niR), và thỏa mãn

i

S = N

i=1

(3.9)

- S: trạng thái của toàn mạng gồm nhiều lớp, các công việc là vector

S = (S1, S2…, SN)

irμ : tốc độ phục vụ của nút i cho tất cả các công việc thuộc lớp r.

-

- pir,js : xác suất định tuyến mà công việc của lớp r ở nút i được chuyển đến lớp

s ở nút j.

3.1.1.2. Khái quát mạng xếp hàng đóng có dạng tích các xác suất

Mạng xếp hàng đóng có dạng tích các xác suất là mạng Gordon-Newell được

mở rộng từ định lý Jackson của mạng xếp hàng mở.

 Định nghĩa mạng Gordon-Newell

Gordon-Newell định nghĩa như sau:

Một mạng gồm K nút kết nối với nhau được gọi là mạng Gordon-Newell nếu

nó thỏa mãn các điều kiện sau đây:

- Là một mạng đóng (không có khách hàng từ bên ngoài vào mạng và không

có khách hàng nào từ bên trong đi ra khỏi mạng).

57

- Tất cả thời gian phục vụ được phân bố theo hàm mũ và nguyên tắc phục vụ

ở tất cả các nút là FCFS (hay FIFO).

K

- Một khách hàng được phục xong ở nút i sẽ chuyển một số nút j khác với xác

1

ji

 p

 j 1

. suất chuyển tiếp pij, thỏa mãn

- Mức độ sử dụng của tất cả các nút đều nhỏ hơn 1.

 Định lý Gordon-Newell

K

N

Định lý Gordon-Newell phát biểu rằng: trong một mạng Gordon-Newell gồm

i

n

  , trong đó ni: số lượng khách hàng ở nút i,

 i 1

K nút, với tổng số khách hàng

thì có tích xác suất trạng thái bền vững

π(n) π(n ,n ,...,n ) 1 K

2

F (n ) i i

1 K  G(N)  i 1

(3.10)

Trong đó, G(N): hằng số bình thường hóa, và thỏa mãn điều kiện bình thường

K

hóa là tổng tất các các xác suất trạng thái mạng bằng 1

G(N)

F (n ) i i

  

n

 

... n N i 1  

n 1

2

K

(3.11)

Trong đó, Fi(ni): là các hàm tương ứng với các xác suất πi(ni) của nút i, được

in

) =

×

cho bởi

i

( F n i

ν i μ

β

1 (n ) i

i

i

  

  

(3.12)

iν : là số cuộc trung bình đến nút i, được xác định theo (3.4).

Trong đó,

Hàm

β n được xác định theo i

i

; n m

i

n ! i

i

i

; n m

β (n ) i

i

m !m i

 n m i i

i

i

i

    1 ; m 1 

(3.13)

Cho các ứng dụng khác nhau, mà các tốc độ phục vụ phụ thuộc vào số lượng

iF(n ) được cho bằng i

các công việc ở từng nút, dạng chung của hàm

58

F (n ) = i i

in ν i A (n ) i i

μ ( j) ; n

0

i

i

(3.14)

A (n ) i i

0

i

in       j 1  1 ; n 

Với: (3.15)

Với quan hệ (3.6) có thể dễ dàng nhận thấy rằng: trường hợp các tốc độ phục

vụ là hằng số thì đẳng thức (3.12) là trường hợp riêng của đẳng thức (3.14).

 Tính các xác suất trạng thái theo phương pháp Gordon-Newell

Tính các xác suất trạng thái theo phương pháp Gordon-Newell có thể thực

hiện theo 4 bước:

Bước 1: Tính các số cuộc trung bình đến tất cả các nút i = 1, 2,..., K của mạng

xếp hàng đóng theo công thức (3.4).

Bước 2: Đối với tất cả các nút i = 1, 2,..., K, tính các hàm Fi(ni) theo công thức

(3.14).

Bước 3: Tính hằng số bình thường hóa G(N) theo công thức (3.11).

Bước 4: Tính các xác suất trạng thái của mạng theo công thức (3.10).

3.1.1.3. Kiến trúc chip đa xử lý, đa luồng là mạng xếp hàng đóng đa lớp có

dạng tích các xác suất (MCPFQN)

Một CMP đa luồng được coi là một hệ thống mạng xếp hàng đa lớp công việc.

Các công việc trong mạng đa lớp được coi là song song mức lệnh (ILP) hay song

song mức luồng (TLP), mỗi lệnh hay mỗi luồng lệnh có đặc điểm riêng được coi là

một lớp. CMP đa luồng chỉ xử lý một số luồng hay một số lệnh cố định (không

thêm vào, không bớt đi) nên được mô hình hóa bằng mạng xếp hàng đóng. Vì các

luồng có thể khác nhau về thời gian phục vụ (do độ dài luồng, tính chất các lệnh và

dữ liệu của luồng) nên mạng xếp hàng đóng được gọi là mạng xếp hàng đóng đa

lớp. Trong CMP đa luồng các lệnh hay luồng lệnh có cùng thời gian phục vụ, cùng

tính chất thuộc vào một lớp.

59

Kiến trúc CMP đa luồng là một hệ thống đóng tìm được nghiệm của các đẳng

thức cân bằng toàn cục, nghiệm này có dạng tích các xác suất.

Do đó, kiến trúc CMP đa luồng được mô hình hóa bằng một mạng xếp hàng

đóng đa lớp có dạng tích các xác suất (MCPFQN).

3.1.2. Thuật toán phân tích giá trị trung bình (MVA) đánh giá hiệu năng cho

các mạng xếp hàng đóng có dạng tích các xác suất

Có nhiều thuật toán được sử dụng để xác định các thông số hiệu năng của các

mạng xếp hàng đóng có dạng tích các xác suất, như: lý thuyết Gordon-Newell, thuật

toán chập, thuật toán phân tích giá trị trung bình (MVA). Tuy nhiên, quan trọng hơn

cả cho các mạng xếp hàng đóng có dạng tích các xác suất là sử dụng thuật toán

MVA. Vì thuật toán MVA có ưu điểm là các số đo hiệu năng của mạng xếp hàng

đóng có thể được tính mà không cần phải tính hằng số bình thường hóa G(N) hay

phân bố xác suất trạng thái.

Thuật toán MVA được phát triển bởi Reiser và Lavenberg được dùng để phân

tích các MCPFQN. MVA sử dụng hai luật đơn giản: Luật Little cho toàn mạng và

định lý phân bố xác suất thời gian đến.

(1). Luật Little: Là quan hệ giữa số lượng trung bình các công việc, thông

E[N] = λ.E[R] (3.16)

lượng, và đáp ứng trung bình của một nút hay của toàn bộ hệ thống

(2). Định lý phân bố xác suất ở thời gian đến (hay định lý đến): Đối với tất cả

các MCPFQN, hàm khối lượng xác suất (PMF) của số lượng công việc nhận thấy

thời gian đến nút i khi có n công việc trong mạng bằng PMF của số lượng công việc

ở chính nút này với ít hơn một công việc trong mạng. Hay nói một cách khác: “Ở

thời điểm một công việc đi tới một nút trong mạng, nhận thấy rằng bản thân công

việc này không sẵn sàng vào hàng đợi của nút. Như vậy, chỉ có n - 1 công việc khác

có thể giao thoa với cuộc đến mới”.

3.1.2.1. Mạng xếp hàng đóng đơn lớp có dạng tích các xác suất

Thuật toán MVA cho mạng xếp hàng đóng đơn lớp có dạng tích các xác suất

gồm các bước sau:

60

 E N (0) = 0 ,

i

 iπ 0 \ 0 = 1,

 iπ j \ 0 = 0

Bước 1: Khởi tạo. Với i = 1, 2, …, K, j = 1, …, (mi -1)

Bước 2: Lặp theo số các công việc n = 1, 2,.., N

; Type1,2,4; (m =1)

 (1+E N (n-1) ) i

i

m -2 i

×

(3.17)

Bước 2.1: Thời gian đáp ứng trung bình của một công việc ở nút i

) (m - j-1) π (j\ n-1) ;Type1;(m 1)

E[R (n)] = i

(  1+E N (n-1) + i

i

i

i

j=0

; Type 3

 1  μ  i  1  μ m ×  ir i  1  μ  i

Bước 2.2: Tính thông lượng toàn mạng

  λ n =

K

i

n (3.18)

i=1

    ν E R n   i

Thông lượng của từng nút có thể được tính nhờ sử dụng công thức sau:

 

 

λ n = λ n ν i

i

(3.19)

iν được xác định bằng công thức (3.4)

Trong đó,

Bước 2.3: Số lượng trung bình các công việc ở từng nút i

  E N n = λ n E R n ν

i

i

i

 

   

   

 

(3.20)

Bước 2.4: Thời gian chờ đợi trung bình tại các nút

E W n = E R n -

i

i

 

   

   

 

1 μ

i

(3.21)

Bước 2.5: Mức độ sử dụng tại các nút

U = i

λ i μ m i

i

với mi là số server của nút i (3.22)

61

3.1.2.2. Mạng xếp hàng đóng đa lớp có dạng tích các xác suất

Thuật toán MVA để tính các thông số hiệu năng của các mạng xếp hàng đóng

đa lớp công việc được mở rộng từ trường hợp một lớp công việc, gồm các bước sau:

E[N (0, 0,..., 0)]

0; π (0 | 0) 1;

π(j | 0)

 0

ir

i

Bước 1: Khởi tạo: với i = 1, 2,..., K ; j = 1, ..., (mi – 1) và r = 1,..., R

Bước 2: Lặp với n = 0, …, N

Bước 2.1: Thời gian đáp ứng trung bình của các công việc của lớp r ở từng

R

E[N (n 1 )]) ; Type 1,2,4 (m 1)

(1

is

r

i

 s 1

R

 m 2 i

nút i

×

(1

E[N (n 1 )]

 

E[R (n)] i

is

r

 (m j 1) π (j| n 1 )); Type 1 (m 1) r

i

i

i

 j 0

 s 1

; Type 3

1   μ  ir  1  μ m ×  ir i  1  μ  ir

(3.23)

(n ,..., n

1,..., n )

 (n 1 ) r

1

R

r

Trong đó, là vector số công việc với một công

việc thuộc lớp r ít hơn trong mạng.

( j 1,..., (m 1))

i

R

ir

Xác suất có j công việc ở nút i và mạng đang có n công việc

π(j | n)

 λ (n)π ( j 1| n 1 ) r

r

i

1 j

ν  μ r 1

ir

  

  

(3.24)

R

ir

π(0 | n) 1

 

(m j)π ( j | n)

Và với j = 0:

λ (n) r

i

i

(3.25)

im 1  

ν μ

 r 1

 j 1

1 m i

ir

  

  

n

Bước 2.2: Thông lượng toàn mạng

λ (n) r

N

ν E[R (n)] ir

ir

 i 1

(3.26)

Thông lượng của từng nút có thể được tính nhờ sử dụng công thức sau đây:

62

λ

 

ir

  n = λ n ν r ir

(3.27)

Bước 2.3: Số lượng trung bình các công việc của lớp r ở nút i

E[N (n)] = ν .λ (n).E[R (n)] r

ir

ir

ir

(3.28)

Bước 2.4: Thời gian chờ đợi trung bình các công việc của lớp r ở nút i

E W n = E R n -

ir

ir

 

   

   

 

1 μ

ir

(3.29)

Bước 2.5: Mức độ sử dụng tại các nút i

U = ir

λ ir μ m ir

i

với mi là số server của nút i (3.30)

3.2. Mô hình tổ chức cache trong kiến trúc chip đa xử lý, đa luồng

3.2.1. Khái quát

Công nghệ vi xử lý hiện nay tập trung vào đa lõi và đa luồng cho mỗi lõi trong

một chip. CMP đa luồng cho phép đa lõi nằm trong cùng một chip để chia sẻ tài

nguyên và cải thiện mức độ sử dụng. Kỹ thuật đa luồng đồng thời (SMT) cho phép

các lõi xử lý riêng trong một chip để thực hiện các lệnh từ nhiều luồng đơn cùng

một lúc (2, 4 hoặc 8-luồng) còn gọi là siêu luồng [37, 52, 53].

Phần lớn các CMP đa luồng hiện nay sử dụng 2 cấp cache: L1 cache riêng cho

từng lõi, L2 cache chia sẻ chung cho các lõi. Khi số lượng lõi tăng lên, do có nhiều

lõi truy nhập đồng thời tại L2 cache chia sẻ, làm xuất hiện trạng thái nghẽn nút cổ

chai, dẫn đến tắc nghẽn lưu lượng dữ liệu và giảm hiệu năng của bộ xử lý.

Kiến trúc CMP đa luồng yêu cầu phân cấp cache để quản lý độ trễ và băng

thông. Trên mỗi chip thường có 2 hoặc 3 cấp cache, L1 cache riêng cho mỗi lõi, L2

cache có thể là riêng hay chia sẻ cho 2 hoặc 4-lõi, L3 cache và bộ nhớ chính luôn

luôn được chia sẻ.

Cache riêng có lợi thế: chúng gần lõi, do đó truy nhập nhanh hơn, và làm giảm

tranh chấp. Ngoài ra, cache riêng cũng có được vị trí khoảng cách tốt hơn, tất cả các

dữ liệu cần thiết qua lõi luôn được đưa vào cache của lõi. Cache riêng dễ dàng để

đạt được hiệu năng cao hơn cache chia sẻ, do ranh giới tự nhiên giữa các cache sắp

63 xếp cạnh nhau. Nhưng với kiến trúc cache riêng, vấn đề kết nối cache cần phải sử

dụng các giao thức cache phù hợp để giữ dữ liệu ổn định qua các cache, giới hạn

không gian cache được dùng không thể chia sẻ các dữ liệu cùng cache đến các

luồng trên các lõi khác nhau dẫn đến không đồng đều mức độ sử dụng của toàn bộ

không gian cache [1, 32]. Mức độ sử dụng cache không đồng đều như vậy có thể

dẫn đến suy giảm đáng kể tổng hiệu năng của hệ thống.

CMP đa luồng sử dụng cache chia sẻ có lợi thế: độ trễ của thông tin ít, một lõi

có thể tìm nạp trước dữ liệu cho lõi khác có kích thước cache nhỏ hơn cần thiết, tắc

nghẽn trên phạm vi kết nối bộ nhớ ít hơn, chia sẻ động cho phép sử dụng hiệu quả

chia sẻ không gian cache [1, 32]. Tuy nhiên, với số lượng lõi cao đòi hỏi băng thông

và kích thước cache cao hơn. Độ trễ trúng cache sẽ cao hơn do chuyển đổi logic trên

bộ nhớ cache. Mặt khác, khi thực hiện đồng thời các luồng được tạo ra từ các ứng

dụng khác nhau, tổng hiệu năng của một CMP đa luồng có thể suy giảm do các

xung đột giữa các các luồng trong không gian cache chia sẻ, một luồng của một lõi

có thể truy xuất các dữ liệu của một luồng khác và thời gian thực hiện của nó trở

nên dài hơn so với cache riêng [1].

3.2.2. Mô hình tổ chức cache trong kiến trúc chip đa xử lý, đa luồng

Trên cơ sở một số kiến trúc CMP đa luồng đã đề cập ở chương 1 và chương 2,

luận án đưa ra hai kiến trúc CMP đa luồng: kiến trúc CMP đa luồng có 2 cấp cache,

trong đó L1 cache riêng cho mỗi lõi và L2 cache chia sẻ cho tất cả các lõi như hình

3.2a và kiến trúc CMP đa luồng có 3 cấp cache, trong đó L1, L2 cache riêng cho

mỗi lõi và L3 cache chia sẻ cho tất cả các lõi như hình 3.2b, nhằm phân tích đánh

giá hiệu năng của từng kiến trúc để từ đó chọn ra kiến trúc CMP đa luồng có tổ

chức cache phù hợp cho hiệu năng xử lý tốt nhất.

Trong hình 3.2:

a) L1 cache riêng cho mỗi lõi và L2 cache chia sẻ cho tất cả các lõi.

b) L1 cache và L2 cache riêng cho mỗi lõi và L3 cache chia sẻ cho tất cả các lõi.

Ở hình 3.2 mỗi lõi có m luồng ký hiệu là T, các hộp đen là các kết nối.

64

CPU 2

CPU n

CPU 1

CPU 1

CPU 2

CPU n

T

T

T

T

T

T

T

T

T

T

T

T

L1

L1

L1

L1

L1

L1

L2

L2

L2

L2

MM

L3

a)

MM

b) )

Hình 3.2: Các kiến trúc CMP đa luồng.

3.3. Phân tích đánh giá hiệu năng của tổ chức cache trong kiến trúc chip

đa xử lý, đa luồng

3.3.1. Mô hình thực hiện phân tích hiệu năng của kiến trúc chip đa xử lý, đa

luồng

3.3.1.1. Mô hình tổng quát

Dựa vào mô hình MCFPQN để mô hình hóa cho các kiến trúc CMP đa luồng

ở hình 3.2 được thể hiện như hình 3.3.

Mô hình này đã được công bố trên các công trình:“Phân tích hiệu năng của tổ

chức cache trong kiến trúc vi xử lý đa lõi”. Kỷ yếu Hội nghị khoa học công nghệ

thông tin và truyền thông ĐHBK Hà Nội, (10/2011), pp.67-73, và “Đánh giá hiệu

năng của tổ chức cache trong hệ thống vi xử lý đa lõi, đa luồng”. Tạp chí Khoa học

& Công nghệ, các Trường Đại học kỹ thuật, Số 91, (2012), pp.54-58.

Ở hình 3.3a, mỗi lõi CPU được mô hình hóa bằng nút hàng đợi loại M/G/m-

1 / μ , i = 1,.., m. PS (chia

Ti

PS, với m luồng xử lý có thời gian phục vụ trung bình là

sẻ xử lý) có nghĩa là mỗi lõi CPU đưa ra phục vụ của mình cho một số công việc

bằng việc chia sẻ nguồn tài nguyên của nó. Mạng liên kết (Interconnect) và L2

cache chia sẻ là các điểm nối quan trọng ảnh hưởng đến hiệu năng của hệ thống. Vì

vậy, ở đây thiết lập mô hình cho Interconnect và L2 cache là một nút

65

L2μ (bao gồm thời gian

Interconnect+L2 cache với thời gian phục vụ trung bình 1/

CPU 1

µT1

L11cache

p1L11

µT2

µL1

p11

pL11L2

pL11,1

µTm

MemoryBus+Mem

µm1

Interconnect+L2cache

PL2Mem

µm2

truy cập L2 cache và sự độ trễ chuyển đổi kết nối).

µL2

pL21L2

PL2CPU

pMemCPU

µmk

µT1

CPU n

Ln1cache

pnL1

µT2

µL1

pnn

pLn1,1

pLn1Ln2

µTm

a)

CPU 1

µT1

L12cache

p1L11

pL1L2

µT2

µL1

µL2

pL11,1

pL12,1

pL12L3

p11

µTm

MemoryBus+Mem

µm1

Interconnect+L3cache

PL3Mem

µm2

µL3

pL22L3

pMemCPU

µmk

PL3CPU

µT1

CPU n

Ln2cache

Ln1cache

pnL1

pLn1Ln2

µT2

µL1

µL2

pLn1,n

pLn2L3

pLn2,n

pnn

µTm

b)

Hình 3.3: Mô hình MCPFQN tổng quát cho CMP đa luồng của hình 3.2.

L11cache

66

Ở hình 3.3b, cũng đưa ra mô hình với mỗi lõi CPU được mô hình hóa bằng nút

1 / μ , i = 1,.., m. PS (chia sẻ xử lý) có nghĩa là mỗi lõi CPU đưa ra phục vụ của

Ti

hàng đợi loại M/G/m-PS, với m luồng xử lý có thời gian phục vụ trung bình là

mình cho một số công việc bằng việc chia sẻ nguồn tài nguyên của nó. Mạng liên

kết (Interconnect) và L3 cache chia sẻ cũng là điểm nối quan trọng ảnh hưởng đến

hiệu năng của hệ thống. Vì vậy, ở đây cũng thiết lập mô hình cho Interconnect và

1/ μ L3

L3 cache là một nút Interconnect+L3 cache với thời gian phục vụ trung bình

(bao gồm thời gian truy cập L3 cache và sự độ trễ chuyển đổi kết nối).

Bus bộ nhớ (MemoryBus) và bộ nhớ chính (Mem) được đặt vào một nút

1/ μ , i = 1, ..,

mi

MemBus+Mem với thời gian phục vụ trung bình của mỗi module là

k. (bao gồm độ trễ bus bộ nhớ và thời gian truy nhập bộ nhớ).

Trong hình 3.3 tất cả các cache và MemBus+Mem được mô hình hóa bằng nút

hàng đợi loại M/M/1-FCFS.

3.3.1.2. Mô hình rút gọn

 Nhận xét:

Vì các lõi có khả năng thực hiện song song. Do đó, có thể tính đến hai trường

hợp:

- Trường hợp 1: Từng lõi thực hiện các công việc của tất cả các lớp khác nhau.

- Trường hợp 2: Mỗi lõi chỉ thực hiện các công việc của một lớp. Khi đó, với n

lõi CPU thực hiện n lớp công việc song song.

Vì các lõi có cấu trúc và tài nguyên nhớ giống nhau nên trong mô hình rút gọn

chỉ xét cho một lõi duy nhất và mỗi lõi chỉ thực hiện các công việc của một lớp.

1/ μ

Mặc định rằng, các CMP đa luồng làm việc ở 2GHz. Như vậy, thời gian phục

0,5ns ). Đối với tất cả các lõi, giả

Ti =

vụ trung bình yêu cầu là 0,5ns (hay

thuyết rằng: trong 1000 lệnh mà lõi CPU tham chiếu, chỉ có 150 lệnh có tham chiếu

Register-to-Register, nghĩa là không có tham chiếu đến hệ thống nhớ.

67

Trong 850 lệnh tham chiếu đến L1 cache có 600 lệnh trúng L1 cache, nghĩa là

tỷ số trúng L1 cache là L1 hit rate = 600 / 850 = 0,7 và tỷ số trượt L1 cache là L1 miss rate = 0,3.

L2 hit rate = 200 / (850 - 600) = 0,8 và tỷ số trượt L2 cache là L2 miss rate = 0, 2 .

Có 200 lệnh trúng L2 cache, nghĩa là tỷ số trúng L2 cache là

L3 hit rate = 400 / (850 - 600 - 200) = 0,8

Có 40 lệnh trúng L3 cache, nghĩa là tỷ số trúng L3 cache là

L3miss rate = 0, 2

Chỉ còn 10 lệnh phải tìm trong bộ nhớ chính, nghĩa là tỷ số trượt L3 cache là

1/ μ

1ns ), L2 hit time = 5

L1 =

1/ μ

Cho rằng L1 hit time = 2 chu kỳ đồng hồ (hay

2,5ns), L3 hit time (tính cả trễ Interconnect) = 10 chu

L2 =

chu kỳ đồng hồ (hay

1/ μ

5ns ), thời gian truy nhập bộ nhớ chính (tính cả trễ Memory

L3 =

1/ μ

kỳ đồng hồ (hay

40ns (hay L3 miss penalty).

mi =

bus) là

MemoryBus+Mem

µm1

CPU 1

µT1

Interconnect+L2cache

L11cache

p1L11

pL11L2

pL2Mem

µm2

µT2

µL2

µL1

pL11,1

p11

pL12,1

µmk µmk

µTm

PMem1

Hình 3.4: Mô hình MCPFQN rút gọn cho CMP đa luồng, 2 cấp cache với L2 cache chung.

 Mô hình rút gọn của hình 3.3a

Ở mô hình này mạng gồm 4 nút hàng đợi: i = 1, 2, 3, 4.

Trong đó: i = 1 là nút hàng đợi CPU 1; i = 2 là nút hàng đợi L11cache;

i = 3 là nút hàng đợi Interconnect+L2cache;

i = 4 là nút hàng đợi MemoryBus+Mem

1. Thời gian phục vụ trung bình tại các nút

= 0,5ns

= 1ns

= 2,5ns

= 40ns

1 μ

1 μ

1 μ

1 μ 1

2

3

4

; ; ;

68

2. Xác suất định tuyến tại các nút

p = 31

0,8 n

(n là số lõi trên chip) p11 = 0,15; p12 = 0,85; p21 = 0,7; p23 = 0,3;

p = 41

1 n

(n là số lõi trên chip) p34 = 0,2;

3. Tốc độ đến tại các nút

ν = i

ji

4 ν p j j=1

với i là số nút của mạng

4. Tính toán các thông số hiệu năng

Để tính toán các thông số hiệu năng theo thuật toán phân tích giá trị trung bình

(MVA) lần lượt thực hiện theo các bước:

 E N (0) = E N (0) = E N (0) = E N (0) = 0

1

2

3

4

1π (0 \ 0) = 1 ;

1π (1\ 0) = 0

Bước 1: Khởi tạo i = 1, 2, 3, 4

Bước 2: Lặp theo số lượng công việc n = 1, 2,…, N

Bắt đầu từ n = 1

Bước 2.1: Thời gian đáp ứng trung bình tại các nút được tính theo công thức

(3.17)

m - j -1 π 0 \ 0

im -2 

E R (1) = 1

  1

i

j=1

1 m μ i 1

  1+ E N (1) +  1 

    

- Nút 1 (CPU 1)

E R (1) = 2

2

  1+ E N (1) 

  

1 μ

2

- Nút 2 (L11 cache)

E R (1) = 3

3

  1+ E N (1) 

  

1 μ

3

- Nút 3 (Interconnect+L2 cache)

- Nút 4 (MemoryBus+Mem)

69

E R (1) = 4

4

  1+ E N (1) 

  

1 μ

4

1

  λ 1 =

4

i

    ν E R 1   i

i=1

Bước 2.2: Thông lượng toàn mạng được tính theo công thức (3.18)

λ 1 = λ 1 ν

 

 

i

i

- Thông lượng tại các nút được tính theo công thức (3.19)

Bước 2.3: Số lượng trung bình các công việc tại các nút được tính theo công

  E N 1 = λ 1 E R 1 ν

i

i

i

   

   

 

 

thức (3.20)

Bước 2.4: Thời gian chờ đợi trung bình các công việc tại các nút được tính

E W 1 = E R 1 -

i

i

 

   

   

 

1 μ

i

theo công thức (3.21)

Bước 2.5: Mức độ sử dụng tại các nút được tính theo công thức (3.22)

U = i

λ i μ m i

i

với mi là số server của nút i

Lặp lại với n = 2; n = 3; n = 4; …; n = N

MemoryBus+Mem

µm1

CPU1

µT1

Interconnect+L3cache

L12cache

L11cache

pL11L12

pL12L3

pL3Mem

p1L11

µm2

µT2

µL1

µL3

µL2

pL11,1

p11

pL3,1

pL12,1

µmk

µTm

PMem1

Hình 3.5: Mô hình MCPFQN rút gọn cho CMP đa luồng, 3 cấp cache với L3 cache chung.

 Mô hình rút gọn của hình 3.3b

Ở mô hình này mạng gồm 5 nút hàng đợi: i = 1, 2, 3, 4, 5.

Trong đó: i = 1 là nút hàng đợi CPU 1; i = 2 là nút hàng đợi L11cache;

70

i = 3 là nút hàng đợi L12 cache;

i = 4 là nút hàng đợi Interconnect+L3cache;

i = 5 là nút hàng đợi MemoryBus+Mem

1. Thời gian phục vụ trung bình tại các nút

0,5ns

1ns

2,5ns

5ns

= 40ns

1 

1 

1 

1 μ

1  1

2

3

4

5

; ; ;

2 Xác suất định tuyến tại các nút

p11 = 0,15; p12 = 0,85; p21 = 0,7; p23 = 0,3; p31 = 0,8; p34 = 0,2;

p = 41

p = 51

1 n

0,8 n

(n là số lõi trên chip) (n là số lõi trên chip); p45 = 0,2;

5

3. Tốc độ đến tại các nút

ν p

ν = i

j

ji

j=1

với i là số nút của mạng

4. Tính toán các thông số hiệu năng

Để tính toán các thông số hiệu năng theo thuật toán phân tích giá trị trung bình

(MVA) lần lượt thực hiện theo các bước:

= 0

 E N (0) = E N (0) = E N (0) = E N (0) = E

2

1

3

4

 

   5N 0 

1π (0 \ 0) = 1 ;

1π (1\ 0) = 0

Bước 1: Khởi tạo i = 1, 2, 3, 4, 5

Bước 2: Lặp theo số lượng công việc n = 1, 2,…, N

Bắt đầu từ n = 1

Bước 2.1: Thời gian đáp ứng trung bình tại các nút được tính theo công thức

(3.17)

m - j -1 π 0 \ 0

E R (1) = 1

  1

i

im -2  j=1

1 m μ i 1

  1+ E N (1) +  1 

    

- Nút 1 (CPU 1)

71

E R (1) = 2

2

  1+ E N (1) 

  

1 μ

2

- Nút 2 (L11 cache)

E R (1) = 3

3

  1+ E N (1) 

  

1 μ

3

- Nút 3 (L12 cache)

E R (1) = 4

4

  1+ E N (1) 

  

1 μ4

- Nút 4 (Interconnect+L3 cache)

E R (1) = 5

5

  1+ E N (1) 

  

1 μ

5

- Nút 5 (MemoryBus+Mem)

Bước 2.2: Thông lượng toàn mạng được tính theo công thức (3.18)

  λ 1 =

5

i

1

i=1

    ν E R 1   i

λ 1 = λ 1 ν

 

 

i

i

Thông lượng tại các nút được tính theo công thức (3.19)

Bước 2.3: Số lượng trung bình các công việc tại các nút được tính theo công

  E N 1 = λ 1 E R 1 ν

i

i

i

   

   

 

 

thức (3.20)

Bước 2.4: Thời gian chờ đợi trung bình các công việc tại các nút được tính

E W 1 = E R 1 -

i

i

 

   

   

 

1 μ

i

theo công thức (3.21)

Bước 2.5: Mức độ sử dụng tại các nút được tính theo công thức (3.22)

72

U = i

λ i μ m i

i

với mi là số server của nút i

Lặp lại cho n = 2; n = 3; n = 4; …; n = N

3.3.2. Kết quả mô phỏng và đánh giá hiệu năng cho kiến trúc CMP đa luồng

3.3.2.1. Kết quả mô phỏng cho các kiến trúc CMP đa luồng

Sử dụng công cụ mô phỏng Java (JMT) v.0.8.0 [22, 73] để thực hiện mô

phỏng cho mô hình MCFPQN ở hình 3.3. Quá trình mô phỏng đã thực hiện theo

kịch bản được trình bày trong phần Phụ lục 1. Ở đây lần lượt xét các CMP đa luồng

có 2-lõi với L2 cache chung cho các lõi hình 3.6a và L3 cache chung cho các lõi

hình 3.6b; CMP đa luồng có 4-lõi với L2 cache chia sẻ như hình 3.11a và với L3

cache chia sẻ như hình 3.11b; CMP đa luồng có 8-lõi với L2 cache chia sẻ như hình

3.16a và với L3 cache chia sẻ như hình 3.16b.

Kết quả mô phỏng, đã thu được các thông số hiệu năng (thời gian chờ đợi, thời

gian đáp ứng, mức độ sử dụng, thông lượng) ở các lõi CPU và các cấp cache L1,

L2, L3 cache của các lõi. Các kết quả ở lõi CPU và các cấp cache L1, L2, L3 của

các lõi là tương đương nhau, Do đó, ở đây chỉ trình bày kết quả của các thông số

hiệu năng ở các nút CPU1, L11cache, Int+L2cache, L21cache, Int+L3cache,

MemoryBus+Mem và của hệ thống (System) được trình bày trong bảng 3.1; bảng

3.2, và bảng 3.3.

Các kết quả này đã được công bố trên các công trình:“Phân tích hiệu năng

của tổ chức cache trong kiến trúc vi xử lý đa lõi”. Kỷ yếu Hội nghị khoa học công

nghệ thông tin và truyền thông ĐHBK Hà Nội, (10/2011), pp.67-73; “Đánh giá hiệu

năng của tổ chức cache trong hệ thống vi xử lý đa lõi, đa luồng”. Tạp chí Khoa học

& Công nghệ, các Trường Đại học kỹ thuật, Số 91, (2012), pp.54-58, và “Giải pháp

mới cho kiến trúc đa lõi nhằm nâng cao hiệu năng của bộ vi xử lý đa lõi, đa luồng”.

Tạp chí Khoa học & Công nghệ, Đại học Đà Nẵng, Số 11(60), Quyển II, (2012),

pp.78-83.

73

 CMP đa luồng có 2-lõi

b)

Hình 3.6: Mô hình MCPFQN 2-lõi, đa luồng. a) với L2 cache chung và

b) với L3 cache chung.

Bảng 3.1: Giá trị trung bình của các thông số hiệu năng khi chip có 2-lõi với 8-luồng/lõi.

Mức độ sử dụng

Thời gian chờ đợi (ns)

Thời gian đáp ứng (ns)

Thông lượng (Số công việc/ns)

L2 cache chung

L3 cache chung

L2 cache chung

L3 cache chung

L2 cache chung

L3 cache chung

L2 cache chung

L3 cache chung

CPU1

0,32

0,79

0,82

1,31

0,19

0,53

0,39

1,04

L11cache

1,01

8,38

2,01

9.37

0,33

0,90

0,33

0,89

L12cache

-

5,27

-

7,76

0,67

0,26

-

-

Int+L2cache;

102,78

-

107,92

-

0,99

-

0,20

-

Int+L3cache

-

34,45

-

43,51

0,84

0,11

-

-

Membus+Mem 75,01

14,41 94,77

34,68

0,80

0,42

0,04

0,02

System

-

-

543,67 204,96

-

-

0,03

0,08

a)

74

120 100 80 60 40 20 0

L2cache chung L3cache chung

Hình 3.7: Biểu diễn giá trị trung bình của Thời gian chờ đợi ở các nút khi chip có 2-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Thời gian chờ đợi (ns)

Nhận xét

Thời gian chờ đợi tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có 3

cấp cache thì thời gian chờ đợi tại nút Int+L3 cache giảm 66% và tại

MemoryBus+Mem giảm 81% so với thời gian chờ đợi tại Int+L2 cache và

MemoryBus+Mem của CMP đa luồng có 2 cấp cache.

600 500 400 300 200 100 0

L2cache chung

L3cache chung

Hình 3.8: Biểu diễn giá trị trung bình của Thời gian đáp ứng ở các nút khi chip có 2-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Thời gian đáp ứng (ns)

Nhận xét

Thời gian đáp ứng tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có 3

cấp cache thì thời gian đáp ứng tại nút Int+L3 cache giảm 60%, tại

MemoryBus+Mem giảm 63% và hệ thống giảm 62% so với thời gian đáp ứng tại

Int+L2 cache, MemoryBus+Mem và hệ thống của CMP đa luồng có 2 cấp cache.

75

1.2 1 0.8 0.6 0.4 0.2 0

L2cache chung

L3cache chung

Hình 3.9: Biểu diễn giá trị trung bình của Mức độ sử dụng ở các nút khi chip có 2-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Mức độ sử dụng

Nhận xét

Mức độ sử dụng tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có 3

cấp cache thì mức độ sử dụng tại nút Int+L3 cache giảm 15% và tại

MemoryBus+Mem giảm 48% so với mức độ sử dụng tại Int+L2 cache và

MemoryBus+Mem của CMP đa luồng có 2 cấp cache.

1.2 1 0.8 0.6 0.4 0.2 0

L2cache chung

L3cache chung

Hình 3.10: Biểu diễn giá trị trung bình của Thông lượng ở các nút khi chip có 2-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Thông lượng (Số công việc/ns)

Nhận xét

Thông lượng tại các nút chia sẻ giảm, nhưng với CMP đa luồng có 3 cấp cache

thì thông lượng tại nút Int+L3 cache giảm 45%, tại MemoryBus+Mem giảm 50%

và hệ thống tăng 167% so với thông lượng tại nút Int+L2 cache, MemoryBus+Mem

và hệ thống của CMP đa luồng có 2 cấp cache.

76

 CMP đa luồng có 4-lõi

a)

Hình 3.11: Mô hình MCPFQN 4 lõi, đa luồng; a) với L2 cache chung và

b) với L3 cache chung.

b)

77 Bảng 3.2: Giá trị trung bình của các thông số hiệu năng khi chip có 4-lõi với 8-luồng/lõi.

Mức độ sử dụng

Thời gian chờ đợi (ns)

Thời gian đáp ứng (ns)

Thông lượng (Số công việc/ns)

L2 cache chung

L3 cache chung

L2 cache chung

L3 cache chung

L2 cache chung

L3 cache chung

L2 cache chung

L3 cache chung

CPU1

0,12

0,40

0,62

0,88

0,10

0,39

0,20

0,78

L11cache

0,33

2,15

1,34

3,13

0,17

0,66

0,16

0,66

L12cache

-

2,58

-

5,09

-

0,49

0,20

-

Int+L2cache ;

68,73

-

73,70

-

0,99

-

0,20

-

Int+L3cache

-

14,54

-

19,56

-

0,80

0,16

-

Membus+Mem

70,93

30,82

90,89

50,91

0,81

0,64

0,04

0,03

-

-

270,92

68,19

-

-

0,06

0,23

System

80 70 60 50 40 30 20 10 0

L2cache chung

L3cache chung

Hình 3.12: Biểu diễn giá trị trung bình của Thời gian chờ đợi ở các nút khi chip có 4-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Thời gian chờ đợi (ns)

Nhận xét

Thời gian chờ đợi tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có 3

cấp cache thì thời gian chờ đợi tại nút Int+L3 cache giảm 79% và tại

MemoryBus+Mem giảm 57% so với thời gian chờ đợi tại Int+L2 cache và

MemoryBus+Mem của CMP đa luồng có 2 cấp cache.

78

250

200

150

100

50

0

L2cache chung

L3cache chung

Hình 3.13: Biểu diễn giá trị trung bình của Thời gian đáp ứng ở các nút khi chip có 4-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Thời gian đáp ứng (ns)

Nhận xét

Thời gian đáp ứng tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có 3

cấp cache thì thời gian đáp ứng tại nút Int+L3 cache giảm 73%, tại

MemoryBus+Mem giảm 44% và hệ thống giảm 75% so với thời gian đáp ứng tại

Int+L2 cache, MemoryBus+Mem và hệ thống của CMP đa luồng có 2 cấp cache.

1.2 1 0.8 0.6 0.4 0.2 0

L2cache chung

L3cache chung

Hình 3.14: Biểu diễn giá trị trung bình của Mức độ sử dụng ở các nút khi chip có 4-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Mức độ sử dụng

Nhận xét

Mức độ sử dụng tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có 3

cấp cache thì mức độ sử dụng tại nút Int+L3 cache giảm 19% và tại

MemoryBus+Mem giảm 21% so với mức độ sử dụng tại nút Int+L2 cache và

MemoryBus+Mem của CMP đa luồng có 2 cấp cache.

79

0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

L2cache chung

L3cache chung

Hình 3.15: Biểu diễn giá trị trung bình của Thông lượng ở các nút khi chip có 4-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Thông lượng (Số công việc/ns)

Nhận xét

Thông lượng tại các nút chia sẻ giảm, nhưng với CMP đa luồng có 3 cấp cache

thì thông lượng tại nút Int+L3 cache giảm 20%, tại MemoryBus+Mem giảm 25%

và hệ thống tăng 283% so với thông lượng tại nút Int+L2 cache, MemoryBus+Mem

và hệ thống của CMP đa luồng có 2 cấp cache.

 CMP đa luồng có 8-lõi

a)

80

Hình 3.16: Mô hình MCPFQN 8 lõi, đa luồng; a) với L2 cache chung và

b) với L3 cache chung.

Bảng 3.3: Giá trị trung bình của các thông số hiệu năng khi chip có 8-lõi với 8-luồng/lõi.

Thời gian chờ đợi (ns)

Thời gian đáp ứng (ns)

Mức độ sử dụng Thông lượng (Số công việc/ns)

L2 cache chung

L3 cache chung

L2 cache chung

L3 cache chung

L2 cache chung

L3 cache chung

L2 cache chung

L3 cache chung

CPU1

0,03

0,13

0,52

0,63

0,05

0,22

0,10

0,44

L11cache

0,09

0,54

1,09

1,55

0,08

0,37

0,08

0,37

L12cache

-

0,90

-

3,41

-

0,28

0,11

-

Int+L2cache ;

51,36

-

56,19

-

0,99

-

0,20

-

Int+L3cache

-

17,09

-

22,12

-

0,87

0,17

-

Membus+Mem

67,42

36,26

86,86

55,45

0,80

0,70

0,04

0,03

System

-

-

137,00 30,58

-

-

0,12

0,52

b)

81

80 70 60 50 40 30 20 10 0

L2cache chung

L3cache chung

Hình 3.17: Biểu diễn giá trị trung bình của Thời gian chờ đợi ở các nút khi chip có 8-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Thời gian chờ đợi (ns)

Nhận xét

Thời gian chờ đợi tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có 3

cấp cache thì thời gian chờ đợi tại nút Int+L3 cache giảm 67% và tại

MemoryBus+Mem giảm 46% so với thời gian chờ đợi tại nút Int+L2 cache và

MemoryBus+Mem của CMP đa luồng có 2 cấp cache.

160 140 120 100 80 60 40 20 0

L2cache chung

L3cache chung

Hình 3.18: Biểu diễn giá trị trung bình của Thời gian đáp ứng ở các nút khi chip có 8-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Thời gian đáp ứng (ns)

Nhận xét

Thời gian đáp ứng tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có 3

cấp cache thì thời gian đáp ứng tại nút Int+L3 cache giảm 61%, tại

MemoryBus+Mem giảm 36% và hệ thống giảm 78% so với thời gian đáp ứng tại

Int+L2 cache, MemoryBus+Mem và hệ thống của CMP đa luồng có 2 cấp cache.

82

1.2

1

0.8

0.6

0.4

0.2

0

L2cache chung

L3cache chung

Hình 3.19: Biểu diễn giá trị trung bình của Mức độ sử dụng ở các nút khi chip có 8-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Mức độ sử dụng

Nhận xét

Mức độ sử dụng tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có 3

cấp cache thì mức độ sử dụng tại nút Int+L3 cache giảm 12% và tại

MemoryBus+Mem giảm 13% so với mức độ sử dụng tại nút Int+L2 cache và

MemoryBus+Mem của CMP đa luồng có 2 cấp cache.

0.6 0.5 0.4 0.3 0.2 0.1 0

L2cache chung

L3cache chung

Hình 3.20: Biểu diễn giá trị trung bình của Thông lượng ở các nút khi chip có 8-lõi, mỗi lõi xử lý 8-luồng với L2 cache chung và L3 cache chung.

Thông lượng (Số công việc/ns)

Nhận xét

Thông lượng tại các nút chia sẻ giảm, nhưng với CMP đa luồng có 3 cấp cache

thì thông lượng tại nút Int+L3 cache giảm 15%, tại MemoryBus+Mem giảm 25%

và hệ thống tăng 333% so với thông lượng tại nút Int+L2 cache, MemoryBus+Mem

và hệ thống của CMP đa luồng có 2 cấp cache.

83

3.3.2.2. Đánh giá hiệu năng các chip đa xử lý, đa luồng

Trong kiến trúc CMP đa luồng, đa cấp cache với cấp cache cuối cùng là cache

chia sẻ thông minh, nhưng cũng là nút tập trung lưu lượng của hệ thống nên gây ra

nghẽn nút cổ chai. Do đó, ở các kết quả trên cho thấy rằng: đối với CMP đa luồng

có 3 cấp cache, tại nút Interconnect+L3 cache và MemoryBus+Mem có thời gian

chờ đợi, thời gian đáp ứng, và mức độ sử dụng giảm đi nhiều so với tại nút

Interconnect+L2 cache của CMP đa luồng chỉ có 2 cấp cache với L2 cache chia sẻ.

Đồng thời thông lượng của CMP đa luồng có 3 cấp cache cũng lớn hơn so với thông

lượng của CMP đa luồng có 2 cấp cache.

Mặt khác, để đánh giá hiệu năng của CMP đa luồng có 3 cấp cache so với

CMP đa luồng có 2 cấp cache. Theo các số liệu đã cho ở mục 3.3.1, xác định được

thời gian trung bình truy nhập bộ nhớ (AMAT) của từng kiến trúc:

 Đối với chip đa lõi có 3 cấp cache (L1, L2, L3)

= L1 hit time + L1 miss rate(L2 hit time

L1L2L3

AMAT + L2 miss rate(L3 hit time + L3 miss rate(L3 miss penalty)) = 1ns + (0, 3)(2,5 + (0, 2)(5ns + (0, 2)(40ns))) = 2,53ns

Thời gian trung bình truy nhập bộ nhớ được tính theo công thức (2.9a)

 Đối với chip đa lõi có 2 cấp cache (L1, L2)

AMAT

L1L2

= L1 hit time + L1 miss rate(L2 hit time + L2 miss rate(L2 miss penalty)) = 1ns + (0,3)(2,5ns + (0,2)(40ns))

= 4,5ns

Thời gian trung bình truy nhập bộ nhớ được tính theo công thức (2.5a)

Như vậy, với CMP đa luồng có 3 cấp cache thì thời gian trung bình truy nhập

bộ nhớ giảm đi: 4,15 – 2,53 = 1,62ns so với CMP đa luồng có 2 cấp cache.

Ngoài ra, tác giả cũng sử dụng mô hình mạng Petri ngẫu nhiên suy rộng

(GSPN) để thực hiện đánh giá hiệu năng của tổ chức cache đa cấp trong CMP đa

luồng có 4-lõi. Kết qủa cho thấy rằng với CMP đa luồng chỉ có 2 cấp cache với L2

cache chia sẻ cho các lõi thì số lượng yêu cầu đợi phục vụ tại các vị trí L2 cache và

84 Memory lớn hơn nhiều so với tại các ví trí L3 cache và Memory của CMP đa luồng

có 3 cấp cache với L3 cache chia sẻ cho các lõi. Đồng thời thông lượng tại các

chuyển tiếp của L2 cache và Memory của bộ xử lý 2 cấp cache cũng lớn hơn so với

thông lượng tại các chuyển tiếp L3 cache và Memory của bộ xử lý 3 cấp cache.

Điều này chứng tỏ rằng với CMP đa luồng có 3 cấp cache làm giảm đáng kể độ trễ

và thời gian truy cập bộ nhớ, do đó giảm nghẽn nút cổ chai tại các cấp cache chia sẻ

và tăng hiệu năng của bộ xử lý. Kết quả này đã được công bố trong công trình:

“Using Generalized stochastic Petri net for performance evaluation of cache

organization in multicore processor chips”. Journal of Science and Technology,

Technical Universities in Vietnamese, No 98, (2014), pp.15-22.

Như vậy, kiến trúc CMP đa luồng có 3 cấp cache với L3 cache chia sẻ cho tất

cả các lõi, các lõi xử lý đa luồng cho kết quả khả quan, giảm được thời gian trung

bình truy nhập bộ nhớ, giảm nghẽn nút cổ chai tại cấp cache chia sẻ. Do đó, nâng

cao hiệu năng của bộ xử lý.

3.4. Kết luận chương 3

- Giới thiệu cơ sở lý thuyết MCPFQN được sử dụng để phân tích và đánh giá

hiệu năng của kiến trúc CMP đa luồng.

- Sử dụng mô hình MCPFQN cho kiến trúc CMP đa luồng để đánh giá hiệu

năng của tổ chức cache đa cấp (2 cấp và 3 cấp cache), với cache cấp cuối là cache

chia sẻ thông minh.

- Thực hiện mô phỏng bằng JMT v.0.8.0 để đánh giá hiệu năng của các tổ

chức cache trong kiến trúc CMP đa luồng.

Như vậy, với kiến trúc CMP đa luồng có tổ chức cache ba cấp, trong đó L3

cache chia sẻ cho tất cả các lõi đạt được hiệu năng xử lý là tốt nhất.

85 Chương 4

GIẢI PHÁP TỐI ƯU HÓA HIỆU NĂNG CỦA TỔ CHỨC

CACHE TRONG KIẾN TRÚC CHIP ĐA XỬ LÝ, ĐA LUỒNG

4.1. Kiến trúc cụm lõi cho chip đa xử lý, đa luồng

4.1.1. Khái quát

Để nâng cao hiệu năng của các CMP đa luồng có 2 cấp cache với L2 cache

chia sẻ cho tất cả các lõi, các nhà nghiên cứu và sản xuất chip đã đề xuất nhiều giải

pháp kiến trúc cụm lõi cho các CMP đa luồng như: Bộ xử lý Xeon 4-lõi, của Intel

có 2 cụm mỗi cụm 2-lõi được chia sẻ bởi L2 cache [8], bộ xử lý Rock 16-lõi của

Sun có 4 cụm mỗi cụm 4-lõi được chia sẻ bởi L1 cache, và L2 cache chia sẻ cho tất

cả các lõi [29, 35], Ketan Bahulkar và những người khác cũng đề xuất kiến trúc

cụm có 8-lõi trong đó có 2 cụm 4-lõi với L2 cache chia sẻ cho 2-lõi [33]. Với kiến

trúc CMP đa luồng 3 cấp cache, bên cạnh tổ chức cache có L1 và L2 cache riêng

cho mỗi lõi và L3 cache chia sẻ cho tất cả các lõi, các nhà nghiên cứu và sản xuất

chip cũng đề xuất kiến trúc cụm lõi cho các CMP đa luồng như: bộ xử lý

Dunnington 6-lõi của Intel với 3 cấp cache có 3 cụm mỗi cụm 2-lõi được chia sẻ bởi

L2 cache còn L3 cache chia sẻ cho tất cả các lõi [29, 56], các bộ xử lý Nehalem 8-

lõi của Intel và Opteron 8-lõi của AMD gồm có 2 chip trong một đóng vỏ, trong đó

mỗi chip có 4-lõi được chia sẻ bởi L3 cache [13, 14, 64, 65]. Với những kiến trúc

này, khi chip càng tích hợp nhiều lõi thì L3 cache chia sẻ càng không khả thi thực

hiện bên trong chip vì kích thước cần thiết để thực hiện cache chia sẻ cho tất cả các

lõi trở nên quá lớn, độ trễ lớn gây nghẽn lưu lượng trên chip và tốc độ giảm đi, thời

gian truy nhập bộ nhớ lớn dẫn đến làm giảm hiệu năng của bộ xử lý.

Để khắc phục các nhược điểm trên, Luận án đề xuất giải pháp kiến trúc cụm

lõi bằng cách nhóm các lõi thành từng cụm với L3 cache riêng cho mỗi cụm và sử

dụng các cấu hình mạng liên kết thích hợp thì lưu lượng được phân chia đều cho các

L3 cache chia sẻ, sẽ giảm được tranh chấp tài nguyên tại L3 cache chia sẻ, đảm bảo

trễ và thời gian phục vụ trung bình nhỏ, khi đó sẽ đem lại hiệu năng xử lý của chip

cao hơn. Giải pháp này được công bố trong công trình “Giải pháp mới cho kiến trúc

86 đa lõi nhằm nâng cao hiệu năng của bộ vi xử lý đa lõi, đa luồng”. Tạp chí Khoa

học & Công nghệ, Đại học Đà Nẵng, Số 11(60), Quyển II, (2012), pp.78-83.

Hình 4.1 là mô hình đề xuất của CMP đa luồng được nhóm thành n cụm, mỗi

CPU mn

CPU 1n

CPU 2n

CPU 11

CPU m1

CPU 21

T

T

T

T

T

T

T

T

T

T

T

T

L1

L1

L1

L1

L1

L1

L2

L2

L2

L2

L2

L2

Interconnect

Interconnect

L31 cache_1

L3n cache_n

Memory bus

Main Memory

Hình 4.1: Kiến trúc CMP đa luồng gồm n cụm lõi, và L3 cache riêng cho mỗi cụm.

cụm gồm m lõi, và L3 cache chia sẻ riêng cho mỗi cụm.

Trong đó, L1 cache và L2 cache riêng tương ứng cho từng lõi. T là luồng, ở đây là

mỗi lõi xử lý k-luồng.

4.1.2. Mô hình MCPFQN cho kiến trúc cụm lõi

4.1.2.1. Mô hình MCPFQN tổng quát của kiến trúc cụm lõi

Dựa vào MCFPQN đưa ra mô hình MCFPQN của kiến trúc cụm lõi để thực

hiện phân tích cho kiến trúc cụm lõi ở hình 4.1. Mô hình này được trình bày như

hình 4.2.

Mô hình này là trường hợp tổng quát một chip gồm n cụm lõi, mỗi cụm có m

lõi, và n L3 cache chia sẻ. Mỗi lõi có thể xử lý k luồng, nên mỗi lõi được biểu diễn

1/ μ ; i = 1,…, k. Các cấp cache riêng (L1 và L2 cache) và bộ nhớ chính được biểu

Ti

thành một nút hàng đợi M/G/m-PS và k luồng với thời gian phục vụ trung bình là

diễn bằng các nút hàng đợi M/M/1-FCFS. L3 cache chia sẻ cho các lõi trong một

cụm thông qua mạng liên kết (Interconnect), do đó có thể gộp Interconnect và L3

87 cache thành một nút là Interconnect+L3 cache được biểu diễn bằng các nút hàng đợi

μT1

M/M/1-FCFS.

Cluster 1 CPU 11

L11cache_1

pL11L12

p1L11

μT2

L12cache_1 μL2

μL1

p11

pL11,1

μTk

pL12,1

pL12L3

MemoryBus+Mem

Interconnect + L3cache_1

μm1

pL3_1Mem

μL3

pL22L3

μm2

pL3,i

pL3_2Mem pL3_nMem

μmk

pMemcore

CPU m1

μT1

Lm1cache_1

pmLm1

pLm1Lm2

μT2

μL1

Lm2cache_1 μL2

pmm

μTk

pLm1,m

pLm2,m

pLm2L3

μT1

Cluster n CPU 1n

L11cache_n

L12cache_n

pL11L12

p1L11

μT2

μL1

μL2

p11

μTk

pL11,1

pL12,1

pL12L3

Interconnect + L3cache_n

μL3

pL22L3

pL3,i

CPU mn

μT1

Lm1cache_n

Lm2cache_n

PmL11

μT2

μL1

μL2

pmm

pL12,m

pLm2L3

μTk

pL11,m

Hình 4.2: Mô hình MCPFQN tổng quát của kiến trúc cụm lõi cho ở hình 4.1.

88

MemoryBus+Mem

µm1

CPU 11

µT1

L11cache_1

L12cache_1

Interconnect+L3cache_1 pL12L13

pL3Mem

p1L11

pL11L12

µm2

µT2

µL3

µL1

µL2

pL11,1

p11

pL3,1

µmk

pL12,1

µTm

PMem1

Hình 4.3: Mô hình MCPFQN rút gọn của kiến trúc cụm lõi.

4.1.2.2. Mô hình MCPFQN rút gọn của kiến trúc cụm lõi

Ở mô hình này mạng gồm 5 nút: i = 1, 2, 3, 4, 5.

Trong đó: i = 1 là nút hàng đợi CPU11; i = 2 là nút hàng đợi L11cache_1 ;

i = 3 là nút hàng đợi L12cache_1;

i = 4 là nút hàng đợi Interconnect+L3cache_1;

i = 5 là nút hàng đợi MemoryBus+Mem

1. Thời gian phục vụ trung bình tại các nút

0,5ns

1ns

2,5ns

5ns

= 40ns

1 

1 

1 

1 

1 μ

1

2

3

4

5

; ; ;

2. Xác suất định tuyến tại các nút

p11 = 0,15; p12 = 0,85; p21 = 0,7; p23 = 0,3; p31 = 0,8; p34 = 0,2;

p = 41

p = 51

1 n × m

0,8 m

(n× m: số lõi trên chip) (m: số lõi trên cụm); p45 = 0,2;

3. Tốc độ đến tại các nút

ν = i

ji

5 ν p j j=1

với i là số nút của mạng

4. Tính toán các thông số hiệu năng

Để tính toán các thông số hiệu năng theo thuật toán phân tích giá trị trung bình

(MVA) lần lượt thực hiện theo các bước:

E N (0) = E N (0) = E N (0) = E N (0) = E N 0 = 0

1

2

4

3

5

 

   

1π (0 \ 0) = 1 ;

1π (1 \ 0) = 0

Bước 1: Khởi tạo i = 1, 2, 3, 4, 5

89

Bước 2: Lặp theo số lượng công việc n = 1, 2,…, N

Bắt đầu từ n = 1

Bước 2.1: Thời gian đáp ứng trung bình tại các nút được tính theo công thức

(3.17)

m - j -1 π 0 \ 0

E R (1) = 1

  1

i

im -2  j=1

1 m μ i 1

  1+ E N (1) +  1 

    

- Nút 1 (CPU11)

E R (1) = 2

2

  1 + E N (1) 

  

1 μ

2

- Nút 2 (L11 cache_1)

E R (1) = 3

3

  1 + E N (1) 

  

1 μ

3

- Nút 3 (L12 cache_1)

E R (1) = 4

4

  1 + E N (1) 

  

1 μ 4

- Nút 4 (Interconnect+L3 cache_1)

E R (1) = 5

5

  1 + E N (1) 

  

1 μ

5

- Nút 5 (MemoryBus+Mem)

Bước 2.2: Thông lượng toàn mạng được tính theo công thức (3.18)

  λ 1 =

5

i

1

i=1

    ν E R 1   i

λ 1 = λ 1 ν

 

 

i

i

Thông lượng tại các nút được tính theo công thức (3.19)

Bước 2.3: Số lượng trung bình các công việc tại các nút được tính theo công

thức (3.20)

90

  E N 1 = λ 1 E R 1 ν

i

i

i

   

   

 

 

Bước 2.4: Thời gian chờ đợi trung bình các công việc tại các nút được tính

E W 1 = E R 1 -

i

i

 

   

   

 

1 μ

i

theo công thức (3.21)

Bước 2.5: Mức độ sử dụng tại các nút được tính theo công thức (3.22).

U = i

λ i μ m i

i

với mi là số server của nút i

Lặp lại cho n = 2; n = 3; n = 4; …; n = N

4.1.3. Kết quả mô phỏng và đánh giá hiệu năng cho kiến trúc cụm lõi

4.1.3.1. Kết quả mô phỏng cho kiến trúc cụm lõi

Để tự động tính giá trị các thông số hiệu năng theo MVA, sử dụng công cụ

JMT v.0.8.0 [22, 73], và thực hiện theo kịch bản mô phỏng được trình bày trong

phần Phụ lục 2. Ở đây, thực hiện mô phỏng cấu trúc ở hình 4.3 cho trường hợp:

CMP đa luồng có 2 cụm, mỗi cụm 4-lõi, mỗi lõi xử lý 8-luồng được trình bày như

Hình 4.4: Mô hình MCFPQN 2-cụm lõi, mỗi cụm 4-lõi, đa luồng.

hình 4.4 .

91

Kết quả mô phỏng, thu được các thông số hiệu năng (thời gian chờ đợi, thời

gian đáp ứng, mức độ sử dụng, thông lượng) ở các nút CPU, các cấp cache L1, L2,

L3 cache. Các kết quả ở nút CPU và các cấp cache L1, L2, L3 của các lõi là tuơng

đương nhau. Do đó, luận án chỉ trình bày kết quả của các nút CPU11, L11 cache_1,

L21 cahe_1, Int+L3 cache_1, MemoryBus+Mem và của hệ thống (System) như

bảng 4.1. Ở đây, kết hợp với kết quả của CMP đa luồng có 8-lõi có 3 cấp cache với

Bảng 4.1: Giá trị trung bình của các thông số hiệu năng khi hệ thống có 2 cụm, mỗi cụm 4- lõi với L3 cache riêng cho mỗi cụm, và L3 cache chung, mỗi lõi xử lý 8-luồng.

Thời gian chờ đợi (ns)

Thời gian đáp ứng (ns)

Mức độ sử dụng

Thông lượng (Số công việc/ns)

L3 cache chung

L3 cache chung

L3 cache chung

L3 cache chung

L3 cache riêng /cụm

L3 cache riêng /cụm

L3 cache riêng /cụm

L3 cache riêng /cụm

CPU11

0,13

0,14

0,63

0,64

0,22

0,24

0,44

0,48

L11cache_1

0,54

0,61

1,55

1,61

0,37

0,41

0,37

0,41

L12cache_1

0,90

0,99

3,41

3,54

0,28

0,30

0,11

0,12

Int+L3cache_1

17,09

4,19

22,12

9,21

0,87

0,48

0,17

0,10

Membus+Mem

36,26

44,61

55,45

64,32

0,70

0,78

0,03

0,04

System

-

-

30,58

27,94

-

-

0,52

0,57

L3 cache chia sẻ cho tất cả các lõi (ở mục 3.3.2.1) để so sánh và đánh giá hiệu năng.

50 40 30 20 10 0

L3cache chung

L3cache riêng/cụm

Hình 4.5: Biểu diễn giá trị trung bình của Thời gian chờ đợi ở các nút khi hệ thống có 2- cụm, L3 cache riêng cho mỗi cụm và L3 cache chung cho 8-lõi, mỗi lõi xử lý 8-luồng.

Thời gian chờ đợi (ns)

92

Nhận xét

Thời gian chờ đợi tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có

kiến trúc cụm lõi, 3 cấp cache với L3 cache riêng/cụm thì thời gian chờ đợi tại nút

Int+L3 cache giảm 75% và tại MemoryBus+Mem tăng 23% so với thời gian chờ

đợi tại nút Int+L3 cache và MemoryBus+Mem của CMP đa luồng có 3 cấp cache

với L3 cache chung cho tất cả các lõi.

70 60 50 40 30 20 10 0

L3cache chung

L3cache riêng/cụm

Hình 4.6: Biểu diễn giá trị trung bình của Thời gian đáp ứng ở các nút khi hệ thống có 2- cụm, L3 cache riêng cho mỗi cụm và L3 cache chung cho 8-lõi, mỗi lõi xử lý 8-luồng.

Thời gian đáp ứng (ns)

Nhận xét

Thời gian đáp ứng tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có

kiến trúc cụm lõi, 3 cấp cache với L3 cache riêng/cụm thì thời gian đáp ứng tại nút

Int+L3 cache giảm 58%, tại MemoryBus+Mem tăng 16% và hệ thống giảm 9% so

với thời gian đáp ứng tại nút Int+L3 cache, MemoryBus+Mem và hệ thống của

CMP đa luồng có 3 cấp cache với L3 cache chung cho tất cả các lõi.

1 0.8 0.6 0.4 0.2 0

L3cache chung

L3cache riêng/cụm

Hình 4.7: Biểu diễn giá trị trung bình của Mức độ sử dụng ở các nút khi hệ thống có 2- cụm, L3 cache riêng cho mỗi cụm và L3 cache chung cho 8-lõi, mỗi lõi xử lý 8-luồng.

Mức độ sử dụng

93

Nhận xét

Mức độ sử dụng tại các nút chia sẻ là rất lớn, nhưng với CMP đa luồng có kiến

trúc cụm lõi, 3 cấp cache với L3 cache riêng/cụm thì mức độ sử dụng tại nút Int+L3

cache giảm 45% và tại MemoryBus+Mem tăng 11% so với mức độ sử dụng tại

Int+L3 cache và MemoryBus+Mem của CMP đa luồng có 3 cấp cache với L3 cache

chung cho tất cả các lõi.

0.6 0.5 0.4 0.3 0.2 0.1 0

L3cache chung

L3cache riêng/cụm

Hình 4.8: Biểu diễn giá trị trung bình của Thông lượng ở các nút khi hệ thống có 2-cụm, L3 cache riêng cho mỗi cụm và L3 cache chung cho 8-lõi, mỗi lõi xử lý 8-luồng.

Thông lượng (Số công việc/ns)

Nhận xét

Thông lượng tại các nút chia sẻ là giảm, nhưng với CMP đa luồng có kiến trúc

cụm lõi, 3 cấp cache với L3 cache riêng/cụm thì thông lượng tại nút Int+L3 cache

giảm 41%, tại MemoryBus+Mem tăng 33% và hệ thống tăng 10% so với thông

lượng tại nút Int+L3 cache, MemoryBus+Mem và hệ thống của CMP đa luồng có 3

cấp cache với L3 cache chung cho tất cả các lõi.

4.1.3.2. Đánh giá hiệu năng cho kiến trúc cụm lõi

Đối với CMP đa luồng 8-lõi có kiến trúc cụm lõi với L3 cache riêng cho mỗi

cụm, các nút Interconnect+L3 cache riêng cho mỗi cụm là các nút tập trung lưu

lượng của hệ thống có thể gây ra nghẽn nút cổ chai, do đó ở các kết quả trên cho

thấy thời gian chờ đợi và thời gian đáp ứng tại các nút này rất lớn, mức độ sử dụng

tăng và thông lượng giảm so với tại các nút CPU, L11 cache và L12 cache. Nhưng

so với bộ xử lý 8-lõi với L3 cache chia sẻ chung cho các lõi thì thời gian chờ đợi,

thời gian đáp ứng, mức độ sử dụng tại các nút Interconnect + L3 cache và thời gian

94 đáp ứng của hệ thống giảm đi đáng kể. Đồng thời thông lượng của hệ thống tăng lên

rất nhiều.

Như vậy, kiến trúc cụm lõi cho kiến trúc CMP đa luồng có 3 cấp cache với L3

cache riêng cho từng cụm, các lõi xử lý đa luồng đã đề xuất thu được những kết quả

khả quan, giảm được thời gian trung bình truy nhập bộ nhớ, giảm nghẽn nút cổ chai

tại các nút chia sẻ, nâng cao hiệu năng của bộ xử lý.

4.2. Lựa chọn cấu hình mạng liên kết trên chip

4.2.1. Khái quát

Mạng liên kết trên chip (OCIN) có ảnh hưởng rất lớn đến hiệu năng của CMP

đa luồng. Hiện nay, có nhiều cấu hình OCIN đang được sử dụng trên CMP đa luồng

như: Ring, Crossbar, 2DMesh đã được giới thiệu trong mục 1.2.3, các cấu hình này

có trễ truyền thông lớn dẫn đến làm suy giảm hiệu năng xử lý của chip và khả năng

mở rộng bị hạn chế, do đó các cấu hình này chỉ phù hợp với các chip có quy mô

nhỏ. Với xu hướng tiếp tục gia tăng của số lượng lõi và các thành phần trên CMP đa

luồng, nhưng khi đó sẽ làm tăng tính phức tạp của các cấu hình OCIN [28, 51]. Các

nhà nghiên cứu và sản xuất chip hiện nay đang tập trung nghiên cứu một số cấu

hình như 2DMesh, 3DMesh, 2DTorus, 3DTorus [44, 51, 55, 61, 71] nhưng các

nghiên cứu này chưa đưa ra cấu hình OCIN nào phù hợp với CMP đa luồng.

Luận án tiến hành đánh giá một số cấu hình OCIN đang được quan tâm thông

qua trễ truyền thông và mức tăng tốc xử lý trên chip, để từ đó lựa chọn cấu hình

mạng liên kết phù hợp với kiến trúc CMP đa luồng. Giải pháp này được công bố

trong công trình“Ảnh hưởng của tổ chức cache đa cấp và mạng liên kết đến hiệu

năng của chip đa lõi”. Tạp chí Khoa học & Công nghệ, Đại học Đà Nẵng, (2014).

4.2.2. Đề xuất công thức tính trễ truyền thông trung bình cho mạng liên kết

trên chip

Hiệu năng của CMP đa luồng với đa cấp cache chỉ được nâng cao đáng kể khi

chúng được sử dụng cho các tính toán song song. Các ứng dụng song song thường

chia ra hai phần: phần thực hiện tuần tự vốn có và phần thực hiện song song. Khi

đó, theo luật Amdahl [7, 19].

95

1

S =

Mức tăng tốc tối đa khi bỏ qua trễ truyền thông được xác định:

(1-f)+

f n

(4.1)

Trong đó:

- f: tỷ lệ phần thực hiện song song.

- 1-f : tỷ lệ phần thực hiện tuần tự.

T (p) + T (p) seq

par

S(p, n) =

Mức tăng tốc S(p, n) khi tính đến trễ truyền thông được xác định:

T (p) + seq

+ T (p, n) O

T (p) par n

(4.2)

Trong đó:

- p: kích thước chương trình,

- n: số lõi xử lý,

- Tseq(p): thời gian thực hiện phần tuần tự,

T

(p) + T

(p)

seq

par

S(p, n) =

- Tpar(p): thời gian thực hiện phần song song, - TO(p,n): trễ truyền thông giữa các lõi xử lý. Khi n (số lõi trên chip) lớn, thì:

T

seq

(p) + T (p, n) O

(4.3)

Ở đây, sử dụng công thức (4.3) để phân tích và xác định trễ truyền thông cho

các cấu hình OCIN.

Nếu phần thực hiện song song gồm các luồng chạy song song trên từng lõi xử

lý thì mức tăng tốc phụ thuộc vào thời gian thực hiện phần tuần tự Tseq(p) và trễ

truyền thông TO(p, n) giữa các luồng chạy trên các lõi. Lập trình song song phải

đảm bảo sao cho Tseq(p) và TO(p, n) tối thiểu nhất.

Tổng thời gian thực hiện chương trình trên chip đa lõi với tổ chức cache đa

cấp, chính là thời gian thực hiện của CPU (CPUexecution time) = Tseq(p) + Tpar(p).

96

Để xác định các thời gian thực hiện của CPU, có thể giả định rằng một chương

trình ứng dụng được biên dịch để chạy trên một máy tính với các thông số được

cung cấp bao gồm:

- Tổng số lệnh trong một chương trình là I, được xác định bằng số

CPI

lệnh/chương trình (instructions per program).

execution

- Một lệnh trung bình cần một số chu kỳ đồng hồ để thực hiện là ,

được xác định bằng số chu kỳ đồng hồ/lệnh (clock cycles per instruction).

- Trung bình với một lệnh số chu kỳ đồng hồ trì hoãn bộ nhớ là MSPI được

xác định bằng số chu kỳ đồng hồ trì hoãn bộ nhớ/lệnh (memory stalls clock cycle

per instruction).

- Thời gian của một chu kỳ đồng hồ là C = 1/tốc độ đồng hồ (1/clock rate),

được xác định bằng giây/chu kỳ (seconds/cycle).

Trong chương 3 đã phân tích lựa chọn kiến trúc của CMP đa luồng có 3 cấp

cache với L3 cache chia sẻ cho tất cả các lõi, và các lõi liên kết với nhau thông qua

các thành phần chuyển mạch kết nối với L3 cache như hình 4.9. Do đó, sử dụng

kiến trúc CMP đa luồng có 3 cấp cache này để xác định thời gian thực hiện chương

CPU n

CPU 1

CPU 2

L1D

L1I L1D

L1D

L1I

L1I

trình của các CPU.

L2

L2

L2

sw n

sw 1

sw 2

Interconnect

L3

Memory Bus

MM

Hình 4.9: Chip đa lõi với tổ chức cache 3 cấp: L1I, L1D, L2 riêng cho mỗi lõi và L3 cache chia sẻ cho tất cả các lõi.

Mặc định rằng một chương trình có các thông số sau: tổng số lệnh I =

10000000 lệnh, CPIexecution = 2,5 chu kỳ/lệnh, tốc độ đồng hồ CPU (CPU clock rate)

= 2GHz. Giả sử trong 1000 lệnh tham chiếu bộ nhớ của CPU có 150 lệnh trượt L1

97 cache hay L1 miss rate = 0,15, thời gian trúng L1 cache (L1 hit time) = 2 chu kỳ

đồng hồ; có 45 lệnh trượt L2 cache hay L2 miss rate = 0,3, L2 hit time = 6 chu kỳ

đồng hồ; có 9 lệnh trượt L3 cache tham chiếu vào bộ nhớ chính hay L3 miss rate =

0,2; L3 hit time = 20 chu kỳ đồng hồ; L3 miss penalty = 96 chu kỳ đồng hồ; trong

một lệnh thời gian truy cập bộ nhớ (MAPI) = 1,5 chu kỳ đồng hồ.

MAPI× L1 miss rate ×(L2 hit time + L2 miss rate

L1L2L3 =

MSPI ×(L3 hit time + L3 miss rate × L3 miss penalty))  = 1,5×

×96))

× 0,3 (20

× 0,15 (6

0,2

Sử dụng các công thức (2.23a) xác định được MSPIL1L2L3:

= 4 chu kỳ đồng hồ

Khi đó, thời gian thực hiện của CPU được xác định:

execution

execution

7

L1L2L3 -9 = (10 ) × (2, 5 + 4) × (0, 5×10 ) = 0, 033s

CPU time = I× (CPI + MPSI ) × C

Suy ra:

CPUexecution time = Tseq(p) + Tpar(p) = 0,033s.

Để xác định ảnh hưởng của TO(p, n), cho rằng thời gian thực hiện tuần tự bằng

=

10% tổng CPUexecution time, do đó Tseq(p) = 0,003s. Khi đó.

S(p, n)

0,033 0,003 T (p,n) +

O

(4.4)

Bảng 4.2: Các thông số của các cấu hình mạng liên kết trên CMP đa luồng [15, 24].

Mạng

Degree (d) Aver. Hop count (H)

Bisection width (B)

Ring

2

2DMesh

4

2 N1/2

2DTorus

4

(N+1)/3 (2/3)N1/2 (1/2)N1/2

2N1/2

3DMesh

6

3DTorus

6

N1/3 (3/4)N1/3

N2/3 2N2/3

TO(p, n) phụ thuộc vào cấu hình mạng liên kết các lõi trên chip.

Trong đó:

98

- N = n: tổng số nút chuyển mạch trong mạng liên kết (chính là tổng số lõi

trên chip).

Để phân tích ảnh hưởng của OCIN đến hiệu năng của CMP đa luồng, ở đây

chọn một số cấu hình OCIN phổ biến với các tham số đặc trưng được trình bày

trong bảng 4.1.

Luận án đề xuất công thức tính trễ truyền thông trung bình TO(p, n) trong

+ t

+ t

CMP đa luồng theo khoảng cách định tuyến trung bình giữa các nút (H) như sau:

syn

sw

sw

Inter-switch

OT (p, n) = Hpw (t

(4.5)

Trong đó:

- tInter-switch: trễ giữa các nút chuyển mạch.

- tsw: trễ của nút chuyển mạch.

trễ cho đồng bộ truyền thông giữa các nút gửi và nhận gói dữ liệu. - tsyn:

Cho rằng trễ tsw + tsyn = 1 chu kỳ đồng hồ, trễ tInter-switch = 1 chu kỳ đồng hồ, 1

chu kỳ đồng hồ được xác định bằng tốc độ đồng hồ của chip vì mạng liên kết các lõi

với L3 cache bên trong chip.

- w: kích thước của gói dữ liệu (bit).

- p :số lượng gói dữ liệu.

π

sw :

- xác suất định tuyến chuyển dữ liệu qua chuyển mạch mạng liên kết đến

lõi khác.

Thực tế, mỗi lõi đều có thể định tuyến lưu lượng đến cache cục bộ, vì vậy trễ

truyền thông trung bình giữa các nút chuyển mạch phải tính đến các xác suất định

tuyến lưu lượng của từng lõi πcore và xác suất định tuyến đến cấp cache chia sẻ

π

+ π

+ π

core

sw

cache

= 1 (4.6)

πcache. Các xác suất này thỏa mãn điều kiện:

Nếu tỷ số trúng L3 cache cao thì πsw sẽ nhỏ, khi đó TO cũng nhỏ theo.

Để phân tích, chọn πsw = 0,2 và w = 8 bit. Khi đó:

99

TO = Hp(8)(2)(0,2) = 3,2Hp (4.7)

Để xác định các công thức tính độ trễ truyền thông trung bình cho các cấu

hình OCIN, ở đây kết hợp công thức (4.7) với các giá trị của H đã cho ở bảng 4.1.

=

T

p

(n +1)p;

ORing

T

=

p n

2,13p n ;

O2DMesh

Khi đó, trễ truyền thông trung bình của các cấu hình OCIN được xác định:

T

=

p n = 1, 6p n ;

O2DTorus

3

T

O3DMesh

3

T

=

p n = 3,15p n

O3DTorus

3, 2(n +1) 3 6, 4 3 3, 2 2 = 3, 2p n ; 12, 6 3 4

(4.8)

4.2.3. Lựa chọn cấu hình mạng liên kết trên chip

Để đánh giá các cấu hình OCIN, luận án tiến hành mô phỏng so sánh trễ

truyền thông trung bình và mức tăng tốc xử lý trên chip của các cấu hình OCIN, để

từ đó đưa ra cấu hình OCIN phù hợp nhất với kiến trúc CMP đa luồng .

4.2.3.1. Kết quả mô phỏng

Từ các công thức (4.8), thực hiện tính toán, mô phỏng khi số lượng gói dữ liệu

là p = 8, 16, 32, 64, 128, 256, 1024 cho các trường hợp số lượng lõi trên chip là n =

8, 16, 32, 64, 128. Kết quả thu được trễ truyền thông trung bình cho các cấu hình:

Ring, 2DMesh, 2DTorus, 3DMesh và 3DTorus được trình bày như hình 4.10.

10000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0

8

16

32

64

128

256

1024

Ring

72.00

144.00

288.00

576.00

1152.00

2304.00

9216.00

2DMesh

48.20

96.39

192.79

385.57

771.14

1542.28

6169.14

2DTorus

36.20

72.41

144.82

289.63

579.26

1158.52

4634.10

3DMesh

51.20

102.40

204.80

409.60

819.20

1638.40

6553.60

3DTorus

50.40

100.80

201.60

403.20

806.40

1612.80

6451.20

Trễ truyền thông trung bình (ns); khi n = 8

100

20000

18000

16000

14000

12000

10000

8000

6000

4000

2000

0

8

16

32

64

128

256

1024

Ring

136.00

272.00

544.00

1088.00

2176.00

4352.00

17408.00

2DMesh

68.16

136.32

272.64

545.28

1090.56

2181.12

8724.48

2DTorus

51.20

102.40

204.80

409.60

819.20

1638.40

6553.60

3DMesh

64.51

129.02

258.03

516.06

1032.13

2064.25

8257.02

3DTorus

63.50

127.00

254.00

508.00

1016.00

2032.00

8128.00

Trễ truyền thông trung bình (ns); khi n = 16

40000

35000

30000

25000

20000

15000

10000

5000

0

32

64

128

256

1024

8

16

Ring

264.00

1056.00

2112.00

4224.00

8448.00

33792.00

528.00

2DMesh

96.39

192.79

385.57

771.14

1542.28

3084.57

12338.28

2DTorus

72.41

144.82

289.63

579.26

1158.52

2317.05

9268.19

3DMesh

81.27

162.55

325.10

650.20

1300.40

2600.80

10403.19

3DTorus

80.01

160.01

320.02

640.04

1280.08

2560.16

10240.64

Trễ truyền thông trung bình (ns); khi n = 32

101

70000

60000

50000

40000

30000

20000

10000

0

8

16

32

64

128

256

1024

Ring

520.00

1040.00

2080.00

4160.00

8320.00

16640.00

66560.00

2DMesh

136.32

272.64

545.28

1090.56

2181.12

4362.24

17448.96

2DTorus

102.40

204.80

409.60

819.20

1638.40

3276.80

13107.20

3DMesh

102.40

204.80

409.60

819.20

1638.40

3276.80

13107.20

3DTorus

100.80

201.60

403.20

806.40

1612.80

3225.60

12902.40

Trễ truyền thông trung bình (ns); khi n = 64

140000

120000

100000

80000

60000

40000

20000

0

8

16

32

64

128

256

1024

Ring

1032.00

2064.00

4128.00

8256.00

16512.00

33024.00

132096.0

2DMesh

192.79

385.57

771.14

1542.28

3084.57

6169.14

24676.56

2DTorus

144.82

289.63

579.26

1158.52

2317.05

4634.10

18536.38

3DMesh

129.02

258.03

516.06

1032.13

2064.25

4128.51

16514.04

3DTorus

127.00

254.00

508.00

1016.00

2032.00

4064.00

16256.01

Hình 4.10: Trễ truyền thông trung bình của các mạng liên kết Ring, 2DMesh, 2DTorus, 3DMesh, 3DTorus, cho các trường hợp số lõi trên chip n = 8, 16, 32, 64, 128.

Trễ truyền thông trung bình (ns); khi n = 128

102

Bằng cách kết hợp công thức (4.4) và công thức (4.8). Thực hiện tính toán, mô

phỏng mức tăng tốc xử lý (SP) cho các cấu hình: Ring, 2DMesh, 2DTorus, 3DMesh

và 3DTorus. Các kết quả thu được, trình bày như hình 4.11.

11.01

11.00

10.99

10.98

10.97

10.96

10.95

10.94

8

16

32

64

128

256

1024

Ring

10.9997

10.9995

10.9989

10.9979

10.9958

10.9916

10.9663

2DMesh

10.9998

10.9996

10.9993

10.9986

10.9972

10.9943

10.9774

2DTorus

10.9999

10.9997

10.9995

10.9989

10.9979

10.9958

10.9830

3DMesh

10.9998

10.9996

10.9992

10.9985

10.9970

10.9940

10.9760

3DTorus

10.9998

10.9996

10.9993

10.9985

10.9970

10.9941

10.9764

Mức tăng tốc; khi n = 8

11.01

11.00

10.99

10.98

10.97

10.96

10.95

10.94

10.93

10.92

10.91

10.90

8

16

32

64

128

256

1024

Ring

10.9995

10.9990

10.9980

10.9960

10.9920

10.9841

10.9365

2DMesh

10.9998

10.9995

10.9990

10.9980

10.9960

10.9920

10.9681

2DTorus

10.9998

10.9996

10.9992

10.9985

10.9970

10.9940

10.9760

3DMesh

10.9998

10.9995

10.9991

10.9981

10.9962

10.9924

10.9698

3DTorus

10.9998

10.9995

10.9991

10.9981

10.9963

10.9926

10.9703

Mức tăng tốc; khi n = 16

103

11.02

11.00

10.98

10.96

10.94

10.92

10.90

10.88

10.86

10.84

10.82

10.80

8

16

32

64

128

256

1024

Ring

10.9990

10.9981

10.9961

10.9923

10.9845

10.9691

10.8775

2DMesh

10.9996

10.9993

10.9986

10.9972

10.9943

10.9887

10.9549

2DTorus

10.9997

10.9995

10.9989

10.9979

10.9958

10.9915

10.9661

3DMesh

10.9997

10.9994

10.9988

10.9976

10.9952

10.9905

10.9620

3DTorus

10.9997

10.9994

10.9988

10.9977

10.9953

10.9906

10.9626

Mức tăng tốc; khi n = 32

11.05

11.00

10.95

10.90

10.85

10.80

10.75

10.70

10.65

10.60

8

16

32

64

128

256

1024

Ring

10.9981

10.9962

10.9924

10.9848

10.9696

10.9393

10.7612

2DMesh

10.9995

10.9990

10.9980

10.9960

10.9920

10.9840

10.9364

2DTorus

10.9996

10.9992

10.9985

10.9970

10.9940

10.9880

10.9521

3DMesh

10.9996

10.9992

10.9985

10.9970

10.9940

10.9880

10.9521

3DTorus

10.9996

10.9993

10.9985

10.9970

10.9941

10.9882

10.9529

Mức tăng tốc; khi n = 64

104

11.1

11.0

10.9

10.8

10.7

10.6

10.5

10.4

10.3

8

16

32

64

128

256

1024

Ring

10.9962

10.9924

10.9849

10.9698

10.9398

10.8802

10.5361

2DMesh

10.9993

10.9986

10.9972

10.9943

10.9887

10.9774

10.9103

2DTorus

10.9995

10.9989

10.9979

10.9958

10.9915

10.9830

10.9325

3DMesh

10.9995

10.9991

10.9981

10.9962

10.9924

10.9849

10.9398

3DTorus

10.9995

10.9991

10.9981

10.9963

10.9926

10.9851

10.9407

Hình 4.11: Mức tăng tốc xử lý của các mạng liên kết Ring, 2DMesh, 2DTorus, 3DMesh, 3DTorus, cho các trường hợp số lõi trên chip n = 8, 16, 32, 64, 128.

Mức tăng tốc; khi n = 128

4.2.3.2. Đánh giá kết quả

Từ các kết quả trên, với số lõi n như nhau và số lượng gói dữ liêu p giống

nhau, so sánh trễ truyền thông trung bình và mức tăng tốc xử lý của các cấu hình

OCIN, thấy rằng:

Khi số lõi trên chip n  64 thì mạng liên kết 2DTorus cho trễ truyền thông

trung bình nhỏ nhất và mức tăng tốc xử lý là lớn nhất.

Tuy nhiên, khi số lõi trên chip tăng n ≥ 6 thì mạng liên kết 3DTorus sẽ cho trễ

truyền thông trung bình nhỏ nhất và mức tăng tốc xử lý là lớn nhất.

Do vậy, với CMP đa luồng, lựa chọn cấu hình mạng liên kết 2DTorus khi số

n ≥ 64 để liên kết các lõi trên lõi trên chip n  64 và 3DTorus khi số lõi trên chip chip sẽ đem lại hiệu năng xử lý và khả năng mở rộng quy mô tốt nhất.

4.3. Kết luận chương 4

- Đề xuất tổ chức cache mới với kiến trúc cụm lõi cho kiến trúc CMP đa

luồng.

105

- Sử dụng mô hình MCFPQN và công cụ JMT v.0.8.0 để đánh giá kiến trúc

cụm lõi đã đề xuất. Kiến trúc cụm lõi là một giải pháp tối ưu nhằm cải thiện hiệu

năng của kiến trúc CMP đa luồng.

- Đề xuất được công thức tính toán trễ truyền thông trung bình của các cấu

hình OCIN. Dựa vào công thức TO đã đề xuất và công thức tính mức tăng tốc (SP)

để đánh giá và lựa chọn cấu hình OCIN phù hợp với kiến trúc CMP đa luồng, giảm

được trễ truyền thông và tăng mức tăng tốc xử lý, nâng cao được hiệu năng của

CMP đa luồng.

106 KẾT LUẬN

I. Những đóng góp chính của Luận án

1. Ứng dụng mô hình mạng xếp hàng đóng đa lớp có dạng tích các xác suất để

phân tích, đánh giá hiệu năng của các tổ chức cache đa cấp với cache cấp

cuối là cache chia sẻ thông minh trong kiến trúc CMP đa luồng. Từ đó,

đánh giá được những ưu, nhược điểm của các tổ chức cache này.

2. Đề xuất giải pháp kiến trúc cụm lõi cho CMP đa luồng có 3 cấp cache với

L3 cache riêng cho từng cụm. Kiến trúc này đã thu được những kết quả khả

quan, giảm được thời gian trung bình truy nhập bộ nhớ, giảm nghẽn nút cổ

chai tại cấp L3 cache, nâng cao hiệu năng xử lý của CMP đa luồng.

3. Đề xuất công thức xác định trễ truyền thông trung bình TO của mạng liên

kết trên CMP đa luồng. Dựa vào công thức TO đã đề xuất để tính trễ truyền

thông trung bình và mức tăng tốc (SP), từ đó đánh giá một số cấu hình

OCIN và lựa chọn cấu hình OCIN phù hợp kiến trúc CMP đa luồng. Cấu

hình mạng liên kết này có khả năng mở rộng cao, trễ truyền thông thấp và

mức tăng tốc cao đáp ứng được sự gia tăng số lượng lõi trên chip.

II. Hướng phát triển của Luận án

- Sử dụng các mô hình đã đề xuất để tiếp tục mở rộng nghiên cứu đánh giá

hiệu năng cho kiến trúc CMP đa luồng với số lõi 16, 32, 48…

- Nghiên cứu sử dụng công nghệ OCIN quang cho CMP đa luồng, bởi OCIN

quang cho phép tăng băng thông, tiêu thụ công suất nhỏ và có trễ truyền

thông nhỏ hơn nhiều so với OCIN điện tử. Đây cũng là hướng mà các nhà

nghiên cứu và sản xuất chip trên thế giới đang quan tâm.

107 TÀI LIỆU THAM KHẢO

[1]. A.C. Sodan, Jacob Machina, Arash Deshmeh, Kevin Macnaughton, Bryan

Esbaugh (2010). Parallelism via multithreaded and multicore CPUs. IEEE

Computer Society, Vol. 43, Issue 3, pp.24-32.

[2]. A.I. Fasiku, J. B. Olawale, O. T. Jinadu (2012). A review of architectures -

Intel single core, Intel dual core and AMD dual core processors and the

benefits. International Journal of Engineering and Technology (IJET), Vol. 2,

No. 5, pp.809-817.

[3]. Aamer Jaleel (2010). High performance cache replacement using re-reference

interval prediction (RRIP). ISCA'10 Proceedings of the 37th annual

international symposium on Computer architecture, pp.60-71.

[4]. Alex Settle, Dan Connors, Enric Gibert, Antonio Gonzalez (2006) A

dynamically reconfigurable cache for multithreaded processors. Journal of

Embedded Computing - Issues in embedded single-chip multicore

architectures, Vol. 2 Issue 2, pp.221-233.

[5]. Avinatan Hassidim (2009) Cache replacement policies for multicore

processors. Massachusetts Institute of Technology, Cambridge, 02139, USA.

[6]. B. Filipowicz and J. Kwiecień (2008) Queueing systems and networks. Models

and applications. Bulletin of the Polish academy of sciences technical

sciences, Vol. 56, No. 4, pp.379-390.

[7]. Bashayer M. Al-Babtain, Fajer J. Al-Kanderi, Maha F. Al-Fahad, and Imtiaz

Ahmad (2013) A survey on Amdahl's law extension in multicore architectures.

International Journal of New Computer Architectures and their Applications

(IJNCAA) 3(3), pp.30-46.

[8]. Blair Guy (2007) An analysis of multi-core microprocessor capabilities and their suitablity for current day application requirements. Master’s Thesis Bowie State University Maryland in Europe.

[9]. Chenjie Yu, Peter Petrov) (2010) Off-chip memory bandwidth minimization

through cache partitioning for multi-core platforms. Design Automation Conference (DAC), 47th ACM/IEEE, pp.132-137.

[10]. Christoph Berg (2006) PLRU cache domino effects. 6th Intl Workshop on

108

Worst-Case Execution Time (WCET) Analysis.

[11]. D. Wentzlaff, P. Griffin, H. Hoffmann, Liewei Bao, B. Edwards, C. Ramey,

M. Mattina, Chyi-Chang Miao, J.F. Brown, A. Agarwal (2007) On-chip

interconnection architecture of the tile processor. IEEE Micro, Vol. 27, No. 5,

pp.15-31.

[12]. Damien Hardy, Isabelle Puaut (2008) WCET analysis of multi-level non-

inclusive set-associative instruction caches. RTSS'08 Proceedings of the 2008

Real-Time Systems Symposium, pp.456-466.

[13]. Daniel Hackenberg Daniel Molka Wolfgang E. Nagel (2009) Comparing

cache architectures and coherency protocols on x86-64 multicore SMP

systems. In 42nd Annual IEEE/ACM International Symposium on

Microarchitecture, New York, USA, December 12-16, pp.413-422.

[14]. Daniel Molka, Daniel Hackenberg, Robert Schone and Matthias S. Muller

(2009) Memory performance and cache coherency effects on an Intel Nehalem

multiprocessor system. IEEE Computer Society Washington, DC, USA,

pp.261-270.

[15]. Daniel Sanchez, George Michelogiannakis, And christos Kozyrakis (2010) An

analysis of on-chip interconnection networks for large-scale chip

multiprocessors. ACM Transactions on Architecture and Code Optimization,

Vol. 7, No. 1.

[16]. David Tam (2010) Operating system management of shared caches on

multicore processors. A thesis of Doctor of Philosophy Graduate Department

of Electrical and Computer Engineering University of Toronto.

[17]. David Tam, Reza Azimi, Livio Soares, and Michael Stumm (2007) Managing

shared L2 caches on multicore systems in software. In Proc. of the Workshop

on the Interaction between Operating Systems and Computer Architecture

(WIOSCA).

[18]. Dennis Abts, Natalie D. Enright Jerger, John Kim (2009) Achieving

predictable performance through better memory controller placement in

many-core CMPs. ISCA’09, June 20-24, Austin, TX, USA.

109 [19]. Dong Hyuk Woo and Hsien-Hsin S. Lee (2008) Extending Amdahl’s law for

energy-efficient computing in the many-core era. IEEE Computer Society,

pp.24-31.

[20]. Frederik Rønn, (2003.) Cache-oblivious searching and sorting. Master's

Thesis, Department of Computer Science University of Copenhagen.

[21]. G. E. Moore (1965) Cramming more components onto integrated circuits.

Electronics, pp.114-117.

[22]. Giuseppe Serazzi, Giuliano Casale, Marco Bertoli (2010) Java Modelling

Tools (JMT) v.0.8.0 users manual. Performance Evaluation Lab Dipartimento

di Elettronica e Informazione Politecnico di Milano - Italy.

[23]. Gunter Bolch, Stefan Greiner, Hermann de Meer, Kishor S.Trivedi (2006)

Queueing networks and Markov chains. A John Wiley & sons, Inc,

Publication.

[24]. H.El-Rewwini and Abd-El-Barr (2005) Advanced computer architecture and

parallel processing; Published by John Wiley & Sons, Inc, Hoboken, New

Jersey.

[25]. J.L. Hennessy and D.A. Patterson (2011) Computer architecture: A

quantitative approach. 5th edition, Elsevier Inc.

[26]. Jesús Camacho Villanueva, José Flich, J. Duato, H. Eberle, N. Gura and W.

Olesinski (2009) A performance evaluation of 2D-Mesh, Ring, and Crossbar

interconnects for chip multi-processors. In 2nd International Workshop on

Network on Chip Architectures (NoCArc 2009), pp. 51-56.

[27]. Jitendra Kumar Rai, Atul Negi, Rajeev Wankar, K. D. Nayak (2010)

Characterizing L2 cache behavior of programs on multi-core processors:

Regression models and their transferability. International Journal of Computer

Information Systems and Industrial Management Applications (IJCISIM),

Vol. 2, pp.212-221.

[28]. John D. Owens, William J. Dally, Ron Ho, D.N. (Jay), Jayasimha (2007)

Research challenges for on-chip interconnection networks. Micro, IEEE Vol.

27, Issue 5, pp.96-108.

110 [29]. John E. Savage, Mohammad Zubair (2008) A unified model for multicore

architectures. Proceedings of IFMT'08, the First International Forum on Next-

Generation Multi-core/Manycore Technologies, Cairo, Egypt.

[30]. John Fruehe (2005) Planning considerations for multicore processor

technology. Reprinted from Dell Power Solutions, pp. 67-72.

[31]. Julian Bui, Chenguang Xu, Sudhanva Gurumurthi (2007) Understanding

performance issues on both single core and multi-core architecture. Computer

Organizatione’07.

[32]. Jun Yan and Wei Zhang (2008) WCET analysis for multi-core processors with

shared L2 instruction caches. IEEE Real-Time and Embedded Technology

and Applications Symposium, pp.80-89.

[33]. Ketan Bahulkar, Nicole Hofmann, Deepak Jagtap, Nael Abu-Ghazaleh and

Dmitry Ponomarev (2010) Performance evaluation of PDES on multi-core

clusters. Distributed Simulation and Real Time Applications (DS-RT), 2010 IEEE/ACM 14th International Symposium on, pp.131-140.

[34]. Keun Sup Shim, Myong Hyon Cho, Mieszko Lis, Omer Khan, and Srinivas

Devadas (2011) Library cache coherence. MIT-CSAIL-TR-2011-027.

[35]. Krishna K. Rangan, Gu-Yeon Wei, David Brooks (2009) Thread motion:

Fine-grained power management for multi-core systems. In Proc. of ISCA,

pp.302-313.

[36]. Lin Qiao, Vijayshankar Raman, Frederick Reiss, Peter J. Haas, Guy M.

Lohman (2008) Main-memory scan sharing for multi-core CPUs. Proceedings

of the VLDB Endowment, Vol. 1, Issue 1, pp.610-621.

[37]. Ma Nicholas (2007) Modeling and evaluation of multi-core multithreaded processor architectures in systemC. Master’s Thesis, Queen’s University Kingston, Ontario, Canada.

[38]. Magnus Jahre, Lasse Natvig (2007) Performance effects of a cache miss

handling architecture in a multi-core processor. Department of Computer and

Information Science (IDI), NTNU.

[39]. Marco A. Z. Alves, Philippe O. A. Navaux (2009) Investigation through set

associativity on shared L2 cache memory in a multi-core chip architecture

111

Informatics Institute - Universidade Federal do Rio Grande do Sul - UFRGS.

[40]. Mark D. Hill, Michael R. Marty (2008) Amdahl’s Law in the multicore era.

Published by the IEEE Computer Society.

[41]. Matteo Monchiero, Ramon Canal, Antonio González (2006) Design space

exploration for multicore architectures: A power/performance/thermal view.

ICS'06 Proceedings of the 20th annual international conference on

Supercomputing, pp.177-186.

[42]. Miao Ju (2011) Performance analysis and resource allocation for

multithreaded multicore processors. Doctor of Philosophy Thesis, the

University of Texas at Arlington.

[43]. Michael R. Marty (2008) Cache coherence techniques for multicore

processors; Doctor of Philosophy Thesis at the University of Wisconsin -

Madison.

[44]. Mohammad Reza Nouri rad, Reza Kourdy (2012) Performance comparison of

3D Mesh and 3D Torus network on chip. Journal of Computing, Vol. 4, Issue

1, pp.78-82.

[45]. Moinuddin K. Qureshi, Aamer Jaleel, Yale N. Patt, Simon C. Steely Jr, Joel

Emer (2007) Adaptive Insertion Policies for High Performance Caching

ISCA’07, San Diego, California, USA.

[46]. Myungho Lee, Yeonseung Ryu, Sugwon Hong, Chungki Lee (2005)

Performance implications of a CMT processor for openmp applications.

Department of Computer Software, MyongJi University.

[47]. Naveen Choudhary (2012) Network-on-Chip: A new SoC communication

infrastructure paradigm. International Journal of Soft Computing and

Engineering (IJSCE). Vol.1, Issue 6, pp.332-335.

[48]. Naveen Choudhary (2013) Migration of on-chip networks from 2 dimensional

plane to 3 dimensional plane. International Journal of Engineering and

Advanced Technology (IJEAT), Vol. 2, Issue 4, pp.516-519.

[49]. Nikolaos Hardavellas (2009) Chip multiprocessors for server workloads.

Doctor of Philosophy Thesis, Carnegie Mellon University.

[50]. Nikoslaos Hardavellas, Michael Ferdman, Babak Falsafi and Anastasia

112

Ailamaki (2009) Reactive NUCA: Near-optimal block placement and replication in distributed caches. ISCA'09 Proceedings of the 36th Annual International Symposium on Computer Architecture, pp.184-195.

[51]. Reza Kourdy, Mohammad Reza Nouri rad (2012) Performance comparison of

2D and 3D Torus network on chip architectures. Journal of Computing, Vol.

4, Issue 2, pp.190-122.

[52]. Ruken Zilan, Javier Verdú, Mario Nemirovsky, Rodolfo A. Milito, Mateo

Valero (2011) An abstraction methodology for the evaluation of multi-core

multi-threaded architectures. IEEE International Symposium on Modelling,

Analysis, and Simulation of Computer and Telecommunication Systems 2011,

pp.478-481.

[53]. Ryan Eric Grant (2007) Analysis and improvement of performance and power consumption of chip multi threading SMP architectures. Master’s thesis, Queen’s University Kingston, Ontario, Canada, August.

[54]. S. Keckler, K. Olukotun, & H. P. Hofstee (2009) Multicore processors and

systems. New York, NY: Springer.

[55]. Sarat Yoowattana, Ikki Fujiwara, Michihiro Koibuchi (2013) Investigating

performance advantages of random topologies on network-on-chip. The 18th

Workshop on Synthesis And System Integration of Mixed Information

Technologies (SASIMI) in Japan, pp.190-194.

[56]. Shekhar Srikantaiah, Emre Kultursay, Tao Zhang, Mahmut Kandemir, Mary

Jane Irwin, Yuan Xie (2011) MorphCache: A reconfigurable adaptive multi-

level cache hierarchy high. Performance Computer Architecture (HPCA), 2011 IEEE 17th International Symposium on, pp.231-242.

[57]. Stijn Eyerman Lieven Eeckhout (2010) Probabilistic job symbiosis modeling

for SMT processor scheduling. ELIS Department, Ghent University, Belgium,

pp.91-102.

[58]. Sudhakar Gummadi, Radhakrishnan Shanmugasundaram (2012) Effective

utilization of multicore processor for unified threat management functions.

Journal of Computer Science, Vol. 8, Issue 1, pp.68-75.

[59]. Sudipta Chattopadhyay Abhik Roychoudhury Tulika Mitra (2010) Modeling

shared cache and bus in multi-cores for timing analysis. SCOPES'10

113

Proceedings of the 13th International Workshop on Software & Compilers for Embedded Systems Article No. 6.

[60]. T. Scogland, P. Balaji, W. Feng, G. Narayanaswamy (2008) Asymmetric

interactions in symmetric multi-core systems: Analysis, enhancements and

evaluation. SC'08 Proceedings of the 2008 ACM/IEEE conference on

Supercomputing Article, No. 17.

[61]. Thomas Canhao Xu, Bo Yang, Alexander Wei Yin, Pasi Liljeberg, Hannu

Tenhunen (2010) 3D network-on-chip with on-chip dram: An empirical

analysis for future chip multiprocessor. 2010 International Conference on

Computer, Electrical, and Systems Science, and Engineering, pp.18-24.

[62]. Thomas Rauber, Gudula Rünger (2010) Parallel programming for multicore

and cluster systems. Springer-Verlag Berlin Heidelberg.

[63]. Timo Schonwald, Jochen Zimmermann, Oliver Bringmann, Wolfgang

Rosenstiel (2009) Network-on-chip architecture exploration framework. Digital System Design, Architectures, Methods and Tools 2009. DSD'09, 12th Euromicro Conference on, pp.375-382.

[64]. Trent Rolf (2009) Cache organization and memory management of the Intel

Nehalem computer architecture. University of Utah Computer Engineering.

[65]. Vijayalakshmi Saravanan, Senthil Kumar Chandran, Sasikumar Punnekkat and

D. P. Kothari (2011) A study on factors influencing power consumption in

multithreaded and multicore CPUs. WSEAS Transactions on Computers, Vol.

10, Issue 3, pp.93-103.

[66]. Vikas Bhatnagar, Kavita Chaudhary, Sarita Chaudhary (2012) Multi-Core

Paradigm. MIT International Journal of Computer Science & Information

Technology, Vol. 2, No. 1, pp.19-24.

[67]. Vipin S. Bhure, Praveen R. Chakole (2012) Design of cache controller for

multi-core processor system. IJECSE, Vol.1, No. 2, pp.520-526.

[68]. Xiaoqiang Yang, Huimin Du, Jungang Han (2009) Topology and routing

algorithm based on the combination Gray code with Johnson code. Journal of

computers, Vol. 4, No. 3, pp.259-264.

[69]. Xing Fu, Khairul Kabir, and Xiaorui Wang (2011) Cache-aware utilization

114

control for energy-efficient multi-core real-time systems. Real-Time Systems

(ECRTS), 23rd Euromicro Conference on, pp.102-111.

[70]. Wang Zuo, Shi Feng, Zuo Qi, Ji Weixing, Li Jiaxin, Deng Ning, Xue Licheng,

Tan Yuan, Qiao Baojun (2009) Group-caching for NoC based multicore cache

coherent systems. In proceedings of the conference on Design, automation and

test in Europe (DATE), pp.755-760.

[71]. Wen-Hsiang Hu, Seugn Eun Lee, and Nader Bagherzadeh (2008) DMesh: A

diagonally-linked Mesh network-on-chip architecture. NoCArc, First

International Workshop on Network on Chip Architectures to be held in

conjunction with MICRO-41.

[72]. William Stallings (2010) Computer organization and architecture designing

for performance. 8th edition, Publisher: Prentice Hall.

[73]. http// www.jmt.sourceforge.net/

[74]. http://www.most.gov.vn/

[75]. http://www.wikipedia.com/multi-core

[76]. http://www.intel.com/multi-core

115

DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN

1. Hồ Khánh Lâm, Nguyễn Minh Quý, Hồ Văn Phi (2011), “Phân tích hiệu năng

của tổ chức Cache trong kiến trúc vi xử lý đa lõi”. Kỷ yếu Hội nghị khoa học

công nghệ thông tin và truyền thông ĐHBK Hà Nội, 10/2011. ISBN: 978-604-

911-032-0, pp.67-73.

2. Hồ Văn Phi, Hồ Khánh Lâm (2012), “Đánh giá hiệu năng của tổ chức cache

trong hệ thống vi xử lý đa lõi-đa luồng”. Tạp chí Khoa học & Công nghệ, các

Trường Đại học kỹ thuật, Số 91, năm 2012. ISSN 0868-3980, pp.54-58.

3. Hồ Văn Phi, Trần Hoàng Vũ, Hồ Khánh Lâm (2012), “Giải pháp mới cho kiến

trúc đa lõi nhằm nâng cao hiệu năng của bộ vi xử lý đa lõi-đa luồng”. Tạp chí

Khoa học & Công nghệ, Đại học Đà Nẵng, Số 11(60), Quyển II, năm 2012.

ISSN 1859-1531, pp.78-83.

4. Hồ Văn Phi, Hồ Khánh Lâm (2014), “Ảnh hưởng của tổ chức cache đa cấp và

mạng liên kết đến hiệu năng của chip đa lõi”. Tạp chí Khoa học & Công nghệ,

Đại học Đà Nẵng. ISSN 1859-1531. (Đã chấp nhận đăng ngày 03/04/2014).

5. Ho Van Phi, Ho Khanh Lam (2014) “Using Generalized stochastic Petri net for

performance evaluation of cache organization in multicore processor chips”.

Journal of Science and Technology, Technical Universities in Vietnamese, No

98. ISSN 0868-3980, pp.15-22.

116 PHỤ LỤC

PHỤ LỤC I

KỊCH BẢN MÔ PHỎNG ĐÁNH GIÁ HIỆU NĂNG CỦA TỔ CHỨC

CACHE TRONG KIẾN TRÚC CMP ĐA LUỒNG CÓ 2 CẤP CACHE

VÀ 3 CẤP CACHE

I.1. Giới thiệu JMT v.0.8.0

Công cụ mô phỏng Java (JMT) v.0.8.0 là một bộ ứng dụng miễn phí, mã

nguồn mở được tải về từ http://jmt.sourceforge.net. JMT bao gồm các công cụ sử

dụng một số thuật toán tiên tiến để mô hình hóa, phân tích, và mô phỏng đánh giá

chính xác hiệu năng các mô hình mạng xếp hàng đóng, mở hoặc hỗn hợp, có hoặc

không có dạng tích các xác suất. Hình I.1 biểu diễn giao diện lựa chọn các công cụ

Hình I.1: Giao diện lựa chọn công cụ JMT.

JMT.

Trên giao diện ở hình I.1, chọn công cụ mô phỏng đồ họa (JSIMgraph) để tiến

hành mô phỏng đánh giá hiệu năng cho hệ thống mạng xếp hàng.

JSIMgraph: là giao diện mô phỏng đồ họa được dùng cho việc đánh giá phân

tích mô hình mạng xếp hàng. JSIMgraph dễ dàng với người sử dụng, nó tích

hợp các chức năng với một không gian làm việc đồ họa trực quan. Điều này cho

117 phép mô tả đơn giản cấu trúc mô hình mạng xếp hàng, cũng như định nghĩa đơn

giản các thông số đầu vào thực hiện mô phỏng. Hình I.2 mô tả giao diện

Hình I.2: Giao diện mô phỏng đồ họa JSIMgraph.

JSIMgraph.

I.2. Tiến trình mô phỏng

I.2.1. Mô phỏng CMP đa luồng có 2-lõi

1. Vẽ mô hình mạng:

Trên giao diện ở hình I.2, tiến hành vẽ mô hình MCFPQN của kiến trúc CMP

2-lõi. Mô hình CMP 2-lõi có 2 cấp cache với L2 cache chia sẻ cho các lõi được biểu

diễn như hình 3.6a. Mô hình CMP 2-lõi có 3 cấp cache với L3 cache chia sẻ cho các

lõi được biểu diễn như hình 3.6b

2. Thiết lập các thông số cho mỗi nút

 Đối với CMP 2-lõi có 2 cấp cache với L2 cache chia sẻ cho các lõi

 Xác suất định tuyến ở các nút

- Xác suất định tuyến cho tất cả các CPU là p11 = p22 = 0,15

- Xác suất định tuyến từ CPU1 đến L11 cache là p1L1 = 0,85

- Xác suất định tuyến từ CPU2 đến L21 cache là p2L1 = 0,85

- Xác suất định tuyến từ L11 cache đến CPU1 là pL1,1 = 0,7

118

- Xác suất định tuyến từ L21 cache đến CPU2: pL1,2 = 0,7

- Xác suất định tuyến từ L11 cache đến Int+L2 cache là pL1L2 = 0,3

- Xác suất định tuyến từ L21 cache đến Int+L2 cache là pL1L2 = 0,3

- Xác suất định tuyến từ Int+L2 cache đến CPU1 là pL2,1 = 0,4

- Xác suất định tuyến từ Int+L2 cache đến CPU2 là pL2,2 = 0,4

- Xác suất định tuyến từ Int+L2 cache đến MemoryBus+Mem là pL2Mem = 0,2

- Xác suất định tuyến từ MemoryBus+Mem đến CPU1 là pMem1 = 0,5

- Xác suất định tuyến từ MemoryBus+Mem đến CPU2 là pMem2 = 0,5

 Thời gian phục vụ trung bình ở các nút được phân bố theo hàm mũ

- Thời gian phục vụ trung bình tại nút CPU1 là 0,5ns và CPU2 là 0,5ns

- Thời gian phục vụ trung bình tại nút L11 cache là 1ns và L21 cache là 1ns

- Thời gian phục vụ trung bình tại nút Int+L2 cache là 2,5ns

- Thời gian phục vụ trung bình tại nút MemoryBus+Mem là 40ns

 Đối với CMP 2-lõi có 3 cấp cache với L3 cache chia sẻ cho các lõi

 Xác suất định tuyến ở các nút

- Xác suất định tuyến cho tất cả các CPU là p11 = p22 = 0,15

- Xác suất định tuyến từ CPU1 đến L11 cache là p1L1 = 0,85

- Xác suất định tuyến từ CPU2 đến L21 cache là p2L1 = 0,85

- Xác suất định tuyến từ L11 cache đến CPU1 là pL1,1 = 0,7

- Xác suất định tuyến từ L21 cache đến CPU2 là pL1,2 = 0,7

- Xác suất định tuyến từ L11 cache đến L12 cache là pL1L2 = 0,3

- Xác suất định tuyến từ L21 cache đến L22 cache là pL1L2 = 0,3

- Xác suất định tuyến từ L12 cache đến CPU1 là pL2,1 = 0,8

- Xác suất định tuyến từ L22 cache đến CPU2 là pL2,2 = 0,8

- Xác suất định tuyến từ L12 cache đến Int+L3 cache là pL2L3 = 0,2

119

- Xác suất định tuyến từ L22 cache đến Int+L3 cache là pL2L3 = 0,2

- Xác suất định tuyến từ Int+L3 cache đến CPU1 là pL3,1 = 0,4

- Xác suất định tuyến từ Int+L3 cache đến CPU2 là pL3,2 = 0,4

- Xác suất định tuyến từ Int+L3 cache đến MemoryBus+Mem là pL3Mem = 0,2

- Xác suất định tuyến từ MemoryBus+Mem đến CPU1 là pMem1 = 0,5

- Xác suất định tuyến từ MemoryBus+Mem đến CPU2 là pMem2 = 0,5

 Thời gian phục vụ trung bình tại các nút được phân bố theo hàm mũ

- Thời gian phục vụ trung bình tại nút CPU1 là 0,5ns và CPU2 là 0,5ns

- Thời gian phục vụ trung bình tại nút L11 cache là 1ns và L21 cache là 1ns

- Thời gian phục vụ trung bình tại nút L12 cache là 2,5ns và L22 cache là

2,5ns

- Thời gian phục vụ trung bình tại nút Int+L3 cache là 5ns

- Thời gian phục vụ trung bình tại nút MemoryBus+Mem là 40ns

3. Chọn các chỉ số hiệu năng để mô phỏng và đánh giá

Thời gian chờ đợi tại mỗi nút; thời gian đáp ứng tại mỗi nút; thời gian đáp ứng

của hệ thống; mức độ sử dụng tại mỗi nút; thông lượng tại mỗi nút; thông lượng của

hệ thống.

4. Chọn các thông số mô phỏng

- Số lượng mẫu cực đại là 5.000.000

- Độ tin cậy/Độ sai lệch tương đối cực đại là 0,99/0,003

- Số luồng của mỗi CPU là 8

- Chọn loại mạng xếp hàng là mạng xếp hàng đóng

5. Thực hiện mô phỏng

Các kết quả mô phỏng cho CMP 2-lõi có 2 cấp cache với L2 cache chia sẻ cho

các lõi, và có 3 cấp cache với L3 cache chia sẻ cho các lõi được trình bày như trong

bảng 3.1

120

I.2.2. Mô phỏng CMP đa luồng có 4-lõi

1. Vẽ mô hình mạng:

Trên giao diện ở hình I.2, tiến hành vẽ mô hình MCFPQN của kiến trúc CMP

4-lõi. Mô hình CMP 4-lõi có 2 cấp cache với L2 cache chia sẻ cho các lõi được biểu

diễn như hình 3.11a. Mô hình CMP 4-lõi có 3 cấp cache với L3 cache chia sẻ cho

các lõi được biểu diễn như hình 3.11b.

2. Thiết lập các thông số cho mỗi nút

 Đối với CMP 4-lõi có 2 cấp cache với L2 cache chia sẻ cho các lõi

 Xác suất định tuyến ở các nút

- Xác suất định tuyến cho tất cả các CPU: p11 = p22 = p33 = p44 = 0,15

- Xác suất định tuyến từ CPU1 đến L11 cache: p1L1 = 0,85

- Xác suất định tuyến từ CPU2 đến L21 cache: p2L1 = 0,85

- Xác suất định tuyến từ CPU3 đến L31 cache: p3L1 = 0,85

- Xác suất định tuyến từ CPU4 đến L41 cache: p4L1 = 0,85

- Xác suất định tuyến từ L11 cache đến CPU1: pL1,1 = 0,7

- Xác suất định tuyến từ L21 cache đến CPU2: pL1,2 = 0,7

- Xác suất định tuyến từ L31 cache đến CPU3: pL1,3 = 0,7

- Xác suất định tuyến từ L41 cache đến CPU4: pL1,4 = 0,7

- Xác suất định tuyến từ L11 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L21 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L31 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L41 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ Int+L2 cache đến CPU1: pL2,1 = 0,2

- Xác suất định tuyến từ Int+L2 cache đến CPU2: pL2,2 = 0,2

- Xác suất định tuyến từ Int+L2 cache đến CPU3: pL2,3 = 0,2

121

- Xác suất định tuyến từ Int+L2 cache đến CPU4: pL2,4 = 0,2

- Xác suất định tuyến từ Int+L2 cache đến MemoryBus+Mem: pL2Mem = 0,2

- Xác suất định tuyến từ MemoryBus+Mem đến CPU1: pMem1 = 0,25

- Xác suất định tuyến từ MemoryBus+Mem đến CPU2: pMem2 = 0,25

- Xác suất định tuyến từ MemoryBus+Mem đến CPU3: pMem3 = 0,25

- Xác suất định tuyến từ MemoryBus+Mem đến CPU4: pMem4 = 0,25

 Thời gian phục vụ trung bình ở các nút được phân bố theo hàm mũ

- Thời gian phục vụ trung bình tại nút CPU1 là 0,5ns, CPU2 là 0,5ns, CPU3 là

0,5ns và CPU4 là 0,5ns

- Thời gian phục vụ trung bình tại nút L11 cache là 1ns, L21 cache là 1ns, L31

cache là 1ns và L41 cache là 1ns

- Thời gian phục vụ trung bình tại nút Int+L2 cache là 2,5ns

- Thời gian phục vụ trung bình tại nút MemoryBus+Mem là 40ns

 Đối với CMP 4-lõi có 3 cấp cache với L3 cache chia sẻ cho các lõi

 Xác suất định tuyến ở các nút

- Xác suất định tuyến cho tất cả các CPU: p11 = p22 = p33 = p44 = 0,15

- Xác suất định tuyến từ CPU1 đến L11 cache: p1L1 = 0,85

- Xác suất định tuyến từ CPU2 đến L21 cache: p2L1 = 0,85

- Xác suất định tuyến từ CPU3 đến L31 cache: p3L1 = 0,85

- Xác suất định tuyến từ CPU4 đến L41 cache: p4L1 = 0,85

- Xác suất định tuyến từ L11 cache đến CPU1: pL1,1 = 0,7

- Xác suất định tuyến từ L21 cache đến CPU2: pL1,2 = 0,7

- Xác suất định tuyến từ L31 cache đến CPU3: pL1,3 = 0,7

- Xác suất định tuyến từ L41 cache đến CPU4: pL1,4 = 0,7

- Xác suất định tuyến từ L11 cache đến L12 cache: pL1L2 = 0,3

122

- Xác suất định tuyến từ L21 cache đến L22 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L31 cache đến L32 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L41 cache đến L42 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L12 cache đến CPU1: pL2,1 = 0,8

- Xác suất định tuyến từ L22 cache đến CPU2: pL2,2 = 0,8

- Xác suất định tuyến từ L32 cache đến CPU3: pL2,3 = 0,8

- Xác suất định tuyến từ L42 cache đến CPU4: pL2,4 = 0,8

- Xác suất định tuyến từ L12 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ L22 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ L32 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ L42 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ Int+L3 cache đến CPU1: pL3,1 = 0,2

- Xác suất định tuyến từ Int+L3 cache đến CPU2: pL3,2 = 0,2

- Xác suất định tuyến từ Int+L3 cache đến CPU3: pL3,3 = 0,2

- Xác suất định tuyến từ Int+L3 cache đến CPU4: pL3,4 = 0,2

- Xác suất định tuyến từ Int+L3 cache đến MemoryBus+Mem: pL3Mem = 0,2

- Xác suất định tuyến từ MemoryBus+Mem đến CPU1: pMem1 = 0,25

- Xác suất định tuyến từ MemoryBus+Mem đến CPU2: pMem2 = 0,25

- Xác suất định tuyến từ MemoryBus+Mem đến CPU3: pMem3 = 0,25

- Xác suất định tuyến từ MemoryBus+Mem đến CPU4: pMem4 = 0,25

 Thời gian phục vụ trung bình tại các nút được phân bố theo hàm mũ

- Thời gian phục vụ trung bình tại nút CPU1 là 0,5ns, CPU2 là 0,5ns, CPU3 là

0,5ns và CPU4 là 0,5ns

- Thời gian phục vụ trung bình tại nút L11 cache là 1ns, L21 cache là 1ns, L31

cache là 1ns và L41 cache là 1ns

123

- Thời gian phục vụ trung bình tại nút L12 cache là 2,5ns, L22 cache là 2,5ns,

L32 cache là 2,5ns và L42 cache là 2,5ns

- Thời gian phục vụ trung bình tại nút Int+L3 cache là 5ns

- Thời gian phục vụ trung bình tại nút MemoryBus+Mem là 40ns

3. Chọn các chỉ số hiệu năng để mô phỏng và đánh giá

Thời gian đợi tại mỗi nút; thời gian đáp ứng tại mỗi nút; thời gian đáp ứng của

hệ thống; mức độ sử dụng tại mỗi nút; thông lượng tại mỗi nút; thông lượng của hệ

thống.

4. Chọn các thông số mô phỏng

- Số lượng mẫu cực đại là 5.000.000

- Độ tin cậy/Độ sai lệch tương đối cực đại là 0,99/0,003

- Số luồng của mỗi CPU là 8

- Chọn loại mạng xếp hàng là mạng xếp hàng đóng

5. Thực hiện mô phỏng

Các kết quả mô phỏng cho CMP 4-lõi có 2 cấp cache với L2 cache chia sẻ cho

các lõi, và có 3 cấp cache với L3 cache chia sẻ cho các lõi được trình bày như trong

bảng 3.2.

I.2.3. Mô phỏng CMP đa luồng có 8-lõi

1. Vẽ mô hình mạng

Trên giao diện ở hình I.2, tiến hành vẽ mô hình MCFPQN của kiến trúc CMP

8-lõi. Mô hình CMP 8-lõi có 2 cấp cache với L2 cache chia sẻ cho các lõi được biểu

diễn như hình 3.16a. Mô hình CMP 8-lõi có 3 cấp cache với L3 cache chia sẻ cho

các lõi được biểu diễn như hình 3.16b.

2. Thiết lập các thông số cho mỗi nút

 Đối với CMP 8-lõi có 2 cấp cache với L2 cache chia sẻ cho các lõi

 Xác suất định tuyến ở các nút

124

- Xác suất định tuyến cho tất cả các CPU: p11 = p22 = p33 = p44 = p55 = p66 = p77

= p88 = 0,15

- Xác suất định tuyến từ CPU1 đến L11 cache: p1L1 = 0,85

- Xác suất định tuyến từ CPU2 đến L21 cache: p2L1 = 0,85

- Xác suất định tuyến từ CPU3 đến L31 cache: p3L1 = 0,85

- Xác suất định tuyến từ CPU4 đến L41 cache: p4L1 = 0,85

- Xác suất định tuyến từ CPU5 đến L51 cache: p5L1 = 0,85

- Xác suất định tuyến từ CPU6 đến L61 cache: p6L1 = 0,85

- Xác suất định tuyến từ CPU7 đến L71 cache: p7L1 = 0,85

- Xác suất định tuyến từ CPU8 đến L81 cache: p8L1 = 0,85

- Xác suất định tuyến từ L11 cache đến CPU1: pL1,1 = 0,7

- Xác suất định tuyến từ L21 cache đến CPU2: pL1,2 = 0,7

- Xác suất định tuyến từ L31 cache đến CPU3: pL1,3 = 0,7

- Xác suất định tuyến từ L41 cache đến CPU4: pL1,4 = 0,7

- Xác suất định tuyến từ L51 cache đến CPU5: pL1,5 = 0,7

- Xác suất định tuyến từ L61 cache đến CPU6: pL1,6 = 0,7

- Xác suất định tuyến từ L71 cache đến CPU7: pL1,7 = 0,7

- Xác suất định tuyến từ L81 cache đến CPU8: pL1,8 = 0,7

- Xác suất định tuyến từ L11 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L21 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L31 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L41 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L51 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L61 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L71 cache đến Int+L2 cache: pL1L2 = 0,3

125

- Xác suất định tuyến từ L81 cache đến Int+L2 cache: pL1L2 = 0,3

- Xác suất định tuyến từ Int+L2 cache đến CPU1: pL2,1 = 0,1

- Xác suất định tuyến từ Int+L2 cache đến CPU2: pL2,2 = 0,1

- Xác suất định tuyến từ Int+L2 cache đến CPU3: pL2,3 = 0,1

- Xác suất định tuyến từ Int+L2 cache đến CPU4: pL2,4 = 0,1

- Xác suất định tuyến từ Int+L2 cache đến CPU5: pL2,5 = 0,1

- Xác suất định tuyến từ Int+L2 cache đến CPU6: pL2,6 = 0,1

- Xác suất định tuyến từ Int+L2 cache đến CPU7: pL2,7 = 0,1

- Xác suất định tuyến từ Int+L2 cache đến CPU8: pL2,8 = 0,1

- Xác suất định tuyến từ Int+L2 cache đến MemoryBus+Mem: pL2Mem = 0,2

- Xác suất định tuyến từ MemoryBus+Mem đến CPU1: pMem1 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU2: pMem2 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU3: pMem3 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU4: pMem4 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU5: pMem5 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU6: pMem6 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU7: pMem7 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU8: pMem8 = 0,125

 Thời gian phục vụ trung bình ở các nút được phân bố theo hàm mũ

- Thời gian phục vụ trung bình tại nút CPU1 là 0,5ns, CPU2 là 0,5ns, CPU3 là

0,5ns, CPU4 là 0,5ns, CPU5 là 0,5ns, CPU6 là 0,5ns, CPU7 là 0,5ns và

CPU8 là 0,5ns

- Thời gian phục vụ trung bình tại nút L11 cache là 1ns, L21 cache là 1ns, L31

cache là 1ns, L41 cache là 1ns, L51 cache là 1ns, L61 cache là 1ns, L71

cache là 1ns và L81 cache là 1ns

126

- Thời gian phục vụ trung bình tại nút Int+L2 cache là 2,5ns

- Thời gian phục vụ trung bình tại nút MemoryBus+Mem là 40ns

 Đối với CMP 8-lõi có 3 cấp cache với L3 cache chia sẻ cho các lõi

 Xác suất định tuyến ở các nút

- Xác suất định tuyến cho tất cả các CPU: p11 = p22 = p33 = p44 = p55 = p66 = p77

= p88 = 0,15

- Xác suất định tuyến từ CPU1 đến L11 cache: p1L1 = 0,85

- Xác suất định tuyến từ CPU2 đến L21 cache: p2L1 = 0,85

- Xác suất định tuyến từ CPU3 đến L31 cache: p3L1 = 0,85

- Xác suất định tuyến từ CPU4 đến L41 cache: p4L1 = 0,85

- Xác suất định tuyến từ CPU5 đến L51 cache: p5L1 = 0,85

- Xác suất định tuyến từ CPU6 đến L61 cache: p6L1 = 0,85

- Xác suất định tuyến từ CPU7 đến L71 cache: p7L1 = 0,85

- Xác suất định tuyến từ CPU8 đến L81 cache: p8L1 = 0,85

- Xác suất định tuyến từ L11 cache đến CPU1: pL1,1 = 0,7

- Xác suất định tuyến từ L21 cache đến CPU2: pL1,2 = 0,7

- Xác suất định tuyến từ L31 cache đến CPU3: pL1,3 = 0,7

- Xác suất định tuyến từ L41 cache đến CPU4: pL1,4 = 0,7

- Xác suất định tuyến từ L51 cache đến CPU5: pL1,5 = 0,7

- Xác suất định tuyến từ L61 cache đến CPU6: pL1,6 = 0,7

- Xác suất định tuyến từ L71 cache đến CPU7: pL1,7 = 0,7

- Xác suất định tuyến từ L81 cache đến CPU8: pL1,8 = 0,7

- Xác suất định tuyến từ L11 cache đến L12 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L21 cache đến L22 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L31 cache đến L32 cache: pL1L2 = 0,3

127

- Xác suất định tuyến từ L41 cache đến L42 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L51 cache đến L52 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L61 cache đến L62 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L71 cache đến L72 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L81 cache đến L82 cache: pL1L2 = 0,3

- Xác suất định tuyến từ L12 cache đến CPU1: pL2,1 = 0,8

- Xác suất định tuyến từ L22 cache đến CPU2: pL2,2 = 0,8

- Xác suất định tuyến từ L32 cache đến CPU3: pL2,3 = 0,8

- Xác suất định tuyến từ L42 cache đến CPU4: pL2,4 = 0,8

- Xác suất định tuyến từ L52 cache đến CPU5: pL2,5 = 0,8

- Xác suất định tuyến từ L62 cache đến CPU6: pL2,6 = 0,8

- Xác suất định tuyến từ L72 cache đến CPU7: pL2,7 = 0,8

- Xác suất định tuyến từ L82 cache đến CPU8: pL2,8 = 0,8

- Xác suất định tuyến từ L12 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ L22 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ L32 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ L42 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ L52 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ L62 cache đến Int+L3 cache: pL2L3 = 0,3

- Xác suất định tuyến từ L72 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ L82 cache đến Int+L3 cache: pL2L3 = 0,2

- Xác suất định tuyến từ Int+L3 cache đến CPU1: pL3,1 = 0,1

- Xác suất định tuyến từ Int+L3 cache đến CPU2: pL3,2 = 0,1

- Xác suất định tuyến từ Int+L3 cache đến CPU3: pL3,3 = 0,1

- Xác suất định tuyến từ Int+L3 cache đến CPU4: pL3,4 = 0,1

128

- Xác suất định tuyến từ Int+L3 cache đến CPU5: pL3,5 = 0,1

- Xác suất định tuyến từ Int+L3 cache đến CPU6: pL3,6 = 0,1

- Xác suất định tuyến từ Int+L3 cache đến CPU7: pL3,7 = 0,1

- Xác suất định tuyến từ Int+L3 cache đến CPU8: pL3,8 = 0,1

- Xác suất định tuyến từ Int+L3 cache đến MemoryBus+Mem: pL3Mem = 0,2

- Xác suất định tuyến từ MemoryBus+Mem đến CPU1: pMem1 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU2: pMem2 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU3: pMem3 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU4: pMem4 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU5: pMem5 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU6: pMem6 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU7: pMem7 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU8: pMem8 = 0,125

 Thời gian phục vụ trung bình ở các nút được phân bố theo hàm mũ

- Thời gian phục vụ trung bình tại nút CPU1 là 0,5ns, CPU2 là 0,5ns, CPU3 là

0,5ns, CPU4 là 0,5ns, CPU5 là 0,5ns, CPU6 là 0,5ns, CPU7 là 0,5ns và

CPU8 là 0,5ns

- Thời gian phục vụ trung bình tại nút L11 cache là 1ns, L21 cache là 1ns, L31

cache là 1ns, L41 cache là 1ns, L51 cache là 1ns, L61 cache là 1ns, L71

cache là 1ns và L81 cache là 1ns

- Thời gian phục vụ trung bình tại nút L12 cache là 2,5ns, L22 cache là 2,5ns,

L32 cache là 2,5ns, L42 cache là 2,5ns, L52 cache là 2,5ns, L62 cache là

2,5ns, L72 cache là 2,5ns và L82 cache là 2,5ns

- Thời gian phục vụ trung bình tại nút Int+L3 cache là 5ns

- Thời gian phục vụ trung bình tại nút MemoryBus+Mem là 40ns

3. Chọn các chỉ số hiệu năng để mô phỏng và đánh giá

129

Thời gian đợi tại mỗi nút; thời gian đáp ứng tại mỗi nút; thời gian đáp ứng của

hệ thống; mức độ sử dụng tại mỗi nút; thông lượng tại mỗi nút; thông lượng của hệ

thống.

4. Chọn các thông số mô phỏng

- Số lượng mẫu cực đại là 5.000.000

- Độ tin cậy/Độ sai lệch tương đối cực đại là 0,99/0,003

- Số luồng của mỗi CPU là 8

- Chọn loại mạng xếp hàng là mạng xếp hàng đóng

5. Thực hiện mô phỏng

Các kết quả mô phỏng cho CMP 8-lõi có 2 cấp cache với L2 cache chia sẻ cho

các lõi, và có 3 cấp cache với L3 cache chia sẻ cho các lõi được trình bày như trong

bảng 3.3.

130 PHỤ LỤC II

KỊCH BẢN MÔ PHỎNG ĐÁNH GIÁ HIỆU NĂNG CỦA TỔ CHỨC

CACHE TRONG KIẾN TRÚC CỤM LÕI CÓ 3 CẤP CACHE

1. Vẽ mô hình mạng

Trên giao diện ở hình I.2, tiến hành vẽ mô hình MCFPQN của kiến trúc cụm

lõi trong trường hợp CMP có 8-lõi, 4-lõi/cụm và có 3 cấp cache với L3 cache riêng

cho mỗi cụm để thực hiện mô phỏng. Mô hình được biểu diễn như hình 4.4.

2. Thiết lập các thông số cho mỗi nút

 Xác suất định tuyến ở các nút

- Xác suất định tuyến cho tất cả các CPU là p11,11 = p21,21 = p31,31 = p41,41 =

p12,12 = p22,22 = p32,32 = p42,41 = 0,15

- Xác suất định tuyến từ CPU11 đến L11 cache_1 là p11L1 = 0,85

- Xác suất định tuyến từ CPU21 đến L21 cache_1là p21L1 = 0,85

- Xác suất định tuyến từ CPU31 đến L31 cache_1 là p31L1 = 0,85

- Xác suất định tuyến từ CPU41 đến L41 cache_1 là p41L1 = 0,85

- Xác suất định tuyến từ CPU12 đến L11 cache_2 là p12L1 = 0,85

- Xác suất định tuyến từ CPU22 đến L21 cache_2 là p22L1 = 0,85

- Xác suất định tuyến từ CPU32 đến L31 cache_2 là p32L1 = 0,85

- Xác suất định tuyến từ CPU42 đến L41 cache_2 là p42L1 = 0,85

- Xác suất định tuyến từ L11 cache_1 đến CPU11 là pL1,11 = 0,7

- Xác suất định tuyến từ L21 cache_1 đến CPU21 là pL1,21 = 0,7

- Xác suất định tuyến từ L31 cache_1 đến CPU31 là pL1,31 = 0,7

- Xác suất định tuyến từ L41 cache_1 đến CPU41 là pL1,41 = 0,7

- Xác suất định tuyến từ L11 cache_2 đến CPU12 là pL1,12 = 0,7

- Xác suất định tuyến từ L21 cache_2 đến CPU22 là pL1,22 = 0,7

131

- Xác suất định tuyến từ L31 cache_2 đến CPU32 là pL1,32 = 0,7

- Xác suất định tuyến từ L41 cache_2 đến CPU42 là pL1,42 = 0,7

- Xác suất định tuyến từ L11 cache_1 đến L12 cache_1 là pL1L2 = 0,3

- Xác suất định tuyến từ L21 cache_1 đến L22 cache_1 là pL1L2 = 0,3

- Xác suất định tuyến từ L31 cache_1 đến L32 cache_1 là pL1L2 = 0,3

- Xác suất định tuyến từ L41 cache_1 đến L42 cache_1 là pL1L2 = 0,3

- Xác suất định tuyến từ L11 cache_2 đến L12 cache_2 là pL1L2 = 0,3

- Xác suất định tuyến từ L21 cache_2 đến L22 cache_2 là pL1L2 = 0,3

- Xác suất định tuyến từ L31 cache_2 đến L32 cache_2 là pL1L2 = 0,3

- Xác suất định tuyến từ L41 cache_2 đến L42 cache_2 là pL1L2 = 0,3

- Xác suất định tuyến từ L12 cache_1 đến CPU11 là pL2,11 = 0,8

- Xác suất định tuyến từ L22 cache_1 đến CPU21 là pL2,21 = 0,8

- Xác suất định tuyến từ L32 cache_1 đến CPU31 là pL2,31 = 0,8

- Xác suất định tuyến từ L42 cache_1 đến CPU41 là pL2,41 = 0,8

- Xác suất định tuyến từ L12 cache_2 đến CPU12 là pL2,12 = 0,8

- Xác suất định tuyến từ L22 cache_2 đến CPU22 là pL2,22 = 0,8

- Xác suất định tuyến từ L32 cache_2 đến CPU32 là pL2,32 = 0,8

- Xác suất định tuyến từ L42 cache_2 đến CPU42 là pL2,42 = 0,8

- Xác suất định tuyến từ L12 cache_1 đến Int+L3 cache_1 là pL2L3 = 0,2

- Xác suất định tuyến từ L22 cache_1 đến Int+L3 cache_1 là pL2L3 = 0,2

- Xác suất định tuyến từ L32 cache_1 đến Int+L3 cache_1 là pL2L3 = 0,2

- Xác suất định tuyến từ L42 cache_1 đến Int+L3 cache_1 là pL2L3 = 0,2

- Xác suất định tuyến từ L12 cache_2 đến Int+L3 cache_2 là pL2L3 = 0,2

- Xác suất định tuyến từ L22 cache_2 đến Int+L3 cache_2 là pL2L3 = 0,2

- Xác suất định tuyến từ L32 cache_2 đến Int+L3 cache_2 là pL2L3 = 0,2

132 - Xác suất định tuyến từ L42 cache_2 đến Int+L3 cache_2 là pL2L3 = 0,2

- Xác suất định tuyến từ Int+L3 cache_1 đến CPU11 là pL3,11 = 0,2

- Xác suất định tuyến từ Int+L3 cache_1 đến CPU21 là pL3,21 = 0,2

- Xác suất định tuyến từ Int+L3 cache_1 đến CPU31 là pL3,31 = 0,2

- Xác suất định tuyến từ Int+L3 cache_1 đến CPU41 là pL3,41 = 0,2

- Xác suất định tuyến từ Int+L3 cache_2 đến CPU12 là pL3,12 = 0,2

- Xác suất định tuyến từ Int+L3 cache_2 đến CPU22 là pL3,22 = 0,2

- Xác suất định tuyến từ Int+L3 cache_2 đến CPU32 là pL3,32 = 0,2

- Xác suất định tuyến từ Int+L3 cache_2 đến CPU42 là pL3,42 = 0,2

- Xác suất định tuyến từ Int+L3 cache_1 đến MemoryBus+Mem: pL3Mem = 0,2

- Xác suất định tuyến từ Int+L3 cache_2 đến MemoryBus+Mem: pL3Mem = 0,2

- Xác suất định tuyến từ MemoryBus+Mem đến CPU11 là pMem11 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU21 là pMem21 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU31 là pMem31 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU41 là pMem41 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU12 là pMem12 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU22 là pMem22 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU32 là pMem32 = 0,125

- Xác suất định tuyến từ MemoryBus+Mem đến CPU42 là pMem42 = 0,125

 Thời gian phục vụ trung bình ở các nút được phân bố theo hàm mũ

- Thời gian phục vụ trung bình tại nút CPU11 là 0,5ns, CPU21 là 0,5ns,

CPU31 là 0,5ns, CPU41 là 0,5ns, CPU12 là 0,5ns, CPU22 là 0,5ns, CPU32

là 0,5ns và CPU42 là 0,5ns

133

- Thời gian phục vụ trung bình tại nút L11 cache_1 là 1ns, L21 cache_1 là 1ns,

L31 cache_1 là 1ns, L41 cache_1 là 1ns, L11 cache_2 là 1ns, L21 cache_2 là

1ns, L31 cache_2 là 1ns và L41 cache_2 là 1ns

- Thời gian phục vụ trung bình tại nút L12 cache_1 là 2,5ns, L22 cache_1 là

2,5ns, L32 cache_1 là 2,5ns, L42 cache_1 là 2,5ns, L12 cache_2 là 2,5ns,

L22 cache_2 là 2,5ns, L32 cache_2 là 2,5ns và L42 cache_2 là 2,5ns

- Thời gian phục vụ trung bình tại nút Int+L3 cache_1 là 5ns

- Thời gian phục vụ trung bình tại nút Int+L3 cache_2 là 5ns

- Thời gian phục vụ trung bình tại nút MemoryBus+Mem là 40ns

3. Chọn các chỉ số hiệu năng để mô phỏng và đánh giá

Thời gian chờ đợi tại mỗi nút; thời gian đáp ứng tại mỗi nút; thời gian đáp ứng

của hệ thống; mức độ sử dụng tại mỗi nút; thông lượng tại mỗi nút; thông lượng của

hệ thống.

4. Chọn các thông số mô phỏng

- Số lượng mẫu cực đại là 5.000.000

- Độ tin cậy/Độ sai lệch tương đối cực đại là 0,99/0,003

- Số luồng của mỗi CPU là 8

- Chọn loại mạng xếp hàng là mạng xếp hàng đóng

5. Thực hiện mô phỏng

Các kết quả mô phỏng cho CMP 8-lõi có kiến trúc cụm lõi, 4-lõi/cụm, và có 3

cấp cache với L3 cache riêng cho mỗi cụm được trình bày như trong bảng 4.1.