Infinity Fabric Overclocking: What the FCLK

With AMD’s 3rd generation Ryzen processors, AMD has increased the flexibility of the memory subsystem and added separate control for two elements dubbed FCLK and UCLK. These elements have technically always been present, but previously were always linked to memory speed. Before we proceed though, some definitions:

FCLK – Fabric ClocK. FCLK controls the speed of AMD’s Infinity Fabric, which handles communication across their CPUs. On 3rd generation Ryzen, Infinity Fabric and therefore FCLK or Fabric Clock has particular responsibility for the connections between the Core dies and the IO die. UCLK – Unified memory controller ClocK.

UCLK - This controls the speed of the memory controller itself.

MEMCLK – Memory clock on DDR4 memory is often referred to by the data rate, for example, this “5000 MT/s” kit is so called because at the advertised speed data is transferred 5000 million times per second. The physical clock signal that governs this data transfer, however, is 2500 MHz at the advertised speed – the data rate is double the physical clock, hence Double Data Rate. In AMD’s language this physical clock is called MEMCLK, and often shows up in bios settings under this name. MEMCLK is important because of how FCLK and UCLK relate to it.

Technically, all of these elements have always existed on all AMD’s Zen-based processors, back to 1st generation Ryzen and the enterprise equivalents, but FCLK and UCLK were always locked to MEMCLK making them effectively one and the same. What differs with 3rd generation Ryzen is that rather than being tied to MEMCLK, FCLK can now be set totally independently and UCLK has a choice of two ratios to MEMCLK – 1:1 and 1:2 (UCLK:MEMCLK).

Setting FCLK on Matisse

Although FCLK is now free to run at any speed, in practice there’s a performance bonus from running FCLK, UCLK and MEMCLK synchronized together. At lower MEMCLK speeds this may be outweighed by increasing – more specifically, overclocking – FCLK independently and when overclocking to very high MEMCLK it is simply no longer possible for FCLK to keep up and it must be run at a reduced speed.

By default FCLK, UCLK and MEMCLK are still synced together on 3rd generation Ryzen for speeds up to and including DDR4-3600 (1800 MHz FCLK/UCLK/MEMCLK), and as a result users with DDR4-3600 kits find these parameters well optimised without additional tweaking.

With this extremely high-speed DDR4-5000 kit, FCLK and UCLK cannot be synched with MEMCLK, and for the best possible performance, it’s advisable to manually overclock FCLK independently. On MSI motherboards as tested, the FCLK frequency and UCLK ratio (“UCLK DIV1 MODE”) are found in the “DRAM Setting” portion of the OC menu.

Test Bed

To test the performance of the Corsair Vengeance LPX DDR4-5000 memory kit, we tested the kit at three different frequencies with Infinity Fabric clocks in a ration of 2:1. Our maximum limit on the Infinity Fabric before we reached instability was 1800 MHz, which is a common limit for users. Some Ryzen 3000 processors can clock as high as 1900 MHz which would equal DDR4-3800, but AMD themselves say the sweet spot for memory performance on Ryzen 3000 and X570 is around DDR4-3600.

Test Setup
Processor AMD Ryzen 3700X, 65W, $329 
8 Cores, 16 Threads, 3.6 GHz (4.4 GHz Turbo)
Motherboard MSI MEG X570 Ace (BIOS 1.40 - ABBA)
Cooling ID-Cooling Auraflow Pink 240mm AIO
Power Supply Thermaltake Toughpower Grand 1200W Gold PSU
Memory 2x8GB Corsair Vengeance

Tested at:

DDR4-3200 18-26-26-46 1T (FCLK 1600 MHz)
DDR4-3600 18-26-26-46 1T (FCLK 1800 MHz)
DDR4-5000 18-26-26-46 1T (FCLK 1800 MHz)
Video Card ASRock RX 5700 XT Taichi X 8G OC+ (1810/2025 Boost)
Hard Drive Crucial MX300 1TB
Case Open Benchtable BC1.1 (Silver)
Operating System Windows 10 1903 inc. Spectre/Meltdown Patches
Overview, Specifications, And Visual Inspection CPU Performance, Short Form
POST A COMMENT

55 Comments

View All Comments

  • JoeyJoJo123 - Tuesday, January 28, 2020 - link

    Yeah, I'd like to see Anandtech test extremely tight timings on this kit at 3600mhz.

    However, review time is limited and expensive for the company, and I know firsthand that tweaking one timing down by 1, sitting through 2hr of memtest86, going back into bios, tweaking it down again, etc... Led to 2 ~ 3 weeks of recreational memory tuning before I dialed in the tightest possible settings for my CPU + MoBo + Memory kit that didn't result in errors in memtest86 for all 4 passes.
    Reply
  • JoeyJoJo123 - Tuesday, January 28, 2020 - link

    Also, I had dual-rank ram, and the ryzen memory timing calculator wasn't giving me stable timings (and yes, I did follow the correct process, it's just the utility likely isn't optimized for fairly rare dual-rank 16GBx2 memory kits), so I didn't have a good starting point for most timings to start tweaking down further than the already sparsely populated XMP profile that doesn't list a number for the majority of the smaller subtimings. Reply
  • Ratman6161 - Tuesday, January 28, 2020 - link

    I don't think dual rank 16x2 memory kits are "fairly rare". In fact I've been running them for several years for a variety of purposes. Also, the x570 motherboards are claiming support for 128 GB RAM which would require 32x4 (havent seen any 64 GB desktop modules yet). NewEgg has 15 32x4 kits. If you are springing for a 3950X you may as well go all the way and max out the RAM too. :) Reply
  • JoeyJoJo123 - Wednesday, January 29, 2020 - link

    I went for a 3700x. Also, take a look here:

    https://www.reddit.com/r/Amd/comments/cw7ysm/32gb_...

    But no, the Ryzen Calc (at least at the time) wasn't providing me known good timings. I didn't even have Samsung B-Die, just Hynix CJR dual-rank memory. See the image here: https://i.imgur.com/iEb4Ctj.png
    The Ryzen calc was saying that a tCAS Latency of 14 at 3600mhz was stable. Absolutely not. Anything lower than 16 either wouldn't post or if it did post would reset itself back to JEDEC default timings or even more rarely, boot into memtest86 and spit out hundreds of errors. Same the withe tRFC values.

    Because of the bad tCL and tRFC values (which I didn't know those specific timings were the ones that were causing me issues), the Ryzen calc's values weren't useful as a starting point to tuning my memory. I had to start from the 16-19-19-39 XMP values, and unfilled out subtimings to try to get where I got to in the end, and that takes a long-ass time of memtest86 reboots and saving BIOS profiles to quickly get back to the last working memory tuning profile, along with keeping an excel spreadsheet on another computer marking the last working setting for that subtiming and the last not-working subtiming value and what error I saw when I attempted to set that.

    And yes, I even did multiple passes through the dozens of individual timings to see if i could tweak down previously tweaked timings lower after other timings were tweaked. My last pass through (before that image) was unsuccessful in lowering any single timing down by even 1 ns lower. So this is absolutely as low as it goes without going even more overkill on DRAM/SoC voltages, which were already overvolted.
    Reply
  • integralfx - Tuesday, January 28, 2020 - link

    If we assume 200MHz per tick of tCL, tRCD and tRP (worst case scenario), then at 3600MHz these sticks could do 11-19-19 at 1.50v. The high tRCD at 5000MHz is an IMC limitation so it could definitely go lower at more realistic frequencies. Reply
  • ses1984 - Wednesday, January 29, 2020 - link

    Tighter timings lower mhz performs about the same as looser timings higher mhz. It's barely worth benchmarking, especially when there was such little variation in all the benchmarks. Reply
  • JlHADJOE - Thursday, January 30, 2020 - link

    5000MHz @ CAS 18 = 3600MHz @ CAS 13 Reply
  • bug77 - Monday, January 27, 2020 - link

    It would be so cool seeing one cheaping out on a dGPU, only to spend $1,200 on RAM to make the iGPU faster. Reply
  • npz - Monday, January 27, 2020 - link

    well faster memory helps non-gaming and non-graphics on Ryzen due to the mem clock being tied to the IF clock, although when you go above 3600 (or 3700-ish) where you have to run them asynch, then you loose some of the benefits. But going to 5000, with the no difference in gaming and marginal improvements in applications, it's just clearly not worth the price. Reply
  • MBarton - Tuesday, January 28, 2020 - link

    You loose some by going beyond 1:1 with infinity fabric but you can make up for that performance penalty as you continue to increase memory clocks at reasonable timings. Reply

Log in

Don't have an account? Sign up now