Here you can ask questions and find or give answers to organizational, academic and other questions about studying computer science.

1.1k questions

1.3k answers

1.7k comments

556 users

0 votes
Die Frage bezieht sich auf Folie 5-10. Wenn ich es richtig verstanden habe, dann muss mit dem Eingang address (mit n Bits) ermittelt werden, welcher Tri-State in SRAM zu data_out durchgeschaltet wird. Aber benötigt man dafür nicht auch einen n:1-Multiplexer? Oder habe ich etwas grundlegend falsch verstanden?

Vielen Dank für alle Beiträge!
in * TF "Emb. Sys. and Rob." by (1.1k points)

2 Answers

+1 vote
 
Best answer

To illustrate the explanation, perhaps these small examples help (it helped me). A 4:1 multiplexer is implemented using two-level logic minimization with classic gates (AND,OR,NOT) in the first figure, and using tri-state gates in the second figure. In the context of memory, this may be imagined as selection from 1 bit (at same position) in 4 (2^n in general) words using 2 (n in general) address bits. Note that the OR gate in the first implementation has a fan-in of 2^n (requires that many gates and a depth of O(n) to implement). Clearly the implementation using tri-state buffers scale better!

by (2.5k points)
selected by
+1 vote
Die Tristate-Gatter vereinfachen den Aufbau: Wenn man aus 2^n Wörtern eines auswählen möchte, würde man hierfür einen Multiplexerbaum mit O(2^n) Multiplexer mit einer Tiefe vn O(n). Bei der Verwendung von Tristate-Gattern kann man alle Speicherwörter über Tristategatter direkt mit dem Datenbus verbinden. Die Tristategatter dürfen natürlich nur durchschalten, wenn das entsprechende Speicherwort addressiert worden ist. Hierzu muss man die n Adressbits mit den Adressbits des Speicherwortes vergleichen, was mit O(n) Gattern und einer Tiefe von log(n) geht. Man spart also tatsächlich einiges ein. Bei der herkömmlichen Schaltungslogik kann man zwar auch das richtige Speicherwort in derselben Art und Weise "identifizieren", aber man benötigt dennoch einen Multiplexerbaum um das aktivierte Wort unter allen Speicherwörtern aufzufinden.

Die Situation is vergleichbar mit verschiedenen PRAM-Maschinenmodellen, welche sich in EREW, CREW CRCW usw. unterteilen, je nachdem exclusive/concurrent read und/oder exclusive/concurrent write erlaubt wird. Auch dort kann man O(log(n)) Zeit einsparen, aber nicht mehr.

[English Translation (thanks to www.DeepL.com):]

The tristate gates simplify the construction: If you want to select one of 2^n words, you would use a multiplexer tree with O(2^n) multiplexers with a depth of vn O(n). If you use tristate gates, you can connect all memory words directly to the data bus using tristate gates. Of course the tristate gates should only be connected if the corresponding memory word has been addressed. For this, you have to compare the n adress bits with the adress bits of the memory word, which is possible using O(n) gates and a depth of log(n). So, there are indeed some savings. Using the traditional circuit logic you can "identify" the right storage-word in the same way, but you still need a multiplexer tree to find the activated word among all memory words.

The situation is comparable to different PRAM machine models, which are divided into EREW, CREW CRCW etc., depending on whether exclusive/concurrent read and/or exclusive/concurrent write is allowed. Also there you can use O(log(n)) Save time, but no more.
by (170k points)
Imprint | Privacy Policy
...