JP2007108950A - I/o処理装置及び方法 - Google Patents

I/o処理装置及び方法 Download PDF

Info

Publication number
JP2007108950A
JP2007108950A JP2005298003A JP2005298003A JP2007108950A JP 2007108950 A JP2007108950 A JP 2007108950A JP 2005298003 A JP2005298003 A JP 2005298003A JP 2005298003 A JP2005298003 A JP 2005298003A JP 2007108950 A JP2007108950 A JP 2007108950A
Authority
JP
Japan
Prior art keywords
request
external device
registered
time
queue
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
JP2005298003A
Other languages
English (en)
Inventor
Masao Shimada
昌生 嶋田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2005298003A priority Critical patent/JP2007108950A/ja
Priority to PCT/JP2006/320399 priority patent/WO2007043617A1/ja
Priority to US12/089,999 priority patent/US7707332B2/en
Publication of JP2007108950A publication Critical patent/JP2007108950A/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • 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/0613Improving I/O performance in relation to throughput
    • 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/0656Data buffering arrangements
    • 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/0674Disk device
    • G06F3/0676Magnetic disk device
    • 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/0674Disk device
    • G06F3/0677Optical disk device, e.g. CD-ROM, DVD

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)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Facsimiles In General (AREA)
  • Communication Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】各外部装置のI/O要求が登録されるまでの時間の最大値を短縮できるI/O処理装置を提供する。
【解決手段】I/O要求受信部501は、プロセス600が発行するI/O要求を受信する。プロセス情報保持部510は、各外部装置について、I/O要求遅延時間512を保持する。優先プロセス判断部520は、受信済みI/O要求のうちで、I/O要求遅延時間512が最大のI/O要求を、I/O要求キュー540に登録する。
【選択図】図1

Description

本発明は、I/O処理装置及び方法に関し、更に詳しくは、入出力装置に対するI/O要求を受け取り、外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置、及び、そのようなI/O処理装置におけるI/O要求の処理方法に関する。
I/O処理装置は、プロセス等の外部装置が発行したI/O要求を受け取り、受け取ったI/O要求に基づいて、外部装置から入出力装置にデータを出力し、入出力装置から読み出したデータを外部装置に受け渡す。I/O処理装置は、通常I/O要求キューを有しており、同一の入出力装置に対して発行されたI/O要求を順次にキューに登録し、登録されたI/O要求を1つずつ読み出して、I/O処理を実行する。
I/O要求を処理するシステムにおける従来技術としては、特許文献1に記載された技術がある。この技術では、タスクを起動優先度で管理し、最も起動優先度が高いタスクを起動して、起動したタスクがI/Oリソースを優先的に使用している。また、I/O要求を含むタスクのディスパッチ制御を行う技術としては、特許文献2に記載された技術がある。この技術では、プロセスのCPU消費時間や、プロセスのI/O処理時間をパラメータとして、プロセスのディスパッチプライオリティーを制御する。例えば、I/O処理量の多いプロセスについては、ディスパッチプライオリティーを高く設定し、優先的にI/Oリソースを使用させる。
特開昭63−180338号公報 特開昭63−39041号公報
しかし、上記各従来技術では、同一のI/Oリソースに対して、どのタスクの緊急度が高いかについては考慮されていない。このため、I/O要求の遅延時間が長いタスクや、I/O要求に失敗し続けているタスクがI/Oリソースを使用することができない事態が発生する。これにより、スルーレートの低下や遅延時間の増加が発生し、I/O要求発行元の上位のシステムやプロセスにおいて、バッファオーバフローやアンダーフローの発生を防止するためには、多量のバッファを備える必要があるという問題がある。
本発明は、上記従来技術の問題点を解消し、スルーレートを確保しつつ、各外部装置のI/O要求の遅延時間の最大値を最小化して、上位のシステムやアプリケーションにおけるバッファのオーバーフロー・アンダーフローを防止することにより、多量のバッファを備える必要がないI/O処理装置を提供することを目的とする。
上記目的を達成するために、本発明の第1の視点のI/O処理装置は、外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置において、前記外部装置が発行するI/O要求を受け付けるI/O要求受付部と、前記I/O要求を受け付けてからI/O要求キューへ登録するまでの遅延時間を記憶する外部装置情報保持部を参照し、前記I/O要求受付部が受け付けたI/O要求のうちで、遅延時間が最大のI/O要求を、前記I/O要求キューに登録する優先外部装置判断部を備えることを特徴とする。
本発明の第1の視点のI/O要求処理方法は、外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置でI/O要求を処理する方法において、前記I/O処理装置が、前記外部装置が発行するI/O要求を受け付けるステップと、前記I/O処理装置が、前記I/O要求を受け付けてからI/O要求キューへ登録するまでの遅延時間を記憶する外部装置情報保持部を参照し、前記受け付けたI/O要求のうちで、遅延時間が最大のI/O要求を、前記I/O要求キューに登録するステップとを有することを特徴とする。
本発明の第1の視点のI/O処理装置及び方法では、受信したI/O要求のうちで、遅延時間がもっとも長い、つまり、I/O要求受信時刻から現時刻までの時間が最も長い外部装置が発行したI/O要求を、優先的にI/O要求キューに登録する。このようにすることで、各外部装置のI/O要求の遅延時間の最大値を最小化して、上位のシステムやアプリケーションにおけるバッファのオーバーフロー・アンダーフローを防止することができる。
本発明の第2の視点のI/O処理装置は、外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置において、前記外部装置が発行するI/O要求を受け付けるI/O要求受付部と、前記I/O要求受付部がI/O要求を受け付けると、1つの外部装置が発行したI/O要求が連続してI/O要求キューに登録されない連続登録失敗時間をI/O要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗時間に関する規定値を記憶する連続登録失敗時間規定値記憶部とを参照し、前記受け付けたI/O要求を前記I/O要求キューに登録するか否かを決定する優先外部装置判断部を備えたことを特徴とする。
本発明の第2の視点のI/O要求処理方法は、外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置でI/O要求を処理する方法において、前記I/O処理装置が、前記外部装置が発行するI/O要求を受け付けるステップと、前記I/O処理装置が、1つの外部装置が発行したI/O要求が連続してI/O要求キューに登録されない連続登録失敗時間をI/O要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗時間に関する規定値を記憶する連続登録失敗時間規定値記憶部とを参照し、前記受け付けたI/O要求を前記I/O要求キューに登録するか否かを決定するステップとを有することを特徴とする。
本発明の第2の視点のI/O処理装置及び方法では、外部装置からI/O要求を受信すると、その外部装置がI/O要求の登録に連続失敗している時間と、登録連続失敗時間に関する規定値とに基づいて、I/O要求をI/O要求キューに登録するか否かを決定する。この場合、登録連続失敗時間が長い外部装置を発行元とするI/O要求を優先して、I/O要求キューに登録すると決定することで、各外部装置について、I/O要求が発行されてからI/O要求キューに登録されるまでの時間の最大値を最小化して、上位のシステムやアプリケーションにおけるバッファのオーバーフロー・アンダーフローを防止することができる。
本発明の第2の視点のI/O処理装置では、前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間のしきい値を保持し、前記優先外部装置判断部は、前記受け付けたI/O要求の発行元の外部装置の連続登録失敗時間が、前記しきい値以上であると、前記受け付けたI/O要求を前記I/O要求キューに登録する構成を採用できる。また、本発明の第2の視点のI/O要求処理方法では、前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間のしきい値を保持し、前記登録するか否かを決定するステップは、前記受け付けたI/O要求の発行元の外部装置の連続登録失敗時間が、前記しきい値以上であると、前記受け付けたI/O要求を前記I/O要求キューに登録する構成を採用できる。規定値として、登録連続失敗時間のしきい値を用いる場合には、連続登録失敗時間が、そのしきい値以上となる外部装置を発行元とするI/O要求を優先してI/O要求キューに登録することで、I/O要求がI/O要求キューに登録されるまでにかかる時間の最大値を最小化できる。
本発明の第2の視点のI/O処理装置では、前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間の順位のしきい値を保持し、前記優先外部装置判断部は、前記外部装置の連続登録失敗時間を降順に並べたときに、前記受け付けたI/O要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたI/O要求を前記I/O要求キューに登録する構成を採用できる。また、本発明の第2の視点のI/O要求処理方法では、前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間の順位のしきい値を保持し、前記登録するか否かを決定するステップは、前記外部装置の連続登録失敗時間を降順に並べたときに、前記受け付けたI/O要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたI/O要求を前記I/O要求キューに登録する構成を採用できる。規定値として、登録連続失敗時間を大きい順に並べた際の順位のしきい値を用いる場合には、連続登録失敗時間の順位が、そのしきい値以上となる外部装置を発行元とするI/O要求を優先してI/O要求キューに登録することで、I/O要求がI/O要求キューに登録されるまでの時間の最大値を最小化できる。
本発明の第3の視点のI/O処理装置は、外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置において、前記外部装置が発行するI/O要求を受け付けるI/O要求受付部と、前記I/O要求受付部がI/O要求を受け付けると、1つの外部装置が発行したI/O要求が連続してI/O要求キューに登録されない連続登録失敗回数をI/O要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗回数に関する規定値を記憶する連続登録失敗回数規定値記憶部とを参照し、前記受け付けたI/O要求を前記I/O要求キューに登録するか否かを決定する優先外部装置判断部を備えたことを特徴とする。
本発明の第3の視点のI/O要求処理方法は、外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置でI/O要求を処理する方法において、前記I/O処理装置が、前記外部装置が発行するI/O要求を受け付けるステップと、前記I/O処理装置が、1つの外部装置が発行したI/O要求が連続してI/O要求キューに登録されない連続登録失敗回数をI/O要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗回数に関する規定値を記憶する連続登録失敗回数規定値記憶部とを参照し、前記受け付けたI/O要求を前記I/O要求キューに登録するか否かを決定するステップとを有することを特徴とする。
本発明の第3の視点のI/O処理装置及び方法では、外部装置からI/O要求を受信すると、優先外部プロセス判断部は、その外部装置がI/O要求の登録に連続失敗している回数と、登録連続失敗回数に関する規定値とに基づいて、I/O要求をI/O要求キューに登録するか否かを決定する。優先外部装置判断部が、登録連続失敗回数が多い外部装置を発行元とするI/O要求を優先して、I/O要求キューに登録すると決定することで、各外部装置について、I/O要求が発行されてからI/O要求キューに登録されるまでの時間の最大値を最小化して、上位のシステムやアプリケーションにおけるバッファのオーバーフロー・アンダーフローを防止することができる。
本発明の第3の視点のI/O処理装置では、前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数のしきい値を保持し、前記優先外部装置判断部は、前記受け付けたI/O要求の発行元の外部装置の連続登録失敗回数が、前記連続登録失敗回数のしきい値以上であると、前記受け付けたI/O要求を前記I/O要求キューに登録する構成を採用できる。また、本発明の第3の視点のI/O要求処理方法では、前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数のしきい値を保持し、前記登録するか否かを決定するステップは、前記受け付けたI/O要求の発行元の外部装置の連続登録失敗回数が、前記連続登録失敗回数のしきい値以上であると、前記受け付けたI/O要求を前記I/O要求キューに登録する構成を採用できる。規定値として、登録連続失敗回数のしきい値を用いる場合には、連続登録失敗回数が、そのしきい値以上となる外部装置を発行元とするI/O要求を優先してI/O要求キューに登録することで、I/O要求がI/O要求キューに登録されるまでにかかる時間の最大値を最小化できる。
本発明の第3の視点のI/O処理装置では、前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数の順位のしきい値を保持し、前記優先外部装置判断部は、前記外部装置の連続登録失敗回数を降順に並べたときに、前記受け付けたI/O要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたI/O要求を前記I/O要求キューに登録する構成を採用できる。また、本発明の第3の視点のI/O要求処理方法では、前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数の順位のしきい値を保持し、前記登録するか否かを決定するステップは、前記外部装置の連続登録失敗回数を降順に並べたときに、前記受け付けたI/O要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位あると、前記受け付けたI/O要求を前記I/O要求キューに登録する構成を採用できる。規定値として、登録連続失敗回数を大きい順に並べた際の順位のしきい値を用いる場合には、連続登録失敗回数の順位が、そのしきい値以上となる外部装置を発行元とするI/O要求を優先してI/O要求キューに登録することで、I/O要求がI/O要求キューに登録されるまでの時間の最大値を最小化できる。
本発明の第2及び第3の視点のI/O処理装置は、前記優先外部装置判断部が、前記受け付けたI/O要求を前記I/O要求キューに登録しないと判断すると、当該I/O要求の発行元の外部装置に、I/O要求キューへの登録に失敗した旨を返却する構成を採用できる。本発明の第2及び第3の視点のI/O要求処理方法では、前記登録するか否かを決定するステップで、前記受け付けたI/O要求を前記I/O要求キューに登録しないと判断すると、前記I/O処理装置が、当該I/O要求の発行元の外部装置に、I/O要求キューへの登録に失敗した旨を返却するステップを更に有する構成を採用できる。この場合、失敗した旨の通知を受けた外部装置は、例えば所定時間だけ待機して、I/O要求を再送すればよい。
本発明の第2及び第3の視点のI/O処理装置では、前記優先判断部は、前記I/O要求キューの使用率を記憶するI/O要求キュー情報保持部と、前記使用率に関する規定値を記憶するI/O要求キュー規定値保持部とを参照し、前記使用率が、前記規定値よりも小さいと、前記受け付けたI/O要求を前記I/O要求キューに登録すると決定する構成を採用できる。本発明の第2及び第3の視点のI/O要求処理方法は、前記I/O処理装置が、前記I/O要求キューの使用率を記憶するI/O要求キュー情報保持部と、前記使用率に関する規定値を記憶するI/O要求キュー規定値保持部とを参照して、前記使用率と前記使用率に関する規定値とを比較するステップと、前記使用率が前記使用率に関する規定値よりも小さいと、前記I/O処理装置が、前記受け付けたI/O要求を前記I/O要求キューに登録するステップとを更に有する構成を採用できる。使用率が低い場合には、I/O要求キューの空きに余裕がある。このような状態では、規定値に基づくI/O要求登録の可否の決定を行わずに、I/O要求をI/O要求キューに登録する構成とすることができる。
本発明の第2及び第3の視点のI/O処理装置は、前記外部装置からI/O要求を受信した時間間隔と、前記時間間隔のしきい値を保持する時間間隔規定値保持部が保持するしきい値とを比較し、前記受信した時間間隔が、前記時間隔のしきい値を超えると判断すると、前記外部装置が発行するI/O要求の登録優先度を低下させる時間の終了時刻を示す減衰終了時刻を、当該外部装置と対応付けて記憶する減衰時刻設定部を更に備える構成を採用できる。この場合、前記優先外部装置判断部は、現時刻と、前記減衰終了時刻とを比較し、現時刻が、前記減衰終了時刻以後であると判断すると、前記前記受け付けたI/O要求を前記I/O要求キューに登録すると決定する構成を採用できる。本発明の第2及び第3の視点のI/O要求処理方法は、前記外部装置からI/O要求を受信した時間間隔と、前記時間間隔のしきい値を保持する時間間隔規定値保持部が保持するしきい値とを比較するステップと、前記受信した時間間隔が、前記時間隔のしきい値を超えると判断すると、前記I/O処理装置が、前記外部装置が発行するI/O要求の登録優先度を低下させる時間の終了時刻を示す減衰終了時刻を、当該外部装置と対応付けて記憶するステップとを更に有する構成を採用できる。この場合、この場合、前記I/O処理装置が、現時刻と前記減衰終了時刻とを比較するステップと、該比較ステップで現時刻が、前記減衰終了時刻以後であると判断すると、前記I/O処理装置が、前記受け付けたI/O要求を前記I/O要求キューに登録するステップとを更に有する構成を採用できる。この場合には、I/O要求の発行間隔(受信間隔)が長い外部装置について、減衰終了時刻を設定することで、その時刻となるまでの間、その外部装置からのI/O要求の登録の優先度を下げ、その他の外部装置からのI/O要求を、優先的に、I/O要求キューに登録することができる。減衰終了時刻は、例えば最後にI/O要求をI/O要求キューに登録した時刻に、所定の時刻を加えた時刻として算出できる。
本発明のI/O処理装置及び方法では、I/O要求の登録遅延時間、登録連続失敗回数、又は、登録連続失敗回数に基づいて、優先的にI/O要求キューに登録するI/O要求を判断する。このようにすることで、例えば、低速の入出力装置に対して読み込み又は書き込み等のアクセスを行う際に、各外部装置のI/O要求の遅延時間の最大値を最小化して、上位のシステムやアプリケーションにおけるバッファのオーバーフロー・アンダーフローを防止することができる。これにより、例えば、データ書き込み時に、書き込みデータ等を保存するためのバッファ量が少なくてすむため、外部装置が備えるバッファ量を削減できる。また、データ読み込み時には、映像データ等を再生する際に、先読み量を少なくすることが可能となり、外部装置が備えるバッファ量を削減できる。
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の一実施形態のI/O処理装置の構成を示している。I/O処理装置500は、I/O要求受信部501、プロセス情報保持部510、優先プロセス判断部520、I/O要求キュー情報保持部530、I/O要求キュー540、及び、規定値保持部550を備える。I/O処理装置500は、外部装置(プロセス)600が、DVD(Digital Versatile Disk)や、ハードディスク(HDD)等の入出力装置700に対して発行したI/O要求を受け付けてI/O要求キュー540に登録し、I/O要求キュー540に格納されたI/O要求を、順次に入出力装置700に受け渡す。I/O処理装置500は、I/O要求のI/O要求キュー540への登録に失敗すると、その旨を、I/O要求の発行元のプロセスに返却する。或いは、I/O要求キュー540への登録に成功するまで、登録動作を繰り返し行う。
I/O要求受信部501は、プロセス600から、書き込み又は読み込み要求を示すI/O要求を受信する。優先プロセス判断部520は、アルゴリズムで、優先プロセスを判断し、プロセスからのI/O要求をI/O要求キュー540に格納する。プロセス情報保持部510は、各プロセス600について、所定のプロセス情報を保持する。より詳細には、各プロセス600について、I/O要求の失敗回数を示すI/O要求失敗回数511、I/O要求を受信した時刻からI/O要求キュー540に登録されるまでの経過時間を示すI/O要求遅延時間512、I/O要求をI/O要求キュー540に登録することに成功した時刻を示すI/O登録成功時刻513、I/O要求のI/O要求キュー540への登録に成功したことを示すI/O登録成功フラグ514、I/O要求の登録の優先度を下げる処理の終了時刻を示すI/O減衰終了時刻515、I/O要求のあった時刻を示すI/O要求時刻516、I/O要求のI/O要求キュー540への登録の連続失敗時間を示すI/O要求連続失敗時間517を保持する。
I/O要求キュー540は、リスト構造で接続される、一つ又は複数のI/O要求を保持するキューとして構成される。I/O要求キュー情報保持部530は、I/O要求キュー540の使用状況に関する情報を保持する。より詳細には、I/O要求キュー540の使用率を示す使用率531と、I/O要求キュー540に登録済みのI/O要求数を示す使用数532と、登録可能な残りI/O要求数を示す残数533とを保持する。規定値保持部550は、優先プロセス判断部520が優先プロセスを判断する際に使用する規定値を保持する。より詳細には、I/O要求の遅延時間の比較、又は、I/O要求の連続失敗時間の比較に利用するTw規定値551と、I/O要求の連続失敗回数の比較に利用するwc規定値552と、I/O要求の使用率の比較に利用するI/O要求キュー率規定値553と、同一プロセスからのI/O要求を受信しない間隔を比較する際に利用するTd規定値554とを保持する。
優先プロセス判断部520は、遅延時間検出部521、失敗回数検出部522、減衰判断部523、及び、連続失敗時間検出部524を備える。遅延時間検出部521は、I/O要求を受信してからI/O要求キュー540へ登録するまでの遅延時間の比較を行う。失敗回数検出部522は、I/O要求のI/O要求キュー540への登録の失敗回数の比較を行う。減衰判断部523は、プロセスのI/O要求の登録優先度を下げる時間を判断する。連続失敗時間検出部524は、I/O要求のI/O要求キュー540への登録に連続して失敗した時間の比較を行う。
以下、I/O処理装置500がI/O要求を受信してからI/O要求キュー540に登録するまでの処理について説明する。図2は、遅延時間が長いI/O要求を、優先的にI/O要求キュー540に登録する際のI/O処理装置500の動作手順を示している。この例では、I/O処理装置500は、I/O要求キュー540にI/O要求が登録されるまで登録処理を繰り返し、I/O要求をI/O要求キュー540に登録するまで、I/O要求の発行元のプロセス600の処理をブロックする。
優先プロセス判断部520は、まず、I/O要求受信部501がプロセス600からI/O要求を新規に受信したか否かを判断する(ステップS11)。新規にI/O要求を受信した場合には、そのプロセス600についてのI/O要求遅延時間512(Tw)を0に設定し、I/O要求時刻516(Tr)を現時刻に設定する(ステップS12)。時刻の単位には、例えばナノ秒や、中央演算処理のクロック数を用いることができる。その後、I/O要求キュー540へ未登録のI/O要求が残っているか否かを判断する(ステップS13)。受信したI/O要求の全てをI/O要求キュー540に登録している場合には、ステップS11に戻る。
受信済みI/O要求のうちで、まだ、I/O要求キュー540に登録していないI/O要求が残っている場合には、遅延時間検出部521により、各I/O要求に対応するプロセスのI/O要求遅延時間512(Tw)を比較し、そのうちで最大の遅延時間を有するものを選択する(ステップS14)。その後、I/O要求キュー情報保持部530を参照してI/O要求キュー540が一杯であるか否か、つまりは残数533が0であるか否かを判断する(ステップS15)。I/O要求キュー540が一杯であれば、全ての受信済みI/O要求の発行元プロセス600に対応するI/O要求遅延時間512(Tw)を、現時刻からI/O要求時刻516(Tr)を減算した時間に設定し(ステップS16)、ステップS11に戻る。
I/O要求キュー540に登録可能なI/O要求格納エリアが残っているときには、ステップS14で選択したI/O要求を、I/O要求キュー540に登録する(ステップS17)。優先プロセス判断部520は、ステップS17で登録されなかったI/O要求に対応するプロセスのI/O要求遅延時間512(Tw)を、現時刻からI/O要求時刻516(Tr)を減算した時間に設定し、ステップS11に戻って、I/O要求の登録処理を継続する。このようにすることで、よりI/O要求の登録に失敗している時間が長いプロセス600からのI/O要求を、優先的にI/O要求キュー540に登録することができ、プロセス600の処理がブロックされる時間を短縮できる。
図3は、I/O要求の登録に失敗している時間が長いプロセスの要求を、優先的にI/O要求キュー540に登録する際のI/O処理装置500の動作手順を示している。以下の例では、I/O処理装置500は、I/O要求キュー540への登録に失敗すると、その旨を要求発行元のプロセス600に返却する。各プロセス600は、I/O処理装置500から、I/O要求の登録に失敗した旨の通知を受けると、例えば所定時間だけ待機して、I/O要求を再送する。
優先プロセス判断部520は、I/O要求受信部501がプロセスからI/O要求を受信したか否かを判断し(ステップS21)、I/O要求を受信していないときには、ステップS21に戻って、I/O要求を受信するまで待機する。優先プロセス判断部520は、I/O要求受信部501がI/O要求を受信したと判断すると、その受信したI/O要求に対応するプロセス600のI/O要求連続失敗時間517(Tw)が0であるか否かを判断する(ステップS22)。I/O要求連続失敗時間517(Tw)が0であるということは、I/O要求を初めて受信したことを示しており、優先プロセス判断部520は、そのプロセス600に対応するI/O要求時刻516(Tr)を、現時刻に設定する(ステップS23)。
優先プロセス判断部520は、I/O要求キュー情報保持部530及び規定値保持部550を参照し、使用率531が、しきい値としてI/O要求キュー率規定値553に規定された“率1”以上であるか否かを判断する(ステップS24)。ステップS24で使用率531が“率1”よりも小さいと判断すると、受信したI/O要求を、I/O要求キュー540に登録し(ステップS27)、I/O要求連続失敗時間517(Tw)を0に設定して(ステップS28)、ステップS21へ戻る。
優先プロセス判断部520は、ステップS24で使用率531が“率1”以上であると判断すると、連続失敗時間検出部524により、受信したI/O要求に対応するプロセス600のI/O要求連続失敗時間517(Tw)がTw規定値551で規定された時間“Tw1”以上であるかを判断する(ステップS25)。或いは、各プロセス600のI/O要求連続失敗時間517(Tw)を大きい順にソートしたときに、受信したI/O要求に対応するプロセス600のI/O要求連続失敗時間517(Tw)の順位が、Tw規定値551で規定された順位“Tw順位1”以上であるか否かを判断する。
優先プロセス判断部520は、ステップS25で、“Tw1”以上である、又は、“Tw順位1”以上であると判断すると、ステップS27へ進んでI/O要求をI/O要求キュー540に登録する。一方、“Tw1”よりも小さい、又は、“Tw順位1”よりも順位が低いと判断すると、I/O要求連続失敗時間517(Tw)を、現時刻からI/O要求時刻516(Tr)を減算した値に設定し(ステップS26)、I/O要求を発行したプロセス600にI/O要求キュー540への登録に失敗した旨を返却して、ステップS21へ戻る。
ここで、I/O要求を発行するプロセスが、プロセスPx、Py、Pzの3つある場合を例に挙げて説明する。プロセス情報保持部510は、各プロセスについて、図4に示す情報を記憶しているとする。また、規定値保持部550は、図5に示す規定値を記憶し、I/O要求キュー情報保持部530は、図6に示す情報を記憶しているとする。この状況において、ステップS21で、I/O要求受信部501が、プロセスPxから、図7に示すようなI/O書き込み要求を受信すると、プロセスPxのI/O要求連続失敗時間517(Tw)は0ではないため、ステップS22からステップS23へと進む。
ステップS24では、I/O要求キュー540の使用率531「80%」が、規定値保持部550のI/O要求キュー率規定値553の“率1”「50%」以上であるため、ステップS25へと進む。ステップS25で、プロセスPxのI/O要求連続失敗時間517(Tw:300ns)と、Tw規定値551で規定された時間Tw1「250ns」とを比較すると、プロセスPxのI/O要求連続失敗時間517(Tw)の方が大きい。このため、ステップS27へ進んで、プロセスPxのI/O要求が、I/O要求キュー540に登録される。その後、ステップS28で、プロセスPxのI/O要求連続失敗時間517(Tw)は、0にリセットされる。
上記状況において、ステップS21で、I/O要求受信部501がプロセスPyからのI/O要求を受信した場合には、上記と同様に、ステップS22から、ステップS23、S24、S25へと進む。プロセスPyのI/O要求連続失敗時間517(Tw:200ns)は、Tw規定値551で規定された時間Tw1「250ns」よりも小さい。しかし、プロセスPyのI/O要求連続失敗時間517の遅延時間が長い方からの順位と、Tw規定値551で規定された “Tw順位1”「2位」とを比較すると、プロセスPyのI/O要求連続失敗時間517(Tw)の順位「2位」は、Tw1順位1「2位」以上である。このため、ステップS25からステップS27へと進んで、プロセスPyのI/O要求が、I/O要求キュー540に登録される。
上記状況において、ステップS21で、I/O要求受信部501がプロセスPzからI/O要求を受信した場合、ステップS25で、I/O要求連続失敗時間を比較すると、プロセスPzのI/O要求連続失敗時間517(Tw:100ns)は、Tw規定値551で規定された時間Tw1「250ns」よりも小さい。また、プロセスPzのI/O要求連続失敗時間517の時間が長いほうからの順位「3位」は、Tw順位1「2位」よりも低い。このため、ステップS25からステップS26へ進んで、プロセスPzのI/O要求は、I/O要求キュー540には登録されない。
従来のI/O処理装置のように、起動優先度に従ってI/O要求をキューに登録する方式を採用する場合には、I/O要求の登録に失敗している時間が考慮されないため、例えばプロセスPzの起動優先度が最も高い場合には、プロセスPzが発行したI/O要求が先にキューに登録され、プロセスPzのI/O要求の登録に失敗している時間に比してI/O要求の登録に失敗している時間が長いプロセスPx及びPyが発行したI/O要求は、その登録の機会を失う。図3に示す手順に従って、I/O要求をI/O要求キュー540に登録する構成を採用することにより、I/O要求の登録に失敗している時間が長いプロセス600からのI/O要求を、優先的にI/O要求キュー540に登録することができ、各プロセス600がI/O要求を発生してからI/O要求キュー540に登録されるまでの遅延時間の最大値を最小化できる。
図8は、I/O要求の登録に失敗している回数が多いプロセス600からのI/O要求を、優先的にI/O要求キュー540に登録する際のI/O処理装置500の動作手順を示している。優先プロセス判断部520は、I/O要求受信部501がプロセス600からI/O要求を新規に受信したか否かを判断する(ステップS31)。新規I/O要求を受信していないときには、ステップS21に戻って、新規I/O要求を受信するまで待機する。優先プロセス判断部520は、I/O要求受信部501が新規I/O要求を受信したと判断すると、その受信したI/O要求に対応するプロセス600が初めてI/O要求を行うプロセスであるか否かを判断する(ステップS32)。初めてI/O要求を行うプロセス600であれば、そのプロセスのI/O要求失敗回数511(wc)を0に設定する(ステップS33)。
優先プロセス判断部520は、I/O要求キュー情報保持部530及び規定値保持部550を参照し、使用率531が、しきい値としてI/O要求キュー率規定値553に規定された“率2”以上であるか否かを判断する(ステップS34)。例えば、規定値保持部550が図5に示す情報を保持する場合には、規定値保持部550から“率2”に対応する値(60%)を取得して、使用率531が、その値(60%)以上であるか否かを判断する。ステップS24で、使用率531が“率2”よりも小さいと判断すると、受信したI/O要求を、I/O要求キュー540に登録し(ステップS37)、I/O要求失敗回数511(wc)を0に設定して(ステップS38)、ステップS31へ戻る。
優先プロセス判断部520は、ステップS34で使用率531が“率2”以上であると判断すると、失敗回数検出部522により、受信したI/O要求に対応するプロセス600のI/O要求失敗回数511(wc)がwc規定値552で規定された失敗回数“wc1”以上であるかを判断する(ステップS35)。或いは、各プロセス600のI/O要求失敗回数511(wc)を大きい順にソートしたときに、受信したI/O要求に対応するプロセスのI/O要求失敗回数511(wc)の順位が、wc規定値552で規定された順位“wc順位1”以上であるか否かを判断する。例えば、規定値保持部550が図5に示す情報を保持する場合には、優先プロセス判断部520は、I/O要求失敗回数511(wc)が、失敗回数“wc1”(60回)以上であるか否か、又は、I/O要求失敗回数511(wc)の順位が“wc順位1”(4位)以上であるか否かを判断する。
ステップS35で、“wc1”以上である、又は、“wc順位1”以上であると判断すると、ステップS37へ進んでI/O要求をI/O要求キュー540に登録する。一方、“wc1”よりも小さい、又は、“wc順位1”よりも順位が低いと判断すると、I/O要求失敗回数511(wc)に1を加算し(ステップS36)、I/O要求を発行したプロセスにI/O要求キュー540への登録に失敗した旨を返却して、ステップS31へ戻る。このような手順でI/O要求をI/O要求キュー540に登録することで、I/O要求の登録に失敗している回数が多いプロセスからのI/O要求を、優先的にI/O要求キュー540に登録することができ、その結果、各プロセス600のI/O要求遅延時間の最大値を最小化できる。
図9は、長時間I/O要求を発行しないプロセス600については、しばらくの間、I/O要求のI/O要求キュー540への登録を減衰させる際のI/O処理装置500の動作手順を示している。優先プロセス判断部520は、I/O要求受信部501がプロセス600からI/O要求を受信したか否かを判断する(ステップS401)。I/O要求を受信していないときには、ステップS401に戻って、I/O要求を受信するまで待機する。
優先プロセス判断部520は、I/O要求受信部501がI/O要求を受信したと判断すると、その受信したI/O要求に対応するプロセス600が初めてI/O要求を行うプロセスであるか否かを判断する(ステップS402)。初めてI/O要求を行うプロセスであれば、I/O登録成功時刻513(Ts)、及び、I/O減衰終了時刻515(Te)を、それぞれ現在時刻を設定し、I/O登録成功フラグ514(sFlg)を、成功を示す「1」に設定して(ステップS410)、ステップS406へ進む。
優先プロセス判断部520は、ステップS402で、初めてI/O要求を行うプロセスではないと判断すると、I/O登録成功フラグ514(sFlg)が成功「1」を示しているか否かを判断する(ステップS403)。I/O登録成功フラグ514(sFlg)が成功「1」を示していないときには、ステップS406へ進む。優先プロセス判断部520は、I/O登録成功フラグ514(sFlg)が成功「1」示しているときには、現時刻から前回のI/O要求の登録に成功した時刻Tsを減算し、プロセス600からI/O要求がなかった時間Tdを算出する(ステップS404)。
優先プロセス判断部520は、Td規定値554を参照し、ステップS404で算出した時間Tdが、規定値“Td1”よりも大きいか否かを判断する(ステップS405)。例えば、規定値保持部550が図5に示す情報を保持する場合には、規定値保持部550から規定値“Td1”(500ns)を取得して、算出したTdが、500nsよりも大きいか否かを判断する。I/O要求がなかった時間Tdが、規定値“Td1”よりも大きい場合には、現時刻に、Td規定値554で規定された減衰時間を加えた時刻を、I/O減衰終了時刻515(Te)として設定する(ステップS411)。例えば、規定値保持部550が図5に示す情報を保持する場合には、現時刻に、規定値保持部550で規定された減衰時間(1,000,000ns)を加えた時刻を、I/O減衰終了時刻515(Te)に設定する。I/O要求がなかった時間Tdが、規定値“Td1”以下であれば、そのままステップS406へ進む。
優先プロセス判断部520は、I/O要求キュー情報保持部530及び規定値保持部550を参照し、使用率531が、しきい値としてI/O要求キュー率規定値553に規定された“率3”以上であるか否かを判断する(ステップS406)。例えば、規定値保持部550が図5に示す情報を保持する場合には、規定値保持部550から“率3”に対応する値(70%)を取得して、使用率531が、その値(70%)以上であるか否かを判断する。ステップS406で、使用率531が“率3”よりも小さいと判断すると、受信したI/O要求を、I/O要求キュー540に登録し(ステップS412)、I/O登録成功時刻513(Ts)、及び、I/O減衰終了時刻515(Te)を、それぞれ現在時刻を設定し、I/O登録成功フラグ514(sFlg)を成功「1」に設定して(ステップS413)、ステップS401へ戻る。
優先プロセス判断部520は、ステップS406で使用率531が“率3”以上であると判断すると、減衰判断部523により、現時刻と、I/O減衰終了時刻515(Te)とを比較し、現時刻がI/O減衰終了時刻515(Te)よりも前であるか否かを判断する(ステップS407)。現時刻がI/O減衰終了時刻515(Te)よりも前ではない、つまり、現時刻がI/O減衰終了時刻515(Te)以後であると判断すると、ステップS412へ進んで、I/O要求を、I/O要求キュー540に登録する。
優先プロセス判断部520は、ステップS407で、現時刻がI/O減衰終了時刻515(Te)よりも前であると判断すると、図3に示す手順と同様な手順で計測されたI/O要求連続失敗時間517(Tw)が規定値保持部550で規定された規定値を超えるか否かを判断する(ステップS408)。或いは、図8に示す手順と同様な手順でカウントされたI/O要求失敗回数511(wc)が、規定値保持部550で規定された規定値を超えるか否か(または、規定値以上であるか)を判断する。
ステップS408では、例えば、規定値保持部550(図5)を参照して、I/O要求連続失敗時間517(Tw)が遅延時間“Tw2”(300ns)以上であるか、又は、I/O要求連続失敗時間517(Tw)の順位が、“Tw順位2”(4位)以上であるか否かを判断する。或いは、I/O要求失敗回数511(wc)が失敗回数“wc2”(70回)以上であるか、又は、I/O要求失敗回数511(wc)の順位が、“wc順位2”(5位)以上であるか否かを判断する。
優先プロセス判断部520は、ステップS408で、規定値を超えると判断すると、ステップS412へ進んで、I/O要求をI/O要求キュー540に登録する。ステップS408で、規定値を超えないと判断したときには、I/O登録成功フラグ514(sFlg)を0(失敗)に設定し(ステップS409)、ステップS401へ戻る。このような手順でI/O要求をI/O要求キュー540に登録することで、長時間I/O要求を送信しないプロセス600については、I/O減衰終了時刻515までI/O要求キュー540への登録の優先度を下げて、他のプロセス600からのI/O要求を、優先的にI/O要求キュー540に登録することができる。
本実施形態では、I/O要求キュー540の使用率が高い状態、つまり、登録可能な残数が少ない状態では、優先プロセス判断部520により、I/O要求遅延時間512又はI/O要求連続失敗時間517が長いプロセス600からのI/O要求を優先的にI/O要求キュー540に登録する。或いは、I/O要求失敗回数511が多いプロセス600からのI/O要求を、I/O要求キュー540に優先的に登録する。このようにすることにより、例えば低速なデバイスに対して、読み込み又は書き込み等のアクセスの遅延時間を大幅に小さくすることが可能になり、I/O処理装置500にI/O要求を送信する上位のアプリケーションや装置において、書き込みデータを保存しておくためのバッファ量を小さくすることができる。また、読み出しにおいては、映像データ等を再生する際に、先読み量を小さくすることが可能となり、バッファ量を削減することができる。
なお、上記実施形態で説明したI/O要求キュー540への登録処理については、組み合わせて使用することも可能である。例えば、優先プロセス判断部520は、はじめ、図3に示す手順に従って、I/O要求遅延時間512に基づいてI/O要求キュー540への登録を行い、その後、図4に示す手順に従って、I/O要求失敗回数511に基づいてI/O要求キュー540への登録を行う構成としてもよい。また、特定の記憶装置に対しては、I/O要求を図3に示す手順で登録し、他の記憶装置に対しては、I/O要求を図4に示す手順で登録してもよい。ステップS25等では、I/O要求遅延時間512が規定値以上であるか否かを判断したが、規定値を超えるか否かで判断してもよい。ステップS24等では、使用率531が規定値以上であるか否かを判断したが、使用率531に代えて使用数532又は残数533を用い、使用数532が規定値よりも小さいか否か、又は、残数533が規定値以上残っているか否かで判断してもよい。
以上、本発明をその好適な実施形態に基づいて説明したが、本発明のI/O処理システムは、上記実施形態例にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
本発明の一実施形態のI/O処理装置の構成を示すブロック図。 遅延時間が長いI/O要求を、優先的にI/O要求キュー540に登録する際のI/O処理装置500の動作手順を示すフローチャート。 I/O要求の登録に失敗している時間が長いプロセスの要求を、優先的にI/O要求キューに登録する際のI/O処理装置500の動作手順を示すフローチャート。 プロセス情報保持部510が保持する情報の具体例を示す表。 規定値保持部550が保持する規定値の具体例を示す表。 I/O要求キュー情報保持部530が保持する情報の具体例を示す表。 I/O要求の具体例を示す表。 I/O要求の登録に失敗している回数が多いプロセス600からのI/O要求を、優先的にI/O要求キュー540に登録する際のI/O処理装置500の動作手順を示すフローチャート。 長時間I/O要求を発行しないプロセス600については、しばらくの間、I/O要求のI/O要求キュー540への登録を減衰させる際のI/O処理装置500の動作手順を示すフローチャート。
符号の説明
500:I/O処理装置(システム)
501:I/O要求受信部
510:プロセス情報保持部
511:I/O要求失敗回数
512:I/O要求遅延時間
513:I/O登録成功時刻
514:I/O登録成功フラグ
515:I/O減衰終了時刻
516:I/O要求時刻
517:I/O要求連続失敗時間
520:優先プロセス判断部
521:遅延時間検出部
522:失敗回数検出部
523:減衰判断部
524:連続失敗時間検出部
530:I/O要求キュー情報保持部
531:使用率
532:使用数
533:残数
540:I/O要求キュー
550:規定値保持部
551:Tw規定値
552:wc規定値
553:I/O要求キュー率規定値
554:Td規定値

Claims (22)

  1. 外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置において、
    前記外部装置が発行するI/O要求を受け付けるI/O要求受付部と、
    前記I/O要求を受け付けてからI/O要求キューへ登録するまでの遅延時間を記憶する外部装置情報保持部を参照し、前記I/O要求受付部が受け付けたI/O要求のうちで、遅延時間が最大のI/O要求を、前記I/O要求キューに登録する優先外部装置判断部を備えることを特徴とするI/O要求処理装置。
  2. 外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置において、
    前記外部装置が発行するI/O要求を受け付けるI/O要求受付部と、
    前記I/O要求受付部がI/O要求を受け付けると、1つの外部装置が発行したI/O要求が連続してI/O要求キューに登録されない連続登録失敗時間をI/O要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗時間に関する規定値を記憶する連続登録失敗時間規定値記憶部とを参照し、前記受け付けたI/O要求を前記I/O要求キューに登録するか否かを決定する優先外部装置判断部を備えたことを特徴とするI/O要求処理装置。
  3. 前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間のしきい値を保持し、前記優先外部装置判断部は、前記受け付けたI/O要求の発行元の外部装置の連続登録失敗時間が、前記しきい値以上であると、前記受け付けたI/O要求を前記I/O要求キューに登録する、請求項2に記載のI/O要求処理装置。
  4. 前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間の順位のしきい値を保持し、前記優先外部装置判断部は、前記外部装置の連続登録失敗時間を降順に並べたときに、前記受け付けたI/O要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたI/O要求を前記I/O要求キューに登録する、請求項2に記載のI/O要求処理装置。
  5. 外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置において、
    前記外部装置が発行するI/O要求を受け付けるI/O要求受付部と、
    前記I/O要求受付部がI/O要求を受け付けると、1つの外部装置が発行したI/O要求が連続してI/O要求キューに登録されない連続登録失敗回数をI/O要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗回数に関する規定値を記憶する連続登録失敗回数規定値記憶部とを参照し、前記受け付けたI/O要求を前記I/O要求キューに登録するか否かを決定する優先外部装置判断部を備えたことを特徴とするI/O要求処理装置。
  6. 前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数のしきい値を保持し、前記優先外部装置判断部は、前記受け付けたI/O要求の発行元の外部装置の連続登録失敗回数が、前記連続登録失敗回数のしきい値以上であると、前記受け付けたI/O要求を前記I/O要求キューに登録する、請求項5に記載のI/O要求処理装置。
  7. 前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数の順位のしきい値を保持し、前記優先外部装置判断部は、前記外部装置の連続登録失敗回数を降順に並べたときに、前記受け付けたI/O要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたI/O要求を前記I/O要求キューに登録する、請求項5に記載のI/O要求処理装置。
  8. 前記I/O処理装置は、前記優先外部装置判断部が、前記受け付けたI/O要求を前記I/O要求キューに登録しないと判断すると、当該I/O要求の発行元の外部装置に、I/O要求キューへの登録に失敗した旨を返却する、請求項2〜7の何れか一に記載のI/O処理装置。
  9. 前記優先判断部は、前記I/O要求キューの使用率を記憶するI/O要求キュー情報保持部と、前記使用率に関する規定値を記憶するI/O要求キュー規定値保持部とを参照し、前記使用率が、前記規定値よりも小さいと、前記受け付けたI/O要求を前記I/O要求キューに登録すると決定する、請求項2〜7の何れか一に記載のI/O処理装置。
  10. 前記外部装置からI/O要求を受信した時間間隔と、前記時間間隔のしきい値を保持する時間間隔規定値保持部が保持するしきい値とを比較し、前記受信した時間間隔が、前記時間隔のしきい値を超えると判断すると、前記外部装置が発行するI/O要求の登録優先度を低下させる時間の終了時刻を示す減衰終了時刻を、当該外部装置と対応付けて記憶する減衰時刻設定部を更に備える、請求項請求項2〜7の何れか一に記載のI/O処理装置。
  11. 前記優先外部装置判断部は、現時刻と、前記減衰終了時刻とを比較し、現時刻が、前記減衰終了時刻以後であると判断すると、前記前記受け付けたI/O要求を前記I/O要求キューに登録すると決定する、請求項10に記載のI/O要求処理装置。
  12. 外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置でI/O要求を処理する方法において、
    前記I/O処理装置が、前記外部装置が発行するI/O要求を受け付けるステップと、
    前記I/O処理装置が、前記I/O要求を受け付けてからI/O要求キューへ登録するまでの遅延時間を記憶する外部装置情報保持部を参照し、前記受け付けたI/O要求のうちで、遅延時間が最大のI/O要求を、前記I/O要求キューに登録するステップとを有することを特徴とするI/O要求処理方法。
  13. 外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置でI/O要求を処理する方法において、
    前記I/O処理装置が、前記外部装置が発行するI/O要求を受け付けるステップと、
    前記I/O処理装置が、1つの外部装置が発行したI/O要求が連続してI/O要求キューに登録されない連続登録失敗時間をI/O要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗時間に関する規定値を記憶する連続登録失敗時間規定値記憶部とを参照し、前記受け付けたI/O要求を前記I/O要求キューに登録するか否かを決定するステップとを有することを特徴とするI/O要求処理方法。
  14. 前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間のしきい値を保持し、前記登録するか否かを決定するステップは、前記受け付けたI/O要求の発行元の外部装置の連続登録失敗時間が、前記しきい値以上であると、前記受け付けたI/O要求を前記I/O要求キューに登録する、請求項13に記載のI/O要求処理方法。
  15. 前記連続登録失敗時間規定値保持部は、前記連続登録失敗時間の順位のしきい値を保持し、前記登録するか否かを決定するステップは、前記外部装置の連続登録失敗時間を降順に並べたときに、前記受け付けたI/O要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位であると、前記受け付けたI/O要求を前記I/O要求キューに登録する、請求項13に記載のI/O要求処理方法。
  16. 外部装置から受信したI/O要求をI/O要求キューに登録し、該I/O要求キューに登録されたI/O要求に基づいて外部装置と入出力装置との間で行われるデータの入出力を制御するI/O処理装置でI/O要求を処理する方法において、
    前記I/O処理装置が、前記外部装置が発行するI/O要求を受け付けるステップと、
    前記I/O処理装置が、1つの外部装置が発行したI/O要求が連続してI/O要求キューに登録されない連続登録失敗回数をI/O要求発行元の外部装置ごとに記憶する外部装置情報保持部と、前記連続登録失敗回数に関する規定値を記憶する連続登録失敗回数規定値記憶部とを参照し、前記受け付けたI/O要求を前記I/O要求キューに登録するか否かを決定するステップとを有することを特徴とするI/O要求処理方法。
  17. 前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数のしきい値を保持し、前記登録するか否かを決定するステップは、前記受け付けたI/O要求の発行元の外部装置の連続登録失敗回数が、前記連続登録失敗回数のしきい値以上であると、前記受け付けたI/O要求を前記I/O要求キューに登録する、請求項16に記載のI/O要求処理方法。
  18. 前記連続登録失敗回数規定値保持部は、前記連続登録失敗回数の順位のしきい値を保持し、前記登録するか否かを決定するステップは、前記外部装置の連続登録失敗回数を降順に並べたときに、前記受け付けたI/O要求の発行元の外部装置の順位が、前記連続登録失敗回数の順位のしきい値と同じ順位か又はこれより高い順位あると、前記受け付けたI/O要求を前記I/O要求キューに登録する、請求項16に記載のI/O要求処理方法。
  19. 前記登録するか否かを決定するステップで、前記受け付けたI/O要求を前記I/O要求キューに登録しないと判断すると、前記I/O処理装置が、当該I/O要求の発行元の外部装置に、I/O要求キューへの登録に失敗した旨を返却するステップを更に有する、請求項13〜18の何れか一に記載のI/O処理方法。
  20. 前記I/O処理装置が、前記I/O要求キューの使用率を記憶するI/O要求キュー情報保持部と、前記使用率に関する規定値を記憶するI/O要求キュー規定値保持部とを参照して、前記使用率と前記使用率に関する規定値とを比較するステップと、前記使用率が前記使用率に関する規定値よりも小さいと、前記I/O処理装置が、前記受け付けたI/O要求を前記I/O要求キューに登録するステップとを更に有する、請求項13〜18の何れか一に記載のI/O処理方法。
  21. 前記外部装置からI/O要求を受信した時間間隔と、前記時間間隔のしきい値を保持する時間間隔規定値保持部が保持するしきい値とを比較するステップと、前記受信した時間間隔が、前記時間隔のしきい値を超えると判断すると、前記I/O処理装置が、前記外部装置が発行するI/O要求の登録優先度を低下させる時間の終了時刻を示す減衰終了時刻を、当該外部装置と対応付けて記憶するステップとを更に有する、請求項請求項13〜18の何れか一に記載のI/O処理方法。
  22. 前記I/O処理装置が、現時刻と前記減衰終了時刻とを比較するステップと、該比較ステップで現時刻が、前記減衰終了時刻以後であると判断すると、前記I/O処理装置が、前記受け付けたI/O要求を前記I/O要求キューに登録するステップとを更に有する、請求項21に記載のI/O要求処理方法。
JP2005298003A 2005-10-12 2005-10-12 I/o処理装置及び方法 Pending JP2007108950A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005298003A JP2007108950A (ja) 2005-10-12 2005-10-12 I/o処理装置及び方法
PCT/JP2006/320399 WO2007043617A1 (ja) 2005-10-12 2006-10-12 I/o要求処理システム及び方法
US12/089,999 US7707332B2 (en) 2005-10-12 2006-10-12 I/O-request processing system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005298003A JP2007108950A (ja) 2005-10-12 2005-10-12 I/o処理装置及び方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010152798A Division JP4993002B2 (ja) 2010-07-05 2010-07-05 I/o処理装置及び方法

Publications (1)

Publication Number Publication Date
JP2007108950A true JP2007108950A (ja) 2007-04-26

Family

ID=37942842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005298003A Pending JP2007108950A (ja) 2005-10-12 2005-10-12 I/o処理装置及び方法

Country Status (3)

Country Link
US (1) US7707332B2 (ja)
JP (1) JP2007108950A (ja)
WO (1) WO2007043617A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8416954B1 (en) 2008-09-30 2013-04-09 Emc Corporation Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management
US8261068B1 (en) 2008-09-30 2012-09-04 Emc Corporation Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit
US7957398B1 (en) * 2007-03-05 2011-06-07 Emc Corporation Methods and systems for dynamic division of path capacity
US8166314B1 (en) 2008-12-30 2012-04-24 Emc Corporation Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown
US20110040903A1 (en) * 2009-08-17 2011-02-17 Lsi Corporation Methods and apparatus for automated performance limiting of an i/o control device
WO2012093475A1 (ja) * 2011-01-05 2012-07-12 富士通株式会社 情報転送装置および情報転送装置の情報転送方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147824A (ja) * 1999-09-28 2001-05-29 Internatl Business Mach Corp <Ibm> コンピュータ環境の論理プロセッサを管理する方法、システム、およびプログラム製品

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0615375Y2 (ja) 1987-07-14 1994-04-20 小島プレス工業株式会社 車両用パワ−ウインドスイッチ装置
JP2519792B2 (ja) * 1988-12-26 1996-07-31 富士通株式会社 ジョブ優先度設定方式
JP3283928B2 (ja) * 1992-11-27 2002-05-20 株式会社東芝 ディスク制御装置
JP3250861B2 (ja) * 1993-03-09 2002-01-28 株式会社日立製作所 ディスク装置システム
JPH09114599A (ja) 1995-10-13 1997-05-02 Matsushita Electric Ind Co Ltd ディスクスケジューリング装置
WO2001001262A1 (fr) * 1999-06-24 2001-01-04 Fujitsu Limited Controleur de peripherique et systeme d'entree/sortie
JP2001184302A (ja) 1999-12-24 2001-07-06 Nec Corp バッファ制御回路
US6886053B2 (en) * 2002-05-28 2005-04-26 Sun Microsystems, Inc. Method, system, and program for managing access to a device
US7216194B2 (en) * 2003-04-08 2007-05-08 Lsi Logic Corporation Methods and systems for improving delayed read handling
TWI256555B (en) * 2003-12-12 2006-06-11 Via Tech Inc An apparatus and a method of request priority queue arbitration
US7506090B2 (en) * 2006-06-14 2009-03-17 Honeywell International Inc. System and method for user-configurable resource arbitration in a process control system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147824A (ja) * 1999-09-28 2001-05-29 Internatl Business Mach Corp <Ibm> コンピュータ環境の論理プロセッサを管理する方法、システム、およびプログラム製品

Also Published As

Publication number Publication date
US20090049217A1 (en) 2009-02-19
US7707332B2 (en) 2010-04-27
WO2007043617A1 (ja) 2007-04-19

Similar Documents

Publication Publication Date Title
US11467769B2 (en) Managed fetching and execution of commands from submission queues
JP6072783B2 (ja) メモリコントローラおよびかかるメモリコントローラの動作方法
US10817336B2 (en) Apparatus and method to schedule time-sensitive tasks
US8312229B2 (en) Method and apparatus for scheduling real-time and non-real-time access to a shared resource
EP1072970B1 (en) A method and system for issuing commands to and ordering commands on a disk drive
US20150268861A1 (en) Scheduling requests in a solid state memory device
EP2889776B1 (en) Data arrangement control program, data arrangement control method and data arrangment control apparatus
US8082396B2 (en) Selecting a command to send to memory
JP2009518753A (ja) メモリアクセス要求のアービトレーション
US8607239B2 (en) Lock mechanism to reduce waiting of threads to access a shared resource by selectively granting access to a thread before an enqueued highest priority thread
JP2007108950A (ja) I/o処理装置及び方法
KR102106541B1 (ko) 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템
JP5058167B2 (ja) メモリアクセス要求の遅延アービトレーション
JP2002539509A (ja) 統合されたメモリ・アーキテクチャにおけるアービトレーションのための方法および装置
US20120005384A1 (en) Access control apparatus, access control method and storage system
US9588715B2 (en) Scheduling realtime information storage system access requests
CN106874081B (zh) 在nand闪速控制器中根据优先级对解码任务进行排队
EP3101551B1 (en) Access request scheduling method and apparatus
US7680992B1 (en) Read-modify-write memory with low latency for critical requests
US9465745B2 (en) Managing access commands by multiple level caching
CN114816748A (zh) 线程调度方法、装置、电子设备和存储介质
US20090235026A1 (en) Data transfer control device and data transfer control method
JP5056668B2 (ja) データ転送装置、およびデータ転送方法
JP4993002B2 (ja) I/o処理装置及び方法
US10339462B2 (en) System and method for executing a high bandwidth network activity as a background activity in a virtual desktop environment

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100105

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100705

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100713

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100917