(57)【要約】  メモリ領域不足に伴うアプリケーション停止の回避と共に、メモリの確保及び解放に要するアプリケーション処理時間の削減によりスループットを向上することができる情報処理装置を開示する。係る情報処理装置は、メモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断し、前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断するメモリ処理制御手段と、前記メモリ処理制御手段により、前記領域サイズを確保できないと判断された場合、前記メモリ確保要求を保留する確保要求処理手段と、前記メモリ処理制御手段により、前記保留されているメモリ確保要求が無いと判断された場合、前記メモリ解放要求を破棄または保留する解放要求処理手段とを備える。
2015182122.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断するメモリ処理制御手段と、  前記メモリ処理制御手段により、前記領域サイズを確保できないと判断された場合、前記メモリ確保要求を保留する確保要求処理手段と、  前記メモリ処理制御手段により、前記保留されているメモリ確保要求が無いと判断された場合、前記メモリ解放要求を破棄または保留する解放要求処理手段と  を備えた情報処理装置。
【請求項２】
前記メモリ処理制御手段は、  前記メモリ確保要求を受けると、当該メモリ確保要求によりメモリ確保を要求する情報に対して、前記メモリが確保済みであるか否かを判断し、  前記確保要求処理手段は、  前記メモリ処理制御手段により前記メモリが確保済みであると判断された場合、前記メモリ確保要求を破棄する  請求項１記載の情報処理装置。
【請求項３】
前記メモリ解放要求に応じて、前記メモリ処理制御手段により前記保留されているメモリ確保要求の有無を判断された結果、前記保留されているメモリ確保要求が有ると判断された場合、  前記解放要求処理手段は、前記メモリ解放要求に応じた解放処理を実行し、  前記確保要求処理手段は、前記保留されているメモリ確保要求に応じた確保処理を実行する  請求項１または請求項２記載の情報処理装置。
【請求項４】
前記確保要求処理手段は、  前記保留されているメモリ確保要求に応じた確保処理を実行するにあたり、前記メモリ確保要求に含まれる優先度が最も高いメモリ確保要求に応じた確保処理を実行する  請求項３記載の情報処理装置。
【請求項５】
前記解放要求処理手段は、  前記メモリ解放要求に応じて、前記メモリ処理制御手段により前記保留されているメモリ確保要求の有無を判断された結果、前記保留されているメモリ確保要求が無いと判断された場合に前記メモリ解放要求を保留し、  前記メモリ確保要求に応じて、前記メモリ処理制御手段により前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断された結果、確保できないと判断された場合に前記保留したメモリ解放要求に応じた解放処理を実行する  請求項１ないし請求項４のいずれか１項記載の情報処理装置。
【請求項６】
前記メモリ確保要求に応じて、  前記メモリ処理制御手段は、  前記メモリ確保要求によりメモリ確保を要求する情報に対して、前記メモリが確保済みであるか否かを判断し、  前記確保要求処理手段は、  前記メモリ処理制御手段により前記メモリが確保済みであると判断された場合、前記メモリ確保要求を破棄し、  前記解放要求処理手段は、  前記確保要求処理手段により破棄されたメモリ確保要求によりメモリ確保を要求する情報からの、前記保留されているメモリ解放要求を破棄する  請求項５記載の情報処理装置。
【請求項７】
前記メモリ確保要求に応じて、  前記メモリ処理制御手段により前記メモリの空き領域に当該メモリ確保要求により要求される領域サイズを確保可能かを判断された結果、確保できないと判断された場合、  前記解放要求処理手段は、前記保留したメモリ解放要求に含まれる優先度が最も低いメモリ解放要求に応じた解放処理を実行する  請求項５記載の情報処理装置。
【請求項８】
請求項１ないし請求項６のいずれか１項記載の情報処理装置と、  前記情報処理装置と通信路を介して接続され、前記アプリケーションに記述された演算処理に利用される第２のメモリを備えたアクセラレータとを備えた情報処理システムであって、  前記情報処理装置に含まれるメモリ処理制御手段は、  前記アプリケーションに記述された演算処理に利用される前記第２のメモリに対する第２のメモリ確保要求に応じて、前記第２のメモリの空き領域に前記第２のメモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記第２のメモリに対する第２のメモリ解放要求に応じて、保留されている前記第２のメモリ確保要求の有無を判断し、  前記情報処理装置に含まれる前記解放要求処理手段は、前記メモリ処理制御手段により、前記領域サイズを確保できないと判断された場合、前記第２のメモリ確保要求を保留し、  前記情報処理装置に含まれる前記解放要求処理手段は、前記メモリ処理制御手段により、前記保留されている第２のメモリ確保要求が無いと判断された場合、前記第２のメモリ解放要求を破棄または保留する  情報処理システム。
【請求項９】
アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断し、  前記領域サイズを確保できないと判断された場合、前記メモリ確保要求を保留し、  前記保留されているメモリ確保要求が無いと判断された場合、前記メモリ解放要求を破棄または保留する  メモリ管理方法。
【請求項１０】
アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断する処理と、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断する処理と、  前記領域サイズを確保できないと判断された場合に前記メモリ確保要求を保留する処理と、  前記保留されているメモリ確保要求が無いと判断された場合に前記メモリ解放要求を破棄または保留する処理と  を、コンピュータに実行させるメモリ管理プログラムを記録するプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、アプリケーションプログラムの実行の際に使用されるメモリの確保および解放を管理する技術に関する。
【背景技術】
【０００２】  オペレーシングシステム（以下、「ＯＳ」と称する）は、様々なアプリケーションプログラムから送られるメモリ確保要求およびメモリ解放要求に応じて、要求されるサイズのメモリ領域を確保したり解放したりする機能を有する。【０００３】  例えば、特許文献１には、アプリケーションプログラム（以下、単に「アプリケーション」とも称する）からのメモリ確保要求やメモリ解放要求に速やかに対応することにより、アプリケーションのパフォーマンス低下を抑える情報処理装置が開示されている。この情報処理装置では、アプリケーション全体で必要なサイズのメモリ領域をアプリケーション起動時に確保し、アプリケーション実行中に生じるメモリ確保要求に対し、起動時に既に確保した領域の一部をアプリケーションに渡す。そして、この情報処理装置は、アプリケーションからメモリ確保要求とメモリ解放要求とを仮想メモリに送信することを減らすことにより、メモリ確保処理とメモリ解放処理の実行時間を減らしている。【０００４】  また、特許文献２には、資源運用の効率化と資源返却処理コストの削減を行う共有資源管理システムが開示される。この共有資源管理システムは、複数のプロセスをまとめたグループ単位で資源を管理し、利用終了した資源を仮返却する。そして、この共有資源管理システムは、他のグループからの割り当て要求があれば仮返却された資源を実際に返却し、返却された資源をその他のグループに割り当てる。他のグループからの割り当て要求がなければ、共有資源管理システムは、グループに含まれるプロセスがすべて終了した時に返却処理を行う。このように、共有資源管理システムは、仮返却によって、資源運用の効率化のために、プロセスごとの資源の返却と、まとめられた資源の返却とを行うことにより、資源返却での処理コストを削減する。【０００５】  また、特許文献３には、メモリ領域の確保および解放に関する処理が開示される。【０００６】  ここで、近年、アプリケーションの実行の際の負荷増加に対応するため、ホストプロセッサに加えて、高性能なメニーコアアクセラレータが搭載されたサーバが利用されている。メニーコアアクセラレータは、演算処理を行うコアを複数備えると共に、各コアが使用する有限のメモリ領域を備える構成を有する。【０００７】  このようなメニーコアアクセラレータを搭載したサーバにおいてメニーコアアクセラレータが利用される際、以下の処理が行われる。すなわち、メニーコアアクセラレータに含まれるメモリの確保処理、ホストプロセッサが使用するメモリからメニーコアアクセラレータに含まれるメモリへのデータ転送処理、メニーコアアクセラレータにおける演算処理が行われる。さらに、メニーコアアクセラレータに含まれるメモリからホストプロセッサが使用するメモリへのデータ転送処理、および、メニーコアアクセラレータに含まれるメモリの解放処理が行われる。【０００８】  このように、上記のようなサーバがメニーコアアクセラレータを利用する方式は、「オフロード方式」と呼ばれる。また、アプリケーションにおけるこの一連の処理を行う機能は、「オフロード部」と呼ばれる。上述したように、メモリの確保処理と解放処理は、アプリケーションからのメモリ確保���求およびメモリ解放要求に応じて、ＯＳによって行われる。【０００９】  ホストプロセッサが使用するメモリと、メニーコアアクセラレータに含まれるメモリとの間のデータ転送処理は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）により行われる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１１−１７５３９５号公報
【特許文献２】特開２０１２−１４６１５２号公報
【特許文献３】特開平０８−２７２６２１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】  上述のように、ホストプロセッサが使用するメモリと、メニーコアアクセラレータに含まれるメモリとの間のデータ転送処理は、ＤＭＡにより行われる。この転送処理の間、メニーコアアクセラレータに含まれるメモリ領域は、「ピン止め」と呼ばれる方法により確保される。このピン止めにより確保されたメモリ領域は、スワップアウト（、すなわち補助記憶装置などに退避することにより、使用可能なメモリ領域を作ること）ができない。このため、メニーコアアクセラレータにおいて、演算処理の実行中に確保可能なメモリ領域が不足する虞がある。この場合、アプリケーションは、メモリ領域不足に起因するエラーによって停止してしまう虞があるという課題がある。【００１２】  また、メニーコアアクセラレータは、一般に、ホストプロセッサより動作周波数が低い。このため、メニーコアアクセラレータにおけるメモリ確保処理とメモリ解放処理にかかる時間は、ホストプロセッサにおけるメモリ確保処理とメモリ解放処理にかかる時間よりも相対的に長い。よって、メニーコアアクセラレータは、サーバのスループットを低下させてしまうという課題もある。【００１３】  上述した特許文献１では、メモリ管理機構は、所定容量のメモリ領域を確保しておき、アプリケーションからの要求に応じて、その確保されたメモリ領域のうちの未使用領域を利用したり解放したりする。しかしながら、この場合、複数のアプリケーションが同時に実行されると、メモリ領域不足によりエラーが生じる虞がある。【００１４】  また、上述した特許文献２では、複数のプロセスグループ間での共有資源の受け渡しを最小限にするが、同じプロセスグループに共有資源を再度割り当てる際に、改めて割り当て処理が必要となる。よって、処理時間の削減はできない。【００１５】  また、上述した特許文献３にも、上記課題を解決する技術は開示されない。【００１６】  本発明は、上記課題を解決し、メモリ領域不足に伴うアプリケーション停止の回避と共に、メモリの確保及び解放に要するアプリケーション処理時間の削減によりスループットを向上できる情報処理装置等の提供を主要な目的とする。
【課題を解決するための手段】
【００１７】  本発明の第１の情報処理装置は、アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断するメモリ処理制御手段と、前記メモリ処理制御手段により、前記領域サイズを確保できないと判断された場合、前記メモリ確保要求を保留する確保要求処理手段と、前記メモリ処理制御手段により、前記保留されているメモリ確保要求が無いと判断された場合、前記メモリ解放要求を破棄または保留する解放要求処理手段とを備える。【００１８】  本発明の第１の情報処理システムは、情報処理装置と、前記情報処理装置と通信路を介して接続され、前記アプリケーションに記述された演算処理に利用される第２のメモリを備えたアクセラレータとを備えた情報処理システムであって、前記情報処理装置に含まれるメモリ処理制御手段は、前記アプリケーションに記述された演算処理に利用される前記第２のメモリに対する第２のメモリ確保要求に応じて、前記第２のメモリの空き領域に前記第２のメモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記第２のメモリに対する第２のメモリ解放要求に応じて、保留されている前記第２のメモリ確保要求の有無を判断し、前記情報処理装置に含まれる前記解放要求処理手段は、前記メモリ処理制御手段により、前記領域サイズを確保できないと判断された場合、前記第２のメモリ確保要求を保留し、前記情報処理装置に含まれる前記解放要求処理手段は、前記メモリ処理制御手段により、前記保留されている第２のメモリ確保要求が無いと判断された場合、前記第２のメモリ解放要求を破棄または保留する。【００１９】  本発明の第１のメモリ管理方法は、アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断し、前記領域サイズを確保できないと判断された場合、前記メモリ確保要求を保留し、前記保留されているメモリ確保要求が無いと判断された場合、前記メモリ解放要求を破棄または保留する。【００２０】  本発明の第１のプログラム記録媒体は、アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断する処理と、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断する処理と、前記領域サイズを確保できないと判断された場合に前記メモリ確保要求を保留する処理と、前記保留されているメモリ確保要求が無���と判断された場合に前記メモリ解放要求を破棄または保留する処理とを、コンピュータに実行させるメモリ管理プログラムを記録する。
【発明の効果】
【００２１】  本願発明によれば、アプリケーションがメモリ領域不足により停止することを回避すると共に、アプリケーションによるメモリ確保処理とメモリ解放処理にかかる時間を削減することによりスループットを向上することができるという効果が得られる。
【図面の簡単な説明】
【００２２】
【図１】本発明の各実施形態に係る情報処理装置のハードウエア構成を例示する図である。
【図２】本発明の第１の実施形態に係る情報処理装置の構成を示す機能ブロック図である。
【図３Ａ】本発明の第１の実施形態に係る情報処理装置において実行される各種アプリケーションの処理を示すフローチャートである。
【図３Ｂ】本発明の第１の実施形態に係る情報処理装置において実行される各種アプリケーションが含むメモリ確保要求とメモリ解放要求の構成を示す図である。
【図４】本発明の第１の実施形態に係る情報処理装置の詳細な構成を示すブロック図である。
【図５】本発明の第１の実施形態に係る情報処理装置におけるメモリ確保に関する処理を示すフローチャートである。
【図６】本発明の第１の実施形態に係る情報処理装置におけるメモリ解放に関する処理を示すフローチャートである。
【図７】本発明の第２の実施形態に係る情報処理装置の構成を示すブロック図である。
【図８】本発明の第２の実施形態に係る情報処理装置におけるメモリ確保に関する処理を示すフローチャートである。
【図９】本発明の第２の実施形態に係る情報処理装置におけるメモリ解放に関する処理を示すフローチャートである。
【図１０】本発明の第３の実施形態に係る情報処理システムのハードウエア構成を例示する図である。
【図１１Ａ】本発明の第３の実施形態に係る情報処理装置において実行される各種アプリケーションの処理を示すフローチャートである。
【図１１Ｂ】本発明の第３の実施形態に係る情報処理装置において実行される各種アプリケーションが含むアクセラレータメモリ確保要求とアクセラレータメモリ解放要求の構成を示す図である。
【図１２】本発明の第５の実施形態に係る情報処理装置の構成を示すブロック図である。
【図１３】本発明の第５の実施形態に係る情報処理装置において実行される各種アプリケーションが含むメモリ確保要求とメモリ解放要求の構成を示す図である。
【図１４】本発明の第５の実施形態に係る情報処理装置におけるメモリ解放に関する処理を示すフローチャートである。
【図１５】本発明の第６の実施形態に係る情報処理装置の構成を示すブロック図である。
【図１６】本発明の第６の実施形態に係る情報処理装置におけるメモリ確保に関する処理を示すフローチャートである。
【図１７】本発明の第７の実施形態に係る情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２３】  以下、本発明の実施形態について図面を参照して詳細に説明する。各実施形態において参照する図面において、同一要素には同一符号を付し、重複する説明を省略する場合がある。
【００２４】  第１の実施形態  図１は、本発明の第１の実施形態に係る情報処理装置１００のハードウエア構成を例示する図である。また、図２は、図１に例示するハードウエア資源において実現される情報処理装置１００の機能ブロック図である。図１に示す構成は、ホストプロセッサ１０、メインメモリ１１、およびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）または記憶媒体１２を備える。ホストプロセッサ１０は、ＲＯＭまたは記憶媒体１２に記憶された各種ソフトウエア・プログラム（コンピュータ・プログラム）を、メインメモリ１１に読み出して実行することにより、情報処理装置１００の全体的な動作を司る。すなわち、以下に示す各実施形態において、ホストプロセッサ１０は、ＲＯＭまたは記憶媒体１２を適宜参照しながら、情報処理装置１００が備える各機能（各部）を実行するソフトウエア・プログラムを実行する。
【００２５】  図２に示すように、情報処理装置１００は、メモリ処理制御部２００、確保要求処理部２５０、解放要求処理部２６０、アプリケーション３００およびＯＳ４００を備える。
【００２６】  アプリケーション３００は、所定の処理を実施するプログラムコードが記述された１または複数のプログラムをそれぞれ含む、１または複数のアプリケーション・プログラムである。アプリケーション３００は、図１に示すＲＯＭまたは記憶媒体１２に記憶され、ユーザの指示または他のアプリケーションから呼び出されるのに応じて、図１に示すホストプロセッサ１０により実行される。また、ＯＳ４００も、図１に示すＲＯＭまたは記憶媒体１２に記憶され、図１に示すホストプロセッサ１０により実行される。
【００２７】  図３Ａは、情報処理装置１００において実行される各種アプリケーション３００の処理を示すフローチャートである。アプリケーション３００は、演算処理に先行して、メモリを確保するための処理（メモリ確保処理）と、メモリを解放するための処理（メモリ解放処理）に移行するための要求を実行する。すなわち、ホストプロセッサ１０は、アプリケーション３００を実行すると、まず、演算処理において利用するデータに関するメモリ確保要求を出力し、その要求に対するメモリ確保処理を、ＯＳ４００に対して行う（Ｓ３０１）。この場合、ＯＳ４００は、メモリ確保要求に応じて、メインメモリ１１のうち要求されるメモリ領域を確保すると共に、そのメモリ領域を示すアドレス等の情報を、アプリケーション３００に返す。
【００２８】  メモリが確保されると、ホストプロセッサ１０は、アプリケーション３００の演算処理を、メインメモリ１１の上記確保された領域を利用して実行する（Ｓ３０２）。演算処理が終了すると、ホストプロセッサ１０は、演算処理において使用したメインメモリ１１における領域を解放するために、メモリ解放要求を出力し、その要求に応じたメモリ解放処理をＯＳ４００に対して行う（Ｓ３０３）。この場合、ＯＳ４００は、メモリ解放要求で指示されたメインメモリ１１の領域を解放することにより、他のメモリ確保要求に対して利用可能な状態にする。ホストプロセッサ１０は、続いて、Ｓ３０１乃至Ｓ３０３と同様の処理であるＳ３０４乃至Ｓ３０６を行う。アプリケーション３００は、このように、記述されるすべての演算処理の実行にあたり、メモリ確保、演算およびメモリ解放を含む一連の処理を行う。
【００２９】  図３Ｂに模式的に示すように、アプリケーション３００は、メモリ確保要求３１０とメモリ解放要求３２０とを含む。メモリ確保要求３１０は、確保要求データ名３１１と、確保要求データサイズ３１２とを含む。また、メモリ解放要求３２０は、解放要求データ名３２１と、解放要求データサイズ３２２とを含む。確保要求データ名３１１は、メインメモリ１１において確保されたメモリ領域を利用するデータの識別情報である。確保要求データサイズ３１２は、上記データの利用に必要な領域サイズを示す。解放要求データ名３２１は、解放するメモリ領域を利用していたデータの識別情報である。解放要求データサイズ３２２は、解放するメモリ領域のサイズを示す。
【００３０】  図４は、図２に示した情報処理装置１００の詳細な構成を示すブロック図である。図４に示すように、情報処理装置１００のメモリ処理制御部２００は、指示部２０１、確保済み判断部２０２、空き領域判断部２０３および保留要求判断部２０４を備える。
【００３１】  確保要求処理部２５０は、確保要求実行部２５１、確保要求保留部２５２および確保要求破棄部２５３を備える。解放要求処理部２６０は、解放要求実行部２６１および解放要求破棄部２６２を備える。
【００３２】  メモリ処理制御部２００は、アプリケーション３００からメモリ確保要求３１０およびメモリ解放要求３２０を受け取ると共に、各要求に応じたメモリ処理（すなわち、メモリ確保処理およびメモリ解放処理）を制御する。確保要求処理部２５０は、メモリ処理制御部２００が受け取ったメモリ確保要求３１０に応じて、ＯＳ４００に対してメモリ確保処理を実行する。解放要求処理部２６０は、メモリ処理制御部２００が受け取ったメモリ解放要求３２０に応じて、ＯＳ４００に対してメモリ解放処理を実行する。
【００３３】  図５は、本第１の実施形態に係る情報処理装置１００におけるメモリ確保に関する処理を示すフローチャートである。図５を参照して、情報処理装置１００におけるメモリ確保に関する処理について説明する。
【００３４】  アプリケーション３００は、ユーザからの指示または他のアプリケーションからの呼び出し等に応じて起動されると、メモリ処理制御部２００にメモリ確保要求３１０を送る。メモリ処理制御部２００は、受け取ったメモリ確保要求３１０に応じて、メモリ確保要求の実行、保留または破棄のいずれを行うかを決定すると共に、決定した処理を行う指示を、確保要求処理部２５０に送る。
【００３５】  すなわち、メモリ処理制御部２００において、指示部２０１は、確保済み判断部２０２に、メモリ確保を要求するデータにすでにメモリ領域が確保されているか否かを判断するように指示する。確保済み判断部２０２は、受け取ったメモリ確保要求３１０に含まれる確保要求データ名３１１に基づいて、メモリ確保を要求するデータに、すでにメモリ領域が確保されているか否かを判断する（Ｓ４０１）。確保済み判断部２０２は、判断の結果と、すでにメモリ領域が確保されている場合はそのメモリ領域を示すアドレス等の情報を、指示部２０１に返す。
【００３６】  すでにメモリ領域が確保されている場合（Ｓ４０１においてＹｅｓ）、指示部２０１は、メモリ確保要求３１０を破棄することを、確保要求処理部２５０に指示する。
【００３７】  確保要求処理部２５０は、指示部２０１からメモリ確保要求３１０の破棄指示を受けると、確保要求破棄部２５３においてメモリ確保要求３１０を破棄する（Ｓ４０２）。そして、指示部２０１は、確保済み判断部２０２により確保済みと判断されたメモリ領域を示すアドレス等の情報を、アプリケーション３００に返す（Ｓ４０３）。
【００３８】  一方、上記Ｓ４０１において、上記メモリ領域が確保されていない場合（Ｓ４０１においてＮｏ）、指示部２０１は、当該メモリ領域の確保が可能かどうかを判断することを、空き領域判断部２０３に指示する。空き領域判断部２０３は、当該指示に応じて、メモリの空き領域のサイズと、上記メモリ確保要求３１０に含まれる確保要求データサイズ３１２とを比較することにより、要求される領域サイズを空き領域に確保可能かどうか判断する（Ｓ４０４）。
【００３９】  指示部２０１は、上記確保が可能である場合（Ｓ４０４においてＹｅｓ）、確保要求処理部２５０に、メモリ確保処理の実行を指示する。上記確保ができない場合（Ｓ４０４においてＮｏ）、指示部２０１は、確保要求処理部２５０に、メモリ確保要求の保留を指示する。
【００４０】  確保要求処理部２５０は、上記メモリ確保要求の実行指示に応じて、確保要求実行部２５１においてメモリ確保を実行する（Ｓ４０５）。すなわち、確保要求実行部２５１は、ＯＳ４００に対して、メモリ確保要求に応じたメモリ確保処理を実行すると共に、ＯＳ４００から取得した確保されたメモリ領域を示す情報を、メモリ処理制御部２００に返す。メモリ処理制御部２００は、アプリケーション３００に、確保されたメモリ領域を示す情報を返す（Ｓ４０６）。
【００４１】  ここで、メモリ確保処理およびメモリ解放処理は、一般的な方法により実施可能であるので、本実施形態においてその詳細な説明は省略する。例えば、上述した特許文献３には、プログラムが動的にメモリ領域を確保する必要がある場合、そのプログラム言語のライブラリまたはＯＳが用意するヒープ操作を基にしたメモリ領域確保の関数を呼ぶことによってメモリ領域を確保することが開示される。また、特許文献３には、確保されたメモリ領域をプログラム中で使用した後、同メモリ領域を解放する関数を呼び出すことが開示される。
【００４２】  一方、確保要求処理部２５０は、メモリ処理制御部２００からのメモリ確保要求の保留指示に応じて、確保要求保留部２５２においてメモリ確保要求を保留する（Ｓ４０７）。メモリ確保要求が保留されると、アプリケーション３００において、メモリの確保処理は一時停止される。
【００４３】  以上のように、情報処理装置１００は、アプリケーション３００からのメモリ確保要求３１０に応じた処理を行う。
【００４４】  図６は、本第１の実施形態に係る情報処理装置１００におけるメモリ解放に関する処理を示すフローチャートである。図６を参照して、情報処理装置１００におけるメモリ解放に関する処理について説明する。
【００４５】  メモリ処理制御部２００は、アプリケーション３００からメモリ解放要求３２０を受け取ると、メモリ解放要求の実行、破棄、または保留されているメモリ確保要求の実行のいずれを行うかを決定する。そして、メモリ処理制御部２００は、決定した処理を行う指示を、確保要求処理部２５０または解放要求処理部２６０に送る。
【００４６】  すなわち、指示部２０１は、メモリ解放要求を破棄するか否かの判断のため、保留要求判断部２０４に、保留されているメモリ確保要求の有無を判断することを指示する。保留要求判断部２０４は、上記指示に応じて、保留されているメモリ確保要求の有無を判断する（Ｓ４１０）。保留要求判断部２０４は、例えば、上記図５におけるＳ４０７において、保留されたメモリ確保要求に関する情報を保持しておいてもよい。保留要求判断部２０４は、上記判断の結果を指示部２０１に返す。
【００４７】  指示部２０１は、保留されているメモリ確保要求が無い場合は、解放要求処理部２６０にメモリ解放要求３２０の破棄を指示し、保留されているメモリ確保要求が有る場合は、解放要求処理部２６０にメモリ解放要求３２０の実行を指示する。
【００４８】  解放要求処理部２６０は、上記メモリ解放要求３２０の破棄指示に応じて、解放要求破棄部２６２において、アプリケーション３００からのメモリ解放要求３２０を破棄する（Ｓ４１１）。
【００４９】  一方、解放要求処理部２６０は、上記メモリ解放要求３２０の実行指示に応じて、解放要求実行部２６１において、ＯＳ４００に対してメモリ解放要求３２０を実行する（Ｓ４１２）。ＯＳ４００は、当該メモリ解放要求３２０に含まれる解放要求データ名３２１および解放要求データサイズ３２２により指定されるメモリ領域を解放する。
【００５０】  解放要求実行部２６１は、上記メモリ領域の解放を実行した旨を、指示部２０１に返す。続いて、指示部２０１は、保留されているメモリ確保要求３１０の実行が可能か否かを、空き領域判断部２０３に判断するように指示する。
【００５１】  空き領域判断部２０３は、上記指示に応じて、上記解放されたメモリ領域を含む空き領域のサイズと、上記保留されているメモリ確保要求により要求される領域サイズとを比較することにより、その要求されるメモリ領域の確保が可能かどうか判断する（Ｓ４１３）。空き領域判断部２０３は、当該判断の結果を、指示部２０１に返す。
【００５２】  指示部２０１は、上記確保が可能な場合、確保要求処理部２５０に、保留されているメモリ確保要求に応じたメモリ確保処理の実行を指示する。上記確保ができない場合、指示部２０１は、処理を終了する。
【００５３】  確保要求処理部２５０は、上記指示に応じて、保留されているメモリ確保要求に応じたメモリ確保処理を実行する（Ｓ４１４）。
【００５４】  以上のように、本第１の実施形態によれば、情報処理装置１００は、アプリケーション３００からのメモリ確保要求３１０およびメモリ解放要求３２０を受け取るメモリ処理制御部２００を備える。メモリ処理制御部２００は、空き領域判断部２０３において、メモリ確保要求３１０により要求される領域サイズをメインメモリ１１の空き領域に確保できるか否かを判断する。メモリ処理制御部２００は、上記確保ができない場合は、メモリ確保要求３１０を保留するように確保要求処理部２５０に指示する。すなわち、メモリ処理制御部２００は、空き領域が不足する場合は、メモリ確保要求３１０を一旦保留し、他のメモリ解放要求３２０によりメモリが解放されたタイミングでメモリ確保を行う。この構成により、本第１の実施形態によれば、メモリ領域不足に起因したエラーによりアプリケーション３００が停止することを回避できるという効果が得られる。
【００５５】  また、メモリ処理制御部２００は、確保済み判断部２０２において、メモリ確保済みのデータと同一のデータに対するメモリ確保要求３１０であると判断された場合は、そのメモリ確保要求３１０を破棄する。また、メモリ処理制御部２００は、保留要求判断部２０４において、保留されているメモリ確保要求３１０が無いと判断された場合は、メモリ解放要求３２０を破棄する。この構成により、本第１の実施形態によれば、確保済みのメモリ領域をメモリに空きがある場合は確保し続けることにより、メモリ確保要求およびメモリ解放要求を破棄できる（、すなわちメモリ確保処理およびメモリ解放処理を削減できる）。よって、これらメモリ処理にかかる時間の総和を削減できるという効果が得られる。
【００５６】  第２の実施形態  図７は、本発明の第２の実施形態に係る情報処理装置５００の機能ブロック図である。図７に示す構成は、上記第１の実施形態に係る情報処理装置１００におけるメモリ処理制御部２００と解放要求処理部２６０に代えて、それぞれメモリ処理制御部５１０と解放要求処理部５２０を備える。
【００５７】  メモリ処理制御部５１０は、第１の実施形態において説明したメモリ処理制御部２００の構成に加えて、同一判断部２０５を備える。解放要求処理部５２０は、第１の実施形態において説明した解放要求処理部２６０の構成に加えて、解放要求保留部２６３を備える。
【００５８】  図８は、本第２の実施形態に係る情報処理装置５００におけるメモリ確保に関する処理を示すフローチャートである。図８は、上記第１の実施形態における図５に示すフローチャートが備える処理に加えて、Ｓ５０１乃至Ｓ５０４を備える。
【００５９】  図７および図８を参照して、情報処理装置５００におけるメモリ確保に関する処理について説明する。
【００６０】  アプリケーション３００は、ユーザからの指示または他のアプリケーションからの呼び出し等に応じて起動されると、メモリ処理制御部５１０にメモリ確保要求３１０を送る。メモリ処理制御部５１０は、受け取ったメモリ確保要求３１０に応じて、メモリ確保要求の実行、保留、破棄、または、保留されているメモリ解放要求の実行、破棄のいずれを行うかを決定する。そして、メモリ処理制御部５１０は、決定した処理を行う指示を、確保要求処理部２５０または解放要求処理部５２０に送る。
【００６１】  具体的には、確保済み判断部２０２は、受け取ったメモリ確保要求３１０に含まれる確保要求データ名３１１に基づいて、メモリ確保を要求するデータに、すでにメモリ領域が確保されているか否かを判断する（Ｓ４０１）。すでにメモリ領域が確保されている場合（Ｓ４０１においてＹｅｓ）、指示部２０１は、メモリ確保要求３１０を破棄することを、確保要求処理部２５０に指示する。なお、このとき、同一判断部２０５は、当該メモリ確保要求３１０に含まれる確保要求データ名３１１と確保要求データサイズ３１２を保持しておく。
【００６２】  確保要求処理部２５０は、指示部２０１からメモリ確保要求３１０の破棄指示を受けると、確保要求破棄部２５３においてメモリ確保要求３１０を破棄する（Ｓ４０２）。
【００６３】  指示部２０１は、同一判断部２０５に、同一判断を行うことを指示する。同一判断部２０５は、上記指示に応じて、保持している確保要求データ名３１１に基づいて、同一判断を行う。すなわち、同一判断部２０５は、メモリ確保要求３１０を要求したアプリケーションと同一のアプリケーションからの同一のデータに対する、保留されているメモリ解放要求の有無を判断する（Ｓ５０１）。同一判断部２０５は、判断の結果を指示部２０１に返す。
【００６４】  上記保留されているメモリ解放要求が有る場合、指示部２０１は、解放要求処理部５２０に、当該メモリ解放要求の破棄指示を送る。解放要求処理部５２０は、解放要求破棄部２６２において、保留されているメモリ解放要求を破棄する（Ｓ５０２）。
【００６５】  また、指示部２０１は、Ｓ４０１において、確保済み判断部２０２により確保済みと判断されたメモリ領域を示すアドレス等の情報を、アプリケーション３００に返す（Ｓ４０３）。
【００６６】  一方、Ｓ４０１において、上記メモリ領域が確保されていない場合、指示部２０１は、当該メモリ領域の確保が可能かどうかを、空き領域判断部２０３に判断することを指示する。空き領域判断部２０３は、当該指示に応じて、メモリの空き領域のサイズと、上記メモリ確保要求３１０に含まれる確保要求データサイズ３１２とを比較することにより、要求される領域サイズを空き領域に確保可能かどうか判断する（Ｓ４０４）。
【００６７】  上記確保が可能である場合（Ｓ４０４においてＹｅｓ）、指示部２０１は、第１の実施形態と同様に、Ｓ４０５およびＳ４０６を行う。
【００６８】  一方、上記確保ができない場合（Ｓ４０４においてＮｏ）、指示部２０１は、第１の実施形態におけるメモリ確保要求の保留（Ｓ４０７）の前に、保留されているメモリ解放要求の有無を判断する。保留されているメモリ解放要求が有る場合、指示部２０１は、メモリ解放要求を実行することにより、空き領域を作る。
【００６９】  すなわち、指示部２０１は、保留要求判断部２０４に、保留されているメモリ解放要求の有無を判断するように指示する。保留要求判断部２０４は、上記指示に応じて、保留されているメモリ解放要求の有無を判断する（Ｓ５０３）。保留要求判断部２０４は、例えば、後述する図９におけるＳ５５０において、保留されたメモリ解放要求に関する情報を保持しておいてもよい。保留要求判断部２０４は、判断の結果を指示部２０１に返す。
【００７０】  指示部２０１は、保留されているメモリ解放要求が無い場合は、確保要求処理部２５０に、メモリ確保要求３１０の保留を指示する。
【００７１】  確保要求処理部２５０は、上記メモリ確保要求３１０の保留の指示に応じて、確保要求保留部２５２において、メモリ確保要求３１０を保留する（Ｓ４０７）。一方、指示部２０１は、保留されているメモリ解放要求が有る場合は、解放要求処理部５２０にメモリ解放要求３２０の実行を指示する。解放要求処理部５２０は、上記メモリ解放要求３２０の実行の指示に応じて、解放要求実行部２６１において、メモリ解放要求３２０を実行する（Ｓ５０４）。その後、指示部２０１は、Ｓ４０４に処理を戻し、メモリ解放要求３２０の実行により空いたメモリを含めた空きメモリ領域に、メモリ確保要求３１０により要求される領域サイズを確保できるか否かを判断する。
【００７２】  以上のように、情報処理装置５００は、アプリケーション３００からのメモリ確保要求３１０に応じた処理を行う。
【００７３】  図９は、本第２の実施形態に係る情報処理装置５００におけるメモリ解放に関する処理を示すフローチャートである。図９を参照して、情報処理装置５００におけるメモリ解放に関する処理について説明する。
【００７４】  メモリ処理制御部５１０は、アプリケーション３００からメモリ解放要求３２０を受け取ると、メモリ解放要求の実行、保留、または保留されているメモリ確保要求の実行のいずれを行うかを決定する。そして、メモリ処理制御部５１０は、決定した処理を行う指示を、確保要求処理部２５０または解放要求処理部５２０に送る。
【００７５】  指示部２０１は、図９におけるＳ４１０乃至Ｓ４１４に関して、上記第１の実施形態と同様の処理を行う。
【００７６】  Ｓ４１０において、指示部２０１は、保留要求判断部２０４に、保留されているメモリ確保要求の有無を判断するように指示する。保留要求判断部２０４は、上記指示に応じて、保留されているメモリ確保要求の有無を判断する（Ｓ４１０）。保留要求判断部２０４は、例えば、上記図８におけるＳ４０７において、保留されたメモリ確保要求に関する情報を保持しておいてもよい。保留要求判断部２０４は、上記判断の結果を指示部２０１に返す。
【００７７】  指示部２０１は、保留されているメモリ確保要求が無い場合は、解放要求処理部５２０にメモリ解放要求３２０の保留を指示する。解放要求処理部５２０は、上記指示に応じて、解放要求保留部２６３において、メモリ解放要求３２０を保留する（Ｓ５５０）。このとき、保留要求判断部２０４は、保留されたメモリ解放要求に関する情報を保持しておく。  このように、本第２の実施形態によれば、メモリ処理制御部５１０は、メモリ解放要求３２０を受けた際に、保留されているメモリ確保要求３１０が無い場合、メモリ解放要求３２０を保留することを指示する。メモリ処理制御部５１０は、メモリ確保要求３１０を受けた際に、要求される領域サイズを空き領域に確保できない場合、保留されているメモリ解放要求に応じたメモリ解放処理を実行することを指示する。つまり、情報処理装置５００は、保留されているメモリ確保要求３１０がない場合はメモリ解放要求３２０を保留することにより、確保したメモリを解放せず、確保し続ける。この構成により、本第２の実施形態によれば、要求されるサイズの空き領域を確保できる限りは、メモリ解放要求を保留して、メモリをできる限り確保するので、メモリ不足に起因するメモリ確保要求３１０の保留時間を短縮できるという効果が得られる。
【００７８】  第３の実施形態  図１０は、本第３の実施形態に係る情報処理システム１５０のハードウエア構成を示す図である。図１０に示すように、情報処理システム１５０は、情報処理装置１００と、当該情報処理装置１００と通信路１５を介して接続されるアクセラレータ１１０とを備える。
【００７９】  情報処理装置１００は、上記第１の実施形態において、図１および図２を参照して説明した構成と同様の構成を有する。
【００８０】  アクセラレータ１１０は、アクセラレータプロセッサ２１とアクセラレータメモリ２２とを備える。アクセラレータ１１０は、ホストプロセッサ１０からの指示に基づいて動作する。すなわち、アクセラレータプロセッサ２１は、ホストプロセッサ１０からの指示に基づいて、アクセラレータメモリ２２を利用しながら、アプリケーションに記述される演算処理を実行する。
【００８１】  図１１Ａは、図１０に示すようなアクセラレータ１１０を搭載した情報処理システム１５０において実行される図１１Ｂに示すアプリケーション６００の処理を示すフローチャートである。アプリケーション６００は、メモリ確保処理に移行するための要求（Ｓ３０１）、ホストプロセッサが実行する演算処理（Ｓ３０２）、メモリ解放処理に移行するための要求（Ｓ３０３）およびオフロード処理Ｓ６１０を実行する。
【００８２】  Ｓ３０１乃至Ｓ３０３に示す処理は、ホストプロセッサ１０がアプリケーション６００をメインメモリ１１を利用して実行する処理である。オフロード処理Ｓ６１０は、ホストプロセッサ１０が、アプリケーション６００を、アクセラレータ１１０が実行するように制御する処理である。
【００８３】  アプリケーション６００は、アクセラレータメモリ２２における所定の領域を確保するためのアクセラレータメモリ確保要求（Ｓ６１１）、アクセラレータプロセッサ２１が実行するアクセラレータ演算処理（Ｓ６１２）を実行する。さらに、アプリケーション６００は、アクセラレータメモリ２２を解放するためのアクセラレータメモリ解放要求（Ｓ６１３）を実行する。
【００８４】  ホストプロセッサ１０は、メインメモリ１１においてアプリケーション６００を実行すると共に、アクセラレータ１１０におけるアクセラレータプロセッサ２１の動作と、アクセラレータメモリ２２に対するメモリ確保要求とメモリ解放要求とを管理する。
【００８５】  ホストプロセッサ１０は、アプリケーション６００を実行すると、上記第１の実施形態と同様に、Ｓ３０１乃至Ｓ３０３を実行する。続いて、ホストプロセッサ１０は、オフロード処理Ｓ６１０を、アクセラレータ１１０において実行する。すなわち、ホストプロセッサ１０は、アクセラレータ演算処理（Ｓ６１２）において利用するデータに対して、アクセラレータメモリ２２の領域を確保するために、アクセラレータメモリ確保要求を出力する（Ｓ６１１）。そして、ホストプロセッサ１０は、その要求に対するアクセラレータメモリ確保処理を、アクセラレータ１１０におけるＯＳ（不図示）に対して行う。アクセラレータ１１０におけるＯＳは、アクセラレータメモリ確保要求に応じて、アクセラレータメモリ２２のうち要求されるメモリ領域を確保すると共に、そのメモリ領域を示すアドレス等の情報をアプリケーション６００に返す。
【００８６】  メモリが確保されると、アクセラレータプロセッサ２１は、アクセラレータ演算処理を、アクセラレータメモリ２２の上記確保された領域を利用して実行する（Ｓ６１２）。アクセラレータ演算処理が終了すると、ホストプロセッサ１０は、アクセラレータ演算処理において使用したアクセラレータメモリ２２における領域を解放するために、アクセラレータメモリ解放要求を出力する。ホストプロセッサ１０は、その要求に対するアクセラレータメモリ解放処理をＯＳに対して行う（Ｓ６１３）。アクセラレータ１１０におけるＯＳは、アクセラレータメモリ解放要求で指示されたアクセラレータメモリ２２の領域を解放する。アプリケーション６００は、メモリ確保、演算およびメモリ解放を含む一連の処理と、オフロード処理Ｓ６１０を１または複数有する。
【００８７】  図１０に示す情報処理システム１５０が備える情報処理装置１００は、上記第１の実施形態において説明した図４に示す構成を有する。また、情報処理装置１００は、図１１Ｂに示すアプリケーション６００を実行する。
【００８８】  情報処理装置１００が備えるメモリ処理制御部２００は、アプリケーション６００からアクセラレータメモリ確保要求６２０を受けると、上記第１の実施形態において図５を参照して説明したメインメモリ１１に対する処理を、アクセラレータ１１０におけるアクセラレータメモリ２２に対して実行する。
【００８９】  また、メモリ処理制御部２００は、アプリケーション６００からアクセラレータメモリ解放要求６３０を受けると、上記第１の実施形態において図６を参照して説明したメインメモリ１１に対する処理を、アクセラレータ１１０におけるアクセラレータメモリ２２に対して実行する。
【００９０】  また、情報処理装置１００が備える確保要求処理部２５０および解放要求処理部２６０は、メモリ処理制御部２００から指示を受けると、上記第１の実施形態において説明したＯＳ４００に対する処理を、アクセラレータ１１０におけるＯＳに対して実行する。
【００９１】  以上のように、本第３の実施形態によれば、情報処理システム１５０は、ホストプロセッサ１０とメインメモリ１１とを備えた情報処理装置１００に加えて、アクセラレータ１１０を備える。情報処理装置１００は、アプリケーション６００から、アクセラレータメモリ確保要求６２０およびアクセラレータメモリ解放要求６３０を受けると、アクセラレータ１１０が備えるＯＳを介して、上記第１の実施形態と同様に、アクセラレータメモリ２２の確保または解放を実行する。この構成により、本第３の実施形態によれば、アクセラレータ１１０を備えた情報処理システム１５０においても、ホストプロセッサ１０は、アクセラレータメモリ２２の領域不足に起因したエラーによりアプリケーション６００が停止することを回避できる。また、本第３の実施形態によれば、アクセラレータメモリ確保処理とアクセラレータメモリ解放処理にかかる時間の総和を削減できるという効果が得られる。
【００９２】  第４の実施形態  第４の実施形態では、上記第３の実施形態において説明した情報処理システム１５０が、情報処理装置として、上記第２の実施形態において図７に示した情報処理装置５００を備える場合について説明する。
【００９３】  本第４の実施形態に係る情報処理装置５００は、アクセラレータ１１０に対して、上記第２の実施形態において説明した処理を行う。
【００９４】  すなわち、情報処理装置５００が備えるメモリ処理制御部５１０は、アプリケーション６００からアクセラレータメモリ確保要求６２０を受けると、上記第２の実施形態において図８を参照して説明したメインメモリ１１に対する処理を、アクセラレータ１１０におけるアクセラレータメモリ２２に対して実行する。
【００９５】  また、メモリ処理制御部５１０は、アプリケーション６００からアクセラレータメモリ解放要求６３０を受けると、上記第２の実施形態において図９を参照して説明したメインメモリ１１に対する処理を、アクセラレータ１１０におけるアクセラレータメモリ２２に対して実行する。
【００９６】  また、情報処理装置５００が備える確保要求処理部２５０および解放要求処理部５２０は、メモリ処理制御部５１０から指示を受けると、上記第２の実施形態において説明したＯＳ４００に対する処理を、アクセラレータ１１０におけるＯＳに対して実行する。
【００９７】  以上のように、本第４の実施形態によれば、アクセラレータ１１０を備えた情報処理システム１５０において、情報処理装置５００は、アプリケーション６００から、アクセラレータメモリ確保要求６２０およびアクセラレータメモリ解放要求６３０を受けると、アクセラレータ１１０が備えるＯＳを介して、上記第２の実施形態と同様に、アクセラレータメモリ２２の確保または解放を実行する。この構成により、本第４の実施形態によれば、アクセラレータ１１０を備えた情報処理システム１５０においても、第２の実施形態における効果と同様に、メモリ不足に起因するメモリ確保要求３１０の保留時間を短縮できるという効果が得られる。
【００９８】  第５の実施形態  図１２は、本発明の第５の実施形態に係る情報処理装置７００の機能ブロック図である。図１２に示す構成は、上記第１の実施形態に係る情報処理装置１００におけるメモリ処理制御部２００に代えて、メモリ処理制御部７１０を備える。
【００９９】  メモリ処理制御部７１０は、第１の実施形態において説明したメモリ処理制御部２００の構成に加えて、優先度判断部２０６を備える。
【０１００】  情報処理装置７００は、各種アプリケーション６５０を実行する。図１３は、情報処理装置７００において実行される各種アプリケーション６５０に共通する機能を簡略化して示す図である。図１３に示すように、アプリケーション６５０は、メモリ確保要求６６０とメモリ解放要求６７０を備える。メモリ確保要求６６０は、確保要求データ名３１１、確保要求データサイズ３１２および優先度６６１を含む。メモリ解放要求６７０は、解放要求データ名３２１、解放要求データサイズ３２２および優先度６７１を含む。
【０１０１】  確保要求データ名３１１、確保要求データサイズ３１２、解放要求データ名３２１および解放要求データサイズ３２２は、第１の実施形態における説明と同様である。
【０１０２】  優先度６６１は、当該メモリ確保要求６６０を要求したアプリケーション６５０の、他のアプリケーション６５０に対する優先度を示す情報である。優先度６６１は、優先順位または優先度合等を示す値であってよい。
【０１０３】  メモリ処理制御部７１０が備える優先度判断部２０６は、最も優先度が高いアプリケーション６５０を判断する。
【０１０４】  図１４は、本第５の実施形態に係る情報処理装置７００におけるメモリ解放に関する処理を示すフローチャートである。図１４を参照して、情報処理装置７００におけるメモリ解放に関する処理について説明する。なお、メモリ確保に関する処理については、情報処理装置７００におけるメモリ処理制御部７１０により、第１の実施形態において図５を参照して説明した処理が実行される。
【０１０５】  メモリ解放要求６７０を受けた場合、メモリ処理制御部７１０は、図１４に示すＳ４１０乃至Ｓ４１３に関して、上記図６に示すＳ４１０乃至Ｓ４１３と同様の処理を行う。メモリ処理制御部７１０は、Ｓ４１３において、要求されるメモリ領域の確保が可能と判断した場合、保留されているメモリ確保要求６６０が複数あれば、アプリケーションの優先度の判断を行うように優先度判断部２０６に指示する。
【０１０６】  優先度判断部２０６は、上記指示に応じて、保留されているメモリ確保要求６６０にそれぞれ含まれる優先度６６１を比較することにより、優先度が最も高いメモリ確保要求６６０を判断すると共に、判断の結果を指示部２０１に返す。
【０１０７】  指示部２０１は、上記優先度が最も高いと判断されたメモリ確保要求６６０を実行することを、確保要求処理部２５０に指示する。確保要求処理部２５０は、上記指示に応じて、優先度が最も高いメモリ確保要求６６０を実行する（Ｓ７０１）。
【０１０８】  以上のように、本第５の実施形態によれば、複数のアプリケーション６５０は、それぞれ優先度６６１、６７１を有し、情報処理装置７００が備えるメモリ処理制御部７１０は、優先度判断部２０６を有する。優先度判断部２０６は、保留されているメモリ確保要求６６０のうち優先度６６１が最も高いメモリ確保要求６６０を判断し、確保要求処理部２５０は、そのメモリ確保要求６６０を優先的に実行する。この構成により、本第５の実施形態によれば、優先度の高いアプリケーション６５０からのメモリ確保要求６６０を優先的に実行することで、優先度の高いアプリケーション６５０から要求されるメモリ確保処理およびメモリ解放処理を優先的に削減できるという効果が得られる。
【０１０９】  第６の実施形態  図１５は、本発明の第６の実施形態に係る情報処理装置８００の機能ブロック図である。図１５に示す構成は、上記第２の実施形態に係る情報処理装置５００におけるメモリ処理制御部５１０に代えて、メモリ処理制御部８１０を備える。
【０１１０】  メモリ処理制御部８１０は、第２の実施形態において説明したメモリ処理制御部５１０の構成に加えて、優先度判断部２０６を備える。
【０１１１】  情報処理装置８００は、第５の実施形態において図１３を参照して説明したアプリケーション６５０を実行する。優先度判断部２０６は、アプリケーション６５０に含まれる優先度６６１、６７１に基づいて、最も優先度が高いアプリケーション６５０を判断する。
【０１１２】  図１６は、本第６の実施形態に係る情報処理装置８００におけるメモリ確保に関する処理を示すフローチャートである。図１６を参照して、情報処理装置８００におけるメモリ確保に関する処理について説明する。
【０１１３】  メモリ確保要求６６０を受けた場合、メモリ処理制御部８１０は、図１６に示すＳ４０１乃至Ｓ４０７およびＳ５０１乃至Ｓ５０３に関して、第２の実施形態において説明した図８に示すＳ４０１乃至Ｓ４０７およびＳ５０１乃至Ｓ５０３と同様の処理を行う。メモリ処理制御部８１０は、Ｓ５０３において、保留されているメモリ解放要求６７０が複数あれば、アプリケーションの優先度の判断を行うように優先度判断部２０６に指示する。
【０１１４】  優先度判断部２０６は、上記指示に応じて、保留されているメモリ解放要求６７０にそれぞれ含まれる優先度６７１を比較することにより、優先度が最も低いメモリ解放要求６７０を判断すると共に、判断の結果を指示部２０１に返す。
【０１１５】  指示部２０１は、上記優先度が最も低いと判断されたメモリ解放要求６７０を実行することを、解放要求処理部５２０に指示する。解放要求処理部５２０は、上記指示に応じて、優先度が最も低いメモリ解放要求６７０を実行する（Ｓ７０２）。
【０１１６】  なお、メモリ解放要求６７０を受けた場合、情報処理装置８００におけるメモリ処理制御部８１０は、第２の実施形態において図９を参照して説明した処理を実行する。
【０１１７】  以上のように、本第６の実施形態によれば、複数のアプリケーション６５０は、それぞれ優先度６６１、６７１を有し、情報処理装置８００が備えるメモリ処理制御部８１０は、優先度判断部２０６を備える。優先度判断部２０６は、保留されているメモリ解放要求６７０のうち優先度６７１が最も低いメモリ解放要求６７０を判断し、解放要求処理部５２０は、そのメモリ解放要求６７０を優先的に実行する。この構成により、本第６の実施形態によれば、優先度の低いアプリケーション６５０からのメモリ解放要求６７０を優先的に実行することで、優先度の高いアプリケーション６５０から要求されるメモリ確保処理およびメモリ解放処理を優先的に削減できる効果が得られる。また、本第６の実施形態によれば、要求されるサイズの空き領域を確保できない場合に、保留されているメモリ解放要求６７０を実行するので、メモリ不足に起因するメモリ確保要求６６０の保留時間を短縮できるという効果が得られる。
【０１１８】  第７の実施形態  図１７は、本発明の第７の実施形態に係る情報処理装置９００の機能ブロック図である。図１７に示すように、情報処理装置９００は、メモリ処理制御部９１０、確保要求処理部９２０および解放要求処理部９３０を備える。
【０１１９】  メモリ処理制御部９１０は、アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、メモリの空き領域にメモリ確保要求により要求される領域サイズを確保可能かを判断し、アプリケーションに記述された演算処理において利用されたメモリに対するメモリ解放要求を受けると、保留されているメモリ確保要求の有無を判断する。
【０１２０】  確保要求処理部９２０は、メモリ処理制御部９１０により、領域サイズを確保できないと判断された場合、メモリ確保要求を保留する。解放要求処理部９３０は、メモリ処理制御部９１０により、保留されているメモリ確保要求が無いと判断された場合、メモリ解放要求を破棄または保留する。
【０１２１】  上記構成を採用することにより、本第７の実施形態によれば、メモリ領域不足に伴うアプリケーション停止の回避と共に、メモリの確保及び解放に要するアプリケーション処理時間の削減によりスループットを向上することができるという効果が得られる。
【０１２２】  なお、上述した各実施形態では、図４等に示した情報処理装置における各ブロックに示す機能を、図１に示すホストプロセッサ１０が実行する一例として、ソフトウエア・プログラムによって実現する場合について説明した。しかしながら、図４等に示した情報処理装置における各ブロックに示す機能は、一部または全部を、ハードウエアとして実現してもよい。
【０１２３】  また、各実施形態を例に説明した本発明は、情報処理装置に対して、上記説明した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、ホストプロセッサ１０がメインメモリ１１に読み出して実行することによって達成される。
【０１２４】  また、係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ（一時記憶媒体）またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
【０１２５】  以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１２６】  この出願は、２０１４年５月２８日に出願された日本出願特願２０１４−１０９６８４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１２７】  本発明は、例えば、ホストプロセッサとアクセラレータとを備えた情報処理システムにおいて、アプリケーションが含む一部の処理をアクセラレータにオフロードするマルチタスクジョブを実行するメモリ管理スケジューラに適用できる。また、複数の情報処理装置を備えた情報処理システムにおけるジョブディスパッチャにも適用可能である。
【符号の説明】
【０１２８】  １０  ホストプロセッサ  １１  メインメモリ  １２  ＲＯＭまたは記憶媒体  １００、５００、７００、８００  情報処理装置  ２００  メモリ処理制御部  ２０１  指示部  ２０２  確保済み判断部  ２０３  空き領域判断部  ２０４  保留要求判断部  ２０５  同一判断部  ２０６  優先度判断部  ２５０  確保要求処理部  ２５１  確保要求実行部  ２５２  確保要求保留部  ２５３  確保要求破棄部  ２６０  解放要求処理部  ２６１  解放要求実行部  ２６２  解放要求破棄部  ２６３  解放要求保留部  ３００  アプリケーション  ４００  ＯＳ
【図１】
2015182122.tif 000003
【図２】
2015182122.tif 000004
【図３Ａ】
2015182122.tif 000005
【図３Ｂ】
2015182122.tif 000006
【図４】
2015182122.tif 000007
【図５】
2015182122.tif 000008
【図６】
2015182122.tif 000009
【図７】
2015182122.tif 000010
【図８】
2015182122.tif 000011
【図９】
2015182122.tif 000012
【図１０】
2015182122.tif 000013
【図１１Ａ】
2015182122.tif 000014
【図１１Ｂ】
2015182122.tif 000015
【図１２】
2015182122.tif 000016
【図１３】
2015182122.tif 000017
【図１４】
2015182122.tif 000018
【図１５】
2015182122.tif 000019
【図１６】
2015182122.tif 000020
【図１７】
2015182122.tif 000021
【手続補正書】
【提出日】平成28年11月17日(2016.11.17)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断する処理と、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断する処理と、
前記領域サイズを確保できないと判断された場合に前記メモリ確保要求を保留する処理と、
前記保留されているメモリ確保要求が無いと判断された場合に前記メモリ解放要求を破棄または保留する処理と
を、コンピュータに実行させるメモリ管理プログラム。
【国際調査報告】
2015182122.tif 000022
2015182122.tif 000023
2015182122.tif 000024
2015182122.tif 000025