Tag an alle,
was haltet ihr von der Idee, von allen bekannten µP-/µC-Familien die
besten Eigenschaften in einem CPLD bzw. FPGA zusammenzukloppen?
Bitte sagt jetzt nicht, es sei zu viel Aufwand, würde zu Lange
dauern,...
Dies ist kein reeller Plan, nur eine Idee;-}
Mann könnte fast sagen dass das die dümmste Idee aller Zeiten ist! Wenn
das jetzt nur so eine Idee wäre, dann wäre das cool, aber du willst es
ja unbedingt als reeles Projekt machen.
nenenenenenenenenenenenenenenenen phfvorrum
Dein Ansatz ist eigentlich schon ziemlich falsch. Mit einem CPLD bzw.
FPGA könntest Du höchstens die rein digitalen Teile des Mikrocontrollers
wie CPU, Timer, I/O's, BUS, IRQ-Logik ... abdecken. Einen beachtlichen
Teil nehmen jedoch auch noch ein: Speicher (insbesondere Flash),
Oszillatorschaltung, AD Wandler, Spannungsüberwachung / Reset (meist
ausgeklügelter als im FPGA, da häufiger für batteriebetriebene Geräte
verwendet), Schmitt-Trigger Eingänge, interne Pull-Ups/Pull-Downs für
I/O's, ...
Wenn Du Dir einen hardwaremässigen Emulator für einen Mikrocontroller
ansiehst, kannst Du den Aufwand in etwa abschätzen.
Das Vorhaben wäre mit Sicherheit kein Hobbyprojekt.
Huch, ganz schön viele Reaktionen.
Ihr nehmt meinen Post viel zu ernst. Es war nur mal eine Idee, kein Plan
oder sogar Projekt, schon gar nicht für eine Einzelperson.
Nein, ich bin momentan durch Hobby, Ausbildung,... mit verschiedenen
Controllerfamilien konfrontiert. Bei allen sehe ich Stärken und
Schwächen.
Da kam mir einfach mal so spontan die Idee, alle Stärken zu vereinen.
Als Basis dafür fiel mir als estes eine programmierbare Logik ein.
Obwohl, so ein Massengrab aus 74er Bausteinen wäre auch nicht schlecht,
am besten noch in TTL. Dann freut sich auch das Netzteil;-)
>Da kam mir einfach mal so spontan die Idee, alle Stärken zu vereinen.
Da kommt mir doch spontan die Frage, welche Stärken Du meinst.
Mir käme die Idee, die Stärken von Bananen und Erdbeeren zu vereinen.
Insbesondere, wie man ein geschmackliche Abstimmung findet, daß die
Schnecken mitgegessen werden können.
Hallo,
das ist in der Regel auch das Prinzip, wie das die Prozessorentwickler
machen. Sie werfen alles raus, was schlecht ist und kombinieren das, was
gut ist. Das Problem ist aber, man erkennt nicht auf anhieb, dass
bestimmte Sachen nicht zusammenpassen. Wenn man dann alles, was schön
aus sieht (die besten Eigenschaften) in einem Topf wirft, dann kommt
schnell Mist raus. Man hat dann 100 verschieden Adressierungsmodelle und
das Gesamtkonzept geht verloren. Am Ende ist man dann bei einer Art
Hochsprachen (Bytecode)-Interpreter angekommen.
Wenn man schon einen FPGA nimmt, kann man doch gleich einen dynamisch
rekonfigurierbaren Kern machen, dessen Befehlssatz sich Softwareabhängig
erweitern lässt oder auch umschalten.
Ein Verbesserungsvorschlag wäre auch, die Codeeffizienz zu erhöhen. Die
Wahrscheinlichkeit, dass ein bestimmter Befehl auftritt ist
kontextabhängig, also davon welche Befehle vorher standen. Außerdem gibt
es Befehle, die generell seltener auftreten. Nun kann man seltene
Befehle einfach zu gunsten der häufigen schlechter gestalten (Länge,
Rechenzeit). Um die Gesamte Codeffizienz zu erhöhen, muss man dann schon
Befehlsgruppen bilden oder Codezuordnung dynamisch ändern, abhängig vom
vorigen Befehl. Je Größer die gebildeten Befehlsgruppen sind, um so
besser ist die Speichereffizienz.
Nun muss man halt abwegen, will man lieber höchste Codeeffizienz oder
einen bezahlbaren Compiler bzw. eine Chance das in Assembler zu
programmieren und schon beißt sich die Schlange in den Schwanz...
MC wrote:
> Huch, ganz schön viele Reaktionen.> Ihr nehmt meinen Post viel zu ernst. Es war nur mal eine Idee, kein Plan> oder sogar Projekt, schon gar nicht für eine Einzelperson.
Das heißt wir sollen gar nicht antworten? ;)
> Mir käme die Idee, die Stärken von Bananen und Erdbeeren zu vereinen.
nennt sich Erdbeer Banana Daiquiri
>Insbesondere, wie man ein geschmackliche Abstimmung findet, daß die>Schnecken mitgegessen werden können.
Macht man mit einem großen Schuss Rum ;)
Aber einem ganz großen!!! Ach übrigens, schau mal im Supermarkt, Müller
&Co haben seit neusestem diese komischen Frucht-Softdrinks. Im Prinzip
sind das zermatschte Früchte (also Erdbeeren und Bananen) und
haufenweise Zucker (sozusagen als Rum-Ersatz).
Das geht schon aus einem einfachen Grund nicht: Praktisch alle
Eigenschaften sind in Zielkonflikte verwickelt. Daher müsste man
zunächst mal entscheiden, auf welche Ziele man Wert legt. Genau hier
liegt dann der Hund begraben, warum es eben viele verschiedene
Prozessor-Familien mit unterschiedlichen Vor- und Nachteilen gibt.
> Mann könnte fast sagen dass das die dümmste Idee aller Zeiten ist!
Da findet man ganz bestimmt dümmere :-)
>> Mann könnte fast sagen dass das die dümmste Idee aller Zeiten ist!
Nein Nein Nein
wenn der Proz. für Deine (allg.) Anwendung schneller (leistungsfähiger)
ist und alle "IHN" brauchen werden wir sehr schnell Dein Ausgaben
refinanzieren.
Fred
Angenommen wird alles, die Frage ist nur, wann die Ergebnisse kommen
(wie schon gesagt, nur eine Idee, kein Plan/Projekt).
Also meine Kontonummer ist .... ;-)
Über finanzielle Unterstützung der MC'schen Mikrocontrollerschmiede
würde ich mich sehr freuen.
Also ich find die Idee super. Die Datenbreite waere dann variabel, resp
koennte als Optimierungsparameter verwendet werden. Wenn man zB 120
register braucht und dann noch 120 byte RAM, dann genuegt ein Byte zur
Adressierung. Und wenn man nur 27 Befehle braucht, so sind die mit 5 Bit
decodiert.
>Also ich find die Idee super. Die Datenbreite waere dann variabel, resp>koennte als Optimierungsparameter verwendet werden. Wenn man zB 120>register braucht und dann noch 120 byte RAM, dann genuegt ein Byte zur>Adressierung. Und wenn man nur 27 Befehle braucht, so sind die mit 5 Bit>decodiert.
Das wärs. Und Interessant wäre wenn du zusätzlich einen compiler
entwickelst, der abhängig von den benötigten Ressourcen denn
Prozessorkern synthetisiert und eben auch ein Programm. Der Compiler
synthetisiert sich den Prozessorkern...
Wird vermutlich sehr aufwendig;)
Die vielzitierte Eierlegende Wollmilchsau. Oink, Oink.
An deren Züchtung scgin Gnerationen von Ings gescheitert sind.
Was aber BWLer nicht daran hindert, permanent auf deren Entwicklung zu
drängen.
;-)
Falk
Vom Preis her könnte es die "eierlegende Wollmilchsau" bei Conrad geben.
Owohl, eher doch nicht, da Conrad ja ne Apotheke ist:
sehr teuer und nichts auf Lager
Eine schöne Projektidee wäre, den Prozessorkern zu entwickeln, der am
wenigsten Gatter in einem CPLD braucht.
Also: Was ist die kleinstmögliche Anzahl Gatter, die man braucht, um
einen Prozessor zu realisieren?
Wie sieht ein sehr einfacher Kern aus? Was braucht man?
- Programmzähler
- Arbeitsregister
- Alu
weiter ?
@MC: Daß die Idee, eine eierlegende Wollmilchsau zu erschaffen, eine
ziemlich dumme Idee ist, ist bereits gesagt worden, aber ein Hauptgrund
ist noch nicht genannt worden: Die Zielanwendung.
Mach mal deine eierlegende Wollmilchsau und versuch dann damit z.B.
einen Sat-Antennenschalter zu realisieren. Der ganze Schalter darf im
Laden aber nur 10 Euro kosten. (4 LNB, einen Ausgang). Die Lösung im
Schalter, der bei mir im Einsatz ist: ATTiny11. Ein ganz kleiner AVR,
der im Bastlerversand gerade 65 cent kostet. 10000er Preis
wahrscheinlich weit darunter. Jede Menge von den Dingen, die du
vielleicht in deine Wollmilchsau integrieren willst, werden
möglicherweise garnicht gebraucht. Es hat schon seinen Grund, warum z.B.
Atmel in seiner AVR 8-Bit-Serie an die 40 Typen hat. So kann man sich
den Controller aussuchen, der den besten Kompromiss aus Preis,
Ausstattung und Leistung darstellt. Also gilt auch hier: Pflichtenheft
für das zu erstellende Gerät erstellen und dann den passenden Controller
auswählen. DEN Universalcontroller kann es deshalb schon garnicht geben.
Allen BWLern zum Trotz.
Gruß
Jadeclaw.
Stichworte:
-Turingmaschine
Da reichen glaube ich 3 Zustände aus, hab ich mal irgendwann in der CT
gelesen. Nur schnell ist das ganze nicht, man kann nicht alles haben
immer nur einen Teil ;)
-Brainf??k (da gibt es auch C-compiler für :)
einen Brainf??k interpreter ist schnell geschrieben. (Nein ich werde es
nicht machen :)
Ein wenig komplexer als eine Turingmaschine darf es schon sein.
Eine Mindesanforderung wäre:
- 8 Bit Addition
- call & ret
Ok, das ganze könnte man als Bit-Slice Prozessor realisieren. Nehmen wir
mal an, das CPLD ist recht schnell und der Prozessor soll nur dazu
dienen, langsame Kontrollaufgaben durchzuführen.
...dann nimm nen AVR !
ganz vergessen? der ist genau so entstanden:
2 studenten überlegten, was wäre optimal,
was kann real mit so wenig gattern gebaut werden, dass es in nen fpga
geht und testbar ist,
welchen befehlssatz braucht man, damit alle zufrieden sind, asm +
compiler..
usw.
ergebnis war die at1200 , später dann die aufgebohrten mega usw.
also genau das, was du (MC) machen willst.
andere teams hatten komplexere 32-bit-vorstellungen, deren optimierte
designs zb als dievrse arm-versionen zu sehen sind..
was genau willste nu neu+besser+billiger machen ????
>...dann nimm nen AVR !>ganz vergessen? der ist genau so entstanden:>2 studenten überlegten, was wäre optimal,
optimal nach ihren Vorstellungen...
>Eine schöne Projektidee wäre, den Prozessorkern zu entwickeln, der am>wenigsten Gatter in einem CPLD braucht.
sag ich doch die ganze Zeit
Düsentrieb wrote:
> andere teams hatten komplexere 32-bit-vorstellungen, deren optimierte> designs zb als dievrse arm-versionen zu sehen sind..
Naja, der Prozessorkern entstammt einem Universalcomputer, der
eigentlich mal (nach der Vorstellung der Gründer) hätte den IBM-PC
ablösen sollen (Acorn RISC). Das hat nicht geklappt, aber weil der
Prozessor selbst recht genial war, haben sie daraufhin das Design
an andere lizensiert, und irgendwann haben dann diverse Hersteller
ihre Peripherie herum gestapelt, um auch Microcontroller draus zu
zimmern.
>Warum nicht mal einen weiblichen uC entwickeln?
ja, das isses doch:
+macht spontan völlig unlogische entscheidungen
+kennt die "wenn-aber-dann-doch-vielleicht" verknüpfung
+hat gelegentlich seine tage...
Was habt ihr gegen die Idee? Natürlich kann man nach seinem Geschmack
locker einen µC in einem FPGA implementieren. Schwieriger wird es jedoch
dafür einen passenden Compiler zu Entwickeln ;)
>Warum nicht mal einen weiblichen uC entwickeln?
großer Vorteil wäre die sehr einfache Produzierung von weiteren
Derivaten!!!
Durch die Vermischung der Eigenschaften der beiden Partner + die
Evolution bekommt man bestimmt spannende Derivate. Am besten wirds dann,
wenn die Dinger in die Pubertät kommen.
Eine Idee zu blockieren weil zu schwierig ist - veraltet. Geh auf den
Baum zurueck. Ich denke auch ein Compiler sollte den Kern syntetisieren
koennen. Wenn sich ein Problem auf einen Vorwahlzaehler mit 2
selektierbaren Vorwahlen reduzieren laesst, brauch ich den Rest nicht.
>> Warum nicht mal einen weiblichen uC entwickeln?> großer Vorteil wäre die sehr einfache Produzierung von weiteren> Derivaten!!!> +macht spontan völlig unlogische entscheidungen> +kennt die "wenn-aber-dann-doch-vielleicht" verknüpfung> +hat gelegentlich seine tage.
Den zu debuggen wird bestimmt lustig ;-)
Sowas gibt es doch schon. Zb. von Altera den Nios2, da kann man die
Busbreiten festlegen, den RAM und den Controller (zB. internes RAM, SRAM
oder SDRAM), und was einem sonst noch so einfällt (Zusatzhardware,
selbstentwickelt oder fertig, 100 Timer oder 30 PWM Kanäle, usw.).
Und es gibt sogar einen Compiler dazu (gcc portierung), den man mit dem
CPU Design füttern und der einem dann Code generiert (C/C++).
Ein wirklicher Durchbruch ist das Ding aber nicht. Und auf den kleinsten
FPGA passt das Ding natürlich auch nicht, die kleinste Variante liegt so
im Bereich um 2k Logikzellen auf Altera FPGAs.
Das einzige was man wirklich verbessern könnte sind die
Entwicklungswerkzeuge.
Ein 8Bit-µC mit 32Bit Opcode ist etwas übertrieben, oder?
Ich weiß, dass die AVRs 16Bit Opcode haben. Die PICs variieren von 12
bis glaub ich 24Bit (bei den 8Bittern).