欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

單功能pci設(shè)備的多功能模擬實(shí)現(xiàn)方法和裝置的制作方法

文檔序號:6584408閱讀:357來源:國知局
專利名稱:單功能pci設(shè)備的多功能模擬實(shí)現(xiàn)方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及PCI設(shè)備驅(qū)動領(lǐng)域,尤其涉及一種通過軟件和硬件配合將物理特性上 為單功能PCI設(shè)備在驅(qū)動程序里模擬成應(yīng)用程序可控制的PCI多功能設(shè)備的實(shí)現(xiàn)方法和裝置。
背景技術(shù)
隨著計(jì)算機(jī)應(yīng)用的不斷更新和發(fā)展,計(jì)算機(jī)內(nèi)數(shù)據(jù)傳輸?shù)膸捯笤絹碓礁撸?傳統(tǒng)內(nèi)部總線帶寬已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足這些應(yīng)用的需要,因此出現(xiàn)了 PCI (Peripheral Component htercormect的縮寫,意為外設(shè)部件互連)總線標(biāo)準(zhǔn)。PCI以其高性能、低成本 以及良好的擴(kuò)展性而在計(jì)算機(jī)系統(tǒng)中被廣泛使用,特別是用于連接控制CPU(中央處理器) 和PCI設(shè)備。所說的PCI設(shè)備是指符合PCI總線標(biāo)準(zhǔn)的設(shè)備。PCI總線標(biāo)準(zhǔn)中定義了一套 配置空間寄存器用于讀取或者設(shè)置PCI設(shè)備的信息。每個(gè)PCI設(shè)備都有自己的配置空間 (Configuration Space)寄存器。目前,當(dāng)采用單功能PCI設(shè)備時(shí),不能在操作系統(tǒng)用戶空 間中表示為多功能PCI設(shè)備。因此,用戶在操作單功能PCI設(shè)備時(shí)會遇到一些問題,例如, 對一塊雙端口網(wǎng)卡,因?yàn)闆]有提供對PCI-E (PCI Express,最新的總線和接口標(biāo)準(zhǔn))多功能 的支持,用戶只能使用單個(gè)網(wǎng)絡(luò)接口,如ethO對兩個(gè)端口進(jìn)行控制,這與用戶以往的使用 方式?jīng)_突,給用戶使用造成不便。FPGA(Field Programmable Gate Array的縮寫,意為現(xiàn)場可編程門陣列)是在可 編程陣列邏輯 PAL (Programmable Array Logic)、門陣列邏輯 GAL (Gate Array Logic)、可 編程邏輯器件PLD (Programmable Logic Device)等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn) 物。它是作為專用集成電路ASIC(Application Specific Integrated Circuit)領(lǐng)域中的 一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù) 有限的缺點(diǎn)。FPGA能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74系列電路, 都可以用FPGA來實(shí)現(xiàn)。

發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)無法將單功能PCI設(shè)備在操作系統(tǒng)用戶空間中表示為PCI多功能設(shè) 備,給用戶使用造成一些不便的問題,本發(fā)明的目的是提供一種用戶無需改變使用方式,而 且操作更加方便的單功能PCI設(shè)備模擬成多功能PCI設(shè)備的方法。為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種單功能PCI設(shè)備的多功能 模擬實(shí)現(xiàn)方法,包括下列步驟PCI設(shè)備驅(qū)動程序根據(jù)預(yù)先設(shè)置的參數(shù)確定單功能PCI設(shè)備 要模擬成多功能設(shè)備的數(shù)量;在單功能PCI設(shè)備寄存器中添加相應(yīng)數(shù)量的控制寄存器、狀 態(tài)寄存器和中斷控制器,分別用于對每個(gè)多功能設(shè)備的模擬接口進(jìn)行操作;以及在PCI設(shè) 備驅(qū)動程序中將單功能PCI設(shè)備向操作系統(tǒng)內(nèi)核注冊為相應(yīng)數(shù)量的多功能設(shè)備,產(chǎn)生相應(yīng) 數(shù)量的模擬接口。預(yù)先設(shè)置的參數(shù)是針對單功能PCI設(shè)備的端口。
操作系統(tǒng)為 Linux kernel。注冊是通過調(diào)用Linux kernel提供的函數(shù)接口進(jìn)行注冊。相應(yīng)地,本發(fā)明提供了一種單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)裝置,包括確定模 塊,用于確定單功能PCI設(shè)備模擬成多功能設(shè)備的數(shù)量;寄存器模塊,用于對每個(gè)多功能設(shè) 備的模擬接口進(jìn)行操作;以及注冊模塊,用于將單功能PCI設(shè)備向操作系統(tǒng)內(nèi)核注冊為相 應(yīng)數(shù)量的多功能設(shè)備,產(chǎn)生相應(yīng)數(shù)量的模擬接口。確定模塊根據(jù)預(yù)先設(shè)置的參數(shù)確定單功能PCI設(shè)備要模擬成多功能設(shè)備的數(shù)量。在確定模塊中,預(yù)先設(shè)置的參數(shù)是針對單功能PCI設(shè)備的端口。在注冊模塊中,操作系統(tǒng)為Linux kernel 0在注冊模塊中,注冊是通過調(diào)用Linux kernel提供的函數(shù)接口進(jìn)行注冊。借助本發(fā)明上述至少一個(gè)技術(shù)方案,通過將物理特性為單功能PCI設(shè)備在驅(qū)動程 序里模擬成多功能PCI設(shè)備,從而使用戶不需改變使用方式,更加容易地操作、控制單功能 PCI設(shè)備。


圖1是本發(fā)明的一種單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)方法的流程圖;圖2是本發(fā)明的一種單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式參見圖1所示,本實(shí)施例的一種單功能PCI設(shè)備模擬成多功能PCI設(shè)備的方法,具 體包括以下操作步驟S110,PCI設(shè)備驅(qū)動程序根據(jù)預(yù)先設(shè)置的參數(shù)確定單功能PCI設(shè)備要 模擬成多功能設(shè)備的數(shù)量;S120,在單功能PCI設(shè)備寄存器中添加相應(yīng)數(shù)量的控制寄存器、 狀態(tài)寄存器和中斷控制器,分別用于對每個(gè)多功能設(shè)備的模擬接口進(jìn)行操作;以及S130, 在PCI設(shè)備驅(qū)動程序中將單功能PCI設(shè)備向操作系統(tǒng)內(nèi)核注冊為相應(yīng)數(shù)量的多功能設(shè)備, 產(chǎn)生相應(yīng)數(shù)量的模擬接口。在步驟SllO中,預(yù)先設(shè)置的參數(shù)是針對單功能PCI設(shè)備的端口。PCI設(shè)備驅(qū)動程 序?qū)⒏鶕?jù)參數(shù)確定是否需要將此單功能PCI設(shè)備模擬成多功能設(shè)備,如果需要模擬,則確 定模擬成多功能設(shè)備的數(shù)量。在步驟S120中,之所以在單功能PCI設(shè)備寄存器中添加相應(yīng)數(shù)量的控制寄存器、 狀態(tài)寄存器和中斷控制器,是為了滿足對模擬成多個(gè)多功能PCI設(shè)備形成的多個(gè)模擬接口 分別操作的需要。當(dāng)實(shí)現(xiàn)單功能PCI設(shè)備時(shí),只需要一個(gè)32位的中斷控制器就可以進(jìn)行報(bào) 文的發(fā)送、接收操作,例如,當(dāng)網(wǎng)卡接收到報(bào)文時(shí),存儲到報(bào)文描述符緩沖隊(duì)列后,可以設(shè)置 中斷控制器,表示報(bào)文已正確接收,需要驅(qū)動程序進(jìn)行后續(xù)處理。當(dāng)需要在操作系統(tǒng)用戶空 間表示為多個(gè)多功能設(shè)備,就需要對每個(gè)多功能設(shè)備形成的每個(gè)模擬接口分別使用一個(gè)32 位的中斷控制器。這樣,通過不同的中斷控制器,可以清楚地知道網(wǎng)卡接收到報(bào)文是屬于哪 一個(gè)模擬接口的,需要驅(qū)動程序?qū)⒋藞?bào)文存儲到哪一個(gè)模擬接口的報(bào)文緩沖區(qū)隊(duì)列中。同 理,對于每個(gè)模擬接口也需要相應(yīng)的控制寄存器和狀態(tài)寄存器。在步驟S130中,將單功能PCI設(shè)備向操作系統(tǒng)內(nèi)核注冊為多個(gè)多功能PCI設(shè)備, 注冊過程就是完成硬件設(shè)備在操作系統(tǒng)內(nèi)的表示,注冊方法跟單功能PCI設(shè)備的設(shè)備類型有關(guān),不同的單功能PCI設(shè)備,注冊方法也不同。但是在Linux kernel操作系統(tǒng)中,已經(jīng)對 不同的單功能PCI設(shè)備提供了不同的函數(shù)接口,因此只需要在驅(qū)動程序中調(diào)用即可。例如, 針對網(wǎng)卡設(shè)備,Linux kernel提供的函數(shù)接口是register netdev函數(shù),驅(qū)動程序每調(diào)用 一次此函數(shù),就只能注冊一個(gè)網(wǎng)卡設(shè)備,并分配類似于ethO這樣的名稱,然后在用戶空間 會看到一個(gè)網(wǎng)卡設(shè)備接口,使用它進(jìn)行報(bào)文的發(fā)送、接收操作。當(dāng)多次調(diào)用此函數(shù)時(shí),就可 以注冊多個(gè)網(wǎng)卡設(shè)備,并依次分配類似于ethO、ethl等這樣的名稱,然后在用戶空間可以 看到多個(gè)網(wǎng)卡設(shè)備接口,可以分別使用這些接口進(jìn)行報(bào)文的發(fā)送、接收操作。上述步驟中,需要使用硬件FPGA進(jìn)行邏輯支持,這是因?yàn)轵?qū)動程序只能起配置和 管理等作用,而硬件上的實(shí)現(xiàn)、邏輯的支持,離不開硬件FPGA。在完成單功能PCI設(shè)備模擬 成多功能設(shè)備之后,從用戶的角度看,就會認(rèn)為是這一塊多功能PCI設(shè)備,但是在操作系統(tǒng) Linux kernel中所進(jìn)行的操作并不相同。針對真正多功能PCI設(shè)備,驅(qū)動程序能正確地處 理每個(gè)PCI設(shè)備,并且針對每個(gè)PCI設(shè)備注冊一個(gè)網(wǎng)卡設(shè)備,驅(qū)動程序不需要關(guān)心設(shè)備的多 功能實(shí)現(xiàn)細(xì)節(jié)。驅(qū)動程序可以不加修改地用于單功能PCI設(shè)備和多功能PCI設(shè)備。而當(dāng)采 用將單功能PCI設(shè)備模擬成多功能設(shè)備時(shí),驅(qū)動程序首先需要根據(jù)PCI設(shè)備端口參數(shù)確定 是否需要將單功能PCI設(shè)備模擬成多功能設(shè)備以及模擬的數(shù)量,如果需要進(jìn)行模擬,就需 要一些經(jīng)過進(jìn)行上述的特殊處理。相應(yīng)地,本發(fā)明的一種單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)裝置,包括確定模塊 210,用于確定單功能PCI設(shè)備模擬成多功能設(shè)備的數(shù)量;寄存器模塊220,用于對每個(gè)多功 能設(shè)備的模擬接口進(jìn)行操作;以及注冊模塊230,用于將單功能PCI設(shè)備向操作系統(tǒng)內(nèi)核注 冊為相應(yīng)數(shù)量的多功能設(shè)備,產(chǎn)生相應(yīng)數(shù)量的模擬接口。確定模塊210中包括PCI設(shè)備驅(qū)動程序,PCI設(shè)備驅(qū)動程序根據(jù)預(yù)先設(shè)置的參數(shù) 確定單功能PCI設(shè)備要模擬成多功能設(shè)備的數(shù)量。其中,預(yù)先設(shè)置的參數(shù)是針對單功能PCI 設(shè)備的端口。寄存器模塊220中包括相應(yīng)數(shù)量的控制寄存器、狀態(tài)寄存器和中斷控制器,分別 用于對每個(gè)所述多功能設(shè)備的模擬接口進(jìn)行操作。在注冊模塊230中,操作系統(tǒng)為Linux kernel,注冊是通過調(diào)用Linux kernel提 供的函數(shù)接口進(jìn)行注冊,注冊完成后,每個(gè)多功能設(shè)備有一個(gè)模擬接口。用戶可以分別使用 這些模擬接口進(jìn)行報(bào)文的發(fā)送和接收操作。本發(fā)明的單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)方法和裝置,通過將物理特性為單功 能PCI設(shè)備在驅(qū)動程序里模擬成多功能PCI設(shè)備,從而使用戶不需改變使用方式,更加容易 地操作、控制單功能PCI設(shè)備。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)方法,其特征在于,包括下列步驟PCI設(shè)備驅(qū)動程序根據(jù)預(yù)先設(shè)置的參數(shù)確定單功能PCI設(shè)備要模擬成多功能設(shè)備的數(shù)量;在單功能PCI設(shè)備寄存器中添加相應(yīng)所述數(shù)量的控制寄存器、狀態(tài)寄存器和中斷控制 器,分別用于對每個(gè)所述多功能設(shè)備的模擬接口進(jìn)行操作;以及在所述PCI設(shè)備驅(qū)動程序中將所述單功能PCI設(shè)備向操作系統(tǒng)內(nèi)核注冊為相應(yīng)所述數(shù) 量的所述多功能設(shè)備,產(chǎn)生相應(yīng)所述數(shù)量的所述模擬接口。
2.根據(jù)權(quán)利要求1所述的單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)方法,其特征在于,所述預(yù) 先設(shè)置的參數(shù)是針對所述單功能PCI設(shè)備的端口。
3.根據(jù)權(quán)利要求1所述的單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)方法,其特征在于,所述操 作系統(tǒng)為Linux kernel ο
4.根據(jù)權(quán)利要求3所述的單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)方法,其特征在于,所述注 冊是通過調(diào)用所述Linux kernel提供的函數(shù)接口進(jìn)行注冊。
5.一種單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)裝置,其特征在于,包括 確定模塊,用于確定單功能PCI設(shè)備模擬成多功能設(shè)備的數(shù)量; 寄存器模塊,用于對每個(gè)所述多功能設(shè)備的模擬接口進(jìn)行操作;以及注冊模塊,用于將所述單功能PCI設(shè)備向操作系統(tǒng)內(nèi)核注冊為相應(yīng)所述數(shù)量的所述多 功能設(shè)備,產(chǎn)生相應(yīng)所述數(shù)量的所述模擬接口。
6.根據(jù)權(quán)利要求5所述的單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)裝置,其特征在于,所述確 定模塊根據(jù)預(yù)先設(shè)置的參數(shù)確定所述單功能PCI設(shè)備要模擬成所述多功能設(shè)備的所述數(shù) 量。
7.根據(jù)權(quán)利要求6所述的單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)裝置,其特征在于,在所述 確定模塊中,所述預(yù)先設(shè)置的參數(shù)是針對所述單功能PCI設(shè)備的端口。
8.根據(jù)權(quán)利要求6所述的單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)裝置,其特征在于,在所述 注冊模塊中,所述操作系統(tǒng)為Linux kernel.
9.根據(jù)權(quán)利要求8所述的單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)裝置,其特征在于,在所述 注冊模塊中,所述注冊是通過調(diào)用所述Linux kernel提供的函數(shù)接口進(jìn)行注冊。
全文摘要
本發(fā)明提供一種單功能PCI設(shè)備的多功能模擬實(shí)現(xiàn)方法和裝置,其中實(shí)現(xiàn)方法包括下列步驟PCI設(shè)備驅(qū)動程序根據(jù)預(yù)先設(shè)置的參數(shù)確定單功能PCI設(shè)備要模擬成多功能設(shè)備的數(shù)量;在單功能PCI設(shè)備寄存器中添加相應(yīng)數(shù)量的控制寄存器、狀態(tài)寄存器和中斷控制器,分別用于對每個(gè)多功能設(shè)備的模擬接口進(jìn)行操作;以及在PCI設(shè)備驅(qū)動程序中將單功能PCI設(shè)備向操作系統(tǒng)內(nèi)核注冊為相應(yīng)數(shù)量的多功能設(shè)備,產(chǎn)生相應(yīng)數(shù)量的模擬接口。本發(fā)明通過將物理特性為單功能PCI設(shè)備在驅(qū)動程序里模擬成多功能PCI設(shè)備,從而使用戶不需改變使用方式,更加容易地操作、控制單功能PCI設(shè)備。
文檔編號G06F13/10GK102043738SQ20091023567
公開日2011年5月4日 申請日期2009年10月12日 優(yōu)先權(quán)日2009年10月12日
發(fā)明者歷軍, 李永成, 聶華, 邵宗有 申請人:曙光信息產(chǎn)業(yè)(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
安丘市| 图片| 曲沃县| 汉寿县| 渑池县| 柳江县| 宽甸| 光山县| 永胜县| 平谷区| 逊克县| 虎林市| 土默特左旗| 舒兰市| 舟山市| 扬州市| 馆陶县| 塘沽区| 南开区| 项城市| 太康县| 石屏县| 南安市| 洪雅县| 闵行区| 南澳县| 通渭县| 方山县| 南木林县| 石家庄市| 灵台县| 桦甸市| 大厂| 平原县| 焉耆| 甘孜| 长丰县| 南投县| 当涂县| 来安县| 满洲里市|