JP3233163B2 - メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ - Google Patents

メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ

Info

Publication number
JP3233163B2
JP3233163B2 JP18395791A JP18395791A JP3233163B2 JP 3233163 B2 JP3233163 B2 JP 3233163B2 JP 18395791 A JP18395791 A JP 18395791A JP 18395791 A JP18395791 A JP 18395791A JP 3233163 B2 JP3233163 B2 JP 3233163B2
Authority
JP
Japan
Prior art keywords
address
memory
bank
processor
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.)
Expired - Fee Related
Application number
JP18395791A
Other languages
English (en)
Other versions
JPH04233640A (ja
Inventor
ジェイムズ・カール・ナッシュ
マイケル・アイ・キャザーウッド
カーク・リビングストン
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.)
Motorola Solutions Inc
Original Assignee
Motorola Solutions Inc
Motorola 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 Motorola Solutions Inc, Motorola Inc filed Critical Motorola Solutions Inc
Publication of JPH04233640A publication Critical patent/JPH04233640A/ja
Application granted granted Critical
Publication of JP3233163B2 publication Critical patent/JP3233163B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ・プロセッサに
関し、更に詳しくは、メモリ・バンクの切り替え技術を
使用したデータ・プロセッサに関する。
【0002】
【従来の技術および発明が解決しようとする課題】より
高性能なマイクロコントローラ(MCU)に対する需要
が増加するにしたがって、半導体メーカは、下位の目的
(low−end)を有するMCUとの互換性を犠牲に
することなく高性能のMCUを設計する方法を模索して
いる。一般的に、マイクロコントローラのアプリケーシ
ョン用のソフトウエアを開発する場合のエンジニアリン
グ上の投資は膨大なものである。したがって、設計上の
目的は、MCUのファミリーを提供することであり、こ
の場合、より高性能なMCU(例えば16ビット)はよ
り性能の低いMCU(例えば8ビット)用に作られたソ
フトウエアを動作させることができる。一般的に、公表
されている目的を満足することによって、より高性能な
MCUの設計に対してアーキテクチャ上の制約が加えら
れる。代表的な8ビットのMCUを設計する場合、中央
処理装置(CPU)は、64Kバイトのメモリのみをア
クセスする。一般的に、大幅な性能の向上は、アドレス
可能なメモリのスペースを単に、例えば、1Mバイトの
メモリに拡張することによって実現され、これによって
より大きなメモリ・スペースを収容することのできる1
6ビットのMCUを製作する。公表されている目的を保
持する場合、16ビットのMCUがこのMCUのファミ
リーである8ビットの(現存する)MCUのために作ら
れたソース・コードを実行することを、メモリ拡張スキ
ームの設計が可能にしなければならない。
【0003】公知の16ビットのMCUは、基本的に2
つのメモリ拡張スキーム、すなわちセグメンテーション
と単純なバンク切り替えを使用している。図1Aないし
1Bは、メモリ拡張用の公知のセグメンテーション・ス
キーム10を示す。このセグメンテーション・スキーム
10の場合、16ビットの論理セグント・ベース・アド
レスは、論理アドレス・バス18を介して16ビットの
セグント・ベース・レジスタ12に転送される。このセ
グント・ベース・アドレスは、拡張した20ビットの論
理セグント・ベース・アドレスを発生するためにシフト
されて残っている(shifted left)4ビッ
トである。オフセット・レジスタ14に格納されている
16ビットの論理オフセット・アドレスは、ゼロだけ拡
張されて20ビットの論理オフセット・アドレスを発生
する。拡張後、この20ビットの論理セグント・ベース
・アドレスは加算器16によって20ビットの論理オフ
セット・アドレスに加えられ、これによって20ビット
の(拡張された)物理的アドレスを発生する。この20
ビットの物理的アドレスは、物理的アドレス・バス17
を介して外部メモリ(図示せず)に転送される。セグメ
ンテーション・スキーム10を使用して、16個の64
Kバイトのセグメントを発生させ、これは16個のバイ
トの境界に載置することができる。大部分のセグメンテ
ーション・スキームでは、セグント・ベース・レジスタ
とオフセット・レジスタを更新するためにユーザの介在
を必要とし、このことは、結果として性能に不利益をお
よぼす可能性がある。図2Aないし図2Bは、メモリ拡
張用の単純なバンク切り替えスキーム20を示す。一般
的に、単純なバンク切り替えスキームの場合、各メモリ
・バンクには独自のバンク番号が割り当てられる。例え
ば、メイン・メモリは16個のメモリ・バンクに再分化
され、これによって4ビットのバンク番号を使用して1
6個のメモリ・バンクの特定の1つを選択する。したが
って、16ビットの論理ベース・アドレスは、論理アド
レス・バス25を介してアドレス・レジスタ22に転送
される。オフセット・レジスタ23に格納されている1
6ビットのオフセット・アドレスは加算器26によって
16ビットの論理ベース・アドレスに加えられ、その結
果、(16ビットの論理アドレス)は入力として連結論
理ブロック27に供給される。連結論理ブロック27
は、バンク番号レジスタ24から4ビットの論理メモリ
・バンク・アドレスを受け、アドレス26から16ビッ
トの論理アドレスを受け、これら2つのアドレスを連結
し、これによって20ビットの(拡張された)物理的ア
ドレスを物理的アドレス・バス28に供給する。単純な
バンク切り替えスキーム20は16個の64Kバイトの
セグメントを発生し、これらは64Kバイトの境界に載
置することができる。一般的に、バンク番号レジスタ2
4に格納されている値(メモリ・バンク・アドレス)を
更新するにはユーザの介在が必要である。基本的に、ア
ドレスの計算がバンク番号レジスタ24によって指定さ
れるメモリ・バンクの境界を超える場合、単純なバンク
切り替えスキーム20はプログラムがメモリ・バンクの
境界と交差することを認めない。その代わり、このプロ
グラムは特定のメモリ・バンク内に閉じ込められてい
る。メモリ・バンクの境界と交差するには、ユーザは先
ず、メモリ・バンクのチエックを実行することによって
アドレスの計算がメモリ・バンクの境界と交差したかど
うかを判定し、次に、バンク番号レジスタ24に新しい
メモリ・バンクの番号を書き込まなければならない。そ
の結果、単純なバンク切り替えスキームの場合、アドレ
スの計算がバンクの境界と交差すると、性能上の不利益
が発生する可能性がある。したがって、上述した問題を
解消することのできるメモリ拡張スキームを提供するこ
とが望ましい。
【0004】
【課題を解決するための手段】複数の命令を実行し、通
信バスを介して、外部メモリとの通信を行うため、磁気
コア中央処理装置を提供する。外部メモリは所定数のメ
モリ・バンクに再分化され、各メモリ・バンクはメモリ
・アドレスの境界によって定義される。磁気コア中央処
理装置は、メモリ・バンク切り替え装置を使用して外部
メモリの中の選択されたメモリ・バンクにアクセスす
る。論理メモリ・アドレスは第1組のアドレス・レジス
タに格納される。各論理メモリ・アドレスは、選択され
たメモリ・バンクに対応する第1組のアドレス・ビット
および選択されたメモリ・バンク内のメモリ・ロケーシ
ョンに対応する第2組のアドレス・ビットによって構成
される。加算器は第1組のアドレス・レジスタに格納さ
れている論理メモリ・アドレスを論理オフセット・アド
レスに加算し、その結果、すなわち拡張物理的アドレス
を通信バスに転送する。拡張された物理的アドレスが選
択されたメモリ・バンクに対するアドレスの境界を超え
ると、加算器はメモリ・アドレスの第1組のアドレス・
ビットを内部通信バスを介して更新し、これによって処
理装置がメモリ・バンクの境界と交差するアドレスを自
動的にアクセスすることを可能にする。
【実施例】図3は、本発明によるメモリ拡張スキームを
有する磁気コア中央処理装置(CPU)30を示す。C
PU30はエントリー・プログラマブル・ロジック・ア
レイ(PLA)32,マイクロシーケンサ33,マイク
ロROM34,ブランチ制御ロジック36,エクセプシ
ョン・ロジック38,条件コードレジスタ(CCR)P
LA40,バス・インターフェース・ユニット(BI
U)42,アドレス・バス44,データ・バス46,実
行ユニット47および命令レジスタ復号ロジック(IR
D)48によって構成される。好適的な実施例に於て、
実行ユニット(EU)47は命令パイプライン50,汎
用レジスタ52,条件コード・レジスタ54,アドレス
・バッファ56およびデータ・バッファ58によって構
成される。CPU30は他の精巧なオンチップ周辺装置
と共に使用するように設計された進歩した16ビットの
磁気コアCPUである。CPU30は16ビットの磁気
コアCPUモジュールであり、これはモジュール間通信
バス(IMB)49を介して、他のモジュールおよび磁
気コアCPU30の外部にあるメモリ(図示せず)と通
信を行うように設計されている。CPU30はモトロー
ラ社のMC68HC11のCPUの16ビットのスーパ
セットであり、MC68HC11の現行のユーザにより
性能の高いシステムに対するロードマップを提供する。
したがって、CPU30はアーキテクチャ上MC68H
C11と互換性があり、より大きなプログラムおよびデ
ータ用のスペースを有しながら、MC68HC11の全
ての種々のアドレスモードをサポートしている。
【0005】好適な実施例に於て、CPU30はパイプ
ラインによって接続されたデータ・プロセッサであり、
このデータ・プロセッサは、命令レジスタIRA,IR
BおよびIRC60,61および62によってそれぞれ
構成される命令パイプライン(PIPE)50を有して
いる(図4)。命令ワードはBIU42を介してPIT
E50,(例えば、IRA60)の一端で受け取られ、
これらの値は他端(例えば、IRC62)にシフトさ
れ、この他端でこれらの値が使用され、次に放棄される
ようにPIP50は構成される。好適な実施例におい
て、IRA60は拡張アドレス・レジスタとして2つの
機能を果たし(図5B)、これによって命令ワードおよ
び命令の一部であるオフセット・アドレスをIRA60
にロードすることができる。IRD48はPIPE50
内の命令にアクセスし、選択した命令(opcode)
をエントリーPLA32(復号用)及びマイクロシーケ
ンサ33に供給する。エントリーPLA32はこの命令
を復号し、(特定の命令を実行するためのマイクロルー
チンの)最初のマイクロアドレスをマイクロROM34
に転送する。マイクロROM34はPLA32から最初
のマイクロアドレスを受け、対応するマイクロ命令をE
U47に読み出し、最初のマイクロアドレスをマイクロ
シーケンサ33に転送する。好適な実施例に於て、マイ
クロシーケンサ33はステート・マシン(state
machine)であり、これはマイクロルーチン内の
次のマイクロアドレスを直接マイクロRN34に供給す
ることによって、マイクロROM34に格納されている
マイクロ命令の実行シーケンスを制御する。通常の動作
期間中マイクロROM34は所定数のマイクロ命令をE
U47に転送し、このEU47はマイクロ命令によって
否定された必要な動作を実行する。IRD48は状態を
与え、CCR PLA40および例外論理回路38に対
する入力信号を制御し、種々の処理状態の発生を指示す
る。図4は、EU47のレジスタのアーキテクチャを示
すブロック図である。好適な実施例において、3つの内
部通信バスBUS A79,BUS B80およびBU
S S81によって種々の内部レジスタ52の間の相互
接続が行われる。CPU30は、2つの汎用の16ビッ
トのアキユムレータD72とE68,および3個の16
ビットのインデックス・レジスタX,YおよびZ67,
64および71をそれぞれ有している。アキユムレータ
E68,レジスタX,YおよびZ,67,64および7
1はそれぞれワード(16ビット)のオペランドをサポ
ートする。好適な実施例において、アキユムレータD7
1は、2個の8ビットのアキユムレータAおよびB(図
示せず)を連結することによって作られた16ビットの
レジスタである。アキユムレータD71はワード(16
ビット)サイズのデータに基づいて動作し、一方アキユ
ムレータAおよびBはバイト(8ビット)サイズのデー
タに基づいてのみ動作する。しかし、レジスタおよび内
部バスは16ビットの幅であり、アドレスを発生するた
めに使用する全てのユーザが目視することのできる資源
[すなわち、インデックス・レジスタ64,67および
71;スタックポインタ(SP)3;プログラム・カウ
ンタ(PC)66;および種々のアドレスモード]は有
効幅が20ビットである。したがって、レジスタX,Y
およびZ,64,67および71によってそれぞれ発生
される16ビットは、アドレス・バス44のA0 −A15
に対応し、一方、アドレス信号A16−A19は6個の4ビ
ットのK−フィールド(以下で論じる)の1つから得ら
れる。
【0006】図5Aおよび5Bは、CPU30用のプロ
グラマのモデルをブロック図で示す。本発明の好適な実
施例では、CPU30は16ビットのメモリ・アドレス
・バンク・レジスタ(Kレジスタ)82を有し、このレ
ジスタは、4個の4ビットのサブフィールド(K−フィ
ールド)を有し、これらはEK72,XK76,YK7
4およびZK77で示す。図5Bに示すように、各々の
4ビットのK−フィールドは、CPU30によって発生
される20ビットのアドレスの上部の4ビット(バンク
数)である。したがって、XKのフィール76は、イン
デックス・レジスタX67でインデックスされたアドレ
ス・モードのいずれかを使用して、全てのオペランド・
アクセスに対して20ビットのアドレスの上部4ビット
を与える。同様に、YKフィールド74は、インデック
ス・レジスタY64でインデックスされたアドレス・モ
ードのいずれかを使用して、全てのオペランド・アクセ
スに対して20ビットのアドレスの上部4ビットを与え
る。同様に、ZKフィールド77は、インデックス・レ
ジスタZ71でインデックスしたアドレス・モードのい
ずれかを使用して、オペランド・アクセスの全てに対し
て、および直接アドレスのために、20ビットのアドレ
スの上部4ビットを与える。更に、EKフィールド72
は、拡張アドレス・モードを使用して、全てのオペラン
ド・アクセスに対して20ビットのアドレスの上部4ビ
ットを与える。PKフィールド75は、全てのプログラ
ムおよびRESETベクトル・フェッチに対して20ビ
ットのアドレスの上部4ビットを与え、SKフィールド
73は全てのスタック動作および非スタック動作に対し
て20ビットのアドレスの上部4ビットを与える。PK
フィールド75は、CCR54の0ビットないし3ビッ
トにロードされ、したがって、CCR54がスタックさ
れている時は常にスタックされ、CCR54が割り込み
(RTI)からの復帰を使用してまたはサブルーチン
(RTS)命令からの復帰を使用してスタックからプル
される場合には、再ロードされる。これに対して、SK
フィールド83は独立型の4ビットのレジスタである。
【0007】好適な実施例では、各メモリ・バンクは6
4Kバイトの連続したメモリによって構成され、このメ
モリの下部16ビットのアドレスは16進アドレス$0
000でスタートし、$FFFFに増加する。図5Bに
示すように、メモリ・マップはデータ・メモリ・スペー
ス84とプログラム・メモリ・スペース86に再分化さ
れ、これらの各々は、16個のメモリ・バンクによって
構成され、これらはこの図ではバンク0ないしバンク1
5として示す。全ての命令の取り出しとRESETベク
トルの取り出しは、プログラム・メモリ・スペース86
から行われる。一方、全てのデータおよびスタックに対
するアクセスおよび例外ベクトルの取り出し(RESE
Tを除く)は、データ・メモリ・スペース84から行わ
れる。CPU30はファンクション・コード(FC)制
御信号を使用してデータ・メモリ・スペース84とプロ
グラム・メモリ・スペース86を識別し、この制御信号
はIMB94を介して外部メモリ(図示せず)に転送さ
れる。本発明では、アドレス・スペース・バンクの切り
替えスキームによって、CPU30の使用可能なアドレ
ス・マップが2Mバイトすなわち1Mバイトのデータ・
メモリ・スペース84と1Mバイトのプログラム・メモ
リ・スペース86に拡張される。このバンクの切り替え
スキームの設計によって、CPU30のアドレス・スペ
ースは疑似直線的になる。
【0008】本発明において、4ビットのKフィールド
XK,YK,ZK,EKおよびSKは、1組の転送命令
を使用して明示的に変更してもよく、またインデックス
・レジスタX,YおよびZ,67,64および70にそ
れぞれ加算を行う、またはこれらから減算を行う結果と
して黙示的に変更してもよい。明示修正は、アキュムレ
ータB(図示せず)の下位4ビットを内部バスB79を
介して、適当なKフィールドに転送する1組の命令を使
用して、種々のKフィールドに対して行なわれる。転送
命令を使用することによって、Kフィールドに対して独
立してアクセスが行なわれる。レジスタX67,Y6
4,Z70,SP63またはPC66の値に対して加算
を行ないまたはこれらから減算を行なうこといよって、
その結果得られる値がアドレス$FFFFをオーバフロ
ーするかまたはアドレス$0000をアンダーフローす
る場合に、Kフィールドに対する黙示修正が発生し、こ
れによって関連するKフィールドを修正する。もしオー
バフロー状態が発生すれば、対応するKフィールドは1
だけインクリメントされ、他方、もしアンダーフロー状
態が発生すれば、対応するKフィールドは1だけデクリ
メントされる。
【0009】本発明において、オペランド有効アドレス
計算はバンクの境界と交差てもよい。オフセット・アド
レス・モードの場合、インデックス・レジスタを使用し
てオペランドの取り出しを行なうことによって、16ビ
ットのアドレスを発生することが可能であり、このアド
レスは$FFFFよりも大きいまたは$0000よりも
小さい。例えば、オペランドの取り出には、インデック
ス・レジスタX67を使用し、かつ有効アドレス計算の
前に、XKフィールド76で表したバンク番号14の内
容を使用する。有効アドレス計算の後、発生した16ビ
ットのアドレスは$FFFFよりも大きい。その結果、
出力ビットA16−A19は自動的に更新されて新しいバン
ク番号(バンク番号15)のアドレスを反映する。した
がって、XKフィールド76によって最初に示されたバ
ンクの近傍のメモリ・バンクに存在するオペランドをア
クセスすることができる。このことは、インデックス・
レジスタY64とZ70およびこれらの対応するKフィ
ールドYK74,ZK77にそれぞれ適用される。した
がって、インデックス・レジスタとオフセット・アドレ
ス・モードを使用してオペランドの読み取りまたは書き
込みを行なうアクセスの場合、16ビットのアドレスは
XKフィールド76によって20ビットのアドレスに拡
張される。アドレス・バス44に載置された上位4アド
レス・ビット(A16−A19)のみが更新され、XKフィ
ールド76の内容は更新されない。したがって、インデ
ックス・レジスタおよびオフセット・アドレス・モード
を使用して行なわれるオペランドの読み取り/書き込み
アクセスによってオーバフローまたはアンダーフローの
状態が発生する場合、Kフィールドは更新されない。逆
に、インデックス・レジスタに対する加算またはこれか
らの減算によってオーバフローまたはアンダーフローの
状態が発生する場合、Kフィールドは自動的に更新され
る。
【0010】CPU30によって、1つのメモリ・バン
クの1つのアドレスから別のメモリ・バンクの1つのア
ドレスへの黙示的ジャンプおよび明示的ジャンプの両方
が可能になる。アンダーフローまたはオーバフローの状
態が発生すると、PKフィールド75および上位4アド
レス・ビット(A16−A19)の両方の内容が更新され
る。黙示的ジャンプ命令によって、PC66に命令ホー
マットに含まれている有効アドレスがロードされ、PK
フィールド75に対して対応するKフィールド(すなわ
ち、XK76,YK74,ZK77またはEK72)か
らのロードが行なわれる。本発明では、もしジャンプ命
令に使用するアドレス・モードがそれぞれレジスタX,
YまたはZ,67,64または71のオフセットであ
り、16ビットによって計算された有効アドレスがイン
デックス動作によってオーバフローまたはアンダフロー
されれば、CCR54のPKフィールド75にローディ
ングを行なう前に位置の値をバンク番号(対応するKフ
ィールドで指定されている)に加算し、またはこれをこ
のバンク番号から減算する。逆に、もしジャンプ命令の
ために使用するアドレス・モードが拡張されれば、PC
66はジャンプ命令に含まれている16ビットのアドレ
スから直接ロードされ、PKフィールド75はEKフィ
ールド72から直接ロードされる。明示的ジャンプ命令
は、PKフィールド75にロードされるべき即時バンク
番号(例えば、バンク5)と命令フォーマットの一部と
してPC66にロードされるべき16ビットの有効アド
レスの両方を有している。明示的ジャンプ命令を実行し
た後、これに続く命令の取り出しは特定の命令によって
指定されるアドレスでメモリバンク番号(例えば、バン
ク5)において開始される。明示的ジャンプ命令と共に
使用することのできる唯一の許容可能なアドレス・モー
ドは20ビットの拡張アドレスである。したがって、上
位4ビットはバンク番号に対応し、下位16ビットはメ
モリ・バンク内のアドレスに対応する。
【0011】本発明によれば、PC66をメモリ・バン
クの境界を超えて前進させる(順方向または逆方向)選
択された組のブランチ命令(すなわち、条件ブラチン)
を実行することによって、PKフィールド75は自動的
に更新される。サブルーチン命令に対するブランチの場
合、呼び出しルーチンのアドレスとバンク番号はCPU
30のスタック(図示せず)に対してプッシュされる。
サブルーチン命令からの復帰を使用して呼び出しルーチ
ンのバンク番号とアドレスはスタックからプルされ、C
CR54とPC66にそれぞれロードされ、命令の取り
出しはそのバンク番号のこのアドレスで開始される。
【0012】本発明において、PKフィールド75は、
また通常のPC66のインクリメントの結果として変化
する。例えば、PC66の内容が$FFFEであると仮
定すれば、PKフィールド75の内容は$3である。フ
ロー(すなわち、ジャンプ、ブランチ)の変化を発生し
ない2ワード(4バイト)の命令の実行に続いて、PC
66の内容は$0002になり、PKフィールド75の
内容は$4になる。基本的にPC66をインクリメント
することによって発生するオーバフロー状態は、PKフ
ィールド75(バンク番号)を1だけインクリメントす
ることを必要とする。したがって、上で論じた種々のジ
ャンプ命令と組み合わせてPKフィールド75を自動的
に更新することによって、プログラムが自動的にメモリ
・バンクの境界と交差することが可能になる。同様に、
SP63が例外によって黙示的に、またはプッシュまた
はプル命令によって明示的に修正される場合、SKフィ
ールド73は自動的に更新される。したがって、もしS
P63の修正によってスタック・メモリ・バンクのオー
バフロー状態またはアンダフロー状態が発生すれば、プ
ログラムはメモリ・バンクの境界と自動的に交差する
(順方向または逆方向に)。
【0013】図6は、メモリ拡張スキーム90を示すブ
ロック図であり、これによって本発明によるメモリ・バ
ンクの境界の交差が可能になる。図6において、アドレ
ス・レジスタ92は、図5Bに示す6個のレジスタ(す
なわち、インデックス・レジスタ64,67,70,S
P63,PC66または拡張アドレス・レジスタ60
(の1つを表す。バンク番号レジスタ94は図5Bに示
す対応する6個のKフィールドを表す。オフセット・レ
ジスタ96はアキュムレータD71またはE68のよう
ないずれの汎用レジスタでもよい。インデックスされた
アドレスモードの場合、16ビットのインデックス・レ
ジスタの1つ(すなわち、インデックス・レジスタX6
7)の内容は16ビットのオフセット・アドレスに加算
され、これは命令の一部として含まれてこの命令で使用
されるべきオペランドの有効アドレスを形成する。した
がって、16ビットのオフセット・アドレスは、内部バ
スA78(図4)を介してIRA60(図4)からオフ
セット・レジスタ96にロードされる。ALU69の加
算器98によって、レジスタ92と94に格納されてい
る20ビット(拡張された)の論理アドレスがオフセッ
ト・レジスタ96に格納されている16ビットの論理オ
フセット・アドレスに加算される。20ビット(拡張さ
れた)の物理的アドレスである結果が加算器98によっ
て与えられる。この20ビットの物理的アドレスは内部
バスS81を介してアドレス・バッファ56に転送さ
れ、次にアドレス・バス44に転送される。
【0014】前に説明したように、有効アドレスの計算
によってアンダーフローの状態またはオーバフローの状
態が発生すれば、加算器98によって上位4アドレス・
ビットA16- A19が更新され、バスS80に転送され
る。基本的に、拡張20ビットの物理的アドレスをアド
レス・バス44に転送する前に、加算器98は上位4ア
ドレス・ビットをインクリメントまたはデクリメントす
る。選択されたケ−スの場合、加算器98はKフィール
ドを1だけインクリメントまたはデクリメントすること
にょって、バンク番号レジスタ94(Kフィールド)を
自動的に更新する。したがって、加算器98は、ここで
はバス100で示す内部バスB79を介して更新された
上位4アドレス・ビット(A16−A19)を対応するKフ
ィールド(すなわち、XK76,YK74)に転送す
る。
【0015】本発明によって、メモリ拡張スキームの提
供されることが明らかであり、これにってプログラムは
ユーザが介在することなく自動的にメモリ・バンクの境
界と交差する。本発明に於てメモリ・バンク・アドレス
・レジスタ82(図5A)は選択されたメモリ・バンク
(すなわち、バンク0)に対応する値を4ビットのサブ
フィールド(Kフィールド)に格納する。好適な実施例
において、Kフィールドは6個のバンク・レジスタ94
(図6)を使用して実行され、これらのレジスタの各々
は対応するアドレス・レジスタ92に結合されて、20
ビット(拡張された)の論理アドレスを形成する。有効
アドレス計算の期間中、インデックス・アドレス・モー
ドではオフセット・レジスタ96に格納されている16
ビットの論理オフセット・アドレスがALU69の加算
器98によって20ビット(拡張された)の論理アドレ
スに加算される。加算器69は、20ビットの物理的ア
ドレスをアドレス・バッファ56を介してアドレス・バ
ス44に転送する。計算したアドレスがメモリ・バンク
の境界と交差すると、20ビットの物理的アドレスをア
ドレス・バス44に転送する前に上位4アドレス・ビッ
ト(A16−A19)を自動的に更新する。したがって、プ
ログラムはユーザの介在を必要とすることなくメモリ・
バンクの境界と交差することができる。更に、選択され
たケースの場合(すなわち、インデックス・レジスタに
対する加算の場合)バンク番号レジスタ94(アドレス
・ビットA16−A19)の内容はフィードバック・バス1
00を介して加算器98によって自動的に更新される。
したがって、本発明のメモリ・バンクの拡張スキーム9
0によってメモリ・バンクの境界と自動的に交差する能
力が与えられ、一方バンク番号レジスタ94に格納され
ている情報は自動的に更新される。
【0016】本発明は好適な実施例について説明した
が、開示した発明は種々の方法で変更可能であり、上で
特に説明した実施例以外の多くの実施例が可能であるこ
とは当業者にとって明らかである。
【図面の簡単な説明】
【図1】メモリ拡張用の従来技術によるセグメンテーシ
ョン・スキームの図を示す。
【図2】メモリ拡張用の従来技術による単純なバンク切
り替えスキームの図を示す。
【図3】本発明によるメモリ拡張スキームを有する磁気
コア中央処理装置をブロック図で示す。
【図4】図3の磁気コアCPUの実行ユニットの内部レ
ジスタのアーキテクチャを示す。
【図5】(A),(B)は図3の磁気コアCPU用のプ
ログラマのモデルをブロック図で示す。
【図6】本発明によるメモリ拡張スキームの図を示す。
【符号の説明】
30 中央処理装置 32 プログラマブルロジック・アレイ 33 マイクロシーケンサ 34 マイクロROM 42 バス・インターフェース・ユニット 44 アドレス・バス 47 実行ユニット 48 命令レジスタ復号ロジック 50 命令パイプライン 52 汎用レジスタ 58 データ・バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カーク・リビングストン アメリカ合衆国テキサス州オースティ ン、ミスティグレン・サークル3102 (56)参考文献 特開 平1−263850(JP,A) 特開 昭63−187350(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/06

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の命令を実行するプロセッサ(30)を有
    するデータ処理システムにおいて使用されるメモリ
    ンク切替装置であって、このメモリ バンク切替装置は
    外部メモリ内の選択されたメモリ バンクにアクセス
    し、前記プロセッサは所定数のメモリ・バンクに分化
    されている前記外部メモリと通信バス(49)を介して通信
    し、前記メモリ・バンクの各々はメモリ・アドレスの境
    界によって区分けされ、当該メモリ・バンク切替装置(9
    0)は: 複数のメモリ・アドレスを格納するレジスタ手段(92,9
    4)であって、前記メモリ・アドレスの各々は選択され
    たメモリ・バンクに対応する第1組のアドレス・ビッ
    ト、および前記選択されたメモリ・バンク内のメモリ位
    置に対応する第2組のアドレス・ビットを含む前記レジ
    スタ手段(92,94); 前記レジスタ手段(92,94)に結合されて前記レジスタ手
    段(92,94)に格納されているメモリ・アドレスをオフセ
    ット・アドレスに加える第1手段(98)であって、拡張さ
    れたアドレスを前記通信バス(49)に供給し、前記拡張ア
    ドレスが前記選択されたメモリ・バンクに対するアドレ
    スの境界を超えると、前記複数の命令の各々に応じて、
    内部通信バス(49)を介して前記メモリ・アドレスの前記
    第1組のアドレス・ビットを選択的に更新する前記第1
    手段(98); によって構成されることを特徴とするメモリ・バンク切
    替装置(90)。
  2. 【請求項2】前記オフセット・アドレスには、第1アド
    レス・モードで、選択された命令が与えられ、前記オフ
    セット・アドレスは第2アドレス・モードではオフセッ
    ト・レジスタ(96)によって与えられることを特徴とする
    請求項1記載のメモリ・バンク切替装置(90)。
  3. 【請求項3】前記第1手段(98)は加算器であることを特
    徴とする請求項2記載のメモリ・バンク切替装置(90)。
  4. 【請求項4】前記プロセッサ(30)が前記レジスタ手段(9
    2,94)に格納されている値に基づいて加算または減算を
    実行する場合、前記第1手段は前記第1組のアドレス・
    ビットを選択的に更新することを特徴とする請求項3記
    載のメモリ・バンク切替装置(90)。
  5. 【請求項5】データ処理システムにおいて、複数の命令
    を実行すると共に、所定数のメモリ・バンクに分化さ
    れている外部メモリと外部通信バス(49)を介して通信を
    行うプロセッサ(30)であって、前記メモリ・バンクの各
    々はメモリ・アドレスの境界によって区分けされ、前記
    プロセッサは前記外部メモリ内の選択されたメモリ・バ
    ンクをアクセスするメモリ・バンク切替装置(90)を有
    し、前記プロセッサ(30)は: 前記外部通信バス(49)に結合され前記メモリ・アドレス
    を前記プロセッサ(30)から前記外部メモリに転送し、前
    記プロセッサ(30)の実行する複数の命令を受け取るバス
    ・インターフェース・ユニット(42);および前記バス・
    インターフェース・ユニット(42)に結合され前記バス・
    インターフェース・ユニット(42)から受け取った前記複
    数の命令を実行する実行ユニト(47)によって構成され、
    さらに、前記実行ユニット(47)は、 複数のメモリ・アドレスを格納するレジスタ手段(92,9
    4)であって、前記メモリ・アドレスの各々は選択された
    メモリ・バンクに対応する第1組のアドレス・ビット、
    および前記選択されたメモリ・バンクのメモリ位置に
    対応する第2組のアドレス・ビットを含むレジスタ手段
    (92,94);および前記レジスタ手段(92,94)に結合されて
    前記レジスタ手段(92,94)に格納されているメモリ・ア
    ドレスをオフセット・アドレスに加える第1手段(98)で
    あって、拡張されたアドレスを前記外部通信バス(49)に
    供給し、前記拡張されたアドレスが前記選択されたメモ
    リ・バンクのアドレスの境界を超えると、前記複数の命
    令の各々に応じて、前記内部通信バスを介して、前記メ
    モリ・アドレスの前記第1組のアドレス・ビットを選択
    的に更新する前記第1手段(98); によって構成されることを特徴とするプロセッサ(30)。
  6. 【請求項6】前記オフセット・アドレスには、第1アド
    レス・モードで、選択された命令が与えられ、前記オフ
    セット・アドレスは第2アドレス・モードではオフセッ
    ト・レジスタ(96)によって与えられることを特徴とする
    請求項5記載のプロセッサ(30)。
  7. 【請求項7】複数のマイクロ命令を格納して選択された
    命令を実行するマイクロROM(34)によって更に構成さ
    れることを特徴とする請求項6記載のプロセッサ(30)。
  8. 【請求項8】次のマイクロアドレスのシーケンスを前記
    マイクロROM(34)に供給し、これによってマイクロ命
    令の実行のシーケンスを制御するマイクロシーケンサに
    よって更に構成されることを特徴とする請求項7記載の
    プロセッサ(30)。
JP18395791A 1990-07-05 1991-06-28 メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ Expired - Fee Related JP3233163B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US548695 1990-07-05
US07/548,695 US5249280A (en) 1990-07-05 1990-07-05 Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory

Publications (2)

Publication Number Publication Date
JPH04233640A JPH04233640A (ja) 1992-08-21
JP3233163B2 true JP3233163B2 (ja) 2001-11-26

Family

ID=24190002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18395791A Expired - Fee Related JP3233163B2 (ja) 1990-07-05 1991-06-28 メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ

Country Status (4)

Country Link
US (1) US5249280A (ja)
EP (1) EP0465248B1 (ja)
JP (1) JP3233163B2 (ja)
DE (1) DE69131919D1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771368A (en) * 1990-10-29 1998-06-23 Sun Microsystems, Inc. Memory addressing scheme for increasing the number of memory locations available in a computer for storing higher precision numbers
US5537576A (en) * 1993-06-23 1996-07-16 Dsp Semiconductors Ltd. Expandable memory for a digital signal processor including mapped first and second memory banks forming a continuous and contiguous address space
DE4340551A1 (de) * 1993-11-29 1995-06-01 Philips Patentverwaltung Programmspeichererweiterung für einen Mikroprozessor
US5566308A (en) * 1994-05-25 1996-10-15 National Semiconductor Corporation Processor core which provides a linear extension of an addressable memory space
US5915266A (en) * 1994-05-25 1999-06-22 National Semiconductor Corporation Processor core which provides a linear extension of an addressable memory space
US5734858A (en) * 1994-10-24 1998-03-31 Microsoft Corporation Method and apparatus for simulating banked memory as a linear address space
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
JPH08190481A (ja) * 1995-01-06 1996-07-23 Ricoh Co Ltd 情報処理装置
JP3765337B2 (ja) * 1996-10-25 2006-04-12 株式会社東芝 Macのバンクレジスタ回路
US6260101B1 (en) * 1997-03-07 2001-07-10 Advanced Micro Devices, Inc. Microcontroller having dedicated hardware for memory address space expansion supporting both static and dynamic memory devices
US6349380B1 (en) * 1999-03-12 2002-02-19 Intel Corporation Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor
US6393512B1 (en) * 1999-09-27 2002-05-21 Ati International Srl Circuit and method for detecting bank conflicts in accessing adjacent banks
US6449706B1 (en) * 1999-12-22 2002-09-10 Intel Corporation Method and apparatus for accessing unaligned data
US6711655B1 (en) 2001-02-02 2004-03-23 Cradle Technologies, Inc. Finding available memory space by finding its associated memory transfer controller
US6880065B1 (en) * 2002-09-30 2005-04-12 Palmone, Inc. Memory management method and system thereof
US7181551B2 (en) * 2003-10-17 2007-02-20 Cisco Technology, Inc. Backward-compatible parallel DDR bus for use in host-daughtercard interface
GB2412192B (en) * 2004-03-18 2007-08-29 Advanced Risc Mach Ltd Function calling mechanism
US7478289B1 (en) * 2005-06-03 2009-01-13 Nvidia Corporation System and method for improving the yield of integrated circuits containing memory
CN101317162B (zh) * 2005-12-30 2012-01-18 英特尔公司 可按比特改动的非易失性存储器的管理
US8037259B2 (en) 2007-06-01 2011-10-11 General Dynamics Advanced Information Systems, Inc. System and method for managing addresses in a computing system
US8281049B2 (en) * 2008-12-19 2012-10-02 Cisco Technology, Inc. Host-daughtercard configuration with double data rate bus
US20100211714A1 (en) * 2009-02-13 2010-08-19 Unisys Corporation Method, system, and apparatus for transferring data between system memory and input/output busses
US8392689B1 (en) * 2010-05-24 2013-03-05 Western Digital Technologies, Inc. Address optimized buffer transfer requests

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3949378A (en) * 1974-12-09 1976-04-06 The United States Of America As Represented By The Secretary Of The Navy Computer memory addressing employing base and index registers
JPS5464933A (en) * 1977-11-01 1979-05-25 Panafacom Ltd Main storage extension system
US4367524A (en) * 1980-02-07 1983-01-04 Intel Corporation Microinstruction execution unit for use in a microprocessor
JPS6051957A (ja) * 1983-08-31 1985-03-23 Toshiba Corp マイクロプロセツサシステム
DE3479356D1 (en) * 1983-12-23 1989-09-14 Hitachi Ltd A data processor with control of the significant bit lenghts of general purpose registers
JPH0760423B2 (ja) * 1984-12-24 1995-06-28 株式会社日立製作所 データ転送方式
JPH0789319B2 (ja) * 1985-04-22 1995-09-27 株式会社日立製作所 デ−タ処理装置における先行制御装置
JPH07101385B2 (ja) * 1986-12-05 1995-11-01 株式会社東芝 情報処理装置
JPH0766324B2 (ja) * 1988-03-18 1995-07-19 三菱電機株式会社 データ処理装置
US5023828A (en) * 1988-07-20 1991-06-11 Digital Equipment Corporation Microinstruction addressing in high-speed CPU

Also Published As

Publication number Publication date
DE69131919D1 (de) 2000-02-24
JPH04233640A (ja) 1992-08-21
EP0465248A2 (en) 1992-01-08
EP0465248A3 (en) 1992-03-04
EP0465248B1 (en) 2000-01-19
US5249280A (en) 1993-09-28

Similar Documents

Publication Publication Date Title
JP3233163B2 (ja) メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ
EP0138419B1 (en) Central processing unit for a digital computer
EP0019392B1 (en) Instruction register sequence decoder for microprogrammed data processor and method
US5420992A (en) Backward-compatible computer architecture with extended word size and address space
US8539210B2 (en) Context switching with automatic saving of special function registers memory-mapped to all banks
KR19980069856A (ko) 스케일러블 폭의 벡터 프로세서 아키텍쳐
KR20010043826A (ko) 마이크로 컨트롤러 명령어 집합
US4434462A (en) Off-chip access for psuedo-microprogramming in microprocessor
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
EP2215544B1 (en) Enhanced microprocessor or microcontroller
US5680632A (en) Method for providing an extensible register in the first and second data processing systems
JP2000357088A (ja) マイクロプロセッサ及びデータ処理システム
JP2004086837A (ja) データ処理装置
US4812971A (en) Central processing unit for a digital computer
US4893235A (en) Central processing unit for a digital computer
JP2551167B2 (ja) マイクロコンピュータ
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
US4575795A (en) Apparatus for detecting a predetermined character of a data string
CA1250666A (en) Central processing unit for a digital computer
EP1706817B1 (en) Microcontroller with a virtual memory bank
JPS6155130B2 (ja)
JP2781779B2 (ja) 分岐制御回路
JP2894854B2 (ja) 中央演算処理装置
JP2696578B2 (ja) データ処理装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070921

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080921

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080921

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090921

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees