Spirálová paměť připomíná lineární štěpení stránek předpokládá exponenciální rozdělení klíčů klíče primárně transformovány do intervalu funkcí G(c,k). Pokud obor hodnot h(k) je, pak G = c-h(k) + h(k) čísla stránek získáme jako b G pro vhodnou konstantu b > 1
Spirálová paměť (2) interval můžeme transformovat na interval, který přímo udává rozsah využitých stránek. Novou hodnotu c při expanzi spočteme tak, abychom eliminovali přeplněnou stránku next_c = log b (first+1), kde first je první logická stránka (právě expandovaná)
Expanze stránek spirálové paměti
Spirálová paměť (4) Uvedený postup štěpení vede k postupnému posouvání využitého prostoru k vyšším číslům stránek – dá se tomu čelit tím, že uvolňovanou stránku využijeme jako jednu z nově obsazovaných; k získání adresy je nutno „odsimulovat“ všechna štěpení, ke kterým došlo (tak jako u skupinového štěpení stránek)
Spirálová paměť (5) function real_page(logical_page:integer):integer; varhigh, low: integer; begin high := (1+logical_page)/b ; low := logical_page/b ; if low<high then { znovupoužitá stránka } real_page := real_page(low) else { low=high; vezme se první místo stránky} real_page := logical_page – low end;
Možnosti zachování uspořádání většina běžných hašovacích postupů nezachovává uspořádání někdy je možné použít přímý přístup (hodnota klíče použita jako adresa)
Lineární hašování zachovávající uspořádání vychází z lineárního hašování (Litwina), ale využívá nejvýznamnější bity místo nejméně významných k určení stránky