Re: unaligned load/store (was: Re: Keeping other stuff with addresses)

Liste des GroupesRevenir à c arch 
Sujet : Re: unaligned load/store (was: Re: Keeping other stuff with addresses)
De : anton (at) *nospam* mips.complang.tuwien.ac.at (Anton Ertl)
Groupes : comp.arch
Date : 22. Dec 2024, 11:33:01
Autres entêtes
Organisation : Institut fuer Computersprachen, Technische Universitaet Wien
Message-ID : <2024Dec22.113301@mips.complang.tuwien.ac.at>
References : 1 2 3 4 5 6 7 8
User-Agent : xrn 10.11
Jonathan Thornburg <jonathan@gold.bkis-orchard.net> writes:
And some cases are even harder
(e.g., misaligned writes crossing L1 D-cache line boundaries where the
two lines are owned by different CPUs in a cache-coherent multiprocessor)
and might need a millicode trap.

Made me look up "millicode".  Anything at all might need a millicode
trap on implementations that use millicode, but I don't see any
particular issue here that would make millicode particularly relevant.

And some cases may require going all the
way up to the OS (e.g., misaligned writes that cross virtual-memory-page
boundaries where one page is ok but the other is non-resident).

Again, sure, if you access a page that is not present, the hardware
traps to the OS to make that page present, but that's also the case
without unaligned accesses; and with software emulation of unaligned
accesses, as on Alpha with, e.g., UAC_NOPRINT, every unaligned access
traps to the OS.  Ist this better?

And, because of the traps and their overheads (which will likely differ
significantly across different implementations of the same architecture,
e.g., different multiprocessor cache-coherency protocols), any code that
actually *uses* unaligned accesses -- especially unaligned writes -- isn't
performance-portable unless the actual dynamic frequency of unaligned
operations is very low.

Possible, but hardly relevant.  E.g., I am interested in such things
and I was completely unaware of the penalties of unaligned stores
until I measured them: <http://al.howardknight.net/?ID=143135464800>
<https://www.complang.tuwien.ac.at/anton/unaligned-stores/>.  I expect
that even among performance-conscious programmers, only a small
minority knows more than to avoid them, when it's cheaply possible.

Maybe some (probably more than are aware of actual costs) think that
they should avoid them at all cost, and then use e.g., bytewise
approaches for hashing strings than the on-average faster approaches
that fetch string data as wide as is practical and hash that.

So yes, allowing unaligned access does help "dusty deck" Fortran code...
but it comes at a significant cost.

It's not just dusty deck Fortran code.

And the cost for not supporting unaligned accesses is higher.  There's
a reason why all surviving general-purpose architectures support
unaligned accesses.

- anton
--
'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
  Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>

Date Sujet#  Auteur
28 Nov 24 * What is an N-bit machine?91John Dallman
28 Nov 24 +* Re: What is an N-bit machine?67Michael S
30 Nov 24 i`* Re: What is an N-bit machine?66John Levine
30 Nov 24 i +* Re: What is an N-bit machine?11Stephen Fuld
30 Nov 24 i i`* Re: What is an N-bit machine?10John Levine
30 Nov 24 i i +* Re: What is an N-bit machine?2Michael S
1 Dec 24 i i i`- Re: What is an N-bit machine?1Paul A. Clayton
1 Dec 24 i i `* Re: What is an N-bit machine?7MitchAlsup1
1 Dec 24 i i  +* Re: What is an N-bit machine?2Thomas Koenig
1 Dec 24 i i  i`- Re: What is an N-bit machine?1Anton Ertl
2 Dec 24 i i  `* Re: What is an N-bit machine?4Terje Mathisen
3 Dec 24 i i   +* Re: What is an N-bit machine?2Brian G. Lucas
3 Dec 24 i i   i`- Re: What is an N-bit machine?1Stephen Fuld
15 Dec 24 i i   `- Re: What is an N-bit machine?1Waldek Hebisch
30 Nov 24 i `* Keeping other stuff with addresses (was: What is an N-bit machine?)54Anton Ertl
30 Nov 24 i  +* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)22Anton Ertl
30 Nov 24 i  i`* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)21Thomas Koenig
30 Nov 24 i  i `* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)20Anton Ertl
30 Nov 24 i  i  `* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)19Michael S
30 Nov 24 i  i   `* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)18Anton Ertl
30 Nov 24 i  i    +* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)12Michael S
1 Dec 24 i  i    i`* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)11Anton Ertl
1 Dec 24 i  i    i `* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)10Thomas Koenig
1 Dec 24 i  i    i  +* Re: Keeping other stuff with addresses4David Schultz
1 Dec 24 i  i    i  i`* Re: Keeping other stuff with addresses3Thomas Koenig
4 Dec 24 i  i    i  i `* Re: Keeping other stuff with addresses2MitchAlsup1
4 Dec 24 i  i    i  i  `- Re: Keeping other stuff with addresses1John Levine
1 Dec 24 i  i    i  `* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)5Tim Rentsch
1 Dec 24 i  i    i   +* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)3Thomas Koenig
1 Dec 24 i  i    i   i+- Re: Keeping other stuff with addresses (was: What is an N-bit machine?)1Michael S
1 Dec 24 i  i    i   i`- Re: Keeping other stuff with addresses (was: What is an N-bit machine?)1Brett
2 Dec 24 i  i    i   `- Re: Keeping other stuff with addresses1Terje Mathisen
30 Nov 24 i  i    +* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)3John Levine
1 Dec 24 i  i    i`* What is an N-bit machine?2Anton Ertl
16 Dec23:39 i  i    i `- Re: What is an N-bit machine?1Waldek Hebisch
1 Dec 24 i  i    `* Re: Keeping other stuff with addresses (was: What is an N-bit machine?)2Thomas Koenig
1 Dec 24 i  i     `- Re: Keeping other stuff with addresses (was: What is an N-bit machine?)1Anton Ertl
1 Dec 24 i  +- Re: Keeping other stuff with addresses (was: What is an N-bit machine?)1Anton Ertl
2 Dec 24 i  +* Re: Keeping other stuff with addresses28Chris M. Thomasson
2 Dec 24 i  i`* Re: Keeping other stuff with addresses27MitchAlsup1
2 Dec 24 i  i `* Re: Keeping other stuff with addresses26Chris M. Thomasson
3 Dec 24 i  i  `* Re: Keeping other stuff with addresses25Chris M. Thomasson
3 Dec 24 i  i   `* Re: Keeping other stuff with addresses24Stefan Monnier
3 Dec 24 i  i    +* Re: Keeping other stuff with addresses21John Levine
3 Dec 24 i  i    i+* Re: Keeping other stuff with addresses18Stefan Monnier
4 Dec 24 i  i    ii`* Re: Keeping other stuff with addresses17John Levine
4 Dec 24 i  i    ii `* Re: Keeping other stuff with addresses16Stefan Monnier
4 Dec 24 i  i    ii  +* Re: Keeping other stuff with addresses13MitchAlsup1
4 Dec 24 i  i    ii  i+- Re: Keeping other stuff with addresses1Thomas Koenig
4 Dec 24 i  i    ii  i+* Re: Keeping other stuff with addresses3Stefan Monnier
4 Dec 24 i  i    ii  ii+- Re: Keeping other stuff with addresses1MitchAlsup1
5 Dec 24 i  i    ii  ii`- Re: Keeping other stuff with addresses1Keith Thompson
5 Dec 24 i  i    ii  i+- Re: bytes, Keeping other stuff with addresses1John Levine
22 Dec00:22 i  i    ii  i`* unaligned load/store (was: Re: Keeping other stuff with addresses)7Jonathan Thornburg
22 Dec02:27 i  i    ii  i +* Re: unaligned load/store5MitchAlsup1
22 Dec11:01 i  i    ii  i i+* Re: unaligned load/store3Thomas Koenig
22 Dec12:06 i  i    ii  i ii+- Re: unaligned load/store1Anton Ertl
22 Dec12:42 i  i    ii  i ii`- Re: unaligned load/store1John Dallman
22 Dec22:04 i  i    ii  i i`- Re: unaligned load/store1Thomas Koenig
22 Dec11:33 i  i    ii  i `- Re: unaligned load/store (was: Re: Keeping other stuff with addresses)1Anton Ertl
4 Dec 24 i  i    ii  `* Re: bits and bytes, Keeping other stuff with addresses2John Levine
4 Dec 24 i  i    ii   `- Re: bits and bytes, Keeping other stuff with addresses1Stefan Monnier
3 Dec 24 i  i    i`* Re: Keeping other stuff with addresses2MitchAlsup1
4 Dec 24 i  i    i `- Re: Keeping other stuff with addresses1Chris M. Thomasson
4 Dec 24 i  i    `* Re: Keeping other stuff with addresses2Chris M. Thomasson
4 Dec 24 i  i     `- Re: Keeping other stuff with addresses1Stefan Monnier
4 Dec 24 i  `* Re: Keeping other stuff with addresses2Keith Thompson
4 Dec 24 i   `- Re: Keeping other stuff with addresses1MitchAlsup1
28 Nov 24 +* Re: What is an N-bit machine?18Thomas Koenig
28 Nov 24 i+* Re: What is an N-bit machine?2MitchAlsup1
28 Nov 24 ii`- Re: What is an N-bit machine?1Brett
28 Nov 24 i`* Re: What is an N-bit machine?15Lawrence D'Oliveiro
29 Nov 24 i `* Re: What is an N-bit machine?14John Dallman
29 Nov 24 i  +* Re: What is an N-bit machine?9Lynn Wheeler
29 Nov 24 i  i+- Re: What is an N-bit machine?1John Dallman
29 Nov 24 i  i`* IBM and Amdahl history (Re: What is an N-bit machine?)7Anton Ertl
29 Nov 24 i  i +- Re: IBM and Amdahl history (Re: What is an N-bit machine?)1Lynn Wheeler
29 Nov 24 i  i +- Re: IBM and Amdahl history (Re: What is an N-bit machine?)1Lynn Wheeler
29 Nov 24 i  i `* Re: IBM and Amdahl history (Re: What is an N-bit machine?)4Lawrence D'Oliveiro
30 Nov 24 i  i  `* Re: IBM and Amdahl history (Re: What is an N-bit machine?)3Anton Ertl
1 Dec 24 i  i   +- Re: IBM and Amdahl history (Re: What is an N-bit machine?)1John Dallman
1 Dec 24 i  i   `- Re: IBM and Amdahl history (Re: What is an N-bit machine?)1Lawrence D'Oliveiro
29 Nov 24 i  `* Re: What is an N-bit machine?4Lawrence D'Oliveiro
30 Nov 24 i   +- Re: What is an N-bit machine?1Brett
30 Nov 24 i   +- Re: market power, What is an N-bit machine?1John Levine
30 Nov 24 i   `- Re: What is an N-bit machine?1Lynn Wheeler
28 Nov 24 +- Re: What is an N-bit machine?1MitchAlsup1
28 Nov 24 +- Re: What is an N-bit machine?1Lynn Wheeler
29 Nov 24 `* Re: What is an N-bit machine?3Anton Ertl
29 Nov 24  +- Re: What is an N-bit machine?1Thomas Koenig
22 Dec22:37  `- Re: What is an N-bit machine?1Lawrence D'Oliveiro

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal