[go: up one dir, main page]

JP2011512599A - 周辺装置モジュールレジスタアクセス方法及び装置 - Google Patents

周辺装置モジュールレジスタアクセス方法及び装置 Download PDF

Info

Publication number
JP2011512599A
JP2011512599A JP2010546807A JP2010546807A JP2011512599A JP 2011512599 A JP2011512599 A JP 2011512599A JP 2010546807 A JP2010546807 A JP 2010546807A JP 2010546807 A JP2010546807 A JP 2010546807A JP 2011512599 A JP2011512599 A JP 2011512599A
Authority
JP
Japan
Prior art keywords
data
address
read
bus
peripheral device
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
Application number
JP2010546807A
Other languages
English (en)
Other versions
JP5496916B2 (ja
JP2011512599A5 (ja
Inventor
シー. サーセロ,ジョセフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
NXP USA Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NXP USA Inc filed Critical NXP USA Inc
Publication of JP2011512599A publication Critical patent/JP2011512599A/ja
Publication of JP2011512599A5 publication Critical patent/JP2011512599A5/ja
Application granted granted Critical
Publication of JP5496916B2 publication Critical patent/JP5496916B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

電子システム(100)の実施形態は、処理要素(102)、バス制御器(104,120)及び周辺装置モジュール(122,123又は124)を有する。その処理要素は、処理要素と周辺装置モジュールとの間でxビットワイドデータ値のデータ転送を実行する機械読み出し可能コードを実行する。そのデータ転送の実行は、周辺装置モジュールのyビットワイドデータレジスタに対応する処理要素により供給されるアドレスの提供を有し、ここで、yはxより小さい。バス制御器は、処理要素により供給されるアドレスを受信し、その受信に応答して、周辺装置モジュールと共に一連の複数のデータ転送を実行する。これは、一連の複数のデータ転送の第1データ転送についての第1周辺装置アドレスの提供と、一連の複数のデータ転送の少なくとも1つの他のデータ転送についての少なくとも1つの異なる周辺装置アドレスの提供と、を有する。周辺装置モジュールは、第1周辺装置アドレス及び少なくとも1つの異なる周辺装置アドレスをyビットワイドデータレジスタにマッピングする。

Description

本発明の手段の実施形態は、複数の周辺装置モジュールのレジスタにアクセスする方法及び装置に関し、特に、より広いビット幅の処理要素が周辺装置モジュールのより狭いビット幅のデータレジスタにアクセスする方法及び装置に関する。
典型的な処理アーキテクチャは、プロセッサコアと周辺装置モジュールのデータレジスタとの間のデータの転送をもたらすソフトウェア命令を実行するように適合された処理要素(プロセッサコア)を有する。ある場合には、アーキテクチャは、より広いビット幅のプロセッサコアとより狭いビット幅のデータレジスタを伴う周辺装置モジュールとを有することが可能である。例えば、特定の処理アーキテクチャは、周辺装置モジュールの8ビットワイド書き込みレジスタに複数の32ビットデータ値を書き込むソフトウェアを実行することができる32ビットプロセッサコアを有するようにデザインされることが可能である。そのような場合には、そのソフトウェアは、32ビットデータ値を4つの8ビットバイトに分解することが可能であり、周辺装置モジュールアドレスへの1バイトの各々の4つの連続的なライトデータ転送を実行することが可能である。同様に、8ビットワイド読み出しレジスタを有する周辺装置モジュールレジスタから32ビットデータ値を読み出すように、ソフトウェアは、周辺装置モジュールアドレスから1バイト各々の4つの連続的なリード(read)データ転送を実行することが可能であり、32ビットデータ値を生成するように4つのバイトを連結することが可能である。
各々のアクセス命令は、複数のプロセッサコアサイクルを消費し、それ故、より広いビット幅のプロセッサコアとより狭いビット幅のデータレジスタとの間でデータを転送するように複数のアクセスを実行することは、本質的に非効率である。しかしながら、特定のデザインパラメータ(例えば、新しいプロセッサコア及びより古いプロセッサコアで実行されるソフトウェアのための後方互換性と、例えば、より狭いビット幅のデータレジスタを有する周辺装置モジュールの比較的小さい物理的サイズ)は、より狭いビット幅のデータレジスタを有するスレーブ周辺装置モジュールをより広いビット幅のプロセッサコアを有する処理アーキテクチャに組み込むようにアーキテクチャディベロッパを強い続けている。処理アーキテクチャ性能を向上させる場合、必要なものは、周辺装置モジュールのより広いビット幅のプロセッサコアとより狭いビット幅のデータレジスタとの間のより効率的なデータ転送を可能にするように適合された方法及び装置である一方、それは、新しいプロセッサコア及びより古いプロセッサコアで実行されることが可能であるソフトウェアのための後方互換性を提供する。
以下に詳述する実施形態は、種々の種類の周辺装置モジュールにおけるデータレジスタからデータを読み出す及び/又はデータレジスタにデータを書き込む方法及び方法を含む。以下に説明するように、yビットのプログラミングモデル資源(例えば、データレジスタ)及びxビット処理要素を有する周辺装置モジュールを伴う電子システム(例えば、チップ)構成について、周辺装置モジュールにおいてマッピングされる更なるxビットプログラミングモデル位置を既存のyビットプログラミングモデル資源に含める実施形態を用いて、システム性能が改善され、ここでは、xはyより大きい。例えば、y=8及びx=32であるシステムにおいては、実施形態に従って、周辺装置モジュールのプログラミングモデルにおける1つ又はそれ以上の32ビット位置を含むことにより従来のシステムに比べて改善された周辺装置性能が得られ、新しい32ビット位置が、既存の8ビットプログラミングモデル資源に対して周辺装置モジュールによりマッピングされる。
例示としての実施形態に従った、電子システムの簡略化されたブロック図を示す図である。 例示としての実施形態に従った、周辺装置モジュールの簡略化されたブロック図を示す図である。 例示としての実施形態に従った、周辺装置モジュールデータレジスタに書き込む方法のフロー図である。 例示としての実施形態に従った、周辺装置モジュールデータレジスタに書き込む方法のフロー図である。 例示としての実施形態に従った、巡回冗長調査(CRC)モジュールの簡略化されたブロック図である。 例示としての実施形態に従った、CRC値を生成することに関連付けて実行されるライトデータ転送及びリードデータ転送に関連する種々の信号のためのタイミング図である。
種々の実施形態は、複数のシステムアーキテクチャの何れかにおいて実行されることが可能であり、図1は、特定の例示としての実施形態に従った、電子システム100の簡略化したブロック図である。図1の例示としての実施形態が示しているように、周辺装置モジュールにおけるデータレジスタにアクセスする電子システムは、プロセッサコア(例えば、プロセッサコア102)を処理要素として有することが可能である。他の電子システムの実施形態は他の種類の処理要素を有することが可能であり、“処理要素”は、処理要素と周辺装置モジュールとの間でデータ転送を開始するソフトウェア命令を実行するように適合されたプログラマブルハードウェアモジュールとして規定されることが可能である。例えば、処理要素は、プロセッサコア、非コア処理要素、直接メモリアクセス(DMA)ユニット、及び/又は処理要素と周辺装置モジュールとの間のデータ転送を開始するソフトウェア命令を実行するように適合され且つプログラマブルである他のハードウェアモジュールを含む群から選択されるハードウェアモジュールであることが可能である。従って、ここでは、図及び本明細書においては、電子システムがプロセッサコアを有する実施形態について説明されているが、それらの実施形態の範囲が他の種類の処理要素を有する電子システムを含むことを理解される必要がある。
ここで、図1及び特定の例示としての実施形態を参照するに、電子システム100は、1つ又はそれ以上のプロセッサコア102(又は他の処理要素)、1つ又はそれ以上のシステムバス制御器104、システムバス106、107、1つ又はそれ以上の周辺装置モジュール122、123、124、周辺装置バス126、割り込みコントローラ周辺装置モジュール134、及び/又は1つ又はそれ以上のメモリブロック(例えば、フラッシュアレイ150及びランダムアクセスメモリ152)を有する。電子システム100は、単独のプロセッサコア102を有するとして示されているが、電子システムは、他の実施形態においては、複数のプロセッサコアを有することが可能である。更に、3つの周辺装置モジュール122−124が例示されているが、電子システムは、他の実施形態においては、それより多くの又は少ない周辺装置モジュールを有することが可能である。
プロセッサコア102は、種々の実施形態において、例えば、マイクロコントローラコア、マイクロプロセッサコア、又はディジタル信号プロセッサ(DSP)コアを有することが可能である。プロセッサコア102は、種々の実施形態において、xビットワイドデータバス又はそれより広いビットワイドデータバスと接続することが可能である。特定の実施形態においては、プロセッサコアは32ビットコア(即ち、x=32)であるが、プロセッサコア102は、他の実施形態においては、8ビット幅、16ビット幅、64ビット幅、128ビット幅又は他のビット幅のプロセッサコアであることが可能である。
プロセッサコア102は、システムバス106、107を介して他のシステム構成要素と動作可能であるように結合され、それらのシステムバスは、アドレスバス108、109、リード(read)データバス110、111、及びライト(write)データバス112、113を有する。実施形態においては、システムバスのプロセッサコア側106は、かなりの変更なしにシステムバス制御器104を通過することが可能であり、従って、そのプロセッサコア側106及びメモリブロック側107は、実質的に同様に構成され且つ動作することが可能である。他の実施形態においては、システムバスのプロセッサコア側106の構成及び/又は動作はメモリブロック側107の構成及び/又は動作と異なることが可能であり、システムバス制御器104は変更を実行することが可能である(例えば、システムバス制御器104は、他のバスプロトコルへの変換を実行することが可能であり、及び/又は、特に、動作周波数を変更することが可能である)。システムバスのプロセッサコア側106とメモリブロック側107とにおける違いが存在することが可能であるが、それらは、説明の簡略化のために、システムバス106、107として集合的に表され、それら両側に関連するリード(read)バス、ライト(write)バス及びアドレスバスもまた、集合的に表されることが可能である。実施形態においては、リードデータバス110、111及びライトデータバス112、113の各々はxビットワイドデータバスであるが、それらは、他の実施形態においては、より広いビット幅のデータバスであることが可能である。更に、システムバス106、107は、読み出し/書き込み制御信号線(例えば、読み出し状態及び書き込み状態を有する読み出し/書き込み信号を供給する)、バスクロック線(例えば、システムバスクロック信号を供給する)、転送サイズ信号線、及び/又は待機信号性(例えば、バス転送多岐信号を搬送する)等の種々の制御線(図示せず)を有することが可能である。
プロセッサコア102は、特に、システムバス106、107に亘って、プロセッサコア102がデータアクセス要求(例えば、読み出し要求及び書き込み要求)を発行することを可能にするソフトウェア命令(例えば、機械読み出し可能コード)を実行するように適合される。データアクセス要求の発行においては、メモリブロック150、152又は周辺装置モジュール122−124における位置を指定する、アドレスバス108、109にアドレスを供給するプロセッサコア102を有する。書き込みタイプのデータアクセス要求については、プロセッサコア102はまた、システムバス106、107のライトデータバス112、113にデータ値を供給する。読み出しタイプのデータアクセス要求については、プロセッサコア102は、システムバス106、107のリードデータバス110、111からデータ値を読み出す。下記で更に詳細に説明するように、複数の実施形態において、プロセッサコア102により実行されるソフトウェアが、より少ないアクセス命令(例えば、書き込み命令、読み出し命令及び/又は移動命令)を用いて、周辺装置モジュール122−124にアクセスすることを可能にする。従って、そのようなアクセスは、従来の方法より効率的な手法で(例えば、バイト当たりより少ないプロセッササイクルで)実行されることが可能である。
システムバス制御器104は、システムバス106、107に亘って、プロセッサコア102と種々の種類のメモリブロックとの間で転送されるデータの流れを管理するように適合される。それらのメモリブロックは、例えば、フラッシュメモリアレイ150(Flash)及びスタティックRAM等のランダムアクセスメモリ152(RAM)を有することが可能である。付加的に又は代替として、システム100は、電気的消却可能なプログラマブル読み出し専用メモリ(EEPROM)等の読み出し専用メモリ及び/又は他の種類のメモリブロックを有することが可能である。
実施形態においては、システムバス制御器104は、周辺装置バス制御器120を有する、及び/又は周辺装置バス制御器120に動作可能であるように結合される。周辺装置バス制御装置120は、xビットワイドシステムバス106、107とzビットワイド周辺装置バス126との間のインタフェースを提供するように適合されている。特に、周辺装置バス制御器120は、システムバス106、107と、種々の種類の周辺装置モジュール122−124及び/又は周辺装置バス126に動作可能であるように結合された他のシステム構成要素との間のデータの流れを管理するように適合されている。システムバス制御器104は、典型的には、2つの基本的な機能を提供する。第1の機能は、プロセッサコア102からのアクセスのトラフィックフローを管理することと、適切なバスインタフェースへのデータ転送要求をルーティングすることとを有する。例えば、これは、システムバス107と接続するシステムバス制御器104における論理にデータ転送要求をルーティングすること、又は周辺装置バス制御器120にデータ転送要求をルーティングすることを有することが可能である。システムバス制御器104の第2の機能は、システムバス107のためのバスインタフェースを実行することを有する。同様に、周辺装置バス制御器120は、周辺装置バス126のためのバスインタフェースを実行する。実施形態においては、周辺装置制御器120はまた、下記で詳細に説明するように、プロセッサからのxビットデータアクセスの周辺装置バス126についての一連のzビットワイドデータアクセスへのハードウェア分解を処理し、ここでは、zはxより小さい。
周辺装置バス126は、周辺装置バス制御器120と周辺装置モジュール122−124との間に動作可能であるように結合される。実施形態においては、周辺装置バス126は、アドレスバス128、リードデータバス130及びライトデータバス132を有する同期式の非多重化バスである。代替の実施形態においては、リードデータバス130及びライトデータバス132は、周辺装置バスデータ線が双方向データバス線として動作されるときに、同じ物理データバスとして実行されることが可能である。実施形態においては、リードデータバス130及びライトデータバス132の各々はzビットワイドデータバスである(即ち、リードデータバス130はzリードデータ線を有し、ライトデータバス132はzライトデータ線を有する)。周辺装置バス126はまた、書き込み/読み出し制御信号線(例えば、読み出し状態及び書き込み状態を有する読み出し/書き込み信号を提供する)、バスクロック線(例えば、周辺装置バスクロック信号を提供する)、転送サイズ信号線、及び/又は待機クロック線(例えば、バス転送待機信号を搬送する)等の種々の制御線(図示せず)を有することが可能である。1つ又はそれ以上の周辺装置モジュール122−124は周辺装置バス126に動作可能であるように接続されている。周辺装置モジュール122−124の少なくとも1つは、種々の実施形態に従って、複数のアドレスレジスタマッピングを実行するように適合されているが、一部の周辺装置モジュール122−124はそのように適合されないことが可能である。下記で更に詳細に説明するように、“複数のアドレスレジスタマッピング”とは、周辺装置モジュール122−124における単一のリードデータレジスタ及び/又はライトデータレジスタへのアドレスバス128(又は、アドレスから導き出されたアドレスオフセット)に供給される複数のアドレスをマッピングする周辺装置モジュール122−124の能力のことをいう。ここで用いられているように、用語“アドレスオフセット”とは、フルアドレス、フルアドレスの一部(例えば、アドレスの最下位ビットの1つ又はそれ以上)、又はアドレスの他の逸脱のことをいう。周辺装置モジュール122−124は、例えば、巡回冗長調査(CRC)演算モジュール、チェックサム演算モジュール、シリアル周辺装置インタフェース(SPI)、汎用非同期受信器/送信器(UART)、カウンタ、タイマ、メモリ制御器、ディスプレイ制御器(例えば、液晶ディスプレイ(LCD)制御器)、ユーザインタフェース制御器(例えば、キーパッド、タッチスクリーン及び又はポインタ制御器)、割り込み制御器、及びパワーオンリセットジェネレータから選択された何れかの1つ又はそれ以上の周辺装置を有することが可能であるが、それらに限定されるものでない。電子システム100は、本発明の主題の実施形態と連携する又は連携しない種々の他の周辺装置を有することが可能である。
割り込み制御周辺装置モジュール134はまた、周辺装置バス126に動作可能であるように結合されている。割り込み制御周辺装置モジュール134は、周辺装置モジュール122−124の一部又は全てから割り込み信号(図示せず)を受信し、プロセッサコア102に割り込み線136を介して対応する割り込み信号を供給するように適合された一種の周辺装置モジュールである。
種々の代替の実施形態においては、電子システム100は、上記のように及び図1に示しているものと異なる構成要素を又はそれらに付加する構成要素を有することが可能である。例えば、電子システム100はまた、特に、1つ又はそれ以上のタイミングソース、外部インタフェース、汎用目的の入力/出力(GPIO)ポート、アナログインタフェース、付加的な又は異なるバス、電圧レギュレータ、及び/又は電力管理回路を有することが可能である。電子システム100は、実施形態においては、種々のシステム構成要素が単一の集積回路に集積されたシステムオンチップ(SoC)として実行されることが可能である。他の実施形態においては、電子装置100は、単一のパッケージに共にパッケージングされる複数の集積回路に種々のシステム構成要素が集積されたシステムインパッケージ(SiP)として実行されることが可能である。他の実施形態においては、種々の構成要素又は構成要素の集合が複数の集積回路に集積され、別個にパッケージングされることが可能である。
図2は、例示としての実施形態に従って、複数のアドレスレジスタマッピングを実行するように適合された周辺装置モジュール200(例えば、周辺装置モジュール122−124の1つ、図1)の簡略化されたブロック図である。図2の内容は、種々の実施形態の一般的な説明を提供するように意図されている。実際には、複数の実施形態が、種々の構成の周辺装置モジュールに組み込まれ、種々の機能を有することが可能であり、一部の特定の実施例が、図5乃至7と関連付けて説明されている。従って、図2及びそれに関連する説明は、限定的な意味で理解されるべきでない。
周辺装置モジュール200は、少なくとも1つのデータレジスタ204、205、206、207の1つ又はそれ以上に動作可能であるように結合された周辺装置機能回路202を有する。データ値がライトデータレジスタ206、207に書き込まれる各々のときに、周辺装置機能回路202が、後続のデータ値をライトデータレジスタ206、207に書き込まれる前に、データを処理する又はデータを消費することが可能である。同様に、周辺装置機能回路202がデータ値をリードデータレジスタ204、205に書き込む各々のときに、周辺装置機能回路202は、そのデータ値の外部のリードデータ転送が実行されるまで、リードデータレジスタ204、205に後続のデータ値を書き込むように待機することが可能である。周辺装置機能回路202は、実施形態に従って、少なくとも1つのデータレジスタ204−207からデータを書き込む及び/又はそれらにデータを読み出す。周辺装置機能回路202は、特に、データ転送機能及び/又は演算機能を含むことが可能である周辺装置モジュール200の主な機能を実行するように適合されている。例えば、周辺装置機能回路202は、1つ又はそれ以上のライトデータレジスタ206、207におけるデータに基づいて数学的関数を実行し、1つ又はそれ以上のリードデータレジスタ204、205(例えば、巡回冗長調査(CRC)値を演算する)に結果を供給し、ライトデータレジスタ206、207からリードデータレジスタ204、205にデータを転送し、及び/又は複数の他の主な機能の何れかを実行するように適合されることが可能であるが、それらに限定されるものでない。実施形態においては、周辺装置モジュール200は割り込み要求ジェネレータ203を有することが可能であり、周辺装置機能回路202は、割り込み要求ジェネレータ203が周辺装置バス割り込み信号線209において割り込み信号を生成するように適合されることが可能である。例えば、データ(例えば、結果)がリードデータレジスタ204、205から読み出される準備ができているときに及び/又は周辺装置機能回路202がライトデータレジスタ206、207からデータが供給される準備ができているときに、周辺装置機能回路202は割り込まれるようにすることが可能である。
周辺装置モジュール200はまた、周辺装置バス読み出し/書き込み信号線232に存在する読み出し信号/書き込み信号の状態を検出するように適合された読み出し/書き込み信号インタフェース230を有する。読み出し/書き込み信号がリードデータ転送を示し、アドレスデコード論理216がリードデータレジスタ204、205に対応するアドレスオフセットを復号化したとき、周辺装置モジュール200は、周辺装置バスリードデータ線210(例えば、リードデータバス130、図1)に復号化されたアドレスオフセットに対応するリードデータレジスタ204、205におけるデータを転送することが可能である。同様に、読み出し/書き込み信号がライトデータ転送を示し、アドレスデコード論理216がライトデータレジスタ206、207に対応するアドレスオフセットを復号化したとき、周辺装置モジュール200は、周辺装置バスライトデータ線214(例えば、ライトデータバス、図1)に存在するデータを、復号化されたアドレスオフセットに対応するライトデータレジスタ206、207に転送することが可能である。代替の実施形態においては、何れかの1つ又はそれ以上のレジスタ204−207は、リードデータレジスタ及びライトデータレジスタの両方として機能することが可能である。そのような実施形態においては、リードデータ線210とライトデータ線214との間の接続は単独のインタフェースに結合される(例示しているような、2つのインタフェース208、212ではなく)ことが可能であり、データ転送の方向は、リード/ライトデータ信号の状態に従って制御されることが可能である。更に、実施形態においては、上記のように、周辺装置バスリードデータ線210及び周辺装置バスライトデータ線214は、周辺装置バスデータ線が双方向データバス線として動作されるときに、同じ物理線として実行されることが可能である。
周辺装置モジュール200はまた、周辺装置バスクロック信号線236からクロック信号を受信し、種々の内部動作のタイミング(例えば、演算を実行し、アドレス又はオフセットを復号化する、等のレジスタ204−207のクロッキングデータ入力又は出力)に影響する1つ又はそれ以上の内部クロックを生成するように適合されるクロックジェネレータ234を有する。
周辺装置モジュール200はまた、1つ又はそれ以上のライトデータレジスタ206、207を有することが可能であり、それらの各々は、周辺装置バスライトデータ線214からバス書き込み線インタフェース212により転送されたデータを受信する且つ記憶するように適合されている。同様に、周辺装置モジュール200はまた、1つ又はそれ以上のリードデータレジスタ204、205を有することが可能であり、それらの各々は、バス読み出し線インタフェース208を介して周辺装置バスリードデータ線210にデータを供給する且つ記憶するように適合されることが可能である。実施形態においては、レジスタ204−207の少なくとも1つはyビットワイドレジスタであり、ここで、yはxより小さい(即ち、レジスタのビット幅yは処理要素及び/又はシステムバス106、107のビット幅xより小さい、図1)。特定の実施形態においては、レジスタ204−207は8ビットワイドレジスタ(即ち、y=8)であるが、他の実施形態においては、何れかの1つ又はそれ以上のレジスタ204−207は、4ビットワイドレジスタ、8ビットワイドレジスタ、16ビットワイドレジスタ、32ビットワイドレジスタ又は他のビットワイドレジスタであることが可能である。
図2に示す実施形態においては、周辺装置モジュール200は、2つのリードデータレジスタ(低リードデータレジスタ204及び高リードデータレジスタ205)と、2つのライトデータレジスタ(低ライトデータレジスタ206及び高ライトデータレジスタ207)とを有する。周辺装置モジュール200が、2つのリードデータレジスタ204及び205と、2つのライトデータレジスタ206、207とを有するように示されているが、他の実施形態においては、周辺装置モジュールは、それより多い又は少ないリードデータレジスタ及び/又はライトデータレジスタを有することが可能である。例えば、一部の他の実施形態においては、周辺装置モジュールは、両方でなく、1つ又はそれ以上のリードデータレジスタ又は1つ又はそれ以上のライトデータレジスタのみを有することが可能である。他の実施形態においては、周辺装置モジュールは、単独のリードデータレジスタ及び/又は単独のライトデータレジスタを有することが可能である。他の実施形態においては、送信バッファ(例えば、ファーストインバッファ、ファーストアウトバッファ又はFIFOバッファ)が、ライトデータレジスタ206、207のどちらか又は両方と関連付けられることが可能である。従って、各々のライトデータ転送のために、ライトデータレジスタ206、207における値がバッファに転送されることが可能であり、バッファの他の値が、ライトデータレジスタ206、207からバッファを介してシフトされることが可能である。同様に、受信バッファ(例えば、FIFOバッファ)は、リードデータレジスタ204、205のどちらか又は両方と関連付けられることが可能である。従って、各々のリードデータ転送のために、バッファからリードデータレジスタ204、205に値が転送されることが可能であり、バッファにおける他の値がリードデータレジスタ204、205にシフトされることが可能である。
周辺装置モジュール200はまた、実施形態においては、アドレスデコード論理216を有し、その論理は、周辺装置バスアドレス線224からバスアドレス線インタフェース222により受信されるアドレスに基づいてアドレスオフセットビット線220に存在する信号を復号化するように適合化される。その復号化処理に基づいて、アドレスデコード論理216は、バス読み出し線インタフェース208がリードデータレジスタ204、205から周辺装置バス読み出し線210にデータを転送するようにすることが可能であり、又は、アドレスデコード論理216は、バス書き込み線インタフェース212が周辺装置バス書き込み線214からライトデータレジスタ206、207の位置に転送するようにすることが可能である。
実施形態においては、各々のデータレジスタ204−207は1つ又はそれ以上のアドレスオフセットにマッピングされる。特定の実施形態においては、データレジスタ204−207の少なくとも1つは、上記のように、複数のアドレスレジスタマッピングを実行するように周辺装置200を適合し、下記で詳細に説明する複数のアドレスオフセットにマッピングされる。データレジスタ204−207以外のメモリレジスタは、それらのアドレスオフセットの1つ又はそれ以上にマッピングされることが可能であるが、また、そのような他の資源については、ここでは説明しない。上記のように、アドレスオフセットは、フルアドレス、フルアドレスの一部(例えば、アドレスの最下位ビットの1つ又はそれ以上)、又はアドレスのある他の逸脱のことをいう。例示されている実施形態においては、アドレスオフセットは、アドレス線224において受信されることが可能であるアドレスの4つの最下位ビットに対応し、従って、4つのアドレスオフセットビット線220は、アドレスデコード論理216にアドレスのそれらの4つの最下位ビットを転送するように適合されることが可能である。8つの周辺装置バスアドレス線224及び4つのアドレスオフセットビット線220が図示されているが、他の実施形態においては、それより多い又は少ない周辺装置バスアドレス線224及び/又はアドレスオフセットビット線220が含まれることが可能である。図示しているように、4つのアドレスオフセットビット線220により、アドレスデコード論理216が、16個の異なるアドレスオフセット(例えば、0000乃至1111(2進数)又は0x0乃至0xF(ここで、“0x”接頭辞は16進数値を示す)まで復号化することができる。他の実施形態においては、アドレスデコード論理216は、それより多い又は少ないアドレスオフセットを復号化するように適合されることが可能である。アドレス復号化は、実施形態においては、有線化されることが可能であり、それ故、不変であることが可能である、又は、他の実施形態においては、固定された又は構成可能なアドレスマップに基づいて、ソフトウェアにおける少なくとも一部において実行可能である。
アドレスオフセット復号化論理(ハードウェア、ソフトウェア又はそれら両方において実行される)はメモリマップとして表されることが可能である。実施形態においては、データレジスタ204−207の少なくとも1つは複数のアドレスに対してマッピングされることが可能である。本明細書で用いているように、用語“レジスタアドレスオフセットの集合”とは、特定のレジスタにマッピングされる複数のアドレスオフセットの集合のことをいう。特定の実施形態においては、特定のレジスタについての第1アドレスオフセット(即ち、アドレスオフセット0x0)は、yビットデータ値を読み出すための処理要素(例えば、プロセッサコア102、図1)により特定され、それ故、アドレスオフセットは“yビットワイドアクセスアドレスオフセット”と下記で呼ばれる第1アドレスに対応し、その場合、用語“yビットワイド”とは、アクセスされたデータの幅のことをいうのであって、yビット幅であることが可能であり、そうでないことも可能であるアドレスオフセットの幅のことをいうのではない。特定のレジスタについての1つ又はそれ以上の他のアドレスオフセット(即ち、アドレスオフセット0x4、0x5、0x6及び0x7)は、xビットデータ値を読み出す処理要素により特定される第2アドレスに対応することが可能であり、それ故、それらのアドレスオフセットは、“xビットワイドアクセスアドレスオフセット”と下でいうことが可能であり、その場合、用語“xビットワイド”とは、アクセスされるデータの幅のことをいい、xビットワイドであることが可能であり、そうでないことも可能であるアドレスオフセットの幅のことをいうのではない。yビットワイドアクセスアドレスオフセット及びxビットワイドアクセスアドレスオフセットも、又はそれらは代替として、他の実施形態においては、yビットデータ値及びxビットデータ値を読み出すことに対応することが可能である。下記で、テーブル1において周辺装置モジュールメモリマップの実施例の8ビットビューで特定されているように、低リードデータレジスタ204が、5つのアドレスオフセット(即ち、オフセット0x0、0x4、0x5、0x6及び0x7)を含むレジスタアドレスオフセットの集合に対してマッピングされ、低ライトデータレジスタ206は、5つのアドレスオフセット(即ち、オフセット0x2、0x8、0x9、0xA及び0xB)を含むレジスタアドレスオフセットの集合に対してマッピングされる。
Figure 2011512599
同じ実施例のメモリマップは、下記の表2におけるように、代替として32ビットビューで表されることが可能である。
Figure 2011512599
表1及び表2のメモリマップは、例えば、目的のみを提供することが可能であり、複数のメモリマップの変形が存在し得る。表1及び表2のメモリマップから収集されることが可能であるものは、種々の実施形態に従って、アドレスデコード論理216が、周辺装置モジュール200の単独のデータレジスタの全て又は同じ部分に対する複数のアドレスオフセットの集合(例えば、レジスタアドレスオフセットの集合)をマッピングするように適合されているが、アドレスデコード論理216はまた、1つ又はそれ以上の他のデータレジスタに複数のアドレスの1つ又はそれ以上の集合をマッピングすることが可能である。
特定の実施形態においては、レジスタアドレスオフセットの集合におけるアドレスオフセットの少なくとも1つは、yビットリードデータ転送又はyビットライトデータ転送に対応することが可能であり、レジスタアドレスオフセットの集合における他のアドレスオフセットの数n(ここで、n=x/y)は、シーケンシャルアドレスへの一連のn個のyビットワイドデータ転送として実行されるxビットリード及びライトデータ転送に対応することが可能であり、各々のシーケンシャルアドレスの各々のアドレスはyビットデータ(例えば、8ビットバイトデータ)に対応するアドレスである。換言すれば、そのような実施形態においては、“他の”アドレスオフセットの各々は、読み出される又は書き込まれるxビットデータ値のyビット部分に対応することが可能である。例えば、ライトデータレジスタ204が8ビットレジスタであり、処理要素(例えば、プロセッサコア102、図1)が低ライトデータレジスタ206に8ビットデータ値を書き込む命令を実行する場合、低ライトデータレジスタ206(例えば、上記の表1からのアドレスオフセット0x2)にマッピングされる第1アドレスオフセットに対応する周辺装置バスアドレス線224においてアドレスが供給されることが可能である。それに対して、処理要素が、ライトデータレジスタ206に32ビットデータ値を書き込む命令を実行する場合、4つのアドレス(即ち、n=4及びn=x/y=32/8=4)が、他の4つのアドレスオフセットに対応する周辺装置バスアドレス線224において供給されることが可能であり、それらの各々は低ライトデータレジスタ206(例えば、上記の表1からのアドレスオフセット0x8、0x9、0xA及び0xB)にマッピングされる。
下記で更に詳細に説明しているように、xビット処理要素(例えば、プロセッサコア102、図1)が周辺装置モジュール(例えば、周辺装置モジュール200)のyビットデータレジスタ(例えば、レジスタ204−207)にアクセスするシステムにおいて、単独のレジスタへの複数のアドレスオフセットのマッピングの適合は、従来のシステム及び方法と比べて、より少ない処理命令の実行によって周辺装置モジュールによりxビットデータ転送を実行することを可能にする。例えば、処理要素から周辺装置モジュールの8ビットレジスタへの32ビットライトデータ転送について、処理要素は単独の32ビット書き込み命令を実行することを可能にし、32ビットデータ値は、周辺装置バス制御器(代替の実施形態においては、例えば、周辺装置バス制御器120、図1又はバス制御器104)により、単独の8ビットレジスタにマッピングされた4つのアドレスオフセットに対応する4つの周辺装置モジュールアドレスに対する4つの8ビットライトに分解されることが可能である。実施形態においては、4つの周辺装置モジュールアドレス及び4つのアドレスオフセットは、連続的なアドレス及びアドレスオフセットであるが、それらは、他の実施形態においては、非連続的であることが可能である。処理要素が32ビットデータ値を書き込む4つの8ビット書き込み命令を実行する従来の方法に代えて、処理要素は、4つの書き込み命令より少ない命令(例えば、単独の32ビット書き込み命令又は2つの16ビット書き込み命令)を実行することが可能である。これは、32ビットライトデータ転送を終了するように消費されるプロセッササイクルの数をかなり減少させることを可能にする。
ライトデータ転送及びリードデータ転送を実行する方法の実施形態については、図3及び4のそれぞれに関連付けて詳細に説明されている。図1及び2の種々の要素が、図3及び4の方法の説明において、明確化のために、言及されているため、図3及び4は、図1及び2に関連付けてみる必要がある。
先ず、ライトデータ転送を実行する実施形態の説明を参照するに、図3は、例示としての実施形態に従って、周辺装置モジュール(例えば、周辺装置モジュール200)のデータレジスタに書き込む方法のフロー図である。特に、その方法は、メモリ(例えば、フラッシュアレイ150又はRAM152)から32ビットデータ値をフェッチし、周辺装置モジュール(例えば、周辺装置モジュール200)の8ビットライトデータレジスタ(例えば、低ライトデータレジスタ206)に32ビットデータ値を書き込む、32ビット処理要素(例えば、プロセッサコア102)に対応する。他の実施形態においては、異なるビット幅の処理要素が異なる幅のデータ値をメモリからフェッチすることが可能であり、異なる幅のライトデータレジスタにそのデータ値を書き込むことが可能である。
その方法は、処理要素がメモリから32ビットデータ値をフェッチする1つ又はそれ以上のソフトウェア命令を実行するときに、ブロック302において開始されることが可能である。例えば、処理要素(例えば、プロセッサコア102)は、システムバス106、107の読み出し/書き込み信号の状態を読み出し状態に設定することが可能であり、システムバス106、107のアドレスバス108、109においてアドレスを提供することが可能であり、その場合、そのアドレスは、フラッシュアレイ150又はRAM152におけるメモリ位置に対応している、処理要素は、その場合、リードデータバス110、111から利用可能なときに32ビットデータ値を読み出すことが可能であり、1つ又はそれ以上のレジスタ若しくは他のメモリ位置に32ビットデータ値を記憶することが可能である。
ブロック304においては、処理要素は、周辺装置モジュールの8ビットライトデータレジスタに32ビットデータ値を書き込む1つ又はそれ以上のソフトウェア命令を実行することが可能である。ブロック302のフェッチ命令及びブロック304の書き込み命令は、メモリ位置(例えば、フラッシュアレイ150又はRAM152における)から周辺装置モジュールの8ビットライトデータレジスタに、32ビットデータ値が移動される必要があることを指定する単独の移動命令に小さくされる(collapsed)ことが可能である。何れかのイベントにおいては、処理要素は、システムバス106、107の読み出し/書き込み信号の状態を書き込み状態に設定することが可能であり、周辺装置モジュールにより、周辺装置モジュールの8ビットライトデータレジスタに対してマッピングされる第1アドレスオフセット(例えば、上記のテーブル1からのアドレスオフセット0x8)に対応するアドレスバス108、109においてアドレスを提供することが可能である。更に、処理要素は、周辺装置バスのライトデータバス112、113において32ビットデータ値を供給する。
ブロック306においては、周辺装置バス制御器(例えば、周辺装置バス制御器120、図1)はアドレス及び32ビットデータ値を受信し、1つ又はそれ以上のレジスタにその32ビットデータ値を一時的に記憶することが可能である。実施形態においては、バス制御器120は一連のzビットワイドデータ転送を実行し、ここで、zは周辺装置バス126のライトデータバス132の幅である。説明の簡略化のために、この実施例においては、ライトデータバス132が、周辺装置モジュールのライトデータレジスタ(例えば、低ライトデータレジスタ206)と同じビット幅を有することを前提としている。従って、この実施例においては、z=8である。ライトデータバス132の幅は、ライトデータレジスタの幅より小さいことが可能であり(例えば、zは、種々の実施形態において、yに等しい又はそれより小さいことが可能であり)、その場合、システムバス制御器104及び/又は周辺装置バス制御器120は、ライトデータレジスタにyビットデータ値を書き込むように、複数のライトデータ転送を実行することが可能である。
z=8である実施例を継続するに、各々のライトデータ転送は、書き込む次の8ビットデータ値を特定することと、周辺装置モジュールにおいて、単独のライトデータレジスタに対してマッピングされる複数のライトデータレジスタアドレスの1つを用いて、8ビットライトデータ転送を実行することとを有する。例えば、最初のライトデータ転送について、32ビットデータ値の特定のバイトが書き込まれる第1バイトとして選択されることが可能であり、バス制御器120は、周辺装置モジュールのライトデータレジスタにマッピングされる第1ライトデータレジスタアドレスを用いることが可能である。実際のライトデータ転送は、周辺装置バス126の読み出し/書き込み信号の状態を書き込み状態に設定することと、周辺装置バス126のライトデータバス132に32ビットデータ値の第1バイトを供給することと、周辺装置バス126のアドレスバス128において第1ライトデータレジスタアドレスを提供することとを有することが可能であるが、その順序にする必要はない。
ブロック308においては、周辺装置モジュールは、アドレスバス128における第1ライトデータレジスタアドレス及びライトデータバス132における第1バイトと共に読み出し/書き込み信号を受信する。周辺装置モジュールのアドレスデコード論理216は、第1アドレスにおいて示されたアドレスオフセットをライトデータレジスタ206にマッピングし、第1バイトはライトデータレジスタ206に転送され、周辺装置機能回路202により処理されることが可能である。例えば、上記の表1も参照するに、第1アドレスにおいて示されたアドレスオフセットは、低ライトデータレジスタ206にマッピングされた4つの連続的なアドレスオフセットの1つである0x8のオフセットであることが可能である。
ブロック306に後続して即座に及び/又はブロック308の実行と平行して、バス制御器120は、32ビットデータ値の8ビットデータ値が書き込まれたか、又はライトデータレジスタ206に書き込まれているかを判定することが可能である。最後の値が書き込まれたとき(即ち、バス制御器120が32ビットデータ値の全ての4バイトの書き込みを終了したとき)、その方法は終了することが可能である。最後の値が書き込まれたとき、その方法は、バス制御器120が一連の中の次の8ビットワイドデータライトデータ転送を実行するブロック306に戻ることが可能である。例えば、第2ライトデータ転送については、32ビットデータ値の異なるバイトが、書き込まれる第2バイトとして選択されることが可能であり、バス制御器120は、周辺装置モジュールのライトデータレジスタ(例えば、上記の表1の0x9のオフセットに対応するライトデータレジスタアドレス)にマッピングされた第2ライトデータレジスタアドレスを用いることが可能である。また、ライトデータ転送は、周辺装置バス126の読み出し/書き込み信号の状態を書き込み状態に設定することと、周辺装置バス126のライトデータバス132に第2バイトを抽出して供給することと、周辺装置バス126のアドレスバス128において第2ライトデータレジスタアドレスを提供することとを有することが可能であるが、その順序にする必要はない。この繰り返し処理は、記憶されている32ビットデータ値の全ての4バイトがライトデータレジスタ206に書き込まれるまで続くことが可能である。
本発明の主題の実施形態を実行することに対する潜在的な有利点は、従来の方法に比べて、周辺装置モジュールのyビットワイドレジスタにxビットワイドデータ値を書き込み、周辺装置モジュールからxビットワイドデータ値を読み出すために(ここで、xはyより大きい)、処理要素はより少ない命令を実行することが可能であることである。従って、データにアクセスするのに、消費されるプロセッササイクルはより少なくて済むのである。例示としてのコードが下記に示され、そのコードは、フラッシュアレイ(例えば、フラッシュアレイ150)の領域のCRCの演算をCRCモジュールが実行するように、CRCモジュールに複数の32ビットデータ値をフェッチして、書き込む処理要素に対応する。種々の実施形態を用いて、CRCモジュールにおける8ビットレジスタにメモリからフェッチされる各々の32ビットデータ値を書き込むように、後続のアセンブリコードに従って、処理要素は、32ビットロング移動(mov.l)処理を実行することが可能である。CRCレジスタは、単に例示目的で、CRCモジュールの低ライトデータレジスタであるように次に示されている。
#d0=byteCount/4
#a0=フラッシュアレイに対するポインタ
#a1=CRC低ライトデータレジスタに対するポインタ
L%1: #長語コピー、展開4x
mov.1(%a0)+,(%a1) #CRCに対するコピーソースデータ4バイト値
mov.1(%a0)+,(%a1) #CRCに対するコピーソースデータ4バイト値
mov.1(%a0)+,(%a1) #CRCに対するコピーソースデータ4バイト値
mov.1(%a0)+,(%a1) #CRCに対するコピーソースデータ4バイト値
sbq.1&4,%d0 #デクリメントループカウンタ
bne.b L%1 #実行した?実行していない場合、分岐してループの一番上に戻る
比較のために、周辺装置において8ビットレジスタにメモリから同じ32ビットデータ値を転送するように従来の技術を用いると、処理要素は、多くの移動処理として4回実行され、その場合、各々の移動処理は、例示として次のコードに示すように、全体の32ビットデータ値を一度に書き込むのではなく、各々の移動処理は一度に1バイトを書き込む。
#d0=byteCount
#a0=フラッシュアレイに対するポインタ
#a1=CRC低ライトデータレジスタに対するポインタ
L%0: #バイトコピー、展開4x
mov.b(%a0)+,(%a1) #CRCに対するコピーソースデータバイト値
mov.b(%a0)+,(%a1) #CRCに対するコピーソースデータバイト値
mov.b(%a0)+,(%a1) #CRCに対するコピーソースデータバイト値
mov.b(%a0)+,(%a1) #CRCに対するコピーソースデータバイト値
sbq.1&4,%d0 #デクリメントループカウンタ
bne.b L%0 #実行した?実行していない場合、分岐してループの一番上に戻る
潜在的な性能の利益に関して、実施形態に従った例示としての第1コードを実行する処理要素は、転送されたバイト当たり約2.25CPUサイクルの測定した性能が得られる一方、従来の方法に従った例示としての第2コードを実行する処理要素は、転送されるバイト当たり約6.00CPUサイクルの測定された性能が得られる。測定された性能に従って、同じプロセッサコアにおいて実行され、両方の実施例が同じクロック周波数で処理されるとき、例示としての第1コードの実行は、例示としての第2コードの実行に比べて、約2.66倍速い。従って、種々の実施形態の有利点をとるコードを実行することは、従来の方法に比べて、処理要素の性能のかなりの改善を提供することができる。
周辺装置モジュールのyビットワイドライトデータレジスタにxビットワイドデータ値を書き込むように種々の実施形態を実行することに加えて、周辺装置モジュールのyビットリードデータレジスタからxビットデータ値を読み出すようにまた、又は代替として、実施形態が実行されることが可能である。図4は、例示としての実施形態に従って、周辺装置モジュールのデータレジスタを読み出す方法のフロー図である。特に、その方法は、周辺装置モジュール(例えば、周辺装置モジュール200、図2)の8ビットリードデータレジスタ(例えば、低リードデータレジスタ204)から32ビットデータ値を読み出す32ビット処理要素(例えば、プロセッサコア102)に相当する。他の実施形態においては、異なるビット幅の処理要素は、周辺装置モジュールの異なる幅のリードデータレジスタから異なる幅のデータ値を読み出すことが可能であることが理解される必要がある。
その方法は、ブロック402において、周辺装置モジュールの8ビットレジスタから32ビットデータ値を読み出す1つ又はそれ以上のソフトウェア命令を処理要素が実行するときに、開始することが可能である。例えば、図1を参照するに、プロセッサコア102は、システムバス106、107の読み出し/書き込み信号の状態を読み出し状態に設定することが可能であり、システムバス106、107のアドレスバス108、109におけるアドレス(ここでは、“処理要素により供給されるアドレス”という)を提供することが可能であり、その場合、そのアドレスは、周辺装置モジュールの8ビットリードデータレジスタ(例えば、低リードデータレジスタ204)に相当する。
ブロック404においては、バス制御器120は、読み出し/書き込み信号及びコアにより供給されたアドレスを受信し、それに応答して、一連の複数のzビットワイドデータリードデータ転送における最初の転送を実行し、その場合、zは周辺装置バス126のリードデータバス130の幅である。下記で明確になるように、バス制御器120は、レジスタの適切な部分又は他のメモリ位置に読み出される各々のz−ビットワイドデータ値を一時的に位置付けることにより一連のリードデータ転送の過程中にxビットワイドデータ値を構築し、それ故、全体的なxビットワイド値を構築する。説明を簡略化するために、この実施例においては、周辺装置モジュールのリードデータレジスタ(例えば、低リードデータレジスタ204)と同じビット幅をリードデータバス130が有することを前提としている。従って、この実施例においては、z=8である。リードデータバス130の幅は、リードデータレジスタの幅より小さい(例えば、種々の実施形態において、zはyに等しいか、それより小さい)ことが可能であり、その場合、バス制御器120は、リードデータレジスタからyビットデータ値を読み出すように、複数のリードデータ転送を実行することが可能である。
z=8である実施例を継続するに、各々のリードデータ転送は、読み出す次の8ビットデータ値を特定することと、周辺装置モジュールにおいて単独のリードデータレジスタにマッピングされる複数のリードデータレジスタアドレスの1つを用いて8ビットリードデータ転送を実行することとを有する。例えば、最初のリードデータ転送については、32ビットデータ値の特定のバイトが、読み出される第1バイトとして選択されることが可能であり、バス制御器120は、周辺装置モジュールのリードデータレジスタにマッピングされる第1リードデータレジスタアドレスを用いることが可能である。実際のリードデータ転送は、周辺装置バスの読み出し/書き込み信号の状態を読み出し状態に設定することと、周辺装置バス126のアドレスバス128において第1リードデータレジスタアドレスを提供することと、利用可能であるときに、周辺装置バス126のリードデータバス130から32ビットデータ値の第1バイトを読み出すことと、バス制御器120においてアクセス可能な32ビットレジスタ又は他のメモリ位置における第1バイトを記憶することとを有することが可能である。
ブロック406においては、周辺装置モジュールは、アドレスバス128において第1リードデータレジスタアドレスと共に読み出し/書き込み信号を受信する。周辺装置モジュールのアドレスデコード論理216は、第1アドレスにおいて示されたアドレスオフセットをリードデータレジスタ204にマッピングし、第1バイトは、周辺装置バス126のリードデータバス130にリードデータレジスタ204から転送されることが可能である。例えば、上記の表1を参照するに、第1アドレスにおいて示されるアドレスオフセットは、低リードデータレジスタ204にマッピングされた4つのアドレスオフセットの1つであるオフセット0x4であることが可能である。
ブロック408においては、バス制御器120は、リードデータバス130から第1バイトを読み出し、32ビットデータ値を構築するように用いられるレジスタ又は他のメモリ位置における適切な位置にデータを一時的に記憶することが可能である。バス制御器120は、ブロック410において、32ビットデータ値の最後のバイトが読み出されたか、リードデータレジスタ204から読み出されているかを判定することが可能である。その最後の値が読み出されていないとき、その方法は、一連の中の次の8ビットワイドリードデータ転送をバス制御器120が実行するブロック404に戻ることが可能である。例えば、第2リードデータレジスタについては、32ビットデータ値の異なるバイトが、読み出される第2バイトとして選択されることが可能であり、バス制御器120は、周辺装置モジュールのリードデータレジスタにマッピングされた第2リードデータレジスタアドレス(例えば、上記の表1の0x5のオフセットに対応するリードデータレジスタアドレス)を用いることが可能である。また、リードデータ転送は、周辺装置バス126の読み出し/書き込み信号を読み出し状態に設定することと、周辺装置バス126のアドレスバス128において第2リードデータレジスタアドレスを提供することと、利用可能なときに周辺装置バス126のリードデータバス130から第2バイトを供給することと、32ビットデータ値が構築されている32ビットレジスタ又は他のメモリ位置の適切なバイト位置に第2バイトを一時的に記憶することとを有する。
ブロック410において、最後の値が読み出されたことが判定されたとき(即ち、32ビットデータ値の全ての4つのバイトがリードデータレジスタ204から読み出されたとき)、ブロック412において、バス制御器120は、システムバス106、107のリードデータバス110、111にレジスタ又はメモリ位置を一時的に維持する32ビットにおけるデータを転送することにより、処理要素に32ビットデータ値を供給することが可能である。処理要素は、その場合、リードデータバス110、111から32ビットレジスタ又は他のメモリ位置にデータを転送することが可能である。その方法は、その場合、終了することが可能である。
周辺装置モジュールの特定の実施例について、図5及び6を関連付けて次に詳述する。特に、図5及び6は、CRCモジュールにおいて実行される例示としての実施形態に従ったブロック図及びタイミング図のそれぞれを示している。図5及び6に関連付けて説明されている周辺装置モジュールの実施形態は、単にCRCモジュールにおける種々の実施形態の制限的な実行として捉えるべきでないとして理解される必要がある。実際には、実施形態は、多様な種類の周辺装置モジュールにおいて実行されることが可能であり、そのような多様な種類の周辺装置モジュールの非排他的なリストが上記で与えられている。
図5は、例示としての実施形態に従ったCRCモジュール500の簡略化されたブロック図である。上記のように、CRCモジュールは、実施形態に従って実行されることが可能である多様な種類の周辺装置モジュールの1つである。CRCモジュール500は、実施形態に従って、CRCジェネレータ回路502、CRC低データレジスタ504、CRC高データレジスタ506及びアドレスデコード論理516を有する。CRCモジュール500はまた、周辺装置バスクロック信号線536からクロック信号を受信し、種々の内部処理のタイミングに影響する1つ又はそれ以上の内部クロックを生成するように適合されたクロックジェネレータ534を有する。
CRCジェネレータ回路502は、メモリブロックに記憶されているデータ及びシード値に基づいて、メモリブロックについてCRC値を演算するように適合される。例示としての実施形態においては、CRCモジュールジェネレータ回路502は16ビットCRCジェネレータ回路を有し、シード値は16ビットシード値である。処理中、処理要素(例えば、処理コア102、図1)は、CRC低データレジスタ504に16ビットシード値の第1バイトと、CRC高データレジスタ506に16ビットシード値の第2バイトとを書き込むことが可能である。16ビットシード値をロードすることに後続して、実施形態において、処理要素は、メモリブロックから1つ又はそれ以上の32ビットデータ値をフェッチし、CRC低データレジスタ504に各々の32ビットデータ値を書き込むことが可能であり、その実施形態は、処理要素がメモリブロックから複数の8ビットデータ値をフェッチし、CRC低データレジスタに各々の8ビットデータ値を書き込む(例えば、それ故、同じデータ量を転送するのにデータ転送をフェッチして書き込む数の約4倍を実行する)従来のシステムと区別可能である。バス制御器(例えば、バス制御器120、図1)は、その場合、アドレスデコード論理512により、CRC低データレジスタ504にマッピングされる複数のアドレスの1つに対して32ビットデータ値の各々のバイトを書き込むことが可能である。各々のバイトは、組み合わされたCRC高データレジスタ506及びCRC低データレジスタ504における16ビットCRC値を生成するように、CRCジェネレータ回路502により処理されることが可能である。CRC低データレジスタ504に最後のデータ値を書き込んだ後、処理要素は、続いて、組み合わされたCRC高データレジスタ506及びCRC低データレジスタ504からもたらされる16ビットCRC値を読み出すことが可能である。
CRCモジュール500はまた、周辺装置バス読み出し/書き込み信号線532に存在する読み出し/書き込み信号の状態を検出するように適合された読み出し/書き込み信号インタフェース530を有する。読み出し/書き込み信号がリードデータ転送を表し、アドレスデコード論理516が、CRC低データレジスタ504又はCRC高データレジスタ506に対応するオフセットを復号化したとき、CRCモジュール500は、復号化オフセットにより特定されるように、CRC低データレジスタ504又はCRC高データレジスタ506におけるデータを周辺装置バスリードデータ線(例えば、リードデータバス130、図1)に転送することが可能である。同様に、読み出し/書き込み信号がライトデータ転送を表し、アドレスデコード論理516が、CRC低データレジスタ504又はCRC高データレジスタ506に対応するオフセットを復号化したとき、CRCモジュール500は、復号化オフセットにより特定されるように、CRC低データレジスタ504又はCRC高データレジスタ506に周辺装置バスライトデータライン514(例えば、ライトデータバス132、図1)に存在するデータを転送することが可能である。
CRC低データレジスタ504及びCRC高データレジスタ506の各々は、周辺装置バスライトデータ線514からバス読み出し/書き込み線インタフェース508により転送されるデータを受信して、記憶するように適合される。更に、CRC低データレジスタ504及びCRC高データレジスタ506は、それらにおいて記憶されているデータをCRCジェネレータ回路502に供給するように適合されている。CRC高データレジスタ506及びCRC低データレジスタ504はまた、各々のデータバイトがCRC低データレジスタ504に書き込まれるために、結果として得られる16ビットCRC値を受信して、記憶するように適合される。CRC高データレジスタ506及びCRC低データデータレジスタ504に記憶されている得られた16ビットCRC値は、リードデータ転送中に、バス読み出し/書き込み線インタフェース508により周辺装置バスリードデータ線510に転送されることが可能である。実施形態においては、CRC低データレジスタ504又はCRC高データレジスタ506は8ビットワイドレジスタであるが、他の実施形態においては、CRC低データ504レジスタ又はCRC高データレジスタ506のどちらか又はそれらの両方は、4ビット、16ビット、32ビット又は他のビット幅のレジスタであることが可能である。図5に示している実施形態においては、CRCモジュール500は、1つのCRC低データレジスタ504及び1つのCRC高データレジスタ506を有するが、CRCモジュールは、他の実施形態において、更なるCRC低データレジスタ及び/又はCRC高データレジスタを有することが可能である。
CRCモジュール500はまた、実施形態において、周辺装置バスアドレス線524(例えば、アドレスバス128、図1)からバスアドレス線インタフェース522により受信されたアドレスに基づいてアドレスオフセットビット線520において存在する信号を復号化するように適合されているアドレスデコード論理516を有する。復号化処理に基づいて、アドレスデコード論理516は、CRC低データレジスタ504又はCRC高データレジスタ506の1つから周辺装置バス読み出し線510に、バス読み出し/書き込み線インタフェース508がデータを転送するようにし、アドレスデコード論理516は、周辺装置バス書き込み線514からCRC低データレジスタ504又はCRC高データレジスタ506の1つに、バス読み出し/書き込み線インタフェース508がデータを転送するようにすることが可能である。
実施形態においては、CRC高データレジスタ506は単独のアドレスオフセットにマッピングされ、CRC低データレジスタ504は複数のアドレスオフセットにマッピングされる。これは、上記のように、CRCモジュール500が複数アドレスのレジスタマッピングを実行するように適合させる。特定の実施形態においては、CRC低データレジスタアドレスオフセット(即ち、アドレスオフセット0x1)の1つは、処理要素により8ビットデータ値を書き込むために特定され、それ故、アドレスオフセットがyビットワイドアクセスアドレスオフセットである、第1アドレスに対応することが可能である。他のCRC低データレジスタアドレスオフセット(即ち、アドレスオフセット0x4、0x5、0x6及び0x7)は、処理要素により32ビットデータ値について特定され、それ故、それらのアドレスオフセットはxビットワイドアクセスアドレスオフセットである、第2アドレスに対応することが可能である。下記の表3において周辺装置モジュールメモリマップの例示としての8ビットビューにおいて特定されるように、CRC低データレジスタ504は、5つのアドレスオフセット(即ち、オフセット0x1、0x4、0x5、0x6及び0x7)を有するレジスタアドレスオフセットの集合に対してマッピングされる。
Figure 2011512599
“CRC0”とは、CRC低データレジスタ504にマッピングするアドレスオフセット(即ち、アドレスオフセット0x4)に対応する32ビットデータ値の第1バイトのことをいう。同様に、“CRC1”とは、CRC低データレジスタ504にまたマッピングするアドレスオフセット(即ち、アドレスオフセット0x5)に対応する32ビットデータ値の第2バイトのことをいう、等である。表3のメモリマップは、単なる例示として与えられ、多くのメモリマップの変形が存在し得る。表3のメモリマップから収集され得るものは、種々の実施形態に従って、アドレスデコード論理516は、複数のアドレスオフセットの集合をCRCモジュール500の単独のデータレジスタにマッピングするように適合されるが、アドレスデコード論理516はまた、複数のアドレスの1つ又はそれ以上の集合を1つ又は他のデータレジスタにマッピングすることが可能であるものである。
図6は、例示としての実施形態に従って、CRC値を生成することに関連付けて実行されるライト及びリードデータ転送に関連する種々の信号についてのタイミング図である。そのタイミング図は、クロック信号602(CLK)、アドレスバス信号604(ADDR)、読み出し/書き込み信号606(R/W)、ライトデータバス信号608(WDATA)及びリードデータバス信号610(RDATA)を有する。図6に示す信号に加えて、例えば、イネーブル信号及び待機信号等の1つ又はそれ以上の付加信号が、CRC値の生成中に存在することが可能であるが、それらの信号は、簡略化目的で図示され且つ説明されているのではない。各々のライトデータ転送中に、読み出し/書き込み信号606の状態は、書き込み状態(例えば、低状態)に設定され、各々のリードデータ転送中に、読み出し/書き込み信号606の状態は読み出し状態(例えば、高状態)に設定される。アドレス及びデータは、実施形態に従って図示されているように、クロック信号602の低から高への転送中に、又は代替としてクロック信号602の高から低への転送中にクロック制御されることが可能である。CRC値生成中に実行される種々の処理は、図5に示されているものに比べて、より多い又はより少ないクロックサイクルをとることが可能であり、より多い又はより少ないデータのバイトがCRC値を生成するように用いられることが可能である。下記の説明においては、図5の要素について言及している。
CRC値を生成するように、実施形態に従って、後続の処理のシーケンスが存在することが可能であるが、そのシーケンスは、他の実施形態においては、実質的に同様の結果を得ながら、変更されることが可能である。CRC値の生成は、実施形態においては、処理要素(例えば、プロセッサコア102、図1)がシード値をロードするときに、始まることが可能である。これは、例えば、CRC高データレジスタ506に16ビットシード値の第1バイト(0xFF)を書き込み、CRC低データレジスタ504に16ビットシード値の第2バイト(0xFF)を書き込む処理要素を有することが可能である。16ビットシード値の第1バイトを書き込むように、処理要素は、CRCモジュールのアドレスデコード論理516がCRC高データレジスタ506(例えば、上記の表3におけるアドレスオフセット0x0)に対してマッピングするというアドレスオフセットに対応するアドレスと共に第1バイトを提供することが可能である。そのアドレスオフセットはマッピングされることが可能であり、第1バイト(0xFF)は、図6に示しているように、第1クロックサイクル620においてCRC高データレジスタ506に対してクロック制御されることが可能である。同様に、16ビットシード値の第2バイトを書き込むように、処理要素は、16ビットシード値の第2バイトを書き込むように、処理要素は、CRCモジュールのアドレスデコード論理516がCRC低データレジスタ504(例えば、上記の表3におけるアドレスオフセット0x1)に対してマッピングするというアドレスオフセットに対応するアドレスと共に第2バイトを提供することが可能である。このアドレスオフセットは、CRC低データレジスタ504についてのyビットワイドアクセスアドレスオフセットと呼ばれる。そのアドレスオフセットはマッピングされることが可能であり、第2バイト(0xFF)は、第2クロックサイクル621においてCRC低データレジスタ504に対してクロック制御されることが可能である。16ビットシード値(0xFFFF)は、従って、CRC高データレジスタ506及びCRC低データレジスタ504にロードされる。
処理要素は、その場合、CRC値が生成されているメモリブロックから第1の32ビットデータ値をフェッチし、CRCモジュールのアドレスデコード論理516がまた、CRC低データレジスタ504にマッピングするxビットワイドアクセスアドレスオフセットの1つ(例えば、上記の表3におけるアドレスオフセット0x4)に対応するアドレスに対してその32ビットデータ値を書き込むように、実行されることが可能である。バス制御器(例えば、バス制御器120、図1)は、その場合、CRC低データレジスタ504に対して4つの書き込みのシーケンスを実行することが可能であり、その場合、各々の書き込みは、32ビットデータ値から選択されたバイトを書き込むことを有する。実施形態においては、そのシーケンスの第1書き込みは、32ビットデータ値の第1バイト(0x31)を書き込み、CRC低データレジスタ504に対してマッピングする第1アドレスをアドレス指定し、そのシーケンスの第2書き込みは、32ビットデータ値の第2バイト(0x32)を書き込み、CRC低データレジスタ504に対してマッピングする第2アドレスをアドレス指定し、そのシーケンスの第3書き込みは、32ビットデータ値の第3バイト(0x33)を書き込み、CRC低データレジスタ504に対してマッピングする第3アドレスをアドレス指定し、そしてそのシーケンスの第4書き込みは、32ビットデータ値の第4バイト(0x34)を書き込み、CRC低データレジスタ504に対してマッピングする第4アドレスをアドレス指定する。クロックサイクル622、623、624及び625中、4つのアドレスオフセットのシーケンス(例えば、アドレスオフセット0x4、0x5、0x6及び0x7)は、ライトデータバス信号608におけるデータの4つのバイトと共にアドレスバス信号604において順次に示されている。上記のように、それらの4つのデータオフセットは、実施形態においては、CRC低データバス504に対してアドレスデコード論理516によりマッピングされることが可能である。クロックサイクル625の終わりに、CRCモジュール500は、CRC高データレジスタ506及びCRC低データレジスタ504に対して16ビットシード値(0xFFFF)を受信し、CRC低データレジスタ504に4つのバイト(0x31、0x32、0x33、0x34)をまた受信する。次の4つのクロックサイクル626、627、628、629中、4つの付加的なバイト(0x35、0x36、0x37、0x38)が、xビットワイドアクセスアドレスオフセット(例えば、アドレスオフセット0x4)に対応するアドレスに第232ビットデータ値を書き込む処理要素の結果としてCRC低データレジスタ504に受信される。次のクロックサイクル630中、CRC値が生成されているメモリブロックにおける最後のデータバイトを表すことが可能である1つの付加的なバイトが、CRC低データレジスタ504に受信される。その最後の書き込まれた値は32ビットデータ値ではなく、1バイトに対応するため、処理要素は、yビットワイドアクセスCRCアドレスオフセット(例えば、アドレスオフセット0x1)に対応するアドレスにその8ビットデータ値を書き込むことが可能である。クロックサイクル631は、CRCジェネレータ回路502がCRC値の演算を終了することが可能であるウェイトサイクルを表す。
CRC低データレジスタ504及びCRC高データレジスタ506から16ビットCRC値を読み出すように、処理要素は、CRC高データレジスタ506から16ビットCRC値の第1バイトを読み出し、CRC低データレジスタ504から16ビットCRC値の第2バイトを読み出すことが可能である。16ビットCRC値の第1バイトを読み出すように、処理要素は、CRCモジュールのアドレスデコード論理516がCRC高データレジスタ506にマッピングするアドレスオフセット(例えば、上記の表3におけるアドレスオフセット0x0)に対応するアドレスを提供することが可能である。そのアドレスオフセットはマッピングされることが可能であり、第1バイト(0x29)は、図6に示しているように、クロックサイクル632中、CRC高データレジスタ506から読み出されることが可能である。同様に、16ビットCRC値の第2バイトを読み出すように、処理要素は、CRCモジュールのアドレスデコード論理516がCRC低データレジスタ504にマッピングするyビットワイドアクセスアドレスオフセット(例えば、上記の表3におけるアドレスオフセット0x1)に対応するアドレスを提供することが可能である。そのアドレスオフセットはマッピングされることが可能であり、第2バイト(0xB1)は、クロックサイクル633中、CRC低データレジスタ504から読み出されることが可能である。
CRC値を生成する装置及び方法の実施形態を用いる場合、図5及び6に関連付けて例示して説明しているように、処理要素は、yビットワイドCRC低データレジスタを有するCRCモジュールにxビットワイドデータ値を書き込むソフトウェア命令を実行することが可能である。従って、処理要素が、同じ量のデータを書き込むように、より多くのソフトウェア命令を実行する従来の装置及び方法に対して、種々の実施形態を用いる場合、プロセッサ効率が改善される(例えば、処理要素は、yビットワイドCRC低データレジスタにyビットワイドデータ値のみを書き込む命令を実行する)。
従って、種々の種類の周辺装置モジュールにおけるデータレジスタからデータ読み出す及び/又はそれにデータを書き込む方法及び装置の種々の実施形態について上で説明している。電子システムの実施形態は、処理要素、バス制御器及び周辺装置モジュールを有する。処理要素は、xビットワイドデータ値のデータ転送を処理要素が実行するようにする機械読み出し可能コードを実行するように適合され、その場合、データ転送を実行することは、周辺装置モジュールのyビットワイドデータレジスタに対応する処理要素により提供されたアドレス及び第1読み出し/書き込み信号を提供することを有し、ここでは、yはxより小さい。バス制御器は、読み出し/書き込み信号及び処理要素により提供されたアドレスを受信し、それに応答して、周辺装置モジュールにより一連の複数のデータ転送を実行するように適合され、その場合、その一連の複数のデータ転送を実行することは、一連の複数のデータ転送の第1データ転送についての第1周辺装置アドレス及び第2読み出し/書き込み信号を供給することと、一連の複数のデータ転送の少なくとも1つの他のデータ転送について少なくとも1つの異なる周辺装置アドレスを提供することを有する。周辺装置モジュールは、yビットワイドデータレジスタに第1周辺装置アドレスをマッピングし、yビットワイドデータレジスタに少なくとも1つの異なる周辺装置アドレスをまた、マッピングする。
更なる実施形態においては、周辺装置モジュールは、データバスに動作可能であるように結合されたyビットワイド第1データレジスタと、アドレスバスに動作可能であるように結合され、第1データレジスタに対して複数の異なるアドレスオフセットをマッピングするアドレスデコード論理とを有する。実施形態においては、電子システムは、システムバス及び少なくとも1つのメモリブロックを更に有し、その場合、少なくとも1つのメモリブロック及び処理要素は、システムバスを介して、共に動作可能であるように結合され、処理要素は、システムバスに対してメモリブロックからのデータ値をフェッチする機械コードを実行するように更に適合されている。更なる実施形態においては、データ転送は、周辺装置モジュールにxビットワイドデータ値を書き込むようにライトデータ転送を有し、処理要素は、バス制御器にxビットワイドデータ値を供給するように更に適合されている。更なる実施形態においては、データ転送は、周辺装置モジュールからxビットワイドデータ値を読み出すようにリードデータ転送を有し、バス制御器は、周辺装置モジュールから複数のyビットワイドデータ値を読み出し、複数のyビットワイドデータ値からxビットワイドデータ値を構築し、処理要素にxビットデータ値を供給するように更に適合されている。更なる実施形態においては、電子システムはまた、バス制御器と周辺装置モジュールとの間に動作可能であるように結合された周辺装置バスを有し、その場合、周辺装置バスはzビットワイドデータバスを有し、ここでは、zはyに等しいか、それより小さい。更なる実施形態においては、処理要素は、プロセッサコア、非コア処理要素及び直接メモリアクセスユニットを有する群から選択された処理要素である。
他の実施形態においては、データバスに動作可能であるように結合されたyビットワイド第1データレジスタと、アドレスバスに動作可能であるように結合され、第1データレジスタに対して複数の異なるアドレスオフセットをマッピングするように構成されたアドレスデコード論理と、を有する周辺装置モジュールを有する電子システムを有する。更なる実施形態においては、アドレスデコード論理は、yビットワイドデータ転送のための第1データレジスタに対して複数の異なるアドレスオフセットの第1アドレスオフセットをマッピングし、一連のx/y、即ち一連のアドレスに対するyビットワイドデータ転送として実行されるxビットワイドデータ転送のための第1データレジスタに対して複数の異なるアドレスオフセットのx/yの他のアドレスオフセットをマッピングするように構成され、一連のアドレスにおける各々のアドレスは、8ビットバイトデータに対応するアドレスである。
更なる実施形態においては、周辺装置モジュールはまた、データバスに動作可能であるように結合された1つ又はそれ以上のyビットワイド付加データレジスタを有する。更なる実施形態においては、周辺装置モジュールはまた、読み出し/書き込み信号を受信するように適合された読み出し/書き込み信号インタフェースを有し、その場合、周辺装置モジュールは、読み出し/書き込み信号が読み出し状態にあるときに、そしてアドレスデコード論理が、第1データレジスタに対してアドレスバスに存在するアドレスについてのアドレスオフセットをマッピングしたときに、データバスのリードデータバスに第1データレジスタからyビットワイドデータ値を転送するように適合されている。更なる実施形態においては、周辺装置モジュールはまた、読み出し/書き込み信号を受信するように適合された読み出し/書き込み信号インタフェースを有し、その場合、周辺装置モジュールは、読み出し/書き込み信号が書き込み状態にあるときに、そしてアドレスデコード論理が、第1データレジスタに対してアドレスバスに存在するアドレスについてのアドレスオフセットをマッピングしたときに、データバスのライトデータバスから第1データレジスタにyビットワイドデータ値を転送するように適合されている。更なる実施形態においては、周辺装置モジュールはまた、割り込み信号を生成するように適合された割り込み要求ジェネレータを有する。更なる実施形態においては、周辺装置モジュールはまた、第1データレジスタに動作可能であるように結合された周辺装置機能回路を有し、その場合、周辺装置機能回路は、周辺装置モジュールの主な機能を実行し、第1データレジスタからデータを読み出し又はそれにデータを書き込むように適合されている。
更なる実施形態においては、電子システムはまた、処理要素及びバス制御器を有する。処理要素は、xビットワイドデータ値のデータ転送を処理要素が実行するようにする機械読み出し可能コードを実行するように適合され、その場合、データ転送を実行することは、第1読み出し/書き込み信号を提供することと、周辺装置モジュールの第1データレジスタに対応する処理要素により供給されるアドレスを処理することと、を有する。バス制御器は、読み出し/書き込み信号及び処理要素により提供されるアドレスを受信し、それに応答して、周辺装置モジュールにより一連の複数のデータ転送を実行するように適合され、その場合、それら一連の複数のデータ転送を実行することは、一連の複数のデータ転送の第1データ転送についての第1周辺装置アドレス及び第2読み出し/書き込み信号を提供することと、一連の少なくとも1つの他のデータ転送についての少なくとも1つの異なる周辺装置アドレスを提供することと、を有する。更なる実施形態においては、周辺装置モジュールは、巡回冗長検査演算モジュールと、チェックサム演算モジュールと、順次周辺装置インタフェースと、汎用非同期受信器/送信器と、ディスプレイ制御器と、ユーザインタフェース制御器とを有する群から選択されたモジュールである。
他の実施形態においては、処理要素と周辺装置モジュールとの間でデータを転送する方法を有する。その方法は、周辺装置モジュールにより、アドレスバスから複数の異なるアドレス及び第1読み出し/書き込み信号を受信するステップと、周辺装置モジュールにより、単独のyビットワイドデータレジスタに対して複数の異なるアドレスに対応する複数の異なるアドレスオフセットをマッピングするステップと、周辺装置モジュールにより、第1読み出し/書き込み信号が読み出し状態にあるときに、yビットワイドデータレジスタからデータバスにワイドデータ値を転送するステップと、第1読み出し/書き込み信号が書き込み状態にあるときに、yビットワイドデータレジスタにデータバスからyビットワイドデータ値を転送するステップと、を有する。
更なる実施形態においては、本発明の方法は、xビットワイドデータ値のデータ転送を処理要素が実行するようにする機械読み出し可能コードを実行するステップを有し、データ転送を実行することは、周辺装置モジュールのyビットワイドデータレジスタに対応する処理要素により提供されるアドレス及び第2読み出し/書き込み信号を提供する(ここで、yはxより小さい)ことと、バス制御器により、第2読み出し/書き込み信号及び処理要素により提供されるアドレスを受信することと、第2読み出し/書き込み信号の受信に応答してバス制御器により、周辺装置モジュールと共に一連の複数のデータ転送を実行することとを有し、それら一連の複数のデータ転送を実行することは、それら一連の複数のデータ転送における各々のデータ転送のための複数の異なるアドレスにおけるアドレス及び第1読み出し/書き込み信号を提供する。
種々の実施形態の原理については、特定のシステム、装置及び方法と関連付けて上記で説明している一方、この詳細説明は単なる例示であり、本発明の主題の範囲における制限ではないことが明確に理解される必要がある。更に、本明細書で用いられている用語又は表現は、説明目的のものであり、制限的なものではない。
当業者が、現在の知識を適用することにより容易に修正することができ、一般概念から逸脱することなく、種々のアプリケーションにそれを適合させることができるのに十分であるように、上記の特定の実施形態についての説明により、種々の実施形態の一般的性質が明らかになっている。従って、そのような適合及び修正は、開示されている実施形態と同等なものの意味内及び範囲内にある。本発明の主題は、同時提出の特許請求の広い範囲及び主旨の範囲内にあるそのような代替、修正、等価及び変形全てを包含するものである。

Claims (20)

  1. 処理要素がxビットワイドデータ値のデータ転送を実行するようにする機械読み出し可能コードを実行するように適合された処理要素であって、前記データ転送を実行することは、第1読み出し/書き込み信号と、周辺装置モジュールのyビットワイドデータレジスタに対応する処理要素により供給されたアドレスとを提供することを有し、ここでは、yはxより小さい、処理要素;並びに
    前記第1読み出し/書き込み信号及び前記処理要素により供給されたアドレスを受信し、その受信することに応答して、前記周辺装置モジュールと共に一連の複数のデータ転送を実行するように適合されたバス制御器であって、前記一連の複数のデータ転送は、前記一連の複数のデータ転送の第1データ転送についての第1周辺装置アドレス及び第2読み出し/書き込み信号を提供することと、前記一連の複数のデータ転送の少なくとも1つの他のデータ転送についての少なくとも1つの異なる周辺装置アドレスを提供することと、を有する、バス制御器;
    を有する電子システムであって:
    前記周辺装置モジュールは、前記第1周辺装置アドレスを前記yビットワイドデータレジスタにマッピングし、前記少なくとも1つの異なる周辺装置アドレスを前記yビットワイドデータレジスタにもマッピングする;
    電子システム。
  2. 請求項1に記載の電子システムであって、前記周辺装置モジュールは:
    データバスに動作可能であるように結合されたyビットワイド第1データレジスタ;及び
    アドレスバスに動作可能であるように結合され、前記第1データレジスタの全て又は同じ部分に複数の異なるアドレスオフセットをマッピングするアドレスデコード論理;
    を有する、電子システム。
  3. 請求項1に記載の電子システムであって:
    システムバス;並びに
    少なくとも1つのメモリブロックであって、該少なくとも1つのメモリブロック及び前記処理要素は前記システムバスを介して共に動作可能であるように結合され、前記処理要素は、前記システムバスに対して前記メモリブロックからのデータ値をフェッチする機械読み出し可能コードを実行するように更に適合されている、メモリブロック;
    を更に有する、電子システム。
  4. 請求項1に記載の電子システムであって、前記データ転送は、前記周辺装置モジュールに前記xビットワイドデータ値を書き込むライトデータ転送を有し、前記処理要素は、前記バス制御器に前記xビットワイドデータ値を供給するように更に適合されている、電子システム。
  5. 請求項1に記載の電子システムであって、前記データ転送は、前記周辺装置モジュールから前記xビットワイドデータ値を読み出すリードデータ転送を有し、前記バス制御器は、前記周辺装置モジュールから複数のyビットワイドデータ値を読み出し、前記複数のyビットワイドデータ値から前記xビットワイドデータ値を構築し、そして前記xビットワイドデータ値を前記処理要素に供給する、リードデータ転送を有する、電子システム。
  6. 請求項1に記載の電子システムであって:
    前記バス制御器と前記周辺装置モジュールとの間に動作可能であるように結合された周辺装置バスであって、前記周辺装置バスはzビットワイドデータバスを有し、zはyに等しい又はyより小さい、周辺装置バス;
    を更に有する、電子システム。
  7. 請求項1に記載の電子システムであって、前記処理要素は、プロセッサコア、非コア処理要素及び直接メモリアクセスユニットを有する群から選択された処理要素である、電子システム。
  8. データバスに動作可能であるように結合されたyビットワイド第1データレジスタを有する周辺装置モジュール;及び
    アドレスバスに動作可能であるように結合され、前記第1データレジスタに複数の異なるアドレスオフセットをマッピングするアドレスデコード論理;
    を有する電子システム。
  9. 請求項6に記載の電子システムであって、前記アドレスデコード論理は、yビットワイドデータ転送のための前記第1データレジスタに前記複数の異なるアドレスオフセットの第1アドレスオフセットをマッピングし、一連のx/y、即ち一連のアドレスに対するyビットワイドデータ転送として実行されるxビットワイドデータ転送のための前記第1データレジスタに対して前記複数の異なるアドレスオフセットのx/yの他のアドレスオフセットをマッピングし、前記一連のアドレスにおける各々のアドレスは、8ビットバイトデータに対応するアドレスである、電子システム。
  10. 請求項6に記載の電子システムであって、前記周辺装置モジュールは:
    前記データバスに動作可能であるように結合された1つ又はそれ以上のyビットワイド付加データレジスタ;
    を更に有する、電子システム。
  11. 請求項6に記載の電子システムであって、前記周辺装置モジュールは:
    読み出し/書き込み信号を受信するように適合された読み出し/書き込み信号インタフェースであって、前記周辺装置モジュールは、前記読み出し/書き込み信号が読み出し状態にあるときに、そして前記アドレスデコード論理が、前記第1データレジスタに対してアドレスバスに存在するアドレスについてのアドレスオフセットをマッピングしたときに、前記データバスのリードデータバスに前記第1データレジスタからyビットワイドデータ値を転送するように適合されている、読み出し/書き込み信号インタフェース;
    を更に有する、電子システム。
  12. 請求項6に記載の電子システムであって、前記周辺装置モジュールは:
    読み出し/書き込み信号を受信するように適合された読み出し/書き込み信号インタフェースであって、前記周辺装置モジュールは、前記読み出し/書き込み信号が書き込み状態にあるときに、そして前記アドレスデコード論理が、前記第1データレジスタに対してアドレスバスに存在するアドレスについてのアドレスオフセットをマッピングしたときに、前記第1データレジスタに前記データバスのライトデータバスからyビットワイドデータ値を転送するように適合されている、読み出し/書き込み信号インタフェース;
    を更に有する、電子システム。
  13. 請求項6に記載の電子システムであって、前記周辺装置モジュールは:
    割り込み信号を生成するように適合された割り込み要求ジェネレータ;
    を更に有する、電子システム。
  14. 請求項6に記載の電子システムであって、前記周辺装置モジュールは:
    第1データレジスタに動作可能であるように結合された周辺装置機能回路であって、該周辺装置機能回路は、前記周辺装置モジュールの主な機能を実行し、前記第1データレジスタにデータを書き込み、前記第1データレジスタからデータを読み出すように適合された、周辺装置機能回路;
    を更に有する、電子システム。
  15. 請求項14に記載の電子システムであって、前記周辺装置機能回路は巡回冗長調査演算を実行するように適合されている、電子システム。
  16. 請求項6に記載の電子システムであって:
    前記処理要素がxビットワイドデータ値のデータ転送を実行するようにする機械読み出し可能コードを実行するように適合された処理要素であって、前記データ転送を実行することは、第1読み出し/書き込み信号と、前記周辺装置モジュールの前記第1データレジスタに対応する処理要素により提供されるアドレスとを提供することを有し、ここでは、yはxより小さい、処理要素;並びに
    前記読み出し/書き込み信号及び前記処理要素により提供されるアドレスを受信し、その受信に応答して、前記周辺装置モジュールにより一連の複数のデータ転送を実行するように適合されたバス制御器であって、前記一連の複数のデータ転送を実行することは、前記一連の複数のデータ転送の第1データ転送のための第1周辺装置アドレス及び第2読み出し/書き込み信号を提供することと、前記一連の複数のデータ転送の少なくとも1つの他のデータ転送のための少なくとも1つの異なる周辺装置アドレスを提供することと、を有する、バス制御器;
    を更に有する、電子システム。
  17. 請求項6に記載の電子システムであって、前記周辺装置モジュールは、巡回冗長調査演算モジュール、チェックサム演算モジュール、シリアル周辺装置インタフェース、汎用非同期受信器/送信器ディスプレイ制御器及びユーザインタフェース制御器を有する群から選択されたモジュールである、電子システム。
  18. 処理要素と周辺装置モジュールとの間でデータを転送する方法であって:
    前記周辺装置モジュールにより、アドレスバスから第1読み出し/書き込み信号及び複数の異なるアドレスを受信するステップ;
    前記周辺装置モジュールにより、前記複数の異なるアドレスに対応する複数の異なるアドレスオフセットを単独のyビットワイドデータレジスタにマッピングするステップ;並びに
    前記第1読み出し/書き込み信号が読み出し状態にあるときに、前記周辺装置モジュールにより、前記yビットワイドデータレジスタからデータバスにyビットワイドデータ値を転送し、前記第1読み出し/書き込み信号が書き込み状態にあるときに、前記データバスから前記yビットワイドデータレジスタに前記yビットワイドデータ値を転送するステップ;
    を有する方法。
  19. 請求項18に記載の方法であって:
    前記処理要素により、前記処理要素がxビットワイドデータ値のデータ転送を実行するようにする機械読み出し可能コードを実行するステップであって、前記データ転送を実行することは、第2読み出し/書き込み信号と、前記周辺装置モジュールの前記yビットワイドデータレジスタに対応する処理要素により提供されるアドレスとを提供することを有し、ここでは、yはxより小さい、ステップ;
    バス制御器により、前記第2読み出し/書き込み信号及び前記処理要素により提供されるアドレスを受信するステップ;並びに
    前記第2読み出し/書き込み信号の受信に応答して前記バス制御器により、前記周辺装置モジュールと共に一連の複数のデータ転送を実行するステップであって、前記一連の複数のデータ転送を実行することは、前記一連の複数のデータ転送における各々のデータ転送について、前記複数の異なるアドレスのうちのアドレス及び前記第1読み出し/書き込み信号を提供することを有する、ステップ;
    を更に有する方法。
  20. 請求項19に記載の方法であって、前記複数の異なるアドレスオフセットをマッピングするステップは:
    前記複数の異なるアドレスオフセットの第1アドレスオフセットをyビットワイドデータ転送についての前記データレジスタにマッピングするステップ;及び
    前記複数の異なるアドレスオフセットのx/yの他御アドレスオフセットをxビットワイドデータ転送のための前記データレジスタにマッピングするステップ;
    を有する、方法。
JP2010546807A 2008-02-15 2009-01-16 周辺装置モジュールレジスタアクセス方法及び装置 Expired - Fee Related JP5496916B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/032,286 US8977790B2 (en) 2008-02-15 2008-02-15 Peripheral module register access methods and apparatus
US12/032,286 2008-02-15
PCT/US2009/031200 WO2009102529A1 (en) 2008-02-15 2009-01-16 Peripheral module register access methods and apparatus

Publications (3)

Publication Number Publication Date
JP2011512599A true JP2011512599A (ja) 2011-04-21
JP2011512599A5 JP2011512599A5 (ja) 2012-03-01
JP5496916B2 JP5496916B2 (ja) 2014-05-21

Family

ID=40956157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010546807A Expired - Fee Related JP5496916B2 (ja) 2008-02-15 2009-01-16 周辺装置モジュールレジスタアクセス方法及び装置

Country Status (5)

Country Link
US (1) US8977790B2 (ja)
JP (1) JP5496916B2 (ja)
CN (1) CN101933005B (ja)
TW (1) TWI484407B (ja)
WO (1) WO2009102529A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014514641A (ja) * 2011-03-21 2014-06-19 インテル コーポレイション マルチコアプロセッサにおける電力消費の管理

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2328075A4 (en) * 2008-09-10 2011-12-07 Renesas Electronics Corp INFORMATION PROCESSING DEVICE
JP6029433B2 (ja) * 2012-11-26 2016-11-24 ルネサスエレクトロニクス株式会社 マイコン
CN103885850B (zh) * 2013-03-01 2016-12-28 上海富欣智能交通控制有限公司 存储器在线检查系统及方法
US9395990B2 (en) * 2013-06-28 2016-07-19 Intel Corporation Mode dependent partial width load to wider register processors, methods, and systems
CN104794092A (zh) * 2014-01-22 2015-07-22 比亚迪股份有限公司 总线逻辑管理系统和方法
US10628373B2 (en) * 2015-12-01 2020-04-21 Marvell International Ltd. Systems and methods for transmitting an access request via a flexible register access bus
US10817587B2 (en) * 2017-02-28 2020-10-27 Texas Instruments Incorporated Reconfigurable matrix multiplier system and method
US10503582B2 (en) 2017-03-06 2019-12-10 Tttech Auto Ag Method and computer system for fault tolerant data integrity verification of safety-related data
CN107562658B (zh) * 2017-09-06 2024-05-28 北京世通凌讯科技有限公司 Cpu取指系统及取指方法
JP2019101446A (ja) * 2017-11-28 2019-06-24 ルネサスエレクトロニクス株式会社 半導体装置及びそれを備えた半導体システム
CN109547355B (zh) * 2018-10-17 2022-05-06 中国电子科技集团公司第四十一研究所 一种基于万兆以太网口接收机的存储解析装置及方法
CN109726057B (zh) * 2018-11-19 2022-07-22 浙江众合科技股份有限公司 一种cpu安全系统并行总线故障实时动态检测方法
WO2020118713A1 (zh) * 2018-12-14 2020-06-18 深圳市汇顶科技股份有限公司 位宽匹配电路、数据写入装置、数据读出装置和电子设备
US20200201562A1 (en) * 2018-12-20 2020-06-25 Nanya Technology Corporation Memory device, memory system and method of reading from memory device
CN110322979B (zh) * 2019-07-25 2024-01-30 美核电气(济南)股份有限公司 基于fpga的核电站数字控制计算机系统核心处理单元
CN110457254B (zh) * 2019-08-14 2021-08-24 飞依诺科技(苏州)有限公司 提高超声设备接口传输利用率的方法及系统
CN111459546B (zh) * 2020-03-30 2023-04-18 芯来智融半导体科技(上海)有限公司 一种实现操作数位宽可变的装置及方法
US11288215B2 (en) * 2020-08-28 2022-03-29 Juniper Networks, Inc. Mapped register access by microcontrollers
CN113238974A (zh) * 2021-05-19 2021-08-10 青岛信芯微电子科技股份有限公司 一种总线带宽效率统计方法、装置、和设备及介质
CN117640783B (zh) * 2024-01-25 2024-04-09 富瀚微电子(成都)有限公司 一种数据传输方法、系统、电子设备以及可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6111873A (ja) * 1984-06-28 1986-01-20 Kokusai Electric Co Ltd 16ビツトマイクロプロセツサによる8ビツトおよび16ビツトの各周辺装置へのアクセス方法
JPH02123447A (ja) * 1988-10-12 1990-05-10 Advanced Micro Devicds Inc 入力/出力制御器およびそのデータ転送方法
JPH05120211A (ja) * 1991-10-28 1993-05-18 Matsushita Electric Ind Co Ltd データバス幅制御装置
JPH05204837A (ja) * 1991-09-13 1993-08-13 Matsushita Electric Ind Co Ltd 情報処理装置
JPH11212903A (ja) * 1997-11-06 1999-08-06 Hitachi Ltd データ処理システム、周辺装置及びマイクロコンピュータ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511229A (en) 1991-09-13 1996-04-23 Matsushita Electric Industrial Co., Ltd. Data processing system having a switching network connecting multiple peripheral devices using data paths capable of different data bus widths
TW406229B (en) 1997-11-06 2000-09-21 Hitachi Ltd Data process system and microcomputer
US6401156B1 (en) * 1999-08-23 2002-06-04 Advanced Micro Devices, Inc. Flexible PC/AT-compatible microcontroller
US20060143252A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US6816921B2 (en) 2000-09-08 2004-11-09 Texas Instruments Incorporated Micro-controller direct memory access (DMA) operation with adjustable word size transfers and address alignment/incrementing
US6593774B2 (en) * 2001-12-07 2003-07-15 Highpoint Technologies, Inc. CMOS-interfaceable ECL integrated circuit with tri-state and adjustable amplitude outputs
JP2003223412A (ja) 2002-01-30 2003-08-08 Oki Electric Ind Co Ltd 半導体集積回路
US7823161B2 (en) * 2004-01-29 2010-10-26 Klingman Edwin E Intelligent memory device with variable size task architecture
TWI285825B (en) * 2004-06-18 2007-08-21 Ambric Inc Hardware register on a chip, method of implementing a protocol register, machine-accessible medium embodying a data interface protocol or a software object, data pipeline element, data pipeline device, join element, fork element, data interface device...
KR20080002419A (ko) 2006-06-30 2008-01-04 엠텍비젼 주식회사 n비트의 CPU 및 이를 이용한 데이터 버스트 리드 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6111873A (ja) * 1984-06-28 1986-01-20 Kokusai Electric Co Ltd 16ビツトマイクロプロセツサによる8ビツトおよび16ビツトの各周辺装置へのアクセス方法
JPH02123447A (ja) * 1988-10-12 1990-05-10 Advanced Micro Devicds Inc 入力/出力制御器およびそのデータ転送方法
JPH05204837A (ja) * 1991-09-13 1993-08-13 Matsushita Electric Ind Co Ltd 情報処理装置
JPH05120211A (ja) * 1991-10-28 1993-05-18 Matsushita Electric Ind Co Ltd データバス幅制御装置
JPH11212903A (ja) * 1997-11-06 1999-08-06 Hitachi Ltd データ処理システム、周辺装置及びマイクロコンピュータ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014514641A (ja) * 2011-03-21 2014-06-19 インテル コーポレイション マルチコアプロセッサにおける電力消費の管理

Also Published As

Publication number Publication date
US20090210590A1 (en) 2009-08-20
TWI484407B (zh) 2015-05-11
CN101933005B (zh) 2016-09-21
US8977790B2 (en) 2015-03-10
JP5496916B2 (ja) 2014-05-21
TW200941341A (en) 2009-10-01
WO2009102529A1 (en) 2009-08-20
CN101933005A (zh) 2010-12-29

Similar Documents

Publication Publication Date Title
JP5496916B2 (ja) 周辺装置モジュールレジスタアクセス方法及び装置
TWI541658B (zh) 資料處理裝置及半導體積體電路裝置
US8006114B2 (en) Software programmable timing architecture
CN113849433B (zh) 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质
CN100487668C (zh) 一种嵌入式处理器的调试方法
US9164936B2 (en) System and method for regulating direct memory access descriptor among multiple execution paths by using a link to define order of executions
JPH10187642A (ja) マイクロプロセッサ及びマルチプロセッサシステム
US9116783B2 (en) Bus connection circuit, semiconductor device and operation method of bus connection circuit for making procedure for switching between a 1-cycle transfer and a 2-cycle transfer unnecessary
US11797421B2 (en) Semiconductor apparatus and debug system
JP6143841B2 (ja) コンテキストスイッチを伴うマイクロコントローラ
CN109558076A (zh) 一种可配置的虚拟spi-flash
JP2002342256A (ja) データプロセッサ及びデータテーブルの更新方法
US8819378B2 (en) Data processing apparatus and method for performing memory transactions within such a data processing apparatus
JP3740321B2 (ja) データ処理装置
US12039294B2 (en) Device and method for handling programming language function
JP2007048019A (ja) エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム
WO2020175074A1 (ja) 中央演算処理装置
CN118585471A (zh) 一种基于qspi的flash数据读取控制器及读取方法
Zhang et al. Study on universal bus interface based on sequence configuration
Added 31.2 Signal Descriptions
JPH10207704A (ja) マイクロコンピュータのプログラム変更装置
JP2003216421A (ja) データ処理装置
JPH04284546A (ja) データ処理装置及びそれを用いたシステム開発装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130903

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140305

R150 Certificate of patent or registration of utility model

Ref document number: 5496916

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees