CN115794730A - 分离的三维处理器 - Google Patents

分离的三维处理器 Download PDF

Info

Publication number
CN115794730A
CN115794730A CN202211669495.8A CN202211669495A CN115794730A CN 115794730 A CN115794730 A CN 115794730A CN 202211669495 A CN202211669495 A CN 202211669495A CN 115794730 A CN115794730 A CN 115794730A
Authority
CN
China
Prior art keywords
chip
array
dimensional
circuit
processor
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202211669495.8A
Other languages
English (en)
Inventor
张国飙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Haicun Information Technology Co Ltd
Original Assignee
Hangzhou Haicun Information Technology Co Ltd
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 Hangzhou Haicun Information Technology Co Ltd filed Critical Hangzhou Haicun Information Technology Co Ltd
Publication of CN115794730A publication Critical patent/CN115794730A/zh
Pending legal-status Critical Current

Links

Images

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/7807System 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • 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
    • 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
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/18Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Memories (AREA)

Abstract

分离的三维处理器(100)含有耦合的第一芯片(100a)和第二芯片(100b):第一芯片(100a)含有三维存储(3D‑M)阵列(170);第二芯片(100b)含有逻辑电路(180)和3D‑M阵列(170)的至少一片外周边电路组件(190)。3D‑M包括三维随机访问存储器(3D‑RAM)、三维只读存储器(3D‑ROM);三维印录存储器(3D‑P)、三维可写存储器(3D‑W);三维横向存储(3D‑MH)、三维纵向存储(3D‑MV)等

Description

分离的三维处理器
技术领域
本发明涉及集成电路领域,更确切地说,涉及处理器。
背景技术
处理器(包括CPU、GPU、FPGA等)广泛应用于数学计算、计算机模拟、可编程门阵列、模式处理、神经网络等领域。传统处理器芯片基于二维集成,其逻辑电路(如算术逻辑单元、控制单元等)与存储电路(内部存储器,包括用于缓存的RAM和存储查找表的ROM等)处于同一平面(即半导体衬底表面)。由于处理器芯片的主要功能是算术逻辑运算,其内部存储器的容量很小。
传统计算机基于冯·诺依曼架构,计算机中的处理器和存储器分离:绝大部分存储器为外部存储器(如内存、外存等),它们位于处理器芯片之外。处理器芯片在计算时如需要用到大量数据,则到外部存储器中获取数据。由于外部存储器与处理器芯片物理距离过远、它们之间数据总线较窄,外部存储器与处理器芯片之间的数据传输带宽有限。随着海量数据的出现,传统处理器及其冯·诺依曼架构逐渐力不从心。
以下对上述处理器应用领域的现状和局限做一介绍。
[A] 数学计算。
处理器的一个重要应用是数学计算,包括数学函数的计算和数学模型的计算。为了实现数学计算,传统处理器采用基于逻辑的计算(logic-based computation,简称为LBC),它主要通过逻辑电路(一般称为算术逻辑单元,即ALU)来计算。实际上,ALU能直接实现的算术运算仅为加法、减法和乘法,这些算术运算被统称为基础算术运算。ALU适合实现算术函数,但对于非算术函数无能为力。在实现数学计算的处理器中,算术函数是一种可表达为其基础算术运算一种组合的数学函数,而非算术函数则是一种不能表达为其基础算术运算一种组合的数学函数。非算术函数的例子包括超越函数和特殊函数等。由于非算术函数包含的运算多于ALU支持的算术运算,非算术函数不能由ALU单独实现。非算术函数的硬件实现一直面临巨大的挑战。
在传统处理器中,仅少量基本函数(即单变量非算术函数,包括基本代数函数、基本超越函数等)能通过硬件直接实现,这些函数被称为内置函数(built-in functions)。内置函数一般通过逻辑电路和查找表(LUT)的组合来实现。实现内置函数的现有技术很多。例如:美国专利US 5,954,787(发明人:Eun;授权日:1999年9月21日)披露了一种利用LUT实现正弦/余弦(SIN/COS)函数的方法;美国专利US 9,207,910(发明人:Azadet;授权日:2015年12月8日)披露了一种利用LUT实现幂函数的方法。
图1AA具体描述了内置函数的实现方法。传统处理器0X通常含有逻辑电路00L和存储电路00M。逻辑电路00L含有ALU,它用于实现算术运算。存储电路00M存储函数的LUT。为了达到预定精度,需将代表内置函数的多项式展开到足够高的阶数。存储电路00M存储多项式系数,ALU 00L计算相应的多项式。由于ALU 00L和存储电路00M并肩排列在同一平面上(均形成在衬底00S中),这种平面集成是一种二维集成。
计算目前正向更高的计算密度和更大的计算复杂度发展。计算密度是指单位芯片面积上的计算能力(如每秒的浮点数运算次数),它是平行计算的一个重要指标。计算复杂度是指芯片支持的内置函数数量,它是科学计算的一个重要指标。二维集成限制了计算密度和计算复杂度的进一步发展。
由于采用二维集成,过多存储电路00M将增加处理器0X的芯片面积,降低其计算密度,这对平行计算不利。此外,ALU 00L是处理器0X的核心部件,它占用了大部分芯片面积,故存储电路00M能利用的芯片面积有限,它只能支持少量的内置函数。图1AB列出英特尔公司的IA-64处理器能实现的所有内置超越函数(参考Harrison等所著《The Computation ofTranscendental Functions on the IA-64 Architecture》, Intel Technical Journal,Q4, 1999年)。IA-64处理器总共仅支持七种内置函数,如此少的内置函数组对数学计算极其不利。因为大部分数学函数需要用软件将其分解为内置函数的组合,传统处理器0X对对大部分数学计算速度慢且效率低。
[B] 计算机模拟。
处理器的另一个重要应用是计算机模拟,即对数学模型的计算。计算机模拟是数学计算的自然延伸,其基础是传统处理器支持的内置函数组(仅含有约十种内置函数)。传统的计算机模拟含三个层次:基础层、函数层和模型层。基础层包含各种硬件能直接实现的内置函数;函数层包含各种硬件不能直接实现的数学函数;模型层包含各种用于描述各个系统部件性能(如输入-输出特性)的数学模型。
函数层中的数学函数以及模型层中的数学模型需由软件实现。如前所述,函数层需要做一次软件分解。模型层则需要做两次软件分解:数学模型首先被分解为数学函数,然后数学函数再被分解成内置函数。由于数学模型涉及的软件分解次数更多,其时耗和能耗比数学函数更为恶化。
数学模型的计算复杂度非常惊人。图1BA-图1BB披露了一个简单例子—放大电路0Y的仿真。放大电路0Y含有一晶体管0T和一电阻0R(图1BA)。晶体管0T的数学模型(如图1BB中的MOS3、BSIM3 V3.2、BSIM4 V3.0、PSP等)均建立于传统处理器0X支持的内置函数组上。由于内置函数种类有限,即使是计算晶体管0T的一个电流点也需要很大计算量(图1BB)。举例说,BSIM4 V3.0晶体管模型需要做222次加法、286次乘法、85次除法、16次平方根运算、24次指数运算和19次对数运算。
传统处理器0X中的ALU 00L自身只能计算算术模型。由于大部分数学模型均为非算术模型,它们不能由ALU 00L单独实现。在实现计算机模拟的处理器中,算术模型是一种可表达为其基础算术运算一种组合的数学模型,而非算术模型则是一种不能表达为其基础算术运算一种组合的数学模型。由于非算术模型包含的运算多于算术逻辑单元支持的算术运算,非算术模型不能由ALU单独实现。用传统处理器0X来计算非算术模型速度慢且效率低。
[C] 可编程门阵列。
处理器的第三种应用是可编程门阵列。可编程门阵列(也被称为FPGA、CPLD等)属于半定制集成电路,即通过后端工艺或现场编程,实现对逻辑电路的定制化。美国专利4,870,302披露了一种可编程门阵列。它含有多个可编程逻辑单元(configurable logicelement,简称为CLE;或configurable logic block)和可编程连接(configurableinterconnect,简称为CIT;或programmable interconnect)。其中,可编程逻辑单元在设置信号控制下可以选择性地实现移位、逻辑非、AND(逻辑与)、OR(逻辑和)、NOR(和非)、NAND(与非)、XOR(异或)、+(算术加)、-(算术减)等功能;可编程连接在设置信号控制下可以选择性地实现两条互连线之间的连接、断开等功能。
在可编程门阵列中,可编程逻辑单元支持的算术运算(算术加和算术减)被统称为基础算术运算。它们比传统处理器中的基础算术运算(加法、减法和乘法)少。在本说明书提到基础算术运算时,可根据其上下文决定它是可编程门阵列中的基础算术运算,还是传统处理器中的基础算术运算。
可编程门阵列可实现对逻辑函数以及算术函数的定制,但对非算术函数的定制无能为力。在可编程门阵列中,算术函数是一种可表达为其基础算术运算一种组合的数学函数,而非算术函数则是一种不能表达为其基础算术运算一种组合的数学函数。由于于非算术函数包含的运算多于可编程逻辑单元支持的算术运算,非算术函数不能由可编程逻辑单元单独实现。对非算术函数的定制在现有技术中被认为是不可能的。
[D] 模式处理。
处理器的第四种应用是模式处理。模式处理包括模式匹配和模式识别,它指在目标模式(被检索的模式,target pattern)中查找与检索模式(用于检索的模式,searchpattern)相同或接近的模式。其中,模式匹配要求查找到相同的模式,模式识别仅要求查找到接近的模式。在本说明书中,“模式”包括目标模式和检索模式;“模式库”是指一包含相关模式的数据库,它包括目标模式库或检索模式库。
模式处理应用广泛。常用的模式处理包括代码匹配、字符串匹配、语音识别和图像识别等。代码匹配广泛用于信息安全等领域,其操作包括从网络数据包或计算机文件中查找病毒、或检查它们是否符合规范,从而决定数据是否安全。字符串匹配又被称为关键词检索,它广泛用于大数据分析等领域,其操作包括正规表达式(regular expression)匹配等。语音识别在声学/语言模型库中找到与语音数据最接近的声学/语言模型。图像识别将在图像模型库中找到与图像数据最接近的图像模型。
随着大数据时代的到来,模式库已成为大型数据库。其中,检索模式库(包括相关检索模式,如病毒库、关键词库、声学/语言模型库、图像模型库等)的数据量已经很大,而目标模式库(包括相关目标模式,如整个硬盘上的计算机文件、大数据数据库、语音档案库、图像档案库等)的数据量则更为巨大。遗憾的是,现有处理器的内部存储器无法存储这些模式库,所有模式库都需要存储在外部存储器中,在模式处理时需要频繁地从外部存储器中读取模式。因此,现有的处理器及其架构无法对大型模式库实现快速模式处理。
[E] 神经网络。
处理器的第五种应用是神经网络。神经网络提供了一种强大的人工智能工具。图1C是一个神经网络的例子。它含有输入层32、隐层34和输出层36。输入层32含有i个神经元33,其输入数据x1、…xi构成输入矢量30x。输出层36含有k个神经元37,其输出数据y1、y2、…yk构成输出矢量30y。隐层34介于输入层32和输出层36之间。它含有j个神经元35,每个神经元35与输入层32中的第一神经元以及输出层36中的第二神经元电耦合。神经元之间的耦合强度由突触权重wij和wjk表示。
现有技术提出一种神经网络加速器芯片60(参见陈云霁等著《DaDianNao: AMachine-Learning Supercomputer》,IEEE/ACM International Symposium on Micro-architecture,5(1),第609-622页,2014年)。神经网络加速器60含有16个内核50,它们通过一个树状连接相互耦合(图1DA)。每个内核50含有一个神经计算单元(NPU) 30和四个eDRAM块40(图1DB)。NPU 30进行神经计算,它含有256+32个16位乘法器和256+32个16位加法器。eDRAM 40存储突触权重,其存储容量为2MB。
神经网络加速器60仍有改进的空间。首先, eDRAM 40是一个易失存储器,运行前突触权重需要从外存加载到eDRAM 40中,这需要花费时间。其次,每个神经网络加速器芯片60中仅有32MB eDRAM可用于存储突触权重。这个容量仍远低于实际需要。再次,神经网络加速器60的设计重点向存储倾斜——在每个内核中,eDRAM 40占用了80%的面积,而NPU 30只占用了不到10%,故计算密度受到很大限制。
随着三维存储器(three-dimensional memory,简称为3D-M)的出现,上述传统处理器及其架构遇到的各种困难在很大程度上得到解决。3D-M的存储元分布在三维空间,即在垂直于衬底的方向上相互堆叠。中国专利02131089.0(授权公开号:CN 1285125C;授权日:1006年11月15日)提出一种基于3D-M的处理器(即三维处理器),它将逻辑电路集成到3D-M阵列下的衬底中,形成一个集成的三维处理器。集成的三维处理器处于单一的三维处理器芯片中。
集成的三维处理器可以应用到上述领域:中国专利申请201710241669.3(申请日:2017年4月13日)将集成的三维处理器应用到数学计算和计算机模拟;中国专利申请201710126067.3(申请日:2017年3月6日)将集成的三维处理器应用到可编程门阵列;中国专利申请201710130887.X(申请日:2017年3月7日)将集成的三维处理器应用到模式处理器;中国专利申请201710171413.X(申请日:2017年3月21日)将集成的三维处理器应用到神经网络处理器。集成的三维处理器在这些领域显示了极大的优势。
图1EA-图1EB表示一种集成的三维处理器80,它含有3D-M阵列77和与之集成的逻辑电路78。3D-M阵列77存储数据、逻辑电路78处理3D-M阵列77中存储的至少部分数据。在三维处理器芯片中,存储阵列77占有的芯片区域为存储区域70,存储区域70之外的芯片区域为非存储区域71(图1EA)。存储区域70含有衬底电路0K及堆叠于衬底电路0K上的3D-M阵列77(图1EB)。衬底电路0K形成在半导体衬底0上、3D-M阵列77之下。它含有晶体管0t及衬底互连线0i。晶体管0t形成在半导体衬底0中,它们之间通过衬底互连线0i电耦合。衬底互连线0i含有两个互连线层0m1-0m2,每个互连线层(如0m1)含有多条处于同一物理平面的互连线(如0m)。3D-M阵列77含有四个地址线层0a1-0a4,每个地址线层(如0a1)含有多条处于同一物理平面的地址线(如1a)。这些地址线层0a1-0a4形成两个存储层16A、16B。其中,存储层16A堆叠在衬底电路0K之上,存储层16B堆叠在存储层16A之上。存储元(如7aa)位于两条地址线(如1a、2a)的交叉处。存储层16A、16B分别通过接触通道孔1av、3av与衬底电路0K电耦合。
非存储区域71也含有部分衬底电路0K(图1EB)。由于非存储区域71不含有3D-M阵列77,其后端连线(back-end-of-line,简称为BEOL)层的数目比存储区域70较少。在本说明书中,后端连线层为一后端工艺的独立导电层(不计入通道孔)。在图1EB中,存储区域70含有六个后端连线层,包括衬底电路0i的两个互连线层0m1-0m2以及存储阵列77的四个地址线层0a1-0a4;而非存储区域71只含有两个后端连线层,包括衬底电路0i的两个互连线层0m1-0m2。在非存储区域71中,衬底电路0K上的空间72既不含有存储元、又不含互连线,该空间72实际上被浪费了。
存储区域70含有多个3D-M阵列77及其附属的本地(local)周边电路75和逻辑电路78(图1EA)。本地周边电路75和逻辑电路78形成于衬底0中,它们处于3D-M阵列77在衬底0的投影附近。由于3D-M阵列77堆叠在本地周边电路75以及逻辑电路78上,不位于衬底0中,在此用虚线表示。另一方面,非存储区域71含有3D-M阵列77的全局(global)周边电路73,它们形成于衬底0中,其位置处于所有3D-M阵列77在衬底0的投影之外。本地周边电路75和全局周边电路73统称为周边电路79。
在三维处理器芯片80中,非存储区域71占用了大量芯片面积。目前,非存储区域71占用20~30%的芯片面积;对于大容量存储器,这个比例甚至将会达到50%以上。因此,集成的三维处理器80的阵列效率较低。在本说明书中,阵列效率为芯片中3D-M阵列77在衬底0上的总投影面积与芯片总面积之比。
集成电路的主流观点是:集成度越大越好,即集成能降低成本并提高性能。传统集成电路倾向于单芯(monolithic)集成,即所有的电路部件都集成到一个芯片中。单芯集成对二维电路有效,但对三维电路——尤其是三维电路(如三维存储)与二维电路混合时——不再有效。在本说明书中,二维电路指电路的有源元件(如晶体管、存储元等)分布在一个二维平面(如半导体衬底正表面)上;三维电路指电路的有源元件(如晶体管、存储元等)分布在一个三维空间中(在垂直于半导体衬底正表面的方向上相互堆叠)。
当应用到三维电路与二维电路的集成时,单芯集成的缺陷是多方面的。首先,由于它们的后端工艺并不兼容。盲目集成将导致用制造3D-M阵列77的复杂工艺来制造逻辑电路78和周边电路79。加上集成的三维处理器芯片80具有较低的阵列效率,盲目集成会增加三维处理器芯片80的整体成本。
其次,由于3D-M阵列77对工艺要求很高,三维处理器芯片80的后端工艺需要对3D-M 阵列77优化,这不得不在一定程度上牺牲逻辑电路78和周边电路79的性能。对于集成的三维处理器80,逻辑电路78和周边电路79只能含有衬底互连线层0i所含的少数几个(如两个)互连线层0m1-0m2、或使用速度较慢的高温互连线材料(指能忍受制造3D-M阵列77时高温后端工艺的材料,如钨),这会降低三维处理器芯片80的整体性能。
最后,采用单芯集成后,逻辑电路78占用的芯片面积受限于3D-M阵列77在衬底上的投影面积,它只能实现有限的处理功能。此外,由于逻辑电路78与3D-M阵列77固化在一起,三维处理器80只能实现固定的功能。如果三维处理器80还需要实现其它功能,则整个三维处理器80(包括其3D-M阵列77和逻辑电路78)都需要重新设计和制造,这需要耗费大量时间和成本。
发明内容
本发明的主要目的是提供一种整体成本更为低廉的三维处理器。
本发明的另一目的是提供一种整体性能更为优异的三维处理器。
本发明的另一目的是提供一种功能更强大更灵活的三维处理器。
本发明的另一目的是提供一种计算密度更大的处理器。
本发明的另一目的是提供一种计算复杂度更大的处理器。
本发明的另一目的是提高数学计算的速度和效率。
本发明的另一目的是提高计算机模拟的速度和效率。
本发明的另一目的是对非算术函数定制。
本发明的另一目的是对复杂函数定制。
本发明的另一目的是实现可重构计算。
本发明的另一目的是对大型模式库实现高速高效模式处理。
本发明的另一目的是增强信息安全。
本发明的另一目的是增强大数据分析能力。
本发明的另一目的是增强语音识别能力并对语音档案库实现语音检索。
本发明的另一目的是增强图像识别能力并对图像档案库实现图像检索。
本发明的另一目的是增强神经网络计算能力。
为了实现这些以及别的目的,本发明遵从与传统处理器截然不同的的设计原则:将三维电路和二维电路去集成化。具体说来,将三维电路和二维电路尽可能划分到不同芯片中,以便将它们分别优化。相应地,本发明提出一种分离的三维处理器(100),其特征在于含有:多个存储计算单元(简称为储算单元)(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一逻辑电路(180);第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述逻辑电路(180)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。简单地说,第一芯片是一存储芯片,它含有多个相互堆叠的功能层;第二芯片是一逻辑芯片,它只有一个功能层。
分离的三维处理器与集成的三维处理器不同:在集成的三维处理器中,3D-M阵列的所有周边电路组件与3D-M阵列位于同一芯片;而在分离的三维处理器中,3D-M阵列的至少一个周边电路组件不位于第一芯片,而位于第二芯片。相应地,该处于第二芯片中的周边电路组件被称为片外周边电路组件。在设计时,分离的三维处理器采用的电路划分策略是使第二芯片含有尽量多的片外周边电路组件。这种划分的优势是第一芯片的阵列效率得到很大提高。注意到,虽然第一芯片含有3D-M阵列,由于它不含片外周边电路组件,第一芯片不能独立地作为一个存储芯片正常工作,如其性能不符合同类存储芯片的业界标准。
在分离的三维处理器中,由于第一芯片和第二芯片可以分别设计和制造,它们可以具有截然不同的后端结构。由于第二芯片的后端结构可以单独优化,其片外周边电路组件和逻辑电路比集成的三维处理器中的同类电路具有更低廉的成本和更优异的性能。以下对分离的三维处理器和集成的三维处理器做一比较。
首先,由于第一芯片中不含至少部分周边电路和逻辑电路,其阵列效率较高。此外,作为二维电路,第二芯片100b的后端连线层的数目远低于集成的三维处理器、并可以采用常规工艺制造。由于晶圆成本基本与后端连线层的数目成正比,故第二芯片的晶圆成本远低于集成的三维处理器。因此,分离的三维处理器(包括第一和第二芯片)的芯片总成本低于集成的三维处理器(只含一个芯片)。即使计入额外的键合成本,分离的三维处理器的整体成本比集成的三维处理器低廉。
其次,由于它们可以单独优化,分离的三维处理器中片外周边电路组件和逻辑电路的性能好于集成的三维处理器中的同类电路。在一实施例中,第二芯片中的互连线层数(如四层、八层或更多)大于集成的三维处理器(或第一芯片)中衬底电路的互连线层数(如两层)。在另一实施例中,第二芯片采用高性能互连线材料(如铜),而不用采用集成的三维处理器(或第一芯片)使用的高温互连线材料(如钨)。因此,分离的三维处理器的整体性能比集成的三维处理器优异。
最后,在集成的三维处理器中,由于逻辑电路局限在一个芯片中(如局限在3D-M阵列在衬底的投影面积内),它面积有限、功能也有限。与之比较,在分离的三维处理器中,由于逻辑电路可以形成在两个芯片中(逻辑电路的第一部分位于第一芯片中3D-M阵列在衬底的投影面积内,逻辑电路的第二部分位于第二芯片),其较大的面积赋予分离的三维处理器更强大的处理能力。此外,由于第二芯片单独设计并单独生产,它在设计和生产上具有更大的灵活性。通过将相同的第一芯片与具有不同功能的第二芯片结合,可实现适合于不同应用场景的处理功能。更好的是,这些不同的处理功能可以在较短的设计周期内和较少的设计预算下实现。因此,分离的三维处理器功能更强大更灵活。
以下就分离的三维处理器在不同领域的应用做一介绍。
[A] 数学计算。
当应用到数学计算时,分离的三维处理器用于实现非算术函数。它采用基于存储的计算(memory-based computation,简称为MBC),即主要通过存储在3D-M阵列中的大容量LUT(即3DM-LUT)来实现计算。与传统的、基于逻辑的计算(LBC)相比,MBC使用的3DM-LUT具有更大的容量。比如说,3D-XPoint的单芯存储容量高达128Gb,远高于传统LUT(数十kb),它可用来实现上万种非算术函数(包括各种超越函数和特殊函数)。虽然对于大多数MBC来说,它们仍需要进行算术运算。但是,通过使用较大的3DM-LUT作为出发点,MBC仅需使用较少的多项式展开。在MBC中,存储电路在计算中所占的比重大于逻辑电路。
相应地,本发明提出一种用于计算至少一非算术函数的三维处理器(100),其特征在于含有:多个计算单元(100ij),所述计算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一算术逻辑电路(ALC)(180ALC),所述3D-M阵列(170)存储所述非算术函数的至少部分查找表(LUT),所述ALC (180ALC)对所述LUT中的至少部分数据进行算术运算;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述ALC (180ALC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合;所述非算术函数包含的运算多于所述ALC (180ALC)支持的算术运算。
[B] 计算机模拟。
当应用到计算机模拟时,分离的三维处理器用于实现非算术模型,它仍采用MBC。MBC对计算机模拟带来巨大的优势。内置函数的大量增加(从约十种增加到上万种)将使计算机模拟的传统框架(包括基础层、函数层和模型层)扁平化。过去仅能在基础层用硬件实现函数;现在,不仅函数层的数学函数能直接被硬件实现,模型层的数学模型也能直接被硬件实现。在函数层,数学函数通过“函数查表法”(即3DM-LUT存储函数值及其导数值、通过查表并辅以多项式展开)来计算;在模型层,数学模型通过“模型查表法”(即3DM-LUT存储模型值及其导数值、通过查表并辅以多项式展开)来计算。通过3DM-LUT可实现数学模型的高速高效计算,这将推动计算机模拟的变革。
相应地,本发明提出一种用于计算至少一非算术模型的三维处理器(100),其特征在于含有:多个计算单元(100ij),所述计算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一算术逻辑电路(ALC)(180ALC),所述3D-M阵列(170)存储所述非算术模型的至少部分查找表(LUT),所述ALC (180ALC)对所述LUT中的至少部分数据进行算术运算;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述ALC (180ALC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合;所述非算术模型包含的运算多于所述ALC (180ALC)支持的算术运算。
[C] 可编程计算阵列。
当应用到可编程计算阵列时,分离的三维处理器是一种三维可编程计算阵列。它不仅能定制逻辑函数和算术函数,还能定制非算术函数。相应地,本发明提出一种用于对至少一非算术函数定制的三维可编程计算阵列(100),其特征在于含有:多个可编程逻辑单元(200)和/或可编程连接(300);以及多个含有至少一三维存储(3D-M)阵列(170)的可编程计算单元(400),所述3D-M阵列(170)存储所述非算术函数的至少部分查找表(LUT);第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述可编程逻辑单元(200)和/或可编程连接(300)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合;通过对所述可编程逻辑单元(200)和/或可编程连接(300)以及所述可编程计算单元(400)编程来实现对所述非算术函数的定制;所述非算术函数包含的运算多于所述可编程逻辑单元(200)支持的算术运算。
可编程计算单元的使用周期包括两个阶段:设置阶段和计算阶段。在设置阶段,根据用户需要将非算术函数的查找表加载到3D-M阵列中;在计算阶段,在3D-M阵列中查找相应的LUT来获得非算术函数的值。对于可以重复编程的3D-M,通过在不同使用周期中在3D-M阵列中加载不同非算术函数的LUT,可实现不同的非算术函数,从而实现可重构计算。
[D] 模式处理。
当应用到模式处理时,分离的三维处理器是一种三维模式处理器。其基本功能是模式处理。更重要的是,大部分模式处理所涉及的模式存储在本地,故模式处理电路与模式存储电路距离很近,读取新模式所需时间很短。此外,三维模式处理器含有成千上万个储算单元。在模式处理时,输入数据被送到所有储算单元中,并同时进行模式处理,从而保证大规模平行计算。三维模式处理器能对大型模式库以实现高速高效模式处理。
相应地,本发明提出一种分离的三维模式处理器(100),其特征在于含有:一传输至少部分第一模式的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一模式处理电路(180PPC),所述3D-M阵列(170)存储至少部分第二模式,所述模式处理电路(180PPC)对所述第一和第二模式进行模式处理;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述模式处理电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
[E] 神经网络。
当应用到神经网络时,分离的三维处理器是一种三维神经网络处理器。其基本功能是神经计算。更重要的是,大部分神经计算所需要的突触权重在本地,神经计算电路与突触权重的存储电路距离很近,读取突触权重所需时间很短。此外,三维神经网络处理器含有成千上万个储算单元。在神经计算时,输入数据被送到所有储算单元中,并同时进行神经计算,从而保证大规模平行计算。三维神经网络处理器能实现高速高效的神经计算。
相应地,本发明提出一种分离的三维神经网络处理器(100),其特征在于含有:多个储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一神经计算电路(180NPC),所述3D-M阵列(170)存储至少部分突触权重,所述神经计算电路(180NPC)基于所述突触权重进行神经计算;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述神经计算电路(180NPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
附图说明
图1AA是一传统处理器(现有技术)的透视图;图1AB列出英特尔Itanium(IA-64)处理器支持的所有超越函数(现有技术);图1BA是一放大电路的电路图;图1BB列出不同晶体管模型计算一个电流点所需的计算量(现有技术);图1C是一种神经网络的示意图;图1DA是一种神经网络处理器(现有技术)的电路框图;图1DB是一种神经网络加速器(现有技术)的芯片布局图;图1EA是一种集成的三维处理器(现有技术)的电路布局图;图1EB是该三维处理器的截面图。
图2A-图2C是对一种分离的三维处理器的整体介绍:图2A是其电路框图;图2B是一种储算单元的电路框图;图2C是一种分离的三维处理器中两个芯片的电路布局图。
图3A-图3D是四种分离的三维处理器的截面图。
图4A-图4D是四种第一芯片的截面图。
图5是一种第二芯片的截面图。
图6A是一种第一芯片的电路布局图;图6BA-图6BB是两种第二芯片的电路布局图。
图7A-图7C是三种储算单元的电路框图。
图8A-图8C是三种储算单元在第一和第二芯片中的电路布局图。
图9是一种计算单元的电路框图。
图10A-图10C是三种算术逻辑电路(ALC)的电路框图。
图11A是第一种计算单元的电路框图;图11B是该计算单元一种具体实现的电路图。
图12是第二种计算单元的电路框图。
图13是第三种计算单元的电路框图。
图14A是一种可编程单元的电路框图;图14B表示该可编程单元所包含的功能模块。
图15A是第一种可编程计算单元的电路框图;图15B是第二种可编程计算单元的电路框图。
图16表示一种可编程计算单元的两个使用周期。
图17A披露一种可编程连接能实现的连接库;图17B披露一种可编程逻辑单元能实现的逻辑运算库。
图18是第一种三维可编程计算阵列的布局图。
图19是第一种三维可编程计算阵列实现一非算术函数时的设置图。
图20是第二种三维可编程计算阵列的布局图。
图21A-图21B是该第二种三维可编程计算阵列实现两种数学函数时的设置图。
图22是一种分离的三维平行处理器的电路框图。
图23是一种三维模式处理器中储算单元的电路框图。
图24是一种三维神经网络处理器中储算单元的电路框图。
图25是在一种神经计算电路的电路框图。
图26A-图26B是两种计算电路的电路框图。
注意到,这些附图仅是概要图,它们不按比例绘图。为了显眼和方便起见,图中的部分尺寸和结构可能做了放大或缩小。在不同实施例中,数字后面的字母后缀表示同一类结构的不同实例;相同的数字前缀表示相同或类似的结构。
在本说明书中,“/”表示“和”或“或”的关系。“存储器”泛指任何基于半导体的信息存储设备,它可以长久或临时存储信息。“存储阵列(如3D-M阵列)”是所有共享至少一条地址线的存储元之集合。“衬底中的电路”表示该电路的有源元件(如晶体管、存储元)位于衬底中;但该电路中连接有源元件的互连线可以位于在衬底上方。“衬底上的电路”表示该电路的有源元件(如晶体管、存储元)和其互连线均位于衬底上方。“电耦合”表示电信号可以从一元件传输到另一元件的、任何形式的耦合。 “查找表(LUT)(包括3DM-LUT)”既可指LUT中的数据,也可指用来存储LUT的存储电路(即LUT存储器),本说明书对它们不做区分。“模式”既可指抽象的模式,也可指模式的物理表现(即与模式相关的数据),本说明书对它们不做区分。
具体实施方式
图2A-图2C是对一种分离的三维处理器100的整体介绍。图2A是其电路框图。分离的三维处理器100不仅能处理数据,还能存储数据。更重要的是,它处理的很大部分数据存储在本地且距离很近。分离的三维处理器100含有一个含有m x n个储算单元100aa-100mn的储算阵列。以储算单元100ij为例,它有输入110和输出120。一般说来,一个三维处理器100可以含有成千上万个储算单元100aa-100mn,它支持大规模平行计算。
图2B是一种储算单元100ij的电路框图。储算单元100ij含有一存储电路170和一逻辑电路180,它们之间通过多个芯片间连接160(参见图3A-图3D)电耦合。存储电路170含有至少一3D-M阵列。3D-M阵列存储数据,逻辑电路180对部分所述数据进行处理。由于3D-M阵列170与逻辑电路180不位于同一芯片中(见图2C),3D-M阵列170用虚线表示。
图2C表示一种分离的三维处理器100的具体实现方式,它含有至少一第一芯片(也被称为存储芯片)100a和至少一第二芯片(也被称为逻辑芯片)100b。第一芯片100a含有三维电路,在该实施例中为3D-M阵列170。第二芯片100b含有二维电路,在该实施例中为逻辑电路180和3D-M阵列170的一周边电路组件190。芯片间连接160为第一芯片100a和第二芯片100b之间实现电耦合。由于周边电路组件190与3D-M阵列170处于不同芯片中,它被称为片外周边电路组件。注意到,部分逻辑电路可以位于第一芯片100a中,比如说3D-M阵列170下方可以集成部分逻辑电路。为简便计,在本说明书中,除了特别说明,逻辑电路指位于第二芯片100b上的逻辑电路180。
分离的三维处理器100采用的电路划分策略是使第二芯片100b含有尽量多的片外周边电路组件190。周边电路组件190是存储芯片的有机组成部分;缺少它的存储芯片(如第一芯片100a)不能独立地实现存储器的基本功能(如其性能不符合同类存储芯片的业界标准)。典型的周边电路组件190可以是地址解码器、读放大电路、写电路、读电压产生电路、写电压产生电路、数据缓冲区或其中的一部分。
图3A-图3D是四种分离的三维处理器100的截面图,它侧重于显示芯片间连接160的各种实现方式。在图3A的实施例中,第一芯片100a和第二芯片100b相互堆叠,即沿垂直于芯片表面的方向堆叠。其中,第一芯片100a和第二芯片100b的正面(即含有电路的表面)均朝上(+z方向),它们之间通过键合线160w实现芯片间连接160。
在图3B的实施例中,第一芯片100a和第二芯片100b面对面堆叠。具体说来,第一芯片100a正面朝上(+z方向);而翻转第二芯片100b使其正面朝下(-z方向)。它们之间通过微焊点(micro-bump)160x实现芯片间连接160。
图3C的实施例含有两个存储芯片100a1、100a2和一个逻辑芯片100b。为了避免混淆,在该图中第一芯片被称为存储芯片100a1、100a2,第二芯片被称为逻辑芯片100b。存储芯片100a1、100a2各自含有多个3D-M阵列;它们相互堆叠,并通过穿透衬底通道孔(through-silicon vias,简称为TSV)160y电耦合。堆叠的存储芯片100a1、100a2与逻辑芯片100b之间通过微焊点160x电耦合。TSV 160y和微焊点160x为芯片间连接160。在本实施例中,逻辑芯片100b中的逻辑电路180为两个存储芯片100a1、100a2中存储的数据进行处理。
在图3D的实施例中,在第一芯片100a的正表面形成第一绝缘介质168a,然后在第一绝缘介质168a中形成多个第一通道孔160za。此外,在第二芯片100b的正表面也形成第二绝缘介质168b,然后在第二绝缘介质168b中形成多个第二通道孔160zb。翻转第二芯片100b后,将第一通道孔160za和第二通道孔160zb对准,并粘连第一和第二芯片100a、100b。相应地,第一和第二芯片100a、100b通过电接触的第一和第二通道孔160za、160zb实现芯片间连接160。由于通道孔160za、160zb通过标准芯片制造工艺形成,它可以具有很小尺寸和很多数量。因此,在第一芯片100a和第二芯片100b之间可以形成大带宽的芯片间连接160。在本实施例中,通道孔160za、160zb统称为竖直接触连接(vertical interconnect access,简称为VIA)。
在上述的实施例中,存储电路170和逻辑电路180之间距离较近(相对于传统的冯·诺依曼架构)。此外,对于图3B-图3D的实施例——尤其是图3C-图3D的实施例,芯片间连接(TSV或VIA)160数量巨大,它可在存储电路170和逻辑电路180之间实现超宽带宽。加上大规模平行处理(图2A),分离的三维处理器100性能优异。
图4A-图4D表示四种第一芯片100a,其中的3D-M阵列170采用单芯(monolithic)集成,即其存储元在竖直方向上相互堆叠,在存储元之间不存在任何半导体衬底。
根据其物理结构,3D-M分为三维横向存储器(three-dimensional horizontalmemory,简称为3D-MH)和三维纵向存储器(three-dimensional vertical memory,简称为3D-MV)。3D-MH中所有地址线是水平的,其存储元构成多个水平的存储层,水平存储层在衬底电路上垂直堆叠。3D-MH的典型例子为3D-XPoint。3D-MV的至少一组地址线是竖直的,其存储元构成多个竖直的存储串,存储串在衬底电路上并肩排列。3D-MV的典型例子为3D-NAND。3D-MH速度更快,而3D-MV存储密度更大。
根据信息存储的时间长短,3D-M分为3D-RAM(三维随机访问存储器)和3D-ROM(三维只读存储器)。3D-RAM能临时存储信息,它主要用于缓存;3D-ROM能长期存储信息,它是一种非易失存储器(NVM)。本发明中的大多数3D-M阵列为3D-ROM。
根据其可编程度,3D-M分为三维可写存储器(three-dimensional writablememory,简称为3D-W)和三维印录存储器(three-dimensional printed memory,简称为3D-P)。3D-W存储的信息通过电编程的方式录入。根据其可编程的次数,3D-W又分为三维一次编程存储器(three-dimensional one-time-programmable memory,简称为3D-OTP)和三维多次编程存储器(three-dimensional multiple-time-programmable memory,简称为3D-MTP,包括重复编程)。一种常见的3D-MTP是3D-XPoint和3D-NAND。其它3D-MTP包括memristor、阻变存储器(RRAM)、相变存储器(PCM)、programmable metallization cell(PMC)、conductive bridging random-access memory (CBRAM)等。
3D-P存储的信息是在工厂生产过程中采用印刷方式录入的(印录法)。这些信息是永久固定的,出厂后不能改变。印录法可以是光刻(photo-lithography)、纳米压印法(nano-imprint)、电子束扫描曝光(e-beam lithography)、DUV扫描曝光、激光扫描曝光(laser programming)等。常见的3D-P有三维掩膜编程只读存储器(3D-MPROM),它通过光刻法经过掩膜编程录入数据。由于它没有电编程的要求,3D-P存储元在读的时候可以偏置在更高的电压。因此,3D-P的读速度比3D-W快。
图4A-图4B中的第一芯片100a含有衬底电路0Ka及堆叠在衬底电路0Ka上的3D-MH阵列170。衬底电路0Ka含有晶体管0t及互连线0ia。晶体管0t形成在第一半导体衬底0a中,它们之间通过衬底互连线0ia电耦合。衬底互连线0ia含有两个互连线层0m1a-0m2a,每个互连线层(如0m1a)含有多条处于同一物理平面的互连线(如0m)。3D-MH阵列170含有四个地址线层0a1a-0a4a,每个地址线层(如0a1a)含有多条处于同一物理平面的地址线(如1a)。这些地址线层0a1a-0a4a形成两个存储层16A、16B。其中,存储层16A堆叠在衬底电路0Ka之上,存储层16B堆叠在存储层16A之上。存储元(如7aa)位于两条地址线(如1a、2a)的交叉处。存储层16A、16B分别通过接触通道孔1av、3av与衬底电路0Ka实现芯片内连接150。接触通道孔1av、3av含有多个通道孔,每个通道孔穿透至少一绝缘层,并与其上和其下的通道孔电耦合。在图4A-图4B中,衬底电路0Ka含有3D-MH阵列170的至少部分周边电路。在某些实施例中,衬底电路0Ka可以含有部分逻辑电路。
图4A中的3D-MH阵列170是一种3D-W。其存储元7aa含有一层编程膜5和一层二极管膜6。编程膜5可以是反熔丝膜(可编程一次,用于3D-OTP),也可以是阻变(resistive RAM,简称为RRAM)膜(可重复编程,用于3D-MTP)。二极管膜6具有如下的广义特征:在读电压下,其电阻较小;当外加电压小于读电压或者与读电压方向相反时,其电阻较大。二极管膜可以是P-i-N二极管,也可以是金属氧化物(如TiO2等)二极管等。
图4B中的3D-MH阵列170是一种3D-P。它含有至少两种存储元:高阻存储元7ab和低阻存储元7ac。低阻存储元7ac含有一层二极管膜6,它与3D-W中的二极管膜6类似。高阻存储元7ab还含一高阻膜9,它是一绝缘膜(如氧化硅/氮化硅)。在生产流程中,位于低阻存储元7ac处的高阻膜9被物理移除。
图4C-图4D中的第一芯片100a含有衬底电路0Ka及堆叠在衬底电路0Ka上的3D-MV阵列170。衬底电路0Ka与图4A-图4B中的衬底电路类似。在某些实施例中,3D-MV阵列170下方没有衬底电路0Ka。3D-MV阵列170含有多个垂直堆叠的水平地址线层0a1a-0a8a,每个水平地址线层(如0a5a)含有多条处于同一物理平面的水平地址线(如15)。3D-MV阵列170还含有一组竖直地址线,它们垂直于衬底0a(即沿+z方向)。3D-MV的存储密度在所有半导体存储器中最高。为简便计,图4C-图4D中3D-MV阵列170与衬底电路0Ka之间电耦合的芯片内连接150未画出,它们为本领域的专业人士所熟知。
图4C中的3D-MV阵列170采用晶体管或类晶体管器件作为存储元。它含有多个竖直的且并肩排列的存储串16X、16Y。每个存储串(如16Y)含有多个垂直堆叠的存储元(如18ay-18hy)。每个存储元(如18fy)含有一个纵向晶体管,该纵向晶体管含有栅极(为水平地址线)15、存储膜17和纵向沟道(为竖直地址线)19。存储膜17可以含有氧化硅-氮化硅-氧化硅、氧化硅-多晶硅-氧化硅等复合薄膜。该3D-MV阵列170是一3D-NAND,其生产工艺为本专业的人士熟知。
图4D中的3D-MV阵列170采用二极管或类二极管器件作为存储元。它含有多个并肩排列的竖直存储串16U-16W。每个存储串16U含有多个垂直堆叠的存储元18au-18hu。3D-MV阵列170含有多条垂直堆叠的水平地址线(字线)15。在刻蚀出多个穿透这些水平地址线15的存储井11后,在存储井11的边墙覆盖一层编程膜13,并填充导体材料以形成竖直地址线19(位线)。导体材料可以是金属材料或掺杂的半导体材料。存储元18au-18hu形成在字线15和位线19的交叉处。编程膜13可以是一次编程(OTP,如反熔丝膜)或多次编程(MTP,如RRAM膜)。
为了减少存储元之间的相互干扰,在字线15和位线19之间最好能形成二极管。在一个实施例中,编程膜13本身可以具有一定的二极管电特性。在另一实施例中,可以在存储井11的边墙上单独淀积一层二极管膜(此处未画出)。在第三实施例中,可以在字线15和位线19之间自然形成一内置(built-in)二极管(如P-N二极管、肖特基二极管)。有关内置二极管的细节可参考中国专利申请201811117502.7(申请日:2018年9月20日)。
图5中的第二芯片100b为一传统的二维电路0Kb,它用于实现逻辑电路180和片外周边电路组件190。第二芯片100b含有晶体管0t及互连线0ib。晶体管0t形成在第二半导体衬底0b中,它们之间通过互连线0ib电耦合。在这个实施例中,互连线0ib含有四个互连线层0m1b-0m4b,每个互连线层(如0m1b)含有多条处于同一物理平面的互连线(如0m)。
比较第一芯片100a(图4A-图4D)和第二芯片100b(图5),第一芯片100a中后端连线层的数目大于第二芯片100b。比如说,图4A-图4B中第一芯片100a有六个后端连线层(0m1a-0m2a、0a1a-0a4a)、图4C-图4D中第一芯片100a有十个后端连线层(0m1a-0m2a、0a1a-0a8a),其数目均大于图5中第二芯片100b的四个后端连线层(0m1b-0m4b)。即使只算第一芯片100a中地址线层的数目,它也大于等于第二芯片100b中互连线层的数目。尤其是对于3D-MV阵列170来说,第一芯片100a中地址线层的数目(约等于存储串中所有存储元的数目, 近百层,还在增加)远远大于第二芯片100b中互连线层的数目(如四层),至少为其两倍以上。
另一方面,由于第二芯片100b独立设计和制造,其互连线0ib中互连线层的数目大于第一芯片100a中衬底互连线0ia中互连线层的数目。比如说,图5中第二芯片100b有四个互连线层(0m1b-0m4b),大于图4A-图4D中第一芯片100a的两个互连线层(0m1a-0m2a)。因此,第二芯片100b的电路布局要比第一芯片100a(或集成的三维处理器80)容易。而且,第二芯片100b可以采用高速互连线材料(如铜),第一芯片100a(或集成的三维处理器80)只能采用高温互连线材料(如钨),其速度一般较低。
图6A-图6BB是两种分离的三维处理器100中第一和第二芯片100a、100b的电路布局图,它们比图2C显示了更多细节。该实施例对应于图7A和图8A的实施例。熟悉本领域的专业人士可以很容易地将它推广到图7B和图8B、以及图7C和图8C的实施例中。
图6A表示第一芯片100a,它含有多个3D-M阵列170aa-170mn。图6BA表示第二芯片100b,它含有多个逻辑电路180aa-180mn和一全局周边电路组件190G。全局周边电路组件190G位于所有3D-M阵列170aa-170mn在第二芯片100b上的投影之外。图6A和图6BA的三维处理器100采用“全对齐”技术,即两个芯片100a、100b上的电路布局满足如下要求:当两个芯片100a、100b堆叠后,每个3D-M阵列(如170ij)都有一个逻辑电路(如180ij)与之垂直对齐并电耦合(参见图8A-图8C)。由于一个逻辑电路(如180ij)可以有多个3D-M阵列(如170ijA-170ijD、170ijW-170ijZ)与之垂直对齐并电耦合(参见图8B-图8C),第二芯片100b上逻辑电路(如180ij)的周期是第一芯片100a上3D-M阵列(如170ij)周期的整数倍。
图6BB表示另一种第二芯片100b,它还含有多个本地周边电路组件190aa-190mn。很明显,图6A和图6BB的三维处理器100也可采用“全对齐”技术。其中,每个本地周边电路组件190aa-190mn与一3D-M阵列(如170ij)垂直对齐并电耦合。除了本地周边电路组件190aa-190mn,图6BB中的实施例也可以含有全局周边电路组件190G。在本说明书中,所有本地周边电路组件190aa-190mn与全局周边电路组件190G统称为片外周边电路组件190。
在图6A-图6BB的实施例中,本地周边电路组件(如190ij)一般含有部分地址解码器、部分读放大电路、或部分写电路等,它完成对每个3D-M阵列(如170ij)中存储元的至少部分读写操作。全局周边电路组件190G一般含有读电压产生电路、写电压产生电路、或数据缓冲区等,它产生读/写电压等。当然,这些本地和全局周边电路组件的划分不是绝对的。比如说,本地周边电路组件可以含有至少部分读/写电路产生电路。
图7A-图8C表示三种储算单元100ij。图7A-图7C是其电路框图(为简便计,片外周边电路组件190ij在图7A-图7C中未画出);图8A-图8C是其电路布局图。在这些实施例中,一个逻辑电路180ij为不同数量的3D-M阵列170ij服务。
图7A中的逻辑电路180ij为一个3D-M阵列170ij服务:它对存储在3D-M阵列170ij中的数据进行处理。图7B中的逻辑电路180ij为四个存储阵列170ijA-170ijD服务:它对存储在3D-M阵列170ijA-170jiD中的数据进行处理。图7C中的逻辑电路180ij为八个存储阵列170ijA-170ijD和170ijW-170ijZ服务:它对存储在3D-M阵列170ijA-170ijD和170ijW-170ijZ中的数据进行处理。从后面的图8A-图8C可以看出,为更多3D-M阵列170ij服务的逻辑电路180ij一般占有更大的芯片面积和具有更强的功能。在图7A-图7C中,由于3D-M阵列170ij与逻辑电路180ij位于不同芯片(参见图2C和图6A-图6BB),3D-M阵列170ij用虚线表示。
图8A-图8C表示第二芯片100b的电路布局、以及3D-M阵列170(位于第一芯片100a中)在第二芯片100b上的投影(用虚线表示)。图8A的实施例对应于图7A的实施例。在该实施例中,储算单元100ij中的逻辑电路180ij和本地周边电路组件190ij位于第二芯片100b的第二半导体衬底0b中。逻辑电路180ij和片外周边电路组件190ij被3D-M阵列170ij至少部分覆盖。
在本实施例中,逻辑电路180ij的周期等于3D-M阵列170ij的周期、面积不能超过3D-M阵列170ij在第二芯片100b上的投影面积,故功能有限。该实施例较适于实现较简单的数据处理。图8B-图8C披露了两种复杂逻辑电路180。
图8B的实施例对应于图7B的实施例。在该实施例中,储算单元100ij的逻辑电路180ij和片外周边电路组件190ij位于第二芯片100b中,它们被四个3D-M阵列170ijA-170ijD至少部分覆盖。在四个3D-M阵列170ijA-170ijD下方,逻辑电路180ji可以自由布局。图8B中的逻辑电路180ij的周期是图8A中3D-M阵列170ij周期的两倍、面积是其四倍,故能实现较复杂的处理功能。
图8C的实施例对应于图7C中的实施例。在该实施例中,储算单元100ij中的逻辑电路180ij和片外周边电路组件190ij位于第二芯片100b中。这八个3D-M阵列170ijA-170ijD、170ijW-170ijZ分为两组170ijSA、170jiSB。每组(如170ijSA)包括四个3D-M阵列(如170ijA-170ijD)。在第一组170SA的四个3D-M阵列170ijA-170ijD下方,第一逻辑电路组件180ijA可以自由布局。类似地,在第二组170ijSB的四个3D-M阵列170ijW-170ijZ下方,第二逻辑电路组件180ijB可以自由布局。第一逻辑电路组件180ijA和第二逻辑电路组件180ijB构成逻辑电路180ij。在本实施例中,在相邻片外周边电路组件之间留有间隙(如G),以形成布线通道182、184、186,供不同逻辑电路组件180ijA、180ijB之间、或不同逻辑电路之间实现电耦合。图8C中的逻辑电路180ij的周期是图8A中3D-M阵列170ij周期的四倍(x方向)、面积是其八倍,故能实现更复杂的处理功能。
在分离的三维处理器100中,由于第一芯片100a和第二芯片100b可以分别设计和制造,它们可以具有截然不同的后端结构。由于第二芯片100b的后端结构可以单独优化,其片外周边电路组件190和逻辑电路180比集成的三维处理器80中的同类电路具有更低廉的成本和更优异的性能。以下对分离的三维处理器100和集成的三维处理器80做一比较。
首先,由于第一芯片100a中不含片外周边电路组件190和逻辑电路180,其阵列效率较高。此外,作为二维电路,第二芯片100b的后端连线层数目远低于集成的三维处理器80、并可以采用常规工艺制造。由于晶圆成本基本与后端连线层的数目成正比,故第二芯片100b的晶圆成本远低于集成的三维处理器80。因此,分离的三维处理器100(包括第一和第二芯片100a、100b)的芯片总成本低于集成的三维处理器80(只含一个芯片)。即使计入额外的键合成本,分离的三维处理器100的整体成本也更低廉。
其次,由于它们可以单独优化,分离的三维处理器100中片外周边电路组件190和逻辑电路180的性能好于集成的三维处理器80中的同类电路。在一实施例中,第二芯片100b中的互连线层数(如四层、八层或更多,图5)大于集成的三维处理器80(或第一芯片100a)中衬底电路0K的互连线层数(如两层,图1EB)。在另一实施例中,第二芯片100b采用高性能互连线材料(如铜),而不用采用集成的三维处理器80(或第一芯片100a)使用的高温互连线材料(如钨)。因此,分离的三维处理器100的整体性能更优异。
最后,在集成的三维处理器80中,由于逻辑电路78局限在一个芯片80中(如图1EA中3D-M阵列77在衬底0的投影面积内),其面积有限、功能也有限。与之比较,在分离的三维处理器100中,由于逻辑电路180可以形成在两个芯片100a、100b中(如逻辑电路的第一部分位于图6A中第一芯片100a的3D-M阵列170ij下方,类似图1EA中位于3D-M阵列77下方的逻辑电路78;逻辑电路的第二部分位于图6BA的第二芯片100b),其较大的面积赋予三维处理器100更强大的处理能力。此外,由于第二芯片单独设计并单独生产,它在设计和生产上具有更大的灵活性。通过将相同的第一芯片100a与具有不同功能的第二芯片100b结合,可实现适合于不同应用场景的处理功能。更好的是,这些不同的处理功能可以在较短的设计周期内和较少的设计预算下实现。因此,分离的三维处理器100的功能更强大更灵活。
以下就分离的三维处理器在各个领域的应用做一介绍。
[A] 数学计算。
当应用到数学计算时,分离的三维处理器用于实现非算术函数,它采用基于存储的计算(memory-based computation,简称为MBC),即主要通过存储在3D-M阵列中的大容量LUT(即3DM-LUT)来实现计算。在该应用中,图2A中的储算单元100ij又被称为计算单元。其中,3D-M阵列170存储一非算术函数的至少部分查找表(LUT),逻辑电路180为一算术逻辑电路(ALC)。
图9表示一种计算单元100ij。它包含输入110、输出120、3D-M阵列170和ALC180ALC(即逻辑电路180为ALC 180ALC)。3D-M阵列170存储一非算术函数(或模型)的至少部分LUT,ALC 180ALC对LUT中数据进行算术运算。3D-M阵列170和ALC 180ALC通过芯片间连接160电耦合。如前所述,非算术函数包含的运算多于ALC 180ALC支持的算术运算(即加法、减法和乘法)。由于它不能表达为基础算术运算的一种组合,非算术函数不能由ALC 180ALC单独实现,它需要由ALC 180ALC与LUT 170结合才能实现。
图10A-图10C是三种ALC 180ALC的电路框图。图10A的ALC 180ALC是一种加法器180A;图10B中的ALC 180ALC是一种乘法器180M;图10C中的ALC 180ALC是一种乘加器(MAC),它含有一加法器180A和一乘法器180M。ALC 180ALC可以实现整数运算、定点数运算或浮点数运算。
图11A-图11B表示第一种计算单元100ij,它用于实现非算术函数Y=f(X)、并采用函数查表法。图11A是其电路框图。ALC 180ALC含有一预处理电路180R、一3DM-LUT 170P和一后处理电路180T。预处理电路180R将输入变量(X)110转化为3DM-LUT 170P的地址(A)。读出3DM-LUT 170P地址(A)的数据(D)后,后处理电路180T将其转化为函数值(Y)120。为了提高计算精度,输入变量(X)的余量(R)被送到后处理电路180T。
图11B是能实现单精度非算术函数Y=f(X)的一种计算单元100ij。输入变量X 110为32位(x31… x0)。预处理电路180R将其前16位(x31… x16)提取出来作为3DM-LUT 170P的16位地址A,再将其后16位(x15… x0)提取出来作为16位余量R送到后处理电路180T。3DM-LUT 170P含有两个3DM-LUT 170Q、170R。每个3DM-LUT 170Q、170R均有2Mb容量(16位输入、32位输出)。其中,3DM-LUT 170Q存储该函数的函数值D1=f(A),3DM-LUT 170R存储该函数的一阶导数值D2=f’(A)。后处理电路180T含有乘法器180M和加法器180A。输出值(Y)120为32位,它通过多项式插值算出。在本实施例中,多项式插值是一阶泰勒级数:Y(X)=D1+D2*R= f(A)+f’(A)*R。采用更高阶的多项式插值(如更高阶的泰勒级数)能进一步提高计算精度。
在实现非算术函数时,将LUT和多项式插值结合起来可以用较小的LUT实现较高的计算精度。假如仅用LUT(无多项式插值)来实现上述的单精度函数(32位输入、32位输出),LUT的容量需要达到232*32=128Gb,这是不现实的。通过多项式插值,LUT的容量可极大地降低。在上述实施例中,在采用一阶泰勒级数后,LUT只需4Mb(函数值LUT需要2Mb、一阶导数值LUT需要2Mb)。这比仅用LUT的方式少很多(4Mb vs. 128Gb)。
除了初等函数(包括代数函数和超越函数)以外,三维处理器100还能实现各种高等函数,如特殊函数等。特殊函数在数学分析、泛函分析、物理研究、工程应用中有着举足轻重的地位。许多特殊函数是微分方程的解或基本函数的积分。特殊函数的例子包括伽玛函数、贝塔函数、贝塞尔函数、勒让德函数、椭圆函数、Lame函数、Mathieu函数、黎曼泽塔函数、菲涅耳积分等。三维处理器100的出现将简化特殊函数的计算,助推其在科学计算中的应用。
图12表示第二种计算单元100ij。该计算单元100ij用于实现复合函数(compositefunction)Y=EXP[K*LOG(X)]=XK,它采用函数查表法。计算单元100ij含有两个3DM-LUT170S、170T和一乘法器180M。3DM-LUT 170S存储LOG()的函数值,3DM-LUT 170T存储EXP()的函数值。输入变量X被用作3DM-LUT 170S的地址110。3DM-LUT 170S的输出LOG(X) 160s在乘法器180M处与幂参数K相乘,乘积160t作为地址送到3DM-LUT 170T中。3DM-LUT 170T的输出120为Y=XK
图11A-图11B以及图12中实施例计算的函数为组合函数。组合函数是至少两种非算术函数的一种组合,如单精度函数是函数值与导数值的组合;复合函数是两种函数的组合。相应地,本发明还提出一种用于计算一组合函数的三维处理器(100),其特征在于含有:第一三维存储(3D-M)阵列(170Q或170S)、第二3D-M阵列(170R或170T)和一算术逻辑电路(ALC) (180ALC),所述第一3D-M阵列(170Q或170S)存储第一非算术函数的至少部分第一查找表(LUT),所述第二3D-M阵列(170R或170T)存储第二非算术函数的至少部分第二LUT,所述ALC (180ALC)对所述第一或第二LUT中的至少部分数据进行算术运算;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述第一和第二3D-M阵列(170Q、170R或170S、170T),所述第二芯片(100b)含有至少部分所述ALC (180ALC)以及所述第一或第二3D-M阵列(170Q、170R、170S或170T)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合;所述组合函数是所述第一和第二非算术函数的一种组合;所述第一和第二非算术函数包含的运算多于所述ALC (180ALC)支持的算术运算。
[B] 计算机模拟。
当应用到计算机模拟时,分离的三维处理器用于实现非算术模型,它仍采用MBC。MBC对计算机模拟带来巨大的优势。在该应用中,图2A中的储算单元100ij也被称为计算单元。其中,3D-M阵列170存储非算术模型的至少部分LUT,逻辑电路180为一ALC 180ALC。
图13表示第三种计算单元100ij。该计算单元100ij用于实现放大电路0Y(图1BA)的计算机模拟,它采用模型查表法。该计算单元100ij含有一3DM-LUT 170U、一加法器180A和一乘法器180M。3DM-LUT 170U存储与晶体管0T性能(如输入-输出特性)相关的数据。输入电压VIN被用作3DM-LUT 170U的地址110,读出数据160u为漏电流ID。乘法器180M将ID与电阻0R的负值-R相乘,所得结果(-R*ID)在加法器180A处与电源电压VDD相加,得到输出电压值VOUT 120。
3DM-LUT 170U可以存储多种数学模型。在一种实施例中,3DM-LUT 170U存储的模型数据是原始测量数据,如测量出的输入-输出特性。一个例子是晶体管的漏电流vs. 栅源电压(ID-VGS)特性曲线。在另一种实施例中,3DM-LUT 170U存储的模型数据是平滑后的测量数据。原始测量数据可以通过纯数学方法进行平滑(如通过最佳拟合模型),也可以通过物理模型来辅助平滑(如BSIM4 V3.0晶体管模型)。在第三种实施例中,3DM-LUT 170U存储的模型数据不仅包含晶体管的测量值,还包括测量值的导数。比如说,3DM-LUT 170U存储的模型数据不仅包括晶体管0T的电流值(ID-VGS),还包括其跨导值(Gm-VGS)。与图11B类似,多项式插值(利用测量值的导数)能在合理的LUT前提下提高模型精度。
模型查表法带来很多优势。由于不需两次软件分解(从数学模型到数学函数、再从数学函数到内置函数),它能节省大量的计算时间和能耗。模型查表法甚至比函数查表法需要的LUT还少。由于晶体管模型(如BISM4 V3.0)需要数百个模型参数,如采用函数查表法,则计算晶体管模型的中间函数需要大量的LUT。如果跳过函数查表法(即跳过晶体管模型及相关的中间函数),直接采用模型查表法,则晶体管性能可以用三个测量参数描述(包括栅源电压VGS、漏源电压VDS、体源电压VBS)。这样,描述晶体管的数学模型只需较小的LUT。
[C] 可编程计算阵列。
当应用到可编程计算阵列时,分离的三维处理器是一种三维可编程计算阵列。它不仅能定制逻辑函数和算术函数,还能定制非算术函数。在三维可编程计算阵列中,图2A中的储算单元100ij又被称为可编程单元。
图14A-图14B表示一种三维可编程计算阵列中的可编程单元100ij,它含有3D-M阵列170和逻辑电路180(图14A)。3D-M阵列170存储非算术函数的至少部分LUT,逻辑电路180包括算术逻辑电路(ALC)、可编程逻辑单元(CLE)和/或可编程连接(CIT)。相应地,可编程单元100ij能实现的功能模块(图14B)包括可编程计算单元400(参见图15A-图15B)、可编程逻辑单元200(参见图17B)和可编程连接300(参见图17A)。可编程计算单元400基于LUT实现非算术函数;可编程逻辑单元200从一逻辑运算库中实现选中的逻辑函数;可编程连接300从一连接库中实现选中的连接。
可编程计算单元400的输入端IN包括输入数据410,输出端OUT包括输出数据420,设置端CFG包括设置信号430。当设置信号430为“写”时,在可编程计算单元400中写入一数学函数的LUT。当设置信号430为“读”时,从可编程计算单元400中读出数学函数的值。图15A-图15B表示两种可编程计算单元400的具体实现方式。在图15A中,可编程计算单元400是一3D-M阵列170,它存储非算术函数的函数值。在图15B中,可编程计算单元400是一3D-M阵列170和一ALC 180的组合。类似图11B,3D-M阵列170存储非算术函数的函数值和导数值,ALC 180进行多项式计算。
图16表示一种可编程计算单元400的两个使用周期。由于其3D-M阵列170可重复编程,该可编程计算阵列能实现可重构计算。第一使用周期620分为两个阶段:设置阶段610和计算阶段630。在设置阶段610,根据用户将第一函数的LUT加载到3D-M阵列170中;在计算阶段630,在3D-M阵列170中读取相应的LUT来获得第一函数的函数值。类似地,第二使用周期660也分为设置阶段650和计算阶段670。该实施例别适合SIMD(单指令多数据流)的数据处理。一旦在设置阶段610将LUT加载到3D-M阵列170之后,可以将大量数据送入可编程计算单元400进行处理,并获得较高的处理速度。SIMD的应用例子很多,如图像处理中对多个像素的同样操作或矢量操作,科学计算中使用的大规模平行计算等。
图17A-图17B分别披露了一种连接库和一种逻辑运算库。图17A披露一种可编程连接300能实现的连接库,它包括下述连接方式:a)互连线302/304相连,互连线306/308相连,但302/304与306/308不相连;b)互连线302/304/306/308均相连;c)互连线306/308相连,互连线302、304不相连,也不与306/308相连;d)互连线302/304相连,互连线306、306不相连,也不与302/304相连;e)互连线302、304、306、306均不相连。在本说明书中,两条互连线之间的符号“/”表示该两条互连线相连,两条互连线之间的符号“、”表示该两条互连线不相连。
图17B披露一种可编程逻辑单元200能实现的逻辑运算库。其输入A和B为输入数据210、220,输出C为输出数据230。该可编程逻辑单元200可以实现下述逻辑运算:C=A、A逻辑非、A移位、AND(A,B)、OR(A,B)、NAND(A,B)、NOR(A,B)、XOR(A,B)、算术加A+B、算术减A-B等。可编程逻辑单元200还可以含有寄存器、触发器等时序电路元件,以实现流水线等。可编程连接300和可编程逻辑单元200的细节可参考美国专利4,870,302。
图18表示第一种三维可编程计算阵列100。它含有规则排列的可编程模块100A和可编程模块100B等。每个可编程模块(如100A)含有多个可编程计算单元(CCE,如400AA-400AD)和可编程逻辑单元(CLE,如200AA-200AD)。在可编程计算单元(如400AA-400AD)和可编程逻辑单元(如200AA-200AD)之间含有可编程信道320、340;在可编程模块100A和可编程模块100B之间,也含有可编程信道310、330、350。可编程信道310-350含有多个可编程连接(CIT)300。对于熟悉本领域的专业人士来说,除了可编程信道以外,还可以采用门海(sea-of-gates)等设计。
复杂函数在计算中经常遇到。在本说明书中,复杂函数是指多独立变量非算术函数;基础函数是指单独立变量非算术函数。一般说来,复杂函数是基础函数的一种组合。三维可编程计算阵列100可实现对复杂函数的定制,这对现有技术来说是不可想象的。为了定制复杂函数,复杂函数首先被分解为多个基础函数。每个基础函数通过在相应的可编程计算单元中加载其LUT实现。最后,复杂函数通过对可编程逻辑单元和可编程连接编程来实现定制。
图19表示第一种三维可编程计算阵列100的一种具体实现,它用于定制复杂函数并实现如下复杂函数:e=a.SIN(b)+c.COS(d)。在可编程信道310-350中可编程连接300采用图17A中的表示方式:交叉点有圆点的可编程连接表示交叉线相连,交叉点无圆点的可编程连接表示交叉线不相连,断开的可编程连接表示断开的互连线被分为两个互不相连的互连线段。在该实施例中,可编程计算单元400AA被设置为LOG(),其计算结果LOG(a)被送到可编程逻辑单元200AA的第一输入。可编程计算单元400AB被设置为LOG[SIN()],其计算结果log[sin(b)]被送到可编程逻辑单元200AA的第二输入。可编程逻辑单元200AA被设置为算术加“+”,其计算结果LOG(a)+LOG[SIN(b)]被送到可编程计算单元400BA。可编程计算单元400BA被设置为EXP(),其计算结果EXP{LOG(a)+ LOG[SIN(b)]}=a.SIN(b)被送到可编程逻辑单元200BA的第一输入。类似地,通过适当的设置,可编程计算单元400AC、400AD、可编程逻辑单元200AC、可编程计算单元400BC的结果c.COS(d)被送到可编程逻辑单元200BA的第二输入。可编程逻辑单元200BA被设置为算术加“+”,a.SIN(b)和c.COS(d)在此相加,最终结果送到输出e。很明显,通过改变设置,三维可编程计算阵列100还可以实现其它复杂函数。
相应地,本发明还提出一种用于对至少一复杂函数定制的三维可编程计算阵列(100),其特征在于含有:多个可编程逻辑单元(200)和/或可编程连接(300);以及第一可编程计算单元(400AA)和第二可编程计算单元(400AC),所述第一可编程计算单元(400AA)含有存储第一非算术函数的至少部分第一查找表(LUT)的第一3D-M阵列,所述第二可编程计算单元(100AC)含有存储第二非算术函数的至少部分第二LUT的第二3D-M阵列;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述第一和第二3D-M阵列,所述第二芯片(100b)含有至少部分所述可编程逻辑单元(200)和/或可编程连接(300)以及所述第一或第二3D-M阵列的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合;通过对所述可编程逻辑单元(200)和/或可编程连接(300)以及所述可编程计算单元(400)编程来实现对所述复杂函数的定制;所述复杂函数是所述第一和第二非算术函数的一种组合;所述第一和第二非算术函数包含的运算多于所述可编程逻辑单元(200)支持的算术运算。
图20表示第二种三维可编程计算阵列100。除了可编程计算单元400A、400B、可编程逻辑单元200A以及可编程信道360-380,该可编程计算阵列100还含有一乘法器500。乘法器500的引入使三维可编程计算阵列100能实现更多数学函数,其计算能力更为强大。
图21A-图21B表示该第二种三维可编程计算阵列100的两种具体实现。图21A中的实施例实现一种数学函数h=EXP(f)/g。其中,可编程计算单元400A被设置为实现基本函数EXP(f),可编程计算单元400B被设置为实现基本函数INV(g)。在设置可编程信道370后,可编程计算单元400A、400B的输出被送到乘法器500。在设置可编程信道380后,最后的输出为h=EXP(f)/g。图21B中的实施例实现另一种数学函数h=SIN(f)+COS(g)。其中,可编程计算单元400A被设置为实现基本函数SIN(f),可编程计算单元400B被设置为实现基本函数COS(g)。在设置可编程信道370后,可编程计算单元400A、400B的输出被送到可编程逻辑单元200A,该单元200A实现算术加“+”。在设置可编程信道380后,最后的输出为h=SIN(f)+COS(g)。
[D] 模式处理。
当应用到模式处理时,分离的三维处理器是一种三维模式处理器。它能进行模式处理;更重要的是,大部分模式处理所涉及的模式存储在本地。
图22表示一种分离的三维平行处理器100。它含有一个m x n储算单元100aa-100mn的储算阵列,每个储算单元100aa-100mn均与共同输入110和共同输出120电耦合。输入数据通过共同输入110同时送到储算单元100aa-100mn中,并在储算单元100aa-100mn中同时进行模式处理。由于三维平行处理器100含有成千上万个储算单元100aa-100mn,它可以保证大规模平行计算。三维平行处理器100可应用于模式处理、神经网络处理等领域。
当用作模式处理时,分离的三维平行处理器100为一分离的三维模式处理器。图23表示一种三维模式处理器100中的储算单元100ij,它含有一模式存储电路170和一模式处理电路180PPC(即逻辑电路180为模式处理电路180PPC),它们通过芯片间连接160电耦合(图3A-图3D)。模式存储电路170含有一3D-M阵列170,它存储至少部分模式;模式处理电路180PPC处理该模式。
分离的三维模式处理器100可以采用两种方式——类处理器方式和类存储器方式。类处理器的三维模式处理器100是一种自带检索模式库的三维处理器,它能用其本地存储的检索模式对来自输入110的目标模式进行模式处理。具体说来,检索模式库(如病毒库、关键词库、声学/语言模型库、图像模型库等)存储在3D-M阵列170中;输入数据110包括目标模式(如网络数据包、计算机文件、大数据、语音数据、图像数据等);模式处理电路180PPC根据检索模式对目标模式进行模式处理。由于数量众多的储算单元100ij(成千上万,图22)支持大规模平行处理、且芯片间连接160具有大带宽(图3B-图3D),三维处理器100的检索速度快、效率高。
相应地,本发明提出一种自带检索模式库的三维处理器(100),其特征在于含有:一传输至少部分目标模式的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一模式处理电路(180PPC),所述3D-M阵列(170)存储至少部分检索模式,所述模式处理电路(180PPC)根据所述检索模式对所述目标模式进行模式处理;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述模式处理电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
类存储器的三维模式处理器100是一种自带模式处理功能的三维存储器,其主要功能是存储目标模式库,次要功能是用来自输入110的检索模式对其存储的目标模式进行检索。具体说来,目标模式库(如整个硬盘上的计算机文件、大数据数据库、语音档案库、图像档案库)存储并分布在3D-M阵列170中;输入数据110是检索模式(如病毒标识、关键词、声学/语言模型、图像模型等);模式处理电路180PPC根据检索模式对目标模式进行模式处理。由于数量众多的储算单元100ij(成千上万,图22)支持大规模平行处理、且芯片间连接160具有大带宽(图3B-图3D),三维存储器100的模式处理速度快、效率高。
像闪存一样,多个自带模式处理功能的三维存储器100可以封装成存储卡(如SD卡、TF卡)或固态硬盘(即SSD),用于存储具有海量数据的目标模式库。尤其重要的是,它们还自带模式处理(如检索)功能。由于每个储算单元100ij都自带模式处理电路180PPC,它仅需检索本地(处于同一储算单元100ij)3D-M阵列170中存储的目标模式。因此,不论存储卡或固态硬盘的容量有多大,其检索时间均接近检索单一3D-M阵列170所需的时间。换句话说,数据库的检索时间与数据库的容量无关,大多数情况下为秒级。
与之比较,在传统的冯·诺依曼架构中,处理器(CPU)和存储器(硬盘)相互物理分隔,数据库检索首先需要把数据库从硬盘中读出。由于CPU与硬盘之间系统总线的带宽有限,数据库的检索时间受限于数据库的读出时间。因此,数据库的检索时间与数据库的大小成正比。一般说来,基于数据库的大小,检索时间从数分钟到数小时,甚至更长。相比之下,自带模式处理功能的三维存储器100在数据库检索方面优势明显。
在自带模式处理功能的三维存储器100对大型数据库(即目标模式库)进行模式处理时,模式处理电路180PPC仅需完成部分模式处理功能。比如说,模式处理电路180PPC仅需对数据库完成简单的初步模式处理(如字符串匹配、代码匹配)。经过该初步模式处理筛选后剩下的数据(即目标模式)再通过输出120送到更强大的外置处理器(如CPU、GPU)中完成最终的模式处理。由于数据库中的大部分数据会被简单模式处理筛选掉,从三维存储器100中输出的数据仅占整个数据库的小部分,这能极大降低输出120的带宽压力。
相应地,本发明提出一种自带模式处理功能的三维存储器(100),其特征在于含有:一传输至少部分检索模式的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一模式处理电路(180PPC),所述3D-M阵列(170)存储至少部分目标模式,所述模式处理电路(180PPC)根据所述检索模式对所述目标模式进行模式处理;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述模式处理电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
以下就分离的三维模式处理器100的应用做一介绍,其应用的领域包括:A)信息安全、B)大数据分析、C)语音识别、D)图像识别等。这些应用的例子包括:a)信息安全处理器;b)可查毒的存储器;c)数据分析处理器;d)可检索的存储器;e)语音识别处理器;f)可检索的语音存储器;g)图像识别处理器;h)可检索的图像存储器。
A)信息安全。
信息安全包括网络安全和计算机安全。增强网络安全的主要手段是对网络数据包中的病毒进行查毒;增强计算机安全的主要手段是对计算机文件(包括计算机软件)中的病毒进行查毒。广义地讲,病毒(virus,也被称为malware等)包括网络病毒、计算机病毒、违反网络规范的软件和违反文件规范的文件等。在查毒过程中,处理器将网络数据包/计算机文件与一病毒库中所有病毒标识(virus patterns或virus signatures)逐一进行比较。在发现病毒标识后,对含有病毒标识的部分进行隔离或删除。
目前,病毒库日益增大,其大小已经达到数百MB;而需要查毒的计算机数据更加庞大,它们为GB级、TB级,甚至更大。另一方面,由于传统处理器中内核数量有限(如CPU中内核数目最多有数十个、GPU中内核数目最多有数百个)、每个内核一般一次只能甄别一条病毒,这导致查毒的平行度低。此外,由于采用冯·诺依曼架构,处理器和存储器相互物理分隔,每读取一条新的病毒标识需要较长时间。因此,传统处理器及其架构在处理信息安全事务时速度慢、效率低。
为了增强信息安全,本发明提出多种分离的三维模式处理器100。它可以采用类处理器方式和类存储器方式:当采用类处理器方式时,分离的三维模式处理器100为一信息安全处理器,即增强信息安全的处理器;当采用类存储器方式时,分离的三维模式处理器100为一可查毒的存储器,即兼具查毒功能的存储器。
a)信息安全处理器。
为了保证信息安全,本发明提出一种信息安全处理器100。它在一网络数据包或一计算机文件中检索病毒库中的各种病毒标识;一旦与一病毒标识匹配,则该网络数据包或计算机文件含有相应的病毒。信息安全处理器100可以在网络或计算机中作为独立处理器,也可以集成到网络处理器、计算机的处理器(如CPU)或存储器(如硬盘)中。
在信息安全处理器100中,不同储算单元100ij中的3D-M阵列170存储不同病毒标识。换句话说,病毒库存储并分布在处理器100的各个储算单元100ij中。一旦输入110传来一网络数据包或计算机文件,所述网络数据包或计算机文件中的至少部分数据被发送到所有储算单元100ij中。在各个储算单元100ij中,模式处理电路180PPC在该部分数据中检索存储在当地3D-M阵列170中的各种病毒标识。一旦与一病毒标识匹配,则该网络数据包或计算机文件含有相应的病毒。
上述查毒过程在所有储算单元100ij中同时进行。由于信息安全处理器100含有数量众多(成千上万个)的储算单元100ij,它支持大规模平行查毒。此外,由于芯片间连接160数量众多、模式处理电路180PPC与3D-M阵列170之间距离很近(相对于传统的冯·诺依曼架构),模式处理电路180PPC可以很容易从其中读取新的病毒标识。因此,信息安全处理器100具有很快的查毒速度和很高的查毒效率。在该实施例中,存储病毒库的3D-M阵列170可以是3D-P、3D-OTP或3D-MTP;模式处理电路180PPC是一代码匹配电路。
相应地,本发明提出一种分离的信息安全处理器(100),其特征在于含有:一传输一网络数据包或计算机文件中至少部分数据的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一代码匹配电路(180PPC),所述3D-M阵列(170)存储至少部分病毒标识,所述代码匹配电路(180PPC)在所述数据中检索所述病毒标识;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述代码匹配电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
b)可查毒的存储器。
在新发现的病毒时,需要对整个计算机硬盘(如机械硬盘、固态硬盘)上存储的数据查毒。这种全盘查毒对传统的冯·诺依曼架构来说非常困难。由于计算机硬盘上存储海量的数据,光从硬盘中读出所有计算机数据都要花费大量时间,更不要说对它查毒。在传统的冯·诺依曼架构中,全盘查毒所需的时间与硬盘大小成正比。
为了缩短全盘查毒所需的时间,本发明提出一种可查毒的存储器100。其主要功能是计算机存储,次要功能是在存储本地对所存储的数据进行查毒。像闪存一样,多个可查毒的存储器100可以封装成存储卡或固态硬盘,用于存储海量的数据、并自带查毒功能。
在可查毒的存储器100中,不同储算单元100ij中的3D-M阵列170存储不同的数据。换句话说,海量的计算机文件存储并分布在存储卡或固态硬盘中各个可查毒的存储器100的储算单元100ij中。当一个新病毒被发现后需要进行全盘查毒时,将其病毒标识作为输入110发送到所有储算单元100ij中,然后模式处理电路180PPC在当地3D-M阵列170存储的数据中检索该病毒标识。
上述查毒过程在所有储算单元100ij中同时进行,每个储算单元100ij所需的查毒时间相似。由于采用大规模平行查毒,不论存储卡和固态硬盘的容量有多大,其查毒时间均接近单一储算单元100ij的查毒时间,一般为秒级。与之比较,传统的全盘查毒需要数分钟到数小时,甚至更长。在该实施例中,存储海量计算机文件的3D-M阵列170最好是3D-MTP;模式处理电路180PPC是一代码匹配电路。
相应地,本发明提出一种分离的可查毒存储器(100),其特征在于含有:一传输至少部分病毒标识的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一代码匹配电路(180PPC),所述3D-M阵列(170)存储一计算机文件中的至少部分数据,所述代码匹配电路(180PPC)在所述数据中检索所述病毒标识;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述代码匹配电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
B)大数据分析。
大数据是巨量数据的集合,它主要涉及非结构化数据或半结构化数据。大数据分析的一个重要组成部分是关键词检索(包括字符串匹配,如正则表达式匹配)。目前,关键词库日益增大,大数据数据库更加庞大。对于如此大的关键词库和大数据数据库,传统处理器及其架构很难对非结构化数据或半结构化数据进行高速高效检索。
为了提高大数据分析的效率,本发明提出多种分离的三维模式处理器100。它可采用类处理器方式和类存储器方式:当采用类处理器方式时,分离的三维模式处理器100为一数据分析处理器,即用于大数据分析的处理器;当采用类存储器方式时,分离的三维模式处理器100为一可检索的存储器,即兼具检索功能的存储器。
c)数据分析处理器。
为了实现对输入数据的高速高效检索,本发明提出一种数据分析处理器100,它在一输入数据中检索一关键词库中的关键词。在数据分析处理器100中,不同储算单元100ij中的3D-M阵列170存储不同关键词。换句话说,关键词库存储并分布在处理器100的各个储算单元100ij中。来自输入110的数据被发送到所有储算单元100ij中。在各个储算单元100ij中,模式处理电路180PPC在输入数据中检索存储在当地3D-M阵列170中的各个关键词。
上述检索过程在所有储算单元100ij中同时进行。由于它含有数量众多(成千上万个)的储算单元100ij,处理器100支持大规模平行检索。此外,由于芯片间连接160数量众多、且模式处理电路180PPC与3D-M阵列170之间距离很近(相对于传统的冯·诺依曼架构),模式处理电路180PPC可以很容易从本地的3D-M阵列170中读取关键词。因此,处理器100对非结构化数据和半结构化数据具有很快的检索速度和很高的检索效率。
在该实施例中,存储关键词库的3D-M阵列170可以是3D-P、3D-OTP或3D-MTP;模式处理电路180PPC为一字符串匹配电路。字符串匹配电路可以通过内容寻址存储器(contentaddressable memory,简称为CAM)或一含有异或门(XOR)的比较器来实现。此外,关键词可由正则表达式表示。这时,字符串匹配电路180PPC通过有限状态自动机(finite-stateautomata,简称为FSA)来实现。
相应地,本发明提出一种分离的数据分析处理器(100),其特征在于含有:一传输至少部分数据的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一字符串匹配电路(180PPC),所述3D-M阵列(170)存储至少部分关键词,所述字符串匹配电路(180PPC)在所述部分数据中检索所述关键词;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述字符串匹配电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
d)可检索的存储器。
大数据分析经常需要对整个数据库进行检索,即全库检索。由于大数据数据库非常庞大,少则GB级,多则TB即、甚至更高,传统的冯·诺依曼架构对全库检索非常困难:光读出数据库都要花费大量时间,更不要说对它检索。在传统的冯·诺依曼架构中,全库检索时间与数据库大小成正比。
为了提高全库检索的速度和效率,本发明提出一种可检索的存储器100。该可检索的存储器100的主要功能是数据库存储,次要功能是在本地对数据库进行检索。像闪存一样,多个可检索的存储器100可以封装成存储卡或固态硬盘,用于存储大数据数据库、并自带检索功能功能。
在可检索的存储器100中,不同储算单元100ij中的3D-M阵列170存储数据库中的不同数据。换句话说,数据库存储并分布在存储卡或固态硬盘中各个可检索的存储器100的储算单元100ij中。在检索时,将关键词传输至输入110、并发送到所有储算单元100ij中。在各个储算单元100ij中,模式处理电路180PPC在当地3D-M阵列170的数据中检索该关键词。
上述检索过程在所有储算单元100ij中同时进行;每个储算单元100ij所需的检索时间相似。由于采用大规模平行检索,不论存储卡和固态硬盘的容量有多大,其检索时间均接近对单一储算单元100ij所需的检索时间,一般为秒级。与之比较,传统的全库检索需要数分钟到数小时,甚至更长。在可检索的存储器100中,存储大数据数据库的3D-M最好是3D-MTP;模式处理电路180PPC为一字符串匹配电路。
因为3D-MV在所有半导体存储器中具有最高存储密度,它适合用作存储大数据数据库。在所有3D-MV中,3D-OTPV具有最长的数据寿命,因此它适合存储大型档案库。档案存储需要快速检索能力。一个可检索的3D-OTPV能提供一种大容量、低成本、且具有快速检索能力的档案存储。
相应地,本发明提出一种分离的可检索存储器(100),其特征在于含有:一传输至少部分关键词的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一字符串匹配电路(180PPC),所述3D-M阵列(170)存储至少部分数据,所述字符串匹配电路(180PPC)在所述部分数据中检索所述关键词;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述字符串匹配电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
C)语音识别或检索。
模式处理的一个典型应用是语音识别。语音识别的一种手段是根据声学模型库和语言模型库对用户语音进行模式识别。其中,声学模型库存储大量的声学模型;语言模型库存储大量的语言模型。在识别时,模式处理电路180PPC根据声学/语言模型库对用户语音数据进行模式识别,寻找最接近的声学/语言模型。由于传统处理器(如CPU、GPU)内核数量有限、模式识别平行度较低,且声学/语言模型库存储在外存中,故传统处理器及其架构在处理语音识别时速度慢、效率低。
e)语音识别处理器。
为了提高语音识别的效率,本发明提出一种语音识别处理器100。在该语音识别处理器100中,用户产生的语音数据作为输入110送至每个储算单元100ij,3D-M阵列170存储声学/语言模型库中的至少部分模型,模式处理电路180PPC根据存储在3D-M阵列170中的模型数据对来自输入110的语音数据进行语音识别。在该实施例中,存储模型库的3D-M阵列170可以是3D-P、3D-OTP或3D-MTP;模式处理电路180PPC为一语音识别电路。
相应地,本发明提出一种分离的语音识别处理器(100),其特征在于含有:一传输至少部分语音数据的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一语音识别电路(180PPC),所述3D-M阵列(170)存储至少部分声学/语言模型,所述语音识别电路(180PPC)根据所述声学/语言模型对所述语音数据进行语音识别;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述语音识别电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
f)可检索的语音存储器。
为了在语音数据库(如语音档案库)中实现语音检索,本发明还提出一种可检索的语音存储器100。在可检索语音存储器100中,将需要查找的语音数据转化成声学/语言模型作为输入110送至每个储算单元100ij。用户产生的语音数据存储在3D-M阵列170中。换句话说,语音数据库存储并分布在可检索的语音存储器100的各个储算单元100ij中。模式处理电路180PPC根据声学/语言模型对语音数据进行语音识别及检索。在该实施例中,存储语音数据库的3D-M阵列170最好是3D-MTP;模式处理电路180PPC为一语音识别电路。
相应地,本发明提出一种分离的可检索语音存储器(100),其特征在于含有:一传输至少部分声学/语言模型的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一语音识别电路(180PPC),所述3D-M阵列(170)存储至少部分语音数据,所述语音识别电路(180PPC)根据所述声学/语言模型对所述语音数据进行语音识别;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述语音识别电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
D)图像识别。
模式处理的另一个典型应用是图像识别。图像识别的一种手段是根据图像模型库对用户图像进行模式识别。其中,图像模型库存储大量的图像模型。在识别时,模式处理器根据图像模型库中的图像模型对用户图像数据进行模式识别,寻找最接近的图像模型。由于传统处理器(如CPU、GPU)内核数量有限、模式识别平行度较低,且图像模型库存储在外存中,故传统处理器在处理图像识别时速度慢、效率低。
g)图像识别处理器。
为了提高图像识别的效率,本发明提出一种图像识别处理器100。在图像识别处理器100中,用户产生的图像数据作为输入110送至每个储算单元100ij,3D-M阵列170存储至少部分图像模型,模式处理电路180PPC根据存储在3D-M阵列170中的图像模型对来自输入110的图像数据进行图像识别。在该实施例中,存储模型库的3D-M阵列170可以是3D-P、3D-OTP或3D-MTP;模式处理电路180PPC为一图像识别电路。
相应地,本发明提出一种分离的图像识别处理器(100),其特征在于含有:一传输至少部分图像数据的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一图像识别电路(180PPC),所述3D-M阵列(170)存储至少部分图像模型,所述图像识别电路(180PPC)根据所述图像模型对所述图像数据进行图像识别;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述图像识别电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
h)可检索的图像存储器。
为了在图像数据库(如图像档案库)中实现图像检索,本发明还提出一种可检索的图像存储器100。在可检索图像存储器100中,将需要查找的图像数据转化成图像模型作为输入110送至每个储算单元100ij。用户产生的图像数据存储在3D-M阵列170中。换句话说,图像数据库存储并分布在可检索的图像存储器100的各个储算单元100ij中。模式处理电路180PPC根据图像模型对图像数据进行图像识别及检索。在该实施例中,存储图像数据库的3D-M阵列170最好是3D-MTP;模式处理电路180PPC为一图像识别电路。
本发明还提出一种分离的可检索图像存储器(100),其特征在于含有:一传输至少部分图像模型的输入(110);多个与所述输入(110)电耦合的储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储(3D-M)阵列(170)和一图像识别电路(180PPC),所述3D-M阵列(170)存储至少部分图像数据,所述图像识别电路(180PPC)根据所述图像模型对所述图像数据进行图像识别;第一芯片(100a)和第二芯片(100b),所述第一芯片(100a)含有所述3D-M阵列(170),所述第二芯片(100b)含有至少部分所述图像识别电路(180PPC)以及所述3D-M阵列(170)的一片外周边电路组件(190);所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合。
[E] 神经网络。
当应用到神经网络时,分离的三维处理器是一种三维神经网络处理器。它能进行神经计算;更重要的是,神经计算时所使用的突触权重存储在本地。
当用作模式处理时,分离的三维平行处理器100为一分离的三维神经网处理器。图24表示一种三维神经网处理器100中的储算单元100ij,它含有一神经存储电路170和一神经计算电路180NPC(逻辑电路180为神经计算电路180NPC),它们通过芯片间连接160电耦合(图3A-图3D)。神经存储电路170含有一3D-M阵列,它存储至少部分突触权重;神经计算电路180NPC利用突触权重进行神经计算。
图25-图26B披露了一种神经计算电路180NPC及其计算电路730的细节。在图25的实施例中,神经计算电路180NPC含有一突触权重(Ws)RAM 740A、一输入神经元(Nin)RAM740B和一计算电路730。Ws RAM 740A是一个缓存,它临时存储来自3D-M阵列170的突触权重742;Nin RAM 740B也是一个缓存,它临时存储来自输入110的输入数据746。计算电路730进行神经计算,并产生输出数据748。
在图26A的实施例中,计算电路730含有一乘法器732、一加法器734、一寄存器736和一激活函数电路738。乘法器732将突触权重wij与输入数据xi相乘,加法器734和寄存器736对乘积(wij×xi)进行累加,累加值被送到激活函数电路738,所得结果为输出数据yj
在图26B的实施例中,图26A中的乘法器732被一乘加器(MAC)732`替代。当然,乘加器732`也含有乘法器。Ws RAM 740A不仅输出突触权重wij(通过端口742w),还输出偏置bj(通过端口742b)。乘加器732`对输入数据xi、突触权重wij和偏置bj实施偏置乘操作(wij×xi+bj)。
激活函数是指输出被控制在一定范围内(如0到1、或-1到+1)的函数,包括sigmod函数、signum函数、阈值函数、分段线性函数、阶跃函数、tanh函数等。激活函数的电路实现较难。将本发明“数学计算”的精神继续推广,计算电路730还可以含有非易失存储器(NVM),用于长期存储激活函数的LUT。NVM一般为只读存储器(ROM),尤其是三维只读存储器(3D-ROM)。3D-ROM阵列可堆叠在神经计算电路(180NPC)上方且与之重合。这时,计算电路730变得极其简单——它仅需实现加法和乘法,但不需要实现激活函数。利用3D-ROM 阵列实现激活函数的计算电路730面积较小,能保证计算密度。
应该了解,在不远离本发明的精神和范围的前提下,可以对本发明的形式和细节进行改动,这并不妨碍它们应用本发明的精神。例如说,本发明中的处理器可以是中央处理器(CPU)、控制器或微控制器(controller或micro-controller)、数字信号处理器(DSP)、图像处理器(GPU)、网络安全处理器、加密/解密处理器、编码/解码处理器、神经网络处理器、人工智能(AI)处理器等。因此,除了根据附加的权利要求书的精神,本发明不应受到任何限制。

Claims (10)

1.一种分离的三维处理器(100),其特征在于含有:
多个储算单元(100aa-100mn),每个储算单元(100ij)含有至少一三维存储3D-M阵列(170)和一逻辑电路(180);所述逻辑电路(180)处理所述三维存储3D-M阵列(170)存储的数据,但不是所述三维存储3D-M阵列(170)的周边电路;
含有第一半导体衬底(0a)的第一芯片(100a),所述第一芯片(100a)含有所述三维存储3D-M阵列(170)及其至少部分周边电路,所述三维存储3D-M阵列(170)含有多个堆叠在所述第一半导体衬底(0a)上的存储元;
含有第二半导体衬底(0b)的第二芯片(100b),所述第二芯片(100b)含有至少部分所述逻辑电路(180)和所述三维存储3D-M阵列(170)的一片外周边电路组件(190),所述第二芯片(100b)含有多个位于所述第二半导体衬底(0b)中的晶体管;
所述第一芯片(100a)不含有所述片外周边电路组件(190);所述第二芯片(100b)不含有所述三维存储3D-M阵列(170);所述第一芯片(100a)与所述第二芯片(100b)是两个不同芯片且通过多个芯片间连接(160)电耦合;
所述三维存储3D-M阵列(170)为下述1a)-1f)3D-M阵列中的至少一种:
1a)三维随机访问存储器3D-RAM阵列;或
1b)三维只读存储器3D-ROM阵列;或
1c)三维可写存储器3D-W阵列;或
1d)三维印录存储器3D-P阵列;或
1e)三维横向存储3D-MH阵列;或
1f)三维纵向存储3D-MV阵列。
2.根据权利要求1所述的三维处理器(100),其特征还在于具有如下2a)-2k)特征中的至少一种特征:
2a)所述3D-ROM阵列为一非易失存储器NVM阵列;或
2b)所述3D-W阵列为一三维一次编程存储器3D-OTP阵列;或
2c)所述3D-W阵列为一三维多次编程存储器3D-MTP阵列;或
2d)所述3D-W阵列为一3D-XPoint阵列;或
2e)所述3D-W阵列为一3D-NAND阵列;或
2f)所述3D-W阵列为一memristor阵列;或
2g)所述3D-W阵列为一阻变存储器RRAM阵列;或
2h)所述3D-W阵列为一相变存储器PCM阵列;或
2i)所述3D-W阵列为一programmable metallization cell 或PMC阵列;或
2j)所述3D-W阵列为一conductive bridging random-access memory 或CBRAM阵列;或
2k)所述3D-P阵列为一三维掩膜编程只读存储器3D-MPROM阵列。
3.根据权利要求1或2所述的三维处理器(100),其特征还在于具有如下3a)-3d)特征中的至少一种特征:
3a)所述第一芯片(100a)中后端连线层的数目大于所述第二芯片(100b)中后端连线层的数目;或
3b)所述第一芯片(100a)中地址线层的数目至少为所述第二芯片(100b)中互连线层数目的两倍;或
3c)所述第一芯片(100a)的存储串中存储元的数目至少为所述第二芯片(100b)中互连线层数目的两倍;或
3d)所述第一芯片(100a)中衬底电路(0Ka)的互连线层数目小于所述第二芯片(100b)中互连线层的数目。
4.根据权利要求3所述的三维处理器(100),其特征还在于具有如下4a)-4f)特征中的至少一种特征:
4a)所述片外周边电路组件(190)为一地址解码器;或
4b)所述片外周边电路组件(190)为一读放大电路;或
4c)所述片外周边电路组件(190)为一写电器;或
4d)所述片外周边电路组件(190)为一读电压产生电路;或
4e)所述片外周边电路组件(190)为一写电压产生电路;或
4f)所述片外周边电路组件(190)为一数据缓冲区。
5.根据权利要求3所述的三维处理器(100),其特征还在于具有如下5a)-5f)特征中的至少一种特征:
5a)所述第一芯片(100a)与所述第二芯片(100b)相互堆叠;或
5b)所述第一芯片(100a)与所述第二芯片(100b)面对面键合;或
5c)所述第一芯片(100a)与所述第二芯片(100b)面积相同或接近;或
5d)所述第一芯片(100a)与所述第二芯片(100b)至少一边缘对齐;或
5e)所述三维存储3D-M阵列(170)在所述第二芯片(100b)上的投影与所述逻辑电路(180)至少部分重合;或
5f)所述芯片间连接(160)包括键合线、微焊点、穿透衬底通道孔(TSV)、和/或竖直接触连接(VIA)。
6.根据权利要求3所述的三维处理器(100),其特征还在于具有如下6a)-6n)特征中的一种特征:
6a)所述三维存储3D-M阵列(170)存储一非算术函数或一非算术模型的至少部分查找表LUT,所述逻辑电路(180)为一算术逻辑电路ALC (180ALC)、并对所述查找表LUT中的至少部分数据进行算术运算; 所述三维处理器(100)用于实现所述非算术函数或所述非算术模型,所述非算术函数或所述非算术模型包含的运算多于所述算术逻辑电路ALC (180ALC)支持的算术运算;或
6b)所述三维存储3D-M阵列(170)为一可编程计算单元CCE (400)的一部分、并存储一非算术函数的至少部分查找表LUT,所述逻辑电路(180)含有多个可编程逻辑单元CLE(200)和/或可编程连接CIT (300);所述三维处理器(100)通过对所述可编程逻辑单元CLE(200)和/或可编程连接CIT (300)、以及所述可编程计算单元CCE (400)编程来实现对所述非算术函数的定制,所述非算术函数包含的运算多于所述可编程逻辑单元CLE (200)支持的算术运算;或
6c)所述三维处理器(100)的输入传输至少部分第一模式,所述三维存储3D-M阵列(170)存储至少部分第二模式,所述逻辑电路(180)为一模式处理电路(180PPC)、并对所述第一和第二模式进行模式处理;或
6d)所述三维处理器(100)的输入传输至少部分目标模式,所述三维存储3D-M阵列(170)存储至少部分检索模式,所述逻辑电路(180)为一模式处理电路(180PPC)、并对所述目标模式和所述检索模式进行模式处理;或
6e)所述三维处理器(100)的输入传输一网络数据包或一计算机文件数据,所述三维存储3D-M阵列(170)存储至少部分病毒标识,所述逻辑电路(180)为一模式处理电路(180PPC)、并在所述网络数据包或文件数据中检索所述病毒标识;或
6f)所述三维处理器(100)的输入传输至少部分数据,所述三维存储3D-M阵列(170)存储至少部分关键词,所述逻辑电路(180)为一模式处理电路(180PPC)、并在所述数据中检索所述关键词;或
6g)所述三维处理器(100)的输入传输至少部分语音数据,所述三维存储3D-M阵列(170)存储至少部分声学/语言模型,所述逻辑电路(180)为一模式处理电路(180PPC)、并根据所述声学/语言模型对所述语音数据进行语音识别;或
6h)所述三维处理器(100)的输入传输至少部分图像数据,所述三维存储3D-M阵列(170)存储至少部分图像模型,所述逻辑电路(180)为一模式处理电路(180PPC)、并根据所述图像模型对所述图像数据进行图像识别;或
6i)所述三维处理器(100)的输入传输至少部分检索模式,所述三维存储3D-M阵列(170)存储至少部分目标模式,所述逻辑电路(180)为一模式处理电路(180PPC)、并对所述目标模式和所述检索模式进行模式处理;或
6j)所述三维处理器(100)的输入传输至少部分病毒标识,所述三维存储3D-M阵列(170)存储至少部分计算机文件数据,所述逻辑电路(180)为一模式处理电路(180PPC)、并在所述文件数据中检索所述病毒标识;或
6k)所述三维处理器(100)的输入传输至少部分关键词,所述三维存储3D-M阵列(170)存储至少部分数据,所述逻辑电路(180)为一模式处理电路(180PPC)、并在所述数据中检索所述关键词;或
6l)所述三维处理器(100)的输入传输至少部分声学/语言模型,所述三维存储3D-M阵列(170)存储至少部分语音数据,所述逻辑电路(180)为一模式处理电路(180PPC)、并根据所述声学/语言模型对所述语音数据进行语音识别;或
6m)所述三维处理器(100)的输入传输至少部分图像模型,所述三维存储3D-M阵列(170)存储至少部分图像数据,所述逻辑电路(180)为一模式处理电路(180PPC)、并根据所述图像模型对所述图像数据进行图像识别;或
6n)所述三维存储3D-M阵列(170)存储至少部分突触权重,所述逻辑电路(180)为一神经计算电路(180NPC)、并基于所述突触权重进行神经计算。
7.根据权利要求5所述的三维处理器(100),其特征还在于具有如下7a)-7f)特征中的至少一种特征:
7a)所述片外周边电路组件(190)为一地址解码器;或
7b)所述片外周边电路组件(190)为一读放大电路;或
7c)所述片外周边电路组件(190)为一写电器;或
7d)所述片外周边电路组件(190)为一读电压产生电路;或
7e)所述片外周边电路组件(190)为一写电压产生电路;或
7f)所述片外周边电路组件(190)为一数据缓冲区。
8.根据权利要求6所述的三维处理器(100),其特征还在于具有如下8a)-8f)特征中的至少一种特征:
8a)所述片外周边电路组件(190)为一地址解码器;或
8b)所述片外周边电路组件(190)为一读放大电路;或
8c)所述片外周边电路组件(190)为一写电器;或
8d)所述片外周边电路组件(190)为一读电压产生电路;或
8e)所述片外周边电路组件(190)为一写电压产生电路;或
8f)所述片外周边电路组件(190)为一数据缓冲区。
9.根据权利要求6所述的三维处理器(100),其特征还在于具有如下9a)-9f)特征中的至少一种特征:
9a)所述第一芯片(100a)与所述第二芯片(100b)相互堆叠;或
9b)所述第一芯片(100a)与所述第二芯片(100b)面对面键合;或
9c)所述第一芯片(100a)与所述第二芯片(100b)面积相同或接近;或
9d)所述第一芯片(100a)与所述第二芯片(100b)至少一边缘对齐;或
9e)所述三维存储3D-M阵列(170)在所述第二芯片(100b)上的投影与所述逻辑电路(180)至少部分重合;或
9f)所述芯片间连接(160)包括键合线、微焊点、穿透衬底通道孔(TSV)、和/或竖直接触连接(VIA)。
10.根据权利要求9所述的三维处理器(100),其特征还在于具有如下10a)-10f)特征中的至少一种特征:
10a)所述片外周边电路组件(190)为一地址解码器;或
10b)所述片外周边电路组件(190)为一读放大电路;或
10c)所述片外周边电路组件(190)为一写电器;或
10d)所述片外周边电路组件(190)为一读电压产生电路;或
10e)所述片外周边电路组件(190)为一写电压产生电路;或
10f)所述片外周边电路组件(190)为一数据缓冲区。
CN202211669495.8A 2018-12-10 2019-01-16 分离的三维处理器 Pending CN115794730A (zh)

Applications Claiming Priority (19)

Application Number Priority Date Filing Date Title
CN2018115062121 2018-12-10
CN201811506212 2018-12-10
CN2018115081300 2018-12-11
CN201811508130 2018-12-11
CN2018115203577 2018-12-12
CN201811520357 2018-12-12
CN201811527911 2018-12-13
CN2018115279114 2018-12-13
CN2018115278855 2018-12-13
CN201811527885 2018-12-13
CN201811528014 2018-12-14
CN2018115280145 2018-12-14
CN201811546592 2018-12-15
CN201811546476 2018-12-15
CN201811546476X 2018-12-15
CN2018115465921 2018-12-15
CN2019100029445 2019-01-02
CN201910002944 2019-01-02
CN201910038528.0A CN111290994B (zh) 2018-12-10 2019-01-16 分离的三维处理器

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910038528.0A Division CN111290994B (zh) 2018-12-10 2019-01-16 分离的三维处理器

Publications (1)

Publication Number Publication Date
CN115794730A true CN115794730A (zh) 2023-03-14

Family

ID=71028269

Family Applications (7)

Application Number Title Priority Date Filing Date
CN202110000107.6A Pending CN112597098A (zh) 2018-12-10 2019-01-16 分离的三维处理器
CN202211669495.8A Pending CN115794730A (zh) 2018-12-10 2019-01-16 分离的三维处理器
CN202111484969.7A Pending CN113918506A (zh) 2018-12-10 2019-01-16 分离的三维处理器
CN202310147916.9A Pending CN116049093A (zh) 2018-12-10 2019-01-16 分离的三维处理器
CN201910038528.0A Active CN111290994B (zh) 2018-12-10 2019-01-16 分离的三维处理器
CN202211668368.6A Pending CN116303224A (zh) 2018-12-10 2019-01-16 分离的三维处理器
CN202310223434.7A Pending CN116150085A (zh) 2018-12-10 2019-01-16 分离的三维处理器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110000107.6A Pending CN112597098A (zh) 2018-12-10 2019-01-16 分离的三维处理器

Family Applications After (5)

Application Number Title Priority Date Filing Date
CN202111484969.7A Pending CN113918506A (zh) 2018-12-10 2019-01-16 分离的三维处理器
CN202310147916.9A Pending CN116049093A (zh) 2018-12-10 2019-01-16 分离的三维处理器
CN201910038528.0A Active CN111290994B (zh) 2018-12-10 2019-01-16 分离的三维处理器
CN202211668368.6A Pending CN116303224A (zh) 2018-12-10 2019-01-16 分离的三维处理器
CN202310223434.7A Pending CN116150085A (zh) 2018-12-10 2019-01-16 分离的三维处理器

Country Status (2)

Country Link
CN (7) CN112597098A (zh)
WO (1) WO2020119511A1 (zh)

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
EP1007933A2 (en) * 1996-10-23 2000-06-14 Ford Global Technologies, Inc. Automotive engine misfire detection system including a bit-serial based recurrent neuroprocessor
US6765813B2 (en) * 2000-08-14 2004-07-20 Matrix Semiconductor, Inc. Integrated systems using vertically-stacked three-dimensional memory cells
US6873181B1 (en) * 2003-08-13 2005-03-29 Altera Corporation Automated implementation of non-arithmetic operators in an arithmetic logic cell
CN101136250A (zh) * 2006-09-02 2008-03-05 张国飙 优于同期微硬盘的三维存储模块
CN100495383C (zh) * 2007-10-10 2009-06-03 山东大学 三维多处理器系统芯片
US8281395B2 (en) * 2009-01-07 2012-10-02 Micron Technology, Inc. Pattern-recognition processor with matching-data reporting module
JP5417674B2 (ja) * 2009-07-21 2014-02-19 維男 中村 計算機システム及び主記憶装置
US8247895B2 (en) * 2010-01-08 2012-08-21 International Business Machines Corporation 4D device process and structure
CN102289614B (zh) * 2010-06-18 2015-07-29 三星Sds株式会社 反恶意软件系统及其操作方法
CN102637457B (zh) * 2011-02-14 2015-06-17 张国飙 保密型三维掩膜编程只读存储器
US10763861B2 (en) * 2016-02-13 2020-09-01 HangZhou HaiCun Information Technology Co., Ltd. Processor comprising three-dimensional memory (3D-M) array
CN107305594B (zh) * 2016-04-22 2021-01-08 杭州海存信息技术有限公司 含有三维存储阵列的处理器
CN107154798B (zh) * 2016-03-05 2023-10-17 杭州海存信息技术有限公司 基于三维可写存储器的可编程门阵列
CN112631367A (zh) * 2016-02-13 2021-04-09 杭州海存信息技术有限公司 基于三维存储器的处理器
US20170322771A1 (en) * 2016-05-06 2017-11-09 Chengdu Haicun Ip Technology Llc Configurable Processor with In-Package Look-Up Table
US20180048317A1 (en) * 2016-03-05 2018-02-15 Chengdu Haicun Ip Technology Llc Configurable Computing-Array Package
US10075168B2 (en) * 2016-03-05 2018-09-11 XiaMen HaiCun IP Technology LLC Configurable computing array comprising three-dimensional writable memory
CN111384052B (zh) * 2016-03-07 2022-09-27 杭州海存信息技术有限公司 含有三维存储阵列的分布式模式处理器
WO2017162129A1 (zh) * 2016-03-21 2017-09-28 成都海存艾匹科技有限公司 含有三维存储阵列的集成神经处理器
CN107346149B (zh) * 2016-05-04 2020-10-27 杭州海存信息技术有限公司 基于背面查找表的处理器

Also Published As

Publication number Publication date
CN116150085A (zh) 2023-05-23
CN113918506A (zh) 2022-01-11
CN111290994B (zh) 2023-01-10
WO2020119511A1 (zh) 2020-06-18
CN112597098A (zh) 2021-04-02
CN116049093A (zh) 2023-05-02
CN116303224A (zh) 2023-06-23
CN111290994A (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
CN107316014B (zh) 兼具图像识别功能的存储器
US11776944B2 (en) Discrete three-dimensional processor
Bavandpour et al. 3D-aCortex: An ultra-compact energy-efficient neurocomputing platform based on commercial 3D-NAND flash memories
Dutta et al. Hdnn-pim: Efficient in memory design of hyperdimensional computing with feature extraction
GB2568081A (en) End-to-end data format selection for hardware implementation of deep neural network
US11527523B2 (en) Discrete three-dimensional processor
US20230411374A1 (en) Discrete Three-Dimensional Processor
Ku et al. Design and architectural co-optimization of monolithic 3d liquid state machine-based neuromorphic processor
US11128303B2 (en) Three-dimensional memory (3D-M)-based configurable processor singlet
CN111290994B (zh) 分离的三维处理器
Pham et al. Dataflow and microarchitecture co‐optimisation for sparse CNN on distributed processing element accelerator
Arora Optimizing FPGA architecture for deep learning workloads
CN111435423A (zh) 双面模式处理器
TW202131316A (zh) 人工智慧加速器以及其處理方法
CN111326191A (zh) 含有三维纵向存储阵列的处理器
Wall Embedded Pattern Recognition with Field Programmable Gate Arrays

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination