專利名稱:字節(jié)序不同的處理器間共享數(shù)據(jù)的數(shù)據(jù)共享裝置和處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種具有彼此不同的字節(jié)序(endian)的兩個處理點(diǎn)存儲 器的 共享^*和其處理器,尤其是涉及處理器間的 共享。
背景技術(shù):
在處理器的基本字長為2字節(jié)(16比特)以上的情況下,作為將2字節(jié)以 上的 存儲在存儲器中的字節(jié)1,,有附胃大端字節(jié)序(big endian)與 小端字節(jié)序(little endian)等兩種方式。存儲,字節(jié)#>位分1^ :是因?yàn)?基本字長為2字節(jié)以上。
首先說明大端字節(jié)序。
戶刑胃大端字節(jié)序是在具有字節(jié)單位的iMh的存儲器中存儲2字節(jié)以上數(shù) 據(jù)時(shí)的字節(jié)列的排列順序(字節(jié)7娘)方式,指大端(big end)(即MSB (Most Significant Bit)頂lj。此時(shí),B不是Bit,應(yīng)是Byte)的字節(jié)開始按存儲器的 i艦升序存儲的方式。但是,字節(jié)序不是比特列的排柳l,,而是字節(jié)列的 排列)l,,字節(jié)內(nèi)的比特的排列l(wèi),不變。
圖i表示大端字節(jié)序的說明圖。如圖戶;f^,例如在以大端字節(jié)序?qū)?字
節(jié)繊"89ABCDEF" (16進(jìn)制數(shù),下面的""內(nèi)也一樣)存儲ttfet 100-103 地址號碼的存儲器區(qū)域中的情況下,按100-103地址號碼的順序,存儲為 "89"、 "AB"、 "CD"、 "EF"。
圖2雖是與圖1相同的實(shí)例,但^^將32比特作為基本字長時(shí)的存儲圖 像(存儲器織)。存儲器齜是字節(jié)單位,在基本字長中,下^feW(由齜 下位2比線址的字節(jié)^fi)臟開鄉(xiāng),升序?yàn)?0"、 "1"、 "2"、 "3"。將 赴位字節(jié)"89"存儲在0艦號碼中。
這樣,M:大^節(jié)序,從MSB側(cè)的字節(jié)開始按ttfc^序地存儲在存儲 器中。 圖3表^^接大端字節(jié)序CPU2與存儲器3b的一般結(jié)構(gòu)。另外,本說明 書中將CPU也簡稱為處理器。
如圖所示,CPU2的l^il入輸出端子D [31: 24]、 D [23: 16]、 D [15: 8]、 D [7: 0]分別M31,總線連接于存儲器3b的下位i&y:0、 1、 2、 3上。 由此,從MSB開始按存儲器的艦升序存儲字節(jié),。另外,在該圖的存儲 器3b中,該圖的結(jié)構(gòu)例(structure saraple)4表示由CPU2內(nèi)的程序定義時(shí) 的存儲圖像。LONG INTEGER w;ig本字長(32比特)的字,,從MSB開始順 序由w3、 w2、 wl、 w0等4個字節(jié)構(gòu)成。SHORT INTEGER x是半字的數(shù)據(jù),從 MSB開始l酵由xl、 xO構(gòu)成。SHORT INTEGER y也一樣。CHAR a、 b、 c、 d 分別是字節(jié)繊。
下面說明小端字節(jié)序。
戶刑胃小端字節(jié)序是指從小端部(big end)(即LSB (Least Significant Bit)
側(cè))的字節(jié)開始按存儲器的ilk^序存儲的方式。
圖4標(biāo)小端字節(jié)序的說明圖。該圖是與圖1相同的 ^, 32比特?cái)?shù) 據(jù)"89ABCDEF"按100-103艦號碼的jl,,存儲為"EF"、 "CD"、 "AB"、 "89"。
圖5表示對與圖4相同的實(shí)例將32比特設(shè)為基本字長的存儲圖像 (memory image)。與圖2相比,下位itt的排列相反,從右開始li^變?yōu)?0"、
"1,, "2,, "3,,
圖6 ^i接小端字節(jié)序CPU1與存儲器3a的一般結(jié)構(gòu)。如圖戶^, CPU1 的f^I入輸出端子D [7: 0]、 D [15: 8]、 D [23: 16]、 D [31: 24]分別 M3i娜總線連接于存儲器3a的下位艦0、 1、 2、 3上。由此,從LSB的 字節(jié)開始按存儲器的i艦升序存儲字節(jié)娜。另外,在該圖的存儲器3a中, 與圖3相同的結(jié)構(gòu)例(structure sanple)4 ,由CPU1內(nèi)的程序定義時(shí)的存 儲圖像。與圖3的存儲圖像相比,字節(jié)列相反。
這樣,大端字節(jié)序、小端字節(jié)序是將2字節(jié)以上的 存儲在存儲器中 時(shí)的字節(jié)列的7嬌方式,"i^相反。
因?yàn)檫@種差異,所以在大端字節(jié)序CPU與小端字節(jié)序CPU混合存在的系 統(tǒng)中,為了確麟享 的同樣性,需魏變^^節(jié)序的差異的結(jié)構(gòu)。
7
專利文獻(xiàn)l公開了一種具^節(jié)伊變換部的信息^il信裝置,當(dāng)在大端 字節(jié)序CPU與小端字節(jié)序CPU之間^S行信息^I信時(shí),在大端字節(jié)序處理器 中糊言息包上的 變換到小端字節(jié)序。
另外,專利文獻(xiàn)2中公開了一種繊匹配(data align)體,M3im據(jù) 訪問地址和訪問尺寸變換存儲數(shù)據(jù),吸i^據(jù)的尺寸/匹E/字節(jié)J^異,進(jìn) 行存儲器訪問。
專利文獻(xiàn)l:特肝06~69978
專利文獻(xiàn)2:特開2000-3304
但是,在專利 1、 2公開的技術(shù)中,必需向具特節(jié)伊變換部的處理 器附加賺的硬件。另外,因?yàn)樽止?jié)伊變換引起鵬,所以妨礙存儲器訪問 的高速化,在共^^儲器數(shù)據(jù)的情況下,成為對其它存儲旨取的高速化的 障礙。
另外,通常通信由小端字節(jié)序的處理^bSL圖像處理由大端字節(jié)序的 處理器處理。近年來,便攜電話具有了圖像處理功能,小端字節(jié)序處理點(diǎn) 大端字節(jié)序處理器可雜于同一總線上。另外,需要能實(shí)時(shí)共享繊。
發(fā)明內(nèi)容
本發(fā)明的目的在于JI^一種在將大端字節(jié)序處理器與小端字節(jié)序處理器 連接于總線上的情況下、由極簡單的結(jié)構(gòu)實(shí)現(xiàn)存儲器 共享的處理器及存 儲麟享錢。
為了實(shí)!Lh^目的,本發(fā)明的處理器,^i^總線連接于存儲器上,其 特征在于具備》1:變,置,^tf萬度比數(shù)據(jù)總線小的f^訪問存儲器的 情況下,變換地址的下位比特,以便指向^ 總線中的對,據(jù)的^ ^ 轉(zhuǎn)的隨,并輸出到戶;f^存儲器,連接于戶脫翻總線,以便按與對應(yīng)處理 器的字節(jié)序相反的字節(jié)序的字節(jié) ,,與所述存儲器之間傳送 。
臓該結(jié)構(gòu),就巾驢與繊總對胴的 而言,第1處理器和第2處 理器都以相同的字節(jié)^^訪問存儲器,所以可以極簡單的結(jié)構(gòu)來實(shí)現(xiàn)幅度與 翻總細(xì)同的M共享。另外,處理llffl31i也ih^換驢,可就幅度比數(shù) 據(jù)總線小的 訪問存儲器。并且,因?yàn)榭捎苫凇蹲儞Q裝置的簡單硬件
構(gòu)成,所以不構(gòu)鵬儲器訪問高速化的妨礙。
這里,觀構(gòu)成為對于字節(jié)序與戶腿處理器(第l處理器)不同的其它 處理器(第2處理器)之間M0M存儲默享的結(jié)構(gòu),,對于在戶脫其它 處理器中執(zhí)行的勒芋中的戶脫結(jié)構(gòu)數(shù)據(jù)的定義,所述處理器執(zhí)行在基本字長 內(nèi)由相反7嬌定義的比基本字長小的 的禾驕。
根據(jù)該結(jié)構(gòu),在第1處理器與第2處理器之間,即iM巾破比數(shù)據(jù)總線 小的繊也可經(jīng)存儲器來共享繊。例如,在M總線幅度為32比特(4字 節(jié))的情況下,由于具備i艦變換驢,織1處理器見到的存儲器的0 i齜 號碼與織2處理器見到的存儲器的3 i艦號碼指向相同的存儲器區(qū)域洞 樣,維1處理器JSJ啲存儲器的1、 2、 3 i艦號碼^A^ 2處理器見至啲 存儲器的2、 1、 0Jffl:號碼)。并且,在第1處理器將結(jié)構(gòu),定義為由B0、 Bl、 B2、 B3等4字節(jié)構(gòu)成的情況下,第2處理 結(jié)構(gòu) 定義為由B3、 B2、 Bl、 B0等4字節(jié)構(gòu)成。針對定義為B0的字節(jié)繊B0,第1處理器訪問0地 址號碼,第2處理器訪問3 i艦號碼。由此,不僅在幅度與繊總線幅度相 同的l^訪問的情況下,即^&幅度小的 訪問的情況下,也可共享 。
并且,最好臓鵬器還具織臓處理器的字節(jié)序的字節(jié)辦連接于 f[^總線上的高速緩沖存儲器,所述處理器按幅度與1^總線相同的 單 位將繊MM存儲器讀入到高速緩沖存儲器中。
1t據(jù)該結(jié)構(gòu),因?yàn)閷⒎扰c 總線相同的 從存儲器讀入到高速緩 沖存儲器,所以可以極簡單的結(jié)構(gòu)來高速緩沖字節(jié)序不同的處理器的數(shù)據(jù)。 JJ:I^卜,高速緩沖訪問不需要i&W:變換,并且無論)|#^個 在共^#儲
器中還^^S在高速緩沖存儲器中,處理miWM:相同的訪問動作來訪問娜。
另外,本發(fā)明的M共享體是具有字節(jié)序艦不同的第1處理器麟 2處理器、與存儲器的 共享^2,,征在于第1處理器皿2處理
M按第i處理器的字節(jié)序的字節(jié) ,,經(jīng) 總線^^接于戶; ^存1^:^上。
該結(jié)構(gòu),就幅度與 總線相同的 而言,第1處理器和第2處 理器都以相同的字節(jié)^^訪問存儲器,所以可以極簡單的結(jié)構(gòu)來實(shí)11^
據(jù)的共享。
這里,臓,共享體最好還具備艦變換體,在第2處理蹄儲 器訪問幅度比數(shù)據(jù)總線小的數(shù)據(jù)的情況下,變換地址的下位比特,以指向使
總線中的對應(yīng) 的^^轉(zhuǎn)的皿,并輸出到戶; ^^儲器。
根據(jù)該結(jié)構(gòu),il3ittt變換裝置,第2處理器可就幅度比數(shù)據(jù)總線小的
,訪問存儲器。
這里,1^;M儲旨儲,1處理器,2處理器訪問的結(jié)構(gòu),,
臓第i處理翻亍定,; ^構(gòu),的第i辦,戶; ^ 2處理微行第 2程序,該第2程序M:在基本字長內(nèi)對戶;f^結(jié)構(gòu)數(shù)據(jù)以與第i程序相反的
^^來定義幅度比基本字長小的 。
根據(jù)該結(jié)構(gòu),^E^1處理器與第2處理器之間,不,幅度與 總線
相同的 ,即,幅度比 總線小的 ,也可經(jīng)存儲器來共享 。 另外,可在字節(jié)序不同的處理器之間共享未高速緩沖的繊(未存儲在高速緩 沖存儲器中的 )。
這里,^Mi^共享,還具^^制基于直接存儲器訪問(DMA)的 傳 送的傳,置,所述傳i^S在需^節(jié)序在傳送源與傳送目的地不同的數(shù)
據(jù),并且傳送幅度比娜總線小的,盼膚況下,在傳送源與傳送目的地使 基本字長內(nèi)的對應(yīng)娜的JI,逆轉(zhuǎn)。
根據(jù)該結(jié)構(gòu),可在字節(jié)序不同的傳送源與傳送目的ifct間a^各自必需 的繊排列",后進(jìn)行DMM鍵。另外,鵬^ll^傳送目的地也可艦特 單做字節(jié)單位的訪問來利用繊。
這里,臓傳itmir錢換部,在需群節(jié)序在傳送源與儲目的地 不同的 ,并且^t幅度比i^總線小的f^的情況下,變衡^源及傳 送目的地之一的地址的下位比特,以便指向^^據(jù)總線中的對應(yīng) 的, 逆轉(zhuǎn)的,,并輸出到MI存儲器。
根據(jù)該結(jié)構(gòu),變換部僅變^W:的下微比特,所以可MOT簡單的結(jié) 構(gòu)來實(shí)現(xiàn)。
,具 第2 ,器的字節(jié)序的字節(jié)7^^連接于 總線上的高速緩沖存儲器。
根據(jù)該結(jié)構(gòu),就幅度與繊總線相同的娜而言,將娜從存儲器讀入 高速緩沖存儲器,所以可由極簡單的結(jié)構(gòu)來高速緩沖字節(jié)序不同的第1處理 器的數(shù)據(jù)。
另外,本發(fā)明的 共享方,與, 共享,一樣。
如上所述,根據(jù)本發(fā)明的 處理裝置,(A)通過將大端字節(jié)序的第2 處理器按與小端字節(jié)序的第1處理器相同的字節(jié)次序連接于共享存儲器上 (參照圖7的總線纖點(diǎn)42、 43),小端字節(jié)序的第1處理器與大端字節(jié)序的 第2處理器可MJl字單位訪問共?^儲器30來共享繊。Ith^卜,可以按字單
皿共,儲器高速緩沖到大端字節(jié)序處理器的高速緩沖存儲器中。
另外,除(A)外,艦(B)艦變換,第2鵬器未必會gffi31半字單做 字節(jié)單位的訪問來共享 ,但可訪問小端字節(jié)序用的存儲器。
并且,除(A)、 (B)外,(C)通過在第l處理器與第2處理器中,就應(yīng)用程 序內(nèi)的結(jié)構(gòu)定義,在基本字長內(nèi)辦定義比基本字長小的變量,不僅小端字 節(jié)序的第1處理器與大端字節(jié)序的第2處理器中可以按字單位訪問共^ 儲 器,也可以按特單mi字節(jié)單^^共享繊。
并且,除(A)、 (B)外,(D)在腿傳送時(shí),MMit行與(B)相同的ilfcK 換,DMA傳送字節(jié)序不同的繊,可在傳送源與傳送目的鵬行基于特單 ^&字節(jié)單位的訪問的 共享。
參照說明本發(fā)明Ht定^li例的附圖,本發(fā)明的JlM和其它目的、優(yōu)點(diǎn)、 和特征將從下 述中變1,楚。其中, 圖l表示大端字節(jié)序的說明圖。 圖2表示大端字節(jié)序的說明圖。 圖3 ^^接; 字節(jié)序CPU與存儲器的一般結(jié)構(gòu)。 圖4 ,小端字節(jié)序的說明圖。 圖5g小端字節(jié)序的說明圖。 圖6 ^小端字節(jié)序CPU與存儲器的一般結(jié)構(gòu)。
圖7是,實(shí)施方式1中 處理,的結(jié)構(gòu)框圖。
圖8是^^基于JMh變換部21的iMh變換的輸入輸出邏輯的說明圖。
圖9是第1處理器10和第2處理器20以字訪問共:?#儲器30時(shí)的說明圖。
圖10中,圖10A是第1處理器10和第2鵬器20在相同艦以半字訪 問共 儲器30時(shí)的說明圖。
圖10B是第1處理器10和第2處理器20在不同itt以相同肖訪問共 M儲器30時(shí)的說明圖。
圖11中,圖11A是第1處理器10和第2處理器20在相同Jtt以字節(jié)數(shù) 據(jù)訪問共^儲器30時(shí)的說明圖。
圖11B 1處理器10和第2處理器20在不同地吐以相同字節(jié)im訪 問共^ 儲器30時(shí)的說明圖。
圖12是表示共 儲器30和高速緩沖存儲器23的存儲圖像的圖。
圖13 M31^構(gòu)定JDI6a行半字單位、字節(jié)單位的 共享的說明圖。
圖14是te^構(gòu)的其它定義例的圖。
圖15是^^將源,中的結(jié)構(gòu)定義變?yōu)?的^S^作為編i f頁處理 的圖。
圖16是表示本發(fā)明鄉(xiāng)方式2的鵬處 的結(jié)構(gòu)框圖。 圖17是^DMAC32的詳細(xì)結(jié)構(gòu)框圖。
圖18是表示基于JfeW:變換部104的JM:^換的輔T入輸出邏輯的說明圖。 圖19A是表示基于DMAC32的離4鍵的狀態(tài)的時(shí)間圖的U。 圖19B是 ^#^源存儲器與傳送目的地存儲器的存儲圖像的圖。 具體實(shí)船式 (織方式1)
圖7是表示本 ^式中的繊處^§的結(jié)構(gòu)框圖。如圖戶標(biāo), 處理體具備第1處理器10、第2處理器20、共辯儲器30、 i齜變換部 21、高速緩沖存儲器23,這鄉(xiāng)件經(jīng)繊總線(圖中的D總衝連接。
處 5皿:(A)以與小端字節(jié)序的第1處理器相同的字節(jié) ^j^將 大端字節(jié)序的第2處理器20連接于共^#儲器30、 (B)第2處理器20的地 址變換、(C)第l處理器lO、第2處理器20各自的結(jié)構(gòu)的定義方法這3點(diǎn), 以極簡單的結(jié)構(gòu)來實(shí)現(xiàn)基于存儲器的數(shù)據(jù)共享。(A)及(B)是硬件結(jié)構(gòu),(C) 是軟件結(jié)構(gòu)。
<A總線連接〉
圖7中,共辯儲器30及高速緩沖存儲器23中的3、 2、 1、 O標(biāo)由下 位地址(這里為iiktlJ:的下位2比特)尋址的字節(jié)皿。
第1處理器10是小端字節(jié)序處理器,經(jīng)總線連接點(diǎn)41、 42連接于共享 存f諸器30。 i^i接與小端字節(jié)序處理器的一般存儲器連接方法(參照圖6)相 同,第l處理器10按小端字節(jié)序的字節(jié)7^m連接于共?^儲器30。即,第l 處理器10中Wtl入輸出端子的小端部D [7: 0]連接于共^#儲器30的0 地址號碼,按存儲器^艦升序!從小端部開始存儲字節(jié)列。
第2處理器20是大端字節(jié)序處理器,m總線連接點(diǎn)43、 42雜于共 辯儲器30。該連接涉^SJl^(A)。即,該連接方法不是大端字節(jié)序處理器 的一般存儲器連接方法(參照圖3),而是與小端字節(jié)序處理器的一般存儲器 連接方法(參照圖6)相同。i^i接中,第2處理器20的 1|入輸出軒不 題大端部,而題小端部的字節(jié)D [7: 0]開始按共辯儲器30的it^ 序連接。換言之,艦總線雜點(diǎn)43、 42,將第2處理器20的字節(jié) 嬌從 大端字節(jié)序改脅J、端字節(jié)序。
根據(jù)iM接,第1 ^i^器10與第2處理器20可fflM^共^儲器30 的32比特娜(下面稱為字)的訪問來共享繊。另外,可以32比特單位將 繊力媒^#儲器32高速緩沖(讀入)到高速緩沖存儲器23。其中,基于16 比特 (稱為半字)、8比特 (字節(jié))的訪問的 共享只皿^^接不 能實(shí)現(xiàn)??山Y(jié)合,(B)、 (C)來實(shí)現(xiàn)。
共辯儲器30中第l處理器的i^r入輸出端子D [31: 32]、 D [24: 16]、 D [15: 8]、 D [7: 0]對應(yīng)于作為下^Jtt(艦的下位2比特(A1、 AO)) 所指的字節(jié)^g的3、 2、 1、 0皿號碼。
<B艦變換〉
地址變換部21變,2處理器20的下m^輸出到共^ 儲器30。 該艦變,^SJ^(B),對于作為比基本字長的32比特小的繊,變換下 位地吐,以指向使基本字長內(nèi)的相應(yīng)I^^S^轉(zhuǎn)的位置。
圖8是表示基于艦變換部21的艦變換的輸入輸出邏輯圖。對艦變 換部21的輸入是[訪問尺寸]、[變換前地址],都M2處理器20輸入。訪 問尺寸表示字i方問、半字訪問、字節(jié)訪問之一。變換前itt^Uitth總線最 下位開始的2比特、即A1、 AO。
土"& 換部21的輸出是變換后地址。變換后itt如圖戶標(biāo),iMh變換部 21在字訪問的情況下,原樣輸出A1、 AO(即無變銜。在半字訪問的情況下, 僅反轉(zhuǎn)A1,而原樣輸出AO。在字節(jié)訪問的情況下,將A1與AO都反轉(zhuǎn)后輸出。 這里,就字訪問、特訪問而言,第2處理器20不訪問,匹配的 0
圖9是第2處理器20訪問字時(shí)的說明圖。第2處理器20以字單^^訪 問時(shí),可與第1處理器10共享共辯儲器30的,。此時(shí),地址變換部21 不進(jìn)^itt變換。
圖10A魏2處理器20訪問半字時(shí)的說明圖。在半字訪問中,艦變換 部21將娥前的下^Mh0iMh號碼(Al、 A(M)、 0)變換為下^tt: 2 ■ 號碼(l、 0),另外,將下位艦2i齜號碼(Al、 A0=1、 O)變換為下位衄O i齜號碼(O、 0)。如圖麻,若第2處理器20執(zhí)行將特"89AB"存儲到存 儲器的0 ifefat號碼中的指令(movhw ft89ABh, mem(O)),則如存儲圖像(存儲器 娜)4b那樣,將"89AB"存儲到2艦號碼與3艦號碼中。相反,若第1 處理器10執(zhí)行同樣的指令,貝咖存儲圖像4a那樣,將"89AB"存儲到0地 址號碼與liMir^碼中。
這樣,在半字訪問中,絲1處理器貼啲共辯儲器30的下^tth的 0 iMfc號碼^Am 2處理器20見到的共^#儲器30的下^fefc 2 ;tW:號碼, 同樣,絲1處理器JEI啲2艦號碼;i^ 2 ^hS器20貼啲0 號碼。
圖11A魏2 M器20字節(jié)訪問時(shí)的說明圖。在字節(jié)訪問中,艦變換 部21將例如變換前的下位Jtt 0 JM:號碼(A1、 A(M)、 0) 為 3 ■ 號碼(l、 1),如圖戶標(biāo),若第2處理器20執(zhí)行)lt^節(jié)"89"存儲到存儲器的
O地址號碼中的指令(movhw tt89h,mem(0)),則如存儲圖像(memory image) 5b那樣,將"89"存儲到3 i艦號碼中。相反,若第1處理器10執(zhí)行同樣 的指令,貝咖存儲圖像5a另峭,將"89"存儲到0艦號碼中。
這樣,在字節(jié)訪問中,第2處理器20M31iMt變換部21將下位WhO itt號砂變換為3 Jtt號碼,將1 1:號 換為2 Jtt:號碼,將2 itt號 碼變換為l地址號碼,將3艦號砂變換為0 Jtt:號碼。艮P,在字節(jié)訪問中, 絲1鵬器10鄉(xiāng)啲共韓儲器30的下位地址的0、 1、 2、 3i艦號碼是 從第2處理器20見到的共^ 儲器30的下位iMh 3、 2、 1 、 0 號碼。
但是,即使^LM(A)中加入(B)的ilMlt變換,第2處理器20也不能實(shí)現(xiàn) 經(jīng)共^ 儲器30與第1處理器10之間以半字單位和字節(jié)單麟享繊。(B) 的地址變換^2處理器20伴隨基于(A)的字節(jié)7,的6^、以肖和字節(jié) 來訪問上有意義。
艮P,若不具備iMh變換部21,則盡管第2處理器20能以字單位訪問共 韓儲器30,但不能以特和字節(jié)單^^訪問。例如,在圖10A的實(shí)例中, 共辯儲器30的0、 1 ttt號碼如存儲圖像4a那樣,是字的下位側(cè)(圖的右 働特,f碟2處理器20向0、 1艦號碼、即字的上位側(cè)的^^輸出"89AB"。 在該狀態(tài)下,若假定不進(jìn)行艦變糊將0艦號碼指定給共辯儲器30, 則會在共^ 儲器30中未輸入"89AB"的下位側(cè)半字(O、 1 Jtt號碼)中寫 入總線上的無$ ^。
這樣,(B)的iitot變換在消除由(A)的字節(jié)7,改換產(chǎn)生的半字、字節(jié)訪 問的缺陷上有意義。另外,因?yàn)閕M:變換部21可由簡單組合的鵬實(shí)現(xiàn),所 以可忽視變換弓l起的下^iife^ir出的5iiS。
另外,就半字、字節(jié)而言,如圖10A、圖11A戶標(biāo),絲1處理器10見 到的地址與絲2處理器20見到的i艦不一致,所以可以認(rèn)為不能共享半字 單位、字節(jié)單位的繊。針對該不一致,例如圖IOB、圖IIB戶標(biāo),第1處 理器10和第2處理器20若對半字及字節(jié)的共享i^直銜旨定不一致的皿, 則不僅字單位、即皿半字單位和字節(jié)單位也可共享。在本 方式中,由 ,(C)來實(shí)J皿點(diǎn)。
高速緩沖存儲器23經(jīng)總線驗(yàn)點(diǎn)44、 M3i—般的大端字節(jié)序處理器與 存儲器的連接方法(參照圖3)與第2處理器20相雜。圖7中,高速緩沖存 儲器23配備在第2處理器20外部,但也可錢2處理器20內(nèi)部。高速緩沖 存儲器23可以按字單M調(diào)整緩沖共^儲器30的 。這 于,") 的改換字節(jié)辦的織。
圖12是表示共^ 儲器30和高速緩沖存儲器23的存儲圖像的圖。高速 緩沖存儲器23 M;以字單皿共^儲器30高速緩沖 ,去除共 儲 器30與下傲艦的7嬌不同的點(diǎn),麟相同的存儲圖像。但是,高速緩沖存 儲器23以半字單位、字節(jié)單^A共^儲器30進(jìn)行高速緩沖不能僅由, (A)的連接來實(shí)現(xiàn)。
<C結(jié)構(gòu)定義〉
圖13 ^M:結(jié)構(gòu)定義(,(c))5l6a行肖單位、字節(jié)單位的 共享
的說明圖。圖中,根據(jù)結(jié)構(gòu)10b那樣定義的^j^^ 1處理器10執(zhí)行的 第1禾驕10a。另外,鵬結(jié)構(gòu)20b另辭定義的^gj^4^ 2處理器20執(zhí) 行的第2 ,號20a。結(jié)構(gòu)20b定義與結(jié)構(gòu)10b —樣的錢,但在基本字長的 范圍內(nèi)辦定義比基本字長小的M的)I,。
例如,就16比^M^的變量x, y而言,在結(jié)構(gòu)10b中,定義為[SHORT INTEGER y, x;],在結(jié)構(gòu)20b中,,定義為[SHORT INTEGER x, y;]。另 夕卜,就字符型錢a、 b、 c、 d而言,在結(jié)構(gòu)10b中,定義為[謹(jǐn)d、 c、 b、 a;],在結(jié)構(gòu)20b中,,定義為[CHAR a、 b、 c、 d;]。這些結(jié)構(gòu)由^j^ i戰(zhàn),或由編,,iM。
由此,iM在結(jié)構(gòu)的定義中鵬,可允許圖10A、圖11A戶際的半字和 字節(jié)訪問中的Jtt的不一致。艮口,如圖10B、圖llB戶;f^, gl^l器10 和第2處理 字及字節(jié)訪問應(yīng)共享的相同 的情況下,可指向不一致的 i艦。
如圖13戶標(biāo),由結(jié)構(gòu)10b定義的共^#儲器30的存儲圖像與由結(jié)構(gòu)20b 定義的存儲圖像一致。但是,,2處理器20見至啲特、字節(jié)的下^h 與第1處理器10 ",相反(不一節(jié)。例如,就變量a而言,從第1處理器 10看是存儲在下傲齜3艦號碼中,錢2處理器20內(nèi)部為下位艦0
地址號碼。由此,即^M;字節(jié)訪問也可共享z遞a。
另外,My膽l處理器10看是存儲在下位i艦0、 l艦號碼中, 在第2處理器20內(nèi)部為下^Jtt 2、 3艦號碼。由此,即使艦半字訪問 也可共享變量y。
另外,即使在高速緩沖存儲器23中,若是定義為應(yīng)共享的結(jié)構(gòu)的繊, 則不僅字單位、即使是半字單位和字節(jié)單位也可高速緩沖。
圖14是表示結(jié)構(gòu)的其它定義例的圖。圖中,^麟1處理器10用的結(jié)構(gòu) 10c而言,M:沒有最后的碼的8比伶遞[隱b2;]的定義,在基本字 長內(nèi)余8比特。因此,在結(jié)構(gòu)20c中,插入比特做與余數(shù)相同的空(dummy) 字節(jié)數(shù)據(jù)[CHAR bDunimyO;]。由此,在結(jié)構(gòu)20c中,還包含8比特的余ifcfcfe 在基本字長內(nèi),定義。
圖15是g將源超字中的結(jié)構(gòu)定義^J逝竽的處S^作為編iffl處理 的圖。
如圖所示,預(yù)處理部100輸入第1處理器10用的第1源禾歸與第2處理 器20用的第2源程序,檢測二者中的應(yīng)共享的結(jié)構(gòu)(Sll),改換變量的順序, 使一個源禾將中的基本字長內(nèi)的CTl,與另一源禾i^中的^i的JI,相反 (S12)。此時(shí),必要日彌入圖14戶標(biāo)的空字節(jié)娜或空特。之后,由各自 的編#^譯兩個^^。
由此,編碼者不必模個考慮應(yīng)共享結(jié)構(gòu),的wmii程,只要僅4贓
共享的^S名一致即可,所以可減小編程者的負(fù)擔(dān)。
如Jl^M,根據(jù)本 方式的 ^!^,, (A)ffl3i將大端字節(jié)序的第 2處理器20按與小端字節(jié)序的第1處理器10相同的字節(jié)7:W,于共^ 儲器30上(參照圖7的總線驗(yàn)點(diǎn)42、 43),小齢節(jié)序的第1 ^bS器10與 ,字節(jié)序的第2 M器20可M31字單位訪問共,儲器30來共享 。 鈔卜,可以按字單皿小端字節(jié)序的共^儲器30高速緩沖至IJ大端字節(jié)序處
理器的高ii緩沖存儲器中。
另外,除(A)外,艦(B)iMh變換部21,第2處理器20未必會^13i半
字單皿字節(jié)單位的訪問來共享 ,但可訪問小端字節(jié)序用的存儲器。例
如,對于由小端字節(jié)序連接的第i處理器io與共辯儲器30,可ii^:將小
端字節(jié)序的第2處理器20成為(A) (B)的簡單結(jié)構(gòu),作為第2處理器20的存 儲器來訪問。
并且,除(A)、 (B)夕卜,(C)fflil在第l處理器10與第2處理器20中,就 結(jié)構(gòu)定義,在基本字長內(nèi)辦定義比基本字長小的體,不僅小端字節(jié)序的 第1處理器10與大端字節(jié)序的第2處理器20中可以按字單位訪問共 儲 器30,也可以按半字單皿字節(jié)單^*共享 。
另外,戰(zhàn)實(shí)施方式中,說明第1鵬器10為小端字節(jié)序、第2處理器 20為大端字節(jié)序時(shí)的結(jié)構(gòu),但也可為相反的字節(jié)序。此時(shí),從兩個處理器開 始,作為大端字節(jié)iW^,^儲器30, ^i:變換部21可以是變換小端 字節(jié)序處理器的艦的結(jié)構(gòu)。
另外,在戰(zhàn)實(shí)施方式中,第1處理器10和第2處理器20將32比特設(shè) 為基本字長,但也可以是64比特或128比特等其它的鉢字長。此時(shí),Jtt 變換部21可以是變換^^基本字長內(nèi)部的字節(jié)健的下位i艦的結(jié)構(gòu)。
(實(shí)施方式2)
^J^織方式中,,mM51i^(A) (B)來存儲在共辯儲器30中的 而言,MJl^(C)來解決^A^ 1鵬器10看時(shí)和綠2處理器20看時(shí)在 半字地,字節(jié)地址中產(chǎn)生一致的情況。在本實(shí)施方式中,說明不M(C) 而由DMA傳送來解決該不一致的結(jié)構(gòu)。
圖16是^^本發(fā)明實(shí)施方式2的,處^fi的結(jié)構(gòu)框圖。該圖的, 處理,與圖7相比,不同之處在于ffiiJ口了 SDRAM (Synchronous Dynamic Random Access Memory) 31、 DMAC (Direct Memory Access Controller) 32、 I/O (Input/Output device) 33、 1/034。對于與圖7相同的結(jié)構(gòu)要素附加相同 符號,所以省略說明,主要說明不同之處。
本數(shù)據(jù)處理裝置配備在DVD記錄器或數(shù)字播放接收機(jī)等AV (Audio Visual)設(shè)備中。此時(shí),第2處理器20進(jìn)行基于MPEG (Moving Picture Expert
Group)的] 動態(tài)圖像 的解碼^^,圖像處理,第1處理器10進(jìn)行圖 像處理皿整體的控制。共^#儲器30用于第1處理器10與第2處理器20 之間的各禾中 的#^。
SDRAM31由第1處理器10和第2處理器20用作作業(yè)存儲器,■, MPEG壓縮動態(tài)圖像的流I^、解碼中的圖象、解碼后的參照圖象、解碼后的 視頻繊等。
DMAC32在DMA傳送時(shí),傳送源繊與儲目的地繊是不同字節(jié)序的數(shù) 據(jù),在^^l繊尺寸比字小的情況下,進(jìn)行改^^節(jié)7娘的《1:變換。另外, DMA傳送在存儲l存儲器之間和存儲器"I/0之間進(jìn)行。這里,存儲器是共享 存儲器30和SD麵31, I/O是1/033、 1/034等。
1/033 、 34分別是8比特、16比特的I/0器件,例如,是將解碼后的圖 象 作為串行挪頻 11出的視頻輸出部、輸入解碼后的視/頻 ^#為 聲音信號輸出的音頻輸出部等。
圖17是標(biāo)DMAC32的詳細(xì)結(jié)構(gòu)框圖。如圖戶標(biāo),纖C32具備第1艦 計(jì)數(shù)器101、第2;fcfebB十?dāng)?shù)器102、終^i十?dāng)?shù)器103、 1貞存部105和控制 部106。
第1 Jtti十?dāng)?shù)器101、第2 Whi十?dāng)?shù)器102分別^#送源、傳送目的 iikJ :,并在針微時(shí)進(jìn)行正計(jì)數(shù)或倒計(jì)數(shù)。兩個^B十?dāng)?shù)器同傳送源與 傳送目的地的對應(yīng)也可相反。
終^i十?dāng)?shù)器103在計(jì)數(shù)誠ffi^M鍵時(shí)傳送的繊數(shù)量時(shí),通知控制 部106并使DMA傳,束。
艦變換部104在傳送源,與傳送目的地繊之間、或1/033、 34與 存儲器 之間字節(jié)序不同且#^ 尺寸比字小的情況下,為了在傳送源 與傳送目的地使基本字長內(nèi)的對應(yīng) 的)1^辦,變m^lifeiB十?dāng)?shù)器 101輸出的傳送源A(鍵目的ifeitt:。
這里,附胃[字節(jié)序不同]慰旨訪問^^源 與#^目的地 不同 的字節(jié)序的處理器,翻于字節(jié)序不同的處理器和I/O。例如,是由第2處 理器20加^/存儲#^1源 、由第1處理器10力口t/存衞鍵目的W^
的情況,或由第2鵬器20存儲傳送源繊、傳送目的地^USB側(cè)jl,請 求字節(jié) 的I/O的情況等。
另外,因?yàn)橛傻?處理器加載存儲的 以小端字節(jié)序存儲在存儲器中, 所以字單位的腿"^RM:基于ife^變換部104的ity:變換而原樣進(jìn)行DMA 變換。但是,比字小的半字單位、字節(jié)單位的DMA如圖IOA、圖11A戶標(biāo), 從第1處理器10 lli啲艦與歸2 ^fcS器20見到的艦不一致。因此, 地址變換部104在fl^源與4鍵目的ityi、需不同字節(jié)序的織的情況下,為 了更正#單位和字節(jié)單位的 的不一致而變換^。
圖18是表示基于itt^換部104的iikfeh^^的輸入輸出il輯的說明圖。 向地址變換部104的輸入是[字節(jié)序][訪問尺寸][變換前M:]。[字節(jié)序] MS制部106輸入, ^專送源繊與4錢目的地織是相同字節(jié)序還是不 同字節(jié)序。更正確地,是表翁方問傳送源繊的處理器與訪問傳送目的地?cái)?shù) 據(jù)的處理器是相同字節(jié)序還是不同字節(jié)序。另外,傳送源、傳送目的te—
是i/o,在該i/o必需的傳送艦的字節(jié) 娘(或半字的 ^m是小端字節(jié)序
的情況下,若訪問^it源/傳送目的地繊的處理器是第1處理器IO,貝俘 節(jié)序相同,若是第2 ^bS器20,貝俘節(jié)序不同。[訪問尺寸]^^制部106 輸入,J標(biāo)字、特、字節(jié)之一。[變換前艦]^iA^ 1 itoB十?dāng)?shù)器101輸 入的地址的下位2比特。
如[變^iMh]戶B, iiktt^換部104在字節(jié)序相同的情況下,無論 是判專送、半對專凝是字節(jié)儲,都原樣輸出(不娜變換前齜。另外, 即使字節(jié)序不同,但是割專送的情況下,也原樣輸出(不變銜變換前《。 在字節(jié)序不同、為^f專送的情況下,販轉(zhuǎn)A1后輸出。在字節(jié)序不同、為 字節(jié)傳送盼瞎況下,反轉(zhuǎn)A1、 AO的兩比特后輸出。
這樣,圖18中的字節(jié)序不同時(shí)的輸入輸出邏輯與圖8戶^的itt變換部 21的^A輸出邏掛目同,fMS要的^M^h變換部21對第2處理器20的 特itt^字節(jié)艦與第1鵬器10不一艦行鄉(xiāng),MIE不一致。
f[^l貞存部(latch) 105在存儲l存儲器間的DMA條送中暫時(shí)^^ff專
控制部106在內(nèi)部具有第1 ^S器10麟2處理器20可訪問的控制寄 存器,臓控制寄存器的設(shè)定內(nèi)容^S制DMAC32辦。控制寄存器^f專送 源和傳送目的地的開始地址(1/0的情況下為其地址^AS制部106輸出的 I/O選擇信號的指定)、4鍵繊尺寸、傳送源和傳送目的地的字節(jié)序(訪問 第1處理器10的 或訪問第2處理器20的 )等。
圖19A是表示基于DMAC32的DMA傳送的狀態(tài)的時(shí)間圖的l!1。圖中,源 存儲器(傳送源存儲器)例如是DSRAM31 ,目的存儲器(傳送目的地存儲器)是 共,儲器30。
^將SDRAM31的100地址號碼以后由第2處理,儲的一 定量的 DMA傳^i拱^ 儲器30的900 itt號碼以后的情況的實(shí)例。另 夕卜,SA表示鮮1 i1kiB十?dāng)?shù)器101 ^ifey:變換部104輸出的Mifefefc, SD表示 從傳送源存儲器讀出的半字的源 , DA表示基于第2Jtti十?dāng)?shù)器102的目 的地址,DD,寫入傳送目的地存儲器的肖的目的im。
此時(shí),第1 itti十?dāng)?shù)器101將腦i艦號蹄乍為開^itt,每次增加2, 第2地&i十?dāng)?shù)器102將900 Mh號碼作為開始地址,每次增加2。
1^換 部104在字節(jié)序不同的半字DMA傳送中僅反轉(zhuǎn)A1。結(jié)果,輸出到艦總線的 源艦SA 102、 100、 106、 104、…,目的艦DA輸出為900、 902、 904、 906、...。由此,從小端部的特開始傳送^^源繊。
圖19B是,基于19A的薩4鍵的^t源存儲^^鍵目的地存儲器 的存儲圖像的圖。如圖戶標(biāo),糊t^源存儲器的下^WJ: 0艦號碼的半字 傳送到傳送目的地存儲器的下位itt 2 itt:號碼,將2 Jtt號碼的^f送 到0地址號碼。
由此,由大端字節(jié)序的第2處理器20存儲的4雜源麵在經(jīng)DMA^^后, 在傳送目的地存儲器中可以以半字單位由第1處理器進(jìn)行訪問。這樣,DMAC32 更正圖IOA、圖11A所示的Jtt:不一致,進(jìn)行DMA街逸??捎傻?處理器10 以特單位形艦不一敏也訪問傳送后的 。另外,若傳送目的地的900 iMfc號碼為1/034,則可MaDMM^USBjli^H^字。圖19中,示出 半字的DMA傳送,但字節(jié)傳送的情況也一樣。
另外,在存儲H/0之間的DMA傳送的情況下,因?yàn)榭刂撇?06向I/0
直接輸出芯片i^擇信號,所以不經(jīng)imi負(fù)存部105,而將從存儲:^讀出的數(shù) 據(jù)直接域反方向)傳送到I/O。此時(shí),例如也可以字節(jié)單位或半字單位將大
端字節(jié)序的第2處理器20存儲的i^從小端部傳超lj I/O。字節(jié)序相反盼瞎 況也一樣。
如上戶腿,根據(jù)本實(shí)施方式的 處理,,即使M定義為上述(C) 結(jié)構(gòu)數(shù)據(jù)的數(shù)據(jù),由于在DMA傳送時(shí)由iMh變換部104更正由上述(A) (B)產(chǎn) 生的半字地feLS字節(jié)地址的不一致,所以傳送后的 可通過半字或字節(jié)單 位的訪問由其它處理器正確讀出。另外,存儲H/0之間的DMM鎖也一樣, 可由地AI^換部104更正半字itt和字節(jié)地址的不一致。I/O LSB側(cè)需 要,的情況和從MSB側(cè)需要,的情況下自a3iDMAC32來傳送必需的數(shù) 據(jù)。
另外,艦變換部104也可變mm2^B十?dāng)?shù)器102輸出的艦,來 代,變m^ 1 WB十?dāng)?shù)器101輸出的艦。
另外,在圖17麻的DMAC中,在特或字節(jié)4鍵時(shí)ffliii艦變m發(fā) 送目的地麵改換半字或字節(jié)的排列,但也可以按字單位^#送源 駄 ,鎖存部105中,在 #存部105改換半字或字節(jié)的排列,以字單位寫 入機(jī)目的地存儲器。
雖然參照附圖以鄉(xiāng)例來完翻述了本發(fā)明,但值得注意的是,對于本 領(lǐng)域的fe^人員而言,不同的改變和變更題而易見的。因此,除非這樣的 改變 離了本發(fā)明的范圍,否則認(rèn)為它們被包含在其中。
權(quán)利要求
1.一種數(shù)據(jù)共享裝置,包括數(shù)據(jù)總線,其具有數(shù)據(jù)寬度;存儲器,第一字節(jié)序的處理器,其在邏輯上經(jīng)所述數(shù)據(jù)總線以第一字節(jié)序的字節(jié)順序連接到所述存儲器;第二字節(jié)序的處理器,其在邏輯上經(jīng)所述數(shù)據(jù)總線以第一字節(jié)序的字節(jié)順序連接到所述存儲器;地址變換部,用于當(dāng)所述第二字節(jié)序的處理器進(jìn)行8位數(shù)據(jù)的存儲器存取時(shí),反轉(zhuǎn)從所述第二字節(jié)序的處理器輸出的地址的最低兩位的值,并將包括所反轉(zhuǎn)后的值的地址輸出到所述存儲器;當(dāng)所述第二字節(jié)序的處理器進(jìn)行16位數(shù)據(jù)的存儲器存取時(shí),反轉(zhuǎn)從所述第二字節(jié)序的處理器輸出的地址的次最低位的值,并將包括所反轉(zhuǎn)后的值的地址輸出到所述存儲器;和當(dāng)所述第二字節(jié)序的處理器對具有所述第一數(shù)據(jù)總線的寬度的數(shù)據(jù)進(jìn)行存儲器存取時(shí),將來自所述第二字節(jié)序的處理器的地址輸出到所述存儲器,而不經(jīng)過地址變換,其中,所述存儲器存儲由所述第一字節(jié)序的處理器和所述第二字節(jié)序的處理器存取的結(jié)構(gòu)數(shù)據(jù),所述第一字節(jié)序的處理器執(zhí)行定義所述結(jié)構(gòu)數(shù)據(jù)的第一程序,所述第二字節(jié)序的處理器執(zhí)行第二程序,該第二程序所定義的結(jié)構(gòu)數(shù)據(jù)包括小于基本字長的數(shù)據(jù),該數(shù)據(jù)在所述基本字長內(nèi)以一順序被定義,且該順序與所述第一程序中的順序相反,和所述第一字節(jié)序的處理器讀取或?qū)懭胨鼋Y(jié)構(gòu)數(shù)據(jù)以便與所述第二字節(jié)序的處理器進(jìn)行通信,并且所述第二字節(jié)序的處理器讀取或?qū)懭胨鼋Y(jié)構(gòu)數(shù)據(jù)以便與所述第一字節(jié)序的處理器進(jìn)行通信。
2、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)共享裝置,還包括用于對采用直接 存儲器訪問的數(shù)據(jù)傳送進(jìn)行控制的傳送部,其中,在傳送源和傳送目的地要求數(shù)據(jù)具有不同字節(jié)序、并且待 傳送數(shù)據(jù)的寬度比所述數(shù)據(jù)總線的寬度小的情況下,對于所述傳送源 和所述傳送目的地,所述傳送部將基本字長內(nèi)的所述數(shù)據(jù)的順序逆轉(zhuǎn)。
3、 根據(jù)權(quán)利要求2所述的數(shù)據(jù)共享裝置,其中,所述傳送部包括變換部,用于在傳送源和傳送目的地要求 數(shù)據(jù)具有不同字節(jié)序、并且待傳送數(shù)據(jù)的寬度比所述數(shù)據(jù)總線的寬度 小的情況下,變換所述傳送源或者所述傳送目的地的地址的至少一個 低位比特,以指示所述數(shù)據(jù)總線中所述數(shù)據(jù)的逆轉(zhuǎn)位置,并將所變換 后的地址輸出到所述存儲器。
4、 一種數(shù)據(jù)共享裝置,包括 數(shù)據(jù)總線,其具有數(shù)據(jù)寬度; 存儲器,第一字節(jié)序的處理器,其在邏輯上經(jīng)所述數(shù)據(jù)總線以第一字節(jié)序 的字節(jié)次序連接到所述存儲器;第二字節(jié)序的處理器,其在邏輯上經(jīng)所述數(shù)據(jù)總線以第一字節(jié)序 的字節(jié)次序連接到所述存儲器;地址變換部,用于當(dāng)所述第二字節(jié)序的處理器進(jìn)行8位數(shù)據(jù)的存儲器存取時(shí),反 轉(zhuǎn)從所述第二字節(jié)序的處理器輸出的地址的最低兩位的值,并將包括 所反轉(zhuǎn)后的值的地址輸出到所述存儲器;當(dāng)所述第二字節(jié)序的處理器進(jìn)行16位數(shù)據(jù)的存儲器存取時(shí),反轉(zhuǎn) 從所述第二字節(jié)序的處理器輸出的地址的次最低位的值,并將包括所 反轉(zhuǎn)后的值的地址輸出到所述存儲器;和當(dāng)所述第二字節(jié)序的處理器對具有所述第一數(shù)據(jù)總線的寬度的數(shù) 據(jù)進(jìn)行存儲器存取時(shí),將來自所述第二字節(jié)序的處理器的地址輸出到 所述存儲器,而不經(jīng)過地址變換,高速緩沖存儲器,其在邏輯上以第二字節(jié)序的字節(jié)次序連接到所 述數(shù)據(jù)總線,其中,所述存儲器存儲由所述第一字節(jié)序的處理器和所述第二字 節(jié)序的處理器存取的結(jié)構(gòu)數(shù)據(jù),所述第一字節(jié)序的處理器執(zhí)行定義所述結(jié)構(gòu)數(shù)據(jù)的第一程序,和所述第二字節(jié)序的處理器執(zhí)行第二程序,該第二程序所定義的結(jié) 構(gòu)數(shù)據(jù)包括小于基本字長的數(shù)據(jù),該數(shù)據(jù)在所述基本字長內(nèi)以一順序 被定義,且該順序與所述第一程序中的順序相反,和所述第一字節(jié)序的處理器讀取或?qū)懭胨鼋Y(jié)構(gòu)數(shù)據(jù)以便與所述第 二字節(jié)序的處理器進(jìn)行通信,并且所述第二字節(jié)序的處理器讀取或?qū)?入所述結(jié)構(gòu)數(shù)據(jù)以便與所述第一字節(jié)序的處理器進(jìn)行通信。
5、 根據(jù)權(quán)利要求4所述的數(shù)據(jù)共享裝置,還包括用于對采用直接 存儲器訪問的數(shù)據(jù)傳送進(jìn)行控制的傳送部,其中,在傳送源和傳送目的地要求數(shù)據(jù)具有不同字節(jié)序、并且待 傳送數(shù)據(jù)的寬度比所述數(shù)據(jù)總線的寬度小的情況下,對于所述傳送源 和所述傳送目的地,所述傳送部將基本字長內(nèi)的所述數(shù)據(jù)的順序逆轉(zhuǎn)。
6、 根據(jù)權(quán)利要求5所述的數(shù)據(jù)共享裝置,其中,所述傳送部包括變換部,用于在傳送源和傳送目的地要求 數(shù)據(jù)具有不同字節(jié)序、并且待傳送數(shù)據(jù)的寬度比所述數(shù)據(jù)總線的寬度 小的情況下,變換所述傳送源或者所述傳送目的地的地址的至少一個 低位比特,以指示所述數(shù)據(jù)總線中所述數(shù)據(jù)的逆轉(zhuǎn)位置,并將所變換 后的地址輸出到所述存儲器。
7、 根據(jù)權(quán)利要求4所述的數(shù)據(jù)共享裝置,其中,所述第一字節(jié)序 類型是大端字節(jié)序,而所述第二字節(jié)序類型是小端字節(jié)序。
8、 根據(jù)權(quán)利要求4所述的數(shù)據(jù)共享裝置,其中,所述第一字節(jié)序 類型是小端字節(jié)序,而所述第二字節(jié)序類型是大端字節(jié)序。
9、 一種在數(shù)據(jù)處理裝置中共享數(shù)據(jù)的方法,所述數(shù)據(jù)處理裝置包 括第一字節(jié)序類型的處理器和第二字節(jié)序類型的處理器、以及經(jīng)數(shù)據(jù)總線均以第一字節(jié)序的字節(jié)次序連接這兩個處理器的存儲器,所述方法包括使所述第一處理器執(zhí)行定義結(jié)構(gòu)數(shù)據(jù)的程序,使所述第二處理器 執(zhí)行一程序,該程序所定義的結(jié)構(gòu)數(shù)據(jù)包括小于基本字長的數(shù)據(jù),所 述結(jié)構(gòu)數(shù)據(jù)在所述存儲器中被共享,所述數(shù)據(jù)在所述基本字長內(nèi)以一 順序被定義,且該順序與所述第一字節(jié)序類型的處理器的所述結(jié)構(gòu)數(shù) 據(jù)的定義中的順序相反,使所述第一字節(jié)序的處理器讀取或?qū)懭胨?結(jié)構(gòu)數(shù)據(jù)以便與所述第二字節(jié)序的處理器進(jìn)行通信,并且使所述第二 字節(jié)序的處理器讀取或?qū)懭胨鼋Y(jié)構(gòu)數(shù)據(jù)以便與所述第一字節(jié)序的處 理器進(jìn)行通信;當(dāng)所述第二字節(jié)序的處理器進(jìn)行8位數(shù)據(jù)的存儲器存取時(shí),反 轉(zhuǎn)從所述第二字節(jié)序的處理器輸出的地址的最低兩位的值,并將包括 所反轉(zhuǎn)后的值的地址輸出到所述存儲器;當(dāng)所述第二字節(jié)序的處理器進(jìn)行16位數(shù)據(jù)的存儲器存取時(shí),反轉(zhuǎn) 從所述第二字節(jié)序的處理器輸出的地址的次最低位的值,并將包括所 反轉(zhuǎn)后的值的地址輸出到所述存儲器;和當(dāng)所述第二字節(jié)序的處理器對具有所述第一數(shù)據(jù)總線的寬度的數(shù) 據(jù)進(jìn)行存儲器存取時(shí),將來自所述第二字節(jié)序的處理器的地址輸出到 所述存儲器,而不經(jīng)過地址變換。
10、 根據(jù)權(quán)利要求9所述的方法,其中,所述第一字節(jié)序類型是 大端字節(jié)序,而所述第二字節(jié)序類型是小端字節(jié)序。
11、 根據(jù)權(quán)利要求9所述的方法,其中,所述第一字節(jié)序類型是 小端字節(jié)序,而所述第二字節(jié)序類型是大端字節(jié)序。
全文摘要
本發(fā)明提供一種在將大端字節(jié)序處理器與小端字節(jié)序處理器連接于總線上的情況下、由極簡單的結(jié)構(gòu)實(shí)現(xiàn)存儲器數(shù)據(jù)共享的處理器及存儲器共享裝置。字節(jié)序不同的第1處理器(10)和第2處理器(20)均按第1處理器10的字節(jié)序的字節(jié)次序,經(jīng)數(shù)據(jù)總線連接于所述存儲器。地址變換部(21)在第2處理器(20)對幅度比數(shù)據(jù)總線小的數(shù)據(jù)訪問共享存儲器的情況下,變換地址的下位比特,以指向使數(shù)據(jù)總線中的相應(yīng)數(shù)據(jù)位置逆轉(zhuǎn)的位置,并輸出到所述存儲器。
文檔編號G06F12/02GK101373461SQ200810161018
公開日2009年2月25日 申請日期2004年3月18日 優(yōu)先權(quán)日2003年3月19日
發(fā)明者井川智, 永安勝, 舟橋和年 申請人:松下電器產(chǎn)業(yè)株式會社