JPH06208461A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH06208461A
JPH06208461A JP4029812A JP2981292A JPH06208461A JP H06208461 A JPH06208461 A JP H06208461A JP 4029812 A JP4029812 A JP 4029812A JP 2981292 A JP2981292 A JP 2981292A JP H06208461 A JPH06208461 A JP H06208461A
Authority
JP
Japan
Prior art keywords
illegal
data
microprocessor
alignment
effective address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4029812A
Other languages
English (en)
Inventor
Hiroaki Suzuki
宏明 鈴木
Koji Maemura
浩司 前村
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.)
NEC Corp
NEC IC Microcomputer Systems Co Ltd
Original Assignee
NEC Corp
NEC IC Microcomputer Systems 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 NEC Corp, NEC IC Microcomputer Systems Co Ltd filed Critical NEC Corp
Priority to JP4029812A priority Critical patent/JPH06208461A/ja
Publication of JPH06208461A publication Critical patent/JPH06208461A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】アライナを内蔵することなく、アラインメント
していないアドレスのデータをアクセスしていることを
検出し、プログラムのデバッグを容易にすることにあ
る。 【構成】命令をデコードしデータタイプの信号8を作成
する命令デコードユニット1と、ユニット1からのアド
レスにより実効アドレス9を作成する実効アドレス生成
ユニット2と、これら信号8および実効アドレス9より
アドレスの不正アラインメントを検出する不正アライン
メント検出部5とを有する。この検出部5より外部に不
正アラインメントのデータのアクセスを通知する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロプロセッサに関
し、特にシステム開発あるいはプログラム開発における
デバッグを容易にするマイクロプロセッサに関する。
【0002】
【従来の技術】一般に、マイクロプロセッサがアドレス
空間をアクセスする時に扱うデータの種類には、命令で
静的にデータ長を決定できる固定長のデータと、実行時
にデータ長を決定する可変長のデータとがある。かかる
固定長のデータをアクセスする場合、一般に8ビットの
N倍(Nは整数)の単位で扱うことが多く、8ビット単
位のデータをバイト,2バイトのデータをハーフワー
ド,4バイトのデータをワード(又はショートリア
ル),8バイトのデータをダブルワード(又はロングリ
アル)と称している。このようなデータはメモリ,I/
O等にアクセスする場合、アドレスのアラインメント
(整列)が問題になる。このアラインメントとは、デー
タの先頭アドレスがかかるデータのデータタイプの境界
にある場合を言う。
【0003】一方、アラインメントしていないデータと
は、例えば、 (1)ワードデータが4n+1,4n+3番地(nは整
数)から始まるアドレスに置かれている。 (2)ハーフワードデータが4n+1,4n+3番地か
ら始まるアドレスに置かれている。 というような場合である。
【0004】しかも、マイクロプロセッサが、外部デー
タをアクセスする時、アラインメントに関して考慮した
場合、通常次の2通りの方法が考えられる。
【0005】第一はマイクロプロセッサ内部にアライナ
とデータの一時記憶装置とを持ち、実効アドレスとオペ
ランドのデータタイプに応じてデータをアラインし、一
時記憶装置に記憶する方法である。かかる方法における
動作を図4乃至図6に基ずき説明する。
【0006】図4は従来の一例を示すアライナを内蔵し
たマイクロプロセッサのブロック図である。図4に示す
ように、マイクロプロセッサ19は外部メモリ20とデ
ータバス21を介して接続される一方、アライナ22を
内蔵し、一時記憶部23に整列して記憶する。また、こ
こではデータバス22の幅を32ビットする。ワードデ
ータ境界にアラインされているデータをリードする場
合、メモリ20から読み出された値a〜dは、マイクロ
プロセッサ19に読み込まれ、アライナ22を通りその
まま一時記憶部23に記憶される。このときのメモリア
クセスは1回で済む。
【0007】次に、図5は図4に続く動作を説明するた
めのマイクロプロセッサのブロック図である。図5に示
すように、かかるプロセッサ19はメモリ20に対し先
頭アドレスが(4n+3)番地(nは整数)にあるワー
ドデータ(アラインされていない)をリードする場合、
まず一回目のメモリアクセスとして、4n番地から連続
する4バイトを読み出す。このマイクロプロセッサ19
はデータバス21からデータを読み込むと、アライナ2
2により右に3バイトシフトし、下位1バイトを一時記
憶部23に記憶する。
【0008】図6は図5に続く動作を説明するためのマ
イクロプロセッサのブロック図である。図6に示すよう
に、マイクロプロセッサ19は続いて二回目のアクセス
として(4n+4)番地から連続する4バイトを読み出
し、同様にアライナ22で左に1バイトシフトし、上位
3バイトを一時記憶部23に記憶する。
【0009】上述した第一の方法を実現している例とし
て、マイクロプロセッサの内部にアライナを持ち、すべ
ての組合せに対応するものがある。これは命令フィール
ド内にアクセスするデータタイプの情報を持ち、プロセ
ッサ内部にそのデータタイプとアドレスに応じて、デー
タをアラインメントするハードウエアがあり、ソフトウ
エアから見た場合、データのアラインメントを考慮する
必要はない。
【0010】次に、第二の方法は、マイクロプロセッサ
内部にアライナを持たず、外部のデータはあらかじめそ
れぞれのデータタイブの境界に置かれているものとする
方法である。この第二の方法を実現している例として
は、市販のマイクロプロセッサがある。このマイクロプ
ロセッサはデータタイプとして、バイト,ハーフワー
ド,ワードを定義している。但し、内部にアラインする
ハードウエアを持っていないので、ハーフワード,ワー
ドデータの始めるアドレスに制限があり、ハーフワード
はハーフワード境界から始まるアドレスにアラインメン
トされていなければならず、ワードは、ワード境界にア
ラインメントしていなければならない。
【0011】図7はかかる従来のマイクロプロセッサに
おけるアクセスの組合せを表わす図である。図7に示す
ように、この組合せはデータタイプと実効アドレス下位
2ビットおよびメモリワード内の位置との許されている
組合せで表わしている。
【0012】
【発明が解決しようとする課題】上述した第一の方法を
採用した従来のマイクロプロセッサは、バスサイクルを
起動する回数をダイナミックに変化させる必要があるな
ど、制御が複雑になる。また、内部にアライナやデータ
の一時記憶部を設ける必要があるなど、ハードウエアの
負担が大きくなってしまうという欠点がある。
【0013】そこで、最近のRISC(Reduced
Instruction SetComputer)
型のマイクロプロセッサでは、第二の方法が用いられて
いる。この従来のマイクロプロセッサは、アラインして
いないデータアクセスがあった場合、無視又は、強制的
にアラインしてアスセスをおこなっている。このため、
マイクロプロセッサは意図した位置と異なったデータを
読み書きしてしまい、プログラムの実行結果が異なって
くる。このような時、プログラムの実行トレースを行な
い、バグを発見しようとしても、原因をつかむのが困難
である。これを容易に発見するため、不正アラインメン
トアクセスがあった時に、例外が発生するようなハード
ウエアを付加し、ソフトウエアで処理を行なわせてい
る。しかし、不正アラインメントは一部の用途を除いて
一般にプログラム開発途上のコーディングミスに起因す
るため、ソフトウエアで処理を行なおうとしても、一般
的に致命的な事象となってしまい、その機能を十分にい
かすことは難しいという欠点がある。また、例外の種類
を増やすことにより、制御論理回路の複雑さを招く事に
なる。
【0014】本発明の目的は、かかるアライナを内蔵す
ることなく、アラインメントしていないアドレスのデー
タをアクセスしていることを検出し、プログラムのデバ
ッグを容易にするマイクロプロセッサを提供することに
ある。
【0015】
【課題を解決するための手段】本発明のマイクロプロセ
ッサは、固定長データを扱うマイクロプロセッサにおい
て、命令コードからオプランドのデータ長タイプを判別
する命令デコードユニットと、前記命令コードから実効
アドレスを生成する実効アドレス生成ユニットと、前記
実効アドレスおよび前記データ長タイプに基ずき前記実
効アドレスの不正アラインメント状態を検出する不正ア
ラインメント検出手段と、前記不正アラインメント状態
が発生した際に前記不正アラインメントを外部に通知す
る手段とを有して構成される。
【0016】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。図1は本発明の一実施例を示すマイクロプ
ロセッサの構成図である。図1に示すように、本実施例
は説明を簡単にするため本発明に関連するブロックのみ
示し、それ以外は省略している。本実施例は命令デコー
ドユニット(IDU)1と、実効アドレス生成ユニット
(EAG)2と、命令実行ユニット(EXU)3および
バス制御ユニット(BCU)4とを有し、これらのユニ
ットは内部アドレスバス6および内部データバス7を介
して接続されている。また、実行ユニット(EXU)3
はその内部に不正アラインメント状態検出部5を内蔵し
ている。
【0017】かかる構成のマイクロプロセッサは外部の
メモリをアクセスする場合、命令デコードユニット1が
実行する命令をデコードし、オペランドのデータタイプ
を判別する。また、命令デコードユニット1でデコード
したデコード情報に基づき、実効アドレス生成ユニット
2はオペランドのアドレスを生成する。さらに、バス制
御ユニット4は、上述したデコード情報に基づき、内部
アドレスバス6,内部データバス7のバスサイクルを起
動する。一方、実行ユニット3中の不正アラインメント
検出部5は外部アクセスを行なう際の実効アドレス9の
下位2ビットとオペランドデータタイプ信号8の組合せ
から不正アラインメントの組合せを検出し、不正アライ
ンメント発生表示端子に不正アラインメント検出信号1
0を出力する。
【0018】図2は図1に示す不正アラインメント状態
検出部の回路図である。図2に示すように、この不正ア
ラインメント状態検出部5はワードアクセスを示す内部
信号11およびハーフワードアクセスを示す内部信号1
2と、実効アドレス〔1〕13および実効アドレス1
〔0〕14とを入力する入力端子を有し、OR回路1
5,18とAND回路16,17との組合わせにより、
不正アラインメント検出信号10を出力するようにして
いる。
【0019】図3は本発明の他の実施例を示すマイクロ
プロセッサのブロック図である。図3に示すように、本
実施例は、前述した一実施例が不正アラインメント検出
信号10を独立した専用の端子を使用して外部に出力し
ていたのに対し、不正アラインメント検出信号10をバ
ス制御ユニット4でエンコードし、ステータス信号線を
利用してステータスの一部として外部に出力するという
差異がある。この不正アラインメント検出信号10は、
前述した一実施例のそれと同一である。要するに、本実
施例は不正アラインメントの発生が専用の端子および専
用の信号線を使用せずに、バスステータス信号を利用し
て外部に伝達される点をのぞいて、図1に示した一実施
例と同一に機能することは明白である。
【0020】
【発明の効果】以上説明したように、本発明のマイクロ
プロセッサは、不正アラインメント時の効率的なデバッ
グ情報を提供できるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例を示すマイクロプロセッサの
ブロック図である。
【図2】図1に示す不正アラインメント検出部の回路図
である。
【図3】本発明の他の実施例を示すマイクロプロセッサ
のブロック図である。
【図4】従来の一例を示すマイクロプロセッサのブロッ
ク図である。
【図5】図4に続く動作を説明するためのマイクロプロ
セッサのブロック図である。
【図6】図5に続く動作を説明するためのマイクロプロ
セッサのブロック図である。
【図7】従来のマイクロプロセッサにおけるアクセスの
組合せを表わす図である。
【符号の説明】
1 命令デコードユニット(IDU) 2 実効アドレス生成ユニット(EAG) 3 命令実行ユニット(EXU) 4 バス制御ユニット(BCU) 5 不正アラインメント検出部 6 内部アドレスバス 7 内部データバス 8 データタイブ識別信号 9 実効アドレス 10 不正アラインメント検出信号 11 ワードアクセス内部信号 12 ハーフワードアクセス内部信号 13 実効アドレスA〔1〕 14 実効アドレスA
〔0〕 15,18 OR回路 16,17 AND回路
フロントページの続き (72)発明者 前村 浩司 神奈川県川崎市中原区小杉町一丁目403番 53日本電気アイシーマイコンシステム株式 会社内

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 固定長データを扱うマイクロプロセッサ
    において、命令コードからオプランドのデータ長タイプ
    を判別する命令デコードユニットと、前記命令コードか
    ら実効アドレスを生成する実効アドレス生成ユニット
    と、前記実効アドレスおよび前記データ長タイプに基ず
    き前記実効アドレスの不正アラインメント状態を検出す
    る不正アラインメント検出手段と、前記不正アラインメ
    ント状態が発生した際に前記不正アラインメントを外部
    に通知する手段とを有することを特徴とするマイクロプ
    ロセッサ。
  2. 【請求項2】 前記不正アラインメント状態を外部に通
    知する手段は、専用の端子を使用する請求項1記載のマ
    イクロプロセッサ。
  3. 【請求項3】 前記不正アラインメント状態は対応する
    バスサイクルに同期して外部に通知する請求項1記載の
    マイクロプロセッサ。
  4. 【請求項4】 前記不正アラインメント状態を外部に通
    知する手段は、外部バスステータス信号を使用する請求
    項1記載のマイクロプロセッサ。
  5. 【請求項5】 前記不正アラインメント状態が発生した
    際、前記実効アドレスを前記データタイプに応じてアラ
    インメントする手段を備えた請求項1記載のマイクロプ
    ロセッサ。
JP4029812A 1992-02-18 1992-02-18 マイクロプロセッサ Pending JPH06208461A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4029812A JPH06208461A (ja) 1992-02-18 1992-02-18 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4029812A JPH06208461A (ja) 1992-02-18 1992-02-18 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH06208461A true JPH06208461A (ja) 1994-07-26

Family

ID=12286435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4029812A Pending JPH06208461A (ja) 1992-02-18 1992-02-18 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH06208461A (ja)

Similar Documents

Publication Publication Date Title
RU2137184C1 (ru) Отображение с помощью мультинаборов команд
US5694587A (en) Specialized millicode instructions for test PSW validity, load with access test, and character translation assist
JP3684590B2 (ja) リセット制御装置及びリセット制御方法
JP4703718B2 (ja) 選択的サブルーチンリターン構造
TW556081B (en) Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US5860155A (en) Instruction decoding mechanism for reducing execution time by earlier detection and replacement of indirect addresses with direct addresses
JPH06208461A (ja) マイクロプロセッサ
KR940001268B1 (ko) 가변길이의 각 명령에 대하여 지시된 미정의 어드레싱의 감사기능을 가지는 데이타 프로세서
JPH0550015B2 (ja)
JPH056281A (ja) 情報処理装置
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
US6662296B1 (en) Method and system for testing millicode branch points
JP3344432B2 (ja) 情報処理装置
JPH0585925B2 (ja)
JPH0934795A (ja) Cpuプログラムのコピープロテクト法
JPH0333939A (ja) マイクロプロセッサ
JPH0248739A (ja) デバッグ用マイクロプロセッサ
JPH06139084A (ja) 情報処理装置
EP0382234A2 (en) Microprocessor having improved functional redundancy monitor mode arrangement
JP2574918B2 (ja) 割り込み復帰処理方式
JP2503210B2 (ja) マイクロプログラム制御装置
JP3057732B2 (ja) 情報処理装置
JP2950080B2 (ja) マイクロコンピュータ
JPH0371236A (ja) エラー検出システム
JPS5880743A (ja) マイクロプロセツサ用フエツチ予告装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19980811