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ớ
Trang 1TRƯỜ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
Trang 2BỘ 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
Trang 3LỜ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
Trang 4LỜ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
Trang 5MỤ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
Trang 62.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.1.3.3 Cache liên kết tập hợp 26
2.2 Các đặc tính hiệu năng của cache 28
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
Trang 72.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
Trang 83.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
Trang 94.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
Trang 10DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
bộ nhớ
B
thức
Prediction (Bimodal RRIP)
Hai phương thức dự báo khoảng tham chiếu lại
C
ccNUMA cache-coherent Non-Uniform
Memory Access
Truy cập bộ nhớ không đồng nhất tương quan cache
CISC Complex Instruction Set Computer Máy tính có tập lệnh phức
Trang 11CMP Chip Multi-Processors Chip đa xử lý
tục
D
Prediction (Dynamic RRIP)
Dự đoán khoảng tham chiếu lại động
rạc
F
Trang 12HLL High-Level Language Ngôn ngữ cấp cao
Viện kỹ sư điện và điện tử
J
L
M
Instruction
Số chu kỳ đồng hồ truy cập bộ nhớ/lệnh
MCPFQN Multiclass Closed Product-Form
Queuing Network
Mạng xếp hàng đóng đa lớp có dạng tích các xác suất
Trang 13MESI Modified, Exclusive, Shared or
Invalid (Cache-Protocol)
Sửa đổi, loại trừ, chia sẻ hoặc
vô hiệu (giao thức cache) MESIF Modified, Exclusive, Shared,
Invalid, Forward
Sửa đổi, loại trừ, chia sẻ hoặc
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
Instruction
Số chu kỳ đồng hồ trì hoãn bộ nhớ/lệnh
MSPMA Memory Stalls clock cycles Per
Memory Access
Số chu kỳ đồng hồ trì hoãn bộ nhớ/truy cập bộ nhớ
N
nhất
O
P
Trang 14PMF Probability mass function Hàm khối lượng xác suất
RISC Reduced Instruction Set Computer Máy tính với tập lệnh đơn giản
hóa
RRPV Re-reference Prediction Values Giá trị dự đoán tham chiếu lại
S
tập hợp
SIMD Single Instruction Multiple Data Một lệnh nhiều dữ liệu
Trang 15SRAM Static Random-Access Memory RAM tĩnh
SRRIP Static Re-reference Interval
Prediction (Static RRIP)
Dự đoán khoảng tham chiếu lại tĩnh
T
U
V
VHDL Very-High speed integrated circuit
hardware Description Language
Ngôn ngữ mô tả phần cứng VHSIC
VHSIC Very High Speed Integrated Circuit Mạch tích hợp tốc độ rất cao
Trang 16Bả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
Trang 17DANH 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
Trang 18Hì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
Trang 19Hì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
Trang 20Hì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
Trang 21MỞ ĐẦ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 tăng gấp đôi cứ sau 18 tháng” [1, 16, 21, 37]
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]
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]
Trang 22Cho đế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
Trang 23cô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”
Trang 242 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
Trang 25- 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ềmJMT 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
Trang 26Chươ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]
Trang 27Lý 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, 66]
Hình 1.2: Kiến trúc phân mảnh của CMP [11, 18]
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)
Trang 28b) SMC gồm n/r = 4/4 lõi (4 lõi, mỗi lõi có 4 BCE) [40]
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:
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
perf(r) =
Hiệu năng tuyệt đối của một lõi có r-BCE
Trang 29Như vậy, tổng mức tăng tốc SP của SMC là:
(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 1-BCE
Hình 1.4: AMC gồm một lõi 4-BCE và n-4 lõi 1-BCE [40]
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 AMC là:
(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
Trang 30Hì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ơ
sở Theo luật Amdahl, tổng mức tăng tốc trong DMC là:
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
Trang 31Hình 1.6: CMP với kiến trúc SISD [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.7: CMP với kiến trúc SIMD [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
Hình 1.8: CMP với kiến trúc MIMD [72]
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]
Trang 32Trong 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 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ử
CMP-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
Trang 33câ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)
Trang 34- 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ý
và CMP đa luồng
(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]
Các thông số của các mạng nDMesh và nDTorus:
Trang 352) Đường kính:
1/n
Dn(N đối với mạng nDMesh; 1)
1/ n
D(n / 2)(N ) đối với mạngnDTorus
Trong đó: ki là số liên kết (hay số nút) ở từng hướng i, và n là số hướng
d = n đến 2n đối với mạng nDMesh;
d = 2n đối với mạng nDTorus
B2N đối với mạng nDTorus
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ố liên kết hay số nút) k = k; i = 0, 1, , n -1, khi đó i N = k nút, n dmax = 2Bn , Bn: lấy ở các gócchung cho cả mạng nDMesh và nDTorus, băng thông của độ rộng chia đôi ở mạng nDMesh là n -1
LnN (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
Trang 36mạ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ý,
hệ thống nhớ được phân thành một số lớp [20, 25, 72] như hình 1.10
Hình 1 10: Phân lớp của hệ thống nhớ [25, 72]
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,30,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 (13) ns, hoặc thấp hơn
Bộ nhớ chính chứa các khối
dữ liệu lấy từ đĩa cứng Đĩa cục bộ chứa các files lấy từ các máy chủ dịch vụ mạng
CPU Registers Cache trên chip (SRAM) Cache trên chip (SRAM)
Bộ nhớ chính (DRAM)
Thiết bị nhớ trên đĩa cứng Thiết bị nhớ trên mạng
Cache trên hay ngoài chip
(SRAM)
L0 L1 L2 L3 L4 L5 L6
CPU registers chứa các từ lấy từ L1 cache
L1 cache chứa các dòng cache lấy từ L2 cache L2 cache chứa các dòng lấy từ L3 cache L3 cache chứa các dòng lấy từ bộ nhớ chính
Dung lượng nhỏ hơn,
Trang 373 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, (13)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 (1020)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 (116)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
Trang 38Vì 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
Trang 39Chươ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ộ nhớ chính theo các khối như hình 2.1
Hình 2.1: Trao đổi dữ liệu giữa CPU, cache và bộ nhớ chính [62, 72]
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
chính
Bus bộ nhớ Bus cục bộ
Trang 40nộ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.3 Vị trí tuần tự
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ế độ