(57)【要約】【課題】中央処理装置及び入出力インタフェース装置に対して、それぞれ異なるアドレス空間が割り当てられたシステムにおいても、中央処理装置と入出力インタフェース装置とが、互いに相手に割り当てられたアドレス空間に直接アクセスすることを可能とする。【解決手段】入出力処理装置３は、アクセス不能な第１のアドレス空間３４０が割り当てられた主記憶装置３４における写像元アドレス領域３４１を、アクセス可能な第２のアドレス空間３３０内に写像したバイパス領域３３２に対して、アクセスリクエストを発行する入出力インタフェース部３３と、係るアクセスリクエストが示す第１のアドレスを、第１のアドレスの写像元である第２のアドレスに変換する変換部３０と、主記憶装置３４における第２のアドレスにアクセスして、係るアクセスリクエストが指示する処理を実行して、その結果を入出力インタフェース部３３へ入力.するアクセス部３１と、を備える。【選択図】      図１４
2015130133.tif 000002
【特許請求の範囲】
【請求項１】
アクセス不能な第一のアドレス空間が割り当てられた主記憶装置における少なくとも一部のアドレス領域である写像元アドレス領域を、アクセス可能な第二のアドレス空間内に写像したバイパス領域に対して、アクセスリクエストを発行する入出力インタフェース手段と、
前記入出力インタフェース手段から発行された前記アクセスリクエストが示す第一のアドレスを、所定の変換基準に基づき、前記第一のアドレスの写像元である第二のアドレスに変換する変換手段と、
前記主記憶装置における前記第二のアドレスにアクセスして、前記アクセスリクエストが指示する処理を実行したのち、処理した結果を、前記入出力インタフェース手段へ入力.するアクセス手段と、
を備える入出力処理装置。
【請求項２】
アクセス不能な前記第二のアドレス空間が割り当てられたメモリに記憶された情報へのアクセスを要求する命令情報を生成したのち、前記命令情報を前記写像元アドレス領域における第三のアドレスに格納する中央処理装置をさらに有し、
前記アクセス手段は、前記第三のアドレスから前記命令情報を読み出したのち、前記命令情報を前記入出力インタフェース手段へ入力する、
請求項１に記載の入出力処理装置。
【請求項３】
前記中央処理装置は、前記入出力インタフェース手段からの割り込み要求を規定する情報を、前記主記憶装置における前記第二のアドレスから読み出すことにより、前記割り込み要求を受け付け、
前記入出力インタフェース手段は、前記割り込み要求を規定する情報を、前記第一のアドレスとともに出力し、
前記アクセス手段は、前記割り込み要求を規定する情報を、前記主記憶装置における前記第二のアドレスへ格納する、
請求項１または２に記載の入出力処理装置。
【請求項４】
前記主記憶装置をさらに備える、
請求項１乃至３のいずれかに記載の入出力処理装置。
【請求項５】
情報処理装置によって、
入出力インタフェース手段からはアクセス不能な第一のアドレス空間が割り当てられた主記憶装置における少なくとも一部のアドレス領域である写像元アドレス領域を、前記入出力インタフェース手段からアクセス可能な第二のアドレス空間内に写像したバイパス領域に対して、アクセスリクエストを発行し、
前記アクセスリクエストが示す第一のアドレスを、所定の変換基準に基づき、前記第一のアドレスの写像元である第二のアドレスに変換し、
前記主記憶装置における前記第二のアドレスにアクセスして、前記アクセスリクエストが指示する処理を実行したのち、処理した結果を、前記入出力インタフェース手段へ入力する、
入出力処理方法。
【請求項６】
中央処理装置からはアクセス不能な前記第二のアドレス空間が割り当てられたメモリに記憶された情報への前記中央処理装置からのアクセスを要求する命令情報を生成したのち、前記命令情報を前記写像元アドレス領域における第三のアドレスに格納し、
前記第三のアドレスから前記命令情報を読み出したのち、前記命令情報を前記入出力インタフェース手段へ入力する、
請求項５に記載の入出力処理方法。
【請求項７】
前記入出力インタフェース手段からの割り込み要求を規定する情報を、前記主記憶装置における前記第二のアドレスから読み出すことにより、前記割り込み要求を前記中央処理装置が受け付け、
前記割り込み要求を規定する情報を、前記第一のアドレスとともに入出力インタフェース手段が出力し、
前記割り込み要求を規定する情報を、前記主記憶装置における前記第二のアドレスへ格納する、
請求項５または６に記載の入出力処理方法。
【請求項８】
アクセス不能な第一のアドレス空間が割り当てられた主記憶装置における少なくとも一部のアドレス領域である写像元アドレス領域を、アクセス可能な第二のアドレス空間内に写像したバイパス領域に対して、アクセスリクエストを発行する入出力インタフェース処理と、
前記入出力インタフェース処理により発行された前記アクセスリクエストが示す第一のアドレスを、所定の変換基準に基づき、前記第一のアドレスの写像元である第二のアドレスに変換する変換処理と、
前記主記憶装置における前記第二のアドレスにアクセスして、前記アクセスリクエストが指示する処理を実行したのち、処理した結果を、前記入出力インタフェース処理へ入力するアクセス処理と、
をコンピュータに実行させる、入出力処理プログラム。
【請求項９】
中央処理装置からはアクセス不能な前記第二のアドレス空間が割り当てられたメモリに記憶された情報への前記中央処理装置からのアクセスを要求する命令情報を生成したのち、前記命令情報を前記写像元アドレス領域における第三のアドレスに格納する格納処理と、
前記第三のアドレスから前記命令情報を読み出したのち、前記命令情報を前記入出力インタフェース処理へ入力する前記アクセス処理と、
をコンピュータに実行させる、請求項８に記載の入出力処理プログラム。
【請求項１０】
前記入出力インタフェース処理からの割り込み要求を規定する情報を、前記主記憶装置における前記第二のアドレスから読み出すことにより、前記割り込み要求を前記中央処理装置が受け付ける割り込み受付処理と、
前記割り込み要求を規定する情報を、前記第一のアドレスとともに出力する前記入出力インタフェース処理と、
前記割り込み要求を規定する情報を、前記主記憶装置における前記第二のアドレスへ格納する前記アクセス処理と、
をコンピュータに実行させる、請求項８または９に記載の入出力処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、中央処理装置及び入出力インタフェース装置に対して、それぞれ異なるアドレス空間が割り当てられたシステムにおいて、当該中央処理装置と入出力インタフェース装置との間で行われるデータ転送を制御する入出力処理装置等に関する。
【背景技術】
【０００２】
サーバあるいはメインフレーム等の情報処理装置は、磁気ディスク装置等の周辺装置と接続し、中央処理装置がアクセスする主記憶装置と周辺装置との間のデータ転送を制御する、入出力に関する情報処理を行う入出力制御装置を備えている。このような入出力制御装置は、一般的にチャネルプログラム方式を採用し、中央処理装置が行う入出力に関する処理を自装置にオフロードすることにより、システム全体として処理の効率化を図っている。チャネルプログラム方式を採用したシステムでは、中央処理装置がアクセスする主記憶装置と周辺装置との間のデータ転送性能を向上させることが重要であり、係るデータ転送性能を向上可能な技術に対する期待が高まってきている。
【０００３】
上述した技術に関連する技術として、特許文献１には、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）  Ｅｘｐｒｅｓｓカードと主記憶装置との間において、直接データ転送を行う第一の経路と、ローカルメモリを介してデータ転送を行う第二の経路を備えた装置が開示されている。
【０００４】
また、特許文献２には、サーバとＩ（Ｉｎｐｕｔ）／Ｏ（Ｏｕｔｐｕｔ）デバイスとの間のデータ転送を、サーバが備える複数のＩ／Ｏインタフェースに分散させるようにしたシステムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2011-186658号公報
【特許文献２】特開2012-113604号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、グラフィック処理を行うＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）を汎用的に使用して、情報処理装置の処理能力を向上する技術が出現してきている。係る技術は、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ−Ｐｕｒｐｏｓｅ  ｃｏｍｐｕｔｉｎｇ  ｏｎ  Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔｓ）と呼ばれ、ＰＣＩ  Ｅｘｐｒｅｓｓカード等のＩ／Ｏカードの形態により情報処理装置に実装される。そして、中央処理装置により実行されるソフトウェアが、直接これらのＩ／Ｏカードにアクセスすることにより、ＧＰＧＰＵを活用することができる。
【０００７】
しかしながら、チャネルプログラム方式を採用したシステム等では、中央処理装置に割り当てられたアドレス空間と入出力制御装置に割り当てられたアドレス空間とが互いに異なる。このため、中央処理装置により実行されるソフトウェアは、直接これらのＩ／Ｏカードに割り当てられたアドレス空間にアクセスすることができない。したがって、チャネルプログラム方式を採用したシステム等は、ＧＰＧＰＵのような技術を有効活用することができないという問題がある。特許文献１乃至２が開示した技術は、係る問題を解決するためのものではない。
【０００８】
本願発明の主たる目的は、この問題を解決した、入出力処理装置、入出力処理方法、及び、入出力処理プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本願発明に係る入出力処理装置は、アクセス不能な第一のアドレス空間が割り当てられた主記憶装置における少なくとも一部のアドレス領域である写像元アドレス領域を、アクセス可能な第二のアドレス空間内に写像したバイパス領域に対して、アクセスリクエストを発行する入出力インタフェース手段と、前記入出力インタフェース手段から発行された前記アクセスリクエストが示す第一のアドレスを、所定の変換基準に基づき、前記第一のアドレスの写像元である第二のアドレスに変換する変換手段と、前記主記憶装置における前記第二のアドレスにアクセスして、前記アクセスリクエストが指示する処理を実行したのち、処理した結果を、前記入出力インタフェース手段へ入力.するアクセス手段と、備えることを特徴とする。
【００１０】
上記目的を達成する他の見地において、本願発明の入出力処理方法は、情報処理装置によって、入出力インタフェース手段からはアクセス不能な第一のアドレス空間が割り当てられた主記憶装置における少なくとも一部のアドレス領域である写像元アドレス領域を、前記入出力インタフェース手段からアクセス可能な第二のアドレス空間内に写像したバイパス領域に対して、アクセスリクエストを発行し、前記アクセスリクエストが示す第一のアドレスを、所定の変換基準に基づき、前記第一のアドレスの写像元である第二のアドレスに変換し、前記主記憶装置における前記第二のアドレスにアクセスして、前記アクセスリクエストが指示する処理を実行したのち、処理した結果を、前記入出力インタフェース手段へ入力することを特徴とする。
【００１１】
また、上記目的を達成する更なる見地において、本願発明に係る入出力処理プログラムは、アクセス不能な第一のアドレス空間が割り当てられた主記憶装置における少なくとも一部のアドレス領域である写像元アドレス領域を、アクセス可能な第二のアドレス空間内に写像したバイパス領域に対して、アクセスリクエストを発行する入出力インタフェース処理と、前記入出力インタフェース処理により発行された前記アクセスリクエストが示す第一のアドレスを、所定の変換基準に基づき、前記第一のアドレスの写像元である第二のアドレスに変換する変換処理と、前記主記憶装置における前記第二のアドレスにアクセスして、前記アクセスリクエストが指示する処理を実行したのち、処理した結果を、前記入出力インタフェース処理へ入力するアクセス処理と、をコンピュータに実行させることを特徴とする。
【００１２】
更に、本発明は、係る情報読取プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記憶媒体によっても実現可能である。
【発明の効果】
【００１３】
本願発明は、中央処理装置及び入出力インタフェース装置に対して、それぞれ異なるアドレス空間が割り当てられたシステムにおいても、中央処理装置と入出力インタフェース装置とが、互いに相手に割り当てられたアドレス空間に直接アクセスすることを可能とする。
【図面の簡単な説明】
【００１４】
【図１】本願発明の第１の実施形態に係る入出力処理装置の構成を示すブロック図である。
【図２Ａ】本願発明の第１の実施形態に係る入出力処理装置における中央処理装置がバイパス領域を介してＩ／Ｏアドレス空間へアクセスする動作を示すフローチャート（１／２）である。
【図２Ｂ】本願発明の第１の実施形態に係る入出力処理装置における中央処理装置がバイパス領域を介してＩ／Ｏアドレス空間へアクセスする動作を示すフローチャート（２／２）である。
【図３】本願発明の第１の実施形態に係る入出力処理装置における入出力インタフェース部がバイパス領域を介して中央処理装置へ割り込む動作を示すフローチャートである。
【図４】本願発明の第１の実施形態に係る入出力処理装置の物理構成の一例を示すブロック図である。
【図５】本願発明の第１の実施形態に係るＩ／Ｏアドレス空間における転送領域の構成を例示する図である。
【図６】本願発明の第１の実施形態に係る転送制御レジスタの構成を例示する図である。
【図７】本願発明の第１の実施形態に係る中央処理装置から入出力インタフェース部への命令に関する命令情報の一般形態の構成を例示する図である。
【図８】本願発明の第１の実施形態に係る中央処理装置から発行された入出力インタェース部に関するコンフィグレーション空間へのアクセス命令の命令情報の構成を例示する図である。
【図９】本願発明の第１の実施形態に係る中央処理装置から発行された入出力インタェース部に関するＩ／Ｏアドレス空間へのアクセス命令の命令情報の構成を例示する図である。
【図１０】本願発明の第１の実施形態に係る中央処理装置から入出力インタフェース部への命令に対するリプライ情報の一般形態の構成を例示する図である。
【図１１】本願発明の第１の実施形態に係る中央処理装置から発行された入出力インタェース部に関するコンフィグレーション空間へのアクセス命令に対するリプライ情報の構成を例示する図である。
【図１２】本願発明の第１の実施形態に係る中央処理装置から発行された入出力インタフェース部に関するＩ／Ｏアドレス空間へのアクセス命令に対するリプライ情報の構成を例示する図である。
【図１３】本願発明の第１の実施形態に係る入出力インタフェース部から中央処理装置への割り込み通知情報の構成を例示する図である。
【図１４】本願発明の第２の実施形態に係る入出力処理装置の構成を示すブロック図である。
【図１５】本願発明の各実施形態の入出力処理装置を実行可能な情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
＜第１の実施形態＞
図１は、第１の実施形態に係る入出力処理装置１の構成を概念的に示すブロック図である。また、本実施形態に係る入出力処理装置１の物理構成の一例を示すブロック図を図４に示す。本実施形態に係る入出力処理装置１は、変換部１０、アクセス部１１、チャネルプログラム処理部１２、入出力インタフェース部１３、主記憶装置１４、及び、中央処理装置１５を備えている。
【００１７】
主記憶装置１４は、中央処理装置１５に割り当てられたアドレス空間であるメインメモリ空間１４０に存在するデータを記憶している。メインメモリ空間１４０は、写像元アドレス領域１４１を包含している。写像元アドレス領域１４１は、変換部１０及びアクセス部１１が提供する機能により、入出力インタフェース部１３から直接アクセスすることが可能な、メインメモリ空間１４０内のアドレス領域である。写像元アドレス領域１４１は、メインメモリ空間１４０の全体でもよいし一部でもよい。尚、メインメモリ空間１４０における写像元アドレス領域１４１を除く領域は、入出力インタフェース部１３から直接アクセスすることができないアドレス領域である。
【００１８】
中央処理装置１５は、図４に示す通り、例えば、メモリコントローラ１５０、及び、演算処理装置１５１乃至１５４を備えている。演算処理装置１５１乃至１５４は、所定のソフトウェアを実行し、メモリコントローラ１５０を介して主記憶装置１４へアクセスする。
【００１９】
中央処理装置１５は、実行しているソフトウェアが、Ｉ／Ｏアドレス空間１３０に対するアクセスを要求した場合、ファームウェアにより、Ｉ／Ｏアドレス空間１３０へのアクセス命令に関する命令情報を生成して、係る命令情報を写像元アドレス領域１４１における特定のアドレスに格納する。尚、Ｉ／Ｏアドレス空間１３０は、メインメモリ空間１４０とは異なるアドレス空間であり、中央処理装置１５から直接アクセスすることができないアドレス空間である。中央処理装置１５は、当該命令情報を格納した写像元アドレス領域１４１におけるアドレスを、アクセス部１２へ通知する。
【００２０】
中央処理装置１５は、アクセス部１２により写像元アドレス領域１４１における所定のアドレスに格納された、Ｉ／Ｏアドレス空間１３０へのアクセス命令に対するアクセス結果に関する情報を読み出す。中央処理装置１５において動作するファームウェアは、中央処理装置１５が実行しているソフトウェアに、係るアクセス結果に関する情報を入力する。
【００２１】
中央処理装置１５は、入出力インタフェース部１３から中央処理装置１５に対する割り込み要求の内容を示す割り込み通知情報が格納された写像元アドレス領域１４１におけるアドレスをアクセス部１２から入手する。中央処理装置１５において動作するファームウェアは、写像元アドレス領域１４１における当該アドレスから係る割り込み通知情報を読み出して、当該割り込み通知情報が指示する内容に従い、割り込み受付処理を実行する。
【００２２】
入出力インタフェース部１３は、電子回路、あるいは、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサにより制御される、周辺装置とのインタフェースを有するＩ／Ｏカード等の電子デバイスである。
【００２３】
入出力インタフェース部１３は、図４に示す通り、例えばＩ／Ｏカード１３３乃至１３６を包含している。Ｉ／Ｏカード１３３乃至１３６は、例えばＰＣＩ  Ｅｘｐｒｅｓｓカード等であり、磁気ディスク装置２０乃至２１とファイバーチャネル等のインタフェースにより接続して、磁気ディスク装置２０乃至２１へのデータアクセスを制御する。
【００２４】
入出力インタフェース部１３に割り当てられたアドレス空間は、Ｉ／Ｏアドレス空間１３０である。Ｉ／Ｏアドレス空間１３０は、転送領域１３１とバイパス領域１３２とを包含している。バイパス領域１３２は、メインメモリ空間１４０における写像元アドレス領域１４１を写像した領域である。すなわち、バイパス領域１３２は、その領域サイズが写像元アドレス領域１４１と等しく、その内部に存在するデータは、写像元アドレス領域１４１の内部に存在するデータとして、主記憶装置１４に格納されている。
【００２５】
転送領域１３１は、チャネルプログラム方式により主記憶装置１４との間のデータ転送を行うデータを格納した領域である。転送領域１３１の構成を図５に例示する。本実施形態に係る転送領域１３１の領域サイズは１６メガバイトである。転送領域１３１は、４つの転送ブロック１３１−１乃至４を包含している。転送ブロック１３１−１乃至４の領域サイズは、それぞれ４メガバイトである。尚、転送領域１３１の内部に存在するデータは、例えば、ローカルメモリ１６２、あるいは、入出力インタフェース部１３が備えたメモリ（不図示）等に格納されている。
【００２６】
尚、入出力インタフェース部１３がアクセスするアドレス空間としては、Ｉ／Ｏアドレス空間１３０の他、コンフィグレーション空間（不図示）がある。コンフィグレーション空間は、入出力インタフェース部１３に関する初期設定情報等を格納した領域である。コンフィグレーション空間の内部に存在するデータも、転送領域１３１の場合と同様に、ローカルメモリ１６２、あるいは、入出力インタフェース部１３が備えたメモリ（不図示）等に格納されている。
【００２７】
入出力インタフェース部１３は、中央処理装置１５が入出力インタフェース部１３に対して発行した命令に関する命令情報をアクセス部１１から入手したのち、当該命令情報が指示する内容に従い、Ｉ／Ｏアドレス空間１３０、あるいは、コンフィグレーション空間へアクセスする。
【００２８】
入出力インタフェース部１３は、当該命令情報がＩ／Ｏアドレス空間１３０あるいはコンフィグレーション空間への書き込みを指示している場合、その指示内容に従い、Ｉ／Ｏアドレス空間１３０あるいはコンフィグレーション空間内の所定のアドレスに所定のデータを書き込む。入出力インタフェース部１３は、書き込み結果を出力するバイパス領域１３２におけるアドレスを変換部１０へ入力し、書き込み結果をアクセス部１１へ入力する。
【００２９】
入出力インタフェース部１３は、当該命令情報がＩ／Ｏアドレス空間１３０あるいはコンフィグレーション空間からの読み込みを指示している場合、その指示内容に従い、Ｉ／Ｏアドレス空間１３０あるいはコンフィグレーション空間内の所定のアドレスからデータを読み込む。入出力インタフェース部１３は、読み出し結果を出力するバイパス領域１３２におけるアドレスを変換部１０へ入力し、読み出し結果及び読み出しデータをアクセス部１１へ入力する。
【００３０】
入出力インタフェース部１３は、中央処理装置１５に対して割り込みを要求する際に、割り込み元であるＩ／Ｏカードを識別するチャネル番号、及び、ＭＳＩ（Ｍｅｓｓａｇｅ Ｓｉｇｎａｌｅｄ  Ｉｎｔｅｒｒｕｐｔ）データを包含する割り込み通知情報を、アクセス部１へ入力する。入出力インタフェース部１３は、また、係る割り込み通知情報を出力するバイパス領域１３２におけるアドレスを、変換部１０へ入力する。
【００３１】
変換部１０、アクセス部１１、及び、チャネルプログラム処理部１２は、電子回路の場合もあれば、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによって実現される場合もある。変換部１０、アクセス部１１、及び、チャネルプログラム処理部１２が提供する機能は、例えば、図４に示す、Ｉ／Ｏコントローラ１６０、プロセッサ１６１、ローカルメモリ１６２、及び、Ｉ／Ｏスイッチ１６３を包含する入出力制御部１６の中に実装されている。
【００３２】
チャネルプログラム処理部１２は、チャネルプログラムによる、入出力インタフェース部１３と主記憶装置１４との間のデータ転送を行う。入出力インタフェース部１３が、例えば、転送領域１３１におけるアドレス“０ｘ８０００＿０００ｚｚｚｚｚ”（“０ｘ”は１６進数表記であることを示す）に対するアクセスリクエストを出力した場合、チャネルプログラム処理部１２は、アドレス“０ｘ８０００＿０００ｚｚｚｚｚ”が、転送ブロック１３１−１乃至４のうちの転送ブロック１３１−１の中にあることを確認する。
【００３３】
チャネルプログラム処理部１２は、データ転送を行うにあたり、転送制御レジスタ１３２を参照する。転送制御レジスタ１３２の構成を図６に例示する。転送制御レジスタ１３２は、転送ブロック１３１−１乃至４に関する転送制御レジスタ１３２−１乃至４を包含している。転送制御レジスタ１３２−１は、６４ビットのアドレス、３２ビットのカウント、及び、３２ビットのフラグが示す値を記憶している。転送制御レジスタ１３２−２乃至４についても、転送制御レジスタ１３２−１と同様である。
【００３４】
転送制御レジスタ１３２−１における６４ビットのアドレスは、データの転送先である主記憶装置１４におけるベースアドレスを示している。転送制御レジスタ１３２−１における３２ビットのカウントは、転送するバイト量を示している。転送制御レジスタ１３２−１における３２ビットのフラグは、データを転送する方向等に関するデータ転送制御制御情報を示している。
【００３５】
チャネルプログラム処理部１２は、上述したアドレス“０ｘ８０００＿０００ｚｚｚｚｚ”に対するアクセスリクエストの場合、転送ブロック１３１−１に関する転送制御レジスタが示す各情報に基づきデータ転送を実行する。この際、チャネルプログラム処理部１２は、アドレス“０ｘ８０００＿０００ｚｚｚｚｚ”と、転送ブロック１３１−１の容量から１を減算したマスク値である“０ｘ３ＦＦＦＦＦ”との論理積を算出する。そして、チャネルプログラム処理部１２は、係る論理積が示す値と転送制御レジスタ１３２−１における６４ビットのベースアドレスが示す値とを加算することにより、メインメモリ空間１４０におけるアクセスアドレスを算出して、主記憶装置１４における当該アクセスアドレスにアクセスする。尚、上述したメインメモリ空間１４０におけるアクセスアドレスに関する算出手順は一例であり、チャネルプログラム処理部１２が別の算出手順を用いてもよい。
【００３６】
変換部１０は、入出力インタフェース部１３がＩ／Ｏアドレス空間１３０におけるバイパス領域１３２に対してアクセスリクエストを出力した際に、バイパス領域１３２におけるアクセスアドレスを、写像元アドレス領域１４１における写像元のアクセスアドレスに変換する。例えば、入出力インタフェース部１３が、バイパス領域１３２におけるアドレス“０ｘＣ０００＿０００ｙｙｙｙｙ”に対するアクセスリクエストを出力した場合、変換部１０は、アドレス“０ｘＣ０００＿０００ｙｙｙｙｙ”と、バイパス領域１３２の容量から１を減算したマスク値である“０ｘＦＦ＿ＦＦＦＦＦＦＦＦ”との論理積を算出する。変換部１０は、係る論理積が示す値である“０ｘ００＿０００ｙｙｙｙｙ”を、メインメモリ空間１４０におけるアクセスアドレスとして、アクセス部１１へ入力する。尚、上述したメインメモリ空間１４０におけるアクセスアドレスに関する算出手順は一例であり、変換部１０が別の算出手順を用いてもよい。
【００３７】
アクセス部１１は、中央処理装置１５から、Ｉ／Ｏアドレス空間１３０あるいはコンフィグレーション空間へのアクセス命令に関する命令情報を、中央処理装置１５から通知された写像元アドレス１４１におけるアドレスから読み出す。アクセス部１１は、読み出した係る命令情報を、入出力インタフェース部１３へ入力する。
【００３８】
中央処理装置１５から入出力インタフェース部１３への命令に関する命令情報の一般形態１００を図７に例示する。図７に示すように、中央処理装置１５から入出力インタフェース部１３への命令に関する命令情報は、最大で２４バイトの情報である。係る命令情報は、コマンド種別（バイト０）、フラグ（バイト１）、チャネル番号（バイト４乃至７）、及び、コマンド固有情報（バイト８乃至２３）を包含している。フラグ（バイト１）は、コマンド種別（バイト０）に関する詳細を示す情報である。チャネル番号（バイト４乃至７）は、当該命令を実行させるＩ／Ｏカードを識別するチャネル番号である。
【００３９】
尚、中央処理装置１５から入出力インタフェース部１３への命令に関する命令情報の一般形態１００におけるコマンド種別（バイト０）は、入出力インタフェース部１３が、当該命令情報を入手したことを示すフラグも兼ねている。係るコマンド種別（バイト０）は、入出力インタフェース部１３が当該命令情報を入手した後、入出力インタフェース部１３により０に更新される。中央処理装置１５は、係るコマンド種別（バイト０）が示す値が０に更新されたことを確認して、次の命令情報を主記憶装置１４へ格納する。
【００４０】
中央処理装置１５が入出力インタフェース部１３に関するコンフィグレーション空間へアクセスする際の、入出力インタフェース部１３に関するコンフィグレーション空間へのアクセス命令の命令情報１０１を図８に例示する。係る命令情報において、バイト０にはコンフィグレーション空間へのアクセス命令であることを示す“０ｘ０２”が格納される。係る命令情報において、バイト１には、読み出し命令の場合は“０ｘ０１”、書き込み命令の場合は“０ｘ０２”が格納される。
【００４１】
係る命令情報において、バイト８にはバス番号、バイト９にはデバイス番号及びＦｕｎｃ番号、バイト１０乃至１１にはオフセットアドレスが格納される。バイト８乃至１１に格納されるこれらの情報は、当該命令を実行させるＩ／Ｏカードごとに固有の情報であり、中央処理装置が実行するソフトウェアにとって既知の情報である。係る命令情報において、バイト１２乃至１５には、書き込み命令の場合における書き込みデータが格納される。
【００４２】
中央処理装置１５が入出力インタフェース部１３に関するＩ／Ｏアドレス空間へアクセスする際の、入出力インタフェース部１３に関するＩ／Ｏアドレス空間１３０へのアクセス命令の命令情報１０２を図９に例示する。係る命令情報において、バイト０にはＩ／Ｏアドレス空間１３０へのアクセス命令であることを示す“０ｘ０３”が格納される。係る命令情報において、バイト１には、読み出し命令の場合は“０ｘ０１”、書き込み命令の場合は“０ｘ０２”が格納される。
【００４３】
係る命令情報において、バイト８乃至１５には、８バイトのＩ／Ｏアドレス空間アドレスが格納される。係る命令情報において、バイト１６乃至１９には、書き込み命令の場合における書き込みデータが格納される。
【００４４】
アクセス部１１は、Ｉ／Ｏアドレス空間１３０あるいはコンフィグレーション空間へのアクセス命令に対するリプライ情報を、入出力インタフェース部１３から入手する。アクセス部１１は、係るリプライ情報を、変換部１０から入手した写像元アドレス領域１４１におけるアドレスに格納する。
【００４５】
中央処理装置１５から入出力インタフェース部１３への命令に対するリプライ情報の一般形態１０３を図１０に例示する。図１０に示すように、中央処理装置１５から入出力インタフェース部１３への命令に対するリプライ情報は、最大で２４バイトの情報である。係るリプライ情報は、メッセージ種別（バイト０）、フラグ（バイト１）、チャネル番号（バイト４乃至７）、及び、メッセージ固有情報（バイト８乃至２３）を包含している。フラグ（バイト１）は、メッセージ種別（バイト０）に関する詳細を示す情報である。チャネル番号（バイト４乃至７）は、当該リプライ情報を出力したＩ／Ｏカードを識別するチャネル番号である。
【００４６】
尚、中央処理装置１５から入出力インタフェース部１３への命令に対するリプライ情報の一般形態１０３におけるメッセージ種別（バイト０）は、中央処理装置１５が、当該リプライ情報を入手したことを示すフラグも兼ねている。係るメッセージ種別（バイト０）は、中央処理装置１５が当該リプライ情報を入手した後、中央処理装置１５により０に更新される。入出力インタフェース部１３は、係るメッセージ種別（バイト０）が示す値が０に更新されたことを確認して、次のリプライ情報を主記憶装置１４へ格納する。
【００４７】
中央処理装置１５が入出力インタフェース部１３に関するコンフィグレーション空間へアクセスする際の、入出力インタフェース部１３に関するコンフィグレーション空間へのアクセス命令に対するリプライ情報１０４を図１１に例示する。係るリプライ情報において、バイト０にはコンフィグレーション空間へのアクセス命令に対するリプライであることを示す“０ｘ８２”が格納される。係るリプライ情報において、バイト１には、命令実行が成功した場合は“０ｘ００”、命令実行が失敗した場合は“０ｘＦＦ”が格納される。  係るリプライ情報において、バイト８乃至１１には、読み出し命令の場合における読み出しデータが格納される。
【００４８】
中央処理装置１５が入出力インタフェース部１３に関するＩ／Ｏアドレス空間へアクセスする際の、入出力インタフェース部１３に関するＩ／Ｏアドレス空間１３０へのアクセス命令に対するリプライ情報１０５を図１２に例示する。係るリプライ情報において、バイト０にはＩ／Ｏアドレス空間１３０へのアクセス命令に対するリプライであることを示す“０ｘ８３”が格納される。係るリプライ情報におけるその他のバイトについては、入出力インタフェース部１３に関するコンフィグレーション空間へのアクセス命令に対するリプライ情報１０４と同様である。
【００４９】
アクセス部１１は、割り込み通知情報を、入出力インタフェース部１３から入手する。アクセス部１１は、係る割り込み通知情報を、変換部１０から入手した写像元アドレス領域１４１におけるアドレスに格納する。
【００５０】
入出力インタフェース部１３から中央処理装置１５への割り込み通知情報１０６を図１３に例示する。図１３に示すように、入出力インタフェース部１３から中央処理装置１５への割り込み通知情報は、１２バイトの情報である。係る割り込み通知情報は、割り込み通知情報であることを示す“０ｘ８Ｆ”（バイト０）、チャネル番号（バイト４乃至７）、及び、ＭＳＩメッセージデータ（バイト８乃至９）を包含している。チャネル番号（バイト４乃至７）は、当該割り込み通知情報を出力したＩ／Ｏカードを識別するチャネル番号である。
【００５１】
次に図２Ａ乃至２Ｂ、及び、図３のフローチャートを参照して、本実施形態に係る入出力処理装置１の動作（処理）について詳細に説明する。
【００５２】
図２Ａ乃至２Ｂは、本実施形態に係る入出力処理装置１における中央処理装置１５が、バイパス領域１３２を介してＩ／Ｏアドレス空間１３０へアクセスする動作を示すフローチャートである。尚、中央処理装置１５がバイパス領域１３２を介してコンフィグレーション空間へアクセスする動作も、ほぼ同様のフローとなる。
【００５３】
中央処理装置１５は、実行しているソフトウェアの指示に従い、Ｉ／Ｏアドレス空間１３０へのアクセス命令に関する命令情報を生成し、写像元アドレス領域１４１における特定のアドレスに格納する（ステップＳ１０１）。中央処理装置１５は、アクセス部１２に、当該命令情報を格納した写像元アドレス領域１４１におけるアドレスを通知する（ステップＳ１０２）。アクセス部１２は、写像元アドレス領域１４１における通知されたアドレスから当該命令情報を読み出し、当該命令情報を入出力インタフェース部１３へ入力する（ステップＳ１０３）。
【００５４】
当該アクセス命令が書き込み命令である場合（ステップＳ１０４でＹｅｓ）、入出力インタフェース部１３は、当該命令情報が指示する内容に従い、Ｉ／Ｏアドレス空間１３０内の所定のアドレスに、所定のデータを書き込む（ステップＳ１０５）。入出力インタフェース部１３は、書き込み結果を出力するバイパス領域１３２におけるアドレスを変換部１０へ入力し、書き込み結果をアクセス部１１へ入力し（ステップＳ１０６）、処理はステップＳ１０９へ進む。
【００５５】
当該アクセス命令が書き込み命令でない（即ち、読み出し命令である）場合（ステップＳ１０４でＮｏ）、当該命令情報の指示に従い、Ｉ／Ｏアドレス空間１３０内の所定のアドレスから、データを読み込む（ステップＳ１０７）。入出力インタフェース部１３は、読み出し結果を出力するバイパス領域１３２におけるアドレスを変換部１０へ入力し、読み出し結果及び読み出しデータをアクセス部１１へ入力し（ステップＳ１０８）、処理はステップＳ１０９へ進む。
【００５６】
変換部１０は、入出力インタフェース部１３から入手したバイパス領域１３２におけるアドレスを、写像元アドレス領域１４１におけるアドレスに変換し、変換したアドレスをアクセス部１１へ入力する（ステップＳ１０９）。アクセス部１１は、入出力インタフェース部１３から入手したＩ／Ｏアドレス空間１３０へのアクセス結果に関するリプライ情報を、変換部１０から入手した写像元アドレス領域１４１におけるアドレスに格納する（ステップＳ１１０）。中央処理装置１５は、写像元アドレス領域１４１における当該アドレスから、Ｉ／Ｏアドレス空間１３０へのアクセス結果に関する情報を読み出し、実行しているソフトウェアに、当該アクセス結果に関する情報を入力し（ステップＳ１１１）、全体の処理は終了する。
【００５７】
図３は、本実施形態に係る入出力処理装置１における入出力インタフェース部１３がバイパス領域１３２を介して中央処理装置１５へ割り込む動作を示すフローチャートである。
【００５８】
入出力インタフェース部１３は、チャネル番号及びＭＳＩデータを包含する割り込み通知情報をアクセス部１１へ入力し、当該割り込み通知情報を出力するバイパス領域１３２におけるアドレスを、変換部１０へ入力する（ステップＳ２０１）。変換部１０は、入出力インタフェース部１３から入手したバイパス領域１３２におけるアドレスを、写像元アドレス領域１４１におけるアドレスに変換し、変換したアドレスをアクセス部１１へ入力する（ステップＳ２０２）。
【００５９】
アクセス部１１は、入出力インタフェース部１３から入手した割り込み通知情報を、変換部１０から入手した写像元アドレス領域１４１におけるアドレスに格納する（ステップＳ２０３）。アクセス部１１は、中央処理装置１５に、当該割り込み通知情報を格納した写像元アドレス領域１４１におけるアドレスを通知する（ステップＳ２０４）。中央処理装置１５は、写像元アドレス領域１４１における当該アドレスから、当該割り込み通知情報を読み出す（ステップＳ２０５）。中央処理装置１５は、当該割り込み通知情報が指示する内容に従い、割り込み要求を受け付け（ステップＳ２０６）、全体の処理は終了する。
【００６０】
本実施形態に係る入出力処理装置１は、中央処理装置及び入出力インタフェース装置に対して、それぞれ異なるアドレス空間が割り当てられたシステムにおいても、中央処理装置と入出力インタフェース装置とが、互いに相手に割り当てられたアドレス空間に直接アクセスすることができる。その理由は、Ｉ／Ｏアドレス空間１３０がメインメモリ空間１４０における写像元アドレス領域１４１を写像したバイパス領域１３２を包含し、変換部１０がバイパス領域１３２におけるアドレスを写像元アドレス領域１４１におけるアドレスに変換し、アクセス部１１が変換部１０によって変換された写像元アドレス領域１４１におけるアドレスにアクセスするからである。
【００６１】
近年のコンピュータシステムは、システム性能を向上するため、Ｉ／Ｏ系に関する処理に関して、チャネルプログラム方式を採用していることが多い。チャネルプログラム方式では、入出力インタフェース装置がＩ／Ｏ系に関する処理を中央処理装置からオフロードする。これにより、チャネルプログラム方式によれば、中央処理装置がＩ／Ｏ系に関する処理から解放されて別の処理を行うことができるため、システム性能を向上させることができる。
【００６２】
チャネルプログラム方式を採用したシステムでは、一般的に、中央処理装置及び入出力インタフェース装置に対して、それぞれ異なるアドレス空間が割り当てられている。このため、中央処理装置及び入出力インタフェース装置は、相手に割り当てられたアドレス空間へ直接アクセスすることができない。しかしながら、前述したＧＰＧＰＵのような技術を有効活用するためには、中央処理装置及び入出力インタフェース装置が、互いに相手に割り当てられたアドレス空間へ直接アクセスすることができるようにすることが必要である。
【００６３】
本実施形態に係る入出力処理装置１において、Ｉ／Ｏアドレス空間１３０は、メインメモリ空間１４０における写像元アドレス領域１４１を写像したバイパス領域１３２を包含している。そして、入出力処理装置１は、バイパス領域１３２におけるアドレスを写像元アドレス領域１４１におけるアドレスに変換する変換部１０と、変換部１０により変換されたアドレス領域１４１におけるアドレスにアクセスするアクセス部１１とを備えている。したがって、中央処理装置１５及び入出力インタフェース部１３は、バイパス領域１３２を介することにより、互いに相手に割り当てられたアドレス空間へ直接アクセスすることができる。
【００６４】
例えば、主記憶装置１４におけるアドレス“０ｘ００＿０００ｙｙｙｙｙ”をオフセットとするアドレス領域を入出力インタフェース部１３が直接使用できるようにする場合を考える。この場合、入出力処理装置１は、入出力インタフェース部１３に関するオフセットアドレスとして、“０ｘＣ０００＿０００ｙｙｙｙｙ”を設定すればよい。
【００６５】
また、本実施形態に係る入出力処理装置１において、入出力インタフェース部１３は、中央処理装置１５に対する割り込み要求を規定する情報を、バイパス領域１３２を経由して主記憶装置１４における写像元アドレス領域１４１に書き込む。そして、中央処理装置１５は、写像元アドレス領域１４１に書き込まれた割り込み要求を規定する情報を読み出すことにより、係る割り込み要求を受け付けることができる。
【００６６】
本実施形態に係る入出力処理装置１は、上述した機能を備えることにより、中央処理装置及び入出力インタフェース装置に対して、それぞれ異なるアドレス空間が割り当てられたシステムであっても、ＧＰＧＰＵのような技術を実装したＩ／Ｏカードを利用することができるようになるため、Ｉ／Ｏに関する拡張性を向上することができる。
【００６７】
＜第２の実施形態＞
図１４は第２の実施形態の入出力処理装置３の構成を概念的に示すブロック図である。
【００６８】
本実施形態の入出力処理装置３は、変換部３０、アクセス部３１、入出力インタフェース部３３、及び、主記憶装置３４を備えている。
【００６９】
入出力インタフェース部３３は、アクセス不能な第１のアドレス空間３４０が割り当てられた主記憶装置３４における少なくとも一部のアドレス領域である写像元アドレス領域３４１を、アクセス可能な第２のアドレス空間３３０内に写像したバイパス領域３３２に対して、アクセスリクエストを発行する。
【００７０】
変換部３０は、入出力インタフェース部３３から発行されたアクセスリクエストが示す第１のアドレスを、所定の変換基準に基づき、前記第１のアドレスの写像元である第２のアドレスに変換する。
【００７１】
アクセス部３１は、主記憶装置３４における第２のアドレスにアクセスして、当該アクセスリクエストが指示する処理を実行したのち、処理した結果を、入出力インタフェース部３３へ入力.する。
【００７２】
本実施形態に係る入出力処理装置３は、中央処理装置及び入出力インタフェース装置に対して、それぞれ異なるアドレス空間が割り当てられたシステムにおいても、中央処理装置と入出力インタフェース装置とが、互いに相手に割り当てられたアドレス空間に直接アクセスすることができる。その理由は、第２のアドレス空間３３０が第１のアドレス空間３４０における写像元アドレス領域３４１を写像したバイパス領域３３２を包含し、変換部３０がバイパス領域３３２における第１のアドレスを写像元アドレス領域３４１における第２のアドレスに変換し、アクセス部３１が写像元アドレス領域３４１における第２のアドレスにアクセスするからである。
【００７３】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図１４に示した各部は、専用のＨＷ（電子回路）によって実現することができる。また、少なくとも変換部１０乃至３０、及び、アクセス部１１乃至３１は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図１５を参照して説明する。
【００７４】
図１５は、本発明の模範的な実施形態に係る入出力処理装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図１５は、図１、及び、図１４に示した入出力処理装置を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００７５】
図１５に示した情報処理装置９００は、ＣＰＵ９０１（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）、ＲＯＭ９０２（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）、ＲＡＭ９０３（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）、ハードディスク９０４（記憶装置）、外部装置との通信インタフェース９０５（Ｉｎｔｅｒｆａｃｅ：以降、「Ｉ／Ｆ」と称する）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記憶媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、及び、入出力インタフェース９０９を備え、これらの構成がバス９０６（通信線）を介して接続された一般的なコンピュータである。
【００７６】
そして、上述した実施形態を例に説明した本発明は、図１５に示した情報処理装置９００に対して、その実施形態の説明において参照したブロック構成図（図１、及び、図１４）或いはフローチャート（図２Ａ乃至２Ｂ、及び、図３）の機能を実現可能なコンピュータプログラムを供給した後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性の記憶メモリ（ＲＡＭ９０３）またはハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００７７】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、ＣＤ−ＲＯＭ等の各種記憶媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記憶媒体９０７によって構成されると捉えることができる。
【００７８】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００７９】
１    入出力処理装置
１０    変換部
１００    中央処理装置１５から入出力インタフェース部１３への命令に関する命令情報の一般形態
１０１    入出力インタフェース部１３に関するコンフィグレーション空間へのアクセス命令の命令情報
１０２    入出力インタフェース部１３に関するＩ／Ｏアドレス空間１３０へのアクセス命令の命令情報
１０３    中央処理装置１５から入出力インタフェース部１３への命令に対するリプライ情報の一般形態
１０４    入出力インタフェース部１３に関するコンフィグレーション空間へのアクセス命令に対するリプライ情報
１０５    入出力インタフェース部１３に関するＩ／Ｏアドレス空間１３０へのアクセス命令に対するリプライ情報
１０６    入出力インタフェース部１３から中央処理装置１５への割り込み通知情報
１１    アクセス部
１２    チャネルプログラム処理部
１３    入出力インタフェース部
１３０    Ｉ／Ｏアドレス空間
１３１    転送領域
１３１−１乃至４    転送ブロック
１３２−１乃至４    転送ブロック１３１−１乃至４に関する転送制御レジスタ
１３２    バイパス領域
１３３乃至１３６    Ｉ／Ｏカード
１４    主記憶装置
１４０    メインメモリ空間
１４１    写像元アドレス領域
１５    中央処理装置
１５０    メモリコントローラ
１５１乃至１５４    演算処理装置
１６    入出力制御部
１６０    Ｉ／Ｏコントローラ
１６１    プロセッサ
１６２    ローカルメモリ
１６３    Ｉ／Ｏスイッチ
２０乃至２１    磁気ディスク装置
３    入出力処理装置
３０    変換部
３１    アクセス部
３３    入出力インタフェース部
３３０    第２のアドレス空間
３３２    バイパス領域
３４    主記憶装置
３４０    第１のアドレス空間
３４１    写像元アドレス領域
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク
９０５    通信インタフェース
９０６    バス
９０７    記憶媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2015130133.tif 000003
【図２Ａ】
2015130133.tif 000004
【図２Ｂ】
2015130133.tif 000005
【図３】
2015130133.tif 000006
【図４】
2015130133.tif 000007
【図５】
2015130133.tif 000008
【図６】
2015130133.tif 000009
【図７】
2015130133.tif 000010
【図８】
2015130133.tif 000011
【図９】
2015130133.tif 000012
【図１０】
2015130133.tif 000013
【図１１】
2015130133.tif 000014
【図１２】
2015130133.tif 000015
【図１３】
2015130133.tif 000016
【図１４】
2015130133.tif 000017
【図１５】
2015130133.tif 000018