文章目錄
- 一、x86 CPU 模型
- 二、記憶體模型
一、x86 CPU 模型
下圖是 x86 架構的 CPU 模型圖 :
左側的 EAX , EBX , ECX , EDX , ESI , EDI , EBP , ESP , CS , DS , ES , FS , GS , SS , EFLAGS , EIP 等 16 16 16 個各種顏色的模塊 , 都是 " 暫存器 " ;
暫存器可以訪問 " 高速快取 " , 這里的高速快取就是 一級 / 二級 / 三級 快取 ;
高速快取 與 記憶體相對應 , 快取中快取的資料就是記憶體中的資料 ;
CPU 讀取記憶體中的資料 : 如果在高速快取中有相應資料 , 就直接加載到暫存器中 , 如果 高速快取 中沒有資料 , 就將資料從記憶體中加載到 高速快取 中 ;
CPU 讀取硬碟中資料 : 首先將硬碟的檔案 , 加載到記憶體中 , 然后從記憶體中加載到 CPU 高速快取中 , 最后才能將高速快取中的資料加載到暫存器中 ;

段暫存器 , 每個暫存器 16 16 16 位 , 2 2 2 位元組 , 是 x86- 32 32 32 位架構 的遺留產物 , 在 64 64 64 位架構中 , 基本不會使用 ;
32 32 32 位的暫存器 , 通用暫存器 , 變址暫存器 , 指標暫存器 , 在 x86- 64 64 64 位架構中經常使用 ;
- 通用暫存器是用于計算的 ;
- 變址暫存器 和 指標暫存器 是用于訪問記憶體的 , 如將記憶體中的資料加載到暫存器中 , 或者將暫存器中的資料寫出到記憶體中 ;
標志暫存器 : 根據不同的標志 , 進行不同的操作 , 如跳轉 ; ( 實作 if 和 else 類似操作 )
指令暫存器 : 表明下一條要執行的指令位置 ;
二、記憶體模型
CPU 和 記憶體之間是可以直接訪問的 ;
CPU 訪問 硬碟 , 顯卡 , 顯示幕 等其它外部設備 , 是通過記憶體間接訪問的 ;

記憶體訪問硬碟 : 硬碟中的資料不是直接寫入到記憶體中的 , 硬碟中維護了一個硬碟快取 , 記憶體加載硬碟資料時 , 先查看硬碟快取中是否有相應資料 ,
- 如果有直接加載到記憶體中 ;
- 如果沒有 , 則先將硬碟資料加載到硬碟快取中 , 然后再加載到記憶體中 ;
記憶體訪問顯卡 : 顯卡 GPU 并不是直接與記憶體進行資料互動 , 在顯卡中維護了一塊 顯存 , 顯存中的資料可以直接與記憶體進行互動 , 顯卡與顯存進行資料互動 ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/308880.html
標籤:其他
