TW202014882A - 基於記憶體處理器的多處理架構及其操作方法 - Google Patents
基於記憶體處理器的多處理架構及其操作方法 Download PDFInfo
- Publication number
- TW202014882A TW202014882A TW108110441A TW108110441A TW202014882A TW 202014882 A TW202014882 A TW 202014882A TW 108110441 A TW108110441 A TW 108110441A TW 108110441 A TW108110441 A TW 108110441A TW 202014882 A TW202014882 A TW 202014882A
- Authority
- TW
- Taiwan
- Prior art keywords
- processing units
- task
- item
- main processor
- patent application
- Prior art date
Links
Images
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)
- Feedback Control In General (AREA)
- Multi Processors (AREA)
Abstract
本發明提出一種基於記憶體處理器的多處理架構及其操作方法。基於記憶體處理器的多處理架構包括主處理器以及多個記憶體晶片。多個記憶體晶片包括多個處理單元以及多個資料儲存區。所述多個處理單元以及所述多個資料儲存區分別一對一地設置在所述多個記憶體晶片中。所述多個資料儲存區用以分擔儲存巨量資料集的多個子資料集。主處理器指派運算任務至所述多個記憶體晶片的所述多個處理單元的其中之一,以使所述多個處理單元的其中之一存取對應的資料儲存區,以依據所述多個子資料集的一部份執行運算任務。
Description
本發明是有關於一種處理架構,且特別是有關於一種基於記憶體處理器(memory processor-based)的多處理(multiprocessing)架構及其操作方法。
隨著越來越各式不同型態的巨量資料集運算應用被開發,例如神經網路(neural network)運算、以太坊(ethereum)挖礦運算或基因定序(genome sequencing)運算等諸如此類具有資料龐大且運算密集的特性的應用,對於處理器(Central Processing Unit, CPU)的處理校能要求越來越高。然而,目前的處理器的運算速度受限於處理器內建的快取(cache)單元大小、低快取命中率(cache hit rate)以及記憶體存取(memory access)時間的限制,而無法有效的提升運算速度。
對此,一般增進運算速度方式例如是利用現場可程式化邏輯閘陣列(Field Programmable Gate Array, FPGA)架構、特殊應用積體電路(Application-Specific Integrated Circuit, ASIC)架構或圖形處理器(Graphics Processing Unit, GPU)架構來分擔處理器(Central Processing Unit, CPU)執行運算度高的運算任務,以達到加速運算的效果。然而,上述這些方式仍無法克服記憶體存取時間的限制,並且隨著處理電路數量的增加,其能源的消耗也同增加。有鑑於此,如何設計一種能快速執行巨量資料密集運算的處理架構,以下將提出幾個實施例的解決方案。
本發明提供一種基於記憶體處理器(memory processor-based)的多處理(multiprocessing)架構及其操作方法,可對巨量資料集(large datasets)的進行有效率的多處理操作。
本發明的基於記憶體處理器的多處理架構包括主處理器、多個記憶體晶片。主處理器包括資料索引機制。多個記憶體晶片耦接主處理器。所述多個記憶體晶片包括多個處理單元以及多個資料儲存區。所述多個處理單元以及所述多個資料儲存區分別一對一地設置在所述多個記憶體晶片中。所述多個資料儲存區用以分擔儲存巨量資料集的多個子資料集。主處理器指派運算任務至所述多個記憶體晶片的所述多個處理單元的其中之一,以使所述多個處理單元的其中之一存取對應的資料儲存區,以依據所述多個子資料集的一部份執行運算任務。
在本發明的一實施例中,上述的主處理器包括資料索引機制。主處理器依據資料索引機制來決定指派運算任務至所述多個記憶體晶片的所述多個處理單元的其中之一。
在本發明的一實施例中,上述的主處理器更包括工作隊列。主處理器依據工作隊列以及資料索引機制來依序指派多個運算任務至所述多個記憶體晶片的所述多個處理單元的至少其中之一。
在本發明的一實施例中,上述的所述多個處理單元各別包括任務隊列,當所述多個處理單元的其中之一依序接收到至少二個運算任務時,所述至少二個運算任務依序排入至所述多個處理單元的其中之一的任務隊列,以使所述多個處理單元的其中之一依據任務隊列來依序執行。
在本發明的一實施例中,上述的所述多個處理單元的其中之一搜尋在對應的資料儲存區中的所述多個子資料集的一部份是否具有對應於運算任務的一特定子資料集,以依據特定子資料集來執行運算任務。
在本發明的一實施例中,上述的當所述多個處理單元的其中之一成功執行運算任務時,所述多個處理單元的其中之一對應地將一運算結果回傳至主處理器,以使主處理器接續指派另一運算任務。
在本發明的一實施例中,上述的當所述多個處理單元的其中之一無法成功執行運算任務時,所述多個處理單元的其中之一回退運算任務至主處理器。主處理器依序地重新指派運算任務至其他的所述多個處理單元,直到所述多個處理單元的其中之另一成功執行運算任務。
在本發明的一實施例中,上述的所述主處理器經由第一通道與所述多個記憶體晶片進行分時通訊。
在本發明的一實施例中,上述的所述多個處理單元經由多個第二通道來各別一對一存取所述多個資料儲存區,並且所述多個第二通道的頻寬大於第一通道的頻寬。
在本發明的一實施例中,上述的所述多個記憶體晶片的數量依據巨量資料集的資料量來決定。
在本發明的一實施例中,上述的主處理器藉由無線通信方式、點對點傳輸方式或插槽來耦接至另多個記憶體晶片,以選擇性地指派運算任務至所述多個記憶體晶片以及另所述多個記憶體晶片的其中之一。
在本發明的一實施例中,上述的處理單元以及對應的所述多個資料儲存區分別設置於相同晶片或不同晶片之中。
在本發明的一實施例中,上述的主處理器指派同一運算事件的多個運算任務至所述多個處理單元,以使所述多個處理單元依指派執行所述多個運算任務。
在本發明的一實施例中,上述的主處理器同時指派多個運算事件的多個運算任務至所述多個處理單元,以使所述多個處理單元各別獨立執行所述多個運算事件的所述多個運算任務。
在本發明的一實施例中,上述的所述多個處理單元分別包括邏輯運算單元。
本發明的基於記憶體處理器的多處理架構的操作方法包括以下步驟:藉由主處理器指派運算任務至多個記憶體晶片的多個處理單元的其中之一;藉由所述多個處理單元的其中之一對應存取多個資料儲存區的其中之一,以取得巨量資料集的多個子資料集的一部份;以及藉由所述多個處理單元的其中之一依據所述多個子資料集的一部份執行運算任務。
在本發明的一實施例中,上述的藉由主處理器指派運算任務至所述多個記憶體晶片的所述多個處理單元的其中之一的步驟包括:藉由主處理器依據資料索引機制來決定指派運算任務至所述多個記憶體晶片的所述多個處理單元的其中之一。
在本發明的一實施例中,上述的藉由主處理器指派運算任務至所述多個記憶體晶片的所述多個處理單元的其中之一的步驟更包括:藉由主處理器依據工作隊列以及資料索引機制來依序指派多個運算任務至所述多個記憶體晶片的所述多個處理單元的至少其中之一。
在本發明的一實施例中,上述的操作方法更包括:當所述多個處理單元的其中之一依序接收到至少二個運算任務時,所述至少二個運算任務依序排入至所述多個處理單元的其中之一的任務隊列,以使所述多個處理單元的其中之一依據任務隊列來依序執行。
在本發明的一實施例中,上述的藉由所述多個處理單元的其中之一依據所述多個子資料集的一部份執行運算任務的步驟包括:藉由所述多個處理單元的其中之一搜尋在對應的資料儲存區中的所述多個子資料集的一部份是否具有對應於運算任務的一特定子資料集,以依據特定子資料集來執行運算任務。
在本發明的一實施例中,上述的藉由所述多個處理單元的其中之一依據所述多個子資料集的一部份執行運算任務的步驟包括:當所述多個處理單元的其中之一成功執行運算任務時,藉由所述多個處理單元的其中之一對應地將一運算結果回傳至主處理器,以使主處理器接續指派另一運算任務。
在本發明的一實施例中,上述的藉由所述多個處理單元的其中之一依據所述多個子資料集的一部份執行運算任務的步驟包括:當所述多個處理單元的其中之一無法成功執行運算任務時,藉由所述多個處理單元的其中之一回退運算任務至主處理器;以及藉由主處理器依序地重新指派運算任務至其他的所述多個處理單元,直到所述多個處理單元的其中之另一成功執行運算任務。
在本發明的一實施例中,上述的所述主處理器經由第一通道與所述多個記憶體晶片進行分時通訊。
在本發明的一實施例中,上述的所述多個處理單元經由多個第二通道來各別一對一存取所述多個資料儲存區,並且所述多個第二通道的頻寬大於第一通道的頻寬。
在本發明的一實施例中,上述的所述多個記憶體晶片的數量依據巨量資料集的資料量來決定。
在本發明的一實施例中,上述的主處理器藉由無線通信方式、點對點傳輸方式或插槽來耦接至另多個記憶體晶片,以選擇性地指派運算任務至所述多個記憶體晶片以及另所述多個記憶體晶片的其中之一。
在本發明的一實施例中,上述的處理單元以及對應的所述多個資料儲存區分別設置於相同晶片或不同晶片之中。
在本發明的一實施例中,上述的主處理器指派同一運算事件的多個運算任務至所述多個處理單元,以使所述多個處理單元依指派執行所述多個運算任務。
在本發明的一實施例中,上述的主處理器同時指派多個運算事件的多個運算任務至所述多個處理單元,以使所述多個處理單元各別獨立執行所述多個運算事件的所述多個運算任務。
在本發明的一實施例中,上述的所述多個處理單元分別包括邏輯運算單元。
基於上述,本發明的基於記憶體處理器的多處理架構及其操作方法,可藉由設置在多個記憶體晶片的多個處理單元來各別執行對應的運算任務,以實現可對巨量資料集進行有效率的多處理操作。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
為了使本發明之內容可以被更容易明瞭,以下特舉實施例做為本發明確實能夠據以實施的範例。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟,係代表相同或類似部件。
圖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可分別例如是1024 bits,但本發明並不限於此。在一實施例中,第一通道C1以及所述多個第二通道C2_1~C2_N的頻寬可依據多處理架構100的資料傳輸需求或所述多個資料儲存區122_1~122_N的資料儲存格式來對應設計之。也就是說,本實施例的所述多個處理單元121_1~121_N無須共享同一個通道,而是分別透過具有較大頻寬的所述多個專屬的第二通道C2_1~C2_N來各自獨立地進行資料讀取操作。
所述多個處理單元121_1~121_N可例如是由邏輯控制單元、邏輯運算單元以及快取(cache)單元等諸如此類的電路元件所建構而成的記憶體內運算(Processing In Memory, PIM)架構,並且可執行簡單數學計算或是複雜程式運算。所述多個處理單元121_1~121_N分別整合在所述多個記憶體晶片120_1~120_N的周邊電路區域,以分別直接透過專屬的記憶體控制器以及專屬的所述多個第二通道C2_1~C2_N來存取所述多個資料儲存區122_1~122_N。並且,所述多個處理單元121_1~121_N可預先設計以執行特定運算,其中可例如是神經網路(neural network)運算、以太坊(ethereum)挖礦運算或基因定序(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的其中之一依據對應的任務隊列來依序執行所述至少二個運算任務。
在一實施例中,假設本實施例的多處理架構200應用在以太坊的挖礦運算。具有巨量資料集的有向無環圖(Directed Acyclic Graph, DAG)檔的多個分頁檔(file page)分散儲存在所述多個資料儲存區222_1~222_N,因此所述多個資料儲存區222_1~222_N各別包括有所述多個分頁檔的一部分。舉例而言,當主處理器210經由工作隊列211取得一個交易隨機值(nonce)的運算任務(例如SHA3運算)時,主處理器210透過查找資料索引機制212來決定對應的雜湊值(hash code)可例如儲存在資料儲存區222_2,因此主處理器210將對應的雜湊運算(Hash function)任務(查表運算)指派至記憶體晶片220_2的處理單元221_2。接著,處理單元221_2透過讀取資料儲存區222_2來進行對應的雜湊運算以求出對應的雜湊值(代表挖礦成功),並且處理單元221_2將挖礦成功的結果回傳至主處理器210,以獲得對應的獎勵(即以太幣)。
在此例中,若處理單元221_2成功執行此雜湊運算任務,則處理單元221_2對應地將成功挖礦成功結果回傳至主處理器210,以使主處理器210接續依據另一交易隨機值來指派另一雜湊運算任務。反之,若處理單元221_2在資料儲存區222_2未能持續取得對應的雜湊值,則處理單元221_2回退此雜湊運算任務至主處理器210,並且主處理器210將會依序地重新指派此雜湊運算任務至其他的所述多個處理單元221_1、221_3~221_N,直到其他的所述多個處理單元221_1、221_3~221_N的其中另一成功執行此雜湊運算任務。
並且,在此例中,當工作隊列211包括多個交易隨機值(nonce)的多個雜湊運算任務時,主處理器210依據工作隊列211以及資料索引機制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指派的一或多個雜湊運算任務,並且所述多個處理單元221_1~221_N可各自進行快速的資料讀取操作(查表運算)。因此,所述多個處理單元221_1~221_N的每一個可分別同時地執行多個以太坊的挖礦運算,以倍數地提升挖礦成功的速度。也就是說,本實施例的多處理架構200可藉由所述多個處理單元221_1~221_N的多工處理(multiple processing)操作,來實現最大化平行度(maximum parallelism)的處理效能。
圖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的各個實施例的說明,而獲致足夠的教示、建議以及實施說明,因此不再贅述。
綜上所述,本發明的基於記憶體處理器的多處理架構及其操作方法,可藉由設置在多個記憶體晶片的多個處理單元來各別執行對應的運算任務,並且透過專屬的匯流排來分別讀取對應的資料儲存區內的資料。並且,本發明的多處理架構的記憶體晶片數量可以隨著巨量資料集的資料量來對應地任意增加。對此,隨著記憶體晶片數量的增加,本發明的多處理架構的運算能力也會同樣增加。因此,本發明的基於記憶體處理器的多處理架構及其操作方法可有效地實現多工且快速執行巨量資料集運算,並且本發明的多處理架構具有可擴展性的特點。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
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是依照本發明的一實施例的多處理架構的功能方塊圖。
圖2是依照本發明的一實施例的多處理架構的操作示意圖。
圖3是依照本發明的一實施例的多處理架構的操作方法的流程圖。
圖4是依照本發明的另一實施例的多處理架構的操作方法的流程圖。
100:多處理架構
110:主處理器
120_1、120_2~120_N:記憶體晶片
121_1、121_2~121_N:處理單元
122_1、122_2~122_N:資料儲存區
C1:第一通道
C2_1、C2_2~C2_N:第二通道
Claims (30)
- 一種基於記憶體處理器的多處理架構,包括: 一主處理器,包括一資料索引機制;以及 多個記憶體晶片,耦接該主處理器,並且包括多個處理單元以及多個資料儲存區,其中該些處理單元以及該些資料儲存區分別一對一地設置在該些記憶體晶片中,並且該些資料儲存區用以分擔儲存一巨量資料集的多個子資料集, 其中該主處理器指派一運算任務至該些記憶體晶片的該些處理單元的其中之一,以使該些處理單元的其中之一存取對應的資料儲存區,以依據該些子資料集的一部份執行該運算任務。
- 如申請專利範圍第1項所述的多處理架構,其中該主處理器包括一資料索引機制,並且該主處理器依據該資料索引機制來決定指派該運算任務至該些記憶體晶片的該些處理單元的其中之一。
- 如申請專利範圍第2項所述的多處理架構,其中該主處理器更包括一工作隊列,並且該主處理器依據該工作隊列以及該資料索引機制來依序指派多個運算任務至該些記憶體晶片的該些處理單元的至少其中之一。
- 如申請專利範圍第3項所述的多處理架構,其中該些處理單元各別包括一任務隊列,當該些處理單元的其中之一依序接收到至少二個運算任務時,該至少二個運算任務依序排入至該些處理單元的其中之一的該任務隊列,以使該些處理單元的其中之一依據該任務隊列來依序執行。
- 如申請專利範圍第1項所述的多處理架構,其中該些處理單元的其中之一搜尋在該對應的資料儲存區中的該些子資料集的一部份是否具有對應於該運算任務的一特定子資料集,以依據該特定子資料集來持續執行該運算任務。
- 如申請專利範圍第1項所述的多處理架構,其中當該些處理單元的其中之一成功執行該運算任務時,該些處理單元的其中之一對應地將一運算結果回傳至該主處理器,以使該主處理器接續指派另一運算任務。
- 如申請專利範圍第1項所述的多處理架構,其中當該些處理單元的其中之一無法成功執行該運算任務時,該些處理單元的其中之一回退該運算任務至該主處理器,並且該主處理器依序地重新指派該運算任務至其他的該些處理單元,直到該些處理單元的其中之另一成功執行該運算任務。
- 如申請專利範圍第1項所述的多處理架構,其中該主處理器經由一第一通道與該些記憶體晶片進行分時通訊。
- 如申請專利範圍第8項所述的多處理架構,其中該些處理單元經由多個第二通道來各別一對一存取該些資料儲存區,並且該些第二通道的頻寬大於該第一通道的頻寬。
- 如申請專利範圍第1項所述的多處理架構,其中該些記憶體晶片的數量依據該巨量資料集的資料量來決定。
- 如申請專利範圍第1項所述的多處理架構,其中該主處理器藉由一無線通信方式、一點對點傳輸方式或一插槽來耦接至另多個記憶體晶片,以選擇性地指派該運算任務至該些記憶體晶片以及另該些記憶體晶片的其中之一。
- 如申請專利範圍第1項所述的多處理架構,其中該些處理單元以及對應的該些資料儲存區分別設置於相同晶片或不同晶片之中。
- 如申請專利範圍第1項所述的多處理架構,其中該主處理器指派同一運算事件的多個運算任務至該些處理單元,以使該些處理單元依指派執行該些運算任務。
- 如申請專利範圍第1項所述的多處理架構,其中該主處理器同時指派多個運算事件的多個運算任務至該些處理單元,以使該些處理單元各別獨立執行該些運算事件的該些運算任務。
- 如申請專利範圍第1項所述的多處理架構,其中該些處理單元分別包括一邏輯運算單元。
- 一種基於記憶體處理器的多處理架構的操作方法,包括: 藉由一主處理器指派一運算任務至多個記憶體晶片的多個處理單元的其中之一; 藉由該些處理單元的其中之一對應存取多個資料儲存區的其中之一,以取得一巨量資料集的多個子資料集的一部份;以及 藉由該些處理單元的其中之一依據該些子資料集的一部份執行該運算任務。
- 如申請專利範圍第16項所述的操作方法,其中藉由該主處理器指派該運算任務至該些記憶體晶片的該些處理單元的其中之一的步驟包括: 藉由該主處理器依據一資料索引機制來決定指派該運算任務至該些記憶體晶片的該些處理單元的其中之一。
- 如申請專利範圍第17項所述的操作方法,其中藉由該主處理器指派該運算任務至該些記憶體晶片的該些處理單元的其中之一的步驟更包括: 藉由該主處理器依據該工作隊列以及該資料索引機制來依序指派多個運算任務至該些記憶體晶片的該些處理單元的至少其中之一。
- 如申請專利範圍第18項所述的操作方法,更包括: 當該些處理單元的其中之一依序接收到至少二個運算任務時,該至少二個運算任務依序排入至該些處理單元的其中之一的該任務隊列,以使該些處理單元的其中之一依據該任務隊列來依序執行。
- 如申請專利範圍第16項所述的操作方法,其中藉由該些處理單元的其中之一依據該些子資料集的一部份執行該運算任務的步驟包括: 藉由該些處理單元的其中之一搜尋在該對應的資料儲存區中的該些子資料集的一部份是否具有對應於該運算任務的一特定子資料集,以依據該特定子資料集來執行該運算任務。
- 如申請專利範圍第16項所述的操作方法,其中藉由該些處理單元的其中之一依據該些子資料集的一部份執行該運算任務的步驟包括: 當該些處理單元的其中之一成功執行該運算任務時,藉由該些處理單元的其中之一對應地將一運算結果回傳至該主處理器,以使該主處理器接續指派另一運算任務。
- 如申請專利範圍第16項所述的操作方法,其中藉由該些處理單元的其中之一依據該些子資料集的一部份執行該運算任務的步驟包括: 當該些處理單元的其中之一無法成功持續執行該運算任務時,藉由該些處理單元的其中之一回退該運算任務至該主處理器;以及 藉由該主處理器依序地重新指派該運算任務至其他的該些處理單元,直到該些處理單元的其中之另一成功執行該運算任務。
- 如申請專利範圍第16項所述的操作方法,其中該主處理器經由一第一通道與該些記憶體晶片進行分時通訊。
- 如申請專利範圍第23項所述的操作方法,其中該些處理單元經由多個第二通道來各別一對一存取該些資料儲存區,並且該些第二通道的頻寬大於該第一通道的頻寬。
- 如申請專利範圍第16項所述的操作方法,其中該些記憶體晶片的數量依據該巨量資料集的資料量來決定。
- 如申請專利範圍第16項所述的操作方法,其中該主處理器藉由一無線通信方式、一點對點傳輸方式或一插槽來耦接至另多個記憶體晶片,以選擇性地指派該運算任務至該些記憶體晶片以及另該些記憶體晶片的其中之一。
- 如申請專利範圍第16項所述的操作方法,其中該些處理單元以及對應的該些資料儲存區分別設置於相同晶片或不同晶片之中。
- 如申請專利範圍第16項所述的操作方法,其中該主處理器指派同一運算事件的多個運算任務至該些處理單元,以使該些處理單元依指派執行該些運算任務。
- 如申請專利範圍第16項所述的操作方法,其中該主處理器同時指派多個運算事件的多個運算任務至該些處理單元,以使該些處理單元各別獨立執行該些運算事件的該些運算任務。
- 如申請專利範圍第16項所述的操作方法,其中該些處理單元分別包括一邏輯運算單元。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/503,652 US11436046B2 (en) | 2018-10-11 | 2019-07-05 | Electronic device with memory processor-based multiprocessing architecture and operation method thereof |
JP2019167463A JP6882398B2 (ja) | 2018-10-11 | 2019-09-13 | メモリプロセッサを用いた多重処理システム及びその動作方法 |
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 |
---|---|
TWI690848B TWI690848B (zh) | 2020-04-11 |
TW202014882A true TW202014882A (zh) | 2020-04-16 |
Family
ID=70231305
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108106715A TWI714003B (zh) | 2018-10-11 | 2019-02-27 | 可執行人工智慧運算的記憶體晶片及其操作方法 |
TW108110441A TWI690848B (zh) | 2018-10-11 | 2019-03-26 | 基於記憶體處理器的多處理架構及其操作方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108106715A TWI714003B (zh) | 2018-10-11 | 2019-02-27 | 可執行人工智慧運算的記憶體晶片及其操作方法 |
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 |
---|---|---|---|---|
CN111149166B (zh) * | 2017-07-30 | 2024-01-09 | 纽罗布拉德有限公司 | 基于存储器的分布式处理器架构 |
CN112214447B (zh) * | 2020-10-10 | 2024-09-10 | 声龙(新加坡)私人有限公司 | 工作量证明运算芯片集群数据动态重构方法、系统和装置 |
Family Cites Families (20)
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 |
JP2006031480A (ja) * | 2004-07-16 | 2006-02-02 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
US7209405B2 (en) * | 2005-02-23 | 2007-04-24 | Micron Technology, Inc. | Memory device and method having multiple internal data buses and memory bank interleaving |
CN101165655A (zh) * | 2006-10-20 | 2008-04-23 | 国际商业机器公司 | 多处理器计算系统及其任务分配方法 |
EP2115593B1 (en) * | 2007-01-26 | 2018-10-24 | Intel Corporation | Hierarchical immutable content-addressable memory processor |
JP5084310B2 (ja) * | 2007-03-16 | 2012-11-28 | 日本電気株式会社 | 複数プロセッサに分散されたデータを再配置可能なデータベースサーバ、再配置方法、およびプログラム |
US8418181B1 (en) * | 2009-06-02 | 2013-04-09 | Amazon Technologies, Inc. | Managing program execution based on data storage location |
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 |
US9836277B2 (en) * | 2014-10-01 | 2017-12-05 | Samsung Electronics Co., Ltd. | In-memory popcount support for real time analytics |
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 |
KR102458885B1 (ko) * | 2016-03-23 | 2022-10-24 | 쥐에스아이 테크놀로지 인코포레이티드 | 인메모리 행렬 곱셈 및 뉴럴 네트워크에서 그것의 사용 |
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
Also Published As
Publication number | Publication date |
---|---|
CN111045979A (zh) | 2020-04-21 |
TW202014937A (zh) | 2020-04-16 |
CN111045979B (zh) | 2023-12-19 |
TWI690848B (zh) | 2020-04-11 |
CN111047026A (zh) | 2020-04-21 |
CN111047026B (zh) | 2023-08-25 |
TWI714003B (zh) | 2020-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shanbhag et al. | Efficient top-k query processing on massively parallel hardware | |
US11783170B2 (en) | Spatially sparse neural network accelerator for multi-dimension visual analytics | |
JP7381429B2 (ja) | ストレージ周辺の階層的ソート加速のためのストレージシステム及び方法 | |
Bisson et al. | Parallel distributed breadth first search on the Kepler architecture | |
US10127281B2 (en) | Dynamic hash table size estimation during database aggregation processing | |
TWI690848B (zh) | 基於記憶體處理器的多處理架構及其操作方法 | |
Baek et al. | Innersp: A memory efficient sparse matrix multiplication accelerator with locality-aware inner product processing | |
CN108140061A (zh) | 网络模体的自动确定 | |
WO2022199027A1 (zh) | 一种随机写的方法、电子设备及存储介质 | |
US11436046B2 (en) | Electronic device with memory processor-based multiprocessing architecture and operation method thereof | |
US9965343B2 (en) | System and method for determining concurrency factors for dispatch size of parallel processor kernels | |
KR20170053630A (ko) | 압축 알고리즘들을 위한 캐시 뱅크 스프레딩 | |
EP4060505A1 (en) | Techniques for near data acceleration for a multi-core architecture | |
CN103383772A (zh) | 用于实施图形着色的系统、方法以及计算机程序产品 | |
Zhou et al. | Hygraph: Accelerating graph processing with hybrid memory-centric computing | |
Liu et al. | G-Learned Index: Enabling Efficient Learned Index on GPU | |
Nakano et al. | The random address shift to reduce the memory access congestion on the discrete memory machine | |
US10488911B2 (en) | Method and computing system of allocating registers | |
Wang et al. | EWS: An Energy-Efficient CNN Accelerator With Enhanced Weight Stationary Dataflow | |
US20130173647A1 (en) | String matching device based on multi-core processor and string matching method thereof | |
Thoni et al. | Novel strategies for hardware acceleration of frequent itemset mining with the apriori algorithm | |
Nakano et al. | The super warp architecture with random address shift | |
WO2014168199A1 (ja) | 論理演算方法および情報処理装置 | |
JP2021018711A (ja) | タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム | |
TWI843934B (zh) | 用於處理無結構源資料的方法及系統 |