SM: How does MetaRam fit your golden rules?
FW: I often say the main rule golden rule is “CPUs should talk directly to DRAMs is because that is how God intended it to be, and you should not get in the middle of it”! That is why it can be surprising when you look at MetaRam.
You might say that MetaRam is getting in the middle, but the key is that we get in the middle without changing the bus on either side. The CPU and DRAM can still talk to each other whenever that system is satisfactory. In any deployment where you get enough capacity or bandwidth without an intervening chip then you have the ideal case. With us you are putting in a controller chip that can shim itself into the middle. If you cannot get enough capacity or enough bandwidth then you can come to us and we add capability in a completely compatible fashion.
We do not tax the low end systems to help the high end systems because the low end systems CPU talks directly to DRAM. In high end systems you can put in a MetaRam DIM with exactly the same CPU and motherboard. Because we put our chips between the memory and the processors we are able to put a lot more memory behind the chip delivering greater capacity.
SM: What does the controller do specifically?
FW: Essentially it does quite a few things. First thing it does is it reduces the electrical load. Anytime you put a new DRAM on a bus, each DRAM puts an electrical load on the bus making it harder for the bus to run at its appropriate speed. Our chips reduce the electrical load allowing everything to run at full speed.
Additionally, the controller only knows how to talk to a specific number of DRAMs. If we want to put more DRAM in, we have to convince the controller to talk to the additional DRAM. To do this we employ rank reduction where we take four 1GB DRAMs and make it look to the system like 1 4GB DRAM. A controller knows how to talk to 4 GB DRAMS, but it does not know how to talk to 4 separate entities.
We also assist with power management. When we have extra DRAMs we cannot afford to have them all sitting in their high powered state continuously. Accordingly we have to aggressively manage whether they are awake or asleep and we do that behind the back of the CPU so that we can fit within the power budget. It involves quite a few functions. You can think of it as a virtualization function, where we are making a virtual GB DRAM out of multiple physical DRAMs.
One of the main drivers of big memory in computers it is actually virtualization software. Virtualization software allows you to consolidate multiple machines down to one and when you pull multiple machines down to one suddenly you need a lot more memory in that machine. Typically that is accomplishing using RDIMMs which use a different type of hardware virtualizations to make a bigger memory.