<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時(shí)間:2016-12-15 來(lái)源:網(wǎng)絡(luò) 收藏

          2.1.2PCI總線(xiàn)域

          在x86處理器系統(tǒng)中,PCI總線(xiàn)域是外部設(shè)備域的重要組成部分。實(shí)際上在Intel的x86處理器系統(tǒng)中,所有的外部設(shè)備都使用PCI總線(xiàn)管理。而AMD的x86處理器系統(tǒng)中還存在一條HT(HyperTransport)總線(xiàn),在A(yíng)MD的x86處理器系統(tǒng)中還存在HT總線(xiàn)域。本書(shū)對(duì)HT總線(xiàn)不做進(jìn)一步介紹。

          PCI總線(xiàn)域(PCI Segment)由PCI設(shè)備所能直接訪(fǎng)問(wèn)的地址空間組成。在一個(gè)處理器系統(tǒng)中,可能存在多個(gè)HOST主橋,因此也存在多個(gè)PCI總線(xiàn)域。如在圖2?1所示的處理器系統(tǒng)中,具有兩個(gè)HOST主橋,因而在這個(gè)處理器系統(tǒng)中存在PCI總線(xiàn)x和y域。

          在多數(shù)處理器系統(tǒng)中,分屬于兩個(gè)PCI總線(xiàn)域的PCI設(shè)備并不能直接進(jìn)行數(shù)據(jù)交換,而需要通過(guò)FSB進(jìn)行數(shù)據(jù)交換。值得注意的是,如果某些處理器的HOST主橋支持Peer-to-Peer數(shù)據(jù)傳送,那么這個(gè)HOST主橋可以支持不同PCI總線(xiàn)域間的數(shù)據(jù)傳送。

          PowerPC處理器使用了OCeaN技術(shù)連接兩個(gè)HOST主橋,OCeaN可以將屬于x域的PCI數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)到y(tǒng)域,OCeaN支持PCI總線(xiàn)的Peer-to-Peer數(shù)據(jù)傳送。有關(guān)OCeaN技術(shù)的詳細(xì)說(shuō)明見(jiàn)第2.2節(jié)。

          2.1.3處理器域

          處理器域是指一個(gè)處理器系統(tǒng)能夠訪(fǎng)問(wèn)的地址空間集合。處理器系統(tǒng)能夠訪(fǎng)問(wèn)的地址空間由存儲(chǔ)器域和外部設(shè)備域組成。其中存儲(chǔ)器域地址空間較為簡(jiǎn)單,而在不同的處理器系統(tǒng)中,外部設(shè)備域的組成結(jié)構(gòu)并不相同。如在x86處理器系統(tǒng)中,外部設(shè)備域主要由PCI總線(xiàn)域組成,因?yàn)榇蠖鄶?shù)外部設(shè)備都是掛接在PCI總線(xiàn)[4]上的,而在PowerPC處理器和其他處理器系統(tǒng)中,有相當(dāng)多的設(shè)備與FSB直接相連,而不與PCI總線(xiàn)相連。

          本書(shū)僅介紹PCI總線(xiàn)域而不對(duì)其他外部設(shè)備域進(jìn)行說(shuō)明。其中存儲(chǔ)器域與PCI總線(xiàn)域之間由HOST主橋聯(lián)系在一起。深入理解這些域的關(guān)系是深入理解PCI體系結(jié)構(gòu)的關(guān)鍵所在,實(shí)際上這也是理解處理器體系結(jié)構(gòu)的基礎(chǔ)。

          通過(guò)HOST主橋,處理器系統(tǒng)可以將處理器域劃分為存儲(chǔ)器域與PCI總線(xiàn)域。其中存儲(chǔ)器域與PCI總線(xiàn)域,彼此獨(dú)立,并通過(guò)HOST主橋進(jìn)行數(shù)據(jù)交換。HOST主橋是聯(lián)系存儲(chǔ)器域與PCI總線(xiàn)域的橋梁,是PCI總線(xiàn)域?qū)嶋H的管理者。

          有些書(shū)籍認(rèn)為HOST處理器是PCI總線(xiàn)域的管理者,這種說(shuō)法并不精確。假設(shè)在一個(gè)SMP(symmetric multiprocessing)處理器系統(tǒng)中,存在4個(gè)CPU而只有一個(gè)HOST主橋,這4個(gè)CPU將無(wú)法判斷究竟誰(shuí)是HOST處理器。不過(guò)究竟是哪個(gè)處理器作為HOST處理器并不重要,因?yàn)樵谝粋€(gè)處理器系統(tǒng)中,是HOST主橋管理PCI總線(xiàn)域,而不是HOST處理器。當(dāng)一個(gè)處理器系統(tǒng)中含有多個(gè)CPU時(shí),如果這些CPU都可以訪(fǎng)問(wèn)HOST主橋,那么這些CPU都可以作為這個(gè)HOST主橋所管理PCI總線(xiàn)樹(shù)的HOST處理器。

          在一個(gè)處理器系統(tǒng)中,CPU所能訪(fǎng)問(wèn)的PCI總線(xiàn)地址一定在存儲(chǔ)器域中具有地址映射;而PCI設(shè)備能訪(fǎng)問(wèn)的存儲(chǔ)器域的地址也一定在PCI總線(xiàn)域中具有地址映射。當(dāng)CPU訪(fǎng)問(wèn)PCI域地址空間時(shí),首先訪(fǎng)問(wèn)存儲(chǔ)器域的地址空間,然后經(jīng)過(guò)HOST主橋轉(zhuǎn)換為PCI總線(xiàn)域的地址,再通過(guò)PCI總線(xiàn)事務(wù)進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)。而當(dāng)PCI設(shè)備訪(fǎng)問(wèn)主存儲(chǔ)器時(shí),首先通過(guò)PCI總線(xiàn)事務(wù)訪(fǎng)問(wèn)PCI總線(xiàn)域的地址空間,然后經(jīng)過(guò)HOST主橋轉(zhuǎn)換為存儲(chǔ)器域的地址后,再對(duì)這些空間進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)。

          由此可見(jiàn),存儲(chǔ)器域與PCI總線(xiàn)域的轉(zhuǎn)換關(guān)系由HOST主橋統(tǒng)一進(jìn)行管理。有些處理器提供了一些寄存器進(jìn)行這種地址映射,如PowerPC處理器使用Inbound和Outbound寄存器組保存存儲(chǔ)器域與PCI總線(xiàn)域的地址映射關(guān)系;而有些處理器并沒(méi)有提供這些寄存器,但是存儲(chǔ)器域到PCI總線(xiàn)域的轉(zhuǎn)換關(guān)系依然存在。

          HOST主橋進(jìn)行不同地址域間的數(shù)據(jù)交換時(shí),需要遵循以下規(guī)則。為區(qū)別存儲(chǔ)器域到PCI總線(xiàn)域的地址映射,下文將PCI總線(xiàn)域到存儲(chǔ)器域的地址映射稱(chēng)為反向映射。

          (1)處理器訪(fǎng)問(wèn)PCI總線(xiàn)域地址空間時(shí),首先需要訪(fǎng)問(wèn)存儲(chǔ)器域的地址空間,之后通過(guò)HOST主橋?qū)⒋鎯?chǔ)器地址轉(zhuǎn)換為PCI總線(xiàn)地址,之后才能進(jìn)入PCI總線(xiàn)域進(jìn)行數(shù)據(jù)交換。PCI設(shè)備使用的地址空間保存在各自的PCI配置寄存器中,即BAR寄存器中。這些PCI總線(xiàn)地址空間需要在初始化時(shí)映射成為存儲(chǔ)器域的存儲(chǔ)器地址空間,之后處理器才能訪(fǎng)問(wèn)這些地址空間。在有些處理器的HOST主橋中,具有獨(dú)立的寄存器保存這個(gè)地址映射規(guī)則,如PowerPC處理器的Outbound寄存器組;而有些處理器,如在x86處理器中,雖然沒(méi)有這樣的寄存器組,但是在HOST主橋的硬件邏輯中仍然存在這個(gè)地址轉(zhuǎn)換的概念。

          (2)PCI設(shè)備訪(fǎng)問(wèn)存儲(chǔ)器域時(shí),首先需要訪(fǎng)問(wèn)PCI總線(xiàn)域的地址空間,之后通過(guò)HOST主橋?qū)CI總線(xiàn)地址轉(zhuǎn)換為存儲(chǔ)器地址,之后才能穿越HOST主橋進(jìn)行數(shù)據(jù)交換。為此處理器需要通過(guò)HOST主橋?qū)⑦@個(gè)PCI總線(xiàn)地址反向映射為存儲(chǔ)器地址。PCI設(shè)備不能訪(fǎng)問(wèn)在PCI總線(xiàn)域中沒(méi)有進(jìn)行這種反向映射的存儲(chǔ)器域地址空間。PowerPC處理器使用Inbound寄存器組存放PCI設(shè)備所能訪(fǎng)問(wèn)的存儲(chǔ)器空間,而在x86處理器中并沒(méi)有這樣的寄存器組,但是依然存在這個(gè)地址轉(zhuǎn)換的概念。

          (3)如果HOST主橋不支持Peer-to-Peer傳送方式,那么分屬不同PCI總線(xiàn)域的PCI設(shè)備間不能直接進(jìn)行數(shù)據(jù)交換。在32位的PCI總線(xiàn)中,每一個(gè)PCI總線(xiàn)域的地址范圍都是0x0000-0000~0xFFFF-FFFF,但是這些地址沒(méi)有直接聯(lián)系。PCI總線(xiàn)x域上的PCI總線(xiàn)地址0x0000-0000與PCI總線(xiàn)y域上的PCI總線(xiàn)地址0x0000-0000并不相同,而且這兩個(gè)PCI總線(xiàn)地址經(jīng)過(guò)HOST主橋反向映射后,得到的存儲(chǔ)器地址也不相同。

          本篇在第2.2節(jié)中,主要以PowerPC處理器為例說(shuō)明HOST主橋的實(shí)現(xiàn)機(jī)制,并在第2.2.4節(jié)簡(jiǎn)要說(shuō)明了x86處理器中的南北橋構(gòu)架。盡管部分讀者對(duì)PowerPC處理器并不感興趣,筆者仍然強(qiáng)烈建議讀者仔細(xì)閱讀第2.2節(jié)的全部?jī)?nèi)容。

          在PowerPC處理器中,HOST主橋的實(shí)現(xiàn)比較完整,尤其是PCI總線(xiàn)域與存儲(chǔ)器域的映射關(guān)系比較明晰,便于讀者準(zhǔn)確掌握這個(gè)重要的概念。而x86處理器由于考慮向前兼容,設(shè)計(jì)中包含了太多的不得已,x86處理器有時(shí)不得不保留原設(shè)計(jì)中的不完美,向前兼容是Intel的重要成就,也是一個(gè)沉重的十字架。



          [1]MPC8548處理器基于E500 V2內(nèi)核。目前E500內(nèi)核包括V1,V2和mc(MultiCore)三個(gè)版本。

          [2]x86處理器的Memory Fence指令為MFENCE,LFENCE和SFENCE,而PowerPC處理器的Memory Fence指令為msync和mbar。

          [3]PCI總線(xiàn)域只含有物理地址,因此下文將直接使用PCI總線(xiàn)地址,而不使用PCI總線(xiàn)物理地址。

          [4]AMD的x86處理器中的某些外部設(shè)備,可能是基于HT總線(xiàn),而不使用PCI總線(xiàn)。



          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();