||Finally! The Industry is Moving Forward!
6/20/2006 8:31:00 PM
In the last several years, computers have gotten faster, but they haven't really gotten faster. Our applications and games are still using the CPU just as they did 10 years ago. To a large extent, the only difference between most PCs today and those of even 15 years ago is processor speed.
Recently there's been a lot of emphasis on multicore CPUs and 64-bit CPUs. Multicore CPUs may be able to perform some kinds of work twice as fast, but they don't really make your computer twice as fast because your multicore processor is still doing all the work. 64-bit CPUs help almost no one unless you have more than 4 GB of RAM. Other than that, they just make all your pointers take up twice as much memory.
When was the last truly vital step forward in computing? The Commodore C64 had hardware sprite blitting support, and it took how long for the PC to adopt it? It wasn't until the 90s that we finally had hardware graphics acceleration in PCs! Offloading graphics from the CPU was a huge performance gain!
For the last couple years, I've been telling friends that computers need to have physics support in the hardware, and today, finally, I read about a company called Ageia building expansion cards that offload physics calculations from the CPU!
It's true that many people look at modern video games and don't even realize how much is going on behind the scenes to figure out how all those pretty graphics should interact with each other. I've built some basic 3D worlds, and even with the basics comes a high learning curve for figuring out how to keep the camera from falling through the sloped "land" beneath it, especially when floor-above-floor situations are involved. So getting this new technology accepted by the ignorant masses will be difficult, but it is vitally important! Success will be in building standardized APIs with multiple hardware vendors, similar to the graphics card market.
According to some quick searching, the cards/chips from Ageia can calculate 530 million sphere collisions per second! Calculating whether two spheres have collided is pretty simple: if the distance between the center points of two spheres is less than or equal to the sum of each sphere's radius, then you have a collision! But which points on the surfaces are intersecting? At what angles should the spheres be repelled from the collision? These questions and others take a lot more math, and that means a lot more CPU time!
Parallelization is the key to making computers faster. If a graphics card is rendering your graphics, and if a physics boards is calculating collisions and ray tracing, then imagine how much more your 3 GHz multicore CPU can do now!
This type of advance isn't just for games. Hardware physics acceleration can be used to speed up a variety of scientific simulations like those in, obviously, physics (particle simulators) and also in simulated software testing environments for things like cars, airplanes, and even buildings! Graphical user interfaces in 2D could also take advantage of hardware physics acceleration.
There is another new technology called TCP/IP Chimney aiming to move more of the network infrastructure from software to hardware, so combine this with the physics card and the graphics card, and you are left with a multicore CPU (or multiple single core CPUs) that can spend its time tying all these parallel parts together to create a truly remarkable (and fast) experience! Of course, they'll all most commonly come together in video games!
That leaves just one more thing to offload to hardware... How about AI on an expansion card?