CN113138956A - 包括地址映射表的存储器控制器、片上系统和电子设备 - Google Patents
包括地址映射表的存储器控制器、片上系统和电子设备 Download PDFInfo
- Publication number
- CN113138956A CN113138956A CN202011121207.6A CN202011121207A CN113138956A CN 113138956 A CN113138956 A CN 113138956A CN 202011121207 A CN202011121207 A CN 202011121207A CN 113138956 A CN113138956 A CN 113138956A
- Authority
- CN
- China
- Prior art keywords
- memory
- address
- die
- bits
- bank
- 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
Images
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- 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/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/1647—Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
-
- 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
- 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/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- 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/04—Addressing variable-length words or parts of words
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Dram (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
一种存储器控制器包括:存储器请求队列,其存储与包括具有共享通道的第一存储器管芯和第二存储器管芯在内的存储器设备相关联的存储器请求;地址转换器,其基于存储器请求的物理地址的位来选择第一地址映射表和第二地址映射表中的一个,并基于所选择的地址映射表来将物理地址转换为存储器地址;以及物理层,其通过通道将存储器地址发送到存储器设备。
Description
相关申请的交叉引用
本申请基于2020年1月16日在韩国知识产权局递交的韩国专利申请No.10-2020-0005882并要求该韩国专利申请No.10-2020-0005882的优先权,其全部公开内容通过引用合并于本文。
技术领域
本发明构思涉及能够存储多个地址映射表的存储器控制器、片上系统和电子设备。
背景技术
近来,多个半导体管芯被堆叠以增加存储器设备的集成度。这样,三维结构的存储器设备可以高速地处理大量数据。为了实现三维结构,可以使用硅通孔(TVS)来堆叠多个半导体管芯。然而,即使数据处理速度增加,处理器与存储器的分离也会导致在处理器与存储器之间传输的数据的延时。为了解决此问题,集成有处理器和存储器的存内处理存储器(processing in memory)(PIM)成为人们关注的焦点。
发明内容
本发明构思的实施例提供了能够存储多个地址映射表的存储器控制器、片上系统和电子设备。
根据本公开的示例性方面,提供了一种存储器控制器,包括:存储器请求队列,被配置为存储与包括具有共享通道的第一存储器管芯和第二存储器管芯在内的存储器设备相关联的存储器请求;地址转换器,被配置为:基于存储器请求的物理地址的位来选择第一地址映射表和第二地址映射表中的一个地址映射表,并基于第一地址映射表和第二地址映射表中的所选择的地址映射表来将物理地址转换为用于第一存储器管芯和第二存储器管芯的存储器地址;以及物理层,被配置为通过共享通道将存储器地址发送到存储器设备。
根据本公开的另一示例性方面,提供了一种片上系统,包括:处理器,被配置为生成存储器请求;以及存储器控制器,被配置为:基于所述存储器请求的物理地址的位,选择第一地址映射表和第二地址映射表中的一个地址映射表;基于第一地址映射表和第二地址映射表中的所选择的地址映射表,将物理地址转换为存储器设备的存储器地址;基于存储器地址,通过共享通道来访问第一存储器管芯或第二存储器管芯中的一个。
根据本公开的另一示例性方面,提供了一种电子设备,包括:存储器设备,包括第一存储器管芯、第二存储器管芯以及用于第一存储器管芯和第二存储器管芯的共享通道;以及片上系统,包括:处理器,被配置为生成存储器请求;以及存储器控制器,被配置为:基于存储器请求的物理地址的位,选择第一地址映射表和第二地址映射表中的一个地址映射表;基于第一地址映射表和第二地址映射表中的所选择的地址映射表,将物理地址转换为存储器设备的存储器地址;基于存储器地址,通过共享通道来访问第一存储器管芯和第二存储器管芯中的一个。
根据本公开的另一示例性方面,提供了一种地址转换器电路,包括:地址范围寄存器,被配置为存储存储器请求的物理地址的位;多个地址转换电路,多个地址转换电路中的每一个被配置为基于多个地址映射表中的一个地址映射表将物理地址转换为存储器地址;以及映射选择电路,被配置为基于存储在地址范围寄存器中的位的值来选择多个地址转换电路中的一个。
附图说明
根据参考附图详细示出本公开的发明构思的示例性实施例,本发明构思的上述及其他方面、目的和特征将变得清楚。
图1示出了根据本发明构思的示例实施例的电子设备。
图2示出了根据本发明构思的另一示例实施例的电子设备。
图3示出了图1和图2的片上系统的存储器控制器的框图。
图4示出了图3的地址转换器的框图。图5示出了图1和图2的片上系统的框图。
图6详细示出了图1和图2的存储器设备。
图7详细示出了图1和图2的存储器设备。
图8示出了物理地址被图5的存储器控制器转换为存储器地址的示例。
图9示出了图6的存储体组的框图。图10示出了图6的PIM管芯的框图。
图11和图12示出了根据地址映射表布置PIM管芯中的数据的示例。
图13示出了由PE根据图12的数据布置所执行的计算的示例。
图14示出了图5的处理器访问存储器控制器并且存储器控制器访问存储器设备的示例。
图15示出了根据本发明构思的另一示例实施例的电子设备。
具体实施方式
图1示出了根据本发明构思的示例实施例的电子设备100a。电子设备100a可以包括片上系统(SoC)1000、存储器设备2000和插入器3000。电子设备100a也可以被称为“计算系统”或“电子系统”。
片上系统1000可以通过使用存储器设备2000来执行电子设备100a所支持的应用。片上系统1000也可以被称为“主机”或“应用处理器(AP)”。片上系统1000可以包括存储器控制器1100,该存储器控制器1100控制存储器设备2000并且执行将数据输入到存储器设备2000和/或从存储器设备2000输出数据的操作。例如,存储器控制器1100可以以直接存储器存取(DMA)方式访问存储器设备2000。存储器控制器1100可以包括物理层(PHY)1130,该物理层(PHY)1130通过插入器3000与存储器设备2000的PHY 2930电连接。
存储器设备2000可以包括存内处理存储器或存内处理器存储器(processor inmemory)(PIM)管芯2100至2800和缓冲器管芯2900。PIM管芯2100至2800中的每一个也可以被称为“存储器管芯”、“核管芯”、“存内功能存储器(FIM)管芯”或“控制器管芯”,并且缓冲器管芯2900也可以被称为“接口管芯”、“逻辑管芯”或“控制器管芯”。管芯也可以被称为“芯片”。PIM管芯2100可以堆叠在缓冲器管芯2900上,并且PIM管芯2200可以堆叠在PIM管芯2100上。存储器设备2000可以具有其中堆叠有多个管芯2100至2900的三维存储器结构。为了堆叠管芯2100至2900,存储器设备2000可以包括穿透管芯2100至2900的硅通孔TSV、和将硅通孔TSV电连接的微凸块BP。硅通孔TSV和微凸块BP可以在存储器设备2000中的管芯2100至2900之间提供电路径和物理路径。在此,硅通孔TSV的数目和微凸块BP的数目不限于图1所示的示例。
存储器设备2000可以涉及PIM或FIM,并且除了读取数据和写入数据之外,还可以执行数据处理操作。存储器设备2000可以对应于包括集成在同一管芯中的随机存取存储器(RAM)和处理元件(PE)在内的计算存储器设备。存储器设备2000的PIM管芯2100至2800中的每一个可以包括存储器单元阵列MCA和对数据执行处理操作的处理元件PE,其中存储器单元阵列MCA用于读取数据和写入数据并且包括多个存储器单元。例如,PE也可以被称为“处理器”或“处理电路”。
可以将堆叠标识符SID0分配给PIM管芯2100至2400,并且可以将堆叠标识符SID1分配给PIM管芯2500至2800。堆叠标识符SID0和SID1可以用于识别或区分堆叠在缓冲器管芯2900上的多个PIM管芯2100至2800。例如,存储器控制器1100可以使用堆叠标识符SID0来访问PIM管芯2100至2400,或者存储器控制器1100可以通过使用堆叠标识符SID1来访问PIM管芯2500至2800。在此,PIM管芯2100至2800的总数不限于图1所示的示例。另外,针对每个堆叠标识符SID0的PIM管芯2100至2400的数目和/或针对每个堆叠标识符SID1的PIM管芯2500至2800的数目不限于图1所示的示例。
缓冲器管芯2900可以作为存储器控制器1100与PIM管芯2100至2800之间的接口电路操作。缓冲器管芯2900可以通过插入器3000接收从存储器控制器1100发送的命令、数据、信号等,并且可以通过硅通孔TSV和微凸块BP将接收到的命令、数据、信号等发送到PIM管芯2100至2800。缓冲器管芯2900可以通过硅通孔TSV和微凸块BP接收从PIM管芯2100至2800输出的数据,并且可以通过插入器3000将接收到的数据发送到存储器控制器1100。缓冲器管芯2900可以包括PHY 2930、缓冲电路或接收并放大上述信号的接口电路。
在示例实施例中,存储器设备2000可以是诸如双倍数据速率同步动态随机存取存储器(DDR SDRAM)之类的通用动态随机存取存储器(DRAM)、诸如低功率双倍数据速率(LPDDR)SDRAM之类的移动DRAM设备、诸如图形双倍数据速率(GDDR)同步图形随机存取存储器(SGRAM)之类的图形DRAM设备、或诸如宽I/O、高带宽存储器(HBM)、HBM2、HBM3或混合存储器立方体(Hybrid Memory Cube)(HMC)之类的提供高容量和高带宽的DRAM设备。
插入器3000可以将片上系统1000和存储器设备2000相连。插入器3000可以提供物理路径,该物理路径将存储器设备2000的PHY 2930和片上系统1000的PHY 1130相连,并且由用于电连接的导电材料形成。可以使用基板或印刷电路板(PCB)代替插入器3000。
图2示出了根据本发明构思的另一示例实施例的电子设备。电子设备100b可以包括片上系统1000和存储器设备2000。电子设备100a中的片上系统1000和存储器设备2000可以通过插入器3000互连,而电子设备100b的存储器设备2000可以堆叠在片上系统1000上。片上系统1000还可以包括硅通孔TSV,该硅通孔TSV用于实现与存储器设备2000的电连接,并且片上系统1000的PHY1130和存储器设备2000的PHY 2930可以通过微凸块BP电互连。
图3示出了图1和图2的片上系统的存储器控制器的框图。存储器控制器1100可以包括存储器请求队列1110、地址转换器1120和PHY 1130。例如,以上组件、存储器请求队列1110、地址转换器1120和PHY 1130以及存储器控制器1100的其他组件可以由硬件来实现。
存储器请求队列1110可以接收并存储在片上系统1000内生成的存储器请求。与存储器设备2000相关联的存储器请求可以请求存储器设备2000的操作(例如,读取操作、写入操作、刷新操作或处理操作),并且可以包括存储器设备2000的物理地址。物理地址可以用于访问存储器设备2000,并且可以根据存储器设备2000的容量而被限制。根据示例实施例,与虚拟地址不同,可以根据存储器设备2000的容量来限制物理地址。在片上系统1000处生成存储器请求的速度可以高于存储器设备2000处理存储器请求的速度。存储器请求队列1110可以存储多个存储器请求。
地址转换器1120可以将存储在存储器请求队列1110中的存储器请求的物理地址PA转换为存储器地址MA。存储器地址MA可以用于访问存储器设备2000,并且可以指示存储器设备2000的特定区域。根据示例实施例,特定区域可以是特定管芯、或者特定管芯中的寄存器或存储器单元。地址转换器1120可以基于多个地址映射表将物理地址PA转换为存储器地址MA。例如,多个地址映射表可以包括第一地址映射表AMT1和第二地址映射表AMT2。
例如,地址转换器1120可以基于物理地址PA的位的逻辑值(例如,0或1)来选择多个地址映射表AMT1和AMT2中的一个,该逻辑值对应于物理地址PA的堆叠标识符SID,并且可以基于选择的地址映射表将物理地址PA转换为存储器地址MA。根据图3所示的示例实施例,地址映射表的数目是2,即,AMT1和AMT2。这样,给出以下描述:用于选择多个地址映射表AMT1和AMT2的位的数目是1。然而,地址映射表的数目不限于2,而是地址映射表的数目大于2。在这种情况下,用于选择多个地址映射表AMT1和AMT2的位的数目可以大于1。对于另一示例,物理地址PA的最高有效位MSB可以用于选择多个地址映射表AMT1和AMT2。
根据示例实施例,地址转换器1120可以检查物理地址PA的位的第一逻辑值,并且可以选择地址映射表AMT1,其中该第一逻辑值对应于存储器地址MA的堆叠标识符SID。地址转换器1120可以基于地址映射表AMT1,将物理地址PA的位划分或分类为字段F1至F6。字段F1的位可以对应于字段F6的位以上的位(或高位)。例如,字段F1的位可以是物理地址PA的MSB。地址映射表AMT1可以将字段F1的位映射到堆叠标识符SID,将字段F2的位映射到行地址Row,将字段F3的位映射到列地址Column,将字段F4和F5的位映射到存储体地址BA0至BA3,并且将作为字段F1至F5以下的位(或低位)的字段F6的位映射到高速缓存线CL。地址转换器1120可以基于地址映射表AMT1,将字段F1的位映射到堆叠标识符SID,将字段F2的位映射到行地址Row,将字段F3的位映射到列地址Column,并且将字段F4和F5的位映射到存储体地址BA0至BA3。存储器地址MA可以包括堆叠标识符SID、存储体地址BA0至BA3、行地址Row和列地址Column。堆叠标识符SID可以用于标识参考图1至图2描述的PIM管芯2100至2800。存储体地址BA0至BA3可以用于标识构成PIM管芯2100至2800中的每一个的存储器单元阵列MCA的存储体。行地址Row和列地址Column可以用于标识存储体中的存储器单元。高速缓存线CL可以对应于片上系统1000中的高速缓存的单元,并且可以包括与存储器设备2000相关联的数据(例如,从存储器设备2000读取的读取数据或要写入存储器设备2000中的写入数据)。字段F1至F5的位可以构成存储器地址MA。地址映射表AMT1可以将物理地址PA的高位映射到存储器地址MA的堆叠标识符SID、行地址Row和列地址Column,并且可以将物理地址PA的低位映射到存储器地址MA的存储体地址BA0到BA3。当选择地址映射表AMT1时,转换为存储器地址MA的存储体地址BA0至BA3的物理地址PA的位可以对应于转换为存储器地址MA的行地址Row和列地址Column的物理地址PA的位以下的位(或低位)。字段F1至F6中的每一个中包括的位的数目可以是一个或多个。
根据示例实施例,地址转换器1120可以检查物理地址PA的位的第二逻辑值,并且选择地址映射表AMT2,其中该第二逻辑值对应于存储器地址MA的堆叠标识符SID。地址转换器1120可以基于地址映射表AMT2将物理地址PA的位划分或分类为字段F1至F7。地址映射表AMT2可以将字段F1的位映射到堆叠标识符SID,将字段F3的位映射到行地址Row,将字段F5的位映射到列地址Column,将字段F2、F4和F6的位映射到存储体地址BA0至BA3,并且将作为字段F1至F6以下的位(或低位)的字段F7的位映射到高速缓存线CL。地址转换器1120可以基于地址映射表AMT2,将字段F1的位映射到堆叠标识符SID,将字段F3的位映射到行地址Row,将字段F5的位映射到列地址Column,并且将字段F2、F4和F6的位映射到存储体地址BA0到BA3。字段F1至F6的位可以构成存储器地址MA。当不是地址映射表AMT1而是地址映射表AMT2被选择时,被转换为存储器地址MA的存储体地址BA0至BA3的物理地址PA的位中的至少一个位(在图3中为BA1,但不限于此)可以对应于被转换为存储器地址MA的列地址Column的物理地址PA的位以上的位(或高位)。此外,被转换为存储器地址MA的存储体地址BA0至BA3的物理地址PA的位中的至少一个位(在图3中为BA0,但不限于此)可以对应于被转换为存储器地址MA的行地址Row的物理地址PA的位以上的位(或高位)。例如,被转换为存储器地址MA的行地址Row或列地址Column的物理地址PA的位可以被放置在被转换为存储器地址MA的存储体地址BA0至BA3的物理地址PA的位之间。物理地址PA上的放置有通过地址映射表AMT1转换为堆叠标识符SID的字段F1的位的位置可以与物理地址PA上的放置有通过地址映射表AMT2转换为堆叠标识符SID的字段F1的位的位置相同。物理地址PA上的根据地址映射表AMT1放置有与高速缓存线CL相对应的字段F6的位的位置可以与物理地址PA上的根据地址映射表AMT2放置有与高速缓存线CL相对应的字段F7的位的位置相同。
根据上述示例实施例,地址转换器1120检查物理地址PA的位的第一逻辑值并选择地址映射表AMT1,并且地址转换器1120检查物理地址PA的位的第二逻辑值并选择地址映射表AMT2。然而,本公开不限于此。例如,根据另一示例实施例,地址转换器1120可以检查物理地址PA的位的第二逻辑值并选择地址映射表AMT1,并且地址转换器1120可以检查物理地址PA的位的第一逻辑值并选择地址映射表AMT2。
地址映射表AMT1的映射和地址映射表AMT2的映射可以彼此不同并且可以彼此独立。例如,通过地址映射表AMT1转换为存储器地址MA的存储体地址BA0至BA3的物理地址PA的位的位置可以不同于通过地址映射表AMT2转换为存储器地址MA的存储体地址BA0到BA3的物理地址PA的位的位置。例如,可以根据地址映射表AMT1和AMT2来改变物理地址PA上的放置有与存储体地址BA0至BA3相对应的位的位置。
地址转换器1120可以同时支持不同的地址映射表AMT1和AMT2。当选择地址映射表AMT1时在存储器设备2000中布置数据的方式可以不同于当选择地址映射表AMT2时在存储器设备2000中布置数据的方式。例如,存储器控制器1100可以选择关于多个PIM管芯2100至2800中的旨在执行读取操作或写入操作而不执行PE的PIM管芯(例如,图1和图2的具有SID0的PIM管芯2100至2400)的地址映射表AMT1。例如,存储器控制器1100可以选择关于多个PIM管芯2100至2800中的旨在执行PE的PIM管芯(例如,图1和图2的具有SID1的PIM管芯2500至2800)的地址映射表AMT2。根据选择地址映射表的示例性方式,仅执行读取操作或写入操作的PIM管芯中的数据布置可以与执行PE的PIM管芯中的数据布置不同。因此,当根据本发明构思的实施例的存储器控制器1100根据是否在PIM管芯中执行PE来动态地选择地址映射表AMT1和AMT2之一时,存储器控制器1100可以将数据布置为适合于在不执行PE的PIM管芯中进行读取操作或写入操作,并且可以将数据布置为适合于在执行PE的PIM管芯中执行PE。
PHY 1130可以基于地址转换器1120的存储器地址MA来访问存储器设备2000。PHY1130也可以被称为“存储器接口电路”。例如,PHY 1130可以基于存储器请求队列1110的存储器请求和地址转换器1120的存储器地址MA来生成并输出命令和地址信号CA。PHY 1130可以将基于存储器请求的存储器命令和存储器地址MA发送到存储器设备2000。PHY 1130可以根据存储器请求队列1110的存储器请求和地址转换器1120的存储器地址MA来不同地改变命令和地址信号CA的逻辑值。PHY 1130可以基于存储器请求队列1110的存储器请求来生成并输出数据输入/输出信号DQ,或者可以接收从存储器设备2000发送的数据输入/输出信号DQ。数据输入/输出信号DQ可以包括要写入存储器设备2000中的写入数据或从存储器设备2000中读取的读取数据。
可以针对通道CH1至CH4中的每个通道提供命令和地址信号CA以及数据输入/输出信号DQ。例如,存储器控制器1100可以通过通道CH1访问PIM管芯2100和2500,可以通过通道CH2访问PIM管芯2200和2600,可以通过通道CH3访问PIM管芯2300和2700,并且可以通过通道CH4访问PIM管芯2400和2800。PIM管芯2100和2500可以共享通道CH1,PIM管芯2200和2600可以共享通道CH2,PIM管芯2300和2700可以共享通道CH3,并且PIM管芯2400和2800可以共享通道CH4。
存储器控制器1100可以通过使用存储器控制器1100的堆叠标识符SID来选择分配给一个通道的多个PIM管芯之一。存储器控制器1100可以基于存储器地址MA来访问分配给一个通道的多个PIM管芯之一。例如,当堆叠标识符SID具有第一逻辑值(即,SID0)时,可以将通过通道CH1至CH4传输的命令和地址信号CA以及数据输入/输出信号DQ与PIM管芯2100至2400相关联。例如,当堆叠标识符SID具有第二逻辑值(即,SID1)时,可以将通过通道CH1至CH4传输的命令和地址信号CA以及数据输入/输出信号DQ与PIM管芯2500至2800相关联。例如,针对每个通道分配的PIM管芯的数目、通道的数目、分配给一个PIM管芯的通道的数目等不限于图3的示例。例如,物理地址PA的位的一部分(例如,字段F1以上的位(或高位))可以指示存储器地址MA是否与通道CH1至CH4中的任何通道相关联,并且可以用于区分通道CH1至CH4。
图4示出了图3的地址转换器的框图。地址转换器1120可以包括地址范围寄存器1121、映射选择电路1122以及地址转换电路1123_1至1123_2M。例如,地址范围寄存器1121、映射选择电路1122和地址转换电路1123_1至1123_2M以及地址转换器的其他组件可以以硬件方式实现。
地址范围寄存器1121可以存储物理地址PA[N:0]的位PA[N:N-M+1](N是自然数,“N+1”对应于位的数目,并且M是自然数)。与图3的情况类似,在地址转换器1120包括两个地址映射表AMT1和AMT2的情况下,“M”可以是“1”,并且地址范围寄存器1121可以存储位PA[N]。地址转换器1120可以包括两个或更多个地址映射表,并且地址范围寄存器1121可以存储一个或多个位。如上所述,存储在地址范围寄存器1121中的位PA[N∶N-M+1]可以是存储器地址MA的堆叠标识符SID。
映射选择电路1122可以根据存储在地址范围寄存器1121中的位PA[N:N-M+1]的值来选择地址转换电路1123_1至1123_2M之一。例如,映射选择电路1122可以根据存储在地址范围寄存器1121中的位PA[N:N-M+1]的值来激活用于启用地址转换电路1123_1至1123_2M的启用信号EN_1至EN_2M之一,并且可以去激活其余的启用信号。
地址转换电路1123可以由启用信号EN_1激活,并且可以基于地址映射表AMT1(与图3的地址映射表AMT1相同)将物理地址PA[N:0]转换成存储器地址MA[L:0](L是自然数并且小于N)。地址转换电路1124可以由启用信号EN_2M激活,并且可以基于地址映射表AMT2(与图3的地址映射表AMT2相同)将物理地址PA[N:0]转换成存储器地址MA[L:0]。地址转换器1120可以包括执行不同映射的2M个地址映射表,并且可以包括2M个地址转换电路1123_1至1123_2M,该2M个地址转换电路1123_1至1123_2M分别基于2M个地址映射表将物理地址PA[N:0]转换为存储器地址MA[L:0]。
图5示出了图1和图2的片上系统的框图。片上系统1000可以包括存储器控制器1100、处理器1200、片上存储器1300和系统总线1400。
存储器控制器1100可以包括存储器请求队列1110、地址转换器1120、PHY 1130、控制寄存器1141、存储体状态寄存器1142、系统总线接口电路1150、存储器命令队列1160、命令调度器1170、命令定序器1180、读缓冲器1191和写缓冲器1192。相对于图3和图4提供了对存储器请求队列1110、支持所有不同地址映射表AMT1和AMT2的地址转换器1120以及PHY1130的详细描述,因此将省略与存储器请求队列1110、地址转换器1120和PHY 1130相关联的附加描述以避免冗余。
控制寄存器1141可以存储并提供关于存储器控制器1100中的存储器请求队列1110、地址转换器1120、PHY 1130、控制寄存器1141、存储体状态寄存器1142、系统总线接口电路1150、存储器命令队列1160、命令调度器1170、命令定序器1180、读缓冲器1191和写缓冲器1192的各条控制信息。可以通过处理器1200或通过用户的请求来改变存储在控制寄存器1141中的控制信息。存储器请求队列1110、地址转换器1120、PHY 1130、控制寄存器1141、存储体状态寄存器1142、系统总线接口电路1150、存储器命令队列1160、命令调度器1170、命令定序器1180、读缓冲器1191和写缓冲器1192可以分别基于存储在控制寄存器1141中的各种控制信息进行操作。
存储体状态寄存器1142可以存储关于存储器设备2000中的多个存储体(参照图7和图8的详细说明)的状态信息。例如,状态信息可以指示存储体是否被激活或者存储体是否被预充电。
系统总线接口电路1150可以基于系统总线1400的通信协议,通过系统总线1400接收从处理器1200中的多个核1210、1220、1230和1240发送的存储器请求。系统总线接口电路1150可以向存储器请求队列1110提供、发送或写入接收到的存储器请求。根据另一示例实施例,处理器1200中的多个核不限于图5所示的多个核1210、1220、1230和1240。
存储器命令队列1160可以存储针对存储在存储器请求队列1110中的存储器请求的存储器命令、以及由地址转换器1120转换的存储器地址。命令调度器1170可以基于存储在存储体状态寄存器1142中的存储体的状态信息来调整对存储在存储器命令队列1160中的存储器命令和存储器地址进行处理的顺序。命令调度器1170可以对存储在存储器命令队列1160中的存储器命令和存储器地址执行调度。命令定序器1180可以基于由命令调度器1170调度的顺序,将存储在存储器命令队列1160中的存储器命令和存储器地址输出或提供给PHY 1130。
PHY 1130可以包括时钟(CK)生成器1131、命令和地址(CA)生成器1132、接收机1133和发射机1134。时钟生成器1131可以生成输出到存储器设备2000的时钟信号CK。例如,存储器设备2000可以是基于时钟信号CK进行操作的同步存储器设备。命令和地址生成器1132可以从命令定序器1180接收存储器命令和存储器地址,并且可以将包括存储器命令和存储器地址在内的命令和地址信号CA发送到存储器设备2000。接收机1133可以接收从存储器设备2000发送的包括读取数据在内的数据输入/输出信号DQ。接收机1133可以将接收到的读取数据提供给读缓冲器1191。发射机1134可以从写缓冲器1192接收写入数据。发射机1134可以将包括写入数据在内的数据输入/输出信号DQ发送到存储器设备2000。图5的通道CH可以对应于图3的通道CH1至CH4之一。PHY 1130可以生成并输出通道CH1至CH4中的每一个的时钟信号CK以及命令和地址信号CA,并且可以与存储器设备2000交换通道CH1至CH4中的每一个的数据输入/输出信号DQ。
读缓冲器1191可以存储从接收机1133提供的读取数据。例如,读缓冲器1191可以向系统总线接口电路1150提供与高速缓存线CL一样多的读取数据,并且系统总线接口电路1150可以通过系统总线1400将读取数据发送到处理器1200或片上存储器1300。写缓冲器1192可以接收并存储从系统总线接口电路1150提供的写入数据,以将该写入数据发送到存储器设备2000。写缓冲器1192可以向发射机1134提供与存储器设备2000的数据输入/输出单元一样多的写入数据。
处理器1200可以执行加载到片上存储器1300上的各种软件(例如,应用程序、操作系统、文件系统和设备驱动程序)。处理器1200可以包括多个同构核或多个异构核,并且可以包括多个核1210至1240。例如,核1210至1240中的每个核可以包括以下至少一项:中央处理单元(CPU)、图像信号处理单元(ISP)、数字信号处理单元(DSP)、图形处理单元(GPU)、视觉处理单元(VPU)、张量处理单元(TPU)和神经处理单元(NPU)。核1210至1240中的每个核可以生成与存储器设备2000相关联的存储器请求。由核1210至1240中的每个核生成的存储器请求可以包括上述物理地址PA。可以将用于驱动电子设备100a/100b的应用程序、操作系统、文件系统、设备驱动程序等加载到片上存储器1300上。例如,片上存储器1300可以是具有比存储器设备2000更高的数据输入/输出速度的静态RAM(SRAM),或者可以是由核1210至1240共享的高速缓存存储器,但是本发明构思不是限于此。系统总线1400可以提供存储器控制器1100、处理器1200和片上存储器1300之间的通信路径。例如,系统总线1400可以是基于高级微控制器总线架构(AMBA)的高级高性能总线(AHB)、高级系统总线(ASB)、高级外围总线(APB)或高级可扩展接口(AXI)。
图6详细示出了图1和图2的存储器设备。存储器控制器1100可以通过通道CH1至CHK(K为2或更大的自然数)访问存储器设备2000。例如,可以将PIM管芯2100和2500分配给通道CH1,并且可以将PIM管芯2400和2800分配给通道CHk。如上面的描述中一样,剩余的管芯2200、2300、2600和2700可以被分配给其他通道。可以通过堆叠标识符SID0/1来标识分配给相同通道CH的PIM管芯2100和2500。存储器设备2000可以包括路径Path_1至Path_K,该路径Path_1至Path_K分别对应于通道CH1至CHK,并且通过路径Path_1至Path_K来发送通过通道CH1至CHK发送的信号。路径Path_1至Path_K可以提供缓冲器管芯2900与PIM管芯2100至2800之间的电连接路径,并且可以包括参照图1和图2描述的硅通孔TSV和微凸块BP。
PIM管芯2500可以包括存储体组BG0至BG3、数据总线DB0和DB1、存储体控制器BCTRL0和BCTRL1、PE控制器PECTRL0和PECTRL1、命令和地址解码器CADEC以及数据输入/输出电路DATAIO。尽管仅详细描述和示出了PIM管芯2500,但是其余的PIM管芯2100至2400和2600至2800的配置和操作可以与PIM管芯2500的配置和操作相似或基本相同。
可以通过存储体地址BA0至BA3(或称为“存储体地址位BA0至BA3”)的存储体地址位BA2和BA3来标识存储体组BG0至BG3。例如,当BA2=0并且BA3=0时,可以选择存储体组BG0。存储体组BG0可以包括存储体BK0至BK3。可以通过存储体地址BA0至BA3的存储体地址位BA0和BA1来标识一个存储体组中的存储体。例如,当BA0=0,BA1=0,BA2=0并且BA3=0时,可以选择存储体BK0。图1和图2的存储器单元阵列MCA可以被划分为存储体BK0至BK15。当在存储体地址位BA0至BA3中与LSB相对应的存储体地址位BA0为“0”时能够选择的存储体BK0、BK2、BK4、BK6、BK8、BK10、BK12和BK14中的每一个可以被称为顶(或偶数)存储体。当在存储体地址位BA0至BA3中与LSB相对应的存储体地址位BA0为“1”时能够选择的存储体BK1、BK3、BK5、BK7、BK9、BK11、BK13和BK15中的每一个可以被称为底(或奇数)存储体。例如,存储体BK0至BK15中的每一个可以包括相同数目的存储器单元,并且存储体组BG0至BG3中的每一个可以包括相同数目的存储体。例如,存储体组BG0至BG3可以被实现为相同的,并且存储体BK0至BK15可以被实现为相同的。
存储体组BG0可以包括PE0和PE1。例如,PE0可以对存储体BK0和BK1的数据执行计算,而PE1可以对存储体BK2和BK3的数据执行计算。存储体组BG1可以包括对存储体BK4和BK5的数据执行计算的PE2、和对存储体BK6和BK7的数据执行计算的PE3。如在存储体组BG0和BG1中一样,存储体组BG2和BG3可以包括PE4至PE7。例如,PE0至PE7可以对应于图1和图2的PIM管芯2100至2800中的每一个的PE,或者可以构成图1和图2的PIM管芯2100至2800中的每一个的PE。
一个PIM管芯2500中包括的存储体组的数目和针对每个存储体组的存储体的数目不限于图6的示例。一示例被示出为:一个通道CH1被分配给PIM管芯2500,并且存储体组BG0至BG3和存储体BK0至BK15被分配给通道CH1,但是本发明构思不限于此。可以将不同的通道进一步分配给PIM管芯2500,并且PIM 2500还可以包括分配给不同通道的存储体组和存储体。例如,PIM管芯2500可以包括分配给四个通道CH1至CH4的存储体组BG0至BG15和存储体BK0至BK63;如在图6中例示的通道CH1中那样,可以在PIM管芯2500中实现用于每个通道的存储体组和存储体。给出了以下描述:一个存储体组包括两个PE,并且一个PE被分配给两个存储体;然而,一个存储体组可以包括与存储体的数目相同的PE,或者可以将一个PE分配给一个存储体。在任何情况下,本发明构思均不限于以上数值。
数据总线DB0可以包括与存储体组BG0和BG1相关联的数据输入/输出路径。例如,可以通过数据总线DB0发送要写入存储体BK0至BK3或存储体BK4至BK7中的数据、从存储体BK0至BK3或存储体BK4至BK7读取的数据、要由PE0和PE1或PE2和PE3处理的数据、由PE0和PE1或PE2和PE3处理的数据等。数据总线DB1可以包括与存储体组BG2和BG3相关联的数据输入/输出路径。除了分配的存储体组,数据总线DB0和DB1可以被实现为是相同的或可以被集成在一起。
存储体控制器BCTRL0可以在命令和地址解码器CADEC的控制下控制存储体组BG0和BG1的存储体BK0至BK7。存储体控制器BCTRL1可以在命令和地址解码器CADEC的控制下控制存储体组BG2和BG3的存储体BK8至BK15。例如,存储体控制器BCTRL0和BCTRL1可以对存储体BK0至BK15进行激活或预充电。除了分配的存储体组,存储体控制器BCTRL0和BCTRL1可以被实现为是相同的或可以被集成在一起。
PE控制器PECTRL0可以在命令和地址解码器CADEC的控制下,控制存储体组BG0和BG1的PE0至PE3。PE控制器PECTRL1可以在命令和地址解码器CADEC的控制下,控制存储体组BG2和BG3的PE4至PE7。例如,PE控制器PECTRL0和PECTRL1可以选择要由PE0至PE7处理的数据或已由PE0至PE7处理的数据,或者可以控制PE0至PE7发起或终止计算的定时。除了分配的PE,PE控制器PECTRL0和PECTRL1可以被实现为是相同的或可以被集成在一起。
命令和地址解码器CADEC可以基于通过通道CH1和路径Path_1发送的时钟信号CK(参考图5)来接收通过通道CH1和路径Path_1发送的命令和地址信号CA(参见图5)。命令和地址解码器CADEC可以对命令和地址信号CA进行解码。命令和地址解码器CADEC可以基于解码结果来控制PIM管芯2500的组件。
在命令和地址解码器CADEC的控制下,数据输入/输出电路DATAIO可以接收通过通道CH1和路径Path_1发送的数据输入/输出信号DQ(参考图5),并且可以向存储体组BG0至BG3的存储体BK0至BK15提供包括在数据输入/输出信号DQ中的写入数据。数据输入/输出电路DATAIO可以接收从存储体BK0至BK15以及存储体组BG0至BG3的PE PE0至PE7输出的读取数据,并且可以输出包括该读取数据在内的数据输入/输出信号DQ。包括读取数据在内的数据输入/输出信号DQ可以通过路径Path_1和通道CH1被发送到存储器控制器1100。
图7详细示出了图1和图2的存储器设备。将集中于图6的存储器设备2000和图7的存储器设备2000之间的差异进行描述。存储器设备2000可以包括存储器管芯2100至2400和PIM管芯2500至2800。PIM管芯2500至2800中的每一个可以与图6的PIM管芯2500基本相同。存储器管芯2100至2400中的每一个可以与图6的PIM管芯2500不同。存储器管芯2300可以包括参照图6描述的存储体组BG0至BG3、存储体BK0至BK15、数据总线DB0和DB1、存储体控制器BCTRL0和BCTRL1、命令和地址解码器CADEC以及数据输入/输出电路DATAIO。存储器管芯2300可以不包括PE0至PE7以及PE控制器PECTRL0和PECTRL1,并且可以不被称为“PIM管芯”。其余存储器管芯2100、2200和2400中的每一个的配置和操作可以与存储器管芯2300基本相同。
图8示出了物理地址被图5的存储器控制器转换为存储器地址的示例。存储器控制器1100可以基于地址映射表AMT1,将物理地址PA中的与堆叠标识符相对应的位具有值SID0的物理地址PA转换为存储器地址MA。存储器控制器1100可以基于与地址映射表AMT1不同的地址映射表AMT2,将物理地址PA中的与堆叠标识符相对应的位具有值SID1的物理地址PA转换为存储器地址MA。例如,与堆叠标识符相对应的位具有值SID0的物理地址PA的范围可以是从0x000000到0x000FFF,而与堆叠标识符相对应的位具有值SID1的物理地址PA的范围可以是从0x100000到0x100FFF。然而,本发明构思均不限于以上数值。
根据地址映射表AMT1,物理地址PA“0x000040”的位中与存储体地址BA0至BA3相对应的位可以是“0000(21”。存储器控制器1100可以基于地址映射表AMT1,将物理地址PA“0x000040”映射到存储体组BG0的存储体BK0。例如,物理地址PA“0x000040”和物理地址PA“0x000080”之间的差可以对应于高速缓存线CL的大小(例如,64个字节)。根据地址映射表AMT1,物理地址PA“0x000080”的位中与存储体地址BA0至BA3相对应的位可以是“0100(2)”。存储器控制器1100可以基于地址映射表AMT1,将物理地址PA“0x000080”映射到存储体组BG1的存储体BK4。如以上描述中一样,存储器控制器1100可以基于地址映射表AMT1,将与堆叠标识符相对应的位具有值SID0的物理地址PA转换为存储器地址MA。从“0x000040”顺序增加到“0x000400”的物理地址PA可以被映射到与顶存储体T_BK相对应的存储体BK0、BK4、BK8和BK12、与底存储体B_BK相对应的存储体BK1、BK5、BK9和BK13、与顶存储体T_BK相对应的存储体BK2、BK6、BK10和BK14以及与底存储体B_BK相对应的存储体BK3、BK7、BK11和BK15。
根据地址映射表AMT2,物理地址PA“0x100040”的位中与存储体地址BA0至BA3相对应的位可以是“0000(2)”。存储器控制器1100可以基于地址映射表AMT2,将物理地址PA“0x100040”映射到存储体组BG0的存储体BK0。根据地址映射表AMT2,物理地址PA“0x100080”的位中与存储体地址BA0至BA3相对应的位可以是“0100(2)”。存储器控制器1100可以基于地址映射表AMT2,将物理地址PA“0x100080”映射到存储体组BG1的存储体BK4。如以上描述中一样,存储器控制器1100可以基于地址映射表AMT2,将与堆叠标识符相对应的位具有值SID1的物理地址PA转换为存储器地址MA。从“0x100040”顺序增加到“0x100400”的物理地址PA可以映射到与顶存储体T_BK相对应的存储体BK0、BK4、BK8、BK12、BK2、BK6、BK10和BK14、以及与底存储体B_BK相对应的存储体BK1、BK5、BK9、BK13、BK3、BK7、BK11和BK15。除了堆叠标识符SID0/SID1,从“0x100040”顺序增加到“0x100400”的物理地址PA和从“0x000040”顺序增加到“0x000400”的物理地址PA被改变为是相同的。但是,由于地址映射表AMT1和AMT2不同,因此对各自与从“0x100040”顺序增加到“0x100400”的物理地址PA相对应的存储体进行映射的顺序不同于对各自与从“0x000040”顺序增加到“0x000400”的物理地址PA相对应的存储体进行映射的顺序。
图9示出了图6的存储体组的框图。尽管在图9中仅详细示出了存储体组BG0,但是如上所述,剩余的存储体组BG1至BG3可以被实现为与存储体组BG0相似或基本相同。
存储体组BG0可以包括行解码器RD0和列解码器CD0。行解码器RD0可以对存储器地址MA的行地址Row进行解码,并且可以选择并激活存储体BK0的字线WL0。例如,当字线WL0被激活时,存储体BK0可以处于活动状态。另一方面,当字线WL0被去激活时,存储体BK0可以处于预充电状态。如上所述,存储体BK0的状态信息可以存储在存储体状态寄存器1142中。列解码器CD0可以对存储器地址MA的列地址Column进行解码,并且可以选择并激活存储体BK0的列选择线CSL0。存储体BK0可以包括通过字线WL0和列选择线CSL0访问的存储器单元MC0。存储体BK0还可以包括通过其他字线和其他列选择线访问的存储器单元。
存储体组BG0还可以包括输入/输出读出放大器IOSA0、写驱动器WDRV0、存储体局部输入/输出选通电路BLIOGT0、存储体全局输入/输出选通电路BGIOGT0、和数据总线输入/输出选通电路DBIOGT0。输入/输出读出放大器IOSA0可以感测并放大通过单元输入/输出线CIO0从存储器单元MC0输出的读取数据,并且可以将读取数据输出到存储体局部输入/输出线BLIO0。写驱动器WDRV0可以接收通过存储体局部输入/输出线BLIO0发送的写入数据,并且可以通过单元输入/输出线CIO0将写入数据写入存储器单元MC0。存储体局部输入/输出选通电路BLIOGT0可以将写驱动器WDRV0和存储体局部输入/输出线BLIO0电连接,或者可以将写驱动器WDRV0与存储体局部输入/输出线BLIO0电断开。存储体局部输入/输出选通电路BLIOGT0可以将输入/输出读出放大器IOSA0和存储体局部输入/输出线BLIO0电连接,或者可以将输入/输出读出放大器IOSA0与存储体局部输入/输出线BLIO0电断开。存储体全局输入/输出选通电路BGIOGT0可以将存储体局部输入/输出线BLIO0和存储体全局输入/输出线BGIO0电连接,或者可以将存储体局部输入/输出线BLIO0与存储体全局输入/输出线BGIO0电断开。存储体全局输入/输出线BGIO0可以由存储体组BG0中的存储体BK0至BK3共享。数据总线输入/输出选通电路DBIOGT0可以将存储体全局输入/输出线BGIO0和数据总线DB0电连接,或者可以将存储体全局输入/输出线BGIO0与数据总线DB0电断开。数据总线DB0可以由存储体组BG0和BG1共享。例如,存储体局部输入/输出选通电路BLIOGT0、存储体全局输入/输出选通电路BGIOGT0和数据总线输入/输出选通电路DBIOGT0中的每一个可以作为输入/输出复用器或开关进行操作。上述组件RD0、CD0、IOSA0、WDRV0、BLIOGT0和BGIOGT0可以用于存储体BK0的数据输入/输出。如以上描述中一样,对于存储体BK1至BK3的数据输入/输出,存储体组BG0还可以包括行解码器RD1至RD3、列解码器CD1至CD3、输入/输出读出放大器IOSA1至IOSA3、写驱动器WDRV1至WDRV3、存储体局部输入/输出选通电路BLIOGT1至BLIOGT3和存储体全局输入/输出选通电路BGIOGT1至BGIOGT3。
PE0可以包括输入复用器IMUX、PE阵列PEA、寄存器REG和输出复用器OMUX。输入复用器IMUX可以通过存储体局部输入/输出线BLIO0接收存储体BK0的数据(或写入数据或读取数据),可以通过存储体局部输入/输出线BLIO1来接收存储体BK1的数据(或写入数据或读取数据),可以通过存储体全局输入/输出线BGIO0来接收存储体组BG0的数据,并且可以接收寄存器输出线RO0的数据。输入复用器IMUX可以基于输入控制信号ICTRL0来将以上数据中的至少一项提供给PE阵列PEA。例如,可以将以上数据作为操作数OPA至OPD提供给PE阵列PEA。PE阵列PEA可以基于处理控制信号PCTRL0对以上数据中的至少一项执行计算。例如,可由PE阵列PEA执行的计算可以是各种算术或逻辑运算,例如加法、减法、乘法、除法、移位、与(AND)、与非(NAND)、或(OR)、或非(NOR)、同或(XNOR)和异或(XOR)。寄存器REG可以基于寄存器控制信号RCTRL0通过寄存器输入线RI0接收并存储PE阵列PEA的计算结果。寄存器REG可以基于寄存器控制信号RCTRL0,将存储的计算结果作为数据输出到寄存器输出线RO0。输出复用器OMUX可以基于输出控制信号OCTRL0,将存储在寄存器REG中的数据输出到存储体局部输入/输出线BLIO0、存储体局部输入/输出线BLIO1、寄存器输出线RO0和存储体全局输入/输出线BGIO0中的至少一个。PE1的配置和操作可以与PE0的配置和操作基本相同,除了PE1与存储体局部输入/输出线BLIO2和BLIO3连接并且接收控制信号ICTRL1、PCTRL1、RCTRL1和OCTRL1。
图10示出了图6的PIM管芯的框图。命令和地址解码器CADEC可以对命令和地址信号CA进行解码,并且可以控制存储体控制器BCTRL0和BCTRL1、PE控制器PECTRL0和PECTRL1以及数据输入/输出电路DATAIO。存储体控制器BCTRL0可以控制存储体组BG0和BG1的存储器单元的读取操作和写入操作。存储体控制器BCTRL1可以控制存储体组BG2和BG3的存储器单元的读取操作和写入操作。PE控制器PECTRL0和PECTRL1中的每一个可以包括存储控制信息的控制寄存器。PE控制器PECTRL0可以在控制命令和地址解码器CADEC的控制下,基于控制寄存器的控制信息,生成要提供给存储体组BG0的PE0和PE1的控制信号ICTRL0、ICTRL1、PCTRL0、PCTRL1、RCTRL0、RCTRL1、OCTRL0和OCTRL1。PE控制器PECTRL0可以在命令和地址解码器CADEC的控制下,基于控制寄存器的控制信息,生成要提供给存储体组BG1的PE2和PE3的控制信号。PE控制器PECTRL1可以在命令和地址解码器CADEC的控制下,基于控制寄存器的控制信息,生成要提供给存储体组BG2和BG3的PE4至PE7的控制信号。数据输入/输出电路DATAIO可以将数据输入/输出信号DQ的数据输出到数据总线DB0和DB1,或者可以输出包括数据总线DB0和DB1的数据在内的数据输入/输出信号DQ。
图11和图12示出了根据图3的地址映射表布置PIM管芯中的数据的示例。在图11和图12中,存储器请求可以是用于存储器设备2000的写命令,存储器请求被输入到存储器请求队列1110,存储器请求的物理地址PA从最小值(例如,图8的0x000000)顺序增加到最大值(例如,0xFFFFFF),并且存储体BK0至BK15中的每一个包括通过四个字线WL[0:3]和四个列选择线CSL[0:3]可访问的存储器单元MC。然而,本发明构思均不限于以上数值。
具有堆叠标识符SID0的物理地址PA可以通过地址映射表AMT1转换为存储器地址MA。地址转换器1120可以选择地址映射表AMT1,并且PHY 1130可以通过通道CH1访问PIM管芯2100并且可以基于存储器地址MA来激活PIM管芯2100的存储体BK0至BK15中的至少一个。根据地址映射表AMT1,与行地址Row和列地址Column相对应的物理地址PA的位对应于与存储体地址BA0至BA3相对应的物理地址PA的位以上的高位。参照图11,可以按照由字线WL[0]和列选择线CSL[0]选择的存储体BK0、BK4、BK8、BK12、BK1、BK5、BK9、BK13、BK2、BK6、BK10、BK14、BK3、BK7、BK11和BK15的存储器单元MC的顺序来布置(或写入)数据。接下来,可以按照由字线WL[0]和列选择线CSL[1]选择的存储体BK0、BK4、BK8、BK12、BK1、BK5、BK9、BK13、BK2、BK6、BK10、BK14、BK3、BK7、BK11和BK15的存储器单元MC的顺序来布置(或写入)数据。当重复以上过程时,可以将数据布置在存储体BK0至BK15中的所有存储器单元MC中。
具有堆叠标识符SID1的物理地址PA可以通过地址映射表AMT2转换为存储器地址MA。地址转换器1120可以选择地址映射表AMT2,并且PHY 1130可以通过通道CH1访问PIM管芯2500并且可以基于存储器地址MA来激活PIM管芯2500的存储体BK0至BK15中的至少一个和PIM管芯2500的PE0至PE7中的至少一个。根据地址映射表AMT2,与存储体地址BA0至BA3相对应的物理地址PA的位中的至少一个(参见图3的BA0或BA1)对应于与列地址Column相对应的物理地址PA的位以上的位。参照图12,可以将数据写入或布置在由字线WL[0]和列选择线CSL[0]选择的存储体BK0的存储器单元MC中。接下来,可以将数据写入或布置在由字线WL[0]和列选择线CSL[1]选择的存储体BK0的存储器单元MC中。当重复以上过程时,可以将数据写入或布置在由字线WL[0]选择的存储体BK0的存储器单元MC中。如在以由字线WL[0]和列选择线CSL[0:3]选择的存储体BK0的存储器单元MC的顺序来布置数据的情况中一样,可以按照由字线WL[0]和列选择线CSL[0:3]选择的存储体BK4、BK8、BK12、BK2、BK6、BK10、BK14、BK1、BK3、BK5、BK7、BK9、BK11、BK13和BK15的存储器单元MC的顺序来布置数据。在将数据布置在由字线WL[0]选择的所有存储体BK0至BK15的存储器单元MC中之后,如以上描述中一样,可以将数据布置在由字线WL[1:3]选择的所有存储体BK0至BK15的存储器单元MC中。与根据图11的地址映射表AMT1的数据布置不同,在根据图12的地址映射表AMT2的数据布置的情况下,在将数据完全布置在由一条字线WL[0]选择的存储器单元MC中之后,可以发起由字线WL[1:3]选择的存储器单元MC中的数据的布置。
图13示出了由PE根据图12的数据布置执行的计算的示例。例如,向量A可以被布置在与顶存储体T_BK相对应的存储体BK0、BK4、BK8、BK12、BK2、BK6、BK10和BK14中,并且向量B可以被布置在与底存储体B_BK相对应的存储体BK1、BK5、BK9、BK13、BK3、BK7、BK11和BK15中。PE0至PE7可以通过对布置在与顶存储体T_BK相对应的存储体BK0、BK4,BK8、BK12、BK2、BK6、BK10和BK14中的向量A和布置在与底存储体B_BK相对应的存储体BK1、BK5、BK9、BK13、BK3、BK7、BK11和BK15中的向量B执行相加来生成向量C。可以执行任何其他计算来代替加法。向量C可以存储在PE0至PE7的寄存器REG中。参照图13,因为PE0至PE7中的每一个都被两个存储体共享,因此由于PE0至PE7执行计算,因而与根据地址映射表AMT1将数据布置在存储器单元MC中的方式相比,根据地址映射表AMT2将数据布置在由一条字线选择的所有存储器单元MC中的方式可以更有利。例如,存储器控制器1100可以彼此独立地将地址映射表AMT1应用于PIM管芯2100并将地址映射表AMT2应用于PIM管芯2500。因此,在处理器1200通过使用PIM管芯2500的PE0至PE7执行PIM计算的情况下,存储器控制器1100可以彼此独立地将地址映射表AMT1应用于PIM管芯2100并将地址映射表AMT2应用于PIM管芯2500,而不是将地址映射表AMT2共同应用于PIM管芯2100和2500,因此防止了处理器1200的正常操作的性能降低,该处理器1200的正常操作是通过使用其中PE0至PE7未被激活的PIM管芯2100来执行的。正常操作可以包括在不执行PE0至PE7的情况下根据读命令或写命令的PIM管芯2100的数据输入/输出操作。此外,因为存储器控制器1100支持不同的地址映射表AMT1和AMT2,所以在使用PIM管芯2500的PE0至PE7执行PIM计算的情况下可由处理器1200执行的程序重新布置数据的开销可以减少,并且在正常操作中可以利用存储体级的并行化。
图14示出了图5的处理器访问存储器控制器并且存储器控制器访问存储器设备的示例。例如,处理器1200可以以存储器映射I/O(MMIO)的方式访问存储器控制器1100。系统地址空间(或区域)可以包括分配给存储器控制器1100的空间。根据示例实施例,系统地址空间还可以包括分别分配给片上系统1000中的任何其他组件(例如,片上存储器1300、知识产权(IP)块和控制器)的空间(或区域)。处理器1200可以通过使用同一系统地址空间来访问和控制存储器控制器1100和片上系统1000中的任何其他组件。处理器1200可以访问系统地址空间中的分配给存储器控制器1100的空间,并且可以通过使用写指令将值写入分配给存储器控制器1100的空间中。存储器控制器1100可以对该值进行响应,并且例如可以接收处理器1200的存储器请求。存储器控制器1100可以忽略系统地址空间中除分配给存储器控制器1100的空间之外的剩余空间中写入的值。
系统地址空间中分配给存储器控制器1100的空间可以是物理地址空间,可以对应于物理地址空间,或者可以被映射到物理地址空间。物理地址空间可以对应于与存储器请求相关联的物理地址PA的范围。物理地址空间可以包括分配给控制寄存器1141的空间和分配给存储器设备2000的空间。系统地址空间中分配给存储器控制器1100的空间可以包括与物理地址空间中分配给控制寄存器1141的空间相对应的空间,并且处理器1200可以通过访问与分配给控制寄存器1141的空间相对应的空间来改变控制寄存器1141的值(或信息)。如以上描述中那样,系统地址空间中分配给存储器控制器1100的空间可以包括与物理地址空间中分配给存储器设备2000的空间相对应的空间,并且处理器1200可以通过访问与分配给存储器设备2000的空间相对应的空间来访问该存储器设备2000。
存储器控制器1100还可以以MMIO方式来访问存储器设备2000。物理地址空间可以包括分配给存储器设备2000的空间。存储器控制器1100可以访问物理地址空间中分配给存储器设备2000的空间,并且可以将物理地址空间中分配给存储器设备2000的空间的物理地址PA转换为存储器地址MA。
物理地址空间中分配给存储器设备2000的空间可以是存储器地址空间,可以对应于存储器地址空间,或者可以被映射到存储器地址空间。存储器地址空间可以对应于存储器地址MA的范围。存储器地址空间可以包括分配给PE控制器PECTRL0和PECTRL1的控制寄存器的空间以及分配给存储器单元的空间。物理地址空间中分配给存储器设备2000的空间可以包括与存储器地址空间中分配给PE控制器PECTRL0和PECTRL1的控制寄存器的空间相对应的空间,并且存储器控制器1100可以通过访问与分配给PE控制器PECTRL0和PECTRL1的控制寄存器的空间相对应的空间,来改变PE控制器PECTRL0和PECTRL1的控制寄存器的值(或信息)。如在以上描述中一样,物理地址空间中分配给存储器设备2000的空间可以包括与存储器地址空间中分配给存储器单元的空间相对应的空间,并且存储器控制器1100可以通过访问与分配给存储器单元的空间相对应的空间来访问存储器单元。存储器设备2000的PIM管芯2100至2800中的每一个的存储体BK0至BK15中的每一个的存储器单元以及PE控制器PECTRL0和PECTRL1的控制寄存器均可以被映射到与存储器设备2000的PIM管芯2100至2800中的每一个相关联的存储器地址。
图15示出了根据本发明构思的另一实施例的电子设备100c。电子设备100c可以包括片上系统1000、存储器设备2000_1至2000_4、插入器3000和封装板4000。存储器设备2000_1至2000_4中的每一个可以对应于上述存储器设备2000,并且存储器设备2000_1至2000_4的数目不限于图15所示的示例。插入器3000可以包括:多个通道的路径,所述多个通道允许片上系统1000访问存储器设备2000_1至2000_4。例如,插入器3000可以堆叠在封装板4000上。对于另一示例,可以在没有插入器3000的情况下将片上系统1000和存储器设备2000_1至2000_4堆叠在封装板4000上。
根据本发明构思的实施例的存储器控制器可以同时支持用于将物理地址转换为存储器地址的多个地址映射表。存储器控制器可以根据是否执行PIM管芯的PE来动态地选择多个地址映射表,并且可以最优地布置数据以适合于PE的执行。
在附图中由框表示的组件、元件、模块或单元(在本段落中统称为“组件”)中的至少一个(例如,处理器和存储器控制器)可以具体实现为根据示例性实施例的执行上述各个功能的各种数目的硬件、软件和/或固件结构。例如,这些组件中的至少一个可以使用直接电路结构,例如,存储器、硬件处理器、逻辑电路、查找表等,其可以通过一个或多个微处理器或其他控制装置的控制来执行各个功能。此外,这些组件中的至少一个可以由包含用于执行特定逻辑功能的一个或多个可执行指令并由一个或多个微处理器或其他控制装置执行的模块、程序或一部分代码具体实现。此外,这些组件中的至少一个可以包括或可以实现为诸如执行各个功能的中央处理单元(CPU)之类的处理器、微处理器等。这些组件中的两个或更多个可以组合成执行所组合的两个或更多个组件的所有操作或功能的单个组件。此外,这些组件中的至少一个的至少部分功能可以由这些组件中的另一个执行。此外,尽管在以上框图中未示出总线,但是可以通过总线来执行组件之间的通信。上述示例实施例的功能方案可以被实现为在一个或多个处理器上执行的算法。此外,由框表示的组件或者处理步骤可以将任意数目的相关技术用于电子配置、信号处理和/或控制、数据处理等。
尽管已经参考本发明构思的示例性实施例描述了本发明构思,但是对于本领域普通技术人员来说显而易见的是,可以在不脱离如在所附权利要求中说明的本发明构思的精神和范围的情况下,对其进行各种改变和修改。
Claims (20)
1.一种存储器控制器,包括:
存储器请求队列,被配置为存储与包括具有共享通道的第一存储器管芯和第二存储器管芯在内的存储器设备相关联的存储器请求;
地址转换器,被配置为基于所述存储器请求的物理地址的位来选择第一地址映射表和第二地址映射表中的一个地址映射表,并基于所述第一地址映射表和所述第二地址映射表中的所选择的地址映射表来将所述物理地址转换为用于所述第一存储器管芯和所述第二存储器管芯的存储器地址;以及
物理层,被配置为通过所述共享通道将所述存储器地址发送到所述存储器设备。
2.根据权利要求1所述的存储器控制器,其中,所述存储器请求的物理地址的位对应于堆叠标识符,所述堆叠标识符标识所述第一存储器管芯和所述第二存储器管芯。
3.根据权利要求2所述的存储器控制器,其中,所述存储器请求的物理地址的位是最高有效位。
4.根据权利要求1所述的存储器控制器,其中,所述第一存储器管芯和所述第二存储器管芯中的每一个包括多个存储体,所述多个存储体由所述存储器地址的存储体地址来标识,并且
其中,所述物理地址中的多个位中的通过所述第一地址映射表转换为所述存储器地址的存储体地址的第一组位的第一位置不同于所述物理地址中的多个位中的通过所述第二地址映射表转换为所述存储器地址的存储体地址的第二组位的第二位置。
5.根据权利要求4所述的存储器控制器,其中,所述存储器地址包括所述存储体地址、以及标识所述多个存储体中的每一个的存储器单元的行地址和列地址,并且
其中,所述物理地址的通过所述第二地址映射表转换为所述存储器地址的存储体地址的所述第二组位中的至少一个位对应于所述物理地址的通过所述第二地址映射表转换为所述存储器地址的列地址的多个位中的高位。
6.根据权利要求1所述的存储器控制器,其中,所述地址转换器还被配置为选择所述第一地址映射表,并且
其中,所述物理层还被配置为:基于所述存储器地址通过所述共享通道访问所述第一存储器管芯,并激活所述第一存储器管芯的多个存储体中的至少一个存储体。
7.根据权利要求1所述的存储器控制器,其中,所述地址转换器还被配置为选择所述第二地址映射表,并且
其中,所述物理层还被配置为:基于所述存储器地址通过所述共享通道访问所述第二存储器管芯,并激活所述第二存储器管芯的多个存储体中的至少一个存储体和所述第二存储器管芯的处理元件PE。
8.根据权利要求1所述的存储器控制器,其中,所述地址转换器包括:
地址范围寄存器,被配置为存储所述存储器请求的物理地址的位;
第一地址转换电路,被配置为基于所述第一地址映射表将所述物理地址转换为所述存储器地址;
第二地址转换电路,被配置为基于所述第二地址映射表将所述物理地址转换为所述存储器地址;以及
映射选择电路,被配置为基于存储在所述地址范围寄存器中的位的值来选择所述第一地址转换电路和所述第二地址转换电路中的一个。
9.根据权利要求1所述的存储器控制器,还包括:
存储器命令队列,被配置为存储与所述存储器请求相关联的存储器命令和所述存储器地址;
存储体状态寄存器,被配置为存储所述第一存储器管芯和所述第二存储器管芯中的每一个的多个存储体的各条状态信息;
命令调度器,被配置为基于所述多个存储体的所述各条状态信息来调整对存储在所述存储器命令队列中的所述存储器命令和所述存储器地址进行处理的顺序;
命令定序器,被配置为基于所述顺序将所述存储器命令和所述存储器地址输出到所述物理层;
系统总线接口电路,被配置为通过系统总线接收所述存储器请求,并将所述存储器请求提供给所述存储器请求队列;
读缓冲器,被配置为存储从所述存储器设备发送的读取数据;以及
写缓冲器,被配置为存储要被发送到所述存储器设备的写入数据。
10.一种片上系统,包括:
处理器,被配置为生成存储器请求;以及
存储器控制器,被配置为:
基于所述存储器请求的物理地址的位,选择第一地址映射表和第二地址映射表中的一个地址映射表;
基于所述第一地址映射表和所述第二地址映射表中的所选择的地址映射表,将所述物理地址转换为存储器设备的存储器地址;以及
基于所述存储器地址,通过共享通道来访问第一存储器管芯或第二存储器管芯中的一个。
11.根据权利要求10所述的片上系统,其中,所述第一存储器管芯和所述第二存储器管芯中的每一个包括多个存储体,并且所述多个存储体中的每一个包括多个存储器单元,并且
其中,所述存储器地址包括:堆叠标识符,所述堆叠标识符标识所述第一存储器管芯和所述第二存储器管芯;存储体地址,所述存储体地址标识所述多个存储体;以及行地址和列地址,所述行地址和所述列地址标识所述多个存储体中的每一个的多个存储器单元。
12.根据权利要求11所述的片上系统,其中,所述存储器控制器还被配置为:
将所述物理地址的第一位转换为所述堆叠标识符,所述物理地址的所述第一位是所述存储器请求的物理地址的位;
将所述物理地址的第二位转换为所述存储体地址;
将所述物理地址的第三位转换为所述行地址;以及
将所述物理地址的第四位转换为所述列地址。
13.根据权利要求12所述的片上系统,其中,所述第一位是所述物理地址的最高有效位。
14.根据权利要求12所述的片上系统,其中,所述第二位在所述物理地址中所处的位置基于所述第一地址映射表和所述第二地址映射表而改变。
15.根据权利要求12所述的片上系统,其中,在所述第一地址映射表中,所述第二位对应于所述第四位中的低位,并且
其中,在所述第二地址映射表中,所述第二位中的至少一个对应于所述第四位中的高位。
16.根据权利要求12所述的片上系统,其中,所述物理地址的放置在所述第一位至所述第四位下方的低位对应于高速缓存线。
17.根据权利要求10所述的片上系统,其中,所述存储器控制器包括地址转换器,并且
其中,所述地址转换器包括:
地址范围寄存器,被配置为存储所述存储器请求的物理地址的位;
第一地址转换电路,被配置为基于所述第一地址映射表将所述物理地址转换为所述存储器地址;
第二地址转换电路,被配置为基于所述第二地址映射表将所述物理地址转换为所述存储器地址;以及
映射选择电路,被配置为基于存储在所述地址范围寄存器中的位的值来选择所述第一地址转换电路和所述第二地址转换电路中的一个。
18.一种电子设备,包括:
存储器设备,包括第一存储器管芯、第二存储器管芯以及用于所述第一存储器管芯和所述第二存储器管芯的共享通道;以及
片上系统,包括:
处理器,被配置为生成存储器请求;以及
存储器控制器,被配置为:
基于所述存储器请求的物理地址的位,选择第一地址映射表和第二地址映射表中的一个地址映射表,
基于所述第一地址映射表和所述第二地址映射表中的所选择的地址映射表,将所述物理地址转换为所述存储器设备的存储器地址;以及
基于所述存储器地址,通过所述共享通道来访问所述第一存储器管芯和所述第二存储器管芯中的一个。
19.根据权利要求18所述的电子设备,其中,所述第一存储器管芯和所述第二存储器管芯是相同的,并且
其中,所述第一存储器管芯和所述第二存储器管芯中的每一个包括多个存储体和多个处理元件PE。
20.根据权利要求18所述的电子设备,其中,所述第一存储器管芯不同于所述第二存储器管芯,并且
其中,所述第二存储器管芯包括多个第一存储体和多个处理元件PE,并且所述第一存储器管芯包括多个第二存储体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0005882 | 2020-01-16 | ||
KR1020200005882A KR20210092460A (ko) | 2020-01-16 | 2020-01-16 | 복수의 어드레스 맵핑 테이블들을 저장하는 메모리 컨트롤러, 시스템 온 칩, 및 전자 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113138956A true CN113138956A (zh) | 2021-07-20 |
Family
ID=76809725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011121207.6A Pending CN113138956A (zh) | 2020-01-16 | 2020-10-19 | 包括地址映射表的存储器控制器、片上系统和电子设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11474950B2 (zh) |
KR (1) | KR20210092460A (zh) |
CN (1) | CN113138956A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546495A (zh) * | 2021-09-03 | 2022-05-27 | 北京睿芯众核科技有限公司 | 适用于risc-v架构处理器的地址属性检查的方法及系统 |
US11355181B2 (en) * | 2020-01-20 | 2022-06-07 | Samsung Electronics Co., Ltd. | High bandwidth memory and system having the same |
CN116737617A (zh) * | 2023-08-11 | 2023-09-12 | 上海芯高峰微电子有限公司 | 一种访问控制器 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11960438B2 (en) * | 2020-09-08 | 2024-04-16 | Rambus Inc. | Methods and circuits for streaming data to processing elements in stacked processor-plus-memory architecture |
US12020771B2 (en) | 2021-08-13 | 2024-06-25 | Micron Technology, Inc. | Die location detection for grouped memory dies |
US11972147B2 (en) * | 2022-04-19 | 2024-04-30 | Micron Technology, Inc. | Memory die stack chip id-based command structure |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
JP2005209058A (ja) | 2004-01-26 | 2005-08-04 | Megawin Technology Co Ltd | フラッシュメモリの読み書きの制御方法 |
US8135936B2 (en) | 2009-12-23 | 2012-03-13 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
JP4992114B2 (ja) | 2008-02-19 | 2012-08-08 | エヌイーシーコンピュータテクノ株式会社 | 主記憶装置及び主記憶装置のアドレス制御方法 |
JP2010211618A (ja) | 2009-03-11 | 2010-09-24 | Toshiba Corp | 半導体記憶装置 |
US9934143B2 (en) * | 2013-09-26 | 2018-04-03 | Intel Corporation | Mapping a physical address differently to different memory devices in a group |
US10409500B2 (en) | 2017-09-08 | 2019-09-10 | Intel Corporation | Multiple indirection granularities for mass storage devices |
US10338837B1 (en) | 2018-04-05 | 2019-07-02 | Qualcomm Incorporated | Dynamic mapping of applications on NVRAM/DRAM hybrid memory |
US11164847B2 (en) * | 2019-12-03 | 2021-11-02 | Intel Corporation | Methods and apparatus for managing thermal behavior in multichip packages |
US11175984B1 (en) * | 2019-12-09 | 2021-11-16 | Radian Memory Systems, Inc. | Erasure coding techniques for flash memory |
-
2020
- 2020-01-16 KR KR1020200005882A patent/KR20210092460A/ko unknown
- 2020-08-18 US US16/995,935 patent/US11474950B2/en active Active
- 2020-10-19 CN CN202011121207.6A patent/CN113138956A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11355181B2 (en) * | 2020-01-20 | 2022-06-07 | Samsung Electronics Co., Ltd. | High bandwidth memory and system having the same |
CN114546495A (zh) * | 2021-09-03 | 2022-05-27 | 北京睿芯众核科技有限公司 | 适用于risc-v架构处理器的地址属性检查的方法及系统 |
CN114546495B (zh) * | 2021-09-03 | 2022-12-20 | 北京睿芯众核科技有限公司 | 适用于risc-v架构处理器的地址属性检查的方法及系统 |
CN116737617A (zh) * | 2023-08-11 | 2023-09-12 | 上海芯高峰微电子有限公司 | 一种访问控制器 |
CN116737617B (zh) * | 2023-08-11 | 2023-12-29 | 上海芯高峰微电子有限公司 | 一种访问控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20210224195A1 (en) | 2021-07-22 |
US11474950B2 (en) | 2022-10-18 |
KR20210092460A (ko) | 2021-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11474950B2 (en) | Memory controller including plurality of address mapping tables, system on chip, and electronic device | |
US10642612B2 (en) | Memory device performing parallel arithmetic processing and memory module including the same | |
US10331354B2 (en) | Stacked memory device and a memory chip including the same | |
US11276459B2 (en) | Memory die including local processor and global processor, memory device, and electronic device | |
KR102453542B1 (ko) | 스킵 연산 모드를 지원하는 메모리 장치 및 그 동작 방법 | |
US20170358327A1 (en) | Memory device for performing internal process and operating method thereof | |
CN114514514B (zh) | 具有集成高速缓存的有源电桥小芯片 | |
US11158357B2 (en) | Method of performing internal processing operations with pre-defined protocol interface of memory device | |
JP2012521612A (ja) | コンフィギュラブルな帯域幅メモリ・デバイスおよび方法 | |
US11860803B2 (en) | Memory device including processing circuit, and electronic device including system on chip and memory device | |
US8006026B2 (en) | Multi-port memory and computer system provided with the same | |
CN103365801A (zh) | 存储器系统、用于控制存储器系统的方法和信息处理设备 | |
US11789644B2 (en) | Memory centric system incorporating computational memory | |
KR20220127601A (ko) | 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 | |
CN111916120A (zh) | 带宽提升的堆叠存储器 | |
US11281397B2 (en) | Stacked memory device performing function-in-memory (FIM) operation and method of operating the same | |
CN116737617B (zh) | 一种访问控制器 | |
WO2023274032A1 (zh) | 存储访问电路、集成芯片、电子设备及存储访问方法 | |
CN107369473B (zh) | 存储系统及其操作方法 | |
TWI757300B (zh) | 用於執行內部程序之記憶體裝置及其操作方法 | |
US11928039B1 (en) | Data-transfer test mode | |
US20240079036A1 (en) | Standalone Mode | |
WO2019114979A1 (en) | Transparent lrdimm mode and rank disaggregation for use with in-memory processing | |
US20240070093A1 (en) | Asymmetric Read-Write Sequence for Interconnected Dies |
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 |