Under the Hood of the Xbox 360
An anonymous reader writes "IBM DeveloperWorks is running a behind the design story for the making of the Xbox 360. The 360 has but a single chip with 165 million transistors for it's CPU " From the article: "This chip is in fact a three-way symmetric multiprocessor design. The three PowerPC cores are identical, except that they are physically reflected through the X and Y axis. Each of the CPU cores is a specialized PowerPC chip with a VMX128 extension related to (and partially compatible with) the VMX instructions in the G4 and G5 CPUs. The three CPU cores share a 1MB Level2 cache. Each processor has 32KB each of data and instruction Level1 cache. The chip's front-side bus/physical interface has a 21.6GB/second bandwidth, and runs at 5.4GHz."
Yes, I'd prefer this be filtered through at least a couple of blogs.
Actually, no.
A big cache is good when you are dealing with programs that could access ANY data at ANY time (or you're running multiple programs). With games, that doesn't really happen. Game code is sort of "linear", and you're only running one at a time.. So the cache can be filled with what needs to be there, and nothing else.
Microsoft went to ATI and IBM in order to "own" the designs for the graphics/processor chips. This way MS is able to get the parts fabbed out without having to get approval from ATI/IBM. (This is from memory of what I've read in the past). The CPU and graphics/bridge design in the XBox are owned and by Intel/Nvidia (respectively). MS had to buy the parts from them, which costs them more in the long run than being able to get their own produced.
Correct me if I'm wrong...
This is probably a JTAG block. Depending on what it's built for, you get:
- instruction single-step
- register and memory peek/poke
- control suitable for burning on- and off-chip flash/eeprom
- trace buffer that contains the most recently-executed opcodes
- breakpoints
- access to profiling and instrumentation registers
JTAG is a serial protocol that runs much, much slower than the core -- but it's an extremely nice way of getting into a running chip and poking around.
The PlayStation 3 will be made by Sony, a company which distributes software that renders a personal computer quite unstable and open to attack by malfeasant users from across the Internet.
The Xbox 360, on the other hand, is made by Microsoft.
The choice is yours.
For more information, click here.
It's probably the JTAG debug logic. Most modern CPUs use a JTAG port (full-duplex, multi-device serial port) to provide access to internal CPU state, as well as providing hooks for starting and stopping the processor.
/ 3675.html
JTAG is a hardware test standard, but chip vendors define their own extensions to it to provide software debug hooks. Most PowerPC chips use what's called the Common On-Chip Processor (COP), which is controlled through the JTAG port. The specific details of COP and its implementation on each chip is proprietary, and usually only available to IBM, Freescale, and a few select tool vendors with NDAs. Here's a link to some more information on PowerPC COP:
http://www.elecdesign.com/Articles/ArticleID/3675
A beowulf Heater of these... :)
Much like Duffman, Sony promises lots of things. There were a lot of features that were supposed to be available on the PS2 that just never ended up in the final system. Not wanting a 360 because it's not that much an improvement over the current XBox is good reasoning. Not wanting a 360 because you just bought a new console a couple of years ago is good reasoning. Not wanting a 360 because of all the things Sony claims will be on the PS3 is just silly. We don't know the "Top 10 reasons for a PS3" because we don't know exactly what the PS3 is yet.
Also, while the Revolution's controller does pose some unique possibilities for gameplay, it's only a controller. Any of the modern gaming consoles could implement such a controller. If it's that big a deal, expect MS and Sony to have their own versions by the end of 2006.
How is it a miracle when this is exactly what's been happening with consoles for many years?
NES looked better than nearly any computer of its day. Ditto Genesis and SNES. Playstation and N64 packed an incredible amount of power into a cheap bundle. Remember the hype about PS2's Emotion Engine? There were rumors that exporting it would be restricted because it was going to be classified as a super computer. People were saying Iraq was going to use it to guide missiles. Xbox literally was a cheap PC, but gave more bang for the buck than your average beige box.
Consoles do this by taking the right shortcuts. They have a very focused performance target for very specific tasks. No need to add anything more than the minimum. Plus, they sell more than nearly any OEM PC maker so they get good prices on the parts.
The global economy is a great thing until you feel it locally.
The PS2 Emotion Engine has the same design philosophy: choosing to do small memory/cache in favor for very wide bandwidth. It makes for some interesting programming juggling and kung-fu since the data comes straight from memory dumped to the graphics so nothing is cached. The results speak for themselves since the PS2 is the oldest and the most dated performance the fact that the performance is extremely dynamic and probably *still not maxed*. People are still pulling tricks that no one could predict the PS2 to do. I suspect we wouldn't have games on the PS2 like GT4 or the beautiful Shadow of the Collosius if it had been made with more cache yet small bandwidth.
One core uses little endian, one core uses big endian, and the third core exists only to map between the little and big.
Online Starcraft RPG? At
Dietary fiber is like asynchronous IO-- Non-blocking!
Anyone who thinks it crashes regularly or that more than 1% of units are overheating is simply a moron. A lot of people here seem to have a fixated fantasy that they are so desperate to believe that they ignore the facts. The fantasy basically consists of that MS has rolled out an overheating worthless machine that when not overheating 95% of the time is crashing. Get real, I'd imagine the failure rates for units are about the same for any piece of consumer electronics.
Seriously, though, these are fascinating little beasts. It looks as if the concept has its roots in the Transputer, which also relied on fast and narrow point to point external links. When I first read the blurb I guessed from the description that there were 4 cores per chip and the bad ones were disabled to get the yield up, but clearly the yield is much much better than that. However, anybody silly enough to think about overclocking will need to note that the working CPU voltage is hard coded; it looks like, to get the yield at the clock speed, each device has to be individually tuned. Which suggests that the tolerances for reliable functioning are tight. Perhaps the overall error rate is not good enough for a truly general purpose computer which needs to be able to tolerate a range of operating conditions without significant error. Which doesn't suggest a range of motherboards and retail boxed processors any time soon. Just like Apple, in fact. This reminds me of good old ECL based computers (whose CPU voltage had to be adjusted on the fly for reliable operation rather than set up once for all, but I'm sure you take the point).
It's perhaps a pity that the design teams for the Mac Mini and the XBox couldn't be locked up in a development lab with a progressively increasing caffeine level in the coffee until they create the hybrid that would really be the future of home computing. Apple's thermal management and sound level control, IBMs obvious chip development capability, and Microsoft's willingness to spend some of its cash pile would be a formidable combination. The trouble is, you'd probably end up with Apple's's ability to design chips, IBMs willingness to lose money, and Microsoft's thermal management and general aesthetics.
Pining for the fjords
Games often have far smaller cache requirements than many other applications, and as a result, it is preferable to go with a higher speed cache and higher CPU speed than a slower but larger cache/CPU.
:)
The Celeron in the 300A era are one of the best examples of this. They had half the cache of their Pentium III counterparts, BUT the P3 cache ran at half the CPU speed while the Celeron cache ran at full speed. The Celeron's performance was crap despite the faster cache for many applications (including server machines and most office applications) due to its smaller cache, but gamers discovered that for games, the situation was exactly the opposite - clock for clock the Celeron was significantly faster than the P3 due to the fact that most games in that era could fit almost all of their rendering pipeline within even the Celeron's small cache. Rare cache misses and twice the cache speed = much better performance. It also happened that that on-die cache allowed the Celerons to be overclocked like crazy, a significant added bonus.
The Xbox 360's CPU takes the whole idea much farther. While most desktop CPUs are designed to perform well over the widest range of situations (with some tradeoffs always being evident - note that Athlons eat P4s for lunch in many cases such as games, while Athlons do actually lose most of their advantages in performance per clock cycle when performing video compression and decompression because most video codecs don't have significant amounts of branching resulting in pipeline stalls from branch mispredictions.) The Xbox 360 CPU goes a step further by optimizing for one thing and one thing only - gaming. Instruction reordering which is critical in most desktop CPUs turns out to be not as necessary for gaming (specifically graphics rendering), and as a result the 360 drops instruction reordering capability completely in favor of having multiple cores at a low cost. (Instruction scheduling takes a LOT of die space in modern CPUs compared to the size of the rest of the CPU core.)
retrorocket.o not found, launch anyway?
You forgot the most interesting option...
- The Nintendo Revolution
I don't want to sound like too much of a fanboy, but what can these consoles really give me that my PC can't? I'd rather have a console thats sole focus isn't trying to outpace my PC in terms of graphics... but to push the limits with new controllers, unique games and not costing me my 1st born child or my left arm to acquire.
Hate to burst alot of bubbles, BUT:
0 -2.ars/2
The Xenon CPU IS NOT the same as 3 G5's all on one chip! Read the arstechnica article here:
http://arstechnica.com/articles/paedia/cpu/xbox36
Basically it says: "The basic idea behind both Cell and Xenon is to make the execution core less complex by stripping out hardware that's intended to optimize instruction scheduling at runtime. Neither the Xenon nor the Cell have an instruction window, which means that these two processor designs largely forget about instruction-level parallelism. Instead, instructions pass through the processor in the order in which they're fetched, with the twist that two adjacent, non-dependent instructions are executed in parallel where possible."
This means that standard PPC code (OS X, etc) WILL NOT RUN on this. This is also the reason that IBM is selling these things at only $106 a pop to M$. Have you checked the prices for SINGLE CORE G5s for Apple? Their like $600-700 a piece! So, I am guessing that stripping these down makes them much easier and therefore faster and cheaper to mass produce, and therefore the price difference.
Anyway, there are reports that only one core is availble to intitial game developers, and one of the cores is strictly for M$ bullshit content protection TC such as the hypervisor, etc.
Not to mention from the article:
Microsoft and IBM engineers worked together during the definition phase of the project to specify a design to satisfy the constraints of a mass-produced consumer device
Sounds like a shitload of TC shit build right into the chip, so I am NOT holding my breath for linux to be ported to this (not that I wouldn't be thrilled to see this). Cetainly not when the port to STI Cell architecture has been under dev for what, over a year? Damn, can't wait for PS3 release.
Who wouldn't? Wouldn't you like a 100mb cache? Hell, wouldn't you like all of main ram to actually be as fast as an L2 cache?
This is a game console, not a multi-tasking general purpose PC. This is reflected in both the power a programer has over the hardware, and it is reflected in the fact it depends on the programmer to make up for cost saving measures implemented in the hardware.
You're thinking about thread scheduling the way a general purpose PC would schedule threads. It doesn't work that way in a game system. When talking about threads on a game console, we're talking about hardware threads. The programmer decides what core runs what logic, when it runs that logic; there aren't any context switches, and threads don't "change" cores when running.
The cache design on this chip is actually quite cool. If you're only going to use a piece of data once (or infrequently), you can instruct the processor to not store the data in the L2 cache (leaving data that you're using more freqently in the cache). Additionally, the L1 and L2 cache can hold separate data, and a load into the L1 cache doesn't require a storing that data into the L2 cache. When writing data out to main memory, a program can instruct the processor not to store it in the cache. Software can also reserve chunks of cache for whatever purpose it wants. Finally, a direct link between the CPU and the GPU can be established where the GPU reads data directly off of the L2 cache as the CPU generates it.
These abilitys make it possible to utilize L2 cache better than you would with any general purpose PC. However, it requires more thinking and more effort to do so. That's the price/performance tradeoff you get.