✨CPU cache

CPU cache

CPU cache là bộ nhớ được dùng bởi bộ xử lý trung tâm của máy tính nhằm giảm thời gian truy cập dữ liệu trung bình từ bộ nhớ chính. Cache là một bộ nhớ nhỏ hơn, nhanh hơn và lưu trữ bản sao của những dữ liệu thường xuyên được truy cập trên bộ nhớ chính. Hầu hết CPU đều có các bộ nhớ cache độc lập khác nhau, bao gồm cache chỉ dẫn và cache dữ liệu, nơi mà dữ liệu được xếp thành nhiều lớp khác nhau.

Tổng quan

Khi mà bộ xử lý cần phải đọc hay viết vào một vị trí trong bộ nhớ chính, nó sẽ tìm trong bộ nhớ cache đầu tiên. Nhờ vậy, bộ xử lý đọc hay viết dữ liệu vào cache ngay lập tức nên sẽ nhanh hơn nhiều so với đọc hay viết vào bộ nhớ chính.

Hầu hết các máy tính bàn và server CPU đều có 3 bộ nhớ cache độc lập: một bộ nhớ cache chỉ dẫn để tăng tốc độ xử lý, một bộ nhớ cache dữ liệu để tăng tốc độ nhận và lưu dữ liệu và TLB được sử dụng để tăng tốc độ chuyển từ địa chỉ ảo thành thật của quá trình chỉ dẫn xử lý và dữ liệu. Cache dữ liệu thường được sắp xếp thành nhiều tầng lớp hơn. Có thể nói rằng TLB cache là một phần của MMU và không liên quan trực tiếp đến CPU cache.

Nhập vào cache

Dữ liệu được chuyển giữa bộ nhớ chính và cache theo từng khối cố định kích cỡ, gọi là cache lines. Khi một cache line được  sao chép từ bộ nhớ chính vào cache thì một cache entry được tạo ra. Nó sẽ bao gồm cả dữ liệu được sao chép và vị trí của dữ liệu yêu cầu (gọi là 1 tag).

Khi bộ xử lý cần đọc hay viết một vị trí trong bộ nhớ chính, nó sẽ tìm entry tương ứng trong cache đầu tiên. Cache sẽ kiểm tra nội dung của vị trí dữ liệu yêu cầu trong bất cứ cache line nào có thể có địa chỉ. Nếu bộ xử lý tìm thấy vị trí dữ liệu trong cache, một cache hit đã xảy ra. Tuy nhiên, nếu bộ xử lý không tìm thấy được vị trí dữ liệu trong cache, thì một cache miss đã xảy ra. Trong trường hợp cache hit, bộ xử lý đọc hoặc viết dữ liệu vào cache line ngay lập tức. Còn nếu là cache miss, cache sẽ tạo một entry mới và sao chép dữ liệu từ bộ nhớ chính, sau đó yêu cầu được đáp ứng từ nội dung của cache.

Thực thi cache

Số lần truy cập có kết quả là cache hit được gọi là hit rate, và có thể được xem như là thước đo độ hiệu quả cache của một chương trình hay thuật toán.

Lỗi đọc nhầm làm quá trình xử lý bị chậm lại vì cần phải lấy dữ liệu từ bộ nhớ chính nên chậm hơn nhiều so với đọc từ cache. Lỗi viết nhầm có thể xuất hiện nhưng không nặng đến thế, vì bộ xử lý có thể tiếp tục xử lý khi mà dữ liệu được sao chép vào bộ nhớ chính trong chế độ ngầm.

Để tạo chỗ cho một entry mới khi mà cache miss, cache có thể sẽ hủy một trong số những entry hiện có. Replacement policy là nguồn gốc của hoạt động trên. Vấn đề cơ bản của bất cứ replacement policy nào là nó phải dự đoán được cache entry đang tồn tại nào sẽ không được dùng nữa. Dự đoán là một chuyện rất khó nên không có cách nào hoàn hảo trong số các replacement policy hiện hữu.

Một trong số replacement policy, LRU, thay thế entry được truy cập ít nhất trong thời gian gần đây.

Đánh dấu một số phần bộ nhớ là non-cacheable có thể nâng cao hiệu suất làm việc do tránh được những phần bộ nhớ hiếm khi truy cập. Điều này tránh trường hợp cho một cái gì vào cache mà không tái sử dụng. Cache entries có thể bị tắt hoặc khóa tùy vào trường hợp.

Nếu dữ liệu được viết vào cache, đến lúc nào đó nó cũng sẽ phải được đưa vào bộ nhớ chính; thời điểm viết được biết đến là write policy. Trong write-through cache, mỗi lần viết vào cache thì cũng viết vào bộ nhớ chính. Thay vào đó, trong write-back hay copy-back cache, mỗi lần viết không đồng bộ vào bộ nhớ chính ngay lập tức, mà cache tìm lại những địa điểm đã được viết vào cache, đánh dấu chúng là dirty.Dữ liệu ở những địa điểm này chỉ được viết vào bộ nhớ chính chỉ khi dữ liệu đó bị xóa ở cache.Vì lý do này, một lỗi đọc nhầm trong write-back cache có thể có 2 dịch vụ truy cập dữ liệu: một để viết từ dirty location vào bộ nhớ chính, và cái còn lại để đọc vị trí mới từ bộ nhớ chính. Ngoài ra, một lần viết vào một vị trí trong bộ nhớ chính mà chưa được định vị trong write-back cache có thể xóa đi một dirty location, từ đó giải phóng dung lượng cache cho vị trí mới.

Thêm vào đó cũng có nhiều intermediate policy nữa. Cache có thể là write-through, nhưng bản ghi có thể nằm tạm thời trong hàng chờ lưu trữ dữ liệu, thường là để có thể lưu nhiều bản ghi một lúc.

Dữ liệu được cache từ bộ nhớ chính có thể bị thay đổi bởi nhiều yếu tố, trong trường hợp mà bản sao trong cache có thể bị lỗi thời hay mất hiệu lực. Thay vào đó khi một CPU thuộc một hệ thống đa xử lý cập nhật dữ liệu trong cache, các bản sao của dữ liệu trong cache liên quan đến các CPU khác mất hiệu lực. Các quy trình trao đổi giữa các cache manager để thống nhất dữ liệu thì được gọi là cache coherence protocols.

Thời gian lấy một cache line từ bộ nhớ chính rất quan trọng vì CPU sẽ phải đợi cache line. Khi CPU đạt tình trạng này, nó được gọi là stall. Khi CPU trở nên nhanh hơn so với bộ nhớ chính, stalls do có cache misses nên không làm được nhiều phép tính tiềm năng hơn; CPU hiện đại có thể thực hiện hàng trăm chỉ dẫn trong thời gian lấy một cache line từ bộ nhớ chính.

Nhiều phương pháp có thể được sử dụng để giữ CPU làm việc hiệu quả trong thời gian này, bao gồm cả out-of-order execution, mà trong đó CPU cố thực hiện những chỉ dẫn độc lập nằm sau chỉ dẫn đang đợi dữ liệu cache miss. Một công nghê khác được sử dụng bởi nhiều bộ xử lý là simultaneous multithreading (SMT), hay hyper-threating, cho phép một thread khác sử dụng lõi CPU trong khi thread đầu tiên đợi tài nguyên của CPU sẵn sàng.

Bộ nhớ đệm

Tính chất kết hợp

_ Được xem như là một chính sách cho việc thay thế vị trí nhằm quyết định nơi nào trong bộ nhớ đệm mà bản sao một cửa vào riêng biệt của bộ nhớ chính sẽ di chuyển đến. Nếu chính sách thay thế được tự do trong việc chọn bất kì cổng vào nào trong bộ nhớ đệm để lưu trữ bản sao, lúc đó bộ nhớ đệm sẽ ở trạng thái cấu trúc "liên kết đầy đủ"- Fully Associative Cache. Ngược lại, nếu mỗi cổng vào của bộ nhớ chính chỉ có duy nhất một chỗ trong bộ nhớ đệm, bộ nhớ đệm sẽ ở trạng thái cấu trúc "ánh xạ trực tiếp"- Direct Mapped Cache.  

_Nhiều bộ nhớ đệm thực hiện một sự thỏa hiệp trong đó mỗi mục trong bộ nhớ chính có thể đi đến bất kỳ một trong số N vị trí trong bộ nhớ đệm, và được mô tả như cấu trúc "thiết lập liên kết- N chiều". Ví dụ, các dữ liệu bộ nhớ đệm cấp 1 ở Athlon của AMD là thiết lập liên kết 2 chiều, điều đó có nghĩa rằng bất kỳ vị trí cụ thể trong bộ nhớ chính có thể được lưu trữ tại một trong hai địa điểm trong dữ liệu bộ nhớ đệm cấp 1.  

_Tính chất kết hợp là một sự đánh đổi. Nếu như có mười vị trí để chính sách thế chỗ có thể ánh xạ một vị trí của bộ nhớ, sau đó phải kiểm tra xem vị trí đó đã có trong bộ nhớ đệm hay không, sau đó mười cổng vào bộ nhớ đệm phải được tìm kiếm. Việc kiểm tra nhiều vị trí sẽ hao tổn nhiều năng lượng và vùng chip hơn, cũng như có thể tốn nhiều thời gian hơn.

_Một mặt khác, bộ nhớ đệm với nhiều tính kết hợp sẽ chỉ chịu việc lệch ít hơn (xem phần Lệch do mâu thuẫn bên dưới), vậy nên CPU tốn ít thời gian để đọc từ bộ nhớ chính tốc độ thấp. Quy tắc ngón tay cái được áp dụng: gấp đôi tính kết hợp, từ cấu trúc "ánh xạ trực tiếp" cho đến cấu trúc liên kết 2 chiều, hoặc từ 2 chiều lên 4 chiều, gần như có cùng một hiệu quả về tỉ lệ trúng như việc tăng gấp đôi kích thước bộ nhớ đệm. Tăng tính kết hợp vượt hơn 4 chiều ảnh hưởng ít hơn đến tỉ lệ trúng, và chỉ được dùng cho một vài lý do khác.

_Theo thứ tự thấp hơn, từ đơn giản đến tốt hơn nhưng phức tạp:

+Cấu trúc "ánh xạ trực tiếp"- ở trường hợp tốt nhất sẽ tốt về thời gian nhưng không ổn định khi trường hợp xấu nhất. thumb +Cấu trúc liên kết 2 chiều.

+Cấu trúc liên kết lệch- 2 chiều.

+Cấu trúc liên kết 4 chiều.

+Cấu trúc liên kết 8 chiều: sự lựa chọn phổ biến cho những sự triển khai sau.

+Cấu trúc liên kết 12 chiều: tương tự như 8 chiều.

+Cấu trúc liên kết đầy đủ- có tỉ lệ lệch cao nhất, nhưng thực tế chỉ khi có một số nhỏ các cổng vào. 

Cấu trúc "ánh xạ trực tiếp".

_Trong cách liên kết này, mỗi địa điểm trong bộ nhớ chính có thể đi vào chỉ một cổng vào trong bộ nhớ đệm. Vì vậy, một bộ nhớ đệm có cấu trúc "ánh xạ trực tiếp còn có thể được gọi là "cấu trúc liên kết 1 chiều". Thực chất nó không có chính sách thay thế, bởi vì không có sự lựa chọn nào cho nội dung của cổng vào tại bộ nhớ đệm có thể trả về.

_Điều này có nghĩa là nếu hai địa điểm ánh xạ cùng một cổng vào, chúng dường như sẽ đẩy nhau ra. Mặc dù đơn giản, một bộ nhớ đệm ánh xạ trục tiếp vẫn cần phải lớn hơn một liên kết để cung cấp hiệu năng tương đương, và nó trở nên khó dự đoán hơn. Giả sử cho x là số thứ tự khối trong bộ nhớ đệm, y là số thứ tự khối trong bộ nhớ, và n là số lượng khối trong bộ nhớ đệm, thì việc ánh xạ sẽ được thực hiện với phương trình x= y mod n.

Cấu trúc liên kết hai chiều.

_Nếu mỗi địa điểm trong bộ nhớ chính có thể được lưu đệm tại một trong hai địa điểm trong bộ nhớ đệm, một câu hỏi được đặt ra: cái nào trong hai cái? Cách đơn giản nhất và thường dùng nhất, được miêu tả ở khung bên phải phía trên, đó là dùng những bit thấp nhất của chỉ số bộ nhớ như là một chỉ số dùng cho bộ nhớ đệm, và có hai cổng vào cho mỗi chỉ số.

_Một tiện ích từ cách hệ thống này là những thẻ được lưu trong bộ nhớ đệm không bao gồm một phần địa chỉ của bộ nhớ chính, thứ được bao hàm bởi chỉ số của bộ nhớ đệm. Bởi vì thẻ đệm chỉ có vài bit, chúng đòi hỏi ít transistor hơn, chiếm ít không gian trên các bảng mạch vi xử lý hoặc trên chip vi xử lý, và có thể được đọc cũng như so sánh nhanh hơn. Ngoài ra LRU lại đặc biệt đơn giản do chỉ cần có một bit để lưu trữ cho mỗi cặp.

Thi hành suy đoán

_Một trong những lợi thế của cấu trúc ánh xạ trực tiếp đó là nó cho phép suy đoán đơn giản và nhanh. Một khi địa chỉ đã được tính toán, chỉ số đệm có thể có bản sao của vị trí đó trong bộ nhớ được biết đến. Cổng vào đệm đó có thể được đọc, và bộ vi xử lý tiếp tục làm việc với dữ liệu đó trước khi hoàn tất kiểm tra xem thẻ có khớp với địa chỉ yêu cầu hay không.

_Ý tưởng của việc bộ vi xử lý sử dụng dữ liểu đệm trước khi thẻ khớp có thể được áp dụng cho liên kết bộ nhớ đệm. Một tập hợp con của thẻ, gọi là một dấu hiệu, có thể được dùng để chọn một trong số cổng vào khả thi ánh xạ đến địa chỉ yêu cầu. Cổng vào được chọn dựa vào dấu hiện có thể được dùng song song với việc kiểm tra toàn bộ thẻ. Kỹ thuật sử dụng thẻ hoạt động tốt nhất khi dùng trong điều kiện biên dịch địa chỉ.

Lệch bộ nhớ đệm (cache miss)

Là lúc CPU không tìm thấy dữ liệu cần thiết trong bộ nhớ Cache mà phải lấy trực tiếp từ bộ nhớ RAM. Có ba loại lệch bộ nhớ đệm: instruction read miss, data read miss, and data write miss.

Instruction read miss thông thường sẽ làm cho tiến trình bị trì trệ nhất do bộ vi xử lý sẽ phải chờ cho đến khi chỉ dẫn (instruction) được lấy trực tiếp từ RAM. Data (dữ liệu) miss cache thông thường không gây trì trệ lâu như instruction miss cache do những chỉ dẫn (instruction) không phục thuộc vào những dữ liệu bị lệch khi đọc từ bộ nhớ đệm có thể tiếp tục vận hành. Cho đến khi những dữ liệu cần thiết được lấy về từ RAM, những chỉ dẫn phụ thuộc vào các dữ liệu đó có thể trở lại vận hành. Data write miss gây ra trì trệ ngắn nhất do quá trình ghi dữ liệu có thể xếp vài một queue và có rất ít hạn chế cho việc chạy những chỉ dẫn đến sau. Vi xử lý có thể tiếp tục cho đến queue đầy.

Để có thể giảm tỷ lệ khi lệch bộ nhớ đệm xãy ra, đã có nhiều phân tích được đưa ra để tìm được sự đồng nhất về kích cỡ của bộ nhớ đệm, tính chất kết hợp, kích cỡ khối dữ liệu,... Chuỗi những tham chiếu bộ nhớ được thực hiện bởi các chương trình tiêu chuẩn được gọi là address traces.

Những phân tích sau đây dựa trên nhiều kiểu bộ nhớ đệm khác nhau được thiết kế dựa trên những address traces dài này. Giải thích cho việc nhiều biến khác nhau có thể ảnh hưởng đến tỉ lệ trúng bộ nhớ đệm (cache hit) có thể trở nên khó hiểu. Một trong những đóng góp đáng chú ý đến những phân tích này là của Mark Hill, người chia những trường hợp lệch này thành 3 hạng mục.

Compulsory misses (lệch cưỡng chế)

Gây ra do đề cập đến một vùng trong bộ nhớ mà một chương trình chưa bao giờ yêu cầu đến trước đây. Kích cỡ của bộ nhớ đêm và tính chất kết hợp không làm thay đổi đến số lần lệch cưỡng chế xảy ra. Tìm nạp trước (prefetching) có thể có ích ở đây, cũng như những khối bộ nhớ đệm có kích thước lớn hơn. Đôi khi, lệch cưỡng chế được đề cập là cold misses.

Capacity misses (lệch dung lượng)

Là những trường hợp lệch bất kể tính chất kết hợp và kích cỡ khối. Xảy ra duy nhất do kích cỡ hạn chế của bộ nhớ đệm. Lưu ý rằng, không hề có quan điểm nào về bộ nhớ đệm trở nên "đầy", "trống" hay "gần đạt dung lượng". Bộ nhớ đệm CPU hầu như đầu có tất cả các hàng chứa những bản sao của một số hàng trong RAM, và hầu như mọi sự cấp phát cho một hàng mới đòi hỏi sự đẩy ra (eviction) của một hàng cũ.

Conflict misses(lệch do xung đột)

Là những trường lệch mà đã có thể tránh khỏi, nếu như bộ nhớ đệm đã không đuổi (evict) một sự nhập vào của một entry trước đó. Lệch do xung đột có thể trở thành mapping misses về sau, và replacement misses.

Biểu đồ sau cho thấy khả năng vận hành của bộ nhớ đệm theo phần số nguyên của SPEC CPU2000, ghi nhận bởi Hill và Cantin. Những điểm mốc này tượng trưng cho khối lượng công việc một máy tính kỹ thuật có thể gặp một ngày. centre|thumb

Ở góc bên phải, khi cache size là Inf, chúng ta cò lệch cưỡng chế. Nêu chúng ta muốn nâng cáo tính năng của SpecInt2000, nâng kích cỡ của bộ nhớ đệm lên hơn 1MB là không hiệu quả. 

Tỉ lệ lệch của bộ nhớ đệm với cấu trúc "liên kết đầy đủ (Fully-associated cache) ở đây gần như đại diện cho lệch dung lượng (capacity miss rate). Sự khác nhau ở đây là dữ liệu đưa ra là do phỏng đoán, dựa trên chính sách thay thế của LRU. Đưa ra tỉ lệ lệch đòi hỏi một chính sách thay thế hoàn hảo, như là một hệ thống hướng dẫn có thể chỉ ra một cổng bộ nhớ đệm chắc chắn không phải là một hit.

Chú ý rằng sự ước lượng của tỉ lệ lệch dung lượng giảm rất nhanh ở 32KB và 64KB. Cho thấy ở mốc này có "working set" vào khoảng 64KB. Một nhà thiết kế CPU sẽ có động cơ để thiết kế kích cỡ của bộ nhớ đệm là 64KB thay vì 32KB. Chú ý,  trên những cột trên biểu đồ này, không có một tính chất kết hợp nào có thể làm một cache 32KB vận hành bằng một cache 64KB với liên kết 4 chiều hay thậm chí một cache thiết kế ánh xạ trực tiếp 128KB.

Cuối cùng, chú ý rằng ở giữa mốc 64KB và 1MB có 1 sự khác biệt rất lớn về cache cấu trúc ánh xạ trực tiếp và cache cấu trúc liên kết đầy đủ. Sự chệch lệch này chính là lệch cưỡng chế (conflict miss cache).

Dịch thuật địa chỉ

Hầu hết mục đích của việc cài đặt CPU từ những mẫu của bộ nhớ ảo. Để tóm tắt, kể cả mỗi chương trình chạy trên thiết bị thấy địa chỉ không gian riêng của mình một cách đơn giản hóa,  mà bao gồm trong đó cả mã và dữ liệu cho riêng chương trình đó, hoặc cho tất cả chương trình chạy trong không gian địa chỉ ảo phổ biến. Chương trình sử dụng không gian bộ nhớ ảo trong đó sử dụng địa chỉ ảo mà địa chỉ không gian đó không tồn tạitrong bộ nhớ vật lý. 

Bộ nhớ ảo đòi hỏi bộ vi xử lý dịch địa chỉ ảo được tạo ra bởi chương trình thành các địa chỉ vật lý trong bộ nhớ chính. Phần của bộ vi xử lý hiện dịch thuật này được gọi là đơn vị quản lý bộ nhớ (MMU). Đường dẫn nhanh chóng thông qua MMU có thể thực hiện những bản dịch được lưu trữ trong bộ đệm lookaside dịch (TLB), mà là một bộ nhớ cache của ánh xạ từ hệ thống điều hành trang bảng, phân đoạn bảng hoặc cả hai.

3 tính năng quan trọng của địa chỉ dịch

-Latency (Độ trễ): Địa chỉ vật lý có sẵn từ MMU một số thời gian, có lẽ một vài chu kỳ, sau khi địa chỉ ảo có sẵn từ bộ phận tạo địa chỉ

-Aliasing (khử răng cưa): Nhiều địa chỉ ảo có thể ánh xạ đến một địa chỉ vật lý duy nhất. Hầu hết các vi xử lý đảm bảo rằng tất cả các bản cập nhật cho duy nhất địa chỉ đó sẽ cập nhật theo chương trình. Để đảm bảo, các vi xử lý phải chắc chắn rằng chỉ có duy nhất một bản sao của vị trí đia chỉ vật lý trong Cache tại bất kỳ thời gian nhất định.

-Granularity (sự cấp phát): Không gian địa chỉ ảo được chia vào các trang. Ví dụ, một không gian địa chỉ ảo 4 GB có thể được cắt thành 1,048,576 trang có kích thước 4 KB, trong số đó có thể được ánh xạ tới một cách độc lập. Có thể có nhiều kích cỡ trang được hỗ trợ.

Một số hệ thống bộ nhớ ảo sớm đã rất chậm vì chúng yêu cầu truy cập phải bảng địa chỉ (giữ trong bộ nhớ chính) trước khi mỗi chương trình truy cập vào bộ nhớ chính. Không có bộ nhớ cache, bộ nhớ này cắt tốc độ của thiết ra thành một nử. Bộ nhớ cache phần cứng đầu tiên được dùng trong hệ thống máy tính không thực sự là dữ liệu hoặc bộ nhớ cache, mà hơn thế nữa nó là TLB. 

bốn loại bộ nhớ Cache (dựa trên mục hoặc thẻ phù hợp với bộ nhớ vật lý hoặc bộ nhớ ảo)

-Physically indexed, physically tagged (PIPT) bộ nhớ cache sử dụng địa chỉ vật lý cho cả mục và thẻ. Trong khi nó đơn giản và tránh vấn đề với aliasing, nó cũng chậm, địa chỉ vật lý phải cần được tìm kiếm (có thể kéo theo việc bỏ lỡ TLB và truy cập vào bộ nhớ chính) trước khi địa chỉ có thể tìm kiếm trong bộ nhớ cache.

-Virtually indexed, virtually tagged (VIVT) bộ nhớ caches sử dụng địa chỉ ảo cho cả mục và thẻ. Kế hoạch nơi dự trữ này có thể dẫn đến sự tra cứu nhanh hơn nhiều, khi mà MMU không cần phải tham khảo kết quả trước tiên để xác định địa chỉ vật lý cho địa chỉ ảo. Tuy nhiên, VIVT bị vấn đề răng cưa, nơi nhiều địa chỉ ảo khác nhau có thể đặt vấn đề cho cùng địa chỉ vật lý. Kết quả chỉ ra là địa chỉ như vậy nên lưu trữ riêng mặc dù, gây ra vấn đề dính kết. Vấn đề khác là từ đồng âm khác nghĩa, nơi địa chỉ ảo cùng ánh xạ tới nhiều địa chỉ vật lý khác nhau. Không thể phân biệt các ánh xạ khi này chỉ bằng nhìn mục ảo bản thân, cho dù giải pháp tiềm năng bao gồm: flusing nơi dự trữ sau khi chuyển đổi ngữ cảnh, buộc khoảng trống địa chỉ không được chồng chéo, đánh dấu địa chỉ ảo với ID không gian địa chỉ (ASID), hoặc sử dụng thẻ vật lý. Ngoài ra, có vấn đề các ánh xạ ảo - đến - vật lý có thể thay đổi, nó sẽ đòi hỏi flusing dòng nơi dự trữ, như Vas sẽ không còn hợp lệ.

-Virtually indexed, physically tagged (VIPT) bộ nhớ caches sử dụng địa chỉ ảo cho mục và địa chỉ vật lý trong thẻ. Điểm lợi hơn PIPT là độ trễ, như dòng bộ nhớ cache có thể tìm kiếm song song với dịch thuật TLB, tuy nhiên thẻ không thể bị so sánh cho đến địa chỉ vật lý sẵn sàng. Điểm lợi hơn VIVT là do thẻ có địa chỉ vật lý, bộ nhớ cache có thể phát hiện từ đồng âm khác nghĩa. VIPT đòi hỏi nhiều các mẩu thẻ nhỏ, như mục các mẩu nhỏ không còn đại diện cho cùng địa chỉ.

-Physically indexed, virtually tagged (PIVT) Bộ nhớ caches chỉ là lý thuyết, nhưng so về cơ bản thì nó vô dụng. Cache với cấu trúc này sẽ chậm không kém gì PIPT, bị vấn đề răng cưa cùng một lúc như VIVT.  

Tốc độ của sự lặp lại (sự tiềm tàng vật nặng) là yếu tố quan trọng đến năng suất CPU, cho nên mức - 1 hiện đại nhất của bộ nhớ cache là mục ảo, cho phép tra cứu TLB của MMU để tiến hành song song với dữ liệu ở RAM của bộ nhớ Cache

Nhưng mục ảo không phải là lựa chọn tốt nhất với cho mọi cấp độ của cache. Chi phí của xử lý các phần răng cưa ảo phát triển cùng với kích cỡ cache, và do vậy kết quả cái mà  mức - 2 lớn hơn cache nhất là mục vật lý.. 

Bộ nhớ Caches có lịch sử là đã dùng cả bộ nhớ ảo lẫn bộ nhớ vật lý cho thẻ caches, mặc dù thẻ ảo bây giờ hiếm. Nếu tra cứu TLB có thể kết thúc trước tra cứu bộ nhớ RAM, sau đó địa chỉ vật lý sẵn sàng đúng lúc cho việc so sánh tag, và không cần thẻ ảo. Bộ nhớ lớn lớn, sau đó, có xu hướng trở nên thẻ vật lý, và nhỏ, nơi dự trữ sự tiềm tàng thấp rất gần như được gắn thẻ.CPU đa năng, thẻ ảo đã được thế chỗ bằng vhints, như đã mô tả bên dưới.

Vấn đề "đồng âm" và "đồng âm khác nghĩa"

Bộ nhớ cache nhận ra là chỉ mục ảo và thẻ ảo trở nên không phù hợp sau khi địa chỉ ảo giống hau được ánh xạ vào địa chỉ vật lý khác (từ đồng âm khác nghĩa). Điều này có thể được giải quyết bằng cách sử dụng địa chỉ vật lý cho thẻ hoặc bằng  việc lưu trữ ID không gian địa chỉ trong dòng bộ nhớ Cache

Tuy nhiên latter không giúp chống lại vấn đề từ đồng nghĩa, nơi vài dòng bộ nhớ dừng việc lưu trữ dữ liệu cho địa chỉ vật lý giống nhau. Viết những địa điểm có thể cập nhật chỉ một địa điểm trong nơi dự trữ, rời khỏi địa điểm đó với dữ liệu mâu thuẫn. Vấn đề này có thể là giải quyết bằng cách sử dụng máy bố cục trí nhớ chồng chéo cho khoảng trống địa chỉ khác hoặc nếu không thì bộ nhớ cache (hoặc một phần bộ nhớ) phải flushed khi thay đổi ánh xạ. 

Thẻ ảo và vhints

Lợi thế to lớn của thẻ ảo là, cho bộ nhớ cache kết hợp, chúng để trùng khớp thẻ tiến hành trước khi phiên dịch ảo thành vật lý hoàn thành. Tuy nhiên, gắn kết  nhằm thăm dò và sự trục xuất giới thiệu địa chỉ vật lý cho hành động. Phần cứng có một số các phương tiện của chuyển đổi địa chỉ vật lý vào chỉ mục bộ nhớ cache, nói chung lưu trữ thẻ vật lý cũng như thẻ ảo.

Đối với việc so sánh,  thẻ cache vật lý không cần giữ thẻ ảo, điều này đơn giản. Khi ánh xạ từ ảo sang vật lý bị xoá ra khỏi TLB, mục nhập bộ nhớ đệm với những địa chỉ ảo sẽ phải flushed sau đó. Còn bằng không thì, nếu mục nhập bộ nhớ đệm được phép trên trang không ánh xạ tới bằng TLB, sau đó mục đó sẽ phải flushed khi quyền truy cập trên trang đó được thay đổi trong bảng địa chỉ. 

Hệ điều hành cũng có thể bảo đảm rằng biệt danh ảo không cùng một lúc ở trong bộ nhớ cache. Hệ điều hành bảo đảm này bằng cách thực thi màu trang, thứ được mô tả ở dưới. Một số bộ xử lý RISC (SPARC, RS / 6000) lấy biện pháp này. Nó đã không được dùng gần đây, như chi phí phần cứng phát hiện và biệt danh ảo đã rơi xuống, độ phức tạp phần mềm và hình phạt hiệu năng của màu trang hoàn hảo đã tăng.

Có thể dễ dàng phân biệt hai chức năng của thẻ trong bộ nhớ cache kết hợp: chúng được dùng để xác định cách nào của việc lựa chọn, và chúng được dùng để xác định nếu dữ liệu được tìm thấy trên bộ nhớ đệm hoặc bộ nhớ lỡ. Chức năng thứ 2 luôn phải đúng, nhưng chức năng đầu tiên được phép đoán, và câu trả lời đôi khi sai thỉnh thoảng. 

Một số bộ xử lý (chẳng hạn như SPARCs) có bộ nhớ cache vừa thẻ ảo vừa thẻ vật lý. Thẻ ảo được dùng để lựa chọn cách, và thẻ vật lý được dùng để xác định kết quả hit or miss. Loại bộ nhớ cache này thích sự thuận lợi của độ trễ của bộ nhớ cache thẻ ảo, và giao diện phần mềm đơn giản của bộ nhớ cache thẻ vật lý. Nó tăng thêm chi phí của thẻ lặp lại, tuy nhiên. Hơn nữa, trong xử lý miss, cách thay thế để chỉ dòng bộ nhớ cache phải được thăm dò cho biệt danh ảo và bất kỳ sự trùng khớp.

Lĩnh vực thêm (và một số độ trễ) có thể được giảm nhẹ bằng cách giữ gợi ý ảo với mỗi mục nhập bộ nhớ đệm thay vì thẻ ảo. Gợi ý này là tập hợp con hoặc tập hợp băm của thẻ ảo, và được dùng để chọn một cách bộ nhớ cache từ đó để lấy dữ liệu và thẻ vật lý. 

Giống như bộ nhớ cache thẻ ảo, có thể có trùng khớp gợi ý ảo nhưng không khớp thẻ vật lý, nếu vậy mục nhập bộ nhớ đệm với gợi ý trùng khớp phải evicted sao cho truy cập bộ nhớ cache sau khi tô bộ nhớ cache tại địa chỉ này sẽ có trùng khớp chỉ một gợi ý. Từ khi gợi ý ảo có ít bit hơn là thẻ ảo phân biệt chúng với nhau, bộ nhớ cache ảo gợi ý gần như chịu thiệt hại nhiều nhưng không trúng xung đột hơn bộ nhớ cache thẻ ảo.

Có lẽ sự giảm tối thiểu của gợi ý ảo có thể được tìm thấy trong Pentium 4 (Willamette và Northwood lõi). Trong bộ xử lý này gợi ý ảo là hiệu quả với hai bit, và bộ nhớ cache được thiết lập bốn chiều kết hợp. Nói một cách hiệu quả, phần cứng duy trì phép hoán vị đơn giản từ địa chỉ ảo để bộ nhớ cache chỉ mục, sao cho bộ nhớ cho phép định content-addressable memory (CAM) là cần thiết để chọn đúng một trong bốn cách tìm nạp. 

👁️ 132 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**CPU cache** là bộ nhớ được dùng bởi bộ xử lý trung tâm của máy tính nhằm giảm thời gian truy cập dữ liệu trung bình từ bộ nhớ chính. Cache là một bộ nhớ
**CPU** viết tắt của chữ **_central processing unit_** (tiếng Anh), tạm dịch là **Bộ xử lý trung tâm**, là mạch điện tử thực hiện các câu lệnh của chương trình máy tính bằng cách thực
**CPU Intel** là các loại CPU do hãng Intel thiết kế và sản xuất. ## Lịch sử CPU Intel ### Bộ xử lý 4-bit 4004 là bộ vi xử lý đầu tiên được Intel giới
frame|Mô hình hoạt động bộ nhớ cache của máy tính Trong tin học, **cache** ( ) hoặc **bộ nhớ đệm** là một thành phần phần cứng hoặc phần mềm lưu trữ dữ liệu để các
️ THÔNG SỐ SẢN PHẨM: - Hãng sản xuất: Intel - Mã CPU: 10400F - Dòng CPU: Core i5 CometlakeLake - Socket: LGA1200 - Tốc độ: 2.9Ghz - Tốc độ Turbo tối đa: Up to
Đánh giá sản phẩm CPU Intel Core i9-12900KF (5.20GHz, 16 Nhân 24 Luồng, 30M Cache, Alder Lake) CPU Intel Core i9 12900KF là dòng CPU chất lượng đến từ thương hiệu Intel, tương tự như phiên bản Intel
Bộ vi xử lý CPU Intel i5 - 10400F ( 2.9GHz Turbo up to 4.3GHz , 6 Core , 12 Threads , 12MB Cache , 65W )   ARK | So sánh sản phẩm Intel
Đặc điểm nổi bật của CPU Intel Core i7-10700F (2.9GHz turbo up to 4.8GHz, 8 nhân 16 luồng, 16MB Cache, 65W) - Socket Intel LGA 1200 Intel Core i7-10700F – Mạnh mẽ thuần game Sở
- CPU Intel Xeon E3-1220 V6 thuộc dòng Xeon. Đối tượng hướng đến chính của dòng CPU này là các đối tượng các doanh nghiệp sử dụng các máy trạm để quản lý hoặc cá
Giới thiệu bộ vi xử lý/ CPU Intel Celeron G5905 (3.50GHz, 4M, 2 Cores 2 Threads) CPU intel Celeron G5905 với 2 nhân 2 luồng thuộc dòng Comet Lake và được sản xuất trên tiến trình
Bộ Vi Xử Lý CPU AMD Ryzen ATHLON 3000G - Hàng Chính Hãng AMD VN - Socket: AM4 - Tốc độ/ Cache: 3.5Ghz/ 5Mb - Số nhân/ Số luồng: 2 Core/ 4 Threads - VXL
Tổng quan Bộ Vi Xử Lý CPU Intel Core i5-3570 Processor (3.80Ghz, 6M) - Hàng Nhập Khẩu lõi tứ mới, một trong hai bộ xử lý mới thuộc dòng CPU Ivy Bridge 22nm mới của
THÔNG SỐ KỸ THUẬT Intel Core i3-10100 Processor (6M Cache, up to 4.30 GHz) Thiết yếu Bộ sưu tập sản phẩm Bộ xử lý Intel Core i3 thế hệ thứ 10 Tên mã Comet Lake
CPU Intel Core I3-12100 Box Chính Hãng (12MB Cache | LGA1700) CPU Intel Core i3-12100F là CPU thế hệ thứ 12 của Intel (Alder Lake) trên nền Socket LGA 1700 với kiến trúc hoàn toàn mới
Hiệu suất ở cấp độ mới CPU Intel Core i7-9700 (8C/8T, 3.00 GHz up to 4.70 GHz, 12MB) - 1151-V2 thế hệ thứ 9 đưa hiệu năng máy tính để bàn chính lên một cấp
THÔNG SỐ KỸ THUẬT Tên sản phẩm • CPU Intel Core i7-10700F (2.9GHz turbo up to 4.8GHz, 8 nhân 16 luồng, 16MB Cache, 65W) - Socket Intel LGA 1200 Model • Intel Core i7-10700F Xung nhịp • 
THÔNG SỐ KỸ THUẬT Sản phẩm CPU Hãng sản xuất Intel Model Pentium Gold G7400 Processor Socket LGA1700, BGA1700 Tốc độ cơ bản 3.70 GHz Cache 2.5 MB Nhân CPU 2 Nhân Luồng CPU 2 Luồng
THÔNG SỐ KỸ THUẬT : - Bộ xử lý: I5 12400 – Alder Lake - Bộ nhớ đệm: 18 MB Cache (Total L2 Cache: 7.5 MB) - Tần số cơ sở của bộ xử lý:
Số nhân xử lý 6 Số luồng xử lý 12 Tốc độ xử lý Xung cơ bản 3.5GHz, xung tối đa 4.4GHz Total L2 Cache:   3MB   Total L3 Cache:   32MB   Mở
Hãng sản xuất AMD Model AMD Ryzen 5 4600G Số nhân xử lý 6 Số luồng xử lý 12 Tốc độ xử lý Xung cơ bản 3.7GHz, xung tối đa 4.2GHz Total L2 Cache: 3MB
Số nhân xử lý 6 Số luồng xử lý 12 Tốc độ xử lý Xung cơ bản 3.6GHz, xung tối đa 4.1GHz Total L2 Cache:   3MB   Total L3 Cache:   8MB   Unlocked:
**CPU đa nhân**, **CPU đa lõi** (tiếng Anh: _multi-core_) là một CPU có nhiều đơn vị vi xử lý (thường được gọi là "core") được tích hợp và đóng gói trên cùng một nền mạch
CPU máy tính Intel Core I5 10400F 2.9Ghz ~ 4.3Ghz 6 Nhân 12 Luồng 12MB 65W SK 1200 chính hãng Thông số kĩ thuật - Thương hiệu: Intel - Xung nhịp: 2.9Ghz turbo 4.3Ghz -
Nhà sản xuất bộ xử lý CPU nổi tiếng Intel đã công bố các sản phẩm mớằm trong chuỗi sản phẩm Comet Lake thế hệ 10. Vì thuộc phân khúc tầm trung hướng đến nhiều
CPU Specifications - 6 - 12 - 2.10 GHz - 2.60 GHz - 15 MB Intel Smart Cache - 7.2 GT/s - 2 - 2.60 GHz - 80 W - 0.65–1.30V
Hiệu suất Số nhân: 4 Số luồng: 4 Tần số cơ sở của bộ xử lý: 3.00 GHz Tần số Turbo tối đa: 3.50 GHz Bộ nhớ cache: 8 MB SmartCache Tốc độ bus: 8 GT / s DMI3 TDP: 72
CPU Intel Core i7-12700F là bộ vi xử lý dành cho máy tính để bàn gồm 12 nhân, vừa ra mắt gần đây vào tháng 11 năm 2021. CPU Intel Core i7-12700F là một phần
Đánh giá chi tiết CPU Intel i7-11700F CPU Intel Core i7-11700F là bộ vi xử lý mới nhất từ nhà Intel thuộc dòng Comet Lake. Sở hữu những thông số ấn tượng cùng khả năng
Bộ vi xử lý Intel Core i7-12700K là CPU thế hệ thứ 12 của Intel sở hữu hiệu năng vượt trội, nâng cấp cấu hình dàn PC hiện tại của người dùng lên tầm cao
***** Asus Prime A320M-K ***** Sản phẩm Bo mạch chủ Model PRIME A320M-K Socket AM4 Hỗ trợ CPU AMD AM4 Socket for AMD Ryzen/7th Generation A-series/Athlon Processors Chipset AMD A320 Cạc đồ họa VGA onboard
Mô tả sản phẩm Đánh giá chi tiết Bộ vi xử lý/ CPU Intel Comet Lake Core i7-10700 Hiệu năng mạnh mẽ với tốc độ lên đến 4.8Ghz 8 nhân 16 luồng Có thể nói
- CPU Intel Core i5-12400 là CPU thế hệ thứ 12 của Intel (Alder Lake) trên nền Socket LGA 1700 với kiến trúc hoàn toàn mới cho hiệu năng vượt trội so với người tiền nhiệm.
Nâng cấp đáng giá  Bộ Vi Xử Lý CPU Intel Core i3-7350K Processor (4.20Ghz, 4M) - Hàng Chính Hãng sẽ tập trung rất nhiều vào khả năng xử lý đồ họa, đặc biệt là video
- CPU Intel Core i5-12600K là CPU thế hệ thứ 12 của Intel (Alder Lake) trên nền Socket LGA 1700 với kiến trúc hoàn toàn mới cho hiệu năng vượt trội so với người tiền
CPU Intel Core i7-12700KF là CPU thế hệ thứ 12 của Intel (Alder Lake) trên nền Socket LGA 1700 với kiến trúc hoàn toàn mới cho hiệu năng vượt trội so với người tiền nhiệm.
- CPU Intel Core i3-12100F là CPU thế hệ thứ 12 của Intel (Alder Lake) trên nền Socket LGA 1700 với kiến trúc hoàn toàn mới cho hiệu năng vượt trội so với người tiền nhiệm.
CPU Intel Core i9-12900KF là CPU thế hệ thứ 12 của Intel (Alder Lake) trên nền Socket LGA 1700 với kiến trúc hoàn toàn mới cho hiệu năng vượt trội so với người tiền nhiệm.
CPU Intel Core i9-12900K là CPU thế hệ thứ 12 của Intel (Alder Lake) trên nền Socket LGA 1700 với kiến trúc hoàn toàn mới cho hiệu năng vượt trội so với người tiền nhiệm.
Thông số sản phẩm - Socket: Intel LGA 1700 - Số nhân: 4 - Số luồng: 8 - Xung nhịp tối đa: 4.3 Ghz CPU Intel Core i3-12100F là CPU thế hệ thứ 12 của Intel
Siêu kinh tế với card đồ họa tích hợp Bộ Vi Xử Lý CPU AMD Ryzen Processors 3 3200G được tung ra thị trường được xem là những chiếc phao cứu sinh cho những game
Thông số sản phẩm - Socket LGA 1700 - Xung nhịp tối đa: 4.4Ghz - Số nhân: 6 - Số luồng: 12 - *Phiên bản F: Không có GPU tích hợp, cần sử dụng card
Tốc độ: 3.60 GHz up to 4.30 GHz Số nhân xử lý: 4 Số luồng xử lý: 8 Cache: 6MB Chip đồ họa: Intel UHD Graphics 630 Socket: FCLGA1200
Socket: Intel LGA 1700 Tốc độ cơ bản: 3.42 GHz Cache: 12 MB Nhân CPU: 4 NhânLuồng CPU: 8 Luồng
Socket: Intel LGA 1700 Tốc độ cơ bản: 3.42 GHz Cache: 12 MB Nhân CPU: 4 Nhân Luồng CPU: 8 Luồng
- Socket: LGA1200 - Tốc độ/ Cache: Up to 4.3Ghz/ 6Mb - Số nhân/ Số luồng: 4 Core/ 8 Threads - VXL đồ họa: Intel UHD Graphics 630 - Kiểu đóng gói: Box
Hiệu suất ở cấp độ mới Bộ xử lý i7-9700KF thế hệ thứ 9 đưa hiệu năng  để bàn lên một cấp độ hoàn toàn mới. i7-9700KF với bộ nhớ cache 12MB và công nghệ  Turbo Boost 2.0 điều
Model: Intel Core i5-13400 Socket: FCLGA1700 Tốc độ cơ bản: 3.3 GHz Cache: 20 MB Nhân CPU: 10 Nhân Luồng CPU: 16 Luồng
Thông số kỹ thuật  Dòng CPU: Ryzen thế hệ 3 Socket AM4 Kiến trúc : TSMC 7nm FinFET Số nhân : 4 ( Core ) Số luồng : 4 ( Thread ) Xung mặc định
Tình trạng: Mới 100% Xuất xứ: Chính hãng Đây là CPU i3 dòng F không có GPU Onboard, VERTICAL SEGMENT Desktop PROCESSOR NUMBER i3-10150F STATUS Launched LAUNCH DATE Q2’20 LITHOGRAPHY 14 nm USE CONDITIONS PC/Client/Tablet
Intel Celeron Processor G5900 - Bộ xử lý:  - Bộ nhớ đệm: 2 MB Cache - Tần số cơ sở của bộ xử lý: 3.40 GHz - Hỗ trợ socket: FCLGA1200 - Số lõi: 2,