JPH11232100A - 単一サイクル内に間接アドレシングモードアドレスを出力するデータポインタおよびその方法 - Google Patents

単一サイクル内に間接アドレシングモードアドレスを出力するデータポインタおよびその方法

Info

Publication number
JPH11232100A
JPH11232100A JP10307562A JP30756298A JPH11232100A JP H11232100 A JPH11232100 A JP H11232100A JP 10307562 A JP10307562 A JP 10307562A JP 30756298 A JP30756298 A JP 30756298A JP H11232100 A JPH11232100 A JP H11232100A
Authority
JP
Japan
Prior art keywords
address
indirect addressing
addressing mode
data pointer
register
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
JP10307562A
Other languages
English (en)
Inventor
Rodney J Drake
ジェイ. ディレイク ロドニー
Joseph W Triece
ダブリュー. トリース ジョセフ
Igor Wojewoda
ウォジェウォダ イゴール
Darrel Johansen
ヨハンセン ダレル
Randy L Yach
エル. ヤック ランディ
Brian Boles
ボレス ブライアン
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 JPH11232100A publication Critical patent/JPH11232100A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/35Indirect addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 間接アドレシングモードアドレスを生成する
データポインタ及び、複数のマルチプル間接アドレシン
グモードのうちの選択された1つに対し、単一サイクル
内で、間接アドレシングモードアドレスを生成するデー
タポインタを提供する。 【解決手段】 データポインタは、マルチプルアドレシ
ングモードのエンコードを可能にするプロセッサアーキ
テクチャスキームと、単純間接アドレシングモードで用
いられるオペランドのカレントアドレスを格納するデー
タポインタレジスタ12と、データポインタレジスタを
設定値だけインクリメントするインクリメンタ14と、
単純間接データアドレシングモードで用いられるオペラ
ンドのカレントアドレスとオフセット値とを加算する加
算器16と、所望の間接アドレシングモードアドレスを
選択する、データポインタレジスタの出力端と、インク
リメンタの出力端と、加算器の出力端とに接続されたマ
ルチプレクサ回路18とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概してポインタに
関し、特に、複数のマルチプル間接アドレシングモード
のうちの選択された1つに対し、単一サイクル内で間接
アドレシングモードアドレスを生成するデータポインタ
に関する。
【0002】
【従来の技術】本出願の優先権主張の基礎となる米国出
願S.N.08/959,559は、1997年10月
8日にMitraらの名で出願された”PROCESS
ORARCHITECTURE SCHEME FOR
IMPLEMENTINGVARIOUS ADDR
ESSING MODES AND METHODTH
EREFOR”という名称の出願であって、米国出願
S.N.08/959,559と同一の譲受人に譲渡さ
れている出願に関連している。米国出願S.N.08/
959,559に関連する上記出願は参考のためここに
援用される。
【0003】概して、プロセッサは、中央処理装置(C
PU)が存在し格納された命令またはマイクロコードを
フェッチして実行するために用いられるエンティティで
ある。プロセッサのいくつかの例は、マイクロコントロ
ーラ、マイクロプロセッサ、およびディジタルシグナル
プロセッサである。各タイプのプロセッサは、一般にオ
ペランドと呼ばれるデータを処理する。このデータは、
概してレジスタまたはメモリ空間に格納される。
【0004】命令が、プロセッサのCPUにあるオペレ
ーションを実行させ且つオペレーションのための1以上
のオペランドを識別させる。プロセッサは、オペレーシ
ョンのためにデータをアドレシングする様々な手段を提
供する。これらの手段は、一般にアドレシングモードと
呼ばれている。アドレシングモードは典型的には、演算
および論理演算およびデータ移動オペレーション用に用
いられ、ソースオペランド、デスティネーションオペラ
ンド、またはその両方に適用され得る。
【0005】
【発明が解決しようとする課題】ある間接アドレシング
モードを実行するとき、アドレスしなければならない速
度に関して臨界的な事項がいくつかある。ある間接アド
レシングモードのために適切なアドレスを得るために
は、正確なアドレスを適切にロードするための2以上の
サイクルが必要である。これらの遅延は、タイミングに
関する問題を引き起こす。例えば、命令がオフセット付
き間接アドレシングモードを必要とする場合、値が即座
に使用可能でなければならない。要求の後オフセット機
能を実行しようとした場合、単純シリアル加算器ではな
され得ない。ルックアヘッド加算器は適切なアドレスを
供給することができるかもしれないが、このタイプの加
算器を実装することは、高価なシリコン(silico
n real estate)を大量に必要とし、従っ
てコストを上昇させる。そのため、先行技術においては
シリコンの量とタイミングとのいずれかを選択する必要
がある。
【0006】従って、間接アドレシングモードアドレス
を生成するデータポインタを供給する必要がある。デー
タポインタは、選択された間接アドレシングモードに対
し、単一サイクル内で間接アドレシングモードアドレス
を生成することができなければならない。データポイン
タは、プロセッサアーキテクチャのシリコンの量を大幅
に増加させることなく、選択された間接アドレシングモ
ードに対し単一サイクル内で間接アドレシングモードア
ドレスを生成することができなければならない。
【0007】本発明の目的は、間接アドレシングモード
アドレスを生成するデータポインタを提供することであ
る。
【0008】本発明の別の目的は、選択された間接アド
レシングモードに対し単一サイクル内で間接アドレシン
グモードアドレスを生成することができるデータポイン
タを提供することである。
【0009】本発明のさらに別の目的は、プロセッサア
ーキテクチャのシリコンの量を大幅に増加させることな
く、選択された間接アドレシングモードに対し単一サイ
クル内で間接アドレシングモードアドレスを生成するこ
とができるデータポインタを提供することである。
【0010】
【課題を解決するための手段】本発明の複数のマルチプ
ル間接アドレシングモードのうちの選択された1つに対
し、単一サイクル内で、間接アドレシングモードアドレ
スを生成するデータポインタは、該マルチプルアドレシ
ングモードのエンコードを可能にするプロセッサアーキ
テクチャスキームと、単純間接アドレシングモードで用
いられるオペランドのカレントアドレスを格納する、該
プロセッサアーキテクチャスキームに接続されたデータ
ポインタレジスタと、単純間接データアドレシングモー
ドで用いられる該オペランドのカレントアドレスを設定
値だけインクリメントして自動プリインクリメント付き
間接アドレシングモードで用いられるオペランドのアド
レスを生成する、該データポインタレジスタに接続され
たインクリメンタと、単純間接データアドレシングモー
ドで用いられるオペランドの該カレントアドレスとオフ
セット値とを加算して、オフセット付き間接アドレシン
グモードで用いられるオペランドのアドレスを生成す
る、該データポインタレジスタに接続された加算器と、
所望の間接アドレシングモードアドレスを選択する、該
データポインタレジスタの出力端と、該インクリメンタ
の出力端と、該加算器の出力端とに接続されたマルチプ
レクサ回路とを含み、そのことにより上記目的が達成さ
れる。
【0011】前記データポイントは、前記オフセット値
を格納して前記加算器に送る、該加算器に接続されたオ
フセットレジスタをさらに含んでもよい。
【0012】前記加算器は、シリアルキャリを有する単
純シリアル加算器であってもよい。
【0013】前記プロセッサアーキテクチャスキーム
は、中央処理装置(CPU)と、データを格納する、該
CPUに接続されたメモリと、前記データポインタレジ
スタと関連する該メモリ内の専用仮想レジスタアドレス
ロケーションであって、各々が、アクセスされたときに
該データポインタレジスタと共に用いられる別個の異な
る間接アドレシングモードを指示し且つ確立する、専用
仮想レジスタアドレスロケーションとを含んでもよい。
【0014】前記マルチプレクサは、前記所望の間接ア
ドレシングモードアドレスを選択する、前記専用仮想レ
ジスタアドレスロケーションに接続された選択入力端を
有してもよい。
【0015】前記メモリ内の前記専用仮想レジスタアド
レスロケーションは、単純間接アドレシングに対して1
つの専用仮想レジスタアドレスロケーションと、自動プ
リインクリメント付き間接アドレシングに対して1つの
専用仮想レジスタアドレスロケーションと、オフセット
付き間接アドレシングに対して1つの専用仮想レジスタ
アドレスロケーションとを有してもよい。
【0016】本発明の複数のマルチプル間接アドレシン
グモードのうちの選択された1つに対し、単一サイクル
内で、間接アドレシングモードアドレスを生成するデー
タポインタは、単純間接アドレシングモードで用いられ
るオペランドのカレントアドレスを格納するデータポイ
ンタレジスタと、該マルチプルアドレシングモードのエ
ンコードを可能にするプロセッサアーキテクチャスキー
ムであって、中央処理装置(CPU)と、データを格納
する、該CPUに接続されたメモリと、該データポイン
タレジスタと関連する該メモリ内の専用仮想レジスタア
ドレスロケーションであって、各々が、アクセスされた
ときに該データポインタレジスタと共に用いられる別個
の異なる間接アドレシングモードを指示し且つ確立す
る、専用仮想レジスタアドレスロケーションとを含むプ
ロセッサアーキテクチャスキームと、単純間接データア
ドレシングモードで用いられるオペランドの該カレント
アドレスを設定値だけインクリメントして自動プリイン
クリメント付き間接アドレシングモードで用いられるオ
ペランドのアドレスを生成する、該データポインタレジ
スタに接続されたインクリメンタと、単純間接データア
ドレシングモードで用いられるオペランドの該カレント
アドレスとオフセット値とを加算して、オフセット付き
間接アドレシングモードで用いられるオペランドのアド
レスを生成する、該データポインタレジスタに接続され
た加算器と、信号による指示を受けると、該オフセット
値を格納し且つ該加算器に送る、該加算器に接続された
オフセットレジスタと、所望の間接アドレシングモード
アドレスを選択する、該データポインタレジスタの出力
端と、該インクリメンタの出力端と、該加算器の出力端
とに接続されたマルチプレクサ回路とを含み、そのこと
により上記目的が達成される。
【0017】前記加算器は、シリアルキャリを有する単
純シリアル加算器であってもよい。
【0018】前記マルチプレクサは、前記所望の間接ア
ドレシングモードアドレスを選択する、前記専用仮想レ
ジスタアドレスロケーションに接続された選択入力端を
有していてもよい。
【0019】前記メモリ内の前記専用仮想レジスタアド
レスロケーションは、単純間接アドレシングに対して1
つの専用仮想レジスタアドレスロケーションと、自動プ
リインクリメント付き間接アドレシングに対して1つの
専用仮想レジスタアドレスロケーションと、オフセット
付き間接アドレシングに対して1つの専用仮想レジスタ
アドレスロケーションとを有していてもよい。
【0020】本発明の複数のマルチプル間接アドレシン
グモードのうちの選択された1つに対し、単一サイクル
内で、間接アドレシングモードアドレスを生成するデー
タポインタを提供する方法は、該マルチプルアドレシン
グモードのエンコードを可能にするプロセッサアーキテ
クチャスキームを提供する工程と、単純間接アドレシン
グモードで用いられるオペランドのカレントアドレスを
格納する、該プロセッサアーキテクチャスキームに接続
された、データポインタレジスタを提供する工程と、単
純間接データアドレシングモードで用いられるオペラン
ドの該カレントアドレスを設定値だけインクリメントし
て自動プリインクリメント付き間接アドレシングモード
で用いられるオペランドのアドレスを生成する、該デー
タポインタレジスタに接続されたインクリメンタを提供
する工程と、単純間接データアドレシングモードで用い
られるオペランドの該カレントアドレスとオフセット値
とを加算して、オフセット付き間接アドレシングモード
で用いられるオペランドのアドレスを生成する、該デー
タポインタレジスタに接続された加算器を提供する工程
と、所望の間接アドレシングモードアドレスを選択す
る、該データポインタレジスタの出力端と、該インクリ
メンタの出力端と、該加算器の出力端とに接続されたマ
ルチプレクサ回路を提供する工程とを含み、そのことに
より上記目的が達成される。
【0021】前記方法は、前記オフセット値を格納して
前記加算器に送る、該加算器に接続されたオフセットレ
ジスタを提供する工程をさらに含んでいてもよい。
【0022】前記加算器を提供する工程は、シリアルキ
ャリを有する単純シリアル加算器を提供する工程をさら
に含んでいてもよい。
【0023】前記プロセッサアーキテクチャスキームを
提供する工程は、中央処理装置(CPU)を提供する工
程と、データを格納する、該CPUに接続されたメモリ
を提供する工程と、前記データポインタレジスタと関連
する該メモリ内の専用仮想レジスタアドレスロケーショ
ンであって、各々が、アクセスされたときに該データポ
インタレジスタと共に用いられる別個の異なる間接アド
レシングモードを指示し且つ確立する、専用仮想レジス
タアドレスロケーションを提供する工程と、をさらに含
んでいてもよい。
【0024】前記方法は、前記マルチプレクサの選択入
力端を、前記所望の間接アドレシングモードアドレスを
選択する、前記専用仮想レジスタアドレスロケーション
に接続する工程をさらに含んでいてもよい。
【0025】前記メモリ内の前記専用仮想レジスタアド
レスロケーションは、単純間接アドレシングに対して1
つの専用仮想レジスタアドレスロケーションと、自動プ
リインクリメント付き間接アドレシングに対して1つの
専用仮想レジスタアドレスロケーションと、オフセット
付き間接アドレシングに対して1つの専用仮想レジスタ
アドレスロケーションとを有していてもよい。
【0026】複数のマルチプル間接アドレシングモード
のうちの選択された1つに対し、単一サイクル内で、間
接アドレシングモードアドレスを生成するデータポイン
タが提供される。データポインタは、マルチプルアドレ
シングモードのエンコードを可能にするプロセッサアー
キテクチャスキームと共に用いられる。データポインタ
レジスタは、プロセッサアーキテクチャスキームに接続
され、単純間接アドレシングモードで用いられるオペラ
ンドのカレントアドレスを格納する。インクリメンタ
は、データポインタレジスタに接続され、単純間接デー
タアドレシングモードで用いられるオペランドのカレン
トアドレスを設定値だけインクリメントして自動プリイ
ンクリメント付き間接アドレシングモードで用いられる
オペランドのアドレスを生成する。加算器は、データポ
インタレジスタと接続され、単純間接データアドレシン
グモードで用いられるオペランドのカレントアドレスと
オフセット値とを加算して、オフセット付き間接アドレ
シングモードで用いられるオペランドのアドレスを生成
する。マルチプレクサ回路は、データポインタレジスタ
の出力端と、インクリメンタの出力端と、加算器の出力
端とに接続され、所望の間接アドレシングモードアドレ
スを選択する。
【0027】本発明の上記および他の目的、特徴および
利点は、以下の本発明の好適な実施形態の記載および添
付の図面から明らかになる。
【0028】
【発明の実施の形態】図1に、複数のマルチプル間接ア
ドレシングモードのうちの選択された1つに対し、単一
サイクル内で間接アドレシングモードアドレスを生成す
るデータポインタ10を示す。データポインタ10は、
マルチプル間接アドレシングモードのエンコード(enco
de)を可能にするプロセッサアーキテクチャスキーム3
0(図2)内に実装される。データポインタ10は、プ
ロセッサアーキテクチャスキーム30に接続されたデー
タポインタレジスタ12を有する。データポインタレジ
スタ12は、単純間接アドレシングモードで用いられる
オペランドのカレントアドレスを格納するために用いら
れる。
【0029】データポインタ10は、データポインタレ
ジスタ12の出力端に接続された入力端を有するインク
リメンタ14を有する。インクリメンタ14は、データ
ポインタレジスタ12内に格納されたオペランドのカレ
ントアドレス(すなわち、単純間接アドレシングモード
で用いられるオペランドのカレントアドレス)をインク
リメントするために用いられる。インクリメンタ14は
このアドレスを設定値だけ増加させる。本発明の好適な
実施形態において、インクリメンタ14は、データポイ
ンタレジスタ12内に格納されたカレントアドレスを1
アドレスロケーションだけインクリメントする。単純間
接アドレシングモードで用いられるオペランドのカレン
トアドレスを、データアクセスに先立ってインクリメン
トすることにより、インクリメンタ14は、自動プリイ
ンクリメントを有する間接アドレシングモードで用いら
れるオペランドのアドレスを生成することができる。
【0030】データポインタ10はさらに、データポイ
ンタレジスタ12の出力端に接続された入力端を有する
加算器16を有する。加算器16は、データポインタレ
ジスタ12内に格納されたカレントアドレスとオフセッ
ト値とを加算するために用いられる。データポインタレ
ジスタ12内のカレントアドレスとオフセット値とを加
算することにより、加算器16は、オフセット付き間接
アドレシングモードで用いられるオペランドのアドレス
を生成することができる。オフセット値は、システム内
のメモリ装置からロードされ得る。本発明の好適な実施
形態において、オフセット値は、プロセッサアーキテク
チャ30(図2)のデータメモリ32(図2)内に格納
されたオフセットレジスタ20内に格納されている。加
算器16は、いずれのタイプの加算器でもあり得る。加
算器16は、ルックアヘッド加算器であり得るが、ルッ
クアヘッド加算器はより多くのシリコンの使用を必要と
するため望ましくない。好適には、シリアルキャリを有
する単純シリアル加算器が用いられる。
【0031】マルチプレクサ回路18は、データポイン
タレジスタ12の出力端に接続された第1の入力端と、
インクリメンタ14の出力端に接続された第2の入力端
と、加算器16の出力端に接続された第3の入力端とを
有する。マルチプレクサ回路18は、上記の素子により
生成された所望の間接アドレシングモードアドレスを選
択し、選択されたアドレスを命令レジスタに出力するた
めに用いられる。選択ライン22が、マルチプレクサ回
路18に接続されている。選択ライン22はさらに、プ
ロセッサアーキテクチャスキーム30に接続されてい
る。所望の間接アドレシングモードがプロセッサアーキ
テクチャスキーム30内で選択されると、選択ライン2
2はマルチプレクサ回路18に、命令レジスタに出力す
べきアドレスを指示する。
【0032】図2に、プロセッサアーキテクチャスキー
ム30を示す。プロセッサアーキテクチャスキーム30
は、マルチプルアドレシングモードのエンコードを可能
にしなければならない。好適には、プロセッサアーキテ
クチャスキーム30は、仮想レジスタアドレスの使用を
介してマルチプル間接アドレシングモードのエンコード
を可能にする。これにより、プロセッサアーキテクチャ
スキーム30が直接アドレス指定可能なレジスタの数を
最大にすることが可能になる。
【0033】データポインタレジスタ12は、データメ
モリ32内に実装される。データメモリ32は、複数の
アドレスロケーション34を含む。図2に示す実施形態
において、データメモリ32は、複数のバンク36に分
割された線形4Kメモリであり、各バンク36は、25
6のアドレスロケーション34を有する。データポイン
タレジスタ12は、レジスタアドレスマップ内に予約さ
れた1以上の仮想レジスタアドレスロケーション38を
有する。予約された仮想レジスタアドレスロケーション
38の各々は、アクセスされると、間接アドレシングモ
ードを開始する。
【0034】現在、5つの主要なタイプのアドレシング
モードが存在する。すなわち、単純間接アドレシング、
自動ポストインクリメント付き間接アドレシング、自動
プリデクリメント付き間接アドレシング、自動プリイン
クリメント付き間接アドレシング、およびオフセット付
き間接アドレシングである。単純間接アドレシングモー
ドの場合、オペランドのアドレスはデータポインタレジ
スタ12内に保持される。CPU40は、まずデータポ
インタレジスタ12にアクセスすることによりアドレス
を獲得し、このアドレスを用いてオペランドにアクセス
する。自動インクリメントまたは自動デクリメント付き
間接アドレシングは、データポインタレジスタ12がデ
ータアクセス前(すなわちプリインクリメントまたはプ
リデクリメント)またはデータアクセス後(すなわちポ
ストインクリメントまたはポストデクリメント)のいず
れかにインクリメントまたはデクリメントされる間接ア
ドレシングの形態である。オフセット付き間接アドレシ
ングモードの場合、オペランドのアドレスは、データポ
インタレジスタ12の内容にオフセット値を加えること
により計算される。オフセット値は、命令内に埋め込ま
れ得るか、または別のレジスタから得られ得る。本実施
形態において、オフセット値は、アキュムレータまたは
「作動」レジスタである「w」レジスタ20(図1)か
ら得られる。上述したように、データポインタレジスタ
12は、オペランドアクセスの前または後にインクリメ
ントまたはデクリメントされ得る。
【0035】データポインタレジスタ12は、実装すべ
き間接アドレシングモードの各々に対して、データメモ
リ32内に別々の仮想レジスタアドレスロケーション3
8を必要とする。本発明の好適な実施形態において、上
記5つの間接アドレシングモードを実装するために、5
つの仮想レジスタアドレスロケーション38が必要であ
る。しかし、データポインタレジスタ12の使用によっ
ては、より多くの又はより少ない間接アドレシングモー
ドが実装され得る。さらに、データメモリ32内に追加
のデータポインタレジスタ12が実装され得る。各デー
タポインタレジスタ12は、レジスタアドレスマップ内
に予約された1以上の仮想レジスタアドレスロケーショ
ン38を有する。予約された仮想レジスタアドレスロケ
ーション38の各々は、アクセスされると、関連するデ
ータポインタレジスタ12用の間接アドレシングモード
を開始する。各データポインタレジスタ12は、読出し
および書込み可能なアドレスロケーションである。本発
明の好適な実施形態において、各データポインタレジス
タ12は、4Kバイト長のメモリ領域にアクセス可能な
12ビット幅のポインタである。従って、各データポイ
ンタレジスタ12は、読出し可能および書込み可能なレ
ジスタとしてアクセス可能な2つの8ビット幅レジスタ
(高バイトおよび低バイト)として整理されている。そ
のため、本発明の好適な実施形態において、5つの間接
アドレシングモードを有する12ビット幅のデータポイ
ンタを実装するために7つのアドレスロケーションが用
いられる。
【0036】動作 図2を参照して、本発明の動作を説明する。第1のバン
ク(すなわち、バンク0)内で、第1の128のロケー
ションが専用機能レジスタのために予約される。これら
のロケーションには、専用間接アドレスも位置してい
る。1以上のデータポインタレジスタ12もまた、この
領域に位置している。各データポインタレジスタ12
は、間接アドレシングを開始するために、レジスタアド
レスマップ内に予約された1以上の仮想レジスタアドレ
スロケーション38を有する。間接アドレシングロケー
ションのいずれもがアクセスされない場合、直接アドレ
シングが起こる。予約されたアドレスロケーション38
の1つに命令がアクセスした場合、間接アドレシングモ
ードが、関連するデータポインタレジスタ12と共に用
いられる。例えば、命令が「ADD w,12h」であ
る場合、命令は通常、「w」の内容にアドレス12hの
内容を加算し得られた値を「w」内に載置する。しか
し、アドレス12hはアドレス10h、11hにおける
データポインタレジスタ12に対して予約されたアドレ
スロケーションであるため、「w」はアドレス10h、
11hにおけるデータポインタレジスタ36によってポ
イントされるリアルロケーションの内容に加算される。
そして、総計が「w」内に格納される。アドレス12h
はさらに、ポストインクリメントが含まれていることも
示す。従って、アドレス10h、11hのデータポイン
タレジスタ36は、設定値、通常1アドレスロケーショ
ンだけ自動的にインクリメントされる。
【0037】データポインタ10には、全ての間接アド
レシングモードアドレス(すなわち、データポインタレ
ジスタには単純間接アドレシングモードアドレス、イン
クリメンタ14には自動プリインクリメント付き間接ア
ドレシングモード、そして加算器16にはオフセットア
ドレス付き間接アドレシングモード)がプリロードされ
ている。予約された仮想レジスタアドレスロケーション
38のうちの1つがアクセスされると、マルチプレクサ
回路18に信号を送って、所望の間接アドレシングモー
ドアドレスを命令レジスタに出力させる。自動ポストイ
ンクリメント付き間接アドレシングモード用および自動
ポストデクリメント付き間接アドレシング用のアドレス
がアクセスされると、データポインタ10はデータポイ
ンタレジスタ12内に格納されたアドレスを出力する。
次いで、このアドレスは、命令実行後インクリメントま
たはデクリメントされる。データポインタレジスタ12
またはオフセットレジスタ20内のデータが変更される
と、データポインタ10は更新し新しいデータを生成す
る。従って、ポインタは常に、ルックアヘッド加算器な
どに用いられる追加のシリコンを必要とすることなく、
単一サイクル内で所望の間接アドレシングモードアドレ
スを出力することができる。
【0038】本発明を、特定の好適な実施形態に照らし
て図示し述べてきたが、本発明の思想および範囲から逸
脱することなく、形態および詳細に対する上記またはそ
の他の変更が可能であることは当業者には明らかであ
る。
【0039】
【発明の効果】本発明によると、データポインタは常
に、追加のシリコンを必要とすることなく、単一サイク
ル内で所望の間接アドレシングモードアドレスを出力す
ることができる。
【図面の簡単な説明】
【図1】複数のマルチプル間接アドレシングモードのう
ちの選択された1つに対し、単一サイクル内で間接アド
レシングモードアドレスを生成するデータポインタの簡
単なブロック図である。
【図2】図1に示すデータポインタと共に用いられるプ
ロセッサアーキテクチャスキームを示す図である。
【符号の説明】
10 データポインタ 12 データポインタレジスタ 14 インクリメンタ 16 加算器 18 マルチプレクサ回路 20 「w」レジスタ 22 選択ライン 30 プロセッサアーキテクチャスキーム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョセフ ダブリュー. トリース アメリカ合衆国 アリゾナ 85048, フ ェニックス, サウス 7ティーエイチ プレイス 15610 (72)発明者 イゴール ウォジェウォダ アメリカ合衆国 アリゾナ 85040, フ ェニックス, サウス 46ティーエイチ ストリート 5801 (72)発明者 ダレル ヨハンセン アメリカ合衆国 アリゾナ 85284, テ ンピ, ベルモント ドライブ 1923 (72)発明者 ランディ エル. ヤック アメリカ合衆国 アリゾナ 85048, フ ェニックス, サウス 25ティーエイチ ストリート 16238 (72)発明者 ブライアン ボレス アメリカ合衆国 アリゾナ 85215, メ サ, ノース タボー ストリート 4220

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 複数のマルチプル間接アドレシングモー
    ドのうちの選択された1つに対し、単一サイクル内で、
    間接アドレシングモードアドレスを生成するデータポイ
    ンタであって、 該マルチプルアドレシングモードのエンコードを可能に
    するプロセッサアーキテクチャスキームと、 単純間接アドレシングモードで用いられるオペランドの
    カレントアドレスを格納する、該プロセッサアーキテク
    チャスキームに接続されたデータポインタレジスタと、 単純間接データアドレシングモードで用いられるオペラ
    ンドのカレントアドレスを設定値だけインクリメントし
    て自動プリインクリメント付き間接アドレシングモード
    で用いられるオペランドのアドレスを生成する、該デー
    タポインタレジスタに接続されたインクリメンタと、 単純間接データアドレシングモードで用いられるオペラ
    ンドの該カレントアドレスとオフセット値とを加算し
    て、オフセット付き間接アドレシングモードで用いられ
    るオペランドのアドレスを生成する、該データポインタ
    レジスタに接続された加算器と、 所望の間接アドレシングモードアドレスを選択する、該
    データポインタレジスタの出力端と、該インクリメンタ
    の出力端と、該加算器の出力端とに接続されたマルチプ
    レクサ回路と、を含む、データポインタ。
  2. 【請求項2】 前記オフセット値を格納して前記加算器
    に送る、該加算器に接続されたオフセットレジスタをさ
    らに含む、請求項1に記載の単一サイクル内で間接アド
    レシングモードアドレスを生成するデータポインタ。
  3. 【請求項3】 前記加算器が、シリアルキャリを有する
    単純シリアル加算器である、請求項2に記載の単一サイ
    クル内で間接アドレシングモードアドレスを生成するデ
    ータポインタ。
  4. 【請求項4】 前記プロセッサアーキテクチャスキーム
    が、 中央処理装置(CPU)と、 データを格納する、該CPUに接続されたメモリと、 前記データポインタレジスタと関連する該メモリ内の専
    用仮想レジスタアドレスロケーションであって、各々
    が、アクセスされたときに該データポインタレジスタと
    共に用いられる別個の異なる間接アドレシングモードを
    指示し且つ確立する、専用仮想レジスタアドレスロケー
    ションと、を含む、請求項1に記載の単一サイクル内で
    間接アドレシングモードアドレスを生成するデータポイ
    ンタ。
  5. 【請求項5】 前記マルチプレクサが、前記所望の間接
    アドレシングモードアドレスを選択する、前記専用仮想
    レジスタアドレスロケーションに接続された選択入力端
    を有する、請求項4に記載の単一サイクル内で間接アド
    レシングモードアドレスを生成するデータポインタ。
  6. 【請求項6】 前記メモリ内の前記専用仮想レジスタア
    ドレスロケーションが、単純間接アドレシングに対して
    1つの専用仮想レジスタアドレスロケーションと、自動
    プリインクリメント付き間接アドレシングに対して1つ
    の専用仮想レジスタアドレスロケーションと、オフセッ
    ト付き間接アドレシングに対して1つの専用仮想レジス
    タアドレスロケーションとを有する、請求項4に記載の
    単一サイクル内で間接アドレシングモードアドレスを生
    成するデータポインタ。
  7. 【請求項7】 複数のマルチプル間接アドレシングモー
    ドのうちの選択された1つに対し、単一サイクル内で、
    間接アドレシングモードアドレスを生成するデータポイ
    ンタであって、 単純間接アドレシングモードで用いられるオペランドの
    カレントアドレスを格納するデータポインタレジスタ
    と、 該マルチプルアドレシングモードのエンコードを可能に
    するプロセッサアーキテクチャスキームであって、 中央処理装置(CPU)と、 データを格納する、該CPUに接続されたメモリと、 該データポインタレジスタと関連する該メモリ内の専用
    仮想レジスタアドレスロケーションであって、各々が、
    アクセスされたときに該データポインタレジスタと共に
    用いられる別個の異なる間接アドレシングモードを指示
    し且つ確立する、専用仮想レジスタアドレスロケーショ
    ンと、を含むプロセッサアーキテクチャスキームと、 単純間接データアドレシングモードで用いられるオペラ
    ンドの該カレントアドレスを設定値だけインクリメント
    して自動プリインクリメント付き間接アドレシングモー
    ドで用いられるオペランドのアドレスを生成する、該デ
    ータポインタレジスタに接続されたインクリメンタと、 単純間接データアドレシングモードで用いられるオペラ
    ンドの該カレントアドレスとオフセット値とを加算し
    て、オフセット付き間接アドレシングモードで用いられ
    るオペランドのアドレスを生成する、該データポインタ
    レジスタに接続された加算器と、 信号による指示を受けると、該オフセット値を格納し且
    つ該加算器に送る、該加算器に接続されたオフセットレ
    ジスタと、 所望の間接アドレシングモードアドレスを選択する、該
    データポインタレジスタの出力端と、該インクリメンタ
    の出力端と、該加算器の出力端とに接続されたマルチプ
    レクサ回路と、を含む、データポインタ。
  8. 【請求項8】 前記加算器が、シリアルキャリを有する
    単純シリアル加算器である、請求項7に記載の単一サイ
    クル内で間接アドレシングモードアドレスを生成するデ
    ータポインタ。
  9. 【請求項9】 前記マルチプレクサが、前記所望の間接
    アドレシングモードアドレスを選択する、前記専用仮想
    レジスタアドレスロケーションに接続された選択入力端
    を有する、請求項7に記載の単一サイクル内で間接アド
    レシングモードアドレスを生成するデータポインタ。
  10. 【請求項10】 前記メモリ内の前記専用仮想レジスタ
    アドレスロケーションが、単純間接アドレシングに対し
    て1つの専用仮想レジスタアドレスロケーションと、自
    動プリインクリメント付き間接アドレシングに対して1
    つの専用仮想レジスタアドレスロケーションと、オフセ
    ット付き間接アドレシングに対して1つの専用仮想レジ
    スタアドレスロケーションとを有する、請求項7に記載
    の単一サイクル内で間接アドレシングモードアドレスを
    生成するデータポインタ。
  11. 【請求項11】 複数のマルチプル間接アドレシングモ
    ードのうちの選択された1つに対し、単一サイクル内
    で、間接アドレシングモードアドレスを生成するデータ
    ポインタを提供する方法であって、 該マルチプルアドレシングモードのエンコードを可能に
    するプロセッサアーキテクチャスキームを提供する工程
    と、 単純間接アドレシングモードで用いられるオペランドの
    カレントアドレスを格納する、該プロセッサアーキテク
    チャスキームに接続された、データポインタレジスタを
    提供する工程と、 単純間接データアドレシングモードで用いられるオペラ
    ンドの該カレントアドレスを設定値だけインクリメント
    して自動プリインクリメント付き間接アドレシングモー
    ドで用いられるオペランドのアドレスを生成する、該デ
    ータポインタレジスタに接続されたインクリメンタを提
    供する工程と、 単純間接データアドレシングモードで用いられるオペラ
    ンドの該カレントアドレスとオフセット値とを加算し
    て、オフセット付き間接アドレシングモードで用いられ
    るオペランドのアドレスを生成する、該データポインタ
    レジスタに接続された加算器を提供する工程と、 所望の間接アドレシングモードアドレスを選択する、該
    データポインタレジスタの出力端と、該インクリメンタ
    の出力端と、該加算器の出力端とに接続されたマルチプ
    レクサ回路を提供する工程と、を含む、方法。
  12. 【請求項12】 前記オフセット値を格納して前記加算
    器に送る、該加算器に接続されたオフセットレジスタを
    提供する工程をさらに含む、請求項11に記載の方法。
  13. 【請求項13】 前記加算器を提供する工程が、シリア
    ルキャリを有する単純シリアル加算器を提供する工程を
    さらに含む、請求項12に記載の方法。
  14. 【請求項14】 前記プロセッサアーキテクチャスキー
    ムを提供する工程が、 中央処理装置(CPU)を提供する工程と、 データを格納する、該CPUに接続されたメモリを提供
    する工程と、 前記データポインタレジスタと関連する該メモリ内の専
    用仮想レジスタアドレスロケーションであって、各々
    が、アクセスされたときに該データポインタレジスタと
    共に用いられる別個の異なる間接アドレシングモードを
    指示し且つ確立する、専用仮想レジスタアドレスロケー
    ションを提供する工程と、をさらに含む、請求項11に
    記載の方法。
  15. 【請求項15】 前記マルチプレクサの選択入力端を、
    前記所望の間接アドレシングモードアドレスを選択す
    る、前記専用仮想レジスタアドレスロケーションに接続
    する工程をさらに含む、請求項14に記載の方法。
  16. 【請求項16】 前記メモリ内の前記専用仮想レジスタ
    アドレスロケーションが、単純間接アドレシングに対し
    て1つの専用仮想レジスタアドレスロケーションと、自
    動プリインクリメント付き間接アドレシングに対して1
    つの専用仮想レジスタアドレスロケーションと、オフセ
    ット付き間接アドレシングに対して1つの専用仮想レジ
    スタアドレスロケーションとを有する、請求項14に記
    載の方法。
JP10307562A 1997-10-28 1998-10-28 単一サイクル内に間接アドレシングモードアドレスを出力するデータポインタおよびその方法 Withdrawn JPH11232100A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/959.559 1997-10-28
US08/959,559 US6098160A (en) 1997-10-28 1997-10-28 Data pointer for outputting indirect addressing mode addresses within a single cycle and method therefor

Publications (1)

Publication Number Publication Date
JPH11232100A true JPH11232100A (ja) 1999-08-27

Family

ID=25502138

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10307562A Withdrawn JPH11232100A (ja) 1997-10-28 1998-10-28 単一サイクル内に間接アドレシングモードアドレスを出力するデータポインタおよびその方法

Country Status (7)

Country Link
US (1) US6098160A (ja)
EP (1) EP0917048B1 (ja)
JP (1) JPH11232100A (ja)
KR (1) KR19990037571A (ja)
AT (1) ATE224558T1 (ja)
DE (1) DE69808020T2 (ja)
TW (1) TW429360B (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 (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467037B1 (en) * 1998-06-30 2002-10-15 Sun Microsystems, Inc. Utilizing a program counter with one or more data counters for executing instructions
JP2003044273A (ja) * 2001-08-01 2003-02-14 Nec Corp データ処理装置及びデータ処理方法
WO2004003732A1 (en) * 2002-06-27 2004-01-08 Infineon Technologies Ag Method for accessing local variables
US7305543B2 (en) * 2003-07-30 2007-12-04 Nxp B.V. Memory organization allowing single cycle pointer addressing where the address of the pointer is also contained in one of the memory locations
KR100897857B1 (ko) 2003-10-23 2009-05-15 마이크로칩 테크놀로지 인코포레이티드 마이크로컨트롤러 명령어 셋트
US7352372B2 (en) 2004-10-22 2008-04-01 Seiko Epson Corporation Indirect addressing mode for display controller
US7383420B2 (en) * 2005-03-24 2008-06-03 Qualcomm Incorporated Processor and method of indirect register read and write operations
KR100698310B1 (ko) * 2005-06-03 2007-03-23 엘지전자 주식회사 데이터 억세스 제어 장치 및 데이터 호출 방법
US8184110B2 (en) 2007-11-05 2012-05-22 Seiko Epson Corporation Method and apparatus for indirect interface with enhanced programmable direct port

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4047245A (en) * 1976-07-12 1977-09-06 Western Electric Company, Incorporated Indirect memory addressing
JPS59174948A (ja) * 1983-03-25 1984-10-03 Toshiba Corp 情報処理装置
US5142633A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Preprocessing implied specifiers in a pipelined processor
US5450553A (en) * 1990-06-15 1995-09-12 Kabushiki Kaisha Toshiba Digital signal processor including address generation by execute/stop instruction designated
DE69130138T2 (de) * 1990-06-29 1999-05-06 Digital Equipment Corp., Maynard, Mass. Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
JP3181307B2 (ja) * 1991-04-25 2001-07-03 株式会社東芝 命令処理装置
JPH07114469A (ja) * 1993-10-18 1995-05-02 Mitsubishi Electric Corp データ処理装置
US5715418A (en) * 1994-07-27 1998-02-03 Seagate Technologies, Inc. Autonomous high speed linear space address mode translation for use with a computer hard disc system
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
US5907864A (en) * 1995-06-07 1999-05-25 Texas Instruments Incorporated Data processing device with time-multiplexed memory bus
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
US5905881A (en) * 1995-11-30 1999-05-18 Unisys Corporation Delayed state writes for an instruction processor
US5978895A (en) * 1997-04-04 1999-11-02 Cirrus Logic, Inc. Method for speeding mathematical operations in a processor core
US5987583A (en) * 1997-10-07 1999-11-16 Microchip Technology Inc. Processor architecture scheme and instruction set for maximizing available opcodes and address selection modes

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
US6098160A (en) 2000-08-01
DE69808020T2 (de) 2003-05-22
EP0917048A2 (en) 1999-05-19
KR19990037571A (ko) 1999-05-25
EP0917048A3 (en) 2000-08-30
ATE224558T1 (de) 2002-10-15
EP0917048B1 (en) 2002-09-18
DE69808020D1 (de) 2002-10-24
TW429360B (en) 2001-04-11

Similar Documents

Publication Publication Date Title
JP2968289B2 (ja) 中央演算処理装置
US4734852A (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
JP2840444B2 (ja) 算術パイプラインをオペレーティングする方法及びデータプロセッシング装置
US6009509A (en) Method and system for the temporary designation and utilization of a plurality of physical registers as a stack
JPH10124391A (ja) マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法
US6006315A (en) Computer methods for writing a scalar value to a vector
JPH03206523A (ja) デジタルコンピユータにおいてデータをメモリ内のスタツク上にプツシユする方法およびパイプラインされる命令とメモリを有するデジタルコンピユータにおいてスタツクオペレーシヨンを実行する回路
US6591359B1 (en) Speculative renaming of data-processor registers
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
JP3694531B2 (ja) Riscアーキテクチャを有する8ビットマイクロコントローラ
US5913054A (en) Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
US5752273A (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
US20020026545A1 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
US6029241A (en) Processor architecture scheme having multiple bank address override sources for supplying address values and method therefor
EP0908812B1 (en) Processor architecture scheme for implementing various addressing modes and method therefor
JPH11232100A (ja) 単一サイクル内に間接アドレシングモードアドレスを出力するデータポインタおよびその方法
US5179671A (en) Apparatus for generating first and second selection signals for aligning words of an operand and bytes within these words respectively
EP0913766B1 (en) Processor architecture scheme and instruction set for maximizing available opcodes and for implementing various addressing modes
US6670895B2 (en) Method and apparatus for swapping the contents of address registers
EP0915416B1 (en) System for allowing a two word instruction to be executed in a single cycle and method therefor
US5649147A (en) Circuit for designating instruction pointers for use by a processor decoder
JPH0666052B2 (ja) メモリ内容を機械レジスタに自動的に写像する計算機
JPH0385636A (ja) 命令先行制御装置
JPH0424735A (ja) 中央演算処理装置
JPH113275A (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