JPH11212787A - 使用可能な操作符号を最大にし、様々なアドレシングモードを実現するプロセッサアーキテクチャ方式および命令セット - Google Patents

使用可能な操作符号を最大にし、様々なアドレシングモードを実現するプロセッサアーキテクチャ方式および命令セット

Info

Publication number
JPH11212787A
JPH11212787A JP10306134A JP30613498A JPH11212787A JP H11212787 A JPH11212787 A JP H11212787A JP 10306134 A JP10306134 A JP 10306134A JP 30613498 A JP30613498 A JP 30613498A JP H11212787 A JPH11212787 A JP H11212787A
Authority
JP
Japan
Prior art keywords
bits
register
addressing
registers
addressing modes
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.)
Withdrawn
Application number
JP10306134A
Other languages
English (en)
Inventor
Sumit Mitra
ミトラ サミット
Joseph W Triece
ダブリュー. トリース ジョセフ
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of JPH11212787A publication Critical patent/JPH11212787A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 改善されたマイクロコントローラアーキテク
チャ方式を提供する。 【解決手段】 使用可能な操作符号およびアドレス可能
なレジスタの数を最大にすると共に多重アドレシングモ
ードを可能にするシステムが提供される。システムは、
仮想レジスタアドレスを用いて多重アドレシングモード
の符号化を可能にするプロセッサアーキテクチャ方式を
有する。システムは、複数の命令を含む命令セットを有
する。各命令は、複数のビットを有し、複数の命令のそ
れぞれにおける複数のビットのいずれも、異なるアドレ
シングモードを実現するために割り当てられたビットで
はない。複数の命令のそれぞれは、プロセッサアーキテ
クチャ方式において仮想レジスタアドレスをアドレスす
ることによって異なるアドレシングモードを実現するこ
とが可能である。異なるアドレシングモードを実現する
ためにビットが必要ではないので、操作符号フィールド
およびレジスタアドレスフィールドの長さは、ユーザが
実現を所望する操作符号の数およびアドレス可能なレジ
スタの数によって決定される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本出願の優先権主張の基礎と
なる米国出願08/959,942号は、同一発明者名
で、1997年10月8日に出願された「様々なアドレ
シングモードを実現するプロセッサアーキテクチャ方式
およびその方法」という名称の発明に関する、上記出願
と同時係属中である米国出願の一部継続出願である。本
願では、この出願を参考のために援用する。
【0002】本発明は、一般に、プロセッサに関し、さ
らに詳細には、使用可能な操作符号の数を最大にし、仮
想レジスタアドレスを介して多重アドレシングモードを
符号化し、プロセッサアーキテクチャ方式において直接
アドレス可能なレジスタの数を最大にすることを可能に
するプロセッサアーキテクチャ方式および命令セットに
関する。
【0003】
【従来の技術】一般に、プロセッサは、中央処理ユニッ
ト(CPU)が存在し、格納された命令またはマイクロ
コードをフェッチおよび実行するために用いられる実体
である。プロセッサの例としては、マイクロコントロー
ラ、マイクロプロセッサ、およびディジタル信号プロセ
ッサが挙げられる。各タイプのプロセッサは、一般にオ
ペランドとも呼ばれるデータに作用する。このデータ
は、一般に、レジスタまたはメモリスペースに格納され
る。
【0004】命令は、特定のオペレーションを実行する
よう、およびそのオペレーションの1つ以上のオペラン
ドを識別するようにプロセッサのCPUを方向づける。
プロセッサは、オペレーション用のデータをアドレスす
る様々な手段を提供する。これらの手段は、通常、アド
レシングモードと呼ばれる。アドレシングモードは、典
型的には、算術演算および論理演算、ならびにデータ移
動オペレーションのために用いられ、ソースオペラン
ド、行先オペランド、またはこれらの両方に適用され得
る。
【0005】現在のプロセッサアーキテクチャ方式の問
題点は、アドレシングモードを追加または変更すること
が非常に困難なことである。命令セット機構に大きな変
更を与えずに、アドレシングモードを変更および追加す
ることはできない。しかし、命令セット構造の変更は望
ましくない。なぜなら、命令セット構造を大幅に変更す
るには、アセンブラおよびコンパイラなどの多数のツー
ルがさらに必要であるからである。
【0006】異なるアドレシングモードを実現する1つ
の方法は、操作符号フィールドまたはレジスタアドレス
フィールドにビットを割り当てることである。専用のビ
ットを設定することによって、異なるアドレシングモー
ドが実現され得る。これらのアーキテクチャ方式の問題
点は、使用可能な操作符号の数または直接アドレス可能
な「レジスタ」の数がかなり減少することである。例え
ば、「操作符号(op−code)」を符号化するため
に8ビットの命令が用いられる場合、アドレシングモー
ドを決定するために2ビットの「操作符号」が用いられ
ると、使用可能な命令の総数は、256から64に減少
する。他方、レジスタオペランドを特定するために命令
語において8ビットが利用できる場合、256個のレジ
スタを直接アドレスすることが可能である。しかし、他
のアドレシングモードを設けるためには、8ビットのう
ちの1つがこの目的で取られると、わずか128個のレ
ジスタのみが、直接アドレスできることになる。
【0007】既存のプロセッサアーキテクチャ方式で
は、交互のアドレシングモードが利用できるので、直接
アドレス可能なレジスタの数を最大にするために、符号
化は「制御レジスタ」を介して実現される。しかし、こ
れによってさらに他の問題が発生する。なぜなら、間接
アドレシングモードの「選択」は、静的(再構成される
まで)であり、命令毎に動的ではないからである。
【0008】図1は、プロセッサによって実行される典
型的な従来の命令10を示す。命令10は、第1バイト
12および第2バイト14を含む。各バイト12および
14は、複数のビット16を含む。第1バイト12は、
操作符号フィールド12Aを確立するために用いられ
る。操作符号フィールド12は、命令によって行われる
特定のオペレーション(即ち、「追加」、「シフト」、
「ブランチ」、等)を特定する。第2バイト14は、レ
ジスタまたはデータアドレスフィールド14Aである。
レジスタまたはデータアドレスフィールド14Aは、オ
ペレーションが行われるオペランド(即ち、データ)を
指定する。1つより多くのレジスタまたはデータアドレ
スフィールド14Aを設けることが可能である。例え
ば、ソースアドレスフィールドおよび行先アドレスフィ
ールドがあり得る。
【0009】図1に示す従来技術では、各バイト12お
よび14は、8ビット幅である。操作符号フィールド1
2Aにおいて、2つのビット(ビット4および5)は、
アドレシングモードを決定するために確保される。例え
ば、ビット<5:4>=01のとき、これは、直接アド
レシングモードを暗示し得る。これは、第2バイト14
におけるビット<7:0>が、8ビットレジスタアドレ
ス14Aであることを意味する。ビット<5:4>=1
0のとき、これは、間接アドレシングモードを暗示し得
る。この例では、第2バイト14のビット<7:0>
は、データポインタレジスタに対するオフセットを符号
化し得る。
【0010】命令10の符号化方式には、いくつかの問
題がある。操作符号12Aを符号化するために8ビット
の命令が用いられるが、アドレシングモードを決定する
ために2つのビット(ビット4および5)が用いられ
る。これにより、使用可能な操作符号命令の総数が25
6個から64個に減少する。さらに、アドレシングモー
ドを決定するために、第1命令バイト12内では2つの
ビットのみが符号化されるので、4個のアドレシングモ
ードのみが可能である。
【0011】図2は、プロセッサによって実行される他
の従来の命令20を示す。命令10(図1)と同様に、
命令20は、複数のビット22を含む。ビット22は、
一般に、3つの主要フィールド、(1)操作符号フィー
ルド24、(2)レジスタまたはデータアドレスフィー
ルド26、および(3)アドレシングモードフィールド
28に分割される。図1の命令10と同様に、操作符号
フィールド24は、プロセッサによって行われる特定の
オペレーションを特定するビット22の集まりである。
一般に、3つの主要なタイプのオペレーション、(1)
算術演算および論理演算(即ち、加算、引き算、等)、
(2)データ移動オペレーション、および(3)プログ
ラム制御(例えば、ブランチオペレーション)がある。
レジスタまたはデータアドレスフィールド26は、オペ
レーションが行われるオペランド(即ち、データ)を指
定する。1つより多くのレジスタまたはデータアドレス
フィールド26を設けることが可能である。例えば、ソ
ースアドレスフィールドおよび行先アドレスフィールド
があり得る。
【0012】図2に示す命令20は、16ビット幅命令
である。命令20内の7番目のビットは、アドレシング
モードを選択するために用いられる。7番目のビットが
ゼロ(0)の場合、直接アドレシングが暗示される。従
って、ビット<6:0>は、128個のレジスタを可能
にする7ビットレジスタアドレスを形成する。7番目の
ビットが1(1)である場合、間接アドレスが暗示され
る。この状況において、ビット<6:0>は、データポ
インタアドレスおよびポインタ増加/減少オプションを
符号化する。
【0013】従来技術において、「操作符号」を符号化
するために8ビットの命令が用いられる。それ故、レジ
スタ位置をアドレスするために8ビットが残される。こ
れらの8ビットを用いて、256個までのレジスタが、
アーキテクチャ内に収容され得る。しかし、間接アドレ
シングまたは直接アドレシングとを区別するために、7
番目のビットがアドレシングモードビットとして用いら
れるので、わずか128個のレジスタしか収容されな
い。従って、アドレス可能なレジスタの数は、アドレシ
ングモードビットを実現することによって半分に減少さ
れる。さらに、アドレシングモードを追加または変更す
ることは非常に困難である。命令セット機構を大幅に変
更せずに、アドレシングモードを変更または追加するこ
とはできない。命令セット構造に対する変更は所望され
ない。なぜなら、命令セット構造を大幅に変更するため
にはアセンブラまたはコンパイラなどの多くのツールが
さらに必要であるからである。
【0014】上記の説明より理解され得るように、従来
技術では、実現する特定のアドレシングモードを示すた
めに、命令において1つ以上のビットを必要とする。こ
れによって、使用可能な操作符号命令の数およびアドレ
ス可能なレジスタの数が大幅に減少する。
【0015】
【発明が解決しようとする課題】従って、改善されたマ
イクロコントローラアーキテクチャ方式を提供する必要
がある。改善されたマイクロコントローラアーキテクチ
ャ方式は、ユーザがアドレシングモードを追加および変
更できるようにしなければならない。改善されたマイク
ロコントローラアーキテクチャ方式はさらに、ユーザが
命令毎に動的にアドレシングモードを変更することがで
きるようにしなければならない。改善されたマイクロプ
ロセッサアーキテクチャ方式は、所定数の命令ビットに
対して使用可能な操作符号の数を最大にすると共に、ユ
ーザがアドレシングモードを追加および変更することが
できるようにしなければならない。改善されたマイクロ
コントローラアーキテクチャ方式はさらに、直接アドレ
ス可能なレジスタの数を最大にすると共に、ユーザがア
ドレシングモードを追加および変更できるようにしなけ
ればならない。
【0016】本発明は上記課題を解決するためになされ
たものであり、本発明の1つの実施態様によると、本発
明の目的は、改善されたマイクロコントローラアーキテ
クチャ方式を提供することである。
【0017】本発明の他の目的は、ユーザがアドレシン
グモードを追加および変更できるようにする改善された
マイクロコントローラアーキテクチャ方式を提供するこ
とである。
【0018】本発明のさらに他の目的は、直接アドレス
可能なレジスタの数を最大にすると共に、ユーザがアド
レシングモードを追加および変更できるようにする改善
されたマイクロコントローラアーキテクチャ方式を提供
することである。
【0019】本発明のさらに他の目的は、命令毎に動的
にアドレシングモードを選択する能力を維持すると共
に、マイクロコントローラアーキテクチャ方式に上記の
改善を提供することである。
【0020】本発明のさらに他の目的は、所定数の命令
ビットに対して使用可能な操作符号の数を最大にすると
共に、ユーザがアドレシングモードを追加および変更す
ることができるようにする改善されたマイクロコントロ
ーラアーキテクチャ方式を提供することである。
【0021】
【課題を解決するための手段】本発明によれば、使用可
能な操作符号およびアドレス可能なレジスタの数を最大
にすると共に、多重アドレシングモードを可能にするシ
ステムであって、仮想レジスタアドレスを用いて多重ア
ドレシングモードの符号化を可能にするプロセッサアー
キテクチャ方式と、複数の命令を有する命令セットであ
って、該各命令が、複数のビットを有し、該複数の命令
のそれぞれにおける該複数のビットのいずれも、異なる
アドレシングモードを実現するために割り当てられたビ
ットではなく、該複数の命令のそれぞれが、該仮想レジ
スタアドレスを該プロセッサアーキテクチャ方式におい
てアドレスすることによって異なるアドレシングモード
を実現することが可能である、命令セットとを組み合わ
せて有するシステムが提供され、これによって上記目的
が達成される。
【0022】前記複数の命令のそれぞれが、操作符号フ
ィールドを規定し、実施されるオペレーションを指示す
るために用いられる前記複数のビットの第1セットのビ
ットであって、該複数のビットの該第1のセットのビッ
トのサイズが、実現される所望の数の操作符号によって
規定される、第1セットのビットと、該実施されるオペ
レーションの結果が格納される場所を指示する行先ビッ
トと、レジスタアドレスを規定して、該オペレーション
が実施されるデータのアドレスを指示するために用いら
れる該命令のそれぞれの該複数のビットの残りとをさら
に有してもよい。
【0023】前記複数の命令のそれぞれが、レジスタア
ドレスを規定し、オペレーションが実施されるデータの
レジスタアドレスを指示するために用いられる前記複数
のビットの第1のセットのビットであって、該複数のビ
ットの該第1のセットのビットのサイズが、実現される
所望の数のレジスタアドレスによって規定される、第の
1セットのビットと、該実施されるオペレーションの結
果が格納される場所を指示する行先ビットと、操作符号
フィールドを規定し、該実施されるオペレーションを指
示するために用いられる該複数の命令のそれぞれの該複
数のビットの残りとをさらに有してもよい。
【0024】前記複数の命令のそれぞれが、16ビット
の長さであってもよい。
【0025】前記複数の命令のそれぞれが、レジスタア
ドレスを規定し、前記オペレーションが実施されるデー
タのレジスタアドレスを指示するために割当てられた前
記16ビットの最初の8ビットと、該実施されるオペレ
ーションの結果が格納される場所を指示するための行先
ビットとして割り当てられた該16ビットの9番目のビ
ットと、操作符号フィールドを規定し、該実施されるオ
ペレーションを指示するために割当てられた該16ビッ
トの最後の7ビットとをさらに有してもよい。
【0026】前記複数の命令のそれぞれが、レジスタア
ドレスを規定し、前記オペレーションが実施されるデー
タのレジスタアドレスを指示するために割当てられた前
記16ビットの最初の7ビットと、該実施されるオペレ
ーションの結果が格納される場所を指示するための行先
ビットとして割り当てられた該16ビットの8番目のビ
ットと、操作符号フィールドを規定し、該実施されるオ
ペレーションを指示するために割当てられた該16ビッ
トの最後の8ビットとをさらに有してもよい。
【0027】前記プロセッサアーキテクチャ方式が、前
記命令を実行するための中央処理ユニットと、データを
格納するための該中央処理ユニットに連結されたメモリ
と、該ポインタレジスタに関連するアドレスがアクセス
されると、該命令がアクセスされるアドレス位置を格納
するための該メモリ内のポインタレジスタと、前記ポイ
ンタレジスタに関連する該メモリ内に割り当てられた仮
想レジスタアドレス位置であって、該割り当てられたア
ドレス位置の1つがアクセスされるとき、該ポインタレ
ジスタと共に用いられる間接アドレシングモードを指図
し、それによって、命令毎に動的にアドレシングモード
を自由に選択することを可能にする、仮想レジスタアド
レス位置とをさらに有してもよい。
【0028】前記システムが、アクセスされると簡単な
間接アドレシングを開始するために割当てられた1つの
仮想レジスタアドレス位置をさらに有してもよい。
【0029】前記システムが、アクセスされると自動前
増加を有する間接アドレシングを開始するために割当て
られた1つの仮想レジスタアドレス位置をさらに有して
もよい。
【0030】前記システムが、アクセスされると自動後
減少を有する間接アドレシングを開始するために割当て
られた1つの仮想レジスタアドレス位置をさらに有して
もよい。
【0031】前記システムが、アクセスされると自動前
増加を有する間接アドレシングを開始するために割当て
られた1つの仮想レジスタアドレス位置をさらに有して
もよい。
【0032】前記システムが、アクセスされるとオフセ
ットを有する間接アドレシングを開始するために割当て
られた1つの仮想レジスタアドレス位置をさらに有して
もよい。
【0033】前記ポインタレジスタが、12ビット幅ポ
インタレジスタであってもよい。
【0034】前記システムが、前記メモリ内の複数のポ
インタレジスタと、該複数のポインタレジスタに関連す
る間接アドレシングモードの総数に等しい該メモリ内に
割り当てられた仮想レジスタアドレス位置であって、該
割り当てられたアドレス位置のそれぞれが、アクセスさ
れるとき、該複数のポインタアドレスの関連のポインタ
レジスタと共に用いられる間接アドレシングモードを指
図し、それによって、命令毎に動的にアドレシングモー
ドを自由に選択することを可能にする、仮想レジスタア
ドレス位置とをさらに有してもよい。
【0035】前記複数のポインタレジスタのそれぞれ
が、12ビット幅ポインタレジスタであってもよい。
【0036】前記複数のポインタレジスタに関連する間
接アドレシングモードの総数に等しい前記メモリ内に割
り当てられた仮想レジスタアドレス位置のそれぞれが、
簡単な間接アドレシング、自動後増加を有する間接アド
レシング、自動後減少を有する間接アドレシング、自動
前増加を有する間接アドレシング、およびオフセットを
有する間接アドレシングからなる群から選択される1つ
の間接アドレシングモードを開始してもよい。
【0037】本発明の1つの実施態様によると、使用可
能な操作符号およびアドレス可能なレジスタの数を最大
にすると共に、多重アドレシングモードを可能にするシ
ステムが開示される。このシステムは、仮想レジスタア
ドレスを用いて多重アドレシングモードの符号化を可能
にするプロセッサアーキテクチャ方式を有する。システ
ムは、複数の命令を有する命令セットを有する。各命令
は、複数のビットを有し、複数の命令のそれぞれにおけ
る複数のビットは、いずれも異なるアドレシングモード
を実現するための専用ビットではない。複数の命令のそ
れぞれは、仮想レジスタアドレスをプロセッサアーキテ
クチャ方式でアドレスすることによって、異なるアドレ
シングモードを実現することが可能である。
【0038】本発明の上記および他の目的、特徴、およ
び利点は、以下、より特定的には、添付の図面に図示す
る本発明の好ましい実施態様の説明から明白となる。
【0039】
【発明の実施の形態】図3は、本発明のプロセッサアー
キテクチャ方式によって実行される命令30を示す。命
令30は、複数のビット32を含む。ビット32は、一
般に、3つの主要フィールド、(1)どのタイプのオペ
レーションが行われるかを示す操作符号フィールド3
4、(2)プロセッサオペレーションの結果がどこ(即
ち、「w」もしくは動作レジスタ、またはファイルレジ
スタ)に格納されるかを示す行先ビット36、および
(3)命令30が動作するレジスタまたは可変データの
アドレスを示すレジスタアドレスフィールド38に分割
される。本発明の好ましい実施態様において、命令は、
16ビット命令である。
【0040】命令30に関して特有なことは、行先ビッ
ト36を除いて、操作符号フィールド34およびレジス
タアドレスフィールド38の長さが、ユーザが実現を所
望する操作符号の数またはアドレス可能なレジスタの数
によって決定されることである。例えば、ユーザが操作
符号フィールド34において7ビットの使用を所望する
場合、ユーザは、最大128個の操作符号を実現し得
る。ユーザが64個の可能な操作符号のみを必要とする
場合、6ビットが操作符号フィールド34に用いられ得
る。1ビットは、行先ビット36として用いられるの
で、9ビットがレジスタアドレスフィールド48として
用いられ得る。これによって、ユーザは、512個まで
のアドレス可能なレジスタを実現することが可能にな
る。同様に、わずか128個のアドレス可能なレジスタ
しか必要でない(即ち、7ビットレジスタアドレスフィ
ールド38を用いて実現され得る)場合、1ビット32
が行先ビット36として用いられると、9ビットは、操
作符号フィールド34に用いられ得る。これによって、
ユーザは最大512個の可能な操作符号を有することが
可能になる。従って、上記のように、本発明の命令30
は、所定数の命令ビットに対して使用可能な操作符号の
数およびアドレス可能なレジスタの数をユーザが最大に
することができるようにする。
【0041】図4は、命令30と共に用いられるプロセ
ッサアーキテクチャ方式40を示す。プロセッサアーキ
テクチャ方式40は、データメモリ42内で実現される
データポインタレジスタ48を有する。データメモリ4
2は、複数のアドレス位置44を含む。図4に示す実施
態様において、メモリは、線形化4Kメモリであり、こ
のメモリは、各ページ46が256個のアドレス位置4
4を有する複数のページ46に分割される。データポイ
ンタレジスタ48は、レジスタアドレスマップに確保さ
れる1つ以上の仮想レジスタアドレス位置50を有す
る。確保された仮想レジスタアドレス位置50のそれぞ
れは、アクセスされると、間接アドレシングモードを開
始する。
【0042】現在、5つの主要なタイプのアドレシング
モードが存在する。即ち、簡単な間接アドレシング、自
動後増加(auto post increment)を有する間接アドレ
シング、自動後減少(auto post decrement)を有する
間接アドレシング、自動前増加(auto pre increment)
を有する間接アドレシング、およびオフセットを有する
間接アドレシングである。簡単な間接アドレシングモー
ドでは、オペランドのアドレスは、データポインタレジ
スタ48に保持される。CPU52は、まずデータポイ
ンタレジスタ48にアクセスして、アドレスを獲得し、
このアドレスを用いてオペランドにアクセスする。自動
増加または自動減少を有する間接アドレシングは、間接
アドレシングの形態であり、データポインタレジスタ4
8は、データにアクセスする前(即ち、前増加もしくは
前減少)またはデータにアクセスした後(即ち、後増加
または後減少)のいずれかで増減する。オフセットを有
する間接アドレシングモードでは、オペランドのアドレ
スは、オフセット値をデータポインタレジスタ48の内
容に加えることによって計算される。オフセット値は、
命令内に埋め込まれるか、またはさらに他のレジスタか
ら得られ得る。本実施態様では、オフセット値は、累積
器または「動作」レジスタである「w」レジスタから得
られる。上記のように、データポインタレジスタ48
は、オペランドアクセスの前後で増減し得る。
【0043】データポインタレジスタ48は、データポ
インタレジスタ48が実現したいと所望する間接アドレ
シングモードのそれぞれに対して、データメモリ42に
おける個別の仮想レジスタアドレス位置50を必要とす
る。本発明の好ましい実施態様において、上記の5つの
間接アドレシングモードを実現するためには、5つの仮
想レジスタアドレス位置50が必要である。しかし、デ
ータポインタレジスタ48の使用によっては、さらに多
くのまたはさらに少ない間接アドレシングモードが実現
され得る。さらに、他のデータポインタレジスタ48
は、データメモリ42において実現され得る。各データ
ポインタレジスタ48は、レジスタアドレスマップ内に
確保される1つ以上の仮想レジスタアドレス位置50を
有する。確保された仮想レジスタアドレス位置50のそ
れぞれは、アクセスされると、関連のデータポインタレ
ジスタ48に対して間接アドレシングモードを開始す
る。各データポインタレジスタ48は、読出しおよび書
込み可能なアドレス位置である。本発明の好ましい実施
態様において、各データポインタ48は、4Kバイト長
メモリエリアにアクセス可能な12ビット幅ポインタで
ある。従って、各データポインタレジスタ48は、読出
しおよび書込み可能なレジスタとしてアクセス可能な2
つの8ビット幅レジスタ(高バイトおよび低バイト)と
して組織化される。従って、本発明の好ましい実施態様
において、5つの間接アドレシングモードを有する12
ビット幅のデータポインタを実現するためには、7個の
アドレス位置が用いられる。
【0044】本発明は、汎用レジスタとして用いられ得
るレジスタアドレスの数を最大にする。本発明の好まし
い実施態様を用いる符号化技術に関する指示として、デ
ータメモリまたはレジスタをアドレスするために8ビッ
トが使用可能である。これによって256個までのレジ
スタが可能になる。レジスタのうち7個は、様々な間接
アドレシング方式を実現するために用いられるので、2
49個の直接アドレス可能なレジスタが可能である。他
のデータポインタレジスタ48は、直接アドレス可能な
レジスタの量を大幅に減少させずにさらに追加され得
る。本発明は、図1に示す従来例と比較して、アドレス
可能なレジスタの量を大幅に増加させる。
【0045】本発明は、間接レジスタを自由に追加また
は削除することを可能にする。間接レジスタは、命令自
体では符号化されず、特定のレジスタアドレスからキー
オフ(keyed off)されるので、新たなデータポインタ
レジスタ48を加えることが可能である。従って、同一
のプロセッサに基づく2つの異なる結果は、従来の方法
よりもより簡単に異なる数のデータポインタレジスタを
実現し得る。
【0046】本発明はさらに、アドレシングモードを自
由に追加、削除、または変更することを可能にする。デ
ータポインタレジスタ48が容易に追加または削除され
得るように、様々なアドレシングモードが容易に追加ま
たは削除され得る。新たなアドレシングモードを追加す
るのに必要なことは、新たなデータアドレス位置を特別
なアドレスとして指定することだけである。
【0047】本発明を好ましい実施態様を参照しながら
特定的に示し記載したが、当業者には言うまでもなく、
上記および他の形態の変更、および詳細は、本発明の精
神および範囲から逸脱することなく行われ得る。
【0048】
【発明の効果】本発明を用いると、アドレシングモード
とレジスタとを混合し、適合させることが可能である。
命令フォーマットの一部として符号化されると、従来技
術のアドレシングモードは固定される。本発明を用いる
と、それぞれが、任意の数および任意のタイプの間接ア
ドレシングモードを支持する任意の数のポインタレジス
タを設けることが可能である。データポインタレジスタ
48およびアドレシングモードの総数は、これらを実現
するのに必要な論理および回路の量を実質的に考慮する
だけで限定される。
【0049】本発明はさらに、命令毎に任意の間接アド
レシングモードを自由に用いることを可能にする。従来
技術では、特別な制御レジスタは、間接アドレシングの
変更を制御するために用いられる。これによって、次の
ような限定がなされる。即ち、一旦制御ビットが特別な
モードに対して設定されると、すべての命令は、制御ビ
ットが変更されるまで選択されたモードのみを使用し得
る。このため、コードの所定セグメントにおけるアドレ
シングモードの選択は1つに減少し、効果的である。な
ぜなら、制御ビットを頻繁に変更することは非実用的で
あるからである。本発明では、間接アドレシングが変更
される毎に、特有のレジスタアドレスが与えられる。従
って、任意の命令において任意の間接アドレシングモー
ドを用いることが可能である。
【図面の簡単な説明】
【図1】従来の命令の典型的な符号化を示す簡略化ブロ
ック図である。
【図2】従来の命令の典型的な符号化の第2実施態様を
示す簡略化ブロック図である。
【図3】本発明を用いる命令の符号化を示す簡略化ブロ
ック図である。
【図4】本発明を用いるデータメモリマップの簡略化ブ
ロック図である。
【符号の説明】
30 命令 32 ビット 34 操作符号フィールド 36 行先ビット 38 レジスタアドレスフィールド 40 プロセッサアーキテクチャ方式 42 データメモリ 44 アドレス位置 48 データポインタレジスタ 50 仮想レジスタアドレス位置 52 CPU
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョセフ ダブリュー. トリース アメリカ合衆国 アリゾナ 85048, フ ェニックス, サウス 7ティーエイチ プレイス 15610

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 使用可能な操作符号およびアドレス可能
    なレジスタの数を最大にすると共に、多重アドレシング
    モードを可能にするシステムであって、 仮想レジスタアドレスを用いて多重アドレシングモード
    の符号化を可能にするプロセッサアーキテクチャ方式
    と、 複数の命令を有する命令セットであって、該各命令が、
    複数のビットを有し、該複数の命令のそれぞれにおける
    該複数のビットのいずれも、異なるアドレシングモード
    を実現するために割り当てられたビットではなく、該複
    数の命令のそれぞれが、該仮想レジスタアドレスを該プ
    ロセッサアーキテクチャ方式においてアドレスすること
    によって異なるアドレシングモードを実現することが可
    能である、命令セットと、 を組み合わせて有する、システム。
  2. 【請求項2】 前記複数の命令のそれぞれが、 操作符号フィールドを規定し、実施されるオペレーショ
    ンを指示するために用いられる前記複数のビットの第1
    のセットのビットであって、該複数のビットの該第1の
    セットのビットのサイズが、実現される所望の数の操作
    符号によって規定される、第1のセットのビットと、 該実施されるオペレーションの結果が格納される場所を
    指示する行先ビットと、 レジスタアドレスを規定して、該オペレーションが実施
    されるデータのアドレスを指示するために用いられる該
    命令のそれぞれの該複数のビットの残りと、 をさらに有する、請求項1に記載の使用可能な操作符号
    およびアドレス可能なレジスタの数を最大にすると共
    に、多重アドレシングモードを可能にするシステム。
  3. 【請求項3】 前記複数の命令のそれぞれが、 レジスタアドレスを規定し、オペレーションが実施され
    るデータのレジスタアドレスを指示するために用いられ
    る前記複数のビットの第1のセットのビットであって、
    該複数のビットの該第1のセットのビットのサイズが、
    実現される所望の数のレジスタアドレスによって規定さ
    れる、第1のセットのビットと、 該実施されるオペレーションの結果が格納される場所を
    指示する行先ビットと、 操作符号フィールドを規定し、該実施されるオペレーシ
    ョンを指示するために用いられる該複数の命令のそれぞ
    れの該複数のビットの残りと、 をさらに有する、請求項1に記載の使用可能な操作符号
    およびアドレス可能なレジスタの数を最大にすると共
    に、多重アドレシングモードを可能にするシステム。
  4. 【請求項4】 前記複数の命令のそれぞれが、16ビッ
    トの長さである、請求項1に記載の使用可能な操作符号
    およびアドレス可能なレジスタの数を最大にすると共
    に、多重アドレシングモードを可能にするシステム。
  5. 【請求項5】 前記複数の命令のそれぞれが、 レジスタアドレスを規定し、前記オペレーションが実施
    されるデータのレジスタアドレスを指示するために割当
    てられた前記16ビットの最初の8ビットと、 該実施されるオペレーションの結果が格納される場所を
    指示するための行先ビットとして割り当てられた該16
    ビットの9番目のビットと、 操作符号フィールドを規定し、該実施されるオペレーシ
    ョンを指示するために割当てられた該16ビットの最後
    の7ビットと、 をさらに有する、請求項4に記載の使用可能な操作符号
    およびアドレス可能なレジスタの数を最大にすると共
    に、多重アドレシングモードを可能にするシステム。
  6. 【請求項6】 前記複数の命令のそれぞれが、 レジスタアドレスを規定し、前記オペレーションが実施
    されるデータのレジスタアドレスを指示するために割当
    てられた前記16ビットの最初の7ビットと、 該実施されるオペレーションの結果が格納される場所を
    指示するための行先ビットとして割り当てられた該16
    ビットの8番目のビットと、 操作符号フィールドを規定し、該実施されるオペレーシ
    ョンを指示するために割当てられた該16ビットの最後
    の8ビットと、 をさらに有する、請求項4に記載の使用可能な操作符号
    およびアドレス可能なレジスタの数を最大にすると共
    に、多重アドレシングモードを可能にするシステム。
  7. 【請求項7】 前記プロセッサアーキテクチャ方式が、 前記命令を実行するための中央処理ユニットと、 データを格納するための該中央処理ユニットに連結され
    たメモリと、 該ポインタレジスタに関連するアドレスがアクセスされ
    ると、該命令がアクセスされるアドレス位置を格納する
    ための該メモリ内のポインタレジスタと、 前記ポインタレジスタに関連する該メモリ内に割り当て
    られた仮想レジスタアドレス位置であって、該割り当て
    られたアドレス位置の1つがアクセスされるとき、該ポ
    インタレジスタと共に用いられる間接アドレシングモー
    ドを指図し、それによって、命令毎に動的にアドレシン
    グモードを自由に選択することを可能にする、仮想レジ
    スタアドレス位置と、 をさらに有する、請求項1に記載の使用可能な操作符号
    およびアドレス可能なレジスタの数を最大にすると共
    に、多重アドレシングモードを可能にするシステム。
  8. 【請求項8】 アクセスされると簡単な間接アドレシン
    グを開始するために割当てられた1つの仮想レジスタア
    ドレス位置をさらに有する、請求項7に記載の使用可能
    な操作符号およびアドレス可能なレジスタの数を最大に
    すると共に、多重アドレシングモードを可能にするシス
    テム。
  9. 【請求項9】 アクセスされると自動前増加を有する間
    接アドレシングを開始するために割当てられた1つの仮
    想レジスタアドレス位置をさらに有する、請求項7に記
    載の使用可能な操作符号およびアドレス可能なレジスタ
    の数を最大にすると共に、多重アドレシングモードを可
    能にするシステム。
  10. 【請求項10】 アクセスされると自動後減少を有する
    間接アドレシングを開始するために割当てられた1つの
    仮想レジスタアドレス位置をさらに有する、請求項7に
    記載の使用可能な操作符号およびアドレス可能なレジス
    タの数を最大にすると共に、多重アドレシングモードを
    可能にするシステム。
  11. 【請求項11】 アクセスされると自動前増加を有する
    間接アドレシングを開始するために割当てられた1つの
    仮想レジスタアドレス位置をさらに有する、請求項7に
    記載の使用可能な操作符号およびアドレス可能なレジス
    タの数を最大にすると共に、多重アドレシングモードを
    可能にするシステム。
  12. 【請求項12】 アクセスされるとオフセットを有する
    間接アドレシングを開始するために割当てられた1つの
    仮想レジスタアドレス位置をさらに有する、請求項7に
    記載の使用可能な操作符号およびアドレス可能なレジス
    タの数を最大にすると共に、多重アドレシングモードを
    可能にするシステム。
  13. 【請求項13】 前記ポインタレジスタが、12ビット
    幅ポインタレジスタである、請求項7に記載の使用可能
    な操作符号およびアドレス可能なレジスタの数を最大に
    すると共に、多重アドレシングモードを可能にするシス
    テム。
  14. 【請求項14】 前記メモリ内の複数のポインタレジス
    タと、 該複数のポインタレジスタに関連する間接アドレシング
    モードの総数に等しい該メモリ内に割り当てられた仮想
    レジスタアドレス位置であって、該割り当てられたアド
    レス位置のそれぞれが、アクセスされるとき、該複数の
    ポインタアドレスの関連のポインタレジスタと共に用い
    られる間接アドレシングモードを指図し、それによっ
    て、命令毎に動的にアドレシングモードを自由に選択す
    ることを可能にする、仮想レジスタアドレス位置と、 をさらに有する、請求項7に記載の使用可能な操作符号
    およびアドレス可能なレジスタの数を最大にすると共
    に、多重アドレシングモードを可能にするシステム。
  15. 【請求項15】 前記複数のポインタレジスタのそれぞ
    れが、12ビット幅ポインタレジスタである、請求項1
    4に記載の使用可能な操作符号およびアドレス可能なレ
    ジスタの数を最大にすると共に、多重アドレシングモー
    ドを可能にするシステム。
  16. 【請求項16】 前記複数のポインタレジスタに関連す
    る間接アドレシングモードの総数に等しい前記メモリ内
    に割り当てられた仮想レジスタアドレス位置のそれぞれ
    が、簡単な間接アドレシング、自動後増加を有する間接
    アドレシング、自動後減少を有する間接アドレシング、
    自動前増加を有する間接アドレシング、およびオフセッ
    トを有する間接アドレシングからなる群から選択される
    1つの間接アドレシングモードを開始する、請求項15
    に記載の使用可能な操作符号およびアドレス可能なレジ
    スタの数を最大にすると共に、多重アドレシングモード
    を可能にするシステム。
JP10306134A 1997-10-29 1998-10-27 使用可能な操作符号を最大にし、様々なアドレシングモードを実現するプロセッサアーキテクチャ方式および命令セット Withdrawn JPH11212787A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/959.942 1997-10-29
US08/959,942 US5987583A (en) 1997-10-07 1997-10-29 Processor architecture scheme and instruction set for maximizing available opcodes and address selection modes

Publications (1)

Publication Number Publication Date
JPH11212787A true JPH11212787A (ja) 1999-08-06

Family

ID=25502611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10306134A Withdrawn JPH11212787A (ja) 1997-10-29 1998-10-27 使用可能な操作符号を最大にし、様々なアドレシングモードを実現するプロセッサアーキテクチャ方式および命令セット

Country Status (7)

Country Link
US (1) US5987583A (ja)
EP (1) EP0913766B1 (ja)
JP (1) JPH11212787A (ja)
KR (1) KR19990037573A (ja)
AT (1) ATE223082T1 (ja)
DE (1) DE69807412T2 (ja)
TW (1) TW408282B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003528389A (ja) * 2000-03-21 2003-09-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ アドレスモード拡張手段を有するデータキャリアおよびコマンド拡張手段を有するデータキャリア

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098160A (en) * 1997-10-28 2000-08-01 Microchip Technology Incorporated Data pointer for outputting indirect addressing mode addresses within a single cycle and method therefor
IL126043A (en) * 1998-09-02 2003-01-12 D S P Group Ltd Method and system for setting a new memory address pointer in a dsp
US6708268B1 (en) * 1999-03-26 2004-03-16 Microchip Technology Incorporated Microcontroller instruction set
US7437532B1 (en) * 2003-05-07 2008-10-14 Marvell International Ltd. Memory mapped register file
GB2402763B (en) * 2003-06-13 2006-03-01 Advanced Risc Mach Ltd Data access program instruction encoding
EP1706817B1 (en) 2003-10-23 2015-04-15 Microchip Technology Inc. Microcontroller with a virtual memory bank
US20050138330A1 (en) * 2003-12-23 2005-06-23 Maxim Integrated Products, Inc. MAXQ microcontroller
US8539210B2 (en) 2007-11-30 2013-09-17 Microchip Technology Incorporated Context switching with automatic saving of special function registers memory-mapped to all banks
US7996651B2 (en) * 2007-11-30 2011-08-09 Microchip Technology Incorporated Enhanced microprocessor or microcontroller
JP5757320B2 (ja) * 2013-12-12 2015-07-29 日本電気株式会社 データ処理装置、データ処理方法およびデータ処理プログラム
CN106293627B (zh) * 2016-07-27 2019-01-11 珠海市杰理科技股份有限公司 寄存器调用及调用指令编码的方法、装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3946366A (en) * 1973-01-26 1976-03-23 Sanders Associates, Inc. Addressing technique employing both direct and indirect register addressing
US4047245A (en) * 1976-07-12 1977-09-06 Western Electric Company, Incorporated Indirect memory addressing
US4240142A (en) * 1978-12-29 1980-12-16 Bell Telephone Laboratories, Incorporated Data processing apparatus providing autoincrementing of memory pointer registers
US5367648A (en) * 1991-02-20 1994-11-22 International Business Machines Corporation General purpose memory access scheme using register-indirect mode
US5717908A (en) * 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
US5832533A (en) * 1995-01-04 1998-11-03 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indexed addressing mode
US5860155A (en) * 1995-11-16 1999-01-12 Utek Semiconductor Corporation Instruction decoding mechanism for reducing execution time by earlier detection and replacement of indirect addresses with direct addresses

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003528389A (ja) * 2000-03-21 2003-09-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ アドレスモード拡張手段を有するデータキャリアおよびコマンド拡張手段を有するデータキャリア

Also Published As

Publication number Publication date
US5987583A (en) 1999-11-16
KR19990037573A (ko) 1999-05-25
TW408282B (en) 2000-10-11
DE69807412T2 (de) 2003-04-17
EP0913766B1 (en) 2002-08-28
ATE223082T1 (de) 2002-09-15
EP0913766A3 (en) 1999-12-29
EP0913766A2 (en) 1999-05-06
DE69807412D1 (de) 2002-10-02

Similar Documents

Publication Publication Date Title
US10514922B1 (en) Transfer triggered microcontroller with orthogonal instruction set
EP1320800B1 (en) Cpu accessing an extended register set in an extended register mode and corresponding method
US5926646A (en) Context-dependent memory-mapped registers for transparent expansion of a register file
EP0415461B1 (en) Central processing unit supporting variable length instructions
WO2001025900A1 (en) Risc processor using register codes for expanded instruction set
US7363476B2 (en) Method and apparatus to support an expanded register set
US6317822B1 (en) Instruction encoding techniques for microcontroller architecture
EP0908812B1 (en) Processor architecture scheme for implementing various addressing modes and method therefor
JPH1097421A (ja) 圧縮命令を実行するように構成されたマイクロプロセッサにおけるメモリをアドレスする方法および装置
US7865699B2 (en) Method and apparatus to extend the number of instruction bits in processors with fixed length instructions, in a manner compatible with existing code
JPH11212787A (ja) 使用可能な操作符号を最大にし、様々なアドレシングモードを実現するプロセッサアーキテクチャ方式および命令セット
US5117488A (en) Microprogram controlled microprocessor having a selectively expandable instruction code length including independent description of operand addressing and a type of operation for an operand by single instruction in a common coding scheme
US6687808B2 (en) Data processor using indirect register addressing
US6029241A (en) Processor architecture scheme having multiple bank address override sources for supplying address values and method therefor
JPH1153187A (ja) プロセッサ
EP1143333B1 (en) Microprocessor for supporting reduction of program codes in size
EP1634164A2 (en) Data access program instruction encoding
US5897665A (en) Register addressing for register-register architectures used for microprocessors and microcontrollers
KR100960095B1 (ko) 마이크로컨트롤러 명령어 셋트
JPS623332A (ja) 情報処理装置
JPH09505428A (ja) ページアドレスモードを有するマイクロコントローラ
US7370159B2 (en) Microprocessor having an extended addressable space
JP3902374B2 (ja) バイエンディアン複数命令長実行方法
KR100897857B1 (ko) 마이크로컨트롤러 명령어 셋트
JPH07104780B2 (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060110