System Design Philosophy
Design for a gaming machine should start with the gamer's visual experience and work backwards towards the network and internet. Therefore, the graphics subsystem is the most important element in this approach.
Below is an overview, some details and some consideration for each subsystem in designing a system
Ray tracing. The top end in graphics these days is in ray tracing, where each ray of light in the scene is traced from the light source, bounces off of the material in the scene and is then traced back to the observer's eye. This allows each ray of light to be impacted by the material it bounces off of, water, exploding hot gases, etc., offering the most realistic rendering of the scene because each ray of light is accurately represented. However, this involves massive ray trace calculations for each pixel in each scene or frame. A high-resolution frame is well over 1 million pixels and each frame may be updated at 100-120 frames a second!
Cores. This large amount of calculations is why only specially designed graphics processors like those in the Nvidia RTX series are able to do this. The top end of the RTX series has over 10,000 processor core’s inside, each operating in parallel at over 1.7GHz, performing many light ray calculations simultaneously. In prior generation of video cards, most of the scene is rendered using predefined bit maps or texture maps which cannot respond to the scene's as realistically. The key factor in choosing a RTX subsystem is how fast it can render scenes of a given complexity. The more cores the video card has, the more frames it can render, therefore offering more complex scenes faster.
Intel/AMD. The next most important item is the main CPU in the PC. For Windows PCs, the only two choices are Intel or AMD. These two processor sets are of course compatible with each other, are very competitive in features and are quite similar. They each offer multiple CPU cores on each chip, each running many threads doing many instructions per clock cycle, running at very high cycles per second.
Clock Speed. Clock Speed/Clock cycles is measured in cycles per second in Giga Hertz. All things that happen on a CPU are metered by a clock or timer that is the fundamental heartbeat of the CPU and controls the flow of digital data such as reading data from memory and activity such as doing arithmetic. The faster this clock is the faster the activity of the CPU. The maximum speed of this clock is limited by the basic digital circuits used, the dimensions of these circuits and the amount of heat that can be tolerated. The faster the system goes and smaller the circuits is the higher the heat density.
IPC. Instructions Per Clock (IPC) is a measure of how many things a CPU can do in one clock cycle. Intel and AMD have each spent decades and billions of dollars in designing silicon circuits that can do more things on each clock cycle.
Threads. A thread is a sequence of program execution or a sequence of instructions to be executed. All programs, such as a game program, use one or more parallel threads of execution. Therefore, the more threads a program uses the more work is being done in parallel.
Multiple core CPUs are essentially a CPU with many copies of the same core allowing more parallel work.
Compromise. So, the main dimensions of a CPU are its clock speed, IPC and how many threads it can run simultaneously. A another issue is the amount of heat the CPU generates when it runs. Both faster clock speed, IPC and more threads increase the amount of heat generated. So a typical CPU is a compromise combination of clock speed and threads to meet a particular heat generation target.
Typical. A typical high-end CPU can run at a clock speed of around 5GHz and is capable of anywhere from 8 to 32 threads. At present, Intel CPUs generally lead in clock speed, running at over 5GHz, while AMD leads in offering more threads with 32 Threads being common. While this is true for most consumer processors, both manufacturers offer commercial processors that go beyond these specs.
Most of today's PC game programs typically use 4 to 8 threads. Therefore, we have chosen to go with Intel CPUs that focus on CPU speed over the number of threads. For example an Intel I9 processor runs approx. 5.3GHz and offers 8 cores, with two threads each making a total of 16 threads. This provides the best combination of the fastest clock speed and still plenty of threads, with at least 16 threads.
Memory and Storage
Memory. All game programs use very large amounts of memory and storage. When the program is launched, a large amount of the program is loaded from storage into memory. Then, while the program is running the data in memory is fed to the video card while new data and other information are pulled from the internet.
Flow of data from the internet to video ram
Therefore, in designing a system it is important to use the fastest storage possible to reduce time to load programs into memory and reduce the image load time into the game model. Very large amounts of texture maps and other assets are loaded for a game. Therefore, the faster the storage mechanism is, the less the CPU has to wait for this to load into memory.
Today's NVME SSD memory offers the fastest data rates of approx. 3.5GB/sec. The RAM memory is where all the programs and data is stored and it needs to be as fast as possible, as this is the source from which the CPU accesses all this material. The memory is usually DDR4/5 Dynamic RAM, which defines the clock speed at which the memory can be accessed.
The memory data or program code is pulled from memory into the CPU cache, or the memory data is passed onto the video subsystems and its video ram for processing and rendering.
Overall, data transfers between RAM and Video RAM take place frequently and must be the fastest. Transfers between storage and memory occur less frequently and therefore can be slower. While we would like all these speeds and sizes to be as large as possible, in reality there is a tradeoff between size, speed and cost.
The network connection is very important to most games and could be considered the source of infinite amounts of data for a game. However, the network speed or bandwidth is the slowest of these links, so usually, most game data needed is preloaded at game installation or in the background while the game is running.