140DDI35300 內(nèi)置多層緩存
CPU 從不直接訪問 RAM。現(xiàn)代 CPU 有一層或多層緩存。CPU 執(zhí)行計算的能力比 RAM 向 CPU 提供數(shù)據(jù)的能力要快得多。其原因超出了本文的范圍,但我將在下一篇文章中進一步探討。
高速緩存比系統(tǒng) RAM 更快,并且更接近 CPU,因為它位于處理器芯片上。高速緩存提供數(shù)據(jù)存儲和指令,以防止 CPU 等待從 RAM 中檢索數(shù)據(jù)。當 CPU 需要數(shù)據(jù)時——程序指令也被認為是數(shù)據(jù)——緩存會判斷數(shù)據(jù)是否已經(jīng)駐留并將其提供給 CPU。
如果請求的數(shù)據(jù)不在緩存中,它會從 RAM 中檢索并使用預(yù)測算法將更多數(shù)據(jù)從 RAM 移動到緩存中。緩存控制器分析請求的數(shù)據(jù)并嘗試預(yù)測需要從 RAM 中獲取哪些額外數(shù)據(jù)。它將預(yù)期的數(shù)據(jù)加載到緩存中。通過將一些數(shù)據(jù)保存在比 RAM 更快的高速緩存中更靠近 CPU,CPU 可以保持忙碌狀態(tài),而不會浪費等待數(shù)據(jù)的周期。
我們的簡單 CPU 具有三級緩存。第 2 級和第 3 級旨在預(yù)測接下來需要哪些數(shù)據(jù)和程序指令,將數(shù)據(jù)從 RAM 中移出,并將其移至更靠近 CPU 的位置,以便在需要時準備就緒。這些緩存大小通常在 1 MB 到 32 MB 之間,具體取決于處理器的速度和預(yù)期用途。
假設(shè)計算機已收到從內(nèi)存位置 10 讀取數(shù)據(jù)的指令。為執(zhí)行讀取操作,140CPU65260該CPU 將 R/W 線提升到高電平以激活內(nèi)存電路,為讀取操作做準備。幾乎同時,位置 10 的地址被放置在 AB 上。16位二進制(0000 0000 0000 1010)中的數(shù)字10被發(fā)送到AB中的內(nèi)存中。10對應(yīng)的二進制電信號操作內(nèi)存中的特定電路,使該位置的二進制數(shù)據(jù)被放置到DB中。CPU 有一個內(nèi)部寄存器,在讀取操作期間被激活以接收和存儲數(shù)據(jù)。然后CPU根據(jù)相關(guān)指令在下一個運行周期中處理數(shù)據(jù)。
每當 CPU 將數(shù)據(jù)從其內(nèi)部寄存器之一發(fā)送到內(nèi)存時,就會執(zhí)行類似的操作,這是一種“寫”操作。在這種情況下,R/W 線將設(shè)置為與讀取操作相反的邏輯電平(即本例中的低電平)。寫操作時,將要發(fā)送的數(shù)據(jù)放在DB中,同時目的地址放在AB中。此操作會將數(shù)據(jù)從 CPU 源位置傳輸?shù)侥繕宋恢?,目標位置可以是RAM中的內(nèi)存位置,也可以是外部設(shè)備
地址解碼器控制對特定設(shè)計的內(nèi)存和 I/O 寄存器的訪問。通常,可編程邏輯器件 (PLD) 用于將每個存儲芯片分配給特定范圍的地址。特定范圍內(nèi)的輸入地址代碼會生成片選輸出,從而啟用該設(shè)備。I/O 端口寄存器,設(shè)置為處理進出系統(tǒng)的數(shù)據(jù)傳輸,也通過相同的機制分配特定地址,并由 CPU 以與內(nèi)存位置相同的方式訪問。分配給特定外圍設(shè)備的地址稱為內(nèi)存映射。