PCI-Express非透明橋在智能 系統(tǒng)中的應(yīng)用設(shè)計(jì)
2.1 地址翻譯
在非透明橋環(huán)境中,PCI Express系統(tǒng)需要在從一個(gè)內(nèi)存地址空間穿越到另一個(gè)地址空間時(shí)進(jìn)行地址翻譯。每一個(gè)非透明橋(NTB)端口都有兩套基地址寄存器(BAR),一套是給主設(shè)備端用的,另一套是給從設(shè)備端用的。基地址寄存器可用來定義在非透明橋另一端的內(nèi)存地址空間的地址翻譯窗口,并允許這個(gè)翻譯被映射到本地的內(nèi)存或I/O空間。每個(gè)BAR定義了一個(gè)設(shè)置寄存器(setup register),可用來定義窗口的大小、類型以及一個(gè)地址翻譯寄存器。與透明橋基于總線號(hào)轉(zhuǎn)發(fā)所有CSRs不同,非透明橋設(shè)備只接受針對本設(shè)備的CSR事務(wù)。其地址翻譯技術(shù)有直接地址翻譯和查表地址翻譯兩種。
在直接地址翻譯模式下,地址翻譯的過程是基于事務(wù)終結(jié)的BAR基址加上一個(gè)偏移量。BARs中的基址翻譯寄存器可被用來設(shè)置這樣的翻譯。圖3所示給出了從主設(shè)備端地址映射到從設(shè)備端地址的偏移過程。本文引用地址:http://butianyuan.cn/article/163437.htm
BARs則用一種特別的查找表來為落在它窗口中的事務(wù)進(jìn)行地址翻譯。因?yàn)榈刂分械乃饕蚩赏ㄟ^編程來調(diào)節(jié)窗口大小,因此,這種方法在本地地址到主機(jī)地址的映射中具有更高的靈活性。通常索引被用來提供新內(nèi)存地址的高位比特(bits)。
2.2 處理器間的通信
非透明橋允許橋兩邊的主機(jī)通過便箋寄存器、門鈴寄存器和心跳消息來交換一些狀態(tài)信息。
便箋寄存器在非透明橋的兩端都是可讀寫的,但是,便箋寄存器的數(shù)量在具體的實(shí)現(xiàn)中是可以不同的。他們可以被橋兩邊的設(shè)備用來傳送一些狀態(tài)信息,也可作為通用的可讀可寫寄存器使用。
門鈴寄存器被用來從非透明橋的一邊向另一邊發(fā)送中斷。非透明橋的兩邊一般都有軟件可以控制的中斷請求寄存器和相應(yīng)的中斷屏蔽寄存器。這些寄存器在非透明橋的兩邊都是可以被訪問的。
心跳消息一般來自主設(shè)備端往從設(shè)備端的主機(jī),可用來指示它還活著。從設(shè)備主機(jī)可監(jiān)控主設(shè)備主機(jī)的狀態(tài),如果發(fā)現(xiàn)出錯(cuò),它就可以采取一些必要的措施。通過門鈴寄存器可以傳送心跳消息。當(dāng)從設(shè)備主機(jī)沒有收到一定數(shù)量預(yù)先規(guī)定好的心跳消息時(shí),就可以認(rèn)為主設(shè)備的主機(jī)出錯(cuò)了。
3 基于PCI Express非透明橋的多主機(jī)系統(tǒng)
3.1 智能插卡
在智能卡模式下,智能插卡上的PCI Express非透明橋可以將IOP和Host CPU隔離開來,但仍允許這兩個(gè)CPU通過一些特殊的寄存器進(jìn)行通信。圖4所示是智能插卡模式下的非透明橋的通信結(jié)構(gòu)。
評論