Forum

Einloggen | Registrieren | RSS  

anderer Tobi

09.09.2009,
18:50
 

Wie liest und schreibt man über dieselbe Datenleitung (Computertechnik)

Hallo zusammen,

Ich versuche gerade eine Registermaschine zu bauen und komme bei der Datenübertragung zwischen den einzelnen Baugruppen nicht weiter. Momentan bin ich noch beim Aufstellen des Konzepts für diesen minimalistischen Computer.

Das Problem ist Folgendes: Ich habe ein Verarbeitungseinheit, die Zugriff auf die Datenregister benötigt. Also möchte ich diese beiden Komponenten mit einer parallelen (8 Bit breiten) Datenleitung verbinden.

Nun kommt das eigentliche Problem:
Ich habe einen Befehl der den Inhalt einer Speicherzelle testet, also muss ich über die Datenleitung Daten LESEN. Und ich habe zwei Befehle um den Inhalt eines Registers zu in- oder zu dekrementieren. Dazu muss ich in das register SCHREIBEN.

Weiß jemand wie ich das anstellen kann (lesen und schreiben)? Denn zum Lesen muss das Datenregister ja auf die Leitung schreiben. Aber es können ja schlecht zwei Komponenten gleichzeitig auf die Datenleitung schreiben, oder?

Danke schon mal im Voraus für Antworten!

MfG anderer Tobi

ollanner(R)

09.09.2009,
19:18

@ anderer Tobi

Wie liest und schreibt man über dieselbe Datenleitung

Schau dir mal den 74ALS244 an, vielleicht passt der ja.

http://www.datasheetcatalog.com/datasheets_pdf/7/4/A/L/74ALS244.shtml

--
Gruß
Der Ollanner

Baldwin(R)

E-Mail

09.09.2009,
19:23

@ ollanner

Wie liest und schreibt man über dieselbe Datenleitung

Vielleicht noch besser, da bidirektional.
http://www.datasheetcatalog.com/datasheets_pdf/7/4/A/L/74ALS245.shtml

anderer Tobi

09.09.2009,
20:19

@ Baldwin

Wie liest und schreibt man über dieselbe Datenleitung

Ok.. Also bevor ich versuche das zu verstehen (bin noch Anfänger): Was haltet ihr von der Idee Daten über die selbe Leitung zu lesen und senden? Ist das eigentlich normal?

Mein Ziel ist es nämlich einen möglichst minimalistischen Computer zu bauen. In etwa wie den 'Bonsai Lehrcomputer'. Gibt es noch eine einfacherer Möglichkeit?

MfG anderer Tobi

geralds(R)

Homepage E-Mail

Wien, AT,
09.09.2009,
20:58
(editiert von geralds
am 09.09.2009 um 20:59)


@ anderer Tobi

Wie liest und schreibt man über dieselbe Datenleitung

» Ok.. Also bevor ich versuche das zu verstehen (bin noch Anfänger): Was
» haltet ihr von der Idee Daten über die selbe Leitung zu lesen und senden?
» Ist das eigentlich normal?
»
» Mein Ziel ist es nämlich einen möglichst minimalistischen Computer zu
» bauen. In etwa wie den 'Bonsai Lehrcomputer'. Gibt es noch eine
» einfacherer Möglichkeit?
»
» MfG anderer Tobi

---
Hallo Tobi,

Willst du MIT Controller lesen/schreiben oder OHNE Controller lesen/schreiben?

Wenn mit, dann ists einfach.--- später mehr.
Wenn ohne, dann geht es auch, nur musst ein paar Logikbausteine nehmen,
damit du die Lese/Schreib-Zyklen des RAM richtig handhaben kannst.
Das geht nicht so einfach auf die schnelle mit einem IC.

So ein 74LS245 - bi-direktinaler Bustreiber ist nur die halbe Lösung.

Grüße
Gerald

--
...und täglich grüßt der PC:
"Drück' ENTER! :wink: Feigling!"

anderer Tobi

09.09.2009,
21:08

@ geralds

Wie liest und schreibt man über dieselbe Datenleitung

Ich möchte keine Mikrocontroller einbauen. Wenn möglich würde ich den gesamten Computern nur aus logischen Gattern und Datenleitungen zusammenbauen. Außer dem Taktgeber und den Speicherbausteinen.

geralds(R)

Homepage E-Mail

Wien, AT,
09.09.2009,
21:13

@ anderer Tobi

Wie liest und schreibt man über dieselbe Datenleitung

» Ich möchte keine Mikrocontroller einbauen. Wenn möglich würde ich den
» gesamten Computern nur aus logischen Gattern und Datenleitungen
» zusammenbauen. Außer dem Taktgeber und den Speicherbausteinen.

---
Na gut, ok, wie groß hast du dir das vorgestellt?

Soll es mit dynamische Speicher oder statische gemacht werden?
Speichergröße, etc....
Erzähl mal ein paar deiner Ideen, eventuell mit Plan...
Dann der Verwendungszweck, falls es den gibt....

----

--
...und täglich grüßt der PC:
"Drück' ENTER! :wink: Feigling!"

anderer Tobi

09.09.2009,
21:27

@ geralds

Wie liest und schreibt man über dieselbe Datenleitung

Ich will eine Registermaschine bauen. Diese soll mit den 4 Befehlen INC rxx, DEC rxx, TST rxx und JMP rxx funktionieren und damit alle Berechnungen lösen können zu denen auch ein echter Computer in der Lage ist.

Die Maschine enthält 3 Registergruppen:
- Datenregister (32 Stück a 6 Bit)
- Coderegister (128 Stück a 8 Bit)
- Zeigerregister (1 mit 7 Bit)

INC rxx: ein Datenregister um 1 erhöhen
DEC rxx: ein Datenregister um 1 erniedrigen (wenn != 0)
JMP rxx: zu einer Adresse im Coderegister springen
TST rxx: bedingter Sprung -> testet ob Datenregister = 0
wenn nein: Zeigerindex inkrementieren, ansonsten um 2 erhöhen

Ablaufplan des "Computers":
1) Zeigerindex lesen
2) jeweiliges Coderegister lesen
3) Befehl verarbeiten
a) Zeigerregister verändern
b) oder Datenregister verändern

Die Idee habe ich vom Bonsai-Lehrcomputer:
http://www.hsg-kl.de/faecher/inf/material/bonsai/bau/index.php

Bloß erscheint der mir immer noch etwas zu groß. Ich will also eine Maschine bauen, die mit möglichst wenig Hardware programmierbar ist.

Nun weiß ich nicht ob ich ein Bussystem verwenden soll und wenn ja: Wie ich über eine Leitung (z.B. die 6-Bit-Leitung zum Datenregister) lesen (dann verarbeiten) und wieder über jene eine Leitung zurückschreiben kann.

Wäre schön wenn mir jemand das Prinzip erklären könnte (also gleichzeitiges lesen und schreiben über ein Parallelleitung). Dem Datenblatt konnte ich die Funktionsweise nicht direkt entnehmen.

MfG anderer Tobi

bigdie(R)

10.09.2009,
12:35

@ anderer Tobi

Wie liest und schreibt man über dieselbe Datenleitung

» Ich will eine Registermaschine bauen. Diese soll mit den 4 Befehlen INC
» rxx, DEC rxx, TST rxx und JMP rxx funktionieren und damit alle
» Berechnungen lösen können zu denen auch ein echter Computer in der Lage
» ist.
»
» Die Maschine enthält 3 Registergruppen:
» - Datenregister (32 Stück a 6 Bit)
» - Coderegister (128 Stück a 8 Bit)
» - Zeigerregister (1 mit 7 Bit)
»
» INC rxx: ein Datenregister um 1 erhöhen
» DEC rxx: ein Datenregister um 1 erniedrigen (wenn != 0)
» JMP rxx: zu einer Adresse im Coderegister springen
» TST rxx: bedingter Sprung -> testet ob Datenregister = 0
» wenn nein: Zeigerindex inkrementieren, ansonsten um 2 erhöhen
»
» Ablaufplan des "Computers":
» 1) Zeigerindex lesen
» 2) jeweiliges Coderegister lesen
» 3) Befehl verarbeiten
» a) Zeigerregister verändern
» b) oder Datenregister verändern
»
» Die Idee habe ich vom Bonsai-Lehrcomputer:
» http://www.hsg-kl.de/faecher/inf/material/bonsai/bau/index.php
»
» Bloß erscheint der mir immer noch etwas zu groß. Ich will also eine
» Maschine bauen, die mit möglichst wenig Hardware programmierbar ist.
»
» Nun weiß ich nicht ob ich ein Bussystem verwenden soll und wenn ja: Wie
» ich über eine Leitung (z.B. die 6-Bit-Leitung zum Datenregister) lesen
» (dann verarbeiten) und wieder über jene eine Leitung zurückschreiben
» kann.
»
» Wäre schön wenn mir jemand das Prinzip erklären könnte (also
» gleichzeitiges lesen und schreiben über ein Parallelleitung). Dem
» Datenblatt konnte ich die Funktionsweise nicht direkt entnehmen.
»
» MfG anderer Tobi

Also wie das innerhalb eines Prozessors geregelt ist, weis ich nicht. In einem Rechner gibt es einen Datenbus und einen Adressbus. Jeder Baustein am Bus hat die nötigen Datenleitungen, ein Anschluß der steuert schreiben bzw. lesen und einen Chip Select Anschluß über den das Bauteil ausgewählt wird. Der Chip Select kommt vom Adressdecoder. Wenn das Bauteil ausgewählt wird über Chip Select entscheidet der schreib/lese Anschluß ob dieses Bauteil Daten empfängt oder sendet. Wenn Chip Select inaktiv ist, sind die Datenleitungen dieses Bauteils hochohmig (TriStateausgang).