Trying to dig our from under a backlog of journals, I cam across this
gem in IEEE Computer magazine: "VIM: Taming Software with Hardware" by
Mark Halpern. His claim is that software would work so much better if
only we'd remove the complexity of managing thememory hierarchy... by
supplying infinite memory to the programmer.
Infinite. No problem.
The capacity itself isn't even the worst part. As the capacity of a
storage element increases, so does its access time. (Sure, things speed
up as new technologies become available. At some point, however, you
have to stop waiting on new technology and actually build
something.) When register files already have odd sizes to account
for the buffering needed on the most distant bit lines, a
multi-terabyte register file is going to be half buffers. And yes, I
said multi-terabyte register file. Otherwise every singe piece of data
will take multiple cycles.
Then there's the yield hit for such a large memory area. Let's say 1MB
of cache in a 90mn process is roughly 1/4 cm^2, and assume a register
file requires no additional devices (which is wrong, but I have no way
of estimating the size of an RF even that large). A 12" wafer is only
going to get you to the 10GB range, and that's if you use the
whole wafer just for a single memory structure.
Of course, Halpern uses the phrase "virtual infinite memory". There is
in fact a method to make a process see an infinite address space with
actually supplying an infinitely large register file: it's called a
memory hierarchy.
10:50:14 AM
Categories: Pushing rectangles... LiveJournal
|