Yesterday, nVidia announced their new nVidia Optimus technology. The idea of Optimus is to optimizes the mobile experience by letting the user get the performance of discrete graphics from a notebook, while still delivering great battery life. Optimus accomplishes this by automatically and seamlessly selecting the right graphics processor for the job between an NVIDIA discrete GPU or Intel integrated graphics.
Its such a simple idea that begs the question, “Why didnt anyone think of doing this before?” The answer is equally as simple. Its because the hardware and software didnt exist to support this kind of process until now.
Many other sites have covered Optimus from all the hardware angles, but no one has looked at the software that drives Optimus. In reality, nVidia Optimus is a successful implementation of SOA, service oriented architecture.
For those not familiar with SOA, SOA is a flexible set of design principles used during the phases of systems development and integration. A deployed SOA-based architecture will provide a loosely-integrated suite of services .
So, how is nVidia Optimus an SOA architecture? Simple, from a hardware standpoint, when the discrete GPU is called for, it powers up in a split second and copies the results of its frame-buffer to the frame-buffer of the integrated graphics chip over the PCIe bus. The results are displayed on the monitor.
From a software view, when the user opens the application (whether is a game, video, etc), it calls to the Optimus routing service to determine whether GPU or IGP is needed. When that decision is made, it calls to the profile which will best service the request. This profile is requested through a web service that validates the profile against a database of profiles built by nVidia for games, apps, etc. This profile then “talks” to the hardware layer which produces the desired action. This action “talks” back to the driver service which finally goes back to the user video display.
nVidia Optimus is a great achievement in graphic utilization. But dont forget the software engineering behind all the hardware that makes this new technology a game changer in the industry.