PCI總線目標(biāo)控制器的設(shè)計
0引言
PCI(PeripheralComponentInterconnect)總線是微型計算機中處理器/存儲器與外圍控制部件、擴展卡之間的互聯(lián)接口。PCI總線規(guī)范是互聯(lián)機構(gòu)的協(xié)議,以及電氣和機械配置的規(guī)范,是當(dāng)今高性能微型計算機事實上的總線標(biāo)準(zhǔn)。[1]
PCI總線控制器為PCI總線和用戶設(shè)備提供操作接口,協(xié)調(diào)PCI總線信號和用戶設(shè)備接口信號,使用戶設(shè)備能夠按照PCI總線的規(guī)范進行數(shù)據(jù)的傳輸。本文設(shè)計了一個適用于CMOS圖象處理的PCI目標(biāo)控制器,具有較強的通用性。
1控制器的頂層設(shè)計
PCI總線目標(biāo)設(shè)備在總線傳輸中處于被動地位,它不會申請對總線的使用權(quán)。當(dāng)PCI總線上的某一主設(shè)備發(fā)起對本地資源的訪問時,整個控制邏輯的建立和數(shù)據(jù)傳輸?shù)倪^程都是通過目標(biāo)控制器實現(xiàn)的。
圖1目標(biāo)控制器頂層結(jié)構(gòu)
PCI系統(tǒng)中,目標(biāo)設(shè)備在地址周期內(nèi)響應(yīng)總線主設(shè)備的傳輸要求,并配合主設(shè)備完成整個數(shù)據(jù)傳輸。圖1為目標(biāo)控制器的詳細結(jié)構(gòu)圖。
本設(shè)計將目標(biāo)控制器按照功能分為幾個功能模塊實現(xiàn),即命令解碼器、狀態(tài)機、FIFO類型目標(biāo)接口和寄存器型目標(biāo)接口。命令解碼模塊和狀態(tài)機構(gòu)成目標(biāo)控制器的控制部分,PCI主設(shè)備發(fā)起某類型的操作,目標(biāo)控制器在地址周期內(nèi)解析相應(yīng)的地址和命令信息。在解析地址確定為本次操作的目標(biāo)設(shè)備后,目標(biāo)控制器會啟動目標(biāo)設(shè)備狀態(tài)機根據(jù)當(dāng)前解碼的信息進行一系列的控制操作。FIFO類型通道用于大批量的數(shù)據(jù)傳輸,可將本地存儲器塊掛接在該類型的數(shù)據(jù)通道上;寄存器類型接口用于數(shù)據(jù)量小的數(shù)據(jù)傳輸,該接口的后面可以掛接配置寄存器和一些本地功能設(shè)備的控制/狀態(tài)寄存器塊。這樣,PCI總線上的主設(shè)備既可以訪問到本地的存儲器設(shè)備也可以訪問本地的寄存器。下面從目標(biāo)控制器的數(shù)據(jù)路徑和控制路徑分別進行論述。
2控制模塊實現(xiàn)
目標(biāo)控制器的控制由兩部分完成,命令解碼器和目標(biāo)狀態(tài)機。命令解碼器解碼來自PCI總線上的地址命令信息作為目標(biāo)狀態(tài)機的輸入,狀態(tài)機鑒于此輸入執(zhí)行相應(yīng)的操作。
(1)命令解碼器:PCI總線主設(shè)備在地址周期內(nèi)通過命令數(shù)據(jù)線(C/BE#)設(shè)置不同的編碼可以發(fā)起以下的操作,I/O讀寫、存儲器讀寫、配置讀寫、存儲器行讀/多行讀和存儲器寫及使無效。
?。?)目標(biāo)狀態(tài)機[3]:對于PCI總線上傳來的信號,狀態(tài)機根據(jù)命令解碼器的解碼信息來控制總線控制器進行相應(yīng)的操作。如果地址信息不正確或者本地的設(shè)備正忙于存取數(shù)據(jù),狀態(tài)機會向PCI總線上發(fā)起本次操作的主設(shè)備回應(yīng)目標(biāo)丟棄或目標(biāo)重試。目標(biāo)狀態(tài)機的具體設(shè)計,如圖2所示。
評論