代写 MIPS parallel graph software Rechnerarchitektur (RA)

Rechnerarchitektur (RA)
7. Ein/Ausgabe Prof. Dr. Christian Plessl
RA.7 2018 v1.0.0
1

7. Ein/Ausgabe
7.1 Einführung
7.2 Busse
7.3 Betriebssystem und Ein/Ausgabe 7.4 Festplatten
RA.7 2018 v1.0.0
Inhaltsverzeichnis
2

Prozessor Cache
Unterbrechung (Interrupt)
7.1 Einführung
typischer Aufbau eines Computersystems
Speicher-I/O Verbindungsnetzwerk
Haupt- speicher
I/O- Steuerung
disk disk
I/O- Steuerung
Netzwerk
I/O- Steuerung
Graphik
Ein/Ausgabe-Einheit Ein/Ausgabe-Einheit
Ein/Ausgabe-Einheit
RA.7 2018 v1.0.0
3

Ein/Ausgabe – Arten
• Der Entwurf und die Bewertung von I/O-Systemen hängen stark von deren Verwendungsart ab. Einige Beispiele:
• File-I/O
– Zugriff auf Files (Dateien) im Sekundärspeicher
– vor allem lesende Zugriffe
– wichtig ist eine grosse übertragene Datenmenge pro Zeiteinheit
• Transaktions-I/O
– viele kleine Änderungen auf einem grossen Datenbestand (zB. Bankautomaten,
Flugreservierungssysteme)
– wichtig ist eine grosse Anzahl von Zugriffen pro Zeiteinheit
• Ereignis-I/O
– es wird auf externe Ereignisse reagiert bzw. werden Ereignisse erzeugt
(eingebettete Systeme, Steuerungen)
– wichtig sind eine kurze Reaktionszeit und eine hohe Anzahl verarbeiteter Ereignisse pro Zeiteinheit
RA.7 2018 v1.0.0
4

Ein/Ausgabe – Charakteristiken
• Verhalten
– nur Dateneingabe (input)
– nur Datenausgabe (output)
– Ein- und Ausgabe (input/output, storage)
• Partner
– Mensch
– Maschine
• Datenrate
– Maximale Datenrate in Byte/s (Bit/s), die von der I/O-Einheit generiert oder
konsumiert werden kann.
→ Die Performance eines I/O-Systems hängt nicht nur von der I/O-Einheit, sondern auch vom Prozessor, Speichersystem, Verbindungsnetzwerk und der I/O-Steuerung ab (Hardware und Software).
RA.7 2018 v1.0.0
5

Ein/Ausgabe – Charakteristiken
• Hinweis: Im Gegensatz zum Speicher wird bei I/O-Systemen die Datenrate zur Basis 10 angegeben, dh. 1 Mbit/s = 106 bit/s ≠ 220 bit/s !!
RA.7 2018 v1.0.0
6

7.2 Busse
• Ein Bus ist eine von mehreren Einheiten gemeinsam genutzte Kommunikationsverbindung.
Prozessor Speicher
I/O-Einheit I/O-Einheit I/O-Einheit
• Vorteile
Bus
– geringer Hardwareaufwand und geringe Kosten, da ein einziges Leitungsbündel vielfach genutzt wird
– neue Komponenten kann man leicht hinzufügen
– “broadcast” einfach, dh. eine Komponente schreibt, die anderen lesen vom Bus
• Nachteile
– der Bus kann zu einem “Flaschenhals” werden, da zu einem Zeitpunkt nur eine Kommunikation stattfinden kann
– fällt der Bus aus, kann niemand mehr kommunizieren
RA.7 2018 v1.0.0
7

Busse
• Performancemetriken
– Datenrate [MB/s] oft auch als “Bandbreite” bezeichnet
– Latenz [s] Zeit von der Anforderung bis zum Beginn einer Übertragung
• Busarten


Prozessor-Speicher Busse
§ Verbindung geringer Länge, hohe Datenrate (Speicherbandbreite) § angepasst an die Speicherorganisation, rechnerspezifisch
I/O Busse
§ längere Verbindungen und niedrigere Datenraten als Prozessor-Speicher Busse § Geräte mit grosser Varianz in Datenraten/Latenzen anschliessbar
§ oft standardisiert, zB. USB, FireWire
Backplane Busse
§ verbinden unterschiedliche Komponenten (Prozessoren, Speicher, I/O Einheiten) § langsam, geringe Systemkosten
§ oft standardisiert, zB. VME, cPCI

RA.7 2018 v1.0.0
8


Busarten
In einem Computersystem müssen Einheiten mit stark unterschiedlichen Datenraten und Latenzen unterstützt werden.
– Deshalb gibt es oft Busstrukturen mit mehreren Busarten
Beispiel
Prozessor
Prozessor-Speicher Bus
Bus- adapter
I/O-Bus
I/O-Einheit
Bus- adapter
I/O-Bus
I/O-Einheit
I/O-Einheit
RA.7 2018 v1.0.0
I/O-Einheit
Haupt- speicher
9

Busorganisation
• Ein Bus umfasst eine Menge von Steuerleitungen und Datenleitungen.
– Die Steuerleitungen werden verwendet für Anforderungen (request), Bestätigungen
(acknowledge), Reservierungen, …
– Die Datenleitungen werden für die Adressierung von Einheiten, die Übertragung von Daten und komplexere Steuerinformationen verwendet.
• Bei einer Bustransaktion ist immer eine Einheit der Master und mindestens eine Einheit der Slave. Eine typische Bustransaktion läuft folgendermassen ab:
Master
1. Reserviert den Bus.
2. Sendet eine Anforderung an die Adresse der gewünschten Einheit (request).
3.
4. Daten senden oder empfangen.
5. Gibt den Bus frei.
Slave
RA.7 2018 v1.0.0
Antwortet auf die Anforderung (acknowledge).
Daten empfangen oder senden.
10

• Synchronisation
– synchrone vs. asynchrone Übertragung
• Anzahl der Busmaster
– nur ein Master vs. mehrere Master
• Busbreite
– Grösse des Buswortes, dh. Anzahl der Bits, die parallel übertragen werden
– Adressen und Daten werden auf separaten Leitungen übertragen oder auf denselben Leitungen gemultiplext
• Blockgrösse
– ein Wort oder mehrere Worte pro Bustransaktion
• Übertragungsart
– Anforderung und Datenübertragung in einer Transaktion
– Anforderung und Datenübertragung in getrennten Transaktionen (split transaction)
RA.7 2018 v1.0.0
Bus-Charakteristiken
11

Synchronisation
• Bei der synchronen Übertragung arbeiten alle Einheiten mit dem gleichen Takt.
– Vorteil: Implementierung mit sehr einfachem Automat → wenig Hardware, schnelle Übertragung möglich
– Nachteil: alle Einheiten müssen mit dem gleichen Takt arbeiten → ungünstig bei Einheiten mit stark unterschiedlichen Datenraten
– Die Taktverschiebung (clock skew) zwischen den Einheiten beschränkt die schnelle Übertragung auf kurze Entfernungen → Prozessor-Speicher Busse sind meist synchrone Busse.
• Bei der asynchronen Übertragung gibt es keinen gemeinsamen Takt.
– Vorteil:
– Nachteil:
die Einheiten können unterschiedlich schnell sein
aufwendigere Bussteuerung mit 􏰜Handshake-Signalen􏰏 (Request-Acknowledge, Ready-Acknowledge), langsamer als synchron
RA.7 2018 v1.0.0
12

Beispiel
Prozessor (Master) will Daten vom Speicher (Slave) lesen
Adressen und Daten gemultiplext
CLOCK ReadRequest
Data
Synchrone Übertragung
Prozessor
CLOCK
ReadRequest
Data DataReady
Address
Data
RA.7 2018 v1.0.0
DataReady
Speicher
13

Asynchrone Übertragung
Beispiel
I/O-Einheit (Master) will Daten vom Speicher (Slave) lesen
Adressen und Daten gemultiplext
CLOCK_1 ReadRequest
Acknowledge Data
Data
CLOCK_2
I/O-Einheit
DataReady
Speicher
ReadRequest Data
Acknowledge
DataReady
12 Address
3
246
4
5
6
7
1: Slave antwortet auf ReadRequest mit Acknowledge 2: Master nimmt ReadRequest und Adresse vom Bus 3: Slave nimmt Acknowledge weg
4: Slave gibt Daten auf den Bus und signalisiert DataReady
5: Master signalisiert mit Acknowledge, dass er die Daten gelesen hat
6: Slave nimmt Daten und DataReady vom Bus
7: Master nimmt Acknowledge weg
RA.7 2018 v1.0.0
14

• Bus mit einem Master
– Der Master reserviert und kontrolliert den Bus alleine, die Slaves antworten auf Lese- und Schreibanforderungen.
– Vorteil: kurze Latenz, da keine Arbitrierung benötigt wird
– Nachteil: Master ist an jeder Bustransaktion beteiligt
• Wenn es mehrere Busmaster gibt, muss der Bus arbitriert werden.
– Der Master, der eine Bustransaktion durchführen will, muss den Bus anfordern und warten, bis der Bus freigegeben wird. Nach der Transaktion muss der Master den Bus wieder freigeben.
– Beispiele für Arbitrierungschemata: § zentrale Arbitrierung
§ Daisy-Chain Arbitrierung
§ verteilte Arbitrierung
RA.7 2018 v1.0.0
Arbitrierung
15

Zentrale Arbitrierung
• Bei der zentralen Arbitrierung werden alle Einheiten über separate Request- und Grant-Leitungen an den Bus-Arbiter angeschlossen.
– Request = Anfordern des Busses
– Grant = Zuteilung des Busses
– Der Busarbiter entscheidet, welcher der anfordernden Master den Bus bekommt. Dabei kann der Arbiter verschiedene Protokolle implementieren. Er kann zB. feste Prioritäten für die einzelnen Einheiten vergeben oder auch für Fairness sorgen, dh. eine Einheit, die schon lange nicht mehr dran war, bekommt hohe Priorität.
Einheit 1
Einheit 2
Einheit 3
Bus Arbiter
Grant 1
Request1
Grant 2
Request2
RA.7 2018 v1.0.0
Grant 3
Request3
16

Zentrale Arbitrierung
Beispiel
Zustandsdiagramm eines zentralen Busarbiters für drei Einheiten mit festen Prioritäten. → Welche Prioritäten haben die drei Einheiten?
Ri = Request von Einheit i Gi = Grant für Einheit i
CLR
R1·R2·R3 000
Zustand: G3 G2 G1
R1·R2
R2
R1·R2·R3 R2
001 R1 010
R3
100
R3
R1
R2
RA.7 2018 v1.0.0
17


Daisy-Chain Arbitrierung
Das Daisy-Chain Arbitrierungsschema ordnet die Einheiten in einer Prioritätskette an.
– Die Arbitrierung ist sehr einfach.
– Der Nachteil ist jedoch, dass die Einheiten mit niedriger Priorität lange ausgeschlossen werden können (keine Fairness).
Einheit 1
Einheit 2
Einheit 3
Grant
Grant
Grant
Protokoll:
Bus Arbiter
Release
Request
1. Eine Einheit fordert über die gemeinsame Request-Leitung eine Transaktion an.
2. Der Busarbiter schickt ein Grant-Signal an die erste Einheit. Jede Einheit gibt das Grant-Signal weiter, falls sie nicht selbst eine Transaktion angefordert hat.
3. Die Einheit, die den Bus angefordert hat, belegt den Bus.
4. Nach Beendigung der Transaktion gibt die Einheit über die gemeinsame Release- Leitung den Bus wieder frei.
RA.7 2018 v1.0.0
18

Verteilte Arbitrierung
• Verteilte Arbitrierung durch Selbstselektion
– Jede Einheit hat eine Identifikationsnummer (ID), die einer Priorität entspricht. Will eine Einheit eine Bustransaktion durchführen, legt sie ihre ID auf den Bus. Legen
mehrere Einheiten ihre ID auf den Bus, setzt sich die mit der höchsten Priorität durch (Realisierung siehe zB. GTI, Kapitel 9). Die Einheit, die ihre ID auf dem Bus erkennt, nimmt sich den Bus.
– Bsp.: NuBus (MacIntosh-II)
• Verteilte Arbitrierung durch Kollisionserkennung
– Fordern mehrere Master den Bus zur gleichen Zeit an, gibt es eine Kollision. Diese Master erkennen die Kollision, stoppen ihre Transaktion und warten eine gewisse (Zufalls-)zeit, bevor sie die Transaktion neuerlich beginnen.
– Bsp.: Ethernet-Protokoll
Computer Computer Computer Computer Computer
Ethernet
RA.7 2018 v1.0.0
19


Trend: statt parallelen Bussen zunehmend serielle Punkt-zu-Punkt Verbindungen
Beispiel
I/O Standards im Desktop / Server Bereich
RA.7 2018 v1.0.0
20

Beispiel
Chipsatz Intel 5000P
Busse im Desktop / Server Bereich
RA.7 2018 v1.0.0
21

7.3 Betriebssystem und Ein/Ausgabe
• Anwendungsprogramme benutzen das Betriebssystem, um ihre Ein/ Ausgabeoperationen durchzuführen.
– Das Betriebssystem stellt I/O-Dienste zur Verfügung. Das Anwendungsprogramm braucht sich nicht um die Details (Adressen, Steuersignale, Interrupthandler, …) zu kümmern.
– Ein/Ausgabeeinheiten sind von mehreren Programmen gemeinsam genutzte Ressourcen. Das Betriebssystem stellt sicher, dass potentielle Ressourcenkonflikte verhindert bzw. aufgelöst werden.
§ Mehrere Anwendungsprogramme dürfen sich gegenseitig nicht stören.
§ Alle Anwendungsprogramme (Benutzer) sollen gleichermassen Zugang zu I/O-Einheiten haben. Das wird durch eine geeignete Ablaufplanung (scheduling) sichergestellt.
• Zusammenspiel Ein/Ausgabe – Betriebssystem
– Das Betriebssystem muss Befehle an die I/O-Einheit geben können.
– Die I/O-Einheit muss das Betriebssystem informieren können, falls eine Operation beendet wurde, eine externe Anforderung oder ein Fehlerzustand aufgetreten ist.
– Daten müssen zwischen Speicher und I/O-Einheit ausgetauscht werden können.
RA.7 2018 v1.0.0
22

Befehle an die I/O-Einheit
• Spezielle Prozessorinstruktionen für Ein/Ausgabe
– Instruktionen beinhalten Geräteadressen und Daten (Befehle für die I/O-Einheit)
– diese Instruktionen können nur im kernel mode ausgeführt werden
• Speicheradressierte Ein/Ausgabe (memory-mapped I/O)
– Ein Teil des Speicher-Adressraums wird den I/O-Einheiten zugewiesen
– Durch Schreiben an diese Adressen werden Befehle an die I/O-Einheit geschickt
– Das Betriebssystem schützt diesen Speicherbereich vor Anwenderprogrammen
– Beispiele für memory-mapped Systemarchitekturen:
Prozessor
Prozessor
Prozessor-Speicher Bus
Interface I/O-Einheit
Prozessor-Speicher Bus
Busadapter
I/O-Einheit
Speicher
Speicher
I/O Bus
RA.7 2018 v1.0.0
23

I/O-Einheit informiert Betriebssystem
• Polling
– Die I/O-Einheit schreibt die Informationen für das Betriebssystem in ein Status-
register innerhalb der I/O-Steuerung.
– Der Prozessor liest dieses Statusregister periodisch aus (programmierte Ein/Ausgabe).
Prozessor
– Nachteil:
§ Es kann viel Prozessorleistung in der Abfrageschleife verschwendet werden (der Prozessor betreibt “busy waiting”).
Speicher
Statusreg.
I/O-Steuerung
RA.7 2018 v1.0.0
24

I/O-Einheit informiert Betriebssystem
• I/O Unterbrechung (Interrupt)
– Die I/O-Einheit generiert bei Bedarf ein Unterbrechungssignal
– Der Prozessor unterbricht das laufende Programm und behandelt die Anfrage
– Bestimmung der Startadresse des Unterbrechungsprogramms (interrupt handler)
§ eine Startadresse für alle Interrupts; Software bestimmt die Ursache (Gerät) und verzweigt in den entsprechenden Interrupthandler
§ jedem Interrupt ist eine feste Startadresse zugeordnet; die Tabelle mit den Startadressen der interrupt handler (interrupt vector) befindet sich im Speicher
Prozessor
Interrupt
Speicher
Statusreg.
I/O-Steuerung
RA.7 2018 v1.0.0
25

Datentransfer Speicher – Ein/Ausgabe
• DMA (direct memory access) controller
– Um den Prozessor nicht mit dem Datentransfer zwischen Speicher und I/O zu belasten, wird häufig ein DMA controller verwendet. Der DMA controller kann Busmaster werden und Datenblöcke übertragen.
– Typischer Ablauf:
§ Der Prozessor sendet dem DMA controller die Startadresse, die Zieladresse und die Anzahl der zu übertragenden Worte.
§ Der DMA controller übernimmt den Bus und generiert die Adressen und die Steuersignale für den Speicher und die I/O-Einheit.
§ Nach Ende der Übertragung generiert der DMA controller einen Interrupt.
Interrupt
Prozessor
I/O-Steuerung
Speicher DMA
RA.7 2018 v1.0.0
26

Speicherhierarchie und Ein/Ausgabe
• Da sowohl die CPU als auch der DMA controller auf den Speicher zugreifen, kann es zu Konsistenzproblemen kommen.
• Lösung #1:
– Vorteil:
– Nachteil:
• Lösung #2:
Der I/O-Datentransfer geht durch den Cache
Konsistenz durch Speicherhierarchie sichergestellt
Arbitrierung zwischen CPU und DMA controller beim Cachezugriff notwendig, I/O-Daten werden eventuell kaum bzw. erst später von der CPU referenziert → Performanceverlust
Der I/O-Datentransfer geht zum Speicher, aber die Hardware und/oder Software sorgt für Konsistenz
– I/O-Einheit liest vom Speicher:
§ Cache mit durchgängigem Schreiben verwenden + write buffer leeren, oder § write-back der betroffenen Cacheblöcke (cache flushing)
– I/O-Einheit schreibt in den Speicher:
§ die betroffenen Cacheblöcke invalidieren
RA.7 2018 v1.0.0
27

DMA und virtueller Speicher
• Der DMA controller arbeitet mit virtuellen Adressen
– Der DMA controller muss dann selbst eine Abbildung auf physikalische Adressen
vornehmen.
– Dazu gibt es im DMA controller eine (kleine) page table, die vom Betriebssystem vor dem Datentransfer initialisiert wird.
• Der DMA controller arbeitet mit physikalischen Adressen
– Geht ein Datentransfer über eine Seitengrenze, kann der DMA controller nicht
feststellen, unter welcher pysikalischen Adresse die nächste virtuelle Seite liegt
– Lösungen:
§ DMA Transfers auf eine Seite begrenzen
§ bei grösseren Datenblöcken mehrere DMA-Transfers durchführen
• Bei beiden Varianten:
– Das Betriebssystem darf die Adressabbildung für die Seiten, für die gerade ein DMA-Transfer läuft, nicht ändern!
RA.7 2018 v1.0.0
28

• Aufbau
– Eine Disk besteht aus einer Reihe von rotierenden Platten (bzw. Oberflächen), typisch: 1-8 Platten, 5’400 – 15’000 Umdrehungen pro Minute, Durchmesser 1″–3,5″
– Jede Oberfläche besteht aus einer Reihe von Spuren, typisch: 10’000 – 50’000 Spuren/Oberfläche
– Jede Spur besteht aus einer Reihe von Sektoren, typisch: 100 – 500 Sektoren/Spur
– Jeder Sektor hat einen Speicherinhalt, typisch: 512 Byte
– Als Zylinder bezeichnet man eine Spur auf allen Oberflächen, dh. die Menge der Spuren, auf die von einer bestimmten Position der Köpfe zugegriffen werden kann
7.4 Festplatten
Spur (track)
Platten (platters)
Schreib/Leseköpfe (read/write heads)
Sektor (sector)
RA.7 2018 v1.0.0
29

Beispiel
Festplatten
8″ – 130MB (1984)
14″ – 456MB (1985)
5,25″ – 85MB
3,5″ – 320MB (1988)
2,5″ – 40MB (1990)
Fujitsu 2,5″ – 60GB © Fujitsu
→ im Jahr 2016 war die maximale Kapazität einer 3,5″ Disk 12TB
1,8″ – 20MB (1992)
RA.7 2018 v1.0.0
30

Diskzugriff
• Die Zugriffszeit auf einen Sektor setzt sich zusammen aus
– Suchzeit (seek time): Zeit, um den Schreib/Lesekopf über der richtigen Spur zu positionieren, typisch: average seek time 3ms–14ms
– Rotationslatenz (rotational latency): Zeit, bis der gesuchte Sektor unter dem Schreib/Lesekopf liegt, im Durchschnitt eine halbe Umdrehung,
typisch: 2ms–6ms
– Transferzeit (transfer time): Zeit zum Transfer der Daten, dh. Schreiben/Lesen des Sektors, typische Datenrate: 30–80 MB/s (mit disk cache bis
320 MB/s)
– Controller Overhead: Zeitaufwand für den disk controller
– Wartezeit (waiting time): Zeit, bis die I/O-Anforderung bearbeitet wird
disk access time = seek time + rotational latency + transfer time + controller overhead + waiting time
RA.7 2018 v1.0.0
31

Beispiel
Diskzugriff

Gegeben ist eine Festplatte mit
– 512 Byte pro Sektor
– 10’000 Umdrehungen pro Minute
– durchschnittliche Suchzeit von 6 ms
– Datenrate 50 MB/s
– Controller overhead 0,2 ms
– keine Wartezeit
Wie gross ist die durchschnittliche Zeit zum Lesen/Schreiben eines Sektors?
disk access time = 6 ms + (0,5*60)/10’000 s + 512/(50*106) s + 0,2 ms = =6ms+ 3ms+0,01024ms+0,2ms=9,21024ms
RA.7 2018 v1.0.0
32

Beispiele – Disks
RA.7 2018 v1.0.0
33

Beispiel
• Gegeben
– CPU mit 3’000 MIPS
– workload besteht aus Disk-I/Os von je 64 KB, pro I/O braucht das Anwendungs- programm 200’000 Instruktionen, das Betriebssystem 100’000 Instruktionen
– Speicherbus mit Datenrate 1GB/s, an dem Prozessor, Speicher und mehrere SCSI Ultra320 controller hängen
§ SCSI Ultra320 Bus: Transferrate 320 MB/s, bis zu 7 Disks anschliessbar
§ Disk: Transferrate 75 MB/s, average seek time 4 ms, rotational latency 2 ms
– vereinfachende Annahmen
§ die 64 KB Datenblöcke liegen in sequentiellen Sektoren auf den Spuren
§ am SCSI Bus gibt es keine Zugriffskonflikte, dh. auf eine unbeschäftigte disk kann immer zugegriffen werden (keine Wartezeiten)
§ kein disk controller overhead, kein SCSI controller overhead • Gesucht
– Was ist die maximal erreichbare I/O-Rate, und wieviele disks und SCSI controller braucht man dafür?
Ein/Ausgabe Performance
RA.7 2018 v1.0.0
34

Beispiel
Ein/Ausgabe Performance
Prozessor
1GB/s
Speicher
SCSI Controller
320 MB/s
320 MB/s
RA.7 2018 v1.0.0
SCSI Controller
35

Beispiel
– Wie viele I/O Operationen pro Sekunde (IOPS) kann die CPU durchführen? (Eine I/O Operation entspricht einem 64 KB Datenblock)
maximale I/O-Rate CPU = (3*109)/(300*103) = 104 IOPS
– Wie viele IOPS kann der Speicherbus transferieren?
maximale I/O-Rate Speicherbus = (1*109)/(64*210) = 1,526*104 IOPS
→ Die maximale I/O-Rate wird durch die CPU begrenzt! Das Disksystem muss für 104 IOPS ausgelegt werden.
– Wie lange dauert der Diskzugriff für eine I/O Operation?
Diskzeit für I/O Operation = 4 + 2 + 64*210/(75*106*10-3)= 6,87 ms
→ Eine Disk kann 1000/6,87 = 145,56 IOPS verarbeiten. → Für 104 IOPS benötigt man 104/145,56 ≈ 69 disks.
Ein/Ausgabe Performance
RA.7 2018 v1.0.0
36

Beispiel
Ein/Ausgabe Performance
– Welche Datenrate generiert eine Disk für den SCSI Bus? SCSI Datenrate einer Disk = 64*210/(6,87*10-3) = 9,54 MB/s
→ 7 Disks auf dem SCSI Bus generieren eine Datenrate von 7*9,54 < 320 MB/s. → Es können 7 disks an den SCSI Bus angeschlossen werden. → Für 69 disks braucht man é69/7ù = 10 SCSI controller → Die maximal erreichbare I/O-Rate ist 104 IOPS (begrenzt durch den Prozessor). → Dafür braucht man 10 SCSI controller und 69 disks. – In diesem Beispiel wurden sehr viele Vereinfachungen gemacht. Für genauere Analysen werden Modelle der Warteschlangentheorie oder Simulation verwendet. RA.7 2018 v1.0.0 37 • v1.0.0 – Aktualisierung für WS 2018/19 – Neue Daten zur Entwicklung der Performance, Taktfrequenz und DRAM Kapazität RA.7 2018 v1.0.0 Änderungen 38