www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Arithmetisch logische Einheit in CPU


Autor: Hans Müller (anno)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

es gibt ja eine Arithmetisch logische Einheit (ALU) in der CPU.

Wenn man diese bspw. mit UND- und XOR-Gattern aufbaut bekommt man ja 
einen Addierer bzw. Subtrahierer hin.

Wie sieht es aber aus, wenn man anstatt UND-Gatter ODER-gatter 
verwendet. Ist das dann immer noch ein Addierer bzw. Subtrahierer oder 
hat das Teil dann andere Funktionen?

Denn ich finde nirgends ein Beispiel mit Oder Gattern.

Autor: De Morgan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
De Morgan? schonmal was von Full-NAND bzw. NOR gehört?

Autor: mr. mo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du es 1 zu 1 mit den anderen gattern aufbaust, dann wird die 
funktion wohl anders sein.

man muss aber auch wissen, das in der praxis kein subtrahierwerk 
vorhanden ist. die subtraktion wird auf eine addition mit einer 
negativen zahl zurückgeführt.

Autor: Hans Müller (anno)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, davon schon, aber welche funktionalität ist das dann wenn ich es 
austausche?

multiplikation ....?

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans Müller schrieb:
> es gibt ja eine Arithmetisch logische Einheit (ALU) in der CPU.
ja.
> Wenn man diese bspw. mit UND- und XOR-Gattern aufbaut bekommt man ja
> einen Addierer bzw. Subtrahierer hin.

Du meinst so:
Summe = a exor b
Übertrag = a und b

allerdings fehlen hier sowieso die Überträge von den niedrigeren 
Stellen.

> Wie sieht es aber aus, wenn man anstatt UND-Gatter ODER-gatter
> verwendet. Ist das dann immer noch ein Addierer bzw. Subtrahierer oder
> hat das Teil dann andere Funktionen?

Es ändert sich ja die Gleichung, also wird was anderes sein.

> Denn ich finde nirgends ein Beispiel mit Oder Gattern.

Naja wenn man EXOR hat, nimmt kein Mensch beim Addierer das normale OR, 
weil der Fall a=1 und b=1 dann wieder mühsam weggemacht werden muss.
:-)

Autor: Murkser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

so wie ich die Frage verstanden habe ist die Fragestellung ziemlich 
sinnlos. Willst Du wirklich wissen was passiert, wenn Du beispielsweise 
alle AND-Gatter mit OR-Gattern austauschst? Das ist so ähnlich als ob Du 
fragst, was passiert, wenn Du bei einem Auto alle Schrauben durch Nägel 
austauschst. Von weit weg sieht es noch wie ein Auto aus, aber sobald Du 
dem Ex-Gefährt näherkommst, fällt der Blechhaufen in sich zusammen...

Murkser

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans Müller schrieb:

> Wie sieht es aber aus, wenn man anstatt UND-Gatter ODER-gatter
> verwendet.

Der Computer der Apollo-Kapsel und der Mondladefähre aus den 60ern wurde 
mit einem einzigen Gatter/IC-Typ aufgebaut. Das war ein NOR-Gatter mit 3 
Eingängen.

Allerdings geht das nicht mit jedem Gattertyp. Mit NAND geht das, mit 
NOR geht das, mit Open-Collector-Invertern geht das. Aber 
ausschliesslich mit AND-Gattern geht das nicht, ebensowenig mit OR oder 
XOR Gattern.

Warum das so ist, das erklärt dir Augustus De Morgan.

Autor: Hans Müller (anno)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal angenommen ich habe so eine ALU http://analyseandbet.de/alu.png

das wäre ja ein Addierer-Subtrahierer. Wenn ich jetzt das UND in ein 
ODER Gatter tausche, ist es natürlich kein Addierer-Subtrahierer mehr. 
Aber was ist es dann?

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans Müller schrieb:
> Aber was ist es dann?

Logisches Oder?
Mals dir auf, mach eine Wahrheitstabelle und find es selbst raus.
:-)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
q  Hans Müller (anno)

>ODER Gatter tausche, ist es natürlich kein Addierer-Subtrahierer mehr.
>Aber was ist es dann?

UNSINN!

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans Müller schrieb:

> Mal angenommen ich habe so eine ALU http://analyseandbet.de/alu.png

Die dort gezeigten Gatter haben allerdings mit der Grundfunktion nur 
bedingt zu tun. Sie helfen dabei, den Addierer auch als Subtrahierer 
verwenden zu können und sie ermöglichen es, jeden Operanden als 0 
ansehen zu können egal was anliegt.

Der interessantere Teil steckt in den grossen Kasten.

> das wäre ja ein Addierer-Subtrahierer. Wenn ich jetzt das UND in ein
> ODER Gatter tausche, ist es natürlich kein Addierer-Subtrahierer mehr.

Doch. Das ist in diesem Fall eine ALU, bei der du die Operanden auf 1 
zwingen kansst, statt auf 0.

Autor: P. M. (o-o)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans Müller schrieb:
> Wie sieht es aber aus, wenn man anstatt UND-Gatter ODER-gatter
> verwendet. Ist das dann immer noch ein Addierer bzw. Subtrahierer oder
> hat das Teil dann andere Funktionen?

Tipp: Lies dich ein wenig in Digitallogik/-technik ein. Ist ein ganz 
interessantes Gebiet! Stichworte: Boolesche Logik, De-Morgan-Theorem, 
Min-/Maxterme, kanonische Normalform, Karnaugh-Diagramme. Später Latches 
und Flipflops sowie synchrone Taktung, danach auch Automaten (Mealy, 
Moore, Medwedew).

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans Müller schrieb:

> Denn ich finde nirgends ein Beispiel mit Oder Gattern.

Schmeiss deinen gezeigten dich nur irreführenden 4fach Addierer weg (*) 
und denk einzelbitweise. Ein Addierer sieht dann Bit für Bit so aus: 
http://de.wikipedia.org/wiki/Volladdierer

Und nun ersetze die ungewünschten Gattertypen entsprechend De Morgan 
durch gewünschte.

*: Nochmal im Klartext: Beide Gattertypen deines Bildes haben mit der 
Addition rein garnichts zu tun. Dir XORs darin dienen nur dazu, die 
Subtraktion über Addition des Einerkomplements zu implementieren.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage ist ungefähr genauso sinnvoll wie:
Wenn ich beim Pythagoras

    c^2 = a^2 + b^2

das Quadrat gegen eine 3. Wurzel austausche und anstelle von Addieren 
Dividiere, ist das dann immer noch ein Pythagoras?

Natürlich nicht!
Das ist dann irgendeine andere Formel, die in manchen Fällen vielleicht 
sogar vorkommen kann, aber mehr auch nicht.

Allerdings.
Um einen pythagoras zu machen, benötigt man nicht unbedingt eine 
Potenzfunktion. Man kann sie so ersetzen

   c = sqrt( a * a + b * b )

d.h. man die Potenzierung durch eine funktional gleichwertige andere 
Operation ersetzt. Und genau hier sind wir dann beim bereits 
angesprochenen De Morgan. Der sagt dir wie du boolsche Operationen durch 
andere boolsche Operationen ersetzen kannst, so dass sich an der 
Gesamt-Funktionalität selber nichts ändert.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.