Ein Grafikdisplay wird in zwei Teile gegliedert:
Das 'Glass' ist das Display was du siehst. Also das Glas mit den
Flüssigkristallen und Transistoren. Ohne Intelligenz, Speicher, .... Das
nackte Glas.
Der Controller, dessen Aufgabe es ist ständig die Pixelinformationen aus
einem Grafikspeicher (GDDRAM) ans Glass zu senden, auch wenn sich nichts
im RAM geändert hat. Der Controller muss ständig und ununterbrochen
senden. Was die Start/End-Adresse im GDDRAM ist, wieviel Zeilen und
Spalten er senden muss, wie er die Daten senden muss, in welchem
Intervall, etc. steht in der Initialisierungs-Routine.
Andererseits muss der Inhalt des GDDRAM verändert werden können. Dazu
hat der Controller ein paralleles oder serielles Interface über das ein
uC Daten ins GDDRAM senden kann.
Da über ein und dasselbe Interface der Controller konfiguriert wird und
Daten im GDDRAM geändert werden, muss man vor jedem Senden dem
Controller mitteilen ob die folgenden Daten Befehle oder Daten für den
Speicher sind, wie du selbst schon beschrieben hast.
Und dann hat so ein Controller manchmal noch integrierte Grafikroutinen
die eine Pixelmanipulation beschleunigen. Bspw. verschieben bestimmter
Bereiche, Löschen von Bereichen, Kopieren, ...
Das sind aber Extras, die je nach Controller variieren und man vorerst
ignorieren kann.