(57)【要約】【課題】不揮発性メモリモジュールを内蔵する半導体装置において、不揮発性メモリモジュールの特性の評価を容易にする技術を提供する。【解決手段】ＭＣＵ２００は、ＣＰＵ１１と、フラッシュメモリ１５と、フラッシュメモリ１５への書き込み及び消去を制御するＦＰＣＣ４８とを備える。ＦＰＣＣ４８は、フラッシュメモリ１５に対する書き込み等を行うためのプログラムを実行することで、ＣＰＵ１１から発行されるコマンドに従いフラッシュメモリ１５への書き込み等を行う。ＭＣＵ２００において、ＦＣＵ４１が、フラッシュメモリ１５を評価するためのテストファームを実行するよう構成されている。また、ＲＡＭ１３を、ＣＰＵ１１とＦＣＵ４１とが使用可能な構成としている。【選択図】図３
2015162215.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置であって、
前記半導体装置の動作を制御するメインプロセッサと、
書き換え可能な不揮発性メモリと、
前記不揮発性メモリへの書き込み及び消去を制御するメモリコントローラとを備え、
前記メモリコントローラは、前記不揮発性メモリに対する読み出し／書き込み／消去を行うための制御プログラムを記憶するための記憶部を含み、前記制御プログラムを前記記憶部から読み出して実行することで、前記メインプロセッサから発行されるコマンドに従い前記不揮発性メモリへの読み出し／書き込み／消去を行い、
前記メモリコントローラが、前記不揮発性メモリを評価するためのテストファームを実行するよう構成されている、半導体装置。
【請求項２】
前記メモリコントローラは、
前記不揮発性メモリへの書き込み及び消去を制御する書き換えコントローラと、
汎用プロセッサとを含み、
前記半導体装置の通常動作時は、前記書き換えコントローラが前記制御プログラムを前記記憶部から読み出して実行することで、前記メインプロセッサから発行されるコマンドに従い前記不揮発性メモリへの読み出し／書き込み／消去を行い、
前記不揮発性メモリの特性を評価するテスト動作時は、前記汎用プロセッサが前記テストファームを実行するよう構成されている、請求項１記載の半導体装置。
【請求項３】
前記半導体装置は、
前記メインプロセッサと、前記メモリコントローラとのインタフェースとして機能し、前記メインプロセッサが発行するコマンドを受け付けて、前記メモリコントローラの仕様に適合するコマンドとして前記メモリコントローラへ発行するインタフェースユニットと、
前記書き換えコントローラ、および、前記汎用プロセッサのいずれかを切り替えて前記インタフェースユニットに接続する第１の選択部とを含み、
前記第１の選択部は、前記半導体装置の通常動作時は、前記書き換えコントローラを前記インタフェースユニットに接続し、前記テスト動作時は、前記汎用プロセッサを前記インタフェースユニットに接続する、請求項２記載の半導体装置。
【請求項４】
前記メモリコントローラは、
前記テストファームを記憶するための揮発性メモリを含み、
前記汎用プロセッサは、前記テスト動作時に、前記メモリコントローラの前記揮発性メモリから前記テストファームを読み出して、読みだした前記テストファームを実行するよう構成されている、請求項３記載の半導体装置。
【請求項５】
前記半導体装置は、
前記メインプロセッサと前記メモリコントローラとで共有する揮発性メモリと、
前記メインプロセッサ、および、前記メモリコントローラのいずれかを切り替えて前記揮発性メモリに接続する第２の選択部とを含み、
前記第２の選択部は、前記半導体装置の通常動作時は、前記メインプロセッサを前記揮発性メモリに接続し、前記テスト動作時は、前記メモリコントローラを前記揮発性メモリに接続し、
前記揮発性メモリは、前記テストファームを記憶するよう構成されており、
前記汎用プロセッサは、前記テスト動作時に、前記揮発性メモリから前記テストファームを読み出して、読みだした前記テストファームを実行するよう構成されている、請求項３記載の半導体装置。
【請求項６】
前記半導体装置は、
前記メインプロセッサと前記メモリコントローラとで共有する揮発性メモリと、
前記メインプロセッサ、および、前記メモリコントローラのいずれかを切り替えて前記揮発性メモリに接続する選択部とを含み、
前記選択部は、前記半導体装置の通常動作時は、前記メインプロセッサを前記揮発性メモリに接続し、前記テスト動作時は、前記メモリコントローラを前記揮発性メモリに接続し、
前記メモリコントローラは、
前記不揮発性メモリへの書き込み及び消去を制御する書き換えコントローラを含み、
前記半導体装置の通常動作時は、前記書き換えコントローラが前記制御プログラムを前記記憶部から読み出して実行することで、前記メインプロセッサから発行されるコマンドに従い前記不揮発性メモリへの読み出し／書き込み／消去を行い、
前記不揮発性メモリの特性を評価するテスト動作時は、前記書き換えコントローラが前記揮発性メモリから前記テストファームを読み出して、読みだした前記テストファームを実行するよう構成されている、請求項１記載の半導体装置。
【請求項７】
前記メモリコントローラに含まれる前記記憶部は、読み出し専用のメモリにより構成される、請求項１から６のいずれか１項に記載の半導体装置。
【請求項８】
半導体装置であって、
前記半導体装置の動作を制御するメインプロセッサと、
書き換え可能な不揮発性メモリと、
前記不揮発性メモリへの書き込み及び消去を制御するメモリコントローラと、
前記メインプロセッサと前記メモリコントローラとで共有する揮発性メモリと、
前記メインプロセッサ、および、前記メモリコントローラのいずれかを切り替えて前記揮発性メモリに接続する選択部とを備え、
前記メモリコントローラは、前記不揮発性メモリに対する読み出し／書き込み／消去を行うための制御プログラムを記憶するための記憶部を含み、前記制御プログラムを前記記憶部から読み出して実行することで、前記メインプロセッサから発行されるコマンドに従い前記不揮発性メモリへの読み出し／書き込み／消去を行う、半導体装置。
【請求項９】
前記選択部は、前記半導体装置の通常動作時は、前記メインプロセッサを前記揮発性メモリに接続し、前記テスト動作時は、前記メモリコントローラを前記揮発性メモリに接続するよう構成されている、請求項８記載の半導体装置。
【請求項１０】
半導体装置であって、
前記半導体装置の動作を制御するメインプロセッサと、
書き換え可能な不揮発性メモリと、
前記不揮発性メモリへの書き込み及び消去を制御するメモリコントローラと、
前記メインプロセッサと前記メモリコントローラとで共有する揮発性メモリと、
前記メインプロセッサ、および、前記メモリコントローラのいずれかを切り替えて前記揮発性メモリに接続する第１の選択部とを備え、
前記メモリコントローラは、
前記不揮発性メモリへの書き込み及び消去を制御する書き換えコントローラと、
汎用プロセッサとを含み、
前記書き換えコントローラが前記制御プログラムを前記記憶部から読み出して実行することで、前記メインプロセッサから発行されるコマンドに従い前記不揮発性メモリへの読み出し／書き込み／消去を行い、
前記半導体装置は、
前記メインプロセッサと、前記メモリコントローラとのインタフェースとして機能し、前記メインプロセッサが発行するコマンドを受け付けて、前記メモリコントローラの仕様に適合するコマンドとして前記メモリコントローラへ発行するインタフェースユニットと、
前記書き換えコントローラ、および、前記汎用プロセッサのいずれかを切り替えて前記インタフェースユニットに接続する第２の選択部とを含む、半導体装置。
【請求項１１】
前記第２の選択部は、前記半導体装置の通常動作時は、前記書き換えコントローラを前記インタフェースユニットに接続し、前記テスト動作時は、前記汎用プロセッサを前記インタフェースユニットに接続し、
前記第１の選択部は、前記半導体装置の通常動作時は、前記メインプロセッサを前記揮発性メモリに接続し、前記テスト動作時は、前記メモリコントローラを前記揮発性メモリに接続する、請求項１０記載の半導体装置。
【請求項１２】
半導体装置であって、
前記半導体装置の動作を制御するメインプロセッサと、
書き換え可能な不揮発性メモリ、および、前記不揮発性メモリへの読み出し／書き込み／消去を行うメモリコントローラを含むメモリマクロと、
前記メモリマクロの外部に配置され、前記不揮発性メモリを評価するためのテストファームを記憶するための記憶部と、
前記メモリマクロの外部に配置され、テスト動作時に前記メインプロセッサから発行されるコマンドに従い起動し、前記記憶部に記憶される前記テストファームを読み出して前記不揮発性メモリを評価するためのプロセッサとを備える、半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、書換可能な不揮発性メモリモジュールを備えた半導体装置に関し、特に、不揮発性メモリの特性評価を容易にするための技術に関する。
【背景技術】
【０００２】
マイクロコントローラなどの半導体装置は、種々の電子機器の制御に使用されており、様々な製品に使用されている。半導体装置には、フラッシュメモリなどの書換可能な不揮発性メモリを備えるものがあり、プロセッサの命令実行によってフラッシュメモリに対するデータの読み出し、書き込み、消去が行われる。半導体装置の微細化に伴い、フラッシュメモリに対する書き込みおよび消去の制御が複雑になっている。そのため、フラッシュメモリの試作時、フラッシュメモリを内蔵するＭＣＵ（Micro  Control  Unit）の開発、およびこれら装置の製作時等において、フラッシュメモリに対する特性評価が必要となる。
【０００３】
フラッシュメモリなどの不揮発性記憶装置の特性を評価する技術として、例えば、特開２００７−３４５５４号公報（特許文献１）がある。特許文献１に記載された技術は、書き込み及び消去可能な不揮発性メモリモジュールと、ＣＰＵ（Central  Processing  Unit）とを備える半導体集積回路に関するものである。特許文献１に記載された技術によると、半導体集積回路は、第１の動作モードと、第２の動作モードとを有する。第１の動作モードでは、ＣＰＵが、逐次、命令を実行することで、不揮発性メモリモジュールに対する書き込み及び消去を制御する。第２の動作モードでは、ＣＰＵから発行されたコマンドに対してローカルＣＰＵが応答し、ローカルＣＰＵが、逐次、命令を実行することで、不揮発性メモリモジュールに対する書き込み及び消去を制御する。半導体集積回路を通常動作させる場合、第２の動作モードで動作させることにより、ローカルＣＰＵが不揮発性メモリモジュールへの書き込み等の処理をする間にＣＰＵがその他の処理を実行することができ、リアルタイム性を維持して処理を行うことができる。半導体集積回路は、不揮発性メモリモジュールに対するテストを行う場合、第１の動作モードと第２の動作モードのどちらも選択することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３４５５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された技術において、不揮発性メモリモジュールに対するテストを行う際に、通常、公開されない制御を実行する場合、ローカルＣＰＵからはデータのアクセスができず、ＣＰＵからアクセス可能なＲＡＭ（Random  Access  Memory）に、各種の設定を格納してテストを行う。ユーザは、第１の動作モードを選択し、ＣＰＵに動作させるプログラム、および、不揮発性メモリモジュールの評価を行うための各種の設定をＲＡＭに格納し、プログラムを入れ替えて、不揮発性メモリモジュールに対する複数のテスト項目を評価する。
【０００６】
しかしながら、特許文献１に記載された技術によると、不揮発性メモリモジュールを評価するためのテストプログラムをＣＰＵによって実行するため、テストプログラムをＣＰＵにあわせて開発する必要がある。
【０００７】
不揮発性メモリモジュールのテストは複雑であるため、例えば不揮発性メモリモジュールを内蔵するＭＣＵを開発する場合、開発の度にテストプログラムの開発が必要となり、開発コストが増加する。そのため、不揮発性メモリモジュールの特性の評価を容易にする技術が必要とされている。
【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施形態に従う半導体装置は、メインプロセッサと、書き換え可能な不揮発性メモリと、記不揮発性メモリへの書き込み及び消去を制御するメモリコントローラとを備える。メモリコントローラは、不揮発性メモリに対する読み出し／書き込み／消去を行うための制御プログラムを記憶し、制御プログラムを実行することで、メインプロセッサから発行されるコマンドに従い不揮発性メモリへの読み出し／書き込み／消去を行う。半導体装置において、メモリコントローラが、不揮発性メモリを評価するためのテストファームを実行するよう構成されている。
【発明の効果】
【００１０】
一実施の形態に従う半導体装置によれば、ＣＰＵと、書換可能な不揮発性メモリモジュールと、不揮発性メモリモジュールのコントローラとを備える構成において、不揮発性メモリモジュールのコントローラがテストファームを実行するため、ＣＰＵに依存することなくテストファームを開発することができる。そのため、ＣＰＵにあわせてテストファームを開発する場合と比較して、テストファームの開発が容易となる。
【図面の簡単な説明】
【００１１】
【図１】関連技術における半導体装置であるＭＣＵ１００の構成を示すブロック図である。
【図２】各プログラムの実行主体を示す図である。
【図３】実施の形態１の半導体装置であるＭＣＵ２００の構成を示すブロック図である。
【図４】各プログラムの実行主体を示す図である。
【図５】実施の形態２の半導体装置であるＭＣＵ３００の構成を示すブロック図である。
【図６】各プログラムの実行主体を示す図である。
【図７】実施の形態３の半導体装置であるＭＣＵ４００の構成を示すブロック図である。
【図８】各プログラムの実行主体を示す図である。
【図９】実施の形態４の半導体装置であるＭＣＵ５００の構成を示すブロック図である。
【図１０】各プログラムの実行主体を示す図である。
【図１１】実施の形態４の変形例１の半導体装置であるＭＣＵ５５０の構成を示すブロック図である。
【図１２】各プログラムの実行主体を示す図である。
【図１３】実施の形態５の半導体装置であるＭＣＵ６００の構成を示すブロック図である。
【図１４】各プログラムの実行主体を示す図である。
【図１５】実施の形態５の変形例の半導体装置であるＭＣＵ６５０の構成を示すブロック図である。
【図１６】各プログラムの実行主体を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しつつ、本開示の半導体装置の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１３】
＜関連技術＞
実施の形態にかかる半導体装置と対比するため、関連する技術について説明する。図１は、関連技術における半導体装置であるＭＣＵ１００の構成を示すブロック図である。関連技術のＭＣＵ１００は、書き換え可能な不揮発性のメモリ（フラッシュメモリ）を内蔵するシステムである。図１に示すように、関連技術のＭＣＵ１００は、ＣＰＵ１１と、ＢＳＣ（Bus  State  Controller）１２と、ＲＡＭ１３と、フラッシュメモリ１５と、ＦＣＵ４１とを含む。ＦＣＵ４１は、ＦＬＣ（フラッシュ書き込み制御回路）４２と、ＦＢＳＣ（ローカルバスコントローラ）４４と、Ｆ−ＲＡＭ（フラッシュＲＡＭ）４５と、ＦＣＰＵ（ローカルＣＰＵ）４６と、ＦＩＭＣ（ＣＰＵインタフェースコントローラ）４７とを含む。
【００１４】
ＣＰＵ１１は、ＭＣＵ１００の動作を制御するためのプロセッサである。
ＢＳＣ１２は、内部バス２１と周辺バス３１とを接続し、周辺バス３１に接続される各モジュールへのＣＰＵ１１のアクセスを可能とする。
【００１５】
ＲＡＭ１３は、書き換え可能な揮発性のメモリであり、内部バス２１を介してＣＰＵ１１からのアクセスを受け付ける。関連技術のＭＣＵ１００において、ＲＡＭ１３は、ＦＣＵ４１の外部にあるとともに、ユーザプログラム２５およびテストファーム２６を記憶する。ＦＣＵ４１からはＲＡＭ１３にアクセスできない。ユーザプログラム２５は、ユーザが任意に作成するプログラムである。テストファーム２６は、フラッシュメモリ１５の特性を評価するためのプログラムである。フラッシュメモリ１５をテストするための各種の設定情報がＲＡＭ１３に記憶され、ＣＰＵ１１は、ＲＡＭ１３からテストファーム２６を読み出してフラッシュメモリ１５の各種の特性を評価する。
【００１６】
フラッシュメモリ１５は、不揮発性のメモリである。例えば、フラッシュメモリ１５は、ＣＰＵ１１が動作するためのプログラム、不揮発的に保持すべきデータ等を格納する。フラッシュメモリ１５は、電気的に消去及び書き込み可能な多数の不揮発性メモリトランジスタを有する。
【００１７】
ＦＣＵ４１は、ＣＰＵ１１から発行されるコマンドに従って、フラッシュメモリ１５に対する読み出し／書き込み／消去を行う。ＣＰＵ１１は、内部バス２１および周辺バス３１を経由して、ＦＣＵ４１と接続する。
【００１８】
ＦＬＣ４２は、フラッシュメモリ１５に対する書き換えを制御するためのレジスタを有する。例えば、ＦＬＣ４２は、フラッシュメモリ１５の書き込みに使用するパルス電圧、フラッシュメモリ１５の消去に使用するパルス電圧、ドレイン電圧、ソース電圧などの各電圧レベルの調整結果、ＭＣＵ１００の動作モード（ユーザプログラムに従って動作する「通常動作モード」、フラッシュメモリ１５の特性を評価するための「テストモード」など）などが設定される。
【００１９】
ＦＢＳＣ４４は、ローカルバス４３を制御するためのコントローラである。ローカルバス４３には、フラッシュメモリ１５、ＦＬＣ４２などが接続される。
【００２０】
Ｆ−ＲＡＭ４５は、ＦＣＵ４１に内蔵されるＲＡＭである。ＭＣＵ１００が通常動作モードで動作している場合、Ｆ−ＲＡＭ４５の記憶領域の一部は、ＣＰＵ１１からのアクセスからは保護される。Ｆ−ＲＡＭ４５には、ＦＣＰＵ４６がフラッシュメモリ１５への書き込み／読み出し／消去を実行するためのフラッシュ制御プログラム２７が記憶されている。
【００２１】
ＦＣＰＵ４６は、ＦＣＵ４１の動作を制御するためのプロセッサである。ＣＰＵ１１が発行するコマンドは、ＦＩＭＣ４７によって変換される。ＦＣＰＵ４６は、汎用的なプロセッサを使用することができる。ＦＣＰＵ４６は、フラッシュ制御プログラム２７をＦ−ＲＡＭ４５から読み出して実行することにより、ＣＰＵ１１から発行されるコマンドに従ってフラッシュメモリ１５へのアクセスを行うことができる。
【００２２】
ＦＩＭＣ４７は、周辺バス３１に接続され、ＣＰＵ１１からのアクセスに応じてＦＣＰＵ４６を起動する。ＦＩＭＣ４７は、ＦＢＳＣ４４にコマンドを発行することにより、Ｆ−ＲＡＭ４５、ＦＬＣ４２などへのローカルバス４３を経由しての制御を行う。
【００２３】
関連技術のＭＣＵ１００において、ＲＡＭ１３の記憶領域の少なくとも一部は、ＣＰＵ１１からはアクセス可能であるが、ＦＣＰＵ４６からはアクセスすることができない領域であり、この領域に、フラッシュメモリ１５のテストに必要な設定を記憶させてフラッシュメモリ１５のテストを行うことができる。フラッシュメモリ１５に対し、秘匿したい動作を行う場合、ユーザは、テストファーム２６をＲＡＭ１３に格納し、ＣＰＵ１１によってテストファーム２６を実行することでフラッシュメモリ１５の特性を評価する。ユーザは、ＲＡＭ１３に格納するプログラムを入れ替えて、フラッシュメモリ１５の特性を評価する。
【００２４】
この関連技術の構成において、テストファーム２６を実行する主体は、ＣＰＵ１１であるため、プログラムの開発者は、テストファーム２６を、ＣＰＵ１１の仕様に応じて開発する必要がある。また、テストファーム２６は、ノウハウが蓄積されているため、テストファーム２６の解析を困難にしつつ、フラッシュメモリ１５の特性の評価を可能とすることが望ましい。
【００２５】
図２は、各プログラムの実行主体を示す図である。図２に示すように、ＣＰＵ１１は、通常動作モード時はユーザプログラム２５を読み出して実行し、テストモード時はテストファーム２６を読み出して実行する。また、フラッシュメモリ１５へのアクセスは、ＦＣＰＵ４６がフラッシュ制御プログラム２７を読み出して実行することで実現する。
【００２６】
そこで、以下に説明する実施の形態１の半導体装置では、テストファーム２６の実行主体を、ＦＣＵ４１とすることで、ＣＰＵ１１に依存しないテストファーム２６の開発を可能とする。これにより、テストファーム２６の開発を容易にする。
【００２７】
＜実施の形態１＞
図３と図４とを参照して実施の形態１の半導体装置について説明する。図３は、実施の形態１の半導体装置であるＭＣＵ２００の構成を示すブロック図である。
【００２８】
図３に示すように、ＭＣＵ２００は、ＣＰＵ１１と、ＢＳＣ１２と、ＲＡＭ１３と、フラッシュメモリ１５と、マルチプレクサ１６と、マルチプレクサ１７と、ＦＣＵ４１と、ＦＡＣＩ（Flash  Application  Command  Interface）５１と、ＦＴＳＥＱ（Flash  Test  Sequencer）７０を含む。ＦＣＵ４１は、ＦＬＣ４２と、ＦＢＳＣ４４と、ＦＰＣＣ（Flash  Program  Customized  Control）４８と、ＲＯＭ４９とを含む。
【００２９】
ＦＡＣＩ５１は、ＣＰＵ１１と、ＦＣＵ４１とのインタフェースとなるモジュールである。ＣＰＵ１１が、ＦＣＵ４１に対して発行したコマンドは、内部バス２１および周辺バス３１を経由してＦＡＣＩ５１に出力される。ＦＡＣＩ５１は、ＣＰＵ１１から受け付けたコマンドを、ＦＰＣＣ４８の仕様にあわせたコマンドとしてＦＰＣＣ４８に発行する。ＣＰＵ１１がＦＣＵ４１に対して発行するコマンドの仕様は、ＭＣＵ２００の仕様による場合があるが、ＦＡＣＩ５１によって仕様の違いを吸収してＦＰＣＣ４８にコマンドを発行する。ＦＡＣＩ５１は、テストモード時のみローカルバス４３から制御可能なＲｅｇ９９を備えている。Ｒｅｇ９９は、フラッシュメモリ１５の書き換え時に必要な各種設定レジスタなどを含んでいる。テストモード時、ＦＰＣＣ４８は、Ｒｅｇ９９を任意に設定することで各種テストを実行可能になる。
【００３０】
フラグ５２は、ＭＣＵ２００が通常動作モードで動作しているか、テストモードで動作しているかを管理するためのものである。フラグ５２は、外部の装置から設定可能である。ＭＣＵ２００は、フラグ５２の設定に応じてマルチプレクサ１６とマルチプレクサ１７とに信号を出力してマルチプレクサ１６およびマルチプレクサ１７の接続対象を切り替える。
【００３１】
テスト用シーケンサ７０は、フラッシュメモリ１５の特性を評価するための、テスト専用のシーケンサである。テスト用シーケンサ７０は、ＭＣＵ２００がテストモードで動作する場合に起動し、内部バス２１と周辺バス３１とを経由してＦＰＣＣ４８にコマンドを発行する。マルチプレクサ１７は、ＣＰＵ１１とテスト用シーケンサ７０とのいずれかを内部バス２１に接続する。ＭＣＵ２００が通常動作モードで動作する場合、マルチプレクサ１７は、ＣＰＵ１１を内部バス２１に接続する。ＭＣＵ２００がテストモードで動作する場合、マルチプレクサ１７は、テスト用シーケンサ７０と内部バス２１に接続する。テスト用シーケンサ７０は、ＦＰＣＣ４８のコマンドの実行完了を検知して、検知の結果を外部の装置へ出力する。
【００３２】
関連技術のＭＣＵ１００と比較すると、実施の形態１のＭＣＵ２００において、ＦＣＵ４１は、ＦＣＰＵ４６に代えてＦＰＣＣ４８を有する。また、フラッシュ制御プログラム２７を、ＲＯＭ４９に格納している。ＦＰＣＣ４８は、フラッシュメモリ１５への書き込み及び消去を制御するコントローラである。ＦＰＣＣ４８は、ＲＯＭ４９に格納されたフラッシュ制御プログラム２７から命令を取得し、逐次実行することで、フラッシュメモリ１５への書き込み及び消去を実行する。ＭＣＵ２００が通常動作モードで動作する場合、ＣＰＵ１１から発行されるコマンドに従ってフラッシュメモリ１５への書き込み等を行う。
【００３３】
関連技術のＭＣＵ１００と比較すると、実施の形態１のＭＣＵ２００は、マルチプレクサ１６を有しており、ＣＰＵ１１とＦＣＵ４１とからＲＡＭ１３へ接続可能となっている。すなわち、ＭＣＵ２００は、汎用の揮発性メモリであるＲＡＭ１３を、ＣＰＵ１１とＦＣＵ４１とで共有する構成としている。通常動作モード時において、マルチプレクサ１６は、ＣＰＵ１１とＲＡＭ１３とを接続する。テストモード時において、マルチプレクサ１６は、ＦＣＵ４１とＲＡＭ１３とを接続する。ＲＡＭ１３は、ＭＣＵ２００が通常動作モードで動作する場合、ユーザプログラム２５を格納するためのものである。ＭＣＵ２００は、ＲＡＭ１３にユーザプログラム２５を格納した後に、ＣＰＵ１１を起動する。ＣＰＵ１１は、ＲＡＭ１３からの命令のフェッチを開始して、命令を逐次実行する。ＲＡＭ１３は、ＭＣＵ２００がテストモードで動作する場合、テストファーム２６を格納する。テストモードでの動作時に、マルチプレクサ１６によってＦＣＵ４１とＲＡＭ１３とが接続されることにより、ＦＰＣＣ４８がＲＡＭ１３からの命令のフェッチを開始して、逐次命令を実行することで、フラッシュメモリ１５のテストを実行する。
【００３４】
ＭＣＵ２００が通常動作モードで動作する場合、ＦＰＣＣ４８は、ＦＢＳＣ４４のバスマスタとなる。ただし、ＦＰＣＣ４８が起動していない場合は、ＦＡＣＩ５１がＦＢＳＣ４４のバスマスタとなる。
【００３５】
図４は、各プログラムの実行主体を示す図である。図４に示すように、ＣＰＵ１１は、通常動作モード時はユーザプログラム２５をＲＡＭ１３から読み出して実行する。ＦＰＣＣ４８は、テストモード時にＲＡＭ１３と接続し、ＲＡＭ１３からテストファーム２６を読み出して実行する。また、フラッシュメモリ１５へのアクセスは、ＦＰＣＣ４８がフラッシュ制御プログラム２７をＲＯＭ４９から読み出して実行することで実現する。
【００３６】
＜実施の形態１のまとめ＞
実施の形態１のＭＣＵ２００において、テストモードで動作する場合、ＦＰＣＣ４８がテストファームを読み出して逐次実行することで、フラッシュメモリ１５のテストを行う。これにより、テストファームを、ＣＰＵに依存することなく開発することができ、ＣＰＵにあわせて開発する場合と比べてテストファームの開発が容易となる。
【００３７】
また、実施の形態１のＭＣＵ２００において、テストファームは、ＦＰＣＣ４８の仕様に対応した専用の言語で記述することもでき、ユーザに対しては、アセンブル後のオブジェクトファイルを提供することもできる。この場合、ユーザ側では、オブジェクトファイルを解読することが困難となるため、フラッシュメモリをテストするためのノウハウを秘匿することができる。
【００３８】
実施の形態１のＭＣＵ２００において、ＦＣＵ４１は、ローカルバス４３を介してＲＡＭ１３にアクセス可能とすることで、テストモードで動作する場合に、ＦＰＣＣ４８を動作させるためのプログラムの格納場所にＲＡＭ１３を使用することができる。そのため、ＦＰＣＣ４８を動作させるためのプログラムを格納するための専用のＲＡＭを設ける必要が無くなり、回路面積を削減することができる。
【００３９】
＜実施の形態２＞
図５と図６とを参照して実施の形態２の半導体装置について説明する。図５は、実施の形態２の半導体装置であるＭＣＵ３００の構成を示すブロック図である。
【００４０】
図５に示すように、ＭＣＵ３００は、ＦＣＵ４１において、ＦＣＰＵ４６とＦＰＣＣ４８とを有し、ＦＣＰＵ４６およびＦＰＣＣ４８とＦＡＣＩ５１との接続を切り替えるマルチプレクサ５３を有する。
【００４１】
関連技術と比較すると、実施の形態２のＭＣＵ３００において、通常動作モードで動作する場合、マルチプレクサ５３は、ＦＰＣＣ４８とＦＡＣＩ５１とを接続し、ＣＰＵ１１から発行されるコマンドに従って、ＦＰＣＣ４８がフラッシュメモリ１５への書き込み等を行う。ＦＡＣＩ５１は、ＭＣＵ３００が通常動作モードで動作するか、テストモードで動作するかに応じて、マルチプレクサ５３による切替を制御する。
【００４２】
ＦＣＰＵ４６は、ＭＣＵ３００が通常動作モードで動作する場合は起動せず、テストモードで動作する場合に、ＣＰＵ１１から発行されるコマンドにより起動する。ＦＣＰＵ４６は、Ｆ−ＲＡＭ４５に格納されるテストファーム２６から命令を取得し、命令を逐次実行することで、フラッシュメモリ１５のテストを行う。
【００４３】
図５の例では、ＦＰＣＣ４８の動作を制御するためのフラッシュ制御プログラム２７をＲＯＭ４９に格納することとして図示しているが、Ｆ−ＲＡＭ４５に格納してもよい。Ｆ−ＲＡＭ４５は、ＦＰＣＣ４８またはＦＣＰＵ４６の動作を制御するためのプログラムを格納するための揮発性のメモリである。Ｆ−ＲＡＭ４５にフラッシュ制御プログラム２７を格納する場合、ＦＰＣＣ４８が起動する前にＦ−ＲＡＭ４５にフラッシュ制御プログラム２７を転送する。この場合、フラッシュ制御プログラム２７は、フラッシュメモリ１５の一部の領域に書き込まれているものとする。テストモードで動作する場合、ＦＣＰＵ４６が起動するためにＦ−ＲＡＭ４５にテストファーム２６を転送する。
【００４４】
ＲＡＭ１３は、汎用的なＲＡＭであり、ユーザプログラム２５を格納するためのものである。ＣＰＵ１１は、起動後にＲＡＭ１３からの命令のフェッチを開始し、逐次、命令を実行する。
【００４５】
図６は、各プログラムの実行主体を示す図である。図６に示すように、ＣＰＵ１１は、通常動作モード時はユーザプログラム２５をＲＡＭ１３から読み出して実行する。ＦＣＰＵ４６は、テストモード時にＦ−ＲＡＭ４５からテストファーム２６を読み出して実行する。また、フラッシュメモリ１５へのアクセスは、ＦＰＣＣ４８がフラッシュ制御プログラム２７をＲＯＭ４９から読み出して実行することで実現する。
【００４６】
＜実施の形態２のまとめ＞
実施の形態２のＭＣＵ３００によると、ＭＣＵ３００がテストモードで動作する場合、ＦＣＰＵ４６がテストファームを読み出して逐次実行することで、フラッシュメモリ１５のテストを行う。これにより、テストファームを、ＣＰＵ１１に依存することなく開発することができ、ＣＰＵ１１にあわせて開発する場合と比べてテストファームの開発が容易となる。
【００４７】
また、ＭＣＵ３００において、ＦＣＰＵ４６を汎用的なＣＰＵによって実現する場合、テストファームの開発は、一般的な言語で開発可能となり、開発が容易となる。
【００４８】
ＭＣＵ３００によると、ＦＣＰＵ４６として汎用的なＣＰＵを使用し、フラッシュメモリ１５への書き込み消去の制御に特化した専用の書き換えコントローラとしてＦＰＣＣ４８を使用する。通常動作モードとテストモードとで、フラッシュメモリ１５への書き込み等に使用するプロセッサを分離することで、フラッシュメモリ１５の書き込み消去の特性を最適化しつつ、フレキシブルにフラッシュメモリ１５のテストをすることができる。
【００４９】
＜実施の形態３＞
図７と図８とを参照して実施の形態３の半導体装置について説明する。図７は、実施の形態３の半導体装置であるＭＣＵ４００の構成を示すブロック図である。
【００５０】
図７に示すように、ＭＣＵ４００は、実施の形態１に示すＭＣＵ１００と比較すると、ＦＣＵ４１において、ＦＣＰＵ４６とＦＰＣＣ４８とを有する。また、ＭＣＵ４００は、実施の形態２に示すＭＣＵ３００と同様に、通常動作モードで動作する場合、ＦＰＣＣ４８がフラッシュメモリ１５への書き込み等を行い、テストモードで動作する場合、ＦＣＰＵ４６がフラッシュメモリ１５に対するテストを行う。
【００５１】
図８は、各プログラムの実行主体を示す図である。図８に示すように、ＣＰＵ１１は、通常動作モード時はユーザプログラム２５をＲＡＭ１３から読み出して実行する。ＦＣＰＵ４６は、テストモード時にＦ−ＲＡＭ４５からテストファーム２６を読み出して実行する。また、フラッシュメモリ１５へのアクセスは、ＦＰＣＣ４８がフラッシュ制御プログラム２７をＲＯＭ４９から読み出して実行することで実現する。
【００５２】
＜実施の形態３のまとめ＞
実施の形態３のＭＣＵ４００によると、ＭＣＵ４００がテストモードで動作する場合、ＦＣＰＵ４６がテストファームを読み出して逐次実行することで、フラッシュメモリ１５のテストを行う。これにより、テストファームを、ＣＰＵ１１に依存することなく開発することができ、ＣＰＵ１１にあわせて開発する場合と比べてテストファームの開発が容易となる。
【００５３】
また、ＭＣＵ４００において、ＦＣＵ４１は、ローカルバス４３を介してＲＡＭ１３にアクセス可能とすることで、テストモードで動作する場合に、ＦＰＣＣ４８を動作させるためのプログラムの格納場所にＲＡＭ１３を使用することができる。そのため、ＦＰＣＣ４８を動作させるためのプログラムを格納するための専用のＲＡＭを設ける必要が無くなり、回路面積を削減することができる。
【００５４】
＜実施の形態４＞
図９と図１０とを参照して実施の形態４の半導体装置について説明する。
【００５５】
図９は、実施の形態４の半導体装置であるＭＣＵ５００の構成を示すブロック図である。
【００５６】
図１０は、各プログラムの実行主体を示す図である。
図９に示すように、ＭＣＵ５００は、実施の形態１に示すＭＣＵ２００と比較すると、ＦＣＵ４１がＦｌａｓｈマクロ８２の内部に配置される。また、ＦＣＵ４１のローカルバス４３は、ＲＡＭ１３およびＦＡＣＩ５１とは接続されない。フラッシュメモリ１５は、情報が保持される不揮発性のメモリセルが、複数行複数列にわたってマトリクス状に配置されるメモリセルアレイを有する。制御回路５９は、このフラッシュメモリ１５のメモリセルアレイに対し、情報の読み出しおよび書き込みを行うための制御回路である。制御回路は、アクセス対象のメモリセルを特定するための行アドレスをデコードする行デコード回路と、列アドレスをデコードする列デコード回路と、行アドレスおよび列アドレスに基づき選択されたメモリセルへの書き込みを行うライトアンプ回路と、選択されたメモリセルから情報を読み出すセンスアンプ回路等を含む。
【００５７】
ＭＣＵ５００において、Ｆｌａｓｈマクロ８２の内部にＦＰＣＣ４８が実装され、Ｆｌａｓｈマクロ８２の外部にＦＰＣＣ５７が実装される。ＦＰＣＣ５７は、テストモードでの動作時に処理を制御する制御コアとして機能する。ＦＰＣＣ５７は、テストモードでの動作時に、ＦＡＣＩ５１を経由してＣＰＵ１１のコマンドを受け付けることで起動する。マルチプレクサ１６は、テストモードか通常モードかに応じて、ＣＰＵ１１またはＦＰＣＣ５７のいずれかからのメモリアクセスを受け付ける。テストモードでの動作時に、マルチプレクサ１６は、ＦＰＣＣ５７からの読み出しを受け付ける。ＦＰＣＣ５７は、テストモードでの動作時に、ＲＡＭ１３に格納された命令フェッチを開始して、逐次命令を実行することで、フラッシュメモリ１５のテストを実行する。テスト制御コアとして機能するＦＰＣＣ５７は、ＦＣＵ４１の内部のＦＰＣＣ４８の起動も可能である。
【００５８】
＜実施の形態４のまとめ＞
実施の形態４のＭＣＵ５００によると、テストモードで動作させるためのプログラムの格納場所に、Ｆｌａｓｈマクロ８２の外部のメモリを使用することができる。また、テストモードで動作させるためのプロセッサを、Ｆｌａｓｈマクロ８２の外部に配置することができる。
【００５９】
＜実施の形態４の変形例１＞
図１１は、実施の形態４の変形例１の半導体装置であるＭＣＵ５５０の構成を示すブロック図である。
【００６０】
図１２は、各プログラムの実行主体を示す図である。
マルチプレクサ１６は、テストモードか通常モードかに応じて、ＣＰＵ１１またはＦＰＣＣ５７のいずれかからのメモリアクセスを受け付ける。テストモードでの動作時に、マルチプレクサ１６は、ＦＰＣＣ５７からの読み出しを受け付ける。実施の形態１の変形例１において、ＦＰＣＣ５７は、外部装置（テスター）からの信号入力をテスト用インタフェース（Test I/F）８１で受け付けることで起動する。
【００６１】
＜実施の形態４の変形例２＞
図９に示す実施の形態４の半導体装置であるＭＣＵ５００において、Ｆｌａｓｈマクロ８２の外部にＦＰＣＣ５７を実装しているが、このＦＰＣＣ５７に代えて、汎用的なプロセッサであるＦＣＰＵ４６を使用することとしてもよい。すなわち、汎用的なプロセッサであるＦＣＰＵ４６をＦｌａｓｈマクロ８２の外部に配置して、このＦＣＰＵ４６がテストファーム２６を読み出して逐次実行することで、フラッシュメモリ１５のテストを行うこととしてもよい。
【００６２】
＜実施の形態４の変形例３＞
また、図１１に示す実施の形態４の変形例１の半導体装置であるＭＣＵ５５０において、Ｆｌａｓｈマクロ８２の外部にＦＰＣＣ５７を実装しているが、このＦＰＣＣ５７に代えて、汎用的なプロセッサであるＦＣＰＵ４６を使用することとしてもよい。すなわち、汎用的なプロセッサであるＦＣＰＵ４６をＦｌａｓｈマクロ８２の外部に配置して、このＦＣＰＵ４６がテストファーム２６を読み出して逐次実行することで、フラッシュメモリ１５のテストを行うこととしてもよい。
【００６３】
＜実施の形態５＞
図１３と図１４とを参照して実施の形態５の半導体装置について説明する。
【００６４】
図１３は、実施の形態５の半導体装置であるＭＣＵ６００の構成を示すブロック図である。
【００６５】
図１４は、各プログラムの実行主体を示す図である。
図１３に示すように、ＭＣＵ６００は、実施の形態２に示すＭＣＵ３００と比較すると、ＦＣＵ４１がＦｌａｓｈマクロ８２の内部に配置される。また、ＦＣＵ４１のローカルバス４３は、ＲＡＭ１３およびＦＡＣＩ５１とは接続されない。
【００６６】
ＦＣＰＵ４６とＦ−ＲＡＭ４５とは、Ｆｌａｓｈマクロ８２の外部に配置される。ＦＣＰＵ４６は、テストモードでの動作時に、ＦＡＣＩ５１を経由してＣＰＵ１１のコマンドを受け付けることで起動する。マルチプレクサ５５は、テストモードか通常モードかに応じて、ＦＡＣＩ５１またはＦＣＰＵ４６のいずれかの信号をＦＣＵ４１へ出力する。テストモードでの動作時に、マルチプレクサ５５は、ＦＣＰＵ４６からの信号をＦＣＵ４１へ出力する。
【００６７】
ＦＣＰＵ４６は、ＦＣＵ４１の内部のＦＰＣＣ４８を起動することもできる。ＦＣＰＵ４６は、Ｆ−ＲＡＭ４５からテストファーム２６を読み出して、Ｆ−ＲＡＭ４５からの命令フェッチを開始して、逐次命令を実行することで、フラッシュメモリ１５のテストを実行する。
【００６８】
＜実施の形態５のまとめ＞
実施の形態５のＭＣＵ６００によると、テストモードで動作させるためのプログラムの格納場所に、Ｆｌａｓｈマクロ８２の外部のメモリを使用することができる。また、テストモードで動作させるためのプロセッサを、Ｆｌａｓｈマクロ８２の外部に配置することができる。
【００６９】
＜実施の形態５の変形例＞
図１５は、実施の形態５の変形例の半導体装置であるＭＣＵ６５０の構成を示すブロック図である。
【００７０】
図１６は、各プログラムの実行主体を示す図である。
テストモードでの動作時に、ＦＣＰＵ４６は、ＣＰＵ１１ではなく、外部装置（テスター）からの信号入力をテスト用インタフェース（Test I/F）８１で受け付けることで起動する。
【００７１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７２】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７３】
１００，２００，３００，４００，５００，５５０，６００，６５０  ＭＣＵ、１１  ＣＰＵ、１２  ＢＳＣ、１３  ＲＡＭ、１５  フラッシュメモリ、１６  マルチプレクサ、１７  マルチプレクサ、２１  内部バス、２５  ユーザプログラム、２６  テストファーム、２７  フラッシュ制御プログラム、３１  周辺バス、４１  ＦＣＵ、４２  ＦＬＣ、４３  ローカルバス、４４  ＦＢＳＣ、４５  Ｆ−ＲＡＭ、４６  ＦＣＰＵ、４７  ＦＩＭＣ、４８  ＦＰＣＣ、４９  ＲＯＭ、５１  ＦＡＣＩ、５２  フラグ、５３  マルチプレクサ、５５  マルチプレクサ、５７  ＦＰＣＣ、５９  制御回路、７０  テスト用シーケンサ、８１  テスト用インタフェース、８２  Ｆｌａｓｈマクロ。
【図１】
2015162215.tif 000003
【図２】
2015162215.tif 000004
【図３】
2015162215.tif 000005
【図４】
2015162215.tif 000006
【図５】
2015162215.tif 000007
【図６】
2015162215.tif 000008
【図７】
2015162215.tif 000009
【図８】
2015162215.tif 000010
【図９】
2015162215.tif 000011
【図１０】
2015162215.tif 000012
【図１１】
2015162215.tif 000013
【図１２】
2015162215.tif 000014
【図１３】
2015162215.tif 000015
【図１４】
2015162215.tif 000016
【図１５】
2015162215.tif 000017
【図１６】
2015162215.tif 000018