まず、本発明の実施の形態を説明する前に、本発明に至る前に本発明者らが検討した構成について説明する。本発明者らは、データ幅の大きなデータ信号を送受信する機能ブロックが実装されたロジックLSIと、メモリと、の間のデータ転送性能を向上させるために、図12に示すような構成を検討した。
図12は、本発明に至る前の構想にかかる半導体集積回路を示すブロック図である。図12に示す半導体集積回路は、データ幅の大きなデータ信号を送受信する機能ブロックに対して複数のメモリを備え、当該機能ブロックと当該複数のメモリとの間でデータ信号の受け渡しを行っている。以下、具体的に説明する。
図12に示す半導体集積回路は、複数の機能ブロックを有する集積回路1001と、メモリ1002−1〜1002−4と、を備える。各機能ブロックは、データ信号(データ)、データの読み書きを制御するコマンド信号、及び、データの読み書き対象となる記憶領域を指定するアドレス信号、からなる一組の信号群(チャンネル)を用いて、メモリ1002−1〜1002−4にアクセスする。以下の説明では、「アクセス」は、機能ブロック等の外部回路とメモリとの間で行われるデータ信号、アドレス信号及びコマンド信号の受け渡し、を意味する。また、以下の説明では、アドレス信号及びコマンド信号をまとめてアクセス制御信号と称す場合がある。
メモリ1002−1〜1002−4は、それぞれメモリコア1006−1〜1006−4を有し、それぞれインターフェイス回路1005−1〜1005−4を有する。
メモリコア1006−1〜1006−4は、それぞれ、データを記憶するためのメモリセル(記憶領域)を複数有する。メモリコア1006−1〜1006−4では、アドレス信号によって指定されたメモリセルに対しデータが書き込まれ、又は、アドレス信号によって指定されたメモリセルに記憶されたデータが読み出される。データの読み出し及び書き込みは、コマンド信号に含まれるライトイネーブル信号によって切り替えられる。
なお、メモリコア1006−1〜1006−4は、それぞれ、最大でnビット(nは自然数)のデータ幅のデータを同時に読み出し又は書き込みできるものとする。
インターフェイス回路1005−1〜1005−4は、それぞれ、集積回路1001からメモリコア1006−1〜1006−4へのアクセスをインターフェイスする。インターフェイス回路1005−1〜1005−4は、それぞれnビット幅のデータ信号をインターフェイスすることが可能である。
集積回路1001は、例えば、ソフトウェアによりその構成を変更可能なFPGA(Field Programmable Gate Array)である。デジタル家電等の組み込み機器やネットワーク装置の分野では、FPGAの共通基板(プラットフォーム)を用いて複数の派生製品を提供することができる。以下では、集積回路1001がFPGAである場合を例に説明する(以下、FPGA1001と称す)。
FPGA1001は、プログラミングされることにより、2つの独立した機能ブロック1003−1,1003−2と、インターフェイス回路1004−1,1004−2と、を有する。
なお、機能ブロック1003−1,1003−2は、それぞれ、メモリコアが同時に読み書き可能な最大データ幅のデータよりも、大きなデータ幅のデータを送受信するものとする。具体的には、機能ブロック1003−1,1003−2は、それぞれ、2nビットのデータ幅のデータを送受信するものとする。
インターフェイス回路1004−1は、機能ブロック1003−1から2つのメモリ1002−1,1002−2へのアクセスをインターフェイスする。インターフェイス1004−2は、機能ブロック1003−2から2つのメモリ1002−3,1002−4へのアクセスをインターフェイスする。インターフェイス回路1004−1,1004−2は、それぞれ2nビット幅のデータ信号をインターフェイスすることが可能である。
機能ブロック1003−1は、作業用データの一時退避等を目的として、メモリ1002−1,1002−2にアクセスする。
例えば、メモリにデータの書き込みを行う場合、機能ブロック1003−1は、2nビット幅のデータDQ[2n−1:0]_A([]内はビット番号。以下、他のデータ信号名及びアドレス信号名においても同じ。[]の記載を省略し、単に「データDQ_A」等と称す場合がある)及び対応するアクセス制御信号CTL_Aを、インターフェイス回路1004−1を介してメモリ1002−1,1002−2に対して送信する。メモリ1002−1では、インターフェイス回路1005−1にnビット幅分のデータDQ[n−1:0]_Aが供給され、メモリ1002−2では、インターフェイス回路1005−2に残りのnビット幅分のデータDQ[2n−1:n]_Aが供給される。そして、インターフェイス回路1005−1に供給されたデータDQ[n−1:0]_Aは、メモリコア1006−1に入力され、インターフェイス回路1005−2に供給されたデータDQ[2n−1:n]_Aは、メモリコア1006−2に入力される。このとき、機能ブロック1003−1から送信されたアクセス制御信号CTL_Aは、メモリ1002−1,1002−2の何れにも供給される。それにより、メモリコア1006−1には、nビット幅のデータDQ[n−1:0]_Aが書き込まれ、メモリコア1006−2には、残りのnビット幅のデータDQ[2n−1:n]_Aが書き込まれる。
一方、メモリからデータの読み出しを行う場合、機能ブロック1003−1は、アクセス制御信号CTL_Aを、インターフェイス回路1004−1を介してメモリ1002−1,1002−2に対して送信する。このアクセス制御信号CTL_Aは、メモリ1002−1,1002−2の何れにも供給される。それにより、メモリコア1006−1からnビット幅のデータDQ[n−1:0]_Aが読み出され、メモリコア1006−2から残りのnビット幅のデータDQ[2n−1:n]_Aが読み出される。機能ブロック1003−1は、メモリ1002−1,1002−2からそれぞれ読み出されたnビット幅のデータDQ[n−1:0]_A及びnビット幅のデータDQ[2n−1:n]_Aを、2nビット幅のデータDQ[2n−1:0]_Aとして受信する。
同様に、機能ブロック1003−2は、作業用データの一時退避等を目的として、メモリ1002−3,1002−4にアクセスする。
例えば、メモリにデータの書き込みを行う場合、機能ブロック1003−2は、2nビット幅のデータDQ[2n−1:0]_B及び対応するアクセス制御信号CTL_Bを、インターフェイス回路1004−2を介してメモリ1002−3,1002−4に対して送信する。メモリ1002−3では、インターフェイス回路1005−3にnビット幅分のデータDQ[n−1:0]_Bが供給され、メモリ1002−4では、インターフェイス回路1005−4に残りのnビット幅分のデータDQ[2n−1:n]_Bが供給される。そして、インターフェイス回路1005−3に供給されたデータDQ[n−1:0]_Bは、メモリコア1006−3に入力され、インターフェイス回路1005−4に供給されたデータDQ[2n−1:n]_Bは、メモリコア1006−4に入力される。このとき、機能ブロック1003−2から送信されたアクセス制御信号CTL_Bは、メモリ1002−3,1002−4の何れにも供給される。それにより、メモリコア1006−3には、nビット幅のデータDQ[n−1:0]_Bが書き込まれ、メモリコア1006−4には、残りのnビット幅のデータDQ[2n−1:n]_Bが書き込まれる。
一方、メモリからデータの読み出しを行う場合、機能ブロック1003−2は、アクセス制御信号CTL_Bを、インターフェイス回路1004−2を介してメモリ1002−3,1002−4に対して送信する。このアクセス制御信号CTL_Bは、メモリ1002−3,1002−4の何れにも供給される。それにより、メモリコア1006−3からnビット幅のデータDQ[n−1:0]_Bが読み出され、メモリコア1006−4から残りのnビット幅のデータDQ[2n−1:n]_Bが読み出される。機能ブロック1003−2は、メモリ1002−3,1002−4からそれぞれ読み出されたnビット幅のデータDQ[n−1:0]_B及びnビット幅のデータDQ[2n−1:n]_Bを、2nビット幅のデータDQ[2n−1:0]_Bとして受信する。
このように、図12に示す半導体集積回路は、データ幅の大きなデータ信号を送受信する機能ブロックに対して複数のメモリを備え、当該機能ブロックと当該複数のメモリとの間でデータ信号の受け渡しを行っていた。
しかしながら、図12に示す半導体集積回路では、各機能ブロックに対して複数のメモリが設けられる必要があるため、半導体集積回路全体としての部品点数が多くなる。具体的には、図12に示す半導体集積回路の部品点数は、FPGA1001及びメモリ1002−1〜1002−4の合計5つである。それにより、これらチップ間を接続する信号線の本数が増大し、ボード上の配線が混雑してしまう。特に、各機能ブロックから送信されたアクセス制御信号(アドレス信号及びコマンド信号)は、複数のメモリの何れにも供給される必要がある。そのため、アクセス制御信号を伝達するための信号線の配線長が増大し、ボート上の配線が混雑してしまう。その結果、タイミング調整や、クロストーク等の特性を抑えること、等が困難になるという問題があった。
また、FPGA1001は、上記したようにソフトウェアによりその構成を変更可能である。そのため、図12に示す半導体集積回路では、一度システムボードが構築された後でも、FPGA1001の構成を変更することにより、システムの仕様を変更することが可能である。しかしながら、ボード上の配線までは変更できないため、FPGA1001に設けられた機能ブロックを大きなデータ幅のデータを送受信する機能ブロックに変更することができないという問題があった。仮に、大きなデータ幅のデータを送受信する機能ブロックに変更する場合には、別途、システムボードが構築される必要があるため、設計工数が増大するという問題があった。
以下、図面を参照しつつ、本発明の実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の記号を付し、重複する説明は省略する。
実施の形態1
図1は、本発明の実施の形態1にかかるメモリ(半導体装置)を備えた半導体集積回路を示すブロック図である。本実施の形態にかかるメモリでは、複数のインターフェイス回路がそれぞれ複数のメモリコアうち異なるメモリコアに対してデータ信号をインターフェイスできるように、複数のインターフェイスと複数のメモリコアとの間にデータ信号の経路が設定されている。それにより、本実施の形態にかかるメモリは、同一のメモリコアに対し複数の機能ブロックから同時にアクセスされないため、調停回路による調停が不要となり、データ処理性能の低下を抑制することができる。
さらに、本実施の形態にかかるメモリは、アクセス制御信号(アドレス信号及びコマンド信号)が供給されるインターフェイス回路と、切替信号MODE1に基づいて選択された何れか1つ以上のメモリコアと、の間にアクセス制御信号の経路を設定する選択回路(経路切替回路)を備える。そのため、本実施の形態にかかるメモリは、外部回路から供給されるデータ信号のデータ幅に関わらず、当該データ信号に対応するアクセス制御信号を何れか一つのインターフェイス回路から受信する構成となる。それにより、本実施の形態にかかる半導体集積回路では、アクセス制御信号を伝達するための信号線の配線長が従来よりも短くなり、ボード上の配線混雑が抑制される。その結果、タイミング調整や、クロストーク等の特性を抑えること、等が従来よりも容易になる。換言すると、本実施の形態に係る半導体集積回路は、設計制約を満たす設計が困難になることを抑制することができる。以下、具体的に説明する。
図1に示す半導体集積回路は、複数の機能ブロックを有する集積回路(外部回路)101と、メモリ102と、を備える。なお、集積回路101は、例えば、ソフトウェアによりその構成を変更可能なFPGA(Field Programmable Gate Array)である。以下では、集積回路101がFPGAである場合を例に説明する(以下、FPGA101と称す)。
メモリ102は、独立にアクセス可能な4つのメモリコア106−1〜106−4と、インターフェイス回路105−1〜105−4と、選択回路(経路切替回路)107−1,107−2と、を備える。FPGA101とメモリ102との間では、外部バスを介して信号伝達が行われる。なお、メモリコア106−1を第1のメモリコア、メモリコア106−2と第2のメモリコアと称する場合がある。インターフェイス回路105−1を第1のバスインターフェイス回路、インターフェイス回路105−2を第2のバスインターフェイス回路と称する場合がある。
メモリコア106−1〜106−4は、それぞれ、データを記憶するためのメモリセル(記憶領域)を複数有する。メモリコア106−1〜106−4では、アドレス信号によって指定されたメモリセルに対しデータが書き込まれ、又は、アドレス信号によって指定されたメモリセルに記憶されたデータが読み出される。データの読み出し及び書き込みは、コマンド信号に含まれるライトイネーブル信号によって切り替えられる。
なお、本実施の形態では、メモリコア106−1〜106−4が、ぞれぞれ、最大でnビット(nは自然数)のデータ幅のデータを同時に読み出し又は書き込みできる場合を例に説明する。
インターフェイス回路105−1〜105−4は、それぞれ、FPGA101とメモリコア106−1〜106−4との間で行われるデータ信号の受け渡しをインターフェイスする。つまり、インターフェイス回路105−1〜105−4と、メモリコア106−1〜106−4と、の間には、1対1の関係でデータ信号の経路が設定されている。なお、インターフェイス回路(第1のバスインターフェイス回路)105−1とメモリコア(第1のメモリコア)106−1とを結合するデータ信号の経路を、第1のデータバスと称する場合がある。インターフェイス回路(第2のバスインターフェイス回路)105−2とメモリコア(第2のメモリコア)106−2とを結合するデータ信号の経路を、第2のデータバスを称する場合がある。
さらに、インターフェイス回路105−1〜105−4は、それぞれ、FPGA101からメモリコア106−1〜106−4の何れかに対するアクセス制御信号の受け渡しをインターフェイスする。インターフェイス回路105−1〜105−4は、それぞれnビット幅のデータ信号をインターフェイスすることが可能である。
選択回路107−1は、外部(FPGA101)から供給される切替信号MODE1に基づいて、インターフェイス回路105−1,105−2の何れかと、メモリコア106−2と、の間にアクセス制御信号の経路を設定する回路である。換言すると、選択回路107−1は、外部から供給される切替信号MODE1に基づいて、インターフェイス回路105−1に供給されるアクセス制御信号(第1のアクセス制御信号)、又は、インターフェイス回路105−2に供給されるアクセス制御信号(第2のアクセス制御信号)を選択し、メモリコア106−2に対して出力する回路である。図1の例では、FPGA101からHレベルの切替信号MODE1が供給されている。そのため、選択回路107−1は、インターフェイス回路105−2とメモリコア106−2との間にアクセス制御信号の経路を設定する。つまり、選択回路107−1は、インターフェイス回路105−2に供給されるアクセス制御信号を選択し、メモリコア106−2に対して出力する。
インターフェイス回路105−1とメモリコア106−1との間には、アクセス制御信号の経路が設定されている。そのため、メモリコア106−1には、インターフェイス回路105−1を介してアクセス制御信号(第1のアクセス制御信号)が入力される。
選択回路107−3は、外部(FPGA101)から供給される切替信号MODE1に基づいて、インターフェイス回路105−3,105−4の何れかと、メモリコア106−4と、の間にアクセス制御信号の経路を設定する回路である。換言すると、選択回路107−3は、外部から供給される切替信号MODE1に基づいて、インターフェイス回路105−3に供給されるアクセス制御信号、又は、インターフェイス回路105−4に供給されるアクセス制御信号、を選択し、メモリコア106−4に対して出力する回路である。図1の例では、FPGA101からHレベルの切替信号MODE1が供給されている。そのため、選択回路107−3は、インターフェイス回路105−4とメモリコア106−4との間にアクセス制御信号の経路を設定する。つまり、選択回路107−3は、インターフェイス回路105−4に供給されるアクセス制御信号を選択し、メモリコア106−4に対して出力する。
インターフェイス回路105−3とメモリコア106−3との間には、アクセス制御信号の経路が設定されている。そのため、メモリコア106−3には、インターフェイス回路105−3を介してアクセス制御信号が入力される。
FPGA101は、プログラミングされることにより、4つの独立した機能ブロック103−1〜103−4と、インターフェイス回路104−1〜104−4と、を有する。
なお、本実施の形態では、機能ブロック103−1〜103−4が、それぞれ、メモリコアが処理可能な最大データ幅のデータと同じデータ幅のデータを送受信する場合を例に説明する。つまり、機能ブロック103−1〜103−4は、それぞれ、nビットのデータ幅のデータを送受信する。
インターフェイス回路104−1〜104−4は、それぞれ、機能ブロック103−1〜103−4とメモリ102との間で行われるデータ信号及びアクセス制御信号の受け渡しをインターフェイスする。インターフェイス回路104−1〜104−4は、それぞれnビット幅のデータ信号をインターフェイスすることが可能である。なお、FPGA101は、図示していないが、機能ブロック103−1〜103−4やメモリ102に供給されるクロック信号を生成する回路や、後述する切替信号MODE1を生成する回路をさらに有する。
機能ブロック103−1〜103−4は、作業用データの一時退避等を目的として、メモリ102にアクセスする。図1の例では、機能ブロック103−1〜103−4は、それぞれ、メモリ102に設けられたメモリコア106−1〜106−4との間でデータ信号及びアクセス制御信号の受け渡しを行う。
例えば、メモリにデータの書き込みを行う場合、機能ブロック103−1は、nビット幅のデータDQ[n−1:0]_A及び対応するアクセス制御信号CTL_Aを、インターフェイス回路104−1を介してメモリ102に対して送信する。メモリ102では、メモリコア106−1が、nビット幅のデータDQ[n−1:0]_A及びアクセス制御信号CTL_Aを、インターフェイス回路105−1を介して受信する。それにより、メモリコア106−1には、nビット幅のデータDQ[n−1:0]_Aが書き込まれる。
同様にして、機能ブロック103−2は、nビット幅のデータDQ[n−1:0]_B及び対応するアクセス制御信号CTL_Bを、インターフェイス回路104−2を介してメモリ102に対して送信する。メモリ102では、メモリコア106−2が、nビット幅のデータDQ[n−1:0]_B及びアクセス制御信号CTL_Bを、インターフェイス回路105−2を介して受信する。それにより、メモリコア106−2には、nビット幅のデータDQ[n−1:0]_Bが書き込まれる。同様にして、機能ブロック103−3は、nビット幅のデータDQ[n−1:0]_C及び対応するアクセス制御信号CTL_Cを、インターフェイス回路104−3を介してメモリ102に対して送信する。メモリ102では、メモリコア106−3が、nビット幅のデータDQ[n−1:0]_C及びアクセス制御信号CTL_Cを、インターフェイス回路105−3を介して受信する。それにより、メモリコア106−3には、nビット幅のデータDQ[n−1:0]_Cが書き込まれる。同様にして、機能ブロック103−4は、nビット幅のデータDQ[n−1:0]_D及び対応するアクセス制御信号CTL_Dを、インターフェイス回路104−4を介してメモリ102に対して送信する。メモリ102では、メモリコア106−4が、nビット幅のデータDQ[n−1:0]_D及びアクセス制御信号CTL_Dを、インターフェイス回路105−4を介して受信する。それにより、メモリコア106−4には、nビット幅のデータDQ[n−1:0]_Dが書き込まれる。
一方、メモリからデータの読み出しを行う場合、機能ブロック103−1は、アクセス制御信号CTL_Aを、インターフェイス回路104−1を介してメモリ102に対して送信する。メモリ102では、メモリコア106−1が、アクセス制御信号CTL_Aを、インターフェイス回路105−1を介して受信する。それにより、メモリコア106−1からnビット幅のデータDQ[n−1:0]_Aが読み出される。
同様にして、機能ブロック103−2は、アクセス制御信号CTL_Bを、インターフェイス回路104−2を介してメモリ102に対して送信する。メモリ102では、メモリコア106−2が、アクセス制御信号CTL_Bを、インターフェイス回路105−2を介して受信する。それにより、メモリコア106−2からnビット幅のデータDQ[n−1:0]_Bが読み出される。機能ブロック103−3は、アクセス制御信号CTL_Cを、インターフェイス回路104−3を介してメモリ102に対して送信する。メモリ102では、メモリコア106−3が、アクセス制御信号CTL_Cを、インターフェイス回路105−3を介して受信する。それにより、メモリコア106−3からnビット幅のデータDQ[n−1:0]_Cが読み出される。同様にして、機能ブロック103−4は、アクセス制御信号CTL_Dを、インターフェイス回路104−4を介してメモリ102に対して送信する。メモリ102では、メモリコア106−4が、アクセス制御信号CTL_Dを、インターフェイス回路105−4を介して受信する。それにより、メモリコア106−4からnビット幅のデータDQ[n−1:0]_Dが読み出される。
このようにして、図1の例では、機能ブロック103−1とメモリコア106−1との間でnビット幅のデータDQ_A及びアクセス制御信号CTL_Aの受け渡しが行われる。機能ブロック103−2とメモリコア106−2との間でnビット幅のデータDQ_B及びアクセス制御信号CTL_Bの受け渡しが行われる。機能ブロック103−3とメモリコア106−3との間でnビット幅のデータDQ_C及びアクセス制御信号CTL_Cの受け渡しが行われる。また、機能ブロック103−4とメモリコア106−4との間でnビット幅のデータ信号DQ_D及びアクセス制御信号CTL_Dの受け渡しが行われる。
このように、機能ブロック103−1〜103−4は、それぞれ異なるメモリコア106−1〜106−4との間でデータ信号の受け渡しを行う。そのため、本実施の形態にかかるメモリ102は、同一のメモリコアに対し複数の機能ブロックから同時にアクセスされないため、調停回路による調停が不要となり、データ処理性能の低下を抑制することができる。
なお、図1の例では、FPGA101がnビット幅のデータを送受信する4つの機能ブロック103−1〜103−4を備えた場合を例に説明したが、これに限られない。機能ブロックの数は任意に変更可能である。ここで、FPGA101がnビット幅のデータを送受信する3つの機能ブロック103−1〜103−3を備えている場合、メモリ102のインターフェイス回路105−4には、FPGA101からデータ信号等は供給されない。この場合、インターフェイス回路105−4には、固定信号(所定の論理レベルの電圧)が供給される。それにより、入力端子オープンによるフローティングを防ぐことができる。なお、インターフェイス回路105−1〜105−4にそれぞれ固定信号が供給されるか否かは、切替信号MODE1に基づいて決定される。
また、FPGA101は、例えば、機能ブロックが送信するデータのデータ幅に応じた信号レベルの切替信号MODE1を生成し、メモリ102に対して出力する。あるいは、FPGA101は、メモリ102にアクセスを必要とする機能ブロックの数に応じた信号レベルの切替信号MODE1を生成し、メモリ102に対して出力する。また、FPGA101は、クロック信号CKを生成しメモリ102に対して出力する。メモリコア106−1〜106−4は、このクロック信号CKに同期して動作する。
図2Aに示す半導体集積回路は、図1に示すFPGA101を再プログラミングしてFPGA201としたものである。具体的には、FPGA201は、再プログラミングされることにより、2つの独立した機能ブロック203−1,203−2と、インターフェイス回路204−1,204−2と、を有する。以下では、主として図1に示す半導体集積回路とは異なる点について説明する。
なお、本実施の形態では、機能ブロック203−1,203−2が、それぞれ、メモリコアが処理可能な最大データ幅のデータより大きなデータ幅のデータを送受信する場合を例に説明する。具体的には、機能ブロック203−1,203−2は、それぞれ、2nビットのデータ幅のデータを送受信する。また、インターフェイス回路204−1,204−2は、それぞれ2nビット幅のデータ信号をインターフェイスすることが可能である。
図2Aの例では、FPGA201からメモリ102に対してLレベルの切替信号MODE1が供給されている。そのため、メモリ102において、選択回路107−1は、インターフェイス回路105−1とメモリコア106−2との間にアクセス制御信号の経路を設定する。つまり、選択回路107−1は、インターフェイス回路105−1に供給されるアクセス制御信号を選択し、メモリコア106−2に対して出力する。また、選択回路107−3は、インターフェイス回路105−3とメモリコア106−4との間にアクセス制御信号の経路を設定する。つまり、選択回路107−3は、インターフェイス回路105−3に供給されるアクセス制御信号を選択し、メモリコア106−4に対して出力する。
つまり、インターフェイス回路105−1とメモリコア106−1,106−2との間にアクセス制御信号の経路が設定され、インターフェイス回路105−3とメモリコア106−3,106−4との間にアクセス制御信号の経路が設定される。なお、データ信号の経路は、図1の場合と同様に、インターフェイス回路105−1〜105−4と、メモリコア106−1〜106−4と、の間に1対1の関係で設定されている。
FPGA201において、インターフェイス回路204−1,204−2は、それぞれ、機能ブロック203−1,203−2とメモリ102との間で行われるデータ信号及びアクセス制御信号の受け渡しをインターフェイスする。
機能ブロック203−1,203−2は、作業用データの一時退避等を目的として、メモリ102にアクセスする。図2Aの例では、機能ブロック203−1は、メモリ102に設けられたメモリコア106−1,106−2との間でデータ信号及びアクセス制御信号の受け渡しを行い、機能ブロック203−2は、メモリ102に設けられたメモリコア106−3,106−4との間でデータ信号及びアクセス制御信号の受け渡しを行う。
例えば、メモリにデータの書き込みを行う場合、機能ブロック203−1は、2nビット幅のデータDQ[2n−1:0]_A及び対応するアクセス制御信号CTL_Aを、インターフェイス回路204−1を介してメモリ102に対して送信する。メモリ102では、メモリコア106−1が、nビット幅分のデータDQ[n−1:0]_Aをインターフェイス回路105−1を介して受信し、メモリコア106−2が、残りのnビット幅分のデータDQ[2n−1:n]_Aをインターフェイス回路105−2を介して受信する。このとき、機能ブロック203−1から送信されたアクセス制御信号CTL_Aは、インターフェイス回路105−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路105−1を介して、メモリコア106−1,106−2の何れにも入力される。それにより、メモリコア106−1には、nビット幅分のデータDQ[n−1:0]_Aが書き込まれ、メモリコア106−2には、残りのnビット幅分のデータDQ[2n−1:n]_Aが書き込まれる。
同様にして、機能ブロック203−2は、2nビット幅のデータDQ[2n−1:0]_B及び対応するアクセス制御信号CTL_Bを、インターフェイス回路204−2を介してメモリ102に対して送信する。メモリ102では、メモリコア106−3が、nビット幅分のデータDQ[n−1:0]_Bをインターフェイス回路105−3を介して受信し、メモリコア106−4が、残りのnビット幅分のデータDQ[2n−1:n]_Bをインターフェイス回路105−4を介して受信する。このとき、機能ブロック203−2から送信されたアクセス制御信号CTL_Bは、インターフェイス回路105−3にのみ供給される。そして、アクセス制御信号CTL_Bは、インターフェイス回路105−3を介して、メモリコア106−3,106−4の何れにも入力される。それにより、メモリコア106−3には、nビット幅分のデータDQ[n−1:0]_Bが書き込まれ、メモリコア106−4には、残りのnビット幅分のデータDQ[2n−1:n]_Bが書き込まれる。
一方、メモリからデータの読み出しを行う場合、機能ブロック203−1は、アクセス制御信号CTL_Aを、インターフェイス回路204−1を介してメモリ102に対して送信する。このアクセス制御信号CTL_Aは、インターフェイス回路105−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路105−1を介して、メモリコア106−1,106−2の何れにも入力される。それにより、メモリコア106−1からnビット幅分のデータDQ[n−1:0]_Aが読み出され、メモリコア106−2から残りのnビット幅分のデータDQ[2n−1:n]_Aが読み出される。
同様にして、機能ブロック203−2は、アクセス制御信号CTL_Bを、インターフェイス回路204−2を介してメモリ102に対して送信する。このアクセス制御信号CTL_Bは、インターフェイス回路105−3にのみ供給される。そして、アクセス制御信号CTL_Bは、インターフェイス回路105−3を介して、メモリコア106−3,106−4の何れにも入力される。それにより、メモリコア106−3からnビット幅分のデータDQ[n−1:0]_Bが読み出され、メモリコア106−4から残りのnビット幅分のデータDQ[2n−1:n]_Bが読み出される。
このようにして、機能ブロック203−1とメモリコア106−1,106−2との間で2nビット幅のデータDQ_A及びアクセス制御信号CTL_Aの受け渡しが行われる。機能ブロック203−2とメモリコア106−3,106−4との間で2nビット幅のデータDQ_B及びアクセス制御信号CTL_Bの受け渡しが行われる。
このように、機能ブロック203−1,203−2は、それぞれ異なるメモリコア106−1〜106−4との間でデータ信号の受け渡しを行う。そのため、本実施の形態にかかるメモリ102は、同一のメモリコアに対し複数の機能ブロックから同時にアクセスされないため、調停回路による調停が不要となり、データ処理性能の低下を抑制することができる。
さらに、図1及び図2Aに示す本発明にかかる半導体集積回路では、図12に示す従来技術の半導体集積回路と比較して、半導体集積回路全体としての部品点数が少ない。具体的には、図1及び図2Aに示す半導体集積回路の部品点数は、FPGA101(201)及びメモリ102の合計2つである。それにより、本発明にかかる半導体集積回路では、これらチップ間を接続する信号線の本数が従来技術の場合よりも少なくなり、ボード上の配線の混雑は抑制される。特に、図2Aの例のように、機能ブロックによって送受信されるデータのデータ幅が大きく、当該データがメモリ内の複数のインターフェイス回路に分かれて供給される場合でも、当該機能ブロックから送信されるアクセス制御信号は、メモリ内の一つのインターフェイス回路にのみ供給される。そのため、本発明にかかる半導体集積回路では、アクセス制御信号を伝達するための信号線の配線長が従来技術の場合よりも短くなり、ボード上の配線の混雑が抑制される。その結果、本発明にかかる半導体集積回路では、タイミング調整や、クロストークなどの特性を抑えること、等が、従来技術の場合よりも容易になる。
さらに、本発明にかかる半導体集積回路では、一度システムボードが構築された後に、機能ブロックを大きなデータ幅のデータを送受信する機能ブロックに変更する場合でも、ボード上の配線を変更する必要がない。そのため、本発明にかかる半導体集積回路は、従来技術と異なり、別途システムボードを構築する必要が無いため、設計工数の増大を抑制することができる。
なお、図2Aの例では、FPGA201が2nビット幅のデータを送受信する2つの機能ブロック203−1,203−2を備えた場合を例に説明したが、これに限られない。機能ブロックの数は任意に変更可能である。ここで、FPGA201が2nビット幅のデータを送受信する1つの機能ブロック203−1を備えている場合、メモリ102のインターフェイス回路105−3,105−4には、FPGA201からデータ信号等は供給されない。この場合、インターフェイス回路105−3,105−4には、固定信号(所定の論理レベルの電圧)が供給される。それにより、入力端子オープンによるフローティングを防ぐことができる。なお、インターフェイス回路105−1〜105−4にそれぞれ固定信号が供給されるか否かは、切替信号MODE1に基づいて決定される。
(メモリ102の具体的な構成例)
次に、メモリ102の具体的な構成例について、図3を用いて説明する。図3は、図1及び図2Aに示すメモリ102に設けられたインターフェイス回路105−1,105−2及び選択回路107−1の一部を示す回路図である。図3は、主としてアドレス信号及びコマンド信号の信号経路上の回路構成を示している。なお、インターフェイス回路105−3,105−4及び選択回路107−3も、インターフェイス回路105−1,105−2及び選択回路107−1と同様の回路構成である。
図3に示すように、インターフェイス回路105−1,105−2及び選択回路107−1は、それぞれ、複数の論理ゲートにより構成されている。なお、図3の例では、特性をできるだけ同じにするため、何れのインターフェイス回路も同一の回路構成としている。また、図3では、選択回路107−1から出力される2種類のアクセス制御信号に対しそれぞれ新たな符号を付すことにより、それらを明示的に区別している。
図3に示すように、インターフェイス回路105−1には、コマンド信号として、チップセレクト信号CSN_A、ライトイネーブル信号WEN_A及びリフレッシュ信号REFN_Aが供給される。さらに、インターフェイス回路105−1には、m(mは自然数)ビット幅のアドレス信号A0_A〜A(m−1)_Aが供給される。これらの信号群をまとめてアクセス制御信号CTL_Aと称す。
また、インターフェイス回路105−2には、コマンド信号として、チップセレクト信号CSN_B、ライトイネーブル信号WEN_B及びリフレッシュ信号REFN_Bが供給され得る。さらに、インターフェイス回路105−2には、mビット幅のアドレス信号A0_B〜A(m−1)_Bが供給され得る。これらの信号群をまとめてアクセス制御信号CTL_Bと称す。
選択回路107−1は、インターフェイス回路105−1に供給されたアクセス制御信号CTL_Aを、常に、チップセレクト信号CSN_c1、ライトイネーブル信号WEN_c1、リフレッシュ信号REFN_c1及びアドレス信号A0_c1〜A(m−1)_c1としてメモリコア106−1に対して出力する。
さらに、選択回路107−1は、切替信号MODE1に基づいて、インターフェイス回路105−1に供給されたアクセス制御信号CTL_A、又は、インターフェイス回路105−2に供給されたアクセス制御信号CTL_B、を選択し、チップセレクト信号CSN_c2、ライトイネーブル信号WEN_c2、リフレッシュ信号REFN_c2及びアドレス信号A0_c2〜A(m−1)_c2としてメモリコア106−2に対して出力する。
例えば、切替信号MODE1がHレベルの場合、選択回路107−1は、インターフェイス回路105−2に供給されたアクセス制御信号CTL_Bを、チップセレクト信号CSN_c2、ライトイネーブル信号WEN_c2、リフレッシュ信号REFN_c2及びアドレス信号A0_c2〜A(m−1)_c2としてメモリコア106−2に対して出力する。
一方、切替信号MODE1がLレベルの場合、選択回路107−1は、インターフェイス回路105−1に供給されたアクセス制御信号CTL_Aを、チップセレクト信号CSN_c2、ライトイネーブル信号WEN_c2、リフレッシュ信号REFN_c2及びアドレス信号A0_c2〜A(m−1)_c2としてメモリコア106−2に対して出力する。
なお、図3に示すメモリ102の回路構成は一例に過ぎず、同様の処理を実行できる他の構成に変更可能であることは言うまでもない。
実施の形態2
本実施の形態では、図1及び図2Aに示すメモリ102の第1の変形例について、図2Bを用いて説明する。図2Bに示す半導体集積回路は、FPGA201bと、メモリ102の変形例としてメモリ102bと、を備える。ここで、FPGA201bとメモリ102bとの間では、3nビット幅のデータ信号の受け渡しが行われる。
メモリ102bは、メモリ102と比較して、選択回路の構成が異なる。具体的には、メモリ102bは、選択回路107−3に代えて選択回路107−2を備える。メモリ102bのその他の回路構成については、メモリ102の場合と同様であるため、その説明を省略する。
選択回路107−2は、外部(FPGA201b)から供給される切替信号MODE1に基づいて、インターフェイス回路105−1,105−3の何れかと、メモリコア106−3と、の間にアクセス制御信号の経路を設定する回路である。換言すると、選択回路107−2は、外部から供給される切替信号MODE1に基づいて、インターフェイス回路105−1に供給されるアクセス制御信号(第1のアクセス制御信号)、又は、インターフェイス回路105−3に供給されるアクセス制御信号(第3のアクセス制御信号)を選択し、メモリコア(第3のメモリコア)106−3に対して出力する。図2Bの例では、FPGA201bからLレベルの切替信号MODE1が供給されている。そのため、選択回路107−2は、インターフェイス回路105−1とメモリコア106−3との間にアクセス制御信号の経路を設定する。つまり、選択回路107−2は、インターフェイス回路105−1に供給されるアクセス制御信号を選択し、メモリコア106−3に対して出力する。
なお、仮にFPGA201bからHレベルの切替信号MODE1が供給される場合には、選択回路107−2は、インターフェイス回路105−3とメモリコア106−3との間にアクセス制御信号の経路を設定する。つまり、選択回路107−2は、インターフェイス回路105−3に供給されるアクセス制御信号を選択し、メモリコア106−3に対して出力する。
また、選択回路107−1は、上記したように、切替信号MODE1がLレベルの場合、インターフェイス回路105−1とメモリコア106−2との間にアクセス制御信号の経路を設定する。つまり、選択回路107−1は、インターフェイス回路105−1に供給されるアクセス制御信号を選択し、メモリコア106−2に対して出力する。
つまり、インターフェイス回路105−1とメモリコア106−1〜106−3との間にアクセス制御信号の経路が設定される。そのため、メモリコア106−1〜106−3には、何れもインターフェイス回路105−1を介して共通のアクセス制御信号が入力される。その他、インターフェイス回路105−4とメモリコア106−4との間には、アクセス制御信号の経路が設定されている。そのため、メモリコア106−4には、インターフェイス回路105−4を介してアクセス制御信号が入力される。
なお、データ信号の経路は、図1及び図2Aの場合と同様に、インターフェイス回路105−1〜105−4と、メモリコア106−1〜106−4と、の間に1対1の関係で設定されている。なお、インターフェイス回路(第3のバスインターフェイス回路)105−3とメモリコア(第3のメモリコア)106−3とを結合するデータ信号の経路を、第3のデータバスと称する場合がある。
FPGA201bは、プログラミングされることにより、2つの独立した機能ブロック203b−1,203b−2と、インターフェイス回路204b−1,204b−2と、を有する。なお、本実施の形態では、機能ブロック203b−1が、3nビットのデータ幅のデータを送受信し、機能ブロック203b−2が、nビットのデータ幅のデータを送受信する場合を例に説明する。
インターフェイス回路204b−1,204b−2は、それぞれ、機能ブロック203b−1,203b−2とメモリ102bとの間で行われるデータ信号及びアクセス制御信号の受け渡しをインターフェイスする。インターフェイス回路204b−1は、3nビット幅のデータ信号をインターフェイス可能であり、インターフェイス回路204b−2は、nビット幅のデータ信号をインターフェイスすることが可能である。
機能ブロック203b−1,203b−2は、作業用データの一時退避等を目的として、メモリ102bにアクセスする。図2Bの例では、機能ブロック203b−1は、メモリ102bに設けられたメモリコア106−1〜106−3との間でデータ信号及びアクセス制御信号の受け渡しを行い、機能ブロック203b−2は、メモリ102bに設けられたメモリコア106−4との間でデータ信号及びアクセス制御信号の受け渡しを行う。
例えば、メモリにデータの書き込みを行う場合、機能ブロック203b−1は、3nビット幅のデータDQ[3n−1:0]_A及び対応するアクセス制御信号CTL_Aを、インターフェイス回路204b−1を介してメモリ102bに対して送信する。メモリ102bでは、メモリコア106−1が、nビット幅分のデータDQ[n−1:0]_Aをインターフェイス回路105−1を介して受信し、メモリコア106−2が、nビット幅分のデータDQ[2n−1:n]_Aをインターフェイス回路105−2を介して受信し、残りのnビット幅分のデータDQ[3n−1:2n]_Aをインターフェイス回路105−3を介して受信する。このとき、機能ブロック203b−1から送信されたアクセス制御信号CTL_Aは、インターフェイス回路105−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路105−1を介して、メモリコア106−1〜106−3の何れにも入力される。それにより、メモリコア106−1には、nビット幅分のデータDQ[n−1:0]_Aが書き込まれ、メモリコア106−2には、nビット幅分のデータDQ[2n−1:n]_Aが書き込まれ、メモリコア106−3には、残りのnビット幅分のデータDQ[3n−1:2n]_Aが書き込まれる。
また、機能ブロック203b−2は、nビット幅のデータDQ[n−1:0]_B及び対応するアクセス制御信号CTL_Bを、インターフェイス回路204b−2を介してメモリ102bに対して送信する。メモリ102bでは、メモリコア106−4が、nビット幅のデータDQ[n−1:0]_B及び対応するアクセス制御信号CTL_Bを、インターフェイス回路105−4を介して受信する。それにより、メモリコア106−4には、nビット幅のデータDQ[n−1:0]_Bが書き込まれる。
一方、メモリからデータの読み出しを行う場合、機能ブロック203b−1は、アクセス制御信号CTL_Aを、インターフェイス回路204b−1を介してメモリ102bに対して送信する。機能ブロック203b−1から送信されたアクセス制御信号CTL_Aは、インターフェイス回路105−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路105−1を介して、メモリコア106−1〜106−3の何れにも入力される。それにより、メモリコア106−1からnビット幅分のデータDQ[n−1:0]_Aが読み出され、メモリコア106−2からnビット幅分のデータDQ[2n−1:n]_Aが読み出され、メモリコア106−3から残りのnビット幅分のデータDQ[3n−1:2n]_Aが読み出される。
また、機能ブロック203b−2は、アクセス制御信号CTL_Bを、インターフェイス回路204b−2を介してメモリ102bに対して送信する。メモリ102bでは、メモリコア106−4が、アクセス制御信号CTL_Bを、インターフェイス回路105−4を介して受信する。それにより、メモリコア106−4からnビット幅のデータDQ[n−1:0]_Bが読み出される。
このようにして、図2Bの例では、機能ブロック203b−1とメモリコア106−1〜106−3との間で3nビット幅のデータDQ_A及びアクセス制御信号CTL_Aの受け渡しが行われる。機能ブロック203b−2とメモリコア106−4との間でnビット幅のデータDQ_B及びアクセス制御信号CTL_Bの受け渡しが行われる。このとき、各アクセス制御信号は、メモリ102bの一つのインターフェイス回路にのみ供給される。
このように、3nビット幅のデータ信号の受け渡しを行う構成であっても、本実施の形態にかかるメモリ102b及びそれを備えた半導体集積回路は、実施の形態1の場合と同様の効果を奏することができる。
実施の形態3
本実施の形態では、図1及び図2Aに示すメモリ102の第2の変形例について、図2Cを用いて説明する。図2Cに示す半導体集積回路は、FPGA201cと、メモリ102の変形例としてメモリ102cと、を備える。ここで、FPGA201cとメモリ102cとの間では、4nビット幅のデータ信号の受け渡しが行われる。
メモリ102cは、メモリ102と比較して、選択回路の構成が異なる。具体的には、メモリ102cは、3つの選択回路107−1〜107−3を備える。これら選択回路107−1〜107−3のそれぞれの回路構成及び動作については、上記しているので、その説明を省略する。
図2Cの例では、FPGA201cからLレベルの切替信号MODE1が供給されている。そのため、選択回路107−1は、インターフェイス回路105−1とメモリコア106−2との間にアクセス制御信号の経路を設定し、選択回路107−2は、インターフェイス回路105−1とメモリコア106−3との間にアクセス制御信号の経路を設定し、選択回路107−3は、インターフェイス回路105−1とメモリコア106−4との間にアクセス制御信号の経路を設定する。つまり、インターフェイス回路105−1とメモリコア106−1〜106−4との間にアクセス制御信号の経路が設定される。そのため、メモリコア106−1〜106−4には、何れもインターフェイス回路105−1を介して共通のアクセス制御信号が入力される。
なお、データ信号の経路は、図1及び図2Aの場合と同様に、インターフェイス回路105−1〜105−4と、メモリコア106−1〜106−4と、の間に1対1の関係で設定されている。
FPGA201cは、プログラミングされることにより、1つの独立した機能ブロック203c−1と、インターフェイス回路204c−1と、を有する。なお、本実施の形態では、機能ブロック203c−1が、4nビットのデータ幅のデータを送受信する場合を例に説明する。
インターフェイス回路204c−1は、機能ブロック203c−1とメモリ102cとの間で行われるデータ信号及びアクセス制御信号の受け渡しをインターフェイスする。インターフェイス回路204c−1は、4nビット幅のデータ信号をインターフェイスすることが可能である。
機能ブロック203c−1は、作業用データの一時退避等を目的として、メモリ102cにアクセスする。図2Cの例では、機能ブロック203c−1は、メモリ102cに設けられたメモリコア106−1〜106−4との間でデータ信号及びアクセス制御信号の受け渡しを行う。
例えば、メモリにデータの書き込みを行う場合、機能ブロック203c−1は、4nビット幅のデータDQ[4n−1:0]_A及び対応するアクセス制御信号CTL_Aを、インターフェイス回路204c−1を介してメモリ102cに対して送信する。メモリ102cでは、メモリコア106−1が、nビット幅分のデータDQ[n−1:0]_Aをインターフェイス回路105−1を介して受信し、メモリコア106−2が、nビット幅分のデータDQ[2n−1:n]_Aをインターフェイス回路105−2を介して受信し、nビット幅分のデータDQ[3n−1:2n]_Aをインターフェイス回路105−3を介して受信し、残りのnビット幅分のデータDQ[4n−1:3n]_Aをインターフェイス回路105−4を介して受信する。このとき、機能ブロック203c−1から送信されたアクセス制御信号CTL_Aは、インターフェイス回路105−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路105−1を介して、メモリコア106−1〜106−4の何れにも入力される。それにより、メモリコア106−1には、nビット幅分のデータDQ[n−1:0]_Aが書き込まれ、メモリコア106−2には、nビット幅分のデータDQ[2n−1:n]_Aが書き込まれ、メモリコア106−3には、nビット幅分のデータDQ[3n−1:2n]_Aが書き込まれ、メモリコア106−4には、残りのnビット幅分のデータDQ[4n−1:3n]_Aが書き込まれる。
一方、メモリからデータの読み出しを行う場合、機能ブロック203c−1は、アクセス制御信号CTL_Aを、インターフェイス回路204c−1を介してメモリ102cに対して送信する。機能ブロック203c−1から送信されたアクセス制御信号CTL_Aは、インターフェイス回路105−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路105−1を介して、メモリコア106−1〜106−4の何れにも入力される。それにより、メモリコア106−1からnビット幅分のデータDQ[n−1:0]_Aが読み出され、メモリコア106−2からnビット幅分のデータDQ[2n−1:n]_Aが読み出され、メモリコア106−3からnビット幅分のデータDQ[3n−1:2n]_Aが読み出され、メモリコア106−4から残りのnビット幅分のデータDQ[4n−1:3n]_Aが読み出される。
このようにして、図2Cの例では、機能ブロック203c−1とメモリコア106−1〜106−4との間で4nビット幅のデータDQ_A及びアクセス制御信号CTL_Aの受け渡しが行われる。このとき、アクセス制御信号CTL_Aは、メモリ102cの一つのインターフェイス回路にのみ供給される。
このように、4nビット幅のデータ信号の受け渡しを行う構成であっても、本実施の形態にかかるメモリ102c及びそれを備えた半導体集積回路は、実施の形態1の場合と同様の効果を奏することができる。
実施の形態4
図4は、本発明の実施の形態4にかかるメモリ(半導体装置)を備えた半導体集積回路を示すブロック図である。実施の形態1〜3にかかるメモリでは、機能ブロックによって大きなデータ幅のデータが送受信される場合、複数のメモリコアにて同時にデータの読み書きが行われるため、消費電力が増大してしまう可能性がある。一方、本実施の形態にかかるメモリでは、機能ブロックによって大きなデータ幅のデータが送受信される場合でも、複数のメモリコアにて同時にデータの読み書きが行われないため、消費電力の増大が抑制される。以下、具体的に説明する。
図4に示す半導体集積回路は、FPGA401と、メモリ402と、を備える。なお、FPGA401は、図1に示すFPGA101と同様の回路構成である。機能ブロック403−1〜403−4は、それぞれ、図1における機能ブロック103−1〜103−4に対応する。インターフェイス回路404−1〜404−4は、それぞれ、図1におけるインターフェイス回路104−1〜104−4に対応する。したがって、機能ブロック403−1〜403−4は、それぞれ、nビットのデータ幅のデータを送受信する。
メモリ402において、インターフェイス回路405−1〜405−4は、ぞれぞれ、図1におけるインターフェイス回路105−1〜105−4に対応する。メモリコア406−1〜406−4は、それぞれ、図1におけるメモリコア106−1〜106−4に対応する。なお、本実施の形態では、メモリコア406−1〜406−4が、それぞれ、最大で2nビットのデータ幅のデータを同時に読み出し又は書き込みできる場合を例に説明する。
また、メモリ402は、図1に示すメモリ102と比較して、選択回路107−1,107−3に代えて選択回路407−1,407−2を備える。以下では、主として選択回路407−1,407−2について説明する。
選択回路407−1は、外部(FPGA401)から供給される切替信号MODE2に基づいて、インターフェイス回路405−1,405−2と、メモリコア406−1,406−2と、の間にデータ信号及びアクセス制御信号の経路を設定する回路である。選択回路407−2は、外部ら供給される切替信号MODE2に基づいて、インターフェイス回路405−3,405−4と、メモリコア406−3,406−4と、の間にデータ信号及びアクセス制御信号の経路を設定する回路である。
図4の例では、FPGA401からHレベルの切替信号MODE2が供給されている。この場合、選択回路407−1は、インターフェイス回路405−1と、メモリコア406−1と、の間にデータ信号及びアクセス制御信号の経路を設定するとともに、インターフェイス回路405−2と、メモリコア406−2と、の間にデータ信号及びアクセス制御信号の経路を設定する。また、選択回路407−2は、インターフェイス回路405−3と、メモリコア406−3と、の間にデータ信号及びアクセス制御信号の経路を設定するとともに、インターフェイス回路405−4と、メモリコア406−4と、の間にデータ信号及びアクセス制御信号の経路を設定する。
機能ブロック403−1〜403−4は、それぞれ、メモリ402に設けられたメモリコア406−1〜406−4との間でデータ信号及びアクセス制御信号の受け渡しを行う。具体的には、機能ブロック403−1とメモリコア406−1との間でデータDQ_A及びアクセス制御信号CTL_Aの受け渡しが行われる。機能ブロック403−2とメモリコア406−2との間でデータDQ_B及びアクセス制御信号CTL_Bの受け渡しが行われる。機能ブロック403−3とメモリコア406−3との間でデータDQ_C及びアクセス制御信号CTL_Cの受け渡しが行われる。また、機能ブロック403−4とメモリコア406−4との間でデータ信号DQ_D及びアクセス制御信号CTL_Dの受け渡しが行われる。
なお、上記したように、メモリコア406−1は、2nビット幅のデータを同時に読み出し又は書き込みできる。それに対し、メモリコア406−1にアクセスする機能ブロック403−1は、nビット幅のデータを送受信する。そのため、メモリコア406−1において、上位nビットのデータが記憶される記憶領域と、下位nビットのデータが記憶される記憶領域と、のうち何れの記憶領域が用いられるかは、例えば、機能ブロック403−1から送信されるアドレス信号の最上位ビットの値に基づいて決定される。
同様に、メモリコア406−2は、2nビット幅のデータを同時に読み出し又は書き込みできる。それに対し、メモリコア406−2にアクセスする機能ブロック403−2は、nビット幅のデータを送受信する。そのため、メモリコア406−2において、上位nビットのデータが記憶される記憶領域と、下位nビットのデータが記憶される記憶領域と、のうち何れの記憶領域が用いられるかは、例えば、機能ブロック403−2から送信されるアドレス信号の最上位ビットの値に基づいて決定される。
同様に、メモリコア406−3は、2nビット幅のデータを同時に読み出し又は書き込みできる。それに対し、メモリコア406−3にアクセスする機能ブロック403−3は、nビット幅のデータを送受信する。そのため、メモリコア406−3において、上位nビットのデータが記憶される記憶領域と、下位nビットのデータが記憶される記憶領域と、のうち何れの記憶領域が用いられるかは、例えば、機能ブロック403−3から送信されるアドレス信号の最上位ビットの値に基づいて決定される。
同様に、メモリコア406−4は、2nビット幅のデータを同時に読み出し又は書き込みできる。それに対し、メモリコア406−4にアクセスする機能ブロック403−4は、nビット幅のデータを送受信する。そのため、メモリコア406−4において、上位nビットのデータが記憶される記憶領域と、下位nビットのデータが記憶される記憶領域と、のうち何れの記憶領域が用いられるかは、例えば、機能ブロック403−4から送信されるアドレス信号の最上位ビットの値に基づいて決定される。
このように、本実施の形態にかかるメモリ402は、同時アクセスできない記憶領域に対し複数の機能ブロックから同時にアクセスされないため、調停回路による調停が不要となり、データ処理性能の低下を抑制することができる。
なお、図4の例では、FPGA401がnビット幅のデータを送受信する4つの機能ブロック403−1〜403−4を備えた場合を例に説明したが、これに限られない。機能ブロックの数は任意に変更可能である。ここで、FPGA401がnビット幅のデータを送受信する3つの機能ブロック403−1〜403−3を備えている場合、メモリ402のインターフェイス回路405−4には、FPGA401からデータ信号等は供給されない。この場合、インターフェイス回路405−4には、固定信号(所定の論理レベルの電圧)が供給される。それにより、入力端子オープンによるフローティングを防ぐことができる。なお、インターフェイス回路405−1〜405−4にそれぞれ固定信号が供給されるか否かは、切替信号MODE2に基づいて決定される。
図5Aに示す半導体集積回路は、図4に示すFPGA401を再プログラミングしてFPGA501としたものである。具体的には、FPGA501は、再プログラミングされることにより、2つの独立した機能ブロック503−1,503−2と、インターフェイス回路504−1,504−2と、を有する。
なお、FPGA501は、図2Aに示すFPGA201と同様の回路構成である。機能ブロック503−1,503−2は、それぞれ、図2Aにおける機能ブロック203−1,203−2に対応する。インターフェイス回路504−1,504−2は、それぞれ、図2Aにおけるインターフェイス回路204−1,204−2に対応する。したがって、機能ブロック503−1,503−2は、それぞれ、2nビットのデータ幅のデータを送受信する。
図5Aの例では、FPGA501からメモリ402に対してLレベルの切替信号MODE2が供給されている。この場合、メモリ402において、選択回路407−1は、インターフェイス回路405−1,405−2と、メモリコア406−1と、の間に第1のデータ信号経路を設定するとともに、インターフェイス回路405−1とメモリコア406−1との間に、第1のアクセス制御信号経路を設定する。さらに、選択回路407−1は、インターフェイス回路405−1,405−2と、メモリコア406−2と、の間に第2のデータ信号経路を設定するとともに、インターフェイス回路405−1とメモリコア406−1との間に、第2のアクセス制御信号経路を設定する。
より具体的には、インターフェイス回路405−1と、メモリコア406−1において下位nビットのデータが記憶される記憶領域と、の間にnビット幅分の第1のデータ信号経路が設定される。インターフェイス回路405−2と、メモリコア406−1において上位nビットのデータが記憶される記憶領域と、の間に残りのnビット幅分の第1のデータ信号経路が設定される。そして、インターフェイス回路405−1とメモリコア406−1との間に、第1のアクセス制御信号経路が設定される。さらに、インターフェイス回路405−1と、メモリコア406−2において上位nビットのデータが記憶される記憶領域と、の間にnビット幅分の第2のデータ信号経路が設定される。インターフェイス回路405−2と、メモリコア406−2において下位nビットのデータが記憶される記憶領域と、の間に残りのnビット幅分の第2のデータ信号経路が設定される。そして、インターフェイス回路405−1とメモリコア406−2との間に、第2のアクセス制御信号経路が設定される。
なお、メモリアクセスに何れの経路が用いられるかは、例えば、インターフェイス回路405−1に供給されるアドレス信号の最上位ビットの値に基づいて決定される。以下では、メモリアクセスに第1のデータ信号経路及び第1のアクセス制御信号経路が用いられる場合を例に説明する。これは、後述するメモリ402の具体的回路構成の説明においても同様である。したがって、図5Aには、第1のデータ信号経路及び第1のアクセス制御信号経路を実線で示し、他の信号経路を破線で示している。
この場合、機能ブロック503−1は、メモリコア406−1との間でデータ信号及びアクセス制御信号の受け渡しを行う。
同様にして、メモリ402において、選択回路407−2は、インターフェイス回路405−3,405−4と、メモリコア406−3と、の間に第1のデータ信号経路を設定するとともに、インターフェイス回路405−3とメモリコア406−3との間に、第1のアクセス制御信号経路を設定する。さらに、選択回路407−2は、インターフェイス回路405−3,405−4と、メモリコア406−4と、の間に第2のデータ信号経路を設定するとともに、インターフェイス回路405−3とメモリコア406−4との間に、第2のアクセス制御信号経路を設定する。
より具体的には、インターフェイス回路405−3と、メモリコア406−3において下位nビットのデータが記憶される記憶領域と、の間にnビット幅分の第1のデータ信号経路が設定される。インターフェイス回路405−4と、メモリコア406−3において上位nビットのデータが記憶される記憶領域と、の間に残りのnビット幅分の第1のデータ信号経路が設定される。そして、インターフェイス回路405−3とメモリコア406−3との間に、第1のアクセス制御信号経路が設定される。さらに、インターフェイス回路405−3と、メモリコア406−4において上位nビットのデータが記憶される記憶領域と、の間にnビット幅分の第2のデータ信号経路が設定される。インターフェイス回路405−4と、メモリコア406−4において下位nビットのデータが記憶される記憶領域と、の間に残りのnビット幅分の第2のデータ信号経路が設定される。そして、インターフェイス回路405−3とメモリコア406−4との間に、第2のアクセス制御信号経路が設定される。
なお、メモリアクセスに何れの経路が用いられるかは、例えば、インターフェイス回路405−3に供給されるアドレス信号の最上位ビットの値に基づいて決定される。以下では、メモリアクセスに第1のデータ信号経路及び第1のアクセス制御信号経路が用いられる場合を例に説明する。したがって、図5Aには、第1のデータ信号経路及び第1のアクセス制御信号経路を実線で示し、他の信号経路を破線で示している。
この場合、機能ブロック503−2は、メモリコア406−3との間でデータ信号及びアクセス制御信号の受け渡しを行う。
例えば、メモリにデータの書き込みを行う場合、機能ブロック503−1は、2nビット幅のデータDQ[2n−1:0]_A及び対応するアクセス制御信号CTL_Aを、インターフェイス回路504−1を介してメモリ402に対して送信する。メモリ402では、インターフェイス回路405−1にnビット幅分のデータDQ[n−1:0]_Aが供給され、インターフェイス回路405−2に残りのnビット幅分のデータDQ[2n−1:n]_Aが供給される。そして、インターフェイス回路405−1,405−2にそれぞれ供給されたデータDQ[n−1:0]_A及びデータDQ[2n−1:n]_Aは、2nビット幅のデータDQ[2n−1:0]_Aとして、メモリコア406−1に入力される。このとき、機能ブロック503−1から送信されたアクセス制御信号CTL_Aは、インターフェイス回路405−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路405−1を介して、メモリコア406−1に入力される。それにより、メモリコア406−1には、2nビット幅のデータDQ[2n−1:0]_Aが書き込まれる。このとき、メモリコア406−2は動作していない。
同様にして、機能ブロック503−2は、2nビット幅のデータDQ[2n−1:0]_B及び対応するアクセス制御信号CTL_Bを、インターフェイス回路504−2を介してメモリ402に対して送信する。メモリ402では、インターフェイス回路405−3にnビット幅分のデータDQ[n−1:0]_Bが供給され、インターフェイス回路405−4に残りのnビット幅分のデータDQ[2n−1:n]_Bが供給される。そして、インターフェイス回路405−3,405−4にそれぞれ供給されたデータDQ[n−1:0]_B及びデータDQ[2n−1:n]_Bは、2nビット幅のデータDQ[2n−1:0]_Bとして、メモリコア406−3に入力される。このとき、機能ブロック503−2から送信されたアクセス制御信号CTL_Bは、インターフェイス回路405−3にのみ供給される。そして、アクセス制御信号CTL_Bは、インターフェイス回路405−3を介して、メモリコア406−3に入力される。それにより、メモリコア406−3には、2nビット幅のデータDQ[2n−1:0]_Bが書き込まれる。このとき、メモリコア406−4は動作していない。
一方、メモリからデータの読み出しを行う場合、機能ブロック503−1は、アクセス制御信号CTL_Aを、インターフェイス回路504−1を介してメモリ402に対して送信する。このアクセス制御信号CTL_Aは、インターフェイス回路405−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路405−1を介して、メモリコア406−1に入力される。それにより、メモリコア406−1から2nビット幅のデータDQ[2n−1:0]_Aが読み出される。なお、読み出されたデータDQ[2n−1:0]_Aは、nビット幅のデータDQ[n−1:0]_A及びデータDQ[2n−1:n]_Aに分けられ、それぞれインターフェイス回路405−1,405−2を介して、機能ブロック503−1側に送信される。このとき、メモリコア406−2は動作していない。
同様にして、機能ブロック503−2は、アクセス制御信号CTL_Bを、インターフェイス回路504−2を介してメモリ402に対して送信する。このアクセス制御信号CTL_Bは、インターフェイス回路405−3にのみ供給される。そして、アクセス制御信号CTL_Bは、インターフェイス回路405−3を介して、メモリコア406−3に入力される。それにより、メモリコア406−3から2nビット幅のデータDQ[2n−1:0]_Bが読み出される。なお、読み出されたデータDQ[2n−1:0]_Bは、nビット幅のデータDQ[n−1:0]_B及びデータDQ[2n−1:n]_Bに分けられ、それぞれインターフェイス回路405−3,405−4を介して、機能ブロック503−2側に送信される。このとき、メモリコア406−4は動作していない。
このようにして、図5Aの例では、機能ブロック503−1とメモリコア406−1との間で2nビット幅のデータDQ_A及びアクセス制御信号CTL_Aの受け渡しが行われる。機能ブロック503−2とメモリコア406−3との間で2nビット幅のデータDQ_B及びアクセス制御信号CTL_Bの受け渡しが行われる。このとき、各アクセス制御信号は、メモリ402の一つのインターフェイス回路にのみ供給される。
このように、本実施の形態にかかるメモリ402は、同時アクセスできない記憶領域に対し複数の機能ブロックから同時にアクセスされないため、調停回路による調停が不要となり、データ処理性能の低下を抑制することができる。
そのほか、本実施の形態にかかるメモリ402は、実施の形態1〜3と同様の効果を奏することができる。
さらに、本実施の形態にかかるメモリ402では、機能ブロックによって大きなデータ幅のデータが送受信される場合でも、複数のメモリコアにて同時にデータの読み書きが行われないため、消費電力の増大が抑制される。
なお、図5Aの例では、FPGA501が2nビット幅のデータを送受信する2つの機能ブロック503−1,503−2を備えた場合を例に説明したが、これに限られない。機能ブロックの数は任意に変更可能である。ここで、FPGA501が2nビット幅のデータを送受信する1つの機能ブロック503−1を備えている場合、メモリ402のインターフェイス回路405−3,405−4には、FPGA401からデータ信号等は供給されない。この場合、インターフェイス回路405−3,405−4には、固定信号(所定の論理レベルの電圧)が供給される。それにより、入力端子オープンによるフローティングを防ぐことができる。なお、インターフェイス回路405−1〜405−4にそれぞれ固定信号が供給されるか否かは、切替信号MODE2に基づいて決定される。
(メモリ402の具体的な構成例)
次に、メモリ402の具体的な構成例について、図6A、図6B、図7A及び図7Bを参照しつつ説明する。図6A及び図6Bは、図4及び図5Aに示すメモリ402に設けられたインターフェイス回路405−1,405−2及び選択回路407−1の一部を示す回路図である。図6Aは主としてアドレス信号及びコマンド信号の信号経路上の回路構成を示し、図6Bは主としてデータ信号の信号経路上の回路構成を示す。
また、図7A及び図7Bは、図6A及び図6Bにおけるインターフェイス回路405−1,405−2とメモリコア406−1,406−2との間の信号経路の関係を表した図である。より具体的には、図7Aは、第1のメモリコア信号(後述)として選択されるインターフェイス信号を、切替信号MODE2の信号レベル毎に表した図である。図7Bは、第2のメモリコア信号(後述)として選択されるインターフェイス信号を、切替信号MODE2の信号レベル毎に表した図である。なお、図7A及び図7Bにおいて、インターフェイス回路405−1,405−2と外部(FPGA)との間の信号を「インターフェイス信号」と称す。
インターフェイス回路405−3,405−4とメモリコア406−3,406−4との間の信号経路の関係については、インターフェイス回路405−1,405−2とメモリコア406−1,406−2との間の信号経路の関係と同様であるため、その説明を省略する。
図6A及び図6Bに示すように、インターフェイス回路405−1,405−2及び選択回路407−1は、複数の論理ゲートにより構成されている。なお、図6A及び図6Bの例では、特性をできるだけ同じにするため、何れのインターフェイス回路も同一の回路構成としている。また、図6A及び図6Bでは、第1及び第2メモリコア信号(後述)に対してそれぞれ新たな符号を付すことにより、それらを明示的に区別している。
図6Aに示すように、インターフェイス回路405−1には、コマンド信号として、チップセレクト信号CSN_A、ライトイネーブル信号WEN_A及びリフレッシュ信号REFN_Aが供給される。さらに、インターフェイス回路405−1には、m(mは自然数)ビット幅のアドレス信号A0_A〜A(m−1)_Aが供給される。なお、最上位ビットのアドレス信号A(m−1)_Aは、上記したように、データ信号の読み書き対象となる記憶領域を選択するために用いられる。これらの信号群をまとめてアクセス制御信号CTL_Aと称す。
また、インターフェイス回路405−2には、コマンド信号として、チップセレクト信号CSN_B、ライトイネーブル信号WEN_B及びリフレッシュ信号REFN_Bが供給され得る。さらに、インターフェイス回路405−2には、mビット幅のアドレス信号A0_B〜A(m−1)_Bが供給され得る。なお、最上位ビットのアドレス信号A(m−1)_Bは、上記したように、データ信号の読み書き対象となる記憶領域を選択するために用いられる。これらの信号群をまとめてアクセス制御信号CTL_Bと称す。
例えば、切替信号MODE2がHレベルの場合、選択回路407−1は、インターフェイス回路405−1に供給されたアクセス制御信号CTL_Aを、チップセレクト信号CSN_c1、ライトイネーブル信号WEN_c1、リフレッシュ信号REFN_c1及びアドレス信号A0_c1〜A(m−2)_c1(図7Aにおいてこれらの信号を第1のメモリコア信号と称す)としてメモリコア406−1に対して出力する。さらに、選択回路407−1は、インターフェイス回路405−2に供給されたアクセス制御信号CTL_Bを、チップセレクト信号CSN_c2、ライトイネーブル信号WEN_c2、リフレッシュ信号REFN_c2及びアドレス信号A0_c2〜A(m−2)_c2(図7Bにおいてこれらの信号を第2のメモリコア信号と称す)としてメモリコア406−2に対して出力する。
一方、切替信号MODE2がLレベルの場合、選択回路407−1は、インターフェイス回路105−1に供給されたアクセス制御信号CTL_Aを、チップセレクト信号CSN_c1、ライトイネーブル信号WEN_c1、リフレッシュ信号REFN_c1及びアドレス信号A0_c1〜A(m−2)_c1としてメモリコア406−1に対して出力する。なお、このとき、選択回路407−1は、インターフェイス回路105−1に供給されたアクセス制御信号CTL_Aを、チップセレクト信号CSN_c2、ライトイネーブル信号WEN_c2、リフレッシュ信号REFN_c2及びアドレス信号A0_c2〜A(m−2)_c2としてメモリコア406−2に対しても出力している。ただし、本例では、最上位ビットのアドレス信号A(m−1)_Aの値に基づき、データの読み書き対象としてメモリコア406−1が選択されている場合について説明しているため、ここでは特に言及しない。
次に、図6Bに示すように、インターフェイス回路405−1は、外部(FPGA)との間で、nビット幅のデータDQ0_A〜DQ(n−1)_Aを送受信する。なお、データDQ0_A〜DQ(n−1)_Aは、図4及び図5AにおけるデータDQ[n−1:0]_Aに相当する。インターフェイス回路405−2は、外部(FPGA)との間で、nビット幅のデータDQ0_B〜DQ(n−1)_Bを送受信する。なお、データDQ0_B〜DQ(n−1)_Bは、図4におけるデータDQ[n−1:0]_B、図5AにおけるデータDQ[2n−1:n]_Aに相当する。信号IEN,OENは、それぞれデータの読み出し及び書き込みを許可するイネーブル信号である。
例えば、切替信号MODE2がHレベルの場合、選択回路407−1は、インターフェイス回路405−1と、メモリコア406−1と、の間にデータ信号の経路を設定するとともに、インターフェイス回路405−2と、メモリコア406−2と、の間にデータ信号の経路を設定する。
それにより、データ書き込み時において、外部からインターフェイス回路405−1に供給されたnビット幅のデータDQ0_A〜DQ(n−1)_Aは、書き込みデータD0_c1〜D(n−1)_c1(第1のメモリコア信号)としてメモリコア406−1に入力される(書き込まれる)。外部からインターフェイス回路405−2に供給されたnビット幅のデータDQ0_B〜DQ(n−1)_Bは、書き込みデータD0_c2〜D(n−1)_c2(第2のメモリコア信号)としてメモリコア406−2に入力される(書き込まれる)。
また、データ読み出し時において、メモリコア406−1から読み出されたnビット幅のデータQ0_c1〜Q(n−1)_c1(第1のメモリコア信号)は、インターフェイス回路405−1を介して、データDQ0_A〜DQ(n−1)_Aとして外部に出力される。メモリコア406−2から読み出されたnビット幅のデータQ0_c2〜Q(n−1)_c2(第2のメモリコア信号)は、インターフェイス回路405−2を介してDQ0_B〜DQ(n−1)_Bとして外部に出力される。
一方、切替信号MODE2がLレベルの場合、選択回路407−1は、インターフェイス回路405−1,405−2と、メモリコア406−1と、の間に第1のデータ信号経路を設定する。なお、このとき、選択回路407−1は、インターフェイス回路405−1,405−2と、メモリコア406−2と、の間にも第2のデータ信号経路を設定する。ただし、本例では、最上位ビットのアドレス信号A(m−1)_Aの値に基づき、データの読み書き対象としてメモリコア406−1が選択されている場合について説明している。そのため、メモリアクセスには第1のデータ信号経路が用いられる。
それにより、データ書き込み時において、外部からインターフェイス回路405−1に供給されたnビット幅のデータDQ0_A〜DQ(n−1)_Aは、書き込みデータD0_c1〜D(n−1)_c1としてメモリコア406−1に入力される(書き込まれる)。外部からインターフェイス回路405−2に供給された残りのnビット幅のデータDQ0_B〜DQ(n−1)_B(図5AにおけるデータDQ[2n−1:n]_Aに相当)は、書き込みデータDn_c1〜D(2n−1)_c1としてメモリコア406−1に入力される(書き込まれる)。
また、データ読み出し時において、メモリコア406−1から読み出された2nビット幅のデータQ0_c1〜Q(2n−1)_c1は、nビット幅のデータQ0_c1〜Q(n−1)_c1及びnビット幅のデータQn_c1〜Q(2n−1)_c1に分けられ、それぞれインターフェイス回路405−1,405−2を介して、データDQ0_A〜DQ(n−1)_A及びデータDQ0_B〜DQ(n−1)_B(図5AにおけるデータDQ[2n−1:n]_Aに相当)として外部に出力される。
なお、図6A及び図6Bに示すメモリ402の回路構成は一例に過ぎず、同様の処理を実行できる他の構成に変更可能であることは言うまでもない。
実施の形態5
本実施の形態では、図4及び図5Aに示すメモリ402の第1の変形例について、図5Bを用いて説明する。図5Bに示す半導体集積回路は、FPGA501bと、メモリ402の変形例としてメモリ402bと、を備える。ここで、FPGA501bとメモリ402bとの間では、3nビット幅のデータ信号の受け渡しが行われる。
なお、FPGA501bは、図2Bに示すFPGA201bと同様の回路構成である。機能ブロック503b−1,503b−2は、それぞれ、図2Bにおける機能ブロック203b−1,203b−2に対応する。インターフェイス回路504b−1,504b−2は、それぞれ、図2Bにおけるインターフェイス回路204b−1,204b−2に対応する。したがって、機能ブロック503b−1は、3nビットのデータ幅のデータを送受信し、機能ブロック503b−2は、nビットのデータ幅のデータを送受信する。
メモリ402bは、メモリ402と比較して、選択回路の構成が異なる。具体的には、メモリ402bは、選択回路407−1,407−2に代えて選択回路407−3を備える。なお、本実施の形態では、メモリコア406−1〜406−4が、それぞれ、最大で3nビットのデータ幅のデータを同時に読み出し又は書き込みできる場合を例に説明する。
選択回路407−3は、外部(FPGA501b)から供給される切替信号MODE2に基づいて、インターフェイス回路405−1〜405−3と、メモリコア406−1〜406−3と、の間にデータ信号及びアクセス制御信号の経路を設定する回路である。
図5Bの例では、FPGA501bからメモリ402bに対してLレベルの切替信号MODE2が供給されている。この場合、メモリ402bにおいて、選択回路407−3は、インターフェイス回路405−1〜405−3と、メモリコア406−1と、の間に第1のデータ信号経路を設定するとともに、インターフェイス回路405−1とメモリコア406−1との間に、第1のアクセス制御信号経路を設定する。さらに、選択回路407−3は、インターフェイス回路405−1〜405−3と、メモリコア406−2と、の間に第2のデータ信号経路を設定するとともに、インターフェイス回路405−1とメモリコア406−2との間に、第2のアクセス制御信号経路を設定する。さらに、選択回路407−3は、インターフェイス回路405−1〜405−3と、メモリコア406−3と、の間に第3のデータ信号経路を設定するとともに、インターフェイス回路405−1とメモリコア406−3との間に、第3のアクセス制御信号経路を設定する。
なお、メモリアクセスに何れの経路が用いられるかは、例えば、インターフェイス回路405−1に供給されるアドレス信号の上位2ビットの値に基づいて決定される。以下では、メモリアクセスに第1のデータ信号経路及び第1のアクセス制御信号経路が用いられる場合を例に説明する。したがって、図5Bには、第1のデータ信号経路及び第1のアクセス制御信号経路を実線で示し、他の信号経路を破線で示している。
この場合、機能ブロック503b−1は、メモリコア406−1との間でデータ信号及びアクセス制御信号の受け渡しを行う。
なお、仮にFPGA501bからHレベルの切替信号MODE2が供給されている場合には、選択回路407−3は、インターフェイス回路405−1とメモリコア406−1との間、インターフェイス回路405−2とメモリコア406−2との間、及び、インターフェイス回路405−3とメモリコア406−3との間に、それぞれ、データ信号及びアクセス制御信号の経路を設定する。
例えば、メモリにデータの書き込みを行う場合、機能ブロック503b−1は、3nビット幅のデータDQ[3n−1:0]_A及び対応するアクセス制御信号CTL_Aを、インターフェイス回路504b−1を介してメモリ402bに対して送信する。メモリ402bでは、インターフェイス回路405−1にnビット幅分のデータDQ[n−1:0]_Aが供給され、インターフェイス回路405−2にnビット幅分のデータDQ[2n−1:n]_Aが供給され、インターフェイス回路405−3に残りのnビット幅分のデータDQ[3n−1:2n]_Aが供給される。そして、インターフェイス回路405−1〜405−3にそれぞれ供給されたデータDQ[n−1:0]_A、データDQ[2n−1:n]_A及びデータDQ[3n−1:2n]_Aは、3nビット幅のデータDQ[3n−1:0]_Aとして、メモリコア406−1に入力される。このとき、機能ブロック503b−1から送信されたアクセス制御信号CTL_Aは、インターフェイス回路405−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路405−1を介して、メモリコア406−1に入力される。それにより、メモリコア406−1には、3nビット幅のデータDQ[3n−1:0]_Aが書き込まれる。このとき、メモリコア406−2,406−3は動作していない。
一方、メモリからデータの読み出しを行う場合、機能ブロック503b−1は、アクセス制御信号CTL_Aを、インターフェイス回路504b−1を介してメモリ402に対して送信する。このアクセス制御信号CTL_Aは、インターフェイス回路405−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路405−1を介して、メモリコア406−1に入力される。それにより、メモリコア406−1から3nビット幅のデータDQ[3n−1:0]_Aが読み出される。なお、読み出されたデータDQ[3n−1:0]_Aは、nビット幅のデータDQ[n−1:0]_A、データDQ[2n−1:n]_A及びデータDQ[3n−1:2n]_Aに分けられ、それぞれインターフェイス回路405−1〜405−3を介して、機能ブロック503b−1側に送信される。このとき、メモリコア406−2,406−3は動作していない。
このようにして、図5Bの例では、機能ブロック503−1とメモリコア406−1との間で3nビット幅のデータDQ_A及びアクセス制御信号CTL_Aの受け渡しが行われる。このとき、アクセス制御信号CTL_Aは、メモリ402bの一つのインターフェイス回路にのみ供給される。
機能ブロック503b−2とメモリコア406−4との関係については、図2Aにおける機能ブロック203b−2とメモリコア106−4との関係と同様であるため、その説明を省略する。
このように、3nビット幅のデータ信号の受け渡しを行う構成であっても、本実施の形態にかかるメモリ402b及びそれを備えた半導体集積回路は、実施の形態4の場合と同様の効果を奏することができる。
実施の形態6
本実施の形態では、図4及び図5Aに示すメモリ402の第2の変形例について、図5Cを用いて説明する。図5Cに示す半導体集積回路は、FPGA501cと、メモリ402の変形例としてメモリ402cと、を備える。ここで、FPGA501cとメモリ402cとの間では、4nビット幅のデータ信号の受け渡しが行われる。
なお、FPGA501cは、図2Cに示すFPGA201cと同様の回路構成である。機能ブロック503c−1は、図2Cにおける機能ブロック203c−1に対応する。インターフェイス回路504c−1は、図2Cにおけるインターフェイス回路204c−1に対応する。したがって、機能ブロック503c−1は、4nビットのデータ幅のデータを送受信する。
メモリ402cは、メモリ402と比較して、選択回路の構成が異なる。具体的には、メモリ402cは、選択回路407−1,407−2に代えて選択回路407−4を備える。なお、本実施の形態では、メモリコア406−1〜406−4が、それぞれ、最大で4nビットのデータ幅のデータを同時に読み出し又は書き込みできる場合を例に説明する。
選択回路407−4は、外部(FPGA501c)から供給される切替信号MODE2に基づいて、インターフェイス回路405−1〜405−4と、メモリコア406−1〜406−4と、の間にデータ信号及びアクセス制御信号の経路を設定する回路である。
図5Cの例では、FPGA501cからメモリ402cに対してLレベルの切替信号MODE2が供給されている。この場合、メモリ402cにおいて、選択回路407−4は、インターフェイス回路405−1〜405−4と、メモリコア406−1と、の間に第1のデータ信号経路を設定するとともに、インターフェイス回路405−1とメモリコア406−1との間に、第1のアクセス制御信号経路を設定する。さらに、選択回路407−4は、インターフェイス回路405−1〜405−4と、メモリコア406−2と、の間に第2のデータ信号経路を設定するとともに、インターフェイス回路405−1とメモリコア406−2との間に、第2のアクセス制御信号経路を設定する。さらに、選択回路407−4は、インターフェイス回路405−1〜405−4と、メモリコア406−3と、の間に第3のデータ信号経路を設定するとともに、インターフェイス回路405−1とメモリコア406−3との間に、第3のアクセス制御信号経路を設定する。さらに、選択回路407−4は、インターフェイス回路405−1〜405−4と、メモリコア406−4と、の間に第4のデータ信号経路を設定するとともに、インターフェイス回路405−1とメモリコア406−4との間に、第4のアクセス制御信号経路を設定する。
なお、メモリアクセスに何れの経路が用いられるかは、例えば、インターフェイス回路405−1に供給されるアドレス信号の上位2ビットの値に基づいて決定される。以下では、メモリアクセスに第1のデータ信号経路及び第1のアクセス制御信号経路が用いられる場合を例に説明する。したがって、図5Cには、第1のデータ信号経路及び第1のアクセス制御信号経路を実線で示し、他の信号経路を破線で示している。
この場合、機能ブロック503c−1は、メモリコア406−1との間でデータ信号及びアクセス制御信号の受け渡しを行う。
なお、仮にFPGA501cからHレベルの切替信号MODE2が供給されている場合には、選択回路407−4は、インターフェイス回路405−1とメモリコア406−1との間、インターフェイス回路405−2とメモリコア406−2との間、インターフェイス回路405−3とメモリコア406−3との間、及び、インターフェイス回路405−4とメモリコア406−4との間に、それぞれ、データ信号及びアクセス制御信号の経路を設定する。
例えば、メモリにデータの書き込みを行う場合、機能ブロック503c−1は、4nビット幅のデータDQ[4n−1:0]_A及び対応するアクセス制御信号CTL_Aを、インターフェイス回路504c−1を介してメモリ402cに対して送信する。メモリ402cでは、インターフェイス回路405−1にnビット幅分のデータDQ[n−1:0]_Aが供給され、インターフェイス回路405−2にnビット幅分のデータDQ[2n−1:n]_Aが供給され、インターフェイス回路405−3にnビット幅分のデータDQ[3n−1:2n]_Aが供給され、インターフェイス回路405−4に残りのnビット幅分のデータDQ[4n−1:3n]_Aが供給される。そして、インターフェイス回路405−1〜405−4にそれぞれ供給されたデータDQ[n−1:0]_A、データDQ[2n−1:n]_A、データDQ[3n−1:2n]_A及びデータDQ[4n−1:3n]_Aは、4nビット幅のデータDQ[4n−1:0]_Aとして、メモリコア406−1に入力される。このとき、機能ブロック503c−1から送信されたアクセス制御信号CTL_Aは、インターフェイス回路405−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路405−1を介して、メモリコア406−1に入力される。それにより、メモリコア406−1には、4nビット幅のデータDQ[4n−1:0]_Aが書き込まれる。このとき、メモリコア406−2〜406−4は動作していない。
一方、メモリからデータの読み出しを行う場合、機能ブロック503c−1は、アクセス制御信号CTL_Aを、インターフェイス回路504c−1を介してメモリ402に対して送信する。このアクセス制御信号CTL_Aは、インターフェイス回路405−1にのみ供給される。そして、アクセス制御信号CTL_Aは、インターフェイス回路405−1を介して、メモリコア406−1に入力される。それにより、メモリコア406−1から4nビット幅のデータDQ[4n−1:0]_Aが読み出される。なお、読み出されたデータDQ[4n−1:0]_Aは、nビット幅のデータDQ[n−1:0]_A、データDQ[2n−1:n]_A、DQ[3n−1:2n]_A及びデータDQ[4n−1:3n]_Aに分けられ、それぞれインターフェイス回路405−1〜405−4を介して、機能ブロック503c−1側に送信される。このとき、メモリコア406−2〜406−4は動作していない。
つまり、図5Cの例では、機能ブロック503−1とメモリコア406−1との間で4nビット幅のデータDQ_A及びアクセス制御信号CTL_Aの受け渡しが行われる。このとき、アクセス制御信号CTL_Aは、メモリ402cの一つのインターフェイス回路にのみ供給される。
このように、4nビット幅のデータ信号の受け渡しを行う構成であっても、本実施の形態にかかるメモリ402c及びそれを備えた半導体集積回路は、実施の形態4の場合と同様の効果を奏することができる。
実施の形態7
図8Aは、図1に示す半導体集積回路を構成するFPGA101及びメモリ102を一つのパッケージに封入した場合における当該パッケージの断面図である。また、図8Bは、図8Aに示す半導体集積回路を示すブロック図である。なお、図8A及び図8Bに示すFPGA811及びメモリ813は、それぞれ、図1における、FPGA101及びメモリ102に対応する。
図8Aに示すように、FPGA811のチップはインターポーザ基板812上に上向きに実装される。メモリ813のチップは、FPGA811のチップ上に下向きに実装される。さらに、FPGA811とメモリ813との間には、FPGA811に接するように再配線層814が形成されている。この再配線層814には、FPGA811とメモリ813とを接続する信号線、FPGA811又はメモリ813の各チップからパッケージ外に引き出される各種信号線、及び、電源線が配線されている。なお、再配線層814とメモリ813のチップとの間にはバンプ電極815が設けられ、再配線層814に配線された信号線とメモリ813とを電気的に接続している。
また、バンプ電極815と再配線層814に配線された対応する信号線との接着位置がずれないようにするため、メモリ813のチップと再配線層814との間には充填材816が充填される。
FPGA811又はメモリ813からパッケージ外に引き出される信号線及び電源線は、再配線層814及びボンディング線817を介して、インターポーザ基板812に形成された信号線に接続される。このインターポーザ基板812に形成された信号線は、当該インターポーザ基板812の下側に設けられたはんだボール818に電気的に接続される。
図8Bにおいて、FPGA811とメモリ813との間は、いずれも図示しない再配線層814及びバンプ電極815にて形成された各種信号線を介して電気的に接続される。さらに、FPGA811又はメモリ813からパッケージ外に引き出される信号線及び電源線は、いずれも図示しない再配線層814、ボンディング線817、インターポーザ基板812及びはんだボール818を介してパッケージ外部と電気的に接続される。
さらに、FPGA811及びメモリ813は、FPGA811とメモリ813との間を接続する各種信号線の接続状況を検査するために、それぞれIEEE1149.1相当のJTAG回路824,825を備える。なお、JTAG回路824,825は、仕様に従い縦続接続されている。
メモリ813は、切替信号MODE1を生成するレジスタ826をさらに備える。レジスタ826は、JTAG回路824,825からの制御信号に応じた信号レベルの切替信号MODE1を生成する。つまり、レジスタ826は、JTAG回路824,825によって制御されることにより、任意の信号レベルの切替信号MODE1を生成する。それにより、メモリ813では電源投入後の初期テストにおいて、インターフェイス回路とメモリコアとの間の信号経路が任意に変更される。なお、初期テスト以外の通常動作時においても、レジスタ826から所望の信号レベルの切替信号MODE1を出力させることが可能である。そのため、メモリ102の場合と比較して切替信号MODE1を外部から受信するための専用端子が不要となる。
図9A及び図9Bは、図8Aに示す半導体集積回路のパッケージをシステムボードに搭載した場合のイメージ図である。図9A及び図9Bに示すように、システムボード911,912には、それぞれ、FPGA811及びメモリ813が封入されたパッケージ913,914と、不揮発性メモリ915と、が搭載されている。なお、不揮発性メモリ915には、FPGA811の回路構成を決定するためのプログラムと、メモリ813内の選択回路に供給される切替信号MODE1を設定するための情報と、が格納されている。システム起動時において、不揮発性メモリ915に格納されたプログラム及び切替信号MODE1の設定情報は、JTAG回路824,825(図9A及び図9Bにおいて不図示)を介してそれぞれFPGA811及びメモリ813に伝達される。
なお、図9Aは、FPGA811が図1に示すFPGA101と同様の回路構成となるように、不揮発性メモリ915に格納されるプログラム及び切替信号MODE1の設定情報を調整した場合の例である。つまり、図9Aの例では、FPGA811は、メモリ813にアクセスを必要とする機能ブロックを比較的多く備えている。そのため、メモリ813に設けられた複数のインターフェイス回路はいずれもFPGA811との間で実際に使用される(活性化される)。
一方、図9Bは、FPGA811が図2Aに示すFPGA201と同様の回路構成となるように、不揮発性メモリ915に格納されるプログラム及び切替信号MODE1の設定情報を調整した場合の例である。つまり、図9Bの例では、FPGA811には、メモリ813にアクセスを必要とする機能ブロックの数が比較的少ない。そのため、メモリ813に設けられた複数のインターフェイス回路のうちいくつかはFPGA811との間では使用されない(非活性化される)。ここで、メモリ813側の非活性のインターフェイス回路と対になったFPGA811側のインターフェイス回路は、例えば、電気的に接続されたパッケージのはんだボール818(図9Bにおいて不図示)を介して、他の周辺デバイス921に接続され、他の目的に用いられる。
このように、FPGA及びメモリのチップが一つのパッケージに封入され各チップの交換が困難な状況であっても、FPGAは他の周辺デバイスとの間で信号伝達を行うことができる。そのため、FPGA本来の汎用性は維持される。
本実施の形態では、図1に示す半導体集積回路を構成するFPGA101及びメモリ102を一つのパッケージに封入した場合について説明したが、これに限られない。他の実施の形態にかかる半導体集積回路についても同様のことが言える。
なお、本発明は上記実施の形態1〜7に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。上記実施の形態1〜7では、メモリが4つのインターフェイス回路と4つのメモリコアを備えた場合を例に説明したが、これに限られず、任意の数のインターフェイス回路及び任意の数のメモリコアを備えた回路構成に適宜変更可能である。
また、上記実施の形態1〜7にかかるメモリは、nビット幅のデータ、又は、2n〜4nビット幅のデータの2種類を選択的に読み書き可能な構成であるが、これに限られず、3種類以上のデータ幅のデータを選択的に読み書き可能な構成に適宜変更可能である。これは、例えば、実施の形態1〜3にかかるメモリの機能を組み合わせたり、実施の形態4〜6にかかるメモリの機能を組み合わせたりすることにより、実現可能である。
図10は、実施の形態1〜3にかかるメモリの応用例として、任意のデータ幅のデータを選択的に読み書き可能なメモリを示す図である。図10に示すメモリ(半導体装置)は、インターフェイス回路105−1〜105−p(pは自然数)と、インターフェイス回路105−1〜105−pとの間にそれぞれデータ信号の経路が設定されているメモリコア106−1〜106−pと、選択部107と、を備える。なお、インターフェイス回路105−1〜105−pは、それぞれ外部端子BUS−1〜BUS−pと接続されている。
選択部107は、選択回路107−1〜107−(p−1)を有する。選択回路107−1〜107−(p−1)は、それぞれ、メモリコア106−2〜106−pに対し、外部からインターフェイス回路105−2〜105−pに供給されるアクセス制御信号、又は、外部からインターフェイス回路105−1に供給されるアクセス制御信号を、選択的に出力する。ここで、選択回路107−1〜107−(p−1)は、それぞれ、外部から供給される切替信号MODEXに基づいて、何れかのアクセス制御信号を選択して出力する。なお、切替信号MODEXのビット幅は、選択回路の数に応じたビット幅である。
図10に示すような回路構成により、本発明にかかるメモリは、2〜p倍の任意のデータ幅のデータを選択的に読み書き可能となる。
また、上記実施の形態1〜7では、速度規格がSDR(Single Date Rate)である場合を例に説明したが、これに限られない。速度規格がDDR(Double Data Rate)、QDR(Quad Data rate)であっても良い。また、本発明は、入力端子と出力端子が独立しているSIO(Separate I/O)が採用されたメモリに対しても適用可能である。また、本発明はデータマスク(Data Mask)機能を有したメモリ対しても適用可能である。
本発明にかかるメモリは、例えば、高速なデータ処理性能が要求されるルータに搭載される。ルータにおけるデータ処理性能が向上することにより、消費電力の低減も期待できる。なお、ルータとは、図11に示すように異なるネットワーク間を相互接続するネットワーク装置のことである。
なお、特許文献1に開示された構成では、処理するデータのデータ幅が小さくなると、それに伴い、一部のメモリコアにアクセスすることができなくなる。一方、本発明にかかるメモリでは、例えば、アドレス信号の最上位ビットの値に基づいてアクセス対象となるメモリコアを選択できるため、従来技術と異なり、一部のメモリコアにアクセスできなくなることはない。
また、特許文献2に開示されたマルチポートメモリは、複数の入出力ポートから同一のメモリバンクに対して同時にアクセス要求が発生した場合、優先度の高い入出力ポートから順にアクセスを許可することが想定される。したがって、優先度の低い入出力ポートから当該メモリバンクに対するアクセスは遅延してしまう。その結果、このマルチポートメモリでは、データ処理性能が低下してしまうという問題があった。一方、本発明にかかるメモリは、同時アクセスできない記憶領域に対し同時にアクセス要求が発生しない構成であるため、従来技術と異なり、データ処理性能の低下を抑制することができる。