Các kiểu bộ nhớ
Phân cấp bộ nhớ

Một trong những điều quan trọng được quan tâm nhất trong sự hiểu biết khả năng hiệu suất của bộ nhớ hiện đại là bộ nhớ phân cấp. Không phải tất cả các bộ nhớ đều được tạo ra ngang nhau, một số kém hiệu quả hơn và rẻ hơn. Để giải quyết sự chênh lệch này, máy tính ngày nay kết hợp các kiểu bộ nhớ để cung cấp hiệu suất cao nhất với giá thành ít nhất. Cách tiếp cận này được gọi là bộ nhớ phân cấp. Bộ nhớ càng nhanh thì càng đắt. Bằng việc sử dụng bộ nhớ chia sẻ, với mỗi tốc độ truy cập và dung lượng khác nhau, 1 hệ thống máy tính có thể nâng cao hiệu suất trên cả khả năng có thể của chúng khi không kết hợp các loại khác nhau lại. Hệ thống bộ nhớ phân cấp bao gồm các thanh ghi, cache, bộ nhớ chính và bộ nhớ phụ.
Máy tính ngày nay có bộ nhớ nhỏ tốc độ cao gọi là cache, nơi mà dữ liệu được lưu trữ thường xuyên. Cache kết nối tới bộ nhớ lớn hơn - bộ nhớ chính, bộ nhớ có tốc độ tầm trung. Bộ nhớ này được bổ sung bới 1 bộ nhớ phụ, kết hợp với hard disk và các phương tiện có thể tháo dời khác nhau (various removable media). Bằng việc sử dụng hệ thống phân cấp, 1 bộ nhớ có thể nâng cao tốc độ truy cập, chỉ sử dụng một số nhỏ chip tốc độ nhanh. Nó cho phép người thiết kế tạo ra máy tính hiệu suất chấp nhận được với giá thành hợp lý.
Chúng ta phân loại bộ nhớ dựa trên "khoảng cách" từ nó tới bộ xử lý, với khoảng cách được định nghĩa bằng số vòng máy đòi hỏi để truy cập. Bộ nhớ càng gần bộ xử lý thì càng nhanh. Và ngược lại. Công nghệ chậm sẽ sử dụng bộ nhớ ở xa còn công nghệ nhanh sẽ sử dụng bộ nhớ gần bộ vi xử lý. Công nghệ càng tốt, bộ nhớ càng nhanh và càng đắt tiền. Bộ nhớ nhanh hơn thì sẽ nhỏ hơn bộ nhớ chậm và giá thành càng cao.
Dưới đây là những thuật ngữ được sử dụng khi miêu tả bộ nhớ phân cấp:
Hit – Dữ liệu yêu cầu ở 1 cấp độ bộ nhớ (thông thường, chúng ta quan tâm đến tỉ lệ hit chỉ cho bộ nhớ cấp cao hơn).
Miss – Dữ liệu yêu cầu không tìm thấy trong cấp độ bộ nhớ.
Hit rate – Tỉ lệ phần trăm truy cập bộ nhớ được tìm thấy trong 1 cấp độ bộ nhớ.
Miss rate – Tỉ lệ phần trăm truy cập bộ nhớ không được tìm thấy trong 1 cấp độ bộ nhớ. Note: Miss Rate = 1 – Hit Rate
Hit time – Số lần yêu cầu để truy cập thông tin yêu cầu trong 1 cấp độ bộ nhớ.
Miss penalty – Thời gian cần thiết để xử lý 1 miss, bao gồm thay thế 1 khối trong 1 cấp độ trên của bộ nhớ, cộng với thời gian đưa dữ liệu yêu cầu tới bộ xử lý. (Thời gian để xử lý 1 miss lớn hơn time xử lý 1 hit).
Đối với dữ liệu bất kì, bộ xử lý sẽ gửi yêu cầu của nó tới phần bộ nhớ nhanh nhất, nhỏ nhất (cache, bởi vì register dành cho mục đích đặc biệt hơn). Nếu dữ liệu được tìm thấy trong cache, nó sẽ nhanh chóng được đưa vào CPU. Nếu nó không ở trong cache, yêu cầu sẽ được gửi tới bộ nhớ thấp hơn trong hệ thống và quá trình tìm kiếm lại bắt đầu. Nếu dữ liệu được tìm thấy ở cấp độ này, một khối dữ liệu ở đó sẽ được đưa vào cache, và cứ thể tiếp tục. Ý tưởng chính ở đây là khi cấp độ thấp hơn của hệ thống phân cấp trả lời yêu cầu từ cấp độ cao hơn cho nội dung ở vị trí X, chúng cũng gửi đi cùng 1 thời điểm, dữ liệu được đặt ở địa chỉ X + 1, X + 2... Cứ như vậy, trả lại toàn bộ khối dữ liệu tới cấp độ bộ nhớ cao hơn. Hi vọng rằng dữ liệu thêm này sẽ được tham chiếu tới trong tương lai gần. Bộ nhớ chia sẻ thiết thực bởi vì các chương trình có xu hướng sở hữu 1 vùng biết đến cục bộ (locality), cái mà thường xuyên cho phép bộ xử lý truy cập tới dữ liệu được trả lại cho địa chỉ X+1, X+2... Vì vậy, mặc dù đó là 1 miss, vẫn có thể có một số hit trong bộ nhớ trên khối mới được truy xuất.