# US 10,481,934 B2 · Virtualized performance profiling and monitoring

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,481,934 B2
- Document ID: US10481934B2
- Status: Granted
- Kind: B2
- Application number: 15/063,499
- Filed: 2016-03-07
- Published: 2017-05-25
- Granted: 2019-11-19
- Earliest claimed: 2015-11-20
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Inseok Stephen Choi; Yang Seok Ki
- Web page: https://patentgrep.com/patent/US10481934B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 13/102: {where the program performs an interfacing function, e.g. device driver (G06F13/105 takes precedence; contention policies within device drivers G06F9/4881; scheduling within device drivers G06F9/52)}
- G06F 13/24: using interrupt (G06F13/32 takes precedence)
- G06F 13/28: using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence)
- G06F 13/4068: {Electrical coupling}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45591: {Monitoring or debugging support}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

An embodiment includes a system, comprising: a communication interface configured to communicate with a remote system external to the system; a memory; and a processor coupled to the communication interface and the memory and configured to: receive performance data from the remote system through the communication interface; maintain a virtual performance register in response to the performance data; receive a performance register access associated with the remote system through the communication interface; and respond to the performance data access through the communication interface based on the virtual performance register.

## Claims

### Claim 1

A solid-state drive (SSD) system, comprising:
a communication interface configured to communicate with a remote system external to the system;
a memory; and
a processor coupled to the communication interface and the memory and configured to:
receive performance data from the remote system, through the communication interface, that has been received from a performance register of the remote system, the received performance data being a first type of performance data during a first set of periods of time and a second type of performance data during a second set of periods of time that alternates with the first set of periods of time, the first type of performance data being different from the second type of performance data;
maintain virtual performance registers in the memory for the received performance data, the virtual performance registers storing received performance data of the performance register of the remote system and allowing the remote system to use fewer resources for performance monitoring than if the remote system monitors performance using the performance register of the remote system;
interpolate between the received first type of performance data of two of the first sets of periods of time to generate first performance data during a third period of time of the second set of periods of time that intervenes between the two first periods of time;
store, in the virtual performance registers, a result of the interpolation for the third period of time;
receive a performance register access associated with the remote system through the communication interface; and
respond to the performance register access through the communication interface, the response being based on contents of the virtual performance register as stored for the first and second sets of periods of time or the third period of time.

### Claim 2 (depends on 1)

The SSD system of claim 1, wherein the communication interface comprises a mass-storage device interface.

### Claim 3 (depends on 1)

The SSD system of claim 1, wherein the communication interface comprises at least one of SATA, SAS, NVMe, Ethernet, FC, Infiniband, and RDMA.

### Claim 4 (depends on 1)

The SSD system of claim 1, wherein the processor is further configured to receive a signal indicating a context switch of the remote system.

### Claim 5 (depends on 4)

The SSD system of claim 4, wherein the processor is further configured to store a state of the performance data, in the virtual performance registers, in response to the signal indicating the context switch.

### Claim 6 (depends on 4)

The SSD system of claim 4, wherein the processor is further configured to transmit performance data to the remote system, stored in the virtual performance registers, in response to the signal indicating the context switch.

### Claim 7 (depends on 1)

The SSD system of claim 1, wherein:
the remote system is referred to as a first remote system;
the first type of performance data and the second type of performance are referred to a first remote-system performance data;
the virtual performance registers storing the first type of performance data and the second type of performance data are referred to as a first remote-system virtual performance registers; and
the processor is further configured to:
receive second remote-system performance data from a second remote system, through the communication interface that has been received from a performance register of the second remote system;
maintain a second remote-system virtual performance register in the memory for the second remote-system performance data, the second remote-system virtual performance register corresponding to the performance register of the second remote system and allowing the second remote system to use fewer resources for performance monitoring than if the second remote system monitors performance using the performance register of the second remote system;
receive a performance register access associated with the second remote system through the communication interface; and
respond to performance register accesses associated with the second remote system through the communication interface, the response being based on contents of the second remote-system virtual performance register.

### Claim 8 (depends on 1)

The SSD system of claim 1, wherein the processor is further configured to transmit performance register configuration information to the remote system, the performance register configuration information indicating a configuration of the performance register associated with the received performance data.

### Claim 9 (depends on 1)

The SSD system of claim 1, wherein the processor is further configured monitor the virtual performance registers and transmit an alarm to the remote system based on the virtual performance registers.

### Claim 10

A method, comprising:
receiving, by a processor in a solid-state drive (SSD) system, performance data, through a communication interface of the SSD, from a remote system external to the SSD, the performance data being received from a performance register of the remote system, the received performance data being a first type of performance data during a first set of periods of time and second type of performance data during a second set of periods of time that alternates with the first set of periods of time, the first type of performance data being different from the second type of performance data;
maintaining, by the processor, virtual performance registers in a memory of the SSD for storing received performance data and allowing the remote system to use fewer resources for performance monitoring than if the remote system monitors performance using the performance register of the remote system;
interpolating between the received first type of performance data of two of the first sets of periods of time to generate first performance data during a third period of time of the second set of periods of time that intervenes between the two first periods of time;
storing, in the virtual performance registers, a result of the interpolation for the third period of time;
receiving, by the processor, a performance register access associated with the remote system through the communication interface; and
responding, by the processor, to the performance register access through the communication interface, the response being based on contents of the virtual performance register as stored for the first and second sets of periods of time or the third period of time.

### Claim 11 (depends on 10)

The method of claim 10, further comprising receiving, by the processor, a signal indicating a context switch of the remote system.

### Claim 12 (depends on 11)

The method of claim 11, wherein the processor is further configured to store a state of the performance data in the virtual performance registers in response to the signal indicating the context switch.

### Claim 13 (depends on 11)

The method of claim 11, wherein the processor is further configured to transmit performance data to the remote system from the virtual performance registers in response to the signal indicating the context switch.

### Claim 14 (depends on 10)

The method of claim 10, wherein the processor is further configured to transmit performance register configuration information to the remote system, the performance register configuration information indicating a configuration of a performance register of the remote system associated with the performance data.

### Claim 15 (depends on 10)

The method of claim 10, wherein:
the remote system is referred to as a first remote system;
the first type of performance data and the second type of performance data are referred to a first remote-system performance data;
the virtual performance registers storing the first type of performance data and the second type of performance data are referred to as a first remote-system virtual performance register; and
the processor is further configured to:
receive second remote-system performance data from a second remote system through the communication interface that has been received from a performance register of the second remote system;
maintain a second remote-system virtual performance register in the memory for the second remote-system performance data, the second remote-system virtual performance register corresponding to the performance register of the second remote system and allowing the second remote system to use fewer resources for performance monitoring than if the second remote system monitors performance using the performance register of the second remote system;
receive a performance register access associated with the second remote system through the communication interface; and
respond to performance register accesses associated with the second remote system through the communication interface based on the second remote-system virtual performance register.
