Giúp tìm hiểu về cache L1, L2, bộ nhớ RAM, ROM?

Em muốn tìm hiểu về cache L1, L2, bộ nhớ RAM, ROM. cho em xin tài liệu chi tiết nha.
thuy linh
thuy linh
Trả lời 14 năm trước
Thuật ngữ L1 cache, L2 cache là tên gọi của vùng nhớ đệm – nơi lưu trữ các dữ liệu nằm chờ các ứng dụng hay phần cứng xử lý. Mục đích của nó là để tăng tốc độ xử lý, nó giống như một trạm trung chuyển hay cảng tập kết hàng hoá. Nói một cách bài bản, cache là một cơ chế lưu trữ tốc độ cao đặc biệt. Nó có thể là một vùng lưu trữ của bộ nhớ chính hay một thiết bị lưu trữ tốc độ cao độc lập.Có hai dạng lưu trữ cache được dùng phổ biến trong máy tính cá nhân là memory caching (bộ nhớ cache hay bộ nhớ truy xuất nhanh) và disk caching (bộ nhớ đệm đĩa). * Memory cache: Đây là một khu vực bộ nhớ được tạo bằng bộ nhớ tĩnh (SRAM) có tốc độ cao nhưng đắt tiền thay vì bộ nhớ động (DRAM) có tốc độ thấp hơn và rẻ hơn, được dùng cho bộ nhớ chính. Cơ chế lưu trữ bộ nhớ cahce này rất có hiệu quả. Bởi lẽ, hầu hết các chương trình thực tế truy xuất lặp đi lặp lại cùng một dữ liệu hay các lệnh y chang nhau. Nhờ lưu trữ các thông tin này trong SRAM, máy tính sẽ khỏi phải truy xuất vào DRAM vốn chậm chạp hơn.Một số bộ nhớ cache được tích hợp vào trong kiến trúc của các bộ vi xử lý. Chẳng hạn, CPU Intel đời 80486 có bộ nhớ cache 8 KB, trong khi lên đời Pentium là 16 KB. Các bộ nhớ cache nội (internal cache) như thế gọi là Level 1 (L1) Cache (bộ nhớ đệm cấp 1). Các máy tính hiện đại hơn thì có thêm bộ nhớ cache ngoại (external cache) gọi là Level 2 (L2) Cache (bộ nhớ đệm cấp 2). Các cache này nằm giữa CPU và bộ nhớ hệ thống DRAM. Sau này, do nhu cầu xử lý nặng hơn và với tốc độ nhanh hơn, các máy chủ (server), máy trạm (workstation) và mới đây là CPU Pentium 4 Extreme Edition được tăng cường thêm bộ nhớ đệm L3 Cache. * Disk cache: Bộ nhớ đệm đĩa cũng hoạt động cùng nguyên tắc với bộ nhớ cache, nhưng thay vì dùng SRAM tốc độ cao, nó lại sử dụng ngay bộ nhớ chính. Các dữ liệu được truy xuất gần đây nhất từ đĩa cứng sẽ được lưu trữ trong một buffer (phần đệm) của bộ nhớ. Khi chương trình nào cần truy xuất dữ liệu từ ổ đĩa, nó sẽ kiểm tra trước tiên trong bộ nhớ đệm đĩa xem dữ liệu mình cần đang có sẵn không. Cơ chế bộ nhớ đệm đĩa này có công dụng cải thiện một cách đáng ngạc nhiên sức mạnh và tốc độ của hệ thống. Bởi lẽ, việc truy xuất 1 byte dữ liệu trong bộ nhớ RAM có thể nhanh hơn hàng ngàn lần nếu truy xuất từ một ổ đĩa cứng. Sẵn đây, xin nói thêm, người ta dùng thuật ngữ cache hit để chỉ việc dữ liệu được tìm thấy trong cache. Và hiệu năng của một cache được tính bằng hit rate (tốc độ tìm thấy dữ liệu trong cache). Trở lại chuyện bộ nhớ cache. Hồi thời Pentium đổ về trước, bộ nhớ cache nằm trên mainboard và một số mainboard có chừa sẵn socket để người dùng có thể gắn thêm cache khi có nhu cầu. Tới thế hệ Pentium II, Intel phát triển được công nghệ đưa bộ nhớ cache vào khối CPU. Nhờ nằm chung như vậy, tốc độ truy xuất cache tăng lên rõ rệt so với khi nó nằm trên mainboard. Nhưng do L2 Cache vẫn phải ở ngoài nhân CPU nên Intel phải chế ra một bo mạch gắn cả nhân CPU lẫn L2 Cache. Và thế là CPU có hình dạng to đùng như một cái hộp (gọi là cartridge) và được gắn vào mainboard qua giao diện slot (khe cắm), Slot 1. Tốc độ truy xuất cache lúc đó chỉ bằng phân nửa tốc độ CPU. Thí dụ, CPU 266 MHz chỉ có tốc độ L2 Cache là 133 MHz. Sang Pentium III cũng vậy. Mãi cho tới thế hệ Pentium III Coppermine (công nghệ 0.18-micron), Intel mới thành công trong việc tích hợp ngay L2 Cache vào nhân chip (gọi là on-die cache). Lúc đó, tốc độ L2 Cache bằng với tốc độ CPU và con CPU được thu gọn lại, đóng gói với giao diện Socket 370. Như đã nói, dung lượng của Cache CPU rất quan trọng. Phổ biến nhất là L2 Cache là một chip nhớ nằm giữa L1 Cache ngay trên nhân CPU và bộ nhớ hệ thống. Khi CPU xử lý, L1 Cache sẽ tiến hành kiểm tra L2 Cache xem có dữ liệu mình cần không trước khi truy cập vào bộ nhớ hệ thống. Vì thế, bộ nhớ đệm càng lớn, CPU càng xử lý nhanh hơn. Đó là lý do mà Intel bên cạnh việc tăng xung nhịp cho nhân chíp, còn chú ý tới việc tăng dung lượng bộ nhớ Cache. Do giá rất đắt, nên dung lượng Cache không thể tăng ồ ạt được. Bộ nhớ cache chính L1 Cache vẫn chỉ ở mức từ 8 tới 32 KB. Trong khi, L2 Cache thì được đẩy lên dần tới hiện nay cao nhất là Pentium M Dothan 2 MB (cho máy tính xách tay) và Pentium 4 Prescott 1 MB (máy để bàn). Riêng dòng CPU dành cho dân chơi game và dân multimedia “prồ” là Pentium 4 Extreme Edition còn được bổ sung L3 Cache với dung lượng 2 MB. Đây cũng là CPU để bàn có tổng bộ nhớ cache lớn nhất (L1: 8 KB, L2: 512 KB, L3: 2 MB). Em cố gắng tìm hiểu thêm nhé.