TWI794636B - 積體電路及操作積體電路晶片之方法 - Google Patents
積體電路及操作積體電路晶片之方法 Download PDFInfo
- Publication number
- TWI794636B TWI794636B TW109127786A TW109127786A TWI794636B TW I794636 B TWI794636 B TW I794636B TW 109127786 A TW109127786 A TW 109127786A TW 109127786 A TW109127786 A TW 109127786A TW I794636 B TWI794636 B TW I794636B
- Authority
- TW
- Taiwan
- Prior art keywords
- tiles
- micro
- integrated circuit
- tile
- input data
- 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
- G06N3/065—Analogue means
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
- H03K19/1774—Structural details of routing resources for global signals, e.g. clock, reset
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/08—Learning methods
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
- Advance Control (AREA)
Abstract
一種用於操作包含多個微磚之一積體電路晶片之方法包含判定用於執行一運算之該等微磚之一組態。當用於該等微磚之該組態滿足一第一準則時,使該積體電路在一第一模式中操作,包含在該等微磚之各者處同時接收各自輸入資料。當用於該等微磚之該組態滿足一第二準則時,使該積體電路在一第二模式中操作,包含:在一第一時間,在一第一微磚群組之各微磚處同時接收各自第一輸入資料;在該第一時間,將各自第二輸入資料儲存於多個延遲暫存器之各者中,各延遲暫存器對應於一第二微磚群組之一微磚;在一第二時間,自該等延遲暫存器釋放該第二輸入資料及在該第二微磚群組之各微磚處接收該釋放之各自第二輸入資料。
Description
本申請案係關於雙模操作,且更特定言之係關於特殊應用積體電路之雙模操作。
神經網絡係採用模型之一或多層以針對一經接收輸入產生一輸出(例如,一分類)之機器學習模型。除了一輸出層以外,一些神經網路亦包含一或多個隱藏層。各隱藏層之輸出係用作至網路中之下一層(即,網路之下一隱藏層或輸出層)之輸入。網路之各層根據一各自參數集之當前值自一經接收輸入產生一輸出。
一些神經網路包含一或多個卷積神經網路層。各卷積神經網路層具有一組相關聯內核。內核可表示為權重輸入之一矩陣結構。各卷積層亦可處理一組激發輸入。該組激發輸入亦可表示為一矩陣結構。
一些現有系統對軟體中之一給定卷積層執行運算。例如,軟體可將用於該層之各內核應用於該組激發輸入。即,對於各內核,軟體可使以多維表示之內核覆疊於以多維表示之激發輸入之一第一部分上方。軟體接著可自經重疊元素運算一點積。該點積可對應於一單個激發輸入,例如,在重疊多維空間中具有一左上位置之一激發輸入元素。例如,使用
一滑動窗,軟體接著可使內核移位以覆疊激發輸入之一第二部分且計算對應於另一激發輸入之另一點積。軟體可重複執行此程序直至各激發輸入具有一對應點積。在一些實施方案中,點積係輸入至產生激發值之一激發函數。可在將激發值發送至神經網路之一後續層之前組合(例如,匯集)激發值。
吾人在此描述積體電路(諸如特殊應用積體電路(ASIC)),該等積體電路可基於用於執行一給定運算之積體電路之組態而在兩個模式之一者中操作。積體電路包含一微磚陣列。在一個模式中,在一給定運算中所涉及之每個微磚與各其他微磚同時(例如,在與各其他微磚相同之時脈循環)接收用於處理之輸入資料。在另一模式中,故意將一延遲引入至一微磚子集之操作中,使得資料處理之時序在微磚子集間錯開。積體電路在第二模式中之操作可(例如)藉由使積體電路之功率消耗及電流變化率能夠保持於積體電路之設計約束內而使積體電路穩健抵抗攻擊。
在一態樣中,一種用於操作包含多個微磚之一積體電路晶片之方法包含判定用於執行一運算之該積體電路之該等微磚之一組態。該方法包含:在用於該等微磚之該組態滿足一第一準則時,使該積體電路在一第一模式中操作,包含在該積體電路之該等微磚之各者處同時接收用於該運算之各自輸入資料。該方法包含:在用於該等微磚之該組態滿足一第二準則時,使該積體電路在一第二模式中操作,包含:在一第一時間,在該積體電路之第一微磚群組之各微磚處同時接收用於該運算之各自第一輸入資料;在該第一時間,將用於該運算之各自第二輸入資料儲存於多個延遲暫存器之各者中,各延遲暫存器對應於該積體電路之第二微磚群組之一
微磚;在一第二時間,自該等延遲暫存器釋放該第二輸入資料且在該第二微磚群組之各微磚處接收該釋放之各自第二輸入資料。
實施例可包含以下特徵之兩個或兩個以上特徵之一者或任何組合。
判定用於執行該運算之該等微磚之一組態包含判定可操作用於執行該運算之微磚之一數目及一百分比之一或多者。該第一準則包含可操作用於執行該運算之微磚之該數目或百分比小於一臨限數目或百分比,且該第二準則包含可操作用於執行該運算之微磚之該數目或百分比大於一臨限數目或百分比。
判定用於執行該運算之該等微磚之一組態包含判定可操作用於執行該運算之微磚行之一數目。該第一準則包含可操作用於執行該運算之微磚行之該數目或百分比小於一臨限數目或百分比,且該第二準則包含可操作用於執行該運算之微磚行之該數目或百分比大於一臨限數目或百分比。
該方法包含判定用於該等微磚之該組態是否滿足該第一準則或該第二準則。
使該積體電路在一第二模式中操作包含操作一多工器以啟用該等延遲暫存器。使該積體電路在一第一模式中操作包含操作該多工器以停用該等延遲暫存器。
該第一時間係一第一時脈循環且該第二時間係下一時脈循環。
在該第一模式中同時接收各自輸入資料包含在各微磚處接收輸入資料之一向量。
使該積體電路在一第一模式中操作包含操作該積體電路之該等微磚之各者以處理該各自輸入資料。
使該積體電路在一第二模式中操作包含:操作該第一群組之該等微磚之各者以處理各自第一輸入資料;及操作該第二群組之該等微磚之各者以處理自該延遲暫存器釋放之各自第二輸入資料。
該方法包含自一編譯器接收該第一準則及該第二準則之一指示。
在一態樣中,一種積體電路包含:多個延遲暫存器,其等各連接至一對應第一匯流排線;多個微磚,該等微磚之一第一群組之各微磚連接至一對應第二匯流排線,且該等微磚之一第二群組之各微磚連接至該等第一匯流排線之一對應者;及一控制器,其經組態以判定用於執行一運算之該等第一及第二微磚群組之一組態。當用於該等微磚之該組態滿足一第一準則時,該控制器經組態以控制該積體電路以在一第一模式中操作,其中經由該等第一及第二匯流排線在該多個微磚之各者處同時接收用於該運算之各自輸入資料。當用於該等微磚之該組態滿足一第二準則時,該控制器經組態以控制該積體電路以在一第二模式中操作,其中在一第一時間,在該第一微磚群組之各微磚處同時接收用於該運算之各自第一輸入資料;在該第一時間,將用於該運算之第二輸入資料儲存於該等延遲暫存器之各者中;及在一第二時間,自該等延遲暫存器釋放該第二輸入資料且在該第二微磚群組之各微磚處接收該各自第二輸入資料。
實施例可包含以下特徵之兩個或兩個以上特徵之一者或任何組合。
該積體電路包含連接至各第二匯流排線之一多工器。
該等微磚係配置成一個二維陣列。
該積體電路包含一特殊應用積體電路(ASIC)。
各微磚包含:多個運算胞元;一記憶體,其耦合至該等運算胞元;及可控制匯流排線,其等經組態以將資料遞送至該微磚及自該微磚遞送資料。
該等微磚之至少一者經組態以充當該控制器。
該積體電路包含一通信介面。
一積體電路(諸如一特殊應用積體電路(ASIC))之在一第一並行模式或一第二交錯模式中之操作可具有以下優點之一或多者。該積體電路可以穩健抵抗攻擊之一方式操作,且在適當情境中亦可以用於快速處理之一有效方式操作。操作模式之選擇經自動化且可動態地進行(例如)以在每次計算之基礎選擇一模式。
在下文隨附圖式及描述中闡述本發明之一或多項實施例之細節。將自描述、圖式及技術方案明白其他特徵及優點。
100:特殊應用積體電路(ASIC)
101:第一維度/方向
102:微磚
103:第二維度/方向
104:向量處理單元
108a:通信介面/介面/第一通信介面
108b:通信介面/介面/第二通信介面
110a:區段/微磚區段
110b:區段/微磚區段
110c:區段/微磚區段
110d:區段/微磚區段
200:陣列
202a至202d:微磚
204:靜態隨機存取記憶體(SRAM)
206:運算胞元陣列
208a:共同向量/向量/輸入向量
208b:共同向量/向量/輸入向量
210a:匯流排線
210b:匯流排線
210c:匯流排線
210d:匯流排線
212a:延遲暫存器
212b:延遲暫存器
214a:輸入向量
214b:輸入向量
300:二維陣列
302:微磚
304:延遲暫存器
306:延遲暫存器
308:輸入向量
400:步驟
402:步驟
404:步驟
406:步驟
408:步驟
410:步驟
412:步驟
414:步驟
416:步驟
418:步驟
420:步驟
422:步驟
424:步驟
426:步驟
圖1係繪示專用邏輯電路之一實例之一示意圖。
圖2A及圖2B係繪示用於一微磚陣列之第一及第二操作模式之示意圖。
圖3係一微磚陣列之一示意圖。
圖4係一流程圖。
本申請案主張2019年8月14日申請之美國專利申請案第62,886,481號之優先權,該案之全部內容以引用的方式併入本文。
吾人在此描述積體電路(諸如特殊應用積體電路(ASIC)),該等積體電路可基於用於執行一給定運算之積體電路之組態而在兩個模式之一者中操作。積體電路包含一微磚陣列。在一個模式中,在一給定運算中所涉及之每個微磚與各其他微磚同時(例如,在與各其他微磚相同之時脈循環)接收用於處理之輸入資料。在另一模式中,故意將一延遲引入至一微磚子集之操作中,使得資料處理之時序在微磚子集間錯開。在第二模式中之積體電路之操作可(例如)藉由使積體電路之功率消耗及電流變化率能夠保持於積體電路之設計約束內而使積體電路穩健抵抗攻擊。
圖1係繪示專用邏輯電路(特定言之,ASIC 100)之一實例之一示意圖。ASIC 100包含多個微磚102,其中微磚102之一或多者包含經組態以基於輸入資料執行運算(例如,諸如乘法及加法運算)之專用電路。特定言之,各微磚102可包含一運算胞元陣列,其中各胞元經組態以執行數學運算。在一些實施方案中,微磚102係配置成一格柵圖案,其中微磚102沿著一第一維度101(例如,列)及沿著一第二維度103(例如,行)配置。例如,在圖1中所展示之實例中,將微磚102劃分成四個不同區段(110a、110b、110c、110d),各區段含有配置成向下18個微磚×橫跨16個微磚之一格柵之288個微磚。在一些實施方案中,圖1中所展示之ASIC 100可被理解為包含細分/配置成單獨微磚之一單個脈動胞元陣列,其中各微磚包含一胞元子集/子陣列、本端記憶體及匯流排線。來自微磚102之輸出經提供至基於來自微磚102之輸出運算向量運算輸出值之一向量處理單元104。在下文進一步論述向量處理單元104及ASIC 100之操作。
ASIC 100亦包含一向量處理單元104。向量處理單元104包含經組態以自微磚102接收輸出及基於自微磚102接收之該等輸出運算向量運算輸出值之電路。例如,在一些實施方案中,向量處理單元104包含經組態以對自微磚102接收之輸出執行累加運算之電路(例如,乘法電路、加法器電路、移位器及/或記憶體)。替代性地或此外,向量處理單元104包含經組態以對微磚102之輸出應用一非線性函數之電路。替代性地或此外,向量處理單元104產生正規化值、匯集值或兩者。向量處理單元之向量運算輸出可儲存於一或多個微磚中。例如,向量運算輸出可儲存於與一微磚102唯一相關聯之記憶體中。替代性地或此外,向量處理單元104之向量運算輸出可(例如)作為一運算之一輸出傳送至ASIC 100外部之一電路。
ASIC之各微磚102可包含本端記憶體及耦合至該記憶體之一運算陣列。本端記憶體包含實體記憶體,例如,隨機存取記憶體(RAM),諸如SRAM。該運算陣列包含多個胞元。運算陣列之各胞元包含經組態以基於至該胞元之資料輸入(諸如激發輸入及權重輸入)執行一運算(例如,一乘法及累加運算)之電路。各胞元可在時脈信號之一循環上執行該運算(例如,乘法及累加運算)。各微磚亦包含經組態以在微磚間傳送資料之通用可控制匯流排線。該等通用匯流排線可經組態以攜載控制資料、激發輸入資料、往返於通信介面之資料、往返於向量處理單元之資料及待藉由微磚儲存及/或使用之資料(例如,權重輸入)。一或多個控制元件(例如,正反器及多工器)可操作以控制可控制匯流排線,藉此將資料投送至微磚及/或微磚之SRAM投送資料。
在一些實例中,可控制一積體電路(諸如一ASIC)以在兩個
模式之一者中操作以滿足操作約束(諸如對每單位時間之功率消耗之一最大量或通過該積體電路之電流之一最大速率之約束)。例如,當以不可能超過對積體電路之操作約束之一方式組態積體電路時,可控制積體電路以在一第一模式中操作。當積體電路經組態而以可超過操作約束(例如,在藉由接收一輸入信號而完全啟動較大數目個微磚或微磚群組時)之一方式操作時,可控制積體電路以在一第二模式中操作。在該第二模式中,將一延遲引入至積體電路之一些微磚之操作中以便防止積體電路超過操作約束。
圖2A係一實例性ASIC之微磚202a至202d(統稱為微磚202)之一陣列200之一簡化圖。儘管圖2A係關於一ASIC進行描述,但一類似組態可應用於其他類型之積體電路。各微磚202包含多個記憶體單元(例如,SRAM 204,諸如八個SRAM)及一運算胞元陣列206。在一些實例中,各微磚202可經啟動且可獨立於陣列200之各其他微磚202而操作。在一些實例中,圖2A中之各微磚202表示多個微磚之一行。在一些實例中,一ASIC可實施一更大陣列200,諸如具有至少4行、至少8行、至少16行之一陣列或一更大陣列。陣列200之微磚202被分組成兩個子集:包含微磚202a、202c之一第一子集及包含微磚202b、202d之一第二子集。
在陣列200之一第一操作模式中,一給定子集之微磚(例如)自匯流排線、來自微磚或來自另一微磚(例如,一相鄰微磚)之記憶體(例如,SRAM)接收輸入資料之一共同向量208。例如,在圖2A之實例中,第一子集之微磚202a、202c接收輸入資料之一向量208a且第二子集之微磚202b、202d接收輸入資料之一向量208b。輸入資料之向量可為(例如)用於待由微磚202之運算胞元陣列206實行之神經網路運算之權重資料之
向量。藉由ASIC之時脈循環控制向量傳播。例如,所有微磚202(例如,兩個子集中之微磚)可在相同時脈循環接收一給定向量208。
匯流排線210a、210c將輸入資料之向量208a提供至第一子集之微磚202a、202c。對應於微磚202c之一延遲暫存器212a係存在於匯流排線210c上。匯流排線210b、210d將輸入資料之向量208b提供至第二子集之微磚202b、202d,且對應於微磚202d之一延遲暫存器212b係存在於匯流排線210d上。然而,在陣列200之第一操作模式中,未使用延遲暫存器212a、212b(如藉由虛線所指示),且輸入資料之向量208係直接且同時(例如,在相同時脈循環上)提供至微磚202之各者。
輸入資料之各向量208可包含用於該向量之各元素之值。例如,當向量208攜載二進制資料時,各元素可具有一值0或一值1。當一微磚202接收具有一特定值(例如,一值1,針對二進制資料)之一元素之一向量208時,起始藉由運算胞元陣列206之處理(例如,將一或多個多工器自一閒置狀態改變至一作用中狀態),且亦起始自SRAM 204之至少一者讀取。吾人將起始藉由運算胞元陣列206之處理及起始自一微磚202之一SRAM 204讀取之程序稱為微磚202之啟動。當陣列200之每個微磚202接收具有起始運算之一元素(例如,值1之一元素)之一各自向量208時,啟動陣列202之所有微磚。在其中圖2A中所展示之各微磚202表示多個微磚之一行之實例中,其中所有元素具有一值1之一向量引起該行之所有微磚之啟動。
在一些實例中,一積體電路(諸如,ASIC)之操作可經受設計約束。例如,可使每單位時間之功率消耗維持低於一臨限位準以避免違反該ASIC之熱設計約束。可使流動通過ASIC之電流隨時間之變化率(例
如,di/dt;稱為電流變化率)維持低於一臨限位準以避免驅動電壓高於或低於一電壓臨限值(諸如驅動電壓高於或低於操作範圍)。
自一微磚之記憶體(諸如一SRAM)讀取可為一耗電程序,且起始該SRAM讀取程序可汲取大量電流。在高時脈循環下,一大電流汲取可對應於一高電流變化率。起始藉由一運算陣列之運算處理(例如,將一多工器之狀態自閒置改變至作用中)亦可汲取大量電流,且在高時脈循環下可對應於一高電流變化率。
陣列200中之所有微磚202之並行啟動(例如,起始藉由運算胞元陣列206之處理及起始自SRAM 204之讀取)可引起大量功率消耗且可導致一高電流變化率。當陣列之各微磚202實際上表示一微磚行且(例如)藉由接收各具有值1之所有元素之多個向量而啟動各行之各微磚時,可加劇該大功率消耗及該高電流變化率。例如,可在對ASIC之一攻擊中供應此一向量。
在一些實例中,諸如在藉由輸入向量208啟動之微磚202之數目超過一臨限值時,藉由經接收輸入向量208同時啟動該等微磚202可引起功率消耗、電流變化率或兩者超過ASIC之一設計約束。例如,同時啟動之微磚之臨限數目可為微磚總數目之25%或微磚總數目之50%。為防止超過ASIC設計約束,可控制ASIC以在特定條件下在一第二模式中操作。例如,可控制ASIC以在一處理操作中所涉及之微磚(或微磚行)之數目引起超過一設計約束(若將啟動任何數目個所涉及微磚)時在該第二模式中操作,如下文更多論述。
圖2B展示經組態以在第二操作模式中操作之微磚陣列200。在第二操作模式(有時被稱為交錯)中,啟動存在於匯流排線210上之
延遲暫存器212使得提供於包含一延遲暫存器212之一匯流排線210上之輸入資料之一向量經受一延遲。例如,在微磚202a、202c之第一子集中,同時提供至兩個匯流排線210a、210c之一輸入向量214a係直接提供至微磚202a,但保持於延遲暫存器212a中。輸入向量214a在一延遲週期之後自延遲暫存器212a釋放且提供至微磚202c。例如,可設定該延遲週期使得微磚202a在一第一時脈循環上接收輸入向量214a且微磚202b在下一(或某一其他後續)時脈循環上接收輸入向量。類似地,輸入向量214b係在該第一時脈循環上在微磚202b處接收但儲存於延遲暫存器212b中,且在下一(或某一其他後續)時脈循環上釋放至微磚202d。
在第二操作模式中,故意引入延遲導致使同一子集之微磚之啟動交錯(例如,錯開)。在此組態中,無關於輸入向量214之元素之值,可同時啟動不超過一半微磚。因此,甚至在具有值1之所有元素之向量之一攻擊下,每單位時間之功率消耗及電流變化率仍可安全地保持於ASIC之設計約束內。
例如,可在每次運算基礎上基於用於一給定運算之微磚陣列(或微磚行)之一組態動態地選擇ASIC之操作模式。例如,陣列之組態可為待用於執行一給定運算之可獨立操作之微磚(或微磚行)之數目。可基於微磚陣列之組態滿足一第一或第二準則來選擇ASIC之操作模式。例如,該第一準則可為可獨立操作之微磚(或微磚行)之數目或百分比下降至低於一臨限值,且在滿足第一準則時,實施第一操作模式。第二準則可為可獨立操作之微磚(或微磚行)之數目或百分比超過一臨限值,且在滿足第二準則時,實施第二操作模式。該臨限值可為微磚之一數目或百分比,使得即使將同時啟動所有微磚,功率消耗及電流變化率仍落在ASIC之設計
約束內。更一般而言,臨限準則可係關於ASIC之一臨限利用率及/或ASIC之硬體/操作約束。
在一些實例中,可基於來自一編譯器之指令控制ASIC之操作模式。例如,該編譯器可將指示第一準則及第二準則之資訊提供至ASIC之控制電路(例如,一控制微磚)。ASIC之控制電路可針對一給定運算判定用於該運算之微磚之組態是否滿足第一或第二準則,且可基於該判定控制陣列之操作模式。例如,當滿足第二準則時(例如,在用於一給定運算之可獨立操作之微磚或微磚行之數目超過一臨限值時),ASIC之控制電路可啟動延遲暫存器以在第二模式中操作。當滿足第一準則時(例如,在用於一給定運算之可獨立操作之微磚或微磚行之數目小於一臨限值時),ASIC之控制電路可撤銷啟動延遲暫存器以在第一模式中操作。
可藉由可使延遲暫存器能夠切換至電路中或切換出電路之一切換元件(諸如一多工器)來控制第一模式與第二模式之間的轉變。可藉由ASIC之控制電路(例如,控制微磚)來控制該多工器。
在一些實例中,可將臨限值(例如,可獨立操作之微磚或微磚行之臨限數目)自一外部源(例如,自判定臨限組態之ASIC之一使用者或自自動判定臨限組態之一外部電腦)供應至編譯器。
在圖2A及圖2B之實例中,各子集包含一對微磚(或微磚行),使得在第二操作模式中,可同時啟動至多一半微磚。對於大於圖2A及圖2B中所展示之陣列之陣列,在一些實例中,各子集可繼續包含一對微磚,且在一些實例中,各子集可包含兩個以上微磚。例如,各子集可包含三個微磚(其等之兩者連接至延遲暫存器),使得在第二操作模式中,可同時啟動至多三分之一微磚。在一些實例中,可藉由使在與引入微磚啟動
之進一步交錯相關聯之處理中之額外延遲與僅同時啟動小微磚群組(或微磚行)之期望平衡來判定子集中之微磚之數目。
在一些實例中,延遲暫存器可在除了在第二模式中之陣列之操作以外之ASIC之其他功能性方面發揮作用(例如,用於跨一大ASIC同步化操作)。例如,在一大ASIC中,跨整個晶片傳播一輸入可耗費較長時間(例如,多個時脈循環,諸如幾十個時脈循環)。在傳播時間與時脈循環之間失配之情況下,延遲暫存器可用於同步化操作。
參考圖3,在一些實例中,在一第一並行模式及一第二交錯模式中操作一微磚陣列之方法可適用於一個二維微磚陣列。例如,如圖3中所展示,微磚302a至302f之二維陣列300可包含實現在x方向上之信號傳播(例如,輸入向量308a至308c之傳播)之交錯之延遲暫存器304a至304c及實現在y方向上之信號傳播之交錯之延遲暫存器306。
參考圖4,在用於操作一ASIC之一實例性程序中,針對一給定運算判定該ASIC之微磚之一組態(400)。例如,判定在執行該運算時所涉及之微磚之數目或百分比。
例如,自ASIC之控制電路獲得一臨限值(402)。例如,該臨限值可先前已自一編譯器提供至ASIC。臨限值可為(或係關於)ASIC/ASIC之微磚之一臨限利用率及/或ASIC之操作/硬體約束。臨限值可指示微磚之一臨限數目或百分比。其他臨限值實例包含(但不限於):一臨限能量使用率;一臨限記憶體使用率;及/或一臨限輸入資料大小。
作出關於微磚之組態是否滿足一第一準則(例如,在執行運算時所涉及之微磚之數目或百分比是否低於臨限值)之一判定(404)。若是,則使ASIC在一第一模式中操作(406),包含在ASIC之微磚之各者處
同時接收用於運算之輸入資料(例如,一輸入向量)(408)及操作微磚以處理該輸入資料(410)。
否則,作出微磚之組態是否滿足一第二準則(例如,在執行運算時所涉及之微磚之數目或百分比是否超過臨限值)之一判定(412)。若是,則使ASIC在一第二模式中操作(414)。在該第二模式中,在一第一時間(諸如在一第一時脈循環)在ASIC之第一微磚群組之各微磚處同時接收用於運算之第一輸入資料(416),且操作該第一微磚群組之微磚以處理該第一輸入資料(418)。又在第一時間,將各自第二輸入資料儲存於多個延遲暫存器之各者中(420),各延遲暫存器對應於ASIC之第二微磚群組之一微磚。在一第二時間(諸如在下一時脈循環),自延遲暫存器釋放第二輸入資料(422)。在第二群組之各微磚處接收經釋放之各自第二輸入資料(424),且操作第二微磚群組之微磚以處理第二輸入資料(426)。
再次參考圖1,一實例性ASIC 100可包含一通信介面108(例如,介面108a、108b)。通信介面108包含一或多組串列化器/解串列化器(SerDes)介面及一通用輸入/輸出(GPIO)介面。該SerDes介面經組態以接收用於ASIC 100之指令(例如,用於操作下文所描述之可控制匯流排線之指令)及/或輸入資料且將資料自ASIC 100輸出至一外部電路。例如,SerDes介面可經組態以經由包含於通信介面108內之該組SerDes介面以32Gbp、56Gbp之一速率或任何合適資料速率傳輸指令及/或輸入資料。GPIO介面經組態以提供用於除錯及/或自舉啟動之一介面。例如,ASIC 100在其經開啟時可運行一自舉程式。若該程式發生故障,則一管理員可使用GPIO介面以對故障源進行除錯。
ASIC 100進一步包含經組態以在通信介面108、向量處理
單元104及多個微磚102間遞送資料之多個可控制匯流排線。可控制匯流排線包含(例如)沿著格柵之第一維度101(例如,列)及格柵之第二維度103(例如,行)兩者延伸之導線。沿著第一維度101延伸之可控制匯流排線之一第一子集可經組態以在一第一方向上(例如,至圖1之右側)傳送資料。沿著第一維度101延伸之可控制匯流排線之一第二子集可經組態以在一第二方向上(例如,至圖1之左側)傳送資料。沿著第二維度103延伸之可控制匯流排線之一第一子集可經組態以在一第三方向上(例如,至圖1之頂部)傳送資料。沿著第二維度103延伸之可控制匯流排線之一第二子集可經組態以在一第四方向上(例如,至圖1之底部)傳送資料。
各可控制匯流排線包含用於根據一時脈信號沿著線遞送資料之多個遞送器元件(諸如正反器)。經由一可控制匯流排線傳送資料可包含在各時脈循環將資料自該可控制匯流排線之一第一遞送器元件移位至可控制匯流排線之一第二相鄰遞送器元件。在一些實施方案中,在一時脈循環之上升或下降邊緣上經由可控制匯流排線遞送資料。例如,在一第二時脈循環,可將在一第一時脈循環存在於一可控制匯流排線之一第一遞送器元件(例如,一正反器)上之資料傳送至該可控制匯流排線之一第二遞送器元件(例如,一正反器)。在一些實施方案中,遞送器元件可以一固定距離彼此週期性地間隔開。例如,在一些情況中,各可控制匯流排線包含多個遞送器元件,其中各遞送器元件定位於一對應微磚102內或靠近一對應微磚102。
各可控制匯流排線亦包含多個多工器及/或解多工器。一可控制匯流排線之一多工器/解多工器經組態以在ASIC晶片100之匯流排線與一組件之間傳送資料。例如,一可控制匯流排線之一多工器/解多工器
可經組態以將資料傳送至一微磚102、向量處理單元104或通信介面108及/或自一微磚102、向量處理單元104或通信介面108傳送資料。在微磚102、向量處理單元104及通信介面間傳送資料可包含基於發生之所要資料傳送將控制信號發送至多工器。該等控制信號可儲存於直接耦合至多工器及/或解多工器之暫存器中。接著,控制信號之值可判定(例如)自一源(例如,一微磚102內之記憶體或一向量處理單元104)傳送至一可控制匯流排線之資料,或替代性地,自該可控制匯流排線傳送至一槽(例如,一微磚102內之記憶體或一向量處理單元104)之資料。
可控制匯流排線經組態以在一局部層級上予以控制,使得各微磚、向量處理單元及/或通信介面包含其自身之用於操縱通過該微磚、向量處理單元及/或通信介面之可控制匯流排線之控制元件組。例如,各微磚、1D向量處理單元及通信介面可包含用於控制至及自該微磚、1D向量處理單元及通信介面之資料傳送之一組對應遞送器元件、多工器及/或解多工器。
為最小化與ASIC晶片100之操作相關聯之延時,微磚102及向量處理單元104可經定位以減小資料在各種組件間行進之距離。在一特定實施方案中,微磚102及通信介面108兩者可被隔離成多個區段,其中微磚區段及通信介面區段兩者經配置使得減小資料在一微磚與一通信介面之間行進之最大距離。例如,在一些實施方案中,微磚102之第一群組可配置於通信介面108之一第一側上之一第一區段中,且微磚102之第二群組可配置於通信介面之一第二側上之一第二區段中。因此,相較於其中所有微磚102配置於通信介面之一側上之一單個區段中之一組態,自一通信介面至最遠微磚之距離可減少一半。
替代性地,微磚可配置於不同數目個區段(諸如四個區段)中。例如,在圖1中所展示之實例中,ASIC 100之多個微磚102配置於多個區段110(110a、110b、110c、110d)中。各區段110包含配置成一格柵圖案之相似數目個微磚102(例如,各區段110可包含配置成16列及16行之256個微磚)。通信介面108亦被劃分成多個區段:配置於微磚102之區段110之任一側上之一第一通信介面108a及一第二通信介面108b。第一通信介面108a可透過可控制匯流排線耦合至ASIC晶片100之左側上之兩個微磚區段110a、110c。第二通信介面108b可透過可控制匯流排線耦合至ASIC晶片100之右側上之兩個微磚區段110b、110d。因此,相較於其中僅一單個通信介面可用之一配置,資料往返於一通信介面108行進之最大距離(及因此與資料傳播相關聯之延時)可減半。微磚102與通信介面108之其他耦合配置亦可減少資料延時。可藉由提供控制信號至可控制匯流排線之遞送器元件及多工器來程式化微磚102與通信介面108之耦合配置。
在一些實施方案中,一或多個微磚102經組態以相對於ASIC 100內之可控制匯流排線及/或其他微磚(在本文中被稱為「控制微磚」)起始讀取及寫入操作。ASIC 100內之剩餘微磚可經組態以基於輸入資料執行運算(例如,運算層推論)。在一些實施方案中,控制微磚包含與ASIC 100內之其他微磚相同之組件及組態。控制微磚可添加為ASIC 100之一(或若干)額外微磚、一(或若干)額外列或一(或若干)額外行。例如,對於其中各微磚102經組態以對輸入資料執行一運算之微磚102之一對稱格柵,可包含一或多列額外控制微磚以處置用於對輸入資料執行運算之微磚102之讀取及寫入操作。例如,各區段110包含18列微磚,其中最後兩列微磚可包含控制微磚。在一些實施方案中,提供單獨控制微磚增加在用
於執行運算之其他微磚中可用之記憶體之量。然而,專用於提供如本文中所描述之控制之單獨微磚並非必要的,且在一些情況中,不提供單獨控制微磚。實情係,各微磚可將用於起始該微磚之讀取及寫入操作之指令儲存於其本端記憶體中。
此外,雖然圖1中所展示之各區段110包含配置成18列×16行之微磚,但微磚102之數目及其等在一區段中之配置可為不同的。例如,在一些情況中,區段110可包含相同數目個列及行。
此外,儘管在圖1中展示為被劃分成四個區段,但微磚102可被劃分成其他不同群組。例如,在一些實施方案中,微磚102被分組成兩個不同區段,諸如向量處理單元104上方(例如,更接近圖1中所展示之頁面之頂部)之一第一區段及向量處理單元104下方(例如,更接近圖1中所展示之頁面之底部)之一第二區段。在此一配置中,各區段可含有(例如)配置成向下(沿著方向103)18個微磚×橫跨(沿著方向101)32個微磚之一格柵之576個微磚。區段可含有其他總數目個微磚且可配置成不同大小陣列。在一些情況中,藉由ASIC 100之硬體特徵對區段之間的劃分進行劃界。例如,如圖1中所展示,區段110a、110b可藉由向量處理單元104與區段110c、110d分離。
如本文中所闡釋,在一些實施方案中,微磚102之一或多者係專用於儲存控制資訊。即,專用於儲存控制資訊之微磚102並不參與對輸入資料(諸如權重輸入及激發輸入)執行計算。控制資訊可包含(例如)用於在ASIC晶片100之操作期間組態可控制匯流排線使得可使資料在ASIC晶片100周圍移動之控制資料。該控制資料可以控制信號之形式提供至可控制匯流排線以用於控制可控制匯流排線之遞送器元件及多工器。控
制資料指定可控制匯流排線之特定遞送器元件是否將資料傳遞至可控制匯流排線之下一遞送器元件使得根據一預定排程在微磚間傳送資料。此外,控制資料指定資料是否自一匯流排線傳送或傳送至一匯流排線。例如,控制資料可包含引導一多工器以將資料自一匯流排線傳送至一微磚內之記憶體及/或其他電路之控制信號。在另一實例中,控制資料可包含引導一多工器以將資料自該微磚內之記憶體及/或電路傳送至匯流排線之控制信號。在另一實例中,控制資料可包含引導一多工器以在一匯流排線與通信介面108之間及/或在該匯流排線與向量處理單元104之間傳送資料之控制信號。替代性地,如本文中所揭示,不使用專用控制微磚。實情係,在此等情況中,各微磚之本端記憶體儲存用於該特定微磚之控制資訊。
可在數位電子電路中在電腦硬體(包含本說明書中所揭示之結構及其等結構等效物)中或其等之一或多者之組合中實施本說明書中所描述之標的物及功能操作之實施例。本說明書中所描述之標的物之實施例可實施為一或多個電腦程式,即,在一有形非暫時性程式載體上編碼以藉由資料處理設備執行或控制資料處理設備之操作之電腦程式指令之一或多個模組。替代性地或此外,程式指令可在一人工產生之傳播信號(例如,一機器產生之電、光學或電磁信號)上編碼,該傳播信號經產生以編碼資訊用於傳輸至合適接收器設備以藉由一資料處理設備執行。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或其等之一或多者之一組合。
術語「資料處理設備」涵蓋用於處理資料之全部種類的設備、裝置及機器,舉例而言,包含一可程式化處理器、一電腦或多個處理器或電腦。設備可包含專用邏輯電路,例如,一FPGA(場可程式化閘陣
列)或一ASIC。除硬體之外,設備亦可包含針對所討論之電腦程式產生一執行環境之程式碼,例如,構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合的程式碼。
可藉由一或多個可程式化電腦執行本說明書中所描述之程序及邏輯流程,該一或多個可程式化電腦執行一或多個電腦程式以藉由對輸入資料操作及產生輸出來執行功能。亦可藉由專用邏輯電路(例如,一FPGA、一ASIC或一GPGPU(通用圖形處理單元))來執行該等程序及邏輯流程,且設備亦可實施為該專用邏輯電路。
雖然本說明書含有許多特定實施方案細節,但此等特定實施方案細節不應被理解為限制任何發明或可主張之內容之範疇,而是被理解為描述可特定於特定發明之特定實施例之特徵。本說明書中在單獨實施例之背景內容中所描述之特定特徵亦可組合實施於一單項實施例中。相反地,在單項實施例之背景內容中描述之各種特徵亦可單獨實施於多項實施例中或以任何合適子組合實施。此外,儘管特徵在上文可被描述為依特定組合起作用且甚至最初如此主張,然來自一所主張之組合之一或多個特徵在一些情況中可自該組合免除,且該所主張之組合可係關於一子組合或一子組合之變型。
類似地,雖然在圖式中依一特定順序描繪操作,但此不應被理解為需要依所展示之特定順序或依循序順序來執行此等操作或需要執行所有經繪示之操作以達成所要結果。在特定境況中,多任務處理及平行處理可為有利的。此外,上文所描述之實施例中之各種系統模組及組件之分離不應被理解為在所有實施例中需要此分離,且應理解,所描述之程式組件及系統可大體上一起整合於一單個軟體產品中或封裝於多個軟體產品
中。
已描述標的物之特定實施例。其他實施例係在以下發明申請專利範圍之範疇內。例如,儘管匯流排線係描述為「可控制」,但並非所有匯流排線需要具有相同控制位準。例如,可存在不同程度之可控制性,其中僅在一些匯流排線係在微磚(匯流排線可自其獲取資料或匯流排線可將資料發送至其)之數目方面受到限制之情況下可控制一些匯流排線。在另一實例中,一些匯流排線可專用於沿著一單個方向(諸如,如本文中所描述之北、東、西或南)提供資料。在一些情況中,發明申請專利範圍中所敘述之動作可依一不同順序執行且仍達成所要結果。作為一實例,附圖中所描繪之程序並不一定需要所展示之特定順序,或循序順序,來達成所要結果。在特定實施方案中,多任務處理及平行處理可為有利的。
400:步驟
402:步驟
404:步驟
406:步驟
408:步驟
410:步驟
412:步驟
414:步驟
416:步驟
418:步驟
420:步驟
422:步驟
424:步驟
426:步驟
Claims (19)
- 一種用於操作包括多個微磚(tiles)之一積體電路晶片之方法,該方法包括:判定用於執行一運算之該積體電路之該等微磚之一組態;當用於該等微磚之該組態滿足一第一準則時,使該積體電路在一第一模式中操作,包含:在該積體電路之該等微磚之各者處同時接收用於該運算之各自輸入資料;及當用於該等微磚之該組態滿足一第二準則時,使該積體電路在一第二模式中操作,包含:在一第一時間,在該積體電路之一第一微磚群組之各微磚處同時接收用於該運算之各自第一輸入資料;在該第一時間,將用於該運算之各自第二輸入資料儲存於多個延遲暫存器之各者中,該多個延遲暫存器之各者對應於該積體電路之一第二微磚群組之一微磚;在一第二時間,自該等延遲暫存器釋放該第二輸入資料及在該第二微磚群組之各微磚處接收釋放之該各自第二輸入資料。
- 如請求項1之方法,其中判定用於執行該運算之該等微磚之一組態包括判定可操作用於執行該運算之微磚之一數目及一百分比之一或多者。
- 如請求項2之方法,其中該第一準則包括可操作用於執行該運算之微 磚之該數目或百分比小於一臨限數目或百分比,且其中該第二準則包括可操作用於執行該運算之微磚之該數目或百分比大於一臨限數目或百分比。
- 如請求項1之方法,其中判定用於執行該運算之該等微磚之一組態包括判定可操作用於執行該運算之微磚行之一數目。
- 如請求項4之方法,其中該第一準則包括可操作用於執行該運算之微磚行之該數目或百分比小於一臨限數目或百分比,且其中該第二準則包括可操作用於執行該運算之微磚行之該數目或百分比大於一臨限數目或百分比。
- 如請求項1之方法,其中使該積體電路在該第二模式中操作包括操作一多工器以啟用該等延遲暫存器。
- 如請求項6之方法,其中使該積體電路在該第一模式中操作包括操作該多工器以停用該等延遲暫存器。
- 如請求項1之方法,其中該第一時間係一第一時脈循環且該第二時間係下一時脈循環。
- 如請求項1之方法,其中在該第一模式中同時接收該各自輸入資料包括在該多個微磚之各者處接收該各自輸入資料之一向量。
- 如請求項1之方法,其中使該積體電路在該第一模式中操作包括操作該積體電路之該等微磚之各者以處理該各自輸入資料。
- 如請求項1之方法,其中使該積體電路在該第二模式中操作包括:操作該第一群組之該等微磚之各者以處理該各自第一輸入資料;及操作該第二群組之該等微磚之各者以處理自該延遲暫存器釋放之該各自第二輸入資料。
- 如請求項1之方法,其包括自一編譯器接收該第一準則及該第二準則之一指示。
- 一種積體電路,其包括:多個延遲暫存器,其等各連接至一對應第一匯流排線;多個微磚,該等微磚之一第一群組之各微磚連接至一對應第二匯流排線,且該等微磚之一第二群組之各微磚連接至該等第一匯流排線之一對應者;及一控制器,其經組態以:判定用於執行一運算之該等第一及第二微磚群組之一組態;當用於該等微磚之該組態滿足一第一準則時,控制該積體電路以在一第一模式中操作,其中經由該等第一及第二匯流排線在該多個微磚之各者處同時接收用於該運算之各自輸入資料;及 當用於該等微磚之該組態滿足一第二準則時,控制該積體電路以在一第二模式中操作,其中:在一第一時間,在該第一微磚群組之各微磚處同時接收用於該運算之各自第一輸入資料;在該第一時間,將用於該運算之第二輸入資料儲存於該等延遲暫存器之各者中;及在一第二時間,自該等延遲暫存器釋放該第二輸入資料及在該第二微磚群組之各微磚處接收該各自第二輸入資料。
- 如請求項13之積體電路,其包括連接至各第二匯流排線之一多工器,其中該多工器係經組態以控制該第一模式及該第二模式之間的轉變,且其中該多工器係經操作以在該第一模式中停用該等延遲暫存器,且該多工器係經操作以在該第二模式中啟用該等延遲暫存器,使得自該等延遲暫存器釋放之該各自第二輸入資料係在該第二微磚群組之各微磚處被接收。
- 如請求項13之積體電路,其中該等微磚係配置成一個二維陣列。
- 如請求項13之積體電路,其中該積體電路包括一特殊應用積體電路(ASIC)。
- 如請求項13之積體電路,其中該多個微磚之各者包括:多個運算胞元;一記憶體,其耦合至該等運算胞元;及 可控制匯流排線,其等經組態以將資料遞送至該多個微磚之各者或自該多個微磚之各者遞送資料。
- 如請求項13之積體電路,其中該等微磚之至少一者經組態以充當該控制器。
- 如請求項13之積體電路,其包括耦合至該多個微磚之一通信介面。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962886481P | 2019-08-14 | 2019-08-14 | |
US62/886,481 | 2019-08-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202107326A TW202107326A (zh) | 2021-02-16 |
TWI794636B true TWI794636B (zh) | 2023-03-01 |
Family
ID=72243244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109127786A TWI794636B (zh) | 2019-08-14 | 2020-08-14 | 積體電路及操作積體電路晶片之方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11811401B2 (zh) |
EP (1) | EP3824554B1 (zh) |
JP (1) | JP7423755B2 (zh) |
KR (1) | KR102664456B1 (zh) |
CN (1) | CN114223000B (zh) |
DK (1) | DK3824554T3 (zh) |
TW (1) | TWI794636B (zh) |
WO (1) | WO2021030653A1 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080061834A1 (en) * | 2005-10-05 | 2008-03-13 | Tatsuya Tetsukawa | Reconfigurable semiconductor intergrated circuit and processing assignment method for the same |
US7840914B1 (en) * | 2005-05-13 | 2010-11-23 | Massachusetts Institute Of Technology | Distributing computations in a parallel processing environment |
US8990651B2 (en) * | 2007-09-19 | 2015-03-24 | Tabula, Inc. | Integrated circuit (IC) with primary and secondary networks and device containing such an IC |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3810419B2 (ja) | 2004-12-07 | 2006-08-16 | 松下電器産業株式会社 | 再構成可能な信号処理プロセッサ |
JP4702159B2 (ja) | 2006-04-25 | 2011-06-15 | 富士ゼロックス株式会社 | 集積回路装置 |
CN101566972B (zh) * | 2009-05-12 | 2010-12-08 | 苏州国芯科技有限公司 | 嵌入式系统用户多分区存储空间访问权限的安全控制方法 |
JP2012194774A (ja) * | 2011-03-16 | 2012-10-11 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
US20140095847A1 (en) * | 2012-09-28 | 2014-04-03 | Doron Orenstein | Instruction and highly efficient micro-architecture to enable instant context switch for user-level threading |
US9660650B1 (en) * | 2014-03-13 | 2017-05-23 | Altera Corporation | Integrated circuits with improved register circuitry |
US9529947B1 (en) * | 2014-10-28 | 2016-12-27 | Altera Corporation | Register retiming and verification of an integrated circuit design |
US10152565B2 (en) * | 2015-06-03 | 2018-12-11 | Altera Corporation | Methods for performing register retiming operations into synchronization regions interposed between circuits associated with different clock domains |
US10324730B2 (en) * | 2016-03-24 | 2019-06-18 | Mediatek, Inc. | Memory shuffle engine for efficient work execution in a parallel computing system |
US10169518B1 (en) * | 2016-11-03 | 2019-01-01 | Intel Corporation | Methods for delaying register reset for retimed circuits |
US11360930B2 (en) | 2017-12-19 | 2022-06-14 | Samsung Electronics Co., Ltd. | Neural processing accelerator |
US11675588B2 (en) * | 2021-08-20 | 2023-06-13 | Micron Technology, Inc. | Tile-based result buffering in memory-compute systems |
-
2020
- 2020-08-14 CN CN202080057338.4A patent/CN114223000B/zh active Active
- 2020-08-14 TW TW109127786A patent/TWI794636B/zh active
- 2020-08-14 JP JP2022508894A patent/JP7423755B2/ja active Active
- 2020-08-14 US US17/634,744 patent/US11811401B2/en active Active
- 2020-08-14 DK DK20761984.2T patent/DK3824554T3/da active
- 2020-08-14 WO PCT/US2020/046287 patent/WO2021030653A1/en unknown
- 2020-08-14 EP EP20761984.2A patent/EP3824554B1/en active Active
- 2020-08-14 KR KR1020227004412A patent/KR102664456B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7840914B1 (en) * | 2005-05-13 | 2010-11-23 | Massachusetts Institute Of Technology | Distributing computations in a parallel processing environment |
US20080061834A1 (en) * | 2005-10-05 | 2008-03-13 | Tatsuya Tetsukawa | Reconfigurable semiconductor intergrated circuit and processing assignment method for the same |
US8990651B2 (en) * | 2007-09-19 | 2015-03-24 | Tabula, Inc. | Integrated circuit (IC) with primary and secondary networks and device containing such an IC |
Also Published As
Publication number | Publication date |
---|---|
EP3824554A1 (en) | 2021-05-26 |
KR20220032089A (ko) | 2022-03-15 |
EP3824554B1 (en) | 2022-10-05 |
JP7423755B2 (ja) | 2024-01-29 |
CN114223000B (zh) | 2023-06-06 |
WO2021030653A1 (en) | 2021-02-18 |
DK3824554T3 (da) | 2022-10-24 |
KR102664456B1 (ko) | 2024-05-10 |
US20220286135A1 (en) | 2022-09-08 |
US11811401B2 (en) | 2023-11-07 |
CN114223000A (zh) | 2022-03-22 |
JP2022544512A (ja) | 2022-10-19 |
TW202107326A (zh) | 2021-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI771675B (zh) | 控制流程屏障和可重組態的資料處理器 | |
US12057834B2 (en) | Application specific integrated circuit accelerators | |
US20040128474A1 (en) | Method and device | |
CN109634909B (zh) | 具有片上互连的混合可编程众核设备 | |
TW202129518A (zh) | 僅使用一單一側自多維陣列加載運算元及輸出結果 | |
CN101124569B (zh) | 微处理器结构 | |
TW202018501A (zh) | 並排式開關矩陣資料置換電路 | |
JP2023107786A (ja) | オンチップ動作の初期化 | |
US9992053B1 (en) | Multi-channel, multi-lane encryption circuitry and methods | |
TWI794636B (zh) | 積體電路及操作積體電路晶片之方法 | |
US20230153587A1 (en) | Stacked-Die Neural Network with Integrated High-Bandwidth Memory | |
US7505349B2 (en) | Refresh sequence control for multiple memory elements | |
CN101383188B (zh) | 一种胚胎电子系统 | |
JP2004151951A (ja) | アレイ型プロセッサ | |
US20020138718A1 (en) | Storage system for use in custom loop accelerators and the like | |
TW202109341A (zh) | 減少傳播延遲 | |
JP2004227512A (ja) | アレイ型プロセッサ | |
JP2007249744A (ja) | 演算処理ユニット | |
RU2004132094A (ru) | Устройство для сортировки двумерного массива данных |