存储器控制器以及用于监测对存储模块的访问的方法

文档序号:48893 发布日期:2021-09-28 浏览:38次 >En<

阅读说明:本技术 存储器控制器以及用于监测对存储模块的访问的方法 (Memory controller and method for monitoring access to memory module ) 是由 史蒂芬·泰 李毅 于 2020-03-25 设计创作,主要内容包括:本申请公开了一种存储器控制器,其耦接在存储模块与主控制器之间以控制主控制器对存储模块的访问。存储器控制器包括中心缓冲器,被配置为通过命令/地址信道耦接在主控制器和存储模块之间,用于从主控制器接收命令/地址信号并向存储模块提供命令/地址信号。中心缓冲器包括:耦接至命令/地址信道以接收命令/地址信号的识别模块,被配置为基于接收的命令/地址信号生成访问历史信息;耦接至识别模块以接收访问历史信息的压缩模块,被配置为对访问历史信息进行压缩处理;以及发送模块,压缩的访问历史信息经由发送模块被从中心缓冲器发送出去。(A memory controller is coupled between a memory module and a host controller to control access of the host controller to the memory module. The memory controller includes a central buffer configured to be coupled between the host controller and the memory modules over a command/address channel for receiving command/address signals from the host controller and providing command/address signals to the memory modules. The center buffer includes: an identification module coupled to the command/address channel to receive the command/address signal, configured to generate access history information based on the received command/address signal; a compression module coupled to the identification module to receive the access history information, configured to compress the access history information; and a transmitting module, the compressed access history information being transmitted from the central buffer via the transmitting module.)

存储器控制器以及用于监测对存储模块的访问的方法

技术领域

本申请涉及存储器

技术领域

,更具体地,涉及一种存储器控制器以及用于监测对存储模块的访问的方法。

背景技术

在现今的计算机系统中,内存模组提供中央处理器(CPU)运算时的数据访问以及存储。对于按照JEDEC规范设计的标准内存模组,其上的中心缓冲器(RCD)仅具有缓冲功能,不能记录和上传CPU对内存模组的访问命令,因此不能满足用户希望分析CPU对内存模组的访问行为的需求。对于另一类内存模组,例如澜起科技的HSDIMM内存模组,其在标准内存模组上增加了记录和上传CPU访问命令的功能,然而受限于内存模组上的用于记录访问命令的存储空间大小和用于上传访问命令的通道传输速度,这样的内存模组不能连续地记录和上传CPU对内存模组的访问命令。

因此,有必要对现有的内存模组进行改进,以实现连续记录和上传CPU访问命令的功能。

发明内容

本申请的一个目的在于提供一种存储器控制器以及用于监测对存储模块的访问的方法,其能够实现连续地记录和上传CPU对内存模组的访问命令。

根据本申请的一个方面,提供了一种存储器控制器,其耦接在存储模块与主控制器之间以控制所述主控制器对所述存储模块的访问,所述存储器控制器包括:中心缓冲器,所述中心缓冲器被配置为通过命令/地址信道耦接在所述主控制器和所述存储模块之间,用于从所述主控制器接收命令/地址信号并向所述存储模块提供所述命令/地址信号。所述中心缓冲器包括:识别模块,所述识别模块耦接至所述命令/地址信道以接收所述命令/地址信号,所述识别模块被配置为基于所述接收的命令/地址信号生成访问历史信息;压缩模块,所述压缩模块耦接至所述识别模块以接收所述访问历史信息,所述压缩模块被配置为对所述访问历史信息进行压缩处理;以及发送模块,经由所述发送模块,所述压缩的访问历史信息被从所述中心缓冲器发送出去。

在一些实施例中,所述识别模块包括用于筛选和识别命令/地址信号的访问识别规则,所述识别模块被配置为基于所述访问识别规则生成所述访问历史信息。在一些这样的实施例中,所述访问识别规则包括预定地址空间的信息,所述识别模块基于所述接收的命令/地址信号中包括的地址信息是否属于所述预定地址空间来将所述接收的命令/地址信号转换为访问历史信息。

在一些实施例中,所述压缩模块包括用于对所述访问历史信息进行压缩处理的压缩算法。

在一些实施例中,所述中心缓冲器还包括配置模块,经由所述配置模块,所述中心缓冲器所使用的规则或算法能够被预先或动态地配置。在一些这样的实施例中,所述中心缓冲器还被配置为从所述主控制器接收配置数据,从而所述配置模块利用所述配置数据来对所述中心缓冲器所使用的规则或算法进行配置。

在一些实施例中,所述发送模块包括耦接到所述主控制器或另一外部控制器的输出信道。在一些这样的实施例中,所述输出信道包括PCIe信道、CXL信道、SMBus信道、DCA信道和无线通信信道中的一个。

在一些实施例中,所述中心缓冲器还包括记录模块,所述记录模块耦接至所述识别模块以接收并存储所述访问历史信息。在一些这样的实施例中,所述记录模块还耦接至所述压缩模块,其中所述压缩模块经由所述记录模块从所述识别模块接收所述访问历史信息。

在一些实施例中,所述中心缓冲器还包括记录模块,所述记录模块耦接至所述压缩模块以接收并存储所述压缩的访问历史信息。在一些这样的实施例中,所述记录模块还耦接至所述发送模块,其中所述发送模块经由所述记录模块从所述压缩模块接收所述压缩的访问历史信息。

在一些实施例中,所述中心缓冲器还包括加密模块,所述加密模块被配置为对所述压缩的访问历史信息进行加密处理。在一些这样的实施例中,所述加密模块还被配置为预先或动态地选择多种加密算法中的一种对所述压缩的访问历史信息进行加密处理。在一些这样的实施例中,所述中心缓冲器还包括标记模块,所述标记模块用于对一个或多个压缩并加密的访问历史信息进行标记,以识别不同的压缩的访问历史信息并区别地标记所使用的加密算法。

在一些实施例中,所述中心缓冲器还包括标记模块,所述标记模块用于对一个或多个压缩的访问历史信息进行标记,以识别不同的压缩的访问历史信息。

在本申请的另一些方面,还提供了一种存储器,其包括上述方面的存储器控制器和存储模块;还提供了一种计算机系统,其包括上述方面的存储器。

在本申请的另一个方面,还提供了一种用于监测对存储模块的访问的方法,所述存储模块通过存储器控制器耦接到主控制器,所述存储器控制器包括中心缓冲器,所述中心缓冲器被配置为通过命令/地址信道耦接在所述主控制器和所述存储模块之间,用于从所述主控制器接收命令/地址信号并向所述存储模块提供所述命令/地址信号,所述方法包括:通过所述中心缓冲器的耦接至所述命令/地址信道的识别模块接收所述命令/地址信号并基于所述接收的命令/地址信号生成访问历史信息;通过所述中心缓冲器的耦接至所述识别模块的压缩模块接收所述访问历史信息并对所述访问历史信息进行压缩处理;以及通过所述中心缓冲器的发送模块接收所述压缩的访问历史信息并将所述压缩的访问历史信息从所述中心缓冲器发送出去。

以上为本申请的概述,可能有简化、概括和省略细节的情况,因此本领域的技术人员应该认识到,该部分仅是示例说明性的,而不旨在以任何方式限定本申请范围。本概述部分既非旨在确定所要求保护主题的关键特征或必要特征,也非旨在用作为确定所要求保护主题的范围的辅助手段。

附图说明

通过下面说明书和所附的权利要求书并与附图结合,将会更加充分地清楚理解本申请内容的上述和其他特征。可以理解,这些附图仅描绘了本申请内容的若干实施方式,因此不应认为是对本申请内容范围的限定。通过采用附图,本申请内容将会得到更加明确和详细地说明。

图1示出了根据本申请一个实施例的存储器系统;

图2示出了根据本申请一个实施例的中心缓冲器;

图3示出了根据本申请另一个实施例的中心缓冲器;

图4示出了根据本申请另一个实施例的中心缓冲器;

图5示出了根据本申请另一个实施例的中心缓冲器;

图6示出了根据本申请另一个实施例的中心缓冲器;

图7示出了根据本申请一个实施例的用于监测对存储模块的访问的方法。

具体实施方式

在下面的详细描述中,参考了构成其一部分的附图。在附图中,类似的符号通常表示类似的组成部分,除非上下文另有说明。详细描述、附图和权利要求书中描述的说明性实施方式并非旨在限定。在不偏离本申请的主题的精神或范围的情况下,可以采用其他实施方式,并且可以做出其他变化。可以理解,可以对本申请中一般性描述的、在附图中图解说明的本申请内容的各个方面进行多种不同构成的配置、替换、组合,设计,而所有这些都明确地构成本申请内容的一部分。

图1示出了根据本申请一个实施例的存储器系统100。

如图1所示,该存储器系统100包括存储模块102,其在本实施例中被构造为存储模组,用于存储数据。在一些实施例中,存储模块102可以是符合JEDEC双倍速率同步动态随机存取存储器(SDRAM)标准的存储模块,例如包括JEDEC DDR、DDR2、DDR3、DDR4、DDR5以及其他双倍速率存储器标准。此外,存储模块102也可以是符合其他标准或协议的内部存储器,例如RAMBUS内部存储器,也可以是符合未来存储器标准或协议的存储器。在一些实施例中,存储模块102可以包括易失性存储器(例如随机存储器)、非易失性存储器(快闪存储器,例如NAND或NOR快闪存储器)或者这两者的组合。在另一些实施例中,存储模块102还可以是采用不同的生产工艺制造的新型存储器,包括但不限于:磁阻式存储器、相变存储器、电阻式存储器、半浮栅存储器,或者任意类型的其他存储器。需要说明的是,图1仅作为示例,在其他实施例中,存储模块也可以只包括一个存储体,或者每个存储体包括多于两个的存储单元,每个存储体中的存储单元的数量可以相同或者不同。此外需要说明的是,在此所述的存储模块102可以是一颗内存颗粒,也可以包括两颗或更多颗内存颗粒。

进一步地,存储模块102所包含的存储阵列或存储器颗粒的结构可以采用各种适合的互连结构。例如,多个存储器颗粒可以并联地构成一个存储模块;替代地,多个存储器颗粒也可以采用多级互连结构(例如两级)。例如,一个或多个存储器颗粒作为第一级存储,而另外的一个或多个存储器颗粒可以作为第二级存储,提供不同层级的存储。而较下层级的第二存储级可以通过第一级存储与存储模块整体的外部交互数据。

如图1所示,存储器系统100还包括存储器控制器104,其具有中心缓冲器106。具体地,中心缓冲器106耦接在主控制器110和存储模块102之间,其可以从主控制器110接收包括访问命令和访问地址的命令/地址(Command/Address,C/A)信号。例如,C/A信号可以包括存储模块102中的一个数据存储地址(即访问地址)以及对该访问地址进行访问(例如读取或写入)的命令。进一步地,中心缓冲器106可以将接收的C/A信号提供给存储模块102,从而存储模块102可以根据C/A信号来执行相应的数据访问操作。对于DDR3或DDR4标准的存储器系统,中心缓冲器可以被集成在寄存时钟驱动器(RCD)中。相应地,中心缓冲器106通过C/A信道耦接在主控制器110与存储模块102之间,以从主控制器110接收C/A信号并将接收的C/A信号提供给存储模块102。对于符合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)和ACT_n这四个管脚的输入可以用于确定被输入的数据访问命令,例如读取命令、写入命令以及其他被预先定义的控制命令。

存储器控制器104还可以包括数据缓冲器(DB)108,其耦接在存储模块102和主控制器110之间,用于在中心缓冲器106的控制下在存储模块102和主控制器110之间交互数据。中心缓冲器106可以将C/A信号提供给数据缓冲器108,数据缓冲器108可以根据接收到的C/A信号来控制存储模块102中被访问的存储单元与主控制器110之间的数据交互。

不同于现有的中心缓冲器,中心缓冲器106中设置有C/A信号监测模块(CA_Z)112,其可以被构造为具有数据处理和运算能力的模块。在一些实施例中,C/A信号监测模块112可以由软件、硬件、固件或其组合来实现。C/A信号监测模块112可以对接收自主控制器110的C/A信号进行识别并压缩,从而生成压缩的主控制器110对存储模块102的访问历史信息。进一步地,中心缓冲器106还包括发送模块114,C/A信号监测模块112可以将其生成的压缩的访问历史信息提供给发送模块114,从而将压缩的访问历史信息从中心缓冲器106发送出去。下面将进一步结合图2至图6描绘本申请的中心缓冲器的一些示例。

图2示出了根据本申请一个实施例的中心缓冲器200的一种示例性结构。

如图2所示,中心缓冲器200包括耦接在C/A信道的接收侧(D侧)和输出侧(Q侧)之间的主信号路径和耦接到主信号路径的分支信号路径,其中分支信号路径包括C/A信号监测模块202和发送模块204。对于主信号路径,在从接收侧接收到包括访问命令和访问地址的C/A信号后,会将C/A信号从其输出侧输出。

对于分支信号路径,其中的C/A监测模块202可以包括识别模块206和压缩模块208。识别模块206耦接到C/A信道的主信号路径以接收在C/A信道上传输的C/A信号。识别模块206可以对在C/A信道上传输的C/A信号进行实时侦听,并且可以提取C/A信号中包括的访问命令和访问地址,并基于侦听到的C/A信号生成访问历史信息,其中访问历史信息可以包括主控制器(例如图1所示的主控制器110)对存储模块(例如图1所示的存储模块102)的访问命令(例如读取、写入等)和每个访问命令所对应的访问地址。在某些实施方式中,识别模块206可以提取每个C/A信号中包括的访问地址和访问命令并基于提取自每个C/A信号的信息分别生成访问历史信息。换句话说,识别模块206可以为每个C/A信号分别生成一条访问历史信息。在某些实施例中,识别模块206可以基于提取自多个C/A信号的访问地址和访问命令生成一条访问历史信息。换句话说,识别模块206可以在侦听多个C/A信号后针对该多个C/A信号生成一条访问历史信息。例如,识别模块206可以在侦听5个C/A信号后基于这5个C/A信号中包括的访问地址和访问命令生成一条访问历史信息,然后在侦听接下来的5个C/A信号后基于接下来的5个C/A信号中包括的访问地址和访问命令生成下一条访问历史信息。本领域技术人员可以理解,可以基于每个C/A信号中包括的访问地址和访问命令的数据大小灵活地选择生成访问历史信息的方式和/或数量(例如灵活地选择生成一条访问历史信息所需要侦听的C/A信号的数量),本申请对此不做限制。

进一步地,识别模块206还可以包括用于筛选和识别C/A信号的访问识别规则,识别模块206可以基于这些访问识别规则生成访问历史信息。

在某些实施方式中,访问识别规则可以包括预定地址空间的信息,例如存储模块(例如图1所示的存储模块102)中的一个数据存储地址的范围(例如,存储模块102中的第一存储子模块所包括的第一存储单元至第三存储单元),识别模块206在侦听每个C/A信号时确定每个C/A信号中包括的访问地址是否属于该预设地址空间(例如,每个C/A信号中包括的访问地址是否落入访问识别规则中包括的数据存储地址的范围):响应于确定一个C/A信号中包括的访问地址属于预设地址空间,识别模块206基于该C/A信号生成访问历史信息;否则,响应于确定一个C/A信号中包括的访问地址不属于预设地址空间,识别模块206不再基于该C/A信号生成访问历史信息。在一些实施例中,预定地址空间可以是系统规定的安全访问空间,例如其中存储有访问受限的数据。

在某些实施方式中,作为替代的和/或额外的,访问识别规则还可以包括预定访问命令类型。例如,针对存储模块(例如如图1所示的存储模块102)中的一个数据存储地址的范围(例如,存储模块102中的第一存储子模块所包括的第一存储单元至第三存储单元),该数据存储地址的范围可能存储有整个系统的配置数据,因而针对该存储地址范围的写入命令应当被严格记录。在这样的情况下,除了确定每个C/A信号中包括的访问地址是否属于上述存储地址范围,识别模块206还进一步判断每个C/A信号中包括的命令类型是否为写入命令:响应于确定一个C/A信号中包括的命令类型为写入命令,识别模块206针对该C/A信号生成访问历史信息;否则,响应于确定一个C/A信号中包括的命令类型不是写入命令,识别模块206不再针对该C/A信号生成访问历史信息。针对如上所述的数据存储地址的范围,根据这样的访问识别规则,识别模块206仅针对写入命令生成访问历史信息进一步减小了生成的访问历史信息的数据量,更方便对数据进行后续处理(例如如下所述的压缩处理、发送处理等)。再例如,当存储模块(例如图1所示的存储模块102)中的一个数据存储地址的范围内存储有机密数据(如涉及用户商业秘密的数据)时,系统也可以被配置为严格记录针对该存储地址范围的读取命令。类似于如上讨论的,除了确定每个C/A信号中包括的访问地址是否属于上述存储机密数据的存储地址范围外,识别模块206还可以判断每个C/A信号中包括的命令类型是否为读取命令并仅针对包括读取命令的C/A信号生成访问历史信息,以减小生成的访问历史信息的数据量。本领域技术人员可以理解,识别模块206可以针对存储系统不同的记录需求而被配置为针对包括不同访问命令类型的C/A信号生成访问历史信息,本申请对此不做限制。

在一些实施方式中,访问识别规则可以不包括任何预定地址空间的信息而仅包括预定访问命令类型。在这样的情况下,识别模块206不再判断C/A信号包括的访问地址而仅判断C/A信号包括的访问命令类型,例如针对所有的包括写入命令的C/A信号生成访问历史信息。

压缩模块208耦接到识别模块206以接收识别模块206生成的访问历史信息,并可以对识别模块206生成的访问历史信息进行压缩处理。在某些实施方式中,压缩模块208可以基于访问历史信息中包括的关于访问地址的信息进行压缩处理。例如,多个C/A信号中包括的访问地址可能是一组连续的存储地址,而表示这些连续地址中的每个地址之间可能具有多个相同的比特。在这样的情况下,为了对基于这些C/A信号生成的访问历史信息进行压缩处理,压缩模块208可以将这些具有多个相同比特的地址中相同的比特提取出来作为其共有部分,而另外保留每个地址中不同的比特,即通过删去冗余比特的方式实现多个连续地址的压缩。

可以理解,在实际应用中,访问历史信息中需要压缩的数据主要是访问地址数据。因此,不同的压缩算法对应的压缩算法压缩率主要体现在对访问地址数据的压缩比率上。通常来说,一个存储模块中相邻近的地址通常采用相同的安全策略(例如,存储模块102中的第一存储子模块所包括的所有存储单元可能采用相同的安全策略)。因此,对于某些高压缩比率的压缩算法,其可以将存储模块按某种预设的方式划分为不同的子区域,从而在压缩针对这些子区域的访问历史信息时,压缩存储地址而使得压缩后的访问历史信息仅保留某一子区域被访问的信息,而不需要保留该子区域中的具体哪个存储单元被访问的信息。例如,针对图1所述的存储模块102,其中的第一存储子模块可以被划分为第一子区域,第二存储子模块可以被划分为第二子区域,以此类推。对于针对存储模块102的访问历史信息,其可以被压缩为仅表示某个C/A信号针对第一子区域进行了写入、读取等操作,而不具体显示针对该子区域(即第一存储子模块)的哪一存储单元进行了写入、读取等操作,从而减小需要发送的访问历史信息的数据量。可以理解,存储模块可以根据实际需求以各种方式划分子区域,而压缩算法的压缩比率与存储模块被划分的子区域的数量或者每个子区域的大小相关联。

在某些实施方式中,例如当某一时间段访问历史信息数据量特别巨大时,压缩模块208还可以被配置为直接将访问地址数据从访问历史信息中去除而仅保留针对存储模块的操作(例如读取、写入等)以及对应于每个操作的次数,或者包含更多或更少参数、方面的其他统计信息。例如,访问历史信息可以表示针对存储模块进行了30次读取操作和20次写入操作而不具体显示这些读取或写入操作针对的存储地址,从而保证访问历史信息的实时发送(如下所讨论的)。

可以理解,压缩模块208还可以使用其他的压缩算法对识别模块206生成的访问历史信息进行压缩处理,例如哈夫曼编码、Rice算法、LZ77算法等,本申请对此不做限制。

发送模块204耦接至压缩模块208以接收经压缩模块208压缩处理的访问历史信息,并可以将这些压缩的访问历史信息从中心缓冲器200发送出去。发送模块204可以包括耦接至主控制器或另一外部控制器(在图2中未示出,该外部控制器可以包括例如用户使用的另一分析访问历史信息的电脑、手机、平板电脑等,本申请对此不做限制)的输出信道,经压缩模块208压缩处理的访问历史信息通过该输出信道发送至耦接的主控制器或另一外部控制器。在某些实施方式中,该输出信道可以是一高速信道,例如PCIe信道、CXL信道或者无线通信(Wireless)信道等适于高速输出信息的信道,以增加发送模块204发送数据的速率。在某些实施方式中,该输出信道也可以是SMBus信道(采用I2C或类似协议)或DCA信道(构造为主控制器与中心缓冲器之间的双向通信路径)等。

本领域技术人员可以理解,在一些情况下,发送模块204发送数据的速率可能是有限的,相对于识别模块206初始生成的访问历史信息的数据大小而言,发送模块204的有限的发送速率可能无法满足实时发送访问历史信息的需求。针对此,通过压缩模块208的压缩处理,可显著地减小发送模块204需要发送的访问历史信息的数据量。在一些实施方式中,通过为压缩模块208选择和配置适当的压缩算法从而实现合适的压缩率以及为发送模块204选择具有特定发送数据速率的输出信道,使得压缩模块208实时生成的压缩的访问历史信息的数据量可以与发送模块204的发送数据的速率相匹配(例如,实时生成的压缩的访问历史信息的数据量不大于发送模块204发送数据的最大速率),因而可以实现实时地发送访问历史信息。

图3示出了根据本申请另一个实施例的中心缓冲器300的一种示例性结构。中心缓冲器300具有与图2所示的中心缓冲器200大致类似的结构,例如中心缓冲器300同样包括C/A监测模块302和发送模块304,其中C/A监测模块302也具有识别模块306以及压缩模块308,在此不再赘述。

中心缓冲器300还另外包括配置模块310,配置模块310耦接到识别模块306和/或压缩模块308,从而使得识别模块306的访问识别规则和/或压缩模块308的压缩算法可以被预先或动态地配置。在一种实施例中,识别模块306的访问识别规则和/或压缩模块308的压缩算法可以被预先配置,即在整个存储器系统(例如图1所示的存储器系统100)运行之前,识别模块306的访问识别规则和/或压缩模块308的压缩算法就已被配置。在另一种实施方式中,在整个存储器系统(例如图1所示的存储器系统100)的运行期间,识别模块306的访问识别规则和/或压缩模块308的压缩算法可以被动态地配置,例如,根据运行状况动态地配置。

在某些实施方式中,配置模块310可以被耦接到主控制器(例如图1所述的主控制器110),从而使得可以通过主控制器将配置数据传递至配置模块310以对访问识别规则和/或压缩算法进行配置。在某些实施方式中,配置模块310可以耦接到一个外部控制器(未示出),这样可以通过该外部控制器将配置数据传递至配置模块310以对访问识别规则和/或压缩算法进行配置。

在某些实施方式中,配置模块310可以存储有多组用于配置识别模块306的访问识别规则和/或压缩模块308的压缩算法的预设配置数据,配置模块310可以如上所述的耦接到主控制器(例如图1所述的主控制器110)或外部控制器(未示出),以接收配置命令,该配置命令可以在存储的多组预设配置数据中选择一组预设配置数据以配置识别模块306的访问识别规则和/或压缩模块308的压缩算法。

在某些实施方式中,配置模块310可以自动地配置识别模块306的访问识别规则和/或压缩模块308的压缩算法。在一种实施方式中,配置模块310可以存储有多组用于配置识别模块306的访问识别规则和/或压缩模块308的压缩算法的预设配置数据,同时配置模块310还针对每组预设配置数据存储有不同的应用条件。在存储器系统(例如图1所示的存储器系统100)的运行期间,配置模块310可以在满足不同应用条件的情况下自动地应用不同的预设配置数据,以实现访问识别规则和/或压缩算法的自动动态配置。例如,配置模块310可以包括三组不同的预设配置数据A、B和C,其中预设配置数据A的压缩算法压缩率大于预设配置数据B的压缩算法压缩率,预设配置数据B的压缩算法压缩率大于预设配置数据C的压缩算法压缩率。配置模块310会在识别模块306生成的未压缩的访问历史信息的数据量大于一阀值α时应用预设配置数据A,在识别模块306生成的未压缩的访问历史信息的数据量小于一阀值β时应用预设配置数据C,在识别模块306生成的未压缩的访问历史信息的数据量处于阀值α和β之间时应用预设配置数据B,其中阀值α大于阀值β。

在配置模块310与主控制器相互耦接的实施方式中,配置模块310与主控制器之间的耦接可以通过现有的信道(例如C/A信道)实现。例如,可以在配置模块310中或者在中心缓冲器中的其他模块中预设配置命令解码表,其包括配置数据或配置命令与C/A信道上传输的信号之间的对应关系。主控制器可以在C/A信道空闲时通过C/A信道发送信号,该信号基于配置命令解码表被转换为配置数据或配置命令,从而用于对配置模块310进行配置。可以理解,在一些实施例中,配置数据也可以不经解码而直接经由C/A信道发送给中心缓冲器,并且由其对配置模块310进行配置。

在一些实施例中,用于将配置数据或配置命令传递至配置模块310的信道可以与发送模块304发送访问历史信息的信道是不同的信道,从而使得配置数据或配置命令的传输不占用发送模块304发送访问历史信息的信道。例如,可以提供另外的信道用于配置数据或配置命令的传递。利用这样的实施方式,对访问识别规则和/或压缩算法的配置/选择不会影响访问历史信息的发送,因此可以在发送访问历史信息的同时对访问识别规则和/或压缩算法进行配置,从而实现访问识别规则和/或压缩算法的动态配置。

可以理解,在一些实施例中,发送模块304可以通过双向信道与主控制器或其他外部控制器耦接,并且发送模块304还可以具有接收数据或信号的能力,从而配置数据/配置命令可以经由发送模块304接收。

图4示出了根据本申请另一个实施例的中心缓冲器400的一种示例性结构。中心缓冲器400具有与图2所示的中心缓冲器200大致类似的结构,例如中心缓冲器400同样包括C/A监测模块402和发送模块404,其中C/A监测模块402也具有识别模块406以及压缩模块408,在此不再赘述。

中心缓冲器400还包括记录模块412,记录模块412耦接到识别模块406以接收识别模块406生成的访问历史信息。在这样的实施方式中,记录模块412可以存储接收自识别模块406的访问历史信息,例如,从而使得可以方便地查询未压缩的原始访问历史信息。

进一步并可选地,记录模块412还可以同时耦接至压缩模块408,即耦接在识别模块406和压缩模块408之间,使得压缩模块408经由记录模块412从识别模块406接收访问历史信息。在这样的实施方式中,由于访问历史信息首先被存储在记录模块412中,压缩模块408可以灵活地对多条访问历史信息一起进行分析并进行压缩处理。例如,在如上所述的基于访问历史信息中包括的访问地址信息进行压缩处理的压缩算法中,由于记录模块412存储了访问历史信息,压缩模块408可以对多条访问历史信息进行分析,确定是否有多条访问历史信息包括一串连续的地址,从而可以确定是否需要通过隐去其中相同的表示连续地址的比特以实现压缩处理。

图5示出了根据本申请另一个实施例的中心缓冲器500的一种示例性结构。中心缓冲器500具有与图2所示的中心缓冲器200大致类似的结构,例如中心缓冲器500同样包括C/A监测模块502和发送模块504,其中C/A监测模块502也具有识别模块506以及压缩模块508,在此不再赘述。

中心缓冲器500还包括记录模块514,记录模块514耦接到压缩模块508以接收压缩模块508生成的压缩的访问历史信息。在这样的实施方式中,记录模块514可以存储接收自压缩模块508的压缩的访问历史信息,例如,从而使得可以方便地查询压缩的访问历史信息。

进一步并可选地,记录模块514还可以同时耦接至发送模块504,即耦接在压缩模块508和发送模块504之间,使得发送模块504经由记录模块514从压缩模块508接收压缩的访问历史信息。换言之,记录模块514可以作为访问历史信息的缓冲器。这对于一段时间内要发送的压缩的访问历史信息数据量过大时是有利的,因为压缩的访问历史信息首先被存储在了记录模块514中,这样发送模块504可以按顺序地对积压的压缩的访问历史信息进行处理。

本领域技术人员可以理解,对于本申请的中心缓冲器,其可以同时包括耦接在识别模块和压缩模块之间的第一记录模块(例如参考图4所描述的记录模块412)以及耦接在压缩模块和发送模块之间的第二记录模块(例如参考图5所描述的记录模块514),以同时存储原始生成的访问历史信息和压缩的访问历史信息。

图6示出了根据本申请另一个实施例的中心缓冲器600的一种示例性结构。中心缓冲器600具有与图2所示的中心缓冲器200大致类似的结构,例如中心缓冲器600同样包括C/A监测模块602和发送模块604,其中C/A监测模块602也具有识别模块606以及压缩模块608,在此不再赘述。

如图6所示,中心缓冲器600还包括加密模块616,该加密模块616耦接在压缩模块608和发送模块604之间。加密模块616可以从压缩模块608接收压缩模块608生成的压缩的访问历史信息并对压缩的访问历史信息进行加密处理。加密模块616可以使用各种已知的加密算法对压缩的访问历史信息进行加密处理,例如SM2算法、SHA-256算法等加密算法,本申请对此不做限制。利用加密模块616对生成的压缩的访问历史信息进行加密处理可以提高数据传输过程的安全性。加密模块616可以被进行配置,以在多种加密算法中动态地选择一种加密算法对压缩的访问历史信息进行加密处理,以更进一步地提高数据传输的安全性。例如,中心缓冲器可以包括一耦接到加密模块的配置模块(图中未示出),该配置模块可以以类似于如上参考图3描述的配置模块310的方式对加密模块616使用的加密算法进行配置。

可选地,中心缓冲器还可以包括标记模块618,该标记模块618耦接至加密模块616用于对压缩并加密的访问历史信息进行标记。

在一种实施方式中,标记模块618可以根据压缩并加密的访问历史信息的生成时间对信息进行标记,例如对压缩并加密的访问历史信息标记时间戳,以表示每个压缩并加密的访问历史信息生成的时间点。在一些其他的例子中,标记模块618可以基于其他标记生成规则(预设于其中)来自动生成标记;相应地,接收加密的访问历史信息的外部设备或程序也可以预设对应的标记生成或识别规则;这样,通过不同的标记来关联并表示不同的加密算法,对应的解密算法可以被确定以用来对加密信息进行解密。通过标记模块618的标记,可以对生成的压缩并加密的访问历史信息进行更好的分类。例如,在动态地配置加密模块616的加密算法时,在时间点1至5生成的加密的访问历史信息是通过加密算法A加密的,而在时间点6至10生成的加密的访问历史信息是通过加密算法B加密的,通过标记模块618的标记,可以方便地确定每个加密的访问历史信息的生成时间点,从而可以确定每个加密的访问历史信息使用的加密算法。在确定了每个加密的访问历史信息使用的加密算法后,访问历史信息稍后可以被使用相应的解密算法进行解密。

在另一种实施方式中,标记模块618也可以按照某种方式对压缩并加密的访问历史信息进行分组并对每组压缩并加密的访问历史信息标记其相应的组别标识。同一组访问历史信息通常采用相同的处理方式。例如,加密模块616可以预先存储有三个不同的加密算法,标记模块618可以将生成的第1到5个访问历史信息设为第一组,将生成的第6到10个访问历史信息设为第二组,将生成的第11到15个访问历史信息设为第三组,再循环将生成的第16到20个访问历史信息设为第一组,以此类推。相应的,加密模块616可以对第一组访问历史信息应用第一加密算法,对第二组访问历史信息应用第二加密算法,对第三组访问历史信息应用第三加密算法。标记模块618可以对每组访问历史信息标记其相应的组别标识。利用这样的组别标识,可以直接确定加密每个访问历史信息使用的加密算法。在确定了每个加密的访问历史信息使用的加密算法后,访问历史信息稍后可由相应的解密算法进行解密。进一步的,不同的加密算法与不同组别的访问历史信息之间的对应关系可以以其他的加密方式进行保护,例如以某种其他的算法对这种对应关系进行加密运算,从而使得仅具有权限的程序或用户可以根据已知的算法获悉这种对应关系,从而增加数据的安全性。另外,不同的加密算法与不同组别的访问历史信息之间的对应关系也可以被动态地配置或更换。

在前述的例子中,是以访问历史信息的次序来对其进行分组的。本领域技术人员可以理解,标记模块618可以基于其他方式对压缩并加密的访问历史信息进行分组,例如基于每个访问历史信息中包括的访问地址信息进行分组(如将针对同一存储子模块的访问历史信息分为一组)、基于每个访问历史信息中包括的操作命令信息进行分组(例如将包括写入命令的访问历史信息分为一组、将包括读取命令的访问历史信息分为一组等)、基于每个访问历史信息的生成时间进行分组(例如将每个单位时间段内生成的访问历史信息分为一组)等,本申请对此不做限制。

本领域技术人员可以理解,即使在某些实施方式中,中心缓冲器不包括加密模块(例如,如上参考图2-5所描述的中心缓冲器200至500),中心缓冲器依然可以包括耦接至压缩模块的标记模块以对压缩的访问历史信息进行标记,从而使得压缩的访问历史信息可以被方便地进行分类。例如,对于参考图3所描述的可以动态配置压缩算法和/或访问识别规则的中心缓冲器300,标记模块(例如参照图6所描述的标记模块618)可以如上所述地根据访问历史信息生成的时间点(例如,在不同时间点,使用的压缩算法和/或访问识别规则可能不同)或根据访问历史信息的内容(例如,对于包含不同内容的访问历史信息,使用的压缩算法和/或访问识别规则可能不同)对信息进行标记,从而可以利用标记模块生成的标记来确定生成每个访问历史信息所使用的压缩算法和/或访问识别规则。

需要说明的是,图2至图6所示的中心缓冲器的电路结构仅仅是示例性的,在实际应用中,可以根据需要对这些电路结构进行修改,例如将参照图2至图6所描述的中心缓冲器的模块进行组合或删减。例如,在某些实施方式中,中心缓冲器可以根据实际情况包括配置模块(例如参考图3所描述的配置模块310)、记录模块(例如参考图4和图5所描述的记录模块412和514)、加密模块(例如参考图6所示的加密模块616)以及标记模块(例如参考图6所示的标记模块618)中的一种或几种或全部。

图7示出了根据本申请一个实施例的用于监测主控制器对存储模块的访问的方法700。该方法700可以由例如图2至图6所示的中心缓冲器200至600来执行。

如图7所示,该方法700可以包括步骤702,通过中心缓冲器的耦接至命令/地址信道的识别模块接收命令/地址信号并基于接收的命令/地址信号生成访问历史信息;步骤704,通过中心缓冲器的耦接至识别模块的压缩模块接收访问历史信息并对访问历史信息进行压缩处理;步骤706,通过中心缓冲器的发送模块接收压缩的访问历史信息并将压缩的访问历史信息从中心缓冲器发送出去。

在一些实施例中,步骤702可以包括:基于识别模块包括的用于筛选和识别命令/地址信号的访问识别规则生成访问历史信息。在一些实施例中,访问识别规则包括预定地址空间的信息,步骤704可以进一步确定接收的命令/地址信号中包括的地址信息是否属于该预定地址空间,以及响应于确定接收的命令/地址信号中包括的地址信息属于预定地址空间,将接收的命令/地址信号转换为访问历史信息。

在一些实施例中,步骤704还可以包括,基于压缩算法对访问历史信息进行压缩处理。

在一些实施例中,方法700还可以包括经由中心缓冲器的配置模块对中心缓冲器所使用的规则或算法进行配置。在某些实施例中,方法700还可以包括从主控制器接收配置数据,从而利用配置数据来对中心缓冲器所使用的规则或算法进行配置。

在一些实施例中,方法700包括通过耦接到主控制器或另一外部控制器的输出信道将压缩的访问历史信息从中心缓冲器发送出去。在某些实施例中,输出信道包括PCIe信道、CXL信道和无线通信信道中的一个。

在一些实施例中,方法700还包括存储所述访问历史信息。在一些实施例中,方法700还包括通过耦接至识别模块的第一记录模块存储访问历史信息。在某些实施方式中,第一记录模块还耦接至压缩模块,步骤704还包括经由第一记录模块接收访问历史信息。

在一些实施例中,方法700还包括存储所述压缩的访问历史信息。在一些实施例中,方法700还包括通过耦接至压缩模块的第二记录模块存储压缩的访问历史信息。在某些实施方式中,第二记录模块还耦接至发送模块,步骤704还包括经由第二记录模块接收压缩的访问历史信息。

在一些实施例中方法700还可以包括:经由中心缓冲器的加密模块对压缩的访问历史信息进行加密处理。在某些实施方式中,加密模块包括多种加密算法,该步骤还包括选择多种加密算法中的一种对压缩的访问历史信息进行加密处理。

在一些实施例中,方法700还可以包括:经由中心缓冲器的标记模块对一个或多个压缩并加密的访问历史信息进行标记,以识别不同的压缩的访问历史信息并区别地标记所使用的加密算法。

应当注意,尽管在上文详细描述中提及了用于对存储模块进行访问的方法的若干步骤,和存储器控制器的若干模块或子模块,但是这种划分仅仅是示例性的而非强制性的。实际上,根据本申请的实施例,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。

本技术领域的一般技术人员可以通过研究说明书、公开的内容及附图和所附的权利要求书,理解和实施对披露的实施方式的其他改变。在权利要求中,措词“包括”不排除其他的元素和步骤,并且措辞“一”、“一个”不排除复数。在本申请的实际应用中,一个零件可能执行权利要求中所引用的多个技术特征的功能。权利要求中的任何附图标记不应理解为对范围的限制。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:存储器控制器及其操作方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!