久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

邏輯地址 虛擬地址 物理地址 總線地址的區(qū)別

 night__light 2015-06-05

1 邏輯地址

邏輯地址是最為模糊的概念,。

《understanding the linux kernel》上的解釋是與虛擬地址相關(guān),基于硬件MMU與軟件內(nèi)存管理的一個(gè)概念,,具體可以看UTLK的第二章內(nèi)存尋址,有很詳細(xì)的解釋,。

但是工作中之前用到的MIPS架構(gòu)的處理器的解釋卻有出入,在《MIPS體系架構(gòu)透視》一書中,,邏輯地址是跟MMU無關(guān)的,,MIPS地址空間劃分中,Kseg0 Kseg1地址空間與真實(shí)的物理地址存在一個(gè)偏移量,,也就是存在線性關(guān)系,,是一種“簡(jiǎn)單的無須轉(zhuǎn)換翻譯”的關(guān)系,。

同一塊內(nèi)存被分別線性映射到這2個(gè)地址空間中,,無論處理器有無MMU單元,上電這2個(gè)地址空間就是劃分好的(2個(gè)地址空間區(qū)別在于是否默認(rèn)開啟緩存),。

對(duì)于MIPS處理器邏輯地址的劃分肯定是由其內(nèi)部邏輯電路來處理,,不需MMU,。


2 虛擬地址

虛擬地址做為程序員應(yīng)該聽說的最多,,不管是在linux還是windows下編程,,程序所操作地址都是虛擬地址,。

虛擬地址是硬件MMU與軟件內(nèi)存管理結(jié)合的產(chǎn)物,方便更高效率的使用RAM,。內(nèi)存管理是篇大文章,,這里就不聊細(xì)節(jié)了,,具體可以看UTLK的內(nèi)存尋址一章,。


邏輯地址 虛擬地址作為軟件開發(fā)人員在基于系統(tǒng)編程以及裸編下都會(huì)操作到。


3 物理地址

對(duì)于嵌入式開發(fā),物理地址是必須明白的,,物理地址是指處理器芯片發(fā)出,,來進(jìn)行地址空間尋址的地址,,它與處理器地址引腳上發(fā)出的電信號(hào)相對(duì)應(yīng),。

UTLK上說用于內(nèi)存芯片級(jí)的單元尋址,,真實(shí)的開發(fā)環(huán)境中不止這些,,因?yàn)樘幚砥魍獠砍薘AM還需要?jiǎng)e的外設(shè),,如nand, spi,,serial(當(dāng)然是指的這些外設(shè)的controller)等。

物理地址是處理器真實(shí)發(fā)送到其地址總線上的地址,,而該地址應(yīng)該訪問到誰(ram controller,?nand controller,?),這個(gè)需要看該設(shè)備系統(tǒng)總線的仲裁,,也就是總線仲裁,現(xiàn)在常用的總線仲裁有AXI AHBA等,。

這些總線仲裁器來規(guī)劃處理器的物理地址空間,。

大部分處理器手冊(cè)會(huì)給出其address map,也就是外設(shè)控制器(寄存器)在該處理器地址空間上的分布情況,。


對(duì)于處理器來說,,虛擬地址 邏輯地址都是一個(gè)輸入源,,處理器對(duì)這些地址進(jìn)行轉(zhuǎn)換(比如利用MMU),,轉(zhuǎn)換為物理地址,,真正處理器發(fā)出的地址是物理地址,。


4 總線地址

總線地址是最難理解的一個(gè)概念。

所有的地址都可以稱為總線地址,,因?yàn)殚_發(fā)環(huán)境下所有的設(shè)備都是接在總線上,,如AXI總線,,APB總線,,PCI總線 I2C總線 SPI總線。也就會(huì)存在很多種地址空間,。


大部分情況下,,總線地址=物理地址,,為什么呢,,物理地址是處理器在該系統(tǒng)總線上發(fā)出的地址,,因此處理器發(fā)出的物理地址完全可以理解為處理器地址空間的總線地址,這肯定是相等的,。

大部分程序操作都是處理器作為主設(shè)備,,根據(jù)指令,來發(fā)出地址,,讀寫數(shù)據(jù),。這時(shí)總線地址=物理地址

有一種情況下不是處理器做主設(shè)備,,DMA,DMA controller操作RAM是不需要經(jīng)過處理器的,,這是DMA controller是主設(shè)備,但是因?yàn)镈MA controller也是掛接在系統(tǒng)總線上,,也就是處理器的地址空間中,。

所以這時(shí)DMA controller發(fā)出的地址也是物理地址,。

有一種特殊情況下,總線地址與物理地址不同,,就是PCI總線,。

因?yàn)镻CI總線存在地址映射,,這是因?yàn)镻CI控制器內(nèi)部有橋接電路,,橋接電路會(huì)將I/O地址映射為不同的物理地址。

可以想象,,PCI控制器掛接在處理器的系統(tǒng)總線上,而另一端的PCI總線上外擴(kuò)了一些PCI設(shè)備,。

假如某個(gè)PCI設(shè)備具有DMA能力,,要去操作RAM,,這時(shí)該設(shè)備看到的RAM的地址就應(yīng)該是由系統(tǒng)總線映射到PCI總線上的總線地址,。

映射關(guān)系由PCI控制器地址窗口來配置,一般是一個(gè)偏移量,,所以這時(shí)映射到PCI總線上的RAM的總線地址就不是RAM在處理器系統(tǒng)地址空間上的物理地址(也可以稱為系統(tǒng)總線地址)了,。

因此總線地址  ,!=  物理地址,。

當(dāng)然PCI控制器地址窗口可以配置為平映射,,這時(shí)總線地址就跟物理地址相同了,。


這時(shí)還會(huì)想到一點(diǎn)問題,那像I2C總線 SPI總線會(huì)不會(huì)也有這樣的問題,,其實(shí)多慮了,,PCI總線存在這個(gè)問題,,是因?yàn)镻CI總線支持設(shè)備做主設(shè)備,,進(jìn)行DMA,。

而I2C SPI總線不具有這樣的能力,,但是他們還是有各自的地址空間,,因此我們?cè)诓僮鱅2C SPI總線時(shí)需要在其數(shù)據(jù)線上根據(jù)協(xié)議來發(fā)送地址鎖定設(shè)備的,。這個(gè)地址就不是處理器地址空間了,,而是相應(yīng)總線的地址空間了,。



經(jīng)過上面的解釋,,可以看出,,任何開發(fā)環(huán)境都存在很多地址總線(AXI PCI I2C SPI),,也就有很多地址空間,。


物理地址也是總線地址,,只不過是處理器系統(tǒng)總線地址(如AXI AHBA等)罷了


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多