Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Monday November 02 2015, @04:31AM   Printer-friendly
from the next-up:-jump-jiving dept.

The "jump threading" compiler optimization (aka -fthread-jump) turns conditional into unconditional branches on certain paths at the expense of code size. For hardware with branch prediction, speculative execution, and prefetching, this can greatly improve performance. However, there is no scientific publication or documentation at all. The Wikipedia article is very short and incomplete.

The linked article has an illustrated treatment of common code structures and how these optimizations work.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by ledow on Monday November 02 2015, @01:29PM

    by ledow (5567) on Monday November 02 2015, @01:29PM (#257473) Homepage

    We're doing both.

    Predicting paths things is not really much to do with the CPU - it's about getting things into memory or the cache that you might need soon. It's about the interfaces, not the instructions themselves.

    And if you memory cache is the bottleneck, adding more "CPU's" to the same silicon just makes the problem worse. Rather than add in even more places trying to access random memory at the same time, use a single cache effectively.

    And the problem we have with CPU's is that they can only ever run so fast. We stopped going up in GHz for a reason, hitting physical limits. As such, using a tiny bit of logic that surrounds the silicon keeps the processor at full speed even if it mis-predicting, which is more effective than building another processor next to it and adding to the heat / signal propagation issues.

    If the world were perfect and everything ran at CPU speed, we wouldn't need memory controllers, memory caches, bus timings, etc. Those things exist because the CPU is only one problem. It's like a steam engine - you have to keep that at full speed because it you're biggest investment, but that means dragging along a cart full of coal, and a guy who knows when to shovel it in.

    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2