JP2001202252A - プログラム処理方法および記録媒体 - Google Patents

プログラム処理方法および記録媒体

Info

Publication number
JP2001202252A
JP2001202252A JP2000014517A JP2000014517A JP2001202252A JP 2001202252 A JP2001202252 A JP 2001202252A JP 2000014517 A JP2000014517 A JP 2000014517A JP 2000014517 A JP2000014517 A JP 2000014517A JP 2001202252 A JP2001202252 A JP 2001202252A
Authority
JP
Japan
Prior art keywords
memory
instruction
attribute
code
access
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.)
Granted
Application number
JP2000014517A
Other languages
English (en)
Other versions
JP3692884B2 (ja
Inventor
Tetsuya Tanaka
哲也 田中
Takehito Heiji
岳人 瓶子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2000014517A priority Critical patent/JP3692884B2/ja
Publication of JP2001202252A publication Critical patent/JP2001202252A/ja
Application granted granted Critical
Publication of JP3692884B2 publication Critical patent/JP3692884B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Power Sources (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 従来のプログラム処理方法では、具体的目的
機械を想定するステップが存在しておらず、また様々な
構成の目的機械の違いを目的機械モデルで吸収すること
にしているため、目的機械の違いを考慮した最適化を行
うことができないことが課題である。 【解決手段】 本発明のプログラム処理方法は、最適化
情報を用いて最適化する命令スケジューリング処理10
2を備え、命令スケジューリング処理102が実行形式
コードを実行する目的機械の構成情報を抽出するハード
ウェア情報抽出ステップと、ハードウェア情報抽出ステ
ップにより得られたハードウェア情報を用いて命令を目
的機械における実行に好適になるように最適化するステ
ップを備える。これにより、目的機械のハードウェア資
源を最大限に使ったより実行時間の短いアセンブラコー
ドを得ることができるという有利な効果が得られる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高級言語からオブ
ジェクトコードを生成するコンパイラ、複数のオブジェ
クトコードを連結編集し、実行形式コードを生成するリ
ンカを含むプログラム処理方法、処理装置および記録媒
体に関するものであり、特に、並列プロセッサ向けの最
適化技術に関する。
【0002】
【従来の技術】従来のプログラム処理方法では、コンパ
イラが高級言語で記述されたソースコードを解析し、目
的機械向けに最適化を行い、オブジェクトコードとして
生成し、リンカが複数のオブジェクトコードを連結編集
して実行形式コードを生成していた。
【0003】ソースコードはユーザが記述する際、目的
機械の具体的構成を想定して記述するのではなく図12
に示す計算機モデルを想定していた。このモデルはプロ
セッサ1つに対し、メモリバスが1つ接続され主記憶と
しての記憶装置が接続されている。このモデルにおける
主記憶やメモリバスは概念上の構成であり、実際の構成
は例えば図13に示す構成をとることもできる。図13
では、プロセッサに3つのメモリバスが接続され、それ
ぞれのメモリバスには記憶装置が接続されているという
構成をとっている。
【0004】従来のプログラム処理方法の動作につい
て、図10に示すC言語で記述されたソースコードの具
体例を用いて簡単に説明する。図10のソースコードの
場合、従来のプログラム処理方法では、図7に示すアセ
ンブリコードを生成する。すなわち、目的機械が図13
のようにメモリアクセス命令(”ld”や”st”命
令)を並列実行可能な場合があっても、図12の目的機
械モデルを想定するのでメモリアクセス命令の並列実行
の可否を判定できない。
【0005】
【発明が解決しようとする課題】上記した従来のプログ
ラム処理方法では、具体的目的機械を想定するステップ
が存在しておらず、また様々な構成の目的機械の違いを
目的機械モデルで吸収することにしているため、目的機
械の違いを考慮した最適化を行うことができないことが
課題である。
【0006】また、従来のプログラム処理方法では、そ
れぞれ特性の異なるアプリケーションの特性を十分に用
いた最適化ができない。すなわち、従来のプログラム処
理装置では様々なアプリケーションの特性を目的機械モ
デルの構成の範囲内で表せる特性のみを用いて最適化し
ており、実際の目的機械の構成を活用するためのアプリ
ケーション情報を用いた最適化を行うことができないこ
とが課題である。
【0007】本発明はかかる問題点に鑑みてなされたも
のであり、ソースコードを記述するユーザがアプリケー
ションの特性と目的機械の構成をプログラム処理におけ
る最適化に用いるステップが備わったプログラム処理方
法を提供することを目的とする。
【0008】
【課題を解決するための手段】この課題を解決するため
に請求項1記載のプログラム処理方法は、高級言語で記
述された複数のソースコードからなるプログラムを実行
形式コードに変換する方法であって、前記ソースコード
を中間コード1に変換する変換ステップ1と、最適化情
報を用いて前記中間コード1を中間コード2に最適化す
る最適化ステップと、前記中間コード2を前記実行形式
コードに変換する変換ステップ2とを備える。
【0009】また請求項2記載のプログラム処理方法
は、最適化ステップが実行形式コードを実行する目的機
械の構成情報を抽出するハードウェア情報抽出ステップ
と、ハードウェア情報抽出ステップにより得られたハー
ドウェア情報を用いて中間コード1の命令あるいは命令
列を目的機械における実行に好適になるように命令ある
いは命令列を置き換えあるいは並び替える命令最適化ス
テップを備える。
【0010】また請求項3記載のプログラム処理方法
は、最適化ステップがソースコードからなるプログラム
で実現されるアプリケーションの特性情報を抽出するア
プリケーション情報抽出ステップと、アプリケーション
情報抽出ステップにより得られたアプリケーション情報
を用いて中間コード1の命令あるいは命令列を目的機械
における実行に好適になるように命令あるいは命令列を
置き換えあるいは並び替える命令最適化ステップを備え
る。
【0011】また請求項8記載のプログラム処理方法
は、高級言語で記述された複数のソースコードからなる
プログラムを実行形式コードに変換する方法であって、
ソースコードを中間コード1に変換する変換ステップ1
と、最適化情報を用いて前記中間コード1を中間コード
2に最適化する最適化ステップと、中間コード2を実行
形式コードに変換する変換ステップ2とを備え、最適化
ステップが、実行形式コードを実行する目的機械の並列
アクセス可能なメモリの構成情報を抽出するハードウェ
ア情報抽出ステップと、ソースコードからプログラムで
実現されるアプリケーションのメモリ使用の特性情報を
抽出するアプリケーション情報と、命令間の並列実行可
否を判定におけるメモリ資源競合を判定するときハード
ウェア情報とアプリケーション情報の参照により互いに
並列アクセス可能なメモリへのアクセス命令であると判
明した場合はメモリ資源の競合がないと判定し、そうで
ない場合はメモリ資源の競合があると判定するメモリ資
源競合判定ステップを備える。
【0012】また請求項15記載のプログラム処理方法
は、変換ステップ2により得られた実行形式コードが目
的機械の構成である複数のメモリのうち少なくとも一つ
が使用されていないことを検出するメモリ未使用検出ス
テップと、前記実行形式コードの実行時に未使用である
と検出された目的機械のメモリを低消費電力状態に設定
するステップを備える。
【0013】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図1から図13を参照しながら説明する。
【0014】図1は本発明の実施の形態におけるプログ
ラム処理方法の処理の流れとファイルの入出力関係を示
すフローチャートである。
【0015】コンパイラ上流処理100は、ファイル形
式で保存されている高級言語ソースコード200を読み
込み、構文解析および意味解析などを行って内部形式コ
ードを生成する。さらに必要に応じて、最終的に生成さ
れる実行形式コードの実行時間やコードサイズが短くな
るように内部形式コードを最適化する。なお、ソースコ
ード200に後述する本発明特有のアプリケーション情
報が含まれる場合は読み飛ばされる。
【0016】アセンブラコード生成処理101は、コン
パイラ上流処理100で生成、最適化された内部形式コ
ードからアセンブラコードを生成する。
【0017】コンパイラ上流処理100およびアセンブ
ラコード生成処理101は、本発明の主眼ではなく、ま
た、前記したアプリケーション情報を読み飛ばすことを
除いて、従来のプログラム処理方法と同一であるので、
詳細は省略する。
【0018】命令スケジューリング処理102は、アセ
ンブラコード生成処理101で生成されたアセンブラコ
ードに対し命令間の依存関係の解析、資源競合の解析に
基づき命令スケジューリング(命令順の並び替え)を行う
ことで、アセンブラコードを目的機械向けに並列化す
る。
【0019】また、命令スケジューリング処理102は
アプリケーション情報をアプリケーション情報ファイル
201から読み取る。アプリケーション情報ファイル2
01はソースコードあるいはソースコードとは異なるフ
ァイルのどちらの形式でも良い。本実施の形態では、ソ
ースコードにアプリケーション情報が記述されているも
のとする。図4にアプリケーション情報が含まれたソー
スコードの例を示す。
【0020】図4において1〜2行目にアプリケーショ
ン情報が含まれる。1行目の”m0::int G0
[2];”は2要素の整数配列G0を論理メモリm0に
割り当てることを示している。2行目も同様に配列G1
を論理メモリ間m1に割り当てることを示している。論
理メモリについては後述する。
【0021】さらに、命令スケジューリング処理102
はハードウェア情報をハードウェア情報ファイル202
から読み取る。ハードウェア情報ファイル202はソー
スコードあるいはソースコードとは異なるファイルのど
ちらの形式でもよい。本実施の形態では、ソースコード
とは異なるファイルにハードウェア情報が記述されてい
るものとする。図8にハードウェア情報ファイル202
の内容を示す。
【0022】図8に示すハードウェア情報は図11に示
すフォーマットで、目的機械ごとに用意される。本実施
の形態の図8のハードウェア情報は図13に示した目的
機械に対応したものである。以下、ハードウェア情報内
の各要素について説明する。
【0023】論理メモリは”::”以降に示された属性
を示す名称であり、図4に示すように、ソースコードに
おける静的変数(メモリへの割当が決まる変数)に付与さ
れる。なお、論理メモリstackは、自動変数アクセ
スなどのスタック操作の場合に自動的に付与され、論理
メモリmainは上記以外のメモリアクセスの場合に自
動的に付与される。
【0024】物理メモリは、目的機械がアクセス可能な
メモリを示しており、異なる名称はそれぞれ互いに並列
にアクセス可能であることを示している。本実施の形態
では図10に示すようにプロセッサはXメモリ(主記
憶)、Yメモリ、Zメモリの3つのメモリが接続されて
いる。これらのメモリは並列アクセスが可能なメモリで
あり、アクセスするための命令はそれぞれ異なるものと
する。なお、本実施の形態では命令によりどのメモリを
アクセスするかを命令で選択しているが、アドレスや並
列実行する際の命令位置により選択しても良い。
【0025】Xメモリは主記憶として使用されキャッシ
ュを搭載する。周辺機器のレジスタはXメモリにマッピ
ングされている。YメモリはROMで実装されており書
き込むことはできない。ZメモリはRAMで実装されて
いるが容量が小さいものとする。それぞれのメモリは独
立したアドレス空間を有するとしているが、他の方法と
して、一つのアドレス空間の一部をそれぞれのメモリに
割り当てても良い。
【0026】アドレス範囲属性は、論理メモリに割り当
てられた変数が利用可能なアドレスの範囲を示してお
り、物理メモリで利用できるアドレス範囲を越えること
はない。アドレス範囲属性は、変数割り当て時のサイズ
チェックを行いコンパイル時にソースコードの誤りを検
出するのに用いる。
【0027】アクセス単位属性は、論理メモリがアクセ
ス可能な単位を示しており、物理メモリのアクセス可能
なアクセス単位より小さくなることはない。一般に、あ
る単位のアクセスに限定したメモリは、複数のアクセス
単位をサポートするメモリより高速にアクセスできるか
あるいは低コストで実現できる。このようなアクセス単
位の限定されたメモリをサポートする目的機械向けに最
適化する場合に指定することができる。具体的には、変
数割り当て時のアラインやメモリアクセス命令のサイズ
指定に用いる。
【0028】アクセス方法属性は、論理メモリに割り当
てられた変数が物理メモリをアクセスするときのアクセ
ス方法を示しており、cache,uncache,s
treamがある。物理メモリのサポートするアクセス
方法以外を指定することはできない。cacheはキャ
ッシュが利用可能な場合はキャッシュに格納することを
命令中に指定し、uncacheはキャッシュが利用可
能であってもキャッシュに格納することはないように命
令中に指定する。streamはシーケンシャルなアク
セスを行う場合に効率が良くなるようにプリフェッチな
どを行うように命令中に指定する。
【0029】リードライト属性は、論理メモリに割り当
てられた変数がリードおよびライト可能(rw)、リー
ドのみ可能(ro)、ライトのみ可能(wo)であるか
を指定する。物理メモリがROMの場合roを指定する
ことで、ROM領域への書き込みをするソースコードの
誤りをコンパイル時に検出するのに用いる。
【0030】命令スケジューリング処理102の詳細に
ついて図2、図3を参照しながら説明する。説明の簡単
化のために命令スケジューリングは基本ブロックを処理
単位とする。したがって、命令シーケンスは1パスのみ
存在する。図2は命令スケジューリング処理102の詳
細なフローチャートである。図2の各ステップについて
説明する。
【0031】ステップ110は、未処理の命令のうち、
その時点での先頭の命令を選択し空の状態にある命令群
Aに加えることで最初の要素とする。以降のステップ
で、命令群Aに含まれる各命令と並列実行可能な命令を
残りの未処理命令から検索し命令群Aに加える処理を行
う。
【0032】なお、本実施の形態の目的機械は最大3命
令を並列実行可能なスーパスカラ構成のプロセッサシス
テムを想定しており、3命令のうち最大2つのメモリア
クセス命令を並列に実行可能であるとする。その際メモ
リアクセス命令はそれぞれ異なる物理メモリでなければ
ならないという制約がある。
【0033】ステップ111は未処理の命令の中から命
令群Aの各命令と並列実行するために、命令実行順を変
更可能な命令を複数選択し、候補とする。ステップ11
2は候補の中から先頭の命令を選択し命令Bとする。
【0034】ステップ113は命令群Aの各命令と命令
Bの並列実行可否を判定する処理である。図3に並列実
行可否判定処理の詳細なフローチャートを示す。以降、
図3を参照しながら説明する。
【0035】ステップ130は命令群Aの各命令と命令
Bの間のデータ依存関係の有無を判定する。データ依存
関係とはある結果を定義する命令とその結果を参照する
命令間の関係であり、この関係にある命令は互いに並列
実行できない。データ依存関係にあると判定された場合
は、並列実行不可として並列実行可否判定処理を終了す
る。
【0036】ステップ131は命令群Aの各命令と命令
Bの間に目的機械の演算器資源に競合があるかを判定す
る。演算器資源に競合があると判定された場合は、並列
実行不可として並列実行可否判定処理を終了する。
【0037】ステップ132は、命令群Aの各命令と命
令Bの間に目的機械の物理メモリに競合があるかを判定
する。命令群Aの各命令あるいは命令Bがメモリアクセ
ス命令の場合、その命令が生成された要因により処理が
異なる。
【0038】メモリアクセス命令が静的変数へのアクセ
スにより生成された場合は、静的変数に付与された論理
メモリ(変数に付与したm0、m1、ioなど)を図4
に示したソースコードに含まれるアプリケーション情報
から読み取り、論理メモリに対応する物理メモリを図8
に示したハードウェア情報から読み取る。
【0039】メモリアクセス命令が自動変数やスタック
退避、復帰から生成された場合は、論理メモリをsta
ckとし、対応する物理メモリを図8に示したハードウ
ェア情報から読み取る。上記に属さないケースにより生
成された場合は、論理メモリをmainとし、対応する
物理メモリを図8に示したハードウェア情報から読み取
る。
【0040】命令群Aの各命令で使用している物理メモ
リを命令Bが使用する場合は、並列実行不可として並列
実行可否判定処理を終了する。
【0041】ステップ130でデータ依存がなく、ステ
ップ131で演算器資源競合がなく、ステップ132で
物理メモリの競合がないと判定された場合は並列実行可
として並列実行可否判定処理を終了する。
【0042】図2に戻って、ステップ113の判定が並
列実行不可の場合はステップ114へ、並列実行可の場
合はステップ115へそれぞれ進む。ステップ114は
命令Bが命令群Aの各命令と並列実行できないと判定さ
れたため、命令Bを候補から外す。そして、ステップ1
17に進む。
【0043】ステップ115では命令群Aの各命令と命
令Bが並列実行可能と判定されたので命令Bを命令群A
に加え、候補から外す。
【0044】ステップ116では命令群Aに含まれる命
令数が目的機械が並列実行できる最大の命令数に到達し
たことを判定し、到達した場合は、命令群Aと並列実行
可能な命令の検索を終了するためステップ118に進
む。命令群Aの命令数が最大命令数に到達していなけれ
ばステップ117に進む。
【0045】ステップ117は候補がまだ存在するかを
判定する。存在する場合はステップ112に戻り次の候
補の並列実行可否判定を行う。候補が存在しない場合は
ステップ118に進む。
【0046】ステップ118は命令群Aに含まれる命令
を処理済とし、命令スケジューリング処理後のアセンブ
ラコードを生成する。なお、その際メモリアクセス命令
については、使用する物理メモリをアクセスする命令に
置き換える。同時に前記したアクセス方法属性すなわ
ち、cache、uncache、streamを命令
中に指定する。
【0047】また、メモリアクセス命令のアドレスを特
定できる場合は前記したアドレス範囲属性を超えていな
いことを確認し、超えている場合はエラー処理を行う。
さらに、メモリアクセス命令のアクセス単位が前記した
物理メモリのアクセス単位属性より小さかったり、2の
べき乗倍になっていない場合は、物理メモリのサポート
しないアクセスサイズなのでエラー処理を行う。前記リ
ードライト属性についてもメモリアクセス命令のアクセ
ス方向についてのエラー検出を行う。すなわち、物理メ
モリのリードライト属性が”ro”の物理メモリを使用
する命令がストア命令であったり、”wo”の物理メモ
リを使用する命令がロード命令である場合にエラー処理
を行う。
【0048】ステップ119は、未処理命令が存在する
場合、ステップ110に戻り新たな命令群Aについて並
列実行可能な命令の検索を行う。未処理命令が存在しな
い場合は命令スケジューリング処理を終了する。
【0049】図1に戻って、オブジェクトコード生成処
理103は、命令スケジューリング処理102で生成し
たアセンブラコードをオブジェクトコードに変換し、オ
ブジェクトコードファイル203として出力する。連結
編集処理104は、複数のオブジェクトコードファイル
203を読み込み編集連結を行って実行形式コードファ
イル204を生成する。オブジェクトコード生成処理1
03および連結編集処理104は本発明の主眼でなく、
また、従来のプログラム処理方法と同一であるので詳細
は省略する。
【0050】(具体的動作の説明)次に、本プログラム
処理方法の特徴的な構成要素の動作について具体的なプ
ログラムを用いて説明する。図4は、本発明用に記述さ
れたソースコードであり、従来のC言語の仕様にアプリ
ケーション情報を追加した形になっている。
【0051】図4において、1行目、2行目の”m
0::”、”m1::”がアプリケーション情報であ
り、整数配列G0,G1の論理メモリへの割り当てを表
している。アプリケーション情報はプログラマがアプリ
ケーションの特性を考慮して記述する。この場合、G0
とG1は異なる論理メモリに割り当てており、プログラ
マはG0とG1のアクセスを並列に行うことのできるア
プリケーションの特性を利用して、そのように動作する
ことを期待している。
【0052】なお、図4においては整数配列が論理メモ
リへの割り当てされた例を示しているが、整数以外の型
であっても同様であることは言うまでもない。また、配
列でない通常変数やポインタであっても同様である。た
だし、ポインタの場合、ある論理メモリに割り当てられ
たポインタに他の論理メモリに割り当てられた変数のア
ドレスを代入すると論理メモリの参照先を間違えるの
で、エラーとすべきである。
【0053】図4の関数funcは整数引数a、bをと
り、グローバル整数配列G0のインデックス0の値と引
数aの値を乗算し、グローバル整数配列G1のインデッ
クス0に格納し、グローバル整数配列G0のインデック
ス1の値と引数bの値を乗算し、グローバル整数配列G
1のインデックス1に格納するものである。図4のソー
スコードはソースコード200にファイルとして格納さ
れている。
【0054】図5はソースコード200に格納された図
4のソースコードをコンパイラ上流処理100およびア
センブラコード生成処理101の処理を終えた後のアセ
ンブラコードである。以下簡単に説明する。
【0055】1行目は、関数funcの先頭を表すラベ
ルである。
【0056】2行目は、配列G0のアドレスをレジスタ
r0に格納する。
【0057】3行目は、配列G1のアドレスをレジスタ
r1に格納する。
【0058】4行目は、レジスタr0に格納されている
データをアドレスとしてメモリに格納されているデータ
を読み出しレジスタr2に格納する(G0[0]の
値)。
【0059】5行目は、スタックポインタspにオフセ
ット8を加えたデータをアドレスとしてメモリから読み
出しレジスタr3に格納する。図9にスタックフレーム
の構成図を示す。図9において関数funcの処理中は
spは図の位置を示しており、引数a,bはそれぞれオ
フセット4、8の位置に格納されている。したがって、
5行目は引数aの値をレジスタr3に格納していること
になる。
【0060】6行目は、レジスタr2とレジスタr3の
値を乗算しレジスタr4に格納する。
【0061】7行目は、レジスタr1に格納されている
データをアドレスとして、レジスタr4に格納されてい
るデータをメモリに格納する(G1[0]に格納)。
【0062】8行目は、レジスタr0に格納されている
データにオフセット4を加えた値をアドレスとしてメモ
リに格納されているデータを読み出しレジスタr2に格
納する(G0[1]の値)。
【0063】9行目は、スタックポインタspにオフセ
ット4を加えたデータをアドレスとしてメモリから読み
出しレジスタr3に格納する(引数bの値)。
【0064】10行目は、レジスタr2とレジスタr3
の値を乗算しレジスタr4に格納する。
【0065】11行目は、レジスタr1に格納されてい
るデータにオフセット4を加えたデータをアドレスとし
て、レジスタr4に格納されているデータをメモリに格
納する(G1[1]に格納)。
【0066】12行目は、関数funcから呼び出しプ
ログラムに復帰する。
【0067】図5のアセンブラコードは命令スケジュー
リング処理102で最適化(並列化)され、図6のアセ
ンブラコードとなる。命令スケジューリング処理102
は図4のソースコードに含まれるアプリケーション情報
と図8のハードウェア情報を読み取り以下の最適化に用
いる。
【0068】次に図2を参照しながら説明する。ステッ
プ110ではまず”2:mov G0,r0”が空の状
態の命令群Aに加えられる。ここで、”2:”とは図5
の行番号を示している。以下も同様の表記をする。
【0069】ステップ111では、”3:mov G
1,r1”、”5:ld (8,sp),r3”が候補
として登録される。ステップ112では、まず”3:m
ov G1,r1”が命令Bとされ、ステップ113で
並列実行可否判定処理が行われる。”2:mov G
0,r0”と”3:mov G1,r1”はデータ依存
関係、演算器資源競合、物理メモリ資源競合はないので
並列実行可と判定される。ステップ115で”3:mo
v G1,r1”が命令群Aに加えられ候補から外され
る。ステップ116では目的機械の最大並列実行数の3
に到達しておらず、ステップ117では候補がまだ存在
するのでステップ112に戻る。”5:ld (8,s
p),r3”も同様に並列実行可能と判定され命令群A
に加えられる。
【0070】ステップ117で候補がなくなったので、
ステップ118で命令群Aに含まれる命令をすべて処理
済とし、図6の2行目のアセンブラコードを生成する。
このとき”5:ld (8,sp),r3”はメモリア
クセス命令であるので命令の置き換えがなされる。すな
わち、当該命令の生成要因は自動変数アクセスであるの
で論理メモリとしてstackが割り当てられているこ
とがわかる。論理メモリstackは図8のハードウェ
ア情報によると物理メモリとしてXメモリを使用するの
で、Xメモリをアクセスするための命令を生成する。同
時に論理メモリstackにはアクセス方法属性として
cacheが指定されているのでキャッシュをアクセス
するための属性を命令に付与する。すなわち、”ld
c,X(8,sp),r3”が生成される。
【0071】さらに、次のエラーチェックもなされる。
【0072】アドレス範囲属性 この場合スタックアクセスであるのでアドレスを特定す
ることができないためアドレス範囲のエラー検出は行わ
れない。
【0073】アクセスサイズ属性 命令が”ld”なので4バイトをロードする命令であ
る。論理メモリstackは1バイト単位のアクセスが
可能であることが図8のハードウェア情報からわかり、
4バイトは1バイトの2のべき乗倍であるのでエラーと
はならない。
【0074】リードライト属性 命令はロード命令であり、論理メモリstackは”r
w”(リードライト可能)であるので同様にエラーとな
らない。
【0075】ステップ119では未処理命令がまだ存在
するので、ステップ110に戻る。
【0076】ステップ110で、”4:ld (r
0),r2”が空の状態の命令群Aに加えられる。ステ
ップ111では、候補を得るが、この場合候補がないの
でステップ118に進み、”4:ld (r0),r
2”を処理済とし、図6の3行目のアセンブラコードを
生成する。この場合、並列実行可能な命令は存在しな
い。このとき”4:ld (r0),r2”はメモリア
クセス命令であるので命令の置き換えがなされる。すな
わち、当該命令の生成要因は静的変数G0のアクセスで
あり、図4のアプリケーション情報からG0は論理メモ
リm0に割り当てられていることがわかる。論理メモリ
m0は図8のハードウェア情報によると物理メモリとし
てYメモリを使用するので、Yメモリをアクセスするた
めの命令を生成する。同時に論理メモリm0にはアクセ
ス方法属性としてstreamが指定されているのでス
トリームをアクセスするための属性を命令に付与する。
すなわち、”ld s,Y(r0),r2”が生成され
る。
【0077】さらに、次のエラーチェックもなされる。
【0078】アドレス範囲属性 この場合、静的変数G0のアクセスであり、アドレスで
あるレジスタr0の内容はプログラムの流れからアドレ
スG0であることがわかる。図8において論理メモリY
のアドレス範囲属性は0x000〜0xFFF(0xは
16進数を表す接頭辞)であり、アドレスG0はこの範
囲に置かれるのでエラーとならない。
【0079】アクセスサイズ属性 命令が”ld”なので4バイトをロードする命令であ
る。論理メモリm0は4バイト単位のアクセスが可能で
あることが図8のハードウェア情報からわかり、サイズ
は同じなのでエラーとはならない。
【0080】リードライト属性 命令はロード命令であり、論理メモリm0は”ro”
(リードオンリ)であるので同様にエラーとならない。
【0081】ステップ119では未処理命令がまだ存在
するので、ステップ110に戻る。
【0082】次にステップ110で”6:mul r
2,r3,r4”を空の状態の命令群Aに加える。ステ
ップ111で”8:ld (4,r0),r2”、”
9:ld(4,sp),r3”を候補とする。ステップ
112で”8:ld (4,r0),r2”が命令Bと
され、ステップ113で並列実行可否判定処理が行われ
る。”6:mul r2,r3,r4”と”8:ld
(4,r0),r2”はデータ依存関係、演算器資源競
合、物理メモリ資源競合は存在しないので並列実行可能
と判定される。ステップ115で”8:ld (4,r
0),r2”が命令群Aに加えられ候補から外される。
ステップ116では目的機械の最大並列実行数の3に到
達しておらず、ステップ117では候補がまだ存在する
のでステップ112に戻る。
【0083】次に、ステップ112で”9:ld
(4,sp),r3”が命令Bとされ、ステップ113
で並列実行可否判定処理が行われる。”6:mul r
2,r3,r4”と”9:ld (4,sp),r3”
データ依存関係、演算器資源競合、物理メモリ資源競合
は存在しない。次に”8:ld (4,r0),r2”
と”9:ld (4,sp),r3”ではデータ依存関
係、演算器資源競合は存在しないが、物理メモリの競合
の可能性がある。
【0084】”8:ld (4,r0),r2”は図4
のソースコードにおける整数配列G0のインデックス1
のデータを読み出す命令である。配列G0は論理メモリ
m0に割り当てられていることが図4のアプリケーショ
ン情報から知ることができる。図8のハードウェア情報
を参照すると論理メモリm0は物理メモリYと対応付け
がなされている。一方、”9:ld (4,sp),r
3”はスタックフレームアクセス命令であり、自動的に
論理メモリstackに割り当てられ、論理メモリst
ackは物理メモリXへ対応付けられている。したがっ
て、それぞれ使用する物理メモリが異なるので、物理メ
モリの競合を起しておらず並列実行可能であると判定さ
れる。
【0085】従来のプログラム処理方法ではこの2命令
が同時にアクセス可能なメモリを使用していることを判
定する手段がないため、メモリ資源の競合を起している
と判定され、並列実行可能とされない。
【0086】ステップ115で”9:ld (4,s
p),r3”が命令群Aに加えられ候補から外される。
ステップ116では目的機械の最大並列実行数の3に到
達したのでステップ118に進み、命令群Aに含まれる
命令を処理済とし、図6の4行目のコードを生成する。
このとき”8:ld (4,r0),r2”、”9:l
d (4,sp),r3”はメモリアクセス命令である
ので命令の置き換えがなされる。
【0087】まず、”8:ld (4,r0),r2”
の生成要因は静的変数G0のアクセスであり、図4のア
プリケーション情報からG0は論理メモリm0に割り当
てられていることがわかる。論理メモリm0は図8のハ
ードウェア情報によると物理メモリとしてYメモリを使
用するので、Yメモリをアクセスするための命令を生成
する。同時に論理メモリm0にはアクセス方法属性とし
てstreamが指定されているのでストリームをアク
セスするための属性を命令に付与する。すなわち、”l
d s,Y(4,r0),r2”が生成される。
【0088】さらに、次のエラーチェックもなされる。
【0089】アドレス範囲属性 この場合、静的変数G0のアクセスであり、アドレスで
あるレジスタr0の内容はプログラムの流れからアドレ
スG0+4であることがわかる。図8において論理メモ
リYのアドレス範囲属性は0x000〜0xFFF(0
xは16進数を表す接頭辞)であり、アドレスG0はこ
の範囲に置かれるのでエラーとならない。
【0090】アクセスサイズ属性 命令が”ld”なので4バイトをロードする命令であ
る。論理メモリm0は4バイト単位のアクセスが可能で
あることが図8のハードウェア情報からわかり、サイズ
は同じなのでエラーとはならない。
【0091】リードライト属性 命令はロード命令であり、論理メモリm0は”ro”
(リードオンリ)であるので同様にエラーとならない。
【0092】次に、”9:ld (4,sp),r3”
の生成要因は自動変数アクセスであるので論理メモリと
してstackが割り当てられていることがわかる。論
理メモリstackは図8のハードウェア情報によると
物理メモリとしてXメモリを使用するので、Xメモリを
アクセスするための命令を生成する。同時に論理メモリ
stackにはアクセス方法属性としてcacheが指
定されているのでキャッシュをアクセスするための属性
を命令に付与する。すなわち、”ld c,X(4,s
p),r3”が生成される。
【0093】さらに、次のエラーチェックもなされる。
【0094】アドレス範囲属性 この場合スタックアクセスであるのでアドレスを特定す
ることができないためアドレス範囲のエラー検出は行わ
れない。
【0095】アクセスサイズ属性 命令が”ld”なので4バイトをロードする命令であ
る。論理メモリstackは1バイト単位のアクセスが
可能であることが図8のハードウェア情報からわかり、
4バイトは1バイトの2のべき乗倍であるのでエラーと
はならない。
【0096】リードライト属性 命令はロード命令であり、論理メモリstackは”r
w”(リードライト可能)であるので同様にエラーとな
らない。
【0097】以降、同様に図6の5行目、6行目が生成
される。
【0098】図7に従来のプログラム処理方法で命令ス
ケジューリング処理した場合のアセンブラコードを示
す。図6のコードは図7のコードに対して3行少ない、
すなわち、より実行時間が短いことを示している。
【0099】つまり、目的機械が並列実行可能な物理メ
モリを有し、論理メモリの定義とともにハードウェア情
報として提供され、また、プログラマがアプリケーショ
ンの特性と論理メモリを用いて適切にアプリケーション
情報を提供することで、プログラム処理方法における命
令スケジューリング処理でこれらを用いることで目的機
械のハードウェア資源を最大限に使ったより実行時間の
短いアセンブラコードを得ることができる。
【0100】また、物理メモリにアドレス範囲、アクセ
スサイズ、リードライトなどの属性を与えることで、ソ
ースコードのエラーチェックを容易にすることができ、
ソフトウェアの生産性を向上することができる。さら
に、物理メモリにアクセス方法などの属性を与えること
で、ソフトウェアによるより細かいメモリアクセス方法
の指定ができ、目的機械をメモリ機能を最大限に活用し
たプログラミングができる。
【0101】なお、本実施の形態では物理メモリとして
Xメモリ、Yメモリ、Zメモリを搭載した目的機械を想
定したが、より多くのメモリを搭載した目的機械におい
ても同様に効果を出すことができる。
【0102】一方、本実施の形態における実行形式コー
ドではXメモリ、Yメモリ、Zメモリの3つのメモリを
使用しているが、それ以上のメモリを使うことはないこ
とがわかる。したがって、4つ以上のメモリを搭載した
目的機械で使用しないメモリは電源供給やクロック供給
を止めることで低消費電力状態にすることで目的機械シ
ステムの低消費電力化にもなる。
【0103】
【発明の効果】以上説明したように本発明によれば、目
的機械が並列実行可能な物理メモリを有し、論理メモリ
の定義とともにハードウェア情報として提供され、ま
た、プログラマがアプリケーションの特性と論理メモリ
を用いて適切にアプリケーション情報を提供すること
で、プログラム処理方法における命令スケジューリング
処理にこれらを用いることで目的機械のハードウェア資
源を最大限に使ったより実行時間の短いアセンブラコー
ドを得ることができるという有利な効果が得られる。
【0104】また、物理メモリにアドレス範囲、アクセ
スサイズ、リードライトなどの属性を与えることで、ソ
ースコードのエラーチェックを容易にすることができ、
ソフトウェアの生産性を向上することができ、さらに、
物理メモリにアクセス方法などの属性を与えることで、
ソフトウェアによるより細かいメモリアクセス方法の指
定ができ、目的機械をメモリ機能を最大限に活用したプ
ログラミングができるという有利な効果が得られる。
【0105】また、目的機械で本発明により生成した実
行形式コードを実行する際、使用しないメモリがあれば
電力供給やクロック供給を停止することで目的機械シス
テムにおける低電力化ができるという有利な効果が得ら
れる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるプログラム処理方
法の処理の流れとファイルの入出力関係を示すフローチ
ャート
【図2】図1に示す本発明の実施の形態における命令ス
ケジューリング処理102の処理の流れを示すフローチ
ャート
【図3】図2に示す本発明の実施の形態における並列実
行可否判定処理113の処理の流れを示すフローチャー
【図4】本発明の実施の形態における説明用のアプリケ
ーション情報を含んだC言語ソースコードを示す図
【図5】本発明の実施の形態における命令スケジューリ
ング処理を行う前のアセンブラコードを示す図
【図6】本発明の実施の形態における命令スケジューリ
ング処理後のアセンブラコードを示す図
【図7】本発明の従来のプログラム処理方法による命令
スケジューリング処理後のアセンブラコードを示す図
【図8】本発明の実施の形態の図13の目的機械に対応
した説明用のハードウェア情報を示す図
【図9】本発明の実施の形態の説明用のスタックフレー
ム構成図
【図10】本発明の実施の形態および従来のプログラム
処理方法における説明用のアプリケーション情報を含ま
ないC言語ソースコードを示す図
【図11】本発明の実施の形態のハードウェア情報のフ
ォーマットを示す図
【図12】本発明の従来のプログラム処理方法の目的機
械モデルを示す図
【図13】本発明の実施の形態の説明用の目的機械を示
す図
【符号の説明】
100 コンパイラ上流処理 101 アセンブラコード生成処理 102 命令スケジューリング処理 103 オブジェクトコード生成処理 104 連結編集処理 200 ソースコードファイル 201 アプリケーション情報ファイル 202 ハードウェア情報ファイル 203 オブジェクトコードファイル 204 実行形式コードファイル

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 高級言語で記述された複数のソースコー
    ドからなるプログラムを実行形式コードに変換する方法
    であって、前記ソースコードを中間コード1に変換する
    変換ステップ1と、最適化情報を用いて前記中間コード
    1を中間コード2に最適化する最適化ステップと、前記
    中間コード2を前記実行形式コードに変換する変換ステ
    ップ2とを備えることを特徴とするプログラム処理方
    法。
  2. 【請求項2】 前記最適化ステップは、前記実行形式コ
    ードを実行する目的機械の構成情報を抽出するハードウ
    ェア情報抽出ステップと、前記ハードウェア情報抽出ス
    テップにより得られたハードウェア情報を用いて中間コ
    ード1の命令あるいは命令列を目的機械における実行に
    好適になるように命令あるいは命令列を置き換えあるい
    は並び替える命令最適化ステップを備えることを特徴と
    する請求項1記載のプログラム処理方法。
  3. 【請求項3】 前記最適化ステップは、前記ソースコー
    ドからなるプログラムで実現されるアプリケーションの
    特性情報を抽出するアプリケーション情報抽出ステップ
    と、前記アプリケーション情報抽出ステップにより得ら
    れたアプリケーション情報を用いて中間コード1の命令
    あるいは命令列を目的機械における実行に好適になるよ
    うに命令あるいは命令列を置き換えあるいは並び替える
    命令最適化ステップを備えることを特徴とする請求項1
    記載のプログラム処理方法。
  4. 【請求項4】 前記ハードウェア情報抽出ステップは前
    記ソースコードから抽出するステップを含むことを特徴
    とする請求項2記載のプログラム処理方法。
  5. 【請求項5】 前記ハードウェア情報抽出ステップは前
    記ソースコードとは異なるファイルから抽出するステッ
    プを含むことを特徴とする請求項2記載のプログラム処
    理方法。
  6. 【請求項6】 前記アプリケーション情報抽出ステップ
    は前記ソースコードから抽出するステップを含むことを
    特徴とする請求項3記載のプログラム処理方法。
  7. 【請求項7】 前記アプリケーション情報抽出ステップ
    は前記ソースコードとは異なるファイルから抽出するス
    テップを含むことを特徴とする請求項3記載のプログラ
    ム処理方法。
  8. 【請求項8】 高級言語で記述された複数のソースコー
    ドからなるプログラムを実行形式コードに変換する方法
    であって、前記ソースコードを中間コード1に変換する
    変換ステップ1と、最適化情報を用いて前記中間コード
    1を中間コード2に最適化する最適化ステップと、前記
    中間コード2を前記実行形式コードに変換する変換ステ
    ップ2とを備え、前記最適化ステップが、前記実行形式
    コードを実行する目的機械の並列アクセス可能なメモリ
    の構成情報を抽出するハードウェア情報抽出ステップ
    と、前記ソースコードからプログラムで実現されるアプ
    リケーションのメモリ使用の特性情報を抽出するアプリ
    ケーション情報と、命令間の並列実行可否を判定におけ
    るメモリ資源競合を判定するとき前記ハードウェア情報
    と前記アプリケーション情報の参照により互いに並列ア
    クセス可能なメモリへのアクセス命令であると判明した
    場合はメモリ資源の競合がないと判定し、そうでない場
    合はメモリ資源の競合があると判定するメモリ資源競合
    判定ステップを備えたことを特徴とするプログラム処理
    方法。
  9. 【請求項9】 前記ハードウェア情報が、並列アクセス
    可能なメモリを識別するメモリ名であり、前記メモリ資
    源競合判定ステップが前記メモリ名の一致/不一致で判
    定するステップであることを特徴とする請求項8記載の
    プログラム処理方法。
  10. 【請求項10】 前記ハードウェア情報に目的機械の構
    成であるメモリの指定可能なアドレス範囲属性を含み、
    前記最適化ステップにメモリアクセス命令のアドレスが
    前記メモリアクセス命令のアクセスするメモリの前記ア
    ドレス範囲属性で示されたアドレス範囲外にあるエラー
    を検出するアドレス範囲エラー検出ステップと、前記ア
    ドレス範囲エラー検出ステップでメモリアクセス命令の
    アドレスが前記アドレス範囲外にある場合はエラー処理
    を行うアドレス範囲エラー処理ステップを含むことを特
    徴とする請求項8記載のプログラム処理方法。
  11. 【請求項11】 前記ハードウェア情報に目的機械の構
    成であるメモリのアクセス可能なアクセス単位属性を含
    み、前記最適化ステップにメモリアクセス命令のアクセ
    ス単位が前記メモリアクセス命令のアクセスするメモリ
    の前記アクセス単位属性で示されたアクセス単位より小
    さいかあるいは2のベキ乗倍でないというエラーを検出
    するアクセス単位エラー検出ステップと、前記アクセス
    単位エラー検出ステップでエラー検出された場合はエラ
    ー処理を行うアクセス単位エラー処理ステップを含むこ
    とを特徴とする請求項8記載のプログラム処理方法。
  12. 【請求項12】 前記ハードウェア情報に目的機械の構
    成であるメモリのアクセス可能なリードライト属性を含
    み、前記最適化ステップに前記リードライト属性でリー
    ド不可と示されたメモリに対するメモリアクセス命令が
    リード命令であるか、前記リードライト属性でライト不
    可と示されたメモリに対するメモリアクセス命令がライ
    ト命令であるというエラーを検出するリードライト属性
    エラー検出ステップと、前記リードライト属性エラー検
    出ステップでエラーが検出された場合はエラー処理を行
    うリードライト属性エラー検出ステップを含むことを特
    徴とする請求項8記載のプログラム処理方法。
  13. 【請求項13】 前記ハードウェア情報に目的機械の構
    成であるメモリのアクセス方法属性を含み、前記最適化
    ステップに前記アクセス方法属性の示されたメモリをア
    クセスするメモリアクセス命令を前記アクセス方法属性
    で示すアクセス方法を指定したメモリアクセス命令に置
    き換えるアクセス方法属性命令置換ステップを含むこと
    を特徴とする請求項8記載のプログラム処理方法。
  14. 【請求項14】 前記ハードウェア情報に前記メモリ名
    と前記アドレス範囲属性、前記アクセス単位属性、前記
    リードライト属性、アクセス方法属性のいずれかを含ん
    だ集合情報を識別する論理メモリ名を含み、前記メモリ
    資源競合判定ステップに前記論理メモリ名からメモリ名
    を検索し一致/不一致の判定に用いるステップを含み、
    前記アドレス範囲エラー検出ステップ、前記アクセス単
    位エラー検出ステップ、前記リードライト属性エラー検
    出ステップ、前記アクセス方法属性命令置換ステップの
    いずれかのステップに前記論理メモリ名からアドレス範
    囲属性、アクセス単位属性、リードライト属性、アクセ
    ス方法属性のいずれかを検索し使用するステップを含む
    ことを特徴とする請求項8〜13のいずれか1項に記載
    のプログラム処理方法。
  15. 【請求項15】 前記変換ステップ2により得られた実
    行形式コードが目的機械の構成である複数のメモリのう
    ち少なくとも一つが使用されていないことを検出するメ
    モリ未使用検出ステップと、前記実行形式コードの実行
    時に未使用であると検出された目的機械のメモリを低消
    費電力状態に設定するステップを備えることを特徴とす
    る請求項8記載のプログラム処理方法。
  16. 【請求項16】 高級言語で記述された複数のソースコ
    ードからなるプログラムを実行形式コードに変換する方
    法であって、前記ソースコードを中間コード1に変換す
    る変換ステップ1と、最適化情報を用いて前記中間コー
    ド1を中間コード2に最適化する最適化ステップと、前
    記中間コード2を前記実行形式コードに変換する変換ス
    テップ2とを備えることを特徴とする請求項1記載のプ
    ログラムを記録したコンピュータ読み取り可能な記録媒
    体。
  17. 【請求項17】 前記最適化ステップは、前記実行形式
    コードを実行する目的機械の構成情報を抽出するハード
    ウェア情報抽出ステップと、前記ハードウェア情報抽出
    ステップにより得られたハードウェア情報を用いて中間
    コード1の命令あるいは命令列を目的機械における実行
    に好適になるように命令あるいは命令列を置き換えある
    いは並び替える命令最適化ステップを備えることを特徴
    とする請求項16記載のプログラムを記録したコンピュ
    ータ読み取り可能な記録媒体。
  18. 【請求項18】 前記最適化ステップは、前記ソースコ
    ードからなるプログラムで実現されるアプリケーション
    の特性情報を抽出するアプリケーション情報抽出ステッ
    プと、前記アプリケーション情報抽出ステップにより得
    られたアプリケーション情報を用いて中間コード1の命
    令あるいは命令列を目的機械における実行に好適になる
    ように命令あるいは命令列を置き換えあるいは並び替え
    る命令最適化ステップを備えることを特徴とする請求項
    16記載のプログラムを記録したコンピュータ読み取り
    可能な記録媒体。
  19. 【請求項19】 高級言語で記述された複数のソースコ
    ードからなるプログラムを実行形式コードに変換する方
    法であって、前記ソースコードを中間コード1に変換す
    る変換ステップ1と、最適化情報を用いて前記中間コー
    ド1を中間コード2に最適化する最適化ステップと、前
    記中間コード2を前記実行形式コードに変換する変換ス
    テップ2とを備え、前記最適化ステップが、前記実行形
    式コードを実行する目的機械の並列アクセス可能なメモ
    リの構成情報を抽出するハードウェア情報抽出ステップ
    と、前記ソースコードからプログラムで実現されるアプ
    リケーションのメモリ使用の特性情報を抽出するアプリ
    ケーション情報と、命令間の並列実行可否を判定におけ
    るメモリ資源競合を判定するとき前記ハードウェア情報
    と前記アプリケーション情報の参照により互いに並列ア
    クセス可能なメモリへのアクセス命令であると判明した
    場合はメモリ資源の競合がないと判定し、そうでない場
    合はメモリ資源の競合があると判定するメモリ資源競合
    判定ステップを備えたことを特徴とするプログラムを記
    録したコンピュータ読み取り可能な記録媒体。
  20. 【請求項20】 前記ハードウェア情報に前記メモリ名
    と前記アドレス範囲属性、前記アクセス単位属性、前記
    リードライト属性、アクセス方法属性のいずれかを含ん
    だ集合情報を識別する論理メモリ名を含み、前記メモリ
    資源競合判定ステップに前記論理メモリ名からメモリ名
    を検索し一致/不一致の判定に用いるステップを含み、
    前記アドレス範囲エラー検出ステップ、前記アクセス単
    位エラー検出ステップ、前記リードライト属性エラー検
    出ステップ、前記アクセス方法属性命令置換ステップの
    いずれかのステップに前記論理メモリ名からアドレス範
    囲属性、アクセス単位属性、リードライト属性、アクセ
    ス方法属性のいずれかを検索し使用するステップを含む
    ことを特徴とする請求項8〜13のいずれか1項に記載
    のプログラムを記録したコンピュータ読み取り可能な記
    録媒体。
  21. 【請求項21】 前記変換ステップ2により得られた実
    行形式コードが目的機械の構成である複数のメモリのう
    ち少なくとも一つが使用されていないことを検出するメ
    モリ未使用検出ステップと前記実行形式コードの実行時
    に未使用であると検出された目的機械のメモリを低消費
    電力状態に設定するステップを有することを特徴とする
    請求項8記載のプログラムを記録したコンピュータ読み
    取り可能な記録媒体。
  22. 【請求項22】 前記請求項2、4〜5、8〜15のい
    ずれか1項に記載のハードウェア情報を記録したコンピ
    ュータ読み取り可能な記録媒体。
  23. 【請求項23】 前記請求項3、6〜7、8〜15のい
    ずれか1項に記載のアプリケーション情報を記録したコ
    ンピュータ読み取り可能な記録媒体。
JP2000014517A 2000-01-24 2000-01-24 プログラム処理方法および記録媒体 Expired - Lifetime JP3692884B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000014517A JP3692884B2 (ja) 2000-01-24 2000-01-24 プログラム処理方法および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000014517A JP3692884B2 (ja) 2000-01-24 2000-01-24 プログラム処理方法および記録媒体

Publications (2)

Publication Number Publication Date
JP2001202252A true JP2001202252A (ja) 2001-07-27
JP3692884B2 JP3692884B2 (ja) 2005-09-07

Family

ID=18541967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000014517A Expired - Lifetime JP3692884B2 (ja) 2000-01-24 2000-01-24 プログラム処理方法および記録媒体

Country Status (1)

Country Link
JP (1) JP3692884B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429634B2 (en) 2006-07-26 2013-04-23 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device, memory circuit, and machine language program generation device, and method for operating semiconductor device and memory circuit
JP2022052542A (ja) * 2020-09-23 2022-04-04 東芝情報システム株式会社 Ffu検査装置及びffu検査用プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429634B2 (en) 2006-07-26 2013-04-23 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device, memory circuit, and machine language program generation device, and method for operating semiconductor device and memory circuit
JP2022052542A (ja) * 2020-09-23 2022-04-04 東芝情報システム株式会社 Ffu検査装置及びffu検査用プログラム
JP7436848B2 (ja) 2020-09-23 2024-02-22 東芝情報システム株式会社 Ffu検査装置及びffu検査用プログラム

Also Published As

Publication number Publication date
JP3692884B2 (ja) 2005-09-07

Similar Documents

Publication Publication Date Title
JP3220055B2 (ja) 機械語命令列またはアセンブリ言語命令列を最適化する最適化装置、及び、高級言語で記載されたソースプログラムを機械語またはアセンブリ言語の命令列に変換するコンパイラ装置。
US11449355B2 (en) Non-volatile memory (NVM) based method for performance acceleration of containers
US7861222B2 (en) Discoscript: a simplified distributed computing scripting language
US6877150B1 (en) Method of transforming software language constructs to functional hardware equivalents
JP5118745B2 (ja) メモリアクセス命令のベクトル化
JP4041248B2 (ja) コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法
JP6236093B2 (ja) 並列パイプラインにおいてブランチを分岐するためのハードウェアおよびソフトウェアソリューション
JP5966509B2 (ja) プログラム、コード生成方法および情報処理装置
JP2000347876A (ja) スタック・スロット割当て方法および装置
US8266416B2 (en) Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system
CN100362474C (zh) 单处理器流水线内的头线程和推理性线程的交替执行的方法和设备
JPH09212369A (ja) 記憶域割り付け装置
US7299460B2 (en) Method and computer program for converting an assembly language program for one processor to another
JP3692884B2 (ja) プログラム処理方法および記録媒体
US11635947B2 (en) Instruction translation support method and information processing apparatus
KR20150051083A (ko) 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
JP2013235474A (ja) 回路設計支援装置及び回路設計支援方法及びプログラム
Thorelli The EDA multiprocessing model
JP3473391B2 (ja) プログラム処理方法、プログラム処理装置及び記録媒体
JP7026563B2 (ja) 高位合成方法、高位合成プログラム、高位合成装置
CN116775127B (zh) 一种基于RetroWrite框架的静态符号执行插桩方法
US11734003B2 (en) Non-transitory computer-readable recording medium, compilation method, and compiler device
JP2014507734A (ja) 分散計算方法及び分散計算システム
JP4298868B2 (ja) ペアレジスタ割当て処理方法,コンパイル処理装置およびコンパイラのプログラム記録媒体
JP4032822B2 (ja) アセンブラプログラムのためのアドレス記述変換システム及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050318

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050613

R151 Written notification of patent or utility model registration

Ref document number: 3692884

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20090701

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100701

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110701

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110701

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120701

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120701

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130701

Year of fee payment: 8

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term