The Question of Memory

Okay, you've got your super-duper RISC processor which can compile instructions at an extremely fast rate. What could go wrong? Perhaps the question of memory is the problem.

What about Memory?

Well, as you probably now, a big memory is a good thing, because you can store more things to run bigger applications, et cetera. Plus, as RISC processors get faster and faster, they eat memory faster than my Uncle Ernie at an all-you-can-eat-buffet. Okay, we get more memory. Two problems: memory costs money, and even if it was free, finding memory locations gets to be a slow process as memory gets larger and larger. The result is that CPU speeds increase steadily, while memory speeds increase at only a fraction of the speed of CPU's. So, how are we going to remedy this little problem?

Ways Memory is Quickened

The goal in achieving a fast memory is to decrease memory access time, or the time it takes to fetch a memory location.

One way this is done is through the use of memory caches. Caches are fast memory which is split into cache lines. These lines contain data from different part of the memory that is being used often. Thus, if a few pieces of data are being used throughout an application, they are stored in a cache, where they can be retrieved more quickly than if all of the memory had to be searched.

A method that increases the maximum size for a program is virtual memory. Virtual memory is when a program starts its memory address space at 0 and goes up, but the actual location is translated into a different physical address. This allows a degree of flexibility, for each process believes it has all memory to itself. Virtual memory also splits the program's memory into chunks called pages. By being separated into pages, programs are easier to fit together in memory, or move out to disk in portions.

Yet another method of speeding up memory is improving bandwidth. Bandwidth is the amount of information that is being sent at one time. Sending more information at one time saves a huge amount of access time. Some ways of doing this are increasing cache size and splitting up memory addresses in memory such that the call of one does not stall the call of another. In the future, improvements will hopefully made so that several memory references will be made per clock cycle.

Alas

As the CPU speed increases, the need for better memory systems will greatly increase. If this does not happen, CPU's, despite all their speed, will have to wait for data to be retrieved from memory. As they say, a chain is only as strong as its weakest link, and computers are only as fast as their slowest part, the memory.

Previous Next Home