SRAM Leistungsverbrauch

Hi

Ich wuerde gerne mal grob den Leistungsverbrauch eines SRAM Caches abschaetzen. Dabei muss ich den statischen und dynamischen Leistungsverbrauch beruecksichtigen. Der dynamische Anteil setzt sich zusammen aus dem Leistungsverbrauch der Auftritt bei einem Schaltvorgang und dem laden bzw. entladen der Lastkapazitaeten. Der statische Anteil setzt sich eigentlich nur aus den Kriechstroemen zusammen. Weiss hier jemand wieviel Prozent am Leistungsbedarf die Kriechstroeme ausmachen? Es gibt auch die Idee von Gated Caches, d.h. hier werden Cacheslines, auf die nicht zugegriffen wird, abgeschaltet. Hat hier jemand eine grobe abschaetzung wieviel Watt ich hier durch abschalten einer Cacheline rausholen kann?

Danke!

Reply to
Patrick
Loading thread data ...

"Patrick" schrieb im Newsbeitrag news: snipped-for-privacy@n59g2000hsh.googlegroups.com...

Das ist ein Fertigungsparameter an dem staendig gedreht wird, Pentiums haben damit beispielsweise ein Problem nd suchen ni der Fertigung staendig eine Kompromiss zwischen schnell und geringem 'Kriechstrom'.

Abgeschaltet ist ein hartes Wort. Die Versorgungsspannung wird reduziert, auf einen Wert bei dem die SRAM-Zellen noch gerade die Daten halten. Welcher Wert das ist, muss man von Chip zu Chip ausprobieren, oder man bleibt eben deutlich ueber dem Minimum.

Nichts, denn du kannst Caches nicht selber bauen, sondern musst nehmen was angeboten wird, oder ?

Da aber 99.99% aller Cachelines mit weniger als 10% des ueblichen 'Kriechstroms' laufen, und das Wieder-Einschalten den dynamischen Stromverbrauch erhoeht, ist die Einsparung kein fester Wert.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

Danke erst mal fuer das Feedback

Was ich gelesen habe, muss man unterscheiden zwischen state-losing und state-preserving caches. Bei state-losing caches wird die Cache Line wirklich auf Ground gelegt, verliert also die Information. Bei state-preserving wird wie du beschrieben hast die Versorgungsspannung reduziert, damit die SRAM-Zelle die Information noch halten kann.

Angenommen ich messe den statischen Leistungsverbrauch eines SRAM Arrays, koennte ich hier einen Unterschied detektieren ob nun 10 Cache Lines "abgeschaltet" sind oder nicht? Mich wuerde nur interessieren in was fuer einer Groessenordnung sich das ganze bewegt, bei einer beliebigen Technologie.

Reply to
Patrick

"Patrick" schrieb im Newsbeitrag news: snipped-for-privacy@n59g2000hsh.googlegroups.com...

Sicher kannst du einen Unterschied messen, sonst wuerde das Abschalten keinen Sinn machen.

Du kannst aber durch Messen nicht feststellen, ob es ein Cache ist, das sowieso wenig Leckstrom hat, oder eines, das den verbleibenden Leckstrom durch Spannungsreduzierung erreicht.

Und es interessiert sich als Kunde auch nicht, dich interessiert nur die tatsaechliche Stromaufnahme.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

In meinem Fall probiere ich genau das. Angenommen ich habe einen Cache der jede 5000 Zyklen ALLE Cachlines abschaltet. Nun messe ich den Leistungsverbrauch des Caches der sollte gegen 0 gehen, da alle SRAM Zellen auf Ground liegen. In den naechsten 5000 Zyklen werden 10 Cachelines in meinem Cache geladen, ich erhalte dann einen Leistungsverbrauch der sich aus dem dynamischen plus dem Kriechstrom zusammensetzt. Alle Cachelines werden wieder auf Ground gesetzt und in den naechsten

5000 Zyklen werden nun 20 Cachelines geladen. Meine Frage ist nun ob ich hier am Leistungsverbrauch des Caches Rueckschluesse ziehen kann wieviel Cachelines in den Cache geladen wurden. Oder bewegt sich diese Differenz im Bereich von ein paar pW, welche ich praktisch mit keinem Messgeraet messen kann?

Besten Dank wieder mal!

Reply to
Patrick

"Patrick" schrieb im Newsbeitrag news: snipped-for-privacy@y80g2000hsf.googlegroups.com...

Wie soll das gehen ? Nach dem alle cache lines, also auch diese 20, wieder abgeschaltet wurden, ist das Cache leer und 'weiss' nicht mehr wie viele Lines geladen wurden.

Nur in der kurzen Zeit der 500 Zyklen, in der das Cache die 20 Lines speichert, ist der statische Stromverbrauch doppelt soch hoch, wie in der Zeit, in der es nur 10 Lines speichert.

Waehrend das Cache die Lines einlagert bzw. auf die gespeicherten Lines zugreift, ist der dynamische Stromberbrauch natuerlich noch hoeher, also darf man sich nur die statischen Momente der Zeit herausuchen, in der das Cache diese 20 Lines noch aktiv speichert.

Ich frag mich, was deine Fragestellung soll ? Ausser das man einen cryptographischen uC von aussen beobachten will, macht die Analyse doch keinerlei Sinn.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

Newsbeitragnews: snipped-for-privacy@y80g2000hsf.googlegroups.com...

Richtig erraten, auf genau dieses Beobachtung laeuft es hinaus. Kann ich diesen Unterschied an aktiven Cachelines erkennen, kann ich Rueckschluesse auf den Schluessel ziehen. Lassen wir den dynamischen Stromverbrauch kurz aussen vor, und beobachten nur den statischen Stromverbrauch. Kann ich hier einen Unterschied von 10 aktiven Cachelines mehr oder weniger auch mit einem Messgeraet erfassen? Oder ist hier das Signal-to-noise ratio zu klein um irgendwelche Rueckschlusse ziehen zu koennen?

Besten Dank soweit fuer deine Hilfe!

Reply to
Patrick

"Patrick" schrieb im Newsbeitrag news: snipped-for-privacy@n59g2000hsh.googlegroups.com...

Ein reines Cache macht kryptographisch keinen Sinn, da koennte man ja die Daten an den Pins abgreifen. Also gehoert zum Cache ein Prozessor auf demselben Chip, und wenn der ein Cache braucht ist es ein grosser Prozessor mit viel Speicher, und der wird mehr Stromsauerei machen, als das aus denen noch Rueckschluesse ueber DEN INHALT des Caches gezogen werden koennen, denn nur der prozentual aktive Teil des Cache hilft ja nicht weiter. Wenn man aber den Takt kurz anhaelt, falls man das kann, und der Prozessor nicht seinerseits mit dnamischem Stilllegen von Teilbereichen arbeitet, wird man schon erkennen koennen, ob nun 10 cache lines mehr aktiv sind.

Da man sich solche Qual aber nicht antum muss, so lange man den Chip nackt unter ein Mikroskop legen kann, weil die Felder auf seiner Oberseite eine Fluessigkeit? beeinflussen die man sehen kann, bringt eine Absicherung des unbequemen Wegs auch nix.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

Macht Sinn, wir wuerden mit einem On-Chip L1 Cache arbeiten. Da wir im Moment auf einen solchen Cache mit Stromsparmodus keinen Zugriff haben, versuchen wir das ganze zu simulieren und damit bekommt das ganze einen eher theoretischen Charakter. Jedoch waere trotzdem interessant zu wissen welchen statischen Stromverbrauch eine Cacheline ungefaehr verursacht. Hast du hier vielleicht eine ungefaehre Abschaetzung?

Danke

Reply to
Patrick

"Patrick" schrieb im Newsbeitrag news: snipped-for-privacy@e65g2000hsc.googlegroups.com...

Nein, weil, wie geschrieben, das ein Prozessparameter der Dotierung ist. Von fast 0 (es gibt sehr gute CMOS-Chips, aber nur kleine, soll heissen mit grober Struktur) bis Milliamperes kann der Hersteller alles einstellen, er waehlt einen Kompromiss.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

Das war schon sehr hilfreich, vielleicht noch eine allgemeine Frage um den statischen Stromverbrauch anzunaehern.

Als Zelle benutzen wir eine 6T RAM Zelle. Nun berechnen wir den Stromverbrauch fuer eine Bitline von 6T RAM Zelle und speichern diese in bitline_data. Desweitern berechnen wir den Stromverbrauch einer 6T Ram Zelle und speichern diese in cell_data. Der Stromverbrauch der Bitlines muss noch mit der Anzahl der Ports num_ports multipliziert werden. Hab ich nun eine aktive Cacheline, so berechnet sich deren statischer Stromverbrauch wie folgt:

(bitline_data * num_ports + cell_data) ("Verbrauch pro Bit") * 16 (Anzahl der Bytes pro Cachline) * 8 (Anzahl der Bits pro Cacheline)

Ist dieser Denkansatz richtig, oder muss in diese Formel auch noch das Hammingweight der gespeicherten Daten eingehen?

Cheerios!

Reply to
Patrick

"Patrick" schrieb im Newsbeitrag news: snipped-for-privacy@n59g2000hsh.googlegroups.com...

bzw.

Bitbelegung (0 oder 1) ist egal, die Zellen sind spiegelsymmetrisch.

Dumm nur, das der Verbrauch pro Bit von Wafer zu Wafer (und ein bischen sogar Chipregion zu Chipregion) unterschiedlich ist.

Ein Bit speichert auch ein MC14013, und der braucht nach Hersteller bei 25 GradC typisch 2 nA (also 1 nA pro statischer Bitzelle), kann aber auch mal 1 uA (Maximumwert, vorher darfst du den Chip nicht zurueckgeben :-) brauchen, und wird oft auch ebensoviel weniger als 1nA brauchen, also 1pA.

Den Hersteller interessiert der Threshold und die damit erreichbare Verstaerkung (Steilheit) bzw. Niederohmigkeit im Einschaltmoment der MOS Transistoren, und er muss diese gegen den Leckstrom des ausgeschalteten Transistors stellen, denn an der Ugs/Rds-Kurvenform kann er nichts aendern, die ist physikalisch vorgegeben.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

Sehr gut, dann koennte ich also so schon mal den statischen Stromverbrauch annaehern. Besten dank auch fuer die ganze Hintergrundinfo!

Mir ist grade noch was anderes eingefallen. Und zwar sind wir ja einer Meinung, dass der statische Stromverbrauch wenn wir von On-Chip Cache ausgehen nicht wirklich messbar sein wird. Der dynamische Stromverbrauch des Caches ist jedoch ungleich hoeher und meine Ueberlegung ist folgende: Wenn der Cache alle 5000 Zyklen leergeraeumt wird, so muessen die Daten jedesmal wieder neu in den Cache geladen werden. In diesem Ladevorgang muessen die ganzen Kapazitaeten umgeladen werden und der Kurzschlussstrom kommt auch noch dazu. Kann ich vielleicht dies an den Spitzen beim Leistungsverbrauch erkennen? Umso mehr solche Spitzen auftreten, umso mehr Cachelines wurden in den Cache geladen! Dies koennte unter Umstaenden doch auch in der Praxis funktionieren oder nicht, abhaendig ob der dynamische Leistungsverbrauch gross genug ist!

Reply to
Patrick

Habe nun gerade mal versucht den statischen Leistungsbedarf nach oben genannter Formel zu berechnen. Habe dabei einen Cache mit 512 Lines a 16 Byte verwendet. Angenommen alle Cachelines sind mit Daten geladen worden, dann erhalte ich folgenden Leistungsbedarf mit der 0.07 Technologie

Tagarray_power (W): 0.0021203 Datarray_power (W): 0.00512072

Kann das stimmten? Das wuerde heissen eine Cacheline verbraucht nur

10uW. Da bringt ein abschalten ja kaum etwas...
Reply to
Patrick

"Patrick" schrieb im Newsbeitrag news: snipped-for-privacy@o5g2000hsb.googlegroups.com...

Ja red ich gegen eine Wand?

Noe. Sind wird nicht einer Meinung. Wenn er nicht messbar waere, wuerde es kene Sinn machen, es dynamisch abzuschalten. Ich schrieb:

Es sind ja nur 64kBit, dennoch hat dein Hersteller den Prozess gut im Griff, wenn er um 20nA pro Gatter garantiert. Vermutlich ist das nur der typische Wert, mit Schwankungen von 1nA bis 1uA. Dann ist einerseits deine Rechnung witzlos, andererseits kann man 200uW mehr oder weniger Leistungsaufnahme (20 cache lines aktiv) eines Chips durchaus messen - wenn er angehalten wird. Schwankt die Stromaufnahme eh um 10 Watt, wird man auf diese 200uW kaum noch was folgern koennen.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

Ich kann nicht voraussetzen, dass ich den Chip anhalten kann. Daher ist dieser Angriff wirklich nur theoretischer Natur. Aber ist der andere Ansatz den dynamischen Leistungsverbrauch vom Cache zu messen nicht besser? In diesem Falle muesste ich eigentlich jedensmal einen Peak bekommen wenn was neues in den Cache geladen wird und die Kapazitaeten umgeladen werden muessen sowie auch ein Kurzschlussstrom fliesst. Umso oefter ich ein Peak erkenne, umso mehr Daten wurden in den Cache geladen. Dieser dynamische Leistungsverbrauch sollte sich doch in einer anderen Klasse bewegen und somit hoffentlich auch messbar sein?

Reply to
Patrick

"Patrick" schrieb im Newsbeitrag news: snipped-for-privacy@u30g2000hsc.googlegroups.com...

Also das letzte Mal, als ich die dynamische Stromaufnahme vermessen habe, war das noch ein 4116 16kBit DRAM. Zwar gab es bei jedem Zugriff Peaks, aber aus den Peaks konnte man nichts entnehmen, die waren einfach zu unterschiedlich.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

Die dynamische Stromaufnahme haengt ja auch vom Hammingweight ab, somit kommt es durch die Datenabhaengigkeit zu unterschiedlichen Peaks. Ich denke mir, da koennte man mit mehreren Messung und unterschiedlichen Daten durch Korrelation die Peaks schon rausfiltern. Jetzt muss ich mich nur noch schlau machen wie ich die dynamische Komponente annaehere ;)

Reply to
Patrick

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.