Embora as memórias ilimitadas e rápidas sejam o desejo de qualquer programador, elas possuem alto custo e, geralmente, capacidade pequena. Porém, se o sistema for organizado em uma hierarquia com diversos níveis, memórias cada vez mais rápidas, menores e com custo por byte maior, serão colocadas em níveis mais altos.