目标专利:585通过使用数据索引化累加器使标量操作并行化的方法和处理器
专利公开号:CN106537330B
专利权人:高通股份有限公司
无效请求书提交日期:2026年
非显而易见性评估仅供参考,不构成法律建议。
| 编号 | 名称 |
|---|
一种向量处理器,其包括: 向量寄存器堆,其包括各自经配置以提供多个累加器的多个向量寄存器; 所述向量寄存器堆经配置以提供多个写入端口;且 所述向量处理器经配置以: 接收输入数据向量;和 针对所述多个写入端口中的每一写入端口,执行一或多个向量操作以:存取所述输入数据向量的输入数据值; 基于所述输入数据值,确定指示所述多个向量寄存器当中的向量寄存器的寄存器索引; 基于所述输入数据值,确定指示所述向量寄存器的所述多个累加器当中的累加器的累加器索引; 基于所述寄存器索引和所述累加器索引,对由所述寄存器索引指示的所述向量寄存器执行标量操作;和将所述标量操作的结果写入到由所述寄存器索引指示的所述向量寄存器。
根据权利要求1所述的向量处理器,其中所述向量寄存器堆包括多个物理寄存器堆,每一物理寄存器堆提供所述多个写入端口当中的一或多个写入端口; 所述向量处理器经配置以: 接收所述输入数据向量作为多个输入数据向量子集,每一输入数据向量子集对应于所述多个物理寄存器堆当中的一个物理寄存器堆;和通过同时对所述多个物理寄存器堆当中的每一物理寄存器堆执行所述一或多个向量操作来执行所述一或多个向量操作。
根据权利要求1所述的向量处理器,其经配置以通过执行所述输入数据值的多个位的一或多个逻辑右移来确定所述寄存器索引。
根据权利要求1所述的向量处理器,其经配置以通过将所述输入数据值的一或多个高阶位掩蔽为零来确定所述累加器索引。
根据权利要求1所述的向量处理器,其经配置以通过使由所述累加器索引指示的所述累加器递增来执行所述标量操作。
根据权利要求1所述的向量处理器,经进一步配置以执行所述一或多个向量操作以:基于针对所述多个写入端口中的每一写入端口的所述寄存器索引和所述累加器索引中的一或多者,确定可合并针对所述多个写入端口中的对应两个或更多个写入端口的两个或更多个标量操作;和将所述两个或更多个标量操作组合为经合并标量操作; 其中所述向量处理器经配置以通过执行所述经合并标量操作来执行所述标量操作。
根据权利要求6所述的向量处理器,其经配置以执行所述一或多个向量操作,以确定可通过确定针对第一写入端口的所述寄存器索引与针对所述多个写入端口中的一或多个其它写入端口的所述寄存器索引相同,来合并针对所述多个写入端口中的所述对应两个或更多个写入端口的所述两个或更多个标量操作。
根据权利要求7所述的向量处理器,其经配置以执行所述一或多个向量操作,以确定可通过进一步确定针对所述第一写入端口的所述累加器索引与针对所述多个写入端口中的所述一或多个其它写入端口的所述累加器索引相同,来合并针对所述多个写入端口中的所述对应两个或更多个写入端口的所述两个或更多个标量操作。
根据权利要求1所述的向量处理器,其集成到集成电路IC中。
根据权利要求1所述的向量处理器,其集成到选自由以下各项组成的群组的装置中:机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理PDA、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘DVD播放器以及便携式数字视频播放器。
一种向量处理器,其包括: 用于接收输入数据向量的装置;和 针对所述向量处理器的向量寄存器堆的多个写入端口中的每一写入端口:用于存取所述输入数据向量的输入数据值的装置; 用于基于所述输入数据值确定指示所述向量寄存器堆中的多个向量寄存器当中的向量寄存器的寄存器索引的装置; 用于基于所述输入数据值确定指示所述向量寄存器的多个累加器当中的累加器的累加器索引的装置; 用于基于所述寄存器索引和所述累加器索引对由所述寄存器索引指示的所述向量寄存器执行标量操作的装置;和用于将所述标量操作的结果写入到由所述寄存器索引指示的所述向量寄存器的装置。
一种用于用向量处理器使标量操作并行化的方法,其包括:通过向量处理器接收输入数据向量;和 针对所述向量处理器的向量寄存器堆的多个写入端口中的每一写入端口,执行一或多个向量操作以:存取所述输入数据向量的输入数据值; 基于所述输入数据值,确定指示所述向量寄存器堆中的多个向量寄存器当中的向量寄存器的寄存器索引; 基于所述输入数据值,确定指示所述向量寄存器的多个累加器当中的累加器的累加器索引; 基于所述寄存器索引和所述累加器索引,对由所述寄存器索引指示的所述向量寄存器执行标量操作;和将所述标量操作的结果写入到由所述寄存器索引指示的所述向量寄存器。
根据权利要求12所述的方法,其中: 所述向量寄存器堆包括多个物理寄存器堆,每一物理寄存器堆提供所述多个写入端口当中的一或多个写入端口; 所述输入数据向量包括多个输入数据向量子集,每一输入数据向量子集对应于所述多个物理寄存器堆当中的一个物理寄存器堆;和执行所述一或多个向量操作包括同时对所述多个物理寄存器堆当中的每一物理寄存器堆执行所述一或多个向量操作。
根据权利要求12所述的方法,其中确定所述寄存器索引包括执行所述输入数据值的多个位的一或多个逻辑右移。
根据权利要求12所述的方法,其中确定所述累加器索引包括将所述输入数据值的一或多个高阶位掩蔽为零。
根据权利要求12所述的方法,其中执行所述标量操作包括使由所述累加器索引指示的所述累加器递增。
根据权利要求12所述的方法,其进一步包括: 基于针对所述多个写入端口中的每一写入端口的所述寄存器索引和所述累加器索引中的一或多者,确定可合并针对所述多个写入端口中的对应两个或更多个写入端口的两个或更多个标量操作;和将所述两个或更多个标量操作组合为经合并标量操作; 其中执行所述标量操作包括执行所述经合并标量操作。
根据权利要求17所述的方法,其中确定可合并针对所述多个写入端口中的所述对应两个或更多个写入端口的所述两个或更多个标量操作包括确定针对第一写入端口的所述寄存器索引与针对所述多个写入端口中的一或多个其它写入端口的所述寄存器索引相同。
根据权利要求18所述的方法,其中确定可合并针对所述多个写入端口中的所述对应两个或更多个写入端口的所述两个或更多个标量操作进一步包括确定针对所述第一写入端口的所述累加器索引与针对所述多个写入端口中的所述一或多个其它写入端口的所述累加器索引相同。
一种非暂时性计算机可读媒体,其存储有致使向量处理器执行以下操作的计算机可执行指令:接收输入数据向量;和 针对所述向量处理器的向量寄存器堆的多个写入端口中的每一写入端口,执行一或多个向量操作以:存取所述输入数据向量的输入数据值; 基于所述输入数据值,确定指示所述向量寄存器堆中的多个向量寄存器当中的向量寄存器的寄存器索引; 基于所述输入数据值,确定指示所述向量寄存器的多个累加器当中的累加器的累加器索引; 基于所述寄存器索引和所述累加器索引,对由所述寄存器索引指示的所述向量寄存器执行标量操作;和将所述标量操作的结果写入到由所述寄存器索引指示的所述向量寄存器。
根据权利要求20所述的非暂时性计算机可读媒体,其存储有致使所述向量处理器执行以下操作的计算机可执行指令:接收所述输入数据向量作为多个输入数据向量子集,每一输入数据向量子集对应于所述向量寄存器堆的多个物理寄存器堆当中的物理寄存器堆;和通过同时对所述多个物理寄存器堆当中的每一物理寄存器堆执行所述一或多个向量操作来执行所述一或多个向量操作。
根据权利要求20所述的非暂时性计算机可读媒体,其存储有致使所述向量处理器通过执行所述输入数据值的多个位的一或多个逻辑右移来确定所述寄存器索引的计算机可执行指令。
根据权利要求20所述的非暂时性计算机可读媒体,其存储有致使所述向量处理器通过将所述输入数据值的一或多个高阶位掩蔽为零来确定所述累加器索引的计算机可执行指令。
根据权利要求20所述的非暂时性计算机可读媒体,其存储有致使所述向量处理器通过使由所述累加器索引指示的所述累加器递增来执行所述标量操作的计算机可执行指令。
根据权利要求20所述的非暂时性计算机可读媒体,其存储有致使所述向量处理器进一步执行以下操作的计算机可执行指令:基于针对所述多个写入端口中的每一写入端口的所述寄存器索引和所述累加器索引中的一或多者,确定可合并针对所述多个写入端口中的对应两个或更多个写入端口的两个或更多个标量操作;和将所述两个或更多个标量操作组合为经合并标量操作; 其中所述计算机可执行指令致使所述向量处理器通过执行所述经合并标量操作来执行所述标量操作。
根据权利要求25所述的非暂时性计算机可读媒体,其存储有致使所述向量处理器确定可通过确定针对第一写入端口的所述寄存器索引与针对所述多个写入端口中的一或多个其它写入端口的所述寄存器索引相同,来合并针对所述多个写入端口中的所述对应两个或更多个写入端口的所述两个或更多个标量操作的计算机可执行指令。
根据权利要求26所述的非暂时性计算机可读媒体,其存储有致使所述向量处理器确定可通过进一步确定针对所述第一写入端口的所述累加器索引与针对所述多个写入端口中的所述一或多个其它写入端口的所述累加器索引相同,来合并针对所述多个写入端口中的所述对应两个或更多个写入端口的所述两个或更多个标量操作的计算机可执行指令。