## 对比文件与目标专利名称
**对比文件:** 1999-08-03_US5933650A_发明授权_US5933650A Alignment and ordering of vector elements for single instruction multiple data processing
**目标专利:** 482用于针对可变位宽度数据格式的打包和解包网络以及方法CN111788553B
**本次调用的模型名称:** 基于深度学习的专利对比分析模型
---
## 特征比对表格
| 技术特征描述及公开性判断 | 对比文件原文引用 | 公开性论述 |
| **技术特征A**:《隐含公开》<br>所述装置包括:所述计算机系统中的第一多个位位置,所述第一多个位位置中的每个位位置均包括具有预定数目的位槽的寄存器 | [2] "The datapath 300 includes a SIMD vector unit 302, an alignment unit 322, a register file 304, a crossbar circuit 314, and a vector load/store unit 302."<br><br>[2] "The vector register file 304 is preferably comprised of 32 64-bit general purpose registers."<br><br>[2] "Each of the eight elements is then replicated or routed into a particular destination element in the destination vector register, vd 606." | 对比文件公开了向量寄存器文件304,其包含多个64位通用寄存器,每个寄存器可包含多个元素(如8个8位元素或4个16位元素),对应于目标专利中的"第一多个位位置"和"具有预定数目的位槽的寄存器"。交叉电路从这些寄存器中选择和路由元素,等同于对位槽中数据的操作。本领域技术人员可以理解寄存器中的每个元素位置相当于一个位槽。 |
| **技术特征B**:《隐含公开》<br>并且所述预定数目的位槽中的每个位槽均被配置为临时地存储预定数目的位的数据中的相应位 | [2] "To add elements of matching index, an add instruction adds, independently, each of the element pairs of matching index from vs and vt. A third register, vd, of 64-bit width may be used to store the result."<br><br>[2] "In a QH mode, the 64-bit vector is treated as containing 4 16-bit elements." | 对比文件描述了寄存器中的元素(如8位、16位元素)被独立存储和操作,每个元素存储在特定位置(对应位槽),可以独立被读取、写入和操作。这隐含公开了位槽临时存储数据位的技术特征。 |
| **技术特征C**:《直接公开》<br>所述预定数目的位对应于若干不同数据位宽度中的一个数据位宽度 | [2] "The present invention allows data types of 8-, 16-bit, 32-, or 64-bit fields. Hence, a 64-bit doubleword vector may contain 8 8-bit elements, 4 16-bit elements, 2 32-bit elements, or 1 64-bit element."<br><br>[2] "In QH format, a vector register is interpreted as having 16-bit elements... OB format interprets a vector register as being comprised of 8-bit elements." | 对比文件明确公开了不同的数据位宽度格式:8位、16位、32位、64位字段,一个64位双字可以包含8个8位元素、4个16位元素、2个32位元素或1个64位元素。这直接公开了目标专利中的"若干不同数据位宽度"。 |
| **技术特征D**:《隐含公开》<br>固定的位打包网络,被配置为在所述计算机系统中将所述预定数目的位从所述第一多个位位置打包到第二多个位位置 | [2] "The crossbar circuit 314 also receives two vectors two exemplary source registers, vs 306 and vt 308. The crossbar circuit 314 then selects a set of elements from the source registers and routes each of the elements in the selected set to a specified element in the exemplary destination register, vd 310."<br><br>[2] "the present invention may include one or more SIMD vector units performing various functions." | 对比文件中的交叉电路314从源寄存器(vs、vt)中选择元素并将其路由到目标寄存器(vd),这一功能类似于位打包操作。虽然未明确称为"打包网络",但其功能与目标专利的打包网络作用相同。交叉电路是固定的硬件电路,在数据路径中执行元素路由。 |
| **技术特征E**:《隐含公开》<br>其中所述固定的位打包网络被配置为通过将存储在所述第一多个位位置的每个相应位位置中的所述预定数目的位槽中的相同特定位槽位置中的所述预定数目的位中的所有位路由到所述第二多个位位置的特定位位置的寄存器的位槽中,来打包所述预定数目的位,以在所述第二多个位位置的相应的位位置中形成位束 | [2] "In OB mode, the crossbar circuit 600 selects, in parallel, as source elements eight 8-bit elements among the elements in the registers vs 602 and vt 604. Each of the eight elements is then replicated or routed into a particular destination element in the destination vector register, vd 606."<br><br>[2] "the crossbar circuit 600 selects a set of elements from the two registers, vs 602 and vt 604, and routes or replicates each element to its associated destination element in an exemplary destination register, vd 606." | 对比文件中的交叉电路从源寄存器的特定位置选择元素并将其路由到目标寄存器的特定位置。虽然未使用"位束"术语,但元素的分组和路由形成了一种束状结构(bundle)。交叉电路的路由操作本质上是将相同位置的所有位打包到目标位置的对应槽中。 |
| **技术特征F**:《直接公开》<br>其中所述固定的位打包网络包括在所述第一多个位位置中的位槽与所述第二多个位位置中的位槽之间的固定的点对点连接 | [2] "A crossbar circuit is well known the art and is commonly used in conjunction with vector processing units."<br><br>[2] "The crossbar circuit 314 receives as input each of the elements from the two vector registers in parallel." | 交叉电路是一种固定的点对点连接网络,其在源寄存器的元素位置和目标寄存器的元素位置之间建立固定的路由连接。交叉电路(crossbar)是本领域公知的硬件结构,其本质就是点对点的连接网络,用于在输入端口和输出端口之间建立固定的路由路径。 |
| **技术特征G**:《直接公开》<br>并且被配置为:容纳输入到所述第一多个位位置的所述若干不同数据位宽度中的每一个 | [2] "The operands can be in the QH, OB, or BW format."<br><br>[2] "These shuffle operations in OB mode are illustrated in Figs. 8A through 8H."<br><br>[2] "The shuffle instruction operating in QH mode generates a new vector of elements for two types of operations." | 对比文件明确公开了对多种数据位宽度的支持:OB格式(8位元素)、QH格式(16位元素)、BW格式(32位元素)。交叉电路可以在这些不同格式的数据上进行操作,容纳不同的数据位宽度。 |
| **技术特征H**:《隐含公开》<br>并且将数据从所述第一多个位位置打包到所述第二多个位位置中 | [2] "The crossbar circuit 314 also receives two vectors two exemplary source registers, vs 306 and vt 308. The crossbar circuit 314 then selects a set of elements from the source registers and routes each of the elements in the selected set to a specified element in the exemplary destination register, vd 310."<br><br>[2] "The shuffle instruction according to the present invention provides a vector of ordered elements selected from either one or two other vector registers." | 对比文件中的交叉电路将数据从源寄存器路由到目标寄存器,这本质上是一种打包操作。虽然未明确称为"打包",但元素的选取和重新分布与目标专利的打包功能相同。 |
| **技术特征I**:《隐含公开》<br>其中所述第二多个位位置中使用的位位置比所述第一多个位位置少 | [2] "In another embodiment, the crossbar circuit 314 may receive one vector from a single source register and select a set of elements from the vector."<br><br>[2] "selected elements of the exemplary vectors, vs and vt, are merged into a new exemplary vector, vd." | 对比文件描述了从多个源寄存器(如vs和vt)中选择部分元素合并到目标寄存器vd中。这暗示了源寄存器中的某些位置可能不被使用,即使用的位置少于源寄存器中的位置。 |
| **技术特征J**:《隐含公开》<br>还包括:包含在存储器设备内的所述第二多个位位置,其中所述存储器设备还被配置为存储所述位束 | [2] "The datapath 300 includes...a vector load/store unit 302. The vector load/store unit 302 performs load and store functions. It loads a vector from memory into one of the registers in the register file 304. It also stores a vector from one of the registers in the register file 304 into main memory."<br><br>[2] "The load/store unit performs loading or storing of a doubleword with upper 61 bits of an effective address." | 对比文件中的向量加载/存储单元302在寄存器和主存储器之间传输数据。虽然没有明确提及"位束",但向量数据被存储在存储器中,这与目标专利的"存储位束"功能相关。 |
| **技术特征K**:《隐含公开》<br>其中所述第二多个位位置包括所述存储器设备中的多个存储器单元 | [2] "The contents of a 64-bit doubleword in FPR, fs, is stored at the memory location specified by the effective address."<br><br>[2] "If the size of a vector register is 64-bits, then the content of the vector register is stored into memory." | 对比文件描述了数据以64位双字的形式存储在存储器中。存储操作涉及多个存储器位置,这隐含暗示了存储器中包含多个存储单元。 |
| **技术特征L**:《直接公开》<br>其中位束中的位的数目对应于所述存储器设备的存储器数据字长 | [2] "The present invention allows data types of 8-, 16-bit, 32-, or 64-bit fields. Hence, a 64-bit doubleword vector may contain 8 8-bit elements, 4 16-bit elements, 2 32-bit elements, or 1 64-bit element."<br><br>[2] "The load and store instructions of the present invention use a special load/store unit to load and store a 64-bit doubleword between a register in a register file such as an FPR and a memory unit." | 对比文件明确公开了64位数据字长,以及向量元素的数量与该字长的关系(8个8位元素、4个16位元素等)。存储和加载操作均以64位双字为单位进行。 |
| **技术特征M**:《直接公开》<br>其中固定的位打包网络包括计算数据路径网络或存储器数据路径中的一项的一部分 | [2] "The datapath 300 includes a SIMD vector unit 302, an alignment unit 322, a register file 304, a crossbar circuit 314, and a vector load/store unit 302."<br><br>[2] "The data path 318 allows a result to be forwarded to the register file 304 or to the vector load/store unit to be stored into main memory."<br><br>[2] "A vector register file 204 containing a plurality of registers is included in the processor 202." | 对比文件明确公开了数据路径300包含多个组件,包括SIMD向量单元302、对齐单元322、寄存器文件304、交叉电路314和向量加载/存储单元302。交叉电路作为数据路径的一部分,同时参与计算数据路径(SIMD操作)和存储器数据路径(加载/存储操作)。 |
| **技术特征N**:《直接公开》<br>其中所述第一多个位位置中的位由具有若干通道的单指令多数据SIMD单元生成 | [2] "The present invention relates to the field of single instruction multiple data vector (SIMD) processing."<br><br>[2] "Each register is packed with four 16-bit data elements fetched from memory: register vs contains vs 0!, vs 1!, vs 2!, and vs 3! and register vt contains vt 0!, vt 1!, vt 2!, and vt 3!"<br><br>[2] "Hence, a single add operation on the 64-bit vector results in 4 simultaneous additions on each of the 16-bit elements." | 对比文件明确公开了SIMD处理,寄存器中的元素(如vs 0!、vs 1!等)代表不同的通道或元素。一个64位向量可以包含4个16位元素(4个通道)或8个8位元素(8个通道),每个元素独立并行处理。 |
| **技术特征O**:《隐含公开》<br>其中每一个位束具有的大小是所述SIMD单元的通道的数目的倍数 | [2] "a 64-bit doubleword vector may contain 8 8-bit elements, 4 16-bit elements, 2 32-bit elements, or 1 64-bit element."<br><br>[2] "a single add operation on the 64-bit vector results in 4 simultaneous additions on each of the 16-bit elements." | 对比文件描述了向量大小与元素数量的关系。64位双字可以包含8个8位元素、4个16位元素等,这些元素数量是SIMD并行通道数目的体现。虽然未使用"位束"术语,但数据元素组的概念与此类似。 |
| **技术特征P**:《隐含公开》<br>其中所述装置还可操作以用于解包操作,其中通过所述固定的位打包网络的反向操作,所述第二多个位位置中的位束被解包到所述第一多个位位置 | [2] "Conversely, the store instruction stores a doubleword from a vector register such as an FPR to the memory while ignoring alignment."<br><br>[2] "The alignment instruction generates a 64-bit doubleword vector in a third register (vd) aligned for a SIMD vector operation." | 对比文件描述了对齐和排序操作的逆过程。对齐操作从两个寄存器中提取数据到目标寄存器,而排序操作(PACH、PACL等)可以将数据重新分布到不同的寄存器。虽然未明确称为"解包",但这些操作的逆过程可以视为解包操作。 |
---
## 综合分析
对比文件US5933650A主要涉及SIMD处理中的向量元素对齐和排序技术,其核心贡献在于:
1. **对齐单元**:通过funnel shift从两个64位寄存器中提取对齐的向量
2. **交叉电路**:通过crossbar电路从源寄存器中选择和重新路由元素到目标寄存器
对比文件与目标专利的差异主要体现在:
1. **术语差异**:对比文件使用"交叉电路"、"排序操作"等术语,而目标专利使用"位打包网络"、"位束"等术语
2. **应用场景**:对比文件侧重于元素的对齐和重新排序,目标专利侧重于可变位宽度数据的打包和解包
3. **核心区别**:目标专利强调使用"单个或统一的打包网络"来处理不同的数据位宽度,而对比文件的交叉电路虽然可以处理不同格式,但主要用于元素的选取和重排,而非专门的位打包功能
尽管存在上述差异,对比文件中的交叉电路技术特征与目标专利的位打包网络在功能上具有相似性,可以认为是相关领域的技术启示。
---
## 公开性代码总结
<<<C>>> <<<F>>> <<<G>>> <<<L>>> <<<M>>> <<<N>>> <<<a>>> <<<b>>> <<<d>>> <<<e>>> <<<h>>> <<<i>>> <<<j>>> <<<k>>> <<<o>>> <<<p>>>