NL2015114B1 - Scalable computation architecture in a memristor-based array. - Google Patents

Scalable computation architecture in a memristor-based array. Download PDF

Info

Publication number
NL2015114B1
NL2015114B1 NL2015114A NL2015114A NL2015114B1 NL 2015114 B1 NL2015114 B1 NL 2015114B1 NL 2015114 A NL2015114 A NL 2015114A NL 2015114 A NL2015114 A NL 2015114A NL 2015114 B1 NL2015114 B1 NL 2015114B1
Authority
NL
Netherlands
Prior art keywords
data
circuit
circuits
instruction
array
Prior art date
Application number
NL2015114A
Other languages
English (en)
Inventor
Hamdioui Said
Laurent Maria Bertels Koenraad
Taouil Mottaqiallah
Original Assignee
Univ Delft Tech
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 Univ Delft Tech filed Critical Univ Delft Tech
Priority to NL2015114A priority Critical patent/NL2015114B1/en
Priority to PCT/NL2016/050493 priority patent/WO2017007318A1/en
Application granted granted Critical
Publication of NL2015114B1 publication Critical patent/NL2015114B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Claims (19)

1. Werkwijze voor databewerking op basis van aritmetische operaties in een op memristors gebaseerd crossbar array, waarbij het crossbar array een veelheid parallelle eerste balken die zich uitstrekken in een eerste richting en een tweede veelheid parallelle tweede balken die zich uitstrekken in een tweede richting tegenover de eerste richting, zodanig dat elke eerste balk de tweede veelheid tweede balken kruist en op iedere kruising een contact vormt, waarbij ieder contact een memristor vormt met ten minste twee verschillende programmeerbare weerstandstoestanden; waarbij de werkwijze omvat: - definiëren van dataschakelingsjablonen voor het bevatten van data; - definiëren van berekeningsschakelingssjablonen voor het bevatten van een gekozen aritmetische instructie uit de aritmetische operaties; - rangschikken van data als dataschakelingen op vooraf bepaalde datalocaties van het array in overeenstemming met de dataschakelingsjab loon door programmeren van de memristors van het array op de vooraf bepaalde datalocaties; - rangschikken van aritmetische instructies als instructieschakelingen op vooraf bepaalde instructielocaties van het array in overeenstemming met het berekeningsschalingssjabloon dat betrekking heeft op de respectieve aritmetische instructie door programmeren van de memristors van het array op de vooraf bepaalde instructielocaties, waarbij data die functioneren als invoer voor een eerste aritmetische instructie zijn aangebracht als dataschakeling die is verbonden aan een invoerlocatie van de ermee geassocieerde eerste aritmetische instructieschakeling, en data die functioneren als uitvoer van de eerste aritmetische instructie is verbonden aan een uitvoerlocatie van de eerste aritmetische instructieschakeling; dataschakelingen voor data om te worden berekend in een parallelle bewerkingsstap zijn gerangschikt langs ofwel een kolomrichting ofwel een rijrichting in het crossbar array, en instructieschakelingen voor instructies om te worden uitgevoerd in een parallelle bewerkingstap zijn gerangschikt langs ofwel een kolomrichting ofwel een rijrichting in het crossbar array.
2. Werkwijze volgens conclusie 1, omvattend: - het rangschikken van een veelheid data die functioneren als invoer voor de eerste aritmetische instructie als een veelheid van invoerdataschakelingen in een invoerdatakolom van het array; - het rangschikken van een veelheid data die functioneren als uitvoer voor de eerste aritmetische instructie als een veelheid van uitvoerdataschakelingen in een uitvoerdatakolom van het array, en - het rangschikken van de eerste aritmetische instructie als een veelheid eerste aritmetische instructieschakelingen in een eerste instructieskolom van het array, tussen de invoerdatakolom en de uitvoerdatakolom.
3. Werkwijze volgens conclusie 2, waarbij de veelheid data die functioneren als uitvoer zijn gerangschikt als een veelheid van tweede invoerdataschakelingen voor een tweede aritmetische instructie, waarbij de werkwijze omvat: - het rangschikken van de tweede aritmetische instructie als een veelheid van tweede aritmetische instructieschakelingen in een tweede instructiekolom of rij van het array, met de invoer van elke tweede aritmetische instructieschakeling verbonden aan de ermee geassocieerde tweede invoerdataschakeling, - het rangschikken van een veelheid tweede uitvoerdataschakelingen in het array welke verbonden zijn aan de respectieve uitvoer van de ermee geassocieerde tweede aritmetische instructieschakeling.
4. Werkwijze volgens een van de voorgaande conclusies, omvattend voor elke verbinding tussen ofwel een uitvoer van een dataschakeling en een invoer van een instructieschakeling ofwel een invoer van een dataschakeling en een uitvoer van een instructieschakeling, het vormen van een verbindingsschakeling in het array tussen de dataschakeling en de instructieschakeling.
5. Werkwijze volgens een van de conclusies 1-3, waarbij de aritmetische instructies worden gekozen uit operaties omvattend optelling, vermenigvuldiging, aftrekking en deling.
6. Werkwijze volgens een van de voorgaande conclusies, waarbij de databewerking een parallelle optelling van een veelheid van N getallen is onder gebruikmaking van een binaire-boom-optellingsalgoritme, met N een even getal.
7. Werkwijze volgens conclusie 6, omvattend: - het vormen in het array van N+l kolommen van N/2 rijen, waarbij de buitenste kolommen 1, N+l en de centrale kolom N/2+1 zijn ingericht als datakolommen met dataschakelingen voor het ontvangen van externe data, waarin elke dataschakeling in een datakolom is verbonden door een verbindingsschakeling in een naastgelegen kolom aan een optelschakeling in een opeenvolgende aritmetische kolom en elke optelschakeling door een verdere verbindingsschakeling is is verbonden aan een uitvo er dataschakeling in een volgende datakolom, op zodanige wijze dat in de centrale kolom N/2+1 het resultaat van de optelling van de N getallen wordt opgeslagen.
8. Werkwijze volgens conclusie 7, waarbij een dataschakeling in een datakolom ofwel een uitvoerdataschakeling ofwel een invoerdataschakeling voor een optelling is ofwel een gecombineerde dataschakeling is die is geconfigureerd om een resultaat te ontvangen vanuit een optelling en om het resultaat te verzenden als invoerdata voor een volgende optelling.
9. Werkwijze volgens conclusie 7 of conclusie 8, waarbij optellingen in elke optellerkolom in parallel worden uitgevoerd.
10. Werkwijze volgens een van de conclusies 7-9, waarbij in elke verbindingskolom data in parallel worden doorgestuurd.
11. Werkwijze volgens een van de voorgaande conclusies, waarbij de databewerking een matrixvermenigvuldigingsalgoritme voor een N- bij-N matrix is.
12. Werkwijze volgens conclusie 11, waarbij een eerste aritmetische instructie een vermenigvuldiging is voor een paar matrix elementen die is uitgevoerd als een multiplicatorschakeling en een tweede aritmetische instructie een optelling is voor een paar vermenigvuldigingsresultaten die is uitgevoerd als een optellerschakeling, waarbij de werkwijze omvat: - het rangschikken in het crossbar array in tenminste een rij: - van twee multiplicatorschakelingen elk tussen een invoerdataschakeling voor het bevatten van een paar matrixelementen en een uitvoerdataschakeling voor het bevatten van het resultaat van de vermenigvuldiging, waarbij de uitvoerdataschakelingen zijn geplaatst naast elkaar tussen de multiplicatorschakelingen, zodanig dat binnen de tenminste ene rij de multiplicatorschakelingen gelijktijdig kunnen opereren, en - het rangschikken in het crossbar in een naastgelegen rij: - naast de uitvoerdataschakelingen naast elkaar zijn gelegen, van een optelschakeling die verbonden is aan de uitvoerdataschakelingen van, en zijn ingericht voor het ontvangen van data vanuit, de respectieve uitvoerdataschakeling en voor het optellen van de ontvangen data, en - het rangschikken in het crossbar in een verdere rij van een somuitvoeropslag schakeling die is ingericht voor het ontvangen van resultaatdata van de optelschakeling, zodanig dat de optelschakeling zich bevindt tussen de rij met multiplicatorschakelingen en de rij met de somuitvoeropslagschakeling.
13. Werkwijze volgens conclusie 12, omvattend: - het rangschikken in het crossbar array in een tweede rij: - van twee verdere multiplicatorschakelingen elk tussen een invoerdataschakeling voor het bevatten van een paar matrixelementen en een uitvoerdataschakeling voor het bevatten van het resultaat van de vermenigvuldiging, waarbij de uitvoerdataschakelingen zijn geplaatst naast elkaar tussen de verdere multiplicatorschakelingen, zodanig dat binnen de tweede rij de verdere multiplicatorschakelingen gelijktijdig kunnen opereren, en - het rangschikken in het crossbar in een naastgelegen ene tweede rij: - naast de uitvoerdataschakelingen die zich naast elkaar bevinden, van een verdere optelschakeling die verbonden is aan de uitvoerdataschakelingen en is ingericht voor het ontvangen van data vanuit de respectieve uitvoerdataschakeling en voor het optellen van de ontvangen data, en - het rangschikken in het crossbar in een verdere rij naast de naastgelegen ene rij van een tweede somuitvoeropslagschakeling die is ingericht voor het ontvangen van resultaatdata vanuit de verdere optelschakeling, zodanig dat de verdere optelschakeling zich bevindt tussen de tweede rij met de verdere multiplicatorschakelingen en de verdere rij met de tweede somuitvoeropslagschakeling, en waarbij de tweede somuitvoeropslagschakeling is ingericht naast de somuitvoeropslag schakeling.
14. Werkwij ze vo lgens conclusie 13, verder omvattend: - het rangschikken in een rijrichting naast de somuitvoeropslagschakeling en de tweede somuitvoeropslagschakeling, van een derde optellerschakeling die is geconfigureerd voor het optellen van data vanuit de somuitvoeropslagschakeling en data vanuit de tweede somuitvoeropslagschakeling, en naastgelegen in dezelfde rij als de derde opteller, van een derde somuitvoeropslagschakeling, naastgelegen in dezelfde rij als de derde opteller.
15. Inrichting voor databewerking op basis van aritmetische operaties, omvattend een op memristors gebaseerde crossbar array en een besturing, waarbij het crossbar array een veelheid parallelle eerste balken omvat die zich uitstrekken in een eerste richting en een tweede veelheid parallelle tweede balken omvat die zich uitstrekken in een tweede richting tegenover de eerste richting, zodanig dat elke eerste balk de tweede veelheid tweede balken kruist en op elke kruising een contact is gevormd, waarbij elk contact een memristor vormt met tenminste twee verschillende programmeerbare resistieve toestanden, en de besturing is ingericht met een verbindingsinterface met eerste elektrische verbindingslijnen en tweede elektrische verbindingslijnen, waarbij elk van de eerste elektrische verbindingslijnen is verbonden met daarmee overeenkomstige ene van de parallelle eerste balken en elk van de tweede elektrische verbindingslijnen is verbonden met een daarmee overeenkomstige ene van de parallelle tweede balken, en de besturing is ingericht om besturingoperaties uit te voeren op de memristors van het crossbar array over de verbindingsinterface in overeenstemming met de werkwijze volgens willekeurig welke van de conclusies 1-14.
16. Inrichting volgens conclusie 15, waarbij de besturing is ingericht om de eerste aritmetische instructies van de veelheid eerste aritmetische instructieschakelingen in de eerste instructieskolom van het array, parallel uit te voeren.
17. Inrichting volgens conclusie 16, waarbij de besturing is ingericht om de tweede aritmetische instructies van de veelheid tweede aritmetische instructieschakelingen in de tweede instructieskolom of -rij van het array, parallel uit te voeren.
18. Computerarchitectuur voor berekening-in-geheugen (computation-in-memory) toepassingen met betrekking tot dataverwerking op basis van aritmetische operaties, welke een op memristors gebaseerd crossbar array en een besturing omvat, waarbij het crossbar array een veelheid parallelle eerste balken omvat die zich uitstrekken in een eerste richting en een tweede veelheid parallelle tweede balken omvat die zich uitstrekken in een tweede richting tegenover de eerste richting, zodanig dat elke eerste balk de tweede veelheid tweede balken kruist en op elke kruising een contact wordt gevormd, waarbij elk contact een memristor vormt met tenminste twee verschillende programmeerbare resistieve toestanden, en de besturing is ingericht met een verbindingsinterface met eerste elektrische verbindingslijnen en tweede elektrische verbindingslijnen, waarbij elk van de eerste elektrische verbindingslijnen verbonden is aan een ermee overeenkomende van de parallelle eerste balken en elk van de tweede elektrische verbindingslijnen verbonden is met een daarmee overeenkomende van de parallelle tweede balken, en de besturing is ingericht om besturingsoperaties uit te voeren op de memristors van het crossbar array over de verbindingsinterface; in welke architectuur dataschakelingen en instructieschakelingen zijn ingericht op basis van dataschakelingssjablonen voor het bevatten van data respectievelijk van berekeningsschakelingssjablonen voor het bevatten van een gekozen aritmetische instructie vanuit de aritmetische operaties; waarbij de dataschakelingen zijn ingericht op vooraf bepaalde datalocaties van het array; waarbij de instructieschakelingen zijn ingericht op vooraf bepaalde instructielocaties van het array, waarbij data die de functie heeft van invoer voor een eerste aritmetische instructie is ingericht als dataschakeling die verbonden is met een invoerlocatie van de ermee geassocieerde eerste aritmetische instructieschakeling, en data die de functie heeft van uitvoer van de eerste aritmetische instructie is verbonden met een uitvoerlocatie van die eerste aritmetische instructieschakeling, waarbij dataschakelingen voor data om te worden berekend in een parallelle bewerkingsstap zijn ingericht langs ofwel een kolomrichting ofwel een rijrichting in het crossbar array, en instructieschakelingen voor instructies om te worden uitgevoerd in een parallelle bewerkingsstap zijn ingericht langs ofwel een kolomrichting of een rijrichting in het crossbar array.
19. Computerarchitectuur voor berekening-in-geheugen toepassingen omvattend ofwel een parallelle optelschakeling of een matrixvermenigvuldigingsschakeling. Abstract Method for data processing based on arithmetic operations in a memristor-based crossbar, the crossbar comprising a plurality of parallel first bars extending in a first direction and a second plurality of parallel second bars extending in a second direction opposite to the first direction, such that each first bar crosses the second plurality of second bars and at each crossing forms a contact, each contact forming a memristor with at least two different programmable resistive states; including: - defining data circuit templates for data; - defining computation circuit templates for a selected arithmetic instruction from the arithmetic operations; - arranging data circuits on predetermined data locations of the array in accordance with the data circuit template and arranging instruction circuits on predetermined instructions locations of the array in accordance with the computation circuit template related to the respective arithmetic instruction by programming the memristors at the predetermined instruction locations. [fig 1A]
NL2015114A 2015-07-07 2015-07-07 Scalable computation architecture in a memristor-based array. NL2015114B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
NL2015114A NL2015114B1 (en) 2015-07-07 2015-07-07 Scalable computation architecture in a memristor-based array.
PCT/NL2016/050493 WO2017007318A1 (en) 2015-07-07 2016-07-07 Scalable computation architecture in a memristor-based array

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL2015114A NL2015114B1 (en) 2015-07-07 2015-07-07 Scalable computation architecture in a memristor-based array.

Publications (1)

Publication Number Publication Date
NL2015114B1 true NL2015114B1 (en) 2017-02-01

Family

ID=54705267

Family Applications (1)

Application Number Title Priority Date Filing Date
NL2015114A NL2015114B1 (en) 2015-07-07 2015-07-07 Scalable computation architecture in a memristor-based array.

Country Status (2)

Country Link
NL (1) NL2015114B1 (nl)
WO (1) WO2017007318A1 (nl)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542391A (zh) * 2018-11-09 2019-03-29 复旦大学 基于忆阻器的存储器内计算架构
CN110807519B (zh) * 2019-11-07 2023-01-17 清华大学 基于忆阻器的神经网络的并行加速方法及处理器、装置
CN116185338B (zh) * 2023-04-23 2023-07-14 中国人民解放军国防科技大学 基于忆阻器的乘法器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1877927A1 (en) * 2005-04-28 2008-01-16 The University Court Of The University Of Edinburgh Reconfigurable instruction cell array
US20080222339A1 (en) * 2000-12-19 2008-09-11 Anthony Peter John Claydon Processor architecture with switch matrices for transferring data along buses
WO2013181664A1 (en) * 2012-06-01 2013-12-05 The Regents Of The University Of California Programmable logic circuit architecture using resistive memory elements

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222339A1 (en) * 2000-12-19 2008-09-11 Anthony Peter John Claydon Processor architecture with switch matrices for transferring data along buses
EP1877927A1 (en) * 2005-04-28 2008-01-16 The University Court Of The University Of Edinburgh Reconfigurable instruction cell array
WO2013181664A1 (en) * 2012-06-01 2013-12-05 The Regents Of The University Of California Programmable logic circuit architecture using resistive memory elements

Also Published As

Publication number Publication date
WO2017007318A1 (en) 2017-01-12

Similar Documents

Publication Publication Date Title
Kwon et al. Maeri: Enabling flexible dataflow mapping over dnn accelerators via reconfigurable interconnects
Johnsson et al. Alternating direction methods on multiprocessors
JP2509678B2 (ja) 計算処理装置
Du Nguyen et al. Computation-in-memory based parallel adder
NL2015114B1 (en) Scalable computation architecture in a memristor-based array.
Garofalo et al. A heterogeneous in-memory computing cluster for flexible end-to-end inference of real-world deep neural networks
CN109074516A (zh) 计算处理装置和计算处理方法
Liu et al. WinoCNN: Kernel sharing Winograd systolic array for efficient convolutional neural network acceleration on FPGAs
Deng et al. SemiMap: A semi-folded convolution mapping for speed-overhead balance on crossbars
Chalamalasetti et al. MORA-an architecture and programming model for a resource efficient coarse grained reconfigurable processor
Serrano et al. Optimal architectures and algorithms for mesh-connected parallel computers with separable row/column buses
CN107368459B (zh) 基于任意维数矩阵乘法的可重构计算结构的调度方法
US11934482B2 (en) Computational memory
JP2005531843A (ja) アレイプロセッサにおける除算
Dazzi et al. 5 parallel prism: A topology for pipelined implementations of convolutional neural networks using computational memory
Bekhale et al. Reconfiguration strategies for VLSI processor arrays and trees using a modified Diogenes approach
Mahadurkar et al. Co-exploration of NLA kernels and specification of compute elements in distributed memory cgras
KR100722428B1 (ko) 리소스 공유 및 파이프 라이닝 구성을 갖는 재구성가능배열구조
JP2022181161A (ja) ハードウェアにおけるスパース行列乗算
Chalamalasetti et al. A low cost reconfigurable soft processor for multimedia applications: Design synthesis and programming model
TWI815392B (zh) 存內計算裝置及用於執行mac操作之方法
Kim et al. Mapping of neural networks onto the memory-processor integrated architecture
Alnuweiri A new class of optimal bounded-degree VLSI sorting networks
Pechanek et al. An introduction to an array memory processor for application specific acceleration
Jayaraman et al. Hypersort: High-performance Parallel Sorting on HBM-enabled FPGA

Legal Events

Date Code Title Description
MM Lapsed because of non-payment of the annual fee

Effective date: 20180801