When initially designing the most basic aspects of a system, engineers usually consider three or four different general attributes they require.
First we have chipset and processor information, which is pretty much a no brainer because everyone wants the latest and greatest.
Secondly we have the RAM, or traditional memory used for computations. This can be tricky to spec because it is expensive, and offers diminishing returns once you have passed an applications sweet spot, so it is quite easy to over spec and over buy. (Please note: While memory demands are primarily application specific it is still highly recommended to leave at least a pair of RAM slots open for future growth.)
Third we have ROM type storage which is storage that retains its data when the system is turned off. (The acronym is an older term that is not entirely accurate for hard drive type storage, but it is the preferred term) This can be as simple as a single hard drive or many hard drives either internally, or in some form of eternal array like an MSA or an EVA. This type of storage is in ever increasing demand, and a significant part of our industry revolves around various storage platforms than are inherently expandable.
The final variable is cache, and to consider your requirements, you need a basic understanding of its function. Cache was once a military term, representing weapons that were stored close enough to soldiers that in an emergency they were quickly available (Think of those rifle pyramids outside a tent).
In computer parlance the weapons have been replaced with binary information, and cache is where information that is picked up from ROM (Storage) is kept for use by RAM (Processing) or a different level cache. It is very fast, and increases system response time by preventing the CPU from having to pull ALL data from a hard drive or from having to write ALL data directly to a hard drive before moving to the next process.
- Cache is usually organized into three sections, one holding program and OS information, one holding recently viewed data, and the third holding a table that shows where to find everything else. As information expires from one cache unchanged, it is moved to the next lowest level, so the CPU cycles thru the caches sequentially before moving to ROM.
- Cache comes in basically three flavors, each designated by an “L” and number combination, with the lower number being the fastest and the closest to the CPU. Thus we have L1, L2, and L3. L1 is usually on the chip or processor itself and is determined by the chip you use. L3 is relatively rare and also not controllable, but L2 is frequently subject to specification.
So when is L2 important? Whenever the repository of information kept in storage is large, L2 cache offers a second “fast peel” location for the processor to find or store information other than the storage array. The CPU looks first in L1, and if it cannot find the info it needs it proceeds to L2 BEFORE trying the array itself. This can both increase retrieval speed, AND protect from data loss caused by writes that are lost because of power issues, because “write back caches” are usually battery enabled so they can still write to an array after a full failure of power.
In its simplest form, cache hits are speed, because hits take nanoseconds to process, where misses are measured in microseconds! That is why I almost never recommend maxing out RAM, but almost always recommend the maximum amount of cache, because time is money, and cache makes cents!
William "The ISS Guy" DeMuth
|