Service quality telemetry system and method based on CXL protocol
By designing a service quality remote test system based on the CXL protocol, using the sampling module and other monitoring modules to achieve real -time monitoring and management of the load of memory equipment, solve the problem of too much hardware resources in the existing technology, improve the bus of the bus, and improve the bus line. Performance and utilization.
Patent Information
- Application Number
- CN202411392467.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-08
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2044-10-08
AI Technical Summary
The existing CXL QoS telemetry system occupies a large amount of hardware resources, making it difficult to efficiently monitor and manage the load status of memory devices.
Design a service quality remote test system based on the CXL protocol, through components such as sampling modules, register modules, internal anti -pressure monitoring modules, internal load monitoring modules, request count modules, and completing count modules. manage.
This system can save hardware resources, achieve efficient monitoring and management of memory equipment load, and improve the performance and utilization rate of bus.
Smart Images

Figure CN118964112B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of memory devices, and in particular to a service quality telemetry system and method based on a CXL protocol. Background Art
[0002] The rapid development of technologies such as artificial intelligence and big data has brought many conveniences to people's lives, but at the same time, the original technology has also become a bottleneck. The performance wall brought by the von Neumann architecture requires a new technology to break, so a new high-speed interconnection technology CXL (Compute Express Link) has emerged.
[0003] cxl.mem is a sub-protocol in CXL technology. Its main purpose is to provide a directly accessible memory for the host, expand memory bandwidth and memory capacity, and thus improve bus performance.
[0004] QoS (Quality of Service) is a technology for managing and improving transmission performance. It monitors internal load conditions, regulates and allocates transmission tasks, thereby increasing bus bandwidth and reducing bus latency.
[0005] The CXL 2.0 protocol provides a QoS telemetry mechanism that can display the current device load status in each response message of the cxl.mem request and the UIO request completion message. The purpose is to enable the storage device to provide the host with instant and continuous load status so that the host can dynamically adjust the request. When the device is overloaded, the host can limit the current according to the feedback load status, otherwise the host will reduce the current limit to improve the bus utilization.
[0006] CXL QoS telemetry mainly determines the current device load based on the following three device states:
[0007] Internal load: monitor the request queue space and reflect the current load situation based on the queue space;
[0008] Egress port back pressure status: When the device is lightly loaded, the memory device may also experience back pressure. At this time, the queue of internal load monitoring is still within the light load threshold. Therefore, adding egress port back pressure status monitoring can more effectively indicate the current device load situation.
[0009] Temporary reduction in throughput: In some cases, memory devices may temporarily reduce throughput due to various reasons. This status monitoring can alert the host to prevent internal queue failures due to these factors.
[0010] However, existing implementation methods occupy a large amount of hardware resources. Summary of the invention
[0011] In order to solve the above problems, the present invention proposes a CXL protocol-based service quality telemetry system and method that can save hardware resources.
[0012] In order to achieve the above object, the present invention is implemented by the following technical solutions:
[0013] The service quality telemetry system based on the CXL protocol of the present invention comprises:
[0014] Sampling module, used to generate sampling signals, including the sampling signal of the completion counter in the completion counting module and the sampling signal of the back pressure percentage update in the internal back pressure monitoring module. The sampling time and sampling interval are configurable;
[0015] A register module for configuring the quality of service telemetry hardware function based on information sent by the device processor and returning hardware status to the device processor;
[0016] An internal back pressure monitoring module is used to generate a back pressure percentage according to the sampling signal generated by the sampling module, obtain the back pressure situation according to the comparison between the back pressure percentage and the internal back pressure threshold, and return the back pressure situation to the device processor through the register module;
[0017] The internal load monitoring module is used to obtain the internal load status according to the internal load threshold configured by the register and the data to be processed in the cxl.mem queue, and return the internal load status to the device processor through the register module;
[0018] The request counting module is used to count the number of pending requests. When the maximum count is reached, the request counter is kept and the request counter information is returned to the device processor through the register module.
[0019] The completion counting module is used to count the number of requests completed when the sampling signal of the completion counter arrives, and return the completion counter information to the device processor through the register module;
[0020] The device processor is used to send information about the configuration of the quality of service telemetry hardware function to the register module, and derive the device load status based on the returned back pressure status, internal load status, request counter information, and completion counter information, and return the device load status to the cxl.mem response.
[0021] A further improvement of the present invention is that the storage unit is a static random access memory or a dynamic random access memory.
[0022] A further improvement of the present invention is that the sampling module includes a slow clock used for sampling and a fast clock used for sampling monitoring, the sampling signal is jointly generated by a sampling time counter and a sampling interval counter, the sampling time counter specifies the time required for each sampling interval, the sampling interval counter specifies the generation of the sampling signal, and after the sampling signal is generated, it undergoes pulse broadening and is synchronized by the fast clock and transmitted to the completion counting module, the internal back pressure monitoring module and the internal load monitoring module.
[0023] A further improvement of the present invention is that the completion counting module is composed of multiple completion counters, and the completion counters are sorted from low to high. The first completion counter counts the number of requests completed when the sampling signal of the completion counter arrives. When the maximum counting amount is reached, the counter is maintained, and each time the sampling signal reaches the low-order completion counter, it moves to the high-order completion counter.
[0024] A further improvement of the present invention is that the information sent by the device processor to the register module includes a sampling time, a sampling interval, an internal back pressure threshold, and an internal load threshold.
[0025] The service quality telemetry method based on the CXL protocol of the present invention includes the following operations:
[0026] The device processor sends information to the register, and the register configures the quality of service telemetry hardware function according to the information sent by the device processor and returns the hardware status to the device processor, wherein the information includes a sampling time, a sampling interval, an internal back pressure threshold, and an internal load threshold;
[0027] The service quality telemetry enters the working state and generates the information required for the device load calculation in parallel, including back pressure situation, internal load situation, request counter information, and completion counter information. The back pressure situation, internal load situation, and completion counter information are obtained by sampling and comparing based on the configured sampling interval, sampling time, internal back pressure threshold, and internal load threshold.
[0028] The device processor obtains the device load status based on the obtained request counter information, completion counter information, back pressure status and internal load status, and sends the device load status to the register. The register returns the device load status to the cxl.mem response, and the cxl.mem response replies the device load status to the host side.
[0029] A further improvement of the present invention is that the internal load condition is obtained by comparing the internal load threshold configured by the register with the data to be processed in the cxl.mem queue.
[0030] A further improvement of the present invention is that: there are multiple completion counters, and the multiple completion counters are sorted from low to high. The first completion counter counts the number of requests completed when the sampling signal of the completion counter arrives. When the maximum counting number is reached, the counter is maintained, and each time the sampling signal reaches the low-order completion counter, it moves to the high-order completion counter.
[0031] A further improvement of the present invention is that the storage unit is a static random access memory or a dynamic random access memory.
[0032] The beneficial effects of the present invention are as follows: the present invention realizes internal load monitoring, egress port back pressure status monitoring, and realizes the generation of request counters, completion counters, back pressure status, and internal load status in hardware. At the same time, the present invention configures hardware functions by registers, and the device processor is responsible for the calculation part, which plays a role in saving hardware resources and making functions configurable. BRIEF DESCRIPTION OF THE DRAWINGS
[0033] Figure 1 It is a schematic diagram of the hardware implementation architecture of the service quality telemetry system based on the CXL protocol of the present invention;
[0034] Figure 2 is a workflow diagram of service quality telemetry based on the CXL protocol in an embodiment of the present invention;
[0035] Figure 3 is a flow chart of sampling time and sampling interval configuration in an embodiment of the present invention;
[0036] Figure 4 is a diagram of the architecture of a service quality telemetry system based on the CXL protocol in an embodiment of the present invention;
[0037] Figure 5 is a schematic diagram of the working mechanism of the completion counter in an embodiment of the present invention;
[0038] Figure 6 Schematic diagram of the internal back pressure monitoring process in an embodiment of the present invention. DETAILED DESCRIPTION
[0039] In order to make the purpose, technical solutions and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention. In addition, the technical features involved in the various embodiments of the present invention described below can be combined with each other as long as they do not conflict with each other.
[0040] like Figure 1 As shown, the service quality telemetry system based on the CXL protocol of this embodiment includes:
[0041] A memory cell, used to store data, which may be a static random access memory (SRAM) or a dynamic random access memory (DRAM);
[0042] The sampling module is used to generate sampling signals, including the sampling signal of the completion counter in the completion counting module and the sampling signal of the back pressure percentage update in the internal back pressure monitoring module. The sampling time and sampling interval are configurable, wherein the sampling time defines the clock cycle for each interval, and the sampling interval defines how many intervals are sampled. The sampling module contains a slow clock used for sampling and a fast clock used for sampling monitoring. The sampling signal is jointly generated by the sampling time counter and the sampling interval counter. The sampling time counter specifies the time required for each sampling interval, and the sampling interval counter specifies the generation of the sampling signal. If the sampling time is set to 1 and the sampling interval is set to 2, the sampling signal is triggered once every 4 clock cycles. If the sampling time is set to 2 and the sampling interval is set to 1, the sampling signal is triggered once every 3 clock cycles. After the sampling signal is generated, it undergoes pulse broadening and is synchronized by the fast clock and transmitted to the completion counting module, the internal back pressure monitoring module, and the internal load monitoring module;
[0043] The register module is used to configure the service quality telemetry hardware function according to the information sent by the device processor and return the hardware status to the device processor. The hardware status includes back pressure, internal load, request counter information, and completion counter information;
[0044] The internal back pressure monitoring module is used to generate a back pressure flag signal according to the transmission status of the data bus of the storage unit, generate a back pressure percentage through the back pressure flag signal and the sampling signal generated by the sampling module, obtain the back pressure status according to the back pressure percentage, and return the back pressure status to the device processor through the register module. The back pressure flag signal is a flag signal generated by the load to be monitored. If the transmission status of the data bus of the storage unit is high, it is in a back pressure state. If the transmission status of the data bus of the storage unit is low, it is in a normal transmission state. Since the statistics of the back pressure percentage are not real-time, the back pressure percentage will be counted according to the back pressure flag signal only when the sampling signal is high.
[0045] The internal load monitoring module is used to obtain the internal load status according to the internal load threshold configured by the register and the data to be processed in the cxl.mem queue, and return the internal load status to the device processor through the register module, wherein the internal load threshold includes multiple threshold levels, including a moderate threshold and a severe threshold. Among them, the data to be processed in the cxl.mem queue is the queue of the intermediate cache when it is converted to the internal data bus after coming out of the CXL.mem interface. The internal load monitoring module obtains the internal load status according to the processing status of the queue in the intermediate cache and the internal load threshold. For example, if the internal load thresholds are set to: light threshold: 4, moderate threshold: 8, severe threshold: 10, if the number of data to be processed in the queue in the intermediate cache is 9 at this time, the load status is moderate;
[0046] The request counting module is used to count the number of pending requests. When the maximum count is reached, the request counter is kept and the request counter information is returned to the device processor through the register module.
[0047] The completion counting module is used to count the number of requests completed when the sampling signal of the completion counter arrives, and return the completion counter information to the device processor through the register module. The completion counting module consists of multiple completion counters, which are sorted from low to high. The first completion counter counts the number of requests completed when the sampling signal of the completion counter arrives. The counter is maintained when the maximum count is reached, and moves to the high completion counter each time the sampling signal reaches the low completion counter.
[0048] The device processor is used to send information about the configuration of the quality of service telemetry hardware function to the register module, and derive the device load status based on the returned back pressure status, internal load status, request counter information, and completion counter information, and return the device load status to the cxl.mem response. The information sent by the device processor to the register module includes the sampling time, sampling interval, internal back pressure threshold, and internal load threshold.
[0049] like Figure 3 As shown, the configuration operations of the sampling time and sampling interval include: turning off the sampling enable, clearing the sampling timer, the sampling timer includes a sampling time counter and a sampling interval counter, setting the sampling time and sampling interval according to requirements and turning on the sampling enable.
[0050] like Figure 2 As shown, the workflow of the system in this embodiment includes:
[0051] Configuration register: The device processor sends information to the register, and the register configures the quality of service telemetry hardware function according to the received information. The information sent by the device processor to the register includes sampling time, sampling interval, internal back pressure threshold, and internal load threshold;
[0052] The Quality of Service (QoS) telemetry enters the working state and generates the information required for device load calculation in parallel, including back pressure conditions, internal load conditions, request counter information, and completion counter information. The back pressure conditions, internal load conditions, and completion counter information are obtained by sampling and comparing based on the configured sampling interval, sampling time, internal back pressure threshold, and internal load threshold. The device processor derives the device load condition based on the obtained request counter information, completion counter information, back pressure conditions, and internal load conditions based on the content defined by the CXL protocol, and sends the device load condition to the register. The register returns the device load condition to the cxl.mem response, and the cxl.mem response replies the device load condition to the host side.
[0053] like Figure 4 As shown, taking the SLD (Single Logical Device) device (single logical device) as an example, the system of this embodiment is implemented in the cxl.mem device of 8 LD (Logical Device) (logical unit), which can monitor 8 data paths at the same time and generate 8 states. The completion counting module contains 16 completion counters, which are arranged from the low completion counter to the high completion counter, and the sequence number is arranged from 0 to 15. Completion counter 0 records the latest number of request completions, and completion counters 1 to 15 record the number of requests temporarily completed when the sampling signal arrives. The working mechanism of the completion counter is as follows Figure 5 When the sampling signal comes, the value of the low-order completion counter is assigned to the high-order completion counter, completion counter 0 is cleared, and the value of completion counter 15 is discarded. If it is an MLD (Multi Logical Device) device, such as the 8 LD device in the embodiment, the number of completion counters is 8*16.
[0054] Taking the SLD device as an example, the request counting module includes a request counter, which increases each time a LD request is received and decreases when a LD response is received. The request counter reflects the instantaneous utilization rate. For the MLD device of the embodiment, there are 8 request counters corresponding to each LD.
[0055] The internal load monitoring module compares the moderate threshold and severe threshold sent by the device processor with the number of pending entries in the current cxl.mem queue to obtain the internal load status of the current device. In this embodiment, the cxl.mem queue depth is 16, with a total of 8 queues, reflecting the internal load status of 8 LDs.
[0056] Taking SLD as an example, the internal back pressure monitoring module adopts the FCBP (Flow Control Backpressured) mechanism, provides a bphist register for storing the 100 most recent FCBP samples, and provides a back pressure percentage for comparison with the moderate threshold and severe threshold issued by the device manager to obtain the current back pressure load status. The bphist register is a shift register. When each sampling signal arrives, the low bit moves to the high bit, the lowest bit is filled with the current sampling sample, and the highest bit sample is discarded. The back pressure percentage is increased or decreased by comparing the back pressure signal with the oldest sample in the bphist register. The workflow of the internal back pressure monitoring module is as follows: Figure 6 shown.
[0057] After the device processor obtains the internal load status, internal back pressure load status, request counter and completion counter, it can obtain the current total load through a series of operations (determined by the content defined by the CXL protocol) based on the above information and the QoS allocation ratio and QoS restriction score of each LD, and then send the total load to the register module and inform the host status through the cxl.mem response.
[0058] It will be understood by those skilled in the art that, unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as those generally understood by those skilled in the art in the art to which the present invention belongs. It should also be understood that terms such as those defined in common dictionaries should be understood to have the same meaning as in the context of the prior art, and will not be interpreted with an idealized or overly formal meaning unless defined similarly here.
[0059] The specific implementation methods described above further illustrate the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above description is only a specific implementation method of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the scope of protection of the present invention.
Claims
1. A service quality telemetry system based on the CXL protocol, characterized by: The system comprises: A storage unit for storing data; Sampling module, used to generate sampling signals, including the sampling signal of the completion counter in the completion counting module and the sampling signal of the back pressure percentage update in the internal back pressure monitoring module. The sampling time and sampling interval are configurable; A register module for configuring the quality of service telemetry hardware function based on information sent by the device processor and returning hardware status to the device processor; An internal back pressure monitoring module is used to generate a back pressure percentage according to the sampling signal generated by the sampling module, obtain the back pressure situation according to the comparison between the back pressure percentage and the internal back pressure threshold, and return the back pressure situation to the device processor through the register module; The internal load monitoring module is used to obtain the internal load status according to the internal load threshold configured by the register and the data to be processed in the cxl.mem queue, and return the internal load status to the device processor through the register module; The request counting module is used to count the number of pending requests. When the maximum count is reached, the request counter is kept and the request counter information is returned to the device processor through the register module. The completion counting module is used to count the number of requests completed when the sampling signal of the completion counter arrives, and return the completion counter information to the device processor through the register module; The device processor is used to send information about the configuration of the quality of service telemetry hardware function to the register module, and derive the device load status based on the returned back pressure status, internal load status, request counter information, and completion counter information, and return the device load status to the cxl.mem response.
2. The service quality telemetry system based on the CXL protocol according to claim 1, characterized in that: The storage unit is a static random access memory or a dynamic random access memory.
3. The service quality telemetry system based on the CXL protocol according to claim 1, characterized in that: The sampling module includes a slow clock for sampling and a fast clock for sampling monitoring. The sampling signal is jointly generated by a sampling time counter and a sampling interval counter. The sampling time counter specifies the time required for each sampling interval, and the sampling interval counter specifies the generation of the sampling signal. After the sampling signal is generated, it undergoes pulse broadening and is synchronized by the fast clock and transmitted to the completion counting module, the internal back pressure monitoring module and the internal load monitoring module.
4. The service quality telemetry system based on the CXL protocol according to claim 1, characterized in that: The completion counting module is composed of multiple completion counters, which are sorted from low to high. The first completion counter counts the number of requests completed when the sampling signal of the completion counter arrives. When the maximum count is reached, the counter is maintained, and each time the sampling signal reaches the low-order completion counter, it moves to the high-order completion counter.
5. The service quality telemetry system based on the CXL protocol according to claim 1, characterized in that: The information sent by the device processor to the register module includes sampling time, sampling interval, internal back pressure threshold and internal load threshold.
6. The CXL-based service quality telemetry method of the CXL-based service quality telemetry system according to any one of claims 1 to 5, characterized in that: The following operations are included: The device processor sends information to the register, and the register configures the quality of service telemetry hardware function according to the information sent by the device processor and returns the hardware status to the device processor, wherein the information includes a sampling time, a sampling interval, an internal back pressure threshold, and an internal load threshold; The quality of service telemetry enters the working state and generates in parallel the information required for device load calculation, including back pressure conditions, internal load conditions, request counter information, and completion counter information. The back pressure conditions, internal load conditions, and completion counter information are obtained by sampling and comparing based on the configured sampling interval, sampling time, internal back pressure threshold, and internal load threshold. The device processor derives the device load condition based on the obtained request counter information, completion counter information, back pressure conditions, and internal load conditions, and sends the device load condition to the register. The register returns the device load condition to the cxl.mem response, and the cxl.mem response replies the device load condition to the host side.
7. The service quality telemetry method based on the CXL protocol according to claim 6, characterized in that: The internal load condition is obtained by comparing the internal load threshold configured by the register with the data to be processed in the cxl.mem queue.
8. The service quality telemetry method based on the CXL protocol according to claim 6, characterized in that: There are multiple completion counters, which are sorted from low to high. The first completion counter counts the number of requests completed when the sampling signal of the completion counter arrives. The counter maintains when the maximum count is reached, and moves to the high completion counter each time the sampling signal reaches the low completion counter.
9. The service quality telemetry method based on the CXL protocol according to claim 6, characterized in that: The storage unit is a static random access memory or a dynamic random access memory.
Citation Information
Patent Citations
Adaptive register updating method and device of embedded system and medium
CN115858018A
Intelligent application manager of wireless access network
CN117897980A