[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2005071303A - プログラム起動装置 - Google Patents

プログラム起動装置 Download PDF

Info

Publication number
JP2005071303A
JP2005071303A JP2003304196A JP2003304196A JP2005071303A JP 2005071303 A JP2005071303 A JP 2005071303A JP 2003304196 A JP2003304196 A JP 2003304196A JP 2003304196 A JP2003304196 A JP 2003304196A JP 2005071303 A JP2005071303 A JP 2005071303A
Authority
JP
Japan
Prior art keywords
cpu
program
flash memory
read
boot
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.)
Withdrawn
Application number
JP2003304196A
Other languages
English (en)
Inventor
Eiji Otsuka
英治 大塚
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003304196A priority Critical patent/JP2005071303A/ja
Publication of JP2005071303A publication Critical patent/JP2005071303A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】CPU駆動用としてNAND型フラッシュメモリを用いた場合でも不良ブロックによるCPU起動の不具合を回避する。
【解決手段】内部のデータをシーケンシャルにしか読み出せないNAND型フラッシュメモリ18からは直接動作させるために、ブートコントローラ16を設け、CPU10のリセット後の起動アドレスからCPU10の命令に基づき予め記録されたNAND型フラッシュメモリ18のブートプログラムを読み出せるようにする。このときCPUコア11のROMコントローラ15は、外部バスインターフェース17を介してROM19が接続されているのと同等に、命令をバスインターフェース17より読み出せるようにブートコントローラ16を構成する。これにより、CPU駆動用としてNAND型フラッシュメモリを用いた場合でも不良ブロックによるCPU起動の不具合を回避可能となる。
【選択図】図1

Description

この発明は、電子機器のブート用プログラムの起動方式に関する。
従来、NAND型フラッシュメモリを用いたCPU(中央演算処理部)のプログラムの実行は、NAND型フラッシュメモリがハードロジックを介してRAMに一旦記録し、その記録内容を読み出してCPUのプログラムを実行させている。(例えば、特許文献1)
特開2003−114826号(第7頁、図2)
上記した特許文献1の技術は、NAND型フラッシュメモリの所望ページに一旦記録された一部のデータに不良があった場合の対処方法についての開示がなく、不良データが起動用のプログラムにあると以降の動作ができなくなる問題がある。
この発明の目的は、CPUの駆動用としてNAND型フラッシュメモリを用いた場合でも不良ブロックによるCPU起動の不具合を回避可能となるプログラム起動装置を提供することにある。
上記した課題を解決するために、この発明のプログラム起動装置は、起動および実行プログラムを格納したNAND型フラッシュメモリと、前記実行プログラムに基づいた制御を行うCPUと、前記CPUの動作に無関係に予め格納されたプログラムに基づいたブートプログラムを実行する第1の手段と、前記ブートプログラムが実行された後に、実行する前記CPUに備えたプログラム実行用のメモリと、前記ブートプログラム実行時に、前記フラッシュメモリの不良ブロックの利用を避けて前記実行用メモリに前記プログラムを転送する第2の手段とを具備したことを特徴とする。
この発明は、CPUの駆動用としてNAND型フラッシュメモリを用いた場合でも不良ブロックによるCPU起動の不具合を回避可能となる。
以下、この発明の実施例について、図面を参照しながら詳細に説明する。
図1は、この発明の一実施例について説明するための構成図であり、この実施例は、NAND型フラッシュメモリからブートプログラムを起動し、このフラッシュメモリ内に格納したアプリケーションプログラムをプログラム実行メモリへ転送させて動作させるものである。
図1において、CPU10の電源ON後のリセットにより、CPUコア11は、ROM(Read Only Memory)コントローラ15の所定アドレスの命令を読み込み、その読み込んだプログラムにより動作を開始する。起動させるためのプログラムであるブートプログラムをROM19の起動アドレス部分に配置し、CPUコア11の初期設定やSDRAM(Synchronous Dynamic Random Access Memory)コントローラ12などのリソースの初期設定などを終了すると、ROM19のアプリケーションプログラムを起動して機器を動作させる。
ところで、ROMコントローラ15から起動させるブートプログラムやアプリケーションプログラムは、ランダムアクセスが必要であるため、内部のデータをシーケンシャルにしか読み出せないNAND型フラッシュメモリ18からは直接動作させることができない。
そこで、ブートコントローラ16を設け、CPU10のリセット後の起動アドレスからCPU10の命令に基づき予め記録されたフラッシュメモリ18のブートプログラムを読み出せるようにする。このときCPUコア11のROMコントローラ15は、外部バスインターフェース17を介してROM19が接続されているのと同等に、命令をバスインターフェース17より読み出せるようにブートコントローラ16を構成すればよい。
また、ブートプログラム起動後のアプリケーションプログラムについては、DMA(Direct Memory Access)コントローラ14をブートプログラムによって動作させ、NANDフラッシュメモリ18の内容をブートコントローラ16からバスインターフェース17,SDRAMコントローラ12を介してSDRAM13へ転送して動作させることによって、CPUコア11を介する命令実行により、転送と比べると転送時間の高速化を図ることができる。
図2は、ブートコントローラ16の内部の構成例を示したもので、CPU10内部のROMコントローラ15および外部バスインターフェース17とをバスインターフェース20で相互接続し、DPM(Dual Port Memory)型のバッファメモリ21がCPU10からアクセスできるよう構成される。
フラッシュメモリ18側には、フラッシュインターフェ―ス回路22を設置し、NANDフラッシュメモリ18からデータを読み出すためのI/Oとそのアクセスを制御する制御回路、読み出したデータの内部の不良ブロック情報を保持する管理エリアレジスタ、読み出した情報のエラー修正を行うECC(Error Correcting Code)回路から構成される。
フラッシュメモリ18では、内部に出荷の不良ブロックや、後天的に発生する不良ブロックが含まれ、管理エリアに情報が書き込まれるとともに、エラーをECC回路により同一ブロック内のビット不良を2ビットまで修正できる仕様であり、読み出されるデータブロックが不良でないかを確認する必要がある。
フラッシュインターフェース回路22は、フラッシュメモリ18のメーカ推奨回路等で提供されたインタフェースを用いれば容易に構成できる。フラッシュインターフェース回路22からはフラッシュメモリ18の1ブロックのデータ(512バイト)を読み出し、バッファメモリ21へデータを保存する。
このとき、バッファメモリ21はDPM型であることから、フラッシュメモリ18の2ブロック分(512byte×2)のエリアを備え、1つのエリアにフラッシュメモリ18からの読み込みデータを書き込んでいる間に、もう1つのエリアが書き込まれている状態のときはCPU10から読み込むように構成して、フラッシュメモリから読み出す間の時間にCPU10を停止させる時間を削減する。
この動きを図3に示しており、バッファメモリ21のバンク0(211)へフラッシュメモリ18から書き込まれている間は、バンク1(212)をCPU10はリードするよう構成する。
電源ON後のリセット時など、CPU10が起動する際、先ず、その起動させるためのプログラムであるブートプログラム31をフラッシュメモリ18から読みだし、バッファメモリのバンク0(211)へ書き込まれ、バッファメモリ・バンク0(211)の全エリアが書き込まれると、バンク1(212)側へ書き込みのバッファ面が切り換えられるとともに読みだしがバンク0(211)となり、CPU10を起動させ、DPM0(211)からブートプログム31が起動される。
起動後はCPUの初期設定とともに、SDRAMコントローラなどの初期設定を行い、DMAコントローラを設定し、フラッシュメモリ内部のデータをSDRAM13へ転送させるような命令をブートプログラム31に構成する。
DMAコントローラ14は指示されたソースデバイスであるブートコントローラ16内部のバッファメモリ21の収容アドレスと転送バイト数、また、ディスティネーションデバイスであるSDRAM13のアドレスが設定され、ブートプログラムによってDMA転送を開始させる。
DMA転送が開始されると、バッファメモリ21のバンク0(211)およびバンク1(212)から読み出されるアドレスは、512バイトの空間であるが、フラッシュメモリ18より順次データ読みだしデータがバッファメモリ21へセットされるため、CPUリードアドレス33は9bitがバッファメモリに使われ、第10ビットはバッファメモリの面を切り換えるためのバンク反転に利用され、それより上位ビットについては、CPU10にとってみると、指定アドレスから読み取っているかのように見えるものの実際には下位9ビットによって読み出される。
DMAによって一旦転送が始ると、フラッシュメモリ18のページ#1から順次バッファメモリ31または32を介して、SDRAM13へのDMA転送が行われ、所定のバイト数の転送を完了すると、CPUコア11がDMAを開始した時点のプログラムカウンタアドレスの次ステップの命令を読み込み実行する。ページ#0のブートプログラムが中断された形になっており、ページ#0の続きのアドレスが実行される。
しかし、ページ#0はDMAによるプログラム転送に使われており、プログラムは存在しない。
そこで、CPUへブートプログラム32の続きのプログラムが読み込めるようブートプログラムの続きを書いておくことで、機器を動作させるためのSDRAMのアプリケーションプログラムの実行アドレスへのジャンプを行うことができる。
図4はブートコントローラの動作について説明するためのフローチャートであり、再び図2を参照して説明する。装置の電源ON等のシステムリセットによって動作が開始され(S0)、CPU10へのブートプロラグムをブートコントローラ16のバッファメモリ21へ転送する過程において、フラッシュメモリ18に不良ブロックがあった場合の動作フローも示している。
先ず、装置の電源ON後、ステップS0においてシステムリセットが発生すると、ブートコントローラ16のフラッシュI/Fコントローラ23によって、フラッシュメモリ18よりデータを取り出すよう動作する。
このとき、CPU10へはリセットがかかったままで、フラッシュメモリ18からフラッシュI/Fコントローラ23によって読み込まれた、不良などを判定するためのフラッシュメモリ内に備えられた管理情報を記憶している管理エリアを読み込み(S1)、バッファメモリの書き込みが許可されているかを確認し(S2)、不良ブロック判定を行う(S3)。
もし不良ブロックでなければ、読み出した512バイトデータをバッファメモリ21へ書き込んで(S4)、起動フラグをセットしてCPUリセットを解除し(S5)、次ぎのデータを取り出すためのフラッシュメモリのページまたはブロックを更新する(S7)ようにしている。
ここで、起動フラグは初めてフラッシュメモリにデータが転送される、すなわち、ブートプログラムの転送がバッファメモリ21へ転送されると、「0」から「1」へ変化し、その変化によってバッファ面の状態を書き込みから読みだしに切り換えて、CPU10よりブートプログラムを読み出せるようにするとともに、CPU10のリセットを解除する。
すると、CPU10の起動アドレスがバッファメモリの先頭アドレスであるため、フラッシュメモリに書き込まれたブートプログラムをバッファメモリ21上から実行するようにCPU10は動作を始める。
ステップS6,S8におけるバスリクエストについては、DMA転送中にDMAを一時停止させるためのもので、これについては後で説明する。
ここで、ステッブS3において不良ブロックが検出された場合は、不良ブロックを飛ばす必要がある。この動作にはブートプログラムを読み込み中の不良ブロックである場合と、DMA転送中の不良ブロックの2つの場合がある。
ブートプログラムの読み込み中に不良ブロック検出が行われると(S2)、バスリクエストは起動フラグがセットS5されていない状態のためCPU10へはリセットがかかっておりこのリクエストは無効であり、ブロックを更新S9が行われるよう動作する。
次に、フラッシュメモリ18のブロック数を終えたかどうかを判定し(S11)、最終ブロックに達していなければ、管理エリアを読み込むステップS1の動作に再び戻り、動作が繰り返される。
DMA転送中の不良ブロックが検出されたケースでは、上記説明したようにブートプログラムが起動後にDMA転送が開始されるよう構成しているため、フラッシュメモリ18の次ぎのブロックから新たな正常なデータを読み出す必要があり、その読みだし中はアクセス時間の追加発生によってDMA転送を中断させる必要がある。DMA転送は、ステップS8において、バスリクエストをかけ中断させることができる。
ここでバスリクエストは、DMAより優先順位を高く設定しておけば、バス権が開放され、DMAがバスリクエストが解除されるまで中断される。
従って、正常に512バイトデータをバッファへ転送S5できた後に、バスリクエストを解除する(S6)ことによって、バッファメモリ21へのデータが準備された状態でバスリクエストが解除され、一連の動作が再開される。
バスリクエストの制御は、フラッシュメモリ18からバッファメモリ21への転送が間に合わない場合にDMAを一時停止し、フラッシュメモリへの書き込みの方が早く、DMA転送が完了していない場合は、書き込み面の書き込み許可フラグの確認を行い(S2)、許可されていない場合は、バッファへの書き込みを待つよう制御する。
DMA転送が完了し、ブートプログラムの起動を完了し、アプリケーションプログラムへ動作を移すとき、フラッシュI/Fコントローラ23へその旨を通知することで、ブートプログラム終了を判断し(S10)、動作を終了させる。
フラッシュメモリ18からの読み込みが、ステッブS10でブートプログラムを終了しか、ステッブS11で所定ブロック数を書き終えたかが検出されない場合は、上記の動作を繰り返す。
以上のようにしてCPUの駆動用としてNAND型フラッシュメモリを用いた場合でも不良ブロックによるCPU起動の不具合を回避可能となる。
この発明の一実施例について説明するための構成図。 図1のブートコントローラについて説明するための構成図。 図1のDMAコントローラの動作について説明するための説明図。 この発明のブートコントローラの動作について説明するための説明図。
符号の説明
10 CPU
11 CPUコア
12 SDRAMコントローラ
13 SDRAM
14 DMAコントローラ
15 ROMコントローラ
16 ブートコントローラ
17 外部バスインターフェース
18 NAND型フラッシュメモリ
19 ROM
20 バスインターフェース
21 バッファメモリ
22 フラッシュインターフェ―ス回路
23 フラッシュI/Fコントローラ

Claims (2)

  1. 起動および実行プログラムを格納したNAND型フラッシュメモリと、
    前記実行プログラムに基づいた制御を行うCPUと、
    前記CPUの動作に無関係に予め格納されたプログラムに基づいたブートプログラムを実行する第1の手段と、
    前記ブートプログラムが実行された後に、実行する前記CPUに備えたプログラム実行用のメモリと、
    前記ブートプログラム実行時に、前記フラッシュメモリの不良ブロックの利用を避けて前記実行用メモリに前記プログラムを転送する第2の手段とを具備したことを特徴とするプログラム起動装置。
  2. 前記NAND型フラッシュメモリに不良セクタが存在した場合、プログラム実行メモリへのプログラムを復元することを特徴とする請求項1記載のプログラム起動装置。
JP2003304196A 2003-08-28 2003-08-28 プログラム起動装置 Withdrawn JP2005071303A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003304196A JP2005071303A (ja) 2003-08-28 2003-08-28 プログラム起動装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003304196A JP2005071303A (ja) 2003-08-28 2003-08-28 プログラム起動装置

Publications (1)

Publication Number Publication Date
JP2005071303A true JP2005071303A (ja) 2005-03-17

Family

ID=34407953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003304196A Withdrawn JP2005071303A (ja) 2003-08-28 2003-08-28 プログラム起動装置

Country Status (1)

Country Link
JP (1) JP2005071303A (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006277395A (ja) * 2005-03-29 2006-10-12 Matsushita Electric Ind Co Ltd 情報処理装置及び情報処理方法
JP2008065434A (ja) * 2006-09-05 2008-03-21 Matsushita Electric Ind Co Ltd プログラム起動制御装置
JP2011011073A (ja) * 2010-09-29 2011-01-20 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011011075A (ja) * 2010-09-29 2011-01-20 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011011076A (ja) * 2010-09-29 2011-01-20 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011011074A (ja) * 2010-09-29 2011-01-20 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011024994A (ja) * 2009-06-30 2011-02-10 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011024995A (ja) * 2009-06-30 2011-02-10 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011024993A (ja) * 2009-06-30 2011-02-10 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011024992A (ja) * 2009-06-30 2011-02-10 Sanyo Product Co Ltd スロットマシン及び遊技機
US7913073B2 (en) 2006-09-19 2011-03-22 Samsung Electronics Co., Ltd. System embedding plural controller sharing nonvolatile memory
JP2014223510A (ja) * 2014-07-24 2014-12-04 株式会社三洋物産 遊技機
JP2015016321A (ja) * 2014-07-01 2015-01-29 株式会社三洋物産 スロットマシン及び遊技機
JP2015062805A (ja) * 2015-01-14 2015-04-09 株式会社三洋物産 遊技機
JP2015062797A (ja) * 2015-01-14 2015-04-09 株式会社三洋物産 スロットマシン及び遊技機
WO2015115281A1 (ja) 2014-01-29 2015-08-06 京セラドキュメントソリューションズ株式会社 画像形成装置及び画像形成方法
JP2018011991A (ja) * 2017-09-25 2018-01-25 株式会社三洋物産 スロットマシン及び遊技機
JP2018202259A (ja) * 2018-10-09 2018-12-27 株式会社三洋物産 スロットマシン及び遊技機

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100409186C (zh) * 2005-03-29 2008-08-06 松下电器产业株式会社 信息处理设备和信息处理方法
JP2006277395A (ja) * 2005-03-29 2006-10-12 Matsushita Electric Ind Co Ltd 情報処理装置及び情報処理方法
JP2008065434A (ja) * 2006-09-05 2008-03-21 Matsushita Electric Ind Co Ltd プログラム起動制御装置
US7913073B2 (en) 2006-09-19 2011-03-22 Samsung Electronics Co., Ltd. System embedding plural controller sharing nonvolatile memory
JP2015062796A (ja) * 2009-06-30 2015-04-09 株式会社三洋物産 遊技機
JP2017221769A (ja) * 2009-06-30 2017-12-21 株式会社三洋物産 遊技機
JP2015006354A (ja) * 2009-06-30 2015-01-15 株式会社三洋物産 遊技機
JP2011024994A (ja) * 2009-06-30 2011-02-10 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011024995A (ja) * 2009-06-30 2011-02-10 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011024993A (ja) * 2009-06-30 2011-02-10 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011024992A (ja) * 2009-06-30 2011-02-10 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2018202258A (ja) * 2009-06-30 2018-12-27 株式会社三洋物産 遊技機
JP2015062804A (ja) * 2009-06-30 2015-04-09 株式会社三洋物産 遊技機
JP2014223508A (ja) * 2009-06-30 2014-12-04 株式会社三洋物産 遊技機
JP2011011076A (ja) * 2010-09-29 2011-01-20 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011011074A (ja) * 2010-09-29 2011-01-20 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011011075A (ja) * 2010-09-29 2011-01-20 Sanyo Product Co Ltd スロットマシン及び遊技機
JP2011011073A (ja) * 2010-09-29 2011-01-20 Sanyo Product Co Ltd スロットマシン及び遊技機
US9854128B2 (en) 2014-01-29 2017-12-26 Kyocera Document Solutions Inc. Image forming apparatus and image forming method for detecting bad blocks in auxiliary memory
WO2015115281A1 (ja) 2014-01-29 2015-08-06 京セラドキュメントソリューションズ株式会社 画像形成装置及び画像形成方法
EP3101550A4 (en) * 2014-01-29 2017-11-15 Kyocera Document Solutions Inc. Image formation device and image formation method
JP2015016321A (ja) * 2014-07-01 2015-01-29 株式会社三洋物産 スロットマシン及び遊技機
JP2014223510A (ja) * 2014-07-24 2014-12-04 株式会社三洋物産 遊技機
JP2015062797A (ja) * 2015-01-14 2015-04-09 株式会社三洋物産 スロットマシン及び遊技機
JP2015062805A (ja) * 2015-01-14 2015-04-09 株式会社三洋物産 遊技機
JP2018011991A (ja) * 2017-09-25 2018-01-25 株式会社三洋物産 スロットマシン及び遊技機
JP2018202259A (ja) * 2018-10-09 2018-12-27 株式会社三洋物産 スロットマシン及び遊技機

Similar Documents

Publication Publication Date Title
JP2005071303A (ja) プログラム起動装置
TWI514408B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
JP5783809B2 (ja) 情報処理装置、起動方法およびプログラム
JP2008065434A (ja) プログラム起動制御装置
JP6070360B2 (ja) 情報処理装置およびその処理方法
JP2010500682A (ja) フラッシュメモリアクセス回路
JP4829370B1 (ja) メモリ制御装置、メモリ装置および停止制御方法
JP2005157528A (ja) メモリ装置
KR101433861B1 (ko) 메모리 시스템 및 그 구동방법
CN101667133A (zh) 固件更新方法和使用该方法更新固件的芯片
JP5035227B2 (ja) 情報処理装置、プログラムの起動制御方法、及び起動制御プログラム
JP4471947B2 (ja) データ処理装置及びデータ処理方法
JP2007299249A (ja) Nand型フラッシュメモリデバイス及びこれを利用したコンピューティングシステムの起動方法
JPH11265283A (ja) 記憶装置におけるファームウェアの修正方法及び記憶装置
JP2008065725A (ja) Nand型フラッシュメモリデバイス及びこれを利用したコンピューティングシステムの起動方法
US8117427B2 (en) Motherboard, storage device and controller thereof, and booting method
JP2007034581A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2010237770A (ja) 情報処理装置、ブリッジ装置および情報処理方法
JP2008140124A (ja) データ処理装置
JP2009238071A (ja) 組込システム
JP2011081641A (ja) メモリ制御装置
JP2009223435A (ja) データ記憶方法及び装置、並びにプログラム
JP4235624B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP3747213B1 (ja) シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ
JP2011150383A (ja) ファームウェア書き込み方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20061107