CN109669887A - 高带宽存储器、高带宽存储器系统及其命令处理方法 - Google Patents
高带宽存储器、高带宽存储器系统及其命令处理方法 Download PDFInfo
- Publication number
- CN109669887A CN109669887A CN201810980551.7A CN201810980551A CN109669887A CN 109669887 A CN109669887 A CN 109669887A CN 201810980551 A CN201810980551 A CN 201810980551A CN 109669887 A CN109669887 A CN 109669887A
- Authority
- CN
- China
- Prior art keywords
- function
- high bandwidth
- memory
- bandwidth memory
- controller
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 164
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000006870 function Effects 0.000 claims abstract description 142
- 230000003068 static effect Effects 0.000 claims abstract description 26
- 238000003860 storage Methods 0.000 claims description 19
- 230000006386 memory function Effects 0.000 claims description 4
- 238000010977 unit operation Methods 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims description 3
- 241000208340 Araliaceae Species 0.000 claims 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims 1
- 235000003140 Panax quinquefolius Nutrition 0.000 claims 1
- 235000008434 ginseng Nutrition 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000002513 implantation Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005314 correlation function Methods 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1636—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Software Systems (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种在高带宽存储器(HBM)系统中处理存储器内命令的方法,包括:图形处理单元的高带宽存储器控制器向高带宽存储器发送高带宽存储器内功能指令。所述高带宽存储器的逻辑组件接收所述高带宽存储器内功能指令,且使用位于所述逻辑组件上的所述控制器、算术逻辑单元及静态随机存取存储器来协调指令执行。也提供高带宽存储器及高带宽存储器系统。
Description
[相关申请的交叉参考]
本申请主张在2017年10月17日提出申请的美国临时专利申请第62/573,390号的优先权及权利,所述美国临时专利申请全文并入本申请供参考。
技术领域
本公开的一些实施例大体来说涉及存储器带宽管理,且还可涉及包括位于高带宽存储器逻辑裸片上的处理器及存储器控制器的高带宽存储器(HBM)系统以及在高带宽存储器中进行处理的方法。
背景技术
常常使用高带宽存储器(high-bandwidth memory,HBM)作为图形处理单元(graphics processing unit,GPU)的高性能存储器。与典型的动态随机存取存储器(dynamic random access memory,DRAM)相比,高带宽存储器具有总线非常宽的优点。目前的HBM系统架构包括多个堆叠式DRAM裸片(例如,数字集成电路元件(digital integratedcircuit element,dice))及用作HBM中的缓冲器及GPU中的HBM控制器的逻辑裸片。另外的性能增益可通过向存储器系统添加存储器内处理(例如,存储器内处理)能力来实现,然而对于HBM的任意改变均应引起现有GPU生态系统的微小改变。
以上信息仅是为了增强对本公开实施例的背景的理解,且因此可能含有并不构成现有技术的信息。
发明内容
本公开的一些实施例提供一种在高带宽存储器(HBM)系统中协调存储器命令的系统及方法。
根据一些实施例,如在高带宽存储器(HBM)系统中处理存储器内命令的系统及方法,包括:图形处理单元的高带宽存储器控制器向高带宽存储器发送高带宽存储器内功能(function-in-HBM,FIM)指令,且在所述高带宽存储器的逻辑组件处接收所述高带宽存储器内功能指令。所述逻辑组件可包括:控制器、算术逻辑单元(Arithmetic Logic Unit,ALU)及静态随机存取存储器。所述逻辑组件使用所述控制器、所述算术逻辑单元、或所述静态随机存取存储器中的至少一者、基于所述高带宽存储器内功能指令来协调所述高带宽存储器内功能指令的执行。
根据一些实施例,协调所述高带宽存储器内功能指令的执行涉及:将所述高带宽存储器内功能指令识别为计算高带宽存储器内功能指令。所述计算高带宽存储器内功能指令具有操作及至少一个数据位置。协调所述计算高带宽存储器内功能指令的所述执行包括根据所述至少一个数据位置从所述高带宽存储器的动态随机存取存储器检索至少一个数据;将所述至少一个数据及所述操作提供到所述算术逻辑单元;所述算术逻辑单元对所述至少一个数据执行所述操作;以及将所述执行的结果存储在所述动态随机存取存储器中。
根据一些实施例,操作可为原子运算及数据类型,且其中所述至少一个数据位置包括目的地寄存器、存储器地址、来源寄存器、常数、或参考寄存器中的至少一者。
根据一些实施例,所述原子运算包括加法(ADD)功能、减法(SUBTRACT)功能、交换(EXCHANGE)功能、最大值(MAX)功能、最小值(MIN)功能、递增(INCREMENT)功能、递减(DECREMENT)功能、比较和替换(COMPARE-AND-SWAP)功能、与(AND)功能、或(OR)功能、异或(XOR)功能、或非(NOT)功能中的至少一者。
根据一些实施例,所述操作可为算术逻辑单元操作及动态随机存取存储器存取操作,且所述至少一个数据位置包括目的地寄存器及至少一个来源寄存器。
根据一些实施例,所述动态随机存取存储器存取操作可包括成对加载指令或成对存储指令。
根据一些实施例,协调所述高带宽存储器内功能指令的执行可包括:所述控制器将所述高带宽存储器内功能指令识别为高带宽存储器内功能移动指令。所述高带宽存储器内功能移动指令可包括来源寄存器及目的地寄存器。所述控制器可根据所述来源寄存器从所述高带宽存储器的动态随机存取存储器检索所述至少一个数据以及将所述至少一个数据在所述目的地寄存器处存储在所述动态随机存取存储器中。
根据一些实施例,协调所述高带宽存储器内功能指令的执行可包括将所述高带宽存储器内功能指令识别为高带宽存储器内功能便签指令。所述高带宽存储器内功能便签指令包括来源寄存器或目的地寄存器中的至少一者。根据一些实施例,协调所述高带宽存储器内功能便签指令的执行可包括将所述控制器的定时参数从动态随机存取存储器定时参数调整到静态随机存取存储器定时参数以及根据所述静态随机存取存储器定时参数对所述静态随机存取存储器执行所述高带宽存储器内功能便签指令。
根据一些实施例,在高带宽存储器系统中处理存储器内命令的系统及方法还可包括当所述至少一个数据位置包括图形处理单元高速缓存时,所述高带宽存储器控制器协调所述高带宽存储器内功能指令在所述图形处理单元上的执行。
根据一些实施例,一种高带宽存储器包括:动态随机存取存储器;以及,逻辑组件,包括:控制器、算术逻辑单元及静态随机存取存储器,其中所述逻辑组件被配置成执行指令,所述指令在被所述逻辑组件执行时,使所述逻辑组件:所述逻辑组件使用所述动态随机存取存储器、所述控制器、所述算术逻辑单元、或所述静态随机存取存储器中的至少一者、基于高带宽存储器内功能指令来协调高带宽存储器内功能指令的执行。
根据一些实施例,一种高带宽存储器系统,包括:高带宽存储器,包括:动态随机存取存储器裸片,包括动态随机存取存储器;以及逻辑裸片,包括控制器、算术逻辑单元及静态随机存取存储器;以及图形处理单元存储器控制器,与所述高带宽存储器分开,且被配置成向所述控制器发送指令。其中所述控制器被配置成接收所述指令,并在所述指令是常规指令时将所述指令转发到所述动态随机存取存储器裸片上的所述动态随机存取存储器以及在所述指令是高带宽存储器内功能指令时协调所述指令的执行。且,其中所述指令的执行是使用所述控制器、所述算术逻辑单元、及所述静态随机存取存储器中的至少一者来实行。
附图说明
结合附图阅读以下说明可更详细地理解一些实施例,在附图中:
图1是根据各种实施例的高带宽存储器(HBM)系统的方块图。
图2是示出根据一些示例性实施例的用于对来自FIM指令集架构(InstructionSet Architecture,ISA)的指令进行处理的示例性操作的流程图。
[符号的说明]
100:存储器内功能高带宽存储器系统(FIM HBM系统)/高带宽存储器系统(HBM系统);
110:高带宽存储器(HBM);
120:动态随机存取存储器(DRAM);
130:逻辑组件;
140:控制器;
150:算术逻辑单元(ALU);
160:静态随机存取存储器(SRAM);
170:图形处理单元(GPU);
180:HBM控制器;
S200、S210、S220、S230:操作。
具体实施方式
通过参照对实施例及附图的以下详细说明,可更容易地理解本发明概念的特征及其实现方法。在下文中,将参照附图更详细地阐述实施例,其中相同的参考编号自始至终指代相同的元件。然而,本发明可被实施为各种不同形式,而不应被视为仅限于本文所示出的实施例。确切来说,提供这些实施例作为实例是为了使本公开将透彻及完整,并将向所属领域中的技术人员充分传达本发明的各个方面及特征。因此,可不再阐述对于所属领域中的一般技术人员完整地理解本发明的各个方面及特征而言并非必需的工艺、元件及技术。除非另有说明,否则在所有附图及书面说明通篇中相同的参考编号表示相同的元件,且因此可不对其进行重复说明。在图式中,为清晰起见,可夸大各元件、各层及各区的相对大小。
在以下说明中,出于解释目的,阐述各种具体细节来提供对各种实施例的透彻理解。然而,显而易见的是,可不使用这些具体细节或者可使用一种或多种等效配置来实践各种实施例。在其他实例中,以方块图形式示出众所周知的结构及装置以避免不必要地使各种实施例模糊不清。
应理解,当称一元件、层、区或组件位于另一元件、层、区或组件“上(on)”、“连接到(connected to)”或“耦合到(coupled to)”另一元件、层、区或组件时,所述元件、层、区或组件可直接位于所述另一元件、层、区或组件上、直接连接到或直接耦合到所述另一元件、层、区或组件,抑或可存在一个或多个中间元件、层、区或组件。然而,“直接连接/直接耦合(directly connected/directly coupled)”则是指一个组件与另一个组件直接连接或直接耦合,而不具有中间组件。同时,例如“位于...之间(between)”、“直接位于...之间(immediately between)”或者“相邻于...(adjacent to)”及“紧邻于...(directlyadjacent to)”等阐述各个组件之间的关系的其他表达可类似地加以解释。另外,还应理解,当称一元件或层“位于”两个元件或层“之间(between)”时,所述元件或层可为所述两个元件或层之间的唯一元件或层,抑或也可存在一个或多个中间元件或层。
本文所用术语仅是出于阐述特定实施例的目的而并非旨在限制本发明。除非上下文清楚地另外指明,否则本文所用单数形式“一(a及an)”旨在也包括复数形式。还应理解,当在本说明书中使用用语“包括(comprises、comprising)”、“具有(have、having)”及“包含(includes、including)”时,是指明所陈述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。本文所用用语“和/或”包括相关列出项中的一个或多个项的任意及所有组合。
本文所用用语“实质上(substantially)”、“大约(about)”、“近似地(approximately)”及类似用语用作近似用语、而并非作为程度用语,并且旨在考虑到所属领域中的一般技术人员将知的测量值或计算值的固有偏差。本文所述“大约”或“近似地”包括所阐述值且意指处于所属领域中的一般技术人员所确定的特定值的可接受的偏差范围内,此考虑到所说的测量以及与特定品质的测量相关联的误差(即,测量系统的限制)。举例来说,“大约”可意指处于一个或多个标准偏差范围内,或处于所述值的±30%、±20%、±10%、±5%内。另外,在阐述本发明的实施例时使用“可(may)”是指“本发明的一个或多个实施例”。本文所用用语“使用(use)”、“正使用(using)”及“被使用(used)”可被视为分别与用语“利用(utilize)”、“正利用(utilizing)”及“被利用(utilized)”同义。另外,用语“示例性(exemplary)”旨在指实例或例示。
当某一实施例可被以不同方式实施时,特定工艺次序可与所阐述的次序不同地执行。举例来说,两个连续阐述的工艺可实质上同时执行或以与所阐述的次序相反的次序执行。
在本文中参照剖视图阐述各种实施例,所述剖视图为实施例和/或中间结构的示意性例示。因此,预期会因例如制造技术和/或容差而导致相对于例示形状的变化。另外,本文所公开的具体结构说明或功能说明仅是例示性的,目的在于阐述根据本公开概念的实施例。因此,本文所公开的实施例不应被视为仅限于各个区的特定例示形状,而是应包含由例如制造引起的形状偏差。举例来说,被例示为矩形的植入区通常应具有圆形特征或曲线特征和/或在其边缘存在植入浓度的梯度而非从植入区到非植入区为二元变化。同样地,通过植入而形成的掩埋区可在所述掩埋区与在进行植入时所经过的表面之间的区中引起一些植入。因此,图式中所例示的区为示意性的且其形状并非旨在例示装置的区的实际形状且并非旨在进行限制。
根据本文所述本发明的实施例的电子装置或电装置和/或任何其他相关装置或组件可使用任何适合的硬件、固件(例如,应用专用集成电路(application-specificintegrated circuit))、软件、或软件、固件、及硬件的组合来实施。举例来说,可将这些装置的各种组件形成在一个集成电路(integrated circuit,IC)芯片上或单独的集成电路芯片上。此外,可将这些装置的各种组件实施在柔性印刷电路膜(flexible printed circuitfilm)、载带封装(tape carrier package,TCP)、印刷电路板(printed circuit board,PCB)上、或形成在一个衬底上。此外,这些装置的各种组件可为在一个或多个计算装置中由一个或多个处理器运行、执行计算机程序指令并与用于执行本文所述各种功能性的其他系统组件进行交互的过程或线程(thread)。计算机程序指令存储在可在使用例如(举例来说)随机存取存储器(random access memory,RAM)等标准存储器装置的计算装置中实施的存储器中。计算机程序指令也可存储在例如(举例来说)压缩盘只读存储器(compact discread only memory,CD-ROM)、闪存驱动器(flash drive)或类似元件等其他非暂时性计算机可读媒体中。另外,所属领域中的技术人员应知,在不背离本发明示例性实施例的精神及范围的条件下,可将各种计算装置的功能性组合或整合成单一的计算装置,或者可使一特定计算装置的功能性跨越一个或多个其他计算装置分布。
除非另外定义,否则本文所用所有用语(包括技术及科学用语)的含义均与本发明所属领域中的一般技术人员所通常理解的含义相同。还应理解,用语(例如在常用词典中所定义的用语)应被解释为具有与其在相关技术的上下文和/或本说明书中的含义一致的含义,且除非在本文中明确定义,否则不应将其解释为具有理想化或过于正式的意义。
图1是根据本公开实施例的高带宽存储器(HBM)系统的架构的方块图。
参照图1,本公开的实施例提供一种用于高带宽存储器内功能(“存储器内功能”)(FIM)HBM系统100以及HBM的指令集架构(ISA)扩展的系统。HBM系统100支持将另外的计算资源集成在HBM 110中。举例来说,在各种实施例中,HBM系统100使得一些数据计算及移动能够在存储器内执行,且还提供大容量便签(high-capacity scratchpad)。HBM系统100包括连接到GPU 170的至少一个HBM 110。在各种实施例中,HBM 110包括DRAM 120(例如,一个或多个DRAM裸片)及逻辑组件130(例如,逻辑裸片)。在各种实施例中,逻辑组件130包括控制器140、算术逻辑单元(Arithmetic Logic Unit,ALU)150及静态随机存取存储器(StaticRandom Access Memory,SRAM)160,且GPU 170包括HBM控制器180以与HBM110进行接口。
根据各种实施例,控制器140被配置成协调来自GPU 170的指令的执行。所述指令可包括常规指令及FIM指令二者。举例来说,常规指令(例如,传统的加载指令及存储指令,而非高带宽存储器内功能指令)由HBM控制器180发送且由控制器140接收并且以传统方式执行。在其他实例中,控制器140协调存储器内功能(例如,FIM指令)的执行。举例来说,控制器140可执行数据移动操作(例如,加载/存储对指令)。在一些实例中,控制器140可执行原来为多个常规指令的FIM指令。举例来说,控制器140可协调利用ALU 150的计算FIM指令(例如,原子指令及ALU指令)的执行。在这些情形中,控制器140通过从DRAM 120检索数据并将数据(及ALU操作)提供到ALU 150进行处理来协调这些指令的执行。然后将结果存储在DRAM120中或者可将结果返回到GPU 170。在一些实例中,FIM指令包括已与加载或存储指令配成对的一个或多个ALU指令。在另一个实施例中,控制器140还被配置成协调便签读取指令及写入指令的执行。在下文中将详细讨论这些类型的FIM功能中的每一种。
根据各种实施例,ALU 150被配置成用于执行各种计算运算(例如,简单的计算命令)。举例来说,ALU 150可为被配置成用于执行算术运算、逐位运算、移位运算等的32位ALU。举例来说,ALU 150可被配置成执行加法(ADD)运算、减法(SUBTRACT)运算、交换(EXCHANGE)运算、最大值(MAX)运算、最小值(MIN)运算、递增(INCREMENT)运算、递减(DECREMENT)运算、比较和替换(COMPARE-AND-SWAP)运算、与(AND)运算、或(OR)运算及异或(XOR)运算。ALU 150可用于原子运算及非原子运算。在各种实施例中,控制器140提供操作并管理去往ALU 150的数据输入及从ALU 150到DRAM 120的数据输出。在其他实施例中,ALU150能够直接从DRAM 120检索数据及将数据直接存储在DRAM 120中。在其他实施例中,控制器140负责从DRAM 120检索数据并将数据存储在DRAM 120中。
根据各种实施例,SRAM 160被配置为低延迟便签。在一些实施例中,SRAM 160可与DRAM 120共享相同的命令/地址(command/address,CA)接口及数据(Data,DQ)接口,且在其他实施例中,SRAM 160可具有自己的CA接口及DQ接口。在各种实施例中,SRAM 160包括自己的与DRAM120的地址范围不同的地址范围。控制器140可使用传入的读取/写入指令的地址来判断所述请求是否是便签操作。在其他实施例中,GPU 170可将专门指定的便签指令发送到控制器140。当命令利用SRAM 160时,控制器140可改变其定时参数以根据SRAM 160的定时参数(例如,与DRAM 120定时参数相比更快速/延迟更低)进行操作。SRAM 160的使用可由用户(例如,程序员)指定,且SRAM 160中的空间可在运行时进行分配。在操作过程中,便签可以与GPU的1级便签相似的方式运行(例如,提供低延迟存储器)。由于GPU的1级便签通常很小(每个核心为15kB),因此扩展式HBM便签(例如,SRAM 160)会相对于利用DRAM 120而言实现性能的提高。
根据各种实施例,提供FIM ISA来利用HBM 110中可用的添加资源。举例来说,FIMISA可对先前的指令集进行扩展以允许进行包括计算FIM指令(例如,FIM原子指令及FIMALU指令)、数据移动FIM指令及FIM便签指令的操作。每一个FIM指令包括将指令标识为FIM指令的FIM指示符、由HBM执行的一个或多个操作以及数据位置(例如,寄存器、存储器、所提供的常数等)。在一个实施例中,FIM指令可被格式化为:<指示符>.<操作>.<数据位置1><数据位置2>(<designator>.<operation>.<data location 1><data location 2>)。
在各种实施例中,指令可由用户(例如,程序员)、编译器或GPU指定为FIM指令。举例来说,在一些编程语言中,用户可指定操作发生的位置(例如,存储器内,GPU或中央处理器(CPU))或利用何种存储器。在另一个实例中,编译器可被配置成识别可在HBM 110中进行的命令,并且相对于GPU 170而言优先在HBM 110中进行FIM命令。在另一个实例中,GPU 170可分析来源存储器地址及目的地存储器地址以判断是否有FIM指令可用。在一些情形中,GPU 170可分析存储器地址并判断至少一个地址位于GPU高速缓存或其他非HBM存储器中,在这些情形中,将执行正常指令(例如,非FIM指令)。
图2是对来自FIM指令集架构(ISA)的指令进行处理的方块图。
根据各种实施例,GPU 170被配置成向HBM 110发送指令(S200)。GPU 170包括HBM控制器180,HBM控制器180处理请求并将请求发送到HBM 110并对任何返回信息进行处置。在一些实施例中,HBM控制器180还可通过评估FIM指令中的存储器地址的位置来验证FIM指令是合适的。举例来说,当地址位于不同的HBM上或者如果地址中的一者用于GPU 170的高速缓存、本地高速缓存时,FIM指令可能不合适。在一些实施例中,对FIM指令进行验证可在指令被发送到HBM 110之前在较早的GPU流水线阶段中完成。举例来说,在一些实施例中,GPU本地高速缓存控制器可验证FIM指令是合适的。HBM 110在逻辑组件130处接收FIM指令(S210)。控制器140对指令进行处理并对执行进行协调。控制器140可验证指令是FIM指令并确定指令的操作(S220)。举例来说,控制器140将判断指令是否是利用ALU 150的计算指令、是否是移动指令或者是否是便签指令。控制器140接着通过完成指令本身(例如,移动指令)或通过采用必需的逻辑硬件(例如,ALU 150或SRAM 160)来协调指令的执行(S230)。
根据各种实施例,ISA包括计算指令。在各种实施例中,控制器140接收计算指令并在ALU 150上协调所述计算指令的执行。计算指令可包括FIM原子指令及FIM ALU指令。
根据各种实施例,HBM 110被配置成使用FIM ISA处理FIM原子指令。原子指令通常可被分解成三个步骤:从存储器位置读取数据;对数据执行功能(例如,ADD功能、SUBTRACT功能等);并将所得数据写回某个存储器位置。在接收到FIM原子指令时,HBM 110可在内部执行所有三个步骤。为完成指令,在一些实施例中,与传统的原子指令相比,FIM原子指令包括由GPU 170发送到HBM 110的附加信息。举例来说,GPU 170可发送FIM原子指令,所述FIM原子指令包括原子运算、数据类型、目的地寄存器、来源寄存器、参考寄存器(例如,用于比较及交换功能(compare-and-swap functions))、存储器地址及功能类型。
根据各种实施例,控制器140从GPU的HBM控制器180接收FIM原子指令。控制器140读取指令并使用FIM指示符确定所述指令是FIM指令。控制器140使用所述操作来确定指令是FIM原子指令。除了发信号告知所述功能是FIM原子指令之外,所述操作还指示ALU 150要执行的功能的类型(例如,原子加法(atomic add)、原子比较及交换(atomic compare-andswap);原子或(atomic OR)等)以及正在进行操作的数据类型(例如,32位带符号的整数;32位无符号的整数;等等)。控制器140接着从所提供的数据位置读取数据,并将数据与功能一起提供到ALU 150。ALU 150对数据执行功能,并将结果存储在原始数据位置。
在一个实例中,FIM原子指令的一般格式是:fim.原子.<功能>.<数据类型><目的地寄存器><存储器地址><来源寄存器或常数><参考寄存器>(fim.atom.<function>.<datatype><destination register><memory address><source register or constant><reference register>)。表1包括具有示例性值的一些示例性功能。
表1:示例性FIM原子指令
在各种实施例中,FIM指令ISA包括用于FIM ALU指令的指令。由GPU执行的典型操作可能需要伴随的加载指令及存储指令以从存储器拉出必要的数据并对结果进行放置。在一些实施例中,FIM ALU指令可将传统功能加上伴随的加载指令及存储指令压缩成单个FIMALU指令。在一个实例中,FIM ALU指令的一般格式包括FIM指示符、具有ALU操作及成对加载/存储操作的操作;以及至少一个数据位置。举例来说,FIM ALU指令可被格式化成:fim.<功能>.<加载/存储><目的地寄存器><来源寄存器><加载寄存器>(fim.<function>.<load/store><destination register><source register><load register>)。举例来说,ALU指令可与加载指令和/或存储指令配成对,如表2中所示:
表2:示例性FIM ALU加载指令/存储指令
在一个实例中,FIM ALU指令的操作类似于FIM原子指令的操作。举例来说,根据各种实施例,控制器140从GPU的HBM控制器180接收FIM ALU指令。控制器140读取指令并使用FIM指示符确定指令是FIM指令。控制器140使用所述操作来确定指令是FIM ALU指令以及确定ALU 150要执行的功能的类型(例如,加法、交换、MIN、MAX、OR等)。控制器140接着从所提供的数据位置读取数据,并将数据与功能一起提供到ALU150。ALU 150对数据执行功能,并将结果存储在原始数据位置或所指示的数据位置。
在各种实施例中,HBM 110及FIM ISA被配置成用于FIM移动指令。移动指令可被识别为与对应的存储指令配对的加载指令。当加载与存储的地址位于同一HBM内时,所述功能可在存储器内执行。在各种实施例中,可将成对的加载功能与存储功能合并成单个FIM移动指令。表3示出示例性加载/存储指令。
表3:示例性FIM移动指令
在接收到FIM移动指令时,控制器140通过FIM指示符而识别出所述指令是FIM指令,且识别出所述操作是移动操作。控制器140接着从来源地址读取数据并将数据存储在目的地地址中。在各种实施例中,编译器可被配置成识别可被凝聚成单个FIM移动指令(如表3中所示)的成对的加载指令与存储指令。在各种实施例中,GPU 170还可在将指令发送到HBM110之前对移动指令进行分析并判断FIM移动指令是否合适。举例来说,GPU 170(例如,在HBM控制器180处)可分析来源存储器地址及目的地存储器地址并判断这些地址中的一者是否位于GPU高速缓存中。在此实例中,GPU 170将会将指令分离成正常加载指令及存储指令。
在各种实施例中,HBM 110及FIM ISA被配置成将SRAM 160用作低延迟便签。在各种实施例中,控制器140被配置成识别FIM便签指令。如上所述,SRAM 160包括与DRAM 120的地址范围不同的特定地址范围。控制器140被配置成识别请求是对应于DRAM 120存储器地址还是对应于SRAM 160存储器地址。在各种实施例中,ISA包括特定便签命令。举例来说,ISA可包括FIM读取便签命令(例如,FIM.RD_SP)及FIM写入便签命令(例如,FIM.WR_SP)。在此实例中,控制器140可不评估传入命令的存储器地址。
SRAM 160以比DRAM 120低的延迟运行(例如,比DRAM 120快)。因此,便签可使HBM110在数据加载及存储时间方面为不确定的。在各种实施例中,控制器140被配置成通过在执行DRAM存储器相关功能时根据DRAM 120的定时参数运行并在SRAM存储器相关功能(例如,FIM便签指令)期间根据SRAM 160的定时参数运行来协调指令的执行。因此,当接收到FIM便签指令时,控制器140可调整其定时参数来对应于SRAM 160的定时参数并执行FIM读取/写入便签命令。
在各种实施例中,用户对利用SRAM 160作为低延迟便签的数据结构进行定义。一旦用户将数据结构定义为使用便签,编译器便将请求转换成包括指定符(例如,汇编中的llsp),且GPU 170将相应地分配HBM 110中的空间。
因此,本公开的上述实施例提供高带宽存储器(HBM)系统及指令集架构(ISA)。
以上是对示例性实施例的例示,而不应被视为对示例性实施例的限制。尽管已阐述了几个示例性实施例,但是所属领域中的技术人员将容易地理解,在不实质上背离示例性实施例的新颖教示及优点的条件下,在示例性实施例中可进行许多修改。因此,所有这些修改均旨在包含在由权利要求书所界定的示例性实施例的范围内。在权利要求书中,手段加功能条款旨在涵盖在本文中被阐述为执行所述功能的结构,且不仅涵盖结构等效形式而且还涵盖等效结构。因此,应理解,以上是对示例性实施例的例示,而不应被视为仅限于所公开的具体实施例,且对所公开的示例性实施例的修改形式以及其他示例性实施例也旨在包含在随附权利要求书的范围内。本发明概念是由以上权利要求界定,其中权利要求的等效形式包含在本文中。
Claims (25)
1.一种在高带宽存储器系统中处理存储器内命令的方法,所述方法包括:
图形处理单元的高带宽存储器控制器向高带宽存储器发送高带宽存储器内功能指令;
在所述高带宽存储器的逻辑组件处接收所述高带宽存储器内功能指令,其中所述逻辑组件包括:控制器、算术逻辑单元及静态随机存取存储器;以及
所述逻辑组件使用所述控制器、所述算术逻辑单元、或所述静态随机存取存储器中的至少一者、基于所述高带宽存储器内功能指令来协调所述高带宽存储器内功能指令的执行。
2.根据权利要求1所述的方法,其中协调所述高带宽存储器内功能指令的执行包括:
所述控制器将所述高带宽存储器内功能指令识别为计算高带宽存储器内功能指令,其中所述计算高带宽存储器内功能指令包括操作及至少一个数据位置;
所述控制器根据所述至少一个数据位置从所述高带宽存储器的动态随机存取存储器检索至少一个数据;
所述控制器将所述至少一个数据及所述操作提供到所述算术逻辑单元;
所述算术逻辑单元对所述至少一个数据执行所述操作;以及
将所述执行的结果存储在所述动态随机存取存储器中。
3.根据权利要求2所述的方法,其中所述操作包括原子运算及数据类型,且其中所述至少一个数据位置包括目的地寄存器、存储器地址、来源寄存器、常数、或参考寄存器中的至少一者。
4.根据权利要求3所述的方法,其中所述原子运算包括加法功能、减法功能、交换功能、最大值功能、最小值功能、递增功能、递减功能、比较和替换功能、与功能、或功能、异或功能、或非功能中的至少一者。
5.根据权利要求2所述的方法,其中所述操作包括算术逻辑单元操作及动态随机存取存储器存取操作,且其中所述至少一个数据位置包括目的地寄存器及至少一个来源寄存器。
6.根据权利要求5所述的方法,其中所述动态随机存取存储器存取操作包括成对加载指令或成对存储指令。
7.根据权利要求1所述的方法,其中协调所述高带宽存储器内功能指令的执行还包括:
所述控制器将所述高带宽存储器内功能指令识别为高带宽存储器内功能移动指令,其中所述高带宽存储器内功能移动指令包括来源寄存器及目的地寄存器;
所述控制器根据所述来源寄存器从所述高带宽存储器的动态随机存取存储器检索至少一个数据;以及
所述控制器将所述至少一个数据在所述目的地寄存器处存储在所述动态随机存取存储器中。
8.根据权利要求1所述的方法,其中协调所述高带宽存储器内功能指令的执行还包括:
所述控制器将所述高带宽存储器内功能指令识别为高带宽存储器内功能便签指令,其中所述高带宽存储器内功能便签指令包括来源寄存器及目的地寄存器中的至少一者;
将所述控制器的定时参数从动态随机存取存储器定时参数调整到静态随机存取存储器定时参数;以及
所述控制器根据所述静态随机存取存储器定时参数对所述静态随机存取存储器执行所述高带宽存储器内功能便签指令。
9.根据权利要求1所述的方法,还包括:当所述高带宽存储器内功能指令中所包含的至少一个数据位置包括图形处理单元高速缓存时,所述高带宽存储器控制器协调所述高带宽存储器内功能指令在所述图形处理单元上的执行。
10.一种高带宽存储器,所述高带宽存储器包括:
动态随机存取存储器;以及
逻辑组件,包括:控制器、算术逻辑单元及静态随机存取存储器,其中所述逻辑组件被配置成执行指令,所述指令在被所述逻辑组件执行时,使所述逻辑组件:
所述逻辑组件使用所述动态随机存取存储器、所述控制器、所述算术逻辑单元、或所述静态随机存取存储器中的至少一者、基于高带宽存储器内功能指令来协调高带宽存储器内功能指令的执行。
11.根据权利要求10所述的高带宽存储器,其中协调所述高带宽存储器内功能指令的执行包括:
所述控制器将所述高带宽存储器内功能指令识别为计算高带宽存储器内功能指令,其中所述计算高带宽存储器内功能指令包括操作及至少一个数据位置;
所述控制器根据所述至少一个数据位置从所述动态随机存取存储器检索至少一个数据;
所述控制器将所述至少一个数据及所述操作提供到所述算术逻辑单元;
所述算术逻辑单元对所述至少一个数据执行所述操作;以及
将所述执行的结果存储在所述动态随机存取存储器中。
12.根据权利要求11所述的高带宽存储器,其中所述操作包括原子运算及数据类型,且其中所述至少一个数据位置包括目的地寄存器、存储器地址、来源寄存器、常数、或参考寄存器中的至少一者。
13.根据权利要求12所述的高带宽存储器,其中所述原子运算包括加法功能、减法功能、交换功能、最大值功能、最小值功能、递增功能、递减功能、比较和替换功能、与功能、或功能、异或功能、或非功能中的至少一者。
14.根据权利要求11所述的高带宽存储器,其中所述操作包括算术逻辑单元操作及动态随机存取存储器存取操作,且其中所述至少一个数据位置包括目的地寄存器及至少一个来源寄存器。
15.根据权利要求14所述的高带宽存储器,其中所述动态随机存取存储器存取操作包括成对加载指令或成对存储指令。
16.根据权利要求10所述的高带宽存储器,其中协调所述高带宽存储器内功能指令的执行还包括:
所述控制器将所述高带宽存储器内功能指令识别为高带宽存储器内功能移动指令,其中所述高带宽存储器内功能移动指令包括来源寄存器及目的地寄存器;
所述控制器根据所述来源寄存器从所述动态随机存取存储器检索至少一个数据;以及
所述控制器将所述至少一个数据在所述目的地寄存器处存储在所述动态随机存取存储器中。
17.根据权利要求10所述的高带宽存储器,其中协调所述高带宽存储器内功能指令的执行还包括:
所述控制器将所述高带宽存储器内功能指令识别为高带宽存储器内功能便签指令,其中所述高带宽存储器内功能便签指令包括来源寄存器及目的地寄存器中的至少一者;
将所述控制器的定时参数从动态随机存取存储器定时参数调整到静态随机存取存储器定时参数;以及
所述控制器根据所述静态随机存取存储器定时参数对所述静态随机存取存储器执行所述高带宽存储器内功能便签指令。
18.一种高带宽存储器系统,包括:
高带宽存储器,包括:
动态随机存取存储器裸片,包括动态随机存取存储器;以及
逻辑裸片,包括控制器、算术逻辑单元及静态随机存取存储器;以及
图形处理单元存储器控制器,与所述高带宽存储器分开,且被配置成向所述控制器发送指令;
其中所述控制器被配置成接收所述指令,并在所述指令是常规指令时将所述指令转发到所述动态随机存取存储器裸片上的所述动态随机存取存储器以及在所述指令是高带宽存储器内功能指令时协调所述指令的执行;且
其中所述指令的执行是使用所述控制器、所述算术逻辑单元、及所述静态随机存取存储器中的至少一者来实行。
19.根据权利要求18所述的高带宽存储器系统,其中协调所述高带宽存储器内功能指令的执行包括:
所述控制器将所述高带宽存储器内功能指令识别为计算高带宽存储器内功能指令,其中所述计算高带宽存储器内功能指令包括操作及至少一个数据位置;
所述控制器根据所述至少一个数据位置从所述动态随机存取存储器检索至少一个数据;
所述控制器将所述至少一个数据及所述操作提供到所述算术逻辑单元;
所述算术逻辑单元对所述至少一个数据执行所述操作;以及
将所述执行的结果存储在所述动态随机存取存储器中。
20.根据权利要求19所述的高带宽存储器系统,其中所述操作包括原子运算及数据类型,且其中所述至少一个数据位置包括目的地寄存器、存储器地址、来源寄存器、常数、或参考寄存器中的至少一者。
21.根据权利要求20所述的高带宽存储器系统,其中所述原子运算包括加法功能、减法功能、交换功能、最大值功能、最小值功能、递增功能、递减功能、比较和替换功能、与功能、或功能、异或功能、或非功能中的至少一者。
22.根据权利要求19所述的高带宽存储器系统,其中所述操作包括算术逻辑单元操作及动态随机存取存储器存取操作,且其中所述至少一个数据位置包括目的地寄存器及至少一个来源寄存器。
23.根据权利要求22所述的高带宽存储器系统,其中所述动态随机存取存储器存取操作包括成对加载指令或成对存储指令。
24.根据权利要求18所述的高带宽存储器系统,其中协调所述高带宽存储器内功能指令的执行还包括:
所述控制器将所述高带宽存储器内功能指令识别为高带宽存储器内功能移动指令,其中所述高带宽存储器内功能移动指令包括来源寄存器及目的地寄存器;
所述控制器根据所述来源寄存器从所述动态随机存取存储器检索至少一个数据;
所述控制器将所述至少一个数据在所述目的地寄存器处存储在所述动态随机存取存储器中。
25.根据权利要求18所述的高带宽存储器系统,其中协调所述高带宽存储器内功能指令的执行还包括:
所述控制器将所述高带宽存储器内功能指令识别为高带宽存储器内功能便签指令,其中所述高带宽存储器内功能便签指令包括来源寄存器及目的地寄存器中的至少一者;
将所述控制器的定时参数从动态随机存取存储器定时参数调整到静态随机存取存储器定时参数;以及
所述控制器根据所述静态随机存取存储器定时参数对所述静态随机存取存储器执行所述高带宽存储器内功能便签指令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762573390P | 2017-10-17 | 2017-10-17 | |
US62/573,390 | 2017-10-17 | ||
US15/854,557 | 2017-12-26 | ||
US15/854,557 US10866900B2 (en) | 2017-10-17 | 2017-12-26 | ISA extension for high-bandwidth memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109669887A true CN109669887A (zh) | 2019-04-23 |
Family
ID=66097486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810980551.7A Pending CN109669887A (zh) | 2017-10-17 | 2018-08-27 | 高带宽存储器、高带宽存储器系统及其命令处理方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10866900B2 (zh) |
JP (1) | JP2019075101A (zh) |
KR (1) | KR102289095B1 (zh) |
CN (1) | CN109669887A (zh) |
TW (1) | TWI750406B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11561731B2 (en) | 2019-12-26 | 2023-01-24 | Micron Technology, Inc. | Truth table extension for stacked memory systems |
KR20220113535A (ko) * | 2019-12-26 | 2022-08-12 | 마이크론 테크놀로지, 인크. | 적층된 메모리 시스템을 위한 호스트 기술 |
TW202141290A (zh) * | 2020-01-07 | 2021-11-01 | 韓商愛思開海力士有限公司 | 記憶體中處理(pim)系統和pim系統的操作方法 |
US11829760B2 (en) * | 2020-01-07 | 2023-11-28 | SK Hynix Inc. | Processing-in-memory device and processing-in-memory system including the same |
US11983508B2 (en) | 2020-01-07 | 2024-05-14 | SK Hynix Inc. | Processing-in-memory (PIM) system and operating methods of the PIM system |
US11635911B2 (en) * | 2020-01-07 | 2023-04-25 | SK Hynix Inc. | Processing-in-memory (PIM) system and operating methods of the PIM system |
KR20210093521A (ko) * | 2020-01-20 | 2021-07-28 | 삼성전자주식회사 | 고대역폭 메모리 및 이를 포함하는 시스템 |
US11281554B2 (en) * | 2020-03-17 | 2022-03-22 | Samsung Electronics Co., Ltd. | System and method for in-memory computation |
KR20220031793A (ko) | 2020-09-03 | 2022-03-14 | 삼성전자주식회사 | 메모리 장치, 그것을 포함하는 메모리 시스템, 그것을 제어하는 제어기 및 그것의 동작 방법 |
EP4024222A1 (en) * | 2021-01-04 | 2022-07-06 | Imec VZW | An integrated circuit with 3d partitioning |
CN115469800A (zh) | 2021-06-10 | 2022-12-13 | 三星电子株式会社 | 数据处理系统以及用于访问异构存储器系统的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5953738A (en) * | 1997-07-02 | 1999-09-14 | Silicon Aquarius, Inc | DRAM with integral SRAM and arithmetic-logic units |
CN102640226A (zh) * | 2009-10-21 | 2012-08-15 | 美光科技公司 | 具有内部处理器的存储器及控制存储器存取的方法 |
CN106662980A (zh) * | 2014-05-29 | 2017-05-10 | 桑迪士克科技有限责任公司 | 用于非易失性存储器中的分布式计算的系统和方法 |
US20170255390A1 (en) * | 2016-03-01 | 2017-09-07 | Samsung Electronics Co., Ltd. | 3-d stacked memory with reconfigurable compute logic |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325513A (en) * | 1987-02-23 | 1994-06-28 | Kabushiki Kaisha Toshiba | Apparatus for selectively accessing different memory types by storing memory correlation information in preprocessing mode and using the information in processing mode |
US5619066A (en) * | 1990-05-15 | 1997-04-08 | Dallas Semiconductor Corporation | Memory for an electronic token |
JPH0425961A (ja) * | 1990-05-22 | 1992-01-29 | Toshiba Corp | 共有データ更新方式 |
JPH0845269A (ja) | 1994-07-27 | 1996-02-16 | Hitachi Ltd | 半導体記憶装置 |
US6438670B1 (en) * | 1998-10-02 | 2002-08-20 | International Business Machines Corporation | Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device |
US6240498B1 (en) * | 1999-01-06 | 2001-05-29 | International Business Machines Corporation | Object oriented storage pool apparatus and method |
DE60029270T2 (de) | 1999-04-16 | 2007-07-05 | Infineon Technologies North America Corp., San Jose | Dynamische Rekonfiguration des Cache-Speichers eines Mikrokontrollers |
US6430655B1 (en) | 2000-01-31 | 2002-08-06 | Mips Technologies, Inc. | Scratchpad RAM memory accessible in parallel to a primary cache |
US6792599B2 (en) * | 2001-10-15 | 2004-09-14 | Intel Corporation | Method and apparatus for an atomic operation in a parallel computing environment |
US7581079B2 (en) * | 2005-03-28 | 2009-08-25 | Gerald George Pechanek | Processor composed of memory nodes that execute memory access instructions and cooperate with execution nodes to execute function instructions |
GB0519984D0 (en) | 2005-09-30 | 2005-11-09 | Texas Instruments Ltd | Configuration interface |
CN101300849B (zh) * | 2005-11-01 | 2011-07-06 | 三叉微系统(远东)有限公司 | 数据处理系统 |
US20110131381A1 (en) * | 2009-11-27 | 2011-06-02 | Advanced Micro Devices, Inc. | Cache scratch-pad and method therefor |
US9075764B2 (en) | 2010-08-11 | 2015-07-07 | Apple Inc. | Multiprocessor system-on-a-chip for machine vision algorithms |
JP5887989B2 (ja) * | 2012-02-24 | 2016-03-16 | 富士ゼロックス株式会社 | 情報処理装置、制御装置および画像形成装置 |
JP2013242823A (ja) * | 2012-05-23 | 2013-12-05 | Toshiba Corp | 情報処理装置、情報処理方法および制御プログラム |
US20140040532A1 (en) | 2012-08-06 | 2014-02-06 | Advanced Micro Devices, Inc. | Stacked memory device with helper processor |
US9734079B2 (en) | 2013-06-28 | 2017-08-15 | Intel Corporation | Hybrid exclusive multi-level memory architecture with memory management |
US11074169B2 (en) | 2013-07-03 | 2021-07-27 | Micron Technology, Inc. | Programmed memory controlled data movement and timing within a main memory device |
JP2015064676A (ja) * | 2013-09-24 | 2015-04-09 | 株式会社東芝 | 情報処理装置、半導体装置、情報処理方法およびプログラム |
US9286216B2 (en) * | 2014-01-16 | 2016-03-15 | Carnegie Mellon University | 3DIC memory chips including computational logic-in-memory for performing accelerated data processing |
US9823925B2 (en) * | 2014-03-28 | 2017-11-21 | Intel Corporation | Instruction and logic for a logical move in an out-of-order processor |
US9836277B2 (en) | 2014-10-01 | 2017-12-05 | Samsung Electronics Co., Ltd. | In-memory popcount support for real time analytics |
US11080064B2 (en) * | 2014-10-28 | 2021-08-03 | International Business Machines Corporation | Instructions controlling access to shared registers of a multi-threaded processor |
US20160239278A1 (en) * | 2015-02-16 | 2016-08-18 | Advanced Micro Devices, Inc. | Generating a schedule of instructions based on a processor memory tree |
TWI518585B (zh) * | 2015-05-18 | 2016-01-21 | 國立成功大學 | 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法 |
US9698790B2 (en) * | 2015-06-26 | 2017-07-04 | Advanced Micro Devices, Inc. | Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces |
US9997232B2 (en) * | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US10853904B2 (en) * | 2016-03-24 | 2020-12-01 | Advanced Micro Devices, Inc. | Hierarchical register file at a graphics processing unit |
US10467092B2 (en) | 2016-03-30 | 2019-11-05 | Qualcomm Incorporated | Providing space-efficient storage for dynamic random access memory (DRAM) cache tags |
US10552152B2 (en) * | 2016-05-27 | 2020-02-04 | Arm Limited | Method and apparatus for scheduling in a non-uniform compute device |
US10503641B2 (en) * | 2016-05-31 | 2019-12-10 | Advanced Micro Devices, Inc. | Cache coherence for processing in memory |
EP3306479A1 (en) * | 2016-10-06 | 2018-04-11 | Stichting IMEC Nederland | Memory structure comprising scratchpad memory |
US10325344B2 (en) * | 2017-04-17 | 2019-06-18 | Intel Corporation | Efficient merging of atomic operations at computing devices |
-
2017
- 2017-12-26 US US15/854,557 patent/US10866900B2/en active Active
-
2018
- 2018-07-12 KR KR1020180080925A patent/KR102289095B1/ko active IP Right Grant
- 2018-08-27 CN CN201810980551.7A patent/CN109669887A/zh active Pending
- 2018-08-27 TW TW107129831A patent/TWI750406B/zh active
- 2018-09-18 JP JP2018173507A patent/JP2019075101A/ja active Pending
-
2020
- 2020-12-14 US US17/121,488 patent/US11556476B2/en active Active
-
2022
- 2022-12-14 US US18/081,488 patent/US11940922B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5953738A (en) * | 1997-07-02 | 1999-09-14 | Silicon Aquarius, Inc | DRAM with integral SRAM and arithmetic-logic units |
CN102640226A (zh) * | 2009-10-21 | 2012-08-15 | 美光科技公司 | 具有内部处理器的存储器及控制存储器存取的方法 |
CN106662980A (zh) * | 2014-05-29 | 2017-05-10 | 桑迪士克科技有限责任公司 | 用于非易失性存储器中的分布式计算的系统和方法 |
US20170255390A1 (en) * | 2016-03-01 | 2017-09-07 | Samsung Electronics Co., Ltd. | 3-d stacked memory with reconfigurable compute logic |
Also Published As
Publication number | Publication date |
---|---|
US20210096999A1 (en) | 2021-04-01 |
KR20190043072A (ko) | 2019-04-25 |
US20230119291A1 (en) | 2023-04-20 |
KR102289095B1 (ko) | 2021-08-12 |
US20190114265A1 (en) | 2019-04-18 |
US11940922B2 (en) | 2024-03-26 |
JP2019075101A (ja) | 2019-05-16 |
US10866900B2 (en) | 2020-12-15 |
TW201917567A (zh) | 2019-05-01 |
TWI750406B (zh) | 2021-12-21 |
US11556476B2 (en) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109669887A (zh) | 高带宽存储器、高带宽存储器系统及其命令处理方法 | |
US8364739B2 (en) | Sparse matrix-vector multiplication on graphics processor units | |
US9424009B2 (en) | Handling pointers in program code in a system that supports multiple address spaces | |
US8484438B2 (en) | Hierarchical bloom filters for facilitating concurrency control | |
JP5906325B2 (ja) | トランザクションをサポートするコンピューターアーキテクチャにおけるコード特殊化のための例外を用いるプログラム及びコンピューティングデバイス | |
CN101652747B (zh) | 并行dll树初始化 | |
US10353717B2 (en) | Build-time memory management for multi-core embedded system | |
US11386975B2 (en) | Three-dimensional stacked memory device and method | |
CN106233258B (zh) | 可变宽度纠错 | |
US8935475B2 (en) | Cache management for memory operations | |
JP5562394B2 (ja) | Hdl環境のためのグローバルクロックハンドラーオブジェクト | |
KR102653014B1 (ko) | 인-메모리-컴퓨팅에 대한 데이터 배치를 위한 방법 및 상기 방법이 적용된 메모리 모듈 | |
US10209990B2 (en) | Conditional atomic operations in single instruction multiple data processors | |
CN105103138B (zh) | 用于实时应用的嵌入式存储器管理方案 | |
US20240103860A1 (en) | Predicates for Processing-in-Memory | |
US9361103B2 (en) | Store replay policy | |
CN110249308A (zh) | 待决加载和存储的单独跟踪 | |
CN111309384B (zh) | 针对硬件加速器的软硬件交互方法、装置和存储介质 | |
CN115878185A (zh) | 指令生成方法、装置及电子设备 | |
CN107329705A (zh) | 一种针对异构存储的Shuffle方法 |
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 |