处理器中执行掩码存储操作的方法和集成电路技术

技术编号:2828610 阅读:225 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种处理器中执行掩码存储操作的方法和集成电路,用于加速处理器或基于处理器的系统/芯片中掩码存储操作的处理。本发明专利技术提供了一组指令,该组指令可支持逐字节谓词掩码下的存储操作。本发明专利技术加速了任意排列小传输的处理,如那些被xDSL调制解调器用来处理ATM信元或Reed  Solomon码字的传输。

【技术实现步骤摘要】

本专利技术涉及可编程数字处理器,更具体地说,涉及一种在处理器系统中使 用的数据储存指令。
技术介绍
任意排列或大小的数据传输用于某些软件功能的执行。在数据通信领域,可能会遇到这种传输。举个例子,在处理具有固定大小单元如53字节ATM信 元的序列时,在处理构成Reed-Solomon码字(其大小可以在3到255字节之 间)的数据块时,或者在处理可变大小的数据包流时(各个数据包的的大小可 在几字节到一千字节以上)。标准的可编程数字处理器系统包括存储器,其中数据存储最小的单个可存 取单元具有第一大小(如一个字节保存8位),而存储器的优先存取机制可以以 具有第二大小(比第一大小大,例如32位的字,或64位的长字等)的单个存 取单元进行存储器数据进出传输。在许多这种系统中,处理器将大于1个字节 的数据单元存入存储器只能全部同时完成,或只能在某些排列下有效执行,这 是由处理器数据寻址方案决定的。举个例子,设想一种典型的系统,包括处理器和接入其中的存储器。为了 举例说明(尽管原理的应用与这些特定细节无关),选择的处理器是64位机器。 也就是说,该处理器中单个寄存器操作和保存数据值的基本大小是64位单元, 等于八个8位字节,或存储器中的一个完整存储单元。该存储器是由64位宽 (长字节)的存储单元阵列构成,其中每个64位单元可在单个存储操作中写 入。该存储器也可在单个存储操作中存储单独的字节,或16位半字,或32 位字。为了让多数存取类型能够使用而又不会过度增加逻辑的复杂度,此类系统 中处理器和存储器之间的接口一般只使用自然队列(natural alignment)提 供存取。S卩, 一个字节可自由存储在指定8字节长字存储单元中的偏移量为(O, 1, 2, ...7}的八个不同字节中的任意位置, 一个半字只能存储在4个均匀偏移 地址{0, 2, 4, 6}之一处(即半字对齐),而一个字只能写入两个排列字偏移 地址{0, 4}之一中,字对齐。我们还要考虑到,存储指令存储的数据单元小于处理器普通寄存器的大小 的情况是很典型的,就是从一个64位寄存器中存储半字(16位,两个8位字 节),通常只用来支持在源寄存器中存储这种最低有效子单元。该限制通常是 为了减少处理器中存储器接口线路的复杂性,或是为了防止相异指令的数目变 的过大,亦或是以上两种原因。考虑到示例系统的后一原因,需要15个相异 指令来使寄存器中的所有自然排列的子单元针对4种大小(字节,半字,字, 长字,分别在源寄存器中有8、 4、 2、 l个可能自然排列的位置)都能直接存 储。即使如此,对于半字和全字大小的情形,也不允许源寄存器中非自然排列 的单元存储。相反,受限制的情形只需要4个相异指令来支持存储操作的4 种大小。编程者可通过合并指令来实现任何其它情形(如在右移指令后跟着使 用存储指令)。在此类系统中,如上所述,通常需要能够在存储器中任意位置存储单独的 字节。这种存储(例如由存储字节指令实现)暗指存储器中无论哪个完整 大小(64位)的存储位置都包括特殊的字节位置,因为基本存取单位是64位 宽的。尽管如此,存储操作必须以此方式实现,以此避免将任何数据存至该同 一长字存储单元中的其它字节位置。为此,许多存储器系统都是用字节支持 (byte-enable)信号来实现的。字节支持信号是为存储器整个宽度中每个 字节通道而定义的(例如,针对8字节(长字)宽存储器有八个信号)。为每 个字节通道选择的这些信号用于判断在执行存储操作时,选择的长字存储器存 储位置的该部分处的字节是否将由通过对应通道内的存取路径提供的新数据 所覆盖。字节支持信号通常在处理器的存储器存取逻辑中生成,其根据每个执 行的存储操作的特定细节而定。在处理器向存储器写数据而执行存储指令的操 作过程中,针对每个数据字节在存取路径上传送一个字节支持信号。为了在任意使用此系统(例如存储以偏移地址3开始的4字节的字)的队 列中完成数据存储,或为了存储高达基本存储单元大小的任意大小单元(例如 数据中一个5字节部分存储在偏移地址2..6),编程者必须开发一种使用处理 器中可用存储器存储指令的算法。 一种达到此目的的方式包括读出目前存储在 目标存储器位置中的数据,然后将它与源数据合并,补在由任意排列引起的间 隙里面。完整存储单元大小的合并数据然后可写入目标存储器位置。尽管如此, 该算法可能会很慢,因为可能存在从目标位置读出数据的延时。该算法也可能 很复杂,而且包括几个指令,特别是如果存储操作的大小和相对的排列未预先 固定的情况下。此种算法在即将存储的目标存储器位置相邻近的情况下会对存 储器位置的使用带来某些约束。另一种方法中,任意排列的将要存储的数据可分割成多个更小的部分,每 个部分具有单独的大小并重新排列,以满足接口的约束条件并单独存储。然而, 这种算法与自然排列的存储操作相比,也可能比较复杂并且很慢。因而这种算 法的软件实现可能不太方便,并且不会用作通用的机制,因为其成本太高。因此,我们需要一种能显著减少以任意排列或任意大小执行数据存储的成 本和复杂性的系统和方法。
技术实现思路
本专利技术包括一种在目标存储器中存储数据的方法。该方法包括以下步骤-发送掩码存储指令到处理器,然后在处理器中处理该掩码存储指令。根据本发 明的一个实施例,处理掩码存储指令的歩骤还包括确定数据寄存器、目标地址 和掩码的步骤,以及确定数据寄存器中数据的哪个字节不被掩盖的步骤,以及 将数据寄存器中所述未被掩盖的字节写入目标存储器的步骤。本专利技术也包括一种用于处理存储器存取指令的集成电路。该集成电路包括 处理器、数据寄存器、谓词寄存器(predicate register)和用于处理器将数据存 入存储器的器件。该存储器可包含在此集成电路中,或在其外部。处理器设定 来将包含在数据寄存器中的数据存储到存储器里。根据本专利技术实施例,处理器 还通过询问谓词寄存器读出掩码,并仅当掩码表明数据的字节要储存时,将数据的每个字节从数据寄存器存储到存储器。本专利技术还包括一种创建掩码的方法,其中掩码定义了字节序列中哪些字节 要被存储。该方法包括以下几个步骤传送一组掩码指令,从所述指令中确定 掩码结果位置、偏移地址和字节数,以及通过字节数减去偏移地址来决定数据 大小。如果数据大小小于或等于0,掩码设为全0。如果数据大小大于掩码的 位宽,掩码设为全l。如果数据大小大于0,且小于或等于掩码的位宽,从掩 码的最低有效位开始,与数据大小对应的掩码位的连续序列将被设为1,并且 掩码的剩余位将设为0,以此来形成分配给己确定的掩码结果位置的掩码值。 掩码中的每个位的值对应于目标存储器位置中的一个字节位置。根据本专利技术实施例,掩码中的o值表示对应的字节位置将不被存储,而掩码中的1值表示对 应字节位置将被存储。在另一个替代实施例中,o和i的意思交换了,所以o位表示相应字节位置应该存储,而1位不应该存储。本专利技术另外还提出了创建掩码的第二种方法,其中掩码定义了字节序列中的哪些字节要存储。第二种方法包括以下步骤传送一组掩码指令,从指令中 确定掩码结果位置、偏移地址和字节数,以及通过字节数减去偏移地址决定数 据大小。如果数据大小小于或等于0,掩码设为全l。如果数据大小大于掩码位宽,掩码设为全o。如果数据大本文档来自技高网
...

【技术保护点】
一种在目的存储器中存储数据的方法,其特征在于,该方法包括:    传送掩码存储指令到处理器;    在处理器中处理所述掩码存储指令;其中处理掩码存储指令的步骤进一步包括:    从所述指令中确定数据寄存器、目标地址、掩码;    确定数据寄存器中哪些数据字节没被掩盖,其中所述掩码包含有表明数据寄存器中每个数据字节是否被掩盖的位;    将数据寄存器中没被掩盖的字节写入目的存储器,其中数据的每个字节都写入相应地址,该地址对应于目标地址和数据寄存器中所述字节相关位置的总和。

【技术特征摘要】
US 2006-12-22 11/643,9991、一种在目的存储器中存储数据的方法,其特征在于,该方法包括传送掩码存储指令到处理器;在处理器中处理所述掩码存储指令;其中处理掩码存储指令的步骤进一步包括从所述指令中确定数据寄存器、目标地址、掩码;确定数据寄存器中哪些数据字节没被掩盖,其中所述掩码包含有表明数据寄存器中每个数据字节是否被掩盖的位;将数据寄存器中没被掩盖的字节写入目的存储器,其中数据的每个字节都写入相应地址,该地址对应于目标地址和数据寄存器中所述字节相关位置的总和。2、 根据权利要求1所述的方法,其特征在于,将掩码存储指令传送到处 理器的步骤包括-用目标地址和掩码设定处理器。3、 根据权利要求2所述的方法,其特征在于,该方法还包括 将掩码存储在谓词寄存器中; 设定处理器从谓词寄存器中获取掩码。4、 根据权利要求3所述的方法,其特征在于,该方法还包括 确定谓词寄存器的位置。5、 一种处理存储器存取指令的集成电路,其特征在于,所述集成电路包括处理器;数据寄存器,其中所述数据寄存器包含一个或多个数据字节; 谓词寄存器,其中所述谓词寄存器设定来保存掩码; 存储器;其中所述处理器设定来将数据寄存器中的数据储存到存储器; 其中所述处理器通过询问谓词寄存器读出掩码;其中仅当掩码表明数据字节将被储存时,所述处理器将数据寄存器中的所 述一个或多个数据字节存入存储器。6、 根据权利要求5所述的集成电路,其特征在于,该集成电路还包括存储器指针,...

【专利技术属性】
技术研发人员:马克汤顿
申请(专利权)人:美国博通公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1