Zusatzseminar für II

2 Tor Speicher mit DRAM

RAM Arten Überblick

SRAM

  • 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

DRAM

  • 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 und Schreiben beim DRAM

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

2 Tor Speicher (dual port, multi port RAM)

  • 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

Coprozessoren und spezialisierte Verarbeitungseinheiten

spezilisierte Verarbeitungseinheit

  • hoch integrierte Baugruppe innerhalb eines Rechnersystems
  • Bearbeitung komplexer Aufgaben ausserhalb der CPU

CoProzessor

  • spezialisierte Verarbeitungseinheit
  • sehr enge Kopplung an CPU

Vorteile

  • 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

Nachteile

  • definierte Schnittstellen/Protokolle zur Kommunikation zwischen CPU und VE
  • Probleme bei räumlicher Trennung (Timing, Platzbedarf, Produktionskosten)

Beispiele

  • Coprozessoren
  • Grafikprozessoren
  • Multimedia
    • Sound
    • Videobearbeitung/komprimierung
  • Controller
    • ISDN
    • Ethernet
    • SCSI

Kopplung zwischen VE und CPU

enge Kopplung → Coprozessor im klassiche Sin

  • meißt mit CPU Takt
  • Kommunikation über Steuerleitungen/Register

lose Kopplung → andere spezialisierte Verarbeitungseinheiten

  • meißt unabhängig von CPU getaktet
  • Kommunikation über EA-Bus

Coprozessor (CCPU)

  • 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

Aufgaben eines Coprozessors

  • Gleitkomma (math Coprozessor)
  • Vektoroperationen
  • Grafikberechnungen
  • Kryptographische Berechnungen
  • Speicherverwaltung

Eigenschaften eines Coprozessors

  • 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

enge Kopplung

  • 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
    • CCPU liest auf Systembus mit und erkennt und dekodiert für ihn bestimmte Instruktion
      • in manchen älteren Coprozessoren
      • CCPU hat keine Kentniss über Registerinhalte bzgl der Speicheradressierung
    • CPU erkennt CCPU-Instruktionen und dekodiert diese teilweise und aktiviert CCPU über Signalleitunges oder Systembus
      • Operanden komplett von CPU eingelesen und dann an CCPU übergeben
      • oder Berechnung der Adresse des Operanden sowie Adressierung durch CPU, Einlesen der Operanden durch CCPU
  • 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

math Coprozessor i387

Eigenschaften von lose gekoppelten VEs

  • 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)

Der Grafikbeschleuniger S3 Trio64V+

Interrupt Controller

allgemein

  • “interrupt” - Unterbrechung
  • Anweisung an CPU: laufenden Prozess abbrechen, Interruptroutine abarbeiten
  • BIOS-Interrupt
    • Aufruf ähnlich wie ein Unterprogramm

Polling vs. Interruptcontroller

Polling

Vorteile

  • einfache Implementierung, da keine Statusspeicherung notwendig

Nachteile

  • CPU stark mit Abfragen beschäftigt
  • mehr Code und geringe Performance
  • Datenverlust mögl.

Interrupt-Controller

Vorteile

  • Entlastung der CPU
  • PIC (programmierbarer Interruptcontroller) übernimmt Abfragen
  • PIC meldet Eintreten des Interrupts an CPU

Nachteil

  • zusätzliche Hardware

Interrupt aus PIC Sicht

IRQ

  • Signal von Hardware ausgelöst
  • fordert CPU zur Bearbeitung an

PIC

  • 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

PIC Entwicklung

  • 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

Flags und Enable Bits

  • für jede IR Quelle ein Bit in einem Register
  • bei Interrupt zugehöriges Flag = 1
  • in einem Steurregister enable Flag pro Interrupt

Interrupt aus Prozessorsicht

Interrupt Routine

  • IDT Interrupt Diskriptor Tabelle
  • PIC legt Interruptvektor auf Datenbus anstatt Adresse
  • Vektor als Index der in IDT abgelegten Adresse

Interrupt sharing

  • Zuteilung der Interruptleitunge über BIOS, Boardlayout, OS

APIC

  • Erhöhung der 4 PCI Grundleitungen auf 8
  • 24 statt 15 IRQs

Memmory Management Unit

Aufgaben

  • Adressumsetzung real ↔ virtuell
  • Speicherorganisation, verwaltung
  • Speicherschutz

Speicherverwaltung

  • auch vom OS vorgenommen
  • Beschleunigung durch MMU → CPU Entlastung
  • Ubersetzungstabellen vom OS geliefert
  • Segmentverwaltung
    • Unterteilung der virtuellen Adresse
    • Erweiterung der virtuellen Adresse
  • Seitenverwaltung
  • mehrstufige Speicherverwaltung

Segmentverwaltung

Unterteilung der virtuellen Adresse

  • 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

Erweiterung der virtuellen Adresse

  • 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

Seitenverwaltung

  • 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

Speicherschutz

  • 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

DMA

  • Direct Memmory Access
    • Datenaustausch zwischen Speicher und Peripherie unter Umgehung der CPU
  • CPU programmiert DMA Controller
    • Speicheradresse
    • Anzahl der Bytes
    • Richtung des Zugriffs
    • Betriebsart
  • initialisierung der Peripherie

Auslösung eine DMA-Transfers

  • 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

Ablauf eines DMA Transfers

  • 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
    • bei MEM → IO: IOW#
    • bei IO → MEM: MEMW#
  • Speicher bzw Gerät übernimmt Daten vom Bus
  • Controller incrementiert Adresse und Bytezähler
  • Wiederholung bis programmierte Anzahl von Bytes übertragen ist

DMA Phasen

  • 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

DMA Zugriffsarten

Vorrangmodus (cycle stealth mode)

  • Controller belegt Systembus für Übertragung eines einzelnen Datums
  • Busanforderung und Busfreigabe verlängern den Zyklus
  • Anwendung bei rel langsamen Datenübertragungen

Blockmodus

  • Controller belegt Bus für gesammte Dauer eines Blocks
  • CPU für längeren Zeitraum an Busnutzung gehindert
  • Einsatz bei schnelleren Datenübertragungen

Burstmodus

  • DMA erhält Systembus für kompletten Transfer eines Blocks aus vielen Datenworten
  • sehr hohe Transferrate
  • CPU für lange Zeit am Buszugriff gehindert

Synchrone serielle Datenübertragung

  • nur eine Leitung → geringer Aufwand
  • langsamer
  • n Zeitfenster, je ein Signal
  • rechnerextern
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

Aufbau

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

  • Prüfpolynom zur Fehlererkennung
  • über header und Daten anwendbar, ca 10^3 besser als Parität

Taktübertragung

return to zero

  • Takt in der ersten, Daten in der zweiten Tp Hälfte
  • Vorteil: einfach realisierbar (0=0, 1=1)
  • doppelte Bandbreite notwendig

non return to zero

  • 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

Synchrone serielle Eingabe

  • 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

analoge Ausgabebaugruppe

DA Wandlertypen

Parallelumsetzer mit Widerstandsnetzwerk

  • einfaches R-Netzwerk
  • R-2R Netzwerk

serielle Umsetzer (Impulswandler)

  • Pulsbreitenmodulation → Zählverfahren (lange Flanke)
  • Pulsdichtemodulation → Additionsverfahren (kurze Flanke)

Widerstandsnetzwerk

  • Summe gewichteter Ströme: Ua = -(Uref/16R) * (8z3 + 4z2 + 2z1 + z0)
  • Erfordert Widerstände mit hoher Genauigkeit
  • Datenabhängige Belastung von Uref

→ kaum realisierbar

R-2R Netzwerk

  • Herstellung unterschiedlicher Widerstände schwierig
  • aber gleich Widerstände mit hoher Genauigkeit
  • in CMOS Technologie oft verwendet

→ forgesetzte Spannungsteilung mit R-2R Netzwerk

  • Ua = -Uref * (Rfb/16R) * (8z3 + 4z2 + 2z1 + z0)

serielle Umsetzer

  • Analogwert wird als serielle Impulsfolge ausgegeben
  • 2^n Takte nötig
  • Impulsfolge steuert Schalter an Referenzspannung
  • Tiefpass zur Mittelwertbildung
  • langsam
  • geringer (analoger) Hardwareaufwand

Pulsbreitenmodulation

Zählverfahren

  • feste Periodendauer
  • jede Periode besteht aus 2^n Takten
  • Ausgabe von 1 für entsprechenden Anteil der Periode
  • 0 bis Ende der Periode

Additionsverfahren

  • 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

analoge Eingabebaugruppe

  • 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

Schutzschaltung

  • Überspannungsschutz
  • begrenzt Spannung auf linearen Arbeitsbereicht (Verstärkung = 1) zwischen Umin und Umax
  • schützt nachfolgende Schaltung vor Zerstörung
  • Realisierung mittels Z-Dioden
    • Verhältnis zwischen Rv und Z-Dioden bestimmt Ua

Pegelwandler

  • Anpassung der Spannungswerte an maximalen Auflösungsbereicht des ADU durch
    • Dämpfung (Kennliniensteigung < 1)
    • Verstärkung (Kennliniensteigung > 1)

Sample & Hold

  • übernimmt Spannung zum Abtastzeitpunkt
  • hält Spannung während der AD Wandlung konstant

ADU

sukzessive Approximation

  • 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

Parallelverfahren

  • verschiedenen Vergleichsspannungen durch Spannungsteiler
  • Vergleich mit analoger Eingangsspannung durch Komparatoren
  • Logik wandelt das Ausgangssignal der Kaparatoren in beliebigen Code um

Vorteile

  • braucht nur einen Schritt → kürzere Umsetzzeiten (ns Bereich)

Nachteile

  • großer Schaltungstechnischer Aufwand:
    • z.B. 8 bit ADU braucht 2^8-1 = 255 Koparatoren
  • Logikaufwand steigt ebenfalls mit Auflösung → sehr teuer

Einsatzgebiete

  • Videotechnik
  • überall wo Schnelligkeit gefordert und Auflösung nicht so wichtig ist

dual slope

  • Integrationsrampe (aufwärts)
    • Ue wird für feste Integrationszeit T1 am Eingang des Integrators angelegt
  • Integrationsrampe (abwärts)
    • entgegengesetzt gepolte Referenzspannung wird angelegt und aufintegriert bis Nulldurchgang erfolgt
  • -Ue = Uref * T1/T2

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

  • digitale Messgeräte
  • geringe Anforderungen an Umsetzzeit, hohe Anforderungen an Genauigkeit und Störunempfindlichkeit

Sigma-Delta-Verfahren

  • 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

  • Erhöhung der Auflösung führt zu längeren Umsetzzeiten
  • hoher schaltungstechnischer Aufwand

Einsatzgebiete

  • Audiotechnik (z.B. CD-Player)
  • Temperatur, Druck und Kraftmessung
  • Anwendung in der Heizungs, Lüftungs und Klimatechnik

Synchronisationslogik und Zeitsteuerung

  • benötigt, da AD Wandlung viel langsamer als Maschinenbefehl des Prozessors
  • Zeitsteuerung schickt nach Ende der Wandlung IRQ an Prozessor
 
wiki/study/scripts/ra2/zusatzii.txt · Last modified: 2005/07/20 15:49 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki