JPH04233640A - メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ - Google Patents
メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラInfo
- Publication number
- JPH04233640A JPH04233640A JP3183957A JP18395791A JPH04233640A JP H04233640 A JPH04233640 A JP H04233640A JP 3183957 A JP3183957 A JP 3183957A JP 18395791 A JP18395791 A JP 18395791A JP H04233640 A JPH04233640 A JP H04233640A
- Authority
- JP
- Japan
- Prior art keywords
- address
- memory
- register
- memory bank
- bit
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User 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)
Abstract
め要約のデータは記録されません。
Description
関し、更に詳しくは、メモリ・バンクの切り替え技術を
使用したデータ・プロセッサに関する。
高性能なマイクロコントローラ(MCU)に対する需要
が増加するにしたがって、半導体メーカは、下位の目的
(low−end)を有するMCUとの互換性を犠牲に
することなく高性能のMCUを設計する方法を模索して
いる。一般的に、マイクロコントローラのアプリケーシ
ョン用のソフトウエアを開発する場合のエンジニアリン
グ上の投資は膨大なものである。したがって、設計上の
目的は、MCUのファミリーを提供することであり、こ
の場合、より高性能なMCU(例えば16ビット)はよ
り性能の低いMCU(例えば8ビット)用に作られたソ
フトウエアを動作させることができる。一般的に、公表
されている目的を満足することによって、より高性能な
MCUの設計に対してアーキテクチャ上の制約が加えら
れる。代表的な8ビットのMCUを設計する場合、中央
処理装置(CPU)は、64Kバイトのメモリのみをア
クセスする。一般的に、大幅な性能の向上は、アドレス
可能なメモリのスペースを単に、例えば、1Mバイトの
メモリに拡張することによって実現され、これによって
より大きなメモリ・スペースを収容することのできる1
6ビットのMCUを製作する。公表されている目的を保
持する場合、16ビットのMCUがこのMCUのファミ
リーである8ビットの(現存する)MCUのために作ら
れたソース・コードを実行することを、メモリ拡張スキ
ームの設計が可能にしなければならない。
つのメモリ拡張スキーム、すなわちセグメンテーション
と単純なバンク切り替えを使用している。図1Aないし
1Bは、メモリ拡張用の公知のセグメンテーション・ス
キーム10を示す。このセグメンテーション・スキーム
10の場合、16ビットの論理セグント・ベース・アド
レスは、論理アドレス・バス18を介して16ビットの
セグント・ベース・レジスタ12に転送される。このセ
グント・ベース・アドレスは、拡張した20ビットの論
理セグント・ベース・アドレスを発生するためにシフト
されて残っている(shifted left)4ビ
ットである。オフセット・レジスタ14に格納されてい
る16ビットの論理オフセット・アドレスは、ゼロだけ
拡張されて20ビットの論理オフセット・アドレスを発
生する。拡張後、この20ビットの論理セグント・ベー
ス・アドレスは加算器16によって20ビットの論理オ
フセット・アドレスに加えられ、これによって20ビッ
トの(拡張された)物理的アドレスを発生する。この2
0ビットの物理的アドレスは、物理的アドレス・バス1
7を介して外部メモリ(図示せず)に転送される。セグ
メンテーション・スキーム10を使用して、16個の6
4Kバイトのセグメントを発生させ、これは16個のバ
イトの境界に載置することができる。大部分のセグメン
テーション・スキームでは、セグント・ベース・レジス
タとオフセット・レジスタを更新するためにユーザの介
在を必要とし、このことは、結果として性能に不利益を
およぼす可能性がある。図2Aないし図2Bは、メモリ
拡張用の単純なバンク切り替えスキーム20を示す。一
般的に、単純なバンク切り替えスキームの場合、各メモ
リ・バンクには独自のバンク番号が割り当てられる。例
えば、メイン・メモリは16個のメモリ・バンクに再分
化され、これによって4ビットのバンク番号を使用して
16個のメモリ・バンクの特定の1つを選択する。した
がって、16ビットの論理ベース・アドレスは、論理ア
ドレス・バス25を介してアドレス・レジスタ22に転
送される。オフセット・レジスタ23に格納されている
16ビットのオフセット・アドレスは加算器26によっ
て16ビットの論理ベース・アドレスに加えられ、その
結果、(16ビットの論理アドレス)は入力として連結
論理ブロック27に供給される。連結論理ブロック27
は、バンク番号レジスタ24から4ビットの論理メモリ
・バンク・アドレスを受け、アドレス26から16ビッ
トの論理アドレスを受け、これら2つのアドレスを連結
し、これによって20ビットの(拡張された)物理的ア
ドレスを物理的アドレス・バス28に供給する。単純な
バンク切り替えスキーム20は16個の64Kバイトの
セグメントを発生し、これらは64Kバイトの境界に載
置することができる。一般的に、バンク番号レジスタ2
4に格納されている値(メモリ・バンク・アドレス)を
更新するにはユーザの介在が必要である。基本的に、ア
ドレスの計算がバンク番号レジスタ24によって指定さ
れるメモリ・バンクの境界を超える場合、単純なバンク
切り替えスキーム20はプログラムがメモリ・バンクの
境界と交差することを認めない。その代わり、このプロ
グラムは特定のメモリ・バンク内に閉じ込められている
。メモリ・バンクの境界と交差するには、ユーザは先ず
、メモリ・バンクのチエックを実行することによってア
ドレスの計算がメモリ・バンクの境界と交差したかどう
かを判定し、次に、バンク番号レジスタ24に新しいメ
モリ・バンクの番号を書き込まなければならない。その
結果、単純なバンク切り替えスキームの場合、アドレス
の計算がバンクの境界と交差すると、性能上の不利益が
発生する可能性がある。したがって、上述した問題を解
消することのできるメモリ拡張スキームを提供すること
が望ましい。
信バスを介して、外部メモリとの通信を行うため、磁気
コア中央処理装置を提供する。外部メモリは所定数のメ
モリ・バンクに再分化され、各メモリ・バンクはメモリ
・アドレスの境界によって定義される。磁気コア中央処
理装置は、メモリ・バンク切り替え装置を使用して外部
メモリの中の選択されたメモリ・バンクにアクセスする
。論理メモリ・アドレスは第1組のアドレス・レジスタ
に格納される。各論理メモリ・アドレスは、選択された
メモリ・バンクに対応する第1組のアドレス・ビットお
よび選択されたメモリ・バンク内のメモリ・ロケーショ
ンに対応する第2組のアドレス・ビットによって構成さ
れる。加算器は第1組のアドレス・レジスタに格納され
ている論理メモリ・アドレスを論理オフセット・アドレ
スに加算し、その結果、すなわち拡張物理的アドレスを
通信バスに転送する。拡張された物理的アドレスが選択
されたメモリ・バンクに対するアドレスの境界を超える
と、加算器はメモリ・アドレスの第1組のアドレス・ビ
ットを内部通信バスを介して更新し、これによって処理
装置がメモリ・バンクの境界と交差するアドレスを自動
的にアクセスすることを可能にする。
有する磁気コア中央処理装置(CPU)30を示す。C
PU30はエントリー・プログラマブル・ロジック・ア
レイ(PLA)32,マイクロシーケンサ33,マイク
ロROM34,ブランチ制御ロジック36,エクセプシ
ョン・ロジック38,条件コードレジスタ(CCR)P
LA40,バス・インターフェース・ユニット(BIU
)42,アドレス・バス44,データ・バス46,実行
ユニット47および命令レジスタ復号ロジック(IRD
)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の全
ての種々のアドレスモードをサポートしている。
ラインによって接続されたデータ・プロセッサであり、
このデータ・プロセッサは、命令レジスタ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から最初のマ
イクロアドレスを受け、対応するマイクロ命令をEU4
7に読み出し、最初のマイクロアドレスをマイクロシー
ケンサ33に転送する。好適な実施例に於て、マイクロ
シーケンサ33はステート・マシン(state m
achine)であり、これはマイクロルーチン内の次
のマイクロアドレスを直接マイクロRN34に供給する
ことによって、マイクロROM34に格納されているマ
イクロ命令の実行シーケンスを制御する。通常の動作期
間中マイクロROM34は所定数のマイクロ命令をEU
47に転送し、このEU47はマイクロ命令によって否
定された必要な動作を実行する。IRD48は状態を与
え、CCR PLA40および例外論理回路38に対
する入力信号を制御し、種々の処理状態の発生を指示す
る。図4は、EU47のレジスタのアーキテクチャを示
すブロック図である。好適な実施例において、3つの内
部通信バスBUS A79,BUS B80および
BUS S81によって種々の内部レジスタ52の間
の相互接続が行われる。CPU30は、2つの汎用の1
6ビットのアキユムレータD72とE68,および3個
の16ビットのインデックス・レジスタX,YおよびZ
67,64および71をそれぞれ有している。アキユム
レータE68,レジスタX,YおよびZ,67,64お
よび71はそれぞれワード(16ビット)のオペランド
をサポートする。好適な実施例において、アキユムレー
タD71は、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−A1
9は6個の4ビットのK−フィールド(以下で論じる)
の1つから得られる。
グラマのモデルをブロック図で示す。本発明の好適な実
施例では、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ビットのレジスタである。
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のアドレス・スペ
ースは疑似直線的になる。
XK,YK,ZK,EKおよびSKは、1組の転送命令
を使用して明示的に変更してもよく、またインデックス
・レジスタX,YおよびZ,67,64および70にそ
れぞれ加算を行う、またはこれらから減算を行う結果と
して黙示的に変更してもよい。明示修正は、アキュムレ
ータB(図示せず)の下位4ビットを内部バスB79を
介して、適当なKフィールドに転送する1組の命令を使
用して、種々のKフィールドに対して行なわれる。転送
命令を使用することによって、Kフィールドに対して独
立してアクセスが行なわれる。レジスタX67,Y64
,Z70,SP63またはPC66の値に対して加算を
行ないまたはこれらから減算を行なうこといよって、そ
の結果得られる値がアドレス$FFFFをオーバフロー
するかまたはアドレス$0000をアンダーフローする
場合に、Kフィールドに対する黙示修正が発生し、これ
によって関連するKフィールドを修正する。もしオーバ
フロー状態が発生すれば、対応するKフィールドは1だ
けインクリメントされ、他方、もしアンダーフロー状態
が発生すれば、対応するKフィールドは1だけデクリメ
ントされる。
計算はバンクの境界と交差てもよい。オフセット・アド
レス・モードの場合、インデックス・レジスタを使用し
てオペランドの取り出しを行なうことによって、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フィールドは自動的に
更新される。
クの1つのアドレスから別のメモリ・バンクの1つのア
ドレスへの黙示的ジャンプおよび明示的ジャンプの両方
が可能になる。アンダーフローまたはオーバフローの状
態が発生すると、PKフィールド75および上位4アド
レス・ビット(A16−A19)の両方の内容が更新さ
れる。黙示的ジャンプ命令によって、PC66に命令ホ
ーマットに含まれている有効アドレスがロードされ、P
Kフィールド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ビットはメ
モリ・バンク内のアドレスに対応する。
クの境界を超えて前進させる(順方向または逆方向)選
択された組のブランチ命令(すなわち、条件ブラチン)
を実行することによって、PKフィールド75は自動的
に更新される。サブルーチン命令に対するブランチの場
合、呼び出しルーチンのアドレスとバンク番号はCPU
30のスタック(図示せず)に対してプッシュされる。 サブルーチン命令からの復帰を使用して呼び出しルーチ
ンのバンク番号とアドレスはスタックからプルされ、C
CR54とPC66にそれぞれロードされ、命令の取り
出しはそのバンク番号のこのアドレスで開始される。
また通常の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の修正によってスタック・メモリ・バンクのオー
バフロー状態またはアンダフロー状態が発生すれば、プ
ログラムはメモリ・バンクの境界と自動的に交差する(
順方向または逆方向に)。
ロック図であり、これによって本発明によるメモリ・バ
ンクの境界の交差が可能になる。図6において、アドレ
ス・レジスタ92は、図5Bに示す6個のレジスタ(す
なわち、インデックス・レジスタ64,67,70,S
P63,PC66または拡張アドレス・レジスタ60(
の1つを表す。バンク番号レジスタ94は図5Bに示す
対応する6個のKフィールドを表す。オフセット・レジ
スタ96はアキュムレータD71またはE68のような
いずれの汎用レジスタでもよい。インデックスされたア
ドレスモードの場合、16ビットのインデックス・レジ
スタの1つ(すなわち、インデックス・レジスタX67
)の内容は16ビットのオフセット・アドレスに加算さ
れ、これは命令の一部として含まれてこの命令で使用さ
れるべきオペランドの有効アドレスを形成する。したが
って、16ビットのオフセット・アドレスは、内部バス
A78(図4)を介してIRA60(図4)からオフセ
ット・レジスタ96にロードされる。ALU69の加算
器98によって、レジスタ92と94に格納されている
20ビット(拡張された)の論理アドレスがオフセット
・レジスタ96に格納されている16ビットの論理オフ
セット・アドレスに加算される。20ビット(拡張され
た)の物理的アドレスである結果が加算器98によって
与えられる。この20ビットの物理的アドレスは内部バ
スS81を介してアドレス・バッファ56に転送され、
次にアドレス・バス44に転送される。
によってアンダーフローの状態またはオーバフローの状
態が発生すれば、加算器98によって上位4アドレス・
ビットA16− A19が更新され、バスS80に転送
される。基本的に、拡張20ビットの物理的アドレスを
アドレス・バス44に転送する前に、加算器98は上位
4アドレス・ビットをインクリメントまたはデクリメン
トする。選択されたケ−スの場合、加算器98はKフィ
ールドを1だけインクリメントまたはデクリメントする
ことにょって、バンク番号レジスタ94(Kフィールド
)を自動的に更新する。したがって、加算器98は、こ
こではバス100で示す内部バスB79を介して更新さ
れた上位4アドレス・ビット(A16−A19)を対応
するKフィールド(すなわち、XK76,YK74)に
転送する。
供されることが明らかであり、これにってプログラムは
ユーザが介在することなく自動的にメモリ・バンクの境
界と交差する。本発明に於てメモリ・バンク・アドレス
・レジスタ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)の内容はフィードバック
・バス100を介して加算器98によって自動的に更新
される。 したがって、本発明のメモリ・バンクの拡張スキーム9
0によってメモリ・バンクの境界と自動的に交差する能
力が与えられ、一方バンク番号レジスタ94に格納され
ている情報は自動的に更新される。
、開示した発明は種々の方法で変更可能であり、上で特
に説明した実施例以外の多くの実施例が可能であること
は当業者にとって明らかである。
ョン・スキームの図を示す。
り替えスキームの図を示す。
コア中央処理装置をブロック図で示す。
ジスタのアーキテクチャを示す。
ログラマのモデルをブロック図で示す。
クロシーケンサ 34 マイクロROM 42 バス・インターフェース・ユニット44 ア
ドレス・バス 47 実行ユニット 48 命令レジスタ復号ロジック 50 命令パイプライン 52 汎用レジスタ 58 データ・バッファ
Claims (8)
- 【請求項1】 複数の命令を実行するプロセッサ(3
0)を有すると共に、所定数のメモリ・バンクに再分化
されている外部メモリと通信バス(49)を介して通信
を行うデータ処理システムであって、前記メモリ・バン
クの各々はメモリ・アドレスの境界によって定義されて
いる前記データ処理システムにおける前記外部メモリ内
の選択されたメモリ・バンクをアクセスするメモリ・バ
ンク切り替え手段(90)は:複数のメモリ・アドレス
を格納するレジスタ手段(92,94)であって、前記
メモリ・アドレスの各々は選択されたメモリ・バンクに
対応する第1組のアドレス・ビット、および前記選択さ
れたメモリ・バンクのメモリ位置に対応する第2組のア
ドレス・ビットによって構成される前記レジスタ手段(
92,94);前記レジスタ手段(92,94)に結合
されて前記レジスタ手段(92,94)に格納されてい
るメモリ・アドレスをオフセット・アドレスに加える第
1手段(98)であって、拡張されたアドレスを前記通
信バス(49)に供給し、前記拡張アドレスが前記選択
されたメモリ・バンクのアドレスの境界を超えると内部
通信バス(49)を介して、前記メモリ・アドレスの前
記第1組のアドレス・ビットを選択的に更新する前記第
1手段(98);によって構成されることを特徴とする
メモリ・バンク切り替え手段(90)。 - 【請求項2】 前記オフセット・アドレスには、第1
アドレス・モードで、選択された命令が与えられ、前記
オフセット・アドレスは第2アドレス・モードではオフ
セット・レジスタ(96)によって与えられることを特
徴とする請求項1記載のメモリ・バンク切り替え手段(
90)。 - 【請求項3】 前記第1手段(98)は加算器である
ことを特徴とする請求項2記載のメモリ・バンク切り替
え手段(90)。 - 【請求項4】 前記プロセッサ(30)が前記レジス
タ手段(92,94)に格納されている値に基づいて加
算または減算を実行する場合、前記第1手段は前記第1
組のアドレス・ビットを選択的に更新することを特徴と
する請求項3記載のメモリ・バンク切り替え手段(90
)。 - 【請求項5】 データ処理システムにおいて、複数の
命令を実行すると共に、所定数のメモリ・バンクに再分
化されている外部メモリと外部通信バス(49)を介し
て通信を行うプロセッサ(30)であって、前記メモリ
・バンクの各々はメモリ・アドレスの境界によって定義
されている場合の、前記外部メモリ内の選択されたメモ
リ・バンクをアクセスするメモリ・バンク切り替え手段
(90)を有する前記プロセッサ(30)において、前
記プロセッサ(30)は:前記外部通信バス(49)に
結合されて前記メモリ・アドレスを前記プロセッサ(3
0)から前記外部メモリに転送し、前記プロセッサ(3
0)の実行する複数の命令を受け取るバス・インターフ
ェース・ユニット(42);および前記バス・インター
フェース・ユニット(42)に結合されて前記バス・イ
ンターフェース・ユニット(42)から受け取った前記
複数の命令を実行する実行ユニト(47)によって構成
され、前記実行ユニット(47)は:複数のメモリ・ア
ドレスを格納する第1レジスタ手段(92,94)であ
って、前記メモリ・アドレスの各々は選択されたメモリ
・バンクに対応する第1組のアドレス・ビット、および
前記選択されたメモリ・バンクのメモリ位置に対応する
第2組のアドレス・ビットによって構成される前記第1
レジスタ手段(92,94);および前記レジスタ手段
(92,94)に結合されて前記レジスタ手段(92,
94)に格納されているメモリ・アドレスをオフセット
・アドレスに加える第1手段(98)であって、拡張さ
れたアドレスを前記外部通信バス(49)に供給し、前
記拡張アドレスが前記選択されたメモリ・バンクのアド
レスの境界を超えると前記内部通信バス(44)を介し
て、前記メモリ・アドレスの前記第1組のアドレス・ビ
ットを選択的に更新する前記第1手段(98);によっ
て構成されることを特徴とするプロセッサ(30)。 - 【請求項6】 前記オフセット・アドレスには、第1
アドレス・モードで、選択された命令が与えられ、前記
オフセット・アドレスは第2アドレス・モードではオフ
セット・レジスタ(96)によって与えられることを特
徴とする請求項5記載のプロセッサ(30)。 - 【請求項7】 複数のマイクロ命令を格納して選択さ
れた命令を実行するマイクロROM(34)によって更
に構成されることを特徴とする請求項6記載のプロセッ
サ(30)。 - 【請求項8】 次のマイクロアドレスのシーケンスを
前記マイクロROM(34)に供給し、これによってマ
イクロ命令の実行のシーケンスを制御するマイクロシー
ケンサによって更に構成されることを特徴とする請求項
7記載のプロセッサ(30)。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| 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 |
| US548695 | 1990-07-05 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04233640A true JPH04233640A (ja) | 1992-08-21 |
| JP3233163B2 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 (24)
| 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 | 英特尔公司 | 可按比特改动的非易失性存储器的管理 |
| WO2008150510A1 (en) * | 2007-06-01 | 2008-12-11 | General Dynamics Adanced 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 |
| KR102960671B1 (ko) | 2022-08-01 | 2026-05-06 | 고려대학교 산학협력단 | 연산 정확도가 보장된 인메모리 연산 장치 및 동작 방법 |
Family Cites Families (10)
| 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 | マイクロプロセツサシステム |
| EP0148478B1 (en) * | 1983-12-23 | 1989-08-09 | 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 |
-
1990
- 1990-07-05 US US07/548,695 patent/US5249280A/en not_active Expired - Lifetime
-
1991
- 1991-06-28 JP JP18395791A patent/JP3233163B2/ja not_active Expired - Fee Related
- 1991-07-04 EP EP91306078A patent/EP0465248B1/en not_active Expired - Lifetime
- 1991-07-04 DE DE69131919T patent/DE69131919D1/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5249280A (en) | 1993-09-28 |
| JP3233163B2 (ja) | 2001-11-26 |
| EP0465248A3 (en) | 1992-03-04 |
| EP0465248B1 (en) | 2000-01-19 |
| EP0465248A2 (en) | 1992-01-08 |
| DE69131919D1 (de) | 2000-02-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3233163B2 (ja) | メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ | |
| EP0138419B1 (en) | Central processing unit for a digital computer | |
| KR100327778B1 (ko) | 다중명령 세트를 이용한 데이터 프로세싱 방법 | |
| JP2651218B2 (ja) | フレキシブルasicマイクロコンピュータ | |
| TWI403954B (zh) | 具有指令集之電子系統、微控制器及其指令執行方法 | |
| US5455955A (en) | Data processing system with device for arranging instructions | |
| EP0019392A2 (en) | Instruction register sequence decoder for microprogrammed data processor and method | |
| KR20010043826A (ko) | 마이크로 컨트롤러 명령어 집합 | |
| JP3203401B2 (ja) | データ処理装置 | |
| KR19980069856A (ko) | 스케일러블 폭의 벡터 프로세서 아키텍쳐 | |
| JPH0844557A (ja) | データ処理装置 | |
| JPS604491B2 (ja) | デ−タ処理システム | |
| KR100465388B1 (ko) | Risc 구조의 8비트 마이크로 제어기 | |
| JP4988082B2 (ja) | マイクロプロセッサ及びデータ処理システム | |
| US4347566A (en) | Data processor with register file and arithmetic logic circuit on one chip and register means directly connected to the chip | |
| WO2009073532A1 (en) | Enhanced microprocessor or microcontroller | |
| JP2004086837A (ja) | データ処理装置 | |
| US4812971A (en) | Central processing unit for a digital computer | |
| US6012138A (en) | Dynamically variable length CPU pipeline for efficiently executing two instruction sets | |
| JPH07239780A (ja) | 1クロック可変長命令実行処理型命令読み込み電子計 算機 | |
| US4893235A (en) | Central processing unit for a digital computer | |
| JPH027097B2 (ja) | ||
| CN100375012C (zh) | 用于在数据处理系统内产生地址偏移量的装置和方法 | |
| Antognetti et al. | Microarchitecture of VLSI computers | |
| CA1250666A (en) | Central processing unit for a digital computer |
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 |