JP5365637B2 - 半導体プログラマブルデバイスおよびその制御方法 - Google Patents

半導体プログラマブルデバイスおよびその制御方法 Download PDF

Info

Publication number
JP5365637B2
JP5365637B2 JP2010529831A JP2010529831A JP5365637B2 JP 5365637 B2 JP5365637 B2 JP 5365637B2 JP 2010529831 A JP2010529831 A JP 2010529831A JP 2010529831 A JP2010529831 A JP 2010529831A JP 5365637 B2 JP5365637 B2 JP 5365637B2
Authority
JP
Japan
Prior art keywords
signal
switch fabric
signals
output
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010529831A
Other languages
English (en)
Other versions
JPWO2010032861A1 (ja
Inventor
英彰 斎藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010529831A priority Critical patent/JP5365637B2/ja
Publication of JPWO2010032861A1 publication Critical patent/JPWO2010032861A1/ja
Application granted granted Critical
Publication of JP5365637B2 publication Critical patent/JP5365637B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)
  • Electronic Switches (AREA)

Description

本発明は、プロセッサやメモリからなる回路ブロックを複数集積した半導体プログラマブルデバイスに関する。
半導体集積回路デバイスの低コスト化、短TAT(Turn Around Time)化のため、デバイス製作後に回路構成を変更できるプログラマブルデバイスが開発されている。このプログラマブルデバイスの一例として、ゲートレベルで回路を組み合わせて再構成するFPGA(Field Programmable Gate Array)がある。また、プログラマブルデバイスとして、より大きい回路単位であるプロセッサやメモリをアレイ状に並べたものを組み合わせて再構成するデバイスなど、様々なものが実現あるいは提案されている。
回路ブロックを組み合わせて再構成するプログラマブルデバイスとして、例えば、チップ上で2次元アレイ状に回路ブロックを並べて、2次元メッシュの結合網で回路ブロック間を接続するデバイスが、非特許文献1に開示されている。
図29に、非特許文献1に記載された関連する2次元アレイのプログラマブルデバイスの一例を示す。同図に示すように、関連するプログラマブルメモリデバイス600においては、回路ブロックとしてのメモリマクロ610が2次元アレイ状に並んでいる。この回路ブロックとしてはメモリに限らず、プロセッサやカスタムハードウエア回路などがある。メモリマクロ610は、それぞれに対応するスイッチファブリック630と接続されている。これらのスイッチファブリック630同士は、メモリマクロからのデータを他のメモリマクロや2次元アレイの外部へ転送するために2次元メッシュ状に配線で結合されている。
スイッチファブリック630には、例えば、図18に示す構成を有するものを用いることができる。同図を参照すると、スイッチファブリック230は、自身の上下左右の方向で隣り合う他のスイッチファブリック230U、230D、230L、230Rとそれぞれ配線で結合し、また、自身に対応する1つの回路ブロック(例えばメモリブロック110)とも結合している。スイッチファブリック間あるいはスイッチファブリックと回路ブロックとの信号の入出力は5つの4:1セレクタSE1c〜SE5cで実現されている。各セレクタは、4つの入力信号のうちいずれか1つを選択して出力する。各セレクタの入力信号の選択は、選択論理回路LG1c〜LG5cにより制御される。選択論理回路は例えば、データを転送する方向をアドレス化したものをデコードするためのデコード回路からなる。
「プロシーディングス オブ アイ・イー・イー・イー コンピュータ ソサイエティ アニュアル シンポジウム オン VLSI(Proceedings of the IEEE Computer Society Annual Symposium on VLSI)」、2002年、p.105−112
非特許文献1に開示されたプログラマブルデバイスは回路ブロック間の接続を切り替えることで所望の回路構成を実現している。しかし、回路変更ができない通常の半導体集積回路デバイスと比べて、回路ブロック間を接続する配線と、その接続を切り替えるためのスイッチファブリックを配置する必要があるため、チップ面積のオーバーヘッドが生じてしまうという問題があった。
例えば、FPGAではチップ面積の半分、プロセッサの2次元アレイの場合でもチップ面積の約1/4程度は配線およびスイッチファブリックで占められている。
配線層数を増やして上述の配線を別の配線層に移設することにより、チップ面積を増大させることなく搭載できる回路ブロックの数を増やし、デバイス性能を向上させることができる。しかし、配線層を増やすと、マスクコストが増加してしまう。
本発明の目的は、上述した課題である、低コストで高性能の半導体プログラマブルデバイスを得るのが困難であるという問題を解決する半導体プログラマブルデバイスおよびその制御方法を提供することにある。
本発明の半導体プログラマブルデバイスは、信号を入出力する複数の回路ブロックと、回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、複数の回路ブロックから出力された複数の信号を1つの信号にパラレル−シリアル変換した信号をスイッチファブリックに使用させ、スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を回路ブロックに使用させる変換部とを有する。
本発明の半導体プログラマブルデバイスの制御方法は、信号を入出力する複数の回路ブロックと、回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、を備える半導体プログラマブルデバイスの制御方法であって、複数の回路ブロックから出力された複数の信号を1つの信号にパラレル−シリアル変換した信号をスイッチファブリックに使用させ、スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を回路ブロックに使用させる。
本発明によれば、スイッチファブリックおよびスイッチファブリック周辺の配線による面積オーバーヘッドを小さくできる。その結果、低コストで高性能な半導体プログラマブルデバイスを得ることができる。
図1は本発明の第1の実施形態に係るプログラマブルメモリデバイスの構成を示すブロック図である。
図2は本発明の第1の実施形態に係るSRAMマクロの回路構成を示すブロック図である。
図3は本発明の第1の実施形態に係る変換部の構成を示す回路図である。
図4は本発明の第1の実施形態に係る2:1マルチプレクサの構成を示す回路図である。
図5は本発明の第1の実施形態に係る2:1マルチプレクサの動作を示す真理値表である。
図6は本発明の第1の実施形態に係る2:1マルチプレクサの動作を示す信号波形図である。
図7Aは本発明の第1の実施形態に係る1:2デマルチプレクサの構成を示す回路図である。
図7Bは本発明の第1の実施形態に係るハイスルーラッチの一般的な構成を示す回路図である。
図8は本発明の第1の実施形態に係るハイスルーラッチの動作を示す真理値表である。
図9は本発明の第1の実施形態に係るフリップフロップの動作を示す真理値表である。
図10は本発明の第1の実施形態に係る1:2デマルチプレクサの動作を示す信号波形図である。
図11は本発明の第1の実施形態に係るスイッチファブリックの構成を示すブロック図である。
図12は本発明の第1の実施形態に係るスイッチファブリックを構成する読み出しデータ制御回路の構成を示す回路図である。
図13は本発明の第1の実施形態に係る選択論理回路の動作を示すフローチャートである。
図14は本発明の第1の実施形態に係るスイッチファブリックを構成する書き込みデータ制御回路の構成を示す回路図である。
図15は本発明の第1の実施形態に係るメモリ入出力部の構成を示す回路図である。
図16は本発明の第2の実施形態に係る1:2デマルチプレクサの構成を示す回路図である。
図17は本発明の第3の実施形態に係る変換部の構成を示す回路図である。
図18は本発明の第4の実施形態に係るスイッチファブリックの構成を示す回路図である。
図19は本発明の第5の実施形態に係るプログラマブルメモリデバイスの構成を示すブロック図である。
図20は本発明の第5の実施形態に係る4:1マルチプレクサの構成を示す回路図である。
図21は本発明の第5の実施形態に係る4:1マルチプレクサの動作を示すカルノー図である。
図22は本発明の第5の実施形態に係る4:1マルチプレクサの動作を示す信号波形図である。
図23は本発明の第5の実施形態に係る1:4デマルチプレクサの構成を示す回路図である。
図24は本発明の第5の実施形態に係る1:4デマルチプレクサの動作を示す信号波形図である。
図25は本発明の第6の実施形態に係る1:4デマルチプレクサの構成を示す回路図である。
図26は本発明の第7の実施形態に係る1:4デマルチプレクサのプ構成を示す回路図である。
図27は本発明の第8の実施形態に係る積層デバイスの構成を示す斜視図である。
図28は本発明の第9の実施形態に係るプログラマブルプロセッサデバイスの構成を示すブロック図である。
図29は関連するプログラマブルメモリデバイスの構成を示すブロック図である。
100、300 プログラマブルメモリデバイス
110、310、511、610 メモリマクロ
110A 上側メモリマクロ
110B 下側メモリマクロ
111 SRAMマクロ
112 メモリセルアレイ
113 アドレスデコーダ
114 ワード線ドライバ
115 センスアンプ
116 ライトバッファ
117 リードバッファ
118 制御部
119A 上側クロック同期型メモリマクロ
119B 下側クロック同期型メモリマクロ
120、220、320、520 変換部
121、142 2:1マルチプレクサ
122、141、222 1:2デマルチプレクサ
130、130U、130D、130L、130R、230、230U、230D、230L、230R、330、530、630 スイッチファブリック
131 読み出しデータ制御回路
132 書き込みデータ制御回路
140、340、440 メモリ入出力部
150、350 ロジックデバイス
151、351 ロジックマクロ
151A 上側ロジックマクロ
151B 下側ロジックマクロ
310A 左上メモリマクロ
310B 右上メモリマクロ
310C 左下メモリマクロ
310D 右下メモリマクロ
311A 左上クロック同期型メモリマクロ
311B 右上クロック同期型メモリマクロ
311C 左下クロック同期型メモリマクロ
311D 右下クロック同期型メモリマクロ
321 4:1マルチプレクサ
322、323、324 1:4デマルチプレクサ
400 積層デバイス
410 ロジックデバイス基板
420 プログラマブルメモリデバイス基板
430 ロジック入出力部
500 プログラマブルプロセッサデバイス
510 メモリデバイス
540 プロセッサ入出力部
551 プロセッサ
600 関連するプログラマブルメモリデバイス
B1、B2 バッファ
N1、N2 NOTゲート
TR1〜TR8 トランジスタ
FF1〜FF7 フリップフロップ
LH1〜LH3 ハイスルーラッチ
SE1〜SE9、SE1c〜SE5c セレクタ
LG1〜LG9、LG1c〜LG5c 選択論理回路
AD1〜AD4 ANDゲート
以下に、図面を参照しながら、本発明の実施形態について説明する。
[第1の実施形態]
図1は本発明の第1の実施形態に係る半導体プログラマブルデバイスとしてのプログラマブルメモリデバイス100の構成を示すブロック図である。回路ブロックとしての複数のメモリマクロ110が変換手段としての変換部120を介してスイッチファブリック130に接続される。スイッチファブリック130は2次元アレイ状に配列され、一部のスイッチファブリック130はメモリ入出力部140を介してロジックデバイス150を構成するロジックマクロ151と接続している。本実施形態では、図1に示すようにメモリマクロ110が4×4の2次元アレイ状に16個配列した構成とした。
メモリマクロ110からの読み出しデータ信号は変換部120によりシリアル変換され、スイッチファブリック130に入力される。ここでシリアル変換とは、例えば2個のメモリマクロ110A、110Bから出力されたパラレルのデータ信号の時間幅を、それぞれ半分にした上でシリアル化するものであり、パラレルで転送する場合と同じスループットが得られる。スイッチファブリック130間の転送とスイッチファブリック130からメモリ入出力部140への転送は、シリアル化した信号によって行う。
複数のメモリマクロ110で1個のスイッチファブリック130を共有することによって、プログラマブルメモリデバイス100において必要となるスイッチファブリック130の個数を削減することができる。例えば、図1に示すように、2個のメモリマクロ110A、110Bで1個のスイッチファブリック130を共有する場合、必要なスイッチファブリック130の個数を半減することができる。そのため、スイッチファブリックとスイッチファブリック間を接続する配線によって生じるチップ面積のオーバーヘッドを削減することが可能となる。そして、面積オーバーヘッドの低減によりスイッチファブリック等の配置コストが低減でき、また、限られたチップ面積により多くの配線を確保できるので性能を向上させることできる。以上より、本実施形態によれば低コストで高性能な半導体プログラマブルデバイスを得ることができる。
図2に、メモリマクロ110としてのSRAMマクロ111の回路構成を示す。SRAMマクロ111は、メモリセルアレイ112と、アドレスデコーダ113と、ワード線ドライバ114と、センスアンプ115と、ライトバッファ116と、リードバッファ117と、制御部118とを有する。
アドレスデコーダ113は、メモリセルアレイ112内のメモリセルへデータを読み書きするときに、アクセス対象のデータのアドレスを指定する。ワード線ドライバ114は、メモリセルアレイ112におけるワード線(不図示)を所定のタイミングで駆動する。メモリセルアレイ112の構成については後述する。
センスアンプ115は、メモリセルアレイ112に入力する信号またはメモリセルアレイ112から出力された信号を増幅して伝送する。ライトバッファ116およびリードバッファ117は、メモリセルアレイ112と他の装置との処理速度の相違を調整する。制御部118はSRAMマクロ111の動作を制御する。
メモリセルアレイ112には、例えば、SRAMメモリセルが1kワード16ビット構成で配列されている。このときメモリセルアレイ112のアドレスを指定するための信号(アドレス信号)は、アクセスするメモリマクロ110を特定するための4ビット(メモリマクロアドレス)と、個々のメモリマクロ内のワードアドレスを指定するための10ビットとからなる合計14ビットの信号となる。読み書きの対象とするアドレス信号のうち、4ビットのメモリマクロアドレスが制御部118に予め設定されているメモリマクロアドレスと一致する場合、制御部118の後段にあるすべての回路が活性化される。そして、メモリセルアレイ112に対して書き込み、あるいは読み出し動作が行われる。
図1に示したように、本実施形態のプログラマブルメモリデバイス100は、その周辺に配置されたロジックデバイス150と接続されている。ロジックデバイス150は、複数のロジックマクロ151を有する。これらのロジックマクロ151は、論理回路からなるマクロセルである。これらのロジックマクロ151は、回路に定義された所定の処理を実行する。各ロジックマクロ151とプログラマブルメモリデバイス100は、メモリ入出力部140を介してデータ転送を行う。
本実施形態によるプログラマブルメモリデバイス100は、回路ブロックとしての複数(例えば、4×4の16個)のメモリマクロ110と、変換手段としての複数(例えば、8個)の変換部120と、複数(例えば、8個)のスイッチファブリック130を備える。さらに、複数(例えば、4個)のメモリ入出力部140と、これらを接続する配線とを有する。
メモリマクロ110は、例えば、16ビットの単位で1kワードを記憶できるSRAM(Static Random Access Memory)マクロからなる。2つのメモリマクロ110は1つの変換部120と、1つのスイッチファブリック130とを共有する。メモリマクロ110は、変換部120でシリアル−パラレル変換された信号を入力し、もしくはパラレル−シリアル変換するための信号を出力する。
図1に示すように、1つのスイッチファブリック130を共有する2つのメモリマクロ110のうち、一方を上側メモリマクロ110A、他方を下側メモリマクロ110Bとする。
変換部120は、2つのメモリマクロ110A、110Bから出力されたパラレル信号を、シリアル信号にパラレル−シリアル変換し、変換したシリアル信号をスイッチファブリック130に入力する。また、変換部120は、スイッチファブリック130から出力されたシリアル信号を、パラレル信号にシリアル−パラレル変換し、変換したパラレル信号を、2つのメモリマクロ110A、110Bにそれぞれ入力する。
スイッチファブリック130は2次元メッシュ状の配線により相互に接続されており、変換部120により、パラレル−シリアル変換されたシリアル信号の転送方向を制御する。また、スイッチファブリック130の一部は、メモリ入出力部140に接続され、このメモリ入出力部140にシリアル信号を入出力する。
メモリ入出力部140は、スイッチファブリック130から出力されたシリアル信号を、パラレル信号にシリアル−パラレル変換し、変換したパラレル信号を、それぞれのロジックマクロ151に入力する。また、メモリ入出力部140は、2つのロジックマクロ151から出力されたパラレル信号を、シリアル信号にパラレル−シリアル変換し、変換したシリアル信号を、スイッチファブリック130に入力する。
図3は、本実施形態による変換部120の構成を示す回路図の一例である。同図を参照すると、変換部120は、1個の2:1マルチプレクサ121と、3個の1:2デマルチプレクサ122とを有する。そして、これらの2:1マルチプレクサ121および1:2デマルチプレクサ122には、所定の周期のクロック信号が入力される。
2:1マルチプレクサ121は、上側メモリマクロ110Aから出力された16ビットの読み出しデータ信号と、下側メモリマクロ110Bから出力された16ビットの読み出しデータ信号とをシリアル信号に変換し、スイッチファブリック130に入力する。
1:2デマルチプレクサ122は、スイッチファブリック130から出力されたシリアル信号を、上側メモリマクロ110Aへの16ビットの書き込みデータ信号と、下側メモリマクロ110Bへの16ビットの書き込みデータ信号とからなるパラレル信号に変換する。そして、1:2デマルチプレクサ122は、パラレル信号を上側メモリマクロ110Aおよび下側メモリマクロ110Bに入力する。
また、1:2デマルチプレクサ122は、シリアル方式でスイッチファブリック130から出力された2ビットのコマンド信号と14ビットのアドレス信号を、それぞれパラレル信号に変換する。そして、1:2デマルチプレクサ122は、変換したパラレル信号を上側メモリマクロ110Aおよび下側メモリマクロ110Bに入力する。
次に、図4〜図6を参照して、2:1マルチプレクサ121の構成および動作について説明する。
図4は、2:1マルチプレクサ121の構成を示す回路図である。同図を参照すると、2:1マルチプレクサ121は、NOTゲートN1と、トランジスタTR1、TR2、TR3、およびTR4と、バッファB1とを有する。
そして、NOTゲートN1およびトランジスタTR1のゲート電極には、位相が同一のクロック信号が入力される。また、このクロック信号を反転させた信号がトランジスタTR2のゲート電極に入力される。
上側メモリマクロ110Aから出力された読み出しデータ信号は、トランジスタTR1およびTR2のソース電極に入力される。下側メモリマクロ110Bから出力された読み出しデータ信号は、トランジスタTR3およびTR4のソース電極に入力される。NOTゲートN1は、クロック信号を反転させてトランジスタTR2およびTR3に出力する。ここで、トランジスタTR1、TR2、TR3、およびTR4は、例えば、FET(Field Effect Transistor)である。
トランジスタTR1、TR2、TR3、およびTR4から出力された信号は、バッファB1に入力される。バッファB1は、入力された信号の電圧レベルを調整してスイッチファブリック130へ出力する。
このように回路を構成することにより、クロック信号がハイレベルの場合、トランジスタTR1、TR2がON、トランジスタTR3、TR4がOFFとなる結果、2:1マルチプレクサ121は、上側メモリマクロ110Aからの読み出しデータ信号のみを出力する。クロック信号がローレベルの場合、トランジスタTR1、TR2がOFF、トランジスタTR3、TR4がONとなる結果、2:1マルチプレクサ121は、下側メモリマクロ110Bからの読み出しデータ信号のみを出力する。その結果、メモリマクロ110A、110Bからの読み出しデータ信号がシリアル変換される。このとき、2:1マルチプレクサ121により変換されたシリアル信号の転送速度は、メモリマクロ110からのパラレル信号の転送速度の2倍にしているので、パラレル−シリアル変換によってスループットが低下することはない。
図5は、2:1マルチプレクサ121の動作を示す真理値表である。同図を参照すると、クロック信号Clkがローレベル(0)の場合、上側メモリマクロからの読み出しデータD1の値にかかわりなく、下側メモリマクロからの読み出しデータD2がそのまま信号Qとして出力される。クロック信号Clkがハイレベル(1)の場合、下側メモリマクロからの読み出しデータD2の値にかかわりなく、上側メモリマクロからの読み出しデータD1がそのまま出力される。
図6は、2:1マルチプレクサ121の動作を示す信号波形図である。同図を参照すると、クロック信号Clkがハイレベルの間、2:1マルチプレクサ121は、上側メモリマクロ110Aからの読み出しデータ信号D1をスイッチファブリック130に信号Qとして出力する。そして、クロック信号Clkがローレベルの間、2:1マルチプレクサ121は、下側メモリマクロ110Bからの読み出しデータ信号D2をスイッチファブリック130に信号Qとして出力する。
図6の信号波形から明らかなように、入力されるパラレル形式の読み出しデータ信号がクロックサイクルと同じ時間幅を持っていたのに対し、2:1のマルチプレクサ121によってシリアル変換されたデータ信号はクロックサイクルの半分の時間幅となっている。これによって、パラレル形式で転送する場合と同じスループットが得られる。
次に、図7〜図10を参照して、1:2デマルチプレクサの構成および動作について説明する。
図7Aは、1:2デマルチプレクサ122の構成を示す回路図である。同図を参照すると、1:2デマルチプレクサ122は、ハイスルーラッチLH1と、フリップフロップFF1およびFF2とを有する。ハイスルーラッチLH1と、フリップフロップFF1およびFF2には、位相が同一のクロック信号が入力される。ここでハイスルーラッチ(High−through latch)とは、クロックClkがハイレベル(1)の時にデータDを信号Qとしてそのまま出力し、ロウレベル(0)の時に値を保持するラッチのことをいう。一般的なハイスルーラッチは、図7Bに示すように、クロックClkで開閉される入力部のゲートとそれに続くインバータを使ったループとから構成される。
ハイスルーラッチLH1にはスイッチファブリック130からの信号、例えば、書き込みデータ信号が入力される。ハイスルーラッチLH1から出力された信号は、フリップフロップFF1に入力される。フリップフロップFF1から出力された書き込みデータ信号は、上側メモリマクロ110Aに入力される。一方、フリップフロップFF2にはスイッチファブリック130からの書き込みデータ信号が直接入力される。そして、フリップフロップFF2から出力された信号は、下側メモリマクロ110Bに入力される。
図8は、ハイスルーラッチLH1の動作を示す真理値表である。同図を参照すると、ハイスルーラッチLH1は、クロック信号Clkがハイレベル(1)の場合、入力信号Dをそのまま信号Qとして出力し、その出力値を保持する。クロック信号Clkがローレベル(0)の場合、ハイスルーラッチLH1は保持している値Qを出力する。
図9は、フリップフロップFF1およびFF2の動作を示す真理値表である。同図を参照すると、フリップフロップFF1およびFF2はクロック信号Clkの立ち上がりエッジで、入力信号Dをそのまま信号Qとして出力し、その出力値Qを保持する。そして、クロック信号Clkの立ち下がりエッジで、フリップフロップFF1およびFF2は保持している値Qを出力する。
このように回路を構成することにより、クロック信号Clkがハイレベルの場合、フリップフロップFF1はハイスルーラッチLH1からの出力値を透過的に出力し、クロック信号Clkがローレベルの間、保持値を出力する。クロック信号Clkが立ち上がりエッジになると、フリップフロップFF1およびFF2は入力信号を透過的に出力し、その出力値を保持する。
ハイスルーラッチLH1によりシリアル形式の書き込みデータがラッチされるので、各メモリマクロ110は、書き込むべきデータのみを取り込むことができる。また、1:2デマルチプレクサ122はフリップフロップFF1、FF2で出力信号の値を保持するので、パラレル信号の転送速度は、シリアル−パラレル変換およびパラレル−シリアル変換前の速度に戻り、メモリマクロ110A、110Bにおける信号処理に不都合が生じることはない。
図10は、1:2デマルチプレクサ122の動作を示す信号波形図である。ハイスルーラッチLH1は、クロックがハイレベルの期間に入力したスイッチファブリック130からのシリアル形式の書き込みデータ信号を取り込む。このとき取り込むデータ信号は書き込みデータ信号Dのクロックサイクルの前半分のデータ信号である。ハイスルーラッチLH1は、クロックがハイレベルの期間はそのまま取り込んだデータ信号を出力し、クロックがロウレベルの期間も保持して出力する(ハイスルーラッチ出力LQ)。このハイスルーラッチ出力LQをフリップフロップFF1はクロックの立ち上がりエッジで取り込み、上側メモリマクロ110Aへのパラレル信号AQとして出力する。一方、フリップフロップFF2はクロックがロウレベルの期間に入力された書き込みデータ信号Dをクロックの立ち上がりエッジで取り込み、下側メモリマクロ110Bへのパラレル信号BQとして出力する。図10からわかるように、1:2デマルチプレクサ122によるパラレル変換では、書き込みデータ信号がパラレル−シリアル変換およびシリアル−パラレル変換される前の時間幅に戻される。
図11〜図14を参照して、スイッチファブリック130の構成について説明する。
図11は、スイッチファブリック130の構成を示すブロック図である。同図を参照すると、スイッチファブリック130は、読み出しデータ制御回路131および書き込みデータ制御回路132を有する。
図12は、読み出しデータ制御回路131の構成を示す回路図である。同図を参照すると、読み出しデータ制御回路131は、4つのセレクタSE1、SE2、SE3、およびSE4と、4つの選択論理回路LG1、LG2、LG3、およびLG4とを有する。
セレクタSE1、SE2、SE3、およびSE4には、それぞれ、隣り合う上下左右のスイッチファブリック130U、130D、130L、130Rのうち、自身が出力する方向にあるもの以外の3つのスイッチファブリックから読み出されたデータ信号が入力される。これに、変換部120を経由してメモリマクロ110から読み出されたデータ信号を加えた合計4つのデータ信号がセレクタSEに入力される。セレクタSE1は選択論理回路LG1の制御に従い、4つの入力データ信号のうちいずれかを選択して、上側のスイッチファブリック130Uへ出力する。セレクタSE2、SE3、およびSE4は、選択論理回路LG2、LG3、およびLG4の制御に従い、入力データ信号のうちいずれかを選択する。そして各セレクタは、左側のスイッチファブリック130L、下側のスイッチファブリック130D、および右側のスイッチファブリック130Rへ選択したデータ信号をそれぞれ出力する。
選択論理回路LG1〜LG4は、例えば、以下のようにして入力信号のいずれかを選択する。まず、読み出しを行うメモリマクロ110を特定するアドレスの上位ビットをメモリマクロの2次元アレイにおける横方向番地MXとし、下位ビットをメモリマクロの2次元アレイにおける縦方向番地MYとする。そして、これらの値をスイッチファブリック自身の横方向番地SX、縦方向番地SYと比較して入力信号のいずれかを選択する。
図13は、選択論理回路の動作を示すフローチャートである。この動作は、スイッチファブリック130の読み出しデータ制御回路131に読み出しを行うメモリマクロのアドレスが入力されたときに開始する。同図を参照すると、選択論理回路は読み出しを行うメモリマクロのアドレスを読み出し、その上位ビットをメモリマクロの横方向番地MX、下位ビットをメモリマクロの縦方向番地MYとする(ステップS1)。
選択論理回路は、MXおよびMYと予め定義されたスイッチファブリック自身の横方向番地SXおよび縦方向番地SYと比較し、まず、MXがSXより大きいか否かを判断する(ステップS3)。MXがSXより大きければ(ステップS3:YES)、選択論理回路LG1〜LG3はセレクタSE1〜SE3に右側のスイッチファブリック130Rからの入力信号を選択して出力させる(ステップS5)。
MXがSXより大きくなければ(ステップS3:NO)、MXがSXより小さいか否かを判断する(ステップS7)。MXがSXより小さければ(ステップS7:YES)、選択論理回路LG1、LG3、またはLG4は、セレクタSE1、SE3、またはSE4に、左側のスイッチファブリック130Lからの入力信号を選択して出力させる(ステップS9)。
MXがSXより小さくなければ(ステップS7:NO)、MYがSYより大きいか否かを判断する(ステップS11)。MYがSYより大きければ(ステップS11:YES)、選択論理回路LG2、LG3、またはLG4は、セレクタSE2、SE3、またはSE4に、上側のスイッチファブリック130Uからの入力信号を選択して出力させる(ステップS13)。
MYがSYより大きくなければ(ステップS11:NO)、MYがSYより小さいか否かを判断する(ステップS15)。MYがSYより小さければ(ステップS15:YES)、選択論理回路LG1、LG2、またはLG4は、セレクタSE1、SE2、またはSE4に、下側のスイッチファブリック130Dからの入力信号を選択して出力させる(ステップS17)。
MYがSYより小さくなければ(ステップS15:NO)、選択論理回路LG1〜LG4は、セレクタSE1〜SE4に、変換部120を経由したメモリマクロ110からの入力信号を選択して出力させる(ステップS19)。
ステップS5、S9、S13、S17、またはS19の後、選択論理回路LG1〜LG4は、動作を終了する。
図14は、書き込みデータ制御回路132の構成を示す回路図である。同図を参照すると、書き込みデータ制御回路132は、5つのセレクタSE5、SE6、SE7、SE8、およびSE9と、5つの選択論理回路LG5、LG6、LG7、LG8、およびLG9とを有する。
セレクタSE5、SE6、SE7、およびSE8には、それぞれ、隣り合う上下左右のスイッチファブリック130U、130D、130L、130Rのうち、自身が出力する方向のもの以外の3つのスイッチファブリックからのデータ信号が入力される。メモリマクロ110に出力するセレクタSE9には、隣り合う上下左右のスイッチファブリック130U、130D、130L、130Rからのデータ信号が入力される。
セレクタSE5、SE6、SE7、およびSE8は、それぞれ選択論理回路LG5、LG6、LG7、およびLG8の制御に従い、出力方向からの入力信号を除いた3つの入力信号のうちいずれかを選択して、それぞれ、上側、左側、下側、および右側のスイッチファブリック130へ選択した信号を出力する。セレクタSE9は選択論理回路LG9の制御に従い、上下左右のスイッチファブリック130からの4つの入力データ信号のうちいずれかを選択し、変換部120を経由してメモリマクロ110に選択したデータ信号を出力する。
図15は、メモリ入出力部140の構成を示す回路図である。同図を参照すると、メモリ入出力部140は、1個の1:2デマルチプレクサ141と、3個の2:1マルチプレクサ142とを有する。そして、これらの1:2デマルチプレクサ141および2:1マルチプレクサ142には、位相が同一のクロック信号が入力される。
1:2デマルチプレクサ141はスイッチファブリック130から出力されたシリアル信号である読み出しデータ信号を、上側ロジックマクロ151Aと下側ロジックマクロ151Bへの2系統からなる16ビットの読み出しデータ信号にパラレル変換する。1:2デマルチプレクサ141はパラレル変換した読み出しデータ信号を上側ロジックマクロ151Aおよび下側ロジックマクロ151Bに入力する。
上側ロジックマクロ151Aから出力された16ビットの書き込みデータ信号と、下側ロジックマクロ151Bから出力された16ビットの書き込みデータ信号とが、2:1マルチプレクサ142によってシリアル変換される。このシリアル化された書き込みデータ信号がスイッチファブリック130に入力され、メモリマクロ110に転送される。
また、上側ロジックマクロ151Aから出力された14ビットのアドレス信号と、下側ロジックマクロ151Bから出力された14ビットのアドレス信号とが、2:1マルチプレクサ142によってシリアル変換され、スイッチファブリック130に入力される。
同様に、上側ロジックマクロ151Aから出力された2ビットのコマンド信号と、下側ロジックマクロ151Bから出力された2ビットのコマンド信号とが、2:1マルチプレクサ142によってシリアル変換され、スイッチファブリック130に入力される。
ここで、1:2デマルチプレクサ141の構成は、図7に示した1:2デマルチプレクサ122の構成と同様である。2:1マルチプレクサ142の構成は、図4に示した2:1マルチプレクサ121の構成と同様である。
なお、本実施形態ではメモリマクロ110は、1kワード、16ビットのSRAMマクロとしたが、任意のワード、ビット構成のものであってよい。
本実施形態では、メモリマクロ110内のメモリはSRAMマクロとしたが、これをDRAM(Dynamic Random Access Memory)としてもよい。DRAMとすれば、DRAMは回路面積が小さいために、より大容量のメモリを搭載できる。また、メモリマクロのメモリは、フラッシュメモリやMRAM(Magnetic RAM)やReRAM(Resistance Random Access Memory)といった不揮発性メモリとしてもよい。不揮発性メモリを用いることで、一時的に使われないメモリ領域の電源を止めて省電力モードとすることが可能である。
本実施形態では、メモリマクロを4×4の2次元アレイ状に配置したが、アレイサイズは他の構成であってもよい。
本実施形態では、メモリ入出力部140が、読み出しデータ(シリアル信号)のパラレル変換と、書き込みデータ(パラレル信号)のシリアル変換を行う構成としているが、これらの変換をロジックマクロ151が行う構成としてもよい。
本実施形態では、2:1マルチプレクサ121が、トランジスタ(TR1、TR2、TR3、およびTR4)や論理ゲート(N1、B1)を使用して、パラレル信号のシリアル変換を行う構成とした。しかし、2:1マルチプレクサ121は、これらの部品または回路を用いる構成に限られない。図6のタイミングチャートで示したように、スループットを低下させないように、メモリマクロから出力された信号を時分割でシリアル信号に多重化し、複数倍の速度で転送する機能が実現できれば、他の回路または部品を使用してシリアル変換を行ってもよい。
本実施形態では、1:2デマルチプレクサ122が、ハイスルーラッチ(LH1)やフリップフロップ(FF1、FF2)を使用して、シリアル信号のパラレル変換を行う構成としているが、1:2デマルチプレクサ122は、これらの部品または回路を使用する構成に限られない。図10のタイミングチャートで示したように、パラレル変換において、パラレル信号を出力する周期を、シリアル変換前の周期に戻すことができるのであれば、他の部品または回路を使用してパラレル変換してもよい。
本実施形態では、2個のメモリマクロ110A、110Bが1個のスイッチファブリック130を共有する構成としているが、2個より多くの複数のメモリマクロ(回路ブロック)が1個のスイッチファブリックを共有する構成としてもよい。
以上説明したように、本実施形態によれば、メモリマクロのような複数の回路ブロックが入出力する信号をシリアル信号に変換して、このシリアル信号をスイッチファブリックが転送するので、複数の回路ブロックで1個のスイッチファブリックを共有できる。その結果、スイッチファブリックおよびスイッチファブリック周辺の配線による面積オーバーヘッドを小さくできる。そして、面積オーバーヘッドの低減により、スイッチファブリック等の配置コストが低減する。また、限られたチップ面積により多くの配線を確保できるので、プログラマブルデバイスの性能を向上できる。
例えば、本実施形態のプログラマブルメモリデバイス100の場合、2個のメモリマクロ110A、110Bで1個のスイッチファブリック130を共有している。そのため、メモリマクロごとにスイッチファブリックを設ける場合と比較して、スイッチファブリックの数は、半分で済み、スイッチファブリック間の水平、垂直方向の2次元メッシュ状の配線数も半減する。以上より、これらの面積オーバーヘッドが非常に小さくなる。
変換部120は、パラレル−シリアル変換において、複数のメモリマクロ110から出力された信号を、その転送速度の倍の速度で、スイッチファブリック130に転送する。そのため、パラレル−シリアル変換によっても、プログラマブルメモリデバイス100のスループットが低下することはない。
変換部120は、シリアル−パラレル変換において、スイッチファブリック130から出力されたシリアル信号の転送速度を、変換前の速度に戻して複数のメモリマクロ110にそれぞれ入力するので、メモリマクロでの信号処理に支障をきたすことはない。
変換部120は1:2デマルチプレクサ122を有し、1:2デマルチプレクサ122はスイッチファブリック130から出力された所定の時点の信号を保持するハイスルーラッチLH1と、フリップフロップFF1およびFF2とを有する。フリップフロップFF1およびFF2は、スイッチファブリック130から出力された信号とハイスルーラッチLH1で保持された信号とを互いに同じ時点で格納し、格納した各信号をメモリマクロ110A、110Bのそれぞれに入力する。これより、極めて簡易な構成でシリアル−パラレル変換を実現できる。
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。図16は、本実施形態のプログラマブルメモリデバイスが有する変換部が備える1:2デマルチプレクサ222の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる点で第1の実施形態のプログラマブルメモリデバイスと相違する。
本実施形態の1:2デマルチプレクサ222は、シリアル信号をパラレル信号に変換する回路において、フリップフロップFF1およびFF2を有さず、ハイスルーラッチLH1のみを有する。ハイスルーラッチLH1は、クロック信号がローレベルの間、スイッチファブリックからの信号をラッチする。また本実施形態の1:2デマルチプレクサ222は、クロック入力端子を備えたメモリマクロであるクロック同期型メモリマクロを有する。図16の上側クロック同期型メモリマクロ119Aは、ハイスルーラッチLH1から出力された信号をクロック信号に同期して取り込む。図16の下側クロック同期型メモリマクロ119Bは、スイッチファブリック130から出力された信号をクロック信号に同期して取り込む。
以上説明したように本実施形態によれば、変換部は、スイッチファブリックから出力された所定の時点の信号をハイスルーラッチLH1により保持する。そして、同期型メモリマクロ119A、119Bがスイッチファブリック130から出力された信号またはハイスルーラッチLH1が保持した信号を互いに同じ時点で格納する。そのため、フリップフロップが不要となり、より簡易な構成でシリアル信号をパラレル信号に変換でき、製造コストが低減する。
[第3の実施形態]
次に、本発明の第3の実施形態について説明する。図17は、本実施形態のプログラマブルメモリデバイスが有する変換部220の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる以外は、第1の実施形態のプログラマブルメモリデバイス100と同様の構成である。
本実施形態の変換部220は、シリアル信号をパラレル信号に変換する回路において、フリップフロップFF1、FF2、およびハイスルーラッチLH1の代わりに、NOTゲートN2を有する。NOTゲートN2は、クロック信号を反転して下側クロック同期型メモリマクロ119Bに出力する。また、スイッチファブリック130から出力された書き込みデータ信号を分岐し、上側クロック同期型メモリマクロ119Aおよび下側クロック同期型メモリマクロ119Bに入力する。
各クロック同期型メモリマクロ119A、119Bは互いに逆位相のクロック信号に同期して書き込みデータ信号を取り込むので、それぞれに書き込むべきデータ信号のみを取り出すことができる。
以上説明したように、本実施形態によれば、変換部220が互いに逆位相のクロック信号をメモリマクロ119A、119Bに出力し、各メモリマクロ119A、119Bは、これらのクロック信号に同期して信号を取り込む。よって、フリップフロップ回路やハイスルーラッチ回路が不要となる。そのため、より簡易な構成でシリアル信号をパラレル信号に変換できるので、製造コストが低減する。
[第4の実施形態]
次に、本発明の第4の実施形態について説明する。図18は、本実施形態のスイッチファブリック230の構成を示す回路図である。同図を参照すると、本実施形態のスイッチファブリック230は、読み出しデータ信号を制御する機能と、書き込みデータ信号を制御する機能とをともに有する1つの回路を実装する点で、第1の実施形態と異なる。
図18を参照すると、スイッチファブリック230は、第1の実施形態における読み出しデータ制御回路131および書き込みデータ制御回路132の代わりに、セレクタSE1c、SE2c、SE3c、SE4c、およびSE5cと、選択論理回路LG1c、LG2c、LG3c、LG4c、およびLG5cと、を有する。
すなわち、スイッチファブリックでの書き込みデータと読み出しデータとは入力方向あるいは出力方向が異なる。そのため、同一のメモリマクロで同時にメモリ読み出しとメモリ書き込みの動作を行わない場合には、接続方向を制御する、読み出しデータ制御回路および書き込みデータ制御回路を一つの回路で兼用することが可能である。
セレクタSE1c、SE2c、SE3c、およびSE4cには、それぞれ、出力方向を除き、隣接する3つのスイッチファブリックからの読み出しデータ信号および書き込みデータ信号と、メモリブロック110からのデータ信号とが入力される。セレクタSE1c、SE2c、SE3c、およびSE4cは、選択論理回路LG1c、LG2c、LG3c、LG4c、およびLG5cの制御に従って、4つの入力信号のうち、いずれか1つを選択してスイッチファブリックに出力する。
セレクタSE5cには、隣接する4つのスイッチファブリック230U、230D、230L、230Rからの読み出しデータ信号または書き込みデータ信号が入力される。セレクタSE5cは、選択論理回路LG5cの制御に従って、4つの入力信号のうち、いずれか1つを選択して変換部120に出力する。
以上説明したように、本実施形態によれば、書き込みデータ信号制御用の処理と、読み込みデータ信号制御用の処理とを一の回路で兼用できる。そのため、スイッチファブリックの部品点数を少なくし、あるいはスイッチファブリックの回路の規模を小さくすることができる。
[第5の実施形態]
次に、本発明の第5の実施形態について説明する。図19は、本実施形態のプログラマブルメモリデバイス300の構成を示すブロック図である。同図を参照すると、本実施形態のプログラマブルメモリデバイス300は、4個のメモリマクロ310で1個のスイッチファブリック330を共有する点で、第1の実施形態によるプログラマブルメモリデバイス100と異なる。ここで、1個のスイッチファブリック330を共有する4つのメモリマクロを、それぞれ左上メモリマクロ310A、右上メモリマクロ310B、左下メモリマクロ310C、右下メモリマクロ310Dとする。
図19を参照すると、プログラマブルメモリデバイス300は、変換部120の代わりに変換部320を有し、メモリ入出力部140の代わりにメモリ入出力部340を有する以外は、第1の実施形態のプログラマブルメモリデバイス100と同様の構成である。すなわち、スイッチファブリック330は2次元アレイ状に配列され、一部のスイッチファブリック330はメモリ入出力部340を介してロジックデバイス350を構成するロジックマクロ351と接続している。本実施形態においても、図19に示すようにメモリマクロ310が4×4の2次元アレイ状に16個配列した構成とした。
変換部320は、第1の実施形態で用いた2:1マルチプレクサ及び1:2デマルチプレクサの代わりに、1個の4:1マルチプレクサ321と、3個の1:4デマルチプレクサ322とを有する。
図20は、本実施形態の4:1マルチプレクサ321の構成を示す回路図である。同図を参照すると、4:1マルチプレクサ321は、ANDゲートAD1、AD2、AD3、およびAD4と、トランジスタTR5、TR6、TR7、およびTR8と、バッファB2とを有する。
ANDゲートAD1には、クロック信号と、そのクロック信号の位相を90度進めたクロック信号(以下、「90°シフトクロック信号」という)を反転した信号とが入力される。ANDゲートAD2には、クロック信号と、90°シフトクロック信号とが入力される。ANDゲートAD3には、クロック信号を反転した信号と、90°シフトクロック信号とが入力される。ANDゲートAD4には、クロック信号を反転した信号と、90°シフトクロック信号を反転した信号とが入力される。
ANDゲートAD1、AD2、AD3、およびAD4は、入力信号の論理積を、それぞれトランジスタTR5、TR6、TR7、およびTR8のゲート電極へ出力する。
トランジスタTR5のソース電極には、左上メモリマクロ310Aからの読み出しデータが入力される。トランジスタTR6のソース電極には、右上のメモリマクロ310Bからの読み出しデータが入力される。トランジスタTR7のソース電極には、左下のメモリマクロ310Cからの読み出しデータが入力される。トランジスタTR8のソース電極には、右下メモリマクロ310Dからの読み出しデータが入力される。
トランジスタTR5、TR6、TR7、およびTR8は、ゲート電極に入力された信号がハイレベルのとき、ソース電極に入力された信号をバッファB1に出力する。
バッファB2は、入力信号の電圧レベルを調整してスイッチファブリック330に出力する。
図21は、4:1マルチプレクサ321の動作を示すカルノー図である。同図を参照すると、クロック信号Clk1がハイレベル(1)、かつ90°シフトクロック信号Clk2がローレベル(0)の場合、トランジスタTR5のみがONとなる。このため、4:1マルチプレクサ321は、左上メモリマクロ310Aからの読み出しデータ(UL)を、スイッチファブリック330に出力する。
クロック信号Clk1、90°シフトクロック信号Clk2がともにハイレベル(1)の場合、トランジスタTR6のみがONとなる。このため、4:1マルチプレクサ321は、右上のメモリマクロ310Bからの読み出しデータ(UR)を、スイッチファブリック330に出力する。
クロック信号Clk1がローレベル(0)、かつ90°シフトクロック信号Clk2がハイレベル(1)の場合、トランジスタTR7のみがONとなる。このため、4:1マルチプレクサ321は、左下のメモリマクロ310Cからの読み出しデータ(LL)を、スイッチファブリック330に出力する。
クロック信号Clk1、90°シフトクロック信号Clk2がともにローレベル(0)の場合、トランジスタTR8のみがONとなる。このため、4:1マルチプレクサ321は、右下メモリマクロ310Dからの読み出しデータ(LR)を、スイッチファブリック330に出力する。
図22は、4:1マルチプレクサ321の動作を示す信号波形図である。同図を参照すると、クロック信号Clk1がハイレベル、かつ90°シフトクロック信号Clk2がローレベルの場合、4:1マルチプレクサ321は左上メモリマクロ310Aからの読み出しデータULをスイッチファブリック330に信号Qとして出力する。
クロック信号Clk1、90°シフトクロック信号Clk2がともにハイレベルの場合、4:1マルチプレクサ321は右上メモリマクロ310Bからの読み出しデータURをスイッチファブリック330に信号Qとして出力する。
クロック信号Clk1がローレベル、かつ90°シフトクロック信号Clk2がハイレベルの場合、4:1マルチプレクサ321は左下メモリマクロ310Cからの読み出しデータLLをスイッチファブリック330に信号Qとして出力する。
クロック信号Clk1、90°シフトクロック信号Clk2がともにローレベルの場合、4:1マルチプレクサ321は右下メモリマクロ310Dからの読み出しデータをスイッチファブリック330に信号Qとして出力する。
このように、4:1マルチプレクサ321は読み出しデータ信号をシリアル変換する際に、シリアル信号の転送速度を変換前の4倍の速度にしているので、シリアル変換によりスループットが低下することはない。
図23は、本実施形態の1:4デマルチプレクサ322の構成を示す回路図である。同図を参照すると、1:4デマルチプレクサ322はハイスルーラッチLH2およびLH3とフリップフロップFF3、FF4、FF5、FF6、およびFF7とを有する。
フリップフロップFF3およびFF7と、ハイスルーラッチLH2およびLH3とにスイッチファブリック330からの書き込みデータ信号が入力される。
フリップフロップFF3は90°シフトクロック信号Clk2が立ち上がりエッジのとき、入力信号をフリップフロップFF4に透過的に出力し、90°シフトクロック信号Clk2が立ち下がりエッジのとき保持値を出力する。フリップフロップFF4はクロック信号Clk1が立ち上がりエッジのとき、書き込みデータ信号を左上メモリマクロ310Aに透過的に出力し、その出力を所定時間保持する。
ハイスルーラッチLH2はクロック信号Clk1がハイレベルの場合、入力信号をフリップフロップFF5に透過的に出力し、クロック信号Clk1がローレベルの場合、保持値を出力する。フリップフロップFF5は、クロック信号Clk1が立ち上がりエッジになると、書き込みデータ信号を右上メモリマクロ310Bに透過的に出力し、その出力を所定時間保持する。
ハイスルーラッチLH3は90°シフトクロック信号Clk2がハイレベルの場合、書き込みデータ信号をフリップフロップFF6に透過的に出力し、90°シフトクロック信号Clk2がローレベルの場合、保持値を出力する。フリップフロップFF6は、クロック信号Clk1が立ち上がりエッジになると、書き込みデータ信号を左下メモリマクロ310Cに透過的に出力し、クロック信号Clk1が立ち下がりエッジになると、保持値を出力する。
フリップフロップFF7はクロック信号Clk1が立ち上がりエッジになると、書き込みデータ信号を右下メモリマクロ310Dに透過的に出力し、その出力を所定時間保持する。
このように、位相を90度ずらしたクロック信号Clk2にそれぞれ同期したハイスルーラッチLH2、LH3で入力信号をラッチするので、各メモリマクロ310はスイッチファブリック330から出力されたシリアル信号から書き込むべきデータ信号のみを取り込むことができる。
1:4デマルチプレクサ322はフリップフロップ(FF4、FF5、FF6、およびFF7)で出力値を保持するので、スイッチファブリック330からのシリアル信号の転送速度を変換前の速度に戻すことができる。
図24は、1:4デマルチプレクサ322の動作を示す信号波形図である。同図を参照すると、1:4デマルチプレクサ322は、フリップフロップFF3の90°シフトクロック信号Clk2による出力FFQを、クロック信号Clk1に同期させて左上メモリマクロ310Aへの書き込みデータAQとして出力する。また、ハイスルーラッチLH2のクロック信号Clk1による出力LHQ1を、クロック信号Clk1に同期させて右上メモリマクロ310Bへの書き込みデータBQとして出力する。また、ハイスルーラッチLH3の90°シフトクロック信号Clk2による出力LHQ2を、クロック信号Clk1に同期させて左下メモリマクロ310Cへの書き込みデータCQとして出力する。また、スイッチファブリック330から出力された書き込みデータDを、クロック信号Clk1に同期させて右下メモリマクロ310Dへの書き込みデータDQとして出力する。
以上説明したように、本実施形態によれば、4個のメモリマクロ310が1個のスイッチファブリック330を共有できるので、スイッチファブリックおよび配線の面積オーバーヘッドが更に低減する。
[第6の実施形態]
次に、本発明の第6の実施形態について説明する。図25は、本実施形態のプログラマブルメモリデバイスが有する変換部が備える1:4デマルチプレクサ323の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる点で第5の実施形態のプログラマブルメモリデバイスと相違する。
本実施形態の1:4デマルチプレクサ323は、シリアル信号をパラレル信号に変換する回路において、フリップフロップFF4、FF5、FF6、およびFF7を有さず、フリップフロップFF3と、ハイスルーラッチLH2およびLH3とのみを有する。また本実施形態の1:4デマルチプレクサ323は、クロック入力端子を備えたメモリマクロであるクロック同期型メモリマクロを有する。図25の左上クロック同期型メモリマクロ311A、右上クロック同期型メモリマクロ311B、左下クロック同期型メモリマクロ311C、および右下クロック同期型メモリマクロ311Dは、クロック信号Clk1に同期して1:4デマルチプレクサ323から出力された信号を取り込む。
このように回路を構成することにより、各メモリマクロは、書き込むべきデータのみを取り込むことができる。
以上説明したように本実施形態によれば、変換部がスイッチファブリック330から出力された所定の時点の信号をハイスルーラッチLH2、LH3により保持する。そして、メモリマクロ311A、311B、311C、311Dがスイッチファブリック330から出力されたデータ信号、フリップフロップFF3およびハイスルーラッチLH2、LH3が出力するデータ信号を互いに同じ時点で格納する。そのため、データ出力を制御するフリップフロップFF4〜FF7が不要となり、より簡易な構成でシリアル信号をパラレル信号に変換できるので、製造コストが低減する。
[第7の実施形態]
次に、本発明の第7の実施形態について説明する。図26は、本実施形態のプログラマブルメモリデバイスが有する変換部が備える1:4デマルチプレクサ324の構成を示す回路図である。同図を参照すると、本実施形態のプログラマブルメモリデバイスは、変換部およびメモリマクロの構成が異なる以外は、第6の実施形態のプログラマブルメモリデバイスと同様の構成である。
本実施形態の1:4デマルチプレクサ324は、フリップフロップ(FF4、FF5、FF6、FF7、およびFF8)およびハイスルーラッチ(LH2、LH3)を有さず、スイッチファブリック330からの書き込みデータを分岐して、各クロック同期型メモリマクロへ出力する。また、1:4デマルチプレクサ324は、所定のクロック信号Clk1を左上クロック同期型メモリマクロ311Aに出力する。さらに1:4デマルチプレクサ324は、クロック信号Clk1と90度、180度、270度位相が異なるクロック信号とを、右上クロック同期型メモリマクロ311B、左下クロック同期型メモリマクロ311C、および右下クロック同期型メモリマクロ311Dへそれぞれ出力する。
本実施形態の左上クロック同期型メモリマクロ311Aはクロック信号Clk1に同期して1:4デマルチプレクサ324により入力された信号を取り込む。本実施形態の右上クロック同期型メモリマクロ311Bはクロック信号Clk1と比較して90度位相が異なるクロック信号にそれぞれ同期して、1:4デマルチプレクサ324により入力された信号を取り込む。さらに、左下クロック同期型メモリマクロ311Cおよび右下クロック同期型メモリマクロ311Dは、クロック信号Clk1と比較して180度、270度位相が異なるクロック信号にそれぞれ同期して、1:4デマルチプレクサ324により入力された信号を取り込む。
各クロック同期型メモリマクロは、互いに位相が異なるクロック信号に同期して信号を取り込むので、それぞれに書き込むべきデータのみを取り出すことができる。
以上説明したように、本実施形態によれば、変換部を構成する1:4デマルチプレクサ324が互いに位相が異なるクロック信号をクロック同期型メモリマクロ311A、311B、311C、311Dに出力する。そして、各クロック同期型メモリマクロは、これらのクロック信号に同期して信号を取り込む。そのため、フリップフロップおよびハイスルーラッチが不要となり、より簡易な構成でシリアル信号をパラレル信号に変換でき、製造コストが低減する。
[第8の実施形態]
次に、本発明の第8の実施形態について説明する。図27は、本実施形態の積層デバイス400の構成を示す斜視図である。同図を参照すると、ロジックデバイスが配置されたロジックデバイス基板410に、プログラマブルメモリデバイスが配置されたプログラマブルメモリデバイス基板420が積層されている点で第1の実施形態と異なる。ロジックデバイス基板410はメモリ入出力部440と重なるロジック入出力部430を有し、これらの入出力部間でデータが送受信される。
第1の実施形態で示したように、プログラマブルメモリデバイス100とロジックデバイス150を同一基板上に集積する場合には、メモリ入出力部140はプログラマブルメモリデバイス100の周囲に配置することとした。しかし、本実施形態では、プログラマブルメモリデバイスとロジックデバイスを別々の基板に配置し、それらの基板を積層することとしているので、メモリ入出力部をプログラマブルメモリデバイスの周囲だけでなく内部にも配置することが可能となる。
以上説明したように、本実施形態によれば、ロジックデバイス基板410にプログラマブルメモリデバイス基板420を積層させるので、メモリ入出力部440をプログラマブルメモリデバイス基板420の内部にも配置することができる。そのため、基板間のデータ転送量を大きくすることができる。
[第9の実施形態]
次に、本発明の第9の実施形態について説明する。図28は、本実施形態のプログラマブルプロセッサデバイス500の構成を示すブロック図である。同図を参照すると、本実施形態のプログラマブルプロセッサデバイス500は、メモリマクロの代わりにプロセッサ551を回路ブロックとして有する点で、第1の実施形態と異なる。
図28を参照すると、本実施形態のプロセッサ551は、メモリマクロの代わりに4×4の2次元アレイ状に配置されたRISC(Reduced Introduction Set Computer)型のプロセッサ551を有する。プログラマブルプロセッサデバイス500の周囲には、メモリマクロ511からなるメモリデバイス510が配置されている。
プロセッサ551からプロセッサ入出力部540まで、あるいはプロセッサ入出力部540からプロセッサ551までデータ信号を転送するための2次元メッシュ状の配線が形成される。配線の交差部分には配線の上下左右の信号転送方向を制御するためのスイッチファブリック530が配置されている。スイッチファブリック530を上下2つのプロセッサ551で共有し、プロセッサ551からのデータ信号を変換部520が備える2:1マルチプレクサでシリアル変換する。本実施形態では、4×4の16個のプロセッサ551に対して、2×4の8個のスイッチファブリック530が配置される。すなわち、すべてのプロセッサごとにスイッチファブリックを配置する場合と比べ、スイッチファブリック530の個数は半減する。また、スイッチファブリック530間を接続する2次元メッシュ配線については、水平方向の配線数が半減する。
以上説明したように、本実施形態によれば、プログラマブルプロセッサデバイスにおけるスイッチファブリックおよび配線の面積オーバーヘッドを低減することができる。
本発明は上記実施形態に限定されることなく、特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲内に含まれるものであることはいうまでもない。
この出願は、2008年9月16日に出願された日本出願特願2008−236783を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、プロセッサやメモリからなる回路ブロックを複数集積した半導体プログラマブルデバイスに適用することができる。

Claims (10)

  1. 信号を入出力する複数の回路ブロックと、
    前記回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、
    複数の前記回路ブロックから出力された複数の信号を順次1つの信号にパラレル−シリアル変換した信号を前記スイッチファブリックに使用させ、前記スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を複数の前記回路ブロックに順次使用させる変換部と、を有し、
    前記変換部は、前記パラレル−シリアル変換で得られる信号の転送速度を、前記回路ブロックから出力された信号の転送速度の複数倍にし、前記シリアル−パラレル変換で得られる信号の転送速度を、前記スイッチファブリックから出力された信号の転送速度の複数分の1倍にする半導体プログラマブルデバイス。
  2. 前記変換部の前記シリアル−パラレル変換は、
    前記スイッチファブリックから出力された所定の時点の信号を保持する保持回路と、
    前記スイッチファブリックから出力された信号と前記保持回路で保持された信号とを互いに同じ時点で格納し、格納した各信号を前記回路ブロックのそれぞれに入力する複数の格納回路と、を備えたシリアル−パラレル変換回路により実現される、請求項1に記載の半導体プログラマブルデバイス。
  3. 前記変換部の前記シリアル−パラレル変換は、
    前記スイッチファブリックから出力された所定の時点の信号を前記保持回路により保持し、前記複数の回路ブロックが前記スイッチファブリックから出力された信号または前記保持回路が保持した信号を互いに同じ時点で格納することで実現される、請求項2に記載の半導体プログラマブルデバイス。
  4. 前記変換部の前記シリアル−パラレル変換は、
    前記回路ブロックの動作に同期したクロック信号と、該クロック信号と位相の異なるシフトクロック信号とを用いて、前記スイッチファブリックから出力された信号に時分割で多重化された複数の信号を取り出すデマルチプレクサ回路により実現される、請求項1に記載の半導体プログラマブルデバイス。
  5. 前記変換部の前記シリアル−パラレル変換は、
    該変換部が位相の異なる複数のクロック信号を前記複数の回路ブロックに出力し、該複数の回路ブロックが、前記スイッチファブリックから出力された信号を該複数のクロック信号に同期して取り込むことにより実現される、請求項1に記載の半導体プログラマブルデバイス。
  6. 前記スイッチファブリックにより転送された信号を複数の信号にシリアル−パラレル変換し、変換した該複数の信号を他のデバイスに入出力するデバイス入出力部を更に有する請求項1から5のいずれか一項に記載の半導体プログラマブルデバイス。
  7. 前記半導体プログラマブルデバイスは、前記他のデバイスに積層されている、請求項6に記載の半導体プログラマブルデバイス。
  8. 前記複数の回路ブロックのうち、1以上はメモリマクロである、請求項1から7のいずれか一項に記載の半導体プログラマブルデバイス。
  9. 前記複数の回路ブロックのうち、1以上はプロセッサである、請求項1から8のいずれか一項に記載の半導体プログラマブルデバイス。
  10. 信号を入出力する複数の回路ブロックと、前記回路ブロックが入出力する信号を相互に転送するスイッチファブリックと、を備える半導体プログラマブルデバイスの制御方法であって、
    複数の前記回路ブロックから出力された複数の信号を順次1つの信号にパラレル−シリアル変換した信号を前記スイッチファブリックに使用させ、前記スイッチファブリックから出力された信号をシリアル−パラレル変換した複数の信号を複数の前記回路ブロックに順次使用させる変換ステップを有し
    前記変換ステップにおいて、前記パラレル−シリアル変換で得られる信号の転送速度を、前記回路ブロックから出力された信号の転送速度の複数倍にし、前記シリアル−パラレル変換で得られる信号の転送速度を、前記スイッチファブリックから出力された信号の転送速度の複数分の1倍にする半導体プログラマブルデバイスの制御方法。
JP2010529831A 2008-09-16 2009-09-15 半導体プログラマブルデバイスおよびその制御方法 Expired - Fee Related JP5365637B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010529831A JP5365637B2 (ja) 2008-09-16 2009-09-15 半導体プログラマブルデバイスおよびその制御方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008236783 2008-09-16
JP2008236783 2008-09-16
JP2010529831A JP5365637B2 (ja) 2008-09-16 2009-09-15 半導体プログラマブルデバイスおよびその制御方法
PCT/JP2009/066570 WO2010032861A1 (ja) 2008-09-16 2009-09-15 半導体プログマブルデバイスおよびその制御方法

Publications (2)

Publication Number Publication Date
JPWO2010032861A1 JPWO2010032861A1 (ja) 2012-02-16
JP5365637B2 true JP5365637B2 (ja) 2013-12-11

Family

ID=42039679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010529831A Expired - Fee Related JP5365637B2 (ja) 2008-09-16 2009-09-15 半導体プログラマブルデバイスおよびその制御方法

Country Status (2)

Country Link
JP (1) JP5365637B2 (ja)
WO (1) WO2010032861A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5365693B2 (ja) * 2009-07-17 2013-12-11 日本電気株式会社 半導体装置および半導体装置におけるデータ転送方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH098647A (ja) * 1995-06-21 1997-01-10 Nippon Telegr & Teleph Corp <Ntt> プログラマブル論理回路
JPH1082839A (ja) * 1996-09-06 1998-03-31 Hitachi Telecom Technol Ltd Fpgaを使用した電子装置の診断方式
JP2000232354A (ja) * 1999-02-10 2000-08-22 Nec Corp プログラマブルデバイス
JP2003533931A (ja) * 2000-05-18 2003-11-11 ザイリンクス インコーポレイテッド 乗算器をfpgaに組込むための方法および装置
JP2004525439A (ja) * 2000-12-19 2004-08-19 ピコチップ デザインズ リミテッド プロセッサアーキテクチャ
JP2005182654A (ja) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
JP2010080870A (ja) * 2008-09-29 2010-04-08 National Institute Of Advanced Industrial Science & Technology 再構成可能集積回路

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH098647A (ja) * 1995-06-21 1997-01-10 Nippon Telegr & Teleph Corp <Ntt> プログラマブル論理回路
JPH1082839A (ja) * 1996-09-06 1998-03-31 Hitachi Telecom Technol Ltd Fpgaを使用した電子装置の診断方式
JP2000232354A (ja) * 1999-02-10 2000-08-22 Nec Corp プログラマブルデバイス
JP2003533931A (ja) * 2000-05-18 2003-11-11 ザイリンクス インコーポレイテッド 乗算器をfpgaに組込むための方法および装置
JP2004525439A (ja) * 2000-12-19 2004-08-19 ピコチップ デザインズ リミテッド プロセッサアーキテクチャ
JP2005182654A (ja) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
JP2010080870A (ja) * 2008-09-29 2010-04-08 National Institute Of Advanced Industrial Science & Technology 再構成可能集積回路

Also Published As

Publication number Publication date
WO2010032861A1 (ja) 2010-03-25
JPWO2010032861A1 (ja) 2012-02-16

Similar Documents

Publication Publication Date Title
US20220208233A1 (en) Memory package having stacked array dies and reduced driver load
JP3557114B2 (ja) 半導体記憶装置
US7355899B2 (en) Pipe latch circuit of multi-bit prefetch-type semiconductor memory device with improved structure
US6205082B1 (en) LSI device with memory and logics mounted thereon
US6104663A (en) Memory array with a simultaneous read or simultaneous write ports
JP4071910B2 (ja) 半導体集積回路
JP2006012337A (ja) 積層型半導体メモリ装置
CN105161126A (zh) 利用存储模块上的分布式字节缓冲器的***和方法
TW201442039A (zh) 獨立連結與記憶庫選擇
US8630143B2 (en) Multiple-port memory device comprising single-port memory device with supporting control circuitry
JP2013077358A (ja) 半導体装置
JP2011065733A (ja) 半導体メモリデバイスおよびチップ積層型の半導体デバイス
US9811628B1 (en) Metal configurable register file
JP5365637B2 (ja) 半導体プログラマブルデバイスおよびその制御方法
US11861369B2 (en) Processing-in-memory (PIM) device
Yabe et al. A configurable DRAM macro design for 2112 derivative organizations to be synthesized using a memory generator
JP2004005856A (ja) 半導体記憶装置
US6801144B2 (en) Semiconductor memory device inputting/outputting data synchronously with clock signal
JPH10334662A (ja) 半導体記憶装置
Kamaraj et al. Design of Space-Efficient Nano Router in Reversible Logic with Multilayer Architecture
KR20220008901A (ko) 시프터블 메모리 및 시프터블 메모리를 동작시키는 방법
JP3818863B2 (ja) 不揮発性半導体記憶装置
JP4238163B2 (ja) 半導体集積回路装置
JP2008257779A (ja) メモリマクロセルおよびそれを用いた半導体装置
JP2001143464A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130826

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees