IP Library Granted Patent US 11,409,466
Granted Patent B2
US 11,409,466 · App. 16/776,198 · Granted Aug 9, 2022

Access control in CMB/PMR virtualization environment

Inventor: Shay Benisty (Beer Sheva, IL)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0659G06F3/0611G06F3/0658G06F3/0664G06F3/0679G06F9/467G06F9/546
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,409,466
App. No.
16/776,198
Granted
Aug 9, 2022
Kind
B2
Abstract

In one embodiment, a method provides access to a data storage device from a host coupled to the data storage device. The host is running a plurality of virtual functions. The method includes receiving an inbound request to a memory of a storage device controller of the data storage device. The memory of the storage device controller includes a DRAM memory and a non-DRAM memory. Whether the inbound request is a CMB/PMR transaction request is determined. The CMB/PMR transaction request is scheduled. Whether the scheduled CMB/PMR transaction request is allowed is determined. The allowed CMB/PMR transaction request is issued toward the DRAM memory of the storage device controller.

Claims (50)

1. A method of providing access to a data storage device from a host coupled to the data storage device in which the host is running a plurality of virtual functions, wherein each virtual function of the plurality of virtual functions has a dedicated controller memory buffer (CMB) region within a DRAM of the storage device, the method comprising:

receiving an inbound request to a memory of a storage device controller of the data storage device, the memory of the storage device controller comprising a DRAM memory and a non-DRAM memory;

determining whether the inbound request is a controller memory buffer/persistent memory region (CMB/PMR) transaction request;

scheduling the CMB/PMR transaction request;

determining whether the scheduled CMB/PMR transaction request is allowed based on quality of service (QoS) impact of the scheduled CMB/PMR transaction request on the data storage device, the QoS impact based on at least one of timing, size, source, access type, and pattern of data written or read, of the CMB/PMR transaction request;

issuing the allowed CMB/PMR transaction request toward the DRAM memory of the storage device controller;

collecting statistical information about DRAM access attributes of the CMB/PMR transaction requests, wherein the statistical information comprises one of timing of the CMB/PMR transaction request, size of data of the CMB/PMR transaction request, source of CMB/PMR transaction request, a type of access of the CMB/PMR transaction request, or a pattern of data in the CMB/PMR transaction request; and

determining a subset of a plurality subsets of the DRAM access attributes is abnormal;

identifying an abnormal virtual function of the plurality of virtual functions based on the abnormal DRAM access attributes; and

disabling the abnormal virtual function from accessing the DRAM of the storage device, while continuing to permit the remaining virtual functions of the plurality of virtual functions to access the DRAM of the storage device.

2. The method of claim 1 , further comprising issuing the inbound request to a non-DRAM memory of the storage device controller when the inbound request is determined to not be a CMB/PMR transaction request.

3. The method of claim 2 , wherein the inbound request is a control access request from the host of the non-DRAM memory of the storage device controller.

4. The method of claim 2 , wherein the inbound request is an internal operation request from the data storage device of the DRAM memory of the storage device controller.

5. The method of claim 1 , further comprising holding the scheduled CMB/PMR transaction request when the scheduled CMB/PMR transaction request is not allowed to issue.

6. The method of claim 5 , further comprising:

determining whether the held CMB/PMR transaction request is allowed; and

issuing the held CMB/PMR transaction request toward the DRAM memory.

7. A data storage device, comprising:

a PCIe interface configured to be coupled to a PCIe interface of a host running a plurality of virtual functions;

non-volatile memory; and

a storage device controller comprising:

a memory;

a memory access control module; and

an anomaly detector module coupled to the memory access control module,

wherein the memory of the storage device controller comprises a DRAM memory and a non-DRAM memory,

wherein each virtual function of the plurality of virtual functions has a dedicated controller memory buffer (CMB) region within the DRAM memory of the storage device controller, and

wherein the memory access control module is between the PCIe interface of the data storage device and the DRAM memory, wherein the memory access control module is configured to:

receive an inbound request to the memory of the storage device controller;

determine whether the inbound request is a controller memory buffer/persistent memory region (CMB/PMR) transaction request;

schedule the CMB/PMR transaction request;

determine whether the scheduled CMB/PMR transaction request is allowed based on quality of service (QoS) impact of the scheduled CMB/PMR transaction request on the data storage device, the QoS impact based on at least one of timing, size, source, access type, and pattern of data written or read, of the CMB/PMR transaction request; and

issue the allowed CMB/PMR transaction request toward the DRAM memory; and

collect statistical information about DRAM access attributes of the CMB/PMR transaction requests, wherein the statistical information comprises one of timing of the CMB/PMR transaction request, size of data of the CMB/PMR transaction request, source of CMB/PMR transaction request, a type of access of the CMB/PMR transaction request, or a pattern of data in the CMB/PMR transaction request,

wherein the anomaly detector module is configured to:

determine a subset of a plurality of subsets of the DRAM access attributes is abnormal;

identify an abnormal virtual function of the plurality of virtual functions based on the abnormal DRAM access attributes; and

disable the abnormal virtual function from accessing the DRAM of the data storage device, while continuing to permit the remaining virtual functions of the plurality of virtual functions to access the DRAM of the storage device.

8. The data storage device of claim 7 , wherein the memory access control module is further configured to issue the inbound request to the non-DRAM memory of the storage device controller when the inbound request is determined to not be a CMB/PMR transaction request.

9. The data storage device of claim 8 , wherein the inbound request is a control access request of the non-DRAM memory of the storage device controller.

10. The data storage device of claim 8 , wherein the inbound request is an internal operation request from the data storage device of the DRAM memory of the storage device controller.

11. The data storage device of claim 7 , wherein the memory access control module is further configured to hold the scheduled CMB/PMR transaction request when the scheduled CMB/PMR request is not allowed to issue.

12. The data storage device of claim 11 , wherein the memory access control module is further configured to:

determine whether the held CMB/PMR transaction request is allowed; and

issue the held CMB/PMR transaction request toward the DRAM memory.

13. A data storage device, comprising:

a PCIe interface configured to be coupled to a PCIe interface of a host running a plurality of virtual functions;

non-volatile memory; and

a storage device controller comprising a memory access control means for issuing controller memory buffer/persistent memory region (CMB/PMR) transaction requests to the memory in an out-of-order sequence based on quality of service (QoS) impact of the CMB/PMR transaction requests on the data storage device, the QoS impact based on at least one of timing, size, source, access type, and pattern of data written or read, of the CMB/PMR transaction requests, the memory comprising a DRAM memory and a non-DRAM memory, wherein each virtual function of the plurality of virtual functions has a dedicated controller memory buffer (CMB) region within the DRAM memory of the storage device controller, the memory access control means is between the PCIe interface of the data storage device and the memory, and collecting statistical information about DRAM access attributes of the CMB/PMR transaction requests made to the DRAM, wherein the statistical information comprises one of timing of the CMB/PMR transaction request, size of data of the CMB/PMR transaction request, source of CMB/PMR transaction request, a type of access of the CMB/PMR transaction request, or a pattern of data in the CMB/PMR transaction request; and

an anomaly detector means for collecting access attributes of the DRAM memory from the plurality virtual functions; determining a subset of a plurality of subsets of the DRAM access attributes is abnormal; determining an abnormal virtual function of the plurality of virtual functions based on the abnormal subset of the DRAM access attributes, and disabling one of the plurality of CMB regions associated with the abnormal virtual function from accessing the DRAM of the data storage device, while continuing to permit the remaining CMB regions of the plurality of CMB regions associated with the remaining virtual functions to access the DRAM of the storage device.

14. The data storage device of claim 13 , wherein an NVM Express communications protocol is running over the PCIe interface of the data storage device.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052025 FRAME 0088 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0699 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2020
From: BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 052538/0345 →
SECURITY INTEREST Recorded Feb 26, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052025/0088 →
Cited By (3)
US 12,353,757 US 12,373,349 US 12,554,418