Forum: Mikrocontroller und Digitale Elektronik RAM/ROM Prozessor, Speicher


von Peter93 (Gast)


Lesenswert?

Hallo Leute, ich habe Fragen bezüglich einer Aufgabe, die mir gestellt 
wurde. Leider komme ich nicht weiter, ich hoffe ihr könnt mir helfen und 
einige Dinge erklären.

Für einen 8-Bit-Mikroprozessor mit 16-Bit Adresswortbreite ist ein 
Speicher-/Eingabe-Ausgabesystem mit isolierter EA-Adressierung 
(Steuerleitung IO/M) zu entwerfen. Die Resetadresse sei 0.
Der Speicher soll jeweils zur Hälfte aus ROM und aus RAM bestehen. Es 
sind ROM-Bausteine mit der Organisation 16K x 8 (d.h. 16K Adressumfang 
und 8 Bit Datenwortbreite) und RAM-Bausteine 8K x 4 (d.h. 8K 
Adressumfang und 4 Bit Datenbreite) verfügbar.
 Welcher Speichertyp muss durch die Reset-Adresse adressiert werden?
Meine Antwort: ROM, da RAM gelöscht werden kann

Wie errechne ich, wie viele RAM und ROM Bausteine ich benötige?

Woher weiß ich, wie viele Adressleitungen die RAM und ROM Bausteine 
haben?


MfG,

Peter

von Ordner (Gast)


Lesenswert?

Peter93 schrieb:
> Wie errechne ich, wie viele RAM und ROM Bausteine ich benötige?


Anzahl_module = Gesamtressource/Ressource pro module


> Woher weiß ich, wie viele Adressleitungen die RAM und ROM Bausteine
> haben?

Logarithmus dualis

von Peter93 (Gast)


Lesenswert?

Ordner schrieb:
> Anzahl_module = Gesamtressource/Ressource pro module

Vielen Dank für deine schnelle Antwort,

Kannst du mir als Beispiel die RAM Module berechnen?


Ordner schrieb:
> Logarithmus dualis
wie genau?

von foobar (Gast)


Lesenswert?

Peter93 schrieb:
>> Logarithmus dualis
> wie genau?

Du hast insgesamt 16K Worte in dem ROM. Unter der Annahme, dass du jedes 
Wort einzeln adressieren willst, brauchst du 16K Adressen.
x = lb 16K

von Peter93 (Gast)


Lesenswert?

Okay also muss ROM=14 Adressleitungen haben und RAM=13 Adressleitungen.

Aber woher weiß ich denn jetzt genau, wie viele RAM und ROM ich 
benötige?
Was muss ich genau rechnen?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Peter93 schrieb:
> Aber woher weiß ich denn jetzt genau, wie viele RAM und ROM ich
> benötige?



Peter93 schrieb:
> Für einen 8-Bit-Mikroprozessor mit 16-Bit Adresswortbreite
...
> Der Speicher soll jeweils zur Hälfte aus ROM und aus RAM bestehen

von Rene V. (creep)


Lesenswert?

Hallo Peter,

vielleicht solltest Du Dir zuerstmal die Grundlagen eines 8-Bit 
Mikrorechners mit z.B. Z80 oder 6502 CPU ergooglen. Das hilft ungemein, 
schnell ein Grundverständnis zu bekommen. Damit kannst Du Dir diese 
Fragen leicht selbst beantworten.

8-Bit CPU mit 8-Bit Datenbus und 16-Bit Adressbus.

Das bedeutet dann, insgesamt 64kB Speicher, also je 32kB RAM und 32kB 
EPROM.

Die EPROMS sollen 8-Bit breit sein und 16k Kapazität haben. Also 
brauchst Du zwei Stück.

Die RAMs sollen nur 4-Bit breit sein bei 8kx4. Du brauchst hier also 2 
Chips, um die nötigen 8kx8 zu erhalten. Das ganze dann mal 4 für die 
32kB.

Gruß, Rene

von Peter93 (Gast)


Lesenswert?

Das hilft mir leider auch nicht weiter...  :/
Ich weiß zwar, dass es 2 ROM und 8 RAM Bausteine sein müssen, aber ich 
würde gerne wissen, wieso das so ist ..

von Rene V. (creep)


Lesenswert?

Hier findest Du ein einfaches 8-Bit CPU System mit 8k ROM und 56k (von 
128k im Chip) RAM:

http://searle.hostei.com/grant/z80/SimpleZ80.html

Versuche, das zu verstehen und für Dich abzuändern. Tip: Der RAM hier 
hat 8 Bit Datenbreite, Du mußt also quasi 2x 4Bit parallel schalten, um 
es zu realisieren.

: Bearbeitet durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Peter93 schrieb:
> Ich weiß zwar, dass es 2 ROM und 8 RAM Bausteine sein müssen, aber ich
> würde gerne wissen, wieso das so ist ..

Wieviel ROM und wieviel RAM sollen es werden?

Genau gleichviel, nämlich jeweils die Hälfte des Adressraumes.

Wenn ein ROM x kB groß ist, und y KB ROM-Bausteine gefordert werden, 
errechnet sich die Anzahl aus y / x.

Und beim RAM sieht das genauso aus.

von Peter93 (Gast)


Lesenswert?

Rene V. schrieb:
> Das bedeutet dann, insgesamt 64kB Speicher, also je 32kB RAM und 32kB
> EPROM.
>
> Die EPROMS sollen 8-Bit breit sein und 16k Kapazität haben. Also
> brauchst Du zwei Stück.
>
> Die RAMs sollen nur 4-Bit breit sein bei 8kx4. Du brauchst hier also 2
> Chips, um die nötigen 8kx8 zu erhalten. Das ganze dann mal 4 für die
> 32kB.

Super Rene, vielen Dank! :)


Kleine Frage, ob ich es auch wirklich Verstanden habe:

ein 8 Bit Prozessor mit 16Bit Datenbus

davon 16KB für ROM

ROM=8k x 8
RAM= 16k x 8

Also benötige ich:
2 ROM ( 2*8k=16k)

und 3 RAM
64k-16k= 48k
48k= 3*16k

Richtig?

von foobar (Gast)


Lesenswert?

Peter93 schrieb:
> Welcher Speichertyp muss durch die Reset-Adresse adressiert werden?
> Meine Antwort: ROM, da RAM gelöscht werden kann

Peter93: Welche Konsequenz hat das?

von Rene V. (creep)


Lesenswert?

Peter93 schrieb:
> Richtig?

Nein.

von Peter93 (Gast)


Lesenswert?

Wieso nicht?

von michael_ (Gast)


Lesenswert?

Rene V. schrieb:
> Peter93 schrieb:
>> Richtig?
>
> Nein.

Theoretisch, Ja.

Praktisch, Nein.

von Rene V. (creep)


Lesenswert?

Lies nochmal genau Deine Aufgabenstellung, meinen (und die anderen 
Beiträge) und google nach 8-Bit CPU, Datenbus und Adressbus. Dann 
solltest Du drauf kommen. Du hast gerade alles durcheinandergebracht. 
Sonst kämst Du nicht auf die "krummen" Werte.

von Ordner (Gast)


Lesenswert?

Peter93 schrieb:
> Ordner schrieb:
>> Logarithmus dualis
> wie genau?

ROM: Anzahl Adressleitungen = ld(N_ROMbausteine   * 16*1024)
RAM: Anzahl Adressleitungen = ld(N_RAMbausteine/2 *  8*1024)

ld ... Logarithmus dualis

von michael_ (Gast)


Lesenswert?

Natürlich ist alles durcheinander.
In der Aufgabe ist Halbe, Halbe genannt.
Es klingt nach Schulaufgabe, wo der Herr Lehrer nichts dazugelernt hat.
Und RAM mit 8K X 4 kenn ich eigentlich nicht.

von foobar (Gast)


Lesenswert?

michael_ schrieb:
> Es klingt nach Schulaufgabe

Klingt für mich eher nach Uni/FH, Peter93 suggeriert das Geburtsjahr

von Rene V. (creep)


Lesenswert?

michael_ schrieb:
> Und RAM mit 8K X 4 kenn ich eigentlich nicht.

Ich kenne auch eher 1kx4 oder 2kx4. Es ist halt ein theoretisches und 
nicht sehr praxisnahes Beispiel...

von foobar (Gast)


Lesenswert?

Rene V. schrieb:
> Es ist halt ein theoretisches und
> nicht sehr praxisnahes Beispiel...

Dann lässt sich die Lösung nicht so leicht ergooglen sonder es musste 
verstanden werden.

von Stefan K. (stefan64)


Lesenswert?

Peter93 schrieb:
> Kleine Frage, ob ich es auch wirklich Verstanden habe:
>
> ein 8 Bit Prozessor mit 16Bit Datenbus
>
> davon 16KB für ROM
>
> ROM=8k x 8
> RAM= 16k x 8
>
> Also benötige ich:
> 2 ROM ( 2*8k=16k)
>
> und 3 RAM
> 64k-16k= 48k
> 48k= 3*16k

Das ist korrekt.

Herzliches Beileid zu Deinem lernresistenten Professor - der scheint 
seine Aufgaben seit 35 Jahren nicht angepasst zu haben.

Gruß, Stefan

von (prx) A. K. (prx)


Lesenswert?

michael_ schrieb:
> Es klingt nach Schulaufgabe, wo der Herr Lehrer nichts dazugelernt hat.

Die Aufgabe ist ok.

> Und RAM mit 8K X 4 kenn ich eigentlich nicht.

Na und? Erstens spielt das für eine solche Aufgabe keine Rolle, und 
zweitens hilft Google: EDH84H08C.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Stefan K. schrieb:
> Das ist korrekt.

Willst du ihn mit Absicht in die Irre führen?

von foobar (Gast)


Lesenswert?

Peter93 schrieb:
> Kleine Frage, ob ich es auch wirklich Verstanden habe:
>
> ein 8 Bit Prozessor mit 16Bit Datenbus

Nein.

von Rudolph (Gast)


Lesenswert?

Peter93 schrieb:
> Welcher Speichertyp muss durch die Reset-Adresse adressiert werden?
> Meine Antwort: ROM, da RAM gelöscht werden kann

Reset-Adresse bedeutet, dass der Prozessor entweder ab dieser Adresse 
anfängt sein Programm auszuführen, oder aber die ersten beiden Bytes als 
die Adresse interpretiert von der er anfangen soll.
Das muss also ROM sein, zumindest für den Kaltstart, da das RAM ja 
erstmal keinen definierten Inhalt hat.

von Amateur (Gast)


Lesenswert?

@Peter93

Ab hier jeweils ein Speicherbaustein  mit jeweils 8 Bit Datenbreite.
1.    Speicheradresse ROM 0X0000 bis 0X3FFF 16K
2.    Speicheradresse ROM 0X4FFF bis 0X7FFF 16K

Ab hier müssen jeweils 2 Speicher parallel adressiert werden, wobei Bit 
0 bis 3 dem ersten Speicherbaustein zugeordnet sind und Bit 4 bis 7 dem 
zweiten.
3+4.  Speicheradresse RAM 0X8000 bis 0X9FFF 8K  (2 Stück)
5+6.  Speicheradresse RAM 0X9000 bis 0XAFFF 8K  (2 Stück)
7+8.  Speicheradresse RAM 0XB000 bis 0XCFFF 8K  (2 Stück)
9+10. Speicheradresse RAM 0XD000 bis 0XFFFF 8K  (2 Stück)

Müsste also, nach Adam Riess und Eva Zwerg, mit 10 Speicherbausteinen 
machbar sein.

So etwas kann man in wenigen Sekunden mit dem eingebauten Rechner 
aufstellen.

Als Hilfreich könnte es sich auch erweisen, den Lehrer mal mit Deiner 
Anwesenheit zu beglücken. Da kann man nämlich auch Fragen stellen. Dem 
scheinbaren Alter der Aufgabe nach zu urteilen sollte der noch zu denen 
gehören, die auch auf Fragen reagieren.

von Sebastian S. (amateur)


Lesenswert?

Da hat wohl das Fehlerteufelchen zugehauen:
3+4.  Speicheradresse RAM 0X8000 bis 0X9FFF 8K  (2 Stück)
5+6.  Speicheradresse RAM 0XA000 bis 0XBFFF 8K  (2 Stück)
7+8.  Speicheradresse RAM 0XC000 bis 0XDFFF 8K  (2 Stück)
9+10. Speicheradresse RAM 0XE000 bis 0XFFFF 8K  (2 Stück)

von michael_ (Gast)


Lesenswert?

A. K. schrieb:
>> Und RAM mit 8K X 4 kenn ich eigentlich nicht.
>
> Na und? Erstens spielt das für eine solche Aufgabe keine Rolle, und
> zweitens hilft Google: EDH84H08C.

Bist du der Lehrer?
Dieser High Speed Static RAM für Militär wird wohl nicht so recht für 
Anfänger geeignet zu sein.
Natürlich kann man Sachen an den Haaren herbeiziehen.

von Sebastian S. (amateur)


Lesenswert?

>Bist du der Lehrer?
>Dieser High Speed Static RAM für Militär wird wohl nicht so recht für
>Anfänger geeignet zu sein.
>Natürlich kann man Sachen an den Haaren herbeiziehen.

Es kann aber auch sein, dass der, der die Aufgabe gestellt hat, dass 
Verfallsdatum für Lehrer bereits überschritten hat.

Die Älteren werden sich bestimmt noch an solche und ähnliche Speicher 
erinnern. Damals, als aus den ICs noch links und rechts eine Reihe von 
gebogenen Drähten herausgrate und man diese mit einem groben Lötkolben 
an ihren Platz löten konnte. Und Mega Bytes eine kaum vorstellbar große 
Zahl war.

von Etrick (Gast)


Lesenswert?

Und was ändert das am Prinzip?

Wer nicht versteht, wie ein 4 Taktmotor von 1920 arbeitet, der versteht 
auch nicht, wie einer von 2016 funktioniert.

Für Kochrezeptwissen kann man ins Internet, an der Uni kam man damit 
früher nicht allzu weit. Aber vielleicht sind ja Unis auch "moderner" 
geworden und es langt dort heute, wenn man auf dem Touch rumscharren 
kann?

von Carsten S. (dg3ycs)


Lesenswert?

michael_ schrieb:

> Bist du der Lehrer?
> Dieser High Speed Static RAM für Militär wird wohl nicht so recht für
> Anfänger geeignet zu sein.
> Natürlich kann man Sachen an den Haaren herbeiziehen.

Na und?
Wie A.K. schon schrieb spielt das für die Aufgabe so ÜBERHAUPT keine 
Rolle.
Dabei geht es um das grundsätzliche Verständnis sowie auch der 
Unterscheidung von Adressbus, Datenbus und der jeweiligen Busbreite.

Und JA - Ein 4Bit Ram ist für einen 8Bit Controller ungewöhnlich. Erst 
recht wenn es sich nicht um ein paar Byte wie 256x4 oder 1k x 4 aus der 
Frühzeit der µC handelt sondern um eher größere Speicher.

Ich vermute mal sehr sark ds es dem Ersteller der Aufgabe darum geht zu 
zeigen das
1. Speicherbausteine mit verschiedenen Datenwortbreiten gibt und
2. das man sich erforderliche Datenwortbreite ggf. durch 
Parallelschaltung mehrerer Bausteine mit kleineren Datenwortbreiten 
zusammenbasteln kann (muss).

Gerade das zweite war bei Mikroprozessorsteuerungen, z.b. in Messgeräten 
oder Industriegeräten mit merh als 8Bit breiten Befehlsworten oder gar 
16Bit oder gar 32Bit Prozessoren in den 80ern gar nicht so selten! Da 
gab es dann einen oder mehrere Eproms mit den unteren Bits des 
Befehlswortes und Parallel welche mit den Oberen Bits.

Und für das Verständniss dieser einen Frage spielt es überhaupt keine 
Rolle ob man die eher theoretische Variante mit 8kx4 an einem 8Bit 
breiten Bus oder die realisitschere Variante 32kx8 an einem 16Bit 
breitem Bus durchexerziert.
Aus didaktischer Sicht ist es aber sicher deutlich besser wenn man bei 
allen Betrachtungen bei einem einzigen Prozzessortyp bleibt und da 
bietet sich halt die 8Bit Welt am ehesten als Einstieg an!
(Verbreitung, Komplexität usw.)

Wer dann die ganzen (nicht all zu schweren) Gemeinsamkeiten und 
Unterschiede bei den Adress- und Datenbus verstanden hat, der kann das 
dann problemlos auf jede, WIRKLICH JEDE, tatsächlich Praxisrelevante 
Bausteinkombination umsetzen. Egal wie selten oder überhaupt existent 
die Bausteine in den Aufgabenstellungen der Übungsaufgaben waren.
Denn noch einmal: Bei diesen Aufgaben geht es ums ERLERNEN das PRINZIPS 
und NICHT um das erlernen genau dieser konkreten Bausteinkombination.
Und dafür sind die konkret genannten Bausteine nicht nur geiegnet, 
sondern in der Kombination 8Bit µC, 8Bit ROM und 4Bit RAM nicht mal eine 
schlechte Wahl. Und das der RAM dabei einen für 4Bit unüblichen 8k 
Adressraum statt
der üblichen ~1k hat ist dabei sogar eher ein Zugestndniss an die 
Realität ohne Einfluss auf den Übungseffekt. Denn man überlege mal wie 
viele 1k Bausteine man als Lösung erhalten würde und wie realistisch DAS 
wohl wäre!

Gruß
Carsten

P.S. ICh bin weder Ersteller dieser Aufgabe noch habe ich genau diese 
Aufgabe vorher überhaupt schon einmal irgendwo gelesen. Ich habe nur den 
Sinn verstanden und hätte es vermutlich nicht viel anders gestellt.

von (prx) A. K. (prx)


Lesenswert?

michael_ schrieb:
> Natürlich kann man Sachen an den Haaren herbeiziehen.

Wenn es um das grundlegende Verständnis geht ist völlig irrelevant, ob 
es einen zur Frage passenden Chip je gegeben hat. Dass eben doch es 
mindestens einen gab, ist nur eine kleine unwichtige Pointe.

Für das hier abgefragte Verständnis ist auch unwichtig, dass man Rechner 
heute nicht exakt so aus einzelnen Bauteilen aufbaut wie in der Frage 
beschrieben.

von (prx) A. K. (prx)


Lesenswert?

Carsten S. schrieb:
> Und JA - Ein 4Bit Ram ist für einen 8Bit Controller ungewöhnlich. Erst
> recht wenn es sich nicht um ein paar Byte wie 256x4 oder 1k x 4 aus der
> Frühzeit der µC handelt sondern um eher größere Speicher.

Tatsächlich gibt es dieses Szenario auch heute noch. In wohl jedem PC. 
So hat ein Speicherkanal eines aktuellen PC Prozessors 64 Bits, aber die 
Speicherbausteine auf den DRAM-Modulen haben keine 64 Bits Breite. Das 
ist auf dem Modul genau das gleiche Prinzip.

> Aus didaktischer Sicht ist es aber sicher deutlich besser wenn man bei
> allen Betrachtungen bei einem einzigen Prozzessortyp bleibt

Hehe... Alles an einem 8 Bit Prozessor lernen, um dann in der Prüfung 
von einem 16-Bit Prozessor überrascht zu werden. Dann merkt man sofort, 
wer das Prinzip verstanden hat und wer nicht.

Man könnte das spasseshalber auch umgekehrt machen. Denn zu Zeiten des
extern 16 Bit breiten 386SX konnte man daran Speichermodule finden, die 
32 Bits breit waren.

: Bearbeitet durch User
von Carsten S. (dg3ycs)


Lesenswert?

Sebastian S. schrieb:
> Es kann aber auch sein, dass der, der die Aufgabe gestellt hat, dass
> Verfallsdatum für Lehrer bereits überschritten hat.

OK
@Sebastian und Michael_
Da Ihr so sehr auf den alten/ungewöhnlichen Bausteinen herumhackt...

Ich wäre dann mal auf EUREN Vorschlag für diese Aufgabe mit demselben 
didaktischen Nutzen und einfacher "Vorsellbarkeit" mit "AKTUELLEN" und 
"PRAXISRELEVANTEN" Bausteinen gespannt.

Ich stelle mir das mit einem CortexM4 oder Pentium I7 gerade irgendwie 
etwas schwierig vor, aber ich könnte mich dabei auch Irren...

Gruß
Carsten

P.S.:eine Randbedingung dabei ist das auch die weiteren Erkrlärungen zu 
den µP Grundlagen an diesem System ähnlich verständlich wie beim 8085 
oder meinetwegen auch 8051 ausfallen können.

: Bearbeitet durch User
von michael_ (Gast)


Lesenswert?

A. K. schrieb:
> Wenn es um das grundlegende Verständnis geht ist völlig irrelevant, ob
> es einen zur Frage passenden Chip je gegeben hat. Dass eben doch es
> mindestens einen gab, ist nur eine kleine unwichtige Pointe.

Nein, deinen Chip hat es nicht zu dieser Zeit für für solche Anwendungen 
gegeben.
Mit den kurzen Schaltzeiten passt er nicht für so eine Anwendung.
Ich bin ja nicht so, und überlasse dir das letzte Wort!

Carsten S. schrieb:
> Ich vermute mal sehr sark ds es dem Ersteller der Aufgabe darum geht zu
> zeigen das
> 1. Speicherbausteine mit verschiedenen Datenwortbreiten gibt und
> 2. das man sich erforderliche Datenwortbreite ggf. durch

Du hast falsch gelesen. Die Datenbreite ist nur 8 Bit.

Carsten S. schrieb:
> Und dafür sind die konkret genannten Bausteine nicht nur geiegnet,
> sondern in der Kombination 8Bit µC, 8Bit ROM und 4Bit RAM nicht mal eine
> schlechte Wahl. Und das der RAM dabei einen für 4Bit unüblichen 8k
> Adressraum statt
> der üblichen ~1k hat ist dabei sogar eher ein Zugestndniss an die
> Realität ohne Einfluss auf den Übungseffekt.

Du bist eben ein Theoretiker.
Nach deinen 1K X 4 S-RAM gab es dann die moderneren 2...? X 8Bit S-Ram.
Natürlich gab es da auch 16 X 4 und 64 X 4 Bit. Aber als D-RAM.

Natürlich wird hier gleich A.K. andere exotische Datenblätter mit mit 
unverständlichen Schriftzeichen präsentieren.

von (prx) A. K. (prx)


Lesenswert?

Carsten S. schrieb:
> Ich stelle mir das mit einem CortexM4

Der ist vergleichsweise easy.

> oder Pentium I7

Aber der nicht. Besonders nicht, wenn man auf einem Board die 
klassischen Adress- und Datenbusse zur Kommunikation mit der I/O sucht.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

michael_ schrieb:
> Natürlich wird hier gleich A.K. andere exotische Datenblätter mit mit
> unverständlichen Schriftzeichen präsentieren.

Weshalb? Ich war nicht derjenige, der nur reale zeitgenössische 
Speicherchips in Lernaufgaben präsentiert sehen will. Mir ist es wie 
schon erwähnt vielmehr völlig egal, ob es die in einer solchen Aufgabe 
vorausgesetzten Chips je gegeben hat.

> Aber als D-RAM.

Und ergibt in der Frage der Aufteilung von Adressraum und Datenbits 
irgend einen Unterschied, ob man diese Aufgabe mit SRAM, DRAM oder 
RAMBUS(*) Chips angeht?

*: Als extremes Beispiel von Speicherchip-Interfaces.

von (prx) A. K. (prx)


Lesenswert?

michael_ schrieb:
> Du bist eben ein Theoretiker.

Ich finde es schon ziemlich merkwürdig, wie manche Leute Theorie als 
Schimpfwort verwenden. Und damit so nebenbei die Unterrichtung von 
Grundlagen als Unsinn abkanzeln.

von Mike J. (linuxmint_user)


Lesenswert?

michael_ schrieb:
> nd RAM mit 8K X 4 kenn ich eigentlich nicht.

Ist doch gar kein Problem, es sind 8 Datenleitungen vorhanden und wenn 
er zwei RAM-Module parallel schaltet bekommt das Modul für das erste 
Tupel und das für das zweite Tupel die selbe Adresse.

Zu den 4 bit:
Bei dem Fach Rechnerarchitektur haben wir auch mit den ältesten Teilen 
die verfügbar waren gearbeitet um es schön sehen zu können.
Das haben wir aber in der Vorlesung gemacht, in den Übungen haben wir 
eher simuliert und mit Assembler geschrieben.

Reset:
War immer schon null (0x0000) und natürlich im EPROM da dort das 
Programm liegt und der Befehlszeiger auf die Ausgangsposition zeigen 
muss.

zu dem Speicher:
2^16 = 65536
(2^16)/1024 = 64k

Hälfte davon als RAM adressieren: 32kByte
Hälfte davon als ROM adressieren: 32kByte

> ROM-Bausteine mit der Organisation 16K x 8 (16kByte)
> RAM-Bausteine mit der Organisation  8K x 4 ( 4kByte)

ROM-Bausteine: 32k/16k = 2 Stück
RAM-Bausteine: 32k/4k  = 8 Stück

zu den Adressleitungen:
32k = 32*1024 = Adressen
log(32*1024)/log(2) = 15Bit = 15 Leitungen

Mit der 16. Leitung wählst du quasi aus auf welche Module du zugreifen 
willst, auf die RAM oder ROM-Module.
Ein Byte wird aus den ROM in ein Register des Prozessors geschoben, dann 
schaltet man das 16. Byte um ... meinetwegen von High auf LOW und dann 
schiebt man das Byte in den RAM.
Natürlich schaltet man den Pin nicht händisch um, sondern wählt einfach 
eine Adresse mit dem entsprechenden Offset um eine Adresse im anderen 
Speicherbereich adressieren zu können.

von (prx) A. K. (prx)


Lesenswert?

Mike J. schrieb:
> War immer schon null (0x0000)

Wo bei einer Architektur der Reset loslegt ist recht verschieden. Das 
kann 0 sein, muss aber nicht.

von michael_ (Gast)


Lesenswert?

A. K. schrieb:
> Weshalb? Ich war nicht derjenige, der nur reale zeitgenössische
> Speicherchips in Lernaufgaben präsentiert sehen will. Mir ist es wie
> schon erwähnt vielmehr völlig egal, ob es die in einer solchen Aufgabe
> vorausgesetzten Chips je gegeben hat.

Doch, du hast einen Cache-Chip ins Spiel gebracht.

A. K. schrieb:
> michael_ schrieb:
>> Du bist eben ein Theoretiker.
>
> Ich finde es schon ziemlich merkwürdig, wie manche Leute Theorie als
> Schimpfwort verwenden.

Es ist nur eine Feststellung.

Auch in der Lehre müssen Theorie und Praxis eine Einheit bilden.
Auf einem Gebiet, wo man sich aufplustert und keine Ahnung hat, braucht 
man sich über Kritik nicht wundern.

Mike J. schrieb:
> michael_ schrieb:
>> nd RAM mit 8K X 4 kenn ich eigentlich nicht.
>
> Ist doch gar kein Problem, es sind 8 Datenleitungen vorhanden und wenn
> er zwei RAM-Module parallel schaltet bekommt das Modul für das erste
> Tupel und das für das zweite Tupel die selbe Adresse.

Es gab die aber als Baustein nicht.

Mike J. schrieb:
> Zu den 4 bit:
> Bei dem Fach Rechnerarchitektur haben wir auch mit den ältesten Teilen
> die verfügbar waren gearbeitet um es schön sehen zu können.
> Das haben wir aber in der Vorlesung gemacht, in den Übungen haben wir
> eher simuliert und mit Assembler geschrieben.

An einem 8-Bit Prozessor ist das nur eine technische Notlösung.

Mike J. schrieb:
> Reset:
> War immer schon null (0x0000) und natürlich im EPROM da dort das
> Programm liegt und der Befehlszeiger auf die Ausgangsposition zeigen
> muss.

In der späteren 8-Bit-Zeit bestand der 64K-Speicher aus D-Ram.
Über eine Mimik wurde auf E000H ROM o.ä. gesprungen, dann der ROM in den 
RAM kopiert, das Betriebssystem geladen und angesprungen.
Bei heutigen PC ist das ähnlich.

von H.Joachim S. (crazyhorse)


Lesenswert?

Interessante Diskussion um eine rel. simple Frage :-)
Fürs Prinzipverständnis fand ich die Aufgabenstellung gar nicht so 
schlecht. Praktischer Nutzen allerdings gering.

Ich seh noch meine sorgsam gefädelten 48kB aus vielen 2114 vor mir - 
mein Gott, das ist >30 Jahre her :-)

von Carsten S. (dg3ycs)


Lesenswert?

Hi,

eigendlich ist es ja egal, aber manchmal gibt man die Hoffnung auf ein 
wenig Einsicht doch nicht auf, daher noch ein Versuch:

michael_ schrieb:
> A. K. schrieb:
>> Wenn es um das grundlegende Verständnis geht ist völlig irrelevant, ob
>> es einen zur Frage passenden Chip je gegeben hat. Dass eben doch es
>> mindestens einen gab, ist nur eine kleine unwichtige Pointe.
>
> Nein, deinen Chip hat es nicht zu dieser Zeit für für solche Anwendungen
> gegeben.
> Mit den kurzen Schaltzeiten passt er nicht für so eine Anwendung.
> Ich bin ja nicht so, und überlasse dir das letzte Wort!

@Michael:
Was genau hast du an der Aussage: "Es ist völlig Irrelevant ob es einen 
solchen Chip je gegeben hat" nicht verstanden?
Das ist ein Didaktisches Lernbeispiel bei dem die Vorgaben gezielt so 
gemacht wurden damit man bestimmte Grundlagen erlernt und anwendet.
Das ist KEIN BAUSCHVORSCHLAG für eine angeblich besonders tolle 
Schaltung.

Das es entgegen deiner Aussage einen solchen IC gibt und A.K. den aus 
dem Hut Zaubern konnte ist dabei nur eine nette, aber völlig Irrelevante 
Nebensache.
By the Way: Wann ist deiner Meinung "zu dieser Zeit?"
IMHO wird der TO diese Aufgabe in den letzten Tagen erhalten haben...

>
> Carsten S. schrieb:
>> Ich vermute mal sehr sark ds es dem Ersteller der Aufgabe darum geht zu
>> zeigen das
>> 1. Speicherbausteine mit verschiedenen Datenwortbreiten gibt und
>> 2. das man sich erforderliche Datenwortbreite ggf. durch
>
> Du hast falsch gelesen. Die Datenbreite ist nur 8 Bit.

HÄÄH?
Wo genau geht aus deinem Zitat etwas eine Aussage über die Datenbreite 
hervor? Oder wo habe ich überhaupt etwas gegenteiliges behauptet als das 
die Datenbreite des µC in der Aufgabe 8Bit sind?

Es geht darum das der Bearbeiter der Aufgabe lernt/vertieft das es 
Speicherbausteine mit verschiedenen Datenbreiten gibt, was das in der 
praktischen Anwendung bedeutet und warum damit z.B.

Peter93 schrieb:
> ein 8 Bit Prozessor mit 16Bit Datenbus
> [...]
> und 3 RAM
> 64k-16k= 48k
> 48k= 3*16k
>
> Richtig?

NIEMALS die richtige Lösung sein kann. NICHT einmal in der Theorie.
Dafür ist diese Aufgabe da, damit derjenige später in realen 
Anwendungsfällen merkt das seine Berechnung für ein 64Bit Speichermodul 
bestehend aus 5 gleichen Ram-IC falsch ist bevor er die Multilayer 
Platine routet und teuer fertigen lässt.

Aber klar, wer die Grundlagen nie gelernt hat und diese auch noch dazu 
als Unwichtig abtut, der merkt so etwas nicht...
michael_ schrieb:
> Rene V. schrieb:
>> Peter93 schrieb:
>>> Richtig?
>>
>> Nein.
>
> Theoretisch, Ja.

bzw.

Stefan K. schrieb:
> Das ist korrekt.
>
> Herzliches Beileid zu Deinem lernresistenten Professor - der scheint
> seine Aufgaben seit 35 Jahren nicht angepasst zu haben.

q.e.d.

>
> Carsten S. schrieb:
>> Und dafür sind die konkret genannten Bausteine nicht nur geiegnet,
>> sondern in der Kombination 8Bit µC, 8Bit ROM und 4Bit RAM nicht mal eine
>> schlechte Wahl. Und das der RAM dabei einen für 4Bit unüblichen 8k
>> Adressraum statt
>> der üblichen ~1k hat ist dabei sogar eher ein Zugestndniss an die
>> Realität ohne Einfluss auf den Übungseffekt.
>
> Du bist eben ein Theoretiker.
Klar, so ein typischer Theoretiker der seit Jahren sein Geld damit 
verdiene µC Schaltungen zu entwickeln und zu Programmieren. Dazu dann 
noch betreung von Azubis sowie Grundlagenvermittlung an interessierte 
Arbeitskollegen (EGSler), Praktikanten sowie auch im Bekanntenkreis.
Nee - Ich bin Praktiker UND Theoretiker.
Jemand der einmal Wissen anwenden kann, aber dabei die notwendig von 
Grundlagenwissen kennt UND VOR ALLEM DEN UNTERSCHIED ZWISCHEN EINER 
DIDAKTISCH SINNVOLLEN ÜBUNGSAUFGABE UND EINER REALEN SCHALTUNG KENNT.

> Nach deinen 1K X 4 S-RAM gab es dann die moderneren 2...? X 8Bit S-Ram.
ACH JA? WIRKLICH? Du verarscht mich jetzt auch nicht???
Meine Güte, wenn du mir das jetzt nicht erzählt hättest, dann hätte ich 
wohl nie erfahren was das für komische Bausteine waren die ich so in 
meine ersten Übungsentwürfe mit dem SAB80C535 ende der 90er verbaut habe 
und was hier noch so Stangenweise rumliegt... Ich dachte immer das seit 
etwas zum essen was man nur der Optik einbaut...

HALLO... Es ist wohl gerade einer DER entscheidender Punkte dieser 
Aufgabenstellung das hier verschiedene Speicher mit UNTERSCHIEDLICHEN 
Datenbreiten verwendet werden. Und da sind 4Bit RAMs immernoch deutlich 
realitätsnäher als 4 Bit (E)PROM (Gab/gibt es die überhaupt als EProm? 
kenne die nur als Bipolare Proms wie Fujitsu MB7128...)

Die Verwendung von Bausteinen mit identischer Datenbreite würde dem Sinn 
dieser Aufgabenstellung zuwieder laufen.
NOCH EINMAL: Es geht nicht darum eine "praxisrelevante" Schaltung 
aufzubauen sondern um ds Erlernen und Anwenden von GRUNDLAGENWISSEN!

Aber was rege ich mich auf...
Es ist ja schon bezeichnend das es gerade zwei der deutlichsten Kritiker 
dieser Art von "historisch angehauchten" Aufgaben sind die deutlich 
zeigen das die nicht einmal die einfachsten Grundlagen verstanden haben 
und die (geradezu für die typischen Verständnisfehler Musterhafte) 
Fehlerhafte Lösung als vermeintlich richtig bestätigen...
Dem TE ist es ja zugestanden. Er hat gefragt, da darf man auch noch 
einmal falsch liegen. So funktioniert lernen.

Aber lauthals den Sinn einer Aufgabe verneinen und dann auf genau den 
Fehler reinfallen der durch diese Übungen im realen Leben dann nicht 
mehr passieren soll ist einfach nur peinlich!


Gruß
Carsten

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.