JP2001229021A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP2001229021A
JP2001229021A JP2000040892A JP2000040892A JP2001229021A JP 2001229021 A JP2001229021 A JP 2001229021A JP 2000040892 A JP2000040892 A JP 2000040892A JP 2000040892 A JP2000040892 A JP 2000040892A JP 2001229021 A JP2001229021 A JP 2001229021A
Authority
JP
Japan
Prior art keywords
data
address
register
word
memory
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
JP2000040892A
Other languages
English (en)
Inventor
Hironobu Ito
浩伸 伊藤
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 JP2000040892A priority Critical patent/JP2001229021A/ja
Priority to US09/767,901 priority patent/US6553474B2/en
Publication of JP2001229021A publication Critical patent/JP2001229021A/ja
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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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/3816Instruction alignment, e.g. cache line crossing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 非整置データをオペランドデータとして含む
読み出し処理を、1サイクルで実行する。 【解決手段】 データメモリ4(または5)とデータパ
ス部3の間に、データメモリ4(または5)の1アドレ
ス分のデータを保持するレジスタを有する整置用バッフ
ァ6(または7)が介在する。整置用バッファ6(また
は7)は、レジスタに保持されるデータと、新たにデー
タメモリ4(または5)から読み出されるデータとの中
から選択することによって、非整置データを出力する。
レジスタに保持されるデータは、整置データの読み出し
が行われるときに更新される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理装置に
関し、特に、データメモリに対する非整置データのアク
セスを短時間で行うことを可能にするための改良に関す
る。
【0002】
【従来の技術】ディジタル信号処理を高速に行う専用の
データ処理装置として、データ処理に適したアーキテク
チャを持つディジタル・シグナル・プロセッサ(DS
P)が、広く知られている。DSPは、積和演算などの
データ処理を高速に実行する。DSPの一例として、モ
トローラ社のDSP56000("DSP56000 Digital Signal Pro
cessor User's Manual, 1990")を挙げることができ
る。
【0003】DSP56000では、2個のアドレスポインタ、
2個のデータメモリ、および、積和演算器を備え、2個
のアドレスポインタで指定される2個のメモリからの2
ワードのデータのロード(例えば、データと係数のロー
ド)、2個のアドレスポインタの更新、および、積和演
算を、互いに同時並列に実行することにより、高いスル
ープットで積和演算を実行することができる。
【0004】また、アプリケーションからの要求性能が
高くなる一方である近年においては、VLIWやSIM
Dといったアーキテクチャを持ち、演算の並列度を高め
て処理性能の向上を図ったDSPが多く開発されてい
る。このようなDSPでは、複数の積和演算を高いスル
ープットで実行するために、データメモリとデータパス
との間のバンド幅を広げることにより、演算に必要な複
数のオペランドデータのロードが1サイクルで可能なよ
うに構成されている。
【0005】図65は、そのように構成されたDSPの
一つであって、本願発明の背景技術として想定された装
置の構成を示すブロック図である。この装置は、各々が
64ビット幅である2個のデータメモリ80,81を備
え、データパス部86は、双方のデータメモリ80,8
1から読み込んだ64ビットサイズの2個のデータDB
に対して、16×16ビットの積和演算を、4個並列に
実行可能なように構成されている。
【0006】積和演算の並列実行方式はSIMD(単一
命令ストリーム・複数データストリーム)方式であり、
2個の64ビットオペランドデータをもつ1個の積和演
算命令にしたがって、4つの16×16ビットの積和演
算が実行される。制御部83は、命令アドレスIAを指
定することにより命令メモリ82から命令IDを読み出
し、命令IDにしたがって処理を行うように、装置の各
部へ制御信号CSを伝える。
【0007】データメモリ80,81は4ワード(16
ビットを1ワードとする)を1ラインとして構成されて
おり、オペランドアドレス生成部84,85から送られ
るオペランドアドレスOAが指定する同一ライン上の4
ワードのデータDBを、1サイクルで読み出すことが可
能である。データメモリ80,81の各々のメモリ空間
において、ラインに並ぶ4ワード毎の境界は、ワード境
界と称される。
【0008】
【発明が解決しようとする課題】一般に、ワード境界に
整置されていないデータ(「非整置データ」と称され、
逆に、ワード境界に整置されているデータは「整置デー
タ」と称される)へのアクセスは、従来のデータ処理装
置では、ハードウェアでサポートされていないことが多
く、仮にサポートされていても、非整置データへのアク
セスには2命令以上を実行することが必要で、1サイク
ルのスループットで非整置データアクセスを実行するこ
とはできなかった。図65に想定された装置は、後者の
例に相当する。
【0009】しかしながら、4並列の積和演算が可能と
いう特性を生かして、DSPをFIRフィルタ(デジタ
ルフィルタの一種である有限インパルス応答フィルタ;
finite inpulse response filter)として利用する場合
を考えると、ワード境界に整置されない非整置データを
必要とするため、積和演算が1サイクルのスループット
で実現できず、FIR処理の高速化が果たせないといっ
た問題点があった。
【0010】FIRフィルタを実現するためには、例え
ば、図66に示すようにデータXの列と、係数Cの列と
が、それぞれ、データメモリ80,81に格納される。
そして、これらのデータXおよび係数Cを読み出すこと
によって、図67に示す積和演算が実行される。データ
Xは、FIRフィルタへの入力データであり、データY
は、出力データである。図67が示す4つの16×16
ビットの積和演算を並列に実行することにより、演算処
理が高速に行われる。
【0011】図67の演算を実行するためには、データ
Xに関して、例えば、X1,・・,X4の4ワードデー
タのように、データメモリ80のワード境界に整置され
ない非整置データを読み出す必要がある。このような非
整置データをオペランドデータとする場合には、図65
に例示する装置では、データメモリ80からのリードデ
ータを2つの64ビットレジスタへ交互にロードし、2
つのレジスタに含まれる8つの16ビットデータから4
つの16ビットデータを、別のレジスタに取り出して並
び替える必要がある。そのため、積和演算を実行するの
に2サイクル以上が必要となる。
【0012】非整置データアクセスをサポートするMI
PSアーキテクチャを持つデータ処理装置でも、非整置
データのロードには、やはり、2サイクル以上が必要で
ある。そのため、2サイクルに1回しか積和演算を実行
することができず、処理に時間を要するという問題点が
あった。
【0013】この発明は、従来の技術における上記した
問題点を解消するためになされたもので、非整置データ
をオペランドデータとして含む読み出し処理を、1サイ
クルで実行することを可能にし、それによって、データ
処理の速度を高めることのできるデータ処理装置を提供
することを目的とする。
【0014】なお、本発明に関連した技術を開示する文
献として、特開平10-161927号公報が知られている。
【0015】
【課題を解決するための手段】第1の発明の装置は、デ
ータ処理装置であって、各アドレスごとにN(≧2)ワ
ードのデータを格納可能なデータメモリと、各々が前記
アドレスの一つとNワードのデータとを保持可能なM
(≧1)個のレジスタと、ワード単位で指定される連続
するNワードのデータを、前記M個のレジスタに保持さ
れるデータと、前記データメモリから読み出されたデー
タとの中から、選択して出力する選択部と、前記連続す
るNワードのデータの中で、前記M個のレジスタのいず
れにも保持されないデータ部分があれば、当該データ部
分を含むアドレスのNワードのデータを、前記データメ
モリから読み出すとともに、前記M個のレジスタの中
に、前記連続するNワードのどの部分をも保持しないレ
ジスタである非保持レジスタがあれば、前記データメモ
リから読み出したNワードのデータとそのアドレスと
で、前記非保持レジスタの値を更新する制御部と、を備
える。
【0016】第2の発明の装置は、第1の発明のデータ
処理装置において、前記Mが2以上である。
【0017】第3の発明の装置は、第1または第2の発
明のデータ処理装置において、前記制御部は、書き込み
指示に応答して、前記データメモリの中の指定されたア
ドレスに、Nワードのデータを書き込むとともに、前記
M個のレジスタのいずれをも、前記データメモリのいず
れのアドレスおよびデータをも保持しないレジスタと同
等となるよう無効化する。
【0018】第4の発明の装置は、第1または第2の発
明のデータ処理装置において、前記制御部は、書き込み
指示に応答して、前記データメモリの中の指定されたア
ドレスに、Nワードのデータを書き込むとともに、前記
M個のレジスタの中に前記指定されたアドレスを保持す
るレジスタがあれば、当該レジスタが保持するNワード
のデータを、前記データメモリに書き込まれる前記Nワ
ードのデータで更新する。
【0019】第5の発明の装置は、第1ないし第4のい
ずれかの発明のデータ処理装置において、前記制御部
は、整置データ読み出し指示に応答して、前記データメ
モリの中の指定されたアドレスに記憶されるNワードの
データを読み出し、前記選択部は、前記整置データ読み
出し指示に応答して、前記データメモリから読み出され
た前記Nワードのデータを出力する。
【0020】第6の発明の装置は、第1ないし第5のい
ずれかの発明のデータ処理装置において、前記制御部
は、単一ワード並列読み出し指示に応答して、指定され
たワードが格納されるアドレスのNワードのデータを前
記データメモリから読み出し、前記選択部は、前記単一
ワード並列読み出し指示に応答して、前記データメモリ
から読み出された前記Nワードのデータの中から前記指
定されたワードを、N個並列に出力する。
【0021】第7の発明の装置は、第1ないし第6のい
ずれかの発明のデータ処理装置において、前記制御部
は、別のレジスタを備え、前記M個のレジスタのいずれ
かのレジスタの値を更新するときに、更新によって新た
に保持されるアドレスに隣接するアドレスを算出し、前
記別のレジスタへ保持する。
【0022】第8の発明の装置は、第1ないし第7のい
ずれかの発明のデータ処理装置において、前記データメ
モリ、前記M個のレジスタ、前記選択部、および、前記
制御部の組を第1の組として、同一に構成される第2の
組をさらに備え、前記第1の組に属する前記選択部が出
力する前記Nワードのデータおよび前記第2の組に属す
る前記選択部が出力する前記Nワードのデータの双方の
データを用いて演算を実行する演算部を、さらに備え
る。
【0023】第9の発明の装置は、データ処理装置であ
って、各アドレスごとにN(≧2)ワードのデータを格
納可能なデータメモリと、指定されたワードが格納され
るアドレスのNワードのデータを前記データメモリから
読み出す制御部と、読み出された前記Nワードのデータ
の中から前記指定されたワードを、N個並列に出力する
選択部と、を備える。
【0024】
【発明の実施の形態】(1. 実施の形態1)実施の形態
1のデータ処理装置では、データメモリとデータパス部
の間に、データメモリの1アドレス分のデータを保持す
るレジスタを有する整置用バッファが介在する。整置用
バッファは、レジスタに保持されるデータと、新たにデ
ータメモリから読み出されるデータとの中から、オペラ
ンドデータを選択することによって、整置データおよび
非整置データを出力する。
【0025】整置データを読出す場合には、レジスタが
既に読出しデータを保持している場合を除いて、読出し
処理が実行されるごとに、レジスタに保持されるデータ
は更新される。また、非整置データを読み出す場合に
は、レジスタに読出しデータが全く保持されていない場
合のみ、非整置データを含む2つの整置データの一方を
読み出すときに、レジスタに保持される値が更新され
る。
【0026】連続した読出し処理におけるオペランドア
ドレスの差が、データメモリアドレスでプラス・マイナ
ス1ワード分以内である間では、整置データおよび非整
置データのいずれもが、データメモリへの1回のアクセ
スを通じて得られるので、非整置データをオペランドデ
ータとして含む連続した読出し処理が、1サイクルのス
ループットで実行可能となる。
【0027】(1.1. 装置の全体構成)図1は、実施の
形態1のデータ処理装置の構成を示すブロック図であ
る。この装置は、制御部1、命令メモリ2、データパス
部3、2個のデータメモリ4,5、2個の整置用バッフ
ァ6,7、および、2個のオペランドアドレス生成部
8,9を備えている。
【0028】命令メモリ2には、命令IDが格納されて
おり、制御部1からアドレスバス53を通じて送られる
命令アドレスIAに対応した命令IDを、データバス5
4を通じて制御部1へ出力する。制御部1は、読み出し
た命令IDにしたがって処理を行うように、装置の各部
の制御を行う。読み出された命令IDは、命令レジスタ
101へ保持された後、デコーダ102によって解読
(デコード)され、デコードされた結果が制御信号生成
部103へ入力される。
【0029】制御信号生成部103は、デコードされた
結果にもとづいて、データパス部3、データメモリ4,
5、整置用バッファ6,7、および、オペランドアドレ
ス生成部8,9を制御するための制御信号CSを生成
し、これらの装置部へ、制御バス50,51,52を通
じて伝える。プログラムカウンタ104は、実行中の命
令IDの命令アドレスIAをプログラムカウンタ値とし
て保持するとともに、命令IDの実行にあわせたパイプ
ラインの制御、プログラムカウンタ値の更新、つぎに出
力すべき命令アドレスIAの計算、および、計算された
命令アドレスIAの命令メモリ2への出力を行う。
【0030】データメモリ4,5の各々は、64ビット
のデータ幅をもつデータメモリであり、整置用バッファ
6,7から送られるデータメモリアドレスMAにより指
定される最大4ワード(1ワードは16ビット)のデー
タの読み出し(リード)と、最大8バイトのデータの書
き込み(ライト)とが可能である。データメモリアドレ
スMAは、4ワードアドレスである。データメモリ4,
5のリード・ライト動作の制御は、制御部1より出力さ
れる制御信号CSに含まれるリードライト信号RW(図
示しない)に従って行われ、同じく制御信号CSに含ま
れる8ビットのバイトコントロール信号(図示しない)
に従って、任意のバイトへのライトも可能である。
【0031】データパス部3は、データメモリ4,5か
ら整置用バッファ6,7を介して転送される64ビット
の2個のデータに対し、例えば図67に示したような、
16×16ビットの積和演算を4個並列に実行可能なよ
うに、演算器301として、乗算器302および加算器
303を備えている。データパス部3が積和演算を並列
に実行する方式は、SIMD方式であり、2個の64ビ
ット幅のオペランドデータをもつ1個の積和演算命令に
よって、4個の16×16ビットの積和演算が実行され
る。データメモリ4,5の読み出しデータ、および、書
き込みデータなどは、入出力データIODとして、入出
力インタフェース304およびデータバス55を通じ
て、外部ともやり取りされる。
【0032】オペランドアドレス生成部8,9は、デー
タメモリ8,9に対応する2個のアドレスポインタ80
1を備え、整置用バッファ6,7に対してオペランドア
ドレスOAを、ワードアドレスで(すなわち、1ワード
単位で指定するアドレスとして)出力する。またアドレ
スポインタの更新は、アドレッシングモードレジスタ8
02の内容に従って行われる。アドレッシングモードレ
ジスタ802には、アドレスポインタを更新する形式と
して、ポストインクリメント(および、ポストデクリメ
ント)を実行するか否か、および、インクリメント(お
よび、デクリメント)サイズを、設定することが可能で
ある。ポストインクリメント(および、ポストデクリメ
ント)とは、オペランドアドレスOAを、一定の間隔で
インクリメント(および、デクリメント)する形式であ
り、その間隔が、インクリメント(および、デクリメン
ト)サイズである。
【0033】整置用バッファ6,7は、30ビット幅の
アドレスバス64,69を通じて入力されるオペランド
アドレスOA、および、制御部1から送られる制御信号
CSにもとづいて、データメモリアドレスMAを生成
し、28ビット幅のアドレスバス63,68を通じてデ
ータメモリ4,5へ伝える。データメモリ4,5と、整
置用バッファ6,7との間で、読み出しデータ(リード
データ)および書き込みデータ(ライトデータ)が、デ
ータDBとして、64ビット幅のデータバス61,66
を通じて、やり取りされる。また、整置用バッファ6,
7と、データパス部3との間で、データBDが、64ビ
ット幅のデータバス62および67を通じて、やり取り
される。
【0034】(1.2. 整置用バッファの構成)図2は、
互いに同一に構成される整置用バッファ6および7を代
表して、整置用バッファ6の構成を示すブロック図であ
る。整置用バッファ6は、第1トライステートバッファ
20、第2トライステートバッファ21,アドレスレジ
スタ25、データレジスタ24、第1スイッチ群23、
第2スイッチ群22、および、バッファ制御部26を備
えている。第1スイッチ群23および第2スイッチ群2
2は、データ選択部を構成する。
【0035】整置用バッファ6は、64ビット幅で双方
向型のデータバス61を通じてデータメモリ4に接続さ
れ、同じく64ビット幅で双方向型のデータバス62を
通じてデータパス部3に接続されている。これらのデー
タバス61および62は、第1および第2トライステー
トバッファ20,21と通じて、互いに接続されてい
る。
【0036】データメモリ4から読み出されたリードデ
ータとしての64ビット幅のデータDBは、データバス
61を通じて第1トライステートバッファへ入力された
後、4組の16ビットバスへ分割され、16個のスイッ
チを備える第2スイッチ群22を通じて、データBDと
してデータバス61へ送られる。第1トライステートバ
ッファへ入力された64ビット幅のデータDBは、64
ビットのデータレジスタ24にも取り込まれる。データ
レジスタ24に保持される値は、16個のスイッチを備
える第1スイッチ群23を通じて、データバス61へ送
られる。データメモリへ書き込むためのライトデータと
しての64ビット幅のデータBDは、データパス部3か
らデータバス62へと出力され、第2トライステートバ
ッファ21を通じてデータバス61へ送られる。
【0037】アドレスレジスタ25は、29ビット(デ
ータメモリアドレス幅+1ビット)のサイズを持ち、デ
ータレジスタ24に取り込んだデータのアドレス(デー
タメモリアドレス)をレジスタの下位28ビットに保持
するとともに、最上位の1ビットに、データレジスタに
保持されるデータが有効であるか無効であるかを示す有
効無効ビットを持っている。
【0038】データレジスタ24とアドレスレジスタ2
5の値の更新、第1および第2スイッチ群23,22の
制御、第1および第2トライステートバッファ20,2
1の制御、および、データメモリ4へ出力される28ビ
ット幅の4ワードアドレスであるデータメモリアドレス
の生成は、バッファ制御部26によって行われる。バッ
ファ制御部26は、これらの制御を、オペランドアドレ
スOA、および、制御部1から送られる制御信号CSの
一部であるリードライト信号RWにもとづいて、実行す
る。アドレスレジスタ25は、バッファ制御部26が出
力するデータメモリアドレスMAを取り込む。
【0039】バッファ制御部26は、第1比較器26
1、第2比較器262、および、インクリメンタ263
を備えている。図3が示すように、第1比較器261
は、オペランドアドレスOAの上位28ビットMA1と
アドレスレジスタ25の下位28ビットMA3との比較
を行い、第2比較器262は、オペランドアドレスOA
の上位28ビットに1インクリメントした値MA2とア
ドレスレジスタ25の下位28ビットMA3との比較を
行う。
【0040】第1比較器261および第2比較器262
は、アドレスレジスタ25の最上位ビットである有効無
効ビットVが無効を表示しているときには、比較結果に
よらず、不一致を出力する。すなわち、有効無効ビット
Vが無効であるときには、アドレスレジスタ25および
データレジスタ24は、データメモリ4のいずれのアド
レスおよびデータをも保持していないときと同等に扱わ
れる。有効無効ビットVは、レジスタが無効化された
後、つぎにレジスタの値が更新されるまで、無効の表示
を維持する。インクリメンタ263によって生成された
値MA2と、上位28ビットMA1とは、図示しないセ
レクタによって選択されて、データメモリアドレスMA
として出力される。
【0041】(1.3. 整置用バッファの動作)図2に戻
って、バッファ制御部26により制御される整置用バッ
ファ6の各構成要素の動作は、実行されるオペランドア
クセスの種類、第1および第2比較器261,262の
出力、および、オペランドアドレスOAの下位2ビット
Uによって決まる。オペランドアクセスの種類には、ロ
ード命令の実行によるオペランドアクセスと、ストア命
令の実行によるオペランドアクセスとの2種類が含まれ
る。バッファ制御部26は、制御部1より入力されるリ
ードライト信号RWを通じて、オペランドアクセスの種
類に関する指示を受ける。
【0042】オペランドアドレスOAで指定される4ワ
ードのデータの中で、最低1ワードがデータレジスタ2
4に保持されておれば、第1および第2比較器261,
262のいずれかが一致を示す。オペランドアドレスO
Aで指定される4ワードのいずれもデータレジスタ24
に保持されていなければ、第1および第2比較器26
1,262がいずれも不一致を示す。
【0043】非整置データアクセスの場合に、データレ
ジスタ24に保持されないワードのデータが、オペラン
ドアドレスOAの上位28ビットMA1で示される4ワ
ードの次のワードにあれば、第1比較器261が一致を
示す。非整置データアクセスの場合に、オペランドアド
レスOAの上位28ビットMA1で示される4ワードの
前の4ワードの中に、データレジスタ24に保持されな
いワードのデータが存在すれば、第2比較器262が一
致を示す。
【0044】オペランドアドレスOAの下位2ビットU
は、オペランドデータがデータメモリ4のメモリ空間の
中で、ワード境界に整置されたデータであるか、非整置
のデータであるかを示している。
【0045】整置用バッファ6は、ロード命令にしたが
ってオペランドデータアクセスが実行される場合に、図
4〜図13が例示する要領で、データメモリ4に格納さ
れるデータの中からオペランドアドレスOAが指定する
4ワードのデータを選択して出力する。図4〜図13の
例では、データメモリ4には、図66に示したデータメ
モリ80と同様の形式で、データXが格納されている。
ハッチングが付された連続した4ワードのデータが、オ
ペランドアドレスOAが指定する4ワードのデータに相
当し、同時に、整置用バッファ6から出力される4ワー
ドのデータに相当する。
【0046】図4〜図8は、インクリメントサイズが1
ワードのポストインクリメントの形式でオペランドアド
レスOAが更新される場合を例示しており、図9〜図1
3は、デクリメントサイズが1ワードのポストデクリメ
ントの形式でオペランドアドレスOAが更新される場合
を例示している。いずれの形式においても、オペランド
アドレスOAは、連続する4ワードの起点に該当するワ
ードを指定することで、連続する4ワードを指定してい
る。すなわち、オペランドアドレスOAの上位28ビッ
トMA1は、起点に該当するワードが属するデータメモ
リアドレスMA(起点アドレスと仮称する)を指定して
おり、下位2ビットUは、各データメモリアドレスMA
の中での起点に該当するワードの位置を指定している。
【0047】ポストインクリメントに該当する図4の例
では、連続する4ワードの起点に該当するワードは、デ
ータX0の位置であり、終点に該当するワードは、デー
タX3の位置である。ポストデクリメントに該当する図
10の例では、起点に該当するワードは、データX3の
位置であり、終点に該当するワードは、データX6の位
置である。
【0048】連続する4ワードが整置データであると
は、上記した起点アドレスと、終点に該当するワードが
属するデータメモリアドレスMA(終点アドレスと仮称
する)とが、一致することと等価である。また、連続す
る4ワードが非整置データであるとは、起点アドレスと
終点アドレスとが一致しないことと等価である。図4、
図8、図9、および図13は、指定された連続する4ワ
ードが整置データである例を示しており、残る図5〜図
7、図10〜図12は、非整置データである例を示して
いる。
【0049】整置データの読み出しにおいて整置用バッ
ファ6は、データレジスタ24に起点アドレスに格納さ
れる4ワードのデータが保持されていない限り、オペラ
ンドアドレスOAが更新されるごとに、起点アドレスお
よび終点アドレスが格納されるデータ(整置データを読
み出す場合は、起点アドレスと終点アドレスとは同一ア
ドレスである。)を読み出し、読み出した4ワードのデ
ータで、データレジスタ24の値を更新する。また、デ
ータメモリ4から読み出したデータは、第2スイッチ群
22によって、データパス部3の演算部301へ送られ
る。
【0050】データレジスタ24に、起点アドレスに格
納される4ワードのデータが保持されていた場合は、デ
ータメモリ4からの読み出しは行われず、データレジス
タ24の値が第1スイッチ群23によってデータパス部
3へ送られる。
【0051】非整置データの読み出しにおいて、整置用
バッファ6は、起点アドレス、或は終点アドレスに格納
されるデータの何れか一方がデータレジスタ24に保持
されておれば、他方のアドレス(データレジスタ24に
起点アドレスのデータが保持されていたとすると、終点
アドレスを指す。)に格納されるデータを、データメモ
リ4から読み出す。このとき、データレジスタ24の値
は更新されない。そして、読み出された4ワードのデー
タと、データレジスタ24に保持される4ワードのデー
タの中から、第1および第2スイッチ群23,22によ
って、オペランドアドレスOAが指定する連続する4ワ
ードのデータが選択され、データパス部3の演算部30
1へ送られる。
【0052】また、起点アドレス、あるいは終点アドレ
スに格納されるデータのいずれもが、データレジスタ2
4に保持されていなければ、第1サイクルで、起点アド
レスに格納されるデータを、データメモリ4から読み出
し、読み出された4ワードのデータで、レジスタ24の
値を更新させておき、さらに次のサイクルにおいて、他
方のアドレスが格納されるデータをデータメモリ4から
読み出す。この第2サイクルにおいては、データレジス
タ24の更新は行われない。そして、この第2サイクル
において読み出されたデータと、第1サイクルで保持し
ておいたデータあの中から、第1および第2スイッチ群
23,22によって、オペランドアドレスOAが指定す
る連続する4ワードのデータが選択され、データパス部
3の演算部301へ送られる。
【0053】連続する2回の読み出し処理において、オ
ペランドアドレスOAの差がプラスマイナス1ワード以
内(すなわち、−1ワード,0ワード,+1ワードのい
ずれか)であれば、2回目の読み出し処理の際には、常
にデータレジスタ24に起点、あるいは終点アドレスの
どちらかが、保持されていることになり、2回目の読み
出し処理が、非整置データの読み出しであっても、デー
タメモリ4へのアクセスは1回のみで足りる。このた
め、非整置データをオペランドデータとして含む演算
を、1サイクルのスループットで実行することができ、
それによって、データ処理の速度を高めることができ
る。
【0054】(1.4. バッファ制御部の動作)図14〜
図19は、バッファ制御部26による制御の手順を示す
フローチャートである。図14が示すように、オペラン
ドデータアクセスが開始されると、ステップS1におい
て、ロード命令にしたがうロードアクセスであるか否か
が判定される。バッファ制御部26は、この判定をリー
ドライト信号RWにもとづいて行う。ロードアクセスで
あると判定されれば、ロード処理が実行され(ステップ
S2)、ストアアクセスであると判定されれば、ストア
処理が実行される(ステップS3)。いずれかの処理が
終了すると、オペランドアクセス処理は終了する。ロー
ド処理S2が反復的に実行されるたびに、オペランドア
ドレスOAが1ワードずつインクリメント(またはデク
リメント)されることにより、インクリメントサイズ
(またはデクリメントサイズ)が1ワードのポストイン
クリメント(またはポストデクリメント)の形式でのロ
ード処理が実現する。
【0055】ロード処理(ステップS2)は、図15〜
図18のフローチャートにしたがって実行され、ストア
処理(ステップS3)は、図19のフローチャートにし
たがって実行される。
【0056】ロード処理が開始されると、バッファ制御
部26は、まず、第1トライステートバッファ20をイ
ネーブルにし、第2トライステートバッファ21をディ
スエーブルにする(ステップS11)。つぎに、オペラ
ンドアドレスOAで示される4ワードがデータメモリ4
のワード境界に整置されたものであるかについての判定
が、オペランドアドレスOAの下位2ビットUが2’b
0であるか否かにもとづいて行われる(ステップS1
2)。
【0057】ステップS12において、オペランドアド
レスOAで示される4ワードがデータメモリ4のワード
境界に整置された整置データであると判定され、しか
も、第1比較器261が一致を示している場合では(ス
テップS13)、データレジスタ24に保持された値
が、第1スイッチ群23を介してデータバス62へ送ら
れる(ステップS14)。このときの第1および第2ス
イッチ群23,22の動作は、図20で示される。図2
0では、長円で囲まれたスイッチのみがオンしており、
その他はオフしている。長円の意味は、後述する図21
〜図27においても同様である。
【0058】また、第1比較器261が不一致を示して
いる場合では(ステップS13)、オペランドアドレス
OAの上位28ビットMA1がメモリアドレスMAとし
て出力され(ステップS15)、リードデータが第2ス
イッチ群22を介してデータバス62へ送られる(ステ
ップS16)。このときの第1および第2スイッチ群2
3,22の動作は、図21で示される。さらに、データ
レジスタ24の値は、データメモリ4からのリードデー
タで更新される(ステップS17)。以上の処理は、1
クロックサイクルで実行可能である。
【0059】ステップS12において、オペランドアド
レスOAで示される4ワードがデータメモリ4のワード
境界に整置されない非整置データであると判定される
と、第1比較器261または第2比較器262が一致を
示しておれば(ステップS18,S19)、データレジ
スタ24に保持されたデータが第1スイッチ群23を介
して出力されるとともに、データレジスタ24に保持さ
れていないデータが含まれているデータメモリアドレス
MAが計算され、データメモリ4へ出力される(ステッ
プS19またはS21)。データメモリ4からのリード
データは、第2スイッチ群22へ入力される。
【0060】ここで、データレジスタ24に保持されて
いないデータが含まれているデータメモリアドレスMA
は、(1) 第1比較器261が一致を示していれば、オペ
ランドアドレスOAの上位28ビットMA1のつぎに大
きいアドレスであり、オペランドアドレスOAの上位2
8ビットMA1に、1だけインクリメントすることで得
られ(ステップS19)、(2) 第2比較器262が一致
を示しておれば、オペランドアドレスOAの上位28ビ
ットMA1そのものである(ステップS21)。
【0061】つづくステップS22では、オペランドア
ドレスOAの下位2ビットUに応じて、第1および第2
スイッチ群23,22が、選択的にオンすることによ
り、オペランドアドレスOAが指定する連続した4ワー
ドのデータが選ばれて、データバス62を通じてデータ
パス部3へ送られる。以上の処理は、1クロックサイク
ルで実行可能である。ステップS22における第1およ
び第2スイッチ群23,22の動作は、図22〜図27
が示すように、オペランドアドレスOAの下位2ビット
Uの値と、第1および第2比較器261,262の出力
とによって定まる。
【0062】第1および第2比較器261,262がい
ずれも一致を示していないときには(ステップS18,
S20)、データパス部3へのデータの出力までに2サ
イクルを要し、その1サイクル目では、オペランドアド
レスOAの上位28ビットMA1が出力され(ステップ
S23)、これに対応するリードデータがデータレジス
タ24に取り込まれる(ステップS25)。このとき、
第1および第2スイッチ群23,22に属するスイッチ
は、すべてオフされ(ステップS24)、データパス部
3へのデータの出力は行われない。これと同時に、制御
部1に対してウエイト信号(図示せず)が生成され、パ
イプラインに1サイクルのウエイトサイクルが挿入され
る。
【0063】2サイクル目では、必ず第1比較器261
が一致を示すので、オペランドアドレスOAの上位28
ビットMA1に1インクリメントした値が、データメモ
リアドレスMAとして出力され(ステップS26)、第
1スイッチ群23によってデータレジスタ24に含まれ
る4ワードの中の必要なデータが選択され、第2スイッ
チ群22によって4ワードのリードデータに含まれる必
要なデータが選択されることにより、オペランドアドレ
スOAが指定する連続した4ワードのデータがデータパ
ス部3へ送られる(ステップS27)。ステップS27
における第1および第2スイッチ群23,22の動作
は、図22〜図27で示される。
【0064】また、ストア命令の実行によるオペランド
データアクセスが開始された場合には(ステップS
3)、バッファ制御部26は、まず、第1トライステー
トバッファ20をディスエーブル、第2トライステート
バッファ21をイネーブルにする(ステップS31)。
本実施の形態のデータ処理装置では、データメモリ4,
5の非整置ワードを示すオペランドアドレスOAへのデ
ータのストアには対応していないため、ワードアドレス
で示されるオペランドアドレスOAの下位2ビットUは
無視され、上位28ビットMA1がデータメモリアドレ
スMAとしてデータメモリ4へと出力される(ステップ
S32)。また、データメモリ4とデータレジスタ24
の間のコヒーレンシを保つために、ストア処理(ステッ
プS3)を実行する際には、アドレスレジスタ25の有
効無効ビットVを無効化することにより、データレジス
タ24に保持された値が無効化される(ステップS3
3)。
【0065】ここで、データメモリ4とデータレジスタ
24の間のコヒーレンシとは、アドレスレジスタ25に
保持されるデータメモリアドレスMAに対応するデータ
メモリ4の4ワードのデータと、データレジスタ24に
保持される4ワードのデータとが、互いに一致すること
をいう。言い換えると、コヒーレンシが保たれるとは、
データレジスタ24とアドレスレジスタ25に保持され
るアドレスとデータとの組が、データメモリ4のアドレ
スとそれに格納されるデータとの組の一つを、常に反映
していることに相当する。
【0066】ストア処理(ステップS3)において、デ
ータメモリ4のデータが書き換えられても、データレジ
スタ24が無効化されるので、再びロード処理(ステッ
プS2)を開始する際には、アドレスレジスタ25およ
びデータレジスタ24の値が必ず更新される(ステップ
S17またはS25)。このため、データメモリ4の書
き換え後のデータを反映しないデータレジスタ24の値
を、誤ってそのまま参照する恐れを回避することができ
る。
【0067】以上のように、非整置データがオペランド
データとして指定され、それによって、第1および第2
比較器261,262がいずれも一致を示さない場合
(図18)を例外として、ロード命令のオペランドデー
タがワード境界に整置されているか否かによらず、1サ
イクルでデータメモリ4からデータパス部3への4ワー
ドデータのロードが可能である。ポストインクリメント
(またはポストデクリメント)のロード命令を連続して
実行する場合、インクリメントサイズ(またはデクリメ
ントサイズ)が1ワードであれば、最初のサイクルをの
ぞいて、この例外のケースは起こり得ない。そのため非
整置データをオペランドデータとして含むロード命令を
最初のサイクルを除いて、毎サイクル実行することがで
きる。
【0068】(1.5. 実施の形態1の利点)本実施の形
態におけるデータ処理装置では、データパス部3での積
和演算と、オペランドアドレス生成部8,9でのアドレ
スポインタの更新、および整置用バッファ6,7を介し
た2つのデータメモリ4,5へのオペランドデータアク
セスは並列に実行可能であり、また、データメモリ4,
5からのオペランドデータのロードが1サイクルで実行
できるので、積和演算を1サイクルのスループットで実
行することが可能である。
【0069】本実施の形態におけるデータ処理装置で、
FIR処理を実現する場合を想定する。2つのデータメ
モリ4と5には、それぞれデータXと係数Cが、図28
のように配置されていたとする。図67で示した4つの
16×16ビットの積和演算を並列に実行することによ
り、演算処理を高速化するためには、図67の四角(点
線)で囲まれた8個のデータをオペランドとする積和演
算を、1サイクルごとに実行する必要がある。このた
め、1サイクルごとに、データメモリ4と5から、それ
ぞれ4ワードずつロードする必要がある。データメモリ
4からロードされるオペランドデータは、4回のうち3
回はワード境界に非整置なデータとなるが、インクリメ
ントサイズ(またはデクリメントサイズ)が1ワードで
あるため、1サイクルごとにデータをロードすることが
可能であり、積和演算を1サイクルのスループットで達
成することが可能となる。
【0070】以上のように、本実施の形態のデータ処理
装置では、オペランドに非整置データを含んだロード命
令の連続実行を、1サイクルのスループットで実現でき
るためデータ処理装置の処理の速度を向上させることが
できる。またプログラム開発を行う上で、データの整
置、非整置を考慮する必要がなくなるので、プログラム
開発効率を高めることができる。
【0071】(2. 実施の形態2)実施の形態2のデー
タ処理装置は、ストア処理の中で、データメモリアドレ
スMAがアドレスレジスタ25に保持される値に一致す
るときには、データレジスタ24の値がライトデータで
更新される点において、実施の形態1とは特徴的に異な
る。それにより、データレジスタ24を無効化すること
なくコヒーレンシが保たれるので、ロード処理へ復帰し
たときに、はじめから、オペランドデータのロードを1
サイクルで行うことが可能となる。
【0072】図29は、実施の形態2によるデータ処理
装置において、バッファ制御部26が実行するストア処
理(ステップS3)の手順を示すフローチャートであ
る。ストア処理が開始されると、アドレスレジスタ25
に保持されるアドレスと、ライトデータのためのデータ
メモリアドレスMAとの間で、比較が行われる(ステッ
プS41)。比較の結果、値が一致した場合は、バッフ
ァ制御部26は、第1トライステートバッファ21だけ
でなく、第2トライステートバッファ20もイネーブル
とし(ステップS42)、データメモリ4に書き込むラ
イトデータをデータレジスタ24にも書き込む(ステッ
プS43)。値が一致しない場合は、データレジスタ2
4の値は更新されず、データメモリ4への書き込みのみ
が行われる(ステップS44,S43)。以上のストア
処理は、1サイクルで実行可能である。
【0073】実施の形態1のデータ処理装置において
は、オペランドデータに非整置データを含んだロード命
令の連続実行を中断して、ストア命令が実行されると、
データレジスタ24が無効化されてしまう。そのため、
ストア命令の実行が終了した後に、ストア命令を開始す
る直前まで実行していたロード命令のつづきを再開する
最初の処理において、2サイクルが必要となる。
【0074】これに対して、実施の形態2のデータ処理
装置では、データメモリ4に格納されるデータの中で、
アドレスレジスタ25に保持する値と同一のアドレスの
データが更新されるときには、データレジスタ24の値
も、同時に更新される。これにより、データレジスタ2
4の無効化を行うことなく、データメモリ4とデータレ
ジスタ24との間で、コヒーレンシが維持される。無効
化が行われないので、ロード処理が再開されたときに、
その当初から、オペランドデータのロードを1サイクル
で行うことが可能となる。このように、ストア処理によ
ってロード処理の効率が妨げられない。また、無効化の
必要がないので、アドレスレジスタ25は、有効無効ビ
ットVを持つ必要がなく、アドレスレジスタ25のサイ
ズは、28ビットで足りる。
【0075】(3. 実施の形態3)実施の形態3のデー
タ処理装置では、データメモリとデータパス部の間に、
データメモリの2アドレス分のデータを保持するレジス
タを有する整置用バッファが介在する。整置用バッファ
は、2個のレジスタに保持されるデータの中からオペラ
ンドデータを選択するか、一方のレジスタに保持される
データとデータメモリから読み出されるリードデータと
の中からオペランドデータを選択するか、あるいは、デ
ータメモリから読み出されるリードデータの中からオペ
ランドデータを選択することによって、整置データおよ
び非整置データをデータパス部へ出力する。これによ
り、連続した読み出し処理におけるオペランドアドレス
の差(更新幅)が、データメモリアドレスでプラスマイ
ナス4ワード以内である間は、整置データおよび非整置
データのいずれもが、データメモリに対する最大1回の
アクセスを通じて得られるので、非整置データをオペラ
ンドデータとして含む連続した読み出し処理(ロード処
理)が、1サイクルのスループットで実行可能となる。
【0076】(3.1. 装置の構成)実施の形態3による
データ処理装置は、図1と同一に表される。図30は、
実施の形態3による整置用バッファ6の構成を示すブロ
ック図である。この整置用バッファ6は、2個の第1お
よび第2アドレスレジスタ202,203、2個の第1
および第2データレジスタ200,201、セレクタ2
05、第3比較器265、先頭ポインタレジスタ26
6、第1セレクタ267、および、第2セレクタ268
を備える点において、実施の形態1の整置用バッファ6
(図1)とは特徴的に異なっている。
【0077】トライステートバッファ20の出力は、第
1および第2データレジスタ200,201、および、
第2スイッチ群22のいずれにも接続される。また、デ
ータレジスタ200,201の出力は、セレクタ205
を通じて、第1スイッチ群23へ接続される。これらの
レジスタ202,203,200,201、および、セ
レクタ205も、バッファ制御部26によって制御され
る。
【0078】バッファ制御部26は、第1比較器26
1、第2比較器262、第3比較器265、インクリメ
ンタ263、先頭ポインタレジスタ266、第1セレク
タ267、および、第2セレクタ268を備えている。
先頭ポインタレジスタ266に保持される値は、2つの
データレジスタ200および201に保持される連続し
た最大8ワードのデータの中で、最小アドレスを持つデ
ータが、データレジスタ200および201のどちらに
保持されているかを表示する。
【0079】図31に示される第1セレクタ267で
は、第1アドレスレジスタ202の下位28ビットMA
3と、第2アドレスレジスタ203の下位28ビットM
A4とから、大きいアドレスを持つ側の値が選択され
る。また、第2セレクタ268では、第1アドレスレジ
スタ202の下位28ビットMA3と、第2アドレスレ
ジスタ203の下位28ビットMA4とから、小さいア
ドレスを持つ側の値が選択される。第1アドレスレジス
タ202と、第2アドレスレジスタ203に保持される
アドレスの大小は、先頭ポインタレジスタ266の値に
よって判定される。
【0080】第1比較器261は、第1セレクタ267
の出力と、オペランドアドレスOAの上位28ビットM
A1との比較を行い、第2比較器262は、第2セレク
タ268の出力と、オペランドアドレスOAの上位28
ビットMA1との比較を行う。また、第3比較器265
は、第2セレクタ268の出力と、オペランドアドレス
OAの上位28ビットMA1に1インクリメントした値
MA2との比較を行う。各比較器261,262,26
5は、値MA3,MA4と同時にセレクタ267,26
8で選択されて入力される有効無効ビットVが無効を示
している場合には、アドレスの値によらず、不一致を出
力する。
【0081】本実施の形態3において、2つのデータレ
ジスタ200,201に保持される値は、常に連続した
データメモリアドレスを持つように制御される。ただ
し、アドレスレジスタの最上位ビットである有効無効ビ
ットVが無効を示している場合は、このかぎりではな
い。
【0082】第1比較器261が一致を示す場合には、
保持される連続したデータの中で最大のアドレスを持つ
側のレジスタに、起点アドレスに格納されたデータが保
持されている。このとき、オペランドデータが非整置デ
ータであれば、終点アドレスに格納されるデータは、保
持されていない。したがって、オペランドアドレスOA
の上位28ビットMA1に1インクリメントした値MA
2が、データメモリアドレスMAとしてデータメモリ4
へ出力され、読み出しデータと保持されている起点アド
レスのデータとの中から、オペランドデータが選択され
てデータパス部3へと出力される。
【0083】第2比較器262が一致を示す場合には、
最小のアドレスを持つ側のレジスタに、起点アドレスに
格納されているデータが保持されている。すなわち、2
つのデータレジスタしたがって、200,201ともに
有効なデータを保持している場合には、オペランドデー
タはすべて2つのデータレジスタ200,201の中に
保持されている。したがって、二つのレジスタ200,
201に保持されている起点アドレスのデータと終点ア
ドレスのデータとの中からオペランドデータが選択さ
れ、データパス部3へ出力される。
【0084】また、一方のレジスタが無効なデータを保
持している場合には、オペランドデータが整置データで
ないかぎり、終点アドレスに格納されているデータが保
持されていないことになるので、オペランドアドレスO
Aの上位28ビットMA1に1インクリメントした値M
A2が、データメモリアドレスMAとしてデータメモリ
4へ出力され、読み出しデータと保持されている起点ア
ドレスのデータとの中からオペランドデータが選択さ
れ、データパス部3へ出力される。
【0085】第3比較器265が一致を示す場合で、オ
ペランドデータが非整置データであれば、最小のアドレ
スを持つ側のレジスタに、終点アドレスに格納されるデ
ータが保持されている。また、オペランドデータが整置
データであれば、終点アドレス+1のデータが保持され
ており、オペランドデータはレジスタに保持されるデー
タと連続したデータとなっている。どちらの場合におい
ても、起点アドレスに格納されるデータは保持されてお
らず、オペランドアドレスOAの上位28ビットMA1
がデータメモリアドレスMAとしてデータメモリ4へ出
力され、オペランドデータが整置データであれば、読み
出しデータがデータパス部3へ出力され、非整置データ
であれば、読み出しデータと保持されている終点アドレ
スのデータとの中からオペランドデータが選択され、デ
ータパス部3へ出力される。
【0086】また、第1、第2、および、第3比較器2
65,261,262,265のいずれもが不一致を示
す場合には、起点および終点アドレスのどちらもが、レ
ジスタに保持されてはいない。したがって、オペランド
データが整置データであれば、オペランドアドレスOA
の上位28ビットMA1が、データメモリアドレスMA
としてデータメモリ4へ出力され、読み出しデータがデ
ータパス部3へ出力される。
【0087】オペランドデータが非整置データであれ
ば、オペランドアドレスOAの上位28ビットMA1
が、データメモリアドレスMAとしてデータメモリ4へ
出力され、読み出しデータがデータレジスタに保持され
た後、次のサイクルで、オペランドアドレスOAの上位
28ビットMA1に1インクリメントした値MA2が、
データメモリ4へ出力され、読み出しデータと保持され
ている起点アドレスのデータとの中から、オペランドデ
ータが選択されてデータパス部3へ出力される。
【0088】(3.2. バッファ制御部の動作)バッファ
制御部26による制御の手順は、図14で表される。実
施の形態3では、ロード処理(ステップS2)の内部フ
ローは、図32〜図40で表される。ロード処理が開始
されると、バッファ制御部26は、まず、第1トライス
テートバッファ20をイネーブルにし、第2トライステ
ートバッファ21をディスエーブルにする(ステップS
101)。
【0089】アドレスレジスタ202,203の二つの
有効無効ビットVが、二つとも無効を表しているかどう
かを判定するステップS102で、肯定的な判定結果
(Yes)が得られることは、データ処理装置の初期化
後、あるいは、ストア処理の実行にともなう無効化の後
で、2つのデータレジスタ200,201が、ともに有
効なデータを保持していないことを意味する。すなわ
ち、起点アドレスのデータと終点アドレスのデータのい
ずれもが保持されていないことを意味する。そこで、ま
ず起点アドレスに格納されるデータが読み出された後
(ステップS103)、読み出されたデータでデータレ
ジスタの値が更新される(ステップS104)。各レジ
スタの更新が行われた場合、レジスタに更新データが反
映されるのは、次のサイクル以降である。整置データの
読み出しであれば(ステップS105)、第1スイッチ
群23はオフし、第2スイッチ群22は、オペランドア
ドレスOAにしたがって選択的にオンすることによっ
て、データメモリ4からのリードデータがデータパス部
3へ送られる(ステップS106)。その後、ステップ
S104で更新されたレジスタとは別のレジスタが無効
化される(ステップS107)。ステップS106にお
ける第2スイッチ群22の動作は、図41で表される。
ステップS101からS107に至る処理は、1サイク
ルで実行可能である。
【0090】非整置データの読み出しであれば(ステッ
プS105)、第1および第2スイッチ群23,22は
すべてオフし(ステップS108)、制御部1に対する
ウェイト信号(図示せず)が生成され、パイプラインに
1サイクルのウェイトサイクルが挿入される。その後、
次のサイクルで、終点アドレスに格納されるデータが、
データメモリ4から読み出され(ステップS109)、
起点アドレスのデータを保持するレジスタとは別のレジ
スタが、読み出しデータで更新される(ステップS11
0)。そして、起点アドレスが保持されているデータレ
ジスタの値が、第1スイッチ群23へと供給され(ステ
ップS111)、第1および第2スイッチ群23,22
が、オペランドアドレスOA、および、第3比較器26
5の比較結果にしたがい、選択的にオンすることによ
り、非整置データがデータパス部3へ送られる(ステッ
プS112)。ステップS101からステップS112
までの処理は、2サイクルで行われる。ステップS11
2における第1および第2スイッチ群23,22の動作
は、図42から図44で表される。
【0091】ステップS102で否定的結果(No)が得
られたときは、アドレスレジスタ202,203の2つ
の有効無効ビットVのうち、どちらか一方だけが有効で
あるか否かが、判定される(ステップS113)。この
判定結果が肯定的であった場合には、有効データを保持
している側のアドレスレジスタの値が、起点アドレス、
あるいは、終点アドレスと等しいか否かが判定される。
この判定には、それぞれ、第2比較器262(ステップ
S114)、および、第3比較器265(ステップS1
18)が用いられる。
【0092】ステップS114で肯定的な結果が得られ
た場合には、起点アドレスに格納されるデータがデータ
レジスタに保持されている。オペランドデータが整置デ
ータである場合には(ステップS115)、起点アドレ
スと終点アドレスとが等しいため、オペランドアドレス
OAが指定する4ワードのデータのすべてがデータレジ
スタに保持されており、先頭ポインタレジスタ266が
示す側のデータレジスタの値が選択されて、第1スイッ
チ群23へと送られる(ステップS116)。第2スイ
ッチ群22はすべてオフし、第1スイッチ群23は、オ
ペランドアドレスOAにしたがって選択的にオンするこ
とにより、整置データが、データパス部3へと送られる
(ステップS117)。ステップS117における第1
スイッチ群23の動作は、図41で表される。ステップ
S101からステップS117までの処理は、1サイク
ルで実行される。
【0093】ステップS115で、オペランドデータが
非整置データであった場合には、起点アドレスに格納さ
れるデータがデータレジスタに保持されており、終点ア
ドレスに格納されるデータは保持されていない。そこ
で、終点アドレスに格納されるデータがデータメモリか
ら読み出され(ステップS109)、起点アドレスのデ
ータを保持するレジスタとは別のレジスタが、読み出し
データで更新される(ステップS110)。そして、起
点アドレスを保持するデータレジスタの値が、第1スイ
ッチ群23へと供給され(ステップS111)、第1お
よび第2スイッチ群23,22が、オペランドアドレス
OA、および、第3比較器265の比較結果にしたがい
選択的にオンすることにより、非整置データがデータパ
ス部3へ送られる(ステップS112)。ステップS1
01からステップS112までの処理は、1サイクルで
実行される。ステップS112における第1および第2
スイッチ群23,22の動作は、図42〜図44で表さ
れる。
【0094】第2比較器262が不一致を示す場合は
(ステップS114)、ステップS118で、第3比較
器265が一致を示すかどうかが判定される。第3比較
器265が一致を示している場合には(ステップS11
8)、オペランドアドレスOAが非整置データを指定し
ているならば、終点アドレスに格納されるデータがデー
タレジスタに保持されていることになり、整置データを
指定しているならば、終点アドレスに1インクリメント
したデータメモリアドレスに格納されるデータがデータ
レジスタに保持されていることとなる。いずれの場合
も、起点アドレスに格納されるデータはデータレジスタ
に保持されていないため、起点アドレスに格納されるデ
ータがデータメモリ4から読み出され(ステップS11
9)、終点アドレス、あるいは、終点アドレス+1に格
納されるデータを保持するレジスタとは別のデータレジ
スタが、読み出しデータで更新される(ステップS12
0)。このとき、これまで最小のアドレスのデータが保
持されていたレジスタとは別のレジスタが、よりアドレ
スが小さいデータで更新されたこととなるので、先頭ポ
インタレジスタ266の値が、これまで表示していたレ
ジスタとは別のレジスタを示す値へと更新される(ステ
ップS121)。
【0095】オペランドアドレスOAが整置データを指
定している場合には(ステップS122)、起点アドレ
スと終点アドレスとが等しいので、オペランドアドレス
OAが指定する4ワードのデータのすべてがデータレジ
スタに保持されていないこととなる。そこで、ステップ
S119でデータメモリ4から読み出された起点アドレ
スのデータが、第1スイッチ群23はオフし、第2スイ
ッチ群22はオペランドアドレスOAにしたがい選択的
にオンすることによって、データパス部3へ送られる
(ステップS123)。ステップS123における第2
スイッチ群22の動作は、図41で表される。ステップ
S101からステップS123までの処理は、1サイク
ルで実行可能である。
【0096】ステップS122でオペランドアドレスO
Aが非整置データであると判定された場合には、オペラ
ンドアドレスOAが指定する4ワードのデータの一部が
データレジスタに保持されてないことになる。そこで、
終点アドレスに保持されているデータレジスタの値が、
第1スイッチ群23へ供給され(ステップS124)、
ステップS119でデータメモリ4から読み出された起
点アドレスのデータが第2スイッチ群22へ送られ、第
1および第2スイッチ群23,22が、オペランドアド
レスOA、および、第3比較器265の比較結果にした
がって、選択的にオンすることにより、非整置データが
データパス部3へ送られる(ステップS125)。ステ
ップS101からステップS125までの処理は、1サ
イクルで実行される。ステップS125における第1お
よび第2スイッチ群23,22の動作は、図45〜図4
7で表される。
【0097】また、ステップS118で第3比較器26
5が一致を示していなかった場合には、2つのデータレ
ジスタ200,201に、起点アドレスのデータおよび
終点アドレスのデータのいずれもが、保持されてはいな
いことになる。したがって、ステップS102で肯定的
な判定結果が得られたときと同様に、ステップS103
以降の処理が実行される。
【0098】つぎに、ステップS113での判定結果が
否定的であった場合には、2つのデータレジスタ20
0,201のどちらもが有効であり、ステップS126
において、起点アドレスがどちらのデータレジスタに含
まれるのかが判定される。ステップS126において、
第1比較器261が一致を示す場合には、起点アドレス
が、最大のアドレス値をもつデータを保持している側の
レジスタに保持されていることとなる。また、オペラン
ドデータが整置データであれば(ステップS127)、
オペランドアドレスOAが示す4ワードのデータが、す
べて起点アドレスを保持しているレジスタの中にあるこ
ととなる。そこで、起点アドレスを保持している側のデ
ータレジスタの値が、第1スイッチ群23へと供給され
(ステップS128)、第2スイッチ群22はオフし、
第1スイッチ群23はオペランドアドレスOAにしたが
い選択的にオンすることにより、整置データがデータパ
ス部3へ送られる(ステップS129)。ステップS1
29における第1スイッチ群23の動作は、図41で表
される。ステップS101からステップS129までの
処理は、1サイクルで実行される。
【0099】また、ステップS127の判定結果が、非
整置データを表しておれば、2つのデータレジスタ20
0,201が、起点アドレスのデータの一部を保持し、
終点アドレスのデータを保持していないことになる。そ
こで、終点アドレスに格納されるデータがデータメモリ
4から読み出され(ステップS130)、起点アドレス
を保持するレジスタとは別のデータレジスタが、読み出
しデータで更新される(ステップS131)。そして、
起点アドレスを保持している側のデータレジスタの値
が、第1スイッチ群23へ供給され(ステップS13
2)、第1および第2スイッチ群23,22が、オペラ
ンドアドレスOA、および、第3比較器265の比較結
果にしたがい選択的にオンすることにより、非整置デー
タがデータパス部3へ送られる(ステップS133)。
ステップS133における第1および第2スイッチ群2
3,22の動作の動作は、図42〜図44で表される。
ここでは、最小のアドレスのデータが保持されていたレ
ジスタとは別のレジスタが、他方に保持されている最大
のアドレスよりも、1大きいアドレスに格納されるデー
タで更新されたこととなるので、先頭ポインタレジスタ
266の値が、これまで表示していたレジスタとは別の
レジスタを表示する値へと更新される(ステップS13
4)。ステップS101からステップS134までの処
理は、1サイクルで実行される。
【0100】ステップS126で、第1比較器261の
比較結果が不一致であった場合には、ステップS135
で、起点アドレスのデータが、最小のアドレス値を保持
する側のレジスタに保持されているかどうかが判定され
る。ステップS135の判定結果が、肯定的である場合
には、起点アドレスおよび終点アドレスのいずれもが、
データレジスタに保持されていることになり、オペラン
ドアドレスOAが整置アドレスであれば(ステップS1
36)、起点アドレスが保持されるデータレジスタの値
が、第1スイッチ群23へと供給され(ステップS13
7)、第2スイッチ群22はすべてオフし、第1スイッ
チ群23はオペランドアドレスOAにしたがい選択的に
オンすることによって、整置データがデータパス部3へ
と送られる(ステップS138)。ステップS138に
おける第1スイッチ群23の動作は、図41で表され
る。また、ステップS101からステップS138まで
の処理は、1サイクルで実行される。
【0101】また、オペランドアドレスOAが非整置ア
ドレスであれば(ステップS136)、図48で表され
るように、起点アドレスが保持されるデータレジスタの
値と、終点アドレスが保持されるデータレジスタの値
が、オペランドアドレスOAにしたがって選択されて、
第1スイッチ群23へと送られる(ステップS13
9)。そして、第2スイッチ群22はすべてオフし、第
1スイッチ群23はオペランドアドレスOAにしたがい
選択的にオンすることにより、非整置データがデータパ
ス部3へと送られる(ステップS140)。ステップS
140における第1スイッチ群23の動作は、図49〜
図51で表される。また、ステップS101からステッ
プS140までの処理は、1サイクルで実行される。
【0102】以上のように、実施の形態3におけるデー
タ処理装置では、整置用バッファ6が、2アドレス分の
データを保持する第1および第2データレジスタ20
0,201を備え、これらのレジスタに保持される最大
8ワードの連続したワードデータと、データメモリ4か
ら読み出された4ワードのリードデータとの中から、オ
ペランドアドレスOAが指定する4ワードの整置データ
および非整置データが選択され、データパス部3へ出力
される。このため、インクリメントサイズあるいはデク
リメントサイズが、4ワード以内であるロード命令が連
続して実行される場合には、最初の非整置データのロー
ド処理を除いて、データメモリアクセスは、4サイクル
に1回で足りる。
【0103】したがって、実施の形態1によるデータ処
理装置と同様に、オペランドデータに非整置データを含
んだロード命令の連続実行を、1サイクルのスループッ
トで実現できるだけでなく、1サイクルごとにデータメ
モリアクセスを行う実施の形態1によるデータ処理装置
と比べて、4分の1のアクセス回数で、連続したロード
命令の実行が可能であり、データメモリ4の消費電力を
節減することができる。
【0104】ストア処理(ステップS3)は、実施の形
態1のストア処理(図19)、あるいは、実施の形態2
のストア処理(図29)に準じた手順で実行するとよ
い。図19に準じた手順では、ステップS33におい
て、第1および第2アドレスレジスタ202,203の
双方の有効無効ビットVを無効化することにより、第1
および第2データレジスタ200,201の双方を無効
化すると良い。
【0105】図29に準じた手順では、ステップS41
において、オペランドアドレスOAの上位28ビットM
A1が、第1および第2アドレスレジスタ202,20
3のいずれかの値に一致するか否かが判定される。さら
に、ステップS43では、データメモリ4に書き込むラ
イトデータが、ステップS41で一致が確認されたアド
レスレジスタに対応するデータレジスタ(第1および第
2データレジスタ200,201の一方)にも書き込ま
れる。
【0106】なお、本実施の形態3では、2個のデータ
レジスタが備わる例について説明したが、データレジス
タが3個へと増えても、比較器を1個増やすことによっ
て、本発明は適用可能であり、一般に、データレジスタ
の個数は、1以上の範囲で任意である。また、本実施の
形態3では、アドレスレジスタに保持される値が、起点
アドレスであるか、終点アドレスであるかについての判
定が行われている。これにより、オペランドアドレスO
Aが、アドレスレジスタに保持される値のプラス方向あ
るいはマイナス方向に進んでも、アドレスの増減値が4
以内であれば、1サイクルのスループットで読み出し処
理が可能となっている。
【0107】これに対して、アドレッシングモードレジ
スタ802(図1)が表示する方向に、オペランドアド
レスOAが変化したときに限り、1サイクルのスループ
ットで読み出し処理が可能とする制限を設けることも可
能である。それによって、バッファ制御部26での制御
手順を、簡素化することができる。
【0108】(4. 実施の形態4)実施の形態4による
処理装置は、整置用バッファ6(または7)に備わるア
ドレスレジスタ25およびデータレジスタ24を用い
て、連続した非整置データを1サイクルのスループット
で読み込むことを可能にするロード命令(実施の形態1
のロード命令と同一)と、データレジスタを用いないロ
ード命令(整置データロード命令と仮称する)の2種類
を持つ。整置データロード命令は、つねにワード境界に
整置された4ワードのデータのロードを行うための命令
である。
【0109】実施の形態4によるデータ処理装置は、図
1と同一に表される。また、実施の形態4による整置用
バッファ6は、図2と同一に表される。オペランドデー
タアクセスが開始されると、制御部1は命令の種類を指
示する制御信号を整置用バッファ6,7に出力し、整置
用バッファ6,7は、この制御信号に従って動作する。
【0110】図52は、実施の形態4によるバッファ制
御部26の制御の手順を示すフローチャートである。オ
ペランドデータアクセスが開始されると、ステップS1
において、ロードアクセスであるか否かが判定される。
ストアアクセスであると判定されれば、ストア処理が実
行される(ステップS3)。ステップS3のストア処理
は、図19または図29の手順で実行される。ロードア
クセスであると判定されれば、データレジスタを用いな
いロードであるか否かが判定される(ステップS8
0)。データレジスタを用いるロードであると判定され
ると、実施の形態1と同様のロード処理が実行される
(ステップS2)。データレジスタを用いないロードで
あると判定されると、整置データロード処理が実行され
る(ステップS81)。いずれかの処理が終了すると、
オペランドアクセス処理は終了する。
【0111】図53は、整置データロード処理(ステッ
プS81)の内部手順を示すフローチャートである。整
置データロード処理が開始されると、バッファ制御部2
6は、まず、第1トライステートバッファ20をイネー
ブルにし、第2トライステートバッファ21をディスエ
ーブルにする(ステップS82)。
【0112】つぎに、オペランドアドレスOAの上位2
8ビットMA1がメモリアドレスMAとして出力され
(ステップS83)、第1スイッチ群23はオフし、第
2スイッチ群22が整置データの読み出しに対応して選
択的にオンすることにより、整置データであるリードデ
ータが、第2スイッチ群22を介してデータバス62へ
送られる(ステップS84)。ステップS84における
第1および第2スイッチ群23,22の動作は、ロード
処理において、オペランドアドレスOAの下位ビットU
が2b00であるときの動作(図20および図21)と
同一である。以上のステップS81の処理は、1サイク
ルで実行可能である。また、データレジスタ24および
アドレスレジスタ25の値の更新は行われない。
【0113】実施の形態1におけるデータ処理装置で
は、連続したオペランドアドレスOAに対するロード処
理を行っている途中で、オペランドアドレスOAが飛躍
することによって、別のメモリ領域に対する読み出しを
データメモリ4に対して行うと、データレジスタ24の
値が更新されてしまう。したがって、その後、中断した
ロード処理を再開する際には、データレジスタ24の値
は別のアドレスのデータに更新されてしまっているた
め、再開直後の最初の処理に2サイクルを必要とする。
【0114】これに対して、実施の形態4のデータ処理
装置では、連続したオペランドアドレスOAに対するロ
ード命令を行っている途中で、別のメモリ領域へのロー
ドが必要となれば、データレジスタ24を用いない整置
データロード命令を用いることにより、データレジスタ
24の更新を防ぐことができる。そのため、ロード処理
を再開する際に、最初の処理を1サイクルで実行するこ
とが可能となる。それにより、処理速度の向上を図るこ
とができる。
【0115】(5. 実施の形態5)実施の形態5による
処理装置は、データメモリ4(または5)に格納される
データの中のオペランドアドレスOAが指定する1ワー
ドのデータを並列化し、4ワードのデータとしてデータ
パス部3へロードするロード命令(単一ワード並列ロー
ド命令と仮称する)を持つ点において、実施の形態1の
データ処理装置と特徴的に異なる。
【0116】実施の形態5によるデータ処理装置は、図
1と同一に表される。また、実施の形態5による整置用
バッファ6は、図2と同一に表される。オペランドデー
タアクセスが開始されると、制御部1は命令の種類を指
示する制御信号を整置用バッファ6,7に出力し、整置
用バッファ6,7は、この制御信号に従って動作する。
【0117】図54は、実施の形態5によるバッファ制
御部26の制御の手順を示すフローチャートである。オ
ペランドデータアクセスが開始されると、ステップS1
において、ロードアクセスであるか否かが判定される。
ストアアクセスであると判定されれば、ストア処理が実
行される(ステップS3)。ステップS3のストア処理
は、図19または図29の手順で実行される。ロードア
クセスであると判定されれば、単一ワード並列ロード命
令に従うロードアクセスか否かが判定される(ステップ
S90)。単一ワード並列ロード命令に従うロードアク
セスでないと判定されると、実施の形態1と同様のロー
ド処理が実行される(ステップS2)。単一ワード並列
ロード命令に従うロードアクセスであると判定される
と、単一ワード並列ロード処理が実行される(ステップ
S91)。いずれかの処理が終了すると、オペランドア
クセス処理は終了する。
【0118】図55は、単一ワード並列ロード処理(ス
テップS91)の内部手順を示すフローチャートであ
る。単一ワード並列ロード処理が開始されると、バッフ
ァ制御部26は、まず、第1トライステートバッファ2
0をイネーブルにし、第2トライステートバッファ21
をディスエーブルにする(ステップS92)。
【0119】つぎに、オペランドアドレスOAの上位2
8ビットMA1がメモリアドレスMAとして出力される
(ステップS93)。つづいて、第1スイッチ群23が
オフし、第2スイッチ群22は、オペランドアドレスO
Aの下位2ビットUに応じて選択的にオンする(ステッ
プS94)。これにより、4ワードのリードデータの中
のオペランドアドレスOAの下位2ビットU1が指定す
る1ワードのみが選択され、しかも、選択された1ワー
ドが4ワードに並列化されて、第2スイッチ群22を介
してデータバス62へ送られる。
【0120】ステップS94における第1および第2ス
イッチ群23,22の動作は、図56〜図59に示され
る。図56〜図59では、長円で囲まれたスイッチのみ
がオンしており、その他はオフしている。以上のステッ
プS91の処理は、1サイクルで実行可能である。
【0121】発明の実施の形態5のデータ処理装置で
は、FIRフィルタに相当する処理を実現する場合に、
係数Xと係数Cを、図60が示すように、データメモリ
4,5のメモリ空間に配置することができる。実施の形
態1では、図28が示すように、係数CはデータXとは
異なり、4つの同一の値を格納する必要があった。これ
に対して、実施の形態5のデータ処理装置では、単一ワ
ード並列ロード命令を用いることにより、任意の1ワー
ドを4つ並べて読み出すことができるため、図60が示
すように、データメモリ5に格納される係数Cは、各々
一つで足りる。すなわち、実施の形態1のデータ処理装
置でFIRを実現する場合に比べて、データメモリ5の
メモリ容量が4分の1で足り、データメモリを節約する
ことが可能となる。
【0122】(6. 実施の形態6)実施の形態1のデー
タ処理装置では、バッファ制御部26は、オペランドア
ドレスOAに対して加算を行って、その加算の結果を、
同一サイクルの中でアドレスレジスタとの比較、およ
び、データメモリアドレスMAの生成に利用していた。
実施の形態1のデータ処理装置を、より高速で動作させ
る場合を想定すると、オペランドアドレス生成部8,9
からのオペランドアドレスOAの出力から、データメモ
リアドレスMAを生成し、データメモリ4,5からデー
タを読み出すまでの一連の処理が、1サイクルに収まら
なくなる可能性がある。
【0123】実施の形態6のデータ処理装置では、図6
1に整置用バッファ6の一部を示すように、バッファ制
御部210が、データメモリアドレスレジスタ211を
備えている。このデータメモリアドレスレジスタ211
は、アドレスレジスタ25が更新されるときに、同時
に、アドレスレジスタ25に書き込まれる値に1を加算
した値で更新される。それにより、データメモリアドレ
スレジスタ211は、常に、アドレスレジスタ25が保
持する値に1を加算した値を保持することになる。
【0124】実施の形態6では、データメモリアドレス
MAとして、データメモリアドレスレジスタ211に保
持される値と、オペランドアドレスOAの下位28ビッ
トMA1との、どちらかが選択されて出力される。この
ため、実施の形態1で必要とされた加算のための処理時
間が短縮される。
【0125】また、実施の形態6では、アドレスレジス
タ25が更新されると同時に、バッファ制御部210に
設けられる先行アドレスレジスタ212に、アドレスレ
ジスタ25に書き込まれるアドレス値から1を減算した
値が保持される。この減算を行うために、デクリメンタ
213が設けられている。先行アドレスレジスタ212
に保持される値は、実施の形態1で用いられたアドレス
レジスタ25が保持する値の下位28ビットMA3に代
えて、第2比較器262の一方入力へ入力される。第2
比較器262の他方入力には、実施の形態1で用いられ
たオペランドアドレスOAに1を加算した値に代えて、
オペランドアドレスOAそのものが入力される。これに
より、第2比較器262は、実施の形態1と同様の比較
結果を出力することができる。また、実施の形態1と比
べて、第2比較器262の比較結果を得るまでの時間
が、加算に要していた時間分だけ短縮される。実施の形
態6の整置用バッファ6は、図61の部分を除いて、実
施の形態1の整置用バッファ6を示す図2と同一に表さ
れる。
【0126】実施の形態6のバッファ制御部210は、
図15を図62で、図16を図63で、図18を図64
で置き換える以外は、実施の形態1のバッファ制御部2
6と同一の手順で動作する。図62の手順は、ステップ
S17で、データレジスタ24とアドレスレジスタ25
の値だけでなく、先行アドレスレジスタ212の値と、
データメモリアドレスレジスタ211の値も、更新され
る点(ステップS201)を除いて、図15の手順と同
一である。また、図63の手順は、ステップS19でデ
ータメモリアドレスレジスタ211の値がデータメモリ
アドレスMAとして出力される点(ステップS202)
を除いて、図16の手順と同一である。さらに、図64
の手順は、ステップS25で、データレジスタ24の値
とアドレスレジスタ25の値だけでなく、先行アドレス
レジスタ212の値、および、データメモリアドレスレ
ジスタ211の値も、更新される点(ステップS20
3)と、ステップS26で、データメモリアドレスレジ
スタ211の値がデータメモリアドレスMAとして出力
される点(ステップS204)を除いて、図18の手順
と同一である。
【0127】このように、データメモリアドレスMAの
算出および出力の制御に必要なアドレスの加算処理が、
1サイクル以前に行われるので、データメモリ4,5の
読み出しに要する時間を短縮することができる。
【0128】また、本実施の形態6に特徴的な構成は、
実施の形態3のデータ処理装置にも適用することが可能
である。この場合には、データメモリアドレスレジスタ
211に保持されるデータが、有効なデータレジスタ2
00,201の中で、より大きなアドレスを保持する側
のアドレス値に、1を加算した値となるように制御され
る。また、先行アドレスレジスタ212に保持されるデ
ータが、有効なデータレジスタ200,201の中で、
より小さなアドレスを保持する側のアドレス値から、1
を減算した値となるように制御される。それにより、実
施の形態1に適用された場合と同様に、データメモリ
4,5の読み出しに要する時間を短縮することができ
る。
【0129】(7. 変形例)実施の形態5では、単一ワ
ード並列ロード処理を実行する整置用バッファ6を示す
ブロック図として、実施の形態2の図2を例示したが、
図54のフローチャートにおいて、ステップS2のロー
ド処理を行う必要がなければ、整置用バッファ6の構成
を簡素化することができる。すなわち、図2において、
第1スイッチ群23、データレジスタ24、および、ア
ドレスレジスタ25は、削除可能となる。さらに、バッ
ファ制御部26は、オペランドアドレスOAにもとづい
て、データメモリアドレスMAを出力するだけでよく、
第1比較器261、第2比較器262、および、インク
リメンタ263は、削除可能となる。
【0130】
【発明の効果】第1の発明の装置では、指定された連続
するNワードのデータの中で、M個のレジスタのいずれ
にも保持されないデータ部分があれば、このデータ部分
を含むアドレスのNワードのデータが、データメモリか
ら読み出され、また、その際に、M個のレジスタの中に
非保持レジスタがあれば、データメモリから読み出され
たNワードのデータとそのアドレスとで、非保持レジス
タの値が更新される。
【0131】このため、指定された連続するNワードの
データが、データメモリに整置される整置データ、およ
び、整置されない非整置データのいずれであっても、ま
た、指定の順序が、ワードアドレスが増加する方向(ポ
ストインクリメント)および減少する方向(ポストデク
リメント)のいずれであっても、指定されるワードの更
新幅(インクリメントサイズまたはデクリメントサイ
ズ)が、レジスタの個数Mに応じた一定間隔の範囲内で
あれば、最初の指定を除いて、連続したNワードが格納
される1つ(整置データの場合)または2つ(非整置デ
ータの場合)のアドレスの少なくとも一つについては、
そのデータがM個のレジスタのいずれかに保持されてい
る。したがって、各指定ごとのデータメモリからのデー
タの読み出しは、最初の指定を除いて、高々1回で足り
る。
【0132】読み出されたデータは、M個のレジスタの
いずれかへと保持される場合があるが、選択部は、読み
出されたデータを直接に選択することができ、M個のレ
ジスタのいずれかに保持された後に、そのレジスタから
データを選択する必要がない。したがって、各指定ごと
に選択部から連続するNワードが出力されるまでに要す
る期間は、最初の指定を除いて、1クロックサイクルで
足りる。すでに掲げた特開平10-161927号公報は、単に
整置データのみをデータアクセスの対象とする技術を開
示するに過ぎず、整置データのアクセスの効率化を図る
ことは可能であっても、非整置データを含むデータのア
クセスの効率化という、上記した本願発明の効果は得ら
れない。
【0133】第2の発明の装置は、複数個のレジスタを
備えるので、プラスマイナス4ワード以内のワードの更
新幅に、幅広く対応することができる。また、更新幅が
プラス1ワードまたはマイナス1ワードであるときに
は、データメモリからの読み出しが、N回の指定ごとに
1回で足りるので、データメモリの消費電力を節減する
ことができる。
【0134】第3の発明の装置では、データメモリへの
データの書き込みが行われると、レジスタが無効化され
るので、データメモリの値とレジスタの値との間のコヒ
ーレンシが維持される。
【0135】第4の発明の装置では、データメモリへの
データの書き込みの際に、レジスタに保持されるデータ
が書き込みデータで更新されるので、データメモリの値
とレジスタの値との間のコヒーレンシが維持される。し
かも、レジスタが無効化されないので、ロード処理を再
開するときに、データメモリに対する最初のアクセスが
1回で足りる。
【0136】第5の発明の装置では、ロード処理と整置
データロード処理とを選択的に実行可能である。しか
も、整置データロード処理の中で、レジスタの値が更新
されないので、ロード処理を中断し、整置データロード
処理を実行した後に、ロード処理を再開したときに、デ
ータメモリに対する最初のアクセスが1回で足りる。
【0137】第6の発明の装置では、単一ワード並列ロ
ード処理が実行可能であるので、FIRフィルタを実現
する際に、乗算係数を格納するデータメモリの容量を1
/Nに低減することが可能である。
【0138】第7の発明の装置では、M個のレジスタの
いずれかのレジスタの値が更新されるときに、更新によ
って新たに保持されるアドレスに隣接するアドレスがあ
らかじめ算出され、別のレジスタへ保持されるので、デ
ータメモリからの次の読み出しの際に、別のレジスタに
保持されるアドレスを用いることができ、新たに、アド
レスを算出する必要がない。このため、読み出しに要す
る処理時間が短縮される。
【0139】第8の発明の装置は、複数種類の数値の間
での演算を実行可能であり、FIRフィルタへの利用に
適するという利点がある。
【0140】第9の発明の装置は、単一ワード並列ロー
ド処理が実行可能であるので、FIRフィルタを実現す
る際に、乗算係数を格納するデータメモリの容量を1/
Nに低減することが可能である。
【図面の簡単な説明】
【図1】 実施の形態1のデータ処理装置のブロック図
である。
【図2】 実施の形態1の整置用バッファのブロック図
である。
【図3】 実施の形態1のバッファ制御部の動作説明図
である。
【図4】 実施の形態1の整置用バッファの動作説明図
である。
【図5】 実施の形態1の整置用バッファの動作説明図
である。
【図6】 実施の形態1の整置用バッファの動作説明図
である。
【図7】 実施の形態1の整置用バッファの動作説明図
である。
【図8】 実施の形態1の整置用バッファの動作説明図
である。
【図9】 実施の形態1の整置用バッファの動作説明図
である。
【図10】 実施の形態1の整置用バッファの動作説明
図である。
【図11】 実施の形態1の整置用バッファの動作説明
図である。
【図12】 実施の形態1の整置用バッファの動作説明
図である。
【図13】 実施の形態1の整置用バッファの動作説明
図である。
【図14】 実施の形態1のバッファ制御部の手順を示
す流れ図である。
【図15】 実施の形態1のバッファ制御部の手順を示
す流れ図である。
【図16】 実施の形態1のバッファ制御部の手順を示
す流れ図である。
【図17】 実施の形態1のバッファ制御部の手順を示
す流れ図である。
【図18】 実施の形態1のバッファ制御部の手順を示
す流れ図である。
【図19】 実施の形態1のバッファ制御部の手順を示
す流れ図である。
【図20】 実施の形態1のデータ選択部の動作説明図
である。
【図21】 実施の形態1のデータ選択部の動作説明図
である。
【図22】 実施の形態1のデータ選択部の動作説明図
である。
【図23】 実施の形態1のデータ選択部の動作説明図
である。
【図24】 実施の形態1のデータ選択部の動作説明図
である。
【図25】 実施の形態1のデータ選択部の動作説明図
である。
【図26】 実施の形態1のデータ選択部の動作説明図
である。
【図27】 実施の形態1のデータ選択部の動作説明図
である。
【図28】 実施の形態1のデータメモリのデータに関
する説明図である。
【図29】 実施の形態2のバッファ制御部の手順を示
す流れ図である。
【図30】 実施の形態3の整置用バッファのブロック
図である。
【図31】 実施の形態3のバッファ制御部の動作説明
図である。
【図32】 実施の形態3のバッファ制御部の手順を示
す流れ図である。
【図33】 実施の形態3のバッファ制御部の手順を示
す流れ図である。
【図34】 実施の形態3のバッファ制御部の手順を示
す流れ図である。
【図35】 実施の形態3のバッファ制御部の手順を示
す流れ図である。
【図36】 実施の形態3のバッファ制御部の手順を示
す流れ図である。
【図37】 実施の形態3のバッファ制御部の手順を示
す流れ図である。
【図38】 実施の形態3のバッファ制御部の手順を示
す流れ図である。
【図39】 実施の形態3のバッファ制御部の手順を示
す流れ図である。
【図40】 実施の形態3のバッファ制御部の手順を示
す流れ図である。
【図41】 実施の形態3のデータ選択部の動作説明図
である。
【図42】 実施の形態3のデータ選択部の動作説明図
である。
【図43】 実施の形態3のデータ選択部の動作説明図
である。
【図44】 実施の形態3のデータ選択部の動作説明図
である。
【図45】 実施の形態3のデータ選択部の動作説明図
である。
【図46】 実施の形態3のデータ選択部の動作説明図
である。
【図47】 実施の形態3のデータ選択部の動作説明図
である。
【図48】 実施の形態3のバッファ制御部の動作説明
図である。
【図49】 実施の形態3のデータ選択部の動作説明図
である。
【図50】 実施の形態3のデータ選択部の動作説明図
である。
【図51】 実施の形態3のデータ選択部の動作説明図
である。
【図52】 実施の形態4のバッファ制御部の手順を示
す流れ図である。
【図53】 実施の形態4のバッファ制御部の手順を示
す流れ図である。
【図54】 実施の形態5のバッファ制御部の手順を示
す流れ図である。
【図55】 実施の形態5のバッファ制御部の手順を示
す流れ図である。
【図56】 実施の形態5のデータ選択部の動作説明図
である。
【図57】 実施の形態5のデータ選択部の動作説明図
である。
【図58】 実施の形態5のデータ選択部の動作説明図
である。
【図59】 実施の形態5のデータ選択部の動作説明図
である。
【図60】 実施の形態5のデータメモリのデータに関
する説明図である。
【図61】 実施の形態6の整置用バッファの部分ブロ
ック図である。
【図62】 実施の形態6のバッファ制御部の手順を示
す流れ図である。
【図63】 実施の形態6のバッファ制御部の手順を示
す流れ図である。
【図64】 実施の形態6のバッファ制御部の手順を示
す流れ図である。
【図65】 背景技術としてのデータ処理装置のブロッ
ク図である。
【図66】 背景技術のデータメモリのデータに関する
説明図である。
【図67】 背景技術による演算例を示す説明図であ
る。
【符号の説明】
1 制御部、3 命令メモリ、4,5 データメモリ、
6,7 整置用バッファ(バッファ)、8,9 オペラ
ンドアドレス生成部、22 第2スイッチ群(データ選
択部)、23 第1スイッチ群(データ選択部)、24
アドレスレジスタ(レジスタ)、25 データレジス
タ(レジスタ)、26,210 バッファ制御部、20
0 第1データレジスタ(第1レジスタ)、201 第
2データレジスタ(第2レジスタ)、202 第1アド
レスレジスタ(第1レジスタ)、203 第2アドレス
レジスタ(第2レジスタ)、211 データメモリアド
レスレジスタ、301 演算部、ID 命令、MA デ
ータメモリアドレス(アドレス)、OA オペランドア
ドレス。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 各アドレスごとにN(≧2)ワードのデ
    ータを格納可能なデータメモリと、 各々が前記アドレスの一つとNワードのデータとを保持
    可能なM(≧1)個のレジスタと、 ワード単位で指定される連続するNワードのデータを、
    前記M個のレジスタに保持されるデータと、前記データ
    メモリから読み出されたデータとの中から、選択して出
    力する選択部と、 前記連続するNワードのデータの中で、前記M個のレジ
    スタのいずれにも保持されないデータ部分があれば、当
    該データ部分を含むアドレスのNワードのデータを、前
    記データメモリから読み出すとともに、前記M個のレジ
    スタの中に、前記連続するNワードのどの部分をも保持
    しないレジスタである非保持レジスタがあれば、前記デ
    ータメモリから読み出したNワードのデータとそのアド
    レスとで、前記非保持レジスタの値を更新する制御部
    と、を備えるデータ処理装置。
  2. 【請求項2】 前記Mが2以上である、請求項1に記載
    のデータ処理装置。
  3. 【請求項3】 前記制御部は、書き込み指示に応答し
    て、前記データメモリの中の指定されたアドレスに、N
    ワードのデータを書き込むとともに、前記M個のレジス
    タのいずれをも、前記データメモリのいずれのアドレス
    およびデータをも保持しないレジスタと同等となるよう
    無効化する、請求項1または請求項2に記載のデータ処
    理装置。
  4. 【請求項4】 前記制御部は、書き込み指示に応答し
    て、前記データメモリの中の指定されたアドレスに、N
    ワードのデータを書き込むとともに、前記M個のレジス
    タの中に前記指定されたアドレスを保持するレジスタが
    あれば、当該レジスタが保持するNワードのデータを、
    前記データメモリに書き込まれる前記Nワードのデータ
    で更新する、請求項1または請求項2に記載のデータ処
    理装置。
  5. 【請求項5】 前記制御部は、整置データ読み出し指示
    に応答して、前記データメモリの中の指定されたアドレ
    スに記憶されるNワードのデータを読み出し、 前記選択部は、前記整置データ読み出し指示に応答し
    て、前記データメモリから読み出された前記Nワードの
    データを出力する、請求項1ないし請求項4のいずれか
    に記載のデータ処理装置。
  6. 【請求項6】 前記制御部は、単一ワード並列読み出し
    指示に応答して、指定されたワードが格納されるアドレ
    スのNワードのデータを前記データメモリから読み出
    し、 前記選択部は、前記単一ワード並列読み出し指示に応答
    して、前記データメモリから読み出された前記Nワード
    のデータの中から前記指定されたワードを、N個並列に
    出力する、請求項1ないし請求項5のいずれかに記載の
    データ処理装置。
  7. 【請求項7】 前記制御部は、別のレジスタを備え、前
    記M個のレジスタのいずれかのレジスタの値を更新する
    ときに、更新によって新たに保持されるアドレスに隣接
    するアドレスを算出し、前記別のレジスタへ保持する、
    請求項1ないし請求項6のいずれかに記載のデータ処理
    装置。
  8. 【請求項8】 前記データメモリ、前記M個のレジス
    タ、前記選択部、および、前記制御部の組を第1の組と
    して、同一に構成される第2の組をさらに備え、 前記第1の組に属する前記選択部が出力する前記Nワー
    ドのデータおよび前記第2の組に属する前記選択部が出
    力する前記Nワードのデータの双方のデータを用いて演
    算を実行する演算部を、さらに備える、請求項1ないし
    請求項7のいずれかに記載のデータ処理装置。
  9. 【請求項9】 各アドレスごとにN(≧2)ワードのデ
    ータを格納可能なデータメモリと、 指定されたワードが格納されるアドレスのNワードのデ
    ータを前記データメモリから読み出す制御部と、 読み出された前記Nワードのデータの中から前記指定さ
    れたワードを、N個並列に出力する選択部と、を備える
    データ処理装置。
JP2000040892A 2000-02-18 2000-02-18 データ処理装置 Pending JP2001229021A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000040892A JP2001229021A (ja) 2000-02-18 2000-02-18 データ処理装置
US09/767,901 US6553474B2 (en) 2000-02-18 2001-01-24 Data processor changing an alignment of loaded data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000040892A JP2001229021A (ja) 2000-02-18 2000-02-18 データ処理装置

Publications (1)

Publication Number Publication Date
JP2001229021A true JP2001229021A (ja) 2001-08-24

Family

ID=18564206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000040892A Pending JP2001229021A (ja) 2000-02-18 2000-02-18 データ処理装置

Country Status (2)

Country Link
US (1) US6553474B2 (ja)
JP (1) JP2001229021A (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6789179B2 (en) * 2001-06-29 2004-09-07 Broadcom Corporation Method and system for fast data access using a memory array
US6912173B2 (en) * 2001-06-29 2005-06-28 Broadcom Corporation Method and system for fast memory access
US20110087859A1 (en) * 2002-02-04 2011-04-14 Mimar Tibet System cycle loading and storing of misaligned vector elements in a simd processor
JP3958662B2 (ja) * 2002-09-25 2007-08-15 松下電器産業株式会社 プロセッサ
ITMI20041968A1 (it) * 2004-10-15 2005-01-15 Atmel Corp "metodo e sistema per la gestione dei bit di indirizzo durante le operazioni di programmazione bufferizzata in un dispositivo di memoria"
US20070050592A1 (en) * 2005-08-31 2007-03-01 Gschwind Michael K Method and apparatus for accessing misaligned data streams
US8156310B2 (en) * 2006-09-11 2012-04-10 International Business Machines Corporation Method and apparatus for data stream alignment support
US7783860B2 (en) * 2007-07-31 2010-08-24 International Business Machines Corporation Load misaligned vector with permute and mask insert
US20120246407A1 (en) * 2011-03-21 2012-09-27 Hasenplaugh William C Method and system to improve unaligned cache memory accesses
US8719519B2 (en) 2012-03-30 2014-05-06 Intel Corporation Split-word memory
US9870318B2 (en) * 2014-07-23 2018-01-16 Advanced Micro Devices, Inc. Technique to improve performance of memory copies and stores
US10372452B2 (en) * 2017-03-14 2019-08-06 Samsung Electronics Co., Ltd. Memory load to load fusing
WO2019055738A1 (en) * 2017-09-15 2019-03-21 MIPS Tech, LLC MEMORY ACCESS NOT ALIGNED

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2517154B2 (ja) 1990-05-11 1996-07-24 三菱電機株式会社 デ―タ処理装置
JPH07253965A (ja) * 1994-03-16 1995-10-03 Fujitsu Ltd 積和演算器
JPH10161927A (ja) 1996-12-04 1998-06-19 Oki Electric Ind Co Ltd ロードバッファ装置
US5961628A (en) * 1997-01-28 1999-10-05 Samsung Electronics Co., Ltd. Load and store unit for a vector processor
US5922066A (en) * 1997-02-24 1999-07-13 Samsung Electronics Co., Ltd. Multifunction data aligner in wide data width processor
US5933650A (en) * 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing

Also Published As

Publication number Publication date
US20010016898A1 (en) 2001-08-23
US6553474B2 (en) 2003-04-22

Similar Documents

Publication Publication Date Title
US4862407A (en) Digital signal processing apparatus
US5954811A (en) Digital signal processor architecture
JP2001229021A (ja) データ処理装置
JP2834292B2 (ja) データ・プロセッサ
JP2002073330A (ja) データ処理装置
US5335330A (en) Information processing apparatus with optimization programming
JPH05233271A (ja) データプロセッサ
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
EP1143333B1 (en) Microprocessor for supporting reduction of program codes in size
US20060095746A1 (en) Branch predictor, processor and branch prediction method
JPH0248732A (ja) 命令パイプライン方式のマイクロプロセッサ
KR20080013982A (ko) 마이크로프로세서에서 효율적인 mac 연산을 수행하기위한 장치 및 방법
JPH0581119A (ja) レジスタ間接モードを用いる汎用メモリ・アクセス方式
JPH10222367A (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
US20070180220A1 (en) Processor system
US6670895B2 (en) Method and apparatus for swapping the contents of address registers
JP2002229779A (ja) 情報処理装置
JPH0922379A (ja) マイクロコンピュータ
JP2821328B2 (ja) 並列計算機
JPH06139071A (ja) 並列計算機
JP2591325B2 (ja) 分岐制御装置
JPH05173778A (ja) データ処理装置
JP2629479B2 (ja) 情報処理装置
JPH0333951A (ja) マイクロコンピュータシステム
JP2696578B2 (ja) データ処理装置