lässt sich jedes programm auch als schaltkreis bauen?



  • hab mal eine generelle frage,

    lässt sich jedes programm auch als schaltkreis bauen? bitte keine antworten, ja eine cpu oder so...



  • Du fragst ob man ein Programm als Schaltkreis realisieren kann und verbietest Schaltkreise? Das wird knifflig.



  • Eine CPU ist doch auch ein Schaltkreis, also wieso soll das keine Antwort sein? Aber ja, du kannst die vielen Möglichkeiten einer CPU auch solange reduzieren bis nur noch ein einziges - dein gewünschtes - Programm abläuft bzw. das direkt in Hardware gießen. Klar geht das.

    MfG SideWinder



  • Läßt sich jedes Programm, das eine endliche Eingabe-Bitfolge in eine endliche Ausage-Bitfolge überstzt, als Gatternetzwerk ohne Verzögerungsglieder bauen?


  • Mod

    volkard schrieb:

    Läßt sich jedes Programm, das eine endliche Eingabe-Bitfolge in eine endliche Ausage-Bitfolge überstzt, als Gatternetzwerk ohne Verzögerungsglieder bauen?

    Als Nicht-Elektroniker muss ich nachfragen :Bedeutet dies eine Schaltung, die auf eine bestimmte Eingabe sofort eine passende Antwort hat? Ich würde spontan eher Nein annehmen, muss aber nochmal in Ruhe darüber nachdenken.



  • Die Antwort ist aber "Ja". Zumindest theoretisch. Wobei auch "sofort" natürlich nur in der Theorie klappt.



  • volkard schrieb:

    (...) als Gatternetzwerk ohne Verzögerungsglieder

    Jedes technisch realisierbare Gatter hat auch eine Verzögerungszeit.



  • Das macht es nicht zu einem Verzögerungsglied :p



  • volkard schrieb:

    Läßt sich jedes Programm, das eine endliche Eingabe-Bitfolge in eine endliche Ausage-Bitfolge überstzt, als Gatternetzwerk ohne Verzögerungsglieder bauen?

    Wenn du mit dieser Forderung Schleifen und Dergleichen verbieten willst, dann natürlich: nein.
    Zumindest nicht als endliches Gatternetzwerk.


  • Mod

    hustbaer schrieb:

    volkard schrieb:

    Läßt sich jedes Programm, das eine endliche Eingabe-Bitfolge in eine endliche Ausage-Bitfolge überstzt, als Gatternetzwerk ohne Verzögerungsglieder bauen?

    Wenn du mit dieser Forderung Schleifen und Dergleichen verbieten willst, dann natürlich: nein.
    Zumindest nicht als endliches Gatternetzwerk.

    Aber brauchst du denn Schleifen? Eine Schaltung ist keine Turingmaschine.



  • hustbaer schrieb:

    volkard schrieb:

    Läßt sich jedes Programm, das eine endliche Eingabe-Bitfolge in eine endliche Ausage-Bitfolge überstzt, als Gatternetzwerk ohne Verzögerungsglieder bauen?

    Wenn du mit dieser Forderung Schleifen und Dergleichen verbieten willst, dann natürlich: nein.
    Zumindest nicht als endliches Gatternetzwerk.

    Die Frage ist etwas unklar gestellt. Ich versteh sie so, dass die Ein- und Ausgabe eine feste maximale Länge haben müssen, also nicht beliebig lang. Das heißt, man will im Grunde eine boolesche Funktion {0,1}^N -> {0,1}^M berechnen, und die lassen sich selbstverständlich durch ein endliches Schaltnetz darstellen.



  • _-- schrieb:

    hab mal eine generelle frage,

    lässt sich jedes programm auch als schaltkreis bauen? bitte keine antworten, ja eine cpu oder so...

    Ja. Siehe Tanenbaum Buch Computerarchitektur.
    Jedes Programm läßt sich auch in Hardware giessen.

    Das hilft insbesondere gegen Zylonen.



  • also ich stellte die frage deshalb, weil ich mal gelesen hab, dass ein auswahlkriterium für den aes-chipher die leichte hardwareimplementierbarkeit war. also leicht->schwer->unmöglich und schon sind wir bei der frage.ich denke mir ist durch die diskussion auch mehr oder weniger klar geworden, was leicht und schwer zu implementieren ist.

    schwer = schleifen,rekursion,speicher
    leicht = div. logikgatterkombinationen
    

    stimmt das 😕



  • das teil heißt natürlich cipher 🤡



  • SeppJ schrieb:

    hustbaer schrieb:

    volkard schrieb:

    Läßt sich jedes Programm, das eine endliche Eingabe-Bitfolge in eine endliche Ausage-Bitfolge überstzt, als Gatternetzwerk ohne Verzögerungsglieder bauen?

    Wenn du mit dieser Forderung Schleifen und Dergleichen verbieten willst, dann natürlich: nein.
    Zumindest nicht als endliches Gatternetzwerk.

    Aber brauchst du denn Schleifen? Eine Schaltung ist keine Turingmaschine.

    Aber ein Programm ist eine Turingmaschine, genau darum geht's ja.

    Klar, man kann natürlich so argumentieren: jedes Programm welches deterministischerweise immer terminiert lässt sich theoretisch komplett durchrechnen (Output für alle möglichen Input berechnen).

    D.h. man kann theoretisch eine relativ einfache Matrix basteln die jeden möglichen Input auf den gewünschten Output abbildet. (Man beachte: einfach != klein)
    D.h. man kann theoretisch aus jedem solchen Programm eine endliche Schaltung ohne Schleifen etc. bauen.

    Praktisch ist es aber unfug.

    Beispiel: bau mir eine Schaltung, die 64 Bits als Input bekommt und sie auf 4 Bit abbildet. Der Output soll die N. dezimale Stelle von Pi sein, wobei N = die 64 bittige Input Zahl.

    Nebenbei erwähnt war auch nicht angegeben ob das Programm bekannterweise immer terminiert.


Log in to reply