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

半導体集積回路装置 Download PDF

Info

Publication number
JP5414323B2
JP5414323B2 JP2009078921A JP2009078921A JP5414323B2 JP 5414323 B2 JP5414323 B2 JP 5414323B2 JP 2009078921 A JP2009078921 A JP 2009078921A JP 2009078921 A JP2009078921 A JP 2009078921A JP 5414323 B2 JP5414323 B2 JP 5414323B2
Authority
JP
Japan
Prior art keywords
instruction
data
signal
input
semiconductor integrated
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
JP2009078921A
Other languages
English (en)
Other versions
JP2010231542A (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.)
Lapis Semiconductor Co Ltd
Original Assignee
Lapis Semiconductor 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 Lapis Semiconductor Co Ltd filed Critical Lapis Semiconductor Co Ltd
Priority to JP2009078921A priority Critical patent/JP5414323B2/ja
Publication of JP2010231542A publication Critical patent/JP2010231542A/ja
Application granted granted Critical
Publication of JP5414323B2 publication Critical patent/JP5414323B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Description

本発明は、半導体集積回路装置及び半導体集積回路装置のデータ伝送方法に係り、特に、第1の半導体集積回路部と、第2の半導体集積回路部と、を備え、複数の命令データを順に読み出し、読み出した複数の命令データ各々を、各命令データに応じて定まる該第1の半導体集積回路部又は該第2の半導体集積回路部に伝送させる半導体集積回路装置及び半導体集積回路装置のデータ伝送方法に関するものである。
従来、半導体集積回路装置の中には、クロック生成回路、中央処理装置(Central Processing Unitであり、以下、CPUと呼ぶ)、メモリコントローラ、メモリ、及びレギュレータで構成されているものがある。
このような半導体集積回路装置のメモリには、処理の実行を命ずる命令を識別する各々異なる複数の命令データが記憶されている。CPUは、各々複数の半導体素子を備えた複数の半導体集積回路部を備え、メモリコントローラを制御して、メモリから読み出された命令データを、該命令データに応じて定まる半導体集積回路部を伝送して、命令データにより識別される命令を実行するようにしている。
このような半導体集積回路装置は、コンピュータシステムを1つの集積回路に組み込んだものであり、電子機器の制御用に最適化されている。パーソナルコンピュータに用いられる汎用マイクロプロセッサと比較すると、自己充足性と低価格性を重視したタイプのマイクロプロセッサと言える。
ところで、上記中央処理装置が備える複数の半導体集積回路部各々は、データの伝送のタイミングに影響を及ぼす予め定められたタイミング条件(例えば、所定周期で入力されるクロック信号の入力タイミング)において各半導体素子間でデータを所定の時間で伝送可能である。しかし、中には、このような予め定められたタイミング条件では各半導体素子間でデータを該所定の時間よりも長い時間でなければ伝送し終わらないものも存在する。このような半導体集積回路部のデータが伝送されるルートはクリティカルパスと言われる。
ここで、CPUがメモリから読み出された命令データを上記クリティカルパスに、上記予め定められたタイミング条件で伝送しようとする場合に、次のようなことが生ずる。即ち、上記のようにクリティカルパスでは各半導体素子間でデータを該所定の時間よりも長い時間でなければ伝送し終わらない。よって、ある半導体素子が、上記タイミング条件でデータを伝送しなければならない次の半導体素子にデータを伝送しても、次の半導体素子がデータを伝送するタイミングまでに、当該ある半導体素子から伝送されたデータが間に合わないことがある。
そこで、このような事実に鑑み、従来、命令データがクリティカルパスを伝送されるときのみタイミング条件の変更として、例えば、クロック信号の入力間隔を長くする技術が提案されている(例えば特許文献1参照)。
ところで、クロック信号の入力間隔を長くする技術として次のものもある。
即ち、携帯用のコンピュータでは、電池で使用している場合、電池が消耗して来ているのを知らずに使用していると、コンピュータが突然システムダウンしてしまうことがあることに鑑み、電池の電圧を監視し、ある程度まで電池が消耗してくると、その後の電池の消耗を抑制してシステムダウンに至るのを防止するため、コンピュータを動作させるクロックの周波数を低下させる技術が提案されている(例えば、特許文献2参照)。しかしながら、クロック周波数を低下させる措置を、電池がある程度消耗して来てから初めて取るので、電池の寿命を長くするという観点から見た場合、不充分である。
そこで、従来、CPUが実行する命令を識別する命令データが格納されているメモリから、直近に実行する命令データばかりではなく、続けて実行する命令データも複数連続して予め読み出し、それら連続する命令データが、CPUをアイドル状態にすることが可能なアイドル命令である場合には、クロック発生器に周波数変更指令を送って、クロック周波数を予め定めてある低い周波数に低下させる技術が提案されている(例えば、特許文献3参照)。
特開2009−48264号公報 特開平3−269711号公報 特開平6-332562号公報
ところで、上記命令には、上記アイドル命令の他に、割り込み命令、即ち、ある条件を満たしているか否かを判断し、その判断結果に応じて次に実行すべき命令を決定する分岐命令もあり、連続的に読み出した命令が、分岐命令、アイドル命令、アイドル命令の場合がある。
しかし、この場合、分岐命令による判断結果に応じて読み出した命令を実行する際に、上記のようにアイドル命令が連続して読み出されてクロック周波数が低下されてしまうので、分岐命令の読出しに応じて読み出した命令を、低下したクロック周波数で実行することになり、動作性能が遅くなる。
本発明は、上記事実に鑑みなされたもので、半導体素子のデータの伝送のタイミング条件が変更され、分岐命令により読み出された命令を、予め定められたタイミング条件で実行することが可能な半導体集積回路装置及び半導体集積回路装置のデータ伝送方法を提供することを目的とする。
上記目的を達成するために、請求項1記載の発明の半導体集積回路装置は、処理の実行を命ずる命令を識別する各々異なる複数の命令データを記憶する記憶手段と、複数の半導体素子を備え、データの伝送のタイミングに影響を及ぼす予め定められたタイミング条件において各半導体素子間でデータを第1の時間で伝送可能な第1の半導体集積回路部と、複数の半導体素子を備え、該予め定められたタイミング条件では各半導体素子間でデータを該第1の時間よりも長い第2の時間でなければ伝送し終わらない第2の半導体集積回路部と、を備え、実行する命令及び該命令の次に実行予定の命令の命令データを含む複数の命令データを順に読み出す指示を与え、該指示に応じて順に読み出された複数の命令データ各々が入力されて、各命令データに応じて定まる該第1の半導体集積回路部又は該第2の半導体集積回路部に伝送させる制御手段と、前記制御手段により前記読み出す指示が与えられ、該指示に応じて前記複数の命令データを順に前記記憶手段から読み出して、前記制御手段に入力する読出入力手段と、前記第1の時間間隔で前記各半導体素子にデータの伝送のタイミングの基準となる基準信号を生成して前記各半導体素子に入力する生成手段と、所定の指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更する変更手段と、前記読出入力手段により出力される前記複数の命令データが順に入力され、該入力された命令データが、前記第2の半導体集積回路部に伝送されるものであると予め定められた第1の命令データである場合、前記制御手段により前記第2の半導体集積回路部を該第1の命令データが伝送され始めるときから、前記指示信号を前記変更手段に入力し続ける指示手段と、次に実行すべき命令を識別する第2の命令データを前記記憶手段から次に読み出すことを内容とする分岐命令を識別する第3の命令データが予め定められ、前記読出入力手段により出力される前記複数の命令データが順に入力され、該入力された命令データが前記第3の命令データでありかつ前記指示手段が前記指示信号を前記変更手段に入力している場合、前記記憶手段から読み出された前記第2の命令データが前記制御手段により前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻す停止手段と、を備えている。
請求項2記載の発明の半導体集積回路装置は、請求項1に記載の発明において、前記分岐命令には、予め定められた実行条件が満たされている場合にのみ、前記第2の命令データを前記記憶手段から次に読み出すことを命ずる条件付き分岐命令が含まれ、前記第3の命令データには、前記条件付き分岐命令を識別する第4の命令データが含まれ、前記制御手段は、前記第4の命令データの入力に応じて前記実行条件が満たされているか否かを判断し、前記実行条件が満たされていないと判断した場合には、前記停止手段による前記中断が無効となるように制御することを特徴とする。
請求項3記載の発明の半導体集積回路装置は、請求項1又は請求項2に記載の発明において、前記変更手段は、前記タイミング条件の変更として、前記基準信号の入力間隔を長くする第1の変更処理及び各半導体素子へ印加する電圧を大きくする第2の変更処理の少なくとも一方を行なうことを特徴とする。
請求項4記載の発明は、請求項1に記載の半導体集積回路装置のデータ伝送方法であって、前記制御手段が、前記第3の命令データ、前記第1の命令データ、及び前記第2の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第3の命令データ、前記第1の命令データ、及び前記第2の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、前記制御手段が、前記第3の命令データの次に入力された前記第1の命令データを無視して、前記第2の命令データを、前記第1の半導体集積回路部に伝送するステップと、前記停止手段が、前記制御手段により前記第2の命令データが前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻すステップと、を備えている。
請求項5記載の発明は、請求項1に記載の半導体集積回路装置のデータ伝送方法であって、前記制御手段が、前記第1の命令データ、前記第3の命令データ、及び前記第2の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第1の命令データ、前記第3の命令データ、及び前記第2の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、前記制御手段が、前記第1の命令データを前記第2の半導体集積回路部に伝送するステップと、前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、前記制御手段が、前記第1の命令データを前記第2の半導体集積回路部に伝送した後、前記読出入力手段により入力された第2の命令データを、前記第1の半導体集積回路部に伝送するステップと、前記停止手段が、前記制御手段により前記第2の命令データが前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻すステップと、を備えている。
請求項6記載の発明は、請求項2に記載の半導体集積回路装置のデータ伝送方法であって、前記制御手段が、前記第4の命令データ及び前記第1の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第4の命令データ及び前記第1の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、前記制御手段が、前記第4の命令データの入力に応じて前記予め定められた実行条件が満たされているか否かを判断し、該実行条件が満たされていないと判断した場合、前記停止手段による前記中断が無効となるように制御すると共に、前記第1の命令データを前記第2の半導体集積回路部に伝送するステップと、を備えている。
請求項7記載の発明の半導体集積回路装置のデータ伝送方法は、請求項4〜請求項6の何れか1項に記載の発明において、前記変更手段は、前記タイミング条件の変更として、前記基準信号の入力間隔を長くする第1の変更処理及び各半導体素子へ印加する電圧を大きくする第2の変更処理の少なくとも一方を行なうことを特徴とする。
請求項8記載の発明の半導体集積回路装置は、命令データを記憶する記憶手段と、予め定められたタイミング条件において第1の時間で伝送可能な第1の半導体集積回路部と、該予め定められたタイミング条件において前記第1の時間よりも長い第2の時間で伝送可能な第2の半導体集積回路部と、を備え、前記記憶手段から読み出された命令データに応じて定まる該第1の半導体集積回路部又は該第2の半導体集積回路部に命令データを伝送する半導体集積回路装置であって、前記命令データの伝送のタイミングの基準となる基準信号を生成して前記第1の半導体集積回路部または前記第2の半導体集積回路部に入力する生成手段と、所定の指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部がデータの伝送を終了するように、前記第2の半導体集積回路部に対するタイミング条件を変更する変更手段と、前記命令データが、前記第2の半導体集積回路部に伝送されるものである場合、前記指示信号を前記変更手段に入力する指示手段と、前記記憶手段から読み出された命令データが次に実行すべき命令を読み出すことを内容とする分岐命令でありかつ前記指示手段が前記指示信号を前記変更手段に入力している場合、前記分岐命令に応じて前記記憶手段から読み出された命令データが前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻す停止手段と、を備えている。
本発明によれば、分岐命令データが読み出されかつタイミング条件が変更されている場合、分岐命令データに応じた命令データが半導体集積回路部に伝送される際に、変更されたタイミング条件を予め定められたタイミング条件に戻すようにしているので、当該分岐命令に応じて読み出された命令を、予め定められたタイミング条件で実行することができる、という効果を奏する。
従来技術のマイクロコントローラ100を示す構成図である。 従来技術の命令フェッチ時のリードデータ例200を示す図である。 従来技術の命令オペコード例300を示す図である。 クリティカルパスの概念図である。 従来技術の命令先読み回路120の回路図である。 従来技術のクロックマスク回路130の回路図である。 従来技術のタイムチャートである。 クリティカルパスを介したタイムチャートである。 従来技術の他のタイムチャートである。 本願発明の第1の実施の形態における命令先読み回路120の回路図である。 本願発明の第1の実施の形態における分岐命令後のクリティカルパス命令のタイムチャートである。 本願発明の第1の実施の形態におけるクリティカルパス命令後の分岐命令のタイムチャートである。 本願発明の第2の実施の形態におけるマイクロコントローラ100の構成図である。 本願発明の第2の実施の形態における命令先読み回路120の回路図である。 本願発明の第2の実施の形態における分岐命令後のクリティカルパス命令のタイムチャートである。
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。
本願発明の以下の第1の実施の形態及び第2の実施の形態は、上記従来技術の特許文献1の内容を前提としているので、以下、この技術を詳細に説明する。
(従来技術の構成)
図1は、従来技術のマイクロコントローラ100を示す構成図である。
このマイクロコントローラ100は、クロック生成回路102(生成手段)、マスタ104(制御手段)、スレーブ106(読出入力手段)、メモリ108(記憶手段)、及びレギュレータ110で構成されている。
クロック生成回路102では、クロックマスク回路130(処理形態変更手段)を含んで構成されており、マイクロコントローラ100外部から供給されるクロックclk0信号に基づいて、クロック信号clk、clk1をマイクロコントローラ100内部の各ブロックに供給する機能を有している。なお、クロック信号clk、clk1は、コンピュータ内部の各回路、又は各回路の各素子間での処理の同期をとるための、データ伝送のタイミングの基準となる信号のことであり、このクロックclk、clk1信号(他のクロック信号も含む)の速さをクロック周波数(動作周波数、単にクロックとも呼ばれる)と呼ぶ。
さらに、クロックマスク回路130については、図6において、詳細に説明する。
また、マスタ104では、例えば、CPUで構成され、定められたプログラム(メモリ108等に格納されている)に従って処理を行う機能を有している。即ち、マスタ104は、各々複数の半導体素子を備え、データの伝送のタイミングに影響を及ぼす予め定められたタイミング条件(クロック信号の入力タイミング)において各半導体素子間でデータを伝送する複数の半導体集積回路部を備えている。なお、このマスタ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に出力する。
(リードデータrdata2)
スレーブ106は、メモリ108からリードデータrdata1が入力されると、マスタ104にリードデータrdata2を入力する。
(クロックclk1信号)
クロックclk1信号は、クロックマスク回路130から供給され、命令先読み回路120を動作させるクロック(クロック信号)である。
(cri_flag信号)
cri_flag信号(指示信号)は、命令先読み回路120からクロックマスク回路130に出力され、クロック信号clk0を、所定間隔(2クロック信号に対して1つのクロック信号を)マスクすることにより、クロック周波数を遅くしてクロック信号clkを出力させる指示を信号である。
(命令実行)
マスタ104は、スレーブ106を介してメモリ108から受け取ったリードデータrdata2に基づいてプログラムを実行する。詳細には、マスタ104がスレーブ106へ送信した命令フェッチ、op_fetch信号、及びready信号を基にして受信したリードデータrdata2には、マスタ104が実行すべき命令を判別できるように命令コード(図2の命令オペコード)が格納されている。そして、そのリードデータrdata2に格納されている命令コードを、該命令コードに応じて定まる半導体集積回路部を伝送させて、所定のプログラムを実行する。
命令フェッチ時のリードデータには、図2に示すような命令オペコード等のデータが格納されている。命令オペコードとは、マスタ104が実行すべき命令がコード化されているものであり、リードデータrdata1の8ビット目から10ビット目に格納されているものとする(図3の命令オペコード例300参照)。
例えば、命令コードのロード命令は命令オペコード”000”であり、命令コードのストア命令は命令オペコード”001”であるというように、命令コードと命令オペコードの関係を示している。なお、命令オペコードの上記各値は左から、リードデータrdata1における10〜8ビット目に位置する。
なお、リードデータrdata1の他のビットには、図2に示すように、マスタ104が命令を実行する際に使用するソースアドレス及びディスティネーションアドレス等が格納されている。即ち、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ビットバス構成で示されている。
マスタ104は、命令フェッチにより受信したリードデータrdata2に従ってプログラムを実行する。その際、命令の種類によってはクリティカルパス420を通る命令が存在する。
また、クリティカルパス420とは、上記のように信号の伝搬に最も時間のかかるパス(経路)のことであり、回路の動作を規制するパスのことである。なお、複数の半導体集積回路部の内、どの半導体集積回路部がクリティカルパス420なのかは、コンピュータ等を用いてシミュレーションして予め特定されている。なお、クリティカルパス420が特定できる手段があればどのような手段を用いてもよい。
従って、クリティカルパス420における信号の伝搬には、ゲート遅延及び配線遅延などがある。
なお、ゲート遅延とは、信号がAND回路等のゲートを通る際に発生する遅延のことである。さらに、配線遅延とは、文字通り、配線に信号が伝わるタイミングの遅れのことであり、微細化が進み、トランジスタ性能が極限まで高速化した結果、トランジスタ同士を接続配線で起こる信号の送信の遅れが、マイクロコントローラ100全体の高性能化を阻害する要因になってきている。
図4にクリティカルパス420の概念図を示す。
フリップフロップ回路402、フリップフロップ回路404、及びフリップフロップ回路406は、クロック生成回路102で生成されたクロックclk信号の立ち上がりエッジで動作する。
フリップフロップ回路402は、4段のバッファ410、412、414、416を介してフリップフロップ回路404に接続されている。
そこで、フリップフロップ回路402に入力された信号Iは、4段のバッファ410、412、414、416を介して、フリップフロップ回路404に信号VIが入力され、信号VIIを出力する。
さらに、フリップフロップ回路406とフリップフロップ回路402の間に1段のバッファ418を介して接続されている。
詳細には、フリップフロップ回路402から出力された信号IIは、バッファ410に入力され、信号IIIを出力する。また、信号IIIを入力したバッファ412は信号IVを出力する。さらに、信号IVを入力したバッファ414は信号Vを出力する。そして、信号Vを入力したバッファ416は信号VIを出力し、信号VIを入力したフリップフロップ回路404は、信号VIIを出力する。
なお、クロックclk信号は、フリップフロップ回路402、フリップフロップ回路404、及びフリップフロップ回路406に入力されて同期信号として使用される。また、電源電圧Vddは、各回路(フリップフロップ回路402、フリップフロップ回路404、フリップフロップ回路406、及びバッファ410、412、414、416、418)にそれぞれ供給される。
ここで、この回路のクリティカルパス420はフリップフロップ回路402からフリップフロップ回路404のパスであると仮定する。
また、これらの全てのセル(フリップフロップ回路402、フリップフロップ回路404、フリップフロップ回路406、及びバッファ410、412、414、416、418のセル)は、電源電圧Vddで動作する。なお、セルとは、半導体集積回路を設計する際、半導体の機能を表す最小単位のことである。
図5に命令先読み回路120の回路図を示す。
命令先読み回路120には、op_fetch信号、ready信号、クロックマスク回路130から供給されるクロックclk1信号、及びメモリ108からのリードデータrdata1が入力され、cri_flag信号が出力される。
命令先読み回路120のフリップフロップ回路512、及びフリップフロップ回路514は、クロックclk1信号の立ち上がりエッジで動作する。
AND回路520の出力端子はAND回路522の入力と接続されている。
op_fetch信号及びready信号が入力されるAND回路520の出力信号は、AND回路522に送信される。
命令先読み回路120の外部からリードデータrdata1[10](10ビット目)が、インバータ530を介し、AND回路522の入力と接続されている。また、命令先読み回路120の外部からリードデータrdata1[9](9ビット目)及びリードデータrdata1[8](8ビット目)が、AND回路522の入力と接続されている。さらに、AND回路522の出力端子は、セレクタ回路540の入力、及びインバータ534の入力に接続されている。
AND回路522には、リードデータrdata1の10ビット目をインバータ530で反転した信号、リードデータrdata1の9ビット目の信号、及びリードデータrdata1の8ビット目の信号が入力される。
また、AND回路522の出力信号は、セレクタ回路540のセレクト信号(セレクタ回路540の出力信号を選択制御するためのコントロール信号)、及びインバータ534の入力信号として送信される。
なお、AND回路522は、AND回路522へのリードデータrdata1の値が、命令フェッチのデータがクリティカルパス420を通る命令の乗算命令(図2の”011”)の場合に信号を出力する(前提条件)。
セレクタ回路540には、AND回路522の出力、1’b1(1ビットのバイナリ(2進数)の”1”)及びAND回路524の出力端子が接続されている。また、フリップフロップ回路512の入力端子にセレクタ回路540の出力端子が接続され、フリップフロップ回路512の出力端子にセレクタ回路542及びAND回路524が接続されている。
フリップフロップ回路512には、セレクタ回路540の出力信号が入力されている。そこで、セレクタ回路540に入力されるセレクト信号が”H”のときには、セレクタ回路540の出力信号は”H”(1’b1)となる。また、セレクタ回路540に入力されるセレクト信号が”L”のときには、セレクタ回路540の出力信号はAND回路524の出力信号が出力される。
なお、フリップフロップ回路512の出力信号は、cri_flag信号として、命令先読み回路120から出力されると共に、AND回路524の入力信号及びセレクタ回路542のセレクト信号となって送信される。
セレクタ回路542には、フリップフロップ回路512の出力、カウンタ回路560の出力、及びフリップフロップ回路514の出力の各々の端子が接続されている。また、インバータ534の出力端子が非同期リセット端子(ネガリセット端子)rnを介し、フリップフロップ回路514の入力端子に接続されており、セレクタ回路542の出力端子もフリップフロップ回路514の入力端子に接続されている。さらに、フリップフロップ回路514の出力端子は、セレクタ回路542の入力、カウンタ回路560の入力、及び比較回路550の入力端子に接続されている。そして、比較回路550では、フリップフロップ回路514の出力、及び’d100(decimal digits(10進数)の”100”)が入力されている。また、AND回路524のもう一方の入力端子には、比較回路550の出力端子がインバータ532を介して接続されている。
フリップフロップ回路514には、セレクタ回路542の出力信号が入力されている。そこで、セレクタ回路542に入力されるセレクト信号が”H”のときには、セレクタ回路542の出力信号は、カウンタ回路560によって、フリップフロップ回路514の出力信号+1の値となる。また、セレクタ回路542に入力されるセレクト信号が”L”のときには、セレクタ回路542の出力信号は、フリップフロップ回路514の出力信号が出力される。
そして、フリップフロップ回路514は、非同期リセット信号(反転リセットを示すネガリセット信号)が、インバータ534及びネガリセット端子rnを介して入力され、”L”のとき”0”を保持し、リセットを行う。また、比較回路550は、フリップフロップ回路514の出力信号と固定値の10進数の”100”と比較し、フリップフロップ回路514の値が100になったときに出力信号”H”とし、それ以外の場合は出力を”L”とする回路である。詳細には、フリップフロップ回路514の値が100になり、出力信号”H”となったときには、フリップフロップ回路514の値はリセットされ、出力信号”L”のときには、フリップフロップ回路514の値は+1ずつカウントを続行する。
また、フリップフロップ回路512、フリップフロップ回路514には、それぞれ同期して動作するようにクロックclk1信号が入力されている。
さらに、非同期リセット信号については、一番はじめは、AND回路522のパルスが立ち上がったときをトリガーとして非同期にリセットをかける。
なお、インバータ530、AND回路523を備えるように構成したのは、クリティカルパス420を通る乗算命令データが”011”であるとしているからである。従って、クリティカルパス420を通る際、乗算命令でない場合、例えば、AND命令”101”の場合には、リードデータrdata1[10]に入力される場所にインバータ530はなく、リードデータrdata1[9]に入力される場所にインバータ530が設置される。以上、述べたようにクリティカルパス420において、どんな命令に時間がかかるか、どの程度の頻度で関わるかなどの条件を基に、ある程度の場所が分かって、はじめて、素子や配線等の遅延が大きくなることが前提条件となるので、本願発明のような乗算命令が前提条件とならない場合もある。
図6にクロックマスク回路130の回路図を示す。
セレクタ回路630には、コントローラ信号として命令先読み回路120からの出力(cri_flag信号)、固定値”0”、及びインバータ620の出力の出力端子が接続されている。また、セレクタ回路630の出力端子は、フリップフロップ回路610の入力端子に接続されている。さらに、フリップフロップ回路610では、フリップフロップ回路610の出力端子はインバータ620の入力及びOR回路640の入力端子に接続されている。なお、クロックclk0信号端子が、マイクロコントローラ100の外部から、フリップフロップ回路610の入力、及びOR回路640の入力の入力端子に接続されている。
クロックマスク回路130は、マイクロコントローラ100の外部から供給されるクロックclk0信号、及び命令先読み回路120からの出力信号であるcri_flag信号が入力される。また、クロックマスク回路130は、命令先読み回路120を動作させるクロックclk1信号を出力する。さらに、クロックマスク回路130は、マスタ104、スレーブ106、メモリ108、及びレギュレータ110を動作させるクロックclk信号を出力する。
入力信号cri_flag信号は、セレクタ回路630のセレクト信号として送信される。
セレクタ回路630は、セレクト信号(cri_flag信号)が”0”のときにはセレクタ回路630の出力は”0”で固定される。セレクト信号(cri_flag信号)が”1”のときにはセレクタ回路630の出力信号はインバータ620の出力信号を選択する。
フリップフロップ回路610の出力信号は、インバータ620を介して、セレクタ回路630に送信される。また、フリップフロップ回路610の出力信号は、OR回路640の入力信号として入力される。なお、フリップフロップ回路610には、クロックclk0信号がマイクロコントローラ100の外部から入っているので、初期値”0”が保持されている。
OR回路640のもう一方の入力には、クロックclk0信号が入力され、出力信号はクロックclk信号としてクロックマスク回路130から出力される。なお、もう一方の出力信号クロックclk1信号はクロックclk0信号がそのまま送信される(クロックclk1信号=クロックclk0信号)。
(従来技術の作用)
次に、以下、従来技術の作用を説明する。
最初に、図7を参照して、分岐命令データの読み出しが指示されていない場合の作用を説明する。
時刻T1において、マスタ104からアドレス0x0000_0000(Hexadecimal)に対する命令フェッチが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。
時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
時刻T5において、命令先読み回路120のAND回路522の出力信号が”L”となり、命令先読み回路120のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、フリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T4において、AND回路522の”H”信号がトリガーパルスとなってカウント開始している。さらに、マスタ104は、次のアドレス0x0000_0004(Hexadecimal)に対する命令フェッチを出力する。
時刻T6において、時刻T5でcri_flag信号が”H”になることにより、クロックマスク回路130のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクしていく。通常のクロック周波数であるクロックclk1信号(クロックclk0信号)の周期は遅くなり、クリティカルパスを通っても誤動作を起こさないように、通常のクロック周波数の半分の速度に落としたクロックclk信号に変更される。
時刻T7において、命令先読み回路120のフリップフロップ回路514は’d100(10進数の100)となり、命令先読み回路120のフリップフロップ回路512の入力信号は”L”となる。
時刻T8において、命令先読み回路120のフリップフロップ回路512は”L”となるため、cri_flag信号も”L”となり、通常のクロック周波数の半分の速度に変更されたクロックclk信号は通常のクロック周波数に戻って動作する。
次に、図8を参照して、クリティカルパス420を介したタイムチャート800を示す。
タイムチャート800は、図4の回路のタイムチャートである。
(経過1−1)時刻T1において、クロックclk信号の立ち上がりによりフリップフロップ回路402の信号Iが”1”に変化する。
(経過1−2)時刻T2において、クロックclk信号の立ち上がりで信号Iがフリップフロップ回路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信号の立ち上がりエッジはないため、フリップフロップ回路402で保持したクロックclk信号の次の立ち上がりエッジはない。
(経過1−9)時刻T9において、クロックclk信号の立ち上がりで入力データを保持するのでフリップフロップ回路404は信号VIを保持する。
(経過1−10)時刻T10において、信号VIIが”1”と出力されるため、フリップフロップ回路402からフリップフロップ回路404までの信号伝搬時間が、クロックclk信号のクロック周波数の所定周期である1周期(1サイクル)以内に収まる。
このように上記従来技術では、クリティカルパス420を通る命令を先読みすることにより、クリティカルパス420を通るときのみクロック周波数の周波数を遅くすることができる。
次に、図9を参照して、上記従来技術において、分岐命令データの読み出しが指示された場合の作用を説明する。
ここで、上記のように分岐命令とは、割り込み命令、即ち、次に実行すべき命令をメモリから次に読み出すことを内容とする命令である。したがって、通常マスタから命令フェッチが実行された場合、そのアドレスはインクリメントされるが、分岐命令により一連の命令から離れたアドレスに制御が移ると命令アドレスは単なるインクリメントとならない。一例として、ARM926の命令フェッチでは、命令フェッチする場合、命令フェッチアドレスは0x0000_0010(Hexadecimal)の後0x0000_0014(Hexadecimal)のように+4されるが、分岐命令の場合は0x0000_0010(Hexadecimal)の後0xD000_0000(Hexadecimal)のように単なるインクリメントではなく離れたアドレスに制御が移る。
時刻T1において、マスタ104からアドレス0x0000_0010(Hexadecimal)に対する命令フェッチが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、分岐命令”100”である。
時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。
時刻T5において、マスタ104は、次のアドレス0x0000_0014(Hexadecimal)に対する命令フェッチを出力する。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。
時刻T6において、スレーブ106からメモリ108に対してリードアクセスが発生する。
時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。
時刻T8において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
時刻T9において、命令先読み回路120のAND回路522の出力信号が”L”となり、命令先読み回路120のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、フリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T8において、AND回路522の”H”信号がトリガーパルスとなってカウント開始している。さらに、マスタ104は、次のアドレス0xD000_0000(Hexadecimal)に対する命令フェッチを出力する。このアドレスは、時刻T1でマスタ104が受け取った分岐命令により分岐したアドレスである。マスタ104は、分岐命令を実行することにより、分岐命令の次の命令である0x0000_0014(Hexadecimal)の命令は実行しない。この命令0x0000_0014(Hexadecimal)は分岐命令から戻ってきた際に再度命令フェッチすることにより実行される。
時刻T10において、時刻T9でcri_flag信号が”H”になることにより、クロックマスク回路130のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクしていく。通常のクロック周波数であるクロックclk1信号(クロックclk0信号)の周期は遅くなり、クリティカルパスを通っても誤動作を起こさないように、通常のクロック周波数の半分の速度に落としたクロックclk信号に変更される。
時刻T11において、クロック周波数を遅くしても、分岐命令によりクリティカルパスがある乗算命令は実行されないため、LSI全体としてみるとクロック周波数のみ遅くなる。したがって、LSI全体の性能が落ちるという問題がある。
時刻T13において、アドレス0x0000_0010(Hexadecimal)に対する分岐命令が完了し、マスタ104は、次のアドレス0x0000_0014(Hexadecimal)に対する命令フェッチを出力する。なお、同時にready信号は”H”から”L”に変化する。
時刻T14において、スレーブ106からメモリ108に対してリードアクセスが発生する。
時刻T15において、命令先読み回路120のフリップフロップ回路514は’d100(10進数の100)となり、命令先読み回路120のフリップフロップ回路512の入力信号セレクタ540の出力は”L”となる。それと同時に、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。
時刻T16において、命令先読み回路120のフリップフロップ回路512は”L”となるため、cri_flag信号も”L”となり、通常のクロック周波数の半分の速度に変更されたクロックclk信号は通常のクロック周波数に戻って動作する。また、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
時刻T17において、命令先読み回路120のAND回路522の出力信号が”L”となり、命令先読み回路120のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、フリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T16において、AND回路522の”H”信号がトリガーパルスとなってカウント開始している。
このように、分岐命令を実行している時刻T9から時刻T16の期間に、クロック周波数が遅くなり、LSI全体の性能が低下することとなる。
(第1実施の形態)
次に、本願発明の第1の実施の形態を説明する。
(第1実施の形態の構成)
図10に、第1の実施の形態における命令先読み回路120の回路図を示す。なお、上記の従来技術の命令先読み回路120の回路を示す構成図と、同一の構成には、同一の符号を付して、その説明を省略する。
第1の実施の形態における命令先読み回路120には、上記の従来技術の命令先読み回路120の回路に図10の点線で囲まれた命令先読み付加回路121を付している。
第1の実施の形態における命令先読み付加回路121のフリップフロップ回路730は、クロックclk1信号の立ち上がりエッジで動作する。
AND回路700には、AND回路520の出力信号、外部からリードデータrdata1の10ビット目の信号、外部からリードデータrdata1の9ビット目をインバータ回路711で反転した信号、及び外部からのリードデータrdata1の8ビット目をインバータ回路710で反転した信号を入力している。よって、AND回路700は、リードデータrdata1に、分岐命令データ”100”が存在する場合に、信号(H)を出力する。
またAND回路700の出力信号端子は、OR回路740に接続され、OR回路740のもう一方の入力端子にはインバータ回路712の出力信号端子が接続されている。
インバータ回路712は、フリップフロップ回路730の出力信号が0の時に“H”となる信号が入力される。
OR回路740の出力信号は、セレクタ回路720のセレクト信号に接続される。また、セレクタ回路720には、フリップフロップ回路730の出力信号及びその出力に+1した信号が接続されている。
セレクタ回路721には、セレクタ回路720の出力、フリップフロップ回路730の出力信号が5の時に“H”となる信号及び3‘b000(3ビットのバイナリ(2進数)の”000”)の各端子が接続されている。セレクタ回路721のセレクト信号はフリップフロップ回路730の出力信号が5の時に“H”となる信号である。
また、フリップフロップ回路730の入力端子に、セレクタ回路721の出力端子が接続されている。そこで、セレクタ回路721に入力されるセレクト信号が“H”のときには、セレクタ回路721の出力信号は3‘b000となる。また、セレクタ回路721に入力されるセレクト信号が“L”のときには、セレクタ回路721の出力信号はセレクタ回路720の出力信号が出力される。すなわち、セレクタ回路721に入力されるセレクト信号が“L”かつセレクタ回路720に入力されるセレクト信号が“H”のときには、セレクタ回路721の出力信号はフリップフロップ730の出力に+1した信号が出力され、セレクタ回路721に入力されるセレクト信号が“L”かつセレクタ回路720に入力されるセレクト信号が“L”のときには、セレクタ回路721の出力信号はフリップフロップ730の出力信号が出力される。なお、フリップフロップ730の初期値は“0”である。
インバータ回路713には、フリップフロップ回路730の出力信号が5の時に“H”となる信号が入力され、AND回路701に接続されている。AND回路701は、上記従来の命令先読み回路のAND回路524の代わりとなるが、AND回路701は入力にインバータ回路713の出力信号が入力されること以外は、AND回路524と同様の構成である。
(第1実施の形態の作用)
次に、第1の実施の形態の作用を説明する。図11に、本願発明の第1の実施の形態における分岐命令後のクリティカルパス命令のタイムチャートを示す。
本願発明の第1の実施の形態において、乗算命令時にクリティカルパスを通ると仮定する(前提条件)。また、マスタ104は、リードデータrdata2(分岐命令)を受け取った後、5サイクル後に分岐命令を実行すると仮定する。
時刻T1において、マスタ104からアドレス0x0000_0010(Hexadecimal)に対する命令フェッチが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。このように、マスタ104により命令フェッチが実行されたので、スレーブ106により、この命令に従うため、同時にready信号は”H”から”L”に変化する。
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令データが、分岐命令データ”100”であるとする。
時刻T4において、スレーブ106は、マスタ104及び命令先読み回路120に対してリードデータrdata2を出力する。このようにスレーブ106は、マスタ104による命令フェッチを実行したので、次の命令フェッチが可能にするため、ready信号を”H”とする。上記のように、リードデータrdata2の10〜8ビット目はそれぞれ、分岐命令データの1、0、0であるので、当該10ビット目の1、9ビット目の0がインバータ711で反転し、8ビット目の0がインバータ710で反転して、命令先読み回路120のAND回路700に入力され、AND回路700の出力信号も“H”となる。
時刻T5において、マスタ104は、次のアドレス0x0000_0014(Hexadecimal)に対する命令フェッチを出力する。このとき、命令フェッチを示す信号op_fetch信号は”H”のままである。なお、上記のようにready信号は”H”から”L”に変化される。
ところで、このとき、フリップフロップ回路730の信号は、0であり、5ではないので、Lの信号がセレクト信号としてセレクタ721に入力される。また、+1回路で+1された信号がセレクタ回路720の1(H)側に入力されている。そして、上記のように、AND回路700の出力信号が“H”となることにより、OR回路740を介してセレクタ回路720のセレクト信号が“H”となり、+1された信号がセレクタ回路720、セレクタ回路721を介して、フリップフロップ回路730に入力され、フリップフロップ回路730は、初期値“0”からカウントアップを開始する。
時刻T6において、スレーブ106からメモリ108に対してリードアクセスが発生する。なお、命令フェッチを示す信号op_fetch信号は”H”のままである。
時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令が、クリティカルパスの乗算命令データ”011”であるとする。
時刻T8において、スレーブ106からマスタ104及び命令先読み回路120に対してリードデータrdata2(10〜8ビット目がそれぞれ、0、1、1である)を出力し、上記のように、ready信号は”L”から”H”に変化される。
リードデータrdata2の10ビット目(0)がインバータ530で反転し、9ビット目(1)、8ビット目(1)がそれぞれ命令先読み回路120のAND回路522に入力され、また、上記のように、命令フェッチを示す信号op_fetch信号は”H”のままであり、ready信号も”H”であるので、AND回路522の出力信号が”H”となる(トリガーとなる)。これにより、セレクト回路540から出力信号(H)が命令先読み回路120のフリップフロップ回路512に入力される。
このようにセレクト回路540から出力信号(H)が命令先読み回路120のフリップフロップ回路512に入力されたので、フリップフロップ回路512の出力信号は”H”となる。このため、時刻T9直後にcri_flag信号が”H”となり、フリップフロップ回路514は0からカウントアップを開始する。
ところで、上記のように時刻T4で0からクロック信号clk1の入力毎にカウントアップし始めたフリップフロップ回路730の出力は、時刻T9に至って“5”となるため、当該信号が5のとき信号(H)を出力する回路から信号(H)が出力され、セレクタ回路721のセレクト信号は“H”となり、セレクト回路721から0(3’b000)が出力され、フリップフロップ730はカウントを停止され、かつ、インバータ回路713の出力は“L”となる。インバータ回路713の出力が“L”となることによりAND回路701の出力も“L”となり、セレクタ回路540の出力も“L”となる。それと同時に、フリップフロップ回路512の入力信号は“L”となる。
一方、マスタ104は、分岐命令データに応じて次のアドレス0xD000_0000(Hexadecimal)に対する命令フェッチを出力する。このアドレスは、時刻T1でマスタ104が発行した命令フェッチアドレスの分岐命令により分岐したアドレスである。マスタ104は、分岐命令を実行するので、分岐命令の次の命令である0x0000_0014(Hexadecimal)の命令は実行しない。
上記のように、時刻T9でcri_flag信号が”H”になったので、クロックマスク回路130のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクすることを開始したが、上記のように、時刻T9直後でフリップフロップ回路512の入力信号は“L”となるため、時刻T10直後において、cri_flag信号も”L”となる。また、時刻T9直後でセレクタ回路721へのセレクト信号が“H”となったため、セレクト回路721から0が出力されて、フリップフロップ回路730の出力は“0”となる。
時刻T11において、分岐命令の実行により乗算命令は実行されないため(クリティカルパスを通過しない)、クロック周波数を低下させる必要はない。この点、まず、時刻T8直後に、AND回路522の出力がHとなり、時刻T9直後にcri_flag信号がHとなるが、フリップフロップ730の出力が5となり、5のとき信号(H)を出力する回路から信号(H)が出力され、インバータ713で反転され、AND回路701に入力され、AND回路701の出力がLとなり、フリップフロップ回路512に入力され、フリップフロップ回路512のcri_flag信号も”L”となり、フリップフロップ610が停止し、クロック周波数は元に戻る。
一方、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。
時刻T12において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。以降、クリティカルパスによるクロック周波数変更は行われずに、時刻T9において指定され、読み出された命令(命令コード000(ロード))を通常の条件で実行する。
また、図12に本願発明の第1の実施の形態におけるクリティカルパス命令後の分岐命令のタイムチャートを示す。
時刻T1において、マスタ104からアドレス0x0000_0010(Hexadecimal)に対する命令フェッチが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”であるとする。
時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
時刻T5において、命令先読み回路120のAND回路522の出力信号が”L”となり、命令先読み回路120のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、フリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T4において、AND回路522の”H”信号がトリガーパルスとなってカウント開始している。さらに、マスタ104は、次のアドレス0x0000_0014(Hexadecimal)に対する命令フェッチを出力する。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。
時刻T6において、時刻T5でcri_flag信号が”H”になることにより、クロックマスク回路130のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクしていく。通常のクロック周波数であるクロックclk1信号(クロックclk0信号)の周期は遅くなり、クリティカルパスを通っても誤動作を起こさないように、通常のクロック周波数の半分の速度に落としたクロックclk信号に変更される。また、スレーブ106からメモリ108に対してリードアクセスが発生する。
時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、分岐命令”100”であるとする。また、それと同時にクロックマスク回路130のフリップフロップ回路610は”L”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつclk信号をマスクしていく。
時刻T8において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。また、命令先読み回路120のAND回路700も“H”となる。
時刻T9において、マスタ104は、次のアドレス0x0000_0018(Hexadecimal)に対する命令フェッチを出力する。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。また、フリップフロップ回路730は、AND回路700が“H”となることにより、セレクタ回路720のセレクト信号が“H”、セレクタ回路721のセレクト信号が“L”であるため、初期値“0”からカウントアップを開始する。
時刻T10において、スレーブ106からメモリ108に対してリードアクセスが発生する。
時刻T11において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、ロード命令”000”であるとする。
時刻T12において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。
時刻T13において、マスタ104は、次のアドレス0xD000_0004(Hexadecimal)に対する命令フェッチを出力する。このアドレスは、時刻T5
でマスタ104が発行した命令フェッチアドレスの分岐命令により分岐したアドレスである。マスタ104は、分岐命令を実行することにより、分岐命令の次の命令である0x0000_0018(Hexadecimal)の命令は実行しない。
時刻T14において、フリップフロップ回路730の出力は“5”となるため、セレクタ回路721のセレクト信号は“H”となり、インバータ回路713の出力は“L”となる。インバータ回路713の出力が“L”となることによりAND回路701の出力も“L”となり、セレクタ回路540の出力も“L”となる。それと同時に、フリップフロップ回路512の入力信号は“L”となる。
時刻T15において、時刻T14でフリップフロップ回路512の入力信号は“L”となるため、cri_flag信号も”L”となる。また、時刻T14でセレクタ回路721のセレクト信号が“H”となるため、フリップフロップ回路730の出力は“0”となる。
時刻T16において、マスタ104は、分岐命令を実行しているため、クリティカルパスがある乗算命令は実行していない。したがって、クロック周波数を遅くする必要もないため、フリップフロップ回路514のカウントアップは停止し、クロック周波数は元に戻る。以降、クリティカルパスによるクロック周波数変更は行われずに、通常の動作を行う。
以上説明したように、本願発明の第1の実施の形態によれば、クリティカルパス命令前後に分岐命令がある場合でも、分岐命令を実行する際にはクロック周波数を元に戻して命令を実行するため、分岐命令を実行している期間は、通常のクロック周波数で動作することとなり、LSI全体の性能低下を防ぐことが出来る。この結果、マスタの処理時間の低減、及びLSI全体の性能向上が期待できる。
(第2実施形態)
(第2実施形態の構成)
図13に本願発明の第2の実施の形態における構成図を示すが、上記従来技術のマイクロコントローラ100を示す構成図と同一の構成には同一の符号を付してその説明を省略する。
マイクロコントローラ100は、アドレス150(addr)を、マスタ104から出力し、スレーブ106へ入力する。
図14に本願発明の第2の実施の形態における命令先読み回路120の回路図を示す。なお、図10の第1の実施の形態における命令先読み回路120の回路を示す構成図と、同一の構成には、同一の符号を付す。
命令先読み回路120には、図10の第1の実施の形態における命令先読み回路120に図14の点線で囲まれた命令先読み付加回路122を更に付している。
第2の実施の形態における命令先読み付加回路122のフリップフロップ回路800は、クロックclk1信号の立ち上がりエッジで動作する。
フリップフロップ回路800には、外部からのアドレスaddrの出力端子が接続されている。
外部からのアドレスaddr及びフリップフロップ800の出力信号に+4した信号は、比較回路810に接続されている。比較回路810は、外部からのアドレスaddrがフリップフロップ800の出力信号又はフリップフロップ800の出力信号に+4した信号と同じ値であるときには“H”を出力し、それ以外の値である時には“L”を出力する。
また比較回路810の出力信号端子は、OR回路820に接続され、OR回路820のもう一方の入力にはインバータ回路713の出力信号端子が接続されている。
OR回路820の出力信号端子は、AND回路830に接続されている。このAND回路830の接続は、本願発明の図10の第1の実施の形態における命令先読み回路120の回路のAND回路701と前記1つの接続のみ異なるが、それ以外は、本願発明の図10の第1の実施の形態における命令先読み回路120のAND回路701と同様の構成である。
(第2実施形態の作用)
以下、本願発明の第2の実施の形態の作用を説明する。図15に、本願発明の第2の実施の形態における分岐命令後のクリティカルパス命令のタイムチャートを示す。
図13に本願発明の第2の実施の形態における分岐命令後のクリティカルパス命令のタイムチャートを示す。なお、この分岐命令は条件分岐命令であり、図11のタイムチャートにおいて条件分岐命令の条件を満たさなかった場合のものである。ここで、条件分岐命令とは、ある条件が成り立った場合のみ分岐(次の命令データを読出)し、ある条件が成り立たなかった場合は分岐しない命令である。
本願発明の第2の実施の形態において、乗算命令時にクリティカルパスを通ると仮定する(前提条件)。また、マスタ104は、リードデータrdata2(分岐命令)を受け取った後、5サイクル後に分岐命令を実行すると仮定する。
時刻T1において、マスタ104からアドレス0x0000_0010(Hexadecimal)に対する命令フェッチが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。それと同時にフリップフロップ800は、アドレスaddrの値0x0000_0010を保持する。また、比較回路810の出力は、アドレスaddrとフリップフロップ800の出力信号の値が同じであるため“H”となる。
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、分岐命令”100”である。ただし、この分岐命令は条件分岐命令である。
時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。また、命令先読み回路120のAND回路700も“H”となる。
時刻T5において、マスタ104は、次のアドレス0x0000_0014(Hexadecimal)に対する命令フェッチを出力する。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。また、フリップフロップ回路730は、AND回路700が“H”となることにより、セレクタ回路720のセレクト信号が“H”、セレクタ回路721のセレクト信号が“L”であるため、初期値“0”からカウントアップを開始する。このとき、比較回路810の出力は、アドレスaddrとフリップフロップ800の出力信号に+4した値が同じであるため“H”となる。
時刻T6において、スレーブ106からメモリ108に対してリードアクセスが発生する。それと同時にフリップフロップ800は、アドレスaddrの値0x0000_0014を保持する。また、比較回路810の出力は、アドレスaddrとフリップフロップ800の出力信号の値が同じであるため“H”となる。
時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。
時刻T8において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
時刻T9において、命令先読み回路120のAND回路522の出力信号が”L”となり、命令先読み回路120のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、フリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T8において、AND回路522の”H”信号がトリガーパルスとなってカウント開始している。また、フリップフロップ回路730の出力は“5”となるため、セレクタ回路721のセレクト信号は“H”となり、インバータ回路713の出力は“L”となる。インバータ回路713の出力が“L”となるが、比較回路810の出力は“H”であるため、OR回路820の出力も“H”となり、AND回路701の出力、セレクタ回路540の出力、及びフリップフロップ回路512の入力信号は“H”のままである。ここで、マスタ104は、次のアドレス0x0000_0018(Hexadecimal)に対する命令フェッチを出力する。このアドレスは、時刻T1でマスタ104が発行した命令フェッチアドレスの分岐命令により分岐するアドレスであるが、この場合条件分岐命令の条件が成立しなかったため、分岐アドレスではなくインクリメントしたアドレス0x0000_0018(Hexadecimal)を発行する。
時刻T10において、時刻T9でcri_flag信号が”H”になることにより、クロックマスク回路130のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクしていく。また、時刻T9でセレクタ回路721のセレクト信号が“H”となるため、フリップフロップ回路730の出力は“0”となる。
時刻T11において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。以降、乗算命令が実行されている間は、クロック周波数を変更して動作する。
以上説明したように、本願発明の第2の実施の形態によれば、本願発明の第1の実施の形態の効果に加えて、条件分岐命令により、分岐しない場合でも、最適なクロック周波数で動作することが可能となり、LSI全体の性能低下を防ぐことが出来る。この結果、マスタの処理時間の低減、及びLSI全体の性能向上が期待できる。
(第1の実施形態及び第2実施形態の変形例)
以上説明した第1の実施形態及び第2実施形態では、タイミング条件の変更として、クロック信号の入力間隔を長くする処理(第1の変更処理)を実行するようにしているが、本発明は、これに限定されるものではない。即ち、上記特許文献1においても示されているように、クリティカルパスにおける各半導体素子へ印加する電圧を大きくすれば、各半導体素子のデータの伝送速度が速くなるので、クロック信号の入力間隔を長くしなくとも、各半導体素子のデータの伝送速度を速くすることにより、1サイクル内でデータの伝送を完了させることができる。そこで、上記第1の変更処理に代えて、クリティカルパスにおける各半導体素子へ印加する電圧を大きくする処理(第2の変更処理)を行なってもよい。
なお、第2の変更処理では電圧を大きくするので、その分消費電力が大きくなる。一方、第1の変更処理ではクロック信号の入力間隔を長くするので、その分処理性能が低下する。そこで、消費電力の増加をある程度抑えかつ処理性能が低下することもある程度抑えるため、上記例よりクロック信号の入力間隔を短くした第1の変更処理と、上記例よりクリティカルパスにおける各半導体素子へ印加する電圧の増加を小さくした第2の変更処理と、を同時に行なうようにしてもよい。
100 マイクロコントローラ
120 命令先読み回路
130 クロックマスク回路(変更手段)
420 クリティカルパス
420 クリティカルパス(第2の半導体集積回路部)

Claims (8)

  1. 処理の実行を命ずる命令を識別する各々異なる複数の命令データを記憶する記憶手段と、
    複数の半導体素子を備え、データの伝送のタイミングに影響を及ぼす予め定められたタイミング条件において各半導体素子間でデータを第1の時間で伝送可能な第1の半導体集積回路部と、複数の半導体素子を備え、該予め定められたタイミング条件では各半導体素子間でデータを該第1の時間よりも長い第2の時間でなければ伝送し終わらない第2の半導体集積回路部と、を備え、実行する命令及び該命令の次に実行予定の命令の命令データを含む複数の命令データを順に読み出す指示を与え、該指示に応じて順に読み出された複数の命令データ各々が入力されて、各命令データに応じて定まる該第1の半導体集積回路部又は該第2の半導体集積回路部に命令データを伝送する制御手段と、
    前記制御手段により前記読み出す指示が与えられ、該指示に応じて前記複数の命令データを順に前記記憶手段から読み出して、前記制御手段に入力する読出入力手段と、
    前記各半導体素子データの伝送のタイミングの基準となる基準信号を生成して前記各半導体素子に入力する生成手段と、
    所定の指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更する変更手段と、
    前記読出入力手段により出力される前記複数の命令データが順に入力され、該入力された命令データが、前記第2の半導体集積回路部に伝送されるものであると予め定められた第1の命令データである場合、前記制御手段により前記第2の半導体集積回路部該第1の命令データが伝送され始めるときから、前記指示信号を前記変更手段に入力し続ける指示手段と、
    次に実行すべき命令を識別する第2の命令データを前記記憶手段から次に読み出すことを内容とする分岐命令を識別する第3の命令データが予め定められ、前記読出入力手段により出力される前記複数の命令データが順に入力され、該入力された命令データが前記第3の命令データでありかつ前記指示手段が前記指示信号を前記変更手段に入力している場合、前記記憶手段から読み出された前記第2の命令データが前記制御手段により前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻す停止手段と、
    を備えた半導体集積回路装置。
  2. 前記分岐命令には、予め定められた実行条件が満たされている場合にのみ、前記第2の命令データを前記記憶手段から次に読み出すことを命ずる条件付き分岐命令が含まれ、
    前記第3の命令データには、前記条件付き分岐命令を識別する第4の命令データが含まれ、
    前記制御手段は、前記第4の命令データの入力に応じて前記実行条件が満たされているか否かを判断し、前記実行条件が満たされていないと判断した場合には、前記停止手段による前記指示信号の入力の停止が無効となるように制御する
    ことを特徴とする請求項1に記載の半導体集積回路装置。
  3. 前記変更手段は、前記タイミング条件の変更として、前記基準信号の入力間隔を長くする第1の変更処理及び各半導体素子へ印加する電圧を大きくする第2の変更処理の少なくとも一方を行なうことを特徴とする請求項1又は請求項2に記載の半導体集積回路装置。
  4. 請求項1に記載の半導体集積回路装置のデータ伝送方法であって、
    前記制御手段が、前記第3の命令データ、前記第1の命令データ、及び前記第2の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第3の命令データ、前記第1の命令データ、及び前記第2の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、
    前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、
    前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、
    前記制御手段が、前記第3の命令データの次に入力された前記第1の命令データを無視して、前記第2の命令データを、前記第1の半導体集積回路部に伝送するステップと、
    前記停止手段が、前記制御手段により前記第2の命令データが前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻すステップと、
    を備えた半導体集積回路装置のデータ伝送方法。
  5. 請求項1に記載の半導体集積回路装置のデータ伝送方法であって、
    前記制御手段が、前記第1の命令データ、前記第3の命令データ、及び前記第2の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第1の命令データ、前記第3の命令データ、及び前記第2の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、
    前記制御手段が、前記第1の命令データを前記第2の半導体集積回路部に伝送するステップと、
    前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、
    前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、
    前記制御手段が、前記第1の命令データを前記第2の半導体集積回路部に伝送した後、前記読出入力手段により入力された第2の命令データを、前記第1の半導体集積回路部に伝送するステップと、
    前記停止手段が、前記制御手段により前記第2の命令データが前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻すステップと、
    を備えた半導体集積回路装置のデータ伝送方法。
  6. 請求項2に記載の半導体集積回路装置のデータ伝送方法であって、
    前記制御手段が、前記第4の命令データ及び前記第1の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第4の命令データ及び前記第1の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、
    前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、
    前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、
    前記制御手段が、前記第4の命令データの入力に応じて前記予め定められた実行条件が満たされているか否かを判断し、該実行条件が満たされていないと判断した場合、前記停止手段による前記指示信号の入力の停止が無効となるように制御すると共に、前記第1の命令データを前記第2の半導体集積回路部に伝送するステップと、
    を備えた半導体集積回路装置のデータ伝送方法。
  7. 前記変更手段は、前記タイミング条件の変更として、前記基準信号の入力間隔を長くする第1の変更処理及び各半導体素子へ印加する電圧を大きくする第2の変更処理の少なくとも一方を行なうことを特徴とする請求項4〜請求項6の何れか1項に記載の半導体集積回路装置のデータ伝送方法。
  8. 命令データを記憶する記憶手段と、
    予め定められたタイミング条件において第1の時間で伝送可能な第1の半導体集積回路部と、
    該予め定められたタイミング条件において前記第1の時間よりも長い第2の時間で伝送可能な第2の半導体集積回路部と、
    を備え、
    前記記憶手段から読み出された命令データに応じて定まる該第1の半導体集積回路部又は該第2の半導体集積回路部に命令データを伝送する半導体集積回路装置であって、
    前記命令データの伝送のタイミングの基準となる基準信号を生成して前記第1の半導体集積回路部または前記第2の半導体集積回路部に入力する生成手段と、
    所定の指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部がデータの伝送を終了するように、前記第2の半導体集積回路部に対するタイミング条件を変更する変更手段と、
    前記命令データが、前記第2の半導体集積回路部に伝送されるものである場合、前記指示信号を前記変更手段に入力する指示手段と、
    前記記憶手段から読み出された命令データが次に実行すべき命令を読み出すことを内容とする分岐命令でありかつ前記指示手段が前記指示信号を前記変更手段に入力している場合、前記分岐命令に応じて前記記憶手段から読み出された命令データが前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻す停止手段と、
    を備えた半導体集積回路装置。
JP2009078921A 2009-03-27 2009-03-27 半導体集積回路装置 Expired - Fee Related JP5414323B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009078921A JP5414323B2 (ja) 2009-03-27 2009-03-27 半導体集積回路装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009078921A JP5414323B2 (ja) 2009-03-27 2009-03-27 半導体集積回路装置

Publications (2)

Publication Number Publication Date
JP2010231542A JP2010231542A (ja) 2010-10-14
JP5414323B2 true JP5414323B2 (ja) 2014-02-12

Family

ID=43047285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009078921A Expired - Fee Related JP5414323B2 (ja) 2009-03-27 2009-03-27 半導体集積回路装置

Country Status (1)

Country Link
JP (1) JP5414323B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101898150B1 (ko) * 2011-10-25 2018-09-13 에스케이하이닉스 주식회사 집적회로 칩 및 이를 포함하는 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63153634A (ja) * 1986-12-17 1988-06-27 Hitachi Ltd デ−タ処理装置
TW200919306A (en) * 2007-07-11 2009-05-01 Ibm Adaptive execution frequency control method for enhanced instruction throughput
JP2009048264A (ja) * 2007-08-14 2009-03-05 Oki Electric Ind Co Ltd 半導体集積回路装置

Also Published As

Publication number Publication date
JP2010231542A (ja) 2010-10-14

Similar Documents

Publication Publication Date Title
US5056004A (en) Program control system which simultaneously executes a program to be repeated and decrements repetition numbers
US7178046B2 (en) Halting clock signals to input and result latches in processing path upon fetching of instruction not supported
CN112230992B (zh) 一种包含分支预测循环的指令处理装置、处理器及其处理方法
CN104272248B (zh) 处理器指令集中的谓词计算方法和装置
US10223110B2 (en) Central processing unit and arithmetic unit
US20070288724A1 (en) Microprocessor
US6125440A (en) Storing executing instruction sequence for re-execution upon backward branch to reduce power consuming memory fetch
JP2010026716A (ja) キャッシュメモリ制御回路及びプロセッサ
US7725843B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, method for manufacturing digital circuit, behavioral synthesis control program and computer-readable recording medium
CN100538623C (zh) 一种8位微控制器
JP5414323B2 (ja) 半導体集積回路装置
JP2009048264A (ja) 半導体集積回路装置
US8271820B2 (en) Micro-processor
JP2007200106A (ja) データ処理装置、制御方法、及びプログラム
JP3906865B2 (ja) 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム
KR100891390B1 (ko) 마이크로 컨트롤러 및 업데이트 방법
JP2014059761A (ja) 半導体集積回路及びコンパイラ
EP4339781A1 (en) Processor and method of detecting soft error from processor
KR100631495B1 (ko) 마이크로 프로세서
JP2016110400A (ja) 演算処理装置および演算処理装置の制御方法
JP2002189591A (ja) プロセッサ
JP2004334641A (ja) 情報処理装置および記録媒体、並びにプロセッサ
US20100064174A1 (en) Data processing system and debug method
JP6015294B2 (ja) 半導体集積回路及び電力消費抑制方法
CN113407239A (zh) 一种基于异步单轨的流水线处理器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131021

TRDD Decision of grant or rejection written
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131112

R150 Certificate of patent or registration of utility model

Ref document number: 5414323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees