Theoretical DisplayPort Networking

This is a theoretical idea on how to use DisplayPort/HDMI as a very high-speed network service, for the intended use of headless servers. Here’s how it works:

On one system, you have your regular DisplayPort output, which is wired directly to another computer with a HDMI capture card. Lets say it’s a card that supports 1080p@60Hz (note that being progressive is important; it can’t be interlaced).

The concept behind this idea is to use an OpenGL-accelerated application that can convert a chunk of data into an image, which is then transmitted and interpreted on the other system. While this may be uni-directional, a standard 115200bp/s serial connection could be used for requests, acknowledgements, and MD5 checksums (you don’t really need much bandwidth for any of that).

For some technical and mathematical info, lets say you’re running 24 bit color (~16.7 million colors), where each color ranges from 0-255. Each color contains a one-byte unsigned integer (uint8_t in C). In other words, 1 pixel can contain a total of 3 bytes. 1080p contains 2,073,600 pixels. If we capture at 60FPS, that gives us the following equation: 3*2073600*60=373248000 bytes per second.  Or, 355.97 megabytes per second.  This should function just fine using the IGP of something such as an AMD A8 or Intel Core i5 on either end.
To make things more interesting, I suggest DisplayPort, because it can be daisy chained. Using a single cable, you could transmit data from multiple computers simultaneously.

If you want even MORE bandwidth, you could also take advantage of the audio source for additional data, but my knowledge of how digital audio works is very limited so I never got into much detail about that.

DisplayPort and HDMI also contain the ability to send text streams.  This is used to help identify the display and support features like CEC. Unfortunately, not many devices are compatible with CEC and it may be difficult to tap into this.  But if you can, this could replace the need for the separate serial port.

I see this being particularly useful in headless ARM clusters, where many don’t even have gigabit Ethernet and are bad at processing massive chunks of data. An ARM server could act as a hypervisor, receiving information to be processed, and through HDMI send the workload to an x86 system, which in turn could have access to high-speed storage where the processed data can be placed.

Just an idea, but for non-accuracy critical situations, this could be very effective and help take full advantage of hardware that may go unused.

See other Hacks and Mods

Your Feedback