JP4085622B2 - 集積回路構成判定装置及びその方法並びにプログラム - Google Patents
集積回路構成判定装置及びその方法並びにプログラム Download PDFInfo
- Publication number
- JP4085622B2 JP4085622B2 JP2001361859A JP2001361859A JP4085622B2 JP 4085622 B2 JP4085622 B2 JP 4085622B2 JP 2001361859 A JP2001361859 A JP 2001361859A JP 2001361859 A JP2001361859 A JP 2001361859A JP 4085622 B2 JP4085622 B2 JP 4085622B2
- Authority
- JP
- Japan
- Prior art keywords
- integrated circuit
- circuit block
- block
- circuit
- parameter vector
- 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
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は集積回路構成判定装置及びその方法並びにプログラムに関し、特に集積回路に適用するトランジスタの設計パラメータ並びにその電源電圧を集積回路のスピードと消費電力の観点から最適化することができる集積回路構成の予測のためのシステムに関するものである。
【0002】
なお、本明細書において「集積回路構成」とは、単に回路の構成そのものだけではなく、集積回路内でしきい値などのトランジスタ設計パラメータ値や電源電圧値、動作周波数がどのように選択されているか、複数ブロックが存在する場合は各々にどのような値が割り当てられているか、を含めた集積回路のあり様を表す概念であるとする。
【0003】
【従来の技術】
CMOSトランジスタからなる集積回路の設計においては、通常トランジスタの設計と回路の設計は分離して行われてきた。すなわち、トランジスタの設計者はある時点で実現できる製造技術に基づき、最適と思われるトランジスタのゲート長、ゲート酸化膜厚、しきい値などの設計パラメータを選択し、トランジスタの設計を行う。このとき、同時にトランジスタに適用する電源電圧も指定される。回路設計者は与えられたトランジスタを用いて所望の回路部品を設計し、さらにこれら部品を組み合わせて集積回路システムを構築する。
【0004】
回路設計者がより高性能な集積回路を実現できるように、トランジスタ設計者は、設計パラメータが異なる複数種類のトランジスタを用意し、提供する場合がある。一例として、高速だがリーク電流が大きい低しきい値のトランジスタと、低速だが、リーク電流が小さい高しきい値のトランジスタとを提供する。あるいは、使用する電源電圧に関して複数の選択肢を提供する場合がある。回路設計者は与えられたトランジスタあるいは電源電圧から目的に適すると思われるものを適宜選択し、利用することでより高い性能を実現しようとする。
【0005】
なお、回路設計者は同一集積回路内に上記のような複数種類のトランジスタあるいは電源電圧を同時に使用することができる。同一集積回路内には機能が異なる複数のブロックが存在する場合があり、それぞれのブロックに適するトランジスタあるいは電源電圧が異なる場合があるためである。この場合はブロックごとにトランジスタと電源電圧を選択することができる。
【0006】
複数種類のトランジスタあるいは電源電圧の選択肢が与えられた場合、どのトランジスタあるいは電源電圧を選択するかは、回路設計者が作成しようとする集積回路の構成、特性などを勘案し、経験に基づいて行っていた。このため、回路設計者の経験が浅い場合には最適な選択を誤る可能性があり、結果として、完成した集積回路の性能、コストなどが理想的な場合に比べて劣化するという問題があった。また、集積回路の複雑化によって最適な選択の判定作業にかかる時間が増大するという問題があった。
【0007】
従来、トランジスタの設計パラメータはトランジスタ設計者が決定している。しかし最適なトランジスタの設計パラメータは利用する回路の構成によって異なる。このため回路設計者が、逆にトランジスタ設計者に対して、集積回路の構成に応じた最適なトランジスタの設計パラメータを指定することができれば、集積回路の性能を向上できる可能性がある。しかし、集積回路の構成に基づいて最適なトランジスタの設計パラメータを決定する一般的な方法については知られていなかった。
【0008】
【発明が解決しようとする課題】
第1の問題点は、従来の設計手法において集積回路に用いるトランジスタの特性および電源電圧の選択が最適になされない可能性が高いことである。その理由は、この種の大枠設計を実施者の経験に頼っていることである。
【0009】
第2の問題点は、従来の設計手法において集積回路に用いるトランジスタの特性および電源電圧の選択に要する設計時間が長いということである。その理由は、集積回路が複数種類のトランジスタや複数種類の電源電圧を使う等により複雑化していること、この種の大枠設計を実施者の経験と手作業に頼っていることである。
【0010】
第3の問題点は、従来トランジスタの設計はトランジスタ設計者が一方的に行うため、トランジスタの設計パラメータが特定の回路構成に対して必ずしも最適に設定されないということである。
【0011】
本発明の第1の目的は、集積回路に用いるのに最適なトランジスタあるいは電源電圧を、回路設計者の経験に頼ることなく、かつ短時間に予測する手段を提供することである。特に同一集積回路内において複数種類のトランジスタあるいは複数の電源電圧値を用いる場合においては、各回路ブロックに最適なトランジスタあるいは電源電圧の割り当てを、回路設計者の経験に頼ることなく、かつ短時間に予測する手段を提供することである。
【0012】
本発明の第2の目的は、集積回路の構成に応じた最適なトランジスタの設計パラメータ値あるいは電源電圧値を算出し、この情報をトランジスタ設計者に対し提供することができるようにすることである。
【0013】
【課題を解決するための手段】
本発明による集積回路構成判定装置は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算する手段と、前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択する手段と、この選択結果を出力する手段とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【0014】
本発明による他の集積回路構成判定装置は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、選択対象パラメータ・ベクトルの各要素の選択肢を入力する手段と、前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算する手段と、この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択する手段と、この選択結果を出力する手段とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【0015】
本発明による更に他の集積回路構成判定装置は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する手段と、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する手段と、この選択結果を出力する手段とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【0016】
本発明による別の集積回路構成判定装置は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、選択対象パラメータ・ベクトルの各要素の選択肢を入力する手段と、前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する手段と、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する手段と、この選択結果を出力する手段とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【0019】
本発明による集積回路構成判定方法は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、前記メモリを参照して、中央処理装置が前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算するステップと、前記中央処理装置が前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、前記ファイル装置に保存された前記選択結果を出力するステップとを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との総和の関数であることを特徴とする。
【0020】
本発明による他の集積回路構成判定方法は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、選択対象パラメータ・ベクトルの各要素の選択肢を入力装置から入力してファイル装置に保存するステップと、前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、前記メモリを参照して、中央処理装置が前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算するステップと、前記中央処理装置が、この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、前記ファイル装置に保存された前記選択結果を出力するステップとを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との総和の関数であることを特徴とする。
【0021】
本発明による更に他の集積回路構成判定方法は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、前記メモリを参照して、中央処理装置が前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整するステップと、前記中央処理装置が、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、前記ファイル装置に保存された前記選択結果を出力するステップとを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【0022】
本発明による別の集積回路構成判定方法は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、選択対象パラメータ・ベクトルの各要素の選択肢を入力装置から入力してファイル装置に保存するステップと、前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、前記メモリを参照して、中央処理装置が前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整するステップと、前記中央処理装置が、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、前記ファイル装置に保存された前記選択結果を出力するステップとを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【0023】
本発明によるプログラムは、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算する処理と、前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択する処理と、この選択結果を出力する処理とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【0024】
本発明による他のプログラムは、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、選択対象パラメータ・ベクトルの各要素の選択肢を入力する処理と、前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算する処理と、この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択する処理と、この選択結果を出力する処理とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【0025】
本発明による更に他のプログラムは、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する処理と、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する処理と、この選択結果を出力する処理とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【0026】
本発明による別の他のプログラムは、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれかひとつ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、選択対象パラメータ・ベクトルの各要素の選択肢を入力する処理と、前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する処理と、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する処理と、この選択結果を出力する処理とを含み、記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【0027】
【発明の実施の形態】
以下に本発明の実施の形態につき詳述する。本発明を用いて設計しようとする集積回路は、N個の回路ブロック(部品)を組み合わせて構成されているものとする。ただしNは1以上の整数である。先ず、図5を参照すると、図5は集積回路の概念図を示す図である(この図では、N=4である)。各ブロックを番号i(=1,2,…,N)で識別する。一般に、ある回路ブロックはそれぞれに異なる性質を持っている。本発明はこの性質の組み合わせ方に応じた最適な設計を導き出すものである。最適化において、回路ブロックの性質を記述するデータとしてその動作電力と待機電力が重要である。
【0028】
トランジスタの設計パラメータ(しきい値、ゲート絶縁膜の厚さ等)、電源電圧、動作周波数など、集積回路の性能を決定付ける種々の値を単に「パラメータ」と呼ぶことにする。これらパラメータは図5において各ブロックすべてにおいて共通の値であってもよいし、各ブロックすべてにおいて異なっても良い。このように、可能な集積回路の構成には自由度がある。本発明において最適な設計とは、これらパラメータの割り当て、値の設定を最適にすることである。
【0029】
図1は本発明による最適集積回路構成判定装置の構成であり、通常は中央処理装置1、入力装置2、出力装置3、メモリ4、ファイル装置5を含んでいる。本発明を実施するためのプログラム41は、ファイル装置5からメモリ4にロードされ、その記述に従って中央処理装置1が一連の処理を実行する。本発明を実施するためのプログラムは、必要に応じて回路ブロックの性質を記述する回路ブロック・データ42をメモリ4上にロードして使用する。
【0030】
各回路ブロックの性質は以下のようなデータによって記述することができる。
【0031】
(1)ある動作条件における回路ブロックiの動作電力:
Pi (Xi ,Yi ,Zi )=Pi (G)
(2)上記動作電力評価時の選択対象パラメータ・ベクトル: Xi
(3)上記動作電力評価時の調整対象パラメータ・ベクトル: Yi
(4)上記動作電力評価時の決定済みパラメータ・ベクトル: Zi
(5)ある動作条件における回路ブロックiの待機電力:
Qi (Xi ’,Yi ’,Zi ’)=Qi (G’)
(6)上記待機電力評価時の選択対象パラメータ・ベクトル: Xi ’
(7)上記待機電力評価時の調整対象パラメータ・ベクトル: Yi ’
(8)上記待機電力評価時の決定済みパラメータ・ベクトル: Zi ’
【0032】
ここで、Xi 、Xi ’、Yi 、Yi ’、Zi 、Zi ’は0個以上のパラメータを要素とするベクトルある。選択対象パラメータとは、複数(n個とする)の選択肢が与えられており、選択できる最大数(1以上の整数、nを最大値とする)が決められたパラメータである。調整対象パラメータとは、使用する値をある連続的範囲内で任意に選択でき、使用できる値の数の最大数(mとする)が決められたパラメータである。決定済みパラメータとは、使用する値があらかじめ決定されているパラメータである。これら選択対象、調整対象、決定済みの各パラメータ・ベクトルを束ねたものを簡単化のためG=(X,Y,Z)と表わし、これを単にパラメータ・ベクトルと呼ぶことにする。選択対象、調整対象、決定済みの各パラメータ・ベクトルX、Y、ZはGの部分パラメータ・ベクトルとなる。
【0033】
上記データPi とQi の入力は、例えば次のように行うことができる。まず、あるGにおいて、回路ブロックiを通常動作させたときの消費電力を評価すると、これはPi (G)+Qi (G)に相当する。次に、回路ブロックiのクロックを停止したときの消費電力を評価すると、これはQi (G’)に相当する。ただし、ここでG’とは動作周波数F(通常は決定済みパラメータ・ベクトルの一要素である)がゼロである点を除きGと等しい。Qi はFに依存しないから、Qi (G)=Qi (G’)である。以上より、通常動作時の消費電力と、クロック停止時の消費電力を入力すれば、Pi は前者から後者を差し引いたものに、Qi は後者と等しいので、回路ブロックの性質データを決定することができる。
【0034】
ただし、上記はデータ入力方法の一例である。パラメータ・ベクトルG、G’の各要素値は、決定済みパラメータ・ベクトル値も含めて、使用を想定しているパラメータ・ベクトルの各要素値と必ずしも一致する必要はない。また、Gは必ずしも異なるiどうしで等しい必要もない。また、G’は必ずしも異なるiどうしで等しい必要もない。なぜなら、あるパラメータ・ベクトルでのPまたはQがわかれば、後に述べる遅延・電力モデルを用いて、任意のパラメータ・ベクトルでのPとQは推定ができるからである。
【0035】
本発明を実施するためのプログラムは電力・遅延モデルを含んでいる。これはパラメータ・ベクトルGが変化したときに、各ブロックiにおける動作電力Pi 、待機電力Qi 、遅延時間Ti がどのように変化するかを記述する電力・遅延モデル数式p(G)、q(G)、t(G)からなっている。一例として、任意のブロックiにおいて、パラメータ・ベクトルがGからG’に変化したときの動作電力は、数式p(G)により、
Pi (G’)=Pi (G)*p(G’)/p(G) (式1)
となる。また待機電力は数式q(G)により、
Qi (G’)=Qi (G)*q(G’)/q(G) (式2)
となる。更に、遅延時間は数式t(G)により、
Ti (G’)=Ti (G)*t(G’)/t(G) (式3)
となる。
【0036】
このように、ある基準点Gにおける動作電力、待機電力、遅延時間を元に、他のパラメータ・ベクトル値G’における動作電力、待機電力、遅延時間を計算することができるようになっている。
【0037】
本発明を実施するためのプログラムは、集積回路の性能を数値として表す評価関数Eを含んでいる。Eはある判断基準に基づいた集積回路の性能が高ければ高いほど小さくなる(あるいは大きくなる)ように定義されている。以後、Eが小さいほど良いと仮定して説明を行うが、Eが大きいほど良いという定義を用いても良い。EはPi 、Qi 、Ti (i=1,2,…,N)の関数である。Eに適する関数としては、
がある。
【0038】
ここで、max( )は引数のうち最大のものを選択する関数である。E(X)は消費電力が小さく、遅延時間が小さいほど値が小さくなる。Ki (i=1,…,N)は各ブロックiに要求される速度の比率を設定する数値であり、これが大きい回路ブロックほど遅くて構わない。Rは定数であり、例えば2とする。
【0039】
複数の回路ブロックを混載した集積回路において、各回路ブロックごとに要求される速度が異なっている場合がある。評価関数Eはこのような場合についても取り扱えるように定義されていることが重要である。そのためには式4に示すように、要求速度の比率を表す数値Ki を用いてTi に重みをつければよい。Ki は各ブロックの動作周波数Fi を用いて決定しても良い。なぜなら、動作周波数が大きい回路ブロックほど高速性が要求されると判断するのが合理的だからである。それには、
Ki =F1 /Fi (i=1,…,N) (式5)
とすれば良い。あるいはKi を決定済みパラメータ・ベクトルの一要素として与えても良い。
【0040】
以上のデータ、モデル式およびEの定義を用いると、任意のパラメータ・ベクトルG=(X,Y,Z)に対するEを計算することが可能である。すなわち任意のパラメータ・ベクトルに対して集積回路の性能を数値として表すことができる。
【0041】
第1の実施の形態として、あるパラメータについて有限個の選択肢が与えられ、その中から最適なパラメータ値を決定する場合を説明する。図2はこの場合のフローチャートである。本実施の形態は、Xの要素数が1以上であり、Yの要素数がゼロである場合に相当する。
【0042】
最適化しようとする集積回路を構成する各回路ブロックの性質を記述するデータが入力装置から入力される(ステップS1)。また、選択対象パラメータ・ベクトルXとして、選択可能な選択肢Xt1,…,Xtn(選択肢数=n)、および前記選択肢から選択できる最大数nmax が入力装置から入力される(ステップS2)。また、使用時の決定済みパラメータ・ベクトルZt が入力装置から入力される(ステップS3)。ここで、入力装置としてキーボードなどの他、他のプログラムによって生成された入力データが記録されたファイル装置であっても良い。
【0043】
次に、上記制約のもとで評価関数Eを最小化する、各回路ブロックへのXの割り当てを決定する。具体的には以下のように行う。
【0044】
(1)N個の回路ブロックに対する可能なすべてのXの割り当て方についてEを計算する(ステップS4)。可能な割り当て方の例を挙げれば、ブロック数N=2、選択肢数n=3、最大選択数nmax =2の場合、ブロック1にXtiがブロック2にXtjが割当てられることを[i,j]と表記すると、
[1,1]、[2,2]、[3,3]、[1,2]、[2,1]、[1,3]、[3,1]、[2,3]、[3,2]
の9通りの割当て方がある。
【0045】
(2)(1)の結果、N個の回路ブロックに対する可能なXの割り当て方すべての中でEを最小とするものを選択する(ステップS5)。
【0046】
次に、上記で選択した、Eを最小とするXの各ブロックへの割り当て方と割り当て値をCRT(表示装置)、プリンタなどの出力装置に出力する(ステップS6)。ここで出力装置としてファイル装置を選択し、結果を他のプログラムが利用できるようファイルの形で出力しても良い。
【0047】
第2の実施の形態として、あるパラメータについて任意に選択できる場合に、最適なパラメータ値を決定する場合を説明する。図3はこの場合のフローチャートである。本実施の形態は、Yの要素数が1以上であり、Xの要素数がゼロである場合に相当する。
【0048】
最適化しようとする集積回路を構成する各回路ブロックの性質を記述するデータが入力装置から入力される(ステップS11)。また、調整対象パラメータ・ベクトルYから選択できる最大数nが入力装置から入力される(ステップS12)。また、使用時の決定済みパラメータ・ベクトルZt が入力装置から入力される(ステップS13)。ここで、入力装置としては、キーボードなどの他、他のプログラムによって生成された入力データが記録された、ファイル装置であっても良い。
【0049】
次に、上記制約のもとで評価関数Eを最小化する各回路ブロックのYの割り当てを決定する。具体的には以下のように行う。
【0050】
(1)N個の回路ブロックに対する可能なすべてのYの割り当て方について(2)を行う。ただし、この割当てのときYti(i=1,…,m)の具体的値は未定であり、m種類の値をどのブロックに割り当てるかという組み合わせのみを定める。可能な割り当て方の例を挙げれば、ブロック数N=3、最大選択数m=2の場合、ブロック1にYtiが、ブロック2にYtjが、ブロック3にYtkが割当てられることを[i,j,k]と表記すると、
[1,1,1]、[1,1,2]、[1,2,1]、[2,1,1]、[1,2,2]、[2,1,2]、[2,2,1]、[2,2,2]
の8通りの割当て方がある。
【0051】
しかしYtiの具体的値は未定なので、例えば[1,1,2]と[2,2,1]は、どちらもブロック1と2は同じYを、ブロック3だけ異なるYを割当てるという点で等価である。よって、この例では、実質的に異なる4通りの割当て方がある。上記した「すべてのYの割当て方」とは「実質的に異なるすべて」を含めば良い。
【0052】
(2)(1)で未定であったYの値Yt1,…,Ytmを、それぞれのYの割当て方ごとに、Eを最小化するように決定する。これにはシミュレーテッド・アニーリングなど公知の最大/最小値探索アルゴリズムを利用すれば良い。さらにこれによって最小化されたEの値を決定する(ステップS14)。
【0053】
(3)(1)の結果、N個の回路ブロックに対する可能なm個のYの割り当て方すべての中でEを最小とするものを選択する(ステップS15)。
【0054】
次に、上記で選択した、Eを最小とするYの各ブロックへの割り当て方と割り当て値をCRT、プリンタなどの出力装置に出力する(ステップS16)。ここで出力装置としてファイル装置を選択し、結果を他のプログラムが利用できるようファイルの形で出力しても良い。
【0055】
第3の実施の形態として、あるパラメータについては有限個の選択肢が与えられ、他のあるパラメータについては任意に選択できる場合に、最適なパラメータ値を決定する場合を説明する。図4はこの場合のフローチャートである。本実施の形態はXとYの要素数がともに1以上である場合に相当する。
【0056】
最適化しようとする集積回路を構成する各回路ブロックの性質を記述するデータが入力装置から入力される(ステップS21)。また、選択対象パラメータ・ベクトルXとして選択可能な選択肢Xt1,…,Xtn(選択肢数=n)、および前記選択肢から選択できる最大数nmax が入力装置から入力される(ステップS22)。また、調整対象パラメータ・ベクトルYから選択できる最大数mが入力装置から入力される(ステップS23)。また、使用時の決定済みパラメータ・ベクトルZt が入力装置から入力される(ステップS24)。ここで、入力装置としては、キーボードなどの他、他のプログラムによって生成された入力データが記録された、ファイル装置であっても良い。
【0057】
次に、上記制約のもとで評価関数Eを最小化する各回路ブロックのXとYの割り当てを決定する。具体的には以下のように行う。
【0058】
(1)N個の回路ブロックに対する可能なすべてのXとYの割り当て方について(2)を行う。ただし、このときYti(i=1,…,m)の具体的値は未定であり、その割り当て方のみを定めている。XtiとZt はあらかじめ決まっている。可能な割り当て方の例を挙げれば、ブロック数N=2、Xの選択肢数n=2、Xの最大選択数nmax =2、Yの最大選択数m=2の場合、ブロック1にXtiとYtjが、ブロック2にXtkとYtlが割当てられることを[i,k,j,l]と表記すると、
[1,1,1,1]、[1,2,1,1]、[2,1,1,1]、
[2,2,1,1]、[1,1,1,2]、[1,2,1,2]、
[2,1,1,2]、[2,2,1,2]、[1,1,2,1]、
[1,2,2,1]、[2,1,2,1]、[2,2,2,1]、
[1,1,2,2]、[1,2,2,2]、[2,1,2,2]、
[2,2,2,2]
の16通りの割当て方がある。
【0059】
しかし、Ytiの具体的値は未定なので、例えば[1,1,1,2]と[1,1,2,1]は、どちらもブロック1とブロック2とで異なるYを割当てるという点で等価である。よって、この例では実質的に異なる8通りの割当て方がある。上記した「すべてのXとYの割当て方」とは「実質的に異なるすべて」を含めば良い(ステップS25)。
【0060】
(2)(1)で未定であったYの値Yt1,…,Ytmを、それぞれのXとYの割当て方ごとに、Eを最小化するように決定する。これにはシミュレーテッド・アニーリングなど公知の最大/最小値探索アルゴリズムを利用すれば良い。さらに最小化されたEの値を決定する。
【0061】
(3)(1)の結果、N個の回路ブロックに対する可能なXとYの割り当て方すべての中でEを最小とするものを選択する(ステップS26)。ただし、Yは(2)により、各割り当て方ごとにEを最小とするよう選択されている。
【0062】
次に、上記で選択した、Eを最小とするXとYの各ブロックへの割り当て方と割り当て値をCRT、プリンタなどの出力装置に出力する(ステップS27)。ここで出力装置としてファイル装置を選択し、結果を他のプログラムが利用できるようファイルの形で出力しても良い。
【0063】
以上第1から第3の実施の形態において、各種データを入力する順番は任意に変更して良い。また結果の出力において、Eを最小とするもの以外に、最小から2番目の場合、3番目の場合など、他の場合を大きさの順に並べて出力しても良い。こうすると、プログラムの使用者は、例えば1番目から3番目の構成を候補として任意の場合を選択するといった判断が可能となる。例えば、第1番目の構成はEを最小とし、第2番目の構成はEが若干第1番目の構成に劣るが、製造コストが第1番目の構成に比べて大幅に小さいと仮定する。
【0064】
一般に使用するパラメータが少ないほど製造コストは小さい。この場合、製造コストを重視してプログラム使用者は第2番目の構成を選択することができる。Eの順番に複数の構成を出力すれば、プログラム使用者にこのような判断の自由度を与えることができる。
【0065】
Eを最小化するXtiまたはYの割り当て方を決定したとき、結果として使うXtiまたはYtiの値の種類が利用可能な数nmax またはmを下回る場合がある。これはXまたはYの種類を少なくしたほうが性能的に有利であることを意味する。また、Eを最小化するYtiを決定したとき、結果としてiが異なるYtiどうしの値が等しくなる場合がある。これは、Ytiの値を敢えて変えないほうが性能的に有利であることを意味する。
【0066】
次に、上記した方法により集積回路の性能を最大化するパラメータ・ベクトルを決定できる理由をさらに説明する。以下に数式を導くにあたってはCMOSトランジスタにより構成される集積回路を想定している。しかし、CMOS以外の集積回路であっても、適宜それにあわせて数式を変更すれば本発明は適用可能である。
【0067】
一般に、ある集積回路または回路ブロックに着目すると、その性能は遅延時間と消費電力の2つによって規定される。さらに、消費電力は動作電力と待機電力とに分けられる。遅延時間T、動作電力P、待機電力Qのいずれも小さければ小さいほど良い。しかし、これらの間にはどれかを減らそうとすると他が増加するという相互関係(トレードオフ)があるため、集積回路の性能を高めるためにはこれら三者のバランスを最適に調整することが必要となる。このような最適化は複雑であるため、直感に頼って実施することが困難である。
【0068】
遅延時間Tは負荷容量に溜まった電荷を充電または放電するのに要する時間で決まり、概略、
T∝CVdd/Ion (式6)
で与えられる。
【0069】
動作電力Pは負荷容量を充放電するために消費される電力であって、動作周波数に比例する性質がある。これは概略、
P=aWFCVdd2 (式7)
で与えられる。また、待機電力Qはもれ電流によって消費される電力であって、動作周波数に関係なく消費される電力である。これは概略、
Q=WIoff Vdd (式8)
で与えられる。ここで、Vddは電源電圧、Fは動作周波数、Wはトランジスタの総チャネル幅、Cはトランジスタの単位チャネル幅あたりの平均負荷容量、aは動作率である。
【0070】
Ionはチャネル幅あたりの駆動電流である。これはトランジスタがオン状態での最大駆動電流であり、トランジスタのソース電極とゲート電極との間に電源電圧に等しい電圧が印加された状態で流せる電流値である。これは概略、
Ion∝(Vdd−Vth)A /(Tox+Dox) (式9)
で与えられる。ここで、Vddは電源電圧、Vthはしきい値電圧、Toxはゲート酸化膜厚である。Doxはプロセス技術によって決まる定数であり、概略10nmである。Aは1〜2の定数である。
【0071】
Ioff は単位チャネル幅あたりの待機電流である。これはトランジスタがスイッチングしなくても常時流れ続ける漏れ電流であり、
Ioff =k1 *10(-Vth/S)+k2 *10(-Tox/Sox) (式10)
で与えられる。ここでk1 、k2 、S、Soxはトランジスタの設計や使用するプロセス技術によって決まる定数である。
【0072】
Wは回路規模に比例する。Cは平均的なファンアウトの数と平均的な配線長により決まる。aはクロック周期内にあるトランジスタがスイッチする平均数である。以上は回路構成の詳細によって決定され、通常は任意に変更することができない。これら以外でT、P、Qに大きく影響するパラメータはF、Vdd、Vth、Toxである。よって、これらは本発明による最適化において重要なパラメータ・ベクトルの要素である。
【0073】
ゲート酸化膜が十分厚ければ、MOSトランジスタのゲート電極からのもれ電流は無視することができた。しかし、ゲート長0.18μm以下のMOSトランジスタにおいては、ゲート酸化膜が3nm以下にまで薄くされるため、ゲート酸化膜を通じたもれ電流が問題になる。この点を考慮して式9、式10においては、Toxへの依存性をも考慮している。
【0074】
式1〜式3におけるp(G)、q(G)、t(G)は、式6〜式10のごとき物理モデル式が与えられれば容易に決定され得ることは明らかである。式6〜式10としては、説明の都合上簡単な式を用いている。これらは実際良い近似式ではあるが、さらに高精度にT、P、Qを記述するために、より複雑なパラメータ依存性を想定しても良い。一例を挙げれば、Cはトランジスタ自体の容量も含むのでToxにも若干依存する。そこで、CをToxの関数として与えても良い。より一般的には、式6〜式10のモデル式を、より複雑だが高精度な式に置き換えてもよい。この目的に適う式としては、公知の回路シミュレーション用トランジスタ・モデル式を用いることができる。
【0075】
式6〜式10においては説明の簡単化のため、CMOSがnMOSトランジスタとpMOSトランジスタからなることを無視している。これらの簡単化は本発明の本質に関わるものではないため、上記においては簡単化した式6〜式10を示した。
【0076】
W、Ion、Ioff はnMOSとpMOSとで異なる値をとるのが通常である。よって式6〜式12(以下に示す式)におけるW、Ion、Idff はnMOSとpMOSにおける値を実効的に平均したものとして定義すれば良い。Wについては、たとえばnMOSにおける総チャネル幅WnとpMOSにおける総チャネル幅Wpの平均として、
W=(Wn +Wp )/2 (式11)
と定義すれば良い。
【0077】
式6、式9におけるIonはnMOSにおける駆動電流Ion,nMOSとpMOSにおける駆動電流Ion,pの実効的な平均として定義できる。すなわち、
1/(IonW)={1/(Ion,nWn )+
1/(Ion,pWp )}/2 (式12)
と定義すれば良い。ここで、逆数の平均をとる理由は、式6において遅延時間がIonの逆数に比例し、総遅延時間はnMOSによる遅延とpMOSによる遅延の平均とみなせるからである。
【0078】
式8、式10、式12におけるIoff はnMOSにおける待機電流Ioff ,nとpMOSにおける待機電流Ioff,p の実効的な平均として定義できる。すなわち、
Ioff W=(Ioff,n Wn +Ioff,p Wp )/2(式13)
と定義すれば良い。
【0079】
上記で述べたトレードオフを式6〜式10を参照して説明すると、Tを減らすにはVddを上げるか、Vthを下げれば良い。しかし、Vddを上げるとPが増し、Vthを下げるとQが増す。Pを減らすにはVddを下げれば良い。しかし、そうするとTが増え、これを防ごうとVthを下げればQが増える。Qを減らすにはVthを上げればよい。しかし、そうするとTが増え、これを防ごうとVddを増やせばPが増える。このように、TとPとQとの間にはトレードオフの関係がある。
【0080】
従来、トランジスタの寸法が大きくVddが高い(例えば、5〜2.5V)間は、VthをQが十分小さくなるよう(例えば、0.5Vに)設定しても、VthがVddに比べて小さいために、十分なIonを確保できた。この状態からトランジスタ寸法の微細化を行ない、かつVddを下げると、主としてCが減る(寸法の縮小による)ことによりTが減る。Pに着目すると、微細化によって集積度が上がるのでNが増し、さらに速度の向上によりFも増加するが、CとVddの減少によってPは増加しない。また、Vthが十分高ければQは無視できる。
【0081】
以上のように、トランジスタの微細化と電源電圧の低下を同時に行うことで、消費電力を増やさずに速度と集積度を向上させることができた。しかし、トランジスタの微細化が進み、Vddが2Vを下回ると、式9より、Qを十分抑えるほどにVthを大きくしたのではIonの劣化が大きくなり、微細化しても性能が向上しにくくなる。この問題を解決するには、Vddを下げると同時にVthも下げる必要があるが、これによりQが増加し、Qが無視できなくなる。また、微細化に伴ってToxも小さくしてきたが、これによってゲートのもれ電流が発生し、これもQを増大させる。
【0082】
このような状況で、集積回路構成を最適化するには、T、P、Qの三者の関係を考慮する必要があるため、最適なパラメータを直感的に決定することは難しくなる。
【0083】
上記の複雑さに加えて、近年では集積度の向上に伴い、同一集積回路内に性格が異なる回路ブロックを混載する必要性が高まっている。この場合性格が異なる回路ブロックには異なるパラメータを用いたほうが集積回路全体の性能が向上する場合がある。このような場合において最適なパラメータを選択することは、決定すべきパラメータの数が増すことから、単一回路ブロックの場合よりも最適パラメータの決定はより一層困難となる。
【0084】
本発明は、すでに説明した手続きをコンピュータにより自動的に実行することにより、以上のような困難を取り除き、最適な集積回路構成(あるいはパラメータ)を容易に決定することができるよう、まず集積回路全体の性能を単純な1個の値で表現するための評価関数Eを利用している。評価関数EはTi 、Pi 、Qi の関数として与える。iは回路ブロックを区別するための添字である。さらに、Ti 、Pi 、Qi がパラメータ・ベクトルを変化させたときにどのように変化するのかを再現する電力・遅延モデルを利用している。さらに、各回路ブロックの性質を規定するデータとして、あるパラメータ・ベクトルにおいて各回路ブロックにおけるTi 、Pi 、Qi の値を推定可能とするためのデータを入力としている。
【0085】
以上によって集積回路全体としての性能が各ブロックにおけるパラメータ・ベクトルの値の関数として直接表現されるようにしている。集積回路の性能をパラメータ・ベクトルの関数として記述することにより、性能を最大化するパラメータ・ベクトルをコンピュータを用いて自動的に選択することが可能となる。
【0086】
なお、上記入力データとして、必ずしもTi 、Pi 、Qi のすべてを確定するのに必要なすべてのデータを揃える必要はない。集積回路の性能は消費電力と遅延により決まる。本発明の目的を達成するためには、異なるパラメータ・ベクトルにおいて、どちらのほうが相対的に性能が高いかを判定できれば良い。よって消費電力と遅延時間がパラメータ・ベクトルの変化によってどのような比率に変化するかが知られれば良く、この条件が満足される範囲で消費電力と遅延時間の絶対値は必ずしもすべて知られる必要はない。
【0087】
PとQを調整するのに最も重要なパラメータはVdd、Vth、Toxである。そこで、Vdd、Vth、Toxをパラメータ・ベクトルの要素であるとすると、遅延時間のパラメータ・ベクトルへの依存性は式6と式9によって完全に記述される。すなわち、パラメータ・ベクトルがある値から他の値に変化した時、遅延時間が何倍になるかは式6と式9によって完全に決定される。さらに、Vdd、Vth、Toxが等しければ回路ブロックが異なっても遅延時間はほぼ同一であることが多い。以上より、Tの各ブロックにおける具体的な値T1 、T2 、…等については、それを特定するためのデータを必ずしも入力する必要はない。
【0088】
一方、消費電力は動作電力Pと待機電力Qの和で与えられる。PとQのVdd、Vth、Toxへの依存の仕方は式7、8、10からわかるように、互いに異っている。従って、あるパラメータ・ベクトル値におけるP+Qの値が知られていても、パラメータ・ベクトルが他の値に変化したときにP+Qが何倍になるかは決定されない。P+Qが何倍になるかを決定するためには、あるパラメータ・ベクトル値においてPとQとの大きさの比率が知られている必要がある。パラメータ・ベクトルが変化したときにPとQがそれぞれ何倍になるかは式1と式2により決定することができる。これに加えてPとQの当初の比率が判明していれば、パラメータ・ベクトルが変化したときにP+Qが何倍になるかを決定することができる。
【0089】
複数の回路ブロックが存在する場合、式4の評価関数を計算するためにはさらにP1 、Q1 、P2 、Q2 、…、PN 、QN すべての間の比率を推定するためのデータが必要となる。なぜなら、Tの場合とは違い、PあるいはQについては、回路ブロック間で、主として回路規模の違いに応じて、大きく値が異なることが通常だからである。このような値の違いが回路ブロックの性質を決定づける主要な要因である。従って、通常はすべてのブロックについて、あるパラメータ・ベクトルでのPi とQi の値を入力するのが良い。
【0090】
上記実施の形態の説明においては、入力データとして消費電力を与えるものとして説明したが、あるパラメータ・ベクトル値GにおけるPi (G)、Qi (G)の値、あるいは比率を確定できる任意のデータを入力として与えても良い。例えば、式6ないし式8におけるC、a、W、Fの各回路ブロックにおける値(Ci 、ai 、Wi 、Fi )を入力データとしても良い。
【0091】
使用するしきい値Vthが十分高く、リーク電流が問題にならないことが判っている場合には、Qi の値をすべてゼロと近似し、かつQi に関するデータの入力を省略することができる。この場合、Vthは決定済みパラメータとするべきである。
【0092】
複数回路ブロックが存在するとき、全回路の消費電力は各回路ブロックの消費電力の単純な総和となる。よって評価関数Eとしては、式4の例に示すように、全消費電力の関数となるよう選択することが望ましい。
【0093】
複数回路ブロックが存在するとき、全ブロックが全く同じ遅延で動作することが要求される場合には、全回路の遅延時間は最も遅いブロックによって決定されてしまう。あるいはブロックiにおいて要求される遅延が基準値に比較してKi 倍である場合においては、Ti /Ki が最大であるブロックによって全回路の遅延時間が決定されてしまう。よって評価関数Eとしては、式4の例に示すように、T1 /K1 、…、TN /KN の最大値の関数となるよう選択することが望ましい。
【0094】
以上の条件のもと、Eを消費電力が増すほど、遅延時間が増すほど増加(あるいは減少)するように定義すれば良い。式4はEとして適しているが、これに限らず最適化の目的に応じてEを変更することは差し支えない。例えば、遅延時間と消費電力のうち消費電力をより重視したい場合には、式4においてMを小さくすれば良い。あるいは、全消費電力がある上限値以下でありさえすれば良い場合においては、全消費電力が上限値以下では評価関数が一定で、全消費電力が上限値を超えると評価関数が急激に増加する関数をEとして選択すれば良い。あるいは、Ti /Ki がある上限値以下でありさえすれば良い場合においては、Ti /Ki のうち最大のものが上限値以下である場合は評価関数が一定で、Ti /Ki のうち最大のものが上限値を超えると評価関数が急激に増加する関数をEとして選択すれば良い。
【0095】
集積回路の使用中に回路ブロックの性質は、実際には時間とともに変化している。例えば、計算の実施中の状態と入力待ちの状態とでは、一般に動作電力Pi が前者では大きく、後者では小さくなる。これは主として式7における動作率aが変化することによる。今までの説明において、回路ブロックの性質とはこうした時間変化を十分長時間にわたって平均したものを用いることを暗黙に仮定していた。しかしながら、集積回路の消費電力を抑えるために、例えば回路ブロックの負荷が重いときには電源電圧を高めて処理能力を高め、負荷が軽いときには電源電圧を低めて消費電力を抑える、といった制御をしたい場合がある。すなわち、複数の動作モード(上記例で言えば高負荷モードと低負荷モード)を設け、各モードごとにパラメータを変更したい場合がある。
【0096】
このような場合の最適パラメータ判定に対しても、本発明は以下に述べる方法により対応可能である。回路ブロックiの性質はモードによって異なるので、回路ブロックの性質データは各モードごとに必要となる。回路ブロックiのモードj(j=1,2,…,M)での動作電力と待機電力をPijとQijとする。回路ブロックiのモードjでの要求速度比をKijとする。また、モードjの出現時間比率をSj とする。回路ブロックの性質データとしては、以上の関する情報が入力される必要がある。ある回路ブロックは動作モードに応じて動作を変えるが、他の回路ブロックは動作を変えない場合もある。このような動作モードによる区別がないブロックを取り扱うには、回路ブロックの性質データを適宜異なるjにおいて等しくなるよう設定すればよい。
【0097】
評価関数Eはこれに対応して,
のように変更すれば良い。
【0098】
式14の右辺において、電力についてはすべてのiとjの組み合わせについて各動作モードの出現時間比で重みづけた和をとっている。これは結局、全消費電力の期待値に他ならない。また、遅延に関してはKijで重みづけた最大値のR乗をとっている。
【0099】
通常、同一の回路ブロックにおけるしきい値Vthやゲート絶縁膜の厚さToxといったプロセスによって決まるパラメータは、モードごとに変更することができない。この制約に対応するためには、最適構成の選択手続きにおいて、同一回路ブロックに異なるプロセス・パラメータを割り当てる構成を選択から排除すれば良い。
【0100】
同一回路ブロックの異なるモードに対して異なる電源電圧Vddを割り当てることは可能である。このような構成において評価関数が小さくなった場合は、動作モードごとに電源電圧を変化させることが有効であることを意味する。
【0101】
【実施例】
2つのブロックから成る集積回路を実現したいものとする。使用するトランジスタはVth=0.2V、0.3V、0.5Vの3種類から2種類まで選択することができる。Vddは1.5Vに決定されている。過去の設計データを元に、Vdd=2.0V、Vth=0.5V、F=100MHzのとき、ブロック1においてP=1W、Q=1mWと推定された。また、Vdd=1.5V、Vth=0.3V、F=100MHzのとき、ブロック2においてP=1W、Q=10mWと推定された。また、ブロック1は200MHz、ブロック2は100MHzで動作させる予定であり、ブロック1はブロック2より2倍高速である必要がある。このときVthは選択対象パラメータ・ベクトルの要素、Vddは決定済みパラメータ・ベクトルの要素となる。
【0102】
回路ブロック・データとして、
G=(Vth,Vdd,F)=(0.5,2.0,100)のとき、
P1=1、Q1=0.001
G=(Vth,Vdd,F)=(0.3,1.5,100)のとき、
P2=1、Q2=0.01
使用時の決定済みパラメータとして、
Vdd=1.5
F1 =200
F2 =100
K1 =1
K2 =2
を入力し、図4の手続きを適用したところ、ブロック1でVth=0.2V、ブロック2でVth=0.5Vとするのが最適であった。
【0103】
一方、Vthを1種類しか使えないとして同様の手続きを行ったところ、Vth=0.3Vが最適であったが、このときはVthを2種類使うのに比べて消費電力が10%増大した。よって、2種類のVthを用いることは有効と判定された。これは第1の実施形態において、N=2である場合の例である。
【0104】
2つのブロックからなる集積回路を実現したいものとする。使用するトランジスタはVth=0.3Vと決定されている。Vddは未定であり、最大2つの値を自由に選択できる。過去の設計データを元に、Vdd=2.0V、Vth=0.5V、F=100MHzのとき、ブロック1においてP=1W、Q=1mWと推定された。また、Vdd=1.5V、Vth=0.3V、F=100MHzのとき、ブロック2においてP=1W、Q=10mWと推定された。また、ブロック1は200MHz、ブロック2は100MHzで動作させる予定であり、ブロック1はブロック2より2倍高速である必要がある。このとき、Vddは調整対象パラメータ・ベクトルの要素、Vthは決定済みパラメータ・ベクトルの要素となる。
【0105】
回路ブロック・データとして、
G=(Vth,Vdd,F)=(0.5,2.0,100)のとき、
P1 =1、Q2 =0.001
G=(Vth,Vdd,F)=(0.3,1.5,100)のとき、
P1 =1、Q2 =0.01
使用時の決定済みパラメータとして、
Vth=0.3
F1 =200
F2 =100
K1 =1
K2 =2
を入力し、図4の手続きを適用したところ、ブロック1でVdd=1.5V、ブロック2でVdd=1.2Vとするのが最適であった。
【0106】
一方、Vddを1種類しか使えないとして同様の手続きを行ったところ、Vdd=1.5Vが最適であったが、このときはVddを2種類使うのに比べて消費電力が20%増大した。よって、2種類のVddを用いることは有効と判定された。これは第2の実施形態において、N=2である場合の例である。
【0107】
2つのブロックから成る集積回路を実現したいものとする。使用するトランジスタはVth=0.2V、0.3V、0.5Vの3種類から2種類まで選択することができる。Vddは未定であり、1つの値のみを自由に選択できる。過去の設計データを元に、Vdd=2.0V、Vth=0.5V、F=100MHzのとき、ブロック1においてP=1W、Q=1mWと推定された。また、Vdd=1.5V、Vth=0.3V、F=100MHzのとき、ブロック2においてP=1W、Q=10mWと推定された。
【0108】
また、ブロック1は200MHz、ブロック2は100MHzで動作させる予定であり、ブロック1はブロック2より2倍高速である必要がある。このときVthは選択対象パラメータ・ベクトルの要素、Vddは調整対象パラメータ・ベクトルの要素となる。
【0109】
回路ブロック・データとして、
G=(Vth,Vdd,F)=(0.5,2.0,100)のとき、
P1 =1、Q2=0.001
G=(Vth,Vdd,F)=(0.3,1.5,100)のとき、
P1 =1、Q2 =0.01
使用時の決定済みパラメータとして、
K1 =1
K2 =2
F1 =200
F2 =100
を入力データとし、図4の手続きを適用したところ、ブロック1でVth=0.2V、ブロック2でVth=0.5V、共通のVdd=1.3Vとするのが最適であった。
【0110】
一方、Vthを1種類しか使えないとして同様の手続きを行ったところ、Vth=0.3V、Vdd=1.5Vが最適であったが、このときはVthを2種類使うのに比べて消費電力が30%増大した。よって、2種類のVthを用いることは効果が大きいと判定された。これは第3の実施形態において、N=2である場合の例である。
【0111】
単一の回路ブロックからなる集積回路を、現在は電源電圧Vdd=2V、しきい値電圧Vth=0.5Vとして使用しているが、果たしてこのVddとVthでの使用が性能を高めるために最適であるかは不明であった。このとき、動作電力は待機電力の100倍であった。そこで、VddとVthを調整対象パラメータ・ベクトルの2つの要素とし、G=(Vdd,Vth)=(2.0,0.5)のときのP(G)=100、Q(G)=1を入力データとした。これに図3の手続きを適用したところ、Vdd=1.8V、Vth=0.3Vにおいて評価関数が最小となった。そこで、Vdd=1.8V、Vth=0.3Vに変更したところ、動作速度はほとんど変化なく、消費電力が20%削減されることが判明した。これは第2の実施形態において、N=1である場合の例である。
【0112】
ある集積回路を実現するためのトランジスタにおいて、最適なゲート酸化膜厚を決定したい。ゲート酸化膜を厚くしすぎるとIonが小さくなり、薄くしすぎるとゲートのもれ電流が大きくなるため、最適な値を選択する必要がある。そこで、VthとToxを調整可能パラメータ、Vdd=2Vを決定済みパラメータとした。VddとVthは1種類のみ使用するとした。入力データとしては、G=(Vdd,Vth,Tox)=(2V,0.4V,3nm)におけるP(G)=1WとQ(G)=1mWを入力した。
【0113】
ここで、図3の手続きを適用したところ、Vth=0.3V、Tox=2.2nmにおいて評価関数が最小となった。この結果を元にトランジスタに用いるゲート酸化膜の厚さを2.2nmに決定した。これは第2の実施形態において、N=1である場合である。
【0114】
単一ブロックから成る集積回路に高負荷モード(モード1)と低負荷モード(モード2)を設け、それぞれで異なる電源電圧を使用したい。低負荷モードではクロック周波数を1/2に落とすので、動作速度も高負荷モードの2分の1で良い。両モードは等しい時間比で生じる。しきい値電圧Vth=0.3Vと決まっている。Vddは調整対象パラメータとなる。以上の条件のもと、回路ブロックデータとして、
G=(Vdd,F)=(1.2,100)のとき、
P11=1、Q12=0.01
G=(Vdd,F)=(1.2,100)のとき、
P11=0.1、Q12=0.01
使用時の決定済みパラメータとして、
K11=1
K12=2
F1 =200
F2 =100
を入力データとし、図3の手続きを適用したところ、モード1のVdd=1.2V、モード2のVdd=0.9Vにおいて評価関数が最小となった。よって、電源電圧をモード1で1.2V、モード2で0.7Vとするのが良く、これによりVddをモードに関わらず一定にする場合に比べて消費電力を15%削減できることが判った。
【0115】
【発明の効果】
第1の効果は、集積回路に用いるのに最適なトランジスタあるいは電源電圧を、回路設計者の経験に頼ることなく、かつ短時間に予測できることにある。特に、同一集積回路内において複数種類のトランジスタあるいは複数の電源電圧値を用いる場合においては、各回路ブロックに最適なトランジスタあるいは電源電圧の割り当てを、回路設計者の経験に頼ることなく、かつ短時間に予測できることである。その理由は、本発明により回路または回路ブロックの性質、および回路の性能が経験に左右されない数値として表現されるため、最適なトランジスタあるいは電源電圧の選択がコンピュータによって非経験的かつ迅速に実施し得るからである。
【0116】
第2の効果は、集積回路の構成に応じた最適なトランジスタの設計パラメータ値あるいは電源電圧値を算出し、この情報をトランジスタ設計者に対し提供することができることである。その理由は、本発明により回路または回路ブロックの性質、および回路の性能が数値として表現されるため、最適なトランジスタあるいは電源電圧が数学的手続きによって決定できるからである。
【図面の簡単な説明】
【図1】本発明の実施の形態の構成を示すブロック図である。
【図2】第1の実施の形態の動作を示す流れ図である。
【図3】第2の実施の形態の動作を示す流れ図である。
【図4】第3の実施の形態の動作を示す流れ図である。
【図5】複数のブロックから成る集積回路の概念図である。
【符号の説明】
1 中央処理装置
2 入力装置
3 出力装置
4 メモリ
5 ファイル装置
41 制御プログラム
42 回路ブロック・データ
Claims (24)
- 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、
前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算する手段と、
前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択する手段と、
この選択結果を出力する手段とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定装置。 - 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、
選択対象パラメータ・ベクトルの各要素の選択肢を入力する手段と、
前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算する手段と、
この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択する手段と、
この選択結果を出力する手段とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定装置。 - 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、
前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する手段と、
この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する手段と、
この選択結果を出力する手段とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定装置。 - 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、
選択対象パラメータ・ベクトルの各要素の選択肢を入力する手段と、
前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する手段と、
この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する手段と、
この選択結果を出力する手段とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定装置。 - 前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、更に各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの関数であることを特徴とする請求項1から4のいずれか1項に記載の集積回路構成判定装置。
- 前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるもののべき乗の関数であることを特徴とする請求項1から4のいずれか1項に記載の集積回路構成判定装置。
- 前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの2乗の関数であることを特徴とする請求項1から4のいずれか1項に記載の集積回路構成判定装置。
- 少なくとも1個の回路ブロックが複数の動作モードを有する場合において、該回路ブロックの性質を規定するデータ、および該回路ブロックのパラメータが、各動作モードごと独立に割当てられることを特徴とする請求項1から7のいずれか1項に記載の集積回路構成判定装置。
- 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、
前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、
前記メモリを参照して、中央処理装置が前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算するステップと、
前記中央処理装置が前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、
前記ファイル装置に保存された前記選択結果を出力するステップとを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定方法。 - 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、
選択対象パラメータ・ベクトルの各要素の選択肢を入力装置から入力してファイル装置に保存するステップと、
前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、
前記メモリを参照して、中央処理装置が前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算するステップと、
前記中央処理装置が、この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、
前記ファイル装置に保存された前記選択結果を出力するステップとを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定方法。 - 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、
前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、
前記メモリを参照して、中央処理装置が前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整するステップと、
前記中央処理装置が、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、
前記ファイル装置に保存された前記選択結果を出力するステップとを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定方法。 - 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、
選択対象パラメータ・ベクトルの各要素の選択肢を入力装置から入力してファイル装置に保存するステップと、
前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、
前記メモリを参照して、中央処理装置が前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整するステップと、
前記中央処理装置が、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、
前記ファイル装置に保存された前記選択結果を出力するステップとを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定方法。 - 前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの関数であることを特徴とする請求項9から12のいずれか1項に記載の集積回路構成判定方法。
- 前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるもののべき乗の関数であることを特徴とする請求項9から12のいずれか1項に記載の集積回路構成判定方法。
- 前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの2乗の関数であることを特徴とする請求項9から12のいずれか1項に記載の集積回路構成判定方法。
- 少なくとも1個の回路ブロックが複数の動作モードを有する場合において、該回路ブロックの性質を規定するデータ、および該回路ブロックのパラメータが、各動作モードごと独立に割当てられることを特徴とする請求項9から15のいずれか1項に記載の集積回路構成判定方法。
- 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、
前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算する処理と、
前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択する処理と、
この選択結果を出力する処理とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とするプログラム。 - 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、
選択対象パラメータ・ベクトルの各要素の選択肢を入力する処理と、
前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算する処理と、
この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択する処理と、この選択結果を出力する処理とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とするプログラム。 - 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、
前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する処理と、
この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する処理と、
この選択結果を出力する処理とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とするプログラム。 - 一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれかひとつ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、選択対象パラメータ・ベクトルの各要素の選択肢を入力する処理と、
前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する処理と、
この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する処理と、
この選択結果を出力する処理とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とするプログラム。 - 前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの関数であることを特徴とする請求項17から20のいずれか1項に記載のプログラム。
- 前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるもののべき乗の関数であることを特徴とする請求項17から20のいずれか1項に記載のプログラム。
- 前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの2乗の関数であることを特徴とする請求項17から20のいずれか1項に記載のプログラム。
- 少なくとも1個の回路ブロックが複数の動作モードを有する場合において、該回路ブロックの性質を規定するデータ、および該回路ブロックのパラメータが、各動作モードごと独立に割当てられることを特徴とする請求項17から23のいずれか1項に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001361859A JP4085622B2 (ja) | 2001-11-28 | 2001-11-28 | 集積回路構成判定装置及びその方法並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001361859A JP4085622B2 (ja) | 2001-11-28 | 2001-11-28 | 集積回路構成判定装置及びその方法並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003162555A JP2003162555A (ja) | 2003-06-06 |
JP4085622B2 true JP4085622B2 (ja) | 2008-05-14 |
Family
ID=19172454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001361859A Expired - Fee Related JP4085622B2 (ja) | 2001-11-28 | 2001-11-28 | 集積回路構成判定装置及びその方法並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4085622B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7434073B2 (en) * | 2004-11-29 | 2008-10-07 | Intel Corporation | Frequency and voltage scaling architecture |
JP6801383B2 (ja) * | 2016-11-07 | 2020-12-16 | 富士通株式会社 | 設計支援プログラム、設計支援方法、および情報処理装置 |
CN113835016B (zh) * | 2021-09-14 | 2024-01-05 | 深圳市金泰克半导体有限公司 | Ddr芯片极限性能测试方法、测试装置、设备及存储介质 |
-
2001
- 2001-11-28 JP JP2001361859A patent/JP4085622B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003162555A (ja) | 2003-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Baek et al. | Managing fog networks using reinforcement learning based load balancing algorithm | |
US7197733B2 (en) | Integrated circuit dynamic parameter management in response to dynamic energy evaluation | |
JP5033308B2 (ja) | 回路管理方法 | |
US8341576B2 (en) | Semiconductor device and designing method of the same | |
US8495339B2 (en) | Dynamic reconfiguration support apparatus, dynamic reconfiguration support method, and computer product | |
US10133323B2 (en) | Processor control system | |
US20240046380A1 (en) | Method and apparatus for optimizing self-power consumption of an electronic device | |
WO2014139420A1 (en) | Method and system to represent the impact of load variation on service outage over multiple links | |
Kakerow | Low power design methodologies for mobile communication | |
JP4085622B2 (ja) | 集積回路構成判定装置及びその方法並びにプログラム | |
US9768690B2 (en) | Switched mode power supply output stage configuration | |
Srivastava | Simultaneous Vt selection and assignment for leakage optimization | |
US8166319B2 (en) | Methods and systems for use-case aware voltage selection | |
US8302063B2 (en) | Method and system to optimize semiconductor products for power, performance, noise, and cost through use of variable power supply voltage compression | |
WO2020042098A1 (zh) | 一种调频方法、装置及计算机可读存储介质 | |
Bukreyev et al. | Four monolithically integrated switched-capacitor DC–DC converters with dynamic capacitance sharing in 65-nm CMOS | |
Khandelwal et al. | Simultaneous V/sub t/selection and assignment for leakage optimization | |
JP2000148833A (ja) | 消費電力見積方法 | |
Mukherjee et al. | Operator scheduling revisited: A multi-objective perspective for fine-grained DVS architecture | |
Yang et al. | Optimal production planning in pull flow lines with multiple products | |
US9698673B2 (en) | Method for controlling an electronic circuit | |
Chen et al. | A collaborative filtering recommendation based on user profile weight and time weight | |
Wu et al. | An exact dynamic programming solution for a decentralized two-player markov decision process | |
US20230195531A1 (en) | Energy-aware task scheduling | |
Klimowicz | Balanced Power, Speed and Area Minimization of Finite State Machines for FPGA Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041014 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070703 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070903 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071023 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071225 |
|
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: 20080129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080211 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110228 Year of fee payment: 3 |
|
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: 20110228 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120229 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120229 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130228 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130228 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140228 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |