JP2020194523A - アクセス請求を処理する方法、装置、デバイスならびに記憶媒体 - Google Patents

アクセス請求を処理する方法、装置、デバイスならびに記憶媒体 Download PDF

Info

Publication number
JP2020194523A
JP2020194523A JP2020001176A JP2020001176A JP2020194523A JP 2020194523 A JP2020194523 A JP 2020194523A JP 2020001176 A JP2020001176 A JP 2020001176A JP 2020001176 A JP2020001176 A JP 2020001176A JP 2020194523 A JP2020194523 A JP 2020194523A
Authority
JP
Japan
Prior art keywords
requests
request
read
access
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020001176A
Other languages
English (en)
Inventor
リー、リン
Lin Li
チャン、ユイ
Yu Zhang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2020194523A publication Critical patent/JP2020194523A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】本発明の実施例によれば、アクセス請求を処理する方法、装置、デバイスならびに記憶媒体を提供し、クラウドコンピューティングの分野に関する。【解決手段】当該方法は、記憶デバイスに対する少なくとも一組の読み請求と一組の書き請求を含む複数の配信されるべきアクセス請求を取得するステップと、配信された読み請求の数が一組の読み請求の総数または第1の閾値の数に達するまで、一組の書き請求における書き請求を配信することなく、一組の読み請求における読み請求を記憶デバイスの駆動デバイスに配信するステップであって、駆動デバイスは記憶デバイス上で配信された請求を実行するように配置されているステップと、一組の書き請求のうちの少なくとも1つの書き請求を駆動デバイスに配信するステップとを含む。この提案は、ユーザーが必要とするデータをより速く提供するように、アクセス請求における読み請求を優先的に配信することにより、アクセス要求の実行効率を向上させることができる。【選択図】図2

Description

本発明の実施例は、主にコンピュータ記憶分野に関し、具体的にはアクセス請求を処理する方法、装置、デバイスならびにコンピュータ可読記憶媒体に関する。
コンピュータ技術の発展に伴い、より高いハードウェアアクセス速度を持つ高速記憶デバイスが登場している。ハードウェアのアクセス速度が向上すると同時に、記憶デバイスのドライバが、高速記憶デバイスの潜在力を最大限に利用するように、対応的に修正を行うことができることも求められる。このとき、高速記憶デバイスへのアクセスをいかに効率的に管理するかが、技術的に難しい課題となっている。
本発明の例示的な実施例によれば、アクセス要求を処理する方法が提供される。
本発明の第1態様において、アクセス要求を処理する方法が提供される。当該方法は、記憶デバイスに対する少なくとも一組の読み請求と一組の書き請求を含む複数の配信されるべきアクセス請求を取得するステップと、配信された読み請求の数が前記一組の読み請求の総数または第1の閾値の数に達するまで、前記一組の書き請求における書き請求を配信することなく、前記一組の読み請求における読み請求を前記記憶デバイスの駆動デバイスに配信するステップであって、前記駆動デバイスは前記記憶デバイス上で配信された請求を実行するように配置されているステップと、前記一組の書き請求のうちの少なくとも1つの書き請求を前記駆動デバイスに配信するステップとを含む。これによれば、ユーザーが必要とするデータをより速く提供するように、アクセス請求における読み請求を優先的に配信することにより、アクセス要求の実行効率を向上させることができる。
本発明の第2態様において、アクセス請求を処理するための装置が提供される。当該装置は、記憶デバイスに対する少なくとも一組の読み請求と一組の書き請求を含む複数の配信されるべきアクセス請求を取得するように配置された取得モジュールと、配信された読み請求の数が前記一組の読み請求の総数または第1の閾値の数に達するまで、前記一組の書き請求における書き請求を配信することなく、前記一組の読み請求における読み請求を前記記憶デバイスの駆動デバイスに配信するように配置された第1の配信モジュールであって、前記駆動デバイスは前記記憶デバイス上で配信された請求を実行するように配置された第1の配信モジュールと、前記一組の書き請求のうちの少なくとも1つの書き請求を前記駆動デバイスに配信するように配置された第2の配信モジュールと、を含む。
本発明の第3態様において、電子機器が提供され、前記電子機器は、1つ以上のプロセッサと、1つ以上のプログラムが記憶されている記憶デバイスとを含み、1つ以上のプログラムが1つ以上のプロセッサによって実行されると、本発明による第1態様の方法を1つ以上のプロセッサに実現させる。
本発明の第4態様において、コンピュータプログラムが記憶されたコンピュータ可読記憶媒体が提供され、当該コンピュータプログラムがプロセッサによって実行されると、本発明による第1態様の方法を実現する。
発明の内容部分に記載されている内容は、本開示の実施形態の重要な特徴を限定するものではなく、本開示の範囲を制限するものでもないことを理解されたい。本発明の他の特徴は、以下の説明によって分かりやすくなる。
本発明の各実施例の上記および他の特徴、利点および態様をより明確にするために、以下の詳細な説明と図面を参照する。図面において、同じまたは類似の符号は、同じまたは類似の要素を表す。
本発明の複数の実施例が実現可能な例示的な環境を示す概略図である。 本発明の実施例によるアクセス要求を処理するプロセスを示すフローチャートである。 本発明の実施例によるタイムアウトしたアクセス要求を配信するプロセスを示すフローチャートである。 本発明の実施例による読み請求を配信するプロセスを示すフローチャートである。 本発明の実施例によるアドレスに従って読み請求を配信するプロセスを示すフローチャートである。 本発明の実施例による書き請求を配信するプロセスを示すフローチャートである。 本発明の実施例によるアドレスに従って書き請求を配信するプロセスを示すフローチャートである。 本発明の内容の例示的な実現形態によるアクセス要求を処理するための装置を示すブロック図である。 本発明の複数の実施例を実施可能な計算デバイスを示すブロック図である。
以下、図面を参照して本発明の実施例についてより詳細に説明する。図面には本発明のいくつかの実施例が示されているが、本発明は様々な形態で実現可能であり、ここで説明された実施例に限定されるものと解釈されるべきではなく、逆に、これらの実施例は、本発明をより徹底的かつ完全に理解するために提供されていることが理解されるべきである。本発明の図面および実施例は、本発明の範囲を制限するためのものではなく、単に例示として使用されることが理解されるべきである。
本開示の実施例の説明において、「含む」という用語およびそれに類似した用語は、「含むが限定されない」というオープンな包含として理解されるべきである。「に基づいて」という用語は、「少なくとも部分的に基づいて」と理解されるべきである。「一実施例」または「当該実施例」という用語は、「少なくとも1つの実施例」と理解されるべきである。「第1」、「第2」などの用語は、異なるオブジェクトまたは同じオブジェクトを指すことができる。以下、他の明確的な定義および暗黙的な定義も含まれ得る。
記憶デバイスのハードウェア技術の発展に伴って、高速記憶デバイスが開発され、データセンターに占める高速記憶デバイスの割合が高くなっている。従来の低速記憶デバイスに対して、高速記憶デバイスは、高いデータアクセス速度と低いアクセス遅延を有する。例えば、NVMe SSDは従来のSASやSATAウィンチェスターディスクより数千倍速く、初期のSATA SSDより5〜10倍速い。
従来のカーネルステータスで実現されたドライバの性能と効率は、高速デバイスの優位性を発揮しにくい。記憶デバイスの応答効率を向上させるために、目前、記憶デバイスのドライバをカーネルステータスからユーザーステータスに遷移させる技術が提案された。このようにして、カーネルのコンテキストの切り替えを回避できるため、中央処理装置(CPU)の負担が軽減され、CPUがより多くの指令サイクルをデータ記憶の実際の処理に使用できるようになる。
しかしながら、ユーザーステータスが記憶デバイスへのアクセスを可能にする間、ポーリングモードを使用して記憶デバイスに対するアクセス請求を処理し、迅速にアクセス請求を送ることにより、待ち時間を短縮し、遅延を低減することができる。ところで、現在のユーザーステータス駆動は、単に実行すべきアクセス請求を順番に配信するだけであり、アクセス請求の配信順序を調整することができず、アクセス要求の実行性能を向上させることが困難である。
本発明の実施例によれば、アクセス要求を処理する技術案が提案される。当該技術案において、配信されるべき記憶デバイスに対する複数のアクセス請求を取得し、ここで、アクセス請求は少なくとも一組の読み請求と一組の書き請求を含む。この後、配信された読み請求の数が一組の読み請求の総数または第1の閾値の数に達するまで、一組の書き請求における書き請求を配信することなく、一組の読み請求における読み請求を記憶デバイスの駆動デバイスに配信し、ここで、駆動デバイスは記憶デバイス上で配信された請求を実行する。この後、一組の書き請求のうちの少なくとも1つの書き請求を駆動デバイスに配信する。この技術案は、ユーザーが必要とするデータをより速く提供するように、アクセス請求における読み請求を優先的に配信することにより、アクセス要求の実行効率を向上させることができる。
本発明の例示的な実現形態によれば、アクセス請求のディスパッチコードをユーザーステータスで実行することは、ドライバがカーネルステータスで実行されないことを意味し、カーネルのコンテキストの切替えや割込みを回避し、CPUの処理オーバヘッドを大幅に削減し、CPUのより多くのクロック周期に実際のデータ記憶を実行させることができる。
以下、本発明の実施例について、図面を参照して具体的に説明する。図1は、本発明の複数の実施例が実現可能な例示的な環境100を示す概略図である。図2に示すように、例示的な環境100には、ディスパッチングデバイス130、駆動デバイス140、および記憶デバイス150が含まれ、ここで、ディスパッチングデバイス130は、一組のアクセス請求を受信することができ、当該一組のアクセス請求は、具体的に、複数の読み請求120、122、126、および書き請求124を含む。
いくつかの実施例において、ディスパッチングデバイス130は、記憶デバイス150にアクセスするためのアクセス請求を記憶しているリングリストから一組のアクセス請求を取得することができる。図2に示すように、リングリスト110は、受信された記憶デバイス150にアクセスする複数のアクセス請求を記憶することができる。当該リングリスト110は、処理されるべきアクセス請求における最初のアクセス請求を指すためのヘッドポインタ112と、処理されるべきアクセス請求における最後のアクセス請求を指すためのテールポインタ114とを含むことができる。
いくつかの実施例において、ディスパッチングデバイス130は、所定の時間間隔において、リングリスト110から一組のアクセス請求を選択することができる。アクセス請求が受信されるたびに、記憶デバイス150におけるアクセス請求によって指定されたデータへのアクセスが実行されれば、記憶デバイス150へのアクセスが過剰に頻繁になることが理解されるであろう。特に、各アクセス請求に係るデータ量が少ない場合、記憶デバイス150に対しアクセス請求を頻繁に実行することは、記憶システムの全体的な性能の低下をもたらす。本発明において、所定の時間間隔の長さを指定することができ、このようにして、アクセス動作の全体的な性能を向上させるために、所定の時間間隔内に受信された複数のアクセス請求をまとめて処理することができる。
いくつかの実施例において、一組のアクセス請求の数は閾値の数を超えない。閾値の数を、例えば32、16、8などの所定の値に設定することができる。例えば、数値は、アクセス請求の受信頻度または数に応じて当該値を決定してもよく、または応答時間に対する記憶システムの要求に応じて当該値を決定してもよい。
図2に示すように、ディスパッチングデバイス130は、受信された一組のアクセス請求(読み請求120、122、126、及び書き請求124)をユーザーステータスの駆動装置(ユーザーステータス駆動とも呼ばれる)に配信して、記憶デバイス150上でアクセス請求の改組を行うことができる。
ディスパッチングデバイス130は、受信された一組のアクセス請求における各アクセス請求の配信順序を調整することもできる。具体的に、ディスパッチングデバイス130が読み請求を発する際にいつも読み請求に対するデータを即時に取得することが望まれ、書き請求を発する際にデータが正確に書き込まれるだけでよいことを考慮すると、ディスパッチングデバイス130は、読み請求を優先的に配信できるように、受信された一組のアクセス請求の配信順序を調整することができる。また、書き請求が一定の時間内に実行されることを保証する必要があることを考慮すると、ディスパッチングデバイス130は、特定の数の読み請求を配信した後に書き請求の配信を開始してもよく、これにより、システムの効率を向上させるために、読み請求が優先的に実行されることを保証しつつ、書き請求が許容可能な時間内に実行されることを保証することができる。
以下、アクセス請求を処理するプロセスについて、図2から図7を参照してより詳細に説明する。図2は、本発明のいくつかの実施例によるアクセス要求を処理するプロセス200を示すフローチャートである。プロセス200は、図1のディスパッチングデバイス130によって実現されることができる。議論を容易にするために、図1に合わせてプロセス200を説明する。
ブロック202において、ディスパッチングデバイス130は、配信されるべき記憶デバイス150に対する複数のアクセス請求を取得し、アクセス請求は少なくとも一組の読み請求と一組の書き請求を含む。具体的に、ディスパッチングデバイス130は、配信されるべきアクセス請求キュー(例えば、リングリスト110)から一組のアクセス請求(例えば、読み請求120、122、126、及び書き請求124)を取得することができる。
いくつかの実施例において、ディスパッチングデバイス130は、アクセス請求の種類に応じて、一組のアクセス請求を一組の読み請求と一組の書き請求にグループ化することができる。これに加えて、ディスパッチングデバイス130は、受信された一組の読み請求と一組の書き請求を記憶するために、ユーザーステータス内の記憶領域(例えば、記憶スタック)に読み請求キューおよび書き請求キューを設置することができる。ディスパッチングデバイス130は、アクセス請求の種類に応じて、対応する読み請求キューまたは書き請求キューにアクセス請求を追加することができる。
いくつかの実施例において、ディスパッチングデバイス130は、タイムアウトしたアクセス請求を駆動デバイス140に優先的に配信することができる。具体的に、図3は、本発明の実施例によるタイムアウトしたアクセス要求を配信するプロセスを示すフローチャートである。
図3に示すように、ブロック302において、ディスパッチングデバイス130は、複数のアクセス請求における各アクセス請求のタイムアウト時間を確定することができ、ここで、タイムアウト時間は、対応するアクセス請求が待機している時間を示す。いくつかの実施例において、計算システム110は、各アクセス請求が渡された時間を記録することができ、ディスパッチングデバイス130は、渡された時間及び現在時間に基づいて各アクセス請求のタイムアウト時間を確定することができる。
ブロック304において、ディスパッチングデバイス130は、複数のアクセス請求にはタイムアウト時間が所定の時間閾値より大きいタイムアウトアクセス請求が存在するかどうかを確定することができる。例えば、ディスパッチングデバイス130は、一組のアクセス請求を巡回することにより、タイムアウト時間が所定の時間閾値より大きいアクセス請求が存在するかどうかを確定することができる。いくつかの実施例において、ディスパッチングデバイス130は、タイムアウト時間の降順に従ってアクセス請求を並べ替えることにより、アクセス請求を順番に巡回し、タイムアウト時間が閾値時間を超えていないアクセス請求が見つかった場合には巡回を終了することができる。このようにして、巡回に必要な計算量を減らすことができる。
ブロック304においてタイムアウト時間が時間閾値よりも大きいアクセス請求が存在すると確定されたことに応答して、方法300はブロック306に進み、ディスパッチングデバイス130は、タイムアウトアクセス請求を駆動デバイス140に配信することができる。このようにして、ディスパッチングデバイス130は、タイムアウトしたアクセス要求を駆動デバイス140に優先的に配信して実行することができる。ブロック304においてタイムアウトしたアクセス要求が存在しないと確定された場合(未図示)、アクセス請求の種類に応じて優先的に読み要求を配信することができる。
続けて図2を参照すると、ブロック204において、ディスパッチングデバイス130は、配信された読み請求の数が一組の読み請求の総数または第1の閾値の数に達するまで、一組の書き請求における書き請求を配信することなく、一組の読み請求における読み請求を記憶デバイス150の駆動デバイス140に配信し、駆動デバイス140は記憶デバイス150上で配信された請求を実行する。いくつかの実施例において、駆動デバイスは、ユーザーステータスにおいてユーザーステータス駆動に実現されることができる。
具体的に、ディスパッチングデバイス130は、書き請求を配信することなく、所定の数の読み請求を優先的に配信することができ、即ち、書き請求をより早く受信できるようにする。以下、図2を参照してブロック204の具体的なプロセスを説明し、図4は、本発明の実施例による読み請求を配信するプロセスを示すフローチャートである。
図4に示すように、ブロック402において、ディスパッチングデバイス130は、一組の読み請求のうちの一つの読み請求を駆動デバイス140に配信することができる。いくつかの実施例において、ディスパッチングデバイス130は、アドレスに応じて順次に読み請求を配信することができるように、対応する物理アドレスに応じて一組の読み請求を並べ替えることにより、読み請求の実行効率を向上させることができる。具体的に、以下、図5を参照してブロック402のプロセスを説明し、図5は、本発明の実施例によるアドレスに従って読み請求を配信するプロセスを示すフローチャートである。
図5に示すように、ブロック502において、ディスパッチングデバイス130は、一組の読み請求から配信されていない目標読み請求を選択することができ、ここで、目標読み請求は、物理アドレスに対する最小のオフセット量を有する。いくつかの実施例において、ディスパッチングデバイス130は、各読み請求に対する物理アドレスのオフセット量を確定することができ、例えば、順序木(例えば、赤黒木)を利用して、一組の読み請求をアクセスされたアドレスのオフセット量の順序で並べ替えることができる。例えば、ディスパッチングデバイス130は、受信された読み請求のアクセスアドレスに基づいて、それをユーザーステータスの記憶領域に予め設置された順序木に挿入することができる。ディスパッチングデバイス130は、その後、順序木から最小のオフセット量を有する配信されていない読み請求を選択することにより、読み請求が常に対応するアドレスのオフセット量の順序で順次に配信されるようにする。例えば、2つの読み請求が連続するアドレスである場合に、このような配信は、読み請求を実行する際にポインタの位置を移動させずに、駆動デバイス140が読み請求を実行する効率を向上させることができる。この後、ブロック504において、ディスパッチングデバイス130は、目標読み請求を駆動デバイス140に配信することができる。
続けて図4を参照すると、ブロック404において、ディスパッチングデバイス130は、読み請求のカウント数を増やし、読み請求のカウント数は、配信された読み請求の数を示す。いくつかの実施例において、ディスパッチングモジュールは、連続して配信された読み請求の数を記録するために読み請求のカウント数を維持することができる。例えば、読み請求のカウント数は、最初に0に設定されても良い。
ブロック406において、ディスパッチングデバイス130は、一組の読み請求には配信されていない読み請求が存在するかどうかを確定する。ブロック406において配信されていない読み請求が存在しないと確定されたことに応答して、即ち、一組の読み請求が全部配信済みである場合、ディスパッチングデバイス130は、繰り返しプロセスを終了することができる。
図4に示すように、ブロック406において配信されていない読み請求が存在すると確定されたことに応答して、方法はブロック408に進み、ディスパッチングデバイス130は、読み請求のカウント数が第1の閾値の数に達するかどうかを確定することができ、読み請求のカウント数が第1の閾値の数に達すると確定された場合、ディスパッチングデバイス130は、繰り返しプロセスを終了することができる。
逆に、ブロック408において読み請求のカウント数が第1の閾値の数に達していないと確定された場合、方法はブロック402に戻し、一組の読み請求のうちの次の読み請求を続けて配信することができる。ステップ402〜ステップ408は、読み請求のカウント数が第1の閾値の数に達するまで繰り返し実行されてもよいことが理解されるべきである。このようにして、ディスパッチングデバイス130は、書き請求の性能に対する影響を可能な限り低くする場合に、所定の数の読み請求を優先的に配信して、記憶システムの全体的な性能を向上させることができる。
続けて図2を参照すると、図2に示すように、ブロック206において、ディスパッチングデバイス130は、一組の書き請求のうちの少なくとも一つの書き請求を駆動デバイス140に配信する。いくつかの実施例において、スケジューリングデバイス130は、書き請求が受信された順序で書き請求を駆動デバイス140に配信することができる。
いくつかの実施例において、一組の読み請求に対する処理と同様に、ディスパッチングデバイス130は、一度に所定の数の書き請求のみを分配することもできる。以下、図6を参照してブロック206のプロセスを説明し、図6は、本発明の実施例による書き請求を配信するプロセスを示すフローチャートである。
図6に示すように、ブロック602において、ディスパッチングデバイス130は、一組の書き請求のうちの一つの書き請求を駆動デバイスに配信することができる。いくつかの実施例において、ディスパッチングデバイス130は、アドレスに応じて順次に書き請求を配信することができるように、対応する物理アドレスに応じて一組の書き請求を並べ替えることにより、書き請求の実行効率を向上させることができる。具体的に、以下、図7を参照してブロック602のプロセスを説明し、図7は、本発明の実施例によるアドレスに従って書き請求を配信するプロセスを示すフローチャートである。
図7に示すように、ブロック702において、ディスパッチングデバイス130は、一組の書き請求から配信されていない目標書き請求を選択することができ、ここで、目標書き請求は、物理アドレスに対する最小のオフセット量を有する。いくつかの実施例において、ディスパッチングデバイス130は、各書き請求に対する物理アドレスのオフセット量を確定することができ、例えば、順序木(例えば、赤黒木)を利用して、一組の書き請求をアクセスされたアドレスのオフセット量の順序で並べ替えることができる。例えば、ディスパッチングデバイス130は、受信された書き請求のアクセスアドレスに基づいて、それをユーザーステータスの記憶領域に予め設置された順序木に挿入することができる。ディスパッチングデバイス130は、その後、順序木から最小のオフセット量を有する配信されていない書き請求を選択することにより、書き請求が常に対応するアドレスのオフセット量の順序で順次に配信されるようにする。例えば、2つの書き請求が連続するアドレスである場合に、このような配信は、書き請求を実行する際にポインタの位置を移動させずに、駆動デバイス140が書き請求を実行する効率を向上させることができる。この後、ブロック704において、ディスパッチングデバイス130は、目標書き請求を駆動デバイス140に配信することができる。
続けて図6を参照すると、ブロック604において、ディスパッチングデバイス130は、書き請求のカウント数を増やし、書き請求のカウント数は、配信された書き請求の数を示す。いくつかの実施例において、ディスパッチングモジュールは、連続して配信された書き請求の数を記録するために書き請求のカウント数を維持することができる。例えば、書き請求のカウント数は、最初に0に設定されても良い。
ブロック606において、ディスパッチングデバイス130は、一組の書き請求には配信されていない書き請求が存在するかどうかを確定することができ、ブロック606において配信されていない書き請求がまだ存在すると確定されたことに応答して、方法はブロック608に進むことができ、ディスパッチングデバイス130は、書き請求のカウント数が第2の閾値の数に達するかどうかを確定することができる。ブロック608において書き請求のカウント数が予定の第2の閾値の数にまだ達していないと確定された場合、方法はブロック602に戻すことができ、即ち、一組の書き請求のうちの次の書き請求を配信する。
ディスパッチングデバイス130は、一組の書き請求が全部配信され、または、書き請求のカウント数が第2の閾値の数に達した場合、ディスパッチングデバイス130は、方法200で説明されたプロセスに従って、一組の読み請求をさらに処理することができる。ステップ602〜ステップ608は、書き請求のカウント数が第1の閾値の数に達するまで繰り返し実行されてもよいことが理解されるべきである。このようにして、ディスパッチングデバイス130は、書き請求の性能に対する影響を可能な限り低くすることができる。
このようにして、本発明の実施例は、ユーザーステータスのディスパッチングモジュールにおいて、受信されたアクセス請求に対するディスパッチングを実現することができ、書き請求を配信することなく、所定の数の読み請求を優先的に配信することにより、計算システムの読み請求に対する対応速度を向上させ、所定の数の読み請求を配信した後に書き要求の配信を開始し、ひいては書き請求の効率を可能な限り低下させ、読み請求の効率と書き請求の効率とのバランスを実現することができる。
図8は、本発明の実施例によるアクセス要求を処理するための装置800を示す概略ブロック図である。装置800は、図8のディスパッチングデバイス130に含まれてもよく、またはディスパッチングデバイス130として実現されてもよい。図8に示すように、装置800は、配信されるべき記憶デバイスに対する複数のアクセス請求を取得するように配置された取得モジュール810を含み、アクセス請求は、少なくとも一組の読み請求と一組の書き請求を含む。また、装置800は、配信された読み請求の数が一組の読み請求の総数または第1の閾値の数に達するまで、一組の書き請求における書き請求を配信することなく、一組の読み請求における読み請求を記憶デバイスの駆動デバイスに配信するように配置された第1の配信モジュール820も含み、駆動デバイスは記憶デバイス上で配信された請求を実行する。また、装置800は、一組の書き請求のうちの少なくとも1つの書き請求を駆動デバイスに配信するように配置された第2の配信モジュール830も含む。
いくつかの実施例において、取得モジュールは、配信されるべきアクセス請求キューから複数のアクセス請求を読み取るように配置された読み取りモジュールと、複数のアクセス請求を一組の読み請求と一組の書き請求にグループ化するように配置されたグループ化モジュールとを含む。
いくつかの実施例において、駆動デバイスは、ユーザーステータスで実現される。
いくつかの実施例において、装置800は、複数のアクセス請求における各アクセス請求の対応するアクセス請求が待機している時間を示すタイムアウト時間を確定するように配置されたタイムアウト時間確定モジュールと、複数のアクセス請求には、タイムアウト時間が所定の時間閾値より大きいタイムアウトアクセス請求が存在するかどうかを確定するように配置された判断モジュールと、タイムアウトアクセス請求を駆動デバイスに配信するように配置されたタイムアウトアクセス請求配信モジュールとをさらに含む。
いくつかの実施例において、第1の配信モジュール820は、読み請求のカウント数が第1の閾値の数に達するまで、以下のことを少なくとも1回に繰り返し実行するように配置された第1の繰り返しモジュールを含み、即ち、一組の読み請求のうちの一つの読み請求を駆動デバイスに配信すること、読み請求のカウント数を増やし、読み請求のカウント数は、配信された読み請求の数を示すこと、一組の読み請求には、配信されていない読み請求が存在しないことに応答して、繰り返しを終了することである。
いくつかの実施例において、一組の読み請求のうちの一つの読み請求を駆動デバイスに配信することは、一組の読み請求から配信されていない目標読み請求を選択し、目標読み請求は、物理アドレスに対する最小のオフセット量を有することと、選択された読み請求を駆動デバイスに配信することと、を含む。
いくつかの実施例において、第2の配信モジュール830は、書き請求のカウント数が第2の閾値の数に達するまで、以下のことを少なくとも1回に繰り返し実行するように配置された第2の繰り返しモジュールを含み、即ち、一組の書き請求のうちの一つの書き請求を駆動デバイスに配信すること、書き請求のカウント数を増やし、書き請求のカウント数は、配信された書き請求の数を示すこと、一組の書き請求には、配信されていない書き請求が存在しないことに応答して、繰り返しを終了することである。
いくつかの実施例において、一組の書き請求のうちの一つの書き請求を駆動デバイスに配信することは、一組の書き請求から配信されていない目標書き請求を選択し、目標書き請求は、物理アドレスに対する最小のオフセット量を有することと、選択された書き請求を駆動デバイスに配信することとを含む。
図9は、本発明の実施例を実施するための例示的なデバイス900を示す概略ブロック図である。デバイス900は、図1のディスパッチングデバイス130を実現するために使用されてもよい。図に示すように、デバイス900は、読み出し専用メモリ(ROM)902に記憶されているコンピュータプログラム指令または記憶部908からランダムアクセスメモリ(RAM)903にロードされたコンピュータプログラム指令に従って各種の適切な動作と処理を行うことができる中央処理装置(CPU)901を含むことができる。RAM903には、デバイス900の操作に必要な様々なプログラムとデータが記憶されている。CPU901、ROM902、およびRAM903は、バス904によって相互に接続されている。入力/出力(I/O)インターフェース905もバス904に接続されている。
I/Oインターフェース905には、例えばキーボード、マウスなどを含む入力ユニット906と、例えば様々なタイプのディスプレイ、スピーカーなどを含む出力ユニット907と、例えば磁気ディスク、光ディスクなどを含む記憶ユニット908と、例えばネットワークカード、モデム、無線通信送受信機などを含む通信ユニット909などのデバイス900の複数の部品が接続されている。通信装置909は、デバイス900がインターネットなどのコンピュータネットワークおよび/または様々な電気通信ネットワークを介して他のデバイスと情報/データを交換することを許可できる
処理ユニット901は、例えば方法200および/または方法300などの以上で説明された各方法およびプロセスを実行する。例えば、いくつかの実施例において、方法200および/または方法300は、コンピュータソフトウェアプログラムとして実現されることができ、記憶ユニット908などの機器可読媒体に有形的に含まれる。いくつかの実施例において、コンピュータプログラムの一部または全部は、ROM902および/または通信ユニット909を介してデバイス900にロードおよび/またはインストールされることができる。コンピュータプログラムがRAM903にロードされてCPU901によって実行される場合、以上で説明された方法200および/または方法300における1つ以上のステップを実行することができる。選択肢として、他の実施例において、CPU901は、他の適切な手段(例えば、ファームウェア)によって、方法200および/または方法300を実行するように構成されてもよい。
本明細書で上述した機能は、少なくとも部分的に1つ以上のハードウェア論理構成要素によって実行されることができる。例えば、非限定的に使用できる例示的なタイプのハードウェア論理構成要素は、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、特定応用向け汎用品(ASSP)、システムオンチップ(SOC)、プログラム可能な論理回路デバイス(CPLD)などを含む。
本発明の方法を実施するためのプログラムコードは、1つ以上のプログラミング言語の任意の組合せを用いて作成することができる。これらのプログラムコードは、汎用コンピュータ、専用コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサまたはコントローラに提供されることにより、プログラムコードがプロセッサまたはコントローラによって実行されるときに、フローチャートおよび/またはブロック図に規定された機能/動作を実行させる。プログラムコードは、完全に機器上で実行され、部分的に機器上で実行され、単独のソフトウェアパッケージとして、部分的に機器上で実行され且つ部分的に遠隔機器上で実行され、または、完全に遠隔機器やサーバー上で実行される。
本発明において、機器可読媒体は、有形の媒体であることができ、指令実行システム、装置またはデバイスによって使用され、あるいは指令実行システム、装置またはデバイスと組み合わせて使用されるプログラムを含むまたは記憶することができる。機器可読媒体は、機器可読信号媒体、あるいは機器可読記憶媒体であってもよい。機器可読媒体は、例えば、電気、磁気、光、電磁気、赤外線、あるいは半導体のシステム、装置またはデバイス、あるいは上記の任意の組合せであってもよいが、これらに限らない。機器可読記憶媒体のより具体的な例には、1本以上のワイヤによる電気的接続、携帯型コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、コンパクトディスク読み取り専用メモリ(CD-ROM)、光記憶装置、磁気記憶装置、または上記の任意の組み合わせが含まれる。
また、各動作は特定の順序で説明されたが、このような動作が示された特定の順序または順に実行されることが要求され、または、すべての図示された動作は、所望の結果を得るために実行されるべきであることが要求されると理解されるべきである。一定の環境下では、マルチタスクや並行処理が有利になる可能性がある。同様に、上記の議論にはいくつかの具体的な実現の詳細が含まれているが、これらは本発明の範囲を制限するものとして解釈されるべきではない。別個の実施例で説明されるいくつかの特徴を、単一の実施形態に組み合わせて実現することもできる。逆に、単一の実施形態で説明される様々な特徴を、単独でまたは任意の適切なサブ組み合わせで複数の実施形態においても実現することもできる。
本主題は、構造的特徴および/または方法的論理動作に特定の言語を用いて説明されているが、添付の特許請求の範囲で定義される主題は、必ずしも上述の特定の特徴または動作に限定されないことを理解されたい。逆に、上記の特定の特徴および動作は、特許請求の範囲を実現するための例示的な形態にすぎない。
本発明の第4態様において、コンピュータプログラムが記憶されたコンピュータ可読記憶媒体が提供され、当該コンピュータプログラムがプロセッサによって実行されると、本発明による第1態様の方法を実現する。
本発明の第5態様において、コンピュータプログラムが提供され、前記コンピュータプログラムがプロセッサによって実行されると、本発明による第1態様の方法を実現する。

Claims (18)

  1. 記憶デバイスに対する少なくとも一組の読み請求と一組の書き請求を含む複数の配信されるべきアクセス請求を取得するステップと、
    配信された読み請求の数が前記一組の読み請求の総数または第1の閾値の数に達するまで、前記一組の書き請求における書き請求を配信することなく、前記一組の読み請求における読み請求を前記記憶デバイスの駆動デバイスに配信するステップであって、前記駆動デバイスは前記記憶デバイス上で配信された請求を実行するように配置されているステップと、
    前記一組の書き請求のうちの少なくとも1つの書き請求を前記駆動デバイスに配信するステップと、
    を含むアクセス請求を処理する方法。
  2. 前記複数のアクセス請求を取得するステップは、
    配信されるべきアクセス請求キューから前記複数のアクセス請求を読み取るステップと、
    前記複数のアクセス請求を前記一組の読み請求と前記一組の書き請求とにグループ化するステップと、
    を含む、請求項1に記載の方法。
  3. 前記駆動デバイスは、ユーザーステータスで実現される、
    請求項1に記載の方法。
  4. 前記複数のアクセス請求における各アクセス請求のタイムアウト時間を確定するステップであって、前記タイムアウト時間は、対応するアクセス請求が待機していた時間を示すものであるステップと、
    前記複数のアクセス請求には、前記タイムアウト時間が所定の時間閾値より大きいタイムアウトアクセス請求が存在するか否かを確定するステップと、
    前記タイムアウトアクセス請求を前記駆動デバイスに配信するステップと、
    をさらに含む、請求項1に記載の方法。
  5. 前記一組の読み請求における読み請求を前記駆動デバイスに配信するステップは、読み請求のカウント数が前記第1の閾値の数に達するまで、以下のことを少なくとも1回に繰り返し実行することを含み、即ち、
    前記一組の読み請求のうちの一つの読み請求を前記駆動デバイスに配信し、
    配信された読み請求の数を示す前記読み請求のカウント数を増やし、
    前記一組の読み請求には、配信されていない読み請求が存在しないことに応答して、前記繰り返しを終了することである、
    請求項1に記載の方法。
  6. 前記一組の読み請求のうちの一つの読み請求を前記駆動デバイスに配信することは、
    前記一組の読み請求から配信されていない目標読み請求であって、物理アドレスに対する最小のオフセット量を有する目標読み請求を選択することと、
    選択された前記読み請求を前記駆動デバイスに配信することと、
    を含む、請求項5に記載の方法。
  7. 前記一組の書き請求のうちの少なくとも一つの書き請求を前記駆動デバイスに配信するステップは、書き請求のカウント数が第2の閾値の数に達するまで、以下のことを少なくとも1回に繰り返し実行することを含み、即ち、
    前記一組の書き請求のうちの一つの書き請求を前記駆動デバイスに配信し、
    配信された書き請求の数を示す前記書き請求のカウント数を増やし、
    前記一組の書き請求には、配信されていない書き請求が存在しないことに応答して、前記繰り返しを終了することである、
    請求項1に記載の方法。
  8. 前記一組の書き請求のうちの一つの書き請求を前記駆動デバイスに配信することは、
    前記一組の書き請求から配信されていない目標書き請求であって、物理アドレスに対する最小のオフセット量を有する目標書き請求を選択することと、
    選択された前記書き請求を前記駆動デバイスに配信することと、
    を含む、請求項7に記載の方法。
  9. 記憶デバイスに対する少なくとも一組の読み請求と一組の書き請求を含む複数の配信されるべきアクセス請求を取得するように配置された取得モジュールと、
    配信された読み請求の数が前記一組の読み請求の総数または第1の閾値の数に達するまで、前記一組の書き請求における書き請求を配信することなく、前記一組の読み請求における読み請求を前記記憶デバイスの駆動デバイスに配信するように配置された第1の配信モジュールであって、前記駆動デバイスは前記記憶デバイス上で配信された請求を実行するように配置された第1の配信モジュールと、
    前記一組の書き請求のうちの少なくとも1つの書き請求を前記駆動デバイスに配信するように配置された第2の配信モジュールと、
    を含む、アクセス請求を処理するための装置。
  10. 前記取得モジュールは、
    配信されるべきアクセス請求キューから前記複数のアクセス請求を読み取るように配置された読み取りモジュールと、
    前記複数のアクセス請求を前記一組の読み請求と前記一組の書き請求にグループ化するように配置されたグループ化モジュールと、
    を含む、請求項9に記載の装置。
  11. 前記駆動デバイスは、ユーザーステータスで実現される、
    請求項9に記載の装置。
  12. 前記複数のアクセス請求における各アクセス請求の対応するタイムアウト時間を確定するように配置されたタイムアウト時間確定モジュールであって、前記タイムアウト時間は、アクセス請求が待機していた時間を示すものであるタイムアウト時間確定モジュールと、
    前記複数のアクセス請求には、前記タイムアウト時間が所定の時間閾値より大きいタイムアウトアクセス請求が存在するか否かを確定するように配置された判断モジュールと、
    前記タイムアウトアクセス請求を前記駆動デバイスに配信するように配置されたタイムアウトアクセス請求配信モジュールと、
    をさらに含む、請求項9に記載の装置。
  13. 前記第1の配信モジュールは、読み請求のカウント数が前記第1の閾値の数に達するまで、以下のことを少なくとも1回に繰り返し実行するように配置された第1の繰り返しモジュールを含み、即ち、
    前記一組の読み請求のうちの一つの読み請求を前記駆動デバイスに配信し、
    配信された読み請求の数を示す前記読み請求のカウント数を増やし、
    前記一組の読み請求には、配信されていない読み請求が存在しないことに応答して、前記繰り返しを終了することである、
    請求項9に記載の装置。
  14. 前記一組の読み請求のうちの一つの読み請求を前記駆動デバイスに配信することは、
    前記一組の読み請求から配信されていない目標読み請求であって、物理アドレスに対する最小のオフセット量を有する目標読み請求を選択することと、
    選択された前記読み請求を前記駆動デバイスに配信することと、
    を含む、請求項13に記載の装置。
  15. 前記第2の配信モジュールは、書き請求のカウント数が第2の閾値の数に達するまで、以下のことを少なくとも1回に繰り返し実行するように配置された第2の繰り返しモジュールを含み、即ち、
    前記一組の書き請求のうちの一つの書き請求を前記駆動デバイスに配信し、
    配信された書き請求の数を示す前記書き請求のカウント数を増やし、
    前記一組の書き請求には、配信されていない書き請求が存在しないことに応答して、前記繰り返しを終了することである、
    請求項9に記載の装置。
  16. 前記一組の書き請求のうちの一つの書き請求を前記駆動デバイスに配信することは、
    前記一組の書き請求から配信されていない目標書き請求であって、物理アドレスに対する最小のオフセット量を有する目標書き請求を選択することと、
    選択された前記書き請求を前記駆動デバイスに配信することと、
    を含む、請求項15に記載の装置。
  17. 電子機器であって、
    1つ以上のプロセッサと、
    1つ以上のプログラムが記憶されている記憶デバイスと、を含み、
    前記1つ以上のプログラムが前記1つ以上のプロセッサによって実行されると、請求項1から8のいずれか1項に記載の方法を前記電子機器に実現させる、
    電子機器。
  18. コンピュータプログラムが記憶されたコンピュータ可読記憶媒体であって、
    前記コンピュータプログラムがプロセッサによって実行されると、請求項1から8のいずれか1項に記載の方法を実現する、コンピュータ可読記憶媒体。
JP2020001176A 2019-05-24 2020-01-08 アクセス請求を処理する方法、装置、デバイスならびに記憶媒体 Pending JP2020194523A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910438452.0 2019-05-24
CN201910438452.0A CN110209597B (zh) 2019-05-24 2019-05-24 处理访问请求的方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
JP2020194523A true JP2020194523A (ja) 2020-12-03

Family

ID=67788550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020001176A Pending JP2020194523A (ja) 2019-05-24 2020-01-08 アクセス請求を処理する方法、装置、デバイスならびに記憶媒体

Country Status (4)

Country Link
US (1) US11307801B2 (ja)
JP (1) JP2020194523A (ja)
KR (1) KR102292527B1 (ja)
CN (1) CN110209597B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110795367B (zh) * 2019-10-23 2021-10-29 北京达佳互联信息技术有限公司 一种存储访问控制方法和装置
CN112306413B (zh) * 2020-10-30 2024-05-07 北京百度网讯科技有限公司 用于访问内存的方法、装置、设备以及存储介质
CN113535083A (zh) * 2021-06-08 2021-10-22 平头哥(上海)半导体技术有限公司 用于打包存储访问请求的计算机系统和由计算机实现的方法
CN114968858B (zh) * 2022-07-18 2022-11-25 珠海妙存科技有限公司 一种命令队列管理方法、系统、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006244455A (ja) * 2005-03-01 2006-09-14 Sunplus Technology Co Ltd パソコン装置における音声映像データの読み書き方法とシステム
JP2017054483A (ja) * 2015-09-08 2017-03-16 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
US20190079702A1 (en) * 2017-09-08 2019-03-14 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, controller and operating method of nonvolatile memory device

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7038988B2 (en) * 2001-01-25 2006-05-02 Dphi Acquisitions, Inc. System and method for controlling time critical operations in a control system for an optical disc drive
US6978360B2 (en) 2001-05-11 2005-12-20 International Business Machines Corporation Scalable processor
US6668313B2 (en) * 2001-12-21 2003-12-23 Agere Systems, Inc. Memory system for increased bandwidth
US6667926B1 (en) * 2002-09-09 2003-12-23 Silicon Integrated Systems Corporation Memory read/write arbitration method
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US20090019238A1 (en) * 2007-07-10 2009-01-15 Brian David Allison Memory Controller Read Queue Dynamic Optimization of Command Selection
US8004884B2 (en) * 2009-07-31 2011-08-23 International Business Machines Corporation Iterative write pausing techniques to improve read latency of memory systems
US9552297B2 (en) * 2013-03-04 2017-01-24 Dot Hill Systems Corporation Method and apparatus for efficient cache read ahead
KR20140093855A (ko) 2013-01-18 2014-07-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 제어 방법
US9465555B2 (en) * 2013-08-12 2016-10-11 Seagate Technology Llc Method and apparatus for efficient processing of disparate data storage commands
KR102034626B1 (ko) * 2013-06-26 2019-10-21 삼성전자 주식회사 메모리 동작을 제어하는 방법 및 장치
CN103631624A (zh) * 2013-11-29 2014-03-12 华为技术有限公司 读写请求的处理方法和装置
KR102275710B1 (ko) 2015-02-02 2021-07-09 삼성전자주식회사 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US9658959B2 (en) 2015-02-20 2017-05-23 PernixData, Inc. Cache resource manager
KR102291803B1 (ko) * 2015-04-07 2021-08-24 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법, 및 그것을 포함하는 사용자 시스템의 동작 방법
JP2016218721A (ja) * 2015-05-20 2016-12-22 ソニー株式会社 メモリ制御回路およびメモリ制御方法
CN105933325B (zh) * 2016-06-07 2019-04-12 华中科技大学 一种基于NFSoRDMA的内核态RPC通信加速方法
KR20170141298A (ko) 2016-06-14 2017-12-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2018160056A (ja) * 2017-03-22 2018-10-11 東芝メモリ株式会社 メモリコントローラ、メモリシステムおよび制御方法
KR20190019712A (ko) 2017-08-18 2019-02-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN108062253A (zh) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 一种内核态与用户态的通信方法、装置及终端
KR20200018156A (ko) * 2018-08-10 2020-02-19 에스케이하이닉스 주식회사 메모리장치에 대한 에러정정코드 기능을 갖는 메모리 시스템 및 그 운영방법
CN109522194B (zh) * 2018-11-14 2022-02-25 北京遥感设备研究所 针对axi协议从设备接口的自动化压力测试系统及方法
CN109766056A (zh) * 2018-11-28 2019-05-17 上海威固信息技术股份有限公司 一种存储阵列控制器io队列调度方法与装置
KR20210017264A (ko) * 2019-08-07 2021-02-17 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006244455A (ja) * 2005-03-01 2006-09-14 Sunplus Technology Co Ltd パソコン装置における音声映像データの読み書き方法とシステム
JP2017054483A (ja) * 2015-09-08 2017-03-16 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
US20190079702A1 (en) * 2017-09-08 2019-03-14 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, controller and operating method of nonvolatile memory device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HUA WANG ET AL.: "A novel I/O scheduler for SSD with improved performance and lifetime", 2013 IEEE 29TH SYMPOSIUM ON MASS STORAGE SYSTEMS AND TECHNOLOGIES (MSST), JPN6021023426, 15 July 2013 (2013-07-15), pages 1 - 5, ISSN: 0004530541 *

Also Published As

Publication number Publication date
CN110209597A (zh) 2019-09-06
CN110209597B (zh) 2021-10-15
KR102292527B1 (ko) 2021-08-25
US20200371714A1 (en) 2020-11-26
KR20200135717A (ko) 2020-12-03
US11307801B2 (en) 2022-04-19

Similar Documents

Publication Publication Date Title
JP2020194523A (ja) アクセス請求を処理する方法、装置、デバイスならびに記憶媒体
KR102597570B1 (ko) Gpu 태스크 스케줄링을 위한 연속 분석 태스크
US11558244B2 (en) Improving performance of multi-processor computer systems
US20150186068A1 (en) Command queuing using linked list queues
US8959249B1 (en) Cooperative cloud I/O scheduler
JP7039631B2 (ja) アクセスリクエストを管理するための方法、装置、デバイス、および記憶媒体
WO2019062699A1 (zh) 资源调度方法、调度服务器、云计算系统及存储介质
CN111324427B (zh) 一种基于dsp的任务调度方法及装置
US9529651B2 (en) Apparatus and method for executing agent
US9740618B2 (en) Memory nest efficiency with cache demand generation
CN114827048B (zh) 一种动态可配高性能队列调度方法、系统、处理器及协议
Jeong et al. REACT: Scalable and high-performance regular expression pattern matching accelerator for in-storage processing
US20200301608A1 (en) Controller event queues
US20170154142A1 (en) Method and apparatus for simulating slow storage disk
CN117055820B (zh) 一种固态硬盘的命令处理方法、固态硬盘和存储介质
US11941722B2 (en) Kernel optimization and delayed execution
CN117076353B (zh) 描述符的配置方法和描述符的配置装置
CN116483286B (zh) NVMe SSD的IO资源管理方法、装置、存储介质及设备
CN116860761B (zh) 一种数据获取方法、电子设备及存储介质
CN112732176B (zh) 基于fpga的ssd访问方法及装置、存储系统及存储介质
US11182314B1 (en) Low latency neural network model loading
CN118131976A (zh) 存储芯片的闪存命令队列管理方法以及相关装置
WO2024012153A1 (zh) 一种数据处理方法及装置
US20230101611A1 (en) Hardware device polling using delay order
CN116301604A (zh) 数据读写方法、装置、固态硬盘、电子设备和存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200608

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210916

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220215