[HN Gopher] The Dawn of Nvidia's Technology
___________________________________________________________________
The Dawn of Nvidia's Technology
Author : wmf
Score : 102 points
Date : 2025-05-20 17:04 UTC (5 hours ago)
(HTM) web link (blog.dshr.org)
(TXT) w3m dump (blog.dshr.org)
| pjmlp wrote:
| I wanted to buy a Voodoo card, and due to PCI incompatible
| version, had to trade it back for a Riva TNT.
|
| Back then I was quite p***d not being able to keep the Voodoo,
| how little did I know how it was going to turn out.
| stewarts wrote:
| We hold you singularly responsible for the eventual failure of
| the Voodoo3/4/5 and Nvidia domination.
| pjmlp wrote:
| Sorry.... :)
| ahartmetz wrote:
| I had a Riva TNT at the time, and a friend's Voodoo... 2? sure
| ran Half-Life better than my card. The Voodoo 2 probably really
| was the better GPU at the time. Later games required later APIs
| (unsupported by older cards) - and much higher performance -
| anyway, so longevity was not much either way.
| 2OEH8eoCRo0 wrote:
| No mention of SGI.
| wmf wrote:
| AFAIK the SGI-Nvidia connection was after DSHR's time.
| rjsw wrote:
| I still have a NV1 card.
| christkv wrote:
| Me too i also have a rendition verite card which i guess in
| some ways is the first real fully programmable consumer gpu as
| it has a risc processor.
| rjsw wrote:
| I also have an even older NEC ISA card with a TI TMS34010
| chip [1], that was a programmable CPU/GPU.
|
| [1] https://en.wikipedia.org/wiki/TMS34010
| mrandish wrote:
| This kind of retrospective from key people who were involved is
| invaluable from an historical perspective. I find hearing first-
| hand accounts of the context, assumptions, thought processes,
| internal debates, technical limitations, business realities and
| even dumb luck a good way to not only understand how we got here
| but how to do as well (or better) going forward.
|
| While the nitty gritty detail of recollections captured when
| still fresh in memory can be fascinating, I especially appreciate
| reflections written a few decades later as it allows putting the
| outcomes of key decisions in perspective, as well as generally
| enabling more frank assessments thanks to fewer business and
| personal concerns.
| rhdjsjebshjffn wrote:
| I'm excited about this too, but it's a little concerning
| there's a brand in the title. There's no shortage of those from
| ati, intel, amd, apple, ibm, the game gaggle, etc to interview.
| The fact that nvidia succeeded where others failed is largely
| an artifact of luck.
| jjtheblunt wrote:
| Nvidia's Cg language made developers prefer their hardware,
| I'd say.
| killme2008 wrote:
| Really fascinating story--thanks for sharing! Graphics
| programming has been a major driving force behind the widespread
| adoption of object-oriented programming, and the abstraction of
| devices in this context is truly elegant.
| hackyhacky wrote:
| > At a time when PC memory maxed out at 640 megabytes,
|
| Pretty sure the author meant write 640 _kilobytes_.
| rjsw wrote:
| Maybe that is what they were thinking but anything designed to
| work with a PCI bus would have been introduced after PCs became
| capable of using more memory than that.
| usefulcat wrote:
| It's hard to tell exactly what time frame the author is
| referencing there. For context, NV1 was released in '95, by
| which time it was not uncommon for a new PC to have 8-16 MB of
| memory (I had a 486 with 16 MB by '94). Especially if you
| planned to use it for gaming.
| npalli wrote:
| The sentence and paragraph which makes it clear that this was
| megabytes and not kilobytes
|
| _At a time when PC memory maxed out at 640 megabytes, the fact
| that the PCI bus could address 4 gigabytes meant that quite a
| few of its address bits were surplus. So we decided to increase
| the amount of data shipped in each bus cycle by using some of
| them as data. IIRC NV1 used 23 address bits, occupying 1 /512th
| of the total space. 7 of the 23 selected one of the 128 virtual
| FIFOs, allowing 128 different processes to share access to the
| hardware. We figured 128 processes was plenty._
| AStonesThrow wrote:
| Okay but "640" is a completely fictitious number for
| installed RAM in any given PC.
|
| PC memory was nearly always sold in powers of two. So you
| could have SIMMs in capacity of 1MiB, 2MiB, 4, 8, 16MiB. You
| could usually mix-and-match these memory modules, and some
| PCs had 2 slots, some had 4, some had a different number of
| slots.
|
| So if you think about 4 slots that can hold some sort of
| maximum, we're thinking 64MiB is a very common maximum for a
| consumer PC, and that may be 2x32 or 4x16MiB. Lots of people
| ran up against that limit for sure.
|
| 640MiB is an absurd number if you think mathematically. How
| do you divide that up? If 4 SIMMs are installed, then their
| capacity is 160MiB each? No such hardware ever existed. IIRC,
| individual SIMMs were commonly maxed at 64MiB, and it was not
| physically possible to make a "monster memory module" larger
| than that.
|
| Furthermore, while 64MiB requires 26 bits to address, 640MiB
| requires 30 address bits on the bus. If a hypothetical PC had
| 640MiB in use by the OS, then only _2 pins_ would be unused
| on the address bus! That is clearly at odds with their
| narrative that they were able to "borrow" several more!
|
| This is clearly a typo and I would infer that the author
| meant to write "64 megabytes" and tacked on an extra zero,
| out of habit or hyperbole.
| chadaustin wrote:
| You are straight up wrong. The first computer I ever built
| was a Pentium 2, RivaTNT, and it had 640 MB RAM.
|
| I can't find the purchase receipts or specific board brand
| but it had four SDRAM slots, and I had it populated with
| 2x64 and 2x256.
|
| Edit: Found it in some old files of mine:
|
| I was wrong! Not four DIMM slots... three! One must have
| been 128 and the other two 256. Pentium II
| 400, 512k cache Abit BF6 motherboard 640 MB
| PC100 SDRAM 21" Sony CPD-G500 (19.8" viewable, .24
| dot pitch) 17" ViewSonic monitor (16" viewable, .27
| dot pitch) RivaTNT PCI video card with 16 MB VRAM
| Creative SB Live! Creative 5x DVD, 32x CD drive
| Sony CD-RW (2, 4, 24) 80 GB Western Digital ATA/100
| 40 GB Western Digital ATA/100 17.2 GB Maxtor
| UltraDMA/33 HDD 10.0 GB Maxtor UltraDMA/33 HDD
| Cambridge SoundWorks FourPointSurround FPS2000 Digital
| 3Com OfficeConnect 10/100 EtherNet card 3 Microsoft
| SideWinder Gamepads Labtec AM-252 Microphone
| Promise IDE Controller card Hauppage WinTV-Theatre
| Tuner Card
| AStonesThrow wrote:
| Alright then! Humbly, I stand corrected about my poor
| speculation without research. It looks like 640MiB has
| been a perfectly achievable configuration, especially
| with 2x256+2x64 or such. That is, I must say, a huge
| amount of RAM. Like, way more than any video game ever
| specified in HW requirements. What use cases applied that
| you could use up 640MiB in that era, I wouldn't know!
|
| I remain a bit mystified about why it would be a hard
| maximum, though. Did such motherboards prevent the user
| from installing 4x256MiB for a cool 1GiB of DRAM? Was the
| OS having trouble addressing or utilizing it all? 640MiB
| is not a mathematical sort of maximum I was familiar with
| from the late 1990s. 4GiB is obviously your upper limit,
| with a 32-bit address bus... and again, if 640MiB were
| installed, that's only 2 free bits on that bus.
|
| So I'm still a little curious about this number being
| dropped in the article. More info would be enlightening!
| And thank you for speaking up to correct me! No wonder it
| was down-voted!
| chadaustin wrote:
| I did a bunch of media and software development back then
| so RAM helped a lot. Why 640? Not sure. My particular
| board could have gone up to 768. I did some googling and
| found some boards that maxed out at 1 GB.
|
| That was a weird time in computing. Things were getting
| fast and big quickly (not that many years later, I built
| a dual-socket Xeon at 2.8 GHz, and before that my brother
| had a dual socket P3 at 700 MHz.) but all the expansion
| boards were so special-purpose. I remember going out of
| my way to pick a board with something like seven
| expansion slots.
|
| But I think your question about why the author said 640
| is fair! Maybe they had a machine like mine around then.
| Or maybe it's something NVIDIA was designing around?
| artyom wrote:
| This reads as one of the many engineering marvel stories (e.g.
| Bell Labs, Xerox) where revolutionary technology is created by a
| combination of (a) clever engineers with enough "free" time, and
| (b) no clueless managers around.
| whyowhy3484939 wrote:
| You can read in Kernighans History of Unix that really good
| managers - "enlightened management" IIRC - were involved and
| not just involved, some of them were absolutely crucial or Unix
| won't have existed. It's not like you can just let loose a
| couple of big brains and things will work out fine. They won't
| (and didn't).
| jacobgorm wrote:
| I remember sitting next to David Rosenthal at a conference
| reception (must have been FAST, which makes sense given his
| involvement with LOCKSS) in San Jose some time around 2010 or
| 2011, not knowing up front who he was. He explained some of the
| innovations he had made at NVIDIA around making the hardware more
| modular and easier for parallel teams to work on, and we chatted
| about the rumors I had heard about SUN thinking about licensing
| the Amiga hardware, which he confirmed but said would have been a
| bad idea, because the hardware didn't support address space
| protection. I guess I didn't know enough about him or NVIDIA to
| be sufficiently impressed at the time, but he was a very friendly
| and down to earth person.
| Animats wrote:
| That's from the period when there was no standardization of how
| the CPU talked to the graphics device. Triangles or quads? Shared
| memory or command queues? DMA from the CPU side or the graphics
| device side? Graphics as part of the CPU/memory system or as part
| of the display system? Can the GPU cause page faults which are
| serviced by the virtual memory system?
|
| Now we have Vulkan. Vulkan standardizes some things, but has a
| huge number of options because hardware design decisions are
| exposed at the Vulkan interface. You can transfer data from CPU
| to GPU via DMA or via shared memory. Memory can be mapped for
| bidirectional transfer, or for one-way transfer in either
| direction. Such transfers are slower than normal memory accesses.
| You can ask the GPU to read textures from CPU memory because GPU
| memory is full, which also carries a performance penalty. Or you
| can be on an "integrated graphics" machine where CPU and GPU
| share the same memory. Most hardware offers some, but not all, of
| those options.
|
| This is why a lot of stuff still uses OpenGL, which hides all
| that.
|
| (I spent a few years writing AutoCAD drivers for devices now best
| forgotten, and later trying to get 3D graphics to work on PCs in
| the 1990s. I got to see a lot of graphics boards best forgotten.)
| saltcured wrote:
| And that was an evolution of earlier 2D cards where you had a
| potential mixture of CPU-addressable framebuffer and various
| I/O ports to switch modes between text and raster graphics,
| adjust video modes in DACs, adjust color palette lookup tables,
| load fonts for text modes, and maybe address some 2D
| coprocessors for things like "blitting" (kind of like
| rectangular 2D DMA), line drawing, or even some basic polygonal
| rendering with funny options like dithering or stipple
| shading...
| cadamsdotcom wrote:
| > all an application could do was to invoke methods on virtual
| objects .. the application could not know whether the object was
| implemented in hardware or in the resource manager's software.
| The flexibility to make this decision at any time was a huge
| advantage. As Kim quotes Michael Hara as saying:
|
| > "This was the most brilliant thing on the planet. It was our
| secret sauce. If we missed a feature or a feature was broken, we
| could put it in the resource manager and it would work."
|
| Absolutely brilliant. Understand the strengths and weaknesses of
| your tech (slow/updateable software vs fast/frozen hardware) then
| design the product so a missed deadline won't sink the company. A
| perfect combo of technically savvy management and clever
| engineering.
| tiahura wrote:
| Talk by Erik Lindholm (now retired), on Riva 128 and many of the
| other early Nvidia cards:
| https://ubc.ca.panopto.com/Panopto/Pages/Viewer.aspx?id=880a...
| trinsic2 wrote:
| I stopped reading right here:
|
| > Because Nvidia became one of the most valuable companies in the
| world, there are now two books explaining its rise and extolling
| the genius of Jensen Huang,
|
| Yeah, he's a real genius. (Sarcasm). He is a marking guy, there
| is no genius behind this man.
|
| The fact that Nvidia uses its market position cause harm to the
| industry by strong-arming partners to toe the line makes this
| company a problem, just like all the others. They operate like
| any other predatory corporation.
| jwmcq wrote:
| Probably read the rest? I did not see Jensen's name on any of
| the patents that this key engineer discusses the detail and
| rationale of, and I feel that those names are listed fairly
| deliberately.
___________________________________________________________________
(page generated 2025-05-20 23:00 UTC)