CN115729861A - 用于向量的存储器内关联处理 - Google Patents
用于向量的存储器内关联处理 Download PDFInfo
- Publication number
- CN115729861A CN115729861A CN202211049741.XA CN202211049741A CN115729861A CN 115729861 A CN115729861 A CN 115729861A CN 202211049741 A CN202211049741 A CN 202211049741A CN 115729861 A CN115729861 A CN 115729861A
- Authority
- CN
- China
- Prior art keywords
- vector
- bits
- data representing
- plane
- tile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000013598 vector Substances 0.000 title claims abstract description 615
- 238000012545 processing Methods 0.000 title claims abstract description 98
- 230000015654 memory Effects 0.000 claims abstract description 94
- 238000000034 method Methods 0.000 claims description 174
- 238000013507 mapping Methods 0.000 claims description 107
- 230000008569 process Effects 0.000 claims description 52
- 238000004364 calculation method Methods 0.000 claims description 38
- 230000011664 signaling Effects 0.000 claims description 16
- 238000004891 communication Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8038—Associative processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
本申请案是针对用于向量的存储器内关联处理。装置可对第一向量的第一相连位集和第二向量的第一相连位集执行计算操作。所述第一相连位集可存储于存储器裸片的第一平面中,且所述计算操作可基于用于所述计算操作的真值表。所述装置可对所述第一向量的第二相连位集和所述第二向量的第二相连位集执行第二计算操作。所述第二相连位集可存储于所述存储器裸片的第二平面中且所述计算操作基于用于所述计算操作的所述真值表。
Description
交叉引用
本专利申请案主张埃勒(EILERT)等人于2022年1月13日提交的标题为“用于向量的存储器内关联处理(IN-MEMORY ASSOCIATIVE PROCESSING FOR VECTORS)”的第17/647,944号美国专利申请案,以及埃勒等人于2021年8月31日提交的名称为“用于向量的存储器内关联处理(IN-MEMORY ASSOCIATIVE PROCESSING FOR VECTORS)”的第63/239,112号美国临时专利申请案的优先权,所述每一篇专利申请案均转让给本受让人且以全文引用的方式明确并入本文中。
技术领域
技术领域涉及用于向量的存储器内关联处理。
背景技术
存储器装置广泛用于将信息存储在例如计算机、用户装置、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可以被编程为两个支持状态中的一个,经常由逻辑1或逻辑0表示。在一些实例中,单个存储器单元可以支持超过两个状态,其中的任一状态可存储。为了存取所存储信息,组件可以读取或感测存储器装置中的至少一个所存储状态。为了存储信息,组件可在存储器装置中写入状态或对状态进行编程。
存在各种类型的存储器装置和存储器单元,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、静态RAM(SRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、自选存储器、硫族化物存储器技术等。存储器单元可为易失性的或非易失性的。非易失性存储器,例如FeRAM,可维持其所存储的逻辑状态很长一段时间,即使无外部电源存在也是这样。例如DRAM的易失性存储器装置在与外部电源断开连接时可能会丢失其所存储的状态。
发明内容
描述一种设备。所述设备可包含存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列;和逻辑,其与所述存储器裸片耦合且被配置成:使用关联处理对表示向量的第一相连位集的数据执行计算操作,所述向量是用于所述计算操作的操作数,所述数据表示存储于所述多个拼片中的拼片的第一平面中的所述第一相连位集;和至少部分地基于对表示所述第一相连位集的所述数据执行所述计算操作,使用关联处理对表示所述向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的所述拼片的第二平面中的所述第二相连位集。
描述一种设备。所述设备可包含:存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列;和逻辑,其与所述存储器裸片耦合且被配置成:使用关联处理对表示向量的第一相连位集的数据执行计算操作,所述向量是用于所述计算操作的操作数,所述数据表示存储于所述多个拼片中的第一拼片的第一平面中的所述第一相连位集;和至少部分地基于对所述第一相连位集执行所述计算操作,使用关联处理对表示所述向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。
描述一种设备。所述设备可包含存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列;和逻辑,其与所述存储器裸片耦合且被配置成:至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的拼片的第一平面中的所述第一相连位集;和至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的所述拼片的第二平面中的所述第二相连位集。
描述一种设备。所述设备可包含存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列;和逻辑,其与所述存储器裸片耦合且被配置成:至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第一拼片的第一平面中的所述第一相连位集;和至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。
描述了一种方法。所述方法可包含至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于多个拼片中的第一拼片的第一平面中的所述第一相连位集;和至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。
描述了一种方法。所述方法可包含至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于包括多个拼片的存储器裸片的第一平面中的所述第一相连位集,所述多个拼片各自包括多个平面;和至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述存储器裸片的第二平面中的所述第二相连位集。
附图说明
图1说明根据本文所公开的实例的支持用于向量的存储器内关联处理的系统的实例。
图2说明根据本文所公开的实例的使用关联处理的向量计算的实例。
图3说明根据本文所公开的实例的支持用于向量的存储器内关联处理的平面的实例。
图4说明根据本文所公开的实例的使用根据向量映射方案配置的拼片的关联计算的实例。
图5说明根据本文所公开的实例的使用根据向量映射方案配置的拼片的关联计算的实例。
图6说明根据本文所公开的实例的支持用于向量的存储器内关联处理的过程流的实例。
图7示出根据本文所公开的实例的支持用于向量的存储器内关联处理的装置的框图。
图8到12示出说明根据本文所公开的实例的支持用于向量的存储器内关联处理的一或多种方法的流程图。
具体实施方式
在一些系统中,主机装置可将各种处理任务分担给电子装置,例如加速器。举例来说,主机装置可将向量计算分担给电子装置,所述电子装置可使用计算引擎和处理技术执行向量计算。此向量计算分担可涉及将向量或向量信息从主机装置传达给电子装置,并且继而将结果从电子装置传达给主机装置。因此,电子装置的带宽可受电子装置和主机装置之间的通信接口,以及计算引擎的大小和串行处理的约束。根据本文中所描述的技术,主机装置基本上可通过将处理任务分担给关联处理器存储器(APM)系统来增加处理带宽,所述APM系统使用存储器内关联性处理以及其它方面并行地执行向量计算。
在一些实例中,APM系统可支持多种不同的向量映射方案,其中向量映射方案可指用于将向量写入到APM系统的存储器的组织方案。举例来说,APM系统可支持第一向量映射方案和第二向量映射方案。APM系统可在向量映射方案之间进行选择(例如,可选择向量映射方案中的一个),此后根据所选择的向量映射方案将向量写入到APM系统的存储器。在将向量写入到存储器之后,APM系统可使用关联处理根据选择的向量映射方案对向量执行计算操作。
首先在如参考图1和2所描述的系统和向量计算的上下文中描述本公开的特征。在如参考图3-6所描述的平面、向量映射方案和过程流的上下文中描述本公开的特征。参考涉及如参考图7到12所描述的存储器内关联处理系统的设备图和流程图进一步说明且描述本公开的这些和其它特征。
图1说明根据本文所公开的实例的支持用于向量的存储器内关联处理的系统100的实例。系统100可包含主机装置105和关联处理存储器(APM)系统110。主机装置105可与APM系统110以及包含系统100的装置的其它组件交互(例如,与其通信、对其进行控制)。在一些实例中,主机装置105和APM系统110可通过接口115交互,所述接口115可为计算高速链路(CXL)接口或其它类型的接口的实例。
在一些实例中,系统100可包含在计算装置、电子装置、移动计算装置或无线装置中,或与计算装置、电子装置、移动计算装置或无线装置耦合。装置可为便携式电子装置。举例来说,装置可以是计算机、膝上型计算机、平板计算机、智能手机、蜂窝电话、可穿戴装置、因特网连接装置等。主机装置105可以是或包含芯片上系统(SoC)、通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或可为这些类型的组件的组合。在一些实例中,主机装置105可被称为主机、主机系统或其它合适的术语。
APM系统110可用作用于主机装置105的加速器(例如,高速处理器)以使得主机装置105可将各种处理任务分担给APM系统110,所述APM系统110可被配置成比主机装置105更快速地执行处理任务。举例来说,装置105可将程序(例如,指令集,例如精简指令集V(RISC-V)、向量指令)发送给APM系统110以供APM系统110执行。作为所述程序的部分,或由所述程序引导,APM系统110可对向量执行各种计算操作(例如,APM系统110可执行向量计算)。计算操作可指逻辑操作、算术操作,或涉及向量操控的其它类型的操作。向量可包含各自具有相应数量的位的一或多个元素。向量的长度或大小可指向量中的元素数量且元素的长度或大小可指元素中的位数量。
APM控制器120可被配置成代表APM装置125与主机装置105介接。在从主机装置105接收到程序之后,APM控制器120可即刻解析程序并且引导或以其它方式提示APM装置125执行与程序相关联或由程序指示的各种计算操作。在一些实例中,APM控制器120可(例如,从存储器130)检索用于计算操作的向量并且可将所述向量传达给APM装置125以用于关联处理。在一些实例中,APM控制器120可向APM装置125指示用于计算操作的向量以使得APM装置125可从存储器130检索向量。在一些实例中,主机装置105可将向量提供给APM系统110。因此,存储器130可被配置成存储可被APM控制器120、APM装置125、主机装置105或其组合存取的向量。
用于APM装置125处的计算操作的向量可由从主机装置105接收的程序或由与程序相关联的其它控制信令(例如,其它单独的控制信令)指示(或附有所述程序)。举例来说,指示用于一对向量的计算操作的程序可包含存储器130的其中存储有向量的一或多个地址(或指向一或多个地址的一或多个指针)。虽然示出为包含在APM系统110中,但存储器130可在APM系统110外部,但仍然与APM系统110耦合。虽然示出为单个组件,但存储器130的功能性可由多个存储器130提供。
APM装置125可包含存储器单元,例如被配置成存储与计算操作相关联的向量(例如,向量操作数、向量结果)的内容可寻址存储器单元(CAM)。向量操作数可为一向量,即用于计算操作的操作数(例如,向量操作数可为被执行计算操作的向量)。向量结果可为由向量计算产生的向量。
APM系统110可被配置成存储用于各种计算操作的信息,例如真值表,其中用于给定计算操作的信息(例如,真值表)可指示针对各种逻辑值组合的计算操作的结果。举例来说,APM系统110可存储用于逻辑操作(例如,“和”操作、“或”操作、“异或”操作、“非”操作、“与非”操作、“或非”操作、“异或非”操作)以及算术操作(例如,加法操作、减法操作)以及其它类型的操作的信息(例如,一或多个真值表)。存储用于计算操作的信息(例如,一或多个真值表)的存储器单元可存储计算操作的操作数的各种逻辑值组合以及每一逻辑值组合的对应结果和进位位(如果适用)。APM系统110可将用于关联处理的真值表存储在可与APM系统110耦合或包含在APM系统110中的一或多个存储器中(例如,一或多个裸片上掩模ROM中)。举例来说,真值表可存储于存储器130中、APM装置125的本地的存储器中,或这两者。在任一实例中,APM装置125可在装置上高速缓存共同指令(例如,而非提取所述共同指令或接收所述共同指令)。
至少一些APM装置125(如果不是全部的APM装置125)可使用关联处理对存储于那个APM装置125中的向量执行计算操作。不同于串行处理(其中向量在处理器和存储器之间来回移动),关联处理可涉及在存储器内(还被称作“就地”)搜索和写入向量,这可允许增加处理带宽的并行性。就地执行计算操作还可以允许系统100避开主机装置105和APM系统110之间的接口处的瓶颈,以及其它优点,这相较于其它处理技术(例如串行处理)可减小时延和功率消耗。关联处理也可被称作关联计算或其它合适的术语。
在一些实例中,使用关联处理执行计算操作的APM装置125可利用信息(例如真值表)使用例如“搜索和写入”技术以逐位方式执行计算操作。举例来说,如果APM装置125包含存储用于计算操作的向量操作数的CAM单元,那么APM装置125可在CAM单元中搜索向量操作数的与真值表中对应于那个计算操作的条目匹配的位,基于真值表的匹配条目确定用于所述位的计算操作的结果,并且将结果写回内容可寻址存储器。APM装置125接着可继续进行到向量的次有效位(next significant bit)并且使用关联处理对那些位执行计算操作。在一些实例中,用于位的计算操作可涉及作为较不有效位上的计算操作的部分所确定的进位位。
每一APM装置125可包含一或多个裸片135,所述裸片也可被称作存储器裸片、半导体裸片或其它合适的术语。裸片135可包含多个拼片140,所述拼片140继而可各自包含多个平面145。在一些实例中,拼片140可被配置成使得每拼片的单个平面145可同时操作或可同时激活(例如,每拼片的一个平面可同时执行关联计算)。然而,任何数量的拼片140可同时处于活动中(例如,任何数量的拼片可同时执行关联计算)。因此,拼片140可并行地操作,这可增加可在一时间间隔期间执行的计算操作的数量,继而可增加APM装置125的与其它不同技术有关的带宽。相较于使用单个APM装置125,使用多个APM装置125可进一步增加APM系统110的与其它系统有关的带宽。每一APM装置125可包含控制APM装置125的操作的本地控制器或逻辑。
每一平面145可包含存储器阵列,其包含存储器单元,例如CAM单元。存储器阵列中的存储器单元可布置成列和行且可为非易失性存储器单元或易失性存储器单元。包含CAM单元的存储器阵列可被配置成按内容而非按地址搜索CAM单元。举例来说,包含存储用于计算操作的向量的CAM单元的存储器阵列可将向量的操作数位的逻辑值与真值表的与计算操作相关联的条目进行比较以确定哪些结果对应于那些逻辑值。
如所提及,APM装置125可被配置成将与计算操作相关联的向量存储于那个APM装置125的存储器单元中。为了辅助关联处理,可跨多个平面以分列方式存储向量。举例来说,给定具有多个n位(例如,n=32)元素(标示为E0到EN)的向量v0,APM装置125可将每一元素划分成相连位集(例如,八个相连位的四个集)。APM装置125可将向量v0的每一元素的第一相连位集(例如,相连位的最低有效集)存储于第一平面145中,其中平面145的每一行存储向量v0的相应元素的第一相连位集。因此,在一些实例中,列150可存储向量v0的每一元素的前八个位(例如,列150可横跨八个列)。以类似方式,APM装置125可将来自向量v0的每一元素的次有效相连位集存储于第二平面145中。依次类推到向量v0的剩余相连位集。因此,可跨多个平面以分列方式存储向量v0。可跨平面145以类似的分列方式存储其它向量v1到vn的位。
使用分列存储技术跨多个平面分散向量可允许APM装置125相对于其它技术每平面145存储更多向量,这继而可允许APM装置125相较于其它技术在更多向量组合上操作。举例来说,考虑256行×256列的平面。并非跨单个平面存储具有32位元素的八个向量,这可将APM装置125限制在那八个向量上操作(不存在费时的向量移动),而是APM装置125可跨四个平面存储具有32位元素的32个向量,这允许APM装置125在那32个位向量上操作(例如,一次一个平面)且不执行费时的向量移动。
在一些实例中,APM装置125可根据向量映射方案存储向量,所述向量映射方案可为APM装置125支持的多个向量映射方案中的一个。向量映射方案可指用于将向量映射(并写入)到APM装置125的平面145的方案。举例来说,APM装置125可支持第一向量映射方案,被称为向量映射方案1,以及第二向量映射方案,被称为向量映射方案2。在向量映射方案1中,向量可分散在同一拼片140的平面上。在向量映射方案2中,向量可分散在不同拼片140的平面上。向量映射方案也可被称作存储方案、布局方案,或其它合适的术语。
APM系统110可在向量映射方案之间进行选择,此后根据选择的向量映射方案将向量写入到APM装置125。举例来说,APM系统110可基于与计算操作集相关联的向量的大小、计算操作集中的计算操作(例如,算术对比逻辑)的类型、所述集中的计算操作的数量或其组合,以及其它方面,选择向量映射方案用于所述计算操作集。在一些实例中,APM系统110可响应于主机装置105提供的向量映射方案的指示,选择向量映射方案。举例来说,主机装置105可指示与用于所述计算操作集的指令集相关联的向量映射方案。在已经选择的向量映射方案将向量写入到APM装置125之后,APM装置125可使用关联处理根据选择的向量映射方案对向量执行计算操作。替代地,编译器或预处理器可确定向量映射方案。
本文中所描述的技术的关联处理可由APM系统110处的逻辑、APM装置125处的逻辑或分布于APM系统110和APM装置125之间的逻辑实施。所述逻辑可包含一或多个控制器、存取电路系统、通信电路或其组合,以及其它组件和电路。逻辑可被配置成执行本文中所描述的技术的方面,致使APM系统110和/或APM装置125的组件执行本文中所描述的技术的方面,或这两者。
图2说明根据本文所公开的实例的支持存储器内关联处理的向量计算200的实例。向量计算200可为向量加法的实例并且可对操作数向量vA和vB执行,所述操作数向量vA和vB可存储于APM装置的平面的存储器单元(例如,CAM单元)中。向量加法的结果可为向量vD。每一操作数向量可包含四个位(例如,操作数向量可包含单个4位元素),且每一位的位置可标示为i。操作数向量可如参考图1所论述存储于APM装置的平面中并且可与向量指令(例如RISC-V向量指令)集相关联。可使用真值表205执行向量计算200,所述真值表205可为用于将两个位和潜在进位位相加的真值表。真值表205可存储于与APM装置耦合或包含在APM装置中的存储器中,且可使用CAM技术将真值表205的条目(例如,行)与向量vA和vB的操作数位进行比较。
所提供的使用关联处理用于向量上的计算操作的实例仅出于说明性目的且不以任何方式具限制性。
为乐使用关联处理执行向量vA和向量vB的加法,APM装置可从存储器检索(例如,使用定序器)真值表205的条目并且将所述条目与向量vA和vB的操作数位(例如,使用CAM技术就地)进行比较。在找到匹配之后,APM装置可即刻将匹配条目的对应结果(例如,vDi和进位位ci+1)写入到存储向量的平面(或不同的平面),此后移动到向量的次有效操作数位上。
举例来说,对于i=0,APM装置可将真值表205的条目与来自向量vA和vB的对应操作数位(例如,c0=0,vA0=1,且vB0=0)进行比较。在检测到操作数位和真值表205的条目之间的匹配之后,APM装置可即刻将对应于匹配条目的结果(例如,vD0=0且进位位c1=1)写入到存储操作数向量的平面(或装置可针对i=0以串行方式(例如,从顶部条目开始并且在真值表205中一次一个条目地向下移动)将来自真值表205的条目与操作数位进行比较)。在一些实例中,APM装置可并行地(例如,同时)将来自真值表205的条目与多个操作数位进行比较。
在确定第i操作数位的结果之后,APM装置可继续进行到次有效操作数位(其可包含从第i操作数位确定的进位位i+1进位位)。举例来说,在确定i=0操作数位的结果之后,APM装置可继续进行到i=1操作数位(其可包含从i=0操作数位确定的进位位c1)。然而,在一些情境中(例如,当计算操作是逻辑操作时),APM装置可并行地对操作数位中的一些或全部执行计算操作。
对于i=1,APM装置可将真值表205的条目与来自向量vA和vB的对应操作数位(例如,c1=1,vA1=0,且vB1=0)进行比较。在检测到操作数位和真值表205的条目之间的匹配之后,APM装置可即刻将对应于匹配条目的结果(例如,vD1=1且进位位c2=0)写入到存储操作数向量的平面(或不同的平面)。APM装置可针对i=1以串行方式(例如,从顶部条目开始并且在真值表205中一次一个条目地向下移动)将来自真值表205的条目与操作数位进行比较。在确定i=1操作数位的结果之后,APM装置可继续进行到i=2操作数位(可包含从i=1操作数位确定的进位位c2)。
对于i=2,APM装置可将真值表205的条目与来自向量vA和vB的对应操作数位(例如,c2=0,vA2=0,且vB2=0)进行比较。在检测到操作数位和真值表205的条目之间的匹配之后,APM装置可即刻将对应于匹配条目的结果(例如,vD2=0且进位位c3=0)写入到存储操作数向量的平面(或不同的平面)。APM装置可针对i=2以串行方式(例如,从顶部条目开始并且在真值表205中一次一个条目地向下移动)将来自真值表205的条目与操作数位进行比较。在确定i=2操作数位的结果之后,APM装置可继续进行到i=3操作数位(可包含从i=2操作数位确定的进位位c3)。
对于i=3,APM装置可将真值表205的条目与来自向量vA和vB的对应操作数位(例如,c3=0,vA3=0,且vB3=1)进行比较。在检测到操作数位和真值表205的条目之间的匹配之后,APM装置可即刻将对应于匹配条目的结果(例如,vD3=1且进位位c4=0)写入到存储操作数向量的平面(或不同的平面)。APM装置可针对i=3以串行方式(例如,从顶部条目开始并且在真值表205中一次一个条目地向下移动)将来自真值表205的条目与操作数位进行比较。
因此,APM装置可使用关联处理确定vA(例如,0b0001)和vB(例如,0b1001)相加引起vD=0b1010。在完成加法操作之后,APM装置可将向量vD传达给主机装置,使用结果向量vD执行其它计算操作,或其组合。
APM装置可使用关联处理用于向量上的计算操作而不考虑向量映射方案。然而,由关联处理引起的进位位的传达可在向量映射方案之间发生变化。举例来说,如果选择向量映射方案1,那么特定进位位(例如,适用于相连位次有效集的那些进位位)可在同一拼片的平面之间传达。如果选择向量映射方案2,那么特定进位位(例如,适用于次有效相连位集的那些进位位)可在不同拼片之间传达。
图3说明根据本文所公开的实例的支持用于向量的存储器内关联处理的平面300的实例。平面300可为参考图1所描述的平面145的实例。因此,平面300可被配置成存储使用关联处理执行的计算操作的向量。在一些实例中,平面300可在同一拼片中,如参考向量映射方案1所论述。在其它实例中,平面300可处于不同拼片中,如参考向量映射方案2所论述。
在给定实例中,具有多个(例如,256个)多位元素(例如,32位元素)的n个向量映射到四个平面。然而,考虑这些因素的其它数量并且在本公开的范围内。
APM装置可将n个向量(标示为v0到vn-1)映射和写入到四个平面。向量映射到的平面的数量可为元素长度和映射到每一平面的位数量的函数。举例来说,向量映射到的平面的数量可等于元素长度除以映射到每一平面的位数量。在给定实例中,向量映射到的平面数量是四个,等于元素长度(例如,32)除以映射到每一平面的位数量(例如,八个)。
至少一些(如果不是全部的话)平面可存储来自至少一些(如果不是全部的话)向量的至少一些(如果不是全部的话)元素的相连位集。举例来说,平面0可存储每一向量的每一元素的相连位0-7;平面1可存储每一向量的每一元素的相连位8-15;平面2可存储每一向量的每一元素的相连位16-23;且平面3可存储每一向量的每一元素的相连位24-31。不同向量的位可存储在平面的不同列上,而不同元素的位可存储在平面的不同行上。举例来说,来自向量0的位可存储于每一平面的八个列的第一集中;来自向量1的位可存储于每一平面的八个列的第二集中;来自向量2的位可存储于每一平面的八个列的第三集中;以此类推。对于每一向量,来自元素0的位可存储于给定平面的第一行中;来自元素1的位可存储于平面的第二行中;来自元素2的位可存储于平面的第三行中,依次类推。
因此,具有x行(例如,256行)的平面可能能够存储具有x个元素或更少元素的向量(具有长度256或更小的向量)。如果向量具有大于x个元素,那么向量的元素可分摊在多个平面上(例如,具有长度512的向量的元素可存储于两个平面中,其中第一平面存储来自前256个元素的位且第二平面存储来自后256个元素的位)。因此,使用本文中描述的向量映射方案的系统可支持具有大于可受处理电路系统(例如,计算引擎)的大小约束的其它系统(例如,串行处理系统)的大小的向量。
可根据向量映射方案1或向量映射方案2存储向量。在向量映射方案1中,向量映射到的平面可处于同一拼片中。举例来说,平面0到平面3可处于拼片A中。在向量映射方案2中,向量映射到的平面可处于不同拼片中。举例来说,平面0可处于拼片A中,平面1可处于拼片B中,平面2可处于拼片C中,且平面3可处于拼片D中。共同地,拼片A到D(例如,上面分散有向量的拼片)可称为超平面。这两个向量映射方案可允许APM装置(例如,在部分或完全重叠的时间期间)并行地对多个向量执行计算操作。举例来说,给定h个拼片,APM装置可一次执行h个不同计算操作。
因此,在向量映射方案1中,APM装置可使用单个拼片完成向量上的计算操作。举例来说,APM装置可使用拼片A对向量中的元素的位0-7执行计算操作,可使用拼片A对向量中的元素的位8-15执行计算操作,可使用拼片A对向量中的元素的位16-23执行计算操作,并且可使用拼片A对向量的元素的位24-31执行计算操作。如果进位位是由计算操作产生,那么APM装置可在平面的拼片A之间传送进位位(标示为‘C’)。举例来说,如果进位位是由位0-7上的计算操作产生,那么APM装置可将那个进位位从拼片A中的平面0传送到平面1。
在向量映射方案2中,APM装置可使用多个拼片完成向量上的计算操作。举例来说,APM装置可使用拼片A对向量中的元素的位0-7执行计算操作,可使用拼片B对向量中的元素的位8-15执行计算操作,可使用拼片C对向量中的元素的位16-23执行计算操作,并且可使用拼片D对向量的元素的位24-31执行计算操作。如果进位位是由计算操作产生,那么APM装置可在拼片之间传送进位位。举例来说,如果进位位是由位0-7上的计算操作产生,那么APM装置可将那个进位位从拼片A传送到拼片B。
本文中所描述的关联处理技术可由APM系统处的逻辑、APM装置处的逻辑或分布于APM系统和APM装置之间的逻辑实施。所述逻辑可包含一或多个控制器、存取电路系统、通信电路或其组合,以及其它组件和电路。逻辑可被配置成执行本文中所描述的技术的方面,致使APM系统和/或APM装置的组件执行本文中所描述的技术的方面,或这两者。
图4说明根据本文所公开的实例的支持存储器内关联处理的拼片400的实例。拼片400可包含拼片A、拼片B和拼片C。每一拼片可将相应向量集存储于三个平面上且所述向量可包含n个多位(例如,24位)元素。举例来说,拼片A的三个平面可存储用于第一计算操作(被称为计算操作I)的一或多个向量VI,以及其它信息。拼片B的三个平面可存储用于第二计算操作(被称为计算操作II)的一或多个向量VII,以及其它信息。并且拼片C的三个平面可存储用于第三计算操作(被称为计算操作III)的一或多个向量VIII,以及其它信息。虽然参考不同向量VI、VII和VIII进行描述,但所述计算操作中的两个或更多个可涉及相同向量(例如,可对相同向量并行地执行不同计算操作)。
在时间t0和时间t1之间,拼片A可对用于计算操作I的向量VI的元素的位0-7执行计算操作I,其中向量VI的0-7位存储于拼片A的第一平面中;拼片B可对用于计算操作II的向量VII的元素的位0-7执行计算操作II,其中向量VII的0-7位存储于拼片B的第一平面中;且拼片C可对用于计算操作III的向量VIII的元素的位0-7执行计算操作III,其中向量VIII的0-7位存储于拼片C的第一平面中。可使用如本文中所描述的关联处理执行计算操作。
0-7位上的计算操作的结果可存储于与操作数位相同的平面中或存储于不同平面中。举例来说,向量VI的位0-7上的计算操作I的结果可(例如,作为向量)存储于拼片A的第一平面中。类似地,向量VII的位0-7上的计算操作II的结果可(例如,作为向量)存储于拼片B的第一平面中。并且向量VIII的位0-7上的计算操作III的结果可(例如,作为向量)存储于拼片C的第一平面中。
在一些实例中(例如,在计算操作是算术的情况下),位0-7上的计算操作可产生进位位。在这类情境中,进位位(标示为‘C’)可从存储0-7位的平面传达给存储8-15位(例如,次有效相连位集)的平面。举例来说,如果向量VI的位0-7上的计算操作I产生进位位,那么进位位可从拼片A的第一平面传达给拼片A的第二平面(存储向量VI的8-15位)。因此,在向量映射方案1中,进位位可在同一拼片的平面之间传达。
在时间t1和时间t2之间,拼片A可对用于计算操作I的向量VI的元素的位8-15执行计算操作I,其中向量VI的8-15位存储于拼片A的第二平面中;拼片B可对用于计算操作II的向量VII的元素的位8-15执行计算操作II,其中向量VII的8-15位存储于拼片B的第二平面中;且拼片C可对用于计算操作III的向量VIII的元素的位8-15执行计算操作III,其中向量VIII的8-15位存储于拼片C的第二平面中。可使用如本文中所描述的关联处理执行计算操作,且所述计算操作可基于从第一平面接收的任何进位位。
位8-15上的计算操作的结果可存储于与操作数位相同的平面中或存储于不同平面中。举例来说,向量VI的位8-15上的计算操作I的结果可(例如,作为向量)存储于拼片A的第二平面中。类似地,向量VII的位8-15上的计算操作II的结果可(例如,作为向量)存储于拼片B的第二平面中。并且向量VIII的位8-15上的计算操作III的结果可(例如,作为向量)存储于拼片C的第二平面中。
在一些实例中(例如,在计算操作是算术操作的情况下),位8-15上的计算操作可产生进位位。在这类情境中,进位位(标示为‘C’)可从存储8-15位的平面传达给存储位16-23(例如,次有效相连位集)的平面。举例来说,如果向量VI的位8-15上的计算操作I产生进位位,那么进位位可从拼片A的第二平面传达给拼片A的第三平面(存储向量VI的位16-23)。
在时间t2和时间t3之间,拼片A可对用于计算操作I的向量VI的元素的位16-23执行计算操作I,其中向量VI的16-23位存储于拼片A的第三平面中;拼片B可对用于计算操作II的向量VII的元素的位16-23执行计算操作II,其中向量VII的16-23位存储于拼片B的第三平面中;且拼片C可对用于计算操作III的向量VIII的元素的位16-23执行计算操作III,其中向量VIII的16-23位存储于拼片C的第三平面中。可使用如本文中所描述的关联处理执行计算操作,且所述计算操作可基于从第一平面接收的任何进位位。
位16-23上的计算操作的结果可存储于与操作数位相同的平面中或存储于不同平面中。举例来说,向量VI的位16-23上的计算操作I的结果可(例如,作为向量)存储于拼片A的第三平面中。类似地,向量VII的位16-23上的计算操作II的结果可(例如,作为向量)存储于拼片B的第三平面中。并且向量VIII的位16-23上的计算操作III的结果可(例如,作为向量)存储于拼片C的第三平面中。
因此,APM装置可使用关联处理和根据向量映射方案1配置的拼片执行计算操作。在完成计算操作之后,APM装置可将计算操作的结果的指示传达给主机装置,使用所述结果执行一或多个额外计算操作,或这两者。
与向量映射方案2相比,向量映射方案1可允许APM装置处理更长向量。因此,APM装置可基于APM装置将处理的向量的长度选择向量映射方案1而非向量映射方案2。举例来说,如果向量的阈值量具有满足(例如,大于)阈值长度的长度,那么APM装置可选择向量映射方案1。在一些实例中,阈值长度可等于每平面的行数量。
与其它向量映射方案(例如向量映射方案2)相比,向量映射方案1可允许APM装置更高效地处理算术向量。因此,APM装置可基于APM装置将执行的计算操作的类型选择向量映射方案1优先于向量映射方案2。举例来说,如果算术操作与逻辑操作的比率满足(例如,大于)阈值比率,那么APM装置可选择向量映射方案1。向量映射方案1还可以允许APM装置并行地执行多个向量执行线程(例如,多个相异计算操作),这是因为拼片不限于执行同一指令。
图5说明根据本文所公开的实例的支持存储器内关联处理的拼片500的实例。拼片500可包含拼片A、拼片B和拼片C。每一拼片可将三个不同的向量集存储于三个不同平面上且向量可包含n个多位(例如,24位)元素。举例来说,拼片A的第一平面可存储来自用于第一计算操作(被称为计算操作I)的一或多个向量VI的元素的位0-7,以及其它信息;拼片A的第二平面可存储来自用于第二计算操作(被称为计算操作II)的一或多个向量VII的元素的位0-7,以及其它信息;且拼片A的第三平面可存储来自用于第三计算操作(被称为计算操作III)的一或多个向量VIII的元素的位0-7,以及其它信息。拼片B和拼片C可类似地配置,不同之处在于拼片B可存储向量的位8-15且拼片C可存储向量的位16-23。
在时间t0和时间t1之间,拼片A可对用于计算操作I的向量VI的元素的位0-7执行计算操作II。可使用如本文中所描述的关联处理执行计算操作。向量VI的元素的位0-7上的计算操作I的结果可存储于与操作数位相同的平面中或存储于不同平面中。举例来说,向量VI的元素的位0-7上的计算操作I的结果可(例如,作为向量)存储于拼片A的第一平面中。
在一些实例中(例如,在计算操作I是算术操作的情况下),向量VI的位0-7上的计算操作可产生进位位。在这类情境中,进位位(标示为‘C’)可从存储向量VI的0-7位的拼片(例如,拼片A)传达给存储位8-15(例如,次有效相连位集)的拼片(例如,拼片B)。因此,在向量映射方案2中,进位位可在拼片之间(例如,不同拼片的平面之间)传达。
在时间t1和时间t2之间,拼片A可对用于计算操作II的向量VII的元素的位0-7执行计算操作II。另外,拼片B可对用于计算操作I的向量VI的元素的位8-15执行计算操作I。可使用如本文中所描述的关联处理执行计算操作,且所述计算操作可基于从其它拼片接收的任何进位位。
向量VII的位0-7上的计算操作II的结果可存储于与操作数位相同的平面中或存储于不同平面中。举例来说,向量VII的位0-7上的计算操作II的结果可(例如,作为向量)存储于拼片A的第二平面中。类似地,向量VI的位8-15上的计算操作I的结果可(例如,作为向量)存储于拼片B的第一平面中。
在一些实例中(例如,在计算操作是算术操作的情况下),在t1和t2之间执行的计算操作可产生一或多个进位位。举例来说,向量VII的位0-7上的计算操作II可产生进位位,向量VI的位8-15上的计算操作I可产生进位位,或这两者。在这类情境中,来自计算操作II的进位位可从存储向量VII的位0-7的拼片(例如,拼片A)传达给存储向量VII的位8-15的拼片(例如,拼片B);来自计算操作I的进位位可从存储向量VI的位8-15的拼片(例如,拼片B)传达给存储向量VI的位16-23的拼片(例如,拼片C),或这两者。
在时间t2和时间t3之间,拼片A可对用于计算操作III的向量VIII的元素的位0-7执行计算操作III。另外,拼片B可对用于计算操作II的向量VII的元素的位8-15执行计算操作II。并且拼片C可对用于计算操作I的向量VI的元素的位16-23执行计算操作I。可使用如本文中所描述的关联处理执行计算操作,且所述计算操作可基于从其它拼片接收的任何进位位。
向量VIII的0-7位上的计算操作的结果可存储于与操作数位相同的平面中或存储于不同平面中。举例来说,向量VIII的位0-7上的计算操作III的结果可(例如,作为向量)存储于拼片A的第三平面中。类似地,向量VII的位8-15上的计算操作II的结果可(例如,作为向量)存储于拼片B的第二平面中。并且向量VI的位16-23上的计算操作I的结果可(例如,作为向量)存储于拼片C的第一平面中。
因此,APM装置可使用关联处理和根据向量映射方案2配置的拼片执行计算操作。在完成计算操作之后,APM装置可将计算操作的结果的指示传达给主机装置,使用所述结果执行一或多个额外计算操作,或这两者。
向量映射方案2可允许APM装置以不受向量映射方案1支持的方式使计算操作交错(或“管线化”),且因此对于特定处理任务来说可为更高效的。然而,与向量映射方案1相比,向量映射方案2可支持较小向量长度。因此,APM装置可基于APM装置将处理的向量的长度来选择向量映射方案2。举例来说,APM装置可在向量的阈值量具有满足(例如,小于)阈值长度的长度的情况下选择向量映射方案2。
与其它向量映射方案(例如向量映射方案1)相比,向量映射方案2可允许APM装置更高效地处理逻辑向量。举例来说,向量映射方案2可允许APM装置通过对向量VI的全部24位并行地(例如,使用拼片A、B和C)执行逻辑操作以在时间t0和时间t1之间完全完成向量VI上的逻辑操作。这类并行性对于逻辑操作来说可为可能的,这是因为不同于算术操作,逻辑操作可以不产生进位位。因此,向量映射方案2中的每一拼片可在无需等待低阶拼片完成对低阶(例如,较不有效)相连位集的情况下操作。因此,APM装置可基于APM装置将执行的计算操作的类型来选择向量映射方案1优先于向量映射方案2。举例来说,APM装置可在逻辑操作与算术操作的比率满足(例如,大于)阈值比率的情况下选择向量映射方案2。
向量映射方案2还可以实现对相同平面的不同计算操作的“管线”(相比于接合每一拼片中的不同平面以创建这类管线)。举例来说,在时间t0,拼片A中的平面0可执行计算操作1(例如,逻辑操作1);在时间t1,拼片A中的平面0可执行计算操作2(例如,逻辑操作2)且拼片B中的平面0可执行计算操作1(例如,逻辑操作1),依次类推。
图6说明根据本文所公开的实例的用于向量的支持存储器内关联处理的过程流600的实例。过程流600可由例如如本文中所描述的APM系统或APM装置的装置实施。所述装置可支持多个向量映射方案,例如向量映射方案1和向量映射方案2。在一些实例中,所述装置可(例如,针对不同指令集)在向量映射方案之间切换。
在605处,所述装置可接收主机装置发出的指令集(例如,程序、向量指令集)。所述指令集可指示计算操作集或与计算操作集相关联。在一些实例中,主机装置可经由CXL接口传达所述指令集。在一些实例中,所述指令集可指示向量集的存储器地址,所述向量集是用于计算操作的操作数。替代地,所述指令集可附有向量集。在一些实例中,所述指令集可指示装置支持的向量映射方案中的一个。
在610处,所述装置可从与装置耦合的存储器检索向量集。举例来说,所述装置可从存储器的由指令集指示的存储器地址检索向量集。替代地,所述装置可从主机装置接收向量集或确定所述向量集已经存储于装置的APM裸片中。
在615处,所述装置可确定计算操作集的各种特性、向量集的各种特性,或这两者,以及其它方面。举例来说,所述装置可确定向量集的长度(例如,每向量的元素数量)。另外或替代地,确定计算操作集中的算术操作数量、计算操作集中的逻辑操作数量,或这两者。在一些实例中,所述装置可确定算术操作与逻辑操作的比率。
在620处,所述装置可从装置支持的向量映射方案集中选择向量映射方案。举例来说,所述装置可选择向量映射方案1或向量映射方案2。在一些实例中,所述装置可选择由主机装置在605处指示的向量映射方案。在其它实例中,所述装置可基于一或多个特性选择向量映射方案。在一些实例中,所述装置可基于具有大于阈值长度(例如,大于每平面的行数)的长度的向量集中的一或多个选择向量映射方案1。在一些实例中,所述装置可基于算术操作和逻辑操作的比率满足阈值比率的计算操作集来选择向量映射方案1。在一些实例中,所述装置可基于具有小于所述阈值长度的长度的向量集中的一或多个来选择向量映射方案2。在一些实例中,所述装置可基于逻辑操作和算术操作的比率满足阈值比率的计算操作集来选择向量映射方案2。
在625处,所述装置可根据选择的向量映射方案写入向量集。举例来说,如果所述装置选择了向量映射方案1,那么所述装置可根据如本文中所描述并且如图3和4中所示的向量映射方案1将向量集写入到装置的平面。如果所述装置选择了向量映射方案2,那么所述装置可根据如本文中所描述并且如图3和5中所示的向量映射方案2将向量集写入到装置的平面。
在630处,所述装置可使用关联处理并且根据选择的向量映射方案对向量集执行计算操作集。举例来说,如果所述装置选择了向量映射方案1,那么所述装置可使用关联处理并且根据如本文中所描述并且如图3和4中所示的向量映射方案1对向量集执行计算操作集。如果所述装置选择了向量映射方案2,那么所述装置可使用关联处理并且根据如本文中所描述并且如图3和5中所示的向量映射方案2对向量集执行计算操作集。
在635处,所述装置可将计算操作集的结果写入到装置的平面。在640处,所述装置可将所述结果中的一些或全部传达给主机装置。另外或替代地,所述装置可使用所述结果中的一些或全部执行额外处理任务。
因此,所述装置可使用关联处理对向量集执行计算操作集。
图7示出根据本文所公开的实例的支持用于向量的存储器内关联处理的装置720的框图700。装置720可为参考图1到6所描述的装置的方面的实例。装置720或其各种组件可为用于执行如本文中所描述的用于向量的存储器内关联处理的各个方面的装置的实例。举例来说,装置720可包含关联处理电路系统725、存取电路系统730、通信电路系统735、接收电路系统740或其任何组合。这些组件中的每一者可直接或间接地(例如经由一或多个总线)彼此通信。
关联处理电路系统725可配置为或以其它方式支持用于使用关联处理对表示向量的第一相连位集的数据执行计算操作的装置,所述向量是用于所述计算操作的操作数,所述数据表示存储于所述多个拼片中的拼片的第一平面中的所述第一相连位集。在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于对所述第一相连位集执行所述计算操作,使用关联处理对表示所述向量的第二相连位集的数据执行所述计算操作的装置,所述数据表示存储于所述多个拼片中的所述拼片的第二平面中的所述第二相连位集。
在一些实例中,存取电路系统730可配置为或以其它方式支持用于将表示所述第一相连位集上的所述计算操作的结果的数据写入到所述拼片的所述第一平面的装置。在一些实例中,存取电路系统730可配置为或以其它方式支持用于将表示所述第二相连位集上的所述计算操作的结果的数据写入到所述拼片的所述第二平面的装置。
在一些实例中,所述向量包含各自具有相应长度的多个元素。在一些实例中,所述向量的第一元素包含所述第一相连位集和所述第二相连位集。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于对表示第二向量的第一相连位集的数据执行第二计算操作的装置,所述数据表示所述第二向量的存储于第二拼片的第一平面中的所述第一相连位集。在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于对表示所述第二向量的所述第一相连位集的数据执行所述第二计算操作,对表示所述第二向量的第二相连位集的数据执行所述第二计算操作的装置,所述数据表示所述第二向量的存储于所述第二拼片的第二平面中的所述第二相连位集。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于与对表示所述向量的所述第一相连位集的所述数据执行所述计算操作并行地,对表示所述第二向量的所述第一相连位集的所述数据执行所述第二计算操作的装置。在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于与对表示所述向量的所述第二相连位集的所述数据执行所述计算操作并行地,对表示所述第二向量的所述第二相连位集的所述数据执行所述第二计算操作的装置。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于对表示第二向量的第一相连位集的数据执行所述计算操作的装置,所述第二向量是用于所述计算操作的操作数,所述数据表示所述第二向量的存储于所述拼片的所述第一平面中的所述第一相连位集。在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于对表示所述第二向量的第二相连位集的数据执行所述计算操作的装置,所述数据表示所述第二向量的存储于所述拼片的所述第二平面中的所述第二相连位集。
在一些实例中,计算操作包含算术操作,且通信电路系统735可配置为或以其它方式支持用于将由对表示所述第一相连位集的数据执行所述算术操作产生的进位位从所述拼片的所述第一平面传达给所述拼片的所述第二平面的装置,其中表示所述第二相连位集的所述数据上的所述算术操作至少部分地基于所述进位位。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于使用关联处理并且与对表示所述向量的所述第一相连位集的所述数据执行所述计算操作并行地,对表示第二向量的存储于第二拼片的第二平面中的第一相连位集的数据执行第二计算操作的装置。
在一些实例中,接收电路系统740可配置为或以其它方式支持用于从主机装置接收指示指令集的信令的装置,所述指令集指示所述向量和所述计算操作。在一些实例中,存取电路系统730可配置为或以其它方式支持用于根据向量映射方案并且至少部分地基于所述指令集,将表示所述向量的数据写入到所述第一平面和所述第二平面的装置。
在一些实例中,计算操作包含逻辑操作或算术操作。
在一些实例中,所述存储器裸片被配置成使得每拼片的单个平面可同时操作用于关联处理。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于使用关联处理对表示向量的第一相连位集的数据执行计算操作的装置,所述向量是用于所述计算操作的操作数,所述数据表示存储于所述多个拼片中的第一拼片的第一平面中的所述第一相连位集。在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于对所述第一相连位集执行所述计算操作,使用关联处理对表示所述向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。
在一些实例中,存取电路系统730可配置为或以其它方式支持用于将表示代表所述第一相连位集的所述数据上的所述计算操作的结果的数据写入到所述第一拼片的所述第一平面的装置。在一些实例中,存取电路系统730可配置为或以其它方式支持用于将表示代表所述第二相连位集的所述数据上的所述计算操作的结果的数据写入到所述第二拼片的所述第一平面的装置。
在一些实例中,所述向量包含各自具有相应长度的多个元素。在一些实例中,所述向量的第一元素包含所述第一相连位集和所述第二相连位集。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于对表示第二向量的第一相连位集的数据执行第二计算操作的装置,所述数据表示所述第二向量的存储于所述第一拼片的第二平面中的所述第一相连位集。在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于对表示所述第二向量的所述第一相连位集的所述数据执行所述第二计算操作,对表示所述第二向量的第二相连位集的数据执行所述第二计算操作的装置,所述数据表示所述第二向量的存储于所述第二拼片的第二平面中的所述第二相连位集。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于对表示第二向量的第一相连位集的数据执行所述计算操作的装置,所述第二向量是用于所述计算操作的操作数,所述数据表示所述第二向量的存储于所述第一拼片的所述第一平面中的所述第一相连位集。在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于对表示所述第二向量的第二相连位集的数据执行所述计算操作的装置,所述数据表示所述第二向量的存储于所述第二拼片的所述第一平面中的所述第二相连位集。
在一些实例中,计算操作包含算术操作,且通信电路系统735可配置为或以其它方式支持用于将由对表示所述第一相连位集的所述数据执行所述算术操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第一平面的装置,其中表示所述第二相连位集的所述数据上的所述算术操作至少部分地基于所述进位位。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于使用关联处理并且与对表示所述向量的所述第二相连位集的所述数据执行所述计算操作并行地,对表示第二向量的存储于所述第一拼片的第二平面中的第一相连位集的数据执行第二计算操作的装置。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于所述计算操作包含逻辑操作,与对表示所述第一相连位集的所述数据执行所述逻辑操作并行地,对表示所述第二相连位集的所述数据执行所述逻辑操作的装置。
在一些实例中,接收电路系统740可配置为或以其它方式支持用于从主机装置接收指示指令集的信令的装置,所述指令集指示所述向量和所述计算操作。在一些实例中,存取电路系统730可配置为或以其它方式支持用于根据向量映射方案并且至少部分地基于所述指令集,将表示所述向量的数据写入到所述第一平面和所述第二平面的装置。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作的装置,所述数据表示存储于所述多个拼片中的拼片的第一平面中的所述第一相连位集。在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作的装置,所述数据表示存储于所述多个拼片中的所述拼片的第二平面中的所述第二相连位集。
在一些实例中,通信电路系统735可配置为或以其它方式支持用于将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述拼片的所述第一平面传达给所述拼片的所述第二平面的装置,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于与对表示所述第一相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于第二拼片的第一平面中的第一相连位集的数据执行第二计算操作的装置。
在一些实例中,接收电路系统740可配置为或以其它方式支持用于从主机装置接收指示指令集的信令的装置,所述指令集指示所述第一向量、所述第二向量和所述计算操作。在一些实例中,存取电路系统730可配置为或以其它方式支持用于至少部分地基于所述指令集,将表示所述第一相连位集的所述数据写入到所述拼片的所述第一平面并且将表示所述第二相连位集的所述数据写入到所述拼片的所述第二平面的装置。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作的装置,所述数据表示存储于所述多个拼片中的第一拼片的第一平面中的所述第一相连位集。在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作的装置,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。
在一些实例中,通信电路系统735可配置为或以其它方式支持用于将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第二平面的装置,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于与对表示所述第二相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于所述第一拼片的第二平面中的第一相连位集的数据执行第二计算操作的装置。
在一些实例中,接收电路系统740可配置为或以其它方式支持用于从主机装置接收指示指令集的信令的装置,所述指令集指示所述第一向量、所述第二向量和所述计算操作。在一些实例中,存取电路系统730可配置为或以其它方式支持用于至少部分地基于所述指令集,将表示所述第一相连位集的所述数据写入到所述第一拼片的所述第一平面并且将表示所述第二相连位集的所述数据写入到所述第二拼片的所述第一平面的装置。
在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作的装置,所述数据表示存储于包含多个拼片的裸片的第一平面中的所述第一相连位集,所述多个拼片各自包含多个平面。在一些实例中,关联处理电路系统725可配置为或以其它方式支持用于至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作的装置,所述数据表示存储于所述裸片的第二平面中的所述第二相连位集。
在一些实例中,所述第一平面和所述第二平面具有同一拼片,且通信电路系统735可配置为或以其它方式支持用于将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述拼片的所述第一平面传达给所述拼片的所述第二平面的装置,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。
在一些实例中,所述第一平面具有第一拼片且所述第二平面具有第二拼片,且通信电路系统735可配置为或以其它方式支持用于将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第二平面的装置,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。
在一些实例中,所述第一平面和所述第二平面具有第一拼片,且关联处理电路系统725可配置为或以其它方式支持用于与对表示所述第一相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于第二拼片的第一平面中的第一相连位集的数据执行第二计算操作的装置。
在一些实例中,所述第一平面具有第一拼片且所述第二平面具有第二拼片,且关联处理电路系统725可配置为或以其它方式支持用于与对表示所述第二相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于所述第一拼片的第二平面中的第一相连位集的数据执行第二计算操作的装置。
在一些实例中,存取电路系统730可包含关联处理电路系统725、通信电路系统735和接收电路系统740,以及其它组件和电路系统。所述逻辑可包含在APM系统中、包含在APM装置中,或可分布于APM系统和APM装置之间。存取电路系统730可被配置成执行本文中所描述的技术的方面,致使APM系统和/或APM装置的组件执行本文中所描述的技术的方面,或这两者。
图8示出说明根据本文所公开的实例的支持用于向量的存储器内关联处理的方法800的流程图。方法800的操作可由如本文中所描述的装置或其组件实施。举例来说,方法800的操作可由参考图1到7所描述的APM系统或APM装置执行。在一些实例中,装置可执行指令集以控制装置的功能元件执行所描述的功能。另外或替代地,装置可使用专用硬件执行所描述的功能的方面。
在805处,所述方法可包含使用关联处理对表示向量的第一相连位集的数据执行计算操作,所述向量是用于所述计算操作的操作数,所述数据表示存储于所述多个拼片中的拼片的第一平面中的所述第一相连位集。可根据本文所公开的实例执行805的操作。在一些实例中,可由参考图7所描述的关联处理电路系统725执行805的操作的方面。
在810处,所述方法可包含至少部分地基于对所述第一相连位集执行所述计算操作,使用关联处理对表示所述向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的所述拼片的第二平面中的所述第二相连位集。可根据本文所公开的实例执行810的操作。在一些实例中,可由参考图7所描述的关联处理电路系统725执行810的操作的方面。
在一些实例中,如本文中所描述的设备可执行方法800。所述设备可包含存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列。所述设备还可包含逻辑,其与所述裸片耦合且被配置成致使所述设备执行方法,包含方法800,如本文中所描述。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法800。所述设备可包含用于以下操作的特征、电路系统、逻辑、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):使用关联处理对表示向量的第一相连位集的数据执行计算操作,所述向量是用于所述计算操作的操作数,所述数据表示存储于所述多个拼片中的拼片的第一平面中的所述第一相连位集;和至少部分地基于对所述第一相连位集执行所述计算操作,使用关联处理对表示所述向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的所述拼片的第二平面中的所述第二相连位集。
本文中描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:将表示所述第一相连位集上的所述计算操作的结果的数据写入到所述拼片的所述第一平面;和将表示所述第二相连位集上的所述计算操作的结果的数据写入到所述拼片的所述第二平面。
在本文中描述的方法800和设备的一些实例中,所述向量包含各自具有相应长度的多个元素,且所述向量的第一元素包含所述第一相连位集和所述第二相连位集。
本文中描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:对表示第二向量的第一相连位集的数据执行第二计算操作,所述数据表示所述第二向量的存储于第二拼片的第一平面中的所述第一相连位集;和至少部分地基于对表示所述第二向量的所述第一相连位集的数据执行所述第二计算操作,对表示所述第二向量的第二相连位集的数据执行所述第二计算操作,所述数据表示所述第二向量的存储于所述第二拼片的第二平面中的所述第二相连位集。
本文中描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:与对表示所述向量的所述第一相连位集的所述数据执行所述计算操作并行地,对表示所述第二向量的所述第一相连位集的所述数据执行所述第二计算操作;和与对表示所述向量的所述第二相连位集的所述数据执行所述计算操作并行地,对表示所述第二向量的所述第二相连位集的所述数据执行所述第二计算操作。
本文中描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:对表示第二向量的第一相连位集的数据执行所述计算操作,所述第二向量可为用于所述计算操作的操作数,所述数据表示所述第二向量的存储于所述拼片的所述第一平面中的所述第一相连位集;和对表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示所述第二向量的存储于所述拼片的所述第二平面中的所述第二相连位集。
在本文中描述的方法800和设备的一些实例中,所述计算操作包含算术操作,且所述方法、设备和非暂时性计算机可读媒体可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:将由对表示所述第一相连位集的数据执行所述算术操作产生的进位位从所述拼片的所述第一平面传达给所述拼片的所述第二平面,其中表示所述第二相连位集的所述数据上的所述算术操作可至少部分地基于所述进位位。
本文中描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:使用关联处理并且与对表示所述向量的所述第一相连位集的所述数据执行所述计算操作并行地,对表示第二向量的存储于第二拼片的第二平面中的第一相连位集的数据执行第二计算操作。
本文中描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:从主机装置接收指示指令集的信令,所述指令集指示所述向量和所述计算操作;和根据向量映射方案并且至少部分地基于所述指令集,将表示所述向量的数据写入到所述第一平面和所述第二平面。
在本文中描述的方法800和设备的一些实例中,所述计算操作包含逻辑操作或算术操作。
在本文中描述的方法800和设备的一些实例中,所述存储器裸片可被配置成使得每拼片的单个平面可能可同时操作用于关联处理。
图9示出说明根据本文所公开的实例的支持用于向量的存储器内关联处理的方法900的流程图。方法900的操作可由如本文中所描述的装置或其组件实施。举例来说,方法900的操作可由参考图1到7所描述的APM系统或APM装置执行。在一些实例中,装置可执行指令集以控制装置的功能元件执行所描述的功能。另外或替代地,装置可使用专用硬件执行所描述的功能的方面。
在905处,所述方法可包含使用关联处理对表示向量的第一相连位集的数据执行计算操作,所述向量是用于所述计算操作的操作数,所述数据表示存储于所述多个拼片中的第一拼片的第一平面中的所述第一相连位集。可根据本文所公开的实例执行905的操作。在一些实例中,可由参考图7所描述的关联处理电路系统725执行905的操作的方面。
在910处,所述方法可包含至少部分地基于对所述第一相连位集执行所述计算操作,使用关联处理对表示所述向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。可根据本文所公开的实例执行910的操作。在一些实例中,可由参考图7所描述的关联处理电路系统725执行910的操作的方面。
在一些实例中,如本文中所描述的设备可执行方法900。所述设备可包含存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列。所述设备还可包含逻辑,其与所述存储器裸片耦合且被配置成致使所述设备执行方法,包含方法900,如本文中所描述。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法900。所述设备可包含用于以下操作的特征、电路系统、逻辑、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):使用关联处理对表示向量的第一相连位集的数据执行计算操作,所述向量是用于所述计算操作的操作数,所述数据表示存储于所述多个拼片中的第一拼片的第一平面中的所述第一相连位集;和至少部分地基于对所述第一相连位集执行所述计算操作,使用关联处理对表示所述向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。
本文中描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:将表示代表所述第一相连位集的所述数据上的所述计算操作的结果的数据写入到所述第一拼片的所述第一平面;和将表示代表所述第二相连位集的所述数据上的所述计算操作的结果的数据写入到所述第二拼片的所述第一平面。
在本文中描述的方法900和设备的一些实例中,所述向量包含各自具有相应长度的多个元素,且所述向量的第一元素包含所述第一相连位集和所述第二相连位集。
本文中描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:对表示第二向量的第一相连位集的数据执行第二计算操作,所述数据表示所述第二向量的存储于所述第一拼片的第二平面中的所述第一相连位集;和至少部分地基于对表示所述第二向量的所述第一相连位集的数据执行所述第二计算操作,对表示所述第二向量的第二相连位集的数据执行所述第二计算操作,所述数据表示所述第二向量的存储于所述第二拼片的第二平面中的所述第二相连位集。
本文中描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:对表示第二向量的第一相连位集的数据执行所述计算操作,所述第二向量可为用于所述计算操作的操作数,所述数据表示所述第二向量的存储于所述第一拼片的所述第一平面中的所述第一相连位集;和对表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示所述第二向量的存储于所述第二拼片的所述第一平面中的所述第二相连位集。
在本文中描述的方法900和设备的一些实例中,所述计算操作包含算术操作,且所述方法、设备和非暂时性计算机可读媒体可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:将由对表示所述第一相连位集的数据执行所述算术操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第一平面,其中表示所述第二相连位集的所述数据上的所述算术操作可至少部分地基于所述进位位。
本文中描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:使用关联处理并且与对表示所述向量的所述第二相连位集的所述数据执行所述计算操作并行地,对表示第二向量的存储于所述第一拼片的第二平面中的第一相连位集的数据执行第二计算操作。
本文中描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于所述计算操作包含逻辑操作,与对表示所述第一相连位集的所述数据执行所述逻辑操作并行地,对表示所述第二相连位集的所述数据执行所述逻辑操作。
本文中描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:从主机装置接收指示指令集的信令,所述指令集指示所述向量和所述计算操作;和根据向量映射方案并且至少部分地基于所述指令集,将表示所述向量的数据写入到所述第一平面和所述第二平面。
图10示出说明根据本文所公开的实例的支持用于向量的存储器内关联处理的方法1000的流程图。方法1000的操作可由如本文中所描述的装置或其组件实施。举例来说,方法1000的操作可由参考图1到7所描述的APM系统或APM装置执行。在一些实例中,装置可执行指令集以控制装置的功能元件执行所描述的功能。另外或替代地,装置可使用专用硬件执行所描述的功能的方面。
在1005处,所述方法可包含至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的拼片的第一平面中的所述第一相连位集。可根据本文所公开的实例执行1005的操作。在一些实例中,可由参考图7所描述的关联处理电路系统725执行1005的操作的方面。
在1010处,所述方法可包含至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的所述拼片的第二平面中的所述第二相连位集。可根据本文所公开的实例执行1010的操作。在一些实例中,可由参考图7所描述的关联处理电路系统725执行1010的操作的方面。
在一些实例中,如本文中所描述的设备可执行方法1000。所述设备可包含存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列。所述设备还可包含逻辑,其与所述存储器裸片耦合且被配置成致使所述设备执行方法,包含方法1000,如本文中所描述。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法1000。所述设备可包含用于以下操作的特征、电路系统、逻辑、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的拼片的第一平面中的所述第一相连位集;和至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的所述拼片的第二平面中的所述第二相连位集。
本文中描述的方法1000和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述拼片的所述第一平面传达给所述拼片的所述第二平面,其中对表示所述第二相连位集的所述数据执行的所述计算操作可至少部分地基于所述进位位。
本文中描述的方法1000和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:与对表示所述第一相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于第二拼片的第一平面中的第一相连位集的数据执行第二计算操作。
本文中描述的方法1000和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:从主机装置接收指示指令集的信令,所述指令集指示所述第一向量、所述第二向量和所述计算操作;和至少部分地基于所述指令集,将表示所述第一相连位集的所述数据写入到所述拼片的所述第一平面并且将表示所述第二相连位集的所述数据写入到所述拼片的所述第二平面。
图11示出说明根据本文所公开的实例的支持用于向量的存储器内关联处理的方法1100的流程图。方法1100的操作可由如本文中所描述的装置或其组件实施。举例来说,方法1100的操作可由参考图1到7所描述的APM系统或APM装置执行。在一些实例中,装置可执行指令集以控制装置的功能元件执行所描述的功能。另外或替代地,装置可使用专用硬件执行所描述的功能的方面。
在1105处,所述方法可包含至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第一拼片的第一平面中的所述第一相连位集。可根据本文所公开的实例执行1105的操作。在一些实例中,可由参考图7所描述的关联处理电路系统725执行1105的操作的方面。
在1110处,所述方法可包含至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。可根据本文所公开的实例执行1110的操作。在一些实例中,可由参考图7所描述的关联处理电路系统725执行1110的操作的方面。
在1115处,所述方法可包含将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第二平面,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。可根据本文所公开的实例执行1115的操作。在一些实例中,可由参考图7所描述的通信电路系统735执行1115的操作的方面。
在一些实例中,如本文中所描述的设备可执行方法1100。所述设备可包含存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列。所述设备还可包含逻辑,其与所述存储器裸片耦合且被配置成致使所述设备执行方法,包含方法1100,如本文中所描述。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法1100。所述设备可包含用于以下操作的特征、电路系统、逻辑、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第一拼片的第一平面中的所述第一相连位集;和至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。
本文中描述的方法1100和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第二平面,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。
本文中描述的方法1100和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:与对表示所述第二相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于所述第一拼片的第二平面中的第一相连位集的数据执行第二计算操作。
本文中描述的方法1100和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:从主机装置接收指示指令集的信令,所述指令集指示所述第一向量、所述第二向量和所述计算操作;和至少部分地基于所述指令集,将表示所述第一相连位集的所述数据写入到所述第一拼片的所述第一平面并且将表示所述第二相连位集的所述数据写入到所述第二拼片的所述第一平面。
图12示出说明根据本文所公开的实例的支持用于向量的存储器内关联处理的方法1200的流程图。方法1200的操作可由如本文中所描述的装置或其组件实施。举例来说,方法1200的操作可由参考图1到7所描述的APM系统或APM装置执行。在一些实例中,装置可执行指令集以控制装置的功能元件执行所描述的功能。另外或替代地,装置可使用专用硬件执行所描述的功能的方面。
在1205处,所述方法可包含至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于包含多个拼片的裸片的第一平面中的所述第一相连位集,所述多个拼片各自包含多个平面。可根据本文所公开的实例执行1205的操作。在一些实例中,可由参考图7所描述的关联处理电路系统725执行1205的操作的方面。
在1210处,所述方法可包含至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述裸片的第二平面中的所述第二相连位集。可根据本文所公开的实例执行1210的操作。在一些实例中,可由参考图7所描述的关联处理电路系统725执行1210的操作的方面。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法1200。所述设备可包含用于以下操作的特征、电路系统、逻辑、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):至少部分地基于针对逻辑值的各种组合的指示计算操作的结果的真值表,对第一向量的第一相连位集和第二向量的第一相连位集执行所述计算操作,所述第一相连位集存储于包含多个拼片的裸片的第一平面中,所述多个拼片各自包含多个平面;和至少部分地基于用于所述计算操作的所述真值表,对所述第一向量的第二相连位集和所述第二向量的第二相连位集执行所述计算操作,所述第二相连位集存储于所述裸片的第二平面中。
在本文中描述的方法1200和设备的一些实例中,第一平面和第二平面可具有同一拼片,且所述方法、设备和非暂时性计算机可读媒体可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:将由对所述第一相连位集执行所述计算操作产生的进位位从所述拼片的所述第一平面传达给所述拼片的所述第二平面,其中对表示所述第二相连位集的所述数据执行的所述计算操作可至少部分地基于所述进位位。
在本文中描述的方法1200和设备的一些实例中,所述第一平面可具有第一拼片且所述第二平面可具有第二拼片,且所述方法、设备和非暂时性计算机可读媒体可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:将由对所述第一相连位集执行所述计算操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第二平面,其中对所述第二相连位集执行的所述计算操作可至少部分地基于所述进位位。
在本文中描述的方法1200和设备的一些实例中,所述第一平面和所述第二平面可具有第一拼片,且所述方法、设备和非暂时性计算机可读媒体可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:与对所述第一相连位集执行所述计算操作并行地,对第三向量的存储于第二拼片的第一平面中的第一相连位集执行第二计算操作。
在本文中描述的方法1200和设备的一些实例中,所述第一平面可具有第一拼片且所述第二平面可具有第二拼片,且所述方法、设备和非暂时性计算机可读媒体可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:与对所述第二相连位集执行所述计算操作并行地,对第三向量的存储于所述第一拼片的第二平面中的第一相连位集执行第二计算操作。
应注意,本文中所描述的方法描述可能的实施方案,且操作和步骤可以重新布置或以其它方式加以修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
可使用多种不同技术和技艺中的任一种来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信令说明为单个信号;然而,信号可表示信号的总线,其中所述总线可具有多种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持电子在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。当例如控制器等组件将其它组件耦合在一起时,组件起始允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
两个或更多个动作可在所述动作同时、基本上同时、在部分重叠的时间或在完全重叠的时间进行的情况下“并行地”进行。
本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示范性”是指“充当实例、例子或说明”,且不“优选于”或“优于”其它实例。详细描述包含具体细节,以提供对所描述技术的理解。然而,可在没有这些具体细节的情况下实践这些技术。在一些情况下,以框图形式示出熟知结构和装置,以免混淆所描述实例的概念。
在附图中,类似组件或特征可以具有相同的参考标记。另外,可通过在参考标记之后跟着短划线及在类似组件当中进行区分的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一者,与第二参考标记无关。
本文中所描述的功能可在硬件、由处理器执行的软件、固件或其任何组合中实施。如果以由处理器执行的软件来实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体予以传输。其它实例和实施在本公开和所附权利要求书的范围内。举例来说,归因于软件的性质,本文中所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或任何这些的组合来实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。
例如,可用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其被设计成执行本文所描述的功能的任何组合来实施或执行结合本文中的本公开而描述的各种说明性块和模块。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器还可被实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此类配置)。
如本文中所使用,包含在权利要求书中,如在项列表(例如,后加例如“……中的至少一个”或“……中的一或多个”的短语的项列表)中所使用的“或”指示包含端点的列表,使得例如A、B或C中的至少一个的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。另外,如本文所用,短语“基于”不应理解为提及封闭条件集。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示范性步骤可基于条件A和条件B两者。换句话说,如本文所用,短语“基于”应同样地解释为短语“至少部分地基于”。
计算机可读媒体包含非暂时性计算机可读存储媒体和通信媒体两者,通信媒体包含促进将计算机程序从一处传送到另一处的任何媒体。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、压缩光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术包含在媒体的定义中。如本文中所使用,磁盘和光盘包含CD、激光光盘、光学光盘、数字影音光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各者的组合也包含在计算机可读媒体的范围内。
提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文所述的实例和设计,而是被赋予与本文所公开的原理和新颖特征一致的最宽范围。
Claims (37)
1.一种设备,其包括:
存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列;和
逻辑,其与所述存储器裸片耦合且被配置成:
使用关联处理对表示向量的第一相连位集的数据执行计算操作,所述向量是用于所述计算操作的操作数,所述数据表示存储于所述多个拼片中的拼片的第一平面中的所述第一相连位集;和
至少部分地基于对表示所述第一相连位集的所述数据执行所述计算操作,使用关联处理对表示所述向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的所述拼片的第二平面中的所述第二相连位集。
2.根据权利要求1所述的设备,其中所述逻辑被进一步配置成:
将表示所述第一相连位集上的所述计算操作的结果的数据写入到所述拼片的所述第一平面;和
将表示所述第二相连位集上的所述计算操作的结果的数据写入到所述拼片的所述第二平面。
3.根据权利要求1所述的设备,其中所述向量包括各自具有相应长度的多个元素,且其中所述向量的第一元素包括所述第一相连位集和所述第二相连位集。
4.根据权利要求1所述的设备,其中所述逻辑被进一步配置成:
对表示第二向量的第一相连位集的数据执行第二计算操作,所述数据表示所述第二向量的存储于第二拼片的第一平面中的所述第一相连位集;和
至少部分地基于对所述第二向量的所述第一相连位集执行所述第二计算操作,对表示所述第二向量的第二相连位集的数据执行所述第二计算操作,所述数据表示所述第二向量的存储于所述第二拼片的第二平面中的所述第二相连位集。
5.根据权利要求4所述的设备,其中所述逻辑被进一步配置成:
与对表示所述向量的所述第一相连位集的所述数据执行所述计算操作并行地,对表示所述第二向量的所述第一相连位集的所述数据执行所述第二计算操作;和
与对表示所述向量的所述第二相连位集的所述数据执行所述计算操作并行地,对表示所述第二向量的所述第二相连位集的所述数据执行所述第二计算操作。
6.根据权利要求1所述的设备,其中所述逻辑被进一步配置成:
对表示第二向量的第一相连位集的数据执行所述计算操作,所述第二向量是用于所述计算操作的操作数,所述数据表示所述第二向量的存储于所述拼片的所述第一平面中的所述第一相连位集;和
对表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示所述第二向量的存储于所述拼片的所述第二平面中的所述第二相连位集。
7.根据权利要求1所述的设备,其中所述计算操作包括算术操作,且其中所述逻辑被进一步配置成:
将由对所述第一相连位集执行所述算术操作产生的进位位从所述拼片的所述第一平面传达给所述拼片的所述第二平面,其中表示所述第二相连位集的所述数据上的所述算术操作至少部分地基于所述进位位。
8.根据权利要求1所述的设备,其中所述逻辑被进一步配置成:
使用关联处理并且与对表示所述向量的所述第一相连位集的所述数据执行所述计算操作并行地,对表示第二向量的存储于第二拼片的第二平面中的第一相连位集的数据执行第二计算操作。
9.根据权利要求1所述的设备,其中所述逻辑被进一步配置成:
从主机装置接收指示指令集的信令,所述指令集指示所述向量和所述计算操作;和
根据向量映射方案并且至少部分地基于所述指令集,将表示所述向量的数据写入到所述第一平面和所述第二平面。
10.根据权利要求1所述的设备,其中所述计算操作包括逻辑操作或算术操作。
11.根据权利要求1所述的设备,其中所述存储器裸片被配置成使得每拼片的单个平面能够同时操作用于关联处理。
12.一种设备,其包括:
存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列;和
逻辑,其与所述存储器裸片耦合且被配置成:
使用关联处理对表示向量的第一相连位集的数据执行计算操作,所述向量是用于所述计算操作的操作数,所述数据表示存储于所述多个拼片中的第一拼片的第一平面中的所述第一相连位集;和
至少部分地基于对所述第一相连位集执行所述计算操作,使用关联处理对表示所述向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。
13.根据权利要求12所述的设备,其中所述逻辑被进一步配置成:
将表示代表所述第一相连位集的所述数据上的所述计算操作的结果的数据写入到所述第一拼片的所述第一平面;和
将表示代表所述第二相连位集的所述数据上的所述计算操作的结果的数据写入到所述第二拼片的所述第一平面。
14.根据权利要求12所述的设备,其中所述向量包括各自具有相应长度的多个元素,且其中所述向量的第一元素包括所述第一相连位集和所述第二相连位集。
15.根据权利要求12所述的设备,其中所述逻辑被进一步配置成:
对表示第二向量的第一相连位集的数据执行第二计算操作,所述数据表示所述第二向量的存储于所述第一拼片的第二平面中的所述第一相连位集;和
至少部分地基于对表示所述第二向量的所述第一相连位集的所述数据执行所述第二计算操作,对表示所述第二向量的第二相连位集的数据执行所述第二计算操作,所述数据表示所述第二向量的存储于所述第二拼片的第二平面中的所述第二相连位集。
16.根据权利要求12所述的设备,其中所述逻辑被进一步配置成:
对表示第二向量的第一相连位集的数据执行所述计算操作,所述第二向量是用于所述计算操作的操作数,所述数据表示所述第二向量的存储于所述第一拼片的所述第一平面中的所述第一相连位集;和
对表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示所述第二向量的存储于所述第二拼片的所述第一平面中的所述第二相连位集。
17.根据权利要求12所述的设备,其中所述计算操作包括算术操作,且其中所述逻辑被进一步配置成:
将由对表示所述第一相连位集的所述数据执行所述算术操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第一平面,其中表示所述第二相连位集的所述数据上的所述算术操作至少部分地基于所述进位位。
18.根据权利要求12所述的设备,其中所述逻辑被进一步配置成:
使用关联处理并且与对表示所述向量的所述第二相连位集的所述数据执行所述计算操作并行地,对表示第二向量的存储于所述第一拼片的第二平面中的第一相连位集的数据执行第二计算操作。
19.根据权利要求12所述的设备,其中所述逻辑被进一步配置成:
至少部分地基于所述计算操作包括逻辑操作,与对表示所述第一相连位集的所述数据执行所述逻辑操作并行地,对表示所述第二相连位集的所述数据执行所述逻辑操作。
20.根据权利要求12所述的设备,其中所述逻辑被进一步配置成:
从主机装置接收指示指令集的信令,所述指令集指示所述向量和所述计算操作;和
根据向量映射方案并且至少部分地基于所述指令集,将表示所述向量的数据写入到所述第一平面和所述第二平面。
21.一种设备,其包括:
存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列;和
逻辑,其与所述存储器裸片耦合且被配置成:
至少部分地基于指示针对各种逻辑值组合的计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的拼片的第一平面中的所述第一相连位集;和
至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的所述拼片的第二平面中的所述第二相连位集。
22.根据权利要求21所述的设备,其中所述逻辑被进一步配置成:
将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述拼片的所述第一平面传达给所述拼片的所述第二平面,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。
23.根据权利要求21所述的设备,其中所述逻辑被进一步配置成:
与对表示所述第一相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于第二拼片的第一平面中的第一相连位集的数据执行第二计算操作。
24.根据权利要求21所述的设备,其中所述逻辑被进一步配置成:
从主机装置接收指示指令集的信令,所述指令集指示所述第一向量、所述第二向量和所述计算操作;和
至少部分地基于所述指令集,将表示所述第一相连位集的所述数据写入到所述拼片的所述第一平面并且将表示所述第二相连位集的所述数据写入到所述拼片的所述第二平面。
25.一种设备,其包括:
存储器裸片,其包括多个拼片,所述多个拼片各自包括多个平面,其中每一平面包括相应的内容可寻址存储器单元阵列;和
逻辑,其与所述存储器裸片耦合且被配置成:
至少部分地基于指示针对各种逻辑值组合的计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第一拼片的第一平面中的所述第一相连位集;和
至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。
26.根据权利要求25所述的设备,其中所述逻辑被进一步配置成:
将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第二平面,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。
27.根据权利要求25所述的设备,其中所述逻辑被进一步配置成:
与对表示所述第二相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于所述第一拼片的第二平面中的第一相连位集的数据执行第二计算操作。
28.根据权利要求25所述的设备,其中所述逻辑被进一步配置成:
从主机装置接收指示指令集的信令,所述指令集指示所述第一向量、所述第二向量和所述计算操作;和
至少部分地基于所述指令集,将表示所述第一相连位集的所述数据写入到所述第一拼片的所述第一平面并且将表示所述第二相连位集的所述数据写入到所述第二拼片的所述第一平面。
29.一种方法,其包括:
至少部分地基于指示针对各种逻辑值组合的计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于多个拼片中的第一拼片的第一平面中的所述第一相连位集;和
至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述多个拼片中的第二拼片的第一平面中的所述第二相连位集。
30.根据权利要求29所述的方法,其另外包括:
将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第二平面,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。
31.根据权利要求29所述的方法,其另外包括:
与对表示所述第二相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于所述第一拼片的第二平面中的第一相连位集的数据执行第二计算操作。
32.根据权利要求29所述的方法,其另外包括:
从主机装置接收指示指令集的信令,所述指令集指示所述第一向量、所述第二向量和所述计算操作;和
至少部分地基于所述指令集,将表示所述第一相连位集的所述数据写入到所述第一拼片的所述第一平面并且将表示所述第二相连位集的所述数据写入到所述第二拼片的所述第一平面。
33.一种方法,其包括:
至少部分地基于指示针对各种逻辑值组合的计算操作的结果的真值表,对表示第一向量的第一相连位集的数据和表示第二向量的第一相连位集的数据执行所述计算操作,所述数据表示存储于包括多个拼片的存储器裸片的第一平面中的所述第一相连位集,所述多个拼片各自包括多个平面;和
至少部分地基于用于所述计算操作的所述真值表,对表示所述第一向量的第二相连位集的数据和表示所述第二向量的第二相连位集的数据执行所述计算操作,所述数据表示存储于所述存储器裸片的第二平面中的所述第二相连位集。
34.根据权利要求33所述的方法,其中所述第一平面和所述第二平面具有同一拼片,所述方法另外包括:
将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述拼片的所述第一平面传达给所述拼片的所述第二平面,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。
35.根据权利要求33所述的方法,其中所述第一平面具有第一拼片且所述第二平面具有第二拼片,所述方法另外包括:
将由对表示所述第一相连位集的所述数据执行所述计算操作产生的进位位从所述第一拼片的所述第一平面传达给所述第二拼片的所述第二平面,其中对表示所述第二相连位集的所述数据执行的所述计算操作至少部分地基于所述进位位。
36.根据权利要求33所述的方法,其中所述第一平面和所述第二平面具有第一拼片,所述方法另外包括:
与对表示所述第一相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于第二拼片的第一平面中的第一相连位集的数据执行第二计算操作。
37.根据权利要求33所述的方法,其中所述第一平面具有第一拼片且所述第二平面具有第二拼片,所述方法另外包括:
与对表示所述第二相连位集的所述数据执行所述计算操作并行地,对表示第三向量的存储于所述第一拼片的第二平面中的第一相连位集的数据执行第二计算操作。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163239112P | 2021-08-31 | 2021-08-31 | |
US63/239,112 | 2021-08-31 | ||
US17/647,944 | 2022-01-13 | ||
US17/647,944 US12001708B2 (en) | 2021-08-31 | 2022-01-13 | In-memory associative processing for vectors |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115729861A true CN115729861A (zh) | 2023-03-03 |
Family
ID=85174745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211049741.XA Pending CN115729861A (zh) | 2021-08-31 | 2022-08-30 | 用于向量的存储器内关联处理 |
Country Status (3)
Country | Link |
---|---|
US (2) | US12001708B2 (zh) |
CN (1) | CN115729861A (zh) |
DE (1) | DE102022121767A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11740899B2 (en) * | 2021-08-31 | 2023-08-29 | Micron Technology, Inc. | In-memory associative processing system |
US20230267043A1 (en) * | 2022-02-23 | 2023-08-24 | Micron Technology, Inc. | Parity-based error management for a processing system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9847110B2 (en) * | 2014-09-03 | 2017-12-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector |
WO2021159028A1 (en) * | 2020-02-07 | 2021-08-12 | Sunrise Memory Corporation | High capacity memory circuit with low effective latency |
US11461097B2 (en) * | 2021-01-15 | 2022-10-04 | Cornell University | Content-addressable processing engine |
-
2022
- 2022-01-13 US US17/647,944 patent/US12001708B2/en active Active
- 2022-08-29 DE DE102022121767.1A patent/DE102022121767A1/de active Pending
- 2022-08-30 CN CN202211049741.XA patent/CN115729861A/zh active Pending
-
2024
- 2024-04-29 US US18/649,465 patent/US20240281167A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US12001708B2 (en) | 2024-06-04 |
US20230065783A1 (en) | 2023-03-02 |
US20240281167A1 (en) | 2024-08-22 |
DE102022121767A1 (de) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10643673B2 (en) | Apparatuses and methods for performing compare operations using sensing circuitry | |
US10783942B2 (en) | Modified decode for corner turn | |
US20190369883A1 (en) | Multiple endianness compatibility | |
CN115729861A (zh) | 用于向量的存储器内关联处理 | |
CN115729625A (zh) | 存储器内关联处理系统 | |
US11556339B2 (en) | Vector registers implemented in memory | |
US20220236995A1 (en) | Apparatuses and methods for ordering bits in a memory device | |
US20240152292A1 (en) | Redundant computing across planes | |
US11100998B2 (en) | Apparatuses and methods for organizing data in a memory device | |
US20240231824A9 (en) | Memory mapping for memory, memory modules, and non-volatile memory | |
US10147467B2 (en) | Element value comparison in memory | |
WO2023129813A1 (en) | Associative computing for error correction | |
TWI705441B (zh) | 記憶體中之感測操作 | |
US10043570B1 (en) | Signed element compare in memory | |
CN116643911A (zh) | 用于处理系统的基于奇偶校验的错误管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |