51

Reading on the AGP spec, the little bits I've found on sites like AGP interface pinout and wiring @ old.pinouts.ru, say:

The Accelerated Graphics Port (also called Advanced Graphics Port) is a high-speed point-to-point channel for attaching a single device (generally a graphics card) to a computers motherboard, primarily to assist in the acceleration of 3D computer graphics. Many classify AGP as a type of computer bus, but this is something of a misnomer since buses generally allow multiple devices to be connected, while AGP does not. AGP originated from Intel, and it was first built into a chipset for the Pentium II microprocessor. AGP cards generally slightly exceed PCI cards in length and can be recognized by a typical hook at the inner end of the connector, which does not exist on PCI cards. Nowdays AGP is almost replaced by PCI-Express.

This tells me that the connector is, in fact, more generic and just a high-speed peripheral connect to the CPU. This has obvious advantages for graphics processing which needed the higher bandwidth of the time, but I can think of several other devices which would enjoy that connection speed (capture cards, disk controllers, cache devices, etc).

Were there reasons this wouldn't be done, and are there examples of hardware utilizing the AGP connector in this manner?

6
  • 20
    I am a little distressed that AGP is retro computing now! Nov 13, 2020 at 8:24
  • 12
    @trognanders: AGP can legally drink in the USA Nov 13, 2020 at 18:52
  • 9
    OMG, AGP on the RC SE... I am ooold...
    – peterh
    Nov 13, 2020 at 20:58
  • 10
    Put another way, AGP was released closer to the PC’s creation than to this point in time. Nov 13, 2020 at 21:56
  • 4
    Doesn't really count as it's still a graphics card, but ATI's AGP-based 8500DV card was able to offer a FireWire port. techrepublic.com/article/… Nov 14, 2020 at 12:57

4 Answers 4

63

I researched this question online fairly thoroughly a while back. I could not find any reference to an AGP device that wasn't a graphics card. It wasn't exhaustive, and absence of proof is not proof of absence, but I strongly suspect no such cards were made. I also think there are technical and economic reasons that make it unlikely. It would have been a rather strange product, with no clear target market.

The main feature of AGP over PCI is the addition of an DMA channel to main memory. Importantly, this is an exclusive channel, not a proper bus. You can have only one AGP slot. So the only real market for such a card would be for computers that don't need graphics, such as servers.

But the server market already had high-bandwidth buses like PCI-X, and they were actual buses, so you could, for example, have both a high-speed SCSI and a Gigabit Ethernet card in the same machine. I suspect most customers who wanted a very high-end peripheral at the time, like a Gigabit Ethernet card, would not want to stick it in a low-end desktop motherboard with only one high-speed slot.

11
  • 3
    I'm fairly certain I've seen motherboards with two AGP slots. I know AGP was an exclusive channel so I assume it only allowed switching between one of the two cards during POST or had a jumper on the motherboard - or is that a false-memory of mine?
    – Dai
    Nov 12, 2020 at 3:55
  • 31
    UPDATE: Ah, found it - the HP ES80. It had two AGP slots because it was technically two separate computer nodes on the same board.
    – Dai
    Nov 12, 2020 at 3:56
  • 2
    The setup (dedicated DMA to main RAM) would be useful in the lab for data-capture or arbitrary waveform generation, but the transient recorders I've used have all been since PCIe (and GigE) were viable options. It seems like historically AGP wasn't used for capture, but machines built for it used AGP for graphics to free up their fastest general-purpose buses for the experimental hardware
    – Chris H
    Nov 12, 2020 at 11:37
  • 2
    @lvd Sure, PCI can do DMA too. But AGP can do it quickly enough to stream textures directly from system RAM. So, I meant an additional, dedicated DMA channel.
    – RETRAC
    Nov 12, 2020 at 19:31
  • 2
    @RETRAC so it is just about bandwidth (and maybe latency) of AGP, or is it exactly about separate, non-coherent channel to system RAM? "Non-coherent" means for me that it bypasses routing (in PCI, DMA might be targeted to another device and not necessarily system RAM) and bypasses cache coherence (DMA writes must at least invalidate cache lines that contain data the DMA writes to, and DMA reads must suck data from caches in writeback mode).
    – lvd
    Nov 13, 2020 at 10:05
45
+100

While working on upgrading my Super Socket 7 based NAS, trying to get as much performance out of the platform as possible, I asked myself the same question. As an obviously headless NAS won't need a graphics card sitting in the AGP, why leave the interface with the highest throughput unused? And I started researching into the AGP port. When looking for information online about using the AGP port for anything else than a graphics card you won't find much. So I had to look for information elsewhere. And I found some in the AGP Wikipedia article:

An AGP bus is a superset of a 66 MHz conventional PCI bus and, immediately after reset, follows the same protocol.

And further reading of the AGP spec reveals the same thing, almost all the PCI signals are part of the AGP connector. So making an AGP to PCI adapter seemed pretty straight forward. But it really looks like nobody has done it, at least there's no evidence to be found. So I began to tackle it myself. I usually prefer to build prototypes before designing and ordering PCBs so I also chose to try the manual way first in this case. PCI and AGP riser cards were quickly sourced and as soon as I got them the port of the AGP riser was ripped off and wired straight to the PCI riser according to the AGP and PCI specs. Handbuilt AGP to PCI Adapter After finishing the adapter I noticed that I didn’t have a PCI graphics card at hand and I therefore had to test it blindfolded. So I plugged in an HP NC370T PCI-X Gigabit Ethernet card into the AGP port of my testbed, fired it up and tried to SSH into it. And it worked. Just like that. I still can’t really excite myself about it, as it was just too easy. Usually stuff like that never works on the first try. After the handbuilt prototype proved that an adapter of this kind is working I started to design a PCB according the AGP spec for impedance and length matching. Final AGP to PCI Adapter So far any network card I’ve tried worked flawlessly. Compatibility with PCI-X hardware RAID cards seems to be more problematic, although a simple SiI 3512 based SATA adapter works flawlessly. My assumption currently is, that hardware RAID cards rely on the LOCK signal, which is missing from the AGP, for cached writes. So cached writes are either disabled (Adaptec 2420SA), crash the system (3ware 9550), or the RAID set isn't recognized at all (Areca). Adaptec 2820SA connected to AGP (Bus:01) But if the connected card and the underlying system have the capabilities the full 32bit 66 MHz PCI bandwidth of ~250 MB/s can be achieved.

As I've got a couple of the PCBs made, I've setup a simple ordering page for the adapter and other retro hardware related stuff I'm working on: https://recnas.org/

RECNAS AGP to PCI Adapter

6
  • 2
    Amazing work. I wonder if it can count as an answer if you created it as part of answering the question? ;-) Jul 4, 2022 at 20:22
  • 2
    @JacobKrall No reason why not. The exception is something like Code Golf where it is a contest and that would be cheating (it is spelled out in the rules). But in most other SE sites, including RC, the goal is to solve problems, and creating something new is perfectly fine. Jul 10, 2022 at 18:45
  • 2
    Doing some more research I came across this section in the datasheet of the Intel 875P chipset:
    – Peter
    Jul 21, 2022 at 10:40
  • 2
    5.3.6 Support for PCI-66 Devices The MCH’s AGP interface may be used as a PCI-66 MHz interface with the following restrictions: 1. Support for 1.5 V operation only. 2. Support for only one device. The MCH will not provide arbitration or electrical support for more than one PCI-66 device. 3. The PCI-66 device must meet the AGP 2.0 electrical specification. […] There are some more limitations following, but this shows that Intel officially supported the use of the AGP as 66 MHz PCI for their “entry level” server chipset.
    – Peter
    Jul 21, 2022 at 10:57
  • @Peter the i865PE could so something similar (although the datasheet says “An external graphics device is a requirement” — but it’s not clear whether that means that the MCH only supports graphics devices on the AGP interface, or whether the system as a whole needs an external graphics device). I even had an i865PE-based system that would enumerate PCI-66 devices in its top-most PCI slot with the “66mhz” flag set, although I never could determine whether that actually meant the connection to the card was running at 66MHz. (The MCH-to-SB link is limited to 266MBps anyway.) Oct 6, 2022 at 7:50
30

Yes, because it did not provide the necessary connections for wider use

AGP had asymmetric bandwidths. It was very much faster in transferring data from the CPU to the graphics card. For transferring data back from the graphics card to the CPU though, it was no faster than a PCI slot.

For graphics cards, this is exactly what you need. You typically do not need to read much data back from the graphics card. Most other applications need symmetric bandwidths in both directions, and AGP simply was not designed for this.

This was a major obstacle to graphics cards being useable for more general processing, initially with more custom code and later with CUDA. Whilst input data could be transferred more quickly, retrieving output data was no faster than a regular PCI card. Since motherboards with more than one AGP card were very rare, there was no incentive for manufacturers to use AGP.

Lessons learnt from AGP are why PCIe was developed, because the industry realised the missed potential of needing a faster bus system which could be used by everyone.

23

No, there was an AGP to USB card.

The HP rp5000 Point of Sale system was launched circa August 2003 and includes this unique AGP card: HP r5000 AGP to PoweredUSB card

The rp5000 has the (half-height) AGP card installed vertically and two PCI slots installed horizontally using a riser board, allowing the use of two full-length PCI cards on a half-height system. The AGP card is placed flush with the rest of the motherboard I/O, slightly disguising it.

Back I/O of HP rp5000

This card provides three PoweredUSB ports used to connect and power barcode scanners and receipt printers for a POS setup. The two blue ports provide 12V power and the red port provides 24V power (power provided via Molex connector). The nine pin internal USB connector on the top of the card connects the 12V ports to the motherboard's internal USB header with an internal USB cable. However, as can be seen on the back of the card, pin 4 of the card traces towards the 24V port, meaning the card is using the USB connection provided by pin 4 of the AGP spec, as linked above, to connect that port. Pin 1 side B of the AGP port provides USB overcurrent protection, but it is left unwired, as PoweredUSB has its own OCP. The rest of the AGP pins are also left unwired except the ground pins, and there's reason to believe the AGP port on the motherboard is also not fully wired, as the rp5000's hardware reference guide states "An AGP card will not work in the AGP slot."

Backside of the card, showing pin 4 connected and tracing towards the bottom USB port

So why use AGP if the only thing you're using from the standard is the USB connection for only one USB port? A later model from the line, the HP r5700, used a PCI card for their PoweredUSB ports instead, so a half-height PCI card could have been used instead.

The only reason I can think of is that there must have been only four USB ports available from the motherboard's USB controller, as the rp5000's motherboard has two USB ports on the motherboard I/O and one internal USB header for the two 12V ports. Given this limitation, HP had to create a card that would also provide USB support to a fifth port. HP could have done this using PCI, but that would require purchasing another USB controller chip, so they decided to use the single USB port provided by the AGP standard instead.

In fact, the rp5700 PCI card didn't use the PCI interface with a USB controller to connect its USB ports either, as all its data pins are left unwired. Instead, it uses internal USB connectors for its four ports, but its motherboard supports two internal USB headers.

This is a super unique use of the AGP port, and the only other devices that I know of that actually use the USB connection are the Apple-specific versions of ATi and Nvidia AGP video cards that supported the Apple Display Connector.

1
  • 5
    Looks like a 3.3V AGP-Pro card. Nice idea and for sure a good way to add much needed ports to a POS system while still keeping both standard slots available for customer specific add on. Nice find. Thanks.
    – Raffzahn
    Nov 17, 2023 at 15:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .