Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. 30-year-old analysis of RISC vs CISC still reads well!

30-year-old analysis of RISC vs CISC still reads well!

Scheduled Pinned Locked Moved Uncategorized
15 Posts 9 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • regehr@mastodon.socialR This user is from outside of this forum
    regehr@mastodon.socialR This user is from outside of this forum
    regehr@mastodon.social
    wrote last edited by
    #1

    RE: https://mendeddrum.org/@fanf/116090957426748922

    30-year-old analysis of RISC vs CISC still reads well!

    though it's fun to see which RISCisms have died out, such as "Do NOT support arbitrary alignment of data for loads/stores"

    dysfun@social.treehouse.systemsD regehr@mastodon.socialR malwareminigun@infosec.exchangeM 3 Replies Last reply
    0
    • regehr@mastodon.socialR regehr@mastodon.social

      RE: https://mendeddrum.org/@fanf/116090957426748922

      30-year-old analysis of RISC vs CISC still reads well!

      though it's fun to see which RISCisms have died out, such as "Do NOT support arbitrary alignment of data for loads/stores"

      dysfun@social.treehouse.systemsD This user is from outside of this forum
      dysfun@social.treehouse.systemsD This user is from outside of this forum
      dysfun@social.treehouse.systems
      wrote last edited by
      #2

      @regehr okay but that's because unaligned stores are fucking awesome for optimisation

      regehr@mastodon.socialR 1 Reply Last reply
      0
      • dysfun@social.treehouse.systemsD dysfun@social.treehouse.systems

        @regehr okay but that's because unaligned stores are fucking awesome for optimisation

        regehr@mastodon.socialR This user is from outside of this forum
        regehr@mastodon.socialR This user is from outside of this forum
        regehr@mastodon.social
        wrote last edited by
        #3

        @dysfun of course

        1 Reply Last reply
        0
        • regehr@mastodon.socialR regehr@mastodon.social

          RE: https://mendeddrum.org/@fanf/116090957426748922

          30-year-old analysis of RISC vs CISC still reads well!

          though it's fun to see which RISCisms have died out, such as "Do NOT support arbitrary alignment of data for loads/stores"

          regehr@mastodon.socialR This user is from outside of this forum
          regehr@mastodon.socialR This user is from outside of this forum
          regehr@mastodon.social
          wrote last edited by
          #4

          although I guess the alignment story is a bit more complicated than that. modern x86 vector extensions sometimes require alignment, and AArch64 allows (but does not require) support for unaligned accesses

          joe@f.duriansoftware.comJ zwol@masto.hackers.townZ fay59@tech.lgbtF 3 Replies Last reply
          0
          • regehr@mastodon.socialR regehr@mastodon.social

            although I guess the alignment story is a bit more complicated than that. modern x86 vector extensions sometimes require alignment, and AArch64 allows (but does not require) support for unaligned accesses

            joe@f.duriansoftware.comJ This user is from outside of this forum
            joe@f.duriansoftware.comJ This user is from outside of this forum
            joe@f.duriansoftware.com
            wrote last edited by
            #5

            @regehr and usually unaligned accesses that straddle a cache line, or especially page, boundary still carry a significant cost. so sticking to natural alignment avoids ever dealing with those cliffs

            zwarich@hachyderm.ioZ 1 Reply Last reply
            0
            • fay59@tech.lgbtF This user is from outside of this forum
              fay59@tech.lgbtF This user is from outside of this forum
              fay59@tech.lgbt
              wrote last edited by
              #6

              @koakuma @regehr have also heard of old cores that use the alignment bits as a rotation pattern, so *(ptr_to_int32|2) loads ptr_to_int32 but rotates it 16 bits

              1 Reply Last reply
              0
              • regehr@mastodon.socialR regehr@mastodon.social

                although I guess the alignment story is a bit more complicated than that. modern x86 vector extensions sometimes require alignment, and AArch64 allows (but does not require) support for unaligned accesses

                zwol@masto.hackers.townZ This user is from outside of this forum
                zwol@masto.hackers.townZ This user is from outside of this forum
                zwol@masto.hackers.town
                wrote last edited by
                #7

                @regehr from a microarchitectural perspective I think the consensus looks something like

                * code density is valuable
                * complex instruction encodings make decode a bottleneck
                * complex *operations*, however, just cost die area, which is cheap nowadays
                * avoid situations where one instruction can trigger multiple memory faults
                * avoid situations where code tuned for CPU generation N is slow on generation N+1

                1 Reply Last reply
                0
                • regehr@mastodon.socialR regehr@mastodon.social

                  although I guess the alignment story is a bit more complicated than that. modern x86 vector extensions sometimes require alignment, and AArch64 allows (but does not require) support for unaligned accesses

                  fay59@tech.lgbtF This user is from outside of this forum
                  fay59@tech.lgbtF This user is from outside of this forum
                  fay59@tech.lgbt
                  wrote last edited by
                  #8

                  @regehr I think that one died out literally because of C. There’s no way to express that a pointer is or isn’t aligned and it’s just too useful to not have to think about it

                  void_friend@tech.lgbtV iximeow@haunted.computerI 2 Replies Last reply
                  0
                  • fay59@tech.lgbtF fay59@tech.lgbt

                    @regehr I think that one died out literally because of C. There’s no way to express that a pointer is or isn’t aligned and it’s just too useful to not have to think about it

                    void_friend@tech.lgbtV This user is from outside of this forum
                    void_friend@tech.lgbtV This user is from outside of this forum
                    void_friend@tech.lgbt
                    wrote last edited by
                    #9

                    @fay59 you mean, in C you express that the pointer is aligned by building it and GCC and Clang each have optimizations that will screw you up if it isn't because “fuck you it's UB”? Or do you mean something else?

                    1 Reply Last reply
                    0
                    • fay59@tech.lgbtF fay59@tech.lgbt

                      @regehr I think that one died out literally because of C. There’s no way to express that a pointer is or isn’t aligned and it’s just too useful to not have to think about it

                      iximeow@haunted.computerI This user is from outside of this forum
                      iximeow@haunted.computerI This user is from outside of this forum
                      iximeow@haunted.computer
                      wrote last edited by
                      #10

                      @fay59 @regehr i really want to know what the story is with the x86 sse ops that allow vs disallow unaligned access. like why! was the aligned one ever faster? it *is* true that an unaligned access might cross two cache lines and *that* would be gross, but...

                      malwareminigun@infosec.exchangeM 1 Reply Last reply
                      0
                      • regehr@mastodon.socialR regehr@mastodon.social

                        RE: https://mendeddrum.org/@fanf/116090957426748922

                        30-year-old analysis of RISC vs CISC still reads well!

                        though it's fun to see which RISCisms have died out, such as "Do NOT support arbitrary alignment of data for loads/stores"

                        malwareminigun@infosec.exchangeM This user is from outside of this forum
                        malwareminigun@infosec.exchangeM This user is from outside of this forum
                        malwareminigun@infosec.exchange
                        wrote last edited by
                        #11

                        @regehr These days I see this most often as "people who hate wintel wanting to claim ARM is better because RISC" despite for most of the period Intel just making better parts than available from any of the ARM vendors. Being like 5 years ahead on fabs vs. everyone else was a Big Deal.

                        I hear this discussion less now that ARM parts competitive with Intel are out as of 2020. If anything, these days I hear the discussion in the opposite direction: Windows people blaming Apple's slight processor lead for all of Windows problems and expecting Snapdragon to fix it. (Snapdragon X Elite looks like an interesting part but I refuse to buy one until I see at least MS treat it as a first class target. I bought 2 Windows on ARM devices that are paperweights and I won't get burned like that a 3rd time. It's depressing to see people talk about Windows on ARM like it's the "new hotness" when Windows on ARM is *older* than macOS on ARM!)

                        1 Reply Last reply
                        0
                        • joe@f.duriansoftware.comJ joe@f.duriansoftware.com

                          @regehr and usually unaligned accesses that straddle a cache line, or especially page, boundary still carry a significant cost. so sticking to natural alignment avoids ever dealing with those cliffs

                          zwarich@hachyderm.ioZ This user is from outside of this forum
                          zwarich@hachyderm.ioZ This user is from outside of this forum
                          zwarich@hachyderm.io
                          wrote last edited by
                          #12

                          @joe @regehr *Device memory entered the chat*

                          1 Reply Last reply
                          0
                          • iximeow@haunted.computerI iximeow@haunted.computer

                            @fay59 @regehr i really want to know what the story is with the x86 sse ops that allow vs disallow unaligned access. like why! was the aligned one ever faster? it *is* true that an unaligned access might cross two cache lines and *that* would be gross, but...

                            malwareminigun@infosec.exchangeM This user is from outside of this forum
                            malwareminigun@infosec.exchangeM This user is from outside of this forum
                            malwareminigun@infosec.exchange
                            wrote last edited by
                            #13

                            @iximeow I mean, on modern Intel parts the aligned one *isn't* faster. But that's partially because compiler vendors feared using the aligned ones ever for fear of breaking someone's code and Intel responded by spending the die area to make the unaligned one "free" as long as the input was actually aligned.

                            iximeow@haunted.computerI 1 Reply Last reply
                            0
                            • malwareminigun@infosec.exchangeM malwareminigun@infosec.exchange

                              @iximeow I mean, on modern Intel parts the aligned one *isn't* faster. But that's partially because compiler vendors feared using the aligned ones ever for fear of breaking someone's code and Intel responded by spending the die area to make the unaligned one "free" as long as the input was actually aligned.

                              iximeow@haunted.computerI This user is from outside of this forum
                              iximeow@haunted.computerI This user is from outside of this forum
                              iximeow@haunted.computer
                              wrote last edited by
                              #14

                              @malwareminigun llvm emits alignment-requiring sse movs even today, you can see this when it moves a 32-128 byte struct. i did say "was it ever" pretty specifically. i should have just checked uops.info because they have been the same since around nehalem, where before movups was up to four times slower

                              iximeow@haunted.computerI 1 Reply Last reply
                              0
                              • iximeow@haunted.computerI iximeow@haunted.computer

                                @malwareminigun llvm emits alignment-requiring sse movs even today, you can see this when it moves a 32-128 byte struct. i did say "was it ever" pretty specifically. i should have just checked uops.info because they have been the same since around nehalem, where before movups was up to four times slower

                                iximeow@haunted.computerI This user is from outside of this forum
                                iximeow@haunted.computerI This user is from outside of this forum
                                iximeow@haunted.computer
                                wrote last edited by
                                #15

                                @malwareminigun that said uops.info's test uses an aligned pointer in both cases so that kind of is the opposite of the interesting case

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups