CN111279322B - 一种处理系统和在3d堆栈存储器中混写的方法 - Google Patents

一种处理系统和在3d堆栈存储器中混写的方法 Download PDF

Info

Publication number
CN111279322B
CN111279322B CN201880069807.7A CN201880069807A CN111279322B CN 111279322 B CN111279322 B CN 111279322B CN 201880069807 A CN201880069807 A CN 201880069807A CN 111279322 B CN111279322 B CN 111279322B
Authority
CN
China
Prior art keywords
memory
die
address
stacked
stack
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.)
Active
Application number
CN201880069807.7A
Other languages
English (en)
Other versions
CN111279322A (zh
Inventor
约翰·吴
迈克尔·K·西劳拉
拉塞尔·施莱伯
塞缪尔·纳夫齐格
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN111279322A publication Critical patent/CN111279322A/zh
Application granted granted Critical
Publication of CN111279322B publication Critical patent/CN111279322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • 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/0613Improving I/O performance in relation to throughput
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory
    • G06F2212/2532Centralized memory comprising a plurality of modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Semiconductor Memories (AREA)
  • Memory System (AREA)

Abstract

一种处理系统[100]包括计算管芯[102]和与所述计算管芯堆叠在一起的堆栈存储器[104]。所述堆栈存储器包括第一存储器管芯[104B]和堆叠在所述第一存储器管芯顶部上的第二存储器管芯[104A]。使用单个存储器地址的并行访问指向所述第一存储器管芯和所述第二存储器管芯的不同存储体[206、208]。所述并行访问的所述单个存储器地址被混写以访问在不同的物理位置处的所述第一存储器管芯和所述第二存储器管芯。

Description

一种处理系统和在3D堆栈存储器中混写的方法
技术领域
本发明涉及计算机领域,具体涉及一种计算机处理系统和在3D堆栈存储器中混写的方法。
背景技术
三维(3D)电路集成通常包括水平和/或竖直堆叠的装置,以提供堆栈管芯之间的改善通信并减少堆栈装置所占据的面积。例如,可以在存储器装置中利用耦接的各层存储器元件(称为3D堆栈存储器,或堆栈存储器)。通过用3D集成使处理器与存储器之间的互连件的数目不再受管芯外引脚计数的限制,多个线程可并行访问堆栈存储器,以为各种计算操作提供更高的带宽。
发明内容
本发明公开了一种处理系统,所述处理系统包括计算管芯以及堆栈存储器,所述堆栈存储器与所述计算管芯堆叠在一起,其中所述堆栈存储器包括第一存储器管芯和堆叠在所述第一存储器管芯顶部上的第二存储器管芯,并且进一步其中使用单个存储器地址的并行访问被混写以并行访问所述第一存储器管芯的第一部分和所述第二存储器管芯的第二部分,所述第二部分从同一存储器管芯上的所述第一部分偏移。
本发明还公开了一种集成电路(IC)封装,包括管芯堆栈的存储器装置,所述管芯堆栈的存储器装置包括多个堆栈存储器管芯,其中使用单个存储器地址的并行访问被混写以访问在不同物理位置处的所述多个堆栈存储器管芯,所述不同的物理位置在同一存储芯片上相对彼此偏移。
本发明还公开了一种在堆栈存储器处进行地址混写的方法,所述方法包括响应于接收到使用单个存储器地址的并行访问请求,混写所述单个存储器地址以并行访问管芯堆栈的存储器的第一存储器管芯的第一部分和第二存储器管芯的第二部分,所述第二部分从同一存储器管芯上的所述第一部分偏移。
附图说明
通过参考附图,可更好地理解本公开,并且本公开的许多特征和优点对本领域的技术人员来说变得显而易见。在不同附图中使用相同的参考符号来表示类似或等同的项。
图1是根据一些实施方案采用在堆栈存储器中的指数混写的处理系统的框图。
图2是根据一些实施方案的具有不平衡热生成的示例性堆栈存储器配置的框图。
图3是根据一些实施方案的使用地址混写来实现热平衡的示例性堆栈存储器配置的框图。
图4是示出根据一些实施方案的使用地址混写来实现热平衡的另一示例行堆栈存储器配置的框图。
图5是根据一些实施方案在堆栈存储器处进行地址混写的方法的流程图。
具体实施方式
存储器带宽和延迟有时是处理系统的性能瓶颈。这些性能因素可以通过使用堆栈存储器来改善,所述堆栈存储器经由使用例如硅通孔(TSV)将多层堆栈存储器互连来提供增加的带宽和减少的装置内。然而,与堆栈存储器相关联的热问题通常是3D存储器堆栈的最大可接受高度的限制因素,从而限制了处理单元可用的存储器容量,并且不利地影响了所提供的存储器管芯的正确操作。例如,在集成电路中的处理器核心在正常操作期间消耗功率并生成热量,所述热量不利地影响相邻的存储器装置的性能。较高的温度通过导致更频繁的刷新周期,从而增加功率消耗而有助于存储器性能的劣化。堆栈存储器的堆叠布置进一步加剧了散热问题,因为多个生成热量的管芯彼此紧邻并且必须共享散热器。存储器,并且特别是3D堆栈存储器在受益于用于可靠且可预测的操作的温度调节的温度范围内操作。缩小管芯大小和堆叠存储器管芯以允许增大的电路部件/存储器密度进一步增加了维持用于处理器的安全且高效操作的温度的挑战。因此,改善的从3D堆栈存储器的散热通过降低存储器的温度来提高存储器的可靠性。
图1至图5说明了用于在堆栈存储器中采用地址混写的技术。在各种实施方案中,处理系统包括堆叠在计算管芯的顶部上的3D存储器。在一些实施方案中,计算管芯包括各种计算单元,诸如CPU、GPU等等。堆栈存储器包括第一存储器管芯和堆叠在所述第一存储器管芯顶部上的第二存储器管芯。基于使用单个存储器地址(例如,来自计算管芯)的并行存储器访问请求,所述单个存储器地址被混写为使得第一存储器管芯和第二存储器管芯被在不同的物理位置处访问。以这种方式,虽然存储器管芯以相同的存储器地址寻址,但是被访问的各个存储器管芯内的物理位置在物理上彼此偏移。因此,来自存储器存取操作的热量生成被分布以减少来自对存储器管芯的局部部分的重复访问的热点产生(hotspotting)。
图1示出了根据一些实施方案采用在堆栈存储器中的指数混写的处理系统100的框图。处理系统100通常被配置为执行指令集,被组织为计算机程序,以执行用于电子装置的操作。因此,处理系统100可被结合到各种电子装置,包括台式或膝上型计算机、服务器、平板电脑、智能电话、游戏控制台等的任一者中。为了支持计算机程序的执行,处理系统100包括一个或多个计算管芯102,以及存储器104。在图1所描述的示例中,存储器104是静态随机存取存储器(SRAM),所述SRAM通常被配置为响应于来自计算管芯102的处理器的请求存储并检索数据。如图1所示,计算管芯102和存储器104被以堆栈管芯配置布置,其中存储器104位于以竖直堆叠管芯布置进行布置的一个或多个单独的存储器管芯(例如,存储器管芯104A和104B)处,并且经由硅通孔(TSV)106或其他类似的管芯间互连件连接到计算管芯。
因此,存储器管芯104A和104B形成了包括一个或多个耦合的存储器管芯层、存储器封装或其他存储器元件的3D堆栈存储器104。在一些实施方案中,堆栈存储器104是竖直堆叠的,而在其他实施方案中,堆栈存储器104是水平(诸如并排)堆叠的,或者以其他方式包含耦合在一起的存储器元件。尽管在此是在SRAM的情境下描述的,但是在其他实施方案中,堆栈存储器装置或系统包括具有多个动态随机存取存储器(DRAM)或其他存储器技术管芯层的存储器装置。
在一个实施方案中,计算管芯102是具有多个执行核心108以支持用于各种工作负载的指令的执行的多核处理器。在一些实施方案中,计算管芯102包括未在图1处示出的附加模块,以促进指令的执行,所述附加模块包括一个或多个附加的处理单元,诸如一个或多个中央处理单元(CPU)、GPU、一个或多个数字信号处理器等。此外,在各种实施方案中,计算管芯102包括存储器和输入/输出接口模块,诸如北桥和南桥、用于为处理单元提供高速缓存和其他支持存储器结构的附加存储器等。
虽然图1示出了计算管芯102耦合在一个或多个存储器管芯层104A和104B的堆栈存储器104下方的具体实施,但是实施方案不限于该布置。例如,在一些实施方案中,计算管芯102定位为与堆栈存储器104相邻,并且因此以并排布置耦合。在该图示中,存储器管芯层包括两个存储器管芯层,这些层是第一存储器管芯层104A和第二存储器管芯层104B。然而,实施方案不限于堆栈存储器104中任何特定数目的存储器管芯层,并且其他实施方案包括更多或更少数目的存储器管芯层。
堆栈存储器104允许对多个存储器管芯层进行并行访问,以实现用于各种存储器访问和/或计算操作的增加的带宽。例如,在图1的实施方案中,通过对同一存储器地址进行寻址访问,可同时访问存储器管芯104A和104B两者,并且其中每个存储器管芯提供一半的接口。应该认识到,对于每次存储器访问,不会访问存储器管芯104A和104B内的每个单独的存储体。相反,存储器访问被寻址到特定的存储体(或存储器管芯的其他宏区域,具体取决于访问粒度)。在该类型的存储器访问方案下,出现了重复访问存储器管芯104A和104B的特定存储体的访问模式,从而导致不平衡的热生成。
例如,图2是根据一些实施方案的具有不平衡热生成的示例性堆栈存储器配置的框图。堆栈存储器204包括具有相同配置的两个存储器管芯204A和204B。特别地,每个存储器管芯包括将存储器管芯分成两半的第一存储体206和第二存储体208。在该实施方案中,单个位值确定是否访问了存储器管芯左侧上的第一存储体206,或者是否访问了存储器管芯右侧上的第二存储体208。例如,位值0访问第一存储体206,并且位值1访问第二存储体208。位值为1的重复访问导致仅访问存储器管芯204A和204B的第二存储体208。因此,来自存储器存取操作的热生成将被限制在被存取的局部区域(即,存储器管芯204A和204B的右侧),从而导致不平衡的热生成和热耗散问题,因为由存储器管芯所产生的任何热两需要通过堆栈存储器(例如,图1的堆栈存储器104)向上传播以被耗散。
现在参照图3,示出了根据一些实施方案的使用地址混写来实现热平衡的示例性堆栈存储器配置的框图。堆栈存储器304包括具两个存储器管芯304A和304B。每个存储器管芯包括将存储器管芯分成两半的第一存储体306和第二存储体308。通过为对存储器管芯304A和304B进行并行访问而混写地址,在存储器管芯304A和304B处访问的存储器阵列的物理位置被改变为彼此偏移。如本文所用的,“混写”是指为了访问不同的物理位置而将存储器地址的各个位置换、换位或以其他方式重排成不同的布置。
在一个实施方案中,单个位值确定是否访问了存储器管芯左侧上的第一存储体306,或者是否访问了存储器管芯右侧上的第二存储体308。例如,存储器地址的最后一位(最低有效位)的位值0导致对第一存储体306的访问,并且存储器地址的最后一位的位值1导致对第二存储体308的访问。如图3所示,在以位值1对存储器管芯304A和304B进行并行存取期间,存储器管芯304A接收位值1,并因此存取第二存储体308。然而,位值被混写用于存储器管芯304B,使得位值0被接收,并且存储器304B处的第一存储体306被访问。尽管存储器管芯304A和304B都用相同的位值1来寻址,但是被访问的存储体的物理位置彼此偏移。因此,与图2的示例(其中来自存储器访问操作的热生成被局限于堆栈存储器的右侧)相反,图3的实施方案实现了存储器管芯304A和304B的左侧与右侧之间的热平衡。
各种实施方案利用地址转换数据结构和逻辑以在堆栈存储器的各种存储器管芯之间混写地址。在一个实施方案中,在将位值发送到存储器管芯之前执行地址混写。例如,在一些实施方案中,在计算管芯(例如,图1的计算管芯102)的存储器控制器(未示出)处执行混写。在另一个实施方案中,将相同的位值地址发送到存储器管芯304A和304B两者,并且在访问每个存储器管芯内的对应位置之前在本地执行地址混写。例如,在一些实施方案中,利用存储器管芯304A和304B处的本地查找表(未示出)来进行混写。在一些实施方案中,使用本地查找表来对接收的位值进行位翻转以执行地址混写。
在另一个实施方案中,不是执行地址混写,而是在堆栈存储器中利用具有交替配置的存储器管芯。例如,参考图2,不是具有相同的配置,而是用相同的位值地址对存储器管芯204A和204B进行寻址,将导致对不同存储体的访问。例如,位值0访问存储器管芯204A的第一存储体206,并且位值1访问存储器管芯204A的第二存储体208。相反,存储器管芯204B的配置被翻转,使得接收到的位值0访问存储器管芯204B的第二存储体208,并且位值1访问存储器管芯204B的第一存储体206。
本领域的技术人员将认识到,尽管为了便于讨论,图2和图3的示例示出了在单个位值的情况下进行混写(以确定将访问存储器管芯的哪一半),但是在其他实施方案中在不脱离本公开的范围的情况下,将地址混写应用于各种访问粒度。例如,在一些实施方案中,执行混写以在并行访问多个存储器管芯期间访问不同物理位置处的宏页面(即,通常大于典型的存储器页面),而不是本文所讨论的高速缓存块粒度。在其他实施方案中,当在存储器管芯处接收到单个地址时,执行混写以在并行访问多个存储器管芯期间访问不同物理位置处的单独高速缓存行。
在其它实施方案中,位值指示要访问存储器管芯的哪个象限。例如,图4是示出根据一些实施方案的使用地址混写来实现热平衡的另一示例行堆栈存储器配置的框图。堆栈存储器404包括具有相同配置的两个存储器管芯404A和404B。特别地,每个存储器管芯包括将存储器管芯分成多个象限的第一存储体406、第二存储体408、第三存储体410和第四存储体412。在该实施方案中,两位数值确定访问存储器管芯的哪个象限。例如,位值00访问第一存储体406,位值01访问第二存储体408,位值10访问第三存储体410,并且位值11访问第四存储体412。
如图4所示,在以位值01对存储器管芯404A和404B进行并行存取期间,存储器管芯404A接收位值01,并因此存取第二存储体408。然而,位值被混写用于存储器管芯404B,使得位值10被接收,并且存储器404B处的第三存储体410被访问。尽管存储器管芯404A和404B都用相同的位值01来寻址,但是被访问的存储体的物理位置彼此物理地偏移。因此,图4的实施方案实现了存储器管芯404A和404B的左侧与右侧之间的热平衡,并且还提供了用于热平衡的改进的粒度级别。
图5是根据一些实施方案在堆栈存储器处进行地址混写的方法500的流程图。方法500是针对图1的处理系统100处的示例性具体实施描述的。在框502处,计算管芯102基于单个存储器地址发起对堆栈存储器104的两个或更多个存储器管芯的并行访问。在框504处,在访问两个或更多个存储器管芯之前将所述单个存储器地址混写。如上所述,在一些实施方案中,在将位值发送到存储器管芯之前,在计算管芯102的存储器控制器(未示出)处执行存储器地址混写。在其它实施方案中,将相同的位值地址发送到存储器管芯,并且在访问每个存储器管芯内的对应位置之前在本地执行地址混写。
在框506处,基于经混写的地址,堆栈存储器104的两个或更多个存储器管芯中的每一个相对于彼此在不同的物理位置处被访问。如上面所解释的,经混写的地址指示将要存取存储器管芯的那些部分。在一些实施方案中,执行混写以访问在不同的物理位置处的宏页面(即,通常大于典型的存储器页面),访问不同的存储器块、高速缓存行/列等。以这种方式,使用单个存储器地址对多个存储器管芯的并行访问可以被定向为访问每个管芯上的不同物理位置。通过改善存储器访问操作期间产生的热量的热平衡,可以减少堆栈存储器内的局部热点。因此,堆栈存储器能够更有效地传导热能至例如散热器以进行耗散,这改善了实施堆栈存储器的处理系统的整体处理和功率效率。
在第一方面中,一种处理系统包括计算管芯;以及堆栈存储器,所述堆栈存储器与所述计算管芯堆叠在一起,其中所述堆栈存储器包括第一存储器管芯和堆叠在所述第一存储器管芯顶部上的第二存储器管芯,并且进一步其中使用单个存储器地址的并行访问被混写以访问在不同物理位置处的所述第一存储器管芯和所述第二存储器管芯。
在第一方面的一个实施方案中,所述第一存储器管芯和所述第二存储器管芯包括相同的电路配置。在一个特定实施方案中,使用所述单个存储器地址的所述并行访问指向所述第一存储器管芯和所述第二存储器管芯的不同存储体。在另一实施方案中,处理系统包括在所述计算管芯处的存储器控制器,其中所述存储器控制器在对所述堆栈存储器进行寻址之前混写所述单个存储器地址以生成多个位值。
在第一方面的另一实施方案中,所述第一存储器管芯和所述第二存储器管芯都接收所述单个存储器地址,并且进一步其中所述第二存储器管芯基于本地查找表来混写所述单个存储器地址。在一个特定实施方案中,所述第二存储器管芯位基于所述本地查找表使所述接收的单个存储器地址发生位翻转。在另一实施方案中,堆栈存储器包括多层静态随机存取存储器(SRAM)。
在第二方面中,所述集成电路(IC)封装包括管芯堆栈的存储器装置,所述管芯堆栈的存储器装置包括多个堆栈存储器管芯,其中使用单个存储器地址的并行访问被混写以访问在不同物理位置处的所述多个堆栈存储器管芯。
在第二方面的一个实施方案中,所述多个堆栈存储器管芯中的每个堆栈存储器管芯包括相同的电路配置。在一个特定实施方案中,使用所述单个存储器地址的所述并行访问指向所述多个堆栈存储器管芯的不同存储体。在另一个实施方案中,所述IC封装包括存储器控制器,所述存储器控制器在耦合到所述管芯堆栈的存储器装置的计算管芯处,其中所述存储器控制器在对所述管芯堆栈的存储器装置进行寻址之前混写所述单个存储器地址以生成多个位值。
在第二方面的另一个实施方案中,所述多个堆栈存储器管芯中的每一者包括本地查找表。在一个特定实施方案中,所述单个存储器地址基于所述多个堆栈存储器管芯中的每一者处的所述本地查找表而发生位翻转。在另一实施方案中,所述管芯堆栈的存储器装置包括多层静态随机存取存储器(SRAM)。
在第三方面中,一种方法包括响应于接收到使用单个存储器地址的并行访问请求,混写所述单个存储器地址以访问在不同物理位置处的管芯堆栈的存储器的第一存储器管芯和第二存储器管芯。
在第三方面的一个实施方案中,混写所述单个存储器地址包括在对所述第一存储器管芯和所述第二存储器管芯进行寻址之前在存储器控制器处生成多个位值。在另一实施方案中,所述方法包括用所述单个存储器地址对所述第一存储器管芯和所述第二存储器管芯两者进行寻址。在一个特定实施方案中,混写所述单个存储器地址包括在所述第二存储器管芯的本地查找表处使所述单个存储器地址发生位翻转。在另一实施方案中,所述方法包括基于所述第二存储器管芯处的本地查找表来混写所述单个存储器地址。在另一实施方案中,所述并行访问请求指向所述第一存储器管芯和所述第二存储器管芯的不同存储体。
在一些实施方案中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器来实现。该软件包括存储在或以其他方式有形地体现在非暂时性计算机可读存储介质上的一组或多组可执行指令。该软件可以包括指令和某些数据,所述指令和某些数据当由一个或多个处理器执行时操纵所述一个或多个处理器来执行上述技术的一个或多个方面。非暂时性计算机可读存储介质可包括例如磁盘或光盘存储装置、固态存储装置(诸如闪存存储器)、高速缓存、随机存取存储器(RAM)或一个或多个其他非易失性存储器装置等。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码,或由一个或多个处理器解译或执行的其他指令格式。
应注意,在一般描述中并不需要以上描述的所有活动或要素,可能不需要特定活动或装置的一部分,并且除了所描述的那些活动之外,还可以执行一个或多个另外的活动,或者包括要素。此外,活动被列出的次序不一定是它们被执行的次序。另外,已经参考特定实施方案描述了概念。然而,本领域中的普通技术人员应了解,可在不背离所附权利要求书中所阐述的本公开范围的情况下,做出各种修改和改变。因此,本说明书和附图将视为说明性而非限制性含义的,并且所有此类修改旨在包括于本公开的范围内。
上文已经参照特定实施方案描述了益处、其它优点以及问题解决方案。然而,所述益处、优点、问题解决方案,以及可使得任何益处、优点或问题解决方案出现或变得更为显著的任何特征,都不应解释为是任何或所有权利要求的关键、必需或必要特征。此外,以上公开的特定实施方案仅是说明性的,因为所公开的主题可以以不同但等效的方式修改和实践,这对受益于本文教导的本领域技术人员来说是显而易见的。并不意在限于本文所示出的构造或设计的细节,而是限于所附权利要求中所描述的内容。因此,明显的是,上文公开的特定实施方案可加以改变或修改,并且所有此类变化都视为处于所公开的主题的范围内。因此,本文所寻求的保护正如以下权利要求书中所陈述。

Claims (20)

1.一种处理系统,所述处理系统包括:
计算管芯;以及
堆栈存储器,所述堆栈存储器与所述计算管芯堆叠在一起,其中所述堆栈存储器包括第一存储器管芯和堆叠在所述第一存储器管芯顶部上的第二存储器管芯,并且进一步其中使用单个存储器地址的并行访问被混写以并行访问所述第一存储器管芯的第一部分和所述第二存储器管芯的第二部分,所述第二部分从同一存储器管芯上的所述第一部分偏移。
2.如权利要求1所述的处理系统,其中所述第一存储器管芯和所述第二存储器管芯包括相同的电路配置。
3.如权利要求2所述的处理系统,其中使用所述单个存储器地址的所述并行访问指向所述第一存储器管芯和所述第二存储器管芯的不同存储体。
4.如权利要求1所述的处理系统,所述处理系统还包括在所述计算管芯处的存储器控制器,其中所述存储器控制器在对所述堆栈存储器进行寻址之前混写所述单个存储器地址以生成多个位值。
5.如权利要求1所述的处理系统,其中所述第一存储器管芯和所述第二存储器管芯都接收所述单个存储器地址,并且进一步其中所述第二存储器管芯基于本地查找表来混写所述单个存储器地址。
6.如权利要求5所述的处理系统,其中所述第二存储器管芯基于所述本地查找表使所述接收的单个存储器地址发生位翻转。
7.如权利要求1所述的处理系统,其中所述堆栈存储器包括多层静态随机存取存储器(SRAM)。
8.一种集成电路封装件,包括:
管芯堆栈的存储器装置,所述管芯堆栈的存储器装置包括:
多个堆栈存储器管芯,其中使用单个存储器地址的并行访问被混写以访问在不同物理位置处的所述多个堆栈存储器管芯,所述不同的物理位置在同一存储芯片上相对彼此偏移。
9.如权利要求8所述的集成电路封装件,其中所述多个堆栈存储器管芯中的每个堆栈存储器管芯包括相同的电路配置。
10.如权利要求9所述的集成电路封装件,其中使用所述单个存储器地址的所述并行访问指向所述多个堆栈存储器管芯的不同存储体。
11.如权利要求8所述的集成电路封装件,所述集成电路还包括:
存储器控制器,所述存储器控制器在耦合到所述管芯堆栈的存储器装置的计算管芯处,其中所述存储器控制器在对所述管芯堆栈的存储器装置进行寻址之前混写所述单个存储器地址以生成多个位值。
12.如权利要求8所述的集成电路封装件,其中所述多个堆栈存储器管芯中的每一者包括本地查找表。
13.如权利要求12所述的集成电路封装件,其中所述单个存储器地址基于所述多个堆栈存储器管芯中的每一者处的所述本地查找表而发生位翻转。
14.如权利要求8所述的集成电路封装件,其中所述管芯堆栈的存储器装置包括多层静态随机存取存储器(SRAM)。
15.一种在堆栈存储器处进行地址混写的方法,所述方法包括:
响应于接收到使用单个存储器地址的并行访问请求,混写所述单个存储器地址以并行访问管芯堆栈的存储器的第一存储器管芯的第一部分和第二存储器管芯的第二部分,所述第二部分从同一存储器管芯上的所述第一部分偏移。
16.如权利要求15所述的方法,其中混写所述单个存储器地址包括:
在对所述第一存储器管芯和所述第二存储器管芯进行寻址之前在存储器控制器处生成多个位值。
17.如权利要求15所述的方法,所述方法还包括:
用所述单个存储器地址对所述第一存储器管芯和所述第二存储器管芯两者进行寻址。
18.如权利要求17所述的方法,其中混写所述单个存储器地址包括:
在所述第二存储器管芯的本地查找表处使所述单个存储器地址发生位翻转。
19.如权利要求15所述的方法,所述方法还包括基于所述第二存储器管芯处的本地查找表来混写所述单个存储器地址。
20.如权利要求15所述的方法,其中所述并行访问请求指向所述第一存储器管芯和所述第二存储器管芯的不同存储体。
CN201880069807.7A 2017-10-26 2018-09-18 一种处理系统和在3d堆栈存储器中混写的方法 Active CN111279322B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/794,457 US10303398B2 (en) 2017-10-26 2017-10-26 Swizzling in 3D stacked memory
US15/794,457 2017-10-26
PCT/US2018/051592 WO2019083642A1 (en) 2017-10-26 2018-09-18 TILTING IN A STACKED 3D MEMORY

Publications (2)

Publication Number Publication Date
CN111279322A CN111279322A (zh) 2020-06-12
CN111279322B true CN111279322B (zh) 2021-09-24

Family

ID=66243845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880069807.7A Active CN111279322B (zh) 2017-10-26 2018-09-18 一种处理系统和在3d堆栈存储器中混写的方法

Country Status (6)

Country Link
US (1) US10303398B2 (zh)
EP (1) EP3701379A4 (zh)
JP (1) JP6980912B2 (zh)
KR (1) KR102407783B1 (zh)
CN (1) CN111279322B (zh)
WO (1) WO2019083642A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10490251B2 (en) 2017-01-30 2019-11-26 Micron Technology, Inc. Apparatuses and methods for distributing row hammer refresh events across a memory device
WO2019222960A1 (en) 2018-05-24 2019-11-28 Micron Technology, Inc. Apparatuses and methods for pure-time, self adopt sampling for row hammer refresh sampling
US10573370B2 (en) 2018-07-02 2020-02-25 Micron Technology, Inc. Apparatus and methods for triggering row hammer address sampling
US10685696B2 (en) 2018-10-31 2020-06-16 Micron Technology, Inc. Apparatuses and methods for access based refresh timing
WO2020117686A1 (en) 2018-12-03 2020-06-11 Micron Technology, Inc. Semiconductor device performing row hammer refresh operation
CN111354393B (zh) * 2018-12-21 2023-10-20 美光科技公司 用于目标刷新操作的时序交错的设备和方法
US10957377B2 (en) 2018-12-26 2021-03-23 Micron Technology, Inc. Apparatuses and methods for distributed targeted refresh operations
US11615831B2 (en) 2019-02-26 2023-03-28 Micron Technology, Inc. Apparatuses and methods for memory mat refresh sequencing
US11227649B2 (en) 2019-04-04 2022-01-18 Micron Technology, Inc. Apparatuses and methods for staggered timing of targeted refresh operations
US11069393B2 (en) 2019-06-04 2021-07-20 Micron Technology, Inc. Apparatuses and methods for controlling steal rates
US10978132B2 (en) 2019-06-05 2021-04-13 Micron Technology, Inc. Apparatuses and methods for staggered timing of skipped refresh operations
US11302374B2 (en) 2019-08-23 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic refresh allocation
US11302377B2 (en) 2019-10-16 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic targeted refresh steals
US11309010B2 (en) 2020-08-14 2022-04-19 Micron Technology, Inc. Apparatuses, systems, and methods for memory directed access pause
US11348631B2 (en) 2020-08-19 2022-05-31 Micron Technology, Inc. Apparatuses, systems, and methods for identifying victim rows in a memory device which cannot be simultaneously refreshed
US11380382B2 (en) 2020-08-19 2022-07-05 Micron Technology, Inc. Refresh logic circuit layout having aggressor detector circuit sampling circuit and row hammer refresh control circuit
US11557331B2 (en) 2020-09-23 2023-01-17 Micron Technology, Inc. Apparatuses and methods for controlling refresh operations
US11222686B1 (en) 2020-11-12 2022-01-11 Micron Technology, Inc. Apparatuses and methods for controlling refresh timing
US11264079B1 (en) 2020-12-18 2022-03-01 Micron Technology, Inc. Apparatuses and methods for row hammer based cache lockdown

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025922A (zh) * 2016-01-06 2017-08-08 瑞萨电子株式会社 半导体存储器器件

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0823843B2 (ja) * 1991-10-11 1996-03-06 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリ・コントローラ、及びデータ処理システム
US5924111A (en) * 1995-10-17 1999-07-13 Huang; Chu-Kai Method and system for interleaving data in multiple memory bank partitions
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
US7898551B2 (en) * 2006-06-20 2011-03-01 Via Technologies, Inc. Systems and methods for performing a bank swizzle operation to reduce bank collisions
JP4245180B2 (ja) * 2006-10-30 2009-03-25 エルピーダメモリ株式会社 積層メモリ
US20080120514A1 (en) * 2006-11-10 2008-05-22 Yehea Ismail Thermal management of on-chip caches through power density minimization
TWI470762B (zh) * 2007-07-27 2015-01-21 尼康股份有限公司 Laminated semiconductor device
KR101639574B1 (ko) * 2009-12-30 2016-07-14 삼성전자주식회사 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
KR101796116B1 (ko) * 2010-10-20 2017-11-10 삼성전자 주식회사 반도체 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 그 동작방법
JP5654855B2 (ja) * 2010-11-30 2015-01-14 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. 半導体装置
WO2012082480A2 (en) * 2010-12-14 2012-06-21 Rambus Inc. Multi-die dram banks arrangement and wiring
US8402248B2 (en) * 2010-12-31 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) Explicitly regioned memory organization in a network element
US9230609B2 (en) * 2012-06-05 2016-01-05 Rambus Inc. Memory bandwidth aggregation using simultaneous access of stacked semiconductor memory die
JP2014044527A (ja) * 2012-08-24 2014-03-13 Canon Inc 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体
KR102133573B1 (ko) * 2013-02-26 2020-07-21 삼성전자주식회사 반도체 메모리 및 반도체 메모리를 포함하는 메모리 시스템
US10289604B2 (en) * 2014-08-07 2019-05-14 Wisconsin Alumni Research Foundation Memory processing core architecture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025922A (zh) * 2016-01-06 2017-08-08 瑞萨电子株式会社 半导体存储器器件

Also Published As

Publication number Publication date
JP2021501435A (ja) 2021-01-14
EP3701379A1 (en) 2020-09-02
US20190129651A1 (en) 2019-05-02
CN111279322A (zh) 2020-06-12
KR20200063237A (ko) 2020-06-04
WO2019083642A1 (en) 2019-05-02
JP6980912B2 (ja) 2021-12-15
US10303398B2 (en) 2019-05-28
EP3701379A4 (en) 2021-08-11
KR102407783B1 (ko) 2022-06-10

Similar Documents

Publication Publication Date Title
CN111279322B (zh) 一种处理系统和在3d堆栈存储器中混写的方法
KR102541302B1 (ko) 플래쉬 집적 고 대역폭 메모리 장치
US11687454B2 (en) Memory circuit and cache circuit configuration
JP7252845B2 (ja) 高帯域幅メモリのras(信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造
JP6373559B2 (ja) メモリ装置及びメモリ装置の動作方法
US20160181214A1 (en) Stacked memory chip having reduced input-output load, memory module and memory system including the same
US20180115496A1 (en) Mechanisms to improve data locality for distributed gpus
US11474950B2 (en) Memory controller including plurality of address mapping tables, system on chip, and electronic device
JP2018018513A (ja) メモリシステム、プロセシングシステム、及びメモリスタックを動作させる方法
TW201841119A (zh) 管理揮發性記憶體快取的方法和快取管理器
US20210286551A1 (en) Data access ordering for writing-to or reading-from memory devices
US20200174952A1 (en) Memory system
JP2018152112A (ja) メモリ装置及びメモリ装置の動作方法
US9390017B2 (en) Write and read collision avoidance in single port memory devices
US9190118B2 (en) Memory architectures having wiring structures that enable different access patterns in multiple dimensions
KR102605205B1 (ko) 메모리 장치 및 프로세싱 시스템
CN113791822A (zh) 多内存通道的内存存取装置、方法和数据处理设备
US8995210B1 (en) Write and read collision avoidance in single port memory devices
US8788748B2 (en) Implementing memory interface with configurable bandwidth
US20220108743A1 (en) Per bank refresh hazard avoidance for large scale memory
US20210313744A1 (en) Ground pin for device-to-device connection
US20210286727A1 (en) Dynamic random access memory (dram) with scalable meta data
US20210279128A1 (en) Buffer that supports burst transfers having parallel crc and data transmissions
US20230110110A1 (en) Starvation mitigation for associative cache designs
US20230333928A1 (en) Storage and access of metadata within selective dynamic random access memory (dram) devices

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
GR01 Patent grant
GR01 Patent grant