JP2002073330A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JP2002073330A JP2002073330A JP2000257231A JP2000257231A JP2002073330A JP 2002073330 A JP2002073330 A JP 2002073330A JP 2000257231 A JP2000257231 A JP 2000257231A JP 2000257231 A JP2000257231 A JP 2000257231A JP 2002073330 A JP2002073330 A JP 2002073330A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- memory
- data
- processing device
- data processing
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 150
- 230000015654 memory Effects 0.000 claims abstract description 442
- 238000000034 method Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 abstract description 9
- 230000006872 improvement Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 43
- 238000012546 transfer Methods 0.000 description 20
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 230000001343 mnemonic effect Effects 0.000 description 2
- 101100433920 Arabidopsis thaliana ACO4 gene Proteins 0.000 description 1
- 101150026775 EAT1 gene Proteins 0.000 description 1
- 101000857634 Homo sapiens Receptor-transporting protein 1 Proteins 0.000 description 1
- 102100025426 Receptor-transporting protein 1 Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3875—Pipelining a single stage, e.g. superpipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
に処理することができ、処理性能の向上を図ることが可
能なデータ処理装置を提供すること。 【解決手段】 複数のメモリバンクから命令をフェッチ
する場合に、メモリバンクの選択に対応したパイプライ
ンステージIF0と、命令の読出しに対応したパイプラ
インステージIF1とを発生させてパイプライン処理を
行なう。したがって、選択したメモリバンクのみをプリ
チャージすることができ、消費電力を削減することが可
能となる。また、パイプラインステージIF0とIF1
とが並列に行なわれるため、命令メモリのスループット
を向上させることが可能となる。
Description
された命令およびデータをアクセスしながら処理を行な
うデータ処理装置に関し、特に、低速で低消費電力のメ
モリを用いて高速に処理することが可能なデータ処理装
置に関する。
t)等のデータ処理装置が広く使用されており、データ
処理装置の処理速度の向上に対する要望が高まる一方で
ある。従来のデータ処理装置、たとえばCPUにおいて
は、命令フェッチ機構、命令デコード機構および命令実
行機構などがパイプライン化されている。そして、動作
クロックの周波数を高くするとともにメモリのアクセス
サイクルを短くし、1パイプラインステージタイム(動
作クロックの1クロック)以内にメモリアクセスを行な
うことによって、データ処理装置の処理性能を高めてい
る。
を実現するのは困難である。したがって、キャッシュメ
モリに代表されるように高速で小容量のメモリと、低速
で大容量の主メモリとを階層的に構築し、見かけ上高速
で大容量のメモリがあるかのように動作させてこの問題
を解決していた。この階層化したメモリを用いた従来の
データ処理装置として、たとえば、J.L.Hennessy and
D.A.Patterson,“Memory-Hierarchy Design,”Computer
Architecture a Quantitative Approach,pp.372-483,
Morgan kaufmann Publishers, Inc. San Francisco,199
6.に詳しく紹介されている。
化することで擬似的に大容量の高速メモリを実現する場
合、データ処理装置が小容量の高速メモリに入りきらな
い命令やデータをアクセスするとき(キャッシュミ
ス)、メモリアクセスサイクルにウェイトサイクルを挿
入する必要があり、データ処理装置の性能が低下すると
いう問題点があった。また、メモリを高速動作させるた
めには、メモリに用いられるトランジスタの駆動能力を
大きくする必要があるため、データ処理装置内に大容量
の高速メモリを搭載するとメモリの消費電力が増大する
という問題点があった。
されたものであり、第1の目的は、低速で低消費電力の
メモリを用いつつ高スループットで処理することがで
き、処理性能の向上を図ることが可能なデータ処理装置
を提供することである。
された命令メモリから命令をフェッチする構成におい
て、リピート命令を実行した場合であっても同じメモリ
バンクに連続したアクセスが発生することを防止し、処
理性能の向上を図ることが可能なデータ処理装置を提供
することである。
されたデータメモリにアクセスする構成において、変数
データと係数データとを交互に読出す場合などにおいて
同じメモリバンクに連続したアクセスが発生することを
防止し、処理性能の向上を図ることが可能なデータ処理
装置を提供することである。
処理装置は、命令が格納される命令メモリと、データが
格納されるデータメモリと、フェッチされた命令をデコ
ードする命令デコーダと、命令メモリ、データメモリお
よび命令デコーダに接続され、命令メモリに格納される
命令をフェッチし、命令デコーダのデコード結果に基づ
いてデータメモリにアクセスするメモリ演算部と、命令
デコーダのデコード結果に基づいて整数演算を行なう整
数演算部とを含むデータ処理装置であって、命令メモリ
は、複数の命令メモリバンクを含み、メモリ演算部は、
複数の命令メモリバンクから命令をフェッチする場合
に、命令メモリバンクの選択に対応したパイプラインス
テージと、命令の読出しに対応したパイプラインステー
ジとを発生させてパイプライン処理を行なう。
に対応したパイプラインステージと、命令の読出しに対
応したパイプラインステージとを発生させるので、選択
した命令メモリバンクのみをプリチャージすることがで
き、消費電力を削減することが可能となる。また、命令
メモリバンクの選択に対応したパイプラインステージ
と、命令の読出しに対応したパイプラインステージとが
並列に行なわれるため、命令メモリアクセスのスループ
ットを向上させることが可能となる。
項1記載のデータ処理装置であって、命令メモリはさら
に、連続したアドレスにアクセスした場合に、複数の命
令メモリバンクの異なる命令メモリバンクにアクセスさ
れるように、下位アドレスを含んだアドレスをデコード
して複数の命令メモリバンクのチップセレクト信号を生
成する第1のバンク選択回路を含む。
してアクセスが行なわれなくなり、パイプラインの乱れ
を防止することが可能となる。
項1または2記載のデータ処理装置であって、命令メモ
リはさらに、高速命令メモリを含み、メモリ演算部は、
高速命令メモリから命令をフェッチする場合に、命令メ
モリバンクの選択に対応したパイプラインステージを発
生させずに、命令の読出しに対応したパイプラインステ
ージを発生させてパイプライン処理を行なう。
をフェッチする場合に、命令メモリバンクの選択に対応
したパイプラインステージを発生させないので、高速命
令メモリアクセスのレイテンシを向上させることが可能
となる。
項1〜3のいずれかに記載のデータ処理装置であって、
データメモリは、複数のデータメモリバンクを含み、メ
モリ演算部は、複数のデータメモリバンクにアクセスす
る場合に、データメモリバンクの選択に対応したパイプ
ラインステージと、データのアクセスに対応したパイプ
ラインステージとを発生させてパイプライン処理を行な
う。
択に対応したパイプラインステージと、データのアクセ
スに対応したパイプラインステージとを発生させるの
で、選択したデータメモリバンクのみをプリチャージす
ることができ、消費電力を削減することが可能となる。
また、データメモリバンクの選択に対応したパイプライ
ンステージと、データのアクセスに対応したパイプライ
ンステージとが並列に行なわれるため、データメモリア
クセスのスループットを向上させることが可能となる。
項4記載のデータ処理装置であって、データメモリはさ
らに、複数のデータメモリバンクを2つの異なる領域に
分割するために、上位アドレスを含んだアドレスをデコ
ードして複数のデータメモリバンクのチップセレクト信
号を生成する第2のバンク選択回路を含む。
交互に読出す場合であっても、同じメモリバンクに連続
したアクセスが発生しなくなり、パイプラインの乱れを
防止することが可能となる。
項5記載のデータ処理装置であって、第2のバンク選択
回路は、2つの異なる領域の中の連続したアドレスにア
クセスした場合に、複数のデータメモリバンクの異なる
データメモリバンクにアクセスされるように、下位アド
レスを含んだアドレスをデコードして複数のデータメモ
リバンクのチップセレクト信号を生成する。
てデータメモリにアクセスする場合であっても、同じメ
モリバンクに連続したアクセスが発生しなくなり、パイ
プラインの乱れを防止することが可能となる。
項4〜6のいずれかに記載のデータ処理装置であって、
データメモリはさらに、高速データメモリを含み、メモ
リ演算部は、高速データメモリにアクセスする場合に、
データメモリバンクの選択に対応したパイプラインステ
ージを発生させずに、データのアクセスに対応したパイ
プラインステージを発生させてパイプライン処理を行な
う。
セスする場合に、データメモリバンクの選択に対応した
パイプラインステージを発生させないので、高速データ
メモリアクセスのレイテンシを向上させることが可能と
なる。
項1〜7のいずれかに記載のデータ処理装置であって、
メモリ演算部は、命令バスを介して命令メモリからの命
令のフェッチを行ない、命令バスと異なるデータバスを
介してデータメモリにアクセスする。
ッチと、データメモリへのアクセスとのバスの競合が発
生しなくなり、パイプラインの乱れを防止することが可
能となる。
項1〜8のいずれかに記載のデータ処理装置であって、
メモリ演算部は、データ入力バスを介してデータメモリ
からデータを読出し、データ入力バスと異なるデータ出
力バスを介してデータメモリにデータを書込む。
書込みとのバスの競合が発生しなくなり、パイプライン
の乱れを防止することが可能となる。
令が格納される命令メモリと、データが格納されるデー
タメモリと、フェッチされた命令をデコードする命令デ
コーダと、複数のレジスタを有するレジスタファイル
と、命令メモリ、データメモリおよび命令デコーダに接
続され、命令メモリに格納される命令をフェッチし、命
令デコーダのデコード結果に基づいてデータメモリにア
クセスするメモリ演算部と、命令デコーダのデコード結
果に基づいて整数演算を行なう整数演算部とを含むデー
タ処理装置であって、メモリ演算部は、リピート命令を
実行する場合に、リピート命令の直後の命令をレジスタ
ファイル内の専用レジスタに保持し、専用レジスタに保
持された命令をフェッチしながらリピート命令を実行す
る。
た命令をフェッチしながらリピート命令を実行するの
で、複数のメモリバンクに分割された命令メモリから命
令をフェッチする場合であっても、同じメモリバンクに
連続したアクセスが発生しなくなり、処理性能の向上を
図ることが可能となる。
求項10記載のデータ処理装置であって、レジスタファ
イルは、プロセッサ状態ワードを含み、メモリ演算部
は、リピート命令を実行する場合に、最初のループにお
いてプロセッサ状態ワード内のフラグをセットし、命令
メモリからフェッチしたリピート命令の直後の命令を専
用レジスタに保持し、2回目のループにおいてプロセッ
サ状態ワード内のフラグをリセットし、専用レジスタに
保持された命令をフェッチしながらリピート命令を実行
する。
グを参照することにより、リピート命令の実行状況を制
御することが可能となる。
求項10記載のデータ処理装置であって、メモリ演算部
は、リピート命令を実行する場合に、リピート命令の直
後の複数の命令をレジスタファイル内の複数の専用レジ
スタに保持し、複数の専用レジスタに保持された複数の
命令をフェッチしながらリピート命令を実行する。
持された複数の命令をフェッチしながらリピート命令を
実行するので、複数のメモリバンクに分割された命令メ
モリから命令をフェッチする場合であっても、同じメモ
リバンクに連続したアクセスが発生しなくなり、処理性
能の向上を図ることが可能となる。
求項12記載のデータ処理装置であって、レジスタファ
イルは、プロセッサ状態ワードを含み、メモリ演算部
は、リピート命令を実行する場合に、最初のループにお
いてプロセッサ状態ワード内のフラグをセットし、命令
メモリからフェッチしたリピート命令の直後の複数の命
令を複数の専用レジスタに保持し、2回目のループにお
いてプロセッサ状態ワード内のフラグをリセットし、複
数の専用レジスタに保持された複数の命令をフェッチし
ながらリピート命令を実行する。
グにより、リピート命令の実行状況を制御することが可
能となる。
求項10〜13のいずれかに記載のデータ処理装置であ
って、命令メモリは、複数の命令メモリバンクを含み、
メモリ演算部は、複数の命令メモリバンクから命令をフ
ェッチする場合に、命令メモリバンクの選択に対応した
パイプラインステージと、命令の読出しに対応したパイ
プラインステージとを発生させてパイプライン処理を行
なう。
みをプリチャージすることができ、消費電力を削減する
ことが可能となる。また、命令メモリバンクの選択に対
応したパイプラインステージと、命令の読出しに対応し
たパイプラインステージとが並列に行なわれるため、命
令メモリアクセスのスループットを向上させることが可
能となる。
求項14記載のデータ処理装置であって、命令メモリは
さらに、連続したアドレスにアクセスした場合に、複数
の命令メモリバンクの異なる命令メモリバンクにアクセ
スされるように、下位アドレスを含んだアドレスをデコ
ードして複数の命令メモリバンクのチップセレクト信号
を生成する第1のバンク選択回路を含む。
してアクセスが行なわれなくなり、パイプラインの乱れ
を防止することが可能となる。
求項10〜15のいずれかに記載のデータ処理装置であ
って、データメモリは、複数のデータメモリバンクを含
み、メモリ演算部は、複数のデータメモリバンクにアク
セスする場合に、データメモリバンクの選択に対応した
パイプラインステージと、データのアクセスに対応した
パイプラインステージとを発生させてパイプライン処理
を行なう。
のみをプリチャージすることができ、消費電力を削減す
ることが可能となる。また、データメモリバンクの選択
に対応したパイプラインステージと、データのアクセス
に対応したパイプラインステージとが並列に行なわれる
ため、データメモリアクセスのスループットを向上させ
ることが可能となる。
求項16記載のデータ処理装置であって、データメモリ
はさらに、複数のデータメモリバンクを2つの異なる領
域に分割するために、上位アドレスを含んだアドレスを
デコードして複数のデータメモリバンクのチップセレク
ト信号を生成する第2のバンク選択回路を含む。
交互に読出す場合であっても、同じメモリバンクに連続
したアクセスが発生しなくなり、パイプラインの乱れを
防止することが可能となる。
求項17記載のデータ処理装置であって、第2のバンク
選択回路は、2つの異なる領域の中の連続したアドレス
にアクセスした場合に、複数のデータメモリバンクの異
なるデータメモリバンクにアクセスされるように、下位
アドレスを含んだアドレスをデコードして複数のデータ
メモリバンクのチップセレクト信号を生成する。
てデータメモリにアクセスする場合であっても、同じメ
モリバンクに連続したアクセスが発生しなくなり、パイ
プラインの乱れを防止することが可能となる。
求項10〜18のいずれかに記載のデータ処理装置であ
って、メモリ演算部は、タスクスイッチの切替え時に、
専用レジスタを含んだ複数のレジスタを退避してタスク
スイッチを切替える。
容易にタスクスイッチを切替えることが可能となる。
けるプロセッサを用いたデータ処理装置の概略構成を示
すブロック図である。このデータ処理装置は、プロセッ
サ10と、バス制御回路20と、ROM(Read Only Me
mory)21と、SDRAM(Synchronous Dynamic Rand
om Access Memory)22とを含む。また、プロセッサ1
0、バス制御回路20、ROM21およびSDRAM2
2は、アドレスバス31、データバス32および制御バ
ス33によって接続されている。
してバス制御回路20、ROM21およびSDRAM2
2へアドレスを出力する。プロセッサ10がSDRAM
22にデータを書込む場合には、データバス32を介し
てSDRAM22へデータを出力する。プロセッサ10
がROM21またはSDRAM22からデータを読出す
場合には、ROM21またはSDRAM22から出力さ
れたデータをデータバス32を介して入力する。また、
バス制御回路20は、プロセッサ10から出力される制
御信号を受けて、ROM21やSDRAM22を制御す
るための信号を生成して出力する。
10の概略構成を示すブロック図である。このプロセッ
サ10は、VLIW(Very Long Instruction Word)方
式のCPUコア(以下、単にコアと呼ぶ。)100と、
高速命令メモリ101と、高速データメモリ102と、
低電力命令メモリ103と、低電力データメモリ104
と、アドレスバス31、データバス32および制御バス
33を介して外部のバス制御回路20、ROM21およ
びSDRAM22に接続されるシステムバスI/F(以
下、バスインタフェース部と呼ぶ。)105とを含む。
データメモリ102、低電力命令メモリ103および低
電力データメモリ104は、データアドレスバス10
6、データ出力バス107およびデータ入力バス108
に接続されている。また、データと命令とを並列にアク
セスできるように、コア100、高速命令メモリ10
1、低電力命令メモリ103およびバスインタフェース
部105は、命令アドレスバス109および命令バス1
10にも接続されている。
型命令体系を有しており、2つのサブ命令を含んだVL
IW命令を実行する。コア100は、命令バス110を
介して入力されたVLIW命令をデコードする命令デコ
ーダ113と、レジスタファイル120と、アドレス演
算命令を実行するメモリ演算部130と、整数演算命令
を実行する整数演算部140とを含む。
まれるそれぞれのサブ命令をデコードするサブ命令デコ
ーダ111および112を含む。メモリ演算部130
は、メモリアドレス演算器131と、PC(Program Co
unter)演算器132、シフタ133と、ALU(Arith
metic and Logic Unit)134とを含む。また、整数演
算部140は、シフタ141と、ALU142と、乗算
器143と、64ビットのアキュムレータ144とを含
む。
0は、2つのサブ命令デコーダ111および112のデ
コード結果に従ってそれぞれのサブ命令を実行するが、
2つのサブ命令を並列に実行する場合と、2つのサブ命
令を順番に実行する場合とがある。レジスタファイル1
20は、ソフトウェアによって読み書き可能な64本の
汎用レジスタを含む。
明するための図である。汎用レジスタR0〜R63は、
上述したレジスタファイル120内に存在する。レジス
タR0は、常に“0”を保持するレジスタであり、他の
レジスタのクリア等に使用される。レジスタR62は、
サブルーチンの戻り先アドレスを保持するためのリンク
ポインタである。レジスタR63は、非割込み処理中に
おけるスタックポインタおよび割込み処理中におけるス
タックポインタであり、後述するPSW(Processor St
atus Word)内のモードビットSMによって切替えられ
る。
果または積和演算結果を保持するためのレジスタであ
り、汎用レジスタの2倍のビット長である64ビットの
レジスタである。
PT0_EおよびRPT0_Iは、リピート命令REP
EAT0に従ってハードウェアループ制御が行なわれる
ときに使用されるレジスタである。RPT0_Cは、ル
ープカウンタ値を保持する。RPT0_SおよびRPT
0_Eは、それぞれループの先頭命令のアドレスおよび
最後尾命令のアドレスを保持する。RPT0_Iは、ル
ープの先頭命令の命令コードを保持する。
PT1_EおよびRPT1_I(n)は、リピート命令
REPEAT1に従ってハードウェアループ制御が行な
われるときに使用されるレジスタである。RPT1_C
は、ループカウンタ値を保持する。RPT1_Sおよび
RPT1_Eは、それぞれループの先頭命令のアドレス
および最後尾命令のアドレスを保持する。RPT1_I
(n)は、ループの先頭命令から順に6個の命令コード
を保持する。
であり、コア100を制御するためのフラグ等を保持す
るレジスタである。レジスタPCは、コア100が現在
実行しているプログラムのアドレスを保持するレジスタ
である。レジスタBPSWおよびBPCは、それぞれバ
ックアップ用のPSWおよびPCであり、割り込み等の
事象が発生した場合にPSWおよびPCの値が自動的に
コピーされる。
OD1_SおよびMOD1_Eは、ループバッファなど
に使用するモジュロアドレッシングの制御を行なうため
のレジスタである。レジスタMOD0_SおよびMOD
0_Eがペアとなって、第1のループバッファの先頭ア
ドレスおよび最後尾アドレスを保持する。また、レジス
タMOD1_SおよびMOD1_Eがペアとなって、第
2のループバッファの先頭アドレスおよび最後部アドレ
スを保持する。
イントアドレスを指定する際にその値を保持するレジス
タである。
である。SMは、割込み処理中か非割り込み処理中かを
示すビットであり、上述したレジスタR63(SPU)
とR63(SPI)とを切替えるためのモードビットで
ある。DBは、デバッグ中か否かを示すビットであり、
“1”のときに上述したレジスタIBAが有効となる。
IEは、割込み許可中か割込み禁止中かを示すビットで
あり、割込み許可中のときに外部から割込み要求がある
とVLIW命令の切れ目で割込みを受付ける。
命令REPEAT0またはREPEAT1の実行によっ
てハードウェアループ制御がイネーブルになると、
“1”になるビットである。また、FS0およびFS1
は、それぞれリピート命令REPEAT0またはREP
EAT1の実行において、1回目のハードウェアループ
のときにのみ“1”となるビットである。
_SおよびMOD0_Eと、MOD1_SおよびMOD
1_Eとによるモジュロアドレッシングをイネーブルに
するか、ディスエイブルにするかを決定するビットであ
る。F0〜F7は、命令の実行条件を制御するためのビ
ットである。
成を示すブロック図である。この低電力命令メモリ10
3は、8個のメモリバンク40〜47と、メモリバンク
40〜47のいずれかを選択するバンク選択回路48と
を含む。バンク選択回路48は、データアドレスバス1
06、データ出力バス107、命令アドレスバス109
および命令バス110に接続される。また、バンク選択
回路48は、コア100から出力されるBSI(命令を
示すバスステータス)信号およびBSD(データを示す
バスステータス)信号を受けて、メモリバンク40〜4
7のCS(チップセレクト)信号を生成する。
が1クロックサイクル、レイテンシが2クロックサイク
ルのメモリである。この理由については後述する。ま
た、コア100からのアドレス転送と読出した命令コー
ドの転送とにそれぞれ1/2クロックサイクルが使用さ
れるので、コア100による命令コードのフェッチにお
けるレイテンシが3クロックサイクルとなる。なお、コ
ア100からのアドレス転送および読出した命令コード
の転送がメモリアクセスとパイプライン化されているた
め、スループットは1クロックサイクルのままである。
セスが行なわれた場合には、スループットが1クロック
サイクルとなってコア100が高速に命令をフェッチす
ることが可能となる。また、同じメモリバンクに対して
連続してアクセスが行なわれた場合には、スループット
が2クロックサイクルとなって1クロックサイクルの無
駄が発生する。
するためのブロック図である。このバンク選択回路48
は、データアドレス信号106が入力されるラッチ56
と、命令アドレス信号109が入力されるラッチ57
と、ラッチ56および57からの出力を選択するマルチ
プレクサ55と、アドレス入力レジスタ51と、データ
入力レジスタ52と、命令出力レジスタ53と、メモリ
バンク40〜47のCS信号を生成するCS信号生成回
路54とを含む。
て保持されたデータアドレス信号と、ラッチ57によっ
て保持された命令アドレス信号とを切替えて出力する。
アドレス入力レジスタ51は、マルチプレクサ55から
出力されたアドレスを保持する。データ入力レジスタ5
2は、データ出力バス107の内容を保持する。命令出
力レジスタ53は、メモリバンク40〜47から出力さ
れた命令コードを保持して命令バス110へ出力する。
ジスタ52および命令出力レジスタ53は、それぞれダ
ブルバッファになっている。同じメモリバンクに対して
連続してアクセスが行なわれた場合には、スループット
が2クロックサイクルとなって1クロックサイクルの無
駄が発生する。そのため、2クロックサイクルの間値を
保持しつつ、次の命令のアドレス等を保持するためにダ
ブルバッファの構成を採用している。
SD信号およびアドレス入力レジスタ51に保持される
アドレス(A0〜A16、A27、A28)に基づい
て、メモリバンク40〜47のCS信号を生成する。上
述したように、同じメモリバンクに対して連続してアク
セスが行なわれた場合には、スループットが2クロック
サイクルとなるため1ウェイト挿入される。WaitI
信号およびWaitD信号は、それぞれ命令またはデー
タのアクセスにおいてウェイトを挿入する際にアクティ
ブとなる。
説明するための図である。図7に示すように、32ビッ
トアドレスのうちA0〜A15をデコードしてメモリバ
ンク40〜47へのアクセスであることを判別する。ま
た、メモリバンク40〜47のいずれのメモリバンクへ
のアクセスであるかを、A16、A27およびA28の
3ビットをデコードすることによって判別する。低電力
命令メモリ103は8バイト単位でアクセスされるた
め、A29〜A31の値は任意である。なお、図7にお
いて、“H’”は16進数であることを示している。
スするときのパイプライン処理を説明するためのタイミ
ングチャートである。図8は、スループットが1クロッ
クサイクルとなり、レイテンシが2クロックサイクルと
なることを説明するためのものである。パイプライン処
理の詳細な説明は後述する。
M0〜M2およびWは、パイプラインのステージを示し
ている。命令フェッチステージIF0において、最初の
1/2クロックで命令アドレスバス109を介して命令
アドレスが転送される。次の1/2クロックでメモリバ
ンク40〜47の選択が行なわれる。
択されたメモリバンクのプリチャージが最初の1/2ク
ロックで行なわれる。このタイミングでCS信号生成回
路54からメモリバンクのCS信号が出力されて、選択
されたメモリバンク内のビット線が活性化される。そし
て、次の1/2クロックと命令フェッチステージIF2
の最初の1/2クロックとで命令のフェッチが行なわれ
る。なお、命令フェッチステージIF1において、次の
命令をフェッチするために次の命令のアドレスバス転送
が行なわれ、パイプライン的に処理が行なわれる。
チされた命令がデコードされる。フェッチされた命令が
ロード命令である場合、リードレジスタステージRにお
いてレジスタからデータアドレスが読出される。次に、
データメモリアクセスステージM0において、データア
ドレスバス転送およびバンクの選択が行なわれる。次
に、データメモリアクセスステージM1およびM2にお
いて、データの読出しおよびデータバス転送が行なわれ
る。そして、ライトバックステージWにおいて、読出し
たデータがレジスタに書込まれる。なお、低電力データ
メモリ104に対するアクセスのタイミングは、低電力
命令メモリ103に対するアクセスのタイミングと同じ
である。
合には、連続したアドレスにアクセスするため、アドレ
スのA27およびA28が「00」、「01」、「1
0」、「11」とサイクリックに変化する。したがっ
て、必ず異なるメモリバンクにアクセスすることにな
り、同じメモリバンクに続けてアクセスすることはな
い。
構成を示すブロック図である。この低電力データメモリ
104は、8個のメモリバンク60〜67と、メモリバ
ンク60〜67のいずれかを選択するバンク選択回路6
8とを含む。バンク選択回路68は、データアドレスバ
ス106、データ出力バス107およびデータ入力バス
108に接続される。また、バンク選択回路68は、コ
ア100から出力されるBSD信号を受けて、メモリバ
ンク60〜67のCS信号を生成する。
トが1クロックサイクル、レイテンシが2クロックサイ
クルのメモリである。また、コア100からのアドレス
転送と読出したデータの転送とにそれぞれ1/2クロッ
クサイクルが使用されるので、コア100によるメモリ
アクセスにおけるレイテンシが3クロックサイクルとな
る。なお、コア100からのアドレス転送および読出し
たデータの転送がメモリアクセスとパイプライン化され
ているため、スループットは1クロックサイクルのまま
である。
セスが行なわれた場合には、スループットが1クロック
サイクルとなってコア100が高速にメモリアクセスを
行なうことが可能となる。また、同じメモリバンクに対
して連続してアクセスが行なわれた場合には、スループ
ットが2クロックサイクルとなって1クロックサイクル
の無駄が発生する。
明するためのブロック図である。このバンク選択回路6
8は、アドレス入力レジスタ71と、データ入力レジス
タ72と、データ出力レジスタ73と、メモリバンク6
0〜67のCS信号を生成するCS信号生成回路74と
を含む。
ジスタ72およびデータ出力レジスタ73は、それぞれ
ダブルバッファになっている。同じメモリバンクに対し
て連続してアクセスが行なわれた場合には、スループッ
トが2クロックサイクルとなって1クロックサイクルの
無駄が発生する。そのため、2クロックサイクルの間値
を保持しつつ、次のデータのアドレス等を保持するため
にダブルバッファの構成を採用している。
びアドレス入力レジスタ71に保持されるアドレス(A
0〜A16、A27、A28)に基づいて、メモリバン
ク60〜67のCS信号を生成する。上述したように、
同じメモリバンクに対して連続してアクセスが行なわれ
た場合には、スループットが2クロックサイクルとなる
ため1ウェイト挿入される。WaitD信号は、メモリ
アクセスにおいてウェイトを挿入する際にアクティブと
なる。
を説明するための図である。図11に示すように、32
ビットアドレスのうちA0〜A15をデコードしてメモ
リバンク60〜67へのアクセスであることを判別す
る。また、メモリバンク60〜67のいずれのメモリバ
ンクへのアクセスであるかを、A16、A27およびA
28の3ビットをデコードすることによって判別する。
A16は、メモリバンク60〜63へのアクセスである
か、メモリバンク64〜67へのアクセスであるかを示
している。低電力データメモリ104は8バイト単位で
アクセスされるため、A29〜A31の値は任意であ
る。
ドレスのデータが順次アクセスされる場合が多い。8バ
イト単位でデータがアクセスされる場合には、アドレス
のA27およびA28が「00」、「01」、「1
0」、「11」とサイクリックに変化する。したがっ
て、必ず異なるメモリバンクにアクセスすることにな
り、同じメモリバンクに続けてアクセスすることはな
い。
クセスされる場合には、最初のメモリアクセスで一旦8
バイトのデータがデータ出力レジスタ73に格納され
る。そして、2回目以降のメモリアクセスにおいては、
メモリバンクへのアクセスは行なわれずに、データ出力
レジスタ73に格納されたデータが順次データ入力バス
108に出力される。したがって、スループットが1に
保たれる。
タメモリ104から同数の変数と係数とが読出される場
合が多い。したがって、アドレスのA16の値によって
変数が格納される領域(バンクメモリ60〜63)と係
数が格納される領域(バンクメモリ64〜67)とを分
け、変数と係数とを交互に読出す場合でも同じバンクメ
モリに対するアクセスが発生しないようにしている。
ォーマットを説明するための図である。コア100が実
行する命令は、2ウェイのVLIW型命令であり、サブ
命令を格納するLコンテナ205およびRコンテナ20
6と、各サブ命令の実行条件を指定するCCフィールド
203および204と、各サブ命令の実行順序または長
いサブ命令を定義するFMフィールド201aおよび2
01bとを含む。
SW中のフラグF0およびF1に依存した条件を指定す
る。たとえば、CCフィールド203が“000”のと
き、Lコンテナ205に含まれるサブ命令が無条件に実
行される。また、CCフィールド204が“101”の
とき、Rコンテナ206に含まれるサブ命令が、フラグ
F0=“1”かつF1=“1”の場合に実行され、フラ
グF0およびF1がそれ以外の値の場合にはサブ命令が
無効化される。
は、Lコンテナ205およびRコンテナ206に含まれ
るサブ命令の実行順序または長いサブ命令を定義する。
FMフィールドが“00”のとき、Lコンテナ205お
よびRコンテナ206に含まれる2つのサブ命令が並列
に実行される。FMフィールドが“01”のとき、Lコ
ンテナ205に含まれるサブ命令がまず実行され、次に
Rコンテナ206に含まれるサブ命令が実行される。F
Mフィールドが“10”のとき、Rコンテナ206に含
まれるサブ命令がまず実行され、次にLコンテナ205
に含まれるサブ命令が実行される。FMフィールドが
“11”のとき、Lコンテナ205およびRコンテナ2
06に分割して保持された1つの長いサブ命令が実行さ
れる。
ナ205およびRコンテナ206に保持されるサブ命令
のフォーマットを示す図である。短いサブ命令は28ビ
ットの長さを有し、7種類のフォーマットに分類され
る。図13(a)〜図13(g)に示すように、短いサ
ブ命令のビット位置0〜9で演算の種類が指定され、ビ
ット位置10〜27で最大3つのオペランドが指定され
る。長いサブ命令は54ビットの長さを有し、図13
(h)に示すように、長いサブ命令のビット位置0〜9
で演算の種類が指定され、ビット位置10〜53で32
ビット長の即値データを含む最大3つのオペランドが指
定される。なお、長いサブ命令の32ビットの即値は、
図12に示すVLIW命令におけるビット位置26〜3
1、36〜43および46〜63に保持される。
リアクセス演算(LD命令/ST命令)を行なうサブ命
令のフォーマットである。このサブ命令は、演算内容
(オペコード)を指定するフィールド(ビット位置0〜
7)と、レジスタであるか即値であるかを指定するフィ
ールドX(ビット位置8〜9)、レジスタ番号を指定す
るフィールドRa(ビット位置10〜15)およびRb
(ビット位置16〜21)と、レジスタ番号または6ビ
ット長の即値を指定するフィールドsrc(ビット位置
22〜27)とを含む。図13(a)に示すように、フ
ィールドXの値が“00”、“01”または“11”で
ある場合は、フィールドsrcがレジスタ番号であるこ
とを示しており、フィールドXの値が“10”である場
合は、フィールドsrcが即値であることを示してい
る。このサブ命令は、レジスタ間接アドレッシングによ
るメモリアクセス演算に用いられる。なお、“Rb+
+”および“Rb−−”は、レジスタ間接アドレッシン
グの際のアドレッシングモードを示しており、“Rb+
+”はポストインクリメント付きレジスタ間接モード
を、“Rb−−”はポストデクリメント付きレジスタ間
接モードを示している。
レジスタに保持されたオペランド間の演算(ALU命
令)または積和演算(MAC命令)を行なうサブ命令の
フォーマットである。このサブ命令は、レジスタ番号ま
たは即値を指定するフィールドY(ビット位置8)を含
む。図13(b)に示すように、フィールドYの値が
“0”である場合は、srcがレジスタ番号であること
を示しており、フィールドYの値が“1”である場合
は、srcが即値であることを示している。
マットは、ブランチ演算(BRA命令)を行なうサブ命
令のフォーマットである。図13(c)〜図13(g)
に示すように、フィールドF(ビット位置8)によって
レジスタであるか、即値であるかが指定され、フィール
ドZ(ビット位置9)によってゼロフラグを参照した分
岐命令であることが指定される。また、ビット位置10
〜27に示すフィールドによって、レジスタまたは即値
による分岐先アドレスが指定される。
サブ命令のフォーマットを示している。このサブ命令
は、演算内容(オペコード)を指定するフィールド(ビ
ット位置0〜7)と、レジスタ番号を指定するフィール
ドRa(ビット位置10〜15)およびRb(ビット位
置16〜21)と、32ビット長の即値を指定するフィ
ールドimm(ビット位置22〜53)とを含む。この
長いサブ命令は、メモリアクセス演算、汎用レジスタに
保持されたオペランド間の演算、積和演算およびブラン
チ演算のいずれにも使用される。
0のパイプライン処理を説明するための図である。図1
4(a)〜図14(d)は、低電力命令メモリ103か
らフェッチした命令を実行するときのパイプライン処理
を示しており、それぞれALU命令、MAC命令、LD
/ST命令およびBRA命令を示している。ステージI
F0〜IF2は、命令フェッチステージを示している。
ステージDは、命令デコードステージを示している。
らオペランドを読出すステージである。ステージR/A
は、レジスタファイル120からPC値の読出し、また
は読出したPC値にディスプレースメント値を加算して
分岐先アドレスを計算するステージである。ステージE
0およびE1は、命令実行のための演算を行なうステー
ジである。ステージM0〜M2は、データメモリに対し
てアクセスを行なうステージである。ステージWは、オ
ペランドを汎用レジスタに書込むステージである。
メモリ101からフェッチした命令を実行するときのパ
イプライン処理を示しており、それぞれALU命令、M
AC命令、LD/ST命令およびBRA命令を示してい
る。これらのパイプライン処理は、図14(a)〜図1
4(d)に示すパイプライン処理と比較して、命令フェ
ッチステージがIF0およびIF1の2段となっている
点、およびデータメモリアクセスステージがM0および
M1の2段となっている点が異なる。このデータメモリ
アクセスステージが2段となっているのは、高速データ
メモリ102にアクセスする場合であり、低電力データ
メモリ104にアクセスする場合にはM0〜M2の3段
となる。
うに、LD/ST命令の実行において、ステージM0〜
M2またはM0〜M1の複数のパイプラインステージで
データメモリにアクセスする場合、データバスにおける
データ転送の競合が発生するため、たとえばロード命令
の実行直後にストア命令の実行ができないという問題点
が従来あった。しかし、本実施の形態におけるコア10
0は、ロード命令実行時にデータ入力バス108を介し
てデータを転送し、ストア命令実行時にデータ出力バス
107を介してデータを転送するので、ロード命令の実
行直後にストア命令を実行する場合であってもパイプラ
インが乱れることはない。また、それぞれのデータバス
はデータの転送方向が一定であるので、回路が簡単にな
るというメリットがある。
101または102にアクセスする場合と、低電力メモ
リ103または104にアクセスする場合とで、パイプ
ライン処理の段数を可変にしている。低電力命令メモリ
103からフェッチした命令を実行する場合のパイプラ
イン処理におけるタイミングについては、図8を用いて
説明した。
ッチした命令を実行する場合のパイプライン処理を説明
するためのタイミングチャートである。命令フェッチス
テージIF0において、最初の1/2クロックで命令フ
ェッチのためのアドレスバス転送と、プリチャージが同
時に行なわれる。このプリチャージは、アドレスの値に
かかわらず高速命令メモリ101にアクセスする際に必
ず行なわれるため、低電力命令メモリ103にアクセス
する場合と比較して、1クロックサイクルだけ早くアク
セスが終了する。
チステージIF1の最初の1/2クロックとで命令のフ
ェッチが行なわれる。なお、命令フェッチステージIF
1において、次の命令をフェッチするために次の命令の
アドレスバス転送が行なわれ、パイプライン的に処理が
行なわれる。
チされた命令がデコードされる。フェッチされた命令が
ロード命令である場合、リードレジスタステージRにお
いてレジスタからデータアドレスが読出される。次に、
データメモリアクセスステージM0において、データア
ドレスバス転送と同時に高速データメモリ102に対す
るプリチャージが行なわれる。このプリチャージは、ア
ドレスの値にかかわらず高速データメモリ102にアク
セスする際に必ず行なわれるため、低電力データメモリ
104にアクセスする場合と比較して、1クロックサイ
クルだけ早くアクセスが終了する。
M1において、データの読出しおよびデータバス転送が
行なわれる。そして、ライトバックステージWにおい
て、読出したデータがレジスタに書込まれる。
送命令および比較命令の一覧を示す図である。図17
は、算術演算命令、論理演算命令、シフト演算命令およ
びビット演算命令の一覧を示す図である。図18は、分
岐命令、OS(Operating System)関連命令、DSP
(Digital Signal Processor)関連命令、リピート命令
およびデバッガ支援命令の一覧を示す図である。図16
〜図18において、大文字で各サブ命令のニーモニック
が記載され、その横にサブ命令のオペレーションの内容
が記載されている。各サブ命令のオペレーションの内容
は、図16〜図18に詳細に記載されているので、詳細
な説明は行なわない。
サ10のメモリマップの一例を示す図である。図19に
示すように、各メモリはアドレス値によって区別されて
おり、コア100はアドレス値によってメモリアクセス
開始からメモリアクセス終了までのサイクル数、すなわ
ちパイプラインの段数を決定する。なお、図2に示すよ
うに、高速命令メモリ101および低電力命令メモリ1
03からの命令のフェッチと、高速データメモリ102
および低電力データメモリ104に対するアクセスとが
異なるバスで行なわれるため、バスの競合が発生するこ
とはない。
nite Impulse Response)フィルタ等の処理を行なう際
にループが多用される。本実施の形態のコア100にお
いては、ループ処理をハードウェアで行ない、ループの
ための分岐を実質的にゼロクロックサイクルで処理する
ためのリピート命令(REPEAT0,REPEAT
1)をサポートしている。以下、このリピート命令につ
いて詳細に説明する。
ンとそれを用いたFIRフィルタ処理のプログラムの一
例とを示す図である。REPEAT1のオペレーション
に示すように、ループの回数countと、ループの最
初の命令から最後の命令までの距離pcaddrとが指
定され、RPT1_C、RPT1_S、RPT1_Eお
よびRPT1_I(0:5)の各レジスタに、それぞれ
ループ回数、ループ開始アドレス(REPEAT1命令
の直後の命令アドレス)、ループ終了アドレス、および
ループの先頭から6個の命令が入力され、PSWのRP
1ビットおよびFS1ビットがセットされる。そして、
ループの回数countだけ、ループの最初の命令から
最後の命令までが実行される。
ープの回数countに“20”が設定され、ループの
最初の命令から最後の命令までの距離pcaddrに
“48”が設定される。そして、STARTからEND
までの処理、すなわちLD2W命令とMAC0命令を並
列に実行するVLIW命令6個からなる処理が20回繰
返される。
したときのパイプライン処理を説明するための図であ
る。高速命令メモリ101からLD2W命令およびMA
C0命令がフェッチされ、メモリ演算部130および整
数演算部140が、LD2W命令およびMAC0命令を
並列にパイプライン処理し、1クロックサイクルに1回
ずつ積和演算結果がアキュムレータA0に格納されると
ころを示している。
ープにおいてはFS1ビットがセットされ、START
からENDまでのVLIW命令が実行されるとともに、
その6個のVLIW命令が6個のレジスタRPT1_I
(0:5)に書込まれる。1回目のループの最後の分岐
においてFS1ビットがリセットされ、2回目のループ
以降最後のループまで、レジスタRPT1_I(0:
5)に格納されたVLIW命令がフェッチされて高速命
令メモリ101へのアクセスは行なわれない。ループの
実行回数に応じて、レジスタRPT1_Cの値が1ずつ
デクリメントされ、RPT1_Cの値が“0”になると
ループが終了してRP1ビットがリセットされる。
込み要求を受付けると、このプログラムの実行が中断さ
れ、現タスクAが新タスクBにスイッチするが、タスク
Bを実行する前にOSがBPSWに退避されたタスクA
実行中のPSW値と、RTP1_C、RTP1_S、R
TP1_EおよびRTP1_I(0:5)の各レジスタ
を含むタスクAの実行環境をすべてメモリに退避し、タ
スクAの処理に戻るときにOSがタスクAの実行環境を
復帰させる。そのため、REPEAT1命令によって起
動されたループ処理がタスクスイッチの切替えによって
壊れることはない。
ンとそれを用いたFIRフィルタ処理のプログラムの一
例とを示す図である。REPEAT0のオペレーション
に示すように、ループの回数countと、ループの最
初の命令から最後の命令までの距離pcaddrとが指
定され、RPT0_C、RPT0_S、RPT0_Eお
よびRPT0_Iの各レジスタに、それぞれループ回
数、ループ開始アドレス(REPEAT0命令の直後の
命令アドレス)、ループ終了アドレス、およびループの
先頭命令が入力され、PSWのRP0ビットおよびFS
0ビットがセットされる。そして、ループの回数cou
ntだけ、ループの最初の命令から最後の命令までが実
行される。
ープの回数countに“10”が設定され、ループの
最初の命令から最後の命令までの距離pcaddrに
“64”が設定される。そして、STARTからEND
までの処理、すなわちLD2W命令とMAC0命令とを
並列に実行するVLIW命令8個からなる処理が10回
繰返される。
したときのパイプライン処理を説明するための図であ
る。低電力命令メモリ103からLD2W命令およびM
AC0命令がフェッチされ、メモリ演算部130および
整数演算部140が、LD2W命令およびMAC0命令
を並列にパイプライン処理し、1クロックサイクルに1
回ずつ積和演算結果がアキュムレータA0に格納される
ところを示している。
ープにおいてはFS0ビットがセットされ、START
からENDまでのVLIW命令が実行されるとともに、
最初のVLIW命令(ラベルSTARTが付されたVL
IW命令)がレジスタRPT0_Iに書込まれる。1回
目のループの最後の分岐においてFS0ビットがリセッ
トされ、2回目のループ以降最後のループまで、レジス
タRPT0_Iに格納された最初のVLIW命令および
低電力命令メモリ103に格納された最初のVLIW命
令以外の命令がフェッチされて実行される。ループの実
行回数に応じて、レジスタRPT0_Cの値が1ずつデ
クリメントされ、RPT0_Cの値が“0”になるとル
ープが終了してRP0ビットがリセットされる。
命令メモリ103のメモリバンク40〜47に保持され
ており、1回目のループにおいてはメモリバンク40か
ら順番にVLIW命令がアクセスされて、1クロックサ
イクル毎にVLIW命令がフェッチされる。図22に示
すプログラム例の場合には、VLIW命令が8個である
ので連続して同じメモリバンクにアクセスすることがな
く、スループットが1となる。しかし、ループ内のVL
IW命令の数が(バンク数×n+1)の場合には、ルー
プ内の最後の命令と最初の命令とが同じメモリバンクに
存在することになり、1ウェイト挿入されてスループッ
トが2となる。
0においては、ループの最初の命令がレジスタRPT0
_Iに保持されているため、連続して同じメモリバンク
にアクセスされることがなくなり、図23に示すように
パイプラインに乱れが発生することはない。
プ部分が実行されるときのデータの流れを示す図であ
る。メモリ演算部130および整数演算部140は、L
D2W命令およびMAC0命令を並列に実行する。メモ
リ演算部130は、低電力データメモリ104の係数領
域302(アドレスH’8000 8100〜H’8000 8128)から
レジスタR10〜R17へ係数を2個ずつロードするL
D2W命令と、低電力データメモリ104の変数領域3
01(アドレスH’8000 0100〜H’8000 0128)からレジ
スタR20〜R27へ変数を2個ずつロードするLD2
W命令とが交互に実行される。
30またはR31に保持しているポインタを命令実行毎
に8ずつポストインクリメントし、連続する係数および
変数を次々にレジスタファイル120へロードする。メ
モリ演算部130は、奇数番目のLD2W命令を実行す
ることによって、メモリバンク60〜63に保持される
係数データをレジスタR10〜R17にロードする。ま
た、メモリ演算部130は、偶数番目のLD2W命令を
実行することによって、メモリバンク64〜67に保持
される変数データをレジスタR20〜R27にロードす
る。
104のメモリバンク60〜67のCS信号を生成する
際に、A16、A27およびA28をデコードしてい
る。したがって、低電力データメモリ104のメモリバ
ンク60〜63が変数領域301となり、メモリバンク
64〜67が係数領域302となるため、図22に示す
LD2W命令を連続して実行した場合であっても、同じ
メモリバンクにアクセスされることがなくパイプライン
に乱れが発生することはない。
場合や、連続して変数をアクセスする場合であっても、
A27およびA28をデコードしてメモリバンクのCS
信号を生成しているため、連続する係数や変数が同じメ
モリバンクに存在することは起こり得ない。したがっ
て、ポストインクリメントアドレッシングモードを使用
する限り、同じバンクへ連続してアクセスされることは
ない。
リ103の同じメモリバンクに連続アクセスが行なわれ
ないプログラム例として、FIRフィルタ処理について
説明した。しかし、命令のフェッチにおいて分岐が発生
しない限り連続するアドレスにアクセスが行なわれる。
したがって、下位アドレスをデコードして2つ以上のメ
モリバンクに分割すれば、分岐以外の命令実行において
同じメモリバンクに連続してアクセスが発生することは
ない。
フィルタ処理以外でも連続したアドレス領域に係数や変
数を格納して順次アクセスする場合、下位アドレスをデ
コードして低電力データメモリ104を2つ以上のメモ
リバンクに分割しておけば、同じメモリバンクに連続し
てアクセスが発生することはない。
るデータ処理装置によれば、メモリ演算部130が低電
力命令メモリ103のメモリバンクの選択に対応したパ
イプラインステージと、命令の読出しに対応したパイプ
ラインステージとを発生させるので、選択したメモリバ
ンクのみをプリチャージすることができ、消費電力を削
減することが可能となった。また、パイプラインステー
ジIF0〜IF2が並列に行なわれるため、低電力命令
メモリ103のスループットを向上させることが可能と
なった。
スA27およびA28をデコードしてメモリバンク40
〜47のCS信号を生成するので、メモリ演算部130
が連続したアドレス領域から命令をフェッチする場合で
も異なるメモリバンクにアクセスが行なわれるため、パ
イプラインに乱れが発生することを防止できる。また、
高速命令メモリ101から命令をフェッチする場合に
は、バンクセレクトを行なわず、プリチャージとアドレ
ス転送とを並列して行なうようにしたので、高速に命令
をフェッチすることが可能となった。
104のメモリバンクの選択に対応したパイプラインス
テージと、データのアクセスに対応したパイプラインス
テージとを発生させるので、選択したメモリバンクのみ
をプリチャージすることができ、消費電力を削減するこ
とが可能となった。また、パイプラインステージM0〜
M2が並列に行なわれるため、低電力データメモリ10
4のスループットを向上させることが可能となった。
スA27およびA28をデコードしてメモリバンク60
〜67のCS信号を生成するので、メモリ演算部130
が連続したアドレス領域にデータのアクセスを行なう場
合でも異なるメモリバンクにアクセスが行なわれるた
め、パイプラインに乱れが発生することを防止できる。
また、高速データメモリ102にデータのアクセスを行
なう場合には、バンクセレクトを行なわず、アドレスの
転送とプリチャージとを並列して行なうようにしたの
で、高速にデータのアクセスを行なうことが可能となっ
た。
スA16をデコードしてメモリバンク60〜67のCS
信号を生成するので、係数と変数とを別々の領域に格納
することによって、係数と変数とを交互に読み出す場合
でも同じメモリバンクに連続してアクセスが発生するこ
とがなくなり、パイプラインに乱れが発生することを防
止できる。
行する場合に、レジスタRPT0_IまたはRPT1_
I(n)にリピート命令の直後の命令を保持するように
したので、ループの最後の命令からループの最初の命令
に分岐する場合であっても、同じメモリバンクに連続し
てアクセスすることがなくなり、処理性能の低下を防止
することが可能となった。
替えられる場合であっても、OSがBPSWに退避され
たPSW値と、RTP1_C、RTP1_S、RTP1
_EおよびRTP1_I(0:5)の各レジスタを含む
タスクの実行環境をすべてメモリに退避するようにした
ので、REPEAT命令によって起動されたループ処理
がタスクスイッチの切替えによって壊れるのを防止する
ことが可能となった。
がセットされ、2回目以降のループにおいてFS1ビッ
トがリセットされるので、リピート命令の実行状況を容
易に把握することが可能となった。
で例示であって制限的なものではないと考えられるべき
である。本発明の範囲は上記した説明ではなくて特許請
求の範囲によって示され、特許請求の範囲と均等の意味
および範囲内でのすべての変更が含まれることが意図さ
れる。
ば、メモリ演算部が命令メモリバンクの選択に対応した
パイプラインステージと、命令の読出しに対応したパイ
プラインステージとを発生させるので、選択した命令メ
モリバンクのみをプリチャージすることができ、消費電
力を削減することが可能となった。また、命令メモリバ
ンクの選択に対応したパイプラインステージと、命令の
読出しに対応したパイプラインステージとが並列に行な
われるため、命令メモリのスループットを向上させるこ
とが可能となった。
ば、同じ命令メモリバンクに連続してアクセスが行なわ
れなくなり、パイプラインの乱れを防止することが可能
となった。
ば、メモリ演算部が高速命令メモリから命令をフェッチ
する場合に、高速命令メモリに対して少ないパイプライ
ンステージ数でアクセスを行なうので、高速命令メモリ
のレイテンシを向上させることが可能となった。
ば、メモリ演算部がデータメモリバンクの選択に対応し
たパイプラインステージと、データのアクセスに対応し
たパイプラインステージとを発生させるので、選択した
データメモリバンクのみをプリチャージすることがで
き、消費電力を削減することが可能となった。また、デ
ータメモリバンクの選択に対応したパイプラインステー
ジと、データのアクセスに対応したパイプラインステー
ジとが並列に行なわれるため、データメモリのスループ
ットを向上させることが可能となった。
ば、変数データと係数データとを交互に読出す場合であ
っても、同じメモリバンクに連続したアクセスが発生し
なくなり、パイプラインの乱れを防止することが可能と
なった。
ば、ポストインクリメントを用いてデータメモリにアク
セスする場合であっても、同じメモリバンクに連続した
アクセスが発生しなくなり、パイプラインの乱れを防止
することが可能となった。
ば、メモリ演算部が高速データメモリにアクセスする場
合に、高速データメモリに対して少ないパイプラインス
テージ数でアクセスを行なうので、高速データメモリの
レイテンシを向上させることが可能となった。
ば、命令メモリからの命令のフェッチと、データメモリ
へのアクセスとのバスの競合が発生しなくなり、パイプ
ラインの乱れを防止することが可能となった。
ば、データの読出しと、データの書込みとのバスの競合
が発生しなくなり、パイプラインの乱れを防止すること
が可能となった。
ば、メモリ演算部が専用レジスタに保持された命令をフ
ェッチしながらリピート命令を実行するので、複数のメ
モリバンクに分割された命令メモリから命令をフェッチ
する場合であっても、同じメモリバンクに連続したアク
セスが発生しなくなり、処理性能の向上を図ることが可
能となった。
ば、プロセッサ状態ワードのフラグにより、リピート命
令の実行状況を制御してマルチタスクにも対応すること
が可能となった。
ば、メモリ演算部が複数の専用レジスタに保持された複
数の命令をフェッチしながらリピート命令を実行するの
で、複数のメモリバンクに分割された命令メモリから命
令をフェッチする場合であっても、同じメモリバンクに
連続したアクセスが発生しなくなり、処理性能の向上を
図ることが可能となった。
ば、プロセッサ状態ワードのフラグにより、リピート命
令の実行状況を制御してマルチタスクにも対応すること
が可能となった。
ば、選択した命令メモリバンクのみをプリチャージする
ことができ、消費電力を削減することが可能となった。
また、命令メモリバンクの選択に対応したパイプライン
ステージと、命令の読出しに対応したパイプラインステ
ージとが並列に行なわれるため、命令メモリのスループ
ットを向上させることが可能となった。
ば、同じ命令メモリバンクに連続してアクセスが行なわ
れなくなり、パイプラインの乱れを防止することが可能
となった。
ば、選択したデータメモリバンクのみをプリチャージす
ることができ、消費電力を削減することが可能となっ
た。また、データメモリバンクの選択に対応したパイプ
ラインステージと、データのアクセスに対応したパイプ
ラインステージとが並列に行なわれるため、データメモ
リのスループットを向上させることが可能となった。
ば、変数データと係数データとを交互に読出す場合であ
っても、同じメモリバンクに連続したアクセスが発生し
なくなり、パイプラインの乱れを防止することが可能と
なった。
ば、ポストインクリメントを用いてデータメモリにアク
セスする場合であっても、同じメモリバンクに連続した
アクセスが発生しなくなり、パイプラインの乱れを防止
することが可能となった。
ば、元のタスクに復帰する際に、容易にタスクスイッチ
を切替えることが可能となった。
を用いたデータ処理装置の概略構成を示すブロック図で
ある。
の概略構成を示すブロック図である。
の図である。
ロック図である。
ブロック図である。
めの図である。
のパイプライン処理を説明するための図である。
ブロック図である。
のブロック図である。
ための図である。
を説明するための図である。
に保持されるサブ命令のフォーマットを示す図である。
パイプライン処理を説明するための図である。
令を実行する場合のパイプライン処理を説明するための
図である。
び比較命令の一覧を示す図である。
命令およびビット演算命令の一覧を示す図である。
令、リピート命令およびデバッガ支援命令の一覧を示す
図である。
0のメモリマップの一例を示す図である。
れを用いたFIRフィルタ処理のプログラムの一例とを
示す図である。
パイプライン処理を説明するための図である。
れを用いたFIRフィルタ処理のプログラムの一例とを
示す図である。
パイプライン処理を説明するための図である。
行されるときのデータの流れを示す図である。
M、22 SDRAM、40〜47,60〜67 メモ
リバンク、48,68 バンク選択回路、51,71
アドレス入力レジスタ、52,72 データ入力レジス
タ、53 命令出力レジスタ、54,74 CS信号生
成回路、55 マルチプレクサ、56,57 ラッチ、
73 データ出力レジスタ、100 CPUコア、10
1 高速命令メモリ、102 高速データメモリ、10
3 低電力命令メモリ、104 低電力データメモリ、
111,112 サブ命令デコーダ、113 命令デコ
ーダ、120 レジスタファイル、130 メモリ演算
部、131 メモリアドレス演算器、132 PC演算
器、133,141 シフタ、134,142 AL
U、140 整数演算部、143 乗算器、144 ア
キュムレータ。
Claims (19)
- 【請求項1】 命令が格納される命令メモリと、 データが格納されるデータメモリと、 フェッチされた命令をデコードする命令デコーダと、 前記命令メモリ、前記データメモリおよび前記命令デコ
ーダに接続され、前記命令メモリに格納される命令をフ
ェッチし、前記命令デコーダのデコード結果に基づいて
前記データメモリにアクセスするメモリ演算部と、 前記命令デコーダのデコード結果に基づいて整数演算を
行なう整数演算部とを含むデータ処理装置であって、 前記命令メモリは、複数の命令メモリバンクを含み、 前記メモリ演算部は、前記複数の命令メモリバンクから
命令をフェッチする場合に、命令メモリバンクの選択に
対応したパイプラインステージと、命令の読出しに対応
したパイプラインステージとを発生させてパイプライン
処理を行なう、データ処理装置。 - 【請求項2】 前記命令メモリはさらに、連続したアド
レスにアクセスした場合に、前記複数の命令メモリバン
クの異なる命令メモリバンクにアクセスされるように、
下位アドレスを含んだアドレスをデコードして前記複数
の命令メモリバンクのチップセレクト信号を生成する第
1のバンク選択回路を含む、請求項1記載のデータ処理
装置。 - 【請求項3】 前記命令メモリはさらに、高速命令メモ
リを含み、 前記メモリ演算部は、前記高速命令メモリから命令をフ
ェッチする場合に、前記命令メモリバンクの選択に対応
したパイプラインステージを発生させずに、命令の読出
しに対応したパイプラインステージを発生させてパイプ
ライン処理を行なう、請求項1または2記載のデータ処
理装置。 - 【請求項4】 前記データメモリは、複数のデータメモ
リバンクを含み、 前記メモリ演算部は、前記複数のデータメモリバンクに
アクセスする場合に、データメモリバンクの選択に対応
したパイプラインステージと、データのアクセスに対応
したパイプラインステージとを発生させてパイプライン
処理を行なう、請求項1〜3のいずれかに記載のデータ
処理装置。 - 【請求項5】 前記データメモリはさらに、前記複数の
データメモリバンクを2つの異なる領域に分割するため
に、上位アドレスを含んだアドレスをデコードして前記
複数のデータメモリバンクのチップセレクト信号を生成
する第2のバンク選択回路を含む、請求項4記載のデー
タ処理装置。 - 【請求項6】 前記第2のバンク選択回路は、前記2つ
の異なる領域の中の連続したアドレスにアクセスした場
合に、前記複数のデータメモリバンクの異なるデータメ
モリバンクにアクセスされるように、下位アドレスを含
んだアドレスをデコードして前記複数のデータメモリバ
ンクのチップセレクト信号を生成する、請求項5記載の
データ処理装置。 - 【請求項7】 前記データメモリはさらに、高速データ
メモリを含み、 前記メモリ演算部は、前記高速データメモリにアクセス
する場合に、前記データメモリバンクの選択に対応した
パイプラインステージを発生させずに、データのアクセ
スに対応したパイプラインステージを発生させてパイプ
ライン処理を行なう、請求項4〜6のいずれかに記載の
データ処理装置。 - 【請求項8】 前記メモリ演算部は、命令バスを介して
前記命令メモリからの命令のフェッチを行ない、前記命
令バスと異なるデータバスを介して前記データメモリに
アクセスする、請求項1〜7のいずれかに記載のデータ
処理装置。 - 【請求項9】 前記メモリ演算部は、データ入力バスを
介して前記データメモリからデータを読出し、前記デー
タ入力バスと異なるデータ出力バスを介して前記データ
メモリにデータを書込む、請求項1〜8のいずれかに記
載のデータ処理装置。 - 【請求項10】 命令が格納される命令メモリと、 データが格納されるデータメモリと、 フェッチされた命令をデコードする命令デコーダと、 複数のレジスタを有するレジスタファイルと、 前記命令メモリ、前記データメモリおよび前記命令デコ
ーダに接続され、前記命令メモリに格納される命令をフ
ェッチし、前記命令デコーダのデコード結果に基づいて
前記データメモリにアクセスするメモリ演算部と、 前記命令デコーダのデコード結果に基づいて整数演算を
行なう整数演算部とを含むデータ処理装置であって、 前記メモリ演算部は、リピート命令を実行する場合に、
前記リピート命令の直後の命令を前記レジスタファイル
内の専用レジスタに保持し、該専用レジスタに保持され
た命令をフェッチしながらリピート命令を実行する、デ
ータ処理装置。 - 【請求項11】 前記レジスタファイルは、プロセッサ
状態ワードを含み、 前記メモリ演算部は、リピート命令を実行する場合に、
最初のループにおいて前記プロセッサ状態ワード内のフ
ラグをセットし、前記命令メモリからフェッチした前記
リピート命令の直後の命令を前記専用レジスタに保持
し、 2回目のループにおいて前記プロセッサ状態ワード内の
前記フラグをリセットし、前記専用レジスタに保持され
た命令をフェッチしながらリピート命令を実行する、請
求項10記載のデータ処理装置。 - 【請求項12】 前記メモリ演算部は、リピート命令を
実行する場合に、前記リピート命令の直後の複数の命令
を前記レジスタファイル内の複数の専用レジスタに保持
し、該複数の専用レジスタに保持された複数の命令をフ
ェッチしながらリピート命令を実行する、請求項10記
載のデータ処理装置。 - 【請求項13】 前記レジスタファイルは、プロセッサ
状態ワードを含み、 前記メモリ演算部は、リピート命令を実行する場合に、
最初のループにおいて前記プロセッサ状態ワード内のフ
ラグをセットし、前記命令メモリからフェッチした前記
リピート命令の直後の複数の命令を前記複数の専用レジ
スタに保持し、 2回目のループにおいて前記プロセッサ状態ワード内の
前記フラグをリセットし、前記複数の専用レジスタに保
持された複数の命令をフェッチしながらリピート命令を
実行する、請求項12記載のデータ処理装置。 - 【請求項14】 前記命令メモリは、複数の命令メモリ
バンクを含み、 前記メモリ演算部は、前記複数の命令メモリバンクから
命令をフェッチする場合に、命令メモリバンクの選択に
対応したパイプラインステージと、命令の読出しに対応
したパイプラインステージとを発生させてパイプライン
処理を行なう、請求項10〜13のいずれかに記載のデ
ータ処理装置。 - 【請求項15】 前記命令メモリはさらに、連続したア
ドレスにアクセスした場合に、前記複数の命令メモリバ
ンクの異なる命令メモリバンクにアクセスされるよう
に、下位アドレスを含んだアドレスをデコードして前記
複数の命令メモリバンクのチップセレクト信号を生成す
る第1のバンク選択回路を含む、請求項14記載のデー
タ処理装置。 - 【請求項16】 前記データメモリは、複数のデータメ
モリバンクを含み、 前記メモリ演算部は、前記複数のデータメモリバンクに
アクセスする場合に、データメモリバンクの選択に対応
したパイプラインステージと、データのアクセスに対応
したパイプラインステージとを発生させてパイプライン
処理を行なう、請求項10〜15のいずれかに記載のデ
ータ処理装置。 - 【請求項17】 前記データメモリはさらに、前記複数
のデータメモリバンクを2つの異なる領域に分割するた
めに、上位アドレスを含んだアドレスをデコードして前
記複数のデータメモリバンクのチップセレクト信号を生
成する第2のバンク選択回路を含む、請求項16記載の
データ処理装置。 - 【請求項18】 前記第2のバンク選択回路は、前記2
つの異なる領域の中の連続したアドレスにアクセスした
場合に、前記複数のデータメモリバンクの異なるデータ
メモリバンクにアクセスされるように、下位アドレスを
含んだアドレスをデコードして前記複数のデータメモリ
バンクのチップセレクト信号を生成する、請求項17記
載のデータ処理装置。 - 【請求項19】 前記メモリ演算部は、タスクスイッチ
の切替え時に、前記専用レジスタを含んだ複数のレジス
タを退避してタスクスイッチを切替える、請求項10〜
18のいずれかに記載のデータ処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000257231A JP2002073330A (ja) | 2000-08-28 | 2000-08-28 | データ処理装置 |
US09/855,594 US7346760B2 (en) | 2000-08-28 | 2001-05-16 | Data processing apparatus of high speed process using memory of low speed and low power consumption |
US11/987,704 US7694109B2 (en) | 2000-08-28 | 2007-12-04 | Data processing apparatus of high speed process using memory of low speed and low power consumption |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000257231A JP2002073330A (ja) | 2000-08-28 | 2000-08-28 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002073330A true JP2002073330A (ja) | 2002-03-12 |
Family
ID=18745724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000257231A Pending JP2002073330A (ja) | 2000-08-28 | 2000-08-28 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7346760B2 (ja) |
JP (1) | JP2002073330A (ja) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005284814A (ja) * | 2004-03-30 | 2005-10-13 | Nec Electronics Corp | パイプライン方式の情報処理装置及び情報処理方法 |
JP2009059354A (ja) * | 2007-08-15 | 2009-03-19 | Nvidia Corp | 超長命令語から即値を調達する方法 |
US8314803B2 (en) | 2007-08-15 | 2012-11-20 | Nvidia Corporation | Buffering deserialized pixel data in a graphics processor unit pipeline |
US8521800B1 (en) | 2007-08-15 | 2013-08-27 | Nvidia Corporation | Interconnected arithmetic logic units |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US8599208B2 (en) | 2007-08-15 | 2013-12-03 | Nvidia Corporation | Shared readable and writeable global values in a graphics processor unit pipeline |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8736624B1 (en) | 2007-08-15 | 2014-05-27 | Nvidia Corporation | Conditional execution flag in graphics applications |
US8736620B2 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US8860722B2 (en) | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US9317251B2 (en) | 2012-12-31 | 2016-04-19 | Nvidia Corporation | Efficient correction of normalizer shift amount errors in fused multiply add operations |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4230461B2 (ja) * | 2002-09-17 | 2009-02-25 | エヌエックスピー ビー ヴィ | 完全同期方式スーパーパイプライン型vliwプロセッサのシステムおよび方法 |
US6851033B2 (en) * | 2002-10-01 | 2005-02-01 | Arm Limited | Memory access prediction in a data processing apparatus |
US7647480B2 (en) * | 2004-07-27 | 2010-01-12 | Arm Limited | Handling of conditional instructions in a data processing apparatus |
US7581079B2 (en) * | 2005-03-28 | 2009-08-25 | Gerald George Pechanek | Processor composed of memory nodes that execute memory access instructions and cooperate with execution nodes to execute function instructions |
US8020010B2 (en) * | 2008-06-24 | 2011-09-13 | Silicon Laboratories Inc. | Memory power controller |
US8799552B2 (en) * | 2009-02-11 | 2014-08-05 | Microchip Technology Incorporated | Microcontroller with special banking instructions |
KR20130046105A (ko) * | 2011-10-27 | 2013-05-07 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
US10203745B2 (en) | 2016-03-30 | 2019-02-12 | Qualcomm Incorporated | Apparatus and method for dynamic power reduction in a unified scheduler |
US20210117197A1 (en) * | 2020-12-23 | 2021-04-22 | Intel Corporation | Multi-buffered register files with shared access circuits |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60204029A (ja) * | 1984-03-28 | 1985-10-15 | Oki Electric Ind Co Ltd | 信号処理装置 |
JPH02157939A (ja) * | 1988-12-09 | 1990-06-18 | Toshiba Corp | 命令処理方法及び命令処理装置 |
JPH04255064A (ja) * | 1991-02-06 | 1992-09-10 | Nippon Telegr & Teleph Corp <Ntt> | 並列処理装置 |
JPH07160585A (ja) * | 1993-12-13 | 1995-06-23 | Hitachi Ltd | 低電力データ処理装置 |
JPH07200291A (ja) * | 1994-01-06 | 1995-08-04 | Fujitsu Ltd | 可変長パイプライン制御装置 |
JPH10233088A (ja) * | 1994-07-05 | 1998-09-02 | Monolithic Syst Technol Inc | 再同期化回路及び方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4626988A (en) * | 1983-03-07 | 1986-12-02 | International Business Machines Corporation | Instruction fetch look-aside buffer with loop mode control |
JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
JPH04293124A (ja) * | 1991-03-20 | 1992-10-16 | Hitachi Ltd | データ処理プロセッサ |
US5544342A (en) * | 1993-06-30 | 1996-08-06 | International Business Machines Corporation | System and method for prefetching information in a processing system |
JP3304531B2 (ja) * | 1993-08-24 | 2002-07-22 | 富士通株式会社 | 半導体記憶装置 |
JP3658072B2 (ja) | 1996-02-07 | 2005-06-08 | 株式会社ルネサステクノロジ | データ処理装置およびデータ処理方法 |
KR19990076967A (ko) * | 1996-11-04 | 1999-10-25 | 요트.게.아. 롤페즈 | 처리 장치 및 메모리내의 명령 판독 |
US5892729A (en) * | 1997-07-25 | 1999-04-06 | Lucent Technologies Inc. | Power savings for memory arrays |
US5835435A (en) * | 1997-12-02 | 1998-11-10 | Intel Corporation | Method and apparatus for dynamically placing portions of a memory in a reduced power consumtion state |
JP3497988B2 (ja) * | 1998-04-15 | 2004-02-16 | 株式会社ルネサステクノロジ | 図形処理装置及び図形処理方法 |
US6125440A (en) * | 1998-05-21 | 2000-09-26 | Tellabs Operations, Inc. | Storing executing instruction sequence for re-execution upon backward branch to reduce power consuming memory fetch |
US6141283A (en) * | 1999-04-01 | 2000-10-31 | Intel Corporation | Method and apparatus for dynamically placing portions of a memory in a reduced power consumption state |
US6795911B1 (en) * | 2000-01-28 | 2004-09-21 | Oki Electric Industry Co., Ltd. | Computing device having instructions which access either a permanently fixed default memory bank or a memory bank specified by an immediately preceding bank selection instruction |
US6661721B2 (en) * | 2001-12-13 | 2003-12-09 | Infineon Technologies Ag | Systems and methods for executing precharge commands using posted precharge in integrated circuit memory devices with memory banks each including local precharge control circuits |
US6834023B2 (en) * | 2002-08-01 | 2004-12-21 | Micron Technology, Inc. | Method and apparatus for saving current in a memory device |
-
2000
- 2000-08-28 JP JP2000257231A patent/JP2002073330A/ja active Pending
-
2001
- 2001-05-16 US US09/855,594 patent/US7346760B2/en not_active Expired - Fee Related
-
2007
- 2007-12-04 US US11/987,704 patent/US7694109B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60204029A (ja) * | 1984-03-28 | 1985-10-15 | Oki Electric Ind Co Ltd | 信号処理装置 |
JPH02157939A (ja) * | 1988-12-09 | 1990-06-18 | Toshiba Corp | 命令処理方法及び命令処理装置 |
JPH04255064A (ja) * | 1991-02-06 | 1992-09-10 | Nippon Telegr & Teleph Corp <Ntt> | 並列処理装置 |
JPH07160585A (ja) * | 1993-12-13 | 1995-06-23 | Hitachi Ltd | 低電力データ処理装置 |
JPH07200291A (ja) * | 1994-01-06 | 1995-08-04 | Fujitsu Ltd | 可変長パイプライン制御装置 |
JPH10233088A (ja) * | 1994-07-05 | 1998-09-02 | Monolithic Syst Technol Inc | 再同期化回路及び方法 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4610218B2 (ja) * | 2004-03-30 | 2011-01-12 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
JP2005284814A (ja) * | 2004-03-30 | 2005-10-13 | Nec Electronics Corp | パイプライン方式の情報処理装置及び情報処理方法 |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8860722B2 (en) | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US8736620B2 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US8736624B1 (en) | 2007-08-15 | 2014-05-27 | Nvidia Corporation | Conditional execution flag in graphics applications |
US8521800B1 (en) | 2007-08-15 | 2013-08-27 | Nvidia Corporation | Interconnected arithmetic logic units |
US8314803B2 (en) | 2007-08-15 | 2012-11-20 | Nvidia Corporation | Buffering deserialized pixel data in a graphics processor unit pipeline |
US8775777B2 (en) | 2007-08-15 | 2014-07-08 | Nvidia Corporation | Techniques for sourcing immediate values from a VLIW |
JP2009059354A (ja) * | 2007-08-15 | 2009-03-19 | Nvidia Corp | 超長命令語から即値を調達する方法 |
US8599208B2 (en) | 2007-08-15 | 2013-12-03 | Nvidia Corporation | Shared readable and writeable global values in a graphics processor unit pipeline |
US9448766B2 (en) | 2007-08-15 | 2016-09-20 | Nvidia Corporation | Interconnected arithmetic logic units |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9317251B2 (en) | 2012-12-31 | 2016-04-19 | Nvidia Corporation | Efficient correction of normalizer shift amount errors in fused multiply add operations |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
Also Published As
Publication number | Publication date |
---|---|
US7346760B2 (en) | 2008-03-18 |
US20080133887A1 (en) | 2008-06-05 |
US20020026545A1 (en) | 2002-02-28 |
US7694109B2 (en) | 2010-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002073330A (ja) | データ処理装置 | |
US7424598B2 (en) | Data processor | |
JP2834837B2 (ja) | プログラマブルコントローラ | |
KR100208889B1 (ko) | 병렬처리장치 및 병렬처리방법 | |
US5717946A (en) | Data processor | |
KR100875377B1 (ko) | 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법 | |
JP3683248B2 (ja) | 情報処理装置及び情報処理方法 | |
JP3790626B2 (ja) | デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置 | |
EP1499956B1 (en) | Method and apparatus for swapping the contents of address registers | |
JP4502532B2 (ja) | データ処理装置 | |
JP2556182B2 (ja) | デ−タ処理装置 | |
JPH04104350A (ja) | マイクロプロセッサ | |
JPH0651984A (ja) | マイクロプロセッサ | |
JP2636821B2 (ja) | 並列処理装置 | |
JP3102399B2 (ja) | データ処理装置及び方法 | |
EP0015276B1 (en) | A digital pipelined computer | |
JPH0524537B2 (ja) | ||
JPH07114509A (ja) | メモリアクセス装置 | |
JPH04163628A (ja) | 情報処理装置 | |
JP2785820B2 (ja) | 並列処理装置 | |
JPH11272463A (ja) | 記憶装置及び情報処理装置 | |
JPH11249907A (ja) | マイクロコンピュータ | |
JP2005242457A (ja) | プログラマブルコントローラ | |
JPH10320197A (ja) | 条件実行命令を備えるマイクロプロセッサ | |
JPH1083301A (ja) | 並列処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070613 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091013 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091207 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100519 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100907 |