Memory (interner Speicher)
RAM
Random Access Memory. Arbeitsspeicher mit wahlfreiem Zugriff, Größenangaben in KByte oder MB.
RAM-Chips in PCs sind meist aus dynamischen RAM-Bausteinen (DRAM) aufgebaut. Sie sind mit einem Wasserkübel mit Loch im Boden vergleichbar. Ist dieser Kübel mehr als halb voll, so entspricht dies der Information „1“, ist er weniger als halb voll, so stellt dies „0“ dar. Will man nun den Wert „1“ speichern, so füllt man den Kübel mit Wasser an. Nun sorgt aber das Loch im Boden dafür, dass der Wasserstand ständig sinkt. Das bedeutet, wenn man eine Weile wartet, so geht die Information verloren. Man muss daher regelmäßig in den Kübel schauen und gießt nach Bedarf wieder Wasser nach. Dieses regelmäßige „Schauen-und-Nachfüllen“ (technischer Ausdruck: Refreshing) kostet natürlich Zeit. DRAMs sind aus diesem Grund langsam, aber preiswert. Technisch realisiert wird ein DRAM durch Kondensatoren, deren Ladung aufgefrischt wird. In jedem Auffrischungszyklus wird ein Bit ausgelesen (Kübel ausleeren) und sofort wieder eingelesen (Kübel voll füllen).
Als Gegenstück zu den DRAM-Bausteinen gibt es auch statischen RAM-Bausteine (SRAM), die Daten über einige Zeit behalten können. Sie sind sehr schnell, jedoch wesentlich teurer als die dynamischen RAM-Bausteine. Sie bestehen – technisch gesehen – aus so genannten Flip-Flops, das sind bistabile Multivibratoren, die Schaltungszustände dauerhaft speichern; im Prinzip sind das zwei „gegeneinander“ geschaltete Transistoren.
Eine Schnelligkeitsangabe für Speicherchips ist die mittlere Zugriffszeit (siehe auch „Festplatten“). Sie wird für elektronische Speicher in Nanosekunden (1 ns = 10-9 s) angegeben, bei magnetischen Speichern verwendet man Millisekunden (1 ms = 10-3 s)
CPU-Register | unter 1 ns |
CPU Cache | wenige ns |
RAM | 60 – 70 ns |
Sekundärspeicher: SSD | 0,4 ms = 400 ns |
Sekundärspeicher: HDD | 8 – 10 ms = 8 000 000 – 10 000 000 ns |
Die Speicherkapazität lässt sich an der Chip-Beschriftung erkennen (das „x“ steht für eine zusätzliche, möglicherweise vorhandene Ziffer):
Beschriftung | Speicherkapazität |
x164 | 64 KBit |
x1256 | 256 KBit |
x11024 oder x11000 | 1 MBit |
x41000 | 4 x 1 Mbit |
Oft gibt es ergänzende Angaben zur Zugriffszeit in ns, so bedeutet etwa 11000-10, dass dieser 1 MBit-Chip eine mittlere Zugriffszeit von 100 ns aufweist.
Beispiele
- 4164-20 64 Kbit-Chip mit 200 ns Zugriffszeit
- 41256-10 256 Kbit-Chip mit 100 ns Zugriffszeit
- 411024-7 1 Mbit-Chip mit 70 ns Zugriffszeit
Bauformen von PC-RAM-Speichermodulen
- DIP (Dual Inline Package): Der bekannte „Käfer“ mit den beiden Füßchenreihen:
Beispiel für ein DIP-Gehäuse siehe Bild oben links. Die dargestellte Belegung von Pins 7 und 14 ist üblich, aber nicht verpflichtend. Diese Form wird heute praktisch nur mehr für den CMOS-Speicher benutzt.
- SIMM (Single Inline Memory Module): Hier befinden sich auf einer kleinen Platine alle nötigen Speicherchips aufgelötet. Die Platine weist Kontaktzungen auf, die nur noch in eine spezielle Fassung eingedrückt werden. Vor allem bei Speichererweiterungen wird diese Bauweise angewandt.
So könnte eine 1 MB-Speichererweiterung folgende Chips enthalten:
9 Chips à 1 MBit (11 000; 8 Speicherchips + 1 Paritätschip)
2 Chips à 4 MBit (44 000) und 1 Chip à 1 MBit (11 000)
Die SIMM-Bausteine alter Bauweise hatten 30 Zungen (pins), später folgten 72 pin-SIMMs. Es gibt auch Speicherbausteine mit 130 Zungen. - DIMM (Dual Inline Memory Module): Prinzipiell besteht folgender Unterschied zum SIMM: Während beim SIMM „gegenüberliegende“ Pins (auf beiden Seiten der Platine) miteinander verbunden werden (und somit „einen“ Pin bilden, bleiben alle Pins auf einem DIMM isoliert.
Baugröße: DDR3-DIMM (240 pins): 133,3 mm x 30 mm - SO-DIMM (Small Outline Dual Inline Memory Module): kleinere Bauform für den Einsatz in Notebooks;
Baugröße DDR3-SODIMM (204 pins): 67,6 mm x 30 mm
DRAM-Technologien
Der Aufbau einer einzelnen DRAM-Speicherzelle ist sehr einfach, sie besteht nur aus einem Kondensator und einem Transistor. Heute verwendet man einen MOS-Feldeffekttransistor (MOS-FET). Die Information wird als elektrische Ladung im Kondensator gespeichert. Jede Speicherzelle speichert ein Bit. Während früher meist Kondensatoren in Planartechnologie Verwendung fanden, werden aktuell zwei andere Technologien verwendet (siehe Bild oben rechts):
- Bei der Stack-Technik (englisch stack ‚Stapel‘) wird der Kondensator über dem Transistor aufgebaut.
- Bei der Trench-Technik (englisch trench ‚Graben‘) wird der Kondensator durch Ätzen eines ca. 5–10 Mikrometer tiefen Loches (oder Grabens) in das Substrat erzeugt.
EDO-RAM (= extended data out RAM): Diese Module unterscheiden sich von herkömmlichen RAM-Bausteinen dadurch, dass sie den Speicher in besonderen Lesezyklen auslesen, womit der Speicherzugriff beschleunigt wird. Es gibt Module zwischen 8 MB und 128 MB; als Bauform werden DIMM 72 pin, DIMM 168 pin verwendet. Zugriffszeiten: 60 ns, Versorgungsspannung: 3,3 V und 5,0 V.
SDRAM (= synchroner DRAM): Im Unterschied zum „normalen“ DRAM kann hier ein zweiter Speicherzugriff erfolgen, bevor der erste abgeschlossen ist. Damit wird die Zugriffsleistung erhöht. Die üblichen Pentium II-kompatiblen Motherboards verlangen die Verwendung von derartigen Speichermodulen. SD-RAM-Bausteine arbeiten heute mit Taktfrequenzen von 100 oder 133 MHz und haben Zugriffszeiten von 6 bis 10 ns. Es gibt Module zwischen 128 MB und 1 GB; als Bauform werden DIMM 168 pin und SO-DIMM 144 pin verwendet. Zugriffszeiten: 60 ns, Versorgungsspannung: 3,3 V.
Double Data-Rate SDRAM (DDR-SDRAM): Diese Weiterentwicklung von SDRAM, erreicht fast die doppelte Bandbreite von SDRAM. Es gibt Module zwischen 128 MB und 2 GB; als Bauform werden DIMM 184 pin und SO-DIMM 200 pin verwendet. Versorgungsspannung: 2,5 V. DDR-SDRAM-Bausteine arbeiten heute mit Taktfrequenzen von 266, 333 oder 400 MHz.
Double Data-Rate SDRAM 2 (DDR2-SDRAM): Es gibt Module zwischen 256 MB und 4 GB; als Bauform werden DIMM 240 pin und SO-DIMM 200 pin verwendet. Versorgungsspannung: 1,8 V. DDR2-SDRAM-Bausteine arbeiten heute mit Taktfrequenzen von 400, 533, 667 oder 800 MHz.
DDR3-SDRAM (2007) ist eine Weiterentwicklung des Konzeptes von DDR2-SDRAM, bei dem statt mit einem Vierfach-Prefetch (4 bit) mit einem Achtfach-Prefetch (8 bit) gearbeitet wird.
Die neuen Chips mit einer Kapazität von 512 MiBit sollen Daten mit 8.500 MiBps verarbeiten und sind damit deutlich schneller als DDR-400- oder auch DDR2-667-SDRAM. Allerdings ist die CAS-Latenz höher. Darüber hinaus benötigt DDR3-SDRAM auch nur noch 1,5 Volt statt 1,8 Volt und ist damit gerade für den mobilen Einsatz besser geeignet, bei dem es auf lange Akkulaufzeiten ankommt.
DDR4-SDRAM (2012): Versorgungsspannung 1,05 V, höhere Taktraten. Die Markteinführung begann ab 2014, erst 2017 waren mehr als die Hälfte aller PC-Systeme mit DDR4-SDRAM ausgerüstet.
DDR5-SDRAM (2020): Versorgungsspannung 1,1 V, höhere Taktraten. Markteinführung noch ungewiss (2021/22?).
Anzahl der Kontakte (Pins)
Erscheinungsjahr | Anzahl der Kontakte (Pins) pro DIMM | |
SDR-SDRAM | 1993 | 168 |
DDR-SDRAM | 2000 | 184 |
DDR2-SDRAM | 2003 | 240 |
DDR3-SDRAM | 2007 | 240 |
DDR4-SDRAM | 2014 | 288 |
DDR5-SDRAM | 2020 | ? |
Die folgende Tabelle zeigt ausgewählte Speichermodule im Überblick (Quelle: Wikipedia):
Speichertyp | Bezeichnung | Modul | Busbreite (Bytes) | Speichertakt [MHz] | Effektive Taktrate [MHz] | Bandbreite [GByte/s] |
RDRAM | PC800 | 2 | 400 | 800 | 1,6 | |
SDRAM | PC100 | 8 | 100 | 100 | 0,8 | |
SDRAM | PC133 | 8 | 133 | 133 | 1,064 | |
DDR-SDRAM | DDR-133 | 8 | 133 | 266 | 2,128 | |
DDR-SDRAM | DDR-100 | 8 | 100 | 200 | 1,6 | |
DDR-SDRAM | DDR-200 | PC-1600 | 8 | 100 | 200 | 3,2 |
DDR2-SDRAM | DDR2-1066 | PC2-8500 | 266 | 1066 | 17,0 | |
DDR3-SDRAM | DDR3-2500 | PC3-20000 | 312,5 | 2500 | ||
DDR4-SDRAM | DDR4-3200 | PC4-25600 | 400 | 3200 | 25,6 | |
DDR5-SDRAM | DDR5-8400 | PC5-67200 | 525 | 8400 | 2 x 33,6 |
BIOS / (U)EFI
Für viele Vorgänge, die „unterhalb“ des Betriebssystems stattfinden sollen, werden Code und Daten benötigt, die während des laufenden Betriebs nicht verändert werden sollen. Dieser Code wird oft als Firmware bezeichnet, da er in EEPROM-Chips (Electrically Erasable and Programmable Read Only Memory, dt. elektrisch löschbarer programmierbarer Nur-Lese-Speicher) abgelegt ist.
BIOS (Basic Input Output System)
Das BIOS besteht im Wesentlichen aus Routinen, die beim Kaltstart eines PCs benötigt werden, sowie aus einem Konfigurationsprogramm für bestimmte Einstellungen wie Systemzeit oder Bootreihenfolge.
Das BIOS-Konzept existiert seit dem Erscheinen des ersten IBM-PCs (1981) und wird trotz laufender Änderungen und Erweiterungen den Anforderungen moderner Hardware und Betriebssysteme nicht mehr gerecht. Vor allem ist es nicht 64 bit-fähig und verwendet ausschließlich den Real Mode. Als Nachfolger wird EFI gesehen.
Eines dieser BIOS-Programme ist die Reset-Routine, ein Programm, welches immer nach dem Einschalten des Geräts abgearbeitet wird. Beim Einschalten des Geräts wird vom Netzteil ein spezielles Signal über eine Steuerleitung an die CPU gesendet. Diese beginnt dann an einer vom Hersteller fix vorgegebenen Stelle (heute meist die Adresse F000h) mit der Befehlsabarbeitung des ROM-BIOS-Boot-Programms (von engl. boot = Stiefel).
AMI-BIOS-Chip (Quelle: www.planet3dnow.de)
Dieses Programm startet eine Reihe von Betriebsbereitschaftstests (POST = Power On Self Test):
- Prozessor-Selbsttest
- Speichertest
- Tastaturanschluss
- Rücksetzen des Videocontrollers (sorgt für Bildaufbau am Bildschirm)
- Rücksetzen des Disc-Controllers (regelt Datentransfer zur Diskette/Festplatte)
- Rücksetzen der Echtzeituhr (für Zeitsteuerung zuständig).
Bei neueren Computern werden die Ergebnisse dieser Tests mit den Einträgen im so genannten CMOS-RAM-Speicher verglichen. Dort befinden sich Informationen, welche und wie viele Festplatten-, Diskettenstationen usw. installiert sind, aktuelles Datum und Uhrzeit usw. Diese Informationen können mit einem ebenfalls im ROM enthaltenen Setup-Programm vom Anwender selbst eingestellt und geändert werden.
Anschließend wird bei PCs das jeweilige Betriebssystem von der Platte (oder Diskette) nachgeladen.
Wird der Computer aus- und wieder eingeschaltet bzw. der Reset-Schalter betätigt, so nennt man den Startvorgang einen Kaltstart. Durch Betätigen der Tastenkombination STRG+ALT+ENTF wird eine Betriebssystemfunktion ausgelöst, die ebenfalls den Computer wieder hochfährt (allerdings nicht alle Tests vom Beginn an durchführt) – dies wird als Warmstart bezeichnet.
CMOS-RAM bzw. NVRAM
Ab dem AT befinden sich auf der Systemplatine zwei Chips in CMOS-Technik (eine Chipart, die mit sehr wenig Strom auskommt und fast keine Wärme entwickelt): einer sorgt für eine Echtzeituhr mit Datum, der andere nimmt die Systemkonfiguration auf. Beide Chips werden über eine Lithium-Batterie (hält bis zu 7 Jahre) oder einen Ni-Cd-Akku mit Spannung versorgt, auch wenn der Computer gerade nicht in Betrieb ist.
Heute bezeichnet man diesen Speicherchip als NVRAM (Non-Volatile Random-Access Memory).
Bestandteil des BIOS ist auch ein Programm, mit dem die im CMOS-RAM gespeicherten Werte geändert werden können, das CMOS-Setup.
Nachteile des BIOS
- Keine grafische Benutzeroberfläche: Die Benutzeroberfläche im BIOS ist rein textbasiert und daher nicht besonders intuitiv. Die Benutzer müssen genau wissen, welcher Befehl wofür ist.
- Keine Bedienung mit der Maus: Möchte man im BIOS eine Einstellung ändern, muss man mit der Tastatur navigieren. Eine Bedienung mit der Maus ist nicht möglich.
- Keine Unterstützung für große Festplatten: Festplatten, die größer als 2 TB sind, kann das BIOS nicht verwalten. Das liegt daran, dass das BIOS ein 32-Bit System ist und mehr Speicherplatz nicht ansprechen kann. 232 Sektoren mit je 512 Bytes ergibt ca. 2 TB.
- Langer Bootvorgang: Beim Hochfahren des PCs wird vom BIOS nacheinander die Hardware initialisiert und geprüft. Erst danach wird der Master Boot Record der Bootpartition aufgerufen und der Start des Betriebssystems wird eingeleitet. Dieser Vorgang beansprucht ungefähr die Hälfte der Zeit zum Hochfahren und ist für heutige Verhältnisse zu lang.
(U)EFI (Extensible Firmware Interface)
Quelle: https://www.edv-lehrgang.de/unified-extensible-firmware-interface-uefi/
EFI bzw. dessen Nachfolgestandard UEFI (Unified EFI) ist als BIOS-Nachfolgekonzept mit Schwerpunkt auf 64 bit-Systeme positioniert.
Neuerungen von UEFI im Vergleich zum herkömmlichen BIOS
- Unterstützung hochauflösender Grafikkarten: Die Zeiten, in den man ein textbasiertes BIOS vorfand, sind mit UEFI vorbei. Die Benutzeroberfläche kann grafisch aufbereitet werden und so die Bedienung erleichtern.
- Bedienung mit der Maus: Mit UEFI kann die Benutzeroberfläche mit der Maus bedient werden.
- 64-Bit System: Dadurch werden alle Nachteile eines 32-Bit Systems beseitigt. Man kann problemlos von großen Festplatte booten. 264 Sektoren mit 512 Bytes ergibt ca. 9 Zettabytes. Das ist eine Zahl mit 21 Nullen. Eine unvorstellbare Größe.
- Kurzer Bootvorgang: Es wurden schon Systeme vorgestellt, die 1 Sekunde nach dem Einschalten des PC’s den Start des Betriebssystems einleiten. Dadurch wird die Zeit für das Hochfahren des Systems um die Hälfte reduziert.
- Integriertes Netzwerkmodul: Dadurch kann der PC über das Netzwerk hochgefahren und bereits vor dem Start des Betriebssystems per Fernwartung diagnostiziert und bedient werden. Auch Updates für UEFI könnten so direkt über das Internet erfolgen. Wer schon mal ein BIOS-Update durchgeführt hat, wird diese Möglichkeit zu schätzen wissen.
- Integration von Treibern in UEFI: Treiber können in UEFI als Modul integriert werden. Dadurch sind Entwicklungen von Treibern möglich, die unabhängig vom Betriebssystem laufen.
- Erweiterbarkeit z.B. durch DRM (Digital Rights Management): Dadurch kann z.B. beim Start geprüft werden, ob die eingesetzte Software ordnungsgemäß lizenziert ist.
- Integrierte Shell: In UEFI ist eine Shell integriert, über die spezielle Anwendungen gestartet werden können.
- Integrierte Sandbox: Dadurch ist es möglich, den PC in einer sicheren Umgebung zu starten, wobei die Netzwerk- und Speicherverwaltung auf der Firmware läuft statt auf dem Betriebssystem.
- GUID Partition Table (GPT): Diese Partitionstabelle ist flexibler als der bisherige Master Boot Record (MBR).
- Auswahlmöglichkeit des Betriebssystems: Mit diesem Feature sind Boot-Loader überflüssig.
Die meisten aktuellen Desktop-PC-Mainboards für Atom-, Core-i- und Xeon-Prozessoren von Intel sowie für AMD E-350 und sicherlich auch die kommenden A- und FX-CPUs von AMD sind allerdings bereits UEFI-2.x-tauglich. Ihre Firmware stellt nach dem Initialisieren der Hardware aber standardmäßig BIOS-Kompatibilität her, indem sie ein sogenanntes Compatibility Support Module (CSM) lädt, bevor der Bootloader des Betriebssystems die Kontrolle übernimmt.
Ablauf des Startvorgangs eines PCs
Startvorgang bei BIOS-Systemen
Wenn der Rechner eingeschaltet oder der Reset-Knopf gedrückt wird, dann wird anhand der Systemuhr die CPU initialisiert. Die CPU erhält zunächst eine Serie von Signalen von der Systemuhr, die clock-ticks genannt werden. Die Pins der CPU werden zurückgesetzt und die Register werden mit folgenden Initialwerten belegt.
Code Segment (CS): 0xFFFF
Data Segment (DS): 0x0000
Extra Data Segment (ES): 0x0000
Stack Segment (SS): 0x0000
Instruction Pointer (IP): 0x0000
Die CPU verwendet die Werte von CS und IP, um die Adresse für die nächste Anweisung zu ermitteln und auszuführen. Anhand der Initialwerte ergibt das nach dem Einschalten die physische Adresse 0xFFFF0 – an dieser Adresse beginnt der BIOS-Programmcode. So wird erreicht, dass nach dem Einschalten des Rechners das BIOS als erste Anweisung ausgeführt wird.
Die Ausführung des BIOS unterteilt man grob in zwei Vorgänge. Zunächst wird ein sogenannter Power On Self Test (POST) durchgeführt. Dabei überprüft das BIOS die Hardware des Rechners. Für diesen Zweck wird zuerst das CMOS-RAM ausgelesen. Das ist ein flüchtiger Speicher, der seinen Inhalt durch eine sehr leistungsfähige Batterie beibehält. Aus dem CMOS-Speicher werden die aktuelle Systemzeit sowie die Hardwarekonfiguration ausgelesen. Denn, um die Hardware zu überprüfen, muss zunächst einmal ermittelt werden, welche Hardware vorhanden ist. Danach erfolgt der eigentliche Test der Hardware. Es erfolgt ein Abgleich der vorhandenen Hardware mit den Informationen aus dem CMOS und der Selbsttest läuft mit der Überprüfung der folgenden Komponenten ab.
- Prozessor und das Selbsttestprogramm
- Systembus
- Festplatten
- Systemuhr
- Speicher der Grafikkarte
- Arbeitsspeicher
- Tastatur
- Maus
Falls einige Komponenten über ein eigenes BIOS verfügen, werden diese beim Selbsttest berücksichtigt und ausgeführt. Der Status der Überprüfung wird durch kurze oder lange Pieptöne signalisiert, die abhängig vom Mainboard-Hersteller eine unterschiedliche Bedeutung haben können und aus der Dokumentation entnommen werden müssen. Mehrere kurze oder lange Pieptöne deuten meistens auf einen Fehler hin und der Startvorgang des Rechners wird abgebrochen, wenn der Fehler als „fatal error“ klassifiziert wird, was bei den meisten Fehlern der Fall ist. Falls keine Fehler entdeckt werden, wird in der Regel ein kurzer Piepton gesendet. Die Pieptöne werden verwendet, da die Grafikkarte vor der Verwendung ebenfalls überprüft werden muss und zu dem Zeitpunkt noch nicht aktiviert ist, sodass eine grafische Anzeige der Fehler nicht möglich ist.
Ist der Power On Self Test erfolgreich, wird gemäß der Bootreihenfolge nacheinander versucht, einen Master Boot Record (MBR) aus dem ersten Sektor einer Datenquelle (z.B. Festplatte) in den Arbeitsspeicher zu laden. Ob der erste Sektor ein MBR enthält, identifiziert das BIOS anhand der Signatur AA55 am Ende des 512 Byte großen Sektors. Falls kein MBR gefunden wird, wird der Bootvorgang mit dem Hinweis abgebrochen, dass kein Betriebssystem zur Verfügung steht.
Ist der Sektor mit dem Master Boot Record identifiziert und in den Arbeitsspeicher geladen, ist die Arbeit des BIOS an dieser Stelle beendet und der im MBR gespeicherte Programmcode übernimmt zunächst die Kontrolle über den Rechner. Das MBR enthält einen Bootcode, für den mehrere Bezeichnungen im Umlauf sind (zum Beispiel Master-Boot-Routine). Daneben enthält es eine Partitionstabelle mit den Partitionseinträgen sowie die Signatur AA55.
Durch den dort befindlichen Code wird dann der Bootsektor der als aktiv markierten Partition geladen und ausgeführt. Der Code aus dem Bootsektor einer Partition, auf der eine entsprechende Windows-Installation installiert wurde, ist nun fähig, die Datei bootmgr im Wurzelverzeichnis eines NTFS-Dateisystems zu finden und auszuführen. Das Programm bootmgr liest die Datei \Boot\BCD ein und zeigt ein Bootmenü zur Auswahl des zu startenden Betriebssystems an. Zudem überprüft bootmgr die Disk-Signatur (Bytes 440-443 im MBR) mit seinen gespeicherten Booteinträgen aus der BCD. Wurde die Disk-Signatur verändert, verweigert Windows den Start mit einem „winload error“.
Startvorgang bei UEFI-Systemen
Bei einem UEFI-System laufen die ersten Schritte (bis zum POST) gleich ab wie bei einem BIOS-System. Anschließend wird UEFI als Firmware geladen. Sie übernimmt die Initialisierung der für den Start nötigen Geräte und lädt optionale Erweiterungen wie Secure Boot.
Anders als Bios kann UEFI mit GPT- sowie MBR-Partitionen und dem FAT-Dateisystem umgehen. Es sucht alle Datenträger nach einer per GUID (Globally Unique Identifier) markierten EFI System Partition (ESP) ab. Auf dieser Partition sind die EFI-Programme hinterlegt, die Bootloader für Uefi-Werkzeuge und für installierte Betriebssysteme enthalten.
Der UEFI-Bootmanager führt den im NVRAM des Firmware-Chips als Standard festgelegten Bootloader für ein Betriebssystem aus oder präsentiert ein vom Hardware-Hersteller gestaltetes Menü zur manuellen Auswahl von EFI-Bootloadern oder Partitionen. Natürlich können nicht alle Betriebssysteme mit Uefi umgehen und entsprechende Bootloader auf der ESP hinterlegen. Deshalb hat Uefi laut Spezifikation einen im Firmware-Menü aktivierbaren Kompatibilitätsmodus (CSM – Compatibility Support Module), der das System wie altes Bios per MBR starten kann.
Wenn es das Betriebssystem zulässt, kann es der EFI-Bootloader direkt starten. Im Fall von Linux-Systemen lädt der EFI-Bootloader aber erst einen vorgeschalteten Bootloader wie Grub 2, der schließlich den Linux-Kernel und das Initramfs startet.
Interrupts
Das BIOS enthält Funktionen, die während des Betriebs von großer Bedeutung sind, die so genannte Hardware-Interrupt-Verwaltung. Hardware-Interrupts sind Signale, die von externen Geräten (Tastatur, Bildschirm, Drucker) ausgelöst werden und die CPU bei ihrer laufenden Arbeit unterbrechen. An dieser Stelle wird zunächst in der so genannten Interrupt-Tabelle (die sich im RAM befindet und auch geändert werden kann) nachgesehen. Dort befindet sich die Adresse des entsprechenden BIOS-Programms, welches dann aufgerufen wird.
Es gibt auch Interrupts, die nicht von den Geräten stammen, sondern von gerade laufenden Programmen. Diese heißen sinngemäß Software-Interrupts. Auch diese Interrupts rufen spezielle BIOS-Programme auf. Hardware- und Software-Interrupts arbeiten unabhängig voneinander, dienen aber demselben Zweck – sie regeln die Ein- und Ausgabe von Daten.
Die Interruptsignale müssen über eigene Interrupt-Leitungen übertragen werden. Hier unterscheidet man 16 IRQ-Leitungen (IRQ = interrupt request).
IRQ-Leitung | mögliche Belegung |
IRQ 0 | Zeitgeber |
IRQ 1 | Tastatur |
IRQ 2 | 2. Interrupt-Controller |
IRQ 3 | COM2/4 |
IRQ 4 | COM1/3 (meist für Maus oder Modem) |
IRQ 5 | LPT2 |
IRQ 6 | Controller für das Diskettenlaufwerk |
IRQ 7 | LPT1 (meist für Drucker) |
IRQ 8 | Uhr, Kalender |
IRQ 9 | Rückführung von IRQ 2 |
IRQ 10 | frei |
IRQ 11 | frei |
IRQ 12 | frei (oder PS/2-Maus) |
IRQ 13 | Coprozessor |
IRQ 14 | IDE-Controller (Kanal 1) |
IRQ 15 | IDE-Controller (Kanal 2) |
Die möglichen Belegungen können je nach Typ der Hardware folgendermaßen eingestellt werden:
- Jumper (Steckbrücken)
- Konfigurationsprogramm (dabei muss die E/A-Adresse bekannt sein)
- BIOS: über das CMOS-Setup-Programm
- Plug-and-Play-Erweiterungen
Der Interrupt-Controller arbeitet nahezu gleichzeitig auftretende Interrupts nach Prioritäten ab. Dabei gilt: Je niedriger die Nummer des IRQs, desto höher ist dessen Priorität.
Seit vielen Jahren (80286-Prozessor) werden zwei Interrupt-Controller verwendet. Diese beiden Controller sind so verschaltet, dass der Ausgabe des zweiten Interrupt-Controllers mit dem IRQ 2 des ersten Controllers verbunden ist. Man spricht von „Kaskadierung“ der Interrupt-Controller.
Auf Grund dieser Kaskadierung ergibt sich folgende Reihenfolge an IRQ-Prioritäten:
0, 1, [8, 9, 10, 11, 12, 13, 14, 15], 3, 4, 5, 6, 7
Die in eckigen Klammern dargestellten IRQs werden vom zweiten Interrupt-Controller zur Verfügung gestellt und an Stelle des IRQ 2 „eingefügt“.
Heute kommt bei vielen PCs statt der beiden normalen Interrupt-Controller ein APIC (Advanced Programmable Interrupt Controller) zum Einsatz, der Peripheriegeräten insgesamt 24 IRQs zur Verfügung stellen kann und darüber hinaus über erweiterte Funktionen wie etwa dynamische Prioritätenvergabe verfügt.
Jeder Interrupt hat eine eigene hexadezimale Kenn-Nummer (INT 01h, INT 02h, …).
Übersicht über Interrupt-Belegungen: http://www.ctyme.com/intr/int.htm
Interruptgruppen am PC
- prozessorinterne Interrupts = „Traps“ (INT 00h – 07h, z.B. bei Division durch 0 wird INT 00h ausgelöst)
- durch Peripheriegeräte ausgelöste Interrupts (INT 08h – 0Fh)
- BIOS-Interrupts (Nummer INT 10h – 1Ah)
- Anwender-Interrupts (INT 1Bh – 1Fh, z. B.. INT 1Bh = Drücken von CRTL-Break)
- Betriebssystem-Interrupts (INT 20h – FFh, z. B. INT 3Dh = Vorhandene Datei öffnen)
Funktionsweise von BIOS-Interrupts anhand der Tastatursteuerung
Hier ist der BIOS-Interrupt mit der Nummer 16h zuständig. Drückt man eine Taste auf der Tastatur, so entsteht ein elektrischer Impuls, der an eine spezielle Schaltung, die Tastatursteuerlogik, weitergeleitet wird. Diese Schaltung erzeugt einen so genannten Scancode, der genau der gedrückten Taste entspricht. Danach wird ein Interrupt an die CPU gesendet; die CPU löst dann ein BIOS-Programm (eine so genannte Interrupt-Service-Routine, ISR) aus, die dem Tastatursignal den entsprechenden ASCII-Code zuordnet. ASCII-Code und Scancode werden im Tastaturpuffer abgelegt, von wo sie zur Darstellung des Zeichens auf dem Bildschirm oder Drucker verwendet werden können. Treiberprogramme wirken genau hier: Sie „stehlen“ den Interrupt und statt des BIOS-Programms wird das Treiberprogramm ausgeführt. Das heißt, über Tastaturtreiber kann man eine geänderte Tastaturbelegung erreichen (z. B. englisch/deutsch). Übrigens: manche Viren wirken genauso!
- Bildschirmsteuerung: INT 10h.
- Drucker: INT 17h.
- Floppy Disk: INT 13h.
Ports (I/O-Adressen)
Neben dem Arbeitsspeicher kann der Prozessor auf einen speziellen Speicherbereich zugreifen, den man als „Ein-/Ausgabebereich“ bezeichnet.
Das Isolated I/O-Verfahren (isolierte Adressierung) ein Verfahren zur Adressierung von Speicherzellen angeschlossener Peripheriegeräte in einem Mikrocomputer.
Beim Isolated I/O verwendet man einen isolierten Adressraum, der wesentlich kleiner ist und separat vom Hauptspeicher-Adressraum angesteuert wird. Dieser Adressraum wird auch als I/O-Adressraum bezeichnet. Zur Auswahl des jeweiligen Adressraumes wird bei der Adressierung durch den Mikroprozessor ein zusätzliches Signal wie z. B. MREQ (Memory Request) verwendet. Die ansteuernde Software muss über spezielle I/O-Befehle verfügen, die diese Signale aktivieren und so den eigenen Adressraum ansprechen.
Ein typisches Beispiel ist der Framebuffer des Monitors, der in einem geschützten Speicherbereich oder auf der Grafikkarte liegt, und vom Grafiktreiber unabhängig von der Ausleserate des Anzeigegeräts befüllt werden kann.
Hier befinden sich die externen Bausteine, die besondere Funktionen wie etwa Zeiterfassung, Bildschirmsteuerung usw. realisieren. Diese Bausteine werden vom Prozessor gesteuert und müssen daher Informationen an die CPU liefern (Eingabe) oder Informationen von der CPU erhalten (Ausgabe).
Der Isolated I/O-Bereich ist wesentlich kleiner als der Hauptspeicher. Es stehen genau 64 KByte (= 65536) Adressen zur Verfügung. Um diesen Bereich zu adressieren, benötigt man 16 bit-Adressen (int-Variablen).
I/O-Adressen
Adressbereich | Anzahl Bytes | Funktion (ab AT) |
000 – 00F | 16 | 1. DMA-Controller (8237) für 8 bit-Transfers |
010 – 01F | 16 | reserviert |
020 – 021 | 2 | 1. Interrupt-Controller 8259 (IRQ 0 – IRQ 7, INT 08 – 0F in Interrupttabelle) |
040 – 043 | 4 | Zeitgeber (8253) |
060 | 1 | Tastaturport (Scan-Code) |
061 | 1 | Systemstatusbyte (zB NMI-Kontrolle) |
064 | 1 | Tastaturkommando-Port |
066 – 067 | 2 | PC-Konfiguration (herstellerabhängig!) |
070 – 071 | 2 | CMOS-RAM (Setup) |
080 – 087 | 8 | DMA Page Register und RAM Refresh |
0A0 – 0A1 | 2 | 2. Interrupt-Controller für IRQ8 – IRQ15 |
0C0 – 0CF | 16 | 2. DMA-Controller für 16 bit-Transfers |
0F0 – 0FF | 16 | Coprozessor (8087, 80287) |
1F0 – 1F8 | 4/8 | Festplatten-Controller |
200 – 20F | 16 | Game-Adapter |
278 – 27F | 8 | LPT2 |
2E8 – 2EF | 8 | COM4 |
2F8 – 2FF | 8 | COM2 |
378 – 37F | 8 | LPT1 |
3C0 – 3CF | 8 | EGA/VGA-Karte |
3E8 – 3EF | 8 | COM3 |
3F0 – 3F7 | 8 | Floppy Disk Drive Controller |
3F8 – 3FF | 8 | COM1 |
Memory Mapped IO (MMIO)
Wenn Peripheriegeräte dem System größere Speichermengen zur Verfügung stellen müssen (etwa Grafikkarten), wird der auf den Geräten befindliche Speicher in den RAM “eingeblendet”. Das hat zur Folge, dass das System den Speicher auf dem Gerät genauso ansprechen kann wie “normale” Informationen im RAM. Damit kann sowohl die CPU als auch das Gerät (die Karte) auf den Speicherbereich zugreifen.
Beim Memory Mapped I/O (MMIO) werden die Register des Peripheriegerätes auf Speicherzellen innerhalb des gewöhnlichen Adressraumes abgebildet und vom Prozessor auch als solche angesteuert. Das ist auch der Grund, warum bei Verwendung von 32 bit-Betriebssystemen und tatsächlich vorhandenen 4 GB RAM nur ca. 3,25 GB als verfügbar angezeigt werden: der Rest wird für MMIO verwendet.
DMA (Direct Memory Access)-Kanäle
Damit Daten weiterverarbeitet werden können, müssen sich diese im RAM befinden. Wird von einem externen Datenträger – etwa einer Festplatte – gelesen, so hat die CPU zwei Möglichkeiten, die Daten vom Festplattencontroller in den RAM zu verschieben:
- Sie liest so lange von einer Portadresse, bis keine Daten mehr vorhanden sind (Programmed I/O, kurz PIO). Der Nachteil dieses Verfahrens ist, dass die CPU durch relativ simple Vorgänge stark belastet wird. So verursachen IDE-Systeme im PIO-Modus bei Schreib-/Lese-Operationen CPU-Lasten von bis zu 70 %!
- Die CPU beauftragt den DMA-Controller, Daten so lange vom Gerät in den RAM zu verschieben, bis keine Daten mehr vorhanden sind. Durch diese Vorgangsweise wird die CPU entlastet, da ein eigener Controller den Datentransfer vornimmt. Ist der DMA-Controller fertig, so meldet er dies an die CPU, die sich dann um die weitere Verarbeitung der Daten kümmern kann.
DMA-Kanäle können je nach Alter und Typ des Geräts (der Karte) folgendermaßen konfiguriert werden:
- Jumper (Steckbrücken)
- Konfigurationsprogramme (I/O-Adresse muss bekannt sein)
- BIOS: über das CMOS-Setup-Programm
Studium an der TU Wien (Chemie, Physik, Mathematik, Informatik), selbstständige Tätigkeit (IT & Consulting) mit Spezialisierung auf Schulungskonzepte in der Erwachsenenbildung, derzeit Unterrichtstätigkeit am Francisco Josephinum Wieselburg (Landtechnik-Abteilung, technische und naturwissenschaftliche Fächer, Schwerpunkte Elektro- und Automatisierungstechnik und Mechanik), seit unendlich langer Zeit dem ClubComputer freundschaftlich verbunden, Autor von Artikeln in PCNEWS.
Neueste Kommentare