How much l3 cache is enough
In addition to this function, the L3 cache is often shared between all of the processors on a single piece of silicon. The Zen 2 — Zen 3 topology change. The common L3 cache is slower but much larger, which means it can store data for all the cores at once. Sophisticated algorithms are used to ensure that Core 0 tends to store information closest to itself, while Core 7 across the die also puts necessary data closer to itself.
But those slight losses would likely be dwarfed by the improved core clocks, etc. It's purely speculation but I suspect the cache size was limited by yield concerns rather than timing constraints. It looks like the X has 1mb less cache so they probably engineered a way to disable faulty sections of the cache on a 1mb granularity.
Edit: My speculation's wrong. The cache difference between the X and the X is due to core count differences. It's the sum of the various cache sizes, and I misread the slide. Sohcahtoa82 on Oct 8, root parent prev next [—]. When I play MS Flight Simulator, enable the Dev toolbar, and look at the framerate monitor, it tells me that it's spending 20 ms of CPU time per frame, which causes my framerate to cap at 50 fps.
L1 is data and code. L2 is data only, per core. L3 is data, synchronized between cores. Yeah, technically there are 2 L1 caches; x86 is a 'Modified Harvard' architecture. The instruction cache also typically has to deal with caching micro-ops. Caches are probably one of the most underrated instances of memory in a computer system.
A potential gamer looking to build a rig would inquire about cores, ram, gpu, even architecture but very rarely about cache. Just because it is usually not given the spot light and is condemned to the life of fine print, does not make it is any less important than the actual cores themselves. A modern commercial processor has 3 cache levels basically. Cache level 1, Cache level 2 and Cache level 3 there is an L4 cache too but lets not get into that just now. The short forms of these as you will undoubtedly know is L1, L2 and L3 caches.
However, while L1 and L2 caches are dedicated per core and are somewhat closed off in nature, an L3 cache is the general pool of memory that all cores share. Every core inside the modern multi-core processor has its own L1 and L2 cache but there is only one L3 per entire die. But they're not designed to hold very much data just a single piece of it , which is why there's always some larger blocks of memory nearby: this is the Level 1 cache.
Intel Skylake CPU, zoomed in shot of a single core. Source: Wikichip. The above image is a zoomed in shot of a single core from Intel's Skylake desktop processor design. The ALUs and the register files can be seen in the far left, highlighted in green. In the top-middle of the picture, in white, is the Level 1 Data cache.
This doesn't hold much information, just 32 kB, but like registers, it's very close to the logic units and runs at the same speed as them. The other white rectangle indicates the Level 1 Instruction cache, also 32 kB in size. There's a cache for them, too, and you could class it as Level 0, as it's smaller only holding 1, operations and closer than the L1 caches. You might be wondering why these blocks of SRAM are so small; why aren't they a megabyte in size? Together, the data and instruction caches take up almost the same amount of space in the chip as the main logic units do, so making them larger would increase the overall size of the die.
But the main reason why they just hold a few kB, is that the time needed to find and retrieve data increases as memory capacity gets bigger. L1 cache needs to be really quick, and so a compromise must be reached, between size and speed -- at best, it takes around 5 clock cycles longer for floating point values to get the data out of this cache, ready for use.
But if this was the only cache inside a processor, then its performance would hit a sudden wall. This is why they all have another level of memory built into the cores: the Level 2 cache. This is a general block of storage, holding onto instructions and data. It's always quite a bit larger than Level 1: AMD Zen 2 processors pack up to kB, so the lower level caches can be kept well supplied. This extra size comes at a cost, though, and it takes roughly twice as long to find and transfer the data from this cache, compared to Level 1.
Going back in time, to the days of the original Intel Pentium, Level 2 cache was a separate chip, either on a small plug-in circuit board like a RAM DIMM or built into the main motherboard. This development was soon followed by another level of cache, there to support the other lower levels, and it came about due to the rise of multi-core chips. Intel Kaby Lake chip. This image, of an Intel Kaby Lake chip, shows 4 cores in the left-middle an integrated GPU takes up almost half of the die, on the right.
Each core has its own 'private' set of Level 1 and 2 caches white and yellow highlights , but they also come with a third set of SRAM blocks.
Level 3 cache, even though it is directly around a single core, is fully shared with the others -- each one can freely access the contents of another's L3 cache. It's much larger between 2 and 32 MB but also a lot slower, averaging over 30 cycles, especially if a core needs to use data that's in a block of cache some distance away.
Source: Fritzchens Fritz. Wait a second. How can 32 kB take up more physical space than kB? If Level 1 holds so little data, why is it proportionally so much bigger than L2 or L3 cache? Cache boosts performance by speeding up data transfer to the logic units and keeping a copy of frequently used instructions and data nearby.
0コメント