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

一種多處理器的數(shù)據(jù)交換方法和裝置制造方法

文檔序號:6536767閱讀:357來源:國知局
一種多處理器的數(shù)據(jù)交換方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種多處理器的數(shù)據(jù)交換方法和裝置,主機(jī)的物理內(nèi)存映射到通信總線上,主機(jī)與至少一個從機(jī)共享所述的主機(jī)的物理內(nèi)存,所述主機(jī)和每個從機(jī)的處理器通過通信總線訪問共享的物理內(nèi)存,本發(fā)明實現(xiàn)了主機(jī)物理內(nèi)存的共享,從機(jī)可自由讀寫該共享的物理內(nèi)存,從而使得讀寫速率與通信總線的時鐘頻率相同,可以達(dá)到極小的存儲延時,存取速度快。
【專利說明】一種多處理器的數(shù)據(jù)交換方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)【技術(shù)領(lǐng)域】,尤其是一種多處理器的數(shù)據(jù)交換方法和裝置。
【背景技術(shù)】
[0002]在現(xiàn)有的基于PCI (Peripheral Component Interconnect,外設(shè)部件互連標(biāo)準(zhǔn))總線或 CPCI (Compact Peripheral Component Interconnect,緊湊型外設(shè)部件互連標(biāo)準(zhǔn))總線的數(shù)據(jù)交換系統(tǒng)中,只能實現(xiàn)主處理器與從處理器之間的數(shù)據(jù)交換,而從處理器與從處理器之間的數(shù)據(jù)交換需要通過主處理器轉(zhuǎn)發(fā)才能實現(xiàn)。并且現(xiàn)有技術(shù)中,系統(tǒng)對廣播數(shù)據(jù)或者組播數(shù)據(jù)的讀寫不能夠提供很好的支持。

【發(fā)明內(nèi)容】

[0003]本發(fā)明的目的是提供一種多處理器的數(shù)據(jù)交換方法和裝置,一方面,將主機(jī)的物理內(nèi)存映射到通信總線上實現(xiàn)物理內(nèi)存的共享,所述主機(jī)和所有從機(jī)均可通過通信總線訪問該物理內(nèi)存,另一方面,將所述主機(jī)和所有從機(jī)的寄存器映射到通信總線上,形成一寄存器地址空間,所述主機(jī)和所有從機(jī)均可通過通信總線訪問寄存器地址空間并改寫本地或?qū)Ψ降募拇嫫鞯膬?nèi)容,實現(xiàn)了從機(jī)與從機(jī)之間的自由訪問。
[0004]為了解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:
[0005]一種多處理器的數(shù)據(jù)交換方法,其特征在于:主機(jī)的物理內(nèi)存映射到通信總線上,主機(jī)與至少一個從機(jī)共享所述的主機(jī)的物理內(nèi)存,所述主機(jī)和每個從機(jī)的處理器通過通信總線訪問共享的物理內(nèi)存。
[0006]優(yōu)選的,所述主機(jī)和各個從機(jī)的寄存器分別映射到通信總線上,每個寄存器被分配不同的地址,從而形成一寄存器地址空間,所述主機(jī)和每個從機(jī)的處理器通過通信總線訪問所述寄存器地址空間,讀寫寄存器內(nèi)容。
[0007]優(yōu)選的,當(dāng)主機(jī)和/或每個從機(jī)通過中斷機(jī)制進(jìn)行物理內(nèi)存的數(shù)據(jù)讀取時,所述的寄存器為中斷寄存器,主機(jī)通過通信總線訪問所述寄存器地址空間,改寫至少一個從機(jī)的中斷寄存器內(nèi)容,或者,每個從機(jī)通過通信總線訪問所述寄存器地址空間,改寫主機(jī)或其余至少一個從機(jī)的中斷寄存器內(nèi)容,從而觸發(fā)對方的中斷,引起中斷觸發(fā)的主機(jī)和/或每個從機(jī)通過中斷服務(wù)程序通知應(yīng)用程序調(diào)用讀取接口訪問物理內(nèi)存中的數(shù)據(jù)區(qū)。
[0008]優(yōu)選的,當(dāng)主機(jī)和/或每個從機(jī)通過輪詢方式進(jìn)行物理內(nèi)存的數(shù)據(jù)讀取時,主機(jī)和/或每個從機(jī)通過調(diào)用讀寫接口訪問物理內(nèi)存中的數(shù)據(jù)區(qū)進(jìn)行數(shù)據(jù)讀取。
[0009]優(yōu)選的,主機(jī)和/或每個從機(jī)對主機(jī)的共享物理內(nèi)存中的數(shù)據(jù)區(qū)分別定義訪問屬性,包括讀或?qū)?;若主機(jī)和/或每個從機(jī)與數(shù)據(jù)區(qū)有寫入關(guān)系,則在所述主機(jī)和/或每個從機(jī)中將此數(shù)據(jù)區(qū)的寫屬性定義為有,否則定義為無;若主機(jī)和/或每個從機(jī)與數(shù)據(jù)區(qū)有讀取關(guān)系,則在所述主機(jī)和/或每個從機(jī)中將此數(shù)據(jù)的讀屬性定義為有,否則定義為無;主機(jī)和/或每個從機(jī)對共享的物理內(nèi)存的的數(shù)據(jù)讀寫方法包括以下一種或幾種:主機(jī)寫入數(shù)據(jù),主機(jī)和/或至少一個從機(jī)讀取數(shù)據(jù),或者,一個從機(jī)寫入數(shù)據(jù),主機(jī)和/或至少一個從機(jī)讀取數(shù)據(jù),或者,主機(jī)和至少一個從機(jī)寫入數(shù)據(jù),主機(jī)和/或至少一個從機(jī)讀取數(shù)據(jù),或者,多個從機(jī)寫入數(shù)據(jù),主機(jī)和/或至少一個從機(jī)讀取數(shù)據(jù);主機(jī)和從機(jī)通過以上方法讀寫主機(jī)的共享物理內(nèi)存的數(shù)據(jù)處理單播數(shù)據(jù)、組播數(shù)據(jù)以及廣播數(shù)據(jù)。
[0010]優(yōu)選的,通過面包店算法實現(xiàn)主機(jī)和/或每個從機(jī)中的進(jìn)程或線程對物理內(nèi)存中的臨界數(shù)據(jù)區(qū)的互斥訪問,所述互斥訪問的步驟包括:
[0011]A.主機(jī)和/或每個從機(jī)中的進(jìn)程或線程獲取本地互斥量,則獲取到本地互斥量的所述進(jìn)程或線程調(diào)用讀寫接口,否則所述進(jìn)程或線程等待被其余進(jìn)程或線程釋放的本地互斥量,所述本地互斥量由主機(jī)和/或每個從機(jī)中的操作系統(tǒng)提供,用于保證主機(jī)和每個從機(jī)在一個時刻最多只有一個進(jìn)程或線程正在調(diào)用共享物理內(nèi)存的讀寫接口;
[0012]B.所述進(jìn)程或線程調(diào)用讀寫接口后,首先通過通信總線訪問面包店數(shù)據(jù)區(qū),對所述面包店數(shù)據(jù)區(qū)的每個變量的訪問都是原子的;
[0013]C.所述進(jìn)程或線程根據(jù)面包店算法對面包店數(shù)據(jù)區(qū)進(jìn)行數(shù)次訪問后,判斷所述進(jìn)程或線程是否獲得所述共享物理內(nèi)存的臨界數(shù)據(jù)區(qū)的訪問權(quán),若獲得訪問權(quán),則讀寫臨界數(shù)據(jù)區(qū);
[0014]D.讀寫完成后,根據(jù)面包店算法修改對應(yīng)的面包店數(shù)據(jù)區(qū)中的變量,然后釋放保護(hù)讀寫接口的本地互斥量。
[0015]一種多處理器的數(shù)據(jù)交換裝置,包括主機(jī)板卡、若干個從機(jī)板卡、總線板卡,主機(jī)板卡和從機(jī)板卡通過總線板卡相互通信,其特征在于:主機(jī)板卡的集成有第一處理器以及和所述的第一處理器通信的寄存器和用于數(shù)據(jù)共享的物理內(nèi)存,每個從機(jī)板卡集成有相互通信的處理器和寄存器,從機(jī)板卡的處理器和所述的物理內(nèi)存通信。
[0016]優(yōu)選的,所述主機(jī)板卡的第一處理器和各個從機(jī)板卡的處理器通過總線板卡與主機(jī)板卡、從機(jī)板卡的寄存器通信。
[0017]優(yōu)選的,所述總線板卡集成在一背板上,所述的背板上設(shè)置主機(jī)板卡插接件和若干個從機(jī)板卡插接件,所述的主機(jī)板卡和從機(jī)板卡插接在相應(yīng)的插接件上。
[0018]優(yōu)選的,所述的背板上還設(shè)置有電源模塊板卡插接件,電源模塊板卡通過所述的電源模塊板卡插接件與所述背板插接,所述電源模塊板卡給整個裝置提供電源。
[0019]采用上述技術(shù)方案后,本發(fā)明具有如下突出優(yōu)點:
[0020]1.本發(fā)明采用地址映射技術(shù)將主機(jī)的物理內(nèi)存映射到通信總線上,實現(xiàn)了主機(jī)物理內(nèi)存的共享,從機(jī)可自由讀寫該共享的物理內(nèi)存,從而使得讀寫速率與通信總線的時鐘頻率相同,可以達(dá)到極小的存儲延時,存取速度快。
[0021]2.本發(fā)明通過將主機(jī)和多個從機(jī)的寄存器映射到通信總線上,主機(jī)和每個從機(jī)均可改寫其余的寄存器,實現(xiàn)了主機(jī)與從機(jī)之間、從機(jī)與從機(jī)之間的自由訪問,克服了現(xiàn)有技術(shù)中從機(jī)與從機(jī)之間的數(shù)據(jù)交換只能通過主機(jī)轉(zhuǎn)發(fā)實現(xiàn)的問題。
[0022]3.本發(fā)明中可以通過中斷觸發(fā)或者輪詢兩種方式訪問物理內(nèi)存,其中,將主機(jī)和每個從機(jī)的寄存器映射到通信總線上,對相關(guān)寄存器進(jìn)行改寫可以實現(xiàn)中斷觸發(fā)從而訪問物理內(nèi)存,提高實時性。
[0023]4.本發(fā)明通過對物理內(nèi)存中的數(shù)據(jù)區(qū)的讀寫屬性進(jìn)行相關(guān)設(shè)置,可以更方便的實現(xiàn)廣播數(shù)據(jù)或者組播數(shù)據(jù)的存取。
[0024]5.本發(fā)明采用總線主控的方式進(jìn)行數(shù)據(jù)交換,并且對物理內(nèi)存中的臨界數(shù)據(jù)區(qū)的訪問實現(xiàn)了同步互斥機(jī)制,實現(xiàn)各個進(jìn)程間通信時對數(shù)據(jù)存取的同步,保證了內(nèi)存共享的安全。
【專利附圖】

【附圖說明】
[0025]下面結(jié)合附圖對本發(fā)明的【具體實施方式】作進(jìn)一步說明:
[0026]圖1為本發(fā)明實施例的一種多處理器的數(shù)據(jù)交換裝置的結(jié)構(gòu)示意圖
[0027]圖2為本發(fā)明實施例的處理器及處理器間數(shù)據(jù)交換的結(jié)構(gòu)示意圖;
[0028]圖3本發(fā)明實施例的一種多處理器的數(shù)據(jù)交換方法的流程圖;
[0029]圖4為本發(fā)明實施例的一種共享的物理內(nèi)存的結(jié)構(gòu)示意圖;
[0030]圖5為本發(fā)明實施例的一種物理內(nèi)存的互斥訪問方法的流程圖。
【具體實施方式】
[0031]如圖1所示,一種多處理器的數(shù)據(jù)交換裝置,包括:主機(jī)板卡3、若干個從機(jī)板卡4、總線板卡(圖上未示出),主機(jī)板卡3和從機(jī)板卡4通過總線板卡相互通信;所述總線板卡集成在一背板8上,所述的背板8上設(shè)置主機(jī)板卡插接件和若干個從機(jī)板卡插接件(圖中均標(biāo)號為7),所述的主機(jī)板卡3和從機(jī)板卡4插接在相應(yīng)的插接件7上;所述的背板8上還設(shè)置有電源模塊板卡插接件2,電源模塊板卡I通過所述的電源模塊板卡插接件2與所述背板8插接,所述電源模塊板卡I給整個裝置提供電源。
[0032]作為優(yōu)選,本實施例中采用3個從機(jī)4(即圖1中對應(yīng)的從機(jī)板卡,以下簡稱從機(jī)),包括從機(jī)一、從機(jī)二和從機(jī)三,即有3個從機(jī)4和一個主機(jī)3(即圖1中對應(yīng)的主機(jī)板卡,以下簡稱主機(jī))插接在背板8上的插接件7上;本實施例中,總線板卡上的通信總線為PCI總線,插接件7為PCI總線接口,但并不作為本發(fā)明的限制,可以理解,相應(yīng)也可以為CPCI總線與CPCI總線接口;主機(jī)3中集成有第一處理器、與所述的第一處理器通信的寄存器、以及用于數(shù)據(jù)共享的物理內(nèi)存,每個從機(jī)4集成有相互通信的處理器和寄存器,從機(jī)4的處理器和所述的物理內(nèi)存通信;所述主機(jī)3的第一處理器和各個從機(jī)4的處理器通過PCI總線與主機(jī)3、從機(jī)4的寄存器通信。
[0033]圖2示出了主機(jī)3和從機(jī)4的具體結(jié)構(gòu),以及主機(jī)3和/或每個從機(jī)4之間的數(shù)據(jù)交換的方式。在本實施例中,主機(jī)3和每個從機(jī)4均有一顆支持PCI總線的處理器,負(fù)責(zé)實現(xiàn)各自特定的功能,并且主機(jī)3和/或每個從機(jī)4之間可以進(jìn)行數(shù)據(jù)交換,數(shù)據(jù)的交換不局限于一個主機(jī)3和一個從機(jī)4之間,也可以發(fā)生在兩個從機(jī)4之間,也可以單機(jī)和多機(jī)之間進(jìn)行數(shù)據(jù)交換,所述單機(jī)和多機(jī)均可以為主機(jī)3或者從機(jī)4中的一個或多個。
[0034]具體的,結(jié)合圖1和2進(jìn)一步說明,數(shù)據(jù)交換的方式包括:a.主機(jī)3與至少一個從機(jī)4之間的數(shù)據(jù)交換;b.從機(jī)4中的任意一個與主機(jī)3和/或至少一個從機(jī)4之間的數(shù)據(jù)交換。當(dāng)然本發(fā)明也可以實現(xiàn)從機(jī)4或者主機(jī)3與自己的數(shù)據(jù)交換。
[0035]參看圖2,在本實施例中,主機(jī)3還提供用于數(shù)據(jù)交換的物理內(nèi)存MEMORY ;所述主機(jī)3的物理內(nèi)存MEMORY通過地址映射的方式映射到PCI總線上,主機(jī)3與各個從機(jī)4共享物理內(nèi)存MEMORY,采用地址映射技術(shù),對物理內(nèi)存MEMORY讀寫速率即為PCI時鐘頻率,可以達(dá)到極小的存儲延時。主機(jī)3和各個從機(jī)4還各自具有寄存器REG,所述主機(jī)3和各個從機(jī)4的寄存器REG分別映射到PCI總線,每個寄存器REG分配有不同的地址,從而形成一寄存器地址空間REGADD (圖上未示出),所述主機(jī)3和N個從機(jī)4的處理器都能訪問所述寄存器地址空間REGADD。主機(jī)3還提供33MHz或66MHz的PCI時鐘信號,在PCI總線中的數(shù)據(jù)交換包括如下信號:主機(jī)提供的時鐘信號CLK,地址或者數(shù)據(jù)信號ADD/DATA,控制信號CONTROL ;在實現(xiàn)中斷觸發(fā)時,還包括中斷信號INT。本發(fā)明實施例通過以地址映射的方式將主機(jī)3的物理內(nèi)存MEMROY映射到PCI總線上實現(xiàn)內(nèi)存的共享,并將主機(jī)3和每個從機(jī)4的寄存器REG映射到PCI總線上形成一寄存器地址空間REGADD,從而使主機(jī)3和每個從機(jī)4均可以訪問該寄存器地址空間REGADD,實現(xiàn)了主機(jī)3和/或每個從機(jī)4間的自由的數(shù)據(jù)交換,這些數(shù)據(jù)的信號形式已在上文描述,對于在處理器中根據(jù)具體指令從而實現(xiàn)信號的形成與處理屬于本領(lǐng)域內(nèi)常規(guī)技術(shù)手段,在此不再贅述。
[0036]圖3示出了本發(fā)明實施例的一種多處理器的數(shù)據(jù)交換方法的流程圖。采用上述的一種多處理器的數(shù)據(jù)交換裝置,并采用中斷觸發(fā)的機(jī)制實現(xiàn)數(shù)據(jù)交換,中斷。結(jié)合圖1至4進(jìn)行說明,具體而言,包括如下步驟:A.主機(jī)的物理內(nèi)存共享,主機(jī)及3個從機(jī)的寄存器映射到PCI總線上供主機(jī)及3個從機(jī)訪問;具體的,主機(jī)3的物理內(nèi)存MEMROY映射到PCI總線上實現(xiàn)物理內(nèi)存的共享,主機(jī)3及3個從機(jī)4的寄存器REG映射到PCI總線上,形成一寄存器地址空間REGADD,主機(jī)3及3個從機(jī)4都可以訪問該寄存器地址空間REGADD ;B.從機(jī)一在物理內(nèi)存MEMROY中寫入數(shù)據(jù),寫完數(shù)據(jù)后進(jìn)入步驟C ;C.從機(jī)一通過PCI總線改寫從機(jī)二的寄存器內(nèi)容,觸發(fā)從機(jī)二的中斷;D.從機(jī)二調(diào)用中斷服務(wù)程序,通知應(yīng)用程序調(diào)用讀取接口,從而讀取物理內(nèi)存MEMROY中相應(yīng)的數(shù)據(jù)區(qū);具體的,從機(jī)二調(diào)用中斷服務(wù)程序,并在中斷服務(wù)程序中通知應(yīng)用程序調(diào)用讀取接口,從而讀取物理內(nèi)存MEMROY中相應(yīng)的數(shù)據(jù)區(qū)。本實施例僅示出了以中斷觸發(fā)的方式實現(xiàn)從機(jī)一和從機(jī)二之間的數(shù)據(jù)交換的方法,上文所述的數(shù)據(jù)交換方式都可以通過本發(fā)明實施方式來實現(xiàn),選擇從機(jī)一和從機(jī)二之間的數(shù)據(jù)交換作為示例僅僅是為了更清楚的表明本發(fā)明的實施方式;當(dāng)然本發(fā)明不僅僅可以通過中斷觸發(fā)方式實現(xiàn)數(shù)據(jù)交換,還可以通過輪詢讀取的方式實現(xiàn),輪詢讀取方式即主機(jī)3和/或每個從機(jī)4在需要使用數(shù)據(jù)時通過調(diào)用讀寫接口訪問物理內(nèi)存MEMORY中的數(shù)據(jù)區(qū),數(shù)據(jù)內(nèi)容根據(jù)不同的應(yīng)用場合有不同的定義,有的數(shù)據(jù)具有狀態(tài)屬性,有的數(shù)據(jù)具有事件屬性,具有狀態(tài)屬性的數(shù)據(jù)在需要使用的時候再讀取比較方便,事件屬性的數(shù)據(jù)在寫入者完成寫入后就立刻通知讀取者去讀取,輪詢方式適合具有狀態(tài)屬性的數(shù)據(jù),中斷觸發(fā)方式適合具有事件屬性的數(shù)據(jù),根據(jù)具體情況主機(jī)3和/或每個從機(jī)4可以進(jìn)行選擇,并且,主機(jī)3和/或每個從機(jī)4對不同的數(shù)據(jù)可采用不同的讀取方式。
[0037]在本發(fā)明實施例中,主機(jī)3和/或每個從機(jī)4對共享的物理內(nèi)存MEMORY中的數(shù)據(jù)區(qū)分別定義訪問屬性,包括讀或?qū)懀蝗糁鳈C(jī)3和每個從機(jī)4與數(shù)據(jù)區(qū)有寫入關(guān)系,則在所述主機(jī)3和/或每個從機(jī)4中將此數(shù)據(jù)區(qū)的寫屬性定義為有,否則定義為無;若主機(jī)3和/或每個從機(jī)4與數(shù)據(jù)區(qū)有讀取關(guān)系,則在所述主機(jī)3和/或每個從機(jī)4中將此數(shù)據(jù)的讀屬性定義為有,否則定義為無;通過定義訪問屬性,該方法通過單機(jī)寫入數(shù)據(jù)、多機(jī)讀取數(shù)據(jù)的方式,或者多機(jī)寫入數(shù)據(jù)、多機(jī)讀取數(shù)據(jù)的方式處理組播數(shù)據(jù)或者廣播數(shù)據(jù)。
[0038]圖4示出了本發(fā)明實施例的一種共享的物理內(nèi)存MEMROY的結(jié)構(gòu),包括兩個部分:臨界數(shù)據(jù)區(qū)10、索引區(qū)9。臨界數(shù)據(jù)區(qū)10是在工作過程中可被多個處理器讀寫訪問的數(shù)據(jù)區(qū),包括數(shù)據(jù)區(qū)一、數(shù)據(jù)區(qū)二、數(shù)據(jù)區(qū)三,以此類推;索引區(qū)9是用于數(shù)據(jù)的索引,包括多個索引表項,其內(nèi)容只有在格式化時被主機(jī)3寫訪問,在系統(tǒng)工作過程中主機(jī)3和每個從機(jī)4對索引區(qū)的訪問都是讀訪問,索引表項中包含數(shù)據(jù)區(qū)的起始地址,還可以包括其他數(shù)據(jù)項,例如數(shù)據(jù)區(qū)偏移地址、數(shù)據(jù)區(qū)長度,在本實施例中,索引區(qū)數(shù)據(jù)項中必須包含數(shù)據(jù)區(qū)的起始地址。以上物理內(nèi)存MEMROY的劃分是為了方便解釋本發(fā)明,還可以根據(jù)具體情況通過其他方式對其進(jìn)行劃分,本實施例中,通過索引區(qū)9來實現(xiàn)對臨界數(shù)據(jù)區(qū)10的索引僅作為一種訪問臨界數(shù)據(jù)區(qū)10的便捷方式,也可以不通過索引區(qū)9,主機(jī)3和每個從機(jī)4直接通過指令對臨界數(shù)據(jù)區(qū)10進(jìn)行尋址訪問。在本發(fā)明實施例中,由于物理內(nèi)存MEMROY的共享,需要保證不同處理器中的多個線程對物理內(nèi)存MEMROY中的臨界數(shù)據(jù)區(qū)10的訪問是互斥的,臨界數(shù)據(jù)區(qū)10為在系統(tǒng)工作過程中會被多個處理器讀寫訪問的數(shù)據(jù)區(qū)。
[0039]圖5示出了本發(fā)明實施例的一種物理內(nèi)存的互斥訪問方法的流程圖。通過面包店算法實現(xiàn)主機(jī)3和每個從機(jī)4中的進(jìn)程/線程對物理內(nèi)存MEMORY中的臨界數(shù)據(jù)區(qū)10的互斥訪問,所述互斥訪問的步驟具體包括:
[0040]S1:進(jìn)程或線程獲取本地互斥量,則調(diào)用讀寫接口并進(jìn)入步驟B,否則等待被其余進(jìn)程或線程釋放的本地互斥量;具體的,主機(jī)3和/或每個從機(jī)4中的進(jìn)程或線程獲取本地互斥量,則獲取到本地互斥量的所述進(jìn)程或線程調(diào)用讀寫接口,否則所述進(jìn)程或線程等待被其余進(jìn)程或線程釋放的本地互斥量,所述本地互斥量由主機(jī)和/或每個從機(jī)中的操作系統(tǒng)提供,用于保證主機(jī)3和每個從機(jī)4在一個時刻最多只有一個進(jìn)程或線程正在調(diào)用共享物理內(nèi)存MEMORY的讀寫接口 ;
[0041]S2:所述進(jìn)程或線程調(diào)用讀寫接口后,首先通過通信總線訪問面包店數(shù)據(jù)區(qū),對所述面包店數(shù)據(jù)區(qū)的每個變量的訪問都是原子的;
[0042]S3:根據(jù)面包店算法對面包店數(shù)據(jù)區(qū)進(jìn)行數(shù)次訪問后,判斷所述是否獲得臨界數(shù)據(jù)區(qū)的訪問權(quán),若獲得則讀寫臨界數(shù)據(jù)區(qū);具體的,所述進(jìn)程或線程根據(jù)面包店算法對面包店數(shù)據(jù)區(qū)進(jìn)行數(shù)次訪問后,判斷所述進(jìn)程或線程是否獲得所述共享物理內(nèi)存MEMROY的臨界數(shù)據(jù)區(qū)10的訪問權(quán),若獲得訪問權(quán),則讀寫臨界數(shù)據(jù)區(qū)10 ;
[0043]S4:讀寫完成后,根據(jù)面包店算法修改對應(yīng)的面包店數(shù)據(jù)區(qū)中的變量,然后釋放保護(hù)讀寫接口的本地互斥量。
[0044]本發(fā)明實施例使用的面包店算法為本領(lǐng)域技術(shù)人員公知的技術(shù),在此不再展開,也可以通過其他的算法來實現(xiàn)本發(fā)明的互斥訪問;面包店算法中對每個變量的訪問都是原子的,這些訪問局限在讀寫接口中,若主機(jī)3和/或每個從機(jī)4要訪問臨界數(shù)據(jù)區(qū)10首選需要獲取到讀寫接口,否則只能等待別的主機(jī)3和/或每個從機(jī)4釋放讀寫接口再進(jìn)一步判斷是否可以獲得讀寫接口,所述的讀寫接口是讀寫臨界數(shù)據(jù)區(qū)10的軟件接口,即函數(shù)接口 ;本發(fā)明實施例通過使用本地互斥量來保護(hù)讀寫接口,防止多線程同時調(diào)用讀寫接口,所述本地互斥量由主機(jī)和/或每個從機(jī)中的操作系統(tǒng)提供,用于保證主機(jī)3和每個從機(jī)4在一個時刻最多只有一個線程正在調(diào)用共享物理內(nèi)存MEMORY的讀寫接口。
[0045]除上述優(yōu)選實施例外,本發(fā)明還有其他的實施方式,本領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明作出各種改變和變形,只要不脫離本發(fā)明的精神,均應(yīng)屬于本發(fā)明所附權(quán)利要求所定義的范圍。
【權(quán)利要求】
1.一種多處理器的數(shù)據(jù)交換方法,其特征在于:主機(jī)的物理內(nèi)存映射到通信總線上,主機(jī)與至少一個從機(jī)共享所述的主機(jī)的物理內(nèi)存,所述主機(jī)和每個從機(jī)的處理器通過通信總線訪問共享的物理內(nèi)存。
2.根據(jù)權(quán)利要求1所述的多處理器的數(shù)據(jù)交換方法,其特征在于:所述主機(jī)和各個從機(jī)的寄存器分別映射到通信總線上,每個寄存器被分配不同的地址,從而形成一寄存器地址空間,所述主機(jī)和每個從機(jī)的處理器通過通信總線訪問所述寄存器地址空間,讀寫寄存器內(nèi)容。
3.根據(jù)權(quán)利要求1所述的多處理器的數(shù)據(jù)交換方法,其特征在于:當(dāng)主機(jī)和/或每個從機(jī)通過中斷機(jī)制進(jìn)行物理內(nèi)存的數(shù)據(jù)讀取時,所述的寄存器為中斷寄存器,主機(jī)通過通信總線訪問所述寄存器地址空間,改寫至少一個從機(jī)的中斷寄存器內(nèi)容,或者,每個從機(jī)通過通信總線訪問所述寄存器地址空間,改寫主機(jī)或其余至少一個從機(jī)的中斷寄存器內(nèi)容,從而觸發(fā)對方的中斷,引起中斷觸發(fā)的主機(jī)和/或每個從機(jī)通過中斷服務(wù)程序通知應(yīng)用程序調(diào)用讀取接口訪問物理內(nèi)存中的數(shù)據(jù)區(qū)。
4.根據(jù)權(quán)利要求1所述的多處理器的數(shù)據(jù)交換方法,其特征在于:當(dāng)主機(jī)和/或每個從機(jī)通過輪詢方式進(jìn)行物理內(nèi)存的數(shù)據(jù)讀取時,主機(jī)和/或每個從機(jī)通過調(diào)用讀寫接口訪問物理內(nèi)存中的數(shù)據(jù)區(qū)進(jìn)行數(shù)據(jù)讀取。
5.根據(jù)權(quán)利要求1所述的多處理器的數(shù)據(jù)交換方法,其特征在于:主機(jī)和/或每個從機(jī)對主機(jī)的共享物理內(nèi)存中的數(shù)據(jù)區(qū)分別定義訪問屬性,包括讀或?qū)?;若主機(jī)和/或每個從機(jī)與數(shù)據(jù)區(qū)有寫入關(guān)系,則在所述主機(jī)和/或每個從機(jī)中將此數(shù)據(jù)區(qū)的寫屬性定義為有,否則定義為無;若主機(jī)和/或每個從機(jī)與數(shù)據(jù)區(qū)有讀取關(guān)系,則在所述主機(jī)和/或每個從機(jī)中將此數(shù)據(jù)的讀屬性定義為有,否則定義為無;主機(jī)和/或每個從機(jī)對共享的物理內(nèi)存的的數(shù)據(jù)讀寫方法包括以下一種或幾種:主機(jī)寫入數(shù)據(jù),主機(jī)和/或至少一個從機(jī)讀取數(shù)據(jù),或者,一個從機(jī)寫入數(shù)據(jù),主機(jī)和/或至少一個從機(jī)讀取數(shù)據(jù),或者,主機(jī)和至少一個從機(jī)寫入數(shù)據(jù),主機(jī)和/或至少一個從機(jī)讀取數(shù)據(jù),或者,多個從機(jī)寫入數(shù)據(jù),主機(jī)和/或至少一個從機(jī)讀取數(shù)據(jù);主機(jī)和從機(jī)通過以上方法讀寫主機(jī)的共享物理內(nèi)存的數(shù)據(jù)處理單播數(shù)據(jù)、組播數(shù)據(jù)以及廣播數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的多處理器的數(shù)據(jù)交換方法,其特征在于:通過面包店算法實現(xiàn)主機(jī)和/或每個從機(jī)中的進(jìn)程或線程對物理內(nèi)存中的臨界數(shù)據(jù)區(qū)的互斥訪問,所述互斥訪問的步驟包括: A.主機(jī)和/或每個從機(jī)中的進(jìn)程或線程獲取本地互斥量,則獲取到本地互斥量的所述進(jìn)程或線程調(diào)用讀寫接口,否則所述進(jìn)程或線程等待被其余進(jìn)程或線程釋放的本地互斥量,所述本地互斥量由主機(jī)和/或每個從機(jī)中的操作系統(tǒng)提供,用于保證主機(jī)和每個從機(jī)在一個時刻最多只有一個進(jìn)程或線程正在調(diào)用共享物理內(nèi)存的讀寫接口; B.所述進(jìn)程或線程調(diào)用讀寫接口后,首先通過通信總線訪問面包店數(shù)據(jù)區(qū),對所述面包店數(shù)據(jù)區(qū)的每個變量的訪問都是原子的; C.所述進(jìn)程或線程根據(jù)面包店算法對面包店數(shù)據(jù)區(qū)進(jìn)行數(shù)次訪問后,判斷所述進(jìn)程或線程是否獲得所述共享物理內(nèi)存的臨界數(shù)據(jù)區(qū)的訪問權(quán),若獲得訪問權(quán),則讀寫臨界數(shù)據(jù)區(qū); D.讀寫完成后,根據(jù)面包店算法修改對應(yīng)的面包店數(shù)據(jù)區(qū)中的變量,然后釋放保護(hù)讀寫接口的本地互斥量。
7.一種多處理器的數(shù)據(jù)交換裝置,包括主機(jī)板卡、若干個從機(jī)板卡、總線板卡,主機(jī)板卡和從機(jī)板卡通過總線板卡相互通信,其特征在于:主機(jī)板卡集成有第一處理器、與所述的第一處理器通信的寄存器、以及用于數(shù)據(jù)共享的物理內(nèi)存,每個從機(jī)板卡集成有相互通信的處理器和寄存器,從機(jī)板卡的處理器和所述的物理內(nèi)存通信。
8.根據(jù)權(quán)利要求7所述的多處理器的數(shù)據(jù)交換裝置,其特征在于:所述主機(jī)板卡的第一處理器和各個從機(jī)板卡的處理器通過總線板卡與主機(jī)板卡、從機(jī)板卡的寄存器通信。
9.根據(jù)權(quán)利要求8所述的多處理器的數(shù)據(jù)交換裝置,其特征在于:所述總線板卡集成在一背板上,所述的背板上設(shè)置主機(jī)板卡插接件和若干個從機(jī)板卡插接件,所述的主機(jī)板卡和從機(jī)板卡插接在相應(yīng)的插接件上。
10.根據(jù)權(quán)利要求9所述的多處理器的數(shù)據(jù)交換裝置,其特征在于:所述的背板上還設(shè)置有電源模塊板卡插接件,電源模塊板卡通過所述的電源模塊板卡插接件與所述背板插接,所述電源模塊板卡給整個 裝置提供電源。
【文檔編號】G06F15/17GK103810139SQ201410034898
【公開日】2014年5月21日 申請日期:2014年1月24日 優(yōu)先權(quán)日:2014年1月24日
【發(fā)明者】周勇, 舒宇, 周公爽 申請人:浙江眾合機(jī)電股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
南平市| 宁晋县| 海城市| 区。| 嘉禾县| 新营市| 岳阳县| 濉溪县| 徐汇区| 江西省| 四平市| 滦平县| 滦南县| 泰来县| 敦煌市| 正安县| 绥芬河市| 汤阴县| 怀化市| 扬州市| 安徽省| 海原县| 木兰县| 肥城市| 荣昌县| 平罗县| 张家口市| 渝北区| 平南县| 汝城县| 社会| 甘洛县| 重庆市| 五家渠市| 宁城县| 察隅县| 清河县| 渭南市| 朝阳市| 平潭县| 绥德县|