CN109690956A - 邻接存储器地址处的数据存储 - Google Patents
邻接存储器地址处的数据存储 Download PDFInfo
- Publication number
- CN109690956A CN109690956A CN201780055220.6A CN201780055220A CN109690956A CN 109690956 A CN109690956 A CN 109690956A CN 201780055220 A CN201780055220 A CN 201780055220A CN 109690956 A CN109690956 A CN 109690956A
- Authority
- CN
- China
- Prior art keywords
- data
- offset
- memory
- vector
- valid data
- 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.)
- Granted
Links
- 238000013500 data storage Methods 0.000 title description 3
- 239000013598 vector Substances 0.000 claims abstract description 234
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000003860 storage Methods 0.000 claims description 107
- 238000012545 processing Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 30
- 238000007906 compression Methods 0.000 claims description 22
- 230000006835 compression Effects 0.000 claims description 22
- 239000000284 extract Substances 0.000 claims description 5
- 230000005055 memory storage Effects 0.000 description 16
- 239000006185 dispersion Substances 0.000 description 13
- 230000005611 electricity Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 230000006837 decompression Effects 0.000 description 4
- 238000013144 data compression Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- 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/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6011—Encoder aspects
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
- H03M7/6023—Parallelization
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Communication Control (AREA)
Abstract
一种用于将数据存储于邻接存储器地址处的方法,其包含,在单指令多数据SIMD处理器处,执行并行前缀有效计数指令以确定第一数据向量的第一偏移且确定包含有效数据和无效数据的第二数据向量的第二偏移。所述第二偏移基于所述第一偏移及所述第一数据向量中的与有效数据相关联的多个位置。所述方法还包含将来自所述第一数据向量的第一有效数据存储于存储器的第一存储器地址处且将来自所述第二数据向量的第二有效数据存储于所述存储器的特定存储器地址处。所述第一存储器地址基于所述第一偏移且所述特定存储器地址基于所述第二偏移。
Description
相关申请案的交叉参考
本申请案要求2016年9月22日申请的美国专利申请案第15/273,366号的优先权,所述申请案的全部内容以引用的方式并入本文中。
技术领域
本发明大体上涉及数据存储。
背景技术
技术上的进步已经产生更强大的计算装置。举例来说,例如膝上型计算机及台式计算机及服务器的计算装置以及例如便携式无线电话、个人数字助理(PDA)及寻呼装置的无线计算装置具有改进的计算能力且能够执行日益复杂的操作。增加的计算能力也已在各种其它应用中增强装置能力。举例来说,车辆可包含用以启用全球定位***操作或其它定位操作、自动驾驶操作、交互式通信及娱乐操作等的处理装置。其它实例包含家用电器、安全相机、计量设备等,其也并入有计算装置以启用增强的功能,例如使用物联网通信。
计算装置可包含可用于处理一或多个稀疏数据向量的处理器。如本文中所使用,“稀疏数据向量”为包含具有无效数据(例如,“随意”数据值、默认数据值、空数据值或零数据值)的数据元素和具有有效数据(例如,“所关注的”数据值)的数据元素的数据的向量。数据向量中的无效数据导致低效计算及存储。举例来说,由于稀疏数据向量包含具有不必处理的无效数据项的数据元素,包含于处理器中的组件(例如,硬件)可通过处理无效数据低效地使用。
一种用于改进硬件使用效率的技术包含压缩处理器的处理管线内的稀疏数据向量以产生经压缩数据向量。为了产生经压缩数据向量,处理器可移位(处理器的处理管线内的)数据,使得具有有效数据的数据元素彼此邻近且具有无效数据的数据元素彼此邻近。然而,在处理管线内产生经压缩数据向量可通过复杂寻址方案产生相对较大数目的数据向量。另外,在处理管线内产生经压缩数据向量可导致增加的硬件成本。
发明内容
根据本文中所公开的技术的一个实施方案,一种方法包含,在单指令多数据(single-instruction-multiple-data,SIMD)处理器处,执行并行前缀有效计数指令以确定与包含有效数据及无效数据的数据元素的序列中的第一有效位置相关联的第一偏移。执行并行前缀有效计数指令还致使SIMD处理器确定与数据元素的序列中的第二有效位置相关联的第二偏移。第二偏移基于第一偏移及数据元素的序列中的与有效数据相关联的多个位置。
根据本文中所公开的技术的另一实施方案,一种设备包含存储器及经配置以执行并行前缀有效计数指令的单指令多数据(SIMD)。执行并行前缀有效计数指令使得SIMD处理器能够确定与包含有效数据及无效数据的数据元素的序列中的第一有效位置相关联的第一偏移且确定与数据元素的序列中的第二有效位置相关联的第二偏移。第二偏移基于第一偏移及数据元素的序列中的与有效数据相关联的多个位置。
根据本文中所公开的技术的另一实施方案,一种非暂时性计算机可读媒体包含至少一个指令,所述至少一个指令在由单指令多数据(SIMD)处理器执行时致使所述SIMD处理器执行包含以下的操作:通过执行并行前缀有效计数指令确定与包含有效数据及无效数据的数据元素的序列中的第一有效位置相关联的第一偏移。操作还包含通过执行并行前缀有效计数指令确定与数据元素的序列中的第二有效位置相关联的第二偏移。第二偏移基于第一偏移及数据元素的序列中的与有效数据相关联的多个位置。
根据本文中所公开的技术的另一实施方案,一种设备包含用于确定与包含有效数据及无效数据的数据元素的序列中的第一有效位置相关联的第一偏移的装置。设备还包含用于确定与数据元素的序列中的第二有效位置相关联的第二偏移的装置。第二偏移基于第一偏移及数据元素的序列中的与有效数据相关联的多个位置。
附图说明
图1为可用于在邻接存储器地址处存储数据的***的图式;
图2说明包含有效数据及无效数据的稀疏数据向量;
图3说明经压缩存储器数据向量;
图4说明用于识别经压缩存储器数据向量中的有效数据值的偏移的图表;
图5说明用于在邻接存储器地址处存储数据的方法;及
图6为包含可用于在邻接存储器地址处存储数据的组件的电子装置的图式。
具体实施方式
参考图1,说明可用于在邻接存储器地址处存储数据的***100。***100可在移动电话、个人数字助理(PDA)、娱乐单元、导航装置、音乐播放器、视频播放器、数字视频播放器、数字视频光盘(DVD)播放器,或任何其它装置内实施。
***100包含耦合到处理器104的存储器102。根据一个实施方案,处理器104可包含单指令多数据(SIMD)处理器。存储器102可以是包含可由处理器104执行的指令的非暂时性计算机可读媒体。举例来说,存储器102包含可由处理器104执行的指令106及可由处理器104执行的并行前缀有效计数指令108。
存储器102还包含经压缩存储器数据向量110。如下文所描述,来自不同稀疏数据向量的有效数据(而不是无效数据)可存储在经压缩存储器数据向量110处以在存储器102中产生“经压缩数据向量”。经压缩存储器数据向量110包含多个邻接存储器地址。为了说明,经压缩存储器数据向量110包含:第一存储器地址111、邻接于第一存储器地址111的第二存储器地址112、邻接于第二存储器地址112的第三存储器地址113、邻接于第三存储器地址113的第四存储器地址114、邻接于第四存储器地址114的第五存储器地址115、邻接于第五存储器地址115的第六存储器地址116、邻接于第六存储器地址116的第七存储器地址117、邻接于第七存储器地址117的第八存储器地址118、邻接于第八存储器地址118的第九存储器地址119,邻接于第九存储器地址119的第十存储器地址120等。
在图1中,经压缩存储器数据向量110包含十六个存储器地址。举例来说,经压缩存储器数据向量110包含邻接于第十五存储器地址(未示出)的第十六存储器地址122。然而,在其它实施方案中,经压缩存储器数据向量110可包含额外(或较少)邻接存储器地址。作为一非限制性实例,经压缩存储器数据向量110可包含三十二个邻接存储器地址。
处理器104包含一或多个寄存器130、存储器存储电路140、提取电路150,及SIMD处理管线152。尽管一或多个寄存器130说明为包含在处理器104中,但在其它实施方案中,一或多个寄存器130可与处理器104分离(且可由其存取)。在其它实施方案中,处理器104可包含额外(或较少)组件。作为一非限制性实例,在其它实施方案中,处理器104还可包含一或多个算术逻辑单元(ALU)、一或多个专用执行单元等。尽管处理器104示出为包含存储器存储电路140、提取电路150,及SIMD处理管线152,但在其它实施方案中,每一组件140、150、152的操作可通过单一处理组件执行。
一或多个寄存器130可存储第一数据向量132、第二数据向量134及第三数据向量136。“数据元素的序列”可包含存储在数据向量132、134、136中的数据元素。尽管三个数据向量132、134、136说明为包含在一或多个寄存器130中,但在其它实施方案中,一或多个寄存器130可包含额外(或较少)数据向量。每一数据向量132、134、136可以是“稀疏数据向量”或“稀疏数据阵列”。举例来说,每一数据向量132、134、136可包含有效数据(例如,所关注的数据值)及无效数据(例如,“随意”数据值、默认数据值,或零数据值)。根据一个实施方案,数据向量132、134、136可存储于存储器102中(而不是存储于一或多个寄存器130中)。
参考图2,更详细地示出数据向量132、134、136。每一数据向量132、134、136包含八个位置(例如,“位置0”到“位置7”)。根据一个实施方案,每一位置可能对应于“阵列位置”。尽管每一数据向量132、134、136示出为包含八个位置,但在其它实施方案中,每一数据向量132、134、136可包含额外(或较少)位置。作为一非限制性实例,每一数据向量132、134、136可包含十六个位置。根据另一实施方案,不同数据向量可包含不同数目个位置。作为一非限制性实例,一个数据向量可包含八个位置且另一数据向量可包含十六个位置。
根据图2,第一数据向量132包含三个有效数据值及五个无效数据值。举例来说,第一数据向量132的“位置1”存储有效数据值“A”,第一数据向量132的“位置3”存储有效数据值“B”,且第一数据向量132的“位置6”存储有效数据值“C”。第一数据向量132的其它位置存储无效数据值。第二数据向量134还包含三个有效数据值及五个无效数据值。举例来说,第二数据向量134的“位置2”存储有效数据值“D”,第二数据向量134的“位置3”存储有效数据值“E”,且第二数据向量134的“位置6”存储有效数据值“F”。第二数据向量134的其它位置存储无效数据值。第三数据向量136包含四个有效数据值及四个无效数据值。举例来说,第三数据向量136的“位置0”存储有效数据值“G”,第三数据向量136的“位置4”存储有效数据值“H”,第三数据向量136的“位置5”存储有效数据值“I”,且第三数据向量136的“位置7”存储有效数据值“J”。第三数据向量136的其它位置存储无效数据值。
返回参考图1,存储器存储电路140包含数据向量分析电路142、写入电路144及偏移确定电路146。数据向量分析电路142可经配置以确定第一数据向量132是否包含具有有效数据的位置。举例来说,数据向量分析电路142可确定有效数据值“A”位于第一数据向量132的“位置1”(例如,具有有效数据的第一依序位置)处。写入电路144可经配置以在经压缩存储器数据向量110的邻接存储器地址处写入(例如,存储)有效数据值(并行地)。举例来说,响应于确定有效数据值“A”位于第一数据向量132的“位置1”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“A”存储于第一存储器地址111处。举例来说,写入电路144可执行分散指令106(例如,向量存储指令)以将有效数据值“A”存储于第一存储器地址111处。
在有效数据值“A”存储于第一存储器地址111处之后,数据向量分析电路142可能确定第一数据向量132是否包含具有有效数据的另一位置。举例来说,数据向量分析电路142可确定有效数据值“B”位于第一数据向量132的“位置3”(例如,具有有效数据的下一依序位置)处。响应于确定有效数据值“B”位于第一数据向量132的“位置3”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“B”存储于第二存储器地址112(例如,第一存储器地址111的邻接存储器地址)处。举例来说,写入电路144可执行分散指令106以将有效数据值“B”存储于第二存储器地址112处。
在有效数据值“B”存储于第二存储器地址112处之后,数据向量分析电路142可能确定第一数据向量132是否包含具有有效数据的另一位置。举例来说,数据向量分析电路142可确定有效数据值“C”位于第一数据向量132的“位置6”(例如,具有有效数据的下一依序位置)处。响应于确定有效数据值“C”位于第一数据向量132的“位置6”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“C”存储于第三存储器地址113(例如,第二存储器地址112的邻接存储器地址)处。举例来说,写入电路144可执行分散指令106以将有效数据值“C”存储于第三存储器地址113处。因此,第一数据向量132的无效数据值可经旁路且第一数据向量132的有效数据值可存储在存储器102中的邻接存储器地址处。
在有效数据值“C”存储于第三存储器地址113处之后,数据向量分析电路142可能确定第一数据向量132是否包含具有有效数据的另一位置。响应于确定第一数据向量132不包含具有有效数据的另一位置,数据向量分析电路142可确定第二数据向量134是否包含具有有效数据的位置。举例来说,数据向量分析电路142可确定有效数据值“D”位于第二数据向量134的“位置2”(例如,具有有效数据的第一依序位置)处。响应于确定有效数据值“D”位于第二数据向量134的“位置2”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“D”存储于第四存储器地址114(例如,第三存储器地址113的邻接存储器地址)处。举例来说,写入电路144可执行分散指令106以将有效数据值“D”存储于第四存储器地址114处。
在有效数据值“D”存储于第四存储器地址114处之后,数据向量分析电路142可能确定第二数据向量134是否包含具有有效数据的另一位置。举例来说,数据向量分析电路142可确定有效数据值“E”位于第二数据向量134的“位置3”(例如,具有有效数据的下一依序位置)处。响应于确定有效数据值“E”位于第二数据向量134的“位置3”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“E”存储于第五存储器地址115(例如,第四存储器地址114的邻接存储器地址)处。举例来说,写入电路144可执行分散指令106以将有效数据值“E”存储于第五存储器地址115处。
在有效数据值“E”存储于第五存储器地址115处之后,数据向量分析电路142可能确定第二数据向量134是否包含具有有效数据的另一位置。举例来说,数据向量分析电路142可确定有效数据值“F”位于第二数据向量134的“位置6”(例如,具有有效数据的下一依序位置)处。响应于确定有效数据值“F”位于第二数据向量134的“位置6”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“F”存储于第六存储器地址116(例如,第五存储器地址115的邻接存储器地址)处。举例来说,写入电路144可执行分散指令106以将有效数据值“F”存储于第六存储器地址116处。因此,第二数据向量134的无效数据值可经旁路且第二数据向量134的有效数据值可存储在存储器102中的邻接存储器地址处。
在有效数据值“F”存储在第六存储器地址116处之后,数据向量分析电路142可能确定第二数据向量134是否包含具有有效数据的另一位置。响应于确定第二数据向量134不包含具有有效数据的另一位置,数据向量分析电路142可确定第三数据向量136是否包含具有有效数据的位置。举例来说,数据向量分析电路142可确定有效数据值“G”位于第三数据向量136的“位置1”(例如,具有有效数据的第一依序位置)处。响应于确定有效数据值“G”位于第三数据向量136的“位置1”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“G”存储于第七存储器地址117(例如,第六存储器地址116的邻接存储器地址)处。举例来说,写入电路144可执行分散指令106以将有效数据值“G”存储在第七存储器地址117处。
在有效数据值“G”存储于第七存储器地址117处之后,数据向量分析电路142可能确定第三数据向量136是否包含具有有效数据的另一位置。举例来说,数据向量分析电路142可确定有效数据值“H”位于第三数据向量136的“位置4”(例如,具有有效数据的下一依序位置)处。响应于确定有效数据值“H”位于第三数据向量136的“位置4”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“H”存储于第八存储器地址118(例如,第七存储器地址117的邻接存储器地址)处。举例来说,写入电路144可执行分散指令106以将有效数据值“H”存储在第八存储器地址118处。
在有效数据值“H”存储于第八存储器地址118处之后,数据向量分析电路142可能确定第三数据向量136是否包含具有有效数据的另一位置。举例来说,数据向量分析电路142可确定有效数据值“I”位于第三数据向量136的“位置5”(例如,具有有效数据的下一依序位置)处。响应于确定有效数据值“I”位于第三数据向量136的“位置5”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“I”存储于第九存储器地址119(例如,第八存储器地址118的邻接存储器地址)处。举例来说,写入电路144可执行分散指令106以将有效数据值“I”存储在第九存储器地址119处。
在有效数据值“J”存储于第九存储器地址119处之后,数据向量分析电路142可能确定第三数据向量136是否包含具有有效数据的另一位置。举例来说,数据向量分析电路142可确定有效数据值“J”位于第三数据向量136的“位置7”(例如,具有有效数据的下一依序位置)处。响应于确定有效数据值“J”位于第三数据向量136的“位置7”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“J”存储于第十存储器地址120(例如,第九存储器地址119的邻接存储器地址)处。举例来说,写入电路144可执行分散指令106以将有效数据值“J”存储在第十存储器地址120处。因此,第三数据向量136的无效数据值可经旁路且第三数据向量136的有效数据值可存储在存储器102中的邻接存储器地址处。
可执行类似操作以将额外有效数据值存储到存储器102的经压缩存储器数据向量110。参考图3,说明上文所描述的存储操作完成之后的经压缩存储器数据向量110。数据向量132、134、136的每一有效数据值可存储于经压缩存储器数据向量110的邻接存储器地址处。因此,无效数据可与稀疏数据向量132、134、136分离以在每一存储器地址处产生具有有效数据的经压缩存储器数据向量110。如下文所描述,处理器150可从存储器102提取经压缩存储器数据向量110以处理有效数据而不是处理有效数据及无效数据,处理有效数据及无效数据可导致处理器104的低效使用。
返回参考图1,偏移确定电路146可经配置以关于经压缩存储器数据向量110确定(例如,计数)每一数据向量132、134、136的偏移。举例来说,偏移确定电路146可针对每一数据向量132、134、136确定写入启用的计数(例如,并行前缀有效计数)。每一数据向量132、134、136的偏移可基于并行前缀有效计数。特定数据向量的“偏移”为存储有与特定数据向量相关联的有效数据的经压缩存储器数据向量110的第一依序存储器地址。偏移确定电路146可产生对应于数据向量132至136的多个偏移160,包含第一数据向量132的第一偏移162、第二数据向量134的第二偏移164及第三数据向量136的第三偏移166。举例来说,如进一步参考图4所描述,第一偏移162可具有值“1”以指示第一数据向量132的有效数据开始于经压缩存储器数据向量110的第一存储器地址111,第二偏移164可具有值“4”以指示第二数据向量134的有效数据开始于第四存储器地址114,且第三偏移166可具有值“7”以指示第三数据向量136的有效数据开始于经压缩存储器数据向量110的第七存储器地址117。根据一个实施方案,处理器104可执行并行前缀有效计数指令108以确定偏移。
为了说明,图4中说明用于识别每一数据向量132、134、136的偏移的图表400。根据图表400,存储器地址“0”可用作第一数据向量132的基地址。第一数据向量132的并行前缀计数可响应于与将有效数据值“A”存储于经压缩存储器数据向量110处相关联的启用(例如,写入启用)增大(从零到一)。每当并行前缀计数增大,存储器地址也增大。因此,在图表400中的“位置1”列下方,存储器地址从存储器地址“0”增大到存储器地址“1”(例如,第一存储器地址111)。因此,第一数据向量132关于经压缩存储器数据向量110的偏移162为第一存储器地址111且可存储为具有偏移值“1”以指示第一存储器地址111。在其它实施方案中,偏移162可经存储具有指示第一存储器地址111的另一偏移值,例如基于零的索引实施方案中的偏移值“0”。
并行前缀计数可响应于与将有效数据值“B”存储于经压缩存储器数据向量110的第二存储器地址112处相关联的启用增大(从一到二)。并行前缀计数也可能响应于与将有效数据值“C”存储于经压缩存储器数据向量110的第三存储器地址113处相关联的启用增大(从二到三)。如上文所描述,所存储的最后一个有效数据值的地址可用作新数据向量的基础。由于存储器地址“3”(例如,第三存储器地址113)为所存储的最后一个数据值(例如,有效数据值“C”)的地址,第三存储器地址113可用作第二数据向量134的基础。当第二数据向量134的并行前缀计数增大(从零到一)时,对应存储器地址可为第二数据向量134的偏移164。因此,第二数据向量134关于经压缩存储器数据向量110的偏移164为第四存储器地址114且可表示为具有偏移值“4”(或在基于零的索引实施方案中为“3”)。以类似方式,根据图表400,第三数据向量136关于经压缩存储器数据向量110的偏移166为第七存储器地址117且可表示为具有偏移值“7”(或在基于零的索引实施方案中为“6”)。
返回参考图1,偏移(由偏移确定电路146确定)可用于将存储器102中的数据映射到数据向量132、134、136。举例来说,如果第一数据向量132的偏移162为第一存储器地址111且第二数据向量134的偏移164为第四存储器地址114,那么处理器104可确定第一、第二和第三存储器地址111、112、113包含与第一数据向量132相关联的数据。类似地,如果第二数据向量134的偏移164为第四存储器地址114且第三数据向量136的偏移166为第七存储器地址117,那么处理器104可确定第四、第五和第六存储器地址114、115、116包含与第二数据向量134相关联的数据。
在数据值存储在经压缩存储器数据向量110中之后,提取电路150可经配置以提取存储在经压缩存储器数据向量110中的数据。提取电路150可将经压缩存储器数据向量110提供到SIMD处理管线152。由于经压缩存储器数据向量110的每一存储器地址包含有效数据值,所以SIMD处理管线152中的处理组件和硬件可有效地使用。举例来说,SIMD处理管线152中的处理组件可用于有效数据值而不是用于无效数据值。
关于图1到4描述的技术可通过减少由SIMD处理管线152处理的无效数据值的量来改进处理效率。通过将有效数据值存储于存储器102中的邻接地址处,提取电路150可将有效数据值(而不是有效和无效数据值)提供到SIMD处理管线152。另外,相对简单的寻址方案可通过在存储处理期间跟踪每一数据向量132、134、136的并行前缀有效计数来实现。举例来说,处理器104可基于并行前缀有效计数识别哪些数据值及/或存储器地址对应于每一数据向量132、134、136。
如参考图1到4所描述,并行前缀有效计数指令108可在来自多个数据向量132到136的稀疏数据压缩到经压缩存储器数据向量110中的稠密数据布置期间使用。替代地或另外,并行前缀有效计数指令108可在来自经压缩存储器数据向量110的数据解压缩到数据向量132到136中的稀疏数据布置期间使用。举例来说,在将数据压缩至经压缩存储器数据向量110中之后,经压缩存储器数据向量110中的数据可由SIMD处理管线152处理以在经压缩存储器数据向量110中产生经修改数据。经修改数据可写回到数据向量132到136的对应位置以使用经修改数据改写原始有效数据。在解压缩操作中,数据向量132到136中的每一有效位置的邻接偏移或地址可使用具有先前向量的最后一个计数的累积的并行前缀有效计数指令108计算,如图4中所描述。可基于并行前缀有效计数指令108的结果执行加载/收集以将来自经压缩存储器数据向量110中的每一地址或偏移的数据加载到数据向量132到136的有效数据位置中。因此,并行前缀有效计数指令108可在数据压缩操作期间以及数据解压缩操作期间使用。
参考图5,说明用于将数据存储于邻接存储器地址处的方法500的流程图。方法500可使用图1的***100来执行。
方法500包含在502处通过执行并行前缀有效计数指令确定与包含有效数据和无效数据的数据元素的序列中的第一有效位置相关联的第一偏移。举例来说,参考图1,SIMD处理器104可执行并行前缀有效计数指令108以确定第一数据向量132的第一偏移162。
方法500还包含在504处通过执行并行前缀有效计数指令确定与数据元素的序列中的第二有效位置相关联的第二偏移。第二偏移可基于第一偏移及数据元素的序列中的与有效数据相关联的多个位置。举例来说,参考图1,SIMD处理器104可执行并行前缀有效计数指令108以确定第二数据向量134的第二偏移164。根据一个实施方案,第二偏移可通过将第一数据向量132中的与有效数据相关联的多个位置添加到第一偏移162而计算。
方法500还包含在506处将来自第一数据向量的第一有效数据存储于存储器的第一存储器地址处。第一存储器地址可基于第一偏移。举例来说,参考图1,响应于确定有效数据值“A”位于第一数据向量132的“位置1”处,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“A”存储于第一存储器地址111处。举例来说,写入电路144可执行分散指令106以将有效数据值“A”存储在第一存储器地址111处。
方法500还包含在508处将来自第二数据向量的第二有效数据存储于存储器的特定存储器地址处。特定存储器地址可基于第二偏移。举例来说,参考图1,存储器存储电路140可启用写入电路144。写入电路144可响应于启用将有效数据值“D”存储于第四存储器地址114(例如,根据方法500的“第二存储器地址”)处。举例来说,写入电路144可执行分散指令106以将有效数据值“D”存储于第四存储器地址114处。
根据一个实施方案,方法500可包含将来自第一数据向量的额外有效数据存储于邻接于存储器的第一存储器地址的额外依序存储器地址处。特定存储器地址(第二有效数据存储于其中)可邻接于额外依序存储器地址中的最后一个存储器地址。根据方法500的一个实施方案,可并行地存储第一有效数据和第二有效数据。举例来说,与第一有效数据同时存储第二有效数据包含在第一时间段期间(例如,SIMD处理器104的单一时钟周期期间)存储第一有效数据且在第一时间段期间同时存储第二有效数据。
根据方法500的一个实施方案,第一存储器地址和特定存储器地址可为经压缩存储器数据向量(例如,经压缩存储器数据向量110)的存储器地址。方法500还可包含提取存储于经压缩存储器数据向量处的数据且响应于提取存储于经压缩存储器数据向量处的数据处理存储于经压缩存储器数据向量处的数据。
根据方法500的一个实施方案,在处理存储于经压缩存储器数据向量处的数据之后,可执行“解压缩”操作。并行前缀有效计数指令可经执行以确定将邻接存储器中的经处理数据的位置映射到数据的稀疏序列中的有效数据的位置的偏移。经处理数据随后可从邻接存储器加载到数据的稀疏序列中的有效数据的位置。因此,邻接存储器中的经处理数据的经压缩布置可基于数据向量132到136中的有效数据的位置解压缩为经处理数据的稀疏布置。
图5的方法500可通过减少由SIMD处理管线152处理的无效数据值的量改进处理效率。通过将有效数据值存储于存储器102中的邻接地址处,提取电路150可将有效数据值(而不是有效和无效数据值)提供到SIMD处理管线152。另外,相对简单的寻址方案可通过在存储处理期间跟踪每一数据向量132、134、136的并行前缀有效计数来实现。举例来说,处理器104可基于并行前缀有效计数识别哪些数据值及/或存储器地址对应于每一数据向量132、134、136。
参考图6,展示电子装置600的框图。作为说明性实例,电子装置600可对应于移动装置(例如蜂窝电话)。在其它实施方案中,电子装置600可对应于计算机(例如服务器、膝上型计算机、平板计算机或台式计算机)、可穿戴式电子装置(例如个人相机、头戴式显示器或手表)、车辆控制***或控制台、家用电器、机顶盒、娱乐单元、导航装置、个人数字助理(personal digital assistant,PDA)、电视、监视器、调谐器、无线电(例如卫星无线电)、音乐播放器(例如数字音乐播放器或便携式音乐播放器)、视频播放器(例如数字视频播放器,例如数字视频光盘(digital video disc,DVD)播放器或便携式数字视频播放器)、机器人、保健装置、另一电子装置或其组合。
电子装置600包含处理器104,例如数字信号处理器(digital signal processor,DSP)、中央处理单元(central processing unit,CPU)、图形处理单元(graphicsprocessing unit,GPU)、另一处理装置或其组合。处理器104包含一或多个寄存器130、存储器存储电路140、提取电路150,及SIMD处理管线152。一或多个寄存器110存储第一数据向量132、第二数据向量134及第三数据向量136。存储器存储电路140包含数据向量分析电路142、写入电路144及偏移确定电路146。处理器104可以与关于图1所描述基本上类似的方式操作。
电子装置600可进一步包含存储器102。存储器102可耦合到处理器104或集成于所述处理器内。存储器102可包含随机存取存储器(RAM)、磁阻随机存取存储器(MRAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、一或多个寄存器、硬盘、可装卸式磁盘或压缩光盘只读存储器(CD-ROM)、另一存储装置或其组合。存储器102可存储分散指令106、并行前缀有效计数指令108,和可由处理器610执行的一或多个其它指令668。举例来说,处理器104可执行分散指令106以将(数据向量132、134、136的)有效数据值存储在经压缩存储器数据向量110中。处理器104还可执行并行前缀有效计数指令108以确定每一数据向量132、134、136关于经压缩存储器数据向量110的偏移。处理器104还可执行一或多个其它指令668以执行图5的方法500。
图6还示出了耦合到处理器104并耦合到显示器628的显示器控制器626。译码器/解码器(编解码器(CODEC))634还可耦合到处理器104。扬声器636及麦克风638可以耦合到编解码器634。图6还指示无线接口640(例如无线控制器及/或收发器)可耦合到处理器104且耦合到天线642。
在一特定实例中,处理器104、显示器控制器626、存储器102、编解码器634和无线接口640包含在***级封装或芯片上***装置622中。此外,输入装置630和电源644可耦合到芯片上***装置622。此外,在特定实例中,如图6中所说明,显示器628、输入装置630、扬声器636、麦克风638、天线642和电源644在芯片上***装置622外部。然而,显示器628、输入装置630、扬声器636、麦克风638、天线642和电源644中的每一者可耦合到芯片上***装置622的组件,例如接口或控制器。
结合所公开的实例,计算机可读媒体(例如,存储器102)存储可由处理器(例如,处理器104)执行以执行操作的指令。操作包含将第一有效数据存储于存储器的第一存储器地址处。第一有效数据可位于包含有效数据和无效数据的第一数据向量的第一特定位置处。第一特定位置可与有效数据相关联。操作还包含确定第一数据向量是否包含与有效数据相关联的另一位置。如果第一数据向量包含与有效数据相关联的另一位置,那么操作包含将位于其它位置处的有效数据存储于邻接于第一存储器地址的第二存储器地址处。如果第一数据向量不包含与有效数据相关联的另一位置,那么操作还包含将第二有效数据存储于第二存储器地址处。第二数据可位于包含有效数据和无效数据的第二数据向量的第二特定位置处。第二特定位置可与有效数据相关联。
结合所描述的技术,设备包含用于经由执行并行前缀有效计数指令确定与数据元素的序列中的第一有效位置相关联的第一偏移的装置。数据元素的序列可包含有效数据和无效数据。举例来说,用于确定第一偏移的装置可包含图1和6的存储器存储电路140、图1和6的数据向量分析电路142、图1和6的偏移确定电路146、图1和6的处理器104、一或多个其他装置、电路、模块,或其任何组合。
设备还包含用于经由执行并行前缀有效计数指令确定与数据元素的序列中的第二有效位置相关联的第二偏移的装置。第二偏移可基于第一偏移及数据元素的序列中的与有效数据相关联的多个位置。举例来说,用于确定第二偏移的装置可包含图1和6的存储器存储电路140、图1和6的数据向量分析电路142、图1和6的偏移确定电路146、图1和6的处理器104、一或多个其他装置、电路模块,或其任何组合。
前面所公开的装置和功能可使用计算机文件(例如RTL、GDSII、GERBER等)来设计和表示。所述计算机文件可存储在计算机可读媒体上。一些或所有此些文件可提供给基于此些文件制造装置的制造操作者。所得产品包含晶片,晶片接着被切割成裸片并封装到集成电路(或“芯片”)中。所述芯片接着用于电子装置中,例如用于图6的电子装置600内。
所属领域的技术人员将进一步了解,结合本文中公开的实施方案所描述的各种说明性逻辑块、配置、模块、电路和算法步骤可以实施为电子硬件、计算机软件或两者的组合。上文已大体在其功能性方面描述各种说明性组件、块、配置、模块、电路和步骤。此类功能性被实施为硬件还是软件取决于特定应用和施加于整个***上的设计约束。所属领域的技术人员可以针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起对本公开的范围的偏离。
结合本文中所公开的实施方案而描述的方法或算法的步骤可直接实施于硬件、由处理器执行的软件模块或两者的组合中。软件模块可驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸式磁盘、压缩光盘只读存储器(CD-ROM)或所属领域中已知的任何其它形式的存储媒体中。示范性非暂时性(例如有形的)存储媒体耦合到处理器,使得处理器可从所述存储媒体读取信息并将信息写入到所述存储媒体。在替代方案中,存储媒体可与处理器成整体。处理器和存储媒体可驻留在专用集成电路(ASIC)中。ASIC可驻留在计算装置或用户终端中。在替代方案中,处理器和存储媒体可以作为离散组件驻留于计算装置或用户终端中。
提供所公开的实施方案的先前描述以使所属领域的技术人员能够制作或使用所公开的实施方案。对于所属领域的技术人员来说,对这些实施方案的各种修改将显而易见,且本文中定义的原理可在不脱离本公开的范围的情况下应用于其它实施方案。因此,本公开并不意图限于本文中所展示的实施方案,而应被赋予与如通过所附权利要求书界定的原理及新颖特征一致的可能的最广范围。
Claims (30)
1.一种方法,其包括:
在单指令多数据SIMD处理器处:
执行并行前缀有效计数指令以:
确定与包含有效数据和无效数据的数据元素的序列中的第一有效位置相关联的第一偏移;及
确定与数据元素的所述序列中的第二有效位置相关联的第二偏移,所述第二偏移基于所述第一偏移及数据元素的所述序列中的与有效数据相关联的多个位置。
2.根据权利要求1所述的方法,其中所述第一偏移与所述第二偏移同时经确定。
3.根据权利要求1所述的方法,其进一步包括将所述第一有效位置与所述第二有效位置之间的与有效数据相关联的所述多个位置添加到所述第一偏移以计算所述第二偏移。
4.根据权利要求1所述的方法,其进一步包括:
将来自与数据元素的所述序列相关联的第一数据向量的第一有效数据存储于存储器的第一存储器地址处,所述第一存储器地址基于所述第一偏移;及
将来自与数据元素的所述序列相关联的第二数据向量的第二有效数据存储于所述存储器的特定存储器地址处,所述特定存储器地址基于所述第二偏移。
5.根据权利要求4所述的方法,其进一步包括将来自所述第一数据向量的额外有效数据存储于邻接于所述存储器的所述第一存储器地址的额外依序存储器地址处。
6.根据权利要求5所述的方法,其中所述特定存储器地址邻接于所述额外依序存储器地址中的最后一个存储器地址。
7.根据权利要求4所述的方法,其中所述第一有效数据和所述第二有效数据并行地存储。
8.根据权利要求7所述的方法,其中与所述第一有效数据同时存储所述第二有效数据包含:
在第一时间段期间存储所述第一有效数据;及
在所述第一时间段期间同时存储所述第二有效数据。
9.根据权利要求4所述的方法,其中所述第一存储器地址和所述特定存储器地址为经压缩存储器数据向量的存储器地址。
10.根据权利要求9所述的方法,其进一步包括提取存储于所述经压缩存储器数据向量处的数据。
11.根据权利要求10所述的方法,其进一步包括响应于提取存储于所述经压缩存储器数据向量处的所述数据处理存储于所述经压缩存储器数据向量处的所述数据。
12.根据权利要求1所述的方法,其进一步包括,在处理存储于所述经压缩存储器数据向量处的所述数据之后:
执行所述并行前缀有效计数指令以确定将邻接存储器中的经处理数据的位置映射到数据的稀疏序列中的有效数据的位置的偏移;及
将所述经处理数据从邻接存储器加载到数据的所述稀疏序列中的有效数据的所述位置。
13.一种设备,其包括:
存储器;及
单指令多数据SIMD处理器,其经配置以:
执行并行前缀有效计数指令,其中执行所述并行前缀有效计数指令使所述SIMD处理器:
确定与包含有效数据和无效数据的数据元素的序列中的第一有效位置相关联的第一偏移;及
确定与数据元素的所述序列中的第二有效位置相关联的第二偏移,所述第二偏移基于所述第一偏移及数据元素的所述序列中的与有效数据相关联的多个位置。
14.根据权利要求13所述的设备,其中所述第一偏移与所述第二偏移同时经确定。
15.根据权利要求13所述的设备,其中所述SIMD处理器经配置以将所述第一有效位置与所述第二有效位置之间的与有效数据相关联的所述多个位置添加到所述第一偏移以计算所述第二偏移。
16.根据权利要求13所述的设备,其中所述SIMD处理器经进一步配置以:
将来自与数据元素的所述序列相关联的第一数据向量的第一有效数据存储于所述存储器的第一存储器地址处,所述第一存储器地址基于所述第一偏移;及
将来自与数据元素的所述序列相关联的第二数据向量的第二有效数据存储于所述存储器的特定存储器地址处,所述特定存储器地址基于所述第二偏移。
17.根据权利要求16所述的设备,其中所述SIMD处理器经配置以将来自所述第一数据向量的额外有效数据存储于邻接于所述存储器的所述第一存储器地址的额外依序存储器地址处。
18.根据权利要求17所述的设备,其中所述特定存储器地址邻接于所述额外依序存储器地址中的最后一个存储器地址。
19.根据权利要求16所述的设备,其中所述第一有效数据和所述第二有效数据并行地存储。
20.根据权利要求16所述的设备,其中所述第一存储器地址和所述特定存储器地址为经压缩存储器数据向量的存储器地址。
21.根据权利要求20所述的设备,其中所述SIMD处理器经配置以提取存储于所述经压缩存储器数据向量处的数据。
22.根据权利要求21所述的设备,其中所述SIMD处理器经配置以响应于提取存储于所述经压缩存储器数据向量处的所述数据处理存储于所述经压缩存储器数据向量处的所述数据。
23.一种非暂时性计算机可读媒体,其包括至少一个指令,所述至少一个指令在由单指令多数据SIMD处理器执行时使所述SIMD处理器执行包括以下各者的操作:
通过执行并行前缀有效计数指令确定与包含有效数据和无效数据的数据元素的序列中的第一有效位置相关联的第一偏移;及
通过执行所述并行前缀有效计数指令确定与数据元素的所述序列中的第二有效位置相关联的第二偏移,所述第二偏移基于所述第一偏移及数据元素的所述序列中的与有效数据相关联的多个位置。
24.根据权利要求23所述的非暂时性计算机可读媒体,其中所述第一偏移与所述第二偏移同时确定。
25.根据权利要求23所述的非暂时性计算机可读媒体,其中所述操作进一步包括将所述第一有效位置与所述第二有效位置之间的与有效数据相关联的所述多个位置添加到所述第一偏移以计算所述第二偏移。
26.根据权利要求23所述的非暂时性计算机可读媒体,其中所述操作进一步包括:
将来自与数据元素的所述序列相关联的第一数据向量的第一有效数据存储于存储器的第一存储器地址处,所述第一存储器地址基于所述第一偏移;及
将来自与数据元素的所述序列相关联的第二数据向量的第二有效数据存储于所述存储器的特定存储器地址处,所述特定存储器地址基于所述第二偏移。
27.根据权利要求26所述的非暂时性计算机可读媒体,其中所述操作进一步包括将来自所述第一数据向量的额外有效数据存储于邻接于所述存储器的所述第一存储器地址的额外依序存储器地址处。
28.一种设备,其包括:
用于经由执行并行前缀有效计数指令确定与数据元素的序列中的第一有效位置相关联的第一偏移的装置,数据元素的所述序列包含有效数据和无效数据;及
用于经由执行所述并行前缀有效计数指令确定与数据元素的所述序列中的第二有效位置相关联的第二偏移,所述第二偏移基于所述第一偏移及数据元素的所述序列中的与有效数据相关联的多个位置。
29.根据权利要求28所述的设备,其中所述第一偏移与所述第二偏移同时经确定。
30.根据权利要求28所述的设备,其中通过将所述第一有效位置与所述第二有效位置之间的与有效数据相关联的所述多个位置添加到所述第一偏移来计算所述第二偏移。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/273,366 US10162752B2 (en) | 2016-09-22 | 2016-09-22 | Data storage at contiguous memory addresses |
US15/273,366 | 2016-09-22 | ||
PCT/US2017/044227 WO2018057115A1 (en) | 2016-09-22 | 2017-07-27 | Data storage at contiguous memory addresses |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109690956A true CN109690956A (zh) | 2019-04-26 |
CN109690956B CN109690956B (zh) | 2024-02-13 |
Family
ID=59558510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780055220.6A Active CN109690956B (zh) | 2016-09-22 | 2017-07-27 | 电子设备和用于电子设备的方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10162752B2 (zh) |
EP (1) | EP3516774B1 (zh) |
JP (1) | JP6985377B2 (zh) |
KR (1) | KR102561619B1 (zh) |
CN (1) | CN109690956B (zh) |
BR (1) | BR112019005612A2 (zh) |
CA (1) | CA3033960A1 (zh) |
ES (1) | ES2967320T3 (zh) |
WO (1) | WO2018057115A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158757A (zh) * | 2019-12-31 | 2020-05-15 | 深圳芯英科技有限公司 | 并行存取装置和方法以及芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4881168A (en) * | 1986-04-04 | 1989-11-14 | Hitachi, Ltd. | Vector processor with vector data compression/expansion capability |
US20130024654A1 (en) * | 2011-07-20 | 2013-01-24 | Gove Darryl J | Vector operations for compressing selected vector elements |
US20140013076A1 (en) * | 2011-12-08 | 2014-01-09 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors |
CN104685465A (zh) * | 2012-10-18 | 2015-06-03 | 高通股份有限公司 | 向量寄存器堆的地址线到元素组的选择性耦合 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000022707A (ja) | 1998-07-03 | 2000-01-21 | Fujitsu Ltd | データ伝送方法、およびデータ伝送システム |
CN1400754A (zh) | 2001-05-28 | 2003-03-05 | 松下电器产业株式会社 | 数据传送装置 |
US7889765B2 (en) | 2005-11-30 | 2011-02-15 | Time Warner Cable Inc. | Apparatus and methods for utilizing variable rate program streams in a network |
US9734086B2 (en) | 2006-12-06 | 2017-08-15 | Sandisk Technologies Llc | Apparatus, system, and method for a device shared between multiple independent hosts |
US9697174B2 (en) * | 2011-12-08 | 2017-07-04 | Oracle International Corporation | Efficient hardware instructions for processing bit vectors for single instruction multiple data processors |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
CN104603755B (zh) * | 2012-09-28 | 2017-11-14 | 英特尔公司 | 循环向量化方法和设备 |
US9606961B2 (en) * | 2012-10-30 | 2017-03-28 | Intel Corporation | Instruction and logic to provide vector compress and rotate functionality |
US11113054B2 (en) * | 2013-09-10 | 2021-09-07 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression |
US10133570B2 (en) * | 2014-09-19 | 2018-11-20 | Intel Corporation | Processors, methods, systems, and instructions to select and consolidate active data elements in a register under mask into a least significant portion of result, and to indicate a number of data elements consolidated |
-
2016
- 2016-09-22 US US15/273,366 patent/US10162752B2/en active Active
-
2017
- 2017-07-27 CN CN201780055220.6A patent/CN109690956B/zh active Active
- 2017-07-27 EP EP17749310.3A patent/EP3516774B1/en active Active
- 2017-07-27 WO PCT/US2017/044227 patent/WO2018057115A1/en unknown
- 2017-07-27 JP JP2019515353A patent/JP6985377B2/ja active Active
- 2017-07-27 CA CA3033960A patent/CA3033960A1/en active Pending
- 2017-07-27 KR KR1020197007881A patent/KR102561619B1/ko active IP Right Grant
- 2017-07-27 BR BR112019005612A patent/BR112019005612A2/pt unknown
- 2017-07-27 ES ES17749310T patent/ES2967320T3/es active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4881168A (en) * | 1986-04-04 | 1989-11-14 | Hitachi, Ltd. | Vector processor with vector data compression/expansion capability |
US20130024654A1 (en) * | 2011-07-20 | 2013-01-24 | Gove Darryl J | Vector operations for compressing selected vector elements |
US20140013076A1 (en) * | 2011-12-08 | 2014-01-09 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors |
CN104685465A (zh) * | 2012-10-18 | 2015-06-03 | 高通股份有限公司 | 向量寄存器堆的地址线到元素组的选择性耦合 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158757A (zh) * | 2019-12-31 | 2020-05-15 | 深圳芯英科技有限公司 | 并行存取装置和方法以及芯片 |
CN111158757B (zh) * | 2019-12-31 | 2021-11-30 | 中昊芯英(杭州)科技有限公司 | 并行存取装置和方法以及芯片 |
Also Published As
Publication number | Publication date |
---|---|
EP3516774B1 (en) | 2023-11-29 |
CN109690956B (zh) | 2024-02-13 |
ES2967320T3 (es) | 2024-04-29 |
US10162752B2 (en) | 2018-12-25 |
JP6985377B2 (ja) | 2021-12-22 |
KR20190056365A (ko) | 2019-05-24 |
KR102561619B1 (ko) | 2023-07-28 |
JP2019530091A (ja) | 2019-10-17 |
EP3516774A1 (en) | 2019-07-31 |
CA3033960A1 (en) | 2018-03-29 |
WO2018057115A1 (en) | 2018-03-29 |
BR112019005612A2 (pt) | 2019-10-08 |
US20180081803A1 (en) | 2018-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7322254B2 (ja) | ニューラルネットワークプロセッサにおいてタスクを割り当てるためのシステム及び方法 | |
TWI644208B (zh) | 藉由對硬體資源之限制實現的向後相容性 | |
CN104952033B (zh) | 分布式图形处理器分级中的***一致性 | |
CN102460420B (zh) | 存储器装置的内部处理器中的条件式操作 | |
US11740932B2 (en) | Systems and methods for task switching in neural network processor | |
JP6022581B2 (ja) | Fifoロード命令 | |
CN105144122A (zh) | 外部可编程存储器管理单元 | |
US9547881B2 (en) | Systems and methods for calculating a feature descriptor | |
TWI559142B (zh) | 在分散式快取組織上處置壓縮資料之技術 | |
CN104025031B (zh) | 减少应用中对共享存储器单元执行的顺序操作的数量 | |
TW201729077A (zh) | 用於設置多重向量元素操作之指令及邏輯 | |
KR20160007874A (ko) | 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법 | |
EP2945126A2 (en) | Graphics processing method and graphics processing apparatus | |
CN106575220A (zh) | 多个经集群极长指令字处理核心 | |
CN109716332A (zh) | 分段多项式评估指令 | |
CN108292218A (zh) | 用于向量位字段压缩和扩展的指令和逻辑 | |
CN109690956A (zh) | 邻接存储器地址处的数据存储 | |
US10380106B2 (en) | Efficient method and hardware implementation for nearest neighbor search | |
US10997497B2 (en) | Calculation device for and calculation method of performing convolution | |
TW201729080A (zh) | 用於排列序列之指令及邏輯 | |
CN115328547A (zh) | 一种数据处理方法、电子设备及存储介质 | |
CN104050230B (zh) | 使用simd指令集架构查找大数据集中最小和最大值的快速方法 | |
JP2022539554A (ja) | 高精度のニューラル処理要素 | |
JP2020037026A5 (ja) | プログラム及び情報処理装置 | |
US20240070801A1 (en) | Processing-in-memory system with deep learning accelerator for artificial intelligence |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |