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.
A Book For All Reasons Bernard Cole1 Comment Robert Oshana's recent book "Software Engineering for Embedded Systems (Newnes/Elsevier)," written and edited with Mark Kraeling, is a 'book for all reasons.' At almost 1,200 pages, it ...