Gian hàng bánRao vặtTư vấnHỗ trợThêm
  Bí quyết bán hàng Online  Thông báo  Đăng ký  Đăng nhập

Bộ nhớ Cache làm việc như thế nào ?

jdhgjfg13/06/2009 - 13:19

Lượt xem 495

Xin chào!
Hãy đăng nhập để tham gia cộng đồng Hỏi đáp hiệu quả hơn!
  • Cũ nhất
  • Mới nhất
  • Có ích nhất

thuy linh

13/06/2009 - 13:21
Bộ nhớ Cache là bộ nhớ tốc độ cao có sẵn trong CPU với mục đích tăng tốc độ truy cập dữ liệu và những lệnh lưu trữ trong bộ nhớ RAM . Trong bài này chúng tôi giải thích nó làm việc như thế nào một cách dễ hiểu nhất .

Máy tính hoàn toàn là đồ vứt đi nếu bạn không nói cho bộ vi xử lí ( CPU ) biết phải làm cái gì . Điều đó được thực hiện thông quan chương trình , trong đó có chữa danh sách những lệnh nói cho CPU biết phải làm những gì .

CPU lấy những chương trình từ bộ nhớ RAM . Vấn đề với bộ...
Bộ nhớ Cache là bộ nhớ tốc độ cao có sẵn trong CPU với mục đích tăng tốc độ truy cập dữ liệu và những lệnh lưu trữ trong bộ nhớ RAM . Trong bài này chúng tôi giải thích nó làm việc như thế nào một cách dễ hiểu nhất .

Máy tính hoàn toàn là đồ vứt đi nếu bạn không nói cho bộ vi xử lí ( CPU ) biết phải làm cái gì . Điều đó được thực hiện thông quan chương trình , trong đó có chữa danh sách những lệnh nói cho CPU biết phải làm những gì .

CPU lấy những chương trình từ bộ nhớ RAM . Vấn đề với bộ nhớ RAM khi mà nguồn điện bị mất thì nội dung chứa bên trong nó bị mất – bộ nhớ RAM loại này hay cồn gọi là “Volatile” . Như vậy những chương trình và dữ liệu phải được lưu trữ trong những bộ nhớ kiểu Non-Volatile ( có nghĩa là nội dung chứa trong đó không bị mất khi bạn tắt nguồn điện ) như là ổ đĩa cứng , đĩa quang ( CDROM , DVD ROM ... ) .

Khi bạn bấm đúp vào một Icon trong Windows để chạy chương trình , thông thường chương trình được lưu trữ trên ổ cứng của máy tính , nó sẽ được tải vào bộ nhớ RAM , và sau đó từ bộ nhớ RAM CPU tải chương trình qua mạch gọi là Bộ phận điều khiển bộ nhớ , mà nằm bên trong Chipset ( NorthBride ) với những bộ vi xử lí Intel hoặc bên trong CPU với những bộ vi xử lí của AMD .

http://tuvantinhoc1088.com/my_documents/my_pictures/Giainghia/CacheMemory/hinh1.jpg

Hình 1 : Dữ liệu lưu trữ được truyền tới CPU như thế nào

CPU không thể lấy dữ liệu trực tiếp từ những ổ đĩa cứng bởi vì chúng quá chậm , thậm trí ngay cả đối với những ổ cứng nhanh nhất hiện nay . Ngay bầy giờ cung cấp cho các bạn về khái niệm này như ổ đĩa cứng SATA 300 – kiểu ổ đĩa thông thường nhanh nhất hiện nay có khả năng truyền tốc độ dữ liệu là 300MB/s . Với một CPU chạy với tốc độ xung nhịp bên trong là 2GHz ví dụ với độ rộng đường dữ liệu bên trong là 64-bit thì tốc độ truyền dữ liệu bên trong là 16GB/s – gấp hơn 50 lần .

Sự khác nhau về tốc độ chính là ở chỗ ổ đĩa cứng thông dụng hiện nay là những hệ thống thống cơ khí , chậm hơn rất nhiều so với những hệ thống điện tử .

Và có vấn đề nữa xảy ra chính là bộ nhớ RAM nhanh nhất hiện nay không nhanh bằng tốc độ xử lí của CPU . Nếu có bộ nhớ DDR2-800 , có tốc độ truyền dữ liệu 6400MB/s tới 128000 MB/s nếu dùng với cấu hình Dual-Channel . Thậm trí mặc dù số này cũng gần bằng với tốc độ 16GB/s như ví dụ đã đề cập trước đó thì những CPU hiện nay có khả năng lấy trước dữ liệu từ bộ nhớ Cache L2 có độ rộng 128 hoặc 256-bit thì lúc đó chúng ta có tốc độ 32GB/s hoặc 64GB/s với CPU làm việc với tốc độ bên trong là 2GHz . Chúng tôi sẽ nói tới bộ nhớ Cache L2 sau này , nhưng nói tóm lại đó là những ví dụ để cho thấy bộ nhớ RAM có tốc độ chậm hơn CPU .

Tốc độ truyền dữ liệu được tính theo công thức

Tốc độ truyền = Độ rộng Bus nhớ x Tốc độ xung nhịp x Số dữ liệu truyền trong một chu kì xung nhịp / 8

Một vấn đề tiếp theo không chỉ liên quan tới tốc độ truyền dữ liệu mà chính là thời gian trễ . Thời gian trễ ( hay còn gọi là thời gian truy cập – Latency ) là thời gian bao lâu mà bộ nhớ trì hoãn cung cấp dữ liệu lại với những yêu cầu của CPU – điều đó có nghĩa là không phải xảy ra ngay lập tức . Khi CPU yêu cầu lệnh hoặc dữ liệu mà lưu trữ tại một địa chỉ xác định , thì bộ nhớ sẽ trì hoãn một thời gian nào đó để cung cấp quay trở lại lệnh hoặc dữ liệu . Với bộ nhớ hiện thời , nếu trên nhãn có ghi là CL ( CAS Latency ) là 5 , thì có nghĩa là bộ nhớ sẽ cấp phát dữ liệu yêu cầu sau 5 chu kì xung nhịp của bộ nhớ - điều này có nghĩa là CPU sẽ phải chờ .

Việc chờ đợi sẽ làm giảm hiệu suất hoạt động của CPU . Nếu CPU phải chờ 5 chu kì xung nhịp của bộ nhớ để nhận lệnh hoặc dữ liệu nó yêu cầu thì hiệu suất làm việc của nó chỉ bằng 1/5 hiệu suất làm việc với bộ nhớ mà cung cấp dữ liệu yêu cầu ngay lập tức . Nói một cách khác , khi truy cập bộ nhớ DDR2-800 với CL5 thì hiệu suất làm việc của CPU nhận được bằng với tốc độ 160MHz ( 800 MHz / 5 ) . Trên thực tế hiệu suất làm việc không giảm nhiều đến như vậy bởi vì bộ nhớ có kiểu làm việc gọi là “Burst Mode” . Với kiểu “Burst Mode” thì dữ liệu thứ hai trong luồng dữ liệu được cấp phát ngay lập tức nếu nó được lưu trữ theo địa chỉ kề nhau ( thông thường những lệnh của chương trình được lưu trữ theo những địa chỉ liên tiếp .

Ví dụ với bộ nhớ có ghi 5-1-1-1 thì có nghĩa là dữ liệu đầu tiên được cấp phát sau 5 chu kì xung nhịp của bộ nhớ và từ dữ liệu thứ hai trong luồng dữ liệu sẽ được cấp phát chỉ với 1 chu kì xung nhịp – nếu nó lưu trữ theo địa chỉ liền kề .

RAM động và RAM tĩnh

Có hai kiểu RAM cho bộ nhớ hiện nay : động ( Dynamic RAM – DRAM ) và tĩnh ( Static RAM – SRAM ) . Bộ nhớ RAM dùng cắm trên Motherboard hiện nay là RAM động . Kiểu bộ nhớ này mỗi Bit dữ liệu được lưu trữ trong Chip nhớ trong tụ điện nhỏ . Những tụ điện này là những linh kiện rất nhỏ , nghĩa là hàng triệu tụ điện trên một vùng có diện tích nhỏ - gọi là mật độ cao . Những tụ điện này sẽ mất điện tích trong một thời gian nào đó , có nghĩa là dữ liệu lưu trong đó bị mất , vì thế bộ nhớ động cần một quá trình nạp lại điện gọi là Refresh , mà thường xảy ra liên tục theo mỗi chu kì nhất định . Trong thời gian Refresh dữ liệu không có thể Đọc hoặc Ghi được . Bộ nhớ động rẻ hơn bộ nhớ tĩnh và mức độ tiêu thụ năng lượng ít hơn . Nhưng như chúng ta đã nói , dữ liệu bộ nhớ RAM động không sẵn sàng ngay lập tứ và nó làm việc chậm hơn so với CPU .

Bộ nhớ tĩnh ( SRAM ) có thể làm việc với tốc độ nhanh bằng tốc độ của CPU , bởi vì mỗi Bit dữ liệu được lưu trữ trong một mạch lật ( Flip-Flop ) , mà nó có thể cấp phát dữ liệu với thời gian trễ bằng 0 hoặc rất nhỏ , bởi vì mạch lật không yêu cầu chu kì Refresh . Nhưng có một vấn đề xảy ra đó là để sản xuất ra một mạch lật lại phải dùng tới vài Transistor , điều đó cũng đồng nghĩa với nó có kích thước lớn hơn so với DRAM . Như vậy SRAM sẽ có mật độ thấp . Vì thế có hai vấn đề xảy ra với SRAM đó là vô cùng đắt và tiêu thụ nhiều năng lượng – như vậy chạy sẽ nóng hơn .

Mặc dù SRAM nhanh hơn DRAM , nhưng những bất lợi của nó không cho phép dùng làm bộ nhớ chính trên Motherboard .

Giải pháp tìm ra để giảm ảnh hưởng của bộ nhớ RAM chậm hơn CPU đó là dùng số lượng SRAM nhỏ giữa CPU và bộ nhớ RAM . Kỹ thuật này gọi là bộ nhớ Cache và hiện nay một số lượng bộ nhớ SRAM nhỏ nằm bên trong bộ vi xử lí .

Bộ nhớ Cache sẽ copy hầu hết dữ liệu truy cập từ RAM tới bộ nhớ SRAM và cố gắng dự đoán trước những dữ liệu nào mà CPU sẽ cần đến tiếp theo để tải chúng tới SRAM trước khi CPU yêu cầu cần đến nó . Với mục đích để làm cho CPU truy cập tới bộ nhớ Cache thay thế cho việc truy cập trực tiếp tới bộ nhớ RAM , khi đó nó có thể tìm lại được dữ liệu từ bộ nhớ Cache ngay lập tức hoặc gần ngay lập tức . CPU truy cập vào bộ nhớ Cache càng nhiều thay vì truy cập tới RAM chính thì hệ thống sẽ càng nhanh . Chúng tôi sẽ giải thích chính xác bộ nhớ Cache làm việc như thế nào ở mục sau
Nguồn: www.tuvantinhoc1088.com
Đọc thêm

Vui lòng đăng nhập ID VATGIA để gửi trả lời của bạn