(57)【特許請求の範囲】
【請求項１】
処理要素が、該処理要素と周辺装置モジュールとの間でｘビットワイドデータ値のデータ転送を実行するようにする機械読み出し可能コードを実行するように適合された処理要素であって、前記データ転送を実行することは、前記処理要素によって、第１読み出し／書き込み信号の状態を設定することによって前記データ転送を開始し、単一の処理要素により供給されたアドレスを前記処理要素とバス制御器との間の第１のアドレスバスに提供し、且つｘビットワイドデータ値を第１のデータバス上で前記バス制御器と交換することを含み、前記単一の処理要素により供給されたアドレスが、前記周辺装置モジュールのｙビットワイドデータレジスタに対応し、ここでは、ｙはｘより小さい、処理要素；並びに
前記第１読み出し／書き込み信号及び前記単一の処理要素により供給されたアドレスを受信し、その受信することに応答して、第２のデータバス上で前記周辺装置モジュールと共に一連の複数のｙビットワイドデータ転送を実行するともに、第１のデータバス上で前記処理要素と共に単一のｘビットワイドデータ転送を行うことによって、前記処理要素と前記周辺装置モジュールとの間でｘビットワイドデータ値を交換するように適合されたバス制御器であって、前記一連の複数のｙビットワイドデータ転送を実行することは、前記バス制御器によって、第２読み出し／書き込み信号の状態を設定することによって前記周辺装置モジュールと共に前記一連の複数のｙビットワイドデータ転送を開始し、前記バス制御器と前記周辺装置モジュールとの間の第２のアドレスバス上で前記一連の複数のｙビットワイドデータ転送のうちの第１データ転送についての第１周辺装置アドレスを提供するとともに、第１のｙビットワイドデータ値を第２のデータバス上で前記周辺装置モジュールと交換し、且つ前記一連の複数のｙビットワイドデータ転送の他のデータ転送の各々についての異なる複数の周辺装置アドレスを第２のアドレスバス上で連続的に提供するとともに別のｙビットワイドデータ値を第２のデータバス上で前記周辺装置モジュールと交換することと、を含み、前記一連の複数のｙビットワイドデータ転送は、前記周辺装置モジュールと共にｘ／ｙ順次データ転送を含む、バス制御器；
を有する電子システムであって：
前記周辺装置モジュールは、前記第１周辺装置アドレスを前記ｙビットワイドデータレジスタにマッピングし、前記異なる複数の周辺装置アドレスも前記ｙビットワイドデータレジスタにマッピングするように構成されている；
電子システム。
【請求項２】
請求項１に記載の電子システムであって、前記周辺装置モジュールは：
第２のデータバスに動作可能に結合されたｙビットワイドの第１データレジスタ；及び
第２のアドレスバスに動作可能に結合され、前記第１データレジスタの全て又は同じ部分に複数の異なるアドレスオフセットをマッピングするように構成されているアドレスデコード論理；
を有する、電子システム。
【請求項３】
請求項１に記載の電子システムであって、前記データ転送は、前記周辺装置モジュールに前記ｘビットワイドデータ値を書き込むライトデータ転送を含み、前記処理要素は、前記バス制御器に前記ｘビットワイドデータ値を供給するように更に適合されている、電子システム。
【請求項４】
請求項１に記載の電子システムであって、前記データ転送は、前記周辺装置モジュールから前記ｘビットワイドデータ値を読み出すリードデータ転送を含み、前記バス制御器は、前記周辺装置モジュールから複数のｙビットワイドデータ値を読み出し、前記複数のｙビットワイドデータ値から前記ｘビットワイドデータ値を構築し、前記ｘビットワイドデータ値を前記処理要素に供給する、電子システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の手段の実施形態は、複数の周辺装置モジュールのレジスタにアクセスする方法及び装置に関し、特に、より広いビット幅の処理要素が周辺装置モジュールのより狭いビット幅のデータレジスタにアクセスする方法及び装置に関する。
【背景技術】
【０００２】
典型的な処理アーキテクチャは、プロセッサコアと周辺装置モジュールのデータレジスタとの間のデータの転送をもたらすソフトウェア命令を実行するように適合された処理要素（プロセッサコア）を有する。ある場合には、アーキテクチャは、より広いビット幅のプロセッサコアとより狭いビット幅のデータレジスタを伴う周辺装置モジュールとを有することが可能である。例えば、特定の処理アーキテクチャは、周辺装置モジュールの８ビットワイド書き込みレジスタに複数の３２ビットデータ値を書き込むソフトウェアを実行することができる３２ビットプロセッサコアを有するようにデザインされることが可能である。そのような場合には、そのソフトウェアは、３２ビットデータ値を４つの８ビットバイトに分解することが可能であり、周辺装置モジュールアドレスへの１バイトの各々の４つの連続的なライトデータ転送を実行することが可能である。同様に、８ビットワイド読み出しレジスタを有する周辺装置モジュールレジスタから３２ビットデータ値を読み出すように、ソフトウェアは、周辺装置モジュールアドレスから１バイト各々の４つの連続的なリード（ｒｅａｄ）データ転送を実行することが可能であり、３２ビットデータ値を生成するように４つのバイトを連結することが可能である。
【０００３】
各々のアクセス命令は、複数のプロセッサコアサイクルを消費し、それ故、より広いビット幅のプロセッサコアとより狭いビット幅のデータレジスタとの間でデータを転送するように複数のアクセスを実行することは、本質的に非効率である。しかしながら、特定のデザインパラメータ（例えば、新しいプロセッサコア及びより古いプロセッサコアで実行されるソフトウェアのための後方互換性と、例えば、より狭いビット幅のデータレジスタを有する周辺装置モジュールの比較的小さい物理的サイズ）は、より狭いビット幅のデータレジスタを有するスレーブ周辺装置モジュールをより広いビット幅のプロセッサコアを有する処理アーキテクチャに組み込むようにアーキテクチャディベロッパを強い続けている。処理アーキテクチャ性能を向上させる場合、必要なものは、周辺装置モジュールのより広いビット幅のプロセッサコアとより狭いビット幅のデータレジスタとの間のより効率的なデータ転送を可能にするように適合された方法及び装置である一方、それは、新しいプロセッサコア及びより古いプロセッサコアで実行されることが可能であるソフトウェアのための後方互換性を提供する。
【発明の概要】
【課題を解決するための手段】
【０００４】
以下に詳述する実施形態は、種々の種類の周辺装置モジュールにおけるデータレジスタからデータを読み出す及び／又はデータレジスタにデータを書き込む方法及び方法を含む。以下に説明するように、ｙビットのプログラミングモデル資源（例えば、データレジスタ）及びｘビット処理要素を有する周辺装置モジュールを伴う電子システム（例えば、チップ）構成について、周辺装置モジュールにおいてマッピングされる更なるｘビットプログラミングモデル位置を既存のｙビットプログラミングモデル資源に含める実施形態を用いて、システム性能が改善され、ここでは、ｘはｙより大きい。例えば、ｙ＝８及びｘ＝３２であるシステムにおいては、実施形態に従って、周辺装置モジュールのプログラミングモデルにおける１つ又はそれ以上の３２ビット位置を含むことにより従来のシステムに比べて改善された周辺装置性能が得られ、新しい３２ビット位置が、既存の８ビットプログラミングモデル資源に対して周辺装置モジュールによりマッピングされる。
【図面の簡単な説明】
【０００５】
【図１】例示としての実施形態に従った、電子システムの簡略化されたブロック図を示す図である。
【図２】例示としての実施形態に従った、周辺装置モジュールの簡略化されたブロック図を示す図である。
【図３】例示としての実施形態に従った、周辺装置モジュールデータレジスタに書き込む方法のフロー図である。
【図４】例示としての実施形態に従った、周辺装置モジュールデータレジスタに書き込む方法のフロー図である。
【図５】例示としての実施形態に従った、巡回冗長調査（ＣＲＣ）モジュールの簡略化されたブロック図である。
【図６】例示としての実施形態に従った、ＣＲＣ値を生成することに関連付けて実行されるライトデータ転送及びリードデータ転送に関連する種々の信号のためのタイミング図である。
【発明を実施するための形態】
【０００６】
種々の実施形態は、複数のシステムアーキテクチャの何れかにおいて実行されることが可能であり、図１は、特定の例示としての実施形態に従った、電子システム１００の簡略化したブロック図である。図１の例示としての実施形態が示しているように、周辺装置モジュールにおけるデータレジスタにアクセスする電子システムは、プロセッサコア（例えば、プロセッサコア１０２）を処理要素として有することが可能である。他の電子システムの実施形態は他の種類の処理要素を有することが可能であり、“処理要素”は、処理要素と周辺装置モジュールとの間でデータ転送を開始するソフトウェア命令を実行するように適合されたプログラマブルハードウェアモジュールとして規定されることが可能である。例えば、処理要素は、プロセッサコア、非コア処理要素、直接メモリアクセス（ＤＭＡ）ユニット、及び／又は処理要素と周辺装置モジュールとの間のデータ転送を開始するソフトウェア命令を実行するように適合され且つプログラマブルである他のハードウェアモジュールを含む群から選択されるハードウェアモジュールであることが可能である。従って、ここでは、図及び本明細書においては、電子システムがプロセッサコアを有する実施形態について説明されているが、それらの実施形態の範囲が他の種類の処理要素を有する電子システムを含むことを理解される必要がある。
【０００７】
ここで、図１及び特定の例示としての実施形態を参照するに、電子システム１００は、１つ又はそれ以上のプロセッサコア１０２（又は他の処理要素）、１つ又はそれ以上のシステムバス制御器１０４、システムバス１０６、１０７、１つ又はそれ以上の周辺装置モジュール１２２、１２３、１２４、周辺装置バス１２６、割り込みコントローラ周辺装置モジュール１３４、及び／又は１つ又はそれ以上のメモリブロック（例えば、フラッシュアレイ１５０及びランダムアクセスメモリ１５２）を有する。電子システム１００は、単独のプロセッサコア１０２を有するとして示されているが、電子システムは、他の実施形態においては、複数のプロセッサコアを有することが可能である。更に、３つの周辺装置モジュール１２２−１２４が例示されているが、電子システムは、他の実施形態においては、それより多くの又は少ない周辺装置モジュールを有することが可能である。
【０００８】
プロセッサコア１０２は、種々の実施形態において、例えば、マイクロコントローラコア、マイクロプロセッサコア、又はディジタル信号プロセッサ（ＤＳＰ）コアを有することが可能である。プロセッサコア１０２は、種々の実施形態において、ｘビットワイドデータバス又はそれより広いビットワイドデータバスと接続することが可能である。特定の実施形態においては、プロセッサコアは３２ビットコア（即ち、ｘ＝３２）であるが、プロセッサコア１０２は、他の実施形態においては、８ビット幅、１６ビット幅、６４ビット幅、１２８ビット幅又は他のビット幅のプロセッサコアであることが可能である。
【０００９】
プロセッサコア１０２は、システムバス１０６、１０７を介して他のシステム構成要素と動作可能であるように結合され、それらのシステムバスは、アドレスバス１０８、１０９、リード（ｒｅａｄ）データバス１１０、１１１、及びライト（ｗｒｉｔｅ）データバス１１２、１１３を有する。実施形態においては、システムバスのプロセッサコア側１０６は、かなりの変更なしにシステムバス制御器１０４を通過することが可能であり、従って、そのプロセッサコア側１０６及びメモリブロック側１０７は、実質的に同様に構成され且つ動作することが可能である。他の実施形態においては、システムバスのプロセッサコア側１０６の構成及び／又は動作はメモリブロック側１０７の構成及び／又は動作と異なることが可能であり、システムバス制御器１０４は変更を実行することが可能である（例えば、システムバス制御器１０４は、他のバスプロトコルへの変換を実行することが可能であり、及び／又は、特に、動作周波数を変更することが可能である）。システムバスのプロセッサコア側１０６とメモリブロック側１０７とにおける違いが存在することが可能であるが、それらは、説明の簡略化のために、システムバス１０６、１０７として集合的に表され、それら両側に関連するリード（ｒｅａｄ）バス、ライト（ｗｒｉｔｅ）バス及びアドレスバスもまた、集合的に表されることが可能である。実施形態においては、リードデータバス１１０、１１１及びライトデータバス１１２、１１３の各々はｘビットワイドデータバスであるが、それらは、他の実施形態においては、より広いビット幅のデータバスであることが可能である。更に、システムバス１０６、１０７は、読み出し／書き込み制御信号線（例えば、読み出し状態及び書き込み状態を有する読み出し／書き込み信号を供給する）、バスクロック線（例えば、システムバスクロック信号を供給する）、転送サイズ信号線、及び／又は待機信号性（例えば、バス転送多岐信号を搬送する）等の種々の制御線（図示せず）を有することが可能である。
【００１０】
プロセッサコア１０２は、特に、システムバス１０６、１０７に亘って、プロセッサコア１０２がデータアクセス要求（例えば、読み出し要求及び書き込み要求）を発行することを可能にするソフトウェア命令（例えば、機械読み出し可能コード）を実行するように適合される。データアクセス要求の発行においては、メモリブロック１５０、１５２又は周辺装置モジュール１２２−１２４における位置を指定する、アドレスバス１０８、１０９にアドレスを供給するプロセッサコア１０２を有する。書き込みタイプのデータアクセス要求については、プロセッサコア１０２はまた、システムバス１０６、１０７のライトデータバス１１２、１１３にデータ値を供給する。読み出しタイプのデータアクセス要求については、プロセッサコア１０２は、システムバス１０６、１０７のリードデータバス１１０、１１１からデータ値を読み出す。下記で更に詳細に説明するように、複数の実施形態において、プロセッサコア１０２により実行されるソフトウェアが、より少ないアクセス命令（例えば、書き込み命令、読み出し命令及び／又は移動命令）を用いて、周辺装置モジュール１２２−１２４にアクセスすることを可能にする。従って、そのようなアクセスは、従来の方法より効率的な手法で（例えば、バイト当たりより少ないプロセッササイクルで）実行されることが可能である。
【００１１】
システムバス制御器１０４は、システムバス１０６、１０７に亘って、プロセッサコア１０２と種々の種類のメモリブロックとの間で転送されるデータの流れを管理するように適合される。それらのメモリブロックは、例えば、フラッシュメモリアレイ１５０（Ｆｌａｓｈ）及びスタティックＲＡＭ等のランダムアクセスメモリ１５２（ＲＡＭ）を有することが可能である。付加的に又は代替として、システム１００は、電気的消却可能なプログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）等の読み出し専用メモリ及び／又は他の種類のメモリブロックを有することが可能である。
【００１２】
実施形態においては、システムバス制御器１０４は、周辺装置バス制御器１２０を有する、及び／又は周辺装置バス制御器１２０に動作可能であるように結合される。周辺装置バス制御装置１２０は、ｘビットワイドシステムバス１０６、１０７とｚビットワイド周辺装置バス１２６との間のインタフェースを提供するように適合されている。特に、周辺装置バス制御器１２０は、システムバス１０６、１０７と、種々の種類の周辺装置モジュール１２２−１２４及び／又は周辺装置バス１２６に動作可能であるように結合された他のシステム構成要素との間のデータの流れを管理するように適合されている。システムバス制御器１０４は、典型的には、２つの基本的な機能を提供する。第１の機能は、プロセッサコア１０２からのアクセスのトラフィックフローを管理することと、適切なバスインタフェースへのデータ転送要求をルーティングすることとを有する。例えば、これは、システムバス１０７と接続するシステムバス制御器１０４における論理にデータ転送要求をルーティングすること、又は周辺装置バス制御器１２０にデータ転送要求をルーティングすることを有することが可能である。システムバス制御器１０４の第２の機能は、システムバス１０７のためのバスインタフェースを実行することを有する。同様に、周辺装置バス制御器１２０は、周辺装置バス１２６のためのバスインタフェースを実行する。実施形態においては、周辺装置制御器１２０はまた、下記で詳細に説明するように、プロセッサからのｘビットデータアクセスの周辺装置バス１２６についての一連のｚビットワイドデータアクセスへのハードウェア分解を処理し、ここでは、ｚはｘより小さい。
【００１３】
周辺装置バス１２６は、周辺装置バス制御器１２０と周辺装置モジュール１２２−１２４との間に動作可能であるように結合される。実施形態においては、周辺装置バス１２６は、アドレスバス１２８、リードデータバス１３０及びライトデータバス１３２を有する同期式の非多重化バスである。代替の実施形態においては、リードデータバス１３０及びライトデータバス１３２は、周辺装置バスデータ線が双方向データバス線として動作されるときに、同じ物理データバスとして実行されることが可能である。実施形態においては、リードデータバス１３０及びライトデータバス１３２の各々はｚビットワイドデータバスである（即ち、リードデータバス１３０はｚリードデータ線を有し、ライトデータバス１３２はｚライトデータ線を有する）。周辺装置バス１２６はまた、書き込み／読み出し制御信号線（例えば、読み出し状態及び書き込み状態を有する読み出し／書き込み信号を提供する）、バスクロック線（例えば、周辺装置バスクロック信号を提供する）、転送サイズ信号線、及び／又は待機クロック線（例えば、バス転送待機信号を搬送する）等の種々の制御線（図示せず）を有することが可能である。１つ又はそれ以上の周辺装置モジュール１２２−１２４は周辺装置バス１２６に動作可能であるように接続されている。周辺装置モジュール１２２−１２４の少なくとも１つは、種々の実施形態に従って、複数のアドレスレジスタマッピングを実行するように適合されているが、一部の周辺装置モジュール１２２−１２４はそのように適合されないことが可能である。下記で更に詳細に説明するように、“複数のアドレスレジスタマッピング”とは、周辺装置モジュール１２２−１２４における単一のリードデータレジスタ及び／又はライトデータレジスタへのアドレスバス１２８（又は、アドレスから導き出されたアドレスオフセット）に供給される複数のアドレスをマッピングする周辺装置モジュール１２２−１２４の能力のことをいう。ここで用いられているように、用語“アドレスオフセット”とは、フルアドレス、フルアドレスの一部（例えば、アドレスの最下位ビットの１つ又はそれ以上）、又はアドレスの他の逸脱のことをいう。周辺装置モジュール１２２−１２４は、例えば、巡回冗長調査（ＣＲＣ）演算モジュール、チェックサム演算モジュール、シリアル周辺装置インタフェース（ＳＰＩ）、汎用非同期受信器／送信器（ＵＡＲＴ）、カウンタ、タイマ、メモリ制御器、ディスプレイ制御器（例えば、液晶ディスプレイ（ＬＣＤ）制御器）、ユーザインタフェース制御器（例えば、キーパッド、タッチスクリーン及び又はポインタ制御器）、割り込み制御器、及びパワーオンリセットジェネレータから選択された何れかの１つ又はそれ以上の周辺装置を有することが可能であるが、それらに限定されるものでない。電子システム１００は、本発明の主題の実施形態と連携する又は連携しない種々の他の周辺装置を有することが可能である。
【００１４】
割り込み制御周辺装置モジュール１３４はまた、周辺装置バス１２６に動作可能であるように結合されている。割り込み制御周辺装置モジュール１３４は、周辺装置モジュール１２２−１２４の一部又は全てから割り込み信号（図示せず）を受信し、プロセッサコア１０２に割り込み線１３６を介して対応する割り込み信号を供給するように適合された一種の周辺装置モジュールである。
【００１５】
種々の代替の実施形態においては、電子システム１００は、上記のように及び図１に示しているものと異なる構成要素を又はそれらに付加する構成要素を有することが可能である。例えば、電子システム１００はまた、特に、１つ又はそれ以上のタイミングソース、外部インタフェース、汎用目的の入力／出力（ＧＰＩＯ）ポート、アナログインタフェース、付加的な又は異なるバス、電圧レギュレータ、及び／又は電力管理回路を有することが可能である。電子システム１００は、実施形態においては、種々のシステム構成要素が単一の集積回路に集積されたシステムオンチップ（ＳｏＣ）として実行されることが可能である。他の実施形態においては、電子装置１００は、単一のパッケージに共にパッケージングされる複数の集積回路に種々のシステム構成要素が集積されたシステムインパッケージ（ＳｉＰ）として実行されることが可能である。他の実施形態においては、種々の構成要素又は構成要素の集合が複数の集積回路に集積され、別個にパッケージングされることが可能である。
【００１６】
図２は、例示としての実施形態に従って、複数のアドレスレジスタマッピングを実行するように適合された周辺装置モジュール２００（例えば、周辺装置モジュール１２２−１２４の１つ、図１）の簡略化されたブロック図である。図２の内容は、種々の実施形態の一般的な説明を提供するように意図されている。実際には、複数の実施形態が、種々の構成の周辺装置モジュールに組み込まれ、種々の機能を有することが可能であり、一部の特定の実施例が、図５乃至７と関連付けて説明されている。従って、図２及びそれに関連する説明は、限定的な意味で理解されるべきでない。
【００１７】
周辺装置モジュール２００は、少なくとも１つのデータレジスタ２０４、２０５、２０６、２０７の１つ又はそれ以上に動作可能であるように結合された周辺装置機能回路２０２を有する。データ値がライトデータレジスタ２０６、２０７に書き込まれる各々のときに、周辺装置機能回路２０２が、後続のデータ値をライトデータレジスタ２０６、２０７に書き込まれる前に、データを処理する又はデータを消費することが可能である。同様に、周辺装置機能回路２０２がデータ値をリードデータレジスタ２０４、２０５に書き込む各々のときに、周辺装置機能回路２０２は、そのデータ値の外部のリードデータ転送が実行されるまで、リードデータレジスタ２０４、２０５に後続のデータ値を書き込むように待機することが可能である。周辺装置機能回路２０２は、実施形態に従って、少なくとも１つのデータレジスタ２０４−２０７からデータを書き込む及び／又はそれらにデータを読み出す。周辺装置機能回路２０２は、特に、データ転送機能及び／又は演算機能を含むことが可能である周辺装置モジュール２００の主な機能を実行するように適合されている。例えば、周辺装置機能回路２０２は、１つ又はそれ以上のライトデータレジスタ２０６、２０７におけるデータに基づいて数学的関数を実行し、１つ又はそれ以上のリードデータレジスタ２０４、２０５（例えば、巡回冗長調査（ＣＲＣ）値を演算する）に結果を供給し、ライトデータレジスタ２０６、２０７からリードデータレジスタ２０４、２０５にデータを転送し、及び／又は複数の他の主な機能の何れかを実行するように適合されることが可能であるが、それらに限定されるものでない。実施形態においては、周辺装置モジュール２００は割り込み要求ジェネレータ２０３を有することが可能であり、周辺装置機能回路２０２は、割り込み要求ジェネレータ２０３が周辺装置バス割り込み信号線２０９において割り込み信号を生成するように適合されることが可能である。例えば、データ（例えば、結果）がリードデータレジスタ２０４、２０５から読み出される準備ができているときに及び／又は周辺装置機能回路２０２がライトデータレジスタ２０６、２０７からデータが供給される準備ができているときに、周辺装置機能回路２０２は割り込まれるようにすることが可能である。
【００１８】
周辺装置モジュール２００はまた、周辺装置バス読み出し／書き込み信号線２３２に存在する読み出し信号／書き込み信号の状態を検出するように適合された読み出し／書き込み信号インタフェース２３０を有する。読み出し／書き込み信号がリードデータ転送を示し、アドレスデコード論理２１６がリードデータレジスタ２０４、２０５に対応するアドレスオフセットを復号化したとき、周辺装置モジュール２００は、周辺装置バスリードデータ線２１０（例えば、リードデータバス１３０、図１）に復号化されたアドレスオフセットに対応するリードデータレジスタ２０４、２０５におけるデータを転送することが可能である。同様に、読み出し／書き込み信号がライトデータ転送を示し、アドレスデコード論理２１６がライトデータレジスタ２０６、２０７に対応するアドレスオフセットを復号化したとき、周辺装置モジュール２００は、周辺装置バスライトデータ線２１４（例えば、ライトデータバス、図１）に存在するデータを、復号化されたアドレスオフセットに対応するライトデータレジスタ２０６、２０７に転送することが可能である。代替の実施形態においては、何れかの１つ又はそれ以上のレジスタ２０４−２０７は、リードデータレジスタ及びライトデータレジスタの両方として機能することが可能である。そのような実施形態においては、リードデータ線２１０とライトデータ線２１４との間の接続は単独のインタフェースに結合される（例示しているような、２つのインタフェース２０８、２１２ではなく）ことが可能であり、データ転送の方向は、リード／ライトデータ信号の状態に従って制御されることが可能である。更に、実施形態においては、上記のように、周辺装置バスリードデータ線２１０及び周辺装置バスライトデータ線２１４は、周辺装置バスデータ線が双方向データバス線として動作されるときに、同じ物理線として実行されることが可能である。
【００１９】
周辺装置モジュール２００はまた、周辺装置バスクロック信号線２３６からクロック信号を受信し、種々の内部動作のタイミング（例えば、演算を実行し、アドレス又はオフセットを復号化する、等のレジスタ２０４−２０７のクロッキングデータ入力又は出力）に影響する１つ又はそれ以上の内部クロックを生成するように適合されるクロックジェネレータ２３４を有する。
【００２０】
周辺装置モジュール２００はまた、１つ又はそれ以上のライトデータレジスタ２０６、２０７を有することが可能であり、それらの各々は、周辺装置バスライトデータ線２１４からバス書き込み線インタフェース２１２により転送されたデータを受信する且つ記憶するように適合されている。同様に、周辺装置モジュール２００はまた、１つ又はそれ以上のリードデータレジスタ２０４、２０５を有することが可能であり、それらの各々は、バス読み出し線インタフェース２０８を介して周辺装置バスリードデータ線２１０にデータを供給する且つ記憶するように適合されることが可能である。実施形態においては、レジスタ２０４−２０７の少なくとも１つはｙビットワイドレジスタであり、ここで、ｙはｘより小さい（即ち、レジスタのビット幅ｙは処理要素及び／又はシステムバス１０６、１０７のビット幅ｘより小さい、図１）。特定の実施形態においては、レジスタ２０４−２０７は８ビットワイドレジスタ（即ち、ｙ＝８）であるが、他の実施形態においては、何れかの１つ又はそれ以上のレジスタ２０４−２０７は、４ビットワイドレジスタ、８ビットワイドレジスタ、１６ビットワイドレジスタ、３２ビットワイドレジスタ又は他のビットワイドレジスタであることが可能である。
【００２１】
図２に示す実施形態においては、周辺装置モジュール２００は、２つのリードデータレジスタ（低リードデータレジスタ２０４及び高リードデータレジスタ２０５）と、２つのライトデータレジスタ（低ライトデータレジスタ２０６及び高ライトデータレジスタ２０７）とを有する。周辺装置モジュール２００が、２つのリードデータレジスタ２０４及び２０５と、２つのライトデータレジスタ２０６、２０７とを有するように示されているが、他の実施形態においては、周辺装置モジュールは、それより多い又は少ないリードデータレジスタ及び／又はライトデータレジスタを有することが可能である。例えば、一部の他の実施形態においては、周辺装置モジュールは、両方でなく、１つ又はそれ以上のリードデータレジスタ又は１つ又はそれ以上のライトデータレジスタのみを有することが可能である。他の実施形態においては、周辺装置モジュールは、単独のリードデータレジスタ及び／又は単独のライトデータレジスタを有することが可能である。他の実施形態においては、送信バッファ（例えば、ファーストインバッファ、ファーストアウトバッファ又はＦＩＦＯバッファ）が、ライトデータレジスタ２０６、２０７のどちらか又は両方と関連付けられることが可能である。従って、各々のライトデータ転送のために、ライトデータレジスタ２０６、２０７における値がバッファに転送されることが可能であり、バッファの他の値が、ライトデータレジスタ２０６、２０７からバッファを介してシフトされることが可能である。同様に、受信バッファ（例えば、ＦＩＦＯバッファ）は、リードデータレジスタ２０４、２０５のどちらか又は両方と関連付けられることが可能である。従って、各々のリードデータ転送のために、バッファからリードデータレジスタ２０４、２０５に値が転送されることが可能であり、バッファにおける他の値がリードデータレジスタ２０４、２０５にシフトされることが可能である。
【００２２】
周辺装置モジュール２００はまた、実施形態においては、アドレスデコード論理２１６を有し、その論理は、周辺装置バスアドレス線２２４からバスアドレス線インタフェース２２２により受信されるアドレスに基づいてアドレスオフセットビット線２２０に存在する信号を復号化するように適合化される。その復号化処理に基づいて、アドレスデコード論理２１６は、バス読み出し線インタフェース２０８がリードデータレジスタ２０４、２０５から周辺装置バス読み出し線２１０にデータを転送するようにすることが可能であり、又は、アドレスデコード論理２１６は、バス書き込み線インタフェース２１２が周辺装置バス書き込み線２１４からライトデータレジスタ２０６、２０７の位置に転送するようにすることが可能である。
【００２３】
実施形態においては、各々のデータレジスタ２０４−２０７は１つ又はそれ以上のアドレスオフセットにマッピングされる。特定の実施形態においては、データレジスタ２０４−２０７の少なくとも１つは、上記のように、複数のアドレスレジスタマッピングを実行するように周辺装置２００を適合し、下記で詳細に説明する複数のアドレスオフセットにマッピングされる。データレジスタ２０４−２０７以外のメモリレジスタは、それらのアドレスオフセットの１つ又はそれ以上にマッピングされることが可能であるが、また、そのような他の資源については、ここでは説明しない。上記のように、アドレスオフセットは、フルアドレス、フルアドレスの一部（例えば、アドレスの最下位ビットの１つ又はそれ以上）、又はアドレスのある他の逸脱のことをいう。例示されている実施形態においては、アドレスオフセットは、アドレス線２２４において受信されることが可能であるアドレスの４つの最下位ビットに対応し、従って、４つのアドレスオフセットビット線２２０は、アドレスデコード論理２１６にアドレスのそれらの４つの最下位ビットを転送するように適合されることが可能である。８つの周辺装置バスアドレス線２２４及び４つのアドレスオフセットビット線２２０が図示されているが、他の実施形態においては、それより多い又は少ない周辺装置バスアドレス線２２４及び／又はアドレスオフセットビット線２２０が含まれることが可能である。図示しているように、４つのアドレスオフセットビット線２２０により、アドレスデコード論理２１６が、１６個の異なるアドレスオフセット（例えば、００００乃至１１１１（２進数）又は０ｘ０乃至０ｘＦ（ここで、“０ｘ”接頭辞は１６進数値を示す）まで復号化することができる。他の実施形態においては、アドレスデコード論理２１６は、それより多い又は少ないアドレスオフセットを復号化するように適合されることが可能である。アドレス復号化は、実施形態においては、有線化されることが可能であり、それ故、不変であることが可能である、又は、他の実施形態においては、固定された又は構成可能なアドレスマップに基づいて、ソフトウェアにおける少なくとも一部において実行可能である。
【００２４】
アドレスオフセット復号化論理（ハードウェア、ソフトウェア又はそれら両方において実行される）はメモリマップとして表されることが可能である。実施形態においては、データレジスタ２０４−２０７の少なくとも１つは複数のアドレスに対してマッピングされることが可能である。本明細書で用いているように、用語“レジスタアドレスオフセットの集合”とは、特定のレジスタにマッピングされる複数のアドレスオフセットの集合のことをいう。特定の実施形態においては、特定のレジスタについての第１アドレスオフセット（即ち、アドレスオフセット０ｘ０）は、ｙビットデータ値を読み出すための処理要素（例えば、プロセッサコア１０２、図１）により特定され、それ故、アドレスオフセットは“ｙビットワイドアクセスアドレスオフセット”と下記で呼ばれる第１アドレスに対応し、その場合、用語“ｙビットワイド”とは、アクセスされたデータの幅のことをいうのであって、ｙビット幅であることが可能であり、そうでないことも可能であるアドレスオフセットの幅のことをいうのではない。特定のレジスタについての１つ又はそれ以上の他のアドレスオフセット（即ち、アドレスオフセット０ｘ４、０ｘ５、０ｘ６及び０ｘ７）は、ｘビットデータ値を読み出す処理要素により特定される第２アドレスに対応することが可能であり、それ故、それらのアドレスオフセットは、“ｘビットワイドアクセスアドレスオフセット”と下でいうことが可能であり、その場合、用語“ｘビットワイド”とは、アクセスされるデータの幅のことをいい、ｘビットワイドであることが可能であり、そうでないことも可能であるアドレスオフセットの幅のことをいうのではない。ｙビットワイドアクセスアドレスオフセット及びｘビットワイドアクセスアドレスオフセットも、又はそれらは代替として、他の実施形態においては、ｙビットデータ値及びｘビットデータ値を読み出すことに対応することが可能である。下記で、テーブル１において周辺装置モジュールメモリマップの実施例の８ビットビューで特定されているように、低リードデータレジスタ２０４が、５つのアドレスオフセット（即ち、オフセット０ｘ０、０ｘ４、０ｘ５、０ｘ６及び０ｘ７）を含むレジスタアドレスオフセットの集合に対してマッピングされ、低ライトデータレジスタ２０６は、５つのアドレスオフセット（即ち、オフセット０ｘ２、０ｘ８、０ｘ９、０ｘＡ及び０ｘＢ）を含むレジスタアドレスオフセットの集合に対してマッピングされる。
【００２５】
【表１】
0005496916.tif 000002
同じ実施例のメモリマップは、下記の表２におけるように、代替として３２ビットビューで表されることが可能である。
【００２６】
【表２】
0005496916.tif 000003
表１及び表２のメモリマップは、例えば、目的のみを提供することが可能であり、複数のメモリマップの変形が存在し得る。表１及び表２のメモリマップから収集されることが可能であるものは、種々の実施形態に従って、アドレスデコード論理２１６が、周辺装置モジュール２００の単独のデータレジスタの全て又は同じ部分に対する複数のアドレスオフセットの集合（例えば、レジスタアドレスオフセットの集合）をマッピングするように適合されているが、アドレスデコード論理２１６はまた、１つ又はそれ以上の他のデータレジスタに複数のアドレスの１つ又はそれ以上の集合をマッピングすることが可能である。
【００２７】
特定の実施形態においては、レジスタアドレスオフセットの集合におけるアドレスオフセットの少なくとも１つは、ｙビットリードデータ転送又はｙビットライトデータ転送に対応することが可能であり、レジスタアドレスオフセットの集合における他のアドレスオフセットの数ｎ（ここで、ｎ＝ｘ／ｙ）は、シーケンシャルアドレスへの一連のｎ個のｙビットワイドデータ転送として実行されるｘビットリード及びライトデータ転送に対応することが可能であり、各々のシーケンシャルアドレスの各々のアドレスはｙビットデータ（例えば、８ビットバイトデータ）に対応するアドレスである。換言すれば、そのような実施形態においては、“他の”アドレスオフセットの各々は、読み出される又は書き込まれるｘビットデータ値のｙビット部分に対応することが可能である。例えば、ライトデータレジスタ２０４が８ビットレジスタであり、処理要素（例えば、プロセッサコア１０２、図１）が低ライトデータレジスタ２０６に８ビットデータ値を書き込む命令を実行する場合、低ライトデータレジスタ２０６（例えば、上記の表１からのアドレスオフセット０ｘ２）にマッピングされる第１アドレスオフセットに対応する周辺装置バスアドレス線２２４においてアドレスが供給されることが可能である。それに対して、処理要素が、ライトデータレジスタ２０６に３２ビットデータ値を書き込む命令を実行する場合、４つのアドレス（即ち、ｎ＝４及びｎ＝ｘ／ｙ＝３２／８＝４）が、他の４つのアドレスオフセットに対応する周辺装置バスアドレス線２２４において供給されることが可能であり、それらの各々は低ライトデータレジスタ２０６（例えば、上記の表１からのアドレスオフセット０ｘ８、０ｘ９、０ｘＡ及び０ｘＢ）にマッピングされる。
【００２８】
下記で更に詳細に説明しているように、ｘビット処理要素（例えば、プロセッサコア１０２、図１）が周辺装置モジュール（例えば、周辺装置モジュール２００）のｙビットデータレジスタ（例えば、レジスタ２０４−２０７）にアクセスするシステムにおいて、単独のレジスタへの複数のアドレスオフセットのマッピングの適合は、従来のシステム及び方法と比べて、より少ない処理命令の実行によって周辺装置モジュールによりｘビットデータ転送を実行することを可能にする。例えば、処理要素から周辺装置モジュールの８ビットレジスタへの３２ビットライトデータ転送について、処理要素は単独の３２ビット書き込み命令を実行することを可能にし、３２ビットデータ値は、周辺装置バス制御器（代替の実施形態においては、例えば、周辺装置バス制御器１２０、図１又はバス制御器１０４）により、単独の８ビットレジスタにマッピングされた４つのアドレスオフセットに対応する４つの周辺装置モジュールアドレスに対する４つの８ビットライトに分解されることが可能である。実施形態においては、４つの周辺装置モジュールアドレス及び４つのアドレスオフセットは、連続的なアドレス及びアドレスオフセットであるが、それらは、他の実施形態においては、非連続的であることが可能である。処理要素が３２ビットデータ値を書き込む４つの８ビット書き込み命令を実行する従来の方法に代えて、処理要素は、４つの書き込み命令より少ない命令（例えば、単独の３２ビット書き込み命令又は２つの１６ビット書き込み命令）を実行することが可能である。これは、３２ビットライトデータ転送を終了するように消費されるプロセッササイクルの数をかなり減少させることを可能にする。
【００２９】
ライトデータ転送及びリードデータ転送を実行する方法の実施形態については、図３及び４のそれぞれに関連付けて詳細に説明されている。図１及び２の種々の要素が、図３及び４の方法の説明において、明確化のために、言及されているため、図３及び４は、図１及び２に関連付けてみる必要がある。
【００３０】
先ず、ライトデータ転送を実行する実施形態の説明を参照するに、図３は、例示としての実施形態に従って、周辺装置モジュール（例えば、周辺装置モジュール２００）のデータレジスタに書き込む方法のフロー図である。特に、その方法は、メモリ（例えば、フラッシュアレイ１５０又はＲＡＭ１５２）から３２ビットデータ値をフェッチし、周辺装置モジュール（例えば、周辺装置モジュール２００）の８ビットライトデータレジスタ（例えば、低ライトデータレジスタ２０６）に３２ビットデータ値を書き込む、３２ビット処理要素（例えば、プロセッサコア１０２）に対応する。他の実施形態においては、異なるビット幅の処理要素が異なる幅のデータ値をメモリからフェッチすることが可能であり、異なる幅のライトデータレジスタにそのデータ値を書き込むことが可能である。
【００３１】
その方法は、処理要素がメモリから３２ビットデータ値をフェッチする１つ又はそれ以上のソフトウェア命令を実行するときに、ブロック３０２において開始されることが可能である。例えば、処理要素（例えば、プロセッサコア１０２）は、システムバス１０６、１０７の読み出し／書き込み信号の状態を読み出し状態に設定することが可能であり、システムバス１０６、１０７のアドレスバス１０８、１０９においてアドレスを提供することが可能であり、その場合、そのアドレスは、フラッシュアレイ１５０又はＲＡＭ１５２におけるメモリ位置に対応している、処理要素は、その場合、リードデータバス１１０、１１１から利用可能なときに３２ビットデータ値を読み出すことが可能であり、１つ又はそれ以上のレジスタ若しくは他のメモリ位置に３２ビットデータ値を記憶することが可能である。
【００３２】
ブロック３０４においては、処理要素は、周辺装置モジュールの８ビットライトデータレジスタに３２ビットデータ値を書き込む１つ又はそれ以上のソフトウェア命令を実行することが可能である。ブロック３０２のフェッチ命令及びブロック３０４の書き込み命令は、メモリ位置（例えば、フラッシュアレイ１５０又はＲＡＭ１５２における）から周辺装置モジュールの８ビットライトデータレジスタに、３２ビットデータ値が移動される必要があることを指定する単独の移動命令に小さくされる（ｃｏｌｌａｐｓｅｄ）ことが可能である。何れかのイベントにおいては、処理要素は、システムバス１０６、１０７の読み出し／書き込み信号の状態を書き込み状態に設定することが可能であり、周辺装置モジュールにより、周辺装置モジュールの８ビットライトデータレジスタに対してマッピングされる第１アドレスオフセット（例えば、上記のテーブル１からのアドレスオフセット０ｘ８）に対応するアドレスバス１０８、１０９においてアドレスを提供することが可能である。更に、処理要素は、周辺装置バスのライトデータバス１１２、１１３において３２ビットデータ値を供給する。
【００３３】
ブロック３０６においては、周辺装置バス制御器（例えば、周辺装置バス制御器１２０、図１）はアドレス及び３２ビットデータ値を受信し、１つ又はそれ以上のレジスタにその３２ビットデータ値を一時的に記憶することが可能である。実施形態においては、バス制御器１２０は一連のｚビットワイドデータ転送を実行し、ここで、ｚは周辺装置バス１２６のライトデータバス１３２の幅である。説明の簡略化のために、この実施例においては、ライトデータバス１３２が、周辺装置モジュールのライトデータレジスタ（例えば、低ライトデータレジスタ２０６）と同じビット幅を有することを前提としている。従って、この実施例においては、ｚ＝８である。ライトデータバス１３２の幅は、ライトデータレジスタの幅より小さいことが可能であり（例えば、ｚは、種々の実施形態において、ｙに等しい又はそれより小さいことが可能であり）、その場合、システムバス制御器１０４及び／又は周辺装置バス制御器１２０は、ライトデータレジスタにｙビットデータ値を書き込むように、複数のライトデータ転送を実行することが可能である。
【００３４】
ｚ＝８である実施例を継続するに、各々のライトデータ転送は、書き込む次の８ビットデータ値を特定することと、周辺装置モジュールにおいて、単独のライトデータレジスタに対してマッピングされる複数のライトデータレジスタアドレスの１つを用いて、８ビットライトデータ転送を実行することとを有する。例えば、最初のライトデータ転送について、３２ビットデータ値の特定のバイトが書き込まれる第１バイトとして選択されることが可能であり、バス制御器１２０は、周辺装置モジュールのライトデータレジスタにマッピングされる第１ライトデータレジスタアドレスを用いることが可能である。実際のライトデータ転送は、周辺装置バス１２６の読み出し／書き込み信号の状態を書き込み状態に設定することと、周辺装置バス１２６のライトデータバス１３２に３２ビットデータ値の第１バイトを供給することと、周辺装置バス１２６のアドレスバス１２８において第１ライトデータレジスタアドレスを提供することとを有することが可能であるが、その順序にする必要はない。
【００３５】
ブロック３０８においては、周辺装置モジュールは、アドレスバス１２８における第１ライトデータレジスタアドレス及びライトデータバス１３２における第１バイトと共に読み出し／書き込み信号を受信する。周辺装置モジュールのアドレスデコード論理２１６は、第１アドレスにおいて示されたアドレスオフセットをライトデータレジスタ２０６にマッピングし、第１バイトはライトデータレジスタ２０６に転送され、周辺装置機能回路２０２により処理されることが可能である。例えば、上記の表１も参照するに、第１アドレスにおいて示されたアドレスオフセットは、低ライトデータレジスタ２０６にマッピングされた４つの連続的なアドレスオフセットの１つである０ｘ８のオフセットであることが可能である。
【００３６】
ブロック３０６に後続して即座に及び／又はブロック３０８の実行と平行して、バス制御器１２０は、３２ビットデータ値の８ビットデータ値が書き込まれたか、又はライトデータレジスタ２０６に書き込まれているかを判定することが可能である。最後の値が書き込まれたとき（即ち、バス制御器１２０が３２ビットデータ値の全ての４バイトの書き込みを終了したとき）、その方法は終了することが可能である。最後の値が書き込まれたとき、その方法は、バス制御器１２０が一連の中の次の８ビットワイドデータライトデータ転送を実行するブロック３０６に戻ることが可能である。例えば、第２ライトデータ転送については、３２ビットデータ値の異なるバイトが、書き込まれる第２バイトとして選択されることが可能であり、バス制御器１２０は、周辺装置モジュールのライトデータレジスタ（例えば、上記の表１の０ｘ９のオフセットに対応するライトデータレジスタアドレス）にマッピングされた第２ライトデータレジスタアドレスを用いることが可能である。また、ライトデータ転送は、周辺装置バス１２６の読み出し／書き込み信号の状態を書き込み状態に設定することと、周辺装置バス１２６のライトデータバス１３２に第２バイトを抽出して供給することと、周辺装置バス１２６のアドレスバス１２８において第２ライトデータレジスタアドレスを提供することとを有することが可能であるが、その順序にする必要はない。この繰り返し処理は、記憶されている３２ビットデータ値の全ての４バイトがライトデータレジスタ２０６に書き込まれるまで続くことが可能である。
【００３７】
本発明の主題の実施形態を実行することに対する潜在的な有利点は、従来の方法に比べて、周辺装置モジュールのｙビットワイドレジスタにｘビットワイドデータ値を書き込み、周辺装置モジュールからｘビットワイドデータ値を読み出すために（ここで、ｘはｙより大きい）、処理要素はより少ない命令を実行することが可能であることである。従って、データにアクセスするのに、消費されるプロセッササイクルはより少なくて済むのである。例示としてのコードが下記に示され、そのコードは、フラッシュアレイ（例えば、フラッシュアレイ１５０）の領域のＣＲＣの演算をＣＲＣモジュールが実行するように、ＣＲＣモジュールに複数の３２ビットデータ値をフェッチして、書き込む処理要素に対応する。種々の実施形態を用いて、ＣＲＣモジュールにおける８ビットレジスタにメモリからフェッチされる各々の３２ビットデータ値を書き込むように、後続のアセンブリコードに従って、処理要素は、３２ビットロング移動（ｍｏｖ．ｌ）処理を実行することが可能である。ＣＲＣレジスタは、単に例示目的で、ＣＲＣモジュールの低ライトデータレジスタであるように次に示されている。
＃ｄ０＝ｂｙｔｅＣｏｕｎｔ／４
＃ａ０＝フラッシュアレイに対するポインタ
＃ａ１＝ＣＲＣ低ライトデータレジスタに対するポインタ
Ｌ％１：                            ＃長語コピー、展開４ｘ
ｍｏｖ．１（％ａ０）＋，（％ａ１）  ＃ＣＲＣに対するコピーソースデータ４バイト値
ｍｏｖ．１（％ａ０）＋，（％ａ１）  ＃ＣＲＣに対するコピーソースデータ４バイト値
ｍｏｖ．１（％ａ０）＋，（％ａ１）  ＃ＣＲＣに対するコピーソースデータ４バイト値
ｍｏｖ．１（％ａ０）＋，（％ａ１）  ＃ＣＲＣに対するコピーソースデータ４バイト値
ｓｂｑ．１＆４，％ｄ０              ＃デクリメントループカウンタ
ｂｎｅ．ｂ  Ｌ％１                  ＃実行した？実行していない場合、分岐してループの一番上に戻る
比較のために、周辺装置において８ビットレジスタにメモリから同じ３２ビットデータ値を転送するように従来の技術を用いると、処理要素は、多くの移動処理として４回実行され、その場合、各々の移動処理は、例示として次のコードに示すように、全体の３２ビットデータ値を一度に書き込むのではなく、各々の移動処理は一度に１バイトを書き込む。
＃ｄ０＝ｂｙｔｅＣｏｕｎｔ
＃ａ０＝フラッシュアレイに対するポインタ
＃ａ１＝ＣＲＣ低ライトデータレジスタに対するポインタ
Ｌ％０：                            ＃バイトコピー、展開４ｘ
ｍｏｖ．ｂ（％ａ０）＋，（％ａ１）  ＃ＣＲＣに対するコピーソースデータバイト値
ｍｏｖ．ｂ（％ａ０）＋，（％ａ１）  ＃ＣＲＣに対するコピーソースデータバイト値
ｍｏｖ．ｂ（％ａ０）＋，（％ａ１）  ＃ＣＲＣに対するコピーソースデータバイト値
ｍｏｖ．ｂ（％ａ０）＋，（％ａ１）  ＃ＣＲＣに対するコピーソースデータバイト値
ｓｂｑ．１＆４，％ｄ０              ＃デクリメントループカウンタ
ｂｎｅ．ｂ  Ｌ％０                  ＃実行した？実行していない場合、分岐してループの一番上に戻る
潜在的な性能の利益に関して、実施形態に従った例示としての第１コードを実行する処理要素は、転送されたバイト当たり約２．２５ＣＰＵサイクルの測定した性能が得られる一方、従来の方法に従った例示としての第２コードを実行する処理要素は、転送されるバイト当たり約６．００ＣＰＵサイクルの測定された性能が得られる。測定された性能に従って、同じプロセッサコアにおいて実行され、両方の実施例が同じクロック周波数で処理されるとき、例示としての第１コードの実行は、例示としての第２コードの実行に比べて、約２．６６倍速い。従って、種々の実施形態の有利点をとるコードを実行することは、従来の方法に比べて、処理要素の性能のかなりの改善を提供することができる。
【００３８】
周辺装置モジュールのｙビットワイドライトデータレジスタにｘビットワイドデータ値を書き込むように種々の実施形態を実行することに加えて、周辺装置モジュールのｙビットリードデータレジスタからｘビットデータ値を読み出すようにまた、又は代替として、実施形態が実行されることが可能である。図４は、例示としての実施形態に従って、周辺装置モジュールのデータレジスタを読み出す方法のフロー図である。特に、その方法は、周辺装置モジュール（例えば、周辺装置モジュール２００、図２）の８ビットリードデータレジスタ（例えば、低リードデータレジスタ２０４）から３２ビットデータ値を読み出す３２ビット処理要素（例えば、プロセッサコア１０２）に相当する。他の実施形態においては、異なるビット幅の処理要素は、周辺装置モジュールの異なる幅のリードデータレジスタから異なる幅のデータ値を読み出すことが可能であることが理解される必要がある。
【００３９】
その方法は、ブロック４０２において、周辺装置モジュールの８ビットレジスタから３２ビットデータ値を読み出す１つ又はそれ以上のソフトウェア命令を処理要素が実行するときに、開始することが可能である。例えば、図１を参照するに、プロセッサコア１０２は、システムバス１０６、１０７の読み出し／書き込み信号の状態を読み出し状態に設定することが可能であり、システムバス１０６、１０７のアドレスバス１０８、１０９におけるアドレス（ここでは、“処理要素により供給されるアドレス”という）を提供することが可能であり、その場合、そのアドレスは、周辺装置モジュールの８ビットリードデータレジスタ（例えば、低リードデータレジスタ２０４）に相当する。
【００４０】
ブロック４０４においては、バス制御器１２０は、読み出し／書き込み信号及びコアにより供給されたアドレスを受信し、それに応答して、一連の複数のｚビットワイドデータリードデータ転送における最初の転送を実行し、その場合、ｚは周辺装置バス１２６のリードデータバス１３０の幅である。下記で明確になるように、バス制御器１２０は、レジスタの適切な部分又は他のメモリ位置に読み出される各々のｚ−ビットワイドデータ値を一時的に位置付けることにより一連のリードデータ転送の過程中にｘビットワイドデータ値を構築し、それ故、全体的なｘビットワイド値を構築する。説明を簡略化するために、この実施例においては、周辺装置モジュールのリードデータレジスタ（例えば、低リードデータレジスタ２０４）と同じビット幅をリードデータバス１３０が有することを前提としている。従って、この実施例においては、ｚ＝８である。リードデータバス１３０の幅は、リードデータレジスタの幅より小さい（例えば、種々の実施形態において、ｚはｙに等しいか、それより小さい）ことが可能であり、その場合、バス制御器１２０は、リードデータレジスタからｙビットデータ値を読み出すように、複数のリードデータ転送を実行することが可能である。
【００４１】
ｚ＝８である実施例を継続するに、各々のリードデータ転送は、読み出す次の８ビットデータ値を特定することと、周辺装置モジュールにおいて単独のリードデータレジスタにマッピングされる複数のリードデータレジスタアドレスの１つを用いて８ビットリードデータ転送を実行することとを有する。例えば、最初のリードデータ転送については、３２ビットデータ値の特定のバイトが、読み出される第１バイトとして選択されることが可能であり、バス制御器１２０は、周辺装置モジュールのリードデータレジスタにマッピングされる第１リードデータレジスタアドレスを用いることが可能である。実際のリードデータ転送は、周辺装置バスの読み出し／書き込み信号の状態を読み出し状態に設定することと、周辺装置バス１２６のアドレスバス１２８において第１リードデータレジスタアドレスを提供することと、利用可能であるときに、周辺装置バス１２６のリードデータバス１３０から３２ビットデータ値の第１バイトを読み出すことと、バス制御器１２０においてアクセス可能な３２ビットレジスタ又は他のメモリ位置における第１バイトを記憶することとを有することが可能である。
【００４２】
ブロック４０６においては、周辺装置モジュールは、アドレスバス１２８において第１リードデータレジスタアドレスと共に読み出し／書き込み信号を受信する。周辺装置モジュールのアドレスデコード論理２１６は、第１アドレスにおいて示されたアドレスオフセットをリードデータレジスタ２０４にマッピングし、第１バイトは、周辺装置バス１２６のリードデータバス１３０にリードデータレジスタ２０４から転送されることが可能である。例えば、上記の表１を参照するに、第１アドレスにおいて示されるアドレスオフセットは、低リードデータレジスタ２０４にマッピングされた４つのアドレスオフセットの１つであるオフセット０ｘ４であることが可能である。
【００４３】
ブロック４０８においては、バス制御器１２０は、リードデータバス１３０から第１バイトを読み出し、３２ビットデータ値を構築するように用いられるレジスタ又は他のメモリ位置における適切な位置にデータを一時的に記憶することが可能である。バス制御器１２０は、ブロック４１０において、３２ビットデータ値の最後のバイトが読み出されたか、リードデータレジスタ２０４から読み出されているかを判定することが可能である。その最後の値が読み出されていないとき、その方法は、一連の中の次の８ビットワイドリードデータ転送をバス制御器１２０が実行するブロック４０４に戻ることが可能である。例えば、第２リードデータレジスタについては、３２ビットデータ値の異なるバイトが、読み出される第２バイトとして選択されることが可能であり、バス制御器１２０は、周辺装置モジュールのリードデータレジスタにマッピングされた第２リードデータレジスタアドレス（例えば、上記の表１の０ｘ５のオフセットに対応するリードデータレジスタアドレス）を用いることが可能である。また、リードデータ転送は、周辺装置バス１２６の読み出し／書き込み信号を読み出し状態に設定することと、周辺装置バス１２６のアドレスバス１２８において第２リードデータレジスタアドレスを提供することと、利用可能なときに周辺装置バス１２６のリードデータバス１３０から第２バイトを供給することと、３２ビットデータ値が構築されている３２ビットレジスタ又は他のメモリ位置の適切なバイト位置に第２バイトを一時的に記憶することとを有する。
【００４４】
ブロック４１０において、最後の値が読み出されたことが判定されたとき（即ち、３２ビットデータ値の全ての４つのバイトがリードデータレジスタ２０４から読み出されたとき）、ブロック４１２において、バス制御器１２０は、システムバス１０６、１０７のリードデータバス１１０、１１１にレジスタ又はメモリ位置を一時的に維持する３２ビットにおけるデータを転送することにより、処理要素に３２ビットデータ値を供給することが可能である。処理要素は、その場合、リードデータバス１１０、１１１から３２ビットレジスタ又は他のメモリ位置にデータを転送することが可能である。その方法は、その場合、終了することが可能である。
【００４５】
周辺装置モジュールの特定の実施例について、図５及び６を関連付けて次に詳述する。特に、図５及び６は、ＣＲＣモジュールにおいて実行される例示としての実施形態に従ったブロック図及びタイミング図のそれぞれを示している。図５及び６に関連付けて説明されている周辺装置モジュールの実施形態は、単にＣＲＣモジュールにおける種々の実施形態の制限的な実行として捉えるべきでないとして理解される必要がある。実際には、実施形態は、多様な種類の周辺装置モジュールにおいて実行されることが可能であり、そのような多様な種類の周辺装置モジュールの非排他的なリストが上記で与えられている。
【００４６】
図５は、例示としての実施形態に従ったＣＲＣモジュール５００の簡略化されたブロック図である。上記のように、ＣＲＣモジュールは、実施形態に従って実行されることが可能である多様な種類の周辺装置モジュールの１つである。ＣＲＣモジュール５００は、実施形態に従って、ＣＲＣジェネレータ回路５０２、ＣＲＣ低データレジスタ５０４、ＣＲＣ高データレジスタ５０６及びアドレスデコード論理５１６を有する。ＣＲＣモジュール５００はまた、周辺装置バスクロック信号線５３６からクロック信号を受信し、種々の内部処理のタイミングに影響する１つ又はそれ以上の内部クロックを生成するように適合されたクロックジェネレータ５３４を有する。
【００４７】
ＣＲＣジェネレータ回路５０２は、メモリブロックに記憶されているデータ及びシード値に基づいて、メモリブロックについてＣＲＣ値を演算するように適合される。例示としての実施形態においては、ＣＲＣモジュールジェネレータ回路５０２は１６ビットＣＲＣジェネレータ回路を有し、シード値は１６ビットシード値である。処理中、処理要素（例えば、処理コア１０２、図１）は、ＣＲＣ低データレジスタ５０４に１６ビットシード値の第１バイトと、ＣＲＣ高データレジスタ５０６に１６ビットシード値の第２バイトとを書き込むことが可能である。１６ビットシード値をロードすることに後続して、実施形態において、処理要素は、メモリブロックから１つ又はそれ以上の３２ビットデータ値をフェッチし、ＣＲＣ低データレジスタ５０４に各々の３２ビットデータ値を書き込むことが可能であり、その実施形態は、処理要素がメモリブロックから複数の８ビットデータ値をフェッチし、ＣＲＣ低データレジスタに各々の８ビットデータ値を書き込む（例えば、それ故、同じデータ量を転送するのにデータ転送をフェッチして書き込む数の約４倍を実行する）従来のシステムと区別可能である。バス制御器（例えば、バス制御器１２０、図１）は、その場合、アドレスデコード論理５１２により、ＣＲＣ低データレジスタ５０４にマッピングされる複数のアドレスの１つに対して３２ビットデータ値の各々のバイトを書き込むことが可能である。各々のバイトは、組み合わされたＣＲＣ高データレジスタ５０６及びＣＲＣ低データレジスタ５０４における１６ビットＣＲＣ値を生成するように、ＣＲＣジェネレータ回路５０２により処理されることが可能である。ＣＲＣ低データレジスタ５０４に最後のデータ値を書き込んだ後、処理要素は、続いて、組み合わされたＣＲＣ高データレジスタ５０６及びＣＲＣ低データレジスタ５０４からもたらされる１６ビットＣＲＣ値を読み出すことが可能である。
【００４８】
ＣＲＣモジュール５００はまた、周辺装置バス読み出し／書き込み信号線５３２に存在する読み出し／書き込み信号の状態を検出するように適合された読み出し／書き込み信号インタフェース５３０を有する。読み出し／書き込み信号がリードデータ転送を表し、アドレスデコード論理５１６が、ＣＲＣ低データレジスタ５０４又はＣＲＣ高データレジスタ５０６に対応するオフセットを復号化したとき、ＣＲＣモジュール５００は、復号化オフセットにより特定されるように、ＣＲＣ低データレジスタ５０４又はＣＲＣ高データレジスタ５０６におけるデータを周辺装置バスリードデータ線（例えば、リードデータバス１３０、図１）に転送することが可能である。同様に、読み出し／書き込み信号がライトデータ転送を表し、アドレスデコード論理５１６が、ＣＲＣ低データレジスタ５０４又はＣＲＣ高データレジスタ５０６に対応するオフセットを復号化したとき、ＣＲＣモジュール５００は、復号化オフセットにより特定されるように、ＣＲＣ低データレジスタ５０４又はＣＲＣ高データレジスタ５０６に周辺装置バスライトデータライン５１４（例えば、ライトデータバス１３２、図１）に存在するデータを転送することが可能である。
【００４９】
ＣＲＣ低データレジスタ５０４及びＣＲＣ高データレジスタ５０６の各々は、周辺装置バスライトデータ線５１４からバス読み出し／書き込み線インタフェース５０８により転送されるデータを受信して、記憶するように適合される。更に、ＣＲＣ低データレジスタ５０４及びＣＲＣ高データレジスタ５０６は、それらにおいて記憶されているデータをＣＲＣジェネレータ回路５０２に供給するように適合されている。ＣＲＣ高データレジスタ５０６及びＣＲＣ低データレジスタ５０４はまた、各々のデータバイトがＣＲＣ低データレジスタ５０４に書き込まれるために、結果として得られる１６ビットＣＲＣ値を受信して、記憶するように適合される。ＣＲＣ高データレジスタ５０６及びＣＲＣ低データデータレジスタ５０４に記憶されている得られた１６ビットＣＲＣ値は、リードデータ転送中に、バス読み出し／書き込み線インタフェース５０８により周辺装置バスリードデータ線５１０に転送されることが可能である。実施形態においては、ＣＲＣ低データレジスタ５０４又はＣＲＣ高データレジスタ５０６は８ビットワイドレジスタであるが、他の実施形態においては、ＣＲＣ低データ５０４レジスタ又はＣＲＣ高データレジスタ５０６のどちらか又はそれらの両方は、４ビット、１６ビット、３２ビット又は他のビット幅のレジスタであることが可能である。図５に示している実施形態においては、ＣＲＣモジュール５００は、１つのＣＲＣ低データレジスタ５０４及び１つのＣＲＣ高データレジスタ５０６を有するが、ＣＲＣモジュールは、他の実施形態において、更なるＣＲＣ低データレジスタ及び／又はＣＲＣ高データレジスタを有することが可能である。
【００５０】
ＣＲＣモジュール５００はまた、実施形態において、周辺装置バスアドレス線５２４（例えば、アドレスバス１２８、図１）からバスアドレス線インタフェース５２２により受信されたアドレスに基づいてアドレスオフセットビット線５２０において存在する信号を復号化するように適合されているアドレスデコード論理５１６を有する。復号化処理に基づいて、アドレスデコード論理５１６は、ＣＲＣ低データレジスタ５０４又はＣＲＣ高データレジスタ５０６の１つから周辺装置バス読み出し線５１０に、バス読み出し／書き込み線インタフェース５０８がデータを転送するようにし、アドレスデコード論理５１６は、周辺装置バス書き込み線５１４からＣＲＣ低データレジスタ５０４又はＣＲＣ高データレジスタ５０６の１つに、バス読み出し／書き込み線インタフェース５０８がデータを転送するようにすることが可能である。
【００５１】
実施形態においては、ＣＲＣ高データレジスタ５０６は単独のアドレスオフセットにマッピングされ、ＣＲＣ低データレジスタ５０４は複数のアドレスオフセットにマッピングされる。これは、上記のように、ＣＲＣモジュール５００が複数アドレスのレジスタマッピングを実行するように適合させる。特定の実施形態においては、ＣＲＣ低データレジスタアドレスオフセット（即ち、アドレスオフセット０ｘ１）の１つは、処理要素により８ビットデータ値を書き込むために特定され、それ故、アドレスオフセットがｙビットワイドアクセスアドレスオフセットである、第１アドレスに対応することが可能である。他のＣＲＣ低データレジスタアドレスオフセット（即ち、アドレスオフセット０ｘ４、０ｘ５、０ｘ６及び０ｘ７）は、処理要素により３２ビットデータ値について特定され、それ故、それらのアドレスオフセットはｘビットワイドアクセスアドレスオフセットである、第２アドレスに対応することが可能である。下記の表３において周辺装置モジュールメモリマップの例示としての８ビットビューにおいて特定されるように、ＣＲＣ低データレジスタ５０４は、５つのアドレスオフセット（即ち、オフセット０ｘ１、０ｘ４、０ｘ５、０ｘ６及び０ｘ７）を有するレジスタアドレスオフセットの集合に対してマッピングされる。
【００５２】
【表３】
0005496916.tif 000004
“ＣＲＣ０”とは、ＣＲＣ低データレジスタ５０４にマッピングするアドレスオフセット（即ち、アドレスオフセット０ｘ４）に対応する３２ビットデータ値の第１バイトのことをいう。同様に、“ＣＲＣ１”とは、ＣＲＣ低データレジスタ５０４にまたマッピングするアドレスオフセット（即ち、アドレスオフセット０ｘ５）に対応する３２ビットデータ値の第２バイトのことをいう、等である。表３のメモリマップは、単なる例示として与えられ、多くのメモリマップの変形が存在し得る。表３のメモリマップから収集され得るものは、種々の実施形態に従って、アドレスデコード論理５１６は、複数のアドレスオフセットの集合をＣＲＣモジュール５００の単独のデータレジスタにマッピングするように適合されるが、アドレスデコード論理５１６はまた、複数のアドレスの１つ又はそれ以上の集合を１つ又は他のデータレジスタにマッピングすることが可能であるものである。
【００５３】
図６は、例示としての実施形態に従って、ＣＲＣ値を生成することに関連付けて実行されるライト及びリードデータ転送に関連する種々の信号についてのタイミング図である。そのタイミング図は、クロック信号６０２（ＣＬＫ）、アドレスバス信号６０４（ＡＤＤＲ）、読み出し／書き込み信号６０６（Ｒ／Ｗ）、ライトデータバス信号６０８（ＷＤＡＴＡ）及びリードデータバス信号６１０（ＲＤＡＴＡ）を有する。図６に示す信号に加えて、例えば、イネーブル信号及び待機信号等の１つ又はそれ以上の付加信号が、ＣＲＣ値の生成中に存在することが可能であるが、それらの信号は、簡略化目的で図示され且つ説明されているのではない。各々のライトデータ転送中に、読み出し／書き込み信号６０６の状態は、書き込み状態（例えば、低状態）に設定され、各々のリードデータ転送中に、読み出し／書き込み信号６０６の状態は読み出し状態（例えば、高状態）に設定される。アドレス及びデータは、実施形態に従って図示されているように、クロック信号６０２の低から高への転送中に、又は代替としてクロック信号６０２の高から低への転送中にクロック制御されることが可能である。ＣＲＣ値生成中に実行される種々の処理は、図５に示されているものに比べて、より多い又はより少ないクロックサイクルをとることが可能であり、より多い又はより少ないデータのバイトがＣＲＣ値を生成するように用いられることが可能である。下記の説明においては、図５の要素について言及している。
【００５４】
ＣＲＣ値を生成するように、実施形態に従って、後続の処理のシーケンスが存在することが可能であるが、そのシーケンスは、他の実施形態においては、実質的に同様の結果を得ながら、変更されることが可能である。ＣＲＣ値の生成は、実施形態においては、処理要素（例えば、プロセッサコア１０２、図１）がシード値をロードするときに、始まることが可能である。これは、例えば、ＣＲＣ高データレジスタ５０６に１６ビットシード値の第１バイト（０ｘＦＦ）を書き込み、ＣＲＣ低データレジスタ５０４に１６ビットシード値の第２バイト（０ｘＦＦ）を書き込む処理要素を有することが可能である。１６ビットシード値の第１バイトを書き込むように、処理要素は、ＣＲＣモジュールのアドレスデコード論理５１６がＣＲＣ高データレジスタ５０６（例えば、上記の表３におけるアドレスオフセット０ｘ０）に対してマッピングするというアドレスオフセットに対応するアドレスと共に第１バイトを提供することが可能である。そのアドレスオフセットはマッピングされることが可能であり、第１バイト（０ｘＦＦ）は、図６に示しているように、第１クロックサイクル６２０においてＣＲＣ高データレジスタ５０６に対してクロック制御されることが可能である。同様に、１６ビットシード値の第２バイトを書き込むように、処理要素は、１６ビットシード値の第２バイトを書き込むように、処理要素は、ＣＲＣモジュールのアドレスデコード論理５１６がＣＲＣ低データレジスタ５０４（例えば、上記の表３におけるアドレスオフセット０ｘ１）に対してマッピングするというアドレスオフセットに対応するアドレスと共に第２バイトを提供することが可能である。このアドレスオフセットは、ＣＲＣ低データレジスタ５０４についてのｙビットワイドアクセスアドレスオフセットと呼ばれる。そのアドレスオフセットはマッピングされることが可能であり、第２バイト（０ｘＦＦ）は、第２クロックサイクル６２１においてＣＲＣ低データレジスタ５０４に対してクロック制御されることが可能である。１６ビットシード値（０ｘＦＦＦＦ）は、従って、ＣＲＣ高データレジスタ５０６及びＣＲＣ低データレジスタ５０４にロードされる。
【００５５】
処理要素は、その場合、ＣＲＣ値が生成されているメモリブロックから第１の３２ビットデータ値をフェッチし、ＣＲＣモジュールのアドレスデコード論理５１６がまた、ＣＲＣ低データレジスタ５０４にマッピングするｘビットワイドアクセスアドレスオフセットの１つ（例えば、上記の表３におけるアドレスオフセット０ｘ４）に対応するアドレスに対してその３２ビットデータ値を書き込むように、実行されることが可能である。バス制御器（例えば、バス制御器１２０、図１）は、その場合、ＣＲＣ低データレジスタ５０４に対して４つの書き込みのシーケンスを実行することが可能であり、その場合、各々の書き込みは、３２ビットデータ値から選択されたバイトを書き込むことを有する。実施形態においては、そのシーケンスの第１書き込みは、３２ビットデータ値の第１バイト（０ｘ３１）を書き込み、ＣＲＣ低データレジスタ５０４に対してマッピングする第１アドレスをアドレス指定し、そのシーケンスの第２書き込みは、３２ビットデータ値の第２バイト（０ｘ３２）を書き込み、ＣＲＣ低データレジスタ５０４に対してマッピングする第２アドレスをアドレス指定し、そのシーケンスの第３書き込みは、３２ビットデータ値の第３バイト（０ｘ３３）を書き込み、ＣＲＣ低データレジスタ５０４に対してマッピングする第３アドレスをアドレス指定し、そしてそのシーケンスの第４書き込みは、３２ビットデータ値の第４バイト（０ｘ３４）を書き込み、ＣＲＣ低データレジスタ５０４に対してマッピングする第４アドレスをアドレス指定する。クロックサイクル６２２、６２３、６２４及び６２５中、４つのアドレスオフセットのシーケンス（例えば、アドレスオフセット０ｘ４、０ｘ５、０ｘ６及び０ｘ７）は、ライトデータバス信号６０８におけるデータの４つのバイトと共にアドレスバス信号６０４において順次に示されている。上記のように、それらの４つのデータオフセットは、実施形態においては、ＣＲＣ低データバス５０４に対してアドレスデコード論理５１６によりマッピングされることが可能である。クロックサイクル６２５の終わりに、ＣＲＣモジュール５００は、ＣＲＣ高データレジスタ５０６及びＣＲＣ低データレジスタ５０４に対して１６ビットシード値（０ｘＦＦＦＦ）を受信し、ＣＲＣ低データレジスタ５０４に４つのバイト（０ｘ３１、０ｘ３２、０ｘ３３、０ｘ３４）をまた受信する。次の４つのクロックサイクル６２６、６２７、６２８、６２９中、４つの付加的なバイト（０ｘ３５、０ｘ３６、０ｘ３７、０ｘ３８）が、ｘビットワイドアクセスアドレスオフセット（例えば、アドレスオフセット０ｘ４）に対応するアドレスに第２３２ビットデータ値を書き込む処理要素の結果としてＣＲＣ低データレジスタ５０４に受信される。次のクロックサイクル６３０中、ＣＲＣ値が生成されているメモリブロックにおける最後のデータバイトを表すことが可能である１つの付加的なバイトが、ＣＲＣ低データレジスタ５０４に受信される。その最後の書き込まれた値は３２ビットデータ値ではなく、１バイトに対応するため、処理要素は、ｙビットワイドアクセスＣＲＣアドレスオフセット（例えば、アドレスオフセット０ｘ１）に対応するアドレスにその８ビットデータ値を書き込むことが可能である。クロックサイクル６３１は、ＣＲＣジェネレータ回路５０２がＣＲＣ値の演算を終了することが可能であるウェイトサイクルを表す。
【００５６】
ＣＲＣ低データレジスタ５０４及びＣＲＣ高データレジスタ５０６から１６ビットＣＲＣ値を読み出すように、処理要素は、ＣＲＣ高データレジスタ５０６から１６ビットＣＲＣ値の第１バイトを読み出し、ＣＲＣ低データレジスタ５０４から１６ビットＣＲＣ値の第２バイトを読み出すことが可能である。１６ビットＣＲＣ値の第１バイトを読み出すように、処理要素は、ＣＲＣモジュールのアドレスデコード論理５１６がＣＲＣ高データレジスタ５０６にマッピングするアドレスオフセット（例えば、上記の表３におけるアドレスオフセット０ｘ０）に対応するアドレスを提供することが可能である。そのアドレスオフセットはマッピングされることが可能であり、第１バイト（０ｘ２９）は、図６に示しているように、クロックサイクル６３２中、ＣＲＣ高データレジスタ５０６から読み出されることが可能である。同様に、１６ビットＣＲＣ値の第２バイトを読み出すように、処理要素は、ＣＲＣモジュールのアドレスデコード論理５１６がＣＲＣ低データレジスタ５０４にマッピングするｙビットワイドアクセスアドレスオフセット（例えば、上記の表３におけるアドレスオフセット０ｘ１）に対応するアドレスを提供することが可能である。そのアドレスオフセットはマッピングされることが可能であり、第２バイト（０ｘＢ１）は、クロックサイクル６３３中、ＣＲＣ低データレジスタ５０４から読み出されることが可能である。
【００５７】
ＣＲＣ値を生成する装置及び方法の実施形態を用いる場合、図５及び６に関連付けて例示して説明しているように、処理要素は、ｙビットワイドＣＲＣ低データレジスタを有するＣＲＣモジュールにｘビットワイドデータ値を書き込むソフトウェア命令を実行することが可能である。従って、処理要素が、同じ量のデータを書き込むように、より多くのソフトウェア命令を実行する従来の装置及び方法に対して、種々の実施形態を用いる場合、プロセッサ効率が改善される（例えば、処理要素は、ｙビットワイドＣＲＣ低データレジスタにｙビットワイドデータ値のみを書き込む命令を実行する）。
【００５８】
従って、種々の種類の周辺装置モジュールにおけるデータレジスタからデータ読み出す及び／又はそれにデータを書き込む方法及び装置の種々の実施形態について上で説明している。電子システムの実施形態は、処理要素、バス制御器及び周辺装置モジュールを有する。処理要素は、ｘビットワイドデータ値のデータ転送を処理要素が実行するようにする機械読み出し可能コードを実行するように適合され、その場合、データ転送を実行することは、周辺装置モジュールのｙビットワイドデータレジスタに対応する処理要素により提供されたアドレス及び第１読み出し／書き込み信号を提供することを有し、ここでは、ｙはｘより小さい。バス制御器は、読み出し／書き込み信号及び処理要素により提供されたアドレスを受信し、それに応答して、周辺装置モジュールにより一連の複数のデータ転送を実行するように適合され、その場合、その一連の複数のデータ転送を実行することは、一連の複数のデータ転送の第１データ転送についての第１周辺装置アドレス及び第２読み出し／書き込み信号を供給することと、一連の複数のデータ転送の少なくとも１つの他のデータ転送について少なくとも１つの異なる周辺装置アドレスを提供することを有する。周辺装置モジュールは、ｙビットワイドデータレジスタに第１周辺装置アドレスをマッピングし、ｙビットワイドデータレジスタに少なくとも１つの異なる周辺装置アドレスをまた、マッピングする。
【００５９】
更なる実施形態においては、周辺装置モジュールは、データバスに動作可能であるように結合されたｙビットワイド第１データレジスタと、アドレスバスに動作可能であるように結合され、第１データレジスタに対して複数の異なるアドレスオフセットをマッピングするアドレスデコード論理とを有する。実施形態においては、電子システムは、システムバス及び少なくとも１つのメモリブロックを更に有し、その場合、少なくとも１つのメモリブロック及び処理要素は、システムバスを介して、共に動作可能であるように結合され、処理要素は、システムバスに対してメモリブロックからのデータ値をフェッチする機械コードを実行するように更に適合されている。更なる実施形態においては、データ転送は、周辺装置モジュールにｘビットワイドデータ値を書き込むようにライトデータ転送を有し、処理要素は、バス制御器にｘビットワイドデータ値を供給するように更に適合されている。更なる実施形態においては、データ転送は、周辺装置モジュールからｘビットワイドデータ値を読み出すようにリードデータ転送を有し、バス制御器は、周辺装置モジュールから複数のｙビットワイドデータ値を読み出し、複数のｙビットワイドデータ値からｘビットワイドデータ値を構築し、処理要素にｘビットデータ値を供給するように更に適合されている。更なる実施形態においては、電子システムはまた、バス制御器と周辺装置モジュールとの間に動作可能であるように結合された周辺装置バスを有し、その場合、周辺装置バスはｚビットワイドデータバスを有し、ここでは、ｚはｙに等しいか、それより小さい。更なる実施形態においては、処理要素は、プロセッサコア、非コア処理要素及び直接メモリアクセスユニットを有する群から選択された処理要素である。
【００６０】
他の実施形態においては、データバスに動作可能であるように結合されたｙビットワイド第１データレジスタと、アドレスバスに動作可能であるように結合され、第１データレジスタに対して複数の異なるアドレスオフセットをマッピングするように構成されたアドレスデコード論理と、を有する周辺装置モジュールを有する電子システムを有する。更なる実施形態においては、アドレスデコード論理は、ｙビットワイドデータ転送のための第１データレジスタに対して複数の異なるアドレスオフセットの第１アドレスオフセットをマッピングし、一連のｘ／ｙ、即ち一連のアドレスに対するｙビットワイドデータ転送として実行されるｘビットワイドデータ転送のための第１データレジスタに対して複数の異なるアドレスオフセットのｘ／ｙの他のアドレスオフセットをマッピングするように構成され、一連のアドレスにおける各々のアドレスは、８ビットバイトデータに対応するアドレスである。
【００６１】
更なる実施形態においては、周辺装置モジュールはまた、データバスに動作可能であるように結合された１つ又はそれ以上のｙビットワイド付加データレジスタを有する。更なる実施形態においては、周辺装置モジュールはまた、読み出し／書き込み信号を受信するように適合された読み出し／書き込み信号インタフェースを有し、その場合、周辺装置モジュールは、読み出し／書き込み信号が読み出し状態にあるときに、そしてアドレスデコード論理が、第１データレジスタに対してアドレスバスに存在するアドレスについてのアドレスオフセットをマッピングしたときに、データバスのリードデータバスに第１データレジスタからｙビットワイドデータ値を転送するように適合されている。更なる実施形態においては、周辺装置モジュールはまた、読み出し／書き込み信号を受信するように適合された読み出し／書き込み信号インタフェースを有し、その場合、周辺装置モジュールは、読み出し／書き込み信号が書き込み状態にあるときに、そしてアドレスデコード論理が、第１データレジスタに対してアドレスバスに存在するアドレスについてのアドレスオフセットをマッピングしたときに、データバスのライトデータバスから第１データレジスタにｙビットワイドデータ値を転送するように適合されている。更なる実施形態においては、周辺装置モジュールはまた、割り込み信号を生成するように適合された割り込み要求ジェネレータを有する。更なる実施形態においては、周辺装置モジュールはまた、第１データレジスタに動作可能であるように結合された周辺装置機能回路を有し、その場合、周辺装置機能回路は、周辺装置モジュールの主な機能を実行し、第１データレジスタからデータを読み出し又はそれにデータを書き込むように適合されている。
【００６２】
更なる実施形態においては、電子システムはまた、処理要素及びバス制御器を有する。処理要素は、ｘビットワイドデータ値のデータ転送を処理要素が実行するようにする機械読み出し可能コードを実行するように適合され、その場合、データ転送を実行することは、第１読み出し／書き込み信号を提供することと、周辺装置モジュールの第１データレジスタに対応する処理要素により供給されるアドレスを処理することと、を有する。バス制御器は、読み出し／書き込み信号及び処理要素により提供されるアドレスを受信し、それに応答して、周辺装置モジュールにより一連の複数のデータ転送を実行するように適合され、その場合、それら一連の複数のデータ転送を実行することは、一連の複数のデータ転送の第１データ転送についての第１周辺装置アドレス及び第２読み出し／書き込み信号を提供することと、一連の少なくとも１つの他のデータ転送についての少なくとも１つの異なる周辺装置アドレスを提供することと、を有する。更なる実施形態においては、周辺装置モジュールは、巡回冗長検査演算モジュールと、チェックサム演算モジュールと、順次周辺装置インタフェースと、汎用非同期受信器／送信器と、ディスプレイ制御器と、ユーザインタフェース制御器とを有する群から選択されたモジュールである。
【００６３】
他の実施形態においては、処理要素と周辺装置モジュールとの間でデータを転送する方法を有する。その方法は、周辺装置モジュールにより、アドレスバスから複数の異なるアドレス及び第１読み出し／書き込み信号を受信するステップと、周辺装置モジュールにより、単独のｙビットワイドデータレジスタに対して複数の異なるアドレスに対応する複数の異なるアドレスオフセットをマッピングするステップと、周辺装置モジュールにより、第１読み出し／書き込み信号が読み出し状態にあるときに、ｙビットワイドデータレジスタからデータバスにワイドデータ値を転送するステップと、第１読み出し／書き込み信号が書き込み状態にあるときに、ｙビットワイドデータレジスタにデータバスからｙビットワイドデータ値を転送するステップと、を有する。
【００６４】
更なる実施形態においては、本発明の方法は、ｘビットワイドデータ値のデータ転送を処理要素が実行するようにする機械読み出し可能コードを実行するステップを有し、データ転送を実行することは、周辺装置モジュールのｙビットワイドデータレジスタに対応する処理要素により提供されるアドレス及び第２読み出し／書き込み信号を提供する（ここで、ｙはｘより小さい）ことと、バス制御器により、第２読み出し／書き込み信号及び処理要素により提供されるアドレスを受信することと、第２読み出し／書き込み信号の受信に応答してバス制御器により、周辺装置モジュールと共に一連の複数のデータ転送を実行することとを有し、それら一連の複数のデータ転送を実行することは、それら一連の複数のデータ転送における各々のデータ転送のための複数の異なるアドレスにおけるアドレス及び第１読み出し／書き込み信号を提供する。
【００６５】
種々の実施形態の原理については、特定のシステム、装置及び方法と関連付けて上記で説明している一方、この詳細説明は単なる例示であり、本発明の主題の範囲における制限ではないことが明確に理解される必要がある。更に、本明細書で用いられている用語又は表現は、説明目的のものであり、制限的なものではない。
【００６６】
当業者が、現在の知識を適用することにより容易に修正することができ、一般概念から逸脱することなく、種々のアプリケーションにそれを適合させることができるのに十分であるように、上記の特定の実施形態についての説明により、種々の実施形態の一般的性質が明らかになっている。従って、そのような適合及び修正は、開示されている実施形態と同等なものの意味内及び範囲内にある。本発明の主題は、同時提出の特許請求の広い範囲及び主旨の範囲内にあるそのような代替、修正、等価及び変形全てを包含するものである。
【図１】
0005496916.tif 000005
【図２】
0005496916.tif 000006
【図３】
0005496916.tif 000007
【図４】
0005496916.tif 000008
【図５】
0005496916.tif 000009
【図６】
0005496916.tif 000010