原创 嵌入式linux開發 (三十五) 內存管理3.0(1) linux內存管理之用戶空間

這個概念有點大,先從用戶程序的段開始看吧 // 需要知道 用戶程序中的 (.code .rodata .data .bss .stack .heap) 在哪裏 // 需要知道 用戶程序中訪問的地址是虛擬地址還是物理地址 有一個工

原创 linux內存管理 (二) [硬件1] MMU及其運行過程 關鍵過程三 cache

=========================================== 虛擬地址和物理地址的轉換 關鍵過程3 根據物理地址pa從cache中獲取value 緩存中的基本存儲單元是緩存線。 緩存線包含緩存數據或指

原创 linux內存管理 (二) [硬件1] MMU及其運行過程 關鍵過程二 translation table walk

前言 =========================================== 虛擬地址和物理地址的轉換 關鍵過程2 TableWalkUnit從主存中的轉換表(頁表)中獲取pa 1.轉換表地址 (CP15 的 c

原创 linux內存管理 (二) [硬件1] MMU的操作手冊

引言 爲什麼linux會發展成這個樣子,這當然是程序員對程序的要求決定的, 爲了滿足這些要求,提出了 進程地址空間抽象(1) , 其中 硬件上增加了新的模塊MMU(2), 軟件上根據MMU的使用手冊(3)更新了系統 另外在 進程地

原创 linux內存管理 (二) [硬件1] MMU及其運行過程 關鍵過程一 TLB

=========================================== 虛擬地址和物理地址的轉換 關鍵過程1 從TLBs獲取pa 當處理器要訪問一個虛擬地址時,首先會在TLB中查詢。 如果TLB表項中沒有相應

原创 linux內存管理 (二) [硬件1] MMU及其運行過程 關鍵過程四 DDR

=========================================== 虛擬地址和物理地址的轉換 關鍵過程4 根據物理地址pa從主存中其他部分中獲取value 操作總線,根據ddr時序讀取主存,時序在總線(時鐘/

原创 linux內存管理 (二) [硬件1] MMU及其運行過程 總覽

引言 爲什麼linux會發展成這個樣子,這當然是程序員對程序的要求決定的, 爲了滿足這些要求,提出了 進程地址空間抽象(1) , 其中 硬件上增加了新的模塊MMU(2), 軟件上根據MMU的使用手冊(3)更新了系統 另外在 進程地

原创 linux內存管理 (二) [硬件3][概念] SMP-Consistency之內存順序模型1

內存順序模型解讀 內存順序模型解讀 內存順序解讀: 到底我們看到的內存生效的順序是怎麼樣的?這個就叫內存順序模型。 程序順序 : 程序給出的指令的執行順序(一般涉及到讀寫內存),這代表程序員的意欲。// 程序員從

原创 linux內存管理 (二) [硬件2] CP15系統控制協處理器的寄存器描述

寄存器總覽 寄存器分類 @Register 1 :ID codes @Register 2 :Control registers CP15寄存器2 3 4 5 6、8、10和13被分配給 VMSA/PMSA。 有關

原创 linux內存管理 (二) [硬件3][概念] SMP-Consistency之內存操作的原子化

原子化操作是什麼 原子化這個問題要看每個體系結構的定義。每種體系結構都會說明自己哪些內存操作是原子的。更復雜的問題是進行通訊的時候需要做“讀-判斷-寫”這樣一個組合原子操作。早期CPU比較簡單,比如早期的x86會用LOCK這樣

原创 linux內存管理 (二) [硬件總覽] ARMv6 存儲系統 Memory and System Architectures

內存管理armv6硬件相關內容 章節概覽 Memory and System Architectures 存儲順序模型 讀寫定義 內存屬性 內存訪問的順序要求 內存屏障 存儲一致性 系統控制協處理器

原创 linux內存管理 (二) [硬件2] CP15系統控制協處理器

引言 爲什麼linux會發展成這個樣子,這當然是程序員對程序的要求決定的, 爲了滿足這些要求,提出了 進程地址空間抽象(1) , 其中 硬件上增加了新的模塊MMU(2), 軟件上根據MMU的使用手冊(3)更新了系統 另外在 進程地

原创 linux內存管理 (一) Linux內存管理髮展歷史及進程地址空間抽象

引言 嵌入式linux開發 (三十五) 內存管理3.0(1) linux內存管理之用戶空間 相當於 Linux內存管理的引言 上面這篇文章介紹了 linux OS 提供給 應用程序的 (虛擬)地址空間 應用程序的地址空間分6段(其

原创 linux內存管理 (三) [硬件] MMU的操作手冊

引言 爲什麼linux會發展成這個樣子,這當然是程序員對程序的要求決定的, 爲了滿足這些要求,提出了 進程地址空間抽象(1) , 其中 硬件上增加了新的模塊MMU(2), 軟件上根據MMU的使用手冊(3)更新了系統 另外在 進程地

原创 linux內存管理 (二) [硬件] MMU及其運行過程 關鍵過程三 cache

=========================================== 虛擬地址和物理地址的轉換 關鍵過程3 根據物理地址pa從cache中獲取value 緩存中的基本存儲單元是緩存線。 緩存線包含緩存數據或指