一種基于PCI交換的數(shù)據(jù)處理模塊設(shè)計
摘要:PCI Express突破傳統(tǒng)總線,采用點(diǎn)到點(diǎn)的互連方式,每個設(shè)備都由獨(dú)立的鏈路連接,獨(dú)享帶寬,提高傳輸速率。PCIE交換和橋接器提供協(xié)議轉(zhuǎn)換能力為系統(tǒng)間的互連帶來了便捷的解決方案,同時豐富了整個應(yīng)用環(huán)境。本文基于PEX8648交換芯片設(shè)計實(shí)現(xiàn)了多PCIE設(shè)備互連的數(shù)據(jù)處理模塊,對其硬件結(jié)構(gòu)及軟件配置方法進(jìn)行了詳細(xì)介紹。
本文引用地址:http://m.butianyuan.cn/article/256366.htm0 引言
PCI Express是第三代高性能IO總線,在總線結(jié)構(gòu)上采取了根本性的變革,主要體現(xiàn)在兩個方面:一是由并行總線轉(zhuǎn)變?yōu)榇锌偩€;二是采用點(diǎn)到點(diǎn)的互連。將原并行總線結(jié)構(gòu)中橋下面掛連設(shè)備的一條總線變成一條鏈路,一條鏈路可包含一條或多條通路,每條通路由兩對差分信號線組成雙單工的串行傳輸通道,沒有專用的數(shù)據(jù)、地址、控制和時鐘線,總線上各種事務(wù)組成信息包來傳送。點(diǎn)到點(diǎn)的互連方式使得每個設(shè)備由獨(dú)立的鏈路連接,獨(dú)享帶寬,這是提高傳輸速率的有效解決方案。
隨著數(shù)量不斷增長的PCIe處理單元和外設(shè)芯片,PCIE交換和橋接器提供協(xié)議轉(zhuǎn)換能力,為這些系統(tǒng)的互連帶來了便捷的解決方案,同時豐富了整個應(yīng)用環(huán)境。PLX8648是PLX公司開發(fā)的PCIE交換芯片,符合PCIE2.0標(biāo)準(zhǔn)。支持12 port,48 lane,并且端口可以靈活配置、支持多播、低延遲、低功耗。支持熱插拔功能,含有三個并行控制器和一個IIC串行擴(kuò)展模塊,配合使用IO端口控制器,可以在每個下游端口實(shí)現(xiàn)熱插拔控制功能。本文采用PEX8648設(shè)計實(shí)現(xiàn)了一種可連接多種PCIE設(shè)備的數(shù)據(jù)處理模塊。
1 PCIE交換開關(guān)
交換開關(guān)是一個具有2~n端口的設(shè)備,每個端口連一條PCIE鏈路,在系統(tǒng)中用于多設(shè)備的互聯(lián)。交換開關(guān)可以將事務(wù)從任一個端口路由到另一個端口,交換開關(guān)內(nèi)部可以抽象為圖1的邏輯結(jié)構(gòu),基于一條虛擬PCI總線,該總線與上游端口及各下游端口間均為一虛擬PCI橋,各橋都采用PCI類型01配置空間頭標(biāo),配置和枚舉軟件在系統(tǒng)引導(dǎo)時檢測并初始化頭標(biāo)寄存器。
PLX公司的PEX8648最多支持48通路,12端口的PCI Express Gen 2交換芯片,可選擇配置每個端口的通路數(shù)為X4,X8或X16,也支持X1和x2的通路數(shù),合計480GT/s的帶寬。PEX8648交換開關(guān)具有靈活的體系結(jié)構(gòu),48條通路被平均分配在3個控制端口中,稱之為Station,每個station包含16條通路,這3個控制端口通過內(nèi)部互連到中樞RAM中。每個station中的16條通路可以組合,配置成1到4個PCIE端口。如果上游端口在其他station中,則當(dāng)前station中的端口將使能為下游端口。其端口配置表如表1所示,表中方括號內(nèi)為通道號。
所有的端口序號都與下游端口內(nèi)部虛擬PCI總線的PCI-PCI橋分派的PCI設(shè)備號相關(guān)聯(lián),例如端口6是一個下游端口,則內(nèi)部PCI-PCI橋分給這個端口設(shè)備的Device Number就是6。PEX8648的任何一個端口都可配置成上游端口,但推薦將端口0配置成上游端口,PCI-PCI橋?qū)ι嫌味丝诓辉O(shè)定設(shè)備號,該端口的設(shè)備號由上游連接的設(shè)備分配。
2 模塊設(shè)計
2.1 功能框圖
本文設(shè)計的數(shù)據(jù)處理模塊采用PowerPC8640處理器,該處理器配置了兩種靈活的高性能IO接口。一種是×1、×2、×4、×8 PCI Expre ss接口,采用PCI-E總線實(shí)現(xiàn)板級高性能設(shè)備的串行點(diǎn)對點(diǎn)互連。另一種是1×、4×線串行RapidIO接口,本設(shè)計中均配置為PCIE接口。處理器對外通過PCIE交換開關(guān)互連顯示處理芯片和存儲控制單元,對外提供4路PCIE鏈路,可以連接更多的PCIE設(shè)備,其功能結(jié)構(gòu)如圖2所示。
2.2 PEX8648端口分配
處理器總共連接6種PCIE設(shè)備,將處理器第二路PCIE接口上接PEX8648交換芯片,將PEX8648的port0設(shè)置成上游端口,配置為×8的PCI Express接口,交換開關(guān)下連接PCIE接口的顯示處理器,2路對外×4的PCIE接口和2路×1的PCIE接口,5種設(shè)備連接的端口號分別現(xiàn)配置如圖2所示,Port0為上游端口8640 PCIE1,×8通路;Port4和Port5為×4通路;Port6和port7為×1通路,Port8連接顯示處理器,配置×8通路。
2.3 中斷號映射
PEX8648支持PCI INTx信號中斷機(jī)制,它可以向系統(tǒng)中斷控制器發(fā)送中斷信號。這種機(jī)制和現(xiàn)存的PCI軟件兼容。PEX8648只用INTA#生成內(nèi)部中斷消息,因?yàn)樗且粋€單功能設(shè)備,但從下游端點(diǎn)引入的消息可以是INTA#、INTB#、INTC#、INTD#,下游端口內(nèi)部生成的INTA#中斷消息將依照下游端口的設(shè)備號在上游端口重新映射。這種重新映射表如表2所示。
根據(jù)表2,PEX8648下掛接的5路PCIE接口連接的設(shè)備均發(fā)送INTA#中斷,因此,按照它們連接的端口號分配如下:Port4對應(yīng)INTA,Port5對應(yīng)INTB,Port6對應(yīng)INTC,Port7對應(yīng)INTD,Port8對應(yīng)INTA。
處理器PowerPC8640兩路PCIE接口在根復(fù)合節(jié)點(diǎn)模式下接收INTx虛擬中斷信號,并將INTx中斷信號與中斷請求信號IRQn邏輯上進(jìn)行組合,其映射關(guān)系如下
由上表可以得出在系統(tǒng)中斷分配時,Port4對應(yīng)IRQ0,Port5對應(yīng)IRQ1,Port6對應(yīng)IRQ2,Port7對應(yīng)IRQ3,Port8對應(yīng)IRQ0。
3 PCIE接口軟件初始化
PowerPC8640的PCIE控制器上電后需要對配置寄存器以及EP設(shè)備進(jìn)行初始化。首先初始化PowerPC8640的基地址和空間大小。處理器8640在內(nèi)部定義了多個局部存取窗口,按照優(yōu)先級選取一個窗口作為PCIE的配置窗口,可設(shè)置窗口的基地址和窗口大小。然后掃描PCIE鏈路上的PCIE設(shè)備,這時能掃描到PowerPC8640的PCIE設(shè)備,通過看ID號可判定掃描到PowerPC8640的PCIE設(shè)備后進(jìn)行PCIE鏈路訓(xùn)練,訓(xùn)練通過后進(jìn)行PowerPC8640的PCIE設(shè)備寄存器設(shè)置,需要把PowerPC8640的PCIE設(shè)備配置為主設(shè)備,設(shè)置PowerPC8640 的PCIE設(shè)備為BUS0,點(diǎn)對點(diǎn)連接的設(shè)備為BUS1。
評論