Re: bytegroesse, was endianess/Re: audio-cd

From: Michael Haertl <michael.haertl(at)gmx.net>
Date: Fri, 22 Mar 2002 15:24:48 +0100

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 message
Received on Fri 22 Mar 2002 - 15:27:44 CET

search this site