JP2019074820A - メモリ制御装置 - Google Patents
メモリ制御装置 Download PDFInfo
- Publication number
- JP2019074820A JP2019074820A JP2017198933A JP2017198933A JP2019074820A JP 2019074820 A JP2019074820 A JP 2019074820A JP 2017198933 A JP2017198933 A JP 2017198933A JP 2017198933 A JP2017198933 A JP 2017198933A JP 2019074820 A JP2019074820 A JP 2019074820A
- Authority
- JP
- Japan
- Prior art keywords
- mode
- command
- srom
- serial flash
- flash rom
- 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
Links
Landscapes
- Memory System (AREA)
- Retry When Errors Occur (AREA)
Abstract
【課題】状態不一致により読み出しができないという不都合を解消すること。【解決手段】ビット幅1の通常モード以外に、複数の通信ビット幅モードおよび、コマンド省略モードを有し、ソフトリセットコマンドに対応し、コマンド省略モードを抜けるための特定のビット列が定義された、シリアルフラッシュロムの制御装置であって、動作モードを把握できない状態になった場合には、特定のビット列と、ソフトリセットコマンドを、ビット幅の大きなモードから小さなモードへ切り替えながら順次シリアルフラッシュへ送信する初期コマンドシーケンスを実行する事で、シリアルフラッシュロムをビット幅1の通常モード状態に確定させ、シリアルフラッシュロムのデータを通常モードで読みだすように制御することを特徴とする。【選択図】図1
Description
本発明は、メモリ制御装置に関する。
近年のシリアルフラッシュROM(以下、SROMと記す)には、読出しパフォーマンス向上のためのコマンドや動作モード(以下、ハイパフォーマンスモードと記す)が存在する。例えば、Fast Read Quad I/O コマンドのPerformance Enhance Mode(Continuous Read Modeと呼ぶROMメーカもある)がこれに該当する。
通常、SROMに対してリードを行う際には、コマンドを発行後にアドレスを発行することによって、所定のサイクル後にSROMからデータが出力される。これに対して、Performance Enhance Modeにおいては、コマンドの発行は初回のリード時のみでよく、以降はコマンドの発行を省略して、アドレスのみを発行することによって、リードが可能となる。ここで、Performance Enhance Modeによってリードを行っている期間に、SROMに対して別のコマンドを発行する場合、Performance Enhance Modeを一旦終了した後に、別のコマンドを発行する必要がある。終了させる方法は2通りあり、一つは、SROMに対してPerformance Enhance Mode Resetコマンド(Continuous Read Mode Resetコマンドと呼ぶROMメーカもある)を発行する方法である。もう一つは、SROM自体をリセットする方法で、SROMに対してReset Enableコマンド(Enable Resetコマンドと呼ぶROMメーカもある)を発行後、Resetコマンドを発行する方法である。
また、ROMのデータ読み出し時に使用されるアドレスは、通常時には3バイトのアドレス情報が使用される。しかしながら、近年のROMでは、アドレス3バイトではROMの容量に対してアドレスが不足するため、4バイトのアドレス指定を行わなければならないROMも存在する。このような場合には、SROMのコンフィグレーションレジスタを書き換えるコマンドを使用して、アドレスを3バイトモードから、4バイトモードに変更する手順が必要になる。また逆にアドレス4バイトモードから3バイトへ戻す場合にも同様に、ROMのレジスタを書き換えるか、Resetコマンドを発行してやる必要がある。
ハイパフォーマンスモードについてさらに一例を挙げると、Quad SPI Modeと呼ばれる動作モードをサポートするROMメーカがある。通常、SROMに対する「コマンド」発行は、1本のデータ線を使用して行う(以下、このモードを通常モードと記す)が、Quad SPI Modeにおいては、4本のデータ線を使用して行う。このため、8ビットのコマンド発行に要するサイクル数は、通常モードにおいては8サイクルだが、Quad SPI Modeにおいては2サイクルで済む。ただし、Quad SPI Modeにおいては、通常モードによるコマンド発行はサポートされておらず、何らかの要因のために、通常モードでコマンド発行をする場合には、Quad SPI Modeを一旦終了した後に、通常モードによるコマンド発行をする必要がある。終了する方法は2通りあり、一つは、SROMのコンフィグレーションレジスタの設定を変更し、動作モードを通常モード(Extended SPI Modeと呼ぶROMメーカもある)に変更する方法である。もう一つは、SROM自体をリセットする方法で、前述と同様の方法である。
このようなプログラムが格納されているROMにアクセスするためのバスに障害が発生した場合に、異常を検知して、異常から復帰するための手段が開示されている(特許文献1)。
しかしながら、SROMには各社、各種様々な物が存在し、リセット端子を持たないSROMも存在する。SROMを使用する制御装置において、バスの障害等から復帰させるために制御装置自体がリセットされた場合には、SROMコントローラもリセットされ、初期状態の通常読み出しモードでSROMからのリードを再開しようとするが、一方のSROMにはリセット端子がないため、ハイパフォーマンスモードのまま、例えばQuad SPI Modeのままである可能性がある。このような場合、SROMコントローラは通常モードで読みだそうとするため、モードの不一致により、SROMのデータが読み出せず、再起動処理が動作しないという不都合が生じる可能性がある。
上記の課題を解決するために、本発明に係るメモリ制御装置は、
ビット幅1の通常モード以外に、複数の通信ビット幅モードおよび、コマンド省略モードを有し、ソフトリセットコマンドに対応し、コマンド省略モードを抜けるための特定のビット列が定義された、シリアルフラッシュロムと、
前記シリアルフラッシュロム制御に対応したシリアルフラッシュロムコントローラを備えるメモリ制御装置であって、
シリアルフラッシュロムコントローラが、シリアルフラッシュロムの動作モードを把握できない状態になった場合には、上記特定のビット列と、ソフトリセットコマンドを、ビット幅の大きなモードから小さなモードへ切り替えながら順次シリアルフラッシュへ送信する初期コマンドシーケンスを実行する事で、シリアルフラッシュロムをビット幅1の通常モード状態に確定させ、シリアルフラッシュロムのデータを通常モードで読みだすように制御することを特徴とする。
ビット幅1の通常モード以外に、複数の通信ビット幅モードおよび、コマンド省略モードを有し、ソフトリセットコマンドに対応し、コマンド省略モードを抜けるための特定のビット列が定義された、シリアルフラッシュロムと、
前記シリアルフラッシュロム制御に対応したシリアルフラッシュロムコントローラを備えるメモリ制御装置であって、
シリアルフラッシュロムコントローラが、シリアルフラッシュロムの動作モードを把握できない状態になった場合には、上記特定のビット列と、ソフトリセットコマンドを、ビット幅の大きなモードから小さなモードへ切り替えながら順次シリアルフラッシュへ送信する初期コマンドシーケンスを実行する事で、シリアルフラッシュロムをビット幅1の通常モード状態に確定させ、シリアルフラッシュロムのデータを通常モードで読みだすように制御することを特徴とする。
本発明に係るメモリ制御装置によれば、状態不一致により読み出しができないという不都合を解消できる。
以下に、添付図面を参照して本発明を実施するための形態について詳細に説明する。以下に説明する実施の形態は、本発明の実現するための一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
(実施例1)
メモリ制御装置の構成の一部を図1に示す。
メモリ制御装置の構成の一部を図1に示す。
図1において、符号101はCPU、符号102はシリアルフラッシュロムコントローラ(SROMコントローラ)、符号103はシリアルフラッシュロム(SROM)、符号104はバスである。符号103のSROMには制御装置の制御プログラムが格納されており、符号101のCPUが符号104のバス、符号102のSROMコントローラを介して、前期制御プログラムを読み出し、実行する事で、制御装置が動作する。プログラムの読み出しは、CPU101がバス104に対し、アドレス、読み出しサイズ等を含む制御情報とともにReadトランザクションを発生させ、トランザクションを受けたSROMコントローラ102がSROMにリードコマンドを発行し、読み出しサイズ分SROMからプログラムを読み出し、バスを介してCPUにプログラムを渡す。
符号105はリセット回路であり、ユーザの指示や、制御装置内の図示はしないウォッチドッグタイマから、タイマの満了を受けて、制御装置内にリセット信号を供給する機能を有する。図1の場合、符号101、102、104の各ブロックにリセット信号を供給するが、符号103のSROMにはリセット端子がないため、リセット信号は供給しない。
符号106は内蔵ROMであり、SROMから読み出しを開始する前に、CPUが実行する処理プログラムが格納されている。本実施例では初期コマンドシーケンス処理が内蔵ROMに格納されているが、その処理の詳細については後述する。
符号102のSROMコントローラと、符号103のSROMの間は、SROMコントローラからSROM方向へのCS(チップセレクト信号)、CLK(クロック)信号、双方向のDI/IO0、DO/IO1、WP#/IO2、HOLD#/IO3信号で接続される。/で記載している信号は、SROMコントローラおよびSROMの動作モードによって機能が変わる信号である。信号の詳細については後述する。
ここで、SROMからのプログラム(データ)読み出し方法について、最も基本となる方法について説明する(図2(a))。この読み出し方法は、SROMであれば必ず対応しているSingle SPIモードを使用した読み出し方法であり、制御装置が起動し、従来のSROMコントローラが読み出し動作を開始する際の初期読み出し方法である。
SROMから読み出しを行う際には、まずSROMコントローラはCS信号(符号201)をSROMに対してアサートし、クロック(符号202)を発生させ、このクロックに同期して1バイトのコマンド(符号203)と3バイトのアドレス(符号204)を、DI信号として32クロックかけてSROMに送信する。詳細は後述するが、データの読み出しにおいても様々なコマンドが存在し、また、コマンド自体が省略される場合もあるが、初期読み出しでは最も基本となるRead(0x03)コマンドが使用される。またアドレスについても、容量が大きいROMの場合には3バイトのアドレスでは不足するため、4バイトのアドレスが使用される場合もある。これらについては後述する。
Readコマンドと3バイトアドレスを受けたSROMは、要求のあったアドレスに対応するデータをクロック信号に同期してDO信号として送出する(符号205)。読み出しデータのサイズはCSのアサート期間とクロックできまり、CSアサートとクロックが続く限り、連続データ(アドレス増加方向)として信号DOに送出される。CSがデアサートされ、再度アサートされた際には、コマンドフェーズから開始されるが、逆に言うと、CSのアサートが続く限り、クロックに同期して連続データを読み続ける事ができる(その間、クロック中断、再開でデータの送出を中断、再開させる事ができる)。
先にも述べたが、データの読み出しには、プロトコル、コマンド等様々な物があり、例えば本実施例のSROMコントローラは図3のような読み出しモードに対応している。ただし、接続されるSROMについては、各メーカ、各品種により、対応していないモードも存在する。これらのモードはデータの読み出しパフォーマンスを上げるためのもので、コマンド、アドレス、データの伝送に使用する信号数を2、4本(Dual、 Quad)と増やしたり、コマンドを省略する(enhanced mode)事で、オーバヘッドを小さくしたりする手段が取られている。
図3の中から、Quad SPIプロトコルの Fast Read Quad I/Oコマンドを使用した例について説明する(図2(b)、(c))。
まず、Quad SPIプロトコルを使用してデータを読み出すためには、SROMをQuad SPIモードに入れてやる必要がある。そのためにSROMコントローラはSPIプロトコルで、例えばWrite Nonvolatile Configuration Registerコマンド(0xb1)を用いて、Nonvolatile Configuration Registerの特定ビットを書き換え、Quad SPIモードに変更する。具体的にはSROMコントローラから、DI信号で、コマンド0xB1とライトレジスタ値(8bit)を送出する事で、レジスタを書き換える(Quad SPIモードへの変更方法はSROMにも依存するため、必ずしも上記手段で変更するとは限らない)。
Quad SPIモードに遷移したSROMコントローラはCS信号(符号211)をSROMに対してアサートし、クロック(符号212)を発生させ、このクロックに同期して1バイトのコマンド(Fast Read Quad I/O、 0xEB)を4bit、2クロックで送出する(符号206、Single SPIモードにおける DI,DO,WP#,HOLD#信号は、Quad SPIモードではIO0,IO1,IO2,IO3信号として使用され、通信用に4bitの信号が利用可能になる)。Quad I/Oコマンドでは、アドレスも4bit、6クロックで総出される(符号207)。
また本実施例におけるSROMは、Fast Readコマンドでは、高速なクロックを使用する事ができるが、アドレスフェーズと、データフェーズの間に、ダミーフェーズを挿入する必要がある。このダミーフェーズのクロック数はクロックの周波数やSROMに依存する。またダミーフェーズのクロック数は、Fast Readコマンドを開始する前にSROMのレジスタに設定する必要があり、例えば前出のWrite Nonvolatile Configuration Registerコマンドを用いて設定する(ダミークロック数の変更方法もSROMに依存するため、必ずしも上記手段で変更するとは限らない)。
さらに本実施例におけるSROMでは、上記ダミークロックの最初の2クロック(=8bit)を使用して、Performance Enhance Indicatorを挿入する。このIndicatorは、次のトランザクション(次のCSアサート期間)がEnhancedモードで行われるかどうかを示す。Enhancedモードを示していた場合、次のトランザクションでは、コマンドフェーズが省略され、前のトランザクション(つまり、本トランザクション)で用いられたコマンドが繰り返されたものとして動作する。例えば図2(b)において、IndicatorにEnhancedモードを示すコードが入っていた場合、つぎのトランザクションである図2(c)のでは、コマンドフェーズが省略され、アドレスフェーズから開始される(符号210)。Indicatorは、0xA5がEnhancedモードを示しており(SROMの仕様に依存するが、0x00や0xFFなど全bitが同じ値をIndicatorとして使用する事はない)、それ以外の場合は、非Enhancedモードと解釈される。
図2(a)、(b)、(c)を比較すると、(a)のReadコマンド(Single SPIモード)では、48クロックかけて2バイトのデータをリードし、(b)、(c)ではそれぞれ48クロックかけて17バイト、18バイトリードしている事がわかる。このように、SPIモードやコマンドに依存して、データの読み出しパフォーマンスが大きく変わる事がわかる。
ここで、先に少し触れた4バイトアドレスについて説明する。
16MB以上の容量のSROMでは、3バイトのアドレスではSROM容量に対してアドレスが不足するため、そのようなSROMは、4バイトアドレスモードに対応している。対応方法はSROMに依存するが、たとえば、それぞれの読み出しコマンドに3バイト、4バイト用のコマンドが使用されるものもある(図3符号304、305)。例えば先にあげたReadコマンドであれば、3バイトアドレスを使用する場合には、コマンド値0x03を使用し、4バイトアドレスを使用する場合には、0x13を使用する。当然ながら、4バイトアドレスモードの場合には、コマンドの後に続くアドレスは、32クロックかけて4バイトのアドレスを送出する。同様にFast Read Quad I/O コマンドであれば、3バイトアドレスを使用する場合には、0xEB、4バイトアドレスを使用する場合には0xECを使用する。
4バイトアドレスを使用する場合には、アドレスフェーズに必要なクロック数が増加するため、読み出しのためのオーバヘッドが増える事になり、読み出しパフォーマンスとしては不利である。例えば図2(a)のReadコマンドを使用した場合には、さらに8クロックがアドレスフェーズに必要になるため、48クロックかけて1バイトの読み出ししかできず、(b)、(c)ではそれぞれ2クロックのアドレスフェーズの増加があるため、それぞれ16、17バイトのリードとなる。
次に図3の読み出しモード一覧において、SROMの状態(CSがデアサートされている間の待機状態)を、状態A〜Gで分類する(符号302)。それぞれの状態の説明は以下の通りである。
状態A:1ビット8クロックのコマンドを待機している状態
どのようなSROMでもこの状態を有している(初期状態)
状態B:2ビット12クロックまたは16クロックのアドレスと、
それに続いて2ビット4クロックのIndicatorを待機している状態
(enhanced)
状態C:4ビット6クロックまたは8クロックのアドレスと、
それに続いて4ビット2クロックのIndicatorを待機している状態
(enhanced)
状態D:2ビット4クロックのコマンドを待機している状態、
Dual SPIモード
状態E:2ビット12クロックまたは16クロックのアドレスと、
それに続いて2ビット4クロックのIndicatorを待機している状態
(enhanced)、 Dual SPIモード
状態F:4ビット2クロックのコマンドを待機している状態、
Quad SPIモード
状態G:4ビット6クロックまたは8クロックのアドレスと、
それに続いて4ビット2クロックのIndicatorを待機している状態
(enhanced)、 Quad SPIモード
ここで、何らかの理由により制御装置がリセットされた場合には、リセット回路105が各ブロックにリセット信号を供給する。従来例の課題に述べたように、SROM103はリセット端子を持たないため、状態はA〜Gのいずれかの状態を保持している。SROMコントローラ102がSROMのデータをリードするためには、SROMが状態A〜Gのいずれであるかを判別し、それに応じた読み出しを行う必要があるが、その状態の判別をする手段がない。
状態A:1ビット8クロックのコマンドを待機している状態
どのようなSROMでもこの状態を有している(初期状態)
状態B:2ビット12クロックまたは16クロックのアドレスと、
それに続いて2ビット4クロックのIndicatorを待機している状態
(enhanced)
状態C:4ビット6クロックまたは8クロックのアドレスと、
それに続いて4ビット2クロックのIndicatorを待機している状態
(enhanced)
状態D:2ビット4クロックのコマンドを待機している状態、
Dual SPIモード
状態E:2ビット12クロックまたは16クロックのアドレスと、
それに続いて2ビット4クロックのIndicatorを待機している状態
(enhanced)、 Dual SPIモード
状態F:4ビット2クロックのコマンドを待機している状態、
Quad SPIモード
状態G:4ビット6クロックまたは8クロックのアドレスと、
それに続いて4ビット2クロックのIndicatorを待機している状態
(enhanced)、 Quad SPIモード
ここで、何らかの理由により制御装置がリセットされた場合には、リセット回路105が各ブロックにリセット信号を供給する。従来例の課題に述べたように、SROM103はリセット端子を持たないため、状態はA〜Gのいずれかの状態を保持している。SROMコントローラ102がSROMのデータをリードするためには、SROMが状態A〜Gのいずれであるかを判別し、それに応じた読み出しを行う必要があるが、その状態の判別をする手段がない。
そこで、本発明の制御装置におけるCPU101は、リセット解除後のブート処理(図6)において、次のようなシーケンスでコマンドを発行する事で(初期コマンドシーケンス、符号S602)、SROMが状態A〜Gのいずれの状態であっても、状態Aにまで遷移させ、この状態から、最も単純なReadコマンドを使用して、データの読み出しを行う。初期コマンドシーケンスを実行するためのプログラムは、先にも述べた通り、内蔵ROM106に格納されている。
以下、初期コマンドシーケンス(図4(a))と、状態遷移の様子(図4(b))について詳細を説明する。
リセットが解除されると、CPU101は、内蔵ROM106に格納されたプログラムにより、初期コマンドシーケンスを開始する(符号S401)。これは即ち、CPUのリセットベクタが、内蔵ROMに配置されている事を意味する。初期コマンドシーケンスでは、SROMに対し、(1)4bit幅で 0000 を10clk分送出する。この時、図3の表において、SROMが状態Aだった場合には、1bit幅でコマンドを受信するが、8clk分の0を受信するため、コマンドとしては、0x00=NOPコマンドと解釈し、何も処理せず、状態Aのままとなる(符号411)。SROMが状態D、状態Fだった場合には、それぞれ2bit幅、4bit幅でコマンドを受信するが、同様に0x00=NOPコマンドとして解釈するため、状態D、状態Fのままとなる(符号414、416)。SROMが状態B、Eだった場合には、2bit幅でアドレスを受信するが、10clk 20bitの受信となるため、アドレスとしては不足する。(アドレス3バイトモードでは24bit、4バイトモードでは32bit必要)そのため、NOP扱いとなり、状態B、Eにとどまる(符号412、符号415)。SROMが状態C、Gだった場合には、4bit幅でアドレスを受信する。3バイトアドレスモード、4バイトアドレスモードだった場合、それぞれ、アドレス0x000000、0x00000000と認識される。続いてダミークロックフェーズに入るが、状態C、Gであるため、最初の1バイト分はIndicatorとして認識されるが、Indicatorは0x00であるため、本トランザクション完了後には、Enhanceモードから通常モードに遷移する。すなわち、状態Cは状態Aに遷移し(符号413)、状態Gは状態Fに遷移する事となる(符号417)。以上より、(1)実施後のSROMの状態としては、状態A、B、D、E、Fが存在する事になる。
次にSROMコントローラから、(2)4bit幅でReset Enableコマンド(0x66)、次にResetコマンド(0x99)を、それぞれ2clkずつで送出する(符号S402)。SROMが状態Fの場合には、4bitでコマンドを受けられる状態のため、Reset Enable、Resetコマンドをそれぞれ認識し、初期状態である状態Aに遷移する(符号416)。その他の状態A、B、D、Eでは、2clkずつの受信では、コマンド、アドレスとしては認識できないため、NOP扱いとなり、そのままの状態にとどまる(符号411、412、414、415)。以上より、(2)実施後のSROMの状態としては、状態A、B、D、Eが存在する事になる。
続いてSROMコントローラから、(3)2bit幅で 00 を20clk分送出する(符号S403)。SROMが状態B、Eの場合には、Enhance状態のため、2bit幅で受信したデータを、アドレスおよびIndicatorとして認識する。Indicatorが0x00であるため、本トランザクション完了後には、Enhanceモードから通常モードに遷移する。すなわち、状態Bは状態Aに遷移し(符号412)、状態Eは状態Dに遷移する(符号414)。その他の状態A、Dでは、受信データをNOPコマンドと認識するため、状態は遷移しない(符号411、414)。以上より、(3)実施後のSROMの状態としては、状態A、Dが存在する事になる。
次にSROMコントローラから、(4)2bit幅でReset Enableコマンド(0x66)、次にResetコマンド(0x99)を、それぞれ4clkずつで送出する(符号S404)。SROMが状態Fの場合には、2bitでコマンドを受けられる状態のため、Reset Enable、Resetコマンドをそれぞれ認識し、初期状態である状態Aに遷移する(符号414)。状態Aでは、4clkずつの受信では、コマンドとしては認識できないため(8clkずつ必要)、NOP扱いとなり状態Aにとどまる。以上より、(4)実施後のSROMの状態としては、状態Aのみが存在する事になる。
初期コマンドシーケンスを完了したCPU101は、リセットリカバリ時間として200msのウェイト後(符号S602)、ブートのためにSROMのReadを開始する(ブートプログラムの読み出し)。CPU101からReadトランザクションを受けたSROMコントローラは、Single SPIモードで、Readコマンドを発行する事で、SROMからプログラムやデータを読み出す事ができ、SROMに格納された起動処理を実行することでブート処理を継続する(符号S603以降)。
以上、説明したように、本実施形態のメモリ制御装置では、起動時にCPUが内蔵ROMに格納されたプログラムによる初期コマンドシーケンスを実行する事で、どんな状態のSROMであっても、通常モードに遷移させる事で、プログラムやデータの読み出しを行う事ができる。
(実施例2)
実施例1では図4(a)のような初期コマンドシーケンスを使用したが、初期コマンドシーケンスとしては、図5のようなシーケンスを用いても良い。実施例1と異なる部分は、(1)、(3)で送出する値が、all 0から all 1に変わっている。このように変更しても、コマンドとしては0xFFは未定義のコマンドであるため、0x00と同様にNOPとして解釈される。また、Indicatorとしても0xFFの場合、次のトランザクションではEnhancedモードから解除されるため、図4と同等の効果がある。
実施例1では図4(a)のような初期コマンドシーケンスを使用したが、初期コマンドシーケンスとしては、図5のようなシーケンスを用いても良い。実施例1と異なる部分は、(1)、(3)で送出する値が、all 0から all 1に変わっている。このように変更しても、コマンドとしては0xFFは未定義のコマンドであるため、0x00と同様にNOPとして解釈される。また、Indicatorとしても0xFFの場合、次のトランザクションではEnhancedモードから解除されるため、図4と同等の効果がある。
(実施例3)
実施例1、2においては、制御装置の起動時に必ず初期コマンドシーケンスを実行し、それに伴いリセットリカバリのためのウェイト時間が発生し、制御装置の起動が遅くなってしまう。これを回避するために、本実施例の制御装置では、以下のような起動処理を行う(図7)。
実施例1、2においては、制御装置の起動時に必ず初期コマンドシーケンスを実行し、それに伴いリセットリカバリのためのウェイト時間が発生し、制御装置の起動が遅くなってしまう。これを回避するために、本実施例の制御装置では、以下のような起動処理を行う(図7)。
ブートを開始すると、CPU101はリセットベクタの配置された内蔵ROMのプログラムにより、すぐにSingle SPIモードでSROMの読み出しを開始する(符号S702)。SROMの読み出しが正常に行えた場合には、SROMに格納されている起動処理が実行される(符号S703)。万が一、SROMのモードがSingle SPIモードと一致しておらず、SROMに格納されたプログラムやデータが正しく読み出せなかった場合には、プログラムがデコードできないために発生する未定義命令例外や、無効なアドレスを参照したために発生するデータアボート例外等のエラー例外が発生する。この時、本実施例ではリセットベクタと同様にエラー例外ベクタについても内蔵ROMに配置されているため、内蔵ROMに格納されたエラー例外処理が実行される(符号S706)。
エラー例外処理では、実施例1、2で説明した初期コマンドシーケンスが実行され、SROMとSROMコントローラのモードを初期状態で一致させ、読み出しが可能な状態に修正される。その後、リセットリカバリのためにウェイトが行われ(符号S708)、符号S702の処理に戻る。この時、SROMの読み出しはSingle SPIモードで可能な状態になっているため、ふたたびエラー例外が発生する事はなく、符号S703以降の処理が実行される。
正常に起動処理が進んだ場合には、符号S704で、例外ベクタ領域をROMからSROMへ移動させる処理が行われる(符号S704)。これにより、これ以降にエラー例外が発生した場合には、符号S706のエラー例外処理ではなく、符号S709のエラー例外処理が実行される。この時点では、SROMの読み出しは問題ないはずのため、例えばバスのエラー復帰処理等のエラー例外処理を実行する事になる(符号S710)。
このように本実施例においては、実施例1、2とは異なり、通常の起動処理においては初期コマンドおよび、それに伴うリセットリカバリのためのウェイトが発生しないため、起動が遅くなるという問題が発生しない。
101 CPU、
102 シリアルフラッシュロムコントローラ(SROMコントローラ)、
103 シリアルフラッシュロム(SROM)、
104 バス
102 シリアルフラッシュロムコントローラ(SROMコントローラ)、
103 シリアルフラッシュロム(SROM)、
104 バス
Claims (6)
- ビット幅1の通常モード以外に、複数の通信ビット幅モードおよび、コマンド省略モードを有し、ソフトリセットコマンドに対応し、コマンド省略モードを抜けるための特定のビット列が定義された、シリアルフラッシュロムと、
前記シリアルフラッシュロム制御に対応したシリアルフラッシュロムコントローラを備えるメモリ制御装置であって、
シリアルフラッシュロムコントローラが、シリアルフラッシュロムの動作モードを把握できない状態になった場合には、上記特定のビット列と、ソフトリセットコマンドを、ビット幅の大きなモードから小さなモードへ切り替えながら順次シリアルフラッシュへ送信する初期コマンドシーケンスを実行する事で、シリアルフラッシュロムをビット幅1の通常モード状態に確定させ、シリアルフラッシュロムのデータを通常モードで読みだすように制御することを特徴とするメモリ制御装置。 - 前記シリアルフラッシュロムコントローラが、シリアルフラッシュロムの動作モードを把握できない状態とは、シリアルフラッシュロムコントローラのみハードウェアリセットされ、シリアルフラッシュロムはハードウェアリセットされなかった状態であること、を特徴とする請求項1に記載のメモリ制御装置。
- 前記特定のビット列とは、40ビット以上の0であることを特徴とする請求項1又は請求項2に記載のメモリ制御装置。
- 前記特定のビット列とは、40ビット以上の1であることを特徴とする請求項1又は請求項2に記載のメモリ制御装置。
- 起動から特定のフェーズまで起動処理が進むまでの間に、特定のエラー例外が発生した場合には、エラー例外処理として前記初期コマンドシーケンスを実行し、再度起動処理の最初から再開することを特徴とする請求項1乃至請求項4の何れか一項に記載のメモリ制御装置。
- 前記特定のフェーズまで起動処理が進んだ以降に、例外ベクタを別領域に切り替えることで、エラー例外が発生したとしても、エラー例外処理として前記初期コマンドシーケンスは実行しないように制御することを特徴とする請求項5に記載のメモリ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017198933A JP2019074820A (ja) | 2017-10-13 | 2017-10-13 | メモリ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017198933A JP2019074820A (ja) | 2017-10-13 | 2017-10-13 | メモリ制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019074820A true JP2019074820A (ja) | 2019-05-16 |
Family
ID=66544093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017198933A Pending JP2019074820A (ja) | 2017-10-13 | 2017-10-13 | メモリ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019074820A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925010A (zh) * | 2022-05-23 | 2022-08-19 | 中国电子科技集团公司第五十八研究所 | 一种Quad SPI转AXI接口的方法 |
-
2017
- 2017-10-13 JP JP2017198933A patent/JP2019074820A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925010A (zh) * | 2022-05-23 | 2022-08-19 | 中国电子科技集团公司第五十八研究所 | 一种Quad SPI转AXI接口的方法 |
CN114925010B (zh) * | 2022-05-23 | 2024-05-10 | 中国电子科技集团公司第五十八研究所 | 一种Quad SPI转AXI接口的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI679539B (zh) | 主從式系統、指令執行方法與資料存取方法 | |
US7739487B2 (en) | Method for booting a host device from an MMC/SD device, a host device bootable from an MMC/SD device and an MMC/SD device method a host device may booted from | |
CN107480081B (zh) | 具有可中断指令序列的存储器及其操作方法 | |
US8417864B2 (en) | Cascade-able serial bus device with clock and management and cascade methods using the same | |
TWI582572B (zh) | 半導體系統、半導體裝置及電子裝置初始化方法 | |
US20190146944A1 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
US20150370735A1 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
CN106681953B (zh) | 使用i2c总线与主机连接的从机及其通信方法 | |
US9213615B2 (en) | Information processing apparatus with debugging unit and debugging method therefor | |
KR20160066029A (ko) | 저전력 카메라 제어 인터페이스 버스 및 디바이스들 | |
CN110765058A (zh) | Gpio实现spi从机功能方法、系统、设备及介质 | |
CN115858431A (zh) | 数据传输控制方法、控制器及电子设备 | |
JP2019074820A (ja) | メモリ制御装置 | |
KR100423017B1 (ko) | 마이크로컴퓨터 | |
TWI716909B (zh) | 記憶體控制系統及操作記憶體控制系統的方法 | |
JP5251353B2 (ja) | 情報処理装置 | |
US6766408B2 (en) | Semiconductor integrated circuit and method for writing into non-volatile memory using a program received by external communication | |
JP2024000983A (ja) | Spiホストとspiデバイスの間のspi動作モード同期の方法、およびspiバス同期装置 | |
JP2018072904A (ja) | 電子機器 | |
WO2021089303A1 (en) | Protocol translator module system and method using said protocol translator module system | |
CN113326220A (zh) | 一种外设电子标签信息获取方法及设备 | |
CN111045968A (zh) | 实现iic上cpu从机的方法、智能终端和储存介质 | |
JP2005128989A (ja) | 入出力制御装置、機能拡張デバイス | |
JP2001243064A (ja) | プロセッサ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20191125 |