字节序不同的处理器间共享数据的数据共享装置和处理器的制作方法

文档序号:6466843阅读:158来源:国知局
专利名称:字节序不同的处理器间共享数据的数据共享装置和处理器的制作方法
技术领域
本发明涉及一种具有彼此不同的字节序(endian)的两个处理點存储 器的 共享^*和其处理器,尤其是涉及处理器间的 共享。
背景技术
在处理器的基本字长为2字节(16比特)以上的情况下,作为将2字节以 上的 存储在存储器中的字节1,,有附胃大端字节序(big endian)与 小端字节序(little endian)等两种方式。存储,字节#>位分1^ :是因为 基本字长为2字节以上。
首先说明大端字节序。
戶刑胃大端字节序是在具有字节单位的iMh的存储器中存储2字节以上数 据时的字节列的排列顺序(字节7娘)方式,指大端(big end)(即MSB (Most Significant Bit)顶lj。此时,B不是Bit,应是Byte)的字节开始按存储器的 i舰升序存储的方式。但是,字节序不是比特列的排柳l,,而是字节列的 排列)l,,字节内的比特的排列l,不变。
图i表示大端字节序的说明图。如图戶;f^,例如在以大端字节序将4字
节繊"89ABCDEF" (16进制数,下面的""内也一样)存储ttfet 100-103 地址号码的存储器区域中的情况下,按100-103地址号码的顺序,存储为 "89"、 "AB"、 "CD"、 "EF"。
图2虽是与图1相同的实例,但^^将32比特作为基本字长时的存储图 像(存储器織)。存储器龇是字节单位,在基本字长中,下^feW(由龇 下位2比線址的字节^fi)脏开鄉,升序为"0"、 "1"、 "2"、 "3"。将 赴位字节"89"存储在0舰号码中。
这样,M:大^节序,从MSB侧的字节开始按ttfc^序地存储在存储 器中。 图3表^^接大端字节序CPU2与存储器3b的一般结构。另外,本说明 书中将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开始按存储器的舰升序存储字节,。另外,在该图的存储 器3b中,该图的结构例(structure saraple)4表示由CPU2内的程序定义时 的存储图像。LONG INTEGER w;ig本字长(32比特)的字,,从MSB开始顺 序由w3、 w2、 wl、 w0等4个字节构成。SHORT INTEGER x是半字的数据,从 MSB开始l酵由xl、 xO构成。SHORT INTEGER y也一样。CHAR a、 b、 c、 d 分别是字节繊。
下面说明小端字节序。
戶刑胃小端字节序是指从小端部(big end)(即LSB (Least Significant Bit)
侧)的字节开始按存储器的ilk^序存储的方式。
图4标小端字节序的说明图。该图是与图1相同的 ^, 32比特数 据"89ABCDEF"按100-103舰号码的jl,,存储为"EF"、 "CD"、 "AB"、 "89"。
图5表示对与图4相同的实例将32比特设为基本字长的存储图像 (memory image)。与图2相比,下位itt的排列相反,从右开始li^变为"0"、
"1,, "2,, "3,,
图6 ^i接小端字节序CPU1与存储器3a的一般结构。如图戶^, CPU1 的f^I入输出端子D [7: 0]、 D [15: 8]、 D [23: 16]、 D [31: 24]分别 M3i娜总线连接于存储器3a的下位舰0、 1、 2、 3上。由此,从LSB的 字节开始按存储器的i舰升序存储字节娜。另外,在该图的存储器3a中, 与图3相同的结构例(structure sanple)4 ,由CPU1内的程序定义时的存 储图像。与图3的存储图像相比,字节列相反。
这样,大端字节序、小端字节序是将2字节以上的 存储在存储器中 时的字节列的7娇方式,"i^相反。
因为这种差异,所以在大端字节序CPU与小端字节序CPU混合存在的系 统中,为了确麟享 的同样性,需魏变^^节序的差异的结构。
7
专利文献l公开了一种具^节伊变换部的信息^il信装置,当在大端 字节序CPU与小端字节序CPU之间^S行信息^I信时,在大端字节序处理器 中糊言息包上的 变换到小端字节序。
另外,专利文献2中公开了一种繊匹配(data align)體,M3im据 访问地址和访问尺寸变换存储数据,吸i^据的尺寸/匹E/字节J^异,进 行存储器访问。
专利文献l:特肝06~69978
专利文献2:特开2000-3304
但是,在专利 1、 2公开的技术中,必需向具特节伊变换部的处理 器附加赚的硬件。另外,因为字节伊变换引起鹏,所以妨碍存储器访问 的高速化,在共^^储器数据的情况下,成为对其它存储旨取的高速化的 障碍。
另外,通常通信由小端字节序的处理^bSL图像处理由大端字节序的 处理器处理。近年来,便携电话具有了图像处理功能,小端字节序处理點 大端字节序处理器可雜于同一总线上。另外,需要能实时共享繊。

发明内容
本发明的目的在于JI^一种在将大端字节序处理器与小端字节序处理器 连接于总线上的情况下、由极简单的结构实现存储器 共享的处理器及存 储麟享錢。
为了实!Lh^目的,本发明的处理器,^i^总线连接于存储器上,其 特征在于具备》1:变,置,^tf萬度比数据总线小的f^访问存储器的 情况下,变换地址的下位比特,以便指向^ 总线中的对,据的^ ^ 转的隨,并输出到戶;f^存储器,连接于戶脱翻总线,以便按与对应处理 器的字节序相反的字节序的字节 ,,与所述存储器之间传送 。
臓该结构,就巾驢与繊总對胴的 而言,第1处理器和第2处 理器都以相同的字节^^访问存储器,所以可以极简单的结构来实现幅度与 翻总細同的M共享。另外,处理llffl31i也ih^换驢,可就幅度比数 据总线小的 访问存储器。并且,因为可由基于《变换装置的简单硬件
构成,所以不构鹏储器访问高速化的妨碍。
这里,觀构成为对于字节序与戶腿处理器(第l处理器)不同的其它 处理器(第2处理器)之间M0M存储默享的结构,,对于在戶脱其它 处理器中执行的勒芋中的戶脱结构数据的定义,所述处理器执行在基本字长 内由相反7娇定义的比基本字长小的 的禾骄。
根据该结构,在第1处理器与第2处理器之间,即iM巾破比数据总线 小的繊也可经存储器来共享繊。例如,在M总线幅度为32比特(4字 节)的情况下,由于具备i舰变换驢,織1处理器见到的存储器的0 i龇 号码与織2处理器见到的存储器的3 i舰号码指向相同的存储器区域洞 样,維1处理器JSJ啲存储器的1、 2、 3 i舰号码^A^ 2处理器见至啲 存储器的2、 1、 0Jffl:号码)。并且,在第1处理器将结构,定义为由B0、 Bl、 B2、 B3等4字节构成的情况下,第2处理 结构 定义为由B3、 B2、 Bl、 B0等4字节构成。针对定义为B0的字节繊B0,第1处理器访问0地 址号码,第2处理器访问3 i舰号码。由此,不仅在幅度与繊总线幅度相 同的l^访问的情况下,即^&幅度小的 访问的情况下,也可共享 。
并且,最好臓鹏器还具織臓处理器的字节序的字节辦连接于 f[^总线上的高速缓冲存储器,所述处理器按幅度与1^总线相同的 单 位将繊MM存储器读入到高速缓冲存储器中。
1t据该结构,因为将幅度与 总线相同的 从存储器读入到高速缓 冲存储器,所以可以极简单的结构来高速缓冲字节序不同的处理器的数据。 JJ:I^卜,高速缓冲访问不需要i&W:变换,并且无论)|#^个 在共^#储
器中还^^S在高速缓冲存储器中,处理miWM:相同的访问动作来访问娜。
另外,本发明的M共享體是具有字节序舰不同的第1处理器麟 2处理器、与存储器的 共享^2,,征在于第1处理器皿2处理
M按第i处理器的字节序的字节 ,,经 总线^^接于戶; ^存1^:^上。
该结构,就幅度与 总线相同的 而言,第1处理器和第2处 理器都以相同的字节^^访问存储器,所以可以极简单的结构来实11^
据的共享。
这里,臓,共享體最好还具备舰变换體,在第2处理蹄储 器访问幅度比数据总线小的数据的情况下,变换地址的下位比特,以指向使
总线中的对应 的^^转的皿,并输出到戶; ^^储器。
根据该结构,il3ittt变换装置,第2处理器可就幅度比数据总线小的
,访问存储器。
这里,1^;M储旨储,1处理器,2处理器访问的结构,,
臓第i处理翻亍定,; ^构,的第i辦,戶; ^ 2处理微行第 2程序,该第2程序M:在基本字长内对戶;f^结构数据以与第i程序相反的
^^来定义幅度比基本字长小的 。
根据该结构,^E^1处理器与第2处理器之间,不,幅度与 总线
相同的 ,即,幅度比 总线小的 ,也可经存储器来共享 。 另外,可在字节序不同的处理器之间共享未高速缓冲的繊(未存储在高速缓 冲存储器中的 )。
这里,^Mi^共享,还具^^制基于直接存储器访问(DMA)的 传 送的传,置,所述传i^S在需^节序在传送源与传送目的地不同的数
据,并且传送幅度比娜总线小的,盼膚况下,在传送源与传送目的地使 基本字长内的对应娜的JI,逆转。
根据该结构,可在字节序不同的传送源与传送目的ifct间a^各自必需 的繊排列",后进行DMM键。另外,鹏^ll^传送目的地也可舰特 单做字节单位的访问来利用繊。
这里,臓传itmir錢换部,在需群节序在传送源与储目的地 不同的 ,并且^t幅度比i^总线小的f^的情况下,变衡^源及传 送目的地之一的地址的下位比特,以便指向^^据总线中的对应 的, 逆转的,,并输出到MI存储器。
根据该结构,变换部仅变^W:的下微比特,所以可MOT简单的结 构来实现。
,具 第2 ,器的字节序的字节7^^连接于 总线上的高速缓冲存储器。
根据该结构,就幅度与繊总线相同的娜而言,将娜从存储器读入 高速缓冲存储器,所以可由极简单的结构来高速缓冲字节序不同的第1处理 器的数据。
另外,本发明的 共享方,与, 共享,一样。
如上所述,根据本发明的 处理装置,(A)通过将大端字节序的第2 处理器按与小端字节序的第1处理器相同的字节次序连接于共享存储器上 (参照图7的总线纖点42、 43),小端字节序的第1处理器与大端字节序的 第2处理器可MJl字单位访问共?^储器30来共享繊。Ith^卜,可以按字单
皿共,储器高速缓冲到大端字节序处理器的高速缓冲存储器中。
另外,除(A)外,舰(B)舰变换,第2鹏器未必會gffi31半字单做 字节单位的访问来共享 ,但可访问小端字节序用的存储器。
并且,除(A)、 (B)外,(C)通过在第l处理器与第2处理器中,就应用程 序内的结构定义,在基本字长内辦定义比基本字长小的变量,不仅小端字 节序的第1处理器与大端字节序的第2处理器中可以按字单位访问共^ 储 器,也可以按特单mi字节单^^共享繊。
并且,除(A)、 (B)外,(D)在腿传送时,MMit行与(B)相同的ilfcK 换,DMA传送字节序不同的繊,可在传送源与传送目的鹏行基于特单 ^&字节单位的访问的 共享。


参照说明本发明Ht定^li例的附图,本发明的JlM和其它目的、优点、 和特征将从下 述中变1,楚。其中, 图l表示大端字节序的说明图。 图2表示大端字节序的说明图。 图3 ^^接; 字节序CPU与存储器的一般结构。 图4 ,小端字节序的说明图。 图5g小端字节序的说明图。 图6 ^小端字节序CPU与存储器的一般结构。
图7是,实施方式1中 处理,的结构框图。
图8是^^基于JMh变换部21的iMh变换的输入输出逻辑的说明图。
图9是第1处理器10和第2处理器20以字访问共:?#储器30时的说明图。
图10中,图10A是第1处理器10和第2鹏器20在相同舰以半字访 问共 储器30时的说明图。
图10B是第1处理器10和第2处理器20在不同itt以相同肖访问共 M储器30时的说明图。
图11中,图11A是第1处理器10和第2处理器20在相同Jtt以字节数 据访问共^储器30时的说明图。
图11B 1处理器10和第2处理器20在不同地吐以相同字节im访 问共^ 储器30时的说明图。
图12是表示共 储器30和高速缓冲存储器23的存储图像的图。
图13 M31^构定JDI6a行半字单位、字节单位的 共享的说明图。
图14是te^构的其它定义例的图。
图15是^^将源,中的结构定义变为,的^S^作为编i f页处理 的图。
图16是表示本发明鄉方式2的鹏处 的结构框图。 图17是^DMAC32的详细结构框图。
图18是表示基于JfeW:变换部104的JM:^换的辅T入输出逻辑的说明图。 图19A是表示基于DMAC32的離4键的状态的时间图的U。 图19B是 ^#^源存储器与传送目的地存储器的存储图像的图。 具体实船式 (織方式1)
图7是表示本 ^式中的繊处^§的结构框图。如图戶标, 处理體具备第1处理器10、第2处理器20、共辩储器30、 i龇变换部 21、高速缓冲存储器23,这鄉件经繊总线(图中的D总衝连接。
处 5皿:(A)以与小端字节序的第1处理器相同的字节 ^j^将 大端字节序的第2处理器20连接于共^#储器30、 (B)第2处理器20的地 址变换、(C)第l处理器lO、第2处理器20各自的结构的定义方法这3点, 以极简单的结构来实现基于存储器的数据共享。(A)及(B)是硬件结构,(C) 是软件结构。
<A总线连接〉
图7中,共辩储器30及高速缓冲存储器23中的3、 2、 1、 O标由下 位地址(这里为iiktlJ:的下位2比特)寻址的字节皿。
第1处理器10是小端字节序处理器,经总线连接点41、 42连接于共享 存f诸器30。 i^i接与小端字节序处理器的一般存储器连接方法(参照图6)相 同,第l处理器10按小端字节序的字节7^m连接于共?^储器30。即,第l 处理器10中Wtl入输出端子的小端部D [7: 0]连接于共^#储器30的0 地址号码,按存储器^舰升序!从小端部开始存储字节列。
第2处理器20是大端字节序处理器,m总线连接点43、 42雜于共 辩储器30。该连接涉^SJl^(A)。即,该连接方法不是大端字节序处理器 的一般存储器连接方法(参照图3),而是与小端字节序处理器的一般存储器 连接方法(参照图6)相同。i^i接中,第2处理器20的 1|入输出軒不 题大端部,而题小端部的字节D [7: 0]开始按共辩储器30的it^ 序连接。换言之,舰总线雜点43、 42,将第2处理器20的字节 娇从 大端字节序改胁J、端字节序。
根据iM接,第1 ^i^器10与第2处理器20可fflM^共^储器30 的32比特娜(下面称为字)的访问来共享繊。另外,可以32比特单位将 繊力媒^#储器32高速缓冲(读入)到高速缓冲存储器23。其中,基于16 比特 (称为半字)、8比特 (字节)的访问的 共享只皿^^接不 能实现。可结合,(B)、 (C)来实现。
共辩储器30中第l处理器的i^r入输出端子D [31: 32]、 D [24: 16]、 D [15: 8]、 D [7: 0]对应于作为下^Jtt(舰的下位2比特(A1、 AO)) 所指的字节^g的3、 2、 1、 0皿号码。
<B舰变换〉
地址变换部21变,2处理器20的下m^输出到共^ 储器30。 该舰变,^SJ^(B),对于作为比基本字长的32比特小的繊,变换下 位地吐,以指向使基本字长内的相应I^^S^转的位置。
图8是表示基于舰变换部21的舰变换的输入输出逻辑图。对舰变 换部21的输入是[访问尺寸]、[变换前地址],都M2处理器20输入。访 问尺寸表示字i方问、半字访问、字节访问之一。变换前itt^Uitth总线最 下位开始的2比特、即A1、 AO。
土"& 换部21的输出是变换后地址。变换后itt如图戶标,iMh变换部 21在字访问的情况下,原样输出A1、 AO(即无变銜。在半字访问的情况下, 仅反转A1,而原样输出AO。在字节访问的情况下,将A1与AO都反转后输出。 这里,就字访问、特访问而言,第2处理器20不访问,匹配的 0
图9是第2处理器20访问字时的说明图。第2处理器20以字单^^访 问时,可与第1处理器10共享共辩储器30的,。此时,地址变换部21 不进^itt变换。
图10A魏2处理器20访问半字时的说明图。在半字访问中,舰变换 部21将娥前的下^Mh0iMh号码(Al、 A(M)、 0)变换为下^tt: 2 ■ 号码(l、 0),另外,将下位舰2i龇号码(Al、 A0=1、 O)变换为下位衄O i龇号码(O、 0)。如图麻,若第2处理器20执行将特"89AB"存储到存 储器的0 ifefat号码中的指令(movhw ft89ABh, mem(O)),则如存储图像(存储器 娜)4b那样,将"89AB"存储到2舰号码与3舰号码中。相反,若第1 处理器10执行同样的指令,贝咖存储图像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字节访问时的说明图。在字节访问中,舰变换 部21将例如变换前的下位Jtt 0 JM:号码(A1、 A(M)、 0) 为 3 ■ 号码(l、 1),如图戶标,若第2处理器20执行)lt^节"89"存储到存储器的
O地址号码中的指令(movhw tt89h,mem(0)),则如存储图像(memory image) 5b那样,将"89"存储到3 i舰号码中。相反,若第1处理器10执行同样 的指令,贝咖存储图像5a另峭,将"89"存储到0舰号码中。
这样,在字节访问中,第2处理器20M31iMt变换部21将下位WhO itt号砂变换为3 Jtt号码,将1 1:号 换为2 Jtt:号码,将2 itt号 码变换为l地址号码,将3舰号砂变换为0 Jtt:号码。艮P,在字节访问中, 絲1鹏器10鄉啲共韩储器30的下位地址的0、 1、 2、 3i舰号码是 从第2处理器20见到的共^ 储器30的下位iMh 3、 2、 1 、 0 号码。
但是,即使^LM(A)中加入(B)的ilMlt变换,第2处理器20也不能实现 经共^ 储器30与第1处理器10之间以半字单位和字节单麟享繊。(B) 的地址变换^2处理器20伴随基于(A)的字节7,的6^、以肖和字节 来访问上有意义。
艮P,若不具备iMh变换部21,则尽管第2处理器20能以字单位访问共 韩储器30,但不能以特和字节单^^访问。例如,在图10A的实例中, 共辩储器30的0、 1 ttt号码如存储图像4a那样,是字的下位侧(图的右 働特,f碟2处理器20向0、 1舰号码、即字的上位侧的^^输出"89AB"。 在该状态下,若假定不进行舰变糊将0舰号码指定给共辩储器30, 则会在共^ 储器30中未输入"89AB"的下位侧半字(O、 1 Jtt号码)中写 入总线上的无$ ^。
这样,(B)的iitot变换在消除由(A)的字节7,改换产生的半字、字节访 问的缺陷上有意义。另外,因为iM:变换部21可由简单组合的鹏实现,所 以可忽视变换弓l起的下^iife^ir出的5iiS。
另外,就半字、字节而言,如图10A、图11A戶标,絲1处理器10见 到的地址与絲2处理器20见到的i舰不一致,所以可以认为不能共享半字 单位、字节单位的繊。针对该不一致,例如图IOB、图IIB戶标,第1处 理器10和第2处理器20若对半字及字节的共享i^直銜旨定不一致的皿, 则不仅字单位、即皿半字单位和字节单位也可共享。在本 方式中,由 ,(C)来实J皿点。
高速缓冲存储器23经总线驗点44、 M3i—般的大端字节序处理器与 存储器的连接方法(参照图3)与第2处理器20相雜。图7中,高速缓冲存 储器23配备在第2处理器20外部,但也可錢2处理器20内部。高速缓冲 存储器23可以按字单M调整缓冲共^储器30的 。这 于,") 的改换字节辦的織。
图12是表示共^ 储器30和高速缓冲存储器23的存储图像的图。高速 缓冲存储器23 M;以字单皿共^储器30高速缓冲 ,去除共 储 器30与下傲舰的7娇不同的点,麟相同的存储图像。但是,高速缓冲存 储器23以半字单位、字节单^A共^储器30进行高速缓冲不能仅由, (A)的连接来实现。
<C结构定义〉
图13 ^M:结构定义(,(c))5l6a行肖单位、字节单位的 共享
的说明图。图中,根据结构10b那样定义的^j^^ 1处理器10执行的 第1禾骄10a。另外,鹏结构20b另辭定义的^gj^4^ 2处理器20执 行的第2 ,號20a。结构20b定义与结构10b —样的錢,但在基本字长的 范围内辦定义比基本字长小的M的)I,。
例如,就16比^M^的变量x, y而言,在结构10b中,定义为[SHORT INTEGER y, x;],在结构20b中,,定义为[SHORT INTEGER x, y;]。另 夕卜,就字符型錢a、 b、 c、 d而言,在结构10b中,定义为[謹d、 c、 b、 a;],在结构20b中,,定义为[CHAR a、 b、 c、 d;]。这些结构由^j^ i战,或由编,,iM。
由此,iM在结构的定义中鹏,可允许图10A、图11A戶际的半字和 字节访问中的Jtt的不一致。艮口,如图10B、图llB戶;f^, gl^l器10 和第2处理 字及字节访问应共享的相同 的情况下,可指向不一致的 i舰。
如图13戶标,由结构10b定义的共^#储器30的存储图像与由结构20b 定义的存储图像一致。但是,,2处理器20见至啲特、字节的下^h 与第1处理器10 ",相反(不一節。例如,就变量a而言,从第1处理器 10看是存储在下傲龇3舰号码中,錢2处理器20内部为下位舰0
地址号码。由此,即^M;字节访问也可共享z遞a。
另外,My膽l处理器10看是存储在下位i舰0、 l舰号码中, 在第2处理器20内部为下^Jtt 2、 3舰号码。由此,即使舰半字访问 也可共享变量y。
另外,即使在高速缓冲存储器23中,若是定义为应共享的结构的繊, 则不仅字单位、即使是半字单位和字节单位也可高速缓冲。
图14是表示结构的其它定义例的图。图中,^麟1处理器10用的结构 10c而言,M:没有最后的码的8比伶遞[隱b2;]的定义,在基本字 长内余8比特。因此,在结构20c中,插入比特做与余数相同的空(dummy) 字节数据[CHAR bDunimyO;]。由此,在结构20c中,还包含8比特的余ifcfcfe 在基本字长内,定义。
图15是g将源超字中的结构定义^J逝竽的处S^作为编iffl处理 的图。
如图所示,预处理部100输入第1处理器10用的第1源禾歸与第2处理 器20用的第2源程序,检测二者中的应共享的结构(Sll),改换变量的顺序, 使一个源禾將中的基本字长内的CTl,与另一源禾i^中的^i的JI,相反 (S12)。此时,必要日彌入图14戶标的空字节娜或空特。之后,由各自 的编#^译两个^^。
由此,编码者不必模个考虑应共享结构,的wmii程,只要仅4赃
共享的^S名一致即可,所以可减小编程者的负担。
如Jl^M,根据本 方式的 ^!^,, (A)ffl3i将大端字节序的第 2处理器20按与小端字节序的第1处理器10相同的字节7:W,于共^ 储器30上(参照图7的总线驗点42、 43),小齢节序的第1 ^bS器10与 ,字节序的第2 M器20可M31字单位访问共,储器30来共享 。 鈔卜,可以按字单皿小端字节序的共^储器30高速缓冲至IJ大端字节序处
理器的高ii缓冲存储器中。
另外,除(A)外,舰(B)iMh变换部21,第2处理器20未必會^13i半
字单皿字节单位的访问来共享 ,但可访问小端字节序用的存储器。例
如,对于由小端字节序连接的第i处理器io与共辩储器30,可ii^:将小
端字节序的第2处理器20成为(A) (B)的简单结构,作为第2处理器20的存 储器来访问。
并且,除(A)、 (B)夕卜,(C)fflil在第l处理器10与第2处理器20中,就 结构定义,在基本字长内辦定义比基本字长小的體,不仅小端字节序的 第1处理器10与大端字节序的第2处理器20中可以按字单位访问共 储 器30,也可以按半字单皿字节单^*共享 。
另外,战实施方式中,说明第1鹏器10为小端字节序、第2处理器 20为大端字节序时的结构,但也可为相反的字节序。此时,从两个处理器开 始,作为大端字节iW^,^储器30, ^i:变换部21可以是变换小端 字节序处理器的舰的结构。
另外,在战实施方式中,第1处理器10和第2处理器20将32比特设 为基本字长,但也可以是64比特或128比特等其它的鉢字长。此时,Jtt 变换部21可以是变换^^基本字长内部的字节健的下位i舰的结构。
(实施方式2)
^J^織方式中,,mM51i^(A) (B)来存储在共辩储器30中的 而言,MJl^(C)来解决^A^ 1鹏器10看时和綠2处理器20看时在 半字地,字节地址中产生一致的情况。在本实施方式中,说明不M(C) 而由DMA传送来解决该不一致的结构。
图16是^^本发明实施方式2的,处^fi的结构框图。该图的, 处理,与图7相比,不同之处在于ffiiJ口了 SDRAM (Synchronous Dynamic Random Access Memory) 31、 DMAC (Direct Memory Access Controller) 32、 I/O (Input/Output device) 33、 1/034。对于与图7相同的结构要素附加相同 符号,所以省略说明,主要说明不同之处。
本数据处理装置配备在DVD记录器或数字播放接收机等AV (Audio Visual)设备中。此时,第2处理器20进行基于MPEG (Moving Picture Expert
Group)的] 动态图像 的解码^^,图像处理,第1处理器10进行图 像处理皿整体的控制。共^#储器30用于第1处理器10与第2处理器20 之间的各禾中 的#^。
SDRAM31由第1处理器10和第2处理器20用作作业存储器,■, MPEG压縮动态图像的流I^、解码中的图象、解码后的参照图象、解码后的 视频繊等。
DMAC32在DMA传送时,传送源繊与储目的地繊是不同字节序的数 据,在^^l繊尺寸比字小的情况下,进行改^^节7娘的《1:变换。另外, DMA传送在存储l存储器之间和存储器"I/0之间进行。这里,存储器是共享 存储器30和SD麵31, I/O是1/033、 1/034等。
1/033 、 34分别是8比特、16比特的I/0器件,例如,是将解码后的图 象 作为串行挪频 11出的视频输出部、输入解码后的视/频 ^#为 声音信号输出的音频输出部等。
图17是标DMAC32的详细结构框图。如图戶标,纖C32具备第1舰 计数器101、第2;fcfebB十数器102、终^i十数器103、 1贞存部105和控制 部106。
第1 Jtti十数器101、第2 Whi十数器102分别^#送源、传送目的 iikJ :,并在針微时进行正计数或倒计数。两个^B十数器同传送源与 传送目的地的对应也可相反。
终^i十数器103在计数誠ffi^M键时传送的繊数量时,通知控制 部106并使DMA传,束。
舰变换部104在传送源,与传送目的地繊之间、或1/033、 34与 存储器 之间字节序不同且#^ 尺寸比字小的情况下,为了在传送源 与传送目的地使基本字长内的对应 的)1^辦,变m^lifeiB十数器 101输出的传送源A(键目的ifeitt:。
这里,附胃[字节序不同]慰旨访问^^源 与#^目的地 不同 的字节序的处理器,翻于字节序不同的处理器和I/O。例如,是由第2处 理器20加^/存储#^1源 、由第1处理器10力口t/存衞键目的W^
的情况,或由第2鹏器20存储传送源繊、传送目的地^USB侧jl,请 求字节 的I/O的情况等。
另外,因为由第2处理器加载存储的 以小端字节序存储在存储器中, 所以字单位的腿"^RM:基于ife^变换部104的ity:变换而原样进行DMA 变换。但是,比字小的半字单位、字节单位的DMA如图IOA、图11A戶标, 从第1处理器10 lli啲舰与歸2 ^fcS器20见到的舰不一致。因此, 地址变换部104在fl^源与4键目的ityi、需不同字节序的織的情况下,为 了更正#单位和字节单位的 的不一致而变换^。
图18是表示基于itt^换部104的iikfeh^^的输入输出il辑的说明图。 向地址变换部104的输入是[字节序][访问尺寸][变换前M:]。[字节序] MS制部106输入, ^专送源繊与4錢目的地織是相同字节序还是不 同字节序。更正确地,是表翁方问传送源繊的处理器与访问传送目的地数 据的处理器是相同字节序还是不同字节序。另外,传送源、传送目的te—
是i/o,在该i/o必需的传送舰的字节 娘(或半字的 ^m是小端字节序
的情况下,若访问^it源/传送目的地繊的处理器是第1处理器IO,贝俘 节序相同,若是第2 ^bS器20,贝俘节序不同。[访问尺寸]^^制部106 输入,J标字、特、字节之一。[变换前舰]^iA^ 1 itoB十数器101输 入的地址的下位2比特。
如[变^iMh]戶B, iiktt^换部104在字节序相同的情况下,无论 是判专送、半對专凝是字节储,都原样输出(不娜变换前龇。另外, 即使字节序不同,但是割专送的情况下,也原样输出(不变銜变换前《。 在字节序不同、为^f专送的情况下,贩转A1后输出。在字节序不同、为 字节传送盼瞎况下,反转A1、 AO的两比特后输出。
这样,图18中的字节序不同时的输入输出逻辑与图8戶^的itt变换部 21的^A输出逻掛目同,fMS要的^M^h变换部21对第2处理器20的 特itt^字节舰与第1鹏器10不一舰行鄉,MIE不一致。
f[^l贞存部(latch) 105在存储l存储器间的DMA條送中暂时^^ff专
控制部106在内部具有第1 ^S器10麟2处理器20可访问的控制寄 存器,臓控制寄存器的设定内容^S制DMAC32辦。控制寄存器^f专送 源和传送目的地的开始地址(1/0的情况下为其地址^AS制部106输出的 I/O选择信号的指定)、4键繊尺寸、传送源和传送目的地的字节序(访问 第1处理器10的 或访问第2处理器20的 )等。
图19A是表示基于DMAC32的DMA传送的状态的时间图的l!1。图中,源 存储器(传送源存储器)例如是DSRAM31 ,目的存储器(传送目的地存储器)是 共,储器30。
^将SDRAM31的100地址号码以后由第2处理,储的一 定量的 DMA传^i拱^ 储器30的900 itt号码以后的情况的实例。另 夕卜,SA表示鮮1 i1kiB十数器101 ^ifey:变换部104输出的Mifefefc, SD表示 从传送源存储器读出的半字的源 , DA表示基于第2Jtti十数器102的目 的地址,DD,写入传送目的地存储器的肖的目的im。
此时,第1 itti十数器101将腦i舰号蹄乍为开^itt,每次增加2, 第2地&i十数器102将900 Mh号码作为开始地址,每次增加2。
1^换 部104在字节序不同的半字DMA传送中仅反转A1。结果,输出到舰总线的 源舰SA 102、 100、 106、 104、…,目的舰DA输出为900、 902、 904、 906、...。由此,从小端部的特开始传送^^源繊。
图19B是,基于19A的薩4键的^t源存储^^键目的地存储器 的存储图像的图。如图戶标,糊t^源存储器的下^WJ: 0舰号码的半字 传送到传送目的地存储器的下位itt 2 itt:号码,将2 Jtt号码的^f送 到0地址号码。
由此,由大端字节序的第2处理器20存储的4雜源麵在经DMA^^后, 在传送目的地存储器中可以以半字单位由第1处理器进行访问。这样,DMAC32 更正图IOA、图11A所示的Jtt:不一致,进行DMA街逸。可由第1处理器10 以特单位形舰不一敏也访问传送后的 。另外,若传送目的地的900 iMfc号码为1/034,则可MaDMM^USBjli^H^字。图19中,示出 半字的DMA传送,但字节传送的情况也一样。
另外,在存储H/0之间的DMA传送的情况下,因为控制部106向I/0
直接输出芯片i^择信号,所以不经imi负存部105,而将从存储:^读出的数 据直接域反方向)传送到I/O。此时,例如也可以字节单位或半字单位将大
端字节序的第2处理器20存储的i^从小端部传超lj I/O。字节序相反盼瞎 况也一样。
如上戶腿,根据本实施方式的 处理,,即使M定义为上述(C) 结构数据的数据,由于在DMA传送时由iMh变换部104更正由上述(A) (B)产 生的半字地feLS字节地址的不一致,所以传送后的 可通过半字或字节单 位的访问由其它处理器正确读出。另外,存储H/0之间的DMM锁也一样, 可由地AI^换部104更正半字itt和字节地址的不一致。I/O LSB侧需 要,的情况和从MSB侧需要,的情况下自a3iDMAC32来传送必需的数 据。
另外,舰变换部104也可变mm2^B十数器102输出的舰,来 代,变m^ 1 WB十数器101输出的舰。
另外,在图17麻的DMAC中,在特或字节4键时ffliii舰变m发 送目的地麵改换半字或字节的排列,但也可以按字单位^#送源 駄 ,锁存部105中,在 #存部105改换半字或字节的排列,以字单位写 入機目的地存储器。
虽然参照附图以鄉例来完翻述了本发明,但值得注意的是,对于本 领域的fe^人员而言,不同的改变和变更题而易见的。因此,除非这样的 改变 离了本发明的范围,否则认为它们被包含在其中。
权利要求
1.一种数据共享装置,包括数据总线,其具有数据宽度;存储器,第一字节序的处理器,其在逻辑上经所述数据总线以第一字节序的字节顺序连接到所述存储器;第二字节序的处理器,其在逻辑上经所述数据总线以第一字节序的字节顺序连接到所述存储器;地址变换部,用于当所述第二字节序的处理器进行8位数据的存储器存取时,反转从所述第二字节序的处理器输出的地址的最低两位的值,并将包括所反转后的值的地址输出到所述存储器;当所述第二字节序的处理器进行16位数据的存储器存取时,反转从所述第二字节序的处理器输出的地址的次最低位的值,并将包括所反转后的值的地址输出到所述存储器;和当所述第二字节序的处理器对具有所述第一数据总线的宽度的数据进行存储器存取时,将来自所述第二字节序的处理器的地址输出到所述存储器,而不经过地址变换,其中,所述存储器存储由所述第一字节序的处理器和所述第二字节序的处理器存取的结构数据,所述第一字节序的处理器执行定义所述结构数据的第一程序,所述第二字节序的处理器执行第二程序,该第二程序所定义的结构数据包括小于基本字长的数据,该数据在所述基本字长内以一顺序被定义,且该顺序与所述第一程序中的顺序相反,和所述第一字节序的处理器读取或写入所述结构数据以便与所述第二字节序的处理器进行通信,并且所述第二字节序的处理器读取或写入所述结构数据以便与所述第一字节序的处理器进行通信。
2、 根据权利要求1所述的数据共享装置,还包括用于对采用直接 存储器访问的数据传送进行控制的传送部,其中,在传送源和传送目的地要求数据具有不同字节序、并且待 传送数据的宽度比所述数据总线的宽度小的情况下,对于所述传送源 和所述传送目的地,所述传送部将基本字长内的所述数据的顺序逆转。
3、 根据权利要求2所述的数据共享装置,其中,所述传送部包括变换部,用于在传送源和传送目的地要求 数据具有不同字节序、并且待传送数据的宽度比所述数据总线的宽度 小的情况下,变换所述传送源或者所述传送目的地的地址的至少一个 低位比特,以指示所述数据总线中所述数据的逆转位置,并将所变换 后的地址输出到所述存储器。
4、 一种数据共享装置,包括 数据总线,其具有数据宽度; 存储器,第一字节序的处理器,其在逻辑上经所述数据总线以第一字节序 的字节次序连接到所述存储器;第二字节序的处理器,其在逻辑上经所述数据总线以第一字节序 的字节次序连接到所述存储器;地址变换部,用于当所述第二字节序的处理器进行8位数据的存储器存取时,反 转从所述第二字节序的处理器输出的地址的最低两位的值,并将包括 所反转后的值的地址输出到所述存储器;当所述第二字节序的处理器进行16位数据的存储器存取时,反转 从所述第二字节序的处理器输出的地址的次最低位的值,并将包括所 反转后的值的地址输出到所述存储器;和当所述第二字节序的处理器对具有所述第一数据总线的宽度的数 据进行存储器存取时,将来自所述第二字节序的处理器的地址输出到 所述存储器,而不经过地址变换,高速缓冲存储器,其在逻辑上以第二字节序的字节次序连接到所 述数据总线,其中,所述存储器存储由所述第一字节序的处理器和所述第二字 节序的处理器存取的结构数据,所述第一字节序的处理器执行定义所述结构数据的第一程序,和所述第二字节序的处理器执行第二程序,该第二程序所定义的结 构数据包括小于基本字长的数据,该数据在所述基本字长内以一顺序 被定义,且该顺序与所述第一程序中的顺序相反,和所述第一字节序的处理器读取或写入所述结构数据以便与所述第 二字节序的处理器进行通信,并且所述第二字节序的处理器读取或写 入所述结构数据以便与所述第一字节序的处理器进行通信。
5、 根据权利要求4所述的数据共享装置,还包括用于对采用直接 存储器访问的数据传送进行控制的传送部,其中,在传送源和传送目的地要求数据具有不同字节序、并且待 传送数据的宽度比所述数据总线的宽度小的情况下,对于所述传送源 和所述传送目的地,所述传送部将基本字长内的所述数据的顺序逆转。
6、 根据权利要求5所述的数据共享装置,其中,所述传送部包括变换部,用于在传送源和传送目的地要求 数据具有不同字节序、并且待传送数据的宽度比所述数据总线的宽度 小的情况下,变换所述传送源或者所述传送目的地的地址的至少一个 低位比特,以指示所述数据总线中所述数据的逆转位置,并将所变换 后的地址输出到所述存储器。
7、 根据权利要求4所述的数据共享装置,其中,所述第一字节序 类型是大端字节序,而所述第二字节序类型是小端字节序。
8、 根据权利要求4所述的数据共享装置,其中,所述第一字节序 类型是小端字节序,而所述第二字节序类型是大端字节序。
9、 一种在数据处理装置中共享数据的方法,所述数据处理装置包 括第一字节序类型的处理器和第二字节序类型的处理器、以及经数据总线均以第一字节序的字节次序连接这两个处理器的存储器,所述方法包括使所述第一处理器执行定义结构数据的程序,使所述第二处理器 执行一程序,该程序所定义的结构数据包括小于基本字长的数据,所 述结构数据在所述存储器中被共享,所述数据在所述基本字长内以一 顺序被定义,且该顺序与所述第一字节序类型的处理器的所述结构数 据的定义中的顺序相反,使所述第一字节序的处理器读取或写入所述 结构数据以便与所述第二字节序的处理器进行通信,并且使所述第二 字节序的处理器读取或写入所述结构数据以便与所述第一字节序的处 理器进行通信;当所述第二字节序的处理器进行8位数据的存储器存取时,反 转从所述第二字节序的处理器输出的地址的最低两位的值,并将包括 所反转后的值的地址输出到所述存储器;当所述第二字节序的处理器进行16位数据的存储器存取时,反转 从所述第二字节序的处理器输出的地址的次最低位的值,并将包括所 反转后的值的地址输出到所述存储器;和当所述第二字节序的处理器对具有所述第一数据总线的宽度的数 据进行存储器存取时,将来自所述第二字节序的处理器的地址输出到 所述存储器,而不经过地址变换。
10、 根据权利要求9所述的方法,其中,所述第一字节序类型是 大端字节序,而所述第二字节序类型是小端字节序。
11、 根据权利要求9所述的方法,其中,所述第一字节序类型是 小端字节序,而所述第二字节序类型是大端字节序。
全文摘要
本发明提供一种在将大端字节序处理器与小端字节序处理器连接于总线上的情况下、由极简单的结构实现存储器数据共享的处理器及存储器共享装置。字节序不同的第1处理器(10)和第2处理器(20)均按第1处理器10的字节序的字节次序,经数据总线连接于所述存储器。地址变换部(21)在第2处理器(20)对幅度比数据总线小的数据访问共享存储器的情况下,变换地址的下位比特,以指向使数据总线中的相应数据位置逆转的位置,并输出到所述存储器。
文档编号G06F12/02GK101373461SQ200810161018
公开日2009年2月25日 申请日期2004年3月18日 优先权日2003年3月19日
发明者井川智, 永安胜, 舟桥和年 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1