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

通訊方法及通訊系統(tǒng)的制作方法

文檔序號(hào):6481247閱讀:152來(lái)源:國(guó)知局
專(zhuān)利名稱:通訊方法及通訊系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種大規(guī)模集成電路中采用多個(gè)CPU核時(shí),各個(gè)CPU之間數(shù)據(jù)
核指令通訊的方法以及一種相應(yīng)的通訊系統(tǒng)。
背景技術(shù)
目前,在FPGA使用嵌入式CPU內(nèi)核構(gòu)成SOPC系統(tǒng)是數(shù)字電路集成化的一 大發(fā)展方向,在一些復(fù)雜系統(tǒng)中往往需要使用不止一個(gè)CPU來(lái)分別管理不同邏 輯電路,為了協(xié)調(diào)各個(gè)CPU之間的工作,就需要在各CPU之間設(shè)置通訊協(xié)議, 以保證通訊的正常有效進(jìn)行。
目前各個(gè)IP核提供商雖然也可提供類(lèi)似通訊用IP核,但作為應(yīng)用方,使 用這種收費(fèi)授權(quán)IP核將增加產(chǎn)品成本,同時(shí)使用的靈活性收到限制。
中國(guó)專(zhuān)利CN200610145941.X揭示了一種硬件訪問(wèn)寄存器的方法,在硬件 發(fā)出指令后,根據(jù)優(yōu)先級(jí)別仲裁,在規(guī)定時(shí)間內(nèi)看是否指令的優(yōu)先級(jí)符合要求, 從而仲裁是否能訪問(wèn)。但是如果在規(guī)定時(shí)間內(nèi)仲裁不能訪問(wèn),則需要通過(guò)提高 優(yōu)先級(jí)及等待定時(shí)器的設(shè)置來(lái)重新判斷是否允許訪問(wèn),這樣會(huì)導(dǎo)致響應(yīng)的時(shí)間 受限制,尤其優(yōu)先級(jí)別低的指令,并且在只有此指令的情況下,訪問(wèn)速度更受 損。優(yōu)先級(jí)別越低的指令,損失的訪問(wèn)時(shí)間就越多,對(duì)于大規(guī)模的SOC,響應(yīng) 速度決定了系統(tǒng)的精確性和穩(wěn)定性。

發(fā)明內(nèi)容
本發(fā)明旨在通過(guò)簡(jiǎn)單的VHDL程序設(shè)計(jì),可針對(duì)不同廠家的FPGA芯片,解 決多個(gè)CPU之間的數(shù)據(jù)核指令通訊問(wèn)題。
基于上述背景技術(shù)的缺陷和消費(fèi)者的需求,本發(fā)明提供一種通訊方法,使得多個(gè)CPU能夠通過(guò)總線及寄存器之間實(shí)現(xiàn)相互通訊,避免了采用收費(fèi)通訊模式。
本發(fā)明提供的技術(shù)方案為 一種通訊方法,包括至少第一CPU和第二CPU, 定義第一 CPU和第二 CPU之間的通訊優(yōu)先級(jí),第一 CPU和/或第二 CPU發(fā)出通訊 指令,總線系統(tǒng)接收CPU發(fā)出的通訊指令并傳遞給優(yōu)先級(jí)識(shí)別單元,優(yōu)先級(jí)識(shí) 別單元依據(jù)優(yōu)先級(jí)順序識(shí)別通訊指令的內(nèi)容,執(zhí)行相應(yīng)的通訊指令內(nèi)容訪問(wèn)寄 存器單元,等待下一個(gè)通訊指令。
在本發(fā)明實(shí)施例中,所述的寄存器單元設(shè)置有至少一位中斷申請(qǐng)/清除位, 用于第二和第二 CPU相互之間申請(qǐng)中斷。
在本發(fā)明實(shí)施例中,所述的寄存器組包括控制/狀態(tài)寄存器和數(shù)據(jù)寄存器, 第一 CPU和第二 CPU均可訪問(wèn)控制/狀態(tài)寄存器和數(shù)據(jù)寄存器。
在本發(fā)明實(shí)施例中,所述的總線系統(tǒng)個(gè)數(shù)與CPU個(gè)數(shù)相對(duì)應(yīng),都為兩個(gè)。
優(yōu)選的,總線系統(tǒng)將第一 CPU和第二 CPU的時(shí)序轉(zhuǎn)換成與寄存器組相匹配
的時(shí)序。
本發(fā)明還提供一種通訊系統(tǒng),以實(shí)現(xiàn)多個(gè)CPU之間的相互通訊,包括至少 第一CPU和第二CPU,寄存器單元和優(yōu)先級(jí)識(shí)別單元,第一CPU和第二CPU通
過(guò)總線系統(tǒng)與優(yōu)先級(jí)識(shí)別單元相連,其特征在于,優(yōu)先級(jí)識(shí)別單元根據(jù)預(yù)先定
義的各CPU通訊優(yōu)先級(jí)別識(shí)別CPU發(fā)出的通訊指令,經(jīng)識(shí)別后的通訊指令根據(jù)
優(yōu)先級(jí)別高低實(shí)現(xiàn)對(duì)寄存器單元的訪問(wèn)。
在本發(fā)明實(shí)施例中,所述的總線系統(tǒng)包括與CPU個(gè)數(shù)相對(duì)應(yīng)的總線接口個(gè) 數(shù),都為2個(gè)。
優(yōu)選的,所述的寄存器單元包括控制/狀態(tài)寄存器組和數(shù)據(jù)寄存器組。
在本發(fā)明實(shí)施例中,所述的優(yōu)先級(jí)別按第一 CPU寫(xiě)操:作、第一 CPU讀操作、
第二 CPU寫(xiě)操作、第二 CPU讀操作的順序高低排列。
更進(jìn)一步的,在所述的寄存器單元中,設(shè)置至少一位中斷申請(qǐng)/清除位,用
以實(shí)現(xiàn)第一 CPU和第二 CPU之間相互申請(qǐng)中斷。本發(fā)明提供的CPU與寄存器之間的通訊方法,根據(jù)事先定義的優(yōu)先級(jí)別決 定各指令的訪問(wèn)順序,從高到底直接判斷指令的執(zhí)行順序,不需要?jiǎng)討B(tài)調(diào)整優(yōu) 先級(jí)別,而且,通過(guò)設(shè)定寄存器中斷申請(qǐng)/清除位,非常簡(jiǎn)單的決定了各指令訪
問(wèn)順序及相應(yīng)CPU的中斷。


圖1是本發(fā)明優(yōu)選實(shí)施例的通訊信號(hào)流傳送示意圖2是本發(fā)明優(yōu)選實(shí)施例2個(gè)CPU與寄存器單元之間的通訊過(guò)程示意圖3是本發(fā)明優(yōu)選實(shí)施例的51內(nèi)核訪問(wèn)時(shí)序示意圖4是本發(fā)明實(shí)施例固定等待周期的Ava 1 ong總線訪問(wèn)時(shí)序示意圖5是本發(fā)明優(yōu)選實(shí)施例通訊方法的流程圖6是本發(fā)明優(yōu)選實(shí)施例的CPU訪問(wèn)時(shí)序示意圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例作詳細(xì)的說(shuō)明。
本發(fā)明是一種多個(gè)CPU之間數(shù)據(jù)核指令通訊方法及裝置。可以通過(guò)簡(jiǎn)單的 VHDL程序設(shè)計(jì),可針對(duì)不同的廠家的FPGA芯片,解決多個(gè)CPU之間的數(shù)據(jù)核 指令通訊問(wèn)題。
參見(jiàn)圖l所示,本發(fā)明的優(yōu)選實(shí)施例中,通訊系統(tǒng)可分為五類(lèi)功能單元 控制/狀態(tài)寄存器組、數(shù)據(jù)寄存器組、優(yōu)先級(jí)判斷、第一CPU和第二CPU、至少 2組總線接口 (以第一CPU總線接口和第二CPU總線接口為例)。控制/狀態(tài)寄 存器組和數(shù)據(jù)寄存器組用于存儲(chǔ)各個(gè)CPU之間的通訊內(nèi)容緩存。兩個(gè)總線接口 單元是用于分別與需要通訊的第一 CPU和第二 CPU進(jìn)行連接,實(shí)現(xiàn)CPU對(duì)兩個(gè) 寄存器組的訪問(wèn)。優(yōu)先級(jí)識(shí)別單元用于實(shí)現(xiàn)兩個(gè)CPU之間訪問(wèn)沖突仲裁的實(shí)現(xiàn)。 當(dāng)CPU發(fā)出通訊指令時(shí),通過(guò)總線接口,將CPU的通訊指令傳遞到優(yōu)先級(jí)識(shí)別
6單元,根據(jù)預(yù)先定義好的通訊優(yōu)先級(jí)別,識(shí)別通訊指令的內(nèi)容,根據(jù)識(shí)別后的 內(nèi)容,去實(shí)現(xiàn)對(duì)寄存器組的訪問(wèn)。
此處的控制/狀態(tài)寄存器組和數(shù)據(jù)寄存器組可以自行定義為8位、16位或 32位,使用寄存器的個(gè)數(shù)也可根據(jù)需要設(shè)定,以保證滿足通訊的需要。這兩個(gè) 寄存器組都是允許雙口訪問(wèn)的,即第一 CPU和第二 CPU都可以對(duì)兩個(gè)寄存器組 的相同空間進(jìn)行讀寫(xiě),從而提高寄存器組的利用效率。此處的寄存器組可以采 用常規(guī)的寄存器,以節(jié)省通訊系統(tǒng)的成本。
總線接口單元是連接CPU與寄存器組之間的橋梁,將不同CPU的外擴(kuò)總線 時(shí)序轉(zhuǎn)換成兩個(gè)寄存器組支持的讀寫(xiě)時(shí)序,從而保證各CPU與寄存器之間的通 訊正常工作。
優(yōu)先級(jí)識(shí)別單元對(duì)兩個(gè)CPU訪問(wèn)寄存器單元的先后順序進(jìn)行仲裁,按照預(yù) 先設(shè)定的訪問(wèn)優(yōu)先級(jí),控制當(dāng)?shù)谝籆PU和第二CPU同時(shí)發(fā)起訪問(wèn)時(shí)序時(shí),率先 執(zhí)行優(yōu)先級(jí)最高的操作指令。
本實(shí)施例中的兩個(gè)寄存器組都能被兩個(gè)CPU所訪問(wèn),但訪問(wèn)的優(yōu)先級(jí)卻有 所不同。我們可以事先設(shè)定為,第一CPU寫(xiě)寄存器操作的優(yōu)先級(jí)最高,接下來(lái) 依次是第一CPU讀寄存器、第二CPU寫(xiě)寄存器,最后是第二CPU讀寄存器, 當(dāng)然該順序也可以視需要調(diào)整。當(dāng)?shù)谝?CPU或第二 CPU對(duì)寄存器單元的讀寫(xiě)操 作完成后,通過(guò)寄存器單元向?qū)Ψ缴暾?qǐng)中斷,以請(qǐng)求對(duì)方執(zhí)行相應(yīng)的操作。
兩個(gè)CPU與寄存器之間的工作過(guò)程參見(jiàn)圖2所示。為了實(shí)現(xiàn)兩個(gè)CPU之間 的."握手",需要在控制/狀態(tài)寄存器組中設(shè)置1位中斷申請(qǐng)/清除位,如圖2 中的"reg3"定義。當(dāng)CPU1寫(xiě)reg3 = 1時(shí),將向CPU2發(fā)出中斷信號(hào),表示CPU1 向CPU2傳遞的數(shù)據(jù)準(zhǔn)備已寫(xiě)入數(shù)據(jù)寄存器組中,CPU2可以讀取。當(dāng)CPU2收到 此中斷申請(qǐng)后,將讀取數(shù)據(jù)寄存器組中的信息,并寫(xiě)reg3 = 0,用于清掉此中 斷信號(hào)。同理,當(dāng)CPU2準(zhǔn)備向CPU1傳輸數(shù)據(jù)時(shí),CPU2寫(xiě)reg-l,此時(shí)將向 CPU1發(fā)出中斷申請(qǐng),當(dāng)CPU1響應(yīng)中斷讀取數(shù)據(jù)后,寫(xiě)reg-O,用于清掉此中 斷申請(qǐng)。由此可知,寫(xiě)中斷申'請(qǐng)位reg3-l將向?qū)Ψ紺PU發(fā)出中斷申請(qǐng),若寫(xiě)reg = 0,則是清掉自身中斷標(biāo)志。如果涉及到多個(gè)CPU的中斷申請(qǐng)和清除,則 可以根據(jù)需要設(shè)定寄存器的多位為中斷申請(qǐng)/清除位,從而定義各CPU的中斷順序。
在FPGA芯片中實(shí)現(xiàn)的每個(gè)動(dòng)作都是由時(shí)鐘信號(hào)的上升沿或下降沿觸發(fā)產(chǎn) 生的,也就是說(shuō),只有上升沿或下降沿到來(lái)時(shí),芯片才能執(zhí)行一步操作。本發(fā) 明以時(shí)鐘信號(hào)上升沿作為觸發(fā)條件,當(dāng)遇到時(shí)鐘上升沿時(shí),程序會(huì)判斷是否有 任一 CPU對(duì)本模塊進(jìn)行訪問(wèn),如果有訪問(wèn)請(qǐng)求,將會(huì)根據(jù)發(fā)出訪問(wèn)要求的CPU 編號(hào)以及訪問(wèn)動(dòng)作(讀或?qū)?進(jìn)行判斷,再根據(jù)圖2中第二行從左到右優(yōu)先級(jí) 遞減的順序,響應(yīng)CPU訪問(wèn)要求。當(dāng)確定由那個(gè)CPU對(duì)其進(jìn)行訪問(wèn)后,將按照 時(shí)序要求對(duì)寄存器進(jìn)行讀寫(xiě)
優(yōu)先級(jí)識(shí)別單元從總線接口接收到CPU指令,根據(jù)第一 CPU寫(xiě)、第一 CPU 讀、第二CPU寫(xiě)、第二CPU讀的順序進(jìn)行識(shí)別CPU指令內(nèi)容。當(dāng)識(shí)別到是第一 CPU寫(xiě)指令時(shí),先執(zhí)行第一 CPU的寫(xiě)指令,將數(shù)據(jù)寫(xiě)入指定寄存器,然后將reg3 設(shè)置為0,從而向第二 CPU申請(qǐng)中斷,并等待接收下一個(gè)CPU的指令;如果優(yōu) 先級(jí)識(shí)別單元識(shí)別出是第二CPU寫(xiě)指令,則先執(zhí)行第二CPU的寫(xiě)指令,將數(shù)據(jù) 寫(xiě)入指定寄存器,然后將reg3設(shè)置為l,從而向第一CPU申請(qǐng)中斷,并等待接 收下一個(gè)CPU的指令;當(dāng)優(yōu)先級(jí)識(shí)別單元識(shí)別出是CPU讀指令時(shí),則直接讀取 指定寄存器的數(shù)據(jù),將數(shù)據(jù)送到對(duì)應(yīng)CPU的總線接口,并等待下一個(gè)CPU的指 令。
由于不同公司的CPU核及其外擴(kuò)總線都不盡相同,.因此使用總線接口來(lái)連 接CPU與內(nèi)部寄存器組,從而實(shí)現(xiàn)數(shù)據(jù)可靠傳輸。以FPGA內(nèi)使用的Avalon總 線與51內(nèi)核外擴(kuò)總線為例,51內(nèi)核總線時(shí)序如圖3所示, 一個(gè)讀寫(xiě)周期需要 12個(gè)時(shí)鐘脈沖。而基于FPGA的Avalon總線可以執(zhí)行單周期讀寫(xiě)訪問(wèn),也可根 據(jù)需要設(shè)置固定等待周期總線時(shí)序,或是在訪問(wèn)未知慢速設(shè)備或被慢速設(shè)備訪 問(wèn)時(shí),設(shè)置等待信號(hào),有慢速設(shè)備的讀寫(xiě)時(shí)序來(lái)靈活決定Avalong總線端的讀 寫(xiě)時(shí)間。Avalon時(shí)序如圖4所示。因此,在本例子中,由于51內(nèi)核訪問(wèn)周期固定,可以將寄存器組的讀寫(xiě)周期固定設(shè)為12周期,以配合CPU速度。如果采 用其他的總線類(lèi)型及CPU內(nèi)核,那么相應(yīng)的時(shí)序和周期可以根據(jù)計(jì)算預(yù)先確定, 從而滿足寄存器與CPU內(nèi)核的訪問(wèn)需求。
如圖6所示,總線接口部分輸入端為CPU接口,須滿足CPU的訪問(wèn)時(shí)序要 求,才能實(shí)現(xiàn)與CPU的通訊??偩€4妄口的輸出端固定為Altera />司FPGA的 Avalon總線接口時(shí)序。因此,總線接口部分就是不同CPU訪問(wèn)內(nèi)部寄存器的橋 梁。
參見(jiàn)圖5所示,本發(fā)明設(shè)計(jì)的通訊方法,包括第一步驟Sl,預(yù)先設(shè)定優(yōu) 先級(jí)別,主要是設(shè)定各CPU的訪問(wèn)優(yōu)先級(jí)及讀/寫(xiě)操作的優(yōu)先級(jí)別,規(guī)定在同時(shí) 有多個(gè)指令訪問(wèn)的前提下,確定先后順序;第二步驟S2, CPU發(fā)出通訊指令, 即CPU的讀或?qū)懠拇嫫鞯脑L問(wèn)指令,可以是一個(gè)CPU單獨(dú)發(fā)出指令,也可能是 2個(gè)CPU同時(shí)發(fā)出訪問(wèn)寄存器的指令;第三步驟S3,依據(jù)優(yōu)先級(jí)高低順序進(jìn)行 判別,此處主要指優(yōu)先級(jí)識(shí)別單元根據(jù)總線傳遞的命令,依據(jù)事先確定的優(yōu)先 級(jí)順序,來(lái)判斷各指令的執(zhí)行順序;第四步驟S4,執(zhí)行CPU發(fā)出的指令,即主 要是執(zhí)行CPU的讀或?qū)懠拇嫫鞯脑L問(wèn)指令;第五步驟S5,等待下一個(gè)通訊指令, 即執(zhí)行完指令后,等待是否有下一指令的到來(lái)。如果此處有多個(gè)指令需要執(zhí)行, 則執(zhí)行完第一個(gè)指令后,順序執(zhí)行優(yōu)先級(jí)排在高位的第二指令,直到執(zhí)行完全 部指令后,再等待下一個(gè)指令的到來(lái)。
本發(fā)明構(gòu)造簡(jiǎn)單,適應(yīng)性強(qiáng),采用相同編程語(yǔ)言和設(shè)計(jì)思想,在最大程度 上節(jié)約了設(shè)計(jì)時(shí)間與成本,同時(shí)亦有效保證了多個(gè)CPU訪問(wèn)寄存器時(shí),寄存器 的反應(yīng)效率。
以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于 此,任何熟悉本領(lǐng)域的技術(shù)人員在本發(fā)明所揭露的技術(shù)范圍內(nèi),可不經(jīng)過(guò)創(chuàng)造 性勞動(dòng)想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明 的保護(hù)范圍應(yīng)該以權(quán)利要求書(shū)所限定的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種通訊方法,包括至少第一CPU和第二CPU,定義第一CPU和第二CPU之間的通訊優(yōu)先級(jí),第一CPU和/或第二CPU發(fā)出通訊指令,總線系統(tǒng)接收CPU發(fā)出的通訊指令并傳遞給優(yōu)先級(jí)識(shí)別單元,優(yōu)先級(jí)識(shí)別單元依據(jù)優(yōu)先級(jí)順序識(shí)別通訊指令的內(nèi)容,執(zhí)行相應(yīng)的通訊指令內(nèi)容訪問(wèn)寄存器單元,等待下一個(gè)通訊指令。
2、 根據(jù)權(quán)利要求1所述的通訊方法,其特征在于,所述的寄存器單元設(shè)置有至少一位中斷申請(qǐng)/清除位。
3、 根據(jù)權(quán)利要求1所述的通訊方法,其特征在于,所述的寄存器組包括控 制/狀態(tài)寄存器和數(shù)據(jù)寄存器,第一 CPU和第二 CPU均可訪問(wèn)控制/狀態(tài)寄存器 和數(shù)據(jù)寄存器。
4、 根據(jù)權(quán)利要求1所述的通訊方法,其特征在于,所述的總線系統(tǒng)個(gè)數(shù)與 CPU個(gè)數(shù)相對(duì)應(yīng)。
5、 根據(jù)權(quán)利要求1所述的通訊方法,其特征在于,總線系統(tǒng)將第一CPU和 第二CPU的時(shí)序轉(zhuǎn)換成與寄存器組相匹配的時(shí)序。
6、 一種通訊系統(tǒng),包括至少第一 CPU和第二 CPU,寄存器單元和優(yōu)先級(jí)識(shí) 別單元,第一CPU和第二CPU通過(guò)總線系統(tǒng)與優(yōu)先級(jí)識(shí)別單元相連,其特征在 于,優(yōu)先級(jí)識(shí)別單元根據(jù)預(yù)先定義的各CPU通訊優(yōu)先級(jí)別識(shí)別CPU發(fā)出的通訊 指令,經(jīng)識(shí)別后的通訊指令根據(jù)優(yōu)先級(jí)別高低實(shí)現(xiàn)對(duì)寄存器單元的訪問(wèn)。
7、 根據(jù)權(quán)利要求6所述的通訊系統(tǒng),其特征在于,所述的總線系統(tǒng)包括與 CPU個(gè)數(shù)相對(duì)應(yīng)的總線接口個(gè)數(shù)。
8、 根據(jù)權(quán)利要求6所述的通訊系統(tǒng),其特征在于,所述的寄存器單元包括 控制/狀態(tài)寄存器組和數(shù)據(jù)寄存器組。
9、 根據(jù)權(quán)利要求6所述的通訊系統(tǒng),其特征在于,所述的優(yōu)先級(jí)別按第一 CPU寫(xiě)操作、第一CPU讀操作、第二CPU寫(xiě)操作、第二CPU讀操作的順序高低排列。
10、根據(jù)權(quán)利要求6所述的通訊系統(tǒng),其特征在于,在所述的寄存器單元中, 設(shè)置至少一位中斷申請(qǐng)/清除位。
全文摘要
本發(fā)明涉及一種通訊方法,包括至少第一CPU和第二CPU,定義第一CPU和第二CPU之間的通訊優(yōu)先級(jí),第一CPU和/或第二CPU發(fā)出通訊指令,總線系統(tǒng)接收CPU發(fā)出的通訊指令并傳遞給優(yōu)先級(jí)識(shí)別單元,優(yōu)先級(jí)識(shí)別單元依據(jù)優(yōu)先級(jí)順序識(shí)別通訊指令的內(nèi)容,執(zhí)行相應(yīng)的通訊指令內(nèi)容訪問(wèn)寄存器單元,等待下一個(gè)通訊指令,本發(fā)明和涉及一種相應(yīng)的通訊系統(tǒng),以實(shí)現(xiàn)CPU與寄存器之間的通訊。
文檔編號(hào)G06F15/167GK101661455SQ20091002070
公開(kāi)日2010年3月3日 申請(qǐng)日期2009年4月2日 優(yōu)先權(quán)日2009年4月2日
發(fā)明者洪勝峰 申請(qǐng)人:青島海信電器股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
民丰县| 翁源县| 昭平县| 昌宁县| 兴海县| 芦山县| 新巴尔虎左旗| 黔江区| 丰县| 丹东市| 磐石市| 嘉善县| 当涂县| 特克斯县| 祁连县| 教育| 梧州市| 偏关县| 新田县| 沽源县| 万源市| 东台市| 太康县| 礼泉县| 阿克苏市| 同德县| 金塔县| 岫岩| 通许县| 江山市| 南召县| 合山市| 逊克县| 盐山县| 南华县| 江城| 鹤岗市| 荣成市| 广宁县| 平阳县| 襄城县|