JP3841810B2 - データプロセッサ - Google Patents
データプロセッサ Download PDFInfo
- Publication number
- JP3841810B2 JP3841810B2 JP2004541169A JP2004541169A JP3841810B2 JP 3841810 B2 JP3841810 B2 JP 3841810B2 JP 2004541169 A JP2004541169 A JP 2004541169A JP 2004541169 A JP2004541169 A JP 2004541169A JP 3841810 B2 JP3841810 B2 JP 3841810B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- transfer
- cache
- cpu
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
またキャッシュメモリを用いる場合、CPU(中央処理装置)からのアクセス性能を平均的に向上させることができるが、キャッシュメモリはそれまでのアクセス履歴によりヒット/ミスが変わる為、実行時間の予測が困難となり、厳密なリアルタイム制御には向かない場合もある。リアルタイム制御のような用途では、キャッシュメモリではない固定的な内部メモリに記憶情報(命令又はデータ)を格納しておくことが望ましい。キャッシュメモリの代わりに若しくはキャッシュメモリの他の上記観点による内部メモリを持つ場合には、内部メモリと外部メモリ間のデータ転送の高速化、高効率化が重要である。
本発明者の検討によれば、DMAC(ダイレクト・メモリ・アクセス・コントローラ)による転送制御はブロック転送であり、転送中CPUは別の処理を行うことができるから、転送効率が良い。しかしながら、DMACの動作とCPUの処理の同期化(データ転送の条件設定、起動、終了待ち)を必要とする為、転送量が小さい場合には特にこの同期化のオーバーヘッドが顕著になることが明らかにされた。また、ブロック転送命令を用いる場合にもその転送処理によってCPUが占有される期間が長くなればDMACを用いる場合と同様にオーバーヘッドが大きくなる。そのようなブロック転送命令を専用化すれば処理の最適化を図り易いが新たな命令コードの追加が不可能な場合、或いは新たな命令コードの追加による不都合を生ずる場合もある。
本発明の完成後に行った特許調査により以下の文献が見出された。特開2000−231550号公報には、ロード/ストア命令を実行可能なロード/ストア命令実行部を有するマイクロコンピュータに、ロード/ストア命令実行部によるデータの読み書きが可能で、且つ外部メモリとの間でDMA(ダイレクト・メモリ・アクセス)転送可能なRAM(ランダム・アクセス・メモリ)を設けることが記載される。また、上記特許公報(第76段落)には、キャッシュ以外の特殊な用途に使用されるRAMをアクセスするのにロード/ストア命令に代えて専用のブロック転送命令等を用いてもよい、とある。このブロック転送命令のオペレーションについて何ら開示は無い。
本発明の目的はCPUによってアクセス可能な内部メモリと外部メモリとの間のデータ転送を高速化、高効率化することができるデータプロセッサを提供することにある。
本発明の別の目的は、キャッシュメモリ以外にCPUによってアクセス可能な内部メモリを持つ場合に、内部メモリと外部メモリ間のデータ転送の高速化と高効率化を実現できるデータプロセッサを提供することにある。
本発明の更に別の目的は、CPUによってアクセス可能な内部メモリと外部メモリ間のデータ転送に関し、ロード/ストア命令による場合には転送データをCPUが取り込まなければならない点でその間にCPUは別の処理を行うことができないということ、DMACによる場合には転送量が小さいと同期化のオーバーヘッドが大きくなること、の双方を解決することができるデータプロセッサを提供することにある。
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の記述と添付図面から明らかにされるであろう。
CPUによってアクセス可能な内部メモリと外部メモリとの間のデータ転送を高速化、高効率化するために、CPUの特定の命令によりブロック転送を起動可能にする。特定の命令とは、アドレス指定フィールドを有し、このアドレス指定フィールドに指定されたアドレスが前記内部メモリにマッピングされたアドレスであるとき当該アドレスをデータブロック転送の転送元又は転送先の一方のアドレスとする命令である。データブロック転送の他方のアドレスは例えば外部メモリのアドレスとなる。外部メモリのアドレスは直接命令で指定されず、後述の如くアドレス指定フィールドの記述に対するアドレス変換等で得る。前記内部メモリがキャッシュメモリと同じ階層に設けられている場合、前記特定の命令はキャッシュメモリのプリフェッチ、ライトバック用に用意されているプリフェッチ命令、ライトバック命令を流用する。キャッシュメモリのためのプリフェッチ命令、ライトバック命令はブロック転送のトリガであり、転送が開始された後でも、CPUは後続して命令の実行が可能である。キャッシュメモリにおけるプリフェッチ命令のアドレシングモードは例えばレジスタ間接であり、その命令で指定された汎用レジスタが保有するアドレスに対してキャッシュミスであれば当該アクセスアドレスのデータをキャッシュメモリにフィル(1エントリ分のデータを書き込む)する。ライトバック命令は例えばその命令で指定された汎用レジスタが保有するアドレスに対してキャッシュヒットで且つそのキャッシュエントリがダーティである場合にキャッシュヒットに係るキャッシュエントリデータをライトバック(書き戻し)させる。
プリフェッチ命令やライトバック命令を流用する特定の命令実行において内部メモリはキャッシュ非対象である。例えばこのとき、前記一方のアドレスとされる内部メモリは仮想アドレス(論理アドレス)空間の一部に割り付けておき、他方のアドレスとされる外部メモリが割り付けられている物理アドレス空間との対応は、MMU(メモリ・マネージメント・ユニット)オンの場合には上記内部メモリのアドレスに対してTLB(アドレス変換バッファ)を用いたアドレス変換で行い、MMUオフの場合には所定のレジスタにより行う。プリフェッチ命令、ライトバック命令を流用する特定命令はプリフェッチ命令、ライトバック命令と同じオペレーションコードを有する。そのオペレーションコードがキャッシュメモリの操作として作用するか、内部メモリに対する操作として作用するかは命令実行時にCPUの汎用レジスタにより与えられる仮想アドレスで決まる。要するに、アドレスフィールドがキャッシュ対象エリア(キャッシャブルエリア)を指定すれば前者であり、アドレスフィールドがキャッシュ非対象エリア(ノンキャッシャブルエリア)を指定すれば後者となる。CPUはその特定命令を解読するとその解読結果に応じて、内部メモリのブロック転送制御が可能な制御部にブロック転送制御のアクセスコマンドを発行する。プリフェッチ命令を流用する特定命令の場合、ディスティネーションアドレスは例えば命令で指定の仮想アドレス、ソースアドレスは命令で指定のアドレス値に対するTLB利用の物理アドレスとされる。ライトバック命令を流用する特定命令の場合、上記とは逆に、ソースアドレスは例えば命令で指定の仮想アドレス、ディスティネーションアドレスは命令で指定のアドレス値に対するTLB利用の物理アドレスとされる。ブロック転送制御において転送元及び転送先アドレスの先頭アドレス以外のアドレスは制御部内でインクリメント若しくはディクリメントされて生成される。
上記手段により、内部メモリと外部メモリとの間のデータ転送を高速化できる。ブロック転送サイズを32バイトとすると、従来のCPU命令による転送だと、例えば32バイトのデータを転送するのに、32ビット転送命令を16回(ロード8回、ストア8回)実行することが必要だったのに対し、1命令で転送可能となる。内部メモリと外部メモリとの間のデータ転送を必要とするプログラム記述も短くなる。更に、そのようなブロック転送にDMACを必要としないから、転送量の多少に拘わらず同期化のオーバーヘッドは大きくならない。したがって、CPUによってアクセス可能な内部メモリと外部メモリとの間のデータ転送を高速化、高効率化することができる。
内部メモリを複数メモリマット(複数のページ)に分割しておき、あるページに対してブロック転送を実行中に、他のページに対するCPUからのアクセスを受付可能にしてよい。これにより、あるページに対してブロック転送を実行中に、別のページに対してはCPUが自由にアクセスできる為、ソフトウェアパイプライン処理などのプログラムの最適化の効果が高くなる。
更に、前記ブロック転送を起動する為の特定命令のオペレーションコードがキャッシュメモリのプリフェッチ(ライトバック)用の命令と同一であり、仮想アドレスと物理アドレスの対応付けには通常の外部メモリに対するのと同じようにTLBを利用することにより、プログラム作成時に、キャッシュメモリを利用するか、内部メモリを利用するかの選択が容易になる。なぜならばその選択にはプログラムがアクセスする仮想アドレスをキャッシャブルエリア或いはノンキャッシャブルエリアの何れかに設定するたけでよいからである。よって、プログラムデバッグ或いはシステムデバッグの結果に従ってプログラムがアクセスする仮想アドレスをキャッシャブルエリアとノンキャッシャブルエリアとの間で変更することも簡単である。
上記データプロセッサによれば画像や音声などのストリーミングデータを扱うのに適した構成となり、例えば従来100MHzで動かさなければ実現できなかった処理が、より低い周波数で実現可能となり、低消費電力化可能となる。面積削減の観点からは、従来搭載していたDMACを省略することも可能になり、そうすることにより、より小さな面積でCPUによってアクセス可能な内部メモリと外部メモリとの間のデータ転送を高速化、高効率化することができる。
〔2〕本発明を態様毎に更に詳述する。データプロセッサは、CPUと、前記CPUによってアクセス可能な内部メモリと、前記CPUが発行する特定のアクセス要求に応答して前記内部メモリを一の転送対象とするブロック転送制御が可能な制御回路とを有し、前記CPUの命令セットは前記特定のアクセス要求を発行させる特定の命令を含み、当該特定の命令はアドレス指定フィールドを有し、このアドレス指定フィールドに指定されたアドレスが前記内部メモリにマッピングされたアドレスであるとき当該アドレスを前記ブロック転送の転送元又は転送先の一方のアドレスとする。
前記ブロック転送の転送元又は転送先の他方のアドレスは、例えば前記アドレス指定フィールドが保有する論理アドレスに対応する物理アドレス、或はレジスタが保有する物理アドレスである。そのレジスタは例えばCPUのアドレス空間にマッピングされ、CPUによって設定可能にされる。外部バスアクセスを考慮すると、前記制御回路に接続されたバスインタフェースコントローラを有し、前記バスインタフェースコントローラに前記ブロック転送の他の転送対象に対するインタフェース制御をさせればよい。
キャッシュメモリを有する場合には、当該キャッシュメモリは前記CPU、内部メモリ、及び制御回路と第1バスを共有するのがよい。前記内部メモリは前記キャッシュメモリによるキャッシュ非対象のアドレスに配置されるのがデータ処理上望ましい。このとき、前記制御回路と前記内部メモリの接続に専用化された第2バスを有し、前記第2バスは前記特定のアクセス要求に応答するデータのブロック転送に利用可能にされるのがよい。制御回路が内部メモリに対するブロック転送を行っている最中にCPUは第1バスを介してキャッシュメモリをアクセスすることができる。前記制御回路は前記キャッシュメモリのキャッシュヒットとキャッシュミスに対するメモリ制御も併せて行うのがよい。
前記特定の命令にキャッシュメモリの操作命令を流用することに着目する。例えば第1及び第2のキャッシュメモリ操作命令を流用する。前記第1のキャッシュメモリ操作命令は、アドレス指定フィールドで指定されたキャッシュ対象アドレスのデータについて、当該キャッシュミスに係るキャッシュエントリに対し、外部からデータを書き込む操作をさせる。前記第2のキャッシュメモリ操作命令は、アドレス指定フィールドで指定されたキャッシュ対象アドレスにつきキャッシュヒットである場合で当該キャッシュヒットに係るキャッシュエントリがダーティである場合に、ライトバックの操作をさせる。このとき、前記特定の命令は第1のキャッシュメモリ操作命令と同じオペレーションコードを有し、アドレス指定フィールドのキャッシュ非対象のアドレスをディスティネーションアドレスとする。また、前記特定の命令は第2のキャッシュメモリ操作命令と同じオペレーションコードを有し、アドレス指定フィールドのキャッシュ非対象のアドレスをソースアドレスとする。
前記バスインタフェースコントローラに接続されるDMACを有してもよい。前記バスインタフェースコントローラに接続される外部バス接続用の外部インタフェース回路を有してよい。
第2図は特定の命令の命令フォーマットを例示する説明図である。
第3図はマイクロプロセッサMPUのアドレス空間を例示するアドレスマップである。
第4図は特定命令による処理で物理アドレスを指定するための物理アドレス生成手段を例示するブロック図である。
第5図はPREF命令による外部メモリから内部メモリへの転送動作タイミングを例示するタイミングチャートである。
第6図はOCBWB命令による内部メモリから外部メモリへの転送動作タイミングを例示するタイミングチャートである。
第7図は記憶領域を2ページに分けた内部メモリの構成を例示するブロック図である。
第8図は内部メモリの2個のページに対する並列動作タイミングを例示するタイミングチャートである。
第9図はキャッシュメモリを命令とオペランド混在のユニファイドキャッシュメモリで構成したマイクロプロセッサの要部を例示するブロック図である。
第10図は更に別のマイクロプロセッサとしてキャッシュメモリ及びTLBを搭載しない例を示すブロック図である。
キャッシュ・内部メモリ制御部11はバスインターフェースコントローラ(BIC)6を介してシステムバス22に接続される。システムバス22にはダイレクト・メモリ・アクセス・コントローラ(DMAC)13、周辺バスブリッジ回路(PBB)15、外部バスコントローラ14が接続される。周辺バスブリッジ回路(PBB)15には周辺バス23を介してシリアル・コミュニケーション・インタフェースコントローラ(SCI)16及びタイマユニット(TMU)17等が設けられる。外部バスコントローラ14には外部バス24を介してリード・オンリ・メモリ(ROM)25及びランダム・アクセス・メモリ(RAM)26が接続される。また図示はしないが外部バスを介してASICや、更にPCIインタフェースを介してメモリ等が接続されても良い。
前記CPU1には命令バス21に対して命令フェッチを発行する命令フェッチュニット2とロード・ストア命令実行時にオペランドバス20に対してアクセスを発行するロードストアユニット3を有する。CPU1はその他に、それぞれ図示を省略するところの命令のデコード及び実行スケジュール等の処理を行う命令フローユニット、実行ユニット及び浮動小数点演算ユニットを有する。マイクロプロセッサMPUはパイプライン方式で命令を実行し、例えば命令フェッチ、デコード、実行、及びメモリアクセス等のパイプラインステージを単位として処理を進める。そのパイプラインステージの実行スケジューリングは前記命令フローユニットが制御する。更にCPU1は、キャッシュ・内部メモリ制御部に対し、例外処理信号等の制御信号を出力可能とされる。
命令フェッチュニット2により発行された命令フェッチリクエストは、仮想アドレスによってアクセス先が異なり、それぞれ命令キャッシュメモリ4にアクセスする場合、内部メモリ5にアクセスする場合、バスインタフェースコントローラ6を経由してシステムバス22に直接アクセスに行く場合がある。
ロードストアユニット3により発行されたオペランドアクセスリクエストは、命令フェッチの場合と同様に、仮想アドレスによってアクセス先が異なり、オペランドキャッシュメモリ7にアクセスする場合、内部メモリ5にアクセスする場合、バスインタフェースコントローラ6を経由してシステムバス22に直接アクセスに行く場合がある。
命令バス21、オペランドバス20のアドレスは共に仮想アドレスであり、システムバス22のアドレスは物理アドレスである。仮想アドレスから物理アドレスへの変換は、命令バス21からの場合はITLB8で、オペランドバス20からの場合はOTLB9で行われる。ITLB8、OTLB9はともにUTLB10のうち、頻繁に参照される一部のエントリをキャッシングしているいわゆるマイクロTLBである。
キャッシュ・内部メモリ制御部11は命令バス21、オペランドバス20それぞれの動きに合わせてITLB8、命令キャッシュメモリ4、OTLB9、オペランドキャッシュメモリ7、UTLB10、及び内部メモリ5の制御を行う。前記キャッシュメモリ4,7はダイレクトマップ或いはセットアソシアティブ形式の連想メモリ構造を有し、インデックスは論理アドレスによって行なわれ、タグの比較はTLBによって変換された物理アドレスに対して行なわれる。要するに、キャッシュメモリ4,7が保有するタグ情報は物理アドレス情報とされる。
キャッシュ・内部メモリ制御部11にはブロック転送制御部12が設けられる。ブロック転送制御部12はオペランドバス(第1バス)20に内部メモリ5、命令キャッシュメモリ4、又はオペランドキャッシュ7に対するブロック転送コマンドが発行された場合、そのブロック転送を制御する。それらブロック転送制御の詳細は後述する。
内部メモリ5は命令バス21からのアクセス、オペランドバス20からのアクセス、ブロック転送制御部12からのアクセス、BIC6経由のシステムバス22からのアクセスを処理可能である。内部メモリ5はキャッシュ・内部メモリ制御部11と専用バス(第2バス)28で接続される。専用バス28はブロック転送制御部12により内部メモリ5を転送元又は転送先とするブロック転送に専用化される。内部メモリ5は複数ページに分かれており、それぞれのページが独立に動作可能な構成になっている。詳細は後述する。
DMAC13はBIC6経由で内部メモリ5をアクセス可能であり、外部バスコントローラ14により制御される外部メモリ25,26と内部メモリ5との間の転送を制御することができる。DMAC13を用いる内部メモリと外部メモリ間の転送制御にはCPU1が命令を実行してDMAC13内部のアドレスレジスタや転送カウントレジスタ、制御レジスタ等に転送条件を設定することが必要である。
これに対し、前記ブロック転送制御部12による内部メモリ5と外部メモリ25,26間の転送制御はCPU1が特定の命令を実行してオペランドバス20を介して前記ブロック転送制御部12に特定のアクセスコマンドが発行されればよい。上記特定の命令によるブロック転送制御について以下に説明する。
特定の命令とは、第2図に例示されるようにオペレーションコード(OP)の指定フィールドFLD1とアドレス指定フィールドFLD2を有し、このアドレス指定フィールドFLD2に指定されたアドレスが前記内部メモリ5にマッピングされたアドレスであるとき当該アドレスをデータブロック転送の転送元又は転送先の一方のアドレスとする命令である。マイクロプロセッサMPUにおいて内部メモリ5はキャッシュメモリ7と同じ階層に設けられているので、前記特定の命令にはキャッシュメモリのプリフェッチ、ライトバック用に用意されているプリフェッチ命令、ライトバック命令を流用する。
第3図にはマイクロプロセッサMPUのアドレス空間が例示される。仮想アドレス空間31はキャッシャブル領域(キャッシャブルエリア)32と非キャッシャブル領域(ノンキャッシャブルエリア)33に分かれており、内部メモリ5は非キャッシャブル領域33の一部にマッピングされている。
キャッシュメモリのためのプリフェッチ命令、ライトバック命令はブロック転送のトリガであり、転送が開始した後でも、CPU1は後続して命令の実行が可能である。例えばプリフェッチ命令のアドレシングモードは例えばレジスタ間接(@Rn)であり、その命令で指定された汎用レジスタ(Rn)が保有するキャッシャブルエリアのアドレスに対してキャッシュミスであれば当該アクセスアドレスのデータをキャッシュメモリにフィルする。ライトバック命令は例えばその命令で指定された汎用レジスタが保有するキャッシャブルエリアのアドレスに対してキャッシュヒットで且つそのキャッシュエントリがダーティである場合にキャッシュヒットに係るキャッシュエントリデータをライトバックさせる。
前記プリフェッチ命令、ライトバック命令は、レジスタ間接で指定するアドレスがノンキャッシャブルエリアのアドレスであることを条件に、前記特定の命令とされる。特定命令もここではプリフェッチ命令(PREF命令とも記す)、ライトバック命令(OCBWB命令とも記す)と称する。内部メモリ5をアクセスするためのPREF命令の転送先アドレス、OCBWB命令の転送元アドレスは命令のアドレス指定フィールドで指定される汎用レジスタRnにて与えられる仮想アドレスで指示される。
PREF命令の転送元アドレス、OCBWB命令の転送先アドレスは外部メモリを指し示す必要がある。即ち、第3図の物理アドレス空間34の一部を指し示す必要がある。
第4図にはそのような物理アドレスを指定するための物理アドレス生成手段が示される。MMU(メモリマネージメントユニット)イネーブルの場合、CPU1からPREF命令またはOCBWB命令と共にオペランドバス20に発行された仮想アドレスは、OTLB9によって物理アドレスに変換される。この物理アドレスがPREF命令の場合転送元アドレスに、OCBWB命令の場合転送先アドレスになり、転送が行われる。
キャッシュ・内部メモリ制御部11内のレジスタに初期設定されるMMU動作情報に基づき出力されるMMU信号がディスエーブルの場合、PREF命令による転送の転送元の物理アドレスは転送元アドレスレジスタ35の値が選択される。また、OCBWB命令による転送の転送先の物理アドレスは転送先アドレスレジスタ36の値が選択される。
セレクタ37は特定命令を解読した結果、その命令がPREF命令に応答するアクセスコマンドである場合にはレジスタ35の出力を選択し、OCBWB命令に応答するアクセスコマンドである場合にはレジスタ36の出力を選択するように、解読結果に基づくコマンド信号により制御される。セレクタ38は前記MMU信号がディスエーブルの場合にセレクタ37の出力を選択し、イネーブルの場合にOTLB9の出力を選択する。
このように、プリフェッチ命令、ライトバック命令を流用する特定命令はプリフェッチ命令、ライトバック命令と同じオペレーションコードを有する。そのオペレーションコードがキャッシュメモリの操作として作用するか、内部メモリに対する操作として作用するかは命令実行時にCPU1の汎用レジスタにより与えられる仮想アドレスで決まる。要するに、アドレスフィールドFLD2がキャッシュ対象エリア(キャッシャブルエリア)を指定すれば前者であり、アドレスフィールドFLD2がキャッシュ非対象エリア(ノンキャッシャブルエリア)を指定すれば後者となる。CPUはその特定命令を解読するとその解読結果に応じて、内部メモリ5のブロック転送制御が可能なブロック転送制御部12にブロック転送制御のアクセスコマンドを発行する。
ブロック転送制御において転送元及び転送先アドレスの先頭アドレス以外のアドレスはブロック転送制御部12の内部でインクリメント若しくはディクリメントされて生成される。
第5図にはPREF命令による外部メモリから内部メモリ5への転送動作のタイミンダチャートが示される。本実施例では、例えばデータ転送ブロックサイズを32バイト、各バス幅を64ビットとして説明する。
内部メモリ5を指し示す仮想アドレスを伴ったPREF命令がCPU1により実行されると、CPU1はオペランドバス20にPREFコマンドを発行する。これを受けるブロック転送制御部12はBIC6経由でシステムバス22に32バイトのブロックリードコマンドLD32を発行する。その後リードデータが返って来たところで内部メモリ5に書き込む。ここでPREF命令はブロック転送の起動をかけるだけであり、実際のデータ転送中、CPU1は後続命令を実行可能である。
第6図にはOCBWB命令による内部メモリ5から外部メモリへの転送動作のタイミングチャートが例示される。
内部メモリ5を指し示す仮想アドレスを伴ったOCBWB命令がCPU1により実行されると、CPU1はオペランドバス20にOCBWBコマンドを発行する。このコマンドを受けるブロック転送制御部12は内部メモリ5から転送データの読み出しを行う。その後BIC106経由でシステムバス22に32バイトのブロックライトコマンドST32を発行する。ここでOCBWB命令はブロック転送の起動をかけるだけであり、実際のデータ転送中、CPU1は後続命令を実行可能である。
このブロックデータ転送制御部12による内部メモリ5と外部との間のブロックデータ転送制御機能により、内部メモリ5と外部メモリとの間のデータ転送を高速化できる。ブロック転送サイズを32バイトとすると、従来のCPUのロード/ストア命令による転送では、例えば32バイトのデータを転送するのに、32ビット転送命令を16回(ロード8回、ストア8回)実行することが必要だったのに対し、PREF命令又はOCBWB命令の1命令で転送可能となる。そのようなブロック転送にDMAC13を必要としないから、転送量の多少に拘わらず同期化のオーバーヘッドは大きくならない。したがって、CPU1によってアクセス可能な内部メモリ5と外部メモリとの間のデータ転送を高速化、高効率化することができる。第1図の例では外部メモリはRAM26又はROM25とされる。
また、前記ブロック転送を起動する為のPREF命令やOCBWB命令は、キャッシュメモリ4,7に対するオペレーションと、内部メモリ5と外部とのデータ転送に対するオペレーションとでオペレーションコードが同一であり、更に、仮想アドレスと物理アドレスの対応づけが通常の外部メモリに対するのと同じようにTLBを利用するから、プログラム作成時に、オペランドキャッシュメモリ7を利用するか、内部メモリ5を利用するかの選択が容易である。その選択は、プログラムがアクセスする仮想アドレスをキャッシャブルエリア或いはノンキャッシャブルエリアの何れかに設定するだけで済むからである。プログラムデバッグ或いはシステムデバッグの結果に従ってプログラムがアクセスする仮想アドレスをキャッシャブルエリアとノンキャッシャブルエリアとの間で変更することも簡単である。
第7図には記憶領域を2ページに分けた内部メモリ105の構成が例示される。2ページに分けられるとは、並列アクセス可能な2個のメモリブロックに分けられるという意味である。第7図の例では、内部メモリ5はページ0を構成するメモリブロックPG0、ページ1を構成するメモリブロックPG1の二つに分かれ、独立にアクセス可能である。DEC0,DEC1はアドレスデコーダ、40、41は入力バスアドレスセレクタ、42、43は書き込みバスセレクタ、44,45は読み出しバスセレクタである。それぞれのメモリブロックPG0,PG1に対しては、命令バスアドレス21A、オペランドバスアドレス20A、ブロック転送制御部12からのアドレス12A、BIC6からのアドレス6Aによるアクセスが可能であり、書き込みデータはオペランドバス20からのデータ20WD、ブロック転送制御部12からのデータ12WD、BIC6からのデータ6WDが書き込み可能にされ、読み出しアクセスではリードデータは命令バス21へのデータ21RA、オペランドバス20へのデータ20RD、ブロック転送制御部12へのデータ12RD、BIC6へのデータ6RDとされる。あるサイクルにどこからのアクセスが実行されるかは、キャッシュ・内部メモリ制御部11からの選択信号28RC0,28RC1、28WC0,28WC1により決定される。
このように内部メモリ5を複数のページに分けておくことにより、あるページに対してブロック転送実行中に、別のページに対してCPU1が自由にアクセスすることが可能になる。
第8図には内部メモリ5の2個のページに対する並列動作のタイミングチャートが例示される。この例ではページ1(PG1)に対してOCBWB命令によるブロック転送を起動した後、CPU1がページ0(PG0)に対してアクセスを行っている。図に示されるように、ページ1(PG1)に対してブロック転送を実行中でもページ0(PG0)に対するCPU1からのアクセスは邪魔されることなく実行可能である。
第9図にはキャッシュメモリを命令とオペランド混在のユニファイドキャッシュメモリで構成したマイクロプロセッサの要部が例示される。この例では、前記命令キャッシュメモリ4とオペランドキャッシュメモリ7をそれぞれ独立に設けるのではなく、命令とオペランド共に保持するユニファイドキャッシュ50を設ける。この場合、IFU2、LSU3はどちらもユニファイドバス51経由でアクセスを行う。命令アクセスとオペランドアクセスが同時に起こることはなくなる為、TLBもUTLB10のみで構成されている。
この例では第1図の構成に比べ、CPU1のアクセス帯域が狭くなるが、同じ容量のキャッシュメモリを用いた場合、第1図に示した分離型キャッシュメモリよりヒット率の向上が望めるほか、命令とオペランドが同一のキャッシュメモリに保持される為、命令を自己書き換えするようなプログラムの実行効率を高めることができる。その他の構成は第1図の構成と同じであり、その詳細な説明は省略する。尚、第9図では外部バスコントローラ14、及び外部バス24の図示を省略している。その他に図示を省略した回路モジュールについては必要に応じて備えればよい。
第10図には更に別のマイクロプロセッサとして、キャッシュメモリ及びTLBを搭載しない例が示される。同図に示されるマイクロプロセッサは、制御に特化したコントローラ用途など、キャッシュメモリの効果があまり期待できない場合を指向した例である。この例の場合、キャッシュメモリが存在しない為、キャッシュ・内部メモリ制御部11の代わりに内部メモリ制御部52を搭載している。この場合にもブロック転送制御部12は前記プリフェッチ命令又はライトバック命令によるのと同じような特定命令によりブロック転送制御機能を実現する。
このようにキャッシュメモリを搭載しない構成でも、上記同様の効果により、内部メモリ5と外部メモリのデータ転送が高速化される為、高いメモリアクセス性能を得る事ができる。なおこの例ではTLBも搭載していない為、本発明のブロック転送における一方の物理アドレスは常に転送元アドレスレジスタ、あるいは転送先アドレスレジスタの値となる。他方の物理アドレスは命令のアドレス指定フィールドに基づいて指定される。
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
例えば、データプロセッサのオンチップ回路モジュールは上記説明に対して省略し、或は適宜追加してよい。例えばDMACを省略すれば内部メモリに対するアクセス性能を劣化させることなくチップ面積を小さくすることができる。また、内部バスの構成等についても適宜変更可能である。また、キャッシュメモリはインデックスが仮想アドレスで行なわれ、タグ情報の比較が物理アドレスで行われる構成に限定されない。インデックスとタグの比較を共に仮想アドレスで行うようにしてもよい。また、仮想アドレスを用いない場合にはキャッシュメモリは物理アドレスキャッシュであってよい。また、特定命令を用いる内部メモリ5以外にシステムバス22に接続され通常アクセスされる別の内部メモリがあっても良い。また、MMUのイネーブルとディスエーブルは選択可能でなくてもよい。また、TLBはITLB,OTLB,UTLBとして別々に機能することに限定されることなく、一つのTLBとして同様に機能を有していても良い。
Claims (17)
- CPUと、前記CPUによってアクセス可能な内部メモリと、前記CPUが発行する特定のアクセス要求に応答して前記内部メモリを一の転送対象とするブロック転送制御が可能な制御回路とを有し、
前記CPUの命令セットは前記特定のアクセス要求を発行させる特定の命令を含み、当該特定の命令はアドレス指定フィールドを有し、このアドレス指定フィールドに指定されたアドレスが前記内部メモリにマッピングされたアドレスであるとき当該アドレスを前記ブロック転送の転送元又は転送先の一方のアドレスとし、
前記ブロック転送の転送元又は転送先の他方のアドレスは、前記アドレス指定フィールドが保有する論理アドレスに対応する物理アドレスであることを特徴とするデータプロセッサ。 - 前記制御回路に接続されたバスインタフェースコントローラを有し、前記バスインタフェースコントローラは前記ブロック転送の他の転送対象に対するインタフェース制御が可能であることを特徴とする請求項1記載のデータプロセッサ。
- キャッシュメモリを有し、前記キャッシュメモリは前記CPU、内部メモリ、及び制御回路と第1バスを共有することを特徴とする請求項1記載のデータプロセッサ。
- 前記内部メモリは前記キャッシュメモリによるキャッシュ非対象のアドレスに配置されることを特徴とする請求項3記載のデータプロセッサ。
- 前記制御回路と前記内部メモリの接続に専用化された第2バスを有し、前記第2バスは前記特定のアクセス要求に応答するデータのブロック転送に利用可能にされることを特徴とする請求項4記載のデータプロセッサ。
- 前記制御回路は前記キャッシュメモリのキャッシュヒットとキャッシュミスに対するメモリ制御が可能であることを特徴とする請求項5記載のデータプロセッサ。
- CPUの命令セットは第1のキャッシュメモリ操作命令を有し、前記第1のキャッシュメモリ操作命令は、アドレス指定フィールドで指定されたキャッシュ対象アドレスのデータをキャッシュメモリに保持させる操作を行うことを特徴とする請求項4記載のデータプロセッサ。
- CPUの命令セットは第2のキャッシュメモリ操作命令を有し、前記第2のキャッシュメモリ操作命令は、アドレス指定フィールドで指定されたキャッシュ対象アドレスにおいてキャッシュヒットである場合に当該キャッシュヒットに係るキャッシュエントリがダーティである場合に、ライトバックさせる操作を行うことを特徴とする請求項4記載のデータプロセッサ。
- 前記特定の命令は第1のキャッシュメモリ操作命令と同じオペレーションコードを有し、アドレス指定フィールドのキャッシュ非対象のアドレスをディスティネーションアドレスとすることを特徴とする請求項7記載のデータプロセッサ。
- 前記特定の命令は第2のキャッシュメモリ操作命令と同じオペレーションコードを有し、アドレス指定フィールドのキャッシュ非対象のアドレスをソースアドレスとすることを特徴とする請求項8記載のデータプロセッサ。
- 前記バスインタフェースコントローラに接続されるデータ転送制御回路を有する請求項2記載のデータプロセッサ。
- 前記バスインタフェースコントローラに接続される外部バス接続用の外部インタフェース回路を有する請求項11記載のデータプロセッサ。
- 第1バスに夫々接続された、CPUと、キャッシュメモリと、前記CPUによってアクセス可能であって前記キャッシュメモリによるキャッシュの非対象とされる内部メモリと、前記CPUが発行する特定のアクセス要求に応答して前記内部メモリを一の転送対象とするブロック転送制御が可能な制御回路とを有し、
前記CPUの命令セットは前記特定のアクセス要求を発行させる特定の命令を含み、当該特定の命令はアドレス指定フィールドを有し、このアドレス指定フィールドに指定されたアドレスが前記内部メモリにマッピングされたアドレスであるとき当該アドレスを前記ブロック転送の転送元又は転送先の一方のアドレスとし、
前記ブロック転送の転送元又は転送先の他方のアドレスは、前記アドレス指定フィールドが保有する論理アドレスに対応する物理アドレスであることを特徴とするデータプロセッサ。 - 前記制御回路と前記内部メモリの接続に専用化された第2バスを有し、前記第2バスは前記特定のアクセス要求に応答するデータのブロック転送に利用可能にされることを特徴とする請求項13記載のデータプロセッサ。
- CPUの命令セットは第1のキャッシュメモリ操作命令と、第2のキャッシュメモリ操作命令を有し、
前記第1のキャッシュメモリ操作命令は、アドレス指定フィールドで指定されたキャッシュ対象アドレスのデータをキャッシュメモリに保持させる操作を指示し、
前記第2のキャッシュメモリ操作命令は、アドレス指定フィールドで指定されたキャッシュ対象アドレスにつきキャッシュヒットである場合に当該キャッシュヒットに係るキャッシュエントリがダーティである場合に、ライトバックさせる操作を指示することを特徴とする請求項14記載のデータプロセッサ。 - 前記特定の命令は、前記第1のキャッシュメモリ操作命令と同じオペレーションコードが割当てられ、アドレス指定フィールドのキャッシュ非対象のアドレスをディスティネーションアドレスとする第1のデータ転送命令と、
前記第2のキャッシュメモリ操作命令と同じオペレーションコードが割当てられ、アドレス指定フィールドのキャッシュ非対象のアドレスをソースアドレスとする第2のデータ転送命令とであることを特徴とする請求項15記載のデータプロセッサ。 - CPUと、CPUが発行するアクセス要求を伝達可能なバスと、前記バスに接続され前記CPUが発行するアクセス要求に応答してメモリ動作可能な内部メモリと、前記バスに接続され前記CPUが発行する特定のアクセス要求に応答して前記内部メモリを一の転送対象とするブロック転送制御が可能な制御回路と、前記ブロック転送の他の転送対象に対するインタフェース制御が可能なバスインタフェースコントローラとを有し、
前記CPUの命令セットは前記特定のアクセス要求を発行する特定の命令を含み、当該特定の命令は前記ブロック転送の転送元又は転送先の一方のアドレスを指定するアドレス指定フィールドを有し、
前記ブロック転送の転送元又は転送先の他方のアドレスは、前記アドレス指定フィールドが保有する論理アドレスに対応する物理アドレスであることを特徴とするデータプロセッサ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2002/010161 WO2004031943A1 (ja) | 2002-09-30 | 2002-09-30 | データプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2004031943A1 JPWO2004031943A1 (ja) | 2006-02-02 |
JP3841810B2 true JP3841810B2 (ja) | 2006-11-08 |
Family
ID=32051269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004541169A Expired - Lifetime JP3841810B2 (ja) | 2002-09-30 | 2002-09-30 | データプロセッサ |
Country Status (3)
Country | Link |
---|---|
US (2) | US7415576B2 (ja) |
JP (1) | JP3841810B2 (ja) |
WO (1) | WO2004031943A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8432409B1 (en) | 2005-12-23 | 2013-04-30 | Globalfoundries Inc. | Strided block transfer instruction |
US8368710B1 (en) * | 2005-12-29 | 2013-02-05 | Globalfoundries Inc. | Data block transfer to cache |
US8275972B2 (en) * | 2006-08-23 | 2012-09-25 | Ati Technologies, Inc. | Write data mask method and system |
US8015380B2 (en) * | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Launching multiple concurrent memory moves via a fully asynchronoous memory mover |
US8327101B2 (en) * | 2008-02-01 | 2012-12-04 | International Business Machines Corporation | Cache management during asynchronous memory move operations |
US8356151B2 (en) * | 2008-02-01 | 2013-01-15 | International Business Machines Corporation | Reporting of partially performed memory move |
US8245004B2 (en) * | 2008-02-01 | 2012-08-14 | International Business Machines Corporation | Mechanisms for communicating with an asynchronous memory mover to perform AMM operations |
US8095758B2 (en) * | 2008-02-01 | 2012-01-10 | International Business Machines Corporation | Fully asynchronous memory mover |
US8275963B2 (en) * | 2008-02-01 | 2012-09-25 | International Business Machines Corporation | Asynchronous memory move across physical nodes with dual-sided communication |
US7958327B2 (en) * | 2008-02-01 | 2011-06-07 | International Business Machines Corporation | Performing an asynchronous memory move (AMM) via execution of AMM store instruction within the instruction set architecture |
US8250336B2 (en) * | 2008-02-25 | 2012-08-21 | International Business Machines Corporation | Method, system and computer program product for storing external device result data |
US8095702B2 (en) * | 2008-03-19 | 2012-01-10 | Lantiq Deutschland Gmbh | High speed memory access in an embedded system |
KR20100130007A (ko) * | 2009-06-02 | 2010-12-10 | 삼성전자주식회사 | 데이터 저장 장치 |
EP3320428A4 (en) * | 2015-07-09 | 2019-07-17 | Centipede Semi Ltd. | PROCESSOR WITH EFFICIENT MEMORY ACCESS |
US10776115B2 (en) | 2015-09-19 | 2020-09-15 | Microsoft Technology Licensing, Llc | Debug support for block-based processor |
TWI703501B (zh) * | 2018-08-23 | 2020-09-01 | 慧榮科技股份有限公司 | 具有分散式信箱架構的多處理器系統及其溝通方法 |
US10824429B2 (en) | 2018-09-19 | 2020-11-03 | Microsoft Technology Licensing, Llc | Commit logic and precise exceptions in explicit dataflow graph execution architectures |
US10860491B2 (en) * | 2019-05-03 | 2020-12-08 | Mediate Inc. | Cache management method using object-oriented manner and associated microcontroller |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3264921B2 (ja) | 1990-11-28 | 2002-03-11 | 株式会社日立製作所 | データ転送制御装置 |
US5848433A (en) * | 1995-04-12 | 1998-12-08 | Advanced Micro Devices | Way prediction unit and a method for operating the same |
JPH1063502A (ja) | 1996-08-16 | 1998-03-06 | Kagaku Gijutsu Shinko Jigyodan | プログラムによって命令をフェッチする命令キャッシュメモリ方式 |
JPH11304518A (ja) | 1998-04-22 | 1999-11-05 | Sanyo Electric Co Ltd | ナビゲーション装置 |
JPH11306084A (ja) * | 1998-04-23 | 1999-11-05 | Fujitsu Ltd | 情報処理装置及び記憶媒体 |
US6285743B1 (en) * | 1998-09-14 | 2001-09-04 | Nikon Corporation | Method and apparatus for soft X-ray generation |
US6542968B1 (en) * | 1999-01-15 | 2003-04-01 | Hewlett-Packard Company | System and method for managing data in an I/O cache |
US6412057B1 (en) * | 1999-02-08 | 2002-06-25 | Kabushiki Kaisha Toshiba | Microprocessor with virtual-to-physical address translation using flags |
US6389527B1 (en) | 1999-02-08 | 2002-05-14 | Kabushiki Kaisha Toshiba | Microprocessor allowing simultaneous instruction execution and DMA transfer |
US6925547B2 (en) * | 2000-12-14 | 2005-08-02 | Silicon Graphics, Inc. | Remote address translation in a multiprocessor system |
JP2003030129A (ja) * | 2001-07-12 | 2003-01-31 | Matsushita Electric Ind Co Ltd | データバッファ |
-
2002
- 2002-09-30 JP JP2004541169A patent/JP3841810B2/ja not_active Expired - Lifetime
- 2002-09-30 WO PCT/JP2002/010161 patent/WO2004031943A1/ja active Application Filing
- 2002-09-30 US US10/521,552 patent/US7415576B2/en not_active Expired - Lifetime
-
2008
- 2008-06-24 US US12/145,384 patent/US20080270707A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20050172049A1 (en) | 2005-08-04 |
US20080270707A1 (en) | 2008-10-30 |
WO2004031943A1 (ja) | 2004-04-15 |
JPWO2004031943A1 (ja) | 2006-02-02 |
US7415576B2 (en) | 2008-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3841810B2 (ja) | データプロセッサ | |
US9606803B2 (en) | Highly integrated scalable, flexible DSP megamodule architecture | |
JPH10187533A (ja) | キャッシュシステム、プロセッサ及びプロセッサを動作させる方法 | |
US20220244957A1 (en) | Cache Preload Operations Using Streaming Engine | |
JP2008542948A (ja) | コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ | |
US11954044B2 (en) | Translation lookaside buffer prewarming | |
US20170185515A1 (en) | Cpu remote snoop filtering mechanism for field programmable gate array | |
US9459869B2 (en) | Intelligent caching for an operand cache | |
JPH11312122A (ja) | 使用者が構築可能なオンチッププログラムメモリシステム | |
JP2000231549A (ja) | マイクロプロセッサ | |
JPH0711793B2 (ja) | マイクロプロセッサ | |
JP2021528712A (ja) | メモリ構成の動的変換のためのアーキテクチャ | |
US20210406014A1 (en) | Cache management operations using streaming engine | |
US6094711A (en) | Apparatus and method for reducing data bus pin count of an interface while substantially maintaining performance | |
US9378146B2 (en) | Operand cache design | |
US6647464B2 (en) | System and method utilizing speculative cache access for improved performance | |
JPH04251352A (ja) | マイクロプロセサのオンチップキャッシュ内のメモリ位置の選択的ロック | |
WO1997034229A9 (en) | Segment descriptor cache for a processor | |
WO1997034229A1 (en) | Segment descriptor cache for a processor | |
US6389527B1 (en) | Microprocessor allowing simultaneous instruction execution and DMA transfer | |
WO2004031963A1 (ja) | 半導体データプロセッサ | |
CN112540937A (zh) | 一种缓存、数据访问方法和指令处理装置 | |
JP3735373B2 (ja) | マイクロコンピュータ | |
JP3378270B2 (ja) | マルチプロセッサシステム | |
JP2002108702A (ja) | マイクロコンピュータ及びデータ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060710 |
|
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: 20060808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060808 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3841810 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090818 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100818 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110818 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110818 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110818 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120818 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120818 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130818 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |