Memory Bank Group Swap: Gaming vs. Synthetic Benchmarks
This article explores the impact of the BIOS setting known as Bank Group Swap (BGS) on computer hardware performance. Specifically, it explains how BGS alters memory controller behavior to favor either synthetic bandwidth benchmarks or real-world gaming performance, helping users understand why enabling this feature yields higher memory read and write scores while disabling it often leads to better frame rates in games.
What is Bank Group Swap (BGS)?
Modern system memory, such as DDR4 and DDR5, is organized into independent sections called banks, which are further clustered into bank groups. The CPU's memory controller can access different bank groups simultaneously, which is faster than accessing the same bank group consecutively.
Bank Group Swap (BGS) is a BIOS feature, primarily prominent on AMD Ryzen platforms, that alters how physical memory addresses are assigned to these bank groups. It changes the order in which the memory controller distributes data across the RAM, aiming to prevent bottlenecks where the CPU has to wait for a single bank group to finish a task before starting the next one.
How BGS Affects Synthetic Bandwidth
When running synthetic memory benchmarks, such as AIDA64, the software tests the maximum possible throughput of the RAM using sequential, predictable data streams.
Enabling BGS significantly boosts performance in these synthetic tests. Because the data requests in synthetic benchmarks are linear and predictable, the BGS algorithm successfully interleaves the workload across multiple bank groups. This maximizes parallel processing within the memory modules, resulting in noticeably higher read, write, and copy bandwidth speeds (measured in MB/s or GB/s). If your goal is to achieve the highest possible score in a synthetic memory benchmark, BGS should be enabled.
How BGS Affects Gaming Performance
Gaming workloads behave very differently from synthetic benchmarks. Instead of smooth, sequential streams of data, games generate highly erratic, random memory access requests as the CPU fetches physics data, AI behavior, and asset locations on the fly.
In this scenario, raw bandwidth becomes less important than low latency (the time it takes to fetch a specific piece of data). Having BGS enabled can actually hurt gaming performance. The way standard BGS hashes memory addresses often causes "bank conflicts" during random access patterns, forcing the CPU to wait longer for the data it needs to render the next frame.
By disabling BGS, the memory controller falls back to a mapping method that favors random access patterns. While your maximum theoretical bandwidth drops, the effective latency for gaming workloads improves, resulting in higher average frame rates and better 1% low frame times.
The Middle Ground: BGS Alt
Many motherboard manufacturers include an option called "Bank Group Swap Alt" (Alternative). BGS Alt uses a slightly different algorithm to map memory addresses, specifically tuned to accommodate the random access patterns of video games without entirely sacrificing the parallel advantages of bank groups. For gamers, setting BGS to Disabled and BGS Alt to Enabled frequently yields the best performance in 3D applications.
Summary of Settings for Hardware Benchmarking
- BGS Enabled: Best for synthetic benchmarks (e.g., AIDA64) and productivity workloads that rely on massive, sequential data throughput.
- BGS Disabled: Best for gaming benchmarks (e.g., 3DMark CPU Profile, in-game benchmark tools) where random memory access and low latency dictate frame rates.
- BGS Disabled + BGS Alt Enabled: Often the optimal configuration for daily gaming, providing the ideal balance of low-latency random access and efficient bank utilization.