JPWO2015182122A1 - 情報処理装置、情報処理システム、メモリ管理方法およびメモリ管理プログラム - Google Patents

情報処理装置、情報処理システム、メモリ管理方法およびメモリ管理プログラム Download PDF

Info

Publication number
JPWO2015182122A1
JPWO2015182122A1 JP2016523146A JP2016523146A JPWO2015182122A1 JP WO2015182122 A1 JPWO2015182122 A1 JP WO2015182122A1 JP 2016523146 A JP2016523146 A JP 2016523146A JP 2016523146 A JP2016523146 A JP 2016523146A JP WO2015182122 A1 JPWO2015182122 A1 JP WO2015182122A1
Authority
JP
Japan
Prior art keywords
memory
request
reservation
release
processing
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
JP2016523146A
Other languages
English (en)
Other versions
JP6358330B2 (ja
Inventor
孝道 宮本
孝道 宮本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2015182122A1 publication Critical patent/JPWO2015182122A1/ja
Application granted granted Critical
Publication of JP6358330B2 publication Critical patent/JP6358330B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Abstract

メモリ領域不足に伴うアプリケーション停止の回避と共に、メモリの確保及び解放に要するアプリケーション処理時間の削減によりスループットを向上することができる情報処理装置を開示する。係る情報処理装置は、メモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断し、前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断するメモリ処理制御手段と、前記メモリ処理制御手段により、前記領域サイズを確保できないと判断された場合、前記メモリ確保要求を保留する確保要求処理手段と、前記メモリ処理制御手段により、前記保留されているメモリ確保要求が無いと判断された場合、前記メモリ解放要求を破棄または保留する解放要求処理手段とを備える。

Description

本発明は、アプリケーションプログラムの実行の際に使用されるメモリの確保および解放を管理する技術に関する。
オペレーシングシステム(以下、「OS」と称する)は、様々なアプリケーションプログラムから送られるメモリ確保要求およびメモリ解放要求に応じて、要求されるサイズのメモリ領域を確保したり解放したりする機能を有する。
例えば、特許文献1には、アプリケーションプログラム(以下、単に「アプリケーション」とも称する)からのメモリ確保要求やメモリ解放要求に速やかに対応することにより、アプリケーションのパフォーマンス低下を抑える情報処理装置が開示されている。この情報処理装置では、アプリケーション全体で必要なサイズのメモリ領域をアプリケーション起動時に確保し、アプリケーション実行中に生じるメモリ確保要求に対し、起動時に既に確保した領域の一部をアプリケーションに渡す。そして、この情報処理装置は、アプリケーションからメモリ確保要求とメモリ解放要求とを仮想メモリに送信することを減らすことにより、メモリ確保処理とメモリ解放処理の実行時間を減らしている。
また、特許文献2には、資源運用の効率化と資源返却処理コストの削減を行う共有資源管理システムが開示される。この共有資源管理システムは、複数のプロセスをまとめたグループ単位で資源を管理し、利用終了した資源を仮返却する。そして、この共有資源管理システムは、他のグループからの割り当て要求があれば仮返却された資源を実際に返却し、返却された資源をその他のグループに割り当てる。他のグループからの割り当て要求がなければ、共有資源管理システムは、グループに含まれるプロセスがすべて終了した時に返却処理を行う。このように、共有資源管理システムは、仮返却によって、資源運用の効率化のために、プロセスごとの資源の返却と、まとめられた資源の返却とを行うことにより、資源返却での処理コストを削減する。
また、特許文献3には、メモリ領域の確保および解放に関する処理が開示される。
ここで、近年、アプリケーションの実行の際の負荷増加に対応するため、ホストプロセッサに加えて、高性能なメニーコアアクセラレータが搭載されたサーバが利用されている。メニーコアアクセラレータは、演算処理を行うコアを複数備えると共に、各コアが使用する有限のメモリ領域を備える構成を有する。
このようなメニーコアアクセラレータを搭載したサーバにおいてメニーコアアクセラレータが利用される際、以下の処理が行われる。すなわち、メニーコアアクセラレータに含まれるメモリの確保処理、ホストプロセッサが使用するメモリからメニーコアアクセラレータに含まれるメモリへのデータ転送処理、メニーコアアクセラレータにおける演算処理が行われる。さらに、メニーコアアクセラレータに含まれるメモリからホストプロセッサが使用するメモリへのデータ転送処理、および、メニーコアアクセラレータに含まれるメモリの解放処理が行われる。
このように、上記のようなサーバがメニーコアアクセラレータを利用する方式は、「オフロード方式」と呼ばれる。また、アプリケーションにおけるこの一連の処理を行う機能は、「オフロード部」と呼ばれる。上述したように、メモリの確保処理と解放処理は、アプリケーションからのメモリ確保要求およびメモリ解放要求に応じて、OSによって行われる。
ホストプロセッサが使用するメモリと、メニーコアアクセラレータに含まれるメモリとの間のデータ転送処理は、DMA(Direct Memory Access)により行われる。
特開2011−175395号公報 特開2012−146152号公報 特開平08−272621号公報
上述のように、ホストプロセッサが使用するメモリと、メニーコアアクセラレータに含まれるメモリとの間のデータ転送処理は、DMAにより行われる。この転送処理の間、メニーコアアクセラレータに含まれるメモリ領域は、「ピン止め」と呼ばれる方法により確保される。このピン止めにより確保されたメモリ領域は、スワップアウト(、すなわち補助記憶装置などに退避することにより、使用可能なメモリ領域を作ること)ができない。このため、メニーコアアクセラレータにおいて、演算処理の実行中に確保可能なメモリ領域が不足する虞がある。この場合、アプリケーションは、メモリ領域不足に起因するエラーによって停止してしまう虞があるという課題がある。
また、メニーコアアクセラレータは、一般に、ホストプロセッサより動作周波数が低い。このため、メニーコアアクセラレータにおけるメモリ確保処理とメモリ解放処理にかかる時間は、ホストプロセッサにおけるメモリ確保処理とメモリ解放処理にかかる時間よりも相対的に長い。よって、メニーコアアクセラレータは、サーバのスループットを低下させてしまうという課題もある。
上述した特許文献1では、メモリ管理機構は、所定容量のメモリ領域を確保しておき、アプリケーションからの要求に応じて、その確保されたメモリ領域のうちの未使用領域を利用したり解放したりする。しかしながら、この場合、複数のアプリケーションが同時に実行されると、メモリ領域不足によりエラーが生じる虞がある。
また、上述した特許文献2では、複数のプロセスグループ間での共有資源の受け渡しを最小限にするが、同じプロセスグループに共有資源を再度割り当てる際に、改めて割り当て処理が必要となる。よって、処理時間の削減はできない。
また、上述した特許文献3にも、上記課題を解決する技術は開示されない。
本発明は、上記課題を解決し、メモリ領域不足に伴うアプリケーション停止の回避と共に、メモリの確保及び解放に要するアプリケーション処理時間の削減によりスループットを向上できる情報処理装置等の提供を主要な目的とする。
本発明の第1の情報処理装置は、アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断するメモリ処理制御手段と、前記メモリ処理制御手段により、前記領域サイズを確保できないと判断された場合、前記メモリ確保要求を保留する確保要求処理手段と、前記メモリ処理制御手段により、前記保留されているメモリ確保要求が無いと判断された場合、前記メモリ解放要求を破棄または保留する解放要求処理手段とを備える。
本発明の第1の情報処理システムは、情報処理装置と、前記情報処理装置と通信路を介して接続され、前記アプリケーションに記述された演算処理に利用される第2のメモリを備えたアクセラレータとを備えた情報処理システムであって、前記情報処理装置に含まれるメモリ処理制御手段は、前記アプリケーションに記述された演算処理に利用される前記第2のメモリに対する第2のメモリ確保要求に応じて、前記第2のメモリの空き領域に前記第2のメモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記第2のメモリに対する第2のメモリ解放要求に応じて、保留されている前記第2のメモリ確保要求の有無を判断し、前記情報処理装置に含まれる前記解放要求処理手段は、前記メモリ処理制御手段により、前記領域サイズを確保できないと判断された場合、前記第2のメモリ確保要求を保留し、前記情報処理装置に含まれる前記解放要求処理手段は、前記メモリ処理制御手段により、前記保留されている第2のメモリ確保要求が無いと判断された場合、前記第2のメモリ解放要求を破棄または保留する。
本発明の第1のメモリ管理方法は、アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断し、前記領域サイズを確保できないと判断された場合、前記メモリ確保要求を保留し、前記保留されているメモリ確保要求が無いと判断された場合、前記メモリ解放要求を破棄または保留する。
本発明の第1のプログラム記録媒体は、アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断する処理と、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断する処理と、前記領域サイズを確保できないと判断された場合に前記メモリ確保要求を保留する処理と、前記保留されているメモリ確保要求が無いと判断された場合に前記メモリ解放要求を破棄または保留する処理とを、コンピュータに実行させるメモリ管理プログラムを記録する。
本願発明によれば、アプリケーションがメモリ領域不足により停止することを回避すると共に、アプリケーションによるメモリ確保処理とメモリ解放処理にかかる時間を削減することによりスループットを向上することができるという効果が得られる。
本発明の各実施形態に係る情報処理装置のハードウエア構成を例示する図である。 本発明の第1の実施形態に係る情報処理装置の構成を示す機能ブロック図である。 本発明の第1の実施形態に係る情報処理装置において実行される各種アプリケーションの処理を示すフローチャートである。 本発明の第1の実施形態に係る情報処理装置において実行される各種アプリケーションが含むメモリ確保要求とメモリ解放要求の構成を示す図である。 本発明の第1の実施形態に係る情報処理装置の詳細な構成を示すブロック図である。 本発明の第1の実施形態に係る情報処理装置におけるメモリ確保に関する処理を示すフローチャートである。 本発明の第1の実施形態に係る情報処理装置におけるメモリ解放に関する処理を示すフローチャートである。 本発明の第2の実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第2の実施形態に係る情報処理装置におけるメモリ確保に関する処理を示すフローチャートである。 本発明の第2の実施形態に係る情報処理装置におけるメモリ解放に関する処理を示すフローチャートである。 本発明の第3の実施形態に係る情報処理システムのハードウエア構成を例示する図である。 本発明の第3の実施形態に係る情報処理装置において実行される各種アプリケーションの処理を示すフローチャートである。 本発明の第3の実施形態に係る情報処理装置において実行される各種アプリケーションが含むアクセラレータメモリ確保要求とアクセラレータメモリ解放要求の構成を示す図である。 本発明の第5の実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第5の実施形態に係る情報処理装置において実行される各種アプリケーションが含むメモリ確保要求とメモリ解放要求の構成を示す図である。 本発明の第5の実施形態に係る情報処理装置におけるメモリ解放に関する処理を示すフローチャートである。 本発明の第6の実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第6の実施形態に係る情報処理装置におけるメモリ確保に関する処理を示すフローチャートである。 本発明の第7の実施形態に係る情報処理装置の構成を示すブロック図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。各実施形態において参照する図面において、同一要素には同一符号を付し、重複する説明を省略する場合がある。
第1の実施形態
図1は、本発明の第1の実施形態に係る情報処理装置100のハードウエア構成を例示する図である。また、図2は、図1に例示するハードウエア資源において実現される情報処理装置100の機能ブロック図である。図1に示す構成は、ホストプロセッサ10、メインメモリ11、およびROM(Read Only Memory)または記憶媒体12を備える。ホストプロセッサ10は、ROMまたは記憶媒体12に記憶された各種ソフトウエア・プログラム(コンピュータ・プログラム)を、メインメモリ11に読み出して実行することにより、情報処理装置100の全体的な動作を司る。すなわち、以下に示す各実施形態において、ホストプロセッサ10は、ROMまたは記憶媒体12を適宜参照しながら、情報処理装置100が備える各機能(各部)を実行するソフトウエア・プログラムを実行する。
図2に示すように、情報処理装置100は、メモリ処理制御部200、確保要求処理部250、解放要求処理部260、アプリケーション300およびOS400を備える。
アプリケーション300は、所定の処理を実施するプログラムコードが記述された1または複数のプログラムをそれぞれ含む、1または複数のアプリケーション・プログラムである。アプリケーション300は、図1に示すROMまたは記憶媒体12に記憶され、ユーザの指示または他のアプリケーションから呼び出されるのに応じて、図1に示すホストプロセッサ10により実行される。また、OS400も、図1に示すROMまたは記憶媒体12に記憶され、図1に示すホストプロセッサ10により実行される。
図3Aは、情報処理装置100において実行される各種アプリケーション300の処理を示すフローチャートである。アプリケーション300は、演算処理に先行して、メモリを確保するための処理(メモリ確保処理)と、メモリを解放するための処理(メモリ解放処理)に移行するための要求を実行する。すなわち、ホストプロセッサ10は、アプリケーション300を実行すると、まず、演算処理において利用するデータに関するメモリ確保要求を出力し、その要求に対するメモリ確保処理を、OS400に対して行う(S301)。この場合、OS400は、メモリ確保要求に応じて、メインメモリ11のうち要求されるメモリ領域を確保すると共に、そのメモリ領域を示すアドレス等の情報を、アプリケーション300に返す。
メモリが確保されると、ホストプロセッサ10は、アプリケーション300の演算処理を、メインメモリ11の上記確保された領域を利用して実行する(S302)。演算処理が終了すると、ホストプロセッサ10は、演算処理において使用したメインメモリ11における領域を解放するために、メモリ解放要求を出力し、その要求に応じたメモリ解放処理をOS400に対して行う(S303)。この場合、OS400は、メモリ解放要求で指示されたメインメモリ11の領域を解放することにより、他のメモリ確保要求に対して利用可能な状態にする。ホストプロセッサ10は、続いて、S301乃至S303と同様の処理であるS304乃至S306を行う。アプリケーション300は、このように、記述されるすべての演算処理の実行にあたり、メモリ確保、演算およびメモリ解放を含む一連の処理を行う。
図3Bに模式的に示すように、アプリケーション300は、メモリ確保要求310とメモリ解放要求320とを含む。メモリ確保要求310は、確保要求データ名311と、確保要求データサイズ312とを含む。また、メモリ解放要求320は、解放要求データ名321と、解放要求データサイズ322とを含む。確保要求データ名311は、メインメモリ11において確保されたメモリ領域を利用するデータの識別情報である。確保要求データサイズ312は、上記データの利用に必要な領域サイズを示す。解放要求データ名321は、解放するメモリ領域を利用していたデータの識別情報である。解放要求データサイズ322は、解放するメモリ領域のサイズを示す。
図4は、図2に示した情報処理装置100の詳細な構成を示すブロック図である。図4に示すように、情報処理装置100のメモリ処理制御部200は、指示部201、確保済み判断部202、空き領域判断部203および保留要求判断部204を備える。
確保要求処理部250は、確保要求実行部251、確保要求保留部252および確保要求破棄部253を備える。解放要求処理部260は、解放要求実行部261および解放要求破棄部262を備える。
メモリ処理制御部200は、アプリケーション300からメモリ確保要求310およびメモリ解放要求320を受け取ると共に、各要求に応じたメモリ処理(すなわち、メモリ確保処理およびメモリ解放処理)を制御する。確保要求処理部250は、メモリ処理制御部200が受け取ったメモリ確保要求310に応じて、OS400に対してメモリ確保処理を実行する。解放要求処理部260は、メモリ処理制御部200が受け取ったメモリ解放要求320に応じて、OS400に対してメモリ解放処理を実行する。
図5は、本第1の実施形態に係る情報処理装置100におけるメモリ確保に関する処理を示すフローチャートである。図5を参照して、情報処理装置100におけるメモリ確保に関する処理について説明する。
アプリケーション300は、ユーザからの指示または他のアプリケーションからの呼び出し等に応じて起動されると、メモリ処理制御部200にメモリ確保要求310を送る。メモリ処理制御部200は、受け取ったメモリ確保要求310に応じて、メモリ確保要求の実行、保留または破棄のいずれを行うかを決定すると共に、決定した処理を行う指示を、確保要求処理部250に送る。
すなわち、メモリ処理制御部200において、指示部201は、確保済み判断部202に、メモリ確保を要求するデータにすでにメモリ領域が確保されているか否かを判断するように指示する。確保済み判断部202は、受け取ったメモリ確保要求310に含まれる確保要求データ名311に基づいて、メモリ確保を要求するデータに、すでにメモリ領域が確保されているか否かを判断する(S401)。確保済み判断部202は、判断の結果と、すでにメモリ領域が確保されている場合はそのメモリ領域を示すアドレス等の情報を、指示部201に返す。
すでにメモリ領域が確保されている場合(S401においてYes)、指示部201は、メモリ確保要求310を破棄することを、確保要求処理部250に指示する。
確保要求処理部250は、指示部201からメモリ確保要求310の破棄指示を受けると、確保要求破棄部253においてメモリ確保要求310を破棄する(S402)。そして、指示部201は、確保済み判断部202により確保済みと判断されたメモリ領域を示すアドレス等の情報を、アプリケーション300に返す(S403)。
一方、上記S401において、上記メモリ領域が確保されていない場合(S401においてNo)、指示部201は、当該メモリ領域の確保が可能かどうかを判断することを、空き領域判断部203に指示する。空き領域判断部203は、当該指示に応じて、メモリの空き領域のサイズと、上記メモリ確保要求310に含まれる確保要求データサイズ312とを比較することにより、要求される領域サイズを空き領域に確保可能かどうか判断する(S404)。
指示部201は、上記確保が可能である場合(S404においてYes)、確保要求処理部250に、メモリ確保処理の実行を指示する。上記確保ができない場合(S404においてNo)、指示部201は、確保要求処理部250に、メモリ確保要求の保留を指示する。
確保要求処理部250は、上記メモリ確保要求の実行指示に応じて、確保要求実行部251においてメモリ確保を実行する(S405)。すなわち、確保要求実行部251は、OS400に対して、メモリ確保要求に応じたメモリ確保処理を実行すると共に、OS400から取得した確保されたメモリ領域を示す情報を、メモリ処理制御部200に返す。メモリ処理制御部200は、アプリケーション300に、確保されたメモリ領域を示す情報を返す(S406)。
ここで、メモリ確保処理およびメモリ解放処理は、一般的な方法により実施可能であるので、本実施形態においてその詳細な説明は省略する。例えば、上述した特許文献3には、プログラムが動的にメモリ領域を確保する必要がある場合、そのプログラム言語のライブラリまたはOSが用意するヒープ操作を基にしたメモリ領域確保の関数を呼ぶことによってメモリ領域を確保することが開示される。また、特許文献3には、確保されたメモリ領域をプログラム中で使用した後、同メモリ領域を解放する関数を呼び出すことが開示される。
一方、確保要求処理部250は、メモリ処理制御部200からのメモリ確保要求の保留指示に応じて、確保要求保留部252においてメモリ確保要求を保留する(S407)。メモリ確保要求が保留されると、アプリケーション300において、メモリの確保処理は一時停止される。
以上のように、情報処理装置100は、アプリケーション300からのメモリ確保要求310に応じた処理を行う。
図6は、本第1の実施形態に係る情報処理装置100におけるメモリ解放に関する処理を示すフローチャートである。図6を参照して、情報処理装置100におけるメモリ解放に関する処理について説明する。
メモリ処理制御部200は、アプリケーション300からメモリ解放要求320を受け取ると、メモリ解放要求の実行、破棄、または保留されているメモリ確保要求の実行のいずれを行うかを決定する。そして、メモリ処理制御部200は、決定した処理を行う指示を、確保要求処理部250または解放要求処理部260に送る。
すなわち、指示部201は、メモリ解放要求を破棄するか否かの判断のため、保留要求判断部204に、保留されているメモリ確保要求の有無を判断することを指示する。保留要求判断部204は、上記指示に応じて、保留されているメモリ確保要求の有無を判断する(S410)。保留要求判断部204は、例えば、上記図5におけるS407において、保留されたメモリ確保要求に関する情報を保持しておいてもよい。保留要求判断部204は、上記判断の結果を指示部201に返す。
指示部201は、保留されているメモリ確保要求が無い場合は、解放要求処理部260にメモリ解放要求320の破棄を指示し、保留されているメモリ確保要求が有る場合は、解放要求処理部260にメモリ解放要求320の実行を指示する。
解放要求処理部260は、上記メモリ解放要求320の破棄指示に応じて、解放要求破棄部262において、アプリケーション300からのメモリ解放要求320を破棄する(S411)。
一方、解放要求処理部260は、上記メモリ解放要求320の実行指示に応じて、解放要求実行部261において、OS400に対してメモリ解放要求320を実行する(S412)。OS400は、当該メモリ解放要求320に含まれる解放要求データ名321および解放要求データサイズ322により指定されるメモリ領域を解放する。
解放要求実行部261は、上記メモリ領域の解放を実行した旨を、指示部201に返す。続いて、指示部201は、保留されているメモリ確保要求310の実行が可能か否かを、空き領域判断部203に判断するように指示する。
空き領域判断部203は、上記指示に応じて、上記解放されたメモリ領域を含む空き領域のサイズと、上記保留されているメモリ確保要求により要求される領域サイズとを比較することにより、その要求されるメモリ領域の確保が可能かどうか判断する(S413)。空き領域判断部203は、当該判断の結果を、指示部201に返す。
指示部201は、上記確保が可能な場合、確保要求処理部250に、保留されているメモリ確保要求に応じたメモリ確保処理の実行を指示する。上記確保ができない場合、指示部201は、処理を終了する。
確保要求処理部250は、上記指示に応じて、保留されているメモリ確保要求に応じたメモリ確保処理を実行する(S414)。
以上のように、本第1の実施形態によれば、情報処理装置100は、アプリケーション300からのメモリ確保要求310およびメモリ解放要求320を受け取るメモリ処理制御部200を備える。メモリ処理制御部200は、空き領域判断部203において、メモリ確保要求310により要求される領域サイズをメインメモリ11の空き領域に確保できるか否かを判断する。メモリ処理制御部200は、上記確保ができない場合は、メモリ確保要求310を保留するように確保要求処理部250に指示する。すなわち、メモリ処理制御部200は、空き領域が不足する場合は、メモリ確保要求310を一旦保留し、他のメモリ解放要求320によりメモリが解放されたタイミングでメモリ確保を行う。この構成により、本第1の実施形態によれば、メモリ領域不足に起因したエラーによりアプリケーション300が停止することを回避できるという効果が得られる。
また、メモリ処理制御部200は、確保済み判断部202において、メモリ確保済みのデータと同一のデータに対するメモリ確保要求310であると判断された場合は、そのメモリ確保要求310を破棄する。また、メモリ処理制御部200は、保留要求判断部204において、保留されているメモリ確保要求310が無いと判断された場合は、メモリ解放要求320を破棄する。この構成により、本第1の実施形態によれば、確保済みのメモリ領域をメモリに空きがある場合は確保し続けることにより、メモリ確保要求およびメモリ解放要求を破棄できる(、すなわちメモリ確保処理およびメモリ解放処理を削減できる)。よって、これらメモリ処理にかかる時間の総和を削減できるという効果が得られる。
第2の実施形態
図7は、本発明の第2の実施形態に係る情報処理装置500の機能ブロック図である。図7に示す構成は、上記第1の実施形態に係る情報処理装置100におけるメモリ処理制御部200と解放要求処理部260に代えて、それぞれメモリ処理制御部510と解放要求処理部520を備える。
メモリ処理制御部510は、第1の実施形態において説明したメモリ処理制御部200の構成に加えて、同一判断部205を備える。解放要求処理部520は、第1の実施形態において説明した解放要求処理部260の構成に加えて、解放要求保留部263を備える。
図8は、本第2の実施形態に係る情報処理装置500におけるメモリ確保に関する処理を示すフローチャートである。図8は、上記第1の実施形態における図5に示すフローチャートが備える処理に加えて、S501乃至S504を備える。
図7および図8を参照して、情報処理装置500におけるメモリ確保に関する処理について説明する。
アプリケーション300は、ユーザからの指示または他のアプリケーションからの呼び出し等に応じて起動されると、メモリ処理制御部510にメモリ確保要求310を送る。メモリ処理制御部510は、受け取ったメモリ確保要求310に応じて、メモリ確保要求の実行、保留、破棄、または、保留されているメモリ解放要求の実行、破棄のいずれを行うかを決定する。そして、メモリ処理制御部510は、決定した処理を行う指示を、確保要求処理部250または解放要求処理部520に送る。
具体的には、確保済み判断部202は、受け取ったメモリ確保要求310に含まれる確保要求データ名311に基づいて、メモリ確保を要求するデータに、すでにメモリ領域が確保されているか否かを判断する(S401)。すでにメモリ領域が確保されている場合(S401においてYes)、指示部201は、メモリ確保要求310を破棄することを、確保要求処理部250に指示する。なお、このとき、同一判断部205は、当該メモリ確保要求310に含まれる確保要求データ名311と確保要求データサイズ312を保持しておく。
確保要求処理部250は、指示部201からメモリ確保要求310の破棄指示を受けると、確保要求破棄部253においてメモリ確保要求310を破棄する(S402)。
指示部201は、同一判断部205に、同一判断を行うことを指示する。同一判断部205は、上記指示に応じて、保持している確保要求データ名311に基づいて、同一判断を行う。すなわち、同一判断部205は、メモリ確保要求310を要求したアプリケーションと同一のアプリケーションからの同一のデータに対する、保留されているメモリ解放要求の有無を判断する(S501)。同一判断部205は、判断の結果を指示部201に返す。
上記保留されているメモリ解放要求が有る場合、指示部201は、解放要求処理部520に、当該メモリ解放要求の破棄指示を送る。解放要求処理部520は、解放要求破棄部262において、保留されているメモリ解放要求を破棄する(S502)。
また、指示部201は、S401において、確保済み判断部202により確保済みと判断されたメモリ領域を示すアドレス等の情報を、アプリケーション300に返す(S403)。
一方、S401において、上記メモリ領域が確保されていない場合、指示部201は、当該メモリ領域の確保が可能かどうかを、空き領域判断部203に判断することを指示する。空き領域判断部203は、当該指示に応じて、メモリの空き領域のサイズと、上記メモリ確保要求310に含まれる確保要求データサイズ312とを比較することにより、要求される領域サイズを空き領域に確保可能かどうか判断する(S404)。
上記確保が可能である場合(S404においてYes)、指示部201は、第1の実施形態と同様に、S405およびS406を行う。
一方、上記確保ができない場合(S404においてNo)、指示部201は、第1の実施形態におけるメモリ確保要求の保留(S407)の前に、保留されているメモリ解放要求の有無を判断する。保留されているメモリ解放要求が有る場合、指示部201は、メモリ解放要求を実行することにより、空き領域を作る。
すなわち、指示部201は、保留要求判断部204に、保留されているメモリ解放要求の有無を判断するように指示する。保留要求判断部204は、上記指示に応じて、保留されているメモリ解放要求の有無を判断する(S503)。保留要求判断部204は、例えば、後述する図9におけるS550において、保留されたメモリ解放要求に関する情報を保持しておいてもよい。保留要求判断部204は、判断の結果を指示部201に返す。
指示部201は、保留されているメモリ解放要求が無い場合は、確保要求処理部250に、メモリ確保要求310の保留を指示する。
確保要求処理部250は、上記メモリ確保要求310の保留の指示に応じて、確保要求保留部252において、メモリ確保要求310を保留する(S407)。一方、指示部201は、保留されているメモリ解放要求が有る場合は、解放要求処理部520にメモリ解放要求320の実行を指示する。解放要求処理部520は、上記メモリ解放要求320の実行の指示に応じて、解放要求実行部261において、メモリ解放要求320を実行する(S504)。その後、指示部201は、S404に処理を戻し、メモリ解放要求320の実行により空いたメモリを含めた空きメモリ領域に、メモリ確保要求310により要求される領域サイズを確保できるか否かを判断する。
以上のように、情報処理装置500は、アプリケーション300からのメモリ確保要求310に応じた処理を行う。
図9は、本第2の実施形態に係る情報処理装置500におけるメモリ解放に関する処理を示すフローチャートである。図9を参照して、情報処理装置500におけるメモリ解放に関する処理について説明する。
メモリ処理制御部510は、アプリケーション300からメモリ解放要求320を受け取ると、メモリ解放要求の実行、保留、または保留されているメモリ確保要求の実行のいずれを行うかを決定する。そして、メモリ処理制御部510は、決定した処理を行う指示を、確保要求処理部250または解放要求処理部520に送る。
指示部201は、図9におけるS410乃至S414に関して、上記第1の実施形態と同様の処理を行う。
S410において、指示部201は、保留要求判断部204に、保留されているメモリ確保要求の有無を判断するように指示する。保留要求判断部204は、上記指示に応じて、保留されているメモリ確保要求の有無を判断する(S410)。保留要求判断部204は、例えば、上記図8におけるS407において、保留されたメモリ確保要求に関する情報を保持しておいてもよい。保留要求判断部204は、上記判断の結果を指示部201に返す。
指示部201は、保留されているメモリ確保要求が無い場合は、解放要求処理部520にメモリ解放要求320の保留を指示する。解放要求処理部520は、上記指示に応じて、解放要求保留部263において、メモリ解放要求320を保留する(S550)。このとき、保留要求判断部204は、保留されたメモリ解放要求に関する情報を保持しておく。 このように、本第2の実施形態によれば、メモリ処理制御部510は、メモリ解放要求320を受けた際に、保留されているメモリ確保要求310が無い場合、メモリ解放要求320を保留することを指示する。メモリ処理制御部510は、メモリ確保要求310を受けた際に、要求される領域サイズを空き領域に確保できない場合、保留されているメモリ解放要求に応じたメモリ解放処理を実行することを指示する。つまり、情報処理装置500は、保留されているメモリ確保要求310がない場合はメモリ解放要求320を保留することにより、確保したメモリを解放せず、確保し続ける。この構成により、本第2の実施形態によれば、要求されるサイズの空き領域を確保できる限りは、メモリ解放要求を保留して、メモリをできる限り確保するので、メモリ不足に起因するメモリ確保要求310の保留時間を短縮できるという効果が得られる。
第3の実施形態
図10は、本第3の実施形態に係る情報処理システム150のハードウエア構成を示す図である。図10に示すように、情報処理システム150は、情報処理装置100と、当該情報処理装置100と通信路15を介して接続されるアクセラレータ110とを備える。
情報処理装置100は、上記第1の実施形態において、図1および図2を参照して説明した構成と同様の構成を有する。
アクセラレータ110は、アクセラレータプロセッサ21とアクセラレータメモリ22とを備える。アクセラレータ110は、ホストプロセッサ10からの指示に基づいて動作する。すなわち、アクセラレータプロセッサ21は、ホストプロセッサ10からの指示に基づいて、アクセラレータメモリ22を利用しながら、アプリケーションに記述される演算処理を実行する。
図11Aは、図10に示すようなアクセラレータ110を搭載した情報処理システム150において実行される図11Bに示すアプリケーション600の処理を示すフローチャートである。アプリケーション600は、メモリ確保処理に移行するための要求(S301)、ホストプロセッサが実行する演算処理(S302)、メモリ解放処理に移行するための要求(S303)およびオフロード処理S610を実行する。
S301乃至S303に示す処理は、ホストプロセッサ10がアプリケーション600をメインメモリ11を利用して実行する処理である。オフロード処理S610は、ホストプロセッサ10が、アプリケーション600を、アクセラレータ110が実行するように制御する処理である。
アプリケーション600は、アクセラレータメモリ22における所定の領域を確保するためのアクセラレータメモリ確保要求(S611)、アクセラレータプロセッサ21が実行するアクセラレータ演算処理(S612)を実行する。さらに、アプリケーション600は、アクセラレータメモリ22を解放するためのアクセラレータメモリ解放要求(S613)を実行する。
ホストプロセッサ10は、メインメモリ11においてアプリケーション600を実行すると共に、アクセラレータ110におけるアクセラレータプロセッサ21の動作と、アクセラレータメモリ22に対するメモリ確保要求とメモリ解放要求とを管理する。
ホストプロセッサ10は、アプリケーション600を実行すると、上記第1の実施形態と同様に、S301乃至S303を実行する。続いて、ホストプロセッサ10は、オフロード処理S610を、アクセラレータ110において実行する。すなわち、ホストプロセッサ10は、アクセラレータ演算処理(S612)において利用するデータに対して、アクセラレータメモリ22の領域を確保するために、アクセラレータメモリ確保要求を出力する(S611)。そして、ホストプロセッサ10は、その要求に対するアクセラレータメモリ確保処理を、アクセラレータ110におけるOS(不図示)に対して行う。アクセラレータ110におけるOSは、アクセラレータメモリ確保要求に応じて、アクセラレータメモリ22のうち要求されるメモリ領域を確保すると共に、そのメモリ領域を示すアドレス等の情報をアプリケーション600に返す。
メモリが確保されると、アクセラレータプロセッサ21は、アクセラレータ演算処理を、アクセラレータメモリ22の上記確保された領域を利用して実行する(S612)。アクセラレータ演算処理が終了すると、ホストプロセッサ10は、アクセラレータ演算処理において使用したアクセラレータメモリ22における領域を解放するために、アクセラレータメモリ解放要求を出力する。ホストプロセッサ10は、その要求に対するアクセラレータメモリ解放処理をOSに対して行う(S613)。アクセラレータ110におけるOSは、アクセラレータメモリ解放要求で指示されたアクセラレータメモリ22の領域を解放する。アプリケーション600は、メモリ確保、演算およびメモリ解放を含む一連の処理と、オフロード処理S610を1または複数有する。
図10に示す情報処理システム150が備える情報処理装置100は、上記第1の実施形態において説明した図4に示す構成を有する。また、情報処理装置100は、図11Bに示すアプリケーション600を実行する。
情報処理装置100が備えるメモリ処理制御部200は、アプリケーション600からアクセラレータメモリ確保要求620を受けると、上記第1の実施形態において図5を参照して説明したメインメモリ11に対する処理を、アクセラレータ110におけるアクセラレータメモリ22に対して実行する。
また、メモリ処理制御部200は、アプリケーション600からアクセラレータメモリ解放要求630を受けると、上記第1の実施形態において図6を参照して説明したメインメモリ11に対する処理を、アクセラレータ110におけるアクセラレータメモリ22に対して実行する。
また、情報処理装置100が備える確保要求処理部250および解放要求処理部260は、メモリ処理制御部200から指示を受けると、上記第1の実施形態において説明したOS400に対する処理を、アクセラレータ110におけるOSに対して実行する。
以上のように、本第3の実施形態によれば、情報処理システム150は、ホストプロセッサ10とメインメモリ11とを備えた情報処理装置100に加えて、アクセラレータ110を備える。情報処理装置100は、アプリケーション600から、アクセラレータメモリ確保要求620およびアクセラレータメモリ解放要求630を受けると、アクセラレータ110が備えるOSを介して、上記第1の実施形態と同様に、アクセラレータメモリ22の確保または解放を実行する。この構成により、本第3の実施形態によれば、アクセラレータ110を備えた情報処理システム150においても、ホストプロセッサ10は、アクセラレータメモリ22の領域不足に起因したエラーによりアプリケーション600が停止することを回避できる。また、本第3の実施形態によれば、アクセラレータメモリ確保処理とアクセラレータメモリ解放処理にかかる時間の総和を削減できるという効果が得られる。
第4の実施形態
第4の実施形態では、上記第3の実施形態において説明した情報処理システム150が、情報処理装置として、上記第2の実施形態において図7に示した情報処理装置500を備える場合について説明する。
本第4の実施形態に係る情報処理装置500は、アクセラレータ110に対して、上記第2の実施形態において説明した処理を行う。
すなわち、情報処理装置500が備えるメモリ処理制御部510は、アプリケーション600からアクセラレータメモリ確保要求620を受けると、上記第2の実施形態において図8を参照して説明したメインメモリ11に対する処理を、アクセラレータ110におけるアクセラレータメモリ22に対して実行する。
また、メモリ処理制御部510は、アプリケーション600からアクセラレータメモリ解放要求630を受けると、上記第2の実施形態において図9を参照して説明したメインメモリ11に対する処理を、アクセラレータ110におけるアクセラレータメモリ22に対して実行する。
また、情報処理装置500が備える確保要求処理部250および解放要求処理部520は、メモリ処理制御部510から指示を受けると、上記第2の実施形態において説明したOS400に対する処理を、アクセラレータ110におけるOSに対して実行する。
以上のように、本第4の実施形態によれば、アクセラレータ110を備えた情報処理システム150において、情報処理装置500は、アプリケーション600から、アクセラレータメモリ確保要求620およびアクセラレータメモリ解放要求630を受けると、アクセラレータ110が備えるOSを介して、上記第2の実施形態と同様に、アクセラレータメモリ22の確保または解放を実行する。この構成により、本第4の実施形態によれば、アクセラレータ110を備えた情報処理システム150においても、第2の実施形態における効果と同様に、メモリ不足に起因するメモリ確保要求310の保留時間を短縮できるという効果が得られる。
第5の実施形態
図12は、本発明の第5の実施形態に係る情報処理装置700の機能ブロック図である。図12に示す構成は、上記第1の実施形態に係る情報処理装置100におけるメモリ処理制御部200に代えて、メモリ処理制御部710を備える。
メモリ処理制御部710は、第1の実施形態において説明したメモリ処理制御部200の構成に加えて、優先度判断部206を備える。
情報処理装置700は、各種アプリケーション650を実行する。図13は、情報処理装置700において実行される各種アプリケーション650に共通する機能を簡略化して示す図である。図13に示すように、アプリケーション650は、メモリ確保要求660とメモリ解放要求670を備える。メモリ確保要求660は、確保要求データ名311、確保要求データサイズ312および優先度661を含む。メモリ解放要求670は、解放要求データ名321、解放要求データサイズ322および優先度671を含む。
確保要求データ名311、確保要求データサイズ312、解放要求データ名321および解放要求データサイズ322は、第1の実施形態における説明と同様である。
優先度661は、当該メモリ確保要求660を要求したアプリケーション650の、他のアプリケーション650に対する優先度を示す情報である。優先度661は、優先順位または優先度合等を示す値であってよい。
メモリ処理制御部710が備える優先度判断部206は、最も優先度が高いアプリケーション650を判断する。
図14は、本第5の実施形態に係る情報処理装置700におけるメモリ解放に関する処理を示すフローチャートである。図14を参照して、情報処理装置700におけるメモリ解放に関する処理について説明する。なお、メモリ確保に関する処理については、情報処理装置700におけるメモリ処理制御部710により、第1の実施形態において図5を参照して説明した処理が実行される。
メモリ解放要求670を受けた場合、メモリ処理制御部710は、図14に示すS410乃至S413に関して、上記図6に示すS410乃至S413と同様の処理を行う。メモリ処理制御部710は、S413において、要求されるメモリ領域の確保が可能と判断した場合、保留されているメモリ確保要求660が複数あれば、アプリケーションの優先度の判断を行うように優先度判断部206に指示する。
優先度判断部206は、上記指示に応じて、保留されているメモリ確保要求660にそれぞれ含まれる優先度661を比較することにより、優先度が最も高いメモリ確保要求660を判断すると共に、判断の結果を指示部201に返す。
指示部201は、上記優先度が最も高いと判断されたメモリ確保要求660を実行することを、確保要求処理部250に指示する。確保要求処理部250は、上記指示に応じて、優先度が最も高いメモリ確保要求660を実行する(S701)。
以上のように、本第5の実施形態によれば、複数のアプリケーション650は、それぞれ優先度661、671を有し、情報処理装置700が備えるメモリ処理制御部710は、優先度判断部206を有する。優先度判断部206は、保留されているメモリ確保要求660のうち優先度661が最も高いメモリ確保要求660を判断し、確保要求処理部250は、そのメモリ確保要求660を優先的に実行する。この構成により、本第5の実施形態によれば、優先度の高いアプリケーション650からのメモリ確保要求660を優先的に実行することで、優先度の高いアプリケーション650から要求されるメモリ確保処理およびメモリ解放処理を優先的に削減できるという効果が得られる。
第6の実施形態
図15は、本発明の第6の実施形態に係る情報処理装置800の機能ブロック図である。図15に示す構成は、上記第2の実施形態に係る情報処理装置500におけるメモリ処理制御部510に代えて、メモリ処理制御部810を備える。
メモリ処理制御部810は、第2の実施形態において説明したメモリ処理制御部510の構成に加えて、優先度判断部206を備える。
情報処理装置800は、第5の実施形態において図13を参照して説明したアプリケーション650を実行する。優先度判断部206は、アプリケーション650に含まれる優先度661、671に基づいて、最も優先度が高いアプリケーション650を判断する。
図16は、本第6の実施形態に係る情報処理装置800におけるメモリ確保に関する処理を示すフローチャートである。図16を参照して、情報処理装置800におけるメモリ確保に関する処理について説明する。
メモリ確保要求660を受けた場合、メモリ処理制御部810は、図16に示すS401乃至S407およびS501乃至S503に関して、第2の実施形態において説明した図8に示すS401乃至S407およびS501乃至S503と同様の処理を行う。メモリ処理制御部810は、S503において、保留されているメモリ解放要求670が複数あれば、アプリケーションの優先度の判断を行うように優先度判断部206に指示する。
優先度判断部206は、上記指示に応じて、保留されているメモリ解放要求670にそれぞれ含まれる優先度671を比較することにより、優先度が最も低いメモリ解放要求670を判断すると共に、判断の結果を指示部201に返す。
指示部201は、上記優先度が最も低いと判断されたメモリ解放要求670を実行することを、解放要求処理部520に指示する。解放要求処理部520は、上記指示に応じて、優先度が最も低いメモリ解放要求670を実行する(S702)。
なお、メモリ解放要求670を受けた場合、情報処理装置800におけるメモリ処理制御部810は、第2の実施形態において図9を参照して説明した処理を実行する。
以上のように、本第6の実施形態によれば、複数のアプリケーション650は、それぞれ優先度661、671を有し、情報処理装置800が備えるメモリ処理制御部810は、優先度判断部206を備える。優先度判断部206は、保留されているメモリ解放要求670のうち優先度671が最も低いメモリ解放要求670を判断し、解放要求処理部520は、そのメモリ解放要求670を優先的に実行する。この構成により、本第6の実施形態によれば、優先度の低いアプリケーション650からのメモリ解放要求670を優先的に実行することで、優先度の高いアプリケーション650から要求されるメモリ確保処理およびメモリ解放処理を優先的に削減できる効果が得られる。また、本第6の実施形態によれば、要求されるサイズの空き領域を確保できない場合に、保留されているメモリ解放要求670を実行するので、メモリ不足に起因するメモリ確保要求660の保留時間を短縮できるという効果が得られる。
第7の実施形態
図17は、本発明の第7の実施形態に係る情報処理装置900の機能ブロック図である。図17に示すように、情報処理装置900は、メモリ処理制御部910、確保要求処理部920および解放要求処理部930を備える。
メモリ処理制御部910は、アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、メモリの空き領域にメモリ確保要求により要求される領域サイズを確保可能かを判断し、アプリケーションに記述された演算処理において利用されたメモリに対するメモリ解放要求を受けると、保留されているメモリ確保要求の有無を判断する。
確保要求処理部920は、メモリ処理制御部910により、領域サイズを確保できないと判断された場合、メモリ確保要求を保留する。解放要求処理部930は、メモリ処理制御部910により、保留されているメモリ確保要求が無いと判断された場合、メモリ解放要求を破棄または保留する。
上記構成を採用することにより、本第7の実施形態によれば、メモリ領域不足に伴うアプリケーション停止の回避と共に、メモリの確保及び解放に要するアプリケーション処理時間の削減によりスループットを向上することができるという効果が得られる。
なお、上述した各実施形態では、図4等に示した情報処理装置における各ブロックに示す機能を、図1に示すホストプロセッサ10が実行する一例として、ソフトウエア・プログラムによって実現する場合について説明した。しかしながら、図4等に示した情報処理装置における各ブロックに示す機能は、一部または全部を、ハードウエアとして実現してもよい。
また、各実施形態を例に説明した本発明は、情報処理装置に対して、上記説明した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、ホストプロセッサ10がメインメモリ11に読み出して実行することによって達成される。
また、係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ(一時記憶媒体)またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2014年5月28日に出願された日本出願特願2014−109684を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、例えば、ホストプロセッサとアクセラレータとを備えた情報処理システムにおいて、アプリケーションが含む一部の処理をアクセラレータにオフロードするマルチタスクジョブを実行するメモリ管理スケジューラに適用できる。また、複数の情報処理装置を備えた情報処理システムにおけるジョブディスパッチャにも適用可能である。
10 ホストプロセッサ
11 メインメモリ
12 ROMまたは記憶媒体
100、500、700、800 情報処理装置
200 メモリ処理制御部
201 指示部
202 確保済み判断部
203 空き領域判断部
204 保留要求判断部
205 同一判断部
206 優先度判断部
250 確保要求処理部
251 確保要求実行部
252 確保要求保留部
253 確保要求破棄部
260 解放要求処理部
261 解放要求実行部
262 解放要求破棄部
263 解放要求保留部
300 アプリケーション
400 OS

Claims (10)

  1. アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断するメモリ処理制御手段と、
    前記メモリ処理制御手段により、前記領域サイズを確保できないと判断された場合、前記メモリ確保要求を保留する確保要求処理手段と、
    前記メモリ処理制御手段により、前記保留されているメモリ確保要求が無いと判断された場合、前記メモリ解放要求を破棄または保留する解放要求処理手段と
    を備えた情報処理装置。
  2. 前記メモリ処理制御手段は、
    前記メモリ確保要求を受けると、当該メモリ確保要求によりメモリ確保を要求する情報に対して、前記メモリが確保済みであるか否かを判断し、
    前記確保要求処理手段は、
    前記メモリ処理制御手段により前記メモリが確保済みであると判断された場合、前記メモリ確保要求を破棄する
    請求項1記載の情報処理装置。
  3. 前記メモリ解放要求に応じて、前記メモリ処理制御手段により前記保留されているメモリ確保要求の有無を判断された結果、前記保留されているメモリ確保要求が有ると判断された場合、
    前記解放要求処理手段は、前記メモリ解放要求に応じた解放処理を実行し、
    前記確保要求処理手段は、前記保留されているメモリ確保要求に応じた確保処理を実行する
    請求項1または請求項2記載の情報処理装置。
  4. 前記確保要求処理手段は、
    前記保留されているメモリ確保要求に応じた確保処理を実行するにあたり、前記メモリ確保要求に含まれる優先度が最も高いメモリ確保要求に応じた確保処理を実行する
    請求項3記載の情報処理装置。
  5. 前記解放要求処理手段は、
    前記メモリ解放要求に応じて、前記メモリ処理制御手段により前記保留されているメモリ確保要求の有無を判断された結果、前記保留されているメモリ確保要求が無いと判断された場合に前記メモリ解放要求を保留し、
    前記メモリ確保要求に応じて、前記メモリ処理制御手段により前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断された結果、確保できないと判断された場合に前記保留したメモリ解放要求に応じた解放処理を実行する
    請求項1ないし請求項4のいずれか1項記載の情報処理装置。
  6. 前記メモリ確保要求に応じて、
    前記メモリ処理制御手段は、
    前記メモリ確保要求によりメモリ確保を要求する情報に対して、前記メモリが確保済みであるか否かを判断し、
    前記確保要求処理手段は、
    前記メモリ処理制御手段により前記メモリが確保済みであると判断された場合、前記メモリ確保要求を破棄し、
    前記解放要求処理手段は、
    前記確保要求処理手段により破棄されたメモリ確保要求によりメモリ確保を要求する情報からの、前記保留されているメモリ解放要求を破棄する
    請求項5記載の情報処理装置。
  7. 前記メモリ確保要求に応じて、
    前記メモリ処理制御手段により前記メモリの空き領域に当該メモリ確保要求により要求される領域サイズを確保可能かを判断された結果、確保できないと判断された場合、
    前記解放要求処理手段は、前記保留したメモリ解放要求に含まれる優先度が最も低いメモリ解放要求に応じた解放処理を実行する
    請求項5記載の情報処理装置。
  8. 請求項1ないし請求項6のいずれか1項記載の情報処理装置と、
    前記情報処理装置と通信路を介して接続され、前記アプリケーションに記述された演算処理に利用される第2のメモリを備えたアクセラレータとを備えた情報処理システムであって、
    前記情報処理装置に含まれるメモリ処理制御手段は、
    前記アプリケーションに記述された演算処理に利用される前記第2のメモリに対する第2のメモリ確保要求に応じて、前記第2のメモリの空き領域に前記第2のメモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記第2のメモリに対する第2のメモリ解放要求に応じて、保留されている前記第2のメモリ確保要求の有無を判断し、
    前記情報処理装置に含まれる前記解放要求処理手段は、前記メモリ処理制御手段により、前記領域サイズを確保できないと判断された場合、前記第2のメモリ確保要求を保留し、
    前記情報処理装置に含まれる前記解放要求処理手段は、前記メモリ処理制御手段により、前記保留されている第2のメモリ確保要求が無いと判断された場合、前記第2のメモリ解放要求を破棄または保留する
    情報処理システム。
  9. アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断し、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断し、
    前記領域サイズを確保できないと判断された場合、前記メモリ確保要求を保留し、
    前記保留されているメモリ確保要求が無いと判断された場合、前記メモリ解放要求を破棄または保留する
    メモリ管理方法。
  10. アプリケーションに記述された演算処理に利用されるメモリに対するメモリ確保要求を受けると、前記メモリの空き領域に前記メモリ確保要求により要求される領域サイズを確保可能かを判断する処理と、前記アプリケーションに記述された前記演算処理において利用された前記メモリに対するメモリ解放要求を受けると、保留されている前記メモリ確保要求の有無を判断する処理と、
    前記領域サイズを確保できないと判断された場合に前記メモリ確保要求を保留する処理と、
    前記保留されているメモリ確保要求が無いと判断された場合に前記メモリ解放要求を破棄または保留する処理と
    を、コンピュータに実行させるメモリ管理プログラムを記録するプログラム記録媒体。
JP2016523146A 2014-05-28 2015-05-26 情報処理装置、情報処理システム、メモリ管理方法およびメモリ管理プログラム Active JP6358330B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014109684 2014-05-28
JP2014109684 2014-05-28
PCT/JP2015/002649 WO2015182122A1 (ja) 2014-05-28 2015-05-26 情報処理装置、情報処理システム、メモリ管理方法およびプログラム記録媒体

Publications (2)

Publication Number Publication Date
JPWO2015182122A1 true JPWO2015182122A1 (ja) 2017-04-20
JP6358330B2 JP6358330B2 (ja) 2018-07-18

Family

ID=54698469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016523146A Active JP6358330B2 (ja) 2014-05-28 2015-05-26 情報処理装置、情報処理システム、メモリ管理方法およびメモリ管理プログラム

Country Status (3)

Country Link
US (1) US9940053B2 (ja)
JP (1) JP6358330B2 (ja)
WO (1) WO2015182122A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05210524A (ja) * 1991-08-23 1993-08-20 Internatl Business Mach Corp <Ibm> 記憶装置管理方法、コンピュータシステム及びコンピュータシステムで使用するための製造物品
JP2011175395A (ja) * 2010-02-24 2011-09-08 Canon Electronics Inc 情報処理装置、画像読取装置、携帯端末、情報処理装置のメモリ制御方法、及び、プログラム
JP2012503825A (ja) * 2008-09-26 2012-02-09 マイクロソフト コーポレーション 選択的に軽減を使用してエラーを低減するメモリー管理技術
JP2012089103A (ja) * 2010-03-24 2012-05-10 Fuji Xerox Co Ltd 計算資源制御装置及び計算資源制御プログラム
JP2012146152A (ja) * 2011-01-13 2012-08-02 Nec Corp 共有資源管理システム及び共有資源管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272621A (ja) 1995-03-31 1996-10-18 Hitachi Ltd 動的メモリ領域を確保する関数呼出しの処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05210524A (ja) * 1991-08-23 1993-08-20 Internatl Business Mach Corp <Ibm> 記憶装置管理方法、コンピュータシステム及びコンピュータシステムで使用するための製造物品
JP2012503825A (ja) * 2008-09-26 2012-02-09 マイクロソフト コーポレーション 選択的に軽減を使用してエラーを低減するメモリー管理技術
JP2011175395A (ja) * 2010-02-24 2011-09-08 Canon Electronics Inc 情報処理装置、画像読取装置、携帯端末、情報処理装置のメモリ制御方法、及び、プログラム
JP2012089103A (ja) * 2010-03-24 2012-05-10 Fuji Xerox Co Ltd 計算資源制御装置及び計算資源制御プログラム
JP2012146152A (ja) * 2011-01-13 2012-08-02 Nec Corp 共有資源管理システム及び共有資源管理方法

Also Published As

Publication number Publication date
US9940053B2 (en) 2018-04-10
US20170083258A1 (en) 2017-03-23
WO2015182122A1 (ja) 2015-12-03
JP6358330B2 (ja) 2018-07-18

Similar Documents

Publication Publication Date Title
CN108647104B (zh) 请求处理方法、服务器及计算机可读存储介质
EP3425502A1 (en) Task scheduling method and device
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
US20130152099A1 (en) Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
EP3796168A1 (en) Information processing apparatus, information processing method, and virtual machine connection management program
CN111104208B (zh) 进程调度管理方法、装置、计算机设备及存储介质
KR101680109B1 (ko) 복수 코어 장치 및 그의 로드 조정 방법
JP2005056067A (ja) Dma転送制御装置
KR20070090649A (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
US10241822B2 (en) Information processing apparatus for moving virtual machine and method of moving virtual machine
JP2018063505A (ja) メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム
JPH012145A (ja) 仮想計算機システムの資源管理方式
JP2009217750A (ja) コンピュータシステム、入出力優先度制御方法、及びプログラム
US20120260058A1 (en) Memory management apparatus, memory management method, and control program
JP6358330B2 (ja) 情報処理装置、情報処理システム、メモリ管理方法およびメモリ管理プログラム
WO2014188642A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
JP2014078214A (ja) スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
JP4017005B2 (ja) 演算装置
WO2021253875A1 (zh) 内存管理方法和相关产品
KR20160061726A (ko) 인터럽트 핸들링 방법
JP2015026132A (ja) リソース制御装置及び方法及びプログラム
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
JP2005327007A (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP6445876B2 (ja) リソース割当装置、リソース割当システム、および、リソース割当方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180413

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: 20180522

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180604

R150 Certificate of patent or registration of utility model

Ref document number: 6358330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150