Athlon 64 Dual-Core Upgrade and NVIDIA's GeForce 7800 GTX 512MB SLI - Page 2 of 9
Review By Mike Chambers - January 21, 2006
DUAL-CORE PROCESSOR OVERVIEW
Technological limitations of current processor designs have caused the processor speed growth rate to steadily decline. Sparked by a growing interest to cost-effectively increase the power of personal computers, AMD and Intel launched dual-core desktop processors in 2005.
Multiple processors are often used to increase throughput of large transaction-based systems such as application, database, and web servers. A server being used by hundreds of concurrent users will certainly process a greater number of simultaneous transactions compared to the number of transactions a typical user would generate on a standalone PC. In either case, the primary goal of a multi-processor system is to increase performance by balancing the execution of multiple tasks among the available processor cores.
Athlon 64 Dual-Core Processor Schematic
Click Image for an Interactive Preview
Dual-core processors, such as the AMD Athlon 64 X2, are comprised of a single chip containing two processor cores. Each core is an execution unit capable of running one or more processor threads, which are scheduled for execution by the operating system. A developer can define one or more threads in a program, which may operate independently of one another. If a thread is designed to share a common resource with other threads, the developer must coordinate thread interaction through synchronization.
Athlon 64 Single vs. Dual-Core Processor
The Athlon 64 X2 features two cores per physical processor. Each processor operates at a frequency of 2.4GHz and has a 64KB Level 1 instruction cache, 64KB Level 1 data cache, and 1MB Level 2 cache. The HyperTransport interconnect provides a communication data rate up to 2GT/s (billion transfers per second) between the processor, memory, and input/output devices.
LEVERAGING DUAL-CORE
Maximizing the performance benefits from a dual-core processor requires that software be designed to specifically support multi-threading. Although multi-threaded program development can be a difficult task, it should be considered for programs that can manage multiple simultaneous activities.
Multi-Threaded Program Design
Many of the programs that we use today were not designed with multi-threading capabilities. However, dual-core processors will provide immediate benefits when used with operating systems that support multi-tasking such as Windows XP. Multi-tasking causes excessive overhead as a result of constant thread switching.
For an interesting perspective concerning the challenges of multi-threaded programming, please check out to AnandTech's interview with Tim Sweeny and the Unreal 3 engine.
MULTI-THREADED PERFORMANCE
The following table contains results from the CPU multi-thread test in Futuremark's PCMark05 benchmark. Performance of a single-core Athlon 64 4000+ is compared to the Athlon 64 4800+ X2, with PCMark05 running on one and both processor cores. The set affinity option under task manager can be used to manually assign a process to one or both processors on multi-processor systems running the Professional version of Windows XP.
PCMark05 CPU Multi-Threaded Test
The multi-threaded test results illustrate the benefits that can be realized from a dual-core processor. Keep in mind that PCMark05 is a synthetic benchmark.
VIDEO ENCODING PERFORMANCE
Multi-threaded programs capable of utilizing dual-core processors include video encoding applications. The following benchmark results are based on converting a 450MB gameplay AVI video clip from F.E.A.R. to MPEG-1 format. The video was originally recorded using FRAPS and compressed to a size of 13MB using the freeware encoder TMPGEnc.
TMPGEnc Encoder
The encoding took 67 seconds to complete on one processor (top graph) and 36 seconds when both processors were available.