(57)【要約】【課題】処理の遅延、電力消費を低減することができ、かつ/または、プロセッサを特権モードで動作させる必要なく、代理メモリアクセスエージェントを構成し、一方、物理アドレスが非特権モードの動作にさらされるのを防ぐことができる、代理メモリアクセスエージェントを構成する。【解決手段】データ値を変換して記憶するための命令を用いた、代理メモリアクセスエージェントの構成が説明される。一実施形態では、変換されるべきデータ値を指定する第1のオペランドと、データ値の記憶先の代理メモリアクセスエージェントのレジスタの位置と関連付けられる仮想アドレスを指定する第2のオペランドとを含む、命令が受け取られる。データ値は、第1の物理アドレスに変換され得る。仮想アドレスは、第2の物理アドレスに変換され得る。第1の物理アドレスは、第2の物理アドレスに基づいて、代理メモリアクセスエージェントのレジスタに記憶される。【選択図】図１
2015043235.tif 000002
【特許請求の範囲】
【請求項１】
第1のオペランドと第2のオペランドとを含む命令を受け取るステップであって、前記第1のオペランドは、プロセッサが非特権モードで前記命令を処理する場合、第1の物理アドレスに変換されるべきデータ値を指定し、前記第2のオペランドは、前記プロセッサが非特権モードで前記命令を処理する場合、代理メモリアクセスエージェントの第1のレジスタの位置と関連付けられる仮想アドレスを指定し、前記第1のオペランドは、前記プロセッサが特権モードで前記命令を処理する場合、前記第1の物理アドレスを指定し、前記第2のオペランドは、前記プロセッサが特権モードで前記命令を処理する場合、前記代理メモリアクセスエージェントの前記第1のレジスタの位置と関連付けられる第2の物理アドレスを指定する、ステップと、
メモリ管理ユニットによって、前記プロセッサが非特権モードで前記命令を処理する場合、前記データ値を前記第1の物理アドレスに変換するステップと、
メモリ管理ユニットによって、前記プロセッサが非特権モードで前記命令を処理する場合、前記仮想アドレスを前記代理メモリアクセスエージェントの前記第1のレジスタの位置と関連付けられる前記第2の物理アドレスに変換するステップと、
前記プロセッサが特権モードで前記命令を処理する場合、前記第1と第2の物理アドレスを入力としてマルチプレクサに提供するステップであって、前記マルチプレクサが、前記プロセッサから受け取った前記入力を前記代理メモリアクセスエージェントに提供する、ステップと、
前記第1の物理アドレスを、前記第2の物理アドレスと関連付けられる、前記代理メモリアクセスエージェントの前記第1のレジスタに記憶するステップと
を含む、方法。
【請求項２】
第3の物理アドレスに変換されるべき第2のデータ値を指定する第3のオペランドと、前記代理メモリアクセスエージェントの第2のレジスタの位置と関連付けられる第2の仮想アドレスを指定する第4のオペランドとを含む、第2の命令を受け取るステップと、
前記第2のデータ値を、前記第3の物理アドレスに変換するステップと、
前記第2の仮想アドレスを、前記代理メモリアクセスエージェントの前記第2のレジスタの位置と関連付けられる第4の物理アドレスに変換するステップと、
前記第3の物理アドレスを、前記第4の物理アドレスと関連付けられる、前記代理メモリアクセスエージェントの前記第2のレジスタに記憶するステップと、
前記第1の物理アドレスと関連付けられるメモリ値の位置を特定するステップと、
前記メモリ値を、前記第3の物理アドレスと関連付けられる、第2の位置に移動するステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記第1の物理アドレスを用いて、物理メモリの位置に記憶されるメモリ値を管理するステップ
をさらに含む、請求項1に記載の方法。
【請求項４】
代理メモリアクセスエージェントと、
プロセスから受け取られた命令を処理するように構成されるプロセッサユニットであって、前記命令が、第1のオペランドと第2のオペランドとを含み、前記第1のオペランドは、前記プロセッサユニットが非特権モードで前記命令を処理する場合、第1の物理アドレスに変換されるべきデータ値を指定し、前記第2のオペランドは、前記プロセッサユニットが非特権モードで前記命令を処理する場合、前記代理メモリアクセスエージェントの第1のレジスタの位置と関連付けられる仮想アドレスを指定し、前記第1のオペランドは、前記プロセッサユニットが特権モードで前記命令を処理する場合、前記第1の物理アドレスを指定し、前記第2のオペランドは、前記プロセッサユニットが特権モードで前記命令を処理する場合、前記代理メモリアクセスエージェントの前記第1のレジスタの位置と関連付けられる第2の物理アドレスを指定する、プロセッサユニットと、
前記プロセッサユニットが非特権モードで前記命令を処理する場合、前記データ値を前記第1の物理アドレスに変換し、前記プロセッサユニットが非特権モードで前記命令を処理する場合、前記仮想アドレスを前記代理メモリアクセスエージェントの前記第1のレジスタの位置と関連付けられる前記第2の物理アドレスに変換するように構成される、メモリ管理ユニットと、
前記プロセッサユニットに接続された入力ポートと、代理メモリアクセスエージェントに接続された出力ポートとを有するマルチプレクサと
を含み、
前記プロセッサユニットが、前記プロセッサが特権モードで前記命令を処理する場合、前記第1と第2の物理アドレスを入力としてマルチプレクサに提供するように構成され、前記マルチプレクサが、前記プロセッサから受け取った前記入力を前記代理メモリアクセスエージェントに提供し、前記第1の物理アドレスを、前記第2の物理アドレスと関連付けられる、前記代理メモリアクセスエージェントの前記第1のレジスタに記憶するように構成される、処理システム。
【請求項５】
ポータブル通信デバイスに配置される、請求項4に記載の処理システム。
【請求項６】
前記第1の物理アドレスを用いて、物理メモリの位置に記憶されるメモリ値を管理するように構成される、代理メモリアクセスエージェントをさらに含む、請求項4に記載の処理システム。
【請求項７】
前記代理メモリアクセスエージェントが、ダイレクトメモリアクセス(DMA)チャネルである、請求項6に記載の処理システム。
【請求項８】
代理メモリアクセスエージェントと、プロセッサとを備える処理システムであって、
第1のオペランドと第2のオペランドとを含む命令を受け取る手段であって、前記第1のオペランドは、前記プロセッサが非特権モードで前記命令を処理する場合、第1の物理アドレスに変換されるべきデータ値を指定し、前記第2のオペランドは、前記プロセッサが非特権モードで前記命令を処理する場合、前記代理メモリアクセスエージェントの第1のレジスタの位置と関連付けられる仮想アドレスを指定し、前記第1のオペランドは、前記プロセッサが特権モードで前記命令を処理する場合、前記第1の物理アドレスを指定し、前記第2のオペランドは、前記プロセッサが特権モードで前記命令を処理する場合、前記代理メモリアクセスエージェントの前記第1のレジスタの位置と関連付けられる第2の物理アドレスを指定する、手段と、
前記プロセッサが非特権モードで前記命令を処理する場合、前記データ値を前記第1の物理アドレスに変換する手段と、
前記プロセッサが非特権モードで前記命令を処理する場合、前記仮想アドレスを前記代理メモリアクセスエージェントの前記第1のレジスタの位置と関連付けられる前記第2の物理アドレスに変換する手段と、
マルチプレクサ処理を行う手段であって、前記プロセッサが特権モードで前記命令を処理する場合、前記プロセッサが前記第1と第2の物理アドレスを入力として前記マルチプレクサ処理を行う手段に提供し、前記マルチプレクサ処理を行う手段が、前記プロセッサから受け取った前記入力を前記代理メモリアクセスエージェントに提供する、マルチプレクサ処理を行う手段と、
前記第1の物理アドレスを、前記第2の物理アドレスと関連付けられる、前記代理メモリアクセスエージェントの前記第1のレジスタに記憶する手段と
を含む、処理システム。
【請求項９】
第3の物理アドレスに変換されるべき第2のデータ値を指定する第3のオペランドと、前記代理メモリアクセスエージェントの第2のレジスタの位置と関連付けられる第2の仮想アドレスを指定する第4のオペランドとを含む、第2の命令を受け取る手段と、
前記第2のデータ値を、前記第3の物理アドレスに変換する手段と、
前記第2の仮想アドレスを、前記代理メモリアクセスエージェントの前記第2のレジスタの位置と関連付けられる第4の物理アドレスに変換する手段と、
前記第3の物理アドレスを、前記第4の物理アドレスと関連付けられる、前記代理メモリアクセスエージェントの前記第2のレジスタに記憶する手段と、
前記第1の物理アドレスと関連付けられるメモリ値の位置を特定する手段と、
前記メモリ値を、前記第3の物理アドレスと関連付けられる、第2の位置に移動する手段と
をさらに含む、請求項8に記載の処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される発明的な概念の実施形態は、全般にデータ処理システムの分野に関する。より具体的には、本明細書で開示される発明的な概念の実施形態は、データ値を変換して記憶するための命令を用いて、代理メモリアクセスエージェントを構成することに関する。
【背景技術】
【０００２】
データ処理システムは、互いに対話して命令を処理する、様々なコンポーネントを含み得る。1つのコンポーネントは、物理メモリに記憶された値を管理できる、代理メモリアクセスエージェントであり得る。代理メモリアクセスエージェントの例としては、ダイレクトメモリアクセス(DMA)チャネルがある。代理メモリアクセスエージェントを用いて、たとえばメモリに記憶された値に計算を実行するためにメモリにアクセスすることができ、または、物理メモリの第2の位置に値がコピーまたは移動されるようにすることによって、物理メモリにおける値の位置を変えることができる。たとえば、代理メモリアクセスエージェントは、2つのレジスタを含み得る。一方のレジスタは、移動またはコピーされるべきメモリ値のメモリの位置の物理アドレスである、データ値を記憶することができる。他方のレジスタは、メモリ値の移動先またはコピー先であるメモリの位置の物理アドレスである、データ値を記憶することができる。次いで、上記レジスタにデータ値が設定されている場合などは、代理メモリアクセスエージェントは、レジスタからデータ値を提供して、物理メモリの位置におけるメモリ値が、移動またはコピーされるようにし得る。
【０００３】
代理メモリアクセスエージェントは、アクセスされるべきメモリの位置の物理アドレスであるデータ値を、代理メモリアクセスエージェントのレジスタに記憶することなどにより、プロセッサによって実行されるソフトウェアによって構成される。データ値によって表される物理アドレスは、特権モードで動作しSTORE命令を実行するプロセッサから、代理メモリアクセスエージェントによって受け取られる。STORE命令は、レジスタの指定されたアドレスによって識別されるレジスタに記憶されるべき、データ値によって表される物理アドレスを指定する。プロセッサは、物理アドレスにアクセスし、物理アドレスを取得し、物理アドレスに書き込むために、特権モードで動作する。非特権モードで動作するプロセッサは、物理アドレスのインテグリティを保護するために、物理アドレスへのアクセス権を有さない。
【０００４】
プロセッサが非特権モードで動作している場合、プロセッサはまず、非特権プロセスの実行を中断し、特権モードに切り替わる。特権モードになると、プロセッサは、データ値によって表される、アクセスすべきメモリ中の位置の物理アドレスを求める。物理アドレスを表すデータ値は、代理メモリアクセスエージェントのレジスタに記憶される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実行を中断することで、処理が非効率になり電力が消費され得る。したがって、処理の遅延、電力消費を低減することができ、かつ/または、他の方式でより効率的な処理を実現できる、代理メモリアクセスエージェントを構成するためのシステムおよび処理が望ましい。さらに、プロセッサを特権モードで動作させる必要なく、代理メモリアクセスエージェントを構成し、一方、物理アドレスが非特権モードの動作にさらされるのを防ぐことが、望ましい。
【課題を解決するための手段】
【０００６】
ある実施形態では、変換されるべきデータ値を指定する第1のオペランドと、データ値の記憶先である代理メモリアクセスエージェントレジスタの位置と関連付けられる仮想アドレスを指定する第2のオペランドとを含む、命令が受け取られる。データ値は、第1の物理アドレスに変換され得る。仮想アドレスは、第2の物理アドレスに変換され得る。第1の物理アドレスは、第2の物理アドレスに基づいて、代理メモリアクセスエージェントレジスタに記憶される。
【０００７】
この例示的な実施形態は、本明細書で開示される発明的な概念を制限または定義するためではなく、その概念の理解を助ける例を提供するために、記載される。本開示の他の態様、利点、および特徴は、以下のセクション、すなわち、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含む、本出願全体の検討後に明らかになろう。
【０００８】
本明細書で開示されるこの発明的な概念の、これらの、ならびに他の特徴、態様、および利点は、添付の図面とともに以下の発明を実施するための形態を読むと、より理解される。
【図面の簡単な説明】
【０００９】
【図１】ある実施形態による、非特権モードまたは特権モードで動作するプロセッサによって処理され得る命令を用いて、代理メモリアクセスエージェントを構成できるデータ処理システムの例を示す、概略図である。
【図２】ある実施形態による、非特権モードまたは特権モードで動作するプロセッサによって処理され得る命令を用いて、代理メモリアクセスエージェントを構成するための例示的なデータ処理システムを示す、概略図である。
【図３】ある実施形態による、非特権モードまたは特権モードで動作するプロセッサによって処理され得る命令を用いて、代理メモリアクセスエージェントを構成するための例示的なプロセスを示す、流れ図である。
【図４】ある実施形態による、非特権モードまたは特権モードで動作するプロセッサによって処理され得る命令を用いて、代理メモリアクセスエージェントを構成するための第2の例示的なデータ処理システムを示す、概略図である。
【図５】ある実施形態による、命令を用いて代理メモリアクセスエージェントを構成できるプロセッサユニットを含み得る、例示的なポータブル通信デバイスを示す、概略図である。
【図６】ある実施形態による、命令を用いて代理メモリアクセスエージェントを構成できるプロセッサユニットを含み得る、例示的な携帯電話を示す、概略図である。
【図７】ある実施形態による、命令を用いて代理メモリアクセスエージェントを構成できるプロセッサユニットを含み得る、例示的なワイヤレスインターネットプロトコル電話を示す、概略図である。
【図８】ある実施形態による、命令を用いて代理メモリアクセスエージェントを構成できるプロセッサユニットを含み得る、例示的な携帯情報端末を示す、概略図である。
【図９】ある実施形態による、命令を用いて代理メモリアクセスエージェントを構成できるプロセッサユニットを含み得る、例示的なオーディオファイルプレーヤを示す、概略図である。
【発明を実施するための形態】
【００１０】
記述の全体にわたり、説明の目的で、本明細書で開示される発明的な概念の完全な理解を与えるために、多数の具体的な詳細を記載する。しかし、本明細書で開示される発明的な概念は、これらの具体的な詳細の一部を伴わずに実施され得ることが、当業者には明らかであろう。他の例では、本明細書で開示される発明的な概念に通底する原理を曖昧にするのを避けるために、周知の構造およびデバイスはブロック図の形式で示される。
【００１１】
本明細書で開示される発明的な概念の実施形態は、非特権モードまたは特権モードで動作するプロセッサによって処理され得る命令を用いて、代理メモリアクセスエージェントを構成できる、データ処理システムに関する。命令は、データ値を変換および記憶して、代理メモリアクセスエージェントを構成するための命令であってよい。代理メモリアクセスエージェントは、1つまたは複数のデータ値が代理メモリアクセスエージェントの中の記憶装置に与えられる時に、構成され得る。代理メモリアクセスエージェントは、プロセッサのような別のコンポーネントの代わりに直接物理メモリにアクセスできる、任意のコンポーネントまたはプロセスであってよい。代理メモリアクセスエージェントの例は、物理メモリの第1の位置から物理メモリの第2の位置にメモリ値を移動もしくはコピーできる、または、メモリ値にアクセスして計算もしくは他の目的を実行できる、ダイレクトメモリアクセス(DMA)チャネルである。代理メモリアクセスエージェントは、アクセス先のメモリ値の位置を指定するデータ値を各々記憶できる、1つまたは複数のレジスタを含み得る。
【００１２】
命令は、プロセスから受け取られ、代理メモリアクセスエージェントを構成するために用いられ得る。命令は、変換されるべき仮想アドレスを表すデータ値を指定する1つのオペランドと、代理メモリアクセスエージェントのレジスタの位置に対応する仮想アドレスを指定する別のオペランドとを含み得る。非特権モードまたは特権モードで動作するプロセッサは、命令を処理して、レジスタの位置に対応する仮想アドレスが、トランスレーションルックアサイドバッファ(TLB)を含むメモリ管理ユニット(MMU)のようなMMUによって、レジスタの物理アドレスに変換されるようにし得る。プロセッサユニットは、データ値によって表される仮想アドレスが、MMUによって、データ値によって表される物理アドレスに変換されるようにし得る。データ値によって表される物理アドレスは、レジスタの物理アドレスによって識別されるレジスタに記憶され得る。
【００１３】
いくつかの実施形態では、代理メモリアクセスエージェントは、たとえばメモリ値に対して計算を実行するために、または他の目的で、記憶されたデータ値を用いて、データ値によって表される物理アドレスにおけるメモリ値にアクセスすることができる。一実施形態では、代理メモリアクセスエージェントは2つのレジスタを含む。ある実施形態によれば、2つのレジスタの各々は命令を用いて構成され得る。データ値が2つのレジスタの各々に記憶された後、代理メモリアクセスエージェントは、物理メモリの中のメモリ値が、記憶されたデータ値を用いて移動またはコピーされるようにし得る。たとえば、第1のレジスタのデータ値は、コピーまたは移動されるべきメモリ値の物理アドレスであってよく、第2のレジスタのデータ値は、メモリ値のコピー先または移動先であるメモリの位置の物理アドレスであってよい。
【００１４】
データ値を変換して記憶するための命令を用いて代理メモリアクセスエージェントを構成することで、処理速度が向上し、遅延が低減し、消費電力が低減し、かつ/または、他の方法でより効率的な処理が実現し得る。図1は、データ値を変換して記憶するための命令を用いて代理メモリアクセスエージェントを構成する、1つの実施形態の概略図を示す。ソフトウェアプログラムのようなプロセス100は、プロセッサユニット102と通信しており、ユーザが直接操作できないように制限された管理者レベルプロセスではなく、ユーザによって制御可能な、1つまたは複数のユーザレベルソフトウェアプロセスであってよい。プロセス100は、TLB110を有するMMU108のようなMMU108によって、代理メモリアクセスエージェント112の中の記憶装置に対する物理アドレスに変換可能な仮想アドレスを特定する、命令を提供することができる。図1に示される実施形態では、代理メモリアクセスエージェント112は、MMU108とは別個のコンポーネントである。
【００１５】
プロセス100は、命令をプロセッサユニット102に提供するように構成され得る。命令は、代理メモリアクセスエージェント112のレジスタに記憶されるべき、データ値によって表される第1の仮想アドレスを指定する第1のオペランドと、レジスタの位置と関連付けられる第2の仮想アドレスを指定する第2のオペランドとを含み得る。プロセッサユニット102は、命令を用いて、第2の仮想アドレスがアドレスレジスタ104からMMU108に提供され、第1の仮想アドレスがデータレジスタ106からMMU108に提供されるようにし得る。命令に従って、プロセッサユニット102は、TLB110に、第1の仮想アドレスを、レジスタに記憶されるべき、データ値によって表される第1の物理アドレスに変換させ、第2の仮想アドレスを、レジスタの位置に対応する第2の物理アドレスに変換させることができる。第2の物理アドレスを用いて、代理メモリアクセスエージェント112のレジスタに第1の物理アドレスを記憶することができる。
【００１６】
代理メモリアクセスエージェント112はメモリ114にアクセスすることができ、メモリ114は、後続の処理のためにプロセッサユニット102によってアクセスされるデータを記憶するための、メモリデバイスであってよい。メモリ114は、メモリ114中の異なる物理アドレスに記憶されるメモリ値を含む。メモリ値を記憶することができるメモリ114中の位置の物理アドレスは、PA1、PA2、およびPAnによって表される。代理メモリアクセスエージェント112は、第1の物理アドレスを表すデータ値を用いて、メモリ114中の位置にアクセスすることができる。
【００１７】
一例では、PA2に対応する位置に移動される必要があるメモリ値が、PA1に対応する位置において、メモリ114に記憶されていることがある。代理メモリアクセスエージェント112は少なくとも2つのレジスタを含み得るので、PA1に対応する物理アドレスを表すデータ値が第1のレジスタに記憶され、PA2に対応する物理アドレスを表すデータ値が第2のレジスタに記憶される。第1のレジスタのデータ値は、移動またはコピーされるべきメモリ値の位置(PA1)を特定するために用いられてよく、第2のレジスタのデータ値は、メモリ値の移動先である位置(PA2)を特定するために用いられてよい。したがって、メモリ値は、非特権モードまたは特権モードで動作するプロセッサによって処理されるデータ値を変換して記憶し非効率な処理を避けるための命令を用いて、PA1からPA2に移動され得る。
【００１８】
データ値を変換して記憶するための様々な命令が、代理メモリアクセスエージェントを構成するために用いられ得る。図2は、プロセス100によって提供される命令202を用いて代理メモリアクセスエージェント112を構成するための、データ処理システムの実施形態の概略図である。命令202は、(a)変換されるべき仮想アドレス(VA)を表すデータ値を指定するオペランド204と、(b)変換されたデータ値の記憶先のレジスタの位置に対応する仮想アドレス(VA)を指定するオペランド206という、2つのオペランドを含み得る。仮想アドレスは、プロセス100によって指定され得る。いくつかの実施形態では、命令202は、仮想アドレスの代わりに、プロセッサユニット102の中の仮想アドレスの位置を指定するオペランドを含む。
【００１９】
プロセッサユニット102は、命令記憶装置208に命令202を記憶するように構成され得る。命令記憶装置208は、後の使用、処理、またはアクセスのために命令202が記憶される、コンピュータ可読記録媒体であってよい。命令202は、任意の適切なプログラミングコードを用いて表され得る。たとえば、第1のオペランドは、物理アドレスに変換されるべき仮想アドレスを表すデータ値を指定するためのコードであってよく、第2のオペランドは、データ値によって表される物理アドレスの記憶先である、代理メモリアクセスエージェントレジスタの位置と関連付けられる仮想アドレスを指定するためのコードであってよい。
【００２０】
プロセッサユニット102は、命令202が受け取られると、または、命令記憶装置208にアクセスすることによって後で、命令202を処理することができる。プロセッサユニット102は、データ値の記憶先であるレジスタの位置を指定する仮想アドレスを提供し、第2の仮想アドレスを表すデータ値を提供することによって、命令202を処理することができる。レジスタの仮想アドレスは、代理メモリアクセスエージェント112の中のレジスタに対応し得る。プロセッサユニット102は、命令202に基づいて、レジスタの位置を指定する仮想アドレスおよびデータ値によって表される仮想アドレスが、TLB210を含むMMUのようなMMUによって変換されるようにし得る。
【００２１】
TLB210は、レジスタの位置を指定する仮想アドレスを、レジスタの物理アドレス(PA)に変換することができる。たとえば、TLB210は、レジスタの位置を指定する仮想アドレスと関連付けられる物理アドレスを決定するための、参照テーブルを含み得る。加えて、TLB210は、データ値によって表される仮想アドレスを、データ値によって表される物理アドレス(PA)に変換する。TLB210は、変換された物理アドレスを、代理メモリアクセスエージェント112に提供することができる。
【００２２】
代理メモリアクセスエージェント112は、データ値を記憶するための1つまたは複数のレジスタを含み得る。図2に示される実施形態では、代理メモリアクセスエージェント112は、レジスタ1 212およびレジスタ2 214という2つのレジスタを含む。レジスタの物理アドレスは、データ値の記憶先である代理メモリアクセスエージェント112のレジスタを特定するために用いられ得る。たとえば、レジスタの物理アドレスは、レジスタ1 212の物理アドレスであってよい。レジスタの物理アドレスを用いてレジスタ1 212を特定した後、物理アドレスを表すデータ値がレジスタ1 212に記憶される。
【００２３】
いくつかの実施形態では、プロセッサユニット102は、レジスタ2 214に記憶するために、異なる仮想アドレスが変換および使用のために指定される、第2の命令を受け取ることができる。たとえば、レジスタ2 214に対応する位置と関連付けられる、仮想アドレスが特定され得る。第1の命令202で指定されたものとは異なる、変換されるべき別の仮想アドレスを表すデータ値が指定され得る。プロセッサユニット102は、一般に上で説明されたプロセスおよびコンポーネントに従って、第2の命令を処理し、第2の命令によって特定されるデータ値によって表される物理アドレスが、レジスタ2 214に記憶されるようにし得る。代理メモリアクセスエージェント112は、レジスタ1 212およびレジスタ2 214に記憶されたデータ値を用いて、メモリ114にアクセスすることができる。
【００２４】
メモリ114は、データが処理のために記憶されアクセスされる、物理メモリであってよい。図2に示されるメモリ114は、PA1という物理アドレスを有する位置に記憶されるメモリ値を含み、オープンである(すなわちメモリ値がその位置に記憶されていない)PA2という物理アドレスを有する第2の位置を含む。メモリ114は、例示を目的に与えられる。他のメモリデバイスは、値を記憶しまたは記憶できる物理アドレスと関連付けられる、追加のメモリの位置を含み得る。
【００２５】
様々な実施形態による命令が、物理アドレスを表す変換されたデータ値を1つまたは複数のレジスタに記憶することによって、代理メモリアクセスエージェントを構成するために用いられ得る。図3は、データ値を変換して記憶するための命令を用いて代理メモリアクセスエージェントを構成するための、方法を示す。図3の流れ図は、図2に示されるコンポーネントおよび命令を参照して説明される。しかし、他の実装形態が可能である。
【００２６】
方法はブロック302で開始し、ブロック302において、プロセッサユニット102は、変換されるべき仮想アドレスを表すデータ値を指定し変換されたデータ値を記憶するレジスタの仮想アドレスを指定する、命令を受け取る。命令は、ユーザモードで動作するソフトウェアのような、プロセスから受け取られ得る。レジスタの仮想アドレスを指定するオペランドは、代理メモリアクセスエージェント112のレジスタ1 212の物理アドレスに対応する仮想アドレスを含み得る。プロセッサユニット102は、命令を処理するように構成される。たとえば、プロセッサユニット102は、命令記憶装置208のようなコンピュータ可読記録媒体に命令を記憶し、命令によって指定される動作を実行することができる。
【００２７】
ブロック304において、プロセッサユニット102は、仮想アドレスが、TLB210によって物理アドレスに変換されるようにし得る。プロセッサユニット102は、レジスタ1 212に対応する位置の仮想アドレスと、別の仮想アドレスを表すデータ値とをTLB210に提供することができ、TLB210に仮想アドレスを変換させることができる。TLB210は、仮想アドレスと関連付けられる物理アドレスを決定する際に用いる、参照テーブルまたは他の機構を含み得る。たとえば、TLB210は、レジスタ1 212に対応する位置の仮想アドレスと関連付けられる物理アドレスを決定するための、参照テーブルを用いることができる。TLB210の出力は、レジスタ1 212の物理アドレス、および、レジスタ1 212に記憶されるべきデータ値によって表される別の物理アドレスであってよい。データ値によって表される物理アドレスは、代理メモリアクセスエージェントによってアクセスされるべきメモリの中の位置に対応し得る。
【００２８】
ブロック306において、プロセッサユニット102は、レジスタ1 212の物理アドレスを用いて、物理アドレスを表すデータ値をレジスタ1 212に書き込む。たとえば、レジスタ1 212の物理アドレスは、データ値が書き込まれる位置を特定し、プロセッサユニットは、プロセス100によって提供される仮想アドレスから変換される物理アドレスを表すデータ値が、レジスタ1 212の物理アドレスによるレジスタ1 212の特定に基づいて、レジスタ1 212に書き込まれるようにし得る。
【００２９】
ブロック308において、代理メモリアクセスエージェント112は、物理アドレスを表しレジスタ1 212に記憶されるデータ値を用いて、アクセスすべきメモリ値のメモリ114中の位置を特定することができる。いくつかの実施形態では、メモリ値は、メモリ値に対する計算を実行する目的で、またはメモリ値を用いる目的で、アクセスされ得る。たとえば、レジスタ1 212のデータ値によって表される物理アドレスは、計算または他の目的でアクセスされるべきメモリ値の位置として物理アドレスを特定する、メモリ114のPA1に相当し得る。
【００３０】
図3に示される方法は、データ値を変換して記憶するための命令を用いて、代理メモリアクセスエージェントのレジスタを構成することを対象とする。しかし、追加のレジスタが、第2の命令または別の方法を介した命令を用いて同様の方法で構成されてよく、代理メモリアクセスエージェントは、レジスタに記憶された2つ以上のデータ値を用いて、メモリ値を移動しまたはコピーする目的などのために、メモリの中のメモリ値にアクセスすることができる。
【００３１】
いくつかの実施形態による代理メモリアクセスエージェントを構成するための処理システムは、データ値を変換して記憶するための命令、または他のタイプの命令を用いるように適合され得る。図4は、データ値を変換して記憶するための命令を用いて、または、非特権モードで動作するプロセッサによって処理できない命令のような他のタイプの命令を用いて代理メモリアクセスエージェント112を構成できる、処理システムの第2の実施形態の概略図である。
【００３２】
命令404は、プロセス402によって提供される。プロセス402は、仮想アドレスを指定する命令を提供できるユーザモードプロセス、または、仮想アドレスもしくは物理アドレスを指定する命令を提供できる管理者レベルプロセスであってよい。命令404が仮想アドレスを指定する場合、たとえば図1〜図3を参照して説明されたように、命令404は、変換されるべきデータ値によって表される仮想アドレスを指定する1つのオペランドと、変換されたデータ値の記憶先である代理メモリアクセスエージェント112のレジスタの位置と関連付けられる第2の仮想アドレスを指定する第2のオペランドとを含み得る。
【００３３】
他の実施形態では、命令404は、物理アドレスを指定する管理者レベルプロセスからの命令であり、物理アドレスを表すデータ値と、データ値の記憶先である代理メモリアクセスエージェント112のレジスタの位置と関連付けられる仮想アドレスとを含む。命令404がデータ値によって表される物理アドレスを指定する場合、プロセッサユニット102は、物理アドレスを表すデータ値を、入力としてマルチプレクサ(MUX)406に提供することができる。プロセッサユニット102は、仮想アドレスが、TLB210を含むMMUのようなMMUによって変換され、代理メモリアクセスエージェント112に提供されるようにし得る。TLB210の出力は、プロセッサユニット102によって提供されるデータ値の記憶先であるレジスタと関連付けられる物理アドレスであってよい。
【００３４】
MUX406は、TLB210から受け取られた入力またはプロセッサユニット102から受け取られた入力を、代理メモリアクセスエージェント112に供給するかどうかを決定するように構成され得る。プロセッサユニット102はまた、実行されている命令のタイプに基づくセレクタとして、出力をMUX406に与えることができる。命令が物理アドレスを表すデータ値を指定すると、プロセッサユニット102はセレクタを出力して、MUX406に、プロセッサユニット102からデータ値を提供させる。命令が仮想アドレスを表すデータ値を指定すると、TLB210は値を変換し、プロセッサユニット102は、MUX406に、TLB210からの変換された値を代理メモリアクセスエージェント112へ提供させる。
【００３５】
図4に示される実施形態では、代理メモリアクセスエージェント112は、レジスタ1 212および/またはレジスタ2 214に、1つまたは複数の命令を介してMUX406から受け取られたデータ値を記憶することができる。代理メモリアクセスエージェント112は、レジスタ212、214の1つまたは複数がデータ値を含む場合、メモリ114にアクセスすることができる。たとえば、レジスタ1 212に記憶されるデータ値は、物理アドレスPA1に対応するメモリの位置を、メモリ114の中のメモリ値の移動元またはコピー元となる位置として特定するために用いられ得る。レジスタ1 212に記憶されるデータ値は、物理アドレスPA2に対応するメモリの位置を、メモリ値の移動先またはコピー先となる位置として特定するために用いられ得る。代理メモリアクセスエージェント112は、データ値を用いて、メモリ値が特定された位置に移動またはコピーされるようにし得る。
【００３６】
上記特徴を含む例示的なデバイス
データ値を変換して記憶するための命令を用いて代理メモリアクセスエージェントを構成できるプロセッサユニットは、デジタルシグナルプロセッサのような、どのような種類のプロセッサにも含まれてよい。図5〜図9の概略図は、データ値を変換して記憶するための命令を用いて代理メモリアクセスエージェントを構成するための、プロセッサユニットを組み込み得る、例示的なデバイスを示す。
【００３７】
図5は、ポータブル通信デバイス500の例示的な実施形態を示す図である。図5の概略図に示されるように、ポータブル通信デバイスは、デジタルシグナルプロセッサ(DSP)504を含むオンチップシステム502を含む。図5の概略図はまた、DSP504およびディスプレイ508に結合された、ディスプレイコントローラ506を示す。さらに、入力デバイス510がDSP504に結合される。示されるように、メモリ512がDSP504に結合される。加えて、コーダ/デコーダ(コーデック)514がDSP504に結合され得る。スピーカ516およびマイクロフォン518が、CODEC514に結合され得る。
【００３８】
図5の概略図はさらに、デジタルシグナルプロセッサ504およびワイヤレスアンテナ522に結合される、ワイヤレスコントローラ520を示す。ある特定の一実施形態では、電源524がオンチップシステム502に結合される。ディスプレイ508、入力デバイス510、スピーカ516、マイクロフォン518、ワイヤレスアンテナ522、および電源524は、オンチップシステム502の外部にあってよい。しかし、これらの各々は、オンチップシステム502のコンポーネントに結合され得る。
【００３９】
ある特定の実施形態では、DSP504は、その例が図1、図2、または図4を参照して説明されたプロセッサユニット562を含み、プロセッサユニット562は、データ値を変換して記憶するための命令を用いて、DMAチャネルのような代理メモリアクセスエージェントを構成して、処理遅延、電力消費を低減し、かつ/または、他の方法でより効率的な処理を実現することができる。たとえば、プロセッサユニット562は、代理メモリアクセスエージェントのレジスタの位置と関連付けられる仮想アドレスを指定する1つのオペランドと、物理アドレスに変換されレジスタに記憶されるべき、データ値によって表される第2の仮想アドレスを指定する第2のオペランドとを含む、命令を処理するように構成され得る。
【００４０】
図6は、携帯電話600の例示的な実施形態を示す図である。示されるように、携帯電話600は、互いに結合されるデジタルベースバンドプロセッサ604およびアナログベースバンドプロセッサ606を含む、オンチップシステム602を含む。ある特定の実施形態では、デジタルベースバンドプロセッサ604は、デジタルシグナルプロセッサである。図6の概略図に示されるように、ディスプレイコントローラ608およびタッチスクリーンコントローラ610が、デジタルベースバンドプロセッサ604に結合される。一方、オンチップシステム602の外部にあるタッチスクリーンディスプレイ612が、ディスプレイコントローラ608およびタッチスクリーンコントローラ610に結合される。
【００４１】
図6の概略図はさらに、ビデオエンコーダ614、たとえば位相反転線(PAL)エンコーダ、sequential couleur a memoire(SECAM)エンコーダ、または全国テレビジョン方式委員会(NTSC)エンコーダが、デジタルベースバンドプロセッサ604に結合されることを示す。さらに、ビデオ増幅器616が、ビデオエンコーダ614およびタッチスクリーンディスプレイ612に結合される。また、ビデオポート618が、ビデオ増幅器616に結合される。ユニバーサルシリアルバス(「USB」)コントローラ620が、デジタルベースバンドプロセッサ604に結合される。また、USBポート622が、USBコントローラ620に結合される。メモリ624および加入者識別モジュール(SIM)カード626も、デジタルベースバンドプロセッサ604に結合され得る。さらに、図6の概略図に示されるように、デジタルカメラ628が、デジタルベースバンドプロセッサ604に結合され得る。例示的な実施形態では、デジタルカメラ628は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
【００４２】
図6の概略図にさらに示されるように、ステレオオーディオコーデック630が、アナログベースバンドプロセッサ606に結合され得る。さらに、オーディオ増幅器632が、ステレオオーディオコーデック630に結合され得る。例示的な実施形態では、第1のステレオスピーカ634および第2のステレオスピーカ636が、オーディオ増幅器632に結合される。マイクロフォン増幅器638も、ステレオオーディオコーデック630に結合され得る。加えて、マイクロフォン640が、マイクロフォン増幅器638に結合され得る。ある特定の実施形態では、周波数変調(FM)ラジオチューナー642がステレオオーディオコーデック630に結合され得る。FMアンテナ644が、FMラジオチューナー642に結合され得る。さらに、ステレオヘッドフォン646が、ステレオオーディオコーデック630に結合され得る。
【００４３】
図6の概略図はさらに、アナログベースバンドプロセッサ606に結合され得る、高周波(RF)送受信機648を示す。RFスイッチ650が、RF送受信機648およびRFアンテナ652に結合され得る。キーパッド654が、アナログベースバンドプロセッサ606に結合され得る。また、マイクロフォンを備えたモノヘッドセット656が、アナログベースバンドプロセッサ606に結合され得る。さらに、バイブレータデバイス658が、アナログベースバンドプロセッサ606に結合され得る。図6の概略図はまた、オンチップシステム602に結合され得る電源660を示す。ある特定の実施形態では、電源660は、携帯電話600の様々なコンポーネントに電力を供給する直流(DC)電源である。さらに、特定の実施形態では、電源は、充電可能なDCバッテリであり、または、交流(AC)電源に結合されたAC/DC変換器から得られるDC電源である。
【００４４】
図6の概略図に示されるように、タッチスクリーンディスプレイ612、ビデオポート618、USBポート622、カメラ628、第1のステレオスピーカ634、第2のステレオスピーカ636、マイクロフォン640、FMアンテナ644、ステレオヘッドフォン646、RFスイッチ650、RFアンテナ652、キーパッド654、マイクロフォンを備えたモノヘッドセット656、バイブレータ658および電源660は、オンチップシステム602の外部にあってよい。ある特定の実施形態では、DSP604は、その例が図1、図2、または図4を参照して説明されたプロセッサユニット662を含み、プロセッサユニット662は、データ値を変換して記憶するための命令を用いて、DMAチャネルのような代理メモリアクセスエージェントを構成して、処理遅延、電力消費を低減し、かつ/または、他の方法でより効率的な処理を実現することができる。たとえば、プロセッサユニット662は、代理メモリアクセスエージェントのレジスタの位置と関連付けられる仮想アドレスを指定する1つのオペランドと、物理アドレスに変換されレジスタに記憶されるべき、データ値によって表される第2の仮想アドレスを指定する第2のオペランドとを含む、命令を処理するように構成され得る。
【００４５】
図7は、ワイヤレスインターネットプロトコル(IP)電話700の例示的な実施形態を示す図である。示されるように、ワイヤレスIP電話700は、デジタルシグナルプロセッサ(DSP)704を含むオンチップシステム702を含む。ディスプレイコントローラ706がDSP704に結合されてよく、ディスプレイ708がディスプレイコントローラ706に結合される。ある例示的な実施形態では、ディスプレイ708は液晶ディスプレイ(LCD)である。図7はさらに、キーパッド710がDSP704に結合され得ることを示す。
【００４６】
フラッシュメモリ712が、DSP704に結合され得る。シンクロナスダイナミックランダムアクセスメモリ(SDRAM)714、スタティックランダムアクセスメモリ(SRAM)716、および電気的に消去可能なプログラム可能読み取り専用メモリ(EEPROM)718も、DSP704に結合され得る。図7の概略図はまた、発光ダイオード(LED)720がDSP704に結合され得ることを示す。加えて、ある特定の実施形態では、音声コーデック722がDSP704に結合され得る。増幅器724が音声コーデック722に結合されてよく、モノスピーカ726が増幅器724に結合されよい。図7の概略図はさらに、音声コーデック722に結合されるモノヘッドセット728を示す。ある特定の実施形態では、モノヘッドセット728はマイクロフォンを含む。
【００４７】
ワイヤレスローカルエリアネットワーク(WLAN)ベースバンドプロセッサ730が、DSP704に結合され得る。RF送受信機732がWLANベースバンドプロセッサ730に結合されてよく、RFアンテナ734がRF送受信機732に結合されてよい。ある特定の実施形態では、Bluetooth(登録商標)コントローラ736もDSP704に結合されてよく、Bluetooth(登録商標)アンテナ738がコントローラ736に結合されてよい。図7の概略図はまた、USBポート740もDSP704に結合され得ることを示す。さらに、電源742が、オンチップシステム702に結合され、ワイヤレスIP電話700の様々なコンポーネントに電力を供給する。
【００４８】
図7の概略図で示されるように、ディスプレイ708、キーパッド710、LED720、モノスピーカ726、モノヘッドセット728、RFアンテナ734、Bluetooth(登録商標)アンテナ738、USBポート740、および電源742は、オンチップシステム702の外部にあってよく、オンチップシステム702の1つまたは複数のコンポーネントに結合されてよい。ある特定の実施形態では、DSP704は、その例が図1、図2、または図4を参照して説明されたプロセッサユニット762を含み、プロセッサユニット762は、データ値を変換して記憶するための命令を用いて、DMAチャネルのような代理メモリアクセスエージェントを構成して、処理遅延、電力消費を低減し、かつ/または、他の方法でより効率的な処理を実現することができる。たとえば、プロセッサユニット762は、代理メモリアクセスエージェントのレジスタの位置と関連付けられる仮想アドレスを指定する1つのオペランドと、物理アドレスに変換されレジスタに記憶されるべき、データ値によって表される第2の仮想アドレスを指定する第2のオペランドとを含む、命令を処理するように構成され得る。
【００４９】
図8は、携帯情報端末(PDA)800の例示的な実施形態を示す図である。示されるように、PDA800は、デジタルシグナルプロセッサ(DSP)804を含むオンチップシステム802を含む。タッチスクリーンコントローラ806およびディスプレイコントローラ808が、DSP804に結合される。さらに、タッチスクリーンディスプレイ810が、タッチスクリーンコントローラ806およびディスプレイコントローラ808に結合される。図8の概略図はまた、キーパッド812がDSP804に結合され得ることを示す。
【００５０】
ある特定の実施形態では、ステレオオーディオコーデック826がDSP804に結合され得る。第1のステレオ増幅器828がステレオオーディオコーデック826に結合されてよく、第1のステレオスピーカ830が第1のステレオ増幅器828に結合されてよい。加えて、マイクロフォン増幅器832がステレオオーディオコーデック826に結合されてよく、マイクロフォン834がマイクロフォン増幅器832に結合されてよい。図8の概略図はさらに、ステレオオーディオコーデック826に結合され得る第2のステレオ増幅器836と、第2のステレオ増幅器836に結合され得る第2のステレオスピーカ838とを示す。ある特定の実施形態では、ステレオヘッドフォン840も、ステレオオーディオコーデック826に結合され得る。
【００５１】
図8の概略図はまた、DSP804に結合され得る802.11コントローラ842と、802.11コントローラ842に結合され得る802.11アンテナ844とを示す。さらに、Bluetooth(登録商標)コントローラ846がDSP804に結合されてよく、Bluetooth(登録商標)アンテナ848がBluetooth(登録商標)コントローラ846に結合されてよい。USBコントローラ850がDSP804に結合されてよく、USBポート852がUSBコントローラ850に結合されてよい。加えて、スマートカード854、たとえばマルチメディアカード(MMC)またはsecure digitalカード(SD)が、DSP804に結合されてもよい。さらに、電源856が、オンチップシステム802に結合されてよく、PDA800の様々なコンポーネントに電力を供給することができる。
【００５２】
図8の概略図で示されるように、ディスプレイ810、キーパッド812、IrDAポート822、デジタルカメラ824、第1のステレオスピーカ830、マイクロフォン834、第2のステレオスピーカ838、ステレオヘッドフォン840、802.11アンテナ844、Bluetooth(登録商標)アンテナ848、USBポート852、および電源856が、オンチップシステム802の外部にあってよく、オンチップシステム802の1つまたは複数のコンポーネントに結合されてよい。ある特定の実施形態では、DSP804は、その例が図1、図2、または図4を参照して説明されたプロセッサユニット862を含み、プロセッサユニット862は、データ値を変換して記憶するための命令を用いて、DMAチャネルのような代理メモリアクセスエージェントを構成して、処理遅延、電力消費を低減し、かつ/または、他の方法でより効率的な処理を実現することができる。たとえば、プロセッサユニット862は、代理メモリアクセスエージェントのレジスタの位置と関連付けられる仮想アドレスを指定する1つのオペランドと、物理アドレスに変換されレジスタに記憶されるべき、データ値によって表される第2の仮想アドレスを指定する第2のオペランドとを含む、命令を処理するように構成され得る。
【００５３】
図9は、オーディオファイルプレーヤ(たとえばMP3プレーヤ)900の例示的な実施形態を示す図である。示されるように、オーディオファイルプレーヤ900は、デジタルシグナルプロセッサ(DSP)904を含むオンチップシステム902を含む。ディスプレイコントローラ906がDSP904に結合されてよく、ディスプレイ908がディスプレイコントローラ906に結合される。ある例示的な実施形態では、ディスプレイ908は液晶ディスプレイ(LCD)である。キーパッド910が、DSP904に結合され得る。
【００５４】
図9の概略図にさらに示されるように、フラッシュメモリ912および読み取り専用メモリ(ROM)914が、DSP904に結合され得る。加えて、ある特定の実施形態では、オーディオコーデック916がDSP904に結合され得る。増幅器918がオーディオコーデック916に結合されてよく、モノスピーカ920が増幅器918に結合されてよい。図9の概略図はさらに、マイクロフォン入力922およびステレオ入力924も、オーディオコーデック916に結合され得ることを示す。ある特定の実施形態では、ステレオヘッドフォン926も、オーディオコーデック916に結合され得る。
【００５５】
USBポート928およびスマートカード930が、DSP904に結合され得る。加えて、電源932が、オンチップシステム902に結合されてよく、オーディオファイルプレーヤ900の様々なコンポーネントに電力を供給することができる。
【００５６】
図9の概略図で示されるように、ディスプレイ908、キーパッド910、モノスピーカ920、マイクロフォン入力922、ステレオ入力924、ステレオヘッドフォン926、USBポート928、および電源932は、オンチップシステム902の外部にあってよく、オンチップシステム902の1つまたは複数のコンポーネントに結合されてよい。ある特定の実施形態では、DSP904は、その例が図1、図2、または図4を参照して説明されたプロセッサユニット962を含み、プロセッサユニット962は、データ値を変換して記憶するための命令を用いて、DMAチャネルのような代理メモリアクセスエージェントを構成して、処理遅延、電力消費を低減し、かつ/または、他の方法でより効率的な処理を実現することができる。たとえば、プロセッサユニット962は、代理メモリアクセスエージェントのレジスタの位置と関連付けられる仮想アドレスを指定する1つのオペランドと、物理アドレスに変換されレジスタに記憶されるべき、データ値によって表される第2の仮想アドレスを指定する第2のオペランドとを含む、命令を処理するように構成され得る。
【００５７】
本明細書で開示される発明的な概念の実施形態の前述の説明は、例示および説明のみを目的に提示され、網羅的であること、または、本明細書で開示される発明的な概念を開示された形態に厳密に限定することは意図されない。本明細書で開示される発明的な概念の趣旨および範囲から逸脱することなく、多くの修正および適合が当業者には明らかである。
【符号の説明】
【００５８】
102  プロセッサユニット
104  アドレスレジスタ
106  データレジスタ
108  MMU
110  TLB
112  代理メモリアクセスエージェント
114  メモリ
202  命令
208  命令記憶装置
210  TLB
212  レジスタ1
404  命令
406  マルチプレクサ
【図１】
2015043235.tif 000003
【図２】
2015043235.tif 000004
【図３】
2015043235.tif 000005
【図４】
2015043235.tif 000006
【図５】
2015043235.tif 000007
【図６】
2015043235.tif 000008
【図７】
2015043235.tif 000009
【図８】
2015043235.tif 000010
【図９】
2015043235.tif 000011