Thread: Cache Questions
View Single Post
Old 02-25-2006, 06:32 PM   #7 (permalink)
Martian
Young Crumudgeon
 
Martian's Avatar
 
Location: Canada
cyrnel's sort of right, but a bit outdated. Welcome to today's lesson : a brief history of cache.

In the beginning, there was nothing. Err, no cache that is. The concept didn't exist. However, the egg-heads quickly figured out that the transfer rates of RAM at the time were too slow to feed the processor all the data they needed, which is why cache was born. It all started with level 1 cache (which wasn't called level 1 at the time, as there were no other levels). Chip manufacturers figured out that they could include a small amont of fast (but expensive) static RAM into the CPU itself and use it to store instructions that are likely to be needed again. The size currently ranges from 8KB to 64KB, although obviously it started at the smaller end of the scale. Algorithms were developed to allow the CPU to store the most commonly used (and therefore commonly needed) data in that cache and a great deal of time was spent trying to improve the it rate. However, it was discovered that the speed of the cache was directly related to the size; the more cache there was, the more the processor had to check and the higher the latency became. That left the engineers in a tricky spot. For one, there was only so much memory that could fit on the processor at a time. This was several years ago and Moore's law hadn't taken us quite as far as it has today. Aside from the fact that there was only so much that would physically fit, too much cache began to effectively destroy the speed benefit; if there was too much the latency went through the roof, but too little and you began to run into 'capacity misses' when the cache simply couldn't hold all the information that the processor needed.

And thus along came level 2. Level 2 was originally defined as off-chip; that is, on the motherboard. It uses a different set of algorithms to store data; some processors use a level 2 cache that is inclusive (and holds all the information the level 1 cache does) while others are exclusive (any datum that's in level 1 will not be in level 2 and vice versa). The whole system works like this:

The CPU checks it's level 1 cache first to see if the datum it needs is in there. If there is a hit, the datum stays where it is (under most algorithms). If it's a miss, the cpu moves onto the larger but slower level 2 cache. If it's a hit there, the processor takes the datum from the level 2 cache and moves it up to level 1; in some cases it'll swap two pieces of data, while in others it'll simply overwrite the least recently used item in the level 1 cache with the new one.

So that's how it worked for a while. Then as memory became smaller and cheaper, manufacturers began to realize that they could boost the speed of level 2 cache by moving it onto the chip, then later onto the die (the central part of the cpu). By shortening the distance from the processor to the cache and removing an entire section of the bus, latency times for level 2 cache were brought down dramatically.

So everything was redefined. Level 1 cache kept it's job, while level 2 cache was moved from the motherboard and turned into a larger secondary on-die cache. At first, motherboard manufacturers began using a much larger but slower still level 3 cache; but as memory sizes and bus speed increased it gradually became redundant for the home PC market. It was discovered that there was a functional limit to the amount of cache a home market multi-task PC could effectively use. Further to that, with advancing bus speeds the boost offered by level 3 cache began to diminish; the main memory began to catch up. Therefore level 3 cache was dropped on most home PC's to reduce price. Since it was either made up of static RAM and very expensive or dynamic RAM and thus lost any speed benefit over the system memory, it was seen as an unecessary addition for the most part. That's why most modern home PC's lack level 3 cache, as you noted.

There are, however, computers that do use level 3 cache. Servers and other high powered, high demand machines often end up executing the same set of instructions over and over, yet those instrucions usually won't fit in the small level 2 cache. Therefore, the level 3 cache will be anywhere from 2MB to about 256MB. As you can probably imagine, this can get very expensive.

As has been noted, level 3 cache is now being moved on chip; Intel has sold the Itanium II for about 2 years now, which in it's most recent incarnation carries up to 8MB of cache on chip. It's worth noting as well that Itaniums are designed to be run in multi-processor server platforms; therefore, each processor has up to 8MB of L3 cache, leading to a much higher effective amount of cache, dependent on whether the system is a 2 or 4 processor architecture.

Whether or not this will lead to a larger still L4 cache, I don't know. For one, there's only so much information that needs to be resident in cache at a time; aside from that, the bigger the cache, the more expensive it is, although Moore's law continues to help ameliorate that. There may already be motherboards out there with L4 cache available, although I'm not up to date enough on the server market to be certain.

After all that, the answer to your question is simply one of legacy. Some motherboards still check the level 3 cache because the architecture for it was never removed from the chipset; it's just been set to 0. Therefore, the line you see during boot up.
__________________
I wake up in the morning more tired than before I slept
I get through cryin' and I'm sadder than before I wept
I get through thinkin' now, and the thoughts have left my head
I get through speakin' and I can't remember, not a word that I said

- Ben Harper, Show Me A Little Shame
Martian is offline  
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360