Oliver Fromme wrote:
> Michael Haertl wrote:
> > Oliver Fromme wrote:
> > > [...]
> > > Hinzu kommt auch, daß es Plattformen gibt, wo es gar nicht
> > > möglich ist, einzelne Bytes zu lesen, z.B. auf Alpha. Da
> > > _kann_ der Prozessor nur ein ganzes Wort aus dem Speicher
> > > lesen. Wenn ein Programm nur ein Byte braucht, muß es
> > > durch Maskierungs- und/oder Verschiebeoperationen heraus-
> > > gefiltert werden.
Wenn das in Software passiert, dann klingt das nach uferlos
Overhead.
> > ["Verschwendung", d.h. z.B. sizeof(char) == sizeof(long)]
> > Fuer den Standardfall (z.B. logische Variablen,
> > "kleine" Schleifenzaehler) ist dann eigentlich kein Workaround
> > notwendig.
>
> Verstehe ich nicht, wozu ein Workaround?
Ja eben das Shiften/Maskieren beim extrahieren von Octetts aus
einem "Word" meinte ich.
> Der Punkt ist aber, daß Speicherzugriffe (auf's RAM) nur
> Wortweise erfolgen können (32 und 64 Bit), nicht Byteweise.
Das Businterface des Prozessors macht das ohnehin so (s.u.).
Wenn "LoadByte/StoreByte" im Befehlssatz des Prozessors nicht
mehr vorhanden ist, dann macht es m.E. kaum Sinn z.B. 4 "chars"
in ein Speicherwort zu packen. Das Extrahieren eines chars
aus diesem Wort kostet Codesize und Performance, Speicher
hingegen so gut wie nix (naja, ok, nicht ganz).
Christian Weisgerber wrote:
> Michael Haertl wrote:
> > Ferner wundert es mich schon, dass ein Alpha ein 64bit-
> > Register nicht in 8 atomaren Einheiten ansprechen kann.
> Kann er. Alphas können mit Bytes hantieren, es gibt einige ganz
> interessante Befehle dafür [...]
Aha, also doch. Das klingt schon wesentlich interessanter als
Shiften/Maskieren in Software (finde ich).
Oliver Fromme wrote:
> Ferner muß jeder [externe] Zugriff auch »aligned« sein, sonst
> gibt's einen Prozessor-Trap.
Das gabs m.W. doch auch schon beim m68k (?).
> > Dass
> > auf dem externen Buss nur noch Woerter (und meist nur noch in
> > Bursts) transportiert werden ist ja aufgrund der Cache-
> > Hierarchien und Zugriffszeiten kaum anders sinnvoll.
>
> Stimmt. Da sieht man mal wieder, wie unsinnig die i386-
> Architektur von intel ist ...
Den Zusammenhang verstehe ich nicht, das ist schliesslich fast
ueberall aehnlich geloest, so eben auch beim Pentium-X.
-- /* Michael Haertl */ To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Fri 22 Mar 2002 - 15:27:44 CET