In this project we designed a unified controller that uses a mapping algorithm based on Cuckoo hash table structure. Cuckoo hashing is a collision resolution algorithm that allows an element to have a multiple possible hashing location, and these locations are checked in parallel. This design supports different page sizes. Therefore, the translation operation involves finding the suitable page size and finding the suitable physical page address in one memory access latency. This controller can access all the memory modules in parallel and there is no hierarchical manner between the modules.
Modern computing systems are suffering from memory bottleneck, processing units are much faster than memories, that causes a big overhead in computing. Memory hierarchy in current systems is becoming very complicated. Therefore, it makes sense to unify the memory hierarchy as much as possible.
The most important performance factor in memory access operations is finding a translation for a given virtual address, which requires a serial look-up operation over a multilevel page table. For this reason, the translation operation needs multiple accesses to the memory in order to get the physical address. In addition this method supports a single page size.
In this project we designed a unified controller that uses a mapping algorithm based on cuckoo hash table structure. Cuckoo hashing is a collision resolution algorithm that allows an element to have a multiple possible hashing location, and these locations are checked in parallel. This design supports different page sizes. Therefore, the translation operation involves finding the suitable page size and finding the suitable physical page address in one memory access latency. This controller can access all the memory modules in parallel and there is no hierarchical manner between the modules.