JP3877650B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP3877650B2
JP3877650B2 JP2002183754A JP2002183754A JP3877650B2 JP 3877650 B2 JP3877650 B2 JP 3877650B2 JP 2002183754 A JP2002183754 A JP 2002183754A JP 2002183754 A JP2002183754 A JP 2002183754A JP 3877650 B2 JP3877650 B2 JP 3877650B2
Authority
JP
Japan
Prior art keywords
instruction
address
conditional branch
block
branch
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
JP2002183754A
Other languages
English (en)
Other versions
JP2004030085A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2002183754A priority Critical patent/JP3877650B2/ja
Priority to US10/602,640 priority patent/US7178012B2/en
Priority to CNB031452450A priority patent/CN1259624C/zh
Publication of JP2004030085A publication Critical patent/JP2004030085A/ja
Application granted granted Critical
Publication of JP3877650B2 publication Critical patent/JP3877650B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、各種演算処理用としてメモリ上の命令に従って条件分岐の処理実行を制御する半導体装置に関するものである。
【0002】
【従来の技術】
従来から、各種演算処理用として広く用いられ、メモリ内に格納された命令プログラムに従って各種処理を実行する半導体装置では、条件分岐制御として、分岐成立かもしくは不成立かにより当該アドレスに分岐する条件分岐を実行する際に、予め予測した条件分岐に対して命令フェッチを実行しておいて、分岐条件が確定した後で、予め予測して実行していた命令フェッチが正しければ、そのまま処理を続行し、間違っていれば、一旦、処理をアボートして、命令を再実行するように、条件分岐の処理実行を制御している。
【0003】
このような従来の半導体装置について、図面を用いて以下に説明する。
図13は従来の半導体装置の構成を示すブロック図である。従来の半導体装置は、図13に示すように、命令コードからなる命令プログラムがデータとして格納された命令メモリ1と、命令メモリ1からの命令プログラムデータ6をフェッチする命令フェッチブロック(以下、IFBとする)2と、命令プログラムを構成する命令コード7をデコードするデコードブロック(以下、DECBとする)3と、デコードされた命令に対応する制御信号8に基づいて命令を実行する実行ブロック(以下、EXBとする)4とによって構成されている。
【0004】
上記の構成において、IFB2から命令メモリ1へアドレス5が入力され、命令メモリ1からIFB2へデータ6が出力され、IFB2からDECB3へ命令コード7が出力され、DECB3からEXB4へは制御信号8が出力され、EXB4からは条件分岐成立信号(以下、BRTKNとする)9がIFB2とDECB3へ入力されている。各ブロックへはシステムクロック信号CLKが入力され、同一CLKによるタイミングに基づいてパイプライン動作が行われている。
【0005】
以上のように構成された従来の半導体装置において、条件分岐命令を実行する場合について、その動作を以下に説明する。
図14は従来の半導体装置の条件分岐命令実行の際のタイミングチャートである。図14において、aの期間では、IFB2においてレジスタ間の差演算SUB D2、D1のフェッチが行われる。
【0006】
bの期間では、IFB2においては条件分岐命令BEQ disp8のフェッチが行われ、DECB3ではSUB D2、D1のデコードが行われる。条件分岐命令BEQ disp8は直前のフラグ変化命令によってゼロフラグが1になった場合に分岐する命令である。すなわち演算結果がゼロになると分岐し、それ以外では分岐せず、次の命令を実行していく。
【0007】
cの期間では、IFB2においては通常の次の命令であるAND D0、D1のフェッチが行われ、DECB3においてはBEQ disp8のデコードが行われ、EXB4においてはSUB D2、D1の実行が行われる。演算結果がゼロ(ゼロフラグが1)になる場合には、cの期間の最中に条件分岐成立信号BRTKN9が生成される(Hレベル)。
【0008】
dの期間では、BRTKN9を反映して、IFB2においては分岐先命令のMOV D2、A0のフェッチが行われ、DECB3においては分岐不成立を予測してフェッチしていたAND D0、D1のデコードを実行するが、EXB4においてBEQ disp8の実行が行われる。すなわち、BRTKN9を反映してDECB3におけるMOV D2、A0のデコードを無効にする。
【0009】
eの期間では、DECB3において分岐先命令のMOV D2、A0のデコードが実行され、EXB4においては、BRTKN9によってAND D0、D1のデコードが実行されずに無効化されたため、何の処理も実行されない。
【0010】
fの期間では、分岐先命令のMOV D2、A0が実行される。
【0011】
【発明が解決しようとする課題】
しかしながら上記のような従来の半導体装置においては、予め予測して実行した命令フェッチが間違っていた場合、つまり条件分岐が成立の場合には、予測してフェッチした命令の実行処理を無効化するため、命令フェッチの予測実行により無駄になる実行サイクルが発生し、処理性能の低下を招いてしまうという問題点を有していた。
【0012】
本発明は、上記従来の問題点を解決するもので、従来のような無駄な実行サイクルの発生による処理性能の低下を防ぐことができる半導体装置を提供する。
【0013】
【課題を解決するための手段】
上記の課題を解決するために本発明の請求項1に記載の半導体装置は、アドレスに対応させて命令コードからなる命令プログラムがデータとして格納された命令メモリと、前記命令プログラムデータをフェッチする命令フェッチブロックと、前記命令コードをデコードするデコードブロックと、デコードされた命令に対応する制御信号に基づいて当該命令を実行する実行ブロックとからなり、前記命令フェッチブロックから前記命令メモリに前記アドレスが供給され、そのアドレスの前記命令プログラムデータが、前記命令メモリから前記命令フェッチブロックに入力され、前記命令フェッチブロックから前記デコードブロックに前記命令プログラムデータに対応する命令コードが入力され、前記デコードブロックから前記命令コードをデコードした命令に対応する制御信号が前記実行ブロックに入力され、前記実行ブロックから前記制御信号により命令を実行した結果に応じて条件分岐の状態を表す条件分岐成立信号が出力され、その条件分岐成立信号に基いて、前記命令メモリ上の命令プログラムに従って条件分岐の処理実行を制御する半導体装置であって、
前記命令フェッチブロックがフェッチ処理を実行する場合に、前記条件分岐成立信号の状態に基いて、条件分岐が成立した場合の分岐先のアドレスと、条件分岐が不成立した場合のアドレスの一方を選択し、前記命令メモリに供給する制御手段と、前記命令プログラムデータに含まれるディスプレースメント情報から前記分岐先アドレスを生成する手段を備え、前記命令メモリがそのアドレスを2次元指定するために2次元配列されたメモリセルからなり、前記2次元の各配列に対応させて設けた2つのアドレスデコーダのうち、後で決定される一方のデコーダの出力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成したことを特徴とする。
【0015】
また、本発明の請求項2に記載の半導体装置は、アドレスに対応させて命令コードからなる命令プログラムがデータとして格納された命令メモリと、前記命令プログラムデータをフェッチする命令フェッチブロックと、前記命令コードをデコードするデコードブロックと、デコードされた命令に対応する制御信号に基づいて当該命令を実行する実行ブロックとからなり、前記命令フェッチブロックから前記命令メモリに前記アドレスが供給され、そのアドレスの前記命令プログラムデータが、前記命令メモリから前記命令フェッチブロックに入力され、前記命令フェッチブロックから前記デコードブロックに前記命令プログラムデータに対応する命令コードが入力され、前記デコードブロックから前記命令コードをデコードした命令に対応する制御信号が前記実行ブロックに入力され、前記実行ブロックから前記制御信号により命令を実行した結果に応じて条件分岐の状態を表す条件分岐成立信号が出力され、その条件分岐成立信号に基いて、前記命令メモリ上の命令プログラムに従って条件分岐の処理実行を制御する半導体装置であって、前記命令フェッチブロックがフェッチ処理を実行する場合に、前記条件分岐成立信号の状態に基いて、条件分岐が成立した場合の分岐先のアドレスと、条件分岐が不成立した場合のアドレスの一方を選択し、前記命令メモリに供給する制御手段と、前記命令プログラムデータに含まれるディスプレースメント情報から前記分岐先アドレスを生成する手段を備え、前記命令メモリがそのアドレスを2次元指定するために2次元配列されたメモリセルからなり、前記2次元の各配列に対応させて設けた2つのアドレスデコーダのうち、後で決定される一方のデコーダの入力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成したことを特徴とする。
【0016】
以上により、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【0017】
また、本発明の請求項3に記載の半導体装置は、請求項1又は2記載の半導体装置であって、前記命令フェッチブロックからの命令コードを基に条件分岐命令を判定する手段を備え、その判定結果から条件分岐命令の実行を検出し、前記条件分岐命令実行時にのみ前記条件分岐成立信号に基づくアドレス選択を行うよう構成したことを特徴とする。
【0018】
以上により、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【0027】
【発明の実施の形態】
以下、本発明の実施の形態を示す半導体装置について、図面を参照しながら具体的に説明する。
(実施の形態1)
本発明の実施の形態1の半導体装置を説明する。
【0028】
図1は本実施の形態1の半導体装置の構成を示すブロック図である。図1において、命令メモリ1とIFB2とDECB3とEXB4とアドレス5とデータ6と命令コード7と制御信号8とは、従来技術で説明した各要素と同じである。
【0029】
IFB2内部には、アドレス生成器10とアドレスラッチ13とディスプレースメント情報を保持するdispラッチ14とAU18とセレクタ20とを備え、アドレス生成器10からの出力12がアドレスラッチ13とセレクタ20に入力され、データ6から抜き出したディスプレースメント情報15がdispラッチ14へ入力され、アドレスラッチ13の出力16とdispラッチ14の出力17がAU18に入力され、AU18の出力19がセレクタ20に入力され、セレクタ20へは選択信号としてBRTKN9が入力され、セレクタ20の出力21がアドレス5として命令メモリ1へ入力されている。
【0030】
以上のように構成された本実施の形態1の半導体装置について、その動作を以下に詳しく説明する。
図2は本実施の形態1の半導体装置の動作を示すタイミングチャートである。図2において、aの期間では、アドレス(ADR)0000を発行し、レジスタ間演算SUB D2、D1のフェッチがIFB2で行われる。
【0031】
bの期間では、アドレス0002を発行し、IFB2においては条件分岐命令BEQ disp8のフェッチが行われ、DECB3ではSUB D2、D1のデコードが行われる。さらにbの期間の最後にはdispラッチ14にはBEQdisp8の命令に含まれるディスプレースメント情報の20が格納され、アドレスラッチ13にはアドレス0002が格納される。条件分岐命令BEQ disp8は、直前の演算結果がゼロになると分岐し、それ以外では分岐せず、次の命令を実行していく。
【0032】
cの期間ではまず、アドレス0004が発行され、IFB2においては、通常の次の命令であるAND D0、D1のフェッチが行われ、アドレスラッチ13の値0002とdispラッチ14の値0020がAU18に入力され、分岐アドレス19として0022が出力される。DECB3においてはBEQ disp8のデコードが行われ、EXB4においてはSUB D2、D1の実行が行われる。
【0033】
本実施の形態においては、SUB D2、D1の演算結果がゼロになるため、cの期間の最中に条件分岐成立信号BRTKN9が生成される。BRTKN9がセレクタ20に入力されると、分岐アドレス19が選択され、セレクタ出力21が0022に変化し、アドレス5は0022に変化する。アドレス0022の発行に従って、IFB2においてはアドレス0022に格納されている命令MOVD2、A0のフェッチが行われる。
【0034】
dの期間では、DECB3において分岐先命令のMOV D2、A0のデコードが行われ、EXB4においてはBEQ disp8の実行が行われる。ただし、条件分岐の動作はすでに完了しているため、実際には何も実行されない。
【0035】
eの期間では、EXB4において、分岐先命令のMOV D2、A0が実行される。
以上のように、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【0036】
その結果、従来のような無効化サイクルの発生による処理性能の低下を防ぐことができる。
(実施の形態2)
本発明の実施の形態2の半導体装置を説明する。
【0037】
図3は本実施の形態2の半導体装置の構成を示すブロック図である。図3において、命令メモリ1とIFB2とDECB3とEXB4とアドレス5とデータ6と命令コード7と制御信号8とBRTKN9とアドレス生成器10とアドレス12とアドレスラッチ13とdispラッチ14とアドレスラッチ出力16とdispラッチ出力17とAU18と分岐アドレス19とセレクタ20とセレクタ出力21とは、実施の形態1で説明した各要素と同じである。
【0038】
DECB3内部には条件分岐命令判定器22を備え、条件分岐命令がDECB3に入力された場合は、条件分岐命令判定器22から条件分岐命令実行を示す信号BREN23が出力される。BREN23はアドレスラッチ13、dispラッチ14、AU18、セレクタ20に入力され、BREN23がHI(ハイレベル)の場合だけ、アドレスラッチ13、dispラッチ14、AU18、セレクタ20が動作する。
【0039】
以上のように構成された本実施の形態2の半導体装置について、その動作を以下に詳しく説明する。
図4は本実施の形態2の半導体装置の動作を示すタイミングチャートである。図4において、cの期間では、BREN23がHIとなり、この期間だけ、アドレスラッチ13、dispラッチ14、AU18、セレクタ20が動作する。一方、BREN23がLOWの期間では、アドレスラッチ13、dispラッチ14、AU18、セレクタ20が停止する。その他の動作は、実施の形態1で説明した各要素の動作と同じである。
【0040】
以上のように、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【0041】
その結果、従来のような無効化サイクルの発生をなくして処理性能の低下を防ぐことができるとともに、条件分岐命令に対するフェッチ処理の実行時以外ではアドレス選択をなくして無駄な電力消費をなくし、装置全体の消費電力を低減化することができる。
(実施の形態3)
本発明の実施の形態3の半導体装置を説明する。
【0042】
図5は本実施の形態3の半導体装置の構成を示すブロック図である。図5において、命令メモリ1とIFB2とDECB3とEXB4とアドレス5とデータ6と命令コード7と制御信号8とBRTKN9とアドレスラッチ13とdispラッチ14とアドレスラッチ出力16とdispラッチ出力17とAU18と分岐アドレス19は、実施の形態2で説明した各要素と同じである。
【0043】
本実施の形態においては、アドレスラッチ13とdispラッチ14とAU18は命令メモリ1内部に配置されている。さらに命令メモリ1の内部にはXデコーダ24とYデコーダ30とメモリアレイ25が配置され、さらにYデコーダ30の内部には、ノーマルアドレスのYデコーダ28と分岐アドレスのYデコーダ29と、入力データとしてノーマルYデコーダ出力31と分岐Yデコーダ出力33が入力され、選択信号としてBRTKN9が入力されたセレクタ26と、入力データとしてノーマルYデコーダ出力32と分岐Yデコーダ出力34が入力され、選択信号としてBRTKN9が入力されたセレクタ27と、分岐アドレス19とアドレス5が入力されたアドレス判定器35が配置され、セレクタ26の出力37とセレクタ27の出力38がメモリアレイ25に入力され、アドレス判定器35の出力YADROV36がDECB3に入力されている。
【0044】
以上のように構成された本実施の形態3の半導体装置について、その動作を以下に詳しく説明する。
図6は本実施の形態3の半導体装置の動作を示すタイミングチャートである。図6において、XDECはXデコーダ24に入力されるアドレス5の上位二桁を示し、YDECNはYデコーダ30に入力されるアドレス5の下位二桁を示し、XDECPはXデコーダ24のプリチャージ信号を示し、YDECPはYデコーダ30のプリチャージ信号を示している。37はセレクタ26の出力を示し、38はセレクタ27の出力を示している。
【0045】
図中a、bの区間は実施の形態2と同様の動作を行う。図中cの区間においては、まず、XDECP、YDECPがHIレベルになり、Xデコーダ24からの出力全てと、Yデコーダ30からの出力全てが非選択状態(LOWレベル)になる。その後、XDECPがLOWレベルに変化し、Xデコーダ24の選択ラインがHIレベルに変化し、メモリアレイ25に入力される。さらにその後、YDECPがLOWレベルに変化し、Yデコーダ30の選択ラインがHIレベルに変化し、メモリアレイ25に入力される。
【0046】
図中cの区間において、Xデコーダ24には00が、ノーマルのYデコーダ28には04が、分岐Yデコーダ29には22が入力される。ノーマルYデコーダ28の出力31はノーマルYデコーダ入力が00の場合にHIレベルに変化し、出力32は入力が22の場合に変化する。分岐Yデコーダ29の出力33はノーマルYデコーダ入力が00の場合にHIレベルに変化し、出力34は入力が22の場合に変化する。セレクタ26の出力37はアドレスの下位二桁が00の場合の選択信号で、下位二桁が00の場合にHIレベルに変化する。セレクタ27の出力38は、アドレスの下位二桁が22の場合の選択信号で、下位二桁が22の場合にHIレベルに変化する。
【0047】
本実施の形態のcの期間においては、ノーマルYデコーダ入力が00で、分岐Yデコーダ入力が22であるので、31と34がHIレベルに変化し、32と33はLOW(ローレベル)に固定となる。セレクタ26、27はBRTKN9がLOWの場合はノーマルYデコーダ出力を選択し、BRTKN9がHIの場合は分岐Yデコーダ出力を選択信号する。本実施の形態ではBRTKNがHIに変化するので、セレクタ27の出力がHIに変化し、セレクタ26の出力はLOW固定となる。すなわち、Yデコーダ30には22が入力されたことになり、メモリ25へのアドレスとしては分岐先のアドレス0022が入力されたこととなる。分岐しない場合のアドレス0004にはAND D0、D1が格納されていて、分岐アドレス0022にはMOV D2、A0が格納されているので、IFB2においてはMOV D2、A0の命令をフェッチすることとなる。
【0048】
以降の動作は実施の形態2と同様となる。なお、分岐アドレス19とアドレス5はアドレス判定器35に入力されており、分岐アドレス19の値がXデコーダ入力を変化させる場合、すなわち本実施の形態においては、上位二桁が変化してしまう場合は、DECB3へ入力されているYADROVがHIレベルとなり、従来と同様の条件分岐動作が行われることとなる。
【0049】
なお、コンパイラとリンカによって、分岐アドレス19とアドレス5の値の相違が下位二桁に収まるように、条件分岐命令を含む関数の先頭アドレスを、アドレスマッピングすることで、Xデコーダ入力の変化をなくすことが可能である。
【0050】
以上のように、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【0051】
その結果、従来のような無効化サイクルの発生による処理性能の低下を防ぐことができる。
(実施の形態4)
本発明の実施の形態4の半導体装置を説明する。
【0052】
図7は本実施の形態4の半導体装置の構成を示すブロック図である。図7において、命令メモリ1とIFB2とDECB3とEXB4とアドレス5とデータ6と命令コード7と制御信号8とBRTKN9とアドレスラッチ13とdispラッチ14とアドレスラッチ出力16とdispラッチ出力17とAU18とXデコーダ24とYデコーダ30とメモリアレイ25とノーマルYデコーダ28と分岐Yデコーダ29とノーマルYデコーダ出力31、32と分岐アドレス19とYデコーダ出力33、34とセレクタ26、27とセレクタ出力37、38とアドレス判定器35は、実施の形態3で説明した各要素と同じである。
【0053】
DECB3内部には条件分岐命令判定器22を備え、条件分岐命令がDECB3に入力された場合は、条件分岐命令判定器22から条件分岐命令実行を示す信号BREN23が出力される。BREN23はアドレスラッチ13、dispラッチ14、AU18、アドレス判定器35、分岐Yデコーダ29に入力され、BREN23がHIの場合だけ、アドレスラッチ13、dispラッチ14、AU18、アドレス判定器35、分岐Yデコーダ29が動作する。
【0054】
以上のように構成された本実施の形態4の半導体装置について、その動作を以下に詳しく説明する。
図8は本実施の形態4の半導体装置の動作を示すタイミングチャートである。図8において、cの期間ではBRENがHIとなり、この期間だけ、アドレスラッチ13、dispラッチ14、AU18、アドレス判定器35、分岐Yデコーダ29が動作する。BRENがLOWの期間では、アドレスラッチ13、dispラッチ14、AU18、アドレス判定器35、分岐Yデコーダ29は停止する。その他の動作は実施の形態3で説明した各要素の動作と同じである。
【0055】
以上のように、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【0056】
その結果、従来のような無効化サイクルの発生をなくして処理性能の低下を防ぐことができるとともに、条件分岐命令に対するフェッチ処理の実行時以外ではアドレス選択をなくして無駄な電力消費をなくし、装置全体の消費電力を低減化することができる。
(実施の形態5)
本発明の実施の形態5の半導体装置を説明する。
【0057】
図9は本実施の形態5の半導体装置の構成を示すブロック図である。図9において、命令メモリ1とIFB2とDECB3とEXB4とアドレス5とデータ6と命令コード7と制御信号8とBRTKN9とアドレスラッチ13とdispラッチ14とアドレスラッチ出力16とdispラッチ出力17とAU18とXデコーダ24とメモリアレイ25とアドレス判定器35は、実施の形態3で説明した各要素と同じである。
【0058】
命令メモリ1内部で、アドレス5と分岐アドレス19がデータ入力され、選択信号としてBRTKN9が入力されたセレクタ40の出力39が、Yデコーダ41に入力されていて、Yデコーダ出力38がメモリアレイ25に入力されている。
【0059】
以上のように構成された本実施の形態5の半導体装置について、その動作を以下に詳しく説明する。
図10は本実施の形態5の半導体装置の動作を示すタイミングチャートである。図10において、ADR、XDEC、YDECN、YDECBは実施の形態4と同様の信号を意味している。セレクタ40の出力39は、選択信号BRTKN9がHIの場合はノーマルアドレス5の下位2桁であるYDECNとなり、BRTKN9がLOWの場合は分岐アドレス19の下位2桁であるYDECBとなる。
【0060】
Yデコーダ41からは、Yデコーダ入力39が04の場合にHIとなるYデコーダ出力37と、Yデコーダ入力39が22の場合にHIとなるYデコーダ出力38とが、それぞれメモリアレイ25に入力されている。
【0061】
cの期間の初めは、BRTKN信号がLOWのためにセレクタ40の出力39は04となっている。しかし、その期間はYDECPがHIのためにYデコーダ41の出力は全てLOWレベルに固定されている。
【0062】
cの期間の途中でBRTKN9がHIに変化するとセレクタ40の出力39は22に変化し、YDECPがLOWに変化すると、Yデコーダ41の入力39が22の場合にHIとなるYデコーダ出力38がHIになる。すなわち、Yデコーダ41には22が入力されたことになり、メモリ25へのアドレスとしては分岐先のアドレス0022が入力されたこととなる。
【0063】
分岐しない場合のアドレス0004にはAND D0、D1が格納されていて、分岐アドレス0022にはMOV D2、A0が格納されているので、IFB2においてはMOV D2、A0の命令をフェッチすることとなる。
【0064】
以降の動作は実施の形態3と同様となる。
以上のように、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【0065】
その結果、従来のような無効化サイクルの発生による処理性能の低下を防ぐことができる。
(実施の形態6)
本発明の実施の形態6の半導体装置を説明する。
【0066】
図11は本実施の形態6の半導体装置の構成を示すブロック図である。図11において、命令メモリ1とIFB2とDECB3とEXB4とアドレス5とデータ6と命令コード7と制御信号8とBRTKN9とアドレスラッチ13とdispラッチ14とアドレスラッチ出力16とdispラッチ出力17とAU18とXデコーダ24とメモリアレイ25とアドレス判定器35とセレクタ40とセレクタ出力39とYデコーダ41は、実施の形態5で説明した各要素と同じである。
【0067】
DECB3内部には条件分岐命令判定器22を備え、条件分岐命令がDECB3に入力された場合は条件分岐命令判定器22から条件分岐命令実行を示す信号BREN23が出力される。BREN23はアドレスラッチ13、dispラッチ14、AU18、アドレス判定器35に入力され、BREN23がHIの場合だけ、アドレスラッチ13、dispラッチ14、AU18、アドレス判定器35が動作する。
【0068】
以上のように構成された本実施の形態6の半導体装置について、その動作を以下に詳しく説明する。
図12は本実施の形態6の半導体装置の動作を示すタイミングチャートである。図12において、cの期間ではBRENがHIとなり、この期間だけ、アドレスラッチ13、dispラッチ14、AU18、アドレス判定器35が動作する。BRENがLOWの期間では、アドレスラッチ13、dispラッチ14、AU18、アドレス判定器35は停止する。その他の動作は実施の形態5で説明した各要素の動作と同じである。
【0069】
以上のように、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【0070】
その結果、従来のような無効化サイクルの発生をなくして処理性能の低下を防ぐことができるとともに、条件分岐命令に対するフェッチ処理の実行時以外ではアドレス選択をなくして無駄な電力消費をなくし、装置全体の消費電力を低減化することができる。
【0071】
【発明の効果】
以上のように本発明によれば、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【0072】
そのため、従来のような無効化サイクルの発生による処理性能の低下を防ぐことができる。
また、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【0073】
そのため、従来のような無効化サイクルの発生をなくして処理性能の低下を防ぐことができるとともに、条件分岐命令に対するフェッチ処理の実行時以外ではアドレス選択をなくして無駄な電力消費をなくし、装置全体の消費電力を低減化することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1の半導体装置の構成を示すブロック図
【図2】同実施の形態1の半導体装置の動作を示すタイミングチャート
【図3】本発明の実施の形態2の半導体装置の構成を示すブロック図
【図4】同実施の形態2の半導体装置の動作を示すタイミングチャート
【図5】本発明の実施の形態3の半導体装置の構成を示すブロック図
【図6】同実施の形態3の半導体装置の動作を示すタイミングチャート
【図7】本発明の実施の形態4の半導体装置の構成を示すブロック図
【図8】同実施の形態4の半導体装置の動作を示すタイミングチャート
【図9】本発明の実施の形態5の半導体装置の構成を示すブロック図
【図10】同実施の形態5の半導体装置の動作を示すタイミングチャート
【図11】本発明の実施の形態6の半導体装置の構成を示すブロック図
【図12】同実施の形態6の半導体装置の動作を示すタイミングチャート
【図13】従来の半導体装置の構成を示すブロック図
【図14】同従来例の半導体装置の動作を示すタイミングチャート
【符号の説明】
1 命令メモリ
2 IFB
3 DECB
4 EXB
5 アドレス
6 データ
7 命令コード
8 制御信号
9 BRTKN
10 アドレス生成器
12 アドレス生成器出力
13 アドレスラッチ
14 dispラッチ
16 アドレスラッチ出力
17 dispラッチ出力
18 AU
19 AU出力(分岐アドレス)
20、26、27、40 セレクタ
21 セレクタ出力
22 条件分岐命令判定器
23 BREN
24 Xデコーダ
25 メモリアレイ
28 ノーマルYデコーダ
29 分岐Yデコーダ
30 Yデコーダ
31、32 ノーマルYデコーダ出力
33、34 分岐Yデコーダ出力
35 アドレス判定器
36 YADROV
37、38 Yデコーダ出力
39 セレクタ出力

Claims (3)

  1. アドレスに対応させて命令コードからなる命令プログラムがデータとして格納された命令メモリと、前記命令プログラムデータをフェッチする命令フェッチブロックと、前記命令コードをデコードするデコードブロックと、デコードされた命令に対応する制御信号に基づいて当該命令を実行する実行ブロックとからなり、前記命令フェッチブロックから前記命令メモリに前記アドレスが供給され、そのアドレスの前記命令プログラムデータが、前記命令メモリから前記命令フェッチブロックに入力され、前記命令フェッチブロックから前記デコードブロックに前記命令プログラムデータに対応する命令コードが入力され、前記デコードブロックから前記命令コードをデコードした命令に対応する制御信号が前記実行ブロックに入力され、前記実行ブロックから前記制御信号により命令を実行した結果に応じて条件分岐の状態を表す条件分岐成立信号が出力され、その条件分岐成立信号に基いて、前記命令メモリ上の命令プログラムに従って条件分岐の処理実行を制御する半導体装置であって、
    前記命令フェッチブロックがフェッチ処理を実行する場合に、前記条件分岐成立信号の状態に基いて、条件分岐が成立した場合の分岐先のアドレスと、条件分岐が不成立した場合のアドレスの一方を選択し、前記命令メモリに供給する制御手段と、
    前記命令プログラムデータに含まれるディスプレースメント情報から前記分岐先アドレスを生成する手段を備え、
    前記命令メモリがそのアドレスを2次元指定するために2次元配列されたメモリセルからなり、前記2次元の各配列に対応させて設けた2つのアドレスデコーダのうち、後で決定される一方のデコーダの出力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成した半導体装置。
  2. アドレスに対応させて命令コードからなる命令プログラムがデータとして格納された命令メモリと、前記命令プログラムデータをフェッチする命令フェッチブロックと、前記命令コードをデコードするデコードブロックと、デコードされた命令に対応する制御信号に基づいて当該命令を実行する実行ブロックとからなり、前記命令フェッチブロックから前記命令メモリに前記アドレスが供給され、そのアドレスの前記命令プログラムデータが、前記命令メモリから前記命令フェッチブロックに入力され、前記命令フェッチブロックから前記デコードブロックに前記命令プログラムデータに対応する命令コードが入力され、前記デコードブロックから前記命令コードをデコードした命令に対応する制御信号が前記実行ブロックに入力され、前記実行ブロックから前記制御信号により命令を実行した結果に応じて条件分岐の状態を表す条件分岐成立信号が出力され、その条件分岐成立信号に基いて、前記命令メモリ上の命令プログラムに従って条件分岐の処理実行を制御する半導体装置であって、
    前記命令フェッチブロックがフェッチ処理を実行する場合に、前記条件分岐成立信号の状態に基いて、条件分岐が成立した場合の分岐先のアドレスと、条件分岐が不成立した場合のアドレスの一方を選択し、前記命令メモリに供給する制御手段と、
    前記命令プログラムデータに含まれるディスプレースメント情報から前記分岐先アドレスを生成する手段を備え
    前記命令メモリがそのアドレスを2次元指定するために2次元配列されたメモリセルからなり、前記2次元の各配列に対応させて設けた2つのアドレスデコーダのうち、後で決定される一方のデコーダの入力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成した半導体装置。
  3. 請求項1又は2記載の半導体装置であって、前記命令フェッチブロックからの命令コードを基に条件分岐命令を判定する手段を備え、その判定結果から条件分岐命令の実行を検出し、前記条件分岐命令実行時にのみ前記条件分岐成立信号に基づくアドレス選択を行うよう構成した半導体装置。
JP2002183754A 2002-06-25 2002-06-25 半導体装置 Expired - Fee Related JP3877650B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002183754A JP3877650B2 (ja) 2002-06-25 2002-06-25 半導体装置
US10/602,640 US7178012B2 (en) 2002-06-25 2003-06-25 Semiconductor device
CNB031452450A CN1259624C (zh) 2002-06-25 2003-06-25 半导体装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002183754A JP3877650B2 (ja) 2002-06-25 2002-06-25 半導体装置

Publications (2)

Publication Number Publication Date
JP2004030085A JP2004030085A (ja) 2004-01-29
JP3877650B2 true JP3877650B2 (ja) 2007-02-07

Family

ID=29996687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002183754A Expired - Fee Related JP3877650B2 (ja) 2002-06-25 2002-06-25 半導体装置

Country Status (3)

Country Link
US (1) US7178012B2 (ja)
JP (1) JP3877650B2 (ja)
CN (1) CN1259624C (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3641327B2 (ja) 1996-10-18 2005-04-20 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
US6119221A (en) * 1996-11-01 2000-09-12 Matsushita Electric Industrial Co., Ltd. Instruction prefetching apparatus and instruction prefetching method for processing in a processor
US6260138B1 (en) * 1998-07-17 2001-07-10 Sun Microsystems, Inc. Method and apparatus for branch instruction processing in a processor
US6609194B1 (en) * 1999-11-12 2003-08-19 Ip-First, Llc Apparatus for performing branch target address calculation based on branch type
JP2001172504A (ja) 1999-12-21 2001-06-26 Kanegafuchi Chem Ind Co Ltd 硬化性組成物および硬化性導電性組成物
US20020099910A1 (en) 2001-01-23 2002-07-25 Shah Emanuel E. High speed low power cacheless computer system

Also Published As

Publication number Publication date
US20040004869A1 (en) 2004-01-08
CN1470994A (zh) 2004-01-28
JP2004030085A (ja) 2004-01-29
US7178012B2 (en) 2007-02-13
CN1259624C (zh) 2006-06-14

Similar Documents

Publication Publication Date Title
US6430674B1 (en) Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time
US5951679A (en) Microprocessor circuits, systems, and methods for issuing successive iterations of a short backward branch loop in a single cycle
KR102271986B1 (ko) 다수의 마이크로 오퍼레이션에 대응한 복합 프로그램 명령어의 디코딩
KR100423910B1 (ko) 코프로세서 명령 실행 장치 및 방법
US20020004897A1 (en) Data processing apparatus for executing multiple instruction sets
US5005118A (en) Method and apparatus for modifying micro-instructions using a macro-instruction pipeline
JPWO2008155800A1 (ja) 命令実行制御装置及び命令実行制御方法
JPH06236271A (ja) プロセッサおよび命令推測実行方法
WO2008067277A2 (en) Methods and apparatus for recognizing a subroutine call
US7620804B2 (en) Central processing unit architecture with multiple pipelines which decodes but does not execute both branch paths
JP3977931B2 (ja) データプロセッサにおける条件分岐実行を制御するための方法および装置
US20060095746A1 (en) Branch predictor, processor and branch prediction method
EP0649083B1 (en) A microcontrol unit for a superpipelined, superscalar microprocessor
US6859875B1 (en) Processor having selective branch prediction
JP3877650B2 (ja) 半導体装置
US7519799B2 (en) Apparatus having a micro-instruction queue, a micro-instruction pointer programmable logic array and a micro-operation read only memory and method for use thereof
JP2009526300A (ja) マイクロプロセッサ用の命令セット
US6289428B1 (en) Superscaler processor and method for efficiently recovering from misaligned data addresses
JP2004519028A (ja) 命令フェッチ制御ビットを有するコンピュータ命令
KR920006770B1 (ko) 명령을 페치(fetch)하기 위한 제어 시스템
US5644741A (en) Processor with single clock decode architecture employing single microROM
JP3721002B2 (ja) メモリ要求を形成するために並列に生成される複数の取出アドレスのうちの1つを選択する、プロセッサおよび命令取出方法
US5794026A (en) Microprocessor having expedited execution of condition dependent instructions
JP2006031697A (ja) 分岐ターゲットバッファと使用方法
US6842846B2 (en) Instruction pre-fetch amount control with reading amount register flag set based on pre-detection of conditional branch-select instruction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060711

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061031

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

Free format text: PAYMENT UNTIL: 20091110

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101110

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101110

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees