JP2019159713A - 演算処理装置、入出力処理装置、情報処理装置及び入出力処理方法。 - Google Patents

演算処理装置、入出力処理装置、情報処理装置及び入出力処理方法。 Download PDF

Info

Publication number
JP2019159713A
JP2019159713A JP2018044618A JP2018044618A JP2019159713A JP 2019159713 A JP2019159713 A JP 2019159713A JP 2018044618 A JP2018044618 A JP 2018044618A JP 2018044618 A JP2018044618 A JP 2018044618A JP 2019159713 A JP2019159713 A JP 2019159713A
Authority
JP
Japan
Prior art keywords
input
script
output
output processing
channel program
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.)
Granted
Application number
JP2018044618A
Other languages
English (en)
Other versions
JP6901138B2 (ja
Inventor
妙嶋 慎二郎
Shinjiro Taejima
慎二郎 妙嶋
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 Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2018044618A priority Critical patent/JP6901138B2/ja
Publication of JP2019159713A publication Critical patent/JP2019159713A/ja
Application granted granted Critical
Publication of JP6901138B2 publication Critical patent/JP6901138B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】情報処理装置の入出力処理の遅延を抑制する演算処理装置を提供する。【解決手段】演算処理装置10Xは、自装置の使用率が予め定められた閾値以下の場合、入出力処理に係るチャネルプログラムに含まれる論理アドレスを入出力処理装置が処理しやすい形式にアドレス変換したスクリプトを作成するスクリプト作成部10X1を備える。【選択図】図25

Description

本発明は、演算処理装置、入出力処理装置、情報処理装置及び入出力処理方法に関する。
サーバやメインフレーム等の情報処理装置に搭載されたEPU(Execution Processing Unit)やCPU(Central Processing Unit)等の演算処理装置は、ソフトウェアからの各種指示を処理するためのファームウェアを内蔵している。このファームウェアには、ソフトウェアが作成したチャネルプログラムに基づいて入出力処理装置にメインメモリと周辺装置との間の入出力を指示する入出力発行処理が含まれている。
また、情報処理装置は、演算処理装置とは別に周辺装置との間の入出力処理を行う入出力処理装置を備えている。入出力処理装置は、ファームウェアとそれを実行するためのプロセッサを備えている。このファームウェアにも、演算処理装置からの入出力指示を処理する入出力処理が含まれている。これら入出力処理装置のプロセッサおよびファームウェアは、ソフトウェアが作成したチャネルプログラムを実行して、周辺装置との入出力処理を行う。これにより、演算処理装置の入出力処理に関する負荷を低減させている。
関連する技術として、特許文献1には、主記憶装置と入出力処理装置とを高速なインタフェースで接続し、中央処理装置と入出力処理装置とを信号線で接続した入出力制御システムを備えた情報処理装置が開示されている。この入出力制御システムを用いると、中央処理装置が主記憶装置に書込んだチャネルプログラムを、中央処理装置からの指示信号により、高速なインタフェースを介して入出力処理装置が読み出して実行する。これにより、低速なメモリバスを介して中央処理装置と主記憶装置とが接続された情報処理装置に対しても、メモリバスのデータ転送能力よりも高速な性能を有する入出力装置が接続可能となる。
また、特許文献2には、仮想計算機(VM:virtual machine)が稼働する情報処理装置においてアドレス変換を行うことが開示されている。より具体的には、特許文献2に記載のアドレス変換方式では、VMが作成したアドレス変換テーブルを入出力装置に設ける。そして、入出力装置は、このアドレス変換テーブルを参照することによりチャネルプログラムを直接実行する。その為、VMがアドレス変換を行うことなく、入出力処理のオーバーヘッドを低減することができる。
特開平6−149714号公報 特開平1−154264号公報
上記のように、チャネルプログラムを入出力装置が実行するのは、演算処理装置の処理負荷を低減し、演算処理装置の処理効率を向上させるためである。しかし、近年では、演算処理装置と入出力処理装置の間のI/Fがシリアル化され、入出力処理装置からメインメモリへのアクセスに要するレイテンシが遅くなる傾向がある。入出力処理装置のプロセッサは、メインメモリからチャネルプログラムを読み出して、アドレス変換しながら入出力処理を行う。この処理は、入出力処理装置にとってオーバーヘッドが大きく、入出力処理の遅延の原因となる。特許文献1、2には、この遅延を解決する手段が開示されていない。
そこでこの発明は、上述の課題を解決する演算処理装置、入出力処理装置、情報処理装置及び入出力処理方法を提供することを目的としている。
本発明の一態様によれば、入出力処理に係るチャネルプログラムに含まれる論理アドレスを、入出力処理装置が処理しやすい形式にアドレス変換したスクリプトを作成するスクリプト作成部、を備える演算処理装置である。
本発明の一態様によれば、入出力処理に係るチャネルプログラムに含まれる論理アドレスをアドレス変換したスクリプトを取得し、前記スクリプトを実行することにより入出力処理を行うスクリプト実行部、を備える入出力処理装置である。
本発明の一態様によれば、上記の演算処理装置と、上記の入出力処理装置とを備える情報処理装置である。
本発明の一態様によれば、 入出力処理に係るチャネルプログラムに含まれる論理アドレスを、入出力処理装置が処理しやすい形式にアドレス変換したスクリプトを作成するステップと、前記スクリプトを実行することにより入出力処理を行うステップと、を有する入出力処理方法である。
本発明の入出力処理によれば、情報処理装置の入出力処理の遅延を抑制することができる。
本発明の第一実施形態による情報処理装置の構成の一例を示す図である。 本発明の第一実施形態による情報処理装置の構成の他の例を示す図である。 本発明の第一実施形態によるチャネルプログラムの構造の一例を示す図である。 本発明の第一実施形態によるチャネルプログラムヘッダの構造の一例を示す図である。 本発明の第一実施形態によるチャネルコマンドエントリの構造の一例を示す図である。 本発明の第一実施形態によるチャネルコマンドの一例を示す図である。 本発明の第一実施形態によるチャネルプログラムを修飾するフラグの一例を示す図である。 本発明の第一実施形態によるアドレス変換処理の一例を説明する第1の図である。 本発明の第一実施形態によるアドレス変換処理の一例を説明する第2の図である。 本発明の第一実施形態によるアドレス変換処理の一例を説明する第3の図である。 本発明の第一実施形態によるアドレス変換処理の一例を説明する第4の図である。 本発明の第一実施形態によるチャネルプログラムのアドレス変換処理を説明する第1の図である。 本発明の第一実施形態によるチャネルプログラムのアドレス変換処理を説明する第2の図である。 本発明の第一実施形態によるスクリプトヘッダの構造の一例を示す図である。 本発明の第一実施形態によるスクリプトエントリの構造の一例を示す図である。 本発明の第一実施形態によるスクリプトコマンドの一例を示す図である。 本発明の第一実施形態によるスクリプトエントリを修飾するフラグの一例を示す図である。 本発明の第一実施形態によるスクリプトの一例を示す図である。 本発明の第一実施形態による入出力処理の一例を示すフローチャートである。 待ち行列の平均待ち時間の算出式を示す図である。 待ち行列の平均応答時間の算出式を示す図である。 本発明の第二実施形態による入出力処理応答時間の一例を示す図である。 本発明の第二実施形態による入出力処理の一例を示す第1のフローチャートである。 本発明の第二実施形態による入出力処理の一例を示す第2のフローチャートである。 本発明の各実施形態による演算処理装置の最小構成を示す図である。 本発明の各実施形態による入出力処理装置の最小構成を示す図である。 本発明の各実施形態による情報処理装置の最小構成を示す図である。
<第一実施形態>
以下、本発明の第一実施形態による情報処理装置について図1〜図19を参照して説明する。
図1は、本発明の第一実施形態による情報処理装置の構成の一例を示す図である。メインフレーム等の情報処理装置1は、図1に示すように演算処理を行うEPUモジュール100と、入出力処理を行うIOP(Input-Output Processor)モジュール(入出力処理装置)200と、を備える。EPUモジュール100とIOPモジュール200とは、PCI Express(PCIeともいう)5000のような高速なI/F(インタフェース)によって接続されている。
EPUモジュール100には、ソフトウェアからの指示に従い処理を行うEPU(演算処理装置)101〜104と、ソフトウェアの指示や処理すべきデータを格納する主記憶装置であるメインメモリ105−0およびメインメモリ105−1と、EPU101〜104とIOPモジュール200等とを接続するためのBusI/F107と、他のEPUモジュールを接続するためのNodeI/F108と、これらを接続する内部Bus109とを備えている。メインメモリ105−0およびメインメモリ105−1を総称して、メインメモリ105と記載する。
IOPモジュール200は、補助記憶装置であるディスク装置などの周辺装置とメインメモリ105との間の入出力を制御する装置である。IOPモジュール200は、BusI/F107を介してEPUモジュール100と接続されている。
IOPモジュール200は、IOC(Input-Output Controller)201と、プロセッサ202と、ローカルメモリ203と、PCIeカード204〜207と、を備える。IOC201は、PCIeカード204〜207およびローカルメモリ203と、メインメモリ105との間の入出力を制御するためのIOコントローラである。IOC201は、EPUモジュール100に接続するためのI/Fを含んでいる。プロセッサ202は、EPU101〜104からの入出力指示に従い、PCIeカード204〜207およびIOC201を制御して入出力を処理する。ローカルメモリ203は、プロセッサ202が実行するファームウェアと入出力制御で必要となるデータを格納する。PCIeカード204〜207は、IOPモジュール200と周辺装置とを接続するためのHBA(Host Bus Adapter)やNIC(Network Interface Card)等である。
IOPモジュール200では、EPU101〜104からの指示に従って、プロセッサ202上でファームウェアが動作し、IOC201とPCIeカード204〜207を制御して周辺装置とメインメモリ105との間の入出力を制御する。
EPU101〜104は、ソフトウェアからの指示により周辺装置とメインメモリ105の間の入出力を行うにあたり、対応するIOPモジュール200に対して入出力の開始を指示する。また、IOPモジュール200は、EPU101〜104が指示した入出力が終了すると、その終了をEPU101〜104に報告する。EPU101〜104とIOPモジュール200の間のやり取りは、IOC201内レジスタへの書き込みやEPU101〜104への割込みによる通知によって行われる。
本実施形態では、図1に示すEPUモジュール100の構成を例に説明を行うが、EPUモジュール100が備える各装置(EPU101〜104やメインメモリ105等)の個数は図1に示す構成に限定されない。
図2は、本発明の一実施形態による情報処理装置の構成の他の例を示す図である。
図2において、EPUモジュール100は、NodeI/F108を介して、他のEPUモジュール110,120,130と接続されている。EPUモジュール100は、複数のIOPモジュール200,210,220,230を接続することが可能である。EPUモジュール110は、複数のIOPモジュール300,310,320,330を接続することが可能である。EPUモジュール120,130についても同様である。
本実施形態では、図2の例のようにEPUモジュール100に4台のIOPモジュール200,210,220,230を接続できるものとして説明する。しかし、EPUモジュール1台あたりに接続するIOPモジュールの台数は任意であり、4台以上でも良いし、3台以下でもよい。
次にEPUモジュール100等によって実行されるソフトウェアが作成するチャネルプログラム10について説明する。チャネルプログラム10は、EPU101〜104の負荷を軽減するため、IOPモジュール200のプロセッサ202およびファームウェアが処理する。
図3は、本発明の第一実施形態によるチャネルプログラムの構造の一例を示す図である。
図3に示すようにチャネルプログラム10は、先頭にチャネルプログラムヘッダ(CPH)10−0を有し、それに続き個々に指示が記載されたチャネルコマンドエントリ(CCE)10−nが続く構成を有している。
図4は、本発明の第一実施形態によるチャネルプログラムヘッダの構造の一例を示す図である。
図に示すようにCPH10−0は、16byteの固定長で、最初の4byteに入出力指示を行うチャネル番号10−0−1が格納される。チャネル番号10−0−1は、入出力を行う周辺装置を指定する値である。チャネル番号10−0−1は、例えば、IOPモジュール200の接続位置や、PCIeカード204〜207の実装位置などを示す番号である。5〜16byteには0が格納される。
図5は、本発明の第一実施形態によるチャネルコマンドエントリの構成の一例を示す図である。
CCE10−nは、16byteの固定長であり、指示の内容を示すコマンド10−n−1と、コマンドやチャネルプログラムを修飾するフラグ10−n−2、データ転送の転送長を示すカウント10−n−3、メインメモリ105上のデータ転送元やデータ転送先を示すアドレス10−n−4が格納される。
図6は、本発明の第一実施形態によるチャネルコマンドの一例を示す図である。
図6の項番1と項番2に示すコマンドは、データ転送を開始する前に周辺装置に対し、制御データを設定するためのコマンドである。これらのコマンドの場合、CCE10−nのアドレス10−n−4には、制御データを格納しているメインメモリ105上の論理アドレスを格納する。これらのコマンドでは、IOPモジュール200は、メインメモリ105から制御データを読み出して、制御データを周辺装置に設定する処理を行う。これらのコマンドはデータ転送前のディスク上のアクセス位置の決定などに使用される。
項番3と項番4に示すコマンドは、周辺装置とメインメモリ105の間のデータ転送を指示するコマンドであり、転送方向別にコマンドが分かれている。CCE10−nのアドレス10−n−4には、メインメモリ105上の転送元または転送先の論理アドレスが格納される。IOPモジュール200は、これらの論理アドレスを元にIOC201とPCIeカード204〜207等を制御してデータ転送を実行する。なお、図6に示すコマンドは一例であり、処理系によって異なる場合がある。
図7は、本発明の第一実施形態によるチャネルプログラムを修飾するフラグの一例を示す図である。
図7にCCE10−nのフラグ10−n−2の例を示す。各bitが0か1かで意味を持つようになっている。例えば、項番1に示すフラグは、bit0が、チャネルプログラム中のCCEが継続しているかどうかを示すフラグである。bit0が、1の場合は次のCCEが存在することを示し、0の場合は現CCEが最終のCCEであることを示している。
チャネルプログラム10の構造は、情報処理装置の仕様によって異なり、CPH10−0やCPE10−nの構造、コマンド10−n−1およびフラグ10−n−2の意味も様々である。また、CCE10−nは、チャネルコマンドワード(CCW)と呼ばれる場合がある。本実施形態では、図3〜図6で例示した用語や構造を用いて説明する。
図8は、本発明の第一実施形態によるアドレス変換処理の一例を説明する第1の図である。
情報処理装置1で動作するソフトウェアは、メモリ保護のため、メインメモリ空間を論理アドレス空間と実アドレス空間に分けて処理する。図8にセグメント方式とページング方式を合わせたページ化セグメンテーション方式の概要を示す。ページ化セグメンテーションでは、メインメモリ空間をセグメントと呼ばれる任意のサイズの領域に分割し、さらにセグメント内をページと呼ばれる固定長の空間に分割して管理する。
図9は、本発明の第一実施形態によるアドレス変換処理の一例を説明する第2の図である。
図9にページ化セグメンテーション方式における論理アドレス空間1000と、実アドレス空間3000との対応を示す。論理アドレス空間1000は、複数のセグメント1000−nに分割される。さらに1つのセグメント1000−nは、複数のページ2000−mに分割されている。そして、論理アドレス空間1000上の各ページ2000−mは、実アドレス空間3000上の各ページ3000−pに対応している。論理アドレス空間1000上では、セグメント1000−nと、ページ2000−mは、連続したアドレス空間となるが、対応する実アドレス空間3000上のページ3000−pは、論理アドレス空間1000と異なり不連続となる場合がある。
図10は、本発明の第一実施形態によるアドレス変換処理の一例を説明する第3の図である。
論理アドレス空間1000におけるアドレス形式は、図10に示すように表現される。このアドレス形式では、論理アドレス空間1000の上位bit列のSTE1100が、論理アドレス空間1000におけるセグメント1000−nの位置を示す。中位bit列のPTE2100は、STE1100の示すセグメント1000−n中のページ2000−mの位置を示す。下位bit列のRPA3100は、PTE2100の示すページ2000−m中の相対位置を示す。STE1100、PTE2100、RPA3100の各bit列の長さは各セグメントとページの大きさに依存する。例えば、ページサイズが4KBの場合、RPA3100は12bitになる。本実施形態では、特にページサイズは規定しない。
図11は、本発明の第一実施形態によるアドレス変換処理の一例を説明する第4の図である。
図11に、図10に示すアドレス形式から実アドレスを求める際に使用するアドレス変換テーブルを示す。このアドレス変換テーブルは、入出力処理を要求するソフトウェアによって作成される。メモリ保護単位であるプロセス毎の論理アドレス空間を管理するため、アドレス変換テーブルは、論理アドレス空間を区別するアドレス空間番号表1を有している。アドレス空間番号表1には、空間番号nごとに固定長のエントリ1−nを有し、そのエントリ1−n内にはその空間に属するセグメントを識別するセグメント記述子表2への実アドレスが格納される。セグメント記述子表2には、セグメント毎に固定長のセグメント記述子(SD)2−mが格納される。セグメント記述子2−mは、セグメント番号順に格納され、そのセグメントに属するページを識別するページ記述子表3への実アドレスやセグメントのアクセス許可フラグが格納される。ページ記述子表3には、ページ毎に固定長のページ記述子(PD)3−pが格納される。ページ記述子3−pには、ページ番号順にページ記述子表3に格納され、そのページに対応する実アドレス空間上のページ3000−pの実アドレスやページのアクセス許可フラグ等を格納される。
図10に示す論理アドレスから実アドレスを算出する場合、図11のアドレス変換テーブルを使用して次のように算出する。例えば、論理アドレスの属する空間番号が0の場合、EPU101は、まず、論理アドレスの属する空間番号0を使用して、アドレス空間番号表1のエントリ1−0を求めて読み出す。アドレス空間番号表1のエントリは固定長なので空間番号0にエントリのサイズを乗ずることでエントリ1−0の実アドレスを算出することが出来る。次に、EPU101は、読み出したエントリ1−0からセグメント記述子表2の実アドレスを取得し、その実アドレスにSTE1100とセグメント記述子のサイズを乗じた値を加算した実アドレスよりセグメント記述子2−2を読み出す。
次にEPU101は、セグメント記述子2−2からページ記述子表3の実アドレスを取得し、そのアドレスにPTE2100とページ記述子のサイズを乗じた値を加算した実アドレスよりページ記述子3−2を読み出す。そして、EPU101は、読み出したページ記述子3−2よりページの実アドレスを取得し、その実アドレスにRPAを加算した値が目的のアドレス3000−xとなる。
通常、ソフトウェアは、最初にアドレス空間番号表1の先頭の実アドレスをEPU101〜104の特定レジスタに設定するだけである。アドレス変換は、EPU101〜104内のハードウェアによって実現される。図8〜図11を用いて説明したアドレス変換処理は、EPU101等のプロセッサで行われる一般的な処理である。また、例えば、ソフトウェアの指示により、入出力処理を行う場合、IOPモジュール200は、チャネルプログラム10を実行するために、このようなアドレス変換処理を実行する。ここでチャネルプログラム10の説明に戻る。
図12は、本発明の第一実施形態によるチャネルプログラムのアドレス変換処理を説明する第1の図である。
図12にソフトウェアの論理アドレス空間pとチャネルプログラム10の論理アドレスの関係を示す。ソフトウェアによって作成されるチャネルプログラム10は、図12に示すようにソフトウェアの属する論理アドレス空間pにおける論理アドレスで指定される。チャネルプログラム10の先頭アドレスや各CCE10−nにおけるデータアドレスも全て論理アドレス空間pにおける論理アドレスで指定される。上記のように、データ転送領域は、論理アドレス空間では連続空間であったとしてもページやセグメント境界を跨ぐことによって実アドレス空間では不連続になっている場合がある。
図12のチャネルプログラム10の詳細を図13に示す。
図13は、本発明の第一実施形態によるチャネルプログラムのアドレス変換処理を説明する第2の図である。
CPH10−0には、入出力処理を要求する周辺装置等のチャネル番号が格納されている。CPH10−0に続くCCE10−1は、周辺装置に制御データBを設定するコマンドである。CCE10−1には、制御データBのカウントと制御データBを格納しているメインメモリ105上の論理アドレスが格納される。次にCCE10−2が存在するので、フラグの値は0x80である(図7)。
次のCCE10−2は、制御データCを周辺装置に設定するコマンドであり、上記と同様に制御データCのカウントと制御データCを格納しているメインメモリ105上の論理アドレスが格納される。また、フラグは次にCCE10−3が存在するため0x80になっている。次のCCE10−3は、周辺装置にデータ転送するCCEで転送データを格納しているメインメモリ105上の論理アドレスと転送カウントNが格納される。また、本CCE10−3でチャネルプログラム10が終了するのでフラグは0x00になっている。
図13に例示するチャネルプログラム10は、EPU101〜104の指示によりIOPモジュール200が実行する。EPU101〜104は、チャネルプログラム10の先頭の論理アドレスとチャネルプログラム10が属する論理アドレス空間番号pを指定して、IOPモジュール200へ入出力を指示する。IOPモジュール200は、メインメモリ105に対して論理アドレスで直接アクセスすることが出来ない。従って、IOPモジュール200は、空間番号pに基づいて上記の手順で論理アドレスを実アドレスに変換してチャネルプログラム10を読み出して処理する。この様にIOPモジュール200でチャネルプログラムのアドレス変換を行うことをチャネルDAT(dynamic address translation)と言う。チャネルDATは、メインフレームのような情報処理装置では一般的に使用されている。
IOPモジュール200は、各CCE10−1〜10−3に格納されている論理アドレスに対しても、同様にアドレス変換を行ってデータの読み出しや書き込みを行う。このとき、CCE10−1〜10−3の論理アドレスとカウントで指定されたデータ転送領域(10−1−d、10−2−d、10−3−d)が、ページやセグメント境界を跨ぐ場合がある。この場合、IOPモジュール200は、ページまたはセグメントごとにアドレス変換を行って論理アドレスを実アドレスに変換する処理を行う。さらにチャネルプログラム10のCPH10−0またはCCE10−1〜10−3の境界でもページまたはセグメントを跨ぐ場合がある。この場合にも、IOPモジュール200は、ページまたはセグメントごとにアドレス変換を行って読み出しを行う。
IOPモジュール200が、チャネルプログラム10を処理することにより、入出力処理をEPU101〜104からIOPモジュール200にオフロードすることができる。これにより、EPU101〜104の処理効率が向上する。しかし、EPUモジュール100とIOPモジュール200の間のI/Fのシリアル化(例えば、PCIeなど)によってIOPモジュール200からメインメモリ105へのアクセスレイテンシが、EPUモジュール100とIOPモジュール200との間をパラレル接続する場合に比べ遅くなってきている。IOPモジュール200でアドレス変換しながらチャネルプログラム10をメインメモリ105から読み出して処理することは、IOPモジュール200にとってオーバーヘッドが大きく、入出力処理の遅延の原因となる。これは、上記のようにチャネルプログラム10が論理アドレスで指定されるため、アドレス変換の為に何回もアドレス変換テーブルにアクセスする必要があるためである。
また、近年ではEPU101〜104の性能の向上により、EPU101〜104で入出力処理を実行しても情報処理装置全体の処理効率には、ほとんど影響が出なくなってきている。そこで本実施形態では、EPU101〜104が、チャネルプログラム10をIOPモジュール200の処理に適したスクリプト20に変換する。スクリプト20には、チャネルプログラム10に格納された論理アドレスの情報を、実アドレスに変換した値が格納される。
EPU101〜104は、スクリプト20を格納しているメインメモリ105上の実アドレスを指定して入出力処理を指示することができる。次にスクリプト20について説明する。
図14は、本発明の第一実施形態によるスクリプトヘッダの構造の一例を示す図である。
スクリプト20のスクリプトヘッダ20−0は、例えば、図14のように定義することができる。チャネル番号20−0−1は、入出力処理を指示するチャネル番号である。チャネル番号20−0−1は、CPH10−0のチャネル番号10−0−1と同じ値を格納する。スクリプトサイズ20−0−2には、スクリプトヘッダ20−0の先頭からスクリプトエントリ20−nの最後までのサイズをByte単位で格納される。
図15は、本発明の第一実施形態によるスクリプトエントリの構造の一例を示す図である。
スクリプト20のスクリプトエントリ20−nは、例えば、図15のように定義することができる。スクリプトエントリ20−nは、IOPモジュール200への指示内容を示すコマンド20−n−1と、コマンド20−n−1やスクリプト20全体を修飾するためのフラグ20−n−2と、コマンド20−n−1に対するデータを格納するデータ0〜2(20−n−4〜20−n−6)と、データのサイズを指定するカウント(20−n−3)と、から構成されている。
図16は、本発明の第一実施形態によるスクリプトコマンドの一例を示す図である。
図16に示す各コマンド20−n−1は、図6に示すチャネルプログラム10のコマンド10−n−1に対応している。
図16の項番1に示すコマンドは、データ転送を開始する前に制御データBを、周辺装置に対し設定するためのコマンドである。項番2に示すコマンドは、データ転送を開始する前に制御データCを、周辺装置に対し設定するためのコマンドである。スクリプトエントリ20−1のデータ0〜2(20−n−4〜20−n−6)には、制御データが格納されている。チャネルプログラム10の場合、CCE10−1には、制御データB,Cを格納するメインメモリ105上の論理アドレスが格納されるのに対し、コマンド20−n−1では、論理アドレスが指定する読み出すべき制御データが、データ0〜2(20−n−4〜20−n−6)に格納できるサイズの場合、EPU101等が当該データを読み出し、読み出した制御データを、データ0〜2(20−n−4〜20−n−6)に格納する。
項番3と項番4に示すコマンドは、周辺装置とメインメモリ105の間のデータ転送を指示するコマンドであり、転送方向別にコマンドが分かれている。メインメモリ105上の転送先および転送元の領域が実アドレスでデータ1〜2(20−n−5〜20−n−6)に指定される。また、カウント(20−n−3)には転送長がByte単位で指定される。
図17は、本発明の第一実施形態によるスクリプトエントリを修飾するフラグの一例を示す図である。
図17にスクリプトエントリ20−nのフラグ20−n−2の例を示す。フラグ20−n−2の意味はbit単位で示されており、項番1に示すフラグはスクリプト20が終了しているかどうかを示し、項番2に示すフラグはデータ転送が継続しているかどうかを示している。これは、論理アドレス空間におけるページおよびセグメント境界越えのある領域に対してデータ転送を行うときに実アドレス空間が不連続となる場合があるため、1個のCCE10−nで指定されたデータ転送を複数のスクリプトエントリ20−nに分解するために使用される。
図18は、本発明の第一実施形態によるスクリプトの一例を示す図である。
図18に、図12,13で示されるチャネルプログラム10を変換したスクリプト20を示す。先頭は、スクリプトヘッダ20−0で、出力処理を指示するチャネル番号とスクリプトサイズが格納される。図18の例では、スクリプトサイズは112byteなので、スクリプトサイズには、0x70が格納される。次のスクリプトエントリ20−1は、制御データBを周辺装置に設定する指示が格納される。スクリプトエントリ20−1のデータ0〜2には制御データBが格納され、カウントに制御データのサイズの0x0Cが格納される。また、フラグには次のスクリプトエントリ20−2が存在するため0x80が格納される。
次のスクリプトエントリ20−2は、制御データCを周辺装置に設定する指示が格納される。スクリプトエントリ20−2のデータ0〜2には制御データCが格納され、カウントには制御データCのサイズの0x0Cが格納される。また、フラグには次のスクリプトエントリ20−3が存在するため0x80が格納される。そして、次のスクリプトエントリ20−3は、メインメモリ105から周辺装置へのデータ転送を指示する。転送元の領域(データ転送領域10−3−d)が、図12のように4つのページまたはセグメントに分割されているため、実アドレスを指定してデータ転送を行うためにフラグを使用して4つのスクリプトエントリ20−3〜20−6に分かれて指示されている。
最初のスクリプトエントリ20−3のデータ転送指示は、データ転送領域の先頭から最初のページまたはセグメント境界までの転送を指示している。転送アドレスには、図12に示す論理アドレスDを実アドレスに変換したものが格納される。また、カウントにはデータ転送領域の先頭から最初のページまたはセグメント境界までのサイズnが格納され、フラグは次の継続したデータ転送が存在するため0x40が格納される。なお、スクリプト自体はこのデータ転送指示で終了なのでフラグのbit0には0が設定される。
次のスクリプトエントリ20−4、20−5は継続のデータ転送指示である。最初のページまたはセグメント境界から次のページまたはセグメント境界までの領域がデータ転送対象となる。そのため、スクリプトエントリ20−4、20−5の転送アドレスには最初のページまたはセグメント越えした論理アドレスに対する実アドレスが指定され、カウントには次のページまたはセグメントまでのサイズmが指定される。また、フラグも転送継続を示す0x40が格納される。
データ転送指示は、カウントが最後に到達するまで行う。スクリプトエントリ20−6では、最後のページまたはセグメント越えの論理アドレスに対する実アドレスが転送アドレスに格納され、カウントには最後のページまたはセグメント越えの領域の先頭からデータ転送領域の最後までのサイズが指定される。また、スクリプトエントリ20−6のフラグには0x00が格納されてデータ転送指示が終了することが示される。なお、論理アドレスがページまたはセグメント境界かどうかの判断は論理アドレスがRPA3100からPTE2100への桁上がり、またはPTE210からSTE1100への桁上がりによって判断できる。また、RPA3100からPTE2100への桁上がりはページ越えを示し、PTE2100からSTE3100への桁上がりはセグメント越えとなる。
第一実施形態では、情報処理装置1のEPU101〜104を、チャネルプログラム10をスクリプト20に変換する処理のみを行うEPUと、ソフトウェアからの指示を実行するEPUとで役割分担する。例えば、EPUモジュール100内のEPU101〜103がソフトウェアの指示を実行するEPUで、EPU104がEPUモジュール100に接続されているIOPモジュール200,210,220,230に対するチャネルプログラム10をスクリプト20に変換処理するEPUとする。EPU104をIOP用EPUと呼ぶ。IOP用EPUは4台のIOP分の変換処理を行う。
EPU101〜104は、各種処理を行うためのファームウェアを内蔵している。ソフトウェアからメインメモリ105と周辺装置との間の入出力をチャネルプログラム10によって指示されたとき、EPU101〜103はファームウェアを実行してIOP用EPU(EPU104)にチャネルプログラム10のスクリプト20への変換と、IOPモジュール200への入出力要求の発行を通信で指示する。IOP用EPU(EPU104)は、その指示を取得するとファームウェアを実行してチャネルプログラム10をスクリプト20へ変換する。EPU104は、変換後のチャネルプログラムヘッダ10−0のチャネル番号10−0−1に対応したIOPモジュール200に対してスクリプト20の実行を指示する。
次に第一実施形態の入出力処理の流れについて説明する。IOP用EPU(EPU104)が、他のEPU101〜103から入出力の指示を取得すると、図19に示す入出力発行処理(700)を実行する。図19は、本発明の第一実施形態による入出力処理の一例を示すフローチャートである。
この処理は、IOP用EPUに内蔵されたファームウェアの一部をEPU104が実行することにより実現される。ファームウェアは、チャネルプログラム10を読み出して、チャネルプログラム10に格納された各種の論理アドレスを実アドレスに変換するアドレス変換処理を行って、スクリプト20を作成する(703)。次にファームウェアは、作成したスクリプト20をメインメモリ105の任意の位置に格納する。次にファームウェアは、スクリプト20の実アドレスを指定してIOPモジュール200にスクリプト20の実行による入出力処理を指示する(704)。
なお、図14〜図18に例示するスクリプト20の形式は一例であって、これに限定されない。スクリプト20は、IOPモジュール200からのメインメモリ105へのアクセスが少なくなり、IOPモジュール200が処理し易い形式であればよい。
EPU101〜104等の一般的な演算処理装置は、自身のハードウェアにアドレス変換機能(例えばTLB等)を有している。その為、ソフトウェアおよびEPU101〜104に内蔵されるファームウェアは、この機能を利用して、チャネルプログラム10の論理アドレスを実アドレスに変換することが出来る。また、EPU101〜104の命令を実行することで論理アドレスから実アドレスを算出することもできる。チャネルプログラム10からスクリプト20への変換については、これらの機能を利用して行うことができる。本実施形態では、チャネルプログラム10からスクリプト20への変換処理の内容については特に限定しない。
スクリプト20を処理する方法と比べると、IOPモジュール200がチャネルプログラム10を処理する方法は、アドレス変換のためのメインメモリ105へのアクセスが多く発生する。図1、2で示すような現在の情報処理装置ではEPUモジュール100とIOPモジュール200の間のI/FはPCIe等によりシリアル化されていることが多く、IOPモジュール200からメインメモリ105へのアクセスは、スループットは高いが応答時間が遅い傾向がある。本実施形態によれば、IOP用EPU(EPU104)でチャネルプログラム10の論理アドレスを実アドレスに変換し、スクリプト20に変換する。これにより、IOPモジュール200でのアドレス変換処理に伴う、IOPモジュール200からメインメモリ105へのアクセスを減らし、IOPモジュール200のオーバーヘッドを削減することが出来る。
近年、コンピュータやサーバなどの情報処理装置で使用されるCPUやEPU等の演算処理装置の処理能力が向上している。これにより、例えば、人工知能の構築などが可能になってきている。一方、大量のデータを高速に処理する大規模な情報処理装置では、EPUやCPUの処理能力の向上に見合った入出力処理の向上も必要になる。特に応答性能を必要とするオンライントランザクション処理においては、情報処理装置が高負荷な状態であったとしても安定して処理するために入出力の応答時間がある一定以下の処理時間である必要がある。本実施形態の入出力処理方式を適用すれば、このような要求に対応することができる。
<第二実施形態>
以下、本発明の第二実施形態による情報処理装置について、図20〜図25を参照して説明する。第二実施形態に係る情報処理装置のうち、第一実施形態に係る情報処理装置と同じ構成には同じ符号を付し、それらの説明を省略する。
第一実施形態の方法では、IOP用EPU(EPU104)は、1台のEPUで4台分のIOPモジュール200の処理を行うことになる。ところで、待ち行列理論よりM/M/1の待ち行列における平均待ち時間は処理系の利用率と平均処理時間に基づき、図20に示す待ち行列の平均待ち時間の算出式で算出することができる。また、処理系の平均応答時間は、図21に示す待ち行列の平均応答時間の算出式で算出することができる。
IOP用EPU(EPU104)におけるチャネルプログラム10からスクリプト20への変換処理の平均処理時間を35μsとし、IOPモジュール200等におけるスクリプト20の平均処理時間を45μsとする。また、IOPモジュール200がチャネルプログラム10を処理したときの平均処理時間を100μsとしたとき、IOPモジュール200毎のIOPS(入出力回数)に基づいて平均応答時間を、図20と図21の式により算出すると図22に示す表のようになる。
図22は、本発明の第二実施形態による入出力処理応答時間の一例を示す図である。
IOP用EPU(EPU104)で、チャネルプログラム10をスクリプト20に変換してIOPモジュール200で入出力処理する場合の応答時間は、EPU応答時間とIOP応答時間の合計で算出することができる。この算出結果を「I/O応答時間(EPU有)」の列に示す。IOPモジュール200がチャネルプログラム10を処理する場合の応答時間を、「I/O応答時間(EPU無)」の列に示す(単位はμs)。
図22の表を参照すると、6000IOPS以上になるとIOPモジュール200がチャネルプログラム10を処理する方が、応答時間が速くなる。IOP用EPU(EPU104)によってチャネルプログラム10をスクリプト20に変換してIOPモジュール200に処理させるのはIOPモジュール200のオーバーヘッドを削減し、IOPモジュール200でチャネルプログラム10を実行するよりも応答時間を短縮させるためである。しかし、6000IOPSだと逆に遅くなってしまう。これは、1台のIOP用EPU(EPU104)で4台のIOPモジュール200等を処理しているためIOP用EPU(EPU104)の負荷が、IOPモジュール200等の負荷に対して高くなってしまい、平均待ち時間が長くなってしまうのが原因である。
このような状況を解決するにはIOPに対してEPUの台数を増やすことが考えられる。例えば、IOP用EPU(EPU104)を2台に増やせばEPU使用率は半分程度になるため平均待ち時間が削減され、応答時間が早くなる。つまり、第一実施形態の方法のまま、「I/O応答時間(EPU有)」の時間が、「I/O応答時間(EPU無)」より小さくなるようにIOP用EPUの個数を調節すればよい。
しかし、実際にはEPUの個数や構成の制限によりIOP用EPUを増やすことが出来ない場合がある。そこで、本発明ではIOP用EPU(EPU104)の使用率を監視し、IOPモジュール200がチャネルプログラム10を読み出して処理したほうが、応答時間が速くなるEPU使用率以上の場合、IOP用EPU(EPU104)がチャネルプログラム10をスクリプト20への変換する処理を行わず、IOPモジュール200に直接チャネルプログラム10の処理を指示することで、入出力応答時間の増加を防ぐ。
スクリプト20を作成するか否かを判定する使用率の閾値は、例えば、「I/O応答時間(EPU有)」の時間が、「I/O応答時間(EPU無)」より小さくなる最大のIOPSを選択し、その時のIOP用EPU(EPU104)の使用率を閾値に設定することができる。
図23は、本発明の第二実施形態による入出力処理の一例を示す第1のフローチャートである。
IOP用EPU(EPU104)が、他のEPU101〜103から入出力の指示を取得すると、入出力発行処理(700)を実行する。入出力発行処理(700)では、まず、IOP用EPU(EPU104)のファームウェアが、自EPU104の使用率を確認する(701)。使用率が所定の閾値(例えば、70%)以下ならば(702;Yes)、ファームウェアは、ソフトウェアが作成し、他のEPU101〜103によって指示されたチャネルプログラム10に対しアドレス変換処理を行って、スクリプト20を作成する(703)。次にファームウェアは、指定されたIOPモジュール200にスクリプト20による入出力処理の実行を指示する(704)。自EPU104の使用率が所定の閾値(例えば、70%)を上回る場合(702;No)、IOP用EPU(EPU104)のファームウェアはスクリプト20の作成を行わない。ファームウェアは、IOPモジュール200に直接チャネルプログラム10を実行するよう指示する(710)。より具体的には、ファームウェアは、EPU101〜103から指示されたチャネルプログラム10の論理アドレスと空間番号pを指定して、IOPモジュール200等にチャネルプログラム10による入出力処理を指示する。
また、IOPモジュール200は、IOP用EPU(EPU104)から入出力指示を受けた時にIOPモジュール200が内蔵するファームウェアに組込まれた入出力処理800を実行する。
図24は、本発明の第二実施形態による入出力処理の一例を示す第2のフローチャートである。
この入出力処理800は、IOPモジュール200内のプロセッサ202上で動作するファームウェアによって実現されている。入出力処理800では、IOPモジュール200が内蔵するファームウェアが、IOP用EPU(EPU104)からの入出力指示が、スクリプト20の実行を指示するものか、チャネルプログラム10の実行を指示するものかを確認する(801)。スクリプト20による指示ならば(802;Yes)、ファームウェアは、IOP用EPU(EPU104)に指示されたメインメモリ105上の実アドレスからスクリプト20を読み出して入出力処理を行う。一方、チャネルプログラム10による指示ならば(802;No)、ファームウェアは、IOP用EPU(EPU104)から指示されたメインメモリ105上の論理アドレスを実アドレスに変換しながら入出力処理を行う。
(スクリプト20を実行する場合)
スクリプト20による入出力処理の場合(802;Yes)、IOPモジュール200のファームウェアは、IOP用EPU(EPU104)によって指定された実アドレスに基づいて、スクリプトヘッダ20−0をメインメモリ105から読み出し、変数Pが示すローカルメモリ203上の位置に格納する(803)。なお、変数Pは入出力処理が開始される時点で適切に初期化されているものとする。
次にファームウェアは、スクリプトヘッダ20−0からチャネル番号20−0−1を取得し、処理するチャネルを特定する(804)。次にファームウェアは、スクリプトヘッダ20−0からサイズ20−0−2を取得してメインメモリ105の(実アドレス+16)byteの位置から(サイズ−16)byte分だけ読み出す(805)。ファームウェアは、ローカルメモリ203の変数Pに16を加算した位置に、読み出したスクリプト20のデータを格納する(806)。これにより、スクリプト20の全てがローカルメモリ203に読み出される。また、このとき変数Pは、スクリプトヘッダ20−0の位置を示している。
次にファームウェアは、変数Pに16を加算した変数Pが示すローカルメモリ203の位置から、スクリプトエントリ20−nを1個取り出し、対応する処理を行う(807)。処理内容は、コマンド20−n−1の内容によって異なる。例えば、図18のスクリプト20における制御データB、Cの設定の場合、カウント20−n−3の分だけデータ0〜2(20−n−4〜20−n−6)から制御データを読み出し、周辺装置に設定する処理を行う。次にファームウェアは、データ転送の指示に基づきIOC201やPCIeカード204〜207等を設定してメインメモリ105と周辺装置の間のデータ転送を起動する。また、スクリプト20の処理に対して待ち合せが必要な場合は、処理の終了を待ち合せる(808)。例えば、データ転送指示の場合、IOC201やPCIeカード204〜207等からのデータ転送終了の割込み信号を待ち合せることによりスクリプト20の処理終了を待ち合せる。そして、スクリプトエントリ20−nのフラグ20−n−2の値を参照してスクリプト20が終了したかどうか確認する(809)。スクリプト20が終了した場合(810;Yes)、EPU104に入出力処理の終了を報告する(811)。スクリプト20が終了していない場合(810;No)、807の処理に戻って次のスクリプトエントリ20−n+1を処理する。
(チャネルプログラム10を実行する場合)
チャネルプログラム10による入出力処理の場合(802;No)、IOPモジュール200のファームウェアは、IOP用EPU(EPU104)から指定されたチャネルプログラム10の論理アドレスAを変数A´に格納し、同じく指定された空間番号Pよりセグメント記述子2−mとページ記述子3−pを読み出して実アドレスA´´に変換する(820)。なお、IOPモジュール200は、アドレス空間番号表1の実アドレスを参照することができるのとする。アドレス変換方法は、図11等を用いて説明した通りである。次にファームウェアは、メインメモリ105の実アドレスA´´よりチャネルプログラムヘッダ10−nを読み出し、変数Pの示すローカルメモリ203の位置に格納する(821)。次にファームウェアは、読み出したチャネルプログラムヘッダ10−0からチャネル番号10−0−1を取得して、入出力処理を行う対象を特定する(822)。なお、変数Pは入出力処理の開始時に初期化されているものとする。
次にIOPモジュール200のファームウェアは、変数A´に16を加算し、変数A´の値を空間番号Pからセグメント記述子2−mとページ記述子3−pを読み出して実アドレスA´´に変換する(823)。次にファームウェアは、メインメモリ105の実アドレスA´´が示す位置からCCE10−nを1個読み出す。続いてファームウェアは、変数Pに16を加算し、ローカルメモリ203における変数Pの示す位置に、読み出したCCE10−nを格納する(824)。そして、読み出したCCE10−nに従って、対応する処理を行う(825)。このとき、ファームウェアはCCE10−nが転送系の指示の場合、CCE10−nに格納された論理アドレスBを空間番号Pよりセグメント記述子2−mとページ記述子3−pを読み出して実アドレスB´´に変換して転送処理を行う(826)。
例えば、図13のチャネルプログラム10において、制御データBを設定するCCE10−1は、出力転送系のCCEである。ファームウェアは、CCE10−1が示す論理アドレス10−1−4を図11等で説明した手順で実アドレスに変換し、カウント10−1−3の示すサイズ分だけメインメモリ105の実アドレスBの示す位置から制御データを読み出して周辺装置に設定する処理を行う。
また、CCE10−nのカウント10−n−3と論理アドレス10−n−4からメインメモリ105上の転送領域(10−n−d)で、ページまたはセグメント境界越えが有ると判断できる場合、ファームウェアは、ページまたはセグメント境界ごとにアドレス変換を行い、データ転送できるように実アドレスとカウントを算出する。ファームウェアは算出した実アドレスとカウントをIOC201やPCIeカード204〜207等に設定すし、処理を行う(827)。転送領域(10−n−d)にページまたはセグメント境界があるかどうかはCCE(10−n)で指定された論理アドレス(10−n−4)にカウント(10−n−3)を加算し、RPA3100からPTE2100への桁上げ、またはPTE2100からSTE1100への桁上げの有無により判断できる。ここで算出する情報は、図18のスクリプト20のデータ転送コマンド列(20−1〜20−6)と同様である。スクリプト20は、IOPモジュール200の処理に合わせたものなので同じ形になる。
そして、ファームウェアは、CCE10−nの処理に対して待ち合せが必要な場合は終了するまで待ち合わせを行う(828)。例えば、図13のようなメインメモリ105と周辺装置とのデータ転送を指示するCCEの場合、ファームウェアは、転送領域の論理アドレスを実アドレスに変換し、ページやセグメント越えの実アドレスとカウントをIOC201やPCIeカード204〜207等に設定してデータ転送を起動した後、ICO201やPCIeカード204〜207等からのデータ転送終了の割込みまでCCEの終了を待ち合せる。CCE10−nの処理が終了したらフラグ10−n−2からチャネルプログラム10が終了したかどうか確認する(829)。終了した場合(830;Yes)、IOP用EPU(EPU104)に入出力処理の終了を報告する(831)。終了しない場合(830;No)、823の処理に戻り、次のCCE10−n+1を読み出して処理を続ける。
本実施形態では、EPU104のファームウェアは、IOP用EPU(EPU104)が入出力指示を受けたときに自身の使用率を確認し、所定の使用率以下ならばチャネルプログラム10に基づいてスクリプト20を作成し、IOPモジュール200にスクリプト20の実行を指示する。所定の使用率を上回る場合、EPU104のファームウェアは、チャネルプログラム10の実行を直接IOPモジュール200に指示する。これにより、IOP用EPU(EPU104)の使用率が低い時は入主力処理の応答時間を短縮させることができ、IOP用EPU(EPU104)の使用率が高くなっても応答時間がIOPモジュール200,210,220,230の各々が単独で処理した場合の処理時間以上に増加することを防ぐことが出来るようになる。
<第三実施形態>
以下、本発明の第三実施形態による情報処理装置について説明する。第三実施形態に係る情報処理装置のうち、第一実施形態、第二実施形態に係る情報処理装置と同じ構成には同じ符号を付し、それらの説明を省略する。
第三実施形態では、入出力発行処理700を実行するEPUを、IOP用のEPU104に限定せず、全てのEPU101〜104で入出力発行処理700を行う。本実施形態の場合、ソフトウェアの指示を実行したときのEPUの使用率に入出力発行処理700の処理時間が含まれるため、入出力の平均応答時間のみの観点でスクリプト20を作成するかどうかを判断することが出来なくなる。
そのため、本実施形態では、EPU101〜104各々のファームウェアは、ソフトウェアの指示によるEPU使用率の観点でスクリプト20を作成するかどうかを決定する。例えば、ソフトウェアはプロセスという単位でいくつかの処理を並行して実行しており、それらの中でEPU101等は入出力発行処理を実行している。プロセスにも平均応答時間の概念が有り、EPU101の使用率が上昇すれば平均待ち時間が増加するため平均応答時間は増加し、プロセスを使用しているオンライントランザクション処理などは応答が遅延してしまう。また、EPU101の入出力発行処理700でチャネルプログラム10をスクリプト20に変換することはEPUの処理時間を使用することになり、ソフトウェアの指示によって使用されるべき処理時間を消費していることになる。このような場合、ソフトウェアの処理時間が遅延する可能性がある。その遅延に対応するため、EPU101等の使用率が所定の閾値以上になった場合は、そのEPUでは、入出力発行処理700でのスクリプト20の作成を行わず、IOPモジュール200等にチャネルプログラム10の処理をオフロードすることでプロセスの応答時間の増加を防ぐ。
本実施形態によれば、各EPUの負荷状態に応じて、スクリプト20による入出力処理を行うかどうかを決定する。これにより、ソフトウェアによる負荷が高いときにスクリプト20を作成するようなリスクがなく、EPU101等の使用率が低い時は入主力処理の応答時間を短縮させることができる。
図25は、本発明の各実施形態による演算処理装置モジュールの最小構成を示す図である。
図25に示すように演算処理装置10Xは、少なくともスクリプト作成部10X1を備える。スクリプト作成部10X1は、入出力処理に係るチャネルプログラムに含まれる論理アドレスを、入出力処理装置が処理しやすい形式にアドレス変換したスクリプトを作成する。より具体的には、スクリプト作成部10X1は、前記チャネルプログラムの先頭の論理アドレスおよびチャネルプログラムに含まれる全ての論理アドレスを実アドレスに変換してスクリプトを作成する。スクリプト作成部10X1は、自装置(演算処理装置10X)の使用率が予め定められた閾値以下の場合のみスクリプトを作成してもよい。
上記の第一実施形態〜第三実施形態におけるEPU104は、演算処理装置10Xの一例、EPU104が内蔵するファームウェアはスクリプト作成部10X1の一例である。
図26は、本発明の各実施形態による入出力処理装置の最小構成を示す図である。
図26に示すように入出力処理装置20Xは、少なくともスクリプト実行部20X1を備える。スクリプト実行部20X1は、入出力処理に係るチャネルプログラムに含まれる論理アドレスをアドレス変換したスクリプトを取得し、前記スクリプトを実行することにより入出力処理を行う。また、入出力処理装置20Xは、演算処理装置からスクリプトを取得した場合、スクリプト実行部20X1が、そのスクリプトを実行することにより入出力処理を行い、演算処理装置からチャネルプログラムを取得した場合、チャネルプログラムを実行することにより入出力処理を行う。
上記の第一実施形態〜第三実施形態におけるIOPモジュール200,210,220,230は、入出力処理装置20Xの一例、IOPモジュール200等が内蔵するファームウェアはスクリプト実行部20X1の一例である。
図27は、本発明の各実施形態による情報処理装置の最小構成を示す図である。
図27に示すように情報処理装置1は、演算処理装置10Xと入出力処理装置20Xとを備える。図25で説明したように演算処理装置10Xは、少なくともスクリプト作成部10X1を備える。スクリプト作成部10X1は、入出力処理に係るチャネルプログラムに含まれる論理アドレスを、入出力処理装置が処理しやすい形式にアドレス変換したスクリプトを作成する。図26で説明したように入出力処理装置20Xは、少なくともスクリプト実行部20X1を備える。スクリプト実行部20X1は、入出力処理に係るチャネルプログラムに含まれる論理アドレスをアドレス変換したスクリプトを取得し、前記スクリプトを実行することにより入出力処理を行う。
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。例えば、EPUはCPU、MPU、GPU等でもよい。
1・・・情報処理装置
100、110、120、130・・・EPUモジュール
101,102,103、104・・・EPU
105,105−0,105−1・・・メインメモリ
107・・・BusI/F
108・・・NodeI/F
109・・・内部Bus
200、210、220、230・・・IOPモジュール
201・・・IOC
202・・・プロセッサ
203・・・ローカルメモリ
204、205、206、207・・・PCIeカード
300、310、320、330・・・IOPモジュール
400、410、420、430・・・IOPモジュール
5000・・・PCIe
10・・・チャネルプログラム
10−0・・・CPH
10−n・・・CCE
20・・・スクリプト
20−0・・・スクリプトヘッダ
20−n・・・スクリプトエントリ
20−n−1・・・コマンド
20−n−2・・・フラグ
20−n−3・・・カウント
20−n−4〜6・・・データ

Claims (10)

  1. 入出力処理に係るチャネルプログラムに含まれる論理アドレスを、入出力処理装置が処理しやすい形式にアドレス変換したスクリプトを作成するスクリプト作成部、
    を備える演算処理装置。
  2. 自装置の使用率が予め定められた閾値以下の場合、前記スクリプト作成部が作成した前記スクリプトによる入出力処理の実行を前記入出力処理装置に指示し、
    前記使用率が予め定められた閾値を上回る場合、前記入出力処理装置に前記チャネルプログラムの実行を指示する、
    請求項1に記載の演算処理装置。
  3. 所定の処理の平均応答時間を、その処理の平均処理時間と待ち行列理論によって求められる平均待ち時間の合計とした場合に、前記入出力処理において前記スクリプトを作成する処理の前記平均応答時間と前記入出力処理装置が前記スクリプトを実行したときの前記平均応答時間とを合計した第1平均応答時間と、前記入出力処理装置が前記チャネルプログラムを実行したときの平均応答時間である第2平均応答時間と、を所定時間あたりの入出力回数について比較し、前記第1平均応答時間が、前記第2平均応答時間よりも短くなる最大の前記入出力回数となるときの前記演算処理装置の使用率を前記使用率の閾値に設定する、
    請求項1または請求項2に記載の演算処理装置。
  4. 前記スクリプトは、前記チャネルプログラムの先頭の論理アドレスおよびチャネルプログラムに含まれる全ての論理アドレスを実アドレスに変換した形式で作成される、
    請求項1から請求項3の何れか1項に記載の演算処理装置。
  5. 前記チャネルプログラムの論理アドレスによって指定された読み出すべきデータが前記スクリプトに格納できるサイズの場合、前記データを読み出して前記スクリプトに格納して作成する、
    請求項4に記載の演算処理装置。
  6. 入出力処理に係るチャネルプログラムに含まれる論理アドレスをアドレス変換したスクリプトを取得し、前記スクリプトを実行することにより入出力処理を行うスクリプト実行部、
    を備える入出力処理装置。
  7. 演算処理装置からスクリプトを取得した場合、前記スクリプト実行部が前記スクリプトを実行することにより入出力処理を行い、
    前記演算処理装置からチャネルプログラムを取得した場合、前記チャネルプログラムを実行することにより入出力処理を行う、
    請求項6に記載の入出力処理装置。
  8. 請求項1から請求項5の何れか1項に記載の演算処理装置と、請求項6または請求項7に記載の入出力処理装置と、
    を備える情報処理装置。
  9. 前記入出力処理装置に入出力処理を指示する入出力発行処理のみを行う第1の演算処理装置を少なくとも1つと、
    メインメモリと周辺装置との入出力を指示されたとき、前記第1の演算処理装置に入出力処理を指示する第2の演算処理装置を少なくとも1つと、
    を備え、前記第1の演算処理装置が、請求項1から請求項5の何れか1項に記載の演算処理装置である請求項8に記載の情報処理装置。
  10. 入出力処理に係るチャネルプログラムに含まれる論理アドレスを、入出力処理装置が処理しやすい形式にアドレス変換したスクリプトを作成するステップと、
    前記スクリプトを実行することにより入出力処理を行うステップと、
    を有する入出力処理方法。
JP2018044618A 2018-03-12 2018-03-12 演算処理装置、情報処理装置及び入出力処理方法 Active JP6901138B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018044618A JP6901138B2 (ja) 2018-03-12 2018-03-12 演算処理装置、情報処理装置及び入出力処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018044618A JP6901138B2 (ja) 2018-03-12 2018-03-12 演算処理装置、情報処理装置及び入出力処理方法

Publications (2)

Publication Number Publication Date
JP2019159713A true JP2019159713A (ja) 2019-09-19
JP6901138B2 JP6901138B2 (ja) 2021-07-14

Family

ID=67993985

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018044618A Active JP6901138B2 (ja) 2018-03-12 2018-03-12 演算処理装置、情報処理装置及び入出力処理方法

Country Status (1)

Country Link
JP (1) JP6901138B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254153A (zh) * 2021-05-20 2021-08-13 深圳市金蝶天燕云计算股份有限公司 流程任务处理方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54121031A (en) * 1978-03-13 1979-09-19 Nec Corp Information processor
JPS63137350A (ja) * 1986-11-29 1988-06-09 Nippon Telegr & Teleph Corp <Ntt> チヤネルプログラム実行制御方式
JPH033057A (ja) * 1989-05-31 1991-01-09 Hitachi Ltd 入出力制御方法および入出力割込み方法
JP2011186658A (ja) * 2010-03-05 2011-09-22 Nec Corp 情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54121031A (en) * 1978-03-13 1979-09-19 Nec Corp Information processor
JPS63137350A (ja) * 1986-11-29 1988-06-09 Nippon Telegr & Teleph Corp <Ntt> チヤネルプログラム実行制御方式
JPH033057A (ja) * 1989-05-31 1991-01-09 Hitachi Ltd 入出力制御方法および入出力割込み方法
JP2011186658A (ja) * 2010-03-05 2011-09-22 Nec Corp 情報処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254153A (zh) * 2021-05-20 2021-08-13 深圳市金蝶天燕云计算股份有限公司 流程任务处理方法、装置、计算机设备和存储介质
CN113254153B (zh) * 2021-05-20 2023-10-13 深圳市金蝶天燕云计算股份有限公司 流程任务处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
JP6901138B2 (ja) 2021-07-14

Similar Documents

Publication Publication Date Title
CN107992436B (zh) 一种NVMe数据读写方法及NVMe设备
US8473717B2 (en) Coprocessor reset controller with queue for storing configuration information of subsequent sessions prior to completion of current session
US5729714A (en) Shared memory access method and apparatus with address translation
WO2023185035A1 (zh) 内存直接访问架构、系统、方法、电子设备和介质
KR20070024670A (ko) 집적 dma 엔진을 사용하는 고성능 휘발성 디스크드라이브 메모리 액세스 장치 및 방법
JPH065520B2 (ja) 効率的データ転送機能を有するコンピユータ・システムおよび効率的データ転送方法
US8302109B2 (en) Synchronization optimized queuing system
US20240143392A1 (en) Task scheduling method, chip, and electronic device
JP6901138B2 (ja) 演算処理装置、情報処理装置及び入出力処理方法
JP2001306265A (ja) 記憶制御装置および記憶制御装置の制御方法
US11042495B2 (en) Providing interrupts from an input-output memory management unit to guest operating systems
JPH10283304A (ja) 割り込み要求を処理する方法及びシステム
JP5058116B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
CN112711442A (zh) 一种主机命令写入方法、设备、系统及可读存储介质
KR20220099399A (ko) 주변장치 정보 프리페치를 이용한 인터럽트 제어기 및 이를 통한 인터럽트 처리 방법
JP6951016B2 (ja) 切り替え回路、管理システム、情報処理装置及びアクセス頻度の切り替え方法
JP2009093225A (ja) ストレージ制御装置、方法及びプログラム並びにストレージ装置
JP2002123420A (ja) メモリアクセス装置
EP1776632B1 (en) System, controller and method of controlling the communication between a processor and an external peripheral device
US7694004B2 (en) Bit-granular writes of control registers
JPH05173930A (ja) Dma制御回路
WO2024103924A1 (zh) 一种数据读写方法及相关装置
CN117667791A (zh) 计算装置及其数据访问方法
JPH11110342A (ja) バス接続方法及び装置
JP6763307B2 (ja) 計算機、デバイス制御システムおよびデバイス制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201019

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210408

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210408

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210420

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210427

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210518

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210610

R150 Certificate of patent or registration of utility model

Ref document number: 6901138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150