図面 (/)

技術 データ処理装置、プロセッサユニットおよびデバッグユニット

出願人 株式会社ガイア・システム・ソリューション
発明者 吉村光正佐藤武
出願日 2003年2月26日 (17年10ヶ月経過) 出願番号 2003-048738
公開日 2003年11月14日 (17年1ヶ月経過) 公開番号 2003-323315
状態 特許登録済
技術分野 マイクロコンピュータ 先行制御 デジタル計算機の試験診断 デバッグ/監視
主要キーワード 単一仕様 専用LSI マイクロプログラムコード 専用処理ユニット オプションモジュール 外部指定 命令コードデータ 搭載システム
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2003年11月14日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (7)

課題

デバッグユニットオプションとして搭載するのに適した組み込み型プロセッサを提供する。

解決手段

システムLSIであるVUPU2を構成するPU5に、次期命令ポインタデータφaを出力する接続ポイント31と、次期命令コードデータφcを出力する接続ポイント32と、次命令実行開始のタイミング信号φtを出力する接続ポイント33を予め設け、オプションユニットとして提供されるデバックユニット7がそれらの信号φa、φcおよびφtを利用可能にする。これにより、デバッグユニット7のハードウェア負担を減らし、低コストでオプションユニットを装着可能な埋め込み型プロセッサを提供できる。

概要

背景

規模システムLSIが可能となり、システム全体を単一の半導体チップ上に構築することが可能となりつつある。これに伴って、システムを構成するのに必要不可欠であるプロセッサプロセッサユニット)と、目的に応じた性能を最大限に引き出すために専用LSIとして開発されてきた機能とを単一の半導体チップ上に組み込んで1つにしたシステムLSIの開発が行われれている。この大規模システムLSI向けに開発されているプロセッサは、組み込み用途プロセッサ(エンベッデド・プロセッサ)と称されている。

概要

デバッグユニットオプションとして搭載するのに適した組み込み型プロセッサを提供する。

システムLSIであるVUPU2を構成するPU5に、次期命令ポインタデータφaを出力する接続ポイント31と、次期命令コードデータφcを出力する接続ポイント32と、次命令実行開始のタイミング信号φtを出力する接続ポイント33を予め設け、オプションユニットとして提供されるデバックユニット7がそれらの信号φa、φcおよびφtを利用可能にする。これにより、デバッグユニット7のハードウェア負担を減らし、低コストでオプションユニットを装着可能な埋め込み型プロセッサを提供できる。

目的

デバッグユニットをオプションモジュールとして提供するとなると、デバッグユニットの制御も組み込み型プロセッサとは別に行われることが望ましい。これによってデバッグ信頼性も向上する。たとえば、デバッグユニットを操作するデバッガーソフトをパーソナルコンピュータ上で走行させることができる。従来の出来上がり品CPUであれば、デバッガがあることが前提ソフトウェアが作成されるのに対し、組み込み型プロセッサでは、デバッガを設けるか否かはユーザの仕様となり、デバッガがあることを前提としたソフトウェアの開発は無駄で冗長なものになる可能性があるからである。また、デバッガがないシステムでデバッガがあることを前提としたソフトウェアを稼動させることは、システムエラー要因ともなりかねず、信頼性が低下する可能性もある。

しかしながら、本発明においては、デバッグユニットをオプションとして搭載することが可能なシステムLSIにおいて、プロセッサユニットと重複するようなハードウェアをデバッグユニットから省くことができるシステムを提供することを目的としている。それにより、ハードウェアおよびソフトウェアの設計・開発あるいはメンテナンスにおける二重投資を防止すると共に、コンパクトで低コストなシステムLSIを提供可能とすることを本発明の目的としている。

効果

実績

技術文献被引用数
1件
牽制数
1件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

命令ポインタデータに基づきフェッチアドレスを出力し、得られたデータから命令コードデータを生成可能なフェッチユニットと、前記命令コードデータに基づく処理を実行可能な実行ユニットとを備えたプロセッサユニットを有するデータ処理装置であって、前記プロセッサユニットは、さらに、次に前記実行ユニットで実行される次期命令コードデータの次期命令ポインタデータを当該プロセッサユニットから外部に出力する第1の出力手段と、前記次期命令コードデータを当該プロセッサユニットから外部に出力する第2の出力手段とを備えている、データ処理装置。

請求項2

請求項1において、さらに、ブレーク条件成立するとプロセッサユニットに対して一時停止を要求するブレーク信号を供給するブレーク信号出力手段を有するデバッグユニットを有し、このデバッグユニットは、さらに、前記ブレーク条件として設定されているターゲットの命令ポインタデータと比較する前記次期命令ポインタデータを受け入れる第1の入力手段と、前記ブレーク条件として設定されているターゲットの命令コードデータと比較する前記次期命令コードデータを受け入れる第2の入力手段とを備えているデータ処理装置。

請求項3

請求項2において、前記プロセッサユニットは、さらに、前記次期命令コードデータに基づく処理を開始する開始タイミングを当該プロセッサユニットから外部に出力する第3の出力手段を備えており、前記デバッグユニットは、さらに、前記開始タイミングを受け入れる第3の入力手段を備えており、さらに、前記ブレーク信号出力手段は、少なくとも前記ターゲットの命令ポインタデータおよび前記ターゲットの命令コードデータのいずれかと、前記次期命令ポインタデータおよび前記次期命令コードデータのいずれかが一致し、前記次期命令コードデータが実行開始されるときに前記ブレーク信号を出力するデータ処理装置。

請求項4

請求項2において、前記プロセッサユニットは、さらに、前記実行ユニットにおける現在の命令コードデータに基づく処理を完了した完了タイミングを当該プロセッサユニットから外部に出力する第3の出力手段を備えており、前記デバッグユニットは、さらに、前記完了タイミングを受け入れる第3の入力手段を備えており、さらに、前記ブレーク信号出力手段は、少なくとも前記ターゲットの命令ポインタデータおよび前記ターゲットの命令コードデータのいずれかと、前記次期命令ポインタデータおよび前記次期命令コードデータのいずれかが一致し、前記次期命令コードデータが実行開始されるときに前記ブレーク信号を出力するデータ処理装置。

請求項5

請求項1において、さらに、専用処理に適した専用回路を備えた専用処理ユニットを有し、前記プロセッサユニットのフェッチユニットは、前記命令コードデータとして前記プロセッサユニットにおける処理を規定する汎用命令コードデータを前記実行ユニットに供給し、前記専用処理ユニットにおける処理を規定する専用命令コードデータを前記専用処理ユニットに供給するデータ処理装置。

請求項6

命令ポインタデータに基づきフェッチアドレスを出力し、得られたデータから命令コードデータを生成可能なフェッチユニットと、前記命令コードデータに基づく処理を実行可能な実行ユニットとを有するプロセッサユニットであって、次に前記実行ユニットで実行される次期命令コードデータの次期命令ポインタデータを当該プロセッサユニットから外部に出力する第1の出力手段と、前記次期命令コードデータを当該プロセッサユニットから外部に出力する第2の出力手段とを有するプロセッサユニット。

請求項7

請求項6において、さらに、前記次期命令コードデータに基づく処理を開始するタイミングを当該プロセッサユニットから外部に出力する第3の出力手段を有するプロセッサユニット。

請求項8

請求項6において、さらに、前記実行ユニットにおける現在の命令コードデータに基づく処理を完了したタイミングを当該プロセッサユニットから外部に出力する第3の出力手段を有するプロセッサユニット。

請求項9

ブレーク条件が成立するとプロセッサユニットに対して一時停止を要求するブレーク信号を供給するブレーク信号出力手段を有するデバッグユニットであって、前記ブレーク条件として設定されているターゲットの命令ポインタデータと比較する次期命令ポインタデータを当該デバッグユニットの外部から受け入れる第1の入力手段と、前記ブレーク条件として設定されているターゲットの命令コードデータと比較する次期命令コードデータを当該デバッグユニットの外部から受け入れる第2の入力手段とを有するデバッグユニット。

請求項10

請求項9において、前記次期命令コードデータが実行開始されるタイミングを当該デバッグユニットの外部から受け入れる第3の入力手段を有し、前記ブレーク信号出力手段は、少なくとも前記ターゲットの命令ポインタデータおよび前記ターゲットの命令コードデータのいずれかと、前記次期命令ポインタデータおよび前記次期命令コードデータのいずれかが一致し、前記次期命令コードデータが実行開始されるときに前記ブレーク信号を出力するデバッグユニット。

請求項11

ブレーク条件として設定されているターゲットの命令ポインタデータと比較する次期命令ポインタデータと、前記ブレーク条件として設定されているターゲットの命令コードデータと比較する次期命令コードデータとの少なくともいずれかを当該デバッグユニットの外部から受け入れる工程と、前記ブレーク条件が成立するとプロセッサユニットに対して一時停止を要求するブレーク信号を供給するブレーク要求工程とを有するデバッグユニットの制御方法

請求項12

請求項11において、前記次期命令コードデータが実行開始されるタイミングを当該デバッグユニットの外部から受け入れる工程を有し、前記ブレーク要求工程では、少なくとも前記ターゲットの命令ポインタデータおよび前記ターゲットの命令コードデータのいずれかと、前記次期命令ポインタデータおよび前記次期命令コードデータのいずれかが一致し、前記次期命令コードデータが実行開始されるときに前記ブレーク信号を出力するデバッグユニットの制御方法。

技術分野

0001

本発明は、LSIなどのデータ処理装置およびそれに組み込まれるプロセッサに関するものである。

背景技術

0002

規模システムLSIが可能となり、システム全体を単一の半導体チップ上に構築することが可能となりつつある。これに伴って、システムを構成するのに必要不可欠であるプロセッサ(プロセッサユニット)と、目的に応じた性能を最大限に引き出すために専用LSIとして開発されてきた機能とを単一の半導体チップ上に組み込んで1つにしたシステムLSIの開発が行われれている。この大規模システムLSI向けに開発されているプロセッサは、組み込み用途プロセッサ(エンベッデド・プロセッサ)と称されている。

発明が解決しようとする課題

0003

組み込み用途のプロセッサは、従来の単一チップでCPUを構成するのとは主旨が根本的に異なるものであるが、現状で提供されている組み込み用途のプロセッサは単一チップのCPU用のプロセッサに対して明確に組み込み用途であることが認識されているとは云い難い。

0004

エンベッデド・プロセッサの大きな相違点は、オプション機能豊富である必要があることである。すなわち、従来の単一チップで構成したCPU(または出来上がり品CPU)の場合は、広範囲のユーザのニーズに対応するために、必要とされるであろう機能を予めフル実装させている。これに対し、システムLSIに組み込まれるエンベッデド・プロセッサでは、その都度必要とされる機能のみが要求される。したがって、従来、1つのプロセッサとして提供されていた機能も、オプションモジュール化され、プロセッサユニットと、モジュール化された機能とが1つのシステムLSIに搭載されて所望の機能を備えたプロセッサがシステムLSIの内部に構築されることになる。

0005

このような背景にあっては、従来のCPUの場合には内蔵されるのが一般的であったデバッグモジュールデバッグ機能)も、組み込み用途のプロセッサユニットではオプションとしてシステムLSIに組み込み可能な別ユニットとして提供されることが望ましい。デバッグユニットとは、パーソナルコンピュータなどからプロセッサをブレーク一時停止)させるためのターゲットとなる命令ポインタデータあるいは命令コードデータを設定し、プロセッサがプログラムを実行中にブレーク条件である命令ポインタデータあるいは命令コードデータを発見した場合にプロセッサユニットの処理を一旦停止させるハードウェアである。そして、プロセッサの内部レジスタの内容を観測したり、内部レジスタに特定の値を注入したりして、デバッグを行なう。

0006

デバッグユニットをオプションモジュールとして提供するとなると、デバッグユニットの制御も組み込み型プロセッサとは別に行われることが望ましい。これによってデバッグの信頼性も向上する。たとえば、デバッグユニットを操作するデバッガーソフトをパーソナルコンピュータ上で走行させることができる。従来の出来上がり品CPUであれば、デバッガがあることが前提ソフトウェアが作成されるのに対し、組み込み型プロセッサでは、デバッガを設けるか否かはユーザの仕様となり、デバッガがあることを前提としたソフトウェアの開発は無駄で冗長なものになる可能性があるからである。また、デバッガがないシステムでデバッガがあることを前提としたソフトウェアを稼動させることは、システムエラー要因ともなりかねず、信頼性が低下する可能性もある。

0007

一方、デバッガユニットをプロセッサユニットと独立して稼動させようとすると、ブレーク条件である命令バス(命令ポインタおよび命令コード)の内容に応じてプロセッサユニットをブレークさせるためには、命令ポインタおよび命令コードを生成するフェッチおよびデコード機能をプロセッサユニットと同様にデバッガユニットにも設けておく必要がある。このため、システムLSIにデバッグ機能を持たせようとすると、複雑な構成で、回路規模も比較的大きなデバッグユニットを搭載する必要がある。そして、システムLSI全体としてみると、フェッチおよびデコードするためのハードウェアが二重に保有されたかたちになってしまう。特に、命令長が1語ないし2語といった不定長(または可変長)の命令セットに対応するプロセッサユニットを搭載している場合は、フェッチおよびデコードするために以下の機能が要求されるので、二重に保有されるハードウェア規模も大きくなる。

0008

すなわち、命令コードが出力されるデータバスバス幅が命令長と一致していない場合は、次期命令コードデータがデータ中のどこにいるかが判明せず、また、フェッチしたデータに跨って次期命令コードデータが存在する可能性がある。したがって、ブレークさせる命令ポインタデータと、命令コードを含むデータのフェッチに使用した命令ポインタとが一致するか否かを判断するためには、個々の命令長を監視して次期命令ポインタの位置を決定する機能が必要になる。また、データバス幅が命令長と一致していないと、分岐が発生したときに、分岐先アドレスフェッチアドレスと常に一致するとは限らないので、それを調整して次期命令ポインタの位置を決定する機能が必要になる。さらに、データバス幅が命令長と一致していないと、上述したように、フェッチされたデータの中から、次期命令コードデータを選択して整列させたり、前後のデータに跨ぐ次期命令コードデータをアライメントする機能が必要になる。

0009

このような機能にかぎらず、次にプロセッサの実行ユニットで実行される次期命令コードを適切にデバッグユニットで判断するには、以下のような機能も必要になる。命令コードの中に、実行に複数の実行サイクルが費やされるマルチサイクル型の命令コードが含まれていると、実行ユニットで次期命令コードが実行されるタイミングが不明となる。このため、命令フェッチから、その命令が実行されるまでのタイミング検出を行なうための機能が必要になる。このマルチサイクル命令処理に対応できるようにするとハードウェアが非常に大規模になる。

0010

さらに、分岐が発生すると、それ以前にフェッチされた命令コードであっても実行ユニットが実行していない命令コードは実際には実行されない命令コードであり次期命令コードとはならない。実行されない命令コードに対してデバッグ用のブレーク信号を出力することは無意味なので、分岐が発生するか否かを判別する機能も必要になる。

0011

これらの機能をカバーするハードウェアは大規模になるので、システムLSIの小型化および低価格化を考慮すると省きたいハードウェアである。しかも、これらの機能は基本的にプロセッサユニットのフェッチ機能としてプロセッサユニットのハードウェアによりサポートされている機能であり、ハードウェアが重複していることになる。

0012

その一方で、デバッグ機能を備えた埋め込み用途のプロセッサと、デバッグ機能を備えていない埋め込み用途のプロセッサの両方を開発することは、さらに重複する部分の大きな投資となる。また、プロセッサの機能を変更したり、向上するときに、デバッグ機能のあるものと、デバッグ機能のないものの両方を同時にバージョンアップすることは大きな負荷であり、大きな重複投資となる。また、デバッグ機能付きのプロセッサ用のソフトウェアと、デバッグ機能なしのプロセッサ用のソフトウェアを2重に開発およびメンテナンスするための投資も必要になる。したがって、これらのディリットと比較し、デバッグユニットとプロセッサユニットとが多少重複するハードウェアを備えている程度の重複するハードウェアは容認すべきことであると判断することも可能である。

0013

しかしながら、本発明においては、デバッグユニットをオプションとして搭載することが可能なシステムLSIにおいて、プロセッサユニットと重複するようなハードウェアをデバッグユニットから省くことができるシステムを提供することを目的としている。それにより、ハードウェアおよびソフトウェアの設計・開発あるいはメンテナンスにおける二重投資を防止すると共に、コンパクト低コストなシステムLSIを提供可能とすることを本発明の目的としている。

課題を解決するための手段

0014

本発明においては、組み込み型のプロセッサユニットとして、次期命令ポインタデータと、次期命令コードデータとをプロセッサユニットの外部に出力するインターフェイスを備えたプロセッサユニットを提供する。このプロセッサユニットであれば、システムLSIにデバッグユニットと共に組み込んだときに、デバッグユニットは、ブレーク条件をプロセッサユニットから提供される次期命令ポインタデータおよび/または次期命令コードデータにより判断することが可能となり、重複するハードウェアを省くことができる。その一方で、プロセッサユニット側は、デバッグユニットの有無に関わらず、次期命令ポインタデータと次期命令コードデータを出力するだけなので、ハードウェアおよびソフトウェアともデバッグユニットの有無に左右されずに開発・設計およびメンテナンスを行うことができる。

0015

すなわち、本発明においては、命令ポインタデータに基づきフェッチアドレスを出力し、得られたデータから命令コードデータを生成可能なフェッチユニットと、命令コードデータに基づく処理を実行可能な実行ユニットとを有するプロセッサユニットであって、次に実行ユニットで実行される次期命令コードデータの次期命令ポインタデータを当該プロセッサユニットから外部に出力する第1の出力手段と、次期命令コードデータを当該プロセッサユニットから外部に出力する第2の出力手段とを有するプロセッサユニットを提供する。このプロセッサユニットであれば、ブレーク条件が成立するとプロセッサユニットに対して一時停止を要求するブレーク信号を供給するブレーク信号出力手段を有するデバッグユニットであって、ブレーク条件として設定されているターゲットの命令ポインタデータと比較する次期命令ポインタデータを当該デバッグユニットの外部から受け入れる第1の入力手段と、ブレーク条件として設定されているターゲットの命令コードデータと比較する次期命令コードデータを当該デバッグユニットの外部から受け入れる第2の入力手段とを有するデバッグユニットと組み合わせて、デバッグユニットを動作させることができる。

0016

本発明においては、デバッグユニットの制御方法も提供される。この制御方法は、ブレーク条件が成立するとプロセッサユニットに対して一時停止を要求するブレーク信号を供給するブレーク要求工程を有しており、さらに、ブレーク条件として設定されているターゲットの命令ポインタデータと比較する次期命令ポインタデータと、ブレーク条件として設定されているターゲットの命令コードデータと比較する次期命令コードデータとの少なくともいずれかを当該デバッグユニットの外部から受け入れる工程を有する。したがって、デバッグユニットには、プロセッサユニットのフェッチユニットに相当するようなハードウェアは不要となる。

0017

このため、本発明のプロセッサユニットとデバッグユニットとを有するデータ処理装置では、フェッチユニットに相当するハードウェアを重複させずにデバッグ機能を搭載できる。また、デバッグユニットはオプションユニットなので、このデバッグユニットを搭載しなくても、本発明のプロセッサユニットを埋め込みプロセッサとしてデータ処理装置、すなわちシステムLSIを形成することができる。

0018

プログラムにマルチサイクル型の命令コードが含まれている場合は、次期命令コードデータの実行時期を判断する必要がある。また、分岐の発生に伴う無駄なブレーク信号の発信を防止するためには次期命令コードデータの実行直前でブレーク信号の要否を判断することが望ましい。したがって、次期命令コードデータに基づく処理を開始するタイミングを当該プロセッサユニットから外部に出力する第3の出力手段を有するプロセッサユニットを提供することがさらに好ましい。この次期命令コードデータに基づく処理を開始するタイミングは、実行ユニットにおける現在の命令コードデータに基づく処理を完了したタイミングであり、このタイミングを当該プロセッサユニットから外部に出力しても良い。これに対応して、デバッグユニットにおいても、次期命令コードデータが実行開始されるタイミングを当該デバッグユニットの外部から受け入れる第3の入力手段を設け、ブレーク信号出力手段では、少なくともターゲットの命令ポインタデータおよびターゲットの命令コードデータのいずれかと、次期命令ポインタデータおよび次期命令コードデータのいずれかが一致し、次期命令コードデータが実行開始されるときにブレーク信号を出力すればよい。デバッグユニットの制御方法においては、次期命令コードデータが実行開始されるタイミングを当該デバッグユニットの外部から受け入れる工程を設け、ブレーク要求工程では、少なくともターゲットの命令ポインタデータおよびターゲットの命令コードデータのいずれかと、次期命令ポインタデータおよび次期命令コードデータのいずれかが一致し、次期命令コードデータが実行開始されるときにブレーク信号を出力する。

0019

本願の出願人は、専用処理に適した専用回路を備えた専用処理ユニットを有し、プロセッサユニットのフェッチユニットは、命令コードデータとしてプロセッサユニットにおける処理を規定する汎用命令コードデータを実行ユニットに供給し、専用処理ユニットにおける処理を規定する専用命令コードデータを専用処理ユニットに供給するデータ処理装置、すなわちシステムLSIを提案しているが、本発明のプロセッサユニットを、このシステムLSIの埋め込みプロセッサとして用いることにより、低コストでデバッグユニットを追加することが可能となる。

発明を実施するための最良の形態

0020

以下に図面を参照して本発明をさらに詳しく説明する。図1に本発明に係るプロセッサユニットを有するデータ処理装置、すなわちシステムLSI2が搭載されたシステムボード1の概略を示してある。システムボード1に搭載されたシステムLSI2は、VUPUと称される本願の出願人が提案しているアーキテクチャによるLSI(以降ではVUPU)であり、プロセッサユニットあるいは汎用データ処理ユニット(以降ではPU)5と、特定の処理に特化した専用データ処理ユニット(以降ではVU)6とを搭載している。さらに、本例のVUPU2は、PU5のデバッグを行なうデバッグユニット(以降ではDU)7と、DU7に対して信号を入出力するためのユーザインターフェイス9を備えている。ユーザインターフェイス9としては、JTAGバウンダリースキャンテストインターフェイスなどが採用でき、システムボード1に設けられたデバッグインターフェイス3を介してパーソナルコンピュータ4で稼動するデバッガソフトウェア10によりDU7を制御することができる。

0021

図2に、VUPU2の概略をブロック図により示してある。VUPU2は、PU5を組み込み型プロセッサとして、PU5を介してVU6をプログラムにより制御するLSIである。PU5は、汎用的な構成のプロセッサユニットであり、実行形式プログラムコードマイクロプログラムコード)11aを内蔵したコードRAM11と、このコードRAM11から命令をフェッチし、PU5の実行ユニット(EU)13とVU6とにデコードされた制御信号を提供するフェッチユニット(FU)12を備えている。さらに、PU5は、汎用レジスタフラグレジスタおよび演算ユニットALU)などから構成される汎用性の高い実行ユニット13を備えており、データRAM14を一時的な記録領域としてデータを入出力しながら汎用処理を実行する。

0022

フェッチユニット12は、前の命令あるいはステートレジスタ15の状態、割込み信号などによって決まる命令ポインタからフェッチアドレスを算出して出力し、コードRAM11の所定のアドレスから命令コードを含むデータをフェッチする。さらに、フェッチされたデータをデコードして、コードRAM11から得られたデータから専用命令(VU命令)あるいは汎用命令(一般命令、PU命令)を生成し、専用命令を制御信号(デコーデド・コントロールシグナル:Decoded Control Signal)φvとしてVU6に供給し、デコードした汎用命令を制御信号(デコーデド・コントロールシグナル:Decoded Control Signal)φpとして実行ユニット13に供給する。実行ユニット13からは実行状態を示すステータス信号(Exec unit Status Signal)φsが返され、実行ユニット13およびVU6の実行結果がステートレジスタ(状態レジスタ)15に反映される。たとえば、実行ユニット13で分岐条件満足されると、フェッチユニット12ではそれにしたがって分岐先の命令コードをフェッチする。

0023

このVUPU2においては、フェッチユニット12に対して、PU2の実行ユニット13とVU6とが同じ階層の処理ユニットである。したがって、フェッチユニット12を実行ユニット13とVU6に共通した命令発行ユニットとし、実行ユニット13をVU6に対比されるPUとしたアーキテクチャであると捉えることも可能である。

0024

VU命令φvを実行するVU6は、自己のユニット宛てのVU命令φvを選択してデコードするユニット21と、予め特定のデータ処理を行なうように制御信号をハードウェア的に出力するシーケンサFSM(Finite State Machine)、ファイイトステートマシン)22と、このシーケンサ22からの制御信号に従って特定のデータ処理を行なうようにデザインされたデータパス部23を備えている。また、VU6は、PU5からアクセス可能レジスタ24を備えており、データパス部23の処理に必要なデータをインターフェイスレジスタ24を介してPU5で制御したり、VU6の内部状態をレジスタ24を介してPU5で参照できるようになっている。さらに、データパス部23で処理された結果はPU5に供給され、PU5ではその結果を利用した処理が行なわれる。

0025

コードRAM11には、汎用命令(PU命令)および専用命令(VU命令)を含んだプログラム11aが記憶されており、フェッチユニット12により、VU6には、自己を起動するVU命令を含む制御信号φvが供給され、VU命令デコーダ21がそれを選択して動作する。一方、実行ユニット13には、PU命令がデコードされた制御信号φpだけが供給される。VU命令をデコードした制御信号φvは実行ユニット13には発行されず、その代わりに、実行を伴わないnop命令を示す制御信号が発行され、実行ユニット13ではその処理をスキップする。したがって、実行ユニット13では解釈できないVU命令は実行ユニット13には提供されず、PU5の構成は変えることなく、新たな、あるいは様々なVU命令を含んだプログラム11aをVUPU2で実行することができる。なお、本明細書の幾つかの記載においては、PU命令とそれをデコードした制御信号φpとが同じ意味で用いられ、VU命令とそれをデコードした制御信号φvとが同じ意味で用いられている。

0026

したがって、VUPU2においては、VU6がアプリケーションなどによって変更されるものであり、VU6に指示を出す専用命令(VU命令)もアプリケーションによって変わることが多い。一方、PU5は、nop命令が出力されることにより、VU用に特化した命令に対処する必要がなく、基本命令あるいは汎用命令であるPU命令を解釈して実行できる機能があればよい。したがって、PU5は、汎用型の埋め込みプロセッサであると共に、VU6が稼動する汎用性のあるプラットフォームとしての機能を提供する。そして、汎用性のあるPU5と、専用回路を備えたVU6とを組み合わせることにより、PU5を介してプログラムによりVU6も合わせて制御することができる。このため、VUPUアーキテクチャにより、リアルタイム応答性犠牲にすることなく、設計および開発期間を短縮でき、さらに、その後の変更や修正にも柔軟に対処できるシステムLSIを提供できる。

0027

したがって、PU5の汎用性を維持しながら、多くのオプショナルな機能を搭載できることがVUPU2として重要であり、本例のVUPU2では、オプショナルなユニットとしてデバッグユニット(DU)7が搭載されている。図3にPU5とDU7との間で交換される信号を示してある。本例のPU5は、フェッチユニット12でフェッチおよびデコードされて次に実行ユニット13に供給される次期命令コードデータφcを外部出力する配線あるいは接続点(第2の出力手段)32と、その次期命令コードデータφcを示す次期命令ポインタデータφaを外部出力する配線あるいは接続点(第1の出力手段)31を備えている。また、PU5は、次期命令コードデータφcに基づく処理を実行ユニット13で実行開始するタイミングを示す信号φtを外部出力する配線あるいは接続点(第3の出力手段)33を備えている。この次命令の実行を開始するタイミングを示す信号φtは、実行ユニット13において命令完了により次の命令をラッチするタイミングを示す信号である。

0028

さらに、PU5は、DU7からブレーク信号φbを受信する配線あるいは接続点34を備えており、DU7からブレーク信号φbを受信すると実行ユニット13における命令コードデータに基づく処理を停止する。

0029

接続点31、32、33および34を備えたデバッグ用のインターフェイス8に対応し、DU7には、次期命令ポイントデータφaを受信する接続点(第1の入力手段)61と、次期命令コードデータφcを受信する接続点(第2の入力手段)62と、実行開始のタイミング信号φtを受信する接続点(第3の入力手段)63と、ブレーク信号φbを出力する接続点64とを備えたインターフェイス60が設けられている。DU7のブレーク条件一致検出機能50は、ユーザインターフェイス9を介して設定されたターゲットの命令ポインタデータφtaが受信した次期命令ポイントデータφaと一致し、設定されたターゲットの命令コードデータφtcが受信した次期命令コードデータφcと一致し、さらに、タイミング信号φtから、その次期命令コードデータφcが実行開始される状態になるとブレーク信号φbを出力する。

0030

図4に、これらの信号に関するPU5およびDU7のさらに詳しい構成を示してある。PU5のフェッチユニット12は、フェッチおよびデコードされた命令と、実行ユニット13からのステータス信号φsに基づき、次の命令コードを得るためのフェッチアドレスを生成する次命令ポインタ発生部35を備えている。この次命令ポインタ発生部35は、命令ポインタデータを更新して、それからフェッチアドレスを計算する機能に加え、フェッチおよびデコードされた命令が分岐命令のときは、実行ユニット13の結果から分岐条件が成立すれば命令ポインタデータを分岐先のポインタ移行する機能を備えている。この発生部35で生成されたフェッチアドレスはレジスタ36に格納されて、アドレスバス71を介してコードRAM11に供給される。そのフェッチアドレスに対応したデータがデータバス72を介してフェッチデータφdとして得られる。データバス72は、2語長のバス幅を備えているので、得られるデータは常に2語長である。したがって、命令コードが2語長のみではなく、1語長あるいは3語長などの不定長または可変長であると、フェッチデータφdから適切な位置にある命令コードデータφcを切り出したり、複数のフェッチデータφdに跨った命令コードデータφcを生成する必要がある。したがって、データアライメント部37は、フェッチデータφdをデコードして命令コードデータφcを生成する作業を行う。そして、命令コードデータφcが生成されるタイミングになるとリードタイミング信号φrが出力されて、次に実行ユニット13に供給される次期命令コードデータがレジスタ39にラッチされる。同時に、その次期命令コードデータφcをフェッチするために発生部35から出力されている次期命令ポインタデータφaがレジスタ38にラッチされる。

0031

これらの次期命令ポインタデータφaおよび次期命令コードデータφcは、実行ユニット13に供給される。実行ユニット13では、内部で実行中の現命令に伴う処理が終了して次命令実行開始タイミング信号φtが出力されると、次期命令ポインタデータφaが現命令ポインタのレジスタ41にラッチされ、次期命令コードデータφcが現命令コードのレジスタ42にラッチされる。これにより、次期命令コードφcに基づく処理が実行ユニット13で開始される。実行ユニット13は、デバッグ機能としてブレーク信号φbを解釈する機能44を備えており、ブレーク信号φbを受信するとデバッグ用のタイミング信号φdtを出力する。セレクタ43は、通常のタイミング信号φtと、デバッグ用のタイミング信号φdtとを選択し、デバッグが開始されるとデバッグ用のタイミング信号φdtで次期命令ポインタφaおよび次期命令コードφcをラッチし、デバッグのタイミングで実行ユニット13を制御可能とする。

0032

本例のPU5は、これらのレジスタ38および39にラッチされた次期命令ポインタデータφaおよび次期命令コードデータφcとを外部出力する接続ポイント31および32が予め設けられている。また、通常の次命令実行タイミング信号φtを外部出力する接続ポイント33が予め設けられている。これらの外部出力31、32および33には、単にデータφa、φcおよびφtが出力されているだけであり、これらのデータが外部で利用されてもされなくても、そのこと自体ではPU5の制御に影響を及ぼさない構成となっている。ただし、図4に示したVUPU2では、これらのデータφa、φcおよびφtに基づいてDU7からブレーク信号φbがフィードバックされるので、デバッグモードに移行することができる。すなわち、本例では、PU5とDU7とが機能を協調することにより、フェッチおよびデコードするハードウェアを重複させたり、タイミングを監視する手間やハードウェアを省いてデバッグを行うことができる構成となっている。

0033

DU7は、ユーザインターフェイス9を介してパーソナルコンピュータ4からブレーク条件を設定可能な条件設定部51と、その条件とPU5から得られたデータを比較してブレーク信号φbを出力するブレーク検出部55とを備えている。条件設定部51は、ブレークのターゲットとなるブレークアドレス条件φtaがセットされるレジスタ52と、ブレークデータ条件φtcがセットされるレジスタ53とを備えている。ブレーク検出部55は、ブレークアドレス条件φtaと、接続ポイント61を介して得られたPU5の次期命令ポインタデータφaとを比較するコンパレータ56と、ブレークデータ条件φtcと、接続ポイント62を介して得られたPU5の次期命令コードデータφcとを比較するコンパレータ57と、これらの出力結果と接続ポイント63を介して得られたタイミングデータφtとの論理和演算してブレーク信号φbを出力するアンドゲート58とを備えている。ブレーク信号φbはレジスタ59を経由してPU5に供給される。

0034

このように、本例のDU7は、ブレーク条件となるデータを保存するレジスタ群51と、それらのデータとプロセッサ側から得られたデータとを比較してブレーク信号φbを出力する検出部55とを備えた極めて簡易な構成でPU5に対して所望のタイミングでブレーク信号φbを供給することができる。一方、PU5でも、特にDU7を意識した制御を行う必要はなく、所望のブレーク条件が整うとDU7からブレーク信号φbが供給されてデバッグモードに移行する。

0035

図5にデバッグに関するPU側の処理とDU側の処理をフローチャートを用いて示してある。まず、PU5では、ステップ81において、フェッチユニット12で実行されるフェッチステージにて、次の命令コード(次期命令コードデータ)を取得するためにデータをフェッチするためのフェッチアドレスを算出し、コードRAM11に対してそのデータの読出をかける。このとき、1語または2語長の可変長命令では、2語長幅のデータバスに対応する2語長幅のデータの先頭アドレスで読出をかける。これにより、ステップ82において、コードRAM11から所望の次期命令コードデータを含んだデータが読み出される。さらに、ステップ83において、フェッチユニット12で実行されるデコードステージにて、フェッチされたデータφdから所望の次期命令コードデータφcをデコードし、その次期命令コードデータφcおよび次期命令ポインタデータφaをレジスタ39および38に格納する。本例のPU5では、このステップ83で、生成された次期命令コードデータφcおよび次期命令ポインタデータφaが自動的にDU7に供給される。

0036

次に、実行ユニット13の実行ステージで、現命令に基づく処理が完了するステップ84になると、フェッチユニット12で用意された次期命令コードデータφcと次期命令ポインタデータφaが実行ユニット13に取り込まれる。このとき、本例のPU5では自動的にこれらのデータφaおよびφcを取り込む信号であるタイミング信号φtがDU7に供給される。そして、ステップ85で次期命令コードデータφcに基づく処理を実行する際に、ブレーク信号φbがDU7から供給されると一時的に処理を中断してデバッグモードに入る。したがって、このPU5は、ブレーク信号φbが供給されないかぎり、DU7の有無にかかわらず通常通り、順番に次期命令コードデータφcを取得し、それによる処理を行う。

0037

DU7では、ステップ91で、事前外部ホスト4からブレーク条件であるブレークアドレスφtaおよびブレークデータφtcを外部指定条件として読み込む。PU5でデバッグ対象のプログラムが実行されて、次期命令ポインタデータφaおよび次期命令コードデータφcが供給されると、ステップ92において、次期命令ポインタデータφaおよび次期命令コードデータφcを取得し、それらとブレークアドレスφtaおよびブレークデータφtcとをそれぞれ比較する。ステップ93において、それらが一致すると、ステップ94において、タイミング信号φtが供給されたときにブレーク要求信号φbをPU5に出力する。これにより、PU5では、ステップ85においてブレーク要求信号φbを受けて一時停止する。

0038

図6に示したタイミングチャートでは、ブレークデータφtaとしてアドレスA3がセットされ、ブレークデータφtcとして命令C3がセットされているときに、時刻t1に次期命令ポインタデータφaがアドレスA3となり、次期命令コードデータφcがコードC3になるとDU7で一致状態となる。そして、時刻t2に次命令の実行タイミング信号φtが入力されるとブレーク信号φbが生成され、次期命令コードデータφcが実行ユニット13で実行される次のクロックのタイミングである時刻t3にブレーク信号φbがPU5に供給される。その結果、PU5は命令C3を実行する段階で一時停止する。

0039

このように、本例のPU5では、次期命令ポインタデータφaの出力端31、次期命令コードデータφcの出力端32および次命令実行開始タイミング信号φtの出力端33を有するインターフェイス8が用意されているので、DU7はPU5から供給されるこれらの信号φa、φcおよびφtを利用してブレーク信号φbを生成しPU5に供給することができる。このため、DU7には、次期命令ポインタデータφa、次期命令コードデータφcおよび次命令実行開始タイミング信号φtを生成するハードウェアは必要なく、1つのLSI2の内部に重複したハードウェアが搭載されるのを防止することができる。

0040

次期命令ポインタデータφaおよび次期命令コードデータφcを出力するハードウェアは、上述したように、命令コードが可変長であったり、命令コード長がデータバス幅と一致しない場合は大きなものになる。しかしながら、本例のPU5およびDU7を組み合わせたLSI2では、プロセッサ5の側でデコードされた命令コードデータをDU7が利用できるので、命令コードが可変長であろうとなかろうと、同一構成のDU7を利用してデバッグ機能を付加できる。すなわち、PU5にデータφa、φcおよびφtを出力する機能を付加することにより、DU7では、次期命令ポインタデータφaに対してアドレス一致検出を行うことで、命令長の監視は不要となり、次期命令コードデータφcに対してコード一致検出を行うことでバスのデータをアドレスに合わせて整列するようなデコード処理も不要となる。さらに、分岐制御もPU5の側で行われた結果の命令コードが得られるので、その制御も不要となる。そして、実行ステージの命令完了タイミングは実行ユニット13からのタイミング信号φtで分かるので、命令コードがマルチサイクルであるか否かなどの解析も不要となる。

0041

さらに、DU7では、分岐条件が成立したりして、読み捨てられる命令コードを意識するハードウェアも必要ない。PU5では、実行されない命令は実行ステージに渡されることがないので、次期命令コードデータφcと、それを実行ステージでラッチするための次命令実行開始タイミング信号φtとを組み合わせることにより、DU7で実行ステージに渡される命令コードデータを確実にモニタリングできるからである。

0042

一方、PU5においては、単に、これらのデータφa、φcおよびφtを出力するポイント31〜33を予め設けてあるだけなので、デバッグ機能の有無を問題にせずにソフトウェアおよびハードウェアを設計、開発およびメンテナンスすることができる。これらの接続ポイント31〜33のハードウェア構成は上記に限定されることはなく、LSI2のPU5のバウンダリにおいて、デバッグユニットなどのオプションユニットに対して信号あるいはデータを伝達できるようになっていれば良い。また、上記の例のデバッグユニットにおいては、次期命令ポインタデータφaと、次期命令コードデータφcの両方を受け取り、それぞれのデータφaおよびφcをブレークアドレスφtaおよびブレークデータφcと比較しているが、次期命令ポインタデータφaあるいは次期命令コードデータφcの少なくともいずれか一方をターゲットとなる値と比較してブレーク信号を出力するようにしても良い。

0043

さらに、オプションユニットはデバッグユニットに限定されるものではないが、これらの信号をもっとも有効に活用できるユーザユニットはデバッグユニットである。このようなプロセッサであれば、システムLSIの埋め込み用途のプロセッサ用として、拡張性はあるが単一仕様のプロセッサを設計、開発およびメンテナンスするだけでよく、余分な投資を省くことができる。このため、本発明により、エンベッデド・プロセッサに適したオプション機能の豊富なプロセッサを提供することが可能となり、VUPUアーキテクチャにさらに適したPU5を提供することができる。また、VUPUアーキテクチャに限らず、他のタイプのエンベッデド・プロセッサにも本発明を提供することにより、オプション機能がさらに豊富なプロセッサを提供することができる。

発明の効果

0044

以上に説明したように、本発明においては、プロセッサユニットに次期命令ポインタデータおよび次期命令コードデータを外部に出力するインターフェイスを設けることにより、組み込み型プロセッサとオプション化されたデバッグユニットとの間に有効な状態伝達信号線を設置することが可能となる。したがって、プロセッサ本体とデバッグユニットとの機能を協調させることができ、デバッガのハードウェア負担を削減することができる。また、システムLSIを構築したときにハードウェアの重複を防止し、デバッグ機能などのオプション機能を容易に搭載することができる。このため、コンパクトで低コストな多機能型のシステムLSIを提供することができる。

図面の簡単な説明

0045

図1本発明に係るデータ処理装置を搭載したLSI搭載システムボードの概略を示す図である。
図2本発明に係るデータ処理装置の概略を示すブロック図である。
図3本例のPUとDUとの間で交換される信号を説明するための図である。
図4本例のPUとDUの詳細を示す図である。
図5本例のPUとDUとの間で行なわれるデバッグ処理を示すフローチャートである。
図6DUでブレーク条件が成立したときにPUの実行ユニットにおける処理が停止される処理を説明するためのタイミングチャートである。

--

0046

1 LSI搭載システムボード
2データ処理装置(システムLSI)
5プロセッサユニット(PU)
6専用データ処理ユニット(VU)
7デバッグユニット(DU)
8、10インターフェイス
11 コードRAM
12フェッチユニット(FU)
13実行ユニット
31、32、33、34接続点
55ブレーク検出部
61、62、62、64 接続点

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 富士通株式会社の「 情報管理装置及び情報管理プログラム」が 公開されました。( 2020/10/29)

    【課題】ログの保管に用いられるディスクサイズの見積もりの労力を削減する情報管理装置及び情報管理プログラムを提供する。【解決手段】ログ情報収集部11は、収集設定にしたがって動作履歴が取得される管理対象装... 詳細

  • アズビル株式会社の「 診断装置、二重化システム及び診断方法」が 公開されました。( 2020/10/29)

    【課題】フラッシュメモリの寿命となる時期が想定よりも早いか否かを診断する。【解決手段】 診断装置10は、フラッシュメモリ22における後天性不良ブロック数を取得する取得部32と、取得部32で取得された... 詳細

  • ローム株式会社の「 ウォッチドッグタイマ」が 公開されました。( 2020/10/29)

    【課題】適切に周波数異常を検出する。【解決手段】ウォッチドッグタイマ173は、トリガ型の第1周波数異常検出部173aと、通信断絶検知型の第2周波数異常検出部173bと、Q&A型の第3周波数異常検出部1... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ