JP2000148477A - アドレス計算方法およびその機構 - Google Patents

アドレス計算方法およびその機構

Info

Publication number
JP2000148477A
JP2000148477A JP10326748A JP32674898A JP2000148477A JP 2000148477 A JP2000148477 A JP 2000148477A JP 10326748 A JP10326748 A JP 10326748A JP 32674898 A JP32674898 A JP 32674898A JP 2000148477 A JP2000148477 A JP 2000148477A
Authority
JP
Japan
Prior art keywords
address
bit string
register
value
output
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
JP10326748A
Other languages
English (en)
Inventor
Toshiaki Inoue
俊明 井上
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP10326748A priority Critical patent/JP2000148477A/ja
Publication of JP2000148477A publication Critical patent/JP2000148477A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 汎用プロセッサを用いた不連続なアドレッシ
ングによる主記憶アクセスにおいて、コード量を増加さ
せないアドレス計算方法およびアドレス計算機構を提供
する。 【解決手段】 アドレス加算器102 とキャッシュ103 を
含み、主記憶アクセス命令によって指定された即値デー
タとベースレジスタの内容を、アドレス加算器102 で加
算して実効アドレスを生成する汎用プロセッサにおい
て、任意の値を設定可能なレジスタ202 と、前記即値を
データ入力、前記レジスタの出力を制御入力とするビッ
ト列操作回路201 と、前記ベースレジスタ値と前記ビッ
ト列操作回路201 の出力を入力とするアドレス加算器10
2 を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、汎用プロセッサの
主記憶アクセス方式に関するものである。
【0002】
【従来の技術】動画像処理や音声処理を扱う携帯機器を
低コストに実現するためには、機器に搭載されるCPU(汎
用プロセッサ) のみを用いて動画像や音声等のデータの
大部分を処理し、部品点数の増加を抑える必要がある。
近年の汎用プロセッサでは、演算処理を高速化するた
め、画像や音声に特有の処理( フィルタリング等) を高
速に実行する専用演算器を追加実装する等のハードウエ
アサポートを行っている。例えばIntel 社のMMX 技術で
は、通常の高精度な整数演算器だけでなく、画像処理専
用のSIMD演算器(16 ビット精度の4並列の加算器等) を
追加し、画素演算を行う場合には整数演算器を使用せず
にSIMD演算器を使用する。これによって整数演算器を用
いて画像処理を行う場合に比べて2 〜4 倍の高速化を実
現している。
【0003】この手法は、主記憶上で連続するアドレス
に配置されているデータに対する演算処理を高速に実行
するのに適しているといえる。
【0004】また、特開昭62−159272号公報に
は、「ベクトル命令処理装置」として、オペランドにス
カラデータを用いているベクトル命令に関して、スカラ
データ指示ビット、予めスカラデータを読み出す手段、
読み出されたスカラデータを保持するレジスタおよび保
持されたスカラデータを演算部に供給する手段を設ける
ことにより、スカラデータに対する重複読み出しを抑止
することを可能にし、リクエストの競合で生じる性能低
下やスカラデータが記憶装置から読み出されて演算部に
供給されるまでに生じる記憶装置のアクセス待ち時間に
よる性能低下を回避でき、高性能のベクトル処理装置が
得られることが開示されている。
【0005】
【発明が解決しようとする課題】通常、汎用プロセッサ
は、プロセッサ内部に実装された高速アクセス可能な小
容量のメモリ( レジスタファイル) に格納されたデータ
を用いて演算処理を行う。レジスタファイルに記憶しき
れないデータは外部のより低速な大容量のメモリ( 主記
憶) に格納しておき、必要に応じて主記憶アクセス命令
によってレジスタファイルとの間でデータ転送を行う、
ロードストアアーキテクチャが広く採用されている。
【0006】ところが、組み込み機器用の32ビットプロ
セッサのレジスタファイルの容量は高々32ビット×32ワ
ード(128バイト) 程度であり、動画像処理等で必要とさ
れる記憶容量( 例えばMPEG1 規格では1秒あたり2メガ
バイト程度) と比較して非常に少ない。従って画像デー
タ等の大量データを高速に演算処理する場合には、演算
命令以外にレジスタファイルと主記憶との間でデータ転
送を行うための主記憶アクセス命令数が増大し、結果的
にプログラムのコード量が増大するという問題がある。
【0007】このことを、画像処理や音声処理等で広く
用いられるFFT(Fast Fourier Transform) 処理を例に以
下に詳細に説明する。
【0008】図5は、従来の汎用プロセッサの主記憶ア
クセス機構であり、即値とベースレジスタ値をアドレス
加算器501 で加算して得られた実効アドレスを、キャッ
シュ502 に与える構成である。
【0009】また図6は8ポイントのFFT 処理のデータ
フローを示す。
【0010】画素データは、主記憶上の特定のベースア
ドレスから連続的に格納されているとし、そのベースア
ドレスからのオフセット値を{0,1,2,3,4,5,6,7} とす
る。即ち各画素データは、ベースアドレスにオフセット
を加算して得られたアドレスでアクセスされる。FFT 処
理とは、各画素データに対して凡例に示す内積演算( z
=x+c×y) を、矢印の流れに従って実行しながらFF
T 中間結果を計算し、3段のステージを経てFFT 処理の
最終結果を得る処理である( 浜田他、「信号処理の基礎
と応用」、日進出版、1986年4 月25日) 。
【0011】図5の構成を用いて、図6に示すFFT 処理
に必要な主記憶アクセスのためのアドレス計算を行う場
合、主記憶上のベースアドレスからのオフセット値{0,
1,2,3,4,5,6,7} に格納された8個のデータを、{0,4,2,
6,1,5,3,7} の順に読み出す必要がある。このような主
記憶アクセスを実現する場合、オフセット値が一定でな
いため、主記憶アクセス部分のプログラムをループ構造
で記述できない。
【0012】即ち即値としてそれぞれ{0,4,2,6,1,5,3,
7} を与えた8個の主記憶アクセス命令( ロード命令)
を連ねる必要があり、結果的に主記憶アクセス部のコー
ド量が増大するという問題がある。
【0013】また、ベクトル命令( ベクトルデータを一
命令でアクセスする機構) を備えていても、主記憶アド
レスの連続した領域に配置されたものはアクセス可能で
あるが、FFT 処理で必要とされる不連続なアドレスを効
率よく生成することができないという問題がある。
【0014】[発明の目的]本発明では、汎用プロセッ
サにおいてベクトル命令を備え、かつFFT 処理等で必要
となる不連続な主記憶アドレスを効率よくアクセスする
ためのアドレス生成機構を提供することを目的とする。
【0015】
【課題を解決するための手段及び作用】本発明のアドレ
ス計算方法は、汎用プロセッサの主記憶アクセス方式に
おいて、スカラデータをアクセスするための主記憶アク
セス命令に対応するアドレス計算機能と、ベクトルデー
タをアクセスするための主記憶アクセス命令に対応する
アドレス計算機能を備える。
【0016】本発明により、ベクトルデータを扱う場合
のアドレス計算をプログラム中に記述する必要が無くな
り、プログラムのコード量が削減可能になる。
【0017】また、本発明のアドレス計算方法は、主記
憶アクセス命令によって指定された即値データ、および
レジスタの内容を加算して実効アドレスを生成する、汎
用プロセッサのアドレス計算方式において、前記加算
は、前記即値データのビット列の順序を、ビット列操作
手段によって変更した値を加算する。
【0018】また、本発明のアドレス計算機構は、アド
レス加算器とキャッシュを含み、主記憶アクセス命令に
よって指定された即値データとベースレジスタの内容
を、アドレス加算器で加算して実効アドレスを生成する
汎用プロセッサにおいて、任意の値を設定可能なレジス
タと、前記即値をデータ入力、前記レジスタの出力を制
御入力とするビット列操作回路と、前記ベースレジスタ
値と前記ビット列操作回路の出力を入力とするアドレス
加算器からなる。
【0019】また、本発明のアドレス計算機構は、アド
レス加算器とキャッシュを含み、主記憶アクセス命令に
よって指定された即値データとベースレジスタの内容
を、アドレス加算器で加算して実効アドレスを生成する
汎用プロセッサにおいて、前記即値のビット列の一部を
制御入力とし、残りのビット列をデータ入力とするビッ
ト列操作回路と、前記即値または前記ビット列操作回路
の出力を入力とするセレクタと、前記ベースレジスタ値
と前記セレクタの出力を入力とするアドレス加算器から
なる。
【0020】以上の発明により、一定のオフセットを用
いて任意のアドレス順序で主記憶にあるデータをアクセ
ス可能になる。従ってループ構造で主記憶アクセス部分
を記述可能になるので、プログラムのコード量が削減可
能である。
【0021】
【発明の実施の形態】次に、図面を用いて本発明を詳細
に説明する。
【0022】図1は、本発明のアドレス計算方法を示す
ブロック図である。ビット列操作手段101 、アドレス加
算手段102 、およびキャッシュ103 で構成される。
【0023】本アドレス計算方法は、主記憶アクセス命
令に従って即値とベースレジスタ値をアドレス加算手段
102 で加算し、得られたアドレスを用いてキャッシュ10
3 をアクセスするものである。
【0024】また、本発明のアドレス計算方法は、汎用
プロセッサの主記憶アクセス方式において、スカラデー
タをアクセスするための主記憶アクセス命令に対応する
アドレス計算機能と、ベクトルデータをアクセスするた
めの主記憶アクセス命令に対応するアドレス計算機能と
を備えることを特徴とするアドレス計算方法であり、キ
ャッシュに格納されたデータをスカラデータと見なして
1回の命令の実行により1個のデータをアクセスする場
合と、ベクトルデータと見なして1回の命令の実行によ
り複数のデータをアクセスする場合があり、両者の機能
に対応して異なる主記憶アクセス命令が用意され、図に
はない命令デコード手段により区別されるものである。
【0025】ビット列操作手段101 は、入力として主記
憶アクセス命令に含まれる即値データが与えられると、
制御信号の値に応じてビット列の順序を変更する機能を
持つ。例えば8ポイントのFFT 処理を行う場合は、3ビ
ットのビット列{x2,x1,x0}を{x0,x1,x2}に変更する機能
を与える。制御信号は、例えば主記憶アクセス命令のデ
コードによって生成される信号を用いればよい。アドレ
ス加算手段102 は、ビット列操作手段101 によって変換
された即値と、ベースレジスタ値を加算して実効アドレ
スを生成し、キャッシュ103 に供給する。
【0026】[第1の実施例]図2は、本発明のアドレ
ス計算機構の第1の実施例を示すブロック図である。ビ
ット列操作回路201 、切り替え設定レジスタ202 、アド
レス加算器203 、キャッシュ103 で構成される。切り替
え設定レジスタ202 に任意の切り替え設定値を与えてお
き、ビット列操作回路201 は、切り替えレジスタ202 の
設定値に応じた変換規則に従って、主記憶アクセス命令
で与えられる即値のビット列順序を変換して、アドレス
加算器203 に出力する。アドレス加算器203 は、ビット
列操作回路201 の出力と、ベースレジスタ値を加算して
実効アドレスを生成し、キャッシュに出力する。
【0027】[第2の実施例]図3は、本発明のアドレ
ス計算機構の第2の実施例を示す図である。ビット列操
作回路301 、セレクタ302 、アドレス加算器102 、キャ
ッシュ103 で構成される。主記憶アクセス命令で与えら
れる5ビットの即値のうちの2ビットを、ビット列操作
回路301 の制御入力として用いることで、即値の残りの
3ビットのデータ入力の順序を4通りに変換したものを
セレクタ302 に出力する。
【0028】セレクタ302 は、ビット列変換回路301 に
より変換された即値ともとの即値のいずれかを選択信号
に従って選択し、アドレス加算器102 に出力する。アド
レス加算器302 は、セレクタ302 の出力とベースレジス
タ値を加算して実効アドレスを生成し、キャッシュ103
に出力する。ここでセレクタ302 に与える選択信号は、
例えば主記憶アクセス命令のデコード信号を与えれば良
い。
【0029】図4は、本発明のビット列変換回路、およ
び対応する変換機能の一実施例を示す図である。3ビッ
トの即値はセレクタ401 によってビット順序が変換され
て出力される。ビット順序を変換するか否かはセレクタ
401 に与えられる1ビットの制御信号によって制御され
る。即ち制御信号が0の時は入力された3ビットの即値
の順序を変更せずに出力され、1の時は変更して出力さ
れる。この変換機能は、FFT 処理の主記憶アクセス方法
であるビットリバースアドレッシングを実現し、即値と
して{0,1,2,3,4,5,6,7} を順に与えると、それに対応し
て{0,4,2,6,1,5,3,7} を順に出力する。
【0030】以上、本発明のビット列変換手段において
は、変換の種類およびビット長を特に指定しないので、
いかなる変換方法および変換ビット長も本発明のビット
列変換手段および本発明のビット列変換回路の一部であ
ることは明白である。
【0031】
【発明の効果】本発明のアドレス計算方法およびアドレ
ス計算機構を適用することにより、従来の汎用プロセッ
サではコード量が増加し、非効率であった不連続なアド
レス順序での主記憶アクセスを効率よく行なうことがで
きる。
【0032】例えば、主記憶に格納された大量の画像デ
ータに対してFFT 処理を施す場合、本発明のアドレス計
算機構を適用することにより、主記憶アドレスのオフセ
ット値の変化をアドレス1ずつ単純増加するループ構造
で表現できるため、8ポイントのFFT 処理で約1/8 、16
ポイントのFFT 処理で約1/16の主記憶アクセス命令で実
現可能である。従ってプログラム全体の命令数が削減さ
れ、主記憶に格納するプログラムの容量を節約すること
が可能である。
【0033】また、プログラム中にループ構造を多く利
用できる結果として、汎用プロセッサに内蔵する命令キ
ャッシュのヒット率をより小容量の命令キャッシュでも
維持可能である( 命令キャッシュの容量を削減可能であ
る) 。
【0034】結果としてメモリ容量削減による、システ
ムのコストや消費電力の削減に効果的である。
【図面の簡単な説明】
【図1】本発明のアドレス計算手段を示すブロック図で
ある。
【図2】本発明のアドレス計算機構の第1の実施例を示
すブロック図である。
【図3】本発明のアドレス計算機構の第2の実施例を示
すブロック図である。
【図4】本発明のビット列操作回路の実施例であるFFT
のアドレス計算機能を説明する図である。
【図5】従来のアドレス計算機構を示す図である。
【図6】8ポイントのFFT 処理を説明するための図であ
る。
【符号の説明】
101 ・・・ビット列操作手段 102 ・・・アドレス加算手段 103 ・・・キャッシュ 201 、301 ・・・ビット列操作回路 202 ・・・切り替え設定レジスタ 203 ・・・アドレス加算回路 302 、401 ・・・セレクタ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 汎用プロセッサの主記憶アクセス方式に
    おいて、 スカラデータをアクセスするための主記憶アクセス命令
    に対応するアドレス計算機能と、 ベクトルデータをアクセスするための主記憶アクセス命
    令に対応するアドレス計算機能と、を備えることを特徴
    とするアドレス計算方法。
  2. 【請求項2】 主記憶アクセス命令によって指定された
    即値データ、およびレジスタの内容を加算して実効アド
    レスを生成する、汎用プロセッサのアドレス計算方法に
    おいて、 前記加算は、前記即値データのビット列の順序を、ビッ
    ト列操作手段によって変更した値を加算することを特徴
    とするアドレス計算方法。
  3. 【請求項3】 切り替え設定レジスタに任意の切り替え
    設定値を与えておき、 ビット列操作手段により、前記切り替えレジスタの設定
    値に応じた変換規則に従って、主記憶アクセス命令で与
    えられる即値のビット列順序を変換して、アドレス加算
    器に出力し、 該アドレス加算器は、前記ビット列操作回路の出力と、
    ベースレジスタ値を加算して実効アドレスを生成し、キ
    ャッシュに出力する、ことを特徴とする請求項1又は2
    記載のアドレス計算方法。
  4. 【請求項4】 アドレス加算器とキャッシュを含み、主
    記憶アクセス命令によって指定された即値データとベー
    スレジスタの内容を、アドレス加算器で加算して実効ア
    ドレスを生成する汎用プロセッサにおいて、 任意の値を設定可能なレジスタと、 前記即値をデータ入力、前記レジスタの出力を制御入力
    とするビット列操作回路と、 前記ベースレジスタ値と前記ビット列操作回路の出力を
    入力とするアドレス加算器と、を含んで構成されること
    を特徴とするアドレス計算機構。
  5. 【請求項5】 アドレス加算器とキャッシュを含み、主
    記憶アクセス命令によって指定された即値データとベー
    スレジスタの内容を、アドレス加算器で加算して実効ア
    ドレスを生成する汎用プロセッサにおいて、 前記即値のビット列の一部を制御入力とし、残りのビッ
    ト列をデータ入力とするビット列操作回路と、 前記即値または前記ビット列操作回路の出力を入力とす
    るセレクタと、 前記ベースレジスタ値と前記セレクタの出力を入力とす
    るアドレス加算器と、からなることを特徴とするアドレ
    ス計算機構。
  6. 【請求項6】 任意の切り替え設定値を与えておくため
    の切り替え設定レジスタと、 前記切り替え設定レジスタの設定値に応じた変換規則に
    従って、主記憶アクセス命令で与えられる即値のビット
    列順序を変換して、アドレス加算器に出力するビット列
    操作回路と、 前記ビット列操作回路の出力と、ベースレジスタ値を加
    算して実効アドレスを生成し、キャッシュに出力する、
    アドレス加算器と、を有することを特徴とする請求項4
    又は5記載のアドレス計算機構。
JP10326748A 1998-11-17 1998-11-17 アドレス計算方法およびその機構 Pending JP2000148477A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10326748A JP2000148477A (ja) 1998-11-17 1998-11-17 アドレス計算方法およびその機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10326748A JP2000148477A (ja) 1998-11-17 1998-11-17 アドレス計算方法およびその機構

Publications (1)

Publication Number Publication Date
JP2000148477A true JP2000148477A (ja) 2000-05-30

Family

ID=18191250

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10326748A Pending JP2000148477A (ja) 1998-11-17 1998-11-17 アドレス計算方法およびその機構

Country Status (1)

Country Link
JP (1) JP2000148477A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009251998A (ja) * 2008-04-08 2009-10-29 Renesas Technology Corp データプロセッサ
JP2012185553A (ja) * 2011-03-03 2012-09-27 Nec Corp 情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009251998A (ja) * 2008-04-08 2009-10-29 Renesas Technology Corp データプロセッサ
JP2012185553A (ja) * 2011-03-03 2012-09-27 Nec Corp 情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法
US8806132B2 (en) 2011-03-03 2014-08-12 Nec Corporation Information processing device, memory access control device, and address generation method thereof

Similar Documents

Publication Publication Date Title
US20210089303A1 (en) Computer processor for higher precision computations using a mixed-precision decomposition of operations
US20240070226A1 (en) Accelerator for sparse-dense matrix multiplication
CN108292222B (zh) 用于数据解压缩的硬件装置和方法
JP4277042B2 (ja) 演算処理装置
US7617382B1 (en) Method and apparatus for decompressing relative addresses
JPH11154114A (ja) 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法
US6647484B1 (en) Transpose address mode in general purpose DSP processor
US6263420B1 (en) Digital signal processor particularly suited for decoding digital audio
EP3547115B1 (en) Efficient implementation of complex vector fused multiply add and complex vector multiply
US11416248B2 (en) Method and system for efficient floating-point compression
US20020053015A1 (en) Digital signal processor particularly suited for decoding digital audio
US4620274A (en) Data available indicator for an exhausted operand string
JPH0984004A (ja) 画像処理装置
JPH1049369A (ja) データ処理装置
US4598359A (en) Apparatus for forward or reverse reading of multiple variable length operands
US4611278A (en) Wraparound buffer for repetitive decimal numeric operations
US4608633A (en) Method for decreasing execution time of numeric instructions
US4691282A (en) 16-bit microprocessor system
JP2556182B2 (ja) デ−タ処理装置
EP4278256B1 (en) Parallel decode instruction set computer architecture with variable-length instructions
JP2806346B2 (ja) 演算処理装置
JP2000148477A (ja) アドレス計算方法およびその機構
JPWO2010067522A1 (ja) 演算ユニット、プロセッサ及び並列演算方法
EP3757822A1 (en) Apparatuses, methods, and systems for enhanced matrix multiplier architecture
JPH0744354A (ja) 信号処理プロセッサ