TWI798081B - 記憶體內計算巨集裝置及電子裝置 - Google Patents
記憶體內計算巨集裝置及電子裝置 Download PDFInfo
- Publication number
- TWI798081B TWI798081B TW111117977A TW111117977A TWI798081B TW I798081 B TWI798081 B TW I798081B TW 111117977 A TW111117977 A TW 111117977A TW 111117977 A TW111117977 A TW 111117977A TW I798081 B TWI798081 B TW I798081B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory computing
- data
- groups
- bits
- cim
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/025—Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
- G11C7/1012—Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/109—Control signal input circuits
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Complex Calculations (AREA)
- Credit Cards Or The Like (AREA)
- Image Processing (AREA)
- Hall/Mr Elements (AREA)
- Tests Of Electronic Circuits (AREA)
- Image Analysis (AREA)
- Static Random-Access Memory (AREA)
Abstract
本揭露提出一種記憶體內計算巨集裝置以及電子裝置。記憶體內計算巨集裝置包括包含多個記憶體內計算單元的記憶體內計算單元陣列。第一資料被劃分成至少兩個位元群組,所述至少兩個位元群組包括第一位元群組及第二位元群組,第一位元群組是第一資料的最高有效位元,第二位元群組是第一資料的最低有效位元,位元群組分別載入在記憶體內計算單元陣列的不同行的記憶體內計算單元中。電子裝置包括至少一個記憶體內計算巨集以及至少一個處理電路。處理電路被配置成接收分別與記憶體內計算單元陣列的行對應的並行的輸出並對並行的輸出執行運算,其中並行的輸出包括多個對應組,其中對應組中的每一者包括輸出激活的最高有效位元及輸出激活的最低有效位元。
Description
本發明是關於一種記憶體內計算(compute-in-memory,CIM)巨集裝置及電子裝置。
CIM是一種用於解決流行且廣泛使用的馮諾伊曼(von-Neumann)處理器/架構中的頻寬與計算不匹配問題的技術。通過將記憶體與計算在同一區塊中進行組合可解決頻寬不匹配問題。然而,用於計算的位元寬(bit-width)受限於實體CIM巨集的原始寬度,且因此計算精度不能針對更高精度的應用要求進行調整。
本揭露提出一種CIM巨集裝置及電子裝置。
根據示例性實施例中的一者,所述CIM巨集裝置包括具有多個CIM單元的CIM單元陣列。第一資料被劃分成至少兩個位元群組,所述至少兩個位元群組包括第一位元群組及第二位元群組,所述第一位元群組是所述第一資料的最高有效位元,所述第二位元群組是所述第一資料的最低有效位元,且所述至少兩個位元群組分別載入在所述CIM單元陣列的不同行的CIM單元中。
根據示例性實施例中的一者,所述電子裝置包括至少一個CIM巨集以及至少一個處理電路。每一CIM巨集包括CIM單元陣列,所述CIM單元陣列包括多個CIM單元。第一資料被劃分成至少兩個位元群組,所述至少兩個位元群組包括第一位元群組及第二位元群組,所述第一位元群組是所述第一資料的多個最高有效位元,所述第二位元群組是所述第一資料的多個最低有效位元。所述第一資料的所述至少兩個位元群組分別載入在所述CIM單元陣列的不同行的CIM單元中,且在所述第一資料載入在所述不同行的所述CIM單元中之後第二資料被輸入到所述CIM單元陣列的所述不同行的所述CIM單元。處理電路被配置成接收分別與所述CIM單元陣列的行對應的多個並行的輸出並對所述多個並行的輸出執行運算,其中所述並行的輸出包括多個對應組,且其中所述對應組中的每一者包括輸出激活的多個最高有效位元及所述輸出激活的多個最低有效位元。
圖1示出傳統CIM巨集的示意圖。
目前可通過神經網路模型對圖像輸入進行計算,以獲取更多的特徵。輸入特徵圖包括多個輸入激活,且輸入特徵圖也被稱為輸入通道。應用於輸入特徵圖的多個權重被視為濾波器。通過利用濾波器對輸入通道進行卷積運算(convolution operation),產生包括多個輸出激活的輸出特徵圖,且輸出特徵圖也被稱為輸出通道。參照圖1作為實例,單一個巨集裝置110將包括256列(row)及64行(column)的CIM單元陣列,其中用以計算的位元寬是小的固定數(例如4),在神經網路計算中僅能支援存儲4位元資料(例如,4位元(有符號或無符號)權重
)。在這種情況下,預先將4位元權重
預載入到巨集裝置110是合適的。為了將卷積運算應用於有符號或無符號8位元輸入(也稱為輸入激活,input activation)
,產生20位元並行的輸出
。在以下的實施例中,在不改變物理CIM巨集計算的位元寬的情況下,可將計算的位元寬擴展到更大的數(例如8),以便於實現不同位元寬要求的計算。
為了解決突出的問題,現在將在下文中參照附圖更全面地闡述本揭露的一些實施例,在附圖中示出本揭露的一些但非全部的實施例。實際上,本揭露的各種實施例可以許多不同的形式來體現,且不應被解釋為限於本文中所述的實施例;相反,提供這些實施例是為了使本揭露滿足適用的法律要求。相同的參考編號始終指代相同的元件。
圖2示出根據本揭露的示例性實施例中的一者所提出的電子裝置的示意圖。
參照圖2,電子裝置200包括至少一個CIM巨集210及至少一個處理電路250。CIM巨集210包括多個CIM單元,所述多個CIM單元形成為256列及64行(由C201至C264表示)的CIM單元陣列。CIM單元陣列中的每一CIM單元的位元寬是4位元。具有比每一CIM單元的位元寬大的位元寬(例如8位元)的第一資料被劃分成兩個位元群組,所述兩個位元群組包括作為第一資料的多個最高有效位元的第一位元群組及作為第一資料的多個最低有效位元的第二位元群組。第一資料的所述兩個位元群組分別載入在CIM單元陣列中位於不同行的CIM單元中。
在一實例中,在第一資料載入不同行的CIM單元中之後,第二資料被輸入到CIM單元陣列中前述不同行的CIM單元,其中第一資料是權重且第二資料是輸入激活。在另一實例中,在第一資料載入在不同行的CIM單元中之後,第二資料被輸入到CIM單元陣列的前述不同行的CIM單元,其中第一資料是輸入激活且第二資料是權重。
在本示例性實施例中,第一資料的第一位元群組載入在CIM單元陣列的奇數行(例如,行C201、C203、…C263中的一者)的一個CIM單元中,且第一資料的第二位元群組載入在CIM單元陣列的偶數行(例如,行C202、C204、…C264中的一者)的一個CIM單元中。作為實例,8位元無符號權重可被分成第一位元群組及第二位元群組,其中4個最高有效位元可被載入在奇數行中,而4個最低有效位元可被載入在與前述奇數行相鄰的偶數行中。作為另一實例,8位元有符號權重可被分成第一位元群組及第二位元群組,其中4個最高有效位元可包括符號位元且可被載入在奇數行中,而4個最低有效位元可被載入在與前述奇數行相鄰的偶數行中。出於例示目的,
及
分別表示8位元權重的4個最高有效位元(含符號位元)及4個最低有效位元,其中
。其餘者可據此推斷。如圖2中所示,CIM單元的每一列可存儲32個8位元權重(或32個8位元輸入激活)。
在本示例性實施例中,處理電路250被配置成接收分別與CIM單元陣列的行C201至C264對應的多個並行的輸出並對所述多個並行的輸出執行運算。並行的輸出包括多個對應組,其中所述對應組中的每一者包括輸出激活的多個最高有效位元及輸出激活的多個最低有效位元。舉例來說,行C201的對應組是
到
的總和,行C202的對應組是
到
的總和。CIM單元陣列的每一CIM單元用於對第一資料及第二資料進行卷積運算,其中第一資料及第二資料中的一者是權重,而另一者是輸入激活。
在此,並行的輸出包括32個對應組,其中對應組中的每一者包括輸出激活的多個最高有效位元及輸出激活的多個最低有效位元。出於例示目的,分別表示輸出激活O1的多個最高有效位元及多個最低有效位元的並行的輸出
及
被認為是一個對應組。對於對應組中的每一者,處理電路250對輸出激活的多個最高有效位元進行移位,並將經過移位的輸出激活的多個最高有效位元與輸出激活的多個最低有效位元相加,其中輸出激活可表示為
。在其中權重有符號的情況下,對於對應組中的每一者,處理電路250對含符號在內的輸出激活的多個最高有效位元進行移位,且將經過移位的輸出激活的多個最高有效位元與輸出激活的多個最低有效位元相加。
在另一示例性實施例中,權重中的每一者的位元可分成兩個以上的位元群組。在這種情況下,位元群組中的每一者的位元的數目可基於每一CIM單元的位元的數目進行確定,且位元群組中的每一者包括第一資料的位元的一部分,且位元群組分別載入在屬於CIM單元陣列的不同的行群組的不同CIM單元中,其中所述不同的行群組是基於每一行群組中每兩個相鄰的CIM單元行相距的行數量相等進行分組,也就是說,行群組中的多個CIM單元行的間距是等差(common difference)。作為實例,對於將存儲於位元寬為4位元的CIM單元陣列中的10位元權重,所述10位權重可分成三個位元群組:第一位元群組可包含最高有效的4位元,第二位元群組可包含最低有效的4位元,且中間的群組可包含其餘的2位元。第一資料的每一位元群組的位元的數目可不超過CIM單元的位元寬。作為另一實例,對於12位元的權重,位可被均勻地分成三個位元群組:第一位元群組、中間位元群組及第二位元群組中的每一者可全部包含4個位元。需說明的是,在兩個實例中,第一位元群組可載入到行C201至C264之中第m行CIM單元中,中間位元群組可被載入到行C201至C264之中第(m+1)行CIM單元中,且第二位元群組可被載入到行C201至C264之中第(m+2)行CIM單元中,其中
。在這個實例中,每一行群組中的每兩個相鄰的CIM單元行相距三行。處理電路150可以與之前的示例性實施例類似的方式接收分別與CIM單元陣列的多行對應的多個並行的輸出並對所述多個並行的輸出執行運算。
圖3示出根據本揭露的示例性實施例中的一者所提出的另一種電子裝置的示意圖。
參照圖3,電子裝置300包括至少一個CIM巨集310及至少一個處理電路350。CIM巨集310包括多個CIM單元,所述多個CIM單元形成為256列及64行(由C301至C364表示)的CIM單元陣列。CIM單元陣列的每一CIM單元的位元寬是4位元。在此,每一位元群組包括第一資料的位元的一部分,且每一位元群組載入在包括連續的行的CIM單元行群組。在本示例性實施例中,前32個連續的CIM單元行C301至C332被稱為「第一行群組」,且後32個連續的CIM單元行C333至C364被稱為「第二行群組」。權重中的每一者的最高有效位元及最低有效位元分別載入在CIM單元行C301至C364的不同行群組中。在本示例性實施例中,權重中的每一者的多個最高有效位元載入在第一行群組C301至C332中,且權重中的每一者的多個最低有效位元載入在第二行群組C333至C364中。作為實例,8位元無符號的權重可分成兩行,其中多個最高有效位元可載入在第一行群組C301至C332中的第一行中,且多個最低有效位元可載入在第二行群組C333至C364中的第一行中。作為另一實例,8位元有符號的權重可分成兩行,其中多個最高有效位元可包括符號位元,且可載入在第一行群組C301至C332的第一行中,且多個最低有效位元可載入在第二行群組C333至C364的第一行中。出於例示目的,
及
分別表示8位元權重的含符號在內的4個最高有效位元及4個最低有效位元,其中
。其餘者可據此推斷。
類似地,處理電路350被配置成接收分別與CIM單元陣列的CIM單元行C301至C364對應的多個並行的輸出並對所述多個並行的輸出執行運算。並行的輸出包括多個對應組,其中對應組中的每一者包括來自第一行群組C301至C332的輸出激活的多個最高有效位元及來自第二行群組C333至C364的輸出激活的多個最低有效位元。出於例示目的,分別表示輸出激活O1的多個最高有效位元及多個最低有效位元的並行的輸出
及
被認為是一個對應組。對於對應組中的每一者,處理電路350對輸出激活的多個最高有效位元進行移位,並將經過移位的輸出激活的多個最高有效位元與輸出激活的多個最低有效位元相加,其中輸出激活可表示為
。在其中權重有符號的情況下,對於對應組中的每一者,處理電路350對包括符號位元的輸出激活的多個最高有效位元進行移位,且將經過移位的輸出激活的多個最高有效位元與輸出激活的多個最低有效位元相加。
圖4示出根據本揭露的示例性實施例中的一者所提出的另一種電子裝置的示意圖。
參照圖4,電子裝置400包括第一CIM巨集410A、第二CIM巨集410B及至少一個處理電路450。第一CIM巨集410A包括多個CIM單元行C401A至C464A的CIM單元陣列,且第二CIM巨集410B包括多個CIM單元行C401B至C464B的CIM單元陣列。第一CIM巨集410A及第二CIM巨集410B的每一CIM單元的位元寬是4位元。從另一個角度來看,第一CIM巨集410A及第二CIM巨集410B形成CIM單元陣列,其中CIM單元陣列的CIM單元的一部分屬於第一CIM巨集410A,而CIM單元陣列的CIM單元的另一部分屬於第二CIM巨集410B。
權重中的每一者的多個最高有效位元及多個最低有效位元分別載入在第一CIM巨集410A及第二CIM巨集410B中。作為實例,8位元無符號權重可分成兩行,所述兩行分別存儲在兩個CIM巨集410A及410B中,其中多個最高有效位元可載入在第一CIM巨集410A的行中,且多個最低有效位元可載入在第二CIM巨集410B的對應行中。作為另一實例,8位元有符號權重可分成兩行,所述兩行分別存儲在兩個CIM巨集410A及410B中,其中多個最高有效位元可包括符號位元,且可載入在第一CIM巨集410A的行中,而多個最低有效位元可載入在第二CIM巨集410B的對應行中。出於例示目的,第一CIM巨集410A的行C401A及第二CIM巨集410B的行C401B由同一權重的最高有效位元及最低有效位元載入。其餘者可據此推斷。
處理電路450被配置成接收分別與第一CIM巨集410A及第二CIM巨集410B對應的多個並行的輸出並對所述多個並行的輸出執行運算。並行的輸出包括64個對應組,其中對應組中的每一者包括來自第一CIM巨集410A的輸出激活的最高有效位元及來自第二CIM巨集410B的輸出激活的最低有效位元。出於例示目的,分別表示輸出激活O1的最高有效位元及最低有效位元的並行的輸出
及
被認為是一個對應組。對於對應組中的每一者,處理電路450對輸出激活的多個最高有效位元進行移位,並將經過移位的輸出激活的多個最高有效位元與輸出激活的多個最低有效位元相加,其中輸出激活可表示為
。在其中權重有符號的情況下,對於對應組中的每一者,處理電路450對有符號的輸出激活的多個最高有效位元進行移位,並將經過移位的輸出激活的多個最高有效位元與輸出激活的多個最低有效位元相加。
鑒於上述說明,所提出的技術允許在不改變實體巨集計算的寬度的情況下對計算的位元寬進行擴展,以便於實現不同位元寬要求的計算。
100:電子裝置
110:巨集裝置
200、300、400:電子裝置
210、310、410A、410B:CIM巨集
410A、410B:CIM巨集
250、350、450:處理電路
C201~C264、C301~C364、C401A~C464A、C401B~C464B:行
O1M、O1L、…、O32L:輸出激活
圖1示出傳統CIM巨集裝置的示意圖。
圖2示出根據本揭露的示例性實施例中的一者所提出的電子裝置的示意圖。
圖3示出根據本揭露的示例性實施例中的一者所提出的另一種電子裝置的示意圖。
圖4示出根據本揭露的示例性實施例中的一者所提出的另一種電子裝置的示意圖
200:電子裝置
210:CIM巨集
250:處理電路
C201~C264:行
O1M、O1L、...、O32L:輸出激活
Claims (16)
- 一種記憶體內計算巨集裝置,包括: 記憶體內計算單元陣列,包括多個記憶體內計算單元, 其中第一資料被劃分成至少兩個位元群組,所述至少兩個位元群組包括第一位元群組及第二位元群組,所述第一位元群組是所述第一資料的多個最高有效位元,所述第二位元群組是所述第一資料的多個最低有效位元,且所述至少兩個位元群組分別載入在所述記憶體內計算單元陣列的不同行的記憶體內計算單元中。
- 如請求項1所述的記憶體內計算巨集裝置,其中在所述第一資料載入在所述不同行的所述記憶體內計算單元中之後有第二資料被輸入到所述記憶體內計算單元陣列的所述不同行的所述記憶體內計算單元,並且其中所述第一資料是權重且所述第二資料是輸入激活。
- 如請求項1所述的記憶體內計算巨集裝置,其中在所述第一資料載入在所述不同行的所述記憶體內計算單元中之後有第二資料被輸入到所述記憶體內計算單元陣列的所述不同行的所述記憶體內計算單元,並且其中所述第一資料是輸入激活且所述第二資料是權重。
- 如請求項1所述的記憶體內計算巨集裝置,其中所述第一資料的所述第一位元群組載入在所述記憶體內計算單元陣列的奇數行的一個記憶體內計算單元中,且所述第一資料的所述第二位元群組載入在所述記憶體內計算單元陣列的偶數行的一個記憶體內計算單元中。
- 如請求項1所述的記憶體內計算巨集裝置,其中所述至少兩個位元群組中的每一者的位元的數目是基於每一記憶體內計算單元的位元的數目進行確定。
- 如請求項1所述的記憶體內計算巨集裝置,其中所述至少兩個位元群組中的每一者包括所述第一資料的一部分,且所述至少兩個位元群組分別載入在屬於所述記憶體內計算單元陣列的不同的行群組的不同的記憶體內計算單元中,且其中所述不同的行群組是基於每一行群組的每兩個相鄰的記憶體內計算單元行相距的行數量相同進行分組。
- 如請求項1所述的記憶體內計算巨集裝置,其中所述至少兩個位元群組中的每一者包括所述第一資料的一部分,且所述至少兩個位元群組中的每一位元群組載入在包括連續的行的行群組的記憶體內計算單元中。
- 如請求項1所述的記憶體內計算巨集裝置,其中所述記憶體內計算單元陣列的一部分屬於第一記憶體內計算巨集且所述記憶體內計算單元陣列的另一部分屬於第二記憶體內計算巨集。
- 一種電子裝置,包括: 至少一個記憶體內計算巨集,其中所述至少一個記憶體內計算巨集中的每一者包括記憶體內計算單元陣列,所述記憶體內計算單元陣列包括多個記憶體內計算單元,且其中第一資料被劃分成至少兩個位元群組,所述至少兩個位元群組包括第一位元群組及第二位元群組,所述第一位元群組是所述第一資料的多個最高有效位元,所述第二位元群組是所述第一資料的多個最低有效位元,所述第一資料的所述至少兩個位元群組分別載入在所述記憶體內計算單元陣列的不同行的記憶體內計算單元中,且在所述第一資料載入在所述不同行的所述記憶體內計算單元中之後第二資料被輸入到所述記憶體內計算單元陣列的所述不同行的所述記憶體內計算單元;以及 至少一個處理電路,被配置成接收分別與所述記憶體內計算單元陣列的所述行對應的多個並行的輸出並對所述多個並行的輸出執行運算,其中所述並行的輸出包括多個對應組,其中所述對應組中的每一者包括輸出激活的最高有效位元及所述輸出激活的最低有效位元。
- 如請求項9所述的電子裝置,其中所述記憶體內計算單元陣列的所述不同行的所述記憶體內計算單元用於所述第一資料與所述第二資料的卷積運算,並且其中所述第一資料及所述第二資料中的一者是權重且另一者是輸入激活。
- 如請求項9所述的電子裝置,其中所述權重中的每一者的多個最高有效位元及多個最低有效位元被交替地載入在所述記憶體內計算單元的所述行的奇數行及偶數行中,且其中對於所述對應組中的每一者,所述至少一個處理電路對所述輸出激活的所述最高有效位元進行移位且將經過移位的所述輸出激活的所述最高有效位元與所述輸出激活的所述多個最低有效位元相加。
- 如請求項9所述的電子裝置,其中所述權重是無符號數或有符號數。
- 如請求項9所述的電子裝置,其中所述第一位元群組的位元的數目及所述第二位元群組的位元的數目是基於每一記憶體內計算單元的位元的數目進行確定。
- 如請求項9所述的電子裝置,其中所述至少兩個位元群組中的每一者包括所述第一資料的一部分,且所述至少兩個位元群組分別載入在屬於所述記憶體內計算單元陣列的不同的行群組的不同的記憶體內計算單元中,且其中所述不同的行群組是基於每一行群組的每兩個相鄰的記憶體內計算單元行相距的行數量相同進行分組,且其中對於所述對應組中的每一者,所述至少一個處理電路對所述輸出激活的所述多個最高有效位元進行移位並將經過移位的所述輸出激活的所述多個最高有效位元與所述輸出激活的所述多個最低有效位元相加。
- 如請求項9所述的電子裝置,其中所述至少兩個位元群組中的每一者包括所述第一資料的位元的一部分,且所述至少兩個位元群組中的每一位元群組載入在包括連續的行的行群組的記憶體內計算單元中,且其中對於所述對應組中的每一者,所述至少一個處理電路對所述輸出激活的所述多個最高有效位元進行移位並將經過移位的所述輸出激活的所述多個最高有效位與所述輸出激活的所述多個最低有效位元相加。
- 如請求項9所述的電子裝置,其中所述記憶體內計算單元陣行的一部分屬於第一記憶體內計算巨集且所述記憶體內計算單元陣列的另一部分屬於第二記憶體內計算巨集。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202163187952P | 2021-05-13 | 2021-05-13 | |
| US63/187,952 | 2021-05-13 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202244722A TW202244722A (zh) | 2022-11-16 |
| TWI798081B true TWI798081B (zh) | 2023-04-01 |
Family
ID=83947578
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111117998A TWI788257B (zh) | 2021-05-13 | 2022-05-13 | 記憶體內計算巨集排列的方法、電腦可讀介質及電子裝置 |
| TW111117977A TWI798081B (zh) | 2021-05-13 | 2022-05-13 | 記憶體內計算巨集裝置及電子裝置 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111117998A TWI788257B (zh) | 2021-05-13 | 2022-05-13 | 記憶體內計算巨集排列的方法、電腦可讀介質及電子裝置 |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US12236332B2 (zh) |
| CN (2) | CN115345287B (zh) |
| TW (2) | TWI788257B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20240202275A1 (en) * | 2022-12-20 | 2024-06-20 | International Business Machines Corporation | Assigning dnn weights to a 3d crossbar array |
| CN118233645A (zh) * | 2022-12-20 | 2024-06-21 | 抖音视界有限公司 | 数据处理方法、装置及电子设备 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200193293A1 (en) * | 2018-12-12 | 2020-06-18 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network convolution operations |
| TWI720524B (zh) * | 2019-03-20 | 2021-03-01 | 旺宏電子股份有限公司 | 用於執行記憶體內乘法與累加函數的方法及電路 |
| US20210089865A1 (en) * | 2019-09-19 | 2021-03-25 | Qualcomm Incorporated | Parallel processing of a convolutional layer of a neural network with compute-in-memory array |
| TW202117561A (zh) * | 2019-10-18 | 2021-05-01 | 旺宏電子股份有限公司 | 記憶體裝置及其記憶體內計算方法 |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011107972A (ja) * | 2009-11-17 | 2011-06-02 | Fujitsu Ltd | 総和計算方法及び数値演算装置 |
| US11775313B2 (en) * | 2017-05-26 | 2023-10-03 | Purdue Research Foundation | Hardware accelerator for convolutional neural networks and method of operation thereof |
| KR102289598B1 (ko) * | 2017-06-26 | 2021-08-18 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 그리고 그것의 프로그램 방법 |
| US11170289B1 (en) * | 2018-04-20 | 2021-11-09 | Perceive Corporation | Computation of neural network node by neural network inference circuit |
| US10943652B2 (en) * | 2018-05-22 | 2021-03-09 | The Regents Of The University Of Michigan | Memory processing unit |
| CN112567350B (zh) * | 2018-06-18 | 2025-01-17 | 普林斯顿大学 | 可配置的存储器内计算引擎、平台、位单元及其布局 |
| US10642922B2 (en) * | 2018-09-28 | 2020-05-05 | Intel Corporation | Binary, ternary and bit serial compute-in-memory circuits |
| US20200242459A1 (en) * | 2019-01-30 | 2020-07-30 | Intel Corporation | Instruction set for hybrid cpu and analog in-memory artificial intelligence processor |
| US20210064234A1 (en) * | 2019-04-16 | 2021-03-04 | Formulus Black Corporation | Systems, devices, and methods for implementing in-memory computing |
| US10636481B1 (en) * | 2019-05-13 | 2020-04-28 | National Tsing Hua University | Memory cell for computing-in-memory applications, memory unit for computing-in-memory applications and computing method thereof |
| CN112101541B (zh) * | 2019-06-18 | 2023-01-17 | 上海寒武纪信息科技有限公司 | 对高位宽值数据进行拆分的装置、方法、芯片及板卡 |
| CN110475119A (zh) * | 2019-08-12 | 2019-11-19 | 北京大学 | 基于flash存算阵列的图像压缩系统和方法 |
| US10915298B1 (en) * | 2019-10-08 | 2021-02-09 | Ali Tasdighi Far | Current mode multiply-accumulate for compute in memory binarized neural networks |
| CN111126579B (zh) * | 2019-11-05 | 2023-06-27 | 复旦大学 | 一种适用于二值卷积神经网络计算的存内计算装置 |
| JP2021093563A (ja) * | 2019-12-06 | 2021-06-17 | ソニーセミコンダクタソリューションズ株式会社 | 固体撮像素子、制御方法 |
| KR20220157377A (ko) * | 2020-02-05 | 2022-11-29 | 더 트러스티즈 오브 프린스턴 유니버시티 | 인메모리 컴퓨팅을 위한 확장 가능한 어레이 아키텍처 |
| WO2021176295A1 (ja) * | 2020-03-06 | 2021-09-10 | 株式会社半導体エネルギー研究所 | 撮像装置および電子機器 |
| US11487507B2 (en) * | 2020-05-06 | 2022-11-01 | Qualcomm Incorporated | Multi-bit compute-in-memory (CIM) arrays employing bit cell circuits optimized for accuracy and power efficiency |
| US11018687B1 (en) * | 2020-05-13 | 2021-05-25 | Qualcomm Incorporated | Power-efficient compute-in-memory analog-to-digital converters |
| CN112639839A (zh) * | 2020-05-22 | 2021-04-09 | 深圳市大疆创新科技有限公司 | 神经网络的运算装置及其控制方法 |
| CN112580774B (zh) * | 2020-09-01 | 2022-10-21 | 浙江大学 | 一种面向可重构神经网络处理器的神经网络布局方法 |
| US11955167B2 (en) * | 2021-01-14 | 2024-04-09 | Northwestern University | Computing-in-memory accelerator design with dynamic analog RAM cell and associated low power techniques with sparsity management |
| US12481867B2 (en) * | 2021-04-28 | 2025-11-25 | Arm Limited | Memory for artificial neural network accelerator |
| US11996137B2 (en) * | 2021-05-21 | 2024-05-28 | Taiwan Semiconductor Manufacturing Company, Ltd. | Compute in memory (CIM) memory array |
| KR20240025827A (ko) * | 2022-08-19 | 2024-02-27 | 삼성전자주식회사 | Imc(in memory computing) 프로세서 및 imc 프로세서의 동작 방법 |
| KR20240044918A (ko) * | 2022-09-29 | 2024-04-05 | 삼성전자주식회사 | Imc(in memory computing) 프로세서 및 imc 프로세서의 동작 방법 |
-
2022
- 2022-05-13 CN CN202210523375.0A patent/CN115345287B/zh active Active
- 2022-05-13 US US17/743,473 patent/US12236332B2/en active Active
- 2022-05-13 US US17/743,476 patent/US20220366216A1/en active Pending
- 2022-05-13 TW TW111117998A patent/TWI788257B/zh active
- 2022-05-13 CN CN202210522679.5A patent/CN115344528A/zh active Pending
- 2022-05-13 TW TW111117977A patent/TWI798081B/zh active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200193293A1 (en) * | 2018-12-12 | 2020-06-18 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network convolution operations |
| TWI720524B (zh) * | 2019-03-20 | 2021-03-01 | 旺宏電子股份有限公司 | 用於執行記憶體內乘法與累加函數的方法及電路 |
| US20210089865A1 (en) * | 2019-09-19 | 2021-03-25 | Qualcomm Incorporated | Parallel processing of a convolutional layer of a neural network with compute-in-memory array |
| TW202117561A (zh) * | 2019-10-18 | 2021-05-01 | 旺宏電子股份有限公司 | 記憶體裝置及其記憶體內計算方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202244722A (zh) | 2022-11-16 |
| US20220366947A1 (en) | 2022-11-17 |
| US20220366216A1 (en) | 2022-11-17 |
| CN115345287A (zh) | 2022-11-15 |
| CN115345287B (zh) | 2025-11-04 |
| TW202244794A (zh) | 2022-11-16 |
| CN115344528A (zh) | 2022-11-15 |
| TWI788257B (zh) | 2022-12-21 |
| US12236332B2 (en) | 2025-02-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI798081B (zh) | 記憶體內計算巨集裝置及電子裝置 | |
| CN108154229B (zh) | 基于fpga加速卷积神经网络框架的图片处理方法 | |
| US20170242475A1 (en) | Method and system for reducing power consumption in bitcoin mining via waterfall structure | |
| CN112712457B (zh) | 数据处理方法以及人工智能处理器 | |
| CN113986200A (zh) | 矩阵转置电路及人工智能芯片、电子设备 | |
| US9336454B2 (en) | Vector processor calculation of local binary patterns | |
| JPH03121530A (ja) | 積の合計を計算する回路装置 | |
| JP7251354B2 (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
| WO2024139196A1 (zh) | 针对marlin零知识证明协议的矩阵计算装置、方法及设备 | |
| CN113722666B (zh) | 专用集成电路芯片及方法、区块链系统及区块生成方法 | |
| JP2677969B2 (ja) | 直交変換装置 | |
| EP1481319B1 (en) | Method and apparatus for parallel access to multiple memory modules | |
| CN113592075B (zh) | 卷积运算装置、方法和芯片 | |
| CN118312133A (zh) | 基于Karatsuba的超高阶二进制多项式乘法器 | |
| CN116861973B (zh) | 用于卷积运算的改进的电路、芯片、设备及方法 | |
| JP7238376B2 (ja) | 情報処理システム及び情報処理システムの制御方法 | |
| Göttfert | An acceleration of the Niederreiter factorization algorithm in characteristic 2 | |
| CN119962600B (zh) | 基于动态特征权重双索引与算力分配的稀疏卷积加速方法 | |
| JP4156538B2 (ja) | 行列演算装置 | |
| CN115237603B (zh) | 一种用于脉动阵列的数据调度方法 | |
| Murty | Complementarity problems | |
| CN119646370B (zh) | 基于分布式存储器的同向脉动阵列电路和数据处理装置 | |
| US20080205582A1 (en) | Processing element and reconfigurable circuit including the same | |
| WO2020194465A1 (ja) | ニューラルネットワーク回路 | |
| CN111694541A (zh) | 一种用于数论变换乘法的基32运算电路 |