CN111045979B - 基于存储器处理器的多处理架构及其操作方法 - Google Patents
基于存储器处理器的多处理架构及其操作方法 Download PDFInfo
- Publication number
- CN111045979B CN111045979B CN201910288360.9A CN201910288360A CN111045979B CN 111045979 B CN111045979 B CN 111045979B CN 201910288360 A CN201910288360 A CN 201910288360A CN 111045979 B CN111045979 B CN 111045979B
- Authority
- CN
- China
- Prior art keywords
- processing units
- main processor
- memory chips
- task
- operation task
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 201
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000013500 data storage Methods 0.000 claims abstract description 44
- 238000004891 communication Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012268 genome sequencing Methods 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Image Analysis (AREA)
- Memory System (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Feedback Control In General (AREA)
Abstract
本发明提出一种基于存储器处理器的多处理架构及其操作方法。基于存储器处理器的多处理架构包括主处理器以及多个存储器芯片。多个存储器芯片包括多个处理单元以及多个数据储存区。所述多个处理单元以及所述多个数据储存区分别一对一地设置在所述多个存储器芯片中。所述多个数据储存区用以分担储存巨量数据集的多个子数据集。主处理器指派运算任务至所述多个存储器芯片的所述多个处理单元的其中之一,以使所述多个处理单元的其中之一存取对应的数据储存区,以依据所述多个子数据集的一部分执行运算任务。
Description
技术领域
本发明涉及一种处理架构,且特别涉及一种基于存储器处理器(memoryprocessor-based)的多处理(multiprocessing)架构及其操作方法。
背景技术
随着越来越各式不同型态的巨量数据集运算应用被开发,例如神经网络(neuralnetwork)运算或基因定序(genome sequencing)运算等诸如此类具有数据庞大且运算密集的特性的应用,对于处理器(Central Processing Unit,CPU)的处理校能要求越来越高。然而,目前的处理器的运算速度受限于处理器内建的快取(cache)单元大小、低快取命中率(cache hit rate)以及存储器存取(memory access)时间的限制,而无法有效的提升运算速度。
对此,一般增进运算速度方式例如是利用现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)架构、专用集成电路(Application-SpecificIntegrated Circuit,ASIC)架构或图形处理器(Graphics Processing Unit,GPU)架构来分担处理器(Central Processing Unit,CPU)执行运算度高的运算任务,以达到加速运算的效果。然而,上述这些方式仍无法克服存储器存取时间的限制,并且随着处理电路数量的增加,其能源的消耗也同增加。有鉴于此,如何设计一种能快速执行巨量数据密集运算的处理架构,以下将提出几个实施例的解决方案。
发明内容
本发明提供一种基于存储器处理器(memory processor-based)的多处理(multiprocessing)架构及其操作方法,可对巨量数据集(large datasets)进行有效率的多处理操作。
本发明的基于存储器处理器的多处理架构包括主处理器、多个存储器芯片。主处理器包括数据索引机制。多个存储器芯片耦接主处理器。所述多个存储器芯片包括多个处理单元以及多个数据储存区。所述多个处理单元以及所述多个数据储存区分别一对一地设置在所述多个存储器芯片中。所述多个数据储存区用以分担储存巨量数据集的多个子数据集。主处理器指派运算任务至所述多个存储器芯片的所述多个处理单元的其中之一,以使所述多个处理单元的其中之一存取对应的数据储存区,以依据所述多个子数据集的一部分执行运算任务。
在本发明的一实施例中,上述的主处理器包括数据索引机制。主处理器依据数据索引机制来决定指派运算任务至所述多个存储器芯片的所述多个处理单元的其中之一。
在本发明的一实施例中,上述的主处理器还包括工作队列。主处理器依据工作队列以及数据索引机制来依序指派多个运算任务至所述多个存储器芯片的所述多个处理单元的至少其中之一。
在本发明的一实施例中,上述的所述多个处理单元各别包括任务队列,当所述多个处理单元的其中之一依序接收到至少两个运算任务时,所述至少两个运算任务依序排入至所述多个处理单元的其中之一的任务队列,以使所述多个处理单元的其中之一依据任务队列来依序执行。
在本发明的一实施例中,上述的所述多个处理单元的其中之一搜索在对应的数据储存区中的所述多个子数据集的一部分是否具有对应于运算任务的一特定子数据集,以依据特定子数据集来执行运算任务。
在本发明的一实施例中,上述的当所述多个处理单元的其中之一成功执行运算任务时,所述多个处理单元的其中之一对应地将一运算结果回传至主处理器,以使主处理器接续指派另一运算任务。
在本发明的一实施例中,上述的当所述多个处理单元的其中之一无法成功执行运算任务时,所述多个处理单元的其中之一回退运算任务至主处理器。主处理器依序地重新指派运算任务至其他的所述多个处理单元,直到所述多个处理单元的其中之另一成功执行运算任务。
在本发明的一实施例中,上述的所述主处理器经由第一通道与所述多个存储器芯片进行分时通信。
在本发明的一实施例中,上述的所述多个处理单元经由多个第二通道来各别一对一存取所述多个数据储存区,并且所述多个第二通道的频宽大于第一通道的频宽。
在本发明的一实施例中,上述的所述多个存储器芯片的数量依据巨量数据集的数据量来决定。
在本发明的一实施例中,上述的主处理器通过无线通信方式、点对点传输方式或插槽来耦接至另外多个存储器芯片,以选择性地指派运算任务至所述多个存储器芯片以及另外所述多个存储器芯片的其中之一。
在本发明的一实施例中,上述的处理单元以及对应的所述多个数据储存区分别设置于相同芯片或不同芯片之中。
在本发明的一实施例中,上述的主处理器指派同一运算事件的多个运算任务至所述多个处理单元,以使所述多个处理单元依指派执行所述多个运算任务。
在本发明的一实施例中,上述的主处理器同时指派多个运算事件的多个运算任务至所述多个处理单元,以使所述多个处理单元各别独立执行所述多个运算事件的所述多个运算任务。
在本发明的一实施例中,上述的所述多个处理单元分别包括逻辑运算单元。
本发明的基于存储器处理器的多处理架构的操作方法包括以下步骤:通过主处理器指派运算任务至多个存储器芯片的多个处理单元的其中之一;通过所述多个处理单元的其中之一对应存取多个数据储存区的其中之一,以取得巨量数据集的多个子数据集的一部分;以及通过所述多个处理单元的其中之一依据所述多个子数据集的一部分执行运算任务。
在本发明的一实施例中,上述的通过主处理器指派运算任务至所述多个存储器芯片的所述多个处理单元的其中之一的步骤包括:通过主处理器依据数据索引机制来决定指派运算任务至所述多个存储器芯片的所述多个处理单元的其中之一。
在本发明的一实施例中,上述的通过主处理器指派运算任务至所述多个存储器芯片的所述多个处理单元的其中之一的步骤还包括:通过主处理器依据工作队列以及数据索引机制来依序指派多个运算任务至所述多个存储器芯片的所述多个处理单元的至少其中之一。
在本发明的一实施例中,上述的操作方法还包括:当所述多个处理单元的其中之一依序接收到至少两个运算任务时,所述至少两个运算任务依序排入至所述多个处理单元的其中之一的任务队列,以使所述多个处理单元的其中之一依据任务队列来依序执行。
在本发明的一实施例中,上述的通过所述多个处理单元的其中之一依据所述多个子数据集的一部分执行运算任务的步骤包括:通过所述多个处理单元的其中之一搜索在对应的数据储存区中的所述多个子数据集的一部分是否具有对应于运算任务的一特定子数据集,以依据特定子数据集来执行运算任务。
在本发明的一实施例中,上述的通过所述多个处理单元的其中之一依据所述多个子数据集的一部分执行运算任务的步骤包括:当所述多个处理单元的其中之一成功执行运算任务时,通过所述多个处理单元的其中之一对应地将一运算结果回传至主处理器,以使主处理器接续指派另一运算任务。
在本发明的一实施例中,上述的通过所述多个处理单元的其中之一依据所述多个子数据集的一部分执行运算任务的步骤包括:当所述多个处理单元的其中之一无法成功执行运算任务时,通过所述多个处理单元的其中之一回退运算任务至主处理器;以及通过主处理器依序地重新指派运算任务至其他的所述多个处理单元,直到所述多个处理单元的其中之另一成功执行运算任务。
在本发明的一实施例中,上述的所述主处理器经由第一通道与所述多个存储器芯片进行分时通信。
在本发明的一实施例中,上述的所述多个处理单元经由多个第二通道来各别一对一存取所述多个数据储存区,并且所述多个第二通道的频宽大于第一通道的频宽。
在本发明的一实施例中,上述的所述多个存储器芯片的数量依据巨量数据集的数据量来决定。
在本发明的一实施例中,上述的主处理器通过无线通信方式、点对点传输方式或插槽来耦接至另外多个存储器芯片,以选择性地指派运算任务至所述多个存储器芯片以及另外所述多个存储器芯片的其中之一。
在本发明的一实施例中,上述的处理单元以及对应的所述多个数据储存区分别设置于相同芯片或不同芯片之中。
在本发明的一实施例中,上述的主处理器指派同一运算事件的多个运算任务至所述多个处理单元,以使所述多个处理单元依指派执行所述多个运算任务。
在本发明的一实施例中,上述的主处理器同时指派多个运算事件的多个运算任务至所述多个处理单元,以使所述多个处理单元各别独立执行所述多个运算事件的所述多个运算任务。
在本发明的一实施例中,上述的所述多个处理单元分别包括逻辑运算单元。
基于上述,本发明的基于存储器处理器的多处理架构及其操作方法,可通过设置在多个存储器芯片的多个处理单元来各别执行对应的运算任务,以实现可对巨量数据集进行有效率的多处理操作。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是依照本发明的一实施例的多处理架构的功能方块图。
图2是依照本发明的一实施例的多处理架构的操作示意图。
图3是依照本发明的一实施例的多处理架构的操作方法的流程图。
图4是依照本发明的另一实施例的多处理架构的操作方法的流程图。
符号说明
100、200:多处理架构
110、210:主处理器
120_1、120_2~120_N、220_1、220_2~220_N:存储器芯片
121_1、121_2~121_N、221_1、221_2~221_N:处理单元
122_1、122_2~122_N、222_1、222_2~222_N:数据储存区
211:工作队列
212:数据索引机制
223_1、223_2~223_N:任务队列
C1:第一通道
C2_1、C2_2~C2_N:第二通道
S310、S320、S330、S340、S350、S410、S420、S430:步骤
具体实施方式
为了使本发明的内容可以被更容易明了,以下特举实施例做为本发明确实能够据以实施的范例。另外,凡可能之处,在图式及实施方式中使用相同标号的元件/构件/步骤,是代表相同或类似部件。
图1是依照本发明的一实施例的多处理(multiprocessing)架构的功能方块图。参考图1,多处理架构100包括主处理器110以及多个存储器芯片120_1~120_N,其中N为大于1的正整数。在本实施例中,主处理器110经由第一通道C1耦接多个存储器芯片120_1~120_N,并且与所述多个存储器芯片120_1~120_N进行分时通信。存储器芯片120_1~120_N包括多个处理单元121_1~121_N以及多个数据储存区122_1~122_N。所述多个处理单元121_1~121_N以及所述多个数据储存区122_1~122_N分别一对一地设置在所述多个存储器芯片120_1~120_N中。然而,在一实施例中,所述多个处理单元121_1~121_N以及所述多个数据储存区122_1~122_N也可分别设置不同芯片之中,而不限于图1所示的架构。
所述多个处理单元121_1~121_N经由多个第二通道C2_1~C2_N来各别一对一存取所述多个数据储存区122_1~122_N。第一通道C1以及所述多个第二通道C2_1~C2_N可为存储器总线(memory bus),并且所述多个第二通道C2_1~C2_N的频宽(bandwidth)大于第一通道C1的频宽。在本实施例中,所述多个第二通道C2_1~C2_N可分别例如是1024bits,但本发明并不限于此。在一实施例中,第一通道C1以及所述多个第二通道C2_1~C2_N的频宽可依据多处理架构100的数据传输需求或所述多个数据储存区122_1~122_N的数据储存格式来对应设计之。也就是说,本实施例的所述多个处理单元121_1~121_N无须共享同一个通道,而是分别通过具有较大频宽的所述多个专属的第二通道C2_1~C2_N来各自独立地进行数据读取操作。
所述多个处理单元121_1~121_N可例如是由逻辑控制单元、逻辑运算单元以及快取(cache)单元等诸如此类的电路元件所建构而成的存储器内运算(Processing InMemory,PIM)架构,并且可执行简单数学计算或是复杂编程运算。所述多个处理单元121_1~121_N分别整合在所述多个存储器芯片120_1~120_N的周边电路区域,以分别直接通过专属的存储器控制器以及专属的所述多个第二通道C2_1~C2_N来存取所述多个数据储存区122_1~122_N。并且,所述多个处理单元121_1~121_N可预先设计以执行特定运算,其中可例如是神经网络(neural network)运算或基因定序(genome sequencing)运算,但本发明并不限于此。
另外,在一实施例中,主处理器110也可通过无线通信方式、点对点传输方式或插槽(slot)来耦接至另多个存储器芯片,以选择性地指派运算任务至所述多个存储器芯片120_1~120_N以及另所述多个存储器芯片的其中之一。换言之,在此一实施例的多处理架构100具有可弹性增加运算量体的特性。
所述多个数据储存区122_1~122_N用以分担储存巨量数据集(dataset)的多个子数据集。并且,本实施例的所述多个存储器芯片120_1~120_N可分别为一种动态随机存取存储器(Dynamic Random Access Memory,DRAM)芯片,或是基于动态随机存取存储器芯片的架构所设计而成的芯片,但本发明并不限于此。因此,所述多个数据储存区122_1~122_N为各别包括多个存储器库(bank),并且巨量数据集(large dataset)的所述多个子数据集(sub-dataset)分散储存于所述多个存储器库当中。在一实施例中,所述多个存储器芯片120_1~120_N的数量可依据巨量数据集的数据量来决定。
具体而言,当主处理器110指派一个运算事件的运算任务至所述多个存储器芯片120_1~120_N的所述多个处理单元121_1~121_N的其中之一时,接收运算任务的所述多个处理单元121_1~121_N的其中之一将存取对应的数据储存区122_1~122_N,以取得储存在对应的数据储存区的所述多个子数据集的一部分。并且,接收运算任务的所述多个处理单元121_1~121_N的其中之一依据所述多个子数据集的一部分来执行此运算任务。因此,本实施例的多处理架构100可通过设置在所述多个存储器芯片120_1~120_N当中的所述多个处理单元121_1~121_N来各别执行运算任务,以同时执行多个运算任务。并且,本实施例的所述多个处理单元121_1~121_N的每一个可快速地取得对应于运算任务的特定子数据集。
在本实施例中,所述多个处理单元121_1~121_N执行可用于相同的运算事件,因此主处理器110指派同一运算事件的多个运算任务至所述多个处理单元121_1~121_N。然而,在一实施例中,主处理器110也可同时指派多个运算事件的多个运算任务至所述多个存储器芯片120_1~120_N的所述多个处理单元121_1~121_N,以使所述多个处理单元121_1~121_N各别独立执行不同的运算事件的运算任务。
图2是依照本发明的一实施例的多处理架构的操作示意图。参考图2,多处理架构200包括主处理器210以及多个存储器芯片220_1~220_N。所述多个存储器芯片220_1~220_N包括多个处理单元221_1~221_N以及多个数据储存区222_1~222_N。所述多个处理单元221_1~221_N以及所述多个数据储存区222_1~222_N分别一对一地设置在所述多个存储器芯片220_1~220_N中。多处理架构200的各元件之间可具有如图1实施例所述的多处理架构100的耦接方式。
在本实施例中,多处理架构200进一步包括工作队列(job queue)211以及数据索引机制(data index mechanism)212。数据索引机制(data index mechanism)212可为一种查找表(Look Up Table,LUT),但本发明并不限于此。所述多个处理单元221_1~221_N进一步包括任务队列(task queue)223_1~223_N。具体而言,当主处理器210依据工作队列211来取得一个运算任务时,主处理器210通过查找数据索引机制212来决定将此运算任务指派至所述多个存储器芯片220_1~220_N的其中之一的对应的任务队列当中,以使所述多个处理单元221_1~221_N的其中之一依据对应的任务队列来执行此运算任务。并且,所述多个处理单元221_1~221_N的其中之一将搜索对应的数据储存区是否储存有对应于此运算任务的子数据集。
若对应的数据储存区储存有对应于此运算任务的子数据集,则所述多个处理单元221_1~221_N的其中之一依据对应于此运算任务的子数据集来执行此运算任务。当所述多个处理单元221_1~221_N的其中之一成功执行运算任务时,所述多个处理单元221_1~221_N的其中之一对应地将运算结果回传至主处理器210,以使主处理器210接续指派另一运算任务。反之,执行此运算任务若干回次后,若对应的数据储存区未储存有对应于此运算任务的子数据集,则所述多个处理单元221_1~221_N的其中之一回退此运算任务至主处理器210,并且主处理器210依序地重新指派此运算任务至其他的所述多个处理单元221_1~221_N,直到所述多个处理单元221_1~221_N的其中之另一成功执行此运算任务。
更进一步而言,在一实施例中,当工作队列211包括多个运算任务时,主处理器210依据工作队列211以及数据索引机制212来依序指派所述多个运算任务至所述多个存储器芯片220_1~220_N的所述多个处理单元221_1~221_N的至少其中之一。并且,当所述多个处理单元221_1~221_N的其中之一依序接收到至少两个运算任务时,所述至少两个运算任务将会依序排入至所述多个处理单元221_1~221_N的其中之一的任务队列,以使所述多个处理单元221_1~221_N的其中之一依据对应的任务队列来依序执行所述至少两个运算任务。
图3是依照本发明的一实施例的多处理架构的操作方法的流程图。参考图3,图3的多处理架构的操作方法可至少适用于图2实施例的多处理架构200。在步骤S310中,主处理器210依据工作队列211以及数据索引机制212来依序指派运算任务至多个存储器芯片220_1~220_N的多个处理单元221_1~221_N的其中之一。在步骤S320中,接收指派的所述多个处理单元221_1~221_N的其中之一执行运算任务。在步骤S330中,接受指派的所述多个处理单元221_1~221_N的其中之一判断运算任务是否被成功执行。若否,在步骤S340中,接受指派的所述多个处理单元221_1~221_N的其中之一将运算任务回退至主处理器210,并且主处理器210依序地重新指派运算任务至其他的所述多个处理单元221_1~221_N。步骤S330、S340将循环式地执行,直到运算任务被所述多个处理单元221_1~221_N的其中之另一成功执行。
反之,若是,在步骤S350中,接受指派的所述多个处理单元221_1~221_N的其中之一将运算结果回传至主处理器210,并且主处理器210判断工作队列的多个运算任务是否已完全指派或完成。若否,则主处理器210重新执行步骤S310以继续指派下一运算任务。若是,则主处理器210结束任务指派操作。同理,主处理器210可依据工作队列211来指派多个运算任务至所述多个处理单元221_1~221_N,并且所述多个运算任务的每一个皆执行上述的步骤S310~S350。据此,本实施例的多处理架构的操作方法可有效地进行多处理,并且可快速地完成运算任务。
另外,关于本实施例的多处理架构200的其他内部元件特征、实施方式、相关技术特征可参照上述图1~图2的各个实施例的说明,而获致足够的教示、建议以及实施说明,因此不再赘述。
图4是依照本发明的另一实施例的多处理架构的操作方法的流程图。参考图4,图4的多处理架构的操作方法可至少适用于图1实施例的多处理架构100。在步骤S410中,主处理器110指派运算任务至多个存储器芯片120_1~120_N的多个处理单元121_1~121_N的其中之一。在步骤S420中,所述多个处理单元121_1~121_N的其中之一对应存取多个数据储存区122_1~122_N的其中之一,以取得巨量数据集的多个子数据集的一部分。在步骤S430中,所述多个处理单元121_1~121_N的其中之一依据所述多个子数据集的一部分执行运算任务。因此,本实施例的多处理架构的操作方法可有效且快速地执行存储器内运算。
另外,关于本实施例的多处理架构100的其他内部元件特征、实施方式、相关技术特征可参照上述图1~图3的各个实施例的说明,而获致足够的教示、建议以及实施说明,因此不再赘述。
综上所述,本发明的基于存储器处理器的多处理架构及其操作方法,可通过设置在多个存储器芯片的多个处理单元来各别执行对应的运算任务,并且通过专属的总线来分别读取对应的数据储存区内的数据。并且,本发明的多处理架构的存储器芯片数量可以随着巨量数据集的数据量来对应地任意增加。对此,随着存储器芯片数量的增加,本发明的多处理架构的运算能力也会同样增加。因此,本发明的基于存储器处理器的多处理架构及其操作方法可有效地实现多工且快速执行巨量数据集运算,并且本发明的多处理架构具有可扩展性的特点。
虽然本发明已以实施例公开如上,然而其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,应当可作些许的更动与润饰,故本发明的保护范围应当视所附的权利要求所界定者为准。
Claims (28)
1.一种基于存储器处理器的多处理架构,包括:
一主处理器,包括一数据索引机制;以及
多个存储器芯片,耦接该主处理器,并且包括多个处理单元以及多个数据储存区,其中该些处理单元以及该些数据储存区分别一对一地设置在该些存储器芯片中,并且该些数据储存区用以分担储存一巨量数据集的多个子数据集,
其中该主处理器指派一运算任务至该些存储器芯片的该些处理单元的其中之一,以使该些处理单元的其中之一存取对应的数据储存区,以依据该些子数据集的一部分执行该运算任务,
当该些处理单元的其中之一无法成功执行该运算任务时,该些处理单元的其中之一回退该运算任务至该主处理器,并且该主处理器依序地重新指派该运算任务至其他的该些处理单元,直到该些处理单元的其中之另一成功执行该运算任务。
2.如权利要求1所述的多处理架构,其中该主处理器包括一数据索引机制,并且该主处理器依据该数据索引机制来决定指派该运算任务至该些存储器芯片的该些处理单元的其中之一。
3.如权利要求2所述的多处理架构,其中该主处理器还包括一工作队列,并且该主处理器依据该工作队列以及该数据索引机制来依序指派多个运算任务至该些存储器芯片的该些处理单元的至少其中之一。
4.如权利要求3所述的多处理架构,其中该些处理单元各别包括一任务队列,当该些处理单元的其中之一依序接收到至少两个运算任务时,该至少两个运算任务依序排入至该些处理单元的其中之一的该任务队列,以使该些处理单元的其中之一依据该任务队列来依序执行。
5.如权利要求1所述的多处理架构,其中该些处理单元的其中之一搜索在该对应的数据储存区中的该些子数据集的一部分是否具有对应于该运算任务的一特定子数据集,以依据该特定子数据集来持续执行该运算任务。
6.如权利要求1所述的多处理架构,其中当该些处理单元的其中之一成功执行该运算任务时,该些处理单元的其中之一对应地将一运算结果回传至该主处理器,以使该主处理器接续指派另一运算任务。
7.如权利要求1所述的多处理架构,其中该主处理器经由一第一通道与该些存储器芯片进行分时通信。
8.如权利要求7所述的多处理架构,其中该些处理单元经由多个第二通道来各别一对一存取该些数据储存区,并且该些第二通道的频宽大于该第一通道的频宽。
9.如权利要求1所述的多处理架构,其中该些存储器芯片的数量依据该巨量数据集的数据量来决定。
10.如权利要求1所述的多处理架构,其中该主处理器通过一无线通信方式、一点对点传输方式或一插槽来耦接至另外多个存储器芯片,以选择性地指派该运算任务至该些存储器芯片以及另外该些存储器芯片的其中之一。
11.如权利要求1所述的多处理架构,其中该些处理单元以及对应的该些数据储存区分别设置于相同芯片或不同芯片之中。
12.如权利要求1所述的多处理架构,其中该主处理器指派同一运算事件的多个运算任务至该些处理单元,以使该些处理单元依指派执行该些运算任务。
13.如权利要求1所述的多处理架构,其中该主处理器同时指派多个运算事件的多个运算任务至该些处理单元,以使该些处理单元各别独立执行该些运算事件的该些运算任务。
14.如权利要求1所述的多处理架构,其中该些处理单元分别包括一逻辑运算单元。
15.一种基于存储器处理器的多处理架构的操作方法,包括:
通过一主处理器指派一运算任务至多个存储器芯片的多个处理单元的其中之一;
通过该些处理单元的其中之一对应存取多个数据储存区的其中之一,以取得一巨量数据集的多个子数据集的一部分;以及
通过该些处理单元的其中之一依据该些子数据集的一部分执行该运算任务,
其中通过该些处理单元的其中之一依据该些子数据集的一部分执行该运算任务的步骤包括:
当该些处理单元的其中之一无法成功持续执行该运算任务时,通过该些处理单元的其中之一回退该运算任务至该主处理器;以及
通过该主处理器依序地重新指派该运算任务至其他的该些处理单元,直到该些处理单元的其中之另一成功执行该运算任务。
16.如权利要求15所述的操作方法,其中通过该主处理器指派该运算任务至该些存储器芯片的该些处理单元的其中之一的步骤包括:
通过该主处理器依据一数据索引机制来决定指派该运算任务至该些存储器芯片的该些处理单元的其中之一。
17.如权利要求16所述的操作方法,其中通过该主处理器指派该运算任务至该些存储器芯片的该些处理单元的其中之一的步骤还包括:
通过该主处理器依据工作队列以及该数据索引机制来依序指派多个运算任务至该些存储器芯片的该些处理单元的至少其中之一。
18.如权利要求17所述的操作方法,还包括:
当该些处理单元的其中之一依序接收到至少两个运算任务时,该至少两个运算任务依序排入至该些处理单元的其中之一的任务队列,以使该些处理单元的其中之一依据该任务队列来依序执行。
19.如权利要求15所述的操作方法,其中通过该些处理单元的其中之一依据该些子数据集的一部分执行该运算任务的步骤包括:
通过该些处理单元的其中之一搜索在该对应的数据储存区中的该些子数据集的一部分是否具有对应于该运算任务的一特定子数据集,以依据该特定子数据集来执行该运算任务。
20.如权利要求15所述的操作方法,其中通过该些处理单元的其中之一依据该些子数据集的一部分执行该运算任务的步骤包括:
当该些处理单元的其中之一成功执行该运算任务时,通过该些处理单元的其中之一对应地将一运算结果回传至该主处理器,以使该主处理器接续指派另一运算任务。
21.如权利要求15所述的操作方法,其中该主处理器经由一第一通道与该些存储器芯片进行分时通信。
22.如权利要求21所述的操作方法,其中该些处理单元经由多个第二通道来各别一对一存取该些数据储存区,并且该些第二通道的频宽大于该第一通道的频宽。
23.如权利要求15所述的操作方法,其中该些存储器芯片的数量依据该巨量数据集的数据量来决定。
24.如权利要求15所述的操作方法,其中该主处理器通过一无线通信方式、一点对点传输方式或一插槽来耦接至另外多个存储器芯片,以选择性地指派该运算任务至该些存储器芯片以及另外该些存储器芯片的其中之一。
25.如权利要求15所述的操作方法,其中该些处理单元以及对应的该些数据储存区分别设置于相同芯片或不同芯片之中。
26.如权利要求15所述的操作方法,其中该主处理器指派同一运算事件的多个运算任务至该些处理单元,以使该些处理单元依指派执行该些运算任务。
27.如权利要求15所述的操作方法,其中该主处理器同时指派多个运算事件的多个运算任务至该些处理单元,以使该些处理单元各别独立执行该些运算事件的该些运算任务。
28.如权利要求15所述的操作方法,其中该些处理单元分别包括一逻辑运算单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862744140P | 2018-10-11 | 2018-10-11 | |
US62/744,140 | 2018-10-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111045979A CN111045979A (zh) | 2020-04-21 |
CN111045979B true CN111045979B (zh) | 2023-12-19 |
Family
ID=70231305
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910216548.2A Active CN111047026B (zh) | 2018-10-11 | 2019-03-21 | 可执行人工智能运算的存储器芯片及其操作方法 |
CN201910288360.9A Active CN111045979B (zh) | 2018-10-11 | 2019-04-11 | 基于存储器处理器的多处理架构及其操作方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910216548.2A Active CN111047026B (zh) | 2018-10-11 | 2019-03-21 | 可执行人工智能运算的存储器芯片及其操作方法 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN111047026B (zh) |
TW (2) | TWI714003B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3662474B1 (en) * | 2017-07-30 | 2023-02-22 | NeuroBlade Ltd. | A memory-based distributed processor architecture |
CN112214447A (zh) * | 2020-10-10 | 2021-01-12 | 中科声龙科技发展(北京)有限公司 | 工作量证明运算芯片集群数据动态重构方法、系统和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101036393A (zh) * | 2004-07-16 | 2007-09-12 | 索尼株式会社 | 信息处理系统、信息处理方法和计算机程序 |
WO2008046716A1 (en) * | 2006-10-20 | 2008-04-24 | International Business Machines Corporation | A multi-processor computing system and its task allocating method |
US9276987B1 (en) * | 2009-06-02 | 2016-03-01 | Amazon Technologies, Inc. | Identifying nodes already storing indicated input data to perform distributed execution of an indicated program in a node cluster |
CN105487812A (zh) * | 2014-10-01 | 2016-04-13 | 三星电子株式会社 | 用于支持存储器内处理的方法和存储器模块 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7614053B2 (en) * | 2004-02-20 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for task management in a multi-processor system |
US7209405B2 (en) * | 2005-02-23 | 2007-04-24 | Micron Technology, Inc. | Memory device and method having multiple internal data buses and memory bank interleaving |
WO2008094455A2 (en) * | 2007-01-26 | 2008-08-07 | Cheriton David R | Hierarchical immutable content-addressable memory processor |
JP5084310B2 (ja) * | 2007-03-16 | 2012-11-28 | 日本電気株式会社 | 複数プロセッサに分散されたデータを再配置可能なデータベースサーバ、再配置方法、およびプログラム |
US9477636B2 (en) * | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
US20120151232A1 (en) * | 2010-12-12 | 2012-06-14 | Fish Iii Russell Hamilton | CPU in Memory Cache Architecture |
EP3035249B1 (en) * | 2014-12-19 | 2019-11-27 | Intel Corporation | Method and apparatus for distributed and cooperative computation in artificial neural networks |
US9747546B2 (en) * | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
US20170046102A1 (en) * | 2015-08-14 | 2017-02-16 | Marvell World Trade Ltd. | Flexible interface for nand flash memory |
CN116842306A (zh) * | 2016-03-23 | 2023-10-03 | Gsi 科技公司 | 存储器内矩阵乘法及其在神经网络中的使用 |
US11501130B2 (en) * | 2016-09-09 | 2022-11-15 | SK Hynix Inc. | Neural network hardware accelerator architectures and operating method thereof |
US20180115496A1 (en) * | 2016-10-21 | 2018-04-26 | Advanced Micro Devices, Inc. | Mechanisms to improve data locality for distributed gpus |
US9922696B1 (en) * | 2016-10-28 | 2018-03-20 | Samsung Electronics Co., Ltd. | Circuits and micro-architecture for a DRAM-based processing unit |
TWI634490B (zh) * | 2016-11-14 | 2018-09-01 | 美商耐能股份有限公司 | 卷積運算裝置及卷積運算方法 |
CN106934457B (zh) * | 2017-03-08 | 2019-12-06 | 杭州领芯电子有限公司 | 一种可灵活时分复用的脉冲神经元实现架构 |
CN107704922B (zh) * | 2017-04-19 | 2020-12-08 | 赛灵思公司 | 人工神经网络处理装置 |
-
2019
- 2019-02-27 TW TW108106715A patent/TWI714003B/zh active
- 2019-03-21 CN CN201910216548.2A patent/CN111047026B/zh active Active
- 2019-03-26 TW TW108110441A patent/TWI690848B/zh active
- 2019-04-11 CN CN201910288360.9A patent/CN111045979B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101036393A (zh) * | 2004-07-16 | 2007-09-12 | 索尼株式会社 | 信息处理系统、信息处理方法和计算机程序 |
WO2008046716A1 (en) * | 2006-10-20 | 2008-04-24 | International Business Machines Corporation | A multi-processor computing system and its task allocating method |
US9276987B1 (en) * | 2009-06-02 | 2016-03-01 | Amazon Technologies, Inc. | Identifying nodes already storing indicated input data to perform distributed execution of an indicated program in a node cluster |
CN105487812A (zh) * | 2014-10-01 | 2016-04-13 | 三星电子株式会社 | 用于支持存储器内处理的方法和存储器模块 |
Also Published As
Publication number | Publication date |
---|---|
TWI714003B (zh) | 2020-12-21 |
CN111047026B (zh) | 2023-08-25 |
CN111047026A (zh) | 2020-04-21 |
TW202014937A (zh) | 2020-04-16 |
CN111045979A (zh) | 2020-04-21 |
TWI690848B (zh) | 2020-04-11 |
TW202014882A (zh) | 2020-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shanbhag et al. | Efficient top-k query processing on massively parallel hardware | |
US9886418B2 (en) | Matrix operands for linear algebra operations | |
US10346507B2 (en) | Symmetric block sparse matrix-vector multiplication | |
CN103365631B (zh) | 用于存储器访问的动态库模式寻址 | |
CN103218208A (zh) | 用于实施成形的存储器访问操作的系统和方法 | |
CN103197916A (zh) | 用于源操作数收集器高速缓存的方法和装置 | |
US20160019157A1 (en) | Method and Apparatus For Flexible Cache Partitioning By Sets And Ways Into Component Caches | |
US11526960B2 (en) | GPU-based data join | |
CN103207774A (zh) | 用于解决线程发散的方法和系统 | |
CN103218309A (zh) | 多级指令高速缓存预取 | |
CN111045979B (zh) | 基于存储器处理器的多处理架构及其操作方法 | |
US11436046B2 (en) | Electronic device with memory processor-based multiprocessing architecture and operation method thereof | |
KR20200108774A (ko) | 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법 | |
US11640444B2 (en) | Device and method for accelerating matrix multiply operations | |
CN115422098A (zh) | 基于扩展页表的gpu访存自适应优化方法及装置 | |
US10872394B2 (en) | Frequent pattern mining method and apparatus | |
CN103257931A (zh) | 成形的寄存器堆读取 | |
CN112882663A (zh) | 一种随机写的方法、电子设备及存储介质 | |
EP3091448A1 (en) | Memory equipped with information retrieval function, method for using same, device, and information processing method | |
CN103294449A (zh) | 发散操作的预调度重演 | |
CN103218259A (zh) | 计算任务的调度和执行 | |
KR20190138365A (ko) | 멀티 프로세서 시스템 및 그 구동 방법 | |
Nakano et al. | The random address shift to reduce the memory access congestion on the discrete memory machine | |
Dasari et al. | High performance implementation of planted motif problem using suffix trees | |
Chen et al. | UpPipe: A Novel Pipeline Management on In-Memory Processors for RNA-seq Quantification |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20231108 Address after: Hsinchu Science Industrial Park, Taiwan, China Applicant after: Powerchip Technology Corp. Address before: Hsinchu Science Industrial Park, Taiwan, China Applicant before: Powerchip Technology Corp. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |