Memory controller and method for monitoring access to memory module

文档序号:48893 发布日期:2021-09-28 浏览:39次 中文

阅读说明:本技术 存储器控制器以及用于监测对存储模块的访问的方法 (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.)

1. A memory controller coupled between a memory module and a host controller to control access of the host controller to the memory module, the memory controller comprising:

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 the command/address signals to the memory modules, wherein the central buffer comprises:

an identification module coupled to the command/address channel to receive the command/address signal, the identification module 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, the compression module configured to compress the access history information; and

a sending module via which the compressed access history information is sent out of the central buffer.

2. The memory controller of claim 1, wherein the identification module comprises an access identification rule for screening and identifying command/address signals, the identification module configured to generate the access history information based on the access identification rule.

3. The memory controller according to claim 2, wherein the access identification rule includes information of a predetermined address space, and the identification module converts the received command/address signal into the access history information based on whether address information included in the received command/address signal belongs to the predetermined address space.

4. The memory controller of claim 1, wherein the compression module comprises a compression algorithm for compressing the access history information.

5. The memory controller of claim 2 or 4, wherein the central buffer further comprises a configuration module via which rules or algorithms used by the central buffer can be pre-or dynamically configured.

6. The memory controller of claim 5, wherein the central buffer is further configured to receive configuration data from the master controller, such that the configuration module utilizes the configuration data to configure rules or algorithms used by the central buffer.

7. The memory controller of claim 1, wherein the transmit module comprises an output channel coupled to the master controller or another external controller.

8. The memory controller of claim 7, wherein the output channel comprises one of a PCIe channel, a CXL channel, an SMBus channel, a DCA channel, and a wireless communication channel.

9. The memory controller of claim 1, wherein the central buffer further comprises a logging module coupled to the identification module to receive and store the access history information.

10. The memory controller of claim 9, wherein the logging module is further coupled to the compression module, wherein the compression module receives the access history information from the identification module via the logging module.

11. The memory controller of claim 1, wherein the central buffer further comprises a logging module coupled to the compression module to receive and store the compressed access history information.

12. The memory controller of claim 11, wherein the logging module is further coupled to the sending module, wherein the sending module receives the compressed access history information from the compression module via the logging module.

13. The memory controller of claim 1, wherein the central buffer further comprises an encryption module configured to encrypt the compressed access history information.

14. The memory controller of claim 1, wherein the central buffer further comprises a tagging module to tag one or more compressed access history information to identify different compressed access history information.

15. The memory controller of claim 13, wherein the encryption module is further configured to select one of a plurality of encryption algorithms in advance or dynamically to perform the encryption processing on the compressed access history information.

16. The memory controller of claim 15, wherein the central buffer further comprises a tagging module to tag one or more of the compressed and encrypted access history information to identify different ones of the compressed access history information and to differentially tag the encryption algorithm used.

17. A memory comprising the memory controller of any one of claims 1 to 16 and a memory module.

18. A computer system comprising the memory of claim 17.

19. A method for monitoring access to memory modules coupled to a host controller through a memory controller, the memory controller including a central buffer configured to be coupled between the host controller and the memory modules through a command/address channel for receiving command/address signals from the host controller and providing the command/address signals to the memory modules, the method comprising:

receiving, by an identification module of the central buffer coupled to the command/address channel, the command/address signal and generating access history information based on the received command/address signal;

receiving and compressing the access history information through a compression module of the central buffer coupled to the identification module; and

receiving, by a sending module of the central buffer, the compressed access history information and sending the compressed access history information out of the central buffer.

20. The method of claim 19, wherein the identification module includes an access identification rule for screening and identifying the command/address signal, and wherein generating the access history information based on the received command/address signal includes generating the access history information based on the access identification rule.

21. The method of claim 20, wherein the access identification rule includes information of a predetermined address space, and wherein generating the access history information based on the access identification rule comprises:

determining whether address information included in the received command/address signal belongs to the predetermined address space; and

converting the received command/address signal into the access history information in response to determining that address information included in the received command/address signal belongs to the predetermined address space.

22. The method of claim 19, wherein the compressing the access history information comprises compressing the access history information based on a compression algorithm included in the compression module.

23. The method according to claim 20 or 22, further comprising pre-or dynamically configuring rules or algorithms used by the central buffer via the configuration module of the central buffer.

24. The method of claim 23, wherein configuring the rules or algorithms used by the central buffer comprises receiving configuration data from the master controller, such that the rules or algorithms used by the central buffer are configured using the configuration data.

25. The method of claim 19, wherein sending the compressed access history information out of the central buffer comprises sending the compressed access history information out of the central buffer through an output channel coupled to the master controller or another external controller.

26. The method of claim 25, wherein the output channel comprises one of a PCIe channel, a CXL channel, an SMBus channel, a DCA channel, and a wireless communication channel.

27. The method of claim 19, further comprising storing the access history information by a logging module of the central buffer coupled to the identification module.

28. The method of claim 27, wherein the logging module is further coupled to the compression module, and wherein receiving the access history information comprises receiving the access history information via the logging module.

29. The method of claim 19, further comprising storing the compressed access history information by a logging module coupled to the compression module of the central buffer.

30. The method of claim 29, wherein the logging module is further coupled to the sending module, and wherein receiving the compressed access history information comprises receiving the compressed access history information via the logging module.

31. The method of claim 19, further comprising encrypting the compressed access history information via an encryption module of the central buffer.

32. The method of claim 19, further comprising tagging one or more of the compressed access history information via a tagging module of the central buffer to identify different compressed access history information.

33. The method of claim 31, wherein the encryption module comprises a plurality of encryption algorithms, and wherein the encrypting the compressed access history information comprises pre-or dynamically selecting one of the plurality of encryption algorithms to perform the encryption on the compressed access history information.

34. The method of claim 33, further comprising tagging, via a tagging module of the central buffer, the one or more compressed and encrypted access history information to identify different compressed access history information and to differentially tag the encryption algorithm used.

Technical Field

The present application relates to the field of memory technology, and more particularly, to a memory controller and a method for monitoring access to a memory module.

Background

In present day computer systems, memory modules provide data access and storage for Central Processing Unit (CPU) operations. For a standard memory module designed according to JEDEC specifications, a central buffer (RCD) on the standard memory module only has a buffering function, and cannot record and upload access commands of a CPU to the memory module, so that a user's requirement for analyzing access behaviors of the CPU to the memory module cannot be satisfied. For another type of memory module, such as hsdmim memory module in the beginning of science and technology, the function of recording and uploading CPU access commands is added on a standard memory module, but limited by the size of the storage space for recording access commands and the channel transmission speed for uploading access commands on the memory module, such a memory module cannot continuously record and upload access commands of the CPU to the memory module.

Therefore, there is a need for improving the existing memory module to continuously record and upload the CPU access command.

Disclosure of Invention

An object of the present application is to provide a memory controller and a method for monitoring access to a memory module, which can continuously record and upload access commands of a CPU to the memory module.

According to one aspect of the present application, there is provided a memory controller coupled between a memory module and a host controller to control access of the host controller to the memory module, the memory controller including: 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 the 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, the identification module 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, the compression module configured to compress the access history information; and a sending module via which the compressed access history information is sent out of the central buffer.

In some embodiments, the identification module includes an access identification rule for screening and identifying command/address signals, the identification module configured to generate the access history information based on the access identification rule. In some such embodiments, the access identification rule includes information of a predetermined address space, and the identification module converts the received command/address signal into access history information based on whether address information included in the received command/address signal belongs to the predetermined address space.

In some embodiments, the compression module includes a compression algorithm for compressing the access history information.

In some embodiments, the central buffer further comprises a configuration module via which rules or algorithms used by the central buffer can be pre-or dynamically configured. In some such embodiments, the central buffer is further configured to receive configuration data from the master controller, whereby the configuration module utilizes the configuration data to configure rules or algorithms used by the central buffer.

In some embodiments, the transmit module includes an output channel coupled to the master controller or another external controller. In some such embodiments, the output channel comprises one of a PCIe channel, a CXL channel, an SMBus channel, a DCA channel, and a wireless communication channel.

In some embodiments, the central buffer further comprises a logging module coupled to the identification module to receive and store the access history information. In some such embodiments, the logging module is further coupled to the compression module, wherein the compression module receives the access history information from the identification module via the logging module.

In some embodiments, the central buffer further comprises a logging module coupled to the compression module to receive and store the compressed access history information. In some such embodiments, the recording module is further coupled to the sending module, wherein the sending module receives the compressed access history information from the compression module via the recording module.

In some embodiments, the central buffer further comprises an encryption module configured to encrypt the compressed access history information. In some such embodiments, the encryption module is further configured to pre-or dynamically select one of a plurality of encryption algorithms to encrypt the compressed access history information. In some such embodiments, the central buffer further comprises a tagging module for tagging one or more of the compressed and encrypted access history information to identify different compressed access history information and to differentially tag the encryption algorithm used.

In some embodiments, the central buffer further comprises a tagging module to tag one or more compressed access history information to identify different compressed access history information.

In other aspects of the present application, there is also provided a memory including the memory controller and the memory module of the above aspects; a computer system is also provided that includes the memory of the above aspect.

In another aspect of the present application, there is also provided a method for monitoring access to memory modules coupled to a host controller through a memory controller, the memory controller including a central buffer configured to be coupled between the host controller and the memory modules through a command/address channel for receiving command/address signals from the host controller and providing the command/address signals to the memory modules, the method comprising: receiving, by an identification module of the central buffer coupled to the command/address channel, the command/address signal and generating access history information based on the received command/address signal; receiving and compressing the access history information through a compression module of the central buffer coupled to the identification module; and receiving the compressed access history information and transmitting the compressed access history information from the central buffer through a transmitting module of the central buffer.

The foregoing is a summary of the application that may be simplified, generalized, and details omitted, and thus it should be understood by those skilled in the art that this section is illustrative only and is not intended to limit the scope of the application in any way. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

Drawings

The above-described and other features of the present disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. It is appreciated that these drawings depict only several embodiments of the disclosure and are therefore not to be considered limiting of its scope. The present disclosure will be described more clearly and in detail by using the accompanying drawings.

FIG. 1 illustrates a memory system according to one embodiment of the present application;

FIG. 2 illustrates a center buffer according to one embodiment of the present application;

FIG. 3 illustrates a center buffer according to another embodiment of the present application;

FIG. 4 illustrates a center buffer according to another embodiment of the present application;

FIG. 5 illustrates a center bumper according to another embodiment of the present application;

FIG. 6 illustrates a center bumper according to another embodiment of the present application;

FIG. 7 illustrates a method for monitoring access to a memory module according to one embodiment of the present application.

Detailed Description

In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, like reference numerals generally refer to like parts throughout the various views unless the context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not intended to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter of the present application. It will be understood that aspects of the present disclosure, as generally described in the present disclosure and illustrated in the figures herein, may be arranged, substituted, combined, and designed in a wide variety of different configurations, all of which form part of the present disclosure.

FIG. 1 illustrates a memory system 100 according to one embodiment of the present application.

As shown in fig. 1, the memory system 100 includes a memory module 102, which is configured as a memory module in the present embodiment, for storing data. In some embodiments, the memory modules 102 may be memory modules compliant with the JEDEC double-rate Synchronous Dynamic Random Access Memory (SDRAM) standards, including, for example, JEDEC DDR, DDR2, DDR3, DDR4, DDR5, and other double-rate memory standards. In addition, the memory module 102 may also be an internal memory conforming to other standards or protocols, such as RAMBUS internal memory, or a memory conforming to future memory standards or protocols. In some embodiments, the memory module 102 may include volatile memory (e.g., random access memory), non-volatile memory (flash memory, such as NAND or NOR flash memory), or a combination of both. In other embodiments, the memory module 102 may also be a new type of memory manufactured using different manufacturing processes, including but not limited to: magnetoresistive memory, phase change memory, resistive memory, semi-floating gate memory, or any type of other memory. It should be noted that fig. 1 is only used as an example, in other embodiments, the memory module may include only one memory bank, or each memory bank includes more than two memory cells, and the number of the memory cells in each memory bank may be the same or different. It should be noted that the memory module 102 described herein may be one memory granule, and may also include two or more memory granules.

Further, the structure of the memory array or memory die contained in the memory module 102 may employ various suitable interconnect structures. For example, a plurality of memory particles may constitute one memory module in parallel; alternatively, the plurality of memory grains may employ a multi-level interconnect structure (e.g., two levels). For example, one or more memory granules may be stored as a first level, while another one or more memory granules may be stored as a second level, providing a different level of storage. And a second storage level of a lower hierarchy may store external interactive data integrated with the memory module through the first level.

As shown in FIG. 1, the memory system 100 also includes a memory controller 104 having a central buffer 106. Specifically, the central buffer 106 is coupled between the host controller 110 and the memory modules 102, which may receive Command/Address (C/a) signals including access commands and access addresses from the host controller 110. For example, the C/A signal may include a data storage address (i.e., access address) in the memory module 102 and a command to access (e.g., read or write) the access address. Further, the central buffer 106 may provide the received C/A signal to the memory module 102 so that the memory module 102 may perform a corresponding data access operation based on the C/A signal. For DDR3 or DDR4 standard memory systems, the central buffer may be integrated in a Registered Clock Driver (RCD). Accordingly, the central buffer 106 is coupled between the main controller 110 and the memory module 102 through a C/A channel to receive C/A signals from the main controller 110 and to provide the received C/A signals to the memory module 102. For memory systems that conform to the DDR4 standard, the C/A channel may include pins A0-A17, pins BG0-BG1, and/or pins BA0-BA 1. The pins BG0-BG1 are used to determine which Bank Group (Memory Bank Group) in the Memory module 102 is processed, for example, written to or read from; pins BA0-BA1 are used to determine which Bank (Memory Bank) in Memory module 102 is processed; while pins a0-a17 are used to address and determine which memory cell in a bank is being processed. In addition, the inputs of the four pins A16(RAS _ n), A15(CAS _ n), and A14(WE _ n) and ACT _ n may be used to determine data access commands that are input, such as read commands, write commands, and other predefined control commands.

The memory controller 104 may also include a Data Buffer (DB)108 coupled between the memory module 102 and the master controller 110 for exchanging data between the memory module 102 and the master controller 110 under the control of the central buffer 106. The central buffer 106 may provide the C/A signal to the data buffer 108, and the data buffer 108 may control data interaction between accessed memory cells in the memory module 102 and the host controller 110 according to the received C/A signal.

Unlike the existing center buffer, the center buffer 106 is provided therein with a C/a signal monitoring module (CA _ Z)112, which may be configured as a module having data processing and arithmetic capabilities. In some embodiments, the C/a signal monitoring module 112 may be implemented by software, hardware, firmware, or a combination thereof. The C/A signal monitoring module 112 may identify and compress the C/A signal received from the master controller 110 to generate compressed access history information of the master controller 110 to the memory module 102. Further, the central buffer 106 further includes a sending module 114, and the C/a signal monitoring module 112 may provide the compressed access history information generated by the sending module 114 to send the compressed access history information out of the central buffer 106. Some examples of the central buffer of the present application will be described further below in conjunction with fig. 2-6.

FIG. 2 illustrates an exemplary configuration of a center buffer 200 according to one embodiment of the present application.

As shown in fig. 2, the central buffer 200 includes a main signal path coupled between a receive side (D-side) and an output side (Q-side) of the C/a channel and a branch signal path coupled to the main signal path, wherein the branch signal path includes a C/a signal monitoring module 202 and a transmit module 204. For the main signal path, after receiving the C/a signal including an access command and an access address from the receiving side, the C/a signal is output from the output side thereof.

For a branched signal path, the C/a monitoring module 202 therein may include an identification module 206 and a compression module 208. The identification module 206 is coupled to the primary signal path of the C/A channel to receive the C/A signal transmitted on the C/A channel. The identification module 206 may listen in real time for the C/a signal transmitted on the C/a channel, and may extract the access commands and access addresses included in the C/a signal and generate access history information based on the heard C/a signal, where the access history information may include access commands (e.g., read, write, etc.) and access addresses corresponding to each access command by a master controller (e.g., master controller 110 shown in fig. 1) to a memory module (e.g., memory module 102 shown in fig. 1). In some embodiments, the identification module 206 may extract the access address and access command included in each C/a signal and generate access history information based on the information extracted from each C/a signal, respectively. In other words, the identification module 206 may generate a piece of access history information for each C/A signal. In some embodiments, the identification module 206 may generate a piece of access history information based on the access address and the access command extracted from the plurality of C/a signals. In other words, the identification module 206 may generate a piece of access history information for a plurality of C/a signals after listening for the plurality of C/a signals. For example, the identification module 206 may generate one piece of access history information based on the access address and the access command included in the 5C/a signals after listening for the 5C/a signals, and then generate the next piece of access history information based on the access address and the access command included in the next 5C/a signals after listening for the next 5C/a signals. Those skilled in the art will appreciate that the manner and/or number of generating access history information (e.g., the number of C/a signals to listen to generate a piece of access history information) may be flexibly selected based on the access address and the data size of the access command included in each C/a signal, which is not limited in this application.

Further, the identification module 206 may also include access identification rules for screening and identifying C/a signals, and the identification module 206 may generate access history information based on these access identification rules.

In some embodiments, the access identification rule may include information of a predetermined address space, such as a range of one data storage address in a memory module (e.g., the memory module 102 shown in fig. 1) (e.g., the first through third memory locations included in the first memory sub-module in the memory module 102), and the identification module 206 determines whether the access address included in each C/a signal belongs to the predetermined address space (e.g., whether the access address included in each C/a signal falls within the range of the data storage address included in the access identification rule) while listening for each C/a signal: in response to determining that an access address included in one C/a signal belongs to a preset address space, the identification module 206 generates access history information based on the C/a signal; otherwise, in response to determining that the access address included in one of the C/a signals does not belong to the preset address space, the identification module 206 no longer generates the access history information based on the C/a signal. In some embodiments, the predetermined address space may be a system-defined secure access space, e.g., where access-restricted data is stored.

In some embodiments, the access identification rule may alternatively and/or additionally include a predetermined access command type. For example, for a range of data storage addresses (e.g., the first storage unit to the third storage unit included in the first storage submodule in the storage module 102) in a storage module (e.g., the storage module 102 shown in fig. 1), the range of data storage addresses may store configuration data of the entire system, and thus a write command for the range of storage addresses should be strictly recorded. In such a case, in addition to determining whether the access address included in each C/a signal belongs to the above-described memory address range, the identification module 206 further determines whether the command type included in each C/a signal is a write command: in response to determining that the command type included in one of the C/A signals is a write command, the identification module 206 generates access history information for the C/A signal; otherwise, in response to determining that the command type included in one of the C/A signals is not a write command, the identification module 206 no longer generates access history information for the C/A signal. With respect to the range of data storage addresses as described above, according to such an access identification rule, the identification module 206 generates access history information only for a write command, further reducing the data amount of the generated access history information, and facilitating subsequent processing (e.g., compression processing, transmission processing, etc., as described below) of data. As another example, when a range of data storage addresses in a storage module (e.g., storage module 102 shown in FIG. 1) stores confidential data (e.g., data relating to a user's business secret), the system may also be configured to strictly record read commands for the range of storage addresses. Similar to as discussed above, in addition to determining whether the access address included in each C/a signal belongs to the above-described storage address range in which confidential data is stored, the identification module 206 may determine whether the type of command included in each C/a signal is a read command and generate access history information only for the C/a signal including the read command to reduce the data amount of the generated access history information. Those skilled in the art will appreciate that the identification module 206 may be configured to generate access history information for C/a signals including different access command types for different recording requirements of the storage system, which is not limited in this application.

In some embodiments, the access identification rule may not include any information of the predetermined address space but only the predetermined access command type. In such a case, the identification module 206 no longer determines the access address included in the C/a signal but only determines the type of access command included in the C/a signal, e.g., generates access history information for all C/a signals including a write command.

The compression module 208 is coupled to the identification module 206 to receive the access history information generated by the identification module 206 and may compress the access history information generated by the identification module 206. In some embodiments, the compression module 208 may perform compression processing based on information about access addresses included in the access history information. For example, the access addresses included in the plurality of C/A signals may be a set of consecutive memory addresses, indicating that there may be a plurality of identical bits between each of these consecutive addresses. In such a case, in order to perform compression processing on the access history information generated based on these C/a signals, the compression module 208 may extract the same bits of these addresses having a plurality of the same bits as a common part thereof, while additionally retaining different bits in each address, i.e., achieve compression of a plurality of consecutive addresses by deleting redundant bits.

It can be understood that in practical applications, the data to be compressed in the access history information is mainly the access address data. Therefore, compression rates of compression algorithms corresponding to different compression algorithms are mainly reflected on compression rates of access address data. Generally, adjacent addresses in a memory module generally use the same security policy (e.g., all memory cells included in a first memory sub-module in the memory module 102 may use the same security policy). Therefore, for some compression algorithms with high compression ratio, the memory module can be divided into different sub-regions in a certain preset manner, so that when the access history information of the sub-regions is compressed, the memory address is compressed, so that the compressed access history information only retains the information that a certain sub-region is accessed, and the information that a specific memory unit in the sub-region is accessed does not need to be retained. For example, the memory module 102 described with respect to FIG. 1 may have a first memory sub-module divided into a first sub-region, a second memory sub-module divided into a second sub-region, and so on. As for the access history information for the memory module 102, it can be compressed to indicate only that a certain C/a signal performs writing, reading, etc. operations for the first sub-area, and does not specifically show which memory cell of the sub-area (i.e. the first memory sub-module) performs writing, reading, etc. operations, thereby reducing the data amount of the access history information that needs to be sent. It will be appreciated that the memory module may divide the sub-regions in various ways depending on the actual requirements, and the compression ratio of the compression algorithm is associated with the number of sub-regions into which the memory module is divided or the size of each sub-region.

In some embodiments, for example, when the amount of access history information data is particularly large for a certain period of time, the compression module 208 may also be configured to directly remove the access address data from the access history information while only keeping operations (e.g., read, write, etc.) for the storage module and the number of times corresponding to each operation, or other statistical information containing more or fewer parameters, aspects. For example, the access history information may indicate that 30 read operations and 20 write operations were performed with respect to the memory module without specifically displaying the memory address to which these read or write operations are directed, thereby ensuring real-time transmission of the access history information (as discussed below).

It is to be understood that the compression module 208 may also use other compression algorithms to compress the access history information generated by the identification module 206, such as huffman coding, Rice algorithm, LZ77 algorithm, and the like, which is not limited in this application.

The sending module 204 is coupled to the compressing module 208 to receive the access history information compressed by the compressing module 208 and can send the compressed access history information out of the central buffer 200. The sending module 204 may include an output channel coupled to the main controller or another external controller (not shown in fig. 2, which may include, for example, a computer, a mobile phone, a tablet computer, etc., which is used by the user and used for analyzing the access history information, but is not limited thereto), through which the access history information compressed by the compressing module 208 is sent to the coupled main controller or another external controller. In some embodiments, the output channel may be a high-speed channel, such as a PCIe channel, a CXL channel, or a Wireless communication (Wireless) channel, which is suitable for outputting information at a high speed, so as to increase the rate at which the sending module 204 sends data. In some embodiments, the output channel may also be an SMBus channel (with I)2C or the like) or DCA channels (constructed as a bi-directional communication path between the master controller and the central buffer) etc.

Those skilled in the art will appreciate that in some cases, the rate at which the sending module 204 sends data may be limited, and the limited sending rate of the sending module 204 may not meet the requirement of sending access history information in real time relative to the data size of the access history information initially generated by the identification module 206. In this regard, the amount of data of the access history information that the sending module 204 needs to send can be significantly reduced by the compression processing of the compression module 208. In some embodiments, by selecting and configuring the compression module 208 with an appropriate compression algorithm to achieve a suitable compression rate and selecting an output channel for the transmission module 204 with a particular transmission data rate, the compression module 208 may generate the amount of compressed access history information in real-time to match the rate at which the transmission module 204 transmits data (e.g., the amount of compressed access history information generated in real-time is not greater than the maximum rate at which the transmission module 204 transmits data), and thus may achieve transmission of access history information in real-time.

FIG. 3 illustrates an exemplary configuration of a center bumper 300 according to another embodiment of the present application. The central buffer 300 has a structure substantially similar to that of the central buffer 200 shown in fig. 2, for example, the central buffer 300 also includes a C/a monitoring module 302 and a sending module 304, wherein the C/a monitoring module 302 also has an identifying module 306 and a compressing module 308, which are not described herein again.

The central buffer 300 additionally includes a configuration module 310, the configuration module 310 coupled to the identification module 306 and/or the compression module 308 such that the access identification rules of the identification module 306 and/or the compression algorithm of the compression module 308 may be pre-configured or dynamically configured. In one embodiment, the access identification rules of the identification module 306 and/or the compression algorithm of the compression module 308 may be pre-configured, i.e., the access identification rules of the identification module 306 and/or the compression algorithm of the compression module 308 may be configured before the entire memory system (e.g., the memory system 100 shown in FIG. 1) is run. In another embodiment, the access identification rules of the identification module 306 and/or the compression algorithm of the compression module 308 may be dynamically configured during operation of the overall memory system (e.g., the memory system 100 shown in FIG. 1), for example, based on operating conditions.

In some embodiments, the configuration module 310 may be coupled to a host controller (e.g., the host controller 110 described in FIG. 1) such that configuration data may be passed to the configuration module 310 by the host controller to configure the access identification rules and/or compression algorithms. In some embodiments, the configuration module 310 may be coupled to an external controller (not shown) such that configuration data may be passed to the configuration module 310 by the external controller to configure the access identification rules and/or compression algorithms.

In some embodiments, the configuration module 310 may store a plurality of sets of preset configuration data for configuring the access identification rules of the identification module 306 and/or the compression algorithm of the compression module 308, and the configuration module 310 may be coupled to a main controller (e.g., the main controller 110 described in fig. 1) or an external controller (not shown) as described above to receive a configuration command that may select a set of preset configuration data among the stored plurality of sets of preset configuration data to configure the access identification rules of the identification module 306 and/or the compression algorithm of the compression module 308.

In some embodiments, the configuration module 310 may automatically configure the access identification rules of the identification module 306 and/or the compression algorithm of the compression module 308. In one embodiment, the configuration module 310 may store a plurality of sets of preset configuration data for configuring the access identification rule of the identification module 306 and/or the compression algorithm of the compression module 308, and the configuration module 310 further stores different application conditions for each set of preset configuration data. During operation of a memory system (e.g., memory system 100 shown in fig. 1), configuration module 310 may automatically apply different preset configuration data if different application conditions are met to enable automatic dynamic configuration of access identification rules and/or compression algorithms. For example, the configuration module 310 may include three different sets of preset configuration data A, B and C, where the compression algorithm compression ratio of the preset configuration data a is greater than the compression algorithm compression ratio of the preset configuration data B, which is greater than the compression algorithm compression ratio of the preset configuration data C. The configuration module 310 applies the preset configuration data a when the data size of the uncompressed access history information generated by the identification module 306 is greater than a threshold value α, applies the preset configuration data C when the data size of the uncompressed access history information generated by the identification module 306 is less than a threshold value β, and applies the preset configuration data B when the data size of the uncompressed access history information generated by the identification module 306 is between the threshold values α and β, where the threshold value α is greater than the threshold value β.

In embodiments where the configuration module 310 is coupled to the host controller, the coupling between the configuration module 310 and the host controller may be accomplished through an existing channel (e.g., a C/a channel). For example, a configuration command decoding table, which includes the correspondence between configuration data or configuration commands and signals transmitted on the C/a channel, may be preset in the configuration module 310 or in other modules in the central buffer. The master controller may send a signal over the C/a channel when the C/a channel is idle, the signal being converted to configuration data or a configuration command based on the configuration command decoding table for configuring the configuration module 310. It will be appreciated that in some embodiments, the configuration data may also be sent directly to the central buffer via the C/a channel without being decoded and the configuration module 310 configured thereby.

In some embodiments, the channel used to communicate the configuration data or configuration command to the configuration module 310 may be a different channel than the channel on which the sending module 304 sends the access history information, such that the transmission of the configuration data or configuration command does not occupy the channel on which the sending module 304 sends the access history information. For example, additional channels may be provided for the communication of configuration data or configuration commands. With such an embodiment, the configuration/selection of the access identification rule and/or the compression algorithm does not affect the transmission of the access history information, and therefore the access identification rule and/or the compression algorithm can be configured at the same time as the access history information is transmitted, thereby realizing the dynamic configuration of the access identification rule and/or the compression algorithm.

It is understood that in some embodiments, the transmit module 304 may be coupled to a host controller or other external controller via a bi-directional channel, and that the transmit module 304 may also have the capability to receive data or signals so that configuration data/configuration commands may be received via the transmit module 304.

FIG. 4 illustrates an exemplary configuration of a center bumper 400 according to another embodiment of the present application. The central buffer 400 has a structure substantially similar to the central buffer 200 shown in fig. 2, for example, the central buffer 400 also includes a C/a monitoring module 402 and a sending module 404, wherein the C/a monitoring module 402 also has an identifying module 406 and a compressing module 408, which are not described herein again.

The central buffer 400 also includes a logging module 412, the logging module 412 coupled to the identification module 406 to receive the access history information generated by the identification module 406. In such embodiments, the logging module 412 may store the access history information received from the identification module 406, e.g., so that uncompressed raw access history information may be conveniently queried.

Further and optionally, the logging module 412 may also be coupled to the compression module 408 at the same time, i.e., between the identification module 406 and the compression module 408, such that the compression module 408 receives the access history information from the identification module 406 via the logging module 412. In such an embodiment, since the access history information is first stored in the recording module 412, the compression module 408 can flexibly analyze and compress a plurality of pieces of access history information together. For example, in the compression algorithm for performing compression processing based on access address information included in the access history information as described above, since the recording module 412 stores the access history information, the compression module 408 may analyze the plurality of pieces of access history information to determine whether or not there are a plurality of pieces of access history information including a string of consecutive addresses, and thus may determine whether or not compression processing needs to be performed by hiding the same bits representing the consecutive addresses therein.

FIG. 5 illustrates an exemplary configuration of a center bumper 500 according to another embodiment of the present application. The central buffer 500 has a structure substantially similar to the central buffer 200 shown in fig. 2, for example, the central buffer 500 also includes a C/a monitoring module 502 and a sending module 504, wherein the C/a monitoring module 502 also has an identifying module 506 and a compressing module 508, which are not described herein again.

The central buffer 500 also includes a logging module 514, the logging module 514 coupled to the compression module 508 to receive the compressed access history information generated by the compression module 508. In such embodiments, the logging module 514 may store the compressed access history information received from the compression module 508, e.g., such that the compressed access history information may be conveniently queried.

Further and optionally, the logging module 514 may also be coupled to the sending module 504 at the same time, i.e., between the compression module 508 and the sending module 504, such that the sending module 504 receives compressed access history information from the compression module 508 via the logging module 514. In other words, the logging module 514 can act as a buffer for access history information. This is advantageous when the amount of compressed access history information data to be transmitted over a period of time is excessive, because the compressed access history information is first stored in the recording module 514, so that the transmission module 504 can process the backlogged compressed access history information in sequence.

It will be appreciated by those skilled in the art that for the central buffer of the present application, it may include both a first recording module (e.g., the recording module 412 described with reference to fig. 4) coupled between the identification module and the compression module and a second recording module (e.g., the recording module 514 described with reference to fig. 5) coupled between the compression module and the sending module to store both the originally generated access history information and the compressed access history information.

FIG. 6 illustrates an exemplary configuration of a center bumper 600 according to another embodiment of the present application. The central buffer 600 has a structure substantially similar to the central buffer 200 shown in fig. 2, for example, the central buffer 600 also includes a C/a monitoring module 602 and a sending module 604, wherein the C/a monitoring module 602 also has an identifying module 606 and a compressing module 608, which are not described herein again.

As shown in fig. 6, the central buffer 600 also includes an encryption module 616, the encryption module 616 being coupled between the compression module 608 and the transmit module 604. The encryption module 616 may receive the compressed access history information generated by the compression module 608 from the compression module 608 and perform encryption processing on the compressed access history information. The encryption module 616 may encrypt the compressed access history information using various known encryption algorithms, such as an SM2 algorithm, an SHA-256 algorithm, and the like, which is not limited in this application. The encryption module 616 may be utilized to encrypt the generated compressed access history information to improve the security of the data transmission process. The encryption module 616 may be configured to dynamically select an encryption algorithm among a plurality of encryption algorithms to encrypt the compressed access history information to further improve the security of the data transmission. For example, the central buffer may include a configuration module (not shown) coupled to the encryption module that may configure the encryption algorithm used by the encryption module 616 in a manner similar to the configuration module 310 described above with reference to FIG. 3.

Optionally, the central buffer may further include a marking module 618, and the marking module 618 is coupled to the encryption module 616 for marking the compressed and encrypted access history information.

In one embodiment, the tagging module 618 may tag the compressed and encrypted access history information according to a generation time of the access history information, for example, time stamp the compressed and encrypted access history information to indicate a point in time at which each compressed and encrypted access history information is generated. In some other examples, the marking module 618 may automatically generate the marking based on other marking generation rules (preset therein); correspondingly, the external device or program receiving the encrypted access history information may also preset a corresponding tag generation or identification rule; thus, by associating and representing different encryption algorithms by different tokens, a corresponding decryption algorithm may be determined to be used to decrypt the encrypted information. The generated compressed and encrypted access history information may be better classified by the tagging of the tagging module 618. For example, in dynamically configuring the encryption algorithm of the encryption module 616, the encrypted access history information generated at the time points 1 to 5 is encrypted by the encryption algorithm a, and the encrypted access history information generated at the time points 6 to 10 is encrypted by the encryption algorithm B, and by the marking of the marking module 618, the generation time point of each encrypted access history information can be conveniently determined, so that the encryption algorithm used by each encrypted access history information can be determined. After determining the encryption algorithm used by each encrypted access history information, the access history information may later be decrypted using the corresponding decryption algorithm.

In another embodiment, the tagging module 618 may also group the compressed and encrypted access history information in some manner and tag each set of compressed and encrypted access history information with its corresponding group identification. The same processing is usually used for the same set of access history information. For example, the encryption module 616 may store three different encryption algorithms in advance, and the tagging module 618 may set the generated 1 st to 5 th access history information as a first group, the generated 6 th to 10 th access history information as a second group, the generated 11 th to 15 th access history information as a third group, the recycling sets the generated 16 th to 20 th access history information as the first group, and so on. Accordingly, the encryption module 616 may apply a first encryption algorithm to the first set of access history information, a second encryption algorithm to the second set of access history information, and a third encryption algorithm to the third set of access history information. The tagging module 618 may tag each set of access history information with its corresponding group identification. With such group identification, the encryption algorithm used to encrypt each access history information can be directly determined. After determining the encryption algorithm used by each encrypted access history information, the access history information may later be decrypted by the corresponding decryption algorithm. Further, the correspondence between different encryption algorithms and different groups of access history information may be protected in other encryption manners, for example, some other algorithm may perform encryption operation on the correspondence, so that only programs or users having rights may learn the correspondence according to a known algorithm, thereby increasing the security of data. In addition, the correspondence between different encryption algorithms and different sets of access history information may also be dynamically configured or replaced.

In the foregoing example, the access history information is grouped in order of its access. It will be understood by those skilled in the art that the marking module 618 may group the compressed and encrypted access history information based on other manners, such as grouping the access address information included in each access history information (e.g., grouping the access history information for the same storage sub-module), grouping the operation command information included in each access history information (e.g., grouping the access history information including a write command, grouping the access history information including a read command, etc.), grouping the access history information generated in each unit time period based on the generation time of each access history information (e.g., grouping the access history information generated in each unit time period), and the like, which are not limited in this application.

Those skilled in the art will appreciate that even though in some embodiments the central buffer does not include an encryption module (e.g., the central buffers 200-500 described above with reference to fig. 2-5), the central buffer may include a tagging module coupled to the compression module to tag the compressed access history information so that the compressed access history information may be conveniently sorted. For example, for the central buffer 300 described with reference to fig. 3, which may dynamically configure compression algorithms and/or access identification rules, a tagging module (e.g., the tagging module 618 described with reference to fig. 6) may tag information as described above based on a point in time at which the access history information is generated (e.g., at different points in time, the compression algorithms and/or access identification rules used may be different) or based on content of the access history information (e.g., for access history information containing different content, the compression algorithms and/or access identification rules used may be different), such that the tags generated by the tagging module may be utilized to determine the compression algorithms and/or access identification rules used to generate each access history information.

It should be noted that the circuit structures of the center buffers shown in fig. 2 to 6 are merely exemplary, and in practical applications, the circuit structures may be modified as needed, for example, the modules of the center buffers described with reference to fig. 2 to 6 are combined or deleted. For example, in some embodiments, the central buffer may include one or more or all of a configuration module (e.g., configuration module 310 described with reference to fig. 3), a recording module (e.g., recording modules 412 and 514 described with reference to fig. 4 and 5), an encryption module (e.g., encryption module 616 shown with reference to fig. 6), and a marking module (e.g., marking module 618 shown with reference to fig. 6), as the case may be.

FIG. 7 illustrates a method 700 for monitoring access to a memory module by a host controller according to one embodiment of the present application. The method 700 may be performed by, for example, the center buffers 200-600 shown in fig. 2-6.

As shown in fig. 7, the method 700 may include receiving a command/address signal by an identification module of a central buffer coupled to a command/address channel and generating access history information based on the received command/address signal, step 702; step 704, receiving the access history information and compressing the access history information through a compression module coupled to the identification module of the central buffer; step 706, receive the compressed access history information through the sending module of the central buffer and send the compressed access history information out of the central buffer.

In some embodiments, step 702 may include: the access history information is generated based on the access identification rule included in the identification module for screening and identifying the command/address signal. In some embodiments, the access identification rule includes information of a predetermined address space, and step 704 may further determine whether address information included in the received command/address signal belongs to the predetermined address space, and in response to determining that the address information included in the received command/address signal belongs to the predetermined address space, convert the received command/address signal into access history information.

In some embodiments, step 704 may further include compressing the access history information based on a compression algorithm.

In some embodiments, method 700 may also include configuring rules or algorithms used by the central buffer via a configuration module of the central buffer. In some embodiments, method 700 may further include receiving configuration data from the master controller, thereby utilizing the configuration data to configure the rules or algorithms used by the central buffer.

In some embodiments, method 700 includes sending compressed access history information out of a central buffer over an output channel coupled to a master controller or another external controller. In certain embodiments, the output channel comprises one of a PCIe channel, a CXL channel, and a wireless communication channel.

In some embodiments, method 700 further includes storing the access history information. In some embodiments, the method 700 further includes storing the access history information by a first logging module coupled to the identification module. In certain embodiments, the first recording module is further coupled to the compression module, and step 704 further comprises receiving access history information via the first recording module.

In some embodiments, method 700 further includes storing the compressed access history information. In some embodiments, the method 700 further includes storing the compressed access history information by a second recording module coupled to the compression module. In certain embodiments, the second recording module is further coupled to the sending module, and step 704 further comprises receiving the compressed access history information via the second recording module.

In some embodiments, method 700 may further comprise: the compressed access history information is encrypted via an encryption module of the central buffer. In some embodiments, the encryption module includes a plurality of encryption algorithms, and the step further includes selecting one of the plurality of encryption algorithms to encrypt the compressed access history information.

In some embodiments, method 700 may further include: one or more of the compressed and encrypted access history information is tagged via a tagging module of the central buffer to identify different compressed access history information and to differentially tag the encryption algorithm used.

It should be noted that although in the above detailed description several steps of the method for accessing the memory module, and several modules or sub-modules of the memory controller are mentioned, this division is merely exemplary and not mandatory. Indeed, according to embodiments of the application, the features and functions of two or more modules described above may be embodied in one module. Conversely, the features and functions of one module described above may be further divided into embodiments by a plurality of modules.

Other variations to the disclosed embodiments can be understood and effected by those skilled in the art from a study of the specification, the disclosure, the drawings, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the words "a" or "an" do not exclude a plurality. In the practical application of the present application, one element may perform the functions of several technical features recited in the claims. Any reference signs in the claims shall not be construed as limiting the scope.

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

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!