TWI714003B - 可執行人工智慧運算的記憶體晶片及其操作方法 - Google Patents
可執行人工智慧運算的記憶體晶片及其操作方法 Download PDFInfo
- Publication number
- TWI714003B TWI714003B TW108106715A TW108106715A TWI714003B TW I714003 B TWI714003 B TW I714003B TW 108106715 A TW108106715 A TW 108106715A TW 108106715 A TW108106715 A TW 108106715A TW I714003 B TWI714003 B TW I714003B
- Authority
- TW
- Taiwan
- Prior art keywords
- artificial intelligence
- data
- memory
- intelligence engine
- feature map
- 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)
- Advance Control (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
- Feedback Control In General (AREA)
Abstract
本發明提出一種可執行人工智慧運算的記憶體晶片及其操作方法。記憶體晶片包括記憶體陣列、記憶體控制器以及人工智慧引擎。記憶體陣列包括多個記憶體區域。所述多個記憶體區域用以儲存數位化輸入資料以及權重資料。記憶體控制器經由專屬於人工智慧引擎的匯流排來耦接至記憶體陣列。人工智慧引擎經由記憶體控制器以及匯流排來存取記憶體陣列,以取得數位化輸入資料以及權重資料。人工智慧引擎依據數位化輸入資料以及權重資料來執行神經網路運算。
Description
本發明是有關於一種記憶體架構,且特別是有關於一種可執行人工智慧(Artificial Intelligence,AI)運算的記憶體晶片及其操作方法。
隨著人工智慧(Artificial Intelligence,AI)運算的演進,人工智慧運算的應用越來越廣泛,例如經由神經網路模型來進行影像(image)分析、語音(voice)分析、自然語言(natural language)處理等神經網路運算。並且,隨著神經網路的運算複雜度越來越高,目前用於執行人工智慧運算的電腦設備已逐漸無法應付當前的神經網路運算需求,來提供有效且快速的運算性能。
對此,一般增進人工智慧運算速度方式例如是利用現場可程式化邏輯閘陣列(Field Programmable Gate Array,FPGA)架構、特殊應用積體電路(Application-Specific Integrated Circuit,
ASIC)架構或圖形處理器(Graphics Processing Unit,GPU)架構來分擔處理器(Central Processing Unit,CPU)執行高運算負載的相關神經網路運算任務,以達到加速運算的效果。然而,上述這些方式仍受限於記憶體牆(memory wall)的屏障,因此其運算效能仍無法有顯著的提升。有鑑於此,如何設計一種能快速執行人工智慧運算的處理架構,以下將提出幾個實施例的解決方案。
本發明提供一種可執行人工智慧(Artificial Intelligence,AI)運算的記憶體晶片及其操作方法,可藉由整合在記憶體晶片當中的人工智慧引擎來直接讀取儲存在記憶體晶片當中的數位化輸入資料以及權重資料,以使人工智慧引擎可快速地執行神經網路(neural network)運算。
本發明的可執行人工智慧運算的記憶體晶片包括記憶體陣列、記憶體控制器以及人工智慧引擎。記憶體陣列包括多個記憶體區域。所述多個記憶體區域用以儲存數位化輸入資料以及權重資料。記憶體控制器經由專屬於人工智慧引擎的匯流排來耦接至記憶體陣列。人工智慧引擎耦接記憶體控制器,以經由記憶體控制器以及匯流排來存取記憶體陣列,以取得數位化輸入資料以及權重資料。人工智慧引擎依據數位化輸入資料以及權重資料來執行神經網路運算。
在本發明的一實施例中,上述的多個記憶體區域包括多
個資料緩衝區。人工智慧引擎以及外部處理器交替地存取所述多個資料緩衝區,以使當人工智慧引擎存取所述多個資料緩衝區的其中之一的數位化輸入資料時,外部處理器同時存取所述多個資料緩衝區的其中之另一的另一數位化輸入資料。
在本發明的一實施例中,上述的人工智慧引擎包括第一快取單元。人工智慧引擎藉由第一快取單元來預先讀取所述多個記憶體區域的多個資料緩衝區的其中之一的數位化輸入資料。
在本發明的一實施例中,上述的匯流排的匯流排寬度大於或等於所述多個記憶體區域各別的多個記憶體庫的各別的一整列的資料數。
在本發明的一實施例中,上述的權重資料的多個權重值或特徵圖資料的多個特徵值依據列、庫、行組合編碼成為位址來依序儲存在所述多個記憶體區域各別的多個記憶體庫當中。人工智慧引擎依序且交錯地讀取所述多個記憶體區域各別的所述多個記憶體庫的每一列,以依序取得權重資料的所述多個權重值或特徵圖資料的所述多個特徵值。
在本發明的一實施例中,上述的多個記憶體區域包括權重資料區。人工智慧引擎依序且交錯地讀取權重資料區的多個記憶體庫,以取得權重資料。
在本發明的一實施例中,上述的人工智慧引擎包括第二快取單元。第二快取單元的多個快取線用以預先管線式地讀取所述多個記憶體庫的權重資料。人工智慧引擎將儲存在第二快取單
元的所述多個快取線的權重資料依序讀出,以執行神經網路運算。
在本發明的一實施例中,上述的多個記憶體區域包括兩個特徵圖資料區。人工智慧引擎輪替地存取兩個特徵圖資料區。人工智慧引擎以輪替地從兩個特徵圖資料區的其中之一的多個記憶體庫讀取特徵圖資料,並且將人工智慧引擎在進行神經網路運算的過程中所產生的另一特徵圖資料儲存至所述兩個特徵圖資料區的其中之另一的多個記憶體庫。
在本發明的一實施例中,上述的人工智慧引擎包括第三快取單元。第三快取單元的多個快取線用以預先管線式地讀取所述兩個特徵圖資料區的其中之一的所述多個記憶體庫的特徵圖資料。人工智慧引擎將儲存在第三快取單元的所述多個快取線的特徵圖資料依序讀出,以執行神經網路運算。
在本發明的一實施例中,上述的人工智慧引擎包括第四快取單元。第四快取單元的多個快取線用以預先儲存人工智慧引擎在進行神經網路運算的過程中所產生的所述另一特徵圖資料。以管線式地將儲存在第四快取單元的所述多個快取線的特徵圖資料依序讀出,儲存至所述兩個特徵圖資料區的其中之另一的所述多個記憶體庫。
本發明的可執行人工智慧運算的記憶體晶片的操作方法包括以下步驟:藉由人工智慧引擎經由記憶體控制器以及專屬於人工智慧引擎的匯流排來存取記憶體陣列的多個記憶體區域,以取得數位化輸入資料以及權重資料;以及藉由人工智慧引擎依據
數位化輸入資料以及權重資料來執行神經網路運算。
在本發明的一實施例中,上述的取得數位化輸入資料的步驟包括:當人工智慧引擎存取所述多個記憶體區域的多個資料緩衝區的其中之一的數位化輸入資料時,藉由外部處理器同時存取所述多個資料緩衝區的其中之另一的另一數位化輸入資料。
在本發明的一實施例中,上述的取得數位化輸入資料的步驟包括:藉由人工智慧引擎的第一快取單元來預先讀取所述多個記憶體區域的多個資料緩衝區的其中之一的數位化輸入資料。
在本發明的一實施例中,上述的匯流排的匯流排寬度大於或等於所述多個記憶體區域各別的多個記憶體庫的各別的一整列的資料數。
在本發明的一實施例中,上述的權重資料的多個權重值或特徵圖資料的多個特徵值依據列、庫、行組合編碼成為位址來依序儲存在所述多個記憶體區域各別的多個記憶體庫當中。上述的取得權重資料的步驟包括:藉由人工智慧引擎依序且交錯地讀取所述多個記憶體區域各別的所述多個記憶體庫的每一列,以依序取得權重資料的所述多個權重值或特徵圖資料的所述多個特徵值。
在本發明的一實施例中,上述的取得權重資料的步驟包括:藉由人工智慧引擎依序且交錯地讀取所述多個記憶體區域的權重資料區的多個記憶體庫,以取得權重資料。
在本發明的一實施例中,上述的人工智慧引擎包括第二
快取單元。第二快取單元的多個快取線用以預先管線式地讀取所述多個記憶體庫的權重資料。上述的執行神經網路運算的步驟包括:藉由人工智慧引擎將儲存在第二快取單元的所述多個快取線的權重資料依序讀出,以執行神經網路運算。
在本發明的一實施例中,上述的多個記憶體區域包括兩個特徵圖資料區。人工智慧引擎輪替地存取所述兩個特徵圖資料區。上述的操作方法更包括以下步驟:藉由人工智慧引擎以輪替地從所述兩個特徵圖資料區的其中之一的多個記憶體庫讀取特徵圖資料,並且將人工智慧引擎在進行神經網路運算的過程中所產生的另一特徵圖資料儲存至所述兩個特徵圖資料區的其中之另一的所述多個記憶體庫。
在本發明的一實施例中,上述的人工智慧引擎包括第三快取單元。第三快取單元的多個快取線用以預先管線式地讀取所述兩個特徵圖資料區的其中之一的所述多個記憶體庫的特徵圖資料。上述的執行神經網路運算的步驟包括:藉由人工智慧引擎將儲存在第三快取單元的所述多個快取線的特徵圖資料依序讀出,以執行神經網路運算。
在本發明的一實施例中,上述的人工智慧引擎包括第四快取單元。第四快取單元的多個快取線用以預先儲存人工智慧引擎在進行神經網路運算的過程中所產生的所述另一特徵圖資料。上述的執行神經網路運算的步驟包括:藉由管線式地將儲存在第四快取單元的所述多個快取線的特徵圖資料依序讀出,儲存至所
述兩個特徵圖資料區的其中之另一的所述多個記憶體庫。
基於上述,本發明的可執行人工智慧運算的記憶體晶片及其操作方法,可藉由將人工智慧引擎整合在記憶體晶片當中,以使當人工智慧引擎執行神經網路運算時,人工智慧引擎可經由具有較大寬度的專屬於人工智慧引擎的匯流排來快速地讀取記憶體陣列的特定記憶體區域的多個記憶體庫,以快速地取得執行神經網路運算所需的數位化輸入資料以及權重資料。因此,本發明的可執行人工智慧運算的記憶體晶片及其操作方法,可提供快速的人工智慧運算效能。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
30:處理器
40:通用的記憶體匯流排
100、200、400:記憶體晶片
110、210、310、410:人工智慧引擎
120:記憶體控制器
130:記憶體陣列
140、150:匯流排
231、232、431、432:資料緩衝區
233、333、433:權重資料區
311、411、412、413、414:快取
311A、311B、311C:快取線
333_1~331_N:記憶體庫
334_1~334_N:字元線緩衝器
434、435:特徵圖資料區
D1、D2:數位化輸入資料
W:權重資料
F1、F2:特徵圖資料
S510、S520:步驟
圖1是依照本發明的一實施例的記憶體晶片的功能方塊圖。
圖2是依照本發明的一實施例的記憶體晶片的操作架構圖。
圖3是依照本發明的一實施例的人工智慧引擎存取記憶體區域的示意圖。
圖4是依照本發明的另一實施例的記憶體晶片的操作架構圖。
圖5是依照本發明的一實施例的記憶體晶片的操作方法的流程圖。
為了使本發明之內容可以被更容易明瞭,以下特舉實施例做為本發明確實能夠據以實施的範例。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟,係代表相同或類似部件。
圖1是依照本發明的一實施例的記憶體晶片的功能方塊圖。參考圖1,記憶體晶片100包括人工智慧(Artificial Intelligence,AI)引擎110、記憶體控制器120以及記憶體陣列130。人工智慧引擎110與記憶體控制器120之間透過匯流排(bus)140進行資料傳輸,並且記憶體控制器120透過匯流排150來存取記憶體陣列130。在本實施例中,記憶體陣列130分為多個記憶體區域,並且所述多個記憶體區域各別包括多個記憶體庫(memory bank)。所述多個記憶體區域各別用以儲存特定資料(或稱資料集(dataset))。並且,在一實施例中,記憶體控制器120還可進一步包括多個專屬記憶體控制單元。所述多個專屬記憶體控制單元以一對一地對應於所述多個記憶體區域,來分別執行資料存取動作。
在本實施例中,匯流排140、150為專屬於人工智慧引擎110,並且匯流排140、150的匯流排寬度(width)可等於或大於所述多個記憶體庫的各別的一整列(row)的資料數,以使匯流排140、150每一次存取記憶體庫可一次存取記憶體庫的一整列中的每一行(column)的資料,但本發明並不限於此。在一實施例中,
匯流排140、150的匯流排寬度可依據人工智慧引擎110的架構設計或記憶體陣列130的資料儲存格式來對應設計之。
在本實施例中,人工智慧引擎110可例如是由控制邏輯、運算邏輯以及快取(cache)單元等諸如此類的電路元件所建構而成的記憶體內運算(Processing In Memory,PIM)架構。人工智慧引擎110可整合在記憶體晶片100的周邊電路區域,以直接透過專屬的記憶體控制器120以及匯流排140、150來存取記憶體陣列130的所述多個記憶體庫。並且,人工智慧引擎110是設計以具有執行神經網路(neural network)運算的功能。此外,本實施例的記憶體晶片100可為一種動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)晶片,或是基於動態隨機存取記憶體晶片的架構所設計而成的晶片,本發明並不限於此。
在本實施例中,當人工智慧引擎110執行神經網路運算時,人工智慧引擎110透過直接存取儲存在記憶體陣列130當中的數位化輸入資料以及權重(weight)資料,並且依據數位化輸入資料以及權重資料來快速執行神經網路運算。此外,本實施例所述神經網路運算可例如是執行深度學習網路(Deep Neural Networks,DNN)運算或卷積神經網路(Convolutional Neural Networks,CNN)運算等,本發明並不加以限制。
圖2是依照本發明的一實施例的記憶體晶片的操作架構圖。參考圖2,記憶體晶片200可具有如圖1實施例的記憶體晶片100的架構。在本實施例中,記憶體晶片200經由通用的記憶體匯
流排40與處理器30進行資料傳輸。記憶體晶片200的記憶體陣列的多個記憶體區域分類為資料緩衝區231、232以及權重資料區233,並且資料緩衝區231、232以及權重資料區233各別對應於記憶體陣列的不同的多個記憶體庫。也就是說,資料緩衝區231、232以及權重資料區233各別地被執行存取操作。
在本實施例中,通用的記憶體匯流排40由於受限於晶片外部的通用的資料傳輸條件,以致於其匯流排寬度與頻寬有限。然而,本實施例的人工智慧引擎210無須透過包括與外部處理器30耦接的通用的記憶體匯流排40來存取記憶體陣列,而是透過記憶體晶片200內部的專屬匯流排來存取料緩衝區231、232以及權重資料區233。因此,本實施例的記憶體控制器120可依據特定的資料存取模式來快速地存取記憶體陣列130。
在本實施例中,處理器30設置於記憶體晶片200外,並且可例如是中央處理單元(Central Processing Unit,CPU),或是其他可程式化之一般用途或特殊用途的影像訊號處理器(Image Signal Processor,ISP)、微處理器(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)、其他類似處理器或這些處理器電路的組合。
以處理器30為一種影像訊號處理器為例,資料緩衝區231、232儲存的數位化輸入資料D1、D2可為影像資料,並且人
工智慧引擎210預先設計為可執行相應的特定神經網路運算。人工智慧引擎210可對經由處理器30提供的影像資料進行神經網路運算,以分析影像資料當中的特定內容資訊。因此,當人工智慧引擎210執行神經網路運算時,人工智慧引擎210讀取資料緩衝區231以及權重資料區233,以取得對應於當前的影像資料的數位化輸入資料D1以及執行神經網路運算所需的權重資料W。同時,處理器30儲存對應於下一筆影像資料的數位化輸入資料D2至資料緩衝區232。接著,當處理器30完成儲存動作後,人工智慧引擎210立即接續讀取資料緩衝區232來取得對應於下一筆影像資料的數位化輸入資料D2,以接續進行運算,並且處理器30也立即轉換為對資料緩衝區231內的資料進行更新。
也就是說,由於處理器30是透過通用的記憶體匯流排40來存取記憶體晶片200的記憶體陣列中的資料緩衝區232,而人工智慧引擎210是透過專屬的匯流排來直接讀取資料緩衝區231。處理器30與人工智慧引擎210可進行平行處理(parallel processing)操作,而無須共用同一條匯流排以致需等待對方完成存取動作後才能分別接續執行存取。因此,本實施例的人工智慧引擎210以及外部的處理器30交替地存取資料緩衝區231、232,以快速地且連續地執行神經網路運算,並且可有效節省資料存取的匯流排等待時間。
圖3是依照本發明的一實施例的人工智慧引擎存取記憶體區域的示意圖。參考圖3,人工智慧引擎310包括快取單元311。
快取單元311包括快取線(cache line)311A~311C,但本發明各實施例所述的快取單元的快取線的數量並不限於圖3。記憶體區域333包括記憶體庫333_1~333_N,其中N為大於1的正整數。記憶體庫333_1~333_N分別包括字元線緩衝器(word line buffer)334_1~334_N。在本實施例中,快取單元311的快取線311A~311C用以經由預先讀取記憶體庫333_1~333_N的字元線緩衝器334_1~334_N來取得資料。對此,記憶體區域333可例如儲存用於執行深度學習網路運算或深度神經網路運算所需的資料,如數位化輸入資料、權重資料或特徵圖(feature map)資料等,並且數位化輸入資料、權重資料或特徵圖資料是依序儲存在記憶體庫311_1~311_N當中。
值得注意的是,神經網路運算所需的權重資料的多個權重值以及特徵圖資料的多個特徵值皆具有特定的存取順序特性來讀入神經網路模型當中。因此,記憶體控制器可利用此特性將權重資料以及特徵圖資料以有序的形式儲存在記憶體陣列中,來加速記憶體存取並進一步隱藏記憶體延遲。對此,如以下表1位址編碼原則所示,權重資料的權重值w0~w11以及特徵圖資料的特徵值f0~f11依序放置於連續位址空間中,但因依其位址編碼原則,位址編碼中的高位元部份、中位元部份以及低位元部份分別代表了所要存放於記憶體中列(Row)位址、庫(Bank)位址以及行(column)位址。如此,記憶體控制器就會依照順序來依序儲存於各別的權重資料區的對應記憶體庫的對應列的對應行中。
以權重資料為例,權重資料的連續權重值w0~w11可依據表1的位址編碼原則所示將列、庫、行組合編碼成為位址來依序儲存於權重資料區333的記憶體庫333_1~333_3當中。需說明的是,以下表1的庫位址000、001、010依序對應於記憶體庫333_1~333_3。在此例中,權重值w0~w3依據列、庫、行組合編碼位址的順序先儲存在權重資料區333的記憶體庫333_1的第一列(對應於列位址000)的每一行(對應於行位址00、01、10、11)中,然後權重值w4~w7儲存在記憶體庫333_2的第一列(對應於列位址000)的每一行(對應於行位址00、01、10、11)中,再來w8~w11儲存在記憶體庫333_3的第一列(對應於列位址000)的每一行(對應於行位址00、01、10、11)中。
在此例中,每一個記憶體庫333_1~333_3可被單獨執行存取操作,因此當人工智慧引擎310執行神經網路運算時,人工智慧引擎310的快取單元311可基於記憶體交錯(memory interleaving)存取機制以及依據相對應的位址順序(如表1所示的位址順序)以管線式(pipelining)地依序讀取記憶體庫333_1~333_3(對應於庫位址000、001、010)中的一整列(此例中對應於列位址000)資料,以依序取得執行神經網路運算所需的權重值w0~w11。
進一步而言,記憶體庫333_1~333_3的字元線緩衝器334_1~334_3會預先將記憶體庫333_1~333_3各自的一整列(此例中對應於列位址000)的資料讀出,以使快取線311A、311B、311C可預先交錯地取得記憶體庫333_1~333_3各別一整列的權重資料(此例中對應於列位址000的權重值w0~w11)。換言之,人工智慧引擎310是透過具有較大寬度的專屬的匯流排以及專屬之記憶體控制器來讀取權重資料區333,並且所述專屬的匯流排的寬度可等於或大於記憶體庫333_1~333_N的各別一整列的資料數。接著,人工智慧引擎310將儲存在快取單元311的這些快取線311A、311B、311C的權重資料(權重值w0~w11)依序讀出,以執行神
經網路運算。
再舉例而言,當權重資料(權重值w0~w11)被交錯的搬至快取線311A~B並被人工智慧引擎310陸續使用時,記憶體庫333_4~333_6的字元線緩衝器334_4~334_6會預先由記憶體庫333_4~333_6讀出各自的一整列的資料(延續表1,例如是權重值w12~w23)。以此類推,人工智慧引擎310可依神經網路運算模式來有效率地且準確地讀取權重資料,以達到可快速執行神經網路運算的效果。更重要的是,本實施例的人工智慧引擎310藉由交錯的讀取記憶體區域的多個記憶體庫的方式,可有效地克服列位址至行位址延遲時間(RAS-to-CAS Delay,tRCD)以及列位址預充電時間(RAS Precharge Time,tRP)的時間延遲影響。
另外,本實施例所述的特徵圖資料亦可如同以上述權重資料的方式來儲存以及讀取,因此不再贅述。並且,表1僅用於表示部分權重資料以及部分特徵圖資料的一種位址編碼順序方式,而本發明的權重資料以及特徵圖資料的資料量以及位址編碼的長度與順序並不限於表1所示。
圖4是依照本發明的另一實施例的記憶體晶片的操作架構圖。參考圖4,記憶體晶片400可具有如圖1實施例的記憶體晶片100的架構。在本實施例中,記憶體晶片400經由通用的記憶體匯流排與外部的處理器進行資料傳輸。記憶體晶片400的記憶體陣列的多個記憶體區域分類為資料緩衝區431、432、權重資料區433以及特徵圖資料區434、435。在本實施例中,資料緩衝區
431、432、權重資料區433以及特徵圖資料區434、435各別對應於記憶體陣列的不同的多個記憶體庫。也就是說,資料緩衝區431、432、權重資料區433以及特徵圖資料區434、435各別地被執行存取操作。
在本實施例中,人工智慧引擎410可例如執行卷積神經網路運算。人工智慧引擎410經由專屬的記憶體控制器以及專屬的匯流排來存取資料緩衝區431、432、權重資料區433以及特徵圖資料區434、435,其中人工智慧引擎410輪替地存取特徵圖資料區434、435。舉例而言,首先,當人工智慧引擎410讀取資料緩衝區431的數位化輸入資料D1來進行卷積(convolution)神經網路運算後,人工智慧引擎410產生第一筆特徵圖資料F1。人工智慧引擎410將第一筆特徵圖資料F1儲存至特徵圖資料區434。接著,當人工智慧引擎410執行下一層卷積(convolution)神經網路運算時,人工智慧引擎410讀取特徵圖資料區434的第一筆特徵圖資料F1來進行運算,並且產生第二筆特徵圖資料F2。人工智慧引擎410將第二筆特徵圖資料F2儲存至特徵圖資料區435。以此類推,人工智慧引擎410輪替地從特徵圖資料區434或435的多個記憶體庫讀取先前經運算所取得的特徵圖資料,然後將進行神經網路運算的過程中所產生的當前特徵圖資料儲存至相對應的特徵圖資料區435或434的多個記憶體庫。此外,在本實施例中,資料緩衝區432可同時被外部的處理器儲存或讀取數位化輸入資料D2。本實施並不僅限於卷積(convolution)神經網路,
本實施亦可應用於其它類型網路。
在本實施例中,人工智慧引擎410可包括多個快取單元411~414。快取單元411用以預先讀取資料緩衝區431的數位化輸入資料D1或資料緩衝區432的數位化輸入資料D2。快取單元412用以預先管線式地讀取權重資料區433的權重資料W。快取單元413、414用以預先管線式地讀取特徵圖資料區434、435的對應的特徵圖資料。換言之,人工智慧引擎410藉由設置多個快取單元411~414來預先管線式地讀取資料,以加快神經網路運算的速度。值得注意的是,權重資料W的多個權重值可如上述表1的位址編碼方式來儲存在權重資料區433的多個記憶體庫當中,並且人工智慧引擎410的快取單元412依據同樣的位址編碼順序來依序預先管線式地讀取權重資料區433的所述多個記憶體庫,以依序取得權重資料W的所述多個權重值。
特徵圖資料F1的多個特徵值可同樣如上述表1的位址編碼方式來儲存在特徵圖資料區434的多個記憶體庫當中,並且人工智慧引擎410的快取單元413依據同樣的位址編碼順序來依序預先管線式地讀取特徵圖資料區434的所述多個記憶體庫,以依序取得特徵圖資料F1的所述多個特徵值。並且,人工智慧引擎410將在執行神經網路運算的過程中所產生的特徵圖資料F2依序預先儲存至快取單元414,並且以管線式地將儲存在快取單元414的多個快取線的特徵圖資料依序讀出,並儲存至特徵圖資料區435。
換言之,本實施例的人工智慧引擎410輪替地從特徵圖
資料區434、435的多個記憶體庫讀取先前產生的特徵圖資料以及儲存人工智慧引擎410在進行神經網路運算的過程中所產生的當前特徵圖資料。因此,本實施例的人工智慧引擎410可快速地取得數位化輸入資料D1以及權重資料W。並且,在執行神經網路運算的過程中,人工智慧引擎410可快速地且連續地存取特徵圖資料區434、435,以達到可快速地進執行神經網路運算的功效。
另外,關於本實施例的記憶體晶片400的其他內部元件特徵、實施方式、相關技術特徵可參照上述圖1~圖3的各個實施例的說明,而獲致足夠的教示、建議以及實施說明,因此不再贅述。
圖5是依照本發明的一實施例的記憶體晶片的操作方法的流程圖。圖5的操作流程可例如適用於圖1、圖2以及圖4實施例的記憶體晶片100、200、400。參考圖1以及圖5,以圖1的記憶體晶片100為例,記憶體晶片100可執行步驟S510、S520。在步驟S510中,記憶體晶片100的人工智慧引擎110經由記憶體控制器120以及專屬於人工智慧引擎110的匯流排來存取記憶體陣列130的多個記憶體區域,以取得數位化輸入資料以及權重資料。在步驟S520中,記憶體晶片100的人工智慧引擎110依據數位化輸入資料以及權重資料來執行神經網路運算。因此,本實施例的記憶體晶片的操作方法可實現藉由整合在記憶體晶片100中的人工智慧引擎110來快速地執行神經網路運算的功效。
另外,關於本實施例的記憶體晶片100的其他內部元件
特徵、實施方式、相關技術特徵可參照上述圖1~圖4的各個實施例的說明,而獲致足夠的教示、建議以及實施說明,因此不再贅述。
綜上所述,本發明的可執行人工智慧運算的記憶體晶片及其操作方法,可藉由將人工智慧引擎整合在記憶體晶片當中,並且可透過專屬於人工智慧引擎的記憶體控制器以及匯流排以神經網路運算專有的運算模式來快速地存取記憶體陣列的多個記憶體區域,其中本發明的專屬於人工智慧引擎的匯流排寬度不受限於通用的匯流排寬度規範,而可提供較高的資料傳輸效能。並且,本發明的人工智慧運算所需的資料的存取方式可依據特定的位址順序來存取在對應的記憶體區域的多個記憶體庫當中,以有效地克服列位址至行位址延遲時間以及列位址預充電時間的時間延遲影響。因此,本發明的可執行人工智慧運算的記憶體晶片及其操作方法,可提供快速的人工智慧運算效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100:記憶體晶片
110:人工智慧引擎
120:記憶體控制器
130:記憶體陣列
140、150:匯流排
Claims (18)
- 一種可執行人工智慧運算的記憶體晶片,包括:一記憶體陣列,包括多個記憶體區域,其中該些記憶體區域用以儲存一數位化輸入資料以及一權重資料;一記憶體控制器,經由專屬於該人工智慧引擎的一匯流排來耦接至該記憶體陣列;以及一人工智慧引擎,耦接該記憶體控制器,並且用以經由該記憶體控制器以及該匯流排來存取該些記憶體區域,以取得該數位化輸入資料以及該權重資料,其中該人工智慧引擎依據該數位化輸入資料以及該權重資料來執行一神經網路運算,其中該些記憶體區域包括多個資料緩衝區,並且該人工智慧引擎以及一外部處理器交替地存取該些資料緩衝區,以使當該人工智慧引擎存取該些資料緩衝區的其中之一的該數位化輸入資料時,該外部處理器同時存取該些資料緩衝區的其中之另一的另一數位化輸入資料。
- 如申請專利範圍第1項所述的記憶體晶片,其中該人工智慧引擎包括一第一快取單元,並且該人工智慧引擎藉由該第一快取單元來預先讀取該些記憶體區域的多個資料緩衝區的其中之一的該數位化輸入資料。
- 如申請專利範圍第1項所述的記憶體晶片,其中該匯流排的一匯流排寬度大於或等於該些記憶體區域各別的多個記憶體庫的各別的一整列的資料數。
- 如申請專利範圍第1項所述的記憶體晶片,其中該權重資料的多個權重值或一特徵圖資料的多個特徵值依據列、庫、行組合編碼成為位址來依序儲存在該些記憶體區域各別的多個記憶體庫當中,並且該人工智慧引擎依序且交錯地讀取該些記憶體區域各別的該些記憶體庫的每一列,以依序取得該權重資料的該些權重值或該特徵圖資料的該些特徵值。
- 如申請專利範圍第1項所述的記憶體晶片,其中該些記憶體區域包括一權重資料區,並且該人工智慧引擎依序且交錯地讀取該權重資料區的多個記憶體庫,以取得該權重資料。
- 如申請專利範圍第5項所述的記憶體晶片,其中該人工智慧引擎包括一第二快取單元,並且該第二快取單元的多個快取線用以預先管線式地讀取該些記憶體庫的該權重資料,其中該人工智慧引擎將儲存在該第二快取單元的該些快取線的該權重資料依序讀出,以執行該神經網路運算。
- 如申請專利範圍第1項所述的記憶體晶片,其中該些記憶體區域包括兩個特徵圖資料區,並且該人工智慧引擎輪替地存取該兩個特徵圖資料區,其中該人工智慧引擎以輪替地從該兩個特徵圖資料區的其中之一的多個記憶體庫讀取一特徵圖資料,並且將該人工智慧引擎 在進行該神經網路運算的過程中所產生的另一特徵圖資料儲存至該兩個特徵圖資料區的其中之另一的多個記憶體庫。
- 如申請專利範圍第7項所述的記憶體晶片,其中該人工智慧引擎包括一第三快取單元,並且該第三快取單元的多個快取線用以預先管線式地讀取該兩個特徵圖資料區的其中之一的該些記憶體庫的該特徵圖資料,其中該人工智慧引擎將儲存在該第三快取單元的該些快取線的該特徵圖資料依序讀出,以執行該神經網路運算。
- 如申請專利範圍第7項所述的記憶體晶片,其中該人工智慧引擎包括一第四快取單元,並且該第四快取單元的多個快取線用以預先儲存該人工智慧引擎在進行該神經網路運算的過程中所產生的該另一特徵圖資料,其中管線式地將儲存在該第四快取單元的該些快取線的該特徵圖資料依序讀出,儲存至該兩個特徵圖資料區的其中之另一的該些記憶體庫。
- 一種可執行人工智慧運算的記憶體晶片的操作方法,包括:藉由一人工智慧引擎經由一記憶體控制器以及專屬於該人工智慧引擎的一匯流排來存取一記憶體陣列的多個記憶體區域,以取得一數位化輸入資料以及一權重資料;以及藉由該人工智慧引擎依據該數位化輸入資料以及該權重資料來執行一神經網路運算, 其中取得該數位化輸入資料的步驟包括:當該人工智慧引擎存取該些記憶體區域的多個資料緩衝區的其中之一的該數位化輸入資料時,藉由一外部處理器同時存取該些資料緩衝區的其中之另一的另一數位化輸入資料。
- 如申請專利範圍第10項所述的操作方法,其中取得該數位化輸入資料的步驟包括:藉由該人工智慧引擎的一第一快取單元來預先讀取該些記憶體區域的多個資料緩衝區的其中之一的該數位化輸入資料。
- 如申請專利範圍第10項所述的操作方法,其中該匯流排的一匯流排寬度大於或等於該些記憶體區域各別的多個記憶體庫的各別的一整列的資料數。
- 如申請專利範圍第10項所述的操作方法,其中該權重資料的多個權重值或一特徵圖資料的多個特徵值依據列、庫、行組合編碼成為位址來依序儲存在該些記憶體區域各別的多個記憶體庫當中,並且取得該權重資料的步驟包括:藉由該人工智慧引擎依序且交錯地讀取該些記憶體區域各別的該些記憶體庫的每一列,以依序取得該權重資料的該些權重值或該特徵圖資料的該些特徵值。
- 如申請專利範圍第10項所述的操作方法,其中取得該權重資料的步驟包括:藉由該人工智慧引擎依序且交錯地讀取該些記憶體區域的一權重資料區的多個記憶體庫,以取得該權重資料。
- 如申請專利範圍第14項所述的操作方法,其中該人工智慧引擎包括一第二快取單元,並且該第二快取單元的多個快取線用以預先管線式地讀取該些記憶體庫的該權重資料,其中執行該神經網路運算的步驟包括:藉由該人工智慧引擎將儲存在該第二快取單元的該些快取線的該權重資料依序讀出,以執行該神經網路運算。
- 如申請專利範圍第10項所述的操作方法,其中該些記憶體區域包括兩個特徵圖資料區,並且該人工智慧引擎輪替地存取該兩個特徵圖資料區,其中該操作方法更包括:藉由該人工智慧引擎以輪替地從該兩個特徵圖資料區的其中之一的多個記憶體庫讀取一特徵圖資料,並且將該人工智慧引擎在進行該神經網路運算的過程中所產生的另一特徵圖資料儲存至該兩個特徵圖資料區的其中之另一的該些記憶體庫。
- 如申請專利範圍第16項所述的操作方法,其中該人工智慧引擎包括一第三快取單元,並且該第三快取單元的多個快取線用以預先管線式地讀取該兩個特徵圖資料區的其中之一的該些記憶體庫的該特徵圖資料,其中執行該神經網路運算的步驟包括:藉由該人工智慧引擎將儲存在該第三快取單元的該些快取線的該特徵圖資料依序讀出,以執行該神經網路運算。
- 如申請專利範圍第16項所述的操作方法,其中該人工智慧引擎包括一第四快取單元,並且該第四快取單元的多個快取線用以預先儲存該人工智慧引擎在進行該神經網路運算的過程中所產生的該另一特徵圖資料,其中執行該神經網路運算的步驟包括:藉由管線式地將儲存在該第四快取單元的該些快取線的該特徵圖資料依序讀出,儲存至該兩個特徵圖資料區的其中之另一的該些記憶體庫。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/548,792 US11443185B2 (en) | 2018-10-11 | 2019-08-22 | Memory chip capable of performing artificial intelligence operation and method thereof |
JP2019171109A JP6912535B2 (ja) | 2018-10-11 | 2019-09-20 | 人工知能動作を実行できるメモリチップおよびその方法 |
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 |
---|---|
TW202014937A TW202014937A (zh) | 2020-04-16 |
TWI714003B true TWI714003B (zh) | 2020-12-21 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108110441A TWI690848B (zh) | 2018-10-11 | 2019-03-26 | 基於記憶體處理器的多處理架構及其操作方法 |
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 | 声龙(新加坡)私人有限公司 | 工作量证明运算芯片集群数据动态重构方法、系统和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200639635A (en) * | 2005-02-23 | 2006-11-16 | Micron Technology Inc | Memory device and method having multiple internal data buses and memory bank interleaving |
CN106934457A (zh) * | 2017-03-08 | 2017-07-07 | 杭州领芯电子有限公司 | 一种可灵活时分复用的脉冲神经元实现架构 |
TW201818301A (zh) * | 2016-11-14 | 2018-05-16 | 美商耐能股份有限公司 | 卷積運算裝置及卷積運算方法 |
TW201830296A (zh) * | 2015-05-21 | 2018-08-16 | 美商谷歌有限責任公司 | 類神經網路處理器 |
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 |
JP2006031480A (ja) * | 2004-07-16 | 2006-02-02 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
CN101165655A (zh) * | 2006-10-20 | 2008-04-23 | 国际商业机器公司 | 多处理器计算系统及其任务分配方法 |
TWI417722B (zh) * | 2007-01-26 | 2013-12-01 | Hicamp Systems Inc | 階層式不可改變的內容可定址的記憶體處理器 |
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 |
US20170046102A1 (en) * | 2015-08-14 | 2017-02-16 | Marvell World Trade Ltd. | Flexible interface for nand flash memory |
WO2017163208A1 (en) * | 2016-03-23 | 2017-09-28 | Gsi Technology Inc. | In memory matrix multiplication and its usage in neural networks |
US11501131B2 (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 |
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 |
---|---|---|---|---|
TW200639635A (en) * | 2005-02-23 | 2006-11-16 | Micron Technology Inc | Memory device and method having multiple internal data buses and memory bank interleaving |
TW201830296A (zh) * | 2015-05-21 | 2018-08-16 | 美商谷歌有限責任公司 | 類神經網路處理器 |
TW201818301A (zh) * | 2016-11-14 | 2018-05-16 | 美商耐能股份有限公司 | 卷積運算裝置及卷積運算方法 |
CN106934457A (zh) * | 2017-03-08 | 2017-07-07 | 杭州领芯电子有限公司 | 一种可灵活时分复用的脉冲神经元实现架构 |
Also Published As
Publication number | Publication date |
---|---|
TW202014882A (zh) | 2020-04-16 |
TW202014937A (zh) | 2020-04-16 |
TWI690848B (zh) | 2020-04-11 |
CN111047026A (zh) | 2020-04-21 |
CN111045979B (zh) | 2023-12-19 |
CN111047026B (zh) | 2023-08-25 |
CN111045979A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11443185B2 (en) | Memory chip capable of performing artificial intelligence operation and method thereof | |
US10990524B2 (en) | Memory with processing in memory architecture and operating method thereof | |
CN111580864B (zh) | 一种向量运算装置及运算方法 | |
EP3265907B1 (en) | Data processing using resistive memory arrays | |
US20170236053A1 (en) | Configurable and Programmable Multi-Core Architecture with a Specialized Instruction Set for Embedded Application Based on Neural Networks | |
US11500811B2 (en) | Apparatuses and methods for map reduce | |
US9411726B2 (en) | Low power computation architecture | |
KR102148110B1 (ko) | 계산 장치 및 방법 | |
WO2017124646A1 (zh) | 一种用于稀疏连接的人工神经网络计算装置和方法 | |
US20190042411A1 (en) | Logical operations | |
WO2021089009A1 (zh) | 数据流重构方法及可重构数据流处理器 | |
TWI714003B (zh) | 可執行人工智慧運算的記憶體晶片及其操作方法 | |
US11550586B2 (en) | Method and tensor traversal engine for strided memory access during execution of neural networks | |
US20220188038A1 (en) | Memory access | |
Kim et al. | ComPreEND: Computation pruning through predictive early negative detection for ReLU in a deep neural network accelerator | |
KR101672539B1 (ko) | 그래픽 처리 유닛 및 그 캐싱 방법 | |
TWI749331B (zh) | 具有記憶體內運算架構的記憶體及其操作方法 | |
JP2022512311A (ja) | 行列数学命令セットのタイリングアルゴリズム | |
US20220223201A1 (en) | Caching Techniques for Deep Learning Accelerator | |
US20210255832A1 (en) | Bit string accumulation | |
CN114510271A (zh) | 用于在单指令多线程计算系统中加载数据的方法和装置 | |
US10977184B2 (en) | Managing memory access for convolutional neural networks | |
JP2021507368A (ja) | 特殊数の検出を伴う複数パイプラインアーキテクチャ | |
TWI850513B (zh) | 用於記憶體內計算的方法及用於計算的系統 | |
TWI857749B (zh) | 執行深度可分離卷積運算的加速器系統和方法 |