TWI775402B - 資料處理電路及故障減輕方法 - Google Patents
資料處理電路及故障減輕方法 Download PDFInfo
- Publication number
- TWI775402B TWI775402B TW110114593A TW110114593A TWI775402B TW I775402 B TWI775402 B TW I775402B TW 110114593 A TW110114593 A TW 110114593A TW 110114593 A TW110114593 A TW 110114593A TW I775402 B TWI775402 B TW I775402B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- multiply
- sequence
- accumulate
- sequence data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0763—Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Optimization (AREA)
- Quality & Reliability (AREA)
- Neurology (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Selective Calling Equipment (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Radio Relay Systems (AREA)
Abstract
本發明實施例提供一種資料處理電路及故障減輕方法。在方法中,分割序列資料成為多個子序列。將子序列中的第一子序列自記憶體存取出來進行乘積累加運算,以得出第一運算結果。將子序列中的第二子序列在記憶體內進行乘積累加運算,以得出第二運算結果。組合第一運算結果及第二運算結果。第一運算結果及第二運算結果的組合結果相關於序列資料經乘積累加運算的結果。藉此,降低錯誤率,進而減輕故障。
Description
本發明是有關於一種資料處理機制,且特別是有關於一種資料處理電路及故障減輕方法。
神經網路(Neural Network)是人工智慧(Artificial Intelligence,AI)中的一個重要主題,並是透過模擬人類腦細胞的運作來進行決策。值得注意的是,人類腦細胞中存在著許多神經元(Neuron),而這些神經元會透過突觸(Synapse)來互相連結。其中,各神經元可經由突觸接收訊號,且此訊號經轉化後的輸出會再傳導到另一個神經元。各神經元的轉化能力不同,且人類透過前述訊號傳遞與轉化的運作,可形成思考與判斷的能力。神經網路即是依據前述運作方式來得到對應能力。
神經網路經常被應用在影像辨識、語音辨識或資料分析中。而在各神經元的運作中,輸入分量與對應突觸的權重相乘(可能加上偏置)後將經非線性函數(例如,激勵(activation)函數)運算而輸出,從而擷取特徵。無可避免地,用於儲存輸入值、權重值及函數參數的記憶體可能因良率不佳而造成部分儲存區塊故障/損壞(例如,硬性錯誤(hard error)),或是記憶體內運算(Computing in Memory,CIM)的其他因素(例如,不穩定的細胞電阻(cell resistance)、操作單元(Operation Unit,OU)大小或非理想電流感測)可能造成輸出錯誤,進而影響儲存資料的完成性或正確性。雖然記憶體內運算架構能改善處理效率及功耗,但卻可能伴隨著一定的錯誤率。
有鑑於此,本發明實施例提供一種資料處理電路及故障減輕方法,將馮諾伊曼(Von Neumann)架構與記憶體內運算架構結合,以改善全記憶體內運算的錯誤率。
本發明實施例的故障減輕方法包括(但不僅限於)下列步驟:分割序列資料成為多個子序列。將子序列中的第一子序列自記憶體存取出來進行乘積累加運算(Multiply Accumulate,MAC),以得出第一運算結果。將子序列中的第二子序列在記憶體內進行乘積累加運算,以得出第二運算結果。組合第一運算結果及第二運算結果。第一運算結果及第二運算結果的組合結果相關於序列資料經乘積累加運算的結果。
本發明實施例的資料處理電路包括(但不僅限於)記憶體、運算器及控制器。記憶體用於儲存序列資料。控制器耦接記憶體,並用以分割序列資料成為多個子序列。運算器耦接記憶體及控制器。控制器自記憶體存取子序列中的第一子序列出來,且運算器對第一子序列進行乘積累加運算,以得出第一運算結果。在記憶體內對子序列中的第二子序列進行乘積累加運算,以得出第二運算結果。運算器或記憶體組合第一運算結果及第二運算結果。第一運算結果及第二運算結果的組合結果相關於序列資料直接經乘積累加運算的結果。
基於上述,本發明實施例的資料處理電路及故障減輕方法,藉由記憶體外的運算器對序列資料中的部分子序列進行乘積累加運算,以改進全記憶體內運算的錯誤率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是依據本發明一實施例的資料處理電路100的元件方塊圖。請參照圖1,資料處理電路100包括(但不僅限於)記憶體110、運算器130及控制器150。
記憶體110可以是靜態或動態隨機存取記憶體(Random Access Memory,RAM)、唯讀記憶體(Read-Only Memory,ROM)、快閃記憶體(Flash Memory)、寄存器(Register)、組合邏輯電路(Combinational Circuit)或上述元件的組合。
在一實施例中,記憶體110用於儲存序列資料。序列資料可以是影像、語音或其他應用領域的資料、特徵擷取相關的乘積累加運算(Multiply Accumulate,MAC)所用的權重、及/或激勵(activation)運算所用的數值。在一實施例中,應用者可依據實際需求而決定記憶體110所儲存資料的類型。
在一實施例中,記憶體110可以是非揮發性(nonvolatile)記憶體,例如是相變半導體(Phase Change Memory,PCM)、可變電阻式記憶體(Resistive RAM,ReRAM)或磁阻式隨機存取記憶體(Magnetoresistive Random Access Memory,MRAM),並可作為神經網路加速器。記憶體110的細胞(cell)可執行諸如AND、OR、XOR等運算。即,實現記憶體內運算。以ReRAM為例,記憶體細胞的位元線(bit line,BL)與來源線(source line,SL)間的跨壓作為輸入值(例如,特徵值),權重則以縱向的方式儲存於記憶體細胞中。細胞的電流總和可累積於電容,再將數個電容上的電壓轉換成 數位訊號並加以運算即為乘積累加運算的結果。
運算器130可以是執行算數、邏輯運算操作的電路,亦可能是由一個或更多個乘法器及加法器組成的電路或處理器。運算器130可包括算術邏輯單位(Arithmetic and Logic Unit,ALU)、累加器、狀態暫存器及通用暫存器。在一實施例中,運算器130用以執行乘積累加運算。
控制器150耦接記憶體110及運算器130。控制器150可以是由多工器、加法器、乘法器、編碼器、解碼器、或各類型邏輯閘中的一者或更多者所組成的電路,並可以是中央處理單元(Central Processing Unit,CPU),或是其他可程式化之一般用途或特殊用途的微處理器(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application-Specific Integrated Circuit,ASIC)或其他類似元件或上述元件的組合。在一實施例中,控制器150的運作可透過軟體實現。在一些實施例中,運算器130和控制器150被整合成單一晶片。
在一實施例中,資料處理電路為馮諾伊曼架構。圖2A是依據本發明一實施例的馮諾伊曼(Von Neumann)架構的示意圖。請參照圖2A,在這架構中,資料流201的順序是,由控制器150對記憶體110存取資料並轉送至運算器130,且運算器130將運算結果(經由快取170)儲存至記憶體110。
在一實施例中,資料處理電路為記憶體內運算架構。圖2B是依據本發明一實施例的記憶體內運算架構的示意圖。請參照圖2B,這架構的匯流排(bus)連接203與馮諾伊曼架構相同。然而,與馮諾伊曼架構不同之處在於,資料流203是,在記憶體110內部傳遞。
值得注意的是,本發明實施例是結合馮諾伊曼架構及記憶體內運算架構。
下文中,將搭配資料處理電路100中的各項元件或電路說明本發明實施例所述之方法。本方法的各個流程可依照實施情形而隨之調整,且並不僅限於此。
圖3是依據本發明一實施例的故障減輕方法的流程圖。請參照圖3,控制器150分割序列資料成為多個子序列(步驟S310)。具體而言,序列資料例如是影像、語音、感測資料或其他應用領域相關的資料(例如,像素的灰階值、特徵值、強度值等)、乘積累加運算所用的權重或激勵運算所用的二進制或其他進制數值。序列資料中的數值依據特定規則(例如,像素位置、卷積核定義位置、運算順序等)排序。序列資料儲存於記憶體110的一個或更多個記憶體區塊中。
值得注意的是,在傳統的記憶體內運算架構中,針對乘積累加運算,輸入序列及權重序列的所有位元的乘積累加運算都是在記憶體內完成。例如,對8位元的輸入及8位元的權重的乘積累加運算,是直接8位元對8位元的運算。然而,經實驗可知,針對卷積神經網路(Convolutional Neural Network,CNN),執行卷積運算(Convolution)後,故障/損壞/錯誤的情況將嚴重影響影像辨識結果。例如,若故障發生在較高位元,則辨識成功率可能趨近於零。
基於前述事實,本發明實施例可將序列資料分割成多個子序列,並分配給馮諾伊曼架構及記憶體內運算架構分別實現運算。分割的方式例如是序列資料為8位元,則一個子序列為序列資料中的第0~3位元,且另一個子序列為序列資料中的第4~7位元。又例如,序列資料為16位元,則一個子序列為序列資料中的第0~5位元,另一個子序列為序列資料中的第6~9位元,且再一個子序列為序列資料中的第10~15位元。再例如,序列資料為32位元,則一個子序列為序列資料中的第0~16位元,另一個子序列為序列資料中的第10~31位元。也就是說,這些子序列是序列資料中的部分資料。不同子序列的內容可能在序列資料中的不同或相同位元位置,並視分割機制而有不同的位元位置分配。
在一實施例中,控制器150依據乘積累加運算的分解關係將序列資料分割成高位元組及低位元組。分解關係相關於將乘積累加運算分成多個次運算。
舉例而言,圖4A是依據本發明一實施例的4位元×4位元的乘積累加運算(Multiply Accumulate,MAC)的示意圖。請參照圖4A,假設輸入是由位元a
0~a
3組成,且權重是由位元b
0~b
3,則其有符號的乘積累加運算如圖所示。例如,“a
0b
0”代表位元a
0、b
0相乘,其餘依此類推。圖4B是依據本發明一實施例的2位元×2位元的次運算的示意圖。請參照圖4B,值得注意的是,若針對輸入及權重的低位元(例如,位元a
0、a
1、b
0、b
1)有符號的乘積累加運算,則需要進一步考慮輸入及權重的符號S
a、S
b。
由圖4A及圖4B的範例可知,4位元×4位元的乘積累加運算的結果為由不同位元組(例如,2位元×2位元)的乘積且部分乘積位移後相加的結果。而本發明實施例的次運算即是相較於乘積累加運算更少位元數的運算(但仍然是乘積累加運算)。例如,乘積累加運算是16位元×16位元,而次運算是12位元×12位元。
另一方面,自序列資料所分割出的高位元組及低位元組的位元數的總和等於序列資料。低位元組是相較於高位元組在序列資料中的位置較低。即,低位元組是二進制中較低位元權重,且高位元組是二進制中較高位元權重。例如,序列資料為8位元,則高位元組為序列資料中的第5~7位元,且低位元組為序列資料中的第0~4位元。
在一實施例中,高位元組及低位元組的位元數比例相關於序列資料所應用的神經網路。神經網路模組可以是Inception的任一版本、ResNet、AlexNet、SqueezeNet或其他模型。例如,Inception V1的位元數比例是高位元組的位元數大於低位元組的位元數。例如,序列資料為28位元,則高位元組為序列資料的第10~27位元,且低位元組為序列資料的第0~9位元。
在另一實施例中,高位元組及低位元組的位元數比例也可能是亂數決定或基於其他規則。
在一些實施例中,序列資料不限於分割成兩個子序列(例如,高位元組及低位元組),且可能包括更多子序列。例如,序列資料分割成四個子序列。
控制器150將那些子序列中的第一子序列自記憶體110存取出來進行乘積累加運算,以得出第一運算結果(步驟S330)。具體而言,控制器150自記憶體110存取那些子序列中的第一子序列出來,且運算器130對第一子序列進行乘積累加運算,以得出第一運算結果。請參照圖2A所示的馮諾伊曼架構,針對運算器130所欲運算的輸入、權重或其他資料,控制器150會自記憶體110存取這些資料,並轉送至運算器130。而相較於傳統技術直接存取整筆序列資料,本發明實施例是僅存取序列資料中的部分資料(即,子序列)。
另一方面,將那些子序列中的第二子序列在記憶體110內進行乘積累加運算,以得出第二運算結果(步驟S350)。換句而言,在記憶體110內對那些子序列中的第二子序列進行乘積累加運算,以得出第二運算結果。請參照圖2B所示的記憶體內運算架構,記憶體110可直接對運算的輸入、權重或其他資料進行乘積累加運算。也就是說,序列資料中的部分資料(即,子序列)由記憶體110運算,而非全部資料皆由記憶體110運算。
在一實施例中,若序列資料分割成高位元組及低位元組,則第一子序列為高位元組,且第二序列為低位元組。即,透過運算器130對高位元組運算,且透過記憶體110對低位元組運算。以inception V1為例,假設序列資料的整數部分有14個位元,且其分數部分有14個位元,則第一子序列為序列資料中的第10~27位元,且第二子序列為序列資料中的第0~9位元。另,假設序列資料的整數部分有16個位元,且其分數部分有16個位元,則第一子序列為序列資料中的第13~15位元,且第二子序列為序列資料中的第0~12位元。
在另一實施例中,第一子序列也可能是低位元組,且第二序列為高位元組。在一些實施例中,第一子序列或第二子序列在序列資料中的位置不限於低位元組或高位元組。以16位元的序列資料為例,第一子序列為序列資料中的第2~5位元,且第二子序列為序列資料中的第7~13位元。
圖5是依據本發明一實施例的管線階段(pipeline stage)的示意圖。請參照圖5,在一實施例中,第一子序列ss1及第二子序列ss2的乘積累加運算執行在單一管線階段(pipeline stage)。也就是說,對第一子序列ss1及第二子序列ss2的乘積累加運算可併行/同時處理。由於第一子序列ss1及第二子序列ss2分別交由記憶體110及運算器130運算,因此可實現兩乘積累加運算在單一管線階段。此外,下一筆序列資料所分割出的第三子序列ss3及第四子序列ss4也可分別且同時由記憶體110及運算器130運算。
在一實施例中,第一子序列ss1及第二子序列ss2的乘積累加運算也可執行在不同階段。
運算器130或記憶體110組合第一運算結果及第二運算結果(步驟S370)。具體而言,第一運算結果及第二運算結果的組合結果相關於序列資料直接經乘積累加運算的結果。例如,第一運算結果是針對高位元組,且第二運算結果是針對低位元組,則第一運算結果可經位移再與第一運算結果相加,且其運算結果等於序列資料直接經乘積累加運算的結果。須說明的是,基於不同分割機制,第一及第二運算結果的組合方式可能不同。例如,運算結果位移的位元數不同。
例如,輸入為[7 6]且權重為[1 2]^T,則對輸入及權重的矩陣相乘可分解成7×1(二進制為0111×01)與6×2(二進制為0110×10)。0111×01可進一步分解成01×01與11×01(即,次運算),且0110×10可進一步分解成01×10與10×10(即,次運算)。其中,11×01與10×10可由記憶體110計算,且01×01與01×10可由運算器130運算。最後,01×01與01×10的運算結果需往高位元位移兩個位元再與11×01及10×10相加,即可同樣得出矩陣[7 6]與[1 2]^T相乘的運算結果。
在一實施例中,序列資料的數值先經校正而形成一種數值分布。這數值分布在數值較高及/或數值較低的出現頻率較高。舉例而言,圖6是依據本發明一實施例的數值分布的示意圖。請參照圖6,數值越高或數值越低的發生頻率較高。
綜上所述,在本發明實施例的資料處理電路及故障減輕方法中,將序列資料中的部分資料(即,多個子序列)分別交由運算器及記憶體運算。例如,透過記憶體對序列資料中的低位元組運算,且透過運算器對高位元組運算。藉此,相較於僅記憶體內運算,能降低錯誤率,並能減輕故障。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100:資料處理電路
110:記憶體
130:運算器
150:控制器
170:快取
201、205:資料流
203:匯流排連接
S310~S370: 步驟
a
0~a
3、b
0~b
3:數值
S
a、S
b:符號
ss1:第一子序列
ss2:第二子序列
ss3:第三子序列
ss4:第四子序列
圖1是依據本發明一實施例的資料處理電路的元件方塊圖。
圖2A是依據本發明一實施例的馮諾伊曼(Von Neumann)架構的示意圖。
圖2B是依據本發明一實施例的記憶體內運算架構的示意圖。
圖3是依據本發明一實施例的故障減輕方法的流程圖。
圖4A是依據本發明一實施例的4位元×4位元的乘積累加運算(Multiply Accumulate,MAC)的示意圖。
圖4B是依據本發明一實施例的2位元×2位元的次運算的示意圖。
圖5是依據本發明一實施例的管線階段(pipeline stage)的示意圖。
圖6是依據本發明一實施例的數值分布的示意圖。
S310~S370:步驟
Claims (8)
- 一種故障減輕方法,包括: 分割一序列資料成為多個子序列; 將該些子序列中的一第一子序列自一記憶體存取出來進行一乘積累加運算(Multiply Accumulate,MAC),以得出一第一運算結果; 將該些子序列中的一第二子序列在該記憶體內進行該乘積累加運算,以得出一第二運算結果;以及 組合該第一運算結果及該第二運算結果,其中該第一運算結果及該第二運算結果的組合結果相關於該序列資料直接經該乘積累加運算的結果。
- 如請求項1所述的故障減輕方法,其中分割該序列資料成為該些子序列的步驟包括: 依據該乘積累加運算的一分解關係將該序列資料分割成一高位元組及一低位元組,其中該分解關係相關於將該乘積累加運算分成多個次運算,該高位元組及該低位元組的位元數的總和等於該序列資料,該第一子序列為該高位元組,且該第二序列為該低位元組。
- 如請求項2所述的故障減輕方法,其中該高位元組及該低位元組的位元數比例相關於該序列資料所應用的一神經網路(Neural Network)。
- 如請求項1所述的故障減輕方法,其中該第一子序列及該第二子序列的該乘積累加運算執行在單一管線階段(pipeline stage)。
- 一種資料處理電路,包括: 一記憶體,用於儲存一序列資料; 一控制器,耦接該記憶體,並用以分割該序列資料成為多個子序列;以及 一運算器,耦接該記憶體及該控制器,其中 該控制器自該記憶體存取該些子序列中的一第一子序列出來,且該運算器對該第一子序列進行一乘積累加運算,以得出一第一運算結果; 在該記憶體內對該些子序列中的一第二子序列進行該乘積累加運算,以得出一第二運算結果;以及 該運算器或該記憶體組合該第一運算結果及該第二運算結果,其中該第一運算結果及該第二運算結果的組合結果相關於該序列資料直接經該乘積累加運算的結果。
- 如請求項5所述的資料處理電路,其中該控制器依據該乘積累加運算的一分解關係將該序列資料分割成一高位元組及一低位元組,其中該分解關係相關於將該乘積累加運算分成多個次運算,該高位元組及該低位元組的位元數的總和等於該序列資料,該第一子序列為該高位元組,且該第二序列為該低位元組。
- 如請求項6所述的資料處理電路,其中該高位元組及該低位元組的位元數比例相關於該序列資料所應用的一神經網路。
- 如請求項5所述的資料處理電路,其中該第一子序列及該第二子序列的該乘積累加運算執行在單一管線階段。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW110114593A TWI775402B (zh) | 2021-04-22 | 2021-04-22 | 資料處理電路及故障減輕方法 |
| US17/509,064 US11977432B2 (en) | 2021-04-22 | 2021-10-25 | Data processing circuit and fault-mitigating method |
| CN202210429752.4A CN115238875A (zh) | 2021-04-22 | 2022-04-22 | 数据处理电路及故障减轻方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW110114593A TWI775402B (zh) | 2021-04-22 | 2021-04-22 | 資料處理電路及故障減輕方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI775402B true TWI775402B (zh) | 2022-08-21 |
| TW202242875A TW202242875A (zh) | 2022-11-01 |
Family
ID=83667869
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110114593A TWI775402B (zh) | 2021-04-22 | 2021-04-22 | 資料處理電路及故障減輕方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11977432B2 (zh) |
| CN (1) | CN115238875A (zh) |
| TW (1) | TWI775402B (zh) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6640248B1 (en) * | 1998-07-10 | 2003-10-28 | Malibu Networks, Inc. | Application-aware, quality of service (QoS) sensitive, media access control (MAC) layer |
| WO2019025864A2 (en) * | 2017-07-30 | 2019-02-07 | Sity Elad | ARCHITECTURE OF DISTRIBUTED PROCESSORS BASED ON MEMORIES |
| US20190102170A1 (en) * | 2018-09-28 | 2019-04-04 | Intel Corporation | Techniques for current-sensing circuit design for compute-in-memory |
| US10340003B1 (en) * | 2018-07-06 | 2019-07-02 | National Tsing Hua University | Input-pattern aware reference generation system and computing-in-memory system including the same |
| US20200026498A1 (en) * | 2019-09-27 | 2020-01-23 | Intel Corporation | Compute in/near memory (cim) circuit architecture for unified matrix-matrix and matrix-vector computations |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5218564A (en) * | 1991-06-07 | 1993-06-08 | National Semiconductor Corporation | Layout efficient 32-bit shifter/register with 16-bit interface |
| EP3671748A1 (en) * | 2018-12-21 | 2020-06-24 | IMEC vzw | In-memory computing for machine learning |
| US10782933B2 (en) * | 2019-04-28 | 2020-09-22 | Alibaba Group Holding Limited | Computer data processing method and apparatus for large number operations |
| CN110262773B (zh) * | 2019-04-28 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 一种计算机数据处理方法及装置 |
| US11531898B2 (en) * | 2019-05-16 | 2022-12-20 | International Business Machines Corporation | Training of artificial neural networks |
| US11562212B2 (en) * | 2019-09-09 | 2023-01-24 | Qualcomm Incorporated | Performing XNOR equivalent operations by adjusting column thresholds of a compute-in-memory array |
-
2021
- 2021-04-22 TW TW110114593A patent/TWI775402B/zh active
- 2021-10-25 US US17/509,064 patent/US11977432B2/en active Active
-
2022
- 2022-04-22 CN CN202210429752.4A patent/CN115238875A/zh not_active Withdrawn
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6640248B1 (en) * | 1998-07-10 | 2003-10-28 | Malibu Networks, Inc. | Application-aware, quality of service (QoS) sensitive, media access control (MAC) layer |
| WO2019025864A2 (en) * | 2017-07-30 | 2019-02-07 | Sity Elad | ARCHITECTURE OF DISTRIBUTED PROCESSORS BASED ON MEMORIES |
| US10340003B1 (en) * | 2018-07-06 | 2019-07-02 | National Tsing Hua University | Input-pattern aware reference generation system and computing-in-memory system including the same |
| US20190102170A1 (en) * | 2018-09-28 | 2019-04-04 | Intel Corporation | Techniques for current-sensing circuit design for compute-in-memory |
| US20200026498A1 (en) * | 2019-09-27 | 2020-01-23 | Intel Corporation | Compute in/near memory (cim) circuit architecture for unified matrix-matrix and matrix-vector computations |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115238875A (zh) | 2022-10-25 |
| US11977432B2 (en) | 2024-05-07 |
| US20220342736A1 (en) | 2022-10-27 |
| TW202242875A (zh) | 2022-11-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109543816B (zh) | 一种基于权重捏合的卷积神经网络计算方法和系统 | |
| CN107832082B (zh) | 一种用于执行人工神经网络正向运算的装置和方法 | |
| US11620508B2 (en) | Vector computation unit in a neural network processor | |
| TWI701612B (zh) | 用於神經網路中激勵函數的電路系統及其處理方法 | |
| US20190332945A1 (en) | Apparatus and method for compression coding for artificial neural network | |
| CN110826719B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
| CN107967132B (zh) | 一种用于神经网络处理器的加法器和乘法器 | |
| CN109359269A (zh) | 进行矩阵向量乘法运算的系统及进行神经网络运算方法 | |
| Guo et al. | Att: A fault-tolerant reram accelerator for attention-based neural networks | |
| CN111652359A (zh) | 用于矩阵运算的乘法器阵列和用于卷积运算的乘法器阵列 | |
| US11526328B2 (en) | Computation method and apparatus exploiting weight sparsity | |
| Zhang et al. | A practical highly paralleled ReRAM-based DNN accelerator by reusing weight pattern repetitions | |
| US12236208B2 (en) | Integrated circuit for constant multiplication and device including the same | |
| Diware et al. | Unbalanced bit-slicing scheme for accurate memristor-based neural network architecture | |
| CN115311506B (zh) | 基于阻变存储器的量化因子优化的图像分类方法及装置 | |
| TWI775402B (zh) | 資料處理電路及故障減輕方法 | |
| CN113705784B (zh) | 一种基于矩阵共享的神经网络权重编码方法及硬件系统 | |
| CN115964015A (zh) | 一种基于存内计算的稀疏矩阵稠密乘法加速器 | |
| CN110458277A (zh) | 适用于深度学习硬件加速器的可配置精度的卷积硬件结构 | |
| JP2020013455A (ja) | 畳み込みニューラルネットワークの層において畳み込み演算処理を行なう情報処理装置 | |
| TWI844108B (zh) | 積體電路及操作方法 | |
| CN111710356A (zh) | 编码型闪存装置和编码方法 | |
| CN110059814A (zh) | 一种基于fpga的查找表式卷积运算硬件结构 | |
| KR102412872B1 (ko) | 프로세싱 엘리먼트, 이의 동작 방법, 및 이를 포함하는 가속기 | |
| WO2025055033A1 (zh) | 一种用于人工智能计算的方法、设备及介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| GD4A | Issue of patent certificate for granted invention patent |