"Concurrent Memory - A Call To Action"
CONCURRENT MEMORY - A CALL TO ACTION
This century brought on the greatest change in the computer
field since the first electronic computers that were developed
during the late 1940s. At that time the computer science
community settled on the Von Neumann compute model as
the mainstream Model of Computation. This was the sequential
single processor architecture found in most computers
At the beginning of this century the semiconductor vendors,
who produce the microprocessors that run today’s computers,
ran into a power problem. As we began reaching processor
frequencies of over a gigahertz not only were power budgets
being exceeded but the processors themselves were literally
burning up. Now the beauty of the Von Neumann model was
that performance was directly proportional to frequency
and the semiconductor vendors had been providing faster
processors every two years since the early 1970s. Since
we could no longer do that the semiconductor vendors moved
to a multi-core architecture. In doing so they solved
their increased performance problem but abandoned the
Von Neumann architecture. What that does is put into jeopardy
all the companies that have made a living based on the
Von Neumann compute model; Microsoft, Intel and all of
the computer manufacturers.
Actually building the computer is not a problem. Semiconductor
vendors can place thousands of processors on an IC today.
The problem is, “Can you program it?” In the hay-day of
the Mainstream computer Gene Amdahl discovered that communications
problems with algorithms that contained sequential code
limited the number of processors you could use to roughly
four. That became known as Amdahl’s Law. Now there are
companies that have found tricks that allow them to use
sixteen processors but that’s as far as we been able to
go. Of course algorithms that are basically parallel,
the so called Embarrassingly Parallel Problems, can use
hundreds of processors but so far we haven’t found very
many Embarrassingly Parallel Problems.
Actually pretty much everything; the software development
infrastructure needs a complete over hall. That being
said we need four different areas developed.
1. The first is obvious: we need a new set of debuggers,
profilers, and software virtual prototypes, etc. Some of these are being worked
on by the Embedded Software Development Tools companies and some by the EDA
vendors. In fact it wouldn’t be a surprise if those two markets merged.
2. The second gets into languages and compilers. We’ve
pretty much given up hope for the magic concurrent software compiler. Now the question
is, do we throw away C? Keep in mind that if we stick to C it will be a much different
language then the C we use today. It is possible though, Fortran took this route
and by the 1995 release
became one of the better concurrent languages out there.
3. The next problem is what to do with the OS? Especially
in a many core system it makes sense to use a kernel on the actual cores and then have
a master OS that manages the scheduling. In addition it has a new task, handling the
power management system. This sounds like Virtualization; however to be efficient Virtualization
has to be a fairly thin layer of software. A lot of research is still needed.
4. That brings us to the topic of this paper, the Concurrent
The Concurrent Memory is a memory that can handle multiple
parallel programs. There is a lot more to it than that
but to keep it simple we won’t get into the details. We
thought we had the answer with the Transactional Memory.
Its only drawback was lack of speed. Last year researchers
found ways to increase the speed. Unfortunately they found
that it was a power hog; so back to the drawing board.
The problem we are facing is the same one that Intel and
AMD are facing in the microprocessor market. The main
demand for Concurrent Memory will be as an IP embedded
into a SoC, not a standalone memory you put on a PC Board.
In fact the view many researchers have is a stacked die
(Concurrent Memory on top of a SoC) that is optimized
for each SoC design. This does not fit into the mass market,
standard product business model followed by the Memory
Vendors. Just like Intel or AMD do not have a business
model that fits into the embedded processor as IP business
model that ARM has perfected. That means that the major
Memory Vendors have no interest in developing the Concurrent
That’s why we need the call to action. The Concurrent
Memory is an integral part of the answer for parallel
computing. Without it everything grinds to a halt, including
Moore’s Law. It’s a big problem and it must be solved.
view entire note download the PDF Here