I'm a tech enthusiast (but I don't have a technical background) who follows
the progress of the D Programming Language. I recently passed on some
information about memristors to Andrei and he thought I should share it with
everybody. Forgive the length of the post.
What is a Memristor?
If you have not heard of it before, the memristor is the fourth fundamental
circuit element, after the inductor, resistor and capacitor. Its existence was
mathematically predicted by Dr. Leon Chua in 1971 and R. Stanley Williams of
the HP Labs announced its discovery in 2008.
You can read about it here: http://en.wikipedia.org/wiki/Memristor
A short technical video by R. Stanley Williams:
http://www.youtube.com/watch?v=rvA5r4LtVnc&feature=player_embedded
A longer technical video: http://www.youtube.com/watch?v=bKGhvKyjgLY
Memristors have properties that can change radically change computing.
Williams says, "I’m convinced that eventually the memristor will change
circuit design in the 21st century as radically as the transistor changed it
in the 20th. Don’t forget that the transistor was lounging around as a mainly
academic curiosity for a decade until 1956, when a killer app — the hearing
aid—brought it into the marketplace. My guess is that the real killer app for
memristors will be invented by a curious student who is now just deciding what
EE courses to take next year."
Memristors have properties that may allow it to replace DRAM, SRAM and Flash
and even perform logic. In theory, a single memristor based chip could store
and retrieve data like an SSD at the speed of DRAM and perform data processing
as well. A block of memristors on this chip could serve as storage while other
blocks of memristors function as logic and the functions of each block can be
changed at any time. Williams says in the longer video that a universal,
non-volatile memory means that the compute and storage paradigm of today needs
to be re-thought. Memristors may enable very large amounts (gigabytes) of SRAM
or DRAM speed storage very close to the processor (essentially combining RAM
and HDDs into one device). Memristors also have synapse-like properties and
can be used to emulate brain function.
However, this is not idle conjecture about a technology from the distant
future. Last month, HP announced that it would have memristor based
replacements for Flash and SSDs on the market within 18 months, DRAM
competitors by 2014-2015, and SRAM replacements soon after. I assume that they
will produce CPU competitors after that.
Dr. Williams makes outstanding claims about price and capacity. "Williams said
that memristor cost/bit could be an order of magnitude less than NAND, after
initial costs are out of the way."
(http://www.theregister.co.uk/2011/10/10/memristor_in_18_months/) He goes on:
"Flash is a done deal," said Williams, "now we’re going after DRAM, and we
think we can do two orders of magnitude improvement in terms of switching
energy per bit." He says HP won't get into manufacturing; it's going to
license out production.
Williams says that memristors can do traditional logic but memristors prefer a
different kind of logic: Material Implication.
(http://spectrum.ieee.org/semiconductors/nanotechnology/the-logic-behind-the-memristor)
Material Implication plus one other operation, FALSE, forms the complete basis
for universal computing. Material Implication, Williams says, quoting Bertrand
Russell (in the longer video, ~41 min), is the most efficient form of logic.
It is more efficient than the NAND logic used in computing today. C code
compiled using material logic was smaller than code compiled using NAND logic
by a factor of 3.
But I'll stop talking about how awesomeness of memristors and I propose that
you guys keep an eye on the technology. The usefulness of memristors should be
viewed in light of the end of Moore's Law (We probably have less than a decade
left of useful miniaturization of transistors before we hit fundamental
physical limits). DRAM and Flash scaling is also running into trouble. It
seems to me that memristors or some competing technology will probably
supplant x86 and other computing architectures and all the software written
for such architectures in the latter half of this decade.
If a heavily redesigned form of the D Programming Language (keep in mind that
memory would become obsolete and that RAM-speed storage would be moved to the
"processor" via photonic interconnects if Williams gets his way) that used
implication logic instead of NAND logic were ported to memristor-based
architectures as they became available... it would probably gain a strong
first mover advantage over other languages. It might become one of the first
available languages, the FORTRAN, LISP or COBOL, of the new architecture.
Something to consider.
Some other articles on memristors:
http://highscalability.com/blog/2010/5/5/how-will-memristors-change-everything.htmlhttp://www.msnbc.msn.com/id/36605027http://hplusmagazine.com/2010/03/30/synapse-chip/

If a heavily redesigned form of the D Programming Language (keep in mind that
memory would become obsolete and that RAM-speed storage would be moved to the
"processor" via photonic interconnects if Williams gets his way) that used
implication logic instead of NAND logic were ported to memristor-based
architectures as they became available... it would probably gain a strong
first mover advantage over other languages. It might become one of the first
available languages, the FORTRAN, LISP or COBOL, of the new architecture.
Something to consider.

This would be an interesting "new ground" to call dibs. But it seems to me that
the ones who decide who gets that ground are those developing it. That isn't to
say that you couldn't get an emulator up and running to run IMP instructions
(what ever those would look like) to test your compiler against.

Memristors have properties that may allow it to replace DRAM, SRAM and Flash
and even perform logic. In theory, a single memristor based chip could store
and retrieve data like an SSD at the speed of DRAM and perform data processing
as well. A block of memristors on this chip could serve as storage while other
blocks of memristors function as logic and the functions of each block can be
changed at any time.

Memristors have properties that may allow it to replace DRAM, SRAM and
Flash
and even perform logic. In theory, a single memristor based chip could
store
and retrieve data like an SSD at the speed of DRAM and perform data
processing
as well. A block of memristors on this chip could serve as storage while
other
blocks of memristors function as logic and the functions of each block
can be
changed at any time.