c, Liên kết thông qua stack
7.6. Bộ nhớ Cache
Khi chương trình được thực thi trên máy tính, hệ thống truy xuất tới một lượng nhỏ ô nhớ. Một ô nhớ vừa được truy xuất có khả năng sẽ tiếp tục được truy xuất ngay sau đó. Tốc độ truy xuất thông thường là thấp hơn rất nhiều so với tốc độ
của bộ xử lý trung tâm CPU vì có một nút cổ chai ở phần kết nối giữa CPU và bộ nhớ. Do vậy, nếu hệ thống có một vùng nhớ dung lượng nhỏ nhưng tốc độ
truy xuất với tốc độ cao, được sử dụng để lưu trữ nội dung ô nhớ vừa được truy xuất thì tốc độ xử lý của CPU sẽ được cải thiện rất nhiều. Đây chính là tiền đề
của sự xuất hiện bộ nhớ Cache. Vùng nhớ Cache là vùng chứa nội dung của các ô nhớ thường được truy cập, được đặt ở giữa bộ nhớ chính và CPU. Khi thực thi chương trình, vùng nhớ Cache sẽ được tìm kiếm trước, nếu nội dung cần tìm có trong Cache, nó sẽ được sử dụng ngay lập tức. Nếu nội dung cần tìm không có trong Cache, hệ thống sẽ tiếp tục bằng cách truy xuất ra bộ nhớ chính bên ngoài. Nội dung này sau đó sẽ được đưa vào bộ nhớ Cache. Mặc dù quá trình này có vẻ làm cho thời gian truy cập bộ nhớ tăng lên nhưng nếu xét về tổng thể, việc sử
dụng Cache đã làm giảm thời gian hoạt động của hệ thống rất nhiều.
Hệ thống bộ nhớ hiện đại có thể có vài mức Cache, đó là Cache Level 1 (L1), Level 2 (L2) và có thể có cả Level 3 (L3). Trong hầu hết các trường hợp, bộ nhớ
L1 được tích hợp luôn vào CPU. Bộ nhớ Intel Pentium và IBM-Motorola PowerPC G3 đều có bộ nhớ L1 dung lượng 32Kbyte tích hợp sẵn trên chip CPU.
Bộ nhớ Cache có tốc độ truy xuất nhanh hơn bộ nhớ chính bởi một số nguyên nhân sau.
• Bộ nhớ Cache sử dụng các linh kiện điện tử có chất lượng cao, có khả
năng hoạt động với tốc độ nhanh. Tất nhiên đi kèm với đặc tính này là giá thành của sản phẩm cũng như năng lượng tiêu tốn cho nó cũng tăng lên. Tuy nhiên, dung lượng của bộ nhớ Cache thường rất nhỏ nên cũng không
ảnh hưởng lớn đến giá thành của sản phẩm
• Bộ nhớ Cache có dung lượng nhỏ nên bộ giải cũng đơn giản hơn, do đó giảm bớt thời gian truy cập
• Bộ nhớ Cache kết nối trực tiếp với CPU nên không phải giải quyết vấn đề
tranh chấp bus
Hình 7.12 dưới đây chỉ rõ thêm về ý nghĩa của bộ nhớ Cache trong việc tăng tốc
Hình 7.12. Hệ thống máy tính không có Cache và có Cache
của bộ nhớ Cache. Hệ thống này có tốc độ hoạt động là 400MHz, nhưng truyền thông ở 66MHz và truy cập bộ nhớở tốc độ 10MHz. Một số chu kỳ bus được sử
dụng đểđồng bộ hoạt động của CPU và bus, do đó sự khác biệt giữa tốc độ của bộ nhớ và CPU có thể lên tới 10 lần hoặc hơn. Với hệ thống bên phải, bộ nhớ
Cache được tích hợp vào CPU, do đó CPU có thể truy cập vào nó trực tiếp với tốc độ 400MHz.