(57)【要約】【課題】データ処理性能の低下を防止することが可能な半導体装置を提供すること。【解決手段】本発明にかかるメモリ１０２は、メモリコア１０６−１及びメモリコア１０６−２と、インターフェイス回路回路１０５−１及びインターフェイス回路１０５−２と、メモリコア１０６−１及びメモリコア１０６−２とインターフェイス回路回路１０５−１及びインターフェイス回路１０５−２との間の信号の接続経路を選択する選択回路１０７と、を有する。選択回路１０７は、メモリコア１０６−２をインターフェイス回路１０５−２に接続し、メモリコア１０６−１を外部からの設定情報に基づいてインターフェイス回路１０５−１又はインターフェイス回路１０５−２に選択的に接続することを特徴とする。【選択図】図１
2012208975.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２のメモリコアと、
第１及び第２のバスインターフェイス回路と、
前記第１及び前記第２のメモリコアと前記第１及び前記第２のバスインターフェイス回路との間の信号の接続経路を選択する選択回路と、を有し、
前記選択回路は、前記第２のメモリコアを前記第２のバスインターフェイス回路に接続し、前記第１のメモリコアを外部からの設定情報に基づいて前記第１または前記第２のバスインターフェイス回路に選択的に接続することを特徴とする半導体装置。
【請求項２】
前記選択回路が前記第１のメモリコアを前記第２のバスインターフェイス回路に接続する場合、前記第１のバスインターフェイスの入力端子は、所定の論理レベルに固定されることを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記第２のバスインターフェイス回路に接続されるメモリコアの数に応じたビット幅のアドレス信号により、読み出し又は書き込み対象となる当該メモリコアの記憶領域が指定されることを特徴とする請求項１又は２に記載の半導体装置。
【請求項４】
前記第１及び前記第２のメモリコアは、
それぞれ選択回路によって接続されたバスインターフェイス回路を介して供給されるリフレッシュ信号により、リフレッシュが行われることを特徴とする請求項１〜３のいずれか一項に記載の半導体装置。
【請求項５】
前記第１及び前記第２のメモリコアは、同一のクロック信号に同期して動作することを特徴とする請求項１〜４のいずれか一項に記載の半導体装置。
【請求項６】
前記設定情報を生成するＪＴＡＧ回路をさらに備え、
前記選択回路は、外部からの設定情報に代えて前記ＪＴＡＧ回路によって生成された設定情報に基づいて、前記第１のメモリコアを前記第１または前記第２のバスインターフェイス回路に選択的に接続することを特徴とする請求項１〜５のいずれか一項に記載の半導体装置。
【請求項７】
前記第１及び前記第２のバスインターフェイス回路のうち何れかのバスインターフェイス回路を介して供給されたコマンド信号に基づいて前記設定情報が更新されることを特徴とする請求項６に記載の半導体装置。
【請求項８】
複数のメモリコアと、
外部から前記複数のメモリコアへのアクセスをインターフェイスする複数のバスインターフェイス回路と、
各前記バスインターフェイス回路が互いに異なるメモリコアに接続されるように、前記各バスインターフェイス回路と前記複数のメモリコアとの間の信号経路を選択する選択回路と、を備えた半導体装置。
【請求項９】
前記複数のバスインターフェイス回路のうち何れのメモリコアにも接続されないインターフェイス回路の入力端子は、所定の論理レベルに固定されることを特徴とする請求項８に記載の半導体装置。
【請求項１０】
前記バスインターフェイス回路に接続されるメモリコアの数に応じたビット幅のアドレス信号により、読み出し又は書き込み対象となる当該メモリコアの記憶領域が指定されることを特徴とする請求項８又は９に記載の半導体装置。
【請求項１１】
前記バスインターフェイス回路を介して外部から供給されるリフレッシュ信号により、当該バスインターフェイス回路に接続されるメモリコアに対してリフレッシュが行われることを特徴とする請求項８〜１０のいずれか一項に記載の半導体装置。
【請求項１２】
前記複数のメモリコアは、同一のクロック信号に同期して動作することを特徴とする請求項８〜１１のいずれか一項に記載の半導体装置。
【請求項１３】
前記選択回路は、外部から供給される前記モード選択信号に基づいて前記信号経路を選択することを特徴とする請求項８〜１２のいずれか一項に記載の半導体装置。
【請求項１４】
前記モード選択信号を生成するＪＴＡＧ回路をさらに備え、
前記選択回路は、前記ＪＴＡＧ回路によって生成された前記モード選択信号に基づいて前記信号経路を選択することを特徴とする請求項８〜１２のいずれか一項に記載の半導体装置。
【請求項１５】
前記バスインターフェイス回路のうち所定のバスインターフェイス回路を介して供給されたコマンド信号に基づいて前記モード選択信号が更新されることを特徴とする請求項１４に記載の半導体装置。
【請求項１６】
外部バス信号と内部バス信号とを結合させる複数のバスインターフェイス回路と、
前記内部バス信号に結合可能な、バスインターフェイスを別個に有する複数のメモリコアと、
前記複数のバスインターフェイス回路と前記複数のメモリコアとの間の前記内部バス信号の結合状態を選択する選択回路と、を有し、
前記選択回路は、外部からの設定情報に基づいて前記メモリコアのそれぞれを前記バスインターフェイス回路のいずれかに結合させ、
前記バスインターフェイス回路は、前記選択回路によって前記メモリコアに結合されない場合に、前記外部バス信号の少なくとも一部を所定の論理レベルに固定することを特徴とする半導体装置。
【請求項１７】
前記選択回路は、各々の前記メモリコアをそれぞれ一の前記バスインターフェイス回路に選択的に結合させることを特徴とする請求項１６に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特にデータ処理性能の低下を防止するのに適した半導体装置に関する。
【背景技術】
【０００２】
半導体プロセスの微細化により１チップに搭載可能な回路規模が増大し、ロジックＬＳＩはシステムに必要な多くの機能を１チップに実装できるようになった。そのため、ロジックＬＳＩではより多くのデータ処理が行われるようになっている。それに伴い、ロジックＬＳＩとメモリとの間のデータ転送性能を向上させて、システム全体の性能を向上させることが要求されている。
【０００３】
このような要求に対する解決策が特許文献１に開示されている。特許文献１に開示されたマルチポートメモリ（半導体装置）は、複数ビット線と複数ワード線との交点に配置された複数メモリセルからなりｎ（ｎは２以上の整数）個のメモリバンクに分割されたメモリアレイと、メモリバンク各々に対しコマンド、アドレス及びデータの入出力を独立して行うｍ（ｍは２以上の整数）個の入出力ポートと、メモリバンク及び入出力ポート間におけるコマンド、アドレス及びデータ信号経路を任意に設定する経路切替回路と、を備える。経路切替回路は、メモリバンク及び入出力ポート間におけるコマンド、アドレス及びデータの各々の信号線の接続状態を設定するクロスバースイッチと、ブロードキャストモードにおいて、１つのメモリバンクから読み出すデータを複数ポートへ出力、又は１つのポートから入力したデータを複数メモリバンクに書込む経路を形成するブロードキャストスイッチ部と、により構成される。
【０００４】
このマルチポートメモリは、通常動作状態にて、複数の入出力ポートから同一のメモリバンクに対して同時にアクセス要求が発生した場合、優先度の高い入出力ポートからのアクセスを許可し、残りの入出力ポートからのアクセスを禁止する制御を行う調停回路をさらに備える。この調停回路は、ブロードキャストモードにおいても、例えば、ブロードキャストリードコマンドが入力された入出力ポート以外の入出力ポートからのアクセスを禁止する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２３０７９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されたマルチポートメモリ（半導体装置）は、複数の入出力ポートから同一のメモリバンクに対して同時にアクセス要求が発生した場合、優先度の高い入出力ポートから順にアクセスを許可することが想定される。したがって、優先度の低い入出力ポートから当該メモリバンクに対するアクセスは遅延してしまう。その結果、データ処理性能が低下してしまうという問題があった。
【０００７】
このように、従来技術の半導体装置では、データ処理性能が低下してしまうという問題があった。
【課題を解決するための手段】
【０００８】
本発明にかかる半導体装置は、第１及び第２のメモリコアと、第１及び第２のバスインターフェイス回路と、前記第１及び前記第２のメモリコアと前記第１及び前記第２のバスインターフェイス回路との間の信号の接続経路を選択する選択回路と、を有し、前記選択回路は、前記第２のメモリコアを前記第２のバスインターフェイス回路に接続し、前記第１のメモリコアを外部からの設定情報に基づいて前記第１または前記第２のバスインターフェイス回路に選択的に接続することを特徴とする。
【０００９】
また、本発明にかかる半導体装置は、複数のメモリコアと、外部から前記複数のメモリコアの何れかへのアクセスをインターフェイスする複数のバスインターフェイス回路と、各前記バスインターフェイス回路が互いに異なるメモリコアに接続されるように、前記各バスインターフェイス回路と前記複数のメモリコアとの間の信号経路を選択する選択回路と、を備える。
【００１０】
また、本発明にかかる半導体装置は、外部バス信号と内部バス信号とを結合させる複数のバスインターフェイス回路と、前記内部バス信号に結合可能な、バスインターフェイスを別個に有する複数のメモリコアと、前記複数のバスインターフェイス回路と前記複数のメモリコアとの間の前記内部バス信号の結合状態を選択する選択回路と、を有し、前記選択回路は、外部からの設定情報に基づいて前記メモリコアのそれぞれを前記バスインターフェイス回路のいずれかに結合させ、前記バスインターフェイス回路は、前記選択回路によって前記メモリコアに結合されない場合に、前記外部バス信号の少なくとも一部を所定の論理レベルに固定することを特徴とする。
【００１１】
上述のような回路構成により、データ処理性能の低下を防止することができる。
【発明の効果】
【００１２】
本発明により、データ処理性能の低下を防止することが可能な半導体装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１にかかる半導体集積回路を示すブロック図である。
【図２】本発明の実施の形態１にかかる半導体集積回路を示すブロック図である。
【図３Ａ】本発明の実施の形態１にかかるメモリの一部を示す回路図である。
【図３Ｂ】本発明の実施の形態１にかかるメモリの一部を示す回路図である。
【図４Ａ】本発明の実施の形態１にかかるメモリ内の信号経路を説明するための図である。
【図４Ｂ】本発明の実施の形態１にかかるメモリ内の信号経路を説明するための図である。
【図５】本発明の実施の形態１にかかる半導体集積回路の動作を示すタイミングチャートである。
【図６Ａ】本発明の実施の形態２にかかる半導体集積回路を示す断面図である。
【図６Ｂ】本発明の実施の形態２にかかる半導体集積回路を示すブロック図である。
【図７Ａ】本発明の実施の形態２にかかる半導体集積回路の実装例を示す図である。
【図７Ｂ】本発明の実施の形態２にかかる半導体集積回路の他の実装例を示す図である。
【図８Ａ】本発明の実施の形態３にかかるメモリの一部を示す回路図である。
【図８Ｂ】本発明の実施の形態３にかかるメモリ内のモード選択信号を説明するための図である。
【図９】本発明に至る前の構想にかかる半導体集積回路を示すブロック図である。
【図１０Ａ】本発明に至る前の構想にかかる半導体集積回路の動作を示すタイミングチャートである。
【図１０Ｂ】本発明に至る前の構想にかかる半導体集積回路の動作を示すタイミングチャートである。
【図１１Ａ】本発明に至る前の構想にかかる半導体集積回路を示すブロック図である。
【図１１Ｂ】本発明に至る前の構想にかかる半導体集積回路を示すブロック図である。
【発明を実施するための形態】
【００１４】
まず、本発明の実施の形態を説明する前に、本発明に至る前に本発明者らが検討した構成について説明する。
【００１５】
図９は、本発明に至る前の構想にかかる半導体集積回路を示すブロック図である。図９に示す半導体集積回路は、複数の機能ブロックを有する集積回路９０１と、メモリ（半導体装置）９０２，９０３と、を備える。各メモリ９０２，９０３は、データ信号、データの読み書きを制御するコマンド信号、及び、データの読み書き対象となる記憶領域を指定するアドレス信号の組（チャネル）を一組のみ用いて、複数の機能ブロックからのアクセスを可能にしたシェアド・メモリ方式を採用している。
【００１６】
なお、集積回路９０１は、例えば、ソフトウェアによりその構成を変更可能なＦＰＧＡ（Field Programmable Gate Array）である。デジタル家電等の組み込み機器やネットワーク装置の分野では、ＦＰＧＡの共通基板（プラットフォーム）を用いて複数の派生製品を提供することができる。以下では、集積回路９０１がＦＰＧＡである場合を例に説明する（以下、ＦＰＧＡ９０１と称す）。
【００１７】
ＦＰＧＡ９０１は、プログラミングされることにより、４つの独立した機能ブロック９０４〜９０７と、インターフェイス回路９０８，９０９と、調停回路９１０，９１１と、を有する。
【００１８】
機能ブロック９０４，９０５は作業用データの一時退避等を目的としてメモリ９０２を共用し、機能ブロック９０６，９０７は作業用データの一時退避等を目的としてメモリ９０３を共用している。
【００１９】
調停回路９１０は、機能ブロック９０４，９０５が同時にメモリ９０２にアクセスしようとした場合に、アクセスの順序を決定する機能を有する。同様に、調停回路９１１は、機能ブロック９０５，９０６が同時にメモリ９０３にアクセスしようとした場合に、アクセスの順序を決定する機能を有する。インターフェイス回路９０８は、機能ブロック９０４又は機能ブロック９０５からメモリ９０２へのアクセスをインターフェイスする回路である。インターフェイス回路９０９は、機能ブロック９０６又は機能ブロック９０７からメモリ９０３へのアクセスをインターフェイスする回路である。
【００２０】
メモリ９０２は、メモリコア９１２と、インターフェイス回路９１４と、を備える。メモリ９０３は、メモリコア９１３と、インターフェイス回路９１５と、を備える。各メモリコア９１２，９１３は、データを記憶するためのメモリセル（記憶領域）を複数有する。各メモリコア９１２，９１３では、アドレス信号によって指定されたメモリセルに対しデータが書き込こまれ、又は、アドレス信号によって指定されたメモリセルに記憶されたデータが読み出される。インターフェイス回路９１４は、ＦＰＧＡ９０１からメモリコア９１２へのアクセスをインターフェイスする回路である。インターフェイス回路９１５は、ＦＰＧＡ９０１からメモリコア９１３へのアクセスをインターフェイスする回路である。
【００２１】
つまり、機能ブロック９０４，９０５とメモリコア９１２との間の信号伝達は、ＦＰＧＡ９０１側のインターフェイス回路９０８及びメモリ９０２側のインターフェイス回路９１４を介して行われる。機能ブロック９０６，９０７とメモリコア９１３との間の信号伝達は、ＦＰＧＡ９０１側のインターフェイス回路９０９及びメモリ９０２側のインターフェイス回路９１５を介して行われる。
【００２２】
図１０Ａ及び図１０Ｂは、図９に示す半導体集積回路の動作の一例を示すタイミングチャートである。より具体的には、図１０Ａは、機能ブロック９０４，９０５のうち機能ブロック９０４のみがメモリ９０２に対してデータの読み出し要求を行った場合のタイミングチャートである。図１０Ｂは、機能ブロック９０４がメモリ９０２に対してデータの読み出し要求を行うと同時に、機能ブロック９０５がメモリ９０２に対してデータの書き込み要求を行った場合のタイミングチャートである。
【００２３】
まず、図１０Ａを用いて、機能ブロック９０４，９０５のうち機能ブロック９０４のみがメモリ９０２に対してデータの読み出し要求を行った場合の動作について説明する。まず、機能ブロック９０４が調停回路９１０に対して読み出し要求を出す（時刻ｔ１）。調停回路９１０は、他の機能ブロックからの要求がないため、機能ブロック９０４から受け取った読み出し要求を即時に受け付け、インターフェイス回路９０８に転送する（時刻ｔ２）。インターフェイス回路９０８は、調停回路９１０から受け取った読み出し要求に応じたコマンド信号及びアドレス信号を生成し、メモリ９０２に対して出力する（時刻ｔ３）。
【００２４】
メモリ９０２において、インターフェイス回路９１４は、ＦＰＧＡ９０１から出力されたコマンド信号及びアドレス信号を受信して、後段のメモリコア９１２に転送する（時刻ｔ４）。メモリコア９１２では、所定期間の読み出し動作の後、アドレス信号によって指定されたメモリセルに記憶されたデータが読み出される（時刻ｔ５）。インターフェイス回路９１４は、メモリコア９１２から読み出されたデータをＦＰＧＡ９０１に対して出力する（時刻ｔ５）。
【００２５】
ＦＰＧＡ９０１において、インターフェイス回路９０８は、メモリ９０２から出力されたデータを受信して、調停回路９１０に転送する（時刻ｔ６）。調停回路９１０は、当該データを、読み出し要求の要求元である機能ブロック９０４に転送する（時刻ｔ７）。機能ブロック９０４は、調停回路９１０からのデータをクロック信号ＣＫに同期して取り込む（時刻ｔ８）。このようにして、データの読み出し要求に対する一連の動作が完了する。図１０Ａの例では、機能ブロック９０４がデータの読み出し要求を出してから当該データを受け取るまでの期間は９クロックサイクル（時刻ｔ１〜ｔ８）である。
【００２６】
次に、図１０Ｂを用いて、機能ブロック９０４がメモリ９０２に対してデータの読み出し要求を行ったと同時に、機能ブロック９０５がメモリ９０２に対してデータの書き込み要求を行った場合の動作について説明する。まず、機能ブロック９０４が調停回路９１０に対して読み出し要求を出すと同時に、機能ブロック９０４が調停回路９１０に対して書き込み要求を出す（時刻ｔ１）。
【００２７】
調停回路９１０は、例えば、機能ブロック９０５からの書き込み要求を優先し、インターフェイス回路９０８に転送する（時刻ｔ２）。なお、機能ブロック９０４からの読み出し要求は、機能ブロック９０５からの書き込み要求により書き込み動作が行われている間、保留される。インターフェイス回路９０８は、調停回路９１０から受け取った書き込み要求に応じたコマンド信号、アドレス信号及び書き込み用データ信号を生成し、メモリ９０２に対して出力する（時刻ｔ３）。
【００２８】
ここで、メモリ９０２では、データの読み出し要求や書き込み要求を受け付ける時間間隔（ランダムサイクル）ｔＲＣの最小値が、メモリコア９１２の動作速度に応じて予め規定されている。そのため、調停回路９１０は、ＦＰＧＡ９０１からメモリ９０２へのアクセス間隔が時間間隔ｔＲＣの最小値以上となるように、機能ブロック９０４からの読み出し要求を保留する（時刻ｔ２〜ｔ４）。時刻ｔ４になると、調停回路９１０は、保留されていた機能ブロック９０４からの読み出し要求を、インターフェイス回路９０８に転送する。その後の動作は、図１０Ａの場合と同様であるため説明を省略する。
【００２９】
図１０Ｂの例では、機能ブロック９０４がデータの読み出し要求を出してから当該データを受け取るまでの期間は、図１０Ａの例と比較して４クロックサイクル多い、１３クロックサイクル（時刻ｔ１〜ｔ５）である。つまり、複数の機能ブロックが同一のメモリに対して同時にアクセスしようとした場合、クロックサイクル数が増加した分だけデータ処理性能が低下している。
【００３０】
このように、シェアド・メモリ方式は、メモリを複数の機能ブロックで共用できるため、例えば、ＦＰＧＡ内の機能ブロック数が変化した場合でもプラットフォームの再設計を回避できる点で有効である。しかし、複数の機能ブロックが同一のメモリに同時にアクセスしようとした場合にデータ処理性能が低下するという問題も生じてしまう。
【００３１】
このような問題に対する解決策が発明者らによってさらに検討された。図１１Ａ及び図１１Ｂは、本発明に至る前の構想にかかる半導体集積回路を示すブロック図である。
【００３２】
図１１Ａに示す半導体集積回路は、図９に示す半導体集積回路と異なり、マルチバンク構成を採用したメモリ１１０２を備える。つまり、メモリ１１０２は、一つのインターフェイス回路１１０３に接続された、独立にアクセス可能な複数のメモリコア１１０４を備える。以下、具体的に説明する。
【００３３】
図１１Ａに示す半導体集積回路は、複数の機能ブロックを有するＦＰＧＡ１１０１と、メモリ（半導体装置）１１０２と、を備える。ＦＰＧＡ１１０１は、プログラミングされることにより、２つの独立した機能ブロック１１０６，１１０７と、インターフェイス回路１１０８と、調停回路１１０５と、を有する。機能ブロック１１０６，１１０７は作業用データの一時退避等を目的としてメモリ１１０２を共用している。なお、機能ブロック１１０６，１１０７、インターフェイス回路１１０８及び調停回路１１０５は、それぞれ、図９における、機能ブロック９０４，９０５、インターフェイス回路９０８及び調停回路９１０に対応する。
【００３４】
メモリ１１０２は、独立にアクセス可能な複数のメモリコア１１０４と、インターフェイス回路１１０３と、を備える。機能ブロック１１０６，１１０７と複数のメモリコア１１０４との間の信号伝達は、ＦＰＧＡ１１０１側のインターフェイス回路１１０８及びメモリ１１０２側のインターフェイス回路１１０３を介して行われる。
【００３５】
このような構成により、複数のメモリコア１１０４のうち一つのメモリコアが動作中であっても、次の読み書き要求が他のメモリコアに対するものであるならば、動作中のメモリコアの動作完了を待たずに当該次の読み書き要求を受け付けることが可能となる。それにより、図１１Ａに示すメモリ１１０２は、図９に示すメモリ９０２（又は９０３）の場合よりも、データ処理性能の低下を抑制することができる。
【００３６】
また、図１１Ｂに示す半導体集積回路は、図９に示す半導体集積回路と異なり、キャッシュ回路１１１５を有するメモリ１１１２を備える。以下、具体的に説明する。
【００３７】
図１１Ｂに示す半導体集積回路は、複数の機能ブロックを有するＦＰＧＡ１１１１と、メモリ（半導体装置）１１１２と、を備える。ＦＰＧＡ１１１１の回路構成は、図１１Ａに示すＦＰＧＡ１１０１と同様であるため、説明を省略する。メモリ１１１２は、一つのメモリコア１１１４と、インターフェイス回路１１１３と、キャッシュ回路１１１５と、を備える。キャッシュ回路１１１５は、インターフェイス回路１１１３とメモリコア１１１４との間に設けられる。
【００３８】
キャッシュ回路１１１５は、メモリコア１１１４を構成する複数のメモリセルのうちアクセスの多いメモリセルの記憶情報を一時的に格納しておく回路である。例えば、アクセスの多いメモリセルに記憶されたデータの読み出しを行う場合、ランダムサイクル性能の低いメモリコア１１１４に直接アクセスするのではなく、メモリコア１１１４よりランダムサイクル性能の高いキャッシュ回路１１１５にアクセスすることにより、当該データの読み出しを行う。それにより、図１１Ｂに示すメモリ１１１２は、図９に示すメモリ９０２（又は９０３）の場合よりも、データ処理性能の低下を抑制することができる。
【００３９】
なお、メモリコア１１１４とキャッシュ回路１１１５との間の信号伝達はメモリコア１１１４の性能に依存するが、データの読み書きの多くは高速なキャッシュ回路１１１５にて行われるため、メモリ１１１２の実効的なランダムサイクル性能は向上する。
【００４０】
図１１Ａ及び図１１Ｂに示すメモリ１１０２，１１１２は、いずれもランダムサイクル性能を改善するものである。しかし、その改善効果は、条件付き、即ち、異なるメモリコアへの読み書き要求である場合、又は、キャッシュ回路に格納されているデータへの読み書き要求である場合に限られる。この条件を満たさずに複数の機能ブロックから同時に読み書き要求が出された場合には、調停回路によって優先度の高い読み書き要求から順に処理されることとなる。その結果、図１１Ａ及び図１１Ｂに示すメモリ１１０２，１１１２では、データ処理性能が低下するという問題があった。
【００４１】
このように、図９、図１１Ａ及び図１１Ｂに示すメモリでは、データの処理性能が低下するという問題があった。特に、ＦＰＧＡに設けられた機能ブロックの数が増加すると調停動作が頻発するため、データの処理性能の低下は顕著になる。一方、性能を重視して一つのメモリコアを共用する機能ブロックの数を少なくすると、メモリコアの数が機能ブロック数に左右されてしまいプラットフォームの変更を余儀なくされる。さらに、増加したメモリ容量を使い切れないというコスト的な問題が生じる。以上のような問題に対し、データ処理性能の低下を防止することが可能なメモリ（半導体装置）が求められていた。
【００４２】
以下、図面を参照しつつ、本発明の実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【００４３】
実施の形態１
図１は、本発明の実施の形態１にかかるメモリ（半導体装置）を備えた半導体集積回路を示すブロック図である。本実施の形態にかかるメモリは、独立にアクセス可能な複数のメモリコアと、外部から前記複数のメモリコアの何れかへのアクセスをインターフェイスする複数のバスインターフェイス回路と、各前記バスインターフェイス回路が互いに異なるメモリコアに接続されるように、前記各バスインターフェイス回路と前記複数のメモリコアとの間の信号経路を選択する選択回路と、を備える。それにより、本実施の形態にかかるメモリは、複数の機能ブロックから同時に読み書き要求があった場合でも、調停回路による調停を行う必要がないため、データ処理性能の低下を防止することができる。以下、具体的に説明する。
【００４４】
図１に示す半導体集積回路は、複数の機能ブロックを有する集積回路１０１と、メモリ１０２と、を備える。なお、集積回路９０１は、例えば、ソフトウェアによりその構成を変更可能なＦＰＧＡ（Field Programmable Gate Array）である。以下では、集積回路１０１がＦＰＧＡである場合を例に説明する（以下、ＦＰＧＡ１０１と称す）。
【００４５】
ＦＰＧＡ１０１は、プログラミングされることにより、４つの独立した機能ブロック１０３−１〜１０３−４と、インターフェイス回路１０４−１〜１０４−４と、を有する。インターフェイス回路１０４−１〜１０４−４は、それぞれ機能ブロック１０３−１〜１０３−４からメモリ１０２へのアクセスをインターフェイスする回路である。なお、ＦＰＧＡ１０１は、図示していないが、クロック信号ＣＫを生成する回路や、後述するモード選択信号ＭＯＤＥを生成する回路をさらに有する。
【００４６】
メモリ１０２は、独立にアクセス可能な４つのメモリコア１０６−１〜１０６−４と、インターフェイス回路（バスインターフェイス回路）１０５−１〜１０５−４と、選択回路１０７と、を備える。なお、メモリコア１０６−１〜１０６−４によりメモリアレイが構成される。ＦＰＧＡ１０１とメモリ１０２との間では、外部バスを介して信号伝達が行われる。
【００４７】
各メモリコア１０６−１〜１０６−４は、データを記憶するためのメモリセル（記憶領域）を複数有する。各メモリコア１０６−１〜１０６−４では、アドレス信号によって指定されたメモリセルに対しデータが書き込まれ、又は、アドレス信号によって指定されたメモリセルに記憶されたデータが読み出される。なお、データの読み出し及び書き込みは、コマンド信号に含まれるライトイネーブル信号によって切り替えられる。
【００４８】
インターフェイス回路１０５−１〜１０５−４は、ＦＰＧＡ１０１からメモリコア１０６−１〜１０６−４のいずれかへのアクセスをインターフェイスする回路である。インターフェイス回路１０５−１〜１０５−４とメモリコア１０６−１〜メモリコア１０６−４との間では、後述する選択回路１０７によって結合状態が選択された内部バスを介して信号伝達が行われる。
【００４９】
選択回路１０７は、インターフェイス回路１０５−１〜１０５−４とメモリコア１０６−１〜１０６−４との間に設けられる。選択回路１０７は、ＦＰＧＡ１０１から供給されるモード選択信号ＭＯＤＥに基づいて、インターフェイス回路１０５−１〜１０５−４とメモリコア１０６−１〜１０６−４との間の信号経路を選択する。より具体的には、選択回路１０７は、実際に使用されるインターフェイス回路が互いに異なるメモリコアに接続されるように、当該インターフェイス回路とメモリコア１０６−１〜１０６−４との間の信号経路を選択する。ここで、「実際に使用されるインターフェイス回路」とは、実際にＦＰＧＡ１０１からメモリアレイへのアクセスをインターフェイスしている回路のことである。
【００５０】
図１の例では、ＦＰＧＡ１０１は、Ｈレベルのモード選択信号ＭＯＤＥをメモリ１０２に対して出力する。それにより、メモリ１０２では、インターフェイス回路１０５−１〜１０５−４は、選択回路１０７を介してそれぞれメモリコア１０６−１〜１０６−４に接続される。つまり、インターフェイス回路１０５−１〜１０５−４は、いずれも実際に使用される（活性化される）。
【００５１】
つまり、図１の例では、機能ブロック１０３−１とメモリコア１０６−１との間の信号伝達は、ＦＰＧＡ１０１側のインターフェイス回路１０４−１及びメモリ１０２側のインターフェイス回路１０５−１を介して行われる。機能ブロック１０３−２とメモリコア１０６−２との間の信号伝達は、ＦＰＧＡ１０１側のインターフェイス回路１０４−２及びメモリ１０２側のインターフェイス回路１０５−２を介して行われる。機能ブロック１０３−３とメモリコア１０６−３との間の信号伝達は、ＦＰＧＡ１０１側のインターフェイス回路１０４−３及びメモリ１０２側のインターフェイス回路１０５−３を介して行われる。機能ブロック１０３−４とメモリコア１０６−４との間の信号伝達は、ＦＰＧＡ１０１側のインターフェイス回路１０４−４及びメモリ１０２側のインターフェイス回路１０５−４を介して行われる。
【００５２】
このように、実際に使用されるインターフェイス回路１０５−１〜１０５−４は、互いに異なるメモリコアに接続されている。
【００５３】
なお、実際に使用されるインターフェイス回路が互いに異なるメモリコアに接続されるのであれば、例えば、インターフェイス回路１０５−１がメモリコア１０６−２に接続され、インターフェイス回路１０５−２がメモリコア１０６−１に接続されるように信号経路が選択されても良い。
【００５４】
なお、ＦＰＧＡ１０１は、メモリ１０２にアクセスを必要とする機能ブロックの数に応じた信号レベルのモード選択信号ＭＯＤＥを生成し、メモリ１０２に対して出力する。さらに、ＦＰＧＡ１０１は、クロック信号ＣＫを生成しメモリ１０２に対して出力する。メモリコア１０６−１〜１０６−４は、このクロック信号ＣＫに同期して動作する。そのため、メモリコア１０６−１〜１０６−４は、選択回路１０７よって選択される信号経路に影響されることなく、常に同じクロック信号ＣＫに同期して動作することができる。
【００５５】
図２に示す半導体集積回路は、図１に示すＦＰＧＡ１０１を再プログラミングしてＦＰＧＡ２０１としたものである。具体的には、ＦＰＧＡ２０１は、再プログラミングされることにより、２つの独立した機能ブロック２０３−１，２０３−２と、インターフェイス回路２０４−１〜２０４−４と、を有する。その他の回路構成は図１の場合と同様であるため説明を省略する。
【００５６】
インターフェイス回路２０４−２，２０４−４は、それぞれ機能ブロック２０３−１，２０３−２からメモリ１０２へのアクセスをインターフェイスする回路である。一方、インターフェイス回路２０４−１，２０４−３は、メモリ１０２との間のインターフェイスに使用されない。
【００５７】
図２の例では、ＦＰＧＡ２０１は、Ｌレベルのモード選択信号ＭＯＤＥをメモリ１０２に対して出力する。それにより、メモリ１０２では、インターフェイス回路１０５−２は選択回路１０７を介してメモリコア１０６−１，１０６−２に接続され、インターフェイス回路１０５−４は選択回路１０７を介してメモリコア１０６−３，１０６−４に接続される。つまり、インターフェイス回路１０５−１〜１０５−４のうちインターフェイス回路１０５−２，１０５−４が実際に使用される（活性化される）。
【００５８】
つまり、図２の例では、機能ブロック２０３−１とメモリコア１０６−１，１０６−２との間の信号伝達は、ＦＰＧＡ２０１側のインターフェイス回路２０４−２及びメモリ１０２側のインターフェイス回路１０５−２を介して行われる。機能ブロック２０３−２とメモリコア１０６−３，１０６−４との間の信号伝達は、ＦＰＧＡ２０１側のインターフェイス回路２０４−４及びメモリ１０２側のインターフェイス回路１０５−４を介して行われる。
【００５９】
このように、実際に使用されるインターフェイス回路１０５−２，１０５−４は、互いに異なるメモリコアに接続されている。
【００６０】
一方、インターフェイス回路１０５−１，１０５−３は使用されない。したがって、インターフェイス回路１０５−１，１０５−３には、例えば、ＦＰＧＡ２０１からの信号の代わりに固定信号（所定の論理レベルの電圧）が供給される。それにより、入力端子オープンによるフローティングを防ぐことができる。
【００６１】
なお、実際に使用されるインターフェイス回路が互いに異なるメモリコアに接続されるのであれば、例えば、インターフェイス回路１０５−２がメモリコア１０６−２にのみ接続され、インターフェイス回路１０５−４がメモリコア１０６−４にのみ接続されるように信号経路が選択されても良い。
【００６２】
このように、本実施の形態にかかるメモリ１０２では、選択回路１０７が、実際に使用されるインターフェイス回路を互いに異なるメモリコアに接続させるように、当該インターフェイス回路とメモリアレイとの間の信号経路を選択する。それにより、本実施の形態にかかるメモリ１０２は、複数の機能ブロックから同時に読み書き要求があった場合でも、調停回路による調停を行う必要がないため、データ処理性能の低下を防止することができる。なお、上記の例では、メモリ１０２において実際に使用されるインターフェイス回路が４個又は２個である場合を例に説明したが、これに限られない。実際に使用されるインターフェイス回路は任意に変更可能である。
【００６３】
図３Ａ及び図３Ｂは、図１に示すメモリ１０２に設けられたインターフェイス回路１０５−１，１０５−２及び選択回路１０７の一部を示す回路図の例である。図３Ａは主としてアドレス信号及びコマンド信号の信号経路上の回路構成を示し、図３Ｂは主としてデータ信号の信号経路上の回路構成を示す。
【００６４】
また、図４Ａ及び図４Ｂは、図３Ａ及び図３Ｂにおけるインターフェイス回路１０５−１，１０５−２とメモリコア１０６−１，１０６−２との間の信号経路の関係を表した図である。より具体的には、図４Ａは、第１のメモリコア信号として選択されるインターフェイス信号を、モード選択信号ＭＯＤＥの信号レベル及び拡張アドレス信号Ａｎ＿Ｂの信号レベル毎に表した図である。図４Ｂは、第２のメモリコア信号として選択されるインターフェイス信号を、モード選択信号ＭＯＤＥの信号レベル及び拡張アドレス信号Ａｎ＿Ｂの信号レベル毎に表した図である。なお、インターフェイス回路１０５−３，１０５−４とメモリコア１０６−３，１０６−４との間の信号経路の関係は、インターフェイス回路１０５−１，１０５−２とメモリコア１０６−１，１０６−２との間の信号経路の関係と同様であるため説明を省略する。
【００６５】
図３Ａ及び図３Ｂに示すように、インターフェイス回路１０５−１，１０５−２及び選択回路１０７は、複数の論理ゲートにより構成されている。なお、図３Ａ及び図３Ｂの例では、インターフェイス回路１０５−１は使用されない（非活性化される）場合があるが、インターフェイス回路１０５−２は常に使用される（活性化される）。つまり、図３Ａ及び図３Ｂは、使用用途が制限された回路構成を一例として示している。また、図３Ａ及び図３Ｂの例では、特性をできるだけ同じにするため、何れのインターフェイス回路も同一の回路構成としている。
【００６６】
まず、図３Ａに示すように、インターフェイス回路１０５−１は、コマンド信号として、チップセレクト信号ＣＳＮ＿Ａ、ライトイネーブル信号ＷＥＮ＿Ａ及びリフレッシュ信号ＲＥＦＮ＿ＡをＦＰＧＡから受信する。さらに、インターフェイス回路１０５−１は、モード選択信号ＭＯＤＥ及びｎビット（ｎは自然数）のアドレス信号Ａ０＿Ａ〜Ａ（ｎ−１）＿Ａ及びｎ＋１ビット目のアドレス信号として拡張アドレス信号Ａｎ＿ＡをＦＰＧＡから受信する。
【００６７】
また、インターフェイス回路１０５−２は、コマンド信号として、チップセレクト信号ＣＳＮ＿Ｂ、ライトイネーブル信号ＷＥＮ＿Ｂ及びリフレッシュ信号ＲＥＦＮ＿ＢをＦＰＧＡから受信する。さらに、インターフェイス回路１０５−２は、ｎ＋１ビットのアドレス信号Ａ０＿Ｂ〜Ａ（ｎ−１）＿Ｂ及びｎ＋１ビット目のアドレス信号として拡張アドレス信号Ａｎ＿ＢをＦＰＧＡから受信する。なお、図４Ａ及び図４Ｂにおいてインターフェイス回路１０５−１，１０５−２がＦＰＧＡとの間で送受信する信号をインターフェイス信号と称す。
【００６８】
選択回路１０７は、モード選択信号ＭＯＤＥに基づいて、インターフェイス回路１０５−１によって受信されたコマンド信号及びｎビットのアドレス信号と、インターフェイス回路１０５−２によって受信されたコマンド信号及びｎビットのアドレス信号と、のうちいずれかを選択し、チップセレクト信号ＣＳＮ＿ｃ１、ライトイネーブル信号ＷＥＮ＿ｃ１、リフレッシュ信号ＲＥＦＮ＿ｃ１及びアドレス信号Ａ０＿ｃ１〜Ａ（ｎ−１）＿ｃ１（図４Ａにおいてこれらの信号を第１のメモリコア信号と称す）としてメモリコア１０６−１に対して出力する。
【００６９】
また、選択回路１０７は、インターフェイス回路１０５−２によって受信されたコマンド信号及びｎビットのアドレス信号を、チップセレクト信号ＣＳＮ＿ｃ２、ライトイネーブル信号ＷＥＮ＿ｃ２、リフレッシュ信号ＲＥＦＮ＿ｃ２及びアドレス信号Ａ０＿ｃ２〜Ａ（ｎ−１）＿ｃ２（図４Ｂにおいてこれらの信号を第２のメモリコア信号と称す）としてメモリコア１０６−２に対して出力する。
【００７０】
なお、図３Ａ及び図３Ｂの例では、インターフェイス回路によって受信されたチップセレクト信号に代えて、待機コマンドがチップセレクト信号ＣＳＮ＿ｃ１，ＣＳＮ＿ｃ２として出力される場合があるが、詳細は後述する。
【００７１】
例えば、モード選択信号ＭＯＤＥがＨレベルの場合、インターフェイス回路１０５−１は選択回路１０７を介してメモリコア１０６−１に接続され、インターフェイス回路１０５−２は選択回路１０７を介してメモリコア１０６−２に接続される。つまり、インターフェイス回路１０５−１，１０５−２はいずれも実際に使用される（活性化される）。それにより、インターフェイス回路１０５−１は、ＦＰＧＡから受信したコマンド信号及びｎビットのアドレス信号を、チップセレクト信号ＣＳＮ＿ｃ１、ライトイネーブル信号ＷＥＮ＿ｃ１、リフレッシュ信号ＲＥＦＮ＿ｃ１及びアドレス信号Ａ０＿ｃ１〜Ａ（ｎ−１）＿ｃ１としてメモリコア１０６−１に対して伝達する。また、インターフェイス回路１０５−２は、ＦＰＧＡから受信したコマンド信号及びｎビットのアドレス信号を、チップセレクト信号ＣＳＮ＿ｃ２、ライトイネーブル信号ＷＥＮ＿ｃ２、リフレッシュ信号ＲＥＦＮ＿ｃ２及びアドレス信号Ａ０＿ｃ２〜Ａ（ｎ−１）＿ｃ２としてメモリコア１０６−２に対して伝達する。
【００７２】
なお、このとき各インターフェイス回路のｎ＋１ビット目のアドレス信号Ａｎ＿Ａ，Ａｎ＿Ｂは使用されず、非活性化されている。
【００７３】
一方、モード選択信号ＭＯＤＥがＬレベルの場合、インターフェイス回路１０５−１は複数のメモリコアのいずれにも接続されず、インターフェイス回路１０５−２は選択回路１０７を介してメモリコア１０６−１，１０６−２に接続される。つまり、インターフェイス回路１０５−１は使用されず（非活性化され）、インターフェイス回路１０５−２は実際に使用される（活性化される）。それにより、インターフェイス回路１０５−２は、ＦＰＧＡから受信したコマンド信号及びｎビットのアドレス信号を、チップセレクト信号ＣＳＮ＿ｃ１、ライトイネーブル信号ＷＥＮ＿ｃ１、リフレッシュ信号ＲＥＦＮ＿ｃ１及びアドレス信号Ａ０＿ｃ１〜Ａ（ｎ−１）＿ｃ１としてメモリコア１０６−１に対して伝達するとともに、チップセレクト信号ＣＳＮ＿ｃ２、ライトイネーブル信号ＷＥＮ＿ｃ２、リフレッシュ信号ＲＥＦＮ＿ｃ２及びアドレス信号Ａ０＿ｃ２〜Ａ（ｎ−１）＿ｃ２としてメモリコア１０６−２に対して伝達する。
【００７４】
なお、このときインターフェイス回路１０５−２のｎ＋１ビット目のアドレス信号（拡張アドレス信号）Ａｎ＿Ｂの信号レベルにより、メモリコア１０６−１，１０６−２のうちいずれのメモリコアにアクセスするかが決定される。図３Ａ及び図３Ｂの例では、拡張アドレス信号Ａｎ＿ＢがＨレベルの場合、メモリコア１０６−１に対してチップセレクト信号ＣＳＮ＿Ｂが伝達され、メモリコア１０６−２に対して待機コマンド（Ｈレベルの信号）が伝達される。つまり、メモリコア１０６−１にアクセスすることが決定される。一方、拡張アドレス信号Ａｎ＿ＢがＬレベルの場合、メモリコア１０６−１に対してチップセレクト信号ＣＳＮ＿Ｂが伝達され、メモリコア１０６−２に対して待機コマンド（Ｈレベルの信号）が伝達される。つまり、メモリコア１０６−２にアクセスすることが決定される。
【００７５】
ただし、リフレッシュ要求があった場合、つまり、リフレッシュ信号ＲＥＦＮ＿Ｂが活性化された場合、メモリコア１０６−１，１０６−２は、当該リフレッシュ信号ＲＥＦＮ＿Ｂにより共にリフレッシュされる。図３Ａ及び図３Ｂの例では、リフレッシュ要求があった場合、いずれか一方のメモリコアに対して供給されていた待機コマンドは、ＨレベルからＬレベルに切り替わる。
【００７６】
次に、図３Ｂに示すように、インターフェイス回路１０５−１は、ＦＰＧＡ（１０１又は２０１）との間で、ｍビット（ｍは自然数）のデータ信号ＤＱ０＿Ａ〜ＤＱ（ｍ−１）＿Ａを送受信する。インターフェイス回路１０５−２は、ＦＰＧＡ（１０１又は２０１）との間で、ｍビットのデータ信号ＤＱ０＿Ｂ〜ＤＱ（ｍ−１）＿Ｂを送受信する。
【００７７】
データ書き込み時において、選択回路１０７は、モード選択信号ＭＯＤＥに基づいて、インターフェイス回路１０５−１がＦＰＧＡから受信したデータ信号と、インターフェイス回路１０５−２がＦＰＧＡから受信したデータ信号と、のうちいずれかを選択し、書き込みデータ信号Ｄ０＿ｃ１〜Ｄ（ｍ−１）＿ｃ１としてメモリコア１０６−１に対して出力する。また、選択回路１０７は、インターフェイス回路１０５−２がＦＰＧＡから受信したデータ信号を書き込みデータ信号Ｄ０＿ｃ２〜Ｄ（ｍ−１）＿ｃ２としてメモリコア１０６−２に対して出力する。
【００７８】
データ読み出し時において、選択回路１０７は、モード選択信号ＭＯＤＥに基づいて、メモリコア１０６―１から読み出されたデータ信号Ｑ０＿ｃ１〜Ｑ（ｍ−１）＿ｃ１をインターフェイス回路１０５−１，１０５−２のいずれかに対して出力する。また、選択回路１０７は、メモリコア１０６―２から読み出されたデータ信号Ｑ０＿ｃ２〜Ｑ（ｍ−１）＿ｃ２をインターフェイス回路１０５−２に対して出力する。
【００７９】
例えば、モード選択信号ＭＯＤＥがＨレベルの場合、インターフェイス回路１０５−１は選択回路１０７を介してメモリコア１０６−１に接続され、インターフェイス回路１０５−２は選択回路１０７を介してメモリコア１０６−２に接続される。つまり、インターフェイス回路１０５−１，１０５−２はいずれも実際に使用される（活性化される）。
【００８０】
それにより、データ書き込み時において、インターフェイス回路１０５−１は、ＦＰＧＡから受信したデータ信号を、書き込みデータ信号Ｄ０＿ｃ１〜Ｄ（ｍ−１）＿ｃ１としてメモリコア１０６−１に対して伝達する。また、インターフェイス回路１０５−２は、ＦＰＧＡから受信したデータ信号を、書き込みデータ信号Ｄ０＿ｃ２〜Ｄ（ｍ−１）＿ｃ２としてメモリコア１０６−２に対して伝達する。
【００８１】
一方、データ読み出し時において、メモリコア１０６−１から読み出されたデータ信号Ｑ０＿ｃ１〜Ｑ（ｍ−１）＿ｃ１は、インターフェイス回路１０５−１に伝達される。また、メモリコア１０６−２から読み出されたデータ信号Ｑ０＿ｃ２〜Ｑ（ｍ−１）＿ｃ２は、インターフェイス回路１０５−２に伝達される。
【００８２】
例えば、モード選択信号ＭＯＤＥがＬレベルの場合、インターフェイス回路１０５−１は選択回路１０７を介してメモリコア１０６−１に接続され、インターフェイス回路１０５−２は選択回路１０７を介してメモリコア１０６−１，１０６−２に接続される。つまり、インターフェイス回路１０５−１は使用されず（非活性化され）、インターフェイス回路１０５−２は実際に使用される（活性化される）。
【００８３】
それにより、データ書き込み時において、インターフェイス回路１０５−２は、ＦＰＧＡから受信したデータ信号を、書き込みデータ信号Ｄ０＿ｃ１〜Ｄ（ｍ−１）＿ｃ１としてメモリコア１０６−１に対して伝達するとともに、書き込みデータ信号Ｄ０＿ｃ２〜Ｄ（ｍ−１）＿ｃ２としてメモリコア１０６−２に対して伝達する。なお、いずれのメモリコアにデータが書き込まれるかは、上述したように、インターフェイス回路１０５−２のｎ＋１ビット目のアドレス信号（拡張アドレス信号）Ａｎ＿Ｂの信号レベルにより決定される。図３Ａ及び図３Ｂの例では、拡張アドレス信号Ａｎ＿ＢがＨレベルの場合にメモリコア１０６−１にデータが書き込まれ、Ｌレベルの場合にメモリコア１０６−２にデータが書き込まれる。
【００８４】
一方、データ読み出し時において、メモリコア１０６−１から読み出されたデータ信号Ｑ０＿ｃ１〜Ｑ（ｍ−１）＿ｃ１及びメモリコア１０６−２から読み出されたデータ信号Ｑ０＿ｃ２〜Ｑ（ｍ−１）＿ｃ２のいずれかが、インターフェイス回路１０５−２に伝達される。なお、いずれのメモリコアから読み出されるかは、上述したイように、ンターフェイス回路１０５−２のｎ＋１ビット目のアドレス信号Ａｎ＿Ｂの信号レベルにより決定される。図３Ａ及び図３Ｂの例では、拡張アドレス信号Ａｎ＿ＢがＨレベルの場合にメモリコア１０６−１からデータが読み出され、Ｌレベルの場合にメモリコア１０６−２からデータが読み出される。
【００８５】
図５は、図１に示す半導体集積回路の動作の一例を示すタイミングチャートである。図５に示すように、より具体的には、図５は、機能ブロック１０３−１がメモリ１０２に対してデータの読み出し要求を行うと同時に、機能ブロック１０３−２がメモリ１０２に対してデータの書き込み要求を行った場合のタイミングチャートである。つまり、図５は、図１０Ｂに示すタイミングチャートと同じ条件のタイミングチャートである。
【００８６】
まず、機能ブロック１０３−１がインターフェイス回路１０４−１に対して読み出し要求を出すと同時に、機能ブロック１０３−２がインターフェイス回路１０４−２に対して書き込み要求を出す（時刻ｔ１）。このように、機能ブロック１０３−１，１０３−２から出された読み出し要求及び書き込み要求は、調停回路による調停が行われることなくそれぞれ直接インターフェイス回路１０４−１，１０４−２に伝達される。
【００８７】
インターフェイス回路１０４−１は、機能ブロック１０３−１から受け取った読み出し要求に応じたコマンド信号及びアドレス信号を生成し、メモリ１０２に対して出力する。同時に、インターフェイス回路１０４−２は、機能ブロック１０３−２から受け取った書き込み要求に応じたコマンド信号、アドレス信号及び書き込み用のデータ信号を生成し、メモリ１０２に対して出力する（時刻ｔ２）。
【００８８】
メモリ１０２において、インターフェイス回路１０５−１は、ＦＰＧＡ１０１から出力されたコマンド信号及びアドレス信号を受信して、後段のメモリコア１０６−１に転送する（時刻ｔ３）。同時に、インターフェイス回路１０５−２は、ＦＰＧＡ１０１から出力されたコマンド信号、アドレス信号及び書き込み用のデータ信号を受信して、後段のメモリコア１０６−２に転送する（時刻ｔ３）。このように、本実施の形態にかかるメモリ１０２では、実際に使用されるインターフェイス回路１０５−１，１０５−２が互いに異なるメモリコアに接続される。そのため、複数の機能ブロックから同時に読み書き要求があった場合でも、これらの要求は調停回路により調停されることなく並行して処理が実行される。
【００８９】
メモリコア１０６−１では、所定期間の読み出し動作の後（時刻ｔ３〜ｔ４）、アドレス信号によって指定されたメモリセルに記憶されたデータが読み出される（時刻ｔ４）。インターフェイス回路１０５−１は、メモリコア１０６−１から読み出されたデータをＦＰＧＡ１０１に対して出力する（時刻ｔ４）。一方、メモリコア１０６−２は、メモリコア１０６−２と並行して動作し、所定期間の書き込み動作の後、アドレス信号によって指定されたメモリセルにデータを書き込む（時刻ｔ３〜ｔ５）。
【００９０】
ＦＰＧＡ１０１において、インターフェイス回路１０４−１は、メモリ１０２から出力されたデータを受信して、読み出し要求の要求元である機能ブロック１０３−１に転送する（時刻ｔ５）。機能ブロック１０３−１は、インターフェイス回路１０４−１から転送されたデータをクロック信号ＣＫに同期して取り込む（時刻ｔ６）。このようにして、データの読み出し要求及び書き込み要求に対する一連の動作が完了する。
【００９１】
図５の例では、機能ブロック１０３−１がデータの読み出し要求及び書き込み要求を出してから当該データを受け取るまでの期間は、同条件の図１０Ｂの例と比較して６クロックサイクル少ない、７クロックサイクル（時刻ｔ１〜ｔ６）である。つまり、クロックサイクル数が減少した分だけデータ処理性能が向上している。
【００９２】
さらに、調停回路の処理時間が省略されるため、図１０Ａのようにデータの読み出し要求が単独であった場合と比較しても２クロックサイクル少ない。
【００９３】
このように、本実施の形態にかかるメモリ（半導体装置）では、選択回路が、実際に使用されるインターフェイス回路を互いに異なるメモリコアに接続させるように、当該インターフェイス回路とメモリアレイとの間の信号経路を選択する。それにより、本実施の形態にかかるメモリは、複数の機能ブロックから同時に読み書き要求があった場合でも、調停回路による調停を行う必要がないため、データ処理性能の低下を防止することができる。
【００９４】
また、複数の機能ブロックから同時に読み書き要求があった場合でも、これらの読み書き要求はそれぞれ異なるメモリコアにアクセスされるため、図２の場合のように機能ブロックの数が変化しても、これら機能ブロックは常に一定の性能を維持することができる。
【００９５】
実施の形態２
図６Ａは、図１に示す半導体集積回路を構成するＦＰＧＡ１０１及びメモリ１０２を一つのパッケージに封入した場合における当該パッケージの断面図である。また、図６Ｂは、図６Ａに示す半導体集積回路を示すブロック図である。なお、図６Ａ及び図６Ｂに示すＦＰＧＡ６１１及びメモリ６１３は、それぞれ、図１における、ＦＰＧＡ１０１及びメモリ１０２に対応する。
【００９６】
図６Ａに示すように、ＦＰＧＡ６１１のチップはインターポーザ基板６１２上に上向きに実装される。メモリ６１３のチップは、ＦＰＧＡ６１１のチップ上に下向きに実装される。さらに、ＦＰＧＡ６１１及びメモリ６１３間において、ＦＰＧＡ６１１上には再配線層６１４が形成されている。この再配線層６１４には、ＦＰＧＡ６１１とメモリ６１３との間を接続する信号線、ＦＰＧＡ６１１又はメモリ６１３の各チップからパッケージ外に引き出される各種信号線、及び、電源線が配線されている。なお、再配線層６１４とメモリ６１３のチップとの間にはバンプ電極６１５が設けられ、再配線層６１４に配線された信号線とメモリ６１３とを電気的に接続している。
【００９７】
また、バンプ電極６１５と再配線層６１４に配線された対応する信号線との接着位置がずれないようにするため、メモリ６１３のチップと再配線層６１４との間には充填材６１６が充填される。
【００９８】
ＦＰＧＡ６１１又はメモリ６１３からパッケージ外に引き出される信号線及び電源線は、再配線層６１４及びボンディング線６１７を介して、インターポーザ基板６１２に形成された信号線に接続される。このインターポーザ基板６１２に形成された信号線は、当該インターポーザ基板６１２の下側に設けられたはんだボール６１８に電気的に接続される。
【００９９】
図６Ｂにおいて、ＦＰＧＡ６１１とメモリ６１３との間は、再配線層６１４及びバンプ電極６１５にて形成された各種信号線を介して電気的に接続される。さらに、ＦＰＧＡ６１１又はメモリ６１３からパッケージ外に引き出される信号線及び電源線は、再配線層６１４、ボンディング線６１７、インターポーザ基板６１２及びはんだボール６１８を介してパッケージ外部と電気的に接続される。
【０１００】
さらに、ＦＰＧＡ６１１及びメモリ６１３は、ＦＰＧＡ６１１とメモリ６１３との間を接続する各種信号線の接続状況を検査するために、それぞれＩＥＥＥ１１４９．１相当のＪＴＡＧ回路６２４，６２５を備える。なお、ＪＴＡＧ回路６２４，６２５は、仕様に従い縦続接続されている。
【０１０１】
メモリ６１３は、モード選択信号ＭＯＤＥを生成するレジスタ６２６をさらに備える。レジスタ６２６は、ＪＴＡＧ回路６２４，６２５からの制御信号に応じたモード選択信号ＭＯＤＥを生成する。つまり、レジスタ６２６は、ＪＴＡＧ回路６２４，６２５からの制御信号により任意に設定可能なモード選択信号ＭＯＤＥを生成する。それにより、メモリ６１３では電源投入後の初期テストにおいて、インターフェイス回路とメモリコアとの間の信号経路が任意に変更される。なお、初期テスト以外の通常動作時においても所望のモード選択信号ＭＯＤＥに設定可能である。そのため、メモリ１０２の場合と比較してモード選択信号を外部から供給するための専用端子が不要となる。
【０１０２】
図７Ａ及び図７Ｂは、図６Ａに示す半導体集積回路のパッケージをシステムボードに搭載した場合のイメージ図である。図７Ａ及び図７Ｂに示すように、システムボード７１１，７１２には、それぞれ、ＦＰＧＡ６１１及びメモリ６１３が封入されたパッケージ７１３，７１４と、不揮発性メモリ７１５と、が搭載されている。なお、不揮発性メモリ７１５には、ＦＰＧＡ６１１の回路構成を決定するためのプログラムと、メモリ６１３内の選択回路に供給されるモード選択信号ＭＯＤＥを設定するための情報と、が格納されている。システム起動時において、不揮発性メモリ７１５に格納されたプログラム及びモード選択信号ＭＯＤＥの設定情報は、ＪＴＡＧ回路６２４，６２５を介してそれぞれＦＰＧＡ６１１及びメモリ６１３に伝達される。
【０１０３】
なお、図７Ａは、ＦＰＧＡ６１１が図１に示すＦＰＧＡ１０１と同様の回路構成となるように、不揮発性メモリ７１５に格納されるプログラム及びモード選択信号ＭＯＤＥの設定情報を調整した場合の例である。つまり、ＦＰＧＡ６１１は、メモリ６１３にアクセスを必要とする機能ブロックを比較的多く備えている。そのため、メモリ６１３に設けられた複数のインターフェイス回路はいずれも実際に使用される（活性化される）。
【０１０４】
一方、図７Ｂは、ＦＰＧＡ６１１が図２に示すＦＰＧＡ２０１と同様の回路構成となるように、不揮発性メモリ７１５に格納されるプログラム及びモード選択信号ＭＯＤＥの設定情報を調整した場合の例である。つまり、ＦＰＧＡ６１１には、メモリ６１３にアクセスを必要とする機能ブロックの数が比較的少ない。そのため、メモリ６１３に設けられた複数のインターフェイス回路のうちいくつかは使用されない（非活性化される）。ここで、メモリ６１３側の非活性のインターフェイス回路と対になったＦＰＧＡ６１１側のインターフェイス回路は、例えば、電気的に接続されたパッケージのはんだボール６１８を介して、他の周辺デバイスの信号線７２１に接続され、他の目的に用いられる。
【０１０５】
このように、ＦＰＧＡ及びメモリのチップが一つのパッケージに封入され各チップの交換が困難な状況であっても、ＦＰＧＡは他の周辺デバイスとの間で信号伝達を行うことができる。そのため、ＦＰＧＡ本来の汎用性は維持される。
【０１０６】
実施の形態３
図８Ａは、本発明の実施の形態３にかかるメモリ（半導体装置）８０２の一部を示す回路図である。実施の形態２で述べたようにチップの交換が困難な場合には、図３Ａ及び図３Ｂに示すメモリ１０２よりも柔軟に接続関係を設定可能なメモリの方が利便性の向上を期待できる。そこで、本実施の形態にかかるメモリ８０２は、図３Ａ及び図３Ｂに示すメモリ１０２よりも柔軟に接続関係を設定可能な回路構成を採用している。なお、図８Ａは、主としてメモリ８０２に設けられたインターフェイス回路８０５−１〜８０５−４及び選択回路８０７の一部を示している。
【０１０７】
図８Ａに示すように、インターフェイス回路８０５−１〜８０５−４は、それぞれ、複数のＡＮＤ回路からなる入力初段回路８０３−１〜８０３−４と、複数のラッチからなる信号保持回路８０４−１〜８０４−４と、を有する。入力初段回路８０３−１〜８０３−４は、それぞれ、インターフェイス回路８０５−１〜８０５−４を活性化するか否かを切り替える回路である。
【０１０８】
例えば、外部から受信したイネーブル信号ＥＮ＿Ａ〜ＥＮ＿ＤがＬレベルの場合には、インターフェイス回路８０５−１〜８０５−４は非活性化される。一方、イネーブル信号ＥＮ＿Ａ〜ＥＮ＿ＤがＨレベルの場合には、インターフェイス回路８０５−１〜８０５−４は活性化される。また、信号保持回路８０４−１〜８０４−４は、それぞれ、入力初段回路８０３−１〜８０３−４を介して外部から受信したコマンド信号ｃｍｄ＿Ａ〜ｃｍｄ＿Ｄ及び２ビット幅の拡張アドレス信号Ａ（ｎ＋１）＿Ａ，Ａｎ＿Ａ〜Ａ（ｎ＋１）＿Ｄ，Ａｎ＿Ｄを保持する回路である。
【０１０９】
選択回路８０７は、セレクタ８０８−１〜８０８−１と、デコード回路８０９−１〜８０９−４と、を有する。セレクタ８０８−１は、信号保持回路８０４−１〜８０４−４に保持されている信号のいずれか一つを選択してコマンド信号ｃｍｄ＿ｃ１として出力する。セレクタ８０８−２は、信号保持回路８０４−１〜８０４−４に保持されている信号のいずれか一つを選択してコマンド信号ｃｍｄ＿ｃ２として出力する。セレクタ８０８−３は、信号保持回路８０４−１〜８０４−４に保持されている信号のいずれか一つを選択してコマンド信号ｃｍｄ＿ｃ３として出力する。セレクタ８０８−４は、信号保持回路８０４−１〜８０４−４に保持されている信号のいずれか一つを選択してコマンド信号ｃｍｄ＿ｃ４として出力する。デコード回路８０９−１〜８０９−４は、それぞれ、セレクタ８０８−１〜８０８−４の出力を切り替える切替信号を生成するとともに、外部から受信した拡張アドレス信号を活性化するか否かを切り替える制御信号を生成する。
【０１１０】
メモリ８０２は、システム起動時の初期設定情報を外部より取得するためのＪＴＡＧ回路８１０と、当該初期設定情報を保持するレジスタ８１１と、レジスタ８１１に保持された初期設定情報に基づいてモード選択信号ＭＯＤＥを生成するレジスタ８１２と、インターフェイス回路の特定の一つから要求コマンドを判別して設定情報を更新するデコード回路８１３と、をさらに有する。図８Ａの例では、インターフェイス回路の特定の一つとしてインターフェイス回路８０５−４が用いられている。それにより、メモリ８０２では電源投入後の初期テストにおいて、モード選択信号が任意に変更される。なお、テスト時以外の通常動作時では、デコード回路８１３によりコマンド信号ｃｍｄ＿Ｄを判別し、レジスタ８１２の更新を指示するコマンドの場合に設定情報を更新する。それにより、初期テスト以外の通常動作時においても所望のモード選択信号ＭＯＤＥに設定可能である。そのため、メモリ１０２の場合と比較してモード選択信号を外部から供給するための専用端子が不要となる。
【０１１１】
レジスタ８１２は、４ビットのモード選択信号ＭＯＤＥを４つ生成し、それぞれデコード回路８０９−１〜８０９−４に対して出力する。なお、各モード選択信号ＭＯＤＥにおいて、上位２ビットの値（ｃｈａｎｎｅｌ  ｎｕｍｂｅｒ）は４つのインターフェイス回路８０５−１〜８０５−４のいずれかを特定し、下位２ビットの値（ＭＳＢ  ａｄｄｒｅｓｓ）は拡張アドレス信号の値を特定している（図８Ｂ参照）。
【０１１２】
デコード回路８０９−１は、供給されたモード選択信号ＭＯＤＥの上位２ビットの値によりインターフェイス回路を特定する。そして、デコード回路８０９−１は、当該インターフェイス回路によって受信された拡張アドレス信号と、供給されたモード選択信号ＭＯＤＥの下位２ビットの値と、が一致する場合に、当該インターフェイス回路によって受信されたコマンド信号（コマンド信号ｃｍｄ＿Ａ〜ｃｍｄ＿Ｄのいずれか）を、コマンド信号ｃｍｄ＿ｃ１としてメモリコア８１４−１（図８Ａにおいて不図示）に対して出力する。
【０１１３】
同様に、デコード回路８０９−２は、供給されたモード選択信号ＭＯＤＥの上位２ビットの値によりインターフェイス回路を特定する。そして、デコード回路８０９−２は、当該インターフェイス回路によって受信された拡張アドレス信号と、供給されたモード選択信号ＭＯＤＥの下位２ビットの値と、が一致する場合に、当該インターフェイス回路によって受信されたコマンド信号（コマンド信号ｃｍｄ＿Ａ〜ｃｍｄ＿Ｄのいずれか）を、コマンド信号ｃｍｄ＿ｃ２としてメモリコア８１４−２（図８Ａにおいて不図示）に対して出力する。
【０１１４】
同様に、デコード回路８０９−３は、供給されたモード選択信号ＭＯＤＥの上位２ビットの値によりインターフェイス回路を特定する。そして、デコード回路８０９−３は、当該インターフェイス回路によって受信された拡張アドレス信号と、供給されたモード選択信号ＭＯＤＥの下位２ビットの値と、が一致する場合に、当該インターフェイス回路によって受信されたコマンド信号（コマンド信号ｃｍｄ＿Ａ〜ｃｍｄ＿Ｄのいずれか）を、コマンド信号ｃｍｄ＿ｃ３としてメモリコア８１４−３（図８Ａにおいて不図示）に対して出力する。
【０１１５】
同様に、デコード回路８０９−４は、供給されたモード選択信号ＭＯＤＥの上位２ビットの値によりインターフェイス回路を特定する。そして、デコード回路８０９−４は、当該インターフェイス回路によって受信された拡張アドレス信号と、供給されたモード選択信号ＭＯＤＥの下位２ビットの値と、が一致する場合に、当該インターフェイス回路によって受信されたコマンド信号（コマンド信号ｃｍｄ＿Ａ〜ｃｍｄ＿Ｄのいずれか）を、コマンド信号ｃｍｄ＿ｃ４としてメモリコア８１４−４（図８Ａにおいて不図示）に対して出力する。
【０１１６】
このように、各メモリコア８１４−１〜８１４−４は、複数のインターフェイス回路のうちいずれか一つのインターフェイス回路にのみ接続される。換言すると、各インターフェイス回路は、互いに異なるメモリコアに接続される。
【０１１７】
図８Ａに示すメモリ８０２は、複数のセレクタ及び複数のデコード回路により構成される選択回路８０７を備えるため、図３Ａ及び図３Ｂに示すメモリ１０２と比較して、回路規模が大きい。したがって、図８Ａに示すメモリ８０２は、図３Ａ及び図３Ｂに示すメモリ１０２と比較して、データ処理性能が低下する可能性があった。そこで、図８Ａに示すメモリ８０２は、インターフェイス回路に信号保持回路（ラッチ回路）を設けることにより、パイプライン動作を可能にしている。
【０１１８】
なお、図８Ａに示すメモリ８０２とＦＰＧＡとにより構成される半導体集積回路において、一つの機能ブロックからデータの読み出し要求があった場合、当該機能ブロックがデータの読み出し要求を出してから当該データを受け取るまでの期間は９クロックサイクルである。これは、同条件の図１０Ａの例と同じクロックサイクル数である。一方、複数の機能ブロックから同時にデータの読み書き要求があった場合、いずれかの機能ブロックがデータの読み出し要求を出してから当該データを受け取るまでの期間も９クロックサイクルである。これは、同条件の図１０Ｂの例と比較して４クロックサイクル少ない。つまり、本実施の形態にかかるメモリでは、複数の機能ブロックから同時にデータの読み書き要求があった場合において、データ処理性能が向上している。
【０１１９】
以上のように、上記実施の形態にかかるメモリ（半導体装置）では、選択回路が、実際に使用されるインターフェイス回路を互いに異なるメモリコアに接続させるように、当該インターフェイス回路とメモリアレイとの間の信号経路を選択する。それにより、本実施の形態にかかるメモリは、複数の機能ブロックから同時に読み書き要求があった場合でも、調停回路による調停を行う必要がないため、データ処理性能の低下を防止することができる。
【０１２０】
なお、本発明は上記実施の形態１〜３に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。上記実施の形態１〜３では、メモリが４つのインターフェイス回路と４つのメモリコアとによって構成される場合を例に説明したが、これに限られない。実際に使用されるインターフェイス回路が互いに異なるメモリコアに接続されるという条件を満たすのであれば、任意の数のインターフェイス回路及びメモリコアによって構成される回路構成に適宜変更可能である。
【０１２１】
また、図３Ａ、図３Ｂ及び図８Ａに示すメモリの回路構成は一例に過ぎず、同様の処理を実行できる他の構成に変更可能であることは言うまでもない。
【符号の説明】
【０１２２】
１０１  ＦＰＧＡ
１０２  メモリ
１０３−１〜１０３−４  機能ブロック
１０４−１〜１０４−４，１０５−１〜１０５−４  インターフェイス回路
１０６−１〜１０６−４  メモリコア
１０７  選択回路
２０１  ＦＰＧＡ
２０３−１，２０３−２  機能ブロック
２０４−１〜２０４−４  インターフェイス回路
６１１  ＦＰＧＡ
６１２  インターポーザ基板
６１３  メモリ
６１４  再配線層
６１５  バンプ電極
６１６  充填材
６１７  ボンディング線
６１８  はんだボール
６２４，６２５  ＪＴＡＧ回路
６２６  レジスタ
７１１，７１２  システムボード
７１３，７１４  パッケージ
７１５  不揮発性メモリ
７２１  信号線
８０２  メモリ
８０３−１〜８０３−４  入力初段回路
８０４−１〜８０４−４  信号保持回路
８０５−１〜８０５−４  インターフェイス回路
８０７  選択回路
８０８−１〜８０８−４  セレクタ
８０９−１〜８０９−４  デコード回路
８１０  ＪＴＡＧ回路
８１１，８１２  レジスタ
８１３  デコード回路
８１４−１〜８１４−４  メモリコア
９０１  ＦＰＧＡ
９０２，９０３  メモリ
９０４〜９０７  機能ブロック
９０８，９０９  インターフェイス回路
９１０，９１１  調停回路
９１２，９１３  メモリコア
９１４，９１５インターフェイス回路
１１０１  ＦＰＧＡ
１１０２  メモリ
１１０３  インターフェイス回路
１１０４  メモリコア
１１０５  調停回路
１１０６，１１０７  機能ブロック
１１０８  インターフェイス回路
１１１１  ＦＰＧＡ
１１１２  メモリ
１１１３  インターフェイス回路
１１１４  メモリコア
１１１５  キャッシュ回路
【図１】
2012208975.tif 000003
【図２】
2012208975.tif 000004
【図３Ａ】
2012208975.tif 000005
【図３Ｂ】
2012208975.tif 000006
【図４Ａ】
2012208975.tif 000007
【図４Ｂ】
2012208975.tif 000008
【図５】
2012208975.tif 000009
【図６Ａ】
2012208975.tif 000010
【図６Ｂ】
2012208975.tif 000011
【図７Ａ】
2012208975.tif 000012
【図７Ｂ】
2012208975.tif 000013
【図８Ａ】
2012208975.tif 000014
【図８Ｂ】
2012208975.tif 000015
【図９】
2012208975.tif 000016
【図１０Ａ】
2012208975.tif 000017
【図１０Ｂ】
2012208975.tif 000018
【図１１Ａ】
2012208975.tif 000019
【図１１Ｂ】
2012208975.tif 000020