Moderne Mikrochips bzw. auch allgemeine Aufgabenstellungen sind zu komplex um sie komplett und auf jeder Ebene zu verstehen.
Als Beispiel könnte mal die Entwicklung eines Programms heranziehen. Dabei wird der Entwickler in den seltensten Fällen wissen wie das Betriebssystem den Speicher verwaltet oder wie die Transistoren in der CPU verschaltet sind. Es ist aber auch nicht nötig das zu wissen weil es folgende Prinzipien gibt:
- Abstraktion
- Disziplin
- drei Ys
- Hierarchie (hierarchy)
- Modularität (modularity)
- Regularität (regularity)
Abstraktion
Bei der Abstraktion werden unnötige Details versteckt oder ausgeblendet. (Ein Anwendungsprogrammierer muss nicht wissen, wie das OS den Speicher verwaltet. Ein weiteres gutes Beispiel ist das OSI-Referenzmodell.)
Dabei ist es hilfreich wenn man die anliegenden Abstraktionsebenen versteht (Eine Darstellung der Abstraktionsebenen ist um Buch¹ S. 4).
hiding details when they are not important¹
Disziplin
Die wissentliche und beabsichtigte Beschränkung der Realisierungsmöglichkeiten (Man nutzt nur wenige Spannung in einem Mikrochip (z.B. 0 und 1,33V) statt das gesamte Spektrum zu nutzen.) Erst dadurch sind komplexe Schaltungen möglich, denn es ist wesentlich einfacher einen Chip mit 3 Mrd. Transistoren zu entwerfen die nur 2 definierte Zustände haben können als eine analoge Schaltung mit 100 Transistoren!
Des weiteren schafft man durch Disziplin eine größere Kompatibilität der einzelnen Teile untereinander (Beispiel im Buch¹ auf S. 5 and 7).
Digital circuits use discrete voltages, whereas analog circuits use continuous voltages. [...] However, digital circuits are much simpler to design. By limiting ourselves to digital circuits , we can easily combine components into sophisticated systems that ultimately outperform those built from analog components in many applications.¹
drei Ys
- Hierarchie
Man Zerlegt das System in Module und Untermodule. Ein einzelnes Modul ist leichter zu verstehen als das Gesamtsystem. - Modularität
Einheitliche Schnittstellung und Funktionen zwischen für die Module, sodass die Module zusammen das System ergeben. - Regularität
Wiederverwendbare Module für gleiche/ähnliche Systeme. Dadurch sinkt die der Module die erstellt werden müssen, und es gibt weniger verschiedene Module.
(Beispiel Buch¹ S. 6 und 7)
¹ “Digital Design and Computer Architecture”, von David M. Harris & Sarah L. Harris