nächste aufgabe: vergleich von 2 zahlen ausgabe 0, wenn...
TRANSCRIPT
Lösung: Verzweigung
„Goethe 4“
LDA, LDX
Vergleiche (CPX)
LDA #$0
STA $2
Gleich?Ja
LDA #$1
STA $2
Größer?
Ja
Nein
LDA #$2
STA $2
Nein
CPX mit ALU
C=1 wenn A>X
Z=1 wenn A=X
(neues Flag)Wie funktioniert
eine
Verzweigung?
Akkumulator Register X
ALU
Dekoder
Adressbus
C
Rechenwerk
Befehl Argument(e)
Ablaufsteuerung
(Zustandsautomat)
PC
Steuerwerk Speicher
Befehle,
Argumente,
Daten
Datenbus
Toy-Model-Prozessor „Goethe4“
Z
Maschinencode
start:
LDA $0
LDX $1
CPX
BEQ gleich
BCS groesser
LDA #$2
JMP ende
gleich:
LDA #$0
JMP ende
groesser:
LDA #$1
ende:
STA $2
● Neue Befehle:▪ JMP $adresse
• Überschreibt PC mit adresse
▪ BEQ $adresse• „branch if equal“
• Überschreibt PC nur wenn Z=1
▪ BCS $adresse• „branch if carry set“
• Überschreibt PC nur wenn C=1
● Effekt: Nächster Takt lädt Befehl von neuer Adresse
● Speicher linear: Blöcke liegen hintereinander
● Markierung mit „Labels“▪ den Rest legt der Assembler
zurecht
Assembler benötigt die
Info, dass "start:"=$3
Code-Recycling
● Können Code mehrmals ablaufen lassen (mit JMP start)
● Aufgabe: Neustart durch Betätigung einer anderen Taste:
ende:
…
LDX $1
loop:
LDA $1
CPX
BEQ loop
JMP start
Schleife bis
Taste 2 sich
geändert hat
Verbraucht
„sinnlose“
Rechenzeit
Andere
Vorschläge?
Interrupt
● Führen für jede Taste noch ein spezielles IRQ-Register ein
● Memory Map:
0 Inhalt Taste 1
1 Inhalt Taste 2
2 Ausgabe
3 IRQ1-Zeiger
4 IRQ2-Zeiger
● IRQ=Interrupt Request
● IRQ1: Adresse für Taste 1
● IRQ2: Adresse für Taste 2
● Funktion:
▪ Nachdem IRQ ausgelöst wird (Taste gedrückt), soll PC auf die neue Adresse zeigen
IRQ-Anwendung
● Neuer Vorschlag
ende:
STA $2
LDA #irq_taste
STA IRQ2
loop:
„irgendein code“
JMP loop
irq_taste:
JMP start
● Ist nicht sinnvoll, da:
▪ „irgendein code“ vielleicht was sinnvolles gemacht hat
● Alternativ:
▪ Mache Berechnung in Interrupt
▪ Rückkehr an alte Stelle nach Beendigung des IRQ
▪ Zwischenspeicherung des PC
● Neuer Befehl: RTI (Return from Interrupt)
▪ Holt alten PC wieder zurück
Stack
● Bsp: Taste1-IRQ
● Während IRQ-Ablauf Taste2-IRQ
● Wohin PC speichern?
● Lösung: Stack
● IRQ1 legt PC auf Stack ab
● IRQ2 legt PC auf Stack ab
● RTI (von IRQ2) holt alten PC ab
● RTI (von IRQ1) holt alten PC ab
IRQ1-PC-Stand
IRQ2-PC-Stand
● Konzept auch für Unterprogramme
▪ JSR (=Jump Subroutine)
▪ RTS (=Return from SR)
Erlaubt
modulares programmieren!
IRQ-Service-Routine
● IRQ-Service-Routine überschreibt Akku
● Im IRQ muss noch mehr gemacht werden:
● Register retten
● Prolog
▪ PUSH rettet Akku auf Stack
● Epilog
▪ PULL holt Akku wieder zurück
start:
LDA #irq_taste
STA IRQ1
loop:
„irgendein code“
JMP loop
irq_taste:
LDA $0
STA $30
RTI
irq_taste:
PUSH
LDA $0
STA $30
PULL
RTI
Weitere Feinheiten
● IRQ-Maskierung mit Register
▪ Zum Ein- und Ausschalten
● Mehr Register
▪ Z.B. Y-Register
● Direkte Transfers
▪ TAY
▪ Kopiere Akku nach Y
● Weitere Adressierungen:
▪ Absolut, X
• LDA $40,X
• Lade von Speicherstelle $40+X
▪ Indirekt
• LDA ($40)
• Lade aus Speicherstelle die in $40,$41 definiert ist
• Pointer-Arithmetik
▪ Indirekt,X
• LDA ($40,X)
• LDA ($40),Y
Zusammenfassung Toy-Model
● 1. Fetch
● Befehl wird aus Speicher geholt
● 2. Decode
● Befehl wird dekodiert und Anzahl der Argument bestimmt
● 3. Argumente holen
● 4. Operation ausführen
● 5. Write back
● Diverse Ladebefehle:
▪ LDA #$4
▪ LDA $4
● Vergleiche
▪ CPX
▪ CMP #$40
● Sprungbefehle▪ JMP
▪ JSR
▪ BEQ
▪ BCS
Zusammenfassung Toy-Model (2)
● ALU-Befehle
▪ ADD
▪ SUB
▪ Auch unmittelbar
▪ ADD #$05
▪ AND, OR, XOR…
● Interrupts
● Stack
● Spezielle Register, memory mapped
● Zeropage
● RAM under ROM
Nur Toy-Model?
MOS 65xx
● Hergestellt von MOS Industries
● Tochterfirma von Commodore
● Eingesetzt in: C64, ZX Spektrum, Apple I
Zitate
● 1943: Thomas Watson, IBM-ChefIch glaube es gibt einen weltweiten Bedarf an vielleicht fünf Computern.
● 1949: Fachblatt “Popular Mechanics”In Zukunft könnte es Computer geben, die weniger als 1,5 Tonnen wiegen.
● 1957: Der Lektor für Wirtschaftsbücher des renommierten Verlags “Pretentice Hall”Ich habe das ganze Land bereist und mit allen Experten gesprochen, und ich sage Ihnen: “Datenverarbeitung ist ein Modefimmel, der nicht einmal das Jahr überstehen wird”.
● 1968: Ein IBM-Ingenieur über die Idee des MikroprozessorsSchön.. Aber wozu soll er gut sein ?
● 1977: Ken Olsen, Präsident und Gründer des Rechnerherstellers Digital Equipment CorporationEs gibt keinen erdenklichen Grund, weshalb jemand einen Computer für zu Hause haben sollte.
● 1981: Bill Gates640 kByte sind genug für jeden
Von-Neumann-Architektur
● Vorgeschlagen 1946 von John von Neumann
● Universeller Rechner
● Toy-Model ist von-Neumann-Rechner
● Prinzipien:
▪ Ablaufsteuerung
▪ Rechenwerk
▪ Speicher für Befehle und Daten
1903-1957Logische Struktur
CISC vs. RISC
● RISC: Reduced Instruction Set Computer
▪ Nur notwendige Befehle
▪ Dafür fest verdrahtet (wie Toy-Model ohne spezielle Adressierungen)
● CISC: Complex Instruction Set Computer
▪ Drang nach immer mehr Befehlen
▪ Z.B. Argumente nicht nur in Register, sondern auch im Speicher (ADD $40, $41)
▪ Braucht Microcode als Ablaufsteuerung
▪ Typischer Vertreter: Intel x86-Reihe
● Heute akademischer Streit
Intel 4004 (1971)(Integrated Electronics)
● 4 Bit, PMOS
● 12 Bit Adressraum
● Stack mit 3 Plätzen
● 108 kHz
● 2250 Transistoren
● Ursprünglich für japanische Firma entwickelt (Rückkauf für 60.000$)
● Erster kommerzieller „Microprozessor“ (CPU auf einem Chip)
● 4040 (1974)
● Stack auf 7 erhöht
● Mehr Befehle
Intel 800X
● 8008 (1972), PMOS
● Grundlegendes Neudesign
● 8 Register
● Stack als separater Baustein
● 8080 (1974)
● 16 Adressleitungen -> 64 kByte Adressraum
● 4500 Transistoren, 2.5 MHz, NMOS
Intel 808X
● 8085
● 6500 Transistoren
● Lange im Einsatz als Microcontroller
● 8086 (1978), Quasi-16-Bit Prozessor
● Adressierung nur in 64 kByte-Fenstern (bis 1MByte)
● War eigentlich nur als Zwischenlösung bis zum 32-Bit-System gedacht
● Coprozessor: 8087 für Fließkomma-Arithmetik
Einschub: Fließkommazahlen
● Arbeiten mit Komma:
● Bsp.: Zerlege 8 Bit in 4 Vor- und 4 Nachkommabits:
▪ 1001.0011 (was ist das für eine Dezimalzahl?)
▪ = 9.0 + 0*0.5 + 0*0.25 + 1*0.125 + 1*0.0625= 9.1875
▪ Festkommazahl, Wertebereich stark eingeschränkt
● Alternativ:
▪ 9.1875
▪ =9.1875 * 100
▪ =0.091875 * 102
▪ =918.75 * 10-2
● Fließkommazahlen
Fließkommazahlen
● Brauchen noch 2. Zahl, den Exponenten
● 8 Bit mit „Bias“ von 127, d.h. 127 ist gleich 0
● Basis ist nicht 10, sondern 2
▪ 9.1875=1001.0011 * 2b01111111-127
▪ Oder: =100.10011 * 2b10000000-127
▪ Oder: =1.0010011 * 2b10000010-127
Finden immer
Darstellung, wo
Genau eine 1 vor
Komma
J-BitFraction
Normaldarstellung
1 Bit eingespart,
kann als
Vorzeichenbit
benutzt werden
IEEE-Standard 754
● Null wenn Exponent=Fraction=0…0
▪ (Es gibt +0 und -0)
● Unendlich, wenn Exponent=1…1 und Fraction=0…0
▪ (Es gibt +∞ und -∞)
● Not a Number (NaN), z.B. nach Teilung durch Null
▪ Exponent=1…1 und Fraction ungleich Null
Sign Exponent Fraction Bias
32 Bit
Single Precision
1 [31]
8
[30-23]
23
[22-00]
127
64 Bit
Double Precision
1[63]
11
[62-52]
52
[51-00]
1023
Die Anfänge von Commodore
● Jack Tramiel (1929-2012)
● Gründet 1954 Commodore Ltd.(vorher „Commodore“-Laden in der Bronx)
● Zunächst Herstellung von Schreibmaschinen (und größter Büromöbelherstellerin Kanada)
● 1969: Taschenrechner
● 1976 Übernahme vonMOSTek
MOS
● MOS 6502, vorgestellt 1976(VC-20, Atari 800L, Apple 2)
● 25 US$ (vergleich: I8080 175 US$)
● RISC-artig (3 Register, wenig Befehle, Operationen nur auf Register)
Commodore-Produkte
● C64
● Amiga
● 1984: Tramiel verlässt CBM
● Danach: CBM läuft Markt hinterher (Ära der Homecomputer zu Ende)
● 1994 Konkurs, ▪ Reste 1995 von ESCOM gekauft (1996 selbst pleite)
Atari
● Nolan Bushnell:
▪ Pong (Magnavox)
▪ 1972 Atari gegründet
▪ 1975 Breakout
● 1976 Verkauf an Time Warner
● 1978: Heimcomputer
● 1982: Pac-Man
● 1984 von Tramiel gekauft
● 1996 aus dem Markt verdrängt + von JTS aufgekauft(„Atari“ später von Infogrames übernommen, 2013 Insolvenz in USA)
Apple
● 1976: Apple I (6502, 8KByte)
● Apple II (Farbe, 4-64kByte)
▪ Casettenspeicher
▪ 1977 mit Diskette
● 1980: Apple III
▪ Finanzielles Desaster
● 1984: Macintosh (68000): Graphische Oberfläche, mit Menüs
● 1998: iMac
▪ Powerpc als resultat der aim (apple, ibm, motorola) allianz
● 2005: Umstellung auf Intel-Prozessoren
● 2007: Neuausrichtung auf Unterhaltungselektronik (iPod, iPhone, iPad)
SUN
● Andreas von Bechtolsheim -Bundessieger jugend Forscht –(Physik 1974)
● 1976 nach Stanford
● Idee: Rechner der Uni vernetzen (baute Hardware dafür). S.U.N.=Stanford University Network
● 1982 Gründung von SUN mit Studienkollegen (Joy, Kholsa, McNealy)
● Entwicklung von SunOS, SPARC (=RISC Prozessor), Java, etc…
● 2009 von Oracle übernommen
Clive Sinclair
● ZX Spectrum (1982)
● Extrem fortschrittliches „Microdrive“
ARM
● Entwicklungprojekt (1983) von Acorn Computers
● ARM = Acorn Risc Machine
● 1990: Gründung von ARM ltd. mit Apple etc.: ARM = Advanced Risc Machines
● Lizenznehmer: Motorola, Intel, TI, …
● Kleingeräte-Bereich: Smartphones, Tablets, etc.
▪ Ca. 4 Milliarden Stück / Jahr (Stand 2010)
Advanced Micro Devices
● 1969 Gründung durch Jerry Sanders und Ed Turney (vorher: Fairchild)
● Risikokapital von Robert Noyce u.a.
● 1975: Speicherchips, Bauteile für Prozessoren (Am 2900)
● 1979: x86 mit Intel-Lizenz (bis 486)
● 1987: RISC-Prozessoren (Am29000): Unix-Systeme, Drucker
● 1996: K5, Übernahme von NexGen
● 1997: K6 (basierend auf NexGen-Entwicklung)
● 1998: Produktion in Dresden (später Globalfoundries)
● 1999: K7 (Athlon)
● 2003: K8 (AMD64 = x86-64 = Intel-64 ≠ IA-64)
● 2006: Übernahme von ATI (Grafikkarten)
R. Noyce, Physiker,
Gründer von Intel,
Fairchild
DEC
● 1957 von Ken Olsen gegründet
● PDP-Serie (sehr erfolgreich an Universitäten)
● VAX/VMS workstations
● Netzwerke (DECNet)
● DLT (Digital Linear Tape)
● ASCII-Terminals (vt102)
● Alpha-Prozessor (RISC)
▪ Verkauf der Prozessorsparte an Intel
● 1998 Übernahme durch Compaq
● 2002 Verkauf Compaq an HP
NAME
xterm - terminal emulator for X
DESCRIPTION
The xterm program is a terminal emulator for the X Window System. It provides DEC
VT102/VT220 (VTxxx) and . . .
Hewlett-Packard (HP)
● 1939 gegründet (William Hewlett + David Packard)
● 1972 Taschenrechner HP-35 (ca 400 $)
● 1980 PC‘s
● 1999 Abspaltungvon Agilent
● 2002 Fusion mit Compaq
● 2010 Kauf von 3comund Palm
● 2011: Abkehr vom PC-Geschäft
● 2015: Aufspaltung in HP Inc. Und HP Enterprise
XEROX
● Chester Carlson:
▪ 1942 Patent auf Xerographie
▪ 1947 an Haloid Company -> XEROX
▪ 1970 Patent auf Xerographie läuft aus
● PARC: Palo Alto Research Center (1970)
▪ Laserdrucker
▪ Ethernet (3com)
▪ Graphische Benutzeroberfläche
• GUI, WYSIWYG
▪ Interpress-Sprache
• Adobe, Postscript
NoteTaker
XEROX Alto
Motorola
● 1928 als Galvin Manufactoring Corporation gegründet
● 1930 erstes kommerzielles Autoradio
● 1947 Motorola
● Motorola 68000, z.B. Apple Macintosh▪ Heute Basis von Microcontrollerfamilie
● PowerPC▪ Teilweise als embedded Prozessor (XILINX-FPGAs)
● Graphikprozessoren
● Mobiltelefone (1983 DynaTAC ~4000$)
● Mobilfunk-Basisstationen (an Nokia-Siemens)
● 2011 in zwei Unternehmen aufgespalten (Solutions und Mobility, letzeres von Google übernommen, später an Lenovo weiterverkauft)