CN112652333A - 采用存储器中处理的半导体存储器装置及其操作方法 - Google Patents

采用存储器中处理的半导体存储器装置及其操作方法 Download PDF

Info

Publication number
CN112652333A
CN112652333A CN202010400764.5A CN202010400764A CN112652333A CN 112652333 A CN112652333 A CN 112652333A CN 202010400764 A CN202010400764 A CN 202010400764A CN 112652333 A CN112652333 A CN 112652333A
Authority
CN
China
Prior art keywords
memory
bank
pim
banks
memory device
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
CN202010400764.5A
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.)
Samsung Electronics Co Ltd
Seoul National University Industry Foundation
SNU R&DB Foundation
Original Assignee
Samsung Electronics Co Ltd
Seoul National University Industry Foundation
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 Samsung Electronics Co Ltd, Seoul National University Industry Foundation filed Critical Samsung Electronics Co Ltd
Publication of CN112652333A publication Critical patent/CN112652333A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/147Voltage reference generators, voltage or current regulators; Internally lowered supply levels; Compensation for voltage drops
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)

Abstract

公开采用存储器中处理的半导体存储器装置及其操作方法。所述半导体存储器装置包括:多个存储体,所述多个存储体包括包含计算电路的第一存储体组和不具有计算电路的第二存储体组;以及控制电路,被配置为在满足所述半导体存储器装置的最大功耗条件的情况下控制由第一存储体组进行的PIM运算与对所述多个存储体的存储器请求的处理一起执行。

Description

采用存储器中处理的半导体存储器装置及其操作方法
本申请要求于2019年10月10日在韩国知识产权局提交的第10-2019-012568号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
以下描述涉及采用存储器中处理(PIM)的半导体存储器装置以及半导体存储器装置的操作方法。
背景技术
根据现有技术的半导体存储器装置具有与执行算术运算的处理器完全分离的功能。因此,在实现诸如神经网络、大数据和物联网(IoT)的应用(其中需要处理大量数据)的系统中,大量数据在半导体存储器装置与处理器之间发送或接收,因此会频繁出现瓶颈。为了解决这样的问题,正在进行对作为半导体存储器装置的将用于执行算术运算的处理器的功能与存储器功能相结合的存储器中处理(PIM)的研究。
发明内容
提供本发明内容以便以简化的形式介绍将在下面的具体实施方式中进一步描述的构思的选择。本发明内容不意图确定所要求保护的主题的关键特征或必要特征,也不意图用于帮助确定要求保护的主题的范围。
在一个总体方面,一种采用存储器中处理(PIM)的半导体存储器装置包括:多个存储体,包括包含计算电路的第一存储体组和不具有计算电路的第二存储体组;以及控制电路,被配置为:在满足所述半导体存储器装置的最大功耗条件的情况下,控制由第一存储体组进行的PIM运算与对所述多个存储体的存储器请求的处理一起执行。
控制电路可通过调整和/或暂停由第一存储体组进行的PIM运算,控制存储器请求的处理消耗的功率与PIM运算消耗的功率之和满足最大功耗条件。
控制电路可包括:请求计数器,根据预定时段对所述多个存储体中的每个存储体的存储器请求进行计数,并且控制电路可基于由请求计数器计数的数量,对存储器请求的处理和PIM运算执行调度。
当由请求计数器计数的数量之中的与第二存储体组对应的数量等于或大于预设阈值时,控制电路可减慢由第一存储体组进行的PIM运算,以处理对第二存储体组的存储器请求。
当第一存储体组包括第一存储体和第二存储体,并且由请求计数器计数的数量之中的与第一存储体对应的数量等于或大于预设阈值时,控制电路可暂停由第一存储体进行的PIM运算并减慢由第二存储体进行的PIM运算,以处理对第一存储体的存储器请求。
控制电路可根据预设定时将用于指示调整或暂停由第一存储体组进行的PIM运算的命令广播到第一存储体组。
所述多个存储体之中的包括在第一存储体组中的存储体的数量可被配置,使得当包括在第一存储体组中的所有存储体执行用于PIM运算的读取操作时,由所述半导体存储器装置消耗的功率满足最大功耗条件。
所述多个存储体中的每个存储体可包括一个或多个动态随机存取存储器(DRAM)阵列,并且存储器请求可以是包括读取、写入、复制和擦除中的至少一个的DRAM请求。
包括在第一存储体组中的计算电路可使用从对应的存储体读取的数据来执行运算,并且将所述运算的结果重写到对应的存储体或者将所述结果输出到外部。
计算电路可包括执行算术运算、逻辑运算和移位运算中的至少一个的硬件。
在另一总体方面,一种操作采用存储器中处理(PIM)的半导体存储器装置的方法包括:处理对多个存储体的存储器请求,所述多个存储体包括包含计算电路的第一存储体组和不具有计算电路的第二存储体组;以及在满足所述半导体存储器装置的最大功耗条件的情况下,控制由第一存储体组进行的PIM运算与所述存储器请求的处理一起执行。
在另一总体方面,一种其上记录有包括指令的一个或多个程序的非暂时性计算机可读记录介质执行以上描述的方法。
在另一总体方面,一种半导体存储器装置包括:第一存储体,包括被配置为执行存储器中处理(PIM)运算的计算电路;第二存储体,与PIM运算同时处理一个或多个存储器请求;以及控制电路,控制PIM运算,使得处理所述一个或多个存储器请求消耗的功率与PIM运算消耗的功率之和不超过最大阈值。
第一存储体可包括在具有两个或更多个存储体的第一存储体组中,并且第一存储体组中的每个存储体可包括计算电路。第二存储体可包括在具有两个或更多个存储体的第二存储体组中,并且第二存储体组中的所有存储体均可不包括计算电路。
第一存储体可包括在具有两个或更多个存储体的第一存储体组中,并且第一存储体组的所述两个或更多个存储体可包括不包含计算电路的第三存储体。第二存储体可不包括计算电路,第二存储体可包括在具有两个或更多个存储体的第二存储体组中,并且第二存储体组的所述两个或更多个存储体可包括包含计算电路的第四存储体。
根据以下具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
图1是根据示例的半导体存储器装置的框图。
图2是半导体存储器装置的示例的框图。
图3是示出包括计算电路的存储体的示例的示图。
图4是示出存储器中处理(PIM)运算器的具体电路结构的示例的示图。
图5是用于描述根据示例的调度处理的示图。
图6是示出在调度处理中使用的命令的示例的表。
图7是与调度处理的示例对应的时序图。
图8是根据示例的电子系统的框图。
图9是示出根据示例的操作半导体存储器装置的方法的流程图。
贯穿附图和具体实施方式,除非另有描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对大小、比例和描绘可被夸大。
具体实施方式
提供以下具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作顺序仅仅是示例,并且不限于在此阐述的那些,而是除了必须以特定顺序发生的操作之外,可如在理解本申请的公开之后将清楚的那样改变。此外,为了更加清楚和简洁,可省略在理解本申请的公开之后已知的特征的描述。
在此描述的特征可以以不同的形式来实现,而不被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
贯穿说明书,当组件被描述为“连接到”或“结合到”另一组件时,所述组件可直接“连接到”或“结合到”所述另一组件,或者可存在介于它们之间的一个或多个其他组件。相反,当元件被描述为“直接连接到”或“直接结合到”另一元件时,可不存在介于它们之间的其他元件。同样地,类似的表述(例如,“在……之间”和“紧接在……之间”以及“邻近于……”和“紧邻……”)也将以相同的方式解释。如在此使用的,术语“和/或”包括相关联的所列项中的任何一个和任何两个或更多个的任何组合。
尽管在此可使用诸如“第一”、“第二”和“第三”的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不应受这些术语所限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
在此使用的术语仅用于描述各种示例,并将不用于限制公开。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。术语“包含”、“包括”和“具有”说明存在陈述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。
除非另外定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与由本公开所属领域的普通技术人员通常理解以及基于对本申请的公开的理解而通常理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)将被解释为具有与它们在相关领域的上下文和本申请的公开中的含义一致的含义,并且不应被理想化或过于形式化地解释。在此关于示例或实施例使用术语“可”(例如,关于示例或实施例可包括或实现什么)表示:存在包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
图1是根据示例的半导体存储器装置10的框图。
参照图1,作为采用存储器中处理(PIM)的存储器装置的半导体存储器装置10可包括多个存储体和控制电路130。在图1的半导体存储器装置10中仅示出了一些组件。半导体存储器装置10还可包括除了图1中示出的组件之外的一般组件。例如,半导体存储器装置10还可包括内部存储器总线。内部存储器总线可表示形成为在半导体存储器装置10中的组件之间发送和接收数据的数据传输路径。
多个存储体可包括第一存储体组110和第二存储体组120。第一存储体组110可包括包含计算电路的一个或多个存储体。例如,第一存储体组110可包括:包含计算电路115a的存储体110a和包含计算电路115b的存储体110b。存储体110a和110b中的每个包括计算电路115a或计算电路115b,因此存储体110a和存储体110b可执行PIM运算以及处理正常存储器请求。
存储器请求可表示包括读取、写入、复制和擦除中的至少一个的存储器的固有操作。PIM运算可表示包括算术运算(诸如,加法、乘法和累加)和逻辑运算(诸如,AND、OR和XOR)中的至少一个的计算运算。在一个示例中,当半导体存储器装置10用于实现递归神经网络(RNN)时,PIM运算可以是矩阵向量乘法运算,但不一定限于此。
计算电路115a和115b中的每个可表示在存储体110a和存储体110b内执行计算运算的硬件。例如,计算电路115a和115b中的每个可包括作为执行算术运算、逻辑运算和移位运算中的至少一个的硬件的算术逻辑单元(ALU),并且计算运算可包括包含加法、减法、积分、累加等的函数运算,但是不一定限于此。计算电路115a和115b中的每个可被实现为多个逻辑门的阵列,或者可被实现为逻辑门的阵列和临时存储数据的缓冲器的组合。计算电路115a和115b中的每个可使用从与计算电路115a对应的存储体110a或与计算电路115b对应的存储体110b读取的数据来执行运算,并且将运算的结果写回到对应的存储体110a或110b中。
第二存储体组120可包括不包含计算电路的一个或多个存储体。例如,第二存储体组120可包括存储体120a和存储体120b。存储体120a和存储体120b不包括计算电路,因此存储体120a和存储体120b不可执行PIM运算并且仅可处理存储器请求。
如上所述,根据示例的半导体存储器装置10包括包含计算电路的第一存储体组110和不包含计算电路的第二存储体组120两者,从而与存储器请求的处理同时执行PIM运算。因此,半导体存储器装置10可作为存储器进行操作并且同时作为用于驱动神经网络的加速器进行操作,因此半导体存储器装置10可用在需要存储器请求的同时处理、关键延迟或对大量数据进行操作的系统中。
此外,半导体存储器装置可在制造时被确定为具有用于正常操作的最大功耗条件。然而,存在的问题在于,采用PIM的传统半导体存储器装置没有考虑最大功耗条件,因此没有实际实现或者仅在理想条件下实现。相反,根据示例的半导体存储器装置10被配置为在满足最大功耗条件的情况下,同时执行存储器请求的处理和PIM运算。
例如,控制电路130可在满足半导体存储器装置10的最大功耗条件的情况下,控制由第一存储体组110进行的PIM运算与对多个存储体的存储器请求的处理一起执行。控制电路130可通过调整和/或暂停由第一存储体组110进行的PIM运算,将处理存储器请求消耗的功率与PIM运算消耗的功率之和控制在最大功耗条件内。此外,可确定多个存储体之中的包括在第一存储体组110中的存储体的数量,使得当包括在第一存储体组110中的所有存储体执行用于PIM运算的读取操作时,半导体存储器装置10消耗的功率在最大功耗条件内。在下文中,将参照附图详细描述根据示例的半导体存储器装置10在考虑最大功耗条件的情况下进行操作的方法。
在图1中,第一存储体组110包括两个存储体(即,存储体110a和110b),第二存储体组120也包括两个存储体(即,存储体120a和120b),但是这仅是示例。第一存储体组110和第二存储体组120中的每个可仅包括一个存储体或者可包括多于两个存储体。
图2是根据一些实施例的半导体存储器装置20的示例的框图。
参照图2,半导体存储器装置20被示出为图1的半导体存储器装置10的示例。半导体存储器装置20可包括两个存储器通道:Channel 0和Channel 1。存储器通道Channel 0和Channel 1中的每个可包括多个存储体和控制电路。例如,存储器通道Channel 0可包括多个存储体Bank 0至Bank 7,并且可包括控制电路Control circuit 0。存储器通道Channel1可包括多个存储体Bank 8至Bank 15,并且可包括控制电路Control circuit 1。
如图2中所示,在包括在存储器通道Channel 0中的存储体Bank 0至Bank 7之中,存储体Bank 2至Bank 5可包括计算电路,存储体Bank 0、Bank 1、Bank 6和Bank 7可不包括计算电路。在包括在存储器通道Channel 1中的存储体Bank 8至Bank 15中,存储体Bank 10至Bank 13可包括计算电路,存储体Bank 8、Bank 9、Bank 14和Bank 15可不包括计算电路。包括在图2中的存储体中的黑色块可表示如图1中所示的计算电路。
存储体Bank 2至Bank 5和Bank 10至Bank 13可对应于图1的第一存储体组110,存储体Bank 0、Bank 1、Bank 6至Bank 9、Bank 14和Bank 15可对应于图1的第二存储体组120,并且控制电路Control circuit 0和Control circuit 1可对应于图1的控制电路130。存储器通道Channel 0和Channel 1可以以相同的方式配置,并且可彼此并行操作。在图2的示例中仅示出了两个存储器通道,但这仅是为了描述的方便。图1的半导体存储器装置10或图2的半导体存储器装置20可包括单个存储器通道或者可包括彼此并行操作的更多数量的存储器通道。此外,在图2的示例中,在一个存储器通道中包括八个存储体,但是这仅是为了描述的方便。包括在一个存储器通道中的存储体不限于该示例。
在包括在存储器通道Channel 0和Channel 1中的十六个存储体之中仅八个存储体可包括计算电路。PIM运算可消耗比一般的存储器请求的处理更多的功率,因此当所有的十六个存储体都包括计算电路并且执行PIM运算时,半导体存储器装置20的最大功耗条件不会被满足。因此,根据示例的半导体存储器装置20可通过仅在一些存储体中布置计算电路来执行PIM运算,以便在使可用设计空间内的面积开销最小化的同时获得最大性能。
例如,假设包括计算电路的所有存储体同时执行用于PIM运算的读取操作,则包括计算电路的存储体的数量被限制为八个,使得驱动半导体存储器装置20消耗的功率不超过最大功耗条件。八个的数量仅仅是示例,并且示例不限于此。可根据半导体存储器装置20的最大功耗条件来确定包括计算电路的存储体的数量。
图3是示出包括计算电路的存储体30的示例的示图。
参照图3,在半导体存储器装置20是动态随机存取存储器(DRAM)的示例中,示出了包括计算电路的存储体30。存储体30可对应于图1的存储体110a和存储体110b,或者图2的存储体Bank 2至Bank 5和Bank 10至Bank 13中的每个。存储体30可包括被配置为一个或多个DRAM阵列的DRAM单元阵列310。在这种情况下,对存储体30请求的存储器请求可对应于包括读取、写入、复制和删除中的至少一个的DRAM请求。
可设置行解码器320和列解码器330,以选择包括在存储体30的DRAM单元阵列310中的特定存储器单元。当行解码器320基于接收的行地址选择行方向字线,并且列解码器330基于接收的列地址选择列方向位线时,与选择的行方向字线和列方向位线对应的存储器单元可被选择。行解码器320和列解码器330包括在图3中的存储体30中,但是这仅是示例。根据限定存储体30的方法,行解码器320和列解码器330可被设置在存储体30的外部。
全局输入/输出感测放大器(GIO SA)340可用作临时存储从DRAM单元阵列310读取的数据的缓冲器。GIO SA 340可将从DRAM单元阵列310读取的数据传送到乘法累加单元(MAC)350。MAC 350可对应于图1的计算电路115a和计算电路115b中的每个。MAC 350可使用从GIO SA 340发送的数据来执行运算并且输出运算的结果。在下文中,为了便于描述,GIOSA 340和MAC 350被称为PIM运算器40。
图4是示出PIM运算器40的具体电路结构的示例的示图。
参照图4,示出了半导体存储器装置执行矩阵向量乘法运算的示例中的PIM运算器40的具体电路结构。根据一个示例,DRAM阵列可被配置为存储与矩阵的至少一行对应的256位数据,并且GIO SA 41可从DRAM阵列接收256位的读取数据256-bit RD data。DRAM阵列可包括多个DRAM单元,并且多个DRAM单元中的每个可存储一位数据。多个DRAM单元中的一个或多个DRAM单元可共同表示一条数据。例如,16位数据可包括16个DRAM单元。与16个DRAM单元对应的16位数据可对应于矩阵的每个元素,并且可被传送到对应的MAC 42并用作操作数。作为用于运算的另一操作数的输入向量数据可通过数据输入/输出路径数据I/O来输入。输入向量数据可存储在输入向量静态随机存取存储器(SRAM)43中,然后被传送到每个MAC 42。每个MAC 42可对从DRAM阵列传送的矩阵数据和从输入向量SRAM 43传送的输入向量数据执行运算,并且输出运算结果。可通过加法器树(Adder Tree)44对从每个MAC 42输出的运算结果求和,并且可将与最终运算结果对应的输出向量数据存储在输出向量SRAM45中。存储在输出向量SRAM 45中的输出向量数据可通过数据输入/输出路径数据I/O 46输出到外部,并且可通过输入向量SRAM 43再次用于运算。PIM运算器40可包括命令生成器单元47,命令生成器单元47接收从控制电路(例如,图2的控制电路Control circuit 0或Control circuit 1)发送的DRAM命令和地址然后将该命令转换成更详细的子命令。
如上所述,包括PIM运算器40的存储体30可用于执行神经网络实现所需的运算,但也可用于处理一般的存储器请求。然而,在用于PIM运算的数据从一个DRAM阵列读取之后,为了从另一DRAM阵列读取用于存储器请求的处理的数据,需要对用于PIM运算的数据进行预充电PRE然后对用于存储器请求的处理的数据进行激活ACT的处理。在预充电之后重新激活所需的时间相当长,因此可期望将在PIM运算与存储器请求的处理之间切换的次数最小化。
当为了将在PIM运算与存储器请求的处理之间切换的次数最小化而将优先级给予PIM运算时,存储器请求的处理可能是不可用的,并且当将优先级给予存储器请求的处理时,PIM运算的效率会过度降低。因此,可能需要能够在尽可能高效地执行PIM运算的情况下同时执行存储器请求的处理的技术。根据示例的半导体存储器装置(例如,图1的半导体存储器装置10或图2的半导体存储器装置20)可通过调度,在尽可能高效地执行PIM运算的情况下执行存储器请求的同时处理。在下文中,将参照图5详细描述根据示例的半导体存储器装置(例如,图1的半导体存储器装置10或图2的半导体存储器装置20)的调度处理。
图5是用于描述根据示例的调度处理的示图。
参照图5,示出了包括在图2的半导体存储器装置20中的存储器通道Channel 0通过调度在尽可能高效地执行PIM运算的情况下执行存储器请求的同时处理的处理的示例。虽然参照图5仅描述了存储器通道Channel 0,但是相同的内容可等同地应用于可包括在半导体存储器装置20中的其他存储器通道(例如,存储器通道Channel 1)。
图5的第一图表510示出存储体随时间的状态。在第一图表510中,“普通存储体”表示不包括计算电路并且仅可执行存储器请求的处理的存储体,“MV-mul”表示包括计算电路并且能够执行PIM运算的存储体执行如PIM运算的矩阵向量乘法运算的状态。此外,“减慢”表示包括计算电路并且能够执行PIM运算的存储体减慢PIM运算的状态,“暂停”表示包括计算电路并且能够执行PIM运算的存储体暂停PIM运算的状态。如图2中所示,仅存储体Bank 2至Bank 5包括计算电路。在图5中,存储体Bank 0至Bank 7分别由B0至B7简要表示。
第二图表520以时间顺序示出关于存储体的存储器请求队列的状态,并且指示需要在特定间隔IV内处理的存储器请求。在第二图表520上的请求队列中,较高的请求表示较旧的存储器请求,并且较低的请求表示较新的存储器请求。
第三图表530示出关于每个存储体累积的请求的数量。关于每个存储体累积的请求的数量可由请求计数器来计数。当请求计数器计数的数量等于或大于预设阈值时,可执行对与该数量对应的存储体的存储器请求的处理。预设阈值可被确定为这样的值:被设置为在给予PIM运算优先级的同时防止存储器请求的处理的过度延迟。在图5中,“MViD”表示包括计算电路的存储体,“No MViD”表示不包括计算电路的存储体。
按时间顺序参照图5中的第一图表510、第二图表520和第三图表530,对存储体Bank 2、Bank 3、Bank 0和Bank 7的存储器请求的处理请求在请求队列上累积,由请求计数器计数的数量在第一间隔1IV中更新。关于不包括计算电路的存储体Bank 0和Bank 7累积的请求的数量是2,并且关于存储体Bank 2和Bank 3中的每个累积的请求的数量是1。在图5的示例中,当阈值为4时,在第一间隔1IV中不存在累积的请求的数量等于或大于阈值的存储体。因此,在第一间隔1IV中,可连续地执行由存储体Bank 2至Bank 5进行的PIM运算。
在第一间隔1IV和第二间隔2IV之间,对存储体Bank 3的存储器请求的处理请求新累积在请求队列中,并且由请求计数器计数的数量在第二间隔2IV中更新。关于存储体Bank0和Bank 7累积的请求的数量是等于或大于阈值的4。因此,在第二间隔2IV中,可执行对不包括计算电路的存储体Bank 0和Bank 7的存储器请求的处理。
当以相同的方式执行由存储体Bank2至Bank5进行的PIM运算,并且增加对存储体Bank0和Bank7的存储器请求的处理时,可能不再满足最大功耗条件。因此,为了在同时执行对存储体Bank 0和Bank 7的存储器请求的处理并且连续地执行由存储体Bank 2至Bank 5进行的PIM运算的同时满足最大功耗条件,可减慢由存储体Bank 2至Bank 5进行的PIM运算。通过减慢由存储体Bank 2至Bank 5进行的PIM运算而降低的功耗可对应于对存储体Bank 0和Bank 7的存储器请求的处理所需的功耗,但不一定限于此。
在第三间隔3IV中,因为对存储体Bank 0和Bank 7的存储器请求被处理,所以仅对存储体Bank 2和Bank 3的存储器请求的处理请求保留在请求队列中,并且由请求计数器计数的数量被更新。关于存储体Bank 3累积的请求的数量是等于或大于阈值的5。因此,可在第三间隔3IV中执行对存储体Bank 3的存储器请求的处理。因为存储体Bank 3是MViD,所以必须暂停由存储体Bank 3进行的PIM运算,以处理对存储体Bank 3的存储器请求。此外,为了在同时执行对存储体Bank 3的存储器请求的处理和PIM运算的情况下满足最大功耗条件,可减慢由存储体Bank 2、Bank 4和Bank 5进行的PIM运算。
如上所述,包括在图1的半导体存储器装置10或图2的半导体存储器装置20中的控制电路(例如,图1的控制电路130或图2的控制电路Control circuit 0和Control circuit1中的每个)还可包括根据预定时段对多个存储体中的每个的存储器请求进行计数的请求计数器,并且基于由请求计数器计数的数量,对存储器请求的处理和PIM运算执行调度。
当由请求计数器计数的数量之中的与不包括计算电路的存储体的组(例如,图1的第二存储体组120或图2的存储体Bank0、Bank1、Bank6至Bank9、Bank14和Bank15)对应的数量等于或大于预设阈值时,为了处理对不包括计算电路的存储体的组的存储器请求,控制电路(例如,图1的控制电路130或图2的控制电路Control circuit 0和Control circuit 1中的每个)可减慢由包括计算电路的存储体的组(例如,图1的第一存储体组110或图2的存储体Bank 2至Bank 5和Bank 10至Bank 13)进行的PIM运算。
当包括计算电路的存储体的组(例如,图1的第一存储体组110或图2的存储体Bank2至Bank5和Bank10至Bank13)包括第三存储体和第四存储体,并且由请求计数器计数的数量之中的与第三存储体对应的数量等于或大于预设阈值时,为了处理对第三存储体的存储器请求,控制电路(例如,图1的控制电路130或图2的控制电路Control circuit 0和Control circuit 1中的每个)可暂停由第三存储体进行的PIM运算,并且减慢由第四存储体进行的PIM运算。当PIM运算暂停时,存储体可存储直到当前的运算结果,对当前激活的DRAM行预充电,然后激活与存储器请求对应的DRAM行以处理存储器请求。
如上所述,根据示例的半导体存储器装置(例如,图1的半导体存储器装置10或图2的半导体存储器装置20)可通过调度来尽可能高效地同时执行PIM运算和存储器请求的处理。图5仅是用于描述由半导体存储器装置(例如,图1的半导体存储器装置10或图2的半导体存储器装置20)执行的调度处理的示例,但不一定限于此,并且可以以与上述方式类似的方式在其他场景中执行调度。
图6是示出根据示例的在调度处理中使用的命令的示例的表610。
为了使根据示例的半导体存储器装置(例如,图1的半导体存储器装置10或图2的半导体存储器装置20)执行上述调度,除了在现有DRAM中通常使用的命令(例如,用于对数据预充电的PRE命令、用于激活数据的ACT命令、用于读取数据的RD命令等)之外,必须添加或改变子命令。图6的表610示出需要被添加或改变以执行调度的命令的示例。在表610中,存储器控制器(MC)可表示包括在半导体存储器装置(例如,图1的半导体存储器装置10或图2的半导体存储器装置20)外部的主处理器中的存储器控制器,命令控制单元(CCU)可以是包括在控制电路(例如,图1的控制电路130或图2的控制电路Control circuit 0和Controlcircuit 1)中的逻辑。
CCU可从主处理器的MC接收命令并且将该命令传送到每个存储体中的命令生成器单元(CGU)。CGU可接收DRAM命令以及关于PIM运算的命令和地址,并且将命令和地址转换成更详细的子命令。
命令“MV-mul”可以是从存储器控制器发出的命令,并且可指示用于开始矩阵向量乘法运算的命令。在本示例中,因为PIM运算是矩阵向量乘法运算,所以尽管用于开始存储器中的运算的命令被称为“MV-mul”,但是在另一示例中,可根据在存储器中执行的运算的类型来不同地表示该命令。命令“SD”是从CCU发出的命令,并且可指示用于减慢由所有MV-bank(即,包括计算电路的存储体)进行的PIM运算的命令。命令“P”是从CCU发出的命令,并且可指示用于暂停由目标MV-bank进行的PIM运算的命令。
命令“p-PRE”是从存储器控制器发出的命令,并且可指示用于通知由目标存储体进行的PIM运算的暂停连同预充电的命令。在发出命令“p-PRE”之后执行相应操作的定时需要至少tRC。在本示例中,作为用于最大限度地保证PIM运算的执行的示例,“p-PRE”的定时被设置为tRC+tRP。tRC是表示关于同一存储体的连续激活ACTIVE命令之间的最小时间间隔的行周期时间,tRP是作为预充电PRE命令的发出和激活ACT命令的发出之间所花费的时钟周期的数量的行预充电时间。在“p-PRE”中,p可表示暂停。
命令“s-PRE”是从存储器控制器发出的命令,并且可指示用于通知PIM运算的减慢的结束连同预充电的命令。在发出命令“s-PRE”之后执行相应操作的定时可以是tRP+1tCK。1tCK是与一个时钟周期对应的时间,并且可以是命令解码所需的时间。在“s-PRE”中,s可表示减慢。
命令“r-PRE”是从存储器控制器发出的命令,并且可指示用于通知PIM运算的暂停的结束连同预充电的命令。在发出命令“r-PRE”之后执行相应操作的定时可以是tRP+1tCK。在“r-PRE”中,r可表示重新开始。
命令“WR-input”是从存储器控制器发出的命令,并且可指示用于将输入向量写入MV-bank的SRAM中的命令。在发出命令“WR-input”之后执行相应操作的定时可以是375ns。命令“RD-output”是从存储器控制器发出的命令,并且可指示用于从MV-bank的SRAM读取输出向量的命令。在发出命令“RD-output”之后执行相应的操作的定时可以是187.5ns。然而,执行“WR-input”和“RD-output”的相应操作的定时可根据从SRAM读取和写入SRAM的数据的量而变化。
命令“All commands”从存储器控制器发出(例如,现有DRAM中通常使用的所有命令,诸如,读取RD命令、写入WR命令、激活ACT命令、预充电PRE命令等),并且可指示用于通知PIM运算的减慢的开始的命令。在发出命令“All commands”之后执行相应操作的定时可以是3tCK。3tCK可对应于命令解码所需的时间1tCK和广播命令“SD”所花费的时间2tCK之和。当任何一个MV-bank不处于减慢或暂停状态时,与命令“All commands”对应的定时改变可能是必要的。
在图6的表610中示出的并且需要被添加或改变以执行调度的命令仅仅是一个示例。发出每个命令的主体可改变为MC或CCU中的任意一个,并且涉及每个命令的术语也可适当地改变。此外,也可适当地改变在发出每个命令之后执行相应操作的定时。示例不限于以上配置。
图7是根据示例的与调度处理的示例对应的时序图。
参照图7,基于图6的表610中示出的命令,示出了执行根据上述示例的调度处理的时序。具体地,图7示出了执行SD命令和P命令以并行地进行存储器请求的处理和PIM运算的时序。
在一个示例中,当作为包括计算电路的MV-bank的存储体Bank2正在执行PIM运算(例如,MV-mul)时,可通过片外命令CA总线请求对不包括计算电路的普通存储体Bank 0的存储器请求的处理。当激活ACT命令通过片外命令CA总线发送到存储体Bank 0时,SD命令可首先被广播到所有的MV-Bank,并且实际的激活ACT命令可通过DRAM内部命令CA总线在3tCK之后传送到存储体Bank 0。3tCK可对应于处理命令解码所需的1tCK和广播SD命令所需的2tCK之和,tRCD表示行地址至列地址延迟。
在另一示例中,当存储体Bank 2正在执行PIM运算(例如,MV-mul)时,可通过片外命令CA总线请求对存储体Bank 2的存储器请求的处理。当p-PRE命令通过片外命令CA总线发送到存储体Bank2时,P命令可通过DRAM内部命令CA总线首先传送到目标存储体Bank 2,并且实际的PRE命令可在tRC之后传送到存储体Bank 2。因此,存储体Bank 2可暂停PIM运算,存储直到当前的运算的结果,对当前激活的DRAM行预充电,然后在tRP之后激活与存储器请求对应的DRAM行,tRP是用于保证预充电以便处理存储器请求的时间。
如上所述,为了通过调度尽可能高效地同时执行PIM运算和存储器请求的处理,根据示例的半导体存储器装置(例如,图1的半导体存储器装置10或图2的半导体存储器装置20)可根据预设定时广播用于指示调整和/或暂停由包括计算电路的存储体的组(例如,图1的第一存储体组110或图2的存储体Bank 2至Bank 5和Bank 10至Bank 13)进行的PIM运算的命令。
在添加或改变命令的情况下,因为发出在命令之后执行对应操作的定时被调整,所以命令可不必在所有存储体中单独地处理,并且调度可在控制电路(例如,图1的控制电路130或图2的控制电路Control circuit 0和Control circuit 1)的控制下适当地执行。此外,可减少用于命令的命令CA总线的使用量。
图8是根据示例的电子系统800的框图。
参照图8,电子系统800可实时地基于神经网络分析输入数据以提取有效信息,基于提取的信息进行情况确定,或者控制安装有电子系统800的电子装置的配置。例如,电子系统800可应用于机器人装置(诸如,无人机、高级驾驶员辅助系统(ADAS)等)、智能TV、智能电话、医疗装置、移动装置、图像显示装置、测量装置、IoT装置等,并且可安装在各种电子装置中的至少一个上。例如,电子系统800可以是服务器。
电子系统800可包括处理器810、半导体存储器装置820、神经网络装置830、系统存储器840、传感器模块850和通信模块860。电子系统800还可包括输入/输出模块、安全模块、电源控制装置等。电子系统800的硬件组件中的一些可安装在至少一个半导体芯片上。
处理器810控制电子系统800的整体操作。处理器810可包括一个处理器核(单核)或者可包括多个处理器核(多核)。处理器810可处理或执行存储在系统存储器840中的程序和/或数据。在一些示例中,处理器810可通过执行存储在系统存储器840中的程序来控制半导体存储器装置820或神经网络装置830的功能。处理器810可被实现为中央处理器(CPU)、图形处理器(GPU)、应用处理器(AP)等。处理器810可包括用于控制半导体存储器装置820或系统存储器840的存储器控制器。
半导体存储器装置820可临时存储程序、数据或指令。例如,存储在系统存储器840中的程序和/或数据可根据处理器810的控制或引导代码临时存储在半导体存储器装置820中。半导体存储器装置820可被实现为诸如DRAM的存储器。半导体存储器装置820可对应于参照图1至图7描述的半导体存储器装置(例如,图1的半导体存储器装置10或图2的半导体存储器装置20)。半导体存储器装置820对应于包括计算电路的PIM,从而不仅执行存储数据的存储器功能而且执行执行计算运算的处理器的功能。
因为包括在半导体存储器装置820中的计算电路存在于半导体存储器装置820的内部,所以计算电路可被称为内部处理器,并且因为处理器810存在于半导体存储器装置820的外部,所以处理器810可被称为主处理器或外部处理器。因为内部处理器和存储器在片上实现,所以PIM架构能够实现低延迟的快速存储器访问。此外,当PIM架构使用存储体单元或存储体组单元的并行性时,与一般存储器访问相比,PIM架构可利用几倍至几十倍的存储器带宽。包括PIM架构的半导体存储器装置820也可被称为诸如智能随机存取存储器(RAM)、计算RAM或智能存储器等的术语。
半导体存储器装置820可基于内部存储的数据使用计算电路执行神经网络的运算,并且基于执行运算的结果生成信息信号。信息信号可包括各种类型的识别信号(诸如,语音识别信号、对象识别信号、图像识别信号、生物信息识别信号等)之一。在一个示例中,由半导体存储器装置820实现的神经网络可以是RNN,但不限于此。由半导体存储器装置820实现的神经网络可包括卷积神经网络(CNN)、前馈神经网络(FNN)、深度信念网络、受限玻尔兹曼机等。半导体存储器装置820可用于诸如图像识别、时间序列预测、节奏学习等的各种应用以及自然语言处理(NLP)应用(诸如,语音识别、机器翻译、语言模型、语言预测等)。
除了半导体存储器器件820之外,电子系统800还可包括单独的神经网络装置830以实现神经网络。在这种情况下,半导体存储器装置820可作为通用存储器进行操作以向神经网络装置830提供必要的数据。
神经网络装置830可基于接收的输入数据执行神经网络的运算,并且基于运算的结果生成信息信号。神经网络可包括但不限于CNN、RNN、FNN、深度信念网络、受限玻尔兹曼机等。神经网络装置830可驱动与半导体存储器装置820分离的神经网络,并且可与半导体存储器装置820协同地驱动一个神经网络。
系统存储器840是用于存储数据的存储位置,并且可存储操作系统(OS)、各种程序和各种数据。在一个示例中,系统存储器840可存储在执行半导体存储器装置820或神经网络装置830的运算的处理期间生成的中间结果。
系统存储器840可包括易失性存储器和非易失性存储器中的至少一个。非易失性存储器包括ROM、PROM、EPROM、EEPROM、闪存、PRAM、MRAM、RRAM、FRAM等。易失性存储器包括DRAM、SRAM、SDRAM等。在一个示例中,系统存储器840可包括HDD、SSD、CF、SD、微型SD、迷你SD、xD和记忆棒中的至少一个。
传感器模块850可收集其上安装有电子系统800的电子装置周围的信息。传感器模块850可从电子装置的外部感测或接收信号(例如,图像信号、声音信号、磁信号、生物信号、触摸信号等),并将感测或接收的信号转换为数据。为此,传感器模块850可包括各种类型的感测装置(诸如,麦克风、成像装置、图像传感器、光检测和测距(LIDAR)传感器、超声传感器、红外传感器、生物传感器、触摸传感器等)中的至少一个。
传感器模块850可将转换的数据作为输入数据提供给半导体存储器装置820或神经网络装置830。例如,传感器模块850可包括图像传感器,捕获电子装置的外部环境以生成视频流,并且将视频流的连续数据帧作为输入数据顺序地提供给半导体存储器装置820或神经网络装置830。然而,传感器模块850的配置不限于此,传感器模块850可向半导体存储器装置820或神经网络装置830提供各种类型的数据。
通信模块860可具有可与外部装置通信的各种有线接口或无线接口。例如,通信模块860可包括可连接到无线局域网(WLAN)(诸如,局域网(LAN))、Wi-Fi(无线保真)、无线个域网(WPAN)(诸如,蓝牙(Bluetooth))、移动蜂窝网络(诸如,无线USB(无线通用串行总线))、Zigbee、近场通信(NFC)、射频识别(RFID)、电力线通信(PLC)或第三代(3G)、第四代(4G)、长期演进(LTE)等的通信接口。
图9是示出根据示例的操作半导体存储器装置的方法的流程图。
参照图9,操作半导体存储器装置的方法可包括由参照图1至图7描述的半导体存储器装置(例如,图1的半导体存储器装置10或图2的半导体存储器装置20)按时间序列处理的操作。因此,即使以下省略,以上关于图1至图7的半导体存储器装置(例如,图1的半导体存储器装置10或图2的半导体存储器装置20)提供的描述也可应用于图9的操作半导体存储器装置的方法。
在操作910中,半导体存储器装置可处理对多个存储体的存储器请求,所述多个存储体包括包含计算电路的第一存储体组和不包含计算电路的第二存储体组。在一个示例中,半导体存储器装置可以是DRAM。在这种情况下,多个存储体中的每个可包括一个或多个DRAM阵列,并且存储器请求可对应于包括读取、写入、复制和删除中的至少一个的DRAM请求。包括在第一存储体组中的每个存储体中包括的计算电路可使用从对应的存储体读取的数据来执行运算,并且将运算的结果重写到对应的存储体或者将结果输出到外部。由包括在第一存储体组中的每个存储体中包括的计算电路执行的运算可被称为PIM运算。
在操作920中,半导体存储器装置可在满足半导体存储器装置的最大功耗条件的情况下,控制由第一存储体组进行的PIM运算与存储器请求的处理一起执行。例如,半导体存储器装置可通过调整和/或暂停由第一存储体组进行的PIM运算,将存储器请求的处理消耗的功率与PIM运算消耗的功率之和控制在最大功耗条件内。
半导体存储器装置可基于由请求计数器计数的数量来对存储器请求的处理和PIM运算执行调度,请求计数器根据预定时段对多个存储体中的每个存储体的存储器请求进行计数。在一个示例中,当由请求计数器计数的数量之中的与第二存储体组对应的数量等于或大于预设阈值时,为了处理对第二存储体组的存储器请求,半导体存储器装置可减慢由第一存储体组进行的PIM运算。
在另一示例中,当第一存储体组包括第三存储体和第四存储体,并且由请求计数器计数的数量之中的与第三存储体对应的数量等于或大于预设阈值时,为了处理对第三存储体的存储器请求,半导体存储器装置可暂停由第三存储体进行的PIM运算并且减慢由第四存储体进行的PIM运算。
半导体存储器装置可根据预设定时将用于指示调整和/或暂停由第一存储体组进行的PIM运算的命令广播到第一存储体组。如上所述,半导体存储器装置可通过调度在尽可能高效地执行PIM运算的情况下同时执行存储器请求的处理。
半导体存储器装置可通过仅在一些存储体中布置计算电路来执行PIM运算,以便在使可用设计空间内的面积开销最小化的同时获得最大性能。例如,可确定多个存储体之中的包括在第一存储体组中的存储体的数量,使得当包括在第一存储体组中的所有存储体执行用于PIM运算的读取操作时,半导体存储器装置消耗的功率在最大功耗条件内。
操作半导体存储器装置的方法可被记录在计算机可读记录介质中,该计算机可读记录介质已经记录了包括用于执行所述方法的指令的一个或多个程序。计算机可读记录介质的示例包括磁介质(诸如,硬盘、软盘和磁带)、光介质(诸如,CD-ROM和DVD)、磁光介质(诸如,软光盘)以及专门被配置为存储和执行程序指令的硬件装置(例如,ROM、RAM和闪存)。程序指令的示例包括机器语言代码(诸如,由编译器生成的机器语言代码)以及可由计算机通过使用解释器等执行的高级语言代码。
尽管本公开包括具体的示例,但是在理解本申请的公开之后将清楚的是,在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例应仅在描述性意义上被考虑,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式组合,和/或被其他组件或其等同物替换或补充,则可实现合适的结果。因此,公开的范围不是由具体实施方式限定,而是由权利要求及其等同物限定,并且权利要求及其等同物的范围内的所有变化将被解释为包括在公开中。

Claims (23)

1.一种采用存储器中处理PIM的半导体存储器装置,所述半导体存储器装置包括:
多个存储体,包括包含计算电路的第一存储体组和不包含计算电路的第二存储体组;以及
控制电路,被配置为:在满足所述半导体存储器装置的最大功耗条件的情况下,控制由第一存储体组进行的PIM运算与对所述多个存储体的存储器请求的处理一起执行。
2.根据权利要求1所述的半导体存储器装置,其中,控制电路被配置为:通过调整和/或暂停由第一存储体组进行的PIM运算,控制存储器请求的处理消耗的功率与PIM运算消耗的功率之和满足最大功耗条件。
3.根据权利要求1所述的半导体存储器装置,其中,控制电路包括:请求计数器,被配置为根据预定时段对所述多个存储体中的每个存储体的存储器请求进行计数,并且
控制电路被配置为:基于由请求计数器计数的数量,对存储器请求的处理和PIM运算执行调度。
4.根据权利要求3所述的半导体存储器装置,其中,控制电路被配置为:当由请求计数器计数的数量之中的与第二存储体组对应的数量等于或大于预设阈值时,减慢由第一存储体组进行的PIM运算,以处理对第二存储体组的存储器请求。
5.根据权利要求3所述的半导体存储器装置,其中,当第一存储体组包括第一存储体和第二存储体,并且由请求计数器计数的数量之中的与第一存储体对应的数量等于或大于预设阈值时,控制电路被配置为:暂停由第一存储体进行的PIM运算并减慢由第二存储体进行的PIM运算,以处理对第一存储体的存储器请求。
6.根据权利要求1所述的半导体存储器装置,其中,控制电路被配置为:根据预设定时将用于指示调整和/或暂停由第一存储体组进行的PIM运算的命令广播到第一存储体组。
7.根据权利要求1所述的半导体存储器装置,其中,所述多个存储体之中的包括在第一存储体组中的存储体的数量被配置,使得当包括在第一存储体组中的所有存储体执行用于PIM运算的读取操作时,由所述半导体存储器装置消耗的功率满足最大功耗条件。
8.根据权利要求1所述的半导体存储器装置,其中,所述多个存储体中的每个存储体包括一个或多个动态随机存取存储器阵列,并且
其中,存储器请求是包括读取、写入、复制和擦除中的至少一个的动态随机存取存储器请求。
9.根据权利要求1所述的半导体存储器装置,其中,包括在第一存储体组中的计算电路被配置为:使用从对应的存储体读取的数据来执行运算,并且将所述运算的结果重写到对应的存储体或者将所述结果输出到外部。
10.根据权利要求1所述的半导体存储器装置,其中,计算电路包括执行算术运算、逻辑运算和移位运算中的至少一个的硬件。
11.一种操作采用存储器中处理PIM的半导体存储器装置的方法,所述方法包括:
处理对多个存储体的存储器请求,所述多个存储体包括包含计算电路的第一存储体组和不包含计算电路的第二存储体组;以及
在满足所述半导体存储器装置的最大功耗条件的情况下,控制由第一存储体组进行的PIM运算与所述存储器请求的处理一起执行。
12.根据权利要求11所述的方法,其中,控制的步骤包括:
通过调整和/或暂停由第一存储体组进行的PIM运算,控制所述存储器请求的处理消耗的功率与PIM运算消耗的功率之和满足最大功耗条件。
13.根据权利要求11所述的方法,其中,控制的步骤包括:
基于由请求计数器计数的数量对所述存储器请求的处理和PIM运算执行调度,请求计数器被配置为根据预定时段对所述多个存储体中的每个存储体的存储器请求进行计数。
14.根据权利要求13所述的方法,其中,执行调度的步骤包括:
当由请求计数器计数的数量之中的与第二存储体组对应的数量等于或大于预设阈值时,减慢由第一存储体组进行的PIM运算,以处理对第二存储体组的存储器请求。
15.根据权利要求13所述的方法,其中,执行调度的步骤包括:
当第一存储体组包括第一存储体和第二存储体,并且由请求计数器计数的数量之中的与第一存储体对应的数量等于或大于预设阈值时,暂停由第一存储体进行的PIM运算并减慢由第二存储体进行的PIM运算,以处理对第一存储体的存储器请求。
16.根据权利要求11所述的方法,还包括:
根据预设定时将用于指示调整和/或暂停由第一存储体组进行的PIM运算的命令广播到第一存储体组。
17.根据权利要求11所述的方法,其中,所述多个存储体之中的包括在第一存储体组中的存储体的数量被配置,使得当包括在第一存储体组中的所有存储体执行用于PIM运算的读取操作时,由所述半导体存储器装置消耗的功率满足最大功耗条件。
18.根据权利要求11所述的方法,
其中,所述多个存储体中的每个存储体包括一个或多个动态随机存取存储器阵列,并且
其中,所述存储器请求对应于包括读取、写入、复制和擦除中的至少一个的动态随机存取存储器请求。
19.根据权利要求11所述的方法,其中,包括在第一存储体组中的计算电路被配置为:使用从对应的存储体读取的数据来执行运算,并且将所述运算的结果重写到对应的存储体或者将所述结果输出到外部。
20.一种非暂时性计算机可读记录介质,其上记录有包括用于执行根据权利要求11所述的方法的指令的一个或多个程序。
21.一种半导体存储器装置,包括:
第一存储体,包括被配置为执行存储器中处理PIM运算的计算电路;
第二存储体,被配置为与PIM运算同时处理一个或多个存储器请求;以及
控制电路,被配置为:控制PIM运算,使得处理所述一个或多个存储器请求消耗的功率与PIM运算消耗的功率之和不超过最大阈值。
22.根据权利要求21所述的半导体存储器装置,其中,第一存储体包括在包含两个或更多个存储体的第一存储体组中,并且第一存储体组中的每个存储体包括计算电路,并且
第二存储体包括在包含两个或更多个存储体的第二存储体组中,并且第二存储体组中的所有存储体均不包括计算电路。
23.根据权利要求21所述的半导体存储器装置,其中,第一存储体包括在包含两个或更多个存储体的第一存储体组中,第一存储体组的所述两个或更多个存储体包括不包含计算电路的第三存储体,
第二存储体不包括计算电路,并且
第二存储体包括在包含两个或更多个存储体的第二存储体组中,第二存储体组的所述两个或更多个存储体包括包含计算电路的第四存储体。
CN202010400764.5A 2019-10-10 2020-05-13 采用存储器中处理的半导体存储器装置及其操作方法 Pending CN112652333A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0125689 2019-10-10
KR1020190125689A KR20210042757A (ko) 2019-10-10 2019-10-10 Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
CN112652333A true CN112652333A (zh) 2021-04-13

Family

ID=70682640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010400764.5A Pending CN112652333A (zh) 2019-10-10 2020-05-13 采用存储器中处理的半导体存储器装置及其操作方法

Country Status (4)

Country Link
US (2) US11139033B2 (zh)
EP (1) EP3805936B1 (zh)
KR (1) KR20210042757A (zh)
CN (1) CN112652333A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022252121A1 (en) * 2021-06-01 2022-12-08 Yangtze Memory Technologies Co., Ltd. Power management for a memory system
CN116136752A (zh) * 2023-04-19 2023-05-19 上海登临科技有限公司 阵列输入策略的确定方法和系统
US11966594B2 (en) 2021-06-01 2024-04-23 Yangtze Memory Technologies Co., Ltd. Power management for a memory system

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210093127A (ko) * 2020-01-17 2021-07-27 에스케이하이닉스 주식회사 Aim 장치
US20210357739A1 (en) * 2020-05-14 2021-11-18 Micron Technology, Inc. Memory device to train neural networks
US11262949B2 (en) * 2020-05-28 2022-03-01 Advanced Micro Devices, Inc. Command throughput in PIM-enabled memory using available data bus bandwidth
US11347652B2 (en) * 2020-08-31 2022-05-31 Microsoft Technology Licensing, Llc Banked memory architecture for multiple parallel datapath channels in an accelerator
KR20230095692A (ko) * 2021-12-22 2023-06-29 삼성전자주식회사 메모리 프로세서 제어 방법 및 장치
CN114024546B (zh) * 2022-01-10 2022-05-10 之江实验室 基于存算一体晶体管的布尔逻辑实现方法、单元及电路
US11630605B1 (en) * 2022-08-10 2023-04-18 Recogni Inc. Methods and systems for processing read-modify-write requests

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286854B2 (en) * 2011-10-31 2016-03-15 Roku, Inc. Multi-interface streaming media system
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
US10198349B2 (en) 2016-09-19 2019-02-05 Advanced Micro Devices, Inc. Programming in-memory accelerators to improve the efficiency of datacenter operations
US10838899B2 (en) * 2017-03-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for in-memory data switching networks
US11514996B2 (en) * 2017-07-30 2022-11-29 Neuroblade Ltd. Memory-based processors
US10474600B2 (en) 2017-09-14 2019-11-12 Samsung Electronics Co., Ltd. Heterogeneous accelerator for highly efficient learning systems
CN108388498B (zh) 2018-02-12 2020-09-08 北京大学 内存中计算的功率建模方法及功率管理方法
KR20200081045A (ko) 2018-12-27 2020-07-07 삼성전자주식회사 3차원 적층 메모리 장치 및 그 동작 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022252121A1 (en) * 2021-06-01 2022-12-08 Yangtze Memory Technologies Co., Ltd. Power management for a memory system
US11966594B2 (en) 2021-06-01 2024-04-23 Yangtze Memory Technologies Co., Ltd. Power management for a memory system
CN116136752A (zh) * 2023-04-19 2023-05-19 上海登临科技有限公司 阵列输入策略的确定方法和系统
CN116136752B (zh) * 2023-04-19 2023-06-30 上海登临科技有限公司 阵列输入策略的确定方法和系统

Also Published As

Publication number Publication date
US11139033B2 (en) 2021-10-05
US20210110876A1 (en) 2021-04-15
EP3805936B1 (en) 2022-03-16
US11600340B2 (en) 2023-03-07
US20210398597A1 (en) 2021-12-23
KR20210042757A (ko) 2021-04-20
EP3805936A1 (en) 2021-04-14

Similar Documents

Publication Publication Date Title
CN112652333A (zh) 采用存储器中处理的半导体存储器装置及其操作方法
US20230186957A1 (en) Parallel access to volatile memory by a processing device for machine learning
JP7044750B2 (ja) Pimを採用する半導体メモリ装置及びその動作方法
US10712960B2 (en) Configurable operating mode memory device and methods of operation
TW202008160A (zh) 記憶體系統、記憶體裝置以及其操作方法
US11669272B2 (en) Predictive data transfer based on availability of media units in memory sub-systems
KR20140028618A (ko) 쓰기 페일을 줄이는 메모리 장치, 이를 포함하는 메모리 시스템 및 그 쓰기 방법
US11874779B2 (en) Scheduling of read operations and write operations based on a data bus mode
KR20130068915A (ko) 메모리 시스템 및 그 동작 제어 방법
KR20210072524A (ko) 뉴럴 네트워크 장치 및 그 동작 방법
KR20170081275A (ko) 재구성가능한 페치 파이프라인
US10559348B2 (en) System, apparatus and method for simultaneous read and precharge of a memory
US20220188606A1 (en) Memory Configuration to Support Deep Learning Accelerator in an Integrated Circuit Device
KR101861647B1 (ko) 메모리 시스템 및 그 리프레시 제어 방법
US11681474B2 (en) Management of peak current of memory dies in a memory sub-system
US20220207334A1 (en) Neural network device including convolution sram and diagonal accumulation sram
US20230069768A1 (en) Distributed Camera System
US20230325117A1 (en) Speculative command processing interface in storage systems
KR20230125706A (ko) 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법
KR20240025827A (ko) Imc(in memory computing) 프로세서 및 imc 프로세서의 동작 방법

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