
Trong bài viết trước, mình đã nói qua về cache và tầm quan trọng của nó đối với CPU. Bây giờ, chúng ta sẽ tìm hiểu lý do tại sao công nghệ 3D V-Cache lại đặc biệt khi xét đến yếu tố chơi game (không phải là 100%, nhưng chiếm phần lớn).
Trước đó mình đã chỉ ra rằng, thực tế hầu hết các ứng dụng (ngoại trừ vài trường hợp đặc biệt) đều có thể tận dụng được lợi ích từ một bộ cache lớn. AMD cũng đã phát hành phiên bản "full" X3D dành cho server (Genoa-X) và rõ ràng không ai mua chip server để chơi game. Nhưng tại sao game lại là nơi X3D tỏa sáng nhất?
Trước hết, cần làm rõ một quan điểm: game mà chúng ta nói đến là game 3D, nơi mà FPS là yếu tố quyết định. Mặc dù có một số game không phải 3D (ví dụ như cờ vua), nhưng trong bài này chúng ta chỉ nói về game 3D. Và điều mà mọi game thủ mong muốn sau khi cài đặt game 3D là gì? Hình ảnh phải mượt mà, ít nhất là 30 fps, tốt hơn thì 60 fps, hoặc cao hơn nữa là 120 fps, 144 fps, và nhiều hơn nữa...
Đương nhiên, phần lớn hiệu suất này là do GPU quyết định (xử lý đồ họa), nhưng CPU cũng đóng vai trò quan trọng trong việc tính toán đối tượng, AI, NPC, sự kiện, và vật lý (không kể đến PhysX)... Lượng NPC càng nhiều thì CPU càng cần phải mạnh, số lượng tương tác đối tượng càng nhiều thì CPU càng phải xử lý. Mình sẽ dùng Starfield làm ví dụ, một game có nhiều yếu tố trọng lực và rất nhiều đối tượng tương tác.
Tại sao X3D lại vượt trội khi chơi game?
Trước đó mình đã chỉ ra rằng, thực tế hầu hết các ứng dụng (ngoại trừ vài trường hợp đặc biệt) đều có thể tận dụng được lợi ích từ một bộ cache lớn. AMD cũng đã phát hành phiên bản "full" X3D dành cho server (Genoa-X) và rõ ràng không ai mua chip server để chơi game. Nhưng tại sao game lại là nơi X3D tỏa sáng nhất?
Trước hết, cần làm rõ một quan điểm: game mà chúng ta nói đến là game 3D, nơi mà FPS là yếu tố quyết định. Mặc dù có một số game không phải 3D (ví dụ như cờ vua), nhưng trong bài này chúng ta chỉ nói về game 3D. Và điều mà mọi game thủ mong muốn sau khi cài đặt game 3D là gì? Hình ảnh phải mượt mà, ít nhất là 30 fps, tốt hơn thì 60 fps, hoặc cao hơn nữa là 120 fps, 144 fps, và nhiều hơn nữa...
Đương nhiên, phần lớn hiệu suất này là do GPU quyết định (xử lý đồ họa), nhưng CPU cũng đóng vai trò quan trọng trong việc tính toán đối tượng, AI, NPC, sự kiện, và vật lý (không kể đến PhysX)... Lượng NPC càng nhiều thì CPU càng cần phải mạnh, số lượng tương tác đối tượng càng nhiều thì CPU càng phải xử lý. Mình sẽ dùng Starfield làm ví dụ, một game có nhiều yếu tố trọng lực và rất nhiều đối tượng tương tác.



Những vật thể lơ lửng trong Starfield. Người chơi có thể tương tác với tất cả các vật thể này và CPU sẽ chịu trách nhiệm xử lý. Dữ liệu phát sinh từ các tương tác này sẽ được truy cập nhanh hơn nhờ vào bộ cache lớn hơn.
Như bạn đã biết, mức độ "thực tế" trong game tỉ lệ thuận với số lượng vật thể và hiệu ứng mà người chơi có thể tác động đến. Số lượng tương tác càng lớn, số lượng meta data sinh ra càng nhiều. Và điều quan trọng là những meta data này không có sẵn mà được sinh ra từ hành động của game thủ hoặc sự kiện trong game. Trong môi trường trọng lực bình thường, mọi vật thể sẽ rơi xuống, nhưng khi vào không trọng lực, tất cả đều lơ lửng và Starfield cho phép người chơi tương tác với tất cả những vật thể này. Điều này tạo ra các meta data mới, ví dụ như một vật thể từ khoang A có thể bị di chuyển sang khoang B bởi tác động của game thủ, và khi trọng lực quay lại, vật thể đó sẽ không còn ở vị trí cũ.
Vậy ai là người xử lý tất cả những vấn đề này? Chính là CPU. Nếu CPU không đủ mạnh để xử lý các sự kiện kịp thời thì sao? Thông tin sẽ được gửi chậm tới GPU. Khi GPU nhận thông tin muộn, nó sẽ xử lý hình ảnh chậm và trong những trường hợp hiếm hoi, hình ảnh render có thể không đúng với kết quả thực tế (ví dụ như bạn bắn nổ bình xăng làm cháy kẻ địch nhưng GPU chưa nhận được thông tin để render kẻ địch bị cháy).
Đương nhiên, trong mỗi hệ thống sẽ có một thành phần "nghẽn cổ chai". Thường khi chơi game với độ phân giải thấp, CPU sẽ là yếu tố nghẽn, nhưng khi xuất hình ảnh với độ phân giải cao, yêu cầu về bóng đổ, ray tracing, blurring, slo-mo... thì GPU mới là yếu tố nghẽn. Vì vậy, khi nói đến CPU tốt nhất cho game, bạn cần hiểu rằng đó là CPU giúp xử lý các yếu tố không liên quan đến đồ họa tốt nhất, chứ không phải là một CPU yếu mà lại yêu cầu GPU chạy 4K @ 120 fps.


Khi độ phân giải thấp, sự chênh lệch giữa fps cao nhất và thấp nhất có thể lên đến 60%. Tuy nhiên, khi nâng độ phân giải, việc xử lý chuyển dần từ CPU sang GPU.
Cần phải nhấn mạnh thêm về đối tượng người dùng trong game. Mặc dù game cũng là một ứng dụng như bao phần mềm khác, nhưng điểm khác biệt lớn là người chơi luôn tương tác và điều khiển trực tiếp với nó/CPU. Điều này hoàn toàn khác với những ứng dụng như render bản vẽ CAD, encode video hay giải nén file RAR/ZIP, nơi người dùng có thể để chúng chạy tự động và làm việc khác. Còn với game, nếu không mượt mà, trải nghiệm sẽ trở nên tồi tệ ngay lập tức.

X3D không chỉ có ích cho game. Những ứng dụng yêu cầu xử lý dữ liệu lớn cũng có thể tận dụng bộ nhớ cache khổng lồ. Tuy nhiên, việc đạt được trải nghiệm game mượt mà lại khó khăn khi áp dụng cho các công việc khác.
Tại đây, bạn có thể hiểu tại sao bộ nhớ cache lớn lại mang lại hiệu quả (dù không phải lúc nào cũng vậy, nhưng phần lớn là thế). Nhưng dù lý thuyết ai cũng biết, việc đưa lý thuyết này vào thực tế lại là một câu chuyện khác. Các công ty sản xuất chip đều hiểu vấn đề này, nhưng cách thức để triển khai chúng trong sản phẩm lại là thử thách lớn. Chắc chắn ai cũng đã từng nghe câu “nói thì dễ, làm thì khó”.
Như tôi đã chia sẻ, cấu trúc SRAM không quá phức tạp, bởi trong suốt hàng chục năm qua nó không thay đổi nhiều. Tuy nhiên, điểm yếu lớn nhất là SRAM tiêu tốn rất nhiều transistor (T) để sản xuất. Một loại SRAM phổ biến hiện nay cần đến 6 transistor chỉ để lưu trữ 1 bit dữ liệu, trong khi đó bộ nhớ DRAM chỉ cần 1 transistor và 1 tụ điện để thực hiện điều tương tự. Dĩ nhiên, vẫn có những loại SRAM tiêu tốn ít hoặc nhiều transistor hơn 6T, nhưng vì chúng ít được sử dụng nên không cần phải bàn thêm.
Sự suy tàn của SRAM
Hao tổn transistor/silicon chỉ là một phần vấn đề, một vấn đề khác quan trọng hơn là trong những năm gần đây, việc thu nhỏ tế bào SRAM trở nên ngày càng khó khăn. Mặc dù các mạch logic như CPU, GPU, DSP... thu nhỏ khá tốt qua các tiến trình bán dẫn, nhưng bộ nhớ lại không phát triển được như vậy. Thực tế cho thấy không chỉ SRAM mà cả DRAM và NAND cũng không có sự cải tiến đáng kể về mật độ dữ liệu như trước đây. Nếu để ý, bạn sẽ thấy các tiến trình sản xuất DRAM/NAND hiện đại nhất vẫn chỉ ở mức 10 nm hoặc lớn hơn.

So sánh kích thước SRAM của các hãng qua các năm (TSMC màu cam). Dù có giảm kích thước thật, sự chênh lệch ngày càng nhỏ. Đặc biệt, TSMC N3P có kích thước không khác gì TSMC N5!
Tại hội nghị IEDM 2022, TSMC đã gây sốc cho ngành bán dẫn khi công bố kích thước tế bào SRAM của tiến trình N3. Mặc dù mật độ mạch logic của N3 cao gấp 1.6 lần N5, mật độ SRAM chỉ tăng vỏn vẹn 5% (35 so với 31.8 Mb/mm^2). Thậm chí, phiên bản N3E (nâng cấp của N3) có mật độ SRAM chỉ bằng N5 (31.8 Mb/mm^2). Điều này có nghĩa là một bộ nhớ 32 MB SRAM ở N5 không có sự thay đổi khi chuyển sang N3E!
Tin vui là trong thông tin mới nhất về tiến trình N2, dự kiến sản xuất vào nửa cuối 2025, TSMC cho biết mật độ SRAM sẽ tăng mạnh lên 38 Mb/mm^2. Tuy nhiên, thành tựu này có được nhờ N2 chuyển sang cấu trúc GAAFET nhỏ gọn hơn FinFET. Nhưng GAAFET không phải là giải pháp vĩnh cửu, thực tế là việc thu nhỏ transistor ngày càng gặp khó khăn. Vì vậy, trong tương lai xa, việc mật độ SRAM “dậm chân tại chỗ” vẫn là một nỗi lo cho các công ty thiết kế chip.

Một thiết kế chip giả định với 10 tỷ transistor dựa trên 3 tiến trình N6, N5 và N3. Chúng ta có thể thấy phần SRAM ngày càng chiếm tỉ lệ lớn hơn qua từng tiến trình.
Tất nhiên, TSMC không phải là công ty duy nhất sản xuất chip bán dẫn. Tuy nhiên, khi Intel và Samsung vẫn đang cố gắng đuổi kịp TSMC, điều này khiến tương lai của ngành công nghệ trở nên khá mờ mịt. Hiện tượng này có nghĩa là để tăng số nhân xử lý (mạch logic) cho các chip tương lai, các công ty thiết kế chip sẽ phải cân nhắc liệu có cần tăng kích thước die chip (để giữ dung lượng cache/nhân) hoặc giảm bớt dung lượng cache/nhân (để không làm die chip quá lớn). Đây thực sự là một bài toán khó!
Điều này lý giải vì sao mặc dù chip WSE-3 của Cerebras có tới 4000 tỷ transistor N5, nhưng số nhân và SRAM của nó chỉ tăng không đáng kể so với phiên bản WSE-2 ra mắt trước đó với 2600 tỷ transistor N7 (900,000 vs. 850,000 nhân và 44 GB vs. 40 GB SRAM), vì phần lớn số transistor thêm vào chủ yếu để “mở rộng” SRAM.

Kích thước của bộ nhớ cache đang dần trở thành vấn đề đáng lo ngại đối với nhiều công ty sản xuất chip, như AMD.
Chia nhỏ để tối ưu
Để giải quyết vấn đề thu nhỏ SRAM, các kỹ sư trong ngành bán dẫn đã bắt đầu tìm kiếm những giải pháp khác nhau. Một trong số đó là thiết kế các die chip riêng biệt (MCM hoặc chiplet). Thực tế, đây không phải là một khái niệm mới mẻ, vì các con chip như POWER7 của IBM, PlayStation 2 của Sony hay Haswell của Intel đều sử dụng các die nhớ ngoài CPU. Tuy nhiên, khác biệt là thay vì sử dụng SRAM, chúng lại dùng DRAM (hoặc eDRAM).
Mục đích nhắc đến những ví dụ này không phải để nói rằng AMD sẽ sao chép hoàn toàn, mà là để chỉ ra rằng về mặt ý tưởng, SRAM có thể không nhất thiết phải nằm cùng die với CPU.

AMD 3D V-Cache "thế hệ đầu" với die X3D gắn trên die CCD
Như đã đề cập, các mạch SRAM và mạch logic đang dần tách biệt. Sự khác biệt về khả năng thu nhỏ kích thước giữa chúng đã khiến SRAM chiếm nhiều diện tích hơn, và nếu xu hướng này tiếp tục, sẽ có lúc phần lớn diện tích chip sẽ chỉ chứa SRAM. Nói cách khác, hiệu năng của các con chip trong tương lai sẽ chỉ tăng lên một cách từ từ, vì các công ty không thể nhồi nhét thêm nhiều nhân xử lý khi diện tích silicon hạn chế.
Vì vậy, SRAM sẽ phải “ra đi”. Hoặc nói đúng hơn, một phần SRAM (chứ không phải toàn bộ) sẽ không còn nằm chung với die CPU nữa.
Một giải pháp mới về SRAM xuất hiện – chúng có thể được sản xuất trên các tiến trình cũ hơn nếu việc thay đổi node bán dẫn không mang lại hiệu quả (với SRAM). Các tiến trình cũ thường mang lại hiệu suất tốt hơn với chi phí rẻ hơn so với các tiến trình mới. Như vậy, tổng chi phí sẽ thấp hơn so với việc phải gắn hết SRAM và mạch logic vào một die chip sử dụng tiến trình mới nhất.
Tuy nhiên, chỉ “cắt giảm” thôi chưa đủ. Các công ty khác cũng đã áp dụng giải pháp tương tự với SRAM, không chỉ riêng với DRAM. Vậy lý do là gì?

Việc thêm eDRAM vào là tốt, nhưng vẫn chưa đủ để giảm độ trễ khi sử dụng thiết kế chiplet 2D
Vấn đề nằm ở khoảng cách. Hãy nhớ lại ví dụ về nhà máy đã đề cập. Nếu DRAM giống như một kho hàng ở cảng cách xa vài km, thì SRAM là những pallet chỉ cách xưởng sản xuất vài mét hoặc vài chục mét. Nếu SRAM cũng nằm trên một die riêng biệt như eDRAM, lợi ích sẽ giảm đi vì khoảng cách quá lớn khiến độ trễ tăng cao. Nói cách khác, dù có là die riêng biệt, yêu cầu vẫn là độ trễ cực kỳ thấp – hai die phải giống như một die duy nhất! Làm sao để giải quyết vấn đề này???
Tìm hiểu công nghệ AMD 3D V-Cache - Phần 3: Từ cấp 4 lên nhà cao tầng
