总线编/解码方法和总线编/解码器的制作方法

文档序号:6457595阅读:376来源:国知局
专利名称:总线编/解码方法和总线编/解码器的制作方法
技术领域
本发明涉及一种总线编/解码方法及对应的总线编/解码器。更具体地,本 发明涉及一种能够减小输入/输出(I/0)电路功耗的总线编/解码方法及对应的 总线编/解码器。
背景技术
目前,能源和环境问题是全世界关心的问题。对于计算系统,从芯片的 层面上到系统的层面上追求低功率是个热门话题。当计算系统的功率增大时, 用于给该系统供电的开销以及系统散热开销以更高的速率增大。因此,诸如
IBM、 Intel、 AMD、 Sun等的芯片制造商都在努力降低它们的芯片和系统所 消耗的功率。
计算系统通常由处理器和外围的输入/输出(I/0)电路纽成。相应地,计算 系统的功率由处理器的功率和I/O电路的功率(在下文中,称为I/O功率)组成。 目前,作为降低计算系统功率的一种途径,已经提出了很多降低处理器功率 的方法。例如,Intel提出了一种电源管理方法,其在中央处理单元(CPU)的负 荷较低时降低CPU的工作电压和频率,从而降低CPU的功率。然而,该方 法没有涉及降低I/O功率。当不使用该方法时,I/O功率占计算系统功率的50% 左右,而当使用该方法时,由于处理器功率降低到其原来值的大约10%而1/0 功率相对地保持不变,因此I/O功率的比率升高到70%或更高,从而导致不 平衡的处理器功率和I/0功率。而且,已经发现对于移动设备,1/0功率的比 率可高达80%。因此,作为降低计算系统功率的另一途径,降低I/0功率越 来越重要。
I/O功率由动态I/O功率和静态I/O功率组成。已经证实动态I/O功率可 由以下公式表示
尸C.AA《./ (1) 其中,P为动态I/0功率,C为I/O电路的等效电容,VoD为工作电压,f为 工作频率,N为总线切换数目。所述总线切换数目是指总线在发送不同逻辑值的数据时进行的电平切换(或反转)的次数;具体地说,例如,在总线发送具 有第一逻辑值(0或l)的第一比特之后,如果接下来要发送的第二比特具有不 同于第一逻辑值的逻辑值(l或0),则需要将总线上的电平从第一逻辑值切换 (或反转)为第二逻辑值以发送该第二比特,这对应于一次总线切换;当总线发 送一个字时,总线切换数目即为发送该字时的电平切换的总数目。由上述公 式(1)可知,当其它条件不变时I/O功率正比于总线切换数目N。因此,除了 降低工作电压和频率以外,还可以通过减小N来减小1/0功率。
已经提出了很多方法来减小总线切换数目。例如,在M. R. Stan等人的 "Bus-Invert Coding for Low-Power I/O" (IEEE Transactions on VLSI, pp.49-58, Mar. 1995)中提出了一种方法。在该方法中,在发送了字D0(64比特)之后, 检查发送下一个字Dl(64比特)是否需要切换字DO的超过一半的比特,即, 检查字D0与字D1之间的不同比特的数目是否超过一半(32个),如果是,则 切换(即,反转)字D1的全部比特,使得最多需要32次总线切换;同时,产 生变换信息以指示所发送的字是否被反转并且使用额外的信号线来发送该变 换信息。这种方法能够减小总线切换数目,然而,由于所发送的数据的模式 难以预测,因此使用一种变换模式(即,反转)来处理所有数据不一定能得到最 优的结果;而且,这种方法需要增加额外的信号线,这将导致电路设计的不 兼容。至于所提出的其它用于减小总线切换数目的方法,它们要么需要额外 的信号线,要么需要复杂的算法来推导总线编码方案,要么只适用于地址总 线,并且这些方法都没有从时间和空间的角度综合考虑数据的编码和发送。
因此,需要一种通过减小总线切换数目来降低I/O功率的总线编/解码器 和总线编/解码方法,其不仅适用于地址总线还适用于数据总线,并且与现有 系统具有良好的兼容性。

发明内容
考虑到以上问题而提出了本发明。本发明的目的是提供一种基于矩阵变 换的总线编码器和总线编码方法以及相应的总线解码器和总线解码方法,所 述总线编码器和总线编码方法能够在向I/O电路发送数据之前通过选择性地 对该数据进行变换来减小实际发送给该I/O电路的数据的总线切换数目,从 而降低I/0功率和计算系统的功率,并且,其与现有系统具有良好的兼容性。
根据本发明的一个方面,提供了 一种对经由并行总线以突发串方式发送的数据进行编码的方法,其中并行总线宽度为n位,每个突发串包括m个数 据字,m和n为自然数,该方法包括组织步骤,将k个所述突发串的数据 组织为(pxq)个LiXCj矩阵,其中k、 p、 q、 i、 j、 L;、 Cj为自然数,i=l,…, p, j-l,…,q,并且力丄,=",tc;=A:xw;确定步骤,对于每个所述Lj xCj矩阵,确定是否^^能够减f该矩阵的总线切换数目的变换模式,并且 当存在能够减少该矩阵的总线切换数目的变换模式时确定该矩阵需要进行变 换并且确定用于变换该矩阵的对应变换模式;变换步骤,对于确定需要进行 变换的矩阵,利用所确定的用于变换该矩阵的对应变换模式对其进行变换, 并且用变换后的矩阵替换所述确定需要进行变换的矩阵;形成步骤,将确定 不需要进行变换的矩阵和经过替换的矩阵形成一个待发送的n x (k x m)矩阵; 产生步骤,产生指示所述(pxq)个L;xCj矩阵的变换状态的长度为n位的变 换信息字;以及附加步骤,将所述变换信息字附加到所述待发送的nx(kx m)矩阵以形成实际需要发送的编码矩阵。
根据本发明的另 一方面,提供了 一种对经由并行总线以突发串方式发送 的数据进行编码的编码器,其中并行总线宽度为n位,每个突发串包括m个 数据字,m和n为自然数,该编码器包括组织单元,将k个所述突发串的 数据组织为(pxq)个LiXCj矩阵,其中k、 p、 q、 i、 j、 Lj、 Cj为自然数,i-l,..., p, j-l,…,q,并且f丄,;",tc;=A:xm;确定单元,对于每个所述Lj xCj矩阵,确定是否^^^能够减夕'该矩阵的总线切换数目的变换模式,并且 当存在能够减少该矩阵的总线切换数目的变换模式时确定该矩阵需要进行变 换并且确定用于变换该矩阵的对应变换模式;变换单元,对于确定需要进行 变换的矩阵,利用所确定的用于变换该矩阵的对应变换模式对其进行变换, 并且用变换后的矩阵替换所述确定需要进行变换的矩阵;形成单元,将确定 不需要进行变换的矩阵和经过替换的矩阵形成一个待发送的n x (k x m)矩阵; 产生单元,产生指示所述(pxq)个LjXCj矩阵的变换状态的长度为n位的变 换信息字,和附加单元,将所述变换信息字附加到所述待发送的nx(kxm) 矩阵以形成实际需要发送的编码矩阵。
根据本发明的另 一方面,提供了 一种用于将经由并行总线发送的编码数 据解码的方法,其中并行总线宽度为n位,所述编码数据包含长度为n位的 变换信息字和k个突发串的数据,每个突发串包含m个数据字,k、 m和n 为自然数,该方法包括以下步骤提取步骤,根据预定义的变换信息字位置信息而从编码数据中提取所述变换信息字;组织步骤,根据预定义的矩阵数 目和各个矩阵的大小而将编码数据中的剩余数据组织为(p x q)个Li x Cj矩阵, 其中p、 q、 i、 j、 Lj、 Cj为自然数,i-l,…,p, …,q,并且^>,=",
^q-A:xw;确定步骤,根据所述变换信息字确定每个所述L; x q&阵的变 凝状态;逆变换步骤,根据所确定的每个所述LiXCj矩阵的变换状态,对所 述(p x q)个Li x Cj矩阵中被变换的矩阵进行相应的逆变换并用逆变换后的矩 替换所述被变换的矩阵,并且将被确定为未被变换的矩阵保持不变;以及形 成步骤,将被确定为未被变换的矩阵和经过替换的矩阵形成一个nx(kxm) 矩阵作为原始数据矩阵。
根据本发明的另 一方面,提供了 一种用于将经由并行总线发送的编码数 据解码的解码器,其中并行总线宽度为n位,所述编码数据包含长度为n位 的变换信息字和k个突发串的数据,每个突发串包含m个数据字,k、 m和n 为自然数,该解码器包括提取单元,根据预定义的变换信息字位置信息而 从编码数据中提取所述变换信息字;组织单元,根据预定义的矩阵数目和各 个矩阵的大小而将编码数据中的剩余数据组织为(p x q)个Lj x Cj矩阵,其中p、 q、 i、 j、 Lj、 Cj为自然数,i=l,…,p, j=l,…,q,并且尤丄,力(^ =Axm; 确定单元,根据所述变换信息字确定每个所述LiXCjl巨阵的变兹状态;逆变 换单元,根据所确定的每个所述LiXCj矩阵的变换状态,对所述(pxq)个Li x Cj矩阵中被变换的矩阵进行相应的逆变换并用逆变换后的矩阵替换所述被 变换的矩阵,并且将被确定为未被变换的矩阵保持不变;以及形成单元,将 被确定为未被变换的矩阵和经过替换的矩阵形成一个nx (kxm)矩阵作为原 始数据矩阵。
当需要向I/O电路发送数据以将该凄t据发送到外部时,4艮据本发明的编 码方法/编码器从空间和时间的角度将要发送的数据组织为一个或多个矩阵, 然后选择性地对所述一个或多个矩阵进行矩阵变换,以减小实际发送给I/O 电路的数据的总线切换数目,从而减小I/O功率和整个计算系统的功率。由 于根据本发明的编码方法/编码器不需要额外的信号线,因此其与现有系统具 有良好的兼容性。


通过结合附图对本发明的实施例进行详细描述,本发明的上述和其它目的、特征、优点将会变得更加清楚,其中
图l是示出根据本发明的、将通过并行总线发送的一个突发串的数据组
织为 一个矩阵的示例的图。
图2是图示根据本发明实施例的总线编码器和总线解码器的框图。
图3(a)、图3(b)和图3(c)示出了根据本发明的变换表的示例。
图4示出了图2所示的编码部件和解码部件的变型。
图5是示出根据本发明实施例的总线编码方法的流程图。
图6是示出图5所示的步骤S504、S505和S506中的详细操作的流程图。
图7是示出根据本发明实施例的总线解码方法的流程图。
图8示出了用于例示根据本发明实施例的总线编码方法和总线解码方法
的第一示例。
图9示出了用于例示根据本发明实施例的总线编码方法和总线解码方法 的第二示例。
图10示出了用于例示根据本发明实施例的总线编码方法和总线解码方 法的第三示例。
图11示出了用于例示根据本发明实施例的总线编码方法和总线解码方 法的第四示例。
具体实施例方式
下面将参照附图来详细描述本发明的优选实施例,在附图中,相同的参 考标号自始至终表示相同的元件。应当理解这里描述的实施例仅仅是说明 性的,而不应被解释为限制本发明的范围。本领域技术人员将认识到在不 背离本发明的精神和范围的情况下,可以对这些实施例做出各种修改和组合。
本发明基于以下发现
(l)如上述公式(l)所示,当其它条件不变时,I/O功率与发送数据时的总 线切换数目成正比,因此,可以通过减小所发送的数据的总线切换数目来减 小1/0功率;
特切换(即,反转)所消耗的功率远低于不经任何处理而直接经由I/O电路发送 所述数据所消耗的功率,因此,可以通过预先处理要发送的数据以减少经由 I/O电路发送所述数据时的比特切换次数来大幅降低I/O功率;以及
ii(3)目前,大多数I/0电路和存储系统以突发串(burst)的方式发送或接收 数据,即,在一个突发串中一次连续发送或接收多个数据字,而不是仅发送 或接收一个数据字(在下文中,将突发串中的数据字的数目定义为突发串长 度)。例如,大多数存储系统在一个突发串中连续发送8个数据字,即突发串 长度为8。此外, 一些存储系统在一个突发串中连续发送一条高速緩冲存储 器线(cache line)的数据,此时突发串长度更长(注意对于一个给定的系统来 说,突发串长度是固定的)。此外,这里所述的术语"字"可以根据需要和实 际使用的系统而灵活地定义,例如,可以将一个字定义为具有一个或多个字 节。当通过在计算系统中通常使用的并行总线来发送数据时,可以从时间和 空间的角度将一个或多个突发串的数据组织为 一个或多个矩阵,其中 一个维 度为空间维度,即并行总线并行发送的数据比特,另一维度为时间维度,其 对应于在所述一个或多个突发串中连续发送的多个字。图l是示出根据本发 明的、将通过并行总线发送的一个突发串的数据组织为一个矩阵的示例的图。
如图l所示,并行总线的宽度为n位,即,该并行总线具有n条传输线,
并且可并行发送n位数据bO、 bl.....bn-l。 I/O电路在一个突发串中一次连
续发送m个字D0、 Dl.....Dm-l,即突发串长度为m,并且这m个字具有
在时间上连续的关系。在本说明书中,为简单起见,将字定义为具有与并行 总线的宽度相同数目的位,即n位。此时,如果从空间和时间的角度来考虑 所发送的数据,则可以通过以并行总线并行发送的一个字的n位数据(对应于 n条传输线)为矩阵的n行(空间维度),并且以在时间上连续发送的m个字为 矩阵的m歹'j(时间维度),将I/O电路在一个突发串中连续发送的m个字组织 为一个nxm矩阵。换言之,该矩阵的一行的元素为这m个字中通过并行总 线中的对应的一条传输线依序发送的比特,该矩阵的一列的元素为通过该并 行总线发送的对应的一个字的全部比特。除了将一个突发串的数据组织为一 个n x m矩阵之外,还可以将一个突发串的数据组织为组成该n x m矩阵的多 个其它大小的矩阵,例如,在上述示例中可以将所述数据组织为组成该nxm 矩阵的2个n/2xm矩阵、4个n/2 x m/2矩阵或多个其它大小的矩阵。除了图 1所示的示例以外,还可以将多个突发串的数据组织成一个或多个矩阵。换 言之,可以将k(fel)个突发串的数据组织为(pxq)个LjXCj矩阵,其中k、 p、 q、 i、 j、 Lj、 Cj为自然数,i=l,…,p, j=l,…,q,并且力丄,=",力C乂 =Axm。这里,n和(kxm)可以相等(这对应于方阵)或者可以不相等(这对应于长方矩 阵)。
基于以上发现,设计了根据本发明的总线编码器和总线编码方法。
下面,将参照图2来描述根据本发明的总线编码器和总线解码器。图2 是图示^f艮据本发明实施例的总线编码器和总线解码器的框图。
如图2所示,发送器100与接收器200通过并行总线50互相连接,并且 发送器100经由并行总线50而将数据发送到接收器200。
发送器100包括总线编码器101和连接到该总线编码器101的I/O电路 102。总线编码器101用于在发送器100将数据发送给接收器200之前,对要 发送的数据进行编码以便减少发送编码数据时的总线切换数目,并且将编码 数据提供给I/O电路102。 I/O电路102通过并行总线50与接收器200中的 I/O电路相连接,并且用于将从总线编码器101接收的编码数据经由并行总线 50发送给接收器200中的I/O电路。总线编码器101可以由执行下面所述的 功能的硬件的组合实现,也可以由包含数据緩冲器的公知处理器(例如,CPU) 或控制器结合用于执行本发明所述的功能的计算机软件来实现。
总线编码器101包括原始数据緩冲器1012、连接到原始数据緩沖器1012 的编码部件1014、以及连接到编码部件1014和I/O电路102的编码数据緩冲 器1016。
原始数据緩冲器1012用于存储要从发送器IOO发送给接收器200的原始 数据,该原始数据可以是属于一个或多个突发串的多个连续的数据字。
原始数据緩冲器1012还用于存储矩阵组织信息和变换信息字位置信息, 所述矩阵组织信息指示将被组织为矩阵的突发串的数目(即,k)以及将所述数 目的突发串中的数据组织成的矩阵的数目(即,p x q)和各个矩阵的大小(即, LiXCj, i=l, p, j=l, ..., q),所述变换信息字位置信息指示变换信息字 在所发送的编码数据中的位置。所述矩阵组织信息和变换信息字位置信息是 由用户预定义的。应当注意尽管变换信息字在所发送的编码数据中的位置 是可变的,但是对于由发送器和接收器组成的一个给定的系统,该位置是固 定的并且对于发送器和接收器来说是已知的。所述变换信息字用来指示所组 织的各个矩阵的变换状态。应当认识到可以根据不同的情况而给予变换信 息字不同的定义。
此外,原始数据緩沖器1012还用于存储由用户预定义的变换表。在该变换表中预定义可用于变换所述矩阵的一种或多种矩阵变换模式以及将在变换 信息字中使用的、用于指示矩阵的变换状态的一个或多个比特的特定组合。 具体地,当将某种矩阵变换模式应用于一矩阵时,将变换信息字中的与该矩 阵对应的位设置为在变换表中预定义的、指示与该矩阵变换模式对应的变换 状态的特定比特组合,以便向接收器表明对该矩阵应用了所述矩阵变换模式, 换句话说,以便向接收器表明所接收的对应矩阵是对其原始矩阵应用了所述
矩阵变换模式的结果;反之,当变换信息字中与某一矩阵相对应的一位或多 位与在变换表中预定义的比特组合相同时,这意味着该矩阵处于该比特组合 所指示的变换状态,此时只需对该矩阵进行相应的逆变换即可获得原始矩阵。
图3(a)、图3(b)和图3(c)示出了根据本发明的变换表的示例。如图3(a) 所示,在变换表302中预定义了一种可用的矩阵变换模式(即"转置")以及两 种比特组合。在本示例中,仅使用一个比特来指示变换状态,其中,比特"0" 表示相应的矩阵处于被转置的状态,即,该矩阵是对另一矩阵进行转置变换 的结果;比特"1"表示没有对相应的矩阵进行变换,即,相应的矩阵与原始 矩阵相同。如图3(b)所示,在变换表304中预定义了一种可用的矩阵变换模 式(即"偶数列反转")以及两种比特组合。在本示例中,也使用一个比特来指 示变换状态,其中,比特"0"表示相应的矩阵处于其偶数列被反转的状态, 即,该矩阵是将另一矩阵的偶数列反转的结果;比特'T,表示没有对相应的 矩阵进行变换,即,相应的矩阵与原始矩阵相同。如图3(c)所示,在变换表 306中预定义了 2种可用的矩阵变换模式(即"转置"和"偶数列反转,,)以及 3种比特组合,其中,比特组合"00"表示没有对相应的数据矩阵进行变换, 比特组合"01"表示相应的数据矩阵处于被转置的状态,比特组合"10"表 示相应的数据矩阵处于其偶数列被反转的状态。应当认识到,上述变换表仅 仅是示例性的,而不是限制性的。实际上,除了转置变换和偶数列反转变换 以外,还可以根据实际情况(例如,发送器通常发送的数据中的"1"和"0" 的分布情况)和实际需要而在变换表中预定义或添加一种或多种其它可用变 换模式。此外,用于指示变换状态的比特组合中的比特的数目可以为其它数 值。并且,变换表的形式不限于图3(a)、 3(b)和3(c)中图示的形式,而是可以 采用其它形式,只要这些形式可以清楚地反映上述信息即可。
应当认识到尽管在这里使用原始数据緩冲器1012来存储矩阵组织信 息、变换信息字位置信息和变换表,但这不是限制性的,而是也可以将它们共同或分别存储在稍后描述的编码lt据緩沖器1016或者编码部件1014能够 访问的其它存储器(未示出)中。
回到图2,编码部件1014从原始数据緩冲器1012读取矩阵组织信息, 并且根据在所述矩阵组织信息中预定义的突发串的数目k而从原始数据緩冲 器1012依序读取k个突发串。然后,编码部件1014根据该矩阵组织信息而 以上文所述的组织方式将所述突发串中的数据字组织为一个或多个矩阵。
具体地,如上所述,假设并行总线50的宽度为n位,突发串长度为m。 编码部件1014从原始数据緩冲器1012中读取k个突发串的数据字,并且根 据在矩阵组织信息中预定义的矩阵数目(p x q)和每个矩阵的大小(Lj x Cj, i=l,…,p, j=l, ..., q)而以上述组织方式将这kxm个数据字组织为(pxq)
个LiXCj矩阵,其中t丄,",力C,A:xm。
'=1 产
然后,编码部件1014从原始数据緩冲器1012读取预定义的变换表,并 且确定可用变换模式。然后,它对于每个所述LjXCj矩阵,检查在所述可用 变换模式中是否存在能够减小该矩阵中的总线切换数目(即,发送该矩阵中的 数据时的总线切换数目的总和)的变换模式以便确定该矩阵是否需要进行变 换,并且当存在这样的变换模式时,确定该矩阵需要进行变换并且确定用于 变换该矩阵的对应变换模式。
具体地,对于每个所述LjXCj矩阵,编码部件1014依序选择所述可用变 换模式中的每一种,并且检查所选择的变换模式是否能够减小该矩阵的总线 切换数目。例如,编码部件1014可以利用所选择的变换^^莫式变换该矩阵以获 得变换矩阵,计算该变换矩阵中的各行的总线切换数目的总和以获得该变换 矩阵的总线切换数目,然后将该总线切换数目与原始矩阵的总线切换数目进 行比较。如果变换矩阵的总线切换数目大于或等于原始矩阵的总线切换数目, 则所选择的变换模式不能减小所述总线切换数目,反之,如果变换矩阵的总 线切换数目小于原始矩阵的总线切换数目,则所选择的变换模式能够减小所 述总线切换数目。当确定所选择的变换模式能够减小所述总线切换数目时, 编码部件1014确定该矩阵需要进行变换,并且将所选择的变换模式确定为用 于变换该矩阵的对应变换模式,而不再继续检查其它变换模式;另一方面, 当编码部件1014确定所选择的变换模式不能减小所述总线切换数目时,编码 部件1014从所述可用变换模式中选择另一可用变换模式,并且重复上述检查步骤。以这一方式,编码部件1014依序检查所有可用变换模式,并且当找到 能够减小该矩阵的总线切换数目的变换模式时停止该检查。然而,如果编码 部件1014检查了所有可用变换模式但是没有发现能够减小该矩阵的总线切 换数目的变换模式,则编码部件1014确定该矩阵不需要进行变换。可替换地, 当编码部件1014找到能够减小该矩阵的总线切换数目的变换模式时,其记录 该变换模式将所述总线切换数目减少的量,并且继续寻找在所述可用变换模 式中是否存在其它能够减小该矩阵的总线切换数目的其它变换模式,而不是 如上所述停止检查其它可用变换模式,以便找出能够减小该矩阵的总线切换 ^t目的所有变换模式并且确定相应的减少量;然后,编码部件1014通过例如 比较而选择使得该矩阵的总线切换数目减小得最多的变换模式作为用于变换 该矩阵的对应变换模式。
例如,在采用图3(a)所示的变换表和将数据组织为一个nxm矩阵的情 况下,编码部件1014读取变换表302,确定可用变换模式为转置变换,然后 检查转置变换能否减小该nxm矩阵的总线切换数目。如果能,则确定该矩
阵需要进行变换,并且将转置变换确定为用于变换该矩阵的对应变换模式; 如果不能,则确定该矩阵不需要进行变换。例如,在采用图3(c)所示的变换 表和将数据组织为一个nxm矩阵的情况下,编码部件1014读取变换表306, 并且确定可用变换模式为转置变换和偶数列反转变换。然后,编码部件1014 首先选择转置变换,检查转置变换能否减小该nxm矩阵的总线切换数目。 如果能,则确定该矩阵需要进行变换,并且使用转置变换来变换该矩阵;如 果不能,则编码部件1014检查偶数列反转变换是否能减小所述总线切换数 目。如果能,则确定该矩阵需要进行变换,并且将偶数列反转变换确定为用 于变换该矩阵的对应变换模式;如果不能,则由于仅有两种可用变换而确定 该矩阵不需要进行变换。可替换地,当编码部件1014确定转置变换能够减小 该矩阵的总线切换数目时,其继续检查偶数列反转变换是否能够减小所述总 线切换数目,并且如果确定偶数列反转变换也能减小所述总线切换数目,则 在这两种变换模式中选择使所述总线切换数目减少得最多的变换模式作为实 际用于变换该矩阵的对应变换模式,否则将转置变换确定为用于变换该矩阵 的变换模式。
接下来,当确定所述(pxq)个LiXCj矩阵均不需要变换时,编码部件1014 保持所述(pxq)个LjXCj矩阵不变,而不对其进行任何处理。另一方面,当确定在所述(p x q)个Li x Cj矩阵中存在需要进行变换的矩阵并且确定了用于
变换该矩阵的对应变换模式时,编码部件1014利用所确定的对应变换模式来
分别变换所述需要进行变换的矩阵,并且将这些矩阵(即,原始矩阵)替换为相
应的变换后的矩阵(不需要进行变换的矩阵保持不变)。然后,编码部件1014
将确定不需要进行变换的矩阵(如果有的话)和所述经过替换的矩阵形成一个 待发送的nx(kxm)矩阵。
然后,编码部件1014根据变换表产生用于指示每个所述Li x Cj矩阵是否 进行了变换以及当进行了变换时使用的变换模式的变换信息字,并且根据预 定义的附加信息字位置信息将该变换信息字作为额外的字附加到所述待发送 的nx(kxm)矩阵上(例如,之前或之后),从而形成实际要经由I/O电路102 发送给接收器200的编码矩阵。
具体地,编码部件1014首先产生一个变换信息字,然后根据变换表将该 变换信息字中的、用于指示每个所述LiXCj矩阵的变换状态的位分别设置为 与该矩阵的变换状态相对应的比特组合。例如,在采用图3(a)所示的变换表 302的情况下,在变换信息字中,用于指示未经变换的矩阵(即,不需要进行 变换的矩阵)的变换状态的位被设置为1,而用于指示被转置的矩阵的变换状 态的位被设置为0;在采用图3(c)所示的变换表306的情况下,在变换信息字 中,用于指示未经变换的矩阵的变换状态的位被设置为"00",用于指示被转 置的矩阵的变换状态的位被设置为"01",而用于指示偶数列被反转的矩阵的 变换状态的位被设置为"10"。然后,编码部件1014从原始数据緩冲器1012 中读取变换信息字位置信息,并且根据在该位置信息中预定义的附加信息字 的位置而将该变换信息字作为额外的字附加到所述待发送的n x (k x m)矩阵 之前或之后,以形成实际要发送给接收器200的编码矩阵。
应当注意在变换信息字中分别用于指示各个矩阵的变换状态的位可基 于可用变换模式的数目和所组织的矩阵的数目等因素而由用户在发送器(或 编码部件)和接收器(或解码部件)中预定义,或者可以由编码部件和解码部件
基于相同的分配规则而自动分配。例如,可以在编码部件和解码部件中将变 换信息字的一个或多个预定位预定义为指示矩阵的变换状态的位,或者可以 由编码部件和解码部件共同地将变换信息字的一个或多个位自动分配给某个 矩阵以指示该矩阵的变换状态。此外,在预定义了用于指示矩阵变换状态的 位之后,可以任意地设置该变换信息字中的剩余位(如果有的话),因为所述剩余位不具有特定的含义。然而,优选地,将所述剩余位设置为和在所述待发
送的nx(kxm)矩阵中与该变换信息字相邻的数据矩阵的字的对应位(即,在 并行总线的同一传输线上发送的相邻位)相同,以尽可能地减小由于附加该变 换信息字而增加的总线切换数目。
此外,在上文中,对于将原始数据组织为多个矩阵的情况,编码部件1014 仅产生一个公共的变换信息字。然而,本发明不限于此,而是也可以为所述 多个矩阵的每一个分别产生一个附加信息字,然后将所产生的附加信息字附 加在所述待发送的nx(kxm)矩阵之前或之后、或者在对应的矩阵之前或之 后。这可以由用户在编码部件和解码部件中相应地预定义。
然后,编码部件1014将所形成的编码矩阵中的编码数据(即,该编码矩 阵的元素)按照发送顺序存储到编码数据緩冲器1016中。
编码数据緩冲器1016用于依序存储从编码部件1014接收的编码数据。
发送器IOO以公知的方式将存储在编码数据緩冲器1016中的编码数据经 由I/O电路102和并行总线50发送到接收器200。应当注意由于I/O电路 以突发串为单位来发送数据,因此当将变换信息字附加在一个或多个突发串 的数据上时,可以使该I/O电路额外地发送一个字(当产生一个变换信息字时) 或多个字(当产生相同数目的多个变换信息字时),以便将所述编码凝:据完整地 发送给接收器200。
在上文中,在完成k个突发串的全部数据的编码之后,编码部件1014 将所获得的编码数据存储在编码数据緩冲器1016中,然后,经由I/O电路依 序发送这些编码数据。然而,本发明不限于此。在一些情况下,对于所述k 个突发串,也可以在对当前数据进行编码的同时发送先前编码的编码数据, 以减小由于对所述突发串的数据进行编码而导致的延迟时间。例如,在将k
个突发串的数据组织为一个矩阵时,当需要对该矩阵进行变换时,可以在对 当前列的数据进行变换的同时,将先前处理的列的数据依序发送给接收器, 而不是完成对该矩阵的所有数据的处理之后再发送所述数据。这种变型可以 被适当地扩展到其它组织矩阵的情况,并且也被包含在本发明的范围内。 下面,将参照图2来描述根据本发明实施例的总线解码器。 如图2所示,接收器200包括I/O电路201和连接到I/O电路201的总 线解码器202。
I/O电路201用于接收从发送器100经由I/O电路102和并行总线50发送给接收器200的k个突发串的编码数据,并且将所述编码数据连续地存储 在被包含在总线解码器202内的编码数据緩沖器2022中。
总线解码器202包括连接到I/O电路201的编码数据緩沖器2022、连接 到编码数据緩冲器2022的解码部件2024、和连接到解码部件2024的原始数 据緩沖器2026。该总线解码器可以由执行下面所述的功能的硬件的组合实现, 也可以由包含数据緩沖器的公知处理器(例如,CPU)或控制器结合用于执行本 发明所述的功能的计算机软件来实现。
编码数据緩冲器2022用于依序存储从I/O电路201接收的编码数据。 原始数据緩沖器2026用于存储从解码部件2024接收的解码数据。原始 数据緩冲器2026还用于存储矩阵组织信息、变换信息字位置信息和变换表, 所述信息和变换表与存储在原始数据緩沖器1012中的信息和变换表相同,因 此,为简单起见,在这里省略对它们的详细描述。同样,应当认识到,尽管 在这里使用原始数据緩冲器2026来存储矩阵组织信息、变换信息字位置信息 和变换表,但这不是限制性的,而是也可以将它们共同或分别存储在编码数 据緩冲器2022或者解码部件2024能够访问的其它存储器(未示出)中。 解码部件2024用于将所述编码数据解码以获得原始数据。 具体地,解码部件2024从编码数据緩沖器2022读取所接收的编码数据, 从原始数据緩冲器2026中读取变换信息字位置信息,然后根据在该位置信息 中预定义的变换信息字的位置而从所读取的编码数据中提取变换信息字。例 如,当在所述位置信息中预定义的变换信息字的位置为在编码数据的末尾时, 解码部件2024从所读取的编码数据中提取最后一个字作为变换信息字;当在 所述位置信息中预定义的变换信息字的位置为在编码数据的开头时,解码部 件2024从所读取的编码数据中提取第一个字作为变换信息字。
接下来,解码部件2024从原始数据緩冲器2026中读取矩阵组织信息, 并且基于该矩阵组织信息中预定义的矩阵数目(即,p x q)和各矩阵的大小而以 上文所述的矩阵组织方式将剩余的编码数据组织为(p x q)个Li x Cj矩阵,其 中i=l,…,p, j=l,…,q,并且尤丄,=w, tq=A:xw。由于存储在原始
数据緩沖器2026中的矩阵组织信息与存储在原始数据緩冲器1012中的矩阵 组织信息相同,并且编码部件1014和解码部件2024采用相同的矩阵组织方 式,因此,解码部件2024组织的(pxq)个LjXCj矩阵与上文所述的形成待发送的n x (k x m)矩阵的(p x q)个l; x C」矩阵相同。
然后,解码部件2024从原始数据緩冲器2026中读取变换表,并且将变 换信息字中指示各个矩阵的变换状态的一个或多个位与在变换表中预定义的 比特组合进行比较,以确定各个矩阵的变换状态。如上所述,解码部件2024
示各个矩阵的变换状态的 一个或多个位。
接下来,如果所述(pxq)个LjXCj矩阵均没有被变换,则解码部件2024 不对其进行任何处理。另一方面,如果在所述(pxq)个LjXCj矩阵中存在进 行过变换的矩阵,则解码部件2024对进行过变换的矩阵分别进行相应的逆变 换,以获得其原始矩阵,并且将所述矩阵替换为其原始矩阵(没有进行过变换 的矩阵保持不变)。
最后,解码部件2024将被确定为没有被变换的矩阵(如果有的话)和经过 上述替换的矩阵形成为一个nx(kxm)矩阵(即,原始lt据矩阵),并且将该n x (k x m)矩阵的数据作为原始数据依序存储在原始数据緩冲器2026中以供其 它部件4吏用。
应当认识到尽管在上文中使用单个部件(即编码部件)来将要发送的数 据编码,但这仅仅是出于说明的目的,而不是限制性的。实际上,除了使用 单独的编码部件以外,也可以使用包括多个单元的编码部件来实现上述功能。 例如,如图4所示,可以使用包括组织单元4011、确定单元4012、变换单元 4013、形成单元4014、产生单元4015和附加单元4016的编码部件401按照 与上面相似的方式来将要发送的数据编码,其中,组织单元4011按照上面所 述的方式将k个突发串的数据组织为(p x q)个L, Cj矩阵;确定单元4012, 对于每个所述L,Cj矩阵,确定是否存在能够减少该矩阵的总线切换数目的 变换模式,并且当存在能够减少该矩阵的总线切换数目的变换模式时确定该 矩阵需要进行变换并且确定用于变换该矩阵的对应变换模式;变换单元4013 对于确定需要进行变换的矩阵,利用所确定的用于变换该矩阵的对应变换模 式对其进行变换,并且用变换后的矩阵替换所述需要进行变换的矩阵;形成 单元4014将确定不需要进行变换的矩阵和经过所述替换的矩阵形成一个待 发送的n x (k x m)矩阵;产生单元4015产生指示所述(p x q)个L; x Cj矩阵的 变换状态的长度为n位的变换信息字,并且附加单元4016将所述变换信息字 附加到所述待发送的nx(kxm)矩阵上以形成实际需要发送的编码矩阵。同样,也可以将上文所述的单个解码部件2024替换为由提取单元4021、组织 单元4022、确定单元4023、逆变换单元4024和形成单元4025组成的解码部 件402,其中,提取单元4021根据预定义的变换信息字位置信息而从编码数 据中提取所述变换信息字;组织单元4022按照上述方式将编码数据中的剩余 数据组织为(p x q)个Li x Cj矩阵;确定单元4023根据所述变换信息字确定每 个所述Lj x Cj矩阵的变换状态;逆变换单元4024根据所确定的每个所述L; xCj矩阵的变换状态,对所述(pxq)个LiXCj矩阵中被确定为变换的矩阵进 行相应的逆变换并用逆变换后的矩阵替换所述被变换的矩阵,并且将被确定 为未被变换的矩阵保持不变;形成单元4025将被确定为未被变换的矩阵和经 过上述替换的矩阵形成一个nx(kxm)矩阵作为原始数据矩阵。当然,本领域
技术人员也可以根据实际需要设计分别具有上述功能中的 一种或多种的其它 部件和/或这些部件的组合,只要这些部件能够共同实现上述数据编码和解码 即可。此外,在上文中,在编码器和解码器中分别使用了两个单独的緩冲器, 即原始数据緩沖器和编码数据緩冲器,然而,这不是限制性的,也可以将它 们组合为一个緩冲器,或者分割为更多的緩冲器。
由于在将数据发送到I/O电路和总线之前,根据本发明的总线编码器选 择性地对所述数据进行变换以减小其总线切换数目,因此I/O电路不需要进 行过多的总线切换,从而降低了I/0功率。
下面,将结合图2和图5来描述根据本发明实施例的总线编码方法。图 5是示出根据本发明实施例的总线编码方法的流程图。
如上所述,在发送和接收数据之前,已经分别在发送器100和接收器200 中预先定义了相同的矩阵组织信息、变换信息字位置信息和变换表,并且它 们分别被存储在原始数据緩冲器1012和2026中。为简单起见,在这里省略 对上述信息和变换表的详细描述。
当存在要经由I/O电路102和并行总线50发送给接收器200的数据时, 发送器IOO将该数据依序存储在原始数据緩冲器1012中。假设并行总线的宽 度为n,突发串长度为m,其中n和m为自然数。
参照图5,在步骤S501中,编码部件1014从原始数据緩沖器1012读取 矩阵组织信息,并且根据在所述矩阵组织信息中预定义的突发串的数目k(k 为大于或等于1的自然数)而从原始数据緩冲器1012依序读取k个突发串, 总共n x (k x m)个数据比特。在步骤S502中,编码部件1014根据该矩阵组织信息中预定义的矩阵数 目pxq (p和q为自然数)而以上文所述的矩阵组织方式将k个突发串中的数 据字组织为(pxq)个LjXCj矩阵,其中i、 j、 Li、 Cj为自然数,i=l,…,p, j=l,…,q,升且^^=", ZC,Axm。
在步骤S503中,编码部件1014从原始数据緩冲器1012读取预定义的变 换表,并且确定在该变换表中预定义的、可以用来对所述(pxq)个LjXCj矩 阵进行矩阵变换的可用矩阵变换模式。
然后,在步骤S504中,编码部件1014选择所述(p x q)个L; x Cj矩阵中 的一个矩阵,检查在所确定的可用变换模式中是否存在能够减小该矩阵的总 线切换数目(即,发送该矩阵中的数据时的总线切换数目的总和)的变换模式, 以便确定该矩阵是否需要进行变换。
当在步骤S504中确定不存在这样的变换时,编码部件1014进行到步骤 S505,在该步骤中,其确定该矩阵不需要进行变换。反之,当在步骤S504 中确定存在这样的变换时,编码部件1014进行到步骤S506,在该步骤中, 其确定该矩阵需要进行变换,并且确定用于变换该矩阵的对应变换;漢式。稍 后将详细描述步骤S504、 S505和S506中的详细操作。
接下来,在步骤S507中,编码部件1014确定是否检查了所述(pxq)个 L;x Cj矩阵中的全部矩阵。如果不是,则编码部件1014返回步骤S504,选择 尚未被检查的另一矩阵,并且重复步骤S504-S506。另一方面,如果在步骤 S507中确定>^查了全部矩阵,则编码部件1014进行到步骤S508,在该步骤 中,编码部件1014判断是否所述全部矩阵均不需要进行变换。
如果在步骤S508中确定全部矩阵均不需要进行变换,则在步骤S509中, 编码部件1014保持所述(p x q)个Li x Cj矩阵不变,而不对其进行任何处理。 反之,当在步骤S508中确定存在需要变换的矩阵,则在步骤S510中,编码 部件1014利用所确定的对应变换模式来分别变换各个需要变换的矩阵,然后 将所述各个需要变换的矩阵(即,各个原始矩阵)分别替换为相应的变换后的矩 阵,并且将所述(p x q)个Lj x Cj矩阵中不需要变换的矩阵(如果有的话)保持不 变。然后,在步骤S511中,编码部件1014将由确定不需要进行变换的矩阵(注 意当确定所有矩阵都需要进行变换时,其数目为O)和经过变换的矩阵(注意 当确定所有矩阵均不需要进行变换时,其数目为O)組成的(pxq)个L;xCj矩阵形成一个待发送的n x (k x m)矩阵。
接下来,在步骤S512中,编码部件1014根据所述变换表,产生用于指 示每个所述Li x Cj矩阵是否进行了变换以及当进行了变换时使用的变换模式 的变换信息字。具体地,编码部件1014首先产生一个变换信息字,然后根据 变换表,将该变换信息字中用于指示每个所述LiXCj矩阵的变换状态的位分 别设置为与该矩阵的变换状态相对应的比特组合。如上所述,在变换信息字 中分别用于指示各个矩阵的变换状态的位可基于可用变换模式的数目和所组 织的矩阵的数目等因素而由用户在发送器(或编码部件)和接收器(或解码部件)
并且,在预定义了用于指示矩阵变换状态的位之后,可以任意地设置该变换 信息字中的剩余位,因为所述剩余位不具有特定的含义;然而,优选地,将 所述剩余位^没置为和待发送的n x (k x m)矩阵中与该变换信息字相邻的字的 对应位(即,在并行总线的同一传输线上发送的相邻位)相同,以尽可能地减小 由于附加该变换信息字而增加的总线切换数目。
然后,在步骤S513中,编码部件1014从原始数据缓冲器1012中读取变 换信息字位置信息,并且根据在该位置信息中预定义的附加信息字的位置而 将该变换信息字作为额外的字附加到待发送的nx (kx m)矩阵上,以形成实际
要经由I/O电路102和总线50发送给接收器200的编码矩阵。可以理解,由 于附加了一个变换信息字,因此该编码数据矩阵具有kx(m+l)列。此外,如 上所述,对于将原始数据组织为多个矩阵的情况,编码部件1014也可以为每 个矩阵产生一个附加信息字,然后将所产生的附加信息字附加在所述待发送 的n x (k x m)矩阵之前或之后、或者附加在组成所述待发送的n x (k x m)矩阵 的每个矩阵之前或之后。这可以由用户在编码部件和解码部件中相应地预定 义。
接下来,在步骤S514中,编码部件1014将所形成的编码矩阵中的编码 数据(即,该矩阵的元素)按照发送顺序存储到编码数据緩冲器1016中。
下面,将参照图6来详细描述步骤S504、 S505和S506中的详细操作。 参照图6,在步骤S5041中,编码部件1014从所述(pxq)个LiXCj矩阵 中选择一个矩阵。然后,在步骤S5042中,编码部件1014从所确定的可用矩 阵变换模式中选择一种矩阵变换模式,并且在步骤S5043中确定该变换模式 是否能够减小该矩阵的总线切换数目。例如,编码部件1014可以利用所选择的变换模式变换该矩阵以获得变换矩阵,计算该变换矩阵中的各行的总线切 换数目的总和以获得该变换矩阵的总线切换数目,然后将该变换矩阵的总线 切换数目与原始矩阵的总线切换数目进行比较。如果变换矩阵的总线切换数 目大于或等于原始矩阵的总线切换数目,则所选择的变换模式不能减小所述 总线切换数目,反之,如果变换矩阵的总线切换数目小于原始矩阵的总线切 换数目,则所选择的变换模式能够减小所述总线切换数目。此外,编码部件
1014也可以采用其它本领域公知的方式来进行上述确定。
如果在步骤S5043中确定所选择的变换模式能够减小所述总线切换数 目,则在步骤S506中,编码部件1014确定所述矩阵需要进行变换,并且将 当前选择的变换模式确定为用于变换该矩阵的对应变换模式。另一方面,当 在步骤S5043中确定所选择的变换模式不能减小所述总线切换数目时,则编 码部件1014进行到步骤S5044,在该步骤中,编码部件1014确定是否检查 了所有可用变换模式。如果在步骤S5044中确定已经检查了所有变换模式, 则在步骤S505中,编码部件1014确定该矩阵不需要进行变换。反之,如果 尚未检查所有变换模式,则编码部件1014返回步骤S5042,选择尚未被检查 的另一变换模式,并且重复步骤S5042和S5043。
如上所述,当在步骤S5043中确定所选择的变换模式能够减小所述总线 切换数目时,编码部件1014将该变换模式确定为用于变换该矩阵的对应变换 模式,而不再继续检查其余可用变换模式。然而,可替换地,当在步骤S5043 中确定所选择的变换模式能够减小所述总线切换数目时,编码部件1014记录 该变换模式将所述总线切换数目减少的量,并且继续^r查其它可用变换模式 能否减小该矩阵的总线切换数目,而不是如上所述停止检查其它可用变换模 式,以便找出能够减小总线切换数目的所有变换模式并且确定相应的减少量; 然后,编码部件1014通过例如比较来选择使得所述总线切换数目减少得最多 的变换模式作为用于变换该矩阵的对应变换模式。
应当认识到尽管在上面给出了一种执行才艮据本发明实施例的总线编码 方法的各个步骤的顺序,但是也可以在不背离本发明的精神和范围的情况下 适当地改变执行这些步骤的顺序。例如,可以先读取变换表以获取可用的变 换模式,然后再读取要发送的数据并将其组织为(pxq)个LjXCj矩阵。此外, 在上文中,对于所述(p x q)个Li x Cj矩阵中的全部矩阵确定是否存在能够减 小其总线切换数目的变换模式,然后利用所确定的对应变换模式分别对需要
24变换的矩阵进行变换;然而,也可以在对于每个LiXCj矩阵确定存在能够减 小其总线切换数目的变换模式时立即利用该变换模式来变换所述矩阵。
在完成上述总线编码之后,发送器100将存储在编码数据缓冲器1016 中的编码数据经由I/O电路102和总线50以突发串的形式发送到接收器200。 如上所述,在附加了变换信息字之后,可以使该1/0电路额外地发送一个字(当 产生一个变换信息字时)或多个字(当产生相同数目的多个变换信息字时),以 便将所述编码数据完整地发送给接收器200。同样,如上所述,在根据本发 明实施例的总线编码方法中,不仅可以在完成所述k个突发串的全部数据的 编码之后发送所获得的编码数据,还可以在对当前数据进行编码的同时发送 先前编码的数据,以减小由于对突发串的数据进行编码而导致的延迟时间。
下面,将参照图7来描述根据本发明实施例的总线解码方法。图7是示 出根据本发明实施例的总线解码方法的流程图。
如上所述,在接收数据之前,已经在接收器200中预先定义了与发送器 100相同的矩阵组织信息、变换信息字位置信息和变换表,并且将它们存储 在原始数据緩冲器2026中。为简单起见,在这里省略对它们的详细描述。
接收器200接收从发送器100发送的编码数据,并且将所接收的编码数 据依序存储在编码数据緩冲器2022中。
参照图7,在步骤S701中,解码部件2024从编码数据缓冲器2022中读 取所接收的编码数据。在步骤S702中,解码部件2024从原始数据緩冲器2026 中读取变换信息字位置信息,然后根据在该位置信息中预定义的变换信息字 的位置而从所读取的编码数据的所述位置处提取变换信息字。
接下来,在步骤S703中,解码部件2024从原始数据緩沖器2026中读取 矩阵组织信息,并且基于该矩阵组织信息中预定义的矩阵数目(p x q)和各矩阵 的大小而以上文所述的矩阵组织方式将提取变换信息字之后剩余的编码数据 组织为(pxq)个LiXCj矩阵,其中i-l,…,p, j=l, ..., q,并且tz,;",
tq =Axw。由于存储在原始数据緩冲器2026中的矩阵组织信息与存储在
乂=1
原始数据緩冲器1012中的矩阵组织信息相同,并且编码部件1014和解码部 件2024采用相同的矩阵组织方式,因此,解码部件2024组织的(p x q)个Li x Cj矩阵与编码部件1014获得的形成所述待发送的n x (k x m)矩阵的(p x q) 个L;xCj矩阵相同。然后,在步骤S704中,解码部件2024从原始数据緩沖器2026中读取变 换表,并且将所提取的变换信息字中指示所述(pxq)个LjXCj矩阵中的每个 矩阵的变换状态的一个或多个位与在变换表中预定义的比特组合进行比较, 以确定各个矩阵的变换状态。如上所述,解码部件2024可以通过用户的预定 义或基于分配规则的自动分配而获知在变换信息字中指示各个矩阵的变换状 态的一个或多个位。
接下来,在步骤S705中,解码部件2024确定是否所述(p x q)个Li x q矩 阵均没有被变换。如果在步骤S705中确定所述(p x q)个Li x Cj矩阵均未被变 换,则在步骤S706中,解码部件2024保持所述(p x q)个x Cj矩阵不变而 不对其进行任何处理。另一方面,如果在步骤S705中确定在所述(pxq)个Li xCj矩阵中存在进行过变换的矩阵,则在步骤S707中,解码部件2024根据 变换信息字中的比特组合的指示而对进行过变换的矩阵分别进行相应的逆变 换以获得其原始矩阵,并且将所述进行过变换的矩阵替换为逆变换后的矩阵 (即其原始矩阵),同时,解码部件2024将所述(pxq)个LiXCj矩阵中被确定 为没有进行过变换的矩阵(如果有的话)保持不变。
然后,在步骤S708中,解码部件2024将被确定为没有进行过变换的矩 阵(如果有的话)和经过上述替换的矩阵形成为一个n x (k x m)矩阵(即,原始数 据矩阵)。最后,在步骤S709中,解码部件2024将该n x (k x m)矩阵的数据 作为原始数据依序存储在原始数据緩冲器2026中以供其它部件使用。
在上面描述了根据本发明实施例的总线编码方法和总线解码方法的各个 步骤,然而,应当认识到这些步骤并不是强制性的,而是可以对于不同的 系统(发送器和接收器)选择性地省略其中一些步骤。例如,当将要发送的数据 组织为l个矩阵时,可以省略图5所示的编码方法中的步骤S507和S508以 及图7所示的解码方法中的步骤S705并适应性地调整其余步骤;当所确定的 可用变换模式只有1种时,可以省略图6所示的步骤S5044并适应性地调整 其余步骤。本领域技术人员能够理解这些变化均被包含在本发明的范围内。
下面,将结合若干示例来示例性地说明根据本发明实施例的总线编码方 法和总线解码方法。
图8示出了用于例示根据本发明实施例的总线编码方法和总线解码方法 的第一示例。在图8中,向下的箭头表示编码过程,向上的箭头表示解码过 程。在图8所示的示例中,并行总线宽度n为8,突发串长度m为8。如上 所述,在这里将字的长度定义为等于并行总线的宽度。在矩阵组织信息中预 定义的突发串数目k和矩阵数目(pxq)均为1,预定义的变换表为变换表800, 在变换信息字位置信息中预定义的变换信息字的位置为编码数据的末尾,并 且将变换信息字的最低位用于指示矩阵的变换状态。上述信息均被预定义在 编码部件1014和解码部件2024中。
首先,编码部件1014从原始数据緩冲器1012读取矩阵组织信息,确定 预定义的突发串数目k为1,并且从原始数据緩冲器1012读取1个突发串, 总共64个比特。然后,编码部件1014根据矩阵组织信息预定义的矩阵数目 1而以上文所述的矩阵组织方式将所述一个突发串中的数据字组织为一个8 x8矩阵801,此时,Lz8, d = 8。
接下来,编码部件1014从原始数据緩冲器1012读取预定义的变换表 800,并且确定在其中预定义的可用变换模式为转置变换。然后,编码部件 1014检查转置变换是否能够减小该8 x 8矩阵801的总线切换数目。由于转 置变换能够减小图7所示的矩阵801的总线切换数目,因此,编码部件1014 确定该矩阵需要进行变换,将转置变换确定为用于变换该矩阵的对应矩阵, 并且使用转置变换来变换该矩阵,从而获得变换矩阵802。
然后,编码部件1014根据变换表800产生用于指示该矩阵是否进行了变 换以及当进行变换时使用的矩阵变换模式的变换信息字803。具体地,编码 部件1014首先产生一个变换信息字。由于矩阵801被转置,因此编码部件 1014根据变换表中指示转置变换的比特组合"0"而将变换信息字的最低位 设置为0,以表明该矩阵被转置或者接收器接收到的对应矩阵是对其原始矩 阵进行转置的结果,然后将变换信息字的其余位设置为与该变换信息字相邻 的字(D7)中的对应位(在同一传输线上依序发送的位)相同,从而得到变换信息 字803 "01010100"。如上所述,如此设置所述其余位〗吏得能够尽可能地减少 减小了由于附加该变换信息字而增加的总线切换数目。接下来,编码部件1014 根据变换信息字位置信息而将变换信息字作为额外的列附加到矩阵802之 后,从而形成8x9编码数据矩阵804。最后,编码部件1014将编码数据矩 阵804中的编码数据按照先前读取它们的顺序依序存储在编码数据緩冲器 1016中。
当接收到发送器IOO发送的上述编码数据时,接收器200将该编码数据存储在编码数据緩沖器2022中。 下面描述该示例的解码过程。
解码部件2024从编码数据緩冲器2022中读取所接收的72(=8 x 9)个编码 数据。然后,解码部件2024从原始数据緩冲器2026中读取变换信息字位置 信息,确定变换信息字被附加在该编码数据末尾,从而提取最后8位数据作 为变换信息字803,即"01010100"。接下来,解码部件2024从原始数据緩 冲器2026中读取矩阵组织信息,并且基于该矩阵组织信息中预定义的矩阵数 目'T,而以上文所述的矩阵组织方式将剩余的64个数据比特组织为一个8 x8矩阵,即矩阵802。
然后,解码部件2024读取变换表800,将变换信息字的最低位的"0" 与变换表的比特组合进行比较,以确定该矩阵的变换状态。由于在变换表中 将"0"预定义为表示转置变换,因此,解码部件2024确定该矩阵是对其原 始矩阵进行了转置变换的结果,从而再次对其进行转置并且获得其原始矩阵 801。最后,解码部件2024将原始矩阵801中的数据依序存储在原始数据緩 冲器2026中以供其它部件使用。注意,在本示例中,由于只有一个矩阵,因 此可以在编码和解码过程中省略所述替换和形成搡作。
在本示例中,原始数据(即数据矩阵801)的总线切换数目为7 x 8=56次, 而编码数据(即数据矩阵804)的总线切换数目为1次,因此,显著减小了 I/O 电路中的总线切换数目,从而显著减小了 1/0功率。
在本示例中仅使用转置变换来对由原始数据组成的矩阵进行变换。当编
码器将要发送的数据被组织为方阵时,可以使用这种变换模式。据统计,当 仅使用转置变换作为变换表中的可用变换模式时,对于随机产生的各种样式 的数据,平均能够将总线切换数目减少19%。因而,对于将数据组织为方阵 的情况,转置变换具有良好的效果。
图9示出了用于例示根据本发明实施例的总线编码方法和总线解码方法 的第二示例。在图9中,向下的箭头表示编码过程,向上的箭头表示解码过 程。在该示例中,并行总线宽度n为8,突发串长度m为6,预定义的突发 串数目k和矩阵数目pxq均为i,预定义的变换信息字的位置为编码数据的 末尾,并且将变换信息字的最低位用于指示矩阵的变换状态。此外,预定义 的变换表为变换表900,并且可用变换模式为偶数列反转变换。图9所示的 示例的编码过程和解码过程与图8所示的示例相似,因此在这里省略对它们的详细描述,而仅仅在图9中示出各个阶段的结果。通过比较原始矩阵901 和编码数据矩阵904可知,根据本发明实施例的总线编码方法将该数据的总 线切换数目从40减少为1。在本示例中使用的偶数列反转变换适用于任何大 小的矩阵。此外,在本示例中,除了在处理了矩阵901的全部数据之后再发 送编码数据之外,还可以在处理一列数据的同时发送先前处理的列的数据。 例如,可以在对第二列数据进行偶数列反转的同时将第一列数据发送给接收 器,而不是在处理了全部6列数据并且附加了变换信息字之后再依序发送这 7列的数据,由此,能够减小由于对所述数据进行处理而导致的延迟时间。
在第一和第二示例中,将原始数据组织为一个矩阵。下面给出将原始数 据组织为多个矩阵的示例。
法的第三示例。在图10中,向下的箭头表示编码过程,向上的箭头表示解码 过程。
在图IO的示例中,并行,fe线宽度n为8,突发串长度m为8。在矩阵组 织信息中预定义的突发串数目k为1、所组织的矩阵的数目pxq为2x2 = 4 且每个矩阵的大小为4x4,预定义的变换表为变换表1000,在变换信息字位 置信息中预定义的变换信息字的位置为编码数据的末尾,并且将变换信息字 的8位预定义为按照从低位到高位的顺序而两两地用于所组织的4个矩阵。
下面描述该示例的编码过程。
首先,编码部件1014从原始数据緩冲器1012读取矩阵组织信息,并且 根据其中预定义的突发串数目k-1而读取1个突发串,总共64个比特。然 后,编码部件1014根据该矩阵组织信息中预定义的矩阵数目4和各矩阵的大 小而以上述矩阵组织方式将该突发串的数据组织为4个4x4矩阵10011、 10012、 10013和10014,如图IO上部所示。此时,Li和Cj(i-l, 2; j = l, 2)均为4。
然后,编码部件1014从原始数据緩沖器1012读取预定义的变换表,并 且确定可用变换模式为转置变换和偶数列反转变换。接下来,编码部件1014 依序选择这4个矩阵中的每一个,并且检查在所述可用变换模式中是否存在 能够减小该矩阵的总线切换数目的变换模式。具体地,编码部件1014选择矩 阵10011,确定转置变换是否能够减小该矩阵的总线切换数目。由于转置变 换能够减小矩阵10011的总线切换数目,因此总线部件1014确定矩阵10011需要进行变换,并且将转置变换确定为用于变换该矩阵的对应变换模式。然
后,编码部件1014选择矩阵10012,并且通过上述检查确定需要对其进行偶 数列反转变换。接下来,编码部件1014选择矩阵10013,并且确定转置变换 能否减小其总线切换数目。在得到否定答案之后,编码部件1014确定偶数列 反转能否减小其总线切换数目,并且仍然得到否定答案。由于变换表仅预定 义了两种可用变换,因此编码部件1014确定矩阵10013不需要进行变换。然 后,类似地,编码部件1014确定需要对矩阵10014进行转置变换。
接下来,编码部件1014对矩阵10011和10014进行转置变换以分别获得 变换矩阵10021和10024,对矩阵10012进行偶数列反转变换以获得变换矩 阵10022,并且保持矩阵10013不变而将直接作为矩阵10023,由此,原始矩 阵10011、 10012和10014被替换为变换矩阵10021、 10022和10024。然后, 编码部件1014将变换矩阵10021、 10022、 10023和10024形成为待发送的8 x8矩阵,如图10中部所示。
然后,编码部件1014根据变换表1000产生用于指示这4个矩阵的变换 状态的变换信息字1001。具体地,编码部件1014首先产生一个变换信息字。 然后,编码部件1014根据各个矩阵的变换状态和变换表来设置该变换信息字 的相应位。由于在变换表1000中,"00"表明矩阵未被改变,"01"表示矩阵 被转置,"10"表示矩阵的偶数列被反转,因此变换信息字1001从高位到低 位被设置为"10000110"。
接下来,编码部件1014读取变换信息字位置信息,并根据该信息而将变 换信息字1001作为额外的列附加到所述待发送的8x8矩阵之后,从而形成 实际需要发送的8x9编码数据矩阵,如图10下部所示。
最后,编码部件1014将该编码数据矩阵中的编码数据依序存储到编码数 据緩沖器1016中。
发送器100将所述编码数据经由I/O电路102和总线50发送给接收器 200。接收器200经由I/O电路201接收该编码数据,并且将其依序存储在编 码数据緩冲器2022中。
下面描述该示例的解码过程。
首先,解码部件2024读取所述编码数据(共72比特)。然后,解码部件 2024从原始数据緩冲器2026中读取变换信息字位置信息,确定变换信息字 被附加在该编码数据末尾,从而提取最后8位数据(即"10000110")作为变换信息字1001。
接下来,解码部件2024从原始数据緩沖器2026中读取矩阵组织信息, 并且基于在其中预定义的矩阵数目"4"和每个矩阵的大小而以与编码部件 1014相同的矩阵组织方式将剩余的64比特组织为4个4 x 4矩阵。显然,所 组织的这4个矩阵即为矩阵10021-10024。
然后,解码部件2024从原始数据緩冲器2026中读取变换表1000,并且 分别将变换信息字中指示这4个矩阵的变换状态的位依序与在变换表1000中 的比特组合进行比较,以确定各个矩阵的变换状态。在本示例中,解码部件 2024确定对矩阵10021和10024进行了转置变换,对矩阵10022进行了偶数 列反转变换,而没有对矩阵10023进行变换。
接下来,解码部件2024对矩阵10021和10024进行转置变换,对矩阵 10022进行偶数列反转变换,由此将矩阵10021、 10022和10024分别替换为 其原始矩阵10011、 10012和10014,并且保持矩阵10023不变而直接将其作 为矩阵10013。然后,解码部件2024将原始矩阵10011-10014形成为一个8 x 8原始矩阵,并且将该原始矩阵的数据依序存储在原始数据緩冲器2026中 以供其它部件使用。
在本示例中,原始数据的总线切换数目为51,实际发送的数据的总线切 换数目为5,因此总线切换数目被显著减小。这种方法可被应用于任何总线 宽度为n、突发串长度为m、并且n为m的倍数的系统。
在上面的示例中,将1个突发串的数据组织为一个或多个矩阵,并且将 变换信息字定义为指示各个矩阵的变换状态。然而,也可以将多个突发串的 数据组织为 一个或多个矩阵,并且/或者给予变换信息字不同的定义。
图11示出了用于例示根据本发明实施例的总线编码方法和总线解码方 法的第四示例。在该示例中,将4个突发串的数据组织为1个矩阵。
在该示例中,并行总线宽度n为32,突发串长度m为8。在矩阵组织信 息中预定义的突发串数目k为4、所组织的矩阵的数目pxq为1,并且将变 换信息字预定义为指示所组织的矩阵中的每一列的变换状态,而不是如先前 所述的所组织的矩阵的变换状态。此外,预定义的变换表为变换表1100,在 其中预定义的变换模式为如果当前列(当前要发送的字)与前一列(先前发送 的字)的汉明(hamming)距离大于总线宽度的一半(16-32/2),则反转当前列。
编码部件1014从原始数据緩冲器1012读取矩阵组织信息,确定其中预
31定义的突发串数目k为4,并且从原始数据緩冲器1012读取4个突发串。然 后,编码部件1014根据预定义的矩阵数目1而以上文所述的矩阵组织方式将 这4个突发串组织为一个32 x32矩阵1101。接下来,编码部件1014对矩阵 1101进行变换以产生变换矩阵1102,产生变换信息字1103,其每一位分别表 示对应的矩阵1102的一列的变换状态,并且将该变换信息字1103附加在变 换矩阵1102之前以产生编码数据矩阵1104。由于上述编码过程以及随后的解 码过程与前述示例相似,因此为简单起见而省略其详细描述。
在本示例中,原始数据的总线切换数目为992,实际发送的数据的总线 切换数目为16,因此总线切换数目被显著减小。这种方法可被应用于任何总 线宽度为n、突发串长度为m、并且n为m的倍数的系统。
如上所述,根据本发明实施例的总线编码器和总线编码方法不仅适用于 数据总线,还适用于地址总线。其通过在将数据发送给I/O电路和总线之前 选择性地对所述数据进行变换,使得实际发送的数据的总线切换数目显著减 小,从而减小1/0功率以及整个计算系统的功率,并且使处理器功率和I/O功 率更加平tf。
此外,通过在变换表中定义多种可用变换模式,与仅定义一种可用变换 模式的情况相比,可以提供更多的选择来变换所述数据,从而取得更好的效 果。而且,在这一情况下,通过将数据组织为多个矩阵,可以对每个矩阵应 用不同的变换,并且所应用的变换可以是使该矩阵的总线切换数目减小得最 多的变换,从而取得比将所述数据仅组织为一个矩阵的情况更好的效果。
在上文中,在发送器和接收器中预定义变换表、矩阵组织信息、变换信 息字位置信息以及其它信息,这可以通过在发送器和接收器之间制定共同的 协议并且在该协议中预定义所述信息来实现。
此外,在本发明中,通过将变换信息字附加在要发送的数据上而消除了 对于额外的信号线的需要。然而,这不是限制性的,而某些情况下,例如在 不需要考虑兼容性的情况下,也可以使用额外的信号线来单独地发送变换信 息字,而不将其附加在要发送的数据上。
尽管已经在上面示出和描述了本发明的实施例,本领域技术人员应当理 解,在不背离权利要求及其等价物中限定的本发明的范围和精神的情况下, 可以对所述实施例做出各种形式和细节上的变化。
权利要求
1. 一种对经由并行总线以突发串方式发送的数据进行编码的方法,其中并行总线宽度为n位,每个突发串包括m个数据字,m和n为自然数,该方法包括组织步骤,将k个所述突发串的数据组织为(p×q)个Li×Cj矩阵,其中k、p、q、i、j、Li、Cj为自然数,i=1,...,p,j=1,...,q,并且确定步骤,对于每个所述Li×Cj矩阵,确定是否存在能够减少该矩阵的总线切换数目的变换模式,并且当存在能够减少该矩阵的总线切换数目的变换模式时确定该矩阵需要进行变换并且确定用于变换该矩阵的对应变换模式;变换步骤,对于确定需要进行变换的矩阵,利用所确定的用于变换该矩阵的对应变换模式对其进行变换,并且用变换后的矩阵替换所述确定需要进行变换的矩阵;形成步骤,将确定不需要进行变换的矩阵和经过替换的矩阵形成一个待发送的n×(k×m)矩阵;产生步骤,产生指示所述(p×q)个Li×Cj矩阵的变换状态的长度为n位的变换信息字;以及附加步骤,将所述变换信息字附加到所述待发送的n×(k×m)矩阵以形成实际需要发送的编码矩阵。
2. 如权利要求l所述的方法,其中,由所述(pxq)个LiXCj矩阵形成的n x (k x m)矩阵的列是所述k个突发串中的(k x m)个数据字之一,该n x (k xm)矩阵的行是所述(kxm)个数据字中经由并行总线的同一传输线依序发送的位。
3. 如权利要求l所述的方法,其中,对于每个所述LiXCj矩阵,所述确定步骤包括以下步骤从一种或多种预定变换模式中选择一种变换模式,并且检查该变换模式是否能够减少所述矩阵的总线切换数目;当该变换模式能够减少所述矩阵的总线切换数目时,确定该矩阵需要进行变换,并且将该变换模式确定为用于变换该矩阵的对应变换模式;以及2当该变换模式不能减少所述矩阵的总线切换数目时,从所述一种或多种预定变换模式中选择另一变换模式,并且对该另一变换模式重复上述检查步骤,直到找到能够减少所述矩阵的总线切换数目的变换模式、或者确定所有变换模式均不能减少所述矩阵的总线切换数目从而确定所述矩阵不需要进行变换为止。
4. 如权利要求l所述的方法,其中,对于每个所述LiXCj矩阵,所述确定步骤包括以下步骤依序检查一种或多种预定变换^:莫式中的每一种是否能够减少所述矩阵的总线切换数目,并且当其能够减少所述总线切换数目时,记录该变换模式产生的所述矩阵的总线切换数目的减少量;以及在检查了所有变换模式之后,如果存在能够减少所述矩阵的总线切换数目的变换模式,则在这些变换模式中选择所产生的减少量最大的变换模式作为用于变换所述矩阵的对应变换模式,否则确定所述矩阵不需要进行变换。
5. 如权利要求3-4之一所述的方法,其中,所述一种或多种预定变换模式至少包括转置变换或偶数列反转变换。
6. 如权利要求3-4之一所述的方法,其中,所述一种或多种预定变换模式是在变换表中预定义的,并且在该变换表中还预定义了指示矩阵的变换状态的比特组合,并且其中,在产生步骤中,根据每个所述LiXCj矩阵的变换状态而将变换信息字中与该矩阵对应的位设置为在变换表中预定义的与该变换状态相对应的比特組合。
7. 如权利要求6所述的方法,其中,所述产生步骤还包括将变换信息字中未被用于指示变换状态的位设置为和在所述待发送的nx (k x m)矩阵中与该变换信息字相邻的列中的对应位相同。
8. 如权利要求l-4之一所述的方法,其中,根据预定义的变换信息字位置信息而将所述变换信息字附加在所述待发送的n x (k x m)矩阵之前或之后。中并行总线宽度为n位,每个突发串包括m个数据字,m和n为自然数,该编码器包括组织单元,将k个所述突发串的数据组织为(p x q)个Li x Cj矩阵,其中k、p、 q、 i、 j、 Li、 Cj为自然数,i=l,…,p, j=l,…,q,并且力丄,=",4x附;确定单元,对于每个所述LiXCj矩阵,确定是否'泰在能够i!少该矩阵的总线切换数目的变换模式,并且当存在能够减少该矩阵的总线切换数目的变式;,、 、…'、 '、 、…,、
9.变换单元,对于确定需要进行变换的矩阵,利用所确定的用于变换该矩阵的对应变换模式对其进行变换,并且用变换后的矩阵替换所述确定需要进行变换的矩阵;形成单元,将确定不需要进行变换的矩阵和经过替换的矩阵形成一个待发送的n x (k x m)矩阵;产生单元,产生指示所述(pxq)个LiXCj矩阵的变换状态的长度为n位的变换信息字,和附加单元,将所述变换信息字附加到所述待发送的n x (k x m)矩阵以形成实际需要发送的编码矩阵。
10. 如权利要求9所述的编码器,其中,由所述(pxq)个L;xCj矩阵形成的n x (k x m)矩阵的列是所述k个突发串中的(k x m)个数据字之一,该n x(k x m)矩阵的行是所述(k x m)个数据字中经由并行总线的同 一传输线依序发送的位。
11. 如权利要求9所述的编码器,其中,当对于每个所述LiXCj矩阵确定是否存在能够减少该矩阵的总线切换数目的变换模式时,所述确定单元从一种或多种预定变换模式中选择一种变换模式,并且检查该变换模式是否能够减少所述矩阵的总线切换数目;当该变换模式能够减少所述矩阵的总线切换数目时,确定该矩阵需要进行变换,并且将该变换模式确定为用于变换该矩阵的对应变换模式;以及当该变换模式不能减少所述矩阵的总线切换数目时,从所述一种或多种预定变换模式中选择另一变换模式,并且对该变换模式重复上述检查步骤,直到找到能够减少所述矩阵的总线切换数目的变换模式、或者确定所有变换-溪式均不能减少所述矩阵的总线切换数目从而确定所述矩阵不需要进行变换为止。
12. 如权利要求9所述的编码器,其中,当对于每个所述LiXCj矩阵确定是否存在能够减少该矩阵的总线切换数目的变换模式时,所述确定单元依序检查一种或多种预定变换模式中的每一种是否能够减少所述矩阵的总线切换数目,并且当其能够减少所述矩阵的总线切换数目时,记录该变换模式产生的所述矩阵的总线切换数目的减少量;以及当检查了所有变换模式之后,如果存在能够减少所述矩阵的总线切换数目的变换模式,则在这些变换模式中选择所产生的减少量最大的变换模式作为用于变换所述矩阵的对应变换模式,否则确定所述矩阵不需要进行变换。
13. 如权利要求11-12之一所述的编码器,其中,所述一种或多种预定变换模式至少包含转置变换或偶数列反转变换。
14. 如权利要求11-12之一所述的编码器,还包括存储单元,用于存储变换表,其中,在该变换表中预定义所述一种或多种可用变换模式、以及指示矩阵的变换状态的比特组合,并且其中,所述产生单元才艮据每个所述Li x Cj矩阵的变换状态而将变换信息字中与该矩阵对应的位设置为在变换表中预定义的与该变换状态相对应的比特组合。
15. 如权利要求14所述的编码器,其中,所述产生单元还将变换信息字中未被用于指示变换状态的位设置为和在待发送的n x (k x m)矩阵中与该变换信息字相邻的列中的对应位相同。
16. 如权利要求9-12之一所述的编码器,其中,所述附加单元根据预定义的变换信息字位置信息而将所述变换信息字附加在所述待发送的nx (kxm)矩阵之前或之后。
17. —种用于将经由并行总线发送的编码数据解码的方法,其中并行总线宽度为n位,所述编码数据包含长度为n位的变换信息字和k个突发串的数据,每个突发串包含m个数据字,k、 m和n为自然数,该方法包括以下步骤提取步骤,根据预定义的变换信息字位置信息而从编码数据中提取所述变换信息字;组织步骤,根据预定义的矩阵数目和各个矩阵的大小而将编码数据中的剩余数据组织为(p x q)个Lj x Cj矩阵,其中p、 q、 i、 j、 Li、 Cj为自然数,i=l,...,p, …,q, 并且Z丄,-", ZC,A:xm;确定步骤,根据所述变换信息字确定每个所述Li x Cj矩阵的变换状态;逆变换步骤,根据所确定的每个所述LiXCj矩阵的变换状态,对所述(px q)个LjX Cj矩阵中被变换的矩阵进行相应的逆变换并用逆变换后的矩阵替换所述被变换的矩阵,并且将被确定为未被变换的矩阵保持不变;以及形成步骤,将被确定为未被变换的矩阵和经过替换的矩阵形成一个nx(k x m)矩阵作为原始数据矩阵。
18. —种用于将经由并行总线发送的编码数据解码的解码器,其中并行总线宽度为n位,所述编码数据包含长度为n位的变换信息字和k个突发串的数据,每个突发串包含m个数据字,k、 m和n为自然数,该解码器包括提取单元,根据预定义的变换信息字位置信息而从编码数据中提取所述变换信息字;组织单元,根据预定义的矩阵数目和各个矩阵的大小而将编码数据中的剩余数据组织为(p x q)个Li x Cj矩阵,其中p、 q、 i、 j、 Lj、 Cj为自然数,i=l ,...,p, j=l, …,q, 并且Z丄,二w, ZC乂"xm;/=i 产i确定单元,根据所述变换信息字确定每个所述Li x Cj矩阵的变换状态;逆变换单元,根据所确定的每个所述LiXCj矩阵的变换状态,对所述(px q)个Lj x Cj矩阵中被变换的矩阵进行相应的逆变换并用逆变换后的矩阵替换所述被变换的矩阵,并且将被确定为未被变换的矩阵保持不变;以及形成单元,将被确定为未被变换的矩阵和经过替换的矩阵形成一个nx(k x m)矩阵作为原始数据矩阵。
全文摘要
提供了将经由并行总线以突发串方式发送的数据编码的编码方法/编码器和对应解码方法/解码器,并行总线宽度为n位,每个突发串包括m个数据字,该编码方法包括将k个突发串的数据组织为(p×q)个L<sub>i</sub>×C<sub>j</sub>矩阵,i=1,…,p,j=1,…,q,且∑L<sub>i</sub>=n,∑C<sub>j</sub>=k×m;对每个矩阵确定是否存在能减少其总线切换数目的变换模式,当存在这种变换模式时确定该矩阵需要变换并确定用于变换该矩阵的对应变换模式;对确定需要变换的矩阵利用对应变换模式对其进行变换,用变换后的矩阵替换该矩阵;将确定不需要变换的矩阵和经替换的矩阵形成一个待发送的n×(k×m)矩阵;产生指示各矩阵变换状态的n位的变换信息字;将变换信息字附加到所述待发送的矩阵以形成实际需要发送的矩阵。
文档编号G06F1/32GK101499048SQ200810001500
公开日2009年8月5日 申请日期2008年1月29日 优先权日2008年1月29日
发明者彧 李, 林海波, 沈文博, 凯 郑 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1