JP2003140920A - デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。 - Google Patents

デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。

Info

Publication number
JP2003140920A
JP2003140920A JP2001339954A JP2001339954A JP2003140920A JP 2003140920 A JP2003140920 A JP 2003140920A JP 2001339954 A JP2001339954 A JP 2001339954A JP 2001339954 A JP2001339954 A JP 2001339954A JP 2003140920 A JP2003140920 A JP 2003140920A
Authority
JP
Japan
Prior art keywords
instruction
program
iteration
debug
variable
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
JP2001339954A
Other languages
English (en)
Other versions
JP4272371B2 (ja
Inventor
Hajime Ogawa
一 小川
Kiyohiko Sumida
清彦 隅田
Shuichi Takayama
秀一 高山
Katsuhiro Okuno
勝弘 奥野
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 JP2001339954A priority Critical patent/JP4272371B2/ja
Priority to US10/287,231 priority patent/US7237229B2/en
Publication of JP2003140920A publication Critical patent/JP2003140920A/ja
Application granted granted Critical
Publication of JP4272371B2 publication Critical patent/JP4272371B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 ループ処理のイタレーションを構成する命令
群をn組み含むオブジェクトプログラムについてのデバ
ッグ作業を効率化する。 【解決手段】 二次アセンブルプログラムを構成する各
命令には、命令の生成元となるソースコードを特定する
行番号「;lx」と、命令が属するイタレーションを特定
するイタレーション識別子「;ix」との組みとが付され
ている。何れかの命令がユーザによりブレークポイント
として特定された場合には、特定された命令の生成元と
なるソースコードと共に、特定された命令の前後に位置
する命令であって、異なるイタレーション命令群に属す
る命令の生成元となるソースコードを表示する。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】 本発明は、ソースプログラ
ムを翻訳することにより得られたオブジェクトプログラ
ムのデバッグ作業を支援するデバッグ支援装置、コンパ
イラ装置に関する。
【0002】
【従来の技術】高度情報化の進展に伴い、プログラムの
品質向上が叫ばれて久しい。プログラムの開発を行う開
発現場では、プログラマによるデバッグ作業をどのよう
に効率化するかの試行錯誤が日夜続けられている。最終
完成品たるオブジェクトプログラムは、高級プログラミ
ング言語を用いて記述されたソースプログラムをコンパ
イラが翻訳することにより生成される。デバッグ作業と
は、このオブジェクトプログラムを試験的に実行させて
みて、その実行時に不都合が現れた場合にソースプログ
ラムを修正し、再度オブジェクトプログラムを作り直す
という作業である。このデバッグ作業を効率良く行うよ
う構成された機器をデバッグ支援装置といい、デバッグ
支援装置はオブジェクトプログラムにおける任意の位置
にブレークポイントを設定し、このブレークポイントに
てオブジェクトプログラムの動作を止める機能(ブレー
クポイント設定機能)、動作を止めた状態から、一命令
ずつ実行してゆく機能(ワンステップ実行機能)、動作を
止めた状態にて、ハードウェア資源の保持値を表示する
機能(資源参照機能)等の機能を具備する。加えて、例え
ばブレークポイントが設定された命令に対応するソース
コードを表示するという機能を有しており、これによ
り、バグが発見された場合のソースプログラムの修正が
より捗るようにしている。
【0003】
【発明が解決しようとする課題】ところで近年のプログ
ラムの開発にあたっては、並列化のために最適化された
オブジェクトプログラムをデバッグしたい機会が多々有
る。並列化のための最適化手法には、ループアンローリ
ングやソフトウェアパイプライニングといった様々な手
法がある。特に後者のソフトウェアパイプライニングが
なされたオブジェクトプログラムは、ループ処理の繰り
返し単位(イタレーションという)に相当する命令群を複
数含み、複数イタレーションに対応する命令群がパイプ
ラインにて並列実行可能なようになっている。ソフトウ
ェアパイプライニングがなされたオブジェクトプログラ
ムのデバッグでは、1つの命令の実行時にどの命令が並
列実行され、その命令がソースコードのどの行に対応す
るのかにプログラマの関心が集まる。しかしパイプライ
ンによるオブジェクトプログラムの実行では、イタレー
ションに対応する命令群が完全に並列実行されるのでは
なく、各イタレーションが、前段のイタレーションより
僅かに遅れて実行されるという独特の動作を行うので、
ソースコードにてこの動作を表現することは困難であ
る。
【0004】だからといって、並列実行される命令に対
応するソースコードを一切表示しないと、プログラマに
対する負担が多大になる。つまりプログラマは、自分が
記述したソースコードと、オブジェクトプログラムにお
ける命令との対応関係を充分に把握し、尚且つこれがパ
イプラインにて実行された場合、どのような動作をなす
かを想像してデバッグ作業を行う必要があるため、デバ
ッグ作業が思うように捗らないという問題点がある。
【0005】本発明の目的は、複数イタレーションが並
列実行される様子を表現することができるデバッグ支援
装置を提供することである。
【0006】
【課題を解決するための手段】上記目的は、ループ処理
を含むソースプログラムを翻訳する第1過程と、当該ル
ープ処理についての複数イタレーションが並列化される
ように変換を施す第2過程とを経て得られるオブジェク
トプログラムについてのデバッグ支援装置であって、オ
ブジェクトプログラムを構成する各命令に、複数イタレ
ーションのうち何れかを一意に示す識別子と、そのイタ
レーションに属するソースコードを特定する行番号とを
付加してなるデバッグリストを記憶する記憶手段と、操
作者からの操作に従って、記憶されているデバッグリス
トにおける1つの命令を特定する特定手段と、特定され
た命令に付加された識別子は、ループ処理のどのイタレ
ーションを示しているかを判定する判定手段と、判定さ
れたイタレーションの前後のイタレーションを示す識別
子と、同じ命令に付加されている行番号をデバッグリス
トから探索する探索手段と、特定された命令に付加され
た行番号に対応するソースコードと、探索された行番号
に対応するソースコードとを表示する第1表示手段とを
備えるものにより達成される。
【0007】
【発明の実施の形態】以降図面を参照しながら、本発明
にかかるコンパイラ装置及びデバッグ支援装置の実施形
態について説明する。本発明にかかるコンパイラ装置及
びデバッグ支援装置は、図1に示すプログラム開発シス
テムを構成する。図1に示すように本システムはコンパ
イラ装置(コンパイラコア1、ソフトウェアパイプライ
ニング部2を含む)と、プログラム動作環境3(メモリ
4、プロセッサ5を含む)と、デバッグ支援装置6(ユ
ーザインターフェイス7、ウィンドゥ識別子付加部8、
割付情報変換部9、ブレークポイント設定部10、プロ
グラム実行制御部11、ワンステップ実行制御部12、
資源操作処理部13を含む)とから構成される。
【0008】<コンパイラコア1>コンパイラコア1
は、コンパイラ装置の中核をなすものであり、高級プロ
グラミング言語にて記述されたソースプログラムを翻訳
することにより、一次アセンブルプログラムを得る。コ
ンパイラコア1による翻訳は、構文解析処理、不要コー
ド削除、定数の畳み込み、誘導変数最適化、変数に対す
る資源割り付け等の処理が含まれる。図2(a)にソー
スプログラムの一例を示し、図2(b)に一次アセンブ
ルプログラムの一例を示す。ソースプログラムは、高級
プログラミング言語で記述された文(センテンス)により
ループ処理のアルゴリズムを記述するものである。この
ループ処理は、変数iを誘導変数としていて、配列xの第
i番目の要素x[i]を、変数aに代入し(行番号l2)、変数a
に変数sを加算して変数bに代入し(行番号l3)、変数bに
変数tを乗じて変数cに格納した後(行番号l4)、配列の第
i番目の要素y[i]に格納する(行番号l5)というものであ
る。一方、一次アセンブルプログラムは、ソースプログ
ラムと同じループ処理のアルゴリズムを、アセンブル命
令で記述するものである。これらのアセンブル命令は、
ターゲットマシンのプロセッサが具備するレジスタr0〜
r11を操作するものである。
【0009】一次アセンブルプログラムにおいて配列x
[i],y[i]のそれぞれのエントリーアドレスx,yは、レジ
スタr10,r11に格納され、ループ処理が一回実行される
度に、命令B「add r10,4,r10」及び命令G「add r11,4,r11」
にて"4"ずつインクリメントされる。一次アセンブルプ
ログラムにおいて誘導変数iの役割を果たすのはこのレ
ジスタr10であり、ループ処理の終了要件は、命令E「cmp
r10,x+400」にて、このレジスタr10の値が"x+400"にな
ると判定されることである。変数a,b,c,s,tは、それぞ
れレジスタr0,r1,r2,r5,r6に対応しており、行番号l2に
おける配列要素x[i]の読み出しは、命令A「ld (r10),r0」
に対応する。また、行番号l5における配列要素y[i]の書
き込みは、命令F「st r2,(r11)」に対応する。更に、l3,l
4における加算、乗算は、命令C「add r0,r5,r1」、命令D
「mul r1,r6,r2」にそれぞれ対応する。ここで強調したい
のは、一次アセンブルプログラムにはループ処理の高速
化のための最適化がなされており、デバッグ作業のため
のデバッグ情報として割付情報、行番号が付されている
点である。図2(b)における境界"E"は、1つ以上の並
列実行可能な命令を区切るエンドコードであり、これに
よると命令A「ld (r10),r0」−命令B「add r10,4,r10」が第
1の並列実行単位、命令C「add r0,r5,r1」が第2の並列
実行単位、命令D「mul r1,r6,r2」−命令E「cmp r10,x+40
0」が第3の並列実行単位、命令F「st r2,(r11)」−命令G
「add r11,4,r11」−命令H「blt loop」が第4の並列実行単
位となる。これらの命令の末尾に付された「;l1」,「;l2」,
「;l3」,「;ln」は、行番号であり、各命令に付加され、そ
の命令に対応するセンテンスの行番号を一意に示す役割
をもつ。命令A「ld (r10),r0」に付された「;l2」は、ソ
ースプログラムにおける2行目のセンテンスに対応する
ことを意味し、命令C「add r0,r5,r1」に付された「;l3」
は、ソースプログラムにおける3行目のセンテンスに対
応することを意味する。命令B「add r10,4,r10」に付され
た「;ln」は、命令B「add r10,4,r10」に一意に対応する
センテンスが存在しないことを意味する。本明細書で
は、ソースプログラムのうち行番号により一意に特定さ
れるセンテンスをソースコードという。
【0010】割付情報は、ソースプログラムの各センテ
ンスに使用されている変数がどの資源(レジスタ)に割り
付けられているかを示す情報であり、「;;」を先頭に配す
ることにより、命令列本体とは区別されている。尚、コ
ンパイラコア1により生成されるプログラムは、一次ア
センブルプログラムでなくてもよく、コンパイラ装置の
内部で解釈可能な言語体系(中間言語体系と呼ばれる)で
記述されていてもよい。
【0011】<ソフトウェアパイプライニング部2>ソ
フトウェアパイプライニング部2は、一次アセンブルプ
ログラムに対してソフトウェアパイプライニングを行
う。ソフトウェアパイプライニングとは、パイプライン
により並列実行可能な数だけ、イタレーションを構成す
る命令群(イタレーション命令群)を作成し、ターゲット
マシンのパイプラインに適合するよう、これらを加工し
ておく技術である。ソフトウェアパイプライニング部2
による処理手順を簡易化して表した図が図3のフローチ
ャートである。本図を参照しながら、ソフトウェアパイ
プライニング部2による処理手順の概略を説明する。ソ
フトウェアパイプライニング部2は、一次アセンブルプ
ログラムからループ処理のボディを構成する命令列を検
出し(ステップS1)、ボディ命令列をステージ数nだ
けコピーし、イタレーションを構成する命令群(イタレ
ーション命令群)をn組み得る(ステップS2)。図2
(b)のプログラムにおいてボディに対応するのは、命
令A「ld (r10),r0」〜命令H「blt loop」であり、これらがn
個に複製されることになる。n組みのイタレーション命
令群が得られたところで、投入間隔だけずらして配置す
ることによりパイプラインイメージを作成する(ステッ
プS3)。
【0012】投入間隔とは、あるイタレーションの実行
が開始してから、次のイタレーションが開始するまでの
間隔であり、この値が小さい程、ループが高速化される
ことになる。投入間隔たる命令数を"2"として、命令A「l
d (r10),r0」〜命令H「blt loop」を変換することにより得
られたパイプラインイメージの一例を図4(a)に示
す。パイプラインイメージが得られたところで、パイプ
ラインイメージを、プロログ、エピログ、カーネルに分
割する(ステップS4)。図4(b)は、図4(a)の
パイプラインイメージから得られるプロログ、エピロ
グ、カーネルの一例を示す図である。ボディの繰り返し
回数は100回であるので、図4(c)に示すようにこの
カーネルの部分が98(=100-2)回繰り返されることにな
る。パイプラインイメージが分割された段階にて、プロ
ログ〜エピログを構成する各命令に、自身が属するイタ
レーションを示すイタレーション識別子「;ix」を付加
し(ステップS5)、カーネルを構成する命令に、自身
が属するイタレーションを示すステージ識別子「sx;」
を付加する(ステップS6)。ステージ識別子とは、カ
ーネル内のイタレーションを識別する識別子である。イ
タレーション識別子は、一番先行しているイタレーショ
ンを基準にして、各イタレーションの相対順序を示して
いるのに対して、ステージ識別子は、一番遅れているイ
タレーションを基準にして、各イタレーションの相対順
序を示している。この点はイタレーション識別子とステ
ージ識別子との差違といえる。図5は、ステップにより
イタレーション識別子、ステージ識別子が付加されたパ
イプラインイメージを示す図である。
【0013】続いて異なるイタレーション命令群間の並
列実行性及び同一のイタレーション命令群間の並列実行
性の何れかが成立する命令同士をグループ化する(ステ
ップS7)。パイプラインイメージでは、縦の並びに位
置する命令が並列実行可能性を有することになる。図6
(a)(b)は、図5において並列実行可能性が成立す
る複数命令を示す図である。図5のパイプラインイメー
ジでは、縦の並びに位置する複数の命令に、図6(a)
に示すようなイタレーション間の並列実行可能性が存在
することになる。並列実行可能性としては、他にコンパ
イラコア1により一次アセンブルプログラムの生成時に
検出されたものがある。これは同一のイタレーション内
に成立する並列実行可能性であり、図6(b)にその一
例を示す。これら2種類の並列実行可能性のうち何れか
が成立するものは並列実行が可能になる。図7(a)
(b)は、並列実行可能性が成立するもの同士がグルー
プ化されて形成された並列実行単位(図中では、並列単
位と略記している。)を示す図である。本図に示すよう
にプロログは、命令A「ld (r10),r0」−命令B「add r10,4,
r10」とからなる並列実行単位#1と、命令A「ld (r10),r0」
−命令B「add r10,4,r10」−命令C「add r0,r5,r1」からな
る並列実行単位#2と、命令D「mul r1,r6,r2」−命令E「cmp
r10,x+400」−命令C「add r0,r5,r1」からなる並列実行単
位#3にて構成される。
【0014】カーネルは、命令A「ld (r10),r0」−命令B
「add r10,4,r10」−命令D「mul r1,r6,r2」−命令E「cmp r1
0,x+400」からなる並列実行単位#4と、命令C「add r0,r5,
r1」−命令F「st r2,(r11)」−命令G「add r11,4,r11」−命
令H「blt loop」からなる並列実行単位#5とから構成され
る。エピログは命令E「cmp r10,x+400」−命令D「mul r1,r
6,r2」からなる並列実行単位#6と、命令F「st r2,(r11)」
−命令G「add r11,4,r11」−命令H「blt loop」からなる並
列実行単位#7から構成される。
【0015】これらの命令のうち、命令E「cmp r10,x+40
0」はループ処理の終了要件を判定するための命令であり
プロログ−エピログに配する必要はない。また、カーネ
ルについては、98回繰り返し行わねばならない。これら
を踏まえ、ステップS8にて、並列実行単位同士を境界
で区切ることにより、図8に示す二次アセンブルプログ
ラムを得る(ステップS8)。
【0016】図8は、ステップS8により得られる二次
アセンブルプログラムを示す図である。図8において並
列実行単位#1〜並列実行単位#8のそれぞれは、境界たる
エンドビット"E"で区切られている。各並列実行単位内
の命令は、「;l2」「;l3」「;ln」といった行番号と、「;i1」「;
i2」「;i3」といったイタレーション識別子及び「;s1」「;s2」
「;s3」といったステージ識別子が付加されている。
【0017】コンパイラ装置より出力された二次アセン
ブルプログラムは、アセンブラにより再配置可能なリロ
ケータブルコードに変換される。更にリンカがリロケー
タブルコードを連結編集することにより、機械語プログ
ラムがえられる。コンパイラ装置により生成された二次
アセンブルプログラムは、デバッグという役割をもって
利用されるので、これをデバッグリストとよび、機械語
プログラムと区別する。コンパイラ装置、アセンブラ、
リンカにより生成されるプログラム、即ち、翻訳作業の
生成物たる機械語プログラムを、本明細書ではオブジェ
クトプログラムと称する。また二次アセンブルプログラ
ムのうち、イタレーション識別子、ステージ識別子、行
番号を除いた純粋なプログラム部分も、翻訳作業の生成
物といえるのでオブジェクトプログラムと称する。
【0018】<プログラム動作環境3、メモリ4、プロ
セッサ5>プログラム動作環境3は、オブジェクトプロ
グラムが実装されるべきターゲットマシンと同じハード
ウェア環境を実現するものであり、メモリ4及びプロセ
ッサ5を実装するターゲットマシンそのもの(1)、メモ
リ4及びプロセッサ5を実装するICE(InCircuit Emulat
or)ボード(2)、メモリ4及びプロセッサ5の機能をソフ
トウェア的に実現するソフトウェアシミュレータ(3)と
いった形態がある。
【0019】メモリ4は、コンパイラ装置、アセンブ
ラ、リンカにより生成された機械語プログラムを格納す
る。プロセッサ5は、オブジェクトプログラムに対する
現在のアクセス先アドレスを保持するプログラムカウン
タ(i)、現在アドレスから命令をフェッチする命令フェ
ッチ回路(ii)、フェッチされた命令を格納する命令レジ
スタ(iii)、命令レジスタに格納された命令を解読する
命令デコーダ(iv)、演算器(v)、汎用レジスタR0〜R15(v
i)、データメモリ(vii)、データやアドレス転送用のバ
ス(viii)を備え、3段のイタレーションを投入間隔2のパ
イプラインにて並列実行することができる。このプロセ
ッサ5は、ユーザモード、スーパーバイザモードという
2つの動作モードを有する。ユーザモードとは、オブジ
ェクトプログラムを実行するモードであり、スーパーバ
イザモードとは、デバッグ支援装置からの指示に従い、
動作を行うものでありデバッグ用のモードといえる。プ
ロセッサは通常、ユーザモードに設定されており、ユー
ザモードからスーパーバイザモードへの切り換えは、PI
命令の解読・実行をトリガとする。「PI命令」とは、ス
ーパーバイザモードへと動作モードを切り換えるための
割り込み信号を発生させる命令であり、オブジェクトプ
ログラムの任意の箇所に組み込まれている。PI命令には
「パスカウント」の設定が可能である。このパスカウン
トが設定されている場合、プログラムはパスカウントに
示される回数だけ、PI命令が解読されるのを待ち、この
回数だけPI命令が解読された時点で、スーパーバイザモ
ードの切り換えのための割り込みを発生する。
【0020】<デバッグ支援装置6>デバッグ支援装置
6は、プロセッサ5がスーパーバイザモードにある場合
に、プログラムに様々な指示を与えるプログラムであ
り、ソースプログラムと、ソフトウェアパイプライニン
グ部2により生成された二次アセンブルプログラム(デ
バッグリスト)とを格納して、これらを利用したデバッ
グ作業を実現する。図1に示すようにデバッグ支援装置
6は、ユーザインターフェイス7、ウィンドゥ識別子付
加部8、割付情報変換部9、ブレークポイント設定部1
0、プログラム実行制御部11、ワンステップ実行制御
部12、資源操作処理部13を備える。
【0021】<ユーザインターフェイス7>ユーザイン
ターフェイス7は、図9に示す対話画面を介した対話操
作の操作環境を操作者に提供する。図9に示す対話画面
は、アセンブラリストが配置されるアセンブラウィンド
ゥと、ソースリストが配置されるソースウィンドゥ#i、
ソースウィンドゥ#i+1、ソースウィンドゥ#i+2とからな
る。アセンブラリストとは、デバッグリストたる二次ア
センブルプログラムの一部分であり、このうちプロセッ
サ3により実行されている現在アドレスは、ハッチング
により修飾表示される。
【0022】ソースリストとは、ソースプログラムを構
成する複数センテンスについてのプログラムリストであ
る。ユーザは、ポインティングデバイスを用いることに
より、これらプログラムリスト内の任意のセンテンス又
は命令を指定することができる。ソースウィンドゥは、
並列実行されるイタレーションと同数だけ表示され、そ
れぞれのイタレーションに割り当てられる。図10は、
ソースウィンドゥ#i〜ソースウィンドゥ#i+2と、i,i+1,
i+2巡目のイタレーションとの対応を示す図である。
【0023】例えばi,i+1,i+2巡目のイタレーションを
並列実行する場合、先行するi,i+1,i+2の順に、これら
イタレーションを各ソースウィンドゥに割り当てる。つ
まりソースウィンドゥ#iには、矢印sy1に示すように一
番先行するイタレーションであるi巡目のイタレーショ
ンが、ソースウィンドゥ#i+1は矢印sy2に示すようにi+1
巡目のイタレーションが、ソースウィンドゥ#i+2は、最
語尾たるi+2巡目のイタレーションが矢印sy3に示すよう
に割り当てられる。
【0024】i巡目イタレーションの実行が済めば、ソ
ースウィンドゥ#i+1,#i+2に割り当てていたi+1,i+2巡目
イタレーションを、それぞれ矢印hj1,hj2に示すように
ソースウィンドゥ#i、#i+1に移す。i+3巡目のイタレー
ションが生成されれば、これを矢印hj3に示すようにソ
ースウィンドゥ#i+2に割り当てる。こうした動的な割り
当てにより、ユーザインターフェイス7は、複数のイタ
レーションがパイプライン的に動作している様子を画面
上に再現するのである。またソースウィンドゥ#i〜ソー
スウィンドゥ#i+2のうち、現在アドレスに対応するもの
は対応行指定マークにて指示され、他のソースウィンド
ゥとは区別される。現在アドレスに対応するウィンドゥ
とは以下の意味である。図9において現在アドレス0049
に位置する命令A「ld (r10),r0」は、図8において「;s
1」というステージ識別子と、「;l2」という行番号とが
付加されている。一方、ソースウィンドゥ#i〜ソースウ
ィンドゥ#i+2はi,i+1,i+2巡目のイタレーションに対応
しているので、ステージ識別子s1はソースウィンドゥ#i
に対応する。ステージ識別子s1に対応するソースウィン
ドゥ#iが、先に述べた『現在アドレスに対応するウィン
ドゥ』である。また現在アドレス0049には「;l2」という
行番号が付されているので、この行番号「;l2」が現在ア
ドレス0049に対応するセンテンスとして対応行指定マー
クが付されている。一方、ソースウィンドゥ#i+1、ソー
スウィンドゥ#i+2は、現在アドレスが属するイタレーシ
ョンと、並列実行されるイタレーションに対応してお
り、これらは「;l2」とは異なる行「;l4」,「;l5」にハ
ッチングが付されている。
【0025】<ウィンドゥ識別子付加部8>ウィンドゥ
識別子付加部8は、二次アセンブルプログラムを構成す
るそれぞれの命令に対してウィンドゥ識別子及び行番号
を付す構成要素であり、その実体は図11のフローチャ
ートである。ウィンドゥ識別子とは、パイプラインにて
並列実行可能性される複数イタレーションのそれぞれを
示す識別子であり、イタレーションに対するウィンドゥ
識別子の割り当ての一例を図12に示す。一番先行する
イタレーションにはウィンドゥ識別子w1が、これに続く
イタレーションにはw2が、これに続くイタレーションに
はw3がそれぞれ割り当てられていることがわかる。イタ
レーションの個数をnとすると、各命令には、n個のウィ
ンドゥ識別子が割り当てられる。ウィンドゥ識別子と似
たような概念として、先に述べたイタレーション識別子
及びステージ識別子があり、これらとの差違は以下の通
りである。即ち、イタレーション識別子(ステージ識別
子)は、命令が属するイタレーションを示すもののみが
その命令に付される。これに対してウィンドゥ識別子
は、自身が属するイタレーションを始め、並列実行され
る全てのイタレーションについてのウィンドゥ識別子が
命令に付加される。このため、並列実行されるイタレー
ションの数が"3"であれば、イタレーションに属する命
令には、それぞれ3つのウィンドゥ識別子が付加され
る。
【0026】図11のフローチャートにおいて、プロロ
グ、カーネル、エピログに属する全ての命令について、
ステップS13〜ステップS20の処理を繰り返すルー
プ構造になっている(ステップS11、ステップS1
2)。ここで一回の繰り返しにおける処理対象を命令i
とすると、命令iは、ステップS13にてウィンドゥ識
別子w1〜wnが付加された後、ステップS14にて、ルー
プ処理の先頭であるか否かが判定される。その後、命令
iが先頭命令である場合はステップS15の処理が施さ
れ、命令iが先頭以外である場合は、ステップS16〜
ステップS21の処理が施される。ステップS15は、
ループ処理の先頭を指定した行番号を、命令iについて
のウィンドゥ識別子w1〜wnに付加するという処理を行う
ステップであり、この場合、命令に付加された複数のウ
ィンドゥ識別子には、共通の行番号が付加されることに
なる。ステップS16〜ステップS21は、「;ln」に
設定された行番号を補間するものである。つまりステッ
プS16にてウィンドゥ識別子w1〜wnのうち、イタレー
ション識別子(ステージ識別子)に対応するものに行番号
「;lx(x=1,2,3,4・・・・)」を付し、それ以外のものに「;l
n」を付す。
【0027】図13は、図8のプログラムに対してウィ
ンドゥ識別子及び行番号を付すことにより得られた二次
アセンブルプログラムを示す図である。本図において四
角枠で囲んだ行番号とウィンドゥ識別子との組みには、
有効な行番号「;l2」「;l3」「;l4」が付加されている。一
方、四角枠で囲んでいない行番号とウィンドゥ識別子と
の組みには、無効な行番号「;ln」が付加されている。
【0028】その後、命令に付加されたウィンドゥ識別
子w1〜wnのそれぞれに対して、ステップS19〜ステッ
プS21の処理を施す(ステップS17、ステップS1
8)。ステップS19〜ステップS21の繰り返し時に
おいて処理対象たるウィンドゥ識別子を「wx」とする
と、行番号が「;ln」であるウィンドゥ識別子wxに対し
ては、命令jに付加された行番号「;ly」が付加される
(ステップS21)。ここで命令jとは、命令iに先行す
る命令であって、ウィンドゥ識別子wxに有効な行番号が
付加された命令であり、ステップS20にて特定され
る。ステップS20及びステップS21におけるウィン
ドゥ識別子割り当ての過程について図14を参照しなが
ら説明する。ここでは、アドレス0045に位置する命令A
「ld (r10),r0」が命令iであると仮定する。
【0029】図14は、ステップS16の過程を経た段
階のプログラムを示す図である。本図においてアドレス
0042に位置する命令A「ld (r10),r0」には、ウィンドゥ識
別子w3に対してl2が付加されている。一方w1,w2にはln
が付加されている。従って、命令A「ld (r10),r0」につい
ては、これらウィンドゥ識別子w1,w2がステップS2
0、ステップS21の処理が施されることになる。w1に
ついては、アドレス0049に位置するカーネル内の命令A
「ld (r10),r0」が命令yとして検出される。w2について
は、アドレス0051に位置するカーネル内の命令A「ld (r1
0),r0」が命令yとして検出される。そして、これらの命
令yに付加された行番号l2が矢印jy1,jy2に示すように行
番号「ly」として検出されるのである。同様の付加処理
を、行番号が";ln"と設定された全てのウィンドゥ識別
子について行えば、図15の二次アセンブルプログラム
がえられることになる。尚、図15のプログラムでは、
イタレーション識別子及びステージ識別子を示していな
いが、これは単に図示していないだけであって、これら
も二次アセンブルプログラムに付加されていることは留
意されたい。何故なら、これらイタレーション識別子及
びステージ識別子は、各命令がどのイタレーションに対
応するかを特定するというウィンドゥ識別子とは異なる
役割があり、これがないと、各命令がどのステージやイ
タレーションに対応するのかが特定できないからであ
る。尚、命令iに後続する命令であって、ウィンドゥ識
別子wxに有効な行番号が付加された命令を、ステップS
20において命令jとして特定しても良い。
【0030】<割付情報変換部9>割付情報変換部9
は、デバッグ作業のために割付情報の加工を行うプログ
ラムであり、その実体は図16のフロ−チャ−トであ
る。このフローチャートによると、割付情報変換部9は
ステップS27からステップS29までの処理を、各割
付情報のそれぞれについて繰り返すというループ構造に
なっている(ステップS25、ステップS26)。ステ
ップS27にて、割付情報変換部9は開始点及び終了点
を示す行番号の組みを用いて変数iの生存区間を特定す
るという一般の生存区間解析を行う。その後、開始点及
び終了点を示す行番号の組みを命令のアドレスに変換
し、開始点及び終了点を示すアドレスの組みにより変数
iについての生存区間情報を生成して割付情報に付加す
る(ステップS28)。更に生存区間の範囲内にある命
令に付されたウィンドゥ識別子を、変数iについての生
存区間情報に付加する(ステップS29)。以上の処理
が各割付情報のそれぞれについて繰り返される。図2
(a)の一例でいうと、変数aについてはl2〜l3が生存
区間、変数bについてはl3〜l4、変数cについてはl4〜l5
がそれぞれ生存区間となる。これらの行番号をアドレス
に変換し、更にウィンドゥ識別子を付加することによ
り、図17のように生存区間情報が付加された割付情報
が得られる。1つのボディから複数のイタレーション命
令群が生成され、1つの行番号の組みが、複数のアドレ
スの組みに変換されているため、図17では変数a,bに
ついての生存区間情報が複数になっている点には、注意
されたい。
【0031】<プログラム実行制御部11>プログラム
実行制御部11は、オブジェクトプログラムをプロセッ
サに実行させる構成要素であり、その実体は、図18の
フロ−チャ−トを実現するプログラムである。図18の
フロ−チャ−トにおいてステップS41は、現在アドレ
スにブレークポイントが設定されているか否かにより、
ステップS42及びステップS43をスキップするか、
或はこれらを実行するかを切り換える条件付き分岐ステ
ップである。ステップS42〜ステップS43は、現在
アドレスにブレークポイントされている場合に必要な処
理であり、ステップS42においてデバッグ支援装置内
部に退避されている命令を現在アドレスに書き戻し、ス
テップS43において現在アドレスをプロセッサのプロ
グラムカウンタに設定して、オブジェクトプログラムを
RUNする。ステップS41における条件分岐を経た後、
事象待ちステップS44に至る。ステップS44にて成
立を待っている事象とは、プロセッサにおけるモード切
り換えのための割込発生であり、この事象が成立すれ
ば、プログラムカウンタの現在アドレスを取り出して、
オブジェクトプログラムにおいてその現在アドレスに位
置する命令を特定し(ステップS45)、その後、特定
された命令にウィンドゥ識別子が付加されているか否か
に応じて(ステップS46)、ステップS47〜ステッ
プS49の処理、ステップS50〜ステップS54、ス
テップS40の処理を択一的に実行する。特定された命
令にウィンドゥ識別子が付加されている場合、ソースウ
ィンドゥを表示し(ステップS47)、特定された命令
に付された行番号lxに対応するセンテンスと、行番号lx
から前後2,3行に位置するセンテンスとをウィンドゥwx
に表示して(ステップS48)、行番号lxに対応するセ
ンテンスを修飾する(ステップS49)。
【0032】一方、特定された命令にウィンドゥ識別子
が付されている場合、ウィンドゥ識別子の数だけソース
ウィンドゥを表示し、各ウィンドゥ識別子を割り当てた
後、全てのソースウィンドゥについて、ステップS53
及びステップS54を繰り返す。ここで一回の繰り返し
にあたって処理対象たるウィンドゥ識別子をwxとする。
このウィンドゥ識別子wxに付された行番号lxに対応する
センテンスは、行番号lxから前後2,3行に位置するセン
テンスとともにウィンドゥwxに表示される(ステップS
53)。その後、行番号lxに対応するセンテンスを修飾
する(ステップS54)という処理が全てのウィンドゥ
識別子について繰り返されるのである。この繰り返しが
終われば、特定された命令に付加されたイタレーション
識別子(ステージ識別子)に対応するソースウィンドゥに
おいて、そのイタレーション識別子(ステージ識別子)に
付加された行番号に対応するセンテンスを対応行指定マ
ークにより指定して(ステップS40)処理を終える。
【0033】図19は、ステップS51〜ステップS5
4での処理により表示されるソースウィンドゥの一例を
示す図である。本図は、アドレス0049がブレークポイン
トであることを前提にしている。このアドレスに存在す
る命令A「ld (r10),r0」は、w1からw3までのウィンドゥ識
別子が付されているので、3つのソースウィンドゥが表
示され、これらウィンドゥ識別子に付加された番号に相
当するセンテンスl2,l4,l5がハッチングにて修飾されて
いる。複数のセンテンスが互いに異なるイタレーション
に対応していることを知らしめるため、複数のセンテン
スは、互いに異なる表示態様で表示することは望まし
い。
【0034】<ブレークポイント設定部10>ブレーク
ポイント設定部10は、プログラム動作環境3における
メモリ4内のオブジェクトプログラムに対してブレーク
ポイントを設定する構成要素であり、その実体は図20
のフロ−チャ−トを実現するプログラムである。図20
のフロ−チャ−トは、ウィンドゥ指定を操作者から受け
付け、このウィンドゥ指定に応じてステップS31〜ス
テップS32、ステップS36及びステップS33〜ス
テップS36を択一的に実行するものである。アセンブ
ラウィンドゥが指定された際、ステップS31に移行す
る。
【0035】ステップS31は、アセンブラウィンドゥ
内に表示された命令が指定されるのを待つという事象待
ちステップであり、命令指定がなされると、ステップS
32及びステップS38が順次実行されることになる。
ステップS32では、指定された命令がメモリから取り
出されて、アドレスと対応づけてデバッグ支援装置内に
退避される。その後ステップS38において、PI命令を
用いて特定された命令を上書きする。これらは既存のデ
バッグ支援装置にて行われる設定処理と何等変わりはな
い。一方ソースウィンドゥが指定された際、ステップS
33をトリガとして、ステップS34〜ステップS38
を実行する。ステップS33に移行する。ステップS3
3は、選択された1つのソースウィンドゥにおけるセン
テンスの指定が操作者によりなされるのを待つという事
象待ちステップであり、センテンス指定がなされると、
ステップS34〜ステップS36が順次実行されること
になる。つまり、選択されてるソースウィンドゥと、指
定されたセンテンスとの組みに対応する命令xを、ウィ
ンドゥ識別子と行番号との組みに基づき特定し(ステッ
プS34)、特定された命令xと、アドレスとを対応づ
けてデバッグ支援装置内に退避する(ステップS3
5)。その後、ブレークポイントを設定すべきアドレス
における命令に付加されたウィンドゥ識別子と、現在ア
ドレスにおける命令に付加されたウィンドゥ識別子とか
らステージ差を算出し(ステップS36)、ステージ差
をパスカウントとしたPI命令を生成して(ステップS3
7)、PI命令を用いて特定された命令を上書きする(ス
テップS38)。これらステップS33〜ステップS3
8は、ソースウィンドゥ及びセンテンスに対応する命令
を、ウィンドゥ識別子と行番号との組みから導くという
点に特徴がある。以降ブレークポイント設定部10の動
作例を、図21、図22を参照しながら説明する。図2
1ではソースウィンドウ#1,#i+1,#i+2がそれぞれ、1,2,
3巡目のイタレーションにそれぞれ割り当てられてい
る。現在アドレスはアドレス0050であるものとする。図
8においてこのアドレス0050に付されたステージ識別子
は「;s1」であり、このアドレスが原始的にカーネルにお
ける1巡目のステージに対応する。
【0036】ここでユーザは、ソースウィンドウ#i+2の
行番号;l5にブレークポイントを設定しようとしてい
る。ソースウィンドウ#i+2は3巡目のイタレーションに
対応し、これに対応するステージ識別子はs3である。こ
れに行番号l5;が付されているのは、アドレス0054であ
る。一方現在アドレス0050は、1巡目のイタレーション
に対応しているので、ステージ番号の差である値"2"の
パスカウントを付加して、アドレス0054をPI命令に書き
換える(ステップS38)。その後機械語プログラムの
実行を開始させると、アドレス0054の命令は2回ブレー
クを見逃され、3回目実行に、PI命令が発動して停止す
る。図22は、その停止時における表示状態である。図
21でソースウィンドウ#i+2が表していた3巡目のイタ
レーションは、図22ではソースウィンドウ#iに移り、
新たに現在実行中の4巡目、5巡目のイタレーションがそ
れぞれソースウィンドウ#i+1、ソースウィンドウ#i+2に
割り当てられている。本図において各ソースウィンドウ
は、それぞれ行番号l5;,l5;,l4;に停止していることが
わかる。
【0037】<ワンステップ実行制御部12>ワンステ
ップ実行制御部12は、オブジェクトプログラムに対し
てブレークポイントを設定する構成要素であり、その実
体は、図23のフロ−チャ−トの処理手順を実現するプ
ログラムである。図23のフロ−チャ−トにおいてステ
ップS55は、操作者によるウィンドゥ指定に応じてス
テップS56〜ステップS57及びステップS58〜ス
テップS60を択一的に実行する条件付き分岐ステップ
である。操作者によりアセンブラウィンドゥが指定され
た場合には、現在アドレスの次のアドレスにある命令
を、アドレスと対応づけてデバッグ支援装置内に退避し
(ステップS56)、次のアドレスにPI命令を書き込む
(ステップS57)。ソースウィンドゥが指定された場
合には、現在アドレスに対応するセンテンスを特定し
(ステップS58)、特定されたセンテンスの次の行に
位置するセンテンスを特定して(ステップS59)、選
択されたウィンドゥと、特定されたセンテンスとの組み
に対応する命令を特定した後(ステップS60)、特定
された命令にPI命令を書き込んで(ステップS61)、
現在アドレスをPI命令に設定してから、プロセッサをRU
Nする(ステップS62)。以降、プログラム実行制御
部11と同様、図16のステップS44〜ステップS5
4、ステップS40の処理を行う(簡略化のため、これ
らのステップは図21から省略している。)。図24
は、アセンブラウィンドゥに対してワンステップ実行を
行った場合の一例であり、図25は、ソースウィンドゥ
に対してワンステップ実行を行った場合の一例を示す図
である。図24では、矢印cy1に示すように現在アドレ
ス0049がであることを想定しており、この現在アドレス
0049に対して、アセンブラウィンドゥのワンステップ実
行を行えば、矢印cy2に示すように現在アドレスが0050
になった時点で割り込みが発生する。一方、現在アドレ
スが同じ0049でありながら、ソースウィンドゥにおける
ワンステップ実行では、矢印ry1に示すように現在アド
レス0049に対応する行番号;l4であるので、矢印ry2に示
すように次の行番号;l5に達した時点で割り込みが発生
する。この行番号;l5は、矢印ry3に示すようにアドレス
0054に対応するので、アドレス0054に到達した時点で割
り込みが発生していることが理解できる。
【0038】<資源操作処理部13>資源操作処理部1
3は、プログラム動作環境3におけるハードウェア資源
の操作処理を行う構成要素である。ハードウェア資源の
操作には、資源への値の書き込み操作と、資源に保持さ
れている値の参照操作の2種類がある。ハードウェア資
源には、プロセッサ5内のレジスタR0〜R15と、ターゲ
ットメモリ4に格納されているものの2つの種類があ
る。本実施形態における資源操作処理部13が特徴的な
のは、以上の資源に対する操作を、変数を介して行う点
である。変数を介してなされる資源の参照処理は、図2
6のフローチャートの処理手順により実現される。以降
本フローチャートを参照して、資源操作処理部13によ
る資源参照処理について説明する。図26のフロ−チャ
−トにおいてステップS71及びステップS72は、事
象待ちステップである。ステップS71で成立を待つ事
象とは、操作者によるソースウィンドゥの選択であり、
ステップS72で成立を待つ事象とは、選択されたソー
スウィンドゥ内のセンテンスにて使用されている変数x
の指定である。直列的な関係にあるステップS71及び
ステップS72にて、事象成立が確認されれば、ステッ
プS73を経て、ステップS74を実行する。ステップ
S74は、変数xの割付情報における有効範囲にアドレ
スyが属しているか否かに応じて、ステップS75及び
ステップS76〜ステップS77を択一的に実行する条
件付き分岐命令である。ここでアドレスyとは、指定さ
れた変数xを使用するセンテンスに対応する命令yのアド
レスであり、ステップS73にて特定される。変数xの
割付情報における有効範囲にアドレスyが属していない
場合、ステップS75においてInvalid表示を行い、属
している場合、ステップS76において割付情報に示さ
れている変数xの割り付け資源xを特定し、ステップS7
7において資源xの保持値を変数xの値として表示する。
【0039】図27は、図19の状態で、ソースウィン
ドゥの変数bが操作者により指定された状態を示す図で
ある。図19の状態では、現在アドレスが0049であるの
で、このアドレス0049が変数の生存区間に属するか否か
がステップS74で判定される。枠wk1は、図19のプ
ログラムに対する割付情報の一例を示す。この割付情報
において、アドレス0049は、ウィンドゥ識別子w2が付さ
れた生存区間に属しているので、このアドレス0049にお
いて変数bは有効であり、この変数bに割り付けられた資
源r1の値を変数の値として表示する(ステップS7
7)。一方、このアドレス0049の命令A「ld (r10),r0」に
は「l4;」の行番号が付加されているので、ソースウィン
ドゥ#i+1における「;l4」のセンテンスが修飾されること
になる。
【0040】以上のように本実施形態によれば、ソフト
ウェアパイプライニングが行われた際にそのステージ数
分のウィンドウを表示させ、それぞれの停止位置や変数
値を表示させることによって、ユーザが混乱することな
く各イタレーションの実行状況を把握することが可能に
なる。上記実施形態に基づいて説明してきたが、現状に
おいて最善の効果が期待できるシステム例として提示し
たに過ぎない。本発明はその要旨を逸脱しない範囲で変
更実施することができる。代表的な変更実施の形態とし
て、以下(A)(B)(C)・・・・のものがある。
【0041】(A)本実施形態では、ウィンドゥ識別子
の付加を行うウィンドゥ識別子付加部8と、割付情報の
変換を行う割付情報変換部9とはデバッグ支援装置内に
設けたが、コンパイラ装置内に設けてよいことはいうま
でもない。 (B)ブレークポイントにより二次アセンブルプログラ
ムの実行が停止した際、ソースウィンドゥを複数表示さ
せ、それぞれのソースウィンドゥ内で、ブレークポイン
トたる命令に対応するセンテンスを修飾したが、以下の
(B−1)、(B−2)のように変更しても良い。
【0042】(B−1)ブレークポイントにて命令の実
行が停止した場合、ブレークポイントたる命令に付加さ
れた複数ウィンドゥ識別子についての行番号を参照し、
それら複数行番号に対応する複数センテンスを1つのソ
ースウィンドゥ内で修飾表示しても良い。図28は、こ
の変更表示を行った場合の表示例であり、アドレスの命
令に付加された複数のウィンドゥ識別子に対応する行番
号に対する修飾表示が、1つのソースウィンドゥ内で行
われていることがわかる。
【0043】(B−2)ブレークポイントにて命令の実
行が停止した場合、ブレークポイントたる命令に付加さ
れた複数ウィンドゥ識別子についての行番号を参照し、
それら複数行番号に対応する複数センテンスから代表的
なものを1つ選んで1つのソースウィンドゥ内で修飾表示
しても良い。この選び方としては、一番先行するイタレ
ーションを示す行番号、あるいは、一番後続するイタレ
ーションを示す行番号を選ぶといった方法がある。図2
9を一例にして具体的を説明する。アドレスの命令に
は、w1,w2,w3というウィンドゥ識別子が付加されてお
り、これらウィンドゥ識別子に更に行番号「;l2」「;l4」「;
l5」が付されているものとする。これらのうち最も先行
しているのは行番号「;l5」なので、この行番号のセンテ
ンスを表示するのである。
【0044】(C)本実施形態では、一次アセンブルプ
ログラムに対してソフトウェアパイプライニングが行わ
れた場合を一例にして説明したが、これに限定されるも
のではない。ループ処理のボディを複数イタレーション
命令群に翻訳するという処理を経る最適化手法ならどの
ようなものも本発明を適用することができる。そのよう
な最適化手法にループアンローリングといったものがあ
る。
【0045】ループアンローリングは、ループ内のボデ
ィに含まれるセンテンスを複数センテンスに書き換え
て、ループ処理の実行効率を向上させる最適化手法であ
る。例えば、配列bの要素を用いて配列aの要素の定義を
行うセンテンス『a[i]=b[i]*(x+10)』を、変数iが100に
なるまで繰り返し行うループ処理があるものとする。こ
のループ処理に対してループアンローリングを行う場
合、ループボディ内のセンテンス『a[i]=b[i]*(x+10)』
を『a[i]=b[i]*(x+10)』と、『a[i+1]=b[i+1]*(x+10)』
という2つのセンテンスに書き換える。また書換前にお
いて誘導変数iは、『i++』に示すように、『1』ずつイ
ンクリメントされていたが、書換後では、これが『i+=
2』に示すように、『2』ずつインクリメントしてゆくよ
うに書き換えられている。書換前では、ループ処理を一
回実行する度に、配列aの配列要素が1つずつ決定されて
いったが、書換後では、ループ処理を一回実行する度
に、『a[i]=b[i]*(x+10)』というセンテンスと、『a[i+
1]=b[i+1]*(x+10)』というセンテンスとが並列に実行す
ることができ、この場合配列aの配列要素が2つずつ決定
されてゆくことになる。これら2つのセンテンスは、そ
れぞれが別個のイタレーション命令群に翻訳されるの
で、それらイタレーション命令群にステージ識別子を付
しておく。こうすることにより、ループアンローリング
により得られた二次アセンブルプログラムに対しても、
デバッグ支援装置は本実施形態と同様のデバッグ作業を
行うことができる。
【0046】(D)本実施形態では、プログラム動作環
境3及びデバッグ支援装置6はそれぞれ別装置であるも
のとして説明したが、これらが一体構成されていてもよ
い。また、デバッグ支援装置6を構成するユーザインタ
ーフェイス7〜資源操作処理部13は、プロセッサ5に
より実行されるプログラムであってもよい。更に、デバ
ッグ支援装置6を構成するユーザインターフェイス7〜
資源操作処理部13は、プロセッサ5とは異なるプロセ
ッサにより実行されるプログラムであってもよい。
【0047】(E)本実施形態では、コンパイラ装置及
びデバッグ支援装置6は、それぞれ別装置であるものと
して説明したが、これらが一体構成されていてもよい。
また、コンパイラ装置を構成するコンパイラコア1〜ソ
フトウェアパイプライニング部2は、プロセッサ5によ
り実行されるプログラムであってもよい。加えて、プロ
グラム動作環境3、デバッグ支援装置6、コンパイラ装
置を一体構成にしてもよい。
【0048】(F)ソースウィンドゥ#i、#i+1、#i+2の
それぞれにイタレーションを動的に割り当てる場合にお
いて、各ソースウィンドゥが何巡目のイタレーションに
対応するかを表示してもよい。 (G)図3、図11、図16、図18、図20、図2
3、図26のフローチャートを参照して説明した手順等
を実行形式プログラムにより実現し、これを記録媒体に
記録したりネットワーク上で伝送させることにより流通
・販売の対象にしても良い。このような記録媒体には、I
Cカードや光ディスク、フレキシブルディスク等があ
る。これらに記録された機械語プログラムは汎用コンピ
ュータにインストールされることにより利用に供され
る。この汎用コンピュータは、インストールした実行形
式プログラムを逐次実行して、本実施形態に示した最適
化装置の機能を実現するのである。
【0049】
【発明の効果】以上説明したように、本発明に係るデバ
ッグ支援装置は、ループ処理を含むソースプログラムを
翻訳する第1過程と、当該ループ処理についての複数イ
タレーションが並列化されるように変換を施す第2過程
とを経て得られるオブジェクトプログラムについてのデ
バッグ支援を行うにあたって、オブジェクトプログラム
を構成する各命令に、複数イタレーションのうち何れか
を一意に示す識別子と、そのイタレーションに属するソ
ースコードを特定する行番号とを付加してなるデバッグ
リストを記憶する記憶手段と、操作者からの操作に従っ
て、記憶されているデバッグリストにおける1つの命令
を特定する特定手段と、特定された命令に付加された識
別子は、ループ処理のどのイタレーションを示している
かを判定する判定手段と、判定されたイタレーションの
前後のイタレーションを示す識別子と、同じ命令に付加
されている行番号をデバッグリストから探索する探索手
段と、特定された命令に付加された行番号に対応するソ
ースコードと、探索された行番号に対応するソースコー
ドとを表示する第1表示手段とを備えるものにより達成
される。
【0050】並列実行される命令が、どのソースコード
に対応するかをプログラマは、頭の中で容易に想像する
ことができ、ループ処理を動作させたパイプラインにて
動作させた場合にも混乱しない。故に、ループ処理にて
誤動作が生じたとしても、その誤動作の原因を短期間に
究明することができる。ここで、前記特定手段により特
定される命令は、オブジェクトプログラムの動作を止め
るべきブレークポイントであってもよい(3)。
【0051】ブレークポイントに設定された命令が、ユ
ーザが閲覧を望む変数の有効範囲内にある場合、前記デ
バッグ支援装置は更に、第1表示手段により表示された
ソースコードと共に、ユーザが閲覧を望む変数の保持値
を表示する第2表示手段を備えていてもよい(5)。ソー
スプログラムにおけるソースコードのそれぞれの時点に
おいて、デバッグ作業対象たる変数がどのように更新さ
れるかをユーザは逐次観察することができる。
【0052】第1表示手段により表示されたソースコー
ドに対する変数指定を受け付ける受付手段を備え、第2
表示手段は、指定された変数の保持値を表示してもよい
(6)。第1表示手段により表示されたソースコードか
ら、変数を指定することができるので、ユーザは効率良
く各変数の値を参照することができる。ここで、ループ
処理を含むソースプログラムを翻訳し、当該ループ処理
についての複数イタレーションが並列化されるように変
換を施すコンパイラ装置については、ソースプログラム
におけるループ処理内のボディを翻訳することにより命
令群を得る翻訳手段と、命令群を複製し、複数の命令群
を得る複製手段と、複数の命令群を構成するそれぞれの
命令であって、並列実行されるものを1つのグループに
グループ化し、各グループを境界で区切ってオブジェク
トプログラムを得るグループ化手段と、オブジェクトプ
ログラムを構成する各命令に、複数イタレーションのう
ち何れかを一意に示す識別子と、そのイタレーションに
属するソースコードを特定する行番号とを付加して、デ
バッグリストを作成する作成手段とを備えるのが望まし
い。ループ処理に適合したオブジェクトプログラムを生
成しつつも、このオブジェクトプログラムに識別子、行
番号を付加してデバックリストを得るので、デバッグ支
援装置がその機能を発揮させることができる。
【図面の簡単な説明】
【図1】プログラム開発システムの内部を示す図であ
る。
【図2】(a)ソースプログラムの一例を示す図であ
る。 (b)一次アセンブルプログラムの一例を示す図であ
る。
【図3】ソフトウェアパイプライニング部2の処理手順
を示すフローチャートである。
【図4】(a)命令A「ld (r10),r0」〜命令H「blt loop」
を変換することにより得られたパイプラインイメージの
一例を示す図である。 (b)図4(a)のパイプラインイメージから得られる
プロログ、エピログ、カーネルの一例を示す図である。 (c)ステージ、カーネル、エピログが実行される様子
を示す図である。
【図5】ステップによりイタレーション識別子、ステー
ジ識別子が付加されたパイプラインイメージを示す図で
ある。
【図6】(a)(b)図5において並列実行可能性が成
立する複数命令を示す図である。
【図7】(a)(b)並列実行可能性が成立するもの同
士がグループ化されて形成された並列実行単位を示す図
である。
【図8】 ステップS8により得られる二次アセンブル
プログラムを示す図である。
【図9】 ユーザインターフェイス7により提供される
対話画面を示す図である。
【図10】 ソースウィンドゥ#i〜ソースウィンドゥ#i
+2と、i,i+1,i+2巡目のイタレーションとの対応を示す
図である。
【図11】 ウィンドゥ識別子付加部8の処理手順を示
すフローチャートである。
【図12】 イタレーションに対するウィンドゥ識別子
の割り当ての一例を示す図である。
【図13】 図8のプログラムに対してウィンドゥ識別
子及び行番号を付すことにより得られた二次アセンブル
プログラムを示す図である。
【図14】 ステップS16の過程を経た段階のプログ
ラムを示す図である。
【図15】 ウィンドゥ識別子が付加された二次アセン
ブルプログラムの一例を示す図である。
【図16】 割付情報変換部9の処理手順を示すフロー
チャートである。
【図17】 割付情報と、生存区間情報との一例を示す
図である。
【図18】 プログラム実行制御部11の処理手順を示
すフローチャートである。
【図19】 二次アセンブルプログラムに対する割付情
報の一例を示す図である。
【図20】 ブレークポイント設定部10の処理手順を
示すフローチャートである。
【図21】 ブレークポイント設定部10の動作例を示
す図である。
【図22】 ブレークポイントによるオブジェクトプロ
グラムの停止時における表示状態の一例を示す図であ
る。
【図23】 ワンステップ実行制御部12の処理手順を
示すフローチャートである。
【図24】 アセンブラウィンドゥに対してワンステッ
プ実行を行った場合の一例である。
【図25】 ソースウィンドゥに対してワンステップ実
行を行った場合の一例を示す図である。
【図26】 資源操作処理部13の処理手順を示すフロ
ーチャートである。
【図27】 図19の状態で、ソースウィンドゥの変数
bが操作者により指定された状態を示す図である。
【図28】 変更例(B−1)に対応する表示例であ
る。
【図29】 変更例(B−2)に対応する表示例であ
る。
【符号の説明】
1 コンパイラ装置コア 2 ソフトウェアパイプライニング部 3 プログラム動作環境 4 メモリ 5 プロセッサ 6 デバッグ支援装置 7 ユーザインターフェイス 8 ウィンドゥ識別子付加部 9 割付情報変換部 10 ブレークポイント設定部 11 プログラム実行制御部 12 ワンステップ実行制御部 13 資源操作処理部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 高山 秀一 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 奥野 勝弘 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 瓶子 岳人 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 Fターム(参考) 5B042 GA02 HH08 HH25 MC12 NN10 5B081 CC32

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】 ループ処理を含むソースプログラムを翻
    訳する第1過程と、当該ループ処理についての複数イタ
    レーションが並列化されるように変換を施す第2過程と
    を経て得られるオブジェクトプログラムについてのデバ
    ッグ支援装置であって、 オブジェクトプログラムを構成する各命令に、複数イタ
    レーションのうち何れかを一意に示す識別子と、そのイ
    タレーションに属するソースコードを特定する行番号と
    を付加してなるデバッグリストを記憶する記憶手段と、 操作者からの操作に従って、記憶されているデバッグリ
    ストにおける1つの命令を特定する特定手段と、 特定された命令に付加された識別子は、ループ処理のど
    のイタレーションを示しているかを判定する判定手段
    と、 判定されたイタレーションの前後のイタレーションを示
    す識別子と、同じ命令に付加されている行番号をデバッ
    グリストから探索する探索手段と、 特定された命令に付加された行番号に対応するソースコ
    ードと、探索された行番号に対応するソースコードとを
    表示する第1表示手段とを備えることを特徴とするデバ
    ッグ支援装置。
  2. 【請求項2】 第1表示手段は、特定された命令に付加
    された行番号に対応するソースコードを、探索された行
    番号に対応するソースコードとは異なる態様で表示する
    ことを特徴とする請求項1記載のデバッグ支援装置。
  3. 【請求項3】 前記特定手段により特定される命令は、
    オブジェクトプログラムの動作を止めるべきブレークポ
    イントであることを特徴とする請求項1記載のデバッグ
    支援装置。
  4. 【請求項4】 前記ブレークポイントには、 イタレーションを何回経過した後に、オブジェクトプロ
    グラムの動作を止めるかを示すパスカウントが指定され
    ていることを特徴とする請求項3記載のデバッグ支援装
  5. 【請求項5】 ブレークポイントに設定された命令は、
    ユーザが閲覧を望む変数の有効範囲内にあり、 前記デバッグ支援装置は更に、 第1表示手段により表示されたソースコードと共に、ユ
    ーザが閲覧を望む変数の保持値を表示する第2表示手段
    を備えることを特徴とする請求項3記載のデバッグ支援
    装置。
  6. 【請求項6】 第1表示手段により表示されたソースコ
    ードに対する変数指定を受け付ける受付手段を備え、 第2表示手段は、 指定された変数の保持値を表示することを特徴とする請
    求項5記載のデバッグ支援装置。
  7. 【請求項7】 ブレークポイントに設定された命令は、
    ユーザが閲覧を望む変数の有効範囲外にあり、 前記デバッグ支援装置は更に、 表示手段により表示されたソースコードと共に、デバッ
    グ対象たる変数が有効範囲外である旨を表示する第2表
    示手段を備えることを特徴とする請求項3記載のデバッ
    グ支援装置。
  8. 【請求項8】 前記特定手段により特定される命令はユ
    ーザがワンステップ実行させようとした命令であること
    を特徴とする請求項1記載のデバッグ支援装置。
  9. 【請求項9】 ループ処理を含むソースプログラムを翻
    訳し、当該ループ処理についての複数イタレーションが
    並列化されるように変換を施すコンパイラ装置であっ
    て、 ソースプログラムにおけるループ処理内のボディを翻訳
    することにより命令群を得る翻訳手段と、 命令群を複製し、複数の命令群を得る複製手段と、 複数の命令群を構成するそれぞれの命令であって、並列
    実行されるものを1つのグループにグループ化し、各グ
    ループを境界で区切ってオブジェクトプログラムを得る
    グループ化手段と、 オブジェクトプログラムを構成する各命令に、複数イタ
    レーションのうち何れかを一意に示す識別子と、そのイ
    タレーションに属するソースコードを特定する行番号と
    を付加して、デバッグリストを作成する作成手段とを備
    えることを特徴とするコンパイラ装置。
  10. 【請求項10】 複数イタレーションの並列実行は、パ
    イプラインにより実現され、 前記コンパイラ装置は、 境界で区切られた各グループを、パイプラインのプロロ
    グ、カーネル、エピログのそれぞれに分類する分類手段
    を含むことを特徴とする請求項9記載のコンパイラ装
    置。
  11. 【請求項11】 パイプラインのプロログ及びエピログ
    に含まれる命令に対して付加手段により付加される識別
    子は、 最先のイタレーションを基準とした番号であり、 パイプラインのカーネルに含まれる命令に対して付加手
    段により付加される識別子は、 最後尾のイタレーションを基準とした番号であることを
    特徴とする請求項10記載のコンパイラ装置。
  12. 【請求項12】 各変数についての命令群毎の有効範囲
    を示す割付情報を生成する生成手段を備え、 割付情報に示されるイタレーション毎の有効範囲に属す
    る命令は、 各変数に割り付けられた資源をオペランドに使用してい
    ることを特徴とする請求項9記載のコンパイラ装置。
  13. 【請求項13】 ループ処理を含むソースプログラムを
    翻訳する第1過程と、当該ループ処理についての複数イ
    タレーションが並列化されるように変換を施す第2過程
    とを経て得られるオブジェクトプログラムについてのデ
    バッグ支援を、コンピュータに行わせるデバッグ支援プ
    ログラムであって、 オブジェクトプログラムを構成する各命令に、複数イタ
    レーションのうち何れかを一意に示す識別子と、そのイ
    タレーションに属するソースコードを特定する行番号と
    を付加してなるデバッグリストにおける1つの命令を操
    作者からの操作に従って、特定する特定ステップと、 特定された命令に付加された識別子は、ループ処理のど
    のイタレーションを示しているかを判定する判定ステッ
    プと、 判定されたイタレーションの前後のイタレーションを示
    す識別子と、同じ命令に付加されている行番号をデバッ
    グリストから探索する探索ステップと、 特定された命令に付加された行番号に対応するソースコ
    ードと、探索された行番号に対応するソースコードを表
    示する第1表示ステップとからなる手順をコンピュータ
    に行わせることを特徴とするデバッグ支援プログラム。
  14. 【請求項14】 第1表示ステップは、特定された命令
    に付加された行番号に対応するソースコードを、探索さ
    れた行番号に対応するソースコードとは異なる態様で表
    示することを特徴とする請求項13記載のデバッグ支援
    プログラム。
  15. 【請求項15】 前記特定ステップにより特定される命
    令は、オブジェクトプログラムの動作を止めるべきブレ
    ークポイントであることを特徴とする請求項13記載の
    デバッグ支援プログラム。
  16. 【請求項16】 前記ブレークポイントには、 イタレーションを何回経過した後に、オブジェクトプロ
    グラムの動作を止めるかを示すパスカウントが指定され
    ていることを特徴とする請求項15記載のデバッグ支援
    プログラム。
  17. 【請求項17】 ブレークポイントに設定された命令
    は、ユーザが閲覧を望む変数の有効範囲内にあり、 前記デバッグ支援プログラムは更に、 第1表示ステップにより表示されたソースコードと共
    に、ユーザが閲覧を望む変数の保持値を表示する第2表
    示ステップからなる手順をコンピュータに行わせること
    を特徴とする請求項15記載のデバッグ支援プログラ
    ム。
  18. 【請求項18】 第1表示ステップにより表示されたソ
    ースコードに対する変数指定を受け付ける受付ステップ
    を備え、 第2表示ステップは、 指定された変数の保持値を表示することを特徴とする請
    求項17記載のデバッグ支援プログラム。
  19. 【請求項19】 ブレークポイントに設定された命令
    は、ユーザが閲覧を望む変数の有効範囲外にあり、 前記デバッグ支援プログラムは更に、 表示ステップにより表示されたソースコードと共に、デ
    バッグ対象たる変数が有効範囲外である旨を表示する第
    2表示ステップからなる手順をコンピュータに行わせる
    ことを特徴とする請求項15記載のデバッグ支援プログ
    ラム。
  20. 【請求項20】 前記特定ステップにより特定される命
    令はユーザがワンステップ実行させようとした命令であ
    ることを特徴とする請求項13記載のデバッグ支援プロ
    グラム。
  21. 【請求項21】 ループ処理を含むソースプログラムを
    翻訳し、当該ループ処理についての複数イタレーション
    が並列化されるように変換を施すコンパイラプログラム
    であって、 ソースプログラムにおけるループ処理内のボディを翻訳
    することにより命令群を得る翻訳ステップと、 命令群を複製し、複数の命令群を得る複製ステップと、 複数の命令群を構成するそれぞれの命令であって、並列
    実行されるものを1つのグループにグループ化し、各グ
    ループを境界で区切ってオブジェクトプログラムを得る
    グループ化ステップと、 オブジェクトプログラムを構成する各命令に、複数イタ
    レーションのうち何れかを一意に示す識別子と、そのイ
    タレーションに属するソースコードを特定する行番号と
    を付加して、デバッグリストを作成する作成ステップと
    からなる手順をコンピュータに行わせることを特徴とす
    るコンパイラプログラム。
  22. 【請求項22】 複数イタレーションの並列実行は、パ
    イプラインにより実現され、 前記コンパイラプログラムは、 境界で区切られた各グループを、パイプラインのプロロ
    グ、カーネル、エピログのそれぞれに分類する分類ステ
    ップを含むことを特徴とする請求項21記載のコンパイ
    ラプログラム
  23. 【請求項23】 パイプラインのプロログ及びエピログ
    に含まれる命令に対して付加ステップにより付加される
    識別子は、 最先のイタレーションを基準とした番号であり、 パイプラインのカーネルに含まれる命令に対して付加ス
    テップにより付加される識別子は、 最後尾のイタレーションを基準とした番号であることを
    特徴とする請求項22記載のコンパイラプログラム。
  24. 【請求項24】 各変数についての命令群毎の有効範囲
    を示す割付情報を生成する生成ステップを備え、 割付情報に示されるイタレーション毎の有効範囲に属す
    る命令は、 各変数に割り付けられた資源をオペランドに使用してい
    ることを特徴とする請求項21記載のコンパイラプログ
    ラム。
  25. 【請求項25】 請求項13〜20の何れかに記載のデ
    バッグ支援プログラムを、記録したコンピュータ読み取
    り可能な記録媒体。
  26. 【請求項26】 請求項21〜24の何れかに記載のコ
    ンパイラプログラムを、記録したコンピュータ読み取り
    可能な記録媒体。
JP2001339954A 2001-11-05 2001-11-05 デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。 Expired - Fee Related JP4272371B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001339954A JP4272371B2 (ja) 2001-11-05 2001-11-05 デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。
US10/287,231 US7237229B2 (en) 2001-11-05 2002-11-04 Debugging aid parallel execution of a plurality of iterations with source lists display corresponding to each iteration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001339954A JP4272371B2 (ja) 2001-11-05 2001-11-05 デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。

Publications (2)

Publication Number Publication Date
JP2003140920A true JP2003140920A (ja) 2003-05-16
JP4272371B2 JP4272371B2 (ja) 2009-06-03

Family

ID=19154225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001339954A Expired - Fee Related JP4272371B2 (ja) 2001-11-05 2001-11-05 デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。

Country Status (2)

Country Link
US (1) US7237229B2 (ja)
JP (1) JP4272371B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006087922A1 (ja) * 2005-02-15 2006-08-24 Matsushita Electric Industrial Co., Ltd. デバッグ装置、デバッグ方法およびプログラム

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827017B2 (en) * 2002-12-17 2010-11-02 Cadence Design Systems, Inc. Method and system for implementing circuit simulators
JP2004303113A (ja) * 2003-04-01 2004-10-28 Hitachi Ltd 階層メモリ向け最適化処理を備えたコンパイラおよびコード生成方法
US7721267B2 (en) * 2005-05-16 2010-05-18 Texas Instruments Incorporated Efficient protocol for encoding software pipelined loop when PC trace is enabled
JP2006350686A (ja) * 2005-06-16 2006-12-28 Seiko Epson Corp 命令セット・シミュレータ生成装置及びシミュレータ生成方法
US9146832B2 (en) * 2005-10-14 2015-09-29 Oracle International Corporation Debugging functionality embedded in an application
KR100781358B1 (ko) * 2005-10-21 2007-11-30 삼성전자주식회사 데이터 처리 시스템 및 그의 데이터 처리방법
US8261270B2 (en) * 2006-06-20 2012-09-04 Google Inc. Systems and methods for generating reference results using a parallel-processing computer system
US8136104B2 (en) * 2006-06-20 2012-03-13 Google Inc. Systems and methods for determining compute kernels for an application in a parallel-processing computer system
US8108844B2 (en) * 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
US8136102B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for compiling an application for a parallel-processing computer system
US8024708B2 (en) * 2006-06-20 2011-09-20 Google Inc. Systems and methods for debugging an application running on a parallel-processing computer system
US7814486B2 (en) * 2006-06-20 2010-10-12 Google Inc. Multi-thread runtime system
US8375368B2 (en) * 2006-06-20 2013-02-12 Google Inc. Systems and methods for profiling an application running on a parallel-processing computer system
US8443348B2 (en) * 2006-06-20 2013-05-14 Google Inc. Application program interface of a parallel-processing computer system that supports multiple programming languages
US8381202B2 (en) * 2006-06-20 2013-02-19 Google Inc. Runtime system for executing an application in a parallel-processing computer system
US8146066B2 (en) 2006-06-20 2012-03-27 Google Inc. Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US7979494B1 (en) 2006-11-03 2011-07-12 Quest Software, Inc. Systems and methods for monitoring messaging systems
JP2008269529A (ja) * 2007-04-25 2008-11-06 Toshiba Corp デバッグ支援装置
FR2928753B1 (fr) * 2008-03-14 2012-09-21 Pierre Fiorini Architecture de traitement informatique accelere.
JP5118562B2 (ja) * 2008-06-20 2013-01-16 株式会社東芝 デバッグ支援装置
US8627304B2 (en) 2009-07-28 2014-01-07 International Business Machines Corporation Vectorization of program code
US20110271248A1 (en) * 2010-04-29 2011-11-03 Microsoft Corporation Converting controls into source code
US8645920B2 (en) 2010-12-10 2014-02-04 Microsoft Corporation Data parallelism aware debugging
US8990781B2 (en) * 2012-06-04 2015-03-24 International Business Machines Corporation Synchronization point visualization for modified program source code
US20160224258A1 (en) * 2015-02-02 2016-08-04 Microsoft Technology Licensing, Llc Generating computer programs for use with computers having processors with dedicated memory
US10970070B2 (en) * 2019-03-29 2021-04-06 Arm Limited Processing of iterative operation

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241635A (en) * 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
US5262976A (en) * 1989-11-13 1993-11-16 Harris Corporation Plural-bit recoding multiplier
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
US5175856A (en) * 1990-06-11 1992-12-29 Supercomputer Systems Limited Partnership Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
GB9027853D0 (en) * 1990-12-21 1991-02-13 Inmos Ltd Multiple instruction issue
ATE200357T1 (de) * 1991-07-08 2001-04-15 Seiko Epson Corp Risc-prozessor mit dehnbarer architektur
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
DE69228980T2 (de) * 1991-12-06 1999-12-02 Nat Semiconductor Corp Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
US5528177A (en) * 1994-09-16 1996-06-18 Research Foundation Of State University Of New York Complementary field-effect transistor logic circuits for wave pipelining
US5790825A (en) * 1995-11-08 1998-08-04 Apple Computer, Inc. Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions
JP3380390B2 (ja) * 1996-03-27 2003-02-24 富士通株式会社 デバッグ情報表示装置
US6721941B1 (en) * 1996-08-27 2004-04-13 Compuware Corporation Collection of timing and coverage data through a debugging interface
US6760903B1 (en) * 1996-08-27 2004-07-06 Compuware Corporation Coordinated application monitoring in a distributed computing environment
GB9621582D0 (en) * 1996-10-16 1996-12-04 Russell Tony A Handling of mushrooms
US5946493A (en) * 1997-03-28 1999-08-31 International Business Machines Corporation Method and system in a data processing system for association of source code instructions with an optimized listing of object code instructions
US5966538A (en) * 1997-10-31 1999-10-12 Hewlett-Packard Company Method and apparatus for automatically determining which compiler options should be used when compiling a computer program
US5960202A (en) * 1997-10-31 1999-09-28 Hewlett Packard Company Method and apparatus for automatically logging compiler options and/or overriding compiler options
US6161216A (en) * 1998-04-29 2000-12-12 Emc Corporation Source code debugging tool
US6701516B1 (en) * 1998-05-21 2004-03-02 Qifang Li P++ software
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6571385B1 (en) * 1999-03-22 2003-05-27 Intel Corporation Early exit transformations for software pipelining
US6820250B2 (en) * 1999-06-07 2004-11-16 Intel Corporation Mechanism for software pipelining loop nests
US6412106B1 (en) * 1999-06-16 2002-06-25 Intervoice Limited Partnership Graphical system and method for debugging computer programs
JP2001034504A (ja) * 1999-07-19 2001-02-09 Mitsubishi Electric Corp ソースレベルデバッガ
US6795963B1 (en) * 1999-11-12 2004-09-21 International Business Machines Corporation Method and system for optimizing systems with enhanced debugging information
US6754893B2 (en) * 1999-12-29 2004-06-22 Texas Instruments Incorporated Method for collapsing the prolog and epilog of software pipelined loops
US6892380B2 (en) * 1999-12-30 2005-05-10 Texas Instruments Incorporated Method for software pipelining of irregular conditional control loops
US6799266B1 (en) * 1999-12-30 2004-09-28 Texas Instruments Incorporated Methods and apparatus for reducing the size of code with an exposed pipeline by encoding NOP operations as instruction operands
US6732296B1 (en) * 2000-07-14 2004-05-04 Rockwell Automation Technologies, Inc. Object oriented scaleable test executive
US6912709B2 (en) * 2000-12-29 2005-06-28 Intel Corporation Mechanism to avoid explicit prologs in software pipelined do-while loops
US7178131B2 (en) * 2003-09-29 2007-02-13 International Business Machines Corporation Inspecting the runtime behavior of a program while minimizing perturbation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006087922A1 (ja) * 2005-02-15 2006-08-24 Matsushita Electric Industrial Co., Ltd. デバッグ装置、デバッグ方法およびプログラム

Also Published As

Publication number Publication date
US20030093771A1 (en) 2003-05-15
JP4272371B2 (ja) 2009-06-03
US7237229B2 (en) 2007-06-26

Similar Documents

Publication Publication Date Title
JP2003140920A (ja) デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。
EP0241946B1 (en) Information processing system
Burckhardt et al. It's alive! continuous feedback in UI programming
JP3612294B2 (ja) デバッグ方法およびデバッグ装置
JPH08272609A (ja) Vliwプログラムのオブジェクト・コード互換性提供方法
JPH11194957A (ja) デバッグ支援装置、並列実行情報生成装置、及びこれらに適用されるプログラムを記録した記録媒体
KR102590679B1 (ko) 벡터 요소들 내부의 비트 값들의 시험
US7302380B2 (en) Simulation apparatus, method and program
JP2007058731A (ja) プロセッサ、及び並列命令実行対応デバッグ装置
JP4675639B2 (ja) データ処理システム、アプリケーションプログラムのカスタマイズパラメータを表示する方法およびコンピュータプログラム製品
EP0079370A1 (en) DIGITAL COMPUTER THAT CAN EXECUTE INSTRUCTIONS IN THREE MULTIPLEXED PARTS OVER TIME.
JP4925514B2 (ja) 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体
JP2002055848A (ja) プログラム実行方式及び当該プログラム実行方式を格納した記憶媒体
Van Put et al. Lancet: A nifty code editing tool
JP3055139B2 (ja) マイクロプログラム制御方式
JPH11282693A (ja) Mcuシミュレーション装置、そのシミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002230062A (ja) 設計支援装置及び設計支援方法並びにシステム設計支援装置
JP2004206699A (ja) シミュレーション装置、シミュレーション方法及びプログラム
JP3119939B2 (ja) アプリケーションプログラムを実行するシステム
CN115421822A (zh) 一种命令运行方法、装置与计算设备
Yongjie et al. Design and Implementation of the ROB Algorithm Simulator
JPH09160806A (ja) デバッグ支援方法および装置
JP2022023631A (ja) アセンブリ命令変換プログラム、アセンブリ命令変換方法、及び情報処理装置
JP2000020294A (ja) プログラム開発支援装置、及びコンピュータ読み取り可能な記録媒体
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080929

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090227

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4272371

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

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

LAPS Cancellation because of no payment of annual fees