JPH04313121A - インストラクションメモリ装置 - Google Patents

インストラクションメモリ装置

Info

Publication number
JPH04313121A
JPH04313121A JP3236960A JP23696091A JPH04313121A JP H04313121 A JPH04313121 A JP H04313121A JP 3236960 A JP3236960 A JP 3236960A JP 23696091 A JP23696091 A JP 23696091A JP H04313121 A JPH04313121 A JP H04313121A
Authority
JP
Japan
Prior art keywords
instruction
instructions
pair
word
memory device
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.)
Withdrawn
Application number
JP3236960A
Other languages
English (en)
Inventor
Jii Haiji Suteiibun
スティーブン ジイ ハイジ
Baji Tooru
トオル バジ
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH04313121A publication Critical patent/JPH04313121A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、外部から取得した命令
を保持して命令解読手段に与えるインストラクションメ
モリ装本に関し、ディジタル信号処理プロセッサに適用
して有効な技術に関するものである。
【0002】
【従来の技術】ディジタル信号処理プロセッサは、フィ
ルタリング、イコライゼーション、ノイズやエコーの除
去、変調、フリーエ変換、そして画像の強調や特性パラ
メータの抽出などに利用される。このディジタル信号処
理プロセッサなどのコンピュータ・アーキテクチャの中
には、長さ60ビット又は64ビットのような長い命令
語の使用が性能を効果的に高揚できるものもある。しか
し、長い命令語の使用は、多くのプログラム命令がかか
る長い命令語の使用を必要としないために、プログラム
の記憶に関してシステムコストを上昇させる。尚、ディ
ジタル信号処理プロセッサについて記載された文献の例
としては昭和59年11月30日株式会社オーム社発行
の「LSIハンドブック」第593頁乃至第598頁が
ある。
【0003】
【発明が解決しようとする課題】本発明は上記事情に鑑
みてなされたものであり、短い語のためのインストラク
ション・メモリを使用しながら、高速処理に対して有効
な長い命令語を発生するための技術を提供することを目
的とする。
【0004】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0005】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0006】すなわち、本発明はデータ処理ユニットに
対するインストラクションメモリ装置を対象としている
。内部インストラクション・メモリは一連の命令を記憶
する。2つのシーケンス状に(連続的に若しくは所定の
順番に従って)隣接する命令は各命令フェックサイクル
においてアクセスされる。内部インストラクション・メ
モリに接続されている命令前処理ユニットは、2つのシ
ーケンス状に隣接する命令が組み合わされるための既定
の基準と一致するときに、それら2つの命令を単一の長
い命令語へと組み替える。2つの命令のうちの第1のも
のは、既定の基準が一致しないときに長い命令語を発生
するために非演算命令つまりノップ命令と組み合わされ
る。この場合、第2の命令は、2つの隣接する命令の第
1のものとして次の命令フェッチ・サイクル中に再びア
クセスされる。
【0007】ディジタル信号プロセッサなどにおいて、
プログラム命令は一般に、プロセッサのレジスタへ値を
ロードするロード/ストア命令と、数学的計算を行う算
術演算命令とに大別される。数学的計算はプロセッサの
レジスタを利用しているが、本発明では、ロード/スト
ア命令が、同時に実行される算術演算命令により使用さ
れつつあるレジスタに影響しない限り、ロード/ストア
命令が算術演算命令と同時に行われるという事実を利用
する。
【0008】
【作用】本発明は、単一の命令への一連の短い命令語の
組み替えが、セットにある既定の規則により決定される
ような許容された組み合わせを含むときに、それら一連
の短い命令語を外部プログラム・メモリに記憶するのを
可能にする。このことがメモリ記憶の点で視す富むコス
トを低減させ、また、短い命令を長い命令へと動的に組
み替えるのを可能にすることは、プログラムの実行速度
向上若しくは処理能力向上に資する。
【0009】
【実施例】以下本発明に係る実施例を順次項目に従って
説明する。
【0010】(好ましい実施例の説明)
【0011】図
1には、外部プログラム・メモリ104に接続されたデ
ィジタル信号プロセッサ(DSP)102を持つデータ
処理システム100が示されている。外部プログラム・
メモリ104は、標準として、ランダム・アクセス・メ
モリ(RAM)又はリード・オンリ・メモリ(ROM)
であるが、他の型式のメモリ・システムでも使用できる
。いづれの場合においても、DSP102は、プログラ
ム命令を外部プログラム・メモリ104からフェッチし
、そしてそうした命令を、内部メモリ・キャッシュとし
て使用される内部メモリ・バッファ110に一時的に記
憶する。例えば、内部メモリ・バッファ110は、各々
の長さが32ビットである512命令語の記憶容量を持
つことができる。データを内部メモリ・バッファ110
へとロードするめたに使用される正確な機構及びタイミ
ング制御は設置計画、つまりインプリメンテーションご
とに変わる。
【0012】(短い及び長い命令語)
【0013】本発明において使用される基礎的原理によ
ると、DSP102の内部では、命令セットにおける高
度な直交性及び並行性の点から、長い命令語(例えば、
60〜64ビット)が使用される。しかし、32ビット
・ワイド・プログラム・メモリ104及びDSP102
と外部メモリとの間における32ビット・ワイド・イン
タフェースはそれらが64ビットワイド外部プログラム
メモリに対するものよりもはるかに廉価なために、外部
プログラムメモリ104は短い命令語(例えば、32ビ
ット)を記憶する。命令前処理ユニット112は、対に
ある命令語を長い命令語に変換し、そしてそれらをDS
Pの命令デコーダ114及び116へ供給するために使
用される。
【0014】DSP102は2つの命令デコーダ114
及び116を持っている。第1の命令デコーダ114は
、レジスタ120へ値をロードするために使用されるレ
ジスタ・ロード及びストア命令を解読するために使用さ
れる。第2の命令デコーダ116は、数学的計算を行う
ために算術論理演算回路122により実行される算術演
算及び実行制御命令を解読する。算術演算及び実行制御
命令は、ここでは集合的に算術演算命令と呼ばれ、そう
した命令を処理するためのハードウェア回路はEXEC
として図示されている。
【0015】数学的計算はプロセッサのレジスタを利用
しているが、並列命令デコーダ114,116の使用は
、ロード/ストア命令が同時に実行される算術演算命令
により使用されつつあるレジスタに影響しない限りロー
ド/ストア命令が算術演算命令と同時に行えるという利
点を有する。従来のFIRフィルタ・プログラムはこの
規則に従わないことに注意されたい。これは、内部乗算
器が命令サイクルの始めにそれらレジスタのバージョン
を使用すること、且つそれらレジスタに対して新しく計
算された値がその計算において使用されることを意味す
るようである。レジスタの使用については、組み合わせ
でのLD/ST及びEXEC命令に関し、もしもあるな
らば、いかなる制約があるのかを特定することである。
【0016】図2には、短い命令を長い命令へと組み替
える1つの方法が示されている。内部メモリ・バッファ
(プログラム・バッファとも記す)110は2つの欄1
26及び128を持ち、欄126は算術演算命令(EX
EC)を記憶するために使用され、欄128はロード/
ストア命令(LD/ST)を記憶するのに使用される。 外部プログラムメモリ104における各32ビット命令
130は、1ビット命令識別子IID132と、31ビ
ット命令コード134とを含んでいる。IIDは算術演
算命令に対して値0(ゼロ)に等しく、ロード/ストア
命令に対して値1に等しい。
【0017】DSPのプログラム・カウンタ(以下単に
PCとも記す)136が漸増するにつれて、命令はキャ
ッシュ制御器138の制御の下で内部プログラム・バッ
ファ110へと読み込まれる。各命令からのIIDビッ
トにより制御される命令入力デマルチプレクサ140は
、残りの31ビット命令コードを内部プログラム・バッ
ファ110の算術演算命令欄126か又はロード/スト
ア欄128のいづれかへと切り換える。
【0018】もしもシーケンス状にフェッチされる二つ
の命令が或る既定の基準によって規定されるように適合
可能であるとすると、両命令は内部メモリ・バッファ1
10の単一の欄へとそれぞれロードされ、それにより、
それら2つの命令を単一の長い命令語へと組み合わせる
。もしも2つのシーケンス状にフェッチされる命令が適
合しなければ、そこでの命令は分離せる欄へとロードさ
れ、そして、ノップ(つまり、NOP)命令は欄の1つ
の使用されていないスロットへとロードされる。
【0019】例えば、図3及び図4に示されている本発
明の第1の好ましい実施例における既定の両立性つまり
適合性規則は以下の通りである。つまり、もしも算術演
算命令にロード/ストア命令が続くと、それら2つの算
術演算命令のかたわらにロード/ストア命令を置くこと
により単一の長い命令語へと組み合わされる。もしも1
つの実行命令が別の算術演算命令にすぐに続くとするな
らば、第1の算術演算命令に対する対応するロード/ス
トア・フィールドはノップで満たされ、そして第2の算
術演算命令は内部プログラム・バッファの次の列に記憶
される。同じことはシーケンスにおける2つ又はそれ以
上のロード/ストア命令に対しても適用する。つまり、
ノップは算術演算命令と組み合わされないロード/スト
ア命令の算術演算命令フィールドに置かれることになる
【0020】図5及び図6に示されている第2の好まし
い実施例、そして図8及び図9に示される第3の好まし
い実施例において、そこでの既定の適合性規則は第1の
好ましい実施例におけるものと反対である。つまり、も
しもロード/ストア命令に算術演算命令が続くとすると
、それら2つは、その算術演算命令のかたわらにロード
/ストア命令を置くことにより単一の長い命令語へと組
み替えられる。かくして、2つのシーケンス状にアクセ
スされる命令が長い命令語へ組み替えられるかどうかを
決めるのに使用される規則としては多くの異なる規則が
ある。この発明の他の設置計画では、それらがプログラ
ムにおいて生じる順序には無関係に、しかもそれら2つ
の命令がDSPでの異なるレジスタをアクセスするとき
にのみ、算術演算命令をロード/ストア命令と組み合わ
せることができる。
【0021】プログラム命令を外部プログラム・メモリ
からじかにフェッチして実行するDSPはフェッチ・サ
イクル当り1つの命令を実行するというような最大実行
速度を持っている。本発明の内部メモリ・バッファを使
用すると、プログラムがループか又は内部メモリ・バッ
ファへと前もってフェッチされた他のコードを持つ場合
、算術演算命令とロード/ストア命令とは同時に実行さ
れ、それにより、外部プログラム・メモリのみを使用す
るDSPの性能を2倍にしている。
【0022】同じ速度性能は、DSP上に62ビット又
は64ビット・ワイド外部プログラム・メモリ及び同様
に広いプログラム・メモリ・インタフェースを使用する
ことにより達成される。しかしながら、かかる広いメモ
リ・インタフェースはコストの上昇を招き、しかも、算
術演算命令及びロード/ストア命令が単一の長い命令語
へと組み替えることのできなかったフィールドでは外部
メモリに記憶される多数の命令がノップを含むために、
極端に大きなプログラムが必要になる。
【0023】本発明を組み込んでいるDSPでもって最
大のプロセッサ性能を達成するために、プログラマ、つ
まり、プログラム編集者は算術演算命令及びロード/ス
トア命令がインタリーブされるようにその命令シーケン
スを計画しなければならない。かかるインタリーブは、
算術演算命令及びロード/ストア命令が並列に実行され
ることを可能にする。もしもかかるインタリーブが使用
できないとしても、プログラムは正確に実行され、しか
もDSPのリソースもそれなりに利用される。
【0024】(第1の好ましい実施例)
【0025】図
3及び図4を参照するに、そこにはそうした命令が適合
可能であると思われるときにシーケンス状にアクセスさ
れる命令を組み替えるための内部メモリ・バッファ11
0及び命令前処理ユニット150の1つのバージョンの
好ましい実施例が示されている。この回路150は、一
連の62ビット・ワイド並列命令を発生するように、直
列にある32ビット・ワイド命令を2つの通路へと分割
する。尚、図3と図4は■乃至■で示される対応箇所で
相互に接続される。
【0026】一般に、図3及び図4に示されている回路
150は、各フェッチ・サイクルをEXEC相とLD/
ST相とに分割するように動作する。プログラム・カウ
ンタ54が第1のクロック・サイクルのEXEC相の始
めにインクリメントつまり漸増し、そして新しい命令が
アクセスされるものと仮定する。もしもEXEC相中に
アクセスされた命令が算術演算命令(IID=0)であ
るならば、プログラム・カウンタ154はLD/ST相
の始めにおいてインクリメントされ、そして第2の命令
はLD/ST相中にアクセスされる。もしも第2の命令
が、IID=1(すなわち、第1のアクセスされた命令
と組み合わされる命令)を持つロード/ストア命令であ
るとすると、その2つの命令はDSPの命令デコーダ1
14,116への伝達のためにパイプライン・レジスタ
186へと同時にロードされる。もしも第2の命令がロ
ード/ストア命令でないとすると、ノップ命令はパイプ
ライン・レジスタ186へと第1の(算術演算)命令と
共にロードされ、そしてプログラム・カウンタ154は
次のEXECクロック相の初めに漸増されない。もしも
、EXECクロック相中にアクセスされる第1の命令が
ロード/ストア命令であったならば、それはノップ命令
と共に、パイプライン・レジスタへとロードされ、そし
てプログラム・カウンタ154は、次のEXECクロッ
ク相の始めまで、漸増されない。
【0027】更に特定するに、回路150は以下のよう
に動作する。この実施例において、命令予備プロセッサ
150はその命令フェッチ率を2倍において実行するた
めのライン152上におけるクロック信号を使用する。 ライン152上におけるクロック信号は、そのクロック
信号がANDゲート156により通過されるときに、プ
ログラムカウンタ154を漸増つまりインクリメントす
る。
【0028】クロック信号は、2つの相補状のクロック
信号、つまり、LD/ST(すなわち、ロード/ストア
)相信号及びEXEC相信号をライン162及び164
上にそれぞれ発生するために、フリップフロップ回路1
60により分割される。かくして、各命令フェッチ・サ
イクル(ライン152上におけるクロック信号の2つの
クロック・サイクルからなる)は、ライン164上にお
けるEXEC相信号が可能化される(イネーブルレベル
例えばハイレベルにされる)間のEXEC相と、ライン
162上におけるLD/ST相クロック信号が可能化さ
れる間のLD/ST相とから成っている2つの相を持っ
ている。
【0029】各アクセスされた命令からの命令識別子I
IDはANDゲート166及び168によりそうした相
クロックの各々と論理的にアンド(論理積)される。も
しも、アクセスされた命令が算術演算命令であることを
意味するIID=0をそのアクセス命令が持つならば、
ANDゲート166は、EXECクロック相中に、EX
EC有効と呼ばれる可能化された出力信号を発生する。 また、もしも、アクセスされた命令がロード/ストア命
令であることを意味するIID=1をアクセス命令が持
つならば、ANDゲート168は、ロード/ストア・ク
ロック相中に、LD/ST有効と呼ばれる可能化された
出力信号を発生する。2つの信号、つまり、EXEC有
効及びLD/ST有効は、PCクロック・イネーブルと
呼ばれる信号を発生するために、ORゲート170によ
り論理的にオア(論理和)される。PCクロック・イネ
ーブル信号がオンである場合にはいつでも、ライン15
2上におけるクロック信号の次のパルスがANDゲート
156によって通過され、それにより、プログラム・カ
ウンタPC154をインクリメントする。
【0030】ANDゲート166により発生されるEX
EC有効信号は、マルチプレクサ172が、ノップ命令
か又はEXEC相中にキャッシュ・メモリ・バッファ1
10から読み出されたライン174上での命令コードの
いづれをパイプライン・レジスタ176へロードするの
かを決定する。もしもEXEC相中にアクセスされた命
令が算術演算命令であるならば、この命令はパイプライ
ン・レジスタ176へとロードされるが、さもなければ
、ノップ命令がロードされる。
【0031】同様にして、ANDゲート168により発
生されるLD/ST有効信号は、マルチプレクサ180
がノップ命令か又はLD/ST相中にアクセスされた命
令のいづれをパイプライン・レジスタ182へロードす
るかを決定する。もしもLD/ST相中にアクセスされ
た命令がロード/ストア命令であるならば、この命令は
パイプライン・レジスタ182へとロードされるが、さ
もなければ、ノップ命令がロードされる。
【0032】各フェッチ・サイクルの終り(すなわち、
次のEXEC相の始め)において、パイプライン・レジ
スタ176及び182に記憶された命令コード及び/又
はノップ命令は、それがDSP102のデコーダ114
及び116により解読されるにつれて現行の命令語を記
憶するために使用される別なパイプライン・レジスタ1
86へとロードされる。
【0033】最適の計算効率は交互せるロード/ストア
命令及び算術演算命令でもってプログラムを順番に配列
することによって達成され、もしも理想的な命令シーケ
ンスが達成されないとしても、外部プログラム・メモリ
104での空間は無駄にならない(内部キャッシュ・メ
モリ・バッファ110においても然りである)。
【0034】(第2の好ましい実施例)
【0035】こ
の発明の第2の実施例を示す図5及び図6において、内
部キャッシュ・メモリ200はそのキャッシュから2つ
の命令(すなわち、2列のデータ)を同時にアクセスす
るための二重アドレス・デコーダ202を持っている。 内部キャッシュ・メモリの各列は、30ビット命令コー
ド204と、2つのフラグ、つまり、命令識別子IID
206に加えてグループ化フラグ208とを含んでいる
。この実施例における命令識別子IID206は第1の
好ましい実施例で使用されたものとは反対の定義を持っ
ている。特に、長い命令の上位語及びロード/ストア命
令に対するIIDは0に等しく、そして長い命令の下位
語及び算術演算命令に対するIIDは1に等しい。かく
して、この実施例は3つの型式の命令、すなわち、算術
演算命令、ロード/ストア命令、及び“長い”命令(す
なわち、本質的に、60〜64ビットを占める命令)を
想定している。尚、図5と図6は■乃至■で示される対
応箇所で相互に接続される。
【0036】この発明の実施例における命令前処理回路
210は以下のように動作する。2つのシーケンス状に
記憶される命令がキャッシュ200からアクセスされる
場合、もしも両命令からのグループ化フラグが等しいな
らば、そうした2つの命令は長い命令語へと組み合わさ
れる。もしもグループ化フラグが等しくないとすると、
下位アドレス位置(ここでは、第1のアドレス位置と呼
ばれる)からアクセスされる命令はノップ命令と組み合
わされ、この場合、第2のアクセスされる命令は次の命
令フェッチ・サイクル中に(ジャンプ命令がプログラム
・カウンタに新しい値を再びロードさせるのでなければ
)使用される。かくして、この実施例において、EXE
C及びLD/ST命令の順序は命令を組み合わせるかど
うかを決定するのに使用されない。代って、各命令に対
するグループ化フラグはこの決定をするのに使用される
【0037】この実施例に従って実際に所望の論理を動
作させるには、偶数フラグ(EF)信号を反転させる必
要があるようで、PCが偶数アドレスを指しているとき
、EF=1である。これをチェックしたほうがよい。
【0038】二つのグループ化されたフラグは、“異な
るライン”信号DLを発生するために、排他的ORゲー
ト211へ入力される。DLは、2つのグループ化フラ
グが等しくない(すなわち、長い命令語フォーマットを
用いた場合、2つの命令はプログラムの異なるライン上
にある)ならば、可能化(イネーブルレベルに)される
が、2つのグループ化フラグが等しい場合には無能化(
ディスイネーブルレベルに)される。また、DL信号は
、図5及び図6に示されているように、プログラム・カ
ウンタ214が次の命令フェッチ・サイクルの始めに1
又は2の計数だけインクリメントするかどうかを決定す
るのに使用される。プログラム・カウンタ214により
出力されるアドレス値の最下位ビットは、偶数フラグ(
EF)信号と呼ばれている信号を発生するために反転さ
れる。プログラム・カウンタが偶数アドレスにおける命
令を指しているときでのEFは常に1である。スレーブ
・ユニット215は、プログラム・カウンタの出力+1
に等しい値を出力する。
【0039】2つの命令は各命令フェッチ・サイクル中
に読まれるので、そうした2つの命令の命令識別子間を
区別するために2つのラベルが使用される。特に、2つ
の命令はキャッシュ200でのシーケンシャル状位置(
所定の連続的な配置)から検索されるので、偶数アドレ
ス値(すなわち、ゼロに等しい最下位ビットを持つアド
レス)と、奇数アドレス値とを持つことになる。偶数ア
ドレスにおける命令からのIIDはEIIDと呼ばれ、
そして奇数アドレスにおける命令からのIIDはOII
Dと呼ばれる。偶数アドレスにあるキャッシュの列から
の命令コード204は母線つまりバス216上で伝送さ
れ、奇数アドレスにあるキャッシュの列からの命令コー
ドはバス218上で伝送される。
【0040】次に、2つのアクセスされた命令は1つ又
は両命令をパイプライン・レジスタ220へと適切にロ
ードするように前処理されなければならない。アクセス
された偶数列からのバス216上における命令コードは
、もしもそれがロード/ストア命令(EIID=0)で
あるならば、バッファ224により”0”入力マルチプ
レクサ222へと通過される。もしもそれがプログラム
・カウンタにより指定される命令であるならば、アクセ
スされた命令は共に、パイプライン・レジスタ220へ
とロードされることになる。バッファ224及び228
に対する制御ロジック226は、もしもアクセスされた
命令が共にロード/ストア命令であるとすると、2つの
ロード/ストア命令が同時にライン230上に現われる
のを回避させるように動作する。同様にして、アクセス
された奇数列からのバス218上における命令コードは
、もしもそれがロード/ストア命令(OIID=0)で
あるならば、バッファ228によりマルチプレクサ22
2の”0”入力へと通過され、そしてロジック226は
、これがそのプログラム・カウンタにより指示されてい
る命令であるのかあるいは両アクセスされた命令がパイ
プライン・レジスタ220へとロードされるべきなのか
どうかを決定する。
【0041】バッファ232及び234は、マルチプレ
クサ222に対するのと同じ制御方法を用いて、ライン
240を介してロジック238の制御の下で偶数及び奇
数命令バス216及び218からの命令をマルチプレク
サ236の`0´入力へと通過させるけれども、算術演
算命令(EIID=1又はOIID=1)はそのマルチ
プレクサへと通過される。制御論理回路(ロジック)2
26及び238に対する図6に示されているブール論理
式は一例であり、少ない数のインバータ、NANDゲー
ト及びNORゲートを用いて容易に履行される。
【0042】制御論理回路250及び252は、マルチ
プレクサ222及び236がライン230及び240上
での命令か又はノップ命令のいづれをパイプライン・レ
ジスタ220へ通過させるのかを決定する。もしも2つ
の検索された命令が、DLを0に等しくする同じグルー
プ化フラグを持つならば、論理回路250及び252は
共に、”0”の値を出力して、両マルチプレクサに作用
し、検索された命令(ライン230及び240上で見出
せる)をパイプライン・レジスタ220へと通過させる
。こうした命令は次の命令フェッチ・サイクルの始めに
おいていそのクロック信号によりパイプライン・レジス
タ220へとラッチされる。
【0043】もしも2つの検索された命令が、DLを1
に等しくする、同じグループ化フラグを持たないならば
、論理回路250は、プログラム・カウンタにより指示
される命令が算術演算命令(OIID又はEIID=1
)であることを条件にして、ノップ(NOP)をパイプ
ライン・レジスタ220の”LD/ST”部分へ伝送し
、さもなければ、その”0”入力ポート上における検索
された命令をパイプライン・レジスタ220のLD/S
T部分へと通過させることになる。同様にして、もしも
2つの検索された命令が同じグループ化フラグ(DL=
1)を持たないならば、論理回路252は、プログラム
・カウンタにより指示されている命令がロード/ストア
命令(OIID又はEIID=0)であることを条件に
して、ノップ(NOP)をパイプライン・レジスタ22
0のEXEC部分へ伝送し、さもなければ、その”0”
入力ポート上における検索された命令をパイプライン・
レジスタ220へと通過させることになる。
【0044】図7を参照するに、そこには、図5及び図
6に示されているこの発明の実施例に関連して使用する
ための命令メモリ・キャッシュ200の1つの実施例が
示されている。このメモリ・キャッシュは2つのメモリ
・バンク260及び262を持ち、バンク260は命令
を偶数アドレス位置に記憶するために使用され、バンク
262は命令を奇数アドレス位置に記憶するために使用
される。そこにはまた、2つのプログラム・カウンタ、
つまり、マスタ・プログラム・カウンタ264と、そし
てカウンタ264の出力よりも1だけ大きい値を常に出
力するスレーブ・プログラム・カウンタ266とがある
【0045】両プログラム・カウンタには初期値がロー
ドされている。マスタ・プログラム・カウンタには特定
の値がロードされ、そしてスレーブ・プログラム・カウ
ンタはそれをカウンタ回路270へとロードする前に1
だけその値を漸増させるのにインクリメント回路268
を使用する。その後、両カウンタ264及び266は、
新しい出発アドレスがプログラム・カウンタへとロード
されるまで、各フェッチ・サイクルの始めにおいて同じ
量(1又は2)だけ漸増される。
【0046】2つのプログラム・カウンタ264及び2
66からの出力は、どのカウンタ出力が各メモリ・バン
ク260,262へ行くべきかを決定するのに2つのマ
ルチプレクサ272及び274を必要とするようになっ
ている。マルチプレクサ272は2つの計数値のうち1
つをメモリ・バンク260へ送出し、マルチプレクサ2
74は2つの計数値のうちの他の1つをメモリ・バンク
262へ送出する。特に、マスタ・プログラム・カウン
タ264により出力される計数値の最下位ビット(LS
B)は各マルチプレクサ272,274のうちのどの入
力が使用されるべきなのかを特定するのに使用される。 もしもLSBが0に等しいならば、マスタ・プログラム
・カウンタ264は偶数値を出力し(そしてスレーブ・
カウンタ266は奇数値を出力する)、それ故、マスタ
・プログラム計数値は偶数メモリ・バンク260のため
に使用され、そしてスレーブ・プログラム計数値は奇数
メモリ・バンク262のために使用される。もしもLS
Bが1に等しいとすると、マスタ・プログラム計数値は
奇数メモリ・バンク262のために使用され、そしてス
レーブ・プログラム計数値は奇数メモリ・バンク260
のために使用される。
【0047】本発明を適用するFIRフイルタ・プログ
ラム(FIR  DSP  プログラム)の例を表記す
ると以下のようになる。 (INSTRタイプ)  (  コード  )    
  (  内容/注釈  )[コードの管理区間] EXEC      R3=スケール        
    /*スケーリング定数中の負荷EXEC   
   A0=$0                /
*データのためのベースアドレスEXEC      
A8=$100            /*係数のた
めのベースアドレスEXEC      MR=タップ
_ナンバー    /*モジュロサイズ<フィルタタッ
                         
                   プナンバーE
XEC      A1=タップ_ナンバー2  /*
計数を繰り返す              fsta
rtEXEC      待ち(SIR)      
      /*直列入力を待つEXEC      
R4=sir              /*直列入
力をフェッチEXEC      R4=フロート(R
3)    /*データ変換LD/ST    *A0
=R4              /*最新データと
して記憶LD/ST    R0=*A0++%  R
1=*A8++%LD/ST|EXEC  R0=*A
0++%  R1=*A8++%EXEC      
A1を反復 [コードのナンバー・クランチング区間]LD/ST|
EXEC  R0=*A0++%  /*フィルタ・コ
ア                      R1
=*A8++%                  
  ‖FR2=R0*r1‖FR5+=R2     
               )[コードの管理区間
] EXEC              A0−=$1 
       /*データ・ポインタ  decEXE
C              R5=FI×(R3)
/*データ変換EXEC              
SOR=R5        /*データ・アウトEX
EC              待(SOR)   
     /*直列出力を待つEXEC       
       fstartに戻る
【0048】上記プ
ログラムにおける第1の管理区間に関して、EXEC及
びLD/ST命令に対して30ビット又は32ビットの
長さの命令を使用すると、単一の32ビット命令セット
のみを使用するDSPにおけるよりも一層の機能及びメ
モリ/レジスタ・リソースを可能にする。そのプログラ
ムの”ナンバー・クランチング区間”は並列EXEC及
びLD/ST演算を利用する。ナンバー・クランチング
区間は短いので、すべての命令は、外部プログラム・メ
モリをアクセスすることなしに、メモリ・キャッシュ2
00からアクセスされることになる。更に、ナンバー・
クランチング区間は短いが、それは多くの回数繰り返さ
れて、かかる並列処理が信号処理プログラムの小さな数
のラインのみにおいて使用される場合でさえ、算術演算
命令及びロード/ストア命令の並列処理を有効にする。
【0049】(第3の好ましい実施例)
【0050】図
8及び図9に示されている実施例は、図5及び図6に示
され且つ前に述べた第2の実施例の変形例である。特に
、命令メモリ・キャッシュ300は1ビット命令識別子
IID302を各列に対して含むが、グループ化フラグ
を含んでいない。これは、各命令に対する命令コードを
、30ビットのみに代わって、31ビットの長さにする
のを可能にする。
【0051】この実施例に対する命令プロセッサ回路3
10を履行するには、偶数列命令識別子EIID、奇数
列命令識別子OIID及び偶数フラグEFに基づいて”
差ライン”DL信号(図においてオーバーバーが付され
た信号であり、以下反転DL信号とも記す)を発生する
特別な論理回路312が必要である。特に、反転DL信
号が0に等しくそして2つの検索された命令は、第1の
検索された命令がIID=0としたLD/ST命令であ
りそして第2の検索された命令がIID=1としたEX
EC命令であることを条件に長い命令語へと組み替えら
れる。EF信号は、第1の検索された命令が偶数命令か
又は奇数命令のいづれに対応しているのかを決めるため
に論理回路312により使用され、それにより、次のブ
ール公式が前記反転DL信号に対して使用されることを
可能にする。すなわち: /DL=(EF・/EIID・OIID)+(/EF・
EIID・/OIID)さもなければ、この実施例にお
けるハードウェアは、図5及び図6に示されている第2
の好ましい実施例に対するものと同じである。尚、上記
ブール式において信号の前に付された記号/は反転レベ
ルを意味する。
【0052】この実施例を使用して、もしもプログラマ
が次のプログラム・シーケンス、つまり:LD/ST 
         ノップノップ          
    EXECを意図的にプログラムしたいならば、
プログラマは、外部メモリにおけるノップ命令をLD/
ST命令とEXEC命令との間に挿入しなければならな
い。これは、最終的に実行されるプログラムに対する外
部的に記憶されるプログラムの圧縮比における幾らかの
損失を意味するが、ノップ命令の明確なプログラミング
を必要とする、かかる命令シーケンスはごくまれに生じ
るようである。
【0053】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。例えば外
部プログラムメモリから供給される命令は32ビットに
限定されず、16ビット等その他適宜のビット数であっ
てもよい。
【0054】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるディジ
タル信号処理プロセッサに適用した場合について説明し
たが本発明はそれに限定されるものではなくその他各種
のデータ処理ユニットに適用することができる。
【0055】本発明は、少なくとも外部から取得する命
令語をそれよりもビット数の多い命令に組み替えて命令
解読手段に供給する条件の者に適用することができる。
【0056】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0057】すなわち、単一の命令への一連の短い命令
語の組み替えが、セットにある既定の規則により決定さ
れるような許容された組み合わせを含むときに、それら
一連の短い命令語を外部プログラム・メモリに記憶する
のを可能にするので、メモリ記憶の点ではシステムコス
トの上昇を抑えることができ、且つ、短い命令を長い命
令へと動的に組み替えるのを可能にすることによってプ
ログラムの実行速度を向上させることができるという効
果を得る。
【図面の簡単な説明】
【図1】図1は内部インストラクション・メモリと命令
前処理ユニットを持つディジタル信号プロセッサのブロ
ック図である。
【図2】図2は長い命令語を発生して記憶するための内
部インストラクション・メモリバッファの概念的ブロッ
ク図である。
【図3】図3は図4と共に示す本発明の第1の好ましい
実施例のブロック図である。
【図4】図4は図3と共に示す本発明の第1の好ましい
実施例のブロック図である。
【図5】図5は図6と共に示す本発明の第2の好ましい
実施例のブロック図である。
【図6】図6は図5と共に示す本発明の第2の好ましい
実施例のブロック図である。
【図7】図7は本発明のメモリバッファ部分を履行する
のに適しているメモリバッファのブロック図である。
【図8】図8は図9と共に示す本発明の第3の好ましい
実施例のブロック図である。
【図9】図9は図8と共に示す本発明の第3の好ましい
実施例のブロック図である。
【符号の説明】
100  データ処理システム 102  ディジタル信号処理プロセッサ104  外
部プログラム・メモリ 110  内部メモリ・バッファ 112  命令前処理ユニット 114  ロード/ストア命令デコーダ116  EX
EC命令デコーダ 120  レジスタ 126  算術演算命令欄 128  ロード/ストア欄 122  算術論理演算回路 136  プログラム・カウンタ 138  キャッシュ制御器 140  命令入力デマルチプレクサ 150  命令前処理ユニット 154  プログラムカウンタ 160  フリップフロップ回路 176  パイプラインレジスタ 182  パイプラインレジスタ 186  パイプラインレジスタ 200  内部キャッシュ・メモリ 202  2重アドレスデコーダ 204  命令コード 206  命令識別子IID 208  グループ化フラグ 210  命令前処理ユニット 214  プログラム・カウンタ 220  パイプライン・レジスタ 226,238  ロジック 260,262  メモリバンク 264  マスタ・プログラム・カウンタ266  ス
レーブ・プログラム・カウンタ300  命令メモリ・
キャッシュ 310  命令プロセッサ回路

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】  外部から取得した命令を保持して命令
    解読手段に与えるインストラクションメモリ装置であっ
    て、指定されたアドレス位置に第1の命令が記憶され、
    記憶された第1の命令を含む一対のシーケンス状に隣接
    する命令を同時にアクセスするための手段を含んでいて
    、一連の命令を一連のアドレス位置に記憶するための記
    憶手段と前記記憶手段に接続されていて、前記対にある
    命令が、組み合わされるための既定の基準と一致すると
    きに、前記対にある命令を単一の長い命令語へと組み替
    えるための命令前処理手段とを備えていることを特徴と
    するインストラクションメモリ装置。
  2. 【請求項2】  前記命令前処理手段は、既定の基準に
    一致しないときには、前記対にあるシーケンス状に隣接
    せる命令の前記第1の命令のみから長い命令語を発生す
    ることを特徴とする請求項1記載のインストラクション
    メモリ装置。
  3. 【請求項3】  前記記憶手段及び命令前処理手段に接
    続されていて、前記指定されたアドレスを発生するプロ
    グラム・カウンタを更に含み、前記プログラム・カウン
    タは、前記命令前処理手段が前記対にあるシーケンス状
    に隣接せる命令の前記第1の命令のみから長い命令語を
    発生するときに前記指定されたアドレスを1の値だけ漸
    増させ、前記命令前処理手段が前記対にあるシーケンス
    状に隣接せる命令を単一の長い命令語へと組み替えると
    きに前記指定されたアドレスを2の値だけ漸増させるた
    めの手段を備えていることを特徴とする請求項2記載の
    インストラクションメモリ装置。
  4. 【請求項4】  前記命令前処理手段は、前記既定の基
    準が適合されない場合に、前記対にあるシーケンス状に
    隣接する命令のうちの前記第1の命令のみから長い命令
    語を発生するために前記第1の命令を既定のノップ命令
    と組合わせることにより当該長い命令語を発生する手段
    を含んでいることを特徴とする請求項2記載のインスト
    ラクションメモリ装置。
  5. 【請求項5】  レジスタ・ストア及びロード命令を解
    読する第1の命令デコーダと、演算手段で演算を行うた
    めの命令を解読する第2の命令デコーダとを含むディジ
    タル信号処理ユニットのためのインストラクションメモ
    リ装置であって、指定されたアドレス位置に第1の命令
    が記憶され、記憶された第1の命令を含む一対のシーケ
    ンス状に隣接する命令を同時にアクセスするための手段
    を含んでいて、一連の命令を一連のアドレス位置に記憶
    するための記憶手段と前記記憶手段に接続されていて、
    前記対にある命令が、組み合わされるための既定の基準
    と一致するときに、前記対にある命令を単一の長い命令
    語へと組み替え、前記既定の基準に一致しないときには
    、前記対にあるシーケンス状に隣接せる命令の前記第1
    の命令のみから長い命令語を発生するための命令前処理
    手段とを備え前記既定の基準は、前記対にあるシーケン
    ス状に隣接せる命令の一方がレジスタ・ストア命令とレ
    ジスタ・ロード命令とから成るセットから選ばれた命令
    であり、そして前記対にある命令の他方が演算手段で演
    算を行うための命令であることを特徴とするインストラ
    クションメモリ装置。
  6. 【請求項6】  前記記憶手段及び命令前処理手段に接
    続されていて、前記指定されたアドレスを発生するため
    のプログラム・カウンタを更に含み、前記プログラム・
    カウンタは、前記命令前処理手段が前記対にあるシーケ
    ンス状に隣接せる命令の前記第1のもののみから長い命
    令語を発生するときに前記指定されたアドレスを1の値
    だけ漸増させ、そして前記命令前処理手段が前記対にあ
    るシーケンス状に隣接せる命令を単一の長い命令語へと
    組み合わせるときに前記指定されたアドレスを2の値だ
    け漸増させるための手段を含んでいることを特徴とする
    請求項5記載のインストラクションメモリ装置。
JP3236960A 1990-08-29 1991-08-23 インストラクションメモリ装置 Withdrawn JPH04313121A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US575140 1990-08-29
US07/575,140 US5163139A (en) 1990-08-29 1990-08-29 Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions

Publications (1)

Publication Number Publication Date
JPH04313121A true JPH04313121A (ja) 1992-11-05

Family

ID=24299114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3236960A Withdrawn JPH04313121A (ja) 1990-08-29 1991-08-23 インストラクションメモリ装置

Country Status (4)

Country Link
US (1) US5163139A (ja)
EP (1) EP0473420A3 (ja)
JP (1) JPH04313121A (ja)
KR (1) KR920004962A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257698B2 (en) 2000-05-24 2007-08-14 Nec Corporation Instruction buffer and method of controlling the instruction buffer where buffer entries are issued in a predetermined order

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE146611T1 (de) * 1990-05-04 1997-01-15 Ibm Maschinenarchitektur für skalaren verbundbefehlssatz
US5335330A (en) * 1990-05-14 1994-08-02 Matsushita Electric Industrial Co., Ltd. Information processing apparatus with optimization programming
EP0498067A2 (en) * 1991-02-08 1992-08-12 International Business Machines Corporation Microcode generation for a scalable compound instruction set machine
EP0855647A1 (en) * 1992-01-06 1998-07-29 Hitachi, Ltd. Computer for performing data fetch and data prefetch in parallel
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
US5740465A (en) * 1992-04-08 1998-04-14 Hitachi, Ltd. Array disk controller for grouping host commands into a single virtual host command
DE69329778T2 (de) 1992-09-29 2001-04-26 Seiko Epson Corp., Tokio/Tokyo System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5617549A (en) * 1992-10-06 1997-04-01 Hewlett-Packard Co System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer
US5410721A (en) * 1992-12-24 1995-04-25 Motorola, Inc. System and method for incrementing a program counter
US5761473A (en) * 1993-01-08 1998-06-02 International Business Machines Corporation Method and system for increased instruction synchronization efficiency in a superscalar processsor system utilizing partial data dependency interlocking
US5511174A (en) * 1993-03-31 1996-04-23 Vlsi Technology, Inc. Method for controlling the operation of a computer implemented apparatus to selectively execute instructions of different bit lengths
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US5497493A (en) * 1993-09-30 1996-03-05 Intel Corporation High byte right-shift apparatus with a register alias table
DE69424626T2 (de) * 1993-11-23 2001-01-25 Hewlett-Packard Co., Palo Alto Parallele Datenverarbeitung in einem Einzelprozessor
US5590358A (en) * 1994-09-16 1996-12-31 Philips Electronics North America Corporation Processor with word-aligned branch target in a byte-oriented instruction set
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US5649135A (en) * 1995-01-17 1997-07-15 International Business Machines Corporation Parallel processing system and method using surrogate instructions
US5619408A (en) * 1995-02-10 1997-04-08 International Business Machines Corporation Method and system for recoding noneffective instructions within a data processing system
US5758371A (en) * 1995-05-18 1998-06-02 Vandyke; John Paul Self-propelled independent mechanical handling device
US5848288A (en) * 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
US5751983A (en) * 1995-10-03 1998-05-12 Abramson; Jeffrey M. Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US6484253B1 (en) * 1997-01-24 2002-11-19 Mitsubishi Denki Kabushiki Kaisha Data processor
US20030061471A1 (en) * 1999-07-23 2003-03-27 Masahito Matsuo Data processor
US5881307A (en) * 1997-02-24 1999-03-09 Samsung Electronics Co., Ltd. Deferred store data read with simple anti-dependency pipeline inter-lock control in superscalar processor
US5963723A (en) * 1997-03-26 1999-10-05 International Business Machines Corporation System for pairing dependent instructions having non-contiguous addresses during dispatch
US5898850A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native mode-sensitive instruction within a computer system
US5860060A (en) * 1997-05-02 1999-01-12 Texas Instruments Incorporated Method for left/right channel self-alignment
US6076159A (en) * 1997-09-12 2000-06-13 Siemens Aktiengesellschaft Execution of a loop instructing in a loop pipeline after detection of a first occurrence of the loop instruction in an integer pipeline
US6081884A (en) * 1998-01-05 2000-06-27 Advanced Micro Devices, Inc. Embedding two different instruction sets within a single long instruction word using predecode bits
US6345355B1 (en) * 1998-05-29 2002-02-05 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for distributing commands to a plurality of circuit blocks
US6681319B1 (en) * 1998-10-06 2004-01-20 Texas Instruments Incorporated Dual access instruction and compound memory access instruction with compatible address fields
US6742110B2 (en) * 1998-10-06 2004-05-25 Texas Instruments Incorporated Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution
EP0992906B1 (en) * 1998-10-06 2005-08-03 Texas Instruments Inc. Apparatus and method for software breakpoint in a delay slot
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6826749B2 (en) 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US6453407B1 (en) 1999-02-10 2002-09-17 Infineon Technologies Ag Configurable long instruction word architecture and instruction set
US6446195B1 (en) * 2000-01-31 2002-09-03 Intel Corporation Dyadic operations instruction processor with configurable functional blocks
FR2812417A1 (fr) * 2000-07-27 2002-02-01 St Microelectronics Sa Processeur dsp a architecture parallele
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
EP1197847A3 (en) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
AU2003263491A1 (en) * 2002-10-11 2004-05-04 Koninklijke Philips Electronics N.V. Vliw processor with instruction address modification
US7502029B2 (en) * 2006-01-17 2009-03-10 Silicon Integrated Systems Corp. Instruction folding mechanism, method for performing the same and pixel processing system employing the same
US8904151B2 (en) * 2006-05-02 2014-12-02 International Business Machines Corporation Method and apparatus for the dynamic identification and merging of instructions for execution on a wide datapath
US8055852B2 (en) 2007-08-15 2011-11-08 Micron Technology, Inc. Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same
US8291174B2 (en) * 2007-08-15 2012-10-16 Micron Technology, Inc. Memory device and method having on-board address protection system for facilitating interface with multiple processors, and computer system using same
US7822911B2 (en) * 2007-08-15 2010-10-26 Micron Technology, Inc. Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
US7836282B2 (en) * 2007-12-20 2010-11-16 International Business Machines Corporation Method and apparatus for performing out of order instruction folding and retirement
US10026458B2 (en) 2010-10-21 2018-07-17 Micron Technology, Inc. Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size
US20130013895A1 (en) * 2011-07-06 2013-01-10 Fs-Semi Co., Ltd. Byte-oriented microcontroller having wider program memory bus supporting macro instruction execution, accessing return address in one clock cycle, storage accessing operation via pointer combination, and increased pointer adjustment amount
US9329869B2 (en) 2011-10-03 2016-05-03 International Business Machines Corporation Prefix computer instruction for compatibily extending instruction functionality
US9354874B2 (en) * 2011-10-03 2016-05-31 International Business Machines Corporation Scalable decode-time instruction sequence optimization of dependent instructions
US9286072B2 (en) * 2011-10-03 2016-03-15 International Business Machines Corporation Using register last use infomation to perform decode-time computer instruction optimization
US9575755B2 (en) * 2012-08-03 2017-02-21 International Business Machines Corporation Vector processing in an active memory device
US9632777B2 (en) 2012-08-03 2017-04-25 International Business Machines Corporation Gather/scatter of multiple data elements with packed loading/storing into/from a register file entry
US9569211B2 (en) 2012-08-03 2017-02-14 International Business Machines Corporation Predication in a vector processor
US9594724B2 (en) 2012-08-09 2017-03-14 International Business Machines Corporation Vector register file
US9424045B2 (en) * 2013-01-29 2016-08-23 Arm Limited Data processing apparatus and method for controlling use of an issue queue to represent an instruction suitable for execution by a wide operand execution unit
KR20150107138A (ko) * 2014-03-13 2015-09-23 주식회사 에이디칩스 마이크로프로세서에서의 명령어 디코딩 방법
US11080059B1 (en) 2020-03-30 2021-08-03 Sandisk Technologies Llc Reducing firmware size and increasing firmware performance

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3611306A (en) * 1969-02-05 1971-10-05 Burroughs Corp Mechanism to control the sequencing of partially ordered instructions in a parallel data processing system
JPS514381B1 (ja) * 1969-11-24 1976-02-10
BE789583A (fr) * 1971-10-01 1973-02-01 Sanders Associates Inc Appareil de controle de programme pour machine de traitement del'information
US3771141A (en) * 1971-11-08 1973-11-06 Culler Harrison Inc Data processor with parallel operations per instruction
US3775756A (en) * 1972-04-20 1973-11-27 Gen Electric Programmable special purpose processor having simultaneous execution and instruction and data access
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4471426A (en) * 1981-07-02 1984-09-11 Texas Instruments Incorporated Microcomputer which fetches two sets of microcode bits at one time
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
JPH0754461B2 (ja) * 1985-02-08 1995-06-07 株式会社日立製作所 情報処理装置
US4794517A (en) * 1985-04-15 1988-12-27 International Business Machines Corporation Three phased pipelined signal processor
JPH0762823B2 (ja) * 1985-05-22 1995-07-05 株式会社日立製作所 デ−タ処理装置
EP0239081B1 (en) * 1986-03-26 1995-09-06 Hitachi, Ltd. Pipelined data processor capable of decoding and executing plural instructions in parallel
SE454921B (sv) * 1986-10-03 1988-06-06 Ellemtel Utvecklings Ab Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instuktionssekvenser
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
US4837678A (en) * 1987-04-07 1989-06-06 Culler Glen J Instruction sequencer for parallel operation of functional units
JPS63253433A (ja) * 1987-04-10 1988-10-20 Hitachi Ltd 演算処理装置
US4943915A (en) * 1987-09-29 1990-07-24 Digital Equipment Corporation Apparatus and method for synchronization of a coprocessor unit in a pipelined central processing unit
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US4953078A (en) * 1987-10-28 1990-08-28 Digital Equipment Corporation Apparatus and method for multi-threaded program execution in a microcoded data processing system
US4949250A (en) * 1988-03-18 1990-08-14 Digital Equipment Corporation Method and apparatus for executing instructions for a vector processing system
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置
US5051885A (en) * 1988-10-07 1991-09-24 Hewlett-Packard Company Data processing system for concurrent dispatch of instructions to multiple functional units

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257698B2 (en) 2000-05-24 2007-08-14 Nec Corporation Instruction buffer and method of controlling the instruction buffer where buffer entries are issued in a predetermined order

Also Published As

Publication number Publication date
EP0473420A2 (en) 1992-03-04
US5163139A (en) 1992-11-10
KR920004962A (ko) 1992-03-28
EP0473420A3 (en) 1993-10-13

Similar Documents

Publication Publication Date Title
JPH04313121A (ja) インストラクションメモリ装置
US7694109B2 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
US5269007A (en) RISC system capable of simultaneously executing data interlocked shift and arithmetic/logic instructions in one clock cycle by bypassing register
US6601158B1 (en) Count/address generation circuitry
US6832117B1 (en) Processor core for using external extended arithmetic unit efficiently and processor incorporating the same
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
WO2008016902A1 (en) Method and system to combine multiple register units within a microprocessor
JP2620511B2 (ja) データ・プロセッサ
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
WO1997032249A1 (en) System for performing arithmetic operations with single or double precision
CN108319559B (zh) 用于控制矢量内存存取的数据处理装置及方法
WO2018115807A1 (en) Vector generating instruction
US6851033B2 (en) Memory access prediction in a data processing apparatus
US5504923A (en) Parallel processing with improved instruction misalignment detection
US5367648A (en) General purpose memory access scheme using register-indirect mode
WO2000068783A2 (en) Digital signal processor computation core
US6438680B1 (en) Microprocessor
US4896264A (en) Microprocess with selective cache memory
US7134000B2 (en) Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
KR101715456B1 (ko) 스레드 오프셋 카운터
US7721054B2 (en) Speculative data loading using circular addressing or simulated circular addressing
CN111984314A (zh) 使用位反转顺序的矢量存储
US20050114626A1 (en) Very long instruction word architecture
JP2636821B2 (ja) 並列処理装置
JP3102399B2 (ja) データ処理装置及び方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19981112