Archiv verlassen und diese Seite im Standarddesign anzeigen : Ran an die Gatter-Millionen
FPGA steht noch im Raum (GAL, CPLD) hatten wir bereits;
nochmal zur Erinnerung: GAL = Gate-Array-Logic
CPLD = Complex(er)-strukturiertes-Programmierbares-Logic-Device
FIELD_PROGRAMMABLE_ARRAY_LOGIC:
zu Deutsch: Man nehme ein Fußballfeld, spiele da keinen Fußball, weil das etwas schwierig würde, da der Rasen keiner mehr ist, sondern vollgespickt mit TTL-Gattern a´la 7400 bzw. DFFs.
Ein Xilinx Virtex200 hat 238.000 Zweihundertachtunddreißig-tausend Gatter!!!
Da wird in "k-Gates" gerechnet, nichtmehr in Macro-Cells; d.h. jedem Pin ein Universell FlipFlop zuordnen, nein, hier gibt´s Gatter satt.
mhmmm, 1/4 Million Gatter???
JA!:)
...es gibt auch z.B. 5k-Devices (die haben "nur 5000")!!!
passen also in DIL-Form (Standard TTL) auf einen Spielfußballtisch, wie er in jeder besseren Kneipe steht, gerade so drauf.
Nun gut, die Billard-Fans bräuchten schon ein 8k-Device, aber einen echten Fußballfan in der Südkurve des Stadions stellt man damit nicht zufrieden; da braucht es die 1/4 MioGates (Brot und Spiele; Arena... wußten schon die Römer (Cäsar z.B.), nur die kannten kein Silizium in Nanometerstrukturen, die benutzten Sklaven, deren Ausgangsgatter (Schwerter) "bewußt"!!! gegeneinander programmiert waren. Aber was soll´s, die Menge macht´s, und davon hatte man damals genug, und falls nicht (Raub der Sabinerinnen) z.B. - unsereins hat das als "heilige Kreuzzüge" betitelt... - egal, Hauptsache Menge!!! Masse!!!
Stellen sich natürlich die Fragen???
Wie programmiert man so ein Teil?
Wie bastelt man 200.000 Gatter zusammen?
(Fußballfeld vollgepinnt mit TTLs) - Eagle zum Platine-machen 0,00 Chance!
auch in SMD nicht und 10 Lagen Multilayer.
Software muß ran, genauso wie ein GAL-Assembler; (ist kein Scheiß jetzt, das geht!!!, kann man machen) - aber bei 1/4 Mio "A:= B & C & !D und !Pin300"
geht das im Laufe eines ca. 80 jährigen Lebens nicht, allein den Source einzutippen.
Wie lange braucht man um bis 1 Millon zu zählen?
Jede Minute bis 100 zählen; acht Stunden pro Tag (nur zählen), und dann hat man es nach 20Tagen,33Minuten geschafft
(irgendso um den Dreh) - rsp. tot!!!
Und da kommt "Verilog" und Konsorten; das geht mit einem GAL-Assembler (nicht?)-mehr im Laufe eines Menschenlebens.
Das nennt sich dann "Abstrakte Modellierung Digitaler Schaltungen"
(und Hoffnung, daß Synopsis z.B. fehlerfrei läuft); Wartungsvertrag 15.000 Euro mal vorausgesetzt etc. pp.
Geht jetzt um alle EDA-Tools; Synopsis ist halt mehr oder weniger Marktführer, genau wie SAP im kaufmännischen Sektor.
Da sitzen 1Millon (eine Million) Mannstunden Programmierer dahinter; wenn´s reicht (vorsichtig geschätzt) --> nur für den Compiler.
VHDL hatte ich noch vergessen, zu erwähnen:
"Very-High-Definition-Language"; nix anderes als z.B. Verilog.
Ich will es mal herunterbrechen; es ist fast nichts anderes als BASIC:
"on posEdge Clock" tu das und das... sprich GOTO XYZ oder setze Zähler auf Null, wenn am Pin 178 eine positive Flanke auftritt.
Hääää??? Pin 178??? - spinnen Sie?
Glattes Nein!!! So ein Teil (FPGA) hat locker 300 Pins, nicht viel; ein Pentium4 hat noch ein paar mehr Beinchen, und in dem sind fast 2 Milliarden!!! Gatter verbaut; nicht Millionen, Milliarden!!!
Wie geht das? IBM, Infinion, (nur mal als Beispiel) bauen Wafer (das sind die Siliziumplatten, sehen fast aus wie eine CD) - mittlerweile ist man an größeren dran (Infineon z.B. 30 cm, also so groß wie eine LP (Langspielplatte - Getüm aus Urzeiten, auf dem Musik in Form einer Schreib-rille eingraviert wurde.
ISBN 3540-591435 Author: Klaus Ten Hagen; 35 Euro bei Amazon.de; nur noch ein Stück da (zu haben)!!! - ich habe 128,-- DM bezahlt, und bin dann ins Krankenhaus... ; nächste Story...
Mac-Seck im Krankenhaus
ich hatte mir lediglich den Arm gebrochen (na ja etwas komplizierter...) - also OP. Gips war nicht.
Dann hatte ich ja eine Woche Zeit, endlich mal dieses Buch zu lesen: "Abstrakte Modellierung Digitaler Schaltungen"
Zwei Tage haben die mich alle angeguckt, als käme ich von einem anderen Stern. (OP war in Ordnung; Arm geht wieder...)
Irgendwann, so am zweiten Tag sprach mich die Nachtschwester mal ganz dezent an: "Herr Seck, was lesen Sie da eigentlich?"
Tausend Ärzte und Schwestern und Pfleger müssen wohl während meiner (narkosebedingten Abwesenheit) über dieses Buch gefallen sein...
Dann habe ich es der Nachtschwester erklärt; daß (ihr Mann assemblierte auch Computer) - irgendwer die Käferchen auf den Karten ja auch bauen müsse, und daß das nicht nur die China-mans könnten...
noch einen drauf, bevor ich es vergesse...
Egal ob PLD, CPLD, FPGA... das sind keine Microchips a´la Neumann oder RISCs, das ist HARDWARE!!! (programmierbar).
kurze Erklärung anbei: Neumann´sches ist die klassische CPU; Befehl, Operand, 3..10 Taktzyklen oder mehr (die 80xx) brauchen mehr, Dallas macht das in weniger...
Takt hoch: 2 GHz Pentium, dicken Lüfter dazu usw.
kann ein 12MHz AT89C52 nicht mithalten; wozu auch???
um in 100 Nanosekunden die Heizung steuern, Außentemp quadrieren, Wurzel draus usw. (alle 100 ns)???
Nehmen wir RISC (PIC z.B):
(Reduced Instruction Set Computer); also der kennt nur so um die 10..20 Befehle, dafür arbeitet er die in einem Takt ab.
20Mhz PIC kann locker einen PC-BUS (8MHz) bedienen mit R/W ChipSelect usw.
und jetzt geht es um Nanosekunden(nicht Mili oder Mikro) sec. oder zig Takte bei paar MHz.
oder die "gekonnte Programmier-Schleife"
Programmierbare Logik = Hardware = 74..ALS (advanced-low-power-schottky)
So ein FPGA läuft etwa mit 2ns pro Gatter.
Frage: Wenn man 2..3 Gatter hintereinanderschaltet??? klar 6ns.
und wenn man einen guten Compiler hat, macht der das auch in 2ns, verbrutzelt dafür mal eben 1000 Gatter, aber man hat´s ja...
1/4 Mio will doch beschäftigt werden, oder sollen die anderen 200.000 Fußballspieler nix tun???
11 pro Mannschaft.
Ich möchte Euch die Größenordnung hier noch einmal zeigen.
und noch eins: Der Compiler verbaut das gemäß Vorgabe und packt sich eben 1000 Gates, wenn der User es ihm sagt.
Wenn dann (irgendwann - muß ja) mal 1/4 Mio auf diese Tour verbaut ist;
ja klar; wenn der 80xx nur 1kB ROM hat, muß man eben den 2kB nehmen!
...oder schlanker programmieren...
nur, darauf NULL EINFLUSS, das machen die "Synopsis" oder sonstige tausend Programmierer und verdienen damit ihr Geld - klaro!!! deswegen kosten diese Tools (Entwicklungsumgebungen, Compiler usw) weit über 10 Mille.
Ist doch klar, nachvollziehbar: Wenn ich 1000 Programmierer beschäftige, dann kostet das Endprodukt XYZ-Euronen. Geht nicht anders bei einem Fußballfeld TTLs zu verdrahten (per Bildschirm) - und dafür lebt man nicht lange genug: Ergo Muß jemand Verilog o.ä. erfinden,
genau wie Hochsprachen (Basic, Fortran, Pascal) - geht nicht alles in Assembler; a´la Print "Hello"
Geht auch kein Wasserventil per Schraubendreher ab; braucht´s schon eine Zange für.
zu vorgerückter Stunde... die FPGAs müssen booten, zumindest die großen von denen ich sprachKurz um; die müssen sich bei jedem Neustart (Spannung weg etc.) ihre Fuse-Matrix (so kann man das dann auch nicht mehr nennen); also ihre Hardware-to do Liste aus einem Prom ziehen, oder von einer CPU gefüttert werden.
Das mit dem Prom-Saugen können die alleine, aber...
2 Megabit wollen erst einmal da sein, die EEProms in dieser Größe sind echt teuer.
Bsp. Xilinx Virtex200 mit 238.000 Gattern braucht 2Mbit Bootstrap. Der kleinere Bruder Virtex150 oder Spartan kommt mit 1Mbit aus, dafür hat er halt nur etwa die Hälfte an Gattern.
Nicht übel; die wollen auch erstmal verbaut werden; also so einen Spartan150 mit Sinnigem Inhalt zu füllen, brauch´s viel Entwicklerstunden / Monate !!!
nur mal so zur Größenordnung; Fußballfelder an TTLs;
Geht mal einkaufen: Ein 7400 hat 4 Gatter drin. Macht für den XCV200 59.000
(neunundfünfzig tausend!!! 7400er); also dann mal den Fußballplatz abstecken...
Die Größenordnung (10 Aldi-Tüten voller Chips) hat mich auch erstmal verblüfft; ist aber so.
Eine Motorola 68000 CPU hat 68000 Gatter, daher der Name; die pappt man locker in so ein Mega-Gatter-Array mal nebenbei dazu.
wie verbaut ein Compiler solch ein Fußballfeld TTL-Gatter?
nun ja, ein R-S Flipflop geht mit 2 NANDs (1/2 7400)... zu einfach, weil es sollte ja taktsynchron laufen, besser Master-Slave usw.
Macht locker 10 Gatter, sagen wir 12 zum besser rechnen; das macht erstmal 3 Stück 7400 auf dem Fußballfeld weg. Pin 178 anzusteuern braucht nochmal gut soviele.
Da fällt mir jetzt ein Kinderlied zu ein:
"10 kleine Negerlein"..., das eine hat der Wolf gefressen, da waren es nur noch neun.
Neun kleine Negerlein die fuhr´n auf einer Yacht, das eine ist über Bord gefallen, da war´n es nur noch acht.
Acht kleine Negerlein, die haben´s übertrieben, das eine ist dann abgestürzt, da war´n es nur noch sieben.
Nichts gegen Neger jetzt, aber das Lied hat einen nach dem anderen platt gemacht. (im Nachhinein hätte ich das jetzt andersherum aufgebaut...)
Ein kleines Negerlein, das traf halt eine Frau, die beiden haben ein Kind gemacht, da war´n es plötzlich drei. usw..
Compiler folgen dem Ersteren:
230.000 Gatter mit Compiler-X, der hat mal schnell ein FF-Gebaut, da waren es 230.000 minus six.
229.904 Gatterlein die grabscht sich der Compiler, baut hier und da ein FF ein, da war´n es nur noch 229.xxx abzüglich Taktsynchronisation, da blieben von den 229.904 nur noch 229.neun.
229.009 Gatter die comilierten ein Schieberegister, der Compiler meinte, besser ist´s(noch ein paar einzubauen), da waren es nur noch 220.000.
220.000 folgten Verilog, mit kritischem Datenpfad zog das 500 Gatter ab... usw.
Also das geht recht schnell;
"on rising edge..." da wird erstmal ein Flankendetektor generiert, kostet ca. 100 Gatter und dann ist man selbst mit 1/4 Mio recht schnell am Ende; das geht ratz fatz.
Jetzt will man natürlich jedem der um die 300 Pins eine Funktion geben.
238.000 Gatter / 300 Funktionsgleichungen macht etwa 800 Gatter pro Pin, und die sind schnell weg.
Der Vorteil der FPGAs liegt darin, daß man das nach Belieben variieren kann; ein Pin für eine LED anzumachen braucht vielleicht nur 10 Gatter; dafür hat man dann an dem 800er noch 790 add on.
Da macht es die Balance, und da steckt Programmierarbeit seitens der Tools drin ohne Ende; etwa??? 150 Euro pro Chip (59.000 Stück 7400er kosten mehr)... zzgl. das 100Ampere Netzteil (reicht nicht) Texas Instruments sagt im Pocket Guide 40mW zum Standard 7400, der Schottky ist mit 76mW gelistet.
Nur mal so: 238.000 Gatter : 4 pro TTL macht 59500 Chips a 76mW = 4522W, also 4,5KW bei 5 Volt = ca. 900Ampere
Viel Spaß beim Netzteil bauen... :)
@MacSeck.
Sehr aufschlussreich, hatte mich bislang noch nicht damit beschäftigt.
Interessanter Fakt nebenbei: Inzwischen sind schon komplexe Schaltungen wie z.B. eine Grafikkarte für Raytracing auf FPGA's realisiert worden.
Da stell ich mir die Frage: Wieso nicht nen halbes Dutzend von den Gatter-Monstern auf ein Mainboard packen, als von der CPU programmierbare Logikschaltungen. Die CPU kann dann beliebige Algorithmen in Hardware gießen und somit riesige Performance-Gewinne erzielen. Speziell für Computerspiele könnte das nützlich sein; spezielle Hardware für Physik- oder Raytracing-Berechnungen ließen sich dann sehr effizient realisieren.
Oder überseh ich da was?
@Pöpli: Das machen die doch!
Riesen Boards mit FPGAs bestückt, downloadfähig, also umkonfigurierbar usw.
Dazu Simulatoren, Software ohne Ende, bis dann zum Schluß die Maske(n) z.B. für einen NVIDEA 4711 fertig sind.
Bis dahin kostet es bereits Millionen Euros, dann die Fertigung der ersten Prototypen (noch paar Millionen) - und wenn alles klappt kommt dann die Serie.
Jetzt rechne mal; so ene NV4711 darf 100 Euro kosten. Davon Platine, Bestückung, Test, Verpackung, Handel (verdient 30%)...
Bleiben für den reinen Chip keine 10 Euro.
Entwicklungskosten ca. 10 Millionen; also müssen die erstmal 1 Million Chips verkaufen, bevor es in die Gewinnzone geht.
Powered by vBulletin® Version 4.1.7 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.