Navigate:

Advice
Beginners
BIOS Guide
CPUs
Links
Mainboards
Memory
Network
Storage
Video/Sound Cards

Contact
Forum
SiteMap
Sponsors
WebNews
Home
. .

Prices:

Mainboards

ABIT
ASUS
Chaintech
Shuttle
Soyo
Tyan

CPU
Intel
P4 2.4C-800
P4 2.6C-800
P4 2.8C-800
P4 3.0-800
P4 3.2-800

AMD
AthlonXP
XP 1700+
XP 2000+
XP 2400+
XP 2500+
XP 2700+
XP 3000+
XP 3200+

Athlon64
Athlon64 3200+
Athlon64 FX-51

Opteron
Opteron 240
Opteron 242
Opteron 244
Opteron 246

Memory

Corsair
Crucial
Kingston
Mushkin
OCZ

Search Prices:








































































































































What are you
shopping for?



































































































































































LOSTCIRCUITS

SHORTCUTS:
A Darwin Award
Prelude to a Bug
Virtualization and TLBs
A Band Aid and a Patch
Phenom Specs
The Spider Platform
Test Configurations
ASUS M3A32-MVP and AOD
Memory subsystem
CPU Power Consumption
TrueSpace and Power Efficiency
Cinebench
DVD-Shrink, MainConcept
VirtualDub/DivX
3DMark'06
FarCry
F.E.A.R.
World In Conflict
Crysis
UnrealTournament3
NB Frequency: Does it Matter?
The Secret of AOD
Final Analysis

Give Us Some Feedback on this Review

 AMD's Phenom Processor - Beyond Erratum 298
(Author: Michael Schuette, January 1, 2008)

Add Virtualization

The situation gets yet more complex with the introduction of virtualization. In short, virtualization stands for running a plurality of virtual machines simultaneously on the same hardware platform. Why even bother with virtual machines, though, if it is possible to run several instances of applications simultaneously within the same Operating System? The answer is quite simple, in the high-end server environment, there is a need to run different applications under different operating systems at the same time for reduced total cost of ownership (i.e. having dedicated machines for each OS), the prime example is the Oracle + HP configuration, meaning Oracle software running on HP blade servers. An example is illustrated below.

Illustration modified from Anand Vridhagiri, AMD

One example for virtualization: the primary or host operating system of the Real Machine acts as the Hypervisor of the different Guest OS within each of which multiple applications can execute quasi-concurrently. Virtualization can be enabled either in software emulation or else be executed directly in hardware. Software based virtualization can employ different modes of operation like para-virtualization, utilizing modified guest operating systems to match the existing soft and hardware infrastructure. Typically, the guest OS will have to be recompiled to run in Ring 1 whereas the Host OS will enjoy maximum protection of Ring 0. The hypervisor handles the interactions between the Host and the Guest OS whereas the Host OS handles all devices.

In the case of full virtualization, the Host OS is also the Hypervisor and the Guest OS can run unmodified in Ring 1. The Hypervisor intercepts the instructions from the Guest OS and virtualizes the physical devices to work with the various Guest OS.

Illustration modified from Anand Vridhagiri, AMD

Hardware-enabled virtualization does not really need to differentiate between the Host OS and the guest OS with respect to levels of protection, the platform is the hypervisor and creates a Guest Mode for the Guest OS to allow it to run unmodified in Ring 0 together with the Hypervisor which controls device access. The address space number (ASN) mentioned above is used as tag for the TLB to ensure task-specific memory access.

Illustration modified from Anand Vridhagiri, AMD

Using tagged TLBs also allows the nesting of Guest OS page tables within the Host OS page tables instead of treating them as separate entities, thereby reducing the number of memory accesses needed for switching between host and guests.

Illustration modified from Anand Vridhagiri, AMD

What does all of this have to do with Erratum 298 or the bug it describes? The answer is very simple: Only in situations where hardware virtualization is used and there is heavy load on the CPU can there be a race condition where the wrong TLB data may be written to the L3 cache before being updated in the L2 cache. Since the TLBs are used to find the task-specific data within the virtual memory address space, this could lead to updating data in system memory with data that do not pertain to the task at hand but to another cached operation. This is generally referred to as data corruption. Does any of this affect the standard Desktop user? Sure, when hell freezes over. Especially in any situation where Microsoft Vista is used, the entire thing is a completely moot point since the OS will crash a gazillion times before the “Erratum 298” bug is encountered.


(AMD Phenom 9600 2.3GHz
(HD9600WCGDBO))

next page: => A Knee Jerk and a Bandaid =>

All advice and educational articles on LostCircuits are free, but if you feel you can, please make a small donation to us!
Thank you!

General disclaimer: This page only reflects the author's personal opinion and assumes no responsibility whatsoever regarding any of the contents or any damages that may occur explicitly or implicitly from reading the contents of this site. All names and trademarks mentioned in this review are the exclusive property of the respective parent companies.
All contents of this site are protected by international copyright laws. Reproduction of the contents even in parts is not allowed except after written permission by the author and referral to this site.
Copyright 2002 - 2008 LostCircuits