A storage control system, a control method, and a storage device

By introducing a virtualization management layer and a two-level mapping architecture into the storage control system, the problems of slot contention and anomaly propagation during concurrent access by multiple operating systems are solved, enabling efficient and secure storage task processing and improving system smoothness and reliability.

CN123047868APending Publication Date: 2026-11-06合肥康芯威存储技术有限公司
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611221959.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-08-12
Publication Date
2026-11-06

AI Technical Summary

Technical Problem

In fields such as automotive cockpits, domain controllers, and industrial control, when multiple operating systems concurrently access the same storage controller, issues such as slot contention, calibration blockage, and anomaly propagation can easily arise, leading to increased waiting time for high-priority tasks and system instability.

Method used

A virtualization management layer is introduced, which uses a two-level mapping architecture between virtual slots and execution slots, combined with multi-dimensional arbitration based on priority and credit value, to alleviate resource contention and perform local or device-level recovery processing in abnormal situations.

Benefits of technology

It improves the efficiency and security of concurrent access to multiple systems, reduces the probability of blocking, ensures rapid response of high-priority tasks, limits the global impact of local failures, and enhances the reliability and consistency of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123047868A_ABST
    Figure CN123047868A_ABST
Patent Text Reader

Abstract

This invention discloses a storage control system, control method, and storage device, relating to the storage field, including multiple virtual machines, a host controller, and a virtualization management layer. The virtualization management layer connects the virtual machines and the host controller, matching virtual slots for the storage tasks of the virtual machines, and mapping virtual slots sequentially to execution slots based on the priority information of the storage tasks, the credit value of the virtual machines, the command attributes of the command descriptors, and the type of the storage tasks. When an anomaly occurs in the execution process of a storage task, the virtualization management layer performs partial recovery of the virtual machines or device-level shared resource-level recovery, depending on the scope of the anomaly's impact. This invention can alleviate the problems of slot contention, calibration blocking, and anomaly propagation when multiple virtual machines access the system concurrently.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of storage technology, and specifically relates to a storage control system, control method, and storage device. Background Technology

[0002] In automotive cockpits, domain controllers, industrial control systems, and high-reliability embedded platforms, it is necessary to run multiple systems such as Android, QNX, Linux, or RTOS on the same system chip, and these multiple systems need to access the same controller concurrently.

[0003] In storage devices, host controllers typically exist as single physical instances, and the command queuing engine can only provide a limited number of physical slots. When multiple virtual machines submit commands simultaneously, contention for physical slots can easily arise, leading to increased waiting times for high-priority storage tasks. Furthermore, fixed requests within the controller may require dedicated bus access, during which storage tasks from other virtual machines must be suspended.

[0004] When multiple virtual machines access the system concurrently, if any virtual machine driver malfunctions and triggers a controller-level reset, the error may propagate to other normal virtual machines. Summary of the Invention

[0005] The purpose of this invention is to provide a storage control system, control method, and storage device. The storage control system, control method, and storage device provided by this invention can alleviate the problems of slot contention, calibration blocking, and anomaly propagation when multiple virtual machines access the system concurrently, and improve the sharing efficiency and security of the physical controller.

[0006] To solve the above-mentioned technical problems, the present invention is achieved through the following technical solution: This invention provides a storage control system, comprising: Multiple virtual machines, which are configured to output command descriptors related to the storage task when generating the storage task; A host controller for executing the storage task indicated by the command descriptor, wherein the host controller has a plurality of execution slots, the execution slots being physical storage locations for caching storage commands to be executed; and The virtualization management layer, connected between the virtual machine and the host controller, is configured to match virtual slots to storage tasks of the virtual machine, and to map the virtual slots to the execution slots in sequence according to the priority information of the storage task, the credit value of the virtual machine, the command attributes of the command descriptor and the storage task type, wherein the virtual slots are virtual storage locations for caching instructions of storage tasks to be executed; When the execution process of the storage task encounters an anomaly, the virtualization management layer performs partial recovery of the virtual machine or device-level shared resource recovery, depending on the scope of the anomaly's impact.

[0007] In one embodiment of the present invention, the virtual machine management layer includes: The command tag parsing module, connected to the virtual machine, is configured to extract the virtual machine identifier and virtual slot identifier from the command descriptor, wherein multiple virtual machines have a unique corresponding virtual machine identifier, and each virtual slot has a unique corresponding virtual slot identifier; An arbitration scheduling module, connected to the command tag parsing module, is configured to generate scheduling instructions based on the priority information of the storage task, the credit value of the virtual machine, and the command attributes of the command descriptor. The scheduling instructions include the mapping relationship between the virtual slot and the execution slot, and the delivery order of the storage task. The slot mapping module, connected to the arbitration scheduling module, is configured to establish a mapping relationship between the virtual slot and the execution slot according to the scheduling instructions.

[0008] In one embodiment of the present invention, the command descriptor includes at least the virtual machine identifier, the virtual slot identifier, the command code, priority information, a data direction field, and a buffer pointer field, wherein the priority information characterizes the urgency of the storage task.

[0009] In one embodiment of the present invention, the command attributes of the command descriptor include a real-time flag and a preemptible attribute for the storage task, wherein the real-time flag represents the execution deadline of the storage task, and the preemptible attribute represents whether the storage task is allowed to be interrupted during execution.

[0010] In one embodiment of the present invention, the virtualization management layer includes a shadow proxy calibration module, which is configured to intercept frequency tuning calibration requests sent by the virtual machine to the host controller and output pre-stored frequency tuning parameters to the virtual machine.

[0011] In one embodiment of the present invention, when the physical bus of the host controller is idle and / or the occupancy rate of the execution slot is lower than a preset threshold, the shadow agent calibration module initiates the frequency modulation calibration request to the host controller and updates the pre-stored frequency modulation parameters.

[0012] In one embodiment of the present invention, the virtualization management layer includes an isolation management module, which is configured to manage multiple virtual machines in isolation according to the virtual machine identifier. The isolation management module includes a direct access permission checking unit, which is configured to block any virtual machine from making a direct storage access request to an unauthorized address space.

[0013] In one embodiment of the present invention, the virtualization management layer includes an anomaly synchronization coordination module, the anomaly synchronization coordination module comprising: An anomaly detection unit is configured to detect abnormal events that occur when the host controller executes the storage task, and to monitor the anomaly range of the abnormal events; A local exception handling unit is configured to perform a local reset on the virtual machine when the exception event is an internal resource exception of the virtual machine; and A shared exception handling unit is configured to establish an isolation barrier for all virtual machines and freeze all shared resources at the device level when the exception event is a shared resource exception of multiple virtual machines. After restoring the virtual machine that is the root cause of the exception, the shared exception handling unit coordinates the unrelated virtual machines to gradually restore the task execution process.

[0014] This invention provides a storage control method, comprising: Multiple virtual machines are configured. When a storage task is generated, the corresponding virtual machine outputs a command descriptor related to the storage task. Each of the virtual machines has a unique virtual machine identifier. Configure a host controller, wherein the host controller is used to execute the storage task indicated by the command descriptor, wherein the host controller has multiple execution slots, and the execution slots are physical storage locations for caching storage commands to be executed; Configure a virtualization management layer, which is connected between the virtual machine and the host controller. The virtualization management layer matches virtual slots for the storage tasks of the virtual machine and maps the virtual slots to the execution slots in sequence according to the priority information of the storage tasks, the credit value of the virtual machine and the command attributes of the command descriptor. The virtual slots are virtual storage locations for caching storage commands to be executed. When the execution process of the storage task encounters an anomaly, the virtualization management layer performs partial recovery of the virtual machine or device-level shared resource recovery, depending on the scope of the anomaly's impact.

[0015] The present invention provides a storage device, including any of the storage control systems described above.

[0016] This invention provides a storage control system, control method, and storage device. It configures virtual machines for each running system and establishes isolation between multiple virtual machines, enabling multiple running systems to concurrently utilize a limited number of execution slots, thus improving system smoothness. This invention introduces a virtualization management layer between the virtual machines and the host controller, utilizing a two-level mapping architecture between virtual slots and execution slots, combined with multi-dimensional arbitration based on priority and credit values, to alleviate the physical resource contention problem during heterogeneous task concurrency, improving the response speed of high-priority tasks and overall throughput efficiency. This invention not only enables rapid response to virtual machine frequency calibration requests at the front end but also asynchronously completes real hardware scanning and parameter updates at the back end using bus idle time, reducing the exclusive time of the physical bus during frequency calibration and lowering the probability of blocking concurrent requests from other virtual machines. This invention establishes access boundaries for each virtual machine identifier at the hardware level and uses an exception synchronization coordination module to perform layered processing of abnormal events, confining local logical errors to a single virtual machine for cleanup, and safely suspending and resetting shared resources only in the event of severe physical errors, reducing the risk of local failures causing global resets and improving data consistency and overall reliability in a multi-tenant environment.

[0017] Of course, any product implementing this invention does not necessarily need to achieve all of the advantages described above at the same time. Attached Figure Description

[0018] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0019] Figure 1 This is a schematic diagram of the storage control system in one embodiment of the present invention.

[0020] Figure 2 This is a schematic diagram of the virtualization management layer in one embodiment of the present invention.

[0021] Figure 3 This is a schematic diagram of the operation structure of the virtualization management layer in one embodiment of the present invention.

[0022] Figure 4 This is a schematic diagram of the abnormal synchronization coordination module in one embodiment of the present invention.

[0023] Figure 5 This is a flowchart of a storage control method in one embodiment of the present invention.

[0024] Figure 6 This is a schematic diagram of the structure of a storage device according to an embodiment of the present invention.

[0025] Labeling Explanation: 100, Storage Control System; 200, Host Controller; 210, Execution Slot; 300, Virtualization Management Layer; 310, Command Tag Parsing Module; 320, Arbitration Scheduling Module; 321, Task Queue to be Scheduled; 322, Credit Value Table; 330, Slot Mapping Module; 331, Mapping Relationship Table; 340, Shadow Proxy Calibration Module; 350, Isolation Management Module; 351, Direct Access Permission Check Unit; 352, Address Allocation Unit; 360, Anomaly Synchronization Coordination Module; 400, Virtual Machine; 500, Virtual Slot; 600, Storage Device; 700, Storage Medium. Detailed Implementation

[0026] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0027] First, the application scenarios and the discovery process of the technical problems of the embodiments of the present invention are described in an immersive manner. The storage control system 100, control method, and control device provided by the present invention can be used in hosts that support virtualization, and specifically, can be widely used in fields such as vehicle cockpits, domain controllers, industrial control, and high-reliability embedded platforms. The storage control system 100 provided by the present invention can run multiple heterogeneous operating systems simultaneously on the same system chip, and supports multiple heterogeneous operating systems to concurrently access the same underlying memory and host controller 200. In this embodiment, the underlying memory is embedded multi-media card (eMMC). It should be noted that the technical solution provided by the present invention is based on not modifying the underlying memory protocol. In this embodiment, that is, the storage control system 100, control method, and control device provided by the present invention can alleviate the problems of slot contention, calibration blocking, and anomaly propagation when multiple virtual machines 400 access concurrently without touching the eMMC protocol, thereby improving the sharing efficiency and security of the physical controller. Furthermore, this invention enables a hardware-assisted virtualization architecture to serve various operating systems with virtual machines 400, while introducing a cohesive virtualization management layer 300 between the virtual machines 400 and the host controller 200. By constructing a hardware control closed loop in four dimensions—command mapping, calibration agent, resource isolation, and anomaly coordination—the logical access and physical execution processes are decoupled from the underlying architecture without adding a large number of physical register interfaces. This effectively alleviates the resource preemption problem during heterogeneous task concurrency, eliminates bus calibration blocking, and strictly limits faults to a single virtual machine 400 domain, thus effectively solving the technical challenge of securely and efficiently sharing a single physical controller among multiple virtual machines 400.

[0028] Please see Figure 1As shown, the storage control system 100 provided by this invention is used to support virtualized hosts, and the storage control system 100 includes multiple virtual machines 400, a host controller 200, and a virtualization management layer 300 connected between the multiple virtual machines 400 and the host controller 200. The virtual machines 400 are used to serve the operating system, and in this invention, the virtual machines 400 are configured to output command descriptors related to the storage tasks when generating storage tasks. The host controller 200 is used to execute the storage tasks indicated by the command descriptors. In this invention, the host controller 200 has multiple execution slots 210, which are physical storage locations used to cache storage commands to be executed. In this embodiment, the host controller 200 includes a Command Queue Engine (CQE), and the number of execution slots 210 that the command queue engine can provide is fixed, for example, 32. In this invention, the number b refers to the number of execution slots 210. When the storage control system 100 is located within the storage device 600, the execution slot 210 directly interacts with the underlying physical bus and storage medium 700 of the storage device 600 to complete the final data transmission and status feedback. The virtualization management layer 300 receives command descriptors and matches virtual slots 500 to storage tasks issued by the virtual machine 400. Based on the priority information of the storage task, the credit value of the virtual machine 400, the command attributes of the command descriptor, and the task type, the virtual management layer 300 sequentially maps the virtual slots 500 to the execution slots 210. The virtual slots 500 are virtual storage locations used to cache storage commands to be executed. By introducing a two-level mapping architecture between virtual slots 500 and execution slots 210, the virtualization management layer 300 logically provides each virtual machine 400 with a virtual controller view possessing full slot depth. Combined with multi-dimensional arbitration based on priority and credit value, this invention effectively alleviates the resource preemption problem during heterogeneous task concurrency, achieving a balance between high real-time performance and high throughput. In this invention, when the execution process of a storage task encounters an anomaly, the virtualization management layer 300 performs partial recovery of the virtual machine 400 or device-level shared resource-level recovery based on the scope of the anomaly's impact. This achieves a balance between high real-time performance and high throughput while ensuring the safe use of the virtual machine 400, isolating each virtual machine 400, and completely preventing the system from crashing due to errors in some virtual machines 400.

[0029] Please see Figure 1 As shown, in one embodiment of the present invention, multiple virtual machines 400 have a unique corresponding virtual machine identifier, which is used to distinguish different virtual machines 400. For example... Figure 1The VM1, VM2, and VMn shown are used to represent numbers. This invention does not limit the number n of virtual machines 400. In this embodiment, multiple virtual machines 400 are configured to run different operating systems. These operating systems may be, for example, Android, QNX, Linux, or a Real-Time Operating System (RTOS). Figure 1 As shown, a single virtual machine 400 serves one type of operating system. For example, virtual machine 400VM1 runs the Android system, virtual machine 400VM2 runs the QNX system, and virtual machine 400VMn runs the RTOS system. Considering an application scenario, such as an in-vehicle intelligent cockpit, multiple virtual machines 400 can each run a real-time operating system (e.g., QNX) responsible for the full LCD instrument panel display, and a general-purpose operating system (e.g., Android or Linux) responsible for the central infotainment system. Virtual machine 400, acting as the initiator of storage access requests, internally runs an operating system and corresponding applications. When an application needs to read or write data, it generates a corresponding storage task through the operating system kernel. The operating system within virtual machine 400 then executes the storage task, translating it into command descriptor C output. It should be noted that this embodiment only provides one naming scheme for virtual machine identifiers; the names of virtual machine identifiers can be changed according to the designer's settings in the application.

[0030] Please see Figure 1 As shown, in one embodiment of the present invention, virtual slot 500 has a unique corresponding virtual slot identifier, and the virtual slot identifier is used to distinguish different virtual slots 500. In this embodiment, before creating a new virtual machine 400 at startup, a virtual machine identifier and a virtual slot identifier are set, and the correspondence between the virtual machine identifier and the virtual machine 400, and the correspondence between the virtual slot 500 and the virtual slot identifier are set. The correspondence method can be that all data issued by the virtual machine 400 carries a virtual machine identifier field. Without logging out, the correspondence between the virtual machine identifier and the virtual machine 400, and the correspondence between the virtual slot 500 and the virtual slot identifier remain fixed. When shutting down or rebuilding the virtual machine 400, the virtual machine identifier and the virtual slot identifier can be reset. Therefore, the identifier correspondence mechanism provided by the present invention is dynamically changing throughout the entire memory lifecycle, but remains static within the lifecycle of a single virtual machine 400. It should be noted that in the present invention, execution slot 210 can be distinguished by an identifier or by a fixed address. For example, the identifier of execution slot 210 can be distinguished as follows: Figure 1 In the diagram, S1, S2 to Sa, and 'a' represent the number of execution slots 210. Virtual slot identifiers are, for example,... Figure 1In the diagram, L1, L2, and Lb represent the number of virtual slots. The mapping relationship between execution slot 210 and virtual slot 500 can be an identifier mapping relationship, such as L1 mapping to S2.

[0031] Please see Figure 1 As shown, in one embodiment of the present invention, the command descriptor includes at least a virtual machine identifier, a virtual slot identifier, a command code, priority information, a data direction field, and a buffer pointer field, wherein the priority information is used to characterize the urgency of the storage task. The virtual machine identifier indicates which virtual machine 400 issued the task instruction, and the virtual slot identifier indicates the virtual slot 500 currently assigned to the instruction. It should be noted that the virtual slot 500 matched by the virtualization management layer 300 for the task instruction is only used to deceive the corresponding virtual machine 400, making the virtual machine 400 believe that the task is already in the execution queue, thereby improving the smoothness and satisfaction of the system. The virtual slot 500 is not the actual physical address in the storage device 600. The command code is the content of the task instruction, indicating the type of storage task, such as single-block read, multi-block write, erase, or frequency calibration. The priority information is used to characterize the urgency of the task instruction, or it can also characterize the priority of this task instruction relative to other task instructions. In this embodiment, the priority information includes, for example, three priorities: low, medium, and high. In other embodiments, more priorities can be set to precisely distinguish between different virtual machines 400 and different task types. The data direction field indicates whether the data flow is into or out of the host controller 200. The buffer pointer field includes the physical address or hash table base address pointing to the actual data storage location in the host memory, and is the core verification object for out-of-bounds defense.

[0032] Please see Figure 1 As shown, in one embodiment of the present invention, the command descriptor has command attributes, and the descriptor of the command descriptor includes a real-time flag and a preemptible attribute for the storage task. The real-time flag characterizes the execution deadline of the storage task, and the preemptible attribute characterizes whether the storage task is allowed to be interrupted during execution. In this embodiment, the real-time flag can characterize the latest execution deadline of the current storage task, or it can characterize the maximum time the current storage task can wait. In other embodiments of the present invention, the real-time nature of the storage task can also be characterized by a level, such as being divided into lenient, urgent, and very urgent, with the urgency increasing sequentially. The preemptible attribute is related to the task type and the virtual machine 400 from which it originates, and is used to characterize whether the storage task can be interrupted during execution without compromising data consistency. For example, ordinary background large file reads can be set to preemptive, while atomic write operations involving file system metadata updates can be set to non-preemptive.

[0033] Please see Figure 1 andFigure 2 As shown, in one embodiment of the present invention, the virtual machine 400 management layer includes a command tag parsing module 310, an arbitration scheduling module 320, a slot mapping module 330, a shadow agent calibration module 340, an isolation management module 350, and an anomaly synchronization coordination module 360. The command tag parsing module 310 is connected to the virtual machine 400 and is used to extract the virtual machine identifier and virtual slot identifier from the command descriptor. The arbitration scheduling module 320 is connected to the command tag parsing module 310 and is used to generate scheduling instructions based on the priority information of the storage task, the credit value of the virtual machine 400, and the command attributes of the command descriptor. The scheduling instructions include the mapping relationship between the virtual slot 500 and the execution slot 210, and the delivery order of the storage task. The slot mapping module 330 is connected to the arbitration scheduling module 320 and is used to establish the mapping relationship between the virtual slot 500 and the execution slot 210 according to the scheduling instructions. In this invention, by configuring multiple virtual machines 400 to run different operating systems, the virtualization management layer 300 can accurately identify the virtual machine identifiers of different operating systems. For virtual machines 400 operating on real-time operating systems, the system can assign them higher priority, ensuring that read / write instructions for critical, real-time data can be mapped to execution slot 210 with lower latency. For virtual machines 400 operating on general-purpose operating systems, the system limits their maximum bandwidth usage through a credit value mechanism, and when a virtual machine 400 malfunctions, the isolation management module 350 confines the fault to its own sandbox environment. This concurrency support for heterogeneous operating systems achieves decoupling of the security domain and the performance domain at the logical level.

[0034] Please see Figure 1 and Figure 2As shown, in one embodiment of the present invention, the command tag parsing module 310 listens to and captures all raw data packets issued by the virtual machine 400 in real time, and completes the preliminary decoding and identification tagging of the storage task instructions by parsing the command descriptor. The arbitration scheduling module 320 is used to maintain the queue of tasks to be scheduled for the virtual machine 400 321. The queue of tasks to be scheduled 321 is used to store storage tasks that have been allocated virtual slots 500 but have not yet been allocated execution slots 210. In this embodiment, when the execution slots 210 are full and the storage tasks in the queue of tasks to be scheduled 321 have a higher priority than the existing tasks that have been allocated execution slots 210, the arbitration scheduling module 320 can forcibly release the execution slots 210 of lower-priority storage tasks, put the lower-priority storage tasks back into the queue of tasks to be scheduled 321, and replace the released execution slots 210 with higher-priority storage tasks from the queue of tasks to be scheduled 321. In other embodiments of the present invention, the arbitration scheduling module 320 can forcibly release the execution slot 210 occupied by an existing task based on the preemptibility attribute and real-time flag of the existing task in the execution slot 210. Specifically, existing tasks that cannot be preempted, even if they have a low priority, cannot be released. Tasks whose real-time flag indicates an impending expiration, even if they have a low priority, cannot be released.

[0035] Please see Figure 1 and Figure 2As shown, in one embodiment of the present invention, a credit value table 322 is set for multiple virtual machines 400. The arbitration scheduling module 320 is used to maintain the credit value table 322 of the virtual machines 400, wherein the credit value table 322 stores the credit values ​​of multiple virtual machines 400. The credit value of a virtual machine 400 is related to the continuous time and / or number of times the virtual machine 400 occupies the execution slot 210, and the service satisfaction of the virtual machine 400. In this embodiment, in order to balance efficiency and fairness and prevent high-priority virtual machines 400 from monopolizing the execution slot 210 for a long time, resulting in low-priority virtual machines 400 not receiving service for a long time, a credit value table 322 is set. In this embodiment, when maintaining the credit value table 322, the arbitration scheduling module 320 reduces the credit value of virtual machines 400 that continuously occupy the execution slot 210, increases the credit value of virtual machines 400 whose unservice duration exceeds a threshold, and compensates the credit value of high-priority virtual machines 400 that fail to immediately match the execution slot 210. If a high-priority task fails to immediately match an execution slot 210, for example, if execution slot 210 is currently full and the task in execution slot 210 does not support preemption or has strong real-time requirements, then a higher-priority storage task is not allowed to preempt the position of a lower-priority storage task. In other embodiments of the present invention, the credit value of virtual machine 400 can be further evaluated based on its reliability. For example, the credit value of virtual machine 400 that frequently causes abnormal events should be lowered. In this embodiment, after the arbitration scheduling module 320 sets the submission order of tasks in the task queue 321 to be scheduled, it allocates execution slots 210 to tasks in the task queue according to the submission order based on the current occupancy status of execution slots 210. In this embodiment, the allocation of execution slots 210 is determined by the mapping relationship between the virtual slot 500 of the storage task and the execution slot 210. Arbitration scheduling module 320 outputs scheduling instructions to slot mapping module 330. Slot mapping module 330 can update mapping table 331 according to the mapping relationship between virtual slot 500 and execution slot 210 in the scheduling instructions, thereby ensuring that the system can accurately and efficiently find which node each virtual machine 400's task is on.

[0036] Please see Figure 1 and Figure 2As shown, in one embodiment of the present invention, the shadow proxy calibration module 340 is used to intercept the frequency modulation calibration request sent by the virtual machine 400 to the host controller 200, and output the pre-stored frequency modulation parameters to the virtual machine 400. In this embodiment, when the physical bus of the host controller 200 is idle and / or the occupancy rate of the execution slot 210 is lower than a preset threshold, the shadow proxy calibration module 340 initiates a frequency modulation calibration request to the host controller 200 and updates the pre-stored frequency modulation parameters. The shadow proxy calibration module 340 stores a calibration parameter table. Based on the environmental parameters of the storage system, the shadow proxy calibration module 340 looks up the table and outputs the frequency modulation parameters to the virtual machine 400. In the calibration parameter table, the frequency modulation parameters are associated with at least one of the storage system's temperature, voltage, and controller operating frequency. It should be noted that in a storage system using eMMC as the underlying memory, in HS400 mode, the frequency modulation request issued by the host controller 200 requires exclusive bus access. At this time, neither high-priority nor high-real-time storage tasks can break through bus occupancy to be executed. Therefore, in this embodiment, the shadow proxy calibration module 340 first returns pre-stored frequency modulation parameters to the system, deceiving the requesting end into believing that the task has been completed. When the bus is idle and / or the occupancy rate of the execution slot 210 is low, the calibration parameter table can be updated to ensure that more accurate calibration parameters are provided. The updates to the calibration parameters can be distinguished by version numbers. It should be noted that, in order to avoid background updates forcibly inserting time-consuming hardware scan instructions during peak system load periods, causing congestion in the underlying queue, the shadow proxy calibration module 340 continuously monitors the physical bus status of the host controller 200 and the depth of the queue 321 of tasks to be scheduled within the arbitration scheduling module 320. Only when the physical bus is detected to be in an absolutely idle state, such as no data transmission for several consecutive microseconds, or the shared resource occupancy rate is less than or equal to a preset safety threshold, will the shadow proxy calibration module 340 actively initiate a real underlying frequency modulation calibration request to the host controller 200.

[0037] Please see Figures 1 to 3As shown, in one embodiment of the present invention, the isolation management module 350 is connected to the command tag parsing module 310 and manages multiple virtual machines 400 in isolation according to virtual machine identifiers. Specifically, data exchange is directly prohibited for data information with different virtual machine identifiers. In this embodiment, the isolation management module 350 includes a direct access permission checking unit 351 and an address allocation unit 352. The direct access permission checking unit 351 is used to prevent any virtual machine 400 from accessing direct storage access requests to unauthorized address spaces. Specifically, the isolation management module 350 does not allow any virtual machine 400 to access any information of other virtual machines 400. In modern storage control architectures, the movement of massive amounts of data is autonomously completed by the Direct Memory Access (DMA) engine. In a multi-virtual machine 400 environment, direct memory access not only occupies the bus but also brings data risks. Therefore, the isolation management module 350 is used to directly cut off this risk from the source of permission auditing. The direct access permission checking unit 351, as a hardware-level firewall, is deployed in series on the data path between the command tag parsing module 310 and the physical submission line. When virtual machine 400 submits a command descriptor containing a direct storage access request, the direct access permission check unit 351 first extracts the virtual machine identifier associated with the request, and the address allocation unit 352 synchronously retrieves the legal physical address window pre-allocated by the system for the corresponding virtual machine identifier. The address window description information may include the starting address, continuous length, access direction, and validity period.

[0038] Please see Figures 1 to 3 As shown, in one embodiment of the present invention, the direct access permission check unit 351 performs boundary verification on the target address segment in the direct storage access request. The request is only allowed if all addresses in the request fall within the authorized legal window. If any address is invalid—that is, if any out-of-bounds access, cross-window access, or invalid virtual machine identifier is detected—the direct access permission check unit 351 will immediately block the request at the hardware level, prohibiting the request from entering the shared host controller 200, and simultaneously report the security violation event to the abnormal synchronization coordination module 360. This pre-verification and immediate blocking mechanism reduces the risk of illegal pollution of virtual machine 400 resources from a physical circuit perspective. In the case of legality, the storage task arrives at the scheduled task queue 321 through the address allocation unit 352; in the case of illegality, the storage task is directly sent to the abnormal synchronization coordination module 360. Since multiple virtual machines 400 share the same set of physical hardware resources, the isolation management module 350 establishes strict access boundaries for each virtual machine identifier at the hardware level, such as register mirroring and context state copying for virtual machine 400, thereby achieving strong isolation between different security domains and preventing unauthorized resource tampering across virtual machines 400.

[0039] Please seeFigures 1 to 4 As shown, in one embodiment of the present invention, the anomaly synchronization coordination module 360 ​​includes an anomaly detection unit 361, a local anomaly handling unit 362, and a shared anomaly handling unit 363. The anomaly detection unit 361 detects anomalies occurring when the host controller 200 executes storage tasks and monitors the scope of these anomalies. When the anomaly is an internal resource anomaly of a virtual machine 400, the local anomaly handling unit 362 performs a local reset on the virtual machine 400 where the anomaly occurred. When the anomaly is a shared resource anomaly of multiple virtual machines 400, the shared anomaly handling unit 363 establishes an isolation barrier for all virtual machines 400 and freezes all shared resources at the device level. After restoring the virtual machine 400 at the root of the anomaly, the shared anomaly handling unit 363 coordinates the unrelated virtual machines 400 to gradually resume task execution. In this embodiment, when the anomaly detection unit 361 detects a timeout or verification error in a command issued by a virtual machine 400, the anomaly detection unit 361 can identify the scope of the error based on the error report. If the error is only a local logical error, it is submitted to the local exception handling unit 362, which cleans up the context of the faulty virtual machine 400 only within the virtualization management layer 300 and performs a local reset on the corresponding location of the virtual machine 400. If the error is a serious physical bus error, it is submitted to the shared exception handling unit 363, which safely suspends the running state of all virtual machines 400 through a coordination mechanism, performs a low-level hardware reset, and then restores the state of each virtual machine 400. This layered processing logic improves the robustness and fault tolerance of the shared storage architecture.

[0040] Please see Figures 1 to 4 As shown, in one embodiment of the present invention, the anomaly detection unit 361 is used to maintain a completion log and / or to establish and maintain a command replay queue so as to replay incomplete commands during the anomaly recovery phase. The completion log stores information about completed storage tasks, and the command replay queue stores commands that have not yet been executed. The completion log stores storage tasks that have completed anomaly handling, and the command replay queue stores storage tasks waiting to be replayed, thereby controlling the anomaly recovery process.

[0041] Please see Figure 1 and Figure 5 As shown, the present invention provides a storage control method, the method comprising steps S10 to S30.

[0042] Step S10: Configure multiple virtual machines 400.

[0043] Step S20: Configure host controller 200.

[0044] Step S30: Configure the virtualization management layer 300, which is connected between the virtual machine 400 and the host controller 200.

[0045] Please see Figure 1 and Figure 5 As shown, in one embodiment of the present invention, in step S10, when generating a storage task, the corresponding virtual machine 400 outputs a command descriptor related to the storage task, wherein multiple virtual machines 400 have a unique corresponding virtual machine identifier. In step S20, the host controller 200 is used to execute the storage task indicated by the command descriptor, wherein the host controller 200 has multiple execution slots 210, and the execution slots 210 are physical storage locations used to cache the storage commands to be executed. In step S30, the virtualization management layer 300 matches virtual slots 500 for the storage task of the virtual machine 400, and maps the virtual slots 500 sequentially to the execution slots 210 according to the priority information of the storage task, the credit value of the virtual machine 400, and the command attributes of the command descriptor, wherein the virtual slots 500 are virtual storage locations used to cache the storage commands to be executed. When an anomaly occurs in the execution process of the storage task, the virtualization management layer 300 performs partial recovery of the virtual machine 400 or device-level shared resource-level recovery according to the scope of the anomaly's impact.

[0046] Please see Figure 1 , Figure 2 and Figure 6 As shown, the present invention also provides a storage device 600, which includes a storage control system 100 and a storage medium 700 provided by the present invention. The storage medium 700 can be NAND flash memory, and the storage control system 100 and the storage medium 700 are packaged as a single unit. The storage control system 100 regulates data read / write operations and responds to storage behavior in the storage medium 700. In this invention, all modules in the storage control system 100 and the host controller 200 are integrated on the same chip. In actual product form, the storage device 600 can be a storage subsystem within a highly integrated system-on-a-chip, or an independent storage module conforming to general flash memory storage or embedded multimedia card specifications. When the storage device 600 is deployed in an in-vehicle computing platform, it can simultaneously receive concurrent commands from the instrument panel domain controller and the central infotainment domain controller. Relying on internal module collaboration, the storage device 600 provided by the present invention can autonomously identify the source of commands, perform slot mapping, priority preemption, covert calibration, and lossless anomaly recovery, effectively solving the storage input / output conflict problem under a multi-domain fusion architecture.

[0047] In summary, this invention provides a storage control system for supporting virtualized hosts, including multiple virtual machines, a host controller, and a virtualization management layer. The virtual machines are configured to output command descriptors related to the storage tasks when generating storage tasks. The host controller executes the storage tasks indicated by the command descriptors, and has multiple execution slots, which are physical storage locations used to cache storage commands to be executed. The virtualization management layer connects the virtual machines and the host controller, and is used to match virtual slots for the storage tasks of the virtual machines. Based on the priority information of the storage tasks, the credit value of the virtual machines, the command attributes of the command descriptors, and the type of the storage tasks, the virtual slots are mapped sequentially to the execution slots, where the virtual slots are virtual storage locations used to cache instructions for the storage tasks to be executed. When an anomaly occurs in the execution process of a storage task, the virtualization management layer performs partial recovery of the virtual machines or device-level shared resource-level recovery, depending on the scope of the anomaly's impact. According to the technical solution provided by this invention, virtual machines are configured for each running system, and isolation is established between multiple virtual machines, thereby enabling multiple running systems to concurrently utilize a limited number of execution slots, improving the smoothness of system operation. This invention introduces a virtualization management layer between the virtual machine and the host controller. Utilizing a two-level mapping architecture of virtual slots and execution slots, combined with multi-dimensional arbitration based on priority and credit values, it alleviates the physical resource contention problem during heterogeneous task concurrency, improving the response speed of high-priority tasks and overall throughput efficiency. This invention not only enables rapid response to virtual machine frequency calibration requests at the front end but also asynchronously completes actual hardware scanning and parameter updates at the back end using bus idle time. This reduces the exclusive time of the physical bus during frequency calibration and lowers the probability of blocking concurrent requests from other virtual machines. At the hardware level, this invention establishes access boundaries for each virtual machine identifier and uses an exception synchronization coordination module to perform layered processing of abnormal events. It confines local logical errors to a single virtual machine for cleanup, and only safely suspends and resets shared resources in the event of severe physical errors, reducing the risk of a global reset caused by a local failure and improving data consistency and overall reliability in a multi-tenant environment.

[0048] The embodiments of the present invention disclosed above are merely illustrative of the invention. The embodiments do not exhaustively describe all details, nor do they limit the invention to the specific implementations described. Clearly, many modifications and variations can be made based on the content of this specification. This specification selects and specifically describes these embodiments to better explain the principles and practical applications of the invention, thereby enabling those skilled in the art to better understand and utilize the invention. The invention is limited only by the claims and their full scope and equivalents.

Claims

1. A storage control system, characterized in that, include: Multiple virtual machines, which are configured to output command descriptors related to the storage task when generating the storage task; A host controller for executing the storage task indicated by the command descriptor, wherein the host controller has multiple execution slots, the execution slots being physical storage locations for caching storage commands to be executed; as well as The virtualization management layer, connected between the virtual machine and the host controller, is configured to match virtual slots to storage tasks of the virtual machine, and to map the virtual slots to the execution slots in sequence according to the priority information of the storage task, the credit value of the virtual machine, the command attributes of the command descriptor and the storage task type, wherein the virtual slots are virtual storage locations for caching instructions of storage tasks to be executed; When the execution process of the storage task encounters an anomaly, the virtualization management layer performs partial recovery of the virtual machine or device-level shared resource recovery, depending on the scope of the anomaly's impact.

2. The storage control system according to claim 1, characterized in that, The virtual machine management layer includes: The command tag parsing module, connected to the virtual machine, is configured to extract the virtual machine identifier and virtual slot identifier from the command descriptor, wherein multiple virtual machines have a unique corresponding virtual machine identifier, and each virtual slot has a unique corresponding virtual slot identifier; An arbitration scheduling module, connected to the command tag parsing module, is configured to generate scheduling instructions based on the priority information of the storage task, the credit value of the virtual machine, and the command attributes of the command descriptor. The scheduling instructions include the mapping relationship between the virtual slot and the execution slot, and the delivery order of the storage task. The slot mapping module, connected to the arbitration scheduling module, is configured to establish a mapping relationship between the virtual slot and the execution slot according to the scheduling instructions.

3. A storage control system according to claim 2, characterized in that, The command descriptor includes at least the virtual machine identifier, the virtual slot identifier, the command code, priority information, a data direction field, and a buffer pointer field, wherein the priority information represents the urgency of the storage task.

4. A storage control system according to claim 2, characterized in that, The command attributes of the command descriptor include a real-time flag and a preemptible attribute for the storage task, wherein the real-time flag represents the execution deadline of the storage task, and the preemptible attribute represents whether the storage task is allowed to be interrupted during execution.

5. A storage control system according to claim 1, characterized in that, The virtualization management layer includes a shadow proxy calibration module, which is configured to intercept frequency tuning calibration requests sent by the virtual machine to the host controller and output pre-stored frequency tuning parameters to the virtual machine.

6. A storage control system according to claim 5, characterized in that, When the physical bus of the host controller is idle and / or the occupancy rate of the execution slot is lower than a preset threshold, the shadow agent calibration module initiates the frequency modulation calibration request to the host controller and updates the pre-stored frequency modulation parameters.

7. A storage control system according to claim 1, characterized in that, The virtualization management layer includes an isolation management module, which is configured to manage multiple virtual machines in isolation based on the virtual machine identifier. The isolation management module includes a direct access permission check unit, which is configured to block any virtual machine from making a direct storage access request to an unauthorized address space.

8. A storage control system according to claim 1, characterized in that, The virtualization management layer includes an anomaly synchronization coordination module, which includes: An anomaly detection unit is configured to detect abnormal events that occur when the host controller executes the storage task, and to monitor the anomaly range of the abnormal events; A local exception handling unit is configured to perform a local reset on the virtual machine when the exception event is an internal resource exception of the virtual machine; and A shared exception handling unit is configured to establish an isolation barrier for all virtual machines and freeze all shared resources at the device level when the exception event is a shared resource exception of multiple virtual machines. After restoring the virtual machine that is the root cause of the exception, the shared exception handling unit coordinates the unrelated virtual machines to gradually restore the task execution process.

9. A storage control method, characterized in that, include: Multiple virtual machines are configured. When a storage task is generated, the corresponding virtual machine outputs a command descriptor related to the storage task. Each of the virtual machines has a unique virtual machine identifier. Configure a host controller, wherein the host controller is used to execute the storage task indicated by the command descriptor, wherein the host controller has multiple execution slots, and the execution slots are physical storage locations for caching storage commands to be executed; Configure a virtualization management layer, which is connected between the virtual machine and the host controller. The virtualization management layer matches virtual slots for the storage tasks of the virtual machine and maps the virtual slots to the execution slots in sequence according to the priority information of the storage tasks, the credit value of the virtual machine and the command attributes of the command descriptor. The virtual slots are virtual storage locations for caching storage commands to be executed. When the execution process of the storage task encounters an anomaly, the virtualization management layer performs partial recovery of the virtual machine or device-level shared resource recovery, depending on the scope of the anomaly's impact.

10. A storage device, characterized in that, Includes the storage control system as described in any one of claims 1 to 8.