專利名稱:數(shù)據(jù)通信裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于處理器的軟件模塊(以下簡(jiǎn)稱為“模塊”)間的通信的數(shù)據(jù)通信裝置。
背景技術(shù):
在以往的模塊間數(shù)據(jù)通信中,發(fā)送模塊向與接收模塊之間所規(guī)定的共用存儲(chǔ)器的數(shù)據(jù)區(qū)域?qū)懭霐?shù)據(jù),并向接收模塊發(fā)出中斷,根據(jù)中斷而起動(dòng)的接收模塊根據(jù)中斷請(qǐng)求寄存器的值來(lái)確定發(fā)送模塊,接收模塊從共用存儲(chǔ)器取得了數(shù)據(jù)之后,該接收模塊向與該發(fā)送模塊之間所規(guī)定的共用存儲(chǔ)器的結(jié)束信息存儲(chǔ)區(qū)域?qū)懭敕?wù)結(jié)果的通知(處理完成通知),由此實(shí)現(xiàn)模塊間的數(shù)據(jù)通信(例如,參照日本特開(kāi)平5-216792號(hào)公報(bào))。
發(fā)明內(nèi)容
但是,在上述以往技術(shù)的數(shù)據(jù)通信中,存在這樣的問(wèn)題因?yàn)榘l(fā)送模塊每次向接收模塊發(fā)送數(shù)據(jù),都產(chǎn)生向接收模塊的中斷,所以在想要連續(xù)地發(fā)送數(shù)據(jù)時(shí),由中斷引起的開(kāi)銷(xiāo)(overhead)較大。另外,還存在這樣的問(wèn)題在由接收模塊取得數(shù)據(jù),并將處理完成通知寫(xiě)入到共用存儲(chǔ)器中之前,發(fā)送模塊不能夠發(fā)送下一數(shù)據(jù),在接收模塊的數(shù)據(jù)取得處理較慢時(shí),發(fā)送模塊的處理也將發(fā)生延遲。
本發(fā)明的目的在于,提供一種減少了數(shù)據(jù)收發(fā)時(shí)的中斷的發(fā)生頻率的數(shù)據(jù)通信裝置。
本發(fā)明的另一個(gè)目的在于,提供一種在發(fā)送模塊和接收模塊不同步地進(jìn)行動(dòng)作的情況下,也能實(shí)現(xiàn)不對(duì)該發(fā)送模塊和接收模塊彼此的動(dòng)作產(chǎn)生影響的數(shù)據(jù)通信的數(shù)據(jù)通信裝置。
為了解決上述問(wèn)題,本發(fā)明的第一種數(shù)據(jù)通信裝置采用了具有以下裝置的結(jié)構(gòu),即,包括存儲(chǔ)器,包括數(shù)據(jù)存儲(chǔ)區(qū)域和處理請(qǐng)求區(qū)域,該數(shù)據(jù)存儲(chǔ)區(qū)域具有表示第1狀態(tài)或第2狀態(tài)的標(biāo)識(shí)符,該處理請(qǐng)求區(qū)域表示是否有發(fā)送數(shù)據(jù)的處理請(qǐng)求;數(shù)據(jù)發(fā)送部,從至少一個(gè)發(fā)送模塊接收發(fā)送數(shù)據(jù)的請(qǐng)求,向上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第2狀態(tài)的區(qū)域內(nèi)存儲(chǔ)了數(shù)據(jù)之后,將上述標(biāo)識(shí)符變更為上述第1狀態(tài),并且僅在上述處理請(qǐng)求區(qū)域內(nèi)還未被寫(xiě)入處理請(qǐng)求時(shí),將處理請(qǐng)求寫(xiě)入到上述處理請(qǐng)求區(qū)域,產(chǎn)生通知信號(hào);處理請(qǐng)求接受部,接收上述通知信號(hào),在確認(rèn)了上述處理請(qǐng)求區(qū)域內(nèi)被寫(xiě)入了處理請(qǐng)求后,清除該處理請(qǐng)求,將向上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ)通知給接收模塊;以及數(shù)據(jù)取得部,接收來(lái)自上述接收模塊的接收數(shù)據(jù)的請(qǐng)求,從上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第1狀態(tài)的區(qū)域取得了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第2狀態(tài)。由此,發(fā)送模塊不受接收模塊的數(shù)據(jù)取得處理的定時(shí)的影響,可連續(xù)地發(fā)送數(shù)據(jù),在處理請(qǐng)求區(qū)域中有處理請(qǐng)求時(shí)不重復(fù)產(chǎn)生通知信號(hào),因此,能夠減少接收模塊的處理因通信處理請(qǐng)求的中斷處理而被中斷的次數(shù)。
在上述第1數(shù)據(jù)通信裝置中,使用上述標(biāo)識(shí)符來(lái)表示允許讀出數(shù)據(jù)或不允許讀出數(shù)據(jù)。發(fā)送模塊向上述標(biāo)識(shí)符表示不允許讀出數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)域存儲(chǔ)數(shù)據(jù),接收模塊從上述標(biāo)識(shí)符表示允許讀出數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)域取得數(shù)據(jù)。由此,例如可以不進(jìn)行處理器總線的特別的排他控制(exclusion control)地對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域進(jìn)行排他訪問(wèn)。
進(jìn)而,如果使上述第1數(shù)據(jù)通信裝置的上述處理請(qǐng)求接受部具有如下結(jié)構(gòu),則能夠以一定間隔來(lái)取得數(shù)據(jù)。所述結(jié)構(gòu)包括計(jì)時(shí)器,從上述接收模塊接收數(shù)據(jù)取得間隔的登錄請(qǐng)求,將上述數(shù)據(jù)取得間隔登錄為向上述接收模塊的數(shù)據(jù)存儲(chǔ)通知的間隔,并按照上述數(shù)據(jù)存儲(chǔ)通知的間隔,向上述接收模塊通知對(duì)上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ);處理請(qǐng)求判斷部,接收上述通知信號(hào),在確認(rèn)了上述處理請(qǐng)求區(qū)域內(nèi)被寫(xiě)入了處理請(qǐng)求后,清除該處理請(qǐng)求,指示上述計(jì)時(shí)器開(kāi)始動(dòng)作;以及計(jì)時(shí)器控制部,從上述接收模塊接收數(shù)據(jù)存儲(chǔ)通知的停止請(qǐng)求,指示上述計(jì)時(shí)器停止動(dòng)作。
另外,上述第1數(shù)據(jù)通信裝置的上述處理請(qǐng)求接受部,在上述處理請(qǐng)求區(qū)域內(nèi)寫(xiě)入有從多個(gè)發(fā)送模塊向同一接收模塊的處理請(qǐng)求的情況下,將該多個(gè)處理請(qǐng)求全部清除,只與發(fā)送模塊信息一并地向上述接收模塊通知一次向上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ)。由此,能夠減少向接收模塊通知數(shù)據(jù)存儲(chǔ)的次數(shù),能夠進(jìn)一步減少接收模塊因通信處理請(qǐng)求的中斷處理而被中斷的次數(shù)。
本發(fā)明的第2種數(shù)據(jù)通信裝置,采用了具有以下裝置的結(jié)構(gòu),即,包括存儲(chǔ)器,包括具有表示第1狀態(tài)或第2狀態(tài)的標(biāo)識(shí)符的數(shù)據(jù)存儲(chǔ)區(qū)域、表示是否有發(fā)送數(shù)據(jù)的處理請(qǐng)求的處理請(qǐng)求區(qū)域、以及登錄通知數(shù)據(jù)量的資源信息區(qū)域;數(shù)據(jù)發(fā)送部,從至少一個(gè)發(fā)送模塊接收發(fā)送數(shù)據(jù)的請(qǐng)求,在向上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第2狀態(tài)的區(qū)域內(nèi)存儲(chǔ)了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第1狀態(tài),并且僅在上述數(shù)據(jù)存儲(chǔ)區(qū)域的存儲(chǔ)數(shù)據(jù)量大于或等于登錄在上述資源信息區(qū)域中的通知數(shù)據(jù)量時(shí),將處理請(qǐng)求寫(xiě)入到上述處理請(qǐng)求區(qū)域中,產(chǎn)生通知信號(hào);處理請(qǐng)求接受部,接收上述通知信號(hào),在確認(rèn)了上述處理請(qǐng)求區(qū)域內(nèi)被寫(xiě)入了處理請(qǐng)求之后,清除該處理請(qǐng)求,將向上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ)通知給接收模塊;以及數(shù)據(jù)取得部,接收來(lái)自上述接收模塊的接收數(shù)據(jù)的請(qǐng)求,在從上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第1狀態(tài)的區(qū)域取得了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第2狀態(tài)。由此,能夠減少接收模塊的處理因通信處理請(qǐng)求的中斷處理而被中斷的次數(shù)。
另外,在上述第2數(shù)據(jù)通信裝置中,也可以是,上述資源信息區(qū)域還包括表示已向上述數(shù)據(jù)存儲(chǔ)區(qū)域存儲(chǔ)的數(shù)據(jù)的總量的信息;上述數(shù)據(jù)發(fā)送部,從至少一個(gè)發(fā)送模塊接收發(fā)送數(shù)據(jù)的請(qǐng)求,向上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第2狀態(tài)的區(qū)域存儲(chǔ)了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第1狀態(tài),并且僅在已向上述數(shù)據(jù)存儲(chǔ)區(qū)域存儲(chǔ)的數(shù)據(jù)的總量大于或等于登錄在上述資源信息區(qū)域中的通知數(shù)據(jù)量時(shí),將上述表示已存儲(chǔ)的數(shù)據(jù)的總量的信息初始化,然后將處理請(qǐng)求寫(xiě)入到上述處理請(qǐng)求區(qū)域中,產(chǎn)生通知信號(hào)。
本發(fā)明的第1效果在于,減少數(shù)據(jù)發(fā)送時(shí)的從發(fā)送模塊向接收模塊的通知次數(shù)。由此,通過(guò)通信處理請(qǐng)求的中斷處理,能夠減少接收模塊及其他模塊的處理被中斷的次數(shù)。
本發(fā)明的第2效果在于,在發(fā)送模塊和接收模塊不同步地動(dòng)作的情況下,不對(duì)相互的模塊的動(dòng)作產(chǎn)生影響。數(shù)據(jù)存儲(chǔ)區(qū)域包括發(fā)送數(shù)據(jù)和表示允許讀出數(shù)據(jù)或不允許讀出數(shù)據(jù)的標(biāo)識(shí)符,發(fā)送模塊可將多個(gè)數(shù)據(jù)以任意的定時(shí)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)區(qū)域中,接收模塊可在收到接收數(shù)據(jù)的請(qǐng)求后,以任意的定時(shí)取得添加了表示允許讀出數(shù)據(jù)的標(biāo)識(shí)符的數(shù)據(jù),因此,即使在發(fā)送模塊和接收模塊的動(dòng)作定時(shí)不同的情況、或接收模塊的中斷響應(yīng)性較低的情況下,也不必使任一個(gè)模塊等待。
圖1是表示本發(fā)明的數(shù)據(jù)通信系統(tǒng)的結(jié)構(gòu)例子的框圖。
圖2是表示圖1的系統(tǒng)中的軟件模塊之間的數(shù)據(jù)通信裝置的第1
圖3是表示圖2的數(shù)據(jù)通信裝置的動(dòng)作的時(shí)序圖。
圖4是表示圖2中的數(shù)據(jù)存儲(chǔ)區(qū)域的構(gòu)成例子的概念圖。
圖5是表示采用了圖4的數(shù)據(jù)存儲(chǔ)區(qū)域時(shí)的數(shù)據(jù)存儲(chǔ)步驟的流程圖。
圖6A~圖6C是用于說(shuō)明圖5的數(shù)據(jù)存儲(chǔ)步驟的概念圖。
圖7是表示采用了圖4的數(shù)據(jù)存儲(chǔ)區(qū)域時(shí)的數(shù)據(jù)取得步驟的流程圖。
圖8A~圖8C是用于說(shuō)明圖7的數(shù)據(jù)取得步驟的概念圖。
圖9是表示圖2中的數(shù)據(jù)存儲(chǔ)區(qū)域的其他結(jié)構(gòu)例子的概念圖。
圖10是表示采用了圖9的數(shù)據(jù)存儲(chǔ)區(qū)域時(shí)的數(shù)據(jù)存儲(chǔ)步驟的流程圖。
圖11A~圖11C是用于說(shuō)明圖10的數(shù)據(jù)存儲(chǔ)步驟的概念圖。
圖12是表示采用了圖9的數(shù)據(jù)存儲(chǔ)區(qū)域時(shí)的數(shù)據(jù)取得步驟的流程圖。
圖13A~圖13C是用于說(shuō)明圖12的數(shù)據(jù)取得步驟的概念圖。
圖14是表示圖1的系統(tǒng)中的軟件模塊之間的數(shù)據(jù)通信裝置的第2
圖15是表示圖14中的處理請(qǐng)求接受部的詳細(xì)結(jié)構(gòu)例子的框圖。
圖16是表示圖1的系統(tǒng)中的軟件模塊之間的數(shù)據(jù)通信裝置的第3
圖17是表示圖1的系統(tǒng)中的軟件模塊之間的數(shù)據(jù)通信裝置的第4
圖18是表示圖1的系統(tǒng)中的軟件模塊之間的數(shù)據(jù)通信裝置的第5
具體實(shí)施例方式
圖1表示了本發(fā)明的數(shù)據(jù)通信系統(tǒng)的結(jié)構(gòu)例子。圖1的系統(tǒng)中,為了能夠在兩個(gè)處理器10、20的軟件模塊間進(jìn)行雙向通信,而使存儲(chǔ)器30介于兩個(gè)處理器10、20之間。處理器(處理器A)10具有處理器核心(core)11、發(fā)送接口(發(fā)送IF)12、以及接收接口(接收IF)13。另一處理器(處理器B)20也具有處理器核心21、接收IF22、以及發(fā)送IF23。通過(guò)該系統(tǒng),能夠?qū)崿F(xiàn)處理器10所執(zhí)行的多個(gè)模塊與另一個(gè)處理器20所執(zhí)行的多個(gè)模塊之間的雙向通信。另外,也可以經(jīng)由存儲(chǔ)器30來(lái)連接大于或等于3個(gè)的處理器。
以下,針對(duì)圖1的系統(tǒng)中的軟件模塊之間的數(shù)據(jù)通信裝置,說(shuō)明5個(gè)實(shí)施方式。
圖2表示了本發(fā)明的數(shù)據(jù)通信裝置的第1實(shí)施方式。在此,假設(shè)從圖1中的一個(gè)處理器核心11所執(zhí)行的發(fā)送模塊(模塊1)101,向另一個(gè)處理器核心21所執(zhí)行的接收模塊(模塊2)102發(fā)送數(shù)據(jù)。這里,發(fā)送模塊101和接收模塊102各自含有多個(gè)模塊。發(fā)送IF12具有數(shù)據(jù)發(fā)送部300,接收IF22具有處理請(qǐng)求接受部400和數(shù)據(jù)取得部500。在存儲(chǔ)器30中,具有用于存儲(chǔ)模塊之間所收發(fā)的數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)域210和用于通知數(shù)據(jù)已被存儲(chǔ)的處理請(qǐng)求區(qū)域220。
數(shù)據(jù)發(fā)送部300向數(shù)據(jù)存儲(chǔ)區(qū)域210存儲(chǔ)數(shù)據(jù),并發(fā)出數(shù)據(jù)通信處理請(qǐng)求。處理請(qǐng)求接受部400接受來(lái)自數(shù)據(jù)發(fā)送部300的數(shù)據(jù)通信處理請(qǐng)求,將對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域210的數(shù)據(jù)存儲(chǔ)通知給接收模塊102。數(shù)據(jù)取得部500從數(shù)據(jù)存儲(chǔ)區(qū)域210取得數(shù)據(jù)并傳送給接收模塊102。
數(shù)據(jù)存儲(chǔ)區(qū)域210按發(fā)送模塊101和接收模塊102各自含有的多個(gè)模塊的每種組合而確保專用的區(qū)域,其構(gòu)造包括寫(xiě)入發(fā)送數(shù)據(jù)的區(qū)域和表示該發(fā)送數(shù)據(jù)的寫(xiě)入?yún)^(qū)域是否為讀出允許狀態(tài)的標(biāo)識(shí)符。在圖2所示的數(shù)據(jù)通信裝置中,確保有用于從發(fā)送模塊101向接收模塊102發(fā)送數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)域211。
處理請(qǐng)求區(qū)域220表示關(guān)于數(shù)據(jù)存儲(chǔ)區(qū)域210的按照發(fā)送模塊101和接收模塊102的每種組合的專用數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)通信處理請(qǐng)求(REQ)。例如,該處理請(qǐng)求區(qū)域220可以是一個(gè)用于存儲(chǔ)有數(shù)據(jù)接收請(qǐng)求的數(shù)據(jù)存儲(chǔ)區(qū)域210的指針的隊(duì)列,該數(shù)據(jù)接收請(qǐng)求是按照請(qǐng)求產(chǎn)生時(shí)序的。
在圖2中箭頭表示控制的流向。模塊101在發(fā)送數(shù)據(jù)的情況下,向數(shù)據(jù)發(fā)送部300發(fā)出含有發(fā)送目標(biāo)模塊信息和發(fā)送數(shù)據(jù)的發(fā)送請(qǐng)求(S1)。數(shù)據(jù)發(fā)送部300從模塊101收到發(fā)送數(shù)據(jù)和對(duì)模塊102的數(shù)據(jù)發(fā)送請(qǐng)求后(S1),向數(shù)據(jù)存儲(chǔ)區(qū)域211存儲(chǔ)發(fā)送數(shù)據(jù)(S2),查詢處理請(qǐng)求區(qū)域220(S3),在沒(méi)有與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221的情況下,向處理請(qǐng)求區(qū)域220寫(xiě)入與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221(S4),向處理請(qǐng)求接受部400發(fā)出中斷(S5)。但是,在已經(jīng)有與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221的情況下,數(shù)據(jù)發(fā)送部300不向處理請(qǐng)求區(qū)域220寫(xiě)入處理請(qǐng)求221。
處理請(qǐng)求接受部400接受來(lái)自數(shù)據(jù)發(fā)送部300的中斷(S5),判斷處理請(qǐng)求區(qū)域220的處理請(qǐng)求(S6),在有處理請(qǐng)求221的情況下,清除處理請(qǐng)求221(S7),向模塊102通知接收來(lái)自模塊101的數(shù)據(jù)(S8)。接收模塊102在收到接收來(lái)自模塊101的數(shù)據(jù)的通知的情況下(S8),向數(shù)據(jù)取得部500發(fā)出接收從模塊101向模塊102發(fā)送的數(shù)據(jù)的接收請(qǐng)求,并反復(fù)進(jìn)行取得數(shù)據(jù)的處理(S9),如果從數(shù)據(jù)取得部500收到?jīng)]有數(shù)據(jù)存儲(chǔ)區(qū)域211的讀出允許數(shù)據(jù),則結(jié)束處理。數(shù)據(jù)取得部500從模塊102收到接收來(lái)自模塊101的發(fā)送數(shù)據(jù)的接收請(qǐng)求后(S9),從數(shù)據(jù)存儲(chǔ)區(qū)域211取得數(shù)據(jù)(S10),并將所取得的數(shù)據(jù)傳送給模塊102(S11)。但是,在數(shù)據(jù)存儲(chǔ)區(qū)域211中沒(méi)有允許讀出的數(shù)據(jù)時(shí),向模塊102通知沒(méi)有讀出允許數(shù)據(jù)(S11)。
圖3表示圖2的數(shù)據(jù)通信裝置的動(dòng)作。在使用了圖2的數(shù)據(jù)通信裝置的數(shù)據(jù)通信中,在處理請(qǐng)求區(qū)域220中有處理請(qǐng)求221的情況下,數(shù)據(jù)發(fā)送部300并不重復(fù)地向處理請(qǐng)求接受部400發(fā)出通信處理請(qǐng)求(S32),所以模塊2的處理因通信處理請(qǐng)求的中斷處理而被中斷的次數(shù)減少,連續(xù)地發(fā)生數(shù)據(jù)通信時(shí)的處理性能變高。進(jìn)而,在利用本發(fā)明的數(shù)據(jù)通信裝置的數(shù)據(jù)通信的情況下,模塊1可以不等待模塊2取得數(shù)據(jù)就發(fā)送下一數(shù)據(jù)(S31),模塊1的處理并不受模塊2的數(shù)據(jù)取得處理的定時(shí)的影響(S33)。
圖4表示圖2中的數(shù)據(jù)存儲(chǔ)區(qū)域210的結(jié)構(gòu)例子。數(shù)據(jù)存儲(chǔ)區(qū)域210如圖4所示,包括以下結(jié)構(gòu),即數(shù)據(jù)緩沖器列,該數(shù)據(jù)緩沖器列含有數(shù)據(jù)緩沖器4231~423n,所述數(shù)據(jù)緩沖器4231~423n包括用于存儲(chǔ)發(fā)送數(shù)據(jù)的數(shù)據(jù)區(qū)域和表示能否對(duì)該數(shù)據(jù)區(qū)域進(jìn)行讀出的標(biāo)識(shí)符,并通過(guò)設(shè)定在標(biāo)識(shí)符中的表示允許讀出的指向下一數(shù)據(jù)緩沖器的指針而連接,末尾的數(shù)據(jù)緩沖器423n的標(biāo)識(shí)符424n設(shè)定為表示不允許讀出的特定的值(例如為0);指針4210(以下稱為T(mén)OP),指向n個(gè)數(shù)據(jù)緩沖器4231~423n中最前面的數(shù)據(jù)緩沖器4231;以及指針4220(以下稱為BOTTOM),指向末尾的數(shù)據(jù)緩沖器423n。
圖5表示采用了圖4的數(shù)據(jù)存儲(chǔ)區(qū)域210時(shí)的數(shù)據(jù)存儲(chǔ)步驟。根據(jù)圖5,確保未存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)緩沖器A(步驟5001),將標(biāo)識(shí)符設(shè)為0(步驟5002),將BOTTOM的值保存到暫時(shí)保存區(qū)域中(步驟5003),將BOTTOM變更為指向數(shù)據(jù)緩沖器A的指針(步驟5004),將數(shù)據(jù)存儲(chǔ)到暫時(shí)保存區(qū)域所指向的數(shù)據(jù)緩沖器B的數(shù)據(jù)區(qū)域中(步驟5005),最后將指向數(shù)據(jù)緩沖器A的指針設(shè)定在數(shù)據(jù)緩沖器B的標(biāo)識(shí)符中,從而使數(shù)據(jù)緩沖器B的數(shù)據(jù)區(qū)域成為允許讀出(步驟5006)。另外,步驟5003只要在步驟5004之前,在任一時(shí)刻進(jìn)行都可以,也可以在步驟5005之后進(jìn)行步驟5004。
圖6A表示步驟5001和步驟5002結(jié)束的時(shí)刻的數(shù)據(jù)存儲(chǔ)區(qū)域210的狀態(tài)。圖6B表示步驟5003~步驟5005結(jié)束的時(shí)刻的數(shù)據(jù)存儲(chǔ)區(qū)域210的狀態(tài)。圖6C表示數(shù)據(jù)存儲(chǔ)的結(jié)束時(shí)刻的數(shù)據(jù)存儲(chǔ)區(qū)域210的狀態(tài)。
圖7表示采用了圖4的數(shù)據(jù)存儲(chǔ)區(qū)域210時(shí)的數(shù)據(jù)取得步驟。根據(jù)圖7,判斷TOP所指向的數(shù)據(jù)緩沖器T的標(biāo)識(shí)符(步驟7001),在標(biāo)識(shí)符表示允許讀出的情況下,從TOP所指向的數(shù)據(jù)緩沖器T的數(shù)據(jù)區(qū)域取得數(shù)據(jù)(步驟7002),將TOP變更為數(shù)據(jù)緩沖器T的標(biāo)識(shí)符的值之后,釋放數(shù)據(jù)緩沖器T(步驟7004)。
圖8A表示在數(shù)據(jù)存儲(chǔ)區(qū)域210中存儲(chǔ)有2個(gè)數(shù)據(jù)的狀態(tài)下,執(zhí)行步驟7001之前的數(shù)據(jù)存儲(chǔ)區(qū)域210的狀態(tài),圖8B表示步驟7001~7003結(jié)束的時(shí)刻的數(shù)據(jù)存儲(chǔ)區(qū)域210的狀態(tài),圖8C表示步驟7004的結(jié)束時(shí)刻的數(shù)據(jù)存儲(chǔ)區(qū)域210的狀態(tài)。
數(shù)據(jù)緩沖器也可以取代數(shù)據(jù)區(qū)域而具有用于寫(xiě)入發(fā)送數(shù)據(jù)的開(kāi)頭指針和發(fā)送數(shù)據(jù)的大小的區(qū)域。
另外,標(biāo)識(shí)符也可以是表示允許讀出或不允許讀出的標(biāo)志(flag),數(shù)據(jù)緩沖器也可以是分別具有存儲(chǔ)指向下一數(shù)據(jù)緩沖器的指針的區(qū)域和標(biāo)識(shí)符的結(jié)構(gòu)。
圖9表示圖2中的數(shù)據(jù)存儲(chǔ)區(qū)域210的其他結(jié)構(gòu)例子。數(shù)據(jù)存儲(chǔ)區(qū)域210具有如圖9所示那樣連續(xù)的數(shù)據(jù)區(qū)域9051~905n;指向上述數(shù)據(jù)區(qū)域的開(kāi)頭9051的數(shù)據(jù)區(qū)域指針(P)9010;保存數(shù)據(jù)區(qū)域9051~905n的整體大小S的數(shù)據(jù)區(qū)域尺寸(S)9020;讀出位置指示符(R)9030;以及寫(xiě)入位置指示符(W)9040。將從讀出位置指示符(R)到寫(xiě)入位置指示符(W)的區(qū)域作為讀出允許區(qū)域,將讀出允許區(qū)域以外的區(qū)域作為寫(xiě)入允許區(qū)域,在存儲(chǔ)數(shù)據(jù)時(shí),從寫(xiě)入位置指示符(W)所指示的位置開(kāi)始寫(xiě)入數(shù)據(jù),在數(shù)據(jù)寫(xiě)入結(jié)束后,將寫(xiě)入位置指示符(W)移動(dòng)至數(shù)據(jù)的末尾,在取得數(shù)據(jù)時(shí),從讀出位置指示符(R)所指示的位置開(kāi)始讀出數(shù)據(jù),在讀出數(shù)據(jù)到數(shù)據(jù)寫(xiě)入指示符(W)之前的任意位置后,更新讀出位置指示符(R),使其指向未取得數(shù)據(jù)區(qū)域的起始。
數(shù)據(jù)的寫(xiě)入和讀出沿同一方向進(jìn)行,例如在設(shè)定為從9051向905n進(jìn)行的情況下,在到達(dá)數(shù)據(jù)區(qū)域905n后,從數(shù)據(jù)區(qū)域9051再次開(kāi)始進(jìn)行寫(xiě)入和讀出。為了在讀出位置指示符(R)和寫(xiě)入位置指示符(W)指示相同位置的情況下判斷數(shù)據(jù)區(qū)域中是否有數(shù)據(jù),使讀出位置指示符(R)和寫(xiě)入位置指示符(W)指示相同位置的狀態(tài)為,在數(shù)據(jù)區(qū)域中沒(méi)有讀出允許數(shù)據(jù),且數(shù)據(jù)寫(xiě)入比讀出位置指示符(R)靠前1個(gè)數(shù)據(jù)單位。
圖10表示采用了圖9的數(shù)據(jù)存儲(chǔ)區(qū)域210時(shí)的數(shù)據(jù)存儲(chǔ)步驟。根據(jù)圖10,首先,確認(rèn)寫(xiě)入位置指示符(W)和讀出位置指示符(R)(步驟10001),在判斷為允許向數(shù)據(jù)區(qū)域?qū)懭霑r(shí),就從寫(xiě)入位置指示符(W)指示的位置開(kāi)始存儲(chǔ)數(shù)據(jù)(步驟10002),并將寫(xiě)入位置指示符(W)更新為已存儲(chǔ)的數(shù)據(jù)的末尾、即下一個(gè)可存儲(chǔ)數(shù)據(jù)的位置(步驟10003)。
圖11A表示數(shù)據(jù)區(qū)域9052~9055中存儲(chǔ)有數(shù)據(jù)的狀態(tài)的數(shù)據(jù)存儲(chǔ)區(qū)域210。讀出位置指示符(R)指示位置9052,寫(xiě)入位置指示符(W)指示位置9055。圖11B表示圖10中的步驟10001~10002結(jié)束的時(shí)刻的數(shù)據(jù)存儲(chǔ)區(qū)域210的狀態(tài)。數(shù)據(jù)存儲(chǔ)區(qū)域9055~9057的數(shù)據(jù)是新存儲(chǔ)的數(shù)據(jù)。圖11C表示步驟10003的結(jié)束時(shí)刻的數(shù)據(jù)存儲(chǔ)區(qū)域210的狀態(tài)。
圖12表示采用了圖9的數(shù)據(jù)存儲(chǔ)區(qū)域210時(shí)的數(shù)據(jù)取得步驟。根據(jù)圖12,首先,確認(rèn)寫(xiě)入位置指示符(W)和讀出位置指示符(R)(步驟12001),在判斷為允許從數(shù)據(jù)區(qū)域讀出時(shí),從讀出位置指示符(R)所指示的位置開(kāi)始取得數(shù)據(jù),直到寫(xiě)入位置指示符(W)所指示的位置之前的任意位置為止(步驟12002),將讀出位置指示符(R)更新為未讀出的數(shù)據(jù)的起始指針(步驟12003)。
圖13A表示數(shù)據(jù)區(qū)域9052~9057中存儲(chǔ)有數(shù)據(jù)的狀態(tài)的數(shù)據(jù)存儲(chǔ)區(qū)域210。讀出位置指示符(R)指示位置9052,寫(xiě)入位置指示符(W)指示位置9057。圖13B表示圖12中的步驟12001~12002結(jié)束的時(shí)刻的數(shù)據(jù)存儲(chǔ)區(qū)域210的狀態(tài)。數(shù)據(jù)存儲(chǔ)區(qū)域9052~9054的數(shù)據(jù)是已被讀出的數(shù)據(jù)。圖13C表示步驟12003的結(jié)束時(shí)刻的數(shù)據(jù)存儲(chǔ)區(qū)域210的狀態(tài)。
圖14表示了本發(fā)明的數(shù)據(jù)通信裝置的第2實(shí)施方式。圖14的數(shù)據(jù)通信裝置具有處理請(qǐng)求接受部400a,該處理請(qǐng)求接受部400a接收來(lái)自數(shù)據(jù)發(fā)送部300的數(shù)據(jù)通信處理請(qǐng)求,按預(yù)先所登錄的數(shù)據(jù)取得間隔,反復(fù)向接收模塊102通知對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域210的數(shù)據(jù)存儲(chǔ),直到從接收模塊102接收到數(shù)據(jù)存儲(chǔ)通知的停止請(qǐng)求(S12)為止。
圖15表示了圖14中的處理請(qǐng)求接受部400a的詳細(xì)結(jié)構(gòu)例子。處理請(qǐng)求接受部400a如圖15所示,具有計(jì)時(shí)器(timer)403,從接收模塊102接收數(shù)據(jù)取得間隔的登錄請(qǐng)求,將該數(shù)據(jù)取得間隔登錄為向接收模塊102的數(shù)據(jù)存儲(chǔ)通知的間隔,并按照該數(shù)據(jù)存儲(chǔ)通知的間隔,向接收模塊102通知對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域211的數(shù)據(jù)存儲(chǔ);處理請(qǐng)求判斷部401,接收來(lái)自數(shù)據(jù)發(fā)送部300的數(shù)據(jù)通信處理請(qǐng)求,向計(jì)時(shí)器403指示動(dòng)作開(kāi)始;以及計(jì)時(shí)器控制部402,從接收模塊102接收數(shù)據(jù)存儲(chǔ)通知的停止請(qǐng)求,向計(jì)時(shí)器403指示動(dòng)作停止。
計(jì)時(shí)器403從接收模塊102收到數(shù)據(jù)取得間隔的登錄請(qǐng)求后(S0),將該數(shù)據(jù)取得間隔保存為向接收模塊102的數(shù)據(jù)存儲(chǔ)通知的間隔。數(shù)據(jù)發(fā)送部300從模塊101收到發(fā)送數(shù)據(jù)和向模塊102的數(shù)據(jù)發(fā)送請(qǐng)求后(S1),向數(shù)據(jù)存儲(chǔ)區(qū)域211存儲(chǔ)發(fā)送數(shù)據(jù)(S2),查詢處理請(qǐng)求區(qū)域220(S3),在沒(méi)有與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221的情況下,向處理請(qǐng)求區(qū)域220寫(xiě)入與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221(S4),并向處理請(qǐng)求接受部400a發(fā)出中斷(S5)。但是,在已經(jīng)有與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221的情況下,數(shù)據(jù)發(fā)送部300不向處理請(qǐng)求區(qū)域220寫(xiě)入處理請(qǐng)求221。
處理請(qǐng)求判斷部401接收來(lái)自數(shù)據(jù)發(fā)送部300的中斷(S5),判斷處理請(qǐng)求區(qū)域220的處理請(qǐng)求(S6),在有處理請(qǐng)求221的情況下,清除處理請(qǐng)求221(S7),向計(jì)時(shí)器403指示用于數(shù)據(jù)存儲(chǔ)區(qū)域211的動(dòng)作開(kāi)始(S8a),計(jì)時(shí)器403從處理請(qǐng)求判斷部401收到用于數(shù)據(jù)存儲(chǔ)區(qū)域211的動(dòng)作開(kāi)始的指示后,(S8a),開(kāi)始計(jì)時(shí),按照向模塊102的數(shù)據(jù)存儲(chǔ)通知間隔,向模塊102發(fā)出數(shù)據(jù)存儲(chǔ)通知(S8)。模塊102從計(jì)時(shí)器403收到數(shù)據(jù)存儲(chǔ)通知后(S8),向數(shù)據(jù)取得部500發(fā)出數(shù)據(jù)的接收請(qǐng)求(S9a)。在模塊102接收到來(lái)自模塊101的數(shù)據(jù)存儲(chǔ)通知的情況下(S8),向數(shù)據(jù)取得部500發(fā)出接收從模塊101向模塊102發(fā)送的數(shù)據(jù)的接收請(qǐng)求,取得數(shù)據(jù)(S10,S11)。從數(shù)據(jù)取得部500收到?jīng)]有數(shù)據(jù)存儲(chǔ)區(qū)域211的讀出允許數(shù)據(jù)的情況下,模塊102向計(jì)時(shí)器控制部402請(qǐng)求停止數(shù)據(jù)存儲(chǔ)通知(S12)。另一方面,數(shù)據(jù)取得部500從模塊102收到接收來(lái)自模塊101的發(fā)送數(shù)據(jù)的接收請(qǐng)求后(S9a),從數(shù)據(jù)存儲(chǔ)區(qū)域211取得數(shù)據(jù)(S10),把取得的數(shù)據(jù)傳送給模塊102(S11)。但是,在數(shù)據(jù)存儲(chǔ)區(qū)域211內(nèi)沒(méi)有允許讀出的數(shù)據(jù)的情況下,向模塊102通知沒(méi)有讀出允許數(shù)據(jù)(S11)。
計(jì)時(shí)器控制部402從模塊102收到數(shù)據(jù)存儲(chǔ)通知停止的請(qǐng)求后(S12),向計(jì)時(shí)器指示停止用于數(shù)據(jù)存儲(chǔ)區(qū)域211的動(dòng)作(S12a)。計(jì)時(shí)器403從計(jì)時(shí)器控制部402收到停止用于數(shù)據(jù)存儲(chǔ)區(qū)域211的動(dòng)作的指示后(S12a),結(jié)束向模塊102的數(shù)據(jù)存儲(chǔ)通知間隔的計(jì)時(shí),結(jié)束向模塊102的數(shù)據(jù)存儲(chǔ)通知。
根據(jù)圖14的數(shù)據(jù)通信裝置,因?yàn)榕c模塊101的數(shù)據(jù)發(fā)送定時(shí)無(wú)關(guān)地以一定間隔向模塊102發(fā)出數(shù)據(jù)存儲(chǔ)通知,因此,對(duì)于與周期性地開(kāi)始動(dòng)作并進(jìn)行數(shù)據(jù)的處理的模塊102之間的通信是特別有效的。
圖16表示本發(fā)明的數(shù)據(jù)通信裝置的第3實(shí)施方式。圖16的數(shù)據(jù)通信裝置具有處理請(qǐng)求接受部400b,該處理請(qǐng)求接受部400b接收來(lái)自數(shù)據(jù)發(fā)送部300的數(shù)據(jù)通信處理請(qǐng)求,在有從多個(gè)模塊101、103向同一模塊102的處理請(qǐng)求的情況下,將向接收模塊102的數(shù)據(jù)存儲(chǔ)的通知,與發(fā)送源模塊信息一并發(fā)出一次。
數(shù)據(jù)存儲(chǔ)區(qū)域210按發(fā)送模塊101、103與接收模塊102的每種組合而確保專用的區(qū)域,其結(jié)構(gòu)中包括寫(xiě)入發(fā)送數(shù)據(jù)的區(qū)域和表示該發(fā)送數(shù)據(jù)的寫(xiě)入?yún)^(qū)域是否為讀出允許狀態(tài)的標(biāo)識(shí)符。
處理請(qǐng)求區(qū)域220表示對(duì)于數(shù)據(jù)存儲(chǔ)區(qū)域210的發(fā)送模塊101、103與接收模塊102的每種組合的專用數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)通信處理請(qǐng)求。例如,可以是按請(qǐng)求產(chǎn)生時(shí)序保持具有數(shù)據(jù)接收請(qǐng)求的數(shù)據(jù)存儲(chǔ)區(qū)域的隊(duì)列。
模塊101、103在發(fā)送數(shù)據(jù)時(shí),向數(shù)據(jù)發(fā)送部300發(fā)出含有發(fā)送目標(biāo)模塊信息和發(fā)送數(shù)據(jù)的發(fā)送請(qǐng)求(S1)。數(shù)據(jù)發(fā)送部300從模塊101收到發(fā)送數(shù)據(jù)和向模塊102的數(shù)據(jù)發(fā)送請(qǐng)求后(S1),向從模塊101到模塊102的用于數(shù)據(jù)發(fā)送的數(shù)據(jù)存儲(chǔ)區(qū)域211存儲(chǔ)發(fā)送數(shù)據(jù)(S2),查詢處理請(qǐng)求區(qū)域220(S3),在沒(méi)有與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221的情況下,向處理請(qǐng)求區(qū)域220寫(xiě)入與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221(S4),并對(duì)處理請(qǐng)求接受部400b產(chǎn)生中斷(S5)。但是,在已經(jīng)存在與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221的情況下,數(shù)據(jù)發(fā)送部300不向處理請(qǐng)求區(qū)域220寫(xiě)入處理請(qǐng)求221。
數(shù)據(jù)發(fā)送部300從模塊103收到發(fā)送數(shù)據(jù)和對(duì)模塊102的數(shù)據(jù)發(fā)送請(qǐng)求后(S1),向從模塊103到模塊102的用于數(shù)據(jù)發(fā)送的數(shù)據(jù)存儲(chǔ)區(qū)域212存儲(chǔ)發(fā)送數(shù)據(jù)(S2),查詢處理請(qǐng)求區(qū)域220(S3),在沒(méi)有與數(shù)據(jù)存儲(chǔ)區(qū)域212對(duì)應(yīng)的處理請(qǐng)求222的情況下,向處理請(qǐng)求區(qū)域220寫(xiě)入與數(shù)據(jù)存儲(chǔ)區(qū)域212對(duì)應(yīng)的處理請(qǐng)求222(S4),并對(duì)處理請(qǐng)求接受部400b產(chǎn)生中斷(S5)。但是,在已經(jīng)存在與數(shù)據(jù)存儲(chǔ)區(qū)域212對(duì)應(yīng)的處理請(qǐng)求222的情況下,數(shù)據(jù)發(fā)送部300不向處理請(qǐng)求區(qū)域220寫(xiě)入處理請(qǐng)求222。
處理請(qǐng)求接受部400b收到來(lái)自數(shù)據(jù)發(fā)送部300的中斷(S5),判斷處理請(qǐng)求區(qū)域220的處理請(qǐng)求(S6),在有多個(gè)對(duì)同一模塊102的處理請(qǐng)求的情況下,例如在有從模塊101向模塊102的處理請(qǐng)求221和從模塊103向模塊102的處理請(qǐng)求222的情況下,清除處理請(qǐng)求221和處理請(qǐng)求222之后(S7),將來(lái)自模塊101和模塊103的數(shù)據(jù)接收的通知向模塊102一并發(fā)出一次(S8a)。
模塊102從處理請(qǐng)求接受部400b收到數(shù)據(jù)接收的通知后(S8a),向數(shù)據(jù)取得部500反復(fù)發(fā)行數(shù)據(jù)的接收請(qǐng)求,直到數(shù)據(jù)取得部500通知沒(méi)有數(shù)據(jù)存儲(chǔ)區(qū)域的讀出允許數(shù)據(jù)為止(S9)。
在模塊102收到了來(lái)自模塊101和模塊103的數(shù)據(jù)接收的通知時(shí)(S8a),向數(shù)據(jù)取得部500發(fā)出接收從模塊101向模塊102發(fā)送的數(shù)據(jù)的請(qǐng)求,并反復(fù)進(jìn)行取得數(shù)據(jù)的處理(S9),在從數(shù)據(jù)取得部500收到了沒(méi)有數(shù)據(jù)存儲(chǔ)區(qū)域211的讀出允許數(shù)據(jù)時(shí),結(jié)束反復(fù)處理(S9)。另外,發(fā)出接收從模塊103向模塊102發(fā)送的數(shù)據(jù)的請(qǐng)求,并反復(fù)進(jìn)行取得數(shù)據(jù)的處理(S9),在從數(shù)據(jù)取得部500收到了沒(méi)有數(shù)據(jù)存儲(chǔ)區(qū)域212的讀出允許數(shù)據(jù)時(shí),結(jié)束處理。
數(shù)據(jù)取得部500從模塊102收到接收來(lái)自模塊101的發(fā)送數(shù)據(jù)的接收請(qǐng)求后(S9),從數(shù)據(jù)存儲(chǔ)區(qū)域211取得數(shù)據(jù)(S10),將取得的數(shù)據(jù)傳送給模塊102(S11)。但是,在數(shù)據(jù)存儲(chǔ)區(qū)域211中沒(méi)有允許讀出的數(shù)據(jù)的情況下,向模塊102通知沒(méi)有讀出允許數(shù)據(jù)(S11)。同樣地,數(shù)據(jù)取得部500從模塊102收到接收來(lái)自模塊103的發(fā)送數(shù)據(jù)的接收請(qǐng)求后(S9),從數(shù)據(jù)存儲(chǔ)區(qū)域212取得數(shù)據(jù)(S10),將取得的數(shù)據(jù)傳送給模塊102(S11)。但是,在數(shù)據(jù)存儲(chǔ)區(qū)域212中沒(méi)有允許讀出的數(shù)據(jù)的情況下,向模塊102通知沒(méi)有讀出允許數(shù)據(jù)(S11)。
根據(jù)圖16的數(shù)據(jù)通信裝置,在多個(gè)模塊101、103向同一模塊102發(fā)送了數(shù)據(jù)的情況下,將數(shù)據(jù)存儲(chǔ)的通知信號(hào)的產(chǎn)生抑制為一次,因此對(duì)于利用中斷的處理的中斷抑制是有效的。
圖17表示本發(fā)明的數(shù)據(jù)通信裝置的第4實(shí)施方式。圖17的數(shù)據(jù)通信裝置中的存儲(chǔ)器,除了用于數(shù)據(jù)存儲(chǔ)區(qū)域210和處理請(qǐng)求區(qū)域220外,還用于保存數(shù)據(jù)量(D)的資源(resource)信息區(qū)域230,所述數(shù)據(jù)量(D)是與向模塊102發(fā)出數(shù)據(jù)存儲(chǔ)通知的定時(shí)相對(duì)應(yīng)的。
數(shù)據(jù)存儲(chǔ)區(qū)域210按發(fā)送模塊101和接收模塊102的組合而確保專用的區(qū)域,其構(gòu)造包括寫(xiě)入發(fā)送數(shù)據(jù)的區(qū)域和表示該發(fā)送數(shù)據(jù)的寫(xiě)入?yún)^(qū)域是否為讀出允許狀態(tài)的標(biāo)識(shí)符,例如是如圖9所示那樣的結(jié)構(gòu)。在圖9所示的構(gòu)造的數(shù)據(jù)存儲(chǔ)區(qū)域210中,可以用寫(xiě)入位置指示符(W)與讀出位置指示符(R)的差值來(lái)求出讀出允許數(shù)據(jù)量。
資源信息區(qū)域230含有各模塊的每個(gè)通信路徑的通知數(shù)據(jù)量信息(D),從模塊102收到向資源信息區(qū)域230的數(shù)據(jù)取得間隔登錄請(qǐng)求后(S0a),將該數(shù)據(jù)取得間隔作為向模塊102的數(shù)據(jù)存儲(chǔ)通知間隔來(lái)保存。例如,在從模塊102收到了向資源信息區(qū)域230的數(shù)據(jù)取得間隔登錄請(qǐng)求(S0a)的情況下,將該數(shù)據(jù)取得間隔作為向模塊102的數(shù)據(jù)存儲(chǔ)通知間隔,保存通知數(shù)據(jù)量231。
模塊101在發(fā)送數(shù)據(jù)時(shí),向數(shù)據(jù)發(fā)送部300a發(fā)出含有發(fā)送目標(biāo)模塊信息和發(fā)送數(shù)據(jù)的發(fā)送請(qǐng)求(S1)。數(shù)據(jù)發(fā)送部300a從模塊101收到發(fā)送數(shù)據(jù)和向模塊102的數(shù)據(jù)發(fā)送請(qǐng)求后(S1),向數(shù)據(jù)存儲(chǔ)區(qū)域211存儲(chǔ)發(fā)送數(shù)據(jù)(S2),判斷資源信息區(qū)域230的對(duì)模塊102的通知數(shù)據(jù)量231(S3a),與數(shù)據(jù)存儲(chǔ)區(qū)域211的數(shù)據(jù)量進(jìn)行比較,在數(shù)據(jù)存儲(chǔ)區(qū)域211的數(shù)據(jù)量大于或等于通知數(shù)據(jù)量231的情況下,向處理請(qǐng)求區(qū)域220寫(xiě)入與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221(S4),并向處理請(qǐng)求接受部400發(fā)出中斷(S5)。但是,在數(shù)據(jù)存儲(chǔ)區(qū)域211的數(shù)據(jù)量小于通知數(shù)據(jù)量231的情況下,數(shù)據(jù)發(fā)送部300a不向處理請(qǐng)求區(qū)域220寫(xiě)入處理請(qǐng)求221。
處理請(qǐng)求接受部400接受來(lái)自數(shù)據(jù)發(fā)送部300a的中斷(S5),判斷處理請(qǐng)求區(qū)域220的處理請(qǐng)求(S6),在有處理請(qǐng)求221時(shí),清除處理請(qǐng)求221(S7),向模塊102發(fā)出接收來(lái)自模塊101的數(shù)據(jù)的通知(S8)。模塊102從處理請(qǐng)求接受部400收到接收數(shù)據(jù)的通知后(S8),向數(shù)據(jù)取得部500反復(fù)發(fā)出數(shù)據(jù)的接收請(qǐng)求,直到數(shù)據(jù)取得部500通知沒(méi)有該數(shù)據(jù)存儲(chǔ)區(qū)域的讀出允許數(shù)據(jù)為止(S9)。模塊102收到接收來(lái)自模塊101的數(shù)據(jù)的通知時(shí)(S8),向數(shù)據(jù)取得部500發(fā)出接收從模塊101向模塊102發(fā)送的數(shù)據(jù)的請(qǐng)求,反復(fù)進(jìn)行取得數(shù)據(jù)的處理(S9),在從數(shù)據(jù)取得部500收到?jīng)]有數(shù)據(jù)存儲(chǔ)區(qū)域211的讀出允許數(shù)據(jù)時(shí),結(jié)束處理。數(shù)據(jù)取得部500從模塊102收到接收來(lái)自模塊101的發(fā)送數(shù)據(jù)的接收請(qǐng)求后(S9),從數(shù)據(jù)存儲(chǔ)區(qū)域211取得數(shù)據(jù)(S10),將取得的數(shù)據(jù)傳送給模塊102(S11)。但是,在數(shù)據(jù)存儲(chǔ)區(qū)域211中沒(méi)有被允許讀出的數(shù)據(jù)時(shí),向模塊102通知沒(méi)有讀出允許數(shù)據(jù)(S11)。
根據(jù)圖17的數(shù)據(jù)通信裝置,模塊102能夠進(jìn)行休眠,直到收到接收數(shù)據(jù)的通知,并在收到接收數(shù)據(jù)的通知后一氣取得數(shù)據(jù)進(jìn)行處理,因此,在模塊102相對(duì)于模塊101以充分高的速度進(jìn)行動(dòng)作的情況下,對(duì)于耗電量的抑制是有效的。
圖18表示本發(fā)明的數(shù)據(jù)通信裝置的第5實(shí)施方式。圖18的數(shù)據(jù)通信裝置中的存儲(chǔ)器,除了用于數(shù)據(jù)存儲(chǔ)區(qū)域210和處理請(qǐng)求區(qū)域220外,還用于資源信息區(qū)域230a,該資源信息區(qū)域230a保存與向模塊102發(fā)出數(shù)據(jù)存儲(chǔ)通知的定時(shí)對(duì)應(yīng)的數(shù)據(jù)量(D)和發(fā)送數(shù)據(jù)總量(T)。
數(shù)據(jù)存儲(chǔ)區(qū)域210按發(fā)送模塊101和接收模塊102的每種組合而確保專用的區(qū)域,其構(gòu)造包括寫(xiě)入發(fā)送數(shù)據(jù)的區(qū)域和表示該發(fā)送數(shù)據(jù)的寫(xiě)入?yún)^(qū)域是否為讀出允許狀態(tài)的標(biāo)識(shí)符,例如,是如圖9所示那樣的結(jié)構(gòu)。
資源信息區(qū)域230a從模塊102收到了進(jìn)行數(shù)據(jù)存儲(chǔ)通知的數(shù)據(jù)量的登錄請(qǐng)求的情況下(S0b),將進(jìn)行該數(shù)據(jù)存儲(chǔ)通知的數(shù)據(jù)量作為對(duì)模塊102的數(shù)據(jù)存儲(chǔ)通知數(shù)據(jù)量231a而保存在資源信息區(qū)域230a中。另外,對(duì)于數(shù)據(jù)存儲(chǔ)區(qū)域210中的發(fā)送模塊101和接收模塊102之間的每個(gè)專用的區(qū)域,每進(jìn)行數(shù)據(jù)存儲(chǔ),就將存儲(chǔ)數(shù)據(jù)量加到發(fā)送數(shù)據(jù)總量232中,從數(shù)據(jù)發(fā)送部300b接收清除發(fā)送數(shù)據(jù)總量的請(qǐng)求,對(duì)發(fā)送數(shù)據(jù)總量232進(jìn)行初始化。
模塊101在發(fā)送數(shù)據(jù)時(shí),向數(shù)據(jù)發(fā)送部300b發(fā)出包含發(fā)送目標(biāo)模塊信息和發(fā)送數(shù)據(jù)的發(fā)送請(qǐng)求(S1)。數(shù)據(jù)發(fā)送部300b從模塊101收到發(fā)送數(shù)據(jù)和向模塊102的數(shù)據(jù)發(fā)送請(qǐng)求后(S1),向數(shù)據(jù)存儲(chǔ)區(qū)域211存儲(chǔ)發(fā)送數(shù)據(jù)(S2),將發(fā)送數(shù)據(jù)的大小加在資源信息區(qū)域230a的對(duì)數(shù)據(jù)存儲(chǔ)區(qū)域211的發(fā)送數(shù)據(jù)總量232上(S3b),與保存在資源信息區(qū)域230a中的、向模塊102的通知數(shù)據(jù)量信息231a進(jìn)行比較,在發(fā)送數(shù)據(jù)總量232大于或等于通知數(shù)據(jù)量231a的情況下,對(duì)發(fā)送數(shù)據(jù)總量232進(jìn)行初始化(S3c),向處理請(qǐng)求區(qū)域220寫(xiě)入與數(shù)據(jù)存儲(chǔ)區(qū)域211對(duì)應(yīng)的處理請(qǐng)求221(S4),并向處理請(qǐng)求接受部400發(fā)出中斷(S5)。但是,在發(fā)送數(shù)據(jù)總量232小于通知數(shù)據(jù)量信息231a的情況下,數(shù)據(jù)發(fā)送部300b不向處理請(qǐng)求區(qū)域220寫(xiě)入處理請(qǐng)求221。
處理請(qǐng)求接受部400接受來(lái)自數(shù)據(jù)發(fā)送部300b的中斷(S5),判斷處理請(qǐng)求區(qū)域220的處理請(qǐng)求(S6),在有處理請(qǐng)求221時(shí),清除處理請(qǐng)求221(S7),向模塊102發(fā)出接收來(lái)自模塊101的數(shù)據(jù)的通知(S8)。在模塊102收到了接收來(lái)自模塊101的數(shù)據(jù)的通知的情況下(S8),向數(shù)據(jù)取得部500發(fā)出接收從模塊101向模塊102的發(fā)送數(shù)據(jù)的接收請(qǐng)求,反復(fù)進(jìn)行取得數(shù)據(jù)的處理(S9),在從數(shù)據(jù)取得部500收到了沒(méi)有數(shù)據(jù)存儲(chǔ)區(qū)域211的讀出允許數(shù)據(jù)的情況下,結(jié)束處理。數(shù)據(jù)取得部500從模塊102收到接收來(lái)自模塊101的發(fā)送數(shù)據(jù)的接收請(qǐng)求后(S9),從數(shù)據(jù)存儲(chǔ)區(qū)域211取得數(shù)據(jù)(S10),將取得的數(shù)據(jù)傳送給模塊102(S11)。但是,在數(shù)據(jù)存儲(chǔ)區(qū)域211中沒(méi)有被允許讀出的數(shù)據(jù)的情況下,向模塊102通知沒(méi)有讀出允許數(shù)據(jù)(S11)。
根據(jù)圖18的數(shù)據(jù)通信裝置,模塊102在將作為通知數(shù)據(jù)量231a而設(shè)定的數(shù)據(jù)量存儲(chǔ)到了數(shù)據(jù)存儲(chǔ)區(qū)域211中時(shí),收到數(shù)據(jù)接收通知,因此,對(duì)于需要以圖像幀單位進(jìn)行處理的多媒體流數(shù)據(jù)的通信等,是特別有效的。
如上所述,本發(fā)明的數(shù)據(jù)通信裝置,在互相獨(dú)立地進(jìn)行動(dòng)作的模塊之間連續(xù)地收發(fā)數(shù)據(jù)時(shí),減少中斷的次數(shù)并抑制處理的中斷,因此,對(duì)于模塊之間的多媒體的流數(shù)據(jù)通信是有效的,能夠應(yīng)用于便攜電話、AV設(shè)備等。
權(quán)利要求
1.一種數(shù)據(jù)通信裝置,用于處理器的軟件模塊之間的通信,其特征在于,包括存儲(chǔ)器,包括數(shù)據(jù)存儲(chǔ)區(qū)域和處理請(qǐng)求區(qū)域,該數(shù)據(jù)存儲(chǔ)區(qū)域具有表示第1狀態(tài)或第2狀態(tài)的標(biāo)識(shí)符,該處理請(qǐng)求區(qū)域表示是否有發(fā)送數(shù)據(jù)的處理請(qǐng)求;數(shù)據(jù)發(fā)送部,從至少一個(gè)發(fā)送模塊接收發(fā)送數(shù)據(jù)的請(qǐng)求,向上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第2狀態(tài)的區(qū)域內(nèi)存儲(chǔ)了數(shù)據(jù)之后,將上述標(biāo)識(shí)符變更為上述第1狀態(tài),并且僅在上述處理請(qǐng)求區(qū)域內(nèi)還未被寫(xiě)入處理請(qǐng)求時(shí),將處理請(qǐng)求寫(xiě)入到上述處理請(qǐng)求區(qū)域,產(chǎn)生通知信號(hào);處理請(qǐng)求接受部,接收上述通知信號(hào),在確認(rèn)了上述處理請(qǐng)求區(qū)域內(nèi)被寫(xiě)入了處理請(qǐng)求后,清除該處理請(qǐng)求,將向上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ)通知給接收模塊;以及數(shù)據(jù)取得部,接收來(lái)自上述接收模塊的接收數(shù)據(jù)的請(qǐng)求,從上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第1狀態(tài)的區(qū)域取得了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第2狀態(tài)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)通信裝置,其特征在于上述標(biāo)識(shí)符的上述第1狀態(tài)為允許讀出數(shù)據(jù),上述第2狀態(tài)為不允許讀出數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)通信裝置,其特征在于上述標(biāo)識(shí)符的上述第1狀態(tài)為不允許寫(xiě)入數(shù)據(jù),上述第2狀態(tài)為允許寫(xiě)入數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)通信裝置,其特征在于上述處理請(qǐng)求接受部包括計(jì)時(shí)器,從上述接收模塊接收數(shù)據(jù)取得間隔的登錄請(qǐng)求,將上述數(shù)據(jù)取得間隔登錄為向上述接收模塊的數(shù)據(jù)存儲(chǔ)通知的間隔,并按照上述數(shù)據(jù)存儲(chǔ)通知的間隔,向上述接收模塊通知對(duì)上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ);處理請(qǐng)求判斷部,接收上述通知信號(hào),在確認(rèn)了上述處理請(qǐng)求區(qū)域內(nèi)被寫(xiě)入了處理請(qǐng)求后,清除該處理請(qǐng)求,指示上述計(jì)時(shí)器開(kāi)始動(dòng)作;以及計(jì)時(shí)器控制部,從上述接收模塊接收數(shù)據(jù)存儲(chǔ)通知的停止請(qǐng)求,指示上述計(jì)時(shí)器停止動(dòng)作。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)通信裝置,其特征在于上述處理請(qǐng)求接受部,在上述處理請(qǐng)求區(qū)域內(nèi)寫(xiě)入有從多個(gè)發(fā)送模塊向同一接收模塊的處理請(qǐng)求的情況下,將該多個(gè)處理請(qǐng)求全部清除,只與發(fā)送模塊信息一并地向上述接收模塊通知一次向上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ)。
6.一種數(shù)據(jù)通信裝置,用于處理器的軟件模塊之間的通信,其特征在于,包括存儲(chǔ)器,包括具有表示第1狀態(tài)或第2狀態(tài)的標(biāo)識(shí)符的數(shù)據(jù)存儲(chǔ)區(qū)域、表示是否有發(fā)送數(shù)據(jù)的處理請(qǐng)求的處理請(qǐng)求區(qū)域、以及登錄通知數(shù)據(jù)量的資源信息區(qū)域;數(shù)據(jù)發(fā)送部,從至少一個(gè)發(fā)送模塊接收發(fā)送數(shù)據(jù)的請(qǐng)求,在向上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第2狀態(tài)的區(qū)域內(nèi)存儲(chǔ)了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第1狀態(tài),并且僅在上述數(shù)據(jù)存儲(chǔ)區(qū)域的存儲(chǔ)數(shù)據(jù)量大于或等于登錄在上述資源信息區(qū)域中的通知數(shù)據(jù)量時(shí),將處理請(qǐng)求寫(xiě)入到上述處理請(qǐng)求區(qū)域中,產(chǎn)生通知信號(hào);處理請(qǐng)求接受部,接收上述通知信號(hào),在確認(rèn)了上述處理請(qǐng)求區(qū)域內(nèi)被寫(xiě)入了處理請(qǐng)求之后,清除該處理請(qǐng)求,將向上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ)通知給接收模塊;以及數(shù)據(jù)取得部,接收來(lái)自上述接收模塊的接收數(shù)據(jù)的請(qǐng)求,在從上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第1狀態(tài)的區(qū)域取得了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第2狀態(tài)。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)通信裝置,其特征在于上述資源信息區(qū)域還包括表示已向上述數(shù)據(jù)存儲(chǔ)區(qū)域存儲(chǔ)的數(shù)據(jù)的總量的信息,上述數(shù)據(jù)發(fā)送部,從至少一個(gè)發(fā)送模塊接收發(fā)送數(shù)據(jù)的請(qǐng)求,向上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第2狀態(tài)的區(qū)域存儲(chǔ)了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第1狀態(tài),并且僅在已向上述數(shù)據(jù)存儲(chǔ)區(qū)域存儲(chǔ)的數(shù)據(jù)的總量大于或等于登錄在上述資源信息區(qū)域中的通知數(shù)據(jù)量時(shí),將上述表示已存儲(chǔ)的數(shù)據(jù)的總量的信息初始化,然后將處理請(qǐng)求寫(xiě)入到上述處理請(qǐng)求區(qū)域中,產(chǎn)生通知信號(hào)。
8.一種數(shù)據(jù)通信方法,用于處理器的軟件模塊之間的通信,其特征在于,包括在存儲(chǔ)器上確保具有表示第1狀態(tài)或第2狀態(tài)的標(biāo)識(shí)符的數(shù)據(jù)存儲(chǔ)區(qū)域,和表示是否有發(fā)送數(shù)據(jù)的處理請(qǐng)求的處理請(qǐng)求區(qū)域的步驟;數(shù)據(jù)發(fā)送步驟,從至少一個(gè)發(fā)送模塊接收發(fā)送數(shù)據(jù)的請(qǐng)求,在向上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第2狀態(tài)的區(qū)域內(nèi)存儲(chǔ)了數(shù)據(jù)之后,將上述標(biāo)識(shí)符變更為上述第1狀態(tài),并且僅在述處理請(qǐng)求區(qū)域內(nèi)還未被寫(xiě)入處理請(qǐng)求時(shí),將處理請(qǐng)求寫(xiě)入到上述處理請(qǐng)求區(qū)域,產(chǎn)生通知信號(hào);處理請(qǐng)求接受步驟,接收上述通知信號(hào),在確認(rèn)了上述處理請(qǐng)求區(qū)域內(nèi)被寫(xiě)入了處理請(qǐng)求之后,清除該處理請(qǐng)求,將向上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ)通知給接收模塊;以及數(shù)據(jù)取得步驟,接收來(lái)自上述接收模塊的接收數(shù)據(jù)的請(qǐng)求,在從上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第1狀態(tài)的區(qū)域取得了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第2狀態(tài)。
9.一種數(shù)據(jù)通信裝置,用于處理器的軟件模塊之間的通信,其特征在于,包括處理器裝置,用于執(zhí)行發(fā)送模塊和接收模塊;存儲(chǔ)器,包括數(shù)據(jù)存儲(chǔ)區(qū)域和處理請(qǐng)求區(qū)域,該數(shù)據(jù)存儲(chǔ)區(qū)域具有表示第1狀態(tài)或第2狀態(tài)的標(biāo)識(shí)符,該處理請(qǐng)求區(qū)域表示是否有發(fā)送數(shù)據(jù)的處理請(qǐng)求;數(shù)據(jù)發(fā)送部,從上述發(fā)送模塊接收發(fā)送數(shù)據(jù)的請(qǐng)求,在向上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第2狀態(tài)的區(qū)域內(nèi)存儲(chǔ)了數(shù)據(jù)之后,將上述標(biāo)識(shí)符變更為上述第1狀態(tài),并且僅在上述處理請(qǐng)求區(qū)域內(nèi)還未被寫(xiě)入處理請(qǐng)求時(shí),將處理請(qǐng)求寫(xiě)入到上述處理請(qǐng)求區(qū)域中,產(chǎn)生通知信號(hào);處理請(qǐng)求接受部,接收上述通知信號(hào),在確認(rèn)了上述處理請(qǐng)求區(qū)域內(nèi)被寫(xiě)入了處理請(qǐng)求之后,清除該處理請(qǐng)求,將向上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ)通知給接收模塊;以及數(shù)據(jù)取得部,接收來(lái)自上述接收模塊的接收數(shù)據(jù)的請(qǐng)求,從上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第1狀態(tài)的區(qū)域取得了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第2狀態(tài)。
10.一種數(shù)據(jù)通信程序,用于處理器的軟件模塊之間的通信,其特征在于,使計(jì)算機(jī)執(zhí)行下述功能,即在存儲(chǔ)器上確保具有表示第1狀態(tài)或第2狀態(tài)的標(biāo)識(shí)符的數(shù)據(jù)存儲(chǔ)區(qū)域,和表示是否有發(fā)送數(shù)據(jù)的處理請(qǐng)求的處理請(qǐng)求區(qū)域的功能;數(shù)據(jù)發(fā)送功能,從至少一個(gè)發(fā)送模塊接收發(fā)送數(shù)據(jù)的請(qǐng)求,在向上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第2狀態(tài)的區(qū)域內(nèi)存儲(chǔ)了數(shù)據(jù)之后,將上述標(biāo)識(shí)符變更為上述第1狀態(tài),并且僅在述處理請(qǐng)求區(qū)域內(nèi)還未被寫(xiě)入處理請(qǐng)求時(shí),將處理請(qǐng)求寫(xiě)入到上述處理請(qǐng)求區(qū)域,產(chǎn)生通知信號(hào);處理請(qǐng)求接受功能,接收上述通知信號(hào),在確認(rèn)了上述處理請(qǐng)求區(qū)域內(nèi)被寫(xiě)入了處理請(qǐng)求之后,清除該處理請(qǐng)求,將向上述數(shù)據(jù)存儲(chǔ)區(qū)域的數(shù)據(jù)存儲(chǔ)通知給接收模塊;以及數(shù)據(jù)取得功能,接收來(lái)自上述接收模塊的接收數(shù)據(jù)的請(qǐng)求,在從上述數(shù)據(jù)存儲(chǔ)區(qū)域的上述標(biāo)識(shí)符表示上述第1狀態(tài)的區(qū)域取得了數(shù)據(jù)之后,將該標(biāo)識(shí)符變更為上述第2狀態(tài)。
全文摘要
提供一種在處理器的軟件模塊之間的通信中減少收發(fā)數(shù)據(jù)時(shí)的中斷產(chǎn)生頻率的數(shù)據(jù)通信裝置。在存儲(chǔ)器(30)上確保數(shù)據(jù)存儲(chǔ)區(qū)域(210)和表示是否有發(fā)送數(shù)據(jù)的處理請(qǐng)求的處理請(qǐng)求區(qū)域(220),數(shù)據(jù)發(fā)送部(300)從發(fā)送模塊(101)接收發(fā)送數(shù)據(jù)的請(qǐng)求,向數(shù)據(jù)存儲(chǔ)區(qū)域(210)存儲(chǔ)數(shù)據(jù)后,僅在處理請(qǐng)求區(qū)域(220)中還未被寫(xiě)入處理請(qǐng)求的情況下,向處理請(qǐng)求區(qū)域(220)寫(xiě)入處理請(qǐng)求,并向處理請(qǐng)求接受部(400)發(fā)出中斷。處理請(qǐng)求接受部(400)在確認(rèn)了處理請(qǐng)求區(qū)域(220)中被寫(xiě)入有處理請(qǐng)求后,清除該處理請(qǐng)求,將向數(shù)據(jù)存儲(chǔ)區(qū)域(210)的數(shù)據(jù)存儲(chǔ)通知給接收模塊(102)。數(shù)據(jù)取得部(500)接收來(lái)自接收模塊(102)的接收數(shù)據(jù)的請(qǐng)求,從數(shù)據(jù)存儲(chǔ)區(qū)域(210)取得數(shù)據(jù)。
文檔編號(hào)G06F15/167GK1707461SQ200510076719
公開(kāi)日2005年12月14日 申請(qǐng)日期2005年6月10日 優(yōu)先權(quán)日2004年6月11日
發(fā)明者北村有紀(jì), 林邦彥, 西畑素秀 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社