JPH11316679A - 多数のバンクアドレス値供給源を有するプロセッサアーキテクチャスキームおよびその方法 - Google Patents

多数のバンクアドレス値供給源を有するプロセッサアーキテクチャスキームおよびその方法

Info

Publication number
JPH11316679A
JPH11316679A JP10307561A JP30756198A JPH11316679A JP H11316679 A JPH11316679 A JP H11316679A JP 10307561 A JP10307561 A JP 10307561A JP 30756198 A JP30756198 A JP 30756198A JP H11316679 A JPH11316679 A JP H11316679A
Authority
JP
Japan
Prior art keywords
bank
register
address
data memory
instruction
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
JP10307561A
Other languages
English (en)
Inventor
Igor Wojewoda
ウォジェウォダ イゴール
Rodney J Drake
ジェイ. ディレイク ロドニー
Sumit Mitra
ミトラ サミット
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 JPH11316679A publication Critical patent/JPH11316679A/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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30098Register arrangements
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • 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)
  • Memory System (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 多数のアドレシングモードの符号化を可能と
し、また多数のアドレシング値生成源を有するプロセッ
サアーキテクチャ。 【解決手段】 データメモリは複数のバンクに分割さ
れ、複数のバンクのうちの1つは汎用および特殊レジス
タのための専用バンクである。選択回路がデータメモリ
に接続され、多数のバンクアドレス生成源のうちの1つ
を選択するために使用される。バンクセレクトレジスタ
が選択回路に接続され、直接短アドレシングモードで実
行される命令のためのバンクアドレス値を供給するため
に使用される。命令レジスタが選択回路に接続され、直
接長アドレシングモードで実行される命令のためのバン
クアドレス値を供給し、また直接短アドレスモードで実
行される該命令のためのバンク内のレジスタアドレスを
供給する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にデータアド
レシングに関する。詳しくは、多数のアドレシングモー
ドの符号化が可能でありまた多数のバンクアドレス値生
成源を有するプロセッサアーキテクチャスキーム、およ
びその方法に関する。
【0002】
【従来の技術】本出願の優先権主張の基礎となる米国出
願08/959.405号は、RandyL.Yachにより19
97年7月3日に出願された「データランダムアクセス
メモリを用いたマイクロコントローラのための強制ペー
ジのないページングスキーム」という名称の発明、およ
びMitraらにより1997年10月8日に出願された
「様々なアドレシングモードを実現するためのプロセッ
サアーキテクチャスキームおよびその方法」という名称
の発明の係属米国特許出願に関連する。これらの特許出
願は共に上記米国特許出願と同じ譲受人に譲渡される。
これら参照特許出願の開示内容は、本特許出願に参考と
して援用される。
【0003】一般に、プロセッサとは、中央処理ユニッ
ト(CPU)を備え、これを用いて、格納された命令ま
たはマイクロコードを取り出し実行する、実体である。
プロセッサのいくつかの例としては、マイクロコントロ
ーラ、マイクロプロセッサ、およびデジタル信号プロセ
ッサがある。各タイプのプロセッサは、通常オペランド
とも呼ばれるデータの演算を行う。このデータは一般に
レジスタまたはメモリスペースに格納される。
【0004】
【発明が解決しようとする課題】多くのプロセッサアー
キテクチャスキームでは、アドレシングモードの追加ま
たは変更は極めて困難である。命令セット機構に大規模
な変更を加えない限り、このようなアドレシングモード
の変更および追加は不可能である。しかし、命令セット
構造を変更することは、アセンブラおよびコンパイラな
どの多くのツールにも大規模な変更が必要となるため、
望ましくない。
【0005】いくつかの現在のプロセッサアーキテクチ
ャは、プロセッサ内のデータメモリのすべてにアドレス
するためにページングスキームを用いる。これらのタイ
プのプロセッサは、上述の問題に加えて、それぞれに関
連する他のいくつかの問題を有する。アドレス可能アド
レスメモリを増やすために、多くのプロセッサはそれぞ
れのデータメモリ内に多数のバンクを備えている。しか
し、これらのプロセッサは1つのバンクアドレス値生成
源、すなわちバンクセレクトレジスタしか備えていな
い。バンクアドレス値生成源が1つしかないため、実行
される必要がある命令は、現在のバンク内のレジスタア
ドレスにアクセスしなければならない。命令が異なるバ
ンク内のレジスタアドレスにアクセスする必要がある場
合は、バンクセレクトレジスタの値を変更しなければな
らない、このスキームは、ユーザが確実にRAM内の適
切なアドレスに書き込みまたは読み出しを行うためには
いくつかの命令を必要とし、このため非常に煩雑であ
る。
【0006】これらのタイプのプロセッサはまた、Cコ
ンパイラのジョブを複雑にする。何故なら、Cコンパイ
ラはデータメモリ内で現在選択されているバンクを絶え
ず追跡しなければならないからである。これは割り込み
を扱うときはさらに多くの問題を生じさせる。割込み要
求を扱うときは、プロセッサは汎用および特殊機能レジ
スタに直接アクセスしなければならない。これらのレジ
スタが現在選択されているバンク内にない場合は、バン
クセレクトレジスタを適切なバンクに変更しなければな
らない。割込み要求の実行が終了すると、プロセッサ
は、割り込み前にプロセッサによって実行されていた命
令のバンクおよびレジスタを思い出してこれに戻らなけ
ればならない。
【0007】従って、改良されたプロセッサアーキテク
チャスキームおよびこの方法を提供する必要がある。改
良されたプロセッサアーキテクチャスキームおよび方法
は、多数のアドレシングスキームを可能にし得る。改良
されたプロセッサアーキテクチャスキームおよび方法は
さらに、多数のバンクアドレス値生成源を有し得る。改
良されたプロセッサアーキテクチャスキームおよび方法
はまた、プロセッサが、バンクセレクトレジスタ、従っ
て割込み要求の前に実行されていた現在の命令のバンク
アドレス値を変更せずに割込み要求を扱うことが可能と
なり得る。
【0008】本発明は上記課題を解決するためになされ
たものであり、本発明の1つの実施態様によると、本発
明の1つの目的は、改良されたプロセッサアーキテクチ
ャスキームおよびその方法を提供することである。
【0009】本発明の別の目的は、多数のアドレシング
スキームが可能な改良されたプロセッサアーキテクチャ
スキームおよびその方法を提供することである。
【0010】本発明のさらに別の目的は、多数のバンク
アドレス値生成源を有する改良されたプロセッサアーキ
テクチャスキームおよびその方法を提供することであ
る。
【0011】本発明のさらに別の目的は、多数のバンク
アドレス値生成源を有し、またプロセッサが、バンクセ
レクトレジスタ、従って割込み要求の前に実行されてい
た現在の命令のバンクアドレス値を変更せずに割込み要
求を扱うことができる、改良されたプロセッサアーキテ
クチャスキームおよびその方法を提供することである。
【0012】
【課題を解決するための手段】本発明によれば、多数の
アドレシングモードの符号化が可能であり、また多数の
バンクアドレス値生成源を有するプロセッサアーキテク
チャスキームであって、命令セットを実行する中央処理
ユニット(CPU)と、該CPUに接続されデータを格
納および転送するデータメモリであって、複数のバンク
を有し、該複数のバンクのうちの1つは汎用および特殊
レジスタの専用バンクであるデータメモリと、該データ
メモリに接続され、該多数のバンクアドレス値生成源の
うちの1つを選択する選択回路と、該選択回路に接続さ
れ、直接短アドレシングモードで実行される命令のため
のバンクアドレス値を供給するバンクセレクトレジスタ
と、該選択回路に接続され、直接長アドレシングモード
で実行される命令のためのバンクアドレス値を供給し、
また該直接短アドレスモードで実行される該命令のため
のバンク内のレジスタアドレスを供給する命令レジスタ
と、を組み合わせで含む、プロセッサアーキテクチャス
キームが提供され、これによって上記目的が達成され
る。
【0013】前記命令レジスタが前記データメモリのア
ドレス範囲全体にアクセスするのに十分な大きさであっ
てもよい。
【0014】前記データメモリが線形のアドレス範囲で
あってもよい。
【0015】前記データメモリの前記バンクのそれぞれ
が256バイトのサイズであってもよい。
【0016】前記データメモリが16個のバンクを有し
てもよい。
【0017】前記選択回路に接続され、実行される現在
選択されているバンクアドレス値を変更せずにデータア
クセスを強制的に前記専用バンクで行うようにするため
に、該専用バンクのバンクアドレス値を供給する強制専
用バンクレジスタをさらに備えてもよい。
【0018】前記データメモリが該データメモリ内に確
立されるデータポインタレジスタに関連する専用仮想レ
ジスタアドレス位置を有し、該専用仮想レジスタアドレ
ス位置のそれぞれが、アクセスされると該データポイン
タレジスタと共に使用される個別で異なる間接アドレシ
ングモードを指示および確立してもよい。
【0019】前記選択回路に接続され、間接アドレスモ
ードで実行される命令のためのバンクアドレス値を供給
するファイルセレクトレジスタをさらに備えてもよい。
【0020】前記ファイルセレクトレジスタが前記デー
タメモリのアドレス範囲全体にアクセスするのに十分な
大きさであってもよい。
【0021】前記選択回路がマルチプレクサであっても
よい。
【0022】本発明によれば、多数のアドレシングモー
ドの符号化が可能であり、また多数のバンクアドレス値
生成源を有するプロセッサアーキテクチャスキームであ
って、命令セットを実行する中央処理ユニット(CP
U)と、該CPUに接続され、線形のアドレス範囲と複
数のバンクとを有するデータメモリであって、該複数の
バンクのうちの1つは汎用および特殊レジスタの専用バ
ンクであり、該データメモリ内に確立されるデータポイ
ンタレジスタに関連する専用仮想レジスタアドレス位置
を有し、該専用仮想レジスタアドレス位置は、アクセス
されると該データポインタレジスタと共に使用される個
別で異なる間接アドレシングモードを指示および確立す
る、データメモリと、該データメモリに接続され、該多
数のバンクアドレス生成源のうちの1つを選択する選択
回路と、該選択回路に接続され、直接短アドレシングモ
ードで実行される命令のためのバンクアドレス値を供給
するバンクセレクトレジスタと、該選択回路に接続さ
れ、直接長アドレシングモードで実行される命令のため
のバンクアドレス値を供給し、また該直接短アドレスモ
ードで実行される該命令のためのバンク内のレジスタア
ドレスを供給する命令レジスタと、該選択回路に接続さ
れ、実行される現在選択されているバンクアドレス値を
変更せずにデータアクセスを強制的に該専用バンクで行
うようにするために、該専用バンクのバンクアドレス値
を供給する強制専用バンクレジスタと、該選択回路に接
続され、間接アドレスモードで実行される命令のための
バンクアドレス値を供給するファイルセレクトレジスタ
と、を組み合わせで含む、プロセッサアーキテクチャス
キームが提供され、これによって上記目的が達成され
る。
【0023】前記命令レジスタが前記データメモリのア
ドレス範囲全体にアクセスするのに十分な大きさであっ
てもよい。
【0024】前記データメモリの前記バンクのそれぞれ
が256バイト/語のサイズであってもよい。
【0025】前記データメモリが16個のバンクを有し
てもよい。
【0026】前記ファイルセレクトレジスタが前記デー
タメモリのアドレス範囲全体にアクセスするのに十分な
大きさであってもよい。
【0027】前記選択回路がマルチプレクサであっても
よい。
【0028】本発明によれば、多数のアドレシングモー
ドの符号化が可能であり、また多数のバンクアドレス値
生成源を有するプロセッサアーキテクチャスキームを設
ける方法であって、命令セットを実行する中央処理ユニ
ット(CPU)を設けるステップと、該CPUに接続さ
れ、複数のバンクを有するデータメモリを設けるステッ
プであって、該複数のバンクのうちの1つは汎用および
特殊レジスタの専用バンクである、ステップと、該デー
タメモリに接続され、該多数のバンクアドレス値生成源
のうちの1つを選択する選択回路を設けるステップと、
該選択回路に接続され、直接短アドレシングモードで実
行される命令のためのバンクアドレス値を供給するバン
クセレクトレジスタを設けるステップと、該選択回路に
接続され、直接長アドレシングモードで実行される命令
のためのバンクアドレス値を供給し、また直接短アドレ
スモードで実行される該命令のためのバンク内のレジス
タアドレスを供給する命令レジスタを設けるステップ
と、を包含する方法が提供され、これによって上記目的
が達成される。
【0029】前記命令レジスタを設けるステップが、前
記データメモリのアドレス範囲全体にアクセスするのに
十分な大きさである該命令レジスタを設けるステップを
さらに包含してもよい。
【0030】前記データメモリを設けるステップが、線
形のアドレス範囲を有する該データメモリを設けるステ
ップをさらに包含してもよい。
【0031】前記データメモリの前記バンクのそれぞれ
が256バイトのサイズであってもよい。
【0032】前記データメモリが16個のバンクを有し
てもよい。
【0033】前記選択回路に接続され、実行される現在
選択されているバンクアドレス値を変更せずにデータア
クセスを強制的に前記専用バンクで行うようにするため
に、該専用バンクのバンクアドレス値を供給する強制専
用バンクレジスタを設けるステップをさらに包含しても
よい。
【0034】前記データメモリが該データメモリ内に確
立されるデータポインタレジスタに関連する専用仮想レ
ジスタアドレス位置を有し、該専用仮想レジスタアドレ
ス位置のそれぞれが、アクセスされると該データポイン
タレジスタと共に使用される個別で異なる間接アドレシ
ングモードを指示および確立してもよい。
【0035】前記選択回路に接続され、間接アドレスモ
ードで実行される命令のためのバンクアドレス値を供給
するファイルセレクトレジスタを設けるステップをさら
に包含してもよい。
【0036】前記ファイルセレクトレジスタが、前記デ
ータメモリのアドレス範囲全体にアクセスするのに十分
な大きさであってもよい。
【0037】前記選択回路がマルチプレクサであっても
よい。
【0038】本発明の1つの実施形態によれば、多数の
アドレシングモードの符号化を可能にし、また多数のバ
ンクアドレス値生成源を有するプロセッサアーキテクチ
ャスキームが開示される。プロセッサアーキテクチャス
キームは、命令セットを実行する中央処理ユニット(C
PU)を有する。データメモリがCPUに接続される。
データメモリは、データを格納し、またデータをCPU
へおよびCPUから転送するために使用される。データ
メモリは複数のバンクに分割され、複数のバンクのうち
の1つは汎用および特殊レジスタのための専用バンクで
ある。選択回路がデータメモリに接続される。選択回路
は、多数のバンクアドレス値生成源のうちの1つを選択
するために使用される。バンクセレクトレジスタが選択
回路に接続される。バンクセレクトレジスタは、直接短
アドレシングモードで実行される命令のためのバンクア
ドレス値を供給するために使用される。命令レジスタが
選択回路に接続され、直接長アドレシングモードで実行
される命令のためのバンクアドレス値を供給し、また直
接短アドレシングモードで実行される命令のためのバン
ク内のレジスタアドレスを供給する。
【0039】本発明の別の実施形態によれば、多数のア
ドレシングモードの符号化が可能であり、また多数のバ
ンクアドレス値生成源を有するプロセッサアーキテクチ
ャスキームを提供する方法が開示される。この方法は、
命令セットを実行する中央処理ユニット(CPU)を設
けるステップと、CPUに接続され複数のバンクを有す
るデータメモリであって、複数のバンクのうちの1つは
汎用および特殊レジスタの専用バンクである、データメ
モリを設けるステップと、データメモリに接続され、多
数のバンクアドレス値生成源のうちの1つを選択する選
択回路を設けるステップと、選択回路に接続され、直接
短アドレシングモードで実行される命令のためのバンク
アドレス値を供給するバンクセレクトレジスタを設ける
ステップと、選択回路に接続され、直接長アドレシング
モードで実行される命令のためのバンクアドレスを供給
し、また直接短アドレシングモードで実行される命令の
ためのバンク内のレジスタアドレスを供給する命令レジ
スタを設けるステップと、を包含する。
【0040】本発明の上記のおよび他の目的、特徴、お
よび利点は、添付の図面に示されるように、以下のより
具体的な発明の好適な実施形態の記述により明らかとな
り得る。
【0041】
【発明の実施の形態】図1および図2において、同様な
構成要素は同様の参照符号を付して表している。図1お
よび図2には、複数の供給源からバンクアドレス値を供
給するシステム10が示されている。システム10は、
データメモリ12にアドレスするために使用される。デ
ータメモリ12は、データを格納し、またデータを中央
処理ユニット(CPU)32へおよびCPUから転送す
るために使用される。データメモリ12は複数のアドレ
ス位置34よりなる。図2に示す実施形態では、データ
メモリ12は、複数のページまたはバンク36(すなわ
ち、図1に示す本実施形態では16個のバンク)に分割
される線形の4Kメモリである。各バンク36は、25
6個のアドレス位置34を有する。本発明の本好適な実
施形態では、複数のバンク36のうちの1つは、汎用お
よび特殊レジスタの専用バンクである。図2に示す実施
形態では、バンク0が専用バンクである。
【0042】選択回路14は、アドレスラッチ16を介
してデータメモリ12に接続される。選択回路14は、
バンクアドレス値を供給する複数の供給源のうちの1つ
を選択し、選択されたバンクアドレス値をアドレスラッ
チ16に送るために使用される。本発明の本好適な実施
形態では、選択回路14は12ビットアドレスをアドレ
スラッチ16に送る。12ビットアドレスは、4Kデー
タメモリ12のアドレス範囲全体をアクセスすることが
できる。本発明の本好適な実施形態では、選択回路14
はマルチプレクサである。
【0043】バンクセレクトレジスタ18は、データバ
ス20に接続される入力と選択回路14に接続される出
力とを有する。バンクセレクトレジスタ18は、直接短
アドレシングモードで実行される命令のためのバンクア
ドレスを供給するために使用される。図1に示す実施形
態では、バンクセレクトレジスタ18は4ビット幅のレ
ジスタである。従って、バンクセレクトレジスタ18
は、アクセス可能な現在のバンク36のバンクアドレス
値を供給する。現在選択されているバンク36内の実際
のアドレス位置34は、命令レジスタ22から与えられ
得る。
【0044】命令レジスタ22は、命令復号化ユニット
24および選択回路14に直接接続される。上述のよう
に、命令レジスタ22は、直接短アドレシングモードで
実行される命令のための現在選択されているバンク36
内のレジスタアドレス34を格納および供給するために
使用される。図1に示す実施形態では、命令レジスタ2
2は、8ビットレジスタアドレスを選択回路14に送り
得る。8ビットレジスタアドレスは、バンクセレクトレ
ジスタ18からの4ビットバンクアドレス値と組み合わ
され、データメモリ12内の正確なアドレス位置を決定
する。
【0045】命令レジスタ22はまた、直接長アドレシ
ングモードで実行される命令のためのバンクアドレス値
を供給する。本発明の本好適な実施形態では、命令レジ
スタ22は、直接長アドレシングモードで動作するとき
データメモリ12のアドレス範囲全体にアクセスするの
に十分な大きさである。図1に示す実施形態では、命令
レジスタ22は12ビット幅のアドレスを生成する。従
って、命令レジスタ22は、4Kデータメモリ12のア
ドレス範囲全体にアクセスすることができる。従って、
命令レジスタ22は、データメモリ12内のいかなるレ
ジスタにも直接アクセスする、簡単で便宜の良い方法を
提供する。しかし、直接長アドレシングモードは2語2
サイクル動作である。従って、便宜の良さは速度を犠牲
にして得られる。
【0046】強制バンクレジスタ26は、選択回路14
の入力に直接接続される出力を有する。強制バンクレジ
スタ26は、汎用および特殊レジスタの専用バンクのバ
ンクアドレス値を供給するために使用される。アクセス
されると、強制バンクレジスタ26は、データアクセス
を強制的に専用バンクで行わせるが、実行される現在選
択されているバンクアドレスの変更は行わない。本発明
の本好適な実施形態では、専用バンクばバンク0であ
る。
【0047】強制バンク動作モードを開始する1つの方
法は、プロセッサの各ファイルレジスタ関連操作符号
(op-code)命令内に1つの専用ビットを与えることで
ある。ビットが設定されると、強制バンクレジスタ26
の出力は、データアクセスを強制的にデータメモリ12
の専用バンク(すなわちバンク0)で行わせるようにし
得る。専用ビットの設定は、プロセッサの現在の動作に
影響を与えない。また、プロセッサによって実行されて
いる操作符号命令内に格納されている現在選択されてい
るバンクアドレスを変更することもない。何故なら、他
の多数のバンクアドレス値生成源のいずれも変更されな
いからである。従って、ユーザがデータメモリ12内の
どこにいようと、専用ビットが命令内に設定されている
ならば、現在の命令がいつでも、特殊および汎用レジス
タを格納する専用バンク(すなわちバンク0)に影響を
与える。従って、ユーザが汎用データメモリ領域(すな
わち、第1のバンク、バンク0以外のページ)内にいる
とき割り込みを受け取ると、割り込み実行ルーチンが操
作符号命令内に専用ビットを設定し得る。ユーザは、次
に、プロセッサが実行しているものが何であってもこれ
に影響を与えずに、特殊および汎用レジスタを扱い得
る。プロセッサによって実行されているオプコード命令
内に格納された選択されたバンクアドレスは、妨害処理
中に変更されていないため、割り込みが適切に処理され
ると、プロセッサはこのバンクアドレスに戻り得る。
【0048】ファイルセレクトレジスタ28は、選択回
路14の入力に直接接続された出力を有する。ファイル
セレクトレジスタ28は、間接アドレシングモードのた
めのバンクアドレス値を格納および供給するために使用
される。ファイルセレクトレジスタ28は、データメモ
リ12のアドレス範囲全体にアクセスするのに十分なサ
イズである。図1に示す実施形態では、ファイルセレク
トレジスタ28は、4Kデータメモリ12のアドレス範
囲全体にアクセスし得る12ビット幅のレジスタであ
る。
【0049】間接アドレシングモードを設定するために
は、少なくとも1つのデータポインタレジスタ38がデ
ータメモリ12内に配備される。データメモリ12は複
数のアドレス位置34よりなる。図2に示す実施形態で
は、データメモリ12は複数のバンク36に分割される
線形の4Kメモリであり、各バンク36は256個のア
ドレス位置34を有する。データポインタレジスタ38
は、レジスタアドレスマップ内に留保される1つ以上の
仮想レジスタアドレス位置40を有する。各留保された
仮想レジスタアドレス位置40は、アクセスされると間
接アドレシングモードを開始し得る。
【0050】現在、5つのタイプの間接アドレスモード
がある。すなわち、単純間接アドレシング、自動ポスト
インクリメントを伴う間接アドレシング、自動ポストデ
クリメントを伴う間接アドレシング、自動プリインクリ
メントを伴う間接アドレシング、およびオフセットを伴
う間接アドレシングである。単純間接アドレシングモー
ドでは、オペランドのアドレスはデータポインタレジス
タ38に保持される。CPU32はデータポインタレジ
スタ38にアクセスしてアドレスを得、このアドレスを
用いてオペランドにアクセスし得る。自動インクリメン
トまたは自動デクリメントを伴う間接アドレシングは、
データポインタレジスタ38が、データアクセスの前に
インクリメントまたはデクリメントされる(すなわちプ
リインクリメントまたはプリデクリメント)か、または
データアクセスの後にインクリメントまたはデクリメン
トされる(すなわちポストインクリメントまたはポスト
デクリメント)間接アドレシングの形態である。オフセ
ットを伴う間接アドレシングモードでは、オペランドの
アドレスは、オフセット値をデータポインタレジスタ3
8の内容に加えることによって計算される。オフセット
値は、命令内に埋め込まれるか、またはさらに別のレジ
スタから得られ得る。本発明の本好適な実施形態では、
オフセット値は、アキュムレータまたは「動作」レジス
タである「w」レジスタから得られる。
【0051】データポインタレジスタ38は、データポ
インタレジスタ38が実現することを望む各間接アドレ
シングモードに対してデータメモリ12内に個別の仮想
レジスタアドレス位置40を必要とし得る。本発明の本
好適な実施形態では、上述の5つの間接アドレシングモ
ードを実現するためには、5つの仮想レジスタアドレス
位置40が必要である。しかし、データポインタレジス
タ38の使用によって、追加のまたはもっと少ない間接
アドレスモードを実現し得る。さらに、データメモリ1
2内に追加のデータポインタレジスタ38を配備しても
よい。各データポインタレジスタ38は、レジスタアド
レスマップ内に留保される1つ以上の仮想レジスタアド
レス位置40を有し得る。各留保された仮想レジスタア
ドレス位置40は、このアドレスが選択回路14からア
ドレスラッチに供給されると、関連するデータポインタ
レジスタ12のための間接アドレシングモードを開始し
得る。
【0052】本発明を特に好適な実施形態に関連して図
示および記述したが、本発明の精神および範囲から外れ
ることなく、形態および詳細において上記のおよび他の
変更が行われ得ることは、当業者には理解され得る。
【0053】
【発明の効果】上述したように、本発明によれば、プロ
セッサアーキテクチャスキームが改良され、多数のアド
レシングスキームが可能となる。さらに、本発明のプロ
セッサアーキテクチャスキームにより、多数のバンクア
ドレス値生成源を有することが可能となる。また、プロ
セッサが、バンクセレクトレジスタ、従って割り込み要
求の前に実行されていた現在の命令のバンクアドレス値
を変更せずに、割り込み要求を扱うことが可能となる。
【図面の簡単な説明】
【図1】バンクアドレスを多数の生成源から生成するア
ドレシングシステムの簡略的なブロック図である。
【図2】図1に示すアドレシングシステムと共に使用さ
れるプロセッサアーキテクチャスキームである。
【符号の説明】
10 システム 12 データメモリ 14 選択回路 16 アドレスラッチ 18 バンクセレクトレジスタ 20 データバス 22 命令レジスタ 24 命令復号化レジスタ 26 強制バンクレジスタ 28 ファイルセレクトレジスタ 32 CPU 34 アドレス位置 36 バンク 38 データポインタレジスタ 40 仮想レジスタアドレス位置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロドニー ジェイ. ディレイク アメリカ合衆国 アリゾナ 85044, フ ェニックス, サウス 40ティーエイチ ウェイ 14825 (72)発明者 サミット ミトラ アメリカ合衆国 アリゾナ 85284, テ ンピ, ハウス ナンバー 162, イー スト ワーナー ロード 1101

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】 多数のアドレシングモードの符号化が可
    能であり、また多数のバンクアドレス値生成源を有する
    プロセッサアーキテクチャスキームであって、 命令セットを実行する中央処理ユニット(CPU)と、 該CPUに接続されデータを格納および転送するデータ
    メモリであって、複数のバンクを有し、該複数のバンク
    のうちの1つは汎用および特殊レジスタの専用バンクで
    あるデータメモリと、 該データメモリに接続され、該多数のバンクアドレス値
    生成源のうちの1つを選択する選択回路と、 該選択回路に接続され、直接短アドレシングモードで実
    行される命令のためのバンクアドレス値を供給するバン
    クセレクトレジスタと、 該選択回路に接続され、直接長アドレシングモードで実
    行される命令のためのバンクアドレス値を供給し、また
    該直接短アドレスモードで実行される該命令のためのバ
    ンク内のレジスタアドレスを供給する命令レジスタと、
    を組み合わせで含む、プロセッサアーキテクチャスキー
    ム。
  2. 【請求項2】 前記命令レジスタが前記データメモリの
    アドレス範囲全体にアクセスするのに十分な大きさであ
    る、請求項1に記載の多数のアドレシングモードの符号
    化が可能であり、また多数のバンクアドレス値生成源を
    有するプロセッサアーキテクチャスキーム。
  3. 【請求項3】 前記データメモリが線形のアドレス範囲
    である、請求項1に記載の多数のアドレシングモードの
    符号化が可能であり、また多数のバンクアドレス値生成
    源を有するプロセッサアーキテクチャスキーム。
  4. 【請求項4】 前記データメモリの前記バンクのそれぞ
    れが256バイトのサイズである、請求項3に記載の多
    数のアドレシングモードの符号化が可能であり、また多
    数のバンクアドレス値生成源を有するプロセッサアーキ
    テクチャスキーム。
  5. 【請求項5】 前記データメモリが16個のバンクを有
    する、請求項3に記載の多数のアドレシングモードの符
    号化が可能であり、また多数のバンクアドレス値生成源
    を有するプロセッサアーキテクチャスキーム。
  6. 【請求項6】 前記選択回路に接続され、実行される現
    在選択されているバンクアドレス値を変更せずにデータ
    アクセスを強制的に前記専用バンクで行うようにするた
    めに、該専用バンクのバンクアドレス値を供給する強制
    専用バンクレジスタをさらに備えた、請求項3に記載の
    多数のアドレシングモードの符号化が可能であり、また
    多数のバンクアドレス値生成源を有するプロセッサアー
    キテクチャスキーム。
  7. 【請求項7】 前記データメモリが該データメモリ内に
    確立されるデータポインタレジスタに関連する専用仮想
    レジスタアドレス位置を有し、該専用仮想レジスタアド
    レス位置のそれぞれが、アクセスされると該データポイ
    ンタレジスタと共に使用される個別で異なる間接アドレ
    シングモードを指示および確立する、請求項3に記載の
    多数のアドレシングモードの符号化が可能であり、また
    多数のバンクアドレス値生成源を有するプロセッサアー
    キテクチャスキーム。
  8. 【請求項8】 前記選択回路に接続され、間接アドレス
    モードで実行される命令のためのバンクアドレス値を供
    給するファイルセレクトレジスタをさらに備えた、請求
    項7に記載の多数のアドレシングモードの符号化が可能
    であり、また多数のバンクアドレス値生成源を有するプ
    ロセッサアーキテクチャスキーム。
  9. 【請求項9】 前記ファイルセレクトレジスタが前記デ
    ータメモリのアドレス範囲全体にアクセスするのに十分
    な大きさである、請求項8に記載の多数のアドレシング
    モードの符号化が可能であり、また多数のバンクアドレ
    ス値生成源を有するプロセッサアーキテクチャスキー
    ム。
  10. 【請求項10】 前記選択回路がマルチプレクサであ
    る、請求項1に記載の多数のアドレシングモードの符号
    化が可能であり、また多数のバンクアドレス値生成源を
    有するプロセッサアーキテクチャスキーム。
  11. 【請求項11】 多数のアドレシングモードの符号化が
    可能であり、また多数のバンクアドレス値生成源を有す
    るプロセッサアーキテクチャスキームであって、 命令セットを実行する中央処理ユニット(CPU)と、 該CPUに接続され、線形のアドレス範囲と複数のバン
    クとを有するデータメモリであって、該複数のバンクの
    うちの1つは汎用および特殊レジスタの専用バンクであ
    り、該データメモリ内に確立されるデータポインタレジ
    スタに関連する専用仮想レジスタアドレス位置を有し、
    該専用仮想レジスタアドレス位置は、アクセスされると
    該データポインタレジスタと共に使用される個別で異な
    る間接アドレシングモードを指示および確立する、デー
    タメモリと、 該データメモリに接続され、該多数のバンクアドレス生
    成源のうちの1つを選択する選択回路と、 該選択回路に接続され、直接短アドレシングモードで実
    行される命令のためのバンクアドレス値を供給するバン
    クセレクトレジスタと、 該選択回路に接続され、直接長アドレシングモードで実
    行される命令のためのバンクアドレス値を供給し、また
    該直接短アドレスモードで実行される該命令のためのバ
    ンク内のレジスタアドレスを供給する命令レジスタと、 該選択回路に接続され、実行される現在選択されている
    バンクアドレス値を変更せずにデータアクセスを強制的
    に該専用バンクで行うようにするために、該専用バンク
    のバンクアドレス値を供給する強制専用バンクレジスタ
    と、 該選択回路に接続され、間接アドレスモードで実行され
    る命令のためのバンクアドレス値を供給するファイルセ
    レクトレジスタと、を組み合わせで含む、プロセッサア
    ーキテクチャスキーム。
  12. 【請求項12】 前記命令レジスタが前記データメモリ
    のアドレス範囲全体にアクセスするのに十分な大きさで
    ある、請求項11に記載の多数のアドレシングモードの
    符号化が可能であり、また多数のバンクアドレス値生成
    源を有するプロセッサアーキテクチャスキーム。
  13. 【請求項13】 前記データメモリの前記バンクのそれ
    ぞれが256バイト/語のサイズである、請求項11に
    記載の多数のアドレシングモードの符号化が可能であ
    り、また多数のバンクアドレス値生成源を有するプロセ
    ッサアーキテクチャスキーム。
  14. 【請求項14】 前記データメモリが16個のバンクを
    有する、請求項11に記載の多数のアドレシングモード
    の符号化が可能であり、また多数のバンクアドレス値生
    成源を有するプロセッサアーキテクチャスキーム。
  15. 【請求項15】 前記ファイルセレクトレジスタが前記
    データメモリのアドレス範囲全体にアクセスするのに十
    分な大きさである、請求項11に記載の多数のアドレシ
    ングモードの符号化が可能であり、また多数のバンクア
    ドレス値生成源を有するプロセッサアーキテクチャスキ
    ーム。
  16. 【請求項16】 前記選択回路がマルチプレクサであ
    る、請求項11に記載の多数のアドレシングモードの符
    号化が可能であり、また多数のバンクアドレス値生成源
    を有するプロセッサアーキテクチャスキーム。
  17. 【請求項17】 多数のアドレシングモードの符号化が
    可能であり、また多数のバンクアドレス値生成源を有す
    るプロセッサアーキテクチャスキームを設ける方法であ
    って、 命令セットを実行する中央処理ユニット(CPU)を設
    けるステップと、 該CPUに接続され、複数のバンクを有するデータメモ
    リを設けるステップであって、該複数のバンクのうちの
    1つは汎用および特殊レジスタの専用バンクである、ス
    テップと、 該データメモリに接続され、該多数のバンクアドレス値
    生成源のうちの1つを選択する選択回路を設けるステッ
    プと、 該選択回路に接続され、直接短アドレシングモードで実
    行される命令のためのバンクアドレス値を供給するバン
    クセレクトレジスタを設けるステップと、 該選択回路に接続され、直接長アドレシングモードで実
    行される命令のためのバンクアドレス値を供給し、また
    直接短アドレスモードで実行される該命令のためのバン
    ク内のレジスタアドレスを供給する命令レジスタを設け
    るステップと、を包含する方法。
  18. 【請求項18】 前記命令レジスタを設けるステップ
    が、前記データメモリのアドレス範囲全体にアクセスす
    るのに十分な大きさである該命令レジスタを設けるステ
    ップをさらに包含する、請求項17に記載の方法。
  19. 【請求項19】 前記データメモリを設けるステップ
    が、線形のアドレス範囲を有する該データメモリを設け
    るステップをさらに包含する、請求項17に記載の方
    法。
  20. 【請求項20】 前記データメモリの前記バンクのそれ
    ぞれが256バイトのサイズである、請求項19に記載
    の方法。
  21. 【請求項21】 前記データメモリが16個のバンクを
    有する、請求項19に記載の方法。
  22. 【請求項22】 前記選択回路に接続され、実行される
    現在選択されているバンクアドレス値を変更せずにデー
    タアクセスを強制的に前記専用バンクで行うようにする
    ために、該専用バンクのバンクアドレス値を供給する強
    制専用バンクレジスタを設けるステップをさらに包含す
    る、請求項19に記載の方法。
  23. 【請求項23】 前記データメモリが該データメモリ内
    に確立されるデータポインタレジスタに関連する専用仮
    想レジスタアドレス位置を有し、該専用仮想レジスタア
    ドレス位置のそれぞれが、アクセスされると該データポ
    インタレジスタと共に使用される個別で異なる間接アド
    レシングモードを指示および確立する、請求項19に記
    載の方法。
  24. 【請求項24】 前記選択回路に接続され、間接アドレ
    スモードで実行される命令のためのバンクアドレス値を
    供給するファイルセレクトレジスタを設けるステップを
    さらに包含する、請求項23に記載の方法。
  25. 【請求項25】 前記ファイルセレクトレジスタが、前
    記データメモリのアドレス範囲全体にアクセスするのに
    十分な大きさである、請求項24に記載の方法。
  26. 【請求項26】 前記選択回路がマルチプレクサであ
    る、請求項17に記載の方法。
JP10307561A 1997-10-28 1998-10-28 多数のバンクアドレス値供給源を有するプロセッサアーキテクチャスキームおよびその方法 Withdrawn JPH11316679A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/959.405 1997-10-28
US08/959,405 US6029241A (en) 1997-10-28 1997-10-28 Processor architecture scheme having multiple bank address override sources for supplying address values and method therefor

Publications (1)

Publication Number Publication Date
JPH11316679A true JPH11316679A (ja) 1999-11-16

Family

ID=25502017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10307561A Withdrawn JPH11316679A (ja) 1997-10-28 1998-10-28 多数のバンクアドレス値供給源を有するプロセッサアーキテクチャスキームおよびその方法

Country Status (5)

Country Link
US (1) US6029241A (ja)
EP (1) EP0918279A3 (ja)
JP (1) JPH11316679A (ja)
KR (1) KR19990037572A (ja)
TW (1) TW429345B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010503073A (ja) * 2006-08-31 2010-01-28 クゥアルコム・インコーポレイテッド 相対アドレス生成

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6198691B1 (en) * 1997-07-03 2001-03-06 Microchip Technology Incorporated Force page paging scheme for microcontrollers of various sizes using data random access memory
US6055211A (en) * 1997-07-03 2000-04-25 Microchip Technology Incorporated Force page zero paging scheme for microcontrollers using data random access memory
US6708268B1 (en) * 1999-03-26 2004-03-16 Microchip Technology Incorporated Microcontroller instruction set
WO2002010994A1 (en) * 2000-07-28 2002-02-07 Delvalley Limited A data processor
DE10122309A1 (de) * 2001-05-08 2002-11-21 Systemonic Ag Adressgeneriereinheit
TW200511111A (en) * 2003-07-30 2005-03-16 Koninkl Philips Electronics Nv Microcontroller with an interrupt structure having programmable priority levels with each priority level associated with a different register set
KR100897857B1 (ko) * 2003-10-23 2009-05-15 마이크로칩 테크놀로지 인코포레이티드 마이크로컨트롤러 명령어 셋트
KR100965196B1 (ko) 2003-10-24 2010-06-24 마이크로칩 테크놀로지 인코포레이티드 스택 메모리로의 고속 액세스를 위한 방법 및 시스템
US7996651B2 (en) * 2007-11-30 2011-08-09 Microchip Technology Incorporated Enhanced microprocessor or 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
US7996647B2 (en) 2008-07-23 2011-08-09 Microchip Technology Incorporated Enhanced microprocessor or microcontroller
US8209521B2 (en) 2008-10-18 2012-06-26 Micron Technology, Inc. Methods of indirect register access including automatic modification of a directly accessible address register
US8799552B2 (en) * 2009-02-11 2014-08-05 Microchip Technology Incorporated Microcontroller with special banking instructions
US9946482B2 (en) * 2015-07-14 2018-04-17 Microchip Technology Incorporated Method for enlarging data memory in an existing microprocessor architecture with limited memory addressing

Family Cites Families (6)

* 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
US4118773A (en) * 1977-04-01 1978-10-03 Honeywell Information Systems Inc. Microprogram memory bank addressing system
US4685084A (en) * 1985-06-07 1987-08-04 Intel Corporation Apparatus for selecting alternate addressing mode and read-only memory
JPH0454652A (ja) * 1990-06-25 1992-02-21 Nec Corp マイクロコンピュータ
US5247644A (en) * 1991-02-06 1993-09-21 Advanced Micro Devices, Inc. Processing system with improved sequential memory accessing
US5293591A (en) * 1991-06-10 1994-03-08 Advanced Micro Devices, Inc. Processing system including memory selection of multiple memories and method in an interrupt environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010503073A (ja) * 2006-08-31 2010-01-28 クゥアルコム・インコーポレイテッド 相対アドレス生成

Also Published As

Publication number Publication date
TW429345B (en) 2001-04-11
US6029241A (en) 2000-02-22
EP0918279A2 (en) 1999-05-26
EP0918279A3 (en) 1999-08-04
KR19990037572A (ko) 1999-05-25

Similar Documents

Publication Publication Date Title
JP2679363B2 (ja) マイクロプロセッサ
US5819063A (en) Method and data processing system for emulating a program
US6021489A (en) Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture
JPS59501684A (ja) 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像
JPH11316679A (ja) 多数のバンクアドレス値供給源を有するプロセッサアーキテクチャスキームおよびその方法
US6687808B2 (en) Data processor using indirect register addressing
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
EP0772819B1 (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
US4491908A (en) Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit
JPH10187661A (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
EP0908812B1 (en) Processor architecture scheme for implementing various addressing modes and method therefor
US5987583A (en) Processor architecture scheme and instruction set for maximizing available opcodes and address selection modes
US5848436A (en) Method and apparatus for efficiently providing data from a data storage medium to a processing entity
EP0917048B1 (en) Address generator and method for single-cycle indirect addressing
JP3220714B2 (ja) データramを用いたマイクロコントローラ用の強制ページゼロページング方法
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JPH1091528A (ja) Lru機構を実現するための方法
EP0640912B1 (en) Memory addressing scheme for increasing the number of memory locations available in a computer for storing higher precision numbers
KR19990087830A (ko) 컴퓨터 장치, 컴파일러 방법 및 다중 캐시 라인 사전적재방법
EP0686922B1 (en) Vector processing unit with reconfigurable data buffer
EP0915416B1 (en) System for allowing a two word instruction to be executed in a single cycle and method therefor
US20050188183A1 (en) Digital signal processor having data address generator with speculative register file
JPH05250318A (ja) マイクロプロセッサ
JP2003532221A (ja) ALU、Javaスタックおよび複数のスタックポインタを有するプロセッサ・アーキテクチャ

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