Trang chủ » Tư vấn »Bảo Trì Máy Tính - Mạng LAN» Bộ nhớ đệm

Ngày tạo: 23/04/2015

Bộ nhớ đệm



Khi tốc độ nhân bộ xử lý gia tăng, tốc độ bộ nhớ không thể tăng theo. Làm cách nào vận hành bộ xử lý nhanh hơn bộ nhớ mà bạn có thể tăng thêm lại không có sự cam chịu tốc độ tệ hại? Câu trả lời chính là bộ nhớ đệm (cache memory). Trong thuật ngữ đơn giản nhất, bộ nhớ đệm là tấm đệm (buffer) nhớ tốc độ cao chứa tạm thời các dữ liệu mà bộ xử lý cần, cho phép bộ xử lý gọi ra các dữ liệu nhanh hơn ở bộ nhớ chính. Nhưng có một tính năng thêm vào của một bộ nhớ đệm (cache) hơn tấng đệm thông thường (bufer), đó là sự thông minh. Một bộ nhớ đệm (cache) là tầng đệm (buffer) với bộ não.

- dịch vụ bảo trì máy tính
- bao tri may tinh hcm


Tầng đệm (buffe) chứa dữ liệu ngẫu nhiên, thường là trên cơ sở bước đầu vào, bước đầu ra hay bước đầu vào, bước sau ra. Mặt khác, bộ nhớ đệm (cache) chứa dữ liệu cần thiết của bộ xử lý trước khi bộ xử lý thực sự cần, điều này giúp bộ xử lý làm việc liên tục tại tốc độ đủ hay gần với tốc độ đủ mà không phải chờ dữ liệu được gọi ra từ bộ nhớ chính chậm hơn. Bộ nhớ đệm thường được tạo bởi bộ nhớ RAM tĩnh (SRAM) tích hợp thẳng vào khuôn bộ xử lý, dẫu cho các hệ thống cũ hơn với bộ nhớ đệm cũng dùng những con chip được lắp đặt trên bo mạch chủ.


Đối với số rộng lớn của hệ thống máy để bàn, có hai mức độ của bộ xử lý/bộ nhớ đệm được dùng trong PC hiện đại: cấp 1 (L1 và cấp 2 (L2). Một số bộ xử lý cũng có bộ nhớ đệm cấp 3 (L3); tuy nhiên, cũng hiếm. Những bộ nhớ đệm này và cách chúng thực hiện chức năng được mô tả trong những phần sau.

Bộ nhớ đệm cấp 1 nội bộ

Các bộ xử lý từ dòng 486 đều được tích hợp bộ nhớ đệm cấp 1 vào bộ điều khiển. Kích cỡ bộ nhớ đệm cấp 1 tùy thuộc vào từng bộ xử lý, 8KB cho dòng đầu 486DX, rồi đến 32KB, 64KB và còn tăng hơn cho những bộ xử lý mới nhất.

Để thấy rõ tầm quan trọng của bộ nhớ đệm, ta cần hiểu tốc độ tương quan của bộ xử lý và bộ nhớ. Vấn đề ở đây là tốc độ bộ xử lý thường thể hiện bằng MHz hay GHz (hàng triệu hoặc hàng tỷ chu kỳ trong một giây) trong khi tốc độ bộ nhớ là nano giây (hàng tỷ của một giây trong một chu kỳ). Phần lớn các bộ nhớ sau này diễn đạt tốc độ bằng MHz hay megabyte cho mỗi băng thông giây (MBps) (thông lượng).

Cả hai là sự đo lường được dựa trên thời gian thực sự (really time) hay tần suất (frequency) và một biểu đồ dùng so sánh chúng trong bảng 6.3 trong Chương 6, “bộ nhớ”. Trong bảng này, bạn sẽ nhận ra rằng bộ xử lý 233 MHz ví ngang với 4.3-nano giây quay vòng theo chu kỳ, nghĩa là bạn cần bộ nhớ 4ns để sánh kịp CPU 200MHz. Cũng nhận xét rằng bo mạch của hệ thống 233MHz tiêu biểu chạy ở 66MHz, tương ứng với tốc độ 15ns cho mỗi chu kỳ và đòi hỏi bộ nhớ 15ns để sánh kịp. Cuối cùng, nhận xét rằng bộ nhớ chính 60ns (phổ biến trên nhiều hệ thống lớp Pentium) ngang với tốc độ đồng hồ xấp xỉ 16MHz. Vì vậy, một hệ thống Pentium 233 tiêu biểu có bộ xử lý chạy ở 233MHz (4.3ns mỗi chu kỳ). Điều này có thể dường như giống một ví dụ khác cũ kỹ, nhưng trong chốc lát, bạn sẽ thấy các số liệu được liệt kê ở đây giúp tôi dễ dàng giải thích cách bộ nhớ đệm hoạt động như thế nào.

Do bộ nhớ đệm cấp 1 được tích hợp trên khuôn bộ xử lý nên nó sẽ chạy ở tốc độ nhân (full –core speed). Bằng tốc độ nhân, có nghĩa là bộ đệm này chạy ở tốc độ bộ xử lý nội bộ được tăng gấp bội hơn là tốc độ bo mạch ngoài. Một cách cơ bản bộ nhớ đệm là một vùng bộ nhớ nhanh chứa những tập mã và dũ liệu cần thiết hiện hành. Bộ nhớ đệm được truy cập không có những tình trang chờ bởi vì nó chạy cùng tốc độ với nhân bộ xử lý.

Dùng bộ nhớ đệm giảm được tình trạng nghẽn cổ chai bởi vì RAM hệ thống hầu như luôn luôn chậm hơn CPU rất nhiều; Sự khác biệt tốc độ giữa bộ nhớ và CPU trở nên rộng lớn trong một số hệ thống gần đây. Dùng bộ nhớ đệm ngăn ngừa bộ xử lý từ việc phải chờ mã và dữ liệu từ bộ nhớ chính chậm hơn, do vậy cải thiện được tốc độ. Không có bộ đệm L1, một bộ xử lý thường xuyên bị buộc phải chờ đến khi bộ nhớ hệ thống đáp ứng.

Bộ nhớ đệm thậm chí khá quan trọng trong bộ xử lý hiện đại bỏi vì nó thường là bộ nhớ duy nhất trong toàn bộ hệ thống có thể thực sử theo kịp con chip. Phần lớn các bộ xử lý hiện đại có xung nhịp tỉ lệ với tốc độ bo mạch mà chúng được cắm vào. Các loại bộ nhớ duy nhất phù hợp với tốc độ đủ của bộ xử lý là bộ nhớ đệm L1, L2 và có thể L3 được dựng sẵn vào nhân bộ xử lý.

Nếu dữ liệu mà bộ xử lý muốn sẵn sàng trong bộ đệm nội bộ thì CPU không phải chờ đợi. Nếu dữ liệu trong có trong bộ nhớ đệm, CPU phải lấy nó từ bộ nhớ đệm cấp 2 hay (trong những thiết kế hệ thống ít tinh vi ) từ bus hệ thống, nghãi là trực tiếp từ bộ nhờ chính.


Bộ nhớ đệm hoạt động như thế nào?

Để nghiên cứu cách bộ nhớ đệm L1 hoạt động như thế nào, hãy xem xét sự tương đồng dưới đây.

Câu chuyện này liên quan đến một người (trong trường hợp này, là ban) ăn thực phẩm để đóng vai như bộ xử lý yêu câu và vận hành dữ liệu từ bộ nhớ. Nhà bếp nơi thực phẩm được chuẩn bị là bộ nhớ hệ thống chính (điển hình DDR, DDR2 hay DDR3 DIMM). Người hầu bàn là bộ quản lý bộ nhớ đệm và bộ nhớ đẹm L1 là cái bàn mà người ăn được ngồi.

Phải nói rằng bạn bắt đầu ăn tại một nhà hàng đặc biệt mỗi ngày vào cùng một thời gian. Bạn vào, ngồi xuống, đặt món hot dog. Để làm câu chuyên cân xứng chính xác, bạn thường ăn với tốc độ một miếng (byte?) trong vòng 4 giây (233MHz – khoảng 4ms quay theo chu kỳ). Mất 60 giây cho nhà bếp chuẩn bị món ăn mà bạn đặt (bộ nhớ chính 60ns).

Vì vậy khi tới lần đầu, bạn ngồi xuống, đặt món hot dog và phải chờ 60 giây cho thức ăn được chế biến trước khi bạn có thể ăn. Sau khi người hầu bàn mang thức ăn ra bạn ăn với tốc độ bình thường. Rất nhanh bạn kết thực món hot dog, bạn gọi người hầu bàn tới và đặt món hamburger. Và lại mất 60 giây để chờ món hamburger, bạn đặt đĩa khoai tây chiên. Cuối cùng bạn chờ đợi, sau đó 60 giây thức ăn được mang ra, bạn ăn nó với tốc độ đủ. Cuối cùng bạn quyết định kết thúc bữa ăn và đặt bánh phô mai cho tráng miệng. Sau 60 giây chờ đợi khác, bạn cũng ăn với tốc độ như vậy. Tóm lại việc ăn của bạn chủ yếu là thời gian chờ đợi, sau đó là việc ăn thực sự ở tốc độ bình thường.

Sau khi vào nhà hàng hai đêm liên tục đúng 6 giờ chiều và đặt cùng món trong cùng lần đặt, đêm thứ ba người hầu bàn bắt đầu nghĩ: Người khác này luôn đến đây đúng 6 giờ chiều, ăn cố định các món ăn, vậy sao ta không chuẩn bị trước để ông ta ngạc nhiên và có thể có món tiền tưởng cao từ ông ấy. Vì vậy ngày sau vào nhà hàng, khi gọi món hot dog, người hậu bàn mang ra ngay, không chờ đợi! Kế tiếp món thứ hai cho đến món cuối cùng cũng vậy. Tóm lại việc ăn của bạn bao gồm việc ăn, không chờ đợi thức ăn được chế biến, nhờ trước hết sự thông minh và sự quan tâm của người bồi bàn.

Thí dụ này chính xác mô tả chức năng của bộ nhớ đệm cấp 1 trên bộ xử lý. Bộ nhớ đệm L1 chính là hai bàn chứa một hay nhiều đĩa thức ăn. Không có người hầu bàn, không gian trên bàn là một tầng đệm món ăn đơn giản (buffer). Khi được lưu trữ, bạn có thể ăn cho đến khi tầng đệm này hệt, nhưng không có ai thông minh để làm đầy nó lại. Người hầu bàn chính là bộ quản lý bộ nhớ đệm làm việc và thông minh để quyết định món ăn nào được đặt trên bàn trước khi bạn cần chúng. Giống như bộ điều khiển bộ đệm thực, anh ta dùng các kĩ năng của anh ta để đoán thức ăn nào bạn sẽ yêu cầu kế tiếp, nếu người hầu bàn suy đoán đúng thì bạn sẽ không phải chờ đợi.

Đêm thứ tư bạn đến chính xác giờ và bắt đầu món hot dog như thường lệ. Người hầu bàn rất tự tin, có chuẩn bị sẵn món hot dog chờ bạn đến, cho nên không có sự chờ đợi.

Ngay khi bạn kết thức món hot dog và ngay khi anh ta đặt món lên đĩa ăn, bạn nói “Này anh bạn, tôi muốn món xúc xích lợn rán bây giờ; tôi không đặt món hamburger này”. Người hầu bàn đoán sài hậu quả là bạn phải chờ đủ 60 giây cho nhà bếp chuẩn bị sự yêu cầu của bạn. Điều này được hiểu như một cache mis, trong đó bộ điều khiển bộ đệm không làm đầy bộ đệm chính xác dữ liệu bộ xử lý thực sự cần tiếp theo. Kết quả là sự chờ đợi, hay trong trường hợp của hệ thống Pentium 233 MHz mẫu, hệ thống về cơ bản giảm 16MHz (tốc độ RAM) bất cứ khi nào một cache miss xảy ra.


Theo Intel, bộ nhớ đệm cấp 1 trong phần lớn bộ xử lý đạt xấp xỉ tỷ lệ 90% việc xử lý các yêu cầu dữ liệu (Hit ration) (một số bộ xử lý như là Pentium 4, cao hơn một chú). Nghĩa là bộ nhớ đệm có dữ liệu đúng 90% thời gian và do đó bộ xử lý chạy ở tốc độ đủ 233MHz trong ví dụ này 90% thời gian. Tuy nhiên 10% thời gian bộ quảy lý bộ nhớ đệm đoán sai và dữ liệu phải được gọi ra từ bộ nhớ chính, bộ xử lý phải chờ. Điều này về cwo bản giảm hệ thống về tốc độ RAM, mà trong ví dụ này là 60ns hay 16MHz.

Trong sự tương đồng này, bộ xử lý 14 lần nhanh hơn bộ nhớ chính. Các tốc độ bộ nhớ tăng lên từ 16 MHz (60ns) lên 333 MHz (3.0ns) hay nhanh hơn trong các hệ thống mới, nhưng các tốc độ bộ xử lý cũng nâng lên đến 3GHz và trên nữa độ bộ xử lý cũng nâng lên đế 3GHZ và trên nữa, vì vậy thậm chí trong các hệ thống mới, bộ nhớ vẫn chậm hơn 7.5 hay nhiều lần chậm hơn bộ xử lý. Bộ nhớ đệm là cái làm nên sự khác biệt.

Đặc điểm chính của bộ nhớ đệm cấp 1 là nó luôn được tích hợp trên nhân bộ xử lý, chạy cùng tốc độ với nhân bộ xử lý. Điều này, kết hợp với tỷ lệ 90% hoặc lớn hơn làm bộ nhớ đệm L1 trở nên quan trọng đối với tốc độ hệ thống,

Bộ nhớ đệm cấp 2

Để làm giảm bớt sự chậm xuống đột biến này mỗi lần một cache miss L1 xảy ra, một bộ đệm thứ hai (L2) được sử dụng. Dùng sự tương đồng nhà hàng để giải thích bộ nhớ đệm L1 trong phần trước. Ta ví bộ nhớ đệm L2 như là một xe đẩy những món ăn được đặt theo kế hoạch trong nhà hàng và người hầu bạn có thể lấy thực phẩm ra khỏi xe trong vòng 15 giây (đối với 60 giây từ nhà bếp). Trong hệ thống lớp Pentium thực sự (socket 7) bộ nhớ đệm cập 2 được đặt trên bo mạch chủ, nghĩa là nó chạy với tốc độ bo mạch chủ 66MHz hoặc 15 giây trong ví dụ này. Nếu ta yêu cầu một món mà người hầu bạn không sắp đặt trước, thay vì làm quãng đường dài xuống nhà bếp để lấy món ăn và mang lại bàn mất 60 giây sau đó, người hậu bàn trước hết có thể kiểm tra xe đẩy thức ăn nơi anh ta đã sắp đặt các món ăn thêm. Nếu có sẵn thì chỉ mất 15 giây ta sẽ có món ăn được yêu cầu. Hiệu quả lưới trong hệ thống thực sự là thya vì giảm từ nhanh 233Mhz đến 16MHz chờ đợi dữ liệu đến từ bộ nhớ chính mất 60 giây thì dữ liệu có thể lấy nhanh chóng trong vòng 15 giây (66MHz) ở bộ nhớ đệm cấp 2. Hiệu quả là hệ thống chậm xuống từ 233MHz đến 66MHz.

Tất cả bộ xử lý hiện đại có tích hợp bộ nhớ đệm L2 thì bộ nhớ đẹm L2 có tốc độ của nhân bộ xử lý, cùng tốc độ với bộ nhớ đệm L1. Cho sự tương đồng để mô tả những con chip mới hơn này, người hầu bàn chỉ đơn giản đặt xe đẩy ngay sát bàn mà ta đang ngồi trong nhà hàng. Nếu thức ăn mà bạn yêu cầu không có trên bàn (cache miss L1), nó chỉ mất dài hơn một sải tay để đến với bộ nhớ đệm L2 gần kề (xe đẩy, trong ví dụ tương đồng này) hơn là 15 giây đi bộ đến xe đẩy như với các thiết kế cũ.

Bộ nhớ đệm cấp 3

Một số ít bộ xử lý, chủ yếu những bộ xử lý được thiết kế cho sự vận hành máy để bản tốc độ rất cao hay những máy chủ mức độ doanh nghiệp, chứa một bộ nhớ đệm cao cấp 3 được biết như bộ nhớ đệm L3. Trong quá khí chỉ vài bộ xử lý có bộ nhớ đệm L3, nhưng nó đang trở nên khá thông dụng với các bộ xử lý đa nhân nhanh hơn và mới hơn như là Intel Core và AMD Phenom.

Mở rộng ví dụ tương đồng nhà hàng để giải thích về bộ nhớ đệm L1 và L2 , ta xem như bộ nhớ đệm cấp 3 là xe đẩy những món ăn thêm được đặt kế bên xe đẩy thức ăn được ví như bộ nhớ đệm L2. Nếu món ăn được yêu cầu không có trên bàn (L1 cache mis) hay không có teen xe đẩy đầu tiên (L2 cache miss), người hầu bàn có thể đến xe thứ hai để tìm món ăn theo yêu cầu.


Bộ nhớ đệm L3 chứng tỏ hữu dụng đặc biệt trong các bộ xử lý đa nhân nơi L3 thông thường được chia sẻ trong số các nhân. Mặc dù hiện thời như một biểu hiện cảu chip cao cấp các bộ xử lý chủ đạo tương lai sẽ bao gồm bộ nhớ đệm L3 như một tính năng tiêu chuẩn.

Tốc độ của bộ nhớ đệm và thiết kế

Giống như bộ nhớ đệm L1, phần lớn bộ nhớ đệm L2 cũng có tỷ lệ trong phạm vi 90% (hit radio); do vậy nếu nhìn tổng thể hệ thống 90% thời gian chạy với tốc độ đủ (233MHz trong thí dụ này) để lấy dữ liệu ra khỏi bộ nhớ đệm L1. 10% thời gian sẽ chậm đi để lấy dữ liệu từ bộ nhớ đệm L2. 90% thời gian bộ xử lý vào bộ nhớ đệm L2, dữ liệu chứa trong đó và 10 % của thời gian sẽ vào bộ nhớ chính để lấy dữ liệu vì L2 cache miss. Kết hợp cả hai bộ nhớ đệm, hệ thống đạt tốc độ bộ xử lý 90% thời gian (233 MHz trong trường hợp này) tại tốc độ bo mạch chủ là 9% thời gian (90% của 10%) (66MHz trong trường hợp này) và tại tốc độ RAM 1% thời gian (10% của 10%, 16MHz trường hợp này ). Rõ ràng là bộ nhớ đệm L1 và L2 rất quan trọng, không có chúng thì hệ thống thường sử dụng bộ nhớ chính, chậm đáng kể so với bộ xử lý.

Điều này mang đến những điểu thú vị khác. Nếu bạn có thể tiêu tiền gấp hai lần tốc độ của bộ nhớ chính (RAM) hay bộ nhớ đệm L2, cách nào để bạn cải thiện? Nhắc nhở rằng bộ nhớ chính được dùng trực tiếp chỉ khoảng 1% thời gian, nếu tăng gấp đôi tốc độ ở đây, bạn có thể tăng gấp đôi tốc độ hệ thống chỉ trong 1 % thời gian! Nghe có vẻ không đủ sự cải tiến để điều chỉnh mức chi phí nhiều như thế. Mặt khác, nếu tăng gấp đôi tốc độ bộ nhớ đệm L2, bạn đang tăng gấp đôi tốc độ hệ thống: 9% thời gian, một sự cải tiến vượt trội toàn diện. Tôi thà cải tiến tốc độ L2 hơn tốc độ RAM.

Những nhà thiết kế bộ xử lý và hệ thống ở Intel và AMD biết điều này và nghĩ ra các phương pháp cải tiến tốc độ của bộ đệm L2. Ở hệ thống lớp Pentium (P5), bộ đệm L2 thường được tìm thấy trên bo mạch và vì vậy phải chạy cùng tốc độ bo mạch. Intel làm sự cải tiến gây ấn tượng đầu tiên bằng cách chuyển bộ đệm L2 từ bo mạch trực tiếp vào bộ xử lý và bước đầu vận hành nó cùng tốc độ của bộ xử lý chính. Những chip bộ đệm được Intel chế tạo và đặt trên vận hành nó cùng tốc độ đệm từ những nhà cung cấp thứ ba như là Sony. Toshiba, NEC, Samsung và những hãng khác. Do những chip bộ đệm này được cung cấp như những những chip được đóng gói hoàn tất và không khuôn cơ bản, Intel đặt chúng trên bo mạch điện dọc theo mặt bộ xử lý. Đây là lý do Pentium II được thiết kế như một hộp hơn là giống như một con chip.

Một vấn đề là tốc độ của những chip bộ đệm bên thứ ba. Nhanh nhất trên thị trường là 3ns hay cao hơn, nghĩa là tốc độ 333MHz hay ít hơn. Do bộ xử lý bị lái tốc độ như trên, trong bộ xử lý Pentium II và Pentium III đầu tiên Intel phải chạy bộ đệm L2 bằng nữa tốc độ bộ xử lý bởi vì đó là tất cả mà bộ nhớ bộ đệm giá trị thương mại có khả năng. AMD bắt chước với bộ xử lý Athlon, phại hạ tốc độ bộ đệm L2 thậm chí thấp hơn một số sản phẩm đến hai phần năm hoặc một phần ba tốc độ CPU chính để giữ tốc độ bộ nhớ bộ đệm ít hơn những con chip thương mại 333MHz.



Hiện tượng tràn bộ nhớ đệm

Kế tiếp bước đột phá xuất hiện, lần đầu tiên ở các bộ xử lý Celeron 300A và cao hơn. Những bộ xử lý có 128KB bộ đệm L2, nhưng không có những chip ngoài được dùng. Thay vì vậy, bộ đệm L2 được tích hợp trực tiếp vào nhân bộ xử lý giống như L1. Do đó, cả hai bộ nhớ đệm L1 và L2 chạy ở tốc độ bộ xử lý đầy đủ, việc tăng cường tốc độ khá quan trọng khi các tốc độ xử lý được gia tăng trong tương lai. Ở bộ xử lý Pentium III, cũng như tất cả các bộ xử lý Xeon và Celeron, bộ nhớ đệm L2 chạy ở tốc độ nhân bộ xử lý, nghĩa là không phải chờ đợi hay chậm xuống sau khi một L1 cache miss, AMD cũng đạt bộ đệm trên khuôn tốc độ nhân trong các chip Athlon và Duron sau này. Dùng bộ nhớ đệm trên khuôn cải tiến tốc độ đáng kể bởi vì 9% thời gian hệ thống dùng L2, nó giữ nguyên tốc độ đủ thay vì chậm xuống phân nửa hay ít hơn tốc độ bộ xử lý hay, tệ hơn là, chậm xuống bằng tốc độ bo mạch như các thiết kế Socket 7. Lợi thế khác của bộ đệm L2 trên khuôn là chi phí, thấp hơn bởi vì linh kiện ít hơn.

Hãy quay lại thí dụ tương đồng nhà hàng dùng bộ xử lý Pentium 4 3.6 GHz. Bây giờ mỗi miếng cắn mất nữa giây 9 3.6 GHz = 0.28 ns tính theo chu kỳ). Bộ đệm L1 cũng đang chạy ở tốc độ này, nên bạn có thể ăn bất kỳ món ăn nào trên bàn cùng tốc độ này (bàn ăn = bộ đệm L1). Bước nhảy thực trong tốc độ đến khi bạn muốn món ăn không có sẵn trên bàn (L1 cache miss), trong trường hợp này người hầu bàn sẽ tìm qua xe đẩy (hiện giờ gần kề bàn ăn) và chín trong mười lần có thể tìm thấy món ăn bạn muốn trong chỉ một phần tư giây (Tốc độ L2 = 3.6GHz hay tỉ lệ đọc L1 và L2 được kết hợp) và chậm xuống tốc độ RAM (chờ nhà bếp) chỉ 1% thời gian như trước kia. Với bộ nhớ nhanh hơn 800MHz (1.25ns), bạn sẽ phải chờ chỉ 1.25 giây cho món ăn đến từ nhà bếp. Nếu tốc độ nhà hàng gia tăng cùng tốc độ bộ xử lý!

Tổ chức bộ nhớ đệm

Bộ nhớ đệm chứa những dữ liệu sao chép từ những địa chỉ bộ nhớ chính khác nhau. Bởi vì bộ nhớ đệm không chứa các sao chép dữ liệu từ tất cả địa chỉ trong bộ nhớ chính cùng một lúc nên có một cách biết địa chỉ nào đang được sao chép vào bộ nhớ đmẹ, do đó nếu cần dữ liệu từ những địa chỉ này, dữ liệu có thể được đọc ở bộ nhớ đệm ghi nhận các chỉ mục địa chỉ được dữ liệu sao chép hiện hành. Nếu cần lấy dữ liệu thì phần quản lý bộ nhớ đệm có thể nhanh chóng tìm thẻ địa chỉ để kiếm liệu địa chỉ được yêu cầu hiện chứa tọng bộ nhớ đệm (Hit) hoặc không có (Miss). Nếu dữ liệu có sẵn thì nó sẽ đọc từ bộ nhớ đệm nhanh chóng, nếu không thì nó phải đọc từ bộ nhớ chính lâu hơn.

Nhiều cách khác nhau tổ chức hay ánh xạ các thẻ ảnh hưởng cách bộ đệm hoạt động ra sao. Một bộ đệm có thể được ánh xạ nhưu dạng kết hợp toàn bộ (full associative), hay được ánh xạ trực tiếp (direct – mapped), hay liên hợp vùng (set associative).

Ở bộ nhớ đệm được ánh xạ theo dạng kết hợp toàn bộ khi một yêu cầu đọc dữ liệu từ địa chỉ bộ nhớ chính phủ cụ thể thì địa chỉ này được so sánh với tất cả các thẻ địa chỉ trong tag RAM của bộ nhớ đệm, Nếu địa chỉ bộ nhớ chính được yêu cầu được tìm thấy trong thẻ (a hit), vị trí tương ứng trong bộ đệm được đáp lại. Nếu địa chỉ được yêu cầu này không được tìm thấy trong mục thẻ địa chỉ (a mis) thì dữ liệu buộc phải lấy từ địa chỉ bộ nhớ chính.

Ở bộ nhớ đệm dạng được ánh xạ trực tiếp những địa chỉ bộ nhớ chính cụ thể được gán trước cho những định vị dòng cụ thể trong bộ nhớ đệm nơi chúng sẽ được chứa. Do đó Tag RAM có thể sử dụng ít bit hơn bởi vi khi biết rõ địa chỉ bộ nhớ chính ở đâu thì chỉ có một thẻ nhớ địa chỉ cần phải kiểm tra và mỗi thẻ cần lưu trữ chỉ những địa chỉ có thể mà một dòng cho sẵn có thể chứa. Điều này cũng dẫn đến vận hành nhanh hơn do chỉ một địa chỉ thẻ cần được kiểm tra cho địa chỉ bộ nhớ có sẵn. Bộ nhớ đệm dạng liên hợp vùng là một bộ liên hợp bộ nhớ, nghĩa là một địa chỉ sẵn cụ thể. Bộ nhớ đệm liên hợp hai dòng (two-way) có hai bộ, nên một định vị bộ nhớ cho sẵn có thể là một trong hai định vị. Bộ nhớ đệm liên hợp bốn dòng (four-way) có thể chứa địa chỉ thẻ phải được kiểm tra khi định vị cụ thể trên bộ nhớ đẹm. Ngắn gọn mỗi bộ trong bộ nhớ đẹm liên hợp n dòng là một bộ nhớ đệm con có mối liên hợp với mỗi địa chỉ bộ nhớ chính. Ngay khi số bộ nhớ đệm con hay số bộ gia tăng thì bộ nhớ đệm trở thành kết hợp toàn bộ (full associative). Tình huống mà bất kỳ địa chỉ bộ nhớ có thể chứa trong bất kỳ định vị dòng đệm nào. Trong trường hợp này bộ nhớ đệm liên hợp n dòng là một sự thỏa hiện giữa dạng bộ nhớ đệm kết hợp toàn bộ và dạng bộ nhớ đệm được ánh xạ trực tiếp.


Tổng quát bộ nhớ dạng dưới ánh xạ trực tiếp là nhanh nhất về định vị cũng như lấy dữ liệu từ bộ nhớ đệm bởi vì nó chỉ phải xem một địa chỉ thẻ cho địa chỉ bộ nhớ cho sẵn. Tuy nhiên nó cũng xảy ra nhiều “miss” hơn những dạng bộ nhớ đệm kia. Bộ nhớ đệm dạng kết hợp toàn bộ cho tỷ lệ đọc cao nhất (hit ratio) nhưng lại chậm trong định vị và lấy dữ liệu bởi vì phải kiểm tra quá nhiều thẻ địa chỉ. Bộ nhớ đệm liên hợp n dòng là một sự thỏa hiệp giữa tốc độ bộ nhớ đẹm tối ưu và đọc (hit ratio), nhưng càng nhiều sự kết hợp thì càng nhiều phần cứng được yêu cầu (bit của thẻ, mạch điện máy so mẫu…) và làm bộ nhớ đệm cao giá. Một cách hiển nhiên, thiết kế bộ đệm là một dãy trao đổi, và cái làm tốt nhất trong trường hợp này sẽ không thể làm tốt trong trường hợp khác. Những môi trường đa nhiệm như Windows là những ví dụ tốt về môi trường trong đó bộ xử lý cần để vận hành trong những vùng bộ nhớ khác nhau đồng thời và trong bộ đệm n-dòng có thể cải tiến tốc độ.

Nội dung của bộ nhớ đệm phải luôn luôn đồng bộ với nội dung của bộ nhớ chính để chắc chắn rằng bộ xử lý đang làm việc với dữ liệu hiện có. Vì lí do này, bộ nhớ đệm nội bộ trong dòng 486 được gọi là bộ nhớ đệm ghi thẳng (write-through). Ghi thẳng có nghĩa là khi bộ xử lý ghi những thông tin vào bộ nhớ đệm thì những thông tin này được ghi tự động vào bộ nhớ chính ngay. Bằng cách so sánh, những chip Pentium và mới đều có bộ nhớ đệm ghi lại nội bộ (internal write-back), nghĩa là cả đọc và ghi đều được lưu trữ, cải tiến là không đóng khối (Nonblocking). Kỹ thuật này làm giảm hay dấu những trì hoãn bộ nhớ gây nên bởi khai thác sự chồng chéo hoạt động của bộ xử lý với dữ liệu truy cập. Bộ nhớ đẹm Nonblocking cho phép thực thi chương trình để tiến đồng lúc với trạng thái cache miss miễn là sự ràng buộc chắc chắn được tuân theo. Mặc khác bộ nhớ đẹm có thể quản lý tình trạng cache miss tốt hơn, cho phép bộ xử lý tiếp tục làm việc mà không bị lệ thuộc vào việc không có dữ liệu.

Phần quản lý bộ nhớ đệm được thiết kế trên bộ xử lý dùng để canh phòng bus bộ nhớ khi nhiều xử lý có thể chọn (gọi là bus masters) trong điều khiển hệ thống. Tiến trình của việc canh phòng bus được gọi là bus snooping. Nếu thiết bị bus master ghi vào vùng bộ nhớ thì cũng được lưu trữ trên bộ nhớ đệm bộ xử lý hiện hành. Phần quản lý bộ nhớ đệm sẽ đánh dấu dữ liệu này như không hiệu lực và nạp lại vào bộ nhớ đệm trong khi bộ nhớ kế tiesp truy cập, duy trì tính toàn vẹn của hệ thống.

Tất cả các thiết kế máy tính hỗ trợ bộ nhớ đệm bằng tính năng TLB (Translation Look – Aside Buffer) để cải tiến sự hồi phục trong trường hợp bị cache miss. TLB là một bảng trong bộ xử lý chứa thông tin về định vị những địa chỉ bộ nhớ được truy cập mới nhất. TLB thúc đẩy sự chuyển dịch của địa chỉ ảo sang địa chỉ bộ nhớ vật lý. Để cải tiến tốc độ TLB một số bộ xử lý tăng số đường vào trên TLB, như AMD khi chuyển từ nhân Athlon Thunderbird sang nhân Palomino. Pentium 4 hỗ trợ công nghệ siêu phân luồng (hyper-threading Technology) có chỉ lệnh TLB riêng (iTLB: intruction TLB) cho mỗi chuỗi bộ xử lý ảo.

Khi những tốc độ đồng hồ gia tăng thời gian chu kỳ giảm. Những hệ thống mới hơn không dùng bộ đệm trên bo mạch lâu hơn nữa bởi vì bộ nhớ hệ thống nhanh hơn được sử dụng trong những hệ thống hiện đại có thể theo kịp tốc độ bo mạch. Những bộ xử lý hiện đại đều tích hợp bộ đệm L2 vào khuôn bộ xử lý như bộ đệm L1 và một số cũng bao gồm bộ nhớ đệm L3 trên khuôn. Điều này cho phép L2/L3 chạy ở tốc độ nhân bởi vì nó giờ là một phần của nhân. Tốc độ bộ đệm thì luôn luôn quan trọng hơn kích cỡ. Quy luật là một bộ đệm nhỏ hơn nhưng nhanh hơn thì luôn luôn tốt hơn bộ đệm chậm hơn nhưng lớn hơn.

- sua may tinh tphcm
- dich vu sua may tinh



Theo “Nâng cấp và sửa chữa máy tính” Scott Mueller