JP3106060B2 - 信号プロセッサ - Google Patents

信号プロセッサ

Info

Publication number
JP3106060B2
JP3106060B2 JP06155835A JP15583594A JP3106060B2 JP 3106060 B2 JP3106060 B2 JP 3106060B2 JP 06155835 A JP06155835 A JP 06155835A JP 15583594 A JP15583594 A JP 15583594A JP 3106060 B2 JP3106060 B2 JP 3106060B2
Authority
JP
Japan
Prior art keywords
cpu
memory
data
address
context register
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.)
Expired - Fee Related
Application number
JP06155835A
Other languages
English (en)
Other versions
JPH0778080A (ja
Inventor
キース・エム・バインドロス
ケネス・イー・ギャリー
ジョーン・イアール
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.)
Boeing North American Inc
Original Assignee
Rockwell International 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 Rockwell International Corp filed Critical Rockwell International Corp
Publication of JPH0778080A publication Critical patent/JPH0778080A/ja
Application granted granted Critical
Publication of JP3106060B2 publication Critical patent/JP3106060B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30181Instruction operation extension or modification
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用性】この発明はソフトウェアコード行の
長さを不当に長くすることなく、コンピュータ動作の柔
軟性を与えることが所望される場合にはどんなときでも
使用され得る。この発明はRISC CPUに特別の適
用性を有する。RISC CPUは固定された命令サイ
ズおよび制限された数の命令フォーマットを有し、その
ためこの発明が適用されなければ命令の機能性がより制
限されるであろう。この発明は分離され別々にされると
全く従来のものである構成要素から製造可能であるし、
従来のものではない類似物からも製造可能である。
【0002】
【発明の背景】この発明は高性能コンピュータのデータ
アクセス機構に関し、特に、機構を起動する命令語を長
くすることなくその作業を行なう機構に関する。
【0003】中央処理装置(CPU)は対応のメモリの
中をどの様に進んでいくかを知っておく必要がある。た
とえばすべてのアドレスを使用したり、アドレスの一部
のみを使用して連結したり、ある条件下である数のアド
レスをスキップしたり、などである。CPUはまたそれ
が扱っている数の型、つまり符号付き、符号なし、固定
小数点、浮動小数点などを知る必要もある。これらの必
要な情報は、メモリが処理されているコンテキストと呼
ばれている。非常に長い行のソフトウェアが許容される
のであれば、コンテキストはラインごとに新たに指定す
ることができ、大きな柔軟性を与える。コンテキストの
変更に厳しい制限が課せられれば、ソフトウェアコード
行は非常に短くされ、動作は非常に単純になる。これら
を両方実現することはいままで可能ではなかった。
【0004】
【発明の概要】この発明の目的は柔軟性と単純さの両方
を与えることである。この目的は制限された数のコンテ
キストレジスタを与えることによって達成され、各コン
テキストレジスタの多量の内容はCPUから分離した2
つのハードウェア、つまりアドレス発生器およびデータ
型変換器を構成する。CPUはその発生器および変換器
を介して間接的にメモリを駆動する。コンテキストを変
更するには新しいコンテキストレジスタを指定しさえす
ればよく、その内容はずっと以前に、プログラムの開始
時に指定されていてもよい。「プログラム」という言葉
は、本明細書でも用いられているとおり、「サブプログ
ラム」を含む。数はコンテキストレジスタに1回だけロ
ードされればよく、その後何回も使用され得る。
【0005】データが可変長のエレメントとして入力さ
れるなら、そのデータエレメントの長さはコンテキスト
レジスタ内に含まれ得る。
【0006】エレメントはグループにまとめられ、各エ
レメント長ごとに1つのグループとなる。これらのグル
ープはエレメント長の昇順で配列される。より大きなエ
レメント長を有するグループの個々のエレメントを特定
するインデックスは0(または1)で始まってはならな
い。その代わりに、使用される最も低いインデックス
は、より下位のインデックス付きエレメントで占有され
たであろうメモリ空間が、より小さいエレメント長のグ
ループによって代わりに占有され得るのに十分な程に大
きくなければならない。
【0007】
【好ましい実施例の説明】図1を参照して、CPU10
は命令メモリ12から命令を受取る。CPU10はID
バス14を介してコンテキストIDを送り、それにより
コンテキストレジスタ16を選択する。CR1からCR
Nとして示されるN個のコンテキストレジスタ16が
ある。Nは比較的小さな数、恐らく僅か16である。I
Dバス14はしたがってかなり狭くてもよく、恐らく僅
か4ビット幅であってもよい。このように狭いことはI
Dバス14の下部のNARという表現により示されてい
る。
【0008】コンテキストレジスタ16はIDバス14
よりかなり広く、恐らく80ビットを含む。選択された
コンテキストレジスタ16からの80ビットすべてはコ
ンテキストバス18に読出される。このバス18は少な
くともレジスタ16と同じビット幅でなければならな
い。このようにバス18が広いことはその下部のBRD
という表現によって示されている。コンテキストレジス
タはROMに埋込むことによって永久的にロードされ得
るが、各プログラムの始めにロードすることによってそ
の内容をカスタマイズすることが好ましい。ループの始
めにレジスタをロードすることは特に効率的である。た
とえば有限インパルス応答フィルタにそのようにロード
することにより、その内部ループはループ当りより少な
い命令で実行され得る。
【0009】コンテキストバス18はアドレス発生器2
0およびデータ型変換器22を駆動する。アドレス発生
器20は、選択されたコンテキストレジスタ16の内容
によって適切に構成されたものであり、恐らくは僅か3
ビット幅の狭い(NAR)パラメータをCPU10から
パラメータ線24上で受取り、アドレス線26上で広い
(BRD)アドレスすべてをメモリ28に送る。たとえ
ば、アドレス発生器20はアクセスされた最後のアドレ
スを保持してもよい。1のパラメータは「最後のアドレ
スを増分するな」を示し、2のパラメータは「最後のア
ドレスをコンテキストレジスタのビット20−27に示
される量だけ増分せよ」を示し、さらに3のパラメータ
は「最後のアドレスをコンテキストレジスタのビット3
5−49に示された量だけ増分せよ」を示し得る。4か
ら7のパラメータはそれぞれ「1増分せよ」、「2増分
せよ」、「1減分せよ」、「2減分せよ」を示し得る。
各パラメータの意味は選択されたコンテキストレジスタ
16の内容によって決定される。
【0010】データ型変換器22も同様である。CPU
10がCPUデータ線30上でデータをリクエストまた
は生成するとき、CPUがそれを行なうCPUフォーマ
ットは、メモリ28によって使用されたフォーマットと
同じであってもよいし同じでなくてもよい。データ型変
換器22はしたがってCPU10とメモリ28との間に
置かれ、それらをCPUデータ線30およびメモリデー
タ線32によって接続する。データ線30および32は
どちらもかなり広い。(たとえば)符号付きの数を符号
なしの数に変換することによっても、実質的なデータ圧
縮は結局全く行なわれない。幾つかの状況では、データ
型変換器22はまたデータ圧縮器/伸長器として作用し
てもよく、それはたとえばCPU10は2進数で動作す
るが、メモリ28は2進化10進数で動作する場合、ま
たはCPU10は32ビット語で動作する一方で、デー
タは8ビットバイトとしてメモリ28にストアされてい
る場合などである。
【0011】図2はこの柔軟性を示す。コード34のあ
る行はその最初の2、3のビット36に含まれるオペレ
ーションコードで始まる。このオペコードは通常ほんの
2、3ビットしか要求しない。その理由はオペコードは
通常「第1のソースオペランドを第2のソースオペラン
ドに加算して宛先オペランドを作成せよ」という程度の
オーダの複雑さしか有さないからである。第1のオペラ
ンドはIDバス14上に置かれるべきコンテキストID
を有し、このIDは行34の第2のフィールド38に含
まれる。このIDは上に記されたように、2、3ビット
幅しかない。
【0012】アドレス発生器に送られるべきパラメータ
は第3のフィールド40に含まれる。これもまた2、3
ビットしかとらない。第4から第7のフィールド42−
48も同様に第2のソースオペランドおよび宛先オペラ
ンドのためのコンテキストIDおよびアドレスパラメー
タを指定するのに必要とされる少数のビットを含む。こ
のように、指定された情報をハードウェアにストアする
という方策によって、ソフトウェアの1本の短い行34
に非常に多くの量の情報が指定され得る。さらに、この
ハードウェアは各行で新しいコンテキストレジスタを指
定するという方策によって、ソフトウェア内の1行ごと
に変えることもできる。
【0013】最も重要なことは、コードのブロックを何
ら修正を伴うことなく新しいプログラムで再使用できる
ことであり、これはたとえその新しいプログラムが全く
違っているときも、それが全く別の機械で実行されると
きも、アクセスされるべき次のメモリアドレスを選択す
るための全く異なった組のオフセットを持っていると
き、CPUが全く異なったフォーマットになっている数
字を処理する場合でも、メモリが全く異なったフォーマ
ットで数字を処理するときも、さらにはコンテキストレ
ジスタが全く異なった長さであるときも再使用可能であ
る。これらはすべて新しいプログラムの始めに正しい数
をコンテキストレジスタ16にロードすることによって
処理される。代わりに、数はプログラム内にロードされ
てもよいが、サブルーチンが呼出される前にロードされ
なければならない。どちらにしても、ロードは移植され
たコードのブロックに遭遇するよりずっと前に行なわれ
る。
【0014】[エレメント方式アドレシング]前述の原
則は古くからある問題を解決するために有効に適用され
得る。つまり我々はどのようにして任意に大きなサイズ
の可変長パック形式データにアドレスするかという問題
である。データのエレメントの長さ(または少なくとも
データエレメントの長さを示すインデックス)がコンテ
キストレジスタに含まれてもよい。これはデータエレメ
ントの長さが2の整数乗である場合には比較的単純であ
る。2の整数乗でない場合にはより複雑な構造を必要と
する。
【0015】図3はこの問題を示す。データは2の整数
乗ではない所望されたエレメント長として入力され得
る。しかしながら、このデータがストアされるべきメモ
リは2の整数乗のエレメント長を要求するかもしれな
い。これはべきが僅か2または3ビットでメモリに与え
られ得るという望ましい特徴を有する。これはまたメモ
リの多くが無駄にされるかもしれないという望ましくな
い特徴をも有する。この無駄は図3の先頭行に示される
ように必要ではないが、一般的なものであり、図3の一
番下の行に示されるように、50%に接近し得る。(す
べての無駄を表わすパーセント数字は理解を明瞭にする
ために整数パーセントに切り捨てられたものである)。
【0016】図4はどのようにしてこの問題が少なくと
も部分的に軽減され得るかを示す。図4は乗算テーブル
であるが、先頭行には奇数しか示されず、左の列には2
の整数乗しか示されていない。線50は区分け線であ
り、左の列から所望される数を選択するために2ビット
しか必要とされないように引かれたものである。
【0017】図5は図4を書き直したものであり(区分
け線50に屈曲部を入れ)、人がある頁を読むときのよ
うに上から下へ、左から右へ、読んだときに数字が大き
くなっていくように図4を書き直したものである。
【0018】図6は図3に相当するものであり、要求さ
れたエレメント長として図5の数字が利用可能な場合、
つまりメモリが2の整数乗であるエレメント長に制限さ
れない場合に得られる無駄の低減を示す。この無駄の低
減はエレメント長を指定するのに必要とされるビットの
数を増やすことなく達成される。図3では、左の列は5
つの要素を有し、所望される要素を指定するのに3ビッ
ト必要とする。図4および図5では、奇数を指定するた
めには1ビットしか必要とされず、2のべきを指定する
ためには2ビットしか必要とされない。
【0019】図7および図8は図4および図5に相当す
るものであるが、3×3の乗算テーブルを示す。図8で
は2つの屈曲部が区分け線52に現われているが、これ
は重要ではない。重要なのは奇数を指定するために必要
とされるビットの数が2倍になっているのに、利用可能
なエレメント長の数は8分の1しか増えていないことで
ある。
【0020】図9は区分け線54で図7を4×4のテー
ブルに拡大したものである。図10は図9を書き直した
ものであり、必要に応じて列の順序を変え、区分け線5
4に逆の屈曲部を入れている。図8におけるように、区
分け線の形は重要ではない。重要なのは奇数を指定する
ために1つのビットを追加した代償として、利用可能な
エレメント長の数が2倍になったことである。図11は
メモリの無駄が応じて大幅に減ったことを示す。
【0021】図12はどのようにして奇数がコード化さ
れ得るかを示す。所望される奇数は第3の列に現われ、
それをコード化するインデックスXは第2の列に現われ
ている。インデックスXのための2進コードは第1の列
に現われ、奇数のための2進コードは第4の列に現われ
ている。
【0022】図13ではシフトインデックスSHが2進
でコード化され、対応する2のべきもまた示される。
【0023】図14は図12および図13に示される方
法の機構をブロック図で示す。インデックスX56は第
1のバレルシフタ58に送られ、このバレルシフタはイ
ンデックスX56を1つ左にシフトし最下位ビットが1
となるように結線されている。第2のバレルシフタ60
がSHコード62とともに第1のバレルシフタ58の出
力を受取り、その出力を左にSHビットだけバレルシフ
トし、それによってエレメント長64を発生する。
【0024】図1に戻って、エレメント長64を指定す
るために必要とされる4つのビットは選択されたコンテ
キストレジスタ16内に含まれる。アドレス発生器20
は図14の装置を含む。パラメータ線24上でCPU1
0からアドレス発生器20に与えられるパラメータは、
コンテキストレジスタ16に含まれるオフセットを選択
する。アドレス発生器20はこのオフセットにエレメン
ト長を掛け、メモリ28のアドレス当りのビットの数で
割り、その量だけアドレスを増分し、さらにこのアドレ
スをメモリ28に与える。
【0025】エレメント長がアドレス長より短ければ、
データ型変換器22は不必要なビットを取除き、所望さ
れるビットをCPU10に与える。もしエレメントがア
ドレス境界を越えれば、またはアドレス長より長けれ
ば、データ型変換器は必要な数の連続するアドレスで発
見されたデータを連結し、不必要なビットを取除き、再
び所望されるビットをCPUに与える。
【0026】エレメント方式のアドレシングはオブジェ
クト指向プログラミング技術のサブセットであることが
このようにわかる。エレメント方式のアドレシングによ
りアセンブリ言語プログラマは処理するべき基本エレメ
ント(これが名前の由来である)としてデータのアレイ
にアクセスすることができる。アセンブリ言語プログラ
マは、データがメモリに特定のある長さを有するものと
してアクセスし、それからそのデータを操作してエレメ
ントとする必要はない。これにより何ら性能的なペナル
ティを課すことなく認識に関する負荷を低減する。実
際、性能はかえって高められるのである。すなわち無加
工のメモリデータをエレメントに変換するために必要な
操作をオンザフライで実行可能である。
【0027】これらの利点にはさらに利点が伴う。デー
タはメモリに効率的にストアされ得る。コードは再使用
可能である。つまり、同じ命令またはルーチンが異なる
長さのデータを処理できる。エレメント方式アドレシン
グはCPUアーキテクチャに組込まれ得る。エレメント
方式アドレシングは効率的にコード化される。これは完
全な浮動小数点ハードウェアで要求されるものよりも少
ないシフトおよび加算を使用する浮動小数点アドレシン
グスキームである。エレメント方式アドレシングハード
ウェアを与えるコストは、メモリ要求が低くなることに
よって生じるコスト削減とバランスがとれなくてはなら
ない。しかしながら、メモリが豊富で安価な場合でさ
え、エレメント方式のアドレシングの他の利点によりそ
れを使用することになるかもしれない。
【0028】エレメント方式アドレシングの他の利点
は、比較的大きなメモリが比較的少数のビットを有する
アドレスを使用して完全にアクセスできるということで
ある。たとえばギガバイトサイズのメモリは、もしその
メモリ内のすべてのバイトが別個にアクセスされるとす
れば30ビットのアドレシングを必要とする。データが
ギガバイト領域のメモリから読出される、またはそれに
書込まれる場合には、データはキロバイトまたはそれよ
り大きいサイズさえ有するエレメントで読出しまたは書
込みが行なわれさえすればよい。
【0029】この事実により設計上次のような狙いを持
つことができる。メモリはギガバイトのメモリと見られ
る代わりに、より好便にメガエレメントメモリとして見
られる。このように、各バイトをアドレシングする代わ
りに、各データエレメントをアドレスするだけの方が都
合がよい。このメモリのすべてのエレメントがキロバイ
トのサイズであれば、20ビットのアドレシング(メガ
バイトサイズのメモリに典型的である)で十分である。
もしエレメントの多くがキロバイトより小さいサイズを
有するなら、20ビットより多少多いアドレシング(し
かし30ビットよりは実質的に少ない)が必要とされ
る。一方、キロバイト以下のエレメントのアドレスサイ
ズ効果より、キロバイト以上のサイズを有するエレメン
トの効果の方がずっと大きい。これによりアドレスで必
要とされるビットの数は一定のままか、または少なくな
ることさえある。最大サイズが最小サイズよりかなり大
きい場合でさえ、非常に多くのサイズのエレメントが単
一のメモリ内に収容され得ることはこの発明の重要な特
徴である。メモリが大きくなればなるほど、エレメント
方式アドレシングの利点は大きくなる。
【0030】[未使用グループアドレシング]出願人は
未使用グループアドレシングとして都合よく説明され得
るデータ構造を開発した。未使用グループアドレシング
を使用してどんなメモリでも構造化され得るが、未使用
グループ構造化メモリはコンテキストとともに使用され
た場合非常に有効である。
【0031】同一の長さを有するすべてのデータエレメ
ントを連続してまとめると好都合である。この場合その
グループ内の最下位データエレメントの最下位ビットの
物理アドレスがベースアドレスとなり、そこからグルー
プの各データエレメントの物理アドレスが決定され得
る。
【0032】しかしながら、ベース相対アドレシングは
各グループのベースアドレスのためにコンテキストレジ
スタ内にスペースを確保することを要求し、さらに物理
アドレスを得るために、発生されたアドレスをベースア
ドレスに加算する余分のステップを必要とする。このオ
ーバヘッドは未使用グループアドレシングによって排除
され得る。
【0033】2つのグループしかないと仮定する。図1
5に示されるように、グループ1はA個のエレメントを
有し、各々の長さはLであり、グループ2はB個のエレ
メントを有し、各々の長さはMである。先頭のA×Lビ
ットはグループ1のため未使用である。もしこれがたま
たまMの整数倍であれば、それでよい。もし整数倍でな
ければ、第1のI×Mのエレメントをグループ1のため
に未使用とする。そこではIは整数であり、I×MはA
×Lより大きくそれに最も近いMの整数倍である。
【0034】グループ2のデータエレメントにインデッ
クスを付ける際には、第1のIのエレメント、つまり0
からI−1のインデックスを有するエレメントを使用し
てはいけない。これらのインデックスはグループ1のた
めに未使用のままにしておく。代わりに、Iから始め
て、IからI+B−1までのインデックスを使用する。
これにより最も大きなインデックスを指定するために必
要とされるビットの数は増えるかもしれないが、この増
大は一般に最少限のものであり、全く発生しないかもし
れない。さらに、この僅かな欠点はオフセットアドレシ
ングによって課せられる欠点より通常小さなものであ
る。
【0035】図16に示されるように、C個のエレメン
トを有する第3のグループがあり、各々の長さはNであ
ると仮定する。第1の(I+B)×Mビットはグループ
2(グループ1を含む)のために未使用のままである。
Jが、J×Nが(I+B)×Mに等しいか、またはそれ
より大きくてかつそれに最も近いNの整数倍になる整数
であるとする。グループ3のデータエレメントにインデ
ックスを付ける際に、先頭のJ個のエレメント、つまり
0からJ−1のインデックスを有するエレメントを使用
してはいけない。代わりにJから始め、JからJ+C−
1までのインデックスを使用する。このプロセスは無限
に継続され得る。
【0036】この発明の特定の実施例を幾分詳細に説明
してきたが、この発明の真の精神および範囲はそれに制
限されるものではなく、前掲の特許請求の範囲によって
のみ制限される。
【図面の簡単な説明】
【図1】この発明を実施する装置のブロック図である。
【図2】この発明で使用されるソフトウェアコード行の
ブロック図である。
【図3】データエレメント長が2の整数乗でない場合に
どのくらいメモリが無駄にされるかを示すテーブルであ
る。
【図4】図3に示される問題に対する解を示す2×2の
乗算テーブルを示す図である。
【図5】テーブルの要素を昇順にして図4を書き直した
図である。
【図6】図4および図5の使用によって生じる無駄の低
減を示す図である。
【図7】図4に相当する図であるが、3×3のテーブル
を使用する図である。
【図8】図5に相当する図であるが、3×3のテーブル
を使用する図である。
【図9】図4に相当する図であるが、4×4のテーブル
を使用する図である。
【図10】図5に相当する図であるが、4×4のテーブ
ルを使用する図である。
【図11】図6に相当する図であるが、4×4のテーブ
ルを使用する図である。
【図12】図9の先頭行を符号化するためのテーブルを
示す図である。
【図13】図9の左の列を符号化するためのテーブルを
示す図である。
【図14】図9、図12および図13に示される方法の
機械化のブロック図である。
【図15】未使用グループアドレシングによる各グルー
プの先頭のデータエレメントのインデックスを付ける方
法を示す模式図である。
【図16】未使用グループアドレシングによる各グルー
プの先頭のデータエレメントのインデックスを付ける方
法を示す模式図である。
【符号の説明】
10 CPU 12 命令メモリ 14 IDバス 16 コンテキストレジスタ 18 コンテキストバス 20 アドレス発生器 22 データ型変換器
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケネス・イー・ギャリー アメリカ合衆国、92714 カリフォルニ ア州、アーバイン、フレンズ・コート、 17531 (72)発明者 ジョーン・イアール アメリカ合衆国、92680 カリフォルニ ア州、トゥースティン、ウィリアムズ・ ストリート、15512・ピィ (56)参考文献 特開 平1−169537(JP,A) 特開 平4−320534(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/34 G06F 12/04

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 (a) 中央処理装置(CPU)と、 (b) 前記CPUに接続された複数個のコンテキスト
    レジスタとを含む信号プロセッサであって、前記コンテ
    キストレジスタは、要求される各オペランドに対して、
    いつでも、一度には正確に1つのコンテキストレジスタ
    が前記CPUによって選択されるように接続されてお
    り、さらに、 (c) メモリと、 (d) 前記CPUによって与えられたパラメータに応
    答してアドレスを発生し、それを前記メモリに与えるた
    めの、前記選択されたコンテキストレジスタの内容によ
    って設定されるアドレス発生器とを含み、前記アドレス
    は前記パラメータおよび前記選択されたコンテキストレ
    ジスタの内容の両方に依存し、さらに、 (e) 前記選択されたコンテキストレジスタに接続さ
    れるデータ型変換器を含み、前記変換器は前記選択され
    たコンテキストレジスタの内容により設定され、データ
    をCPUフォーマットとメモリフォーマットとの間で変
    換し、前記変換器はデータをCPUへおよびCPUから
    CPUフォーマットでのみ与えるように前記CPUに接
    続され、さらにデータをメモリへおよびメモリからメモ
    リフォーマットでのみ与えるように前記メモリに接続さ
    れる、信号プロセッサ。
  2. 【請求項2】 (a) 中央処理装置(CPU)と、 (b) 前記CPUに接続された複数個のコンテキスト
    レジスタとを含む信号プロセッサであって、前記コンテ
    キストレジスタは、要求される各オペランドに対して、
    いつでも、一度には正確に1つのコンテキストレジスタ
    が前記CPUによって選択されるように接続されてお
    り、さらに、 (c) メモリと、 (d) 前記CPUによって与えられたパラメータに応
    答してアドレスを発生し、それを前記メモリに与えるた
    めの、前記選択されたコンテキストレジスタの内容によ
    って設定されるアドレス発生器とを含み、前記アドレス
    は前記パラメータおよび前記選択されたコンテキストレ
    ジスタの内容の両方に依存し、前記アドレス発生器は (1) 第1のフィールドおよび第2のフィールドを有
    するコンテキストを受取るための手段を含み、前記第1
    のフィールドは選択された奇数を示し、前記第2のフィ
    ールドは選択された2のべきを示し、さらに (2) 前記奇数と前記2のべきとの積を生じるための
    手段を含み、前記信号プロセッサはさらに、 (e) 前記選択されたコンテキストレジスタに接続さ
    れるデータ型変換器を含み、前記変換器は前記選択され
    たコンテキストレジスタの内容により設定され、データ
    をCPUフォーマットとメモリフォーマットとの間で変
    換し、前記変換器はデータをCPUへおよびCPUから
    CPUフォーマットでのみ与えるように前記CPUに接
    続され、さらにデータをメモリへおよびメモリからメモ
    リフォーマットでのみ与えるように前記メモリに接続さ
    れる、信号プロセッサ。
  3. 【請求項3】 前記奇数と前記2のべきとの積を生じる
    ための前記手段は (a) 前記奇数のためのインデックスを1ビット左に
    バレルシフトするように構成され、かつ最下位ビットを
    1に結線するための手段を含み、それによって前記奇数
    を発生する第1のバレルシフタと、さらに (b) 2のべきのためのインデックスによって示され
    るのと同じ数のビットだけ前記奇数を左にバレルシフト
    するように構成される第2のバレルシフタとを含む、請
    求項2に記載の信号プロセッサ。
  4. 【請求項4】 (a) 中央処理装置(CPU)と、 (b) 前記CPUに接続された複数個のコンテキスト
    レジスタとを含む信号プロセッサであって、前記コンテ
    キストレジスタは、要求される各オペランドに対して、
    いつでも、一度には正確に1つのコンテキストレジスタ
    が前記CPUによって選択されるように接続されてお
    り、さらに、 (c) メモリと、 (d) 前記CPUによって与えられたパラメータに応
    答してアドレスを発生し、それを前記メモリに与えるた
    めの、前記選択されたコンテキストレジスタの内容によ
    って設定されるアドレス発生器とを含み、前記アドレス
    は前記パラメータおよび前記選択されたコンテキストレ
    ジスタの内容の両方に依存し、前記アドレス発生器は前
    記選択されたコンテキストレジスタの内容によって設定
    され、データエレメントアドレスを発生し、それをメモ
    リに与え、このデータエレメントアドレスは、アドレス
    されたデータエレメントの長さより短い長さを有するす
    べてのデータエレメントが、アドレスされたデータエレ
    メントの長さに等しい長さを有するデータエレメントに
    よって使用されるうち最も小さいインデックスよりも小
    さいインデックスによって決定されるメモリ場所にある
    ことを可能にするように選択され、さらに、 (e) 前記選択されたコンテキストレジスタに接続さ
    れるデータ型変換器を含み、前記変換器は前記選択され
    たコンテキストレジスタの内容により設定され、データ
    をCPUフォーマットとメモリフォーマットとの間で変
    換し、前記変換器はデータをCPUへおよびCPUから
    CPUフォーマットでのみ与えるように前記CPUに接
    続され、さらにデータをメモリへおよびメモリからメモ
    リフォーマットでのみ与えるように前記メモリに接続さ
    れる、信号プロセッサ。
JP06155835A 1993-07-26 1994-07-07 信号プロセッサ Expired - Fee Related JP3106060B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/095,550 US5479626A (en) 1993-07-26 1993-07-26 Signal processor contexts with elemental and reserved group addressing
US095550 1993-07-26

Publications (2)

Publication Number Publication Date
JPH0778080A JPH0778080A (ja) 1995-03-20
JP3106060B2 true JP3106060B2 (ja) 2000-11-06

Family

ID=22252529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06155835A Expired - Fee Related JP3106060B2 (ja) 1993-07-26 1994-07-07 信号プロセッサ

Country Status (2)

Country Link
US (1) US5479626A (ja)
JP (1) JP3106060B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659750A (en) * 1995-05-15 1997-08-19 Nvidia Corporation Apparatus for context switching of input/output devices in responses to commands from unprivileged application programs
US6189090B1 (en) * 1997-09-17 2001-02-13 Sony Corporation Digital signal processor with variable width instructions
US6112261A (en) * 1998-05-04 2000-08-29 Hewlett-Packard Company Data transferring system reading and temporarily storing a record until a length of the record is different from a defined record length parameter value
US6580150B1 (en) 2000-11-13 2003-06-17 Vram Technologies, Llc Vertical junction field effect semiconductor diodes
US6537921B2 (en) 2001-05-23 2003-03-25 Vram Technologies, Llc Vertical metal oxide silicon field effect semiconductor diodes
US6958275B2 (en) * 2003-03-11 2005-10-25 Integrated Discrete Devices, Llc MOSFET power transistors and methods
JP4446373B2 (ja) * 2003-03-19 2010-04-07 パナソニック株式会社 プロセッサ、データ共有装置
US7899190B2 (en) 2004-04-16 2011-03-01 Research In Motion Limited Security countermeasures for power analysis attacks
US7848514B2 (en) 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
DE602005002632T2 (de) * 2005-05-10 2008-01-31 Research In Motion Ltd., Waterloo Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4021655A (en) * 1976-03-30 1977-05-03 International Business Machines Corporation Oversized data detection hardware for data processors which store data at variable length destinations
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置
JPH0810428B2 (ja) * 1988-12-26 1996-01-31 三菱電機株式会社 データ処理装置
US5062041A (en) * 1988-12-29 1991-10-29 Wang Laboratories, Inc. Processor/coprocessor interface apparatus including microinstruction clock synchronization
US5148528A (en) * 1989-02-03 1992-09-15 Digital Equipment Corporation Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length
JP2504847B2 (ja) * 1989-10-27 1996-06-05 甲府日本電気株式会社 10進デ―タのチェック回路
US5276891A (en) * 1990-01-11 1994-01-04 Bull Hn Information Systems Inc. Alignment of sign, data, edit byte operand results for storage in memory
FR2666916A1 (fr) * 1990-09-19 1992-03-20 Alcatel Radiotelephone Vanne regulatrice de debit.

Also Published As

Publication number Publication date
US5479626A (en) 1995-12-26
JPH0778080A (ja) 1995-03-20

Similar Documents

Publication Publication Date Title
US7389404B2 (en) Apparatus and method for matrix data processing
JP2616182B2 (ja) データ処理装置
KR100328162B1 (ko) 정보처리회로와마이크로컴퓨터와전자기기
JP3106060B2 (ja) 信号プロセッサ
JP3729540B2 (ja) 画像処理装置
US5117488A (en) Microprogram controlled microprocessor having a selectively expandable instruction code length including independent description of operand addressing and a type of operation for an operand by single instruction in a common coding scheme
US5666510A (en) Data processing device having an expandable address space
US5590358A (en) Processor with word-aligned branch target in a byte-oriented instruction set
US6687808B2 (en) Data processor using indirect register addressing
JP2970821B2 (ja) データ処理装置
US6253305B1 (en) Microprocessor for supporting reduction of program codes in size
JPH11272546A (ja) 可変長レジスタ装置
US6158046A (en) Computer device and method for processing data utilizing pseudoinstruction words
EP0206653A2 (en) Method and means for loading and storing data in a reduced instruction set computer
KR100277805B1 (ko) 데이타처리장치
JP2556182B2 (ja) デ−タ処理装置
US5799138A (en) Apparatus for instruction-word-linK compression
JP3509134B2 (ja) データプロセッサ
JPS62107339A (ja) マイクロコンピユ−タの命令構成方法
JP2875711B2 (ja) プログラム変換装置およびプロセッサ
JP3539951B2 (ja) データ処理装置
JPH05173778A (ja) データ処理装置
JP3199604B2 (ja) プロセッサ
JPS61250753A (ja) アドレス拡張方式
JPH11143710A (ja) 処理対象値入力装置及びプログラム変換装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000801

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080901

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080901

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees