Android中的Serializable、Parcelable">Android中的Serializable、Parcelable
839
2025-03-31
文章目錄
一、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 并不是直接與內存進行數據交互 , 在顯卡中維護了一塊 顯存 , 顯存中的數據可以直接與內存進行交互 , 顯卡與顯存進行數據交互 ;
Android
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。