wenig Bit pro Fläche, da pro Bit ein FlipFlop (das aus mehreren Transistoren besteht)
Inhalt einer Zelle solange vorhanden, solange Strom fließt
sehr schnell
Einsatz: vorwiegend Cache
Zelle aus Transistor und Kondensator → 4..8 mal mehr Bit pro Fläche
zerstörendes Lesen
Inhaltsverlust durch Leckströme
→ refresh notwendig → langsamer als SRAM
Einsatz: bei großem Speicherbedarf
Lesen
Auswahl der Zeilenadresse
RAS (row address strobe) setzen
Auswahl der Spaltenadresse
CAS setzen
Adresse in FlipFlops auslesen
RAS, CAS zurücksetzen
Schreiben
Auswahl der Zeilenadresse
RAS setzen
Auswahl der Spaltenadresse
CAS und WE (write enable) setzen
Adresse beschreiben
RAS, CAS und WE zurückstzen
zwischen CPU und intelligenten EA Modulen
dual = 2 unabhängige Busankoppler → CPU und EA-Modul können unabhängig lesen und schreiben
Synchronisation des Schreibens im Speicher selbst realisiert
normalersweise unterschiedliche Adresslage in CPU und EA-Modul
→ Adressierung nur relativ zum Begin des DP RAMs
oft Zugriff auf kompletten Speicher blockiert beim Zugriff von einer Seite
→ Blockierung der anderen Seite möglich
→ Zugriff streng organisieren
spezilisierte Verarbeitungseinheit
CoProzessor
Entlastung der CPU (da sie parallel andere Befehle ausführen kann)
effizientere Implementierung von Spezialaufgaben
verminderte Komplexität im Entwurf
Verringerung der DIE-Fläche der CPU
modularer Aufbau, Austausch von Einzelkomponenten
definierte Schnittstellen/Protokolle zur Kommunikation zwischen CPU und VE
Probleme bei räumlicher Trennung (Timing, Platzbedarf, Produktionskosten)
Coprozessoren
Grafikprozessoren
Multimedia
Controller
enge Kopplung
→ Coprozessor im klassiche Sin
lose Kopplung
→ andere spezialisierte Verarbeitungseinheiten
weiterer Prozessor, der an Adress- und Datenbus der CPU angeschlossen ist
meißt mit CPU Takt
nicht eigenständig programmierbar sondern an Befehlsstrom der CPU angehängt
→ Erweiterung des Befehlssatzes
effiziente Ausführung spezieller Coprozessorbefehle, die von der CPU mitgeteilt werden
eigene Coprozessorregister, oft mit anderer Wortbreite
CCPU erhät Eingabedaten bzw Pramater von CPU oder liest sie aus dem Speicher
Ergebnisse werden für CPU in Register bereitgehalten oder in Speicher geschrieben
CPU und CCPU können prinzipiell parallel arbeiten, falls sich die Befehle sich gegenseitig nicht bedingen
Instruktionssatz der CPU wird für CCPU erweitert
neue Bezeichner für alle CCPU Befehle
neue Register im Programmiermodell
i.A. gleiche Adressierungsarten wie CPU
→ CCPU als Bestandteil der CPU, nur als erweiterter Befehlssatz sichtbar
of universelle CCPU Schnittstelle, mit der mehrere CCPU für spezielle Aufgaben an einer CPU betrieben werden können
2 Arten zur Aktivierung eines Coprozessors
Kommunikation über spezielle Steuerleitung oder Register (coprocessor interface register)
falls kein CCPU installiert kann CPU zu vordefinierter Speicheradresse verzweigen, an der Software hinterlegt ist, die die CCPU Routine emuliert
eigener Instruktionssatz (Funktions und Herstellerspezifisch)
Kommunikation ausschließlich über Register, die über EA-Bus angesprochen werden
CPU schreibt Instruktionen und Operanden in spezielle Register der VE
eigene Speicherschnittstelle
teilweise auch eigenständigen Speicher
CPU wird über Bit in Statusregister oder Interrupt über Fertigstellung informiert
CPU kann Ergebnis aus Register oder Speicher abholen (oft nicht notwendig)
“interrupt” - Unterbrechung
Anweisung an CPU: laufenden Prozess abbrechen, Interruptroutine abarbeiten
BIOS-Interrupt
CPU nur 1 Eingang für Interrupt Anforderungen
PIC stellt mehrere Eingänge für IRQs bereit
bei IRQ schickt PIC Anforderung an CPU incl. Speicheradresse mit den auszuführenden Daten
Kaskadierung der PICs
Nummerierung nach Wichtigkeit
Unterscheidung normale Interrupt und non-maskable Interrupts (NMI)
NMIs direkt an die CPU weitergeleitet z.B. bei schweren Fehler
für jede IR Quelle ein Bit in einem Register
bei Interrupt zugehöriges Flag = 1
in einem Steurregister enable Flag pro Interrupt
IDT Interrupt Diskriptor Tabelle
PIC legt Interruptvektor auf Datenbus anstatt Adresse
Vektor als Index der in IDT abgelegten Adresse
Zuteilung der Interruptleitunge über BIOS, Boardlayout,
OS
Segmentnummer aus n höherwertigen Bits → 2^n Segmente
Bytenummer aus m niederwertigen Bits → 2^m Bits Segmentlänge
reale Adresse = Segmentbasisadresse + Bytenummer
kleine Segmenttabelle in Register der MMU
Segmentgrenze im realen Adressraum vielfache von Bytes → lückenlose Nutzung des realen Speichers
gesammte virtuelle Adresse als Bytenummer
ein Segment kann gesammten realen Adressraum nutzen
reale Adresse = Segmentbasisadresse + Bytenummer
große Segmenttabelle → Hauptspeicher, daher Rootpointer, Segmentnummerregister, Deskriptorpuffer
Segmentgrenzen im realen Adressraum sind vielfaches von Bytes
Vorteile
Änderung von Adressen, Längen, Attributen mit wenig Aufwand möglich
kleine Segmenttabellen → Register
Segmente im HS können überlappen → stehen mehren Nutzern zur Verfügung
Nachteile
Segmente immer als ganzes ein und ausgelagert
Zerstückelung des HS in freie und belegte Bereiche → zusätzlicher Verwaltungsaufwand
Zerstückelung bewirkt u.A. dass nicht genug zusammenhängenden Speicher für ein Segment vorhanden ist
virtueller Adressraum in Bereicher gleicher Größe aufgeteilt (Seiten)
Pages im realen Adressraum auf Frames abgebildet
höherwertige Bits der virt. Adr. (=Seitennummer) auf Rahmennummer abgebildet
niederwertige Bits der virt. Adr. (=Bytenummer) unverändert übernommen
Deskriptorcache enthält aktuellen Ausschnitt aus der Seitentabelle
Vorteile
Seiten einer logischen Einheit müssen nicht zusammenhängend gespeichert werden
einfachere Freispeicherverwaltung
nur aktuell benötigte Seiten einer log. Einheit müssen im HS vorhanden sein
Nachteile
Änderungen, die eine log. Einheit betreffen müssen möglicherweise auf allen Seiten ausgeführt werden
Überlappung von Seiten nicht möglich
wesentlich umfangreichere Seitentabelle → mehr Deskriptorcache, evtl Auslagerungsoperationen nötig
MMU überprüft mit Hilfe des Segments/Seitendeskritor Gültigkeit der Seite/Segments
Zugriffsattribute in den Diskriptoren werden mit Statusinformationen, die mit jedem Buszyklus von CPU kommen, verglichen
zusätzliche Statusangaben in den Diskriptoren (Zugriffe usw) werden von MMU zur Freispeicherverwaltung und Auslagerung ausgewertet
Gerät fordert DMA Transfer mit DREQ (DMA Request) beim DMA Controller an
Controller fordert von CPU mittels HOLD Buskontrolle an
CPU übergibt Buskontrolle und sendet HOLDA (Hold Acknowledge) wenn aktueller Zyklus abgeschlossen
Controller sendet DACK (DMA Acknowledge) dem Gerät
Controller gibt Speicheradresse auf Adressbus und aktiviert Steuersignal zum Lesen der Daten
bei MEM → IO: MEMR#
bei IO → MEM: IOR#
Speicher bzw Gerät legt Daten auf Bus
Controller aktiviert Steuersignal zum Schreiben der Daten
Speicher bzw Gerät übernimmt Daten vom Bus
Controller incrementiert Adresse und Bytezähler
Wiederholung bis programmierte Anzahl von Bytes übertragen ist
CPU initialisiert Controller durch Beschreiben der Register
Controller arbitriert Bus, adressiert Speicher, Schaltet Adressen fort, adressiert Datenregister und führt Buszyklen durch
Controller unterbricht CPU am Ender der EA Operationen, CPU wertet Status aus
Controller belegt Systembus für Übertragung eines einzelnen Datums
Busanforderung und Busfreigabe verlängern den Zyklus
Anwendung bei rel langsamen Datenübertragungen
Controller belegt Bus für gesammte Dauer eines Blocks
CPU für längeren Zeitraum an Busnutzung gehindert
Einsatz bei schnelleren Datenübertragungen
| | Asynchron | Synchron |
| Vorteile | keine Taktübertragung nötig | Mehrteilnehmerbetrieb |
| | | längere Datenblöcke |
| | | CRC als Sicherrungsverfahren → header und daten überprüfbar |
| Nachteile | nur kurze Datenblöcke | aufwendigere Realisierung |
| | lediglich Parität → Fehler von max ein Bit erkennbar | |
SyncStart - Header - Datenblock - CRC - SyncEnde
Header
Blocklänge in Datenworten
Laufende Nummer des Blocks bei blockübergreifenden Daten
Sender und Ziel ID bei Mehrbenutzersystemem
CRC
Takt in der ersten, Daten in der zweiten Tp Hälfte
Vorteil: einfach realisierbar (0=0, 1=1)
doppelte Bandbreite notwendig
erste Hälfte: (auf Taktsignal): Wechsel 0→1, 1→0
zweite Hälfte: Wechsel, wenn Datenbit auf 1, sonst keine Änderung
Vorteil benötigte Frequenz nicht größer
Umkehrung der Modulation; Rückgewinnung von Takt und Daten
Schieben der Daten in Schieberegister mittels des Taktes
Sync Erkennung findes Anfang und Ende des Datenblockes
Berechnung des CRC Polynoms und Vergleich mit empfangenen
Signale an Steuerung
neues Datenwort beginnen, aktuelles abgeschlossen
Übernahme der Daten an parallel Eingabe
Reaktion auf Fehler
Auslösen eines Interrupts
einfaches R-Netzwerk
R-2R Netzwerk
Summe gewichteter Ströme: Ua = -(Uref/16R) * (8z3 + 4z2 + 2z1 + z0)
Erfordert Widerstände mit hoher Genauigkeit
Datenabhängige Belastung von Uref
→ kaum realisierbar
Herstellung unterschiedlicher Widerstände schwierig
aber gleich Widerstände mit hoher Genauigkeit
in CMOS Technologie oft verwendet
→ forgesetzte Spannungsteilung mit R-2R Netzwerk
Analogwert wird als serielle Impulsfolge ausgegeben
2^n Takte nötig
Impulsfolge steuert Schalter an Referenzspannung
Tiefpass zur Mittelwertbildung
langsam
geringer (analoger) Hardwareaufwand
Periodendauer variiert, passt sich jeweiligem Wert optimal an
→ weniger Aufwendiges analoges TP-Filter
Realisierung wird duch Addierer und Akku-Register nicht zwangsläufig komplexer da oft in Software
Umwandlung analoger Eingangssignale (wert- und zeitkontinuielich) in digitale Signale (wert- und zeitdiskret)
Zeitdiskretisierung mittels Abtastung (Theorem von Shannon beachten)
Wertquantisierung (linear oder nichtlinear)
Spannung nimmt nur bestimme Werte an
Zuordnung von Spannungen zu Bitwerten
kleinste Spannungsdifferenz entspricht 1 bit
Überspannungsschutz
begrenzt Spannung auf linearen Arbeitsbereicht (Verstärkung = 1) zwischen Umin und Umax
schützt nachfolgende Schaltung vor Zerstörung
Realisierung mittels Z-Dioden
schrittweise Annäherung der DAU Ausgansspannung an Messspannung
Überprüfung durch Komparator
Ablaufsteuerung setzt Bits für DAU
DAU generiert Vergleichsspannung für Komparator
Endwert über digital out in Ergebnisregister
verschiedenen Vergleichsspannungen durch Spannungsteiler
Vergleich mit analoger Eingangsspannung durch Komparatoren
Logik wandelt das Ausgangssignal der Kaparatoren in beliebigen Code um
Vorteile
Nachteile
Einsatzgebiete
Vorteile
Messung unabhängig von Bauelementenwerten R und C → nicht so leicht beeinflussbar durch Temperatur und Alter
weniger störanfällig wegen Mittelwertbildung durch Integration über langen Zeitraum
hohe Genauigkeit und trotzdem preiswert
Auflösung durch höher auflösenden Zähler fast beliebig erweiterbar
Nachteile
nur Gleichspannungn kann sinnvoll umgesetzt werden
Uref muss hinreichend genau und kostant sein, ansonsten Offsetfehler → 4 Flankenverfahren
Umsetzzeit steigt proportial mit der amplitude der Eingangsspannung → langsam
Einsatzgebiete
Differenzverstärker bildet Differenz U1 = Ue - U4
Integrator summiert Differenz U1 auf
Komparator bewertet Ausgangssignal des Integrators mit 0 oder 1
1 bit DA Wandler erzeugt daraus eine positive oder negative Spannung, die über Differenzverstärker den Integrator wieder auf 0 zurückzieht (Regelkreis)
Digitalfilter wandelt den seriellen und hochfrequenzen Bitstrom in digitale Werte um
Vorteile
Auflösungen bis über 20 Bit, hohe Abtastraten möglich
geringe Ansprüche an die analogen Komponenten
robuste und preiswerte 1-Chip Realisierungen
Nachteile
Einsatzgebiete
Audiotechnik (z.B. CD-Player)
Temperatur, Druck und Kraftmessung
Anwendung in der Heizungs, Lüftungs und Klimatechnik
benötigt, da AD Wandlung viel langsamer als Maschinenbefehl des Prozessors
Zeitsteuerung schickt nach Ende der Wandlung IRQ an Prozessor