From http://www.memoir-systems.com/index.php?option=com_content&view=article&id=73&Itemid=472 :
"by implementing a variety of techniques such as caching, virtualization, pipelining, and data encoding".
What exactly that means is not clear (and the whitepaper does not provide any significant additional information).
Address renaming (virtualization) could obviously be used manage bank conflicts. Bank conflicts could also be statistically reduced by _address_ encoding, but it is not clear that such would help worst case behavior even in the presence of other techniques. Pipelining could make temporal multiporting act as physical multiporting.
Their term Algorithmic Memory made me think that perhaps they exploited expected access patterns, but that appears not to be the case. The "algorithm" revers to the generation of a memory by algorithmic combination of standard components.
The major accomplishment here seems to be in making such transparent to the designer.
Blog Doing Math in FPGAs Tom Burke 2 comments For a recent project, I explored doing "real" (that is, non-integer) math on a Spartan 3 FPGA. FPGAs, by their nature, do integer math. That is, there's no floating-point ...