(57)【特許請求の範囲】
【請求項１】
データ処理システムを構成する方法において、
リセット信号の解除に応答して、格納装置に対する第１バス・アクセスを開始する段階であって、前記第１バス・アクセスは前記リセット信号の解除後に他のどのバス・アクセスよりも先立って実行される、段階と、
前記格納装置から構成値を検索する段階と、
後続のバス・アクセスを実行する前に、前記構成値を用いて前記データ処理システムのバスのタイミング特性を構成する段階と、によって構成され、
前記バスのタイミング特性は、前記後続のバス・アクセスの間に使用される待機状態情報を含むことを特徴とする方法。
【請求項２】
データ処理システムを構成する方法において、
リセット信号の解除に応答して、格納装置に対する第１バス・アクセスを開始する段階であって、前記第１バス・アクセスは前記リセット信号の解除後に他のどのバス・アクセスよりも先立って実行される、段階と、
前記格納装置から構成値を検索する段階と、
後続のバス・アクセスを実行する前に、前記構成値を用いて前記データ処理システムのエンディアン方式を構成する段階と、によって構成され、
前記エンディアン方式によって、前記データ処理システム中のリトル・エンディアン方式およびビッグ・エンディアン方式の１つが選択されることを特徴とする方法。
【請求項３】
データ処理システムを構成する方法において、
リセット信号の解除に応答して、格納装置に対する第１バス・アクセスを開始する段階であって、前記第１バス・アクセスは前記リセット信号の解除後に他のどのバス・アクセスよりも先立って実行される、段階と、
前記格納装置から構成値を検索する段階と、
後続のバス・アクセスを実行する前に、前記構成値を用いて前記データ処理システムのデバッグ機能およびエミュレーション機能の少なくとも１つの実行可能化を判断する段階と、
によって構成されることを特徴とする方法。
【請求項４】
データ処理システムを構成する方法において、
リセット信号の解除に応答して、格納装置に対する第１バス・アクセスを開始する段階であって、前記第１バス・アクセスは前記リセット信号の解除後に他のどのバス・アクセスよりも先立って実行される、段階と、
前記格納装置から複数の構成ビットを検索する段階と、
後続のバス・アクセスを実行する前に、前記複数の構成ビットの少なくとも一部を用いて前記データ処理システムの少なくとも一部を構成する段階と、によって構成され、
前記複数の構成ビットの少なくとも一部は少なくとも１つの制御ビットおよび少なくとも１つのデータ・ビットからなり、前記少なくとも１つのデータ・ビットの使用は条件付であり、かつ前記少なくとも１つの制御ビットは前記少なくとも１つのデータ・ビットが使用されるかどうかを示す、
ことを特徴とする方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、データ・プロセッサに関し、さらに詳しくは、リセット後にデータ処理システムを構成するための方法および装置に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
データ処理システムを既知の初期状態に置くために、大半のデータ処理システムには、システムをリセットするためのピンまたはその他の機構が装備される。処理システムがリセット条件から抜けると、リセット・ベクトル（リセット除外ベクトル）のアドレスがメモリ内の周知の位置から取り出される。このアドレスを用いて、リセット除外ルーチンを取り出し、実行する。リセット除外ルーチンには、通常、システムを初期化し、その後のプログラミング命令を実行するために準備を行ういくつかの命令が含まれる。
【０００３】
３２ビットのアドレス空間を備える処理システムにおいては、リセット・ベクトルは４個の８ビット・バイトで構築される３２ビット・ワードが１個含まれる。リセット・ベクトルは、ビット幅が可変するメモリ構造から取り出される。たとえば、３２ビット幅のメモリ構造，１６ビット幅のメモリ構造または８ビット幅のメモリ構造を用いて、特定のシステムのリセット・ベクトルを格納することができる。リセット・ベクトルを格納するメモリ構造の種類により、リセット・ベクトルを構築する４個の８ビット・バイトを取り出すために必要なメモリ動作が決まる。
【０００４】
リセット・ベクトルを格納するメモリのメモリ構成を決定する従来技術による方法の１つに処理システム上にピンを追加する方法があり、この場合は、追加されたピン上の信号がメモリ構成を示す。追加ピンは処理システムのコストを上げるので望ましくない。
【０００５】
メモリ構成を決定する別の従来技術による方法には、処理システムのデータ・バスをサンプリングする方法がある。データ・バスのサンプリングから決定される値は、リセット・ベクトルが格納される特定のメモリ構成を示す。この方法によって処理システム内で異なるメモリ構造に対応することができるが、使用されているメモリ構成を示すために必要な特定の値にデータ・バスを駆動するためには外部の接着論理（glue logic）が必要とされる。外部接着論理のために処理システム全体のコストが上がり、余分な寄生効果を招くために処理システムの機能には悪影響を及ぼし、さらに消費電力も増大する。
【０００６】
リセット・ベクトルを格納するメモリの構成を決定する別の方法は、処理システム内に不揮発性格納手段を備えることである。不揮発性格納手段を用いて、特定のシステムに用いられるメモリ構成を表す値を格納することができる。この場合も、この方法により処理システム内に種々のビット幅のメモリ構造を用いることができるが、不揮発性格納手段を備えることにより、システムのコストが上がる。これは、電気的消去可能プログラミング可能な読取専用メモリなどの不揮発性格納手段は複雑で実現するには費用がかかるためである。コストが上がるだけでなく、不揮発性格納手段は、再プログラミングすることが困難であることが多く、そのために異なるメモリ構成間の変更を行うことがさらに難しくなる。
【０００７】
他の従来技術によるシステムには専用の外部メモリ構成を想定するものがあり、これは外部メモリをその想定に合わせることが必要である。図１は、CPUとメモリ・コントローラとを備えるプロセッサを示す。図１には、３つの異なるメモリ構成も図示される。すなわち、３２ビット，１６ビットおよび８ビットの構成である。メモリ・コントローラが異なる、可能性のあるメモリ構造の各々にアクセスするために用いるアドレス・データおよび制御信号も図示される。
【０００８】
図１に示されるシステムで、１６ビット・データ・バスを有するメモリ構造を用いてリセット・ベクトルを格納するとすると、アドレス０ｘ００（１６進数フォーマット）および０ｘ０２に対する２回の連続する読込動作が実行されて、３２ビット・リセット・ベクトルを構築する４バイト（Ｔ，Ｕ，Ｖ，Ｗ）が検索される。これら２回のアクセスの実行は１６ビット・メモリに関して行われるが、同じ想定を用いてリセット・ベクトルのアドレスをロードしようとする試みは、３２ビットおよび８ビットのメモリ構造に関しては失敗する。
【０００９】
８ビット・メモリ構造に関しては、２つのアドレスを用いる２回の読込動作のみが実行される。メモリ・コントローラは各読込動作に関してＤ［３１：０］データ線上の１６ビットのデータを受信することを予想するが、８ビット・メモリはＤ［３１：２４］データ線を駆動するに過ぎない。従って、リセット・ベクトル・アドレスを構築する４バイトのうち２バイトだけが８ビット・メモリから検索される。
【００１０】
３２ビット・メモリに関しては、アドレス線Ａ［１］が３２ビット・メモリにより無視される。そのため、０ｘ００，０ｘ０２に対する２回の連続した読込を行うと、３２ビット・メモリ内の位置０ｘ００に格納される３２ビット・ワードを重複して読み込むことになる。３２ビット・メモリはリセット・ベクトル・アドレス全体をデータ線Ｄ［３１：０］に駆動するので、メモリ・コントローラは、１６ビットのデータのみをデータ線Ｄ［３１：１６］上の各メモリ・アクセスについて受信することになる。そのため、メモリ・コントローラは、メモリ動作の結果を変換して、完全な４バイト・アドレス（ＴＵＶＷ）の代わりにリセット・ベクトル・アドレスを構築する４つのバイトのうち２つを２回のコピーしたもの（ＶＷＶＷ）を含むアドレスに到達することになる。
【００１１】
従って、追加ピン，不揮発性格納位置またはデータ・バスサンプリングを必要とせずに処理システムが種々のビット幅のメモリ構造を利用して、リセットから抜けたときにリセット・ベクトルのアドレスを正確に決定することができるようにする方法および装置が必要である。また、リセット脱出直後に種々の処理システム・パラメータの構成を行って、後の動作が構成されたパラメータを利用できるようにする方法および装置を有することが望ましい。
【００１２】
【実施例】
一般に、本発明は種々のビット幅を持つメモリを用いて、リセット状態から抜け出したときにデータ処理システムを構成することを可能にする方法および装置を提供する。ある実施例においては、リセット・ベクトルを構築する４つのバイトをリセット・ベクトルを格納するメモリから、別々のメモリ動作により個別に取り出す。これら４つのバイトは、可能なメモリ構造の各々の中に所定の方法で格納されており、４つの所定のアドレスがデータ・バスの共通部分の上で４つの異なるバイトを検索するようになっている。検索されるリセット・ベクトルの部分は、データ処理システム内で種々のパラメータを構成するために用いられ、メモリやシステムのその他の機能的特性に関わる追加パラメータが初期化される。リセット・ベクトルに含まれる構成値には、データ部および制御部が含まれ、制御部によって、構成値のデータ部がデータ処理システム内の種々のパラメータにどのように適応されるかが決まる。
【００１３】
別の実施例においては、構成値はメモリからリセット・ベクトルを検索する前に取り出される。取り出される構成値には、メモリ構造のビット幅（データ・フィールド・サイズ）、メモリ構成に対応するアクセス時間に関わる情報（待機状態制御情報）や、メモリ構成内で用いられるバイト順序（リトルまたはビッグ・エンディアン(little or big endian) 方式）などの情報を含む。そのため、検索される構成値を利用して、その後のメモリからのリセット・ベクトルの取り出しを制御するパラメータを構成するために利用することができるので、メモリ構造におけるリセット・ベクトルの格納を、利用されるメモリの種類に合致するよう最適化することができる。他の実施例においては、検索される構成値を用いて、データ処理システムに含まれるデバッグまたはエミュレーション機能を可能化／不能化するパラメータを構成することもできる。
【００１４】
本発明は、従来技術によるシステムにおいては不揮発性格納手段，追加の接着論理または追加のピンを加えずには不可能であったリセット・ベクトルの格納に関して、データ処理システムがメモリの可変構成を利用することができるようにする。リセット・ベクトルに加えて取り出される、あるいはそれに含まれる構成情報を用いて、処理システム内で追加のパラメータを初期化し、リセット脱出命令の初期の実行を、このようなパラメータを構成するためには複数の命令が必要であった従来技術による方法よりも効率的な方法で実行することができる。
【００１５】
本発明は、図２ないし図８を参照して、より良く理解することができる。図２は、データ処理システムと共に利用することのできるメモリ・マップ２１０を示す。メモリ・マップ２１０内の位置は、０ｘ００〜０ｘＦＦＦＦＦＦＦＦと示されるアドレス・ビットを用いて定義される。リセット・ハンドラ・ルーチン２２０がメモリ・マップ２１０内に含まれ、処理システムがリセット状態を脱すると実行される。リセット・ハンドラ・ルーチン２２０を実行するためには、リセット・ベクトルと呼ばれるリセット・ハンドラ・ルーチン２２０のアドレスをメモリから取り出す。リセット・ベクトルは、０ｘＴＵＶＷの値を有するものとして示される。文字Ｔ，Ｕ，Ｖ，Ｗの各々は３２ビットのリセット・ベクトルの８ビット・バイト部分を表す。
【００１６】
図示されるように、リセット・ハンドラ・ルーチン２２０は、ブート・メモリ装置２４０に格納されることが好ましい。リセット・ハンドラ・ルーチン２２０を実行するために取り出さねばならないリセット・ベクトルもブート・メモリ装置２４０に格納するか、あるいは異なるメモリ装置に格納することができる。リセット・ハンドラ・ルーチン・アドレスを構築する４バイトの取出を容易にするために、４バイトは種々のメモリ構成の各々の中で隣り合わないバイト位置に格納される。このため、リセット・ベクトルの隣接部分は、メモリ内では隣り合わないアドレスに格納され、少なくとも１ビットは隔てられる。好ましくは、メモリ内のリセット・ベクトルの部分の間隔は、処理システムのデータ・バスの幅の関数に基づく。リセット・ベクトルの部分の続きのアドレスは、好ましくは、第１（ベース）アドレスを、データ・バス内のバイト数に等しい増分値だけ増分することにより生成される。たとえば、データ・バスのバス幅が３２ビット（４バイト）であるとすると、バイト部分の間隔は図２に示されるように４バイトになる。このため、アドレスは４ずつ増分されて、リセット・ベクトルの部分間で階段状に進む。
【００１７】
本明細書で用いる「バス」という用語は、データ，アドレス，制御または状況情報など１種類以上の情報を転送するために用いられる複数の信号または導体を指すために用いられる。バスの導体または値のビット位置を示すためにカギ括弧を用いる。たとえば、Ｄ［３１：２４］は、データ・バスの最上位の８ビットを示すために用いられる。
【００１８】
メモリ・アクセスのたびに３２ビットのデータを戻す３２ビット・メモリ２５０においては、リセット・ハンドラ・ルーチン・アドレスの４バイトの各々が、別々の３２ビット・ワードの最上位バイトに含まれる。このため、リセット・ベクトルの最上位バイトであるＴ２５２は、位置０ｘ００にあるワードの最上位バイトである。そのため、アドレス０ｘ００に対する第１回の読込動作が実行されると、値Ｔがデータ・バスのＤ［３１：２４］データ線上に現れる。その後３回の読込動作を行うと、後の読込動作においてアドレス０ｘ０４，０ｘ０８，０ｘ０Ｃを用いてデータ・バスの同じ部分に値Ｕ２５４，Ｖ２５６，Ｗ２５８を戻すことになる。
【００１９】
３２ビット・メモリ２５０から値Ｔ〜Ｗ２５２〜２５８を検索するのと同じメモリ動作を用いて、１６ビット・メモリ２６０から値Ｔ〜Ｗ２６２〜２６８を検索することができる。１６ビット・メモリは、データ・バスの１６ビットしか駆動しないので、特定のアドレスに関して検索される最上位データ・バイトをデータ・バスの最上位部分（Ｄ［３１：２４］）に戻すような方法でデータ・バスに結合しなければならないことに留意されたい。このため、１６ビット・メモリ２６０から位置０ｘ００を読み込むメモリ動作により、３２ビット・メモリ２５０を用いるアドレスに対する読込動作と同じデータ・バスの部分にデータＴ２６２が戻ることになる。
【００２０】
図２は、３２ビット・メモリ２５０または１６ビット・メモリ２６０のいずれかに適応されるのと同じメモリ動作でリセット・ベクトルに関する適切な値を検索することのできる方法で、リセット・ベクトルを構築する４バイトを格納する８ビット・メモリ２７０をも示す。従って、アドレス０ｘ００，０ｘ０４，０ｘ０８，０ｘ０Ｃにアクセスする４回のメモリ読込動作を８ビット・メモリ２７０に適応して、値Ｔ〜Ｗ２７２〜２７８をそれぞれ戻すことができる。種々のメモリ構成の各々についてデータ・バスの同じ部分でデータを駆動することができるようにするためには、８ビット・メモリ２７０を、データ・バスの最上位の８ビット部分（Ｄ［３１：２４］）を駆動するよう構成すべきである。
【００２１】
図３は、処理システム内で１つ以上のパラメータを構成するために取り出されるリセット・ベクトル値３００に含まれる構成値３１０の利用法を示す。図示されるように、取り出されるリセット・ベクトル値３００は、リセット・ハンドラ・ルーチンが格納されるアドレスを構築する４つのデータ・バイトＴ，Ｕ，Ｖ，Ｗを含む。取り出されるリセット・ベクトル値３００を構築するビットの部分を構成値３１０として利用することによって、データ処理システムの構成パラメータは、リセット条件直後に取り出されるリセット・ベクトル値３００の初期検索の間に検索することができる。そのため、構成値３１０を利用して構成されるパラメータは、リセット脱出直後に構成され、それに続く処理システム動作が変更されたパラメータ値を利用することができるようにする。
【００２２】
特定の方法で処理システム内の特定のパラメータを構成するために必要とされる構成値３１０に含まれるビットの設定により、取り出されるリセット・ベクトル値３００が示すアドレスに変更が加わる。そのため、ブート・メモリ装置２４０は、１つ以上のリセット・ハンドラ・ルーチンを含めるよう構築される。これらのルーチンの各々は、構成値３１０内の特定の設定に基づき取り出されるリセット・ベクトル値３００に関して得られる種々の値の１つに対応するアドレスに格納される。図２は、アドレス０ｘＴ’Ｕ’Ｖ’Ｗ’に格納される、このような代替のリセット・ハンドラ・ルーチン２３０を示す。代替のリセット・ハンドラ・ルーチン２３０は、プロセッサを、実行される実際のルーチンを格納する別の位置に再指示するポインタに過ぎないことに留意されたい。従って、複数の構成値３１０が１つのシステム内に想定される場合は、複数のリセット・ベクトル・アドレスに対応する複数のハンドラ・ルーチンがブート・メモリ装置２４０に含まれることもある。
【００２３】
構成値３１０内の異なる設定が複数のリセット・ハンドラ・ルーチンを（ポインタに過ぎなくとも）要求するので、構成値３１０は、取り出されたリセット・ベクトル値３００のより下位の部分に含まれることが好ましい。そのため、必要とされる複数のリセット・ハンドラ・ルーチンが拡散するブート・メモリ装置２４０内のメモリ領域は小さくなる。取り出されるリセット・ベクトル３００内のより上位のビットが構成値３１０に関して用いられる場合は、複数のルーチンがブート・メモリ装置２４０全体に拡散する。そのため、ブート・メモリ装置２４０を他の目的のために利用できる効率性は低くなる。
【００２４】
構成値３１０は、処理システム内の特定のパラメータを構成する単独のビットである場合も、処理システム内の１つ以上のパラメータを構成する複数のビットである場合もある。構成値３１０に複数のビットが含まれる場合は、構成値３１０は、データ部と制御部とを備える。データ部は、特定のパラメータ位置に格納される実際のデータ値に対応して、これらのパラメータを適切な設定に構成する。制御部は、構成値３１０のデータ部またはその部分の応用を制御するために用い
ることができる。
【００２５】
図３に示される例は、複数のデータ部分３１２〜３１８を含むデータ部を示す。図３の例における構成値３１０の制御部は、パラメータ制御部分３２０を含んで図示される。図示されるように、データ部分３１２〜３１６は、制御レジスタ３５０のパラメータＡ３５２，Ｂ３５４，Ｃ３５６に適応される。
【００２６】
制御レジスタ３５０は、CPU内，インタフェース・ブロック内またはデータ処理システム内に含まれる他の追加論理内に常駐する。制御レジスタ３５０は、データ処理システムがチップ選択信号を介してアクセスされるブロックとインタフェースする方法を制御するチップ選択制御レジスタである。ある例では、制御レジスタ３５０は、メモリ構造に対応するチップ選択レジスタである。このような例では、パラメータＡ３５２が、チップ選択信号が選択したメモリ構造に対するアクセスのために利用される待機状態数に対応する。パラメータＢ３５４は、処理システムがデッド・サイクルをメモリ動作に含むか否かを判断するデッド・サイクル・パラメータに対応する。最後に、パラメータＣ３５６は、メモリ構造のデータ・バス幅に対応する。かくして、リセット状態から出るとすぐに特定のメモリ構造に関する正しいパラメータ設定がチップ選択レジスタ内に入れられ、後のメモリ動作が適切に構築される。
【００２７】
別の実施例においては、制御レジスタ３５０は、デバッグまたはエミュレーション設定および動作を制御する制御レジスタに対応する。そのため、パラメータＡ〜Ｃ３５２〜３５６が、一定のデバッグまたはエミュレーション・モードが機能するか否かを判断する。たとえば、内部信号を外部からアクセス可能な信号上に見えるようにするショウ状態が、パラメータＡ〜Ｃ３５２〜３５６により可能化または不能化される。その他のデバッグおよびエミュレーション機能には、性能監視，プログラム追跡，リセット状態脱出後のデバッグ・モードに対する直接エントリの可能化，１つ以上のモジュールに対するクロックの可能化／不能化，高速または低速クロック速度のリセット脱出可能化などが含まれる。
【００２８】
構成値３１０のデータ部分３１８は、制御レジスタ３５０の外にあるシステム制御パラメータ３６２に与えられる。同様に、構成値３１０のデータ部の異なる部分が、データ処理システム全体を通じて種々のパラメータに適応される。そのため、データ部分は、データ処理システムの広範囲に機能性に対応するパラメータを構成することができる。
【００２９】
前述の如く、図３の図ではパラメータ制御部分３２０を含む構成値３１０の制御部は、それぞれのパラメータに対する種々のデータ部分３１２〜３１８の応用を制御するために用いられる。ある実施例では、パラメータ制御部分３２０は、データ部分３１２〜３１８のいずれかがそれぞれのパラメータに適応されるか否かを示す単独のビットである。他の実施例では、データ部分３１２，３１４が、パラメータ制御部分３２０の状態に関わらず、個々のパラメータに適応される。しかし、同じ実施例で、データ部分３１６，３１８がパラメータ制御部分３２０により制御され、パラメータ制御部分３２０の状態に基づいて個々のパラメータに適応されたりされなかったりする。
【００３０】
さらに別の実施例においては、パラメータ制御部分３２０は、構成値３１０内の特定のデータ部分に各々が関連する複数のビットを含む。かくして、各データ部分３１２〜３１８は、特定のデータ部分がその個別のパラメータに適応されるか否かを決定するパラメータ制御部分３２０内の対応ビットを有することがある。実施例によっては、データ部分３１２〜３１８の一部分だけが、パラメータ制御部分３２０内で対応するビットにより制御されることがある。
【００３１】
構成値３１０の制御部に関する別の可能な用途は、データ部分３１２〜３１８の各々が適応される、あるいはされない個別パラメータを決定することである。かくして、構成値３１０の制御部は、特定のデータ部分が第１制御レジスタに適応されるか、あるいは同じ制御レジスタまたは他の制御レジスタ内に位置する第２パラメータに適応されるかを決定する。当業者には明白であろうが、データおよび制御部の様々な組み合わせを構成値３１０内で利用して、特定のデータ処理システム内で必要とされるパラメータ構成を実現することができる。
【００３２】
図４は、図示される種々のメモリ構成に結合する柔軟性を有するデータ処理システム４００を示す。データ処理システム４００は、プロセッサ４１０と、３２ビット・メモリ４４０，１６ビット・メモリ４５０および８ビット・メモリ４６０のうち少なくとも１つのメモリとを備える。プロセッサ４１０は、インタフェース回路構成（インタフェース・ブロック４１６）に動作可能に結合される中央処理装置（CPU４１２）を備える。プロセッサ４１０は、単独の集積回路上に形成されており、マイクロコントローラまたは同様の装置とすることができる。メモリ構造の各々は任意の種類のメモリとすることができる。
【００３３】
プロセッサ４１０は、CPU４１２およびインタフェース・ブロック４１６の一方または両方に動作可能に結合される追加論理４２０も備える。追加論理４２０は、システムにデバッグおよび／またはエミュレーション機能を与えるために用いられるデバッグ／エミュレーション回路構成とすることができる。このようなデバッグ／エミュレーション機能には、ショウ・サイクル，バックグラウンド・デバッグ・モード，プログラム追跡などの可能化が含まれる。インタフェース・ブロック４１６は、データ処理システム４００に含まれるメモリ構造（格納回路構成）に結合される。図４に示される実施例においては、プロセッサ４０１は３２ビット・データ・バスとＮビット・アドレス・バスとを備える。メモリ動作を実行するために必要とされる制御信号が制御バスを介してメモリ装置に伝えられる。
【００３４】
３２ビット・メモリ４４０がデータ処理システム４００に含まれる場合は、メモリ読込動作がインタフェース・ブロック４１６により開始されるとデータ・バス全体（Ｄ［３１：０］）が駆動される。リセット・ベクトル・アドレス（Ｔ〜Ｗ）に対応するデータ・バイトが３２ビット・メモリ４４０内に図示されるように格納されると、アドレス０ｘ００，０ｘ０４，０ｘ０８，０ｘ０Ｃを用いる４回の読込動作によって、リセット・ベクトルを構築する４バイトがデータ線Ｄ［３１：２４］を介してインタフェース・ブロック４１６に提示される。
【００３５】
これらの値を検索するために用いられるアドレス間の間隔は、３２ビット・メモリ４４０内で可能な最小のアドレス増分にあることに注目されたい。ここで言う最小増分は、３２ビット・メモリ４４０がアドレス線Ａ［１：０］を受信しないか無視するという事実に基づいて決まる。
【００３６】
１６ビット・メモリ４５０を含むデータ処理システムにおいては、３２ビット・メモリ４４０からリセット・ベクトルを検索することに関して上記に説明されたのと同じメモリ動作を用いて、データ・バスの同じ部分で１６ビット・メモリ４５０からリセット・ベクトルを検索することができる。１６ビット・メモリ４５０は、アドレス線Ａ［１］を無視しないことに注目されたい。しかし、３２ビット・メモリ４４０（図示される例のデータ処理システム内で可能な最大ビット幅を有する）内で可能なアドレス指定粒度に基づきリセット・ベクトルを構築するバイトを隔てることによって、リセット・ベクトルを取り出すために用いられるアドレスをすべて種々の潜在的メモリ構成に適応することができる。
【００３７】
データ処理システムが８ビット・メモリ４６０を含む場合は、３２ビットまたは１６ビット・メモリ・システムに関してリセット・ベクトルを検索するために用いられるのと同じ集合のアドレスを利用して、８ビット・メモリ４６０からリセット・ベクトルを検索することができる。８ビット・メモリ４６０は、アドレス線Ａ［１：０］を受信および利用することに注目されたい。しかし、リセット・ベクトルのバイト部分を格納するために選択されるアドレス位置は、３２ビット・メモリ４４０内でアドレス可能な最小粒度に基づき互いに隔たっているので、リセット・ベクトルを検索するために用いられるアドレスを全般的に適応することができる。８ビット・メモリ４６０は、データ・バスの８ビット部分に結合されるに過ぎないことに留意されたい。図４に示す例では、これにはデータ線［３１：２４］が含まれる。そのため、インタフェース・ブロック４１６は、それらの特定のデータ線上のリセット・ベクトルの種々の部分に対応するデータを受信することが予測される。当業者には明白であろうが、リセット・ベクトル・アドレスを構築するデータ・バイトを検索するために用いられる特定のデータ線を、インタフェース・ブロック４１６と可能な８ビットおよび１６ビットのメモリ構造４５０，４６０との間の接続に基づいて変更することができる。
【００３８】
図３に関して説明したように、リセット・ベクトルは、データ処理システム４００内で種々のパラメータに適応される構成値を含むことがある。プロセッサ４１０は、その種々のブロック内に複数の制御レジスタ４１４，４１８，４２２を備えて図示され、これらのブロックは、この構成値に基づいて構成されるパラメータを含む。たとえば、CPU４１２は制御レジスタ４１４を備えて図示され、インタフェース・ブロック４１６は制御レジスタ４１８を備えて図示され、追加論理ブロック４２０は制御レジスタ４２２を備えて図示される。かくして、リセット・ベクトルに含まれる構成値は、これらの制御レジスタ４１４，４１８，４２２のうち１つ以上のレジスタ内に含まれるパラメータに適応される値を含む。
【００３９】
図５は、データ処理システムを構成する方法に対応する流れ図である。本方法は、段階５０２で始まり、データ処理システムがリセット状態で始動する。リセット信号がネゲート(解除）されて、リセット状態を脱すると、方法は段階５０４に進む。段階５０４において、データ処理システム内のハードウェアがデータ処理システムが動作を開始できるようにする種々の所定の状態に初期化される。
【００４０】
段階５０６において、リセット・ベクトル・アドレスが生成される。図４のデータ処理システムにおいては、段階５０６で生成されるリセット・ベクトル・アドレスは、メモリからリセット・ベクトルを検索するために用いられるベース・アドレスに対応する。図４に示される特定の例では、これはアドレス０ｘ００に対応する。リセット・ベクトルのベース・アドレスはメモリ構造内の様々な点に位置する場合があることに留意されたい。
【００４１】
段階５０８において、リセット除外ハンドラ・ルーチン（リセット・ベクトル）のアドレスが、ハードウェアに関するリセット初期化値を用いて取り出される。３２ビットのアドレス空間を有するシステムにおいては、リセット・ベクトルは、メモリからの４回の個別のバイト・アクセスを実行することにより取り出される。この４回の個別のバイト・アクセスは、まずリセット・ベクトル・アドレスに基づきメモリにアクセスし、次にそのアドレスを既知の数量だけ増分して後続のバイト・アクセスのための後続アドレスを生成することにより実行される。好ましくは、後続アドレスを生成するために用いられる増分値は、リセット・ベクトルが格納される最大ビット幅のメモリのバイトで測定される幅に等しい。たとえば、３２ビット・メモリが最大の場合、増分値は４となる。この例では、４の任意の倍数も増分値として機能するが、増分値が大きくなるとメモリ空間利用の効率が下がることに留意されたい。最大ビット幅メモリのバイト幅を増分値として用いると、リセット・ベクトルのバイト部分を、種々のメモリ構造内でできるだけ密接して配置することができる。このようにしてリセット・ベクトルを取り出すことにより、データ処理システムは、リセット・ベクトルを構築するバイトを格納する複数の異なるメモリ構成と共に動作することができる。
【００４２】
段階５１０において、段階５０８で実行される取出を通して受信されるデータ・バイトが検証される。図３に関して説明したように、取り出されたリセット・ベクトルには構成値が含まれる。構成値には、制御部とデータ部とが含まれ、データ部の様々な部分が制御部の部分に基づきシステム内の種々のパラメータに適応されたりされなかったりする。従って、構成値に含まれるデータ部分の一部は無条件で適応されるが、条件付きで適応されるデータ部分もある。
【００４３】
段階５１２において、条件付き更新が実行されるか否かが判断される。好ましくは、この動作は構成値の制御部分を検証することによって実行される。制御部分が、いずれかの条件付きデータが個別の制御パラメータに適応されることを示すと、方法は段階５１４に進む。条件付き更新が実行されない場合は、方法は段階５１６に進む。
【００４４】
段階５１４において、個別の制御パラメータに条件付きで適応されるデータ部分を用いて、これらの制御パラメータが更新される。かくして、段階５０４においてこれらの制御パラメータに関して決定された初期化値は、構成値に含まれるデータ部分により無効とされる。段階５１４が終了すると、方法は段階５１６に進む。
【００４５】
段階５１６において、個別パラメータに無条件に適応される構成値のデータ部分を用いて、個別パラメータを更新する。これにより、初期化状態に基づきこれらのパラメータに格納される前者の値は、構成値の無条件に適応されるデータ部分に含まれる値により無効になる。たとえば、ハードウェアが外部の１６ビット幅メモリ構造と対話するよう初期構成される場合、段階５０８で取り出されるリセット・ベクトルは、この特定のパラメータを再構成して３２ビット・メモリが実際に利用されるようにする構成値を含む。
【００４６】
段階５１８において、リセット除外ハンドラの取出および実行が継続され、取出と実行の継続は段階５１４，５１６で修正された可能な新たな更新制御パラメータを利用する。従って、制御値を取り出す第１バス・アクセスに続きシステム内で実行される第２バス・アクセスは、第１バス・アクセス中に取り出された制御値から導かれた再構成されたパラメータを利用する。そのため、段階５１８で行われる取出と実行は、段階５０４においてこれらの制御パラメータに格納される標準的な初期化済みの値がそのまま残される場合に可能であるよりも、さらに効率的に実行される。たとえば、システムが１６ビット外部メモリに初期化され、３２ビット外部メモリが実際に存在する場合は、外部メモリのビット幅を表すパラメータを変更することにより、段階５１８で行われる取出を、はるかに効率的に実行することができる。これは、データ・バスの１６ビット部分のみでなく、３２ビットすべてが関連すると考えられるためである。
【００４７】
図２ないし図５に関して説明される本発明の実施例は、取り出されたリセット・ベクトルに構成値を含む可能性がある。代替の実施例においては、構成値は、続いてリセット・ベクトルを取り出すことを前提として、独立したデータ部分として構成値を取り出す。かくして、リセット状態から抜け出した後でリセット・ベクトルを取り出す前に、構成値を検索して、システム内の初期化状態を変更するために用い、リセット・ベクトルの取出や、それに続くその他のメモリおよび他の動作がより効率的に実行されるようにする。このような技術を採用する方法を示す流れ図を図６に示す。
【００４８】
段階６０２において、処理システムをリセット状態のままにするリセット信号がネゲートされたか否かが判定される。リセット信号がネゲートされた場合は、方法は段階６０４に進む。段階６０４は、ハードウェアが所定の状態に初期化される点で図５の段階５０４と類似のものである。
【００４９】
段階６０６において、構成値アドレスが生成される。段階６０８において、構成値アドレスを用いて、メモリから構成値を検索する。構成値は、リセット信号のネゲーション後に他のいずれかのバスにアクセスする前に始動される格納装置（メモリ構造の１つ）に対するバス・アクセスを用いて検索される。構成値の検索は、CPU４１２またはメモリ・インタフェース４１６により実行される。構成値には、その初期化状態から改変されるパラメータの数に応じて、単独のデータ・バイトまたは複数のデータ・バイトを含む。構成値が複数のバイトを含む場合は、図２および図４においてリセット・ベクトルを取り出すために用いられたのと同様のアドレス法が利用されると、様々な異なる潜在的メモリ構成に対応する場合に、処理システムがリセットから確実に抜け出すことができる。
【００５０】
段階６１２において、構成値を構築する検索された１つ以上のデータ・バイトが検証される。段階６１４において、決定が構成値の制御部に基づく場合に実行する必要のある条件付き更新が存在するか否かが判定される。制御部により一定の条件付き更新が行われることが示されると、方法は段階６１６に進む。条件付き更新を行わない場合は、方法は、段階６１６を迂回して、直接６１８に進む。
【００５１】
段階６１６において、パラメータに対して行われる条件付き更新が実行される。段階６１８において、無条件の、あるいは制御部における特定の状態に依存しない更新も実行される。かくして、段階６１６，６１８は、種々のパラメータを構成し、それらの状態が初期化段階６０４において設定された状態から改変される。これは、図７に示される制御レジスタ内で検索された構成値の少なくとも一部分を格納することによって実行される。好ましくは、パラメータ構成は、構成値の初期検索に続く追加のバス・アクセスに先立って行われる。
【００５２】
種々のパラメータが改変されてシステムが構成されると、方法は段階６１９に進み、ここで、種々のパラメータに関して新たに更新された値を用いて、リセット除外ハンドラ・ルーチンのアドレスが取り出される。かくして、段階６１６，６１８で更新されるパラメータにリセット除外ハンドラのアドレスが格納されるメモリをアドレス指定するために用いられるチップ選択レジスタに対応するパラメータが含まれる場合は、段階６１９で行われる取出は、当初の初期化設定に基づいて可能であったものよりも、さらに効率的な方法で行われることになる。段階６２０において、メモリ読込動作を含むバス・サイクルを介してリセット除外ハンドラ・ルーチンが検索され、段階６１９で検索されたアドレスに基づいて実行される。段階６２０で行われる取出および実行は、修正されたパラメータ値を利用して行われることもある。このパラメータ値には、データ幅，バイト順序，必要な待機状態数またはシステムに含まれるメモリに対応するその他のバス・タイミング特性が含まれる。パラメータを構成することにより、取出および実行を、これらのパラメータの当初の初期化値で可能であるよりも効率的な方法で行うことができる。
【００５３】
他の実施例では、構成値に基づき構成されるパラメータは、処理システムに含まれるデバッグまたはエミュレーション機能に関連するものを含む。そのため、デバッグまたはエミュレーション機能は、リセット状態脱出直後に可能化または不能化することができ、このような機能の用途が強化される。
【００５４】
図７は、データ処理システムに含まれる種々のパラメータを構成するために構成値を利用する場合のブロック図を示す。構成値７１０は、リセット・ベクトルとは関連しない単独の値として図示されるが、これは図３の構成値３１０の場合とは異なる。かくして、構成値７１０は処理システムのリセット・ベクトルを取り出す前にメモリから取り出される。
【００５５】
図３の構成値３１０の場合と同様に、図７の構成値７１０には、データ部と制御部とが含まれる。図示されるように、図７の構成値７１０のデータ部はデータ部分７１２〜７１８を含む。これらのデータ部分は、制御レジスタ３５０の種々のパラメータＡ〜Ｃ３５２〜３５６を構成するために利用され、また制御レジスタ３５０の外側に位置する他のシステム制御パラメータ７６２を構成するためにも用いられる。パラメータＡ〜Ｃは、特定のチップ選択制御レジスタまたはデバッグまたはエミュレーション動作を伴う制御レジスタに関して説明される種々のパラメータであることに留意されたい。構成値７１０のパラメータ制御部分７２０を用いて、システム内の種々のパラメータに対する一定の更新を実行するか否かを決定することができる。かくして、種々のパラメータに対する更新は、構成値７１０の制御部により制御されるように条件付きの方法で行うことができるものもある。
【００５６】
図８は、データ処理システム８００を示す。このデータ処理システムは、３つの異なる可能なメモリ構成のうち１つ以上の構成に結合されるプロセッサ８１０を備えて図示される。かくして、プロセッサ８１０は、３２ビット・メモリ８４０，１６ビット・メモリ８５０および８ビット・メモリ８６０のうちいずれかに結合される。図４のプロセッサ４１０の場合と同様に、プロセッサ８１０は、制御レジスタ８１４を備えるCPU８１２，制御レジスタ８１８を備えるインタフェース・ブロック８１６および制御レジスタ８２２を備える追加論理ブロック８２０を有する。図示されるように、CPU８１２は、メモリに対するアクセスをCPUに提供するインタフェース・ブロック８１６に動作状態に結合される。追加論理８２０は、CPU８１２およびインタフェース・ブロック８１６のうち１つ以上と動作可能に結合される。
【００５７】
各メモリ８４０，８５０，８６０に関して図示されるように、構成情報８６２は、種々のメモリ構成の各々の中の同一アドレスを介してアクセスされる位置に格納される。さらに詳しくは、図示される例については、アドレス０ｘ００を用いて、種々のメモリ構造のいずれかから構成情報を検索することができる。この場合、データ線３１：２４は、選択されたメモリからの構成情報により駆動される。
【００５８】
８ビット・メモリ８６０の構成情報は、好ましくは、インタフェース・ブロック８１６が、８ビット・メモリ８６０がデータ処理システムに含まれることを認識するよう構成されるようなパラメータ設定を含む。そのため、８ビット・メモリ８６０への後のメモリ動作を、メモリの構成に適するように調整することができる。そのため、リセット・ベクトル・データ・バイトＴ，Ｕ，Ｖ，Ｗを含むリセット・ベクトルを、８ビット・メモリ８６０により連続するメモリ・アドレスに格納することができ、これらの連続するメモリ・アドレスは、インタフェース・ブロック８１６によりアクセス可能である。
【００５９】
それに対して、１６ビット・メモリ８５０は、インタフェース・ブロック８１６に対して、１６ビット・メモリがデータ処理システム８００に含まれることを知らせる自身の構成情報８５２を含むことが好ましい。そのため、リセット・ベクトルに対応するデータ・バイトを１６ビット・メモリ８５０内で２つの１６ビット・ハーフ・ワードに配列することができ、インタフェース・ブロック８１６は、そのフォーマットでリセット・ベクトルを検索および利用することができる。
【００６０】
データ処理システム８００に含まれる場合は、３２ビット・メモリ８４０も、インタフェース・ブロック８１６が３２ビット・データ８４０がデータ処理システム８００に含まれることを認識するようなパラメータ設定を含むそれ独自の構成情報８４２の集合を備えることが好ましい。そのため、３２ビット・メモリ８４０に対する単独のワード・アクセスを用いて、リセット・ベクトルを検索し、リセット除外ルーチンを実行することができる。構成情報をリセット・ベクトルに先立って検索することができるようにすることで、構成情報に含まれるパラメータ設定をリセット・ベクトルの検索に利用することができるので、検索はデータ処理システムに含まれるメモリ構造に最も適した方法で実行されることに注目されたい。
【００６１】
前記の説明において、本発明は特定の実施例に関して解説された。しかし、添付の請求項に明記される本発明の範囲から逸脱することなく、種々の修正および変更が可能であることが当業者には理解頂けよう。よって、仕様および図面は、制約するためのものでなく説明的なものであると見なされるべきであり、このような変更のすべては本発明の範囲内に含まれるものとする。
【００６２】
利点，他の長所および問題に対する解決策が、特定の実施例に関して上記に解説された。しかし、利点，長所および問題解決策と、利点，長所および問題解決策を実行するあるいは、より顕著なものとする要素は、請求項の一部または全部の決定的，所要のあるいは基本的特徴または要素として解釈すべきではない。本明細書で用いられる「によって構成される（comprises）」「によって構成されている（comprising）」またはその変形は、非排他的包含を意図するものであり、要素の一覧を構成するプロセス，方法，物品または装置がその要素だけを含むものではなく、明確に記載されない、あるいはこのようなプロセス，方法，物品または装置に固有の他の要素を含むこともある。
【図面の簡単な説明】
本発明は、添付の図面において例をあげ、しかし、それに制約されずに説明される。図面内では、同様の参照記号は類似の要素を示す。
【図１】従来技術による処理システムのブロック図である。
【図２】本発明のある実施例によるリセット・ベクトル・アドレスを格納する種々のメモリ構成のブロック図である。
【図３】本発明のある実施例による制御レジスタ構成に利用される取り出されたリセット・ベクトル値のブロック図である。
【図４】本発明のある実施例によるデータ処理システムのブロック図である。
【図５】本発明のある実施例によりデータ処理システムを構成する方法の流れ図である。
【図６】本発明のある実施例によりデータ処理システムを構成する代替法の流れ図である。
【図７】本発明のある実施例により処理システム内に制御レジスタを構成するために用いられる構成値のブロック図である。
【図８】本発明の別の実施例によるデータ処理システムのブロック図である。図面内の要素は、簡単明瞭に図示されており、必ずしも同尺に描かれないことは当業者には理解頂けよう。たとえば、図面内のある要素の寸法は、本発明の実施例の理解を高めるために他の要素に対して誇張されている場合がある。
【符号の説明】
４００  データ処理システム
４１０  プロセッサ
４１４，４１８，４２２  制御レジスタ
４１６  インタフェース・ブロック
４２０  追加論理
４４０  ３２ビット・メモリ
４５０  １６ビット・メモリ
４６０  ８ビット・メモリ
Ｂ  制御バス
【図１】
0004271843.tif 000002
【図２】
0004271843.tif 000003
【図３】
0004271843.tif 000004
【図４】
0004271843.tif 000005
【図５】
0004271843.tif 000006
【図６】
0004271843.tif 000007
【図７】
0004271843.tif 000008
【図８】
0004271843.tif 000009