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

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

Info

Publication number
JP2006023919A
JP2006023919A JP2004200559A JP2004200559A JP2006023919A JP 2006023919 A JP2006023919 A JP 2006023919A JP 2004200559 A JP2004200559 A JP 2004200559A JP 2004200559 A JP2004200559 A JP 2004200559A JP 2006023919 A JP2006023919 A JP 2006023919A
Authority
JP
Japan
Prior art keywords
memory
memory block
name
information
memory management
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
JP2004200559A
Other languages
English (en)
Other versions
JP4182928B2 (ja
Inventor
Yoshiyuki Ono
義之 小野
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004200559A priority Critical patent/JP4182928B2/ja
Priority to TW094116350A priority patent/TWI277866B/zh
Priority to KR1020050049616A priority patent/KR100719200B1/ko
Priority to US11/155,538 priority patent/US7401200B2/en
Priority to EP05013627A priority patent/EP1615107A3/en
Priority to CNB2005100819606A priority patent/CN100370395C/zh
Publication of JP2006023919A publication Critical patent/JP2006023919A/ja
Application granted granted Critical
Publication of JP4182928B2 publication Critical patent/JP4182928B2/ja
Expired - Fee Related 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/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3246Power saving characterised by the action undertaken by software initiated power-off
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Abstract

【課題】 不揮発性メモリを備える情報処理装置において、電力制御のためのメモリ管理を適切に行うこと。
【解決手段】 情報処理装置1は、不揮発性メモリ40の記憶領域に確保されるメモリブロックそれぞれに固有のメモリブロック名を付し、そのメモリブロック名によってメモリブロックを識別するメモリ管理テーブルを用いて、不揮発性メモリ40のメモリ管理を行う。そして、電源の再投入時には、アプリケーションがメモリブロック名を指定することにより、不揮発性メモリ40においてメモリブロック名が検索され、そのメモリブロック名に対応するメモリブロックのデータにアクセスされる。したがって、不揮発性メモリを備える情報処理装置において、電力制御のためのメモリ管理を適切に行うことが可能となる。
【選択図】 図3

Description

本発明は、装置内部における電力の供給を自律的に制御可能な情報処理装置、そのメモリ管理プログラムおよびメモリ管理方法に関する。
近年、コンピュータシステム技術の分野においては、処理を行っていない場合に装置内部における電力の供給を停止し、装置に対する入力操作が行われた場合等、処理の必要が生じた場合に、瞬時に電力の供給を再開して処理を行うことにより、待機時における消費電力を削減する電力制御技術が開発されている。
また、近年、FeRAM(Ferroelectric Random Access Memory)やMRAM(Magnetoresistive Random Access Memory)といった不揮発性のメモリが開発されている。このような不揮発性のメモリは、情報の記憶を維持するための電力が不要であるため、例えば上述のような電力制御が行われ、メモリに対する電力の供給が停止された場合にも、電力の供給が停止される以前に記憶していた情報がメモリ上に保持されることとなる。
そして、このような不揮発性メモリは、高速にアクセスすることが可能であることから、コンピュータシステムにおける汎用のメモリとして利用することが期待されている。
ところで、従来のソフトウェア技術においては、上述の電力制御技術のように、コンピュータの電源が一度停止された後、処理が再開されることは原則として想定されておらず、コンピュータの再起動を行う際にはオペレーティングシステムソフトウェア(OS)がシステムの初期化を伴う起動(いわゆるコールドスタート)を行うのが一般的である。
なお、コンピュータシステムの電力制御に関しては、例えば特開平9−114557号公報に、サスペンドあるいはレジュームといった技術が開示されている。
特開平9−114557号公報
しかしながら、従来のコンピュータシステムにおいては、メモリの管理を行う場合、メモリ上における使用領域の先頭アドレスを管理しておき、メモリの確保や解放を行う際には、その領域の先頭アドレスを指定する手法が用いられている。
したがって、FeRAMやMRAMといった不揮発性のメモリが用いられた場合であっても、上述のように電力の供給が停止され、処理の必要に応じて電力の供給を再開した場合には、OSがコールドスタートを行うことによりメモリアドレスの管理情報が失われ、メモリ上に記憶されている情報にアクセスできなくなるという問題があった。
なお、OSがサスペンドやレジュームといった処理を行った場合には、メモリアドレスの管理情報がハードディスク等の記憶装置に記憶され、コンピュータの電源を再投入した際にもメモリ上の情報にアクセスすることが可能である。
しかし、従来のサスペンドやレジュームといった処理は、不揮発性のメモリを用いることを想定した処理とはなっていない。また、その実行に際して多くの情報をメモリやハードディスク等に退避させる必要がある上、コンピュータの電源を再投入した際に、確実に元の状態に戻らない場合があるという問題があった。
本発明の課題は、不揮発性メモリを備える情報処理装置において、電力制御のためのメモリ管理を適切に行うことである。
以上の課題を解決するため、本発明は、
装置内部における電力の供給を自律的に制御する情報処理装置であって、記憶している情報を不揮発的に保持する不揮発性メモリ(例えば、図1の揮発性メモリ30)と、前記不揮発性メモリの記憶領域におけるメモリブロック(例えば、図3のメモリブロックMB1〜3)に固有のメモリブロック名を付して、該メモリブロック名によって前記メモリブロックを識別するためのメモリ管理情報(例えば、図3のメモリ管理テーブル)を生成し、該メモリ管理情報を前記不揮発性メモリに記憶する不揮発性メモリ管理手段(例えば、図3の不揮発性メモリ管理モジュールを構成するCPU50)とを含むことを特徴としている。
これにより、不揮発性のメモリを備え、電力制御によって再起動を繰り返す情報処理装置において、電源の再投入時に不揮発性メモリに保持されているデータを利用することが可能となる。
即ち、不揮発性メモリを備える情報処理装置において、電力制御のためのメモリ管理を適切に行うことが可能となる。
また、前記不揮発性メモリ管理手段は、装置に対する電力の供給停止後、電力の供給が再開された場合、前記メモリブロック名を基に前記不揮発性メモリにおける記憶領域を検索し、該メモリブロック名に対応する前記メモリブロックに記憶された情報にアクセスすることを特徴としている。
これにより、電源が再投入された場合に、速やかに不揮発性メモリのメモリ管理情報が参照され、不揮発性メモリに保持されている情報を利用することが可能となる。
また、前記不揮発性メモリ管理手段は、前記メモリブロックが不要となった場合、該メモリブロックのメモリブロック名を基に前記不揮発性メモリにおける記憶領域を検索し、該メモリブロックを解放することを特徴としている。
これにより、不揮発性メモリにおけるメモリブロックの解放もメモリブロック名を指定して行うことができ、記憶領域を有効に利用することが可能となる。
また、前記不揮発性メモリより高速に読み出しあるいは書き込みが可能な揮発性メモリ(例えば、図1の揮発性メモリ30)と、前記不揮発性メモリの記憶領域に記憶された情報を該揮発性メモリに記憶させ、前記不揮発性メモリに代えて、該揮発性メモリに記憶された情報にアクセスする間接アクセス手段(例えば、図1のCPU50)とをさらに含むことを特徴としている。
これにより、不揮発性メモリに記憶された情報を、高速に読み出しおよび書き込みができる揮発性メモリを介して利用することができる。
また、前記不揮発性メモリ管理手段は、前記メモリブロック名に対応するメモリブロックにアクセスの必要が生じた場合に、前記メモリ管理情報を基に、該メモリブロックに記憶された情報に直接アクセスすることを特徴としている。
これにより、不揮発性メモリ上の情報に対して直接読み出し、書き込みができるため、他のメモリの記憶領域を占有することなく、記憶領域全体を効率的に利用することができる。
また、前記不揮発性メモリ管理手段は、前記メモリブロック名として、任意の文字列からなる名称を付すことを特徴としている。
これにより、ユーザあるいはアプリケーションにとって認識が容易な名称を付すことが可能となる。
また、前記不揮発性メモリ管理手段は、前記メモリブロック名として、自装置においてデータを取り扱う際のデータ幅に対応するサイズの名称を付すことを特徴としている。
これにより、ハードウェアに適合するメモリブロック名を付すことができ、処理の高速化を図ることが可能となる。
また、前記不揮発性メモリ管理手段は、前記メモリブロック名として、自装置においてデータを取り扱う際のデータ幅を“8”で除した個数の文字からなる名称を付すことを特徴としている。
これにより、自装置においてデータを取り扱う際のデータ幅に収まるデータブロック名を付すことができ、処理の高速化を図ることが可能となる。
また、前記不揮発性メモリとデータ線によって接続された所定のプロセッサ(例えば、図1のCPU50)を含み、前記不揮発性メモリ管理手段は、前記メモリブロック名として、前記データ線のデータ幅に合わせたサイズの名称を付すことを特徴としている。
これにより、プロセッサと不揮発性メモリとの間で、メモリブロック名を1クロックで伝送することが可能となる。
また、演算対象となる情報を記憶するためのレジスタを備える所定のプロセッサを含み、前記不揮発性メモリ管理手段は、前記メモリブロック名として、前記レジスタのデータ幅に合わせたサイズの名称を付すことを特徴としている。
これにより、プロセッサ内部において、レジスタにメモリブロック名を書き込んだり、読み出したりする処理を一度に行うことが可能となる。
また、演算対象となる情報に対して論理演算を行うためのALUを備える所定のプロセッサ(例えば、図1のCPU50)を含み、前記不揮発性メモリ管理手段は、前記メモリブロック名として、前記ALUの入力データ幅に合わせたサイズの名称を付すことを特徴としている。
これにより、ALUにおいてメモリブロック名を比較する処理を一度に行うことができ、不揮発性メモリにおいてメモリブロックを検索する処理を高速に行うことが可能となる。
また、本発明は、
装置内部における電力の供給を自律的に制御する情報処理装置を制御するメモリ管理プログラムであって、前記情報処理装置に備えられた、記憶している情報を不揮発的に保持する不揮発性メモリの記憶領域におけるメモリブロックに固有のメモリブロック名を付して、該メモリブロック名によって前記メモリブロックを識別するためのメモリ管理情報を生成し、該メモリ管理情報を前記不揮発性メモリに記憶する不揮発性メモリ管理機能を前記情報処理装置に実現させることを特徴としている。
また、本発明は、
装置内部における電力の供給を自律的に制御する情報処理装置におけるメモリ管理方法であって、前記情報処理装置に備えられた、記憶している情報を不揮発的に保持する不揮発性メモリの記憶領域におけるメモリブロックに固有のメモリブロック名を付して、該メモリブロック名によって前記メモリブロックを識別するためのメモリ管理情報を生成し、該メモリ管理情報を前記不揮発性メモリに記憶する不揮発性メモリ管理ステップを含むことを特徴としている。
このように、本発明によれば、不揮発性メモリを備える情報処理装置において、電力制御のためのメモリ管理を適切に行うことが可能となり、情報処理装置の消費電力を大幅に削減することができる。
以下、図を参照して本発明に係る情報処理装置の実施の形態を説明する。
まず、構成を説明する。
図1は、本発明に係る情報処理装置1の機能構成を示すブロック図である。
なお、ここでは、情報処理装置1を用いて電子ブックのコンテンツを閲覧する場合の例について説明する。
図1において、情報処理装置1は、I/O(Input/Output)部10と、ROM(Read Only Memory)20と、揮発性メモリ30と、不揮発性メモリ40と、CPU(Central Processing Unit)50と、グラフィックアクセラレータ(以下、「GA」と言う。)60と、ディスプレイコントローラ70と、ディスプレイ80と、電力制御部90と、バッテリ100とを含んで構成される。
I/O部10は、情報処理装置1が各種装置と信号を入出力するためのポートであり、I/O部10を介して、キーボード、タッチパネル、マウスあるいは本体に備えられた操作ボタン等の入力装置、スピーカおよびマイク等の音声の入出力装置、ネットワークインターフェースあるいはメモリカードインターフェース等の各種インターフェース(以下、インターフェースを「I/F」と記す。)、タイマー等の各種周辺回路と信号の入出力が行われる。
なお、本実施の形態において、電子ブックのコンテンツはメモリカードに記憶されて提供され、そのメモリカードがメモリカードI/Fに挿入されることで、I/O部10を介してコンテンツが閲覧されるものとする。
ROM20は、例えばフラッシュROM等の不揮発性のメモリによって構成され、ROM20には、オペレーティングシステムプログラム(OS)、アプリケーションプログラム、メモリブロック名(後述)が記憶されている。
また、ROM20に記憶されているシステムプログラムは、不揮発性メモリ40の記憶領域を管理する不揮発性メモリ管理モジュールを含んでいる。
不揮発性メモリ管理モジュールは、不揮発性メモリ40のメモリ管理を行うAPI(Application Program Interface)である。そして、不揮発性メモリ管理モジュールは、図2に示すAPIの関数を含んで構成される。
図2は、不揮発性メモリ管理モジュールを構成するAPIを具体的に示す図である。
図2において、“NVAllocateNamedMemory”は、情報処理装置1が処理を行う上で不揮発性メモリ40にデータを記憶させる必要が生じた場合に、そのデータを記憶するための領域を、引数として指定された固有の名称(メモリブロック名)を付与して確保する関数である。
また、“NVGetNamedMemoryAddress”は、引数として指定されたメモリブロック名の領域を不揮発性メモリ40から検索する関数である。
さらに、“NVFreeNamedMemory”は、引数として指定されたメモリブロック名の領域を解放する関数である。
ここで、メモリブロック名については、任意の文字列とすることが可能である他、不揮発性メモリ40の記憶領域からメモリブロックを検索する処理が、より高速化されるようなサイズの名称を付与することが可能である。
例えば、メモリブロック名をCPU50のデータ幅に合わせたサイズとすることが考えられ、この場合、メモリブロック名を、CPU50と不揮発性メモリ40とを接続するデータ線(データバス)のデータ幅、CPU50内部に備えられているALU(Arithmetic Logical Unit)の入力データ幅、あるいは、CPU50内部に備えられているレジスタファイルのレジスタのデータ幅等に合わせたサイズとすることが可能である。
このように、メモリブロック名をCPU50における各種データ幅に合わせたサイズとすることにより、メモリブロック名を示すコードを、1回の処理で伝送したり比較したりすることができる。
即ち、メモリブロック名のサイズを、CPU50と不揮発性メモリ40とを接続するデータ線のデータ幅に合わせることにより、不揮発性メモリ40とCPU50とを接続するデータ線上においてメモリブロック名を1クロックで伝送することができる。また、メモリブロック名のサイズを、CPU50内部に備えられているALUの入力データ幅と合わせることにより、キーとなるメモリブロック名と、不揮発性メモリ40上の各メモリブロック名とをALUによって比較する処理を一度に行うことができる。さらに、メモリブロック名のサイズを、CPU50内部に備えられているレジスタファイルのレジスタのデータ幅と合わせることにより、レジスタファイルにメモリブロック名を書き込んだり、読み出したりする処理を一度に行うことができる。
したがって、キーとなるメモリブロック名のメモリブロックを不揮発性メモリ40の記憶領域から検索する処理が高速なものとなる。
図1に戻り、揮発性メモリ30は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)あるいはSDRAM(Synchronous DRAM)といった揮発性のメモリによって構成され、CPU50が処理を実行する際にワークエリアを形成すると共に、その処理結果を記憶する。
また、揮発性メモリ30に、不揮発性メモリ40における各メモリブロックの先頭アドレスを記憶しておくことも可能である。
不揮発性メモリ40は、FRAM(Ferroelectric RandomAccess Memory)あるいはMRAM(Magnetoresistive Random Access Memory)等の不揮発性のメモリによって構成され、例えば電子ブックのコンテンツが閲覧されている場合であれば、閲覧中のページ番号といったように、情報処理装置1の電源が切断された場合にも保存しておく必要のあるデータが記憶される。
なお、不揮発性メモリ40は、上述のように、電源によるバックアップが不要な不揮発性メモリで構成することが可能である他、SRAM等、揮発性のメモリを専用の電源でバックアップすることにより、擬似的な不揮発性メモリとする構成も採用可能である。
ここで、不揮発性メモリ40によって構成されるメモリ空間のメモリマップについて説明する。
図3は、情報処理装置1が有するメモリ空間のメモリマップを示す図である。
図3において、情報処理装置1が有するメモリ空間は、ROM20の記憶領域であるROM領域と、揮発性メモリ30の記憶領域である揮発性メモリ領域およびI/O領域と、不揮発性メモリ40の記憶領域である不揮発性メモリ領域とによって構成されている。
さらに、不揮発性メモリ領域は、メモリ管理テーブル領域と、メモリブロックMB1〜MB3と、空き領域とによって構成されている。
メモリ管理テーブル領域は、メモリブロックの名称(メモリブロック名)と、そのメモリブロック名に対応する記憶領域のアドレスとを対応付けるためのテーブル形式のデータ(メモリ管理テーブル)を記憶するための領域である。
メモリ管理テーブルは、不揮発性メモリ40におけるメモリアドレスの管理情報である。したがって、このメモリ管理テーブルが不揮発性メモリ領域に記憶されていることにより、情報処理装置1の電源が切断された場合にも、電源の再投入時に、不揮発性メモリ領域の各メモリブロックに記憶されているデータを利用することが可能となる。
なお、メモリ管理テーブルは、メモリブロックの個数、メモリブロック名、メモリブロックのサイズ(メモリブロックのアドレスを把握するためのデータ)によって構成される。ただし、本実施の形態においては、メモリ管理テーブル領域には、不揮発性メモリ40に確保されている全メモリブロックの個数のみが格納され、他のメモリ管理情報については、各メモリブロックに含まれるものとして説明する。この場合においても、メモリブロックの個数、メモリブロック名、メモリブロックのサイズ(メモリブロックのアドレスを特定するためのデータ)が実質的にメモリ管理情報を構成するものである。
メモリブロックMB1〜MB3は、不揮発性メモリ管理モジュールによって確保される領域であり、電源が切断された場合にも保持しておくことが必要な各種データが記憶される。なお、ここでは3つのメモリブロックMB1〜MB3が確保されている状態を例として図示しているが、情報処理装置1における処理に応じて、必要な数およびサイズのメモリブロックが確保される。
そして、メモリブロックMB1〜MB3に記憶されたデータが不要となった場合、不揮発性メモリ管理モジュールによって、不要なデータを記憶しているメモリブロックは解放され、空き領域とされる。
空き領域は、不揮発性メモリ40における未使用領域であり、この空き領域から不揮発性メモリ管理モジュールがメモリブロックを確保する。
図1に戻り、CPU50は、情報処理装置1全体を制御するもので、I/O部10を介して入力される各種の指示信号に従って、ROM20に記憶されたオペレーティングシステムプログラムあるいはアプリケーションプログラムを読み出して実行する。CPU50がオペレーティングシステムプログラムを実行することにより、上述の不揮発性メモリ管理モジュールの機能が実現される。そして、CPU50は、各種処理結果を揮発性メモリ30あるいは不揮発性メモリ40の所定領域に格納する。
さらに、CPU50は、情報処理装置1に対する入力操作が行われた場合等、動作の必要が生じた場合にのみ電源を投入して処理を行い、動作が不要な場合には、電源を切断した状態とするように電力制御部90を介して電力制御を行う。そのため、CPU50は、メモリ管理テーブル等のOSが必要とする情報や、閲覧中の電子ブックのページ番号等のアプリケーションが必要とする情報のように、電力が切断された場合にも保持しておくことが必要なデータを不揮発性メモリ40に記憶する。
GA60は、CPU50の命令に従って、ディスプレイ80に表示する画像の描画処理を高速に行うハードウェアである。具体的には、GA60は、CPU50から入力されたベクトル図形をラスタ図形に展開するといった処理を行う。そして、GA60は、描画処理を行った図形をディスプレイ80に描画するための描画データをディスプレイコントローラ70に出力する。
ディスプレイコントローラ70は、ディスプレイ80を直接制御し、GA60から入力された描画データをディスプレイ80に表示させる。
具体的には、ディスプレイコントローラ70は、GA60から入力された描画データを参照して、ディスプレイ80のXドライバおよびYドライバを駆動することにより、描画対象であるラスタ図形をディスプレイ80に表示させる。
ディスプレイ80は、例えばA4サイズの高画素密度(多ピクセル)である表示装置によって構成され、ディスプレイコントローラ70の制御に応じて、所定画素に画素データを表示する。
また、ディスプレイ80は、記憶性の表示装置(電源を切断しても表示画面が維持される表示装置)である。そのため、表示画面の状態を維持するためには電力が不要となることから、情報処理装置1をより低消費電力化することができる。
なお、ディスプレイ80として、例えば、電気泳動ディスプレイ、コレステリック液晶ディスプレイ、帯電トナーを利用したディスプレイ、ツイストボールを利用したディスプレイあるいはエレクトロデポジションディスプレイ等が採用可能である。
電力制御部90は、CPU50の指示に従って、情報処理装置1の各部に対するバッテリ100からの電力の供給を制御する。
バッテリ100は、電力制御部90を介して情報処理装置1に電力を供給する一次電池あるいは二次電池である。
次に、動作を説明する。
本実施の形態における情報処理装置1は、上述の構成の下、入力操作が行われた場合等、動作が必要な場合にのみ電源が投入され、必要な動作が終了すると、再び電源が切断された状態となる。また、このとき、閲覧中の電子ブックコンテンツのページ番号やメモリ管理テーブル等、電源が切断された場合にも保持が必要なデータは、不揮発性メモリ40に記憶され、電源が再投入された場合に、不揮発性メモリ40に記憶されているデータが利用可能な状態となっている。
以下、電池交換等の後にユーザが電源を初期投入し、電子ブックのコンテンツを読みつつ1ページめくった後、2ページ目を読み終えた時点で、そのコンテンツの閲覧を終了する場合を想定し、この場合における情報処理装置1の具体的動作例を説明する。
図4は、情報処理装置1の具体的動作例を示すフローチャートであり、図5は、このときの不揮発性メモリ40におけるメモリマップの遷移を示す図である。なお、図5(a)は、図4に示すフローチャートが実行される際の初期状態を示すメモリマップであり、他のアプリケーションによって使用される2つのメモリブロック“USER”,“ALRM”が確保されている。
図4において、電池交換後(あるいは工場出荷後等)に、ユーザによって情報処理装置1の電源が初期投入されると、CPU50は、“PGNO”なるメモリブロック名を引数として関数“NVAllocateNamedMemory”を実行し、図5(b)に示すように、4バイト分のメモリブロックを不揮発性メモリ40の記憶領域に確保する(ステップS1)。この“PGNO”は、電子ブックの閲覧ソフトウェアが閲覧中のページを管理するために専用に用いるメモリブロック名である。
続いて、CPU50は、確保したメモリブロックの実データとして、ページ番号“1”(第1ページ目)を設定し(ステップS2)、第1ページ目のコンテンツをメモリカードから読み出してディスプレイ80に表示する(ステップS3)。
すると、CPU50は、バッテリ100から情報処理装置1に対する電力の供給を停止する(ステップS4)。即ち、情報処理装置1は、ディスプレイ80に画面が表示されたまま電源が切断された状態となり、電力を消費しない状態となる。
その後、ユーザによってボタンが操作され、ページをめくる指示入力が行われると、このボタン操作が電源投入のトリガとなり、情報処理装置1に電力の供給が再開され(ステップS5)、CPU50は、メモリブロック名“PGNO”を引数として関数“NVGetNamedMemoryAddress”を実行する(ステップS6)。即ち、ステップS6においては、メモリブロック名“PGNO”の領域が不揮発性メモリ40から検索される。
すると、CPU50は、図5(c)に示すように、検索されたメモリブロック名“PGNO”の領域におけるページ番号を“1”インクリメントし、第2ページを示す“2”とする(ステップS7)。
次いで、CPU50は、第2ページ目のコンテンツをメモリカードから読み出してディスプレイ80に表示する(ステップS8)。
すると、CPU50は、バッテリ100から情報処理装置1に対する電力の供給を停止し、再び電源が切断された状態となる(ステップS9)。
その後、ユーザによってボタンが操作され、電子ブックの閲覧を終了する指示入力が行われると、このボタン操作が電源投入のトリガとなり、情報処理装置1に電力の供給が再開され(ステップS10)、CPU50は、メモリブロック名“PGNO”を引数として関数“NVFreeMemory”を実行する(ステップS11)。即ち、ステップS11においては、図5(d)に示すように、不要となったメモリブロック名“PGNO”の領域が不揮発性メモリ40から削除され、空き領域となる。
さらに、CPU50は、電子ブックの閲覧ソフトウェアの終了に伴う各種処理(例えば、揮発性メモリ30において使用していた領域の解放等)を行い(ステップS12)、バッテリ100から情報処理装置1に対する電力の供給を停止し、再び電源が切断された状態となる(ステップS13)。
なお、ステップS13において、情報処理装置1は電源が切断された状態となり、ここに示す具体的動作例の処理は終了するが、ユーザによってボタンが操作された場合等、情報処理装置1における動作の必要が生じた場合には、速やかに電力の供給が再開され、CPU50が所定の処理を行うものである。そして、このとき、CPU50(不揮発性メモリ管理モジュール)は、電力の供給が再開されると、メモリブロック名をキーとして不揮発性メモリ40上の記憶領域を検索する。
以上のように、本実施の形態に係る情報処理装置1は、不揮発性メモリ40の記憶領域に確保されるメモリブロックそれぞれに固有のメモリブロック名を付し、そのメモリブロック名によってメモリブロックを識別するメモリ管理テーブルを用いて、不揮発性メモリ40のメモリ管理を行う。そして、電源の再投入時には、アプリケーションがメモリブロック名を指定することにより、不揮発性メモリ40においてメモリブロック名が検索され、そのメモリブロック名に対応するメモリブロックのデータにアクセスされる。
したがって、不揮発性のメモリを備え、電力制御によって再起動を繰り返す情報処理装置において、電源の再投入時に不揮発性メモリに保持されているデータを利用することが可能となる。
即ち、不揮発性メモリを備える情報処理装置において、電力制御のためのメモリ管理を適切に行うことが可能となる。そして、それにより、情報処理装置における消費電力を大幅に削減することが可能となる。
なお、本実施の形態においては、メモリ管理テーブルにはメモリブロックの個数のみを格納し、メモリブロック名およびメモリブロックのサイズをそのメモリブロックの実データと一体とする形で不揮発性メモリ40に記憶することとして説明したが、メモリブロック名およびメモリブロックのサイズをメモリ管理テーブルに含めて管理することとしても良い。
また、メモリブロック名を付与する方法としては、上述のように、データバスのデータ幅、ALUの入力データ幅、レジスタのデータ幅に合わせる場合の他、任意文字列あるいは任意の数値とすることが可能である。また、一般に、情報処理装置1において取り扱われるデータ幅をASCIIコードの1文字分である8(ビット)で除した文字数とすることが望ましい。
また、本実施の形態においては、不揮発性メモリ40に直接アクセスしてデータの読み出しや書き込みを行う例について説明したが、一般に、不揮発性メモリより揮発性メモリの方が高速に動作可能であることから、不揮発性メモリ40に記憶されたデータを揮発性メモリ30にコピーし、揮発性メモリ30に記憶されたデータを利用することとしても良い。このように、不揮発性メモリ40に記憶されたデータを揮発性メモリ30にコピーして利用する処理は、OSあるいはアプリケーションが行うことが可能である。
本発明に係る情報処理装置1の機能構成を示すブロック図である。 不揮発性メモリ管理モジュールを構成するAPIを具体的に示す図である。 情報処理装置1が有するメモリ空間のメモリマップを示す図である。 情報処理装置1の具体的動作例を示すフローチャートである。 不揮発性メモリ40におけるメモリマップの遷移を示す図である。
符号の説明
1 情報処理装置、10 I/O部、30 揮発性メモリ、40 不揮発性メモリ、50 CPU、60 GA、70 ディスプレイコントローラ、80 ディスプレイ、90 電力制御部、100 バッテリ

Claims (13)

  1. 装置内部における電力の供給を自律的に制御する情報処理装置であって、
    記憶している情報を不揮発的に保持する不揮発性メモリと、
    前記不揮発性メモリの記憶領域におけるメモリブロックに固有のメモリブロック名を付して、該メモリブロック名によって前記メモリブロックを識別するためのメモリ管理情報を生成し、該メモリ管理情報を前記不揮発性メモリに記憶する不揮発性メモリ管理手段と、
    を含むことを特徴とする情報処理装置。
  2. 前記不揮発性メモリ管理手段は、装置に対する電力の供給停止後、電力の供給が再開された場合、前記メモリブロック名を基に前記不揮発性メモリにおける記憶領域を検索し、該メモリブロック名に対応する前記メモリブロックに記憶された情報にアクセスすることを特徴とする請求項1記載の情報処理装置。
  3. 前記不揮発性メモリ管理手段は、前記メモリブロックが不要となった場合、該メモリブロックのメモリブロック名を基に前記不揮発性メモリにおける記憶領域を検索し、該メモリブロックを解放することを特徴とする請求項1または2記載の情報処理装置。
  4. 前記不揮発性メモリより高速に読み出しあるいは書き込みが可能な揮発性メモリと、
    前記不揮発性メモリの記憶領域に記憶された情報を該揮発性メモリに記憶させ、前記不揮発性メモリに代えて、該揮発性メモリに記憶された情報にアクセスする間接アクセス手段と、
    をさらに含むことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記不揮発性メモリ管理手段は、前記メモリブロック名に対応するメモリブロックにアクセスの必要が生じた場合に、前記メモリ管理情報を基に、該メモリブロックに記憶された情報に直接アクセスすることを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
  6. 前記不揮発性メモリ管理手段は、前記メモリブロック名として、任意の文字列からなる名称を付すことを特徴とする請求項1から5のいずれか1項に記載の情報処理装置。
  7. 前記不揮発性メモリ管理手段は、前記メモリブロック名として、自装置においてデータを取り扱う際のデータ幅に対応するサイズの名称を付すことを特徴とする請求項1から5のいずれか1項に記載の情報処理装置。
  8. 前記不揮発性メモリ管理手段は、前記メモリブロック名として、自装置においてデータを取り扱う際のデータ幅を“8”で除した個数の文字からなる名称を付すことを特徴とする請求項7記載の情報処理装置。
  9. 前記不揮発性メモリとデータ線によって接続された所定のプロセッサを含み、
    前記不揮発性メモリ管理手段は、前記メモリブロック名として、前記データ線のデータ幅に合わせたサイズの名称を付すことを特徴とする請求項7記載の情報処理装置。
  10. 演算対象となる情報を記憶するためのレジスタを備える所定のプロセッサを含み、
    前記不揮発性メモリ管理手段は、前記メモリブロック名として、前記レジスタのデータ幅に合わせたサイズの名称を付すことを特徴とする請求項7記載の情報処理装置。
  11. 演算対象となる情報に対して論理演算を行うためのALUを備える所定のプロセッサを含み、
    前記不揮発性メモリ管理手段は、前記メモリブロック名として、前記ALUの入力データ幅に合わせたサイズの名称を付すことを特徴とする請求項7記載の情報処理装置。
  12. 装置内部における電力の供給を自律的に制御する情報処理装置を制御するメモリ管理プログラムであって、
    前記情報処理装置に備えられた、記憶している情報を不揮発的に保持する不揮発性メモリの記憶領域におけるメモリブロックに固有のメモリブロック名を付して、該メモリブロック名によって前記メモリブロックを識別するためのメモリ管理情報を生成し、該メモリ管理情報を前記不揮発性メモリに記憶する不揮発性メモリ管理機能を前記情報処理装置に実現させることを特徴とするメモリ管理プログラム。
  13. 装置内部における電力の供給を自律的に制御する情報処理装置におけるメモリ管理方法であって、
    前記情報処理装置に備えられた、記憶している情報を不揮発的に保持する不揮発性メモリの記憶領域におけるメモリブロックに固有のメモリブロック名を付して、該メモリブロック名によって前記メモリブロックを識別するためのメモリ管理情報を生成し、該メモリ管理情報を前記不揮発性メモリに記憶する不揮発性メモリ管理ステップを含むことを特徴とするメモリ管理方法。
JP2004200559A 2004-07-07 2004-07-07 情報処理装置、メモリ管理プログラムおよびメモリ管理方法 Expired - Fee Related JP4182928B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004200559A JP4182928B2 (ja) 2004-07-07 2004-07-07 情報処理装置、メモリ管理プログラムおよびメモリ管理方法
TW094116350A TWI277866B (en) 2004-07-07 2005-05-19 Information processing apparatus, recording medium with program, and memory managing method
KR1020050049616A KR100719200B1 (ko) 2004-07-07 2005-06-10 정보 처리 장치, 메모리 관리 프로그램을 기록한 기록매체 및 메모리 관리 방법
US11/155,538 US7401200B2 (en) 2004-07-07 2005-06-20 Information processing apparatus, memory managing program, and memory managing method
EP05013627A EP1615107A3 (en) 2004-07-07 2005-06-23 Information processing apparatus, memory managing program, and memory managing method
CNB2005100819606A CN100370395C (zh) 2004-07-07 2005-07-06 信息处理装置、存储器管理程序及存储器管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004200559A JP4182928B2 (ja) 2004-07-07 2004-07-07 情報処理装置、メモリ管理プログラムおよびメモリ管理方法

Publications (2)

Publication Number Publication Date
JP2006023919A true JP2006023919A (ja) 2006-01-26
JP4182928B2 JP4182928B2 (ja) 2008-11-19

Family

ID=35004173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004200559A Expired - Fee Related JP4182928B2 (ja) 2004-07-07 2004-07-07 情報処理装置、メモリ管理プログラムおよびメモリ管理方法

Country Status (6)

Country Link
US (1) US7401200B2 (ja)
EP (1) EP1615107A3 (ja)
JP (1) JP4182928B2 (ja)
KR (1) KR100719200B1 (ja)
CN (1) CN100370395C (ja)
TW (1) TWI277866B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747880B2 (en) 2005-06-30 2010-06-29 Seiko Epson Corporation Information processing apparatus and program for causing computer to execute power control method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7562180B2 (en) * 2006-03-28 2009-07-14 Nokia Corporation Method and device for reduced read latency of non-volatile memory
US7788513B2 (en) 2006-08-29 2010-08-31 Hewlett-Packard Development Company, L.P. Method of reducing power consumption of a computing system by evacuating selective platform memory components thereof
JP4399020B1 (ja) * 2008-08-26 2010-01-13 株式会社東芝 情報処理装置およびメモリ管理方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0437916A (ja) 1990-06-01 1992-02-07 Hitachi Ltd 情報処理装置
EP0749063A3 (en) 1995-06-07 1999-01-13 International Business Machines Corporation Method and apparatus for suspend/resume operation in a computer
US5860138A (en) * 1995-10-02 1999-01-12 International Business Machines Corporation Processor with compiler-allocated, variable length intermediate storage
JP3453467B2 (ja) 1995-10-13 2003-10-06 キヤノン株式会社 情報処理装置と該情報処理装置のパワーマネジメント機能呼び出し方法
GB2310513B (en) * 1996-02-20 2000-02-16 Ibm Computer with reduced power consumption
JP2988866B2 (ja) 1996-02-29 1999-12-13 株式会社東芝 コンピュータシステム
JP3222821B2 (ja) * 1997-12-25 2001-10-29 株式会社東芝 プログラマブルコントローラ
JP4085478B2 (ja) 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
US6209088B1 (en) 1998-09-21 2001-03-27 Microsoft Corporation Computer hibernation implemented by a computer operating system
KR100566225B1 (ko) * 1998-12-10 2006-10-04 삼성전자주식회사 이동통신단말기의 폰북메모리 제어장치및 그 방법
EP1037133A1 (en) 1999-03-15 2000-09-20 International Business Machines Corporation Method and apparatus for alternation between instances of operating systems in computer systems
WO2001037066A1 (fr) * 1999-11-16 2001-05-25 Fujitsu Limited Processeur d'informations et support lisible par ordinateur
US6711595B1 (en) * 2000-05-09 2004-03-23 Openwave Systems Inc. Method and apparatus for sharing standard template library objects among processes
US7108605B2 (en) * 2002-09-30 2006-09-19 Igt EPROM file system in a gaming apparatus
US8412879B2 (en) 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747880B2 (en) 2005-06-30 2010-06-29 Seiko Epson Corporation Information processing apparatus and program for causing computer to execute power control method

Also Published As

Publication number Publication date
JP4182928B2 (ja) 2008-11-19
CN100370395C (zh) 2008-02-20
US20060010283A1 (en) 2006-01-12
EP1615107A2 (en) 2006-01-11
CN1719383A (zh) 2006-01-11
KR20060048319A (ko) 2006-05-18
TWI277866B (en) 2007-04-01
US7401200B2 (en) 2008-07-15
TW200602868A (en) 2006-01-16
EP1615107A3 (en) 2007-01-03
KR100719200B1 (ko) 2007-05-16

Similar Documents

Publication Publication Date Title
TWI436199B (zh) 電源管理控制器與方法
US10754558B2 (en) Vehicular device
US7412565B2 (en) Memory optimization for a computer system having a hibernation mode
KR101562973B1 (ko) 메모리 장치 및 메모리 장치의 동작 방법
JP5783809B2 (ja) 情報処理装置、起動方法およびプログラム
TW200805159A (en) Method and apparatus for fast boot of an operating system
KR20110006352A (ko) 시스템 고속 부팅 장치 및 방법
US8996852B2 (en) Electronic device and booting method thereof
JPH077316B2 (ja) システム再起動装置
EP2538319A1 (en) Non-volatile data processing apparatus and image forming apparatus
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
US7401200B2 (en) Information processing apparatus, memory managing program, and memory managing method
JP2009093669A (ja) 情報処理装置および情報処理方法
JP5587654B2 (ja) 電子装置及びそのブーティング方法
JP2009258925A (ja) 計算機システムおよび計算機システムのメモリ管理方法
EP1408406B1 (en) Arithmetic unit with reduced startup time and method of loading data
JPH10240391A (ja) 携帯型ドキュメント表示/処理装置及び同装置に適用されるパワー管理制御方法
US20150317181A1 (en) Operating system switching method
TW200923782A (en) A bootloader self-update system and method thereof
JP2008015725A (ja) 情報処理装置およびプログラム起動方法
WO2017113247A1 (zh) 降低内存功耗的方法及计算机设备
JP2004152277A (ja) 起動時間短縮演算装置およびデータロード方法
JP6297182B2 (ja) 情報処理装置および表示制御装置
JPS6329861A (ja) Ipl制御方式
JP6080490B2 (ja) 情報処理装置、起動方法およびプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080716

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080825

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120912

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130912

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees