对比文件名称:发明申请_US20040054877A1 Method and apparatus for shuffling data
目标专利名称:说明书
模型名称:本次调用的模型
### 特征比对表格
| 技术特征描述及公开性判断 | 对比文件原文引用 | 公开性论述 |
| **技术特征A**:《直接公开》<br>一种用于处理数据的装置 | 图1A-1C及相应描述,例如第[0046]段:“FIG. 1A is a block diagram of a computer system formed with a processor... System 100 includes a component, such as a processor 102...” | 对比文件公开了包含处理器102的计算机系统100,该处理器用于执行包括数据混洗在内的数据处理。这构成了“一种用于处理数据的装置”,与本专利中用于处理数据的装置(例如GPU 12)作用相同。因此该特征被直接公开。 |
| **技术特征B**:《隐含公开》<br>所述装置包括:多个处理通道,所述处理通道中的每一个包括用以处理所述数据的电路,其中所述处理通道是以单指令多数据SIMD结构配置 | 第[0038]段:“Single Instruction, Multiple Data (SIMD) integer/floating point instructions... are instructions that reduce the overall number of instructions required to execute a particular program task. These instructions can speed up software performance by operating on multiple data elements in parallel.” 第[0071]段:“...eight multimedia SIMD registers for packed data...”。图5-8、10A-H等图示了在SIMD寄存器上对多个数据元素(如字节、字)并行执行混洗操作。 | 对比文件的核心是SIMD架构下的数据混洗。SIMD指令的本质是单条指令控制多个处理单元(即处理通道)对不同的数据元素并行执行相同操作。对比文件中反复提及的“packed data”(打包数据)存储在SIMD寄存器中,对这些数据元素的并行混洗操作,必然由多个对应的处理通道(例如ALU)来执行。因此,本领域技术人员能够毫无疑义地推断出,执行该混洗指令的装置必然包含多个以SIMD结构配置的处理通道,每个通道包含处理数据的电路(如ALU)。该特征被隐含公开。 |
| **技术特征C**:《隐含公开》<br>以及混洗器电路,其经配置以:从所述处理通道的源子组接收数据 | 第[0040]段:“This PSHUFB instruction shuffles bytes from a first source register in accordance to the contents of shuffle control bytes in a second source register.” 第[0084]段:“The first operand 510 in this example is comprised of a set of sixteen masks... The second operand 520 is comprised of sixteen data segments...”。图5、6、7具体展示了混洗逻辑(530, 600)从源数据操作数(520, 721)接收数据。 | 对比文件明确公开了混洗指令(PSHUFB)的操作对象是源寄存器(或内存)中的打包数据。这些数据由多个数据元素(如字节)组成,每个数据元素可视为来自一个处理通道的输出。混洗电路(如图5的shuffle logic 530,图6的circuit 600)从该源操作数接收所有数据元素。虽然未明确使用“源子组”一词,但“从源寄存器接收数据”这一操作,在本专利SIMD多通道的语境下,必然意味着从一组作为数据源的通道(即源子组)接收数据。其作用与本专利相同,都是为混洗提供输入数据。因此该特征被隐含公开。 |
| **技术特征D**:《直接公开》<br>响应于指示所述处理通道中的至少一些将数据输出到所述处理通道中的另一个的指令而将从所述处理通道的所述源子组接收的所述数据重排序 | 第[0040]段:“This PSHUFB instruction shuffles bytes from a first source register in accordance to the contents of shuffle control bytes in a second source register.” 第[0086]段:“The shuffle logic 530 selects data elements from the source data operand 520 based on the values in the mask operand 510 and arranges/shuffles the selected data elements into the appropriate positions in the resultant 540.” 图5、7、8等明确展示了根据掩码(指令的体现)对数据进行重排序(Shuffle)。 | 对比文件的核心就是公开了一种混洗指令(PSHUFB)及其执行电路。该指令明确指示了如何根据掩码(shuffle control bytes)将源数据中的元素重排序(复制、重新排列)到结果中的新位置。这直接对应于本专利中“响应于指令...将数据重排序”。其作用都是为了改变数据在处理通道间的分布顺序。因此该特征被直接公开。 |
| **技术特征E**:《隐含公开》<br>以及将经重排序数据分别输出到全部所述处理通道 | 第[0040]段伪代码及描述,例如结果写入DEST。图5、7、8显示重排序后的结果(540, 741, 831)是一个完整的打包数据块,包含所有数据元素位置的结果。 | 对比文件的混洗操作产生一个结果数据块(如RESULTANT 540),该结果块包含所有目标位置的数据(或零)。在SIMD架构中,这个结果数据块通常会被写回一个目的寄存器,该寄存器可被所有处理通道访问或用于后续操作。虽然未明确表述“输出到全部处理通道”,但将完整的混洗结果写入目的寄存器的操作,在本专利上下文(结果广播到所有通道)中,本领域技术人员可以理解为实现相同功能(使所有通道能获取结果)的一种方式。其作用都是分发混洗后的数据。因此该特征被隐含公开。 |
| **技术特征F**:《隐含公开》<br>其中所述处理通道的目的地子组将所述经重排序数据存储于对应寄存器中 | 第[0040]段伪代码:“DEST[(i*8)+7...(i*8)+0] ← SRC1[(index*8+7)... (index*8+0)]”。第[0086]段:“...arranges/shuffles the selected data elements into the appropriate positions in the resultant 540.” | 对比文件公开了混洗结果被存储到目标(DEST)中。在SIMD架构下,结果数据块的每个数据元素位置对应一个处理通道的寄存器(或寄存器的一部分)。当混洗结果写入DEST时,就意味着对应位置的数据被存储到了相应处理通道的存储位置(寄存器)。这隐含了“目的地子组”(即所有需要接收新数据的通道)存储数据。其作用与本专利相同,都是保存混洗结果。因此该特征被隐含公开。 |
| **技术特征G**:《未公开》<br>且其中除所述处理通道的所述目的地子组外的所述处理通道丢弃所述接收的经重排序数据 | 无相应记载。对比文件的混洗操作似乎直接覆盖整个结果寄存器的所有位置(用新数据或零),没有涉及“部分通道存储,部分通道丢弃”的选择性机制。 | 对比文件未公开任何关于“丢弃”数据的机制或概念。其混洗指令的结果是完整地写入目标寄存器,所有数据元素位置都被更新(无论是新数据还是零)。这不同于本专利中通过控制电路有选择地允许部分通道(目的地子组)存储,而其他通道丢弃数据的分段混洗机制。该特征未被公开。 |
| **技术特征H**:《未公开》<br>控制器电路,其经配置以允许所述处理通道的所述目的地子组的所述对应寄存器存储所述经重排序数据 | 无相应记载。对比文件未描述任何用于控制哪些寄存器可以存储混洗结果的控制器电路。 | 对比文件中的混洗操作由执行单元中的逻辑电路(如shuffle logic 530)直接完成,并将结果写入目标,未提及一个独立的控制器电路来选择性地允许某些寄存器存储数据。该特征未被公开。 |
| **技术特征I**:《未公开》<br>其中所述处理通道分组为多个排组...所述控制器电路经配置以基于偏移确定...排组标识...通道标识... | 无相应记载。对比文件完全没有提及将处理通道分组为“排组”(bank)的概念,也没有描述基于偏移计算排组和通道标识的控制器逻辑。 | 本专利的核心创新点之一在于通过排组划分和控制器基于偏移的计算来实现分段混洗,以节省硬件开销。对比文件没有涉及任何类似的分组处理、迭代混洗或基于偏移的复杂地址计算逻辑。该特征未被公开。 |
| **技术特征J**:《未公开》<br>其中所述处理通道分组为多个排组...其中为了从所述源子组接收数据,所述混洗器电路经配置以从仅一个排组接收数据... | 无相应记载。同上,对比文件没有“排组”概念。其混洗电路一次性接收整个源操作数的所有数据。 | 对比文件的混洗操作是针对整个源寄存器(如128位所有字节)一次性进行的,没有“每次仅从一个排组接收数据”的限制。该特征未被公开。 |
| **技术特征K**:《隐含公开》<br>其中所述混洗器电路经配置以基于由所述指令界定的偏移将所述数据重排序 | 第[0040]段:“...shuffles bytes from a first source register in accordance to the contents of shuffle control bytes...” 第[0097]段:“...shuffle mask value of 0x0D, which is decoded to be 0xD. Thus data N from data position 0xD is copied...” | 对比文件中的混洗控制字节(shuffle control bytes)本质上定义了每个目标位置应从源操作数的哪个位置(索引)获取数据。这个索引值可以理解为一种“偏移”,它指示了数据重排序的规则。混洗逻辑基于这些掩码值(即指令定义的偏移)进行重排序。其作用与本专利中基于偏移重排序相同。因此该特征被隐含公开。 |
| **技术特征L**:《未公开》<br>其中所述混洗器电路经配置以:从所述处理通道的连续源子组接收数据...其中所述处理通道的连续目的地子组将所述经重排序数据存储于对应寄存器中 | 无相应记载。对比文件的混洗操作是单次完成对整个数据块的重排,没有描述需要从“连续源子组”多次接收数据并进行多次迭代的混洗过程。 | 本专利的分段混洗方法涉及多次迭代(连续源/目的地子组)。对比文件的混洗指令和电路设计是针对单次、全宽度的数据重排,没有公开这种迭代的、分段完成的混洗机制。该特征未被公开。 |
| **技术特征M**:《未公开》<br>其中所述处理通道分组为多个排组,所述装置进一步包括:多路复用器...控制器电路...多路分用器... | 无相应记载。对比文件图6虽然显示了多路复用器(muxes),但这是混洗逻辑内部用于选择数据源的多路器,并非用于在排组间选择或广播数据。没有公开连接排组的多路复用器、多路分用器及相应的控制器。 | 对比文件未公开本专利中为了实现分段混洗和广播而设计的排组间互连结构(MUX 48, DEMUX 54)以及控制这些互连的控制器电路38。该特征未被公开。 |
| **技术特征N**:《隐含公开》<br>其中为了接收数据,所述混洗器电路经配置以接收用于处理通道的所述源子组的每一处理通道的完整标量或向量值... | 第[0040]段,图4A-4B,图7-8。对比文件公开的混洗操作对象是“packed data”,包括字节、字、双字等数据元素(参见图4A 410, 420, 430)。例如图7中,每个数据元素A-P都是一个完整的字节值。 | 对比文件混洗的数据单元正是“完整的数据值”,例如字节、字(16位)、双字(32位)。这些数据元素是标量或向量计算的基本单元。混洗电路接收、重排和输出的正是这些完整的数据值,而非数据的子部分。其作用与本专利相同。因此该特征被隐含公开。 |
| **技术特征O**:《未公开》<br>其进一步包括图形处理单元GPU,其中所述GPU包括所述多个处理通道 | 无相应记载。对比文件主要描述在通用处理器(如处理器102)或协处理器中实现混洗指令,并未特指图形处理单元(GPU)。 | 对比文件的应用背景是通用计算和多媒体处理,并未将混洗电路限定在或应用于图形处理单元(GPU)中。该特征未被公开。 |
| **技术特征P**:《直接公开》<br>其中所述装置包括以下各项中的一者:集成电路;微处理器;或无线通信装置。 | 第[0046]段:“System 100 is representative of processing systems based on the PENTIUM&null; III, PENTIUM&null; 4, Celeron&null;, Xeon&null;, Itanium&null;, XScale&null; and/or StrongARM&null; microprocessors...” 第[0047]段:“Alternative embodiments... handheld devices include cellular phones...”。图1A-1C展示了包含处理器(微处理器)的计算机系统。 | 对比文件明确公开了包含所描述混洗功能的装置可以是微处理器(如Pentium系列),也可以是无线通信装置(如手机)。这直接对应于本专利权利要求中的选项。因此该特征被直接公开。 |
<<<A>>><<<D>>><<<P>>><<<b>>><<<c>>><<<e>>><<<f>>><<<k>>><<<n>>>