CN110008147A - 存储器控制器以及用于对存储模块进行访问的方法 - Google Patents

存储器控制器以及用于对存储模块进行访问的方法 Download PDF

Info

Publication number
CN110008147A
CN110008147A CN201810015105.2A CN201810015105A CN110008147A CN 110008147 A CN110008147 A CN 110008147A CN 201810015105 A CN201810015105 A CN 201810015105A CN 110008147 A CN110008147 A CN 110008147A
Authority
CN
China
Prior art keywords
data
memory
access
access command
modification
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.)
Granted
Application number
CN201810015105.2A
Other languages
English (en)
Other versions
CN110008147B (zh
Inventor
山岗
杨崇和
李毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lanqi Technology Co Ltd
Montage Technology Shanghai Co Ltd
Original Assignee
Lanqi Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lanqi Technology Co Ltd filed Critical Lanqi Technology Co Ltd
Priority to US15/950,174 priority Critical patent/US11226768B2/en
Priority to US16/239,542 priority patent/US10929029B2/en
Publication of CN110008147A publication Critical patent/CN110008147A/zh
Application granted granted Critical
Publication of CN110008147B publication Critical patent/CN110008147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • 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/0656Data buffering 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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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 (AREA)
  • Read Only Memory (AREA)

Abstract

本申请公开了一种存储器控制器和用于对存储模块进行访问的方法。存储器控制器耦接在存储模块与主控制器之间以控制主控制器对存储模块的访问,所述存储器控制器包括:中心缓冲器,其耦接到所述主控制器,用于从所述主控制器接收数据访问命令,并且耦接到所述存储模块,用于向所述存储模块提供修改的数据访问命令;其中,所述中心缓冲器包括访问命令处理模块,其用于对所述数据访问命令进行处理以生成所述修改的数据访问命令;数据缓冲器,其耦接到所述中心缓冲器,用于从所述中心缓冲器接收所述修改的数据访问命令,并且耦接在所述主控制器与所述存储模块之间,用于在所述修改的数据访问命令的控制下在所述主控制器与所述存储模块之间交互数据。

Description

存储器控制器以及用于对存储模块进行访问的方法
技术领域
本申请涉及存储器技术领域,更具体地,涉及一种存储器控制器以及用于对存储模块进行访问的方法。
背景技术
在现今的计算机系统中,内存模组提供中央处理器(CPU)运算时的数据访问以及存储。随着内存模组读取速度的不断提高,为了确保CPU和内存模组之间的信号传输质量,内存模组会使用具有缓冲功能的控制芯片来缓冲由CPU发出的操作命令以及对应的存储地址,并且内存模组上还具有可以双向缓冲数据的数据缓冲器。
然而,现有的内存模组的操作方式较为单一,仅支持读取、写入等简单操作,这限制了内存模组的功能。因此,有必要改进现有的内存模组的数据访问方法。
发明内容
本申请的一个目的在于提供一种存储器控制器以及用于对存储模块进行访问的方法,其能够实现复杂的数据访问操作。
根据本申请的一个方面,提供了一种存储器控制器,其耦接在存储模块与主控制器之间以控制所述主控制器对所述存储模块的访问,所述存储器控制器包括:中心缓冲器,其耦接到所述主控制器,用于从所述主控制器接收数据访问命令,并且耦接到所述存储模块,用于向所述存储模块提供修改的数据访问命令;其中,所述中心缓冲器包括访问命令处理模块,其用于对所述数据访问命令进行处理以生成所述修改的数据访问命令;数据缓冲器,其耦接到所述中心缓冲器,用于从所述中心缓冲器接收所述修改的数据访问命令,并且耦接在所述主控制器与所述存储模块之间,用于在所述修改的数据访问命令的控制下在所述主控制器与所述存储模块之间交互数据。
在一些实施例中,所述访问命令处理模块对所述数据访问命令进行处理包括:对所述数据访问命令中的访问地址进行编码,从而所述修改的数据访问命令包括经编码的访问地址。
在一些实施例中,所述访问命令处理模块对所述数据访问命令进行处理包括:以预定地址处理算法对所述数据访问命令中的访问地址进行处理以生成基于所述访问地址的一组访问地址,其中该组访问地址中的每个访问地址对应于一个修改的数据访问命令。
在一些实施例中,该组访问地址包括递增或递减的连续的多个访问地址。
在一些实施例中,该组访问地址包括等间隔或非等间隔的不连续的多个访问地址。
在一些实施例中,所述修改的数据访问命令具有与所述数据访问命令相同的访问类型。
在一些实施例中,所述数据缓冲器包括数据处理模块,所述数据处理模块用于从所述主控制器或所述存储模块接收数据,以预定数据处理算法对所述数据进行处理,并且将经处理的数据发送给所述主控制器或所述存储模块。
在一些实施例中,所述数据缓冲器包括数据处理模块,所述数据处理模块用于从所述存储模块接收数据,以预定数据处理算法对所述数据进行处理,并且将经处理的数据发送给所述存储模块。
在一些实施例中,所述访问命令处理模块对所述数据访问命令进行处理包括:以预定地址处理算法对所述数据访问命令中的访问地址进行处理以生成基于所述访问地址的一组访问地址,其中该组访问地址中的每个访问地址对应于一个修改的数据访问命令;所述数据缓冲器包括数据处理模块,所述数据处理模块用于根据所述修改的数据访问命令从所述存储模块接收数据,以预定数据处理算法对所述数据进行处理,并且根据所述修改的数据访问命令将经处理的数据发送给所述存储模块。
在一些实施例中,所述数据缓冲器包括多个数据缓冲单元组,每个所述数据缓冲单元组对应于一个数据处理子模块,其中所述多个数据处理子模块相互耦接以在所述多个数据缓冲单元组之间交互数据。
在一些实施例中,所述存储模块和所述存储器控制器符合JEDEC双倍速率同步动态随机存取存储器标准,所述中心缓冲器被集成在寄存时钟驱动器中,并且所述寄存器时钟驱动器通过数据缓冲器控制总线耦接到所述数据缓冲器。
在本申请的另一些方面,还提供了一种存储器,其包括上述方面的存储器控制器和存储模块;还提供了一种计算机系统,其包括上述方面的存储器。
在本申请的另一个方面,还提供了一种用于对存储模块进行访问的方法,所述存储模块通过存储器控制器耦接到主控制器,所述存储器控制器包括数据缓冲器以及具有访问命令处理模块的中心缓冲器,其中所述访问命令处理模块用于对数据访问命令进行处理以生成修改的数据访问命令;所述方法包括:由所述中心缓冲器接收数据访问命令;由所述中心缓冲器对所述数据访问命令进行处理以生成所述修改的数据访问命令;由所述中心缓冲器将所述修改的数据访问命令提供给所述存储模块和所述数据缓冲器;由所述数据缓冲器根据所述修改的数据访问命令在所述主控制器与所述存储模块之间交互数据。
以上为本申请的概述,可能有简化、概括和省略细节的情况,因此本领域的技术人员应该认识到,该部分仅是示例说明性的,而不旨在以任何方式限定本申请范围。本概述部分既非旨在确定所要求保护主题的关键特征或必要特征,也非旨在用作为确定所要求保护主题的范围的辅助手段。
附图说明
通过下面说明书和所附的权利要求书并与附图结合,将会更加充分地清楚理解本申请内容的上述和其他特征。可以理解,这些附图仅描绘了本申请内容的若干实施方式,因此不应认为是对本申请内容范围的限定。通过采用附图,本申请内容将会得到更加明确和详细地说明。
图1示出了根据本申请一个实施例的存储器系统100;
图2示出了BCOM总线指示进行数据处理操作的一个示例性时序图;
图3示出了根据本申请一个实施例的利用存储器控制器来进行块操作的示例;
图4示出了根据本申请一个实施例的中心缓冲器400的一种示例性结构;
图5示出了根据本申请一个实施例的数据缓冲器500的一种示例性结构;
图6示出了根据本申请一个实施例的用于对存储模块进行访问的方法600。
具体实施方式
在下面的详细描述中,参考了构成其一部分的附图。在附图中,类似的符号通常表示类似的组成部分,除非上下文另有说明。详细描述、附图和权利要求书中描述的说明性实施方式并非旨在限定。在不偏离本申请的主题的精神或范围的情况下,可以采用其他实施方式,并且可以做出其他变化。可以理解,可以对本申请中一般性描述的、在附图中图解说明的本申请内容的各个方面进行多种不同构成的配置、替换、组合,设计,而所有这些都明确地构成本申请内容的一部分。
图1示出了根据本申请一个实施例的存储器系统100。
如图1所示,该存储器系统100包括存储模块102,其在本实施例中被构造为存储模组,用于存储数据。在一些实施例中,存储模块102可以是符合JEDEC双倍速率同步动态随机存取存储器(SDRAM)标准的存储模块,例如包括JEDEC DDR1、DDR2、DDR3、DDR4以及其他双倍速率存储器标准。此外,存储模块102也可以是符合其他标准或协议的内部存储器,例如SDRAM或RAMBUS内部存储器。在一些实施例中,存储模块102可以包括易失性存储器(例如随机存储器)、非易失性存储器(快闪存储器)或者这两者的组合。此外需要说明的是,在此所述的存储模块102可以是一颗内存颗粒,也可以包括两颗或更多颗内存颗粒。
如图1所示,存储器系统100还包括存储器控制器104,其具有中心缓冲器106和数据缓冲器(DB_P)108。具体地,中心缓冲器106耦接在主控制器110和存储模块102之间,其可以从主控制器110接收包括访问地址和访问类型的数据访问命令。例如,数据访问命令可以是对存储模块102中的一个数据存储地址(即访问地址)进行访问(例如读取或写入)的命令。数据缓冲器108耦接在存储模块102和主控制器110之间,用于在中心缓冲器106的控制下在存储模块102和主控制器110之间交互数据。对于DDR3或DDR4标准的存储器系统,中心缓冲器可以被集成在寄存时钟驱动器(RCD)中。相应地,中心缓冲器通过命令/地址(Command/Address,C/A)总线耦接到主控制器110以接收数据访问命令。对于符合DDR4标准的存储器系统,该C/A总线可以包括管脚A0-A17、管脚BG0-BG1和/或管脚BA0-BA1。其中,管脚BG0-BG1用于确定存储模块102中的哪个存储体组(Memory Bank Group)被处理,例如被写入或被读取;管脚BA0-BA1用于确定存储模块102中的哪个存储体(Memory Bank)被处理;而管脚A0-A17则用于寻址并确定一个存储体中的哪一个存储单元被处理。此外,A16(RAS_n)、A15(CAS_n)以及A14(WE_n)这三个管脚的输入可以用于确定被输入的数据访问命令,例如读取命令、写入命令以及其他被预先定义的控制命令。
不同于现有的中心缓冲器,中心缓冲器106中设置有访问命令处理模块(CA_P)112,其可以被构造为具有数据处理和运算能力的模块。在一些实施例中,访问命令处理模块112可以由软件、硬件、固件或其组合来实现。例如,访问命令处理模块112可以是专用集成电路或现场可编程逻辑阵列芯片。访问命令处理模块112可以对接收自主控制器110的数据访问命令进行处理,从而生成修改的数据访问命令。
进一步地,访问命令处理模块112可以将修改的数据访问命令提供给存储模块102和数据缓冲器108,从而这两者可以根据修改的数据访问命令来继续执行数据访问操作。在一些实施例中,访问命令处理模块112可以根据数据访问命令中包括的访问地址生成一个或更多个访问地址,这些访问地址可以被提供给存储模块102以在访问时寻址使用。同时,访问命令处理模块112还根据数据访问命令的访问类型来生成对应的访问类型,这样,数据缓冲器108可以根据所生成的访问类型来控制存储模块102中被访问的存储单元与主控制器110之间的数据交互。
访问命令处理模块112可以以各种所需的方式来生成修改的数据访问命令。在一些实施例中,访问命令处理模块可以对数据访问命令中的访问地址进行编码,从而使得修改的数据访问命令包括经编码的访问地址。在另一些实施例中,访问命令处理模块可以以预定地址处理算法对数据访问命令中的访问地址进行处理,从而生成基于该访问地址的一组访问地址。该组新生成的访问地址中的每个访问地址都可以对应于一个修改的数据访问命令。可选地,这些修改的数据访问命令可以具有与原来的数据访问命令相同的访问类型。例如,接收自主控制器110的数据访问命令可能是对存储模块102中的一个访问地址进行读取的数据访问命令,则新生成的修改的数据访问命令可以是对与该访问地址相关的多个访问地址进行读取的数据访问命令。在一些实施例中,该组修改的数据访问命令中包括的一组访问地址可以包括递增或递减的连续的多个访问地址,其中该组访问地址可以以收到的访问地址作为初始地址。这样,主控制器110仅需要向存储器控制器104提供一个数据访问命令即可以访问存储模块102中的多个存储单元,这有效地提高了数据访问的效率。在另一些实施例中,该组访问地址也可以包括等间隔的不连续的多个访问地址,其中该间隔可以是1、2或其他自然数。特别地,对于存储模块102中以阵列方式排布的存储阵列,如果访问地址序列的间隔与该存储阵列的行宽相对应,则该组访问地址实质上对应于对存储阵列中的一列存储单元(或至少对该列存储单元的一部分)。对于很多矢量运算来说,这种按列访问的方式可以极大地提高运算效率。在一些实施例中,该组访问地址可以包括非等间隔的不连续的多个访问地址。这些访问地址之间的间隔可以根据实际运算所需的数据来进行设置。特别地,对于存储模块102中以阵列方式排布的存储阵列,如果访问地址序列与该存储阵列对角线上的存储单元相对应,则该组访问地址实质上对应于对存储阵列中的对角线上的存储单元进行访问,这种数据访问方式对于很多矢量运算是很有利的。
在一些实施例中,访问命令处理模块112可以采用加密算法对数据访问命令中的访问地址进行加密。这样,加密后的访问地址不同于明文方式的访问地址。例如,经加密的数据的存储地址将不同于主控制器提供的数据存储地址。当需要读取存储模块中的数据时,读取命令中包括访问地址可以被访问命令处理模块112经过相同的解密运算,从而可以在存储模块的对应位置读取出所需的数据。
在图1所示的实施例中,除了在中心缓冲器106处设置了访问命令处理模块112之外,还在数据缓冲器108中设置了数据处理模块(D_P)114。该数据处理模块114可以从其所耦接的主控制器110和存储模块102接收数据,并且以预定数据处理算法对接收的数据进行处理,之后再将经处理的数据发送给主控制器110和存储模块102。在一些实施例中,当主控制器110指示从存储模块102读取数据时,数据缓冲器108可以缓冲从存储模块102接收的数据,并且由数据处理模块114对该数据进行处理。这样,主控制器110获得的数据是经处理的数据。在另一些实施例中,当主控制器110指示向存储模块102写入数据时,数据缓冲器108也可以缓冲从主控制器110接收的数据,并且由数据处理模块114对该数据进行处理,然后再写入存储模块102。这样,被存储在存储模块102中的数据是经处理的数据。
在一些实施例中,数据处理模块114可以从存储模块102接收数据并且对该数据进行处理,从而将经处理的数据发送给存储模块102。换言之,得益于在数据缓冲器108中的数据处理模块114,数据可以直接在存储器控制器104中被处理,而无需被转移到主控制器110中来进行处理,这极大地减少了主控制器110与存储模块102之间的数据交互,并且可以有效地提高数据处理效率。
在一些实施例中,数据处理模块114对数据进行的处理可以包括各种位运算。例如,这些位运算可以包括:位左移(bit-left-shift)、位右移(bit-right-shift)、位左循环(bit-left-rotate)、位右循环(bit-right-rotate)、位与(bit-and)、位或(bit-or)、位异或(bit-xor)、位同或(bit-nxor)、清零(bit-clear)、置高(bit-set)或类似运算。除了前述的位运算外,数据处理模块114还可以进行各种类型的数据运算操作,例如:值交换(XCHG)、赋值(MOV)、递增(INC)、递减(DEC)或其他类似运算。
在一些实施例中,数据处理模块114也可以采用加密/解密算法对数据进行加密/解密处理,以保证存储在存储模块中的数据安全以及数据在主控制器与存储模块之间的传输安全。例如,在向存储模块存储数据时进行加密处理,以及在从存储模块中读出数据时进行解密处理。
在一些实施例中,数据缓冲器108可以包括多个数据缓冲单元组108i,并且每个数据缓冲单元组108i对应于一个数据处理子模块114i。每个数据处理子模块114i除了耦接在其所在的数据缓冲单元组108i的链路中之外,不同的数据处理子模块114i还通过双向接口BOP(例如图1中的BOP01、BOP12…BOP67以及BOP70)相互耦接,从而能够在多个数据缓冲单元组108i之间交互数据。不同的数据缓冲单元组108i之间交互数据可以满足位移、循环、递增、递减等运算操作的需求。在一些实施例中,BOP接口可以是两线的双向总线结构,包含一个时钟以及1位双向数据线,通过约定的协议进行双向数据交互。在另一些实施例中,该接口也可以是三线总线结构,包括一个时钟,一个传输方向指示信号,以及1位双向数据线。BOP接口的带宽可以通过增加双向数据线的数量来增加。
数据处理模块114可以响应中心缓冲器106提供的操作命令。例如,该操作命令可以通过中心缓冲器106与数据缓冲器108之间的数据缓冲器控制总线(BCOM)来传输。在一些符合DDR4标准的存储器系统中,例如澜起科技提供的M88DDR4DB02和M88DDR4RCD02芯片(关于这些芯片的技术信息,可以参考其产品技术手册,这些产品技术手册的全部内容通过引用方式并入本申请),数据缓冲器控制总线可以是4位信号线,表1示出了BCOM总线可以提供的操作命令的一种示例。
表1操作命令列表
需要说明的是,在实际应用中,数据处理模块114中的每个子模块114i可以执行相同的操作,也可以执行不同的操作。图2示出了BCOM总线指示进行数据处理操作的一个示例性时序图。如图2所示,BCOM总线上增加了OP的编码以用于指示对应的数据处理操作。
本领域技术人员可以理解,虽然图1所示的实施例中同时包括了访问命令处理模块112和数据处理模块114,但是在实际应用中,存储器控制器可以仅包括这两者中的一个。例如,存储器控制器可以仅包括访问命令处理模块112,用以生成修改的数据访问命令,这些修改的数据访问命令可以指示数据缓冲器108不对数据进行修改而仅进行常规的读取、写入等操作。再例如,存储器控制器也可以仅包括数据处理模块114,用以对缓冲的数据进行处理,具体的数据操作的类型可以由中心缓冲器通过BCOM总线来提供。
可以看出,图1所示的存储器控制器100可以实现各种复杂的数据处理操作。根据具体实施例的不同,使得访问命令处理模块进行上述的复杂访问操作可以通过各种方式来进行触发。在一个实施例中,这种复杂访问操作可以利用存储模块的协议中没有用到的命令地址总线上的位(bit)来指示。在另一些实施例中,也可以在访问命令处理模块中预先存储一个触发地址(例如存储模块中的一个存储地址),当中心缓冲器接收到包括该触发地址的数据访问命令后,即可触发该复杂访问操作。在另一些实施例中,也可以通过在存储模块的数据访问命令前的一个时钟周期插入相应的代码来指示是否触发复杂访问操作。
图3示出了根据本申请一个实施例的利用存储器控制器来进行块操作的示例。如图3所示,存储模块可以包括一个存储阵列302,其中的存储单元304以阵列方式进行排布。在一些实施例中,存储阵列304可包括多个存储块,其中每个存储块可以包括例如4096个存储单元。同时,同一个存储块中包括的存储单元的地址可以是连续的,例如地址起始于addr0而结束于addr4095。
对于图3所示的存储阵列302,利用本申请实施例的存储器控制器可以实现复杂的块操作。以块读取为例,主控制器可以向存储器控制器发送数据访问命令(读取操作),其包括了存储块的起始地址addr0。响应于该数据访问命令,存储器控制器可以获取该起始地址addr0,并且基于该起始地址addr0生成一组访问地址,该组访问地址可以包括从起始地址直至结束地址addr4095的共4096个访问地址。基于该组访问地址,存储器控制器可以生成4096个修改的数据访问命令,并且这些修改的数据访问命令被发送给存储模块以及数据缓冲器。随后,数据缓冲器相应地接收并缓冲这些访问地址中存储的数据,进而将数据提供给主控制器。可以看出,在整个数据读取过程中,主控制器仅需向存储器控制器提供一个数据访问命令,即可读取一个块中4096个存储单元的数据,这大大提高了数据读取效率。需要说明的是,上述块操作中所读取的存储单元的数量仅仅是示例性的。在实际应用中,可以对任意数量的存储单元进行处理。
上述块读取的操作没有使用数据缓冲器中的数据处理模块。在另一些例子中,也可以使用数据处理模块来实现较为复杂的数据访问操作。例如,可以对图3所示的存储阵列中的存储块进行“块改写”操作。具体地,主控制器可以向存储器控制器发送数据访问命令(块改写操作),其包括了存储块的起始地址addr0。响应于该数据访问命令,存储器控制器可以获取该起始地址addr0,并且基于该起始地址addr0生成一组访问地址,该组访问地址包括从起始地址直至结束地址addr4095的共4096个访问地址。基于该组访问地址,存储器控制器可以生成4096个数据读取命令,并且这些数据读取命令发送给存储模块以及数据缓冲器。随后,数据缓冲器相应地接收并缓冲这些访问地址中存储的数据。不同于前述的块读取操作,块改写操作对应的修改的数据访问命令还可以包括指示数据缓冲器中的数据处理模块进行相关数据处理的操作(除了前述的数据读取操作之外)。例如,该数据处理操作可以是指示对读出的数据进行位与或位左循环的操作,并且进一步指示之后将经处理的数据写回到对应的存储单元中(或者继续缓冲在数据缓冲器中)。可以看出,在块改写操作的过程中,主控制器仅仅需要提供一次块改写命令,即可实现整个块中所有存储单元的数据改写。可以理解,在前述块改写操作的过程中,经数据处理模块处理后的数据也可以被提供给主控制器,而不是写回到存储模块中。
与块改写类似,数据处理模块114也可以对某个存储单元进行读改写操作。简言之,读改写操作是指主控制器发起读操作后在存储模块上对读取的数据按需求进行数据处理,之后直接由存储器控制器将处理后的数据写回给存储模块。具体地,在进入“读改写”工作模式之后,数据被从存储模块中读取,并且暂存在对应的数据处理模块中。之后,中心缓冲器的访问命令处理模块可以按照设定的处理流程通知对应的数据处理模块进行例如位逻辑操作或数据运算操作(参见表1所示)。在完成这些位逻辑操作或数据运算操作之后,“读改写”操作完成,访问命令处理模块可以控制将数据写回到存储模块中,从而完成一次完整的“读改写”操作。
图4示出了根据本申请一个实施例的中心缓冲器400的一种示例性结构。
如图4所示,该中心缓冲器400包括耦接在接收侧(D侧)和输出侧(Q侧)之间的两个信号路经,分别为缓冲器402以及访问命令处理模块404。对于缓冲器402这一路径,在接收到包括访问地址和访问类型的数据访问命令(CMD&ADDR)后,该缓冲器402不会对数据访问命令进行额外的处理,而仅仅是缓冲该命令,并且之后将其从输出侧输出。而对于访问命令处理模块404,其包括计算单元406和控制单元408。当其接收到由主控模块(未示出)发出的数据访问命令后,会按预先设置的触发条件判断是否需要进行地址处理及对应的操作命令生成,也即是否需要对数据访问命令进行修改。当满足触发条件后,访问命令处理模块404利用计算单元406来进行命令修改,并且生成修改的数据访问命令。之后,控制单元408会通过多路选择器(MUX)将中心缓冲器400的输出由缓冲器402切换到访问命令处理模块404的输出,同时通过BCOM总线来发送相应的控制信号到数据缓冲器的每个数据处理模块(图中未示出),从而指示这些数据处理模块执行相应的数据处理操作。
在一些实施例中,缓冲器402和访问命令处理模块404可以由寄存器表中存储的配置信息进行配置,而寄存器表的配置信息可以由SMBus接口来进行修改。
图5示出了根据本申请一个实施例的数据缓冲器500的一种示例性结构
如图5所示,该数据缓冲器500包括耦接在主控制器侧与存储模块侧之间的两个数据路径,分别为经由双向缓冲器502和经由数据处理模块504。对于双向缓冲器502这一路径,其不会对接收到的数据进行处理,而仅仅是缓冲数据。而对于数据处理模块504,其包括计算单元506和控制单元508。其中,计算单元506还通过BOP接口与相邻的数据缓冲器的数据处理模块交互数据。因此,计算单元506能够根据控制单元508从BCOM总线上接收到的控制命令来对数据进行相应的运算处理。当运算需要其他数据缓冲器的数据时,数据处理模块504可以通过BOP接口与相邻数据缓冲器进行数据交互,其中,BOP_L接口用于和左侧的数据缓冲器进行数据交互,而BOP_R接口用于和右侧的数据缓冲器进行数据交互。
在一些实施例中,双向缓冲器502和数据处理模块504可以由寄存器表中存储的配置信息进行配置。
需要说明的是,图4和图5所示的中心缓冲器和数据缓冲器的电路结构仅仅是示例性的,在实际应用中,可以根据需要对这些电路结构进行修改。
可以理解,本申请的实施例的存储器控制器可以被应用于存储器中,并且这种存储器系统也可以被用于不同的计算机系统中。
图6示出了根据本申请一个实施例的用于对存储模块进行访问的方法600。该方法600可以由例如图1所示的存储器控制器来执行。
如图6所示,该方法600可以包括步骤602,由所述中心缓冲器接收数据访问命令;步骤604,由所述中心缓冲器对所述数据访问命令进行处理以生成所述修改的数据访问命令;步骤606,由所述中心缓冲器将所述修改的数据访问命令提供给所述存储模块和所述数据缓冲器;以及步骤608,由所述数据缓冲器根据所述修改的数据访问命令在所述主控制器与所述存储模块之间交互数据。
在一些实施例中,步骤604可以包括:对所述数据访问命令中的访问地址进行编码,从而所述修改的数据访问命令包括经编码的访问地址。
在一些实施例中,步骤604可以包括:以预定地址处理算法对所述数据访问命令中的访问地址进行处理以生成基于所述访问地址的一组访问地址,其中该组访问地址中的每个访问地址对应于一个修改的数据访问命令。
在一些实施例中,该组访问地址包括递增或递减的连续的多个访问地址。
在一些实施例中,该组访问地址包括等间隔或非等间隔的不连续的多个访问地址。
在一些实施例中,所述修改的数据访问命令具有与所述数据访问命令相同的访问类型。
在一些实施例中,步骤608可以包括:根据所述修改的数据访问命令,由所述数据缓冲器从所述存储模块接收数据,以预定数据处理算法对所述数据进行处理,并且将经处理的数据发送给所述存储模块。
关于本申请实施例的用于对存储模块进行访问的方法的更多细节,可以参考前述的存储器控制器的相关描述,在此不再赘述。
应当注意,尽管在上文详细描述中提及了用于对存储模块进行访问的方法的若干步骤,和存储器控制器的若干模块或子模块,但是这种划分仅仅是示例性的而非强制性的。实际上,根据本申请的实施例,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
本技术领域的一般技术人员可以通过研究说明书、公开的内容及附图和所附的权利要求书,理解和实施对披露的实施方式的其他改变。在权利要求中,措词“包括”不排除其他的元素和步骤,并且措辞“一”、“一个”不排除复数。在本申请的实际应用中,一个零件可能执行权利要求中所引用的多个技术特征的功能。权利要求中的任何附图标记不应理解为对范围的限制。

Claims (20)

1.一种存储器控制器,其耦接在存储模块与主控制器之间以控制所述主控制器对所述存储模块的访问,所述存储器控制器包括:
中心缓冲器,其耦接到所述主控制器,用于从所述主控制器接收数据访问命令,并且耦接到所述存储模块,用于向所述存储模块提供修改的数据访问命令;其中,所述中心缓冲器包括访问命令处理模块,其用于对所述数据访问命令进行处理以生成所述修改的数据访问命令;
数据缓冲器,其耦接到所述中心缓冲器,用于从所述中心缓冲器接收所述修改的数据访问命令,并且耦接在所述主控制器与所述存储模块之间,用于在所述修改的数据访问命令的控制下在所述主控制器与所述存储模块之间交互数据。
2.根据权利要求1所述的存储器控制器,其特征在于,所述访问命令处理模块对所述数据访问命令进行处理包括:对所述数据访问命令中的访问地址进行编码,从而所述修改的数据访问命令包括经编码的访问地址。
3.根据权利要求1所述的存储器控制器,其特征在于,所述访问命令处理模块对所述数据访问命令进行处理包括:以预定地址处理算法对所述数据访问命令中的访问地址进行处理以生成基于所述访问地址的一组访问地址,其中该组访问地址中的每个访问地址对应于一个修改的数据访问命令。
4.根据权利要求3所述的存储器控制器,其特征在于,该组访问地址包括递增或递减的连续的多个访问地址。
5.根据权利要求3所述的存储器控制器,其特征在于,该组访问地址包括等间隔或非等间隔的不连续的多个访问地址。
6.根据权利要求3所述的存储器控制器,其特征在于,所述修改的数据访问命令具有与所述数据访问命令相同的访问类型。
7.根据权利要求1所述的存储器控制器,其特征在于,所述数据缓冲器包括数据处理模块,所述数据处理模块用于从所述主控制器或所述存储模块接收数据,以预定数据处理算法对所述数据进行处理,并且将经处理的数据发送给所述主控制器或所述存储模块。
8.根据权利要求1所述的存储器控制器,其特征在于,所述数据缓冲器包括数据处理模块,所述数据处理模块用于从所述存储模块接收数据,以预定数据处理算法对所述数据进行处理,并且将经处理的数据发送给所述存储模块。
9.根据权利要求1所述的存储器控制器,其特征在于,所述访问命令处理模块对所述数据访问命令进行处理包括:以预定地址处理算法对所述数据访问命令中的访问地址进行处理以生成基于所述访问地址的一组访问地址,其中该组访问地址中的每个访问地址对应于一个修改的数据访问命令;
所述数据缓冲器包括数据处理模块,所述数据处理模块用于根据所述修改的数据访问命令从所述存储模块接收数据,以预定数据处理算法对所述数据进行处理,并且根据所述修改的数据访问命令将经处理的数据发送给所述存储模块。
10.根据权利要求7所述的存储器控制器,其特征在于,所述数据缓冲器包括多个数据缓冲单元组,每个所述数据缓冲单元组对应于一个数据处理子模块,其中所述多个数据处理子模块相互耦接以在所述多个数据缓冲单元组之间交互数据。
11.根据权利要求1所述的存储器控制器,其特征在于,所述存储模块和所述存储器控制器符合JEDEC双倍速率同步动态随机存取存储器标准,所述中心缓冲器被集成在寄存时钟驱动器中,并且所述寄存器时钟驱动器通过数据缓冲器控制总线耦接到所述数据缓冲器。
12.一种存储器,包括根据权利要求1至11中任一项所述的存储器控制器和存储模块。
13.一种计算机系统,包括根据权利要求12所述的存储器。
14.一种用于对存储模块进行访问的方法,所述存储模块通过存储器控制器耦接到主控制器,所述存储器控制器包括数据缓冲器以及具有访问命令处理模块的中心缓冲器,其中所述访问命令处理模块用于对数据访问命令进行处理以生成修改的数据访问命令;所述方法包括:
由所述中心缓冲器接收数据访问命令;
由所述中心缓冲器对所述数据访问命令进行处理以生成所述修改的数据访问命令;
由所述中心缓冲器将所述修改的数据访问命令提供给所述存储模块和所述数据缓冲器;
由所述数据缓冲器根据所述修改的数据访问命令在所述主控制器与所述存储模块之间交互数据。
15.根据权利要求14所述的方法,其特征在于,由所述中心缓冲器对所述数据访问命令进行处理以生成所述修改的数据访问命令的步骤包括:
对所述数据访问命令中的访问地址进行编码,从而所述修改的数据访问命令包括经编码的访问地址。
16.根据权利要求14所述的方法,其特征在于,由所述中心缓冲器对所述数据访问命令进行处理以生成所述修改的数据访问命令的步骤包括:
以预定地址处理算法对所述数据访问命令中的访问地址进行处理以生成基于所述访问地址的一组访问地址,其中该组访问地址中的每个访问地址对应于一个修改的数据访问命令。
17.根据权利要求16所述的方法,其特征在于,该组访问地址包括递增或递减的连续的多个访问地址。
18.根据权利要求16所述的方法,其特征在于,该组访问地址包括等间隔或非等间隔的不连续的多个访问地址。
19.根据权利要求16所述的方法,其特征在于,所述修改的数据访问命令具有与所述数据访问命令相同的访问类型。
20.根据权利要求14所述的方法,其特征在于,所述数据缓冲器包括数据处理模块,所述数据处理模块用于以预定数据处理算法对数据进行处理以生成经处理的数据,由所述数据缓冲器根据所述修改的数据访问命令在所述主控制器与所述存储模块之间交互数据的步骤进一步包括:
根据所述修改的数据访问命令,由所述数据缓冲器从所述存储模块接收数据,以预定数据处理算法对所述数据进行处理,并且将经处理的数据发送给所述存储模块。
CN201810015105.2A 2018-01-04 2018-01-08 存储器控制器以及用于对存储模块进行访问的方法 Active CN110008147B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/950,174 US11226768B2 (en) 2018-01-04 2018-04-11 Memory controller and method for accessing memory module
US16/239,542 US10929029B2 (en) 2018-01-04 2019-01-04 Memory controller and method for accessing memory modules and processing sub-modules

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810008762 2018-01-04
CN2018100087624 2018-01-04

Publications (2)

Publication Number Publication Date
CN110008147A true CN110008147A (zh) 2019-07-12
CN110008147B CN110008147B (zh) 2021-11-19

Family

ID=67164716

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810015105.2A Active CN110008147B (zh) 2018-01-04 2018-01-08 存储器控制器以及用于对存储模块进行访问的方法
CN201810928985.2A Active CN110007850B (zh) 2018-01-04 2018-08-15 存储器控制器以及用于对存储模块进行访问的方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201810928985.2A Active CN110007850B (zh) 2018-01-04 2018-08-15 存储器控制器以及用于对存储模块进行访问的方法

Country Status (1)

Country Link
CN (2) CN110008147B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007850A (zh) * 2018-01-04 2019-07-12 澜起科技股份有限公司 存储器控制器以及用于对存储模块进行访问的方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929029B2 (en) 2018-01-04 2021-02-23 Montage Technology Co., Ltd. Memory controller and method for accessing memory modules and processing sub-modules
US11226768B2 (en) 2018-01-04 2022-01-18 Montage Technology Co., Ltd. Memory controller and method for accessing memory module
CN113448891B (zh) * 2020-03-25 2023-07-21 澜起科技股份有限公司 存储器控制器以及用于监测对存储模块的访问的方法
CN113704144A (zh) * 2020-05-22 2021-11-26 澜起科技股份有限公司 存储器控制器以及用于控制对存储模块的访问的方法
CN114385067B (zh) * 2020-10-19 2023-07-18 澜起科技股份有限公司 用于存储器系统的数据更新方法和存储器控制器

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1536311A1 (fr) * 2003-11-28 2005-06-01 Bull S.A. Système cryptographique haut débit à architecture modulaire
US20050259954A1 (en) * 1999-02-05 2005-11-24 Hideo Ando Stream data generation method and partial erase processing method
CN1902612A (zh) * 2003-11-13 2007-01-24 英特尔公司 具有隐式到显示存储器命令扩展的带缓冲的存储器模块
US20130073815A1 (en) * 2011-09-19 2013-03-21 Ronald R. Shea Flexible command packet-header for fragmenting data storage across multiple memory devices and locations
US20160132269A1 (en) * 2013-03-15 2016-05-12 Intel Corporation Method and apparatus for setting high address bits in a memory module
CN105868125A (zh) * 2015-01-23 2016-08-17 澜起科技(上海)有限公司 缓冲存储器及用于控制内部存储器数据访问的装置和方法
CN106126447A (zh) * 2015-05-07 2016-11-16 三星电子株式会社 控制存储装置的方法、存储器模块和存储系统
CN106155926A (zh) * 2015-04-09 2016-11-23 澜起科技(上海)有限公司 存储器及存储器的数据交互方法
CN106295381A (zh) * 2015-05-19 2017-01-04 澜起科技(上海)有限公司 用于监控对内部存储器的数据访问的装置以及内部存储器
CN110007850A (zh) * 2018-01-04 2019-07-12 澜起科技股份有限公司 存储器控制器以及用于对存储模块进行访问的方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259954A1 (en) * 1999-02-05 2005-11-24 Hideo Ando Stream data generation method and partial erase processing method
CN1902612A (zh) * 2003-11-13 2007-01-24 英特尔公司 具有隐式到显示存储器命令扩展的带缓冲的存储器模块
EP1536311A1 (fr) * 2003-11-28 2005-06-01 Bull S.A. Système cryptographique haut débit à architecture modulaire
US20130073815A1 (en) * 2011-09-19 2013-03-21 Ronald R. Shea Flexible command packet-header for fragmenting data storage across multiple memory devices and locations
US20160132269A1 (en) * 2013-03-15 2016-05-12 Intel Corporation Method and apparatus for setting high address bits in a memory module
CN105868125A (zh) * 2015-01-23 2016-08-17 澜起科技(上海)有限公司 缓冲存储器及用于控制内部存储器数据访问的装置和方法
CN106155926A (zh) * 2015-04-09 2016-11-23 澜起科技(上海)有限公司 存储器及存储器的数据交互方法
CN106126447A (zh) * 2015-05-07 2016-11-16 三星电子株式会社 控制存储装置的方法、存储器模块和存储系统
CN106295381A (zh) * 2015-05-19 2017-01-04 澜起科技(上海)有限公司 用于监控对内部存储器的数据访问的装置以及内部存储器
CN110007850A (zh) * 2018-01-04 2019-07-12 澜起科技股份有限公司 存储器控制器以及用于对存储模块进行访问的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007850A (zh) * 2018-01-04 2019-07-12 澜起科技股份有限公司 存储器控制器以及用于对存储模块进行访问的方法
CN110007850B (zh) * 2018-01-04 2021-12-03 澜起科技股份有限公司 存储器控制器以及用于对存储模块进行访问的方法

Also Published As

Publication number Publication date
CN110007850A (zh) 2019-07-12
CN110007850B (zh) 2021-12-03
CN110008147B (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
CN110008147A (zh) 存储器控制器以及用于对存储模块进行访问的方法
US11790981B2 (en) Method of performing internal processing operation of memory device
US20230236836A1 (en) Memory device for processing operation, data processing system including the same, and method of operating the memory device
CN109840223A (zh) 存储器装置、包括其的电子装置和电子装置的操作方法
TW202044043A (zh) 記憶體裝置、資料處理系統以及操作記憶體裝置的方法
US7840744B2 (en) Rank select operation between an XIO interface and a double data rate interface
CN106233258B (zh) 可变宽度纠错
US11726690B2 (en) Independent parallel plane access in a multi-plane memory device
JP7216247B1 (ja) バンク割り当てを備えたマルチポート不揮発性メモリデバイスおよび関連するシステムおよび方法
CN110007849A (zh) 存储器控制器以及用于对存储模块进行访问控制的方法
US20200293452A1 (en) Memory device and method including circular instruction memory queue
KR20160034978A (ko) 메모리 컨트롤러 커넥터의 메모리 커넥터에의 매핑
KR102464305B1 (ko) 반도체 장치
US11907120B2 (en) Computing device for transceiving information via plurality of buses, and operating method of the computing device
US20220391321A1 (en) Concurrent page cache resource access in a multi-plane memory device
CN107369473B (zh) 存储系统及其操作方法
US10929029B2 (en) Memory controller and method for accessing memory modules and processing sub-modules
US11226768B2 (en) Memory controller and method for accessing memory module
CN111831591B (zh) 用于对存储模块进行访问控制的装置及方法
TWI757300B (zh) 用於執行內部程序之記憶體裝置及其操作方法
US8335895B2 (en) System and device having alternative bit organization
US7865656B2 (en) Storage controller and storage control method
TWI820713B (zh) 積體電路及執行於其之方法
US20240125851A1 (en) Multi-modal memory apparatuses and systems
JP4557179B2 (ja) マイクロコンピュータ装置

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