Ich weiss, ich überschätze mich im Augenblick noch etwas:
Ich habe hier noch diverse alte CPU's rumfliegen, darunter auch vom Typ
80386. Wie schwer mag es sein ein eigenes PC-System zu entwickeln? Also
all' die Komponenten einzubauen die es so gibt, ISA, PCI, AGP, USB und
Co. So dass es hinterher möglich ist *n*x oder dos systeme zu fahren.
Was Prozessor- und IC-Elektronik angeht bin ich nicht dumm, nur noch
etwas unerfahren. Verdrahten ist nicht das Problem. Im Augenblick klemmt
es noch beim vertstehen. Obwohl ich auf dem besten wege zu sein scheine.
Meine unwissenheit hält mich nicht davion ab Geld auszugeben um diverse
IC's auf ihre Funktionsweise zu testen und direkt am PC anzuschliessen.
Bisher sind alle "Experimente" ohne stinken, blitzen und knallen
abgeschlossen worden. Ich bin weiterhin mutig und wissbegierig.
Wonach müsste ich was solche CPU-Schaltungen angeht gucken? Zur
Abwechslung werde ich das Suchmaschinenmonopol mal nicht bemühen sondern
mich nur an dieses Forum halten.
Markus Olderdissen wrote:
> nur noch etwas unerfahren.
Offensichtlich. Sonst hättest du nicht gefragt.
Wie siehts bei dir mit dem Design von 4/6-Layer-Platinen aus? Mit
Hochfrequenz-Layouts für ein paarhundert MHz?
> Ich will auch mein Spass haben.
PCs entwickeln ist arbeit. Kann auch spass machen - ja - aber ohne
g'scheite Doku und Werkzeuge hat mans schwer und es wird frustrierend.
--> Für'n Blinker reicht ein PIC10 im SOT23 Gehäuse (so ein 3mm kleines
Teil mit 5 oder 6 Pins).
PS:
Ich hab hier sogar noch zwei Orginal Intel 386er Boards rumliegen die
fast nur normale TTL ICs im DIL Gehäuse drauf ham. Sind riesen
Oschis. Größte TTL Massengräber die ich je gesehen hab - bestimmt je 150
Stück drauf - dicht an dicht.
kp wie schnell die noch gleich waren - zwischen 16 und 33MHz. Mehr
nicht. Also nix mit 100MHz ... ;)
2 Layer Board reicht vielleicht schon. Selbst heutige Mobos im GHz
Bereich sind oft aus kostengründen nur 4 Layer.
PPS:
Schau Dir das hier mal an - um den Aufwand besser abschätzen zu können:
http://www.mycpu.eu/
Im Interesse deiner Gesundheit wuerde ich mich auf die CPU und das
Drumherum beschraenken und einfach ein fertiges Netzteil benutzen. Um
Netzteile zu bauen muss man schon recht sicher mit Schaltungsplanung und
aehnlichem umgehen koennen, um nicht Gefahr zu laufen sich einen
Stromschlag zu holen. Ist auf keinen Fall geeignet als eines der ersten
Projekte.
Hm, wie auch immer. Mein Posting bezieht sich jedenfalls auf:
Markus Olderdissen (nomatrix) schrieb am 13.01.2008 um 03:02:
> Wie ist das mit netzteilen. Ich habe hier eine Sammlung von Fujitsu> Siemens ProNet S 233 Mhz Rechnern. Eine Art Eokstation ohne Cd-Laufwerk,> mit je 2 GB Festplatte und 50 poligem anschluss für extrene Laufwerke.> Die werden mit einem 19 V Steckernetzteil betrieben und haben im PC> selber noch einen belüfteten wandler.>> Gibt es Pläne um eigene Netzteile zu basteln. Ein vorhandener Celeron> 500 benütigt ohne drehende Laufweke sondern mit CF-an IDE 17 Watt. was> nehme ich da am besten um da board zu betreiben ohne ein gewähnliches> Netzteil benutzen zu müssen. Ich habe von diversen PullUp schaltungen> gelesen um die Negativen Spannungen zu erzeugen. Gt es dazu interessante> Lektüre.>> Betrachten wir meine Wünsche als "Elektronik-Informatik-Studium".
Nimm doch ein fertiges FPGA-Board und entwickele deinen eigenen
Prozessor, Peripherie usw.
Dabei lernt man sehr viel über Mikroprozessor-Architektur und Hardware.
Ich habe so eine eigene 32Bit-RISC-CPU, Speichercontroller fuer SDRAM,
VGA-Controller usw. gebaut.
> Ich habe hier noch diverse alte CPU's rumfliegen, darunter auch vom> Typ 80386. Wie schwer mag es sein ein eigenes PC-System zu> entwickeln?
386er könnte hobbymäßig noch ganz gut gehen. Der schnellste 386er
lief m.W. mit 33 MHz. Allerdings wirst du am Layout eines
32-Bit-Boards schon eine Weile dran sitzen. Deswegen wäre ein 386SX
für den Anfang vielleicht geschickter.
> Also all' die Komponenten einzubauen die es so gibt,> ISA, PCI, AGP, USB und Co.
ISA ist einfach und für einen 386er ausreichend. PCI gab es damals
noch gar nicht und wird schwer an einen 386er dranzukriegen sein.
Seine hohe Geschwindigkeit kann vom 386er eh nicht genutzt werden. Für
den AGP gilt dies erst recht. Ob es USB-Controller mit Nicht-PCI-
Interface gibt, weiß ich nicht. Evtl. wird man da etwas improvisieren
müssen.
> So dass es hinterher möglich ist *n*x oder dos systeme zu fahren.
Ein Linux sollte kein größeres Problem darstellen. Das lief schon
damals auf diesen Rechnern. BSD geht wahrscheinlich ebenso.
> Was Prozessor- und IC-Elektronik angeht bin ich nicht dumm, nur noch> etwas unerfahren.
Intelligenz ist gut, aber Erfahrung würde auch nicht schaden ;-)
Das Ganze ist halt doch etwas mehr als mit einem Mega8 eine LED
blinken zu lassen.
> Wonach müsste ich was solche CPU-Schaltungen angeht gucken?
Mit dem Prozessor allein ist es natürlich noch nicht getan. Du
brauchst zusätzlich
- DRAM und einen Controller dafür (oder war der im 386er schon drin?
Glaube aber eher nicht)
- Die ganzen Peripheriebausteine namens 80xx (Timer, PIO, UART usw.)
- BIOS-EPROM oder -Flash mit Inhalt
- Uhr, BIOS-Parameter-RAM
- Floppy und Harddisk-Controller
- VGA-Chip mit Zubehör
- uvm.
Das (und vielleicht noch ein paar mehr) sind die Dinge, die du
mindestens brauchst, um ein Betriebssystem booten zu können. Da das
System in dieser Komplexität nicht auf Anhieb funktionieren wird,
brauchst du eine Möglichkeit, um den Prozessor schon in frühen
Entwicklungsstadien mit Testprogrammen füttern zu können. Eine
Minimalversion der Hardware könnte aus Prozessor, BIOS-EPROM, etwas
SRAM und UART bestehen. In das BIOS-EPROM kommt ein Bootloader, der
Programme von der seriellen Schnittstelle einliest und ins SRAM
schreibt. Mit einem externen Terminal kannst du sehen, was abgeht.
Dass dafür detailierte Kenntnisse des Prozessors und dessen
Assemblersprache erforderlich sind, dürfte klar sein.
Wenn das tut, kannst du schrittweise weitere Komponenten hinzufügen
und testen. Gerade der VGA-Adapter dürfte etwas knifflig sein, da auch
die früheren Bausteine (wenn es die überhaupt noch zu kaufen gibt)
schon ziemlich komplex aufgebaut waren. Ohne Speicheroszi und/oder
Logic-Analyzer geht da nichts. Die brauchst du aber auch schon in den
vorangegangenen Entwicklungsschritten.
Sind alle o.g. Komponenten beisammen und getestet, brauchst du eine
BIOS-Software. Da gibt es wohl Open-Source-Projekte, auf die man
aufbauen kann, aber reindenken muss man sich natürlich trotzdem.
Wenn der Rechner anschließend in der Lage ist, von Floppy oder
Harddisk zu booten, würde ich erst einmal ein einfacheres OS (z.B.
FreeDOS) probieren.
Wenn das geht, ist der nächste Schritt die Linux-Installation. Geh
aber mal davon aus, dass eine fertige Mainstream-Distribution auf
diesem Rechner nicht laufen wird. Vielleicht wirst du bei
irgendwelchen Embedded-Distros fündig (embedded 386SX-Rechner gab es
bis vor Kurzem noch). Aber auch hier braucht es sicher einiges an
Kernel-Knowhow, um überhaupt den Kernel mit all seinen Treibern ohne
Panics hochlaufen zu lassen.
Aber wenn du all diese Hürden überwunden hast, kannst du dir als
stolzer Besitzer eines, zwar veralteten, dafür aber selbstgebauten PCs
auf die Schulter klopfen :)
> So, wo finde ich denn hier Infomaterial zu solchen CPU's?
Datenblätter sollte es theoretisch bei Intel geben, allerdings
scheinen im Moment die entsprechenden Links tot zu sein. Aber irgendwo
im Netz sind die sicher noch zu finden.
Noch ein Bisschen mehr Senf:
Andreas Kaiser schrieb:
> Der letzte PC, bei dem das noch einigermassen aussichtsreich war,> das war die Generation IBM AT mit 80286.
Wie gesagt, ein 386SX dürfte auch nicht sooo viel schwieriger sein.
thyristor schrieb:
> 2 Layer Board reicht vielleicht schon.
So sehe ich das auch. Die Bus-Signale dürften eher langsamer sein als
bei einem ARM7. Und mit diesem lassen sich durchaus auch mit einfachen
Mitteln Boards aufbauen.
Markus Olderdissen schrieb:
> Ich will das nicht herunterspielen aber es sieht "simpel" aus. Links> und unten erkenne ich die 32 Bit Leitungen (A), Clock und Co habe> ich auch erkannt. die Oberen A pins werde ich auch noch verstehen.> ich vermute da bereits weitere 32 Bit Register.
Die Ds sind die Datenleitungen, die As die Adressleitungen. Die sind
ja noch bei allen Prozessoren gleich. Um das Teil benutzen zu können,
musst du aber auch die anderen Pins (NA, BE1, ADS, BEO usw.) kennen.
Dazu musst du viel lesen.
> Moment mal, seit wann gibt es denn *n*x Betriebssysteme. So "neu"> ist das doch nicht.
Unix ist tatsächlich schon uralt (Anfang 70er). Aber zu dem Zeitpunkt,
als der erste IBM-PC auf den Markt kam (1981), wurde Unix schon auf
32-Bit-Maschinen (VAX u.ä.) eingesetzt, die wesentlich
leistungsfähiger als die ersten PCs waren. Erst mit den 386-PCs (der
erste kam 1986) kamen auch PC-User allmählich in den Genuss dieses
Betriebssystems.
yalu wrote:
> oder war der im 386er schon drin?
Nein. Schön klassisch Adressen und Daten in voller Breite, m.W. noch
ohne das spätere Busse kennzeichnende A/D Pipelining.
> Wie gesagt, ein 386SX dürfte auch nicht sooo viel schwieriger sein.
Akzeptiert. Und ist dann immerhin Linux-tauglich. Für 286 gabs zwar auch
schon Unixe (z.B. Microport), aber das war nicht so der Hit.
Den AT erwähnte ich deshalb, weil das die letzte PC-Generation war, die
ohne System- und I/O-Controller nur mit klassischer Logik und bekannten
Peripheriechips auskam. Und auch das nur am Anfang, schon die zweite
Generation 286er gab es nurmehr mit hochintegrierten North/Southbridges
(die hiessen aber m.W. erst später so) und solchem übersichtlichen Kram.
> So sehe ich das auch.
Für ISA ja. Aber er hatte auch Zeug wie AGP erwähnt. Bringt zwar bei
386SX performancemässig wenig ein, aber AGP*8 mit 2 Layern... von
PCI-Express ganz zu schweigen.
> Und auch das nur am Anfang, schon die zweite Generation 286er gab es> nurmehr mit hochintegrierten North/Southbridges
Ach, gab es so etwas damals auch schon? War mir nicht so gewahr.
Solche Geschichten erschweren einen Selbstbau natürlich, da man diese
Chips heute wohl kaum noch kaufen kann.
Wahrscheinlich wäre es ohnehin sinnvoller, sich einen Rechner aus
modernen Komponenten zusammenzubauen, wenn er nicht um jeden Preis
PC-kompatibel sein muss. Auch mit einem langsamen bis mittelschnellen
ARM-Prozessor bekommt man die Leistung eines 386ers hin, kann ebenso
Linux drauftun und dabei viele Komponenten und Hürden einsparen, die
bei den 386er-PCs nur durch den Kompatibilitätszwang zum Ur-IBM-PC
bedingt waren.
Wobei es schon für Technik anno AT interessant sein dürfte, eine Lösung
für den 8041 basierten Tastaturcontroller zu finden. Anno XT war das
Tastaturinterface noch ein einfaches Schieberegister.
nen 386 board liegt glaub ich noch in meiner bastel kiste .... kannste
alles runter löten und wieder drauf löten .... hattest deinen spaß bist
verzweifelt und gut ist ;)
<Moment mal, seit wann gibt es denn *n*x Betriebssysteme. So "neu" ist
<das doch nicht. Die ganzen RFC's bzw die Protokolle die mit ihnen
<definiert werden, die wurden doch an solchen und kleineren Maschinen
<entwickelt. und das waren damals sicher noch keine 286. Irgendwas hab
<ich da im Kopf. Ich komme nicht drauf. Das waren ganz billige
Terminals.
Du verwechselst da was, Client und server:
Das standard-Unix als Multi-process betriebssystem mit speicherschutz
benötigt eine Memory-Managment-Unit. Die steckt ab 386 in der CPU drin,
beim Vorgänger nicht. Ohne MMU ist es nur schwer möglich, den Programmen
einen geschützten Speicherbereich zur Verfügung zu stellen. Es gibt
abgespeckte Linux-like varianten für MMU-lose systeme, aber das ist kein
vollwertiges Linux.
Auf den erwähnten terminals lief kein *i*x sondern nur ein
Terminalprogramm, das tastureingaben und Bildschirmausgaben hat den
Hauptserver weiterleitet. Auf dem läuft dann ein *n*x mit mehreren
Processen (Tasks) z.B. für jeses Terminal eins. Entickelt per Terminal
auf dem Server, nicht auf dem terminal allein.
Besenschwenker wrote:
> benötigt eine Memory-Managment-Unit. Die steckt ab 386 in der CPU drin,> beim Vorgänger nicht.
Ab 286, um genau zu sein. Ohne Paging halt, aber Unix für 286 gab es.
<Ab 286, um genau zu sein. Ohne Paging halt, aber Unix für 286 gab es.
Gab es (Xenix?), ist die Frage ob der threaderöffner, das auch noch
auftreiben kann.
Ich nehme an, er meint Linux, da ist man mit 386 (mit PMU) auf der
"breiten" Seite. Es gibt zwar auch kernel für 286, meiner meinung nach
sind das aber eher "Exoten", (schwer auf eigenes system anpassbar) und
wegen der fehlenden hardware-ünterstützung langsam oder eingeschränkt im
multitask.
@markus
kann dich nur in deinem wissensdurst bestätigen. hab zwar nicht in die
steckdose gepackt aber bin trotzdem an der elektronik "kleben"
geblieben.
die idee einen computer selbst zu bauen dürften einige hier haben.
ist allerdings (wie du selbst sicherlich schon gemerkt hast) viel arbeit
und zeit dafür zu investieren.
mit einem selbstgebauten 386 board bewegst du dich aber wirklich hart an
der grenze (vor allem wenn du noch nicht so viel erfahrung hast).
sonst würde ich vielleicht vorschlagen als zwischenprojekt einen
kleineren computer zu bauen.
so richtung 8051 mit externem ram und eprom. dann hast du schonmal ein
system zum rumprobieren mit einer kleineren hardware (die dem 386 aber
im prinzip gleicht, nur halt etwas kleiner und etwas weniger
möglichkeiten).
damit kannst du die erfahrung sammeln die du für ein 386 board brauchst.
weiter so !
Also das 8086-Board von meinem Amstrad koennt ich wahrscheinlich sogar
selber aetzen hehe ;) Aber trotzdem... auf Ideen kommen manche Leute.
Ich bau mir mal schnell nen PC. Und die CPU entwickel ich natuerlich
auch selber, die hau ich dann aus nem Siliziumstueck mit nem Meissel
raus... boink
Nur der Thread mit "ich entwickel mir nen Mobilfunktelefon" war besser.
Das lustige ist die Rege Teilnahme an diesen Themen... woran liegt das
wohl?
Michael G. wrote:
> Nur der Thread mit "ich entwickel mir nen Mobilfunktelefon" war besser.
Und inzwischen wurde der Spinner von der Realität überholt. Siehe
OpenMoko und Android.
ah hier hat ja oben noch wer gefragt ob ich 386er TTL Massengrab Boards
einscannen könnte... ja - ne - eher nicht. Sind bestimmt doppelt so groß
wie der DinA4 Scanner soweit ich das in Erinnerung hab (liegen verpackt
in irgendeiner Kiste).
Ach und das würd eh nix bringen - ich glaub zwischen den ganzen TTLs
waren noch so nen paar GALs und PALs dazwischen... die schöne RTC (mit
richtigem Uhren Symbol drauf ;) ) und den spezial BIOS Chip nicht zu
vergessen ;)
(aber alles im DIL Gehäuse - die einzigsten SMDs waren so drei SRAMs
(oder so) die auf ner extra Platine im DIL Format draufgelötet sind ;) )
Ob die noch funktionieren weiss ich auch nicht - sind von nem Bekannten
der mal aufgeräumt hat und die Teile sonst weggeschmissen hätte...
Hab se nie getestet - sahen halt einfach lustig aus mit den 200 DIL ICs
drauf ;)
Ahja das ganze in SMD hab ich auch und diversen ASICs dazwischen von IBM
hab ich auch ;)
Also auch 386, aber total nicht-standard konform.
Die Boards hatten sogar Slots die aussahen wie PCI Slots! Sind aber
keine ;)
Und der Netzteilanschluss ist fast ne art Starkstromanschluss ;)
Mussich mal Fotos von machen bei Gelegenheit.
Also ich muss mich doch sehr wundern, da kommt ein total entusastischer
Jugendlicher (?) der eine Idee hat und ihr mäkelt nur dran rum.
Mag sein das er etwas wenig Erfahrung hat, dann laßt ihn die doch
sammeln!
Also:
Datenblatt des Intel 386DX
http://www.ortodoxism.ro/datasheets/Intel/mXtuvqv.pdf
Literatur zum Einstieg:
Tischer PC-Intern 3.0
Ralph Browns Interruptlist
http://www.ctyme.com/rbrown.htm
www.intel.com
www.x86.org (leider sind einige Links tot)
Wenn du möchtest, daß dein Selbstbau-PC ein DOS hochfährt, musst du die
Komponenten (SIO,PIO,PIC,Timer,HDD,FDD) auf die Standard Ports legen.
Falls du das BIOS selbst schreiben willst:
Vergiss nicht das BIOS-Segment 0040:0, das braucht DOS.
Nach dem einschalten geht es bei f000:fff0 los.
Wenn du die ganzen Initialisierungen gemacht hast und DOS laden willst,
es erwartet, daß der erste Sektor an 7c0:0 geladen wird.
Ich hab mir 82 n'8086 zusammengebaut bevor es zahlbare PCs gab. War sehr
lehrreich. N'Bios gab's noch nicht. Hab ich selbst was geschrieben. Ich
konnte von der Tastatur auf den LCS schreiben, hab da Editor Konzepte
rausgetueftelt. Den Code hab ich in ASM geschrieben und nachher
haendisch nach Hex uebersetzt und in den EPROM Programmer eingehaemmert.
Tja, nach einem Auslandaufenthalt konnte ich dann einen 4.77MHz PC fuer
ein paar Tausender kaufen. Mit MSDOS. Seither wurde der PC nur noch
komplexer. Ich empfehl was Einfacheres. Dringend. Einen AVR zum
Beispiel.
PC entwickeln ist wie Röhren selber blasen.
Es kommt nichts praktisch nutzbares dabei raus.
Sieht eben nur schön aus und man hat viel Zeit vergeudet.
PC bzw. Röhre erreichen nur max die Daten, wie zu Anfangszeiten der
Entwicklung.
Peter
Ich finde das gesamte Projekt ziemlich spannend. Die Idee geistert auch
schon seit Jahren in meinem Kopf rum und natürlich habe ich den Aufwand
bisher immer unterschätzt. Mittlerweile denke ich aber, dass es mit
einigem Recherchieren und etwas Erfahrung aus diesem Forum durchaus zu
einem lauffähigen System reichen müsste. (Von Zeit und Geld mal wieder
abgesehen)
Bis Pentium I bin ich noch halbwegs gut in der Assembler-Programmierung
drin. Bootloader, BIOS sollten noch ganz gut machbar sein.
Ich würde nicht versuchen das Ganze auf Biegen und Brechen PC-kompatibel
zu machen - auch wenn's ziemlich cool wäre!
Was würde man minimal für ein halbwegs sinnvolles Projekt brauchen?
- CPU (80386SX @ 16 MHz/ 20 MHz / 33 Mhz fänd ich voll in Ordnung)
- RAM (sollte nicht so schwierig sein anzubinden)
- Interrupt Controller (kann ja auch gerne was Aktuelleres sein)
- Timer (PIT)
- Bus-System für die Peripherie (das wird U.u. am schwierigsten zu
konzeptionieren)
- Massenspeicher (z.B. SD-Card)
- Spannungsversorgung ganz klar über ein billiges ATX-Netzteil
- Grafik-/Textausgabe - da würde ich versuchen was Bestehendes (VGA)
anzubinden - sicherlich auch nicht einfach.
- beim Cache bin ich mir gerade nicht sicher, wie die CPU den handhabt.
Interessant fänd ich auch die Idee ein paar aktuelle Mikrocontroller mit
einzubinden (PIC und AVR), z.B. als BIOS, USART, Debugger,
Tastaturcontroller, was weiß ich ... bei 20 MHz Systemtakt sollte man
die recht einfach anbinden können.
Was habe ich übersehen/wo habe ich mich übernommen?
Gruß
Kai
Ja wie gesagt Groessenrodnung ala C64 oder die ersten PCs das duerfte
mit viel Aufwand sogar machbar sein, sprich wenn die Takte nicht zu
gross werden im Bereich von unter 20MHz oder so. Aber mal ehrlich: Was
bringt's? ;) OK fuer's Ego isses sicherlich was...
>PC entwickeln ist wie Röhren selber blasen.
... und wie LEDs mit AVRs blinken lassen, Netzteile selber bauen, "Hallo
Welt"-Programme, Bubble-Sort programmieren, Routinen zur
Tastenentprellung, ...
und trotzdem wird es immer und immer wieder gemacht und gelehrt.
Es geht dem Opener ja auch um den Lerneffekt und das Herausfinden der
eigenen Grenzen. Ich habe damals Raytracer in QBASIC und 3D-Rasterizer
in Assembler realisiert - braucht kein Mensch, aber was ich dabei alles
gelernt habe ersetzt dir kein Buch und keine Vorlesung.
Ich habe das Gefühl, dass viele Leute nicht verstehen, dass
experimentelles Lernen extrem viel Spaß machen und motivieren kann. Ich
finde es schade, dass einem hier immer alle Ideen ausgeredet werden, nur
weil man keinen Nutzen sieht, oder weil es schonmal jemand anderes
besser gemacht hat.
Wenn man sich an einem Projekt die Zähne ausbeißt, lernt man deutlich
mehr, als wenn man Code aus irgendeinem Buch abtippt.
Gruß
Kai
Statt einzelnen timer/dma/irq/cmos würde ich dann doch eher einen 82c206
nehmen...
Statt DRAM evtl. SRAM das mit dem Prozessortakt mithalten kann, sollte
ja kein Problem sein heutzutage.
Mach das Ganze doch komplett in Software - www.dosbox.com ;)
Das "Projekt" oder die "Idee", die hier einige so fasziniert auch schon
für sich mal überdacht haben wollen, hört sich für mich an wie die Idee
von vielen ala
"Ich hab nen RAM Riegel eingebaut, ich mach jetzt ne Computerfirma auf"
an. Leider haben einige "Spinner" ernst gemacht und was dabei
rausgekommen ist, wissen wir ja ....
>Leider haben einige "Spinner" ernst gemacht und was dabei>rausgekommen ist, wissen wir ja ....
Ja, sie sind mit Schrott steinreich geworden. Das waere mal ein
ermunterndes Wort. Danke. Es ist nie zu spaet.
> PC entwickeln ist wie Röhren selber blasen.>> Es kommt nichts praktisch nutzbares dabei raus.
Dann frage ich mich doch wo die PCs herkommen die im Laden stehen. Hat
die keiner entwickelt? Wachsen die auf Bäumen?
Außerdem frage ich mich, was du dir von diesem Forum anderes erhoffst
als Leute die vor Eigenentwicklungen nicht zurückschrecken.
---
An den OP: Wenn du dir wirklich die Hardware selber entwickeln willst,
solltest du mal einen Blick auf FPGAs und deren Entwicklungsboards
werfen. Damit kann man eine Menge sehr viel besser bauen als mit
TTL-Massengräbern - kürzere Entwicklungszeit, schnellere und besser
Schaltungen usw. Selbst wenn du als Herausforderung eine reine
TTL-Schaltung bauen willst, kansnt du sie mit einem FPGA sehr schön
Prototypen.
Bei dieser Firma kriegst du ein Entwicklungsboard für 400 $ mit dem du
was PC-Ähnliches recht gut bauen kannst: www.xess.com
Bei Digilent gibts noch ein dickeres Board (Slot für RAM-Riegel und ein
Virtex 2-Pro FPGA), aber um das günstig (300 $) zu bekommen, musst du es
über ne Uni besorgen.
Das ist nicht dasselbe wie gleich eine reine TTL-Schaltung zu bauen,
aber man tastet sich eben voran.
Achja, um mal ein paar mehr Tips zu geben wie es mehr Spaß macht:
- Entscheide dich frühzeitig (jetzt!), mit was es kompatibel sein soll
(DOS, 386-Befehlssatz, Pinkompatibel mit Prozessor X, usw). Im Zweifel
verwende existierende Chips.
- Überleg dir, welche Software drauf laufen soll (DOS, Linux, BSD,
portiertes anderes Unix, portiertes komplett anderes OS, eigenes OS,
Anwendungssoftware ohne OS).
- Falls mit nix kompatibel, entwirf eine möglichst einfache eigene CPU.
(RISC, load/store Architektur, 32 Register, 3R-Befehle) bietet sich an,
weil es in der Literatur bis zum Erbrechen erklärt wird, das musst du
fast nur noch nachbauen. Such mal nach Hennessy & Patterson sowie
dasselbe andersrum, das sind zwei bekannte Bücher darüber.
- Überleg dir, ob du es mit anderen zusammen machen willst. Hier im
Forum gibts zwar guten Rat, aber Leute die richtig mit dran arbeiten
sind was anderes.
- Dokumentier deinen Kram und stell ihn (unter freier Lizenz) ins Netz,
dann findest du am ehesten Freiwillige und kannst dich mit ähnlichen
Projekten austauschen. Wenn es gut dokumentiert ist, dann rauf damit auf
diese Seite (wenn es zu klein ist um als eigenes Projekt durchzugehen
dann immernoch ins Forum).
- Verlier nicht den Mut! Die anderen kochen auch nur mit Wasser. Wenn du
bei einem anderen Projekt eine geniale Idee entdeckst, sei nicht zu
stolz sie zu verwenden.
Habe vor Kurzem gerade die 4. oder 5.Version eines DOS-kompatibelen
Rechners mit `X186/188-CPU fertiggestellt.
Ursprünglich als "embedded PC" geplant, hat sich das ganze zu einem
einfachen PC-System mit Videoausgabe(im Forum `Code-Sammlung´ unter dem
Titel ´VGA-Karte, fast diskret´ veröffentlicht), seriellem- und
parallelem Port usw. entwickelt.
Als Betriebssystem verwende ich RxDOS, das vor einigen Jahren unter
freier Lizenz veröffentlicht wurde. Die Hardwareansprüche dieses DOS
sind moderat und es liegt im Quelltext vor, so dass die notwendigen
Anpassungen an die Rechnerhardware möglich waren.
Das "gefühlte" DOS-Verhalten des Rechners liegt irgendwo zwischen XT und
PC. Neben eigenen Programmen, bei deren Erstellung ich die Hardware des
Rechners berücksichtigen kann, funktioniert wenigstens ein originales
DOS-Programm, der DESMET-C-Compiler. Mehr habe noch nicht ausprobiert.
Also Markus, bei Interesse, kurzes Posting in diesem Forum.
PS:
Der 386 war mir seinerzeit einige Nummern zu groß.
@markus
ich kann dich ebenfalls nur ermuntern an deinem vorhaben festzuhalten.
es ist sicherlich eine menge zeit nötig. aber wenn man spaß an
elektronik, software hat ist es das für einen selbst (hoffentlich)
nützlich. man lernt dabei ne menge und kann das gelernte u.u. im beruf
einsetzen.
außerdem schließe ich mich dem tipp von morin an.
ein fpga-board bietet sehr viel mehr möglichkeiten als eine feste
hardware die einem u.u. irgendwann nicht mehr gefällt und man sie (bei
falscher konzeption) übern haufen werfen kann.
einen fpga konfiguiert man um (und steckt evtl. nur noch ne andere
zusatzhardware dran).
auf lange sicht möchte ich mir auch einen eigenen rechner bauen. ob und
was der kann weiß ich nicht, aber das er nicht mit kommerziellen
produkten konkurrieren kann ist klar und auch nicht beabsichtigt. eben
just for fun ...
@ Markus Olderdissen (nomatrix)
Die Hardware ist eine Sache. Die Firmware eine andere. Ja. Ich kenne
Leute, die schaffen es an einem Wochenende eine 486 Mainboard
Leiterplatte zu entwerfen. Als die aus der Fertigung kam lief sie sogar.
Ok. Chipsatz drauf. Dann kommt das BIOS. Das ist die unterste Schicht
von Treibern, die machen das Keyboard zu einem Keyboard, die VGA zu
einer VGA, den Lautsprecher zum Lautsprecher, usw. Damit wird die
Hardware angesprochen. Die Disk wird auch dort angesprochen. Zuerst
musst du mal diese Unterlagen haben. Wie schreibe ich ein BIOS, resp wie
passe ich das BIOS an die Hardware an. Gewisse Chipsatz Hersteller
ruecken diese Information raus, moeglicherweise gegen ein NDA. Du
solltest dich bei der Auswahl der CPU, um diese Informationen kuemmern.
Nachher koennte es zu spaet sein. Wenn der Hersteller sich erst ab 10000
Stueck bemueht die Informationen rauszuruecken zum Beispiel.
@Nomatrix:
Wenn es dir nicht darum geht, einen PC-Kompatiblen Rechner zu bauen,
sondern lediglich einen, der von der Leistung her vergleichbar ist,
könntest du dir evtl noch überlegen, zu einem 68k oder Derivat zu
greifen (hoffentlich werde ich für diese Aussage ejtzt nicht gelyncht,
da hier so viele x86-Fans sind ;)).
Urvater der 68k wäre natürlich der 68000. Gibts m.W. leider nur bis 16
MHz. (Oder 8?).
68020 ist der nächste grössere Vertreter, geht dann bereits bis 33.33
MHz. 32 Bit Architektur (Speicher max. 4G x 32). Wenn ichs recht im Kopf
habe, gibts dort dann sogar On-Chip instruction Cache. 68060 oder so hat
dann noch ne MMU drin, und verträgt wahrscheinlich noch höhere
Taktraten. Hat dann auch mehrere kB Cache für Code & Daten (seperat)
On-Chip.
Unix gibts für 68k, DOS natürlich nicht.
68k's werden sogar immernoch hergestellt und man kann bei Freescale
Samples bekommen. Gibts als DIL (nur 68000) oder PGA ('020 und weitere);
wenn du was mit SMT machen willst Zwecks Platzersparnis gibt es
natürlich noch das PLCC.
Software für die 68k's (Assembler, Compiler ... ... ) gibts Massig im
Internet.
Du wirst übrigens Freude an der Assemblersprache haben: Das Ding ist
echt geil. Programmiert sich fast wie Hochsprache, und jeder Befehl
funktioniert wirklich mit jedem Register und fast allen
Adressierungsarten, die dir Einfallen. Und es gibt auch viel die
besseren Arithmetikregister als im x86. Dort hast du ja nur (E)AX,
(E)BX, (E)CX ... im 68k gibt's D0..D7, dort kann man jede nur
erdenkliche Rechenoperation ausführen.
Du merkst also: ich bin totaler 68k-Fan und kann dir so einen nur
empfehlen. Übrigens gibts auch Mikrocontroller mit 68k-Kern, die
immerhin leistungsfähig genug sind, dass man Linux drauf laufen kann
(68300-Familie). Takt geht, wenn ichs recht im Kopf habe, bis circa 30
MHz.