(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサにおいて、
外部から入力される命令語がノーマルアドレスモード用命令語であるか又は拡張アドレスモード用命令語であるかを識別し、制御信号を発生する制御ユニットと、
前記制御ユニットからの出力に応じて、前記ノーマルアドレスモード用命令語が入力されたと識別された場合及び前記拡張アドレスモード用命令語が入力されたと識別された場合のどちらの場合においても第１命令語アドレスを発生するプログラムカウンタと、
前記制御ユニットからの出力に応じて、前記拡張アドレスモード用命令語が入力されたと識別された場合にのみ第２命令語アドレスを変更して発生するアドレス発生器と、
アドレス転送のための第１及び第２アドレスバスと、
データ転送のためのデータバスと、を備え、
前記第１命令語アドレスは前記第１アドレスバスを通じて外部に伝達され、前記第２命令語アドレスは前記第２アドレスバスを通じて外部に伝達され、
前記ノーマルアドレスモード用命令語が前記制御ユニットに入力されたと識別された場合には、前記第２命令語アドレスは変更されずに前記第２アドレスバスを通じて外部に伝達されるものであり、
前記拡張アドレスモード用命令語は、拡張する先の前記第２命令語アドレスを設定する第１マイクロ命令と、拡張する先の前記第１命令語アドレスを指定して実行する第２マイクロ命令とを有し、
前記制御ユニットは、前記外部から入力される命令語が前記拡張アドレスモード用命令語であると識別したとき、前記第１マイクロ命令が実行された後かつ前記第２マイクロ命令が実行される前に外部インタラプトが入力されないようにマスキング信号を発生することを特徴とするマイクロプロセッサ。
【請求項２】
前記データバスを介して前記第２命令語アドレスを受け入れ外部に伝達するアドレスインタフェース回路を備えることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項３】
前記アドレスインタフェース回路は、
前記データバスを介して入力される前記第２命令語アドレスを貯蔵するためのアドレスレジスタと、
前記アドレスレジスタに貯蔵された前記第２命令語アドレスを留保するラッチ回路と
を備えることを特徴とする請求項２に記載のマイクロプロセッサ。
【請求項４】
データ処理システムにおいて、
マイクロプロセッサを備え、
前記マイクロプロセッサは、
外部から入力される命令語がノーマルアドレスモード用命令語であるか又は拡張アドレスモード用命令語であるかを識別し、制御信号を発生する制御ユニットと、
前記制御ユニットからの出力に応じて、前記ノーマルアドレスモード用命令語が入力されたと識別された場合及び前記拡張アドレスモード用命令語が入力されたと識別された場合のどちらの場合においても第１命令語アドレスを発生するプログラムカウンタと、
前記制御ユニットからの出力に応じて、前記拡張アドレスモード用命令語が入力されたと識別された場合にのみ第２命令語アドレスを変更して発生するアドレス発生器と、
アドレス転送のための第１及び第２アドレスバスと、
データ転送のためのデータバスと、
前記マイクロプロセッサ内の前記データバスを介して前記第２命令語アドレスを受け入れ外部に伝達するアドレスインタフェース回路と、を備え、
前記第１命令語アドレスは前記第１アドレスバスを通じて外部に伝達され、前記第２命令語アドレスは前記第２アドレスバスを通じて外部に伝達され、
前記ノーマルアドレスモード用命令語が前記制御ユニットに入力されたと識別された場合には、前記第２命令語アドレスは変更されずに前記第２アドレスバスを通じて外部に伝達されるものであり、
前記拡張アドレスモード用命令語は、拡張する先の前記第２命令語アドレスを設定する第１マイクロ命令と、拡張する先の前記第１命令語アドレスを指定して実行する第２マイクロ命令とを有し、
前記制御ユニットは、前記外部から入力される命令語が前記拡張アドレスモード用命令語であると識別したとき、前記第１マイクロ命令が実行された後かつ前記第２マイクロ命令が実行される前に外部インタラプトが入力されないようにマスキング信号を発生することを特徴とするデータ処理システム。
【請求項５】
前記アドレスインタフェース回路は、
前記データバスを介して入力される前記第２命令語アドレスを貯蔵するためのアドレスレジスタと、
前記アドレスレジスタに貯蔵された前記第２命令語アドレスを留保するラッチ回路と
を備えることを特徴とする請求項４に記載のデータ処理システム。
【請求項６】
マイクロプロセッサにおいて、
外部から入力される命令語がノーマルアドレスモード用命令語であるか又は拡張アドレスモード用命令語であるかを識別し、制御信号を発生する制御ユニットと、
前記制御ユニットからの出力に応じて、前記制御ユニットに入力される命令語がデータへのアクセスを行うための命令語ではない場合には、前記ノーマルアドレスモード用命令語が入力されたと識別された場合及び前記拡張アドレスモード用命令語が入力されたと識別された場合のどちらの場合においても第１命令語アドレスを発生するプログラムカウンタと、
前記制御ユニットからの出力に応じて、前記制御ユニットに入力される命令語がデータへのアクセスを行うための命令語である場合には、前記ノーマルアドレスモード用命令語が入力されたと識別された場合及び前記拡張アドレスモード用命令語が入力されたと識別された場合のどちらの場合においても第１データアドレスを発生し、前記制御ユニットに入力される命令語がデータへのアクセスを行うための命令語ではない場合で、かつ、前記拡張アドレスモード用命令語が入力されたと識別された場合にのみ第２命令語アドレスを変更して発生し、前記制御ユニットに入力される命令語がデータへのアクセスを行うための命令語である場合で、かつ、前記拡張アドレスモード用命令語が入力されたと識別された場合にのみ第２データアドレスを変更して発生するアドレス発生器と、
前記第１及び第２命令語アドレス転送のための第１及び第２命令語アドレスバスと、
前記第１及び第２データアドレス転送のための第１及び第２データアドレスバスと、
データ転送のためのデータバスと、を備え、
前記第１命令語アドレスは前記第１命令語アドレスバスを通じて外部に伝達され、前記第１データアドレスは前記第１データアドレスバスを通じて外部に伝達され、前記第２命令語アドレスは前記第２命令語アドレスバスを通じて外部に伝達され、前記第２データアドレスは前記第２データアドレスバスを通じて外部に伝達され、
前記ノーマルアドレスモード用命令語が前記制御ユニットに入力されたと識別された場合には、前記第２命令語アドレスは変更されずに前記第２命令語アドレスバスを通じて外部に伝達されるものであり、
前記ノーマルアドレスモード用命令語が前記制御ユニットに入力されたと識別された場合には、前記第２データアドレスは変更されずに前記第２データアドレスバスを通じて外部に伝達されるものであり、
前記拡張アドレスモード用命令語は、拡張する先の前記第２命令語アドレスまたは前記第２データアドレスを設定する第１マイクロ命令と、拡張する先の前記第１命令語アドレスまたは前記第１データアドレスを指定して実行する第２マイクロ命令とを有し、
前記制御ユニットは、前記外部から入力される命令語が前記拡張アドレスモード用命令語であると識別したとき、前記第１マイクロ命令が実行された後かつ前記第２マイクロ命令が実行される前に外部インタラプトが入力されないようにマスキング信号を発生する
ことを特徴とするマイクロプロセッサ。
【請求項７】
前記データバスを介して前記第２命令語アドレス及び前記第２データアドレスを受け入れ外部に伝達するアドレスインタフェース回路を備えることを特徴とする請求項６に記載のマイクロプロセッサ。
【請求項８】
前記アドレスインタフェース回路は、
前記データバスを介して入力される前記第２命令語アドレスを貯蔵するための命令語アドレスレジスタと、
前記命令語アドレスレジスタに貯蔵された前記第２命令語アドレスを留保する第１ラッチ回路と、
前記データバスを介して入力される前記第２データアドレスを貯蔵するためのデータアドレスレジスタと、
前記データアドレスレジスタに貯蔵された前記第２データアドレスを留保する第２ラッチ回路と
を備えることを特徴とする請求項７に記載のマイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマイクロプロセッサ及びデータ処理システムに係り、より具体的には拡張されたメモリ装置をアドレッシングすることができるマイクロプロセッサ及びデータ処理システムに関するものである。
【０００２】
【従来の技術】
現在マイクロプロセッサは製造技術の向上と使用者の要求によって次第に高性能に設計されて、それの応用分野も多様になっている。これによって応用プログラム（アプリケーションプログラム）は質的向上だけでなく大きさも増加している。
【０００３】
しかし、マイクロプロセッサがアクセスすることができるメモリ装置の大きさには制限がある。例えば、１６ビットマイクロプロセッサは最大６４Ｋバイトのメモリをアクセスすることができ、１６ビットマイクロプロセッサで１Ｍバイトのメモリをアクセスするためには１６ビットメモリアドレスを２０ビットメモリアドレスに拡張すべきである。
【０００４】
この分野でよく知られたように、メモリアドレスを拡張するスキムにはセグメンテーションスキム、簡単なバンクスイッチングスキム、そしてメモリマネージメントユニット（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ；ＭＭＵ）を使用する方法がある。ＭＭＵを利用する方法は最も優秀な性能を備えるが、ハードウェアの大きさが増加し、生産費用が増加する短所がある。
【０００５】
図１および図２はメモリアドレス拡張のためのセグメンテーションスキムを示す図である。セグメンテーションスキム１０で、１６ビット論理的セグメントベースアドレスは論理的アドレスバス１８を通じて１６ビットセグメントベースレジスタ１２に伝達される。セグメントベースアドレスは左側に４ビットシフトされ２０ビット論理的セグメントベースアドレスに変換される。１６ビット論理的オフセットアドレスはオフセットレジスタ１４に貯蔵され、１６真数‘０’が挿入され２０ビット論理的オフセットアドレスに変換される。次に、加算器１６によって２０ビット論理的セグメントベースアドレスと２０ビット論理的オフセットアドレスが加わて２０ビット（拡張された）物理的アドレスが発生される。２０ビット物理的アドレスは物理的アドレスバス１７を通じて外部メモリ（図示せず）に伝達される。しかし、セグメンテーションスキム１０は他のアドレス体系を有するマイクロプロセッサには適用することができない短所がある。
【０００６】
図３および図４はメモリ拡張のための簡単なバンクスイッチングスキムを示す図である。簡単なバンクスイッチングスキム２０において、各メモリバンクには固有のバンク番号が割り当てられる。例えば、メインメモリは１６個のメモリバンクに分けられて、１６個のメモリバンクのうちの一つを選択するために４ビットのバンク番号が使用される。１６ビット論理的ベースアドレスは論理的アドレスバスを通じてアドレスレジスタ２２に貯蔵される。オフセットレジスタ２３に貯蔵された１６ビットオフセットアドレスは加算器２６によって１６ビット論理的ベースアドレスと加算されて、その結果は結合ロジックブロック２７に供給される。結合ロジックブロック２７はバンク番号レジスタ２４からの４ビット論理的メモリバンクアドレスと加算器２６からの１６ビット論理的アドレスを結合しその結果を２０ビット（拡張された）物理的アドレスとして物理的アドレスバス２８に伝達する。簡単なバンクスイッチングスキム２０はインタラプトが発生する場合インタラプトサービスのために同一のインタラプトサービスルーチンを全てバンクの同一の位置に貯蔵する方法を使用することや、バンク毎に独立的なプログラムが実行されることを考慮して独立的なスイッチング方法を使用する。かつ、プログラムが実行される途中にメモリバンクがスイッチングされるから各メモリバンクの同一の位置にバンクスイッチングのための連関されたコードを予め動くことができないように制限する。このようなバンクスイッチング方法はインタラプトサービスルーチンを使用するときやバンクスイッチング時に多くの制約が発生する。
【０００７】
【発明が解決しようとする課題】
ハーバードアーキテクチュア（Ｈａｒｖａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）は処理速度向上のためにプログラムメモリとデータメモリが分離された構造を有する。しかし従来はこのようなハーバードアーキテクチュアのプログラムメモリ又はデータメモリを拡張して使用することができる方法がなかった。
【０００８】
従って、本発明は上記の問題点を解決するために提案されたもので、その目的は拡張されたデータメモリをアクセスすることができるボンノイマン構造のマイクロプロセッサを提供することにある。
【０００９】
本発明の他の目的は、拡張されたプログラムメモリ又は拡張されたデータメモリをアクセスすることができるハーバード構造のマイクロプロセッサを提供することにある。
【００１０】
本発明の更に他の目的は、上記のマイクロプロセッサを備えたデータ処理システムを提供することにある。
【００１１】
【課題を解決するための手段】
本発明の特徴によると、マイクロプロセッサは、外部から提供される命令語がノーマルアドレスモード用命令語であるか又は拡張アドレスモード用命令語であるかを識別しそれによるシステム制御動作を実行する制御ユニットと、ノーマルアドレスモード及び拡張アドレスモードの間に制御ユニットによる制御のもと第１アドレスを発生するプログラムカウンタと、アドレス転送のためのアドレスバスと、拡張アドレスモードの間だけ制御ユニットによる制御のもと第２アドレスを発生するアドレス発生器と、データ転送のためのデータバスとを含む。この時、第１アドレスはアドレスバスを通じて外部に伝達され、第２アドレスはデータバスを通じて外部に伝達される。
【００１２】
アドレスインタフェース手段はデータバスから第２アドレスを受け入れて外部に伝達する。
【００１３】
好ましい形態として、アドレスインタフェース手段は、データバスから入力される第２アドレスを貯蔵するためのアドレスレジスタと、このアドレスレジスタに貯蔵された第２アドレスをラッチするラッチ手段とを含む。
【００１４】
好ましい形態として、制御ユニットは外部から提供される命令語が拡張アドレスモード用命令語である時、第１及び第２アドレスが各々アドレスバス及びデータバスを通じて外部に伝達される時までインタラプトをディセーブル（ｄｉｓａｂｌｅ）する。
【００１５】
本発明の他の特徴によると、データ処理システムは、マイクロプロセッサ及びアドレスインタフェース手段を含む。マイクロプロセッサは、外部から提供される命令語がノーマルアドレスモード用命令語であるか又は拡張アドレスモード用命令語であるかを識別しそれによるシステム制御動作を実行する制御ユニットと、ノーマルアドレスモード及び拡張アドレスモードの間に制御ユニットによる制御のもと第１アドレスを発生するプログラムカウンタと、アドレス転送のためのアドレスバスと、拡張アドレスモードの間だけ制御ユニットによる制御のもと第２アドレスを発生するアドレス発生器と、データ転送のためのデータバスとを含む。第１アドレスはアドレスバスを通じて外部に伝達され、第２アドレスはデータバスを通じて外部に伝達される。アドレスインタフェース手段は、マイクロプロセッサ内のデータバスから出力される第２アドレスを受け入れて外部に伝達する。
【００１６】
好ましい形態として、アドレスインタフェース手段は、データバスから入力される第２アドレスを貯蔵するためのアドレスレジスタと、このアドレスレジスタに貯蔵された第２アドレスをラッチするラッチ手段とを含む。
【００１７】
本発明の更に異なる特徴によると、マイクロプロセッサは、外部から提供される命令語がノーマルアドレスモード用命令語であるか又は拡張アドレスモード用命令語であるかを識別しそれによるシステム制御動作を実行する制御ユニットと、ノーマルアドレスモード及び拡張アドレスモードの間に制御ユニットによる制御のもと第１命令語アドレスを発生するプログラムカウンタと、命令語アドレス転送のための命令語アドレスバスと、ノーマルアドレスモード及び拡張アドレスモードの間に制御ユニットによる制御のもと第１データアドレスを発生し、拡張アドレスモードの間だけ制御ユニットによる制御のもと第２命令語アドレス及び第２データアドレスを発生するアドレス発生器と、データアドレス転送のためのデータアドレスバスと、データ転送のためのデータバスとを含み、第１命令語アドレスは命令語アドレスバスを通じて外部に伝達され、第１データアドレスはデータアドレスバスを通じて外部に伝達され、第２命令語アドレス及び第２データアドレスはデータバスを通じて外部に伝達される。ここでこマイクロプロセッサはハーバード構造を有する。
【００１８】
好ましい形態としては、データバスから第２命令語アドレス及びデータアドレスを受け入れて外部に伝達するアドレスインタフェース手段を付加的に含む。
【００１９】
アドレスインタフェース手段は、データバスから入力される第２命令語アドレスを貯蔵するための命令語アドレスレジスタと、このアドレスレジスタに貯蔵された命令語アドレスをラッチするラッチ手段と、データバスから入力される第２データアドレスを貯蔵するためのデータアドレスレジスタと、このデータアドレスレジスタに貯蔵されたデータアドレスをラッチする第２ラッチ手段とを含む。
【００２０】
好ましい形態として、制御ユニットは外部から提供される命令語が拡張アドレスモード用命令語である時、第１命令語アドレス、第１データアドレスそして第２命令語アドレスおよび第２データアドレスが各々アドレスバス及びデータバスを通じて外部に伝達される時まで外部から入力されるインタラプトをディセーブルする。
【００２１】
【発明の実施の形態】
以下本発明の実施の形態を添付された図５ないし図１８を参照して詳細に説明する。以下の説明で図面中に付した同一または類似の参照番号及び符号は、同一または類似の構成要素を示す。
【００２２】
マイクロプロセッサのメモリアドレス拡張において、重要なことは、既存のマイクロプロセッサとの互換性を維持することである。例えば、１６ビット（２バイト）のビット幅を有するアドレスを指定する命令語だけを使用するマイクロプロセッサの場合、アドレス拡張のために命令語を２４ビット（３バイト）命令語に修正すると既存のコードとの互換性を維持することができなくなる。既存のマイクロプロセッサとの互換性を維持しながらアドレスを拡張することができる方法には大きく二通りがある。即ち、拡張アドレスモード用命令語を新設する方法と、既存命令語の組み合わせにアドレス拡張を誘導する方法である。
【００２３】
まず、拡張アドレスモード用命令語を新設する方法は既存の命令語を変更しなくても互換性を維持することができるが、メモリアドレッシングに関連した全ての命令語を新設することや使用頻度が高い命令語と関連した命令語セットを定義すべきである。この方法は殆ど全ての命令語がメモリ参照を実行するＣＩＳＣ（Ｃｏｍｐｌｅｘ  Ｉｎｓｔｒｕｃｔｉｏｎｓ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）タイプのマイクロプロセッサにおいてハードウェア的な負担を招来する。使用頻度が高い命令語だけを新設する方法はハードウェア的な負担を減少させることができるが、拡張されたアドレスモードを実行することができる命令語の数が制限される短所がある。
【００２４】
次に、既存命令の組み合わせで拡張されたメモリをアクセスする方法は“ＬＯＡＤ”命令にバンクレジスタを設定し、バンクレジスタに貯蔵されたアドレスをメモリ最上位アドレスに指定するようにした後、後続命令語は選択されたバンク内だけ実行されるようにするものである。この方法はハードウェア的負担は殆どないが、サブルーチン呼出／リターン（ＣＡＬＬ／ＲＥＴ）命令語実行時バンクレジスタのアドレスを貯蔵／復旧（ＳＡＶＥ／ＲＥＳＴＯＲＥ）するための命令語配列が複雑になり、インタラプト発生時バンクレジスタのアドレスを貯蔵することができないという短所がある。その上に、ハーバードアーキテクチュアのようにプログラムメモリとデータメモリが分離された場合データメモリに対したアクセス方法が提示されていない。
【００２５】
従って、本発明では既存の命令語をノーマルアドレスモード用命令語にし、拡張アドレス領域を使用するために拡張アドレスモード用命令語を新設する。マイクロプロセッサ内のプログラム可能なコントロールユニットは外部から入力される命令語がノーマルアドレスモード用命令語であるか又は拡張アドレスモード用命令語であるかを識別しそれによるシステム制御動作を実行する。
【００２６】
図５は外部メモリ装置の構造を示す図である。図５に図示されたように、外部メモリ装置２００はビット幅が８ビットであり、下位４ビットアドレスが‘０００ｈ’〜‘ｆｆｆｆｈ’である１６個のバンク（メモリ領域）に分離されている。従って、各バンクは６４Ｋバイトの大きさを持って、メモリ装置２００全体の容量は１Ｍバイトである。
【００２７】
図６は図５に図示されたメモリ装置のアドレスを示すプログラムカウンタの構成を示す図である。図６を参照すると、１６ビットマイクロプロセッサは１６ビットのプログラムカウンタを具備し、プログラムカウンタは外部メモリ装置２００の下位１６ビットアドレスを示す。拡張プログラムカウンタ（ｅｘｔｒａ  ｐｒｏｇｒａｍ  ｃｏｕｎｔｅｒ；ＰＣＸ）は外部メモリ装置２００の上位４ビットアドレスを示す。
【００２８】
図７は本発明の実施形態によるボンノイマン（ｖｏｎ  Ｎｅｕｍａｎｎ）構造のマイクロプロセッサの構成を示すブロック図である。
【００２９】
図７を参照すると、マイクロプロセッサ１００は１６ビットのアドレスバスと８ビットのデータバスを持って、外部メモリ装置２００に接続される。外部メモリ装置２００は８ビットのビット幅を持って、全体の大きさは１Ｍバイトである。マイクロプロセッサ１００は１６ビットのアドレスバスを通じて外部メモリ装置２００の２０ビットアドレス中の下位１６ビットを指定し、拡張された４ビットアドレスは外部メモリ装置２００の上位４ビットを指定する。
【００３０】
マイクロプロセッサ１００はプログラマブルコントロールユニット１０２、命令語デコーダ１０４、命令語レジスタ１０６、バスタイミングコントローラ１０８、レジスタファイル１１０、インタラプトコントローラ１１２、ＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）１１４、プログラムカウンタ（ｐｒｏｇｒａｍ  ｃｏｕｎｔｅｒ；ＰＣ）１１６、拡張アドレスインタフェース１２０、８ビットデータバスＤＢ［７：０］、１６ビットアドレスバスＡ［１５：０］、コントロールバスＣＯＮＴＲＯＬ  ＢＵＳ、そしてレジスタアドレスバスＲＡ［７：０］を含む。
【００３１】
命令語レジスタ１０６はフェッチ段階でデータバスＤＢ［７：０］を通じてメモり装置２００から入力される命令語を貯蔵する。命令語デコーダ１０４は実行段階で命令語レジスタ１０６に貯蔵された命令語を受け入れデコーディングした後命令語に対応するアドレスを出力する。プログラマブルコントロールユニット１０２はマイクロコードロム（ｍｉｃｒｏ―ｃｏｄｅ  ＲＯＭ）等で構成され命令語デコーダ１０４から入力されるアドレスに対応する制御信号を出力する。プログラマブルコントロールユニット１０２から出力される制御信号はバスタイミングコントローラ１０８、レジスタファイル１１０、インタラプトコントローラ１１２、ＡＬＵ１１４、及びプログラムカウンタ１１６を制御するための信号である。レジスタファイル１１０はデータ又はアドレスを臨時的に貯蔵するために使用されるレジスタの集団で、この実施形態でレジスタファイルはスタックに動作する。インタラプトコントローラ１１２は外部から入力されるインタラプト信号に応答してマイクロプロセッサ１００の全般的なインタラプト制御を実行する。ＡＬＵ１１４はプログラマブルコントロールユニット１０２からの制御信号と命令語デコーダ１０４からの入力データ又はアドレスを受け入れ算術論理演算を実行する。プログラムカウンタ１１６はメモリ装置の下位１６ビットアドレスを示すが、この実施形態でプログラムカウンタは各々が６４Ｋバイトの大きさを有するメモリバンクのアドレスを示す。
【００３２】
拡張アドレスインタフェース１２０は図８に図示されたように、拡張プログラムカウンタ（以下ＰＣＸと言う）１２２、拡張データアドレスカウンタ（ｅｘｔｒａ  ｄａｔａ  ａｄｄｒｅｓｓ  ｃｏｕｎｔｅｒ、以下ＤＣＸと言う）１２４、マルチプレックス１２６、そしてラッチ回路１２８を含む。
【００３３】
ボンノイマン構造はプログラムメモリとデータメモリが分離されていないので、必要によってＰＣＸ１２２とＤＣＸ１２４をアドレスバスに載せる方式でメモリ装置のプログラム領域又はデータ領域をアクセスすることができる。即ち、メモリ装置から命令語をフェッチする場合にはＰＣＸ１２２をアドレスバスの上位ビットに出力させ、メモリからデータをフェッチする場合にはアクセスタイミングに合わせてアドレスバスの上位ビットにＤＣＸ１２４を出力することでデータをアクセスすることができる。プログラム可能なコントロールユニット１０２でこのようなタイミング信号を作ることは通常の技術で容易に具現することができる。マルチプレックス１２６の選択信号ＡＤＤＲ／はプログラマブルコントロールユニット１０２から入力される。
【００３４】
本発明で特に留意する点は、ノーマルアドレスモード命令語が入力されるとメモリ装置２００のアドレスがプログラムカウンタ１１６からアドレスバスＡ［１５：０］を通じてメモリ装置２００に提供され、拡張アドレスモード命令語が入力されるとメモリ装置２００の下位１６ビットアドレスがプログラムカウンタ１１６からアドレスバスＡ［１５：０］を通じてメモリ装置２００に提供され、メモリ装置２００の上位４ビットアドレスはデータバスＤＢ［７：０］を通じて拡張アドレスインタフェース１２０でラッチされた後メモリ装置２００に提供される点である。この時、メモリ装置２００の上位４ビットアドレスがまず設定されラッチされた後下位１６ビットアドレスが出力される時２０ビットアドレスが同時にメモリ装置２００に提供される。
【００３５】
上述したようなマイクロプロセッサの拡張アドレスモード命令語は次のような特徴を有する。例えば、プログラムの制御順序が変更されるジャンプ（ＪＵＭＰ）又はサーブルーチン呼出（ＣＡＬＬ）と同じような命令によって拡張プログラムカウンタのアドレスが変更される場合、拡張アドレスモード命令語のマイクロオペレーションが変更される。
【００３６】
図９ないし図１１は外部メモリ装置のバンク１から命令語が順次に入力されているときにアドレス‘０００１ｈ’の‘ＬＣＡＬＬ  ４ｈ、ＴＡＲＧＥＴ’と言う拡張アドレスモード命令語が入力されることを例示している。‘ＬＣＡＬＬ４ｈ、ＴＡＲＧＥＴ’命令語はバンク４のサブルーチン‘ＴＡＲＧＥＴ’に分岐しろと言う命令語である。命令語が入力されると次のようなマイクロプログラムが実行される。
ＬＤ  ＰＣＸ、４ｈ
ＣＡＬＬ  ＴＡＲＧＥＴ
【００３７】
マイクロプログラムによってＰＣＸ１２２にはバンク４が設定され、プログラムカウンタはレイブル‘ＴＡＲＧＥＴ’の番地である‘１５２１ｈ’が入力される。この時、現在のＰＣＸ１２２とプログラムカウンタ１１６のアドレスに１を加えた‘０００２ｈ’はデータバスを通じてマイクロプロセッサ１００のレジスタファイル１１０に貯蔵される。バンク４の‘１５２１ｈ’から次拡張アドレスモード命令語が入力される時までＰＣＸ１２２の値は変更されなくプログラムカウンタ１１６の値だけ増加されプログラムが実行される。バンク４から命令語が入力されているときにリターン命令‘ＲＥＴ’が入力されるとレジスタファイル１１０に貯蔵されたリターンアドレス即ち、バンク１の‘０００２ｈ’アドレスがＰＣＸ１２２とプログラムカウンタ１１６にポップされる。従って、プログラムカウンタはサブルーチン呼出が実行されたバンク１の‘０００１ｈ’の次アドレスである‘０００２ｈ’を示す。
【００３８】
従来はサブルーチン分岐時拡張されたＰＣＸ１２２のアドレスを貯蔵する方法がなかったが、本発明ではサブルーチン分岐又はインタラプト発生時拡張されたＰＣＸ１２２のアドレスをレジスタファイル１１０にプッシュした後サブルーチンリターン又はインタラプト実行終了時にレジスタファイル１１０に貯蔵されたアドレスをポップして元来のアドレスに復帰させることができるようにした。このような方法はＲＥＴ（Ｒｅｔｕｒｎ）／ＩＲＥＴ（Ｉｎｔｅｒｒｕｐｔ  Ｒｅｔｕｒｎ）／ＦＩＮＴ（Ｆａｓｔ  Ｉｎｔｅｒｒｕｐｔ）等にも同様に適用される。従って、メモリのいずれの領域でも他の領域のプログラム又はデータをアクセスすることができる。
【００３９】
次に、図１２を参照して拡張されたメモリ領域にあるデータをアクセスする拡張アドレスモード命令語の一例が説明される。‘ＬＡＤＤ  ４ｈ、［ＲＲＯ］、ＲＯ’はバンク４のアドレス‘ＲＲＯ’のデータにＲＯを加えろと言う命令語である。この命令語のマイクロプログラムは次のようである。
ＬＤ  ＤＣＸ、４ｈ
ＡＤＤ  ［ＲＲＯ］、ＲＯ
【００４０】
拡張されたメモリ領域のデータをアクセスする前に‘ＬＤ  ＤＣＸ、４ｈ’命令を実行してＤＣＸ１２４をバンク４に設定した後、‘ＡＤＤ’命令語によってアドレスＲＲＯがアドレスバスを通じて出力される時ＤＣＸ１２４に貯蔵された値を同時に出力する。従って、ＤＣＸ１２４とアドレスＲＲＯによって拡張されたメモリ領域をアクセスすることができる。
【００４１】
表１は三星電子のマイクロプロセッサ‘ＳＡＭ８７ＲＣ’でノーマルアドレスモード命令語によるマイクロプログラムの実行サイクルとノーマルアドレスモード命令語を拡張アドレスモード命令語に変更した時のマイクロプログラムの実行サイクルを比較して示している。
【表１】
0004988082.tif 000002
【００４２】
表１で分かるように、ノーマルアドレスモード命令語を拡張アドレスモード命令語に変更した時ＰＣＸ１２２をレジスタファイルにプッシュ／ポップする動作によって実行サイクルが２サイクル程度増加する。これはデータバスが８ビットであるからである。
【００４３】
次に、表２は三星電子のマイクロプロセッサ‘ＳＡＭ８７ＲＣ’で使用される命令語の使用頻度に関した統計資料のうち上位８０％を占める１９個のノーマルアドレスモード命令語の使用頻度とノーマルアドレスモード命令語を拡張アドレスモード命令語に変更した時の実行サイクル、そしてノーマルアドレスモード命令語を拡張アドレスモード命令語に変更した時の遅延率を示している。
【表２】
0004988082.tif 000003
【００４４】
表２を参照すると、拡張アドレスモード命令語を使用する時約１７％程度実行サイクルが増加することが分かる。これは使用頻度が高い‘ＪＭＰ’、‘ＣＡＬＬ’命令語前に‘ＬＯＡＤ’命令語を実行すべきだからである。しかし、ＦＡＳＴインタラプトは動作中にプログラムカウンタの値をスタックに貯蔵しないのでノーマルアドレスモード命令語と同様に速い速度でインタラプト処理を実行することができる。
【００４５】
ここで、一つ留意すべきことは、相対アドレスモード又はインデックスアドレスモード命令語でオフセットアドレスを使用することである。命令語を上記の方法と同一に適用するとベースアドレスからオフセットアドレスを加えることや減算する演算を実行することになる。この時、メモリバンクの境界（ｂｏｕｎｄａｒｙ）アドレスを越える場合が発生するにも係わらずバンクアドレスは変更されず正しいバンクスイッチングが行われない問題点がある。この問題点を解決するために従来は専用加算器を利用する方法とマイクロプロセッサ内部のＡＬＵを利用して演算する方法を使用した。専用加算器を利用する方法はベースアドレスとオフセットアドレスを加えることや引く時発生するキャリ（ｃａｒｒｙ）やブロウ（ｂｏｒｒｏｗ）信号利用してバンクアドレスを変更する方法である。内部ＡＬＵを利用する方法はコンディションコードのキャリビット／ブロウビットを利用してバンクアドレスを自動的に変更する方法である。しかし、二つ方法はバンクアドレスを増加又は減少させるための加算器を必要としこれを制御するための信号を作らなければならない負担がある。
【００４６】
従って、本発明ではアセンブラ又はコンパイラがオフセットアドレスを使用するアドレスモード命令語を識別し、ベースアドレスにオフセットアドレスを加えることや引く時バンク境界を越えるかを判断するようにアセンブラ又はコンパイラを変更する方法を使用する。
【００４７】
この方法によると、オフセットアドレスを使用するアドレスモード命令語によってプログラムカウンタのアドレスがバンク境界を越えるかを容易に識別することができ、別度のアダーを具備しなくてもＰＣＸ１２２のアドレスを自動的に又は手動で容易に変更することができる。この時、アセンブラ又はコンパイラには相対アドレスモード命令語又はインデックスアドレスモード命令語であるかの可否を判断した後バンク境界を越えると警告メッセージを出力した後該当命令語前に自動でバンクスイッチングのための‘ＬＤ’命令を挿入する。又は使用者が警告メッセージを見て手動で‘ＬＤ’命令を挿入する。現在大部分のマイクロプロセッサがアセンブラ言語でプログラミングされたコードによって動作するので、使用者がコンパイラの助けを受けなくても容易にバンクアドレスを変更することもできる。
【００４８】
プログラムが実行される途中に外部からインタラプトが発生すると、現在のプログラムカウンタとＰＣＸ１２２のアドレスをレジスタファイル１１０に貯蔵しインタラプト処理ルーチンに分岐する。しかし、拡張アドレスモード命令語が入力されＰＣＸ１２２又はＤＣＸ１２４を設定し次命令を処理する前にインタラプトが発生する場合には問題が発生する。例えば、‘ＬＣＡＬＬ  ４ｈ、ＴＡＲＧＥＴ’命令語が入力されマイクロプログラム‘ＬＯＡＤ  ＰＣＸ、４ｈ’が実行された後マイクロプログラム‘ＣＡＬＬ  ＴＡＲＧＥＴ’が実行される前にインタラプトが発生しＰＣＸ１２２のアドレスがバンク５を示すように変更される場合、インタラプトサービスルーチンを終了しリターンする時は‘ＣＡＬＬ  ＴＡＲＧＥＴ’にリターンすることになる。この時、‘ＴＡＲＧＥＴ’はバンク４のアドレスであるがこの場合にはバンク５の‘ＴＡＲＧＥＴ’を指定することになる。即ち、ＰＣＸ１２２又はＤＣＸ１２４を設定し次命令を処理する前にインタラプトが発生するとＰＣＸ１２２又はＤＣＸ１２４に貯蔵されたアドレスが変更されることになる。
【００４９】
従って、拡張アドレスモード命令語が入力されるとプログラマブルコントロールユニットインタラプトマスキング信号（ＩＮＴ＿ＭＡＳＫ）を発生してＰＣＸ１２２又はＤＣＸ１２４を設定し次命令語が実行される時まで外部インタラプトが入力されないようにする。
【００５０】
図１３は拡張アドレスモード命令語が実行される時外部から入力されるインタラプト要求信号をマスキングするためのプログラマブルコントロールユニット及びインタラプトコントロール構成を示す図であり、図１４は拡張アドレスモード命令語が実行される時のタイミング図である。
【００５１】
図１３を参照すると、プログラマブルコントロールユニット１０２は命令語デコーダ１０４（図７参照）から入力された命令語が拡張アドレスモード命令語であるかの可否を判断し、拡張アドレスモード命令語である時それに対応するマイクロプログラムを実行する。プログラマブルコントロールユニット１０２は例えば、‘ＬＣＡＬＬ４ｈ、ＴＡＲＧＥＴ’と言う拡張アドレスモード命令語が入力されると‘ＬＯＡＤ  ＰＣＸ、４ｈ’が実行される時点から‘ＣＡＬＬ  ＴＡＲＧＥＴ’が実行される時までハイレベル（論理‘１’）のインタラプトマスキング信号ＩＮＴ＿ＭＡＳＫ）を発生してインタラプトコントローラ１１２に提供する。インタラプトコントローラ１１２はアンドゲートＡＮＤ＿Ｇを含む。アンドゲートＡＮＤ＿Ｇの一入力端子には反転されたインタラプトマスキング信号ＩＮＴ＿ＭＡＳＫが入力され、他入力端子には外部インタラプト要求信号ＩＲＱ＿ＩＮが入力される。従って、インタラプトマスキング信号ＩＮＴ＿ＭＡＳＫがハイレベルであると、インタラプト要求信号ＩＲＱ＿ＩＮがイネーブルされるとしてもマイクロプロセッサ１００の各ブロックに提供されるインタラプト要求信号ＩＲＱはディセーブルされる。
【００５２】
次に考慮する事項はバンク境界間の連続性を具現することである。本発明ではベースアドレスにアドレスオフセットを加えるときや引く時バンクスイッチングのための専用加算器を別度に具備しないからバンク境界では次のような方法で命令語を挿入する。第1の方法はバンクの最終アドレスからＰＣＸ１２２を１ほど増加させジャンプ命令語を使用して次バンクの一番目アドレスに移動させる方法である。第2の方法はスイッチング命令語ＬＤ  ＰＣＸ、ｘｈを使用してＰＣＸ１２２を変更した後バンクの最終アドレスまでノーオペレーション（ＮＯＰ）命令を挿入する方法である。これはプログラム進行にどんな影響も及ぼさないのでプログラム使用者の便宜によって選択的に使用することができる。
【００５３】
図１５は本発明の他の実施形態によるデータ処理システムの構成を示す図である。図１５に図示されたマイクロプロセッサ３００はボンノイマン（ｖｏｎ  Ｎｅｕｍａｎｎ）構造であり図７に図示されたマイクロプロセッサ１００との差異点は拡張アドレスインタフェース４００がマイクロプロセッサ３００の外部に構成されていることである。拡張アドレスインタフェース４００はマイクロプロセッサ３００と外部メモリ装置２００間の拡張アドレスインタフェースとして作用し、マイクロプロセッサ３００のデータバスＤＢ［７：０］、コントロールバスＣＯＮＴＲＯＬ  ＢＵＳ、そしてレジスタアドレスバスＲＡ［７：０］と接続される。マイクロプロセッサ３００及び拡張アドレスインタフェース４００を具備したデータ処理システムの動作は図７に図示されたマイクロプロセッサと同一なので詳細な説明は省略する。
【００５４】
図１６は本発明の実施形態によるハーバード（Ｈａｒｖａｒｄ）構造のマイクロプロセッサの構成を示すブロック図である。
【００５５】
図１６を参照すると、ハーバード構造のマイクロプロセッサ５００は外部メモリ装置がプログラムメモリ装置６００とデータメモリ装置６５０に分離されている。マイクロプロセッサ５００は図７に図示されたマイクロプロセッサ１００と同一の構成を有するがアドレスバスが１６ビットの命令語アドレスバスＩＡ［１５：０］と１６ビットのデータアドレスバスＤＡ［１５：０］で構成される。データアドレスバスはＡＬＵ１１４で発生される。
【００５６】
図１７は図１６に図示された拡張アドレスインタフェース１２０の構成を詳細に示すブロック図である。図１７を参照すると、拡張アドレスインタフェース１２０は拡張プログラムカウンタ５２２、拡張データアドレスカウンタ５３６、そしてラッチ回路５２４，５２８を含む。
【００５７】
ハーバード構造ではプログラムメモリとデータメモリが各々分離されて構成されており、それによって命令語アドレスバスとデータアドレスバスが分離されている。従って、ハーバード構造ではＰＣＸ５２２のアドレスをラッチ回路５２４でラッチした後命令語アドレスバスＩＡ［１９：１６］を通じてプログラムメモリ装置６００に伝達し、ＤＣＸ５３６のアドレスをラッチ回路５２８でラッチした後データアドレスバスＤＡ［１９：１６］を通じてデータメモリ装置６５０に伝達する。
【００５８】
図１８はＰＣＸ／ＤＣＸを利用したバンクスイッチング方法をより拡張させインタラプトサービスルーチン位置、スタックポインタ、ファストインタラプトサービスルーチンを貯蔵するレジスタを別度に構成した拡張アドレスインタフェース８００を示すブロック図である。
【００５９】
図１８に図示されたように、拡張アドレスインタフェース８００は、ＩＰＣＸ８０２、ＩＰＸ８０４、ＳＰＸ８０８に予め設定されたバンクでインタラプト、ファストインタラプト、スタックプッシュ／ポップ動作を実行することができるので、インタラプトサービスルーチンとスタックをメモリの特徴領域に限定しなくてもよい。
【００６０】
実施形態を利用して本発明を説明したが、本発明の範囲は開示された実施形態に限定されないことがよく理解される。むしろ、本発明の範囲には多様な変形例及びその類似な構成が全て含まれる。従って、請求範囲はそのような変形例及びその類似な構成全てを含むように可能な限り広く解析されるべきである。
【００６１】
【発明の効果】
以上のように本発明によると、ハードウェア変更及び新設を最小化しながらも拡張されたメモリ装置をアクセスすることができるマイクロプロセッサが具現される。特に、ベースアドレスにオフセットアドレスを加えることや減算する時、別途の加算器を具備しなくてもよいので生産費用を減少できる。
【図面の簡単な説明】
【図１】メモリアドレス拡張のためのセグメンテーションスキムを示す図。
【図２】メモリアドレス拡張のためのセグメンテーションスキムを示す図。
【図３】メモリ拡張のための簡単なバンクスイッチングスキムを示す図。
【図４】メモリ拡張のための簡単なバンクスイッチングスキムを示す図。
【図５】外部メモリ装置の構造を示す図。
【図６】図５に図示されたメモリ装置のアドレスを示すプログラムカウンタの構成を示す図。
【図７】本発明の実施形態によるボンノイマン構造のマイクロプロセッサの構成を示すブロック図。
【図８】図７に図示された拡張アドレスインタフェースの構成を示すブロック図。
【図９】メモリ装置に貯蔵された拡張アドレスモード命令語の例を示す図。
【図１０】メモリ装置に貯蔵された拡張アドレスモード命令語の例を示す図。
【図１１】メモリ装置に貯蔵された拡張アドレスモード命令語の例を示す図。
【図１２】メモリ装置に貯蔵された拡張アドレスモード命令語の例を示す図。
【図１３】拡張アドレスモード命令語が実行される時外部から入力されるインタラプト要求信号をマスキングするためのプログラマブルコントロールユニット及びインタラプトコントロールの構成を示す図。
【図１４】拡張アドレスモード命令語が実行される時のタイミング図。
【図１５】本発明の他の実施形態によるデータ処理システムの構成を示す図。
【図１６】本発明の実施形態によるハーバード構造のマイクロプロセッサの構成を示すブロック図。
【図１７】図１６に図示された拡張アドレスインタフェースの構成を詳細に示すブロック図。
【図１８】ＰＣＸ／ＤＣＸを利用したバンクスイッチング方法をより拡張させインタラプトサービスルーチン位置、スタックポインタ、ファストインタラプトサービスルーチンを貯蔵するレジスタを別度に構成した拡張アドレスインタフェースを示すブロック図。
【符号の説明】
１００  マイクロプロセッサ
１０２  プログラマブルコントロールユニット
１０４  命令語デコーダ
１０６  命令語レジスタ
１０８  バスタイミングコントローラ
１１０  レジスタファイル
１１２  インタラプトコントローラ
１１４  ＡＬＵ
１１６  プログラムカウンタ
１２０  拡張アドレスインタフェース
１２２  拡張プログラムカウンタ
１２４  拡張データアドレスカウンタ
１２６  マルチプレックス
１２８  ラッチ回路
２００  メモリ装置
【図１】
0004988082.tif 000004
【図２】
0004988082.tif 000005
【図３】
0004988082.tif 000006
【図４】
0004988082.tif 000007
【図５】
0004988082.tif 000008
【図６】
0004988082.tif 000009
【図７】
0004988082.tif 000010
【図８】
0004988082.tif 000011
【図９】
0004988082.tif 000012
【図１０】
0004988082.tif 000013
【図１１】
0004988082.tif 000014
【図１２】
0004988082.tif 000015
【図１３】
0004988082.tif 000016
【図１４】
0004988082.tif 000017
【図１５】
0004988082.tif 000018
【図１６】
0004988082.tif 000019
【図１７】
0004988082.tif 000020
【図１８】
0004988082.tif 000021