Disk Drive Command Reordering via Partial Evaluation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In storage devices with magnetic disks, efficiently executing a large number of random commands is challenging due to the significant computations required to determine the optimal order, leading to inefficiencies in head movement and disk rotation, especially when the number of commands is large.

Innovation Solution

A method where the controller calculates the time required for the head to access unexecuted commands after completing the current command, selecting the next command based on this calculation until a threshold is reached or the current command is completed, to optimize the execution order and reduce computational overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the controller considers all possible orders of executing commands to determine the optimal order, then the execution efficiency is improved, but the computational complexity and time required increase significantly

Engineering Contradiction:
Improvecommand execution efficiencyVSAvoidcomputational complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the command queue into multiple segments or groups based on target position proximity. Instead of evaluating all N! permutations of individual commands, the controller segments commands into manageable groups and determines execution order at the segment level, dramatically reducing computational complexity while maintaining improved execution efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and prioritizes commands based on specific criteria (such as nearest neighbor distance or rotational position) without considering all possible command orderings. By extracting a subset of promising candidate commands and evaluating only those, the system achieves good execution efficiency without the factorial computational burden of exhaustive search.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If the controller evaluates all N unexecuted commands using the nearest neighbor algorithm to select the next command, then a good choice is made, but the number of computations becomes too large for large N

Engineering Contradiction:
Improvecommand selection qualityVSAvoidcomputation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies partial evaluation by considering only a limited subset of unexecuted commands rather than all N commands. For example, it may evaluate only commands within a certain rotational window or those targeting nearby positions, performing enough evaluation to make good selections without the exhaustive computation of all candidates.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent performs preliminary sorting or pre-calculation of command parameters (such as rotational position, seek distance, or priority metrics) before the nearest neighbor selection. This preliminary organization allows the controller to quickly identify candidate commands without performing full evaluations of all N commands at selection time, reducing real-time computation requirements.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10777218B2Disk-drive with efficient command reordering
Publication Date: 2020.09.15 KK TOSHIBA
  • US10777218B2 patent drawing
  • US10777218B2 patent drawing
  • US10777218B2 patent drawing

AI summary

A storage device includes a disk, a head configured to write data to and read data from the disk, and a controller. The controller is configured to, for each of a plurality of unexecuted commands, carry out a calculation of an amount of time that is required for the head to start accessing the disk to begin execution of the non-executed command upon completion of a currently-executed command, until the earlier of i) a number of unexecuted commands for which the calculation has been carried out reaches a threshold value or ii) the completion of the currently-executed command, select a next command to be executed from one or more unexecuted commands for which the calculation has been carried out, based on the calculated amount of time for each of the one or more unexecuted commands, and execute the selected next command.