(57)【要約】【課題】  複数のプログラマブルセルを有するプログラマブルデバイスにおいて、コンフィギュレーション時間を短縮し、更に回路面積を縮小し、消費電力を低減する。【解決手段】  第１の領域１１９に属するプログラマブルセル１１０〜１１５ではコンフィギュレーション情報１３０を揮発性メモリに格納し、第２の領域１１９に属するプログラマブルセル１２０〜１２２ではコンフィギュレーション情報１３０を不揮発性メモリに格納する。複数の処理に共通のサブ処理のためのコンフィギュレーション情報１３０は、これを不揮発性メモリに格納する。【選択図】  図１
2006157508.tif 000002
【特許請求の範囲】
【請求項１】
各々外部より入力される構成情報を格納する内部メモリと、前記内部メモリに格納された構成情報に基づく動作を実行する演算回路とを有する複数のプログラマブルセルを持つプログラマブルデバイスにおいて、
前記内部メモリとして不揮発性メモリを持つ少なくとも１つの第１種プログラマブルセルと、
前記構成情報と、前記構成情報を書き込むことを指示する制御信号とを前記第１種プログラマブルセルに出力する制御回路とを備えたことを特徴とするプログラマブルデバイス。
【請求項２】
請求項１記載のプログラマブルデバイスにおいて、
前記内部メモリとして揮発性メモリを持つ少なくとも１つの第２種プログラマブルセルを更に備え、
前記制御回路は、前記構成情報と、前記構成情報を書き込むことを指示する制御信号とを前記第２種プログラマブルセルに出力する機能を更に有することを特徴とするプログラマブルデバイス。
【請求項３】
各々外部より入力される構成情報を格納する内部メモリと、前記内部メモリに格納された構成情報に基づく動作を実行する演算回路とを有する複数のプログラマブルセルを持つプログラマブルデバイスにおいて、
前記内部メモリとして不揮発性メモリを持つ少なくとも１つの第１種プログラマブルセルと、
前記内部メモリとして揮発性メモリを持つ少なくとも１つの第２種プログラマブルセルと、
前記構成情報と、前記構成情報を書き込むことを指示する第１の制御信号とを前記第２種プログラマブルセルに出力する制御回路とを備え、
前記制御回路は、前記第１種プログラマブルセルが前記第２種プログラマブルセルから受け取った構成情報が当該第１種プログラマブルセルに書き込まれるように、前記第２種プログラマブルセルから受け取った構成情報を書き込むことを指示する第２の制御信号を前記第１種プログラマブルセルに出力する機能を更に有することを特徴とするプログラマブルデバイス。
【請求項４】
請求項３記載のプログラマブルデバイスにおいて、
前記第２種プログラマブルセルを複数備え、かつ前記第２種プログラマブルセル同士の間で前記構成情報のシーケンシャル伝送を行うように構成されたことを特徴とするプログラマブルデバイス。
【請求項５】
請求項４記載のプログラマブルデバイスにおいて、
前記第２種プログラマブルセルが持つ前記揮発性メモリを構成するトランジスタの閾値電圧は、前記構成情報のシーケンシャル伝送においてより前段に位置するものほど低く設定されたことを特徴とするプログラマブルデバイス。
【請求項６】
請求項１又は３に記載のプログラマブルデバイスにおいて、
共通のサブ処理を有する第１又は第２の処理を前記プログラマブルデバイスが実行するにあたり、前記共通のサブ処理を前記第１種プログラマブルセルで実行することを特徴とするプログラマブルデバイス。
【請求項７】
請求項１又は３に記載のプログラマブルデバイスにおいて、
構成情報が予め格納されたリードオンリーメモリ（ＲＯＭ）と、前記ＲＯＭに格納された構成情報に基づく動作を実行する演算回路とを有する少なくとも１つの第３種プログラマブルセルを更に備えたことを特徴とするプログラマブルデバイス。
【請求項８】
請求項１又は３に記載のプログラマブルデバイスにおいて、
前記第１種プログラマブルセルの構成要素のうち前記不揮発性メモリを実装する第１の半導体チップと、
前記不揮発性メモリ以外の構成要素を実装する第２の半導体チップとを備え、
前記第１の半導体チップと前記第２の半導体チップとを電気的に接続して構成されたことを特徴とするプログラマブルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルデバイスに関し、特に複数のプログラマブルセルを有する構造を持つデバイスの動作を制御する情報を格納する構成に関するものである。
【背景技術】
【０００２】
ＦＰＧＡ（Field Programmable Gate Array）に代表されるプログラマブルデバイスは、各種演算を実行するプログラマブルセルを多数内蔵し、各プログラマブルセルは実現する処理に応じて固有の演算を実行する。このようなプログラマブルデバイスは、多数のプログラマブルセルを同時に稼働させることでマルチメディア処理に代表される莫大な演算を実行するものであり、近年非常に注目されている。それぞれのプログラマブルセルが如何なる演算を実行するかはコンフィギュレーション情報（構成情報）で指示され、このコンフィギュレーション情報はプログラマブルセル内に持つ内部メモリに格納される。
【０００３】
プログラマブルデバイスのある従来技術によれば、全てのプログラマブルセルが同一の構成で、それぞれのプログラマブルセルが同じ構成の内部メモリを有する（特許文献１参照）。
【特許文献１】特開２０００−２２４０２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の構成では、電源投入毎にプログラマブルデバイスに内蔵される全てのプログラマブルセルにコンフィギュレーション情報を格納する（この動作を以下コンフィギュレーションという。）必要があり、このコンフィギュレーションに要する時間（以下、コンフィギュレーション時間という。）が長くなるという問題があった。
【０００５】
また、全てのプログラマブルセルが同一の構成で、それぞれのプログラマブルセルが同じ構成の内部メモリを有する上述のプログラマブルデバイスでは、デバイス内にこの内部メモリの占める回路面積が大きくなるという問題があった。
【０００６】
本発明は以上の点に鑑み、コンフィギュレーション時間を短縮し、更に回路面積を縮小し消費電力を低減する構成を持つプログラマブルデバイスを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係る第１のプログラマブルデバイスは、各々外部より入力される構成情報を格納する内部メモリと、前記内部メモリに格納された構成情報に基づく動作を実行する演算回路とを有する複数のプログラマブルセルを持ち、前記内部メモリとして不揮発性メモリを持つ少なくとも１つの第１種プログラマブルセルと、前記構成情報と前記構成情報を書き込むことを指示する制御信号とを前記第１種プログラマブルセルに出力する制御回路とを備えた構成を採用したものである。前記内部メモリとして揮発性メモリを持つ少なくとも１つの第２種プログラマブルセルを更に備える場合には、前記制御回路が、前記構成情報と前記構成情報を書き込むことを指示する制御信号とを前記第２種プログラマブルセルに出力する機能を更に有することとする。
【０００８】
また、本発明に係る第２のプログラマブルデバイスは、各々外部より入力される構成情報を格納する内部メモリと、前記内部メモリに格納された構成情報に基づく動作を実行する演算回路とを有する複数のプログラマブルセルを持ち、前記内部メモリとして不揮発性メモリを持つ少なくとも１つの第１種プログラマブルセルと、前記内部メモリとして揮発性メモリを持つ少なくとも１つの第２種プログラマブルセルと、前記構成情報と前記構成情報を書き込むことを指示する第１の制御信号とを前記第２種プログラマブルセルに出力する制御回路とを備えることとしたものである。しかも、前記制御回路は、前記第１種プログラマブルセルが前記第２種プログラマブルセルから受け取った構成情報が当該第１種プログラマブルセルに書き込まれるように、前記第２種プログラマブルセルから受け取った構成情報を書き込むことを指示する第２の制御信号を前記第１種プログラマブルセルに出力する機能を更に有する。
【発明の効果】
【０００９】
本発明によれば、構成情報を揮発性メモリと不揮発性メモリとに分けて格納することで、電源オフの後に続くコンフィギュレーション時間を短縮し、更に回路面積を縮小し、消費電力の低減を図ることができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら、本発明の第１〜第３の実施形態に係るプログラマブルデバイスについて詳細に説明する。
【００１１】
《第１の実施形態》
図１は、第１の実施形態に係るプログラマブルデバイス１００の構成を示し、図２、図３はプログラマブルデバイス１００に内蔵される複数のプログラマブルセルの内部構成を示した図である。
【００１２】
図１に示すプログラマブルデバイス１００は、図２に示す第１〜第６のプログラマブルセル１１０〜１１５を持つ第１の領域１１９と、図３に示す第７〜第９のプログラマブルセル１２０〜１２２を持つ第２の領域１２９と、図示しないブロックより供給されるコンフィギュレーション情報１３０を入力とし、そのコンフィギュレーション情報１３０をどのプログラマブルセルに格納するかを指示する制御信号１３２とコンフィギュレーション情報１３０とを出力する制御回路１３４と、第１〜第９のプログラマブルセル１１０〜１１５，１２０〜１２２に演算すべきデータを供給するデータバス１４０とを有する。
【００１３】
図２に示す第１〜第６のプログラマブルセル１１０〜１１５は、制御信号１３２の指示によりコンフィギュレーション情報１３０を格納する揮発性メモリ２１０を内蔵する。すなわち制御信号１３２は第１〜第９のプログラマブルセル１１０〜１１５，１２０〜１２２のいずれにコンフィギュレーション情報１３０を書き込むかを示す情報を持っており、この情報は内部制御回路２１５に入力される。内部制御回路２１５はこの情報を解読し、書き込みの対象が自身のプログラマブルセルである場合、ライト信号を揮発性メモリ２１０に出力する。揮発性メモリ２１０はライト信号が入力された場合、コンフィギュレーション情報１３０の内容を保持する。また揮発性メモリ２１０はデータバス１４０より入力されるデータを保持する２個のレジスタ２２０，２２２の動作と、これらのレジスタ２２０，２２２が出力するデータを演算する演算回路２３０の動作と、また演算回路２３０が出力する演算結果を保持しデータバス１４０にその保持内容を出力するレジスタ２４０の動作とを指示する。揮発性メモリ２１０の構造としては、例えばＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）が適する。
【００１４】
図３に示す第７〜第９のプログラマブルセル１２０〜１２２が図２に示す構成と異なる点は揮発性メモリ２１０を不揮発性メモリ３１０としている点である。この不揮発性メモリ３１０の構造としては、例えばＦｅＲＡＭ（Ferro Electric RAM）が適する。ＦｅＲＡＭでは近年１トランジスタ・１キャパシタ（１Ｔ１Ｃ）型セルを有するものが開発されており、トランジスタ数がＳＲＡＭよりも少なく、電源をオフにしてもその保持内容が消滅しないという特徴を持つ。
【００１５】
以上のような構成を持つプログラマブルデバイス１００で図４（ａ）及び図４（ｂ）に示す処理を実行する。図４（ａ）に示す処理Ａはサブ処理Ｘ、サブ処理Ｙ、サブ処理Ｚからなり、図４（ｂ）に示す処理Ｂはサブ処理Ｖ、サブ処理Ｙ、サブ処理Ｗよりなる。このように処理Ａ、処理Ｂは共通するサブ処理Ｙを含む。
【００１６】
プログラマブルデバイス１００は処理Ａ又は処理Ｂを以下に示す態様で実行する。まず、プログラマブルデバイス１００を動作させるため電源を投入する（電源投入に関わる機構は図示しない）。次に処理Ａを実行する場合、図示しないブロックより供給されるコンフィギュレーション情報１３０を制御回路１３４に入力する。制御回路１３４はコンフィギュレーション情報１３０と、このコンフィギュレーション情報１３０がどのプログラマブルセルに格納すべきかを指示する制御信号１３２とを第１〜第９のプログラマブルセル１１０〜１１５，１２０〜１２２に出力する（制御信号１３２の生成回路は図示しない）。この際、サブ処理Ｘを構成するコンフィギュレーション情報１３０を第１〜第３のプログラマブルセル１１０〜１１２に書き込み、サブ処理Ｙを構成するコンフィギュレーション情報１３０を第７〜第９のプログラマブルセル１２０〜１２２に書き込み、サブ処理Ｚを構成するコンフィギュレーション情報１３０を第４〜第６のプログラマブルセル１１３〜１１５に書き込む。
【００１７】
次に、外部よりデータバス１４０を経由してデータを入力する。入力されたデータは、まず第１〜第３のプログラマブルセル１１０〜１１２によりサブ処理Ｘを実行し、その実行結果をデータバス１４０を経由して第７〜第９のプログラマブルセル１２０〜１２２に入力する。次いで第７〜第９のプログラマブルセル１２０〜１２２はサブ処理Ｙを実行し実行結果をデータバス１４０を経由して第４〜第６のプログラマブルセル１１３〜１１５に入力する。次いで第４〜第６のプログラマブルセル１１３〜１１５はサブ処理Ｚを実行し実行結果をデータバス１４０を経由して外部に出力する。このようにして処理Ａが実行された後、プログラマブルデバイス１００の電源をオフにする。このとき、第７〜第９のプログラマブルセル１２０〜１２２は不揮発性メモリ３１０にコンフィギュレーション情報を格納しているため、その保持内容は消滅しない。
【００１８】
続いてプログラマブルデバイス１００で処理Ｂを実行するにあたり、プログラマブルデバイス１００を動作させるため電源を投入する（電源投入に関わる機構は図示しない）。上記したものと同様の手順で、図示しないブロックより供給されるコンフィギュレーション情報１３０を制御回路１３４に入力する。制御回路１３４はコンフィギュレーション情報１３０と、このコンフィギュレーション情報１３０がどのプログラマブルセルに格納すべきかを指示する制御信号１３２とを第１〜第６のプログラマブルセル１１０〜１１５に出力する（制御信号１３２の出力構成は図示しない）。この際、サブ処理Ｖを構成するコンフィギュレーション情報１３０を第１〜第３のプログラマブルセル１１０〜１１２に書き込み、サブ処理Ｗを構成するコンフィギュレーション情報１３０を第４〜第６のプログラマブルセル１１３〜１１５に書き込む。
【００１９】
このように、二度目のコンフィギュレーションにより処理Ｂを実行する場合、第７〜第９のプログラマブルセル１２０〜１２２にはサブ処理Ｙを実現するコンフィギュレーション情報が保持され続けているので、コンフィギュレーション情報１３０を新たに格納する動作が不要である。これによりコンフィギュレーションに要する時間を短縮することができる。また、上記の実施形態のように処理が完結する毎にこまめに電源をオフすることができ、プログラマブルデバイス１００の消費電力を低減することができる。また、第７〜第９のプログラマブルセル１２０〜１２２に内蔵される不揮発性メモリ３１０は、第１〜第６のプログラマブルセル１１０〜１１５に内蔵される揮発性メモリ２１０よりもトランジスタ数を少なくすることができるため、プログラマブルデバイス１００の回路面積を小さくすることができる。
【００２０】
なお、本実施形態では第７〜第９のプログラマブルセル１２０〜１２２にサブ処理Ｙのように２種類の処理に共通する処理を実現するコンフィギュレーションを行う場合について述べたが、いわゆるＯＳ（オペレーティング・システム）のように数々のアプリケーションを実行する場合に必ず介在する処理を割り当てても同様の効果を発揮する。なぜなら、ＯＳは複数のアプリケーションにとって常に共通に用いられる処理であるからである。
【００２１】
《第２の実施形態》
図５は、第２の実施形態に係るプログラマブルデバイス５００の構成を示し、図６、図７はプログラマブルデバイス５００に内蔵される複数のプログラマブルセルの内部構成を示した図である。
【００２２】
図５に示すプログラマブルデバイス５００は、図６に示す第１〜第６のプログラマブルセル５１０〜５１５を持つ第１の領域５１９と、図７に示す第７〜第９のプログラマブルセル５２０〜５２２を持つ第２の領域５２９と、図示しないブロックより供給されるコンフィギュレーション情報５３０を入力とし、そのコンフィギュレーション情報５３０を第１〜第６のプログラマブルセル５１０〜５１５に格納することを指示する第１のライト信号５３２と、コンフィギュレーション情報５３０を第７〜第９のプログラマブルセル５２０〜５２２に格納することを指示する第２のライト信号５３３と、コンフィギュレーション情報５３０とを出力する制御回路５３４と、演算すべきデータを第１〜第９のプログラマブルセル５１０〜５１５，５２０〜５２２に供給するデータバス５４０とを有する。
【００２３】
図６に示す第１〜第６のプログラマブルセル５１０〜５１５は、第１のライト信号５３２がアクティブのときコンフィギュレーション情報５３０を格納する揮発性メモリ６１０を内蔵する。また、図７に示す第７〜第９のプログラマブルセル５２０〜５２２は、第２のライト信号５３３がアクティブのときコンフィギュレーション情報５３０を格納する不揮発性メモリ７１０を内蔵する。コンフィギュレーション情報５３０を格納する動作が第１の実施形態と異なるのはコンフィギュレーション情報５３０を第１〜第９のプログラマブルセル５１０〜５１５，５２０〜５２２にシーケンシャルに格納する点である。すなわち、第１のライト信号５３２がアクティブのとき、まず第１のプログラマブルセル５１０に入力されるコンフィギュレーション情報５３０が第１のプログラマブルセル５１０に内蔵される揮発性メモリ６１０に格納される。揮発性メモリ６１０の保持内容は図５に示す右側に位置する第４のプログラマブルセル５１３に出力される。第４のプログラマブルセル５１３に内蔵される揮発性メモリ６１０は入力されるコンフィギュレーション情報５３０（この情報は第１のプログラマブルセル５１０が出力するもの）を内蔵する揮発性メモリ６１０に格納する。以下同様にして、第４のプログラマブルセル５１３が出力するコンフィギュレーション情報５３０を第５のプログラマブルセル５１４に内蔵する揮発性メモリ６１０は保持し、次いで第２、第３及び第６のプログラマブルセル５１１，５１２，５１５の順にコンフィギュレーション情報５３０がシフトレジスタのように書き込まれていく。更に第２のライト信号５３３もまたアクティブのとき、第６のプログラマブルセル５１５が出力するコンフィギュレーション情報５３０を第７のプログラマブルセル５２０に内蔵する不揮発性メモリ７１０が保持し、上記と同様にシフトレジスタのように第８及び第９のプログラマブルセル５２１，５２２の順にコンフィギュレーション情報５３０が書き込まれていく。
【００２４】
プログラマブルデバイス５００は、図４（ａ）の処理Ａ又は図４（ｂ）の処理Ｂを以下に示す態様で実行する。まず、プログラマブルデバイス５００を動作させるため電源を投入する（電源投入に関わる機構は図示しない）。次に処理Ａを実行する場合、図示しないブロックより供給されるコンフィギュレーション情報５３０を制御回路５３４に入力する。制御回路５３４はコンフィギュレーション情報５３０を出力し、同時に第１及び第２のライト信号５３２，５３３をアクティブにする。制御回路５３４が出力するコンフィギュレーション情報５３０としてまず処理Ａ、処理Ｂに共通に含まれるサブ処理Ｙ、次いでサブ処理Ｘ、サブ処理Ｚを実現する情報を順次出力する。このときサブ処理Ｙを実現するコンフィギュレーション情報は第１、第４及び第５のプログラマブルセル５１０、５１３，５１４を順次経由し、第７〜第９のプログラマブルセル５２０〜５２２に格納される。サブ処理Ｘを実現するコンフィギュレーション情報５３０も引き続き入力されるので、この情報は第１、第４及び第５のプログラマブルセル５１０、５１３，５１４を経由して第２、第３及び第６のプログラマブルセル５１１，５１２，５１５に格納される。サブ処理Ｚを実現するコンフィギュレーション情報５３０も引き続き入力されるので、この情報は第１、第４及び第５のプログラマブルセル５１０，５１３，５１４に格納される。すなわち上記の動作によりサブ処理Ｘを構成するコンフィギュレーション情報５３０は第２、第３及び第６のプログラマブルセル５１１，５１２，５１５に書き込まれ、サブ処理Ｙを構成するコンフィギュレーション情報５３０は第７〜第９のプログラマブルセル５２０〜５２２に書き込まれ、サブ処理Ｚを構成するコンフィギュレーション情報５３０は第１、第４及び第５のプログラマブルセル５１０，５１３，５１４に書き込まれる。
【００２５】
次に外部よりデータバス５４０を経由してデータを入力する。入力されたデータはまず第２、第３及び第６のプログラマブルセル５１１，５１２，５１５によりサブ処理Ｘを実行し、その実行結果をデータバス５４０を経由して第７〜第９のプログラマブルセル５２０〜５２２に入力する。次いで第７〜第９のプログラマブルセル５２０〜５２２はサブ処理Ｙを実行し実行結果をデータバス５４０を経由して第１、第４及び第５のプログラマブルセル５１０，５１３，５１４に入力する。次いで第１、第４及び第５のプログラマブルセル５１０，５１３，５１４はサブ処理Ｚを実行し実行結果をデータバス５４０を経由して外部に出力する。このようにして処理Ａが実行された後、プログラマブルデバイス５００の電源をオフにする。このときプログラマブルセル５２０〜５２２は不揮発性メモリ７１０にコンフィギュレーション情報を格納するため、その保持内容は消滅しない。
【００２６】
続いてプログラマブルデバイス５００で処理Ｂを実行するに当たり、プログラマブルデバイス５００を動作させるため電源を投入する（電源投入に関わる機構は図示しない）。上記したものと同様の手順で、図示しないブロックより供給されるコンフィギュレーション情報５３０を制御回路５３４に入力する。制御回路５３４はコンフィギュレーション情報５３０を出力し、同時に第１のライト信号５３２をアクティブにし、第２のライト信号５３３をアクティブにしない。制御回路５３４が出力するコンフィギュレーション情報としてまず処理Ｂにだけ含まれるサブ処理Ｖ、次いでサブ処理Ｗを実現する情報を順次出力する。このときサブ処理Ｖを実現するコンフィギュレーション情報は第１、第４及び第５のプログラマブルセル５１０，５１３，５１４を順次経由し、第２、第３及び第６のプログラマブルセル５１１，５１２，５１５に格納される。サブ処理Ｗを実現するコンフィギュレーション情報５３０も引き続き入力されるので、この情報は第１、第４及び第５のプログラマブルセル５１０，５１３，５１４に格納される。すなわち上記の動作によりサブ処理Ｖを構成するコンフィギュレーション情報５３０は第２、第３及び第６のプログラマブルセル５１１，５１２，５１５に書き込まれ、サブ処理Ｗを構成するコンフィギュレーション情報５３０は第１、第４及び第５のプログラマブルセル５１０，５１３，５１４に書き込まれる。またサブ処理Ｙについては第７〜第９のプログラマブルセル５２０〜５２２に保持されたままである。
【００２７】
このように、二度目のコンフィギュレーションにより処理Ｂを実行する場合、第７〜第９のプログラマブルセル５２０〜５２２にはサブ処理Ｙを実現するコンフィギュレーション情報が保持され続けているので、コンフィギュレーション情報５３０を新たに格納する動作が不要であって、第１の実施形態と同様の効果を得ることができる。第１の実施形態と異なる点は、コンフィギュレーション情報５３０を順次隣接するプログラマブルセルに渡していくため、コンフィギュレーション情報５３０を通信する配線が少なくて済む点であり、これにより更に回路面積の縮小を図ることができる。
【００２８】
なお、本実施形態では第７〜第９のプログラマブルセル５２０〜５２２にサブ処理Ｙのように２種類の処理に共通する処理を実現するコンフィギュレーションを行う場合について述べたが、いわゆるＯＳ（オペレーティング・システム）のように数々のアプリケーションを実行する場合に必ず介在する処理を割り当てても同様の効果を発揮する。なぜなら、ＯＳは複数のアプリケーションにとって常に共通に用いられる処理であるからである。
【００２９】
さて、揮発性メモリ６１０を構成するトランジスタの閾値電圧は、その書き換え頻度を考慮して、コンフィギュレーション情報５３０のシーケンシャル伝送においてより前段に位置するものほど低く設定するのがよい。具体的には、制御回路５３４が出力するコンフィギュレーション情報５３０を入力とする第１のプログラマブルセル５１０に内蔵される揮発性メモリ６１０を第１の領域５１９に含まれる第１〜第６のプログラマブルセル５１０〜５１５の中で閾値電圧の最も低いトランジスタで構成し、次いで第４のプログラマブルセル５１３に内蔵される揮発性メモリ６１０、第５のプログラマブルセル５１４に内蔵される揮発性メモリ６１０の順に閾値電圧の高いトランジスタで構成する。前述のようにコンフィギュレーション情報５３０は第１のプログラマブルセル５１０から第４のプログラマブルセル５１３へ、そして第５のプログラマブルセル５１４から第６のプログラマブルセル５１５まで順にチェーン状に転送される。ここで書き換えるべきコンフィギュレーション情報を第１の領域５１９の一部に格納する場合、第１のプログラマブルセル５１０に近いチェーンに位置するプログラマブルセルを書き換える。
【００３０】
このとき、書き換わる頻度が高いのは第１のプログラマブルセル５１０に近いプログラマブルセルであり、これらのプログラマブルセルに内蔵される揮発性メモリ６１０を構成するトランジスタは閾値電圧が低い。すなわち、書き換えの頻度が小さくなるに従い、プログラマブルセルに内蔵される揮発性メモリ６１０のトランジスタの閾値電圧を高く構成するので、漏れ電流（リーク電流）の小さいプログラマブルデバイスを実現することとなる。
【００３１】
《第３の実施形態》
図８は、第３の実施形態に係るプログラマブルデバイス８００の構成を示し、図９はプログラマブルデバイス８００に内蔵される第１０〜第１２のプログラマブルセル８２０〜８２２の内部構成を示した図である。
【００３２】
図８に示すプログラマブルデバイス８００が図１に示すプログラマブルデバイス１００と異なる点は、前述の第１及び第２の領域１１９，１２９に加えて、第１０〜第１２のプログラマブルセル８２０〜８２２を持つ第３の領域８２９を持ち、図９に示す第１０〜第１２のプログラマブルセル８２０〜８２２は予めコンフィギュレーション情報１３０に相当する情報をＲＯＭ９１０に格納していることである。これによりプログラマブルデバイス８００を実装したＬＳＩの製品出荷の後、その動作内容を変更する必要の全くない処理を予め第１０〜第１２のプログラマブルセル８２０〜８２２に内蔵されるＲＯＭ９１０にそれぞれ格納することで、コンフィギュレーション情報１３０の書き込みが不要となる。これによりコンフィギュレーションに要する時間を短縮することができる。また、処理が完結する毎にこまめに電源をオフすることができプログラマブルデバイス８００の消費電力を低減することができるのは第１の実施形態と同様である。
【００３３】
なお、図５に示すプログラマブルデバイス５００に、各々ＲＯＭ９１０を持つ第１０〜第１２のプログラマブルセル８２０〜８２２を付加することとしてもよい。
【００３４】
以上、第１〜第３の実施形態を説明してきたが、最後に具体的なセル実装方法について説明する。
【００３５】
図１０は、第１の実施形態で用いた第１、第４及び第７のプログラマブルセル１１０，１１３，１２０などを集積した構成を示す図である。第１の半導体チップ１０１０は、第７のプログラマブルセル１２０に内蔵される不揮発性メモリ３１０のみを集積する。第２の半導体チップ１０２０は、第７のプログラマブルセル１２０に内蔵される不揮発性メモリ３１０以外の構成に加えて、第１及び第４のプログラマブルセル１１０，１１３や制御回路１３４、コンフィギュレーション情報１３０の配線、制御信号１３２の配線などを集積する。
【００３６】
以下、第７のプログラマブルセル１２０の構成について説明する。第２の半導体チップ１０２０ではまず全てのプログラマブルセルを図２に示す構成、すなわち揮発性メモリ２１０を内蔵する構成として集積する。第７のプログラマブルセル１２０の構成、すなわち不揮発性メモリ３１０を使用するプログラマブルセルを構成するには、第１の半導体チップ１０１０上に集積した不揮発性メモリ３１０と第２の半導体チップ１０２０上の揮発性メモリ２１０の箇所とを配線１０３０を用いて電気的に接続し、揮発性メモリ２１０を使用しないようにする。これにより、当初揮発性メモリ２１０を含んでいたプログラマブルセルを、不揮発性メモリ３１０を含んだプログラマブルセルに変更することができ、第７のプログラマブルセル１２０を構成できることとなる。
【００３７】
一般に、ＦｅＲＡＭに代表される不揮発性メモリは独特の回路、例えば複数の電源配線や加工寸法を必要とするものであり、以上のように構成することで、不揮発性メモリ３１０を適切な加工条件の一方の半導体チップ１０１０に集積できるので、プログラマブルデバイス全体として回路面積を更に縮小化することができる。
【００３８】
なお、第２及び第３の実施形態中の不揮発性メモリ３１０，７１０も図１０と同様にして構成することが可能である。
【００３９】
さて、上記各実施形態ではプログラマブルデバイスに内蔵されるプログラマブルセルの個数を９個又は１２個としたがこれは任意の数でよい。また第１の領域１１９（５１９）、第２の領域１２９（５２９）、第３の領域８２９に含まれるプログラマブルセルの個数をそれぞれ６個、３個、３個としたがこれも任意でよい。内部メモリの点を除き第１〜第６のプログラマブルセル１１０〜１１５（５１０〜５１５）の構造と第７〜第９のプログラマブルセル１２０〜１２３（５２０〜５２３）の構造とをほぼ同一としたが、上記で示したように揮発性メモリ２１０（６１０）にコンフィギュレーション情報を格納する領域と、不揮発性メモリ３１０（７１０）にコンフィギュレーション情報を格納する領域とからプログラマブルデバイスを構成しさえすればよいため、個々のプログラマブルセルの構造が異なっていてもよいことは言うまでもない。
【産業上の利用可能性】
【００４０】
以上説明してきたとおり、本発明に係るプログラマブルデバイスは、電源オフの後に続くコンフィギュレーション時間を短縮し、更に回路面積を縮小し、消費電力の低減を図ることができるという効果を有し、ＦＰＧＡ等として有用である。
【図面の簡単な説明】
【００４１】
【図１】本発明の第１の実施形態に係るプログラマブルデバイスの構成を示すブロック図である。
【図２】図１中の第１〜第６のプログラマブルセルの各々の内部構成を示すブロック図である。
【図３】図１中の第７〜第９のプログラマブルセルの各々の内部構成を示すブロック図である。
【図４】（ａ）及び（ｂ）は図１のプログラマブルデバイスで実行する処理Ａ及びＢの内容をそれぞれ示す概念図である。
【図５】本発明の第２の実施形態に係るプログラマブルデバイスの構成を示すブロック図である。
【図６】図５中の第１〜第６のプログラマブルセルの各々の内部構成を示すブロック図である。
【図７】図５中の第７〜第９のプログラマブルセルの各々の内部構成を示すブロック図である。
【図８】本発明の第３の実施形態に係るプログラマブルデバイスの構成を示すブロック図である。
【図９】図８中の第１０〜第１２のプログラマブルセルの各々の内部構成を示すブロック図である。
【図１０】図１のプログラマブルデバイスの実装例を示す半導体チップの斜視図である。
【符号の説明】
【００４２】
１００，５００，８００  プログラマブルデバイス
１１０〜１１５，５１０〜５１５  プログラマブルセル（第２種）
１１９，５１９  第１の領域
１２０〜１２２，５２０〜５２２  プログラマブルセル（第１種）
１２９，５２９  第２の領域
１３０，５３０  コンフィギュレーション情報
１３２  制御信号
１３４，５３４  制御回路
１４０，５４０  データバス
２１０，６１０  揮発性メモリ
２３０，６３０  演算回路
３１０  不揮発性メモリ
５３２，５３３  ライト信号
８２０〜８２２  プログラマブルセル（第３種）
８２９  第３の領域
９１０  ＲＯＭ
１０１０，１０２０  半導体チップ
１０３０  配線
【図１】
2006157508.tif 000003
【図２】
2006157508.tif 000004
【図３】
2006157508.tif 000005
【図４】
2006157508.tif 000006
【図５】
2006157508.tif 000007
【図６】
2006157508.tif 000008
【図７】
2006157508.tif 000009
【図８】
2006157508.tif 000010
【図９】
2006157508.tif 000011
【図１０】
2006157508.tif 000012