Forum: Mikrocontroller und Digitale Elektronik redundanzfreier Befehlssatz


von Stefan H. (Firma: dm2sh) (stefan_helmert)


Lesenswert?

Hallo,

alle bekannten Rechner/Befehlssätze erlauben es, Programme, welche die 
selbe Aufgabe übernehmen, unterschiedlich zu implementieren

Interessant wäre es doch, wenn man eine Architektur/Befehlssatz finden 
würde, bei dem immer nur ein einziges Programm zur Realisierung einer 
Aufgabe gefunden werden kann. Das Programm ist dabei immer optimal. Es 
kann nicht optimiert werden, weder in Geschwindigkeit noch 
Speicherbedarf.

Wie könnte so etwas aussehen?
Innere Zustände könnten schließlich nicht auf niedriger Ebene 
programmiert werden. (keine freie Registerwahl -> keine GPR,...)

von tja (Gast)


Lesenswert?


von Stefan H. (Firma: dm2sh) (stefan_helmert)


Lesenswert?

Das ist nicht das, was ich suche, da kann man ja sogar wählen, welchen 
Kern man nimmt. Man kann Befehle unterschiedlich anordnen und trotzdem 
die gleiche Funktion haben.

von tja (Gast)


Lesenswert?

Nunja. Du müsstest das vielleicht aus einzelnen gates aufbauen? Aber im 
Grunde brauchst du irgendwas wie einen mathematischen Beweis, dass eine 
beste Lösung existiert. Das hört sich nach einem Jahrhundertproblem an.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Stefan Helmert schrieb:
> Interessant wäre es doch, wenn man eine Architektur/Befehlssatz finden
> würde, bei dem immer nur ein einziges Programm zur Realisierung einer
> Aufgabe gefunden werden kann. Das Programm ist dabei immer optimal.

Interessante Frage!

Aber wäre das nicht eher ein Thema für ein Philosophie-Forum deiner 
Wahl? ;-)

von tja (Gast)


Lesenswert?


von hmmm (Gast)


Lesenswert?

Meiner Meinung nach einzige (theoretische) Möglichkeit:
Es gibt für jedes Problem einen Befehl und es können nicht mehrere 
Befehle verkettet werden.
sonst kann man immer mehrere Programme finden, die genau das gleiche 
Ergebnis liefern.

von max (Gast)


Lesenswert?

Stefan Helmert schrieb:
> Interessant wäre es doch, wenn man eine Architektur/Befehlssatz finden
> würde, bei dem immer nur ein einziges Programm zur Realisierung einer
> Aufgabe gefunden werden kann. Das Programm ist dabei immer optimal. Es
> kann nicht optimiert werden, weder in Geschwindigkeit noch
> Speicherbedarf.
>
> Wie könnte so etwas aussehen?

So etwas kann für eine Turing-mächtige Maschine nicht existieren. Gäbe 
es eine Sprache, die dies darstellen könnte, wäre über die Reduktion des 
Äquivalenzproblems auch das Halteproblem gelöst.
Eine Entscheidung des Halteproblems ist jedoch bewiesener Maßen nicht 
auf der Menge aller Turingmaschinen möglich. (siehe Diagonalsprache)

Du müsstest also schon die Möglichkeiten deiner Maschine stark 
einschränken, damit es so etwas geben kann.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

hmmm schrieb:
> Meiner Meinung nach einzige (theoretische) Möglichkeit:
> Es gibt für jedes Problem einen Befehl und es können nicht mehrere
> Befehle verkettet werden.
> sonst kann man immer mehrere Programme finden, die genau das gleiche
> Ergebnis liefern.

Das ist eine ausgezeichnete Idee!
Am besten, es gibt auch für die automatische Suche nach der vom 
Thread-Ersteller gewünschten Rechnerarchitektur einen solchen Befehl, 
dann haben wir das Problem gelöst. :-)

von tja (Gast)


Lesenswert?

Der TO sollte wissen, dass er sich in unbestimmtes Terrain begibt. Viele 
Mathematiker sind schon dort verlorengegangen und sind verrückt 
geworden.

von hmmm (Gast)


Lesenswert?

Markus W. schrieb:
> hmmm schrieb:
>> Meiner Meinung nach einzige (theoretische) Möglichkeit:
>> Es gibt für jedes Problem einen Befehl und es können nicht mehrere
>> Befehle verkettet werden.
>> sonst kann man immer mehrere Programme finden, die genau das gleiche
>> Ergebnis liefern.
>
> Das ist eine ausgezeichnete Idee!
> Am besten, es gibt auch für die automatische Suche nach der vom
> Thread-Ersteller gewünschten Rechnerarchitektur einen solchen Befehl,
> dann haben wir das Problem gelöst. :-)

Das bringt mich darauf, dass die Suche eindeutig bestimmen muss welches 
Problem es ist -> Äquivalente Probleme könnten das ganze wieder 
zerstören.

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

was den nicht redundanten Befehlssatz angeht, ist man bei der 
Turingmaschine mit dem Alfabet 0,1 richtig, die kennt nur die Befehle:

Stehenbleiben, 0 Schreiben, neuer Zustand n
Stehenbleiben, 1 Schreiben, neuer Zustand n
nach Links, 0 Schreiben, neuer Zustand n
nach Links, 1 Schreiben, neuer Zustand n
nach Rechts, 0 Schreiben, neuer Zustand n
nach Rechts, 1 Schreiben, neuer Zustand n

das ist minimal und nicht redundand. Bewiesen wurden die Sätze
"Alles was berechenbar ist, ist durch eine Turingmaschine berechenbar" 
und
"Alles was nicht durch eine Turingmaschoine berechenbar ist, kann 
überhaupt nicht berechnet werden".

M.a.W. jedes sinnvolle Rechenprogramm lässt sich auch auf einer 
Turingmaschine programmieren und ausführen, was bedeutet, der obige 
Befehlssatz reicht für alle Programme aus. Über die Eindeutigkeit ist 
damit allerdings nichts ausgesagt, dass ein Programm mit minimalem 
Befehlssatz nur auf eine einzige Art realisiert werden kann ist meiner 
Meinung nach auch von vornherein falsch.

Allerings ist die ganze Frage etwas spät dran, Alan Turing hat die 
Turingmaschine 1920 definiert. Wenn der Fragesteller noch ein paar Jahre 
gewartet hätte, könnte die Antwort hundertjährigen Geburtstag feiern.

Reinhard Kern

von max (Gast)


Lesenswert?

Sowas wie 2*1 oder 1*2?
g

von max (Gast)


Lesenswert?

Reinhard Kern schrieb:
> das ist minimal und nicht redundand

Natürlich ist das redundant im Sinne des TO:

"bei dem immer nur ein einziges Programm zur Realisierung einer
Aufgabe gefunden werden kann."
das kann ich bei deiner

von Reinhard Kern (Gast)


Lesenswert?

tja schrieb:
> Viele
> Mathematiker sind schon dort verlorengegangen und sind verrückt
> geworden.

Turing wurde psychiatrisch behandelt - allerdings wegen Homosexualität. 
Das ist sicher nicht das was du meinst.

Gruss Reinhard

von Zorg (Gast)


Lesenswert?

tja schrieb:
> Viele
> Mathematiker sind schon dort verlorengegangen und sind verrückt
> geworden.


Berufsrisiko.
Ham die eigentlich für den Fall ne Berufsunfähigkeitsversicherung?
;-)

von Grübler (Gast)


Angehängte Dateien:

Lesenswert?

Vieleicht ist das die Lösung?

von Grübler (Gast)


Lesenswert?

Hier noch das fehlende l: l

von (prx) A. K. (prx)


Lesenswert?

Reinhard Kern schrieb:

> Turing wurde psychiatrisch behandelt - allerdings wegen Homosexualität.
> Das ist sicher nicht das was du meinst.

Eher Kurt Gödel. Der hatte auch mehr Grund dazu gegeben als Turing. 
Immerhin hatte er Hilberts Traum einer perfekten Mathematik gründlich 
den Boden weggezogen. Turings Problem war nur die Konsequenz daraus.

von (prx) A. K. (prx)


Lesenswert?

Stefan Helmert schrieb:

> Interessant wäre es doch, wenn man eine Architektur/Befehlssatz finden
> würde, bei dem immer nur ein einziges Programm zur Realisierung einer
> Aufgabe gefunden werden kann.

Deine Anforderung lässt sich mit einer frei mikroprogrammierbaren 
Maschine lösen, in dem das Programm im Mikrocode steckt. Der gehört im 
allgemeinen Verständnis zur Maschine und nicht zum Programm. Alternativ 
kannst du auch das ganze Programm in VHDL formulieren und in ein FPGA 
stecken.

In gewisser Weise bist du hier im Forum damit goldrichtig. Denn viele 
Mikrocontrolleranwendungen sind Maschinen, in denen sich nur ein 
einziges Programm zur Realisierung einer Aufgabe finden lässt. 
Insbesondere wenn schlussendlich maskenprogrammiert.

von Tom (Gast)


Lesenswert?

solange A+B das gleiche ist wie B+A und C*D das gleiche wie D*C wird 
sich die Vision des TO wohl nicht realisieren lassen.....

von Reinhard Kern (Gast)


Lesenswert?

A. K. schrieb:
> Eher Kurt Gödel. Der hatte auch mehr Grund dazu gegeben als Turing.
> Immerhin hatte er Hilberts Traum einer perfekten Mathematik gründlich
> den Boden weggezogen.

Ja da sind die Weisskittel wohl zu spät gekommen. Früher war Mathematik 
viel einfacher und vor allem hoffnungsvoller.

Tom schrieb:
> solange A+B das gleiche ist wie B+A und C*D das gleiche wie D*C wird
> sich die Vision des TO wohl nicht realisieren lassen.....

Und (a+b)+c = a+(b+c) usw. Man dürfte überhaupt keine Gleichungen mehr 
umformen, denn das bedeutet immer Äquivalenz der beiden 
Gleichungsformen. Also garkeine Mathematik mehr.

Gruss Reinhard

von Stefan H. (Firma: dm2sh) (stefan_helmert)


Lesenswert?

Alle Algorithmen und Gleichungen müssten in einer Art "Normalform" 
realisiert werden.

von Peter D. (peda)


Lesenswert?

Stefan Helmert schrieb:
> Interessant wäre es doch, wenn man eine Architektur/Befehlssatz finden
> würde, bei dem immer nur ein einziges Programm zur Realisierung einer
> Aufgabe gefunden werden kann. Das Programm ist dabei immer optimal.

Das schließt sich gegenseitig aus. Entweder optimal oder keine 
Redundanz.

Es gibt immer mehrere Befehle, mit denen das gleiche gemacht werden 
kann.
Ansonsten dürfte es nur einen Befehl geben. In der Digitalrechnik kann 
man alles mit einem NAND realisieren. Genauso kann man alle Programme 
nur mit einem NAND schreiben.


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.