Unified Memory là một kiến trúc mới xuất hiện trong các máy tính sử dụng chip Apple Silicon, bao gồm M1, M1 Pro, M1 Max. Nó giúp cải thiện tốc độ xử lý như thế nào? CPU, GPU có thể truy cập bộ nhớ nhanh hơn ra sao?
Khi máy tính hoạt động, nó sẽ cần tính toán. Mọi thứ bạn thấy, bạn click, bạn tương tác trên máy tính thực chất đều do bộ xử lý tính toán ra. Và để tính toán được thì phải có dữ liệu đầu vào, tính xong phải có chỗ chứa kết quả của phép tính, ngoài ra CPU cũng phải biết thực hiện phép tính đó như thế nào (instruction). Đó là lúc người ta cần đến bộ nhớ.
Bộ nhớ trong máy tính thì có nhiều loại: ngay trong CPU thì có register, rồi có cách thể loại cache tốc độ cao, rồi có RAM, rồi có ổ SSD / HDD để lưu trữ dài hạn. Tốc độ của các loại bộ nhớ giảm dần theo thứ tự mình liệt kê ở đây, nhưng theo đó giá thành cũng thấp hơn và dung lượng thì tăng lên. Nếu dữ liệu mà CPU cần tính toán không có trong register, nó sẽ kiếm ở cache, nếu cache không có thì tìm tiếp ở RAM, RAM không có thì đi xuống SSD / HDD để lấy.
RAM có vai trò gì trong máy tính của bạn?
Khi máy tính hoạt động, nó sẽ cần tính toán. Mọi thứ bạn thấy, bạn click, bạn tương tác trên máy tính thực chất đều do bộ xử lý tính toán ra. Và để tính toán được thì phải có dữ liệu đầu vào, tính xong phải có chỗ chứa kết quả của phép tính, ngoài ra CPU cũng phải biết thực hiện phép tính đó như thế nào (instruction). Đó là lúc người ta cần đến bộ nhớ.
Bộ nhớ trong máy tính thì có nhiều loại: ngay trong CPU thì có register, rồi có cách thể loại cache tốc độ cao, rồi có RAM, rồi có ổ SSD / HDD để lưu trữ dài hạn. Tốc độ của các loại bộ nhớ giảm dần theo thứ tự mình liệt kê ở đây, nhưng theo đó giá thành cũng thấp hơn và dung lượng thì tăng lên. Nếu dữ liệu mà CPU cần tính toán không có trong register, nó sẽ kiếm ở cache, nếu cache không có thì tìm tiếp ở RAM, RAM không có thì đi xuống SSD / HDD để lấy.
Cứ mỗi bước tìm kiếm như vậy thì sẽ chậm đi, nên nếu dữ liệu có sẵn càng nhiều, càng đúng cái CPU cần thì tốc độ xử lý sẽ tăng lên do giảm được độ trễ của việc tìm dữ liệu. Tạm bỏ qua register, cache, chúng ta chỉ tập trung nói về RAM trong khuôn khổ bài viết này.
RAM càng ngày càng nhanh hơn là để nó có thể nói chuyện được với bộ xử lý nhanh chóng hơn, và dung lượng RAM cũng to ra để có thể chứa được nhiều dữ liệu hơn.
RAM trong máy tính truyền thống
Trong nhiều chiếc máy tính hiện nay, cả laptop và desktop, RAM là một thanh rời được gắn vào một khe trên bo mạch chủ. Trên thanh RAM này có hàng loạt những con chip nhớ gọi là DRAM. Dung lượng của thanh RAM chính là tổng dung lượng của những con chip này cộng lại.
Một số dòng laptop mỏng nhẹ, cao cấp, và hiện đại thì không dùng thanh RAM rời. Thay vào đó nhà sản xuất hàn chết chip DRAM lên bo mạch để tăng tốc độ truy xuất, giúp cho máy mỏng hơn, giảm số lượng linh kiện. RAM hàn chết thường gặp ở những con MacBook, các dòng laptop Ultrabook siêu mỏng nhẹ.
RAM trong máy Apple Silicon
Còn với các máy tính chạy Apple Silicon (M1, M1 Pro, M1 Max), Apple đưa chip DRAM này lên chung 1 gói với SoC luôn chứ không nằm riêng bên ngoài bo mạch. Cấu trúc của con chip nhìn giống y như hình bên dưới, trong đó hai miếng bên phải chính là chip DRAM, còn ở giữa là cụm CPU - GPU - NPU và nhiều thành phần khác của SoC.

Lợi ích của việc mang DRAM lên trực tiếp lên đế chip SoC đó là tốc độ giao tiếp của RAM với CPU / GPU sẽ nhanh hơn nhiều so với việc nằm riêng (cả ở dạng thanh RAM hay RAM hàn lên mainboard truyền thống). Và quan trọng hơn, RAM giờ đây là một “quỹ chung” có thể được chia sẻ và sử dụng bởi cả CPU, GPU và mọi thành phần trong chip.
Quảng cáo
Đây chính là kiến trúc mà Apple gọi là “Unified Memory Architecture” (UMA). Lợi ích của UMA đó là khi một thành phần nào cần bộ nhớ nhiều hơn, nó có thể truy xuất thêm phần mà nó cần. Ví dụ, khi GPU cần thêm bộ nhớ, nó có thể lấy bộ nhớ từ “quỹ chung” này. Có khi lúc đó CPU chỉ đang xử lý việc nhẹ nhàng thôi, quỹ còn thừa nhiều thì GPU có thể lấy thoải mái. Hay nếu như nhân AI cần thêm bộ nhớ, nó có thể chui vô quỹ và lấy ra.
Còn với mô hình RAM truyền thống, CPU, GPU sẽ được phân bổ trước một phần bộ nhớ cố định, hết thì thôi, chịu, không được đi qua lấy của thằng khác. Các GPU tích hợp trước đây cũng hoạt động theo cách này, tức là GPU tích hợp được phân bổ một lượng RAM cố định và bạn có thể thiết lập con số đó trong Windows, còn xài hết thì thôi, không được lấn lướt.
Nhưng chưa hết, cái tuyệt với nhất của UMA đó là dữ liệu đã nằm trong RAM thì có thể được truy cập bởi cả CPU, GPU và những linh kiện khác, máy tính không cần phải copy dữ liệu qua lại giữa các RAM riêng như xưa. Việc này tăng tốc đáng kể cho các tác vụ nặng.

Để bạn thấy được sự quan trọng của việc không cần phải copy qua lại dữ liệu, mình sẽ lấy ví dụ của game vì game là một tác vụ mà cả CPU và GPU đều phải chạy nặng.
Trong mô hình truyền thống, CPU sẽ nhận tất cả các lệnh xử lý cũng như dữ liệu cần thiết rồi sau đó chuyển những thứ liên quan đến đồ họa cho GPU. Khi đó, các instruction và dữ liệu cần thiết để GPU làm việc sẽ phải được copy từ RAM của CPU sang vRAM của GPU. Một khi GPU đã hoàn thành xong tác vụ, nó phải báo CPU biết là “tao đã xong” và dữ liệu lại một lần nữa phải được chuyển về cho CPU xử lý tiếp, tức là thêm một lần copy nữa về lại RAM.
Quảng cáo

UMA loại bỏ được khâu copy qua lại này, vì CPU và GPU giờ có thể truy cập cùng 1 chỗ. Khi CPU cần đến GPU, nó chỉ cần nói cho GPU biết rằng dữ liệu mà mày đang cần nằm ở vị trí xxx kìa. Khi GPU hoàn thành công việc, nó cũng chỉ cần nói cho CPU biết rằng kết quả nằm ở ô yyyy kìa, mày vô lấy đi. Xong.
RAM trên Apple Silicon cũng là loại có băng thông cực lớn
Không chỉ có kiến trúc mới, mà RAM trên các con chip M1, M1 Pro, M1 Max cũng là loại có băng thông lớn và độ trễ thấp. Việc này càng giúp đẩy nhanh tốc độ truy cập RAM của các thành phần máy tính. Con chip M1 có băng thông RAM là 68.25 GB/s, M1 Pro là 200 GB/s và M1 Max là 400 GB/s.
Để các bạn dễ so sánh thì băng thông RAM tối đa mà một con chip Intel Core X-Series có thể đạt được chỉ là 94 GB/s mà thôi, mà đây lại là dòng chip khủng bố, mạnh mẽ của Intel rồi. Còn với GPU RTX 3080 Ti của NVIDIA, băng thông của vRAM có thể đạt được mức 912.4 GB/s.

Bên trên là hình ảnh của con chip Apple M1 Pro. Các bạn thấy là ngoài phần chính to hơn, hai chip RAM cũng to hơn với dung lượng lớn hơn và băng thông lớn hơn.
Apple không phải công ty đầu tiên dùng UMA
Trước Apple, NVIDIA cũng đã từng ra mắt một giải pháp gọi là Unified Memory khoảng 6-7 năm trước. Ở mức phần mềm, Unified Memory cũng là một vị trí chung mà CPU và GPU có thể cùng truy cập dữ liệu, giảm thiểu việc copy dữ liệu giữa hai bộ xử lý quan trọng này. NVIDIA tạo ra một không gian địa chỉ ảo để CPU và GPU có thể cùng hiểu và sử dụng.
Nhưng ở mức phần cứng thì thực ra giải pháp này chứa data trên các khu vực riêng biệt của bộ nhớ CPU và GPU. Trong khi đó, Apple Silicon thì không dùng không gian địa chỉ ảo và họ xài hàng thật luôn.

Gần đây AMD cũng giới thiệu công nghệ Smart Access Memory. Khi sử dụng các CPU dòng Ryzen 5000 chung với GPU Radeon RX 6000 Series, CPU có thể tận dụng 100% bộ nhớ của GPU để tăng hiệu năng chơi game. Trước đó CPU chỉ được cho phép truy cập một phần nhỏ bộ nhớ của GPU mà thôi. Mô hình này không hẳn là unified, nhưng nó cũng giải quyết cùng bài toán. Còn từ năm 2014, AMD đã tạo ra các mô hình để CPU và GPU có thể truy cập cùng dữ liệu trên cùng 1 loại RAM mà không làm mất đi tính thống nhất của dữ liệu.
Tham khảo: HowToGeek, AnandTech, AMD