(57)【要約】      （修正有）【課題】細切れの小さいサイズの連続したアドレス空間しかない場合でも多くのペリフェラルを使用することを可能にする。【解決手段】周辺装置の処理を行う処理部１３０と、複数のブロックに分割されたメモリ１４０と、前記メモリへのアクセス信号に基づきアクセス対象となるメモリのブロックを特定して前記メモリに対するアクセス処理を行うメモリアクセス処理部とを含み、前記メモリアクセス処理部は、アクセス対象となるメモリのブロックアドレスを保持するブロックアドレス格納レジスタと１７０、１７２、アクセス対象となるブロックアドレスを特定してブロックアドレス格納レジスタに設定するブロックアドレス制御部１２０、１５０、１６０と、ブロックアドレス格納レジスタの値に基づきアクセス対象となるメモリのブロックを特定して前記メモリに対するアクセス処理を行うように制御するアクセス制御部１２０、１５０、１６０とを含む。【選択図】      図２
2007066233.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と接続されて所与の情報処理を行う周辺装置を含む情報処理装置であって、
前記周辺装置は、
周辺装置の処理を行う処理部と、
複数のブロックに分割されたメモリと、
前記メモリへのアクセス信号に基づきアクセス対象となるメモリのブロックを特定して前記メモリに対するアクセス処理を行うメモリアクセス処理部とを含み、
前記メモリアクセス処理部は、
アクセス対象となるメモリのブロックアドレスを保持するブロックアドレス格納レジスタと、
アクセス対象となるブロックアドレスを特定してブロックアドレス格納レジスタに設定するブロックアドレス制御部と、
ブロックアドレス格納レジスタの値に基づきアクセス対象となるメモリのブロックを特定して前記メモリに対するアクセス処理を行うように制御するアクセス制御部と、
を含むことを特徴とする情報処理装置。
【請求項２】
請求項１において、
前記ブロックアドレス格納レジスタは、
メモリに記憶された命令を読みだす際に使用する命令フェッチ用ブロックアドレス格納レジスタを含み、
前記ブロックアドレス制御部は、
メモリから読み出された命令の解読結果に基づきアクセス対象となるブロックアドレスを特定して命令フェッチ用ブロックアドレス格納レジスタに設定し、
前記アクセス制御部は、
メモリに記憶された命令を読みだす際に、命令フェッチ用ブロックアドレス格納レジスタの値に基づきアクセス対象となるメモリのブロックを特定して前記メモリから命令を読み出すように制御することを特徴とする情報処理装置。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記ブロックアドレス格納レジスタは、
メモリに記憶されたデータを読み出す際に使用するデータ用ブロックアドレス格納レジスタを含み、
前記ブロックアドレス制御部は、
アクセス対象となるブロックアドレスを特定してデータ用ブロックアドレス格納レジスタに設定し、
前記アクセス制御部は、
メモリに記憶されたデータを読みだす際に、データ用ブロックアドレス格納レジスタの値に基づきアクセス対象となるメモリのブロックを特定して前記メモリからデータを読み出すように制御することを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
アクセス対象となるブロックアドレスに関する情報をオペランドに含む所定の命令コードを解読する命令解読部を含み、
前記ブロックアドレス制御部は、
前記命令解読部による解読結果に基づきアクセス対象となるブロックアドレスを特定して命令フェッチ用ブロックアドレス格納レジスタに設定することを特徴とする情報処理装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記周辺装置の処理をおこなう制御プログラムは、前記メモリに格納されていることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置において、小さいサイズの連続したアドレス空間ならば複数存在するが、ペリフェラル（周辺装置）に連続した大きなサイズのアドレス空間を提供できない場合がある。
【０００３】
アドレス空間を拡張するための技術としては、例えば特開平５−１２７９８４号にはＣＰＵ自体に空間拡張のためのセレクト信号を生成する回路を入れておき、このセレクト信号に対応したアドレス空間を持つ技術が開示されている。
【０００４】
また例えば特開平７−２００３２９号には、ローカルアドレスの変換の際に、ホストからアドレスに対してローカルアドレスに対応させるための比較するアドレスや空間のサイズを保持するレジスタ・比較器等の制御回路を設ける技術が開示されている。
【特許文献１】特開平５−１２７９８４号
【特許文献２】特開平７−２００３２９号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし特開平５−１２７９８４号では既存のＣＰＵをそのまま使うことができないし、特開平７−２００３２９号ではアドレス自体を対応させるため、トータルでのアドレス空間は広がらないという問題点があった。
【０００６】
本発明は以上のような問題点に鑑みてなされたものであり、その目的とするところは、細切れの小さいサイズの連続したアドレス空間しかない場合でも多くのペリフェラルを使用することを可能にする情報処理装置の提供を目的とする。
【課題を解決するための手段】
【０００７】
（１）本発明は、
ホスト装置と接続されて所与の情報処理を行う周辺装置を含む情報処理装置であって、
前記周辺装置は、
周辺装置の処理を行う処理部と、
複数のブロックに分割されたメモリと、
前記メモリへのアクセス信号に基づきアクセス対象となるメモリのブロックを特定して前記メモリに対するアクセス処理を行うメモリアクセス処理部とを含み、
前記メモリアクセス処理部は、
アクセス対象となるメモリのブロックアドレスを保持するブロックアドレス格納レジスタと、
アクセス対象となるブロックアドレスを特定してブロックアドレス格納レジスタに設定するブロックアドレス制御部と、
ブロックアドレス格納レジスタの値に基づきアクセス対象となるメモリのブロックを特定して前記メモリに対するアクセス処理を行うように制御するアクセス制御部と、
を含むことを特徴とする。
【０００８】
本発明によえば、細切れの小さいサイズの連続したアドレス空間しかない場合でも多くのペリフェラルを使用することを可能にする情報処理装置を提供することができる。
【０００９】
（２）本発明の情報処理装置は、
前記ブロックアドレス格納レジスタは、
メモリに記憶された命令を読みだす際に使用する命令フェッチ用ブロックアドレス格納レジスタを含み、
前記ブロックアドレス制御部は、
メモリから読み出された命令の解読結果に基づきアクセス対象となるブロックアドレスを特定して命令フェッチ用ブロックアドレス格納レジスタに設定し、
前記アクセス制御部は、
メモリに記憶された命令を読みだす際に、命令フェッチ用ブロックアドレス格納レジスタの値に基づきアクセス対象となるメモリのブロックを特定して前記メモリから命令を読み出すように制御することを特徴とする。
【００１０】
（３）本発明の情報処理装置は、
前記ブロックアドレス格納レジスタは、
メモリに記憶されたデータを読み出す際に使用するデータ用ブロックアドレス格納レジスタを含み、
前記ブロックアドレス制御部は、
アクセス対象となるブロックアドレスを特定してデータ用ブロックアドレス格納レジスタに設定し、
前記アクセス制御部は、
メモリに記憶されたデータを読みだす際に、データ用ブロックアドレス格納レジスタの値に基づきアクセス対象となるメモリのブロックを特定して前記メモリからデータを読み出すように制御することを特徴とする。
【００１１】
（４）本発明の情報処理装置は、
アクセス対象となるブロックアドレスに関する情報をオペランドに含む所定の命令コードを解読する命令解読部を含み、
前記ブロックアドレス制御部は、
前記命令解読部による解読結果に基づきアクセス対象となるブロックアドレスを特定して命令フェッチ用ブロックアドレス格納レジスタに設定することを特徴とする。
【００１２】
（５）本発明の情報処理装置は、
前記周辺装置の処理をおこなう制御プログラムは、前記メモリに格納されていることを特徴とする。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００１４】
図１は、本実施の形態の情報処理装置について説明するための図である。
【００１５】
本実施の形態の情報処理システム１は、バス５０を介して接続された情報処理装置２０と１または複数の周辺装置１００を含む。
【００１６】
本実施の形態の情報処理装置は、狭義にはＣＰＵ（ホスト装置）４０と接続されて所与の情報処理を行う周辺装置１００である（１０参照）。
【００１７】
また本実施の形態の情報処理装置は、広義にはＣＰＵ（ホスト装置）４０とＣＰＵ（ホスト装置）４０に接続されて所与の情報処理を行う周辺装置１００を含む（２０参照）。
【００１８】
図２は本実施の形態の情報処理装置の一例である周辺装置の機能ブロック図の一例である。
【００１９】
周辺装置１００は、システムバス５０を介してＣＰＵ（ホスト装置）と接続されている。
【００２０】
周辺装置１００は、ホストインターフェース１１０、制御部１２０、処理部１３０、メモリ１４０、命令解読部１５０、バンク制御回路１６０、ブロックアドレス格納レジスタ１７０、１７２を含む。
【００２１】
ホストインターフェース１１０は、システムバスとの接続部である。制御部１２０は内部ブロックへのセレクト信号生成、割込み制御等を行う。内部ステータスレジスタ等もここに存在する。
【００２２】
処理部１３０は、周辺装置１００の処理を行う。
【００２３】
メモリ１４０は複数のブロックに分割され、周辺装置を制御するための制御プログラムの格納、作業領域に使用される。
【００２４】
命令解読部１５０は、拡張命令コードやジャンプ命令等を解読すると共にブロックアドレスを保持する。具体的にはexte命令とそれに続く命令の解読を行ったり、exte命令時はブロックアドレスを取り出しその値を保持し、ブロックアドレス格納レジスタに対して出力したり、後に続く命令がロード/ストア命令の場合には信号ｒを有効にし、無条件分岐命令の場合には信号ｌ[1]を有効にしたり、条件分岐の場合は、信号l[0]を有効にし、制御部からの連続アドレス信号ｔが有効でない場合のみブロックアドレスを更新したりする。これにより、フェッチとデータアクセスでブロックアドレスが別々に制御され、誤動作はなくなる。
【００２５】
バンク制御回路１６０は、制御プログラム読出しバンク制御回路であり、ジャンプ命令等によるブロックアドレスの変化と命令読み出し時のブロック境界を越えた時のブロックアドレスのインクリメント等を行う。命令読出しが否かは、後述するアドレスのアドレス種別コードで判断する。
【００２６】
ブロックアドレス格納レジスタ１７０は、データアクセス時のブロックアドレスを格納するレジスタである。
【００２７】
ブロックアドレス格納レジスタ１７２は、命令フェッチ用ブロックアドレスを格納するレジスタである。
【００２８】
ここで命令解読部１５０、バンク制御回路１６０、ブロックアドレス格納レジスタ１７０、１７２が、メモリへのアクセス信号に基づきメモリに対するアクセス処理を行うメモリアクセス処理部として機能する。
【００２９】
命令解読部１５０は、メモリ１４０から読み出された命令コードを取り込み解読を行い、ブロックコードを抽出し保持し、信号ｍとしてブロックコードを出力する。命令コードとデータの識別は信号ｇにより行われる。
【００３０】
バンク制御回路１６０は、制御部からの信号ｔと命令解読部１５０からの出力信号ｌによりブロックアドレスの更新の仕方を判断してブロックアドレス収納レジスタ１７２にブロックアドレスを出力する。
【００３１】
ａはアドレス信号、ｂはバス入力データ信号、ｃはリード/ライト識別信号、ｄはバスアクセス指示信号、ｅはバス出力データ、ｆはバス出力データ選択信号、ｇは命令フェッチ、データアクセス切替え信号、ｈはメモリアクセス指示信号、ｉはリード/ライト識別信号、ｊは処理部アクセス指示信号、ｋはリード/ライト識別信号、ｌ[1:0]はブロックアドレス有効信号であり、l[1]は、無条件分岐を示し、l[0]は条件分岐を示す。ｍはブロックアドレス、ｎはメモリ部バス出力信号、ｏは処理部バス出力信号、ｐはインクリメント用ブロックアドレス信号、ｑは命令フェッチ用ブロックアドレス信号、ｒはブロックアドレス有効信号、ｓは処理部ステータス信号、ｔは連続アクセス信号であり、フェッチアドレスが、直前のアドレスに対して＋２されている事を示す。
【００３２】
図３（Ａ）〜（Ｄ）は、本実施の形態のＣＰＵ（ホスト装置）のレジスタについて説明するための図である。
【００３３】
ＣＰＵ（ホスト装置）は図３（Ａ）に示すようにＲ０〜Ｒ１５の１６個の汎用レジスタを有する。
【００３４】
またＣＰＵ（ホスト装置）は図３（Ｂ）に示すようなプログラムカウンタＰＣを含む。にＲ０〜Ｒ１５の１６個の汎用レジスタを有する。
【００３５】
ＣＰＵ（ホスト装置）は図３（Ｃ）に示すようなプログラムステータスレジスタＰＳＲを有する。Nは演算結果の符号を格納する。Zは演算結果、データ移動結果がゼロである事を示す。Vは演算結果でオーバーフロー／アンダーフローの発生を示す。Cは演算結果でキャリー/ボローの発生を示す。IEは割込み許可ビットを示す。ＤＦは被除算負号フラグを示す。
【００３６】
またＣＰＵ（ホスト装置）は図３（Ｄ）に示すようなスタックポインタＳＰを含む。
【００３７】
図４は、システムのメモリマップを示す。本システムでは、メモリ領域は制御プログラム領域２１０、アプリケーションプログラム領域２２０、データ領域２３０、設定レジスタ２４０が割り当てられている。
【００３８】
図５（Ａ）（Ｂ）は、制御プログラム領域のメモリマップである。図５（Ａ）は従来システム（図１において周辺装置８〜１１が存在しない構成のシステム）における制御プログラム領域のメモリマップであり、図５（Ｂ）は新規システム（図１）における制御プログラム領域（図４の２１０）のメモリマップである。
【００３９】
図６は周辺装置８のＩＯ空間のメモリマップ（図５（Ｂ）の２５０）であり、制御プログラム領域３１０、作業領域１（３２０）、作業領域２（３３０）、作業領域３／設定レジスタ３４０が割り当てられている。
【００４０】
図７は、周辺装置８のＩＯ空間のメモリブロックと相対アドレスの対応関係について説明するための図である。
【００４１】
本実施の形態では、図５で示した周辺装置８に割り当てられたメモリエリアサイズに合わせて、メモリ１４０を複数のブロックに分割して（図７では周辺装置のＩＯ空間を０からＦのブロックに分割している）、ブロックアドレス３５０を割り当てている。そして各ブロック内ではブロック内アドレス３６０が割り当てられている。
【００４２】
図６における制御プログラム領域３１０は６つのブロックであるブロック０からブロック５に分割されてメモリ領域のいずれかの実領域が割り当てられている。またブロック０からブロック５にはそれぞれ相対アドレス（３７０）0-000H〜0-3FFCH、〜1-400H〜1-7FFCHに対応付けられている。
【００４３】
このように周辺装置のメモリマップを複数のブロックに分割することにより、各ブロックに小さいサイズの連続したアドレス空間を割り当てることが可能になる。
【００４４】
図８（Ａ）（Ｂ）は、本実施の形態のアドレス表示について説明するための図である。
【００４５】
本実施の形態では、２８ビットのアドレス空間を有する。図８（Ａ）に示すように３２ビットのアドレス領域のうち１から２７ビットに有効アドレス４２０が格納され、２８から３１ビットにはアドレス種別４１０が格納されている。
【００４６】
アドレス種別４１０には、図８（Ｂ）に示すような意味４３０に従ったコード４４０が格納されている。
【００４７】
アドレス種別コードはPC自体に持つのではなく、命令フェッチを示す制御信号から生成され、有効アドレスに付加される。
【００４８】
図９（Ａ）（Ｂ）は本実施の形態の命令形式について説明するための図である。
【００４９】
本実施の形態では１６ビット命令形式を採用しており、０から３ビットにオペランド２（５１０）が格納され、４から７ビットにオペランド１（５２０）が格納され、８から１２ビットにオペコード５３０が格納され、１３から１５ビットに命令種別５４０オペコードが格納される。
【００５０】
命令種別４４０には、図９（Ｂ）に示すような意味５５０に従ったコード５６０が格納されている。
【００５１】
図１０（Ａ）〜（Ｄ）は本実施の形態の命令の例について説明するための図である。
【００５２】
図１０（Ｂ）は、ＣＰＵ汎用レジスタからメモリへのデータストア命令である。
【００５３】
図１０（Ｃ）は、条件によりPC相対ジャンプを行うジャンプ命令である。
【００５４】
図１０（Ｄ）は、即値データを定義する拡張命令である。
【００５５】
本実施の形態のニーモニック記述形式では、命令コードとオペランドの間は”，”で記述する。またレジスタの内容をアドレスとするメモリアクセスは［ｒ７］（ｒ７を使用する場合）と記述する。記述では命令コードに位置を示すラベルをつけて記述する事ができる。ラベルのアドレスは、ラベル名をlabelとした時に、label@ｌでアドレスのビット31から19を、label@mでビット18からビット6を、label@ｒでビット５〜ビット0を示す。
【００５６】
具体的な記述に関しての説明を下記に示す。
【００５７】
ld.w,r10,[r7]ロードワード。汎用レジスタ７の内容がアドレスとなりメモリアクセスを行い、データを汎用レジスタ１０に格納する。
【００５８】
st.w,r10,[r7]ストアワード。汎用レジスタr10の内容を汎用レジスタｒ７の内容がアドレスとなり、メモリに格納する。
【００５９】
ext,20H  １６進(H)での即値指定。13ビットで表現できる値まで可能。
【００６０】
コンパイラに対しての指示として、下記のものを本例で使用する。
【００６１】
org,32000000H  オリジン指定。プログラムのアドレスを直接指定する。この場合、32000000Hのアドレスに、次に記述した命令のオブジェクトコードが置かれる。これはコンパイラに対しての処理指定の記述で、CPUが実行する命令ではない。
【００６２】
area，4000H  CPUから見たメモリ空間のサイズを示す。
【００６３】
拡張命令ext、exteは、必要とする命令の前に置かれる。
【００６４】
図１１は本実施の形態のニーモニック記述例について説明するための図である。
【００６５】
ラベル６００は、他のプログラムも含めグローバルに使用するものを大文字、この周辺装置内だけで使用するものを小文字で認識するものとする。周辺装置の制御プログラムはサブルーチンとして処理される事とする。周辺装置の制御は６１０に示すように必ずラベル：P8CINからスタートし、６６０に示すようにret命令で終わるものとする。
【００６６】
６１０は、周辺装置８の制御プログラムの入口である。まず初期設定が終了しているかどうか/を判断する為に、ＨＷの識別フラグｉｎｉｔｆｌｇを確認する。
【００６７】
識別フラグｉｎｉｔｆｌｇは、パワーオンリセットで０Ｈとなり、初期設定終了後に制御/プログラムが０Ｈ以外の数値を書き込むことで、０Ｈの場合は初期設定がなされていないと判断できる。フラグのアドレスをｒ５に設定し、ｒ８にフラグの内容を読み出す（６２０参照）。読み出したときにＰＳＲにステータスが設定される。
【００６８】
６４０のjeqz-d,inipr@rではＰＳＲのＺフラグにより分岐が実行される。
【００６９】
そしてld.w,r8,[r5]から先は、具体的な処理となる。
【００７０】
６５０のext,RETURN@l;は、/周辺装置８の処理が終了し、一旦制御を返す為の分岐である。周辺装置８の処理は一つのサブルーチンとして処理される。
【００７１】
６７０のinipr:ext.0Hは初期設定の処理の先頭である。特にアドレスを指定する必要がないので、org命令/は使わない。(オブジェクトコードはメモリ上に詰まって置かれてよい。)
６８０のext,RETURN@l;において、初期設定終了後は一旦制御を返す。
【００７２】
６９０のconre:org,3C000HこのアドレスでHWのレジスタが見えるようにHWを作る。
【００７３】
また７００のinitflg org,3CFFCHのアドレスでHWのレジスタが見えるようにHWを作る。
【００７４】
コンパイルの際には、エリアサイズ指定命令areaによってブロックアドレスが計算され、exte命令のim4が決定する。
【００７５】
次に図１１を用いて本実施の形態の動作を説明する。
【００７６】
６１０においてexte命令が発行されたので、命令解読処理部はブロックアドレスをレジスタに保持する。
【００７７】
６２０において後続の命令がロード命令なので、信号ｒが有効になり、レジスタＢにブロックアドレスが格納される。この命令が実行されると、信号ｇによりレジスタＢが選択され、データが信号ｎを介してバスに出力される。
【００７８】
６３０においてexte命令が発行されたので、命令解読処理部はブロックアドレスをレジスタに保持する。
【００７９】
６４０において後続の命令が条件分岐命令なので信号l[0]が有効になる。条件が成立しない場合、フェッチアドレスは＋２去れたものである為、信号ｔが有効になりレジスタＣは更新されない。信号ｔが有効の場合は分岐成立なので、レジスタＣが更新されブロックアドレスが変わる。これにより分岐が成立する。
【００８０】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【００８１】
【図１】本実施の形態の情報処理装置について説明するための図。
【図２】本実施の形態の情報処理装置の一例である周辺装置の機能ブロック図。
【図３】本実施の形態のＣＰＵのレジスタについて説明するための図。
【図４】システムのメモリマップを示す図。
【図５】制御プログラム領域のメモリマップ。
【図６】周辺装置のＩＯ空間のメモリマップ。
【図７】周辺装置のＩＯ空間のメモリブロックと相対アドレスの対応関係について説明するための図。
【図８】本実施の形態のアドレス表示について説明するための図。
【図９】本実施の形態の命令形式について説明するための図。
【図１０】本実施の形態の命令の例について説明するための図。
【図１１】本実施の形態のニーモニック記述例について説明するための図。
【符号の説明】
【００８２】
１  情報処理システム、１０  狭義の情報処理装置、２０  広義の情報処理装置、４０  ＣＰＵ、５０  バス、１００  周辺装置、１１０  ホストインターフェース、１２０  制御部、１３０  処理部、１４０  メモリ、１５０  命令解読部、１６０  バンク制御回路、１７０、１７２  ブロックアドレス格納レジスタ
【図１】
2007066233.tif 000003
【図２】
2007066233.tif 000004
【図３】
2007066233.tif 000005
【図４】
2007066233.tif 000006
【図５】
2007066233.tif 000007
【図６】
2007066233.tif 000008
【図７】
2007066233.tif 000009
【図８】
2007066233.tif 000010
【図９】
2007066233.tif 000011
【図１０】
2007066233.tif 000012
【図１１】
2007066233.tif 000013