NV3 configuration
There are several different ways that an NV3-based GPU can be configured, depending on the level of flexibility required and who is configuring it. Configuration is done at either the OEM card design level, the manufacture time of the chip, or at the VBIOS or driver level. Each of these have their own mechanisms for configuration; some appear to be burned into the silicon with a focused ion beam (FIB)-type technique, others use physical solder-bridged jumpers or other similar mechanisms at the board level, and others are done via software. In some cases, multiple of these methods are usable.
Configuration types
Manufacture-time configuration
Configuration can be done at manufacture time, presumably using chip level modification techniques such as focused ion beam (FIB), by the manufacturer. This kind of configuration encodes both chip-level configuration, such as the stepping, and information required for the graphics chip to communicate with other parts of the hardware, such as the size of the bus, the amount of VRAM connected and the type of VRAM connected to the bus.
PMC_BOOT_0
Main article: NV3 PMC#PMC_BOOT_0
Bit range (high:low) | Name | Purpose | Values |
---|---|---|---|
3:0 | FIB_REVISION |
Focused ion beam chip modification revision. Presumably for modifying the chip to fix bugs after the die is manufactured |
|
7:4 | MASK_REVISION |
Revision of the silicon die. |
|
15:8 | IMPLEMENTATION |
Variation of the architecture. This is actually an unused leftover from the NV1 era, where different versions were sold with slightly different functionality (in the case of the NV1, these were the NV0, NV1 with 32-bit DRAM, NV1 with 32-bit VRAM, and an NV1 with a "Picasso" 128-bit DAC), as well as scrapped plans for an audio-less STG-3000 later on. |
|
23:16 | ARCHITECTURE |
The version of the NV architecture. |
In practice only the value 3 will ever be used on NV3. |
27:24 | MANUFACTURER |
Another NV1 remnant, from when the NV1 could either be branded as the SGS-Thomson STG-2000 (1, MANUFACTURER_SGS ) or the Nvidia NV1 (0, MANUFACTURER_NV . |
|
31:28 | FOUNDRY |
The foundry partner that manufactured the GPU. |
|
PFB_BOOT_0
Main article: NV3 PFB#PFB_BOOT_0
The PFB_BOOT_0
provides configuration for the framebuffer interface. It is programmed at board manufacture time, as opposed to chip manufacture time; the configuration information provided by this register is used in order for the graphics chip to communicate with other parts of the hardware, such as the size of the bus, the amount of VRAM connected and the type of VRAM connected to the bus.
Bit range (high:low) | Name | Purpose | Values |
---|---|---|---|
1:0 | RAM_AMOUNT |
The amount of Video RAM on board |
No 1 MB card was ever made (although earlier drivers mention them, the code was removed at some point), and only a single NEC OEM'd 2 MB card was released (exclusively as an OEM card in Japan) |
2:2 | RAM_WIDTH |
The width of the memory bus |
|
3:3 | RAM_BANKS |
The number of banks used for memory. It is not known if one bank corresponds to one physical chip or if the types of RAM chips that are supported are limited. |
|
4:4 | RAMDATA_TWIDDLE |
Holds a boolean indicating if the VRAM data should be "twiddled" (possibly some preprocessing required for certain types of RAM chips) |
|
5:5 | RAM_AMOUNT_EXTENSION |
Holds a extra bit involving "extension RAM". This most likely exists since RAM_WIDTH 0 indicates 1 megabyte, and it was required in order to distinguish between 1 MB and 8 MB cards. |
|