JP5251353B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP5251353B2
JP5251353B2 JP2008208922A JP2008208922A JP5251353B2 JP 5251353 B2 JP5251353 B2 JP 5251353B2 JP 2008208922 A JP2008208922 A JP 2008208922A JP 2008208922 A JP2008208922 A JP 2008208922A JP 5251353 B2 JP5251353 B2 JP 5251353B2
Authority
JP
Japan
Prior art keywords
data
address
timing
information processing
bit
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
JP2008208922A
Other languages
English (en)
Other versions
JP2010044638A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008208922A priority Critical patent/JP5251353B2/ja
Publication of JP2010044638A publication Critical patent/JP2010044638A/ja
Application granted granted Critical
Publication of JP5251353B2 publication Critical patent/JP5251353B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Stored Programmes (AREA)

Description

本発明は、一般に情報処理システムに関し、詳しくはファームウェアを受信し実行することにより動作する情報処理装置を含む情報処理システムに関する。
情報処理装置においては、情報処理を行うためのファームウェアを外部ROMに格納しておく場合が多い。ブート時に情報処理装置が外部ROMからファームウェアをダウンロードし、ダウンロード後のファームウェアを実行することにより、所定の情報処理を実行する。このような構成とすることにより、外部ROMのファームウェアを書き替えるだけで情報処理の内容を変更することが可能となり、柔軟性の高い情報処理システムを構築することができる。
より詳細には、情報処理装置の内部にあるブートROMにはブートローダプログラムが格納されおり、ブート時には、このブートROMに格納されているブートローダプログラムにより情報処理装置が起動する。ブートローダプログラムに従って情報処理装置が外部シリアルROMに記録されたファームウェアを読み込み、符号化・復号化等の情報処理を開始する。
シリアルROMのアドレス0から始まるメモリ位置に格納されるファームウェアの先頭部分には、所定のキーワードが配置されている。情報処理装置の制御CPUは、ファームウェアのダウンロードを行いながら、ダウンロードされるデータ中のキーワードのチェックを行う。情報処理装置は、所定のキーワードの読み込みに成功した場合には外部ROMが存在するものと判断し、キーワードに後続する位置に格納されているプログラムを外部ROMからダウンロードする。また所定のキーワードの読み込みに失敗した場合にはエラー発生と判断し、情報処理装置はブートアップ処理を中断する。
図1は、SPIプロトコルのインターフェースの概略構成を示す図である。SPI(Serial Peripheral Interface)は、マイクロプロセッサをメモリ、センサ、変換装置、コントロール装置等の各種周辺デバイスに接続するためのシリアル・プロトコルである。図1に示す構成では、SPIマスタ10とSPIスレーブ15との間の通信を行なう。通信には、2本のデータ線、1本のコントロール線、及び1つの同期クロックを使用する。MOSI(Master Out Slave In)は、SPIマスタ10の出力からSPIスレーブ15の入力へのデータ線である。MISO(Master In Slave Out)は、SPIスレーブ15の出力からSPIマスタ10の入力へのデータ線である。SCK(Serial Clock)は、SPIマスタ10からSPIスレーブ15に供給するクロック信号であり、データビットの同期を取るために使用される。/SS(Slave Select)は、SPIスレーブ15により個々のスレーブを選択するセレクト信号であり、セレクト信号がLOWになることにより選択状態となる。図1の構成例では、1つのSPIスレーブしか設けられていないので、SPIスレーブ15は選択状態に固定となっている。
SPIマスタ10は、シフトレジスタ11とボーレート生成器12を含む。SPIスレーブ15は、シフトレジスタ16を含む。シフトレジスタ11は、受信シフトレジスタと送信シフトレジスタとを含む。例えば制御CPUにより、ライトデータがシフトレジスタ11の送信シフトレジスタに書き込まれる。シフトレジスタ11の送信シフトレジスタの格納データは、最下位ビット又は最上位ビットから1ビットずつ順次MOSIに出力される。またMISOから入力されるデータは、シフトレジスタ11の受信シフトレジスタに1ビットずつ順次格納される。格納された受信データは、例えば制御CPUにより、リードデータとして読み出される。ボーレート生成器12は、例えば制御CPUによる設定値に応じてクロック信号を分周し、シリアルクロックSCKを生成する。シリアルクロックSCKは、SPIマスタ10からSPIスレーブ15に供給される。
シリアルクロックSCKに同期して、SPIマスタ10からSPIスレーブ15にデータを転送すると共に、SPIスレーブ15からSPIマスタ10にデータを転送する。SPIスレーブ15は、/SSがLOW(イネーブル)になった後に、SPIマスタ10から最初に送られてくる8ビットのデータをインストラクションとして認識する。例えばリード動作の場合、SPIマスタ10はリード動作を示すインストラクションデータをまず最初に送信し、その後アドレスデータを送信する。このとき送信するアドレスのビット長は、SPIスレーブ15のメモリ容量によって異なり、例えば8ビット、16ビット、24ビット等の何れか1つのビット長である。アドレスデータの送信後、該当アドレスのリードデータがSPIスレーブ15から出力される。その後は、SPIマスタ10からクロックSCKを出し続けることにより、SPIスレーブ15がアドレスをオートインクリメントし、次々とリードデータを出力する。
図2は、アドレスビット長が8ビットの場合のデータ読出し動作の一例を示す図である。SPIスレーブ15は、/SSがLOW(イネーブル)になった後に、SPIマスタ10がMOSIに出力した8ビットのデータをインストラクションとして取り込み、リード動作であることを認識する。SPIマスタ10は、リード動作を示すインストラクションデータに続き、8ビットのアドレスデータA0乃至A7をMOSIに出力する。SPIスレーブ15は、受信したアドレスデータが示すメモリ位置を始点として、クロックSCKに同期してリードデータをMISOに順次出力する。
図3は、アドレスビット長が24ビットの場合のデータ読出し動作の一例を示す図である。SPIマスタ10は、リード動作を示す8ビットのインストラクションデータに続き、24ビットのアドレスデータA0乃至A23をMOSIに出力する。SPIスレーブ15は、受信したアドレスデータが示すメモリ位置を始点として、クロックSCKに同期してリードデータをMISOに順次出力する。
図4は、アドレスのビット長が固定の場合のブートアップ処理の流れの一例を示すフローチャートである。ステップS1でSPIマスタ(例えばSPIマスタ10)の各種設定を行なう。ステップS2で、SPIマスタからリードコマンドを送信する。この送信動作には8サイクルを要する。ステップS3で、SPIマスタからアドレス“0”を送信する。アドレスのビット長がnビットであれば、この送信動作にはnサイクルを要する。ステップS4で、SPIマスタがSPIスレーブからリードデータを受信する。この受信動作には8サイクルを要する。ステップS5で、例えばSPIマスタ側のCPUにより、リードデータが16進数“4D”であるか否かを判定する。ここで“4D”は第1番目のキーワードであるとする。リードデータがキーワードに等しい場合は、ステップS6で、例えばSPIマスタ側のCPUにより、リードデータが16進数“42”であるか否かを判定する。ここで“42”は第2番目のキーワードであるとする。リードデータがキーワードに等しい場合は、更に次のステップに進む。同様にして、第3番目以降のキーワードについても確認し、全てのキーワードが正しく読み出された場合には、キーワードに後続するファームウェアのプログラムをダウンロードする。1つでもキーワードが正しく読み出されなかった場合には、ブートアップ処理を中断してエラー処理を実行する。
前述のように、SPIプロトコルを介してマスタデバイスからスレーブデバイスへアクセスする際のアドレスのビット幅は、スレーブデバイスの種類(メモリ容量)に応じて異なる。図4に示すブートアップ処理のフローチャートの場合には、ステップS3に要するサイクル数が、スレーブデバイスの種類に応じて異なることになる。従って、シリアルROMからファームウェアをダウンロードしてブートアップを行う情報処理装置においては、シリアルROMのアドレスビット幅に応じて、異なるプログラムを内蔵したブートローダーROMを設ける必要がある。ブートローダーROMの内容を変更することは困難であるので、ある種類のスレーブデバイスからダウンロードするように情報処理装置を一旦構成してしまうと、外部ROMのメモリ容量を変更したくとも変更できないことになってしまう。
ブートローダーROMに、例えば8ビットアドレス用のブートプログラム、16ビットアドレス用のブートプログラム、24ビットアドレス用のブートプログラムをそれぞれ格納しておき、ブート時に1つのプログラムを選択して実行することが考えられる。より効率的には、ブートプログラム中のアドレス出力動作の処理部分(図4のステップS3の処理部分)を、8ビットアドレス出力、16ビットアドレス出力、及び24ビットアドレス出力で切り替えられるように構成すればよい。この際の切り替えの選択信号は、情報処理装置の外部端子に印加する信号に応じて生成すればよい。しかしながら、このような構成とした場合、ピン数増加によるコストアップが問題となってしまう。
シリアルROMよりデータをリードする際のアドレス決定方法が、例えば、特許文献1及び特許文献2に開示されている。特許文献1に開示の技術は、シリアルEEPROMのアクセス形態を自動的に判別する発明であり、1バイトアドレスか2バイトアドレスかの判別にシリアルEEPROMから出力されるアクノリッジ信号を利用している。しかしながらSPIプロトコルにはアクノリッジ信号に相当する信号がないため、この技術をSPIプロトコルで接続されたシステムに使用することはできない。
特許文献2に開示の技術は、EEPROMの記憶容量を自動的に判別する発明であり、有効アドレス入力後のEEPROMからのローレベル出力を利用してアドレスビット数を計数している。しかしながらSPIにはローレベル出力に相当するプロトコルがないために、この技術をSPIプロトコルで接続されたシステムに使用することはできない。
また仮に、何らかのアドレス決定方法によりアドレスビット幅が特定できたとしても、アドレスモード検出、アドレスモード判定、及び各アドレスモードに対するアドレス送信等の処理をブートプログラムに組み込む必要がある。即ち、図4のブートアップ処理に対して新たな処理を追加することが必要になり、処理が複雑になるとともにコストアップに繋がる。
特開2004−21421号公報 特開2002−73411号公報
以上を鑑みると、SPIプロトコルでスレーブデバイスからファームウェアをダウンロードする際に、スレーブデバイスのアドレスビット長に依存せずにブートアップ処理を行うことができる情報処理装置が望まれる。
情報処理装置は、アドレスの各ビットをシリアルに送信し、データの各ビットをシリアルに受信するシリアルインターフェースと、起動プログラムを格納するブートメモリと、起動時に前記起動プログラムを実行して起動時処理を行なう制御回路とを含み、前記制御回路は、前記起動時処理において、第1のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが所定のデータに一致するか否かを判断し、データ不一致の場合には、第2のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かを判断し、前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致したタイミングから以降に前記シリアルインターフェースがシリアルに受信する複数所定個のデータのそれぞれが、該複数所定個に等しい個数のキーワードに一致するか否かを判断し、該判断の結果1つでもデータが一致しない場合には、前記起動時処理を中断することを特徴とする。
少なくとも1つの実施例によれば、SPIプロトコルで接続されたシステムにおいて、異なるアドレスビット幅のスレーブデバイスに対応した制御を実現すると共に、余分なROMや外部端子の追加が必要なく、コストダウンを図ることができる。また従来技術の構成と比較して余分なサイクル数が増えることがない。
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
図5は、シリアルROMからファームウェアをダウンロードする情報処理装置の構成の一例を示す図である。情報処理装置20は、SPIインターフェース(I/F)21、ブートROM22、制御CPU23、及びRAMインターフェース(I/F)24を含む。SPIインターフェース21、ブートROM22、制御CPU23、及びRAMインターフェース24は、内部バス25を介して互いに接続されている。情報処理装置20のRAMインターフェース24はRAM26に接続されており、制御CPU23が実行するプログラムや処理に関わるデータ等がRAM26に格納される。情報処理装置20のSPIインターフェース21はシリアルROM30に接続されており、MISO、MOSI、SCK、及び/SSを介してSPIマスタ(SPIインターフェース21)とSPIスレーブ(シリアルROM30)との間のデータ転送を行なう。SPIプロトコルのインターフェースの構成は、図1に示したとおりである。SPIインターフェース21は、アドレスの各ビットをシリアルにMOSIに送信し、データの各ビットをシリアルにMISOから受信する。
ブートROM22は、起動プログラム(ブートローダプログラム)を格納するブートメモリである。制御CPU23は、情報処理装置20の起動時に、ブートROM22の起動プログラムを実行して起動時処理を実行する。ブートローダプログラムに従って情報処理装置20がシリアルROM30に記録されたファームウェアを読み込み、符号化・復号化等の情報処理を開始する。
図6は、シリアルROM30の格納データの一例を示す図である。図6に示されるように、シリアルROM30のアドレス0から始まるメモリ位置に格納されるファームウェアの先頭部分には、所定のキーワードが配置されている。図6に示す例では、第1のアドレス位置(番地0)には第1のキーワードである16進データ“4D”(アスキー符号で“M”)が格納され、第2のアドレス位置(番地1)には第2のキーワードである16進データ“42”(アスキー符号で“B”)が格納されている。また第3のアドレス位置(番地2)には第3のキーワードである16進データ“38”(アスキー符号で“8”)が格納され、第4のアドレス位置(番地3)には第4のキーワードである16進データ“36”(アスキー符号で“6”)が格納されている。
情報処理装置20の制御CPU23は、シリアルROM30からファームウェアのダウンロードを行いながら、ダウンロードされるデータ中のキーワード(図6の例では“M”、“B”、“8”、“6”)のチェックを行う。制御CPU23は、所定のキーワードの読み込みに成功した場合には外部ROMが存在するものと判断し、キーワードに後続する位置に格納されているプログラムをシリアルROM30からダウンロードする。また所定のキーワードの読み込みに失敗した場合にはエラー発生と判断し、情報処理装置はブートアップ処理を中断する。
図5の情報処理装置20では、制御CPU23は、起動時処理において、第1のタイミングを開始タイミングとしてSPIインターフェース21がシリアルに受信するデータが所定のデータ(第1のキーワード)に一致するか否かを判断する。判断結果がデータ不一致の場合、制御CPU23は、第2のタイミングを開始タイミングとしてSPIインターフェース21がシリアルに受信するデータが所定のデータ(第1のキーワード)に一致するか否かを判断する。このようにSPIインターフェース21がシリアルに受信するデータが所定のデータ(第1のキーワード)に一致するか否かの判断を、順次異なる開始タイミングで受信する受信データに対して繰り返す。そして制御CPU23は、SPIインターフェース21がシリアルに受信するデータが所定のデータ(第1のキーワード)に一致したタイミングから以降のデータを必要なデータとして順次読み込む。これらの処理についてより詳細に以下に説明する。
図7は、情報処理装置20のブートアップ処理の流れを示すフローチャートである。このフローチャートの各ステップの処理は、制御CPU23が実行するか、又は、制御CPU23の制御下で動作するSPIインターフェース21が実行する。
ステップS1において、SPIインターフェース21の各種設定を行なう。ステップS2で、SPIインターフェース21からリードコマンドを送信する。この送信動作には例えば8サイクルを要する。ステップS3で、SPIインターフェース21からアドレス“0”を送信する。この際、制御CPU23は、固定のビット値“0”をアドレスとしてMOSIに送信し続けるように、SPIインターフェース21を制御する。固定のビット値“0”を送信し続ける期間は、少なくともアドレスビット長の最大値に等しいサイクル数である。即ち例えば、アドレスビット長として8ビット、16ビット、及び24ビットのアドレスモードが有り得る場合には、最大値である24ビットに等しいサイクル数、即ち少なくとも24サイクルの間は固定のビット値“0”を送信し続ける。
ステップS4で、SPIインターフェース21がシリアルROM30からリードデータを受信する。この受信動作には例えば8サイクルを要する。ステップS5で、制御CPU23により、リードデータが16進数“4D”であるか否かを判定する。ここで“4D”は第1のキーワードである。
図8は、データ読出し動作の一例を示す図である。シリアルROM30は、/SSがLOW(イネーブル)になった後に、SPIインターフェース21がMOSIに出力した8ビットのデータ“00000011”をインストラクションとして取り込み、リード動作であることを認識する。SPIインターフェース21は、リード動作を示すインストラクションデータに続き、ビット値“0”の固定値をMOSIに出力し続ける。シリアルROM30は、受信したアドレスデータが示すメモリ位置を始点として、クロックSCKに同期してリードデータをMISOに順次出力する。図8の例においては、シリアルROM30がアドレスビット長8ビットのメモリの場合の動作が示されている。SCKの8番乃至15番のパルスに同期してアドレスビット“0”がMOSIに8個供給されると、シリアルROM30は、アドレス0番地のデータ出力を開始する。この出力データがMISOに現れる“01001101”、即ち第1のキーワードである16進数“4D”である。SPIインターフェース21は、第1のタイミング(SCKの16番のパルス)を開始タイミングとしてMISOのデータをシリアルに受信する。この第1のタイミングはSPIインターフェース21が所定のビット長(8ビット)のアドレスを送信した場合に当該アドレスに応じたデータを受信する筈のタイミングである。このようにして受信したリードデータが第1のキーワード“4D”に一致する場合には、図7においてブートアップ処理はステップS8に進む。
リードデータが第1のキーワードに一致しない場合(ステップS5でNOの場合)には、ブートアップ処理はステップS6に進む。ステップS6で、チェック回数をカウントするチェックカウント値CHK_CNTを1増加させる。なおチェックカウント値CHK_CNTは、初期値0に初期設定されている。ステップS7で、チェックカウント値CHK_CNTが3以下か否かを判定する。なおここで3以下か否かを判定しているのは、アドレスビット長として3通りのビット長が有り得る構成の場合を例示しているからである。アドレスビット長としてn通りのビット長が有り得るのであれば、チェックカウント値CHK_CNTがn以下か否かを判定することになる。
チェックカウント値CHK_CNTが3以下の場合、ステップS4に戻り、SPIインターフェース21がシリアルROM30からリードデータを再度受信する。最初(CHK_CNT=0の時)のリードデータの受信は、第1のタイミング(SCKの16番のパルス)を開始タイミングとしたデータ受信であった。それに対して今回(CHK_CNT=1の時)のリードデータの受信は、第2のタイミング(SCKの24番のパルス)を開始タイミングとしたデータ受信である。
この第2のタイミングから受信したリードデータが第1のキーワードに一致しない場合(ステップS5でNOの場合)には、ブートアップ処理は再度ステップS6に進む。ステップS6で、チェック回数をカウントするチェックカウント値CHK_CNTを1増加させる。ステップS7で、チェックカウント値CHK_CNTが3以下か否かを判定する。チェックカウント値CHK_CNTが3以下の場合、ステップS4に戻り、SPIインターフェース21がシリアルROM30からリードデータを再度受信する。今回(CHK_CNT=2の時)のリードデータの受信は、第3のタイミング(SCKの32番のパルス)を開始タイミングとしたデータ受信である。
図9は、データ読出し動作の一例を示す図である。図9に示すのは、シリアルROM30がアドレスビット長24ビットのメモリの場合である。SCKの8番乃至15番のパルスに同期してアドレスビット“0”がMOSIに8個供給されても、シリアルROM30は、アドレス0番地のデータ出力を開始しない。SCKの8番乃至23番のパルスに同期してアドレスビット“0”がMOSIに16個供給されても、シリアルROM30は、アドレス0番地のデータ出力を開始しない。それに対して、SCKの8番乃至31番のパルスに同期してアドレスビット“0”がMOSIに24個供給されると、シリアルROM30は、アドレス0番地のデータ出力を開始する。この出力データがMISOに現れる“01001101”、即ち第1のキーワードである16進数“4D”である。SPIインターフェース21は、第3のタイミング(SCKの32番のパルス)を開始タイミングとしてMISOのデータをシリアルに受信する。このようにして受信したリードデータが第1のキーワード“4D”に一致する場合には、図7においてブートアップ処理はステップS8に進む。
ステップS8で、SPIインターフェース21がシリアルROM30からリードデータを受信する。ここで受信するデータは、SPIインターフェース21がシリアルに受信するデータが第1のキーワード“4D”に一致したタイミング(図9の例であればSCKの32番のパルス)の次のタイミング(SCKの40番のパルス)で受信するデータである。次にステップS9で、リードデータが16進数“42”(第2のキーワード)に一致するか否かを判定する。リードデータが第2のキーワードに等しい場合は、次のステップS10に進む。ステップS10で、SPIインターフェース21がシリアルROM30から後続のリードデータを受信する。ステップS11で、リードデータが16進数“38”(第3のキーワード)に一致するか否かを判定する。リードデータが第3のキーワードに等しい場合は、次のステップS12に進む。ステップS12で、SPIインターフェース21がシリアルROM30から後続のリードデータを受信する。ステップS13で、リードデータが16進数“36”(第4のキーワード)に一致するか否かを判定する。リードデータが第4のキーワードに等しい場合は、次のステップS14に進む。
ステップS14で、SPIインターフェース21がシリアルROM30から後続のデータを取り込み、必要なブートアップ処理を実行する。即ち、シリアルROM30において先頭のキーワードに続いて格納されているファームウェアのプログラムを、SPIインターフェース21が順次読み込んで、RAMインターフェース24を介してRAM26に格納する。ファームウェアのRAM26へのダウンロードが終了すると、ブートプログラムからファームウェアへの制御移管が行われる。具体的には、制御CPU23は、RAM26中のファームウェアの実行開始アドレスにプログラムカウンタを設定して、ファームウェアの実行を開始する。このファームウェアの実行により、符号化・復号化等の所望の情報処理を行なう。
1つでもキーワードが正しく読み出されなかった場合(即ちステップS7、S9、S11、又はS13でNOの場合)には、ステップS15に進む。ステップS15では、図5に示す情報処理装置20のエラー端子を介して外部にエラー発生を通知する。具体的には、エラー端子の信号レベルを所定のアサート状態に設定することにより、エラー発生を通知する。その後、ブートアップ処理を中断して処理を終了する。
図7に示すフローチャートと図4に示す従来の処理のフローチャートとを比較すれば分かるように、図7に示す動作では、ステップS5のNO判定の場合にステップS4に戻るループが設けられたのみである。即ち、図7に示す動作では、あるアドレスモード(例えばアドレスビット長が16)の場合においてブートアップ処理に要する処理サイクル数は、16ビットのアドレス長に専用の固定的な構成におけるブートアップ処理に要する処理サイクル数と同一である。なお図7に示す制御フローは、ブートROM22に格納されたブートアップ用プログラムで制御することが可能であり、またハードウェア制御回路によって実現することも可能である。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
なお本願開示は以下の内容を含むものである。
(付記1)
アドレスの各ビットをシリアルに送信し、データの各ビットをシリアルに受信するシリアルインターフェースと、
起動プログラムを格納するブートメモリと、
起動時に前記起動プログラムを実行して起動時処理を行なう制御回路と、
を含み、前記制御回路は、前記起動時処理において、第1のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが所定のデータに一致するか否かを判断し、データ不一致の場合には、第2のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かを判断することを特徴とする情報処理装置。
(付記2)
前記制御回路は、前記起動時処理において、前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かの判断を、順次異なる開始タイミングで受信する受信データに対して繰り返すことを特徴とする付記1記載の情報処理装置。
(付記3)
前記制御回路は、前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致したタイミングから以降のデータを必要なデータとして順次読み込むことを特徴とする付記1又は2記載の情報処理装置。
(付記4)
前記制御回路は、前記起動時処理において、前記シリアルインターフェースから固定のビット値をアドレスとして送信し続けることを特徴とする付記1乃至3のいずれか一項記載の情報処理装置。
(付記5)
前記アドレスの取り得るビット長として第1のビット長と第2のビット長との少なくとも2つがあり、前記第1のタイミングは前記シリアルインターフェースが前記第1のビット長のアドレスを送信した場合に該アドレスに応じたデータを受信するタイミングであり、前記第2のタイミングは前記シリアルインターフェースが前記第2のビット長のアドレスを送信した場合に該アドレスに応じたデータを受信するタイミングであることを特徴とする付記1乃至4いずれか一項記載の情報処理装置。
(付記6)
アドレスの各ビットをシリアルに送信し、データの各ビットをシリアルに受信するシリアルインターフェースと、起動プログラムを格納するブートメモリと、起動時に前記起動プログラムを実行して起動時処理を行なう制御回路とを含む情報処理装置において、
第1のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが所定のデータに一致するか否かを判断し、
前記判断の結果がデータ不一致の場合には、第2のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かを判断し、
前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致したタイミングから以降のデータを必要なデータとして順次読み込む
各段階を含むことを特徴とするダウンロード制御方法。
(付記7)
前記シリアルインターフェースから固定のビット値をアドレスとして送信し続けることを特徴とする付記6記載のダウンロード制御方法。
SPIプロトコルのインターフェースの概略構成を示す図である。 アドレスビット長が8ビットの場合のデータ読出し動作の一例を示す図である。 アドレスビット長が24ビットの場合のデータ読出し動作の一例を示す図である。 アドレスのビット長が固定の場合のブートアップ処理の流れの一例を示すフローチャートである。 シリアルROMからファームウェアをダウンロードする情報処理装置の構成の一例を示す図である。 シリアルROMの格納データの一例を示す図である。 情報処理装置のブートアップ処理の流れを示すフローチャートである。 データ読出し動作の一例を示す図である。 データ読出し動作の一例を示す図である。
符号の説明
20 情報処理装置
21 SPIインターフェース
22 ブートROM
23 制御CPU
24 RAMインターフェース
25 内部バス
26 RAM
30 シリアルROM

Claims (4)

  1. アドレスの各ビットをシリアルに送信し、データの各ビットをシリアルに受信するシリアルインターフェースと、
    起動プログラムを格納するブートメモリと、
    起動時に前記起動プログラムを実行して起動時処理を行なう制御回路と、
    を含み、前記制御回路は、前記起動時処理において、第1のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが所定のデータに一致するか否かを判断し、データ不一致の場合には、第2のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かを判断し、
    前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致したタイミングから以降に前記シリアルインターフェースがシリアルに受信する複数所定個のデータのそれぞれが、該複数所定個に等しい個数のキーワードに一致するか否かを判断し、該判断の結果1つでもデータが一致しない場合には、前記起動時処理を中断する
    ことを特徴とする情報処理装置。
  2. 前記制御回路は、前記起動時処理において、前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かの判断を、順次異なる開始タイミングで受信する受信データに対して繰り返すことを特徴とする請求項1記載の情報処理装置。
  3. 前記制御回路は、前記起動時処理において、前記シリアルインターフェースから固定のビット値をアドレスとして送信し続けることを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記アドレスの取り得るビット長として第1のビット長と第2のビット長との少なくとも2つがあり、前記第1のタイミングは前記シリアルインターフェースが前記第1のビット長のアドレスを送信した場合に該アドレスに応じたデータを受信するタイミングであり、前記第2のタイミングは前記シリアルインターフェースが前記第2のビット長のアドレスを送信した場合に該アドレスに応じたデータを受信するタイミングであることを特徴とする請求項1乃至いずれか一項記載の情報処理装置。
JP2008208922A 2008-08-14 2008-08-14 情報処理装置 Expired - Fee Related JP5251353B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008208922A JP5251353B2 (ja) 2008-08-14 2008-08-14 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008208922A JP5251353B2 (ja) 2008-08-14 2008-08-14 情報処理装置

Publications (2)

Publication Number Publication Date
JP2010044638A JP2010044638A (ja) 2010-02-25
JP5251353B2 true JP5251353B2 (ja) 2013-07-31

Family

ID=42015962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008208922A Expired - Fee Related JP5251353B2 (ja) 2008-08-14 2008-08-14 情報処理装置

Country Status (1)

Country Link
JP (1) JP5251353B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8614920B2 (en) 2012-04-02 2013-12-24 Winbond Electronics Corporation Method and apparatus for logic read in flash memory
JP5467134B1 (ja) * 2012-09-27 2014-04-09 華邦電子股▲ふん▼有限公司 フラッシュメモリ装置およびメモリ装置の操作方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3985614B2 (ja) * 2002-07-12 2007-10-03 エプソントヨコム株式会社 シリアルメモリの自動判別方法
JP4374416B2 (ja) * 2003-03-04 2009-12-02 ネッツエスアイ東洋株式会社 Spiメモリのアクセスモード自動判別方法と判別装置

Also Published As

Publication number Publication date
JP2010044638A (ja) 2010-02-25

Similar Documents

Publication Publication Date Title
US10007628B2 (en) Dynamically adjustable multi-line bus shared by multi-protocol devices
US20190146944A1 (en) Dynamically adjustable multi-line bus shared by multi-protocol devices
RU2402804C2 (ru) Способ загрузки хостового устройства из устройства mmc/sd, хостовое устройство, загружаемое из устройства mmc/sd, и устройство mmc/sd, из которого может быть загружено хостовое устройство
TW201915756A (zh) 主從式系統、指令執行方法與資料存取方法
US6810444B2 (en) Memory system allowing fast operation of processor while using flash memory incapable of random access
CN112947977B (zh) 一种软件在线升级方法及系统
CN115858431A (zh) 数据传输控制方法、控制器及电子设备
JP2005128747A (ja) シリアル転送バス用の送受信マクロを有する集積回路装置
JP5251353B2 (ja) 情報処理装置
KR101197152B1 (ko) 전자장치와 이를 포함하는 전자장치 시스템 및 그 제어방법
JP2007299227A (ja) 情報処理装置及び情報処理装置のブート方法
US6981109B2 (en) Digital signal processor system having programmable random access memory that executes processing during downloading of a program
EP3459189B1 (en) Communication apparatus, communication method, program, and communication system
CN110737480B (zh) 一种串口驱动程序复用方法和装置
KR20050046932A (ko) i2C 버스를 이용한 슬레이브 장치들의 상태 검사 시스템
JP2009110335A (ja) 半導体装置及びデータ処理システム
JP2019074820A (ja) メモリ制御装置
JP2001357023A (ja) 半導体集積回路及びそれに内蔵された不揮発性メモリへの書き込み方法
EP0640925B1 (en) Data processing system having serial interface
US20010023481A1 (en) Processor that executes control signals included in operand section of control instruction
CN106445571B (zh) 主机板及开机的方法
TWI845251B (zh) 串列週邊介面操作模式同步的方法與串列週邊介面匯流排同步設備
JP4507888B2 (ja) マイクロコンピュータ
JP2024000983A (ja) Spiホストとspiデバイスの間のspi動作モード同期の方法、およびspiバス同期装置
JP3588951B2 (ja) マイクロコンピュータのプログラム変更装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130401

R150 Certificate of patent or registration of utility model

Ref document number: 5251353

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees