1. Trang chủ
  2. » Luận Văn - Báo Cáo

mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi

74 1,5K 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 1,48 MB

Nội dung

Nhiều giải pháp công nghệ đã được đưa ra như tăng số lệnh đồng thời trong siêu ống lệnh, tăng số luồng thực hiện trên từng lõi, quản lý điện năng thông minh, truy nhập bộ nhớ thông minh,

Trang 1

LỜI CẢM ƠN

Trước tiên tôi xin chân thành cám ơn TS Hồ Khánh Lâm, đã luôn tạo điều kiện,

hỗ trợ, hướng dẫn và tận tình chỉ bảo, góp ý và động viên tôi trong suốt thời gian làm luận văn tốt nghiệp này

Đặc biệt tôi xin gửi lời cám ơn sâu sắc tới các thầy giáo, cô giáo đã tham gia giảng dạy lớp Cao Học Điện Tử - Thông tin khóa 2, viện Đại học Mở Hà Nội, những người đã tận tình hướng dẫn truyền đạt kiến thức là nền tảng cho tôi hoàn thành luận văn này

Sau cùng tôi xin dành lời cám ơn cho bạn bè tôi, nhưng người đã quan tâm, hỗ trợ và tạo điều kiện giúp đỡ tôi trong thời gian làm luận văn tốt nghiệp này

Hà Nội, tháng 10 năm 2011

Tác giả

Trang 2

2

MỤC LỤC

LỜI CẢM ƠN 1

MỞ ĐẦU 6

CHƯƠNG I 8

TỔNG QUAN VỀ VI XỬ LÝ ĐA LÕI VÀ TỔ CHỨC CACHE 8

1.1.Khái niệm về vi xử lý đa lõi 8

1.1.1.Chip vi xử lý đơn lõi truyền thống 8

1.1.2.Đa xử lý CMP(Chip Multi Processor) 10

1.1.3.Tính toán song song HMT 12

1.1.4.Vi xử lý đa lõi (Multicore) 16

1.1.5.Các ứng dụng của Multicore 19

1.2 Bộ nhớ trong vi xử lý đa lõi 21

1.2.1.Tổ chức bộ nhớ của vi xử lý đa lõi 21

1.2.2 Nguyên tắc và cách tổ chức Cache trong vi xử lý 23

1.2.3.Đảm bảo sự thống nhất nội dung của cache (cache coherence) 25

1.3 Một số kiến trúc vi xử lý đa lõi 29

1.3.1.Vi xử lý Dual core của AMD 29

1.3.2 UltraSPARC T1 30

1.3.3.UltraSPARC T2 31

1.3.4.Intel core 2 i7 (Nehalem) 31

CHƯƠNG II 33

MÔ HÌNH HÓA VI XỬ LÝ ĐA LÕI 33

2.1.Mạng xếp hàng đóng nhiều lớp công việc 33

2.1.1 Mô hình xếp hàng 33

2.1.3.Vi xử lý và công việc trong hệ thống 37

2.2.Mạng có nghiệm dạng tích xác suất (PFQN) 38

2.2.1.Mạng PFQN Jackson 39

Trang 3

2.2.2.Mạng PFQN Gordon Newell 39

2.2.3.Mạng PFQN BCMP 40

2.2.4.Vi xử lý là mạng xếp hàng đóng nhiều lớp công việc có nghiệm tích xác suất (MCPFQN) 41

CHƯƠNG III 43

THUẬT TOÁN TÍNH HIỆU NĂNG CỦA VI XỬ LÝ ĐA LÕI 43

3.1.Thuật toán phân tích giá trị trung bình 43

3.2.Thuật toán cuộn 49

CHƯƠNG IV 53

ĐỀ XUẤT GIẢI PHÁP MÔ HÌNH HÓA VÀ PHÂN TÍCH HIỆU NĂNG CỦA VI XỬ LÝ ĐA LÕI 53

4.1.Các mô hình đề xuất 53

4.2 Sử dụng thuật toán Cuộn để tính toán hiệu năng cho vi xử lý đa lõi 55

4.2.1.Các thông số cho mô hình 57

4.2.2.Tình hàm Fi(Si) 57

4.2.3.Tính hằng số bình thường hóa 59

4.2.4.Tính các xác suất biên 60

4.2.5 Số lượng trung bình lệnh, luồng lệnh tại các nút 61

4.2.6.Tính tốc độ các lệnh rời khỏi từng nút 62

4.2.7.Tính mức độ sử dụng của các nút 62

4.3 Thuật toán MVA và công cụ WinPepsy đánh giá hiệu năng vi xử lý đa lõi với các tổ chức cache 63

4.3.1.Mô hình vi xử lý hai lõi có cache L2 độc lập 63

4.3.2 Mô hình vi xử lý hai lõi sử dụng cache L2 chia sẻ 67

4.3.3 Đánh giá, so sánh hai bộ vi xử lý 70

KẾT LUẬN 72

Trang 4

4

DANH MỤC HÌNH VẼ

Hình 1.1:Sơ đồ tổng quát của vi xử lý đơn lõi cổ điển 8

Hình 1.2:Tốc độ và giá thành của các lớp bộ nhớ 9

Hình 1.3: Đa xử lý MIMD UMA và MIMD NUMA 11

Hình 1.4: Các mô hình đa luồng 15

Hình 1.5: Đa lõi là kết hợp đa xử lý và tính toán song song 17

Hình 1.6: Vi xử lý 2 lõi và 4 lõi 18

Hình 1.7: Vi xử lý Nehalem 8 core của Intel 18

Hình 1.8: Database ser và Web server 20

Hình 1.9: Chip đa lõi có L2 chia sẻ và không chia sẻ 22

Hình 1.10: Chip Intel core i7 cache L2, L3 chia sẻ 22

Hình 1.11: Biểu diễn thuật toán FIFO với cache 4 dòng (10 lần thay thế) 23

Hình 1.12: Biểu diễn thuật toán OPT với cache 4 dòng (6 lần thay thế) 24

Hình 1.13: Biểu diễn thuật toán LRU với cache 4 dòng (8 lần thay thế) 25

Hình 1.14: Biểu diễn thuật toán LFU với cache 4 dòng (8 lần thay thế) 25

Hình 1.15 : Sự không nhất (a), thống nhất bằng MESI (b) và MOESI (c) 28

Hình 1.16: Kiến trúc vi xử lý 2 lõi của AMD 29

Hình 1.17: UltraSPARC T1 30

Hình 1.18: Sun T5120 Eight Cores x Eight Threads 31

Hình 1.19: Kiến trúc Nehalem 8 lõi với cache L1, L2, L3 của Intel 32

Hình 2.1: Hàng chờ M/M/1 34

Hình 2.2: Hàng chờ M/M/1/K 34

Hình 2.3: Hàng chờ M/M/m 35

Hình 2.4: Mạng xếp hàng mở 36

Trang 5

Hình 2.5: Mạng xếp hàng đóng 36

Hình 4.1: Vi xử lý 2 lõi với cache L2 chia sẻ 53

Hình 4.2: Mô hình vi xử lý 2 lõi cache L2 độc lập 54

Hình 4.3: Mô hình vi xử lý đa lõi dùng chung cache L2 54

Hình 4.4: Mô hình vi xử lý đa lõi với cache L2 độc lập nhưng chia sẻ L3 54

Hình 4.5: Mô hình bộ vi xử lý lõi kép có L2 độc lập 55

Hình 4.6: Mô hình tính toán 56

Hình 4.7: WinPepsy mô phỏng mức độ sử dụng của các nút 64

Hình 4.8: Kết quả tính toán mức độ sử dụng của các nút 64

Hình 4.9: WinPepsy mô phỏng thông lượng của các nút 65

Hình 4.10: Kết quả tính toán thông lượng của các nút 65

Hình 4.11: WinPepsy mô phỏng thời gian đáp ứng của các nút 66

Hình 4.12: Kết quả tính toán thời gian đáp ứng của các nút 66

Hình 4.13: Mô hình bộ vi xử lý lõi kép có cache L2 chia sẻ 67

Hình 4.14: WinPepsy mô phỏng mức độ sử dụng của các nút 68

Hình 4.15: Kết quả tính toán mức độ sử dụng của các nút 68

Hình 4.16: WinPepsy mô phỏng thông lượng của các nút 69

Hình 4.17: Kết quả tính toán thông lượng của các nút 69

Hình 4.18: WinPepsy mô phỏng thời gian đáp ứng của các nút 70

Hình 4.19: Kết quả tính toán thời gian đáp ứng của các nút 70

Trang 6

có thể cho phép kết nối đến hàng trăm nghìn chip vi xử lý, nhưng lại tiêu tốn nhiều điện năng và công suất tỏa nhiệt rất lớn Trong khi đó, nhu cầu dân dụng đòi hỏi tiêu thụ điện năng thấp, hiệu năng xử lý của hệ thống máy tính phải cao, nhưng giá phải rẻ Kiến trúc vi xử lý đa lõi đáp ứng được nhu cầu này Từ các chip vi xử lý Pentium D của Intel với hai lõi trên CPU đóng vỏ trong một chip, các nhà chế tạo như Intel, Sun, Hp, AMD đã có những phát triển nhanh chóng về công nghệ của kiến trúc vi xử lý đa lõi Nhiều giải pháp công nghệ đã được đưa ra như tăng số lệnh đồng thời trong siêu ống lệnh, tăng số luồng thực hiện trên từng lõi, quản lý điện năng thông minh, truy nhập bộ nhớ thông minh, bổ xung các tập lệnh đa phương tiên (MMX, SSE2, SSE3, SSSE3, SSE4), hỗ trợ tập lệnh 64-bit, thay thể bus FSB bằng QPI (QuickPath Interconnect) tốc độ đạt đến 12,8GB/s (kiến trúc Nehalem – core i), cho phép năng cao tốc độ xử lý của CPU lên nhiều lần, đồng thời giảm đáng

kể điện năng tiêu thụ (10W ở các chip core 2 Duo) và công suất tỏa nhiệt (TDP) chỉ 17W Hiệu năng của vi xử lý đa lõi lại 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 và của từng dòng cache (khối chứa dữ liệu), số cấp cache (L1, L2, hay L3), nguyên tắc thay thế cache, và cấu trúc mạng kết nối bên trong giữa các cấp cache Xu thế phát triển của công nghệ vi xử lý đa lõi

là tiếp tục tăng số lượng lõi CPU trên một chip, nhưng cũng gia tăng tính phức tạp của tổ chức cache, số cấp cache, cấu trúc mạng kết nối các cache Do đó, nghiên cứu các kiến trúc tối ưu của các vi xử lý đa lõi là vấn đề được nhiều nghiên cứu hiện nay trên thế giới tiến hành Phân tích đánh gía hiệu năng của các kiến trúc vi xử lý

đa lõi cũng là một vấn đề cần thiết

Trang 7

II MỤC TIÊU NGHIÊN CỨU CỦA LUẬN VĂN:

Mục tiêu chính của luận văn là tìm hiểu, nghiên cứu về công nghệ vi xử lý

đa lõi cùng với các tổ chức cache khác nhau, tìm hiểu một số công cụ mô phỏng và đánh giá hiệu năng hiện nay có thể áp dụng cho các kiến trúc vi xử lý đa lõi

III NHIỆM VỤ CỦA LUẬN VĂN

Trình bày các kiến trúc phổ biến của vi xử lý đa lõi hiện nay, hệ thống nhớ với các tổ chức cache của vi xử lý đa lõi, các nguyên tắc thay thế dòng cache, vấn đề đảm bảo tính đồng nhất nội dung trong cache, mạng xếp hàng và ứng dụng cho mô hình hóa và phân tích hiệu năng của các hệ thống, đề xuất các mô hình của hệ thống

vi xử lý đa lõi với các tổ chức cache, ứng dụng các thuật toán cuộn (convolution algorithm) và giá trị trung bình MVA của lý thuyết mạng xếp hàng và công cụ phần mềm mô phỏng để tính toán hiệu năng cho các mô hình kiến trúc vi xử lý đa lõi được đề xuất Đánh giá kết luận và đề xuất hướng nghiên cứu

IV BỐ CỤC CỦA LUẬN VĂN

Luận văn gồm bốn chương như sau:

Chương 1: Tổng quan về vi xử lý và các tổ chức cache

Chương 2: Mô hình hóa vi xử lý đa lõi

Chương 3: Thuật toán tính toán hiệu năng của vi xử lý đa lõi

Chương 4: Đề suất mô hình hóa và phân tích hiệu năng của vi xử lý đa lõi

Trang 8

8

CHƯƠNG I TỔNG QUAN VỀ VI XỬ LÝ ĐA LÕI VÀ TỔ CHỨC CACHE

1.1.Khái niệm về vi xử lý đa lõi

1.1.1.Chip vi xử lý đơn lõi truyền thống

Kỹ thuật vi xử lý gắn liền với sự phát triển của công nghệ máy tính CPU của một hệ thống máy tính hiện nay có thể gồm nhiều chip vi xử lý (hệ thống đa xử lý)

và chỉ gồm một chip vi xử lý đơn lõi hay đa lõi

Cấu trúc của một vi xử lý đơn lõi cổ điển gồm có các thanh ghi, ALU, CU, bus

dữ liệu bên trong, giao tiếp với bus bên ngoài… (hình 1.1)

Hình 1.1:Sơ đồ tổng quát của vi xử lý đơn lõi cổ điển

Cùng với sự phát triển của công nghệ mạch tích hợp, các chip vi xử lý đơn lõi đã

có những bước tiến dài trong công nghệ chế tạo, từ kiến trúc tập lệnh x86 bit đến X86 64-bit, từ đơn luồng đến đa luồng, từ đường ống lệnh đơn giản với siêu đường ống, từ không có cache bên trong chip đến có hệ thống nhớ phân cấp với hai

8/16/32-ba cấp cache (L1, L2 và L3), từ không có đến có điều khiển nguồn để tiết kiệm điện năng, từ không có khả năng đến có khả năng kết nối nhiều chip vi xử lý với nhau để tạo ra CPU đa xử lý, từ tập lệnh phức tạp (CISC) đến có các tập lệnh giảm thiểu

Trang 9

(RISC) Một trong những tiến bộ quan trọng của cụng nghệ vi xử lý đơn lừi là cú

sự phõn cấp hệ thống bus do sự khỏc biệt về cụng nghệ và tốc độ xử lý của cỏc thành phần thiết bị trong hệ thống vi xử lý Sự phõn cấp hệ thống bus đảm bảo dễ dàng đồng bộ cỏc giao dịch truyền thụng giữa cỏc thành phần thiết bị, dễ dàng nõng cấp cụng nghệ thiết bị, dễ dàng tiờu chuẩn húa và phối ghộp cỏc thiết bị Cựng với

sự phõn chia hệ thống bus, hệ thống nhớ của hệ thống mỏy tớnh cũng được phõn chia thành nhiều cấp như cho ở hỡnh 1.2 Phân cấp hệ thống nhớ là nhóm các thiết

bị nhớ thành từng cấ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

Hỡnh 1.2:Tốc độ và giỏ thành của cỏc lớp bộ nhớ

Trờn đỉnh hỡnh kim tự thỏp là cấp nhớ L0: cỏc thanh ghi (registers) bờn trong chip vi xử lý Chỳng cú thời gian truy nhập nhanh nhất (1ns – 2ns), nhưng dung lượng nhỏ nhất Đỏy kim tự thỏp là cỏc thiết bị nhớ trờn cỏc hệ đĩa cứng, đĩa quang, băng từ, và thường nằm trờn cỏc hệ thống mỏy tớnh lưu trữ cơ sở dữ liệu trờn mụi trường mạng LAN Chỳng cú thời gian truy nhập chậm nhưng dung lượng lớn Hệ

Trang 10

Tuy nhiên hạn chế lớn nhất của các chip vi xử lý đơn lõi vẫn là mức độ xử lý song song thấp, giá thành cao, cồng kềnh lại tiêu thụ điện năng lớn, công suất tỏa nhiệt cao nên cần phải có hệ thống làm mát tốt

Sự cần thiết để đạt được hiệu suất cao hơn đã trở thành một mối quan tâm quan lớn với cho nhiều tổ chức CNTT Công nghệ phát triển không ngừng, các bộ vi xử

lý đa lõi cùng với những tiến bộ trong bộ nhớ đã cung cấp một nền tảng cân bằng cho hiệu suất và khả năng mở rộng cần thiết cho sự tăng trưởng bền vững của các thế hệ máy tính trong tương lai

1.1.2.Đa xử lý CMP(Chip Multi Processor)

• SIMD (Single Instrucstion stream, Multiple Data stream)

Các máy SIMD có một số lớn các bộ xử lý giống nhau, các bộ vi xử lý này cùng thực hiện một lệnh giống nhau để xử lý nhiều dòng dữ liệu khác nhau Mỗi bộ

xử lý có bộ nhớ dữ liệu riêng, nhưng chỉ có chung một bộ nhớ lệnh và một bộ xử lý điều khiển, bộ nhớ này đọc và thi hành các lệnh Tính song song trong các máy SIMD là tính song song của các dữ liệu Nó chỉ có hiệu quả nếu cấu trúc các dữ liệu

dễ dàng thích ứng với cấu trúc vật lý của các bộ xử lý thành viên Các bộ xử lý

véc-tơ và mảng thuộc loại máy tính này SIMD thường được sử dụng để giải các bài toán dự báo thời tiết như tính nhiệt độ trung bình hàng ngày trong suốt 24 giờ của nhiều địa điểm, khi đó công việc tính toán là như nhau nhưng tập dữ liệu lại hoàn toàn khác nhau…

• MIMD (Multiple Instruction Stream, Multiple Data Stream)

Một hệ thống MIMD là một hệ thống nhiều bộ xử lý và nhiều bộ nhớ, trong đó mỗi bộ xử lý có một đơn vị xử lý riêng và thực hiện chương trình

Trang 11

riêng Các máy MIMD xử lý phân tán thông qua một số các bộ xử lý độc lập, chia sẻ tài nguyên chứa trong hệ thống bộ nhớ chính, mỗi bộ xử lý thực hiện độc lập, đồng thời và thực hiện các chương trình riêng Các hệ thống MIMD thực hiện các phép toán theo dạng song song không đồng bộ, các nút hoạt động hợp tác chặt chẽ nhưng thực hiện độc lập Ví dụ trong hệ thống phục vụ đặt chỗ máy bay, việc đặt chỗ xảy ra thường xuyên, liên tục và đồng thời, mỗi cuộc đặt chỗ cần một chương trình để thực hiện, các chương trình này không bắt đầu song song từng lệnh một, do đó chúng ta có nhiều dòng chảy lệnh và nhiều dòng chảy dữ liệu

Hình 1.3: Đa xử lý MIMD UMA và MIMD NUMA Những máy tính MIMD gồm các bộ kết nối chặt và các bộ kết nối rời tùy thuộc vào cách thức mà các bộ xử lí truy cập vào bộ nhớ của các bộ xử lý khác Những bộ xử lý kết nối chặt được chia sẻ từ một hệ thống bộ nhớ chung được hiểu

là hệ thống bộ nhớ chia sẻ (shared memory) Hình 1.3 chỉ ra cấu trúc của một hệ thống chia xẻ bộ nhớ MIMD trong đó bất kỳ bộ xử lý N nào cũng có thể truy cập đến bộ nhớ M nào thông qua mạng kết nối Một hệ thống MIMD chia xẻ bộ nhớ còn được gọi là một hệ thống truy cập bộ nhớ đều (UMA)

Đối với hệ thống MIMD kết nối rời mỗi bộ xử lý có một bộ nhớ riêng được hiểu như hệ thống truyền thông điệp Những máy tính truyền thông điệp gởi đến nhiều máy tính trong đó mỗi bộ xử lý có bộ nhớ riêng của nó và chỉ truy cập đến bộ

xử lý đó Kiến trúc truyền thông điệp MIMD được hiểu như bộ nhớ phân tán (NUMA)

Trang 12

12

1.1.3.Tính toán song song HMT

Tính toán song song (There are many threads per core) là một dạng tính toán trong đó có nhiều lệnh được thực hiện đồng thời Tính toán song song được vận hành trên nguyên tắc chia bài toán lớn thành các phần nhỏ sao cho những phần nhỏ này có thể thực hiện song song Tính toán song song dùng cho tính toán hiệu năng cao và là đặc điểm quan trọng trong máy tính, đặc biệt là các máy tính đa lõi

Có nhiều dạng tính toán song song như song song dữ liệu, song song mức lệnh, song song nhiệm vụ,…

• Song song mức lệnh Instruction Levsl Parallism (ILP)

ILP được xác định như là một kỹ thuật đồng thời gọi ra và xử lý nhiều lệnh bên trong một chip vi xử lý Trong hệ thống đồng thời có n lệnh được gọi ra trong một chu kỳ của CPU và cũng nhận được n kết quả trong một chu kỳ Kỹ thuật này làm tăng tốc độ của hệ thống nhờ thực hiện tính toán song song các số nguyên và số dấu phẩy động

Trong các máy tính sử dụng kiến trúc đường ống, siêu vô hướng, máy tính vectơ, máy tính VLIW, người ta đã dùng tính thực hiện song song các lệnh ở các mức độ khác nhau để làm tăng hiệu quả của chúng Giới hạn về khả năng tính toán của loại các loại máy trên cùng với sự phát triển của công nghệ máy tính khiến người ta nghĩ tới giải pháp song song theo đó người ta tăng cường hiệu quả của máy tính bằng cách tăng số lượng bộ xử lý

• Song song mức luồng Task Level Parallism (TLP)

Một luồng thường được gọi là một đơn vị cơ bản của việc sử dụng CPU, một luồng được hình thành bởi một định danh (thread ID), một bộ đếm chương trình, tập thanh ghi và ngăn xếp Một luồng chia sẻ với các luồng khác thuộc cùng một quá trình hành động (code), phần dữ liệu, và tài nguyên hệ điều hành như các tập tin đang mở Một quá trình truyền thống chỉ có một luồng điều khiển đơn Nếu quá trình có nhiều luồng điều khiển, nó có thể thực hiện nhiều hơn một nhiệm vụ tại một thời điểm

Trang 13

Nhiều gói phần mềm chạy trên các máy để bàn là đa luồng Ví dụ một trình duyệt Web có thể có một luồng hiển thị hình ảnh và văn bản trong khi một luồng khác lấy dữ liệu từ mạng Hay một trình soạn thảo văn bản có thể có một luồng hiển thị đồ họa, luồng thứ hai đọc sự ấn phím trên bàn phím, một luồng thứ ba thực hiện việc kiểm tra chính tả và từ vựng…Trong những trường hợp cụ thể một ứng dụng đơn có thể được yêu cầu thực hiện nhiều nhiệm vụ đơn (task) Ví dụ, một trình phục

vụ web chấp nhận các yêu cầu khách hàng như trang web, hình ảnh, âm thanh, Một trình phục vụ web có thể có hàng trăm khách hàng truy xuất đồng thời tới nó Nếu trình phục vụ web chạy như một quá trình đơn luồng truyền thống thì nó chỉ có thể chỉ phục vụ một khách hàng tại cùng thời điểm mà thôi Lượng thời gian mà khách hàng phải chờ được phục vụ là rất lớn

Giải pháp là sử dụng một trình phục vụ chạy như một quá trình đơn chấp nhận tất cả các yêu cầu, nó sẽ tạo một quá trình riêng để phục vụ yêu cầu đó Việc tạo ra quá trình này là cách sử dụng thông thường khi luồng chưa phổ biến Hơn nữa tạo

ra quá trình có ảnh hưởng rất lớn đến hệ thống và nếu quá trình mới thực hiện cùng task như quá trình đã có thì nó vẫn phải gánh chịu tất cả chi phí trước đó!!! Sẽ hiệu quả hơn cho một quá trình chứa nhiều luồng phục vụ cùng một mục đích Tiếp cận này sẽ đa luồng quá trình trình phục vụ web Trình phục vụ sẽ tạo một luồng riêng

để lắng nghe các yêu cầu người dùng và khi yêu cầu được thực hiện nó không tạo ra quá trình mới mà sẽ tạo một luồng khác để phục vụ yêu cầu Điều này cho phép phục vụ nhiều yêu cầu đồng hành

• Đặc điểm của tính toán song song mức luồng

Sự đáp ứng: Song song mức luồng cho phép một chương trình tiếp tục chạy

thậm chí nếu một phần của nó bị khóa hay đang thực hiện một thao tác dài, do đó gia tăng sự đáp ứng đối với người dùng Thí dụ, một trình duyệt web vẫn có thể đáp ứng người dùng bằng một luồng trong khi một ảnh đang được nạp bằng một luồng khác

Sự chia sẻ tài nguyên: Mặc định, các luồng chia sẻ bộ nhớ và các tài nguyên của

các quá trình thuộc về chúng Thuận lợi của việc chia sẻ là cho phép một ứng dụng

Trang 14

14

Về Kinh tế: Cấp phát bộ nhớ và các tài nguyên cho việc tạo các quá trình là rất

đắt Vì các luồng chia sẻ tài nguyên của quá trình thuộc về chúng nên nó kinh tế hơn để tạo và chuyển ngữ cảnh giữa các luồng

Sử dụng kiến trúc đa xử lý: Các lợi điểm của đa luồng có thể phát huy trong kiến

trúc đa xử lý, ở đó mỗi luồng thực thi song song trên một bộ xử lý khác nhau Một quá trình đơn luồng chỉ có thể chạy trên một CPU Đa luồng trên một máy nhiều CPU gia tăng tính đồng hành Trong kiến trúc đơn xử lý, CPU thường chuyển đổi qua lại giữa mỗi luồng thật nhanh để tạo ra hình ảnh của sự song song nhưng trong thực tế chỉ một luồng đang chạy tại một thời điểm

• Một số mô hình đa luồng (hình 1.4)

Mô hình nhiều-một: Ánh xạ nhiều luồng cấp người dùng tới một luồng cấp nhân Vì chỉ một luồng có thể truy xuất nhân tại một thời điểm nên nhiều luồng không thể chạy song song trên nhiều bộ xử lý

Mô hình một-một: Mô hình một-một ánh xạ mỗi luồng người dùng tới một luồng nhân Nó cung cấp khả năng đồng hành tốt hơn mô hình nhiều-một bằng cách cho một luồng khác chạy khi một luồng thực hiện lời gọi hệ thống bị nghẽn, nó cũng cho phép nhiều luồng chạy song song trên các bộ xử lý khác nhau Chỉ có một trở ngại trong mô hình này là tạo luồng người dùng yêu cầu tạo một luồng nhân tương ứng

Mô hình nhiều-nhiều: là mô hình đa hợp nhiều luồng cấp người dùng tới số lượng nhỏ hơn hay bằng các luồng nhân Số lượng các luồng nhân có thể được xác định bởi một ứng dụng cụ thể hay một máy cụ thể (một ứng dụng có thể được cấp nhiều luồng nhân trên một bộ đa xử lý hơn là trên một bộ đơn xử lý) Khi người dùng phát triển tạo nhiều luồng người dùng như họ muốn, thì đồng hành thật sự là không đạt được vì nhân có thể lập thời biểu chỉ một luồng tại một thời điểm

Trang 15

Hình 1.4: Các mô hình đa luồng

• Kỹ thuật đa luồng đồng thời (SMT)

Kỹ thuật SMT (Simultaneous Multi-Threading) là tên của Intel đặt cho công nghệ Hyper Threading Kỹ thuật này cho phép một vi xử lý có thể thực sự xử lý song song các thread 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 vi xử lý, khiến hệ điều hành nghĩ rằng nó đang làm việc với nhiều vi xử lý Hệ điều hành sẽ sắp xếp để nhiều thread được gửi đến các bộ xử lý

“ảo” đó

Về mặt lý thuyết, một vi xử lý khi xử lý song song được bao nhiêu thread cũng không thể tăng tốc độ xử lý chúng lên được (do tính tuần tự) Nhưng trong thực tế, không phải bất kỳ lúc nào mọi thành phần của vi xử lý cũng được sử dụng đến, những thành phần không được sử dụng này có thể dùng để xử lý thread thứ hai, thứ

ba hoặc thứ tư 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 hai CPU logic và cố gắng thực thi những thao tác từ hai 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

Kỹ thuật SMT cho phép các phần mềm ứng dụng được viết cho những máy chủ

đa luồng có thể thực hiện các chỉ thị song song đồng thời trên mỗi bộ xử lý riêng, bằng cách này sẽ cải thiện tức thì tốc độ giao dịch cũng như thời gian đáp ứng và các yêu cầu đặc thù khác của phần mềm nghiệp vụ và thương mại điện tử Công nghệ này tương thích với các phần mềm ứng dụng và hệ điều hành sẵn có trên các máy chủ, nó cho phép hỗ trợ nhiều người dùng và tăng khối lượng công việc được

xử lý trên một máy chủ Với các máy trạm cao cấp, công nghệ siêu phân luồng cũng

sẽ tăng đáng kể tốc độ các phần mềm ứng dụng đòi hỏi năng lực tính toán cao, ví dụ

Trang 16

16

1.1.4.Vi xử lý đa lõi (Multicore)

Tốc độ xử lý là vấn đề đầu tiên các nhà khoa học luôn trăn trở Họ luôn muốn cải tiến tốc độ cho hệ thống Trải qua rất nhiều thế hệ tốc độ đã tăng một cách chóng mặt, từ 4.77MHz của vi xử lý i8086, rồi đến 100MHz của vi xử lý i80486, tiếp theo là 1.7MHz của vi xử lý Pentium IV,…Song song với nâng cao tốc độ là sự tăng dần khả năng xử lý dữ lý dữ liệu của vi xử lý (thông lượng) Khả năng xử lý dữ liệu đã tăng từ 4 bit ban đầu cho đến hiện nay là 32bit, 64bit,…Cùng với việc nâng cao tốc độ và tăng thông lượng thì giải pháp hỗ trợ đa xử lý cũng được đưa vào (tích hợp đồng xử lý toán vào cùng chip với CPU) Cho đến những năm cuối thế kỷ 20 các bộ vi xử lý đã đạt được thành quả thật đáng ghi nhận đó là sự lần lượt đưa thêm vào CPU một số đơn vị có chức năng điều khiển và quản lý như: đơn vị giao tiếp bus (BIU), khối tiền đọc lệnh (PUIQ), đơn vị đơn vị dấu phẩy động (FPU), đơn vị quản lý bộ nhớ (MMU), bộ nhớ tra cứu nhanh (TLB),…

Đồng hành và đáp ứng cùng với các phương pháp cải tiến hiệu năng, không thể không nhắc đến vấn đề cốt lõi đó là việc thay đổi kiến trúc Các kiến trúc mới lần lượt được đưa ra nhằm hoàn thiện một hệ thống máy tính công nghệ cao Kiến trúc CISC là nền tảng cho mọi thế hệ vi xử lý, tiếp theo là kiến trúc RISC dành cho các tập lệnh đơn giản, kiến trúc đường ống (Pipeline), sau nữa là kiến trúc siêu vô hướng, kiến trúc đa luồng (Hyper Threading)…

Mục tiêu của ngành Công nghệ thông tin là tạo ra các thế hệ máy mới ưu việt và cạnh tranh Hướng phát triển của mỗi nhà sản xuất khác nhau nhưng đều nhằm tới cái đích sau cùng là: Chất lượng cao, giá thành hạ Từ hàng loạt các phương pháp đưa ra ở trên, vấn đề chất lượng có vẻ như đã đạt được thành tựu đáng kể, nhưng giá thành thì gần như là không vì với một bộ vi xử lý tốc độ từ 2GHz trở lên với do mật độ transitor lớn việc sản xuất là rất phức tạp Mặt khác là hệ thống này khi hoạt động tiêu thụ điện năng lớn, tiếng ồn cao Một vấn đề nữa cũng không nhỏ đó là tại thời điểm này sự bùng nổ của các sản phầm mềm được lập trình song song, điều tất nhiên hệ thống này sẽ đáp ứng thật khó khăn

Để giải quyết vấn đề này phương pháp mới được đưa ra là thiết kế các bộ vi xử

lý đa lõi, còn được hiểu là tích hợp hai hay nhiều CPU trong một chip Chip vi xử lý

đa lõi thật sự là bước đột phá của ngành công nghệ thông tin đầu thế kỷ 21 Máy

Trang 17

tính đa lõi khắc phục được nhược điểm của các bộ vi xử lý đơn lõi trước đó vì việc thiết kê các chip đơn với tốc độ khoảng trên dưới 2GHz tương đối đơn giản và không đòi hỏi sự đầu tư về công nghệ mới Các máy tính đa lõi tiêu thụ điện năng thấp hơn, tiếng ồn cũng giảm Điều quan trọng nhất là vi xử lý đa lõi đáp ứng kịp thời đòi hỏi của các phần mềm tính toán song song như các chương trình chơi Game, hoặc các dịch vụ Multimedia…Máy tính đa lõi là công nghệ kết hợp giữa đa

xử lý và kỹ thuật tính toán song song (hình 1.5)

Hình 1.5: Đa lõi là kết hợp đa xử lý và tính toán song song

• Một số mô hình Multicore

Trong các bộ vi xử lý đa lõi, cấu trúc bên trong tương đối giống nhau Sự khác biệt là ở số lượng lõi và đặc biệt là các cấu trúc cache có thay đổi khá nhiều nhất là Cache L2 Với các vi xử lý lõi kép được xây dựng trên nền kiến trúc của Pentium D

và AMD thì mỗi lõi đều có Cache L2 riêng (hình 1.6) Chính vì vậy mỗi lõi sẽ làm việc như nó đang làm việc cho một CPU độc lập Với Cache riêng thì tại một thời điểm nào đó một lõi có thể phải chạy quá tải trong khi đó lõi kia lại không được sử dụng hoặc sử dụng không hết hiệu suất Khi đó lõi chạy quá tải sẽ phải lấy dữ liệu

từ bộ nhớ chính trong khi không gian trên Cache L2 kia hoàn toàn trống mà lẽ ra được sử dụng để lưu dữ liệu, điều này làm giảm hiệu suất của toàn hệ thống Trước khi mỗi lõi truy xuất bản sao của dữ liệu trên Cache L2 của mình, để đảm bảo đó là bản sao mới nhất của dữ liệu Điều này tương đối phức tạp vì dữ liệu có thể đã được

Trang 18

M, Cache L2 được hai lõi dùng chung (hình 1.6) Kiến trúc chia sẻ Cache L2 cho hiệu suất thực thi tốt hơn Cache L2 chia sẻ cho phép tự động điều chỉnh dung lượng Cache L2 cho từng lõi tùy vào tần suất truy xuất Cache L2 của từng lõi Với phương pháp mới này, bộ vi xử lý Core 2 Duo với Cache nhớ L2 4MB, thì một lõi

có thể sử dụng đến 3,5MB trong khi đó lõi còn lại sử dụng 0,5MB, hoàn toàn tương phản với các CPU đa nhân sử dụng cache L2 riêng Một điểm mạnh khác khi chia

sẻ bộ nhớ Cache L2 là giảm tải cho bộ nhớ và bus hệ thống vì không phải update lại

dữ liệu cho mỗi lần truy nhập

Vi xử lý 4 lõi của Intel như Core 2 Extreme QX và Core 2 Quad sử dụng 2 chíp

2 lõi, việc chia sẻ chỉ xuất hiện giữa các lõi 1 và 2, 3 và 4 (hình 1.6) Hiện nay, Intel

đã cho ra đời các CPU quad-core sử dụng một chíp đơn (một chip có 4 core dùng chung cache L2) Với phương pháp này, Cache L2 sẽ được chia sẻ giữa bốn lõi Hiện nay các bộ vi xử lý 2 lõi, 4 lõi, 8 lõi sử dụng cache L3 chia sẻ không còn

là mới mẻ ví dụ như vi xử lý AMD xây dựng trên kiến trúc K10, đặc biệt là vi xử lý Intel kiến trúc, Nehalem (hình 1.7) Kích thước của Cache L3 này sẽ phụ thuộc vào

mô hình của từng CPU cụ thể

Hình 1.7: Vi xử lý Nehalem 8 core của Intel

Trang 19

• Multicore và SMT

Theo sự phát triển, các phần mềm ứng dụng viết cho những máy chủ đa luồng hay các hệ điều hành mới yêu cầu tốc độ mà mỗi vi xử lý thực hiện các lệnh ngày càng cao, tăng tốc độ xung nhịp với các CPU là phương pháp chủ yếu người ta đưa ngày càng nhiều mạch bán dẫn vào một bộ chip, điều này sẽ khiến cho CPU phát sinh nhiều nhiệt và một số thí nghiệm đã cho thấy CPU sẽ không còn hoạt động hiệu quả nữa

Công nghệ đa lõi sẽ giải quyết vấn đề trên, nó cho phép một bộ xử lý có thể chứa 2 lõi hoặc nhiều hơn Các lõi này sẽ hoạt động song song với nhau, chia sẻ công việc tính toán xử lý mà bộ xử lý phải đảm nhận, nó có thể thực hiện 4 luồng, thậm chí 8 luồng song song Việc có hai lõi hoặc nhiều hơn giúp bộ xử lý hoạt động hiệu quả và có công suất cao hơn mà không cần phải tăng xung nhịp, vì mỗi lõi sẽ

xử lý ít ứng dụng hơn, giảm hiện tượng bộ xử lý phải cùng một lúc gánh vác công việc của nhiều ứng dụng

1.1.5.Các ứng dụng của Multicore

• Database server

Database server (hình 1.8) là dịch vụ kết nối trực tiếp đến máy chủ chứa cơ

sở dữ liệu Server là một máy chủ mà trên đó có cài đặt phần mềm Hệ quản trị Cơ

sở dữ liệu (HQTCSDL) Chúng ta có một số HQTCSDL chẳng hạn như: SQL Server, MySQL, Oracle… dịch vụ Database server hoàn toàn đạt hiệu quả nếu hệ thống được thiết kê có bộ nhớ được chia sẻ kiểu kiến trúc MIMD UMA

• Web server

Web server (hình 1.8) là dịch vụ mà một máy tính (máy chủ) trên đó cài đặt phần mềm phục vụ Web, đôi khi người ta cũng gọi chính phần mềm đó là Web Server Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html, Dịch vụ Web Server sử dụng hệ thống bộ nhớ không chia sẻ MIMD NUMA

Trang 20

Multimedia có nhiều loại như: radio, vô tuyến, quảng cáo, phim ảnh, trò chơi điện tử, thương mại điện tử… Multimedia là sự kết hợp của các kỹ thuật xử lý

âm thanh, hình ảnh…[7] Máy tính là một trong số các thiết bị hỗ trợ đắc lực cho Multimedia đặc biệt là máy tính đa lõi bởi khả năng xử lý song song của nó đối với các phần mềm Multimedia được lập trình song song

• CAD/CAM

CAD là Các phần mềm thiết kế và các phần mềm vẽ có sự trợ giúp của máy tính Các phần mềm CAD là các dụng cụ tin học đặc thù của máy tính đa xử lý cho việc nghiên cứu và được chia thành hai loại: Phần mềm thiết kế và các phần mềm

vẽ AutoCAD là phần mềm thuộc dạng này có mặt rất sớm và do đó rất phổ biến ở Việt Nam Kết quả của CAD là một bản vẽ xác định, một sự biểu diễn nhiều hình chiếu khác nhau của một chi tiết cơ khí với các đặc trưng hình học và chức năng

CAM là một hoạt động cụ thể trong công nghệ chế tạo cơ khí Kết quả của CAM là cụ thể, đó là chi tiết cơ khí Trong CAM không truyền đạt một sự biểu diễn

Trang 21

của thực thể mà thực hiện một cách cụ thể công việc Việc chế tạo bao gồm các vấn

đề liên quan đến vật thể, cắt gọt vật liệu, công suất của trang thiết bị, các điều kiện

sản xuất khác nhau có giá thành nhỏ nhất

CAD/CAM tương ứng với các hoạt động của hai quá trình hỗ trợ cho phép biến một ý tưởng trừu tượng thành một vật thể thật Hai quá trình này thể hiện rõ trong công việc nghiên cứu và triển khai chế tạo Xuất phát từ nhu cầu cho trước, việc nghiên cứu đảm nhận thiết kế một mô hình mẫu cho đến khi thể hiện trên bản

vẽ biễu diễn chi tiết Từ bản vẽ chi tiết, việc triển khai chế tạo đảm nhận lập ra quá trình chế tạo các chi tiết cùng các vấn đề liên quan đến dụng cụ và phương pháp thực hiện Hai lĩnh vực hoạt động lớn này trong ngành chế tạo máy được thực hiện liên tiếp nhau và được phân biệt bởi kết quả của nó

1.2 Bộ nhớ trong vi xử lý đa lõi

1.2.1.Tổ chức bộ nhớ của vi xử lý đa lõi

Cũng như vi xử lý đơn lõi, tổ chức bộ nhớ của vi xử lý đa lõi được phân ra một

số cấp nhớ Trong đó, các cấp cache thường sử dụng tổ chức liên kết tập hợp n-dòng (n-way set association), với số dòng n = 2,4,8 Nhiều vi xử lý đa lõi sử dụng hai cấp cache: L1 Cache và L2 Cache L1 cache (L1Icache và L1Dcache) riêng cho từng lõi CPU nằm trên die (mảnh silicon chứa các lõi) trong đóng vỏ chip L2 Cache có thể chia sẻ chung cho các lõi, hoặc riêng cho từng lõi (hình 1.9), và chúng có thể nằm trên die hoặc ngoài die Để nâng cao hiệu suất sử dụng L2 Cache dùng chung, một

số chip vi xử lý đưa vào công nghệ cache thông minh (smart cache): khi phần không gian nhớ của L2 cache chia sẻ cho một lõi CPU nào đó đang rỗi (idle) thì phần không gian chia sẻ này được giành thêm cho lõi CPU đang tích cực và có nhu cầu

sử dụng

Trang 22

22

Hình 1.9: Chip đa lõi có L2 chia sẻ và không chia sẻ

Hầu hết các vi xử lý đa lõi hiện nay đều sử dụng ba cấp cache L3 Cache được chia sẻ dung chung cho các lõi, và có thể nằm trên die hoặc ngoài die (hình 1.10)

Kỹ thuật cache thông minh cũng được đưa vào cho L3 cache chia sẻ

Hình 1.10: Chip Intel core i7 cache L2, L3 chia sẻ

Nguyên tắc tham chiếu của các lõi CPU đến bộ nhớ được bắt đầu với L1 Cache, nếu trượt L1 Cache, thì tham chiếu đến L2 Cache, nếu trượt L2 Cache thì tham chiếu đến L3 Cache, nếu trượt L3 cache thì tham chiếu đến bộ nhớ chính (MM) Vì vậy việc chọn tổ chức cache có tốc độ chọn (truy nhập) nhanh và tỷ số trúng cache cao cho vi xử lý đa lõi là yếu tố quan trọng ảnh hưởng lớn đến hiệu năng của vi xử

lý (hình 1.11) Tỷ số trúng cache ở các cấp gần các lõi CPU hơn thì thời gian truy nhập bộ nhớ sẽ ít hơn, thỏa mãn: L1 cache Hit > L2 Cache Hit > L3 Cache Hit

Trang 23

Cấu trúc và điều khiển của mạng kết nối giữa các lõi CPU (interconnect network) là một vấn đề quan trọng phải giải quyết để đảm bảo băng thông cao cho truyền thông dữ liệu giữa các lõi CPU qua các cache Đây là vấn đề còn để mở

1.2.2 Các chính sách thay thế Cache trong vi xử lý đơn lõi

Các chính sách thay thế dòng cache khi có trượt cache trong các hệ thống vi xử

lý đơn lõi đã từ lâu được nghiên cứu phát triển như : vào trước ra trước (FIFO) tối

ưu (OPT), được sử dụng ít nhất gần đây (LRU), tần xuất sử dụng ít nhất (LFU), ngẫu nhiên (Random), và ưu tiên (PR) Ta xét một số đặc điểm của các chính sách thay thế cho vi xử lý đơn lõi

• Chính sách FIFO (First In First Out)

Chính sách thay thế FIFO gắn với mỗi thời gian khi thông tin được đưa vào cache Khi cần chọn một khối của dòng cache để thay thế nội dung, thì khối nào được vào cache trước tiên (dữ liệu đã cũ lâu) sẽ được chọn để thay thế Chúng ta có thể tạo một hàng đợi FIFO để quản lý tất cả khối trong cache Khối dữ liệu nào được đưa vào cache sớm nhất (cũ nhất) sẽ ở đầu hàng đợi Khối dữ liệu nào mới được đưa vào cache sẽ được để ở cuối hàng đợi (vào sau cùng) Khối dữ liệu bị thay thế là khối nằm ở đầu của hàng đợi

Ví dụ: Giả sử có 4 dòng cache (ban đầu coi như cache đầy), chương trình gồm các khối có địa chỉ cần truy nhập theo thứ tự là: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Giải thuật FIFO thay thế các thông tin được biểu diễn như hình 1.12 (mỗi cột coi là 1 cache, mỗi hàng coi là 1dòng cache)

Hình 1.12: Biểu diễn chính sách FIFO với cache 4 dòng (10 lần thay thế)

Trang 24

24

Chính sách thay thế FIFO mặc dù dễ hiểu và dễ lập trình Nhưng hiệu năng của

nó không cao Các khối dữ liệu được nạp vào cache sớm thường là quan trọng, chứa nhiều dữ liệu cần thiết thậm chí là các lệnh bắt đầu của một chương trình, thế nhưng nó lại bị đẩy ra đầu tiên Chúng ta hãy hình dung chương trình sẽ luôn phải bắt đầu và không bao giờ kết thúc

• Chính sách tối ưu OPT

Trong chính sách OPT (optimal) dòng cache “nạn nhân” là dòng chứa nội dung

dữ liệu chưa được dùng trong một khoảng thời gian lâu nhất (đã chờ lâu nhất mà chưa được sử dụng đến) Với ví dụ ở hình 1.12 ta sử dụng chính sách OPT thì chỉ phải thay thế 6 lần cho cache 4 dòng và 7 lần cho với cache 3 dòng (hình 1.13)

Hình 1.13: Biểu diễn thuật toán OPT với cache 4 dòng (6 lần thay thế)

Chính sách OPT có tỉ lệ thay thế thấp nhất trong tất cả các chính sách, và nó không khả thi vì các thao tác tiếp theo phụ thuộc vào các yêu cầu truy nhập mà CPU sau một quá trình xử lý đưa ra, nếu để CPU phải quan tâm trước đến tương lai thì xem ra không khả thi vì con người chúng ta còn khó biết trước tương lai của chính mình

• Chính sách LRU (Least Recently Used)

Chính sách thay thế LRU gắn mỗi khối với thời gian sử dụng cuối cùng của khối

đó Khi thay thế, khối “nạn nhân” là khối dữ liệu gần đây ít được sử dụng nhất LRU là chính sách thay thế dòng cache tối ưu Nó thực hiện tìm kiếm lùi về quá khứ (ngược lại với OPT là hướng tới tương lai) Nhưng vì không xét tới tương lai nên trong nhiều trường hợp khối “nạn nhân” vừa bị đẩy ra đã phải đưa vào ngay sau

đó (vì không biết đến tương lai), điều này ảnh hưởng không nhỏ đến hiệu suất của cache Nhưng LRU vẫn tốt hơn thuật toán FIFO vì số lần thay thế đã ít hơn, tức là

Trang 25

hiện tượng “cache miss” đã giảm LRU được hầu hết các hệ thống vi xử lý đơn lõi

sử dụng Kết quả cho ví dụ trên với LRU được biểu diễn ở hình 1.14

Hình 1.14: Biểu diễn thuật toán LRU với cache 4 dòng (8 lần thay thế)

• Chính sách LFU (Least Frequently Used)

Chính sách thay thế LFU thực hiện thay thế dòng cache chứa khối dữ liệu có tần xuất sử dụng ít nhất Để xác định tần xuất sử dụng của khối dữ liệu trong dòng cache, cần phải có bộ đếm truy nhập cho từng khối của dòng cache Mỗi lần CPU tham chiếu đến khối dữ liệu của dòng cache thì bộ đệm tương ứng sẽ được tự động tăng lên 1 Như vậy, khối dữ liệu có bộ đếm giá trị nhỏ nhất sẽ được chọn để thay thế Nhưng hiệu năng của cache bị giảm với những trường hợp khối dữ liệu được dùng nhiều trong quá trình khởi tạo nhưng sau đó không dùng đến nữa mà vẫn ung dung nằm trong cache vì số đếm của nó lớn Ngược lại, một khối của dòng mới vừa được đưa từ bộ nhớ chính vào cache sẽ là “nạn nhân” của LFU vì nó có số đếm nhỏ nhất Kết quả cho ví dụ trên với LFU được biểu diễn ở hình 1.15

Hình 1.15: Biểu diễn thuật toán LFU với cache 4 dòng (8 lần thay thế)

• Chính sách ngẫu nhiên (Random)

Chính sách thay thế dòng cache ngẫu nhiên phân bố đồng đều khả năng bị thay thế, các khối cần thay thế trong cache sẽ được chọn ngẫu nhiên Cache ánh xạ 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

Trang 26

26

Chính sách thay thế LRU được sử dụng có hiệu quả trong các hệ thống vi xử lý đơn lõi, và nó cũng được sử dụng cho các vi xử lý đa lõi lại không đạt được hiệu suất cao Cho đến bây giờ, vấn đề sử dụng chính sách thay thế cache nào từ các chính sách thay thế cache của vi xử lý đơn lõi hay một chính sách thay thế mới khác

để đạt hiệu năng cao vẫn còn là vấn đề nghiên cứu còn mở

Có một số chính sách thay thế cache cho vi xử lý đa lõi được đề xuất gần đây:

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

NRU là một chính sách thay thế cache gần với LRU NRU sử dụng một bit cho một khối dữ liệu của một dòng cache, được gọi là nru-bit Với bit này NRU cho phép dự đoán hai tham chiếu lại khối dữ liệu Khi nru-bit = 0 thì có nghĩa rằng khối

dữ liệu của dòng cache đã vừa được sử dụng và khối này được dự đoán là sẽ được tham chiếu lại trong một tương lại gần ngay lập tức (near-immediate future) Khi nru-bit = 1 thì có nghĩa là khối dữ liệu của dòng cache đã không được sử dụng gần đây và khối này được dự đoán sẽ được tham chiếu lại trong một tương lai xa (distant future) Khi cache đã đầy, NRU luôn dự đoán rằng khối bị bỏ qua sẽ được tham chiếu trong một tương lai gần ngay lập tức Khi khối được tham chiếu lại, NRU lại một lần nữa đoán trước rằng khối này sẽ được tham chiếu trong một tương lai gần ngay lập tức Khi có trượt cache, NRU chọn khối dữ liệu của dòng cache làm nạn nhân cho thay thế là khối đã được dự đoán sẽ được tham chiếu lần nữa trong một tương lai xa Nghĩa là khối có nru-bit tương ứng = 1

• Chính sách thay thế cache tĩnh SRRIP

SRRIP (Static RRIP) dựa trên dự đoán khoảng cách tham chiếu lại RRIP reference interval prediction) sử dụng M-bits cho từng khối dữ liệu của dòng cache

(Re-để lưu 2M khả năng các giá trị dự đoán tham chiếu lại RRPV (Re-reference Prediction Values) SRRIP linh hoạt biết được thông tin tham chiếu lại đối từng khối dữ liệu trong mẫu truy nhập cache Tương tự như NRU, một giá trị RRPV = 0 xác định rằng khối dữ liệu của dòng cache được dự đoán sẽ được tham chiếu lại trong một tương lai gần ngay lập tức, trong khi 2M-1 giá trị RRPV còn lại xác định rằng khối dữ liệu của dòng cache được dự đoán sẽ được tham chiếu lại trong một

Trang 27

tương lai xa Về số lượng, RRIP dự đoán các khối có các giá trị RRPV nhỏ sẽ được tham chiếu lại trong một tương lai gần hơn só với các khối có các giá trị RRPV lớn hơn Khi M=1, SRRIP tương tự như NRU Khi M>1, SRRIP cho phép nhiều khoảng cách tham chiếu lại ngay lập tức hơn một khoảng cách tham chiếu lại gần ngay lập tức, nhưng nhỏ hơn khoảng cách tham chiếu lại khoảng cách xa

• Chính sách thay thế cache BRRIP

SRRIP không hiệu quả sử dụng cache khi khoảng cách tham chiếu lại các khối

dữ liệu là lớn hơn dung lượng cache tồn tại Như vậy SRRIP gây ra hiện tượng tan

vỡ cache (cache thrashing) và kết quả là không trúng cache Để trách hiện tượng này, chính sách thay thế hai phương thức BRRIP (Bimodal RRIP) được đề xuất BRRIP đưa vào phần lớn các khối với dự đoán khoảng cách xa tham chiếu lại (nghĩa là giá trị RRPV=2M-1) và với xác suất nhỏ (tần suất thấp) đưa vào các khối với dự đoán khoảng cách dài tham chiếu lại (nghĩa là giá trị RRPV = 2M-2)

• Chính sách thay thế động DRRIP

DRRIP (Dynamic RRIP) sử dụng sự ghép đôi tập hợp (Set Dueling) [4] để xác định chính sách thay thế nào là phù hợp nhất cho một ứng dụng DRRIP một cách linh hoạt lựa chọn giữa SRRIP và BRRIP nhờ sử dụng các SDMs (Set Dueling monitors) [5] SDM hạn chế trượt cache đối với bất kỳ chính sách nào với một số ít các tập hợp của cache Set Dueling sử dụng sự lựa chọn bộ đếm chính sách (PSEL counter) để 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

Ngoài chính sách LRU truyền thống được sử dụng, trên đây là các chính sách thay thế cache được đề xuất cho các chip vi xử lý đa lõi, tuy nhiên sự kiểm nghiệm thực tế chưa có nhiều tài liệu chỉ rõ

1.2.4 Đảm bảo sự thống nhất nội dung của cache (cache coherence)

Cache là bộ nhớ SRAM có tốc độ truy nhập nhanh Nếu tổ chức cache hiệu quả thì khi chạy một chương trình các chỉ thị và dữ liệu hay dùng hoặc vừa được tính

Trang 28

28

dung lượng Cache thì toàn bộ chương trình sẽ nằm gọn trong Cache (là điều mơ ước) Nhưng trong thực tế các chương trình thường có dung lượng lớn và Cache thì không thể chứa hết chương trình Để tiếp tục chạy chương trình hiển nhiên là một

số khối nào đó sẽ bị đẩy ra để lấy chỗ cho khối mới

(a) (b)

(c)

Hình 1.16 : Sự không nhất (a), thống nhất bằng MESI (b) và MOESI (c)

Truy nhập cache không chỉ để đọc mà còn phải thực hiện các tao tác ghi Với chính sách ghi đồng thời nếu chỉ với một lõi, tuy tốc độ chậm nhưng tính thống nhất của hệ thống sẽ không có gì phải bàn Nhưng với các bộ vi xử lý đa lõi ghi đồng thời (Write Through) gần như không đạt hiệu quả do kiến trúc phức tạp Do đó ghi lại (Write Back) là phương pháp được sử phổ biến trong các vi xử lý đa lõi Quá trình ghi lại của một CPU đa lõi có thể dẫn đến có lớn hơn 2 nội dung khác nhau của cùng một khối bộ nhớ trong cache và khối của bộ nhớ chính Trong các hệ thống có nhiều hơn một bộ xử lý, mỗi hệ thống với cách tổ chức cache và tổ chức của bộ nhớ chia sẻ thì các vấn đề liên quan đến tính đồng nhất của dữ liệu càng cần phải được đảm bảo Sự thay đổi dữ liệu trên một cache riêng lẻ sẽ làm cho dữ liệu trên các hệ thống cache và bộ nhớ liên quan không được đồng nhất (hình 1.16a)

Hai giao thức MESI và MOSI (hình 1.16 b,c) với các thông tin trạng thái của hãng Intel và AMD được đưa ra để đảm bảo tính thống nhất dữ liệu trong các

Trang 29

bộ vi xử lý đa lõi Sự phối hợp của những bit đánh dấu và MESI giúp giảm bớt tần suất truy nhập cache của các lõi nên sẽ giải phóng băng thông cho những dữ liệu thật sự cần thiết trong các cache:

(M): modified (thay đổi), cho biết nội dung khối cache này khác với nội dung khối bộ nhớ chính

(E): exclusive (không chấp nhận), nội dung khối cache ko bị thay đổi và giống với khối bộ nhớ

(S): shared (chia sẻ), có thể chia sẻ nội dung với các cache khác

(I): invalid (không hợp lệ), khối bộ nhớ không có trong cache

(O): cho biết dữ liệu trong cache là bản sao dữ liệu mới nhất tại thời điểm hiện tại

1.3 Một số kiến trúc vi xử lý đa lõi

1.3.1.Vi xử lý Dual core của AMD

Trên chip này hai lõi AMD64 có thể chạy 32 bit và 64bit đồng thời Thường

sử dụng cho các loại máy tính để bàn (hình 1.17)

Hình 1.17: Kiến trúc vi xử lý 2 lõi của AMD

Trang 30

ƒ Integrated DDR Controller Điều khiển độ trễ khi truy cập vào bộ nhớ so với việc sử dụng FSB truy cập cho bộ nhớ Mỗi lõi có điều khiển bộ nhớ riêng của mình

ƒ System Request Queue: Hệ thống hàng đợi yêu cầu, quản lý sự truy nhập của mỗi lõi trên Crossbar

ƒ Link 1/2/3 đây là 3 kết nối giữa các khu vực I/O và khu vực bộ vi xử lý sử dụng

ƒ Bus 72 bit DDR400 cho phép cung cấp dữ liệu thông lượng lên đến 6.4GBps đến bộ nhớ

Trang 31

Hệ thống đạt hiệu quả cao do khả năng xử lý được từng lớp luồng TLP (lớp công việc) Nhưng do làm việc trong các vùng hẹp của L2 chia sẻ nên hiện tượng Cache Miss cao do đó hiệu suất giảm Việc thực hiện song song các lệnh là rất chậm làm tăng cache “miss” và làm tăng khả năng khó dự đoán dẫn đến thiếu chính xác Hệ thống này hiệu quả phụ thuộc vào tốc độ truy nhập của bộ nhớ

1.3.3.UltraSPARC T2

UltraSPARC T2 còn gọi là Niagara II (hình 1.18) UltraSPARC là một chip đơn

8 lõi, tất cả các lõi đều sử dụng chung cache L2 chia sẻ, mỗi lõi có thể xử lý 8 luồng song song UltraSPARC có thể quản lý được xấp xỉ 20000 trạng thái nên nó là một loại máy tính được sử dụng trong y tế để hỗ trợ các ca phẫu thuật Ngoài ra UltraSPARC T2 còn được dùng trong các trường hợp đòi hỏi tốc độ cao như các trò chơi điện tử trực tuyến hoặc các dich vụ Multimedia…

Hình 1.18: Sun T5120 Eight Cores x Eight Threads

1.3.4.Intel core 2 i7 (Nehalem)

Bộ nhớ đệm L3 trong các BXL Nehalem (hình 1.19) hoạt động với tần số độc lập và có hệ thống cấp nguồn riêng biệt với các nhân để đảm bảo độ ổn định và giảm xác suất lỗi Ưu điểm của thiết kế cache L3 này là giúp việc trao đổi dữ liệu giữa các nhân hiệu quả hơn mà không cần thông qua các cache bên trong của mỗi nhân trong vi kiến trúc Nehalem tích hợp trong BXL một chip điều khiển năng lượng PCU (Power Control Unit) để hiện thực công nghệ mới Turbo Boost Chip PCU này sẽ dựa trên các cảm ứng được thiết lập tại các nhân xử lý để thực hiện

Trang 32

32

giám sát về nhiệt độ, điện áp trên nhân Nehalem được dùng trong các hệ thống có diện tích nhỏ laptop…

Hình 1.19: Kiến trúc Nehalem 8 lõi với cache L1, L2, L3 của Intel

Dưới đây là bảng so sánh giữa các bộ vi xử lý được đưa ra ở trên

Bộ xử lý Số lõi Số luồng L1, L2, L3 Chia sẻ AMD’s Dual core 2 x 2 = 4 4 x 2 = 8 L1,L2 Không UltraSPARC T1 1 x 8 = 8 8 x 4 = 32 L1, L2 Chia sẻ L2 UltraSPARC T2 1 x 8 = 8 8 x 8 = 64 L1, L2 Chia sẻ L2 Intel core 2 i7 2 x 4 = 8 8 x 2 = 16 L1, L2, L3 Chia sẻ l3

Bảng 1.1: So sánh số lõi, số luồng, và tổ chức cache

Trang 33

CHƯƠNG II

MÔ HÌNH HÓA VI XỬ LÝ ĐA LÕI

Đặc trưng cơ bản của mạng viễn thông là lưu lượng, dung lượng và chất lượng Lưu lượng phát sinh trên mạng là một đại lượng ngẫu nhiên trong khi dung lượng là một đại lượng hữu hạn còn chất lượng mạng thì phụ thuộc vào lưu lượng, dung lượng và các quá trình điều khiển kết nối trên mạng Với mạng đa dịch vụ cung cấp nhiều loại hình công việc với các yêu cầu khác nhau về chất lượng, tốc độ và mức

độ ưu tiên thì phương pháp mô hình hóa phân tích một hệ thống mạng theo lý thuyết hàng chờ là phương pháp tổng quát nhất được sử dụng để xử lý lưu lượng và quản lý tài nguyên

Trong nhiều hoạt động sản xuất kinh doanh cũng như trong đời sống chúng ta áp dụng các hệ dịch vụ đám đông hay hệ phục vụ công cộng, chúng

có tên gọi chung là hệ thống hàng chờ Các xí nghiệp sửa chữa máy móc, các cửa hàng, các bến xe, bến cảng, trạm tổng đài, các hệ thống điện tử viễn thông, Internet, là các ví dụ về hệ thống hàng chờ Trong một mạng máy tính các công việc được chuyển từ nguồn tới đích và đi qua một số lượng các nút trung gian Tại các nút này, hàng chờ xuất hiện để phục vụ quá trình lưu tạm thông tin của hệ thống

2.1.Mạng xếp hàng đóng nhiều lớp công việc

2.1.1 Mô hình xếp hàng

Lý thuyết hàng chờ là một công cụ toán học mạnh dùng để phân tích, ước lượng trong các hệ thống viễn thông và các mạng máy tính Trong các hệ thống hàng chờ thường xuyên diễn ra hai quá trình: quá trình nảy sinh các yêu cầu và quá trình phục vụ các yêu cầu (một yêu cầu được coi là một tín hiệu cần được phục vụ hay là một công việc) Nhưng nhiều khi trong quá trình phục vụ của các

hệ thống, do nhiều nguyên nhân khác nhau, thường xảy ra các tình trạng như quá trình phục vụ không đáp ứng các yêu cầu, do đó dẫn đến kết quả là nhiều yêu cầu phải chờ để được phục vụ, hoặc ngược lại trong một số tình huống, khả

Trang 34

34

hệ thống không sử dụng hết phương tiện phục vụ Nhiều bài toán thực tế trong các lĩnh vực hệ thống dịch vụ, kỹ thuật, viễn thông … đã được giải quyết thành công nhờ áp dụng phương pháp mô phỏng mô hình hàng chờ

• Mô hình hàng chờ M/M/1

Hàng đợi M/M/1 có nhãn λ tương ứng với tốc độ đến của các khách hàng còn nhãn μ tương ứng với tốc độ đi khỏi của khách hàng sau khi được phục vụ xong (trừ trạng thái 0), tín hiệu đến và đi theo phân phối hàm mũ (chuỗi Markov) Hệ thống này chỉ có một server và hàng đợi có kích thước vô hạn (hình 2.1) Các trạng thái được biểu diễn bằng các vòng tròn, số hiệu trong vòng tròn là toàn bộ số khách hàng trong mạng bao gồm cả khách hàng đang chờ trong hàng đợi và khách hàng đang được phục vụ

Trang 35

• Mô hình hàng chờ M/M/m

Hàng chờ M/M/m có thời gian giữa các lần đến λ và thời gian phục vụ của tín hiệu μ là phân phối hàm mũ (chuỗi Markov) Hàng chờ M/M/m có m server giống nhau và song song Hình (2.3)

Hình 2.3: Hàng chờ M/M/m

• Mô hình hàng chờ M/G/1

M: quá trình đến là quá trình Poisson tốc độ λ

G: là phân bố xác suất chung của biến xtùy tiện – là thời gian phục vụ khác hàng G(x) =P[service_timex] Phân bố chung có thể là rời rạc hay liên tục 1: là chỉ có một server nguyên tác phục vụ là FIFS

Số lượng khách hàng N (t) trong hệ thống không phải là quá trình Markov Như vậy, hệ thống M/G/1 có phân bố chung của thời gian phục vụ tùy tiện

mà trong đó ít nhất giá trị trung bình của tốc độ phục vụ μ và giá trị chênh lệch sẽ được tính theo các moment và các chênh lệch Nhưng để cho đơn giản ta sẽ chỉ khảo sát hệ thống với phân bố chung rời rạc

2.1.2 Mạng xếp hàng

Mạng xếp hàng là một mô hình quan trọng và là một phương pháp cụ thể được

sử dụng để đánh giá phân tích mô hình một hệ thống máy tính đa lõi Một bộ vi xử

lý đa lõi cùng với các tổ chức cache được coi như là một mô hình mạng gồm có các nút là CPU, L1, L2, L3, memory… cùng với các hàng chờ tại mỗi nút

Trang 36

36

sau khi được phục vụ xong có thể ra khỏi hệ thống bằng một hoặc nhiều lối ra (hình 2.4) Các công cụ thực hiện việc điều khiển mạng xếp hàng mở bao gồm việc quyết định khi nào nên chấp nhận luồng công việc mới, khi nào thì bỏ qua các công việc

và bỏ qua công việc nào Tất cả các công cụ trên đều có đặc điểm chung là chúng đưa ra các quyết định mà không quan tâm đến trạng thái hiện hành của mạng

Do nhu cầu xử cần xử lý xuất phát từ con người luôn thay đổi nên bộ vi xử lý về bản chất là một mạng xếp hàng mở, số lượng công việc là rất lớn và vượt qua khả năng của máy tính, nhưng nếu mô hình vi xử lý đa lõi là mạng loại này thì việc tính toán rất phức tạp, có nghĩa là chúng ta rất khó kiểm soát được hoạt động của hệ thống vi xử lý

Hình 2.4: Mạng xếp hàng mở

• Vi xử lý và mạng xếp hàng đóng

Mạng được gọi là xếp hàng đóng nếu không có khách hàng nào từ bên ngoài

đi vào mạng hoặc từ trong mạng đi ra ngoài Do bị hạn chế bởi tập lệnh và dung lượng nên một bộ vi xử lý chỉ xử lý được một số lệnh hoặc một số luồng nhất định,

vì vậy bộ vi xử lý được mô hình hóa thành một mạng xếp hàng đóng

Hình 2.5: Mạng xếp hàng đóng Với mạng xếp hàng đóng, các lệnh hay luồng lệnh sau khi được tìm kiếm và

xử lý chỉ có thể truyền giữa các nút trong hệ thống Các xử lý là liên tiếp giữa một

số cặp nút bất kỳ như giữa CPU và L1, giữa cache L1 và L2 cache hoặc giữa L2 và

bộ nhớ Vì là mạng đóng nên các lệnh không thể ra khỏi vi xử lý và cũng không có

Trang 37

thêm bất cứ một xử lý nào lớn hơn tổng số lệnh tham gia thêm vào hệ thống (hình 2.5)

• Mạng xếp hàng kết hợp

Hệ thống kết hợp là hệ thống đóng đối với một số khách hàng nhưng lại mở với một số khách hàng khác Hệ thống này trên lý thuyết có vẻ gần gũi với thực tế, nhưng trong một bộ vi xử lý để đánh giá hiệu năng chúng ta cần phải chọn một mô hình mang tính tổng quát và thuận lợi trong quá trình đánh giá hệ thống

2.1.3.Vi xử lý và công việc trong hệ thống

• Vi xử lý đơn lõi với một lớp công việc duy nhất

Một hệ thống mạng chỉ xử lý được các công việc với điều kiện duy nhất được gọi là mạng đơn lớp Cũng như vậy, một bộ vi xử lý đơn lõi chỉ xử lý được các lệnh hay luồng lệnh…với điều kiện là tất cả các lệnh hoặc luồng lệnh bằng nhau về thời gian xử lý, bằng nhau về độ dài lệnh, giống nhau về tính chất và giống nhau về nội dung công việc… Do đó vi xử lý đơn lõi được coi là mạng một lớp công việc Bộ vi

xử lý đơn lõi thực hiện mỗi giai đoạn của lệnh trong một khoảng thời gian bằng nhau Một hệ thống vi xử lý đơn lõi được mô hình như một mạng xếp hàng đóng hoặc mở với các hàng đợi gồm duy nhất một CPU, L1, L2, memory bus, RAM và các hàng đợi tương ứng Mạng xếp hàng đơn lớp chỉ xử lý các công việc một cách tuần tự với các khoảng thời gian cho mỗi công việc là như nhau, đây là hạn chế của mạng cũng như là hạn chế của các vi xử lý đơn lõi có tốc độ thấp và không có khả năng xử lý song song do không tận tận dụng được thời gian rỗi của CPU, đặc biệt đối với các phần mềm được xây dựng bằng kiến trúc đa luồng thì vi xử lý đơn lõi gần như không thể đáp ứng được

• Vi xử lý đa lõi và các lớp công việc

Mạng xếp hàng cũng tìm thấy ứng dụng trong mô hình phân tích của các hệ thống máy tính xử lý song song Hiện tượng bùng nổ không gian trạng thái trong hệ thống này được giới hạn do sử dụng phương pháp phân tích hiệu quả chuỗi Markov

Ngày đăng: 18/08/2014, 03:09

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
4. M.Queshi, A.Jaleel, Y.Patt, S.Steely, J.Emer: “Adaptive Insertion Policies for High Performance Caching”. In ISCA-34, 2007 Sách, tạp chí
Tiêu đề: Adaptive Insertion Policies for High Performance Caching
1. Kỹ thuật vi xử lý tập 1,2 Hồ Khánh Lâm nhà xuất bản Bưu điện Tiếng Anh Khác
2. Cache Organization and Memory Management of the Intel Nehalem Computer Architecture Trent Rolf University of Utah Computer Engineering CS 6810 Final Project December 2009 Khác
3. Multi-Core Processor Technology:Maximizing CPU Performance in a Power-Constrained World Paul Teich Business Strategy CPG Server/Workstation AMD Khác
5. A.Jaleel, W.Hasenplaugh, M.K.Queshi, S.Steely, J.Emer:” Adaptive Insertion Policies for Managing Shared Caches”. In PACT, 2008.Các website Khác

HÌNH ẢNH LIÊN QUAN

Hỡnh 1.1:Sơ đồ tổng quỏt của vi xử lý đơn lừi cổ điển - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 1.1:Sơ đồ tổng quỏt của vi xử lý đơn lừi cổ điển (Trang 8)
Hình 1.2:Tốc độ và giá thành của các lớp bộ nhớ - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 1.2 Tốc độ và giá thành của các lớp bộ nhớ (Trang 9)
Hình 1.4: Các mô hình đa luồng - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 1.4 Các mô hình đa luồng (Trang 15)
Hỡnh 1.5: Đa lừi là kết hợp đa xử lý và tớnh toỏn song song - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 1.5: Đa lừi là kết hợp đa xử lý và tớnh toỏn song song (Trang 17)
Hình 1.8: Database ser và Web server - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 1.8 Database ser và Web server (Trang 20)
Hỡnh 1.9: Chip đa lừi cú L2 chia sẻ và khụng chia sẻ - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 1.9: Chip đa lừi cú L2 chia sẻ và khụng chia sẻ (Trang 22)
Hỡnh 1.11: nguyờn tắc tham chiếu của cỏc lừi CPU đến cỏc cấp nhớ - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 1.11: nguyờn tắc tham chiếu của cỏc lừi CPU đến cỏc cấp nhớ (Trang 22)
Hình 1.10: Chip Intel core i7 cache L2, L3 chia sẻ - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 1.10 Chip Intel core i7 cache L2, L3 chia sẻ (Trang 22)
Hình 1.12: Biểu diễn chính sách FIFO với cache 4 dòng (10 lần thay thế) - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 1.12 Biểu diễn chính sách FIFO với cache 4 dòng (10 lần thay thế) (Trang 23)
Hình 1.13: Biểu diễn thuật toán OPT với cache 4 dòng (6 lần thay thế) - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 1.13 Biểu diễn thuật toán OPT với cache 4 dòng (6 lần thay thế) (Trang 24)
Hình 1.16 : Sự không nhất (a),  thống nhất bằng MESI (b) và MOESI (c) - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 1.16 Sự không nhất (a), thống nhất bằng MESI (b) và MOESI (c) (Trang 28)
Hỡnh 1.17: Kiến trỳc vi xử lý 2 lừi của AMD - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 1.17: Kiến trỳc vi xử lý 2 lừi của AMD (Trang 29)
Hình 1.18: UltraSPARC T1 - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 1.18 UltraSPARC T1 (Trang 30)
Hình 1.18: Sun T5120 Eight Cores x Eight Threads - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 1.18 Sun T5120 Eight Cores x Eight Threads (Trang 31)
Bảng 1.1: So sỏnh số lừi, số luồng, và tổ chức cache - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Bảng 1.1 So sỏnh số lừi, số luồng, và tổ chức cache (Trang 32)
Hình 2.5: Mạng xếp hàng đóng - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 2.5 Mạng xếp hàng đóng (Trang 36)
Hỡnh 4.1: Vi xử lý 2 lừi với cache L2 chia sẻ - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 4.1: Vi xử lý 2 lừi với cache L2 chia sẻ (Trang 53)
Hỡnh 4.3: Mụ hỡnh vi xử lý đa lừi dựng chung cache L2 - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 4.3: Mụ hỡnh vi xử lý đa lừi dựng chung cache L2 (Trang 54)
Hỡnh 4.4: Mụ hỡnh vi xử lý đa lừi với cache L2 độc lập nhưng chia sẻ L3 - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 4.4: Mụ hỡnh vi xử lý đa lừi với cache L2 độc lập nhưng chia sẻ L3 (Trang 54)
Hỡnh 4.2: Mụ hỡnh vi xử lý 2 lừi cache L2 độc lập - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 4.2: Mụ hỡnh vi xử lý 2 lừi cache L2 độc lập (Trang 54)
Hỡnh 4.5: Mụ hỡnh bộ vi xử lý lừi kộp cú L2 độc lập - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 4.5: Mụ hỡnh bộ vi xử lý lừi kộp cú L2 độc lập (Trang 55)
Hình 4.6: Mô hình tính toán - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 4.6 Mô hình tính toán (Trang 56)
Bảng 4.1: Liệt kê các bước tính toán theo thuật toán Cuộn - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Bảng 4.1 Liệt kê các bước tính toán theo thuật toán Cuộn (Trang 59)
Hình 4.8: Kết quả tính toán mức độ sử dụng của các nút - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 4.8 Kết quả tính toán mức độ sử dụng của các nút (Trang 64)
Hình 4.9: WinPepsy mô phỏng thông lượng của các nút - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 4.9 WinPepsy mô phỏng thông lượng của các nút (Trang 65)
Hình 4.12: Kết quả tính toán thời gian đáp ứngcủa các nút - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
Hình 4.12 Kết quả tính toán thời gian đáp ứngcủa các nút (Trang 66)
Hỡnh 4.13: Mụ hỡnh bộ vi xử lý lừi kộp cú cache L2 chia sẻ - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 4.13: Mụ hỡnh bộ vi xử lý lừi kộp cú cache L2 chia sẻ (Trang 67)
Hình  4.14: WinPepsy mô phỏng mức độ sử dụng của các nút - mô hình và phân tích hiệu năng của các tổ chức cache trong các kiến trúc vi xử lý đa lõi
nh 4.14: WinPepsy mô phỏng mức độ sử dụng của các nút (Trang 68)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w