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
Application number
JP2000257231A
Other languages
English (en)
Inventor
Toyohiko Yoshida
豊彦 吉田
Akira Yamada
朗 山田
Hisakazu Sato
尚和 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2000257231A priority Critical patent/JP2002073330A/ja
Priority to US09/855,594 priority patent/US7346760B2/en
Publication of JP2002073330A publication Critical patent/JP2002073330A/ja
Priority to US11/987,704 priority patent/US7694109B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining 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

(57)【要約】 【課題】 低速で低消費電力のメモリを用いつつも高速
に処理することができ、処理性能の向上を図ることが可
能なデータ処理装置を提供すること。 【解決手段】 複数のメモリバンクから命令をフェッチ
する場合に、メモリバンクの選択に対応したパイプライ
ンステージIF0と、命令の読出しに対応したパイプラ
インステージIF1とを発生させてパイプライン処理を
行なう。したがって、選択したメモリバンクのみをプリ
チャージすることができ、消費電力を削減することが可
能となる。また、パイプラインステージIF0とIF1
とが並列に行なわれるため、命令メモリのスループット
を向上させることが可能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、内部メモリに記憶
された命令およびデータをアクセスしながら処理を行な
うデータ処理装置に関し、特に、低速で低消費電力のメ
モリを用いて高速に処理することが可能なデータ処理装
置に関する。
【0002】
【従来の技術】近年、CPU(Central Processing Uni
t)等のデータ処理装置が広く使用されており、データ
処理装置の処理速度の向上に対する要望が高まる一方で
ある。従来のデータ処理装置、たとえばCPUにおいて
は、命令フェッチ機構、命令デコード機構および命令実
行機構などがパイプライン化されている。そして、動作
クロックの周波数を高くするとともにメモリのアクセス
サイクルを短くし、1パイプラインステージタイム(動
作クロックの1クロック)以内にメモリアクセスを行な
うことによって、データ処理装置の処理性能を高めてい
る。
【0003】しかし、アクセス時間の短い大容量メモリ
を実現するのは困難である。したがって、キャッシュメ
モリに代表されるように高速で小容量のメモリと、低速
で大容量の主メモリとを階層的に構築し、見かけ上高速
で大容量のメモリがあるかのように動作させてこの問題
を解決していた。この階層化したメモリを用いた従来の
データ処理装置として、たとえば、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.に詳しく紹介されている。
【0004】
【発明が解決しようとする課題】しかし、メモリを階層
化することで擬似的に大容量の高速メモリを実現する場
合、データ処理装置が小容量の高速メモリに入りきらな
い命令やデータをアクセスするとき(キャッシュミ
ス)、メモリアクセスサイクルにウェイトサイクルを挿
入する必要があり、データ処理装置の性能が低下すると
いう問題点があった。また、メモリを高速動作させるた
めには、メモリに用いられるトランジスタの駆動能力を
大きくする必要があるため、データ処理装置内に大容量
の高速メモリを搭載するとメモリの消費電力が増大する
という問題点があった。
【0005】本発明は、上記問題点を解決するためにな
されたものであり、第1の目的は、低速で低消費電力の
メモリを用いつつ高スループットで処理することがで
き、処理性能の向上を図ることが可能なデータ処理装置
を提供することである。
【0006】第2の目的は、複数のメモリバンクに分割
された命令メモリから命令をフェッチする構成におい
て、リピート命令を実行した場合であっても同じメモリ
バンクに連続したアクセスが発生することを防止し、処
理性能の向上を図ることが可能なデータ処理装置を提供
することである。
【0007】第3の目的は、複数のメモリバンクに分割
されたデータメモリにアクセスする構成において、変数
データと係数データとを交互に読出す場合などにおいて
同じメモリバンクに連続したアクセスが発生することを
防止し、処理性能の向上を図ることが可能なデータ処理
装置を提供することである。
【0008】
【課題を解決するための手段】請求項1に記載のデータ
処理装置は、命令が格納される命令メモリと、データが
格納されるデータメモリと、フェッチされた命令をデコ
ードする命令デコーダと、命令メモリ、データメモリお
よび命令デコーダに接続され、命令メモリに格納される
命令をフェッチし、命令デコーダのデコード結果に基づ
いてデータメモリにアクセスするメモリ演算部と、命令
デコーダのデコード結果に基づいて整数演算を行なう整
数演算部とを含むデータ処理装置であって、命令メモリ
は、複数の命令メモリバンクを含み、メモリ演算部は、
複数の命令メモリバンクから命令をフェッチする場合
に、命令メモリバンクの選択に対応したパイプラインス
テージと、命令の読出しに対応したパイプラインステー
ジとを発生させてパイプライン処理を行なう。
【0009】メモリ演算部は、命令メモリバンクの選択
に対応したパイプラインステージと、命令の読出しに対
応したパイプラインステージとを発生させるので、選択
した命令メモリバンクのみをプリチャージすることがで
き、消費電力を削減することが可能となる。また、命令
メモリバンクの選択に対応したパイプラインステージ
と、命令の読出しに対応したパイプラインステージとが
並列に行なわれるため、命令メモリアクセスのスループ
ットを向上させることが可能となる。
【0010】請求項2に記載のデータ処理装置は、請求
項1記載のデータ処理装置であって、命令メモリはさら
に、連続したアドレスにアクセスした場合に、複数の命
令メモリバンクの異なる命令メモリバンクにアクセスさ
れるように、下位アドレスを含んだアドレスをデコード
して複数の命令メモリバンクのチップセレクト信号を生
成する第1のバンク選択回路を含む。
【0011】したがって、同じ命令メモリバンクに連続
してアクセスが行なわれなくなり、パイプラインの乱れ
を防止することが可能となる。
【0012】請求項3に記載のデータ処理装置は、請求
項1または2記載のデータ処理装置であって、命令メモ
リはさらに、高速命令メモリを含み、メモリ演算部は、
高速命令メモリから命令をフェッチする場合に、命令メ
モリバンクの選択に対応したパイプラインステージを発
生させずに、命令の読出しに対応したパイプラインステ
ージを発生させてパイプライン処理を行なう。
【0013】メモリ演算部は、高速命令メモリから命令
をフェッチする場合に、命令メモリバンクの選択に対応
したパイプラインステージを発生させないので、高速命
令メモリアクセスのレイテンシを向上させることが可能
となる。
【0014】請求項4に記載のデータ処理装置は、請求
項1〜3のいずれかに記載のデータ処理装置であって、
データメモリは、複数のデータメモリバンクを含み、メ
モリ演算部は、複数のデータメモリバンクにアクセスす
る場合に、データメモリバンクの選択に対応したパイプ
ラインステージと、データのアクセスに対応したパイプ
ラインステージとを発生させてパイプライン処理を行な
う。
【0015】メモリ演算部は、データメモリバンクの選
択に対応したパイプラインステージと、データのアクセ
スに対応したパイプラインステージとを発生させるの
で、選択したデータメモリバンクのみをプリチャージす
ることができ、消費電力を削減することが可能となる。
また、データメモリバンクの選択に対応したパイプライ
ンステージと、データのアクセスに対応したパイプライ
ンステージとが並列に行なわれるため、データメモリア
クセスのスループットを向上させることが可能となる。
【0016】請求項5に記載のデータ処理装置は、請求
項4記載のデータ処理装置であって、データメモリはさ
らに、複数のデータメモリバンクを2つの異なる領域に
分割するために、上位アドレスを含んだアドレスをデコ
ードして複数のデータメモリバンクのチップセレクト信
号を生成する第2のバンク選択回路を含む。
【0017】したがって、変数データと係数データとを
交互に読出す場合であっても、同じメモリバンクに連続
したアクセスが発生しなくなり、パイプラインの乱れを
防止することが可能となる。
【0018】請求項6に記載のデータ処理装置は、請求
項5記載のデータ処理装置であって、第2のバンク選択
回路は、2つの異なる領域の中の連続したアドレスにア
クセスした場合に、複数のデータメモリバンクの異なる
データメモリバンクにアクセスされるように、下位アド
レスを含んだアドレスをデコードして複数のデータメモ
リバンクのチップセレクト信号を生成する。
【0019】したがって、ポストインクリメントを用い
てデータメモリにアクセスする場合であっても、同じメ
モリバンクに連続したアクセスが発生しなくなり、パイ
プラインの乱れを防止することが可能となる。
【0020】請求項7に記載のデータ処理装置は、請求
項4〜6のいずれかに記載のデータ処理装置であって、
データメモリはさらに、高速データメモリを含み、メモ
リ演算部は、高速データメモリにアクセスする場合に、
データメモリバンクの選択に対応したパイプラインステ
ージを発生させずに、データのアクセスに対応したパイ
プラインステージを発生させてパイプライン処理を行な
う。
【0021】メモリ演算部は、高速データメモリにアク
セスする場合に、データメモリバンクの選択に対応した
パイプラインステージを発生させないので、高速データ
メモリアクセスのレイテンシを向上させることが可能と
なる。
【0022】請求項8に記載のデータ処理装置は、請求
項1〜7のいずれかに記載のデータ処理装置であって、
メモリ演算部は、命令バスを介して命令メモリからの命
令のフェッチを行ない、命令バスと異なるデータバスを
介してデータメモリにアクセスする。
【0023】したがって、命令メモリからの命令のフェ
ッチと、データメモリへのアクセスとのバスの競合が発
生しなくなり、パイプラインの乱れを防止することが可
能となる。
【0024】請求項9に記載のデータ処理装置は、請求
項1〜8のいずれかに記載のデータ処理装置であって、
メモリ演算部は、データ入力バスを介してデータメモリ
からデータを読出し、データ入力バスと異なるデータ出
力バスを介してデータメモリにデータを書込む。
【0025】したがって、データの読出しと、データの
書込みとのバスの競合が発生しなくなり、パイプライン
の乱れを防止することが可能となる。
【0026】請求項10に記載のデータ処理装置は、命
令が格納される命令メモリと、データが格納されるデー
タメモリと、フェッチされた命令をデコードする命令デ
コーダと、複数のレジスタを有するレジスタファイル
と、命令メモリ、データメモリおよび命令デコーダに接
続され、命令メモリに格納される命令をフェッチし、命
令デコーダのデコード結果に基づいてデータメモリにア
クセスするメモリ演算部と、命令デコーダのデコード結
果に基づいて整数演算を行なう整数演算部とを含むデー
タ処理装置であって、メモリ演算部は、リピート命令を
実行する場合に、リピート命令の直後の命令をレジスタ
ファイル内の専用レジスタに保持し、専用レジスタに保
持された命令をフェッチしながらリピート命令を実行す
る。
【0027】メモリ演算部は、専用レジスタに保持され
た命令をフェッチしながらリピート命令を実行するの
で、複数のメモリバンクに分割された命令メモリから命
令をフェッチする場合であっても、同じメモリバンクに
連続したアクセスが発生しなくなり、処理性能の向上を
図ることが可能となる。
【0028】請求項11に記載のデータ処理装置は、請
求項10記載のデータ処理装置であって、レジスタファ
イルは、プロセッサ状態ワードを含み、メモリ演算部
は、リピート命令を実行する場合に、最初のループにお
いてプロセッサ状態ワード内のフラグをセットし、命令
メモリからフェッチしたリピート命令の直後の命令を専
用レジスタに保持し、2回目のループにおいてプロセッ
サ状態ワード内のフラグをリセットし、専用レジスタに
保持された命令をフェッチしながらリピート命令を実行
する。
【0029】したがって、プロセッサ状態ワードのフラ
グを参照することにより、リピート命令の実行状況を制
御することが可能となる。
【0030】請求項12に記載のデータ処理装置は、請
求項10記載のデータ処理装置であって、メモリ演算部
は、リピート命令を実行する場合に、リピート命令の直
後の複数の命令をレジスタファイル内の複数の専用レジ
スタに保持し、複数の専用レジスタに保持された複数の
命令をフェッチしながらリピート命令を実行する。
【0031】メモリ演算部は、複数の専用レジスタに保
持された複数の命令をフェッチしながらリピート命令を
実行するので、複数のメモリバンクに分割された命令メ
モリから命令をフェッチする場合であっても、同じメモ
リバンクに連続したアクセスが発生しなくなり、処理性
能の向上を図ることが可能となる。
【0032】請求項13に記載のデータ処理装置は、請
求項12記載のデータ処理装置であって、レジスタファ
イルは、プロセッサ状態ワードを含み、メモリ演算部
は、リピート命令を実行する場合に、最初のループにお
いてプロセッサ状態ワード内のフラグをセットし、命令
メモリからフェッチしたリピート命令の直後の複数の命
令を複数の専用レジスタに保持し、2回目のループにお
いてプロセッサ状態ワード内のフラグをリセットし、複
数の専用レジスタに保持された複数の命令をフェッチし
ながらリピート命令を実行する。
【0033】したがって、プロセッサ状態ワードのフラ
グにより、リピート命令の実行状況を制御することが可
能となる。
【0034】請求項14に記載のデータ処理装置は、請
求項10〜13のいずれかに記載のデータ処理装置であ
って、命令メモリは、複数の命令メモリバンクを含み、
メモリ演算部は、複数の命令メモリバンクから命令をフ
ェッチする場合に、命令メモリバンクの選択に対応した
パイプラインステージと、命令の読出しに対応したパイ
プラインステージとを発生させてパイプライン処理を行
なう。
【0035】したがって、選択した命令メモリバンクの
みをプリチャージすることができ、消費電力を削減する
ことが可能となる。また、命令メモリバンクの選択に対
応したパイプラインステージと、命令の読出しに対応し
たパイプラインステージとが並列に行なわれるため、命
令メモリアクセスのスループットを向上させることが可
能となる。
【0036】請求項15に記載のデータ処理装置は、請
求項14記載のデータ処理装置であって、命令メモリは
さらに、連続したアドレスにアクセスした場合に、複数
の命令メモリバンクの異なる命令メモリバンクにアクセ
スされるように、下位アドレスを含んだアドレスをデコ
ードして複数の命令メモリバンクのチップセレクト信号
を生成する第1のバンク選択回路を含む。
【0037】したがって、同じ命令メモリバンクに連続
してアクセスが行なわれなくなり、パイプラインの乱れ
を防止することが可能となる。
【0038】請求項16に記載のデータ処理装置は、請
求項10〜15のいずれかに記載のデータ処理装置であ
って、データメモリは、複数のデータメモリバンクを含
み、メモリ演算部は、複数のデータメモリバンクにアク
セスする場合に、データメモリバンクの選択に対応した
パイプラインステージと、データのアクセスに対応した
パイプラインステージとを発生させてパイプライン処理
を行なう。
【0039】したがって、選択したデータメモリバンク
のみをプリチャージすることができ、消費電力を削減す
ることが可能となる。また、データメモリバンクの選択
に対応したパイプラインステージと、データのアクセス
に対応したパイプラインステージとが並列に行なわれる
ため、データメモリアクセスのスループットを向上させ
ることが可能となる。
【0040】請求項17に記載のデータ処理装置は、請
求項16記載のデータ処理装置であって、データメモリ
はさらに、複数のデータメモリバンクを2つの異なる領
域に分割するために、上位アドレスを含んだアドレスを
デコードして複数のデータメモリバンクのチップセレク
ト信号を生成する第2のバンク選択回路を含む。
【0041】したがって、変数データと係数データとを
交互に読出す場合であっても、同じメモリバンクに連続
したアクセスが発生しなくなり、パイプラインの乱れを
防止することが可能となる。
【0042】請求項18に記載のデータ処理装置は、請
求項17記載のデータ処理装置であって、第2のバンク
選択回路は、2つの異なる領域の中の連続したアドレス
にアクセスした場合に、複数のデータメモリバンクの異
なるデータメモリバンクにアクセスされるように、下位
アドレスを含んだアドレスをデコードして複数のデータ
メモリバンクのチップセレクト信号を生成する。
【0043】したがって、ポストインクリメントを用い
てデータメモリにアクセスする場合であっても、同じメ
モリバンクに連続したアクセスが発生しなくなり、パイ
プラインの乱れを防止することが可能となる。
【0044】請求項19に記載のデータ処理装置は、請
求項10〜18のいずれかに記載のデータ処理装置であ
って、メモリ演算部は、タスクスイッチの切替え時に、
専用レジスタを含んだ複数のレジスタを退避してタスク
スイッチを切替える。
【0045】したがって、元のタスクに復帰する際に、
容易にタスクスイッチを切替えることが可能となる。
【0046】
【発明の実施の形態】図1は、本発明の実施の形態にお
けるプロセッサを用いたデータ処理装置の概略構成を示
すブロック図である。このデータ処理装置は、プロセッ
サ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によって接続されている。
【0047】プロセッサ10は、アドレスバス31を介
してバス制御回路20、ROM21およびSDRAM2
2へアドレスを出力する。プロセッサ10がSDRAM
22にデータを書込む場合には、データバス32を介し
てSDRAM22へデータを出力する。プロセッサ10
がROM21またはSDRAM22からデータを読出す
場合には、ROM21またはSDRAM22から出力さ
れたデータをデータバス32を介して入力する。また、
バス制御回路20は、プロセッサ10から出力される制
御信号を受けて、ROM21やSDRAM22を制御す
るための信号を生成して出力する。
【0048】図2は、本実施の形態におけるプロセッサ
10の概略構成を示すブロック図である。このプロセッ
サ10は、VLIW(Very Long Instruction Word)方
式のCPUコア(以下、単にコアと呼ぶ。)100と、
高速命令メモリ101と、高速データメモリ102と、
低電力命令メモリ103と、低電力データメモリ104
と、アドレスバス31、データバス32および制御バス
33を介して外部のバス制御回路20、ROM21およ
びSDRAM22に接続されるシステムバスI/F(以
下、バスインタフェース部と呼ぶ。)105とを含む。
【0049】コア100、高速命令メモリ101、高速
データメモリ102、低電力命令メモリ103および低
電力データメモリ104は、データアドレスバス10
6、データ出力バス107およびデータ入力バス108
に接続されている。また、データと命令とを並列にアク
セスできるように、コア100、高速命令メモリ10
1、低電力命令メモリ103およびバスインタフェース
部105は、命令アドレスバス109および命令バス1
10にも接続されている。
【0050】また、コア100は、2ウェイのVLIW
型命令体系を有しており、2つのサブ命令を含んだVL
IW命令を実行する。コア100は、命令バス110を
介して入力されたVLIW命令をデコードする命令デコ
ーダ113と、レジスタファイル120と、アドレス演
算命令を実行するメモリ演算部130と、整数演算命令
を実行する整数演算部140とを含む。
【0051】命令デコーダ113は、VLIW命令に含
まれるそれぞれのサブ命令をデコードするサブ命令デコ
ーダ111および112を含む。メモリ演算部130
は、メモリアドレス演算器131と、PC(Program Co
unter)演算器132、シフタ133と、ALU(Arith
metic and Logic Unit)134とを含む。また、整数演
算部140は、シフタ141と、ALU142と、乗算
器143と、64ビットのアキュムレータ144とを含
む。
【0052】メモリ演算部130および整数演算部14
0は、2つのサブ命令デコーダ111および112のデ
コード結果に従ってそれぞれのサブ命令を実行するが、
2つのサブ命令を並列に実行する場合と、2つのサブ命
令を順番に実行する場合とがある。レジスタファイル1
20は、ソフトウェアによって読み書き可能な64本の
汎用レジスタを含む。
【0053】図3は、コア100が有するレジスタを説
明するための図である。汎用レジスタR0〜R63は、
上述したレジスタファイル120内に存在する。レジス
タR0は、常に“0”を保持するレジスタであり、他の
レジスタのクリア等に使用される。レジスタR62は、
サブルーチンの戻り先アドレスを保持するためのリンク
ポインタである。レジスタR63は、非割込み処理中に
おけるスタックポインタおよび割込み処理中におけるス
タックポインタであり、後述するPSW(Processor St
atus Word)内のモードビットSMによって切替えられ
る。
【0054】アキュムレータA0およびA1は、乗算結
果または積和演算結果を保持するためのレジスタであ
り、汎用レジスタの2倍のビット長である64ビットの
レジスタである。
【0055】レジスタRPT0_C、RPT0_S、R
PT0_EおよびRPT0_Iは、リピート命令REP
EAT0に従ってハードウェアループ制御が行なわれる
ときに使用されるレジスタである。RPT0_Cは、ル
ープカウンタ値を保持する。RPT0_SおよびRPT
0_Eは、それぞれループの先頭命令のアドレスおよび
最後尾命令のアドレスを保持する。RPT0_Iは、ル
ープの先頭命令の命令コードを保持する。
【0056】レジスタRPT1_C、RPT1_S、R
PT1_EおよびRPT1_I(n)は、リピート命令
REPEAT1に従ってハードウェアループ制御が行な
われるときに使用されるレジスタである。RPT1_C
は、ループカウンタ値を保持する。RPT1_Sおよび
RPT1_Eは、それぞれループの先頭命令のアドレス
および最後尾命令のアドレスを保持する。RPT1_I
(n)は、ループの先頭命令から順に6個の命令コード
を保持する。
【0057】レジスタPSWは、プロセッサ状態ワード
であり、コア100を制御するためのフラグ等を保持す
るレジスタである。レジスタPCは、コア100が現在
実行しているプログラムのアドレスを保持するレジスタ
である。レジスタBPSWおよびBPCは、それぞれバ
ックアップ用のPSWおよびPCであり、割り込み等の
事象が発生した場合にPSWおよびPCの値が自動的に
コピーされる。
【0058】レジスタMOD0_S、MOD0_E、M
OD1_SおよびMOD1_Eは、ループバッファなど
に使用するモジュロアドレッシングの制御を行なうため
のレジスタである。レジスタMOD0_SおよびMOD
0_Eがペアとなって、第1のループバッファの先頭ア
ドレスおよび最後尾アドレスを保持する。また、レジス
タMOD1_SおよびMOD1_Eがペアとなって、第
2のループバッファの先頭アドレスおよび最後部アドレ
スを保持する。
【0059】レジスタIBAは、デバッガがブレークポ
イントアドレスを指定する際にその値を保持するレジス
タである。
【0060】図4は、PSWの詳細を説明するための図
である。SMは、割込み処理中か非割り込み処理中かを
示すビットであり、上述したレジスタR63(SPU)
とR63(SPI)とを切替えるためのモードビットで
ある。DBは、デバッグ中か否かを示すビットであり、
“1”のときに上述したレジスタIBAが有効となる。
IEは、割込み許可中か割込み禁止中かを示すビットで
あり、割込み許可中のときに外部から割込み要求がある
とVLIW命令の切れ目で割込みを受付ける。
【0061】RP0およびRP1は、それぞれリピート
命令REPEAT0またはREPEAT1の実行によっ
てハードウェアループ制御がイネーブルになると、
“1”になるビットである。また、FS0およびFS1
は、それぞれリピート命令REPEAT0またはREP
EAT1の実行において、1回目のハードウェアループ
のときにのみ“1”となるビットである。
【0062】MD0およびMD1は、それぞれMOD0
_SおよびMOD0_Eと、MOD1_SおよびMOD
1_Eとによるモジュロアドレッシングをイネーブルに
するか、ディスエイブルにするかを決定するビットであ
る。F0〜F7は、命令の実行条件を制御するためのビ
ットである。
【0063】図5は、低電力命令メモリ103の概略構
成を示すブロック図である。この低電力命令メモリ10
3は、8個のメモリバンク40〜47と、メモリバンク
40〜47のいずれかを選択するバンク選択回路48と
を含む。バンク選択回路48は、データアドレスバス1
06、データ出力バス107、命令アドレスバス109
および命令バス110に接続される。また、バンク選択
回路48は、コア100から出力されるBSI(命令を
示すバスステータス)信号およびBSD(データを示す
バスステータス)信号を受けて、メモリバンク40〜4
7のCS(チップセレクト)信号を生成する。
【0064】低電力命令メモリ103は、スループット
が1クロックサイクル、レイテンシが2クロックサイク
ルのメモリである。この理由については後述する。ま
た、コア100からのアドレス転送と読出した命令コー
ドの転送とにそれぞれ1/2クロックサイクルが使用さ
れるので、コア100による命令コードのフェッチにお
けるレイテンシが3クロックサイクルとなる。なお、コ
ア100からのアドレス転送および読出した命令コード
の転送がメモリアクセスとパイプライン化されているた
め、スループットは1クロックサイクルのままである。
【0065】異なるメモリバンクに対して連続してアク
セスが行なわれた場合には、スループットが1クロック
サイクルとなってコア100が高速に命令をフェッチす
ることが可能となる。また、同じメモリバンクに対して
連続してアクセスが行なわれた場合には、スループット
が2クロックサイクルとなって1クロックサイクルの無
駄が発生する。
【0066】図6は、バンク選択回路48の詳細を説明
するためのブロック図である。このバンク選択回路48
は、データアドレス信号106が入力されるラッチ56
と、命令アドレス信号109が入力されるラッチ57
と、ラッチ56および57からの出力を選択するマルチ
プレクサ55と、アドレス入力レジスタ51と、データ
入力レジスタ52と、命令出力レジスタ53と、メモリ
バンク40〜47のCS信号を生成するCS信号生成回
路54とを含む。
【0067】マルチプレクサ55は、ラッチ56によっ
て保持されたデータアドレス信号と、ラッチ57によっ
て保持された命令アドレス信号とを切替えて出力する。
アドレス入力レジスタ51は、マルチプレクサ55から
出力されたアドレスを保持する。データ入力レジスタ5
2は、データ出力バス107の内容を保持する。命令出
力レジスタ53は、メモリバンク40〜47から出力さ
れた命令コードを保持して命令バス110へ出力する。
【0068】アドレス入力レジスタ51、データ入力レ
ジスタ52および命令出力レジスタ53は、それぞれダ
ブルバッファになっている。同じメモリバンクに対して
連続してアクセスが行なわれた場合には、スループット
が2クロックサイクルとなって1クロックサイクルの無
駄が発生する。そのため、2クロックサイクルの間値を
保持しつつ、次の命令のアドレス等を保持するためにダ
ブルバッファの構成を採用している。
【0069】CS信号生成回路54は、BSI信号、B
SD信号およびアドレス入力レジスタ51に保持される
アドレス(A0〜A16、A27、A28)に基づい
て、メモリバンク40〜47のCS信号を生成する。上
述したように、同じメモリバンクに対して連続してアク
セスが行なわれた場合には、スループットが2クロック
サイクルとなるため1ウェイト挿入される。WaitI
信号およびWaitD信号は、それぞれ命令またはデー
タのアクセスにおいてウェイトを挿入する際にアクティ
ブとなる。
【0070】図7は、メモリバンクのCS信号の生成を
説明するための図である。図7に示すように、32ビッ
トアドレスのうちA0〜A15をデコードしてメモリバ
ンク40〜47へのアクセスであることを判別する。ま
た、メモリバンク40〜47のいずれのメモリバンクへ
のアクセスであるかを、A16、A27およびA28の
3ビットをデコードすることによって判別する。低電力
命令メモリ103は8バイト単位でアクセスされるた
め、A29〜A31の値は任意である。なお、図7にお
いて、“H’”は16進数であることを示している。
【0071】図8は、メモリバンク40〜47にアクセ
スするときのパイプライン処理を説明するためのタイミ
ングチャートである。図8は、スループットが1クロッ
クサイクルとなり、レイテンシが2クロックサイクルと
なることを説明するためのものである。パイプライン処
理の詳細な説明は後述する。
【0072】図8において、IF0〜IF2、D、R、
M0〜M2およびWは、パイプラインのステージを示し
ている。命令フェッチステージIF0において、最初の
1/2クロックで命令アドレスバス109を介して命令
アドレスが転送される。次の1/2クロックでメモリバ
ンク40〜47の選択が行なわれる。
【0073】命令フェッチステージIF1において、選
択されたメモリバンクのプリチャージが最初の1/2ク
ロックで行なわれる。このタイミングでCS信号生成回
路54からメモリバンクのCS信号が出力されて、選択
されたメモリバンク内のビット線が活性化される。そし
て、次の1/2クロックと命令フェッチステージIF2
の最初の1/2クロックとで命令のフェッチが行なわれ
る。なお、命令フェッチステージIF1において、次の
命令をフェッチするために次の命令のアドレスバス転送
が行なわれ、パイプライン的に処理が行なわれる。
【0074】命令デコードステージDにおいて、フェッ
チされた命令がデコードされる。フェッチされた命令が
ロード命令である場合、リードレジスタステージRにお
いてレジスタからデータアドレスが読出される。次に、
データメモリアクセスステージM0において、データア
ドレスバス転送およびバンクの選択が行なわれる。次
に、データメモリアクセスステージM1およびM2にお
いて、データの読出しおよびデータバス転送が行なわれ
る。そして、ライトバックステージWにおいて、読出し
たデータがレジスタに書込まれる。なお、低電力データ
メモリ104に対するアクセスのタイミングは、低電力
命令メモリ103に対するアクセスのタイミングと同じ
である。
【0075】通常、コア100が命令をフェッチする場
合には、連続したアドレスにアクセスするため、アドレ
スのA27およびA28が「00」、「01」、「1
0」、「11」とサイクリックに変化する。したがっ
て、必ず異なるメモリバンクにアクセスすることにな
り、同じメモリバンクに続けてアクセスすることはな
い。
【0076】図9は、低電力データメモリ104の概略
構成を示すブロック図である。この低電力データメモリ
104は、8個のメモリバンク60〜67と、メモリバ
ンク60〜67のいずれかを選択するバンク選択回路6
8とを含む。バンク選択回路68は、データアドレスバ
ス106、データ出力バス107およびデータ入力バス
108に接続される。また、バンク選択回路68は、コ
ア100から出力されるBSD信号を受けて、メモリバ
ンク60〜67のCS信号を生成する。
【0077】低電力データメモリ104は、スループッ
トが1クロックサイクル、レイテンシが2クロックサイ
クルのメモリである。また、コア100からのアドレス
転送と読出したデータの転送とにそれぞれ1/2クロッ
クサイクルが使用されるので、コア100によるメモリ
アクセスにおけるレイテンシが3クロックサイクルとな
る。なお、コア100からのアドレス転送および読出し
たデータの転送がメモリアクセスとパイプライン化され
ているため、スループットは1クロックサイクルのまま
である。
【0078】異なるメモリバンクに対して連続してアク
セスが行なわれた場合には、スループットが1クロック
サイクルとなってコア100が高速にメモリアクセスを
行なうことが可能となる。また、同じメモリバンクに対
して連続してアクセスが行なわれた場合には、スループ
ットが2クロックサイクルとなって1クロックサイクル
の無駄が発生する。
【0079】図10は、バンク選択回路68の詳細を説
明するためのブロック図である。このバンク選択回路6
8は、アドレス入力レジスタ71と、データ入力レジス
タ72と、データ出力レジスタ73と、メモリバンク6
0〜67のCS信号を生成するCS信号生成回路74と
を含む。
【0080】アドレス入力レジスタ71、データ入力レ
ジスタ72およびデータ出力レジスタ73は、それぞれ
ダブルバッファになっている。同じメモリバンクに対し
て連続してアクセスが行なわれた場合には、スループッ
トが2クロックサイクルとなって1クロックサイクルの
無駄が発生する。そのため、2クロックサイクルの間値
を保持しつつ、次のデータのアドレス等を保持するため
にダブルバッファの構成を採用している。
【0081】CS信号生成回路74は、BSD信号およ
びアドレス入力レジスタ71に保持されるアドレス(A
0〜A16、A27、A28)に基づいて、メモリバン
ク60〜67のCS信号を生成する。上述したように、
同じメモリバンクに対して連続してアクセスが行なわれ
た場合には、スループットが2クロックサイクルとなる
ため1ウェイト挿入される。WaitD信号は、メモリ
アクセスにおいてウェイトを挿入する際にアクティブと
なる。
【0082】図11は、メモリバンクのCS信号の生成
を説明するための図である。図11に示すように、32
ビットアドレスのうちA0〜A15をデコードしてメモ
リバンク60〜67へのアクセスであることを判別す
る。また、メモリバンク60〜67のいずれのメモリバ
ンクへのアクセスであるかを、A16、A27およびA
28の3ビットをデコードすることによって判別する。
A16は、メモリバンク60〜63へのアクセスである
か、メモリバンク64〜67へのアクセスであるかを示
している。低電力データメモリ104は8バイト単位で
アクセスされるため、A29〜A31の値は任意であ
る。
【0083】デジタル信号処理においては、連続したア
ドレスのデータが順次アクセスされる場合が多い。8バ
イト単位でデータがアクセスされる場合には、アドレス
のA27およびA28が「00」、「01」、「1
0」、「11」とサイクリックに変化する。したがっ
て、必ず異なるメモリバンクにアクセスすることにな
り、同じメモリバンクに続けてアクセスすることはな
い。
【0084】また、1、2、4バイト単位でデータがア
クセスされる場合には、最初のメモリアクセスで一旦8
バイトのデータがデータ出力レジスタ73に格納され
る。そして、2回目以降のメモリアクセスにおいては、
メモリバンクへのアクセスは行なわれずに、データ出力
レジスタ73に格納されたデータが順次データ入力バス
108に出力される。したがって、スループットが1に
保たれる。
【0085】デジタル信号処理においては、低電力デー
タメモリ104から同数の変数と係数とが読出される場
合が多い。したがって、アドレスのA16の値によって
変数が格納される領域(バンクメモリ60〜63)と係
数が格納される領域(バンクメモリ64〜67)とを分
け、変数と係数とを交互に読出す場合でも同じバンクメ
モリに対するアクセスが発生しないようにしている。
【0086】図12は、コア100が実行する命令のフ
ォーマットを説明するための図である。コア100が実
行する命令は、2ウェイのVLIW型命令であり、サブ
命令を格納するLコンテナ205およびRコンテナ20
6と、各サブ命令の実行条件を指定するCCフィールド
203および204と、各サブ命令の実行順序または長
いサブ命令を定義するFMフィールド201aおよび2
01bとを含む。
【0087】CCフィールド203および204は、P
SW中のフラグF0およびF1に依存した条件を指定す
る。たとえば、CCフィールド203が“000”のと
き、Lコンテナ205に含まれるサブ命令が無条件に実
行される。また、CCフィールド204が“101”の
とき、Rコンテナ206に含まれるサブ命令が、フラグ
F0=“1”かつF1=“1”の場合に実行され、フラ
グF0およびF1がそれ以外の値の場合にはサブ命令が
無効化される。
【0088】FMフィールド201aおよび201b
は、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つの長いサブ命令が実行さ
れる。
【0089】図13(a)〜図13(h)は、Lコンテ
ナ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に保持される。
【0090】図13(a)に示すフォーマットは、メモ
リアクセス演算(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−−”はポストデクリメント付きレジスタ間
接モードを示している。
【0091】図13(b)に示すフォーマットは、汎用
レジスタに保持されたオペランド間の演算(ALU命
令)または積和演算(MAC命令)を行なうサブ命令の
フォーマットである。このサブ命令は、レジスタ番号ま
たは即値を指定するフィールドY(ビット位置8)を含
む。図13(b)に示すように、フィールドYの値が
“0”である場合は、srcがレジスタ番号であること
を示しており、フィールドYの値が“1”である場合
は、srcが即値であることを示している。
【0092】図13(c)〜図13(g)に示すフォー
マットは、ブランチ演算(BRA命令)を行なうサブ命
令のフォーマットである。図13(c)〜図13(g)
に示すように、フィールドF(ビット位置8)によって
レジスタであるか、即値であるかが指定され、フィール
ドZ(ビット位置9)によってゼロフラグを参照した分
岐命令であることが指定される。また、ビット位置10
〜27に示すフィールドによって、レジスタまたは即値
による分岐先アドレスが指定される。
【0093】図13(h)に示すフォーマットは、長い
サブ命令のフォーマットを示している。このサブ命令
は、演算内容(オペコード)を指定するフィールド(ビ
ット位置0〜7)と、レジスタ番号を指定するフィール
ドRa(ビット位置10〜15)およびRb(ビット位
置16〜21)と、32ビット長の即値を指定するフィ
ールドimm(ビット位置22〜53)とを含む。この
長いサブ命令は、メモリアクセス演算、汎用レジスタに
保持されたオペランド間の演算、積和演算およびブラン
チ演算のいずれにも使用される。
【0094】図14は、本実施の形態におけるコア10
0のパイプライン処理を説明するための図である。図1
4(a)〜図14(d)は、低電力命令メモリ103か
らフェッチした命令を実行するときのパイプライン処理
を示しており、それぞれALU命令、MAC命令、LD
/ST命令およびBRA命令を示している。ステージI
F0〜IF2は、命令フェッチステージを示している。
ステージDは、命令デコードステージを示している。
【0095】ステージRは、レジスタファイル120か
らオペランドを読出すステージである。ステージR/A
は、レジスタファイル120からPC値の読出し、また
は読出したPC値にディスプレースメント値を加算して
分岐先アドレスを計算するステージである。ステージE
0およびE1は、命令実行のための演算を行なうステー
ジである。ステージM0〜M2は、データメモリに対し
てアクセスを行なうステージである。ステージWは、オ
ペランドを汎用レジスタに書込むステージである。
【0096】図14(e)〜図14(h)は、高速命令
メモリ101からフェッチした命令を実行するときのパ
イプライン処理を示しており、それぞれALU命令、M
AC命令、LD/ST命令およびBRA命令を示してい
る。これらのパイプライン処理は、図14(a)〜図1
4(d)に示すパイプライン処理と比較して、命令フェ
ッチステージがIF0およびIF1の2段となっている
点、およびデータメモリアクセスステージがM0および
M1の2段となっている点が異なる。このデータメモリ
アクセスステージが2段となっているのは、高速データ
メモリ102にアクセスする場合であり、低電力データ
メモリ104にアクセスする場合にはM0〜M2の3段
となる。
【0097】図14(c)および図14(g)に示すよ
うに、LD/ST命令の実行において、ステージM0〜
M2またはM0〜M1の複数のパイプラインステージで
データメモリにアクセスする場合、データバスにおける
データ転送の競合が発生するため、たとえばロード命令
の実行直後にストア命令の実行ができないという問題点
が従来あった。しかし、本実施の形態におけるコア10
0は、ロード命令実行時にデータ入力バス108を介し
てデータを転送し、ストア命令実行時にデータ出力バス
107を介してデータを転送するので、ロード命令の実
行直後にストア命令を実行する場合であってもパイプラ
インが乱れることはない。また、それぞれのデータバス
はデータの転送方向が一定であるので、回路が簡単にな
るというメリットがある。
【0098】上述したように、コア100が高速メモリ
101または102にアクセスする場合と、低電力メモ
リ103または104にアクセスする場合とで、パイプ
ライン処理の段数を可変にしている。低電力命令メモリ
103からフェッチした命令を実行する場合のパイプラ
イン処理におけるタイミングについては、図8を用いて
説明した。
【0099】図15は、高速命令メモリ101からフェ
ッチした命令を実行する場合のパイプライン処理を説明
するためのタイミングチャートである。命令フェッチス
テージIF0において、最初の1/2クロックで命令フ
ェッチのためのアドレスバス転送と、プリチャージが同
時に行なわれる。このプリチャージは、アドレスの値に
かかわらず高速命令メモリ101にアクセスする際に必
ず行なわれるため、低電力命令メモリ103にアクセス
する場合と比較して、1クロックサイクルだけ早くアク
セスが終了する。
【0100】そして、次の1/2クロックと命令フェッ
チステージIF1の最初の1/2クロックとで命令のフ
ェッチが行なわれる。なお、命令フェッチステージIF
1において、次の命令をフェッチするために次の命令の
アドレスバス転送が行なわれ、パイプライン的に処理が
行なわれる。
【0101】命令デコードステージDにおいて、フェッ
チされた命令がデコードされる。フェッチされた命令が
ロード命令である場合、リードレジスタステージRにお
いてレジスタからデータアドレスが読出される。次に、
データメモリアクセスステージM0において、データア
ドレスバス転送と同時に高速データメモリ102に対す
るプリチャージが行なわれる。このプリチャージは、ア
ドレスの値にかかわらず高速データメモリ102にアク
セスする際に必ず行なわれるため、低電力データメモリ
104にアクセスする場合と比較して、1クロックサイ
クルだけ早くアクセスが終了する。
【0102】ステージM0の次の1/2クロックおよび
M1において、データの読出しおよびデータバス転送が
行なわれる。そして、ライトバックステージWにおい
て、読出したデータがレジスタに書込まれる。
【0103】図16は、ロード/ストア命令、データ転
送命令および比較命令の一覧を示す図である。図17
は、算術演算命令、論理演算命令、シフト演算命令およ
びビット演算命令の一覧を示す図である。図18は、分
岐命令、OS(Operating System)関連命令、DSP
(Digital Signal Processor)関連命令、リピート命令
およびデバッガ支援命令の一覧を示す図である。図16
〜図18において、大文字で各サブ命令のニーモニック
が記載され、その横にサブ命令のオペレーションの内容
が記載されている。各サブ命令のオペレーションの内容
は、図16〜図18に詳細に記載されているので、詳細
な説明は行なわない。
【0104】図19は、本実施の形態におけるプロセッ
サ10のメモリマップの一例を示す図である。図19に
示すように、各メモリはアドレス値によって区別されて
おり、コア100はアドレス値によってメモリアクセス
開始からメモリアクセス終了までのサイクル数、すなわ
ちパイプラインの段数を決定する。なお、図2に示すよ
うに、高速命令メモリ101および低電力命令メモリ1
03からの命令のフェッチと、高速データメモリ102
および低電力データメモリ104に対するアクセスとが
異なるバスで行なわれるため、バスの競合が発生するこ
とはない。
【0105】デジタル信号処理においては、FIR(Fi
nite Impulse Response)フィルタ等の処理を行なう際
にループが多用される。本実施の形態のコア100にお
いては、ループ処理をハードウェアで行ない、ループの
ための分岐を実質的にゼロクロックサイクルで処理する
ためのリピート命令(REPEAT0,REPEAT
1)をサポートしている。以下、このリピート命令につ
いて詳細に説明する。
【0106】図20は、REPEAT1のオペレーショ
ンとそれを用いたFIRフィルタ処理のプログラムの一
例とを示す図である。REPEAT1のオペレーション
に示すように、ループの回数countと、ループの最
初の命令から最後の命令までの距離pcaddrとが指
定され、RPT1_C、RPT1_S、RPT1_Eお
よびRPT1_I(0:5)の各レジスタに、それぞれ
ループ回数、ループ開始アドレス(REPEAT1命令
の直後の命令アドレス)、ループ終了アドレス、および
ループの先頭から6個の命令が入力され、PSWのRP
1ビットおよびFS1ビットがセットされる。そして、
ループの回数countだけ、ループの最初の命令から
最後の命令までが実行される。
【0107】図20に示すプログラム例においては、ル
ープの回数countに“20”が設定され、ループの
最初の命令から最後の命令までの距離pcaddrに
“48”が設定される。そして、STARTからEND
までの処理、すなわちLD2W命令とMAC0命令を並
列に実行するVLIW命令6個からなる処理が20回繰
返される。
【0108】図21は、図20に示すプログラムを実行
したときのパイプライン処理を説明するための図であ
る。高速命令メモリ101からLD2W命令およびMA
C0命令がフェッチされ、メモリ演算部130および整
数演算部140が、LD2W命令およびMAC0命令を
並列にパイプライン処理し、1クロックサイクルに1回
ずつ積和演算結果がアキュムレータA0に格納されると
ころを示している。
【0109】REPEAT1命令実行直後の1回目のル
ープにおいては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ビットがリセットされる。
【0110】また、ループ実行中にプロセッサ10が割
込み要求を受付けると、このプログラムの実行が中断さ
れ、現タスクAが新タスクBにスイッチするが、タスク
Bを実行する前にOSがBPSWに退避されたタスクA
実行中のPSW値と、RTP1_C、RTP1_S、R
TP1_EおよびRTP1_I(0:5)の各レジスタ
を含むタスクAの実行環境をすべてメモリに退避し、タ
スクAの処理に戻るときにOSがタスクAの実行環境を
復帰させる。そのため、REPEAT1命令によって起
動されたループ処理がタスクスイッチの切替えによって
壊れることはない。
【0111】図22は、REPEAT0のオペレーショ
ンとそれを用いたFIRフィルタ処理のプログラムの一
例とを示す図である。REPEAT0のオペレーション
に示すように、ループの回数countと、ループの最
初の命令から最後の命令までの距離pcaddrとが指
定され、RPT0_C、RPT0_S、RPT0_Eお
よびRPT0_Iの各レジスタに、それぞれループ回
数、ループ開始アドレス(REPEAT0命令の直後の
命令アドレス)、ループ終了アドレス、およびループの
先頭命令が入力され、PSWのRP0ビットおよびFS
0ビットがセットされる。そして、ループの回数cou
ntだけ、ループの最初の命令から最後の命令までが実
行される。
【0112】図22に示すプログラム例においては、ル
ープの回数countに“10”が設定され、ループの
最初の命令から最後の命令までの距離pcaddrに
“64”が設定される。そして、STARTからEND
までの処理、すなわちLD2W命令とMAC0命令とを
並列に実行するVLIW命令8個からなる処理が10回
繰返される。
【0113】図23は、図22に示すプログラムを実行
したときのパイプライン処理を説明するための図であ
る。低電力命令メモリ103からLD2W命令およびM
AC0命令がフェッチされ、メモリ演算部130および
整数演算部140が、LD2W命令およびMAC0命令
を並列にパイプライン処理し、1クロックサイクルに1
回ずつ積和演算結果がアキュムレータA0に格納される
ところを示している。
【0114】REPEAT0命令実行直後の1回目のル
ープにおいては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ビットがリセットされる。
【0115】図22に示す8個のVLIW命令が低電力
命令メモリ103のメモリバンク40〜47に保持され
ており、1回目のループにおいてはメモリバンク40か
ら順番にVLIW命令がアクセスされて、1クロックサ
イクル毎にVLIW命令がフェッチされる。図22に示
すプログラム例の場合には、VLIW命令が8個である
ので連続して同じメモリバンクにアクセスすることがな
く、スループットが1となる。しかし、ループ内のVL
IW命令の数が(バンク数×n+1)の場合には、ルー
プ内の最後の命令と最初の命令とが同じメモリバンクに
存在することになり、1ウェイト挿入されてスループッ
トが2となる。
【0116】一方、本実施の形態におけるプロセッサ1
0においては、ループの最初の命令がレジスタRPT0
_Iに保持されているため、連続して同じメモリバンク
にアクセスされることがなくなり、図23に示すように
パイプラインに乱れが発生することはない。
【0117】図24は、図22に示すプログラムのルー
プ部分が実行されるときのデータの流れを示す図であ
る。メモリ演算部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命令とが交互に実行される。
【0118】また、メモリ演算部130は、レジスタR
30またはR31に保持しているポインタを命令実行毎
に8ずつポストインクリメントし、連続する係数および
変数を次々にレジスタファイル120へロードする。メ
モリ演算部130は、奇数番目のLD2W命令を実行す
ることによって、メモリバンク60〜63に保持される
係数データをレジスタR10〜R17にロードする。ま
た、メモリ演算部130は、偶数番目のLD2W命令を
実行することによって、メモリバンク64〜67に保持
される変数データをレジスタR20〜R27にロードす
る。
【0119】図11に示すように、低電力データメモリ
104のメモリバンク60〜67のCS信号を生成する
際に、A16、A27およびA28をデコードしてい
る。したがって、低電力データメモリ104のメモリバ
ンク60〜63が変数領域301となり、メモリバンク
64〜67が係数領域302となるため、図22に示す
LD2W命令を連続して実行した場合であっても、同じ
メモリバンクにアクセスされることがなくパイプライン
に乱れが発生することはない。
【0120】また、たとえ連続して係数をアクセスする
場合や、連続して変数をアクセスする場合であっても、
A27およびA28をデコードしてメモリバンクのCS
信号を生成しているため、連続する係数や変数が同じメ
モリバンクに存在することは起こり得ない。したがっ
て、ポストインクリメントアドレッシングモードを使用
する限り、同じバンクへ連続してアクセスされることは
ない。
【0121】本実施の形態においては、低電力命令メモ
リ103の同じメモリバンクに連続アクセスが行なわれ
ないプログラム例として、FIRフィルタ処理について
説明した。しかし、命令のフェッチにおいて分岐が発生
しない限り連続するアドレスにアクセスが行なわれる。
したがって、下位アドレスをデコードして2つ以上のメ
モリバンクに分割すれば、分岐以外の命令実行において
同じメモリバンクに連続してアクセスが発生することは
ない。
【0122】また、デジタル信号処理において、FIR
フィルタ処理以外でも連続したアドレス領域に係数や変
数を格納して順次アクセスする場合、下位アドレスをデ
コードして低電力データメモリ104を2つ以上のメモ
リバンクに分割しておけば、同じメモリバンクに連続し
てアクセスが発生することはない。
【0123】以上説明したように、本実施の形態におけ
るデータ処理装置によれば、メモリ演算部130が低電
力命令メモリ103のメモリバンクの選択に対応したパ
イプラインステージと、命令の読出しに対応したパイプ
ラインステージとを発生させるので、選択したメモリバ
ンクのみをプリチャージすることができ、消費電力を削
減することが可能となった。また、パイプラインステー
ジIF0〜IF2が並列に行なわれるため、低電力命令
メモリ103のスループットを向上させることが可能と
なった。
【0124】また、バンク選択回路48は、下位アドレ
スA27およびA28をデコードしてメモリバンク40
〜47のCS信号を生成するので、メモリ演算部130
が連続したアドレス領域から命令をフェッチする場合で
も異なるメモリバンクにアクセスが行なわれるため、パ
イプラインに乱れが発生することを防止できる。また、
高速命令メモリ101から命令をフェッチする場合に
は、バンクセレクトを行なわず、プリチャージとアドレ
ス転送とを並列して行なうようにしたので、高速に命令
をフェッチすることが可能となった。
【0125】メモリ演算部130が低電力データメモリ
104のメモリバンクの選択に対応したパイプラインス
テージと、データのアクセスに対応したパイプラインス
テージとを発生させるので、選択したメモリバンクのみ
をプリチャージすることができ、消費電力を削減するこ
とが可能となった。また、パイプラインステージM0〜
M2が並列に行なわれるため、低電力データメモリ10
4のスループットを向上させることが可能となった。
【0126】また、バンク選択回路68は、下位アドレ
スA27およびA28をデコードしてメモリバンク60
〜67のCS信号を生成するので、メモリ演算部130
が連続したアドレス領域にデータのアクセスを行なう場
合でも異なるメモリバンクにアクセスが行なわれるた
め、パイプラインに乱れが発生することを防止できる。
また、高速データメモリ102にデータのアクセスを行
なう場合には、バンクセレクトを行なわず、アドレスの
転送とプリチャージとを並列して行なうようにしたの
で、高速にデータのアクセスを行なうことが可能となっ
た。
【0127】また、バンク選択回路68は、上位アドレ
スA16をデコードしてメモリバンク60〜67のCS
信号を生成するので、係数と変数とを別々の領域に格納
することによって、係数と変数とを交互に読み出す場合
でも同じメモリバンクに連続してアクセスが発生するこ
とがなくなり、パイプラインに乱れが発生することを防
止できる。
【0128】メモリ演算部130は、リピート命令を実
行する場合に、レジスタRPT0_IまたはRPT1_
I(n)にリピート命令の直後の命令を保持するように
したので、ループの最後の命令からループの最初の命令
に分岐する場合であっても、同じメモリバンクに連続し
てアクセスすることがなくなり、処理性能の低下を防止
することが可能となった。
【0129】また、ループ実行中にタスクスイッチが切
替えられる場合であっても、OSがBPSWに退避され
たPSW値と、RTP1_C、RTP1_S、RTP1
_EおよびRTP1_I(0:5)の各レジスタを含む
タスクの実行環境をすべてメモリに退避するようにした
ので、REPEAT命令によって起動されたループ処理
がタスクスイッチの切替えによって壊れるのを防止する
ことが可能となった。
【0130】また、最初のループにおいてFS1ビット
がセットされ、2回目以降のループにおいてFS1ビッ
トがリセットされるので、リピート命令の実行状況を容
易に把握することが可能となった。
【0131】今回開示された実施の形態は、すべての点
で例示であって制限的なものではないと考えられるべき
である。本発明の範囲は上記した説明ではなくて特許請
求の範囲によって示され、特許請求の範囲と均等の意味
および範囲内でのすべての変更が含まれることが意図さ
れる。
【0132】
【発明の効果】請求項1に記載のデータ処理装置によれ
ば、メモリ演算部が命令メモリバンクの選択に対応した
パイプラインステージと、命令の読出しに対応したパイ
プラインステージとを発生させるので、選択した命令メ
モリバンクのみをプリチャージすることができ、消費電
力を削減することが可能となった。また、命令メモリバ
ンクの選択に対応したパイプラインステージと、命令の
読出しに対応したパイプラインステージとが並列に行な
われるため、命令メモリのスループットを向上させるこ
とが可能となった。
【0133】請求項2に記載のデータ処理装置によれ
ば、同じ命令メモリバンクに連続してアクセスが行なわ
れなくなり、パイプラインの乱れを防止することが可能
となった。
【0134】請求項3に記載のデータ処理装置によれ
ば、メモリ演算部が高速命令メモリから命令をフェッチ
する場合に、高速命令メモリに対して少ないパイプライ
ンステージ数でアクセスを行なうので、高速命令メモリ
のレイテンシを向上させることが可能となった。
【0135】請求項4に記載のデータ処理装置によれ
ば、メモリ演算部がデータメモリバンクの選択に対応し
たパイプラインステージと、データのアクセスに対応し
たパイプラインステージとを発生させるので、選択した
データメモリバンクのみをプリチャージすることがで
き、消費電力を削減することが可能となった。また、デ
ータメモリバンクの選択に対応したパイプラインステー
ジと、データのアクセスに対応したパイプラインステー
ジとが並列に行なわれるため、データメモリのスループ
ットを向上させることが可能となった。
【0136】請求項5に記載のデータ処理装置によれ
ば、変数データと係数データとを交互に読出す場合であ
っても、同じメモリバンクに連続したアクセスが発生し
なくなり、パイプラインの乱れを防止することが可能と
なった。
【0137】請求項6に記載のデータ処理装置によれ
ば、ポストインクリメントを用いてデータメモリにアク
セスする場合であっても、同じメモリバンクに連続した
アクセスが発生しなくなり、パイプラインの乱れを防止
することが可能となった。
【0138】請求項7に記載のデータ処理装置によれ
ば、メモリ演算部が高速データメモリにアクセスする場
合に、高速データメモリに対して少ないパイプラインス
テージ数でアクセスを行なうので、高速データメモリの
レイテンシを向上させることが可能となった。
【0139】請求項8に記載のデータ処理装置によれ
ば、命令メモリからの命令のフェッチと、データメモリ
へのアクセスとのバスの競合が発生しなくなり、パイプ
ラインの乱れを防止することが可能となった。
【0140】請求項9に記載のデータ処理装置によれ
ば、データの読出しと、データの書込みとのバスの競合
が発生しなくなり、パイプラインの乱れを防止すること
が可能となった。
【0141】請求項10に記載のデータ処理装置によれ
ば、メモリ演算部が専用レジスタに保持された命令をフ
ェッチしながらリピート命令を実行するので、複数のメ
モリバンクに分割された命令メモリから命令をフェッチ
する場合であっても、同じメモリバンクに連続したアク
セスが発生しなくなり、処理性能の向上を図ることが可
能となった。
【0142】請求項11に記載のデータ処理装置によれ
ば、プロセッサ状態ワードのフラグにより、リピート命
令の実行状況を制御してマルチタスクにも対応すること
が可能となった。
【0143】請求項12に記載のデータ処理装置によれ
ば、メモリ演算部が複数の専用レジスタに保持された複
数の命令をフェッチしながらリピート命令を実行するの
で、複数のメモリバンクに分割された命令メモリから命
令をフェッチする場合であっても、同じメモリバンクに
連続したアクセスが発生しなくなり、処理性能の向上を
図ることが可能となった。
【0144】請求項13に記載のデータ処理装置によれ
ば、プロセッサ状態ワードのフラグにより、リピート命
令の実行状況を制御してマルチタスクにも対応すること
が可能となった。
【0145】請求項14に記載のデータ処理装置によれ
ば、選択した命令メモリバンクのみをプリチャージする
ことができ、消費電力を削減することが可能となった。
また、命令メモリバンクの選択に対応したパイプライン
ステージと、命令の読出しに対応したパイプラインステ
ージとが並列に行なわれるため、命令メモリのスループ
ットを向上させることが可能となった。
【0146】請求項15に記載のデータ処理装置によれ
ば、同じ命令メモリバンクに連続してアクセスが行なわ
れなくなり、パイプラインの乱れを防止することが可能
となった。
【0147】請求項16に記載のデータ処理装置によれ
ば、選択したデータメモリバンクのみをプリチャージす
ることができ、消費電力を削減することが可能となっ
た。また、データメモリバンクの選択に対応したパイプ
ラインステージと、データのアクセスに対応したパイプ
ラインステージとが並列に行なわれるため、データメモ
リのスループットを向上させることが可能となった。
【0148】請求項17に記載のデータ処理装置によれ
ば、変数データと係数データとを交互に読出す場合であ
っても、同じメモリバンクに連続したアクセスが発生し
なくなり、パイプラインの乱れを防止することが可能と
なった。
【0149】請求項18に記載のデータ処理装置によれ
ば、ポストインクリメントを用いてデータメモリにアク
セスする場合であっても、同じメモリバンクに連続した
アクセスが発生しなくなり、パイプラインの乱れを防止
することが可能となった。
【0150】請求項19に記載のデータ処理装置によれ
ば、元のタスクに復帰する際に、容易にタスクスイッチ
を切替えることが可能となった。
【図面の簡単な説明】
【図1】 本発明の実施の形態におけるプロセッサ10
を用いたデータ処理装置の概略構成を示すブロック図で
ある。
【図2】 本発明の実施の形態におけるプロセッサ10
の概略構成を示すブロック図である。
【図3】 コア100が有するレジスタを説明するため
の図である。
【図4】 PSWの詳細を説明するための図である。
【図5】 低電力命令メモリ103の概略構成を示すブ
ロック図である。
【図6】 バンク選択回路48の詳細を説明するための
ブロック図である。
【図7】 メモリバンクのCS信号の生成を説明するた
めの図である。
【図8】 メモリバンク40〜47にアクセスするとき
のパイプライン処理を説明するための図である。
【図9】 低電力データメモリ104の概略構成を示す
ブロック図である。
【図10】 バンク選択回路68の詳細を説明するため
のブロック図である。
【図11】 メモリバンクのCS信号の生成を説明する
ための図である。
【図12】 コア100が実行する命令のフォーマット
を説明するための図である。
【図13】 Lコンテナ205およびRコンテナ206
に保持されるサブ命令のフォーマットを示す図である。
【図14】 本発明の実施の形態におけるコア100の
パイプライン処理を説明するための図である。
【図15】 高速命令メモリ101からフェッチした命
令を実行する場合のパイプライン処理を説明するための
図である。
【図16】 ロード/ストア命令、データ転送命令およ
び比較命令の一覧を示す図である。
【図17】 算術演算命令、論理演算命令、シフト演算
命令およびビット演算命令の一覧を示す図である。
【図18】 分岐命令、OS関連命令、DSP関連命
令、リピート命令およびデバッガ支援命令の一覧を示す
図である。
【図19】 本発明の実施の形態におけるプロセッサ1
0のメモリマップの一例を示す図である。
【図20】 REPEAT1命令のオペレーションとそ
れを用いたFIRフィルタ処理のプログラムの一例とを
示す図である。
【図21】 図20に示すプログラムを実行したときの
パイプライン処理を説明するための図である。
【図22】 REPEAT0命令のオペレーションとそ
れを用いたFIRフィルタ処理のプログラムの一例とを
示す図である。
【図23】 図22に示すプログラムを実行したときの
パイプライン処理を説明するための図である。
【図24】 図22に示すプログラムのループ部分が実
行されるときのデータの流れを示す図である。
【符号の説明】
10 プロセッサ、20 バス制御回路、21 RO
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 ア
キュムレータ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 尚和 東京都千代田区丸の内二丁目2番3号 三 菱電機株式会社内 Fターム(参考) 5B013 AA00 BB07

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 命令が格納される命令メモリと、 データが格納されるデータメモリと、 フェッチされた命令をデコードする命令デコーダと、 前記命令メモリ、前記データメモリおよび前記命令デコ
    ーダに接続され、前記命令メモリに格納される命令をフ
    ェッチし、前記命令デコーダのデコード結果に基づいて
    前記データメモリにアクセスするメモリ演算部と、 前記命令デコーダのデコード結果に基づいて整数演算を
    行なう整数演算部とを含むデータ処理装置であって、 前記命令メモリは、複数の命令メモリバンクを含み、 前記メモリ演算部は、前記複数の命令メモリバンクから
    命令をフェッチする場合に、命令メモリバンクの選択に
    対応したパイプラインステージと、命令の読出しに対応
    したパイプラインステージとを発生させてパイプライン
    処理を行なう、データ処理装置。
  2. 【請求項2】 前記命令メモリはさらに、連続したアド
    レスにアクセスした場合に、前記複数の命令メモリバン
    クの異なる命令メモリバンクにアクセスされるように、
    下位アドレスを含んだアドレスをデコードして前記複数
    の命令メモリバンクのチップセレクト信号を生成する第
    1のバンク選択回路を含む、請求項1記載のデータ処理
    装置。
  3. 【請求項3】 前記命令メモリはさらに、高速命令メモ
    リを含み、 前記メモリ演算部は、前記高速命令メモリから命令をフ
    ェッチする場合に、前記命令メモリバンクの選択に対応
    したパイプラインステージを発生させずに、命令の読出
    しに対応したパイプラインステージを発生させてパイプ
    ライン処理を行なう、請求項1または2記載のデータ処
    理装置。
  4. 【請求項4】 前記データメモリは、複数のデータメモ
    リバンクを含み、 前記メモリ演算部は、前記複数のデータメモリバンクに
    アクセスする場合に、データメモリバンクの選択に対応
    したパイプラインステージと、データのアクセスに対応
    したパイプラインステージとを発生させてパイプライン
    処理を行なう、請求項1〜3のいずれかに記載のデータ
    処理装置。
  5. 【請求項5】 前記データメモリはさらに、前記複数の
    データメモリバンクを2つの異なる領域に分割するため
    に、上位アドレスを含んだアドレスをデコードして前記
    複数のデータメモリバンクのチップセレクト信号を生成
    する第2のバンク選択回路を含む、請求項4記載のデー
    タ処理装置。
  6. 【請求項6】 前記第2のバンク選択回路は、前記2つ
    の異なる領域の中の連続したアドレスにアクセスした場
    合に、前記複数のデータメモリバンクの異なるデータメ
    モリバンクにアクセスされるように、下位アドレスを含
    んだアドレスをデコードして前記複数のデータメモリバ
    ンクのチップセレクト信号を生成する、請求項5記載の
    データ処理装置。
  7. 【請求項7】 前記データメモリはさらに、高速データ
    メモリを含み、 前記メモリ演算部は、前記高速データメモリにアクセス
    する場合に、前記データメモリバンクの選択に対応した
    パイプラインステージを発生させずに、データのアクセ
    スに対応したパイプラインステージを発生させてパイプ
    ライン処理を行なう、請求項4〜6のいずれかに記載の
    データ処理装置。
  8. 【請求項8】 前記メモリ演算部は、命令バスを介して
    前記命令メモリからの命令のフェッチを行ない、前記命
    令バスと異なるデータバスを介して前記データメモリに
    アクセスする、請求項1〜7のいずれかに記載のデータ
    処理装置。
  9. 【請求項9】 前記メモリ演算部は、データ入力バスを
    介して前記データメモリからデータを読出し、前記デー
    タ入力バスと異なるデータ出力バスを介して前記データ
    メモリにデータを書込む、請求項1〜8のいずれかに記
    載のデータ処理装置。
  10. 【請求項10】 命令が格納される命令メモリと、 データが格納されるデータメモリと、 フェッチされた命令をデコードする命令デコーダと、 複数のレジスタを有するレジスタファイルと、 前記命令メモリ、前記データメモリおよび前記命令デコ
    ーダに接続され、前記命令メモリに格納される命令をフ
    ェッチし、前記命令デコーダのデコード結果に基づいて
    前記データメモリにアクセスするメモリ演算部と、 前記命令デコーダのデコード結果に基づいて整数演算を
    行なう整数演算部とを含むデータ処理装置であって、 前記メモリ演算部は、リピート命令を実行する場合に、
    前記リピート命令の直後の命令を前記レジスタファイル
    内の専用レジスタに保持し、該専用レジスタに保持され
    た命令をフェッチしながらリピート命令を実行する、デ
    ータ処理装置。
  11. 【請求項11】 前記レジスタファイルは、プロセッサ
    状態ワードを含み、 前記メモリ演算部は、リピート命令を実行する場合に、
    最初のループにおいて前記プロセッサ状態ワード内のフ
    ラグをセットし、前記命令メモリからフェッチした前記
    リピート命令の直後の命令を前記専用レジスタに保持
    し、 2回目のループにおいて前記プロセッサ状態ワード内の
    前記フラグをリセットし、前記専用レジスタに保持され
    た命令をフェッチしながらリピート命令を実行する、請
    求項10記載のデータ処理装置。
  12. 【請求項12】 前記メモリ演算部は、リピート命令を
    実行する場合に、前記リピート命令の直後の複数の命令
    を前記レジスタファイル内の複数の専用レジスタに保持
    し、該複数の専用レジスタに保持された複数の命令をフ
    ェッチしながらリピート命令を実行する、請求項10記
    載のデータ処理装置。
  13. 【請求項13】 前記レジスタファイルは、プロセッサ
    状態ワードを含み、 前記メモリ演算部は、リピート命令を実行する場合に、
    最初のループにおいて前記プロセッサ状態ワード内のフ
    ラグをセットし、前記命令メモリからフェッチした前記
    リピート命令の直後の複数の命令を前記複数の専用レジ
    スタに保持し、 2回目のループにおいて前記プロセッサ状態ワード内の
    前記フラグをリセットし、前記複数の専用レジスタに保
    持された複数の命令をフェッチしながらリピート命令を
    実行する、請求項12記載のデータ処理装置。
  14. 【請求項14】 前記命令メモリは、複数の命令メモリ
    バンクを含み、 前記メモリ演算部は、前記複数の命令メモリバンクから
    命令をフェッチする場合に、命令メモリバンクの選択に
    対応したパイプラインステージと、命令の読出しに対応
    したパイプラインステージとを発生させてパイプライン
    処理を行なう、請求項10〜13のいずれかに記載のデ
    ータ処理装置。
  15. 【請求項15】 前記命令メモリはさらに、連続したア
    ドレスにアクセスした場合に、前記複数の命令メモリバ
    ンクの異なる命令メモリバンクにアクセスされるよう
    に、下位アドレスを含んだアドレスをデコードして前記
    複数の命令メモリバンクのチップセレクト信号を生成す
    る第1のバンク選択回路を含む、請求項14記載のデー
    タ処理装置。
  16. 【請求項16】 前記データメモリは、複数のデータメ
    モリバンクを含み、 前記メモリ演算部は、前記複数のデータメモリバンクに
    アクセスする場合に、データメモリバンクの選択に対応
    したパイプラインステージと、データのアクセスに対応
    したパイプラインステージとを発生させてパイプライン
    処理を行なう、請求項10〜15のいずれかに記載のデ
    ータ処理装置。
  17. 【請求項17】 前記データメモリはさらに、前記複数
    のデータメモリバンクを2つの異なる領域に分割するた
    めに、上位アドレスを含んだアドレスをデコードして前
    記複数のデータメモリバンクのチップセレクト信号を生
    成する第2のバンク選択回路を含む、請求項16記載の
    データ処理装置。
  18. 【請求項18】 前記第2のバンク選択回路は、前記2
    つの異なる領域の中の連続したアドレスにアクセスした
    場合に、前記複数のデータメモリバンクの異なるデータ
    メモリバンクにアクセスされるように、下位アドレスを
    含んだアドレスをデコードして前記複数のデータメモリ
    バンクのチップセレクト信号を生成する、請求項17記
    載のデータ処理装置。
  19. 【請求項19】 前記メモリ演算部は、タスクスイッチ
    の切替え時に、前記専用レジスタを含んだ複数のレジス
    タを退避してタスクスイッチを切替える、請求項10〜
    18のいずれかに記載のデータ処理装置。
JP2000257231A 2000-08-28 2000-08-28 データ処理装置 Pending JP2002073330A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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