kiến thức Ryzen 3000, RAM speed, timing & Infinity Fabric

troll159753

Senior Member
Tại sao lại khuyến khích dùng RAM bus cao với Ryzen? Mối quan hệ giữa RAM, CPU, Infinity Fabaric là gì? Bài viết này sẽ cố gắng giải đáp câu hỏi trên.

Nội dung tóm tắt:

Cơ chế hoạt động:
- Các CPU core, bộ khiển nhớ (memory controller), các thiết bị ngoại vi khác,... được kết nối với nhau nhờ Infinity Fabric như cách hệ thống giao thông kết nối một thành phố. Xung Infinity fabric (FCLK) càng cao thì tốc độ truyền nhận dữ liệu bên trong CPU càng cao nhưng cũng có thể dẫn đến khả năng giao tiếp bị chậm lại do mất đồng bộ về thời điểm truyền tin giữa các bộ phận.

- Nếu Infinity Fabric chạy quá chậm thì tốc độ truyền tin thấp, hoặc tuy nhanh nhưng chưa đủ nhanh thì các bộ phận khác trong CPU sẽ bị lỡ mất thời điểm truyền dữ liệu tới nhau (nhất là giữa CPU Core với Memory Controller). Mặc định là xung Infinity Fabric = xung bộ khiển nhớ (FCLK = UCLK) để đảm bảo tính đồng bộ.

- Max FCLK của mỗi con CPU sẽ khác nhau. Cao nhất thường thấy là 1900MHz, trường hợp hiếm là 1933MHz. Những con chip dòng cao như Ryzen 7 hoặc 9 do chip thuộc hàng binning tốt nên thường có thể lên FCLK cao hơn các con CPU dòng Ryzen 3 hoặc 5 . Đồng nghĩa với việc có khả năng chạy RAM nhanh mà vẫn đảm việc truyền dữ liệu không bị mất đồng bộ.

- RAM có 2 thứ quan trọng nhất cần lưu ý là xung nhịp RAM (RAM Frequency) và độ trễ truy xuất (Cas Latency). RAM Frequency ảnh hưởng đến số lần truyền dữ liệu giữa CPU<->RAM (băng thông) trong khi Cas Latency là khoản thời gian chờ đợi trong việc đáp ứng các yêu cầu truy xuất. Cas Latency càng thấp thì tần suất xử lý yêu cầu truy xuất càng cao.

  • Tần suất yêu cầu truy xuất thấp nhưng gói dữ liệu lớn thì RAM Frequency cao sẽ ảnh hưởng hiệu năng nhiều nhất (xét về băng thông), Cas Latency ít ảnh hưởng hơn.
  • Tần suất yêu cầu truy xuất cao nhưng gói dữ liệu nhỏ thì Cas Latency thấp sẽ giúp tăng hiệu năng tốt nhất chứ không phải RAM Frequency.

Áp dụng lên thực tế:
- Nói về các ứng dụng thiên về tính toán mà ít đưa ra các yêu cầu truy xuất dữ liệu nhiều như việc Render thì không bị ảnh hưởng lắm bởi Infinity Fabric, RAM speed, timing, latency. Chủ yếu bị ảnh hưởng bởi xung CPU. Thím nào mua về chỉ render có thể dùng RAM bus thấp (MT/s = 2133~2666) mà công việc cũng không bị ảnh hưởng mấy. Nói vậy thôi bèo lắm cũng nên mua RAM 2666 tại 2133 với 2400 là quá chậm rồi, tiền không hơn bao nhiêu.

- Game là ứng dụng hay đưa ra các yêu cầu truy xuất dữ liệu, có thể gói dữ liệu không lớn nhưng tần suất yêu cầu thường khá cao. Tùy game mà thích độ trễ thấp hơn là băng thông cao hoặc là thích cả hai. Nếu máy dùng để chơi game thì nên chú trọng dùng RAM bus cao (MT/s = 3000~3800), Cas Latency thấp và tự chỉnh lại timing bằng DRAM calculator for Ryzen để giảm độ trễ hết mức có thể (dùng Thaiphoon để biết RAM chip gì - đọc thêm về OC DDR4 tại đây).

- Chơi game thì RAM 3200 thấy hợp với túi tiền nhất, hiệu năng so với 3600/3800 không kém mấy trừ phi có card VGA khủng như 2080ti. Nếu đang có RAM bus thấp thì nên siết lại timing và tăng FCLK (1900MHz trở xuống) để giảm độ trễ và tăng tốc độ truyền nhận dữ liệu trong CPU.

- iGPU của APU rất cần băng thông, nên chú trọng mua RAM bus cao và tự chỉnh timing sẽ đưa ra kết quả tốt nhất.

- Thím nào có ý định chạy RAM từ 3866 trở lên thì khuyên nên tự chỉnh FCLK cho mức cao nhất mà con chip có thể chịu được để giảm độ trễ. Bởi từ RAM 3866 trở lên thì xung bộ khiển nhớ (UCLK) sẽ không đồng bộ với RAM Frequency nữa mà chạy ở mức 1 : 2. Tức UCLK chỉ bằng 1/2 RAM Frequency. Đồng bộ FCLK với UCLK lúc này có thể không đáng nữa bởi vì UCLK hiện đang rất thấp.

Nội dung chi tiết:
Tính toán
Khả nảng tính toán của CPU thì phụ thuộc vào kiến trúc và xung nhịp CPU là chủ yếu. 2 con CPU cùng chung một kiến trúc thì con nào xung cao hơn sẽ có khả năng tính toán cao hơn. Tuy nhiên sau khi tính toán đưa ra kết quả thì CPU bắt buộc phải ghi vào RAM, và để đưa lệnh và dữ liệu cho CPU cũng bắt buộc phải được đọc từ RAM.
RAM bus cao và timing thấp sẽ tăng khả năng truy xuất dữ liệu cho CPU. Nếu phần mềm các thím sử dụng nhạy cảm với khả năng truy xuất dữ liệu thì RAM bus cao cùng độ trễ thấp sẽ giúp tăng hiệu năng của phần mềm ấy.

Memory Controller (Bộ khiển nhớ)
Bộ phận đảm nhiệm việc làm cầu nối giữa CPU<->RAM. Cái này hay được gọi là con chip cầu bắc hoặc NB(Northbridge) tại hồi xưa con chip này là riêng biệt và nằm trên mainboard và ở gần CPU và phía trên con Chipset(SB-Southbridge). Dần dần thì AMD và Intel tích hợp con chip này vào luôn CPU. Hiện tại thì AMD đặt tên bộ phận này là "Unified Memory Controller" với tên gọi xung nhịp là (UCLK).

Ram Frequency

Xung nhịp của RAM (MEMCLK), RAM đang dùng từ đời DDR, DDR2, DDR3, DDR4 là Double Data Rate thay vì Single Data Rate tức với mỗi nhịp của chip nhớ (memory chip) thì sẽ truyền dữ liệu được 2 lần thay vì 1 lần. Ví dụ DDR4 với RAM Frequency (MEMCLK) = 1600 MHz sẽ có MT/s = 3200 tức 3,200,000,000 lần truyền dữ liệu/giây với mỗi lần truyền được 64bit (do độ rộng băng thông của một channel là 64bit). Đây là lý do tại sao người ta thường khuyến khích chạy 2 cây RAM (Dual Channel) thay vì 1 cây RAM (Single Channel), bởi Bus Width (độ rộng băng thông) của Dual Channel = 128bit so với Single Channel = 64bit.

Infinity Fabric
Bộ phận được giới thiệu từ thế hệ Zen đầu tiên, đảm nhiệm việc liên lạc giữa các CPU die với nhau và xung nhịp được đồng bộ (Sync) với Memory controller, là cầu nối truy xuất dữ liệu giữa Core<->Core, CPU<->RAM và CPU<-> các linh kiện khác như keyboard, mouse. Ở Ryzen 1000, 2000 thì nó chỉ nằm trên CPU die, sang Ryzen 3000 thì AMD dành thêm một die riêng cho bộ phận này, gọi là IO die.

5FDOGw7.jpg

Phần khoanh tròn là IO die

CG5jAAZ.jpg

Cơ cấu hoạt động của Infinity Fabric

YpzlMhv.jpg

Đối với APU thì Infinity Fabric còn là mối liên kết giữa CPU và iGPU

Etl7QvC.jpg

Infinity Fabric đối với các Threadripper đời 2000 (tương tự với đời 1000)

Infinity Fabric đảm nhiệm phần truy xuất/liên kết nên "xung Infinity fabric"(FCLK) cao đồng nghĩa với việc độ trễ truy xuất thấp.

FCLK vs UCLK vs MEMCLK
Đời Zen và Zen+
(Ryzen 1000/2000 tính luôn cả APU 3200G/3400G) thì tỷ lệ mặc định FCLK : UCLK = MEMCLK, tức xung nhịp RAM bao nhiêu thì xung nhịp bộ khiển nhớ cũng bấy nhiêu. Và vì xung nhịp Infinity Fabric (FCLK)= xung nhịp bộ khiển nhớ (UCLK) nên xung nhịp RAM (MEMCLK) càng cao bao nhiêu thì xung nhịp Infinity Fabric cũng cao bấy nhiêu. Điều này dẫn tới việc tăng tốc độ truyền tải dữ liệu và cũng giảm độ trễ trong giao tiếp giữa core với core, die với die và CPU với RAM.

Khuyến khích chạy RAM bus cao từ đời Ryzen 1000 cũng vì lý do trên, không phải chỉ để tăng băng thông bộ nhớ mà chủ yếu để tăng FCLK nhằm giảm độ trễ truy xuất dữ liệu.

Đời Zen 2
(Ryzen 3000 không tính APU 3200G/3400G) FCLK được tách rời khỏi UCLK (mặc định FCLK : UCLK = 1 : 1 nhưng có thể tùy chỉnh nếu muốn). Riêng UCLK thì chạy ở 2 chế độ:
  • UCLK : MEMCLK = 1 : 1 mặc định cho RAM với MT/s = 2133~3800 (1066.5~1900 MHz).
  • UCLK : MEMCLK = 1 : 2 mặc định cho RAM với MT/s = 3866 trở lên (1933 MHz +). Xung bộ khiển nhớ chỉ bằng 1/2 xung RAM nếu chạy RAM 3866 trở lên.

AMD khuyến khích người dùng để FCLK trùng với xung nhịp của RAM (tức xung nhịp của bộ khiển nhớ) đối với RAM 3800 trở xuống (mặc định tỷ lệ 1:1). Nhưng do đời Zen 2 cho phép tùy chỉnh FCLK nên người dùng với RAM bus thấp (MT/s = 2133~2666) vẫn có thể tăng FCLK để tăng tốc độ liên kết giữa các bộ phận mà không cần phải dùng RAM bus cao (MT/s = 3000~3800).

Render
3nuaqA7.jpg


RpxJ1PD.jpg

Điểm Cinebench R20 dường như không bị tác động nhiều bởi RAM hoặc FCLK

tEB92Zf.jpg

Corona Render cũng tương tự, giảm được vài s.

Khả năng tính toán của CPU thì phụ thuộc chủ yếu vào xung nhịp CPU chứ không phải FCLK nên RAM bus cao hoặc FCLK cao không ảnh hưởng gì nhiều đến khả năng render.

Băng thông (Bandwidth)
Riêng về băng thông thì bị ảnh hưởng bởi RAM bus là chủ yếu.
o6ccr82.jpg


jubR0jg.jpg

Thím nào chơi APU và chỉ dùng iGPU thì hãy đầu tư cho RAM bus cao.

Gaming
Các ứng dụng game khá nhạy cảm với độ trễ của việc truy xuất dữ liệu nên RAM bus cao, tight timing và FCLK cao sẽ giúp tăng FPS. Giải thích đơn giản là nếu có một bộ phận công chứng giấy tờ với khả năng xử lý là 1000 bộ hồ sơ/ 1 tháng.

Có 2 cách để giải quyết:
Thứ nhất, gộp hết tất cả hồ sơ và giao cùng một lần cho bộ phận công chứng vào đầu tháng và sẽ gửi kết quả vào cuối tháng.
Thứ hai, nhận đến đâu sẽ giải quyết đến đó và gửi kết quả đi nhanh hết mức có thể.

Cả 2 trường hợp đều sẽ xử lý 1000 bộ hồ sơ trong 1 tháng nhưng độ trễ sẽ khác nhau.

RAM 2133, tight timing, tỷ lệ FLCK : UCLK/MEMCLK = 1:1 vs FCLK 1900
FY3qUZ0.jpg

KwjfLc2.jpg


So sánh với RAM bus cao hơn và tỷ lệ FLCK : UCLK/MEMCLK = 1:1
rqE1F5H.jpg

fEZ6ne0.jpg


Game rất nhạy cảm với độ trễ trong truy xuất dữ liệu, có thể giảm độ trễ này bằng cách chỉnh lại timing với DRAM calculator for Ryzen hoặc tăng FCLK. Nhưng nếu có RAM bus cao thì tight timing sẽ giúp giảm độ trễ rất nhiều, đồng nghĩa với việc tăng FPS trong game.

RAM 3800 loose vs tight timing, tỷ lệ FLCK : UCLK/MEMCLK = 1:1
E0iAuCZ.jpg

gY7YL71.jpg


Tự chỉnh timing thay vì dùng XMP sẽ giúp tăng FPS mà không cần đến việc OC FCLK
Vj9AHLd.jpg

Assassin Creed Odyssey khá nhạy cảm với độ trễ thấp nhưng băng thông cao không quan trọng lắm, trừ phi có card VGA khủng.

16VOg5t.jpg

World War Z thích băng thông cao hơn là độ trễ thấp

Nguồn:

Edit:
22/06/2020
  • Làm rõ thế nào là RAM bus thấp/cao.
  • Phân biệt thêm sự khác biệt giữa RAM Frequency (MEMCLK) với Unified Memory Controller Frequency (UCLK)
  • Điều lưu ý khi chạy RAM từ 3866 trở lên.
  • Một vài vấn đề khác.
23/06/2020
- Chỉnh lại format, đưa bản tóm tắt lên đầu cho dễ đọc, và thêm vào một số nội dung khác.
 
Last edited:
Mình có quả RAM dưới sign, xmp profile chỉ nhận 3000 chứ 3200 là ko boot đc. Chỉnh theo dram calculator thì lên đc 3600 cas 16 mà dùng vài ngày thì xanh màn về lại 2133, lại phải để xmp 3000 cho đỡ mất công chỉnh:confuse:
 
Mình có quả RAM dưới sign, xmp profile chỉ nhận 3000 chứ 3200 là ko boot đc. Chỉnh theo dram calculator thì lên đc 3600 cas 16 mà dùng vài ngày thì xanh màn về lại 2133, lại phải để xmp 3000 cho đỡ mất công chỉnh:confuse:
Chích soc vcore thêm tý xem, max 1.2V thôi nhé.
 
mình đang dùng ryzen5 3600 với x570 và ram 16gb bus 3000, giờ thay bằng ram bus 3600 thì hiệu năng chơi game có tăng lên ko
 
iGPU của APU rất cần băng thông, nên chú trọng mua RAM bus cao và tự chỉnh timing sẽ đưa ra kết quả tốt nhất.

Chơi game thì sẽ tùy game mà có thể thiên về giữa độ trễ thấp, băng thông cao hoặc là cả hai. Nếu mua về chơi game thì sẽ không thấy lỗ trong việc mua RAM bus cao MT/s từ 3000~3600. Còn nếu có kit RAM bus thấp thì sẽ thấy lợi ích lớn trong việc tự chỉnh lại timing hoặc tăng FCLK.

Nguồn:

Vậy là xài AMD dòng G mới cần ram bus cao cho iGPU đúng không ? Mình đang xài con AMD 2400g để mặc định thì nó tự lấy 2gb ram làm vram nên chắc là bus cao sẽ cho hiệu năng tốt hơn. Nhưng nếu như xài card rời thì bus ram có quan trọng không bác ?
 
Vậy là xài AMD dòng G mới cần ram bus cao cho iGPU đúng không ? Mình đang xài con AMD 2400g để mặc định thì nó tự lấy 2gb ram làm vram nên chắc là bus cao sẽ cho hiệu năng tốt hơn. Nhưng nếu như xài card rời thì bus ram có quan trọng không bác ?
Có chứ, nhưng quan trọng hơn hết là ram timing. Bus cao mà timing cùi thì ram sẽ thua mấy thằng bus thấp hơn nhưng timing chặt hơn. Cái iGPU thím để 512MB cũng được không cần đến 2GB đâu, tại nó dùng chung bộ nhớ với CPU. Đặt 2GB thì CPU không dùng được, nhưng đặt thấp hơn thì khi thiếu sẽ tự động dùng đến RAM của CPU (RAM hệ thống). Cứ giảm xuống rồi mở game lên so sánh.
 
Có chứ, nhưng quan trọng hơn hết là ram timing. Bus cao mà timing cùi thì ram sẽ thua mấy thằng bus thấp hơn nhưng timing chặt hơn. Cái iGPU thím để 512MB cũng được không cần đến 2GB đâu, tại nó dùng chung bộ nhớ với CPU. Đặt 2GB thì CPU không dùng được, nhưng đặt thấp hơn thì khi thiếu sẽ tự động dùng đến RAM của CPU (RAM hệ thống). Cứ giảm xuống rồi mở game lên so sánh.
3600c16 ngon k thím, hay có con nào ngon lành giá ngon hơn k
 
chênh nhau 100k thì thím thấy chọn cái nào, mà hạ cas đc không ảnh hưởng gì hết hả thím, thế cas16 có hạ xuống thấp hơn đc k
chênh 100k thì lấy c16 đi. Còn hạ cas thì thoải mái, c18 hạ 16 dễ chứ 16 hạ 14 khó hơn á. Mà hạ cho vui chứ 3600c16 hay c18 gắn chạy cũng như nhau thôi :LOL:, hay lên 3800 cũng chả thấy khác biệt gì đâu
 
Thế vd mình dùng Ryzen 2600 muốn OC ram lên 3000 hoặc 3200 thì bắt buộc phải để FCLK là 1500, 1600 nhỉ?
Chỉnh cái FCLK này thì có cần phải chính thông số nào khác liên quan nữa ko?
 
Thế vd mình dùng Ryzen 2600 muốn OC ram lên 3000 hoặc 3200 thì bắt buộc phải để FCLK là 1500, 1600 nhỉ?
Chỉnh cái FCLK này thì có cần phải chính thông số nào khác liên quan nữa ko?
Ryzen 1000, 2000 không tự chỉnh FCLK được, AMD để chết tỷ lệ 1:1 (FCLK vs RAM Frequency). Cách duy nhất để tăng FCLK cho con 2600 là phải OC RAM, thím OC RAM lên được 3000/3200 thì FCLK cũng tự động tăng theo, có chỉnh thêm chắc nâng soc vcore thêm một tý nếu thấy không ổn định.

Việc để chết tỷ lệ 1:1 là lý do tại sao RAM bus cao lại rất quan trọng với Ryzen 1000/2000, tại cái FCLK cao giúp giảm độ trễ của việc trao đổi thông tin giữa các core và die, đời 3000 thì đỡ hơn.:doubt:
 
Back
Top