基本原理
該作業有三個段,頁面大小為4 KB。在段頁式系統中,其地址結構由段號、段內頁號及頁內地址三部分所組成,如下圖所示。
地址變換過程
在段頁式系統中,為了便於實現地址變換,須配置一個段表暫存器,其中存放段表始址和段表長TL。進行地址變換時,首先利用段號S,將它與段表長TL進行比較。若S<TL,表示未越界,於是利用段表始址和段號來求出該段所對應的段表項在段表中的位置,從中得到該段的頁表始址,並利用邏輯地址中的段內頁號P來獲得對應頁的頁表項位置,從中讀出該頁所在的物理塊號b,再利用塊號b和頁內地址來構成物理地址。右圖示出了段頁式系統中的地址變換機構。
在段頁式系統中,為了獲得一條指令或數據,須三次訪問記憶體。第一次訪問是訪問記憶體中的段表,從中取得頁表始址;第二次訪問是訪問記憶體中的頁表,從中取出該頁所在的物理塊號,並將該塊號與頁內地址一起形成指令或數據的物理地址;第三次訪問才是真正從第二次訪問所得的地址中,取出指令或數據。
顯然,這使訪問記憶體的次數增加了近兩倍。為了提高執行速度,在地址變換機構中增設一個高速緩衝暫存器。每次訪問它時,都須同時利用段號和頁號去檢索高速快取,若找到匹配的表項,便可從中得到相應頁的物理塊號,用來與頁內地址一起形成物理地址;若未找到匹配表項,則仍須再三次訪問記憶體。