4.4.2.1Vai trò của cache
Do nhớ cache là một thành phần của hệ thống nhớ phân cấp, nên vai trò của cache tƣơng tự nhƣ vai trò của cấu trúc phân cấp hệ thống nhớ: tăng hiệu năng hệ thống vào giảm giá thành sản xuất. Sở dĩ cache có thể giúp tăng hiệu năng hệ thống là nhờ cache có khả năng dung hoà đƣợc CPU có tốc độ cao và bộ nhớ chính có tốc độ thấp làm cho thời gian trung bình CPU truy nhập dữ liệu từ bộ nhớ chính tiệm cận thời gian truy nhập cache. Ngoài ra, do cache là một loại bộ nhớ “thông minh” có khả năng đoán và chuẩn bị trƣớc các dữ liệu cần thiết cho CPU xử lý nên xác xuất CPU phải trực tiếp truy nhập dữ liệu từ bộ nhớ chính là khá thấp và điều này cũng giúp làm giảm thời gian trung bình CPU truy nhập dữ liệu từ bộ nhớ chính. Tuy cache có giá thành trên một đơn vị nhớ cao hơn bộ nhớ chính, nhƣng do tổng dung lƣợng cache thƣờng khá nhỏ nên cache không làm tăng giá thành hệ thống nhớ quá mức. Nhờ vậy, cache hoàn toàn phù hợp với cấu trúc phân cấp và có thể giúp làm giảm giá thành sản xuất trong tƣơng quan với tốc độ của cả hệ thống nhớ. Có thể kết luận rằng, nếu hai hệ thống nhớ
CPU Cache Main
Chương 4- Bộ nhớ trong
43
có cùng giá thành, hệ thống nhớ có cache có tốc độ truy cập nhanh hơn; và nếu hai hệ thống nhớ có cùng tốc độ, hệ thống nhớ có cache sẽ có giá thành rẻ hơn.
4.4.2.2Nguyên lý hoạt động của cache
Cache sở dĩ đƣợc coi là bộ nhớ “thông minh” là do nó có khả năng đoán trƣớc yêu cầu về dữ liệu và lệnh của CPU. Dữ liệu và lệnh cần thiết đƣợc chuyển trƣớc từ bộ nhớ chính về cache và CPU chỉ cần truy nhập cache, giúp giảm thời gian truy nhập hệ thống nhớ. Để có đƣợc sự thông minh, cache hoạt động dựa trên hai nguyên lý cơ bản: nguyên lý lân cận về không gian (Spatial locality) và nguyên lý lân cận về thời gian (Temporal locality).
Hình 39 Lân cận về không gian trong không gian chƣơng trình
Nguyên lý lân cận về không gian có thể phát biểu nhƣ sau: “Nếu một ô nhớ đang được truy
nhập thì xác xuất các ô nhớ liền kề với nó được truy nhập trong tương lai gần là rất cao”.
Lân cận về không gian thƣờng đƣợc áp dụng cho nhóm lệnh hoặc dữ liệu có tính tuần tự cao trong không gian chƣơng trình, nhƣ minh hoạ trên Hình 39. Do các lệnh trong một chƣơng trình thƣờng tuần tự, cache có thể đọc cả khối lệnh từ bộ nhớ chính và khối lệnh đọc đƣợc bao phủ cả các ô nhớ lân cận (neighbour cell) của ô nhớ đang đƣợc truy nhập (current cell).
Khác với nguyên lý lân cận về không gian, nguyên lý lân cận về thời gian chú trọng hơn đến tính lặp lại của việc truy nhập các mẩu thông tin trong một khoảng thời gian tƣơng đối ngắn. Có thể phát biểu nguyên lý này nhƣ sau: “Nếu một ô nhớ đang được truy nhập thì xác xuất nó
được truy nhập lại trong tương lai gần là rất cao”. Lân cận về thời gian đƣợc áp dụng cho dữ
liệu và nhóm các lệnh trong vòng lặp nhƣ minh hoạ trên Hình 40. Với các phần tử dữ liệu, chúng đƣợc CPU cập nhập thƣờng xuyên trong quá trình thực hiện chƣơng trình nên có tính lân cận cao về thời gian. Với các lệnh trong vòng lặp, chúng thƣờng đƣợc CPU thực hiện lặp đi lặp lại nhiều lần nên cũng có tính lân cận cao về thời gian; nếu cache nạp sẵn khối lệnh chứa cả vòng lặp sẽ phủ đƣợc tính lân cận về thời gian.
Neighbour cell Current cell Neighbour cell
Chương 4- Bộ nhớ trong
Hình 40 Lân cận về thời gian với việc thực hiện vòng lặp
4.4.2.3Trao đổi dữ liệu giữa CPU – cache – bộ nhớ chính
Hình 41 Trao đổi dữ liệu giữa CPU với cache và bộ nhớ chính
Hình 41 minh hoạ việc trao đổi dữ liệu giữa CPU với cache và bộ nhớ chính: CPU trao đổi dữ liệu với cache theo các đơn vị cơ sở nhƣ byte, từ và từ kép. Còn cache trao đổi dữ liệu với bộ nhớ chính theo các khối, với kích thƣớc 16, 32 hoặc 64 bytes. Sở dĩ CPU trao đổi dữ liệu với cache theo các đơn vị cơ sở mà không theo khối do dữ liệu đƣợc lƣu trong các thanh ghi của CPU – vốn có dung lƣợng rất hạn chế. Vì vậy, CPU chỉ trao đổi các phần tử dữ liệu cần thiết theo yêu cầu của các lệnh. Ngƣợc lại, cache trao đổi dữ liệu với bộ nhớ chính theo các khối, mỗi khối gồm nhiều byte kề nhau với mục đích bao phủ các mẩu dữ liệu lân cận theo không gian và thời gian. Ngoài ra, trao đổi dữ liệu theo khối (hay mẻ) với bộ nhớ chính giúp cache tận dụng tốt hơn băng thông đƣờng truyền và nhờ vậy có thể tăng tốc độ truyền dữ liệu.
4.4.2.4Các hệ số Hit và Miss
Hit (đoán trúng) là một sự kiện mà CPU truy nhập một mục tin và mục tin ấy có ở trong
cache. Xác suất để có một hit gọi là hệ số hit, hoặc H. Dễ thấy hệ số hit H thuộc khoảng (0, 1). Hệ số hit càng cao thì hiệu quả của cache càng cao. Ngƣợc lại, Miss (đoán trƣợt) là một sự kiện mà CPU truy nhập một mục tin và mục tin ấy không có ở trong cache. Xác suất của một miss gọi là hệ số miss, hoặc 1-H. Cũng có thể thấy hệ số miss 1-H thuộc khoảng (0, 1). Hệ số miss càng thấp thì hiệu quả của cache càng cao.
CPU Cache Memory
Individual data items: byte, word Block of data: 16, 32, 64 bytes Instruction 1 Instruction 2 Instruction 3 Instruction 4 Instruction 5 End of loop Start of loop
Chương 4- Bộ nhớ trong
45