[go: up one dir, main page]

TWI847030B - 矩陣乘法器及其操作方法 - Google Patents

矩陣乘法器及其操作方法 Download PDF

Info

Publication number
TWI847030B
TWI847030B TW110116144A TW110116144A TWI847030B TW I847030 B TWI847030 B TW I847030B TW 110116144 A TW110116144 A TW 110116144A TW 110116144 A TW110116144 A TW 110116144A TW I847030 B TWI847030 B TW I847030B
Authority
TW
Taiwan
Prior art keywords
input
multiplication
circuit
value
row
Prior art date
Application number
TW110116144A
Other languages
English (en)
Other versions
TW202244754A (zh
Inventor
陳建文
阮郁善
張志維
林永隆
Original Assignee
創鑫智慧股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 創鑫智慧股份有限公司 filed Critical 創鑫智慧股份有限公司
Priority to TW110116144A priority Critical patent/TWI847030B/zh
Priority to CN202110633358.8A priority patent/CN115310032A/zh
Priority to US17/391,045 priority patent/US12086206B2/en
Publication of TW202244754A publication Critical patent/TW202244754A/zh
Application granted granted Critical
Publication of TWI847030B publication Critical patent/TWI847030B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)
  • Nuclear Medicine (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

一種矩陣乘法器及其操作方法。矩陣乘法器包含多條第一輸入線、多條第二輸入線以及運算陣列。運算陣列包括多個乘加運算胞。乘加運算胞中的第一乘加運算胞耦接至第一輸入線中的對應第一輸入線與第二輸入線中的對應第二輸入線,以接收第一輸入值與第二輸入值來進行乘加運算。當第一輸入值以及第二輸入值其中至少一者為指定值時,第一乘加運算胞的乘加運算為禁能。

Description

矩陣乘法器及其操作方法
本發明是有關於一種乘法器,且特別是有關於一種矩陣乘法器及其操作方法。
在人工智慧(artificial intelligence, AI)中,往往會使用到具有多層感知器結構的類神經網路(neural network),其中每層感知器可執行矩陣乘法計算,再將矩陣乘法的結果以激勵函數轉換後,做為下一層感知器的輸入矩陣。一方面而言,由於在現有應用中,大量地使用整流線性函數(rectified linear unit, ReLU)作為激勵函數,導致矩陣乘法完所產生的負值經過整流線性函數被轉換為零。另一方面而言,隨著修剪(pruning)技術亦大量地應用在類神經網路中,導致矩陣中大量的值被修剪為零。如此一來,在現有的人工智慧及類神經網路中的運算中,會包含有大量數值為零的矩陣乘法運算。
本發明提供一種矩陣乘法器及其操作方法,其可節省進行矩陣乘法時的功率消耗。
在本發明的一實施例中,上述的矩陣乘法器包含多條第一輸入線、多條第二輸入線以及運算陣列。運算陣列包括多個乘加運算胞。乘加運算胞中的第一乘加運算胞耦接至第一輸入線中的對應第一輸入線與第二輸入線中的對應第二輸入線,以接收第一輸入值與第二輸入值來進行乘加運算。當第一輸入值以及第二輸入值其中至少一者為指定值時,第一乘加運算胞的乘加運算為禁能。
在本發明的一實施例中,上述的操作方法包括:由運算陣列的多個乘加運算胞中的第一乘加運算胞從多條第一輸入線中的對應第一輸入線與多條第二輸入線中的對應第二輸入線分別接收第一輸入值與第二輸入值,來進行乘加運算;以及當第一輸入值以及第二輸入值其中至少一者為指定值時,禁能第一乘加運算胞的乘加運算。
基於上述,本發明的矩陣乘法器及其操作方法可依據第一輸入值及第二輸入值來禁能運算陣列中,對應行或對應列所進行的乘加運算,故有效降低進行矩陣乘法時的功率消耗。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1為依照本發明一實施例的矩陣乘法器1的電路方塊(circuit block)示意圖。圖1所示矩陣乘法器1包含第一輸入線WL1~WLn、第二輸入線AL1~ALm及運算陣列10。運算陣列10可從第一輸入線WL1~WLn分別接收第一輸入值W1x~Wnx,並且從第二輸入線AL1~ALm分別接收第二輸入值Ax1~Axm。運算陣列10可以依據第一輸入值W1x~Wnx、第二輸入值Ax1~Axm來進行矩陣乘法運算。
詳細而言,運算陣列10包含n*m個乘加運算胞C11、…、C1m、…、Cn1、…、Cnm,其中m與n是依照實際設計所決定的整數。每個乘加運算胞耦接於第一輸入線WL1~WLn中的一條對應第一輸入線與第二輸入線AL1~ALm中的一條對應第二輸入線。如此一來,乘加運算胞可接收對應的第一輸入值與對應的第二輸入值來進行乘加運算。例如,乘加運算胞C11耦接至對應第一輸入線WL1與對應第二輸入線AL1以接收第一輸入值W1x與第二輸入值Ax1來進行乘加運算。
圖2為圖1所繪示的矩陣乘法器1所進行的矩陣乘法運算的具體範例示意圖。以下請共同參考圖1、2來理解下方關於矩陣乘法器1的操作說明。詳細而言,矩陣乘法器1可用來計算兩矩陣W、A的乘法運算,其中矩陣W可為n列y行,矩陣A可為y列m行。首先,矩陣W第一行的多個第一輸入值W11~Wn1可分別被提供至矩陣乘法器1的第一輸入線WL1~WLn(作為圖1所示第一輸入值W1x~Wnx),而矩陣A第一列的多個第二輸入值A11~A1m可分別被提供至矩陣乘法器1的第二輸入線AL1~ALm(作為圖1所示第二輸入值Ax1~Axm),使乘加運算胞C11~Cnm的每一個可以計算第一輸入值W11~Wn1的其中一對應者以及第二輸入值A11~A1m的其中一對應者的乘積,並且累加此乘積做為乘積累加值。至此,矩陣乘法器1完成了對矩陣W的第一行及矩陣A的第一列的乘加運算。
在矩陣乘法器1完成了矩陣W的第一行及矩陣A的第一列的乘加運算之後,可接著進行矩陣W的第二行及矩陣A的第二列的乘加運算。矩陣W的第二行的第一輸入值W12~Wn2分別被提供至第一輸入線WL1~WLn(作為圖1所示第一輸入值W1x~Wnx),並且矩陣A的第二列的第二輸入值A21~A2m分別被提供至第二輸入線AL1~ALm(作為圖1所示第二輸入值Ax1~Axm)。如此一來,乘加運算胞C11~Cnm的每一個可以計算第一輸入值W12~Wn2的其中一對應者以及第二輸入值A21~A2m的其中一對應者的乘積,再將所計算出的乘積累加至所述乘積累加值。
依此類推,矩陣W的每一行及矩陣A的每一列的可被依序提供至矩陣乘法器1來進行乘加運算。當矩陣乘法器1完成了矩陣W的所有行以及矩陣A的所有列的乘加運算之後,矩陣乘法器1即完成了矩陣W與矩陣A的矩陣乘法運算。矩陣乘法器1可將所有乘加運算胞C11~Cnm中所儲存的乘積累加值輸出,即為矩陣W及矩陣A的矩陣乘法結果。
舉例而言,以乘加運算胞C11來說,首先在第一運算期間,乘加運算胞C11可先從第一輸入線WL1接收到第一輸入值W11,並從第二輸入線AL1接收到第二輸入值A11。乘加運算胞C11可計算第一輸入值W11及第二輸入值A11兩者的乘積,並將兩者的乘積儲存為乘積累加值。接著在第一運算期間後的第二運算期間,乘加運算胞C11可再從第一輸入線WL1接收到第一輸入值W12,並從第二輸入線AL1接收到第二輸入值A21,並計算第一輸入值W12及第二輸入值A21兩者的乘積。進一步,乘加運算胞C11可將第一輸入值W12及第二輸入值A21兩者的乘積與所儲存的乘積累加值(也就是第一輸入值W11及第二輸入值A11兩者的乘積)進行加總,並以此加總的結果更新所述乘積累加值。此時,乘加運算胞C11的所述乘積累加值為「W11*A11 + W12*A21」。以此類推,隨著矩陣W的所有行及矩陣A的所有列被提供至矩陣乘法器1之後(在第y運算期間結束後),乘加運算胞C11可計算出第一輸入值W11~W1y分別與第二輸入值A11~Ay1的乘積累加值,也就是「W11*A11 + W12*A21 + … + W1y*Ay1」。
值得注意的是,在一些應用中,矩陣W以及(或是)矩陣A的元素可以是一個預知的指定值(例如「0」或其他值)。舉例來說,類神經網路(neural network)中的多層感知器(multilayer perceptron)一般被用來對參數矩陣(weight matrix)與激勵矩陣(activation matrix)做矩陣乘法運算,然後將矩陣乘法結果經過激勵函數(activation function,例如整流線性單位函數ReLU)後成為新的激勵矩陣。函數ReLU(或是其他激勵函數)會使負數變成零,因此新的激勵矩陣內的元素值約有一半會是零。此外,由於修剪(pruning)的技術被大量使用在神經網路的模型中,修剪技術也導致參數矩陣內的值被大量修剪(prune)為零。可想而知,當矩陣W以及(或是)矩陣A的某一個元素值為「0」時,運算陣列10對這個元素值「0」所進行的乘加運算是多餘的。以元素值「0」所進行的乘加運算為多餘的,其亦會消耗功率。隨著矩陣的尺寸越大,運算陣列10的功耗也越大。
圖3為依照本發明一實施例矩陣乘法器的操作方法的流程示意圖。在步驟S310中,運算陣列10中的一個乘加運算胞從第一輸入線WL1~WLn中的一條對應第一輸入線與第二輸入線AL1~ALm中的一條對應第二輸入線分別接收第一輸入值與第二輸入值來進行一乘加運算。以乘加運算胞C11為例,乘加運算胞C11可以從對應第一輸入線WL1與對應第二輸入線AL1分別接收第一輸入值W1x與第二輸入值Ax1來進行乘加運算。步驟S320可以判斷第一輸入值W1x或第二輸入值Ax1是否為指定值。在一些實施例中,步驟S320可以由乘加運算胞C11執行。在另一些實施例中,步驟S320可以由乘加運算胞C11的前級電路(例如圖5所示列輸入電路43-1~43-n與行輸入電路44-1~44-m)執行。
當第一輸入值以及第二輸入值的其中至少一者為指定值時(步驟S320的判斷結果為「是」),則乘加運算胞所進行的乘加運算可以被禁能(disabled)(步驟S330)。當第一輸入值以及第二輸入值都不是指定值時(步驟S320的判斷結果為「否」),則乘加運算胞所進行的乘加運算可以被致能(enabled)(步驟S340)。乘加運算胞C11~Cnm可在接收的第一值及第二輸入值的至少其中之一為指定值時,來禁能乘加運算的執行。乘加運算胞C11~Cnm的每一個可以獨立地被禁能(或致能)。以乘加運算胞C11為例,當第一輸入值W1x以及第二輸入值Ax1的其中至少一者為「0」(指定值)時,步驟S330可以禁能乘加運算胞C11所進行的乘加運算,以節省功耗。當第一輸入值W1x以及第二輸入值Ax1都不為「0」(指定值)時,步驟S340可以致能乘加運算胞C11所進行的乘加運算。運算陣列10的其他乘加運算胞可以參照乘加運算胞C11的相關說明去類推,故不再贅述。如此一來,以運算陣列10整體來看,當第一輸入值W1x~Wnx的其中一者為「0」(指定值)時,運算陣列10中對應該第一輸入值「0」的整列乘加運算胞的乘加運算可以被禁能,以節省功耗。同樣地,當第二輸入值Ax1~Axm的其中一者為「0」(指定值)時,運算陣列10中對應該第二輸入值「0」的整行乘加運算胞的乘加運算可以被禁能,以節省功耗。
圖4為依照本發明實施例說明圖1所示乘加運算胞C11的電路方塊示意圖。接下來請共同參考圖1與圖4來理解下方關於乘加運算胞C11的說明。圖1所示運算陣列10的其他乘加運算胞可以參照圖4所示乘加運算胞C11的相關說明去類推,故不再贅述。
圖4所示乘加運算胞C11包含乘加運算電路41以及控制電路32。乘加運算電路41耦接至對應第一輸入線WL1與對應第二輸入線AL1,以接收第一輸入值W1x與第二輸入值Ax1來進行乘加運算。圖4所示「O11」表示乘加運算胞C11的乘加運算的運算結果(乘積累加值)。控制電路32控制乘加運算電路41。當第一輸入值W1x以及第二輸入值Ax1其中至少一者為「0」(指定值)時,控制電路32可以禁能乘加運算電路41的乘加運算,以節省功耗。當第一輸入值W1x以及第二輸入值Ax1都不為「0」(指定值)時,控制電路32可以致能乘加運算電路41的乘加運算。
在圖4所示實施例中,乘加運算電路41包括暫存器REG1、暫存器REG2以及乘加電路31。暫存器REG2的輸入端耦接對應第一輸入線WL1,以接收第一輸入值W1x。暫存器REG2依據時脈訊號Clk2去鎖存第一輸入值W1x。暫存器REG1的輸入端耦接對應第二輸入線AL1,以接收第二輸入值Ax1。第二暫存器REG1依據時脈訊號Clk1去鎖存第二輸入值Ax1。乘加電路31耦接暫存器REG1的輸出端以及暫存器REG2的輸出端。乘加電路31可以依據時脈訊號Clk3對暫存器REG1的輸出以及暫存器REG2的輸出進行乘加運算,以輸出乘積累加值O11。當第一輸入值W1x以及第二輸入值Ax1其中至少一者為「0」(指定值)時,控制電路32可以遮蔽(不提供)時脈訊號Clk1、時脈訊號Clk2與時脈訊號Clk3中的至少一者,以禁能乘加電路31的乘加運算。
在圖4所示實施例中,乘加電路31包含乘加器310及暫存器REG3。暫存器REG3可以儲存乘積累加值O11。乘加器310耦接暫存器REG1、暫存器REG2及暫存器REG3。乘加器310可以計算暫存器REG1的輸出以及暫存器REG2的輸出的乘積(例如W1x * Ax1)。乘加器310可以計算此乘積與乘積累加值O11的總和(例如W1x * Ax1 + O11)。乘加器可以將此總和提供至暫存器REG3,以更新乘積累加值O11。暫存器REG3可以依據時脈訊號Clk3更新乘積累加值O11。控制電路32可接收時脈訊號Clk來產生適合的時脈訊號Clk1、Clk2與Clk3至暫存器REG1、REG2與REG3的觸發端。於第一輸入值W1x與(或)第二輸入值Ax1為指定值時,控制電路32可以遮蔽(不提供)時脈訊號Clk1、Clk2與Clk3,藉以禁能乘加運算胞C11所進行的乘加運算,避免額外的功率消耗。
具體來說,當第一輸入值W1x或第二輸入值Ax1為指定值時,時脈訊號Clk1~Clk3被遮蔽來禁能乘加運算胞C11的乘加運算。因為乘加運算胞C11中的暫存器REG1~REG3不會被觸發,暫存器REG1~REG3及乘加器310中不會有訊號的傳遞及撥動(toggle)(不會進行乘加運算),所以乘加運算電路41的功耗可以被有效降低。因此,乘加運算胞C11可有效地透過遮蔽時脈訊號Clk1~Clk3來節省進行矩陣乘法時的功率消耗。
在圖4所示實施例中,控制電路32包含運算遮蔽電路320、閘控電路321、閘控電路322及暫存器REG4。運算遮蔽電路320的輸出端耦接閘控電路321的控制端及暫存器REG4的輸入端。暫存器REG4的輸出端耦接於閘控電路322的控制端。運算遮蔽電路320的兩個輸入端可以分別接收第一輸入值W1x及第二輸入值Ax1,以自行判斷第一輸入值W1x及第二輸入值Ax1中的任一個是否為指定值(例如0),以產生運算遮蔽訊號M11。運算遮蔽電路320可將運算遮蔽訊號M11提供至閘控電路321與暫存器REG4,而暫存器REG4可以將運算遮蔽訊號M11提供至閘控電路322。當第一輸入值W1x為「0」以及(或是)第二輸入值Ax1為「0」時,運算遮蔽訊號M11可以為第一邏輯準位(例如低準位)。當第一輸入值W1x不為「0」以及第二輸入值Ax1不為「0」時,運算遮蔽訊號M11可以為第二邏輯準位(例如高準位)。
閘控電路321的控制端耦接至運算遮蔽電路320的輸出端,以接收運算遮蔽訊號M11。閘控電路321的輸出端耦接至暫存器REG1的觸發端及暫存器REG2的觸發端,以控制乘加運算電路41的乘加運算。閘控電路321可接收時脈訊號Clk以產生時脈訊號Clk1與Clk2。舉例來說,閘控電路321可以依據運算遮蔽訊號M11來決定是否提供時脈訊號Clk1與時脈訊號Clk2至暫存器REG1的觸發端及暫存器REG2的觸發端。
暫存器REG4的輸入端耦接運算遮蔽電路320的輸出端,以接收運算遮蔽訊號M11。閘控電路322的控制端耦接至暫存器REG4的輸出端。閘控電路322的輸出端耦接至暫存器REG3的觸發端。閘控電路322可接收時脈訊號Clk以產生時脈訊號Clk3給暫存器REG3的觸發端。閘控電路322可依據暫存器REG4的輸出(運算遮蔽訊號M11)來決定是否提供時脈訊號Clk3至暫存器REG3的觸發端。
圖5為依照本發明另一實施例的一種矩陣乘法器4的電路方塊示意圖。圖5所示矩陣乘法器4包含列輸入電路43-1~43-n、行輸入電路44-1~44-m、第一輸入線WL1~WLn、第二輸入線AL1~ALm及運算陣列40。列輸入電路43-1~43-n可分別接收第一輸入值W1x~Wnx,並提供第一輸入值W1x~Wnx及列遮蔽訊號MW1~MWn至運算陣列40。行輸入電路44-1~44-m可分別接收第二輸入值Ax1~Axm,並提供第二輸入值Ax1~Axm及行遮蔽訊號MA1~MAm至運算陣列40。
運算陣列40包含n*m個乘加運算胞C11’、…、C1m’、…、Cn1’、…、Cnm’,其中m與n是依照實際設計所決定的整數。運算陣列40可依據第一輸入值W1x~Wnx及第二輸入值Ax1~Axm進行乘加運算。圖5所示矩陣乘法器4、第一輸入線WL1~WLn、第二輸入線AL1~ALm、運算陣列40與乘加運算胞C11’~Cnm’可以參照圖1所示矩陣乘法器1、第一輸入線WL1~WLn、第二輸入線AL1~ALm、運算陣列10與乘加運算胞C11~Cnm的相關說明去類推。不同於圖1所示實施例之處在於,圖5所示運算陣列40可依據行遮蔽訊號MA1~MAm來決定是否禁能運算陣列40中對應行的乘加運算胞的乘加運算,且運算陣列40可依據列遮蔽訊號MW1~MWn來決定是否禁能運算陣列40中對應列的乘加運算胞的乘加運算。
具體來說,以列輸入電路43-1為例,列輸入電路43-1接收第一輸入值W1x,列輸入電路43-1判斷第一輸入值W1x是否為指定值(例如0)以產生列遮蔽訊號MW1,以及列輸入電路43-1將列遮蔽訊號MW1提供至連接對應第一輸入線WL1的這些乘加運算胞C11’~C1m’。當列輸入電路43-1判斷第一輸入值W1x為「0」(指定值)時,列輸入電路43-1可遮蔽第一輸入值W1x(不提供第一輸入值W1x至第一輸入線WL1)。同時,列輸入電路43-1還可提供列遮蔽訊號MW1給連接第一輸入線WL1的這些乘加運算胞C11’~C1m’,以指示「第一輸入值W1x為「0」(指定值)」。當列遮蔽訊號MW1表示第一輸入值W1x為「0」(指定值)時,連接對應第一輸入線WL1的這些乘加運算胞C11’~C1m’的乘加運算可以被選擇性地禁能,以節省功耗。當列輸入電路43-1判斷第一輸入值W1x不為「0」(指定值)時,列輸入電路43-1可將第一輸入值W1x提供至第一輸入線WL1,以及列輸入電路43-1還可提供指示「第一輸入值W1x不為「0」(指定值)」的列遮蔽訊號MW1給連接第一輸入線WL1的這些乘加運算胞C11’~C1m’。圖5所示其他列輸入電路可以參照列輸入電路43-1的相關說明去類推,故不再贅述。
同理可推,行輸入電路44-1接收第二輸入值Ax1,行輸入電路44-1判斷第二輸入值Ax1是否為指定值(例如0)以產生行遮蔽訊號MA1,以及行輸入電路44-1將行遮蔽訊號MA1提供至連接對應第二輸入線AL1的這些乘加運算胞C11’~Cn1’。當行遮蔽訊號MA1表示第二輸入值Ax1為「0」(指定值)時,連接對應第二輸入線AL1的這些乘加運算胞C11’~Cn1’的乘加運算可以被選擇性地禁能,以節省功耗。此外,因為第二輸入值Ax1為「0」,所以行輸入電路44-1可遮蔽第二輸入值Ax1(不提供第二輸入值Ax1至第二輸入線AL1)。圖5所示其他行輸入電路可以參照行輸入電路44-1的相關說明去類推,故不再贅述。
圖6為依照本發明實施例說明圖5所示列輸入電路43-1的電路方塊示意圖。圖5所示其他列輸入電路可以參照圖6所示列輸入電路43-1的相關說明去類推,故不再贅述。在圖6所示實施例中,列輸入電路43-1包含判斷電路430、閘控電路431、輸入值暫存器REG5以及暫存器REG6。輸入值暫存器REG5的輸入端接收第一輸入值W1x。輸入值暫存器REG5的觸發端耦接至閘控電路431的輸出端。當閘控電路431為導通(turn on)時,輸入值暫存器REG5的觸發端可以接收時脈訊號ClkW。輸入值暫存器REG5可依據其觸發端所接收的訊號去決定是否鎖存第一輸入值W1x,以便將第一輸入值W1x提供至第一輸入線WL1。
判斷電路430的輸入端可以接收第一輸入值W1x。判斷電路430可以判斷第一輸入值W1x是否為指定值而產生列遮蔽訊號MW1。暫存器REG6的輸入端耦接至判斷電路430的輸出端,以接收列遮蔽訊號MW1。基於時脈訊號ClkW的觸發,暫存器REG6可以鎖存並輸出列遮蔽訊號MW1。
在一實施例中,當指定值為零時,判斷電路430可例如為非零判斷電路。當判斷電路430判斷出第一輸入值W1x不為「0」(指定值)時,判斷電路430可產生第一邏輯準位(例如高電壓準位)的列遮蔽訊號MW1給暫存器REG6的輸入端以及閘控電路431的控制端。當判斷電路430判斷出第一輸入值W1x為「0」(指定值)時,判斷電路430可產生第二邏輯準位(例如低電壓準位)的列遮蔽訊號MW1給暫存器REG6的輸入端以及閘控電路431的控制端。閘控電路431可依據判斷電路430所輸出的列遮蔽訊號MW1來決定是否將時脈訊號ClkW提供至輸入值暫存器REG5的觸發端。輸入值暫存器REG5依據閘控電路431所提供時脈訊號ClkW去鎖存與提供第一輸入值W1x至對應第一輸入線WL1。
如此一來,當判斷電路430判斷第一輸入值W1x不為「0」(指定值)時,判斷電路430所產生的列遮蔽訊號MW1可導通閘控電路431,以將時脈訊號ClkW提供至輸入值暫存器REG5的觸發端,進而使輸入值暫存器REG5鎖存的第一輸入值W1x以及提供第一輸入值W1x至第一輸入線WL1。相反地,當判斷電路430判斷第一輸入值W1x為「0」(指定值)時,判斷電路430所產生的列遮蔽訊號MW1可以截止(turn off)閘控電路431以遮蔽時脈訊號ClkW,進而使輸入值暫存器REG5不鎖存第一輸入值W1x。
圖7為依照本發明實施例說明圖5所示行輸入電路44-1的電路方塊示意圖。圖5所示其他行輸入電路可以參照圖7所示行輸入電路44-1的相關說明去類推,故不再贅述。在圖7所示實施例中,行輸入電路44-1包含判斷電路440、閘控電路441、輸入值暫存器REG7以及暫存器REG8。輸入值暫存器REG7的輸入端接收第二輸入值Ax1。輸入值暫存器REG7的觸發端耦接至閘控電路441的輸出端。當閘控電路441為導通時,輸入值暫存器REG7的觸發端可以接收時脈訊號ClkA。輸入值暫存器REG7可依據其觸發端所接收的訊號去決定是否鎖存第二輸入值Ax1,以便將第二輸入值Ax1提供至第二輸入線AL1。
判斷電路440的輸入端可以接收第二輸入值Ax1。判斷電路440可以判斷第二輸入值Ax1是否為指定值而產生行遮蔽訊號MA1。暫存器REG8的輸入端耦接至判斷電路440的輸出端,以接收行遮蔽訊號MA1。基於時脈訊號ClkA的觸發,暫存器REG8可以鎖存並輸出行遮蔽訊號MA1。
在一實施例中,當指定值為零時,判斷電路440可例如為非零判斷電路。當判斷電路440判斷出第二輸入值Ax1不為「0」(指定值)時,判斷電路440可產生第一邏輯準位(例如高電壓準位)的行遮蔽訊號MA1給暫存器REG8的輸入端以及閘控電路441的控制端。當判斷電路440判斷出第二輸入值Ax1為「0」(指定值)時,判斷電路440可產生第二邏輯準位(例如低電壓準位)的行遮蔽訊號MA1給暫存器REG8的輸入端以及閘控電路441的控制端。閘控電路441可依據判斷電路440所輸出的行遮蔽訊號MA1來決定是否將時脈訊號ClkA提供至輸入值暫存器REG7的觸發端。輸入值暫存器REG7依據閘控電路441所提供時脈訊號ClkA去鎖存與提供第二輸入值Ax1至對應第二輸入線AL1。
如此一來,當判斷電路440判斷第二輸入值Ax1不為「0」(指定值)時,判斷電路440所產生的行遮蔽訊號MA1可導通閘控電路441,以將時脈訊號ClkA提供至輸入值暫存器REG7的觸發端,進而使輸入值暫存器REG7鎖存的第二輸入值Ax1以及提供第二輸入值Ax1至第二輸入線AL1。相反地,當判斷電路440判斷第二輸入值Ax1為「0」(指定值)時,判斷電路440所產生的行遮蔽訊號MA1可以截止閘控電路441以遮蔽時脈訊號ClkA,進而使輸入值暫存器REG7不鎖存第二輸入值Ax1。
圖8為依照本發明實施例說明圖5所示乘加運算胞C11’的電路方塊示意圖。接著請共同參考圖5與圖8來理解下方關於運算陣列40的乘加運算胞C11’的說明。圖5所示運算陣列40的其他乘加運算胞可以參照圖8所示乘加運算胞C11’的相關說明去類推,故不再贅述。
圖8所示乘加運算胞C11’包含乘加運算電路41以及控制電路42。圖8所示乘加運算電路41包括暫存器REG1、暫存器REG2以及乘加電路31。圖8所示乘加電路31包含乘加器310及暫存器REG3。圖8所示乘加運算胞C11’、乘加運算電路41、控制電路42、暫存器REG1、暫存器REG2、乘加電路31、乘加器310以及暫存器REG3可以參照圖4所示乘加運算胞C11、乘加運算電路41、控制電路32、暫存器REG1、暫存器REG2、乘加電路31、乘加器310以及暫存器REG3的相關說明加以類推,故於此不另贅述。
圖8所示控制電路42包含運算遮蔽電路320’、閘控電路321、閘控電路322及暫存器REG4。圖8所示運算遮蔽電路320’、閘控電路321、閘控電路322及暫存器REG4可以參照圖4所示運算遮蔽電路320、閘控電路321、閘控電路322及暫存器REG4的相關說明加以類推,故不再贅述。圖8所示乘加運算胞C11’與圖4所示乘加運算胞C11兩者的差別在於,圖4所示乘加運算胞C11中的運算遮蔽電路320的兩個輸入端分別接收第一輸入值W1x及第二輸入值Ax1,但是圖8所示乘加運算胞C11’中的運算遮蔽電路320’的兩個輸入端分別接收行遮蔽訊號MA1以及列遮蔽訊號MW1。
行輸入電路44-1所提供的行遮蔽訊號MA1可以表示第二輸入值Ax1是否為「0」(指定值)(詳參圖5所示行遮蔽訊號MA1的相關說明)。列輸入電路43-1所提供的列遮蔽訊號MW1可以表示第一輸入值W1x是否為「0」(指定值)(詳參圖5所示列遮蔽訊號MW1的相關說明)。基於行遮蔽訊號MA1以及列遮蔽訊號MW1,圖8所示運算遮蔽電路320’可以產生運算遮蔽訊號M11。依照實際設計,運算遮蔽電路320’可以包括及閘(AND gate)或是其他邏輯閘。當列遮蔽訊號MW1表示第一輸入值W1x為「0」以及(或是)行遮蔽訊號MA1表示第二輸入值Ax1為「0」時,運算遮蔽訊號M11可以為第一邏輯準位(例如低準位)。當列遮蔽訊號MW1表示第一輸入值W1x不為「0」以及行遮蔽訊號MA1表示第二輸入值Ax1不為「0」時,運算遮蔽訊號M11可以為第二邏輯準位(例如高準位)。因此,當第一輸入值W1x及第二輸入值Ax1兩者皆為非零時,乘加運算電路41可以被致能以進行乘加運算。當第一輸入值W1x及第二輸入值Ax1的至少一者為零時,乘加運算電路41可以被禁能以暫停乘加運算。
綜上所述,本發明的矩陣乘法器的多個乘加運算胞的每一個可以被獨立地禁能(或致能)。依據第一輸入值是否為指定值(例如0或是其它實數),整個對應列的乘加運算胞可以被選擇性地禁能以暫停進行乘加運算。依據第二輸入值是否為指定值,整個對應行的乘加運算胞可以被選擇性地禁能以暫停進行乘加運算。因此,矩陣乘法器的功耗可以被有效降低。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
1、4:矩陣乘法器 10、40:運算陣列 31:乘加電路 310:乘加器 32、42:控制電路 320、320’:運算遮蔽電路 321、322、431、441:閘控電路 41:乘加運算電路 43-1~43-n:列輸入電路 430、440:判斷電路 44-1~44-m:行輸入電路 A、W:矩陣 AL1~ALm:第二輸入線 Ax1~Axm、A11~Aym:第二輸入值 C11~Cnm、C11’~Cnm’:乘加運算胞 Clk、Clk1~Clk3、ClkA、ClkW:時脈訊號 M11:運算遮蔽訊號 MA1~MAm:行遮蔽訊號 MW1~MWn:列遮蔽訊號 O11:乘積累加值 REG1~REG4、REG6、REG8:暫存器 REG5、REG7:輸入值暫存器 WL1~WLn、W11~Wny:第一輸入線 W1x~Wnx:第一輸入值
圖1為依照本發明一實施例的矩陣乘法器的電路方塊(circuit block)示意圖。 圖2為圖1所繪示的矩陣乘法器所進行的矩陣乘法運算的具體範例示意圖。 圖3為依照本發明一實施例矩陣乘法器的操作方法的流程示意圖。 圖4為依照本發明實施例說明圖1所示乘加運算胞的電路方塊示意圖。 圖5為依照本發明另一實施例的一種矩陣乘法器的電路方塊示意圖。 圖6為依照本發明實施例說明圖5所示列輸入電路的電路方塊示意圖。 圖7為依照本發明實施例說明圖5所示行輸入電路的電路方塊示意圖。 圖8為依照本發明實施例說明圖5所示乘加運算胞的電路方塊示意圖。
1:矩陣乘法器
10:運算陣列
AL1~ALm:第二輸入線
Ax1~Axm:第二輸入值
C11~Cnm:乘加運算胞
WL1~WLn:第一輸入線
W1x~Wnx:第一輸入值

Claims (14)

  1. 一種矩陣乘法器,包括:多條第一輸入線;多條第二輸入線;以及一運算陣列,包括多個乘加運算胞,其中該些乘加運算胞中的一第一乘加運算胞耦接至該些第一輸入線中的一對應第一輸入線與該些第二輸入線中的一對應第二輸入線以接收一第一輸入值與一第二輸入值來進行一乘加運算,以及當該第一輸入值以及該第二輸入值其中至少一者為一指定值時該第一乘加運算胞的該乘加運算為禁能,其中該第一乘加運算胞包括:一乘加運算電路,耦接至該對應第一輸入線與該對應第二輸入線以接收該第一輸入值與該第二輸入值來進行該乘加運算;以及一控制電路,控制該乘加運算電路,其中當該第一輸入值以及該第二輸入值其中至少一者為該指定值時,該控制電路禁能該乘加運算電路的該乘加運算,其中該乘加運算電路包括:一第一暫存器,具有一輸入端耦接該對應第一輸入線以接收該第一輸入值,其中該第一暫存器依據一第一時脈訊號以鎖存該第一輸入值;一第二暫存器,具有一輸入端耦接該對應第二輸入線以接收 該第二輸入值,其中該第二暫存器依據一第二時脈訊號以鎖存該第二輸入值;以及一乘加電路,耦接該第一暫存器的一輸出端以及該第二暫存器的一輸出端,用以依據一第三時脈訊號對該第一暫存器的一輸出以及該第二暫存器的一輸出進行該乘加運算,其中當該第一輸入值以及該第二輸入值其中至少一者為該指定值時,該控制電路遮蔽該第一時脈訊號、該第二時脈訊號與該第三時脈訊號,以禁能該乘加電路的該乘加運算,其中該運算陣列中各列的該些乘加運算胞共用該些第一輸入線的其中一者,該運算陣列中各行的該些乘加運算胞共用該些第二輸入線的其中一者,其中所述的矩陣乘法器包括:多個列輸入電路,其中該些列輸入電路中的一第一列輸入電路接收該第一輸入值,該第一列輸入電路判斷該第一輸入值是否為該指定值以產生一列遮蔽訊號,以及該第一列輸入電路將該列遮蔽訊號提供至連接該對應第一輸入線的該些乘加運算胞;以及多個行輸入電路,其中該些行輸入電路中的一第一行輸入電路接收該第二輸入值,該第一行輸入電路判斷該第二輸入值是否為該指定值以產生一行遮蔽訊號,以及該第一行輸入電路將該行遮蔽訊號提供至連接該對應第二輸入線的該些乘加運算胞,其中該第一列輸入電路包括:一第一判斷電路,判斷該第一輸入值是否為該指定值來產生 該列遮蔽訊號;一第一閘控電路,依據該列遮蔽訊號以決定是否提供一列時脈訊號;以及一第一輸入值暫存器,依據該第一閘控電路所提供的該列時脈訊號鎖存與提供該第一輸入值至該對應第一輸入線。
  2. 如請求項1所述的矩陣乘法器,其中該控制電路包括:一運算遮蔽電路,接收一行遮蔽訊號及一列遮蔽訊號,並產生一運算遮蔽訊號,其中該列遮蔽訊號表示該第一輸入值是否為該指定值,以及該行遮蔽訊號表示該第二輸入值是否為該指定值;以及一閘控電路,耦接至該運算遮蔽電路的一輸出端以接收該運算遮蔽訊號,以及耦接至該第一暫存器的一觸發端及該第二暫存器的一觸發端以控制該乘加運算,其中該閘控電路依據該運算遮蔽訊號來決定是否提供該第一時脈訊號與該第二時脈訊號至該第一暫存器的該觸發端及該第二暫存器的該觸發端。
  3. 如請求項1所述的矩陣乘法器,其中該乘加電路包括:一第三暫存器,用以儲存一乘積累加值;以及一乘加器,耦接該第一暫存器、該第二暫存器及該第三暫存器,其中該乘加器計算該第一暫存器的該輸出以及該第二暫存器的該輸出的一乘積,該乘加器計算該乘積與該乘積累加值的一總 和,並且該乘加器將該總和提供至該第三暫存器以更新該乘積累加值。
  4. 如請求項3所述的矩陣乘法器,其中該第三暫存器是依據該第三時脈訊號更新該乘積累加值,以及該控制電路包括:一運算遮蔽電路,接收一行遮蔽訊號及一列遮蔽訊號,並產生一運算遮蔽訊號,其中該列遮蔽訊號表示該第一輸入值是否為該指定值,以及該行遮蔽訊號表示該第二輸入值是否為該指定值;一第四暫存器,具有一輸入端耦接該運算遮蔽電路的一輸出端以接收該運算遮蔽訊號;以及一閘控電路,耦接該第四暫存器及該第三暫存器,其中該閘控電路依據該第四暫存器的一輸出來決定是否提供該第三時脈訊號至該第三暫存器的一觸發端。
  5. 如請求項1所述的矩陣乘法器,其中該第一行輸入電路包括:一第二判斷電路,判斷該第二輸入值是否為該指定值來產生該行遮蔽訊號;一第二閘控電路,依據該行遮蔽訊號以決定是否提供一行時脈訊號;以及一第二輸入值暫存器,依據該第二閘控電路所提供的該時脈訊號鎖存與提供該第二輸入值至該對應第二輸入線。
  6. 如請求項1所述的矩陣乘法器,其中該指定值為零。
  7. 一種矩陣乘法器的操作方法,包括: 由一運算陣列的多個乘加運算胞中的一第一乘加運算胞的一乘加運算電路從多條第一輸入線中的一對應第一輸入線接收一第一輸入值,並由該乘加運算電路由多條第二輸入線中的一對應第二輸入線接收一第二輸入值來進行一乘加運算,其中該運算陣列中各列的該些乘加運算胞共用該些第一輸入線的其中一者,該運算陣列中各行的該些乘加運算胞共用該些第二輸入線的其中一者;以及由該第一乘加運算胞的一控制電路控制該乘加運算電路,當該第一輸入值以及該第二輸入值其中至少一者為一指定值時,該控制電路禁能該第一乘加運算胞的該乘加運算,其中所述操作方法更包括:由該乘加運算電路的一第一暫存器的一輸入端從該對應第一輸入線接收該第一輸入值;由該第一暫存器依據一第一時脈訊號鎖存該第一輸入值;由該乘加運算電路的一第二暫存器的一輸入端從該對應第二輸入線接收該第二輸入值;由該第二暫存器依據一第二時脈訊號鎖存該第二輸入值;由該乘加運算電路的一乘加電路依據一第三時脈訊號對該第一暫存器的一輸出以及該第二暫存器的一輸出進行該乘加運算;以及當該第一輸入值以及該第二輸入值其中至少一者為該指定值時,由該控制電路遮蔽該第一時脈訊號、該第二時脈訊號與該第三 時脈訊號,以禁能該乘加電路的該乘加運算,其中該矩陣乘法器更包括多個列輸入電路以及多個行輸入電路,以及所述操作方法更包括:由該些列輸入電路中的一第一列輸入電路接收該第一輸入值;由該第一列輸入電路判斷該第一輸入值是否為該指定值以產生一列遮蔽訊號;由該第一列輸入電路將該列遮蔽訊號提供至連接該對應第一輸入線的該些乘加運算胞;由該些行輸入電路中的一第一行輸入電路接收該第二輸入值;由該第一行輸入電路判斷該第二輸入值是否為該指定值以產生一行遮蔽訊號;以及由該第一行輸入電路將該行遮蔽訊號提供至連接該對應第二輸入線的該些乘加運算胞,其中該第一列輸入電路包括一第一判斷電路、一第一閘控電路以及一第一輸入值暫存器,以及所述操作方法更包括:由該第一判斷電路判斷該第一輸入值是否為該指定值來產生該列遮蔽訊號;由該第一閘控電路依據該列遮蔽訊號決定是否提供一列時脈訊號;以及由該第一輸入值暫存器依據該第一閘控電路所提供的該列時脈訊號鎖存與提供該第一輸入值至該對應第一輸入線。
  8. 如請求項7所述的操作方法,其中該控制電路包括一運算遮蔽電路以及一閘控電路,所述操作方法更包括:由該運算遮蔽電路依據一行遮蔽訊號及一列遮蔽訊號產生一運算遮蔽訊號,其中該列遮蔽訊號表示該第一輸入值是否為該指定值,以及該行遮蔽訊號表示該第二輸入值是否為該指定值;以及由該閘控電路依據該運算遮蔽訊號來決定是否提供該第一時脈訊號與該第二時脈訊號至該第一暫存器的一觸發端及該第二暫存器的一觸發端。
  9. 如請求項7所述的操作方法,其中該乘加電路包括一第三暫存器以及一乘加器,所述操作方法更包括:由該第三暫存器儲存一乘積累加值;由該乘加器計算該第一暫存器的該輸出以及該第二暫存器的該輸出的一乘積;由該乘加器計算該乘積與該乘積累加值的一總和;以及由該乘加器將該總和提供至該第三暫存器以更新該乘積累加值。
  10. 如請求項9所述的操作方法,其中該第三暫存器是依據該第三時脈訊號更新該乘積累加值,該控制電路包括一運算遮蔽電路、一第四暫存器以及一閘控電路,以及所述操作方法更包括:由該運算遮蔽電路依據一行遮蔽訊號及一列遮蔽訊號產生一運算遮蔽訊號,其中該列遮蔽訊號表示該第一輸入值是否為該指 定值,以及該行遮蔽訊號表示該第二輸入值是否為該指定值;由該第四暫存器的一輸入端接收該運算遮蔽訊號;以及由該閘控電路依據該第四暫存器的一輸出來決定是否提供該第三時脈訊號至該第三暫存器的一觸發端。
  11. 如請求項7所述的操作方法,其中該第一行輸入電路包括一第二判斷電路、一第二閘控電路以及一第二輸入值暫存器,以及所述操作方法更包括:由該第二判斷電路判斷該第二輸入值是否為該指定值來產生該行遮蔽訊號;由該第二閘控電路依據該行遮蔽訊號以決定是否提供一行時脈訊號;以及由該第二輸入值暫存器依據該第二閘控電路所提供的該行時脈訊號鎖存與提供該第二輸入值至該對應第二輸入線。
  12. 如請求項7所述的操作方法,其中該指定值為零。
  13. 一種矩陣乘法器,包括:多條第一輸入線;多條第二輸入線;以及一運算陣列,包括多個乘加運算胞,其中該些乘加運算胞中的一第一乘加運算胞耦接至該些第一輸入線中的一對應第一輸入線與該些第二輸入線中的一對應第二輸入線以接收一第一輸入值與一第二輸入值來進行一乘加運算,以及當該第一輸入值以及該第二輸入值其中至少一者為一指定值時該第一乘加運算胞的該乘 加運算為禁能,其中該運算陣列中各列的該些乘加運算胞共用該些第一輸入線的其中一者,該運算陣列中各行的該些乘加運算胞共用該些第二輸入線的其中一者,其中所述的矩陣乘法器包括:多個列輸入電路,其中該些列輸入電路中的一第一列輸入電路接收該第一輸入值,該第一列輸入電路判斷該第一輸入值是否為該指定值以產生一列遮蔽訊號,以及該第一列輸入電路將該列遮蔽訊號提供至連接該對應第一輸入線的該些乘加運算胞;以及多個行輸入電路,其中該些行輸入電路中的一第一行輸入電路接收該第二輸入值,該第一行輸入電路判斷該第二輸入值是否為該指定值以產生一行遮蔽訊號,以及該第一行輸入電路將該行遮蔽訊號提供至連接該對應第二輸入線的該些乘加運算胞,其中該第一列輸入電路包括:一判斷電路,判斷該第一輸入值是否為該指定值來產生該列遮蔽訊號;一閘控電路,依據該列遮蔽訊號以決定是否提供一時脈訊號;以及一輸入值暫存器,依據該閘控電路所提供的該時脈訊號鎖存與提供該第一輸入值至該對應第一輸入線。
  14. 一種矩陣乘法器的操作方法,包括:由一運算陣列的多個乘加運算胞中的一第一乘加運算胞從多 條第一輸入線中的一對應第一輸入線與多條第二輸入線中的一對應第二輸入線分別接收一第一輸入值與一第二輸入值來進行一乘加運算,其中該運算陣列中各列的該些乘加運算胞共用該些第一輸入線的其中一者,該運算陣列中各行的該些乘加運算胞共用該些第二輸入線的其中一者;以及當該第一輸入值以及該第二輸入值其中至少一者為一指定值時,禁能該第一乘加運算胞的該乘加運算,其中該矩陣乘法器更包括多個列輸入電路以及多個行輸入電路,以及所述操作方法更包括:由該些列輸入電路中的一第一列輸入電路接收該第一輸入值;由該第一列輸入電路判斷該第一輸入值是否為該指定值以產生一列遮蔽訊號;由該第一列輸入電路將該列遮蔽訊號提供至連接該對應第一輸入線的該些乘加運算胞;由該些行輸入電路中的一第一行輸入電路接收該第二輸入值;由該第一行輸入電路判斷該第二輸入值是否為該指定值以產生一行遮蔽訊號;以及由該第一行輸入電路將該行遮蔽訊號提供至連接該對應第二輸入線的該些乘加運算胞,其中該第一列輸入電路包括一判斷電路、一閘控電路以及一輸入值暫存器,以及所述操作方法更包括:由該判斷電路判斷該第一輸入值是否為該指定值來產生該列 遮蔽訊號;由該閘控電路依據該列遮蔽訊號決定是否提供一時脈訊號;以及由該輸入值暫存器依據該閘控電路所提供的該時脈訊號鎖存與提供該第一輸入值至該對應第一輸入線。
TW110116144A 2021-05-05 2021-05-05 矩陣乘法器及其操作方法 TWI847030B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW110116144A TWI847030B (zh) 2021-05-05 2021-05-05 矩陣乘法器及其操作方法
CN202110633358.8A CN115310032A (zh) 2021-05-05 2021-06-07 矩阵乘法器及其操作方法
US17/391,045 US12086206B2 (en) 2021-05-05 2021-08-02 Matrix multiplier and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110116144A TWI847030B (zh) 2021-05-05 2021-05-05 矩陣乘法器及其操作方法

Publications (2)

Publication Number Publication Date
TW202244754A TW202244754A (zh) 2022-11-16
TWI847030B true TWI847030B (zh) 2024-07-01

Family

ID=83854190

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110116144A TWI847030B (zh) 2021-05-05 2021-05-05 矩陣乘法器及其操作方法

Country Status (3)

Country Link
US (1) US12086206B2 (zh)
CN (1) CN115310032A (zh)
TW (1) TWI847030B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116185334B (zh) * 2023-04-19 2023-07-04 上海登临科技有限公司 阵列电路的输入控制方法和阵列电路

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201824094A (zh) * 2016-12-13 2018-07-01 美商高通公司 用於稀疏神經網路的低功率架構
TWI684141B (zh) * 2017-10-12 2020-02-01 英屬開曼群島商意騰科技股份有限公司 人工神經元中以非零封包加速乘法運算的裝置及方法
TWI688871B (zh) * 2019-08-27 2020-03-21 國立清華大學 矩陣乘法裝置及其操作方法
US20210011971A1 (en) * 2019-07-11 2021-01-14 Facebook Technologies, Llc Power efficient multiply-accumulate circuitry
TWI770261B (zh) * 2017-08-31 2022-07-11 美商高通公司 矩陣處理器為基礎之裝置及在其中提供疏矩陣之有效乘法之方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049322B2 (en) 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US10360163B2 (en) * 2016-10-27 2019-07-23 Google Llc Exploiting input data sparsity in neural network compute units
US10372416B2 (en) 2017-04-28 2019-08-06 Intel Corporation Multiply-accumulate “0” data gating
US10318317B2 (en) 2017-05-12 2019-06-11 Tenstorrent Inc. Processing core with operation suppression based on contribution estimate
US10572568B2 (en) 2018-03-28 2020-02-25 Intel Corporation Accelerator for sparse-dense matrix multiplication
US20200073636A1 (en) * 2018-08-31 2020-03-05 Qualcomm Incorporated Multiply-accumulate (mac) operations for convolutional neural networks
US11403097B2 (en) 2019-06-26 2022-08-02 Intel Corporation Systems and methods to skip inconsequential matrix operations
CN111667064B (zh) 2020-04-22 2023-10-13 南京惟心光电系统有限公司 基于光电计算单元的混合型神经网络及其运算方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201824094A (zh) * 2016-12-13 2018-07-01 美商高通公司 用於稀疏神經網路的低功率架構
TWI770261B (zh) * 2017-08-31 2022-07-11 美商高通公司 矩陣處理器為基礎之裝置及在其中提供疏矩陣之有效乘法之方法
TWI684141B (zh) * 2017-10-12 2020-02-01 英屬開曼群島商意騰科技股份有限公司 人工神經元中以非零封包加速乘法運算的裝置及方法
US20210011971A1 (en) * 2019-07-11 2021-01-14 Facebook Technologies, Llc Power efficient multiply-accumulate circuitry
TWI688871B (zh) * 2019-08-27 2020-03-21 國立清華大學 矩陣乘法裝置及其操作方法

Also Published As

Publication number Publication date
CN115310032A (zh) 2022-11-08
US20220358183A1 (en) 2022-11-10
US12086206B2 (en) 2024-09-10
TW202244754A (zh) 2022-11-16

Similar Documents

Publication Publication Date Title
Li et al. Deep domain decomposition method: Elliptic problems
JPH0713949A (ja) ニューラルネットワークおよびその使用方法
TWI847030B (zh) 矩陣乘法器及其操作方法
Mikaitis et al. Approximate fixed-point elementary function accelerator for the spinnaker-2 neuromorphic chip
Yang CurveLP-A MATLAB implementation of an infeasible interior-point algorithm for linear programming
Sanchez et al. A highly scalable parallel spike-based digital neuromorphic architecture for high-order fir filters using LMS adaptive algorithm
Lee et al. Steady state analysis of timed event graphs with time window constraints
Liu et al. On the Optimization Landscape of Low Rank Adaptation Methods for Large Language Models
Yang et al. An efficient fpga implementation of Izhikevich neuron model
CN111047017B (zh) 一种神经网络算法的评估方法、装置及电子设备
Krauss et al. FrEDDY: Modular and Efficient Framework to Engineer Decision Diagrams Yourself
Tigane et al. Generalized stochastic Petri nets with rewritable topology
Leottau et al. Implementing an interval type-2 fuzzy processor onto a DSC 56F8013
Nelson et al. Reconfigurable ASIC implementation of asynchronous recurrent neural networks
Chan et al. A rigorous framework for convergent net weighting schemes in timing-driven placement
Narayana et al. Fast analysis using finite queuing model for multilayer nocs
US20240037047A1 (en) System and methods for matrix multiplication
Myers et al. HANNIBAL: A VLSI building block for neural networks with on-chip backpropagation learning
da Silva et al. A novel approach based on recurrent neural networks applied to nonlinear systems optimization
CN116136752B (zh) 阵列输入策略的确定方法和系统
CN110929861B (zh) 一种多层感知机深度神经网络层间流水的硬件加速器
Girau FPNA: applications and implementations
CN119918652B (zh) 用于对抗性深度学习防御推理的加速器、设备及应用方法
Mei et al. Adaptive GA: An essential ingredient in high-level synthesis
De Vos Brief announcement: Minimum cost maximum flow in the CONGEST model