図面 (/)

技術 情報処理装置、その処理方法、及び入出力装置

出願人 株式会社日立製作所
発明者 佐藤功人近藤雄樹
出願日 2014年5月12日 (3年8ヶ月経過) 出願番号 2016-518658
公開日 2017年4月20日 (8ヶ月経過) 公開番号 WO2015-173853
状態 特許登録済
技術分野 バス制御 先行制御 入出力制御
主要キーワード 割り込み通知信号 割り込み処理要求 対応レジスタ ポーリングタイミング 閾値レジスタ 割り込み回数 タイマーカウンタ 完了キュー

この技術の活用可能性のある市場・分野

関連する未来課題
重要な関連分野

この技術に関連する成長市場

関連メディア astavision

  • 画像診断・生体イメージング

    医療の診断において、非侵襲的あるいは低侵襲的な検査方法として、生体組織を可視化するin vivoイメ…

  • 生体情報デバイス・バイオセンサ

    「音楽を学習した人工知能は、人間を感動させることができるか?」をテーマに、クラブイベント「2045」…

  • 人工知能

    米国Google社が2015年6月23日に発表した“A Neural Conversational …

後で読みたい技術情報を見つけたら、ブックマークしておきましょう!

ページの右上にあるブックマークボタンからこのページをブックマークできます。
あなたがブックマークした技術情報は、いつでもマイページのリストから閲覧することが出来ます。

この項目の情報は公開日時点(2017年4月20日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (15)

課題・解決手段

本発明は、入出力命令実行完了を知らせるための割り込み通知回数を削減し、割り込み処理負荷を軽減する情報処理装置を提供する。 本発明では、ドライバに対して、入出力命令を発行した後に、必ず先行する入出力命令の完了状態確認することを規定する。すなわち、入出力命令の発行タイミングを先行する入出力命令の完了状態を確認するためのポーリングタイミングと見なす。入出力装置は割り込み通知をCPUに対して送信する前に、タイマーを設定してあらかじめ規定された時間だけ待機する。この間にドライバから次の入出力命令を発行したという通知が入出力装置に到着した場合、タイマーをリセットし、待機時間をあらかじめ規定された時間分だけ延長する、という動作を行う処理部を入出力装置に対して追加する。

概要

背景

一般的な入出力装置では、処理の完了を通知する方法として入出力装置がCPUに対して能動的に通知する割り込み通知方式と、CPUが一定の時間間隔で入出力装置の特定領域を監視するポーリング方式が使われる。

前者は入出力処理がない場合にはCPUの処理時間を消費せず、入出力処理が完了してから直ちにCPUが完了処理を行うため、入出力にかかる時間が短くてすむ利点がある。

一方で、後者は入出力回数が多い場合であってもCPU上で実行される他処理を邪魔せず、一定の負荷で完了処理を行うことができる利点がある。

一般的なOSでは、複数のデバイスが同時に動作しているため、処理がない場合にはCPUの処理時間を消費しない割り込み通知方式が用いられている。しかし、割り込み通知方式は入出力回数が多くなると割り込み通知の頻度がCPUにとって過大となり、特に高い入出力性能を持つ装置では、最高性能が頭打ちになる原因となってきている。そのため、割り込み通知頻度が過大となる可能性がある場合には、頻度を抑制する必要が出てきた。

特許文献1は、ホスト側の動作に制約条件をつけて、特定のイベント発生時に割り込み通知の送出を一定時間遅延させることを開示している。特許文献1では、遅延契機イベントが、デバイスによるパケット受信時と、CPUが受信パケットを処理したことをデバイスに伝えるときである。また、特許文献1では、抑制される割り込み信号は、パケット信号送信完了確認要求のための割り込み信号である。

概要

本発明は、入出力命令実行完了を知らせるための割り込み通知の回数を削減し、割り込み処理の負荷を軽減する情報処理装置を提供する。 本発明では、ドライバに対して、入出力命令を発行した後に、必ず先行する入出力命令の完了状態確認することを規定する。すなわち、入出力命令の発行タイミングを先行する入出力命令の完了状態を確認するためのポーリングタイミングと見なす。入出力装置は割り込み通知をCPUに対して送信する前に、タイマーを設定してあらかじめ規定された時間だけ待機する。この間にドライバから次の入出力命令を発行したという通知が入出力装置に到着した場合、タイマーをリセットし、待機時間をあらかじめ規定された時間分だけ延長する、という動作を行う処理部を入出力装置に対して追加する。

目的

本発明の目的は、入出力命令の実行完了を知らせるための割り込み通知の回数を削減し、割り込み処理の負荷を軽減するための情報処理装置を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

プロセッサーと、記憶部と、該プロセッサーから処理の指示を受ける入出力装置とからなる情報処理装置において、前記情報処理装置は、前記プロセッサーからの指示に基づいて、前記プロセッサーからの処理指示時に先行する処理が完了しているかを確認し、前記入出力装置は、前記プロセッサーへの処理完了通知としての割り込み信号送信する割り込み通知送信部と、前記プロセッサーに、処理完了の通知の送信を一定時間待機させる待機部と、前記プロセッサーからの処理開始指示検知したことを契機に、前記プロセッサーへ送信を待機させた前記一定時間を、さらに延長する延長部を、有することを特徴とする情報処理装置。

請求項2

請求項1に記載の情報処理装置において、前記プロセッサーからの処理開始の指示を、前記入出力装置の内部にあるレジスタへの書き込みによって検知することを特徴とする情報処理装置。

請求項3

請求項2に記載の情報処理装置であって、前記割り込み通知送信部は、前記記憶部に設けた複数の処理完了キュー識別する識別情報とともに前記割り込み信号を送信することを特徴とする情報処理装置。

請求項4

請求項2もしくは請求項3に記載の情報処理装置であって、複数のプロセッサーからの指示に対応して、前記入出力装置が、複数の処理開始指示を検知し、該処理開始指示を検知した場合には、前記延長部が、前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置。

請求項5

請求項1乃至4に記載の情報処理装置であって、前記延長部は、前記プロセッサーからの処理完了通知を処理したことを知らせる信号を検知したときに、前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置。

請求項6

プロセッサーと、記憶部と、該プロセッサーから処理の指示を受ける入出力装置とからなる情報処理装置の処理方法において、前記プロセッサーからの指示に基づいて、前記プロセッサーからの処理指示時に先行する処理が完了しているかを確認し、前記プロセッサーに、処理完了の通知の送信を一定時間待機させ、前記プロセッサーからの処理開始指示を検知したことを契機に、前記プロセッサーへの送信を待機させた前記一定時間を、さらに延長し、前記プロセッサーへの処理完了の通知としての割り込み信号を送信することを特徴とする情報処理装置の処理方法。

請求項7

請求項6に記載の情報処理装置の処理方法において、前記プロセッサーからの処理開始の指示を、前記入出力装置の内部にあるレジスタへの書き込みによって検知することを特徴とする情報処理装置の処理方法。

請求項8

請求項7に記載の情報処理装置の処理方法であって、前記記憶部に設けた複数の処理完了キューを識別する識別情報とともに前記割り込み信号を送信することを特徴とする情報処理装置の処理方法。

請求項9

請求項7もしくは請求項8に記載の情報処理装置の情報処理方法であって、プロセッサーからの指示は、複数のコアからの指示であり、複数の指示に対応して、前記入出力装置が、複数の処理開始指示を検知し、該処理開始指示を検知した場合には、前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置の処理方法。

請求項10

請求項6乃至9に記載の情報処理装置の処理方法であって、前記プロセッサーからの処理完了通知を処理したことを知らせる信号を検知したときに、前記プロセッサーへ通知するまでの前記一定時間を、さらに延長することを特徴とする情報処理装置の処理方法。

請求項11

プロセッサーから処理の指示を受ける入出力装置であって、前記入出力装置は、処理完了の通知としての割り込み信号を、前記プロセッサーへ送信する割り込み通知送信部と、前記プロセッサーに、処理完了の通知の送信を、一定時間待機させる待機部と、前記プロセッサーからの処理開始指示を検知したことを契機に、前記プロセッサーへの送信を待機させた前記一定時間を、さらに延長する延長部を、有することを特徴とする入出力装置。

請求項12

請求項11に記載の入出力装置において、前記プロセッサーからの処理開始の指示を、前記入出力装置の内部にあるレジスタへの書き込みによって検知することを特徴とする入出力装置。

技術分野

0001

本発明は、情報処理装置に関し、特に、入出力命令実行完了を知らせるための割り込み信号送出回数がCPUに対して過大になることを防ぐためのコンピュータに接続する入出力装置に関する。

背景技術

0002

一般的な入出力装置では、処理の完了を通知する方法として入出力装置がCPUに対して能動的に通知する割り込み通知方式と、CPUが一定の時間間隔で入出力装置の特定領域を監視するポーリング方式が使われる。

0003

前者は入出力処理がない場合にはCPUの処理時間を消費せず、入出力処理が完了してから直ちにCPUが完了処理を行うため、入出力にかかる時間が短くてすむ利点がある。

0004

一方で、後者は入出力回数が多い場合であってもCPU上で実行される他処理を邪魔せず、一定の負荷で完了処理を行うことができる利点がある。

0005

一般的なOSでは、複数のデバイスが同時に動作しているため、処理がない場合にはCPUの処理時間を消費しない割り込み通知方式が用いられている。しかし、割り込み通知方式は入出力回数が多くなると割り込み通知の頻度がCPUにとって過大となり、特に高い入出力性能を持つ装置では、最高性能が頭打ちになる原因となってきている。そのため、割り込み通知頻度が過大となる可能性がある場合には、頻度を抑制する必要が出てきた。

0006

特許文献1は、ホスト側の動作に制約条件をつけて、特定のイベント発生時に割り込み通知の送出を一定時間遅延させることを開示している。特許文献1では、遅延契機イベントが、デバイスによるパケット受信時と、CPUが受信パケットを処理したことをデバイスに伝えるときである。また、特許文献1では、抑制される割り込み信号は、パケット信号送信完了確認要求のための割り込み信号である。

先行技術

0007

US2011/0093637

発明が解決しようとする課題

0008

特許文献1では、CPUが入出力命令をデバイスに発行する際の課題については、何ら配慮されていない。

0009

割り込み通知は、入出力装置がCPUに対してオンデマンドで処理を要求するために一般的に用いられる手法であるが、割り込み処理はCPUにとって無視できない負荷を発生させる。入出力装置の性能が高くなるにつれて、単位時間あたりに処理可能な入出力命令数が多くなり、それに伴って入出力命令の実行完了を知らせるための割り込み通知回数も増加してきたため、割り込み処理の負荷が入出力性能に影響を与えるほど大きくなってきている。

0010

本発明の目的は、入出力命令の実行完了を知らせるための割り込み通知の回数を削減し、割り込み処理の負荷を軽減するための情報処理装置を提供することにある。

課題を解決するための手段

0011

本発明は、プロセッサーと、記憶部と、該プロセッサーから処理の指示を受ける入出力装置とからなる情報処理装置において、
前記情報処理装置は、
前記プロセッサーからの指示に基づいて、
前記プロセッサーからの処理指示時に先行する処理が完了しているかを確認し、
記入出力装置は、
前記プロセッサーへの処理完了の通知としての割り込み信号を送信する割り込み通知送信部と、
前記プロセッサーに、処理完了の通知の送信を一定時間待機させる待機部と、
前記プロセッサーからの処理開始指示検知したことを契機に、
前記プロセッサーへ送信を待機させた前記一定時間を、さらに延長する延長部を、
有する情報処理装置に特徴がある。

発明の効果

0012

本発明によれば、入出力命令の実行完了を知らせるための割り込み通知の回数を削減し、割り込み処理の負荷を軽減することができる。

図面の簡単な説明

0013

本願発明の第一の実施例に係る入出力装置の概略図を示す図。
主記憶装置上の入出力命令格納領域・入出力完了通知格納領域の概略を示す図。
ドライバソフトウェア動作シーケンスを示す図。
入出力装置制御部の動作シーケンスを示す図。
タイマーカウンタを含む割り込み通知頻度抑制機能の動作シーケンスを示す図。
複数の入出力命令・完了通知格納領域が主記憶装置へ配置されている状態を示す図。
発行キュー完了キュー構造の概略を示す図。
複数の発行キュー・完了キューを扱う本願発明の第二の実施例に係る入出力装置の概略を示す図。
複数キュー存在する場合のドライバソフトウェアの動作シーケンスを示す図。
複数キューが存在する場合のタイマーカウンタを含む割り込み通知頻度抑制機能の動作シーケンス(1)を示す図。
複数キューが存在する場合のタイマーカウンタを含む割り込み通知頻度抑制機能の動作シーケンス(2)を示す図。
完了通知の処理完了信号を割り込み通知頻度の抑制に用いた本願発明の第三の実施例に係る入出力装置の概略を示す図。
完了通知の処理完了信号を、割り込み通知頻度の抑制に用いた時の第二の実施例に対する追加動作シーケンスを示す図。
OSの統計情報表示画面の例を示す図。

0014

以下、図面を参照していくつかの実施例を説明する。

0015

本発明では、ドライバソフトウェア(201)に対して、入出力命令を発行した後に、必ず先行する入出力命令の完了状態を確認することを規定する。すなわち、入出力命令の発行タイミングを先行する入出力命令の完了状態を確認するためのポーリングタイミングと見なす。

0016

入出力装置は割り込み通知をCPUに対して送信する前に、タイマーを設定してあらかじめ規定された時間だけ待機する。この間にドライバから次の入出力命令を発行したという通知が入出力装置に到着した場合、タイマーをリセットし、待機時間をあらかじめ規定された時間分だけ延長する、という動作を行う処理部を入出力装置に対して追加している。 以下の文面では図中の要素を表す単語の後に括弧書きで要素番号を示す。また、同じ要素が複数存在し、それらを区別する必要がある場合には要素番号の後にアルファベットを追加して表記する。

0017

本発明を構成する基本構成要素は、中央演算装置(200)、主記憶装置(210)、入出力装置(100)およびそれらを接続する信号線データバス(240)である。入出力装置(100)にはデータを記憶し、読み書きされたことを検出して外部に通知する機能を持つレジスタ(300,301,310,311)が存在する。

0018

本発明の最良の実施形態の一つを図1に示す。
本発明の主要な動作概要を図1にて説明する。
入出力装置制御部(110)は、割り込み通知をだす必要が生じたときに、タイマーカウンタ(310)に対してカウントの開始を指示する。すでにカウントが開始されている場合は、タイマーカウンタ(310)は、入出力装置制御部(110)からのカウント開始指示を無視する。 タイマーカウンタ(310)は、タイマー用クロック生成部(130)から一定時間ごとに発信されるクロック信号が到着するごとに、カウンタの値を1ずつ加算する。

0019

比較器(320)は、タイマーカウンタ(310)とタイマー閾値レジスタ(311)の値を比較器(320)によって比較し、両者が一致したら割り込み通知送信部(120)に対して、CPU(200)へ割り込み通知を送出するように指示を出す。同時に、タイマーカウンタ(310)の値をリセットし、カウントの加算を停止させる。

0020

割り込み通知送信部(120)は、送出指示を受けると中央演算装置(200)に対して割り込み通知を送出する。

0021

中央演算装置(200)が入出力命令を発行したことを入出力装置(100)に対して通知するために、SQPIレジスタ(300)への書き込みを行ったとき、SQPIレジスタは書き込みが行われたことを入出力装置制御部(110)に通知するとともに、タイマーカウンタ(310)の値をリセットする。SQPIレジスタは、Submission Queue Producer Index registerの略称であり、入出力命令の発行をCPUから入出力装置に対して通知するためのレジスタである。ただし、SQPIレジスタ(300)からタイマーカウンタ(310)に出される信号では、タイマーカウンタ(310)の加算は停止させない。

0022

以上の動作が割り込み通知回数を抑制するときの基本動作である。
以上の動作を、各部の動作ごとに詳細に説明する。

0023

図2と図3を用いてドライバソフトウェア(201)の動作を説明する。ドライバソフトウェア(201)は、OSから入出力の処理要求が到着し、CPU(200)の制御権を渡された時点、または割り込み通知が到着した時点から処理が開始される。以降で動作説明文先頭に記載されている番号は、図中の番号と対応している。以下のドライバソフトウェア(201)の動作シーケンスの説明では、CPU(200)が、主記憶装置(210)に格納したドライバソフトウェア(201)を読みだして、ドライバソフトウェア(201)の機能を実行する動作を示す。
(1000)OSから入出力処理要求が到着し、CPU(200)の制御権が渡される。
(1001)入出力命令(221)を作成し、主記憶装置(210)に確保された特定領域(220)に書き込む。
(1002)入出力装置(100)に対して新たな命令を発行したことを通知するためにSQPIレジスタ(300)に対して書き込みを行う。
手順(1011)に進む。
(1010)入出力装置(100)から割り込み通知が到着し、OSからドライバソフトウェア(201)に対してCPUの制御権が渡される。
手順(1011)に進む。
(1011)主記憶(210)上に確保されている入出力完了通知を格納する領域(230)をチェックする。
(1012)主記憶(210)上の完了通知格納領域(230)に未処理の入出力完了通知(231)が存在する場合、手順(1103)に進む。未処理の入出力完了通知(231)が存在しない場合、手順(1020)に進む。
(1013)主記憶(210)上の入出力完了通知格納領域(230)に格納されている未処理の完了通知(231)を1つ読み込み、OS依存の方法に則って完了処理を行う。
(1014)入出力装置(100)のCQCIレジスタ(301)に対して書き込みを行い、完了通知(231)の処理が終わったことを入出力装置(100)に通知する。
手順(1011)に進む。CQCIレジスタは、Completion Queue Consumer Index registerの略称であり、入出力命令に対する入出力装置からの完了通知を処理したことをCPUから入出力装置に対して通知するためのレジスタである。
(1020)CPU(200)の制御権をOSに返す。

0024

図2と図4を用いて入出力装置制御部(110)の動作を説明する。
(1100)CPU(200)からSQPI(300)レジスタに対して書き込みが行われたことを検出する。
(1101)主記憶装置(210)に確保されている入出力命令格納領域(220)から入出力命令(221)を1つ読み込む。
(1102)入出力命令(221)を処理する。
(1103)入出力処理が完了したら手順(1104)に進む。
未完了の場合、手順(1103)を繰り返す。
(1104)入出力完了通知(231)を作成する。
(1105)入出力完了通知格納領域(230)に空きがある場合は手順(1106)へ進む。
空きがない場合は手順(1120)へ進む。
(1106)主記憶装置(210)確保された入出力完了通知格納領域(230)の空き領域に入出力完了通知(231)を書き込む。
(1107)カウンタ加算開始の指示をタイマーカウンタ(310)に指示する。
(1108)入出力処理を完了する。
(1120)完了通知格納領域(230)の開放処理が終了するまで待機する。
手順(1105)へ進む。
(1130)CPU(200)からCQCIレジスタ(301)に対して書き込みが行われたことを検出する。
(1131)CPU(200)によって処理済みとなった完了通知(231)が格納されていた領域を開放する。
(1132)完了通知格納領域(230)の中に未処理の完了通知(231)が存在する場合には手順(1134)へ進む。未処理の完了通知(231)が存在しない場合には手順(1133)に進む。
(1133)タイマーカウンタ(310)をリセットし、加算停止を指示する。
(1134)完了通知格納領域(230)の開放処理を終了する。

0025

図1と図5を用いてタイマーカウンタ(310)を含む割り込み通知頻度抑制機能全体の動作シーケンスを説明する。
(1200)初期化完了または完了キューを作成するコマンドの実行完了に伴って完了キューの動作が開始される。
(1201)カウンタ加算開始信号が到着した場合、手順(1202)へ進む。
到着していない場合、手順(1201)を繰り返す。
(1202)クロック生成部(130)から信号が到着した場合、手順(1210)へ進む。
到着していない場合、手順(1203)へ進む。
(1203)カウンタ加算停止信号が到着した場合、手順(1213)へ進む。
到着していない場合、手順(1204)へ進む。
(1204)SQPIレジスタ(300)への書き込みがあった場合、手順(1214)へ進む。
書き込みがなかった場合、手順(1202)へ進む。
(1210)タイマーカウンタ(310)を1加算する。
(1211)タイマーカウンタ(310)の値が閾値レジスタ(311)と一致した場合、手順(1212)へ進む。
不一致の場合、手順(1203)へ進む。
(1212)割り込み通知信号をCPU(200)に対して送出する。
(1213)タイマーカウンタ(310)をリセットする。
手順(1201)へ進む。
(1214)タイマーカウンタをリセットする。
手順(1202)へ進む。

0026

本実施例によれば、割り込み通知のみで入出力処理の完了を通知した場合に比べて、割り込み通知の頻度を抑制することができる。特に、あらかじめ設定する待機時間よりも短い間隔でドライバから入出力命令の発行が行われる場合、割り込み通知の送信は常に遅延される状態となり、割り込み通知を送信せずに入出力処理を進めることが可能な状態となる。これにより、従来では割り込み処理の負荷が問題となっていた高頻度で入出力命令を処理する状態になった場合、割り込み処理を行うことなく入出力動作を完了することが可能となる。

0027

また、待機時間の設定値単発の入出力処理の遅延時間に影響を与えるが、本発明では、待機時間は入出力処理の発行間隔より長いときに大きな効果を得られるため、入出力命令の発行が高頻度の時に対象を定めて短い待機時間を設定すれば、単発入出力処理の遅延時間悪化を最小限に抑えることができる。

0028

本発明を、CPU(200)と入出力装置(100)の間で、複数の独立した入出力命令格納領域(220)と入出力完了通知格納領域(230)を用いた場合で実施した例を示す。なお、入出力命令格納領域(220)の数と入出力完了通知格納領域(230)の数は一致しなくてもよい。以降では、入出力命令格納領域(220)を発行キュー、入出力完了通知格納領域(230)を完了キューと呼ぶ。

0029

主記憶上装置(210)に複数の発行キュー(220)と完了キュー(230)が存在している状態を図6に示す。発行キューと完了キューは、ともに論理番号空間上で無効領域と有効領域が連続しており、それらの境界がPI(331)またはCI(330)によって示され、始点と終点連結されて循環境界条件を満たす、図7に示すようなリングバッファによって構成されているものとする。PI(331)およびCI(330)は発行キュー(220)と完了キュー(230)の両方に2つずつ存在する。この4つのポインタのうち、発行キュー(220)のPI(331)を入出力装置内のSQPI(300)に格納し、完了キュー(230)のCI(331)を入出力装置内のCQCI(301)に格納する。それ以外のポインタについては、主記憶装置(210)上の適切な位置に配置する。

0030

ある発行キュー(220)に投入した入出力命令(221)に対応する完了通知(231)をどの完了キュー(230)から受け取るのかは、ドライバソフトウェア(201)から入出力装置(100)に対して、入出力装置(100)の初期化時に指定するか、または発行キュー(220)の動作を開始させることを入出力装置(100)に指示するときの管理コマンドによって指定する。

0031

入出力装置(100)は、CPU(200)に対して割り込み方式によって完了通知(231)の処理を要求するときに、処理が必要な完了キュー(230)をCPU(200)が一意判別可能となるように、PCI-express規格(PCI expressは、Peripheral Component Interconnect Special Interest Group(PCI-SIG)の商標である。)で定義されているMSI(Message Signaled Interrupts)またはMSI-X(Message Signaled Interrupts extended)を用いる。MSIおよびMSI-Xは、CPU(200)側が設定した特殊なメモリアドレスに、入出力装置(100)が書き込み動作を行うことで割り込み処理要求が発生したことをCPU(200)に伝える仕組みであり、書き込み先アドレスを異なるものにすることで、CPU(200)は異なる要因で割り込み処理要求が発生していることを識別することが可能である。MSI/MSI-Xの割り込みは単に書き込み先のメモリアドレスの違いでしかないため、割り込み要因数が増加しても物理的な配線が増加することはない。

0032

本実施例では、完了キュー(230)が割り込み処理を要求するときに用いるMSI番号またはMSI-X番号を、ドライバソフトウェア(201)が入出力装置(100)の初期化時に指定するか、完了キュー(230)の動作開始を入出力装置(100)に指示するときの管理コマンドによって指定する。また、これらの情報を保持するためのMSI/MSI-X番号レジスタ(303)を入出力装置(100)の内部に配置する。

0033

複数の発行キュー(220)および完了キュー(230)を扱う入出力装置(100)の概略図を図8に示す。本実施例では、完了キューごとにタイマーカウンタ(310a,310b)、閾値レジスタ(311a,311b)、MSI/MSI-X番号レジスタ(303a,303b)、比較器(320a,320b)を搭載する。

0034

発行キュー(220)と完了キュー(230)の対応付け情報は発行・完了対応レジスタ(302a,302b)に保持しておき、この情報に基づいてタイマーカウンタ(310)リセット信号ルーティングスイッチ部 (140)が適切な完了キューのタイマーカウンタ(310)に対してリセット信号を送出する。

0035

タイマーカウンタの値が閾値に達し、割り込み通知を送信するとき、当該完了キューが使うべきMSIまたはMSI-Xのベクタ番号が格納されているMSI/MSI-X番号レジスタ(303)を参照し、割り込み番号を割り込み通知送信部(120)に送る。割り込み通知送信部(120)は指定された割り込み番号に基づいて算出された特殊なメモリアドレスへの書き込み動作を行うことによって、CPU(200)に対して割り込み通知を送信する。

0036

図9を用いて、複数の発行キュー(220)と完了キュー(220)が存在する場合のドライバソフトウェア(201)の挙動を説明する。本シーケンスでは一部OSの挙動も含んでいる。
(1000)OSから入出力処理要求が到着し、CPUの制御権が渡される。
(1001)入出力命令(221)を作成し、主記憶装置(210)に確保された特定領域(220)に書き込む。
(1002)入出力装置(100)に対して新たな命令を発行したことを通知するためにSQPIレジスタ(300)に対して書き込みを行う。
手順(1011)に進む。
(1030)入出力装置(100)から特定のMSI番号またはMSI-X番号に対して割り込み通知が到着する。
(1031)OSは割り込み通知で指定されたMSI番号またはMSI-Xに対応する割り込み処理関数ハンドラ)を呼び出す
手順(1011)に進む。
(1011)主記憶(210)上に確保されている入出力完了通知を格納する領域(230)をチェックする。
(1012)主記憶(210)上の完了通知格納領域(230)に未処理の完了通知(231)が存在する場合、手順(1103)に進む。未処理の完了通知(231)が存在しない場合、手順(1020)に進む。

0037

(1013)主記憶(210)上の完了通知領域(230)に格納されている未処理の完了通知(231)を1つ読み込み、OS依存の方法に則って完了処理を行う。
(1014)入出力装置(100)のCQCIレジスタ(301)に対して書き込みを行い、完了通知の処理が終わったことを通知する。
手順(1011)に進む。
(1040)OSからドライバソフトウェア(201)に対して入出力装置(100)初期化要求が到着する。
(1041)ドライバソフトウェア(201)はMSI番号またはMSI-X番号を確保し、確保した番号に関連づけて割り込み処理関数(ハンドラ)を設定する。
(1042)入出力装置(100)に対してMSI番号またはMSI-X番号を指定して、完了キュー(230)を作成する管理コマンドを送り、完了キュー(230)を生成する。
(1043)入出力装置に対して対応する完了キュー(230)番号を指定し、発行キュー(220)を作成する管理コマンドを送り、発行キュー(220)を生成する。
手順(1043)に進む。
(1020)CPU(200)の制御権をOSに返す。

0038

入出力装置制御部(110)のシーケンスは図4と変化しない。ただし、手順(1107)および手順(1133)において制御の対象となるタイマーカウンタ(310)は、入出力完了通知(231)が配置される完了キュー(230)に関連づけられたもののみが対象となる点が異なる。

0039

また、複数の発行キュー(220)に対して図4の手順は複数の入出力処理を実行する制御部(110)が並列に動作してもよい。複数の制御部が並列に発行キューを処理する場合、タイマーの開始信号またはリセット信号を送る対象となるタイマーカウンタ(310)は発行キュー(220)に関連づけられた完了キュー(230)に属するもののみとなる。

0040

図10を用いて複数キューが存在する場合の割り込み通知頻度抑制機能の動作シーケンスを述べる。図10は完了キューごとに行われる動作シーケンスを示している。
(1200)初期化完了または完了キューを作成するコマンドの実行完了に伴って完了キューの動作が開始される。
(1201)カウンタ加算開始信号が到着した場合、手順(1202)へ進む。
到着していない場合、手順(1201)を繰り返す。
(1202)クロック生成部(130)から信号が到着した場合、手順(1210)へ進む。
到着していない場合、手順(1203)へ進む。
(1203)カウンタ加算停止信号が到着した場合、手順(1213)へ進む。
到着していない場合、手順(1230)へ進む。

0041

(1210)タイマーカウンタ(310)を1加算する。
(1211)タイマーカウンタ(310)の値が閾値レジスタ(311)と一致した場合、手順(1220)へ進む。
不一致の場合、手順(1203)へ進む。

0042

(1213)タイマーカウンタ(310)をリセットする。
手順(1201)へ進む。
(1214)タイマーカウンタをリセットする。
手順(1202)へ進む。
(1220)MSI番号またはMSI-X番号をMSI/MSI-X番号レジスタ(303)から読み出して入出力装置制御部(110)に伝達する。
(1221)入出力装置制御部(110)は伝えられたMSI番号またはMSI-X番号を用いて、CPU(200)に対して割り込み通知を送出する。
手順(1213)へ進む。
(1230)カウンタリセット信号が到着した場合、手順(1214)へ進む。
到着していない場合、手順(1202)へ進む。

0043

図11を用いて、SQPIレジスタ(300)への書き込みを契機にタイマーカウンタをリセットする動作フローを説明する。
(1300)発行キュー(220)の動作を開始した。
(1301)SQPIレジスタ(300)の値が変化した場合、手順(1302)へ進む。
変化していない場合、手順(1301)を繰り返す。
(1302)更新された発行キュー(220)に関連づけられている完了キュー(230)の番号を完了キュー番号レジスタ(302)から読み出す。
(1303)特定された完了キュー(230)に対応づけられたタイマーカウンタ(310)に対してカウンタリセット信号を送る。
手順(1301)へ進む。

0044

図12に示すように、中央演算処理装置200を構成する2つのコア200のそれぞれに対応して、SQPIレジスタ300、CQCIレジスタ301を割り当てている。本実施例2では、発行キューをMSI番号またはMSI-X番号に対応させていることで、マルチコアの場合に、特定の完了キューにI/Oの処理が集中して、I/O処理ボトルネックが発生しないようにできる。

0045

ドライバソフトウェア(201)が、ある完了キュー(230)の状態を確認しにいったとき、完了キュー領域(230)に存在する入出力完了通知(231)を連続して処理するという動作をする場合、完了キュー領域にある完了通知をCPUが処理したことを入出力装置に伝えるためのCQCIレジスタ(301)も割り込み通知のタイミングを遅延させるために利用できる。

0046

CQCI(301)の値が更新されたとき、その直前に完了キュー(230)に書き込んだ入出力完了通知(231)が処理されている可能性があるため、割り込み通知の送出をしばらく停止してみることで割り込み通知頻度の抑制効果が見込める。

0047

CQCIレジスタ(301)は完了キュー(230)に一対一で関連づけられているため、このレジスタへの書き込みが検出された段階で対応する完了キュー(230)のタイマーカウンタ(310)をリセットすれば、一定時間完了通知の送出を遅延させる効果が得られる。この動作を実現するハードウェア概要を図12に示す。

0048

ドライバソフトウェア(201)、入出力装置制御部の動作フローは実施例2と同様である。割り込み通知頻度抑制機能の動作フローに図13のシーケンスを追加する。

0049

図13のCQCIレジスタ更新契機でのタイマーカウンタリセットの動作シーケンスについてフローを示す。
(1400)完了キュー(230)の動作を開始した。
(1401)CQCIレジスタ(301)の値が変化した場合、手順(1402)へ進む。
変化していない場合、手順(1401)を繰り返す。
(1402)CQCIレジスタ(301)に対応する完了キュー(230)に関連づけられたタイマーカウンタ(310)に対してカウンタリセット信号を送る。
手順(1401)へ進む。

0050

本実施例3によれば、CPU(200)が、一つの完了キュー(230)内の一つの入出力完了通知(231)を読むだけではなく、他の入出力完了通知が完了キュー(230)内に存在すれば、それら複数の入出力完了通知を、まとめて読みだすことが出来るためCPU(200)の負荷を減らすことができる。

0051

以上の実施例において、CPU(200)上で動作するOSから見た挙動について述べる。本発明が実施されている入出力装置(100)の挙動は、OSが提供する単位時間あたりの入出力処理数割り込み回数の統計情報から得ることができる。たとえば、Linux(Linus Torvaldsの米国およびその他の国における登録商標あるいは商標である。)では単位時間あたりの入出力処理数や割り込み回数を取得するためのインターフェイスをprocfsとして実装している。

0052

図14はOSのターミナル画面からprocfsを通して統計情報を可視化した例を示している。これらの情報を参照することで、本発明の動作について観察することが可能である。割り込み回数統計値表示画面(400)では、左の列から、割り込み番号、プロセッサごとの割り込み回数、割り込みを通知するデバイスの種類が示されている。入出力処理回数統計値表示画面(401)では、左の列からデバイス名、読み込み命令数、書き込み命令数が示されている。

0053

本発明では、入出力要求数が一定の頻度に達するまでは従来の入出力装置と同様に、単位時間あたりの入出力回数(図14中401)に対して単位時間あたりの割り込み回数(図14中400の変化量)は比例する関係にある。

実施例

0054

単位時間あたりの入出力回数が増加し、一定の閾値を超えると、単位時間あたりの割り込み回数(図14中400)の当該デバイスの割り込み回数が増加しない状態となる。この現象は本発明特有の挙動であり、本発明の実施状態を確認するための一助となる。

0055

コンピュータに接続する入出力装置を備えた情報処理装置において、入出力命令の実行完了を知らせるための割り込み信号の送出回数が、CPUに対して過大になることを防ぐために、本発明は、情報処理装置に広く適用することができる。

0056

100入出力装置
110 入出力装置制御部
120割り込み通知送信部
130タイマー用クロック生成部
140ルーティングスイッチ部
200中央演算処理装置(CPU)
210主記憶装置
240 主記憶装置への読み書き用データバス
300 SQPIレジスタ
301 CQCIレジスタ
310タイマーカウンタ
311タイマー閾値レジスタ
320 比較器

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する未来の課題

関連する公募課題

ページトップへ

おすすめの成長市場

関連メディア astavision

  • がん医療

    国立がん研究センターの統計予測は、2015年の国内全がん罹患者数を982,100人、同死亡数を370…

  • 高性能コンピュータ

    2015年4月、理化学研究所は新規のスーパーコンピュータシステム「HOKUSAI GreatWave…

  • 太陽光発電・太陽電池・人工光合成

    2015年4月30日、米国の電気自動車ベンチャーTesla Motors社や宇宙開発ベンチャーSpa…

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

新着 最近公開された関連が強い技術

この技術と関連性が強い人物

この技術と関連する未来の課題

関連する未来の課題一覧

この技術と関連する公募課題

公募課題一覧

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ