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

一種基于共享存儲(chǔ)器的雙cpu通信方法

文檔序號(hào):6560135閱讀:220來源:國知局
專利名稱:一種基于共享存儲(chǔ)器的雙cpu通信方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種通信技術(shù)領(lǐng)域的通信方法,具體涉及的是一種基于共享
存儲(chǔ)器的雙CPU通信方法。
背景技術(shù)
在現(xiàn)有技術(shù)的兩個(gè)CPU之間通過共享存儲(chǔ)器通信時(shí),目前豐支常見的有
兩種方法。
一種方法是將共享存儲(chǔ)區(qū)劃分為兩塊,分別作為兩個(gè)CPU的發(fā)送、接
收通道,如

圖1所示。每個(gè)通道提供一個(gè)讀寫標(biāo)志位,該標(biāo)志初始為可寫 態(tài)。發(fā)送方發(fā)送數(shù)據(jù)后將讀寫標(biāo)志由可寫態(tài)修改為可讀態(tài),等待接收方接 收。接收方接收數(shù)據(jù)后將讀寫標(biāo)志由可讀態(tài)修改為可寫態(tài),以便發(fā)送方可 以繼續(xù)發(fā)送。采用這種方法,每一次的數(shù)據(jù)交互都需要等待對(duì)方讀或?qū)懲?畢,效率很低。
另一種方法也是將共享存儲(chǔ)區(qū)分為兩塊,分別作為兩個(gè)CPU的發(fā)送、 接收的通道,每個(gè)通道用一個(gè)環(huán)形隊(duì)列實(shí)現(xiàn)循環(huán)讀寫,如圖2所示。環(huán)形 隊(duì)列通過存放在郵箱中的讀寫指針進(jìn)行管理。以CPU1發(fā)送為例,CPU1有
數(shù)據(jù)需要發(fā)送時(shí),首先通過環(huán)形隊(duì)列1的讀、寫指針計(jì)算是否有足夠的剩 余空間,如果空間足夠,則將消息包寫入寫指針?biāo)肝恢?,并更新寫指針?br> CPU2定時(shí)輪詢環(huán)形隊(duì)列1,發(fā)現(xiàn)有新的消息包時(shí),則讀取消息包,并更新 讀指針。由于發(fā)送方和接收方可以同時(shí)操作共享存儲(chǔ)區(qū),比前述方法在效 率上大大提高。
但是還是存在以下問題 (1)數(shù)據(jù)一般按定長(zhǎng)打包發(fā)送,對(duì)于消息包長(zhǎng)度相差大,例如最小長(zhǎng)
度為4字節(jié),最大長(zhǎng)度為40字節(jié),都要按最大的40字節(jié)打包發(fā)送,造成浪費(fèi)。
(2) 數(shù)棍不接定長(zhǎng)打包發(fā)送時(shí),需要在消息包中包含長(zhǎng)度信息,由于 消息包不定長(zhǎng),接收方無法通過讀寫指針計(jì)算出待處理的消息條數(shù)。
(3) 消息包不定長(zhǎng)時(shí),在連續(xù)發(fā)送消息的過程中,其中某條出現(xiàn)故障 將引起后面的讀寫指針全部紊亂。
(4) 在隊(duì)列尾端空間不夠存放新消息包時(shí), 一般為了操作方便不允許 消息包巻繞,就需要填充特殊值(例如0xFFFF)指示該尾端空間無效,并 將消息包放置到隊(duì)列頭部。接收時(shí)需要和特殊值比較,判斷是正常消息包 還是巻繞時(shí)的填充值。如果正常消息包中包含特殊值,就會(huì)產(chǎn)生沖突。
因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于共享存儲(chǔ)器的雙CPU通信方法,針對(duì) 前述兩種方法的缺點(diǎn),提供了一種支持可變消息長(zhǎng)度,高效、可靠的雙CPU 通信方法。
本發(fā)明的技術(shù)方案如下
一種基于共享存儲(chǔ)器的雙CPU通信方法,在第一 CPU和第二 CPU之間 存在雙向傳輸通道,每一通道使用兩個(gè)環(huán)形隊(duì)列, 一個(gè)用于存放消息索引, 一個(gè)用于存放消息實(shí)體;并且每一通道傳輸過程包括以下步驟
A、 初始化流程通信前完成本CPU負(fù)責(zé)的隊(duì)列讀寫指針的初始化;
B、 發(fā)送消息流程將新消息實(shí)體寫入消息實(shí)體隊(duì)列,并更新消息實(shí)體 隊(duì)列寫指針,即指向新消息實(shí)體之后的可用單元;更新消息索引隊(duì)列寫指 針?biāo)竼卧膬?nèi)容,指向消息實(shí)體隊(duì)列中的新消息實(shí)體,并更新消息索引 隊(duì)列寫指針指向下一單元;
C、 接收消息流程消息索引隊(duì)列讀指針前移一個(gè)單元,根據(jù)該單元中
的索引計(jì)算待處理消息實(shí)體的讀指針,并更新消息索引隊(duì)列讀指針;讀取 待處理消息實(shí)體并處理。
所述的方法,其中,所述步驟A還包括
寫指針指向隊(duì)列頭部第一個(gè)單元,讀指針指向隊(duì)列尾部最后一個(gè)單元。 所述的方法,其中,所述步驟B還包括
BOl、根據(jù)消息實(shí)體隊(duì)列讀、寫指針和消息實(shí)體隊(duì)列大小,判斷是否可 以寫入新消息實(shí)體;是,則繼續(xù);否,則延遲后再發(fā);
B02、根據(jù)消息索引隊(duì)列讀、寫指針和消息索引隊(duì)列大小,判斷是否可 以寫入新消息索引;是,則繼續(xù);否,則延遲后再發(fā)。
所述的方法,其中,所述步驟C還包括
COl、根據(jù)消息索引隊(duì)列讀、寫指針和消息索引隊(duì)列大小,計(jì)算待處理 消息條數(shù),如果沒有消息處理則返回。
所述的方法,其中,所述步驟C中,所述消息索引隊(duì)列讀指針前移一個(gè) 單元時(shí),如果前移到達(dá)消息索引隊(duì)列大小則回繞到0。
所述的方法,其中,所述步驟C中還包括
C02、更新消息實(shí)體隊(duì)列讀指針;
C03、待處理消息條數(shù)減1;
循環(huán)處理直到待處理消息條數(shù)為0。
所述的方法,其中,所述消息索引是大小固定為4字節(jié)、指向消息實(shí)體 的指針;所述消息實(shí)體大小可變。
所述的方法,其中,所述每個(gè)環(huán)形隊(duì)列通過存放在郵箱中的讀寫指針管 理,寫指針表示發(fā)送方可寫,接收方只讀;讀指針表示發(fā)送方只讀,接收 方可寫。
所述的方法,其中,對(duì)所述郵箱采用鏡像保護(hù),以避免指針的同時(shí)讀 寫沖突。
所述的方法,其中,所述發(fā)送方發(fā)送消息的同時(shí),通過中斷產(chǎn)生和控制
裝置設(shè)置對(duì)方的中斷狀態(tài)標(biāo)志位;所述接收方通過響應(yīng)中斷接收,或用輪 詢的方式接收。
本發(fā)明所提供的一種基于共享存儲(chǔ)器的雙CPU通信方法,與現(xiàn)有技術(shù) 相比,由于在共享存儲(chǔ)器中引入索引隊(duì)列和實(shí)體隊(duì)列,減少了發(fā)送方和接 收方的等待時(shí)間,減少了接收方重復(fù)進(jìn)中斷或查詢的次數(shù),提高了CPU的 利用率,提高了數(shù)據(jù)吞吐量和處理速度,能夠支持可變消息長(zhǎng)度,高效、 可靠,尤其適用于消息流量大、且消息包不定長(zhǎng)的情況。
附圖i兌明
圖1是現(xiàn)有技術(shù)的共享存儲(chǔ)器的雙CPU通信示意圖; 圖2是現(xiàn)有技術(shù)的每個(gè)通道用 一個(gè)環(huán)形隊(duì)列的雙CPU通信示意圖; 圖3是本發(fā)明所述方法中的每個(gè)通道用兩個(gè)環(huán)形隊(duì)列的雙CPU通信示 意圖4是本發(fā)明所述方法中的消息索引與消息實(shí)體關(guān)系示意圖; 圖5是作為本發(fā)明具體實(shí)施方式
的雙CPU通信示意圖; 圖6是作為本發(fā)明具體實(shí)施方式
的郵箱分配示意圖; 圖7示例了典型情況下的待處理消息條數(shù)計(jì)算示意圖。
具體實(shí)施例方式
下面結(jié)合具體實(shí)施方式
對(duì)本發(fā)明所述方法作進(jìn)一步的描述。 本發(fā)明的基于共享存儲(chǔ)器的雙CPU通信方法,如圖3和圖4所示的, 為了描述方便,定義CPU1發(fā)送、CPU2接收的通道為正向通道,CPU2發(fā) 送、CPU1接收的通道為反向通道。正向通道和反向通道各使用了兩個(gè)環(huán)形 隊(duì)列, 一個(gè)用于存放消息索引, 一個(gè)用于存放消息實(shí)體;消息索引是大小 固定為4字節(jié)、指向消息實(shí)體的指針,消息實(shí)體大小可變。
每個(gè)環(huán)形隊(duì)列通過存;^文在郵箱中的讀寫指針管理,寫指針表示發(fā)送方可
寫,接收方只讀。讀指針表示發(fā)送方只讀,接收方可寫。對(duì)郵箱采用鏡像 保護(hù),可以完全避免指針的同時(shí)讀寫沖突問題。
本發(fā)明方法中發(fā)送方發(fā)送消息的同時(shí),可以通過中斷產(chǎn)生和控制裝置, 設(shè)置對(duì)方的中斷狀態(tài)標(biāo)志位,接收方可以通過響應(yīng)中斷接收,也可以用輪 詢的方式接收。
根據(jù)系統(tǒng)需要,分別設(shè)定正向通道和反向通道的消息索引隊(duì)列大小和消
息實(shí)體隊(duì)列大小。在兩個(gè)CPU的處理程序中包含如下三個(gè)基本流程 第一部分,初始化流程
通信前完成本CPU負(fù)責(zé)的隊(duì)列讀寫指針的初始化,寫指針指向隊(duì)列頭 部第一個(gè)單元,讀指針指向隊(duì)列尾部最后一個(gè)單元。 第二部分,發(fā)送消息流程
(1) 根據(jù)消息實(shí)體隊(duì)列讀、寫指針和消息實(shí)體隊(duì)列大小,判斷是否可 以寫入新消息實(shí)體。是,則繼續(xù);否,則延遲后再發(fā)。
(2) 根據(jù)消息索引隊(duì)列讀、寫指針和消息索引隊(duì)列大小,判斷是否可 以寫入新消息索引。是,則繼續(xù);否,則延遲后再發(fā)。
(3) 將新消息實(shí)體寫入消息實(shí)體隊(duì)列,并更新消息實(shí)體隊(duì)列寫指針, 即指向新消息實(shí)體之后的可用單元。
(4) 更新消息索引隊(duì)列寫指針?biāo)竼卧膬?nèi)容,指向消息實(shí)體隊(duì)列中 的新消息實(shí)體,并更新消息索引隊(duì)列寫指針,即指向下一單元。
第三部分,接收消息流程
(1 )才艮據(jù)消息索引隊(duì)列讀、寫指針和消息索引隊(duì)列大小,計(jì)算待處理 消息條數(shù)。如果沒有消息處理則返回。
(2) 消息索引隊(duì)列讀指針前移一個(gè)單元,如果前移到達(dá)消息索引隊(duì)列 大小則回繞到O,根據(jù)該單元中的索引計(jì)算待處理消息實(shí)體的讀指針,并更 新消息索引隊(duì)列讀指針。
(3) 讀取待處理消息實(shí)體并處理。
(4) 更新消息實(shí)體隊(duì)列讀指針。
(5) 待處理消息條數(shù)減1。
(6) 繼續(xù)第(2)歩,直到待處理消息條數(shù)為O。
(7) 繼續(xù)第(1)步。
在本發(fā)明的具體實(shí)施例中,如圖5所示,C6xDSP和ARM9使用共享存 儲(chǔ)器和郵箱來實(shí)現(xiàn)消息交互。共享存儲(chǔ)區(qū)被分為正向消息索引隊(duì)列、正向 消息實(shí)體隊(duì)列、反向消息索引隊(duì)列、反向消息實(shí)體隊(duì)列共4個(gè)緩沖區(qū)。正 反向消息隊(duì)列的讀寫都以循環(huán)的方式進(jìn)行操作,循環(huán)讀寫所用的指針通過 郵箱進(jìn)行交互。
郵箱有兩組,分別稱為讀入郵箱和寫出郵箱(從ARM9角度稱呼)。讀 入郵箱是一個(gè)雙口的寄存器堆,連接DSP的端口是可讀寫的,連接ARM 的端口是只讀的。寫出郵箱也是一個(gè)雙口的寄存器堆,不過連接DSP的端 口是只讀的,而連接ARM的端口是可讀寫的。兩組郵箱寄存器堆內(nèi)部雙端 口均設(shè)有各自的鏡象寄存器以支持雙端口同時(shí)讀寫,因此可以完全避免指 針的同時(shí)讀寫沖突問題。
兩組郵箱在寫訪問時(shí)會(huì)產(chǎn)生中斷,對(duì)讀入郵箱寫訪問會(huì)通過ARM中斷 控制器產(chǎn)生中斷通知ARM,用于DSP向ARM發(fā)送消息。對(duì)寫出郵箱寫訪 問會(huì)通過DSP中斷控制器產(chǎn)生中斷通知DSP,用于ARM向DSP發(fā)送消息。 接收方可以通過響應(yīng)中斷接收,也可以用輪詢的方式接收。
通過復(fù)位控制器可以提供故障恢復(fù)機(jī)制以DSP為主控端,DSP檢查 到隊(duì)列滿,則等待ARM處理并計(jì)時(shí),超過限定時(shí)間隊(duì)列仍為滿則視為ARM 已死機(jī),通過復(fù)位使ARM恢復(fù)正常。
本發(fā)明方法中消息索引隊(duì)列的讀寫以循環(huán)的方式進(jìn)行以下搡作
(1) 初始化時(shí),隊(duì)列的寫指針指向隊(duì)列頭部第一個(gè)單元,讀指針指向 隊(duì)列尾部最后一個(gè)單元。
(2) 指針從頭部往尾部移動(dòng),當(dāng)?shù)竭_(dá)最后一個(gè)單元時(shí),又回復(fù)到隊(duì) 頭部,如此循環(huán)。
(3) 寫隊(duì)列時(shí),從寫指針?biāo)肝恢脤懀蛔x隊(duì)列時(shí),讀指針前移一個(gè)單 元再讀。
(4) 寫隊(duì)列時(shí),根據(jù)讀寫指針差別判斷是否可以寫入。
(5) 讀指針追趕寫指針,并且保證讀指針與寫指針之間相差至少一個(gè) 單元。計(jì)算待處理消息條數(shù)時(shí),需要減去此單元。
消息實(shí)體隊(duì)列的讀寫也是以循環(huán)的方式進(jìn)行操作。當(dāng)發(fā)送消息時(shí),如果 已經(jīng)到達(dá)消息實(shí)體隊(duì)列尾端并且尾端空間不夠,則移到隊(duì)列頭操作。由于 存放消息實(shí)體時(shí),同時(shí)把其地址存放到消息索引隊(duì)列中,因此接收方按消 息索引即可取到消息實(shí)體地址,無需關(guān)心消息實(shí)體隊(duì)列是否發(fā)生巻繞。
根據(jù)消息索引隊(duì)列讀、寫指針和消息索引隊(duì)列大小,可以計(jì)算出待處理 消息條數(shù)
如果寫指針 > 讀指針,則待處理消息條數(shù)=寫指針-讀指針-1; 如果寫指針 < 讀指針,則待處理消息條數(shù)=隊(duì)列大小-讀指針+寫 指針-1。
圖7示例了本發(fā)明方法在典型情況下的待處理消息條數(shù)計(jì)算。圖7(a)所 示為消息索引隊(duì)列初始化時(shí)的情況,此時(shí)待處理消息條數(shù)為0。圖7(b)所示 為寫指針 > 讀指針的情況,陰影部分為待處理消息的索引。圖7(c)所示為 讀指針 > 寫指針的情況,陰影部分為待處理消息的索引,此時(shí)寫指針已經(jīng) 從隊(duì)列尾回繞到隊(duì)列頭。圖7(d)所示為待處理消息條數(shù)等于0的情況。
下面具體說明本發(fā)明方法的具體實(shí)施例中DSP到ARM的消息傳送過
程,ARM到DSP的消息傳送過程與此類似。
為了發(fā)送消息到ARM,如圖6所示,DSP按以下步驟完成相關(guān)搡作
(1) DSP從讀入郵箱讀取正向消息索引隊(duì)列寫指針、消息實(shí)體隊(duì)列寫 指針,從寫出郵箱讀取正向消息索引隊(duì)列讀指針、消息實(shí)體隊(duì)列讀指針。
(2) 才艮據(jù)消息實(shí)體隊(duì)列讀、寫指針和消息實(shí)體隊(duì)列大小,計(jì)算可用的
消息實(shí)體隊(duì)列空間,并判斷是否足夠存放新消息實(shí)體。該空間必須連續(xù), 即如果寫指針大于讀指針,且隊(duì)列尾部可用空間不夠時(shí),計(jì)算隊(duì)列頭部可
用空間。如栗空間足夠則繼續(xù),否則延遲后再發(fā)。
(3) 才艮據(jù)消息索引隊(duì)列讀、寫指針和消息索引隊(duì)列大小,計(jì)算可用的
消息索引隊(duì)列空間,并判斷是否可以寫入新消息索引。判斷的依據(jù)是保證 讀指針與寫指針之間相差至少一個(gè)單元。如果空間足夠則繼續(xù),否則延遲
后再發(fā)。
(4) 將新消息實(shí)體寫入消息實(shí)體隊(duì)列(從消息實(shí)體隊(duì)列寫指針?biāo)竼?br> 元開始寫),并更新讀入郵箱中的消息實(shí)體隊(duì)列寫指針(指向新消息實(shí)體之 后的可用單元)。
(5) 更新消息索引隊(duì)列寫指針?biāo)竼卧膬?nèi)容,指向消息實(shí)體隊(duì)列中 的新消息實(shí)體,并更新讀入郵箱中的消息索引隊(duì)列寫指針(指向下一單元)。
由于讀入郵箱寫指針的變化,將觸發(fā)ARM的中斷,ARM按以下步驟從 消息隊(duì)列讀取消息
(1) ARM從讀入郵箱讀取正向消息索引隊(duì)列寫指針,從寫出郵箱讀取 正向消息索引隊(duì)列讀指針。
(2) 才艮據(jù)消息索引隊(duì)列讀、寫指針和消息索引隊(duì)列大小,計(jì)算待處理 消息條數(shù)。如果沒有消息處理則返回。
(3) 消息索引隊(duì)列讀指針前移一個(gè)單元(如果前移到達(dá)消息索引隊(duì)列 大小則回繞到0),才艮據(jù)該單元中的索引計(jì)算待處理消息實(shí)體的讀指針。并 更新寫出郵箱中的消息索引隊(duì)列讀指針。
(4) 讀取4寺處理消息實(shí)體并處理。
(5) 更新寫出郵箱中的消息實(shí)體隊(duì)列讀指針。
(6) 待處理消息條數(shù)減1。
(7) 循環(huán)繼續(xù)第(3)步,直到待處理消息條數(shù)為0。
(8) 循環(huán)繼續(xù)第(1)步。
綜上,本發(fā)明的基于共享存儲(chǔ)器的雙CPU通信方法,支持可變消息長(zhǎng) 度;盡管消息實(shí)體的大小不同,每條消息都對(duì)應(yīng)一條4字節(jié)的消息索引指 向消息實(shí)休,因此接收方可通過消息余引讀寫指針計(jì)算出待處理的消息條 數(shù);避免每個(gè)通道只用一個(gè)環(huán)形隊(duì)列時(shí),在連續(xù)發(fā)送消息的過程中,其中 某條出現(xiàn)故障引起后面的讀寫指針紊亂的問題。
本發(fā)明方法在處理消息包巻繞時(shí)無需填充特殊值,在消息實(shí)體隊(duì)列尾端 空間不夠存放新消息包時(shí),直接存放到隊(duì)列頭,其地址存入消息索引隊(duì)列, 因此接收方按消息索引即可取到消息實(shí)體,根本無需關(guān)心消息包是否巻繞。
本發(fā)明方法避免了指針的同時(shí)讀寫沖突問題;發(fā)送方可以連續(xù)發(fā)送消 息,將多條消息堆積在緩沖區(qū)內(nèi),接收方可以連續(xù)處理緩沖區(qū)內(nèi)的多條消 息。這樣就減少了發(fā)送方和接收方的等待時(shí)間,減少了接收方重復(fù)進(jìn)中斷 或查詢的次數(shù),提高了CPU的利用率,提高了數(shù)據(jù)吞吐量和處理速度。
應(yīng)當(dāng)理解的是,上述針對(duì)具體實(shí)施例的描述較為詳細(xì),并不能因此而認(rèn) 為是對(duì)本發(fā)明專利保護(hù)范圍的限制,本發(fā)明的專利保護(hù)范圍應(yīng)以所附權(quán)利 要求為準(zhǔn)。
權(quán)利要求
1、一種基于共享存儲(chǔ)器的雙CPU通信方法,在第一CPU和第二CPU之間存在雙向傳輸通道,每一通道使用兩個(gè)環(huán)形隊(duì)列,一個(gè)用于存放消息索引,一個(gè)用于存放消息實(shí)體;并且每一通道傳輸過程包括以下步驟A、初始化流程通信前完成本CPU負(fù)責(zé)的隊(duì)列讀寫指針的初始化;B、發(fā)送消息流程將新消息實(shí)體寫入消息實(shí)體隊(duì)列,并更新消息實(shí)體隊(duì)列寫指針,即指向新消息實(shí)體之后的可用單元;更新消息索引隊(duì)列寫指針?biāo)竼卧膬?nèi)容,指向消息實(shí)體隊(duì)列中的新消息實(shí)體,并更新消息索引隊(duì)列寫指針指向下一單元;C、接收消息流程消息索引隊(duì)列讀指針前移一個(gè)單元,根據(jù)該單元中的索引計(jì)算待處理消息實(shí)體的讀指針,并更新消息索引隊(duì)列讀指針;讀取待處理消息實(shí)體并處理。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A還包括寫指針指向隊(duì)列頭部第 一個(gè)單元,讀指針指向隊(duì)列尾部最后一個(gè)單元。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟B還包括 BOl、根據(jù)消息實(shí)體隊(duì)列讀、寫指針和消息實(shí)體隊(duì)列大小,判斷是否可以寫入新消息實(shí)體;是,則繼續(xù);否,則延遲后再發(fā);B02、根據(jù)消息索引隊(duì)列讀、寫指針和消息索引隊(duì)列大小,判斷是否可 以寫入新消息索引;是,則繼續(xù);否,則延遲后再發(fā)。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟C還包括 COl、 #4居消息索引隊(duì)列讀、寫指針和消息索引隊(duì)列大小,計(jì)算待處理消息條數(shù),如果沒有消息處理則返回。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟C中,所述消 息索引隊(duì)列讀指針前移一個(gè)單元時(shí),如果前移到達(dá)消息索引隊(duì)列大小則回繞 到0。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟C中還包括 C02、更新消息實(shí)體隊(duì)列讀指針;C03、持處理消息條數(shù)減l; 循環(huán)處理直到待處理消息條數(shù)為0。
7、 根據(jù)權(quán)利要求l-6任一所述的方法,其特征在于,所述消息索引是大 小固定為4字節(jié)、指向消息實(shí)體的指針;所述消息實(shí)體大小可變。
8、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述每個(gè)環(huán)形隊(duì)列通過存 放在郵箱中的讀寫指針管理,寫指針表示發(fā)送方可寫,接收方只讀;讀指針 表示發(fā)送方只讀,接收方可寫。
9、 根據(jù)權(quán)利要求8所述的方法,其特征在于,對(duì)所述郵箱采用鏡像保護(hù), 以避免指針的同時(shí)讀寫沖突。
10、 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述發(fā)送方發(fā)送消息的 同時(shí),通過中斷產(chǎn)生和控制裝置設(shè)置對(duì)方的中斷狀態(tài)標(biāo)志位;所述接收方通 過響應(yīng)中斷接收,或用輪詢的方式接收。
全文摘要
本發(fā)明公開了一種基于共享存儲(chǔ)器的雙CPU通信方法,在第一CPU和第二CPU之間存在雙向傳輸通道,每一通道使用兩個(gè)環(huán)形隊(duì)列,一個(gè)用于存放消息索引,一個(gè)用于存放消息實(shí)體;并且每一通道傳輸過程包括以下步驟初始化流程通信前完成本CPU負(fù)責(zé)的隊(duì)列讀寫指針的初始化;發(fā)送消息流程將新消息實(shí)體寫入消息實(shí)體隊(duì)列,并更新消息實(shí)體隊(duì)列寫指針,即指向新消息實(shí)體之后的可用單元;更新消息索引隊(duì)列寫指針?biāo)竼卧膬?nèi)容,指向消息實(shí)體隊(duì)列中的新消息實(shí)體,并更新消息索引隊(duì)列寫指針指向下一單元;接收消息流程。本發(fā)明方法由于在共享存儲(chǔ)器中引入索引隊(duì)列和實(shí)體隊(duì)列,支持可變消息長(zhǎng)度,減少了發(fā)送方和接收方的等待時(shí)間,提高了CPU的利用率,提高了數(shù)據(jù)吞吐量和處理速度。
文檔編號(hào)G06F15/167GK101105786SQ20061010323
公開日2008年1月16日 申請(qǐng)日期2006年7月14日 優(yōu)先權(quán)日2006年7月14日
發(fā)明者官華伯, 張緒廣, 帷 江 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
民乐县| 康乐县| 桦南县| 自治县| 峨山| 武陟县| 东方市| 密山市| 琼海市| 兴隆县| 宁化县| 涪陵区| 兴安县| 南岸区| 山阴县| 玛多县| 三河市| 沙坪坝区| 大名县| 治县。| 花莲县| 平远县| 乳源| 台湾省| 南宫市| 云龙县| 涿州市| 科技| 绵阳市| 濮阳县| 嘉黎县| 鄂托克前旗| 舒城县| 察隅县| 七台河市| 安多县| 天门市| 淮滨县| 钟祥市| 汝阳县| 海阳市|