It is clear that the GPU is the piece of hardware of our PC that from a list of instructions sent by the CPU generates the images that we see on our monitor. Process that we have already explained previously, but we have not explained what is the process by which the images are sent to the screen, which we are going to comment on in this article, what is the screen controller?
Before we begin, we must bear in mind that one thing is the video output, which is the external communication interface that communicates the PC or any derived system, such as a console, and another is the screen or video controller. Which is the piece of hardware in charge of reading the image buffer generated in the VRAM by the GPU. Although both concepts are related, we believe that it is important that you know the difference between both concepts. Since the confusion between the two usually brings problems to understand the concept. To make it simpler, first the GPU creates the image buffer, then the display driver reads the image buffer, and then encodes it for the corresponding video interface.
At first there was only the television
The first text terminals for minicomputers brought with them a standard television screen, but without the ability to capture the television signal. The reason? They were sold without the video receiver. However, specialized hardware was required to send the correct signal. The reason is that the video signal of CRT televisions and other derived systems was a continuous signal, so it was necessary to use specialized hardware that was capable of counting the time in which the signal could be emitted and when not so that the image appears correctly on the screen.
The first designs were called TV Typewriters in honor of Don Lancaster’s invention, based on a device that allowed writing text on the screen. The invention was not a computer, but its union with early home CPUs and RAMs gave birth to the first generation of home computers. Such systems initially used a large number of TTL chips, but the LSI chip revolution soon unified those complex circuitry onto a single chip.
But they were not only in charge of counting the times, but also what they did was generate the image to send it to the screen. It was at this time that a series of proprietary video interfaces appeared that tied monitors to specific brands and architectures. The monitor at that time was seen as an accessory from which to capitalize and each platform had its own standard in terms of resolution per line, number of lines, refresh rate and above all video interface.
At the speed of the electron beam
RAM was extremely expensive for early PCs, so having an image buffer was prohibitive. For that, other rendering methods were used that were based especially on rendering at the speed at which the electron beam was going to pass through the screen. That meant that many systems couldn’t calculate anything with the CPU on screen time active for years.
As the price per bit of memory became cheaper it became possible to use systems based on the image buffer. These are based on storing a representation of the image to be played on the screen temporarily in the memory used by the video system. But this image buffer could only be updated during the period when nothing was being drawn in memory. This period was much shorter in number of scan lines and had to share time with the execution time of the program, which affected the performance of the computer.
The solution came with the appearance of dual port RAM, known as VRAM, which allowed access to the image buffer from two different sources. This allowed for on-the-fly modification of the graphical data. But especially it allows the use of double image buffers, in which while the graphics chip is in charge of rendering the next frame the display driver is reading the current image buffer.
LCD Panel and Display Controller
LCD screens have a peculiarity, they do not work using an electron beam, but the image transmission mechanisms used to send images have not changed, what has changed is the medium in which they are sent. So the images are sent in their succession of data packets that the video signal is decoding to display the image in the old fashioned way, that is, by scan lines.
Which means that the mechanisms are exactly the same as before and have not changed. The difference is that the term pixel did not exist in CRT screens and rather they were scan lines that were varying the output color based on varying the output voltage of the signal based on a complex resistance mechanism. In LCD systems, what is sent is the packed data of each pixel, that is, its RGB color information. This being the only change with respect to CRT screens, but that implies not having to use any analog circuit to generate the video signal, hence the video outputs for LCD screens such as DisplayPort and HDMI are called digital outputs. .
Where is the display driver located?
It is found within the GPU itself, accompanying the rest of its accelerators and coprocessors such as the DMA units, the video codec and many other important elements. This is because it accesses the same memory that the GPU accesses, since it needs to access the image buffer to be able to send the image to the video interface.
Today’s display controller has evolved tremendously, allowing not only multiple resolutions, but interacting with various video interface standards and sending different video signals to different displays in sync.