JP3981373B2 - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP3981373B2
JP3981373B2 JP2004250861A JP2004250861A JP3981373B2 JP 3981373 B2 JP3981373 B2 JP 3981373B2 JP 2004250861 A JP2004250861 A JP 2004250861A JP 2004250861 A JP2004250861 A JP 2004250861A JP 3981373 B2 JP3981373 B2 JP 3981373B2
Authority
JP
Japan
Prior art keywords
cpu
semiconductor integrated
integrated circuit
bit width
instruction
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
JP2004250861A
Other languages
English (en)
Other versions
JP2005050363A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2004250861A priority Critical patent/JP3981373B2/ja
Publication of JP2005050363A publication Critical patent/JP2005050363A/ja
Application granted granted Critical
Publication of JP3981373B2 publication Critical patent/JP3981373B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Memory System (AREA)
  • Logic Circuits (AREA)

Description

本発明は、半導体集積回路に関するものであり、特に、プログラマブルデバイスを備えた半導体集積回路の回路構成技術に属する。
コンピュータに所望の処理を行わせるには、その処理をプログラムとして記述する必要がある。通常、このプログラムはC言語などの高級プログラム言語を用いて記述されるが、CPUは高級プログラム言語で書かれたソースプログラムを直接、実行することができない。このため、ソースプログラムを、CPUが実行することのできるオブジェクトプログラムに変換しなければならない。この変換処理(コンパイル)は、コンパイラによって行われる。
コンパイラは、ソースプログラムのコンパイル時に、オブジェクトプログラムを実行するCPUとして、ソースプログラムの実行に必要とされる最大ビット幅のものを選択している。たとえば、図9に示されたC言語のソースプログラムでは、char型、 short型およびlong型の3つのデータ型が使用されており、各データ型の処理に必要なビット幅はそれぞれ8ビット、16ビットおよび32ビットである。したがって、コンパイラは、このソースプログラムの実行に必要なCPUとして32ビットCPUを選択する。
図10は、図9のソースプログラムが32ビットCPUによって実行されることを前提として生成されたオブジェクトプログラムを示す。
1および2行目の“ movbu”は、8ビット変数aおよびbの値を32ビットデータレジスタD0およびD1にゼロ拡張をして転送するゼロ拡張バイト転送命令である。同様に、6および7行目の“ movhu”は、16ビット変数dおよびeの値を32ビットデータレジスタD0およびD1にゼロ拡張をして転送するゼロ拡張ハーフワード転送命令である。
3、8および13行目の“ add”、“ sub”および“ mul”は、それぞれ32ビットデータレジスタD0と32ビットデータレジスタD1との加算命令、減算命令および乗算命令である。そして、4、9および14行目の“ mov”は、CA、FAおよびIAでそれぞれ表されている変数c、fおよびiのアドレスをアドレスレジスタA0に転送する命令であり、11および12行目の“ mov”は、32ビット変数gおよびhの値を32ビットデータレジスタD0およびD1に転送する命令である。同様に、15行目の“ mov”は、32ビットレジスタD1の値をアドレスレジスタA0で表されるメモリに転送する命令である。
5行目の“ movbu”は、32ビットデータレジスタD1の値の上位ビットを切り捨て、8ビットデータにしてからアドレスレジスタA0で表されるメモリに転送するバイト転送命令である。同様に、10行目の“ movhu”は、32ビットデータレジスタD1の値の上位ビットを切り捨て、16ビットデータにしてからアドレスレジスタA0で表されるメモリに転送するハーフワード転送命令である。
図10に示したオブジェクトプログラムは、FPGA( Field Programmable Gate Array)などのプログラマブルデバイスを備えた半導体集積回路によって実行される(たとえば、特許文献1参照)。
特表平8−516418号公報
ソースプログラムによっては、そのソースプログラムの実行に必要とされる最大ビット幅よりも小さなビット幅で実行される命令が頻繁に出現するようなものがある。このようなソースプログラムにおいて、CPUは、小さなビット幅で実行できる命令を、最大ビット幅に拡張して実行する。たとえば、図9のソースプログラム中の“c=a+b;”を実行するのに、図10のオブジェクトプログラム中の1および2行目のゼロ拡張バイト転送命令で8ビットデータを32ビットに拡張し、5行目のバイト転送命令で32ビットデータの上位ビットを切り捨てて8ビットデータにしてからメモリに転送している。同様に、ソースプログラム中の“f=d-e;”を実行するのに、オブジェクトプログラム中の6および7行目のゼロ拡張ハーフワード転送命令で16ビットデータを32ビットに拡張し、10行目のハーフワード転送命令で32ビットデータの上位ビットを切り捨てて16ビットデータにしてからメモリに転送している。
このように、最大ビット幅のCPUによってソースプログラム中のすべての命令が実行されるのでは、効率的にCPUを使用することができない。さらに、小さなビット幅の命令を最大ビット幅に拡張することにより、ゼロ拡張されたデータを載せたバスの部分にもクロックが供給される。しかし、このゼロ拡張された部分に供給されるクロックは無駄であり、半導体集積回路の消費電力の増大を招く原因となる。
上記の問題に鑑み、本発明は、CPUの使用効率を上げるとともに、半導体集積回路の消費電力が低減されるように生成されたオブジェクトプログラムの実行に必要となるさまざまなビット幅のCPUの回路をFPGAなどのプログラマブルデバイスを備えた半導体集積回路に構成することを課題とする。
上記課題を解決するために、請求項1の発明が講じた手段は、回路構成が書き換え可能なプログラマブルデバイスを備えた半導体集積回路であって、前記プログラマブルデバイスに、指定されたビット幅および指定された個数のCPUならびに該CPUに接続されて命令メモリが保持する命令を該CPUに供給する共有命令バスの回路構成をする制御部を備えるものとする。ここで、前記共有命令バスは、前記命令メモリから受け取った命令が前記回路構成をされたCPUのいずれによって実行されるかを判別する機能と、前記回路構成をされたCPUのうち当該命令を実行すべきものに当該命令を供給する機能とを有するものとする。
請求項1の発明によると、たとえば、オブジェクトプログラムに指定されたビット幅および個数のCPUを、半導体集積回路が備えるプログラマブルデバイスに回路構成をし、各命令の実行に必要なビット幅に応じたビット幅のCPUによってその命令が実行される。これにより、ゼロ拡張命令などを実行することによる無駄なバス部分へのクロック供給がなくなり、半導体集積回路の消費電力を低減することができる。
請求項2の発明では、前記請求項1の制御部は、CPU回路構成データを参照して、前記プログラマブルデバイスに、指定されたビット幅および指定された個数のCPUの回路構成をするものとする。
請求項3の発明では、前記請求項2のCPU回路構成データは、ビット幅でパラメータ化されているものとする
求項の発明では、前記請求項の制御部は、共有命令バス回路構成データを参照して、前記プログラマブルデバイスに、前記共有命令バスの回路構成をするものとする。
請求項の発明では、前記請求項1の制御部は、前記プログラマブルデバイスに、データメモリと前記CPUとの間でデータを転送する共有データバスの回路構成をするものとする。
請求項の発明では、前記請求項の制御部は、共有データバス回路構成データを参照して、前記プログラマブルデバイスに、前記共有データバスの回路構成をするものとする。
請求項の発明では、回路構成が書き換え可能なプログラマブルデバイスを備えた半導体集積回路であって、前記プログラマブルデバイスに、指定されたビット幅および指定された個数のCPUならびに該CPUに接続されるバスの回路構成をする制御部、及びメモリを備えており、制御部は、前記プログラマブルデバイスに回路構成をされるCPUのうち、使用頻度が多い順に前記メモリに近い位置に配置されるように、前記指定されたビット幅および指定された個数のCPUの回路構成をするものとする。
請求項の発明では、回路構成が書き換え可能なプログラマブルデバイスを備えた半導体集積回路であって、前記プログラマブルデバイスに、指定されたビット幅および指定された個数のCPUならびに該CPUに接続されるバスの回路構成をする制御部、及びメモリを備えており、制御部は、前記プログラマブルデバイスに回路構成をされるCPUのうち、ビット幅が大きい順に前記メモリに近い位置に配置されるように、前記指定されたビット幅および指定された個数のCPUの回路構成をするものとする。
また、請求項の発明が講じた手段は、回路構成が書き換え可能なプログラマブルデバイスを備えた半導体集積回路であって、前記プログラマブルデバイスに、指定されたビット幅および指定された個数のCPUならびに該CPUに接続されるバスの回路構成をする制御部、及び前記プログラマブルデバイスに回路構成をされたCPUとは別個に、CPUを備えているものとする。
請求項9の発明によると、CPUを備えた半導体集積回路においても、たとえば、オブジェクトプログラムに指定されたビット幅および個数のCPUを、半導体集積回路が備えるプログラマブルデバイスに回路構成をし、各命令の実行に必要なビット幅に応じたビット幅のCPUによってその命令が実行される。これにより、ゼロ拡張命令などを実行することによる無駄なバス部分へのクロック供給がなくなり、半導体集積回路の消費電力を低減することができる。
請求項10の発明では、前記請求項の制御部は、前記指定されたビット幅と半導体集積回路に備えられたCPUのビット幅とが等しい場合、該ビット幅に対して指定された個数から半導体集積回路に備えられたCPUのうち該ビット幅と等しいビット幅のCPUの個数を減じて、前記プログラマブルデバイスにCPUの回路構成をするものとする。
請求項11の発明では、前記請求項の制御部は、前記指定されたビット幅が半導体集積回路に備えられたCPUのビット幅と等しいビット幅がなく、前記指定されたビット幅が当該半導体集積回路に備えられたCPUのビット幅よりも小さい場合、該指定されたビット幅に対して指定された個数から半導体集積回路に備えられたCPUの個数を減じて、前記プログラマブルデバイスにCPUの回路構成をするものとする。
以上、本発明によると、オブジェクトプログラムの実行時に、半導体集積回路に備えられたFPGAなどのプログラマブルデバイスにさまざまなビット幅のCPUの回路が、適宜、構成されるため、ゼロ拡張命令などを実行することによる無駄なバス部分へのクロック供給がなくなり、半導体集積回路の消費電力を低減することができる。
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係る半導体集積回路の構成を示す。本実施形態に係る半導体集積回路1は、FPGA11と、FPGA11にさまざまな回路を構成する制御部12と、FPGA11に構成されるさまざまな回路の回路構成データを格納している構成データメモリ13と、半導体集積回路1によって実行される命令を格納する命令メモリ15と、データメモリ16とを備えている。なお、本実施形態で用いる回路構成データは、FPGAに回路を構成するための一般的なデータと同様のものである。
FPGA11には、1または複数個(図1では4個)のCPU14と、命令メモリ15からCPU14に命令を供給するための共有命令バス17と、CPU14とデータメモリ16との間でデータを転送するための共有データバス18と、共有データバス18の使用に関してCPU14を調停するバス調停回路19とが回路構成をされている。
制御部12は、指定されたビット幅および指定された個数のCPU14の回路をFPGA11に構成する機能と、共有命令バス17の回路をFPGA11に構成する機能と、共有データバス18の回路をFPGA11に構成する機能と、バス調停回路19の回路をFPGA11に構成する機能とを有する。なお、本実施形態におけるこれら回路の構成は、一般的な回路構成技術によって行うものとする。
構成データメモリ13は、FPGA11に回路構成をされる8ビットCPU、16ビットCPU、32ビットCPUなどのさまざまなビット幅のCPUの回路構成データと、さまざまなビット幅のCPUに接続することのできる共有命令バスの回路構成データおよび共有データバスの回路構成データとを格納している。
CPU14は、データレジスタおよびアドレスレジスタを有し、独立して命令を実行することができる。したがって、これらCPU14によって並列処理が行われる。
共有命令バス17は、すべてのCPU14と命令メモリ15とに接続するように回路構成をされ、命令メモリ15から命令を受け取り、この命令がどのCPU14によって実行されるのかを判別する機能と、各命令をその命令が実行されるCPUに供給する機能とを有する。
共有データバス18は、すべてのCPU14とデータメモリ16とに接続するように回路構成をされ、CPU14とデータメモリ16との間のデータ転送命令に関して、CPU14からデータメモリ16に指定アドレスを供給する機能と、データメモリ16からCPU14にデータを供給する機能とを有する。
共有データバス18は複数のCPU14によって共有されているため、複数のCPU14によって同時にアクセスされる可能性がある。しかし、共有データバス18は、一度に1個のCPU14のデータしか扱えないため、CPU14間で共有データバス18を使用するタイミングを調整しなければならない。この調整を行うのがバス調停回路19である。
バス調停回路19は、共有データバス18の使用状況を判断するためのレジスタを有する。このレジスタは、共有データバス18がCPU14によって使用されている場合は“1”、どのCPU14にも使用されていない場合は“0”の値を保持する。CPU14がデータメモリ16にアクセスするには、まず、バス調停回路19にバス使用要求信号DT1を発する。バス調停回路19はバス使用要求信号DT1を受けると、レジスタ値を参照して、レジスタ値が“0”の場合は、レジスタ値を“1”にして他のCPU14が共有データバス18を使用できないようにするとともに、バス使用要求信号DT1を発したCPU14にバス使用許可信号DT2を送る。一方、レジスタ値が“1”の場合は、レジスタ値が“0”になるまで、バス使用要求信号DT1を発したCPU14を待機させる。バス使用許可信号DT2を受けたCPU14は、共有データバス18を使用してデータメモリ16にアクセスができるようになる。そして、アクセスが終了すると、バス調停回路19にバス使用終了信号DT3を発する。バス調停回路19はバス使用終了信号DT3を受けると、レジスタ値を“0”にして他のCPU14が共有データバス18を使用できるようにする。
本実施形態に係る半導体集積回路1は、プログラマブルデバイスにCPUの回路を構成するための bit命令が付加されたオブジェクトプログラムを実行することができる。図2は、本実施形態に係る半導体集積回路1が実行するオブジェクトプログラムの一例である。なお、図2のオブジェクトプログラムは、図3に示したソースプログラムから得られたものである。
図2のオブジェクトプログラムは、図3のソースプログラム中に記述された命令の実行に要するビット幅に応じて、各命令に各ビット幅のCPUを割り当てるように生成されている。具体的には、このオブジェクトプログラムは、2個の8ビットCPUおよび1個の16ビットCPUの計3個のCPUによって実行される。オブジェクトプログラムの2行目以降に記述された命令の末尾に付された数字は、その命令がその数字のビット幅のCPUによって実行されることを示している。また、オブジェクトプログラムの2行目以降の命令の末尾に付された数字の後に、さらに“a”や“b”といった記号が付されており、その命令を実行すべきCPUが指定されている。
次に、半導体集積回路1によって図2のオブジェクトプログラムが実行されるときの動作について説明する。なお、オブジェクトプログラム中の個々の命令に対する動作についての説明は省略し、 bit命令に対する動作について説明する。
半導体集積回路1によって図2のオブジェクトプログラムが実行されると、まず、1行目の“bit 16,8,8”が命令メモリ15から制御部12に送られる。制御部12はこの bit命令を受けると、構成データメモリ13から、16ビットおよび8ビットのCPUの回路構成データ、および16ビットおよび8ビットのCPUに接続するための共有命令バスおよび共有データバスの回路構成データを読み込み、FPGA11にこれらの回路構成をする。
図4は、制御部12が bit命令を実行した結果、FPGA11にCPU14−A,14−B,14−C、共有命令バス17および共有データバス18の回路が構成されたところを示す。図2のオブジェクトプログラムの bit命令において、回路構成をされるべきCPUのビット幅を示す数値として“16”が先に指定されているので、16ビットCPUのCPU14−AがFPGA11の領域内でメモリにより近い位置に回路構成をされる。共有データバス18は、CPU14−Aとは16ビット、CPU14−BおよびCPU14−Cとは8ビットで接続されるように回路構成をされる。なお、共有データバス18の下位8ビットはCPU14−A,14−B,14−Cに、上位8ビットはCPU14−Aのみに接続される。
図2のオブジェクトプログラムの2行目以降に記述された命令は、共有命令バス17によって、その命令が実行されるべきCPUに供給される。図2のオブジェクトプログラムにおいて、命令の末尾に付された“16”はCPU14−A、“8a”はCPU14−B、そして“8b”はCPU14−Cでそれぞれ実行されることを表す。CPU14−A,14−B,14−Cは命令を受けると、それぞれ独立してその命令を実行するが、この実行については説明を省略する。
以上、本実施形態によると、半導体集積回路1のFPGA11に回路構成をされるCPU14が、使用頻度が多い順にメモリに近い位置に配置されるため、使用頻度の多い共有データバス18の配線長が短くなり、処理が高速化される。さらに、ビット幅が大きい順にメモリに近い位置に配置することにより、共有データバス18の無駄な配線を削減することができ、FPGA11の回路資源を有効に活用することができる。また、ソースプログラムの実行に必要なビット幅のCPU14をFPGA11に回路構成をすることにより、小さなビット幅の命令を最大ビット幅に拡張して実行することがなくなり、拡張されたバスの部分に無駄に供給されるクロックを削減することができ、半導体集積回路1の消費電力を低減することができる。
なお、構成データメモリ13、命令メモリ15およびデータメモリ16は半導体集積回路1に備えられるとしたが、これらは半導体集積回路1の外部にあるものでもよい。また、構成データメモリ13は、さまざまなビット幅のCPU14の回路構成データ、共有命令バス17の回路構成データおよび共有データバス18の回路構成データを格納しているとしたが、これら回路構成データをビット幅でパラメータ化して格納していてもよい。この場合、制御部12から指定されたビット幅をパラメータとして、指定されたビット幅のCPU14、共有命令バス17および共有データバス18の回路構成データを生成して制御部12に送る機能を有する。
(第2の実施形態)
図5は、本発明の第2の実施形態に係る半導体集積回路の構成を示す。本実施形態に係る半導体集積回路1Aは、メインCPU10と、FPGA11と、FPGA11にさまざまな回路を構成する制御部12と、FPGA11に構成されるさまざまな回路の回路構成データを格納している構成データメモリ13と、半導体集積回路1Aによって実行される命令を格納する命令メモリ15と、データメモリ16と、CPU10およびFPGA11に回路構成をされたCPU14に命令を供給するための共有命令バス17と、CPU10およびFPGA11に回路構成をされたCPU14とデータメモリ16との間でデータを転送するための共有データバス18とを備える。
FPGA11には、1または複数(図5では4個)のCPU14と、共有データバス18の使用に関してCPU10およびCPU14を調停するバス調停回路19と、上記の共有命令バス17とCPU14とを接続するための延長部分と、上記の共有データバス18とCPU14とを接続するための延長部分とが回路構成をされている。なお、本実施形態に係る半導体集積回路1Aの各構成要素については、第1の実施形態と同様であるので説明を省略する。
本実施形態に係る半導体集積回路1Aは、プログラマブルデバイスにCPUの回路を構成するための bit命令が付加されたオブジェクトプログラムを実行することができる。図6は、本実施形態に係る半導体集積回路1Aが実行するオブジェクトプログラムの一例である。なお、図6のオブジェクトプログラムは、図7に示したソースプログラムから得られたものである。
図6のオブジェクトプログラムは、図7のソースプログラム中に記述された命令の実行に要するビット幅に応じて、各命令に各ビット幅のCPUを割り当てるように生成されている。具体的には、このオブジェクトプログラムは、2個の8ビットCPU個および1個の16ビットCPUの計が計3個のCPUならびにメインCPUによって実行される。オブジェクトプログラムの2行目以降に記述された命令の末尾に付された数字は、その命令がその数字のビット幅のCPUによって実行されることを示している。ただし、メインCPUによって実行される命令には数字は付されていない。また、オブジェクトプログラムの2行目以降の命令の末尾に付された数字の後に、さらに“a”や“b”といった記号が付されており、その命令を実行すべきCPUが指定されている。
次に、半導体集積回路1Aによって図6のオブジェクトプログラムが実行されるときの動作について説明する。ここで、メインCPU10は32ビットCPUであるとする。なお、オブジェクトプログラム中の個々の命令に対する動作ついての説明は省略し、 bit命令に対する動作について説明する。
半導体集積回路1Aによって図6のオブジェクトプログラムが実行されると、まず、1行目の“bit 16,8,8”が命令メモリ15から制御部12に送られる。制御部12は bit命令を受けると、構成データメモリ13から、16ビットCPUおよび8ビットCPUの回路構成データ、および16ビットCPUおよび8ビットCPUに接続するための共有命令バスおよび共有データバスの回路構成データを読み込み、FPGA11にこれらの回路構成をする。このとき、半導体集積回路1Aが、 bit命令に指定されたビット幅と同一ビット幅のメインCPUを既に備えていたなら、メインCPUの個数だけ減じて、CPU14の回路構成をするようにする。
図8は、制御部12が bit命令を実行した結果、FPGA11にCPU14−A,14−B,14−C、共有命令バス17の延長部分および共有データバス18の延長部分の回路が構成されたところを示す。図6のオブジェクトプログラムの bit命令において、回路構成をされるべきCPUのビット幅を示す数値として“16”が先に指定されているので、16ビットCPUのCPU14−AがFPGA11の領域内でメモリにより近い位置に回路構成をされる。共有データバス18の延長部分は、CPU14−Aとは16ビット、CPU14−BおよびCPU14−Cとは8ビットで接続されるように回路構成をされる。なお、共有データバス18の下位8ビットはCPU10およびCPU14−A,14−B,14−Cに、下位16ビットはCPU10およびCPU14−Aに、上位16ビットはCPU10のみに接続される。
図6のオブジェクトプログラムの2行目以降に記述された命令は、共有命令バス17によって、その命令が実行されるべきCPUに供給される。図6のオブジェクトプログラムにおいて、命令の末尾に付された“16”はCPU14−A、“8a”はCPU14−B、“8b”はCPU14−C、そして何も付されていないものはメインCPU10でそれぞれ実行されることを表す。CPU10およびCPU14−A,14−B,14−Cは命令を受けると、それぞれ独立してその命令を実行するが、各命令の実行については説明を省略する。
以上、本実施形態によると、FPGA11に回路構成をされるCPU14が、使用頻度が多い順にメモリに近い位置に配置されるため、使用頻度の多い共有データバス18の配線長が短くなり、処理が高速化される。さらに、ビット幅が大きい順にメモリに近い位置に配置することにより、共有データバス18の無駄な配線を削減することができ、FPGA11の回路資源を有効に活用することができる。また、ソースプログラムの実行に必要なCPUでメインCPU10を除くCPU14をFPGA11に回路構成をすることにより、小さなビット幅の命令を最大ビット幅に拡張して実行することがなくなり、拡張されたバスの部分に無駄に供給されるクロックを削減することができ、半導体集積回路1Aの消費電力を低減することができる。
なお、構成データメモリ13、命令メモリ15およびデータメモリ16は半導体集積回路1Aに備えられるとしたが、これらは半導体集積回路1Aの外部にあってもよい。また、構成データメモリ13は、さまざまなバス幅のCPU14の回路構成データ、共有命令バス17の回路構成データおよび共有データバス18の回路構成データを格納しているとしたが、これら回路構成データをビット幅でパラメータ化して格納していてもよい。この場合、制御部12から指定されたビット幅をパラメータとして、指定されたビット幅のCPU14、共有命令バス17および共有データバス18の回路構成データを生成して制御部12に送る機能を有する。
以上のように、本発明に係る半導体集積回路は、低消費電力で動作するため、携帯電話用のLSIなどとして有用である。
本発明の第1の実施形態に係る半導体集積回路のブロック図である。 本発明の第1の実施形態に係る半導体集積回路が実行するオブジェクトプログラムの一例である。 図2のオブジェクトプログラムの元となるC言語プログラムである。 本発明の第1の実施形態に係る半導体集積回路が図2のオブジェクトプログラムを実行してCPUが回路構成されたところを示した図である。 本発明の第2の実施形態に係る半導体集積回路のブロック図である。 本発明の第2の実施形態に係る半導体集積回路が実行するオブジェクトプログラムの一例である。 図6のオブジェクトプログラムの元となるC言語プログラムである。 本発明の第2の実施形態に係る半導体集積回路が図6のオブジェクトプログラムを実行してCPUが回路構成されたところを示した図である。 C言語プログラムの1例である。 従来のコンパイラ装置が図9のC言語プログラムをコンパイルして生成したオブジェクトプログラムである。
符号の説明
1,1A 半導体集積回路
10 半導体集積回路に備えられたCPU(メインCPU)
11 プログラマブルデバイス(FPGA)
12 制御部
13 構成データメモリ
14 プログラマブルデバイスに回路構成をされたCPU
15 命令メモリ
16 データメモリ
17 共有命令バス
18 共有データバス
19 バス調停回路

Claims (11)

  1. 回路構成が書き換え可能なプログラマブルデバイスを備えた半導体集積回路であって、
    前記プログラマブルデバイスに、指定されたビット幅および指定された個数のCPUならびに該CPUに接続されて命令メモリが保持する命令を該CPUに供給する共有命令バスの回路構成をする制御部を備え
    前記共有命令バスは、前記命令メモリから受け取った命令が前記回路構成をされたCPUのいずれによって実行されるかを判別する機能と、前記回路構成をされたCPUのうち当該命令を実行すべきものに当該命令を供給する機能とを有する
    ことを特徴とする半導体集積回路。
  2. 請求項1記載の半導体集積回路において、
    前記制御部は、
    CPU回路構成データを参照して、前記プログラマブルデバイスに、指定されたビット幅および指定された個数のCPUの回路構成をするものである
    ことを特徴とする半導体集積回路。
  3. 請求項2記載の半導体集積回路において、
    前記CPU回路構成データは、ビット幅でパラメータ化されている
    ことを特徴とする半導体集積回路。
  4. 請求項記載の半導体集積回路において、
    前記制御部は、
    共有命令バス回路構成データを参照して、前記プログラマブルデバイスに、前記共有命令バスの回路構成をするものである
    ことを特徴とする半導体集積回路。
  5. 請求項1記載の半導体集積回路において、
    前記制御部は、
    前記プログラマブルデバイスに、データメモリと前記CPUとの間でデータを転送する共有データバスの回路構成をするものである
    ことを特徴とする半導体集積回路。
  6. 請求項記載の半導体集積回路において、
    前記制御部は、
    共有データバス回路構成データを参照して、前記プログラマブルデバイスに、前記共有データバスの回路構成をするものである
    ことを特徴とする半導体集積回路。
  7. 回路構成が書き換え可能なプログラマブルデバイスを備えた半導体集積回路であって、
    前記プログラマブルデバイスに、指定されたビット幅および指定された個数のCPUならびに該CPUに接続されるバスの回路構成をする制御部、及び
    メモリを備え、
    前記制御部は、
    前記プログラマブルデバイスに回路構成をされるCPUのうち、使用頻度が多い順に前記メモリに近い位置に配置されるように、前記指定されたビット幅および指定された個数のCPUの回路構成をするものである
    ことを特徴とする半導体集積回路。
  8. 回路構成が書き換え可能なプログラマブルデバイスを備えた半導体集積回路であって、
    前記プログラマブルデバイスに、指定されたビット幅および指定された個数のCPUならびに該CPUに接続されるバスの回路構成をする制御部、及び
    メモリを備え、
    前記制御部は、
    前記プログラマブルデバイスに回路構成をされるCPUのうち、ビット幅が大きい順に前記メモリに近い位置に配置されるように、前記指定されたビット幅および指定された個数のCPUの回路構成をするものである
    ことを特徴とする半導体集積回路。
  9. 回路構成が書き換え可能なプログラマブルデバイスを備えた半導体集積回路であって、
    前記プログラマブルデバイスに、指定されたビット幅および指定された個数のCPUならびに該CPUに接続されるバスの回路構成をする制御部、及び
    前記プログラマブルデバイスに回路構成をされたCPUとは別個に、CPUを備えた
    ことを特徴とする半導体集積回路。
  10. 請求項記載の半導体集積回路において、
    前記制御部は、
    前記指定されたビット幅と当該半導体集積回路に備えられたCPUのビット幅とが等しい場合、該ビット幅に対して指定された個数から当該半導体集積回路に備えられたCPUのうち該ビット幅と等しいビット幅のCPUの個数を減じて、前記プログラマブルデバイスにCPUの回路構成をするものである
    ことを特徴とする半導体集積回路。
  11. 請求項記載の半導体集積回路において、
    前記制御部は、
    前記指定されたビット幅が当該半導体集積回路に備えられたCPUのビット幅と等しいビット幅がなく、前記指定されたビット幅が当該半導体集積回路に備えられたCPUのビット幅よりも小さい場合、該指定されたビット幅に対して指定された個数から当該半導体集積回路に備えられたCPUの個数を減じて、前記プログラマブルデバイスにCPUの回路構成をするものである
    ことを特徴とする半導体集積回路。
JP2004250861A 2004-08-30 2004-08-30 半導体集積回路 Expired - Fee Related JP3981373B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004250861A JP3981373B2 (ja) 2004-08-30 2004-08-30 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004250861A JP3981373B2 (ja) 2004-08-30 2004-08-30 半導体集積回路

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001380413A Division JP3606836B2 (ja) 2001-12-13 2001-12-13 コンパイラ装置

Publications (2)

Publication Number Publication Date
JP2005050363A JP2005050363A (ja) 2005-02-24
JP3981373B2 true JP3981373B2 (ja) 2007-09-26

Family

ID=34270217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004250861A Expired - Fee Related JP3981373B2 (ja) 2004-08-30 2004-08-30 半導体集積回路

Country Status (1)

Country Link
JP (1) JP3981373B2 (ja)

Also Published As

Publication number Publication date
JP2005050363A (ja) 2005-02-24

Similar Documents

Publication Publication Date Title
JP4724461B2 (ja) システムlsi
JP2014157508A (ja) 演算装置、アレイ型演算装置およびその制御方法、情報処理システム
WO2002021290A1 (en) Inter-processor communication system
JP2009064411A (ja) データおよび命令をコンピュータにロードするための方法および装置
Duran et al. A 32-bit RISC-V AXI4-lite bus-based microcontroller with 10-bit SAR ADC
JP2009140304A (ja) 半導体チップ
US20070073953A1 (en) Performing an N-bit write access to an MxN-bit-only peripheral
JP2010226524A (ja) プログラマブル論理回路、半導体集積回路装置、情報処理システムおよび制御プログラム
JP2011113568A (ja) 帯域幅同期化回路及び帯域幅同期化方法とこれを含むデータプロセッシングシステム
JP4865960B2 (ja) データ処理装置およびその制御方法
JP3981373B2 (ja) 半導体集積回路
TWI397855B (zh) 減少接腳數之方法以及使用其之微處理器
US20110302391A1 (en) Digital signal processor
JP2008041059A (ja) マルチプロセッサ制御装置及び情報処理装置
JP2006302132A (ja) 信号処理装置及び再構成可能論理回路装置及び再構成可能順序回路
JP6385761B2 (ja) バスブリッジ及びバスブリッジ群
JP3606836B2 (ja) コンパイラ装置
JP2008176518A (ja) マイクロコンピュータ
JP5744206B2 (ja) 描画制御装置
JPS60218152A (ja) マイクロ・プロセツサ
JP4227789B2 (ja) 集積回路装置およびデータ処理システム
JP3906865B2 (ja) 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム
US8677033B2 (en) Method for initializing registers of peripherals in a microcontroller
JP5123255B2 (ja) アーキテクチャ検証装置
JP3540802B2 (ja) 命令生成方法、命令生成方法及び情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060808

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061003

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: 20070605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070629

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100706

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110706

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110706

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120706

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees