トップ :: H 電気 :: H01 基本的電気素子




【発明の名称】 半導体装置
【発明者】 【氏名】渡部 隆夫

【氏名】鮎川 一重

【氏名】藤田 良

【氏名】柳沢 一正

【氏名】田中 均

【目的】
【構成】
【特許請求の範囲】
【請求項1】複数のI/O線を持つメモリコアと、上記メモリコアに結合される論理回路とを同一の半導体チップ上に形成した半導体装置の製品群であって、前記製品群のうち複数の半導体装置が、レイアウトパターンが共通のメモリコアと論理ゲートを含むことを特徴とする半導体装置。
【請求項2】請求項1に記載の半導体装置において、前記製品群のうち複数の半導体装置が、メモリコアと論理回路の間のデータの転送パターンを実時間で変えることのできる転送回路を含み、前記転送回路の少なくとも一部のレイアウトパターンが共通であることを特徴とする半導体装置。
【請求項3】複数のI/O線を持つメモリコアと論理回路を同一の半導体チップ上に形成した半導体装置において、前記メモリコアのI/O線と論理回路のI/O線の間のデータ伝達経路を実時間で切り替えることのできる回路が含まれていることを特徴とする半導体装置。
【請求項4】複数のI/O線を持つメモリコアと論理回路を同一の半導体チップ上に形成した半導体装置において、前記メモリコアのI/O線と論理回路のI/O線の間のデータ伝達経路を実時間で切り替えることのできる回路が含まれ、前記メモリと論理回路は互いのI/O線が同一方向になるように配置され、それらメモリと論理回路の間のデータの授受は、前記I/O線の間に設けられた前記転送回路を通じて行われ、前記転送回路は、多段のスイッチ群より構成され、転送回路制御信号によりそれらのスイッチ群の異なる一部を活性化することにより前記メモリのI/O線と論理回路のI/O線の間の複数のデータ伝達経路を切り替えることができることを特徴とする半導体装置。
【請求項5】請求項4に記載の半導体装置において、前記メモリのI/O線と論理回路のI/O線の間の複数のデータ伝達経路のうち少なくとも一つは、論理回路の同一のI/O線からメモリの異なるI/O線にデータを伝達できるものであることを特徴とする半導体装置。
【請求項6】複数のI/O線を持つメモリコアと論理回路を同一の半導体チップ上に形成した半導体装置において、前記メモリコアのI/O線と論理回路のI/O線の間のデータ伝達経路を実時間で切り替えることのできる回路が含まれ、前記メモリのI/O線と論理回路のI/O線の間の複数のデータ伝達経路のうち少なくとも一つは、論理回路のI/O線のうち少なくとも一部のみを使用し、前記使用しない残りのI/O線は前記転送回路によって一定の電位に保つことを特徴とする半導体装置。
【請求項7】請求項1から6のうちの1つに記載の半導体装置において、前記メモリコアがDRAMセルを含むことを特徴とする半導体装置。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、メモリを集積した半導体装置に係わり、特に複数のI/O線をもつメモリと論理回路とを同一の半導体チップ上に集積した半導体装置において、種々の目的に応じたLSIチップを短期間で設計するための方式およびそれによる製品群を与え、また上記メモリ・論理回路間のデータの転送パターンを高速に変化させることのできる高集積なデータ転送回路の方式を与えるものである。
【0002】
【従来の技術】多数の演算器、プロセッサおよびメモリを相互結合する並列計算システムを同一の半導体チップ上に集積する試みとして、米国特許5371896をあげることができる。この従来例では、複数のメモリと複数の演算回路を同一の半導体チップ上に集積され、両者の間がクロスバスイッチからなるネットワークで結合される。この従来例は、必要に応じてSIMD(Single Instruction Multi Data Stream)動作とMIMD(Multi Instruction Multi Data Stream)動作切り換えて行うことができることが特長である。SIMD動作時には、複数のメモリのうち1つがインストラクションメモリとして使われ、残りのメモリがデータメモリとして使われる。演算回路には、インストラクションメモリからの命令が共通に与えられる。MIMD動作時には、SIMD動作時にデータメモリとして使われたメモリの一部がインストラクションメモリとして使われることにより、個々の演算回路に、別々のインストラクションメモリからの命令が与えられる。個々のメモリと演算回路との間のデータ転送経路は、クロスバネットワークにより様々に切り換えることができる。
【0003】
【発明が解決しようとする課題】メモリを集積した半導体装置は上記のほかにも種々考案されているが、最近特にDRAM(Dynamic Random Access Memory)などからなる比較的高集積のメモリと論理回路とを同一の半導体チップに集積したものが注目を集めている。このようなLSIは、一般にユーザの要求を受けて半導体メーカがそれを作り始めるため、チップの完成までの時間(Time to Customers)の短縮が必要である。しかし、一方、必要となるメモリ容量や演算回路の種類は用途によって異なる。この相反する要求を満たすには、設計方式から改革する必要がある。しかし、従来の高集積メモリ、特にDRAMでは、仕様が標準化されているため、そのままの設計方式では、上記の要求に対応することができなかった。
【0004】さらに、DRAMなどの高集積メモリと論理回路とを同一の半導体チップに集積する場合には、それを単に集積しただけでは個別チップに対して大きなメリットが生じにくい。コストと要求性能を考慮すると、1cm角程度の半導体チップ上に大容量のメモリと大規模な論理回路や演算回路を集積し、両者の間の結合線の本数を数百本以上とし、かつてデータ転送速度を1GigaByte/sec以上にする必要がある。したがって、メモリと論理回路とを結合する結合回路として、高速かつ高集積なものが必要である。しかし、上記従来例のようにクロスバスイッチを用いた場合、結合線の数が増加するとスイッチの個数が膨大となりハードウエアの規模が増大し、遅延も増大してしまう。上記の従来技術のように独立した複数のメモリと複数の演算回路との間のデータ転送経路を切り換える場合には一般にメモリや演算回路の数も少ないので従来の並列計算機で使われていた方式をそのまま同じチップ上に実現するのも可能である。しかしながら数百本以上ものメモリのI/O線群と論理回路や演算回路とのI/O線群の間の対応を切り換える場合には、集積度と動作速度の要求がきびしく、従来の方式をそのまま利用するのは困難である。
【0005】
【課題を解決するための手段】上記の第一の課題を解決するために、本発明では多くのI/O線をもち、容量の異なるメモリコアとメモリコアのI/O線のピッチに合わせて設計した結合回路用のモジュールのレイアウトパターンをあらかじめ作ってデータベースに記憶させる。さらに、論理回路を合成するための論理ライブラリも作成し、データベースに記憶させる。データベースには、それらのレイアウトパターンや仕様、特性など設計に必要なデータを記憶させる。
【0006】結合回路用のモジュールは、スイッチ群とバッファ群とからなり、組合せて結合回路を構成できる。スイッチ群は、入力されたデータをその中でその順番を入れ替えることができるものである。複数のスイッチ群を接続して、転送パターンに合わせて所望の転送パターンに対応するスイッチ群を活性化することにより、高速に転送パターンを切り替えることができる。これらのモジュールは、メモリコアのI/O線のピッチに合わせて作られることとされ、レイアウトパターンを変更することなくメモリコアのI/O線にそのまま結合できる。
【0007】上記のように本発明によれば、メモリコア、結合回路用モジュール、論理ライブラリのレイアウトパターンがデータベースにあらかじめ登録されており、なおかつメモリコアと結合回路用モジュールとの配線ピッチがそろえられることとされ、そのまま結合して使うことができる。したがって、ユーザからLSIチップの仕様が与えられてからの設計を短期間に終わらせることができる。すなわち、必要な容量のメモリコアと仕様に合った転送回路を作るためのモジュールとをデータベースから取り出して組合せ、さらに論理部分は、論理合成用のCADツールを用いて論理ライブラリから所望の論理回路を合成すればよい。それらの間の配線は、配置配線CADツールにより高速にできる。したがって、メモリと論理回路とを集積したチップが短期間にできる。
【0008】さらに、上記の結合回路では、メモリと論理回路とで転送されるデータが通過するのは活性化されたスイッチ群のみであるために高速なデータ転送が実現できる。さらに、転送パターン数に合わせて段数を増減するため転送パターンが少ない場合には無駄な占有面積がない。
【0009】
【発明の実施の形態】
[メモリコアを用いたシステムLSIの設計方法]図1には、本発明に係るメモリコアを内蔵したシステムLSIの概念をが示されている。図1を用いて本発明に係るLSIの設計方法を説明する。
【0010】図1の左に示されるのは、コア回路、論理ライブラリのレイアウトパターンや特性を登録したデータベース用記憶装置DBである。ここには、多くのI/O線をもち容量の異なる複数のメモリコアMRと、メモリコアのI/O線のピッチに合わせて設計した転送回路(結合回路)TG用のモジュール群と、論理回路を合成するための基本ゲートからなる論理ライブラリLLとのレイアウトパターンや仕様、特性など設計に必要なデータをあらかじめ記憶する。
【0011】ここで、転送回路TG用のモジュールは、スイッチ群SWGとバッファ群TGBUFiからなり、組合せて転送回路TGを合成できる。詳しくは後述するが、複数のスイッチ群を接続することにより様々な転送パターンを持つ転送回路TGを合成することができる。これらのモジュールは、メモリコアMRのI/O線のピッチに合わせて作られているので、レイアウトパターンを変更することなくメモリコアMRのI/O線にそのまま結合できる。
【0012】LSIチップの仕様が与えられると上記データベースDBから必要なデータを設計用ワークステーションWSに転送しながら設計を行なう。メモリコアMRと転送回路TG用モジュールの配線ピッチがそろっているため、こららはそのまま結合して使うことができる。すなわち、必要な容量のメモリコアMRと仕様に合った転送回路TGを作るためのモジュールをデータベースDBから取り出して組合せればよい。論理部分は、論理合成用のCADツールを用いることにより、論理ライブラリLLから所望の論理回路LCを容易に合成できる。最後にチップのフロアプランに合わせてそれらを配置し、その間の配線を、配置配線CADツールにより行なえばチップのレイアウトデータが完成する。このようにして、メモリコアMRを内蔵したシステムLSIの製品群を短期間に設計できる。
【0013】なお、ここでは論理ライブラリLLを用いて論理を合成する例を示したが、場合によってはチップの一部をゲートアレイにして論理を合成してもよい。その場合は、メモリコアMRが共通で論理が異なるチップを容易に製造できるという利点がある。
【0014】図1の右下に上記のようにして設計したチップの例が2つ示される。半導体チップLSI-Aは、メモリコアMRと論理回路LCを転送回路TGで結合したブロックA,B,C,Dを4つ並べて、その中心にチップ全体を制御する制御回路CCを配置したものである。半導体チップLSI-Bは、メモリコアMRと論理回路LCを転送回路TGで結合したブロックA,Bを2つ並べて、中心にチップ全体を制御する制御回路CCを配置したものである。
【0015】本発明では、もちろん一つのメモリコアMRを用いるチップも実現できるが、本例のように複数のブロックを集積するチップも容易に設計できる。その場合、各ブロックのメモリコアMR、論理回路LCを異なるものとしてもよいし、同一の構成にしてもよい。前者は、異なる処理を同一のチップで並列に行なうものに適しており、後者は、同一の処理を並列に行なうものに適している。特に後者は、グラフィックス、自然画像処理、ニューラルネットワークなど並列動作が可能な処理を行なうものに適している。
【0016】半導体チップLSI-A,LSI-BのどちらもメモリコアMRとデータの授受を行なう論理回路LCをメモリコアMRに近接しているため配線遅延の影響が少なく高速のデータ転送が実現できる。また、制御回路CCから各ブロックへの距離が半導体チップLSI-Bでは等しく、半導体チップLSI-Aでも差が少ないので、制御信号のスキューが小さくできるという利点がある。
【0017】半導体チップLSI-Bでは、論理回路LCを制御回路CCに近接したが、メモリコアMRの制御信号の配線を短くして配線遅延を少なくする必要がある場合には、ブロックを制御回路CCに対して反転させメモリコアMRを制御回路CCに近接してもよい。なお、半導体チップLSI-Aにおいて制御回路CCからの距離がブロックAとBおよびDとCで異なることが問題となる場合も考えられる。その場合には、半導体チップLSI-Bのような配置を行なって制御回路CCの左右にブロックを2つずつ配置すればよい。
【0018】ブロックの形状が横に長い場合には、そのようにするとチップの短辺と長辺の差が大きくなりすぎる場合がある。そのような場合には、図1に示される半導体チップLSI-Aの配置のまま、制御信号の入力端子をブロックの片側の面に集中させ、ブロックAとBおよびDとCを反転して配置することにより、ブロック同士が隣接する面に制御信号の入力端子が来るようにできる。これにより制御信号のスキューを減少することができる。以下では、図1に示される転送回路TGについて詳しく説明する。
【0019】[多重I/Oメモリコア内蔵LSI]図2には、本発明に係る多重I/Oのメモリ内蔵LSIの例が示される。図2に示される半導体チップSICは、複数のI/O線MIOiをもつメモリコアMRと、複数のI/O線LIOiをもつ論理回路LCと、メモリコアMRと論理回路LCの間のデータの転送パターンを制御する転送回路TG等とを単一の単結晶シリコン等からなる半導体基板に集積したものである。
【0020】論理回路LCの内容は論理ライブラリLLを用いて目的に応じたものを合成すればよい。ここでは、画像あるいはグラフィックスに適する一例が示される。メモリコアMRに記憶された画素に対して演算を行なう演算器群ARWとメモリコアMRの内容を画面に表示するために一定の速度で読み出すための表示用バッファDBRならびにそれらとメモリコアMRを制御するための制御回路LCCから構成されている。
【0021】メモリコアMRは、複数のデータ線DLと複数のワード線WLならびにそれらの交点に形成されたメモリセルMCを有する。メモリセルMCは、1トランジスタ・1キャパシタのDRAMセル, 4又は6トランジスタのSRAM(Static Random AccessMemory)セル,1トランジスタの不揮発性のフラッシュメモリセルなどを用いることができる。なお、以下では書き込みと読み出しのできるいわゆるRAM型を仮定するが読みだし専用のいわゆるROM型のものを使用する場合にも本発明は有効である。メモリコアMRへのデータの書込み読み出しは、読み出し書込み回路RWCにより制御され、周辺回路PERによって選択された、複数のメモリセルMCに複数のI/O線から並列にデータを読み書きすることができる。周辺回路PERには、論理回路LCからのメモリコア制御信号MRC、制御信号CTL及びアドレス信号DATA等のバスが接続されている。メモリコアMRは、論理回路LCの基準信号であるクロック信号と同期して制御信号、アドレス信号、I/O信号を入力したり、出力したりする。
【0022】論理回路LCは、メモリコアMRから転送回路TGを通じて読み出されるデータや半導体チップSIC外部からのデータに対して演算を行う。その結果を再び転送回路TGを通じてメモリコアMRへ書き込んだり、半導体チップSIC外部へ出力する。
【0023】転送回路TGは、多段に接続されたスイッチ群SWGより構成され、制御信号TGCiによってメモリコアMRの複数のI/O線MIOiと論理回路LCの複数のI/O線LIOiとの間の接続関係(以下、転送パターンという。)を切り換えることができる。
【0024】図3には、転送パターンの例としてP0からP7まで8つのパターンを実現する場合が示される。この例は、2のn乗本のI/O線MIOiとLIOiに対して、その1/4(2の(n−2)乗)を単位としたMIO0,1,2,3とLIO0,1,2,3の対応を切り換えるものである。転送単位が2のn乗本である必要はなく、また全ての転送単位が等しくなくとも本発明を適用できることはもちろんである。矢印の向きはデータの流れを示しており転送パターンP1はメモリへの書込みのみに使用し、残りのパターン(P0,P2〜P7)は読み出し、書込み両方に使う。
【0025】転送パターンP0は、そのままデータの入れ替えなしに転送するパターンである。転送パターンP1は、(LIO0,1)に入力するデータを(MIO0,1), (MIO2,3)に伝達してメモリへ書き込むためのものである。この例は他のパターンとは異なり異なるメモリのI/O線が導通する。このため、読出し時には異なるデータが衝突する場合があるので書込み時にのみ使用する。このパターンは後述するようにメモリの内容を高速に初期化するなどに有効である。
【0026】転送パターンP2およびP3はそれぞれ(LIO0,1)と(MIO0,1)、(LIO0,1)と (MIO2,3)との間に転送経路を形成するものである。転送パターンP4からP7はそれぞれ(LIO1)と(MIO0)、(LIO1)と(MIO1)、(LIO1)と(MIO2)、(LIO1)と (MIO3)との間に転送経路を形成するものである。
【0027】8つの転送パターン(P0〜P7)は、制御信号TGCiにより自由に切り換えることができる。それぞれの転送パターンは、転送回路TG内のひとつのスイッチ群SWGをオンすることにより実現できる。たとえば、転送パターンP0は、図2に示されるスイッチ群SWG#0をオンすることにより実現できる。転送回路TGの具体的な構成は後述する。
【0028】本実施例では、メモリコアMR、転送回路TG、論理回路LCを同一の半導体チップ上に形成するので数十本から数百本のI/O線を容易に配線することが可能である。
【0029】以下、図2に示される多重I/Oメモリコア内蔵LSIの動作を説明する。
【0030】まず、読出し動作を説明する。メモリコアMR内の周辺回路PERにより一本のワード線WLを選択すると、そのワード線WL上のメモリセルMC群からデータ線DLにデータが読み出され、読出し書込み回路RWCを通じて複数のI/O線MIOiに並列にデータが読み出される。制御信号TGCiにより、転送回路TG内のスイッチ群SWGのうち一つが活性化されるとメモリコアMRの複数のI/O線MIOiと論理回路LCの複数のI/O線LIOiの間の転送パターンが確定しI/O線MIOiからI/O線LIOiにデータが転送され、論理回路LCに入力される。
【0031】書込み動作もデータの流れが逆になる以外は同様である。すなわち、論理回路LCから複数のI/O線LIOiに出力されたデータは、制御信号TGCiにより確定した転送パターンにしたがってI/O線LIOiからI/O線MIOiに転送され、読出し書込み回路を通じてデータ線DLに伝達され、さらに選択されたワード線WL上のメモリセルMCに並列に書き込まれる。
【0032】読出しあるいは書込みを連続に行ったり、交互に行ったりする際には、サイクル毎に選択択するワード線WLや転送パターンを切り換えて動作させることができる。したがって、論理回路LCの要求に応じてサイクル毎に異なるアドレスに対応するメモリセルMCに並列に読出し書込みを行うことができる。
【0033】本実施例によれば、メモリコアMRと論理回路LCの間のデータの授受は、一段のスイッチ群SWGを通じて行われるため、非常に高速なデータ転送が実現できる。また、I/O線MIOiとLIOiが同一方向に走るようにメモリコアMRと論理回路LCを配置するため、メモリコアMRと論理回路LCの間に転送回路TGを配置することができる。転送回路TGのスイッチ群SWGの段数は転送パターンに応じて決まるため転送パターン数が少ない場合には転送回路のデータ線方向の寸法(図2の横方向)を小さくすることが可能である。したがって、図2に示されるようにメモリコアMRのワード線WL方向の寸法(図2の縦方向)に収まるように転送回路TGと論理回路LCをレイアウトすると余分な面積をとることなく全体の面積を小さくすることができる。
【0034】なお、周辺回路PERは、上記のようにワード線WLを選択するXデコーダのみを含んでもよいし、データ線の一部を選んでI/O線に接続するYデコーダを含んでもよい。本実施例によればI/O線は多数設けることができるので、通常、Yデコーダは、例えば1024本のデータ線のうち128本を選ぶような簡単なものでよい。
【0035】[転送回路の第1の具体例]次に転送回路TGの具体的な回路例を図4を使って説明する。図4には、図2に示される転送パターンを実現する転送回路TGの回路例実施が示される。
【0036】図4において、MIO0, MIO1, MIO2, MIO3はメモリコアMRのI/O線であり、LIO0,LIO1, LIO2, LIO3は論理回路LCのI/O線である。また、SWG0, SWG1, .., SWG7はスイッチ群であり、TGBUF0, TGBUF1, TGBUF2, TGBUF3はバッファ回路である。
【0037】TGC0, TGC1,.., TGC7はそれぞれスイッチ群SWG0, SWG1, .., SWG7をオンオフする信号である。スイッチ群SWGのスイッチSWをどの種類のトランジスタで構成するかに依存するが、ここでは制御信号TGCiを高電位とするとその制御信号TGCiが印加されているスイッチSWがオンし、低電位とするとオフするとする。たとえば制御信号TGC3を高電位とし、他の制御信号を低電位とするとスイッチ群SWG3内の矢印で示した2つのスイッチSWがオンする。その結果P3の転送パターンが形成され、メモリコアのI/O線MIO2, MIO3と論理回路LCのI/O線LIO0, LIO1との間に転送経路ができる。その他の転送パターンも同様にして制御信号TGCiのうちの一つを高電位とすれば実現できる。
【0038】バッファ回路TGBUF0, TGBUF1, TGBUF2, TGBUF3はI/O線の付加容量の影響で信号が遅延するのを避けるためにつけたものである。この回路の構成例は図5に示される。図5を用いてバッファ回路TGBUFiの動作を説明する。
【0039】バッファ回路TGBUFiは、メモリコアMRの読み出し書き込み動作に合わせてデータの流れを切り替える両方向のバッファであるとともに、転送パターンが形成されたときに使用しない論理回路LCのI/O線LIOiの電位をラッチする働きを持つ回路である。
【0040】図3に示される例では転送パターンP0を除いていずれも論理回路LCのI/O線LIOiの一部は使用されない。使用されないI/O線の電位が確定しないでいわゆるフローティング状態になると電荷のリークにより中間電位となる可能性がある。その場合、論理回路LC側でCMOS(Cmplement Metal Oxide Semiconductor)トランジスタのゲートに入力されていると過剰な電流が定常的に流れてしまう。それを避けるために論理回路LCのI/O線LIOiのうち使用しないものは電位をラッチする。
【0041】論理回路LCのバッファ回路TGBUFiのイネーブル信号LIOEiを低電位とすると図4に示される論理から明らかなように信号TGWi, TGRiが低レベル、信号TGWBi, TGRBiが高レベルとなりクロックドインバータ回路RINV,WINVがオフする。さらに信号LIOPRiがゲートに入力されているMOSトランジスタQ1がオンしてI/O信号LIOiは低レベルにラッチされる。使用するI/O信号LIOiについては、イネーブル信号LIOEiを高電位とする。データ方向の切り替えは以下のように行う。
【0042】メモリコアMRが読み出し動作のときには、信号TGRWを低電位とする。するとイネーブル信号LIOEiが高電位であるときには、読み出し用クロックドインバータRINVのみが活性化されI/O線LIOi'からI/O線LIOiにデータが転送される。一方、メモリコアMRが書き込み動作のときには、信号TGRWを高電位とする。するとイネーブル信号LIOEiが高電位であるときには、書き込み用クロックドインバータWINVのみが活性化されI/O線LIOiからI/O線LIOi'にデータが転送されスイッチSWを通じてメモリコアMRのI/O線MIOiにデータが転送される。
【0043】以上説明したように図4、図5に示される実施例を用いれば、転送されるデータが通過するスイッチSWの段数は一段なので高速な動作が実現できる。また、スイッチSWの段数は転送パターン数に等しいので、無駄なレイアウト領域が不要で高集積化が可能である。さらに、論理回路LCのI/O線LIOiのうち使用しないI/O線のバッファ回路TGBUFiを停止し、さらに電位がフローティング状態になることを避けらるので無駄な電力消費がなく論理回路LCのゲートに過剰な電流が流れることを防止できる。したがってI/O線の一部を使用しない転送パターンを自由に設定できる。
【0044】なお、図4では、スイッチ群SWG内のスイッチSWのうち制御信号TGCiが入力されない不必要なものも設けてある。これは以下の理由による。図4からわかるように転送回路TGのスイッチ群SWGはスイッチSWの制御信号TGCiとの接続、I/O線MIOiとの接続に必要な配線、コンタクト以外は転送パターンによらず共通の形状をしている。したがって、スイッチのTGCiとの接続、MIOiとの接続に必要な配線、コンタクトをのぞく共通部分をレイアウトライブラリとして用意しておけば、チップのレイアウト設計が容易となるためである。さらに、万一転送パターンを修正する場合にもスイッチ群SWG内のスイッチSWをすべて作っておけばスイッチSWを構成するトランジスタ部のマスクの修正は不要なため修正するマスクの枚数を削減できる。本発明のようなメモリ、論理混載のチップは用途によってメモリ容量や論理の構成を変える必用がある。したがって、何種類かのメモリコアMRと転送回路TG用の上記スイッチSWG群の基本パターンをライブラリとして用意しておけば、それらから必要なものを選んで、さらに論理部分を論理用基本ライブラリLLを用いて合成して配置配線を行うことによりLSIチップのマスクを迅速に設計することができる。
【0045】[転送回路の第2の具体例]もちろんI/O線に接続されるスイッチSWの数が増えると付加容量の増大による遅延が問題になる場合もある。したがって、スイッチ群SWGの段数が非常に多い場合には不要なスイッチSWは省略してもよい。
【0046】図6には、図2の転送回路TGを図4に示されるより少ない7段のスイッチ群SWGで実現する転送回路TGの第2の具体例が示される。図4では、一つの転送パターンに一つのスイッチ群SWGが対応していた。しかし、図3の転送パターンP0, P1, P2には、メモリコアMRのI/O線のうちMIO0, MIO1と、論理回路LCのI/O線LIO0,LIO1を接続する共通点がある。また、、転送パターン P1とP3には、メモリコアMRのI/O線のうちMIO2, MIO3と、論理回路LCのI/O線LIO0, LIO1を接続する共通点がある。これに着目してスイッチ群SWG0を削除してスイッチ群SWG1とSWG2を変更したのが図6の実施例である。
【0047】図7の下部には、各転送パターン(P0〜P7)を実現するための制御信号TGCi、TGRW、LIOEiの設定法が示される。ここで"1"は高電位、"0"は低電位を示す。なお、転送パターンP1は前述の理由から書き込み動作しかできないので制御信号TGRWは"1"にしか設定できない。転送パターンP0, P1を実現するための制御信号TGCiの設定が図4の実施例と異なる。
【0048】転送パターンP0を実現するためには、制御信号TGC1とTGC2の二つの制御信号を高電位にすればよい。制御信号TGC1により、I/O線のうちMIO2とLIO2、MIO3とLIO3が接続され、制御信号TGC2により、I/O線のうちMIO0とLIO0, LIO1とMIO1が接続される。
【0049】転送パターンP1を実現するためには、TGC2とTGC3の二つの制御信号を高電位にすればよい。制御信号TGC2により、I/O線のうちMIO0とLIO0, LIO1とMIO1が接続され、制御信号TGC3により、I/O線のうちMIO2とLIO0、MIO3とLIO1が接続される。本実施例では、このようにスイッチ群SWGの段数を削減できる。ここで2つのスイッチ群SWGを活性化して転送パターンP0とP1を実現しているが、データが通過するのはスイッチSW一段であるところが第2の特長である。この点は、従来のオメガネットワークなど複数の段数をデータが通過するものと異なる。以上のように本実施例によれば、高速性を損なうことなくより高速化を達成できる。
【0050】[転送回路の第3の具体例]図8には、スイッチSWを並列に接続することにより、図6の実施例よりさらにスイッチ群SWGの段数を削減した例が示される。この例では、スイッチ群SWGを3段に削減できる。制御信号の設定方法は図7に示される実施例と同じである。図8に示される例では、各スイッチ群SWGにおいてI/O線LIOi'の両側にスイッチSWが配置される。スイッチSWの回路構成とレイアウトの例を図9に示される。各スイッチSWはnMOS(nチャネルMOS)とpMOS(pチャネルMOS)より構成し、nMOSのゲートには制御信号TGCi, TGCjをpMOSのゲートにはその逆相信号TGCiB, TGCjBを入力する。
【0051】図9右側には、スイッチ部のレイアウト例が示される。ここではnMOSのみを示した。M2, M1, CONT1, CONT2, Lはそれぞれ第2配線層、第1配線層, M1とLとのコンタクト、第1配線層と第2配線層とのコンタクト、拡散層である。本実施例では2つのスイッチSWを構成するMOS同士の拡散層LをI/O線LIOi'のところで共通化できるので狭いI/O線のピッチに収めることができる。なお、ここでは並列に接続するスイッチSWの数を2つとしたが、I/O線のピッチにが広い場合には3つ以上のスイッチSWを並列に接続してさらに段数の削減を行ってもよいのはもちろんである。
【0052】[メモリ読み出し書き込み回路制御信号による低消費電力化]図4、図6、図8に示される実施例では、転送回路TGのバッファ回路TGBUFiをイネーブル信号でコントロールし無駄な消費電力が削減されるとともに論理回路LCのゲート電位がフローティング状態になることが防止される。
【0053】図10には、さらにメモりコアMRの読み出し書き込み回路RWCを転送パターンに応じて制御することにより、使用しないメモりコアMRのI/O線MIOiを駆動することによる読み出し時の無駄な消費電力を削減し、さらに書き込み時に使用しないI/O線MIOiからメモリコアMRに誤ったデータが書き込まれるのを防止する例が示される。
【0054】図2の転送パターンのうちP2からP7は、メモリコアMRのI/O線MIOiの一部しか使用しない。したがって、メモリコアMRの書き込み読み出し回路RWCを制御する信号を設けて使用しないメモリコアMRのI/O線MIOiを受け持つ書き込み読み出し回路RWCiを停止する。図10においてRWC0, RWC1, RWC2, RWC3は、読出し書込み回路RWCを構成する回路で、各々メモりコアMRのI/O線MIO0, MIO1, MIO2, MIO3用の書き込み読み出し回路RWCiである。また、MIOE0, MIOE1, MIOE2, MIOE3は、各々書き込み読み出し回路RWC0, RWC1, RWC3を制御するイネーブル信号である。
【0055】各々の転送パターンにおいて書き込み読み出し回路RWCiを制御するイネーブル信号MIOE0, MIOE1, MIOE2, MIOE3と論理回路LCのバッファ回路TGBUFiのイネーブル信号LIOEiの設定法が図11に示される。ここで、イネーブル信号の"1"は高電位を示し、活性状態で"0"は低電位で停止状態を示す。なお、イネーブル信号MIOE0, MIOE1, MIOE2, MIOE3をメモリコアMRに隣接した論理回路LCから発生する場合、図11に示されるように転送回路TGを貫通して配線するとレイアウトを高密度にできる。
【0056】本実施例によれば、転送パターンに応じてメモりコアMRの読み出し書き込み回路RWCを制御することにより、使用しないI/O線MIOiを駆動することによる読み出し時の無駄な消費電力を削減し、さらに書き込み時に使用しないI/O線MIOiからメモリコアMRに誤ったデータが書き込まれるのを防止することができる。
【0057】[メモリ読み出し書き込み回路とバッファ制御信号の共用化]図10に示される実施例では、書き込み読み出し回路RWCを制御するイネーブル信号MIOEiと論理回路LCのバッファ回路TGBUFiのイネーブル信号LIOEiを独立にした。このようにすると図11に示されるように転送パターンに合わせてそれぞれ異なる設定をする必要がある。I/O線の数と転送パターンの数が増えるとイネーブル信号MIOEiとLIOEiとを独立に設定するのは繁雑である。
【0058】図12から図15には、論理回路LCのバッファ回路TGBUFiのイネーブル信号LIOEi用の転送回路CTGを設けて書き込み読み出し回路RWCのイネーブル信号MIOEiをイネーブル信号LIOEiより自動的に発生するようにした例のが示される。図12には、図2に示されるデータの転送パターンが示され。図13には、図12のデータ転送パターンに対応するバッファ回路TGBUFiの制御信号LIOEiの転送パターンでが示される。
【0059】この転送パターンに従ってバッファ回路TGBUFiの制御信号LIOEiをメモリコアMR側に転送してやれば、その信号をそのままメモリコアMRの書き込み読み出し回路RWCのイネーブル信号MIOEiとして使用することができる。
【0060】ここでデータが使用しないI/O線を受け持つ制御信号もメモリコアMRの書き込み読み出し回路RWCを停止するために転送する必要があることに注意しなければならない。すなわち、転送パターンP1からP7のようにデータは一部のI/O線しか使用しない場合にも、図8の中段に示されるように制御信号は全て転送される。
【0061】バッファ回路TGBUFiの制御信号LIOEiの転送回路CTGの具体的な構成が図14に示される。データの転送回路TGと同じようにスイッチ群SWGEiからなる。この転送回路CTGによれば図15に示されるように転送パターンに応じて制御信号ECiを設定することにより図8の中段に示される転送パターンが実現できる。
【0062】ここで、図13に示される転送パターンを見るとP0, P2, P5の形が同じであることがわかる。そこで制御信号EC0, EC2, EC5に関するスイッチ群SWGEは一つにまとめて制御信号EC0, EC2, EC5のOR論理をとって入力される。これによりスイッチ群SWGEの段数を削減して高集積化を図ることができる。動作原理はこれまで説明してきたデータの転送回路TGと同じなので省略する。
【0063】本実施例によれば、データの転送回路TGに加えてバッファ回路TGBUFiの制御信号LIOEiの転送回路CTGを設けることにより、書き込み読み出し回路RWCのイネーブル信号MIOEiとバッファ回路TGBUFiのイネーブル信号LIOEiをそれぞれ独立に設定する必要がない。このため、I/O線の数や転送パターンの数が増えてもイネーブル信号の設定が繁雑になるのを避けることができる。
【0064】[データの転送単位を細かく設定可能なイネーブル信号]これまでの実施例では、データの転送時にまとまって転送されるI/O線(図2では2の(n-2)乗)に対して書き込み読み出し回路RWCのイネーブル信号MIOEiとバッファのイネーブル信号LIOEiを設けていた。しかし、イネーブル信号の設定を細かくすることによりさらに多彩な転送パターンを実現することができる。
【0065】図16及び図17には、データの転送単位より細かく設定可能なイネーブル信号の例が示される。この実施例では、図3の転送パターンについてまとまって転送されるI/O線の単位を4Byteとし、イネーブル信号は、1Byte単位で設定した。すなわち、図16に示されるように4ByteずつのメモリコアMRのI/O線MIOiと論理回路LCのI/O線LIOiとの間に図3に示される8種類の転送パターンが実現でき、イネーブル信号は4ByteのI/O線群に対して4本別々に設けてある。例えば、I/O線LIO0についてはLIOE-0, LIOE-1, LIOE-2, LIOE-3の4本のイネーブル信号がある。
【0066】図17には、図16の例で可能となる転送パターンの例とそのためのイネーブル信号の設定法が示される。イネーブル信号MIOEi-jはイネーブル信号LIOEi-jを転送することにより作ってもよいし、イネーブル信号LIOEi-jとは独立に設定してもよい。図17の(A)は、転送回路TGで決まる基本転送パターンをP0とした状態でイネーブル信号を全て"1"とした場合である。これは、これまでのパターンと同じである。しかし、図17の(B)のように基本転送パターンをP0としてイネーブル信号を2Byteづつ"0"と"1"とすると別の転送パターンを作ることができる。また、図17の(C)は基本転送パターンP3で、図17の(D)は、P3においてイネーブル信号の設定を変えたものである。
【0067】ここでは、二つの基本転送パターンについてそれぞれ一例のみ示したが、これ以外にもイネーブル信号を変えることによって基本転送パターンとは異なるさまざまな転送パターンができる。画像用途などでバイトごとにデータの属性が異なるような場合には、特定のバイトだけを転送する必要が有り得るが、そのような場合、本実施例が有用である。
【0068】図18には、本発明を3次元コンピュータグラフィックス(以下3D-CGと記す)の描画処理を行うLSIに応用した例が示される。転送回路TGの基本転送パターンは、図3に示されるもので、図18の上段に示されるようにメモリコアMRのデータをI/O線に割り付けられる。ここで、RGB-A, RGB-Bは、画素AおよびBの色、Z-A, Z-Bは画素AおよびBの奥行き座標で各々16bit長である。
【0069】3D-CGでは、Z比較という特別な処理がよく行われる。これは、よく知られているように新しくメモリへ画素の書き込みを行う場合、同じ位置の画素とZ値を比較して小さければ書き込み、大きければ書き込まないという処理である。このような処理を画素Aについて行う場合、図18に示されるように、まず、転送パターンをP5として、メモリコアMRに既に記憶されているZ値Z-Aoldを読み出す。続いて、論理回路LCで新しい画素のZ値Zinと比較してZinが小さければ、新しい画素のRGBとZ値の書き込みを行う。ここで、転送パターンをP2に切り替えれば、RGBとZ値を並列に書き込むことができる。画素Bの場合には転送パターンP7とP3を用いればよい。なお、RGB値が3ByteでZ値が2Byteなどとビット数が異なる場合には、転送回路TGの基本転送パターンを3Byte単位として、Z値を扱う場合には図16に示されるようなバイトごとのイネーブル信号を設けてマスクをかければよい。
【0070】3D-CGでは、さらにアルファブレンド処理という透明感を表わす処理がある。これを行うには図18の中段に示されるようにすればよい。アルファブブレンド処理は、よく知られているように新しくメモリへ画素の書き込みを行う場合、同じ位置の画素を読み出して、新しい画素と係数αで重み付けして加算し、書き込むいう処理である。このような処理を画素Aについて行う場合、図18に示されるように、まず、転送パターンをP4として、メモリコアMRに既に記憶されているRGB-Aoldを読み出す。続いて、論理回路LCで新しい画素のRGBinと係数αで重み付けして加算し、書き込みを行う。転送パターンは、P4のままでよい。画素Bの場合には転送パターンP6を用いればよい。この場合もしも論理回路に重み付け加算を行う演算回路が一つしかない場合には、バイトごとのイネーブル信号を設けることによってRとGとBの1Byteづつアルフアブレンド処理を行うことができる。
【0071】さらに画面クリアという処理も高速にできる。この処理では、メモリコアMR内のデータの初期化を行う。通常RGBについては、最小値か最大値、Z値については、奥行の最大になる最大値の書き込みを行う。図18に示される実施例では、2つの画素分のI/O線があるので、転送パターンP1を利用すれば、2画素同時に書き込みが行えるため、高速にクリア処理ができる。さらに、図18には示していないが、転送パターンP0とイネーブル信号を使えば2画素のRGBを同時に読み出すこともできるので高速の画面表示も行うことができる。以上述べたように、本発明の転送回路TGを用いれば高速の3D-CG描画処理を行うことができる。
【0072】[I/O線の割り付けをバイト毎にする例]これまでは、説明を簡単にするため、転送の単位毎にI/O線MIOiやLIOiを割り振って図示してきた。実際のレイアウトでこのようにすると、特に転送の単位が大きい場合には多くのI/O線を横切ってデータが伝わるため、配線遅延や雑音の誘起など悪い影響が出る場合がある。
【0073】図19には、I/O線の割り付けをバイト毎に変更した例が示される。図19の例には、転送の単位が4Byteのときに1Byteづつ入れ子にする方法が示される。このようにするとデータの移動が少なくてすむ。たとえば、転送パターンP3では、図3に示されるようにすると8Byte分のI/O線を横切る必要があるが、図19の例では2Byteで済む。ここではバイト毎に入れ替えたが、ビット毎に入れ替えてもよい。その場合にはさらに移動が少なくて済む。もちろん、本実施例のようにする場合は論理回路LCの受け口もそれに合わせて設計する必要があるが、配線遅延や雑音の誘起など悪い影響を避け、さらに配線の増加による面積の増大も低減することができる。
【0074】
【発明の効果】本発明によれば、メモリと論理回路を集積した半導体を短期間に設計でき、さらに面積の小さい転送回路によりリアルタイムで転送パターンを変えながら複数のI/O線をもつメモリコアと論理回路の間で高速なデータ転送を実現できる。
【出願人】 【識別番号】000005108
【氏名又は名称】株式会社日立製作所
【出願日】 平成8年(1996)3月8日
【代理人】 【弁理士】
【氏名又は名称】小川 勝男
【公開番号】 特開平9−331019
【公開日】 平成9年(1997)12月22日
【出願番号】 特願平8−51321