JP5875558B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP5875558B2
JP5875558B2 JP2013177255A JP2013177255A JP5875558B2 JP 5875558 B2 JP5875558 B2 JP 5875558B2 JP 2013177255 A JP2013177255 A JP 2013177255A JP 2013177255 A JP2013177255 A JP 2013177255A JP 5875558 B2 JP5875558 B2 JP 5875558B2
Authority
JP
Japan
Prior art keywords
area
boot
boot code
processor
code
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
JP2013177255A
Other languages
English (en)
Other versions
JP2015046057A (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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions 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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2013177255A priority Critical patent/JP5875558B2/ja
Priority to US14/463,503 priority patent/US20150067242A1/en
Publication of JP2015046057A publication Critical patent/JP2015046057A/ja
Application granted granted Critical
Publication of JP5875558B2 publication Critical patent/JP5875558B2/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
    • 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/4406Loading of operating system

Description

本発明は、情報処理装置に関するものである。
ある情報処理装置では、NANDフラッシュメモリーにブートコードを格納しておき、ブート時に、NANDフラッシュメモリーからRAM(Random Access Memory)へブートコードを展開し、RAM上のブートコードを実行してブート処理を行っている(たとえば特許文献1参照)。
特開2003−271391号公報
NANDフラッシュメモリーにブートコードを格納しておき、ブート時に、NANDフラッシュメモリーからRAMへブートコードを展開し、RAM上のブートコードを実行するブート処理(以下、NANDブートという)を採用しているシステムにおいて、ディープスリープ期間中に、定期的にシステムを起動させる必要がある場合、NANDフラッシュメモリーのブートセクターに対するリードアクセスが頻繁に発生し、NANDフラッシュメモリー固有のリードディスターブによってブートセクター内のブートコードが破損してしまうことがある。
そのようなリードディスターブによるブートコードの破損を防ぐために、ブートコードの書き換えを行うことが考えられるが、ブートコードの書き換えに失敗した場合、システムの起動が行えなくなってしまう。
本発明は、上記の問題に鑑みてなされたものであり、NANDブートシステムのブートコードの書き換えを安全に行うことができる情報処理装置を得ることを目的とする。
本発明に係る情報処理装置は、第1領域および第2領域にそれぞれブートコードを格納したNANDフラッシュメモリーと、ランダムアクセスメモリーと、前記NANDフラッシュメモリー内の前記ブートコードを前記ランダムアクセスメモリーに展開して実行し、ブート回数に応じて、異なるタイミングで前記第1領域のブートコードの書き換えおよび前記第2領域のブートコードの書き換えを実行するプロセッサーと、ブート時の前記プロセッサーのアクセス先を前記第1領域および前記第2領域のいずれかに設定するブート領域設定部と、前記ブート領域設定部を制御して、所定の回数ごとに、ブート時の前記プロセッサーのアクセス先を、前記第1領域および前記第2領域の一方から他方へ交互に切り替えるコントローラーとを備える。
本発明によれば、ブートコードの書き換えを安全に行うことができる情報処理装置を得ることができる。
図1は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。 図2は、図1に示す情報処理装置の動作について説明するフローチャートである。
以下、図に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
図1に示す情報処理装置は、CPU(Central Processing Unit)1、NANDフラッシュメモリー2、ブート領域設定部3、コントローラー4、およびRAM5を有する。
CPU1は、ブート時に、NANDフラッシュメモリー2内のブートコードをRAM5に展開して実行するプロセッサーである。
NANDフラッシュメモリー2は、第1領域11および第2領域12にそれぞれ互いに同一のブートコードを格納している。例えば、第1領域11および第2領域12は、互いに異なる2つのバンクで構成されるブート領域である。
CPU1は、ブート回数に応じて、異なるタイミングで第1領域11のブートコードの書き換えおよび第2領域12のブートコードの書き換えを実行する。
ブート領域設定部3は、コントローラー4からの切換信号に従って、ブート時のCPU1のアクセス先を第1領域11および第2領域12のいずれかに設定する。
コントローラー4は、通常動作とディープスリープとの間の状態遷移を管理し、ディープスリープの開始時に、CPU1、RAM5などの電源をオフにし、ディープスリープの期間中、定期的に(例えば3秒ごとに)、所定の処理のために、CPU1、RAM5などの電源をオンにしてCPU1にブートコードを実行させ、ブートコード後の所定の処理の完了後にCPU1、RAM5などの電源をオフにする。
例えば、上述の所定の処理としては、所定のタイミングからの経過時間が所定時間に達したか否かを確認する処理が実行される。そのような処理は、例えば、ネットワークプロトコル上、所定時間ごとに定期的にデータ送信を行う必要がある場合に実行される。
また、コントローラー4は、ブート領域設定部3を制御して、所定の回数ごとに、ブート時のプロセッサーのアクセス先を、第1領域11および第2領域12の一方から他方へ交互に切り替える。
さらに、この実施の形態では、コントローラー4は、第2領域12のブートコードを使用して第1領域11のブートコードを書き換え、第1領域11のブートコードを使用して記第2領域12のブートコードを書き換える。
さらに、この実施の形態では、コントローラー4は、第1領域11および第2領域12のブートコードのそれぞれについての第1および第2ブート回数カウンターを有し、第1領域11のブートコードでブートするたびに、第1ブート回数カウンターをインクリメントし、第2領域12のブートコードでブートするたびに、第2ブート回数カウンターをインクリメントする。そして、CPU1は、第1ブート回数カウンターの値が所定値に達すると、第1領域11のブートコードの書き換えを実行し、第2ブート回数カウンターの値が所定値に達すると、第2領域12のブートコードの書き換えを実行する。
次に、上記情報処理装置の動作について説明する。図2は、図1に示す情報処理装置の動作について説明するフローチャートである。
コントローラー4は、起動タイミング(例えば3秒ごと)になると(ステップS1)、CPU1、RAM5などの電源をオンし、第1領域11および第2領域12のうち、現在選択されているブート領域についてのブート回数カウントをインクリメントする(ステップS2)。
他方、CPU1は、電源がオンされ、リセットベクターからブートコードの読み出しを行う。このとき、ブート領域設定部3により現在選択されているブート領域が選択され、CPU1は、そのブート領域からブートコードを読み出してRAM5に展開し、そのブートコードを実行する(ステップS4)。このブート処理が完了すると、CPU1は、上述の所定の処理の実行を開始する。
ブート処理の完了後、コントローラー4は、ブート領域設定部3に切換信号を供給して、ブート領域を切り換える(ステップS5)。これにより、次回のブートでは、今回使用されたブート領域とは異なるブート領域のブートコードが使用される。
また、CPU1は、ブートコードに従って、今回使用されたブート領域のブート回数カウンターの値が所定値(例えば10万回)以上であるか否かを判定し(ステップS6)、今回使用されたブート領域のブート回数カウンターの値が所定値以上である場合には、そのブート領域のブートコードの書き換え(つまり、リフレッシュ動作)を実行し(ステップS7)、そのブート回数カウンターの値をゼロにリセットする。
その後、コントローラー4は、上述の所定の処理が終了すると(ステップS8)、CPU1、RAM5などの電源をオフし、ステップS1に戻り、次の起動タイミングまで待機する。
なお、ここでは、1回ごとにブート領域が切り換えられているが、所定の複数回ごとにブート領域を切り換えるようにしてもよい。
以上のように、上記実施の形態によれば、ブート領域設定部3は、ブート時のCPU1のアクセス先をNANDフラッシュメモリー2の第1領域11および第2領域12のいずれかに設定し、コントローラー4は、ブート領域設定部3を制御して、所定の回数ごとに、ブート時のCPU1のアクセス先を、第1領域11および第2領域12の一方から他方へ交互に切り替える。CPU1は、ブート回数に応じて、異なるタイミングで第1領域11のブートコードの書き換えおよび第2領域12のブートコードの書き換えを実行する。
これにより、仮に一方のブート領域のブートコードの書き換えに失敗した場合でも、他方のブート領域のブートコードで引き続き次回のブートが可能であるとともに、書き換えに失敗したブート領域のブートコードを他方のブート領域のブートコードで修復することができる。したがって、NANDブートシステムのブートコードの書き換えを安全に行うことができる。
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
本発明は、例えば、NANDブートを採用している電子機器に適用可能である。
1 CPU(プロセッサーの一例)
2 NANDフラッシュメモリー
3 ブート領域設定部
4 コントローラー
5 ランダムアクセスメモリー
11 第1領域
12 第2領域

Claims (4)

  1. 第1領域および第2領域にそれぞれブートコードを格納したNANDフラッシュメモリーと、
    ランダムアクセスメモリーと、
    前記NANDフラッシュメモリー内の前記ブートコードを前記ランダムアクセスメモリーに展開して実行し、ブート回数に応じて、異なるタイミングで前記第1領域のブートコードの書き換えおよび前記第2領域のブートコードの書き換えを実行するプロセッサーと、
    ブート時の前記プロセッサーのアクセス先を前記第1領域および前記第2領域のいずれかに設定するブート領域設定部と、
    前記ブート領域設定部を制御して、所定の回数ごとに、ブート時の前記プロセッサーのアクセス先を、前記第1領域および前記第2領域の一方から他方へ交互に切り替えるコントローラーと、
    を備えることを特徴とする情報処理装置。
  2. 前記プロセッサーは、前記第2領域のブートコードを使用して前記第1領域のブートコードを書き換え、前記第1領域のブートコードを使用して前記第2領域のブートコードを書き換えることを特徴とする請求項1記載の情報処理装置。
  3. 前記コントローラーは、前記第1領域のブートコードでブートするたびに、第1ブート回数カウンターをインクリメントし、前記第2領域のブートコードでブートするたびに、第2ブート回数カウンターをインクリメントし、
    前記プロセッサーは、前記第1ブート回数カウンターの値が所定値に達すると、前記第1領域のブートコードの書き換えを実行し、前記第2ブート回数カウンターの値が所定値に達すると、前記第2領域のブートコードの書き換えを実行すること、
    を特徴とする請求項1または請求項2記載の情報処理装置。
  4. 前記コントローラーは、ディープスリープの開始時に、前記プロセッサーおよび前記ランダムアクセスメモリーの電源をオフにし、前記ディープスリープにおいて、定期的に、所定の処理のために、前記プロセッサーおよび前記ランダムアクセスメモリーの電源をオンにして前記プロセッサーに前記ブートコードを実行させ、前記ブートコードを実行させた後の前記所定の処理の完了後に前記プロセッサーおよび前記ランダムアクセスメモリーの電源をオフにすることを特徴とする請求項1から請求項3のいずれか1項記載の情報処理装置。
JP2013177255A 2013-08-28 2013-08-28 情報処理装置 Expired - Fee Related JP5875558B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013177255A JP5875558B2 (ja) 2013-08-28 2013-08-28 情報処理装置
US14/463,503 US20150067242A1 (en) 2013-08-28 2014-08-19 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013177255A JP5875558B2 (ja) 2013-08-28 2013-08-28 情報処理装置

Publications (2)

Publication Number Publication Date
JP2015046057A JP2015046057A (ja) 2015-03-12
JP5875558B2 true JP5875558B2 (ja) 2016-03-02

Family

ID=52584897

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013177255A Expired - Fee Related JP5875558B2 (ja) 2013-08-28 2013-08-28 情報処理装置

Country Status (2)

Country Link
US (1) US20150067242A1 (ja)
JP (1) JP5875558B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9940039B2 (en) * 2015-05-21 2018-04-10 Western Digital Technologies, Inc. Method and data storage device with enhanced data retention
KR102379202B1 (ko) * 2015-09-30 2022-03-28 삼성전자주식회사 전자 장치 및 그 부팅 방법
US10175716B2 (en) * 2016-09-29 2019-01-08 Intel Corporation Technologies for low-power and high-accuracy timestamps
CN109976815B (zh) * 2019-03-20 2022-03-29 深圳忆联信息系统有限公司 一种加速Nandboot的方法及其系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3838840B2 (ja) * 2000-01-06 2006-10-25 Necエレクトロニクス株式会社 コンピュータ
KR100532413B1 (ko) * 2002-12-02 2005-12-02 삼성전자주식회사 플래시 메모리 보호 장치 및 방법
JP2005041214A (ja) * 2003-07-10 2005-02-17 Canon Inc 印刷制御装置及びその制御方法及びプログラム
US7937521B2 (en) * 2008-01-29 2011-05-03 Cadence Design Systems, Inc. Read disturbance management in a non-volatile memory system
US8082384B2 (en) * 2008-03-26 2011-12-20 Microsoft Corporation Booting an electronic device using flash memory and a limited function memory controller
JP2010026650A (ja) * 2008-07-16 2010-02-04 Mitsubishi Electric Corp 制御装置
US8452937B2 (en) * 2010-05-14 2013-05-28 Sandisk Il Ltd. Moving executable code from a first region of a non-volatile memory to a second region of the non-volatile memory to reduce read disturb
CN102263874B (zh) * 2010-05-28 2014-03-12 京瓷办公信息系统株式会社 具有省电模式的图像形成装置
JP5346964B2 (ja) * 2011-02-02 2013-11-20 京セラドキュメントソリューションズ株式会社 電子機器およびシステム管理プログラム
US20120246384A1 (en) * 2011-03-21 2012-09-27 Winbond Electronics Corp. Flash memory and flash memory accessing method
TW201426544A (zh) * 2012-12-24 2014-07-01 Ene Technology Inc 電子系統及開機管理方法
CN105027080B (zh) * 2013-03-14 2020-03-13 密克罗奇普技术公司 用于多重启动装置的启动顺序

Also Published As

Publication number Publication date
US20150067242A1 (en) 2015-03-05
JP2015046057A (ja) 2015-03-12

Similar Documents

Publication Publication Date Title
JP5875558B2 (ja) 情報処理装置
US20140123121A1 (en) Rack and method thereof for simultaneously updating basic input output systems
US7975188B2 (en) Restoration device for BIOS stall failures and method and computer program product for the same
RU2005137695A (ru) Предикативная команда в системе обработки данных
CN102906717B (zh) 对管理控制器的存储器子系统进行初始化
TWI617916B (zh) 最小化在一可熱交換程式記憶體中之切換時間
US20170131932A1 (en) Control Apparatus, Integrated Circuit and Management Method for Stack
JP6148129B2 (ja) 情報処理装置、ファームウェア更新方法およびファームウェア更新プログラム
US20150066168A1 (en) Apparatus and method for updating operating system in programmable logic controller
CN105677414A (zh) 一种在Hostboot中实现双启动的方法
TWI533323B (zh) 電子裝置及其操作方法
JP4273905B2 (ja) 2重化コントローラシステム、その方法
WO2017122332A1 (ja) プログラマブルロジックコントローラ
US10884882B2 (en) Semiconductor device including semaphore management
JP6516874B2 (ja) プログラマブルコントローラ及び同期制御プログラム
JP5590667B2 (ja) サブルーチン実行監視装置及びサブルーチン実行監視方法
JP5346964B2 (ja) 電子機器およびシステム管理プログラム
KR101569001B1 (ko) Fpga 데이터 구성 시스템 및 그 방법
WO2013136997A1 (ja) プログラム制御装置、マザーボードおよび情報処理装置
JP6457756B2 (ja) 情報処理装置、その制御方法、及びプログラム
US20170344390A1 (en) Method for resetting a memory in a computer system
JP2020514927A5 (ja)
JPWO2017188416A1 (ja) 回路装置、回路書き換え方法、及びプログラム
JP2010087959A (ja) 半導体装置
CN106815033B (zh) 开机检查方法及计算机系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150623

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151126

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160119

R150 Certificate of patent or registration of utility model

Ref document number: 5875558

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees