Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Apple>Wie funktioniert das Monster, an dem ich arbeite?

Wie funktioniert das Monster, an dem ich arbeite?

Cmon
Cmon05.02.0410:31
Hallo

Ok, ich bin nicht mehr ein Anfänger, hatte schon einige Informatik-Lektionen und arbeite jeden Tag 8 Stunden mit dem Mac/PC.

Aber was mir bis jetzt wirklich noch niemand erklären konnte, ist wie ein Computer "wirklich" funktioniert....ich kenne alle vereinfachten Schemas usw, was ist RAM/ROM/CPU usw, aber.......WIE FUNKTIONIERT DAS WIRKLICH??????

Z. B. der Z1 von Zuse ist ja noch mechanisch, vom Aufbau her aber etwa wie unsere Rechner...gibts da eine genauere Erklärung, die nicht nur für Hardcore Mathematik-Informatik-Genis ist?
„Bei MTN seid 2003…wie die Zeit vergeht!“
0

Kommentare

Der Lügner
Der Lügner05.02.0410:45
Ob du dir das wirklich antun möchtest ? Also wenn du auf die ganzen dazugehörigen Beweise verzichten kannst, dann schau dir mal die Vorlesungen der technischen Informatik an ...

An der Uni Freiburg z.B. kannst du sie dir runterladen udn auf dem Rechner anschauen, Videos á 20MB, Folien + Stimme.

TI 1 macht die Grundlagen, TI 2 dann den gesamten Rechneraufbau.

Das ist schön ausführlich, und wenn du auf die Beweise verzichtest, ist es nicht so schwer ...

Hier z.B. die Grundlagen, mit dem MPlayer abspielbar ...
Eventuell nen Player nehmen, der schneller abspielen kann, der spricht sehr sehr langsam


Und hier findest du die Vorlesungen, die in TI 2 kommen, also wie die einzelenen Chips verbaut werden, was sie tun etc, plus Timing ...



Viel Spaß damit !

0
Hardtrancer
Hardtrancer05.02.0411:12
Früher waren die Chips von Toshiba, Hitachi usw. heute sind in den meisten Chips von Intel viele kleine Amerikaner beschäftigt ...
0
Cmon
Cmon05.02.0411:25
Aha. vielen Dank, kanns mir leider erst zuhause anschauen, aber ist sicher interessant!
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
TiBooX
TiBooX05.02.0413:06
Cmon
Hallo

Ok, ich bin nicht mehr ein Anfänger, hatte schon einige Informatik-Lektionen und arbeite jeden Tag 8 Stunden mit dem Mac/PC.

Aber was mir bis jetzt wirklich noch niemand erklären konnte, ist wie ein Computer "wirklich" funktioniert....ich kenne alle vereinfachten Schemas usw, was ist RAM/ROM/CPU usw, aber.......WIE FUNKTIONIERT DAS WIRKLICH??????

Z. B. der Z1 von Zuse ist ja noch mechanisch, vom Aufbau her aber etwa wie unsere Rechner...gibts da eine genauere Erklärung, die nicht nur für Hardcore Mathematik-Informatik-Genis ist?

Die Zuse Z1 ist nicht mechanisch sonder n ELEKTROMECHANISCH sie funktionierte nämlich mit aussorierten Telefonrelais.

noch ein link zum verständnis von computern:


Ansonsten: fragen! fragen! fragen!

greetz
TiBooX
„People who are really serious about software should make their own hardware [A. Kay]“
0
Kronar05.02.0413:15
TiBooX

ich wollte auch gerade den WDR Computerclub papiercomputer empfehlen, habe damals als er rauskam ne Menge gelernt und natürlich auch mit Rodnay Zaks Assemblerprogrammierung des Z80 A, auch wenn man einem heutigen Informatiker sicherlich nicht mehr kalr machen kann, warum die Operation 4 / 3 einen Sourcecode in der Größenordnung einer DIN A4 Seite benötigt...

Also das Ding ist wirklich zu empfehlen, wenn es darum geht, wie prinzipiell eine CPU arbeitet (ALU, Datenregister, Bus, Flags etc.)

Gruß
Kronar
0
Cmon
Cmon05.02.0415:37
@TiBooX

war es nicht so, dass Zuse den Z1 aus alten Konservenbüchsen, Blechen etc. baute? (jedenfalls den Speicher) Und erst der Z2 und Z3 mit Relais funktionierten?

Der Z1 war ja darum recht unzuverlässig....gibts da eigentlich eine Seite, die genauer erklärt, wie er funktioniert? Ich hab nur was auf englisch gefunden...und wenns kompliziert ist, hätt ichs doch lieber auf Deutsch!
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
Cmon
Cmon05.02.0415:49
ok....wie geht das genau mit dem Papiercomputer?


Wie bau ich den? Wie sieht der aus? Gibts da nicht ne ausführlichere Anleitung? Es tönt noch interesant....auf der Seite ist die Rede von einem Bauplan und so im ZIP-Format, aber den kann ich nirgends zum downloaden finden
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
Kronar05.02.0416:12
Cmon

Schau mal hier:



Gruß
Kronar
0
Cmon
Cmon05.02.0417:25
Aha, danke!

Ist ja eigentlich recht simpel!


Infos zum Z1 hat niemand? Würd ich gerne nachbauen
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
damian
damian05.02.0419:29
zu deiner umfrage: aaah, so ein bisschen selbstbeweihräucherung tut gut
0
Cmon
Cmon05.02.0419:34



warum nicht mal ehrlich sein?
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
neo06.02.0401:10
Ich habe schon mal einen Gebaut

Aber das mit dem erklären ist nicht so leicht.
Man kann aber erst mal sagen das eine CPU im Prinzip ein Büro ist, ein einfaches mit nur einer Person. Die Person hat auf dem Tisch einen Zettel liegen (Das Programm) wo drauf Anweisungen stehen die die Person Wort wörtlich ausführen muß. Zum Beispiel Nehme 8 Blätter aus Schubfach R0 und Packe diese in Schubfach R2.

Es sind von vornherein ein paar Konditionen zu treffen, also Vereinbarungen die jemand einfach mal getroffen hat, z.b das die heutigen Rechner nur mit einfachen 2 zuständen arbeiten. kommt davon das es einfacher ist Strom ein und aus zuschalten anstatt irgend einen Wert in der Mitte als dritten Zustand zu vereinbaren. Es gibt noch mehr also wenn noch mehr Beispiele gebraucht werden dann frag einfach.

Ein einzelnes Blatt kann nur mit einer "0" oder mit einer "1" beschriftet sein, das würde im Rechner einem Bit entsprechen. Ein Hefter hat immer 8 Blätter (entspricht einem Byte).

Es gibt aber nur eine Begrenzte Anzahl von Anweisungen. In meinem Beispiel gehe ich erst mal von 7 Befehlen aus.

1.) Nehme/Packe
2.) addiere
3.) subtrahiere
4.) vergleiche
5.) springe wenn gleich
6.) Schiebe Rechts
7.) Schiebe Links

Es gibt jetzt in diesem Prozessor Ein paar Schubladen (Register) die für die "normale" Arbeit benutzt werden und es gibt ein paar Register die Speziell für das arbeiten mit den Befehlen direkt benutzt werden.

Als normale Register haben wir R0, R1, R2 ,R3 die vier sollten erst mal Reichen. Als Spezielle Register haben wir ProgrammZeilenSpeicher (Programmcounter) hier schreiben wir uns immer auf in welcher Zeile wir grade sind mit der Abarbeitung der Liste. Dann haben wir ein Register wo wir uns aufschreiben was beim vergleichen rausgekommen ist.

Wenn du bis jetzt Folgen konntest dann sag bescheid sonst Frage nach.

mehr gibt es morgen.

Gruss
Neo.

PS: Ein Rechner ist total simpel. Er macht immer nur das was man ihm sagt.
0
Donar06.02.0402:43
Wir sind hier ja nicht bei Intel und Konsorten sondern beim PPC. Also haben wir genau 32 Register (R0, ..., R31) und kein "Spezialregister" gedönse...
Das ganze nicht so stark vereinfachen, dass es falsch wird ...
0
Agrajag06.02.0403:04
Kronar
... auch wenn man einem heutigen Informatiker sicherlich nicht mehr kalr machen kann, warum die Operation 4 / 3 einen Sourcecode in der Größenordnung einer DIN A4 Seite benötigt...
Hähä... Das kenne ich noch vom ARM-Prozessor. Der kennt auch kein DIV. Ein DIV 10 wird durch 10(?) Befehle nachgebildet: alles Additionen, wobei der zweite Operand geshiftet wird. Das Ganze dauert mit Hin- und Rücksprung 10 oder 12 Takte (der 68000 benötigte mit einem echten DIV so um die 140 Takte). Das Tolle an dieser Routine ist aber, dass Exponent und Mantisse 32Bit breit sind (68000 nur 16Bit).

Dieser Prozessor macht einfach Spass mit Assembler gefüttert zu werden: ALLE Befehle können unter einer Bedingung ausgeführt werden und jedem Befehl kann man sagen, ob er die Statusflags verändern darf, oder nicht.

Die Rechenbefehle sind alle 3-Operatoren-Befehle, wobei der dritte um beliebige Stellen geshiftet werden kann, OHNE extra Taktzyklen.

ADD R1, R2, R3 LSL#20

benötigt exakt einen Takt.

Ich gerate gerade ins Schwärmen... ich höre wohl besser auf

Gruß
Mike
0
Cmon
Cmon06.02.0409:56
neo

Danke für die Ausführungen, ich bn auf den 2Ten Teil gespannt!

Eigentlich ist alles klar....aber die Register oder Schubladen....das sind einfach Speicher oder so? Also z. B. wie beim Zuse, der ja glaub ich 8 22Bit-Speicher hatte?

Wie hast du den Z1 denn nachgebaut? Ist ja ein riesen Ding mit tausenden von Blechen, das kann man ja kaum als Bausatz kaufen, oder?
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
flybuddha06.02.0410:21
Der Lügner

super mit deinen Link, würde mir gern eure VL ansehen, aber leider weiss ich nicht welchen Player ich nehmen soll. Kann Du mir vielleicht sagen wo ich einen guten Finde, damit ich mir das flüssig anschauen kann. Der vlc lässt mich da leider ein wenig sitzen. An mein PB liegt es wohl nicht, da ich mehr als genug resourcen habe.
0
Cmon
Cmon06.02.0410:25
flybuddha


Die Videos gehen Prima mit dem MPlayer für OSX.

Der VLC und QT machen in der Tat Stress....Die Files sind interessant, aber weil die Audioqualität so mies ist und das ganze so langatmig, hab ich mir nicht alles angesehen....In Textform wäre es warscheinlich eifacher/verständlicher....
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
flybuddha07.02.0401:05
und wo finde ich den Mplayer??
0
rofl
rofl07.02.0401:08
www.mplayer.org
0
neo07.02.0411:51
nicht wie versprochen gestern sondern erst heute ...
Fragen:
Ja Register sind Speicher, und zwar normaler weise in der Größe wie auch die CPU Rechnet, Bei uns sind das jetzt nur 8 Bit also 1Byte.

Ergänzungen
Ich habe mich entschieden dir noch einen weiteren Befehl zu geben und zwar

8.) Springe zu Zeile (jmp)

Teil 2
Das Register wo wir uns Aufschreiben was beim vergleich Rausgekommen ist nenne ich Program Status Word kurz PSW, das hat eigentlich jeder Prozessor den ich kenne wir speichern aber nur zwei Sachen ab ob es bei einer Addition oder Subtraktion einen Überlauf gab (Carry Flag) und was beim vergleichen Raus gekommen ist. Das sind dann aber schon wieder 3 einzelne Bits und zwar: gleich, kleiner, größer. Läst sich recht einfach in Hardware fest stellen.

Ich werde jetzt das ganze etwas einfacher machen und nicht auf Prozessoren eingehen die einen Mikrocode haben sondern nur auf alte RISC Prozessoren die fest Verdrahtet sind. Die haben den Vorteil das sie einfacher aufzubauen sind und ich spare mir einpaar Seiten .

Wenn wir nun jedem der 7 Befehle eine Feste Nummer geben erhalten wir auch für jeden Befehl eine Feste Bit Sequenz. Die Befehlestabelle:

Befehl Kurzname
1.) Nehme/Packe (mov)
2.) addiere (add)
3.) subtrahiere (sub)
4.) vergleiche (cp)
5.) springe wenn gleich (breq)
6.) Schiebe Rechts (lsr)
7.) Schiebe Links (lsl)
8.) Springe zu Zeile (jmp)

Wunder dich nicht über die Namen in den Klammern, das sind die Assemblernamen man benutzt immer nur ein paar Buchstaben der Englischen Beschreibung von dem was der Befehl anstellen soll. Zum Beispiel - Vergleichen heißt im Englischen compare und wird nun nach cp abgekürzt. (bei anderen Prozessoren auch mit cmp)

Du hast ja jetzt 8 Befehle mit denen du Arbeiten kannst für jede Zeile die du jetzt schreiben möchtest machst du am Anfang eine Zeilennummer Beispiel:

01 mov r0, 10
02 add r2, r0
03 sub r2, r0

Zu den Befehlen brauchst du noch eine kleine Anleitung wie die Schreibweise mit den Assembler befehlen ist:

1.) Nehme/Packe mov Rd, wert oder mov Rd, Ri
2.) addiere add Rd, wert oder add Rd, Ri
3.) subtrahiere sub Rd, wert oder sub Rd, Ri
4.) vergleiche cp Rd, Ri
5.) springe wenn gleich breq adr
6.) Schiebe Rechts lsr Rd
7.) Schiebe Links lsl Rdi
8.) Springe zu Zeile jmp adr

Rd gibt an welches Register du benutzen Möchtest als ersten Operanden und auch als Ziel der Brechnung, Ri ist das zweite Benutze Register. Zum Beispiel würde der Befehl mov R0,R1 den Inhalt von Register R1 in das Register R0 kopieren (Ja nur Kopieren). Die letzten drei Befehle habe jeweils nur einen Operanden, das reicht für unsere Fällt völlig aus. breq - Springe wenn gleich braucht nur die Adresse an welche Stelle du hinspringen möchtest im Falle eines Korrekten Vergleiches. Die Adresse ist dann einfach nur die Zeilennummer vor deinen Befehlen. Wieder ein Beispiel:

05 cp R0,R1 // Vergleicht R1 mit R0
06 breq 08 // Springt an 07 wenn gleich
07 add R1, 01 // Addiert 1 auf den Wert in Register R1
08 sub R1, 01 // Zieht eins von Register 1 ab.
09 jmp 09 // endlos Schleife

Nun Soltest du in der lage sein ein Programm zu schreiben welches von dieser Ausgangssitiation:

01 mov r0, 4
02 mov r1, 5

Im Register R2 eine Neun erzeugt. Noch ein kleiner Tip brauchst 4 Zeilen. DasErgebnis Poste einfach ins Forum.

Gruss Neo

PS: Wenn wieder Fragen oder Anregungen kommen dann schreiben.
PPS: bitte keine hinweise auf leichte Rechtschreibfehler


0
Der Lügner
Der Lügner07.02.0412:03
flybuddha:

Folien zu gibts hier:

und zu TI 2 hier:

Allerdings sind die Folien nicht unbedingt selbsterklärend, ab udn zu sind die Erläuterungen dazu nicht schlecht, halt langsam, dafür kapierts dann auch jeder, und so solls ja sein
0
flybuddha07.02.0418:43
Der Lügner
Danke, super links. Ich werde sie mir erst in den Semesterferien anschauen, habe momentan nicht soviel Zeit. Hoffentlich ist das Material, dann noch da.
0
Der Lügner
Der Lügner07.02.0419:10
Die sind ( leider ) schon ewig da, wobei TI 1 soweit ich weiß frisch aufgenommen wird/wurde ...

TI 2 zumindest ist sehr alt, aber soviel dürfte sich an den Grundlagen eh nicht ändern.

Ganz allgemein gibt es den Universitären Lernverbund ULI, da kannste ( Video, Audio, Folien ) Vorlesungen von vielen schiedenen Unis anschaun, einfach mal suchen.
0
Der Lügner
Der Lügner08.02.0400:17
Christian: so sehen die Programme von innen aus, wenn sie in den Prozessor kommen bzw wenn sie nicht in einer Hochsprache geschrieben werden.
0
Der Lügner
Der Lügner08.02.0400:19
Und wenn de fit drin bist, brauchste keine Serials mehr
0
Cmon
Cmon08.02.0401:29
neo

Dankeschön...Hm, das alles kann wohl sehr kompliziert weden.

Also ich versuchs mal mit der Aufgabe:
01 mov r0, 4 //setze Register 0 auf 4
02 mov r1, 5 //setze Register 1 auf 5
03 add R0, R1 // Addiert Register 0 das Register 1
04 mov r0, r2 //verschiebt Register 0 nach Register 2


Stimmt das etwa? Wie ist das genau beim Addieren? Wenn ich R0 und R1 addiere, ist der neue Wert in R0, oder wohin wird der dann geschrieben? In diesesn PSW? Und wie schreibe ich den PSW dann in ein Register?


Naja, irgenwie bin ich schon froh, dass der Mac mir die Arbeit so eifach macht und ich alles ganz einfach mit der Maus anklicken kann

Vielen Dank, Simon.
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
neo06.02.0417:25
@Donar
<br>hmm klar hat der PPC spezial Register. Und lass mich bloß mit dem Intel in ruhe Ich hasse ihn. Aber wenn ich jetzt alle Register die man so haben könnte und alle Befehle (@Agrajag) auflisten würde, dann Platzt das Forum aus allen nähten und der lern Inhalt Geht flöten ...
<br>
<br>Bis nachher
<br>Neo
0
christian alisch
christian alisch07.02.0423:48
"01 mov r0, 10"..."Springe zu Zeile"..."vergleiche"..."springe wenn gleich"..."Schiebe Links"....
<br>
<br>sieht nach schach aus oder was spielt ihr da? :-)
0
christian alisch
christian alisch08.02.0400:32
aber bei hardwaresticks nicht oder? wie zum beispiel bei archicad?
0
neo09.02.0410:14
Cmon:
<br>
<br>Das Ergebnis ist fast Richtig, nur in Zeile 4 sind die Register Vertauscht. Ich habe bei dem Assembler Code mich an die MicroController der Firma Atmel gehalten. Wenn man irgendwo mit anfangen Möchte dann sind die das beste (gcc und Mac OS X werden als Developer Platfom unterstützt).
<br>Die Atmel Arbeiten als 2 Adress Maschinen sind jedoch echt RISC Controller auch wenn sie nur 8 Bit haben und nicht 32 wie der G4 (64Bit G5). Zwei Adress bedeutet das nur 2 Adressen angegben werden die zur Verarbeitung genutzt werden, wie bei dem Befehl mov.
<br>
<br>Die Zeile " 04 mov r0, r2 " von dir heist aus geschrieben bewege den Inhalt von Register R2 nach Register R0. Also wird das Vordere immer mit dem Ergebnis der Funktion überschrieben. Also beim Addieren add R0,R1 wird in Register R0 das ergebnis der Addition von R0 und R1 hineingeschrieben. Bei 3 Address Maschinen gibt man noch ein Register an, in welches dann das Ergebnis geschrieben wird.
<br>
<br>Die Richtige Lösung lautet dann also:
<br>01 mov R0, 4 //setze Register 0 auf 4
<br>02 mov R1, 5 //setze Register 1 auf 5
<br>03 add R0, R1 // Addiert Register 0 das Register 1
<br>04 mov R2, R02 //verschiebt Register 0 nach Register 2
<br>
<br>Das PSW (Programm Status Word) ist als Speicher für Zustände vorgesehen, ein Beispiel ist das Vergleichen. Das Ergebnis beim Vergleichen wird im PSW in mehrern Bits festgehalten. Bei uns werden jetzt die Zustände Gleich, Größer und kleiner gespeichert. Auch beim Addieren und Subtrahieren gibt ein Bit, das Carry Bit. Dieses Zeigt an ob es einen Überlauf gab. Wenn du einen Rechner mit nur 8 Bit hast und dann auf den höchsten wert den die Maschiene darstellen kann eine 1 addierst dann gibt es einen Überlauf. Beispiel:
<br>
<br>01 mov R0, 0xff // 0xff ist hex und hat den wert 255 in Dez.
<br>02 adc R0, 1 // adc == add nur mit Carry controlle
<br>
<br>in R0 steht danach eine Null und das Carry Bit im PSW ist gestezt.
<br>
<br>Wenn du dir alle Atmel Assembler Befehle anschauen möchtest dann schau mal hier: http://www.atmel.com/dyn/resources/prod_documents/DOC1022.PDF (ist eine Assembler Guide)
<br>
<br>Und hier:
<br>http://www.atmel.com/dyn/resources/prod_documents/DOC0856.PDF (Die Ganzen Befehle der Atmel Reihe)
<br>
<br>Leider sind die Dokumente alle in Englisch aber sie sind Recht verständlich geschrieben.
<br>
<br>Gruss Neo
<br>
<br>
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.