JP2009048264A - 半導体集積回路装置 - Google Patents

半導体集積回路装置 Download PDF

Info

Publication number
JP2009048264A
JP2009048264A JP2007211467A JP2007211467A JP2009048264A JP 2009048264 A JP2009048264 A JP 2009048264A JP 2007211467 A JP2007211467 A JP 2007211467A JP 2007211467 A JP2007211467 A JP 2007211467A JP 2009048264 A JP2009048264 A JP 2009048264A
Authority
JP
Japan
Prior art keywords
circuit
signal
instruction
critical path
clock
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.)
Pending
Application number
JP2007211467A
Other languages
English (en)
Inventor
Koji Muranishi
公二 村西
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2007211467A priority Critical patent/JP2009048264A/ja
Priority to US12/132,155 priority patent/US20090049277A1/en
Publication of JP2009048264A publication Critical patent/JP2009048264A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Microcomputers (AREA)

Abstract

【課題】クリティカルパス上でのデータ信号の遅延による誤動作を防ぐことができる半導体集積回路を得ることが目的である。
【解決手段】命令先読み回路120は、マスタ104から命令が実行されていることを示すop_fetch信号、マスタ104が発行した命令のデータ受信を示し、次の命令を実行できることを示すready信号、クロックマスク回路130から供給されるクロックclk1信号及びメモリ108からのリードデータrdata1が入力され、クリティカルパス420を通る命令が予め予測されており、将来実行されることを示すcri_flag信号が出力される。なお、前提条件は、クリティカルパス420を通る際、第2のAND回路522に接続されるrdata1の値は、命令コードが乗算命令”011”のときである。
【選択図】図5

Description

本発明は、半導体集積回路装置に係り、特に、マイクロコントローラのクリティカルパス制御に関する。
従来、マイクロコントローラは、クロック生成回路、中央処理装置(Central Processing Unitであり、以下、CPUと呼ぶ)、メモリコントローラ、メモリ、及びレギュレータで構成されている。なお、マイクロコントローラ(microcontroller)とは、コンピュータシステムを1つの集積回路に組み込んだものであり、電子機器の制御用に最適化されている。パーソナルコンピュータに用いられる汎用マイクロプロセッサと比較すると、自己充足性と低価格性を重視したタイプのマイクロプロセッサと言える。
レギュレータは、外部から供給された電源電圧を基に、電圧を調整し、各回路(クロック生成回路、CPU、メモリコントローラ、及びメモリ)へ調整された電圧を供給する。また、クロック生成回路は、外部から入力されたクロック信号を基に、クロック信号を生成し、生成されたクロック信号を各回路(レギュレータ、CPU、メモリコントローラ、及びメモリ)へ供給する。
そこで、CPUは、定められたプログラムに基づいて処理を実行するために命令フェッチ(CPUからの命令を受けて応答を返すメモリコントローラを介し、メモリに格納されているプログラムを、CPUが読み込むこと)を行う。
そして、CPUから命令フェッチが実行されているので、メモリコントローラは、メモリからデータを読み込むため、メモリにアクセス(リードアクセス)し、指定されているアドレスに格納されているデータを読み出す。
また、メモリコントローラは読み込まれたデータを受け取り、CPUにそのデータを返し、CPUがメモリコントローラから受け取ったデータを基に、プログラムを実行する。なお、CPUが命令フェッチによって受け取ったデータには、CPUが実行すべき命令を判別できるように命令コード(命令オペコード)が格納されている。
ところで、クリティカルパスの演算時間でマイクロプロセッサの処理時間が決定されることがないように、命令コードに応じてマイクロプロセッサを動作させるクロック周波数を可変制御する構成が提案されている(特許文献1参照)。
特開平8−161286号公報
しかしながら、クリティカルパスでのデータ信号の遅延による誤動作を防ぐため、クリティカルパスを通るデータ信号を、クロック周波数(動作周波数、又は単にクロックと呼ばれる)の1周期(1サイクル)以内で送信する構成である必要がある。
例えば、クリティカルパスのみが30MHzのクロック周波数でしか動作させることができず、それ以外の回路が50MHzのクロック周波数で動作している場合、全ての回路は30MHzのクロック周波数が最高周波数となり、その30MHzのクロック周波数で動作させなければならない。
そこで、クリティカルパスを通るときのみクロック周波数を下げることも考えられるが、この場合、ソフトウェアでクロック周波数の切り替えシーケンスを守る必要があり、クロック周波数の切り替えを行うための余分な命令により、回路全体の性能を低下させている。
また、クリティカルパスのみにおいて、応答をマルチサイクル方式により、遅らせるという方法も考えられるが、現在、IP(Intellectual Property)を流用して回路設計をすることが多いため、IP内部を変更すると内部機能変更に伴う設計・検証工数が膨大となる。
さらに、常時高電圧を与えることにより、クリティカルパスを通るパスの素子の遅延、及び配線遅延等の遅延を小さくすることが可能だが、高電圧を供給することにより電力を多く消費する。
本願発明は、上記事実を考慮し、クリティカルパス上でのデータ信号の遅延による誤動作を防ぐことができる半導体集積回路装置を得ることが目的である。
請求項1に記載の発明は、半導体集積回路が動作する際、各回路間で処理の同期を取るための基準となるタイミングである動作周波数を生成する動作周波数生成手段と、半導体集積回路内部で所定の素子間にデータ信号が伝搬する際、最も時間のかかる経路であるクリティカルパスを抽出する抽出手段と、前記抽出手段により、抽出された前記クリティカルパスに関する命令を先読みする命令先読み実行手段と、前記クリティカルパスの経路を通る際、前記命令先読み実行手段を用いて、前記動作周波数の所定周期以内に前記データ信号の送信を実現するよう処理形態を変更する処理形態変更手段と、を有することを特徴としている。
請求項2に記載の発明は、請求項1に記載の発明において、前記処理形態変更手段は、前記クリティカルパスの経路を通る際、前記命令先読み実行手段を用いて、前記動作周波数を調整し、前記動作周波数の前記所定周期以内に前記データ信号の送信完了を実現することを特徴としている。
請求項3に記載の発明は、請求項1に記載の発明において、前記処理形態変更手段は、前記クリティカルパスの経路を通る際、前記命令先読み実行手段を用いて、信号伝搬の立ち上がり時間に相関する信号強度レベルを調整し、前記動作周波数の前記所定周期以内に前記データ信号の送信完了を実現することを特徴としている。
請求項4に記載の発明は、請求項3に記載の発明において、記信号強度レベルは、電圧の増減であることを特徴としている。
請求項5に記載の発明は、請求項1から請求項4のいずれか1項記載の発明において、前記所定周期は、1周期であることを特徴としている。
以上説明したように、本願発明によれば、クリティカルパス上でのデータ信号の遅延による誤動作を防ぐことができるという効果が得られる。
(本願発明の第1の実施の形態)
以下に、本願発明の第1の実施の形態を説明する。
図1は、本願発明の第1の実施の形態におけるマイクロコントローラ100を示す構成図である。
このマイクロコントローラ100は、クロック生成回路102、マスタ104、スレーブ106、メモリ108、及びレギュレータ110で構成されている。
クロック生成回路102では、クロックマスク回路130(処理形態変更手段)を含んで構成されており、マイクロコントローラ100外部から供給されるクロックclk0信号をマイクロコントローラ100内部の各ブロックに供給する機能を有している。なお、クロックclk0信号(他のクロック信号も含む)は、コンピュータ内部の各回路、又は各回路の各素子間での処理の同期をとるためのテンポを示す信号のことであり、このクロックclk0信号(他のクロック信号も含む)の速さをクロック周波数(動作周波数、単にクロックとも呼ばれる)と呼ぶ。なお、動作周波数であるクロック周波数は、動作周波数生成手段によって生成され、半導体集積回路が動作する際、各回路間で処理の同期を取るための基準となるタイミングとなる。
さらに、クロックマスク回路130については、図6において、詳細に説明する。
また、マスタ104では、例えば、CPUで構成され、定められたプログラム(メモリ108等に格納されている)に従って処理を行う機能を有している。なお、このマスタ104は、データ処理のための命令(指示)を出力するものならば何でもよい。
さらに、スレーブ106では、例えば、メモリコントローラとして命令先読み回路120(命令先読み実行手段)を含んで構成され、マスタ104からのアクセス信号を受信し、応答を返す機能を有している。なお、スレーブ106は、システムコントローラであってもよく、DMA(Direct Memory Access)等の方式を採用してもよい。また、命令先読み回路120は、図5において、詳細に説明する。
また、メモリ108は、データ及びプログラム等を記憶する装置(格納場所)である。
さらに、レギュレータ110は、マイクロコントローラ100の外部から供給される電源電圧Vdd0をマイクロコントローラ100内部の各回路ブロック(クロック生成回路102、マスタ104、スレーブ106、及びメモリ108)に供給する機能を有する。なお、レギュレータ(Regulator)110は、調整装置という意味であり、コンピュータシステムでは、電源安定装置、又は変圧装置と呼ばれる。詳細には、本願発明では、3端子レギュレータを使用しており、入力、接地、出力の3端子を持ち、入力された直流電源を平滑定電流化して出力する電圧整流素子である。
詳細に説明すると、クロック生成回路102は、マスタ104、スレーブ106、メモリ108、及びレギュレータ110に接続されており、クロック生成回路102から出力されるクロックclk信号は、マスタ104、スレーブ106、メモリ108、及びレギュレータ110に送信されている。また、レギュレータ110は、クロック生成回路102、マスタ104、スレーブ106、及びメモリ108に接続されており、レギュレータ110から出力される電源電圧Vddは、クロック生成回路102、マスタ104、スレーブ106、及びメモリ108に供給される。
このマイクロコントローラ100は所定のシーケンスによって動作する。なお、シーケンスとは、シーケンス制御(Sequental Control)のことであり、予め定められた順序又は手続きに従って、制御の各段階を逐次進めていく制御のことであるが、そのときの各段階に用いられる用語を予め説明しておく。
(命令フェッチ、op_fetch信号、及びready信号)
マスタ104は、実行すべきプログラムを実行するために命令フェッチ(プロセッサが処理する命令コードをメモリから取り出し、レジスタに転送すること)を行う。また、マスタ104は、命令フェッチが実行されていることを示すop_fetch信号をスレーブ106に出力する。そして、マスタ104が発行した命令及び次の命令を実行できることを示すready信号を受信する。詳細には、この命令フェッチアクセスは、スレーブ106を介してメモリ108に格納されているプログラムをリードする(読み込む)。
(リードアクセス)
マスタ104から命令フェッチが実行されたため、スレーブ106はメモリに対してリードアクセス(所望のデータを読み込むためのアクセス)を行う。
(リードデータrdata1)
メモリ108は、スレーブ106からのリードアクセスに対応したアドレスに格納されているデータであるリードデータrdata1を出力し、スレーブ106はリードデータrdata1を受信する。
(リードデータrdata2)
スレーブ106は、メモリ108からリードデータrdata1を受信すると、マスタ104にリードデータrdata2を送信する。
(クロックclk1信号)
クロックclk1信号は、クロックマスク回路130から供給され、命令先読み回路120を動作させるクロック(クロック信号)である。
(cri_flag信号)
cri_flag信号は、命令先読み回路120から出力され、クリティカルパス420を通る命令が予め予測(特定)されており、将来実行されることを示す信号である。なお、クリティカルパス420を通る命令は予め予測(特定)されているが、それは、コンピュータ等を用いてシミュレーションして得られた結果でもあり、他にもクリティカルパス420を通る命令が特定できる手段があればどのような手段を用いてもよい。
(命令実行)
マスタ104は、スレーブ106を介してメモリ108から受け取ったリードデータrdata2に基づいてプログラムを実行する。詳細には、マスタ104がスレーブ106へ送信した命令フェッチ、op_fetch信号、及びready信号を基にして受信したリードデータrdata2には、マスタ104が実行すべき命令を判別できるように命令コード(図2の命令オペコード)が格納されている。そして、そのリードデータrdata2に格納されている命令コード、及びスレーブ106から送信されてくるready信号に基づき、プログラムを実行する。
図2に本願発明の第1の実施の形態における命令フェッチ時のリードデータ例200を示す。
命令フェッチ時のリードデータには、図2に示すような命令コード及び命令オペコード等のデータが格納されている。
命令オペコードとは、マスタ104が実行すべき命令がコード化されているものであり、リードデータrdata1の8ビット目から10ビット目に格納されているものとする(図3の命令オペコード例300参照)。
例えば、命令コードのロード命令は命令オペコード”000”であり、命令コードのストア命令は命令オペコード”001”であるというように、命令コードと命令オペコードの関係を示している。
なお、その他のビットには、マスタ104が命令を実行する際に使用するソースアドレス及びディスティネーションアドレス等が格納されている。
図3に本願発明の第1の実施の形態における命令フェッチ時のリードデータrdata1例300を示す。
命令フェッチ時のリードデータrdata1例300は、図2の命令オペコード(rdata2のOpcode)に示されている命令を対応させたものである。
マスタ104は、命令フェッチにより受信したリードデータrdata2に従ってプログラムを実行する。その際、命令の種類によってはクリティカルパス420を通る命令が存在する。
また、クリティカルパス420とは、信号の伝搬に最も時間のかかるパス(経路)のことであり、回路の動作を規制するパスのことである。なお、クリティカルパス420は、抽出手段によって抽出され、予め予測(特定)されているが、それは、コンピュータ等を用いてシミュレーションして得られた結果であり、他にもクリティカルパス420が特定できる手段があればどのような手段を用いてもよい。
従って、マイクロコントローラ100の動作の性能を示す最高クロック周波数(最高動作周波数)は、このクリティカルパス420により決定される。信号の伝搬には、ゲート遅延及び配線遅延などがある。
なお、ゲート遅延とは、信号がAND回路等のゲートを通る際に発生する遅延のことである。さらに、配線遅延とは、文字通り、配線に信号が伝わるタイミングの遅れのことであり、微細化が進み、トランジスタ性能が極限まで高速化した結果、トランジスタ同士を接続配線で起こる信号の送信の遅れが、マイクロコントローラ100全体の高性能化を阻害する要因になってきている。
そして、0ビット目から3ビット目までは、ソースアドレスRs(典拠アドレスであり、処理に使うデータの参照先とするアドレスのことである)を示しており、rdata1[3:0]と表す。また、4ビット目から7ビット目までは、ディスティネーションアドレスRd(目的地アドレスであり、処理結果の格納先とするアドレスのことである)を示しており、rdata1[7:4]と表す。さらに、8ビット目から10ビット目までは、Opcode(命令オペコード)を示しており、rdata1[10:8]と表す。また、11ビット目から31ビット目までは、その他のコードetcを示しており、rdata1[31:11]と表す。このように命令フェッチ時のリードデータrdata1例300は”0”及び”1”のコードで表される32ビットバス構成で示されている。
図4に本願発明の第1の実施の形態におけるクリティカルパス420の回路例400を示す。
第1のフリップフロップ回路402、第2のフリップフロップ回路404、及び第3のフリップフロップ回路406は、クロック生成回路102で生成されたクロックclk信号の立ち上がりエッジで動作する。
第1のフリップフロップ回路402は、4段のバッファ410、412、414、416を介して第2のフリップフロップ回路404に接続されている。
そこで、第1のフリップフロップ回路402に入力された信号Iは、4段のバッファ410、412、414、416を介して、第2のフリップフロップ回路404に信号VIが入力され、信号VIIを出力する。
さらに、第3のフリップフロップ回路406と第1のフリップフロップ回路402の間に1段のバッファ418を介して接続されている。
詳細には、第1のフリップフロップ回路402から出力された信号IIは、バッファ410に入力され、信号IIIを出力する。また、信号IIIを入力したバッファ412は信号IVを出力する。さらに、信号IVを入力したバッファ414は信号Vを出力する。そして、信号Vを入力したバッファ416は信号VIを出力し、信号VIを入力した第2のフリップフロップ回路404は、信号VIIを出力する。
なお、クロックclk信号は、第1のフリップフロップ回路402、第2のフリップフロップ回路404、及び第3のフリップフロップ回路406に入力されて同期信号として使用される。また、電源電圧Vddは、各回路(第1のフリップフロップ回路402、第2のフリップフロップ回路404、第3のフリップフロップ回路406、及びバッファ410、412、414、416、418)にそれぞれ供給される。
ここで、この回路のクリティカルパス420は第1のフリップフロップ回路402から第2のフリップフロップ回路404のパスであると仮定する。
また、これらの全てのセル(第1のフリップフロップ回路402、第2のフリップフロップ回路404、第3のフリップフロップ回路406、及びバッファ410、412、414、416、418のセル)は、電源電圧Vddで動作する。なお、セルとは、半導体集積回路を設計する際、半導体の機能を表す最小単位のことである。
図5に本願発明の第1の実施の形態における命令先読み回路120の回路図を示す。
命令先読み回路120には、op_fetch信号、ready信号、クロックマスク回路130から供給されるクロックclk1信号、及びメモリ108からのリードデータrdata1が入力され、cri_flag信号が出力される。
命令先読み回路120の第4のフリップフロップ回路510、第5のフリップフロップ回路512、及び第6のフリップフロップ回路514は、クロックclk1信号の立ち上がりエッジで動作する。
第1のAND回路520の出力は第4のフリップフロップ回路510の入力と接続され、第4のフリップフロップ回路510の出力は第2のAND回路522の入力と接続されている。
op_fetch信号及びready信号が入力される第1のAND回路520の出力信号は、第1のフリップフロップ回路510を介し、第2のAND回路522に送信される。
命令先読み回路120の外部からリードデータrdata1[10]が、インバータ530を介し、第2のAND回路522の入力と接続されている。また、命令先読み回路120の外部からリードデータrdata1[9]及びリードデータrdata1[8]が、第2のAND回路522の入力と接続されている。さらに、第2のAND回路522の出力は、第1のセレクタ回路540の入力、及びインバータ534の入力に接続されている。
第2のAND回路522では、第1のフリップフロップ回路510の出力信号、リードデータrdata1の10ビット目をインバータ530で反転した信号、リードデータrdata1の9ビット目の信号、及びリードデータrdata1の8ビット目の信号を第2のAND回路522に入力している。
また、第2のAND回路522の出力信号は、第1のセレクタ回路540のセレクト信号(第1のセレクタ回路540の出力信号を選択制御するためのコントロール信号)、及びインバータ534の入力信号として送信される。
なお、第2のAND回路522に接続されるリードデータrdata1の値は、命令フェッチのデータがクリティカルパス420を通る命令の乗算命令(図2の”011”)を示すものである(前提条件)。
第1のセレクタ回路540には、第2のAND回路522の出力、1’b1(1ビットのバイナリ(2進数)の”1”)及び第3のAND回路524の出力が接続されている。また、第5のフリップフロップ回路512の入力に第1のセレクタ回路540の出力が接続され、第5のフリップフロップ回路512の出力に第2のセレクタ回路542及び第3のAND回路524が接続されている。
第5のフリップフロップ回路512には、第1のセレクタ回路540の出力信号が入力されている。そこで、第1のセレクタ回路540に入力されるセレクト信号が”H”のときには、第1のセレクタ回路540の出力信号は”H”(1’b1)となる。また、第1のセレクタ回路540に入力されるセレクト信号が”L”のときには、第1のセレクタ回路540の出力信号は第3のAND回路524の出力信号が出力される。
なお、第5のフリップフロップ回路512の出力信号は、cri_flag信号として、命令先読み回路120から出力され、第3のAND回路524の入力信号及び第2のセレクタ回路542のセレクト信号となって送信される。
第2のセレクタ回路542には、第5のフリップフロップ回路512の出力、カウンタ回路560の出力、及び第6のフリップフロップ回路514の出力が接続されている。また、インバータ534の出力が非同期リセット端子(ネガリセット端子)rnを介し、第6のフリップフロップ回路514の入力に接続されており、第2のセレクタ回路の出力も第6のフリップフロップ回路514の入力に接続されている。さらに、第6のフリップフロップ回路514の出力は、第2のセレクタ回路542の入力、カウンタ回路560の入力、及び比較回路550の入力に接続されている。そして、比較回路550では、第6のフリップフロップ回路514の出力、及び’d100(decimal digits(10進数)の”100”)が入力されている。また、第3のAND回路524のもう一方の入力には、比較回路550の出力がインバータ532を介して接続されている。
第6のフリップフロップ回路514には、第2のセレクタ回路542の出力信号が入力されている。そこで、第2のセレクタ回路542に入力されるセレクト信号が”H”のときには、第2のセレクタ回路542の出力信号は、カウンタ回路560によって、第6のフリップフロップ回路514の出力信号+1の値となる。また、第2のセレクタ回路542に入力されるセレクト信号が”L”のときには、第2のセレクタ回路542の出力信号は、第6のフリップフロップ回路514の出力信号が出力される。
そして、第6のフリップフロップ回路514には、非同期リセット信号(反転リセットを示すネガリセット信号)が、インバータ534及びネガリセット端子rnを介し”L”のとき”0”を保持し、リセットを行う。また、比較回路550は、第6のフリップフロップ回路514の出力信号と固定値の10進数の”100”と比較し、第6のフリップフロップ回路514の値が100になったときに出力信号”H”とし、それ以外の場合は出力を”L”とする回路である。詳細には、第6のフリップフロップ回路514の値が100になり、出力信号”H”となったときには、第6のフリップフロップ回路514の値はリセットされ、出力信号”L”のときには、第6のフリップフロップ回路514の値は+1ずつカウントを続行する。
また、第4のフリップフロップ回路510、第5のフリップフロップ回路512、第6のフリップフロップ回路514には、それぞれ同期して動作するようにクロックclk1信号が入力されている。
さらに、非同期リセット信号については、一番はじめは、第2のAND回路522のパルスが立ち上がったときをトリガーとして非同期にリセットをかける。
なお、リードデータrdata1[10:8]は乗算命令の”011”を前提条件としているが、これは、乗算命令がクリティカルパス420を通る際に時間が最もかかりやすいことから選ばれたものである。従って、クリティカルパス420を通る際、乗算命令でない場合、例えば、AND命令”101”の場合には、リードデータrdata1[10]に入力される場所にインバータ530はなく、リードデータrdata1[9]に入力される場所にインバータ530が設置される。以上、述べたようにクリティカルパス420において、どんな命令に時間がかかるか、どの程度の頻度で関わるかなどの条件を基に、ある程度の場所が分かって、はじめて、素子や配線等の遅延が大きくなることが前提条件となるので、本願発明のような乗算命令が前提条件とならない場合もある。
図6に本願発明の第1の実施の形態におけるクロックマスク回路130の回路図を示す。
第3のセレクタ回路630には、コントローラ信号として命令先読み回路120からの出力(cri_flag信号)、固定値”0”、及びインバータ620の出力が接続されている。また、第3のセレクタ回路630の出力は、第7のフリップフロップ回路610の入力に接続されている。さらに、第7のフリップフロップ回路610では、第7のフリップフロップ回路610の出力はインバータ620の入力及びOR回路640の入力に接続されている。なお、クロックclk0信号が、マイクロコントローラ100の外部から、第7のフリップフロップ回路610の入力、及びOR回路640の入力に接続されている。
クロックマスク回路130は、マイクロコントローラ100の外部から供給されるクロックclk0信号、及び命令先読み回路120からの出力信号であるcri_flag信号が入力される。また、クロックマスク回路130は、命令先読み回路120を動作させるクロックclk1信号を出力する。さらに、クロックマスク回路130は、マスタ104、スレーブ106、メモリ108、及びレギュレータ110を動作させるクロックclk信号を出力する。
入力信号cri_flag信号は、第3のセレクタ回路630のセレクト信号として送信される。
第3のセレクタ回路630は、セレクト信号(cri_flag信号)が”0”のときには第3のセレクタ回路630の出力は”0”で固定される。セレクト信号(cri_flag信号)が”1”のときには第3のセレクタ回路630の出力信号はインバータ620の出力信号を選択する。
第7のフリップフロップ回路610の出力信号は、インバータ620を介して、第3のセレクタ回路630に送信される。また、第7のフリップフロップ回路610の出力信号は、OR回路640の入力信号として入力される。なお、第7のフリップフロップ回路610には、クロックclk0信号がマイクロコントローラ100の外部から入っているので、初期値”0”が保持されている。
OR回路640のもう一方の入力には、クロックclk0信号が入力され、出力信号はクロックclk信号としてクロックマスク回路130から出力される。なお、もう一方の出力信号クロックclk1信号はクロックclk0信号がそのまま送信される(クロックclk1信号=クロックclk0信号)。
以下、本願発明の第1の実施の形態の作用を説明する。
図7に本願発明の第1の実施の形態におけるタイムチャート700を示す。
本願発明の第1の実施の形態において、乗算命令時にクリティカルパス420を通ると仮定する(前提条件)。
時刻T1において、マスタ104から命令フェッチAAAが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパス420における乗算命令”011”である。
時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120の第2のAND回路522、第1のセレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
時刻T5において、命令先読み回路120の第2のAND回路522及び第1のセレクタ回路540の出力信号が”L”となり、命令先読み回路120の第5のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、第6のフリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T4において、第2のAND回路522の”H”信号がトリガーパルスとなってカウント開始している。また、cri_flag信号が”H”になることにより、クロックマスク回路130の第7のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクしていく。さらに、マスタ104は、次の命令BBBの命令フェッチを出力する。
時刻T6において、通常のクロック周波数であるクロックclk1信号(クロックclk0信号)の周期は遅くなり、クリティカルパス420を通っても誤動作を起こさないように、通常のクロック周波数の半分の速度に落としたクロックclk信号に変更される。
時刻T7において、命令先読み回路120の第6のフリップフロップ回路514は’d100(10進数の100)となり、命令先読み回路120の第5のフリップフロップ回路512の入力信号は”L”となる。
時刻T8において、命令先読み回路120の第5のフリップフロップ回路512は”L”となるため、cri_flag信号も”L”となり、通常のクロック周波数の半分の速度に変更されたクロックclk信号は通常のクロック周波数に戻って動作する。
図8に本願発明の第1の実施の形態を実施した場合のクリティカルパス420を介したタイムチャート800を示す。
タイムチャート800は、図4の回路のタイムチャートである。
(経過1−1)時刻T1において、クロックclk信号の立ち上がりにより第1のフリップフロップ回路402の信号Iが”1”に変化する。
(経過1−2)時刻T2において、クロックclk信号の立ち上がりで信号Iが第1のフリップフロップ回路402に保持される。
(経過1−3)時刻T3において、信号IIが”1”に変化する。
(経過1−4)時刻T4において、信号IIIが”1”に変化する。
(経過1−5)時刻T5において、信号IVが”1”に変化する。
(経過1−6)時刻T6において、信号Vが”1”に変化する。
(経過1−7)時刻T7において、信号VIが”1”に変化する。
(経過1−8)時刻T8において、信号VIが”1”に変化するとき、クロックclk信号の立ち上がりエッジはないため、第1のフリップフロップ回路402で保持したクロックclk信号の次の立ち上がりエッジはない。
(経過1−9)時刻T9において、クロックclk信号の立ち上がりで入力データを保持するので第2のフリップフロップ回路404は信号VIを保持する。
(経過1−10)時刻T10において、信号VIIが”1”と出力されるため、第1のフリップフロップ回路402から第2のフリップフロップ回路404までの信号伝搬時間が、クロックclk信号のクロック周波数の所定周期である1周期(1サイクル)以内に収まる。
従って、本願発明の第1の実施の形態によれば、クリティカルパス420を通る命令を先読みすることにより、クリティカルパス420を通るときのみクロック周波数の周波数を遅くすることができる。
また、クリティカルパス420により、マイクロコントローラ100の最高周波数を下げざるを得ない場合でも、命令先読み回路120を用いて、命令を先読みすることによって、その経路を通る期間だけクロック周波数を遅くし、随時、最適なクロック周波数でマイクロコントローラ100を動作させることができる。
さらに、クリティカルパス420を通る際に事前にソフト制御によってクロック周波数を遅くせず、ハード的にクロック周波数を制御するので、マイクロコントローラ100全体の性能を向上させることができる。
また、ソフトウェアでクロック周波数の切り替えシーケンスを守る必要がある場合、クロック周波数の切り替えを行うための余分な命令により、回路全体の性能を低下するが、本願発明の第1の実施形態ではそのような回路全体の性能の低下をさせずにすませることができる。
さらに、クリティカルパスのみにおいて、応答(クロック周波数)をマルチサイクル方式により、遅らせる場合、IPを流用して回路設計し、IP内部を変更すると内部機能変更に伴う設計・検証工数が膨大となるが、本願発明の第1の実施形態ではそのような手間はなくすことができる。
(本願発明の第2の実施の形態)
以下に、本願発明の第2の実施の形態を説明する。
図9は、本願発明の第2の実施の形態を示す構成図である。
図1の本願発明の第1の実施の形態を示す構成図と、同一の構成には、同一の符号を付す。
また、命令先読み回路120は、第1の実施の形態と同様の回路構成であり、図5に示す要素と共通の回路である。
さらに、命令先読み回路120に入力されるクロックclk1信号は、マイクロコントローラ900外部からのクロックclk0信号と同一のクロック周波数である(クロックclk0信号=クロックclk1信号)。
そして、レギュレータ回路110には、電源電圧発生回路930(処理形態変更手段)が含んで構成されている点に違いがあり、第1の実施の形態とは違い、cri_flag信号は、クロックマスク回路130には入力されず、電源電圧発生回路930に入力される。また、電源電圧発生回路930は、信号伝搬の立ち上がり時間に相関する信号強度レベルを調整するものである。なお、電源電圧発生回路930の詳細は図10で説明する。
図10に本願発明の第2の実施の形態における電源電圧発生回路930の回路図を示す。
電源電圧発生回路930には、命令先読み回路120から出力されるcri_flag信号及び外部からの電源電圧Vdd0が入力され、cri_flag信号の状態により出力される電源電圧Vddを変更する機能を有する。
電源電圧発生回路930の出力される電源電圧Vddは、通常時(cri_flag信号=”0”=”L”)は従来と同様の電圧(通常電圧)を出力するが、クリティカルパス420を通る命令が将来実行される場合(cri_flag信号=”1”=”H”)に出力される高い電源電圧Vdd(高電圧)を出力する回路である。
例えば、通常電圧が3.3V(規格は、3.3V±0.3V)の場合、高電圧となるのは、規格内の3.6V(=3.3V+0.3V)である。
以下、本願発明の第2の実施の形態の作用を説明する。
図11に本願発明の第2の実施の形態におけるタイムチャート1100を示す。図中に示している要素は図9及び図10の要素と共通の要素には共通の符号が付されている。
タイムチャート1100は、図7の第1の実施の形態のタイムチャート700と比較すると、クロック生成回路902の出力されるクロックclk信号が第2の実施の形態の場合では、変更しない点が異なり、命令先読み回路120の動作は、第1の実施の形態の命令先読み回路120の動作と変わらない。
また、図7の第1の実施の形態のタイムチャート700と比較すると、第7のフリップフロップ回路610の波形のところに、電源電圧Vddの電源電圧の状態を示している点に違いがある。
図12に本願発明の第2の実施の形態を実施した場合のクリティカルパス420を介したタイムチャート1200を示す。
タイムチャート1200は、図4の回路のタイムチャートである。
第2の実施の形態により、cri_flag信号が”H”の期間(高電圧期間)は、供給される電源電圧Vddが高いため、図4のすべてのセルの素子遅延と比較すると小さくなる。
(経過2−1)時刻T1において、クロックclk信号の立ち上がりにより第1のフリップフロップ回路402の信号Iが”1”に変化する。
(経過2−2)時刻T2において、クロックclk信号の立ち上がりで信号Iが第1のフリップフロップ回路402に保持される。
(経過2−3)時刻T3において、信号IIが”1”に変化する。
(経過2−4)時刻T4において、信号IIIが”1”に変化する。
(経過2−5)時刻T5において、信号IVが”1”に変化する。
(経過2−6)時刻T6において、信号Vが”1”に変化する。
(経過2−7)時刻T7において、信号VIが”1”に変化する。
(経過2−8)時刻T8において、信号VIが”1”に変化するとき、第1のフリップフロップ回路402で保持したクロックclk信号のクロック周波数は次の立ち上がりエッジがあるので、信号VIのデータ信号を受信する。
(経過2−9)時刻T9において、第2のフリップフロップ回路404は、信号VIを保持する。
(経過2−10)時刻T10において、信号VIIが”1”となるため、第1のフリップフロップ回路402から第2のフリップフロップ回路404までの信号伝搬時間がクロックclk信号のクロック周波数の所定周期である1周期(1サイクル)以内に収まる。
従って、本願発明の第2の実施の形態によれば、命令先読み回路120によって、クリティカルパス420を通る命令を先読みし、クリティカルパス420を通るときのみ供給電圧を高くする(通常電圧から高電圧にする)ことにより、高電圧のパワーで素子遅延及び配線遅延を小さくすることができる。
また、クリティカルパス420により、マイクロコントローラ900のクロック周波数の最高周波数を下げざるを得ない場合でも、命令先読み回路120を用いて、命令を先読みすることによって、その経路を通る期間だけ供給する電圧を高くし、随時、最適な電圧でマイクロコントローラ900を動作させることができる。
さらに、クリティカルパス420を通る際に、事前にソフト制御によって、クロック周波数を遅くする必要がなく、ハード的に電圧制御するため、マイクロコントローラ900全体の性能を向上させることが可能となる。
また、クリティカルパス420を通るときのみ高電圧を供給するため、低消費電力化に貢献できる。
さらに、クリティカルパス420を通るときのみ高電圧を供給するため、クロック周波数の最高周波数を低下させずに動作させることができる。
また、ソフトウェアでクロック周波数の切り替えシーケンスを守る必要がある場合、クロック周波数の切り替えを行うための余分な命令により、回路全体の性能を低下させずにすませることができる。
さらに、クリティカルパスのみにおいて、応答(例えば、クロックclk信号のクロック周波数)をマルチサイクル方式により、遅らせる場合、IPを流用して回路設計し、IP内部を変更すると内部機能変更に伴う設計・検証工数が膨大となるが、本願発明の第2の実施形態ではそのような手間はなくすことができる。
なお、本願発明の第1及び第2の実施形態では、クリティカルパス420を通るときの命令を1つ(本願発明では、乗算命令時)と仮定したが、クリティカルパス420が通る命令が1つ以上の場合でも命令先読み回路120の論理を変更することにより同様の効果を得ることができる。
本願発明の第1の実施の形態におけるマイクロコントローラを示す構成図である。 本願発明の第1の実施の形態における命令フェッチ時のリードデータ例を示す。 本願発明の第1の実施の形態における命令フェッチ時のリードデータrdata1例を示す。 本願発明の第1の実施の形態におけるクリティカルパスの回路例を示す。 本願発明の第1の実施の形態における命令先読み回路の回路図を示す。 本願発明の第1の実施の形態におけるクロックマスク回路の回路図を示す。 本願発明の第1の実施の形態におけるタイムチャートを示す。 本願発明の第1の実施の形態を実施した場合のクリティカルパスを介したタイムチャートを示す。 本願発明の第2の実施の形態を示す構成図である。 本願発明の第2の実施の形態における電源電圧発生回路の回路図を示す。 本願発明の第2の実施の形態におけるタイムチャートを示す。 本願発明の第2の実施の形態を実施した場合のクリティカルパスを介したタイムチャートを示す。
符号の説明
100、900 マイクロコントローラ
120 命令先読み回路(命令先読み実行手段)
130 クロックマスク回路(処理形態変更手段)
420 クリティカルパス
930 電源電圧発生回路(処理形態変更手段)

Claims (5)

  1. 半導体集積回路が動作する際、各回路間で処理の同期を取るための基準となるタイミングである動作周波数を生成する動作周波数生成手段と、
    半導体集積回路内部で所定の素子間にデータ信号が伝搬する際、最も時間のかかる経路であるクリティカルパスを抽出する抽出手段と、
    前記抽出手段により、抽出された前記クリティカルパスに関する命令を先読みする命令先読み実行手段と、
    前記クリティカルパスの経路を通る際、前記命令先読み実行手段を用いて、前記動作周波数の所定周期以内に前記データ信号の送信を実現するよう処理形態を変更する処理形態変更手段と、
    を有する半導体集積回路装置。
  2. 前記処理形態変更手段は、前記クリティカルパスの経路を通る際、前記命令先読み実行手段を用いて、前記動作周波数を調整し、前記動作周波数の前記所定周期以内に前記データ信号の送信完了を実現することを特徴とする請求項1に記載の半導体集積回路装置。
  3. 前記処理形態変更手段は、前記クリティカルパスの経路を通る際、前記命令先読み実行手段を用いて、信号伝搬の立ち上がり時間に相関する信号強度レベルを調整し、前記動作周波数の前記所定周期以内に前記データ信号の送信完了を実現することを特徴とする請求項1に記載の半導体集積回路装置。
  4. 前記信号強度レベルは、電圧の増減であることを特徴とする請求項3に記載の半導体集積回路装置。
  5. 前記所定周期は、1周期であることを特徴とする請求項1から請求項4のいずれか1項記載の半導体集積回路装置。
JP2007211467A 2007-08-14 2007-08-14 半導体集積回路装置 Pending JP2009048264A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007211467A JP2009048264A (ja) 2007-08-14 2007-08-14 半導体集積回路装置
US12/132,155 US20090049277A1 (en) 2007-08-14 2008-06-03 Semiconductor integrated circuit device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007211467A JP2009048264A (ja) 2007-08-14 2007-08-14 半導体集積回路装置

Publications (1)

Publication Number Publication Date
JP2009048264A true JP2009048264A (ja) 2009-03-05

Family

ID=40363906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007211467A Pending JP2009048264A (ja) 2007-08-14 2007-08-14 半導体集積回路装置

Country Status (2)

Country Link
US (1) US20090049277A1 (ja)
JP (1) JP2009048264A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231542A (ja) * 2009-03-27 2010-10-14 Oki Semiconductor Co Ltd 半導体集積回路装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959380B2 (en) 2012-05-09 2015-02-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamically optimizing bus frequency of an inter-integrated circuit (‘I2C’) bus

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52109841A (en) * 1976-03-12 1977-09-14 Hitachi Ltd Clock control system
JPH03250328A (ja) * 1990-02-28 1991-11-08 Nec Corp 情報処理装置
JPH0474207A (ja) * 1990-07-16 1992-03-09 Nec Ic Microcomput Syst Ltd 集積回路装置
JPH08161286A (ja) * 1994-12-07 1996-06-21 Matsushita Electric Ind Co Ltd マイクロプロセッサシステム
WO2005008777A1 (ja) * 2003-07-22 2005-01-27 Nec Corporation 多電源半導体装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256745B1 (en) * 1998-06-05 2001-07-03 Intel Corporation Processor having execution core sections operating at different clock rates
US6289465B1 (en) * 1999-01-11 2001-09-11 International Business Machines Corporation System and method for power optimization in parallel units
JP3450814B2 (ja) * 2000-09-26 2003-09-29 松下電器産業株式会社 情報処理装置
CN1809810B (zh) * 2003-06-25 2010-06-09 皇家飞利浦电子股份有限公司 指令控制数据处理设备
US7287173B2 (en) * 2003-12-19 2007-10-23 Intel Corporation Method for computing power consumption levels of instruction and recompiling the program to reduce the excess power consumption
US7809932B1 (en) * 2004-03-22 2010-10-05 Altera Corporation Methods and apparatus for adapting pipeline stage latency based on instruction type
US8725488B2 (en) * 2007-07-26 2014-05-13 Qualcomm Incorporated Method and apparatus for adaptive voltage scaling based on instruction usage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52109841A (en) * 1976-03-12 1977-09-14 Hitachi Ltd Clock control system
JPH03250328A (ja) * 1990-02-28 1991-11-08 Nec Corp 情報処理装置
JPH0474207A (ja) * 1990-07-16 1992-03-09 Nec Ic Microcomput Syst Ltd 集積回路装置
JPH08161286A (ja) * 1994-12-07 1996-06-21 Matsushita Electric Ind Co Ltd マイクロプロセッサシステム
WO2005008777A1 (ja) * 2003-07-22 2005-01-27 Nec Corporation 多電源半導体装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231542A (ja) * 2009-03-27 2010-10-14 Oki Semiconductor Co Ltd 半導体集積回路装置

Also Published As

Publication number Publication date
US20090049277A1 (en) 2009-02-19

Similar Documents

Publication Publication Date Title
US9158328B2 (en) Memory array clock gating scheme
JP2007200542A (ja) 半導体メモリ装置を装着したメモリモジュールを有するシステム
EP2304574A1 (en) Method and apparatus for implementing write levelization in memory subsystems
JP4747026B2 (ja) マイクロプロセッサ
US7752592B2 (en) Scheduler design to optimize system performance using configurable acceleration engines
JP3705022B2 (ja) 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム
US8091053B2 (en) System, method, and program for generating circuit
US20070260857A1 (en) Electronic Circuit
JP2009048264A (ja) 半導体集積回路装置
JP5414323B2 (ja) 半導体集積回路装置
KR101059899B1 (ko) 마이크로 프로세서
US9465614B2 (en) Parallel execution of instructions in processing units and adjusting power mode based on monitored data dependency over a period of time
JP2009043044A (ja) 半導体装置
JP3906865B2 (ja) 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム
US6563359B2 (en) Semiconductor integrated circuit including clock modulation circuit
JP3697393B2 (ja) プロセッサ
TW201445439A (zh) 存取晶片內建唯讀記憶體之方法及電腦系統
KR101621760B1 (ko) 비동기 클럭을 가지는 파이프라인 회로 장치
US20170115686A1 (en) Method and Apparatus for Natural Clock Generation in the System
JP5471437B2 (ja) 半導体集積回路装置およびキャッシュメモリ制御方法
JP2000020309A (ja) デジタルシグナルプロセッサ
US20120317434A1 (en) Method and Apparatus for Processor to Operate at Its Natural Clock Frequency in the System
KR100929086B1 (ko) 룩 업 테이블을 저장하는 램의 읽기 액세스 제어 장치 및방법
JP2006093393A (ja) 半導体集積回路
JP2004341972A (ja) 半導体集積回路

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081224

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111011