TW202301101A - 半導體積體電路及運算系統 - Google Patents

半導體積體電路及運算系統 Download PDF

Info

Publication number
TW202301101A
TW202301101A TW111104760A TW111104760A TW202301101A TW 202301101 A TW202301101 A TW 202301101A TW 111104760 A TW111104760 A TW 111104760A TW 111104760 A TW111104760 A TW 111104760A TW 202301101 A TW202301101 A TW 202301101A
Authority
TW
Taiwan
Prior art keywords
circuit
input
mentioned
weight
bit
Prior art date
Application number
TW111104760A
Other languages
English (en)
Other versions
TWI843055B (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 日商鎧俠股份有限公司
Publication of TW202301101A publication Critical patent/TW202301101A/zh
Application granted granted Critical
Publication of TWI843055B publication Critical patent/TWI843055B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/34Analogue value compared with reference values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/4814Non-logic devices, e.g. operational amplifiers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/66Digital/analogue converters
    • H03M1/74Simultaneous conversion
    • H03M1/80Simultaneous conversion using weighted impedances
    • H03M1/802Simultaneous conversion using weighted impedances using capacitors, e.g. neuron-mos transistors, charge coupled devices

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)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Analogue/Digital Conversion (AREA)
  • Complex Calculations (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

一實施方式之目的在於提供一種能提高和積運算之效率之半導體積體電路及運算系統。 根據一實施方式,提供一種具有複數個記憶元件、複數個乘法電路、1個以上之電容元件、及加法電路之半導體積體電路。複數個記憶元件以構成複數列之方式排列。複數個記憶元件各自記憶複數位元之權重之任一位元位置之值。複數個乘法電路以構成複數列之方式排列。複數個乘法電路對複數個輸入電壓乘以複數位元之權重,產生複數個相乘結果。1個以上之電容元件累積與複數個相乘結果相應之電荷。加法電路產生輸出電壓。輸出電壓對應於1個以上之電容元件所累積之電荷之合計值。複數個輸入電壓分別與權重之任一位元位置對應,且具有不同振幅。

Description

半導體積體電路及運算系統
本實施方式係關於一種半導體積體電路及運算系統。
半導體積體電路有時執行將所輸入之複數個值分別乘以權重所得之複數個結果相加之和積運算。此時,業界期望提高和積運算之效率。
一個實施方式之目的在於提供一種能提高和積運算之效率之半導體積體電路及運算系統。
根據一實施方式,提供一種具有複數個記憶元件、複數個乘法電路、1個以上電容元件、及加法電路之半導體積體電路。複數個記憶元件以構成複數列之方式排列。複數個記憶元件各自記憶複數位元之權重之任一位元位置之值。複數個乘法電路以構成複數列之方式排列。複數個乘法電路對複數個輸入電壓乘以複數位元之權重,產生複數個相乘結果。1個以上電容元件累積與複數個相乘結果相應之電荷。加法電路產生輸出電壓。輸出電壓對應於1個以上之電容元件中累積之電荷之合計值。複數個輸入電壓分別與權重之任一位元位置對應,且具有不同振幅。
以下,參照隨附圖式對實施方式之運算系統詳細地進行說明。再者,並非利用該等實施方式來限定本發明。
(第1實施方式)  第1實施方式之運算系統例如可用於執行AI(人工智能)加速器等神經網路處理之一部分之用途。AI加速器為了學習任務或進行推論,而執行和積運算,即,對複數位元之輸入乘以複數位元之權重,並將相乘之結果相加。運算系統中,要求高速且有效率地並行進行該運算。例如,運算系統對神經網路中之某一層之複數個神經元並行地進行和積運算(並行運算(concurrent algorithm))。並行運算包括將包含複數位元之輸入與包含複數位元之權重以任意之位元精度相乘之類的運算。
該並行運算能夠藉由列式記憶(In−Memory)之半導體積體電路以硬體方式安裝,該列式記憶(In−Memory)之半導體積體電路之特徵在於,將記憶體電路與運算電路一體配置或物理性地接近配置。列式記憶之半導體積體電路中,為了進行乘法運算,將權重固定地設定,而非動態地設定。列式記憶構成有數位式構成、類比・電流式構成、類比・電荷式構成等。
數位式構成係藉由利用配置於記憶體內之位元單位之邏輯運算電路對輸入位元進行與權重位元相應之運算等,而於記憶體內執行計算。類比・電流式構成係對權重經編程之阻變元件之陣列之各列施加電壓,利用克希何夫定律進行電流之加法運算。
另一方面,類比・電荷式構成係以位元單位並行地運算輸入之複數位元與權重之複數位元之邏輯積,使電容陣列之複數個電容元件保持與複數位元之運算結果相應之電壓。然後,依序讀出電容陣列中之複數個電容元件之電荷並進行AD(Analog to Digital,類比數位)轉換而產生數位信號,同時將數位信號位元移位後相加,藉由反覆進行以上操作來進行數位信號之加法運算。
類比•電荷式構成相較於數位式構成而言,以中等程度之位元精度進行運算時之運算速度較快,就該方面而言較為優異。類比•電荷式構成相較於類比•電流式構成而言,容易減小元件間之差異造成之影響,就該方面而言較為優異。
然而,類比•電荷式構成中,為了進行信號之加法運算,要進行與輸入及權重之至少一者之位元數成比例次數之位元移位運算。因此,輸入及權重之至少一者之位元數越增加,並行運算之效率就越容易降低,並行運算之處理時間依存於輸入及權重之至少一者之位元精度而容易長時間化。
因此,本實施方式中,於半導體積體電路中,對具有正信號振幅之複數個輸入電壓乘以表示正整數之複數位元之權重,基於與複數個相乘結果相應之電荷產生對應於相加結果之輸出電壓。藉此,不論輸入及權重之任一者之位元精度如何,均能提高並行運算之效率,從而謀求基於此之並行運算之處理時間之固定化。
具體而言,半導體積體電路藉由DA(Digital to Analog,數位類比)轉換等將輸入資料之各位元轉換為複數個輸入電壓。半導體積體電路對複數個輸入電壓乘以複數位元之權重。半導體積體電路基於複數個相乘結果,產生對應於相加結果之輸出電壓。例如,可將複數個相乘結果並行地累積於複數個電容元件中,並將複數個電容元件之電荷一併重新分配,以使累積電壓平均化,將與經重新分配之電荷相應之電壓設為輸出電壓。藉此,可於不進行位元移位之情況下獲得相加結果,不論輸入及權重之任一者之位元精度如何,均能提高並行運算之效率,且能夠使並行運算之處理時間固定化。
更具體而言,包含半導體積體電路1之運算系統100可如圖1所示般構成。圖1係表示包含半導體積體電路1之運算系統100之構成之圖。運算系統100具有輸入電路2、半導體積體電路1、及輸出電路3。運算系統100支持多位元輸入,能夠利用輸入電路2接收m位元之輸入資料D in=(d m−1,d m−2,…,d 1,d 0)。m係1以上之任意整數。輸入資料D in中包含之各要素係包含1個位元之數位信號。以下,主要假定m=n之情形來進行說明,但亦可為m≠n。於m≠n之情形時,輸入電路2設為以將m位元之輸入資料D in轉換為n個類比電壓之方式構成。例如,輸入電路2可包含DA轉換電路,以輸入節點之數量為m個、輸出節點之數量為n個之方式構成DA轉換電路。
運算系統100使包含m個位元d之輸入資料D in=(d m−1,d m−2,…,d 1,d 0)與包含n個位元b之權重向量W=(b n−1,b n−2,…,b 1,b 0)相乘,輸出基於其運算結果之輸出資料D out。n係1以上之任意整數。權重向量W之位元數n亦可與輸入資料D in之位元數m均等。
即,於運算系統100中,輸入電路2藉由DA轉換等將數位域之輸入資料D in=(d m−1,d m−2,…,d 1,d 0)轉換為類比域之輸入向量X=(V X,V X/2,…,V X/2 n−2,V X/2 n−1)並向半導體積體電路1輸入。即,輸入向量X包含n個輸入電壓V X,V X/2,…,V X/2 n−2,V X/2 n−1。半導體積體電路1中預先設定了權重向量W=(b n−1,b n−2,…,b 1,b 0)。權重向量W之各要素係包含1個位元之數位信號。權重向量W之n位元型樣「b n−1,b n−2,…,b 1,b 0」表示正整數。於以下說明中,將權重向量W亦簡稱為權重W。輸入向量X中包含之n個輸入電壓對應於權重W之n個位元。輸入向量X中包含之各輸入電壓係具有與權重W之對應位元之位置相應之正信號振幅之類比信號。全域電路10產生全域信號MULT、PRE、SUM並將其等供給至運算電路20。
半導體積體電路1基於全域信號MULT、PRE、SUM來運算輸入向量X=(V X,V X/2,…,V X/2 n−2,V X/2 n−1)與權重向量W=(b n−1,b n−2,…,b 1,b 0)之內積,並將作為其運算結果之輸出電壓Y=X•W=V Y輸入至輸出電路3。輸出電壓Y=V Y係類比信號。輸出電路3藉由AD轉換等將輸出電壓V Y轉換為輸出資料D out並輸出。輸出資料D out係包含1以上之位元之數位信號。
半導體積體電路1可如圖2所示般構成。圖2係表示半導體積體電路1之構成之電路圖。
半導體積體電路1具有全域電路10及運算電路20。運算電路20利用複數個輸入節點20a_(n−1),…,20a_0接收n個輸入電壓V X,…,V X/2 n−1。n個輸入電壓V X,…,V X/2 n−1包含於輸入向量X中。各輸入電壓V X,…,V X/2 n−1被施加至輸入節點20a_(n−1),…,20a_0。全域電路10產生全域信號MULT、PRE、SUM並將其等供給至運算電路20。運算電路20根據全域信號MULT、PRE、SUM進行運算,並將作為運算結果之輸出電壓V Y從輸出節點20b輸出。
如圖2所示,運算電路20具有n個記憶元件21_(n−1)~21_0、複數個乘法電路22_(n−1)~22_0、n個電容元件23_(n−1)~23_0、加法電路24。圖2中,例示一行大小之構成作為運算電路20之構成,但運算電路20亦可具有複數行圖2所示之構成。
n個記憶元件21_(n−1)~21_0以構成n個列(即,第(n−1)列~第0列)之方式排列。n個記憶元件21_(n−1)~21_0記憶n位元之權重W。n個記憶元件21_(n−1)~21_0對應於權重W所包含之各位元b n−1,…,b 0。各記憶元件21記憶並輸出對應之權重W之對應位元值。記憶元件21_(n−1)記憶位元b n−1之值並且輸出與位元b n−1之值相應之電壓。記憶元件21_0記憶位元b 0之值並且輸出與所記憶之位元b 0之值相應之電壓。權重W所包含之n位元之型樣「b n−1,b n−2,…,b 1,b 0」表示正整數。
n個乘法電路22_(n−1)~22_0以構成n個列(即,第(n−1)列~第0列)之方式排列。n個乘法電路22_(n−1)~22_0經由n個中間節點20c_(n−1)~20c_0,於n個輸入節點20a_(n−1)~20a_0與輸出節點20b之間並聯連接。各乘法電路22具有連接於輸入節點20a之第一端、及連接於中間節點20c之第二端。各乘法電路22具有接收全域信號MULT之第一控制端子、及接收記憶元件21之輸出之第二控制端子。
n個乘法電路22_(n−1)~22_0對n個輸入電壓等效地乘以n位元之權重W,產生n個相乘結果。n個乘法電路22_(n−1)~22_0對應於n個輸入電壓,並且對應於權重W所包含之n個位元。各乘法電路22對所對應之類比信號等效地乘以對應之權重W之位元,產生相乘結果。乘法電路22_(n−1)對輸入信號V X等效地乘以位元b n−1之值,產生相乘結果(V X)×b n−1。乘法電路22_0對輸入信號V X/2 n−1等效地乘以位元b 0之值,產生相乘結果(V X/2 n−1)×b 0
各乘法電路22於輸入節點20a與中間節點20c之間包含開關SW1與開關SW2之串聯連接。開關SW1根據全域信號MULT而接通、斷開。開關SW2根據權重W之位元值而維持為接通、斷開狀態。開關SW1及開關SW2分別為切換元件之一例,例如由電晶體構成即可。圖2中,例示了在輸入節點20a與中間節點20c之間開關SW1連接於輸入節點20a側且開關SW2連接於中間節點20c側之構成,但亦可為開關SW1連接於中間節點20c側且開關SW2連接於輸入節點20a側之構成。
n個乘法電路22_(n−1)~22_0之開關SW1於分別利用其控制端子從全域電路10接收到有效位準之全域信號MULT時接通,將輸入節點20a與開關SW2之第一端電性連接。n個乘法電路22_(n−1)~22_0之開關SW1於分別利用其控制端子從全域電路10接收到無效位準之全域信號MULT時斷開,將輸入節點20a與開關SW2之第一端電性切斷。
n個乘法電路22_(n−1)~22_0與n個記憶元件21_(n−1)~21_0對應。n個乘法電路22_(n−1)~22_0之開關SW2分別根據從對應之記憶元件21輸出之權重W之位元值而維持為接通、斷開狀態。
乘法電路22_(n−1)之開關SW2於從記憶元件21_(n−1)輸出之權重W之位元b n−1之值為1之情形時,維持為接通狀態。於該情形時,藉由開關SW1接通,而使輸入節點20a_(n−1)與中間節點20c_(n−1)電性連接。
乘法電路22_(n−1)之開關SW2於從記憶元件21_(n−1)輸出之權重W之位元b n−1之值為0之情形時,維持為斷開狀態。於該情形時,即便開關SW1接通,輸入節點20a_(n−1)與中間節點20c_(n−1)仍維持電性切斷之狀態。
乘法電路22_0之開關SW2於從記憶元件21_0輸出之權重W之位元b 0之值為1之情形時,維持為接通狀態。於該情形時,藉由開關SW1接通,而使輸入節點20a_0與中間節點20c_0電性連接。
乘法電路22_0之開關SW2於從記憶元件21_0輸出之權重W之位元b 0之值為0之情形時,維持為斷開狀態。於該情形時,即便開關SW1接通,輸入節點20a_0與中間節點20c_0仍維持電性切斷之狀態。
n個電容元件23_(n−1)~23_0以構成n個列(即,第(n−1)列~第0列)之方式排列。n個電容元件23_(n−1)~23_0對應於n個記憶元件21_(n−1)~21_0,並且對應於n個乘法電路22_(n−1)~22_0。n個電容元件23_(n−1)~23_0在n個中間節點20c_(n−1)~20c_0與基準節點20d之間並聯連接。
各電容元件23可具有相互均等之電容值C。各電容元件23具有連接於中間節點20c之第一端及連接於基準節點20d之第二端。各電容元件23之第一端經由中間節點20c而連接於對應之乘法電路22。對基準節點20d供給基準電壓(例如,運算電路20之接地電壓)。基準節點20d亦可對於n個電容元件23_(n−1)~23_0共通化。
各乘法電路22根據權重W之位元值來改變對輸入信號之電容元件23之第一端有無供給。藉此,n個乘法電路22_(n−1)~22_0對n個輸入電壓等效地乘以n位元之權重W。
加法電路24配置於n個乘法電路22_(n−1)~22_0與n個電容元件23_(n−1)~23_0之間。加法電路24根據電容比來重新分配n個電容元件23_(n−1)~23_0中累積之電荷,產生輸出電壓V Y。輸出電壓V Y與n個相乘結果相加所得之相加結果對應。由於n個電容元件23_(n−1)~23_0具有相互均等之電容值C,故輸出電壓V Y相當於將作為n個相乘結果之n個電壓平均化所得之電壓。輸出電壓V Y能夠藉由對其值乘以電容元件之個數(即,n)而轉換為相加結果。
加法電路24在共通節點20e與中間節點20c_(n−1)~20c_0之至少1個節點之間具有開關SW3。圖2中示出了在共通節點20e與中間節點20c_(n−1)之間具有SW3之構成,以下對該情形之動作進行說明。共通節點20e被供給共通電壓V COM。共通節點20e亦可對於n個電容元件23_(n−1)~23_0共通化。中間節點20c_(n−1)連接於電容元件23_(n−1)之第一端。電容元件23_(n−1)係配置於離輸出節點20b最遠之位置之電容元件。開關SW3於利用其控制端子從全域電路10接收到有效位準之全域信號PRE時接通,使共通電壓V COM電性連接於中間節點20c_(n−1)。開關SW3於利用其控制端子從全域電路10接收到無效位準之全域信號PRE時斷開,使共通電壓V COM與中間節點20c_(n−1)電性切斷。開關SW3係切換元件之一例,例如只要包含電晶體即可。
加法電路24在輸出節點20b及n個中間節點20c_(n−1)~20c_0之間具有n個開關SW4_(n−1)~SW4_0。n個中間節點20c_(n−1)~20c_0分別連接於n個電容元件23_(n−1)~23_0之第一端。n個開關SW4_(n−1)~SW4_0於利用其控制端子從全域電路10接收到有效位準之全域信號SUM時接通,使n個電容元件23_(n−1)~23_0之第一端電性連接於輸出節點20b。n個開關SW4_(n−1)~SW4_0於利用其控制端子從全域電路10接收到無效位準之全域信號SUM時斷開,使n個電容元件23_(n−1)~23_0之第一端與輸出節點20b電性切斷。n個開關SW4_(n−1)~SW4_0分別為切換元件之一例,例如只要包含電晶體即可。
再者,將各列中包含記憶元件21、乘法電路22、電容元件23及開關SW4之構成稱為單位單元UC。第n−1列之單位單元UC_(n−1)包含記憶元件21_(n−1)、乘法電路22_(n−1)、電容元件23_(n−1)及開關SW4_(n−1)。第0列之單位單元UC_0包含記憶元件21_0、乘法電路22_0、電容元件23_0及開關SW4_0。
根據圖2所示之構成,半導體積體電路1係基於電荷實現多位元乘法運算。不論X及W中之任一個之位元精度如何,半導體積體電路1均能藉由以下3個週期(1)~(3)來實現基於電荷之運算Y=X・W。
(1)將權重W之位元值從MSB(最上位位元)至LSB(最下位位元)進行分割,且將各位元儲存於記憶元件21中。將全域信號PRE及全域信號SUM分別設為有效位準,將全域信號MULT設為無效位準。藉此,各電容元件23_(n−1)~23_0之電荷向共通節點20e排出,各電容元件23_(n−1)~23_0之累積電壓被重設為V COM
(2)將全域信號MULT設為有效位準,將全域信號PRE及全域信號SUM分別設為無效位準。藉此,於n個單位單元UC_(n−1)~UC_0中,對輸入電壓等效地乘以權重W,與相乘結果相應之電荷累積於電容元件23_(n−1)~23_0之第一端。n個單位單元UC_(n−1)~UC_0中之乘法運算及電荷之累積係相互並行地進行。其結果為,各電容元件23之累積電壓成為V C i(i=(n−1)~0)。
(3)將全域信號SUM設為有效位準,將全域信號PRE及全域信號MULT分別設為無效位準。藉此,根據電容比重新分配累積於n個電容元件23_(n−1)~23_0之第一端之電荷。由於n個電容元件23_(n−1)~23_0具有相互均等之電容值C,故各電容元件23之累積電壓成為經平均化之電壓。
半導體積體電路1可如圖3所示般動作。圖3係表示半導體積體電路1之動作之波形圖。圖3(a)表示全域信號PRE之位準之時間轉變。圖3(b)表示全域信號SUM之位準之時間轉變。圖3(c)表示全域信號MULT之位準之時間轉變。圖3(d)表示各電容元件23之保持電壓之時間變化。
於時點t1之前,全域電路10將全域信號PRE、全域信號SUM、全域信號MULT分別維持為L位準。半導體積體電路1設定為共通電壓V COM=0 V(≒接地電位)。
例如,於n=3、權重W=(b 2,b 1,b 0)=(1,1,1)之情形時,半導體積體電路1使3個記憶元件21_2、21_1、21_0分別記憶位元值1、1、1。權重W之複數位元型樣「111」以十進制計表示相當於「7」之正整數。3個記憶元件21_2、21_1、21_0均輸出為對應於位元值1之邏輯值之H位準。於此相對應地,3個乘法電路22_2、22_1、22_0之開關SW2均維持為接通狀態。
輸入電路2於例如m=3時將3位元之輸入資料D in=(d 2,d 1,d 0)利用任意方法產生電壓V X,並將該電壓V X轉換為輸入向量X=(V X,V X/2,V X/2 2)後輸入至半導體積體電路1。3個輸入電壓V X、V X/2、V X/2 2分別對應於權重W所包含之複數位元b 2、b 1、b 0。各輸入信號V X、V X/2、V X/2 2具有與對應之位元之位置相應之正振幅。
於第i列,對輸入節點20a_i施加以下數式1所示之輸入信號V X i。第i列對應於權重W之位元b i。i表示列編號,亦表示權重W之位元位置,可取n−1(n為2以上之整數)至0之值。n−1對應於權重W之複數位元中之MSB,0對應於LSB。
Figure 02_image004
例如,於n=3之情形時,於運算電路20中,對第2列之輸入節點20a_2施加輸入電壓V X,對第1列之輸入節點20a_1施加輸入電壓V X/2,對第0列之輸入節點20a_0施加輸入電壓V X/2 2
於時點t1~t2期間進行週期(1)之動作。當到達時點t1時,全域電路10使全域信號MULT維持為L位準不變,使全域信號PRE、全域信號SUM分別轉變為H位準並維持。藉此,對3個電容元件23_2~23_0之第一端施加共通電壓V COM=0 V,將各電容元件23_2~23_0之保持電壓V C 0~V C 2重設為0 V。即,重設各電容元件23_2~23_0之累積電荷。當到達時點t2時,全域電路10使全域信號PRE、全域信號SUM分別轉變為L位準。藉此,各電容元件23_2~23_0之保持電壓V C 0~V C 2之重設完成。
於時點t3~t4期間進行週期(2)之動作。當到達時點t3時,全域電路10使全域信號PRE、全域信號SUM分別維持為L位準不變,使全域信號MULT轉變為H位準並維持。藉此,乘法電路22_i將輸入電壓V X i與權重W之位元值b i相乘。即,於第i列,乘法電路22_i之開關SW1維持為接通狀態。於記憶元件21_i中記憶之權重W之位元值b i=1之情形時,使開關SW2維持為接通狀態,將輸入電壓V X i施加至電容元件23_i之第一端。於記憶元件21_i中記憶之權重W之位元值b i=0之情形時,使開關SW2維持為斷開狀態,不將輸入電壓V X i施加至電容元件23_i之第一端。藉此,於權重W之位元值b i=1之情形時,電容元件23_i之保持電壓從0 V逐漸增加至V X i,於權重W之位元值b i=0之情形時,電容元件23_i之保持電壓維持為0 V不變。即,將與利用乘法電路22_i使輸入電壓V X i與權重W之位元值b i相乘之結果相應之電荷Q i累積於電容元件23_i中。電荷Q i由數式2表示。
Figure 02_image006
例如,於n=3、權重W=(b 2,b 1,b 0)=(1,1,1)之情形時,於第2列中,根據權重W之位元值b 2=1,將輸入信號V X施加至電容元件23_2之第一端,電容元件23_2之保持電壓V C 2從0 V逐漸增加至V X。藉此,於電容元件23_2中累積電荷Q 2=C×V X。於第1列中,根據權重W之位元值b 1=1,將輸入信號V X/2施加至電容元件23_1之第一端,電容元件23_1之保持電壓V C 1從0 V逐漸增加至V X/2。藉此,於電容元件23_1中累積電荷Q 1=C×V X/2。於第0列中,根據權重W之位元值b 0=1,將輸入信號V X/2 2施加至電容元件23_0之第一端,電容元件23_0之保持電壓V C 0從0 V逐漸增加至V X/2 2。藉此,於電容元件23_0中累積電荷Q 1=C×V X/2 2
當到達時點t4時,全域電路10使全域信號MULT轉變為L位準。藉此,電荷向各電容元件23_2~23_0之累積完成,其等之保持電壓V C 0~V C 2得以維持。
於時點t5~t6期間進行週期(3)之動作。當到達時點t5時,全域電路10使全域信號PRE、全域信號MULT分別維持為L位準不變,使全域信號SUM轉變為H位準並維持。藉此,加法電路24將n個電容元件23_(n−1)~23_0中累積之電荷根據其等之電容比重新進行分配。由於n個電容元件23_(n−1)~23_0之電容值均等,因此以將累積電壓平均化之方式重新分配n個電容元件23_(n−1)~23_0之電荷。藉此,加法電路24產生輸出電壓V Y並將輸出電壓V Y供給至輸出節點20b。輸出電壓V Y相當於將作為複數個相乘結果之複數個電壓V C 0~V C n−1平均化後之電壓。輸出電壓V Y能夠藉由乘以電容元件23之個數(即,n)而轉換為相加結果。輸出電壓V Y由數式3表示。
Figure 02_image008
例如,於n=3、權重W=(b 2,b 1,b 0)=(1,1,1)之情形時,加法電路24重新分配3個電容元件23_2~23_0中累積之電荷並產生輸出電壓V Y=(V C 0+V C 1+V C 2)/3={V X+(V X/2)+(V X/2 2)}/3。
如圖1所示,半導體積體電路1將輸出電壓V Y向輸出電路3輸出。輸出電路3將輸出電壓V Y轉換為輸出資料D out。例如,若於利用輸出電路3對輸出電壓V Y進行AD轉換之前或之後對輸出電壓V Y乘以電容元件23之個數(例如,3),則輸出電路3之輸出就會成為相加結果。但是,多數情形時只要能獲得與相加結果成比例之輸出足矣,因此,未必需要進行乘以電容元件23之個數之處理。輸出電路3將所產生之輸出資料D out輸出。
如以上上述,於第1實施方式中,在半導體積體電路1中,對具有正信號振幅之複數個輸入電壓乘以表示正整數之複數位元之權重,將與複數個相乘結果相應之電荷並行地累積於複數個電容元件中。其後,以將累積電壓平均化之方式將複數個電容元件之電荷一併重新分配,產生平均化後之累積電壓作為與相加結果對應之輸出電壓。藉此,可於不進行位元移位之情況下獲得相加結果,不論輸入及權重之任一者之位元精度如何,均能使並行運算之處理時間固定化。
再者,如圖4所示,於第1實施方式之變化例之運算系統100'之半導體積體電路1'中,運算電路20'亦可構成為藉由將電荷相加而產生輸出電壓。圖4係表示第1實施方式之變化例之半導體積體電路之構成的電路圖。例如,圖4所示之運算電路20'可藉由省略圖2所示之構成中之(n−1)個電容元件23_(n−1)~23_1及(n−1)個開關SW4_(n−1)~SW4_1而獲得。運算電路20'之動作基本上與運算電路20之動作相同,但於以下方面不同。於圖3(d)所示之時點t3~t6,示出了1個電容元件23_0之波形,其振幅成為時點t3~t6所示之振幅之合計。即,運算電路20'藉由將複數個相乘結果並行地累積於1個電容元件中而將電荷一併相加,將與相加所得之電荷相應之電壓作為輸出電壓輸出。根據此種構成,亦能於不進行位元移位之情況下獲得相加結果,不論輸入及權重之任一者之位元精度如何,均能使並行運算之處理時間固定化。
(第2實施方式)  接下來,對第2實施方式之運算系統200進行說明。以下,以與第1實施方式不同之部分為中心進行說明。
於第1實施方式中,例示了權重之複數位元表示正整數之情形時之半導體積體電路之構成,於第2實施方式中,例示權重之複數位元表示正整數或負整數之情形時之半導體積體電路之構成。
運算系統200具有半導體積體電路201來代替半導體積體電路1(參照圖2)。半導體積體電路201可如圖5所示般構成。半導體積體電路201具有運算電路220來代替運算電路20(參照圖2)。運算電路220具有n個記憶元件221_(n−1)~221_0來代替n個記憶元件21_(n−1)~21_0(參照圖2)。n個記憶元件221_(n−1)~221_0之進行儲存之權重W之複數位元與第1實施方式不同。即,權重W之n位元之型樣「b n−1,b n−2,…,b 1,b 0」以2的補數表達來表示正整數或負整數。作為MSB之位元b n−1為符號位(sign bit),表示當值為0時複數位元之型樣為正整數,且表示當值為1時複數位元之型樣為負整數。於n位元之型樣「b n−1,b n−2,…,b 1,b 0」表示負整數之情形時,成為使各位元相對於表示其絕對值之位元型樣反轉並加上1所得之位元型樣。
從輸入電路2輸入至半導體積體電路201之n個輸入電壓分別對應於權重W之n位元b n−1,b n−2,…,b 1,b 0。於將共通電壓V COM設為0 V之情形時,各輸入電壓具有與對應之位元之位置相應之正信號振幅或負信號振幅。由第(n−1)列之輸入節點20a_(n−1)從輸入電路2接收之輸入信號如以下之數式4所示,由第i列之輸入節點20a_i從輸入電路2接收之輸入信號如以下之數式5所示。數式5中,i=(n−2)~0。
Figure 02_image010
運算電路220運算輸入向量X=(V COM−V X,V COM+V X/2,…,V COM+V X/2 n−2,V COM+V X/2 n−1)與權重向量W=(b n−1,b n−2,…,b 1,b 0)之內積Y=X•W,但權重W之n位元之型樣「b n−1,b n−2,…,b 1,b 0」可表示負整數。
例如,於參數V X具有正值、權重W之n位元之型樣表示負整數之情形時,半導體積體電路201可如圖6所示般動作。圖6係表示半導體積體電路201之動作之波形圖。圖6(a)表示全域信號PRE之位準之時間轉變。圖6(b)表示全域信號SUM之位準之時間轉變。圖6(c)表示全域信號MULT之位準之時間轉變。圖6(d)表示各電容元件23之保持電壓之時間變化。
於時點t11之前,全域電路10使全域信號PRE、全域信號SUM、全域信號MULT分別維持為L位準。半導體積體電路201將共通電壓V COM之電位設定為半導體積體電路201之接地電位與電源電位之中間電位。例如,半導體積體電路201設定為共通電壓V COM=Vdd/2。Vdd係電源電位。共通電壓V COM作為電位為Vdd/2,但對於輸入向量X之信號振幅而言表示0 V(基準值)。關於輸入電壓,若其電位Vin高於Vdd/2,則具有正信號振幅Vin−Vdd/2,若其電位Vin低於Vdd/2,則具有負信號振幅Vin−Vdd/2。
例如,於n=3、權重W=(b 2,b 1,b 0)=(1,1,1)之情形時,權重W以十進制計表示相當於「-1」之負整數。
於時點t11~t12期間,根據共通電壓V COM為Vdd/2這一情況,進行於以下方面不同於第1實施方式之週期(1)之動作。當到達時點t11時,全域電路10使全域信號MULT維持為L位準不變,使全域信號PRE、全域信號SUM分別轉變為H位準並維持。藉此,將各電容元件23_2~23_0之保持電壓V C 0~V C 2重設為V COM=Vdd/2(=信號振幅0 V)。
於時點t13~t14期間,根據共通電壓V COM為Vdd/2,進行於以下方面不同於第1實施方式之週期(2)之動作。當到達時點t13時,全域電路10使全域信號PRE、全域信號SUM分別維持為L位準不變,使全域信號MULT轉變並維持為H位準。藉此,於權重W之位元值b i=1之情形時,電容元件23_i之保持電壓從V COM=Vdd/2逐漸變為V X i。於參數V X具有正值之情形時,與權重W之MSBb n−1對應之輸入電壓V X n−1具有負信號振幅,電容元件23_(n−1)之保持電壓從V COM逐漸減小至V X n−1。於其他輸入電壓V X i(i=(n−2)~0)具有正信號振幅之情形時,電容元件23_i之保持電壓從V COM逐漸增加至V X i。於權重W之位元值b i=0之情形時,電容元件23_i之保持電壓維持為V COM不變。即,第n−1列之電容元件23_(n−1)中累積之電荷如以下之數式6所示,第i列之電容元件23_i中累積之電荷如以下之數式7所示。數式7中,i=(n−2)~0。
Figure 02_image012
例如,於n=3、權重W=(b 2,b 1,b 0)=(1,1,1)之情形時,於第2列中,根據權重W之位元值b 2=1,將輸入信號V COM-V X施加至電容元件23_2之第一端,電容元件23_2之保持電壓V C 2從V COM逐漸減小至V COM-V X。藉此,於電容元件23_2中累積電荷Q 2=C×(V COM-V X)。於第1列中,根據權重W之位元值b 1=1,將輸入信號V COM+V X/2施加至電容元件23_1之第一端,電容元件23_1之保持電壓V C 1從V COM逐漸增加至V COM+V X/2。藉此,於電容元件23_1中累積電荷Q 1=C×(V COM+V X/2)。於第0列中,根據權重W之位元值b 0=1,將輸入信號V COM+V X/2 2施加至電容元件23_0之第一端,電容元件23_0之保持電壓V C 0從V COM逐漸增加至V COM+V X/2 2。藉此,於電容元件23_0中累積電荷Q 1=C×(V COM+V X/2 2)。
於時點t15~t16期間進行與第1實施方式之週期(3)相同之動作,加法電路24將累積於n個電容元件23_(n−1)~23_0中之電荷以將累積電壓平均化之方式一併重新分配,產生如以下之數式8所示之輸出電壓V Y並將輸出電壓V Y供給至輸出節點20b。
Figure 02_image014
再者,規定輸入向量X之各要素之參數V X可取-V COM~+V COM之值。參數V X有時亦具有負值。
例如,於參數V X具有負值、權重W之複數位元型樣表示負整數之情形時,半導體積體電路201如圖7所示進行於以下方面與圖6不同之動作。圖7係表示半導體積體電路201之另一動作之波形圖。圖7(a)表示全域信號PRE之位準之時間轉變。圖7(b)表示全域信號SUM之位準之時間轉變。圖7(c)表示全域信號MULT之位準之時間轉變。圖7(d)表示各電容元件23之保持電壓之時間變化。
如圖7(d)所示,時點t23~t26期間之各電容元件23之保持電壓V C i之波形係以表示共通電壓V COM之線作為對稱軸,使時點t13~t16之保持電壓V C i之波形(參照圖6)呈線對稱地移動而得。
於時點t23~t24期間,根據共通電壓V COM為Vdd/2這一情況,進行於以下方面不同於第1實施方式之週期(2)之動作。當到達時點t23時,全域電路10使全域信號PRE、全域信號SUM分別維持為L位準不變,使全域信號MULT轉變為H位準並維持。藉此,於權重W之位元值b i=1之情形時,電容元件23_i之保持電壓V C i從V COM逐漸變為V X i。於參數V X具有負值之情形時,V X=-|V X|。與權重W之MSBb n−1對應之輸入電壓V X n−1具有正信號振幅,電容元件23_(n−1)之保持電壓V C n−1從V COM逐漸增加至V X n−1。其他輸入電壓V X i(i=(n−2)~0)具有負信號振幅,電容元件23_i之保持電壓V C i從V COM逐漸減小至V X i。於權重W之位元值b i=0之情形時,電容元件23_i之保持電壓維持為0 V不變。
例如,於n=3、權重W=(b 2,b 1,b 0)=(1,1,1)之情形時,於第2列中,根據權重W之位元值b 2=1,將輸入信號V COM-V X傳輸至電容元件23_2之第一端,電容元件23_2之保持電壓V C 2從V COM逐漸增加至V COM−V X=V COM+|V X|。藉此,於電容元件23_2中累積電荷Q 2=C×(V COM+|V X|)。於第1列中,根據權重W之位元值b 1=1,將輸入信號V COM+V X/2傳輸至電容元件23_1之第一端,電容元件23_1之保持電壓V C 1從V COM逐漸減小至V COM+V X/2=V COM−|V X|/2。藉此,於電容元件23_1中累積電荷Q 1=C×(V COM−|V X|/2)。於第0列中,根據權重W之位元值b 0=1,將輸入信號V COM+V X/2 2傳輸至電容元件23_0之第一端,電容元件23_0之保持電壓V C 0從V COM逐漸減小至V COM+V X/2 2=V COM−|V X|/2 2。藉此,於電容元件23_0中累積電荷Q 1=C×(V COM−|V X|/2 2)。
於時點t25~t26期間進行與第1實施方式之週期(3)相同之動作,加法電路24將累積於n個電容元件23_(n−1)~23_0中之電荷以使累積電壓平均化之方式一併重新分配,產生如數式8所示之輸出電壓V Y並將輸出電壓V Y供給至輸出節點20b,該方面與圖6之動作相同。
如以上上述,於第2實施方式中,在半導體積體電路201中,對具有正信號振幅或負信號振幅之複數個輸入電壓乘以用2的補數表達來表示正整數或負整數之複數位元之權重,將與複數個相乘結果相應之電荷重新進行分配後產生對應於相加結果之輸出電壓。藉此,亦能於不進行位元移位之情況下獲得相加結果,不論輸入及權重之任一者之位元精度如何,均能提高並行運算之效率,且能夠使並行運算之處理時間固定化。
(第3實施方式)  接下來,對第3實施方式之運算系統300進行說明。以下,以與第1實施方式及第2實施方式不同之部分為中心進行說明。
於第1實施方式中,例示了如下構成,即,用以針對將多位元之乘法運算針對權重之每一位元進行分割時實施每一位元之並行運算之情形實現固定化,於第3實施方式中,將該構成擴展為用以針對向量及矩陣之並行運算實現固定化之構成。
運算系統300具有半導體積體電路301來代替半導體積體電路1。半導體積體電路301可如圖8所示般構成。半導體積體電路301具有運算電路320來代替運算電路20(參照圖2)。運算電路320將運算電路20擴展為N列×M行,呈複數個運算電路20_(N−1,M−1)~20_(0,0)排列。N、M分別為2以上之任意整數。各運算電路20雖電路記法不同,但構成與第1實施方式之運算電路20相同。
運算電路320進而具有複數個字元線WL(N−1,n−1)~WL(0,0)及複數個位元線BL0~BL(n−1),於複數個字元線WL與複數個位元線BL交叉之位置配置有複數個單位單元UC(N−1,M−1,n−1)~UC(0,0,0)。各字元線WL沿行方向延伸並且沿列方向排列。各位元線BL沿列方向延伸並且沿行方向排列。各單位單元UC與第1實施方式之單位單元UC相同。
再者,隨著運算電路20被擴展為N列×M行,亦可於各輸入節點連接作為輸入電路2(參照圖1)之一部分之驅動器DV1,亦可於各輸出節點連接作為輸出電路3(參照圖1)之一部分之驅動器DV2。藉此,能夠提高從輸入節點向各列之運算電路20供給輸入電壓時之驅動能力,且能夠提高從各行之運算電路20向輸出節點供給輸出電壓時之驅動能力。
運算電路320運算數式9所示之輸入向量X'與數式10所示之權重矩陣W'之內積,作為其運算結果,向輸出電路3輸入數式11所示之輸出向量Y'=X'W'中所包含之複數個輸出電壓V Y j(J=M−1~0)。
Figure 02_image016
例如於權重W之位元型樣表示正整數之情形時,輸入向量X'中所包含之各要素向量X i(i=N−1~0)與第1實施方式中之輸入向量X相同,包含n個輸入電壓V X i,V X i/2,…,V X i/2 n−2,V X i/2 n−1。輸入向量X'包含分別具有正信號振幅之N×n個輸入電壓。權重矩陣W'中所包含之各要素向量W i j(i=N−1~0,j=M−1~0)與第1實施方式中之權重向量W相同,包含n個位元b n−1,b n−2,…,b 1,b 0。n個位元b n−1,b n−2,…,b 1,b 0記憶於n個記憶元件21_(n−1)~21_0(參照圖2)中,該方面亦與第1實施方式相同。各要素向量W i j中所包含之n位元之型樣表示正整數。權重矩陣W’包含N×n×M個位元。輸出向量Y'中所包含之輸出電壓V Y j(j=M−1~0)與第1實施方式中之輸出電壓V Y相同,包含M個輸出電壓。
即,各行之運算電路20中,乘法電路22(參照圖2)使n個輸入電壓與n個位元相乘而產生複數個相乘結果,n個電容元件23(參照圖2)累積與複數個相乘結果相應之電荷。其後,各行之運算電路20中之加法電路24將累積於n個電容元件23中之電荷以使累積電壓平均化之方式一併重新分配,產生與複數個相乘結果相加所得之相加結果對應之輸出電壓V Y並將輸出電壓V Y按每一行輸出至輸出節點。各行之輸出電壓V Y j(j=N−1~0)由以下之數式12表示。
Figure 02_image018
如以上上述,於第3實施方式中,針對向量及矩陣之並行運算,對具有正信號振幅之複數個輸入電壓乘以表示正整數之複數位元之權重,按每一行重新分配與複數個相乘結果相應之電荷後產生與複數行之相加結果對應之複數個輸出電壓。藉此,亦能於不進行位元移位之情況下獲得相加結果,不論輸入及權重之任一者之位元精度如何,均能夠使並行運算之處理時間固定化。
再者,雖未圖示,但運算電路320亦可將第2實施方式之運算電路220擴展為N列×M行,呈複數個運算電路220_(N−1,M−1)~220_(0,0)排列。各運算電路220基本上與第2實施方式之運算電路220相同。於該情形時,輸入向量X'包含分別具有正信號振幅或負信號振幅之N×n個輸入電壓。又,各要素向量W i j中所包含之n位元之型樣以2的補數表達來表示正整數或負整數。
即,針對向量及矩陣之並行運算,對具有正信號振幅或負信號振幅之複數個輸入電壓乘以用2的補數表達來表示正整數或負整數之複數位元之權重,按每一行重新分配與複數個相乘結果相應之電荷後產生與複數行之相加結果對應之複數個輸出電壓。藉此,亦能於不進行位元移位之情況下獲得相加結果,不論輸入及權重之任一者之位元精度如何,均能夠使並行運算之處理時間固定化。
(第4實施方式)  接下來,對第4實施方式之運算系統100進行說明。以下,以與第1實施方式~第3實施方式不同之部分為中心進行說明。
於第1實施方式~第3實施方式中,未提及單位單元UC之具體構成,於第4實施方式中,將例示單位單元UC之具體構成。
單位單元UC如圖9所示配置於字元線WL與位元線BL交叉之位置。圖9係表示單位單元UC之概略構成之圖,例示出第i列(i=n−1~0)之單位單元UC_i之概略構成。
於字元線WL與位元線BL交叉之位置配置線L11,線L11具有連接於字元線WL之第一端與連接於位元線BL之第二端。單位單元UC_i中之乘法電路22_i插入線L11中。乘法電路22_i中之開關SW1及開關SW2之串聯連接插入至線L11中。單位單元UC_i中之電容元件23_i具有連接於線L11上之中間節點20c之第一端與連接於基準節點20d之第二端。對基準節點20d供給基準電壓(例如,接地電壓)。電容元件23_i之第一端經由中間節點20c而連接於位元線BL。於位元線BL上,在中間節點20c與輸出節點20d之間電性連接有開關SW4_i。
開關SW1根據來自全域電路10之全域信號MULT被控制為接通狀態、斷開狀態。開關SW4_i根據來自全域電路10之全域信號SUM被控制為接通狀態、斷開狀態。
單位單元UC_i中之記憶元件21_i具有連接於開關SW2之控制端子之輸出節點。記憶元件21_i記憶權重W之1個位元,並將與所記憶之位元值相應之電壓向開關SW2之控制端子輸出。開關SW2根據從記憶元件21_i輸出之電壓而維持為接通狀態、斷開狀態。
記憶元件21_i可為揮發性記憶體單元(例如,SRAM(Static Random Access Memory,靜態隨機存取記憶體)記憶體單元),亦可為非揮發性記憶體單元(例如,將快閃記憶體單元、阻變元件以相反極性呈2段連接而成之記憶體單元等)。若考慮編程之容易性及動作時之低耗電特性,則記憶元件21_i理想的是如圖10所示由SRAM記憶體單元構成。圖10係表示單位單元UC_i之具體構成之圖,例示出記憶元件21_i由SRAM記憶體單元構成之情形時之單位單元UC_i之構成。
圖10所示之記憶元件21_i係具有負載電晶體T3、T5、驅動電晶體T4、T6及傳輸電晶體T1、T2之6T型SRAM單元。傳輸電晶體T1、T2可分別由NMOS(N-channel metal oxide semiconductor,N型金氧半導體)電晶體構成。負載電晶體T3、T5可分別由PMOS(P-channel metal oxide semiconductor,P型金氧半導體)電晶體構成。驅動電晶體T4、T6可分別由NMOS電晶體構成。負載電晶體T3與驅動電晶體T4構成反相器INV1,負載電晶體T5與驅動電晶體T6構成反相器INV2。反相器INV1之輸出端子經由記憶節點Nt而連接於反相器INV2之輸入端子,反相器INV2之輸出端子經由反轉記憶節點Nc而連接於反相器INV1之輸入端子。反相器INV1與反相器INV2構成正反器。記憶節點Nt構成記憶元件21_i之輸出節點,連接於開關SW2之控制端子。
在記憶元件21_i之記憶節點Nt與權重用位元線WBL之間連接有傳輸電晶體T1。在正反器之反轉記憶節點Nc與權重用反轉位元線WBLB之間連接有傳輸電晶體T2。傳輸電晶體T1、T2分別於從對應之驅動器經由權重用字元線WWL對閘極供給有效位準之控制信號時接通。
例如,當於權重用位元線WBL維持為H位準、權重用反轉位元線WBLB維持為L位準之狀態下傳輸電晶體T1、T2接通時,於記憶節點Nt保持H位準,於反轉記憶節點Nc保持L位準。即,對記憶元件21_i寫入位元值「1」。由於反相器INV1與反相器INV2互補地動作,故即便於傳輸電晶體T1、T2斷開後,於記憶節點Nt仍保持H位準,於反轉記憶節點Nc仍保持L位準。即,記憶元件21_i保持位元值「1」並且將與位元值「1」相應之H位準之電壓向開關SW2之控制端子輸出。
當於權重用位元線WBL維持為L位準、權重用反轉位元線WBLB維持為H位準之狀態下傳輸電晶體T1、T2接通時,於記憶節點Nt保持L位準,於反轉記憶節點Nc保持H位準。即,對記憶元件21_i寫入位元值「0」。由於反相器INV1與反相器INV2互補地動作,故即便於傳輸電晶體T1、T2斷開後,於記憶節點Nt仍保持L位準,於反轉記憶節點Nc仍保持H位準。即,記憶元件21_i保持位元值「0」並且將與位元值「0」相應之L位準之電壓向開關SW2之控制端子輸出。
單位單元UC_i中,開關SW1、SW2、SW4_i可分別由電晶體T7、T8、T9構成。電晶體T7、T8、T9可分別由NMOS電晶體構成。電晶體T7具有連接於字元線WL之源極、連接於電晶體T8之汲極、及接收全域信號MULT之閘極。電晶體T8具有連接於電晶體T7之源極、經由中間節點20c而連接於位元線BL之汲極、及接收從記憶元件21_i之記憶節點Nt輸出之電壓之閘極。電晶體T9具有能夠連接於輸出節點20b之源極、能夠經由開關SW3(參照圖2、圖5)而連接於共通電壓V COM之汲極、及接收全域信號SUM之閘極。圖10所示之單位單元UC_i可視為將6T型SRAM單元擴展為9T1C型而成之SRAM單元。將9T1C型單位單元UC_i之構成稱為SRAMx。
再者,於記憶元件21_i為揮發性記憶體單元(SRAM記憶體單元)之情形時,亦可從蓄電元件(未圖示)向記憶元件21_i之電源節點VDD供給備份用電源。藉此,即便於半導體積體電路1之電源斷開時,亦能將權重W之位元值非揮發地記憶於記憶元件21_i中。蓄電元件例如為二次電池。
如以上上述,於第4實施方式中,在單位單元UC_i中,藉由以6T型SRAM單元構成記憶元件21_i,且分別由電晶體構成開關SW1、SW2、SW4,而能以9T1C型構成(SRAMx)來安裝單位單元UC_i。
再者,單位單元UC_i亦可如圖11所示般構成,來代替圖10所示之構成。圖11係表示第4實施方式之變化例之單位單元UC_i之具體構成的圖。於該情形時,於單位單元UC_i中,開關SW1、SW2、SW4_i可分別由轉移閘極TG1、TG2、TG3構成。與此相對應地,全域電路10進而輸出全域信號MULT ̄、SUM ̄。全域信號MULT ̄係使全域信號MULT邏輯反轉而得之信號。全域信號SUM ̄係使全域信號SUM邏輯反轉而得之信號。
轉移閘極TG1包含源極、汲極分別被共通連接之電晶體T7、T10。電晶體T7、T10可分別由NMOS電晶體、PMOS電晶體構成。電晶體T10具有連接於字元線WL之源極、連接於轉移閘極TG2之汲極、及接收全域信號MULT ̄之閘極。
轉移閘極TG2包含源極、汲極分別被共通連接之電晶體T8、T11。電晶體T8、T11可分別由NMOS電晶體、PMOS電晶體構成。電晶體T11具有連接於轉移閘極TG1之源極、經由中間節點20c而連接於位元線BL之汲極、及接收從記憶元件21_i之反轉記憶節點Nc輸出之電壓之閘極。
轉移閘極TG3包含源極、汲極分別被共通連接之電晶體T9、T12。電晶體T9、T12可分別由NMOS電晶體、PMOS電晶體構成。電晶體T12具有能夠連接於輸出節點20b之源極、能夠經由開關SW3(參照圖2、圖5)而連接於共通電壓V COM之汲極、及接收全域信號SUM ̄之閘極。
圖11所示之單位單元UC_i可視為將6T型SRAM單元擴展為12T1C型而成之SRAM單元。將圖11所示之12T1C型單位單元UC_i之構成亦稱為SRAMx。即,於單位單元UC_i中,藉由以6T型SRAM單元構成記憶元件21_i,且分別由2T之轉移閘極構成開關SW1、SW2、SW4,而能以12T1C型構成(SRAMx)來安裝單位單元UC_i。
(第5實施方式)  接下來,對第5實施方式之運算系統100進行說明。以下,以與第1實施方式~第4實施方式不同之部分為中心進行說明。
於第1實施方式中,未提及半導體積體電路之輸入電路之構成,於第5實施方式中,將例示半導體積體電路之輸入電路之具體構成。
於圖1所示之運算系統100中,輸入電路2將數位域之輸入資料D in=(d m−1,d m−2,…,d 1,d 0)轉換為類比域之輸入向量X=(V X,V X/2,…,V X/2 n−2,V X/2 n−1)並向半導體積體電路1之運算電路20輸入。考慮準備n個單位構成30_(n−1)~30_0作為輸入電路2之構成。
各單位構成30可如圖12所示般構成。圖12係表示輸入電路2之單位構成30之圖,例示出第i列(i=m−1~0)之單位構成30_i。單位構成30_i具有DA轉換電路DA1、驅動器DV1、開關SW11及開關SW12。DA轉換電路DA1電性連接於輸入節點30a_i及開關SW11之間。開關SW11電性連接於DA轉換電路DA1及中間節點30d_i之間。驅動器DV1電性連接於中間節點30d_i及輸出節點30b_i之間。開關SW12電性連接於輸入節點30c_i及中間節點30d_i之間。輸入節點30c_i可連接於在列方向上相鄰之(例如上一個)單位構成30_(i+1)之輸出節點30b_(i+1)(參照圖13)。
DA轉換電路DA1將數位信號D in i轉換為類比信號V X i。列控制信號isMSB表示對應列之權重W之位元b i是否為MSB。列控制信號isMSB於對應列之權重W之位元b i為MSB時被設定為有效位準(例如,1),於對應列之權重W之位元b i並非MSB時被設定為無效位準(例如,0)。
開關SW11根據列控制信號isMSB而被控制為接通狀態、斷開狀態。開關SW11利用控制端子來接收列控制信號isMSB。開關SW11於有效位準之列控制信號isMSB被供給至控制端子時維持為接通狀態,於無效位準之列控制信號isMSB被供給至控制端子時維持為斷開狀態。即,於對應列之權重W之位元b i為MSB時開關SW11維持為接通狀態,於對應列之權重W之位元b i並非MSB時開關SW11維持為斷開狀態。
開關SW12根據使列控制信號isMSB邏輯反轉而得之列控制信號isMSB ̄而被控制為接通狀態、斷開狀態。開關SW12利用控制端子來接收列控制信號isMSB ̄。開關SW12於無效位準之列控制信號isMSB ̄被供給至控制端子時維持為斷開狀態,於有效位準之列控制信號isMSB ̄被供給至控制端子時維持為接通狀態。即,於對應列之權重W之位元b i為MSB時開關SW12維持為斷開狀態,於對應列之權重W之位元b i並非MSB時開關SW12維持為接通狀態。
驅動器DV1具有可變增益G。驅動器DV1於有效位準之列控制信號isMSB被供給至控制端子時設定為可變增益G=1,於無效位準之列控制信號isMSB被供給至控制端子時設定為可變增益G=0.5。可變增益G=1時,驅動器DV1之驅動能力對應於第1能力,可變增益G=0.5時,驅動器DV1之驅動能力對應於第2能力。即,於對應列之權重W之位元b i為MSB時驅動器DV1之驅動能力被控制為第1能力,於對應列之權重W之位元b i並非MSB時驅動器DV1之驅動能力被控制為低於第1能力之第2能力。
如圖13所示,輸入電路2可藉由將n個單位構成30_(n−1)~30_0呈梯狀連接而構成。圖13係表示輸入電路2之構成之電路圖,例示出與運算電路20中之任意複數列(第(i+3)~i列)對應之複數個單位構成30_(i+3)~30_i。
單位構成30_i之輸入節點30c_i連接於上一個單位構成30_(i+1)之輸出節點30b_(i+1)。單位構成30_(i+1)之輸入節點30c_(i+1)連接於上一個單位構成30_(i+2)之輸出節點30b_(i+2)。單位構成30_(i+2)之輸入節點30c_(i+2)連接於上一個單位構成30_(i+3)之輸出節點30b_(i+3)。
單位構成30_i之開關SW11、SW12分別根據列控制信號isMSB i、isMSB i ̄而被控制為接通狀態、斷開狀態。單位構成30_(i+1)之開關SW11、SW12分別根據列控制信號isMSB i 1、isMSB i 1 ̄而被控制為接通狀態、斷開狀態。單位構成30_(i+2)之開關SW11、SW12分別根據列控制信號isMSB i 2、isMSB i 2 ̄而被控制為接通狀態、斷開狀態。單位構成30_(i+3)之開關SW11、SW12分別根據列控制信號isMSB i 3、isMSB i 3 ̄而被控制為接通狀態、斷開狀態。
從複數個單位構成30_(i+3)~30_i向半導體積體電路1輸入之輸入信號V X i 3~V X i係由驅動器DV1根據權重W之位元精度n而以1或0.5之增益驅動。即,與權重W之複數位元n對應之複數列中與MSB之列對應之單位構成30中,設定為驅動器DV1之可變增益G=1,與除此以外之列對應之單位構成30中,設定為驅動器DV1之可變增益G=0.5。
例如,於權重W之位元精度n=2之情形時,圖13所示之電路之連接構成如圖14所示。圖14係表示輸入電路2之使用實例(n=2之情形)之圖。各單位單元UC例如為如圖10或圖11所示之SRAMx。
圖14所示之示例中,權重W 1之2位元b 1、b 0分別保持於2個單位單元UC_(i+3)、UC_(i+2)中。與此相對應地,與MSB對應之單位構成30_(i+3)之開關SW1維持為接通狀態,與其他位元對應之單位構成30_(i+2)之開關SW1維持為斷開狀態。與MSB對應之單位構成30_(i+3)之開關SW2維持為斷開狀態,與其他位元對應之單位構成30_(i+2)之開關SW1維持為接通狀態。藉此,不啟動第(i+2)列之DA轉換電路DA1,使第(i+3)列之驅動器DV1之輸出節點連接於第(i+2)列之驅動器DV1之輸入節點。第(i+3)列之驅動器DV1、第(i+2)列之驅動器DV1之可變增益G分別設定為1、0.5。
藉由該構成,根據輸入資料D in 1而從第(i+3)列之DA轉換電路DA1輸出之類比信號V X 1經由第(i+3)列之驅動器DV1而作為輸入電壓V X 1傳送至運算電路20之單位單元UC_(i+3)。又,類比信號V X 1經由第(i+3)列之驅動器DV1及第(i+2)列之驅動器DV1而作為輸入電壓V X 1/2傳送至運算電路20之單位單元UC_(i+2)。
又,權重W 0之2位元b 1、b 0保持於2個單位單元UC_(i+1)、UC_i中。與此相對應地,與MSB對應之單位構成30_(i+1)之開關SW1維持為接通狀態,與其他位元對應之單位構成30_i之開關SW1維持為斷開狀態。與MSB對應之單位構成30_(i+1)之開關SW2維持為斷開狀態,與其他位元對應之單位構成30_i之開關SW1維持為接通狀態。藉此,不啟動第i列之DA轉換電路DA1,使第(i+1)列之驅動器DV1之輸出節點連接於第i列之驅動器DV1之輸入節點。第(i+1)列之驅動器DV1、第i列之驅動器DV1之可變增益G分別設定為1、0.5。
藉由該構成,根據輸入資料D in 0而從第(i+1)列之DA轉換電路DA1輸出之類比信號V X 0經由第(i+1)列之驅動器DV1而作為輸入電壓V X 0傳送至運算電路20之單位單元UC_(i+1)。又,類比信號V X 0經由第(i+1)列之驅動器DV1及第i列之驅動器DV1而作為輸入電壓V X 0/2傳送至運算電路20之單位單元UC_i。
圖14所示之連接構成中,於輸入電路2中,可將執行動作之DA轉換電路DA1之數量減少至列數之1/2,從而可降低包含輸入電路2之運算系統100之耗電。
例如,於權重W之位元精度n=4之情形時,圖13所示之電路之連接構成如圖15所示。圖15係表示輸入電路2之使用實例(n=4之情形)之圖。各單位單元UC例如為如圖10或圖11所示之SRAMx。
圖15所示之示例中,權重W 0之4位元b 3、b 2、b 1、b 0分別保持於4個單位單元UC_(i+3)、UC_(i+2)、UC_(i+1)、UC_i中。與此相對應地,與MSB對應之單位構成30_(i+3)之開關SW1維持為接通狀態,與其他位元對應之單位構成30_(i+2)~30_i之開關SW1維持為斷開狀態。與MSB對應之單位構成30_(i+3)之開關SW2維持為斷開狀態,與其他位元對應之單位構成30_(i+2)~30_i之開關SW1維持為接通狀態。藉此,不啟動第(i+2)~i列之DA轉換電路DA1,使第(i+3)列之驅動器DV1之輸出節點連接於第(i+2)列之驅動器DV1之輸入節點,使第(i+2)列之驅動器DV1之輸出節點連接於第(i+1)列之驅動器DV1之輸入節點,使第(i+1)列之驅動器DV1之輸出節點連接於第i列之驅動器DV1之輸入節點。第(i+3)列之驅動器DV1之可變增益G設定為1,第(i+2)~i列之驅動器DV1之可變增益G設定為0.5。
藉由該構成,根據輸入資料D in 0而從第(i+3)列之DA轉換電路DA1輸出之類比信號V X 0經由第(i+3)列之驅動器DV1而作為輸入電壓V X 0傳送至運算電路20之單位單元UC_(i+3)。又,類比信號V X 0經由第(i+3)列之驅動器DV1及第(i+2)列之驅動器DV1而作為輸入電壓V X 0/2傳送至運算電路20之單位單元UC_(i+2)。類比信號V X 0經由第(i+3)列之驅動器DV1、第(i+2)列之驅動器DV1及第(i+1)列之驅動器DV1而作為輸入電壓V X 0/2 2傳送至運算電路20之單位單元UC_(i+1)。類比信號V X 0經由第(i+3)列之驅動器DV1、第(i+2)列之驅動器DV1、第(i+1)列之驅動器DV1及第i列之驅動器DV1而作為輸入電壓V X 0/2 3傳送至運算電路20之單位單元UC_i。
圖15所示之連接構成中,於輸入電路2中,可將執行動作之DA轉換電路DA1之數量減少至列數之1/4,從而能夠降低包含輸入電路2之運算系統100之耗電。
如以上所述,於第5實施方式中,在運算系統100中,將複數個單位構成30呈梯狀連接而構成輸入電路2。藉由該構成,於輸入電路2中,能夠減少執行動作之DA轉換電路DA1之數量,從而能夠降低包含輸入電路2之運算系統100之耗電。
再者,各單位構成30'中,如圖16所示,亦可構成為:使驅動器DV1之增益固定,將輸入節點30c之電壓以複數個阻抗元件予以分壓而輸入至驅動器DV1。圖16係表示第5實施方式之變化例中之輸入電路2'之構成的電路圖。
各單位構成30'其驅動器DV1之增益固定為1,且進而具有複數個阻抗元件Z1、Z2。複數個阻抗元件Z1、Z2具有彼此相等之阻抗。各阻抗元件Z1、Z2可使用具有阻抗之任意元件,例如可使用電容元件、電阻元件、或電晶體等。各阻抗元件Z1、Z2亦可與DA轉換電路DA1內之一部分元件(例如電容元件CE,參照圖18)共通化。於該情形時,能夠縮小輸入電路2'之電路規模。
各單位構成30'中,阻抗元件Z1具有連接於開關SW2之第一端與連接於中間節點30d之第二端。阻抗元件Z2具有連接於中間節點30d之第一端與連接於基準電位(例如,接地電位)之第二端。
例如,於對單位構成30'_(i+3)之驅動器DV1輸入類比信號V X i 3,使單位構成30'_(i+2)之開關SW12維持為接通狀態之情形時,驅動器DV1輸出類比信號V X i 3。又,類比信號V X i 3由單位構成30'_(i+2)之複數個阻抗元件Z1、Z2分壓,而將類比信號V X i 3/2輸入至單位構成30'_(i+2)之驅動器DV1,該驅動器DV1輸出類比信號V X i 3/2。
如此,藉由圖16所示之輸入電路2'之構成,亦能實現與圖14及圖15所示之連接構成實質上同樣地執行動作之連接構成,能夠降低包含輸入電路2'之運算系統100之耗電。
(第6實施方式)  接下來,對第6實施方式之運算系統200進行說明。以下,以與第1實施方式~第5實施方式不同之部分為中心進行說明。
於第2實施方式中未提及半導體積體電路之輸入電路之構成,而於第6實施方式中例示半導體積體電路之輸入電路之具體構成。
第2實施方式之運算系統200於半導體積體電路201之運算電路220(參照圖5)中所保持之權重W之複數位元以2的補數表達來表示正整數或負整數之情形時,具有輸入電路202來代替輸入電路2(參照圖1)。輸入電路202將數位域之輸入資料D in=(d m−1,d m−2,…,d 1,d 0)轉換為類比域之輸入向量X=(V COM-V X,V COM+V X/2,…,V COM+V X/2 n−2,V COM+V X/2 n−1),並向半導體積體電路201之運算電路220輸入。考慮準備n個單位構成230_(n−1)~230_0作為輸入電路202之構成。
各單位構成230可如圖17所示般構成。圖17係表示輸入電路202之單位構成230之圖,例示出第i列(i=n−1~0)之單位構成230_i。於第i列與權重W之MSB對應之情形時,單位構成230_i產生輸入信號Vcom−Vx並向運算電路220輸入,於第i列與權重W之除MSB以外之位元對應之情形時,單位構成230_i產生輸入信號Vcom+Vx/2 n−1-i並向運算電路220輸入。
單位構成230_i具有將單位構成30_i(參照圖12)擴展而得之構成。單位構成230_i與權重W之複數位元以2的補數表達來表示正整數或負整數之情形對應,產生以共通電壓V COM為基準(信號振幅0)之具有正信號振幅或負信號振幅之輸入電壓。單位構成230_i具有DA轉換電路DA201、驅動器DV201、開關SW211、開關SW212來代替DA轉換電路DA1、驅動器DV1、開關SW11及開關SW12(參照圖12)。單位構成230_i進而具有開關SW213、開關SW214、阻抗元件Z201、阻抗元件Z202、邏輯和閘極OG201及電晶體TR201。
DA轉換電路DA201電性連接於輸入節點230a_i及開關SW211之間。開關SW211電性連接於DA轉換電路DA201及中間節點230d_i之間。驅動器DV201電性連接於中間節點230d_i及中間節點230e_i之間。開關SW212電性連接於輸入節點230c_i及中間節點230d_i之間。邏輯和閘極OG201運算全域信號INV與列控制信號isMSB之邏輯和,並將運算結果供給至開關SW212之控制端子。輸入節點230c_i可電性連接於在列方向上相鄰之(例如上一個)單位構成230_(i+1)之中間節點230e_(i+1)(參照圖20)。
再者,藉由將n個單位構成230_(n−1)~230_0呈梯狀連接而構成輸入電路202(參照圖20),能夠將根據權重W之位元數n來執行動作之DA轉換電路DA201之個數限制為1/n,從而能夠實現輸入電路202之低耗電化,該方面與圖12所示之單位構成30相同。
開關SW213電性連接於中間節點230e_i及輸出節點230b_i之間。阻抗元件Z201具有連接於開關SW212之第一端與連接於中間節點230d_i之第二端。阻抗元件Z202具有連接於中間節點230d_i之第一端與連接於中間節點230f_i之第二端。阻抗元件Z201、Z202可分別採用具有阻抗之任意元件。圖17中例示了阻抗元件Z201、Z202分別為電容元件之構成。此時,驅動器DV1之增益固定為1,複數個阻抗元件Z1、Z2具有彼此相等之阻抗。
開關SW214電性連接於中間節點230f_i及基準節點230g_i之間。基準節點230g_i被供給全域信號INV。電晶體TR201例如為NMOS電晶體,具有連接於基準節點230h_i之源極、連接於中間節點230f_i之汲極、及接收列控制信號isMSB ̄之閘極。列控制信號isMSB ̄係使列控制信號isMSB邏輯反轉而得之信號。藉此,中間節點230f_i之電位V CB於第i列與權重W之MSB對應之情形時,被設定為全域信號INV之值,於第i列與權重W之除MSB以外之位元對應之情形時,被設定為共通電壓V COM
權重W之位元數為n之情形時之各單位構成230之DA轉換電路DA201可如圖18所示般構成。圖18係表示DA轉換電路DA201之構成之電路圖。
DA轉換電路DA201係標準之電荷重新分配型DA轉換電路,具有m個電容元件CE(m−1)~CE0、m個反相器IV(m−1)~IV0、m個互斥或閘極XG(m−1)~XG0、m個正反器FF(m−1)~FF0、及正反器FFe。m個正反器FF(m−1)~FF0、m個互斥或閘極XG(m−1)~XG0、m個反相器IV(m−1)~IV0、及m個電容元件CE(m−1)~CE0分別相互對應。m個反相器IV(m−1)~IV0分別包含反相連接之NMOS電晶體及PMOS電晶體。
正反器FFe與時脈CLK同步地保持列控制信號isMSB。與此同時,正反器FFe將列控制信號isMSB向邏輯和閘極OG201之輸入節點及開關SW214之控制端子輸出,將列控制信號isMSB ̄向電晶體TR201之閘極輸出(參照圖17)。當清除信號CLR ̄變為有效位準(例如,L位準)時,正反器FFe將所保持之值重設為初始值(例如,0)。
n個正反器FF(m−1)~FF0分別與時脈CLK同步地保持輸入資料D in之m位元d m−1~d 0之值。與此同時,各正反器FF將位元d之值向對應之互斥或閘極XG輸出。當清除信號CLR ̄變為有效位準(例如,L位準)時,各正反器FF將所保持之值重設為初始值(例如,0)。
m個互斥或閘極XG(m−1)~XG0根據全域信號INV來切換是否使m位元d m−1~d 0位元反轉。各互斥或閘極XG運算從對應之正反器FF接收到之位元d與全域信號INV之互斥或,並產生運算結果B m−1~B 0。藉此,m個互斥或閘極XG(m−1)~XG0於全域信號INV=0時,將m位元d m−1~d 0直接作為運算結果B m−1~B 0向m個反相器IV(m−1)~IV0輸出,於全域信號INV=1時,將m位元d m−1~d 0位元反轉後之運算結果B m−1~B 0向m個反相器IV(m−1)~IV0輸出。
m個反相器IV(m−1)~IV0使從m個互斥或閘極XG(m−1)~XG0輸出之m個位元值邏輯反轉後向m個電容元件CE(m−1)~CE0輸出。各反相器IV使從對應之互斥或閘極XG輸出之位元值邏輯反轉,並向對應之電容元件CE之第一端供給。
m個電容元件CE(m−1)~CE0以二進制計具有不同之電容值2 (m−1)C~C。各電容元件CE具有連接於對應之反相器IV之第一端與連接於輸出節點N out之第二端。各電容元件C累積與供給至第一端之位元值相應之電荷。與此相對應地,m個電容元件CE(m−1)~CE0之第二端之電荷根據電容比被重新分配,與重新分配後之電荷相應之電壓出現於輸出節點N out。再者,根據控制之邏輯不同,此時,亦可使圖17所示之開關SW211接通而將阻抗元件(電容元件)Z201、Z202亦用於電荷之重新分配。
作為DA轉換電路DA201之動作,考慮以下之第1動作與第2動作。
第1動作中,DA轉換電路DA201可對輸入資料Din進行DA轉換後將作為轉換結果之V COM+V X從輸出節點N out輸出。輸出V COM+V X可於0 V與Vdd=2V COM之間變化。輸出中所包含之參數Vx可取正值或負值。|Vx|可於0 V與V COM之間變化。輸入資料Din之複數位元中,MSB為符號位。表示當MSB之值為0時複數位元之型樣為正整數,且表示當MSB之值為1時複數位元之型樣為負整數。藉此,可將輸入資料Din之複數位元所表示之正整數或負整數藉由假性「二進制偏移」映射至輸出V COM+V X之電壓值中。於DA轉換電路DA201之位元精度n為4位元之情形時,輸出V COM+V X典型的是可於V COM−(8/8)×V COM與V COM+(7/8)×V COM之間變化。
第2動作中,如數式4及數式5所示,於與權重W之MSB對應之列中,要求DA轉換電路DA201輸出V COM−V X,於與權重W之除MSB以外之位元對應之列中,要求DA轉換電路DA201輸出V COM+V X/2 n−i-1
於圖17所示之單位構成230_i、圖18所示之DA轉換電路DA201中,分別從全域電路10(參照圖5)供給全域信號INV,以能夠應對第1動作與第2動作兩者。當全域信號INV=0時,DA轉換電路DA201進行第1動作,單位構成230_i進行與DA轉換電路DA201之第1動作相應之動作。當全域信號INV=1時,DA轉換電路DA201進行第2動作,單位構成230_i進行與DA轉換電路DA201之第2動作相應之動作。
DA轉換電路DA201中,利用m個互斥或閘極XG(m−1)~XG0來運算m位元d m−1~d 0與全域信號INV之互斥或,利用m個電容元件CE(m−1)~CE0根據電容比來進行電荷之重新分配。第1動作由以下之數式13表示,第2動作由以下之數式14表示。
Figure 02_image020
如數式13、14所示,第2動作相對於第1動作有1LSB之誤差。為了修正該1LSB之誤差,可使用如圖19所示之映射表。圖19中,分別就全域信號INV=0之情形與全域信號INV=1之情形,對輸入資料D in之複數位元與中間節點230f_i之電位V CB之位元的集合,映射有DA轉換電路DA201之輸出V COM+V X或V COM-V X。利用圖19所示之映射表,可於全域信號INV=0時(第1動作)與全域信號INV=1時(第2動作)使基準(V COM)一致,從而可修正第2動作中之1LSB之誤差。
輸入電路202可藉由將n個單位構成230_(n−1)~230_0呈梯狀連接而構成之方面與第5實施方式相同。關於任意之第i列,單位構成230_i之輸入節點230c_i連接於上一個單位構成230_(i+1)之中間節點230e_(i+1)。藉由反覆進行該連接,可使n個單位構成230_(n−1)~230_0呈梯狀連接。
例如,於半導體積體電路201之運算電路220(參照圖5)中所保持之權重W之位元精度為n=3位元,且該3位元以2的補數表達來表示正整數或負整數之情形時,輸入電路202可如圖20所示般連接。圖20係表示輸入電路202之構成之電路圖,例示出運算電路220(參照圖5)中所保持之權重W為3位元且以2的補數表達來表示正整數或負整數之情形時之構成。
單位構成230_0之輸入節點230c_0連接於上一個單位構成230_1之中間節點230e_1。單位構成230_1之輸入節點230c_1連接於上一個單位構成230_2之中間節點230e_2。藉此,可使3個單位構成230_2~230_0呈梯狀連接。
n個單位構成230_(n−1)~230_0之梯狀連接中,可利用2個相位進行處理,使用全域信號INV來修正單位構成230間之1LSB之誤差。
例如,於參數V X具有正值,半導體積體電路201之運算電路220(參照圖5)中所保持之權重W之位元精度為n=3位元,且該3位元以2的補數表達來表示正整數或負整數之情形時,輸入電路202可如圖21所示般動作。圖21係表示輸入電路202之動作之波形圖,圖21(a)表示各信號或各電壓之時間轉變,圖21(b)表示3個單位構成230_2~230_0之中間節點230e_2~230e_0之電壓V DV2~V DV0之時間變化。圖21中,例示出運算電路220中所保持之權重W為3位元且以2的補數表達來表示正整數或負整數之情形時之動作。DA轉換電路DA201內之構成亦成為對應於n=3之構成(參照圖18)。再者,以下,信號之位準「0」可改稱為L位準,信號之位準「1」可改稱為H位準。
於時點t31之前,根據列控制信號isMSB、isMSB ̄之值對各單位構成230之開關SW214及電晶體TR201進行接通控制、斷開控制。即,根據列控制信號isMSB之值設定中間節點230f之電壓V CB。如圖20所示,於與權重W之MSB對應之第2列中,列控制信號isMSB2=1,isMSB2 ̄=0,開關SW214接通(成為虛線所示之狀態)且電晶體TR201斷開,故設定為電壓V CB2=INV=0。於與權重W之除MSB以外之位元對應之第1列中,列控制信號isMSB1=0,isMSB1 ̄=1,開關SW214斷開且電晶體TR201接通,故設定為電壓V CB1=V COM。於與權重W之LSB對應之第0列中,列控制信號isMSB0=0,isMSB0 ̄=1,開關SW214斷開且電晶體TR201接通,故設定為電壓V CB0=V COM。此時,維持對開關SW213之控制信號O=0。因此,開關SW213斷開。
各單位構成230之開關SW211、SW212係根據列控制信號isMSB、isMSB ̄之值被進行接通控制、斷開控制。於與權重W之MSB對應之第2列中,列控制信號isMSB2=1,isMSB2 ̄=0,開關SW211接通(成為虛線所示之狀態)且開關SW212斷開,故啟動DA轉換電路DA201。於與權重W之除MSB以外之位元對應之第1列中,列控制信號isMSB1=0,isMSB1 ̄=1,開關SW211斷開且開關SW212接通(成為虛線所示之狀態),故不啟動DA轉換電路DA201,使第2列之中間節點230e_2連接於阻抗元件Z201之第一端。於與權重W之LSB對應之第0列中,列控制信號isMSB0=0,isMSB0 ̄=1,開關SW211斷開且開關SW212接通(成為虛線所示之狀態),故不啟動DA轉換電路DA201,使第1列之中間節點230e_2連接於阻抗元件Z201之第一端。藉此,形成單位構成230_2之DA轉換電路DA201→開關SW211→驅動器DV201→單位構成230_1之阻抗元件Z201→驅動器DV201→單位構成230_0之阻抗元件Z201→驅動器DV201之梯狀連接構成。又,由於能夠將單位構成230_2~230_0中執行動作之DA轉換電路DA201之個數限制為1個,故能夠實現輸入電路202之低耗電化。
如圖21所示,於時點t31~t32期間進行第1相位之處理。當到達時點t31時,輸入資料Din=(d 2,d 1,d 0)被輸入至單位構成230_2之DA轉換電路DA201,3位元d 2~d 0分別由3個正反器FF2~FF0保持。由於全域信號INV=0,故3個互斥或閘極XG2~XG0將3位元d 2~d 0直接作為運算結果B 2~B 0向3個反相器IV2~IV0輸出。3個反相器IV2~IV0將運算結果B 2~B 0邏輯反轉後供給至3個電容元件CE2~CE0之第一端。於3個電容元件CE2~CE0之第一端,產生與運算結果B 2~B 0之邏輯反轉值相應之電荷,與此相對應地,於第二端,產生相反極性之電荷。於第二端產生之各電荷根據3個電容元件CE2、CE1、CE0之電容值2 2C、2C、C之比率被重新分配。
藉此,單位構成230_2之DA轉換電路DA201之輸出節點N out之電壓從0 V逐漸增加至V COM+V X,單位構成230_2之中間節點230e_2之電壓V DV2從0 V逐漸增加至V COM+V X。與此相對應地,藉由單位構成230_1之阻抗元件Z201、Z202之分壓,單位構成230_1之中間節點230e_1之電壓V DV1從0 V逐漸增加至V COM+V X/2。進而,藉由單位構成230_0之阻抗元件Z201、Z202之分壓,單位構成230_0之中間節點230e_0之電壓V DV0從0 V逐漸增加至V COM+V X/2 2。此時,維持控制信號O=0。
於時點t32~t33期間進行第2相位之處理。當到達時點t32時,全域信號INV從0轉變為1,電壓V CB2從0轉變為1。伴隨以上轉變,為了修正1LSB之誤差,單位構成230_2之DA轉換電路DA201中之互斥或閘極XG2~XG0將使3位元d 2~d 0位元反轉後所得之運算結果B 2~B 0向3個反相器IV2~IV0輸出。又,藉此,單位構成230_2之DA轉換電路DA201之輸出節點N out之電壓從V COM+V X逐漸減小至V COM-V X,單位構成230_2之中間節點230e_2之電壓V DV2從V COM+V X逐漸減小至V COM-V X
另一方面,根據全域信號INV=1,使單位構成230_1之開關SW212、單位構成230_0之開關SW212分別斷開(成為圖20中實線所示之狀態)。又,單位構成230_1中,仍維持電壓V CB1=V COM,故中間節點230e_1之電壓V DV1維持為V COM+V X/2。同樣地,單位構成230_0中,仍維持電壓V CB0=V COM,故單位構成230_0之中間節點230e_0之電壓V DV0維持為V COM+V X/2 2。此時,維持控制信號O=0。
於時點t33,控制信號O從0轉變為1。於各單位構成230_2~230_0中,開關SW213接通,向輸出節點230b傳送中間節點230e之電壓。與此相對應地,單位構成230_2將輸入電壓V COM-V X輸入至運算電路220,單位構成230_1將輸入電壓V COM+V X/2輸入至運算電路220,單位構成230_0將輸入電壓V COM+V X/2 2輸入至運算電路220(參照圖5)。
如以上上述,於第6實施方式中,在運算系統200中,輸入電路202係將複數個單位構成230呈梯狀連接而構成。藉由該構成,於輸入電路202中,能夠減少執行動作之DA轉換電路DA201之數量,從而能夠降低包含輸入電路202之運算系統200之耗電。
再者,輸出電壓對DA轉換電路DA201中之輸入資料D in之複數位元b及V CB之位元集合之映射並不限定於圖19所示之示例,可進行以共通電壓V COM為基準之任意映射。
又,於藉由n個單位構成230_(n−1)~230_0之梯狀連接來構成輸入電路202之情形時,亦可構成為:於與輸入資料D in之位元值0對應之列之單位構成230中,停止向驅動器DV201供給電源並且使開關SW213維持為斷開狀態。藉此,能夠降低輸入電路202之耗電。
對本發明之若干個實施方式進行了說明,但該等實施方式係作為示例而提出者,並不意圖限定發明之範圍。該等新穎之實施方式能以其他各種方式實施,且於不脫離發明主旨之範圍內,能夠進行各種省略、置換、變更。該等實施方式及其變化包含於發明之範圍或主旨中,並且包含於申請專利範圍所記載之發明及其均等之範圍內。
[相關申請案]  本申請案享有以日本專利申請案2021-102877號(申請日:2021年6月22日)為基礎申請案之優先權。本申請案藉由參照該基礎申請案而包含基礎申請案之全部內容。
1,1',201,301:半導體積體電路 2,2',202:輸入電路 3:輸出電路 10:全域電路20,20',220,320:運算電路 20_(N−1,M−1)~20_(0,0):運算電路 20a_(n−1),…,20a_0:輸入節點 20b:輸出節點 20c_(n−1)~20c_0:中間節點 20d:基準節點 20e:共通節點 21_(n−1)~21_0:記憶元件 22_(n−1)~22_0:乘法電路 23_(n−1)~23_0:電容元件 24:加法電路 30_(n−1)~30_0:單位構成 30a_i:輸入節點 30b_i, 30b_(i+1), 30b_(i+2), 30b_(i+3):輸出節點 30c_i, 30c_(i+1), 30c_(i+2):輸入節點 30d_i:中間節點  100, 100', 200:運算系統 221_(n−1)~221_0:記憶元件 230_(n−1)~230_0:單位構成 230a_i, 230c_i:輸入節點 230b_i:輸出節點 230d_i, 230e_i, 230f_i:中間節點 230g_i, 230h_i:基準節點 BL0~BL(n−1):位元線 C:電容值 CE(m−1)~CE0:電容元件 CLK:時脈 CLR ̄:清除信號 DA1, DA201:DA轉換電路 D in:輸入資料 D out:輸出資料 DV1, DV2, DV201:驅動器 FF(m−1)~FF0, FFe:正反器 G:可變增益 INV1, INV2:反相器 IV(m−1)~IV0:反相器 isMSB:列控制信號 L11:線 LSB:最下位位元 MULT, MULT ̄, PRE, SUM, SUM ̄:全域信號 MSB:最上位位元 Nc:反轉記憶節點 Nt:記憶節點 OG201:邏輯和閘極 SW1, SW2, SW3, SW11, SW12, SW211, SW212, SW213, SW214:開關 SW4_(n−1)~SW4_0:開關 T1, T2:傳輸電晶體 T3, T5:負載電晶體 T4, T6:驅動電晶體 T7, T8, T9, TR201:電晶體 TG1, TG2, TG3:轉移閘極 t1~t6:時點 t11~t16:時點 t21~t26:時點 t31~t33:時點 UC(N−1,M−1,n−1)~UC(0,0,0):單位單元 UC_(n−1)~UC_0:單位單元 V CB:電位 V CB0, V CB1, V CB2:電壓 VDD:電源節點 V C 0~V C n−1:電壓 V COM:共通電壓 V DV2~V DV0:電壓 V X,…,V X/2 n−1:輸入電壓 V Y:輸出電壓 W, W 0, W 1:權重 WBL:權重用位元線 WBLB:權重用反轉位元線 WL(N−1,n−1)~WL(0,0):字元線 WWL:權重用字元線 X, X':輸入向量 XG(m−1)~XG0:互斥或閘極 Y, Y':輸出向量 Z1, Z2, Z201, Z202:阻抗元件
圖1係表示包含第1實施方式之半導體積體電路之運算系統之構成的圖。  圖2係表示第1實施方式之半導體積體電路之構成之電路圖。  圖3(a)~(d)係表示第1實施方式之半導體積體電路之動作之波形圖。  圖4係表示第1實施方式之變化例之半導體積體電路之構成的電路圖。  圖5係表示第2實施方式之半導體積體電路之構成之電路圖。  圖6(a)~(d)係表示第2實施方式之半導體積體電路之動作之波形圖。  圖7(a)~(d)係表示第2實施方式之半導體積體電路之動作之波形圖。  圖8係表示第3實施方式之半導體積體電路之構成之電路圖。  圖9係表示第4實施方式中之單位單元之概略構成之電路圖。  圖10係表示第4實施方式中之單位單元之具體構成之電路圖。  圖11係表示第4實施方式之變化例中之單位單元之具體構成的電路圖。  圖12係表示第5實施方式中之輸入電路之單位構成之電路圖。  圖13係表示第5實施方式中之輸入電路之構成之電路圖。  圖14係表示第5實施方式中之輸入電路之使用實例之電路圖。  圖15係表示第5實施方式中之輸入電路之使用實例之電路圖。  圖16係表示第5實施方式之變化例中之輸入電路之構成的電路圖。  圖17係表示第6實施方式中之輸入電路之單位構成之電路圖。  圖18係表示第6實施方式中之DA轉換電路之構成之電路圖。  圖19係表示第6實施方式中之映射表之圖。  圖20係表示第6實施方式中之輸入電路之構成之電路圖。  圖21(a)、(b)係表示第6實施方式中之輸入電路之動作之波形圖。
1:半導體積體電路
10:全域電路
20:運算電路
20a_(n-1),…,20a_0:輸入節點
20b:輸出節點
20c_(n-1)~20c_0:中間節點
20d:基準節點
20e:共通節點
21_(n-1)~21_0:記憶元件
22_(n-1)~22_0:乘法電路
23_(n-1)~23_0:電容元件
24:加法電路
100:運算系統
C:電容值
LSB:最下位位元
MULT,PRE,SUM:全域信號
MSB:最上位位元
SW1,SW2,SW3:開關
SW4_(n-1)~SW4_0:開關
UC_(n-1)~UC_0:單位單元
VC,0~VC,n-1:電壓
VCOM:共通電壓
VX,…,VX/2n-1:輸入電壓
VY:輸出電壓
W:權重
X:輸入向量
Y:輸出向量

Claims (7)

  1. 一種半導體積體電路,其具備:  複數個記憶元件,其等以構成複數列之方式排列,且各自記憶複數位元之權重之任一位元位置之值;  複數個乘法電路,其等以構成複數列之方式排列,對複數個輸入電壓乘以上述複數位元之權重,產生複數個相乘結果;  1個以上之電容元件,其等累積與上述複數個相乘結果相應之電荷;以及  加法電路,其產生輸出電壓,該輸出電壓對應於上述1個以上電容之元件所累積之電荷之合計值;且  上述複數個輸入電壓分別與上述權重之上述任一位元位置對應,且具有不同振幅。
  2. 如請求項1之半導體積體電路,其中  上述權重中所包含之上述複數位元之型樣表示正整數,  上述複數個輸入電壓分別對應於上述複數位元之任一位元,且具有與對應於相鄰位元之輸入電壓之振幅相差2的次方之正振幅。
  3. 如請求項1之半導體積體電路,其中  上述權重中所包含之上述複數位元之型樣以2的補數表達來表示正整數或負整數,  上述複數個輸入電壓各自對應於上述複數位元中之任一位元,且具有與對應於相鄰位元之輸入電壓之振幅相差2的次方之正振幅或負振幅。
  4. 如請求項1至3中任一項之半導體積體電路,其中  上述1個以上之電容元件各自具有第一端,  上述複數個乘法電路各自具備:輸入節點;上述1個以上之電容元件中之任一個電容元件;第1切換元件,其根據第1全域信號而接通/斷開;以及第2切換元件,其於上述輸入節點與上述任一個電容元件之第一端之間與上述第1切換元件串聯連接且根據上述權重之位元值而維持為接通/斷開狀態;  上述加法電路具備輸出節點、第3切換元件、及複數個第4切換元件,上述第3切換元件設置於具有基準電位之共通電壓與上述1個以上之電容元件中之任一個電容元件之第一端之間且根據第2全域信號而接通/斷開,上述複數個第4切換元件於上述1個以上之電容元件各自之第一端與上述輸出節點之間分別根據第3全域信號而接通/斷開。
  5. 如請求項4之半導體積體電路,其中  上述半導體積體電路於第1期間內,將複數個上述第1切換元件維持為斷開狀態,將上述第3切換元件及上述複數個第4切換元件維持為接通狀態;於較上述第1期間為後之第2期間內,將上述複數個第1切換元件維持為接通狀態,將上述第3切換元件及上述複數個第4切換元件維持為斷開狀態;於較上述第2期間為後之第3期間內,將上述複數個第1切換元件及上述第3切換元件維持為斷開狀態,將上述複數個第4切換元件維持為接通狀態。
  6. 如請求項1至3中任一項之半導體積體電路,其中  上述1個以上之電容元件以構成複數列及複數行之方式排列,  上述複數個乘法電路以構成複數列及複數行之方式排列,  複數個上述加法電路產生複數個輸出電壓,該複數個輸出電壓對應於上述1個以上之電容元件中之各行電容元件所累積之電荷之合計值。
  7. 一種運算系統,其具備:  輸入電路,其將複數位元之資料轉換為複數個電壓;以及  如請求項1至6中任一項之半導體積體電路,其接收上述經轉換之複數個電壓作為上述複數個輸入電壓。
TW111104760A 2021-06-22 2022-02-09 半導體積體電路及運算系統 TWI843055B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-102877 2021-06-22
JP2021102877A JP2023001953A (ja) 2021-06-22 2021-06-22 半導体集積回路及び演算システム

Publications (2)

Publication Number Publication Date
TW202301101A true TW202301101A (zh) 2023-01-01
TWI843055B TWI843055B (zh) 2024-05-21

Family

ID=84489252

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111104760A TWI843055B (zh) 2021-06-22 2022-02-09 半導體積體電路及運算系統

Country Status (4)

Country Link
US (1) US20220405057A1 (zh)
JP (1) JP2023001953A (zh)
CN (1) CN115510791A (zh)
TW (1) TWI843055B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1676197B1 (en) * 2003-10-16 2012-01-18 Canon Kabushiki Kaisha Operation circuit and operation control method thereof
CN115995242A (zh) * 2016-03-18 2023-04-21 株式会社半导体能源研究所 半导体装置
JP6876220B2 (ja) * 2016-08-19 2021-05-26 ソニーグループ株式会社 積和演算装置
EP3742351B1 (en) * 2019-05-22 2024-09-04 eMemory Technology Inc. Control circuit for multiply accumulate circuit of neural network system

Also Published As

Publication number Publication date
US20220405057A1 (en) 2022-12-22
CN115510791A (zh) 2022-12-23
TWI843055B (zh) 2024-05-21
JP2023001953A (ja) 2023-01-10

Similar Documents

Publication Publication Date Title
US11948659B2 (en) Sub-cell, mac array and bit-width reconfigurable mixed-signal in-memory computing module
US12112143B2 (en) Multiplication and accumulation circuit based on radix-4 booth code and differential weight
US20220276835A1 (en) Sub-cell, Mac array and Bit-width Reconfigurable Mixed-signal In-memory Computing Module
CN113314163B (zh) 存储器器件、计算器件以及计算方法
TWI803889B (zh) 運算裝置及運算方法
US20240231758A1 (en) Performing Multiple Bit Computation and Convolution in Memory
TW202238593A (zh) 具有三元啟動的記憶體內運算
US10777253B1 (en) Memory array for processing an N-bit word
US11764801B2 (en) Computing-in-memory circuit
Kim et al. A charge-domain 10T SRAM based in-memory-computing macro for low energy and highly accurate DNN inference
TW202301101A (zh) 半導體積體電路及運算系統
CN115910152A (zh) 电荷域存内计算电路以及具有正负数运算功能的存算电路
US11977936B2 (en) Differential analog multiplier-accumulator
US12014151B2 (en) Scaleable analog multiplier-accumulator with shared result bus
CN115629734A (zh) 并行向量乘加器的存内计算装置和电子设备
CN110262771B (zh) 一种基于mos晶体管的基本运算电路及其扩展电路
CN116543808A (zh) 一种基于sram单元的全数字域存内近似计算电路
JP3339566B2 (ja) サーモメトリック−バイナリコード変換方法および回路、それに使用されるエンコーダ素子回路
US11886835B2 (en) Cascade multiplier using unit element analog multiplier-accumulator
US11983507B2 (en) Differential analog multiplier for a signed binary input
US11922240B2 (en) Unit element for asynchronous analog multiplier accumulator
CN115658012B (zh) 向量乘加器的sram模拟存内计算装置和电子设备
US20240223207A1 (en) Multiply-accumulate successive approximation devices and methods
TW202331552A (zh) 迭代混合矩陣乘法器
TW202349884A (zh) 用於記憶體內運算巨集的共用行之類比數位轉換器