(57)【要約】【課題】メモリーの消費電力を効率よく低減すること。【解決手段】個別に電源の投入および遮断が可能な複数のバンクを有するメモリーに、実行対象のプログラムを格納する際の格納サイズを、前記プログラム毎に記憶する記憶部と、実行指示が与えられた前記プログラムを、前記メモリーのうちの前記プログラムに対応する前記格納サイズ分のメモリー領域に割り当てることと、実行終了した前記プログラムが割り当てられていたメモリー領域を解放することと、前記プログラムの割り当て先のメモリー領域を所与のタイミングで再配置することと、前記プログラムが割り当てられているメモリー領域の属する前記バンクの電源を投入し、前記プログラムが割り当てられているメモリー領域のない前記バンクの電源を遮断する電源制御を行うことと、を実行する制御部と、を含むメモリー管理装置である。【選択図】図１
2017187895.tif 000002
【特許請求の範囲】
【請求項１】
個別に電源の投入および遮断が可能な複数のバンクを有するメモリーに、実行対象のプログラムを格納する際の格納サイズを、前記プログラム毎に記憶する記憶部と、
実行指示が与えられた前記プログラムを、前記メモリーのうちの前記プログラムに対応する前記格納サイズ分のメモリー領域に割り当てることと、実行終了した前記プログラムが割り当てられていたメモリー領域を解放することと、前記プログラムの割り当て先のメモリー領域を所与のタイミングで再配置することと、前記プログラムが割り当てられているメモリー領域の属する前記バンクの電源を投入し、前記プログラムが割り当てられているメモリー領域のない前記バンクの電源を遮断する電源制御を行うことと、を実行する制御部と、
を含むメモリー管理装置。
【請求項２】
前記割り当てることにおけるメモリー領域の割り当て先、および、前記再配置することにおけるメモリー領域の割り当て先は、所与の選択順位に従った前記バンクを優先して選択する、
請求項１に記載のメモリー管理装置。
【請求項３】
前記複数のバンクは、消費電力が異なり、
前記選択順位は、消費電力の少ない前記バンクを優先する順位である、
請求項２に記載のメモリー管理装置。
【請求項４】
前記複数のバンクは、アクセス速度が異なり、
前記選択順位は、アクセス速度が速い前記バンクを優先する順位である、
請求項２に記載のメモリー管理装置。
【請求項５】
前記複数のバンクは、消費電力およびアクセス速度が異なり、
前記制御部は、複数の順位の中から前記選択順位を決定すること、を更に実行する、
請求項２に記載のメモリー管理装置。
【請求項６】
前記複数の順位には、消費電力の少ない前記バンクを優先する順位、および、アクセス速度が速い前記バンクを優先する順位が含まれる、
請求項５に記載のメモリー管理装置。
【請求項７】
個別に電源の投入および遮断が可能な複数のバンクを有するメモリーへのプログラムの割り当てを制御するメモリー管理方法であって、
実行指示が与えられた前記プログラムを、前記メモリーのうちの前記プログラムに対応付けて定められた格納サイズ分のメモリー領域に割り当てることと、
実行終了した前記プログラムが割り当てられていたメモリー領域を解放することと、
前記プログラムの割り当て先のメモリー領域を所与のタイミングで再配置することと、
前記プログラムが割り当てられているメモリー領域の属する前記バンクの電源を投入し、前記プログラムが割り当てられているメモリー領域のない前記バンクの電源を遮断する電源制御を行うことと、
を含むメモリー管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリーへのプログラムの割り当てを制御するメモリー管理装置等に関する。
【背景技術】
【０００２】
従来から、消費電力の低減を目的としたメモリーの電源制御に関する技術が知られている。例えば特許文献１の技術では、近い将来アクセスされると予測されるメモリーアドレスを算出して、そのメモリーアドレスに応じたメモリーブロックに電源を供給することで消費電力の低減を図っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−１０５６８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の技術は、アクセスされると予測されたメモリーアドレスのメモリーブロックに電源を供給するものであるため、異なるメモリーブロックのメモリーアドレスが予測されれば電源供給されるメモリーブロックの数が増え、消費電力を効率よく低減できない場合があった。また、あくまでもアクセスが予測されたメモリーブロックに電源を供給するものであるため、その電力消費が無駄になる事態が生じ得る問題もあった。
【０００５】
本発明は、こうした事情に鑑みてなされたものであり、メモリーの消費電力を効率よく低減することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための第１の形態は、個別に電源の投入および遮断が可能な複数のバンクを有するメモリーに、実行対象のプログラムを格納する際の格納サイズを、前記プログラム毎に記憶する記憶部と、実行指示が与えられた前記プログラムを、前記メモリーのうちの前記プログラムに対応する前記格納サイズ分のメモリー領域に割り当てることと、実行終了した前記プログラムが割り当てられていたメモリー領域を解放することと、前記プログラムの割り当て先のメモリー領域を所与のタイミングで再配置することと、前記プログラムが割り当てられているメモリー領域の属する前記バンクの電源を投入し、前記プログラムが割り当てられているメモリー領域のない前記バンクの電源を遮断する電源制御を行うことと、を実行する制御部と、を含むメモリー管理装置である。
【０００７】
また、他の形態として、個別に電源の投入および遮断が可能な複数のバンクを有するメモリーへのプログラムの割り当てを制御するメモリー管理方法であって、実行指示が与えられた前記プログラムを、前記メモリーのうちの前記プログラムに対応付けて定められた格納サイズ分のメモリー領域に割り当てることと、実行終了した前記プログラムが割り当てられていたメモリー領域を解放することと、前記プログラムの割り当て先のメモリー領域を所与のタイミングで再配置することと、前記プログラムが割り当てられているメモリー領域の属する前記バンクの電源を投入し、前記プログラムが割り当てられているメモリー領域のない前記バンクの電源を遮断する電源制御を行うことと、を含むメモリー管理方法を構成してもよい。
【０００８】
第１の形態等によれば、実行指示が与えられたプログラムをメモリー領域に割り当てる実行時割り当てと、実行終了したプログラムが割り当てられていたメモリー領域の解放とを行い、かつ、所与のタイミングでプログラムの割り当て先のメモリー領域を再配置することができる。そして、プログラムが割り当てられているメモリー領域の属するバンクの電源を投入する一方、プログラムが割り当てられているメモリー領域のないバンクの電源を遮断することができる。これによれば、適宜のタイミングでメモリー領域を再配置しつつバンク毎に電源の投入および遮断を制御でき、メモリーの消費電力を効率よく低減することができる。
【０００９】
また、第２の形態として、前記割り当てることにおけるメモリー領域の割り当て先、および、前記再配置することにおけるメモリー領域の割り当て先は、所与の選択順位に従った前記バンクを優先して選択する、第１の形態のメモリー管理装置を構成してもよい。
【００１０】
第２の形態によれば、実行時割り当ておよび再配置でのメモリー領域の割り当て先のバンクを選択する際に所与の選択順位に従ったバンクを優先することができる。
【００１１】
また、第３の形態として、前記複数のバンクは、消費電力が異なり、前記選択順位は、消費電力の少ない前記バンクを優先する順位である、第２の形態のメモリー管理装置を構成してもよい。
【００１２】
第３の形態によれば、消費電力の少ないバンクを優先する選択順位に従って、割り当て先のバンクを選択することができる。
【００１３】
また、第４の形態として、前記複数のバンクは、アクセス速度が異なり、前記選択順位は、アクセス速度が速い前記バンクを優先する順位である、第２の形態のメモリー管理装置を構成してもよい。
【００１４】
第４の形態によれば、アクセス速度が速いバンクを優先する選択順位に従って、割り当て先のバンクを選択することができる。
【００１５】
また、第５の形態として、前記複数のバンクは、消費電力およびアクセス速度が異なり、前記制御部は、複数の順位の中から前記選択順位を決定すること、を更に実行する、第２の形態のメモリー管理装置を構成してもよい。
【００１６】
第５の形態によれば、消費電力およびアクセス速度が異なる複数のバンクについて定められる複数の順位の中から決定した選択順位に従って、割り当て先のバンクを選択することができる。
【００１７】
また、第６の形態として、前記複数の順位には、消費電力の少ない前記バンクを優先する順位、および、アクセス速度が速い前記バンクを優先する順位が含まれる、第５の形態のメモリー管理装置を構成してもよい。
【００１８】
第６の形態によれば、消費電力の少ないバンクを優先する順位又はアクセス速度が速いバンクを優先する順位を選んで選択順位を決定し、割り当て先のバンクを選択することができる。
【図面の簡単な説明】
【００１９】
【図１】メモリー管理装置の機能構成例を示すブロック図。
【図２】メモリーサイズ管理テーブルのデータ構成例を示す図。
【図３】メモリーアクセス管理テーブルのデータ構成例を示す図。
【図４】メモリー電源管理テーブルのデータ構成例を示す図。
【図５】全体処理の流れを示すフローチャート。
【図６】実行時割り当て処理の流れを示すフローチャート。
【図７】メモリー領域の実行時割り当てを説明する図。
【図８】図７に示す実行時割り当て後のメモリーアクセス管理テーブルのデータ内容を示す図。
【図９】図７に示す実行時割り当て後のメモリー電源管理テーブルのデータ内容を示す図。
【図１０】他のメモリー領域の実行時割り当てを説明する図。
【図１１】図１０に示す実行時割り当て後のメモリーアクセス管理テーブルのデータ内容を示す図。
【図１２】図１０に示す実行時割り当て後のメモリー電源管理テーブルのデータ内容を示す図。
【図１３】他のメモリー領域の実行時割り当てを説明する図。
【図１４】図１３に示す実行時割り当て後のメモリーアクセス管理テーブルのデータ内容を示す図。
【図１５】図１３に示す実行時割り当て後のメモリー電源管理テーブルのデータ内容を示す図。
【図１６】解放処理の流れを示すフローチャート。
【図１７】メモリー領域の解放を説明する図。
【図１８】図１７に示す解放後のメモリーアクセス管理テーブルのデータ内容を示す図。
【図１９】図１７に示す解放後のメモリー電源管理テーブルのデータ内容を示す図。
【図２０】他のメモリー領域の実行時割り当てを説明する図。
【図２１】図２０に示す実行時割り当て後のメモリーアクセス管理テーブルのデータ内容を示す図。
【図２２】図２０に示す実行時割り当て後のメモリー電源管理テーブルのデータ内容を示す図。
【図２３】再配置処理の流れを示すフローチャート。
【図２４】メモリー領域の再配置を説明する図。
【図２５】図２４に示す再配置後のメモリーアクセス管理テーブルのデータ内容を示す図。
【図２６】図２４に示す再配置後のメモリー電源管理テーブルのデータ内容を示す図。
【図２７】消費電力の少ない順にバンクを配列してメモリーを構成した場合の各バンクの通電時間割合を示す図。
【図２８】アクセス速度が速い順にバンクを配列してメモリーを構成した場合の各バンクのバンク使用割合を示す図。
【図２９】変形例におけるメモリー管理装置の機能構成例を示すブロック図。
【図３０】変形例におけるメモリー電源管理テーブルのデータ構成例を示す図。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明の好適な実施形態について説明する。なお、以下説明する実施形態によって本発明が限定されるものではなく、本発明を適用可能な形態が以下の実施形態に限定されるものでもない。また、図面の記載において、同一部分には同一の符号を付す。
【００２１】
［機能構成］
図１は、本実施形態におけるメモリー管理装置１の機能構成例を示すブロック図である。メモリー管理装置１は、メモリー３の制御を行うメモリーコントローラーであって、制御部１１と、記憶部１３と、メモリー電源切替部１５とを備える。
【００２２】
ここで、メモリー管理装置１が制御するメモリー３は、個別に電源の投入（ＯＮ）および遮断（ＯＦＦ）が可能な複数のバンク３０で構成され、例えばＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等を用いて実現できる。このメモリー３には、外部の演算装置による実行対象のプログラムや、当該プログラムにより読み書きされるデータが一時的に格納される。なお、バンクの数は２つ以上であればよく、特に限定されない。
【００２３】
制御部１１は、ＣＰＵ（Central Processing Unit）等のマイクロプロセッサーを用いて実現され、各機能部との間でデータの入出力制御を行ってメモリー管理装置１の動作を統括的に制御する。この制御部１１は、主な機能部として、メモリーアクセス管理部１１１と、メモリー電源管理部１１３とを備える。なお、各機能部は、個別の演算回路で実現することとしてもよいし、１つの演算回路がソフトウェア的な演算処理で個別に実現することとしてもよい。
【００２４】
メモリーアクセス管理部１１１は、外部演算装置からのプログラムの実行開始通知やメモリー割り当ての要求等（以下、「メモリー割り当て指示」という）を受けて当該実行指示が与えられたプログラム（詳細には当該プログラムの実行単位）をメモリー領域に割り当てる実行時割り当てを行うとともに、外部からのプログラムの終了通知やメモリー解放の要求等（以下、「メモリー解放指示」という）を受けて、当該プログラムが割り当てられていたメモリー領域を解放する。また、メモリーアクセス管理部１１１は、システムがスリープ又は休止等の待機状態となったことを受けて、実行中のプログラムの割り当て先のメモリー領域を必要に応じて再配置する。
【００２５】
実行時割り当ておよび再配置に際しては、バンク３０の配列順を選択順位として用い、配列順に従って割り当て先のバンク３０を選択する。本実施形態では、上段の「バンクＡ」からそのアルファベット表記の順番にバンク３０を選択し、先頭アドレスから割り当てを行う。既に割り当てられているメモリー領域がある場合は、その最後尾に次の割り当て先のメモリー領域を配置し、無駄なく割り当てる。なお、上から順番にバンク３０を選択する構成に限らず、下段の「バンクＺ」から上記と逆順にバンク３０を選ぶのでもよい。
【００２６】
メモリー電源管理部１１３は、各バンク３０に対する電力供給状態を管理する。そして、メモリーアクセス管理部１１１によるメモリー領域の実行時割り当て、解放、および再配置に際し、メモリー電源切替部１５を制御してプログラムが割り当てられているメモリー領域の属するバンク３０の電源を投入（ＯＮ）し、プログラムが割り当てられているメモリー領域のないバンク３０の電源を遮断（ＯＦＦ）する電源制御を行う。
【００２７】
記憶部１３は、ＩＣ（Integrated Circuit）メモリー等の記憶媒体により実現されるものである。この記憶部１３には、メモリー管理装置１を動作させ、メモリー管理装置１が備える機能を実現するためのプログラムや、当該プログラムの実行中に使用されるデータ等が格納される。本実施形態では、メモリー管理プログラム１３１と、メモリーサイズ管理テーブル１３３と、メモリーアクセス管理テーブル１３５と、メモリー電源管理テーブル１３７とが格納される。
【００２８】
制御部１１は、メモリー管理プログラム１３１を読み出して実行することにより、メモリーアクセス管理部１１１やメモリー電源管理部１１３等の機能を実現する。なお、各機能部を電子回路等のハードウェアで実現する場合には、当該機能を実現させるためのプログラムの一部を省略することができる。
【００２９】
メモリーサイズ管理テーブル１３３は、外部演算装置による実行対象のプログラムの一覧を記憶する。図２は、メモリーサイズ管理テーブル１３３のデータ構成例を示す図である。図２に示すように、メモリーサイズ管理テーブル１３３には、実行対象のプログラム毎に、そのプログラム名と対応付けて、該当するプログラムを実行するのに必要なメモリー使用サイズが設定される。メモリー使用サイズは、実行対象のプログラムを格納する際の格納サイズに相当する。
【００３０】
メモリーアクセス管理テーブル１３５は、実行中のプログラムの一覧を記憶する。本実施形態では、実行中のプログラムは、当該プログラムに係る処理の実行単位（タスク）で識別される。各実行単位の処理を「実行処理」という。図３は、メモリーアクセス管理テーブル１３５のデータ構成例を示す図である。図３に示すように、メモリーアクセス管理テーブル１３５には、実行処理毎に、その実行処理番号と対応付けて、割り当て先のメモリー領域の先頭アドレスを示すアクセスベースアドレスと、メモリー使用サイズ（該当するプログラムのメモリー使用サイズであって、その実行処理を割り当てたメモリー領域のサイズ）とが設定される。
【００３１】
メモリー電源管理テーブル１３７は、メモリー３が有するバンク３０の一覧をその配列順に記憶する。図４は、メモリー電源管理テーブル１３７のデータ構成例を示す図である。図４に示すように、メモリー電源管理テーブル１３７には、メモリー３が有するバンク３０毎に、そのバンク名と対応付けて、該当するバンク３０のメモリーサイズと、当該バンク３０に属するメモリー領域の使用中処理とが設定される。
【００３２】
使用中処理には、メモリーアクセス管理テーブル１３５に登録されている実行中のプログラムの実行処理であって、該当するバンク３０のメモリー領域が割り当てられている実行処理の実行処理番号が設定される。ここで、実行指示が与えられたプログラムへのメモリー領域の割り当ては、そのメモリー使用サイズ分の連続したメモリー領域を対象にして行われ、異なるバンク３０間に跨ってメモリー領域が割り当てられる場合もある。例えば図４の例では、実行処理「Ｐ２」がそれに該当し、「バンクＡ」および「バンクＢ」の使用中処理にそれぞれ「Ｐ２」が設定されている。
【００３３】
メモリー電源切替部１５は、バンク３０毎に個別に電源のＯＮ／ＯＦＦを切り替える切替スイッチを有し、メモリー電源管理部１１３の制御のもと該当するバンク３０に係る切替スイッチを切り替えることで、不図示の電源部からの電力を電源供給路４に対して選択的に供給する。
【００３４】
［処理の流れ］
図５は、制御部１１が行う全体処理の流れを示すフローチャートである。図５に示すように、制御部１１は、外部演算装置からのメモリー割り当て指示があると（ステップＳ１：ＹＥＳ）、実行時割り当て処理を行う（ステップＳ３）。メモリー割り当て指示がない場合は（ステップＳ１：ＮＯ）、ステップＳ５に移行する。図６は、実行時割り当て処理の流れを示すフローチャートである。
【００３５】
実行時割り当て処理では先ず、メモリーアクセス管理部１１１が、メモリー割り当て指示に係るプログラムのメモリー使用サイズをメモリーサイズ管理テーブル１３３から読み出して取得する（ステップＳ３０１）。
【００３６】
続いて、メモリーアクセス管理部１１１は、ステップＳ３０１で取得したメモリー使用サイズと、メモリーアクセス管理テーブル１３５に登録されている実行中のプログラム（実行処理）の割り当て先のメモリー領域（アクセスベースアドレス）と、メモリー電源管理テーブル１３７に設定されている各バンク３０のメモリーサイズとをもとに割り当て先のバンク３０を選択順位（バンク３０の配列順）に従い選択して、アクセスベースアドレスを決定する（ステップＳ３０３）。
【００３７】
ここでの処理により、メモリーアクセス管理テーブル１３５に登録されている実行処理のメモリー領域間に空き領域がなければ、それらの最後尾に追加するように、メモリー割り当て指示に係るプログラムのメモリー領域が確保される。一方、メモリー領域間に空き領域が存在しており、且つ、そこにメモリー割り当て指示に係るプログラムのメモリー使用サイズが収まる場合は、当該空き領域にそのメモリー領域が確保される。
【００３８】
そして、メモリーアクセス管理部１１１は、当該プログラムの実行単位に実行処理番号を割り振り、ステップＳ３０３で決定したアクセスベースアドレスおよびステップＳ３０１で取得したメモリー使用サイズと対応付けてメモリーアクセス管理テーブル１３５に登録し、当該プログラムのメモリー領域への割り当て（実行時割り当て）を行う（ステップＳ３０５）。
【００３９】
その後、メモリーアクセス管理部１１１は、実行時割り当ての実施をメモリー電源管理部１１３に通知する（ステップＳ３０７）。この通知に応答し、メモリー電源管理部１１３は、ステップＳ３０５で割り当てられたメモリー領域の属するバンク３０を特定し（ステップＳ３０９）、特定したバンク３０の使用中処理にその実行処理番号を追加してメモリー電源管理テーブル１３７を更新する（ステップＳ３１１）。
【００４０】
そして、メモリー電源管理部１１３は、メモリー電源管理テーブル１３７において当該特定したバンク３０の使用中処理に別の実行処理番号が設定されているか否かに基づいて、その電源供給状態を判別する。既に別の実行処理番号が設定されている場合、そのバンク３０の電源はＯＮになっている。しかし、設定されていない場合はそのバンク３０の電源はＯＦＦである。このように特定したバンク３０の中に電源がＯＦＦのものがあれば（ステップＳ３１３：ＹＥＳ）、メモリー電源管理部１１３は、メモリー電源切替部１５を制御して当該バンク３０の電源をＯＮに切り替える電源制御を行う（ステップＳ３１５）。特定したバンク３０の中に電源がＯＦＦのものがない場合は（ステップＳ３１３：ＮＯ）、実行時割り当て処理からリターンし、その後図５のステップＳ５に移行する。
【００４１】
図７は、初回のメモリー割り当て指示に係るメモリー領域の実行時割り当てを説明する図であり、プログラムａがメモリー領域に割り当てられる様子を模式的に示している。また、図７に示す実行時割り当て後のメモリーアクセス管理テーブル１３５のデータ内容を図８に示し、当該実行時割り当て後のメモリー電源管理テーブル１３７のデータ内容を図９に示す。なお、以下では、バンク３０を「バンクＡ」〜「バンクＤ」の４つとして説明・図示する。
【００４２】
プログラムａのメモリー割り当て指示があると、配列順が初順の「バンクＡ」が割り当て先のバンク３０として選択される。そして、「バンクＡ」の先頭アドレスからプログラムａのメモリー使用サイズ分のメモリー領域３０１が確保され、当該メモリー領域３０１にプログラムａの実行処理「Ｐ１」が割り当てられる。その結果、メモリーアクセス管理テーブル１３５に実行処理「Ｐ１」が登録され、そのアクセスベースアドレスとメモリー使用サイズとが設定される。また、メモリー電源管理テーブル１３７において、「バンクＡ」の使用中処理に実行処理「Ｐ１」が設定される。そして、「バンクＡ」の電源がＯＮに切り替わる。
【００４３】
また、図１０は、図７に続くメモリー割り当て指示に応じたメモリー領域の実行時割り当てを説明する図であり、当該実行時割り当て後のメモリーアクセス管理テーブル１３５のデータ内容を図１１に示し、当該実行時割り当て後のメモリー電源管理テーブル１３７のデータ内容を図１２に示す。
【００４４】
「バンクＡ」には空き領域が存在する。そのため、続くプログラムｂのメモリー割り当て指示があると、「バンクＡ」のメモリー領域３０１の最後尾からプログラムｂのメモリー使用サイズ分のメモリー領域３０２が確保され、当該メモリー領域３０２にプログラムｂの実行処理「Ｐ２」が割り当てられる。その際、プログラムｂのメモリー使用サイズが「バンクＡ」の空き領域よりも大きいため、メモリー領域３０２は「バンクＢ」に跨って確保される。その結果、メモリーアクセス管理テーブル１３５に実行処理「Ｐ２」が登録されるとともに、メモリー電源管理テーブル１３７において、「バンクＡ」および「バンクＢ」の使用中処理に実行処理「Ｐ２」が設定される。そして、「バンクＢ」の電源がＯＮに切り替わる。
【００４５】
また、図１３は、図１０に続くメモリー割り当て指示に応じたメモリー領域の実行時割り当てを説明する図であり、当該実行時割り当て後のメモリーアクセス管理テーブル１３５のデータ内容を図１４に示し、当該実行時割り当て後のメモリー電源管理テーブル１３７のデータ内容を図１５に示す。
【００４６】
「バンクＢ」には空き領域が存在する。そのため、続くプログラムｃのメモリー割り当て指示があると、「バンクＢ」のメモリー領域３０２の最後尾からプログラムｃのメモリー使用サイズ分のメモリー領域３０３が確保され、当該メモリー領域３０３にプログラムｃの実行処理「Ｐ３」が割り当てられる。図１３の例では、プログラムｃのメモリー使用サイズが「バンクＢ」の空き領域よりも小さいため、メモリー領域３０３は「バンクＢ」だけで確保される。その結果、メモリーアクセス管理テーブル１３５に実行処理「Ｐ３」が登録され、メモリー電源管理テーブル１３７において「バンクＢ」の使用中処理に実行処理「Ｐ３」が設定される。
【００４７】
図５に戻る。制御部１１は、外部演算装置からのメモリー解放指示があると（ステップＳ５：ＹＥＳ）、解放処理を行う（ステップＳ７）。メモリー解放指示がない場合は（ステップＳ５：ＮＯ）、ステップＳ９に移行する。図１６は、解放処理の流れを示すフローチャートである。
【００４８】
解放処理では先ず、メモリーアクセス管理部１１１が、メモリー解放指示に係るプログラムが割り当てられていたメモリー領域を解放する（ステップＳ７０１）。その際、メモリーアクセス管理テーブル１３５においてそのプログラムの実行処理番号を削除し、（空き）として更新する。続いて、メモリー電源管理部１１３が、使用中処理に設定されている当該実行処理番号を削除してメモリー電源管理テーブル１３７を更新する（ステップＳ７０３）。
【００４９】
またその際、当該実行処理番号の削除によって該当するバンク３０の使用中処理に実行処理番号が１つも設定されていない状態となった場合、当該バンク３０にはプログラムが割り当てられているメモリー領域がなくなる。このようにプログラムが割り当てられているメモリー領域がなくなったバンク３０があれば（ステップＳ７０５：ＹＥＳ）、メモリー電源管理部１１３は、メモリー電源切替部１５を制御して当該バンク３０の電源をＯＦＦに切り替える電源制御を行う（ステップＳ７０７）。プログラムが割り当てられているメモリー領域がなくなったバンク３０がない場合は（ステップＳ７０５：ＮＯ）、解放処理からリターンし、その後図５のステップＳ９に移行する。
【００５０】
図１７は、図１３に続くメモリー解放指示に応じたメモリー領域の解放を説明する図であり、当該解放後のメモリーアクセス管理テーブル１３５のデータ内容を図１８に示し、当該解放後のメモリー電源管理テーブル１３７のデータ内容を図１９に示す。
【００５１】
図１３の状態でプログラムｂのメモリー解放指示があると、割り当てられていたメモリー領域３０２が解放され、図１７に示すように、メモリー領域３０１，３０３間が空き領域となる。その結果、メモリーアクセス管理テーブル１３５において実行処理「Ｐ２」の登録が「（空き）」に更新され、メモリー電源管理テーブル１３７において「バンクＡ」および「バンクＢ」の使用中処理から実行処理「Ｐ２」が削除される。このとき、「バンクＡ」の使用中処理には実行処理番号「Ｐ１」が設定されており、「バンクＢ」の使用中処理には実行処理番号「Ｐ３」が設定されている。そのため、「バンクＡ」および「バンクＢ」のいずれも電源はＯＮのままである。
【００５２】
また、図２０は、図１７に続くメモリー割り当て指示に応じたメモリー領域の実行時割り当てを説明する図であり、当該実行時割り当て後のメモリーアクセス管理テーブル１３５のデータ内容を図２１に示し、当該実行時割り当て後のメモリー電源管理テーブル１３７のデータ内容を図２２に示す。
【００５３】
図１７の状態では、メモリー領域３０１，３０３間にプログラムｄのメモリー使用サイズが収まる空き領域が存在する。この空き領域の属する「バンクＡ」は、メモリー領域３０３の後ろの空き領域が属する「バンクＢ」よりも配列順が先で選択順位が高い。そのため、図１７の状態でプログラムｄのメモリー割り当て指示があると、「バンクＡ」が割り当て先のバンク３０として選択される。そして、図２０に示すように、メモリー領域３０１，３０３間の「バンクＡ」側からプログラムｄのメモリー使用サイズ分のメモリー領域３０４が確保され、当該メモリー領域３０４にプログラムｄの実行処理「Ｐ４」が割り当てられる。その結果、メモリーアクセス管理テーブル１３５において「（空き）」となっていたレコードが実行処理「Ｐ４」に書き換えられてそのアクセスベースアドレスとメモリー使用サイズとが設定されるとともに、メモリー電源管理テーブル１３７において「バンクＡ」の使用中処理に「Ｐ４」が追加される。
【００５４】
図５に戻る。制御部１１は、所与のタイミングとして、システムが待機状態へと状態遷移したタイミングを監視する。そして、当該待機状態への状態遷移を受けて（ステップＳ９：ＹＥＳ）、再配置処理を行う（ステップＳ１１）。待機状態へと状態遷移しない場合は（ステップＳ９：ＮＯ）、ステップＳ１３に移行する。図２３は、再配置処理の流れを示すフローチャートである。
【００５５】
再配置処理では先ず、メモリーアクセス管理部１１１が、メモリー電源管理テーブル１３７に設定されている各バンク３０のメモリーサイズをもとに、メモリーアクセス管理テーブル１３５に登録されている実行処理のメモリー領域間に空き領域が存在しているか否かを判定する。空き領域がなければ（ステップＳ１１１：ＮＯ）、再配置処理からリターンし、その後図５のステップＳ１３に移行する。そして、空き領域がある場合には（ステップＳ１１１：ＹＥＳ）、メモリーアクセス管理部１１１は、当該登録されている実行処理のプログラムの割り当て先のバンク３０を選択順位に従い選択し、アクセスベースアドレスを決定し直して当該プログラムの割り当て先のメモリー領域を再配置する（ステップＳ１１３）。
【００５６】
その後、メモリーアクセス管理部１１１は、再配置の実施をメモリー電源管理部１１３に通知する（ステップＳ１１５）。この通知に応答し、メモリー電源管理部１１３は、ステップＳ１１３で再配置されたメモリー領域の属するバンク３０を特定し（ステップＳ１１７）、特定したバンク３０の使用中処理にその実行処理番号を設定し直してメモリー電源管理テーブル１３７を更新する（ステップＳ１１９）。
【００５７】
そして、プログラムが割り当てられているメモリー領域がなくなったバンク３０があれば（ステップＳ１２１：ＹＥＳ）、メモリー電源管理部１１３は、メモリー電源切替部１５を制御して当該バンク３０の電源をＯＦＦに切り替える電源制御を行う（ステップＳ１２３）。プログラムが割り当てられているメモリー領域がなくなったバンク３０がない場合は（ステップＳ１２１：ＮＯ）、再配置処理からリターンし、その後図５のステップＳ１３に移行する。
【００５８】
図２４は、図１７の状態のときにシステムが待機状態となった場合のメモリー領域の再配置を説明する図であり、当該再配置後のメモリーアクセス管理テーブル１３５のデータ内容を図２５に示し、当該再配置後のメモリー電源管理テーブル１３７のデータ内容を図２６に示す。
【００５９】
図１７の状態では、メモリー領域３０１，３０３間に空き領域が存在する。そのため、図１７の状態でシステムが待機状態になると、プログラムａのメモリー領域３０１の最後尾において空き領域を詰めてプログラムｄのメモリー領域３０５が再配置される。その結果、メモリーアクセス管理テーブル１３５において「（空き）」となっていたレコードが実行処理「Ｐ３」に書き換えられてそのアクセスベースアドレスとメモリー使用サイズとが変更されるとともに、メモリー電源管理テーブル１３７において「バンクＡ」の使用中処理に「Ｐ３」が追加され、「バンクＢ」の使用中処理から「Ｐ３」が削除される。この結果、「バンクＢ」には割り当てられているメモリー領域がなくなったため、電源がＯＦＦとされる。
【００６０】
図５に戻る。その後は、制御部１１は、本処理を終了するまでの間は（ステップＳ１３：ＮＯ）、ステップＳ１に戻って上記した処理を繰り返す。終了する場合は（ステップＳ１３：ＹＥＳ）、本処理を終える。
【００６１】
以上説明したように、本実施形態によれば、メモリー割り当て指示があった場合は、実行指示が与えられたプログラムを選択順位に従って選んだバンク３０のメモリー領域に割り当てる実行時割り当てを行うことができる。一方、メモリー解放指示があった場合は、当該プログラムが割り当てられていたメモリー領域を解放することができる。また、システムが待機状態となったことを受けて、実行中のプログラムの割り当て先のメモリー領域をバンク３０の選択順位に従って再配置することができる。そして、プログラムが割り当てられているメモリー領域の属するバンク３０の電源をＯＮにし、プログラムが割り当てられているメモリー領域のないバンク３０の電源はＯＦＦすることができる。これによれば、メモリー領域の再配置によってメモリー領域間の空き領域を詰めながら、プログラムが割り当てられているバンク３０にのみ電源が投入されるように電源制御を行うことができる。したがって、各バンク３０のメモリー領域を効率よく使用して電力供給するバンク３０の数を最小限に抑えることができ、メモリー３の消費電力の低減が図れる。
【００６２】
ところで、メモリー３を構成するバンク３０は同種のもので構成する必要はなく、例えば、消費電力の異なるバンク３０を組み合わせてメモリー３を構成してもよい。図２７は、消費電力の異なる「バンクＡ」〜「バンクＤ」の４つのバンク３０を消費電力の少ない順に上段から配列してメモリー３を構成した場合の各バンク３０の通電時間割合を示す図である。上記実施形態において各バンク３０を消費電力の少ない順に配列すれば、消費電力の少ないものから順番に割り当て先のバンク３０が選択されるようになり、消費電力の少ないバンク３０を優先的に選択してメモリー領域の実行時割り当てや再配置を行うことができる。したがって、図２７に示すように、消費電力の少ない「バンクＡ」の通電時間を長くし、消費電力の多い「バンクＤ」の通電時間を短くすることができる。これによれば、消費電力の少ないバンク３０の使用比率を高めることができ、メモリー３の消費電力をより効率よく低減することができる。
【００６３】
あるいは、アクセス速度の異なるバンク３０を組み合わせてメモリー３を構成してもよい。図２８は、アクセス速度の異なる「バンクＡ」〜「バンクＤ」の４つのバンク３０をアクセス速度が速い順に上段から配列してメモリー３を構成した場合の各バンク３０のバンク使用割合を示す図である。上記実施形態において各バンク３０をアクセス速度が速い順に配列すれば、アクセス速度が速いものから順番に割り当て先のバンク３０が選択されるようになり、アクセス速度が速いバンク３０を優先的に選択することができる。したがって、図２８に示すように、アクセス速度が速い「バンクＡ」の使用比率を高くし、アクセス速度が遅い「バンクＤ」の使用比率を低くすることができる。これによれば、全体的に動作時間の短縮が図れることから、メモリー３の消費電力をより効率よく低減することができる。
【００６４】
また、上記した実施形態では、メモリー３を構成する各バンク３０の配列順を選択順位として割り当て先のバンク３０を選択し、実行時割り当て等を行うこととした。これに対し、複数の順位の中から選択順位を決定する構成も可能である。
【００６５】
図２９は、本変形例におけるメモリー管理装置１ｂの機能構成例を示す図である。なお、図２９において、上記した実施形態と同様の構成には同一の符号を付す。図２９に示すように、本変形例のメモリー管理装置１ｂは、制御部１１ｂにおいて、選択順位決定部１１５ｂを備える。
【００６６】
選択順位決定部１１５ｂは、消費電力の少ないバンク３０を優先する順位と、アクセス速度が速いバンク３０を優先する順位とから一方を選択して選択順位を決定する。順位の選択は、例えば、ユーザーによる操作入力や上位装置からの選択制御信号に応じて行うことができる。
【００６７】
記憶部１３ｂには、メモリー管理プログラム１３１ｂと、メモリーサイズ管理テーブル１３３と、メモリーアクセス管理テーブル１３５と、メモリー電源管理テーブル１３７ｂとが格納される。
【００６８】
本変形例では、制御部１１ｂは、メモリー管理プログラム１３１ｂを読み出して実行することにより、メモリーアクセス管理部１１１やメモリー電源管理部１１３、選択順位決定部１１５ｂ等の機能を実現する。
【００６９】
また、本変形例では、メモリー電源管理テーブル１３７ｂにおいて、各バンク３０の消費電力と、アクセス速度とが設定される。図３０は、メモリー電源管理テーブル１３７ｂのデータ構成例を示す図である。図３０に示すように、メモリー電源管理テーブル１３７ｂには、メモリー３が有するバンク３０毎に、そのバンク名と対応付けて、該当するバンク３０のメモリーサイズと、消費電力と、アクセス速度と、当該バンク３０に属するメモリー領域の使用中処理とが設定される。選択順位決定部１１５ｂは、消費電力の少ないバンク３０を優先する順位を選択した場合は、メモリー電源管理テーブル１３７ｂの消費電力を参照し、消費電力が少ない順にバンク３０の選択順位を決定する。一方、アクセス速度が速いバンク３０を優先する順位を選択した場合は、メモリー電源管理テーブル１３７ｂにおいてアクセス速度を参照し、アクセス速度が速い順にバンク３０の選択順位を決定する。
【００７０】
本変形例によれば、消費電力が異なるバンク３０とアクセス速度が異なるバンク３０とが混在するバンク３０の中から消費電力の少ないバンク３０を優先して選択し、実行時割り当て等を行うことができる。あるいは、アクセス速度が速いバンク３０を優先して選択し、実行時割り当て等を行うことができる。
【００７１】
また、本実施形態のメモリー管理装置は、演算装置等の他の電子部品とともに単一のＩＣチップとして構成することができる。
【符号の説明】
【００７２】
１，１ｂ…メモリー管理装置、１１，１１ｂ…制御部、１１１…メモリーアクセス管理部、１１３…メモリー電源管理部、１１５ｂ…選択順位決定部、１３…記憶部、１３１，１３１ｂ…メモリー管理プログラム、１３３…メモリーサイズ管理テーブル、１３５…メモリーアクセス管理テーブル、１３７，１３７ｂ…メモリー電源管理テーブル、１５…メモリー電源切替部、３…メモリー、３０…バンク、４…電源供給路
【図１】
2017187895.tif 000003
【図２】
2017187895.tif 000004
【図３】
2017187895.tif 000005
【図４】
2017187895.tif 000006
【図５】
2017187895.tif 000007
【図６】
2017187895.tif 000008
【図７】
2017187895.tif 000009
【図８】
2017187895.tif 000010
【図９】
2017187895.tif 000011
【図１０】
2017187895.tif 000012
【図１１】
2017187895.tif 000013
【図１２】
2017187895.tif 000014
【図１３】
2017187895.tif 000015
【図１４】
2017187895.tif 000016
【図１５】
2017187895.tif 000017
【図１６】
2017187895.tif 000018
【図１７】
2017187895.tif 000019
【図１８】
2017187895.tif 000020
【図１９】
2017187895.tif 000021
【図２０】
2017187895.tif 000022
【図２１】
2017187895.tif 000023
【図２２】
2017187895.tif 000024
【図２３】
2017187895.tif 000025
【図２４】
2017187895.tif 000026
【図２５】
2017187895.tif 000027
【図２６】
2017187895.tif 000028
【図２７】
2017187895.tif 000029
【図２８】
2017187895.tif 000030
【図２９】
2017187895.tif 000031
【図３０】
2017187895.tif 000032