JP2008065434A - プログラム起動制御装置 - Google Patents

プログラム起動制御装置 Download PDF

Info

Publication number
JP2008065434A
JP2008065434A JP2006240047A JP2006240047A JP2008065434A JP 2008065434 A JP2008065434 A JP 2008065434A JP 2006240047 A JP2006240047 A JP 2006240047A JP 2006240047 A JP2006240047 A JP 2006240047A JP 2008065434 A JP2008065434 A JP 2008065434A
Authority
JP
Japan
Prior art keywords
program
recording area
cpu
read
control device
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.)
Pending
Application number
JP2006240047A
Other languages
English (en)
Inventor
Kenji Iwahashi
賢二 岩橋
Yoshihisa Shimazu
義久 嶋津
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006240047A priority Critical patent/JP2008065434A/ja
Priority to US11/896,358 priority patent/US7890671B2/en
Priority to CNA2007101457936A priority patent/CN101140524A/zh
Publication of JP2008065434A publication Critical patent/JP2008065434A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】システム起動は、フラッシュメモリからランダムアクセス可能な外部メモリへの全プログラム転送完了後に制約されるので、多くの時間を要する。
【解決手段】電源投入時にフラッシュメモリ2から読み出して内部メモリ8に格納した初期化プログラムに従ってシステムの初期化を行い、外部メモリ3へのアクセスを可能とする。DMA制御部10はフラッシュメモリ2からシステム起動プログラムを読み出しダイレクトに外部メモリ3へ転送する。メモリ管理部9はCPU5が外部メモリ3からプログラムを読み出す際にプログラム転送完了を管理する。CPU5は、DMA制御部10によるシステム起動用のプログラムの転送が完了したときに、外部メモリ3から読み出したシステム起動用のプログラムに従ってシステムの起動を行う一方、同時並行的に、DMA制御部10は、フラッシュメモリ2からシステム制御用のプログラムを読み出し外部メモリ3へ転送する。
【選択図】図1

Description

本発明は、フラッシュメモリなどの第1の記録領域と、外部メモリなどの第2の記録領域との間を中継し、第1の記録領域からシーケンシャルにプログラムを読み出すプログラム起動制御装置に関する。
プログラムなどの記録装置として多用されているフラッシュメモリには、大別してNOR型とNAND型とがある。NOR型のフラッシュメモリは、1バイト単位でのランダムアクセスが可能であるが、NAND型に比べると高価であり、集積度が低い。一方、NAND型のフラッシュメモリは、NOR型に比べて安価で集積度は高いが、ランダムアクセスの最小単位がNOR型よりも大きく、ランダムアクセス読み出しが低速である。このため、記録領域に対してランダムアクセスが発生するプログラムは、NAND型のフラッシュメモリの記録領域に格納された状態から直接に実行することはできない。
この不都合を回避するために、NAND型のフラッシュメモリに格納されたプログラムを、1バイト単位でランダムアクセスが可能な他のメモリにすべて転送した後に実行する方法が示されている(例えば、特許文献1参照)。
特開2002−278781号公報(第4−7頁、第1−3図)
NAND型のフラッシュメモリに格納されたプログラムを使用する場合、そのプログラムをランダムアクセス可能なRAM領域に転送し、転送完了後にCPUがRAM領域よりプログラムの読み出しを開始し、システム起動を行うという手法がある。しかし、この手法の場合、プログラムすべてを転送した後でないとシステム起動ができないため、システム起動に多くの時間を要してしまう。
本発明は、このような事情に鑑みて創作したものであり、システムの起動時間を短縮し、プログラムサイズが増加した場合にも起動時間を最小限とするプログラム起動制御装置を提供することを目的としている。
本発明によるプログラム起動制御装置は、
各々複数のページから構成されるメモリブロックを複数含み前記各メモリブロックの順序づけられた記録領域にプログラムが格納されている第1の記録領域と、前記メモリページより小さい単位でのランダムアクセスが可能な第2の記録領域との間を中継し、前記第1の記録領域からシーケンシャルに前記プログラムを読み出すプログラム起動制御装置であって、
前記第1の記録領域に格納されたシステム初期化に必要な初期化プログラムを内部メモリに読み出し、CPUにより前記初期化プログラムを実行させ、前記システムおよび前記第2の記録領域の初期化後、前記CPUを介することなくプログラム転送を行うDMA制御部により、システム制御用のプログラムを前記第1の記録領域から前記第2の記録領域へ転送し、前記CPUは、前記第2の記録領域より前記CPUが読み出すプログラムの転送完了有無を管理するメモリ管理部を用いて前記プログラムを読み出し、システム制御を行うように構成されていることを特徴とする。
この構成においては、動作の初期時に、第1の記録領域から初期化プログラムが読み出され内部メモリに格納される。CPUは、内部メモリから読み出した初期化プログラムに従ってシステムの初期化を行う。これによって、第2の記録領域へのアクセスが可能となる。次いで、DMA制御部は、第1の記録領域からシステム起動用のプログラムを読み出し、CPUを介することなくダイレクトに第2の記録領域へ転送する。メモリ管理部は、このときのプログラム転送を監視する。システム起動用のプログラムの転送が完了すると、CPUは、メモリ管理部を用いて第2の記録領域から読み出したプログラムに従ってシステムの起動を行う。DMA制御部は、このCPUによるシステム起動用のプログラムの読み出し・システム動作と同時並行的に、第1の記録領域からシステム制御用のプログラムを1ページ単位で繰り返し読み出し、CPUを介することなくダイレクトに第2の記録領域へ転送する。このように、システム起動動作とプログラム読み出し動作とを同時並行的に処理するので、システムの起動時間が短縮化され、プログラムサイズが増加した場合にも起動時間を最小限とすることが可能になる。
より具体的レベルで展開すると、本発明によるプログラム起動制御装置は、
各々複数のページから構成されるメモリブロックを複数含み前記各メモリブロックの順序づけられた記録領域にプログラムが格納されている第1の記録領域と、前記メモリページより小さい単位でのランダムアクセスが可能な第2の記録領域との間を中継し、前記第1の記録領域からシーケンシャルに前記プログラムを読み出すプログラム起動制御装置であって、
電源投入時に前記第1の記録領域から読み出されたシステム初期化に必要な初期化プログラムを格納する内部メモリと、
前記内部メモリから前記初期化プログラムを読み出し、前記初期化プログラムに従ってシステムの初期化を行って、前記第2の記録領域へのアクセスを可能とするCPUと、
前記システムの初期化後に、前記第1の記録領域から必要最小限のシステム起動用のプログラムを1ページ単位で繰り返し読み出し前記CPUを介することなく前記第2の記録領域へ転送し、必要ページ分のシステム起動用のプログラムの転送完了まで前記1ページ単位の読み出しを繰り返すDMA制御部と、
前記第1の記録領域から前記第2の記録領域へ転送されたプログラムを前記CPUが前記第2の記録領域から読み出す際に、該当するプログラムが前記第2の記録領域に転送完了しているかを管理するメモリ管理部とを備え、
前記CPUは、前記DMA制御部による必要ページ分のシステム起動用のプログラムの転送が完了したときに、前記メモリ管理部を用いて前記第2の記録領域から前記システム起動用のプログラムを読み出し、読み出したシステム起動用のプログラムに従ってシステムの起動を行う一方、
前記DMA制御部は、前記CPUのシステム起動およびそれに引き続くシステム動作と同時並行的に、前記第1の記録領域からシステム制御用のプログラムを1ページ単位で繰り返し読み出し前記CPUを介することなく前記第2の記録領域へ転送し、すべてのシステム制御用のプログラムの転送完了まで前記1ページ単位の読み出しを繰り返すように構成されている。
この構成において、電源を投入すると、第1の記録領域から初期化プログラムが読み出され内部メモリに格納される。CPUは、内部メモリから読み出した初期化プログラムに従ってシステムの初期化を行う。これによって、第2の記録領域へのアクセスが可能となる。次いで、DMA制御部は、第1の記録領域から必要最小限のシステム起動用のプログラムを1ページ単位で繰り返し読み出し、CPUを介することなくダイレクトに第2の記録領域へ転送する。そして、必要ページ分のシステム起動用のプログラムの転送完了まで1ページ単位の読み出しを繰り返す。メモリ管理部は、このときのプログラム転送を監視する。
必要ページ分のシステム起動用のプログラムの転送が完了すると、CPUは、メモリ管理部を用いて第2の記録領域から読み出したシステム起動用のプログラムに従ってシステムの起動を行う。DMA制御部は、このCPUによるシステム起動用のプログラムの読み出し・システム動作と同時並行的に、第1の記録領域からシステム制御用のプログラムを1ページ単位で繰り返し読み出し、CPUを介することなくダイレクトに第2の記録領域へ転送し、すべてのシステム制御用のプログラムの転送完了まで1ページ単位の読み出しを繰り返す。
このように、システム起動動作とプログラム読み出し動作とを同時並行的に処理するので、システムの起動時間が短縮化される。
上記構成のプログラム起動制御装置においては、以下のような各種の態様がある。
前記CPUとしては、前記DMA制御部による前記第1の記録領域から前記第2の記録領域へのプログラム転送中に、前記第2の記録領域へ転送されたプログラムを読み出し、システムの制御を行うように構成する(同時並行処理)。
また、前記メモリ管理部としては、前記並列処理において、前記CPUが前記第2の記録領域へのプログラム転送が完了していない領域を読み出そうとした場合に、該当する領域のプログラムの転送が完了するまで、前記CPUの読み出しを待たせるように構成する。
また、前記DMA制御部としては、複数のページ単位でプログラムの転送を行い、転送するプログラムに対して1ページ単位でECC演算を行うECC演算部をさらに備えることが好ましい。
また、前記ECC演算部としては、1ビットエラー発生時に1ビットエラー訂正し、前記DMA制御部は、1ページ分以上のバッファを備え、前記第2の記録領域に前記ECC演算部により訂正された後のデータを転送するように構成することが好ましい。
また、前記1ビットエラーの発生を前記CPUおよび前記メモリ管理部へ通知するように構成することが好ましい。
また、前記1ビットエラーの通知により、前記第2の記録領域内の訂正後のデータを含む1ブロック分のデータを前記第1の記録領域内の訂正前の領域とは異なる領域へ書き込み、次回の読み出し時には前記訂正後のデータを含むデータの書き込みを行った領域を読み出すように構成することが好ましい。
また、前記書き込み動作は、前記エラー発生の通知後に書き込み動作するという構成が好ましい。
また、前記書き込み動作は、前記エラー発生の通知されたセクタを記録しておくことにより、システムのアイドル期間に実行されるという構成が好ましい。
また、前記書き込み動作は、前記エラー発生の通知されたセクタを記録しておくことにより、システムの電源OFFシーケンス時に実行されるという構成が好ましい。
また、前記メモリ管理部としては、プログラム転送を行ったアドレスと前記CPUが読み出すアドレスとを管理するという構成が好ましい。
また、前記メモリ管理部としては、前記CPUの読み出しを待たせる場合に前記DMA制御部へ通知を行い、ページ単位で転送し、前記CPUが読み出すページのプログラム転送が完了したことを管理するという構成が好ましい。
また、前記メモリ管理部としては、プログラム転送を行ったアドレスと前記CPUが読み出すアドレスとを、ハードウェアを用いずソフトウェアで管理するという構成が好ましい。
また、前記メモリ管理部としては、前記CPUの読み出しを待たせる場合に前記DMA制御部へ通知を行い、ページ単位で転送を中断し、前記CPUが読み出すアドレスに該当する前記第1の記録領域のプログラムの転送を優先的に行うことが好ましい。
また、前記第1の記録領域から前記第2の記録領域へ転送するプログラムは任意の単位に分かれており、システムの処理の優先順位に基づき、優先順位の高い処理に必要なプログラムから転送するという構成が好ましい。
また、上記いずれかのプログラム起動制御装置と、さらに少なくともイメージセンサと、画像表示モニタとを搭載した撮像装置の構成も有効である。
本発明によれば、システム起動動作とプログラム読み出し動作とを同時並行的に処理するので、システムの起動時間を短縮化でき、プログラムサイズが増加した場合にも起動時間を最小限とすることができる。また、第1の記録領域の内部のブロックの一部が破損しプログラムが正常に読み出せなくなった場合でも、他のブロックより該当する正常なプログラムを読み出すことが可能であるため、リスク削減にも有効である。
以下、本発明にかかわるプログラム起動制御装置の実施の形態を図面を用いて詳細に説明する。
図1は、本発明の実施の形態におけるプログラム起動制御装置1と、フラッシュメモリ2および外部メモリ3の構成を示すブロック図である。
フラッシュメモリ2は、1ブロックが複数のページで構成された複数のブロックで構成され、ページ単位のアクセスが可能であるが、1バイト単位のランダムアクセスは直接にはできないメモリであり、第1の記録領域を担当する。外部メモリ3は、1バイト単位でランダムアクセスが可能なメモリであり、第2の記録領域を担当する。
プログラム起動制御装置1は、フラッシュメモリ2のインタフェースの制御を行うフラッシュコントローラ4と、システムを制御するCPU5とで構成されている。フラッシュコントローラ4は、フラッシュI/F(インターフェース)6と、ECC演算部7と、小容量の内部メモリ8と、メモリ管理部9と、DMA制御部10とから構成されている。フラッシュI/F6は、フラッシュメモリ2のインタフェースに仕様に合わせた入出力制御を行う。ECC演算部7は、フラッシュメモリ2に対する読み出し・書き込みデータのエラーチェックを行う。内部メモリ8は、フラッシュI/F6およびCPU5よりアクセス可能であり、1バイト単位でランダムアクセスが可能である。メモリ管理部9は、フラッシュメモリ2から外部メモリ3へ転送されたプログラムを外部メモリ3よりCPU5が読み出す際に、該当するプログラムが外部メモリ3に転送完了しているかを管理する。DMA制御部10は、CPU5を介さずにフラッシュメモリ2から外部メモリ3へダイレクトにプログラムを転送する。
なお、ECC演算部7の機能をCPU5にもたせるように構成してもよい。また、内部でECC演算を行うフラッシュメモリ2を使用する場合には、ECC演算部7はなくてもよい。また、フラッシュメモリ2から外部メモリ3へプログラムを転送完了したかの管理については、CPU5によりソフトウェア処理してもよい。
ここで比較対照のために、あらかじめ、従来の技術におけるシステム起動の動作を図9のフローチャートを用いて説明する。
電源が投入されると、ステップS81において、フラッシュメモリ2から内部メモリ8へシステムの初期化プログラム(ブートプログラム)を読み出す。次いでステップS82において、CPU5は内部メモリ8から初期化プログラムを読み出し、初期化プログラムの内容に従ってシステムの初期化を行う。次いでステップS83、ステップS84において、システム起動用のプログラムをフラッシュメモリ2から外部メモリ3へ1ページ単位にすべて転送するまで繰り返す。そして、全プログラムがフラッシュメモリ2から外部メモリ3へ転送されると、ステップS85において、CPU5は外部メモリ3よりプログラムを読み出し、読み出したプログラムに従ってシステムの起動を行う。次いでステップS86において、システム動作を行う。
図2は本発明の実施の形態におけるシステム起動の動作を示すフローチャートである。
電源が投入されると、ステップS1において、フラッシュメモリ2からシステムの初期化プログラム(ブートプログラム)を1ページ単位で読み出し、内部メモリ8に格納する。詳しくは、フラッシュコントローラ4が動作し、フラッシュI/F6を介してフラッシュメモリ2へ定められたコマンドを発行し、フラッシュメモリ2から初期化プログラムを読み出し、読み出した初期化プログラムを内部メモリ8へ格納する。このとき、ECC演算部7によって、読み出した初期化プログラムのデータに誤りがないかのECC演算を行い、誤りがあった場合は、誤りを修正し、誤りを修正できない場合は、誤りが発生したことを外部へ出力する。
次いでステップS2において、フラッシュコントローラ4はCPU5のリセットを解除し、CPU5は内部メモリ8から初期化プログラムを読み出し、初期化プログラムの内容に従ってシステムの初期化を行う。これによって、外部メモリ3へのアクセスが可能となる。
次いでステップS3、ステップS4において、DMA制御部10は、フラッシュI/F6を介してフラッシュメモリ2よりシステムを起動する上で必要最小限のシステム起動用のプログラムを1ページ単位で読み出し、外部メモリ3へ転送する。この必要最小限のシステム起動用のプログラムの転送が完了するまで繰り返す。このとき、メモリ管理部9は、転送されたシステム起動用のプログラムが外部メモリ3における転送対象領域に置かれていることの管理を行う。また、プログラム転送時にはECC演算部7も動作し、プログラム転送中にデータ誤りが発生した場合は、DMA制御部10に通知し、DMA制御部10内のデータを修正したデータを外部メモリ3に転送する。なお、ECC演算部7は、データ誤りが発生した場合は、DMA制御部10とCPU5へ通知し、通知を受けたCPU5は外部メモリ3へ転送した誤りの含まれたデータを修正するようにしてもよい。
そして、システムを起動する上で必要最小限のシステム起動用のプログラムがフラッシュメモリ2から外部メモリ3へ転送されると、ステップS5において、CPU5は外部メモリ3よりシステム起動用のプログラムを読み出し、読み出したプログラムに従ってシステムの起動を行う。
次いでステップS6において、CPU5は外部メモリ3よりシステム制御用のプログラムを読み出し、システム動作を行う。システム制御用のプログラムを読み出す時、読み出すシステム制御用のプログラムが外部メモリ3に転送完了されているかをメモリ管理部9が確認し、もし該当するプログラムが転送されていなければ、CPU5の読み出しを該当するプログラムが外部メモリ3へ転送されるまで待たせ、転送完了後にプログラムの読み出し処理を行う。
ステップS5、ステップS6と並行する状態で、ステップS7、ステップS8において、DMA制御部10は、フラッシュメモリ2からフラッシュI/F6を介してシステム制御用のプログラムを1ページ単位で外部メモリ3へ転送する処理を、すべてのシステム制御用のプログラムの転送が完了するまで繰り返す。このとき、ECC演算部7でデータ誤りがないかを確認しながら転送を行うとともに、メモリ管理部9は転送された領域の管理情報を更新する。
なお、ステップS2において、システム起動までの処理を行うことが可能であれば、ステップS3、ステップS4を飛ばしてステップS5の処理を行うことも可能である。
図3はシステム起動までの時間を表しており、本発明の実施の形態では、システムを起動する上で必要最小限のシステム起動用のプログラムを読み出した後にシステムを起動するため、従来技術に比べて、起動時間の短縮化を図ることが可能である。
具体例として、カメラのシステム起動について、図4、図5のフローチャートを参照して説明する。
ステップS11において、フラッシュI/F6を介してフラッシュメモリ2から初期化プログラム(ブートプログラム)を1ページ単位で読み出し、ECC演算部7でデータ誤りがないかを確認しつつ、内部メモリ8へ格納する。
次いでステップS12において、フラッシュコントローラ4はCPU5のリセットを解除し、CPU5は内部メモリ8から初期化プログラムを読み出し、初期化プログラムの内容に従ってシステムの初期化を行う。これによって、外部メモリ3へのアクセスが可能となる。
次いでステップS13,S14において、DMA制御部10は、フラッシュI/F6を介してフラッシュメモリ2よりシステムを起動する上で必要最小限のシステム起動用のプログラム(周辺回路の制御プログラムやカメラモードを認識するプログラム)を1ページ単位で読み出し、外部メモリ3へ転送する。この必要最小限のシステム起動用のプログラムの転送が完了するまで繰り返す。このとき、メモリ管理部9は、転送されたシステム起動用のプログラムが外部メモリ3における転送対象領域に置かれていることの管理を行う。また、プログラム転送時にはECC演算部7も動作し、プログラム転送中にデータ誤りが発生した場合は、DMA制御部10に通知し、DMA制御部10内のデータを修正したプログラムを外部メモリ3に転送する。
次いでステップS15において、CPU5は外部メモリ3よりシステム起動用のプログラム(周辺回路の制御プログラムやカメラモードを認識するプログラム)を読み出し、読み出したシステム起動用のプログラムに従ってシステムの起動を行う。
次いでステップS16において、カメラモードの情報を判断し、以降は、ステップS17の記録モード処理とステップS18の再生モード処理のいずれかに処理が分かれる。
記録モード処理の場合は、ステップS21〜S27が実行される。
すなわち、ステップS21において、システムすべてのプログラムを記録モードで必要なプログラムより読み出すことを通知する。
次いでステップS22において、CPU5が外部メモリ3より記録モード用のプログラムを読み出し、記録モード制御を行う。
次いでステップS23において、すべてのプログラムの読み出しが完了するまで、フラッシュI/F6を介してフラッシュメモリ2からプログラムを1ページ単位で読み出し、ECC演算部7で誤りがないかを確認しながら、DMA制御部10によって読み出した該当ページ分のプログラムを外部メモリ3へダイレクトに転送格納する。
次いでステップS24,S25において、フラッシュI/F6を介してフラッシュメモリ2からすべてのプログラム内より記録モード用のプログラムを1ページ単位で読み出し、ECC演算部7で誤りがないかを確認しながら、DMA制御部10によって読み出した該当ページ分のプログラムを外部メモリ3へダイレクトに転送格納する。
次いでステップS26,S27において、フラッシュI/F6を介してフラッシュメモリ2からすべてのプログラム内より再生モード用のプログラムを1ページ単位で読み出し、ECC演算部7で誤りがないかを確認しながら、DMA制御部10によって読み出した該当ページ分のプログラムを外部メモリ3へダイレクトに転送格納し、すべてのプログラムをシステム動作を実行する。
一方、再生モード処理の場合は、ステップS31〜S37が実行される。
すなわち、ステップS31において、システムすべてのプログラムを再生モードで必要なプログラムより読み出すことを通知する。
次いでステップS32において、CPU5が外部メモリ3より再生モード用のプログラムを読み出し、再生モード制御を行う。
次いでステップS33において、すべてのプログラムの読み出しが完了するまで、フラッシュI/F6を介してフラッシュメモリ2からプログラムを1ページ単位で読み出し、ECC演算部7で誤りがないかを確認しながら、DMA制御部10によって読み出した該当ページ分のプログラムを外部メモリ3へダイレクトに転送格納する。
次いでステップS34,S35において、フラッシュI/F6を介してフラッシュメモリ2からすべてのプログラム内より再生モード用のプログラムを1ページ単位で読み出し、ECC演算部7で誤りがないかを確認しながら、DMA制御部10によって読み出した該当ページ分のプログラムを外部メモリ3へダイレクトに転送格納する。
次いでステップS36,S37において、フラッシュI/F6を介してフラッシュメモリ2からすべてのプログラム内より記録モード用のプログラムを1ページ単位で読み出し、ECC演算部7で誤りがないかを確認しながら、DMA制御部10によって読み出した該当ページ分のプログラムを外部メモリ3へダイレクトに転送格納することで、すべてのプログラムをシステム動作を実行する。
プログラム転送中にECCエラーが発生したときの動作フローを図6、図7を参照して説明する。
図6はプログラム読み出しについてのエラーが発生しなかった場合と発生した場合を示している。エラーが発生した場合は、エラーを修正し、修正したデータを外部メモリ3へ再送する。
図7のフローチャートにおいて、まずステップS41において、使用するプログラムが含まれているNページ分のプログラムの読み出しが完了するまで、ステップS42以降の処理を行う。
ステップS42において、1ページ分のプログラムをフラッシュメモリ2より読み出し、外部メモリ3へ転送する。
次いでステップS43において、ECC演算部7によってエラーが発生しているか否かを確認する。
エラーが発生した場合には、次いでステップS44において、エラー情報を基にデータを修正し、外部メモリ3へ転送する。
図8はエラー発生時に、修正したデータを書き込み、次回から修正したデータを読み出す処理を行うための書き込み処理の動作を示すフローチャートである。エラーが発生したページはフラッシュメモリ2内のデータが破損していることから、フラッシュメモリ2のスペア領域へ修正したデータを書き込み、次回からの読み出しを修正したデータが格納されている領域から読み出す。
ステップS51からステップS55は、プログラムの書き込みを読み出し最中に行う場合のフローである。
まずステップS51において、使用するプログラムが含まれているNページ分のプログラムの読み出しが完了するまで、ステップS52以降の処理を行う。
ステップS52において、1ページ分のプログラムをフラッシュメモリ2より読み出し、外部メモリ3へ転送する。
次いでステップS53において、ECC演算部7によってエラーが発生しているか否かを確認する。
エラーが発生した場合には、次いでステップS54において、エラー情報を基にデータを修正し、外部メモリ3へ転送する。
次いでステップS55において、ステップS54で修正したデータをフラッシュメモリ2へ書き込む。
ステップS61からステップS64は、データの書き込みをシステムのアイドル時に行うフローである。
まずステップS61において、システムはアイドル状態とされ、フラッシュメモリ2へのアクセスはない状態である。
次いでステップS62において、アイドル状態時にフラッシュメモリ2から外部メモリ3への転送時にエラーが発生したか否かを確認する。エラーが発生していなければ、ステップS61のアイドル状態にする。
エラーが発生しているときは、次いでステップS63において、エラー修正したデータをフラッシュメモリ2へ書き込み完了するまで、ステップS64の動作を続け、すべてのエラー修正分をフラッシュメモリ2へ書き込み完了すると、ステップS61のアイドル状態にする。ステップS64においては、修正したデータをフラッシュメモリ2へ書き込む。
ステップS71からステップS73は、データの書き込みをシステムの電源OFFシーケンスで行うフローである。
まずステップS71において、フラッシュメモリ2から外部メモリ3への転送時にエラーが発生したか否かを確認する。エラーが発生していなければ、電源OFF動作を行う。
エラーが発生しているときは、次いでステップS72において、エラー修正したデータをフラッシュメモリ2へ書き込み完了するまで、ステップS73の動作を続け、すべてのエラー修正分をフラッシュメモリ2へ書き込み完了すると、電源OFF処理を行う。
本発明のプログラム起動制御装置は、第1の記録領域内のプログラムを外部のランダムアクセス可能な第2の記録領域へ転送し、転送したプログラムよりシステム起動する場合に、DMA制御を用いることにより、システムの動作とプログラム転送とを同時並行的に処理することができるため、システムの起動時間の短縮化が可能である。
本発明の実施の形態におけるプログラム起動制御装置とフラッシュメモリ・外部メモリの構成を示すブロック図 本発明の実施の形態におけるプログラム起動制御装置のシステム起動の動作を示すフローチャート 本発明の実施の形態におけるシステム起動までの時間を従来技術と対比して表す図 本発明の具体的実施例におけるカメラの起動シーケンスを示すフローチャート(その1) 本発明の具体的実施例におけるカメラの起動シーケンスを示すフローチャート(その2) 本発明の具体的実施例におけるプログラム転送中にECCエラーが発生したときの処理を従来技術と対比して表す図 本発明の具体的実施例におけるプログラム転送中にECCエラーが発生したときの処理を示すフローチャート 本発明の具体的実施例におけるエラー発生時に行うデータ修正の処理を示すフローチャート 従来の技術におけるシステム起動の動作を示すフローチャート
符号の説明
1 プログラム起動制御装置
2 フラッシュメモリ(第1の記録領域)
3 外部メモリ(第2の記録領域)
4 フラッシュコントローラ
5 CPU(中央演算処理装置)
6 フラッシュI/F(インターフェース)
7 ECC演算部
8 内部メモリ
9 メモリ管理部
10 DMA制御部

Claims (17)

  1. 各々複数のページから構成されるメモリブロックを複数含み前記各メモリブロックの順序づけられた記録領域にプログラムが格納されている第1の記録領域と、前記メモリページより小さい単位でのランダムアクセスが可能な第2の記録領域との間を中継し、前記第1の記録領域からシーケンシャルに前記プログラムを読み出すプログラム起動制御装置であって、
    前記第1の記録領域に格納されたシステム初期化に必要な初期化プログラムを内部メモリに読み出し、CPUにより前記初期化プログラムを実行させ、前記システムおよび前記第2の記録領域の初期化後、前記CPUを介することなくプログラム転送を行うDMA制御部により、システム制御用のプログラムを前記第1の記録領域から前記第2の記録領域へ転送し、前記CPUは、前記第2の記録領域より前記CPUが読み出すプログラムの転送完了有無を管理するメモリ管理部を用いて前記プログラムを読み出し、システム制御を行うように構成されているプログラム起動制御装置。
  2. 各々複数のページから構成されるメモリブロックを複数含み前記各メモリブロックの順序づけられた記録領域にプログラムが格納されている第1の記録領域と、前記メモリページより小さい単位でのランダムアクセスが可能な第2の記録領域との間を中継し、前記第1の記録領域からシーケンシャルに前記プログラムを読み出すプログラム起動制御装置であって、
    電源投入時に前記第1の記録領域から読み出されたシステム初期化に必要な初期化プログラムを格納する内部メモリと、
    前記内部メモリから前記初期化プログラムを読み出し、前記初期化プログラムに従ってシステムの初期化を行って、前記第2の記録領域へのアクセスを可能とするCPUと、
    前記システムの初期化後に、前記第1の記録領域から必要最小限のシステム起動用のプログラムを1ページ単位で繰り返し読み出し前記CPUを介することなく前記第2の記録領域へ転送し、必要ページ分のシステム起動用のプログラムの転送完了まで前記1ページ単位の読み出しを繰り返すDMA制御部と、
    前記第1の記録領域から前記第2の記録領域へ転送されたプログラムを前記CPUが前記第2の記録領域から読み出す際に、該当するプログラムが前記第2の記録領域に転送完了しているかを管理するメモリ管理部とを備え、
    前記CPUは、前記DMA制御部による必要ページ分のシステム起動用のプログラムの転送が完了したときに、前記メモリ管理部を用いて前記第2の記録領域から前記システム起動用のプログラムを読み出し、読み出したシステム起動用のプログラムに従ってシステムの起動を行う一方、
    前記DMA制御部は、前記CPUのシステム起動およびそれに引き続くシステム動作と同時並行的に、前記第1の記録領域からシステム制御用のプログラムを1ページ単位で繰り返し読み出し前記CPUを介することなく前記第2の記録領域へ転送し、すべてのシステム制御用のプログラムの転送完了まで前記1ページ単位の読み出しを繰り返すように構成されているプログラム起動制御装置。
  3. 前記CPUは、前記DMA制御部による前記第1の記録領域から前記第2の記録領域へのプログラム転送中に、前記第2の記録領域へ転送されたプログラムを読み出し、システムの制御を行う請求項1または請求項2に記載のプログラム起動制御装置。
  4. 前記メモリ管理部は、前記並列処理において、前記CPUが前記第2の記録領域へのプログラム転送が完了していない領域を読み出そうとした場合に、該当する領域のプログラムの転送が完了するまで、前記CPUの読み出しを待たせる請求項3に記載のプログラム起動制御装置。
  5. 前記DMA制御部は複数のページ単位でプログラムの転送を行い、
    転送するプログラムに対して1ページ単位でECC演算を行うECC演算部をさらに備えた請求項1または請求項2に記載のプログラム起動制御装置。
  6. 前記ECC演算部は1ビットエラー発生時に1ビットエラー訂正し、前記DMA制御部は1ページ分以上のバッファを備え、前記第2の記録領域に前記ECC演算部により訂正された後のデータを転送する請求項5に記載のプログラム起動制御装置。
  7. 前記1ビットエラーの発生を前記CPUおよび前記メモリ管理部へ通知するように構成されている請求項6に記載のプログラム起動制御装置。
  8. 前記1ビットエラーの通知により、前記第2の記録領域内の訂正後のデータを含む1ブロック分のデータを前記第1の記録領域内の訂正前の領域とは異なる領域へ書き込み、次回の読み出し時には前記訂正後のデータを含むデータの書き込みを行った領域を読み出す請求項7に記載のプログラム起動制御装置。
  9. 前記書き込み動作は、前記エラー発生の通知後に書き込み動作する請求項8に記載のプログラム起動制御装置。
  10. 前記書き込み動作は、前記エラー発生の通知されたセクタを記録しておくことにより、システムのアイドル期間に実行される請求項8に記載のプログラム起動制御装置。
  11. 前記書き込み動作は、前記エラー発生の通知されたセクタを記録しておくことにより、システムの電源OFFシーケンス時に実行される請求項8に記載のプログラム起動制御装置。
  12. 前記メモリ管理部は、プログラム転送を行ったアドレスと前記CPUが読み出すアドレスとを管理する請求項4に記載のプログラム起動制御装置。
  13. 前記メモリ管理部は、前記CPUの読み出しを待たせる場合に前記DMA制御部へ通知を行い、ページ単位で転送し、前記CPUが読み出すページのプログラム転送が完了したことを管理する請求項4に記載のプログラム起動制御装置。
  14. 前記メモリ管理部は、プログラム転送を行ったアドレスと前記CPUが読み出すアドレスとを、ハードウェアを用いずソフトウェアで管理する請求項4に記載のプログラム起動制御装置。
  15. 前記メモリ管理部は、前記CPUの読み出しを待たせる場合に前記DMA制御部へ通知を行い、ページ単位で転送を中断し、前記CPUが読み出すアドレスに該当する前記第1の記録領域のプログラムの転送を優先的に行う請求項4に記載のプログラム起動制御装置。
  16. 前記第1の記録領域から前記第2の記録領域へ転送するプログラムは任意の単位に分かれており、システムの処理の優先順位に基づき、優先順位の高い処理に必要なプログラムから転送する請求項3に記載のプログラム起動制御装置。
  17. 請求項1から請求項17までのいずれかに記載のプログラム起動制御装置と、さらに少なくともイメージセンサと、画像表示モニタとを搭載した撮像装置。
JP2006240047A 2006-09-05 2006-09-05 プログラム起動制御装置 Pending JP2008065434A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006240047A JP2008065434A (ja) 2006-09-05 2006-09-05 プログラム起動制御装置
US11/896,358 US7890671B2 (en) 2006-09-05 2007-08-31 Program initiation control apparatus
CNA2007101457936A CN101140524A (zh) 2006-09-05 2007-09-05 程序启动控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006240047A JP2008065434A (ja) 2006-09-05 2006-09-05 プログラム起動制御装置

Publications (1)

Publication Number Publication Date
JP2008065434A true JP2008065434A (ja) 2008-03-21

Family

ID=39153363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006240047A Pending JP2008065434A (ja) 2006-09-05 2006-09-05 プログラム起動制御装置

Country Status (3)

Country Link
US (1) US7890671B2 (ja)
JP (1) JP2008065434A (ja)
CN (1) CN101140524A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010083480A (ja) * 2008-09-30 2010-04-15 General Electric Co <Ge> 飛行制御システムを再起動するための方法およびシステム
JP2011233006A (ja) * 2010-04-28 2011-11-17 Brother Ind Ltd 電子回路、画像形成装置およびddr−sdramの初期化方法
US9442724B2 (en) 2011-01-31 2016-09-13 Socionext Inc. Start control apparatus for controlling a start of an information device by using an interrupt generation code, information device, and start control method
US9552292B2 (en) 2014-06-27 2017-01-24 Fujitsu Limited Apparatus and method for allocating virtual memory addresses to continuous physical addresses
JP2018097629A (ja) * 2016-12-14 2018-06-21 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101543245B1 (ko) * 2009-03-18 2015-08-11 삼성전자주식회사 에러 교정 장치와 이를 포함하는 메모리 장치와 데이터 처리 시스템
US20110252177A1 (en) * 2010-04-13 2011-10-13 Byungcheol Cho Semiconductor storage device memory disk unit with programmable host interface
US20110252250A1 (en) * 2010-04-13 2011-10-13 Byungcheol Cho Semiconductor storage device memory disk unit with multiple host interfaces
US20110252263A1 (en) * 2010-04-13 2011-10-13 Byungcheol Cho Semiconductor storage device
CN102567221B (zh) * 2010-12-29 2015-06-10 群联电子股份有限公司 数据管理方法、存储器控制器与存储器储存装置
CN102650970B (zh) * 2011-02-25 2015-06-10 群联电子股份有限公司 数据存取方法及使用此方法的内存控制器与储存装置
CN102521178A (zh) * 2011-11-22 2012-06-27 北京遥测技术研究所 高可靠性嵌入式人机界面及其实现方法
JP6364983B2 (ja) * 2014-06-10 2018-08-01 富士ゼロックス株式会社 電子機器及びプログラム
US20230245711A1 (en) * 2021-01-19 2023-08-03 Alibaba Group Holding Limited Memory priming and initalization systems and methods

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348501A (ja) * 1993-06-14 1994-12-22 Tokyo Electric Co Ltd プログラムダウンロード方法
JPH09114673A (ja) * 1995-10-20 1997-05-02 Fujitsu Ltd プログラムロード装置と方法
JP2000322264A (ja) * 1999-05-12 2000-11-24 Mitsubishi Electric Corp 電子機器
JP2002055822A (ja) * 2000-08-08 2002-02-20 Nec Corp 端末装置のプログラム制御方式およびその方法、並びにその制御プログラムを記録する記録媒体
JP2002278781A (ja) * 2001-03-16 2002-09-27 Tokyo Electron Device Ltd 記憶装置、記憶装置制御方法及びプログラム
JP2003150382A (ja) * 2001-11-13 2003-05-23 Matsushita Electric Ind Co Ltd マイクロコントローラおよびコンパイラ
JP2003189165A (ja) * 2001-12-19 2003-07-04 Fuji Photo Film Co Ltd デジタルカメラ
JP2005071303A (ja) * 2003-08-28 2005-03-17 Toshiba Corp プログラム起動装置
JP2005190201A (ja) * 2003-12-25 2005-07-14 Matsushita Electric Ind Co Ltd 情報処理装置および該装置用のromイメージ生成装置
JP2005208747A (ja) * 2004-01-20 2005-08-04 Canon Inc 情報処理装置及び情報処理方法
JP2006163714A (ja) * 2004-12-06 2006-06-22 Fuji Photo Film Co Ltd 撮影装置
JP2006202252A (ja) * 2004-12-24 2006-08-03 Canon Inc 電子機器、データ処理方法、及びコンピュータプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181548B2 (en) * 1998-10-30 2007-02-20 Lsi Logic Corporation Command queueing engine
US7103684B2 (en) 2003-12-02 2006-09-05 Super Talent Electronics, Inc. Single-chip USB controller reading power-on boot code from integrated flash memory for user storage
US6601167B1 (en) 2000-01-14 2003-07-29 Advanced Micro Devices, Inc. Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program
JP2004118544A (ja) * 2002-09-26 2004-04-15 Renesas Technology Corp メモリシステム
KR100606046B1 (ko) 2004-01-20 2006-07-28 삼성전자주식회사 휴대용 단말기의 낸드 플래쉬 메모리를 이용한 부팅 장치및 방법
JP4604543B2 (ja) * 2004-04-30 2011-01-05 日本電気株式会社 計算機、計算機起動方法、管理サーバ装置およびプログラム
KR100708128B1 (ko) 2005-04-30 2007-04-17 삼성전자주식회사 낸드 플래시 메모리 제어 장치 및 방법

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348501A (ja) * 1993-06-14 1994-12-22 Tokyo Electric Co Ltd プログラムダウンロード方法
JPH09114673A (ja) * 1995-10-20 1997-05-02 Fujitsu Ltd プログラムロード装置と方法
JP2000322264A (ja) * 1999-05-12 2000-11-24 Mitsubishi Electric Corp 電子機器
JP2002055822A (ja) * 2000-08-08 2002-02-20 Nec Corp 端末装置のプログラム制御方式およびその方法、並びにその制御プログラムを記録する記録媒体
JP2002278781A (ja) * 2001-03-16 2002-09-27 Tokyo Electron Device Ltd 記憶装置、記憶装置制御方法及びプログラム
JP2003150382A (ja) * 2001-11-13 2003-05-23 Matsushita Electric Ind Co Ltd マイクロコントローラおよびコンパイラ
JP2003189165A (ja) * 2001-12-19 2003-07-04 Fuji Photo Film Co Ltd デジタルカメラ
JP2005071303A (ja) * 2003-08-28 2005-03-17 Toshiba Corp プログラム起動装置
JP2005190201A (ja) * 2003-12-25 2005-07-14 Matsushita Electric Ind Co Ltd 情報処理装置および該装置用のromイメージ生成装置
JP2005208747A (ja) * 2004-01-20 2005-08-04 Canon Inc 情報処理装置及び情報処理方法
JP2006163714A (ja) * 2004-12-06 2006-06-22 Fuji Photo Film Co Ltd 撮影装置
JP2006202252A (ja) * 2004-12-24 2006-08-03 Canon Inc 電子機器、データ処理方法、及びコンピュータプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010083480A (ja) * 2008-09-30 2010-04-15 General Electric Co <Ge> 飛行制御システムを再起動するための方法およびシステム
JP2011233006A (ja) * 2010-04-28 2011-11-17 Brother Ind Ltd 電子回路、画像形成装置およびddr−sdramの初期化方法
US9442724B2 (en) 2011-01-31 2016-09-13 Socionext Inc. Start control apparatus for controlling a start of an information device by using an interrupt generation code, information device, and start control method
US9552292B2 (en) 2014-06-27 2017-01-24 Fujitsu Limited Apparatus and method for allocating virtual memory addresses to continuous physical addresses
JP2018097629A (ja) * 2016-12-14 2018-06-21 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US10341500B2 (en) 2016-12-14 2019-07-02 Canon Kabushiki Kaisha Information processing apparatus and image reading apparatus

Also Published As

Publication number Publication date
CN101140524A (zh) 2008-03-12
US20080059662A1 (en) 2008-03-06
US7890671B2 (en) 2011-02-15

Similar Documents

Publication Publication Date Title
JP2008065434A (ja) プログラム起動制御装置
JP2008134736A (ja) 電子機器
US20090172325A1 (en) Information processing apparatus and data recovering method
JP2009301194A (ja) 半導体記憶装置の制御システム
JP4829370B1 (ja) メモリ制御装置、メモリ装置および停止制御方法
JP3875139B2 (ja) 不揮発性半導体記憶装置、そのデータ書き込み制御方法およびプログラム
JP2005071303A (ja) プログラム起動装置
US8924669B2 (en) Information processing apparatus, control method, and program
JP2008198192A (ja) リペア可能な半導体メモリ装置と該半導体メモリ装置のリペアリング方法
JP2005157528A (ja) メモリ装置
JP4956230B2 (ja) メモリコントローラ
TWI321323B (en) Semiconductor memory system
JP2006020058A (ja) 画像形成装置
JP2007034581A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2008191701A (ja) エラー回復処理方法および情報処理装置
JP2008158991A (ja) Nand型フラッシュメモリの制御システム
JP2006331185A (ja) 制御装置、書換装置、書換方法および書換プログラム
JP2012194675A (ja) 情報機器及び情報機器への非常アクセス方法
JP4235624B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP3747213B1 (ja) シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ
US20100049962A1 (en) Method for loading and updating central processing unit microcode into basic input/output system
JP2007086920A (ja) 携帯型電子機器
JP2006338481A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2001101004A (ja) 電子装置
JPH09305395A (ja) 電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111115

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120306