計算機的硬體系統儲存器

狂暴之刃發表於2024-05-02

如果說程式運算元據是計算機系統的主題,而程式指令本身也是資料,那麼作為存放資料的儲存體系是計算機系統不可或缺的重要組成。微機系統的儲存體系,按照訪問速度劃分為暫存器、高速緩衝儲存器、儲存器(主儲存器或記憶體)、外儲存器(外存或輔存)。
在CPU誕生之初,為了提高運算速度,也為了方便實現指令功能,設計CPU時將一部分儲存單元安排在CPU內部,這樣暫存器就誕生了。
隨著微機的發展,CPU結構不斷演進,一方面在CPU內部出現了記憶體管理部件,使得透過輔存模擬主存以擴充套件微機記憶體的虛擬儲存技術開始出現,這是一種以犧牲微機的執行速度,換取記憶體空間的擴充套件的策略,即“以時間換空間”。
另一方面,為了彌補CPU與主存之間的工作速度的差距(有時相差2到3個數量級),設計人員在CPU與主存之間安排少量的高速緩衝儲存器,以提高CPU訪問主存的速度,這是一種以犧牲較為昂貴的儲存空間為代價,換取微機執行速度的提高的策略,即“以空間換時間” 。
最後,說明一下儲存器能夠用高速緩衝儲存器提速,用虛擬儲存技術擴容,它所依據的規律——程式區域性性規律,程式在執行中,總是頻繁地使用那些最近被使用過的指令和資料。如果你熟悉迴圈程式結構,就對這一點會產生直覺。另外,由於指令定址在一般情況下以順序定址居多,因此,下一條要執行的指令,大機率侷限在當前指令地址的附近。
高速緩衝儲存器通常由高速儲存器、聯想儲存器、替換邏輯電路和相應的控制線路組成。在有高速緩衝儲存器的計算機系統中,中央處理器存取主儲存器的地址劃分為行號、列號和組內地址三個欄位。於是,主儲存器就在邏輯上劃分為若干行;每行劃分為若干的儲存單元組;每組包含幾個或幾十個字。高速儲存器也相應地劃分為行和列的儲存單元組。二者的列數相同,組的大小也相同,但高速儲存器的行數卻比主儲存器的行數少得多。
聯想儲存器用於地址聯想,有與高速儲存器相同行數和列數的儲存單元。當主儲存器某一列某一行儲存單元組調入高速儲存器同一列某一空閒的儲存單元組時,與聯想儲存器對應位置的儲存單元就記錄調入的儲存單元組在主儲存器中的行號。
當中央處理器存取主儲存器時,硬體首先自動對存取地址的列號欄位進行譯碼,以便將聯想儲存器該列的全部行號與存取主儲存器地址的行號欄位進行比較:若有相同的,表明要存取的主儲存器單元已在高速儲存器中,稱為命中,硬體就將存取主儲存器的地址對映為高速儲存器的地址並執行存取操作;若都不相同,表明該單元不在高速儲存器中,稱為脫靶,硬體將執行存取主儲存器操作並自動將該單元所在的那一主儲存器單元組調入高速儲存器相同列中空閒的儲存單元組中,同時將該組在主儲存器中的行號存入聯想儲存器對應位置的單元內。

相關文章