(57)【要約】【課題】センスアンプにより消費される電力を低減すること。【解決手段】一実施の形態に係る半導体装置は、第１のメモリセルアレイに接続された第１のセンスアンプ群と、第２のメモリセルアレイに接続された第２のセンスアンプ群と、読み出された命令コードに基づいてミスアラインメントを検出するミスアラインメント検出部と、を備えている。ミスアラインメントの検出結果に基づいて、第１及び第２のセンスアンプ群の駆動を制御する。【選択図】図１
2014164436.tif 000002
【特許請求の範囲】
【請求項１】
命令コードが格納された第１及び第２のメモリセルアレイと、
前記第１のメモリセルアレイに接続された第１のセンスアンプ群と、
前記第２のメモリセルアレイに接続された第２のセンスアンプ群と、
読み出された前記命令コードに基づいて、ミスアラインメントを検出するミスアラインメント検出部と、を備え、
前記ミスアラインメントの検出結果に基づいて、前記第１及び第２のセンスアンプ群の駆動を制御する、を備えた半導体装置。
【請求項２】
前記ミスアラインメントが検出された場合、前記第１のセンスアンプ群を駆動せず、前記第２のセンスアンプ群を駆動し、
前記ミスアラインメントが検出されない場合、前記第１及び第２のセンスアンプ群を駆動する、
請求項１に記載の半導体装置。
【請求項３】
ミスアラインメント検出部は、
前記命令コードに含まれる分岐命令及び当該分岐命令が指定する分岐先のアドレスに基づいて、前記ミスアラインメントを検出する、
請求項１に記載の半導体装置。
【請求項４】
前記ミスアラインメント検出部は、
前記分岐先のアドレスが前記第１のメモリセルアレイに含まれない場合、前記ミスアラインメントを検出し、
前記分岐先のアドレスが前記第１のメモリセルアレイに含まれる場合、前記ミスアラインメントを検出しない、
請求項３に記載の半導体装置。
【請求項５】
第３及び第４のメモリセルアレイと、
前記第３のメモリセルアレイに接続された第３のセンスアンプ群と、
前記第４のメモリセルアレイに接続された第４のセンスアンプ群と、をさらに備え、
前記分岐先のアドレスが前記第１のメモリセルアレイに含まれる場合、前記第１〜第４のセンスアンプ群を駆動し、
前記分岐先のアドレスが前記第２のメモリセルアレイに含まれる場合、前記第１のセンスアンプ群を駆動せず、前記第２〜第４のセンスアンプ群を駆動し、
前記分岐先のアドレスが前記第３のメモリセルアレイに含まれる場合、前記第１及び第２のセンスアンプ群を駆動せず、前記第３及び第４のセンスアンプ群を駆動し、
前記分岐先のアドレスが前記第４のメモリセルアレイに含まれる場合、前記第１〜第３のセンスアンプ群を駆動せず、前記第４のセンスアンプ群を駆動する、
請求項３に記載の半導体装置。
【請求項６】
前記第１及び第２のメモリセルアレイを構成するメモリセルが、電荷蓄積層を有する電界効果トランジスタを含む、
請求項１に記載の半導体装置。
【請求項７】
前記第１及び第２のセンスアンプ群を構成するセンスアンプが、ラッチ型のセンスアンプである、
請求項１に記載の半導体装置。
【請求項８】
命令コードが格納された第１及び第２のメモリセルアレイと、
前記第１のメモリセルアレイに接続された第１のセンスアンプ群と、
前記第２のメモリセルアレイに接続された第２のセンスアンプ群と、を備えた半導体装置の制御方法であって、
読み出された前記命令コードに基づいて、ミスアラインメントを検出し、
前記ミスアラインメントの検出結果に基づいて、前記第１及び第２のセンスアンプ群の駆動を制御する、半導体装置の制御方法。
【請求項９】
前記ミスアラインメントが検出された場合、前記第１のセンスアンプ群を駆動せず、前記第２のセンスアンプ群を駆動し、
前記ミスアラインメントが検出されない場合、前記第１及び第２のセンスアンプ群を駆動する、
請求項８に記載の半導体装置の制御方法。
【請求項１０】
前記ミスアラインメントを検出する際、
前記命令コードに含まれる分岐命令及び当該分岐命令が指定する分岐先のアドレスに基づいて、前記ミスアラインメントを検出する、
請求項８に記載の半導体装置の制御方法。
【請求項１１】
前記ミスアラインメントを検出する際、
前記分岐先のアドレスが前記第１のメモリセルアレイに含まれない場合、前記ミスアラインメントを検出し、
前記分岐先のアドレスが前記第１のメモリセルアレイに含まれる場合、前記ミスアラインメントを検出しない、
請求項１０に記載の半導体装置の制御方法。
【請求項１２】
前記半導体装置が、
第３及び第４のメモリセルアレイと、
前記第３のメモリセルアレイに接続された第３のセンスアンプ群と、
前記第４のメモリセルアレイに接続された第４のセンスアンプ群と、をさらに備え、
前記分岐先のアドレスが前記第１のメモリセルアレイに含まれる場合、前記第１〜第４のセンスアンプ群を駆動し、
前記分岐先のアドレスが前記第２のメモリセルアレイに含まれる場合、前記第１のセンスアンプ群を駆動せず、前記第２〜第４のセンスアンプ群を駆動し、
前記分岐先のアドレスが前記第３のメモリセルアレイに含まれる場合、前記第１及び第２のセンスアンプ群を駆動せず、前記第３及び第４のセンスアンプ群を駆動し、
前記分岐先のアドレスが前記第４のメモリセルアレイに含まれる場合、前記第１〜第３のセンスアンプ群を駆動せず、前記第４のセンスアンプ群を駆動する、
請求項１０に記載の半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及びその制御方法に関し、例えばメモリを備えた半導体装置及びその制御方法に関する。
【背景技術】
【０００２】
近年、各種制御に利用されているマイクロコントローラ（通称マイコン）などの半導体装置では、さらなる低消費電力化が求められている。このような半導体装置は、プログラム（すなわち命令）が格納されたメモリを備えている。そして、メモリは、メモリに格納された命令を読み出すためのセンスアンプを備えている。ここで、上記低消費電力化の一手法として、センスアンプにより消費される電力を低減することが考えられる。
【０００３】
例えば、特許文献１には、読出モードの切り換えによってデータ幅（バス幅）を変化させ、動作させるセンスアンプの数を切り換え可能な半導体記憶装置が開示されている。すなわち、特許文献１では、バス幅の切り換えに対応して、バス幅と同数のセンスアンプのみを動作させることにより、消費電力を低減している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−７３６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
発明者は以下の問題を見出した。
特許文献１では、例えばバス幅が１６ｂｉｔ（２ｂｙｔｅ）の場合、常に１６個のセンスアンプを動作させるため、センスアンプによる消費電力が大きくなってしまう問題があった。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００６】
一実施の形態に係る半導体装置は、読み出された命令コードに基づいてミスアラインメントを検出するミスアラインメント検出部を備え、ミスアラインメントの検出結果に基づいてセンスアンプの駆動を制御する。
【発明の効果】
【０００７】
一実施の形態によれば、センスアンプによる消費電力を低減することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係る半導体装置の構成例を示すブロック図である。
【図２】実施の形態１に係るメモリセルＭＣの等価回路図である。
【図３】実施の形態１に係るセンスアンプＳＡ１０の構成例を示す回路図である。
【図４】実施の形態１に係るセンスアンプＳＡ１０の他の構成例を示す回路図である。
【図５】実施の形態１に係るミスアラインメント検出部２０の構成例を示す回路図である。
【図６Ａ】メモリＭＥＭから読み出された分岐命令を含むプログラムを示す模式図である。
【図６Ｂ】図６Ａに示した分岐命令が実行されるメモリ空間の模式図である。
【図７】メモリＭＥＭにおけるアドレスの割り当てについて説明するための図である。
【図８】比較例１に係る半導体装置の構成例を示すブロック図である。
【図９Ａ】メモリＭＥＭから読み出された分岐命令を含むプログラムを示す模式図である。
【図９Ｂ】図９Ａに示した分岐命令が実行されるメモリ空間の模式図である。
【図１０】実施の形態２に係る半導体装置の構成例を示すブロック図である。
【図１１Ａ】メモリＭＥＭから読み出された分岐命令を含むプログラムを示す模式図である。
【図１１Ｂ】図１１Ａに示した分岐命令が実行されるメモリ空間の模式図である。
【図１２】比較例２に係る半導体装置の構成例を示すブロック図である。
【図１３Ａ】メモリＭＥＭから読み出された分岐命令を含むプログラムを示す模式図である。
【図１３Ｂ】図１３Ａに示した分岐命令が実行されるメモリ空間の模式図である。
【発明を実施するための形態】
【０００９】
以下、具体的な実施の形態について、図面を参照しながら詳細に説明する。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【００１０】
（実施の形態１）
図１を参照して第１の実施の形態に係る半導体装置について説明する。図１は、実施の形態１に係る半導体装置の構成例を示すブロック図である。図１に示すように、実施の形態１に係る半導体装置は、ＣＰＵ（演算部）、メモリＭＥＭ、バス５０を備えている。すなわち、ＣＰＵ及びメモリＭＥＭは、幅１６ビット（２バイト）のバス５０に接続されている。ここで、メモリＭＥＭは、好適にはフラッシュメモリなどの不揮発性メモリからなる命令メモリである。ＣＰＵからの読出要求ｒｅｑに応じて、メモリＭＥＭに格納された命令が読み出され、当該命令をＣＰＵが実行する。
【００１１】
メモリＭＥＭは、１６本のビット線ＢＬ１０〜ＢＬ１７、ＢＬ２０〜ＢＬ２７、２（ｎ＋１）本のワード線ＷＬ１０〜ＷＬ１ｎ、ＷＬ２０〜ＷＬ２ｎ、２つのメモリセルアレイＣＡ１、ＣＡ２、２つのワード線選択部ＷＬＳ１、ＷＬＳ２、２つのビット線選択部ＢＬＳ１、ＢＬＳ２、２つのセンスアンプ群ＳＡＧ１、ＳＡＧ２、センスアンプ駆動制御部１０、ミスアラインメント検出部２０を備えている。
【００１２】
図１に示すように、（ｎ＋１）本のワード線ＷＬ１０〜ＷＬ１ｎと８本のビット線ＢＬ１０〜ＢＬ１７との交差部のそれぞれにメモリセルＭＣが１つずつ形成されている。すなわち、マトリクス状に配置された８×（ｎ＋１）個のメモリセルＭＣが、メモリセルアレイＣＡ１を構成している。
【００１３】
ここで、図２を用いて、メモリＭＥＭがフラッシュメモリである場合のメモリセルＭＣについて説明する。図２は、実施の形態１に係るメモリセルＭＣの等価回路図である。図２に示すメモリセルＭＣは、例えばＭＯＮＯＳ（Metal Oxide Nitride Oxide Semiconductor）型の電界効果トランジスタである。このトランジスタは制御ゲートＣＧ、電荷蓄積層（Charge Storage Layer）ＣＳＬ、ソースＳ、ドレインＤを備えている。ＭＯＮＯＳ型トランジスタでは、窒化シリコン膜からなる電荷蓄積層ＣＳＬに電荷が蓄積されることにより、値が書き込まれたり、消去されたりする。
【００１４】
図２のメモリセルＭＣでは、制御ゲートＣＧがワード線ＷＬ１０に接続されている。すなわち、各メモリセルＭＣの制御ゲートＣＧはワード線に接続されている。図２のメモリセルＭＣでは、ドレインＤがビット線ＢＬ１０に接続されている。すなわち、各メモリセルＭＣのドレインＤはビット線に接続されている。図２に示すように、各メモリセルＭＣのソースＳは接地されている。ワード線が活性化されると、ビット線を介して、メモリセルＭＣに保持された値が読み出される。
【００１５】
（ｎ＋１）本のワード線ＷＬ１０〜ＷＬ１ｎは、ワード線選択部ＷＬＳ１に接続されている。ワード線選択部ＷＬＳ１は、読出アドレス信号（不図示）に応じて、（ｎ＋１）本のワード線ＷＬ１０〜ＷＬ１ｎのうちのいずれか１本を選択する。例えば、ワード線ＷＬ１０が選択されると、ワード線ＷＬ１０に接続された８個のメモリセルＭＣが読出可能となる。
【００１６】
ビット線選択部ＢＬＳ１には、８本のビット線ＢＬ１０〜１７が接続されている。ビット線選択部ＢＬＳ１は、メモリセルアレイＣＡ１とセンスアンプ群ＳＡＧ１との間に設けられている。すなわち、メモリセルアレイＣＡ１は、ビット線選択部ＢＬＳ１を介して、センスアンプ群ＳＡＧ１に接続される。
【００１７】
センスアンプ群ＳＡＧ１は、８個のセンスアンプＳＡ１０〜ＳＡ１７から構成されている。センスアンプＳＡ１０〜ＳＡ１７は、それぞれビット線ＢＬ１０〜ＢＬ１７に接続されており、選択されたメモリセルＭＣが保持する値を増幅して、バス５０に出力する。センスアンプＳＡ１０〜ＳＡ１７には、センスアンプ駆動制御部１０から出力されたセンスイネーブル信号ｓｅ１が入力される。センスイネーブル信号ｓｅ１はセンスアンプＳＡ１０〜ＳＡ１７（すなわちセンスアンプ群ＳＡＧ１）の駆動／停止を制御するためのイネーブル信号である。例えばセンスイネーブル信号ｓｅ１がＨ（Ｈｉｇｈ）の場合、センスアンプＳＡ１０〜ＳＡ１７が駆動し、センスイネーブル信号ｓｅ１がＬ（Ｌｏｗ）の場合、センスアンプＳＡ１０〜ＳＡ１７が停止する。
【００１８】
ここで、図３を参照して、センスアンプの構成について説明する。図３は、実施の形態１に係るセンスアンプＳＡ１０の構成例を示す回路図である。その他のセンスアンプＳＡ１１〜ＳＡ１７、ＳＡ２０〜ＳＡ２７もセンスアンプＳＡ１０と同様の構成を有している。センスアンプＳＡ１０は、ラッチ型のセンスアンプであり、一対のインバータを備えている。具体的には、一方のインバータは、ＰチャネルＭＯＳ（Metal Oxide Semiconductor）トランジスタＰ１とＮチャネルＭＯＳトランジスタＮ１から構成されている。他方のインバータは、ＰチャネルＭＯＳトランジスタＰ２とＮチャネルＭＯＳトランジスタＮ２から構成されている。
【００１９】
ＰチャネルＭＯＳトランジスタＰ１、Ｐ２のソースは、共に電源（電源電圧ＶＤＤ）に接続されている。ＰチャネルＭＯＳトランジスタＰ１のドレインはＮチャネルＭＯＳトランジスタＮ１のドレインに接続されている。ＰチャネルＭＯＳトランジスタＰ１のゲートとＮチャネルＭＯＳトランジスタＮ１のゲートとは互いに接続されている。ＰチャネルＭＯＳトランジスタＰ２のドレインはＮチャネルＭＯＳトランジスタＮ２のドレインに接続されている。ＰチャネルＭＯＳトランジスタＰ２のゲートとＮチャネルＭＯＳトランジスタＮ２のゲートとは互いに接続されている。ＮチャネルＭＯＳトランジスタＮ１、Ｎ２のソースは、共にＮチャネルＭＯＳトランジスタＮ３のドレインに接続されている。そして、ＮチャネルＭＯＳトランジスタＮ３のソースは接地されている。
【００２０】
ＰチャネルＭＯＳトランジスタＰ１のドレインとＮチャネルＭＯＳトランジスタＮ１のドレインとが接続されたノードは、ビット線ＢＬ１０に接続されている。また、ＰチャネルＭＯＳトランジスタＰ２のゲートとＮチャネルＭＯＳトランジスタＮ２のゲートとが互いに接続されたノードも、ビット線ＢＬ１０に接続されている。一方、ＰチャネルＭＯＳトランジスタＰ２のドレインとＮチャネルＭＯＳトランジスタＮ２のドレインとが接続されたノードには、参照電圧Ｖｒｅｆが与えられている。また、ＰチャネルＭＯＳトランジスタＰ１のゲートとＮチャネルＭＯＳトランジスタＮ１のゲートとが互いに接続されたノードにも、参照電圧Ｖｒｅｆが与えられている。
【００２１】
センスアンプ駆動用のスイッチとして機能するＮチャネルＭＯＳトランジスタＮ３のゲートには、センスイネーブル信号ｓｅ１が入力される。センスイネーブル信号ｓｅ１がＨになることにより、ＮチャネルＭＯＳトランジスタＮ３がＯＮとなり、センスアンプＳＡ１０が駆動する。そして、ビット線ＢＬ１０と参照電圧Ｖｒｅｆとの間の電位差が増幅される。
【００２２】
図４は、実施の形態１に係るセンスアンプＳＡ１０の他の構成例を示す回路図である。図４に示すセンスアンプＳＡ１０では、図３におけるＰチャネルＭＯＳトランジスタＰ１、Ｐ２のソースと電源（電源電圧ＶＤＤ）との間に、ＰチャネルＭＯＳトランジスタＰ３がさらに設けられている。ＰチャネルＭＯＳトランジスタＰ３も、センスアンプ駆動用のスイッチとして機能する。ＰチャネルＭＯＳトランジスタＰ３のゲートには、センスイネーブル信号ｓｅ１の反転信号が入力される。センスイネーブル信号ｓｅ１がＨになることにより、ＮチャネルＭＯＳトランジスタＮ３及びＰチャネルＭＯＳトランジスタＰ３がＯＮとなり、センスアンプＳＡ１０が駆動する。
【００２３】
図１に戻って説明を続ける。メモリセルアレイＣＡ２は、メモリセルアレイＣＡ１と同様に、（ｎ＋１）本のワード線ＷＬ２０〜ＷＬ２ｎと８本のビット線ＢＬ２０〜ＢＬ２７との交差部にマトリクス状に配置された８×（ｎ＋１）個のメモリセルＭＣから構成されている。
【００２４】
（ｎ＋１）本のワード線ＷＬ２０〜ＷＬ２ｎは、ワード線選択部ＷＬＳ２に接続されている。ワード線選択部ＷＬＳ２は、読出アドレス信号（不図示）に応じて、（ｎ＋１）本のワード線ＷＬ２０〜ＷＬ２ｎのうちのいずれか１本を選択する。例えば、ワード線ＷＬ２０が選択されると、ワード線ＷＬ２０に接続された８個のメモリセルＭＣが読出可能となる。
【００２５】
ビット線選択部ＢＬＳ２には、８本のビット線ＢＬ２０〜ＢＬ２７が接続されている。ビット線選択部ＢＬＳ２は、メモリセルアレイＣＡ２とセンスアンプ群ＳＡＧ２との間に設けられている。すなわち、メモリセルアレイＣＡ２は、ビット線選択部ＢＬＳ２を介して、センスアンプ群ＳＡＧ２に接続される。
【００２６】
センスアンプ群ＳＡＧ２は、８個のセンスアンプＳＡ２０〜ＳＡ２７から構成されている。センスアンプＳＡ２０〜ＳＡ２７は、それぞれビット線ＢＬ２０〜ＢＬ２７に接続されており、選択されたメモリセルＭＣが保持する値を増幅して、バス５０に出力する。センスアンプＳＡ２０〜ＳＡ２７には、センスアンプ駆動制御部１０から出力されたセンスイネーブル信号ｓｅ２が入力される。センスイネーブル信号ｓｅ２はセンスアンプＳＡ２０〜ＳＡ２７（すなわちセンスアンプ群ＳＡＧ２）の駆動／停止を制御するためのイネーブル信号である。例えばセンスイネーブル信号ｓｅ２がＨ（Ｈｉｇｈ）の場合、センスアンプＳＡ２０〜ＳＡ２７が駆動し、センスイネーブル信号ｓｅ２がＬ（Ｌｏｗ）の場合、センスアンプＳＡ２０〜ＳＡ２７が停止する。
【００２７】
センスアンプ駆動制御部１０は、ＣＰＵからの読出要求ｒｅｑ及びミスアラインメント検出部２０からのミスアラインメント検出信号ｍｄに基づいて、センスイネーブル信号ｓｅ１、ｓｅ２を出力する。センスアンプ駆動制御部１０は、ＣＰＵからの読出要求ｒｅｑを受信すると、原則として（ミスアラインメントが検出されない場合）、センスイネーブル信号ｓｅ１、ｓｅ２の両方の値をＨとして、１６個（全て）のセンスアンプＳＡ１０〜ＳＡ１７、ＳＡ２０〜ＳＡ２７を駆動させる。
【００２８】
しかしながら、本実施の形態に係るセンスアンプ駆動制御部１０は、ミスアラインメントが検出されると（例えばミスアラインメント検出信号ｍｄがＨになると）、ＣＰＵからの読出要求ｒｅｑを受信しても、センスイネーブル信号ｓｅ１はＨとせずに、センスイネーブル信号ｓｅ２のみをＨとする。すなわち、センスアンプＳＡ２０〜ＳＡ２７のみが駆動し、センスアンプＳＡ１０〜ＳＡ１７は停止したままとなる。つまり、指定されたアドレスのメモリセルＭＣに接続されたセンスアンプのみを駆動することにより、センスアンプによる消費電力を低減することができる。ミスアラインメントの詳細については、後述する。
【００２９】
ミスアラインメント検出部２０は、読み出された１６ビットの命令にミスアラインメントがあるか否かを判定し、ミスアラインメント検出信号ｍｄを出力する。具体的には、ミスアラインメント検出信号ｍｄは、通常Ｌであり、ミスアラインメントが検出されるとＨへ切り換わる。当然のことながら、ミスアラインメント検出信号ｍｄの極性を反転させてもよい。
【００３０】
ここで、図５を参照して、ミスアラインメント検出部２０の構成例について説明する。図５は、実施の形態１に係るミスアラインメント検出部２０の構成例を示す回路図である。ミスアラインメント検出部２０は、分岐命令判定部２１及びＡＮＤゲートＡＧを備えている。図５に示すように、読み出された１６ビットの命令は、８ビットのオペレーションコード（命令コード）ｏｐ＿ｃｏｄｅ及び８ビットのデータ信号ｄａｔａ／アドレス信号ａｄｄｒを含んでいる。分岐命令判定部２１には８ビットのオペレーションコードｏｐ＿ｃｏｄｅが入力され、分岐命令判定部２１は判定結果に応じて分岐判定信号ｂｄを出力する。すなわち、分岐判定信号ｂｄの値は、通常はＬであって、入力されたオペレーションコードｏｐ＿ｃｏｄｅが分岐命令である場合にＨへ切り換わる。
【００３１】
ＡＮＤゲートＡＧには、分岐命令判定部２１から出力された分岐判定信号ｂｄとアドレス信号ａｄｄｒの最下位ビットとが入力される。そして、ＡＮＤゲートＡＧからミスアラインメント検出信号ｍｄが出力される。つまり、読み出された命令が分岐命令であって、かつ分岐先のアドレスの最下位ビットが１（すなわち分岐先のアドレスが奇数）の場合、ミスアラインメントが発生し、ミスアラインメント検出信号ｍｄの値がＨとなる。
【００３２】
次に、図６Ａ、６Ｂ、図７を参照して、ミスアラインメントが発生した場合の本実施の形態に係る半導体装置の動作について説明する。
図６Ａは、メモリＭＥＭから読み出された分岐命令を含むプログラムを示す模式図である。図６Ｂは、図６Ａに示した分岐命令が実行されるメモリ空間の模式図である。図７は、メモリＭＥＭにおけるアドレスの割り当てについて説明するための図である。つまり、図７に示された実際のメモリＭＥＭにおけるアドレスが、図６Ｂに示されたメモリ空間上のアドレスに対応している。
【００３３】
まず、図７を参照して、メモリＭＥＭにおけるアドレスの割り当てについて説明する。図７は図１におけるメモリＭＥＭの一部を詳細に示したものである。図７に示すように、ワード線ＷＬ１０に接続された８個のメモリセルＭＣにアドレス００００が割り当てられ、ワード線ＷＬ２０に接続された８個のメモリセルＭＣにアドレス０００１が割り当てられている。
【００３４】
以下同様に、ワード線ＷＬ１１に接続された８個のメモリセルＭＣにアドレス０００２が、ワード線ＷＬ１１に接続された８個のメモリセルＭＣにアドレス０００３が割り当てられている。ワード線ＷＬ１２に接続された８個のメモリセルＭＣにアドレス０００４が、ワード線ＷＬ２２に接続された８個のメモリセルＭＣにアドレス０００５が割り当てられている。ワード線ＷＬ１３に接続された８個のメモリセルＭＣにアドレス０００６が、ワード線ＷＬ２３に接続された８個のメモリセルＭＣにアドレス０００７が割り当てられている。ワード線ＷＬ１４に接続された８個のメモリセルＭＣにアドレス０００８が、ワード線ＷＬ２４に接続された８個のメモリセルＭＣに１つのアドレス０００９が割り当てられている。つまり、１バイト（８ビット）毎に１つのアドレスが割り当てられている。
【００３５】
図１に示したように、本実施の形態に係る半導体装置では、バス幅が１６ビット（２バイト）である。そのため、通常（ミスアラインメントが発生しない場合）、アドレス００００と０００１に格納された１６ビット（２バイト）の命令を同時に読み出す。次に、アドレス０００２と０００３に格納された１６ビット（２バイト）の命令を同時に読み出す。次に、アドレス０００４と０００５に格納された１６ビット（２バイト）の命令を同時に読み出す。このように、図７において左右に並んだ（同じ「行」に位置する）２本のワード線に接続された１６個のメモリセルＭＣから同時に命令を読み出すため、１６個のセンスアンプＳＡ１０〜ＳＡ１７、ＳＡ２０〜ＳＡ２７が駆動する。
【００３６】
一方、図６Ａに示された分岐命令「ＪＵＭＰ  ＃０００７」は、アドレス０００７へジャンプせよという命令であって、ミスアラインメントを発生させる命令である。一般化すると、分岐先のアドレスがメモリセルアレイＣＡ１に含まれない場合、ミスアラインメントが発生する。換言すると、分岐先のアドレスがメモリセルアレイＣＡ２に含まれる場合、ミスアラインメントが発生する。一方、分岐先のアドレスがメモリセルアレイＣＡ１に含まれる場合、ミスアラインメントが発生しない。
【００３７】
図６Ｂは、この命令がアドレス０００２〜０００３に格納されていることを示している。分岐命令「ＪＵＭＰ  ＃０００７」が読み出されると、アドレス０００４ではなく０００７へジャンプする。すなわち、アドレス０００７から命令を読み出す。この際、後述する比較例１では、全てのセンスアンプを駆動するが、本実施の形態では、センスアンプＳＡ２０〜ＳＡ２７のみを駆動させ、センスアンプＳＡ１０〜ＳＡ１７については駆動させない。そのため、比較例１よりもセンスアンプによる消費電力を低減することができる。
【００３８】
＜比較例１＞
次に、図８を参照して、本実施の形態の比較例に係る半導体装置について説明する。図８は、比較例１に係る半導体装置の構成例を示すブロック図である。図８に示すように、比較例１に係る半導体装置は、図１に示したミスアラインメント検出部２０を備えていない。
【００３９】
また、比較例１に係るセンスアンプ駆動制御部１は、ＣＰＵからの読出要求ｒｅｑに基づいて、センスイネーブル信号ｓｅを出力する。センスアンプ駆動制御部１は、ＣＰＵからの読出要求ｒｅｑを受信すると、センスイネーブル信号ｓｅの値をＨとして、常に全てのセンスアンプＳＡ１０〜ＳＡ１７及びセンスアンプＳＡ２０〜ＳＡ２７を駆動させる。つまり、ミスアラインメントが発生した場合にも、常に全てのセンスアンプＳＡ１０〜ＳＡ１７及びセンスアンプＳＡ２０〜ＳＡ２７が駆動される。
【００４０】
ここで、図９Ａ、９Ｂを参照して、ミスアラインメントが発生した場合の比較例１に係る半導体装置の動作について説明する。
図９Ａは、メモリＭＥＭから読み出された分岐命令を含むプログラムを示す模式図である。図９Ａは図６Ａと同じである。図９Ｂは、図９Ａに示した分岐命令が実行されるメモリ空間の模式図である。
【００４１】
図９Ａに示された分岐命令「ＪＵＭＰ  ＃０００７」は、図９Ｂに示すように、アドレス０００２〜０００３に格納されている。分岐命令「ＪＵＭＰ  ＃０００７」が読み出されると、アドレス０００４ではなく０００７へジャンプする。すなわち、アドレス０００７から命令を読み出す。この際、比較例１では、全てのセンスアンプが駆動される。つまり、図９Ｂにハッチングで示すように、読み出す必要のないアドレス０００６に属するメモリセルＭＣに接続されたセンスアンプＳＡ１０〜ＳＡ１７も駆動される。
【００４２】
以上に説明したように、比較例１に係る半導体装置は、ミスアラインメント検出部を備えていない。また、比較例１に係る半導体装置では、センスアンプＳＡ１０〜ＳＡ１７（センスアンプ群ＳＡＧ１）とセンスアンプＳＡ２０〜ＳＡ２７（センスアンプ群ＳＡＧ２）とが、共通のセンスイネーブル信号ｓｅにより駆動される。そのため、ミスアラインメントが生じても、全てのセンスアンプが駆動される。
【００４３】
これに対し、本実施の形態に係る半導体装置では、ミスアラインメント検出部２０を備えている。そのため、ミスアラインメントを検出することができる。また、センスアンプＳＡ１０〜ＳＡ１７（センスアンプ群ＳＡＧ１）はセンスイネーブル信号ｓｅ１により駆動され、センスアンプＳＡ２０〜ＳＡ２７（センスアンプ群ＳＡＧ２）はセンスイネーブル信号ｓｅ２により駆動される。そのため、偶数アドレスに属するメモリセルＭＣに接続されたセンスアンプ群ＳＡＧ１と、奇数アドレスに属するメモリセルＭＣに接続されたセンスアンプ群ＳＡＧ２とを、別々に駆動することができる。
【００４４】
このような構成により、本実施の形態に係る半導体装置では、ミスアラインメントが発生した場合（奇数アドレスに分岐する分岐命令が実行された場合）、読み出す必要のない偶数アドレスに属するメモリセルＭＣに接続されたセンスアンプＳＡ１０〜ＳＡ１７を駆動しないように制御することができる。そのため、センスアンプによる消費電力を低減することができる。
【００４５】
（実施の形態２）
次に、図１０を参照して第２の実施の形態に係る半導体装置について説明する。図１０は、実施の形態２に係る半導体装置の構成例を示すブロック図である。図１０に示すように、実施の形態２に係る半導体装置は、実施の形態１に係る半導体装置と同様に、ＣＰＵ（演算部）、メモリＭＥＭ、バス２５０を備えている。すなわち、ＣＰＵ及びメモリＭＥＭは幅３２ビット（４バイト）のバス２５０に接続されている。実施の形態１に係る半導体装置ではバス幅が１６ビット（２バイト）であったのに対し、実施の形態２に係る半導体装置ではバス幅が３２ビット（４バイト）である。
【００４６】
メモリＭＥＭは、３２本のビット線ＢＬ１０〜ＢＬ１７、ＢＬ２０〜ＢＬ２７、ＢＬ３０〜ＢＬ３７、ＢＬ４０〜ＢＬ４７、４（ｎ＋１）本のワード線ＷＬ１０〜ＷＬ１ｎ、ＷＬ２０〜ＷＬ２ｎ、ＷＬ３０〜ＷＬ３ｎ、ＷＬ４０〜ＷＬ４ｎ、４つのメモリセルアレイＣＡ１、ＣＡ２、ＣＡ３、ＣＡ４、４つのワード線選択部ＷＬＳ１、ＷＬＳ２、ＷＬＳ３、ＷＬＳ４、４つのビット線選択部ＢＬＳ１、ＢＬＳ２、ＢＬＳ３、ＢＬＳ４、４つのセンスアンプ群ＳＡＧ１、ＳＡＧ２、ＳＡＧ３、ＳＡＧ４、センスアンプ駆動制御部２１０、ミスアラインメント検出部２２０を備えている。
【００４７】
図１０に示すように、（ｎ＋１）本のワード線ＷＬ１０〜ＷＬ１ｎと８本のビット線ＢＬ１０〜ＢＬ１７との交差部のそれぞれにメモリセルＭＣが１つずつ形成されている。すなわち、マトリクス状に配置された８×（ｎ＋１）個のメモリセルＭＣが、メモリセルアレイＣＡ１を構成している。
【００４８】
（ｎ＋１）本のワード線ＷＬ１０〜ＷＬ１ｎは、ワード線選択部ＷＬＳ１に接続されている。ワード線選択部ＷＬＳ１は、読出アドレス信号（不図示）に応じて、（ｎ＋１）本のワード線ＷＬ１０〜ＷＬ１ｎのうちのいずれか１本を選択する。例えば、ワード線ＷＬ１０が選択されると、ワード線ＷＬ１０に接続された８個のメモリセルＭＣが読出可能となる。
【００４９】
ビット線選択部ＢＬＳ１には、８本のビット線ＢＬ１０〜ＢＬ１７が接続されている。ビット線選択部ＢＬＳ１は、メモリセルアレイＣＡ１とセンスアンプ群ＳＡＧ１との間に設けられている。すなわち、メモリセルアレイＣＡ１は、ビット線選択部ＢＬＳ１を介して、センスアンプ群ＳＡＧ１に接続される。
【００５０】
センスアンプ群ＳＡＧ１は、８個のセンスアンプＳＡ１０〜ＳＡ１７から構成されている。センスアンプＳＡ１０〜ＳＡ１７は、それぞれビット線ＢＬ１０〜ＢＬ１７に接続されており、選択されたメモリセルＭＣが保持する値を増幅して、バス２５０に出力する。センスアンプＳＡ１０〜ＳＡ１７には、センスアンプ駆動制御部２１０から出力されたセンスイネーブル信号ｓｅ１が入力される。センスイネーブル信号ｓｅ１はセンスアンプＳＡ１０〜ＳＡ１７（すなわちセンスアンプ群ＳＡＧ１）の駆動／停止を制御するためのイネーブル信号である。例えばセンスイネーブル信号ｓｅ１がＨ（Ｈｉｇｈ）の場合、センスアンプＳＡ１０〜ＳＡ１７が駆動し、センスイネーブル信号ｓｅ１がＬ（Ｌｏｗ）の場合、センスアンプＳＡ１０〜ＳＡ１７が停止する。
【００５１】
メモリセルアレイＣＡ２は、メモリセルアレイＣＡ１と同様に、（ｎ＋１）本のワード線ＷＬ２０〜ＷＬ２ｎと８本のビット線ＢＬ２０〜ＢＬ２７との交差部にマトリクス状に配置された８×（ｎ＋１）個のメモリセルＭＣから構成されている。
【００５２】
（ｎ＋１）本のワード線ＷＬ２０〜ＷＬ２ｎは、ワード線選択部ＷＬＳ２に接続されている。ワード線選択部ＷＬＳ２は、読出アドレス信号（不図示）に応じて、（ｎ＋１）本のワード線ＷＬ２０〜ＷＬ２ｎのうちのいずれか１本を選択する。例えば、ワード線ＷＬ２０が選択されると、ワード線ＷＬ２０に接続された８個のメモリセルＭＣが読出可能となる。
【００５３】
ビット線選択部ＢＬＳ２には、８本のビット線ＢＬ２０〜ＢＬ２７が接続されている。ビット線選択部ＢＬＳ２は、メモリセルアレイＣＡ２とセンスアンプ群ＳＡＧ２との間に設けられている。すなわち、メモリセルアレイＣＡ２は、ビット線選択部ＢＬＳ２を介して、センスアンプ群ＳＡＧ２に接続される。
【００５４】
センスアンプ群ＳＡＧ２は、８個のセンスアンプＳＡ２０〜ＳＡ２７から構成されている。センスアンプＳＡ２０〜ＳＡ２７は、それぞれビット線ＢＬ２０〜ＢＬ２７に接続されており、選択されたメモリセルＭＣが保持する値を増幅して、バス２５０に出力する。センスアンプＳＡ２０〜ＳＡ２７には、センスアンプ駆動制御部２１０から出力されたセンスイネーブル信号ｓｅ２が入力される。センスイネーブル信号ｓｅ２はセンスアンプＳＡ２０〜ＳＡ２７（すなわちセンスアンプ群ＳＡＧ２）の駆動／停止を制御するためのイネーブル信号である。例えばセンスイネーブル信号ｓｅ２がＨの場合、センスアンプＳＡ２０〜ＳＡ２７が駆動し、センスイネーブル信号ｓｅ２がＬの場合、センスアンプＳＡ２０〜ＳＡ２７が停止する。
【００５５】
メモリセルアレイＣＡ３も、メモリセルアレイＣＡ１と同様に、（ｎ＋１）本のワード線ＷＬ３０〜ＷＬ３ｎと８本のビット線ＢＬ３０〜ＢＬ３７との交差部にマトリクス状に配置された８×（ｎ＋１）個のメモリセルＭＣから構成されている。
【００５６】
（ｎ＋１）本のワード線ＷＬ３０〜ＷＬ３ｎは、ワード線選択部ＷＬＳ３に接続されている。ワード線選択部ＷＬＳ３は、読出アドレス信号（不図示）に応じて、（ｎ＋１）本のワード線ＷＬ３０〜ＷＬ３ｎのうちのいずれか１本を選択する。例えば、ワード線ＷＬ３０が選択されると、ワード線ＷＬ３０に接続された８個のメモリセルＭＣが読出可能となる。
【００５７】
ビット線選択部ＢＬＳ３には、８本のビット線ＢＬ３０〜ＢＬ３７が接続されている。ビット線選択部ＢＬＳ３は、メモリセルアレイＣＡ３とセンスアンプ群ＳＡＧ３との間に設けられている。すなわち、メモリセルアレイＣＡ３は、ビット線選択部ＢＬＳ３を介して、センスアンプ群ＳＡＧ３に接続される。
【００５８】
センスアンプ群ＳＡＧ３は、８個のセンスアンプＳＡ３０〜ＳＡ３７から構成されている。センスアンプＳＡ３０〜ＳＡ３７は、それぞれビット線ＢＬ３０〜ＢＬ３７に接続されており、選択されたメモリセルＭＣが保持する値を増幅して、バス２５０に出力する。センスアンプＳＡ３０〜ＳＡ３７には、センスアンプ駆動制御部２１０から出力されたセンスイネーブル信号ｓｅ３が入力される。センスイネーブル信号ｓｅ３はセンスアンプＳＡ３０〜ＳＡ３７（すなわちセンスアンプ群ＳＡＧ３）の駆動／停止を制御するためのイネーブル信号である。例えばセンスイネーブル信号ｓｅ３がＨの場合、センスアンプＳＡ３０〜ＳＡ３７が駆動し、センスイネーブル信号ｓｅ３がＬの場合、センスアンプＳＡ３０〜ＳＡ３７が停止する。
【００５９】
メモリセルアレイＣＡ４も、メモリセルアレイＣＡ１と同様に、（ｎ＋１）本のワード線ＷＬ４０〜ＷＬ４ｎと８本のビット線ＢＬ４０〜ＢＬ４７との交差部にマトリクス状に配置された８×（ｎ＋１）個のメモリセルＭＣから構成されている。
【００６０】
（ｎ＋１）本のワード線ＷＬ４０〜ＷＬ４ｎは、ワード線選択部ＷＬＳ４に接続されている。ワード線選択部ＷＬＳ４は、読出アドレス信号（不図示）に応じて、（ｎ＋１）本のワード線ＷＬ４０〜ＷＬ４ｎのうちのいずれか１本を選択する。例えば、ワード線ＷＬ４０が選択されると、ワード線ＷＬ４０に接続された８個のメモリセルＭＣが読出可能となる。
【００６１】
ビット線選択部ＢＬＳ４には、８本のビット線ＢＬ４０〜ＢＬ４７が接続されている。ビット線選択部ＢＬＳ４は、メモリセルアレイＣＡ４とセンスアンプ群ＳＡＧ４との間に設けられている。すなわち、メモリセルアレイＣＡ４は、ビット線選択部ＢＬＳ４を介して、センスアンプ群ＳＡＧ４に接続される。
【００６２】
センスアンプ群ＳＡＧ４は、８個のセンスアンプＳＡ４０〜ＳＡ４７から構成されている。センスアンプＳＡ４０〜ＳＡ４７は、それぞれビット線ＢＬ４０〜ＢＬ４７に接続されており、選択されたメモリセルＭＣが保持する値を増幅して、バス２５０に出力する。センスアンプＳＡ４０〜ＳＡ４７には、センスアンプ駆動制御部２１０から出力されたセンスイネーブル信号ｓｅ４が入力される。センスイネーブル信号ｓｅ４はセンスアンプＳＡ４０〜ＳＡ４７（すなわちセンスアンプ群ＳＡＧ４）の駆動／停止を制御するためのイネーブル信号である。例えばセンスイネーブル信号ｓｅ４がＨの場合、センスアンプＳＡ４０〜ＳＡ４７が駆動し、センスイネーブル信号ｓｅ４がＬの場合、センスアンプＳＡ４０〜ＳＡ４７が停止する。
【００６３】
センスアンプ駆動制御部２１０は、ＣＰＵからの読出要求ｒｅｑ及びミスアラインメント検出部２２０からのミスアラインメント検出信号ｍｄに基づいて、センスイネーブル信号ｓｅ１、ｓｅ２、ｓｅ３、ｓｅ４を出力する。センスアンプ駆動制御部２１０は、ＣＰＵからの読出要求ｒｅｑを受信すると、原則としてセンスイネーブル信号ｓｅ１、ｓｅ２、ｓｅ３、ｓｅ４の全ての値をＨとして、３２個（全て）のセンスアンプＳＡ１０〜ＳＡ１７、ＳＡ２０〜ＳＡ２７、ＳＡ３０〜ＳＡ３７、ＳＡ４０〜ＳＡ４７を駆動させる。
【００６４】
しかしながら、本実施の形態に係るセンスアンプ駆動制御部２１０は、ミスアラインメントを検出した場合、ＣＰＵからの読出要求ｒｅｑを受信しても、読み出しに必要なセンスアンプのみを駆動する。本実施の形態では、ミスアラインメント検出信号ｍｄの値に応じて、駆動するセンスアンプを切り換える。このような構成により、効果的にセンスアンプによる消費電力を低減することができる。以下により詳細に説明する。
【００６５】
ミスアラインメント検出部２２０は、読み出された３２ビットの命令にミスアラインメントがあるか否かを判定し、ミスアラインメント検出信号ｍｄを出力する。具体的には、ミスアラインメント検出信号ｍｄは、０〜３の４つの値を取る。例えば、ｍｄ＝０はミスアラインメントが検出されない場合、ｍｄ＝１はミスアラインメントが検出され、分岐先のアドレスが４（バス幅４バイト）の倍数＋１の場合、ｍｄ＝２はミスアラインメントが検出され、分岐先のアドレスが４（バス幅４バイト）の倍数＋２の場合、ｍｄ＝３はミスアラインメントが検出され、分岐先のアドレスが４（バス幅４バイト）の倍数＋３の場合となるように設定することができる。
【００６６】
ここで、ｍｄ＝０の場合、センスイネーブル信号ｓｅ１〜ｓｅ４の値が全てＨとなる。ｍｄ＝１の場合、センスイネーブル信号ｓｅ１の値がＬ、センスイネーブル信号ｓｅ２〜ｓｅ４の値がＨとなる。ｍｄ＝２の場合、センスイネーブル信号ｓｅ１、ｓｅ２の値がＬ、センスイネーブル信号ｓｅ３、ｓｅ４の値がＨとなる。ｍｄ＝３の場合、センスイネーブル信号ｓｅ１〜ｓｅ３の値がＬ、センスイネーブル信号ｓｅ４の値のみがＨとなる。このように、分岐命令によりミスアラインメントが発生する場合、分岐先のアドレスに応じて、読み出しに必要のないセンスアンプを駆動しない（読み出しに必要なセンスアンプのみを駆動する）ことにより、消費電力を低減することができる。
【００６７】
次に、図１１Ａ、１１Ｂを参照して、ミスアラインメントが発生した場合の本実施の形態に係る半導体装置の動作について説明する。
図１１Ａは、メモリＭＥＭから読み出された分岐命令を含むプログラムを示す模式図である。図１１Ｂは、図１１Ａに示した分岐命令が実行されるメモリ空間の模式図である。
【００６８】
ここで、図１０を参照して、メモリＭＥＭにおけるアドレスの割り当てについて説明する。ワード線ＷＬ１０に接続された８個のメモリセルＭＣにアドレス００００が割り当てられ、ワード線ＷＬ２０に接続された８個のメモリセルＭＣにアドレス０００１が割り当てられ、ワード線ＷＬ３０に接続された８個のメモリセルＭＣにアドレス０００２が割り当てられ、ワード線ＷＬ４０に接続された８個のメモリセルＭＣにアドレス０００３が割り当てられる。
【００６９】
同様に、ワード線ＷＬ１１に接続された８個のメモリセルＭＣにアドレス０００４が割り当てられ、ワード線ＷＬ２１に接続された８個のメモリセルＭＣにアドレス０００５が割り当てられ、ワード線ＷＬ３１に接続された８個のメモリセルＭＣにアドレス０００６が割り当てられ、ワード線ＷＬ４１に接続された８個のメモリセルＭＣにアドレス０００７が割り当てられる。以下同様なので、説明を省略する。
【００７０】
図１１Ｂに示されたメモリ空間のアドレスは、上記アドレスの割り当てに対応したものである。図１１Ｂの最上段の４つのマス目はアドレス００００〜０００３を示している。２段目の４つのマス目はアドレス０００４〜０００７を示している。３段目の４つのマス目はアドレス０００８〜００１１を示している。４段目の４つのマス目はアドレス００１２〜００１５を示している。そして、５段目の４つのマス目はアドレス００１６〜００１９を示している。
【００７１】
図１０に示したように、本実施の形態に係る半導体装置では、バス幅が３２ビット（４バイト）である。そのため、通常（ミスアラインメントが発生しない場合）、アドレス００００〜０００３に格納された３２ビット（４バイト）の命令を同時に読み出す。次に、アドレス０００４〜０００７に格納された３２ビット（４バイト）の命令を同時に読み出す。次に、アドレス０００８〜０００１１に格納された３２ビット（４バイト）の命令を同時に読み出す。このように、図１０において左右に整列された（同じ「行」に位置する）４本のワード線に接続された３２個のメモリセルＭＣから同時に命令を読み出す。そのため、３２個のセンスアンプＳＡ１０〜ＳＡ１７、ＳＡ２０〜ＳＡ２７、ＳＡ３０〜ＳＡ３７、ＳＡ４０〜ＳＡ４７が駆動する。
【００７２】
一方、図１１Ａに示された分岐命令「ＪＵＭＰ  ＃００１５」は、アドレス００１５へジャンプせよという命令であって、ミスアラインメントを発生させる命令である。一般化すると、分岐先のアドレスが４つのメモリセルアレイＣＡ１〜ＣＡ４のうち先頭のメモリセルアレイＣＡ１に含まれない場合、ミスアラインメントが発生する。換言すると、分岐先のアドレスがメモリセルアレイＣＡ２〜ＣＡ４のいずれかに含まれる場合、ミスアラインメントが発生する。一方、分岐先のアドレスが先頭のメモリセルアレイＣＡ１に含まれる場合、ミスアラインメントが発生しない。
【００７３】
図１１Ｂは、この命令がアドレス０００４〜０００７に格納されていることを示している。分岐命令「ＪＵＭＰ  ＃００１５」が読み出されると、アドレス０００８ではなく００１５へジャンプする。すなわち、アドレス００１５から命令を読み出す。この際、後述する比較例２では、３２個（全て）のセンスアンプを駆動するが、本実施の形態では、８個のセンスアンプＳＡ４０〜ＳＡ４７のみを駆動させ、２４個のセンスアンプＳＡ１０〜ＳＡ１７、ＳＡ２０〜ＳＡ２７、ＳＡ３０〜ＳＡ３７については駆動させない。そのため、比較例２よりもセンスアンプによる消費電力を低減することができる。
【００７４】
＜比較例２＞
次に、図１２を参照して、本実施の形態の比較例に係る半導体装置について説明する。図１２は、比較例２に係る半導体装置の構成例を示すブロック図である。図１２に示すように、比較例２に係る半導体装置は、図１０に示したミスアラインメント検出部２２０を備えていない。
【００７５】
また、比較例２に係るセンスアンプ駆動制御部１は、ＣＰＵからの読出要求ｒｅｑに基づいて、センスイネーブル信号ｓｅを出力する。センスアンプ駆動制御部１は、ＣＰＵからの読出要求ｒｅｑを受信すると、センスイネーブル信号ｓｅの値をＨとして、常に全てのセンスアンプＳＡ１０〜ＳＡ１７、ＳＡ２０〜ＳＡ２７、ＳＡ３０〜ＳＡ３７、ＳＡ４０〜ＳＡ４７を駆動させる。つまり、ミスアラインメントが発生した場合にも、常に全てのセンスアンプＳＡ１０〜ＳＡ１７、ＳＡ２０〜ＳＡ２７、ＳＡ３０〜ＳＡ３７、ＳＡ４０〜ＳＡ４７が駆動される。
【００７６】
ここで、図１３Ａ、１３Ｂを参照して、ミスアラインメントが発生した場合の比較例２に係る半導体装置の動作について説明する。
図１３Ａは、メモリＭＥＭから読み出された分岐命令を含むプログラムを示す模式図である。図１３Ａは図１１Ａと同じである。図１３Ｂは、図１３Ａに示した分岐命令が実行されるメモリ空間の模式図である。
【００７７】
図１３Ａに示された分岐命令「ＪＵＭＰ  ＃００１５」は、図１３Ｂに示すように、アドレス０００４〜０００７に格納されている。分岐命令「ＪＵＭＰ  ＃００１５」が読み出されると、アドレス０００８ではなく００１５へジャンプする。すなわち、アドレス００１５から命令を読み出す。この際、比較例２では、全てのセンスアンプが駆動される。つまり、図１３Ｂにハッチングで示すように、読み出す必要のないアドレス００１２〜００１４に属するメモリセルＭＣに接続されたセンスアンプＳＡ１０〜ＳＡ１７、ＳＡ２０〜ＳＡ２７、ＳＡ３０〜ＳＡ３７も駆動される。
【００７８】
以上に説明したように、比較例２に係る半導体装置は、ミスアラインメント検出部を備えていない。また、比較例２に係る半導体装置では、センスアンプＳＡ１０〜ＳＡ１７（センスアンプ群ＳＡＧ１）、センスアンプＳＡ２０〜ＳＡ２７（センスアンプ群ＳＡＧ２）、センスアンプＳＡ３０〜ＳＡ３７（センスアンプ群ＳＡＧ３）、及びセンスアンプＳＡ４０〜ＳＡ４７（センスアンプ群ＳＡＧ４）が、共通のセンスイネーブル信号ｓｅにより駆動される。そのため、ミスアラインメントが生じても、全てのセンスアンプが駆動される。
【００７９】
これに対し、本実施の形態に係る半導体装置では、ミスアラインメント検出部２２０を備えている。そのため、ミスアラインメントを検出することができる。また、センスアンプＳＡ１０〜ＳＡ１７（センスアンプ群ＳＡＧ１）はセンスイネーブル信号ｓｅ１により駆動され、センスアンプＳＡ２０〜ＳＡ２７（センスアンプ群ＳＡＧ２）はセンスイネーブル信号ｓｅ２により駆動され、センスアンプＳＡ３０〜ＳＡ３７（センスアンプ群ＳＡＧ３）はセンスイネーブル信号ｓｅ３により駆動され、センスアンプＳＡ４０〜ＳＡ４７（センスアンプ群ＳＡＧ４）はセンスイネーブル信号ｓｅ４により駆動される。そのため、センスアンプ群ＳＡＧ１〜ＳＡＧ４を別々に駆動することができる。
【００８０】
このような構成により、本実施の形態に係る半導体装置では、分岐命令によりミスアラインメントが発生する場合、分岐先のアドレスに応じて、読み出しに必要なセンスアンプのみを駆動することができる。これにより、消費電力を低減することができる。
【００８１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
特に、上記実施の形態では、バス幅２バイト（１６ビット）及び４バイト（３２ビット）について説明したが、これに限定されるものではない。本発明は、ミスアラインメントが発生し得る半導体装置であれば、適用可能である。
【符号の説明】
【００８２】
１０、２１０  センスアンプ駆動制御部
２０、２２０  ミスアラインメント検出部
２１  分岐命令判定部
５０、２５０  バス
ＡＧ  ＡＮＤゲート
ＢＬ１０〜ＢＬ１７  ビット線
ＢＬ２０〜ＢＬ２７  ビット線
ＢＬ３０〜ＢＬ３７  ビット線
ＢＬ４０〜ＢＬ４７  ビット線
ＢＬＳ１〜ＢＬＳ４  ビット線選択部
ＣＡ１〜ＣＡ４  メモリセルアレイ
ＣＧ  制御ゲート
ＣＳＬ  電荷蓄積層
Ｄ  ドレイン
ＭＣ  メモリセル
ＭＥＭ  メモリ
Ｎ１〜Ｎ３  ＮチャネルＭＯＳトランジスタ
Ｐ１〜Ｐ３  ＰチャネルＭＯＳトランジスタ
Ｓ  ソース
ＳＡ１０〜ＳＡ１７  センスアンプ
ＳＡ２０〜ＳＡ２７  センスアンプ
ＳＡ３０〜ＳＡ３７  センスアンプ
ＳＡ４０〜ＳＡ４７  センスアンプ
ＳＡＧ１〜ＳＡＧ４  センスアンプ群
ＷＬ１０〜ＷＬ１ｎ  ワード線
ＷＬ２０〜ＷＬ２ｎ  ワード線
ＷＬ３０〜ＷＬ３ｎ  ワード線
ＷＬ４０〜ＷＬ４ｎ  ワード線
ＷＬＳ１〜ＷＬＳ４  ワード線選択部
【図１】
2014164436.tif 000003
【図２】
2014164436.tif 000004
【図３】
2014164436.tif 000005
【図４】
2014164436.tif 000006
【図５】
2014164436.tif 000007
【図６Ａ】
2014164436.tif 000008
【図６Ｂ】
2014164436.tif 000009
【図７】
2014164436.tif 000010
【図８】
2014164436.tif 000011
【図９Ａ】
2014164436.tif 000012
【図９Ｂ】
2014164436.tif 000013
【図１０】
2014164436.tif 000014
【図１１Ａ】
2014164436.tif 000015
【図１１Ｂ】
2014164436.tif 000016
【図１２】
2014164436.tif 000017
【図１３Ａ】
2014164436.tif 000018
【図１３Ｂ】
2014164436.tif 000019