特許第6255282号(P6255282)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ルネサスエレクトロニクス株式会社の特許一覧

<>
  • 特許6255282-半導体装置 図000002
  • 特許6255282-半導体装置 図000003
  • 特許6255282-半導体装置 図000004
  • 特許6255282-半導体装置 図000005
  • 特許6255282-半導体装置 図000006
  • 特許6255282-半導体装置 図000007
  • 特許6255282-半導体装置 図000008
  • 特許6255282-半導体装置 図000009
  • 特許6255282-半導体装置 図000010
  • 特許6255282-半導体装置 図000011
  • 特許6255282-半導体装置 図000012
  • 特許6255282-半導体装置 図000013
  • 特許6255282-半導体装置 図000014
  • 特許6255282-半導体装置 図000015
  • 特許6255282-半導体装置 図000016
  • 特許6255282-半導体装置 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6255282
(24)【登録日】2017年12月8日
(45)【発行日】2017年12月27日
(54)【発明の名称】半導体装置
(51)【国際特許分類】
   G06F 12/16 20060101AFI20171218BHJP
【FI】
   G06F12/16 330A
【請求項の数】14
【全頁数】17
(21)【出願番号】特願2014-38799(P2014-38799)
(22)【出願日】2014年2月28日
(65)【公開番号】特開2015-162215(P2015-162215A)
(43)【公開日】2015年9月7日
【審査請求日】2016年9月26日
(73)【特許権者】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】武 由紀子
(72)【発明者】
【氏名】和泉 伸也
(72)【発明者】
【氏名】市口 哲一郎
【審査官】 塚田 肇
(56)【参考文献】
【文献】 特開2001−148199(JP,A)
【文献】 特開2009−252026(JP,A)
【文献】 特開2008−299476(JP,A)
【文献】 特開2007−034554(JP,A)
【文献】 米国特許出願公開第2007/0033469(US,A1)
【文献】 特開2006−085769(JP,A)
【文献】 米国特許出願公開第2002/0162075(US,A1)
【文献】 米国特許出願公開第2005/060603(US,A1)
【文献】 米国特許出願公開第2008/022154(US,A1)
【文献】 米国特許出願公開第2010/0322024(US,A1)
【文献】 米国特許出願公開第2014/281154(US,A1)
【文献】 米国特許出願公開第2002/0089883(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/16
(57)【特許請求の範囲】
【請求項1】
半導体装置であって、
前記半導体装置の動作を制御するメインプロセッサと、
書き換え可能な不揮発性メモリと、
前記不揮発性メモリへの書き込み及び消去を制御するメモリコントローラとを備え、
前記メモリコントローラは、前記不揮発性メモリに対する読み出し/書き込み/消去を行うための制御プログラムを記憶するための記憶部を含み、前記制御プログラムを前記記憶部から読み出して実行することで、前記メインプロセッサから発行されるコマンドに従い前記不揮発性メモリへの読み出し/書き込み/消去を行い、
前記メモリコントローラが、前記不揮発性メモリを評価するためのテストファームを実行するよう構成されており、
前記メモリコントローラは、
前記不揮発性メモリへの書き込み及び消去を制御する書き換えコントローラと、
汎用プロセッサとを含み、
前記半導体装置の通常動作時は、前記書き換えコントローラが前記制御プログラムを前記記憶部から読み出して実行することで、前記メインプロセッサから発行されるコマンドに従い前記不揮発性メモリへの読み出し/書き込み/消去を行い、
前記不揮発性メモリの特性を評価するテスト動作時は、前記汎用プロセッサが前記テストファームを実行するよう構成されており、
前記半導体装置は、
前記メインプロセッサと前記メモリコントローラとのインタフェースとして機能し、前記メインプロセッサが発行するコマンドを受け付けて、前記メモリコントローラの仕様に適合するコマンドとして前記メモリコントローラへ発行するインタフェースユニットと、
前記書き換えコントローラ、および、前記汎用プロセッサのいずれかを切り替えて前記インタフェースユニットに接続する第1の選択部とを含み、
前記第1の選択部は、前記半導体装置の通常動作時は、前記書き換えコントローラを前記インタフェースユニットに接続し、前記テスト動作時は、前記汎用プロセッサを前記インタフェースユニットに接続する、半導体装置。
【請求項2】
前記メモリコントローラは、
前記テストファームを記憶するための揮発性メモリを含み、
前記汎用プロセッサは、前記テスト動作時に、前記メモリコントローラの前記揮発性メモリから前記テストファームを読み出して、読みだした前記テストファームを実行するよう構成されている、請求項1に記載の半導体装置。
【請求項3】
前記半導体装置は、
前記メインプロセッサと前記メモリコントローラとで共有する揮発性メモリと、
前記メインプロセッサ、および、前記メモリコントローラのいずれかを切り替えて前記揮発性メモリに接続する第2の選択部とを含み、
前記第2の選択部は、前記半導体装置の通常動作時は、前記メインプロセッサを前記揮発性メモリに接続し、前記テスト動作時は、前記メモリコントローラを前記揮発性メモリに接続し、
前記揮発性メモリは、前記テストファームを記憶するよう構成されており、
前記汎用プロセッサは、前記テスト動作時に、前記揮発性メモリから前記テストファームを読み出して、読みだした前記テストファームを実行するよう構成されている、請求項1に記載の半導体装置。
【請求項4】
前記半導体装置は、
前記メインプロセッサと前記メモリコントローラとで共有する揮発性メモリと、
前記メインプロセッサ、および、前記メモリコントローラのいずれかを切り替えて前記揮発性メモリに接続する選択部とを含み、
前記選択部は、前記半導体装置の通常動作時は、前記メインプロセッサを前記揮発性メモリに接続し、前記半導体装置のテスト動作時は、前記メモリコントローラを前記揮発性メモリに接続し、
前記メモリコントローラは、
前記不揮発性メモリへの書き込み及び消去を制御する書き換えコントローラを含み、
前記半導体装置の通常動作時は、前記書き換えコントローラが前記制御プログラムを前記記憶部から読み出して実行することで、前記メインプロセッサから発行されるコマンドに従い前記不揮発性メモリへの読み出し/書き込み/消去を行い、
前記不揮発性メモリの特性を評価するテスト動作時は、前記書き換えコントローラが前記揮発性メモリから前記テストファームを読み出して、読みだした前記テストファームを実行するよう構成されている、請求項1に記載の半導体装置。
【請求項5】
前記メモリコントローラに含まれる前記記憶部は、読み出し専用のメモリにより構成される、請求項1から4のいずれか1項に記載の半導体装置。
【請求項6】
半導体装置であって、
前記半導体装置の動作を制御するメインプロセッサと、
書き換え可能な不揮発性メモリと、
前記不揮発性メモリへの書き込み及び消去を制御するメモリコントローラと、
前記メインプロセッサと前記メモリコントローラとで共有する揮発性メモリと、
前記メインプロセッサ、および、前記メモリコントローラのいずれかを切り替えて前記揮発性メモリに接続する選択部とを備え、
前記メモリコントローラは、前記不揮発性メモリに対する読み出し/書き込み/消去を行うための制御プログラムを記憶するための記憶部を含み、前記制御プログラムを前記記憶部から読み出して実行することで、前記メインプロセッサから発行されるコマンドに従い前記不揮発性メモリへの読み出し/書き込み/消去を行う、半導体装置。
【請求項7】
前記選択部は、前記半導体装置の通常動作時は、前記メインプロセッサを前記揮発性メ
モリに接続し、前記半導体装置のテスト動作時は、前記メモリコントローラを前記揮発性メモリに接続するよう構成されている、請求項6に記載の半導体装置。
【請求項8】
半導体装置であって、
前記半導体装置の動作を制御するメインプロセッサと、
書き換え可能な不揮発性メモリと、
前記不揮発性メモリへの書き込み及び消去を制御するメモリコントローラと、
前記メインプロセッサと前記メモリコントローラとで共有する揮発性メモリと、
前記メインプロセッサ、および、前記メモリコントローラのいずれかを切り替えて前記揮発性メモリに接続する第1の選択部とを備え、
前記メモリコントローラは、
前記不揮発性メモリへの書き込み及び消去を制御する書き換えコントローラと、
汎用プロセッサとを含み、
前記書き換えコントローラが前記不揮発性メモリに対する読み出し/書き込み/消去を行うための制御プログラムを記憶するための記憶部から前記制御プログラムを読み出して実行することで、前記メインプロセッサから発行されるコマンドに従い前記不揮発性メモリへの読み出し/書き込み/消去を行い、
前記半導体装置は、
前記メインプロセッサと、前記メモリコントローラとのインタフェースとして機能し、前記メインプロセッサが発行するコマンドを受け付けて、前記メモリコントローラの仕様に適合するコマンドとして前記メモリコントローラへ発行するインタフェースユニットと、
前記書き換えコントローラ、および、前記汎用プロセッサのいずれかを切り替えて前記インタフェースユニットに接続する第2の選択部とを含む、半導体装置。
【請求項9】
前記第2の選択部は、前記半導体装置の通常動作時は、前記書き換えコントローラを前記インタフェースユニットに接続し、前記テスト動作時は、前記汎用プロセッサを前記インタフェースユニットに接続し、
前記第1の選択部は、前記半導体装置の通常動作時は、前記メインプロセッサを前記揮発性メモリに接続し、前記半導体装置のテスト動作時は、前記メモリコントローラを前記揮発性メモリに接続する、請求項8に記載の半導体装置。
【請求項10】
プロセッサと、
テストシーケンサと、
ランダムアクセスメモリと、
不揮発性メモリを制御するメモリコントローラと、
前記プロセッサと前記テストシーケンサのいずれかを第1のバスに接続する第1のマルチプレクサと、
前記第1のバスと前記メモリコントローラのいずれかを前記ランダムアクセスメモリに接続する第2のマルチプレクサと、を備え、
通常動作モードにおいて、前記ランダムアクセスメモリは前記プロセッサと前記第1および第2のマルチプレクサを介して接続され、前記プロセッサは前記第1のバスを介して前記メモリコントローラにコマンドを送信して前記不揮発性メモリを制御し、
テストモードにおいて、前記ランダムアクセスメモリは前記フラッシュメモリユニットと前記第2のマルチプレクサを介して接続され、前記テストシーケンサは前記第1のバスを介して前記メモリコントローラにコマンドを送信して前記不揮発性メモリを制御する、半導体装置。
【請求項11】
前記ランダムアクセスメモリは、ユーザプログラムと、テストファームとを格納し、
前記通常動作モードにおいて、前記プロセッサは前記ユーザプログラムに基づいて前記コマンドを送信し、
前記テストモードにおいて、前記テストシーケンサは前記テストファームに基づいて前記コマンドを送信する、請求項10に記載の半導体装置。
【請求項12】
前記メモリコントローラは、前記不揮発性メモリを制御するプログラムカスタマイズ制御部を含み、
前記プログラムカスタマイズ制御部は、前記テストファームを読み出して逐次実行することで前記フラッシュメモリのテストを行う、請求項10に記載の半導体装置。
【請求項13】
前記メモリコントローラは、第2のバスをさらに含み、
前記プログラムカスタマイズ制御部は、前記第2のバスを介して前記テストファームを読み出す、請求項12に記載の半導体装置。
【請求項14】
前記通常動作モードもしくは前記テストモードを指定するフラグをさらに備え、
前記第1および第2のマルチプレクサは、前記フラグに基づいて接続を決定する、請求項10に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、書換可能な不揮発性メモリモジュールを備えた半導体装置に関し、特に、不揮発性メモリの特性評価を容易にするための技術に関する。
【背景技術】
【0002】
マイクロコントローラなどの半導体装置は、種々の電子機器の制御に使用されており、様々な製品に使用されている。半導体装置には、フラッシュメモリなどの書換可能な不揮発性メモリを備えるものがあり、プロセッサの命令実行によってフラッシュメモリに対するデータの読み出し、書き込み、消去が行われる。半導体装置の微細化に伴い、フラッシュメモリに対する書き込みおよび消去の制御が複雑になっている。そのため、フラッシュメモリの試作時、フラッシュメモリを内蔵するMCU(Micro Control Unit)の開発、およびこれら装置の製作時等において、フラッシュメモリに対する特性評価が必要となる。
【0003】
フラッシュメモリなどの不揮発性記憶装置の特性を評価する技術として、例えば、特開2007−34554号公報(特許文献1)がある。特許文献1に記載された技術は、書き込み及び消去可能な不揮発性メモリモジュールと、CPU(Central Processing Unit)とを備える半導体集積回路に関するものである。特許文献1に記載された技術によると、半導体集積回路は、第1の動作モードと、第2の動作モードとを有する。第1の動作モードでは、CPUが、逐次、命令を実行することで、不揮発性メモリモジュールに対する書き込み及び消去を制御する。第2の動作モードでは、CPUから発行されたコマンドに対してローカルCPUが応答し、ローカルCPUが、逐次、命令を実行することで、不揮発性メモリモジュールに対する書き込み及び消去を制御する。半導体集積回路を通常動作させる場合、第2の動作モードで動作させることにより、ローカルCPUが不揮発性メモリモジュールへの書き込み等の処理をする間にCPUがその他の処理を実行することができ、リアルタイム性を維持して処理を行うことができる。半導体集積回路は、不揮発性メモリモジュールに対するテストを行う場合、第1の動作モードと第2の動作モードのどちらも選択することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−34554号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された技術において、不揮発性メモリモジュールに対するテストを行う際に、通常、公開されない制御を実行する場合、ローカルCPUからはデータのアクセスができず、CPUからアクセス可能なRAM(Random Access Memory)に、各種の設定を格納してテストを行う。ユーザは、第1の動作モードを選択し、CPUに動作させるプログラム、および、不揮発性メモリモジュールの評価を行うための各種の設定をRAMに格納し、プログラムを入れ替えて、不揮発性メモリモジュールに対する複数のテスト項目を評価する。
【0006】
しかしながら、特許文献1に記載された技術によると、不揮発性メモリモジュールを評価するためのテストプログラムをCPUによって実行するため、テストプログラムをCPUにあわせて開発する必要がある。
【0007】
不揮発性メモリモジュールのテストは複雑であるため、例えば不揮発性メモリモジュールを内蔵するMCUを開発する場合、開発の度にテストプログラムの開発が必要となり、開発コストが増加する。そのため、不揮発性メモリモジュールの特性の評価を容易にする技術が必要とされている。
【0008】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0009】
一実施形態に従う半導体装置は、メインプロセッサと、書き換え可能な不揮発性メモリと、記不揮発性メモリへの書き込み及び消去を制御するメモリコントローラとを備える。メモリコントローラは、不揮発性メモリに対する読み出し/書き込み/消去を行うための制御プログラムを記憶し、制御プログラムを実行することで、メインプロセッサから発行されるコマンドに従い不揮発性メモリへの読み出し/書き込み/消去を行う。半導体装置において、メモリコントローラが、不揮発性メモリを評価するためのテストファームを実行するよう構成されている。
【発明の効果】
【0010】
一実施の形態に従う半導体装置によれば、CPUと、書換可能な不揮発性メモリモジュールと、不揮発性メモリモジュールのコントローラとを備える構成において、不揮発性メモリモジュールのコントローラがテストファームを実行するため、CPUに依存することなくテストファームを開発することができる。そのため、CPUにあわせてテストファームを開発する場合と比較して、テストファームの開発が容易となる。
【図面の簡単な説明】
【0011】
図1】関連技術における半導体装置であるMCU100の構成を示すブロック図である。
図2】各プログラムの実行主体を示す図である。
図3】実施の形態1の半導体装置であるMCU200の構成を示すブロック図である。
図4】各プログラムの実行主体を示す図である。
図5】実施の形態2の半導体装置であるMCU300の構成を示すブロック図である。
図6】各プログラムの実行主体を示す図である。
図7】実施の形態3の半導体装置であるMCU400の構成を示すブロック図である。
図8】各プログラムの実行主体を示す図である。
図9】実施の形態4の半導体装置であるMCU500の構成を示すブロック図である。
図10】各プログラムの実行主体を示す図である。
図11】実施の形態4の変形例1の半導体装置であるMCU550の構成を示すブロック図である。
図12】各プログラムの実行主体を示す図である。
図13】実施の形態5の半導体装置であるMCU600の構成を示すブロック図である。
図14】各プログラムの実行主体を示す図である。
図15】実施の形態5の変形例の半導体装置であるMCU650の構成を示すブロック図である。
図16】各プログラムの実行主体を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照しつつ、本開示の半導体装置の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0013】
<関連技術>
実施の形態にかかる半導体装置と対比するため、関連する技術について説明する。図1は、関連技術における半導体装置であるMCU100の構成を示すブロック図である。関連技術のMCU100は、書き換え可能な不揮発性のメモリ(フラッシュメモリ)を内蔵するシステムである。図1に示すように、関連技術のMCU100は、CPU11と、BSC(Bus State Controller)12と、RAM13と、フラッシュメモリ15と、FCU41とを含む。FCU41は、FLC(フラッシュ書き込み制御回路)42と、FBSC(ローカルバスコントローラ)44と、F−RAM(フラッシュRAM)45と、FCPU(ローカルCPU)46と、FIMC(CPUインタフェースコントローラ)47とを含む。
【0014】
CPU11は、MCU100の動作を制御するためのプロセッサである。
BSC12は、内部バス21と周辺バス31とを接続し、周辺バス31に接続される各モジュールへのCPU11のアクセスを可能とする。
【0015】
RAM13は、書き換え可能な揮発性のメモリであり、内部バス21を介してCPU11からのアクセスを受け付ける。関連技術のMCU100において、RAM13は、FCU41の外部にあるとともに、ユーザプログラム25およびテストファーム26を記憶する。FCU41からはRAM13にアクセスできない。ユーザプログラム25は、ユーザが任意に作成するプログラムである。テストファーム26は、フラッシュメモリ15の特性を評価するためのプログラムである。フラッシュメモリ15をテストするための各種の設定情報がRAM13に記憶され、CPU11は、RAM13からテストファーム26を読み出してフラッシュメモリ15の各種の特性を評価する。
【0016】
フラッシュメモリ15は、不揮発性のメモリである。例えば、フラッシュメモリ15は、CPU11が動作するためのプログラム、不揮発的に保持すべきデータ等を格納する。フラッシュメモリ15は、電気的に消去及び書き込み可能な多数の不揮発性メモリトランジスタを有する。
【0017】
FCU41は、CPU11から発行されるコマンドに従って、フラッシュメモリ15に対する読み出し/書き込み/消去を行う。CPU11は、内部バス21および周辺バス31を経由して、FCU41と接続する。
【0018】
FLC42は、フラッシュメモリ15に対する書き換えを制御するためのレジスタを有する。例えば、FLC42は、フラッシュメモリ15の書き込みに使用するパルス電圧、フラッシュメモリ15の消去に使用するパルス電圧、ドレイン電圧、ソース電圧などの各電圧レベルの調整結果、MCU100の動作モード(ユーザプログラムに従って動作する「通常動作モード」、フラッシュメモリ15の特性を評価するための「テストモード」など)などが設定される。
【0019】
FBSC44は、ローカルバス43を制御するためのコントローラである。ローカルバス43には、フラッシュメモリ15、FLC42などが接続される。
【0020】
F−RAM45は、FCU41に内蔵されるRAMである。MCU100が通常動作モードで動作している場合、F−RAM45の記憶領域の一部は、CPU11からのアクセスからは保護される。F−RAM45には、FCPU46がフラッシュメモリ15への書き込み/読み出し/消去を実行するためのフラッシュ制御プログラム27が記憶されている。
【0021】
FCPU46は、FCU41の動作を制御するためのプロセッサである。CPU11が発行するコマンドは、FIMC47によって変換される。FCPU46は、汎用的なプロセッサを使用することができる。FCPU46は、フラッシュ制御プログラム27をF−RAM45から読み出して実行することにより、CPU11から発行されるコマンドに従ってフラッシュメモリ15へのアクセスを行うことができる。
【0022】
FIMC47は、周辺バス31に接続され、CPU11からのアクセスに応じてFCPU46を起動する。FIMC47は、FBSC44にコマンドを発行することにより、F−RAM45、FLC42などへのローカルバス43を経由しての制御を行う。
【0023】
関連技術のMCU100において、RAM13の記憶領域の少なくとも一部は、CPU11からはアクセス可能であるが、FCPU46からはアクセスすることができない領域であり、この領域に、フラッシュメモリ15のテストに必要な設定を記憶させてフラッシュメモリ15のテストを行うことができる。フラッシュメモリ15に対し、秘匿したい動作を行う場合、ユーザは、テストファーム26をRAM13に格納し、CPU11によってテストファーム26を実行することでフラッシュメモリ15の特性を評価する。ユーザは、RAM13に格納するプログラムを入れ替えて、フラッシュメモリ15の特性を評価する。
【0024】
この関連技術の構成において、テストファーム26を実行する主体は、CPU11であるため、プログラムの開発者は、テストファーム26を、CPU11の仕様に応じて開発する必要がある。また、テストファーム26は、ノウハウが蓄積されているため、テストファーム26の解析を困難にしつつ、フラッシュメモリ15の特性の評価を可能とすることが望ましい。
【0025】
図2は、各プログラムの実行主体を示す図である。図2に示すように、CPU11は、通常動作モード時はユーザプログラム25を読み出して実行し、テストモード時はテストファーム26を読み出して実行する。また、フラッシュメモリ15へのアクセスは、FCPU46がフラッシュ制御プログラム27を読み出して実行することで実現する。
【0026】
そこで、以下に説明する実施の形態1の半導体装置では、テストファーム26の実行主体を、FCU41とすることで、CPU11に依存しないテストファーム26の開発を可能とする。これにより、テストファーム26の開発を容易にする。
【0027】
<実施の形態1>
図3図4とを参照して実施の形態1の半導体装置について説明する。図3は、実施の形態1の半導体装置であるMCU200の構成を示すブロック図である。
【0028】
図3に示すように、MCU200は、CPU11と、BSC12と、RAM13と、フラッシュメモリ15と、マルチプレクサ16と、マルチプレクサ17と、FCU41と、FACI(Flash Application Command Interface)51と、FTSEQ(Flash Test Sequencer)70を含む。FCU41は、FLC42と、FBSC44と、FPCC(Flash Program Customized Control)48と、ROM49とを含む。
【0029】
FACI51は、CPU11と、FCU41とのインタフェースとなるモジュールである。CPU11が、FCU41に対して発行したコマンドは、内部バス21および周辺バス31を経由してFACI51に出力される。FACI51は、CPU11から受け付けたコマンドを、FPCC48の仕様にあわせたコマンドとしてFPCC48に発行する。CPU11がFCU41に対して発行するコマンドの仕様は、MCU200の仕様による場合があるが、FACI51によって仕様の違いを吸収してFPCC48にコマンドを発行する。FACI51は、テストモード時のみローカルバス43から制御可能なReg99を備えている。Reg99は、フラッシュメモリ15の書き換え時に必要な各種設定レジスタなどを含んでいる。テストモード時、FPCC48は、Reg99を任意に設定することで各種テストを実行可能になる。
【0030】
フラグ52は、MCU200が通常動作モードで動作しているか、テストモードで動作しているかを管理するためのものである。フラグ52は、外部の装置から設定可能である。MCU200は、フラグ52の設定に応じてマルチプレクサ16とマルチプレクサ17とに信号を出力してマルチプレクサ16およびマルチプレクサ17の接続対象を切り替える。
【0031】
テスト用シーケンサ70は、フラッシュメモリ15の特性を評価するための、テスト専用のシーケンサである。テスト用シーケンサ70は、MCU200がテストモードで動作する場合に起動し、内部バス21と周辺バス31とを経由してFPCC48にコマンドを発行する。マルチプレクサ17は、CPU11とテスト用シーケンサ70とのいずれかを内部バス21に接続する。MCU200が通常動作モードで動作する場合、マルチプレクサ17は、CPU11を内部バス21に接続する。MCU200がテストモードで動作する場合、マルチプレクサ17は、テスト用シーケンサ70と内部バス21に接続する。テスト用シーケンサ70は、FPCC48のコマンドの実行完了を検知して、検知の結果を外部の装置へ出力する。
【0032】
関連技術のMCU100と比較すると、実施の形態1のMCU200において、FCU41は、FCPU46に代えてFPCC48を有する。また、フラッシュ制御プログラム27を、ROM49に格納している。FPCC48は、フラッシュメモリ15への書き込み及び消去を制御するコントローラである。FPCC48は、ROM49に格納されたフラッシュ制御プログラム27から命令を取得し、逐次実行することで、フラッシュメモリ15への書き込み及び消去を実行する。MCU200が通常動作モードで動作する場合、CPU11から発行されるコマンドに従ってフラッシュメモリ15への書き込み等を行う。
【0033】
関連技術のMCU100と比較すると、実施の形態1のMCU200は、マルチプレクサ16を有しており、CPU11とFCU41とからRAM13へ接続可能となっている。すなわち、MCU200は、汎用の揮発性メモリであるRAM13を、CPU11とFCU41とで共有する構成としている。通常動作モード時において、マルチプレクサ16は、CPU11とRAM13とを接続する。テストモード時において、マルチプレクサ16は、FCU41とRAM13とを接続する。RAM13は、MCU200が通常動作モードで動作する場合、ユーザプログラム25を格納するためのものである。MCU200は、RAM13にユーザプログラム25を格納した後に、CPU11を起動する。CPU11は、RAM13からの命令のフェッチを開始して、命令を逐次実行する。RAM13は、MCU200がテストモードで動作する場合、テストファーム26を格納する。テストモードでの動作時に、マルチプレクサ16によってFCU41とRAM13とが接続されることにより、FPCC48がRAM13からの命令のフェッチを開始して、逐次命令を実行することで、フラッシュメモリ15のテストを実行する。
【0034】
MCU200が通常動作モードで動作する場合、FPCC48は、FBSC44のバスマスタとなる。ただし、FPCC48が起動していない場合は、FACI51がFBSC44のバスマスタとなる。
【0035】
図4は、各プログラムの実行主体を示す図である。図4に示すように、CPU11は、通常動作モード時はユーザプログラム25をRAM13から読み出して実行する。FPCC48は、テストモード時にRAM13と接続し、RAM13からテストファーム26を読み出して実行する。また、フラッシュメモリ15へのアクセスは、FPCC48がフラッシュ制御プログラム27をROM49から読み出して実行することで実現する。
【0036】
<実施の形態1のまとめ>
実施の形態1のMCU200において、テストモードで動作する場合、FPCC48がテストファームを読み出して逐次実行することで、フラッシュメモリ15のテストを行う。これにより、テストファームを、CPUに依存することなく開発することができ、CPUにあわせて開発する場合と比べてテストファームの開発が容易となる。
【0037】
また、実施の形態1のMCU200において、テストファームは、FPCC48の仕様に対応した専用の言語で記述することもでき、ユーザに対しては、アセンブル後のオブジェクトファイルを提供することもできる。この場合、ユーザ側では、オブジェクトファイルを解読することが困難となるため、フラッシュメモリをテストするためのノウハウを秘匿することができる。
【0038】
実施の形態1のMCU200において、FCU41は、ローカルバス43を介してRAM13にアクセス可能とすることで、テストモードで動作する場合に、FPCC48を動作させるためのプログラムの格納場所にRAM13を使用することができる。そのため、FPCC48を動作させるためのプログラムを格納するための専用のRAMを設ける必要が無くなり、回路面積を削減することができる。
【0039】
<実施の形態2>
図5図6とを参照して実施の形態2の半導体装置について説明する。図5は、実施の形態2の半導体装置であるMCU300の構成を示すブロック図である。
【0040】
図5に示すように、MCU300は、FCU41において、FCPU46とFPCC48とを有し、FCPU46およびFPCC48とFACI51との接続を切り替えるマルチプレクサ53を有する。
【0041】
関連技術と比較すると、実施の形態2のMCU300において、通常動作モードで動作する場合、マルチプレクサ53は、FPCC48とFACI51とを接続し、CPU11から発行されるコマンドに従って、FPCC48がフラッシュメモリ15への書き込み等を行う。FACI51は、MCU300が通常動作モードで動作するか、テストモードで動作するかに応じて、マルチプレクサ53による切替を制御する。
【0042】
FCPU46は、MCU300が通常動作モードで動作する場合は起動せず、テストモードで動作する場合に、CPU11から発行されるコマンドにより起動する。FCPU46は、F−RAM45に格納されるテストファーム26から命令を取得し、命令を逐次実行することで、フラッシュメモリ15のテストを行う。
【0043】
図5の例では、FPCC48の動作を制御するためのフラッシュ制御プログラム27をROM49に格納することとして図示しているが、F−RAM45に格納してもよい。F−RAM45は、FPCC48またはFCPU46の動作を制御するためのプログラムを格納するための揮発性のメモリである。F−RAM45にフラッシュ制御プログラム27を格納する場合、FPCC48が起動する前にF−RAM45にフラッシュ制御プログラム27を転送する。この場合、フラッシュ制御プログラム27は、フラッシュメモリ15の一部の領域に書き込まれているものとする。テストモードで動作する場合、FCPU46が起動するためにF−RAM45にテストファーム26を転送する。
【0044】
RAM13は、汎用的なRAMであり、ユーザプログラム25を格納するためのものである。CPU11は、起動後にRAM13からの命令のフェッチを開始し、逐次、命令を実行する。
【0045】
図6は、各プログラムの実行主体を示す図である。図6に示すように、CPU11は、通常動作モード時はユーザプログラム25をRAM13から読み出して実行する。FCPU46は、テストモード時にF−RAM45からテストファーム26を読み出して実行する。また、フラッシュメモリ15へのアクセスは、FPCC48がフラッシュ制御プログラム27をROM49から読み出して実行することで実現する。
【0046】
<実施の形態2のまとめ>
実施の形態2のMCU300によると、MCU300がテストモードで動作する場合、FCPU46がテストファームを読み出して逐次実行することで、フラッシュメモリ15のテストを行う。これにより、テストファームを、CPU11に依存することなく開発することができ、CPU11にあわせて開発する場合と比べてテストファームの開発が容易となる。
【0047】
また、MCU300において、FCPU46を汎用的なCPUによって実現する場合、テストファームの開発は、一般的な言語で開発可能となり、開発が容易となる。
【0048】
MCU300によると、FCPU46として汎用的なCPUを使用し、フラッシュメモリ15への書き込み消去の制御に特化した専用の書き換えコントローラとしてFPCC48を使用する。通常動作モードとテストモードとで、フラッシュメモリ15への書き込み等に使用するプロセッサを分離することで、フラッシュメモリ15の書き込み消去の特性を最適化しつつ、フレキシブルにフラッシュメモリ15のテストをすることができる。
【0049】
<実施の形態3>
図7図8とを参照して実施の形態3の半導体装置について説明する。図7は、実施の形態3の半導体装置であるMCU400の構成を示すブロック図である。
【0050】
図7に示すように、MCU400は、実施の形態1に示すMCU100と比較すると、FCU41において、FCPU46とFPCC48とを有する。また、MCU400は、実施の形態2に示すMCU300と同様に、通常動作モードで動作する場合、FPCC48がフラッシュメモリ15への書き込み等を行い、テストモードで動作する場合、FCPU46がフラッシュメモリ15に対するテストを行う。
【0051】
図8は、各プログラムの実行主体を示す図である。図8に示すように、CPU11は、通常動作モード時はユーザプログラム25をRAM13から読み出して実行する。FCPU46は、テストモード時にF−RAM45からテストファーム26を読み出して実行する。また、フラッシュメモリ15へのアクセスは、FPCC48がフラッシュ制御プログラム27をROM49から読み出して実行することで実現する。
【0052】
<実施の形態3のまとめ>
実施の形態3のMCU400によると、MCU400がテストモードで動作する場合、FCPU46がテストファームを読み出して逐次実行することで、フラッシュメモリ15のテストを行う。これにより、テストファームを、CPU11に依存することなく開発することができ、CPU11にあわせて開発する場合と比べてテストファームの開発が容易となる。
【0053】
また、MCU400において、FCU41は、ローカルバス43を介してRAM13にアクセス可能とすることで、テストモードで動作する場合に、FPCC48を動作させるためのプログラムの格納場所にRAM13を使用することができる。そのため、FPCC48を動作させるためのプログラムを格納するための専用のRAMを設ける必要が無くなり、回路面積を削減することができる。
【0054】
<実施の形態4>
図9図10とを参照して実施の形態4の半導体装置について説明する。
【0055】
図9は、実施の形態4の半導体装置であるMCU500の構成を示すブロック図である。
【0056】
図10は、各プログラムの実行主体を示す図である。
図9に示すように、MCU500は、実施の形態1に示すMCU200と比較すると、FCU41がFlashマクロ82の内部に配置される。また、FCU41のローカルバス43は、RAM13およびFACI51とは接続されない。フラッシュメモリ15は、情報が保持される不揮発性のメモリセルが、複数行複数列にわたってマトリクス状に配置されるメモリセルアレイを有する。制御回路59は、このフラッシュメモリ15のメモリセルアレイに対し、情報の読み出しおよび書き込みを行うための制御回路である。制御回路は、アクセス対象のメモリセルを特定するための行アドレスをデコードする行デコード回路と、列アドレスをデコードする列デコード回路と、行アドレスおよび列アドレスに基づき選択されたメモリセルへの書き込みを行うライトアンプ回路と、選択されたメモリセルから情報を読み出すセンスアンプ回路等を含む。
【0057】
MCU500において、Flashマクロ82の内部にFPCC48が実装され、Flashマクロ82の外部にFPCC57が実装される。FPCC57は、テストモードでの動作時に処理を制御する制御コアとして機能する。FPCC57は、テストモードでの動作時に、FACI51を経由してCPU11のコマンドを受け付けることで起動する。マルチプレクサ16は、テストモードか通常モードかに応じて、CPU11またはFPCC57のいずれかからのメモリアクセスを受け付ける。テストモードでの動作時に、マルチプレクサ16は、FPCC57からの読み出しを受け付ける。FPCC57は、テストモードでの動作時に、RAM13に格納された命令フェッチを開始して、逐次命令を実行することで、フラッシュメモリ15のテストを実行する。テスト制御コアとして機能するFPCC57は、FCU41の内部のFPCC48の起動も可能である。
【0058】
<実施の形態4のまとめ>
実施の形態4のMCU500によると、テストモードで動作させるためのプログラムの格納場所に、Flashマクロ82の外部のメモリを使用することができる。また、テストモードで動作させるためのプロセッサを、Flashマクロ82の外部に配置することができる。
【0059】
<実施の形態4の変形例1>
図11は、実施の形態4の変形例1の半導体装置であるMCU550の構成を示すブロック図である。
【0060】
図12は、各プログラムの実行主体を示す図である。
マルチプレクサ16は、テストモードか通常モードかに応じて、CPU11またはFPCC57のいずれかからのメモリアクセスを受け付ける。テストモードでの動作時に、マルチプレクサ16は、FPCC57からの読み出しを受け付ける。実施の形態1の変形例1において、FPCC57は、外部装置(テスター)からの信号入力をテスト用インタフェース(Test I/F)81で受け付けることで起動する。
【0061】
<実施の形態4の変形例2>
図9に示す実施の形態4の半導体装置であるMCU500において、Flashマクロ82の外部にFPCC57を実装しているが、このFPCC57に代えて、汎用的なプロセッサであるFCPU46を使用することとしてもよい。すなわち、汎用的なプロセッサであるFCPU46をFlashマクロ82の外部に配置して、このFCPU46がテストファーム26を読み出して逐次実行することで、フラッシュメモリ15のテストを行うこととしてもよい。
【0062】
<実施の形態4の変形例3>
また、図11に示す実施の形態4の変形例1の半導体装置であるMCU550において、Flashマクロ82の外部にFPCC57を実装しているが、このFPCC57に代えて、汎用的なプロセッサであるFCPU46を使用することとしてもよい。すなわち、汎用的なプロセッサであるFCPU46をFlashマクロ82の外部に配置して、このFCPU46がテストファーム26を読み出して逐次実行することで、フラッシュメモリ15のテストを行うこととしてもよい。
【0063】
<実施の形態5>
図13図14とを参照して実施の形態5の半導体装置について説明する。
【0064】
図13は、実施の形態5の半導体装置であるMCU600の構成を示すブロック図である。
【0065】
図14は、各プログラムの実行主体を示す図である。
図13に示すように、MCU600は、実施の形態2に示すMCU300と比較すると、FCU41がFlashマクロ82の内部に配置される。また、FCU41のローカルバス43は、RAM13およびFACI51とは接続されない。
【0066】
FCPU46とF−RAM45とは、Flashマクロ82の外部に配置される。FCPU46は、テストモードでの動作時に、FACI51を経由してCPU11のコマンドを受け付けることで起動する。マルチプレクサ55は、テストモードか通常モードかに応じて、FACI51またはFCPU46のいずれかの信号をFCU41へ出力する。テストモードでの動作時に、マルチプレクサ55は、FCPU46からの信号をFCU41へ出力する。
【0067】
FCPU46は、FCU41の内部のFPCC48を起動することもできる。FCPU46は、F−RAM45からテストファーム26を読み出して、F−RAM45からの命令フェッチを開始して、逐次命令を実行することで、フラッシュメモリ15のテストを実行する。
【0068】
<実施の形態5のまとめ>
実施の形態5のMCU600によると、テストモードで動作させるためのプログラムの格納場所に、Flashマクロ82の外部のメモリを使用することができる。また、テストモードで動作させるためのプロセッサを、Flashマクロ82の外部に配置することができる。
【0069】
<実施の形態5の変形例>
図15は、実施の形態5の変形例の半導体装置であるMCU650の構成を示すブロック図である。
【0070】
図16は、各プログラムの実行主体を示す図である。
テストモードでの動作時に、FCPU46は、CPU11ではなく、外部装置(テスター)からの信号入力をテスト用インタフェース(Test I/F)81で受け付けることで起動する。
【0071】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0072】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0073】
100,200,300,400,500,550,600,650 MCU、11 CPU、12 BSC、13 RAM、15 フラッシュメモリ、16 マルチプレクサ、17 マルチプレクサ、21 内部バス、25 ユーザプログラム、26 テストファーム、27 フラッシュ制御プログラム、31 周辺バス、41 FCU、42 FLC、43 ローカルバス、44 FBSC、45 F−RAM、46 FCPU、47 FIMC、48 FPCC、49 ROM、51 FACI、52 フラグ、53 マルチプレクサ、55 マルチプレクサ、57 FPCC、59 制御回路、70 テスト用シーケンサ、81 テスト用インタフェース、82 Flashマクロ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16