JP2000122919A - プロセッサ及びメモリ制御方法 - Google Patents

プロセッサ及びメモリ制御方法

Info

Publication number
JP2000122919A
JP2000122919A JP10290144A JP29014498A JP2000122919A JP 2000122919 A JP2000122919 A JP 2000122919A JP 10290144 A JP10290144 A JP 10290144A JP 29014498 A JP29014498 A JP 29014498A JP 2000122919 A JP2000122919 A JP 2000122919A
Authority
JP
Japan
Prior art keywords
address
rectangular area
memory
register
row
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
JP10290144A
Other languages
English (en)
Inventor
Hirotomo Nakajima
宏知 中嶋
Atsushi Mori
篤史 毛利
Akira Yamada
朗 山田
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 JP10290144A priority Critical patent/JP2000122919A/ja
Priority to US09/208,476 priority patent/US6314505B1/en
Priority to GB9828199A priority patent/GB2343027B/en
Priority to KR1019990002409A priority patent/KR20000028546A/ko
Publication of JP2000122919A publication Critical patent/JP2000122919A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Static Random-Access Memory (AREA)
  • Microcomputers (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 アドレス管理を煩雑にすることなく、矩形領
域のメモリアクセスし、メモリを有効利用できるように
する。 【解決手段】 行と列からなる二次元の領域のメモリを
有する記憶装置に接続され、メモリ上の任意の矩形領域
の先頭アドレスと、最終アドレスと、1行あたりの列数
とを記憶するレジスタ群と、上記レジスタ群を用いて、
矩形領域をアクセスするためのアドレスを生成し、出力
するアドレス生成制御部と、上記矩形領域を繰り返しア
クセスすることができるアドレスを生成するモジュロア
ドレッシング制御部と、上記矩形領域を繰り返しアクセ
スするか否かを判断する矩形循環モード情報とを備え、
上記矩形循環モード情報の値により、上記矩形領域を繰
り返し循環的にアクセスすることを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリにアクセス
する主体であるリクエストマスタと、リクエストマスタ
のメモリへのアクセス要求を調停し、メモリへのアクセ
スを制御するメモリ制御部とを内蔵したプロセッサに関
するものである。
【0002】
【従来の技術】図16は、プロセッサとメモリからなる
システムにおいて、従来のメモリの使用方法を最も単純
な形で表した図である。図16において、プロセッサ1
pは、プロセッサ内部のデータバスの主体となるリクエ
ストマスタ4pと、リクエストマスタ4pからの要求を
調停してメモリ2へのアクセスを制御するメモリ制御部
3pとから構成されている。また、リクエストマスタ4
pには、指定メモリ領域を循環的にアクセスするための
モジュロアドレッシング制御部6pを備えている。
【0003】次に、図16を用いて、メモリ2へアクセ
スする場合の、従来のメモリアクセスの動作について説
明する。まず、リクエストマスタ4pは、メモリ制御部
3pに対し、外部にあるメモリ2へのメモリアクセス要
求を出力する。通常、リクエストマスタ4pは、複数存
在し、1以上のリクエストマスタ4pから同時に要求さ
れる。メモリ制御部3pは、上記複数のメモリアクセス
要求を調停し、いずれか1つの要求を選択して、外部に
あるメモリ2に対してアクセスを開始する。上記のよう
に、メモリ2へのアクセスはメモリ制御部3pを介して
行われる。メモリ制御部3pは、リクエストマスタ部4
pから受け取った先頭アドレスと最終アドレスを指定し
て、メモリアクセスを行う。
【0004】上記のようなメモリアクセスでは、メモリ
2の使用領域は、先頭アドレスと最終アドレスを指定し
て行うのみであるので、使用領域は、図16のメモリ2
において網掛けを行った領域400となる。また、モジ
ュロアドレッシング制御部6pが有効に作用する場合に
は、メモリアクセスは、上記領域400を、循環的に複
数回アクセスすることとなる。
【0005】しかしながら、近年注目されてきているメ
ディアプロセッサのように、画像の圧縮伸張処理や音声
処理、モデム処理などを効率よく実行できるようにチュ
ーニングされたマルチメディア処理専用のDSP(Di
gital SignalProcessor)におい
ては、MPEG2(Moving PictureEx
perts Group phase 2)などの動画
を扱うことが多い。動画を扱う場合には、図13の30
4に示すように、矩形に使用領域を設定できる方が都合
良い。ビデオ画面のようなデータでは、出力に必要な1
フレーム単位の720×480画素のアクセスをする。
また、圧縮伸長処理では、8×8のブロック単位でアク
セスすることが必要となる。このため、矩形に使用領域
を設定できると都合がよいことになる。さらに、メディ
アプロセッサに内蔵されているプロセッサ・コアは、R
ISC(Reduced InstructionSe
t Computer)アーキテクチャのものがほとん
どであり、矩形領域をアクセスするためのアドレッシン
グモードを備えたものはない。一方、矩形領域をアクセ
スするためのアドレッシングモードを備え、かつ、CI
SC(Complexed Instruction
Set Computer)アーキテクチャのプロセッ
サは、処理能力が充分でないため、MPEG2のリアル
タイムデコード処理のような高性能処理は実行できな
い。
【0006】
【発明が解決しようとする課題】メモリアクセスをする
場合、従来から存在する、先頭アドレスと最終アドレス
によって使用領域を指定する領域指定方法では、図13
の304に示すような矩形領域を指定することができな
い。従って、メモリアクセスの結果として、図17に示
すような使用領域をとることになる。図17において、
ハッチングを施した使用領域401、使用領域402、
使用領域403、使用領域404は、個別に使用された
領域であり、使用領域403は、以前、使用領域402
と使用領域404との両方に接した領域として使用され
ていた領域を、後から再利用した領域である。上記領域
指定方法においては、使用領域403の大きさによって
は図のように使用領域404との間に小さな不使用領域
405が発生するなど、メモリを有効に利用できないと
いう問題点があった。また、矩形領域を指定する場合
は、図18に示すように複数の短冊状の使用領域408
の集合体として指定することも考えられる。しかし、短
冊状の使用領域を指定するには、先頭アドレス406と
最終アドレス407が必要である。さらに、複数の短冊
状の使用領域408の集合体として使用矩形領域409
全体を表さなければならないため、使用領域の管理が複
雑になるという問題点があった。
【0007】この発明は、上述のような課題を解決する
ためになされたもので、メモリを効率的に利用するため
のメモリ制御方法を持つプロセッサを得るものである。
また、この発明は、メモリを矩形領域にアクセスするプ
ロセッサをであることを特徴とする。
【0008】
【課題を解決するための手段】この発明に係るプロセッ
サは、行と列からなる二次元の領域のメモリを有する記
憶装置に接続され、メモリ上の任意のアドレスを保持す
るレジスタ群と、上記レジスタ群で保持されたアドレス
を用いて、メモリ上の任意の行及び列より形成される矩
形領域をアクセスするためのアドレスを生成し、出力す
るアドレス生成制御部とを備えた。
【0009】上記レジスタ群は、少なくとも上記矩形領
域の先頭アドレスと上記矩形領域の最終アドレスと上記
矩形領域の1行あたりのデータ量とを保持するレジスタ
を備え、上記アドレス生成制御部は、上記矩形領域の先
頭アドレスと、上記矩形領域の最終アドレスと、上記1
行あたりのデータ量とから指定される矩形領域をアクセ
スするアドレスを生成することを特徴とする。
【0010】上記レジスタ群は、少なくとも上記矩形領
域の先頭アドレスと、上記矩形領域の1行あたりのデー
タ量と、上記矩形領域の行数とを保持するレジスタを備
え、上記アドレス生成制御部は、上記矩形領域の先頭ア
ドレスと、上記1行あたりのデータ量と、上記矩形領域
の行数とから指定される矩形領域をアクセスするアドレ
スを生成することを特徴とする。
【0011】上記アドレス生成制御部は、上記矩形領域
を繰り返しアクセスすることができるアドレスを生成す
るモジュロアドレッシング制御部を備えたことを特徴と
する。
【0012】上記レジスタ群は、上記矩形領域を繰り返
しアクセスするか否かを判断する矩形循環モード情報を
記憶し、上記モジュロアドレッシング制御部は、矩形循
環モード情報の値に依存して上記矩形領域を繰り返しア
クセスをするか否かを判断することを特徴とする。
【0013】上記アドレス生成制御部は、上記矩形領域
の先頭アドレスに1回のデータ転送量を加算することに
よって次にアクセスするアドレスを生成し、上記生成し
たアドレスと、上記矩形領域の先頭アドレス及び上記1
行あたりのデータ量とから生成したアクセスしている行
の列最終アドレスとを比較し、上記生成したアドレス
が、アクセスしている行の列最終アドレスを超えた場合
には、次の行の先頭アドレスを生成し、上記次の行の先
頭アドレスに1回のデータ転送量を加算することによ
り、次にアクセスするアドレスを生成するアドレスの生
成を繰り返すことにより、上記矩形領域をアクセスし、
生成したアドレスが、上記矩形領域の最終アドレスを超
えた場合に、矩形領域のアクセスが終了したことを検出
することを特徴とする。
【0014】上記モジュロアドレッシング制御部は、矩
形循環モード情報の値が、上記矩形領域を繰り返しアク
セスすることを指示している場合であって、上記生成し
たアドレスが上記矩形領域の最終アドレスを超えた場合
に、次にアクセスするアドレスを、上記矩形領域の先頭
アドレスに指定することを特徴とする。
【0015】上記アドレス生成制御部は、上記矩形領域
の先頭アドレスに1回のデータ転送量を加算することに
よって次にアクセスするアドレスを生成し、上記生成し
たアドレスと、上記先頭アドレス及び上記1行あたりの
データ量とから生成したアクセスしている行の列最終ア
ドレスとを比較し、上記生成したアドレスが、アクセス
している行の列最終アドレスを超えた場合には、次の行
の先頭アドレスを生成し、上記次の行の先頭アドレスに
1回のデータ転送量を加算することにより、次にアクセ
スするアドレスを生成するアドレスの生成を繰り返すこ
とにより、上記矩形領域をアクセスし、生成したアドレ
スが、上記矩形領域の行数を超えた場合に、矩形領域の
アクセスが終了したことを検出することを特徴とする。
【0016】この発明に係るメモリ制御方法は、行と列
からなる二次元の領域のメモリを有する記憶装置のメモ
リ制御方法において、メモリ上の任意のアドレスを保持
する保持工程と、上記保持工程で保持されたアドレスを
用いて、メモリ上の任意の行及び列より形成される矩形
領域をアクセスするためのアドレスを生成し、出力する
アドレス生成制御工程と、上記アドレス生成制御工程が
生成したアドレスへのメモリアクセス要求を制御するメ
モリ制御工程とを備えたことを特徴とする。
【0017】
【発明の実施の形態】実施の形態1.図1は、この発明
の一例である実施の形態のプロセッサ1とメモリ2との
関係を表した図である。この実施の形態では、プロセッ
サ1とメモリ2とから構成される。メモリ2は、データ
が置かれるメモリである。プロセッサ1は、メモリ制御
部3と、リクエストマスタ部4と、プロセッサ・コア5
と、データRAM(Random Access Me
mory)7と、命令RAM8とを備えている。また、
プロセッサ・コア5は、アドレス生成制御部10を備え
ており、アドレス生成制御部10は、モジュロアドレッ
シング制御部6とレジスタ群9、11とを備えている。
メモリ制御部3は、リクエストマスタ部4のメモリへの
アクセス要求を調停し、プロセッサとメモリとのデータ
のやりとりを仲介する。リクエストマスタ部4は、プロ
セッサ内部のデータバスの主体となるリクエストマスタ
41から45の集合である。プロセッサ・コア5は、プ
ロセッサ内部の制御を司る。アドレス生成制御部10
は、メモリ上の任意の行及び列より形成される矩形領域
をアクセスするためのアドレスを生成し、出力する。モ
ジュロアドレッシング制御部6は、指定領域を繰り返し
アクセスすることを可能にする。データRAM7は、内
部でのデータの一時保存場所である。命令RAM8は、
命令の一時保存場所である。この実施の形態では、レジ
スタ群9は、制御レジスタの一部である。制御レジスタ
については、後述する。レジスタ群11は、その他の必
要なレジスタである。尚、上記レジスタ群は、プロセッ
サにより、保持する位置が異なっていても構わない。こ
の実施の形態では、プロセッサ1内のメモリアクセスで
あるプロセッサ・コア5からデータRAM7へのメモリ
アクセスを説明する。
【0018】次に、実施の形態1で用いるプロセッサの
一例について、以下に、アーキテクチャを説明する。実
施の形態1のプロセッサは、モジュロアドレッシングを
行う、ポストインクリメント/デクリメントに矩形領域
のアクセス機能を持たせたものである。図2にプロセッ
サ1の命令フォーマットを示す。プロセッサ1の命令フ
ォーマットには、1つの命令で2つの演算を指示する2
演算命令のフォーマット101と、1つの命令で1つの
演算を指示する1演算命令のフォーマット102とがあ
る。2演算命令のフォーマット101には、フィールド
103とフィールド104からなるフォーマットフィー
ルド、2つの演算フィールド106、107及び各演算
フィールドに1つずつ付属する実行条件フィールド10
5がある。1演算命令のフォーマット102には、フィ
ールド103とフィールド104からなるフォーマット
フィールド、フィールド108とフィールド109とフ
ィールド110とからなる演算フィールド及びこの演算
フィールドに付属する実行条件フィールド105があ
る。
【0019】図3は、フィールド103とフィールド1
04からなるフォーマットフィールドの詳細図を示す。
まず、図3に示すFMのコードの値を説明する。フィー
ルド103の値をFM0とし、フィールド104の値を
FM1とする。FM=XYとは、Xの値がFM0の値で
あり、Yの値がFM1の値であることを意味する。具体
的には、FM=10とは、FM0=1、FM1=0とい
うことである。次に、FMのコードの意味を説明する。
FM=00の場合、この命令は2演算命令であり、演算
フィールド106で指示されたOperation_0
の演算と演算フィールド107で指示されたOpera
tion_1の演算がデコード直後のクロックサイクル
で並列に実行される。FM=01の場合、この命令は2
演算命令であり、演算フィールド106で指示されたO
peration_0の演算がデコード直後のクロック
サイクルに実行され、演算フィールド107で指示され
たOperation_1の演算がOperation
_0の演算に対して1クロックサイクル遅れて実行され
る。FM=10の場合、この命令は2演算命令であり、
演算フィールド107で指示されたOperation
_1の演算がデコード直後のクロックサイクルに実行さ
れ、演算フィールド106で指示されたOperati
on_0の演算がOperation_1の演算に対し
て1クロックサイクル遅れて実行される。FM=11の
場合、この命令は1演算命令であり、108と109と
110からなる演算フィールドで指示された1つの演算
がデコード直後のクロックサイクルに実行される。
【0020】図4は、実行条件フィールド105の詳細
を示す。実行条件フィールド105は、後述する図8の
プロセッサ状態語のフラグF0及びフラグF1の値に依
存して、演算フィールド106、107、または、演算
フィールド108と109と110で示された演算が有
効であるか無効であるかを定める。演算が有効であると
は、演算結果がレジスタ、メモリ、フラグに反映され、
その演算により定義された動作結果が残ることを意味す
る。演算が無効であるとは、演算結果がレジスタ、メモ
リ、フラグに反映されず、定められた演算の種類には関
わらずその演算により無効演算(NOP: no Op
eration)と同じ結果がレジスタやフラグに残る
ことを意味する。以下、実行条件フィールド105の値
をCCで表わす。CC=000の場合、演算は、F0、
F1の値に関わらず常に有効である。CC=001の場
合、演算は、F1の値に関わらずF0=真のときのみ有
効である。CC=010の場合、演算は、F1の値に関
わらずF0=偽のときのみ有効である。CC=011の
場合、演算は、F0の値に関わらずF1=真のときのみ
有効である。CC=100の場合、演算は、F0の値に
関わらずF1=偽のときのみ有効である。CC=101
の場合、演算は、F0=真かつF1=真のときのみ有効
である。CC=110の場合、演算は、F0=真かつF
1=偽のときのみ有効である。CC=111の場合の動
作は未定義であり、この値が命令で用いられることはな
い。
【0021】図5は、28ビット長で表現される短型の
演算フィールド(図2の106、107)と54ビット
長で表現される長型の演算フィールド(図2の108、
109、110で構成)の詳細を示す。短型の演算フィ
ールドには、7つのフォーマット111、112、11
3、114、115、116、117がある。長型の演
算フィールドには、2つのフォーマット118、119
がある。フォーマット111は演算内容を指定するフィ
ールド120、レジスタの番号を指定する2つのフィー
ルド121、122、レジスタ番号または6ビット長の
即値を指定するフィールド123、フィールド123が
レジスタ番号を示すか即値を示すかを指定するフィール
ド124から構成される。フォーマット111はレジス
タ間接アドレッシングのメモリアクセス演算に使用され
る。フォーマット112は、演算内容を指定するフィー
ルド120、レジスタの番号を指定する2つのフィール
ド121、122、レジスタ番号または6ビット長の即
値を指定するフィールド123、フィールド123がレ
ジスタ番号を示すか即値を示すかを指定するフィールド
125から構成される。フォーマット112は算術演
算、論理演算、シフト演算、ビット演算に使用される。
フォーマット113は、演算内容を指定するフィールド
120、レジスタの番号を指定するフィールド126か
ら構成される。フォーマット113はレジスタ指定によ
るジャンプ、分岐命令に使用される。フォーマット11
4は、演算内容を指定するフィールド120、18ビッ
ト長のディスプレイスメントのフィールド127から構
成される。フォーマット114はジャンプ、分岐命令に
使用される。フォーマット115は、演算内容を指定す
るフィールド120、レジスタの番号を指定するフィー
ルド121、レジスタ番号または12ビット長の即値を
指定するフィールド128、フィールド128がレジス
タ番号を示すか即値を示すかを指定するフィールド12
9、フィールド121がゼロ判定による条件ジャンプお
よび条件分岐を行うか否かを指定するフィールド130
から構成される。フォーマット115は条件ジャンプ、
条件分岐命令に使用される。フォーマット116は、演
算内容を指定するフィールド120、レジスタの番号を
指定するフィールド121、レジスタ番号または12ビ
ット長の即値を指定するフィールド128、フィールド
128がレジスタ番号を示すか即値を示すかを指定する
フィールド129から構成される。フォーマット116
は条件ジャンプ、条件分岐命令、リピート命令に使用さ
れる。フォーマット117は、演算内容を指定するフィ
ールド120、レジスタ番号または12ビット長の即値
を指定するフィールド128、フィールド128がレジ
スタ番号を示すか即値を示すかを指定するフィールド1
29、ディレイド命令のディレイ値を指定するフィール
ド131から構成される。フォーマット117はディレ
イドジャンプ、ディレイド分岐命令に使用される。フォ
ーマット118は、演算内容を指定するフィールド12
0、レジスタの番号を指定する2つのフィールド12
1、122、32ビット長の即値を指定するフィールド
132から構成される。フォーマット118は複雑な算
術演算、大きな即値を用いる算術演算、大きなディスプ
レースメント付きレジスタ間接アドレッシングのメモリ
アクセス演算や大きな分岐変位の分岐演算、絶対番地へ
のジャンプ演算などがある。フォーマット119は、演
算内容を指定するフィールド120、レジスタの番号を
指定する2つのフィールド121、122、32ビット
長の即値を指定するフィールド132、フィールド13
2がゼロ判定による条件ジャンプおよび条件分岐を行う
か否かを指定するフィールド133から構成される。フ
ォーマット119は大きな分岐変位をもつ条件ジャン
プ、条件分岐命令に使用される。
【0022】図6及び図7は、プロセッサ1のレジスタ
構成を示す図である。プロセッサ1には64本の32ビ
ット長の汎用レジスタ5、18本の制御レジスタ15
0、および2本のアキュムレータ18がある。図6は、
汎用レジスタ5、アキュムレータ18を示す。図7は、
制御レジスタ150を示す。汎用レジスタ(R0)は常
に0(ゼロ)であり、書き込みは無視される。汎用レジ
スタ(R63)はスタックポインタであり、後述する図
8のプロセッサ状態語10のSMフィールドの値に依存
してユーザスタックポインタ(SPU)または割り込み
スタックポインタ(SPI)の値を選択し、動作する。
制御レジスタ150には、プログラムカウンタ151、
プロセッサ状態語や各種の専用レジスタが含まれる。図
5のフォーマット112の演算では64本の汎用レジス
タ5の各レジスタを上位16ビットと下位16ビットに
分けて別々にアクセスできる。また、図5のフォーマッ
ト112の演算では2本のアキュムレータ18は各アキ
ュムレータを上位32ビットと下位32ビットを別々に
アクセスできる。
【0023】図8は、図7のCR1に表わしているプロ
セッサ状態語の詳細を示す。プロセッサ状態語の上位1
6ビット170には、スタックポインタを切り替えるS
Mフィールド171、ソフトウェアデバッガトラップ
(SDBT)の検出を示すEAフィールド172、SD
BTの許可を指定するDBフィールド173、デバック
割り込み許可を指定するDSフィールド174、割り込
み許可を指定するIEフィールド175、リピート動作
の許可を指定するRPフィールド176、モジュロアド
レシングの許可を指定する循環モード情報であるMDフ
ィールド177、矩形領域を繰り返しアクセスするか否
かを判断する矩形循環モード情報、すなわち、矩形領域
のモジュロアドレッシングの許可を指定するRMDフィ
ールド178がある。下位16ビットはフラグフィール
ド180である。フラグフィールド180には8個のフ
ラグがある。フラグフィールド180のうちF0フラグ
181とF1フラグ182は、図4で説明したように演
算の有効無効を制御する。各フラグの値は、比較演算や
算術演算の結果に依存して変化するほか、フラグ初期化
演算で初期化したり、フラグ値書き込み演算で任意の値
をフラグフィールド180に書き込むことで変化する。
また、フラグ値読み出し演算でフラグフィールド180
の値を読み出すこともできる。
【0024】以下に、プロセッサ1の命令一覧を示す。 A. MCU function instructions A-1. Load/Store instructions LDB : Load one byte to a register with sign extens
ion LDBU : Load one byte to a register with zero exten
sion LDH : Load one half-word to a register with sign e
xtension LDHH : Load one half-word to a register high with
sign extension LDHU : Load one half-word to a register with zero
extension LDW : Load one word to a register LD2W : Load two words to registers LD4BH : Load four bytes to four half-word in two r
egisters with sign extension LD4BHU : Load four bytes to four half-word in two
registers with zeroextension LD2H : Load two half-word to two word in two regis
ters with sign extension STB : Store one byte from a register STH : Store one half-word from a register STHH : Store one half-word from a register high STW : Store one word from a register ST2W : Store two words from registers ST4HB : Store four bytes from four half-word from
two registers ST2H : Store two half-word from two registers MODDEC : Decrement a register value by a 5-bit imm
ediate value MODINC : Increment a register value by a 5-bit imm
ediate value
【0025】A-2. Transfer instructions MVFSYS : Move a control register to a generalpurpo
se register MVTSYS : Move a general purpose register to a cont
rol register MVFACC : Move a word from an accumulator MVTACC : Move two general purpose registers to an
accumulator
【0026】A-3. Compare instructions CMPcc : Compare cc = EQ, NE, GT, GE, LT, LE, PS(both positive),NG
(both negative) CMPUcc : Compare unsigned cc = GT, GE, LT, LE
【0027】A-4. Maximum/Minimum instructionsreser
ved
【0028】A-5. Arithmetic operation instructions ABS : Absolute ADD : Add ADDC : Add with carry ADDHppp : Add half-word ppp = LLL, LLH, LHL, LHH, HLL, HLH, HHL, HHH ADDS : Add register Rb with the sign of the third
operand ADDS2H : Add sign to two half-word ADD2H : Add two pairs of half-words AVG : Average with rounding towards positive infin
ity AVG2H : Average two pairs of half-words rounding t
owards positive infinity JOINpp : Join two half-words pp = LL, LH, HL, HH SUB : Subtract SUBB : Subtract with borrow SUBHppp : Subtract half-word ppp = LLL, LLH, LHL, LHH, HLL, HLH, HHL, HHH SUB2H : Subtract two pairs of half-words
【0029】A-6. Logical operation instructions AND : logical AND OR : logical OR NOT : logical NOT XOR : logical exclusive OR ANDFG : logical AND flags ORFG : logical OR flags NOTFG : logical NOT a flag XORFG : logical exclusive OR flags
【0030】A-7. Shift operation instructions SRA : Shift right arithmetic SRA2H : Shift right arithmetic two half-words SRC : shift right concatenated registers SRL : Shift right logical SRL2H : Shift right logical two half-words ROT : Rotate right ROT2H : Rotate right two half-words
【0031】A-8. Bit operation instructions BCLR : Clear a bit BNOT : Invert a bit BSET : Set a bit BTST : Test a bit
【0032】A-9. Branch instructions BRA : Branch BRATZR : Branch if zero BRATNZ : Branch if not zero BSR : Branch to subroutine BSRTZR : Branch to subroutine if zero BSRTNZ : Branch to subroutine if not zero DBRA : Delayed Branch DBRAI : Delayed Branch immediate DBSR : Delayed Branch to subroutine DBSRI : Delayed Branch immediate to subroutine DJMP : Delayed Jump DJMPI : Delayed Jump immediate DJSR : Delayed Jump to subroutine DJSRI : Delayed Jump immediate to subroutine JMP : Jump JMPTZR : Jump if zero JMPTNZ : Jump if not zero JSR : Jump to subroutine JSRTZR : Jump to subroutine if zero JSRTNZ : Jump to subroutine if not zero NOP : No operation
【0033】A-10. OS-related instructions TRAP : Trap REIT : Return from exception, interrupts, and tra
ps
【0034】B. DSP function instructions B-1. Arithmetic operation instructions MUL : Multiply MULX : Multiply with extended precision MULXS : Multiply and shift to the right by one with extended precision MULX2H : Multiply two pairs of half-words with ext
ended precision MULHXpp : Multiply two half-words with extended pr
ecision pp = LL, LH, HL, HH MUL2H : Multiply two pairs of half-words MACa : Multiply and add a = 0, 1 MACSa : Multiply, shift to the right by one, and a
dd a = 0, 1 MSUBa : Multiply and subtract a = 0, 1 MSUBSa : Multiply, shift to the right by one, and
subtract a = 0, 1 SAT : Saturate SATHH : Saturate word operand into high half-word SATHL : Saturate word operand into low half-word SATZ : Saturate into positive number SATZ2H : Saturate two half-words into positive num
ber SAT2H : Saturate two half-word operands
【0035】B-2. Repeat instructions REPEAT : Repeat a block of instructions REPEATI : Repeat a block of instructions with imme
diate
【0036】次に、実施の形態1で使用するモジュロア
ドレッシングについて、図9を用いて説明する。この実
施の形態では、プロセッサ・コア5がデータRAM7へ
メモリアクセスする場合を説明する。図9のモジュロア
ドレッシングで使用するレジスタには、次のレジスタが
ある。レジスタ201、202、203は、アクセス領
域の先頭アドレス、最終アドレス、一行あたりのデータ
量をセットするレジスタである。レジスタ201は、図
7のCR9、レジスタ202は、図7のCR10、レジ
スタ203は、図7のCR11の制御レジスタを使用す
る。また、汎用レジスタ群204の汎用レジスタ20
7、208、209は、図6に示す汎用レジスタR0か
らR63のうち、予め用途が決まっているR0、R6
2、R63以外のいずれかの汎用レジスタである。この
実施の形態では、レジスタ207をR4、レジスタ20
8をR5、レジスタ209をR10とする。以下、この
実施の形態では、それぞれ、r4、r5、r10として
表す。さらに、レジスタ205は、図8に示すプロセッ
サ状態語の中のモジュロアドレッシングの許可を指定す
るMDフィールド177である。また、レジスタ206
は、プロセッサ状態語の中の矩形領域のモジュロアドレ
ッシングの許可を指定するRMDフィールド178であ
る。また、図9では、それぞれ、CMPは比較器、SE
Lは選択器、ADDは加算器、INCは一定の値を加算
する加算器、MADDはモジュロ加算器を意味する。
【0037】次に、動作を図9及び図10を用いて説明
する。まず、プロセッサ・コア5は、レジスタ201、
レジスタ202、レジスタ203へ、それぞれ予め汎用
レジスタ群204にセットしてあるアクセス領域の先頭
アドレス、最終アドレス、一行あたりのデータ量を、専
用命令によりセットする(図10、S101)。尚、図
9の汎用レジスタ群204には、上記レジスタにセット
する値を保持する汎用レジスタは図示していない。次
に、レジスタ205とレジスタ206をセットする。ま
た、汎用レジスタr5へ汎用レジスタR0の値をセット
する(図10、S102)。この実施の形態では、r5
は、R0の値である0(ゼロ)を使用する。さらに、r
4へCR9の値、すなわち先頭アドレスをセットする
(図10,S103)。
【0038】この実施の形態では、下記の一連の命令列
を用いてモジュロアドレッシング処理を実行する場合を
説明する。下記の命令列は、LOOPとラベリングされ
た行(1)から、最終行(3)までを反復処理するもの
である。 LOOP: (1) LD2W r10, r4+, r5 (2) ・ ・ ・ BRA LOOP (3) まず、上記(2)では、r4とr5の値がモジュロ加算
器210で加算され、加算した結果がバス211を通し
て図1のデータRAM7に出力される。一方で、r4の
値は、モジュロアドレスインクリメンタ212(以下
「INC212」とする)において、データ転送サイズ
に応じてインクリメントされる。すなわち、(イ)r4
+r5で指定される場所からデータを読み込む(図1
0、S104)、(ロ)r4の値を一定の値だけインク
リメントする(図10、S105)、という動作にな
る。(イ)及び(ロ)を繰り返して指定領域のアクセス
を行う。
【0039】次に、指定領域を繰り返しアクセスする動
作を説明する。まず、矩形領域のメモリアクセスではな
い、通常のモジュロアドレッシングの動作により指定さ
れた領域が繰り返しアクセスされる手順を示す。指定領
域の最終アドレスになるまでは、SEL213では、I
NC212で、r4に1回のデータ転送サイズをインク
リメントした値が選択される。選択された値は、r4に
書き戻されて次のLD2W命令実行時に使用される。上
記の動作と平行して、r4の値が、最終アドレスになっ
たか否かを検出する。具体的には、CMP251では,
r4とレジスタ202に設定された値、すなわち最終ア
ドレスとを比較して、r4が最終アドレスより大きく、
かつ、レジスタ205の値MDが有効であれば、論理積
252において選択線214が真となる。従って、SE
L213では、レジスタ201に設定した値220、す
なわち先頭アドレスの値が選択される。SEL213で
選択された値が、r4へセットされ、バス211から出
力される。このようにして、レジスタ201の値である
先頭アドレスとレジスタ202の値である最終アドレス
で指定されるメモリ領域が循環的に使用できることにな
る。
【0040】次に矩形領域を繰り返しメモリアクセスす
る場合について説明する。レジスタ203にセットされ
ている一行あたりのデータ量を使用する。CMP253
では、レジスタ203の値とSEL255で選択された
アドレスレジスタ217の値を加算したものと、r4と
を比較する(図10、S106)。r4がその行の最終
アドレスより大きく、かつ、レジスタ206の値RMD
が有効であり、かつ、CMP251でr4が矩形領域の
最終アドレス以下であるとき、選択線219が真とな
る。従って、SEL213では215が選択される。S
EL213で選択された値が、r4へセットされ、バス
211から出力される(図10、S108)。215の
値は、レジスタ201の値を、行方向インクリメンタ2
16でインクリメントし、それを保持しているアドレス
レジスタ217の出力値である。具体的には、1行目か
ら最終行のいずれかの先頭アドレスである。このように
して、各行の最終アドレスを検出する。また、CMP2
51でr4が矩形領域の最終アドレスより大きく(図1
0、S109)、かつ、レジスタ206の値RMDが有
効である場合には(図10、S110)、SEL213
では、レジスタ201に設定した値220、すなわち先
頭アドレスが選択される。このようにして、メモリ上の
矩形領域の最終アドレスを検出し、矩形領域を循環的に
使用する。
【0041】上記のメモリ使用領域を図11で説明す
る。通常のモジュロアドレッシングでは、データRAM
7内の先頭アドレス281と最終アドレス286で示さ
れる階段状領域280を循環的に使用することになる
が、この実施の形態の矩形モジュロアドレッシングで
は、281、282、285、286で囲まれる矩形領
域287だけを循環的に使用することになり、メモリの
効率的な使用が可能となる。
【0042】また、この実施の形態1で図2から図8に
基づいて説明したプロセッサは、この発明を実施するた
めのプロセッサの一例であり、本発明の実施ができるプ
ロセッサであれば、他のものでもかまわない。また、図
9のアドレス生成方法も、他の方法で実現することも可
能である。モジュロアドレッシングの許可を指定するM
Dフィールドは、通常のモジュロアドレッシングを説明
するために図9において示しているが、本発明を実施す
るにあたっては、矩形領域のモジュロアドレッシングの
許可を指定するRMDフィールドのみでも充分である。
【0043】このようにして、この実施の形態で示した
プロセッサは、アドレッシングモードを複雑にすること
なく、メモリを有効に活用する矩形領域のアクセス装置
及び方法を提供できる。
【0044】以上のように、本発明のプロセッサは、メ
モリに接続し、メモリへのアクセス処理を司るメモリ制
御部と、上記メモリ制御部へ上記メモリへのアクセス要
求を出力するリクエストマスタ部を内蔵し、上記メモリ
制御部内に、上記メモリ内の任意の連続領域の先頭アド
レスを保持するレジスタと、上記連続領域の最終アドレ
スを保持するレジスタと、列方向のデータ量を保持する
レジスタを備え、かつ連続領域を循環的にアクセスする
循環モード情報と矩形領域を循環的にアクセスする矩形
循環モード情報を備える。上記循環モード情報が有効で
ある時は、上記メモリ制御部が上記先頭及び最終アドレ
ス保持レジスタを用いて上記連続領域を循環的にアクセ
スでき、上記矩形循環モード情報が有効であるときは、
上記メモリ制御部が上記先頭と最終、そして列サイズレ
ジスタを用いて上記矩形領域を循環的にアクセスする制
御機能を有するモジュロアドレッシング制御部を備えて
いることを特徴とする。
【0045】実施の形態2.実施の形態2では、プロセ
ッサ1から外部のメモリ2へメモリアクセスをする場合
を説明する。図12は、この発明の一例である実施の形
態2のプロセッサとメモリとの関係を、図1で示した構
成を簡略化して表わした図である。図12は、プロセッ
サ1とメモリ2とから構成されている。メモリ2は、デ
ータが置かれるメモリである。プロセッサ1は、メモリ
制御部3と、リクエストマスタ4aとを備えている。ま
た、リクエストマスタ4aは、レジスタ群9aとアドレ
ス生成制御部10aとを備えている。メモリ制御部3
は、リクエストマスタ部4aのメモリ2へのアクセス要
求を調停し、プロセッサ1とメモリ2とのデータのやり
とりを仲介する。リクエストマスタ4aは、プロセッサ
内部のデータバスの主体となる。アドレス生成制御部1
0aは、メモリ上の任意の行及び列より形成される矩形
領域をアクセスするためのアドレスを生成し、出力す
る。301、302、303は任意の矩形領域を指定す
るためのレジスタである。メモリ2に示した304は、
上記レジスタ9aによって指定されるメモリ上の使用矩
形領域である。
【0046】図12に基づいて、実施の形態2における
メモリアクセスの動作について説明する。まず、リクエ
ストマスタ4aは、メモリ制御部3に対して、メモリ2
へのアクセス要求を出力する。通常、上記アクセス要求
は、複数のリクエストマスタから出力されるため、メモ
リ制御部3はこれらのアクセス要求を調停し、1の要求
に対してアクセス許可を与える。次に、リクエストマス
タ4aは、メモリ2に対するアクセスアドレスを生成し
てメモリ制御部3に出力し、メモリ制御部3を介してメ
モリ2とデータのやりとりを行う。使用矩形領域304
の最後のアドレスまでアクセスしたら、リクエストマス
タ4aのアクセスは終了する。使用矩形領域304の最
後のアドレスは、レジスタ301、レジスタ302、レ
ジスタ303で指定される。以上が、メモリアクセス動
作の概略である。
【0047】実施の形態2におけるメモリの使用領域を
図13で説明する。メモリ2上に、レジスタ301、レ
ジスタ302、レジスタ303によって、使用矩形領域
304が指定される。上記矩形領域304において、リ
クエストマスタ4aで生成されるアクセスするアドレス
の出力順は、レジスタ301で示される先頭アドレスP
から矢印Sの方向である。上記出力順で、レジスタ30
2に設定された行数分出力していく。
【0048】次に、図14に基づいて、アクセスアドレ
スを生成する過程について説明する。この実施の形態の
アクセスアドレスを生成する過程では、アクセスアドレ
スを生成し、出力アドレスレジスタ305に設定して、
出力アドレスレジスタ305の値をメモリ制御部3へ出
力する。まず、レジスタ301に設定された使用矩形領
域304の先頭アドレスを、出力アドレスレジスタ30
5にセットし、出力する。次にアクセスするアドレス
は、列方向のアドレスインクリメンタ306にて、前回
のアクセスアドレスの値に1回のデータ転送量を加算す
ることによって生成され、出力アドレスレジスタ305
にセットされる。行の終わりまで同様の動作を繰り返
す。
【0049】任意の行の最終アドレスに至ったか否か
は、次のようにして判断する。任意の行の最終アドレス
は、レジスタ303とレジスタ301によって算出す
る。任意の行の最終アドレスは、列最終アドレスレジス
タ307へ設定される。312において、列最終アドレ
スレジスタ307と、列方向のアドレスインクリメンタ
306の結果が一致する場合、次にアクセスするアドレ
スは、次の行の先頭アドレスである。次の行の先頭アド
レスは、行方向のアドレスインクリメンタ308とレジ
スタ301によって生成される。このようにして、次の
行の先頭アドレスが出力アドレスレジスタ305にセッ
トされる。以下、上記の列方向へのアクセスと、行方向
へのアクセスの動作を繰り返す。311において、SE
L309の出力が、列最終アドレスレジスタ307及
び、レジスタ301とレジスタ302によって算出され
た最終行の先頭アドレスを格納するための最終行先頭ア
ドレスレジスタ310と一致した場合、終了信号を生成
して、メモリアクセス及びアクセスアドレスの生成は終
了する。
【0050】図15を用いて、上記の処理の流れを説明
する。まず、ステップS141において、レジスタ30
1に設定された先頭アドレスを出力アドレスレジスタ3
05へセットし、ステップS142にてアクセスするア
ドレスを、メモリ制御部3へ出力する。次にステップS
143で列方向のインクリメントを行う(306)。ス
テップS144にてステップS143の結果がレジスタ
301とレジスタ303とから算出される、行の最終ア
ドレス(列最終アドレスレジスタ307)を超えたかど
うかを判定する。ステップS143の結果が列最終アド
レスレジスタ307を超えていないならば、ステップS
147にて、次にアクセスするアドレスを出力アドレス
レジスタ305へセットし、ステップS142に戻る。
ステップS143の結果が、列最終アドレスレジスタ3
07を超えたならば、ステップS145に進んで次の行
の先頭アドレスを出力アドレスレジスタ305へセット
する。ステップS146にてステップS145の結果
が、レジスタ301とレジスタ302とから算出され
る、最終行を超えたかどうかを判断する。ステップS1
44の結果が最終行を超えていないならば、ステップS
142に戻って出力アドレスレジスタ305をメモリ制
御部3へ出力する。ステップS146の結果が最終行を
超えているならば、メモリアクセスは終了する。
【0051】なお、上記においては矩形領域を指定する
ための方法として、先頭アドレス、1行あたりのデータ
量、矩形領域の行数を採用したが、矩形領域を指定する
ためには別の方法もあり、それらを用いた場合も、上記
と同様な方法によって同様な機能を実現できることは言
うまでもない。
【0052】また、上記においては、一例として図14
のようなアクセスするアドレスを生成する方法を記述し
ているが、図15を満たすような方式であるならばこの
他の方法でも充分であることは言うまでもない。さら
に、図15において、ステップS147は、ステップS
143列方向インクリメントするとともに、出力するア
ドレスレジスタへステップS143の結果をセットする
手順でもかまわない。
【0053】以上のように、メモリに接続し、メモリへ
のアクセス処理を司るメモリ制御部と、上記メモリ制御
部へ上記メモリへのアクセス要求を出力するリクエスト
マスタ部を内蔵し、上記リクエストマスタ部内に、上記
メモリ内の任意の矩形領域を規定するためのレジスタ群
を備え、上記メモリ制御部が上記レジスタを用いて上記
矩形領域を連続領域としてアクセスできるとともに、上
記矩形領域の最終アドレスから先頭アドレスを連続領域
としてアクセスするためのアドレスを上記メモリ制御部
に出力する制御機能を有することを特徴とする。
【0054】実施の形態3.実施の形態1では、プロセ
ッサ・コア5からデータRAM7へアクセスする場合を
説明したが、この実施の形態では、プロセッサ・コア5
から外部にあるメモリ2にアクセスする場合を図1を用
いて説明する。この実施の形態では、実施の形態2のリ
クエストマスタの一つとして、プロセッサ・コア5が該
当する場合である。プロセッサ・コア5のアクセスアド
レスの生成は、実施の形態1の場合と同様にして生成さ
れる。従って、図9において、アドレスの出力先をメモ
リ2へすることにより、実現できるものである。
【0055】
【発明の効果】この発明によれば、アドレスの管理を煩
雑にすることなく、メモリ上の矩形領域をアクセスし、
メモリを有効に利用することができる。
【0056】さらに、この発明によれば、矩形領域の先
頭アドレスと、矩形領域の最終アドレスと、矩形領域の
1行あたりのデータ量とを指定することにより、限定さ
れた数のレジスタで矩形領域をアクセスすることができ
る。
【0057】さらに、この発明によれば、矩形領域の先
頭アドレスと、矩形領域の1行あたりのデータ量と、矩
形領域の行数とを指定することにより、限定された数の
レジスタで矩形領域をアクセスすることができる。
【0058】また、この発明によれば、上記矩形領域を
繰り返しアクセスすることができる。
【0059】この発明によれば、矩形循環モード情報に
より、上記矩形領域を繰り返しアクセスするか否かを判
断し、変更することができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態のプロセッサとメモリ
との関係を表した図である。
【図2】 この発明の実施の形態1のプロセッサの命令
フォーマットを示す図である。
【図3】 図2におけるフォーマットフィールドの詳細
図である。
【図4】 図2における実行条件フィールドの詳細を示
す図である。
【図5】 図2における演算フィールドの詳細を示す図
である。
【図6】 この発明の実施の形態1のプロセッサのレジ
スタのうち、汎用レジスタとアキュムレータの構成を示
す図である。
【図7】 この発明の実施の形態1のプロセッサのレジ
スタのうち、制御レジスタの構成を示す図である。
【図8】 図7に示すプロセッサ状態語の詳細を示す図
である。
【図9】 この発明の実施の形態1のモジュロアドレッ
シング工程を示す図である。
【図10】 この発明の実施の形態1のアクセスアドレ
ス生成の処理手順を示すフローチャート図である。。
【図11】 この発明の実施の形態1及び従来のモジュ
ロアドレッシングを使用した場合のメモリ使用領域を示
す図である。
【図12】 この発明の実施の形態2のプロセッサとメ
モリとの関係を表した図である。
【図13】 この発明の実施の形態2のメモリの使用領
域を示す図である。
【図14】 この発明の実施の形態2のアクセスアドレ
ス生成の一例を示す図である。
【図15】 この発明の実施の形態2のアクセスアドレ
ス生成の処理手順を示すフローチャート図である。
【図16】 従来のモジュロアドレッシング工程を内蔵
したプロセッサとメモリとの関係を表した図である。
【図17】 従来のメモリ使用方法を示す図である。
【図18】 従来の使用方法で矩形領域を管理した場合
の図である。
【符号の説明】
1,1p プロセッサ、2 メモリ、3,3p メモリ
制御部、4,4a,4p リクエストマスタ部、41〜
45 リクエストマスタ、5 プロセッサ・コア、6,
6p モジュロアドレッシング制御部、7 データRA
M、8 命令RAM、9,9a,11 レジスタ群、1
0 アドレス生成制御部、204 汎用レジスタ群、2
05 循環モード情報、206 矩形循環モード情報、
210モジュロ加算器、304 使用矩形領域。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山田 朗 東京都千代田区丸の内二丁目2番3号 三 菱電機株式会社内 Fターム(参考) 5B015 HH01 KB41 KB43 MM03 5B060 AB17 AC11 GA11 5B062 AA10 BB10 CC05 DD08 EE08 FF02 HH10

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 行と列からなる二次元の領域のメモリを
    有する記憶装置に接続され、 メモリ上の任意のアドレスを保持するレジスタ群と、 上記レジスタ群で保持されたアドレスを用いて、メモリ
    上の任意の行及び列より形成される矩形領域をアクセス
    するためのアドレスを生成し、出力するアドレス生成制
    御部とを備えたプロセッサ。
  2. 【請求項2】 上記レジスタ群は、少なくとも上記矩形
    領域の先頭アドレスと上記矩形領域の最終アドレスと上
    記矩形領域の1行あたりのデータ量とを保持するレジス
    タを備え、 上記アドレス生成制御部は、上記矩形領域の先頭アドレ
    スと、上記矩形領域の最終アドレスと、上記1行あたり
    のデータ量とから指定される矩形領域をアクセスするア
    ドレスを生成することを特徴とする請求項1記載のプロ
    セッサ。
  3. 【請求項3】 上記レジスタ群は、少なくとも上記矩形
    領域の先頭アドレスと、上記矩形領域の1行あたりのデ
    ータ量と、上記矩形領域の行数とを保持するレジスタを
    備え、 上記アドレス生成制御部は、上記矩形領域の先頭アドレ
    スと、上記1行あたりのデータ量と、上記矩形領域の行
    数とから指定される矩形領域をアクセスするアドレスを
    生成することを特徴とする請求項1記載のプロセッサ。
  4. 【請求項4】 上記アドレス生成制御部は、上記矩形領
    域を繰り返しアクセスすることができるアドレスを生成
    するモジュロアドレッシング制御部を備えたことを特徴
    とする請求項1から3いずれか記載のプロセッサ。
  5. 【請求項5】 上記レジスタ群は、上記矩形領域を繰り
    返しアクセスするか否かを判断する矩形循環モード情報
    を記憶し、 上記モジュロアドレッシング制御部は、矩形循環モード
    情報の値に依存して上記矩形領域を繰り返しアクセスを
    するか否かを判断することを特徴とする請求項4記載の
    プロセッサ。
  6. 【請求項6】 上記アドレス生成制御部は、上記矩形領
    域の先頭アドレスに1回のデータ転送量を加算すること
    によって次にアクセスするアドレスを生成し、 上記生成したアドレスと、上記矩形領域の先頭アドレス
    及び上記1行あたりのデータ量とから生成したアクセス
    している行の列最終アドレスとを比較し、 上記生成したアドレスが、アクセスしている行の列最終
    アドレスを超えた場合には、次の行の先頭アドレスを生
    成し、 上記次の行の先頭アドレスに1回のデータ転送量を加算
    することにより、次にアクセスするアドレスを生成する
    アドレスの生成を繰り返すことにより、上記矩形領域を
    アクセスし、生成したアドレスが、上記矩形領域の最終
    アドレスを超えた場合に、矩形領域のアクセスが終了し
    たことを検出することを特徴とする請求項2記載のプロ
    セッサ。
  7. 【請求項7】 上記モジュロアドレッシング制御部は、
    矩形循環モード情報の値が、上記矩形領域を繰り返しア
    クセスすることを指示している場合であって、上記生成
    したアドレスが上記矩形領域の最終アドレスを超えた場
    合に、次にアクセスするアドレスを、上記矩形領域の先
    頭アドレスに指定することを特徴とする請求項5記載の
    プロセッサ。
  8. 【請求項8】 上記アドレス生成制御部は、上記矩形領
    域の先頭アドレスに1回のデータ転送量を加算すること
    によって次にアクセスするアドレスを生成し、 上記生成したアドレスと、上記先頭アドレス及び上記1
    行あたりのデータ量とから生成したアクセスしている行
    の列最終アドレスとを比較し、 上記生成したアドレスが、アクセスしている行の列最終
    アドレスを超えた場合には、次の行の先頭アドレスを生
    成し、 上記次の行の先頭アドレスに1回のデータ転送量を加算
    することにより、次にアクセスするアドレスを生成する
    アドレスの生成を繰り返すことにより、上記矩形領域を
    アクセスし、生成したアドレスが、上記矩形領域の行数
    を超えた場合に、矩形領域のアクセスが終了したことを
    検出することを特徴とする請求項3記載のプロセッサ。
  9. 【請求項9】 行と列からなる二次元の領域のメモリを
    有する記憶装置のメモリ制御方法において、 メモリ上の任意のアドレスを保持する保持工程と、 上記保持工程で保持されたアドレスを用いて、メモリ上
    の任意の行及び列より形成される矩形領域をアクセスす
    るためのアドレスを生成し、出力するアドレス生成制御
    工程と、 上記アドレス生成制御工程が生成したアドレスへのメモ
    リアクセス要求を制御するメモリ制御工程とを備えたこ
    とを特徴とするメモリ制御方法。
JP10290144A 1998-10-13 1998-10-13 プロセッサ及びメモリ制御方法 Pending JP2000122919A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP10290144A JP2000122919A (ja) 1998-10-13 1998-10-13 プロセッサ及びメモリ制御方法
US09/208,476 US6314505B1 (en) 1998-10-13 1998-12-10 Processor and method for accessing rectangular areas in memory
GB9828199A GB2343027B (en) 1998-10-13 1998-12-21 A processor and memory control method
KR1019990002409A KR20000028546A (ko) 1998-10-13 1999-01-26 프로세서및메모리제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10290144A JP2000122919A (ja) 1998-10-13 1998-10-13 プロセッサ及びメモリ制御方法

Publications (1)

Publication Number Publication Date
JP2000122919A true JP2000122919A (ja) 2000-04-28

Family

ID=17752358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10290144A Pending JP2000122919A (ja) 1998-10-13 1998-10-13 プロセッサ及びメモリ制御方法

Country Status (4)

Country Link
US (1) US6314505B1 (ja)
JP (1) JP2000122919A (ja)
KR (1) KR20000028546A (ja)
GB (1) GB2343027B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100331565B1 (ko) * 1999-12-17 2002-04-06 윤종용 매트릭스 연산 장치 및 매트릭스 연산기능을 갖는 디지털신호처리 장치
DE102005038567A1 (de) * 2005-08-12 2007-02-15 Micronas Gmbh Multi-Prozessor-Architektur und Verfahren zum Steuern von Speicherzugriff bei einer Multi-Prozess-Architektur
JP5739779B2 (ja) * 2011-09-26 2015-06-24 ルネサスエレクトロニクス株式会社 Simdプロセッサ及びコントロールプロセッサ並びにプロセッサ要素
CN111240581B (zh) 2018-11-29 2023-08-08 北京地平线机器人技术研发有限公司 存储器访问控制方法、装置和电子设备
US20220414050A1 (en) * 2021-06-28 2022-12-29 Silicon Laboratories Inc. Apparatus for Memory Configuration for Array Processor and Associated Methods
US20220413850A1 (en) * 2021-06-28 2022-12-29 Silicon Laboratories Inc. Apparatus for Processor with Macro-Instruction and Associated Methods
US20220414049A1 (en) * 2021-06-28 2022-12-29 Silicon Laboratories Inc. Apparatus for Array Processor and Associated Methods
KR102470802B1 (ko) 2021-11-24 2022-11-28 재영티에스(주) 어스앵커용 천공장치

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3938102A (en) * 1974-08-19 1976-02-10 International Business Machines Corporation Method and apparatus for accessing horizontal sequences and rectangular sub-arrays from an array stored in a modified word organized random access memory system
US3996559A (en) * 1974-11-07 1976-12-07 International Business Machines Corporation Method and apparatus for accessing horizontal sequences, vertical sequences and regularly spaced rectangular subarrays from an array stored in a modified word organized random access memory system
US3995253A (en) * 1975-03-03 1976-11-30 International Business Machines Corporation Method and apparatus for accessing horizontal sequences, vertical sequences, and rectangular subarrays from an array stored in a modified word organized random access memory system
US4090174A (en) * 1976-11-01 1978-05-16 International Business Machines Corporation Method and apparatus for accessing horizontal sequences, vertical sequences and rectangular subarrays from an array stored in a modified word organized random access memory system
JPS6072020A (ja) 1983-09-29 1985-04-24 Nec Corp デュアルポ−トメモリ回路
NL8600848A (nl) 1986-04-03 1987-11-02 Philips Nv Geheugen met gelijktijdig adresseerbare geheugenelementen.
JPS62293581A (ja) 1986-06-13 1987-12-21 Ricoh Co Ltd メモリ制御方式
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
JP3027445B2 (ja) * 1991-07-31 2000-04-04 株式会社高取育英会 メモリーコントロールデバイス
JPH0620034A (ja) * 1992-07-02 1994-01-28 Nec Corp 画像処理用アドレス生成回路
US5363337A (en) 1992-07-15 1994-11-08 Micron Technology, Inc. Integrated circuit memory with variable addressing of memory cells
JPH06324935A (ja) * 1993-05-11 1994-11-25 Matsushita Electric Ind Co Ltd アドレス発生器およびアドレス発生システム
JPH06342467A (ja) * 1993-06-01 1994-12-13 Toshiba Corp メモリアクセス装置

Also Published As

Publication number Publication date
GB2343027A (en) 2000-04-26
KR20000028546A (ko) 2000-05-25
GB2343027B (en) 2000-08-30
US6314505B1 (en) 2001-11-06
GB9828199D0 (en) 1999-02-17

Similar Documents

Publication Publication Date Title
US7694109B2 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
EP1126368B1 (en) Microprocessor with non-aligned circular addressing
JP4934356B2 (ja) 映像処理エンジンおよびそれを含む映像処理システム
JPH03147021A (ja) 命令指定方法及び命令実行方式
US6006315A (en) Computer methods for writing a scalar value to a vector
JPH04313121A (ja) インストラクションメモリ装置
US20230385063A1 (en) Streaming engine with early exit from loop levels supporting early exit loops and irregular loops
JP3729540B2 (ja) 画像処理装置
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
JP2001034471A (ja) Vliw方式プロセッサ
JP2000122919A (ja) プロセッサ及びメモリ制御方法
US6948049B2 (en) Data processing system and control method
JPH03233630A (ja) 情報処理装置
JP4502532B2 (ja) データ処理装置
JP2002229779A (ja) 情報処理装置
JPH10143494A (ja) スカラ/ベクトル演算の組み合わせられた単一命令複数データ処理
GB2402759A (en) Transferring data files between a register file and a memory
US20030009652A1 (en) Data processing system and control method
KR100188374B1 (ko) 연산처리장치
JP2520882B2 (ja) デ−タ処理装置およびデ−タ処理方法
JPS59114677A (ja) ベクトル処理装置
US6363469B1 (en) Address generation apparatus
JPH04104350A (ja) マイクロプロセッサ
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
US9323521B2 (en) Decimal floating-point processor