Chủ Nhật, 25 tháng 9, 2011

Tác dụng của bộ nhớ cache

Về cơ bản, sự thiếu hụt bộ nhớ đệm L3 trên nền máy tính phổ thông không phải là điều gì ghê gớm lắm, bạn thậm chí không thể nhận ra sự khác biệt nếu sử dụng các ứng dụng thông thường như game, lướt web, xem HD, v.v… <-vậy sử dụng ứng dụng gì mới cần L3 cache ? <- render 3D ?
L3 thì cũng như L1, L2 thôi, nhưng chậm hơn. trong máy tính cache L1 là tốc độ nhanh nhất, rồi tới L2, L3, RAM.Tốc độ càng nhanh thì giá càng mắc nên dung lượng càng nhỏ. Cache càng lớn thì phần mềm chạy càng nhanh, tuy nhiên chỉ có thể thấy dc sự khác biệt đối với các ứng dụng nặng như render...
ảo hóa, cũng như cái tên của nó thôi, giúp hỗ trợ tăng tốc máy ảo. Cache lớn thì dữ liệu chứa đc nhiều nên giúp tăng tốc máy ảo chút, nhưng quan trọng là dung lượng và tốc độ cache chứ ko phải L2 hay L3
- CPU có cache L3 thì sẽ được lợi gì, có nhanh hơn nhiều không mà giá mắc hơn gấp đôi vậy ? Chace trong CPU là gì vậy, có quan trong không ? Nếu lựa CPU ngoài việc lựa tốc độ càng nhanh thì người ta có cần căn cứ vào chace không nhỉ ?
- Xếp theo thứ tự tốc độ giảm dần trong máy vi tính thì : Các thanh ghi trong CPU > Cache > RAM > HDD > ODD (ổng quang, CD, DVD...).
Mục đính của Cache là vì các thanh ghi đọc ghi cực nhanh so với tốc độ của RAM và HDD, nên cần phải có một bộ nhớ trung gian xử lý bớt dữ liệu rồi mới giao tiếp ra ngoài với RAM. Tốc độ đọc ghi càng nhanh giá của bộ nhớ càng mắc, bằng chứng là đến giờ cách thanh ghi trong CPU chỉ vài trăm kb, bộ nhớ đệm chỉ vài Mb, nhưng RAM thì đã vài Gb rồi, còn ổ HDD đã lên đến Terabyte.
- Cache tốc độ cao, độ trễ thấp, và dùng để chứa những kết quả của các phép toán trung gian trong quá trình tính toán của CPU(ví dụ như tính toán vòng lặp), cache nhiều thì cpu chạy càng nhanh !
game hiện giờ vẫn chưa được đa luồng (cần nhiều core) do đó cũng chưa cần cache nhiều! (?)
Tốc độ truy xuất của cache L1 tương đương với tốc độ của CPU nhưng dung lượng khá nhỏ với hai thành phần chính là Data cache và Code cache (trong một số CPU được gọi là Instruction cache hay Trace cache) để lưu trữ dữ liệu và mã lệnh.
- Chức năng chính của cache L2 là dựa vào các lệnh mà CPU sắp thi hành để lấy dữ liệu cần thiết từ RAM, CPU sẽ dùng dữ liệu ở cache L2 để tăng tốc độ xử lý.
khi bạn copy dử liệu từ USb hoặc CD/DVD vào ổ cứng, trước khi vào ổ cứng, nó được nằm trong Cache, sau đó nó mới được đưa vào ổ cứng. Khi bạn mở 1 bài nhạc hoặc chạy 1 file nào đó nằm trên ổ cứng thì bài nhạc và cái file đó được copy từ ổ cứng lên RAM rồi từ RAM nó mới được đưa lên Cache của CPU rồi mới vào CPU chứ không đi thẳng được từ ổ cứng lên CPU. Nếu cache càng lớn thì càng có lợi hơn cho tốc độ của cpu, ổ cứng,... vì nếu cache nhỏ quá, dử liệu sẽ bị trì trễ vì phải đợi. nó giống như cái cửa vậy, bạn muốn vào nhà bạn fải qua cửa, nếu của quá hẹp thì ngừoi ta sẽ bị kẹt nhiều ở cửa
CPU muốn đọc hay ghi một vị trí trên Ram thì trước hết nó sẽ tìm trong L1 cache xem có sẵn dữ liệu đó không nếu không nó sẽ tìm trong các bộ nhớ cache còn lại .Cache giúp giảm tình trạng thắt nút cổ chai giữa RAM và CPU
CPU Intel đời 80486 có bộ nhớ cache 8 KB, trong khi lên đời Pentium là 16 KB
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
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) <- con CPU P6200 riêng L3 cache đã là 3MB

Tìm hiểu về bộ nhớ cache

 MẤY CHỮ NÀY NGHĨA LÀ GÌ VẬY?
Bộ nhớ đệm Cache
Thời L2 Cache còn phải nằm trên mainboard
Thời L2 Cache còn phải nằm trên mainboard
 
Khi nghe giới thiệu về CPU, bạn ắt biết tới các thuật ngữ L1 Cache, L2 Cache, L3 Cache.
         Cache (đọc là kets, hay còn gọi là cạc) là tên gọi của bộ 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ý (có sẵn xài liền không cần tốn thời gian đi lùng sục tìm kéo về).
         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.
 CPU Slot 1 dạng cartridge với L2 Cache nằm cạnh nhân CPU.
CPU Slot 1 dạng cartridge với L2 Cache nằm cạnh nhân CPU.
         * 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.
CPU Socket 370 với L2 Cache nằm ngay trên nhân CPU.
CPU Socket 370 với L2 Cache nằm ngay trên nhân CPU.
 
         Như đã nói, dung lượng của Cache CPU lợi hại lắm nghen. 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).
 PHẠM HỒNG PHƯỚC
(TPHCM 22-8-2004)
 nguồn: http://www.phphuoc.com