JP6220244B2 - 電子機器 - Google Patents

電子機器 Download PDF

Info

Publication number
JP6220244B2
JP6220244B2 JP2013241266A JP2013241266A JP6220244B2 JP 6220244 B2 JP6220244 B2 JP 6220244B2 JP 2013241266 A JP2013241266 A JP 2013241266A JP 2013241266 A JP2013241266 A JP 2013241266A JP 6220244 B2 JP6220244 B2 JP 6220244B2
Authority
JP
Japan
Prior art keywords
bank
program
sense amplifier
connection switch
nonvolatile memory
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.)
Expired - Fee Related
Application number
JP2013241266A
Other languages
English (en)
Other versions
JP2015102911A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013241266A priority Critical patent/JP6220244B2/ja
Priority to US14/534,458 priority patent/US9275709B2/en
Publication of JP2015102911A publication Critical patent/JP2015102911A/ja
Application granted granted Critical
Publication of JP6220244B2 publication Critical patent/JP6220244B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1657Word-line or row circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1659Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1048Data bus control circuits, e.g. precharging, presetting, equalising

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Description

本発明は電子機器に関し、特に不揮発性メモリを主記憶として使用する際のプログラムの保護と起動時間の短縮技術に関するものである。
従来、デジタルカメラ等の電子機器においては、画像処理等のためのメインメモリとして、DRAMなどの揮発性メモリを使用している。また、揮発性メモリに代わり、不揮発性メモリをメインメモリとして使用する構成も提案されている(例えば、特許文献1参照)。
また、電子機器において、NORフラッシュ等の不揮発性のメモリにプログラムコードやデータなどを格納しておき、プログラム実行前に、この不揮発性メモリからアクセス速度がより速いDRAM等の揮発性メモリにプログラムコードやデータをコピーし、その後揮発性メモリにアクセスしてプログラムを実行する方法が知られている。
更に、近年はMRAM(Magnetoresistive Random Access Memory)の様に不揮発性メモリでありながら、DRAM並みのアクセス速度や書き換え回数の耐久性を備えたデバイスが登場し、プログラムコードの格納とワーク領域を同一デバイスで兼用することが可能になってきている。
特開2004−334626号公報
しかしながら、NORフラッシュと、DRAMによって構成される電子機器においては、NORフラッシュメモリのアクセス速度の問題からプログラムコードやデータのコピーに時間がかかるという課題があった。
また、MRAM等の不揮発性主記憶は、NORフラッシュに比べてライト動作が電子機器内のメモリコントローラを介して安易に行う事が出来る為、MRAM等の不揮発性主記憶に予めプログラムコードが格納されている場合、プログラムの暴走等によりブートプログラムを含む、プログラムが破壊される可能性がある。
そこで、本発明は、MARM等の不揮発性メモリにブートプログラムを含むプログラムが格納され、かつこの不揮発性メモリを主記憶としても使用する電子機器において、プログラムの保護および電子機器の起動時間を短縮させる技術を提供する。
この課題を解決するため、例えば本発明の電子機器は以下の構成を備える。すなわち、
プログラムを実行するプロセッサと、当該プロセッサが実行するプログラムが予め格納されている、主記憶として利用される不揮発性メモリとを有する電子機器において、
前記電子機器の電源投入時又はリセット時に、前記不揮発性メモリへ所定の信号を供給するリセット制御部を有し、
前記不揮発性メモリは、
プログラムを格納するための第1の格納領域と、
前記プロセッサにより実行する際のプログラムを格納するための第2の格納領域と、
前記リセット制御部からの前記所定の信号を受信したことに応じて、前記第1の格納領域に格納されたプログラムを前記第2の格納領域に転送する転送部と、
前記転送部による前記転送が完了したことに応じて、前記第1の格納領域と前記不揮発性メモリの外部とを切断し、前記第2の格納領域と前記不揮発性メモリの外部とのバスを接続すると共に、転送完了を示す信号を前記リセット制御部に通知する通知部とを有し、
前記リセット制御部は、前記不揮発性メモリから前記転送完了を示す信号を受信したことに応じて、前記プロセッサにリセット解除信号を出力することを特徴とする。
本発明によれば、MRAM等の不揮発性メモリにブートプログラムを含むプログラムが格納され、かつこの不揮発性メモリを主記憶としても使用する場合であっても、プログラムの保護および電子機器の起動時間の短縮が可能になる。
本発明の第1の実施の形態に係る、電子機器の構成を示す図 本発明の第1の実施の形態に係る、電子機器のタイミングチャートを示す図 本発明の第1、第2、第3の実施の形態に係る、電子機器のプログラムの配置を示す図 本発明の第2の実施の形態に係る、電子機器の構成を示す図 本発明の第2の実施の形態に係る、電子機器のタイミングチャートを示す図 本発明の第3の実施の形態に係る、電子機器の構成を示す図 本発明の第3の実施の形態に係る、電子機器のタイミングチャートを示す図 本発明の第4の実施の形態に係る、電子機器の構成を示す図 本発明の第4の実施の形態に係る、電子機器のタイミングチャートを示す図 本発明の第4の実施の形態に係る、電子機器のCPUフローチャートを示す図 本発明の第4の実施の形態に係る、電子機器のプログラムの配置を示す図
以下に、本発明の各実施形態を添付図面に基づいて詳細に説明する。なお、以下で説明する不揮発性メモリがMRAMもしくはMARMで構成されるメモリモジュールであり、それを主記憶として利用する電子機器を説明する。
[第1の実施形態]
第1の実施形態を図1、図2、図3を用いて説明する。なお、以下において、同一構成要素には同じ記号および符号を付しその説明を省略する。図1は、第1の実施の形態に係る電子機器の構成を示す図である。図2は、第1の実施の形態に係る、タイミングチャートを示す図である。図3は、第1の実施の形態に係る、プログラムの配置を示す図である。
第1の実施形態では、予めブートプログラムを含むプログラムが格納されていている不揮発性メモリを主記憶とする電子機器において、不揮発性メモリの内部で、プログラム格納領域から、プログラム実行領域へプログラムを転送する。これにより、ブートプログラムを含むプログラムの保護と、起動時間の短縮を図るものである。
図1において、100は、第1の実施の形態に係る電子機器である。電子機器としては、パーソナルコンピュータ、携帯端末、デジタルカメラなど、内部のプロセッサを有する装置であればよく、その種類は問わない。101は、ページサイズ4KByte,バンク容量16KByte、全容量80KByteで、プログラム格納領域102に予めブートプログラムを含む、プログラムが格納されていて、異バンク間のページ転送が可能な、第1の実施の形態に係る不揮発性メモリである。
102は、不揮発性メモリ101の、ページ1、ページ2、ページ3、ページ4の4つのページに分割されたバンクである。このバンク102は、不揮発性メモリ101の外部からのリード、ライトアクセスが不可能で、電子機器100の出荷時に予めブートプログラムを含む、プログラムが格納されていているプログラム格納領域でもある。
例えば、バンク102のページ1には、予めブートプログラムが格納されている。バンク102のページ2には、予め電子機器100のアプリケーションプログラムの一つであるプログラム1が格納されている。バンク102のページ3には、予め電子機器100のアプリケーションプログラムの一つであるプログラム2が格納されている。
103は、不揮発性メモリ101の、ページ1、ページ2、ページ3、ページ4の4つのページに分割されたバンクであり、CPU138のプログラムの実行領域、及びワーク領域として使用されるバンクである。
104は、不揮発性メモリ101の、ページ1、ページ2、ページ3、ページ4の4つのページに分割されたバンクであり、CPU138のプログラムの実行領域、及びワーク領域として使用されるバンクである。
105は、不揮発性メモリ101の、ページ1、ページ2、ページ3、ページ4の4つのページに分割されたバンクであり、CPU138のプログラムの実行領域、及びワーク領域として使用されるバンクである。
106は、不揮発性メモリ101の、ページ1、ページ2、ページ3、ページ4の4つのページに分割されたバンクであり、CPU138のプログラムの実行領域、及びワーク領域として使用されるバンクである。
例えば、CPU138は、バンク103のページ1に配置されるブートプログラムでブートする。アプリケーション動作の際は、CPU138は、バンク103のページ2に配置されるプログラム1、及びバンク104のページ1に配置されるプログラム2を使用して実行する。
107は、バンク103のセンスアンプである。108は、バンク104のセンスアンプである。109は、バンク105のセンスアンプである。110は、バンク106のセンスアンプである。111は、バンク102のセンスアンプである。センスアンプ107、108、109、110、111はロウデコーダ112、113、114、115、116により選択されて活性化されたページを読み出して信号増幅する。
112は、バンク103のロウデコーダである。113は、バンク104のロウデコーダである。114は、バンク105のロウデコーダである。115は、バンク106のロウデコーダである。116は、バンク102のロウデコーダである。ロウデコーダ112,113,114,115,116は、電子機器100の起動直後、つまり、バンク102から、バンク103、バンク104、バンク105、バンク106へプログラムを転送する時には、プログラム転送コマンド発行部135(転送部に相当)から制御され選択されたバンクのページを活性化する。ロウデコーダ112,113,114,115,116は、バンク102から、バンク103、バンク104、バンク105、バンク106へプログラムの転送が完了し、CPU138による電子機器100の制御が始まると、不揮発性メモリ101外部のコマンドにより選択されたバンクのページを活性化する。
117は、バンク103のカラムデコーダである。118は、バンク104のカラムデコーダである。119は、バンク105のカラムデコーダである。120は、バンク106のカラムデコーダである。カラムデコーダ117,118,119,120は不揮発性メモリ101の外部からのコマンドによりカラムアドレスが制御され、センスアンプに読み出されたページのデータをリードしたり、センスアンプを介してページ書き込みを行う。
121は、不揮発性メモリ101のページサイズである4096Byteの配線からなる異バンク間のページ転送を行うプログラム転送バスである。プログラム転送バス121は以下の接続スイッチを有する。122はプログラム転送バス121の一部であり、センスアンプ107とプログラム転送バス121の接続を選択するセンスアンプ接続スイッチである。123はプログラム転送バス121の一部であり、センスアンプ108とプログラム転送バス121の接続を選択するセンスアンプ接続スイッチである。124はプログラム転送バス121の一部であり、センスアンプ109とプログラム転送バス121の接続を選択するセンスアンプ接続スイッチである。125はプログラム転送バス121の一部であり、センスアンプ110とプログラム転送バス121の接続を選択するセンスアンプ接続スイッチである。126はプログラム転送バス121の一部であり、センスアンプ111とプログラム転送バス121の接続を選択するセンスアンプ接続スイッチである。
127はプログラム転送バス121の一部であり、バンク102とバンク103間の接続を選択するバンク接続スイッチである。128はプログラム転送バス121の一部であり、バンク103とバンク104間の接続を選択するバンク接続スイッチである。129はプログラム転送バス121の一部であり、バンク104とバンク105間の接続を選択するバンク接続スイッチである。130はプログラム転送バス121の一部であり、バンク105とバンク106間の接続を選択するバンク接続スイッチである。
131はプログラム転送バス121の一部であり、カラムデコーダ117と、プログラム転送バス121の接続を選択するカラムデコーダ接続スイッチである。132はプログラム転送バス121の一部であり、カラムデコーダ118と、プログラム転送バス121の接続を選択するカラムデコーダ接続スイッチである。133はプログラム転送バス121の一部であり、カラムデコーダ119と、プログラム転送バス121の接続を選択するカラムデコーダ接続スイッチである。134はプログラム転送バス121の一部であり、カラムデコーダ120と、プログラム転送バス121の接続を選択するカラムデコーダ接続スイッチである。
例えば、バンク102のプログラム格納領域のデータ(ブートプログラムなど)をバンク104にプログラムの転送を行う際は、プログラム転送コマンド発行135からのコマンドにより以下の状態となる。プログラム転送コマンド発行135からの、バンク102及びバンク104への活性化コマンドにより、センスアンプ接続スイッチ126、センスアンプ接続スイッチ123、バンク接続スイッチ127、バンク接続スイッチ128がクローズされ、バンク102とバンク104が接続された状態になる。プログラム転送コマンド発行135からプログラム転送コマンドが発行され、バンク102からバンク104にプログラムが転送される。バンク102からバンク104へのプログラムの転送が完了したタイミングで、センスアンプ接続スイッチ126、センスアンプ接続スイッチ123、バンク接続スイッチ127、バンク接続スイッチ128がオープン状態に初期化される。
135は、リセット制御部139からの所定のリセット解除信号を受信して、プログラム転送バス121を介した異バンク間のプログラムの転送を行う為のプログラム転送コマンド発行部である。プログラム転送コマンド発行部の発行するコマンドは、不揮発性メモリ101内のバンク102と、バンク103、バンク104、バンク105、バンク106を活性化する活性化コマンドと、活性化されたページを転送するプログラム転送コマンドからなる。
活性化コマンドには、バンク102と、バンク103、バンク104、バンク105、バンク106を活性化すると共に、活性化するバンクが、プログラム転送の際のいずれがソースとなり、いずれがディスティネーションとなるかを示す信号が重畳されている。もしくは、活性化コマンドには、バンク102と、バンク103、バンク104、バンク105、バンク106を活性化すると共に、活性化するバンクが、プログラ転送の際のソースとなるかディスティネーションとなるかを示すコマンドを発行する。また、活性化コマンド発行によりプログラム転送バス121内の接続スイッチを制御して、異バンク間のプログラムの転送が可能な状態にする。プログラム転送コマンド発行部が発行する活性化コマンドとプログラム転送コマンドは、電子機器100の市場出荷後に書き換え不可能な、ROMやEFUSE等の素子により電子機器の出荷時に設定される。例えば、電子機器の出荷時に、予めバンク102のページ1に格納されているブートプログラムは、バンク103のページ1に転送されるように設定されている。バンク102のページ2に格納されているプログラム1は、バンク104のページ1に転送されるように設定されている。バンク102のページ3に格納されているプログラム2は、バンク103のページ2に転送されるように設定されている。
136はプログラム転送完了通知部である。このプログラム転送完了通知部136は、不揮発性メモリ101内部でバンク102から、当該バンク102以外のバンク103などのプログラム実行領域へのプログラムの転送が完了したら、リセット制御部139にプログラム転送完了を通知する。137は電源制御部であり、ユーザからの操作により電子機器100の電源供給を管理する。138は電子機器100を制御するCPUである。このCPU138は、リセット制御部139からのリセット解除を受けて、ブートプログラムで起動して、プログラムを実行して電子機器100の起動後の制御を行うことになる。139はリセット制御部であり、電子機器100の電源オンの監視し、また、CPU138、及び、不揮発性メモリ101に対するリセットの印加、解除を制御する。リセット制御部139は、電源制御部137からの電源供給をうけて、不揮発性メモリ101に対するリセットを解除する、また、リセット制御部139は、プログラム転送完了通知部136からのプログラム転送完了信号をうけて、CPU138のリセットを解除する。
以下に、5つのバンクに分割され、ページサイズ4KByte,バンク容量16KByte,全容量80KByteの不揮発性メモリ101において、不揮発性メモリ101の内部で、バンク102内のプログラム格納領域からブートプログラムを含むプログラムを、バンク103、バンク104へプログラムを転送することで、オリジナルを格納しているバンク102のプログラム領域のプログラムの保護と、電子機器100の起動時間の短縮ができる実施の一例を図2のタイミングチャートを元に示す。
本実施形態は、不揮発性メモリ101内のバンク102のプログラム格納領域に予め格納されているプログラムのファームウェアアップ等のプログラムの更新を含まない電子機器100の通常動作である。
本実施形態では、図3に示すように、バンク102のプログラム格納領域は、予めそのページ1にブートプログラムが、ページ2にプログラム1が、ページ3にプログラム2が格納されているものとする。また、プログラム転送コマンド発行部135には、電源投入時、又は、リセット時に、バンク103のページ1にブートプログラムを、バンク104のページ1にプログラム1を、バンク103のページ2にプログラム2を転送すると設定されているものとする。
かかる設定がなされた電子機器100の電源をユーザがオンすると、T1のタイミングで、電源制御部137からの電源電圧が上昇していく。T2の電源電圧がリセット電圧に達したタイミングからT100の期間後、リセット制御部139は不揮発性メモリ101へのリセットを解除し、センスアンプ接続スイッチ122、センスアンプ接続スイッチ123、センスアンプ接続スイッチ124、センスアンプ接続スイッチ125、センスアンプ接続スイッチ126、バンク接続スイッチ127、バンク接続スイッチ128、バンク接続スイッチ129、バンク接続スイッチ130、カラムデコーダ接続スイッチ131、カラムデコーダ接続スイッチ132、カラムデコーダ接続スイッチ133、カラムデコーダ接続スイッチ134をオープンにする。
T3のプログラム転送コマンド発行部135が、バンク102へ活性化コマンドを発行して、バンク102を活性化すると共にソースのバンクとして指定したタイミングでセンスアンプ接続スイッチ126をクローズする。
T4のプログラム転送コマンド発行部135が、バンク103へ活性化コマンドを発行して、バンク103のページ1を活性化すると共にディスティネーションのバンクとして指定したタイミングでセンスアンプ接続スイッチ122をクローズする。また、バンク102とバンク103を接続する為の、バンク接続スイッチ127をクローズする。
T5のセンスアンプ111、センスアンプ107にデータが読みだされたタイミングで、プログラム転送コマンド発行部135はプログラム転送コマンドを発行してセンスアンプ111に読み出されたブートプログラムのセンスアンプ107を介したバンク103への転送が開始される。T6のブートプログラムの転送が終了したタイミングで、センスアンプ接続スイッチ122、バンク接続スイッチ127をオープンにする。T7のタイミングで、プログラム転送コマンド発行部135が、バンク102へ活性化コマンドを発行して、バンク102のページ3を活性化する。T8のプログラム転送コマンド発行部135が、バンク103へ活性化コマンドを発行して、バンク103のページ2を活性化すると共にディスティネーションのバンクとして指定したタイミングでセンスアンプ接続スイッチ122をクローズする。また、バンク102とバンク103を接続する為の、バンク接続スイッチ127をクローズする。
T9の、センスアンプ111、センスアンプ107にデータが読みだされたタイミングで、プログラム転送コマンド発行部135はプログラム転送コマンドを発行してセンスアンプ111に読み出されたプログラム2のセンスアンプ107を介したバンク103への転送が開始される。T10の、プログラム2の転送が終了したタイミングで、センスアンプ接続スイッチ122、バンク接続スイッチ127をオープンにする。T11の、プログラム転送コマンド発行部135が、バンク102へ活性化コマンドを発行して、バンク102のページ2を活性化する。T12の、プログラム転送コマンド発行部135が、バンク104へ活性化コマンドを発行して、バンク104のページ1を活性化すると共にディスティネーションのバンクとして指定したタイミングでセンスアンプ接続スイッチ123をクローズする。また、バンク102とバンク104を接続する為の、バンク接続スイッチ127、バンク接続スイッチ128をクローズする。
T13の、センスアンプ111、センスアンプ108にデータが読みだされたタイミングで、プログラム転送コマンド発行部135はプログラム転送コマンドを発行してセンスアンプ111に読み出されたプログラム1のセンスアンプ108を介したバンク104への転送が開始される。T14の、プログラム1の転送が終了したタイミングで、センスアンプ接続スイッチ126、センスアンプ接続スイッチ123、バンク接続スイッチ127、バンク接続スイッチ128をオープンにして接続スイッチは初期状態に戻る。この初期状態では、少なくとも、センスアンプ接続スイッチ126をオープンになる。
T15の、バンク102から、バンク103、バンク104、バンク105、バンク106へのプログラムの転送が完了したタイミングで、プログラム転送完了通知部136はリセット制御部139にプログラム転送完了を通知する。また、センスアンプ接続スイッチ122、センスアンプ接続スイッチ123、センスアンプ接続スイッチ124、センスアンプ接続スイッチ125をクローズする。また、カラムデコーダ接続スイッチ131、カラムデコーダ接続スイッチ132、カラムデコーダ接続スイッチ133、カラムデコーダ接続スイッチ134の状態をクローズする。T16のリセット制御部139がCPU138へリセット解除したタイミングで、電子機器100のCPU138はブートプログラムから起動して動作を開始する。
上記の結果、不揮発性メモリ101内でのプログラム転送が完了したことトリガにして、電子機器100のCPU138はブートプログラムに従って起動することになる。そのとき、既に、不揮発性メモリ101内のバンク102は不揮発性メモリ101の外部(CPU138)と切断状態になってアクセスできない状態になっている。従って、仮にCPU138が暴走したとしても、不揮発性メモリ101のバンク102のプログラム格納領域に記憶保持されたブートプログラムを含む、プログラムは保護される。
また、プログラムの転送を不揮発性メモリ101の外部バスを介した不図示のDMAやCPU138アクセスを使用せずに、不揮発性メモリ101内部で転送する為、電子機器100の起動時間を速くする事ができる。
以上、第1の実施形態を説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
[第2の実施形態]
第2の実施形態を図3、図4、図5を用いて説明する。なお、以下において、同一構成要素には同じ記号および符号を付しその説明を省略する。図3は、本発明の第2の実施の形態に係る、プログラムの配置を示す図である。図4は、第2の実施の形態に係る、電子機器の構成を示す図である。図5は、第2の実施の形態に係る、タイミングチャートを示す図である。
図4における符号400は、第2の実施の形態に係る電子機器である。電子機器400は、プロセッサを収容する機器であればよく、その種類を問わないのは第1の実施形態と同様である。符号401は、ページサイズ4KByte,バンク容量16KByte,全容量80KByteで、バンク102に予めブートプログラムを含む、プログラムが格納されていて、異バンク間のページ転送が可能な、第2の実施の形態に係る不揮発性メモリである。421は、異バンク間のページ転送を行うプログラム転送バスである。プログラム転送バス421は、以下の配線により構成される。450は、プログラム転送バス421内で、異バンク間のページ転送を行う2048Byteの配線からなる異バンク間ページ転送バスである。
プログラム転送バス421と、センスアンプ107,108,109,110,111との配線の幅は4KByteであり、プログラム転送バス421内部で、カラムアドレスの0x0番地から0x7FF番地までの2048Byteの配線と、カラムアドレスの0x800番地から0xFFF番地までの2048Byte配線とに分割されている。440は、プログラム転送バス421と、センスアンプ107のカラムアドレスの0x0番地から0x7FF番地の2048Byteを接続するセンスアンプ入出力ロウである。
441は、プログラム転送バス421と、センスアンプ107のカラムアドレスの0x800番地から0xFFF番地の2048Byteを接続するセンスアンプ入出力ハイである。442は、プログラム転送バス421と、センスアンプ108のカラムアドレスの0x0番地から0x7FF番地の2048Byteを接続するセンスアンプ入出力ロウである。443は、プログラム転送バス421と、センスアンプ108のカラムアドレスの0x800番地から0xFFF番地の2048Byteを接続するセンスアンプ入出力ハイである。
444は、プログラム転送バス421と、センスアンプ109のカラムアドレスの0x0番地から0x7FF番地の2048Byteを接続するセンスアンプ入出力ロウである。445は、プログラム転送バス421と、センスアンプ109のカラムアドレスの0x800番地から0xFFF番地の2048Byteを接続するセンスアンプ入出力ハイである。446は、プログラム転送バス421と、センスアンプ110のカラムアドレスの0x0番地から0x7FF番地の2048Byteを接続するセンスアンプ入出力ロウである。
447は、プログラム転送バス421と、センスアンプ110のカラムアドレスの0x800番地から0xFFF番地の2048Byteを接続するセンスアンプ入出力ハイである。448は、プログラム転送バス421と、センスアンプ111のカラムアドレスの0x0番地から0x7FF番地の2048Byteを接続するセンスアンプ入出力ロウである。
449は、プログラム転送バス421と、センスアンプ111のカラムアドレスの0x800番地から0xFFF番地の2048Byteを接続するセンスアンプ入出力ハイである。
プログラム転送バス421のカラムデコーダ117,118,119,120との配線は4KByteであり、プログラム転送バス421内部で、カラムアドレスの0x0番地から0x7FF番地までの2048Byteの配線と、カラムアドレスの0x800番地から0xFFF番地までの2048Byteの配線が連接されている。
また、プログラム転送バス421は以下の接続スイッチを有する。422はプログラム転送バス421の一部であり、センスアンプ入出力ロウ440、及びセンスアンプ入出力ハイ441とプログラム転送バス421の接続と、を選択するセンスアンプ接続スイッチである。
423はプログラム転送バス421の一部であり、センスアンプ入出力ロウ442、及びセンスアンプ入出力ハイ443と、プログラム転送バス421の接続と、を選択するセンスアンプ接続スイッチである。424はプログラム転送バス421の一部であり、センスアンプ入出力ロウ444、及びセンスアンプ入出力ハイ445と、プログラム転送バス421の接続と、を選択するセンスアンプ接続スイッチである。
425はプログラム転送バス421の一部であり、センスアンプ入出力ロウ446、及びセンスアンプ入出力ハイ447と、プログラム転送バス421の接続と、を選択するセンスアンプ接続スイッチである。426はプログラム転送バス421の一部であり、センスアンプ入出力ロウ448、及びセンスアンプ入出力ハイ449と、プログラム転送バス421の接続と、を選択するセンスアンプ接続スイッチである。
例えば、バンク102のプログラム格納領域内のプログラムを、バンク104にプログラムの転送を行う際は、プログラム転送コマンド発行135からのコマンドにより以下の状態となる。
プログラム転送コマンド発行135からの、バンク102、及びバンク104への活性化コマンドによりセンスアンプ111、センスアンプ107が活性化される。センスアンプ接続スイッチ426がセンスアンプ出力ロウ448に対してクローズされ、センスアンプ接続スイッチ423がセンスアンプ出力ロウ442に対してクローズされ、バンク接続スイッチ127、バンク接続スイッチ128がクローズされ、バンク102とバンク104のカラムアドレスの0x0番地から0x7FF番地の2048Byteが接続された状態になる。
次に、プログラム転送コマンド発行135からプログラム転送コマンドが発行されると、バンク102のセンスアンプ111のカラムアドレスの0x0番地から0x7FF番地の2048Byteがセンスアンプ107を介してバンク104に転送される。
次に、センスアンプ接続スイッチ426がセンスアンプ出力ロウ449に対してクローズされ、センスアンプ接続スイッチ423がセンスアンプ出力ロウ443に対してクローズされ、バンク102とバンク104のカラムアドレスの0x800番地から0xFFF番地の2048Byteが接続された状態になる。
バンク102のセンスアンプ111のカラムアドレスの0x800番地から0xFFF番地の2048Byteがセンスアンプ107を介してバンク104に転送される。
センスアンプ接続スイッチ426、センスアンプ接続スイッチ423、バンク接続スイッチ127、バンク接続スイッチ128がオープン状態に初期化される。
以下に、5つのバンクに分割され、ページサイズ4KByte,バンク容量16KByte,全容量80KByteの不揮発性メモリ401において、不揮発性メモリ401の内部で、バンク102から、バンク103、バンク104へプログラムを転送することでブートプログラムを含む、プログラムの保護と、電子機器400の起動時間の短縮ができる実施の一例を図5のタイミングチャートを元に示す。
本実施形態は、不揮発性メモリ401の内部の、バンク102のプログラム格納領域に予め格納されているプログラムのファームウェアアップ等のプログラムの更新を含まない電子機器400の通常動作である。
本実施形態では、図3に示すように、バンク102のプログラム格納領域には予め、そのページ1にはブートプログラムが、ページ2にはプログラム1が、ページ3にはプログラム2が格納されている。
プログラム転送コマンド発行部135には、電子機器400の起動時の処理として、バンク103のページ1にブートプログラムを、バンク104のページ1にプログラム1を、バンク103のページ2にプログラム2を転送すると設定されている。T1は第1の実施形態と同様である。
T502の電源電圧がリセット電圧に達したタイミングからT100の期間後、リセット制御部139は不揮発性メモリ401へのリセットを解除し、センスアンプ接続スイッチ422、センスアンプ接続スイッチ423、センスアンプ接続スイッチ424、センスアンプ接続スイッチ425、センスアンプ接続スイッチ426、バンク接続スイッチ427、バンク接続スイッチ428、バンク接続スイッチ429、バンク接続スイッチ430、カラムデコーダ接続スイッチ431、カラムデコーダ接続スイッチ432、カラムデコーダ接続スイッチ433、カラムデコーダ接続スイッチ434をオープンにする。
T503のプログラム転送コマンド発行部135が、バンク102へ活性化コマンドを発行して、ブートプログラムが格納されているバンク102のページ1を活性化すると共にソースのバンクとして指定したタイミングで、センスアンプ接続スイッチ426をセンスアンプ入出力ロウ448に対してクローズする。
T504のプログラム転送コマンド発行部135が、バンク103へ活性化コマンドを発行して、バンク103のページ1を活性化すると共にディスティネーションのバンクとして指定したタイミングで、センスアンプ接続スイッチ422をセンスアンプ入出力ロウ440に対してクローズする。また、バンク102とバンク103を接続する為の、バンク接続スイッチ127をクローズする。
T505のセンスアンプ111、センスアンプ107にデータが読みだされたタイミングで、プログラム転送コマンド発行部135はプログラム転送コマンドを発行して、異バンク間ページ転送バス450を介してセンスアンプ111に読み出されたブートプログラムのカラムアドレスの0x0番地から0x7FF番地までの2048Byteの、センスアンプ107を介したバンク103への転送が開始される。
T506のセンスアンプ111のカラムアドレスの0x0番地から0x7FF番地までの2048Byteの転送が終了したタイミングで、センスアンプ接続スイッチ426をセンスアンプ出力ハイ449に対してクローズする。また、センスアンプ接続スイッチ422をセンスアンプ出力ハイ441に対してクローズする。
T507の、センスアンプ接続スイッチ426がセンスアンプ出力ハイ449に対してクローズされ、センスアンプ接続スイッチ422がセンスアンプ出力ハイ441に対してクローズされたタイミングで、異バンク間ページ転送バス450を介してセンスアンプ111に読み出されたブートプログラムのカラムアドレスの0x800番地から0xFFF番地までの、センスアンプ107を介したバンク103への2048Byteの転送が開始される。
T508のセンスアンプ111のカラムアドレスの0x800番地から0xFFF番地までの2048Byteの転送が終了したタイミングで、センスアンプ接続スイッチ422、バンク接続スイッチ127をオープンにする。また、センスアンプ接続スイッチ426をセンスアンプ出力ロウ448に対してクローズする。
T509のタイミングで、プログラム転送コマンド発行部135が、バンク102へ活性化コマンドを発行して、プログラム2が格納されているバンク102のページ3へ活性化コマンドを発行して、バンク102のページ3を活性化する。
T510のプログラム転送コマンド発行部135が、バンク103へ活性化コマンドを発行して、バンク103のページ2を活性化すると共にディスティネーションのバンクとして指定したタイミングで、センスアンプ接続スイッチ422をセンスアンプ入出力ロウ440に対してクローズする。また、バンク102とバンク103を接続する為の、バンク接続スイッチ127をクローズする。
T511のセンスアンプ111、センスアンプ107にデータが読みだされたタイミングで、プログラム転送コマンド発行部135はプログラム転送コマンドを発行して、異バンク間ページ転送バス450を介しセンスアンプ111に読み出されたプログラム2のカラムアドレスの0x0番地から0x7FF番地までの2048Byteの、センスアンプ107を介したバンク103への転送が開始される。
T512のセンスアンプ111のカラムアドレスの0x0番地から0x7FF番地までの2048Byteの転送が終了したタイミングで、センスアンプ接続スイッチ426をセンスアンプ出力ハイ449に対してクローズする。また、センスアンプ接続スイッチ422をセンスアンプ出力ハイ441に対してクローズする。
T513のセンスアンプ接続スイッチ426がセンスアンプ出力ハイ449に対してクローズされ、センスアンプ接続スイッチ422がセンスアンプ出力ハイ441に対してクローズされたタイミングで、異バンク間ページ転送バス450を介してセンスアンプ111に読み出されたプログラム2のカラムアドレスの0x800番地から0xFFF番地までの2048Byteの、センスアンプ107を介したバンク103への転送が開始される。
T514のブートプログラムのカラムアドレスの0x800番地から0xFFF番地までの2048Byteの転送が終了したタイミングで、センスアンプ接続スイッチ422、バンク接続スイッチ127をオープンにする。また、センスアンプ接続スイッチ426をセンスアンプ出力ロウ448に対してクローズする。
T515のタイミングで、プログラム転送コマンド発行部135が、バンク102へ活性化コマンドを発行して、プログラム1が格納されているバンク102のページ2へ活性化コマンドを発行して、バンク102のページ2を活性化する。
T516のプログラム転送コマンド発行部135が、バンク104へ活性化コマンドを発行して、バンク104のページ1を活性化すると共にディスティネーションのバンクとして指定したタイミングで、センスアンプ接続スイッチ423をセンスアンプ出力ロウ442に対してクローズする。また、バンク102とバンク104を接続する為の、バンク接続スイッチ127、及びバンク接続スイッチ128をクローズする。
T517のセンスアンプ111、センスアンプ108にデータが読みだされたタイミングで、プログラム転送コマンド発行部135はプログラム転送コマンドを発行して、異バンク間ページ転送バス450を介しセンスアンプ111に読み出されたプログラム1のカラムアドレスの0x0番地から0x7FF番地までの2048Byteの、センスアンプ108を介したバンク104への転送が開始される。
T518のセンスアンプ111のカラムアドレスの0x0番地から0x7FF番地までの2048Byteの転送が終了したタイミングで、センスアンプ接続スイッチ426をセンスアンプ出力ハイ449に対してクローズする。また、センスアンプ接続スイッチ423をセンスアンプ出力ハイ443に対してクローズする。
T519の、センスアンプ接続スイッチ426がセンスアンプ出力ハイ449に対してクローズされ、センスアンプ接続スイッチ423がセンスアンプ出力ハイ443に対してクローズされたタイミングで、異バンク間ページ転送バス450を介してセンスアンプ111に読み出されたプログラム1のカラムアドレスの0x800番地から0xFFF番地までの2048Byteの、センスアンプ108を介したバンク104への転送が開始される。
T520、のブートプログラムのカラムアドレスの0x800番地から0xFFF番地までの2048Byteの転送が終了したタイミングで、センスアンプ接続スイッチ426、センスアンプ接続スイッチ422、バンク接続スイッチ127、バンク接続スイッチ128をオープンにして接続スイッチは初期状態に戻る。
T521の、バンク102のプログラム格納領域から、バンク103、バンク104へのプログラムの転送が完了したタイミングで、プログラム転送完了通知部はリセット制御部139にプログラム転送完了を通知する。また、センスアンプ接続スイッチ422、センスアンプ接続スイッチ423、センスアンプ接続スイッチ424をクローズする。また、カラムデコーダ接続スイッチ131、カラムデコーダ接続スイッチ132、カラムデコーダ接続スイッチ133、カラムデコーダ接続スイッチ134の状態をクローズする。
T16のリセット制御部139がCPU138へリセット解除信号を出力し、これを受けたタイミングで電子機器100(CPU138)がブートプログラムから起動して動作を開始する。
このような構成にする事で、バンク102内のプログラム格納領域は、不揮発性メモリ401の外部からアクセスされず、ブートプログラムを含む、プログラムは保護される。また、バンク102から他のバンクへバンク間転送される為に、ブート処理や他のプログラムの処理も高速に実行することも可能になる。
また、プログラムの転送を不揮発性メモリ401の外部バスを介した不図示のDMAやCPU138アクセスを使用せずに、不揮発性メモリ401内部で転送する為、電子機器400の起動時間を速くする事ができる。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
[第3の実施形態]
第3の実施形態を図3、図6、図7を用いて説明する。なお、以下において、同一構成要素には同じ記号および符号を付しその説明を省略する。図3は、第3の実施の形態に係る、プログラムの配置を示す図である。図6は、第3の実施の形態に係る、電子機器の構成を示す図である。図7は、第3の実施の形態に係る、タイミングチャートを示す図である。
図6において符号600は第3の実施の形態に係る電子機器である。内部にプロセッサを有する機器であれば、その種類は問わない。符号601は、ページサイズ4KByte,バンク容量16KByte,全容量80KByte、外部バス幅が32ビットで、バンク102予めブートプログラムを含む、プログラムが格納されていて、異バンク間のページ転送が可能な、第3の実施の形態に係る不揮発性メモリである。
符号617は、バンク103のカラムデコーダである。618は、バンク104のカラムデコーダである。619は、バンク105のカラムデコーダである。620は、バンク106のカラムデコーダである。651は、バンク102のカラムデコーダである。
カラムデコーダ617,618,619,620,651は、電子機器600の起動直後のプログラム転送コマンド発行部135からアクセスにより、バンク102のプログラム格納領域から、バンク103、バンク104、バンク105、バンク106へのプログラム転送する時のカラムアドレスを制御する。
バンク103、バンク104、バンク105、バンク106へプログラム転送が完了すると、CPU138による電子機器600の制御が始まる。このとき、不揮発性メモリ601の外部のCPU138からのコマンドによりカラムアドレスが制御され、センスアンプに読み出されたページのデータをリードしたり、センスアンプを介してページ書き込みを行う。
621は、不揮発性メモリ601の外部バス幅である32ビットの配線からなる異バンク間のページ転送を行うプログラム転送バスである。プログラム転送バス621は以下の接続スイッチを有する。651は、32ビット幅の不揮発性メモリ601の外部データバスである。622はプログラム転送バス621の一部であり、カラムデコーダ617とプログラム転送バス621の接続を選択するカラムデコーダ接続スイッチである。623はプログラム転送バス621の一部であり、カラムデコーダ618とプログラム転送バス621の接続を選択するカラムデコーダ接続スイッチである。624はプログラム転送バス621の一部であり、カラムデコーダ619とプログラム転送バス621の接続を選択するカラムデコーダ接続スイッチである。625はプログラム転送バス621の一部であり、カラムデコーダ620とプログラム転送バス621の接続を選択するカラムデコーダ接続スイッチである。626はプログラム転送バス621の一部であり、カラムデコーダ651とプログラム転送バス621の接続を選択するカラムデコーダ接続スイッチである。631はプログラム転送バス621の一部であり、プログラム転送バス621と外部データバス651の接続を選択する外部データバス接続スイッチである。632はプログラム転送バス621の一部であり、プログラム転送バス621と外部データバス651の接続を選択する外部データバス接続スイッチである。633はプログラム転送バス621の一部であり、プログラム転送バス621と外部データバス651の接続を選択する外部データバス接続スイッチである。634はプログラム転送バス621の一部であり、プログラム転送バス621と外部データバス651の接続を選択する外部データバス接続スイッチである。
例えば、電源投入時又はリセット時のバンク102からバンク104にプログラムの転送を行う際は、プログラム転送コマンド発行135からのコマンドにより以下の状態となる。
プログラム転送コマンド発行135からの、バンク102、及びバンク104への活性化コマンドにより、センスアンプ接続スイッチ626、センスアンプ接続スイッチ623、バンク接続スイッチ127、バンク接続スイッチ128がクローズされ、バンク102とバンク104が接続された状態になる。
プログラム転送コマンド発行135からプログラム転送コマンドが発行されると、カラムデコーダ651はセンスアンプ111に対して0x0番地から0xFFF番地までのデータをリードする。
同時に、カラムデコーダ618は、カラムデコーダ651からリードされたデータを0x0番地から0xFFF番地までセンスアンプ618にライトしてプログラムが転送される。
バンク102のプログラム格納領域からバンク104へのプログラムの転送が完了したタイミングで、センスアンプ接続スイッチ626、センスアンプ接続スイッチ623、バンク接続スイッチ127、バンク接続スイッチ128がオープン状態に初期化される。
以下に、5つのバンクに分割され、ページサイズ4KByte,バンク容量16KByte,全容量80KByte、外部バス幅が32ビットの不揮発性メモリ601において、不揮発性メモリ601の内部で、バンク102のプログラム格納領域から、バンク103、バンク104へプログラムを転送することでブートプログラムを含む、プログラムの保護と、電子機器600の起動時間の短縮ができる実施の一例を図7のタイミングチャートを元に示す。
本第3の実施形態は、不揮発性メモリ601の内部の、バンク102のプログラム格納領域に予め格納されているプログラムのファームウェアアップ等のプログラムの更新を含まない電子機器600の通常動作である。
本第3の実施形態では、図3に示すように、バンク102のプログラム格納領域のページ1にブートプログラムが、ページ2にプログラム1が、ページ3にプログラム2が格納されている。
電子機器600の起動時に、バンク103のページ1にブートプログラムが、バンク104のページ1にプログラム1が、バンク103のページ2にプログラム2が転送されると設定されている。
T1は第1の実施形態と同様である。T702の電源電圧がリセット電圧に達したタイミングからT100の期間後、リセット制御部139は不揮発性メモリ601へのリセットを解除し、センスアンプ接続スイッチ622、センスアンプ接続スイッチ623、センスアンプ接続スイッチ624、センスアンプ接続スイッチ625、センスアンプ接続スイッチ626、バンク接続スイッチ627、バンク接続スイッチ628、バンク接続スイッチ629、バンク接続スイッチ630、カラムデコーダ接続スイッチ631、カラムデコーダ接続スイッチ632、カラムデコーダ接続スイッチ633、カラムデコーダ接続スイッチ634をオープンにする。
T703のプログラム転送コマンド発行部135が、バンク102へ活性化コマンドを発行して、バンク102のページ1を活性化すると共にソースのバンクとして指定したタイミングでカラムデコーダ接続スイッチ626をクローズする。
T704のプログラム転送コマンド発行部135が、バンク103へ活性化コマンドを発行して、バンク103のページ1を活性化すると共にディスティネーションのバンクとして指定したタイミングでカラムデコーダ接続スイッチ622をクローズする。また、バンク102とバンク103を接続する為の、バンク接続スイッチ127をクローズする。
T705の、センスアンプ111、センスアンプ107にデータが読みだされたタイミングで、プログラム転送コマンド発行部135はプログラム転送コマンドを発行して、外部データバスを介して、センスアンプ111に読み出されたブートプログラムの転送が開始される。
T706のブートプログラムの転送が終了したタイミングで、カラムデコーダ接続スイッチ622、バンク接続スイッチ127をオープンにして接続スイッチは初期状態に戻る。
T707のタイミングでは、プログラム転送コマンド発行部135が、バンク102へ活性化コマンドを発行して、バンク102のプログラム格納領域のページ3を活性化する。T708のタイミングでは、プログラム転送コマンド発行部135が、バンク103へ活性化コマンドを発行して、バンク103のページ2を活性化すると共にディスティネーションのバンクとして指定したタイミングでカラムデコーダ接続スイッチ622をクローズする。また、バンク102とバンク103を接続する為の、バンク接続スイッチ127をクローズする。
T709の、センスアンプ111、センスアンプ107にデータが読みだされたタイミングでは、プログラム転送コマンド発行部135はプログラム転送コマンドを発行して、外部データバスを介して、センスアンプ111に読み出されたプログラム2の転送が開始される。
T710のプログラム2の転送が終了したタイミングで、カラムデコーダ接続スイッチ622、バンク接続スイッチ127をオープンにして接続スイッチは初期状態に戻る。
T711の、プログラム転送コマンド発行部135が、バンク102へ活性化コマンドを発行して、バンク102のページ2を活性化する。T712の、プログラム転送コマンド発行部135が、バンク104へ活性化コマンドを発行して、バンク104のページ1を活性化すると共にディスティネーションのバンクとして指定したタイミングでカラムデコーダ接続スイッチ623をクローズする。また、バンク102とバンク104を接続する為の、バンク接続スイッチ127、バンク接続スイッチ128をクローズする。
T713の、センスアンプ111、センスアンプ108にデータが読みだされたタイミングで、プログラム転送コマンド発行部135はプログラム転送コマンドを発行して、外部データバスを介して、センスアンプ111に読み出されたプログラム1の転送が開始される。
T714の、プログラム1の転送が終了したタイミングで、カラムデコーダ接続スイッチ626、カラムデコーダ接続スイッチ623、バンク接続スイッチ127、バンク接続スイッチ128をオープンにして接続スイッチは初期状態に戻る。
T715の、プログラム格納領域102から、バンク103、バンク104へのプログラムの転送が完了したタイミングで、プログラム転送完了通知部はリセット制御部139にプログラム転送完了を通知する。また、カラムデコーダ接続スイッチ622、カラムデコーダ接続スイッチ623、カラムデコーダ接続スイッチ624、カラムデコーダ接続スイッチ625をクローズする。また、外部データバス接続スイッチ631、外部データバス接続スイッチ632、外部データバス接続スイッチ633、外部データバス接続スイッチ634の状態をクローズする。
T716のリセット制御部139がCPU138へリセット解除したタイミングで、電子機器100はブートプログラムから起動して動作を開始する。
このような構成にする事で、バンク102は不揮発性メモリ601の外部からアクセスされず、不揮発性メモリ601内部で異バンク間転送される為に、オリジナルのブートプログラムを含む、プログラムは保護される。
また、プログラムの転送を不揮発性メモリ601の外部バスを介した不図示のDMAやCPU138アクセスを使用せずに、不揮発性メモリ601内部で転送する為、電子機器600の起動時間を速くする事ができる。
[第4の実施形態]
第4の実施形態を図8、図9、図10、図11を用いて説明する。なお、以下において、同一構成要素には同じ記号および符号を付しその説明を省略する。図8は、第4の実施の形態に係る、電子機器の構成を示す図である。図9は、第4の実施の形態に係る、タイミングチャートを示す図である。図10は、第4の実施の形態に係る、CPUフローチャートを示す図である。図11は、第4の実施の形態に係る、プログラムの配置を示す図である。
符号800は、第4の実施の形態に係る電子機器である。801は、ページサイズ4KByte,バンク容量16KByte,全容量80KByteで、バンク102予めブートプログラムを含む、プログラムが格納されていて、異バンク間のページ転送が可能な、第4の実施の形態に係る不揮発性メモリである。
802は、不揮発性メモリ101を構成する1、ページ1、ページ2、ページ3、ページ4の4つのページに分割されたバンクである。このバンク802は、不揮発性メモリ101に対する外部からのコマンドで、外部からのリード、ライトアクセスが可能になり、電子機器100の出荷時に予めブートプログラムを含む、プログラムが格納されていているプログラム格納領域を有する。
以下に、5つのバンクに分割され、ページサイズ4KByte,バンク容量16KByte,全容量80KByteの不揮発性メモリ801において、不揮発性メモリ801の内部で、バンク802から、バンク103、バンク104へプログラムを転送することで、ブートプログラムを含む、プログラムの保護と、ファームウェアアップデート可能な電子機器800の起動時間の短縮ができる、ファームウェアアップ可能な電子機器800の実施の一例を図9のタイミングチャートを元に示す。
本第4の実施形態では、不揮発性メモリ801の内部の、バンク802のプログラム格納領域に予め格納されているプログラムのファームウェアアップ等のプログラムの更新を行う為の動作の一例である。
本第4の実施形態では、図11に示すように、バンク802のプログラム格納領域のページ1にブートプログラムが、ページ2にファームアップ制御プログラムが、ページ3にプログラム2が予め格納されている。
電子機器800の起動時に、プログラム転送コマンド発行部135に、バンク103のページ1にブートプログラムが、バンク104のページ1にファームアップ制御プログラムが、バンク103のページ2にファームアップ制御プログラムが転送されると設定されている。
S1000:
ユーザからの制御により電子機器800電源がオンして、第1の実施形態と同様の、T1からT17のタイミングで電子機器800が起動する。
S1001:
CPU138がファームウェアのアップデートがあるか否かを判定する。この判定は、ユーザによる指示でも良いし、場合によってはネットワーク上の予め設定されたアドレスに該当するファームウェアがアップロードされているか否かで行っても構わない。
S1002(CPU138がファームウェアのアップデートを検出しない場合):
CPU138は、プログラム2を使用した通常のアプリケーション実行を行う。
S1003(CPU138がファームウェアのアップデートを検出した場合):
CPU138は、不揮発性メモリ801にバス切り替えコマンドを発行する。
T18の不揮発性メモリ801がバス切り替えコマンドを受け取ったタイミングで、センスアンプ接続スイッチ126をクローズに、また、センスアンプ接続スイッチ122をオープンにしてバスを切り替える事で、バンク802のプログラム格納領域に対する不揮発性メモリ801からの外部からのアクセスを可能な状態に移行する。
S1004:
CPU138は、バンク104のページ1のファームアップ制御プログラムを実行して、不図示のDMACを起動する事で、不図示の更新ファームウェアの格納された記録媒体(または、ダウンロードしたファームウェア)から、バンク802のプログラム格納領域に更新ファームウェアを書き込む。
T19の、更新ファームウェアがバンク802にライトされたタイミングで、センスアンプ接続スイッチ126をオープンに、また、センスアンプ接続スイッチ122をクローズにして再度バスを切り替える事で、バンク802に対する不揮発性メモリ801からのアクセスを不可能にする。
このような構成にする事で、バンク802のプログラム格納領域は不揮発性メモリ801の外部からアクセスされず、不揮発性メモリ801内部で異バンク間転送される為に、ブートプログラムを含む、プログラムは保護される。
また、プログラムの転送を不揮発性メモリ801の外部バスを介した不図示のDMACやCPU138アクセスを使用せずに、不揮発性メモリ801内部で転送する為、ファームウェアアップデート可能な電子機器100の起動時間を速くする事ができる。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、実施形態では保護すべきブートプログラムやアプリケーションプログラムを保持するバンクを1つとしたが、2以上の複数個あってもよい。要は、保護すべきプログラムを格納するバンクと、プロセッサ(CPU)が実行する際のプログラムを格納するバンクがあれば良い。

Claims (7)

  1. プログラムを実行するプロセッサと、当該プロセッサが実行するプログラムが予め格納されている、主記憶として利用される不揮発性メモリとを有する電子機器において、
    前記電子機器の電源投入時又はリセット時に、前記不揮発性メモリへ所定の信号を供給するリセット制御部を有し、
    前記不揮発性メモリは、
    プログラムを格納するための第1の格納領域と、
    前記プロセッサにより実行する際のプログラムを格納するための第2の格納領域と、
    前記リセット制御部からの前記所定の信号を受信したことに応じて、前記第1の格納領域に格納されたプログラムを前記第2の格納領域に転送する転送部と、
    前記転送部による前記転送が完了したことに応じて、前記第1の格納領域と前記不揮発性メモリの外部とを切断し、前記第2の格納領域と前記不揮発性メモリの外部とのバスを接続すると共に、転送完了を示す信号を前記リセット制御部に通知する通知部とを有し、
    前記リセット制御部は、前記不揮発性メモリから前記転送完了を示す信号を受信したことに応じて、前記プロセッサにリセット解除信号を出力する
    ことを特徴とする電子機器。
  2. 前記不揮発性メモリは複数のバンクを有し、前記第1の格納領域と前記第2の格納領域は、異なるバンクとすることを特徴とする請求項1に記載の電子機器。
  3. 前記転送部は、2つのバンクを接続するためのコマンド、2つのバンクを活性化するコマンド、転送する際のソースとなるバンクとディスティネーションとなるバンクを示すコマンドを発行することを特徴とする請求項2に記載の電子機器。
  4. 前記転送部は、前記不揮発性メモリの各バンクのセンスアンプの入出力であり、ページサイズと同じビット幅で転送する請求項2又は3に記載の電子機器。
  5. 前記転送部は、前記不揮発性メモリの各バンクのセンスアンプの入出力であり、ページサイズのビット幅より小さく、前記不揮発性メモリのデータバスのビット幅より大きいビット幅で転送する請求項2又は3に記載の電子機器。
  6. 前記転送部は、前記不揮発性メモリの各バンクのカラムデコーダの入出力であり、前記不揮発性メモリのデータのバス幅と同じビット幅で転送することを特徴とする請求項2又は3に記載の電子機器。
  7. 前記第1の格納領域は、前記不揮発性メモリに対する予め設定されたコマンドが発行された場合のみ、前記第1の格納領域と前記不揮発性メモリの外部とを接続することで、前記第1の格納領域に対するリード及びライトのアクセスが可能な状態に移行する
    ことを特徴とする請求項1乃至6のいずれか1項に記載の電子機器。
JP2013241266A 2013-11-21 2013-11-21 電子機器 Expired - Fee Related JP6220244B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013241266A JP6220244B2 (ja) 2013-11-21 2013-11-21 電子機器
US14/534,458 US9275709B2 (en) 2013-11-21 2014-11-06 Electronic apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013241266A JP6220244B2 (ja) 2013-11-21 2013-11-21 電子機器

Publications (2)

Publication Number Publication Date
JP2015102911A JP2015102911A (ja) 2015-06-04
JP6220244B2 true JP6220244B2 (ja) 2017-10-25

Family

ID=53173170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013241266A Expired - Fee Related JP6220244B2 (ja) 2013-11-21 2013-11-21 電子機器

Country Status (2)

Country Link
US (1) US9275709B2 (ja)
JP (1) JP6220244B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346345B2 (en) 2017-05-26 2019-07-09 Microsoft Technology Licensing, Llc Core mapping
US10587575B2 (en) 2017-05-26 2020-03-10 Microsoft Technology Licensing, Llc Subsystem firewalls
US10353815B2 (en) 2017-05-26 2019-07-16 Microsoft Technology Licensing, Llc Data security for multiple banks of memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW231343B (ja) * 1992-03-17 1994-10-01 Hitachi Seisakusyo Kk
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
JPH08314801A (ja) * 1995-05-17 1996-11-29 Fanuc Ltd メモリ管理方式
JP3871184B2 (ja) * 2000-06-12 2007-01-24 シャープ株式会社 半導体記憶装置
JP4153802B2 (ja) * 2003-02-07 2008-09-24 株式会社ルネサステクノロジ 記憶装置
JP2004334626A (ja) 2003-05-09 2004-11-25 Sony Corp 電子機器およびその制御方法、記録媒体、並びにプログラム
JP2010122789A (ja) * 2008-11-18 2010-06-03 Nec Corp 電子機器、メモリ制御方法及びプログラム
JP5754264B2 (ja) * 2011-06-24 2015-07-29 富士ゼロックス株式会社 プログラム実行装置、画像処理装置およびプログラム

Also Published As

Publication number Publication date
JP2015102911A (ja) 2015-06-04
US9275709B2 (en) 2016-03-01
US20150138878A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
CN109062827B (zh) 闪存控制装置、闪存控制系统以及闪存控制方法
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
KR100813629B1 (ko) 향상된 섹터 보호 스킴
US7533253B2 (en) System and method for fetching a boot code
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
JP2008108257A (ja) 不揮発性記憶装置
JP2004103219A (ja) 不揮発性半導体メモリ装置のメモリブロックの書き込み防止領域を設定する装置およびシステム
JP2008181399A (ja) メモリコントローラ
US20170285953A1 (en) Data Storage Device and Data Maintenance Method thereof
JP6220244B2 (ja) 電子機器
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20070047308A1 (en) Memory controller, flash memory system and control method for flash memory
JP2022529873A (ja) マルチモード保護メモリ
US8046529B2 (en) Updating control information in non-volatile memory to control selection of content
US7310277B2 (en) Non-volatile semiconductor storage device with specific command enable/disable control signal
CN105374394A (zh) 半导体存储装置及其操作方法和包括其的数据存储装置
JP4235624B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP5197800B2 (ja) 情報処理装置及びそのデータ記録方法
JP4375935B2 (ja) 不正読み出し防止機能付き半導体不揮発性メモリ
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2012099015A (ja) 不揮発性半導体記憶装置
TWI517166B (zh) 非揮發性記憶體裝置
JP2008293426A (ja) 情報処理装置及びそのデータ記録方法
KR100965079B1 (ko) 불휘발성 메모리 장치
JP2012073755A (ja) 半導体装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170829

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170929

R151 Written notification of patent or utility model registration

Ref document number: 6220244

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees