JP2002342091A - プログラム作成装置 - Google Patents

プログラム作成装置

Info

Publication number
JP2002342091A
JP2002342091A JP2001148724A JP2001148724A JP2002342091A JP 2002342091 A JP2002342091 A JP 2002342091A JP 2001148724 A JP2001148724 A JP 2001148724A JP 2001148724 A JP2001148724 A JP 2001148724A JP 2002342091 A JP2002342091 A JP 2002342091A
Authority
JP
Japan
Prior art keywords
address
program
instructions
unit
object program
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
JP2001148724A
Other languages
English (en)
Inventor
Shoichi Kitagami
尚一 北上
Akinari Fukui
昭也 福井
Kazuya Takahashi
一也 高橋
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.)
Mitsubishi Electric Corp
Mitsubishi Electric Semiconductor Systems Corp
Original Assignee
Mitsubishi Electric Corp
Mitsubishi Electric Semiconductor Systems Corp
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 Mitsubishi Electric Corp, Mitsubishi Electric Semiconductor Systems Corp filed Critical Mitsubishi Electric Corp
Priority to JP2001148724A priority Critical patent/JP2002342091A/ja
Priority to US09/971,683 priority patent/US6938248B2/en
Publication of JP2002342091A publication Critical patent/JP2002342091A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4432Reducing the energy consumption
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 ソフトウェアを改良することによって、消費
電力を低減したり誤動作やノイズの発生を抑制し得るプ
ログラム作成装置を得る。 【解決手段】 アセンブラ9は、アセンブリソースプロ
グラムAP1に基づいて相対オブジェクトプログラムO
P1を作成する。次に、アセンブラ9は、CPU2にお
ける演算結果に影響を与えない範囲でアセンブリソース
プログラムAP1に含まれる命令の順序を入れ替えて、
他のアセンブリソースプログラムAP2を作成し、その
アセンブリソースプログラムAP2に基づいて相対オブ
ジェクトプログラムOP2を作成する。次に、アセンブ
ラ9は、複数の相対オブジェクトプログラムOP1,O
P2について、各命令間のハミング距離の最大値をそれ
ぞれ求め、ハミング距離の最大値が最小のものを、正式
な相対オブジェクトプログラムとして決定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明はプログラム作成装
置に関するものであり、特に、ソフトウェアの開発支援
ツールに関する。
【0002】
【従来の技術】一般的に、マイクロコンピュータ(以下
「マイコン」と称す)を用いたシステムを開発する場合
には、マイコンを動作させるソフトウェアを開発するた
めの環境(開発サポートツール)が必要とされる。開発
サポートツールには、プログラムを作成するためのクロ
スツールと、作成したプログラムを実際にシステム内に
組み込んで、そのプログラムをデバックするためのエミ
ュレータとがある。クロスツールによるプログラムの作
成では、一般的に、C言語やアセンブリ言語等の高級言
語を用いてソースプログラムが記述され、そのソースプ
ログラムは、マイコンが理解できる機械語を用いたオブ
ジェクトプログラムに翻訳(コンパイル)される。オブ
ジェクトプログラムは複数の命令を含んでおり、これら
の複数の命令は、それぞれアドレスが割り当てられて、
マイコンのメモリ内に記憶される。マイコンは、メモリ
内に記憶された複数の命令を順番に読み出すことによ
り、オブジェクトプログラムを実行する。ソースプログ
ラムからオブジェクトプログラムへのコンパイルの仕方
を工夫することで、同じソースプログラムを使用した場
合であっても、マイコンの性能を上げることができる。
これは開発支援ツールの性能を表す一つの指標であり、
一般に「コンパイル性能」と呼ばれている。
【0003】ところで、マイコンは複数のCMOSトラ
ンジスタを用いて構成されているが、CMOSトランジ
スタにおいては、出力負荷を「H」から「L」あるいは
「L」から「H」にドライブする際、即ちスイッチング
の際に電流が流れ、電力が消費される。そして、CMO
Sトランジスタにおける電力の消費量は、スイッチング
の回数に比例して増加する。また、スイッチングの際に
急激な電流変化が生じるため、それに起因して誤動作や
ノイズが発生する。特に、同時にスイッチングするアド
レスバスやデータバスの本数が多いと、急激に大量の電
流が流れる。その結果、過渡的にグランド電位や電源電
位の変動が生じ、マイコンの誤動作や性能の低下を引き
起こす。また、ノイズが発生すると、マイコン自身の誤
動作や性能の低下が生じるのみならず、バスラインや電
源ラインを通して外部にノイズが伝わったりもする。
【0004】また、上記の通りマイコンは、メモリ内に
記憶された複数の命令を順次読み出すことにより、オブ
ジェクトプログラムを実行する。具体的には、CPUが
アドレスバスを介してメモリ内のアドレスを指定し、そ
のアドレスからデータバスを介して命令を取り込んで、
その命令を実行する。マイコンでは、アドレスバスやデ
ータバスのスイッチング時に大量の電流が流れるため、
これらのバスのスイッチング動作が、マイコンの消費電
力やノイズの大きさに与える影響が大きい。例えばデー
タバスは、マイコンを用いたシステムの共通信号線とし
て周辺機器等にも接続されており、また信号線長も長い
ため、容量性負荷が大きい。このため、データバスがス
イッチングする際には大きな電流が流れることになる。
従って、アドレスバスやデータバスの電位が変化する回
数を少なくできれば、それだけ消費電力を低減したりノ
イズの発生を抑制することができる。
【0005】
【発明が解決しようとする課題】しかしながら、従来、
マイコンの消費電力を低減したり誤動作やノイズの発生
を抑制するための対策は、マイコンのアーキテクチャや
ハードウェアを工夫することによって行われており、ソ
フトウェア的な観点からは対策が行われていないという
問題があった。
【0006】本発明はかかる問題を解決するために成さ
れたものであり、ハードウェアには手を加えることな
く、ソフトウェアを改良することによって、消費電力を
低減したり誤動作やノイズの発生を抑制し得るプログラ
ム作成装置を得ることを目的とするものである。
【0007】
【課題を解決するための手段】この発明のうち請求項1
に記載のプログラム作成装置は、複数の命令を含むオブ
ジェクトプログラムが記憶された記憶部と、記憶部から
データバスを介して取り込んだオブジェクトプログラム
に基づいて演算を実行する演算部とを有するデータ処理
装置が使用するオブジェクトプログラムを作成するため
のプログラム作成装置であって、与えられたソースプロ
グラムに基づいてオブジェクトプログラムを作成するプ
ログラム作成部を備え、プログラム作成部は、複数の命
令の順序を入れ替えることによって得られる複数の等価
なオブジェクトプログラムのうち、連続する2つの命令
間のハミング距離の最大値が最小のものを、正式なオブ
ジェクトプログラムとして決定することを特徴とするも
のである。
【0008】また、この発明のうち請求項2に記載のプ
ログラム作成装置は、請求項1に記載のプログラム作成
装置であって、プログラム作成部による複数の命令の順
序の入れ替えは、オブジェクトプログラムのうち、少な
くとも、頻繁に繰り返して実行される箇所に対して行わ
れることを特徴とするものである。
【0009】また、この発明のうち請求項3に記載のプ
ログラム作成装置は、請求項1に記載のプログラム作成
装置であって、プログラム作成部による複数の命令の順
序の入れ替えは、オブジェクトプログラムのうち、少な
くとも、ノイズに敏感な回路の動作に関する箇所に対し
て行われることを特徴とするものである。
【0010】また、この発明のうち請求項4に記載のプ
ログラム作成装置は、2n以下で2n -1よりも大きいm個
の命令(n及びmは自然数)を含むオブジェクトプログ
ラムが記憶された記憶部と、k(kはnよりも大きい自
然数)本のアドレスバスを介して記憶部内のkビットの
アドレスを順に指定することによって記憶部から順に読
み出されたm個の命令に基づいて演算を実行する演算部
とを有するデータ処理装置が使用するオブジェクトプロ
グラムを作成するためのプログラム作成装置であって、
与えられたソースプログラムに基づいてオブジェクトプ
ログラムを作成するプログラム作成部と、プログラム作
成部によって作成されたオブジェクトプログラムに含ま
れるm個の命令に対して、連続するm個のアドレスを割
り当てるアドレス割り当て部とを備え、アドレス割り当
て部は、連続するm個のアドレスの途中でアドレスの最
上位桁の値が変化する場合、最上位桁の値が共通するよ
うに、アドレスを割り当て直すことを特徴とするもので
ある。
【0011】また、この発明のうち請求項5に記載のプ
ログラム作成装置は、請求項4に記載のプログラム作成
装置であって、アドレス割り当て部は、アドレスを割り
当て直すにあたり、最下位ビットよりも(n−1)ビッ
ト上位のビットよりも上位側の全てのビットの値が共通
するように、アドレスを割り当てることを特徴とするも
のである。
【0012】また、この発明のうち請求項6に記載のプ
ログラム作成装置は、複数の命令を含むオブジェクトプ
ログラムが記憶された記憶部と、アドレスバスを介して
記憶部内のアドレスを順に指定することによって記憶部
から順に読み出された複数の命令に基づいて演算を実行
する演算部とを有するデータ処理装置が使用するオブジ
ェクトプログラムを作成するためのプログラム作成装置
であって、与えられたソースプログラムに基づいてオブ
ジェクトプログラムを作成するプログラム作成部と、プ
ログラム作成部によって作成されたオブジェクトプログ
ラムに含まれる複数の命令に対して、連続する複数のア
ドレスを割り当てるアドレス割り当て部とを備え、アド
レス割り当て部は、連続する複数のアドレスの途中でア
ドレスの最上位桁の値が変化する場合、その変化直後の
アドレスが割り当てられている命令のアドレスを、その
次のアドレス以降のアドレスに割り当て直すことを特徴
とするものである。
【0013】また、この発明のうち請求項7に記載のプ
ログラム作成装置は、複数の命令を含むオブジェクトプ
ログラムが記憶された記憶部と、アドレスバスを介して
記憶部内のアドレスを順に指定することによって記憶部
から順に読み出された複数の命令に基づいて演算を実行
する演算部とを有するデータ処理装置が使用するオブジ
ェクトプログラムを作成するためのプログラム作成装置
であって、与えられたソースプログラムに基づいてオブ
ジェクトプログラムを作成するプログラム作成部と、プ
ログラム作成部によって作成されたオブジェクトプログ
ラムに含まれる複数の命令に対して、連続する複数のア
ドレスを割り当てるアドレス割り当て部とを備え、アド
レス割り当て部は、連続する複数のアドレスの途中でア
ドレスの最上位桁の値が変化する場合、その変化直前の
アドレスにアクセスした後、その変化直後のアドレスに
アクセスする前に、所定のアドレスへアクセスすること
を指示する、専用命令を挿入するように、アドレスを割
り当て直すことを特徴とするものである。
【0014】また、この発明のうち請求項8に記載のプ
ログラム作成装置は、複数の命令を含むオブジェクトプ
ログラムが記憶された記憶部と、アドレスバスを介して
記憶部内のアドレスを順に指定することによって記憶部
から順に読み出された複数の命令に基づいて演算を実行
する演算部とを有するデータ処理装置が使用するオブジ
ェクトプログラムを作成するためのプログラム作成装置
であって、与えられたソースプログラムに基づいてオブ
ジェクトプログラムを作成するプログラム作成部と、プ
ログラム作成部によって作成されたオブジェクトプログ
ラムに含まれる複数の命令に対して、アドレスをそれぞ
れ割り当てるアドレス割り当て部とを備え、複数の命令
には、一の命令から他の命令への分岐を指示する分岐命
令が含まれており、アドレス割り当て部は、分岐元のア
ドレスと分岐先のアドレスとの間のハミング距離が所定
の基準値よりも大きい場合、分岐元のアドレスにアクセ
スした後、分岐先のアドレスにアクセスする前に、所定
のアドレスへアクセスすることを指示する、専用命令を
挿入するように、アドレスを割り当て直すことを特徴と
するものである。
【0015】また、この発明のうち請求項9に記載のプ
ログラム作成装置は、複数の命令を含むオブジェクトプ
ログラムが記憶された記憶部と、アドレスバスを介して
記憶部内のアドレスを順に指定することによって記憶部
から順に読み出された複数の命令に基づいて演算を実行
する演算部とを有するデータ処理装置が使用するオブジ
ェクトプログラムを作成するためのプログラム作成装置
であって、与えられたソースプログラムに基づいてオブ
ジェクトプログラムを作成するプログラム作成部と、プ
ログラム作成部によって作成されたオブジェクトプログ
ラムに含まれる複数の命令に対して、アドレスをそれぞ
れ割り当てるアドレス割り当て部とを備え、複数の命令
には、データの参照を必要とする所定の命令が含まれて
おり、アドレス割り当て部は、所定の命令のアドレスと
データのアドレスとの間のハミング距離が所定の基準値
よりも大きい場合、所定の命令のアドレスにアクセスし
た後、データのアドレスにアクセスする前に、所定のア
ドレスへアクセスすることを指示する、専用命令を挿入
するように、アドレスを割り当て直すことを特徴とする
ものである。
【0016】また、この発明のうち請求項10に記載の
プログラム作成装置は、複数の命令を含むオブジェクト
プログラムが記憶された記憶部と、アドレスバスを介し
て記憶部内のアドレスを順に指定することによって記憶
部から順に読み出された複数の命令に基づいて演算を実
行する演算部とを有するデータ処理装置が使用するオブ
ジェクトプログラムを作成するためのプログラム作成装
置であって、与えられたソースプログラムに基づいてオ
ブジェクトプログラムを作成するプログラム作成部と、
プログラム作成部によって作成されたオブジェクトプロ
グラムに含まれる複数の命令に対して、アドレスをそれ
ぞれ割り当てるアドレス割り当て部とを備え、複数の命
令には、データの参照を必要とする所定の命令が含まれ
ており、アドレス割り当て部は、所定の命令のアドレス
とデータのアドレスとの間のハミング距離が所定の基準
値よりも大きい場合、ハミング距離が所定の基準値以下
になるように、所定の命令及びデータの少なくとも一方
のアドレスを割り当て直すことを特徴とするものであ
る。
【0017】また、この発明のうち請求項11に記載の
プログラム作成装置は、請求項4〜10のいずれか一つ
に記載のプログラム作成装置であって、アドレス割り当
て部によるアドレスの割り当て直しは、オブジェクトプ
ログラムのうち、少なくとも、頻繁に繰り返して実行さ
れる箇所に対して行われることを特徴とするものであ
る。
【0018】また、この発明のうち請求項12に記載の
プログラム作成装置は、請求項4〜10のいずれか一つ
に記載のプログラム作成装置であって、アドレス割り当
て部によるアドレスの割り当て直しは、オブジェクトプ
ログラムのうち、少なくとも、他の箇所よりも高速で動
作する箇所に対して行われることを特徴とするものであ
る。
【0019】また、この発明のうち請求項13に記載の
プログラム作成装置は、請求項4〜10のいずれか一つ
に記載のプログラム作成装置であって、アドレス割り当
て部によるアドレスの割り当て直しは、オブジェクトプ
ログラムのうち、少なくとも、ノイズに敏感な回路の動
作に関する箇所に対して行われることを特徴とするもの
である。
【0020】また、この発明のうち請求項14に記載の
プログラム作成装置は、複数の命令を含むオブジェクト
プログラムが記憶された記憶部と、記憶部からデータバ
スを介して取り込んだオブジェクトプログラムに基づい
て演算を実行する演算部とを有するデータ処理装置が使
用するオブジェクトプログラムを作成するためのプログ
ラム作成装置であって、複数の命令の順序を入れ替える
ことによって得られる複数の等価なオブジェクトプログ
ラムのうち、同時にスイッチングされるデータバスの本
数が最も少なくなるものを、正式なオブジェクトプログ
ラムとして決定することを特徴とするものである。
【0021】また、この発明のうち請求項15に記載の
プログラム作成装置は、複数の命令を含むオブジェクト
プログラムが記憶された記憶部と、アドレスバスを介し
て記憶部内のアドレスを順に指定することによって記憶
部から順に読み出された複数の命令に基づいて演算を実
行する演算部とを有するデータ処理装置が使用するオブ
ジェクトプログラムを作成するためのプログラム作成装
置であって、オブジェクトプログラムに含まれる複数の
命令に対してアドレスを割り当てた後、同時にスイッチ
ングされるアドレスバスの本数が少なくなるように、ア
ドレスを割り当て直すことを特徴とするものである。
【0022】
【発明の実施の形態】実施の形態1.図1は、マイコン
の構成の一部を模式的に示すブロック図である。データ
処理装置であるマイコン1は、演算を実行するための演
算部であるCPU2と、オブジェクトプログラムやその
他のデータが記憶された記憶部であるメモリ3とを備え
ている。オブジェクトプログラムは複数の命令を含んで
おり、これらの複数の命令は、それぞれアドレスが割り
当てられて、メモリ3内に記憶されている。CPU2と
メモリ3とは、それぞれ16本のアドレスバス4及びデ
ータバス5によって互いに接続されている。ここでは、
オブジェクトプログラムに含まれる各命令、及びメモリ
3内のアドレスが、それぞれ2進数16ビットのディジ
タルデータで表されている場合を想定している。マイコ
ン1は、メモリ3内に記憶された複数の命令を順番に読
み出すことにより、オブジェクトプログラムを実行す
る。具体的に、CPU2は、アドレスバス4を介してメ
モリ3内のアドレスを指定し、そのアドレスからデータ
バス5を介して命令を取り込んで、その命令を実行す
る。
【0023】図2は、プログラムを作成するためのクロ
スツール6aを模式的に示すブロック図である。エディ
タ7によって、C言語を用いて記述されたCソースプロ
グラムが作成される。Cソースプログラムは、Cコンパ
イラ8によって、アセンブラ言語を用いて記述されたア
センブリソースプログラムに翻訳される。アセンブリソ
ースプログラムは、アセンブラ9によって、相対オブジ
ェクトプログラムに翻訳される。ここで、「相対オブジ
ェクトプログラム」は、分岐先の番地等のメモリ空間の
配置情報が相対情報によって記述されている状態のオブ
ジェクトプログラムである。リンカ10によって、複数
の相対オブジェクトプログラムが結合されるとともに、
メモリ3内でのアドレスが各命令に割り当てられて、最
終的なオブジェクトプログラムが作成される。作成され
たオブジェクトプログラムは、マイコン1のメモリ3内
に記憶される。
【0024】また、図3は、他のクロスツール6bを模
式的に示すブロック図である。Cソースプログラムをコ
ンパイルしてアセンブリソースプログラムを得るのでは
なく、エディタ7によってアセンブリソースプログラム
が直接作成されている。
【0025】以下、図2に示したクロスツール6aを用
いる場合を例にとり、本実施の形態1に係るプログラム
の作成について説明する。図4は、エディタ7によって
作成されたCソースプログラムを示す図である。図4に
示したCソースプログラムは、Cコンパイラ8によっ
て、アセンブリソースプログラムにコンパイルされる。
アセンブリソースプログラムは、アセンブラ9によって
相対オブジェクトプログラムにコンパイルされる。
【0026】図5は、本実施の形態1に係るアセンブラ
9の処理を説明するためのフローチャートである。ま
ず、ステップSP1Aにおいて、アセンブラ9は、Cコ
ンパイラ8によって作成されたアセンブリソースプログ
ラム(アセンブリソースプログラムAP1)に基づい
て、相対オブジェクトプログラムOP1を作成する。図
6は、アセンブリソースプログラムAP1及び相対オブ
ジェクトプログラムOP1を示す図である。
【0027】図5に戻り、次に、ステップSP1Bにお
いて、アセンブラ9は、CPU2における演算結果に影
響を与えない範囲でアセンブリソースプログラムAP1
に含まれる命令の順序を入れ替えて、他のアセンブリソ
ースプログラムAP2を作成する。図6を参照して、s
a及びsbから成る組とsc及びsdから成る組とを入
れ替えても演算結果は異ならないため、アセンブラ9
は、これらの組を入れ替えて、アセンブリソースプログ
ラムAP2を作成する。
【0028】図5に戻り、次に、ステップSP1Cにお
いて、アセンブラ9は、作成したアセンブリソースプロ
グラムAP2に基づいて相対オブジェクトプログラムO
P2を作成する。図7は、作成されたアセンブリソース
プログラムAP2及び相対オブジェクトプログラムOP
2を示す図である。相対オブジェクトプログラムOP1
に基づいて作成したオブジェクトプログラムをCPU2
が実行しても、相対オブジェクトプログラムOP2に基
づいて作成したオブジェクトプログラムをCPU2が実
行しても、その演算結果は等しいものとなる。この意味
で、相対オブジェクトプログラムOP1と相対オブジェ
クトプログラムOP2とは互いに等価であるといえる。
【0029】次に、ステップSP1Dにおいて、アセン
ブラ9は、これまでに作成した複数の相対オブジェクト
プログラムOP1,OP2について、各命令間のハミン
グ距離の最大値をそれぞれ求める。図6を参照して、相
対オブジェクトプログラムOP1におけるハミング距離
の最大値は、4行目の命令と5行目の命令との間の
「9」である。また、図7を参照して、相対オブジェク
トプログラムOP2におけるハミング距離の最大値は、
2行目の命令と3行目の命令との間、及び5行目の命令
と6行目の命令との間の「5」である。従って、アセン
ブラ9は、相対オブジェクトプログラムOP1における
ハミング距離の最大値は「9」であり、相対オブジェク
トプログラムOP2におけるハミング距離の最大値は
「5」であると決定する。
【0030】図5に戻り、次に、ステップSP1Eにお
いて、アセンブラ9は、互いに等価な複数の相対オブジ
ェクトプログラムOP1,OP2の中から、正式な相対
オブジェクトプログラムを一つ決定する。具体的には、
アセンブラ9は、ハミング距離の最大値が最小のもの
を、正式な相対オブジェクトプログラムとして決定す
る。この例の場合、アセンブラ9は、相対オブジェクト
プログラムOP2を正式な相対オブジェクトプログラム
として決定する。
【0031】このように本実施の形態1に係るプログラ
ムの作成によれば、アセンブラ9は、互いに等価な複数
の相対オブジェクトプログラムOP1,OP2を作成
し、その中から、ハミング距離の最大値が最小のもの
を、正式な相対オブジェクトプログラムとして決定す
る。従って、同時にスイッチングするデータバス5の本
数を削減できるため、急激な電流変化に起因するマイコ
ンの誤動作やノイズの発生を抑制することができる。
【0032】なお、以上の説明では、命令の実行によっ
てバスが使用されるサイクルを省略したが、基本的に上
記の効果に影響するものではない。
【0033】また、以上の説明では、C言語を用いて記
述されたCソースプログラムに基づいてアセンブリソー
スプログラムが作成される場合について説明したが、ア
センブリソースプログラムは、図3に示したようにエデ
ィタ7によって直接作成されてもよく、あるいは、他の
高級言語を用いて記述されたプログラムに基づいて作成
されてもよい。
【0034】実施の形態2.上記実施の形態1では、命
令の順序を入れ替えて互いに等価な複数の相対オブジェ
クトプログラムを作成し、その中でハミング距離の最大
値が最小のものを正式な相対オブジェクトプログラムと
して決定する発明について説明した。本実施の形態2に
係るプログラムの作成では、上記実施の形態1に係る発
明を、少なくとも、一つのプログラム中で頻繁に繰り返
して実行される箇所に対して適用する。例えばサブルー
チンのように、同じプログラムが何回も繰り返して実行
される箇所に適用する。もちろん、プログラムの全体に
対して適用してもよい。
【0035】このように本実施の形態2に係るプログラ
ムの作成によれば、少なくとも実行される頻度が高い部
分のプログラムに対して上記実施の形態1に係る発明を
適用することにより、マイコンの誤動作やノイズの発生
を効率的に抑制することができる。
【0036】実施の形態3.上記実施の形態1では、命
令の順序を入れ替えて互いに等価な複数の相対オブジェ
クトプログラムを作成し、その中でハミング距離の最大
値が最小のものを正式な相対オブジェクトプログラムと
して決定する発明について説明した。本実施の形態2に
係るプログラムの作成では、上記実施の形態1に係る発
明を、プログラムのうち、少なくとも、他の部分よりも
高速で動作する部分に対して適用する。プログラムに
は、常に高速で動作しているのではなく、通常はスタン
バイ状態にあるか低速で動作している状態にあるが、何
らかのイベントによって一時的に高速で動作する状態に
なり、処理が終了するとまた元の状態に戻る部分を含む
ものがある。通常、プログラムが高速で動作すると消費
電力も大きいため、高速で動作する部分のプログラムが
アドレス変化の大きいアドレスを含んでいる場合は、そ
の消費電力はさらに大きくなる。そこで、本実施の形態
3では、高速で動作する部分のプログラムに対して、上
記実施の形態1に係る発明を適用する。もちろん、プロ
グラムの全体に対して適用してもよい。
【0037】このように本実施の形態3に係るプログラ
ムの作成によれば、少なくとも高速で動作する部分のプ
ログラムに対して上記実施の形態1に係る発明を適用す
ることにより、マイコンの消費電力を効率的に抑制する
ことができる。
【0038】実施の形態4.上記実施の形態1では、命
令の順序を入れ替えて互いに等価な複数の相対オブジェ
クトプログラムを作成し、その中でハミング距離の最大
値が最小のものを正式な相対オブジェクトプログラムと
して決定する発明について説明した。本実施の形態4に
係るプログラムの作成では、上記実施の形態1に係る発
明を、プログラムのうち、少なくとも、ノイズに敏感な
回路の動作に関する部分に対して適用する。マイコンの
中には、AD変換器等のようなアナログ回路を内蔵する
種類のものがある。また、マイコンの外部にアナログI
Cが接続された種類のものもある。一般的にアナログ回
路はノイズの影響を受けやすく、例えばAD変換器がノ
イズの影響を受けると、AD変換の精度が悪化する。そ
こで、本実施の形態4では、ノイズの影響を受けやすい
回路の動作に関する部分のプログラムに対して、上記実
施の形態1に係る発明を適用する。もちろん、プログラ
ムの全体に対して適用してもよい。
【0039】このように本実施の形態4に係るプログラ
ムの作成によれば、少なくともノイズの影響を受けやす
い回路の動作に関する部分のプログラムに対して上記実
施の形態1に係る発明を適用することにより、マイコン
の性能の低下を効率的に抑制することができる。
【0040】実施の形態5.上記の通り、オブジェクト
プログラムは複数の命令を含んでおり、これらの複数の
命令は、リンカ10によってそれぞれアドレスが割り当
てられて、メモリ3内に記憶されている。また、CPU
2は、アドレスバス4を介してメモリ3内のアドレスを
指定し、そのアドレスから命令を読み出して、その命令
を実行する。そして、メモリ3内に記憶された複数の命
令を順番に読み出すことにより、オブジェクトプログラ
ムを実行する。従って、オブジェクトプログラムに含ま
れる複数の命令をメモリ3内のどのアドレスに割り当て
るかによって、CPU2がメモリ3内のアドレスを指定
する際にアドレスバス4の電位が変化するパターンが異
なってくる。本実施の形態5では、アドレスバス4の電
位変化が大きくなることのないよう、オブジェクトプロ
グラムの複数の命令に割り当てられるメモリ3内のアド
レスを、リンカ10によって調整する。
【0041】図8は、本実施の形態5に係るリンカ10
の処理を説明するためのフローチャートである。まず、
ステップSP2Aにおいて、リンカ10は、作成したオ
ブジェクトプログラムに含まれる複数の命令に対して、
メモリ3内のアドレスを割り当てる。厳密には、先頭の
命令に対してメモリ3内のアドレスが割り当てられ、2
番目以降の命令のアドレスは、先頭の命令のアドレスに
連続するように自動的に割り当てられる。図9は、ステ
ップSP2Aによって割り当てられたアドレスビットA
B1を示す図である。ここでは、命令a〜命令hの8個
の命令によってオブジェクトプログラムが構成されてい
る場合の例を示している。例えば、命令dには、メモリ
3内の「0111 1111 1111 1111」というアドレスが割り
当てられ、命令eには、メモリ3内の「1000 0000 0000
0000」というアドレスが割り当てられている。
【0042】図8に戻り、次に、ステップSP2Bにお
いて、リンカ10は、命令a〜命令hが割り当てられた
全てのアドレスに関して、MSB(Most Significant B
it)が「0」のアドレスと「1」のアドレスとが両方と
も存在するか否かを判定する。
【0043】ステップSP2Bにおける判定の結果が
「YES」である場合はステップSP2Cに進み、リン
カ10は、先頭の命令aのアドレスを割り当て直す。2
番目以降の命令b〜命令hの各アドレスは、先頭の命令
aのアドレスに連続するように自動的に割り当てられ
る。図9に示したアドレスビットAB1の場合は、MS
Bが「0」のものと「1」のものとが両方とも存在する
ため、アドレスが割り当て直されることになる。そし
て、ステップSP2Bにおける判定の結果が「NO」と
なるまで、ステップSP2C及びステップSP2Bにお
ける動作が繰り返される。
【0044】ステップSP2Bにおける判定の結果が
「NO」である場合は、ステップSP2Dに進み、リン
カ10は、そのアドレスを正式なアドレスとして決定す
る。図10は、正式なアドレスとして決定されたアドレ
スビットAB2を示す図である。命令a〜命令hのMS
Bは全て「1」である。
【0045】アドレスビットAB1のハミング距離の最
大値は、MSBが「0」の最後の命令である命令dと、
MSBが「1」の最初の命令である命令eとの間の「1
6」であるのに対して、アドレスビットAB2のハミン
グ距離の最大値は「3」である。
【0046】このように本実施の形態5に係るプログラ
ムの作成によれば、リンカ10は、一つのオブジェクト
プログラムに含まれる複数の命令に対して割り当てられ
た複数のアドレスの中に、MSBが「0」のものと
「1」のものとが両方とも存在する場合、そのアドレス
を、MSBが「0」のものと「1」のものとの一方のみ
が存在するように変更して、その変更後のアドレスを正
式なアドレスとして決定する。従って、同時にスイッチ
ングするアドレスバス4の本数を削減できるため、急激
な電流変化に起因するマイコンの誤動作やノイズの発生
を抑制することができる。
【0047】なお、以上の説明では、命令の実行によっ
てバスが使用されるサイクルを省略したが、基本的に上
記の効果に影響するものではない。
【0048】また、以上の説明では、リンカ10は、一
つのオブジェクトプログラムに含まれる複数の命令の各
MSBの値が共通するように、各命令にアドレスを割り
当てた。しかしながら、MSBの値ではなく最上位桁の
値が共通するように(換言すれば、連続する複数のアド
レスの途中で桁上がり又は桁下がりが生じないよう
に)、アドレスを割り当ててもよい。例えば、一の命令
のアドレスが「0000 11111111 1111」であり、次の命令
のアドレスが「0001 0000 0000 0000」である場合は、
桁上がりが生じている。なお、この場合の「最上位桁」
とは、MSBよりも3ビット下位の桁となる。
【0049】さらに、以上の説明では、リンカ10は、
一つのオブジェクトプログラムに含まれる複数の命令の
MSBが共通するように、各命令にアドレスを割り当て
た。しかしながら、例えば一つのオブジェクトプログラ
ムに8(=2n:nは3)個の命令が含まれる場合に、
図10に示したように、LSB(Least SignificantBi
t)よりも2(=n−1)ビット上位のビットよりも上
位側の全てのビットの値が共通するようにアドレスを割
り当てることにより、同時にスイッチングするアドレス
バス4の本数を最大限削減することができる。
【0050】実施の形態6.上記実施の形態5では、M
SBが「0」のものと「1」のものとの一方のみが存在
するように割り当てられたアドレスを、正式なアドレス
として決定する発明について説明した。本実施の形態6
に係るプログラムの作成では、上記実施の形態2と同様
の趣旨に基づき、上記実施の形態5に係る発明を、少な
くとも、一つのプログラム中で頻繁に繰り返して実行さ
れる箇所に対して適用する。もちろん、プログラムの全
体に対して適用してもよい。
【0051】このように本実施の形態6に係るプログラ
ムの作成によれば、少なくとも実行される頻度が高い部
分のプログラムに対して上記実施の形態5に係る発明を
適用することにより、マイコンの誤動作やノイズの発生
を効率的に抑制することができる。
【0052】実施の形態7.上記実施の形態5では、M
SBが「0」のものと「1」のものとの一方のみが存在
するように割り当てられたアドレスを、正式なアドレス
として決定する発明について説明した。本実施の形態7
に係るプログラムの作成では、上記実施の形態3と同様
の趣旨に基づき、上記実施の形態5に係る発明を、プロ
グラムのうち、少なくとも、他の部分よりも高速で動作
する部分に対して適用する。もちろん、プログラムの全
体に対して適用してもよい。
【0053】このように本実施の形態7に係るプログラ
ムの作成によれば、少なくとも高速で動作する部分のプ
ログラムに対して上記実施の形態5に係る発明を適用す
ることにより、マイコンの消費電力を効率的に抑制する
ことができる。
【0054】実施の形態8.上記実施の形態5では、M
SBが「0」のものと「1」のものとの一方のみが存在
するように割り当てられたアドレスを、正式なアドレス
として決定する発明について説明した。本実施の形態8
に係るプログラムの作成では、上記実施の形態4と同様
の趣旨に基づき、上記実施の形態5に係る発明を、プロ
グラムのうち、少なくとも、ノイズに敏感な回路の動作
に関する部分に対して適用する。もちろん、プログラム
の全体に対して適用してもよい。
【0055】このように本実施の形態8に係るプログラ
ムの作成によれば、少なくともノイズの影響を受けやす
い回路の動作に関する部分のプログラムに対して上記実
施の形態5に係る発明を適用することにより、マイコン
の性能の低下を効率的に抑制することができる。
【0056】実施の形態9.本実施の形態9では、上記
実施の形態5と同様の趣旨に基づき、アドレスバス4の
電位変化が大きくなることのないよう、オブジェクトプ
ログラムの複数の命令に割り当てられるメモリ3内のア
ドレスを、リンカ10によって調整する。
【0057】図11は、本実施の形態9に係るリンカ1
0の処理を説明するためのフローチャートである。ま
ず、ステップSP3Aにおいて、リンカ10は、作成し
たオブジェクトプログラムに含まれる複数の命令に対し
て、メモリ3内のアドレスを割り当てる。厳密には、先
頭の命令に対してメモリ3内のアドレスが割り当てら
れ、2番目以降の命令のアドレスは、先頭の命令のアド
レスに連続するように自動的に割り当てられる。
【0058】次に、ステップSP3Bにおいて、リンカ
10は、命令a〜命令hが割り当てられた全てのアドレ
スに関して、MSBが「0」のアドレスと「1」のアド
レスとが両方とも存在するか否かを判定する。
【0059】ステップSP3Bにおける判定の結果が
「YES」である場合はステップSP3Cに進み、リン
カ10は、所定の命令以降の命令のアドレスを割り当て
直す。ここでいう「所定の命令」とは、MSBが「0」
の最後の命令(図9に示したアドレスビットAB1では
命令dがこれに相当する)である。上記所定の命令の新
たなアドレスとしては、「1000 0000 0000 0001」以降
の任意のアドレスを割り当てればよい。望ましくは、
「0111 1111 1111 1111」のアドレスと上位ビットが共
通するアドレスに割り当てるとよい。命令e〜命令hの
各アドレスは、命令dのアドレスに連続するように自動
的に割り当てられる。
【0060】次に、ステップSP3Dにおいて、リンカ
10は、「0111 1111 1111 1111」のアドレスに、命令
dの新たなアドレスへのジャンプ命令を挿入する。
【0061】次に、ステップSP3Eにおいて、リンカ
10は、そのアドレスを正式なアドレスとして決定す
る。また、ステップSP3Bにおける判定の結果が「N
O」である場合もステップSP3Eに進み、リンカ10
は、そのアドレスを正式なアドレスとして決定する。図
12は、正式なアドレスとして決定されたアドレスビッ
トAB3を示す図である。命令dの新たなアドレスとし
ては「1111 1111 0000 0000」が割り当てられており、
「0111 1111 1111 1111」のアドレスには、命令dの新
たなアドレスへのジャンプ命令が挿入されている。
【0062】図9に示したアドレスビットAB1のハミ
ング距離の最大値は、MSBが「0」の最後の命令であ
る命令dと、MSBが「1」の最初の命令である命令e
との間の「16」であるのに対して、アドレスビットA
B3のハミング距離の最大値は、MSBが「0」の最後
のアドレスと、命令dの新たなアドレスとの間の「9」
である。
【0063】このように本実施の形態9に係るプログラ
ムの作成によれば、リンカ10は、一つのオブジェクト
プログラムに含まれる複数の命令に対して割り当てられ
た複数のアドレスの中に、MSBが「0」のものと
「1」のものとが両方とも存在する場合、ハミング距離
が小さくなるように、所定の命令以降の命令のアドレス
を割り当て直し、その所定の命令の新たなアドレスへの
ジャンプ命令を挿入して、正式なアドレスとして決定す
る。従って、同時にスイッチングするアドレスバス4の
本数を削減できるため、急激な電流変化に起因するマイ
コンの誤動作やノイズの発生を抑制することができる。
【0064】なお、以上の説明では、命令の実行によっ
てバスが使用されるサイクルを省略したが、基本的に上
記の効果に影響するものではない。
【0065】また、マイコンでは通常パイプライン処理
が行われているため、命令が実行されるまでには数サイ
クルかかり、その間バスが使用されていない場合には、
次の命令が先読みされる。本実施の形態9ではパイプラ
イン処理がなされていない場合について説明したが、パ
イプライン処理が行われるマイコンについても、パイプ
ライン処理を想定した箇所に分岐命令を挿入することに
よって、本実施の形態9に係る発明を適用できるのはい
うまでもない。
【0066】実施の形態10.上記実施の形態9では、
所定の命令以降の命令のアドレスが割り当て直されると
ともに、ジャンプ命令が挿入されたアドレスを、正式な
アドレスとして決定する発明について説明した。本実施
の形態10に係るプログラムの作成では、上記実施の形
態2と同様の趣旨に基づき、上記実施の形態9に係る発
明を、少なくとも、一つのプログラム中で頻繁に繰り返
して実行される箇所に対して適用する。もちろん、プロ
グラムの全体に対して適用してもよい。
【0067】このように本実施の形態10に係るプログ
ラムの作成によれば、少なくとも実行される頻度が高い
部分のプログラムに対して上記実施の形態9に係る発明
を適用することにより、マイコンの誤動作やノイズの発
生を効率的に抑制することができる。
【0068】実施の形態11.上記実施の形態9では、
所定の命令以降の命令のアドレスが割り当て直されると
ともに、ジャンプ命令が挿入されたアドレスを、正式な
アドレスとして決定する発明について説明した。本実施
の形態11に係るプログラムの作成では、上記実施の形
態3と同様の趣旨に基づき、上記実施の形態9に係る発
明を、プログラムのうち、少なくとも、他の部分よりも
高速で動作する部分に対して適用する。もちろん、プロ
グラムの全体に対して適用してもよい。
【0069】このように本実施の形態11に係るプログ
ラムの作成によれば、少なくとも高速で動作する部分の
プログラムに対して上記実施の形態9に係る発明を適用
することにより、マイコンの消費電力を効率的に抑制す
ることができる。
【0070】実施の形態12.上記実施の形態9では、
所定の命令以降の命令のアドレスが割り当て直されると
ともに、ジャンプ命令が挿入されたアドレスを、正式な
アドレスとして決定する発明について説明した。本実施
の形態12に係るプログラムの作成では、上記実施の形
態4と同様の趣旨に基づき、上記実施の形態9に係る発
明を、プログラムのうち、少なくとも、ノイズに敏感な
回路の動作に関する部分に対して適用する。もちろん、
プログラムの全体に対して適用してもよい。
【0071】このように本実施の形態12に係るプログ
ラムの作成によれば、少なくともノイズの影響を受けや
すい回路の動作に関する部分のプログラムに対して上記
実施の形態9に係る発明を適用することにより、マイコ
ンの性能の低下を効率的に抑制することができる。
【0072】実施の形態13.本実施の形態13では、
上記実施の形態5と同様の趣旨に基づき、アドレスバス
4の電位変化が大きくなることのないよう、オブジェク
トプログラムの複数の命令に割り当てられるメモリ3内
のアドレスを、リンカ10によって調整する。
【0073】図13は、本実施の形態13に係るリンカ
10の処理を説明するためのフローチャートである。ま
ず、ステップSP4Aにおいて、リンカ10は、作成し
たオブジェクトプログラムに含まれる複数の命令に対し
て、メモリ3内のアドレスを割り当てる。厳密には、先
頭の命令に対してメモリ3内のアドレスが割り当てら
れ、2番目以降の命令のアドレスは、先頭の命令のアド
レスに連続するように自動的に割り当てられる。
【0074】次に、ステップSP4Bにおいて、リンカ
10は、命令a〜命令hが割り当てられた全てのアドレ
スに関して、MSBが「0」のアドレスと「1」のアド
レスとが両方とも存在するか否かを判定する。
【0075】ステップSP4Bにおける判定の結果が
「YES」である場合はステップSP4Cに進み、リン
カ10は、所定の命令以降の命令のアドレスを1個ずつ
繰り下げる。ここでいう「所定の命令」とは、MSBが
「0」の最後の命令(図9に示したアドレスビットAB
1では命令dがこれに相当する)である。具体的に、リ
ンカ10は、命令dのアドレスを「0111 1111 1111 111
1」から「1000 0000 0000 0000」に割り当て直す。命令
e〜命令hの各アドレスは、命令dのアドレスに連続す
るように自動的に割り当てられる。
【0076】次に、ステップSP4Dにおいて、リンカ
10は、「0111 1111 1111 1111」のアドレスに、所定
の専用命令を挿入する。ここで「専用命令」とは、CP
U2に対して、特定のアドレスへのアクセスを指定する
命令である。専用命令によってアクセスが指定されるア
ドレスは、「0111 1111 1111 1111」のアドレスとの間
のハミング距離が「7」〜「9」程度のアドレスであ
る。例えば、「0000 0000 1111 1111」のアドレスへの
アクセスが専用命令によって指定される。「00000000 1
111 1111」のアドレスに何らかの他の命令がすでに記憶
されている場合であっても、CPU2はそのアドレスに
アクセスするのみであり、その命令を実行しない。
【0077】次に、ステップSP4Eにおいて、リンカ
10は、そのアドレスを正式なアドレスとして決定す
る。また、ステップSP4Bにおける判定の結果が「N
O」である場合もステップSP4Eに進み、リンカ10
は、そのアドレスを正式なアドレスとして決定する。図
14は、正式なアドレスとして決定されたアドレスビッ
トAB4を示す図である。命令dの新たなアドレスとし
ては「1000 0000 0000 0000」が割り当てられており、
「0111 1111 1111 1111」のアドレスには、「00000000
1111 1111」のアドレスへのアクセスを指定する専用命
令が挿入されている。CPU2は、専用命令に従って
「0000 0000 1111 1111」のアドレスにアクセスした
後、「1000 0000 0000 0000」のアドレスにアクセス
し、命令dの読み出しを実行する。
【0078】図9に示したアドレスビットAB1のハミ
ング距離の最大値は、MSBが「0」の最後の命令であ
る命令dと、MSBが「1」の最初の命令である命令e
との間の「16」であるのに対して、アドレスビットA
B4のハミング距離の最大値は、専用命令によって指定
された「0000 0000 1111 1111」のアドレスと、命令d
の新たなアドレス「1000 0000 0000 0000」との間の
「9」である。
【0079】このように本実施の形態13に係るプログ
ラムの作成によれば、リンカ10は、一つのオブジェク
トプログラムに含まれる複数の命令に対して割り当てら
れた複数のアドレスの中に、MSBが「0」のものと
「1」のものとが両方とも存在する場合、ハミング距離
が小さくなるように、所定の命令以降の命令のアドレス
を割り当て直すとともに、特定のアドレスへのアクセス
を指定する専用命令を挿入して、正式なアドレスとして
決定する。従って、同時にスイッチングするアドレスバ
ス4の本数を削減できるため、急激な電流変化に起因す
るマイコンの誤動作やノイズの発生を抑制することがで
きる。
【0080】なお、以上の説明では、命令の実行によっ
てバスが使用されるサイクルを省略したが、基本的に上
記の効果に影響するものではない。
【0081】また、マイコンでは通常パイプライン処理
が行われているため、命令が実行されるまでには数サイ
クルかかり、その間バスが使用されていない場合には、
次の命令が先読みされる。本実施の形態13ではパイプ
ライン処理がなされていない場合について説明したが、
パイプライン処理が行われるマイコンについても、パイ
プライン処理を想定した箇所に専用命令を挿入すること
によって、本実施の形態13に係る発明を適用できるの
はいうまでもない。
【0082】実施の形態14.上記実施の形態13で
は、所定の命令以降の命令のアドレスが割り当て直され
るとともに、専用命令が挿入されたアドレスを、正式な
アドレスとして決定する発明について説明した。本実施
の形態14に係るプログラムの作成では、上記実施の形
態2と同様の趣旨に基づき、上記実施の形態13に係る
発明を、少なくとも、一つのプログラム中で頻繁に繰り
返して実行される箇所に対して適用する。もちろん、プ
ログラムの全体に対して適用してもよい。
【0083】このように本実施の形態14に係るプログ
ラムの作成によれば、少なくとも実行される頻度が高い
部分のプログラムに対して上記実施の形態13に係る発
明を適用することにより、マイコンの誤動作やノイズの
発生を効率的に抑制することができる。
【0084】実施の形態15.上記実施の形態13で
は、所定の命令以降の命令のアドレスが割り当て直され
るとともに、専用命令が挿入されたアドレスを、正式な
アドレスとして決定する発明について説明した。本実施
の形態15に係るプログラムの作成では、上記実施の形
態3と同様の趣旨に基づき、上記実施の形態13に係る
発明を、プログラムのうち、少なくとも、ノイズに敏感
な回路の動作に関する部分に対して適用する。もちろ
ん、プログラムの全体に対して適用してもよい。
【0085】このように本実施の形態15に係るプログ
ラムの作成によれば、少なくともノイズの影響を受けや
すい回路の動作に関する部分のプログラムに対して上記
実施の形態13に係る発明を適用することにより、マイ
コンの性能の低下を効率的に抑制することができる。
【0086】実施の形態16.上記実施の形態13で
は、所定の命令以降の命令のアドレスが割り当て直され
るとともに、専用命令が挿入されたアドレスを、正式な
アドレスとして決定する発明について説明した。本実施
の形態16に係るプログラムの作成では、上記実施の形
態13に係る発明を、プログラムの分岐時に適用する。
具体的には、分岐元のアドレスに対してハミング距離が
大きいアドレスにプログラムが分岐する場合に、分岐直
前に専用命令を挿入する。専用命令を挿入する処理を行
うか否かは、分岐元のアドレスと分岐先のアドレスとの
間のハミング距離が、所定の基準値よりも大きいか否か
で判断する。この所定の基準値は、例えば16ビットの
場合は「8」である。
【0087】図15は、分岐を有するアドレスビットA
B5を示す図である。「0000 11110000 1111」のアドレ
スには、「1111 0000 1111 0000」のアドレスへの分岐
命令が格納されている。従って、分岐前後のアドレスの
ハミング距離は「16」となり、急激な電流変化に起因
してマイコンの誤動作やノイズが発生する。
【0088】図16は、本実施の形態16に係る発明が
適用された、アドレスビットAB6を示す図である。分
岐命令の直前に、専用命令が挿入されている。ここでの
専用命令は、次に分岐命令を受けた場合に、特定のアド
レスへアクセスしてから分岐先のアドレスへジャンプす
ることをCPU2に指示する旨の命令である。専用命令
によって指定される特定のアドレスとしては、分岐元の
アドレスとの間のハミング距離、及び分岐先のアドレス
との間のハミング距離が、いずれも「7」〜「9」程度
(16ビットの場合)になるアドレスを採用する。図1
6に示した例では、上記特定のアドレスとして、「0011
0011 0011 0011」のアドレスが指定されている。この
例の場合、分岐元及び分岐先の各アドレスとの間のハミ
ング距離は、いずれも「8」となる。
【0089】このように本実施の形態15に係るプログ
ラムの作成によれば、分岐元のアドレスに対してハミン
グ距離が大きいアドレスにプログラムが分岐する場合
に、特定のアドレスへのアクセスを指定する専用命令
を、分岐命令の直前のアドレスに挿入する。従って、分
岐の際に同時にスイッチングするアドレスバス4の本数
を削減できるため、急激な電流変化に起因するマイコン
の誤動作やノイズの発生を抑制することができる。
【0090】実施の形態17.図17は、メモリ3を模
式的に示す図である。メモリ3は、所定のアドレスによ
って区切られた、RAM領域、SFR(Special Functi
on Register)領域、及びROM領域を持っている。R
AM領域にはデータが記憶され、SFR領域には、マイ
コンに内蔵されている周辺機能に関するデータが記憶さ
れ、ROM領域には命令が記憶される。ROM領域内の
アドレス「1111 1111 1111 1111」に近い箇所に記憶さ
れている命令ほど、RAM領域やSFR領域に記憶され
ているデータと上位アドレスが異なる。
【0091】図18は、プログラムの一例を示す図であ
る。命令x〜命令zは、図17に示したROM領域内に
記憶されている。アドレス「1111 1111 1111 0000」に
記憶されている命令zは、RAM領域内のアドレス「00
00 0000 0000 1000」に記憶されているデータの読み出
しを必要とする命令である。
【0092】図19は、図18に示したプログラムを実
行する際に、CPU2がアクセスするメモリ3内のアド
レスの変化を示す図である。命令zを読み込んだ後にR
am:0[B]のデータを読み込む際に、ハミング距離が
「13」の大きなアドレス変化が生じている。従って、
急激な電流変化に起因してマイコンの誤動作やノイズが
発生する。本実施の形態17に係るプログラムの作成で
は、上記実施の形態13に係る発明を、命令実行時のデ
ータアクセスに際して適用する。具体的には、命令の実
行がアドレス変化の大きなデータの参照を伴う場合に、
その命令の直前に専用命令を挿入する。
【0093】図20は、本実施の形態17に係る発明が
適用された、プログラムの一例を示す図である。データ
アクセスに際して大きなアドレス変化を引き起こす命令
zの直前に、専用命令が挿入されている。ここでの専用
命令は、次にデータ参照を伴う命令を受けた場合に、特
定のアドレスへアクセスしてからそのデータのアドレス
へアクセスすることをCPU2に指示する旨の命令であ
る。専用命令によって指定される特定のアドレスとして
は、上記データ参照を伴う命令のアドレスとの間のハミ
ング距離、及び参照されるデータのアドレスとの間のハ
ミング距離が、いずれも「7」〜「9」程度(16ビッ
トの場合)になるアドレスを採用する。例えば、上記特
定のアドレスとして、RAM領域内の「0000 0011 1111
0000」のアドレスが指定される。
【0094】図21は、図20に示したプログラムを実
行する際に、CPU2がアクセスするメモリ3内のアド
レスの変化を示す図である。図19と比較すると、命令
zの読み込みとRam:0[B]のデータの読み込みとの
間に、専用命令の実行が追加されていることが分かる。
ハミング距離の最大値は、命令zの読み込みと専用命令
の実行との間、及び専用命令の実行とRam:0[B]の
データの読み込みとの間の「7」である。
【0095】このように本実施の形態17に係るプログ
ラムの作成によれば、ある命令の実行がアドレス変化の
大きなデータの参照を伴う場合に、特定のアドレスへの
アクセスを指定する専用命令を、その命令の直前のアド
レスに挿入する。従って、データを参照する際に同時に
スイッチングするアドレスバス4の本数を削減できるた
め、急激な電流変化に起因するマイコンの誤動作やノイ
ズの発生を抑制することができる。
【0096】実施の形態18.上記実施の形態17で
は、ある命令の実行がアドレス変化の大きなデータの参
照を伴う場合に、特定のアドレスへのアクセスを指定す
る専用命令を挿入することにより、データを参照する際
に同時にスイッチングするアドレスバス4の本数を削減
した。本実施の形態18では、専用命令を挿入するので
はなく、ハミング距離が小さくなるようにデータのアド
レスを割り当て直すことによって、同時にスイッチング
するアドレスバス4の本数を削減する。
【0097】図22は、本実施の形態18に係るプログ
ラムの作成を説明するためのフローチャートである。ま
ず、ステップSP5Aにおいて、リンカ10は、メモリ
3内における命令及びデータのアドレスを割り当てる。
但し、マイコン1に内蔵されたメモリ3内にデータが記
憶されるのではく、マイコン1に接続された外部メモリ
にデータが記憶される場合もある。この場合は、外部メ
モリ内におけるデータのアドレスが割り当てられる。
【0098】次に、ステップSP5Bにおいて、リンカ
10は、命令のアドレスと、その命令の実行によって参
照されるデータのアドレスとのハミング距離を求める。
次に、ステップSP5Cにおいて、リンカ10は、ステ
ップSP5Bで求めたハミング距離が所定の基準値より
も大きいか否かを判定する。所定の基準値は、例えば1
6ビットの場合は「8」である。
【0099】ステップSP5Cにおける判定の結果が
「YES」である場合はステップSP5Dに進み、リン
カ10は、そのデータのアドレスを割り当て直す。そし
て、ステップSP5Cにおける判定の結果が「NO」と
なるまで、ステップSP5B〜SP5Dの処理を繰り返
し実行する。但し、データのアドレスを割り当て直すの
ではなく、命令のアドレスを割り当て直してもよい。即
ち、命令及びデータの少なくとも一方のアドレスを割り
当て直せばよい。
【0100】一方、ステップSP5Cにおける判定の結
果が「NO」の場合はステップSP5Eに進み、リンカ
10は、そのアドレスを正式なアドレスとして決定す
る。
【0101】図23は、本実施の形態18に係るプログ
ラムを実行する際に、CPU2がアクセスするアドレス
の変化を示す図である。「0000 0000 0000 1000」のア
ドレスが割り当てられていたRam:0[B]のデータ
が、「0000 0011 1111 0001」のアドレスに変更されて
おり、ハミング距離の最大値は「7」となっている。
【0102】このように本実施の形態18に係るプログ
ラムの作成によれば、ある命令の実行がアドレス変化の
大きなデータの参照を伴う場合に、命令とデータとの間
のハミング距離が所定の基準値以下になるように、命令
及びデータの少なくとも一方のアドレスが割り当て直さ
れる。従って、データを参照する際に同時にスイッチン
グするアドレスバス4の本数を削減できるため、急激な
電流変化に起因するマイコンの誤動作やノイズの発生を
抑制することができる。
【0103】なお、以上の説明ではパイプライン処理が
なされていない場合について説明したが、パイプライン
処理が行われるマイコンについても、本実施の形態18
に係る発明を適用できるのはいうまでもない。
【0104】
【発明の効果】この発明のうち請求項1に係るものによ
れば、同時にスイッチングされるデータバスの本数を削
減できるため、急激な電流変化に起因するデータ処理装
置の誤動作やノイズの発生を抑制することができる。
【0105】また、この発明のうち請求項2に係るもの
によれば、データ処理装置の誤動作やノイズの発生を効
率的に抑制することができる。
【0106】また、この発明のうち請求項3に係るもの
によれば、データ処理装置の性能の低下を効率的に抑制
することができる。
【0107】また、この発明のうち請求項4に係るもの
によれば、同時にスイッチングされるアドレスバスの本
数を削減できるため、急激な電流変化に起因するデータ
処理装置の誤動作やノイズの発生を抑制することができ
る。
【0108】また、この発明のうち請求項5に係るもの
によれば、同時にスイッチングされるアドレスバスの本
数を最大限削減することができる。
【0109】また、この発明のうち請求項6に係るもの
によれば、同時にスイッチングされるアドレスバスの本
数を削減できるため、急激な電流変化に起因するデータ
処理装置の誤動作やノイズの発生を抑制することができ
る。
【0110】また、この発明のうち請求項7に係るもの
によれば、同時にスイッチングされるアドレスバスの本
数を削減できるため、急激な電流変化に起因するデータ
処理装置の誤動作やノイズの発生を抑制することができ
る。
【0111】また、この発明のうち請求項8に係るもの
によれば、同時にスイッチングされるアドレスバスの本
数を削減できるため、急激な電流変化に起因するデータ
処理装置の誤動作やノイズの発生を抑制することができ
る。
【0112】また、この発明のうち請求項9に係るもの
によれば、同時にスイッチングされるアドレスバスの本
数を削減できるため、急激な電流変化に起因するデータ
処理装置の誤動作やノイズの発生を抑制することができ
る。
【0113】また、この発明のうち請求項10に係るも
のによれば、同時にスイッチングされるアドレスバスの
本数を削減できるため、急激な電流変化に起因するデー
タ処理装置の誤動作やノイズの発生を抑制することがで
きる。
【0114】また、この発明のうち請求項11に係るも
のによれば、データ処理装置の誤動作やノイズの発生を
効率的に抑制することができる。
【0115】また、この発明のうち請求項12に係るも
のによれば、データ処理装置の消費電力を効率的に抑制
することができる。
【0116】また、この発明のうち請求項13に係るも
のによれば、データ処理装置の性能の低下を効率的に抑
制することができる。
【0117】また、この発明のうち請求項14に係るも
のによれば、急激な電流変化に起因するデータ処理装置
の誤動作やノイズの発生を抑制することができる。
【0118】また、この発明のうち請求項15に係るも
のによれば、急激な電流変化に起因するデータ処理装置
の誤動作やノイズの発生を抑制することができる。
【図面の簡単な説明】
【図1】 マイコンの構成の一部を模式的に示すブロッ
ク図である。
【図2】 クロスツールを模式的に示すブロック図であ
る。
【図3】 他のクロスツールを模式的に示すブロック図
である。
【図4】 エディタによって作成されたCソースプログ
ラムを示す図である。
【図5】 本発明の実施の形態1に係るアセンブラの処
理を説明するためのフローチャートである。
【図6】 アセンブリソースプログラム及び相対オブジ
ェクトプログラムを示す図である。
【図7】 他のアセンブリソースプログラム及び他の相
対オブジェクトプログラムを示す図である。
【図8】 本発明の実施の形態5に係るリンカの処理を
説明するためのフローチャートである。
【図9】 アドレスビットを示す図である。
【図10】 本発明の実施の形態5に係る発明が適用さ
れたアドレスビットを示す図である。
【図11】 本発明の実施の形態9に係るリンカの処理
を説明するためのフローチャートである。
【図12】 本発明の実施の形態9に係る発明が適用さ
れたアドレスビットを示す図である。
【図13】 本発明の実施の形態13に係るリンカの処
理を説明するためのフローチャートである。
【図14】 本発明の実施の形態13に係る発明が適用
されたアドレスビットを示す図である。
【図15】 分岐を有するアドレスビットを示す図であ
る。
【図16】 本発明の実施の形態16に係る発明が適用
されたアドレスビットを示す図である。
【図17】 メモリを模式的に示す図である。
【図18】 プログラムの一例を示す図である。
【図19】 図18に示したプログラムを実行する際
に、CPUがアクセスするメモリ内のアドレスの変化を
示す図である。
【図20】 本発明の実施の形態17に係る発明が適用
されたプログラムの一例を示す図である。
【図21】 図20に示したプログラムを実行する際
に、CPUがアクセスするメモリ内のアドレスの変化を
示す図である。
【図22】 本発明の実施の形態18に係るプログラム
の作成を説明するためのフローチャートである。
【図23】 本発明の実施の形態18に係るプログラム
を実行する際に、CPUがアクセスするアドレスの変化
を示す図である。
【符号の説明】
1 マイコン、2 CPU、3 メモリ、4 アドレス
バス、5 データバス、6a,6b クロスツール。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 福井 昭也 東京都港区浜松町二丁目4番1号 三菱電 機セミコンダクタシステム株式会社内 (72)発明者 高橋 一也 東京都港区浜松町二丁目4番1号 三菱電 機セミコンダクタシステム株式会社内 Fターム(参考) 5B081 AA06 AA07 CC21 CC41

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 複数の命令を含むオブジェクトプログラ
    ムが記憶された記憶部と、前記記憶部からデータバスを
    介して取り込んだ前記オブジェクトプログラムに基づい
    て演算を実行する演算部とを有するデータ処理装置が使
    用する前記オブジェクトプログラムを作成するためのプ
    ログラム作成装置であって、 与えられたソースプログラムに基づいてオブジェクトプ
    ログラムを作成するプログラム作成部を備え、 前記プログラム作成部は、前記複数の命令の順序を入れ
    替えることによって得られる複数の等価なオブジェクト
    プログラムのうち、連続する2つの前記命令間のハミン
    グ距離の最大値が最小のものを、正式なオブジェクトプ
    ログラムとして決定することを特徴とするプログラム作
    成装置。
  2. 【請求項2】 前記プログラム作成部による前記複数の
    命令の順序の入れ替えは、前記オブジェクトプログラム
    のうち、少なくとも、頻繁に繰り返して実行される箇所
    に対して行われることを特徴とする、請求項1に記載の
    プログラム作成装置。
  3. 【請求項3】 前記プログラム作成部による前記複数の
    命令の順序の入れ替えは、前記オブジェクトプログラム
    のうち、少なくとも、ノイズに敏感な回路の動作に関す
    る箇所に対して行われることを特徴とする、請求項1に
    記載のプログラム作成装置。
  4. 【請求項4】 2n以下で2n-1よりも大きいm個の命令
    (n及びmは自然数)を含むオブジェクトプログラムが
    記憶された記憶部と、k(kはnよりも大きい自然数)
    本のアドレスバスを介して前記記憶部内のkビットのア
    ドレスを順に指定することによって前記記憶部から順に
    読み出された前記m個の命令に基づいて演算を実行する
    演算部とを有するデータ処理装置が使用する前記オブジ
    ェクトプログラムを作成するためのプログラム作成装置
    であって、 与えられたソースプログラムに基づいて前記オブジェク
    トプログラムを作成するプログラム作成部と、 前記プログラム作成部によって作成された前記オブジェ
    クトプログラムに含まれる前記m個の命令に対して、連
    続する前記m個の前記アドレスを割り当てるアドレス割
    り当て部とを備え、 前記アドレス割り当て部は、連続する前記m個の前記ア
    ドレスの途中で前記アドレスの最上位桁の値が変化する
    場合、前記最上位桁の値が共通するように、前記アドレ
    スを割り当て直すことを特徴とするプログラム作成装
    置。
  5. 【請求項5】 前記アドレス割り当て部は、前記アドレ
    スを割り当て直すにあたり、最下位ビットよりも(n−
    1)ビット上位のビットよりも上位側の全てのビットの
    値が共通するように、前記アドレスを割り当てることを
    特徴とする、請求項4に記載のプログラム作成装置。
  6. 【請求項6】 複数の命令を含むオブジェクトプログラ
    ムが記憶された記憶部と、アドレスバスを介して前記記
    憶部内のアドレスを順に指定することによって前記記憶
    部から順に読み出された前記複数の命令に基づいて演算
    を実行する演算部とを有するデータ処理装置が使用する
    前記オブジェクトプログラムを作成するためのプログラ
    ム作成装置であって、 与えられたソースプログラムに基づいて前記オブジェク
    トプログラムを作成するプログラム作成部と、 前記プログラム作成部によって作成された前記オブジェ
    クトプログラムに含まれる前記複数の命令に対して、連
    続する複数の前記アドレスを割り当てるアドレス割り当
    て部とを備え、 前記アドレス割り当て部は、前記連続する複数の前記ア
    ドレスの途中で前記アドレスの最上位桁の値が変化する
    場合、その変化直後の前記アドレスが割り当てられてい
    る前記命令の前記アドレスを、その次の前記アドレス以
    降の前記アドレスに割り当て直すことを特徴とするプロ
    グラム作成装置。
  7. 【請求項7】 複数の命令を含むオブジェクトプログラ
    ムが記憶された記憶部と、アドレスバスを介して前記記
    憶部内のアドレスを順に指定することによって前記記憶
    部から順に読み出された前記複数の命令に基づいて演算
    を実行する演算部とを有するデータ処理装置が使用する
    前記オブジェクトプログラムを作成するためのプログラ
    ム作成装置であって、 与えられたソースプログラムに基づいて前記オブジェク
    トプログラムを作成するプログラム作成部と、 前記プログラム作成部によって作成された前記オブジェ
    クトプログラムに含まれる前記複数の命令に対して、連
    続する複数の前記アドレスを割り当てるアドレス割り当
    て部とを備え、 前記アドレス割り当て部は、前記連続する複数の前記ア
    ドレスの途中で前記アドレスの最上位桁の値が変化する
    場合、その変化直前の前記アドレスにアクセスした後、
    その変化直後の前記アドレスにアクセスする前に、所定
    のアドレスへアクセスすることを指示する、専用命令を
    挿入するように、前記アドレスを割り当て直すことを特
    徴とするプログラム作成装置。
  8. 【請求項8】 複数の命令を含むオブジェクトプログラ
    ムが記憶された記憶部と、アドレスバスを介して前記記
    憶部内のアドレスを順に指定することによって前記記憶
    部から順に読み出された前記複数の命令に基づいて演算
    を実行する演算部とを有するデータ処理装置が使用する
    前記オブジェクトプログラムを作成するためのプログラ
    ム作成装置であって、 与えられたソースプログラムに基づいて前記オブジェク
    トプログラムを作成するプログラム作成部と、 前記プログラム作成部によって作成された前記オブジェ
    クトプログラムに含まれる前記複数の命令に対して、前
    記アドレスをそれぞれ割り当てるアドレス割り当て部と
    を備え、 前記複数の命令には、一の命令から他の命令への分岐を
    指示する分岐命令が含まれており、 前記アドレス割り当て部は、分岐元の前記アドレスと分
    岐先の前記アドレスとの間のハミング距離が所定の基準
    値よりも大きい場合、前記分岐元の前記アドレスにアク
    セスした後、前記分岐先の前記アドレスにアクセスする
    前に、所定のアドレスへアクセスすることを指示する、
    専用命令を挿入するように、前記アドレスを割り当て直
    すことを特徴とするプログラム作成装置。
  9. 【請求項9】 複数の命令を含むオブジェクトプログラ
    ムが記憶された記憶部と、アドレスバスを介して前記記
    憶部内のアドレスを順に指定することによって前記記憶
    部から順に読み出された前記複数の命令に基づいて演算
    を実行する演算部とを有するデータ処理装置が使用する
    前記オブジェクトプログラムを作成するためのプログラ
    ム作成装置であって、 与えられたソースプログラムに基づいて前記オブジェク
    トプログラムを作成するプログラム作成部と、 前記プログラム作成部によって作成された前記オブジェ
    クトプログラムに含まれる前記複数の命令に対して、前
    記アドレスをそれぞれ割り当てるアドレス割り当て部と
    を備え、 前記複数の命令には、データの参照を必要とする所定の
    命令が含まれており、前記アドレス割り当て部は、前記
    所定の命令の前記アドレスと前記データのアドレスとの
    間のハミング距離が所定の基準値よりも大きい場合、前
    記所定の命令の前記アドレスにアクセスした後、前記デ
    ータの前記アドレスにアクセスする前に、所定のアドレ
    スへアクセスすることを指示する、専用命令を挿入する
    ように、前記アドレスを割り当て直すことを特徴とする
    プログラム作成装置。
  10. 【請求項10】 複数の命令を含むオブジェクトプログ
    ラムが記憶された記憶部と、アドレスバスを介して前記
    記憶部内のアドレスを順に指定することによって前記記
    憶部から順に読み出された前記複数の命令に基づいて演
    算を実行する演算部とを有するデータ処理装置が使用す
    る前記オブジェクトプログラムを作成するためのプログ
    ラム作成装置であって、 与えられたソースプログラムに基づいて前記オブジェク
    トプログラムを作成するプログラム作成部と、 前記プログラム作成部によって作成された前記オブジェ
    クトプログラムに含まれる前記複数の命令に対して、前
    記アドレスをそれぞれ割り当てるアドレス割り当て部と
    を備え、 前記複数の命令には、データの参照を必要とする所定の
    命令が含まれており、 前記アドレス割り当て部は、前記所定の命令の前記アド
    レスと前記データのアドレスとの間のハミング距離が所
    定の基準値よりも大きい場合、前記ハミング距離が前記
    所定の基準値以下になるように、前記所定の命令及び前
    記データの少なくとも一方の前記アドレスを割り当て直
    すことを特徴とするプログラム作成装置。
  11. 【請求項11】 前記アドレス割り当て部による前記ア
    ドレスの割り当て直しは、前記オブジェクトプログラム
    のうち、少なくとも、頻繁に繰り返して実行される箇所
    に対して行われることを特徴とする、請求項4〜10の
    いずれか一つに記載のプログラム作成装置。
  12. 【請求項12】 前記アドレス割り当て部による前記ア
    ドレスの割り当て直しは、前記オブジェクトプログラム
    のうち、少なくとも、他の箇所よりも高速で動作する箇
    所に対して行われることを特徴とする、請求項4〜10
    のいずれか一つに記載のプログラム作成装置。
  13. 【請求項13】 前記アドレス割り当て部による前記ア
    ドレスの割り当て直しは、前記オブジェクトプログラム
    のうち、少なくとも、ノイズに敏感な回路の動作に関す
    る箇所に対して行われることを特徴とする、請求項4〜
    10のいずれか一つに記載のプログラム作成装置。
  14. 【請求項14】 複数の命令を含むオブジェクトプログ
    ラムが記憶された記憶部と、前記記憶部からデータバス
    を介して取り込んだ前記オブジェクトプログラムに基づ
    いて演算を実行する演算部とを有するデータ処理装置が
    使用する前記オブジェクトプログラムを作成するための
    プログラム作成装置であって、 前記複数の命令の順序を入れ替えることによって得られ
    る複数の等価なオブジェクトプログラムのうち、同時に
    スイッチングされる前記データバスの本数が最も少なく
    なるものを、正式なオブジェクトプログラムとして決定
    することを特徴とするプログラム作成装置。
  15. 【請求項15】 複数の命令を含むオブジェクトプログ
    ラムが記憶された記憶部と、アドレスバスを介して前記
    記憶部内のアドレスを順に指定することによって前記記
    憶部から順に読み出された前記複数の命令に基づいて演
    算を実行する演算部とを有するデータ処理装置が使用す
    る前記オブジェクトプログラムを作成するためのプログ
    ラム作成装置であって、 前記オブジェクトプログラムに含まれる前記複数の命令
    に対して前記アドレスを割り当てた後、同時にスイッチ
    ングされる前記アドレスバスの本数が少なくなるよう
    に、前記アドレスを割り当て直すことを特徴とするプロ
    グラム作成装置。
JP2001148724A 2001-05-18 2001-05-18 プログラム作成装置 Pending JP2002342091A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001148724A JP2002342091A (ja) 2001-05-18 2001-05-18 プログラム作成装置
US09/971,683 US6938248B2 (en) 2001-05-18 2001-10-09 Program preparation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001148724A JP2002342091A (ja) 2001-05-18 2001-05-18 プログラム作成装置

Publications (1)

Publication Number Publication Date
JP2002342091A true JP2002342091A (ja) 2002-11-29

Family

ID=18993983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001148724A Pending JP2002342091A (ja) 2001-05-18 2001-05-18 プログラム作成装置

Country Status (2)

Country Link
US (1) US6938248B2 (ja)
JP (1) JP2002342091A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196729A (ja) * 2003-12-10 2005-07-21 Renesas Technology Corp コンパイラおよび命令コード出力装置
JP2006286027A (ja) * 2006-07-28 2006-10-19 Matsushita Electric Ind Co Ltd コンパイラ装置およびコンパイル方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149636B2 (en) * 2002-04-04 2006-12-12 Texas Instruments Incorporated Method and apparatus for non-obtrusive power profiling
JP3896087B2 (ja) * 2003-01-28 2007-03-22 松下電器産業株式会社 コンパイラ装置およびコンパイル方法
US7480809B2 (en) * 2004-10-15 2009-01-20 Genesis Microchip Inc. Reducing power consumption of a microprocessor
JP2006344076A (ja) * 2005-06-09 2006-12-21 Nec Electronics Corp プログラム生成装置、プログラム生成方法及びプログラム
KR101364443B1 (ko) * 2007-01-31 2014-02-17 삼성전자주식회사 메모리 시스템, 이 시스템을 위한 메모리 제어기와 메모리,이 시스템의 신호 구성 방법
US8495605B2 (en) * 2008-06-16 2013-07-23 International Business Machines Corporation Policy-based program optimization to minimize environmental impact of software execution
JP6313018B2 (ja) * 2013-11-13 2018-04-18 ルネサスエレクトロニクス株式会社 設計支援装置、半導体装置及びコンパイルプログラム
US9552278B1 (en) * 2016-01-04 2017-01-24 International Business Machines Corporation Configurable code fingerprint
US11354117B2 (en) * 2016-07-13 2022-06-07 Oracle International Corporation Adaptable patching mechanism for mixed memory systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3392545B2 (ja) 1994-09-30 2003-03-31 株式会社東芝 命令列最適化装置
JP2738365B2 (ja) * 1995-10-18 1998-04-08 日本電気株式会社 マイクロコンピュータ用プログラム変換方法及びそのプログラムを用いたマイクロコンピュータ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196729A (ja) * 2003-12-10 2005-07-21 Renesas Technology Corp コンパイラおよび命令コード出力装置
JP2006286027A (ja) * 2006-07-28 2006-10-19 Matsushita Electric Ind Co Ltd コンパイラ装置およびコンパイル方法
JP4721975B2 (ja) * 2006-07-28 2011-07-13 パナソニック株式会社 コンパイラ装置およびコンパイル方法

Also Published As

Publication number Publication date
US20040015922A1 (en) 2004-01-22
US6938248B2 (en) 2005-08-30

Similar Documents

Publication Publication Date Title
US5881290A (en) Industrial controller decompiler accommodating an expandable instruction set
US5455955A (en) Data processing system with device for arranging instructions
JP2006146953A (ja) プロセッサ、システムlsi、システムlsiの設計方法、及び、それを記録した記録媒体
US20080201564A1 (en) Data processor
WO2001090887A1 (fr) Procede de traitement de programme permettant un traitement haute vitesse au moyen d'un materiel a reconfiguration dynamique et programme permettant d'executer ce procede de traitement
JP2002342091A (ja) プログラム作成装置
Goudge et al. Thumb: reducing the cost of 32-bit RISC performance in portable and consumer applications
US7062724B2 (en) Method for designing a system LSI
JP3805314B2 (ja) プロセッサ
US6367076B1 (en) Compiling method and memory storing the program code
KR100272622B1 (ko) 데이타 처리장치
JP2004086837A (ja) データ処理装置
JP3082852B1 (ja) システムlsiの製造方法及びその方法で製造されたシステムlsi
JP2002099498A (ja) プログラム実行装置およびプログラム開発支援装置
US20070022413A1 (en) Tiered Register Allocation
JP3841820B2 (ja) マイクロコンピュータ
JP2002157115A (ja) データ処理装置
US6934892B2 (en) Computing system construction method under execution environment to be dependent on OS
JP2002073346A (ja) コンパイラ,記録媒体,プログラム変換装置,プログラム変換方法及びマイクロコンピュータ
JP2782987B2 (ja) 計算機装置
JP2006202329A (ja) システムlsiの設計方法及びこれを記憶した記録媒体
JPH11345127A (ja) コンパイラ
JP4545777B2 (ja) データ処理装置
JP4208919B2 (ja) 活性化コードの生成方法
JP3765782B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A073

Effective date: 20041116