Concurrent development is key for nVidia
All nVidia's design and development work, both hardware and software, is conducted within its SCM environment.
Traditionally, hardware components and the software that sits on top of it have been developed separately.
Beyond the range of reasons for this separate development, the market is showing up more and more companies that are developing both the hardware and a portion of the software stack, to form an integrated hardware/software solution.
Software development teams have for a long time used software configuration management (SCM) systems to manage the code written by developers, track changes, differentiate different versions and manage the test and debug process.
Only a few companies have tended to develop their software and hardware side by side.
More often than not, software and hardware engineers have to work in isolation, without an integrated development platform from which they can easily refer to other team members' work and also the work of colleagues developing on the traditional "other side", either software or hardware.
Development teams are often searching for innovative ways to enhance the development process to engineer a better solution and get it to market more quickly.
There is a trend in the embedded marketplace for solution providers to use an SCM environment to manage the concurrent development of software and hardware.
The companies going down this road believe that their developers benefit from a greater level of awareness of the complete process, whereby everyone involved can visit relevant aspects of the development from its inception.
Such an approach is possible through the use of a common tool to manage all the digital assets.
nVidia is an innovator in its marketplace producing advanced graphics and multimedia processing technology including graphics processing units (GPUs) such as the GeForce2, GeForce3 and GeForce4, plus the Quadro line of professional products.
There are three functional families within the latest GeForce4 range of GPUs.
The GeForce4 MX GPU family is a set of highly integrated GPUs that include dual 350MHz DACs, dual-channel TMDS transmitters, TV encoder and video processing engine (VPE), that aim to bring new levels of graphics performance and display flexibility to the mainstream desktop market.
The GeForce4 Ti family is built to drive complex geometries and character animations.
Made up of 63 million transistors, the latest TI processor has a 128Mbyte frame buffer and the world's fastest DDR memory clocking in at 650MHz, while the core clock can run up to 300MHz.
The GeForce4 Ti delivers nearly twice the performance of nVidia previous high performance GPUs, and enables end users to continue to experience more 'real' immersive graphical environments.
The Go range of mobile processors is designed to addresses the issues of battery life, display quality and performance and size.
nVidia uses dynamic power modulation (enabled through both hardware and software technology) to maintain an optimal balance between GPU and CPU operations.
This balancing act is enabled through a transform and lighting engine which offloads geometry calculations from the CPU to the GPU, and a dedicated video processing engine (VPE), that offloads MPEG2 decoding from the CPU to the VPE, and uses integrated anti-aliasing technology to reduce the computational load on the CPU.
nVidia's semiconductor technology performs these complex calculations, consuming only one sixth of the power versus if the same tasks were handled entirely by the CPU in software.
At the core of nVidia's power saving technology is its attention to dynamic clock scaling, dynamic clock gating and voltage scaling.
There are many clocks in the graphics subsystem, including engine clock, memory clock, and pixel clock, all of which are carefully managed to deliver a great end user experience while consuming the minimum amount of power possible.
The Go GPUs also make extensive use of clock gating to ensure that the portions of the GPU not needed to process or display pixels are using zero power.
The GeForce4 Go family has been designed to operate at the industry's lowest voltage using a power-saving 0.15um LV (low-voltage) process.
In general, GPUs either use a higher voltage at all times or scale voltage to save power.
However scaling up voltage to deliver performance also relatively shortens the battery life.
The advantage of finer process geometries is that the silicon can run at lower nominal voltages.
GPU technology has traditionally lacked the capability to sustain high frame rate performance when anti-aliasing (graphics enhancing techniques involving sampling the content of each pixel at multiple locations) was turned on.
Due to the relatively large size of pixels on notebook LCDs, the jagged edges on objects are unfortunately more pronounced on XGA displays (as opposed to CRT displays) which is what over 80% of notebooks currently ship with.
The GeForce4 Go processors implement 2x, 4x, Quincunx and the new 4XS multisampling modes in hardware, resulting in 4x AA visual quality at 2x sampling frame rates.
Integrated with all nVidia's hardware technology is its unified driver architecture (UDA).
This software technology provides complete support for Microsoft DirectX 8.0, 7.0, 6.0 and 5.0 (IDCT).
It also provides fully compliant support for OpenGL 1.3 for all Windows operating systems and Linux, including WHQL-certified Windows XP, 2000, NT Me, 98 and 95.
Operating three full time teams comprising a total of more than 600 developers from sites in UK, France, Germany and across the USA, all nVidia's design and development work, both hardware and software, is conducted within its SCM environment.
In the SCM environment nVidia's developers who code the software can monitor changes in hardware design.
This lets them ensure that their software fully integrates with, and optimises all the features of the hardware.
At the same time, the teams working on the hardware design are able to design-in component features that will be able to be utilised further with future software versions.
The result of this flexible development process has been a shortening of development cycles and hence a quicker time-to-market.
The final solutions are better integrated, more robust and provide optimised functionality.
An example of how nVidia uses its SCM as an integrated development platform is for a common simulation exercise.
Every manufacturer will go though several levels of simulation on the road to producing any sort of silicon.
nVidia uses its SCM to manage simulation.
Hardware engineers begin to develop the algorithms they want to embed in hardware.
In a traditional development environment, at the stage of the first silicon prototype, files relating to the delivered software would be copied to the hardware team.
However, these files would only give a snapshot of the software, with none of the history being passed over to the new team.
The advantage of completing this within the SCM is that the hardware team has full visibility of the history of the idea, enabling the simulation to be a continuation of the software build process.
Another example would be how nVidia builds follow-on products, using core technology from previous generations.
By using Perforce's inter-file branching, nVidia can develop multiple concurrent chips, and share fixes and algorithms between the different projects, with almost no need to manually merge code.
nVidia builds multiple derivatives of a project.
Using the branching capability of the SCM tool streamlines the process.
A new derivative is assigned a branch, allowing the developers to work on the new product with full and complete access to all prior development history.
This approach was instrumental in allowing nVidia to produce several versions of its GeForce3 GPUs, 6 GeForce chip variants in the last 12 months.
Nick Triantos, Director of Software Engineering at nVidia says they would not have been able to do what they have, in the way they have, without specifically using Perforce's SCM system.
Triantos comments that Perforce's unique inter-file branching technology makes the matter of branching trivial.
The technology's name reflects the unique implementation of branching in Perforce.
Branching is the act of creating a variant, files are the configuration items and inter-file reflects the fact that variants are separate files.
Perforce's inter-file branching allows developers to branch on the fly, with no interruption to their design streams and work processes.
When a new variant is created, pointers do most of the work and a configuration item is only physically copied when actual changes are made.
No matter what the size of the data or meta-data associated with the new variant, Perforce can maintain a superior level of speed, branching an order of magnitude faster than the other competitive products in the marketplace.
It's not just Perforce's superior speed that empowers nVidia.
Unlike other SCM systems, Perforce comes with a bare minimum of implemented control policies.
Companies are able to create their own control management policy in exactly the way they want.
This flexibility has allowed innovators like nVidia to enhance their solution development process.
The development of both hardware and software within an integrated platform is a fundamental departure from traditional development.
The transparency created between developers by nVidia's innovative use of Perforce saves both time and money.
Instead of the usual ebb-and-flow relationship (created by factors like changing customer needs and implementation challenges) between different development teams, everyone can update themselves whenever they want on what is happening in other relevant development areas.
From inception to release, Nick Triantos talks of an SCM system like Perforce as becoming an inseparable part of the methodology of the design and build process.
In a global marketplace where companies are being increasingly differentiated by product quality and timely delivery, using tools that are able to bring innovation to market quickly are crucial.
Not what you're looking for? Search the site.
Browse by category
- Active components (13496)
- Passive components (3574)
- Design and development (10240)
- Enclosures and panel products (3954)
- Interconnection (3618)
- Electronics manufacturing, packaging (3477)
- Industry news (2104)
- Optoelectronics (1953)
- Power supplies (2988)
- Subassemblies (5606)
- Test and measurement (5770)