新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 存儲(chǔ)器域與PCI總線域

存儲(chǔ)器域與PCI總線域

作者: 時(shí)間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
HOST主橋的實(shí)現(xiàn)因處理器系統(tǒng)而異。PowerPC處理器和x86處理器的HOST主橋除了集成方式不同之外,其實(shí)現(xiàn)機(jī)制也有較大差異。但是這些HOST主橋所完成的最基本功能依然是分離存儲(chǔ)器域與PCI總線域,完成PCI總線域到存儲(chǔ)器域,存儲(chǔ)器域到PCI總線域之間的數(shù)據(jù)傳遞,并管理PCI設(shè)備的配置空間。

上文曾經(jīng)多次提到在一個(gè)處理器系統(tǒng)中,存在PCI總線域與存儲(chǔ)器域,深入理解這兩個(gè)域的區(qū)別是理解HOST主橋的關(guān)鍵所在。在一個(gè)處理器系統(tǒng)中,存儲(chǔ)器域、PCI總線域與HOST主橋的關(guān)系如圖2?1所示。

本文引用地址:http://www.2s4d.com/article/201612/330479.htm

上圖所示的處理器系統(tǒng)由一個(gè)CPU,一個(gè)DRAM控制器和兩個(gè)HOST主橋組成。在這個(gè)處理器系統(tǒng)中,包含CPU域、DRAM域、存儲(chǔ)器域和PCI總線域地址空間。其中HOST主橋x和HOST主橋y分別管理PCI總線x域與PCI總線y域。PCI設(shè)備訪問存儲(chǔ)器域時(shí),也需要通過HOST主橋,并由HOST主橋進(jìn)行PCI總線域到存儲(chǔ)器域的地址轉(zhuǎn)換;CPU訪問PCI設(shè)備時(shí),同樣需要通過HOST主橋進(jìn)行存儲(chǔ)器域到PCI總線域的地址轉(zhuǎn)換。

如果HOST主橋支持Peer-to-Peer傳送機(jī)制,PCI總線x域上的設(shè)備可以與PCI總線y域上的設(shè)備直接通信,如PCI設(shè)備x11可以直接與PCI設(shè)備y11通信。為簡(jiǎn)化模型,在本書中,PCI總線僅使用32位地址空間。

2.1.1CPU域、DRAM域與存儲(chǔ)器域

CPU域地址空間指CPU所能直接訪問的地址空間集合。在本書中,CPU、處理器與處理器系統(tǒng)的概念不同。如MPC8548處理器的內(nèi)核是E500 V2[1],本書將這個(gè)處理器內(nèi)核稱為CPU;處理器由一個(gè)或者多個(gè)CPU、外部Cache、中斷控制器和DRAM控制器組成;而處理器系統(tǒng)由一個(gè)或者多個(gè)處理器和外部設(shè)備組成。

在CPU域中有一個(gè)重要概念,即CPU域邊界,所謂CPU域邊界,即CPU所能控制的數(shù)據(jù)完整性邊界。CPU域的邊界由Memory Fence指令[2]的作用范圍確定,CPU域邊界的劃分對(duì)數(shù)據(jù)完整性(Data Consistency)非常重要。與CPU域相關(guān)的數(shù)據(jù)完整性知識(shí)較為復(fù)雜,可以獨(dú)立出書,因此本篇對(duì)數(shù)據(jù)完整性不做進(jìn)一步介紹。筆者有計(jì)劃再更新完P(guān)CIe總線部分的資料后,書體系結(jié)構(gòu)的兩方面內(nèi)容,一個(gè)是Cache層次結(jié)構(gòu),一個(gè)是以Weakly Ordered Memory Modle為基礎(chǔ)書寫數(shù)據(jù)完整性。

嚴(yán)格的講CPU域僅在CPU內(nèi)核中有效,CPU訪問主存儲(chǔ)器時(shí),首先將讀寫命令放入讀寫指令緩沖中,然后將這個(gè)命令發(fā)送到DRAM控制器或者HOST主橋。DRAM控制器或者HOST主橋?qū)PU地址轉(zhuǎn)換為DRAM或者PCI總線地址,分別進(jìn)入DRAM域或者PCI總線域后,再訪問相應(yīng)的地址空間。

DRAM域地址空間指DRAM控制器所能訪問的地址空間集合。目前處理器系統(tǒng)的DRAM一般由DDR-SDRAM組成,有的書籍也將這部分內(nèi)存稱為主存儲(chǔ)器。在有些處理器系統(tǒng)中,DRAM控制器能夠訪問的地址空間,并不能被處理器訪問,因此在這類處理器系統(tǒng)中,CPU域與DRAM域地址空間并不等同。

比如有些CPU可以支持36位的物理地址,而有些DRAM控制器僅支持32位的物理地址,此時(shí)CPU域包含的地址空間大于DRAM域地址空間。但是這并不意味著DRAM域一定包含在CPU域中,在某些處理器系統(tǒng)中,CPU并不能訪問在DRAM域中的某些數(shù)據(jù)區(qū)域。而CPU域中除了包含DRAM域外,還包含外部設(shè)備空間。

在多數(shù)處理器系統(tǒng)中,DRAM域空間是CPU域空間的一部分,但是也有例外。比如顯卡控制器可能會(huì)借用一部分主存儲(chǔ)器空間,這些被借用的空間不能被CPU訪問,而只能被DRAM控制器,更為準(zhǔn)確地說是顯卡通過DRAM控制器訪問,因此這段空間不屬于CPU域,嚴(yán)格地講,這段空間屬于外部設(shè)備域。

本書使用存儲(chǔ)器域統(tǒng)稱CPU域與DRAM域。存儲(chǔ)器域包括CPU內(nèi)部的通用寄存器,存儲(chǔ)器映像尋址的寄存器,主存儲(chǔ)器空間和外部設(shè)備空間。在Intel的x86處理器系統(tǒng)中,外部設(shè)備空間與PCI總線域地址空間等效,因?yàn)樵趚86處理器系統(tǒng)中,使用PCI總線統(tǒng)一管理全部外部設(shè)備。為簡(jiǎn)化起見,本書使用PCI總線域替代外部設(shè)備域。

值得注意的是,存儲(chǔ)器域的外部設(shè)備空間,在PCI總線域中還有一個(gè)地址映射。當(dāng)處理器訪問PCI設(shè)備時(shí),首先訪問的是這個(gè)設(shè)備在存儲(chǔ)器域上的PCI設(shè)備空間,之后HOST主橋?qū)⑦@個(gè)存儲(chǔ)器域的PCI總線地址轉(zhuǎn)換為PCI總線域的物理地址[3],然后再通過PCI總線事務(wù)訪問PCI總線域的地址空間。


上一頁 1 2 下一頁

關(guān)鍵詞: 存儲(chǔ)器域PCI總線

評(píng)論


技術(shù)專區(qū)

關(guān)閉