JPH11282676A - 演算処理方法およびマイクロプロセッサ装置 - Google Patents

演算処理方法およびマイクロプロセッサ装置

Info

Publication number
JPH11282676A
JPH11282676A JP7982698A JP7982698A JPH11282676A JP H11282676 A JPH11282676 A JP H11282676A JP 7982698 A JP7982698 A JP 7982698A JP 7982698 A JP7982698 A JP 7982698A JP H11282676 A JPH11282676 A JP H11282676A
Authority
JP
Japan
Prior art keywords
instruction
memory
register
stage
arithmetic processing
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
JP7982698A
Other languages
English (en)
Inventor
Tetsuo Miyoshi
徹男 三好
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP7982698A priority Critical patent/JPH11282676A/ja
Publication of JPH11282676A publication Critical patent/JPH11282676A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】レジスタ−メモリ間演算を効率よいパイプライ
ン処理を維持した状態で行いたい。 【解決手段】通常のメモリ−アクセスのためのアドレス
出力は、経路を介してMEMステージに出力される。
レジスタ−メモリ間演算のためのロード命令のアドレス
出力は、経路およびを介してALUステージに出力
される。経路は、ソース側のロードデータが必要な場
合のパスであり、経路は、デスティネーション側のロ
ードデータが必要な場合のパスである。経路は、命令
実行後の最後のストア命令のためのアドレス出力のパス
である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高速にパイプライ
ン処理が行えるマイクロプロセッサ装置および演算処理
方法に関する。
【0002】
【従来の技術】従来のRISCでは、ロード/ストアの
アーキテクチャをとっているために、演算は全てレジス
タ−レジスタ間で行われる。一方で、組み込み用途のC
RISCでは、コードサイズの問題などから、レジスタ
−メモリ間の演算を基本的な命令に関してサポートして
いるものが多い。たとえば、(1)〜(3)に示すよう
な加算命令などである。
【0003】
【数1】 add.w #imm:16, @RWd …(1) add.w RWs, @RWd …(2) add.w @RWS, RWD …(3)
【0004】この命令を実行するためには、まずメモリ
からデータをロードしてきて、演算を行い、必要に応じ
てメモリまたはレジスタファイルにデータを書き戻すと
いう処理を行うことになる。
【0005】ところで、通常行われている、たとえば命
令(インスラクション)フェッチ&デコードステージ
(ID)、レジスタフェッチステージ(RF)、演算実
行ステージ(ALU)、メモリーステージ(MEM)お
よびライトバックステージ(WB)というような5つの
ステージからなるパイプライン処理を行う場合、ロード
命令のメモリアドレス出力は、ALUステージで行うよ
うにしているものが多い。また、メモリに対するアドレ
スの出力を、図6に示すように、MEMステージで行
い、ロードデータの取り込みおよびストアデータの書き
込みを、WBステージの前半期間であるフェーズΦ1で
行うようにしたものもある。
【0006】
【発明が解決しようとする課題】しかしながら、前述し
たような方法では、いずれにおいても結果的にパイプラ
イン処理にインターロックがかかってしまい、効率よく
処理をすることができなくなってしまうという問題があ
る。
【0007】前述したような、ALUステージでロード
命令のメモリアドレスを出力する方法においては、たと
えばポストインクリメント、プリデクリメント、ディス
プレースメント付きレジスタ間などのアドレッシングモ
ードなどの、メモリのアドレス計算を行う必要のある命
令については、そのたびにALUのステージに1回イン
ターロックをかける必要が生じる。また、このアドレス
計算には、通常、アドレス系のデータバスのアダーを使
って実行アドレスを計算させていているものが多く、別
途アダーなどの回路が必要となるため、回路規模が大き
くなるという問題もある。
【0008】また、MEMステージでアドレス出力を行
う方法によれば、実行アドレス計算を必要とするような
命令についてはインターロックをかけなくても済むとい
う利点があるが、ロード遅延に対する処置をコンパイラ
の技術を使って最適化しなければならないという問題が
生じる。図6に示すタイミングで単純にレジスタ−メモ
リ間の演算を行うと、図7に示すように、4サイクル目
のALUステージで使用するロードデータが1サイクル
目のWBステージ以降でないと確定しないため、2サイ
クル目と3サイクル目にインターロックがかかり、実行
に4パイプラインサイクルかかってしまうのである。
【0009】したがって、本発明の目的は、回路規模を
大きくすることなく、レジスタ−メモリ間の演算に要す
るサイクル数を少しでも短縮し、効率よくパイプライン
処理が行え、ひいては所望の演算処理を高速に行えるよ
うな、演算処理方法を提供することにある。また、本発
明の他の目的は、回路規模を大きくすることなく、レジ
スタ−メモリ間の演算に要するサイクル数を少しでも短
縮し、効率よくパイプライン処理が行え、ひいては所望
の演算処理を高速に行えるような、マイクロプロセッサ
装置を提供することにある。
【0010】
【課題を解決するための手段】前記課題を解決するため
に、本願発明者は前記レジスタ−メモリ間の演算がアド
レス計算を必要としない命令に限られていることに着目
し、レジスタ−メモリ間演算の最初のロード命令の実行
を、通常のロード命令より1サイクル前で行うようにし
た。
【0011】したがって、本発明の演算処理方法は、各
々所定のサイクル期間内に行われる複数のステージの処
理を順次行うことにより、入力される1つの命令に対応
した所望の処理を行う演算処理方法であって、レジスタ
−メモリ間演算に係わるメモリロードアドレスの出力
を、それ以外の処理に係わるメモリロードアドレスの出
力より1ステージ早く行うことを特徴とする。
【0012】特定的には、前記1の命令に対応した処理
を行うための前記複数のステージは、当該命令をフェッ
チする処理を含む第1のステージ、当該命令に係わるデ
ータをレジスタにフェッチする処理を含む第2のステー
ジ、当該命令に基づく演算を実行する処理を含む第3の
ステージ、当該演算結果を記憶する処理を含む第4のス
テージ、当該演算結果を書き出す処理を含む第5のステ
ージの5つのステージであって、レジスタ−メモリ間演
算に係わるロードアドレス出力は前記第3のステージの
期間に行い、それ以外のロードアドレス出力は、前記第
4のステージの期間に行う。
【0013】また、本発明のマイクロプロセッサ装置
は、1の命令に対する処理を、各々所定のサイクル期間
内に行われる複数のステージの処理を順次行うことによ
り行うマイクロプロセッサ装置であって、入力された命
令に基づく所望の演算処理を行う演算処理手段と、メモ
リアクセスアドレス信号として、前記命令がレジスタ−
メモリ間演算処理に係わる命令であった場合には、前記
演算処理手段に印加される信号を選択し出力し、前記命
令が前記レジスタ−メモリ間演算処理以外の前記メモリ
アクセスに係わる命令であった場合には、前記演算処理
の結果の信号を選択し出力する選択手段とを有する。
【0014】好適には、前記選択手段は、前記命令がレ
ジスタ−メモリ間演算処理に係わる命令であった場合に
は、当該命令に基づいて、前記演算処理手段に印加され
るソースレジスタリード信号またはデスティネーション
レジスタリード信号のいずれかを、前記メモリアクセス
アドレス信号として選択し出力する。
【0015】特定的には、前記1の命令に対応した処理
を行うための前記複数のステージは、当該命令をフェッ
チする処理を含む第1のステージ、当該命令に係わるデ
ータをレジスタにフェッチする処理を含む第2のステー
ジ、当該命令に基づく演算を実行する処理を含む第3の
ステージ、当該演算結果を記憶する処理を含む第4のス
テージ、当該演算結果を書き出す処理を含む第5のステ
ージの5つのステージであって、前記選択手段は、前記
命令がレジスタ−メモリ間演算に係わる命令であった場
合には、前記第3のステージの期間に、前記演算処理手
段に印加される信号を前記メモリアクセスアドレス信号
として選択し出力し、前記命令が前記レジスタ−メモリ
間演算処理以外の前記メモリアクセスに係わる命令であ
った場合には、前記第4のステージの期間に、前記演算
処理の結果の信号を前記メモリアクセスアドレス信号と
して選択し出力する。
【0016】好適には、前記デスティネーションレジス
タリード信号を、前記演算処理手段により前記演算処理
が行われる期間遅延させる遅延手段をさらに有し、前記
選択手段は、前記命令が、当該命令に基づく演算結果を
メモリに記憶する処理を含む命令であった場合には、前
記遅延されたデスティネーションレジスタリード信号を
前記メモリアクセスアドレス信号として選択する。
【0017】
【発明の実施の形態】本発明の一実施の形態について図
1〜図5を参照して説明する。まず、本実施の形態のマ
イクロプロセッサ装置で行うパイプライン処理につい
て、図1および図2を参照して説明する。まず、本実施
の形態のマイクロプロセッサ装置は、16ビットのCP
Uを有し、命令セットとしては、命令1ワード(W)
(2バイト(B))命令、2W命令、3W命令があるも
のとする。そして、このマイクロプロセッサ装置は、1
つの命令の実行過程を、図1に示すような,命令(イン
スラクション)フェッチ&デコードステージ(ID)、
レジスタフェッチステージ(RF)、演算実行ステージ
(ALU)、メモリーステージ(MEM)、ライトバッ
クステージ(WB)の5つのパイプラインステージに分
割し、それらをオーバラップ処理する。すなわち、複数
の命令について、その開始を1ステージ分ずつずらし
て、順次並行に行う。
【0018】これらの各ステージは、図2に示されるよ
うな基準信号(クロック)により規定される各サイクル
ごとに進行される。1つのサイクルは、その前半部分で
あるフェーズΦ1と、後半部分であるフェーズΦ2とに
分割される。この各フェーズの期間は、たとえば、サイ
クルを示す基準クロックのデューティ比などにより任意
に決定すればよく、本実施の形態においては50%とす
る。すなわち、フェーズΦ1とフェーズΦ2は、各々1
サイクルの1/2期間ずつの前半部分および後半部分と
する。また、各フェーズに対しては、そのフェーズの期
間において所定の信号レベル(本実施の形態においては
Hレベル)になるようなクロック(CLK1,CLK
2)が発生されており、後述する、マイクロプロセッサ
装置の各部の動作は、これらのクロック信号が参照され
て適宜所望のタイミングで実行される。
【0019】次に、本実施の形態のマイクロプロセッサ
装置の、本発明に係わるALUデータパスの構成につい
て説明する。図3は、本実施の形態のマイクロプロセッ
サ装置100に係わる、ALUデータパスの構成を示す
図である。マイクロプロセッサ装置100は、レジスタ
ファイル110、3個のマルチプレクサ120-1〜12
-3、2個のALU130-1,130-2、12個のレジ
スタ140-1〜140-12 および出力制御ゲート150
が図示のごとく接続された構成である。
【0020】レジスタファイル110は、マイクロプロ
セッサ装置100のALUに対して演算対象のデータを
提供するためのレジスタである。レジスタファイル11
0は、ソースレジスタリードポート111、デスティネ
ーションレジスタライトポート112、デスティネーシ
ョンレジスタリードポート113を有しており、デステ
ィネーションレジスタについては同時的に読み書きする
ことができる。第1および第2のマルチプレクサ120
-1,120-2は、ALU130-1に入力されるデータを
選択するための切り換え器である。
【0021】第3のマルチプレクサ120-3は、内部ア
ドレスバス(IABL)に出力するアドレスを選択する
切り換え器である。第3のマルチプレクサ120-3
は、ALU130-1,130-2で演算が行われたアドレ
ス、ソースレジスタで指定されたソース側のデータをロ
ードするためのアドレス、デスティネーションレジスタ
で指定されたデスティネーション側のデータをロードす
るためのアドレス、および、デスティネーション側のデ
ータアドレスであって演算結果を格納するために2段の
レジスタを介してタイミングが調整されたアドレスが入
力されており、実行される命令の種類および用いるデー
タの種類などにより適宜選択される。
【0022】ALU130-1,130-2は、マイクロプ
ロセッサ装置100の演算処理部である。レジスタ14
-1〜140-12 は、各パスにおいて、同期をもってパ
イプライン処理を行うために設けられたレジスタであ
る。各レジスタは、図示のごとく、フェーズΦ1または
フェーズΦ2のいずれかにおいて印加されているデータ
を記憶し、後段の処理部に対して出力する。出力制御ゲ
ート150は、外部データバスに対するデータの出力を
制御するためのゲートである。また、IABLは、内部
アドレスバスで、データページ方式では、上位DP(デ
ータページ)とコンカチネートされたアドレスがメモリ
アドレスとして外部アドレスバスに出力される。また、
EDBは外部データバスである。
【0023】次に、このような構成のマイクロプロセッ
サ装置100のALU周辺データパスにおいて、種々の
状態に応じて出力アドレスが選択される状態について説
明する。まず、通常のメモリ−アクセスのためのアドレ
ス出力は、図3の経路を通って出力される。この経路
でのメモリアクセスのためのアドレス出力は、MEMス
テージで行われる。アドレス計算の必要なものは、AL
Uステージで実行アドレスが計算され、この経路を介し
てアドレスが出力される。
【0024】図3の経路と経路は、レジスタ−メモ
リ間演算のためのロード命令のアドレス出力の経路であ
る。この経路でのアドレス出力は、ALUステージで行
われる。経路は、"add.w @RWs, RWd"といったような
命令で、ソース側のロードデータが必要な場合のパスで
ある。また、経路は、"add.w RWs, @RWd"といったよ
うな命令で、デスティネーション側のロードデータが必
要な場合のパスである。
【0025】経路は、"add.w RWs, @RWd"といったよ
うな命令の最後のストア命令のためのアドレス出力のパ
スである。この場合、ALUのデータパスを使って演算
が実行されるため、ストア命令のためのアドレスは、こ
の経路を使ってバイパスされて出力される。
【0026】この他、マイクロプロセッサ装置100
は、アドレスバイパスの経路の他に、データのバイパス
経路を有している。この経路は、たとえば、"mov.w
RWs, @(disp:16,RWd)"といったストア命令において、経
路を使ってメモリの実効アドレスが計算されるための
ストアデータのバイパス経路である。ストアデータは、
この経路を通って、外部データバスに出力される。
【0027】最後に、このような構成を有するマイクロ
プロセッサ装置100における、レジスタ−メモリ間演
算の動作について説明する。図4は、そのマイクロプロ
セッサ装置100における、レジスタ−メモリ間演算の
パイプライン動作、および、そのロード命令のバスタイ
ミングを示す図である。図3に示すような構成により、
レジスタ−メモリ間演算の場合のみ、そのデータの最初
のロード命令は,図4に示すように、通常のロード命令
より1サイクルまえのサイクルで実行される。すなわ
ち、ロード命令のためのメモリロードアドレス出力は,
ALUのステージで行われる。その結果、ロードデータ
はMEMステージのフェーズΦ1の終わりに、実行ユニ
ットに取り込まれる。したがって、これまで2サイクル
にわたってかかっていたインターロックが、2サイクル
ですむようになり、合計3パイプラインサイクルでレジ
スタ−メモリ間演算が行える。
【0028】このように、本実施の形態のマイクロプロ
セッサ装置100によれば、一般にCRISCでは限ら
れているメモリ−アドレス計算を必要としないレジスタ
−メモリ間演算のみをサポートするようにし、図3に示
すように、ALU周辺回路として、なアドレスおよびデ
ータのバイパス回路を付加した。これにより、ALUデ
ータパスでの実行内容を適宜選択してやることで、デー
タ系のアドレスのデータパスの機能をALUで代行して
行わせることができ、レジスタ−メモリ間演算を従来よ
り1サイクル短い3パイプラインサイクルで実行できる
上に、アドレス系のためのアダーなどが不要となり、コ
ンパクトなコア設計が可能となった。
【0029】なお,本方式では、メモリアクセスのため
のアドレス出力が、レジスタ−メモリ間演算のためのロ
ード命令に限りALUステージで出力されるため、この
命令のひとつ前の命令が通常のロード/ストア命令であ
った場合、図5に示すようにパイプラインのMEMステ
ージとALUステージでリソースの競合が起きる。その
場合には、図5に示すように,2番目の命令のALUス
テージに1回のインターロックをかけて、2番目の命令
のアドレス出力を1サイクル遅らせばよい。
【0030】
【発明の効果】以上説明したように、本発明によれば、
回路規模を大きくすることなく、レジスタ−メモリ間の
演算に要するサイクル数を3サイクルで行うことがで
き、効率よくパイプライン処理が行え、所望の演算処理
を高速に行えるような、演算処理方法およびマイクロプ
ロセッサ装置を提供することができる。
【図面の簡単な説明】
【図1】図1は、本発明の一実施の形態のマイクロプロ
セッサ装置で行われるパイプライン処理を説明するため
の図である。
【図2】図2は、本発明の一実施の形態のマイクロプロ
セッサ装置の基準動作サイクルおよび動作フェーズを説
明するための図である。
【図3】図3は、本発明の一実施の形態のマイクロプロ
セッサ装置のALUおよびその周辺データパスの構成を
示すブロック図である。
【図4】図4は、図3に示したマイクロプロセッサ装置
におけるレジスタ−メモリ間演算の動作を説明するため
の図である。
【図5】図5は、図3に示したマイクロプロセッサ装置
においてレジスタ−メモリ間演算を行う場合の、インタ
ーロック条件を説明するための図である。
【図6】図6は、従来のロードデータの取り込みおよび
ストアデータの書き込みタイミングを説明するたの図で
ある。
【図7】図7は、従来のレジスタ−メモリ間演算の動作
を説明するための図である。
【符号の説明】
100…マイクロプロセッサ装置、110…レジスタフ
ァイル、111…ソースレジスタリードポート、112
…デスティネーションレジスタライトポート、113…
デスティネーションレジスタリードポート、120…マ
ルチプレクサ、130…ALU、140…レジスタ、1
50…出力制御ゲート

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】各々所定のサイクル期間内に行われる複数
    のステージの処理を順次行うことにより、入力される1
    つの命令に対応した所望の処理を行う演算処理方法であ
    って、 レジスタ−メモリ間演算に係わるメモリロードアドレス
    の出力を、それ以外の処理に係わるメモリロードアドレ
    スの出力より1ステージ早く行うことを特徴とする演算
    処理方法。
  2. 【請求項2】前記1の命令に対応した処理を行うための
    前記複数のステージは、当該命令をフェッチする処理を
    含む第1のステージ、当該命令に係わるデータをレジス
    タにフェッチする処理を含む第2のステージ、当該命令
    に基づく演算を実行する処理を含む第3のステージ、当
    該演算結果を記憶する処理を含む第4のステージ、当該
    演算結果を書き出す処理を含む第5のステージの5つの
    ステージであって、 レジスタ−メモリ間演算に係わるロードアドレス出力は
    前記第3のステージの期間に行い、 それ以外のロードアドレス出力は、前記第4のステージ
    の期間に行う請求項1に記載の演算処理方法。
  3. 【請求項3】1の命令に対する処理を、各々所定のサイ
    クル期間内に行われる複数のステージの処理を順次行う
    ことにより行うマイクロプロセッサ装置であって、 入力された命令に基づく所望の演算処理を行う演算処理
    手段と、 メモリアクセスアドレス信号として、前記命令がレジス
    タ−メモリ間演算処理に係わる命令であった場合には、
    前記演算処理手段に印加される信号を選択し出力し、前
    記命令が前記レジスタ−メモリ間演算処理以外の前記メ
    モリアクセスに係わる命令であった場合には、前記演算
    処理の結果の信号を選択し出力する選択手段とを有する
    マイクロプロセッサ装置。
  4. 【請求項4】前記選択手段は、前記命令がレジスタ−メ
    モリ間演算処理に係わる命令であった場合には、当該命
    令に基づいて、前記演算処理手段に印加されるソースレ
    ジスタリード信号またはデスティネーションレジスタリ
    ード信号のいずれかを、前記メモリアクセスアドレス信
    号として選択し出力する請求項3に記載のマイクロプロ
    セッサ装置。
  5. 【請求項5】前記1の命令に対応した処理を行うための
    前記複数のステージは、当該命令をフェッチする処理を
    含む第1のステージ、当該命令に係わるデータをレジス
    タにフェッチする処理を含む第2のステージ、当該命令
    に基づく演算を実行する処理を含む第3のステージ、当
    該演算結果を記憶する処理を含む第4のステージ、当該
    演算結果を書き出す処理を含む第5のステージの5つの
    ステージであって、 前記選択手段は、前記命令がレジスタ−メモリ間演算に
    係わる命令であった場合には、前記第3のステージの期
    間に、前記演算処理手段に印加される信号を前記メモリ
    アクセスアドレス信号として選択し出力し、前記命令が
    前記レジスタ−メモリ間演算処理以外の前記メモリアク
    セスに係わる命令であった場合には、前記第4のステー
    ジの期間に、前記演算処理の結果の信号を前記メモリア
    クセスアドレス信号として選択し出力する請求項4に記
    載のマイクロプロセッサ装置。
  6. 【請求項6】前記デスティネーションレジスタリード信
    号を、前記演算処理手段により前記演算処理が行われる
    期間遅延させる遅延手段をさらに有し、 前記選択手段は、前記命令が、当該命令に基づく演算結
    果をメモリに記憶する処理を含む命令であった場合に
    は、前記遅延されたデスティネーションレジスタリード
    信号を前記メモリアクセスアドレス信号として選択する
    請求項5に記載のマイクロプロセッサ装置。
JP7982698A 1998-03-26 1998-03-26 演算処理方法およびマイクロプロセッサ装置 Pending JPH11282676A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7982698A JPH11282676A (ja) 1998-03-26 1998-03-26 演算処理方法およびマイクロプロセッサ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7982698A JPH11282676A (ja) 1998-03-26 1998-03-26 演算処理方法およびマイクロプロセッサ装置

Publications (1)

Publication Number Publication Date
JPH11282676A true JPH11282676A (ja) 1999-10-15

Family

ID=13701026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7982698A Pending JPH11282676A (ja) 1998-03-26 1998-03-26 演算処理方法およびマイクロプロセッサ装置

Country Status (1)

Country Link
JP (1) JPH11282676A (ja)

Similar Documents

Publication Publication Date Title
US7694109B2 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
US6061779A (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
JP3954171B2 (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
JP3237858B2 (ja) 演算装置
US20070260857A1 (en) Electronic Circuit
US20240004663A1 (en) Processing device with vector transformation execution
JPH09237184A (ja) 命令実行方法および命令実行装置
US6670895B2 (en) Method and apparatus for swapping the contents of address registers
JPH11282676A (ja) 演算処理方法およびマイクロプロセッサ装置
JP2584156B2 (ja) プログラム制御型プロセッサ
US8255672B2 (en) Single instruction decode circuit for decoding instruction from memory and instructions from an instruction generation circuit
JP3526773B2 (ja) マルチプロセッサ装置およびその制御方法
JP2001092658A (ja) データ処理回路及びデータ処理装置
JP3524240B2 (ja) 並列命令処理装置
JP2933848B2 (ja) データ処理装置
JPH05173778A (ja) データ処理装置
JP4151497B2 (ja) パイプライン処理装置
EP0332849A2 (en) Sequence controller for controlling next operating state with a short delay
JPS6028014B2 (ja) マイクロプロセツサ
JPH1049366A (ja) マイクロコンピュータ
JPH03164945A (ja) データ処理装置
JPH0792902A (ja) プログラマブルコントローラ
JP2000066893A (ja) 演算処理装置
JPH05204748A (ja) マイクロプロセッサ