Archiv verlassen und diese Seite im Standarddesign anzeigen : x86 selbstgebaut?
Hallo,
nach meinen Recherchen hatte ein Original 8086 gerade mal ~4000 Transistoren. Normaler Assembly-Code ist bis heute auf dieser 4 Mhz CPU ausführbar.
Ist es möglich komma solch eine Basis-CPU heute selbst zu estellen ?
Natürlich nicht so klein wie das Original, aber als Hobby-Kosmos-Baukasten sozusagen das Ding irgendwie nachzubauen ?
Immerhin ist das Teil rd. 30 Jahre alt ....
Oder braucht es um die CPU herum soviele "Additive" daß es letzlich doch ~100.000 Transis sind die dann Jahre-lange Arbeit benötigen um so eine Basis-CPU zum laufen zu bekommen ?
*Lötkolben war mach*
Normaler Assembly-Code ist bis heute auf dieser 4 Mhz CPU ausführbar.Uhm, was ist "normaler Assembly Code". 32bit und 64bit Code wird darauf nicht laufen.
Also möglich ist es sicher, aber ich würde dann eher FPGAs benützen anstatt einen Lötkolben ;)
Ach ja: Das Know How das dafür nötig ist, ist natürlich nicht zu unterschätzen
Mit 32/64-Bit ist schon klar, ich meine nur die grundlegenden Assembly-Befehle.
Einfach halt. Basisarbeit.
Als Fachinformatiker hätte ich mir sehnlichst erwünscht in der [insert Schimpfwort hier] Berufsschule anstatt der Seriellen-Schnittstelle lieber die Architektur des x86 zu lernen.
Ich muß wohl (Früh-)Renter werden um endlich meinen PC halbwegs zu verstehen ...
Ich würde an deiner Stelle erstmal Assembler lernen, da erfährst du schon sehr viel über CPUs ;)
Bokill
2005-05-20, 01:57:45
Willst du das Rad erneut erfinden?
Aber ansonsten ... aber ja! Heutzutage kann man auch vieles simulieren und "sofort" eine entsprechende Schaltung machen.
Die ARM CPUs (non x86) haben beispielsweise auch heute noch alle verschwindend wenig Transistoren. Gut möglich, dass deswegen ARM deutlich mehr Headroom im CPU Design hat. Jeder "überflüssige" Transistor treibt den Aufwand noch höher und erhöht den Stromverbrauch.
Bo(2005)
Ihr habt ja alle Recht. Nur überlegt mal.
Zu meinen jungen Zeiten war es Hipp ein Radio zu bauen. Ultracool.
Wenn ich in absehbarer Zukunft mal genetische Nachfolger haben sollte, kommt die Frage: Papa, wie Funktioniert eine CPU ? Ähmm öhhh.
Ein Nachbau-Kit wäre doch ein Lernspaß für Alt und Jung, wobei Alt mehr schwitzen muß als Jung.
Natürlich habe ich nicht das Wissen wie man das macht, deswegen ja die Frage.
Aber ich möchte es lernen, und wenn möglich selber nachbauen um dann einfache Programme drauf lassen zu können, egal wie langsam.
Die grundlegenden Logik-Schaltungen sind mir schon bekannt :)
Nur das ganze zusammenzubasteln ist irgendwie eine tolle Idee, wenn auch hypotetisch, ohne Emulator ...
Hallo,
nach meinen Recherchen hatte ein Original 8086 gerade mal ~4000 Transistoren.Nach meinen Recherchen hat er etwa 29000 Transistoren.
Nach meinen Recherchen hat er etwa 29000 Transistoren.
Einem athes sollte man nie widersprechen und so hat er wiedereinmal Recht:
Ztitat:
"Microprocessor
Introduction date: June 8, 1978
Clock speeds: 5 MHz (0.33 MIPS)
Number of transistors: 29,000 (3 microns)
Bus width: 16 bits
Addressable memory: 1 Megabyte
Typical use: Portable computing // ???"
Also 29t transis sind da schon ein bissel viel ;)
Der arme Lötkolben ... :(
aths* soll daß heißen, als Gast darf man leider nicht editieren ....
Aachenmade
2005-05-20, 03:47:30
Das mit den ~4000 Transen war der 4004 von Intel... genauer waren es wohl 3300 Transen...
Hallo,
nach meinen Recherchen hatte ein Original 8086 gerade mal ~4000 Transistoren. Normaler Assembly-Code ist bis heute auf dieser 4 Mhz CPU ausführbar.
Ist es möglich komma solch eine Basis-CPU heute selbst zu estellen ?
Natürlich nicht so klein wie das Original, aber als Hobby-Kosmos-Baukasten sozusagen das Ding irgendwie nachzubauen ?
Immerhin ist das Teil rd. 30 Jahre alt ....
Oder braucht es um die CPU herum soviele "Additive" daß es letzlich doch ~100.000 Transis sind die dann Jahre-lange Arbeit benötigen um so eine Basis-CPU zum laufen zu bekommen ?
*Lötkolben war mach*Zum eigentlichen Topic mal was. Imo ist es keine gute Idee, einen bestehenden Prozessor nachbauen zu wollen. Was ich mir seit einiger Zeit auch – rein theoretisch – überlege ist, einen eigenen Mikroprozessor zu entwerfen.
Man kann Von-Neumann-Maschinen durchaus diskret aufbauen. Da gibt es für Schulungen bzw. Studium 4-Bit-Maschinen. Imo sind auch 8-Bit-Maschinen machbar, wenn man das überlegt angeht. Sagen wir mit einer 8-Bit-Eingabe (ein Umschalter pro Bit, außerdem Bit-Anzeige mit LEDs) und zwei 8-Bit-Ausgaben (jeweils per LED-Reihe.) Der "Prozessor" kann dabei ja gerne fertige NAND-Bausteine nutzen, da muss man nicht alles aus einzelnen Transistoren löten (viel zu fehleranfällig.)
Da muss man natürlich überlegen: Nimmt man als Register nur A, als Akku, oder auch ein B, als Basis-Adresse für Variablen? Beim Befehlssatz dürfte man auf Schwierigkeiten stoßen. "Bequeme" Befehle einzubauen gestaltet sich umständlich. Für die wenigen unbedingt erforderlichen Befehle Programme zu schreiben, ist aber auch nicht einfach.
Schafft man das, einen eigenen kleinen Mikroprozessor zu entwickeln und als Krönung zu bauen hat man imo mehr echtes Wissen, als wenn man Technik-Artikel zum neuen Pentium 4 Prescott D liest. Anhand dessen kann man vielleicht wiedergeben, was HTT macht, aber wie ein Prozessor wirklich funktioniert weiß man höchstens diffus. Ich bin ein Freund von Grundlagen-Wissen.
Also an der Uni wurde im Praktikum ein einfacher Mikroprozessor eines Taschenrechners im VHDL entwickelt. Wie viele Transistoren drin sind, weiss ich nicht, aber sollten paar Tausend sein.
Dann aber einen richtigen Prozessor mit hier rund 29000, ist etwas zu aufwending. Mal was mit kleinem versuchen und dann noch mit FPGAs.
avalanche
2005-05-20, 12:54:40
Man kann Von-Neumann-Maschinen durchaus diskret aufbauen. Da gibt es für Schulungen bzw. Studium 4-Bit-Maschinen. Imo sind auch 8-Bit-Maschinen machbar, wenn man das überlegt angeht.Ich sag nur: Mikrocomputer fuer Ausbildung :) Was viel Schöneres gibt es zum Basteln nicht. Sagen wir mit einer 8-Bit-Eingabe (ein Umschalter pro Bit, außerdem Bit-Anzeige mit LEDs) und zwei 8-Bit-Ausgaben (jeweils per LED-Reihe.) Der "Prozessor" kann dabei ja gerne fertige NAND-Bausteine nutzen, da muss man nicht alles aus einzelnen Transistoren löten (viel zu fehleranfällig.)Dabei wirst du wahrscheinlich graue Haare bekommen. Bei den Ausführungseinheiten seh ich da weniger das Problem, Register sollte man aber schon fertig kaufen und was mir aktuell ein Monsterrätsel ist: Wie bau ich 'ne Ablaufsteuerung?
Da muss man natürlich überlegen: Nimmt man als Register nur A, als Akku, oder auch ein B, als Basis-Adresse für Variablen? Beim Befehlssatz dürfte man auf Schwierigkeiten stoßen. "Bequeme" Befehle einzubauen gestaltet sich umständlich. Für die wenigen unbedingt erforderlichen Befehle Programme zu schreiben, ist aber auch nicht einfach.Befehlsdecoder und Ablaufsteuerung...
Schafft man das, einen eigenen kleinen Mikroprozessor zu entwickeln und als Krönung zu bauen hat man imo mehr echtes Wissen, als wenn man Technik-Artikel zum neuen Pentium 4 Prescott D liest. Anhand dessen kann man vielleicht wiedergeben, was HTT macht, aber wie ein Prozessor wirklich funktioniert weiß man höchstens diffus. Ich bin ein Freund von Grundlagen-Wissen.Ich auch. Die angesprochenen MFA. Da ist 'n Intel 8085 drin. Den nachzuvollziehen und damit zu basteln ist schonmal viel wert. Ganz sicher mehr als'n Artikel über den Pentium D. Gabs eigentlich schon 'nen Grundlagenartikel auf Basis von 'nem 8085-Klasse-Prozessor? Richtig "erfassen" kann man das so oder so nur, wenn man damit selbst was macht, aber wäre doch schonmal besser als nix.
Was man auch gut machen könnte: Kleine Microcontrollerboards zusammenbasteln. Da gibt's AFAIK ganz gut Anleitungen zu Microcontrollern mit verschiedenen CPUs. So kann man sich mal seinen eigenen Minicomputer bauen. Natürlich mit fertigem Prozessor. IMHO ist das ersteinmal sinnvoller, als damit anzufangen, einen x86er nachzubauen oder ein eigenes Design zu entwerfen.
SentinelBorg
2005-05-20, 17:40:54
Gab da doch so einen, der ne komplette CPU desgined und gebaut hat und die samt OS inkl. Schnittstellen und sogar nem kleinen Webserver zum laufen gebracht hat.
Hab den Link leider nicht mehr :/
Sentinel
Demirug
2005-05-20, 19:18:57
avalanche, wenn ich daran denke das bei uns schon viele damit Probleme hatten ein Schieberegister aus einfachen Gattern aufzubauen habe ich Zweifel ob man da gleich mit solchen fertigen Komponenten Anfagen sollte. Bitte nicht wundern in den Schulen in denen ich war gab es solches "Spielzeug" schon ab der 7ten Klasse. Ich hatte also viel Zeit das zu beobachten.
Desweiteren stellt sich bei einer CPU natürlich die Frage ob man das noch auf die klasische Art machen möchte oder doch lieber eine Designsprache wie VHDL dafür nimmt.
Stone2001
2005-05-21, 14:53:38
Desweiteren stellt sich bei einer CPU natürlich die Frage ob man das noch auf die klasische Art machen möchte oder doch lieber eine Designsprache wie VHDL dafür nimmt.
Sich ein Mikroprozessor mit VHDL selber zusammen zu stellen, ist nicht weiter schwer. Bei einem x86 Mikroprozessor würde ich als erste Hürde mal die Dekodierlogik sehen, die Ausführungeinheiten sind dann wahrscheinlich nicht weiter schlimm.
Problemmatischer ist da schon der Nachbau vorhandener Mikroprozssoren. Wenn ich daran denke, was ein IP-Core eines Intel 8051 Mikrocontroller kostet (bzw. mal gekostet hat). ;)
Gab da doch so einen, der ne komplette CPU desgined und gebaut hat und die samt OS inkl. Schnittstellen und sogar nem kleinen Webserver zum laufen gebracht hat.
Hab den Link leider nicht mehr :/
Sentinel
Denke mal du meinst das MyCPU Projekt.
MfG
M²
Nasenbaer
2005-05-21, 21:17:34
Ich bin schon daran gescheitert einen brenner für nen PIC Mikrocontroller zu löten und das waren vielleicht 20 Bauteile wenn überhaupt. Hätte die Platine vielleicht ätzen lassen sollen und nicht selbst ne lochplatine löten.
Habs etliche male den fehler gesucht und nicht gefunden. liegt nun in der Ecke. :/
P.S. Weiß jemand wo man kleinere Platinen ätzen lassen kann für einzelstücke und keine Klein-Serien oder mehr? :)
mrdigital
2005-05-21, 21:49:39
Ich bin schon daran gescheitert einen brenner für nen PIC Mikrocontroller zu löten und das waren vielleicht 20 Bauteile wenn überhaupt. Hätte die Platine vielleicht ätzen lassen sollen und nicht selbst ne lochplatine löten.
Habs etliche male den fehler gesucht und nicht gefunden. liegt nun in der Ecke. :/
P.S. Weiß jemand wo man kleinere Platinen ätzen lassen kann für einzelstücke und keine Klein-Serien oder mehr? :)
Es gibt Dienstleister, denen schickst dein Layout per Mail und die ätzen das für dich. Bemüh doch mal google ;)
Das ist aber wirklich teuer. Am besten benützt du so ne Lochplatine. Sieht zwar nicht so gut aus, ist aber wesentlich billiger ;)
Nasenbaer
2005-05-21, 22:45:12
Das ist aber wirklich teuer. Am besten benützt du so ne Lochplatine. Sieht zwar nicht so gut aus, ist aber wesentlich billiger ;)
Und fehleranfälliger wie in meinem Fall. Habs ja gemacht aber den fehler find ich beim besten willen nicht.
Bei Conrad kann man billig Einzel- oda Kleinserien-Platinen machen lassen.
warum ne x86 cpu ?
ich hatte vor einiger zeit hier schon gefragt wie es denn mit dem nachbau eines alten comps als 64er aussieht und bekam ein paar gute links
wenn du die suchfunktion benützt
dor ist auch der link zu dem typen der sich alles selbst gebaut hat ...
Hallo,
ich... Zum Lernen gibts eigentlich nach wie vor nix dolleres wie den LC1 (4-Bit 1-Adress-Maschine), oder LC2 (2-AM). Hier kann man die Logik schritt für Schritt durchlaufen und bekommt mehr oder minder "Grafisch" die Schaltzustände aller Register ordentlich angezeigt.
Natürlich hat dies mit x86ern wenig zu tun. Ich denke allein und mit Schrecken (weit) zurück, als wir in Rechnerarchitekturen einen einfachen Adder (N+1) basteln durften - und das Ding kann im grunde nichts, verglichen mit dem x86er. Ich will es mal so ausdrücken: Von rund 100 Stundenten in 4er-Gruppen brachte es vielleicht 10 funktionierende Addierwerke zusammen - meins ging.
VHDL ist ebenso eine Lösung, aber auch schon eine imho recht komplexe für den Anfang. Es gibt aber zig CPU-Emulatoren für Assembler zu lernen. Da hatten wir im Studium auch ein Teil (Frag mich nicht wies hiess), welches vom Z80 über die ersten x86er alle Prozessoren simulierte und auch hier jedes Register, PC und Akku samt Wert anzeigte... das ist allerdings 8 Jahre her.
PCO
Nasenbaer
2005-05-22, 14:07:49
Bei Conrad kann man billig Einzel- oda Kleinserien-Platinen machen lassen.
Und wo find ich das? Such jetzt schon ewig auf www.conrad.de
Bokill
2005-05-22, 14:23:19
warum ne x86 cpu ?
ich hatte vor einiger zeit hier schon gefragt wie es denn mit dem nachbau eines alten comps als 64er aussieht und bekam ein paar gute links
wenn du die suchfunktion benützt
dor ist auch der link zu dem typen der sich alles selbst gebaut hat ... Habe den Link auch mal gelesen ... war ein prächtiges Stück Arbeit.
Witzigerweise ist dort auch angesprochen worden, dass mit der Schaltlogik es alleine nicht getan war. Durch die vergleichsweise langen Leitungswege, traten anfänglich derbe Bus-Probleme auf. Eine laufende Systemumgebung ist mehr als nur CPU Design ...
Bo(2005)
Und wo find ich das? Such jetzt schon ewig auf www.conrad.de
Im Hauptkatalog bei der Platinen-Sektion gibts Infos.
Schrotti
2005-05-22, 19:48:33
Ich hab die Platinen für meine Lötarbeiten immer selbst angefertigt (lange her).
Besorge dir Platinen und entsprechenden Klarlack.
Dann auf die Platinenrückseite die Leiterbahnen aufzeichen und mit Eisen III-Chlorid ätzen (so hab ich das früher gemacht).
Wo man die benötigten Chemikalien heute bekommt, weiß ich leider nicht.
Eher die Entsorgung ist das Problem. AFAIK bekommt man das heutzutage nirgends mehr los.
Schrotti
2005-05-22, 22:08:51
Zu DDR Zeiten ;) hab ich das Zeug einfach in die Toilette gegossen.
Gibts das überhaupt noch zu kaufen (Eisen III-Chlorid) ?
Mfg Schrotti
metalpinguin
2005-05-22, 22:43:51
jo aber guck mal ob es in deiner stadt nen lokalen elektro bastel laden gibt bei mir in der stadt ist einer der ätzt ich glaube 5 mal 5 cm für 9 euro oder so das stück egal ob einzel oder klein nur bei gross wirds billiger
avalanche
2005-05-23, 15:16:57
avalanche, wenn ich daran denke das bei uns schon viele damit Probleme hatten ein Schieberegister aus einfachen Gattern aufzubauen habe ich Zweifel ob man da gleich mit solchen fertigen Komponenten Anfagen sollte.Hmm... war bei uns ähnlich :) Natürlich sollte man erstmal einen (Schiebe-)Register selber basteln, um zu verstehen, wie man sowas baut. Allerdings sollte man sich auch nicht daran machen, selbst eine CPU zu basteln, wenn man noch nie 'nen Register aus "einfachen" Gattern zusammengebastelt hat. Ich hatte eher daran gedacht, dass man sich nicht unbedingt die Mühe machen sollte, die Register selbst zu löten, wenn man weiß, wie sie funktionieren und wenn man sie relativ günstig kaufen kann (Letzteres muss man natürlich auch ersteinmal erforschen).
Ansonsten kann ich mir beim besten Willen immernoch nicht vorstellen, wie man 'ne Ablaufsteuerung zusammenzimmern soll. Das wäre auch noch eine Sache, die mich brennend interessieren würde. Die Ablaufsteuerung hatten wir dezent unter den Tisch fallen gelassen, und sie einfach mit ihren Funktionen hingenommen, weil der Lehrende da wohl selbst nicht so ganz auf der Höhe war/ist - evtl. kommt's ja noch...
Demirug
2005-05-23, 15:21:50
Hmm... war bei uns ähnlich :) Natürlich sollte man erstmal einen (Schiebe-)Register selber basteln, um zu verstehen, wie man sowas baut. Allerdings sollte man sich auch nicht daran machen, selbst eine CPU zu basteln, wenn man noch nie 'nen Register aus "einfachen" Gattern zusammengebastelt hat. Ich hatte eher daran gedacht, dass man sich nicht unbedingt die Mühe machen sollte, die Register selbst zu löten, wenn man weiß, wie sie funktionieren und wenn man sie relativ günstig kaufen kann (Letzteres muss man natürlich auch ersteinmal erforschen).
Löten mussten wir das ja nie. Wir hatten immer schöne Digitaltechnikbaukästen.
Ansonsten kann ich mir beim besten Willen immernoch nicht vorstellen, wie man 'ne Ablaufsteuerung zusammenzimmern soll. Das wäre auch noch eine Sache, die mich brennend interessieren würde. Die Ablaufsteuerung hatten wir dezent unter den Tisch fallen gelassen, und sie einfach mit ihren Funktionen hingenommen, weil der Lehrende da wohl selbst nicht so ganz auf der Höhe war/ist - evtl. kommt's ja noch...
Ich vermute mal das ich dich jetzt falsch verstehe. Du meinst hier einfach eine Steuerung welche nacheinader die richtigen Schritte durchführt und dazwischen immer auf Rückmeldungen wartet?
avalanche
2005-05-23, 15:43:10
Löten mussten wir das ja nie. Wir hatten immer schöne Digitaltechnikbaukästen.
Ich vermute mal das ich dich jetzt falsch verstehe. Du meinst hier einfach eine Steuerung welche nacheinader die richtigen Schritte durchführt und dazwischen immer auf Rückmeldungen wartet?
Aeh, ja. Du gibst der CPU 'nen Befehl und diese muss dann ja rigendwas machen, die richtigen Einheiten ansprechen, evtl. Signale auf irgendeinen Bus geben, was auch immer... Ok, bei *ganz* einfachen Befehlen reichts vielleicht, wenn man die wirklich nur decodiert, aber wenn ein Befehl mal ein bisschen komplexer wird, was mach ich dann?! Was mach ich, wenn ein Befehl z.B. aus zwei Schritten bestünde?
mrdigital
2005-05-23, 21:56:27
Aeh, ja. Du gibst der CPU 'nen Befehl und diese muss dann ja rigendwas machen, die richtigen Einheiten ansprechen, evtl. Signale auf irgendeinen Bus geben, was auch immer... Ok, bei *ganz* einfachen Befehlen reichts vielleicht, wenn man die wirklich nur decodiert, aber wenn ein Befehl mal ein bisschen komplexer wird, was mach ich dann?! Was mach ich, wenn ein Befehl z.B. aus zwei Schritten bestünde?
Da muss man eben einen (endlichen ;)) Automaten bauen. Es gibt bestimmte Formalismen, mit denen man das Verhalten eines Automaten beschreiben kann. Der Automat bestimmt dann das genaue Verhalten.
Binaermensch
2005-05-26, 21:40:24
Ich bin schon daran gescheitert einen brenner für nen PIC Mikrocontroller zu löten und das waren vielleicht 20 Bauteile wenn überhaupt. Hätte die Platine vielleicht ätzen lassen sollen und nicht selbst ne lochplatine löten.
Habs etliche male den fehler gesucht und nicht gefunden. liegt nun in der Ecke. :/
P.S. Weiß jemand wo man kleinere Platinen ätzen lassen kann für einzelstücke und keine Klein-Serien oder mehr? :)ad PIC-Brenner:
Hol dir den ICD2 (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010046&part=DV164005)! Programmieren kannst du damit sowieso, das eigentliche Feature ist aber die Möglichkeit zu debuggen; dh. du kannst den Ablauf deines Programmes sowie den Status aller Register live via PC mitverfolgen.
Perfekte Einbindung in Microchips MPLAB versteht sich von selbst. :)
Das Teil kostet zwar für nen Schüler nicht unbedingt wenig (200€-300€), wenn du es mit der PIC-Programmierung (oder allgemein Mikrocontrollerprogrammierung) jedoch ernst meinst, zahlt es sich absolut aus.
Ich zumindest wüsste nicht, was ich ohne dem ICD2 bzw. dem Debugmodus gemacht hätte...
ad Prototypenfertigung: Hier kann ich die Firma Piu-Printex (http://piu-printex.at/) wärmstens Empfehlen. Hab da bereits eine Platine fertigen lassen.. Absolut reibungsloser Ablauf, nette Leute --> besser gehts nicht.
Wie die Preise im Vergleich zu anderen Anbietern sind, weis ich nicht, wir haben uns alles von der Sponsorfirma zahlen lassen. :D
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.