JP3541623B2 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP3541623B2
JP3541623B2 JP17140097A JP17140097A JP3541623B2 JP 3541623 B2 JP3541623 B2 JP 3541623B2 JP 17140097 A JP17140097 A JP 17140097A JP 17140097 A JP17140097 A JP 17140097A JP 3541623 B2 JP3541623 B2 JP 3541623B2
Authority
JP
Japan
Prior art keywords
stage
instruction
data
unit
result
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
JP17140097A
Other languages
English (en)
Other versions
JPH1115658A (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 JP17140097A priority Critical patent/JP3541623B2/ja
Priority to US09/105,212 priority patent/US6161171A/en
Publication of JPH1115658A publication Critical patent/JPH1115658A/ja
Application granted granted Critical
Publication of JP3541623B2 publication Critical patent/JP3541623B2/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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、メモリ中の命令に従ってデータをパイプライン処理するデータ処理装置に関する。
【0002】
【従来の技術】
近年の電子技術の発展により、半導体回路の高速化、高集積化が可能となり、また命令の処理を少なくとも読出し、解読、実行のステージに分け、これらを並列に実行し命令の見かけ上の実行時間の短縮を図るパイプライン構造による高速化により、データを高速に処理するプロセッサの実現が可能になった。しかし連続した命令を処理する場合において、直前の命令の実行結果を用いて次の命令を処理するため、次の命令が実行できないためにパイプライン処理をロックするレジスタ干渉が発生し、このため性能劣化を引き起こすことがある。このレジスタ干渉の発生を最小限に抑えるために、例えば演算を行う演算ステージ、メモリに対してロード・ストアを行うメモリアクセスステージ等複数のステージに分割され、前段のステージの処理を効率よく行うため後段のステージから処理結果を転送するバイパスを設けることが一般的である。
【0003】
図6と図9とに、2つの従来のデータ処理装置のブロック図を示す。
まず図6において、データ処理装置は、中央演算処理装置5とデータキャッシュ6と外部メモリ63とから構成される。同図において、中央演算処理装置5は命令フェッチステージ(以下、IFステージ)、命令解読ステージ(以下、DECステージ)、命令実行ステージ(以下、EXステージ)、メモリアクセスステージ(MEMステージ)、レジスタ書込ステージ(WBステージ)の5つのステージからなる5段パイプライン構造を成している。命令フェッチ回路51はIFステージで動作しメモリ(図外)から命令の読出しを行う。命令解読回路52はDECステージで動作し命令フェッチ回路51で読出された命令を解読する。命令実行回路53はEXステージとMEMステージとWBステージとで動作し命令解読回路52によって制御され、演算のオペランドを格納するレジスタ531と、レジスタ531から読出したデータまたはレジスタ531に格納するデータを載せるバス532a〜532dと、バス532aとセレクタ541の出力値とを選択するセレクタ533と、バス532bによって転送されるデータとセレクタ533の出力値とを用いて演算を行う演算器534と、クロック同期で演算器534の出力値を保持する第1EXラッチ535と、クロック同期でセレクタ533の出力値を保持する第2EXラッチ536と、第1EXラッチ535の出力値とデータキャッシュ6の出力データとを選択するセレクタ537と、第1EXラッチ535の出力値とデータキャッシュ6の出力データとを選択するセレクタ538と、クロック同期でセレクタ537の出力値を保持する第1MEMラッチ539と、クロック同期でセレクタ538の出力値を保持する第2MEMラッチ540と、検出されたレジスタ干渉によってレジスタ干渉検出回路550が第1EXラッチ535か第2MEMラッチ540かを選択して有効なフォワーディングパスを決定するセレクタ541からなる。パイプライン処理制御回路54は命令フェッチ回路51と命令解読回路52と命令実行回路53とをパイプライン処理を行い、レジスタ干渉検出回路550を内包する。レジスタ干渉検出回路550はパイプライン処理制御回路54の中でレジスタ干渉を検出し、その検出結果に基づいて有効なフォワーディングパスを決定するためにセレクタ541を制御する。データキャッシュ6は、アドレスバス611よりアドレスを入力し予めキャッシュメモリ62に保持するデータのアドレスを保持しその入力アドレスと保持アドレスとを比較することによりキャッシュに格納されているかどうか(以下、格納されている場合はキャッシュヒット、格納されていない場合はキャッシュミスヒット)を判別するとともにキャッシュメモリ62にアドレスを出力しキャッシュミスヒットの場合はキャッシュメモリ62と外部メモリ63とにアドレスを出力するとともに入力アドレスを保持アドレスに変更するキャッシュヒット検出回路61と、キャッシュヒットの場合キャッシュヒット検出回路61からアドレスを入力しキャッシュヒットの場合そのアドレスのメモリからデータを出力しキャッシュミスヒットの場合外部メモリ63よりデータを入力しそのデータを出力すると共にキャッシュヒット検出回路61からアドレスを入力したアドレスのメモリからデータを書き込むキャッシュメモリ62とからなり、中央演算処理装置5からアドレスをキャッシュヒット検出回路61へ転送するアドレスバス611と、キャッシュヒット検出回路61からアドレスを外部メモリ63へ転送するアドレスバス612と、外部メモリ63からデータをキャッシュメモリ62へ転送するデータバス613と、キャッシュメモリ62からデータを中央演算処理装置5へ転送するデータバス614と接続する。外部メモリ63は、アドレスバス612よりアドレスを入力しそのアドレスのメモリからデータを出力しデータバス613へデータを出力する。
【0004】
以上の構成をもつ従来のデータ処理装置について、図7、図8に示すタイムチャートを用いて、ここでは2つのフォワーディングパス(バイパス)について動作を説明する。
(1)MEMステージからEXステージへのバイパス
アドレスをインクリメント処理しながらキャッシュからデータをロードし、連続してロードしたデータを用いて加算を実行する処理を例示する。例示プログラムを以下に示す。
命令1:MOV (A0+),D1(アドレスA0からデータをロードしながらアドレスA0をインクリメント処理を行い、そのロードデータをD1レジスタに、インクリメント処理を行ったアドレスをA0に格納する)命令2:ADD D0,D1(D0レジスタとD1レジスタの加算を行い、その結果をD1レジスタに格納する)
図7に示したタイムチャートを用いて説明する。ここでは、データキャッシュ6はロードするデータを保持すると仮定する。
【0005】
はじめに命令1の動作をタイミング順に説明する。タイミング1において命令フェッチ回路51によって読出された命令1(IFステージ:7ナノ秒)は、タイミング2において命令解読回路52で解読され(DECステージ:9ナノ秒)、タイミング3において命令実行回路53でアドレスのインクリメント処理が実行され(EXステージ:9ナノ秒)、タイミング4においてデータキャッシュ6にアクセスされ(MEMステージ:10ナノ秒)、タイミング5において命令実行回路53で演算結果を転送された上でレジスタに格納される(WBステージ:5ナノ秒)。EXステージの詳細については、オペランドデータがレジスタ531から読出されバス532aに載せられ、バス532aを選択するセレクタ533の出力を入力とを用いて演算器534でインクリメント処理されて、その演算結果が第1EXラッチ535に格納され、セレクタ533の出力が第2EXラッチ536に格納される。MEMステージの詳細については、第1EXラッチ535の出力値はセレクタ537に選択されて第1MEMラッチ539に格納されると共に、第2EXラッチ536の出力値はアドレスバス611を介してデータキャッシュ6のキャッシュヒット検出回路61に転送される。キャッシュヒット検出回路61は入力データのキャッシュヒットかキャッシュミスヒットかを判別し、入力アドレスをキャッシュメモリ62に出力する。キャッシュメモリ62は入力アドレスに格納されているデータを出力して、データをデータバス614を介して中央演算処理装置5に転送する。図7ではキャッシュヒット検出回路61とキャッシュメモリ62とが処理する時間をキャッシュ読出しと記している。セレクタ538はデータキャッシュ6から転送されたデータを選択する。第2MEMラッチ540はセレクタ538の出力値を格納する。WBステージの詳細については、第1MEMラッチ539と第2MEMラッチ540とに格納された演算結果及びデータがバス532c及びバス532dを介してレジスタ531に格納される。
【0006】
次に命令2の動作をタイミング順に説明する。タイミング2において命令フェッチ回路51によって読出された命令2(IFステージ:7ナノ秒)は、タイミング3において命令解読回路52で解読され(DECステージ:9ナノ秒)ると共にレジスタ干渉検出回路550で命令1とのレジスタ干渉が検出され、タイミング4においてパイプライン処理制御装置54でレジスタ干渉による実行待ちとなるように制御され、タイミング5において命令実行回路53で加算演算が実行され(EXステージ:9ナノ秒)、タイミング6において演算結果が転送され(MEMステージ:1ナノ秒)、タイミング7において命令実行回路53で演算結果を転送された上でレジスタに格納される(WBステージ:5ナノ秒)。EXステージ詳細については、レジスタ干渉検出回路550はMEMステージからEXステージへのバイパスがレジスタ干渉に対して有効であることを検出してセレクタ541が第2MEMラッチ540を選択するように制御し、オペランドデータがレジスタ531から読出されバス532a及びバス532bに載せられ、バス532bとセレクタ541を選択するセレクタ533の出力とを入力に用いて演算器534で加算演算されて、その演算結果が第1EXラッチ535に格納される。MEMステージの詳細については、第1EXラッチ535の出力値はセレクタ537に選択されて第1MEMラッチ539に格納される。WBステージの詳細については、第1MEMラッチ539に格納された演算結果がバス532cを介してレジスタ531に格納される。
(2)EXステージからEXステージへのバイパス
アドレスをインクリメント処理しながらキャッシュからデータをロードし、連続してインクリメント処理したデータを用いて加算を実行する処理を例示する。例示プログラムを以下に示す。
命令1:MOV (A0+),D1(アドレスA0からデータをロードしながらアドレスA0をインクリメント処理を行い、そのロードデータをD1レジスタに、インクリメント処理を行ったアドレスをA0に格納する)命令2:ADD D0,A0(D0レジスタとA0レジスタの加算を行い、その結果をA0レジスタに格納する)
図8に示したタイムチャートを用いて説明する。ここでは、データキャッシュ6にロードするデータを保持すると仮定する。
【0007】
はじめに命令1の動作をタイミング順に説明する。タイミング1において命令フェッチ回路51によって読出された命令1(IFステージ:7ナノ秒)は、タイミング2において命令解読回路52で解読され(DECステージ:9ナノ秒)、タイミング3において命令実行回路53でアドレスのインクリメント処理が実行され(EXステージ:9ナノ秒)、タイミング4においてデータキャッシュ6にアクセスされ(MEMステージ:10ナノ秒)、タイミング5において命令実行回路53で演算結果を転送された上でレジスタに格納される(WBステージ:5ナノ秒)。EXステージの詳細については、オペランドデータがレジスタ531から読出されバス532aに載せられ、バス532aを選択するセレクタ533の出力を入力とを用いて演算器534でインクリメント処理されて、その演算結果が第1EXラッチ535に格納され、セレクタ533の出力が第2EXラッチ536に格納される。MEMステージの詳細については、第1EXラッチ535の出力値はセレクタ537に選択されて第1MEMラッチ539に格納されると共に、第2EXラッチ536の出力値はアドレスバス611を介してデータキャッシュ6のキャッシュヒット検出回路61に転送される。キャッシュヒット検出回路61は入力データのキャッシュヒットかキャッシュミスヒットかを判別し、入力アドレスをキャッシュメモリ62に出力する。キャッシュメモリ62は入力アドレスに格納されているデータを出力して、データをデータバス614を介して中央演算処理装置5に転送する。セレクタ538はデータキャッシュ6から転送されたデータを選択する。図8ではキャッシュヒット検出回路61とキャッシュメモリ62とが処理する時間をキャッシュ読出しと記している。第2MEMラッチ540はセレクタ538の出力値を格納する。WBステージの詳細については、第1MEMラッチ539と第2MEMラッチ540とに格納された演算結果及びデータがバス532c及びバス532dを介してレジスタ531に格納される。
【0008】
次に命令2の動作をタイミング順に説明する。タイミング2において命令フェッチ回路51によって読出された命令2(IFステージ:7ナノ秒)は、タイミング3において命令解読回路52で解読され(DECステージ:9ナノ秒)ると共にレジスタ干渉検出回路550で命令1とのレジスタ干渉が検出され、タイミング4において命令実行回路53で加算演算が実行され(EXステージ:9ナノ秒)、タイミング5において演算結果が転送され(MEMステージ:1ナノ秒)、タイミング6において命令実行回路53で演算結果を転送された上でレジスタに格納される(WBステージ:5ナノ秒)。EXステージの詳細については、レジスタ干渉検出回路550はEXステージからEXステージへのバイパスがレジスタ干渉に対して有効であることを検出してセレクタ541が第1EXラッチ535を選択するように制御し、オペランドデータがレジスタ531から読出されバス532a及びバス532bに載せられ、バス532bとセレクタ541を選択するセレクタ533の出力とを入力に用いて演算器534で加算演算されて、その演算結果が第1EXラッチ535に格納される。MEMステージの詳細については、第1EXラッチ535の出力値はセレクタ537に選択されて第1MEMラッチ539に格納される。WBステージの詳細については、第1MEMラッチ539に格納された演算結果がバス532cを介してレジスタ531に格納される。
【0009】
続いて2つ目の従来のデータ処理装置について説明する。
図9において、中央演算処理装置7は、IFステージで動作しメモリ(図外)から命令の読出しを行う命令フェッチ回路71と、DECステージで動作し命令フェッチ回路71で読出された命令を解読する命令解読回路72と、EXステージとメモリアクセス第1ステージ(以下、MEM1ステージ)とメモリアクセス第2ステージ(以下、MEM2ステージ)とWBステージとで動作し命令解読回路72によって制御される命令実行回路73と、命令フェッチ回路71と命令解読回路72と命令実行回路73とをパイプライン処理を行うパイプライン処理制御回路74を備え、上記6つのステージからなる6段パイプライン構造を成している。さらに、命令実行回路73は、演算のオペランドとメモリアクセス時のアドレス及びデータとを格納するレジスタ731と、レジスタ731から読出したデータまたはレジスタ731に格納するデータを載せるバス732a〜732cと、バス732aとMEM2ラッチ738の出力値とを選択するセレクタ733と、バス732bによって転送されるデータとセレクタ733が選択するとデータに基づいて演算を行う演算器734と、クロック同期で演算器734の出力値を保持するEXラッチ735と、クロック同期でセレクタ733の出力値を保持するMEM1ラッチ736と、MEM1ラッチ736の出力値とデータキャッシュ8の出力データとを選択するセレクタ737と、クロック同期でセレクタ737の出力値を保持するMEM2ラッチ738とからなり、EXラッチ735の出力値をデータキャッシュ8へ転送するアドレスバス811と、データキャッシュ8のデータ出力をセレクタ737の入力へ転送するデータバス814とを介してデータキャッシュ8と接続する。データキャッシュ8は、アドレスバス811よりアドレスを入力し予めキャッシュメモリ83に保持するデータのアドレスを保持しその入力アドレスと保持アドレスとを比較することによりキャッシュのキャッシュヒットかキャッシュミスヒットかを判別するとともにキャッシュメモリ83にアドレスを出力しキャッシュミスヒットの場合はキャッシュメモリ83と外部メモリ84とにアドレスを出力するとともに入力アドレスを保持アドレスに変更するキャッシュヒット検出回路81と、クロック同期でキャッシュヒット検出回路81から出力されるアドレスを保持するMEM1ラッチ82と、キャッシュヒットの場合MEM1ラッチ82からアドレスを入力しキャッシュヒットの場合そのアドレスのメモリからデータを出力しキャッシュミスヒットの場合外部メモリ84よりデータを入力しそのデータを出力すると共にMEM1ラッチ82からアドレスを入力したアドレスのメモリからデータを書き込むキャッシュメモリ83とからなり、中央演算処理装置7からアドレスをキャッシュヒット検出回路81へ転送するアドレスバス811と、キャッシュヒット検出回路81からアドレスを外部メモリ84へ転送するアドレスバス812と、外部メモリ84からデータをキャッシュメモリ83へ転送するデータバス813と、キャッシュメモリ83からデータを中央演算処理装置7へ転送するデータバス814と接続する。外部メモリ84は、アドレスバス812よりアドレスを入力しそのアドレスのメモリからデータを出力しデータバス813へデータを出力する。
【0010】
以上の構成をもつ従来のデータ処理装置について、図10、図11に示すタイムチャートを用いてその動作を説明する。ここでは2つの動作クロックでの動作について、キャッシュメモリからのデータをロードし、その結果を用いて連続して加算を実施する処理を例示する。例示プログラムを以下に示す。
命令1:MOV (A0),D1(A0レジスタの値のアドレスに格納されるデータをD1レジスタに格納する)命令2:ADD D0,D1(D0レジスタとD1レジスタの加算を行い、その結果をD0レジスタに格納する)(1)動作クロックが100メガヘルツの場合
図10に示したタイムチャートを用いて説明する。ここでは、1ステージ10ナノ秒となる。またデータキャッシュ8はロードするデータを保持すると仮定する。
【0011】
はじめに命令1の動作をタイミング順に説明する。タイミング1において命令フェッチ回路71によって読み出された命令1(IFステージ:7ナノ秒)は、タイミング2において命令解読回路72で解読され(DECステージ:9ナノ秒)、タイミング3において命令実行回路73でアドレスを読出され(EXステージ:5ナノ秒)、タイミング4において命令実行回路73からデータキャッシュ8にアドレスを転送されキャッシュヒットを検出され(MEM1ステージ:8ナノ秒)、タイミング5においてはデータキャッシュ8でデータを読出しデータキャッシュ8から命令実行回路73にデータを転送され(MEM2ステージ:9ナノ秒)、タイミング6において命令実行回路73でデータが転送された上でレジスタに格納される(WBステージ:5ナノ秒)。EXステージの詳細については、命令によって指示されたアドレスが、レジスタ731から読出され、バス732aを介して演算器734を通過してEXラッチ735に格納される(5ナノ秒)。MEM1ステージの詳細については、EXラッチ735に格納されたアドレスがアドレスバス811を介してキャッシュヒット検出回路81に転送され(3ナノ秒)、キャッシュヒット検出回路81において入力したアドレスがキャッシュメモリ82に格納されているかどうかを判別されると共に、キャッシュヒット検出回路81を通過してMEM1ラッチ82に格納される(5ナノ秒)。MEM2ステージの詳細については、MEM1ラッチ82に格納されたアドレスをキャッシュメモリ83に入力され、キャッシュメモリ83において入力されたアドレスに格納されるデータを読出され(5ナノ秒)、このデータはデータバス814を介してセレクタ737に転送される(3ナノ秒)。セレクタ737はキャッシュメモリ83からのデータを選択し、MEM2ラッチ738はセレクタ737の出力を格納する(1ナノ秒)。WBステージの詳細については、MEM2ラッチ738に格納された演算結果がバス732cからレジスタ731に格納される。
【0012】
次に命令2の動作をタイミング順に説明する。タイミング2において命令フェッチ回路71によって読出された命令2(IFステージ:7ナノ秒)は、タイミング3において命令解読回路72で解読され(DECステージ:9ナノ秒)ると共にパイプライン処理制御回路74で命令1とのレジスタ干渉が検出され、タイミング4及びタイミング5においてパイプライン処理制御回路74でレジスタ干渉による実行待ちとなるように制御され、タイミング6において命令実行回路73で加算演算が実行され(EXステージ:9ナノ秒)、タイミング7において命令実行回路73で演算結果が転送され(MEM1ステージ:0ナノ秒)、タイミング8において命令実行回路73で演算結果が転送され(MEM2ステージ:1ナノ秒)、タイミング9において命令実行回路73で演算結果を転送された上でレジスタに格納される(WBステージ:5ナノ秒)。EXステージの詳細については、オペランドデータがレジスタ731から読出されバス732a及びバス732bに載せられ、パイプライン処理制御回路74はMEM2ステージからEXステージへのバイパスがレジスタ干渉に対して有効であることを検出してセレクタ733がMEM2ラッチ738を選択するように制御し、バス732bとセレクタ733の出力とを入力に用いて演算器734で加算演算されて、その演算結果がEXラッチ735に格納される。MEM1ステージの詳細については、EXラッチ735に格納された演算結果がMEM1ラッチ736に格納される(このステージに要する時間は無視できるので0ナノ秒とする)。MEM2ステージの詳細については、MEM1ラッチ736に格納された演算結果がセレクタ737に選択され、MEM2ラッチ738に格納される(1ナノ秒)。WBステージの詳細については、MEM2ラッチ738に格納された演算結果がバス732cを介してレジスタ731に格納される。
(2)動作クロックが50メガヘルツの場合
図11に示したタイムチャートを用いて説明する。ここでは、1ステージ20ナノ秒となる。またデータキャッシュ8はロードするデータを保持すると仮定する。
【0013】
はじめに命令1の動作をタイミング順に説明する。タイミング1において命令フェッチ回路71によって読出された命令1(IFステージ:7ナノ秒)は、タイミング2において命令解読回路72で解読され(DECステージ:9ナノ秒)、タイミング3において命令実行回路73でアドレスを読出され(EXステージ:5ナノ秒)、タイミング4において命令実行回路73からデータキャッシュ8にアドレスを転送されキャッシュヒットを検出され(MEM1ステージ:8ナノ秒)、タイミング5においてはデータキャッシュ8でデータを読出しデータキャッシュ8から命令実行回路73にデータを転送され(MEM2ステージ:9ナノ秒)、タイミング6において命令実行回路73でデータが転送された上でレジスタに格納される(WBステージ:5ナノ秒)。EXステージの詳細については、命令によって指示されたアドレスが、レジスタ731から読出され、バス732aを介して演算器734を通過してEXラッチ735に格納される(5ナノ秒)。MEM1ステージの詳細については、EXラッチ735に格納されたアドレスがアドレスバス811を介してキャッシュヒット検出回路81に転送され(3ナノ秒)、キャッシュヒット検出回路81において入力したアドレスがキャッシュメモリ83に格納されているかどうかを判別されると共に、キャッシュヒット検出回路81を通過してMEM1ラッチ82に格納される(5ナノ秒)。MEM2ステージの詳細については、MEM1ラッチ82に格納されたアドレスをキャッシュメモリ83に入力され、キャッシュメモリ83において入力されたアドレスに格納されるデータを読出され(5ナノ秒)、このデータはデータバス814を介してセレクタ737に転送される(3ナノ秒)。セレクタ737はキャッシュメモリ83からのデータを選択し、MEM2ラッチ738はセレクタ737の出力を格納する(1ナノ秒)。WBステージの詳細については、MEM2ラッチ738に格納された演算結果がバス732cからレジスタ731に格納される。
【0014】
次に命令2の動作をタイミング順に説明する。タイミング2において命令フェッチ回路71によって読出された命令2(IFステージ:7ナノ秒)は、タイミング3において命令解読回路72で解読され(DECステージ:9ナノ秒)ると共にパイプライン処理制御回路74で命令1とのレジスタ干渉が検出され、タイミング4及びタイミング5においてパイプライン処理制御回路74でレジスタ干渉による実行待ちとなるように制御され、タイミング6において命令実行回路73で加算演算が実行され(EXステージ:9ナノ秒)、タイミング7において命令実行回路73で演算結果が転送され(MEM1ステージ:0ナノ秒)、タイミング8において命令実行回路73で演算結果が転送され(MEM2ステージ:1ナノ秒)、タイミング9において命令実行回路73で演算結果を転送された上でレジスタに格納される(WBステージ:5ナノ秒)。EXステージの詳細については、オペランドデータがレジスタ731から読出されバス732a及びバス732bに載せられ、パイプライン処理制御回路74はMEM2ステージからEXステージへのバイパスがレジスタ干渉に対して有効であることを検出してセレクタ733がMEM2ラッチ738を選択するように制御し、バス732bとセレクタ733の出力とを入力に用いて演算器734で加算演算されて、その演算結果がEXラッチ735に格納される。MEM1ステージの詳細については、EXラッチ735に格納された演算結果がMEM1ラッチ736に格納される(このステージに要する時間は無視できるので0ナノ秒とする)。MEM2ステージの詳細については、MEM1ラッチ736に格納された演算結果がセレクタ737に選択され、MEM2ラッチ738に格納される(1ナノ秒)。WBステージの詳細については、MEM2ラッチ738に格納された演算結果がバス732cを介してレジスタ731に格納される。
【0015】
また、データキャッシュ8にロードするデータを保持しない場合、外部メモリ84にアクセスする必要があり、これには中央演算処理装置7の1ステージに比べ多大なアクセス時間が必要となり、この結果パイプライン処理制御回路74はキャッシュヒット検出回路81よりパイプラインロック要求を受けてパイプライン処理を停止させ、セレクタ737にデータが転送されたことを確認して再実行する。
【0016】
【発明が解決しようとする課題】
ところで、図6に示した従来のデータ処理装置のように、パイプライン処理制御装置にレジスタ干渉を検出するレジスタ干渉検出回路を実装し、この検出結果によって各ステージからのバイパスを決定する。従来例で示したMOV (A0+),D1の命令直後にA0,D1の演算を行う場合上記の検出回路によってバイパスを決定するが、多くの命令列はコンパイラによるスケジューリング等を行うことによって、MEMステージからEXステージへのバイパスとEXステージからEXステージへのバイパスとの一方が他方に比べて偏って使われるようにチューニングすることができる。このような場合、いずれのバイパスを使用するかを検出するレジスタ干渉検出回路を設けてもほとんど機能せず、その分のコスト及び消費電力が無駄になるという問題点がある。
【0017】
また、図9に示した従来のデータ処理装置のように、キャッシュ等へのメモリアクセスのように処理時間の長い処理に関しては、パイプライン段数を増やすことによって動作クロックが高速化に対応している。しかし動作クロックが低い場合、処理時間が短くなり増やしたパイプライン段数より短い段数で処理できる。このような場合インタロックによる性能劣化を引き起こす問題点がある。さらに、処理時間の長い後段の処理の結果を用いて連続して前段の処理を行う場合、フォワーディングできるバイパスを設けるが、動作クロックが低い場合でも増やしたパイプラインステージの後段からバイパスを設けるために前段の処理を行うまでのインタロックが増えて性能劣化を引き起こす問題点がある。
【0018】
本発明はかかる課題に鑑み、データ依存検出手段を設けてバイパスを切り替えることを不要とし、その分のコスト及び消費電力を削減したデータ処理装置を提供することを目的とする。また、キャッシュの動作周波数に応じてパイプライン段数を変化させインタロックによる性能劣化が生じないデータ処理装置を提供することを目的とする。さらに、パイプライン段数を変化させるとともにフォワーディングパスを切り替えることによりインタロック期間が短縮でき性能が一層改善するデータ処理装置を提供することを目的とする。
【0019】
【課題を解決するための手段】この課題を解決するため本発明のデータ処理装置は、パイプライン段数がn段で機械語命令をパイプライン処理する処理手段と、前記処理手段の中にあって、n以下のi段目の処理結果をi以下のk段目の入力に転送する第1の転送手段と、前記処理手段の中にあって、n以下でかつiより大きいj段目の処理結果をk段目の入力に転送する第2の転送手段と、前記処理手段の中にあって、前記第1の転送手段の転送結果と前記第2の転送結果との何れかを選択してk段目の入力とする切り替え手段と、 パイプライン処理される命令のk段目の入力が、前記命令に先行する命令のパイプライン処理におけるi段目で決定される内容を必要とする第1の状態と、前記命令に先行する命令のパイプライン処理におけるj段目で決定される内容を必要とする第2の状態とを検出する検出手段と、所定の条件に応じて、前記検出手段が前記第1の状態を検出した場合にのみ、前記切り替え手段に対して前記第1の転送結果を選択する第1の指示を与えるか、または、前記検出手段が前記第1および第2の状態を検出した場合に、前記切り替え手段に対して前記第2の転送結果を選択する第2の指示を与える選択制御手段とを備え、前記選択制御手段は、前記機械語命令の組合せが、前記第1の状態を多く発生させるか、前記第2の状態を多く発生させるかを指定する指定手段を更に備え、前記指定手段により、前記第1の状態を多く発生させると指定された場合には、前記切り替え手段に対して前記第1の指示を与え、前記第2の状態を多く発生させると指定された場合には、前記切り替え手段に対して前記第2の指示を与える
【0020】
また、指定手段は、その指定内容を示すフラグを保持するフリップフロップ、その指定内容を示すデータを保持するレジスタ、その指定内容を示す論理値を入力する入力端子、その指定内容を示す内部信号の何れかであるように構成してもよい。
【0021】
また、指定手段は、前記機械語命令の組合せが、前記第1の状態を多く発生させるか、前記第2の状態を多く発生させるかを示す特定命令の解読または実行に基づいて指定されるように構成してもよい。
【0022】
そして、処理手段は、少なくとも、1つのパイプライン段数で命令フェッチを行う命令フェッチ部と、1つのパイプライン段数でフェッチされた命令の解読を行う命令解読部と、前段部と後段部の2つのパイプライン段数で命令を実行する命令実行部とからなり、第1の転送手段は、前記命令実行部の前記前段部の実行結果を前記前段部の入力に転送し、第2の転送手段は、前記命令実行部の前記後段部の実行結果を前記前段部の入力に転送し、切り替え手段は、前記命令実行部の前記前段部の実行結果と前記後段部の実行結果との何れかを選択して前記前段部の入力とするように構成してもよい。
【0023】
また本発明のデータ処理装置は、キャッシュメモリのアクセスを行う段を含む複数の段からなり、機械語命令をパイプライン処理する処理手段を有するデータ処理装置であって、 前記キャッシュメモリのアクセスを行う段の段数がa段とaより大きいb段とに可変であり、前記データ処理装置はさらに、前記キャッシュメモリのアクセスを行う段の段数がa段,b段の時に処理手段のパイプライン段数をそれぞれn段と(n+b−a)段とに切り替える切り替え手段を備えている。
【0024】
ここで、処理手段は、命令フェッチステージ、命令解読ステージ及び命令実行ステージの少なくとも3段のパイプライン段数を持ち、前記キャッシュメモリは前記命令実行ステージにおいてアクセスされるように構成してもよい。
【0025】
そして、前記キャッシュメモリのアクセスの処理内容は、シーケンシャルなb個の部分処理に分割可能であり、前記キャッシュメモリをa段でアクセスする場合にはb個の部分処理のうちの(b−a)個を隣合う他のa個の部分処理と同一の段で処理し、前記キャッシュメモリをb段でアクセスする場合には各部分処理をそれぞれ1段で処理するように構成してもよい。
【0026】
また、前記各段はそれぞれ個別の処理部が実行し、それら処理部の少なくとも1つは、前記部分処理を実行する複数の部分処理部と、部分処理部と次段の部分処理部との間に設けられ、前記キャッシュメモリをa段でアクセスする場合には当該部分処理結果を透過出力し、前記キャッシュメモリをb段でアクセスする場合には当該部分処理結果を保持し次の段に出力する複数の透過保持部とを備えるように構成してもよい。
【0027】
さらに、各透過保持部は、部分処理部からの部分処理結果を保持するパイプラインラッチと、前記キャッシュメモリをa段でアクセスする場合は当該部分処理結果を選択し、前記キャッシュメモリをb段でアクセスする場合はパイプラインラッチの出力を選択して次段の部分処理部に出力するセレクタとを有するように構成してもよい。
【0028】
そして、前記部分処理の1つにタグメモリ部のアクセスを含み、前記部分処理の他の1つにデータメモリ部のアクセスを含むように構成してもよい。
【0029】
そして、データ処理装置は、さらに、前記キャッシュメモリをa段でアクセスする場合の前記アクセスの最終段の処理結果を、前記処理手段の予め定めた段の入力に転送する第1の転送手段と、前記キャッシュメモリをb段でアクセスする場合の前記アクセスの最終段の処理結果を、前記予め定めた段の入力に転送する第2の転送手段と、パイプライン処理される命令の前記予め定めた段の入力が、前記命令に先行する命令の前記キャッシュメモリのアクセス結果を必要とする状態を検出する検出手段とを備え、前記検出手段が前記状態を検出した場合に、前記切り替え手段が切り替えるパイプライン段数に対応して前記第1の転送手段の転送結果と前記第2の転送結果との何れかを選択し、前記予め定めた段の入力とするように構成してもよい。
【0030】
そして、切り替え手段は、データ処理装置が第1の動作環境にあるか第2の動作環境にあるかを指定する指定手段と、第1の動作環境にあると指定された場合には、前記キャッシュメモリをa段でアクセスさせ、第2の動作環境にあると指定された場合には、前記キャッシュメモリをb段でアクセスさせるパイプライン制御手段とを備え、前記第1の動作環境にあるか第2の動作環境にあるかは、データ処理装置に供給される動作クロックの周波数と、データ処理装置に供給される電源電圧との何れかに応じて区別されるように構成してもよい。
【0031】
さらに、指定手段は、その指定内容を示すフラグを保持するフリップフロップ、その指定内容を示すデータを保持するレジスタ、その指定内容を示す論理値を入力する入力端子、その指定内容を示す内部信号の何れかであるように構成してもよい。
【0032】
【発明の実施の形態】
以下、本発明の実施の形態について、図1から図5を用いて説明する。
【0033】
図1は、本発明の第一の実施の形態におけるデータ処理装置の構成を表すブロック図を示す。
【0034】
本データ処理装置は、中央演算処理装置1とデータキャッシュ2と外部メモリ23とから構成される。同図において、中央演算処理装置1はIFステージ、DECステージ、EXステージ、MEMステージ、WBステージの5つのステージからなる5段パイプライン構造を成している。命令フェッチ回路11はIFステージで動作しメモリ(図外)から命令の読出しを行う。命令解読回路12はDECステージで動作し命令フェッチ回路11で読出された命令を解読する。命令実行回路13はEXステージとMEMステージとWBステージとで動作し命令解読回路12によって制御され、演算のオペランドを格納するレジスタ131と、レジスタ131から読出したデータまたはレジスタ131に格納するデータを載せるバス132a〜132dと、バス132aとセレクタ141の出力値とを選択するセレクタ133と、バス132bによって転送されるデータとセレクタ133の出力値とを用いて演算を行う演算器134と、クロック同期で演算器134の出力値を保持する第1EXラッチ135と、クロック同期で演算器134の出力値を保持する第2EXラッチ136と、第1EXラッチ135の出力値とデータキャッシュ2の出力データとを選択するセレクタ137と、第1EXラッチ135の出力値とデータキャッシュ2の出力データとを選択するセレクタ138と、クロック同期でセレクタ137の出力値を保持する第1MEMラッチ139と、クロック同期でセレクタ138の出力値を保持する第2MEMラッチ140と、第1EXラッチ135の出力値と第2MEMラッチ140の出力値とを選択するセレクタ141とからなる。パイプライン処理制御回路14は命令フェッチ回路11と命令解読回路12と命令実行回路13とをパイプライン処理を行う。バイパス切替フラグ15は、本中央演算処理装置1に対してどのステージからバイパスするデータを転送するかを示すフラグを保持する。本実施の形態ではEXステージからバイパスするときにフラグがセットされ、MEMステージからバイパスするときにフラグがクリアされるものとする。データキャッシュ2は、アドレスバス211よりアドレスを入力しキャッシュメモリ22に保持するデータのアドレスを保持しその入力アドレスと保持アドレスとを比較することによりキャッシュヒットかキャッシュミスヒットかを判別するとともにキャッシュメモリ22にアドレスを出力しキャッシュミスヒットの場合はキャッシュメモリ22と外部メモリ23とにアドレスを出力するとともに入力アドレスを保持アドレスに変更するキャッシュヒット検出回路21と、キャッシュヒットの場合キャッシュヒット検出回路21からアドレスを入力しキャッシュヒットの場合そのアドレスのメモリからデータを出力しキャッシュミスヒットの場合外部メモリ23よりデータを入力しそのデータを出力すると共にキャッシュヒット検出回路21からアドレスを入力したアドレスのメモリからデータを書き込むキャッシュメモリ22とからなり、中央演算処理装置1からアドレスをキャッシュヒット検出回路21へ転送するアドレスバス211と、キャッシュヒット検出回路21からアドレスを外部メモリ23へ転送するアドレスバス212と、外部メモリ23からデータをキャッシュメモリ22へ転送するデータバス213と、キャッシュメモリ22からデータを中央演算処理装置1へ転送するデータバス214と接続する。外部メモリ23は、アドレスバス212よりアドレスを入力しそのアドレスのメモリからデータを出力しデータバス213へデータを出力する。
【0035】
以上のように構成された本発明の第一の実施の形態による情報処理装置について、その動作を説明する。ここではアドレスをインクリメント処理しながらキャッシュからデータをロードし、連続して加算を実行する処理を例示する。ここでは予めコンパイラによるスケジューリングによってEXステージからのフォワーディングが使用されるよう偏って命令を配置する。また、データキャッシュ2はロードするデータを保持すると仮定する。例示プログラムを以下に示す。
命令1:MOV (A0+),D1(アドレスA0からデータをロードしながらアドレスA0をインクリメント処理を行い、そのロードデータをD1レジスタに、インクリメント処理を行ったアドレスをA0に格納する)命令2:ADD D0,A0(D1レジスタとA0レジスタの加算を行い、その結果をA0レジスタに格納する)
EXステージからバイパスするときの動作について説明する。この場合バイパス切替フラグ15はフラグがセットされる。図2に示したタイムチャートを用いて説明する。
【0036】
(タイミング1)命令1:命令フェッチ回路11は命令を読出す(処理時間は7ナノ秒)。
【0037】
(タイミング2)命令1:読出された命令が命令解読回路12で解読される(同9ナノ秒)。
命令2:命令フェッチ回路11は命令を読出す(同7ナノ秒)。
【0038】
(タイミング3)命令1:命令によって指示されたオペランドデータがレジスタ131から読出されバス132aに載せられ、バス132aを選択するセレクタ133の出力を入力とを用いて演算器134でインクリメント処理されて、その演算結果が第1EXラッチ135に格納され、セレクタ133の出力が第2EXラッチ136に格納される(同9ナノ秒)。
命令2:読出された命令が命令解読回路12で解読される(同9ナノ秒)。
【0039】
(タイミング4)命令1:第1EXラッチ135の出力値はセレクタ137に選択されて第1MEMラッチ139に格納されると共に、第2EXラッチ136の出力値はアドレスバス211を介してデータキャッシュ2のキャッシュヒット検出回路21に転送される。キャッシュヒット検出回路21は入力データのキャッシュヒットかキャッシュミスヒットかを判別し、入力アドレスをキャッシュメモリ22に出力する。キャッシュメモリ22は入力アドレスに格納されているデータを出力して、データをデータバス214を介して中央演算処理装置1に転送する。セレクタ138はデータキャッシュ2から転送されたデータを選択する。図2ではキャッシュヒット検出回路21とキャッシュメモリ22とが処理する時間をキャッシュ読出しと記している。第2MEMラッチ140はセレクタ138の出力値を格納する(同10ナノ秒)。
命令2:バイパス切替フラグ15がセットされているので、第1EXラッチ135の出力がセレクタ141に選択され、オペランドデータがレジスタ131から読出されバス132a及びバス132bに載せられ、セレクタ133がセレクタ141の出力を選択され、演算器134がバス132bとセレクタ133の出力とを入力に用いて加算演算されて、その演算結果が第1EXラッチ135に格納される(同9ナノ秒)。
【0040】
(タイミング5)命令1:第1MEMラッチ139と第2MEMラッチ140とに格納された演算結果及びデータがバス132c及びバス132dを介してレジスタ131に格納される(同5ナノ秒)。
命令2:第1EXラッチ135の演算結果はセレクタ137に選択されて第1MEMラッチ139に格納される(同1ナノ秒)。
【0041】
(タイミング6)命令2:第1MEMラッチ139に格納された演算結果がバス132cを介してレジスタ131に格納される(同5ナノ秒)。
【0042】
このように、予めスケジューリングによってEXステージからのフォワーディングが有効となるように命令を配置されているためにレジスタ干渉検出回路によるバイパス指定をする必要がないのでこれに必要なハードウエアを削減することができる。またここではEXステージからのフォワーディングが有効となるように命令を配置しEXステージからEXステージへのバイパスを用いたが、同様に予めスケジューリングによってMEMステージからのフォワーディングが有効となるように命令を配置し、MEMステージからEXステージへのバイパスを用いてもレジスタ干渉検出回路によるバイパス指定をする必要がないのでこれに必要なハードウエアを削減することができる。
【0043】
図3は、本発明の第二の実施の形態におけるデータ処理装置の構成を表すブロック図を示す。
【0044】
本データ処理装置は、中央演算処理装置3とデータキャッシュ4と外部メモリ45とから構成される。同図において、中央演算処理装置3はIFステージ、DECステージ、EXステージ、MEM1ステージ、MEM2ステージ、WBステージの6つのステージからなる6段パイプライン構造を成している。命令フェッチ回路31はIFステージで動作しメモリ(図外)から命令の読出しを行う。命令解読回路32はDECステージで動作し命令フェッチ回路31で読出された命令を解読する。命令実行回路33はEXステージとMEM1ステージとMEM2ステージとWBステージとで動作し命令解読回路32によって制御され、演算のオペランドとメモリアクセス時のアドレス及びデータを格納するレジスタ331と、レジスタ331から読出したデータまたはレジスタ331に格納するデータを載せるバス332a〜332cと、バス332aとセレクタ340の出力値とを選択するセレクタ333と、バス332bによって転送されるデータとセレクタ333の出力値とを用いて演算を行う演算器334と、レジスタ331よりデータを読出されてから1動作クロック後に演算器334の出力値を保持するEXラッチ335と、EXラッチ335の出力値とデータキャッシュ4の出力データとを選択するセレクタ336と、クロック同期でセレクタ336の出力値を保持するMEM1ラッチ337と、MEM1ラッチ337の出力値とデータキャッシュ4の出力データとを選択するセレクタ338と、クロック同期でセレクタ338の出力値を保持するMEM2ラッチ339と、高速ピッチフラグ35が0のときMEM1ラッチ337の出力値を選択し高速ピッチフラグ35が1のときMEM2ラッチ339の出力値を選択するセレクタ340とからなり、EXラッチ335の出力値をデータキャッシュ4へ転送するアドレスバス411と、データキャッシュ4のデータ出力をセレクタ336とセレクタ338の入力へ転送するデータバス414とを介してデータキャッシュ4と接続する。
【0045】
パイプライン処理制御回路34は命令フェッチ回路31と命令解読回路32と命令実行回路33とをパイプライン処理を行う。高速ピッチフラグ35は、本中央演算処理装置3に供給されている動作クロックの周波数が、高速クロックか低速クロックかを示すフラグを保持する。本実施の形態では動作クロックの周波数が50メガヘルツより高いときにフラグがセットされ、50メガヘルツ以下のときクリアされるものとする。データキャッシュ4は、アドレスバス411よりアドレスを入力しキャッシュメモリ44に保持するデータのアドレスを保持しその入力アドレスと保持アドレスとを比較することによりキャッシュヒットかキャッシュミスヒットかを判別するとともにアドレスをMEM1ラッチ42とセレクタ43とに出力しキャッシュミスヒットの場合はキャッシュメモリ44と外部メモリ45とにアドレスを出力するとともに入力アドレスを保持アドレスに変更するキャッシュヒット検出回路41と、クロック同期でキャッシュヒット検出回路41の出力アドレスを保持するMEM1ラッチ42と、高速ピッチフラグ35が0のときキャッシュヒット検出回路41の出力アドレスを選択し高速ピッチフラグ35が1のときMEM1ラッチ42の出力アドレスを選択するセレクタ43と、キャッシュヒットの場合セレクタ43からの出力アドレスを入力しキャッシュヒットの場合そのアドレスのメモリからデータを出力しキャッシュミスヒットの場合外部メモリ45よりデータを入力しそのデータを出力すると共にセレクタ43からの出力アドレスを入力したアドレスのメモリからデータを書き込むキャッシュメモリ44とからなり、中央演算処理装置3からアドレスをキャッシュヒット検出回路41へ転送するアドレスバス411と、キャッシュヒット検出回路41からアドレスを外部メモリ45へ転送するアドレスバス412と、外部メモリ45からデータをキャッシュメモリ44へ転送するデータバス413と、キャッシュメモリ44からデータを中央演算処理装置3へ転送するデータバス414と接続する。外部メモリ45は、アドレスバス412よりアドレスを入力しそのアドレスのメモリからデータを出力しデータバス413へデータを出力する。
【0046】
以上のように構成された本発明の第二の実施の形態による情報処理装置について、クロック周波数が低速の場合の高速の場合とに分けてその動作を説明する。ここでは加算を連続で実行する処理を例示する。例示プログラムを以下に示す。命令1:MOV (A0),D1(A0レジスタの値のアドレスに格納されるデータをD1レジスタに格納する)命令2:ADD D0,D1(D0レジスタとD1レジスタの加算を行い、その結果をD1レジスタに格納する)なお、データキャッシュ4はロードするデータを保持すると仮定する。
(1)クロック周波数が50メガヘルツを超え100メガヘルツ以下の場合
図4はクロックの周波数が100メガヘルツ、即ちマシンサイクルが10ナノ秒で動作する例を示している。この場合高速ピッチフラグ35はセットされている。命令実行回路33のメモリアクセスはMEM2ステージで処理が完了する。同図は、パイプラインのIFステージ、DECステージ、EXステージ、MEM1ステージ、MEM2ステージ、WBステージの処理時間とデータキャッシュの処理時間をマシンサイクル毎に示している。
【0047】
(タイミング1)命令1:命令フェッチ回路31は命令を読出す(処理時間は7ナノ秒)。
【0048】
(タイミング2)命令1:読出された命令が命令解読回路32で解読される(同9ナノ秒)。
命令2:命令フェッチ回路31は命令を読出す(同7ナノ秒)。
【0049】
(タイミング3)命令1:命令によって指示されたメモリアクセス時のアドレスデータが、レジスタ331から読出され、バス332aを介し、セレクタ333においてバス332aを選択されて、EXラッチ335に格納される(同5ナノ秒)。
命令2:読出された命令が命令解読回路32で解読される(同9ナノ秒)。
【0050】
(タイミング4)命令1:EXラッチ335に格納されたアドレスがアドレスバス411を介してデータキャッシュ4のキャッシュヒット検出回路41に転送される。キャッシュヒット検出回路41において入力したアドレスがキャッシュメモリ44に格納されているかどうかを判別されると共に、キャッシュヒット検出回路41を通過してMEM1ラッチ42に格納される(同8ナノ秒)。キャッシュヒット検出回路41は入力データのキャッシュヒットかキャッシュミスヒットかを判別し、入力アドレスをキャッシュメモリ44に出力する。キャッシュメモリ44は入力アドレスに格納されているデータを出力中でこのステージが終了する。セレクタ336はデータキャッシュ4から転送されたデータを選択するがこのデータは任意の値を持つ。MEM1ラッチ337はセレクタ336の出力値(任意データ)に格納される(同8ナノ秒)。
命令2:入力データが未だメモリアクセス中なので演算実行待ちにされる。
【0051】
(タイミング5)命令1:高速ピッチフラグ35が1なのでセレクタ43はMEM1ラッチ42に格納されたアドレスを選択し、キャッシュメモリ44においてセレクタ43より入力されたアドレスに格納されるデータが読出され、このデータはデータバス414を介して中央演算処理装置3に転送される。セレクタ338はデータキャッシュ4からのデータを選択し、MEM2ラッチ339はセレクタ338の出力データを格納する(同10ナノ秒)。
命令2:高速ピッチフラグ35がセットされているので、パイプライン制御回路34により命令実行回路33は、入力データが未だメモリアクセス中なので演算実行待ちにされる。
【0052】
(タイミング6)命令1:MEM2ラッチ339に格納されたデータがバス332cからレジスタ331に格納される(同5ナノ秒)。
命令2:高速ピッチフラグ35がセットされているので、パイプライン制御回路34により命令実行回路33は、MEM2ラッチ339に格納されているデータをバイパスしセレクタ340に転送され、セレクタ340は高速ピッチフラグ15の値1によりMEM2ラッチ339を選択し、命令によって指示されたオペランドデータが、レジスタ331から読出され、バス332aとセレクタ340の出力値を選択するセレクタ333の出力とを入力とを用いて演算器334で加算されてその演算結果がEXラッチ335に格納される(同9ナノ秒)。
【0053】
(タイミング7)命令2:EXラッチ335に格納された演算結果をセレクタ336に転送され、セレクタ336はEXラッチ335の出力値を選択し、セレクタ336の出力値はMEM1ラッチ337に格納される(同1ナノ秒)。
【0054】
(タイミング8)命令2:MEM1ラッチ337に格納された演算結果をセレクタ338に転送され、セレクタ338はMEM1ラッチ337の出力値を選択し、セレクタ336の出力値はMEM2ラッチ339に格納される(同1ナノ秒)。
【0055】
(タイミング9)命令2:MEM1ラッチ337に格納された演算結果がバス332cからレジスタ331に格納される(同5ナノ秒)。
(2)クロック周波数が50メガヘルツ以下(低速)の場合
図5に示したように、クロックの周波数が50メガヘルツ、即ちマシンサイクルが20ナノ秒で動作する例を示している。この場合高速ピッチフラグ35はクリアされている。命令実行回路33のメモリアクセスはMEM1ステージで演算処理が完了する。同図は、メモリアクセスの前後のパイプラインのEXステージ、MEM1ステージ、MEM2ステージ、WBステージの処理時間とデータキャッシュの処理時間をマシンサイクル毎に示している。
【0056】
(タイミング1)命令1:命令フェッチ回路31は命令を読出す(処理時間は7ナノ秒)。
【0057】
(タイミング2)命令1:読出された命令が命令解読回路32で解読される(同9ナノ秒)。
命令2:命令フェッチ回路31は命令を読出す(同7ナノ秒)。
【0058】
(タイミング3)命令1:命令によって指示されたメモリアクセス時のアドレスデータが、レジスタ331から読出され、バス332aとバス332bを選択するセレクタ333の出力と入力とを用いて演算器334を転送してEXラッチ335に格納される(同5ナノ秒)。
命令2:読出された命令が命令解読回路32で解読される(同9ナノ秒)。
【0059】
(タイミング4)命令1:EXラッチ335の出力値はアドレスバス411を介してデータキャッシュ4のキャッシュヒット検出回路41に転送される。キャッシュヒット検出回路41において入力したアドレスがキャッシュメモリ44に格納されているかどうかを判別されると共に、キャッシュヒット検出回路41を通過し、セレクタ43において高速ピッチフラグ35が0なのでキャッシュヒット検出回路41から出力されたアドレスが選択され、キャッシュメモリ44においてセレクタ43より入力されたアドレスに格納されるデータを読出される。キャッシュメモリ44の出力データがデータバス414を介して中央演算処理装置3のセレクタ336に転送される。セレクタ336はデータキャッシュ4から転送されたデータを選択する。MEM1ラッチ337はセレクタ336の出力値に格納される(同18ナノ秒)。
命令2:入力データが未だメモリアクセス中なので演算実行待ちにされる。
【0060】
(タイミング5)命令1:セレクタ338においてデータキャッシュ4から転送されたデータが選択され、MEM2ラッチ339に格納される(同1ナノ秒)。
命令2:高速ピッチフラグ35がクリアされているので、パイプライン制御回路34により命令実行回路33は、MEM1ラッチ337に格納されているデータをバイパスしセレクタ340に転送され、セレクタ340は高速ピッチフラグ35の値0によりMEM1ラッチ337を選択し、命令によって指示されたオペランドデータが、レジスタ331から読出され、バス332aとセレクタ340の出力値を選択するセレクタ333の出力と入力とを用いて演算器334で加算されてその演算結果がEXラッチ335に格納される(同9ナノ秒)。
【0061】
(タイミング6)命令1:MEM2ラッチ339に格納されたデータがバス332cからレジスタ331に格納される(同5ナノ秒)。
命令2:EXラッチ335に格納された演算結果をセレクタ336に転送され、セレクタ336はEXラッチ335の出力値を選択し、セレクタ336の出力値はMEM1ラッチ337に格納される(同1ナノ秒)。
【0062】
(タイミング7)命令2:MEM1ラッチ337に格納された演算結果をセレクタ338に転送され、セレクタ338はMEM1ラッチ337の出力値を選択し、セレクタ336の出力値はMEM2ラッチ339に格納される(同1ナノ秒)。
【0063】
(タイミング8)命令2:MEM1ラッチ337に格納された演算結果がバス332cからレジスタ331に格納される(同5ナノ秒)。
【0064】
以上のように本発明の第二の実施の形態によれば、高速ピッチフラグ35をセットすることにより、キャッシュの動作周波数に応じてパイプライン段数を変化させインタロックによる性能劣化が生じないようにすることができる。さらに、パイプライン段数を変化させるとともにフォワーディングパスを切り替えることによりインタロック期間が短縮でき性能を一層改善することができる。
【0065】
なお、本発明の第二の実施の形態において、MEM2ステージとWBステージを1つのステージで行ってもよい。この場合パイプライン段数は5となり、クロック周波数が50メガヘルツを超える場合はWBステージを1マシンサイクルだけ伸張して2マシンサイクルで完結するようにしてもよい。
【0066】
また、本発明の第一の実施の形態では、バイパスを切り替えるセレクタ141はバイパス切替フラグ15によって切り替えているが、この切り替え方法はパイプライン処理制御回路14の内部信号によって切り替えてもよいし、外部端子で切り替えてもよいし、またバイパスが必要な特定命令によって切り替えてもよい。
【0067】
また、以上の本発明の実施の形態では、いずれもパイプラインにおける実行ステージの処理時間が他のステージに比べて長くなる場合について述べているが、律則するステージが実行ステージのほか、命令解読ステージを含めいかなるステージであっても本発明が応用可能であることは言うまでもない。
【0068】
また、上記実施の形態では、高速ピッチフラグ35は、動作クロックの周波数が所定の周波数(50MHz)を越えるか以下かにより設定された。これ以外にも供給される電源電圧値に応じて設定してもよい。というのは、一般に電源電圧が高いと回路の遅延時間が小さく、低いと大きくなるので、例えばデータ処理装置の電源電圧が5Vの場合と3Vの場合とで高速ピッチフラグ35の設定を使い分ければよい。
【0069】
【発明の効果】
以上のように本発明に係るデータ処理装置は、パイプライン段数がn段で機械語命令をパイプライン処理する処理手段と、前記処理手段の中にあって、n以下のi段目の処理結果をi以下のk段目の入力に転送する第1の転送手段と、前記処理手段の中にあって、n以下でかつiより大きいj段目の処理結果をk段目の入力に転送する第2の転送手段と、前記処理手段の中にあって、前記第1の転送手段の転送結果と前記第2の転送結果との何れかを選択してk段目の入力とする切り替え手段と、パイプライン処理される命令のk段目の入力が、前記命令に先行する命令のパイプライン処理におけるi段目で決定される内容を必要とする第1の状態と、前記命令に先行する命令のパイプライン処理におけるj段目で決定される内容を必要とする第2の状態とを検出する検出手段と、所定の条件に応じて、前記検出手段が前記第1の状態を検出した場合にのみ、前記切り替え手段に対して前記第1の転送結果を選択する第1の指示を与えるか、または、前記検出手段が前記第1および第2の状態を検出した場合に、前記切り替え手段に対して前記第2の転送結果を選択する第2の指示を与える選択制御手段とを備え、前記選択制御手段は、前記機械語命令の組合せが、前記第1の状態を多く発生させるか、前記第2の状態を多く発生させるかを指定する指定手段を更に備え、前記指定手段により、前記第1の状態を多く発生させると指 定された場合には、前記切り替え手段に対して前記第1の指示を与え、前記第2の状態を多く発生させると指定された場合には、前記切り替え手段に対して前記第2の指示を与える。この構成によれば、データの依存性を検出して第1の転送手段と第2の転送手段とを切り替える手段が不要になり、その分のハードウェアコスト及び消費電力が削減できる。また、第1の転送手段と第2の転送手段とのいずれかが他に比べて遅延時間の長い、いわゆるクリティカルパスであることが判明した場合、意図的にその転送手段を利用しないように設定することで動作周波数の向上が図れる。
【0070】
また、本発明に係るデータ処理装置は、キャッシュメモリのアクセスを行う段を含む複数の段からなり、機械語命令をパイプライン処理する処理手段を有するデータ処理装置であって、前記キャッシュメモリのアクセスを行う段の段数がa段とaより大きいb段とに可変であり、前記データ処理装置はさらに、前記キャッシュメモリのアクセスを行う段の段数がa段,b段の時に処理手段のパイプライン段数をそれぞれn段と(n+b−a)段とに切り替える切り替え手段を備える。この構成によれば、キャッシュメモリのアクセスをb段にすることで動作周波数が向上する。また、動作周波数が低い場合は、キャッシュメモリのアクセスをa段にすることによりデータ依存によるインタロック期間が短縮でき性能が改善される。
【図面の簡単な説明】
【図1】本発明の第一の実施の形態におけるデータ処理装置の構成を示すブロック図
【図2】同実施形態によるデータ処理装置の動作タイミング図
【図3】本発明の第二の実施の形態におけるデータ処理装置の構成を示すブロック図
【図4】同実施形態におけるデータ処理装置の動作タイミング図
【図5】同動作タイミング図
【図6】従来のデータ処理装置の構成を示すブロック図
【図7】従来のデータ処理装置の動作タイミング図
【図8】同動作タイミング図
【図9】従来のデータ処理装置の構成を示すブロック図
【図10】従来のデータ処理装置の動作タイミング図
【図11】同動作タイミング図
【符号の説明】
1 中央演算処理装置
2 データキャッシュ
3 中央演算処理装置
4 データキャッシュ
11 命令フェッチ回路
12 命令解読回路
13 命令実行回路
14 パイプライン処理制御回路
15 バイパス切替フラグ
21 キャッシュヒット検出回路
22 キャッシュメモリ
23 外部メモリ
31 命令フェッチ回路
32 命令解読回路
33 命令実行回路
34 パイプライン処理制御回路
35 高速ピッチフラグ
41 キャッシュヒット検出回路
42 MEM1ラッチ
43 セレクタ
44 キャッシュメモリ
45 外部メモリ
131 レジスタ
132a〜132d バス
133 セレクタ
134 演算器
135 第1EXラッチ
136 第2EXラッチ
137 セレクタ
138 セレクタ
139 第1MEMラッチ
140 第2MEMラッチ
141 セレクタ
211 アドレスバス
212 アドレスバス
213 データバス
214 データバス
331 レジスタ
332a〜332d バス
333 セレクタ
334 演算器
335 EXラッチ
336 セレクタ
337 MEM1ラッチ
338 セレクタ
339 MEM2ラッチ
340 セレクタ
411 アドレスバス
412 アドレスバス
413 データバス
414 データバス

Claims (13)

  1. パイプライン段数がn段で機械語命令をパイプライン処理する処理手段と、
    前記処理手段の中にあって、n以下のi段目の処理結果をi以下のk段目の入力に転送する第1の転送手段と、
    前記処理手段の中にあって、n以下でかつiより大きいj段目の処理結果をk段目の入力に転送する第2の転送手段と、
    前記処理手段の中にあって、前記第1の転送手段の転送結果と前記第2の転送結果との何れかを選択してk段目の入力とする切り替え手段と、
    パイプライン処理される命令のk段目の入力が、前記命令に先行する命令のパイプライン処理におけるi段目で決定される内容を必要とする第1の状態と、前記命令に先行する命令のパイプライン処理におけるj段目で決定される内容を必要とする第2の状態とを検出する検出手段と、
    所定の条件に応じて、
    前記検出手段が前記第1の状態を検出した場合にのみ、前記切り替え手段に対して前記第1の転送結果を選択する第1の指示を与えるか、または、
    前記検出手段が前記第1および第2の状態を検出した場合に、前記切り替え手段に対して前記第2の転送結果を選択する第2の指示を与える 選択制御手段とを備え
    前記選択制御手段は、
    前記機械語命令の組合せが、前記第1の状態を多く発生させるか、前記第2の状態を多く発生させるかを指定する指定手段を更に備え、
    前記指定手段により、
    前記第1の状態を多く発生させると指定された場合には、前記切り替え手段に対して前記第1の指示を与え、
    前記第2の状態を多く発生させると指定された場合には、前記切り替え手段に対して前記第2の指示を与える
    ことを特徴とするデータ処理装置。
  2. 請求項記載の指定手段は、
    その指定内容を示すフラグを保持するフリップフロップ、その指定内容を示すデータを保持するレジスタ、その指定内容を示す論理値を入力する入力端子、その指定内容を示す内部信号の何れかである
    ことを特徴とするデータ処理装置。
  3. 請求項記載の指定手段は、
    前記機械語命令の組合せが、前記第1の状態を多く発生させるか、前記第2の状態を多く発生させるかを示す特定命令の解読または実行に基づいて指定される
    ことを特徴とするデータ処理装置。
  4. 請求項1ないし記載の何れかの処理手段は、少なくとも、
    1つのパイプライン段数で命令フェッチを行う命令フェッチ部と、
    1つのパイプライン段数でフェッチされた命令の解読を行う命令解読部と、
    前段部と後段部の2つのパイプライン段数で命令を実行する命令実行部とからなり、
    第1の転送手段は、前記命令実行部の前記前段部の実行結果を前記前段部の入力に転送し、
    第2の転送手段は、前記命令実行部の前記後段部の実行結果を前記前段部の入力に転送し、
    切り替え手段は、前記命令実行部の前記前段部の実行結果と前記後段部の実行結果との何れかを選択して前記前段部の入力とする
    ことを特徴とするデータ処理装置。
  5. キャッシュメモリのアクセスを行う段を含む複数の段からなり、機械語命令をパイプライン処理する処理手段を有するデータ処理装置であって、
    前記キャッシュメモリのアクセスを行う段の段数がa段とaより大きいb段とに可変であり、
    前記データ処理装置はさらに、 前記キャッシュメモリのアクセスを行う段の段数がa段,b段の時に処理手段のパイプライン段数をそれぞれn段と(n+b−a)段とに切り替える切り替え手段を備えることを特徴とするデータ処理装置。
  6. 請求項記載の処理手段は、命令フェッチステージ、命令解読ステージ及び命令実行ステージの少なくとも3段のパイプライン段数を持ち、
    前記キャッシュメモリは前記命令実行ステージにおいてアクセスされる
    ことを特徴とするデータ処理装置。
  7. 前記キャッシュメモリのアクセスの処理内容は、シーケンシャルなb個の部分処理に分割可能であり、
    前記キャッシュメモリをa段でアクセスする場合にはb個の部分処理のうちの(b−a)個を隣合う他のa個の部分処理と同一の段で処理し、
    前記キャッシュメモリをb段でアクセスする場合には各部分処理をそれぞれ1段で処理する
    ことを特徴とする請求項または記載のデータ処理装置。
  8. 前記各段はそれぞれ個別の処理部が実行し、
    それら処理部の少なくとも1つは、
    前記部分処理を実行する複数の部分処理部と、
    部分処理部と次段の部分処理部との間に設けられ、前記キャッシュメモリをa段でアクセスする場合には当該部分処理結果を透過出力し、前記キャッシュメモリをb段でアクセスする場合には当該部分処理結果を保持し次の段に出力する複数の透過保持部とを備える
    ことを特徴とする請求項記載のデータ処理装置。
  9. 前記各透過保持部は、
    部分処理部からの部分処理結果を保持するパイプラインラッチと、
    前記キャッシュメモリをa段でアクセスする場合は当該部分処理結果を選択し、前記キャッシュメモリをb段でアクセスする場合はパイプラインラッチの出力を選択して次段の部分処理部に出力するセレクタと
    を有することを特徴とする請求項記載のデータ処理装置。
  10. 前記部分処理の1つにタグメモリ部のアクセスを含み、前記部分処理の他の1つにデータメモリ部のアクセスを含む
    ことを特徴とする請求項からのいずれかに記載のデータ処理装置。
  11. 請求項ないし10記載の何れかのデータ処理装置は、さらに、
    前記キャッシュメモリをa段でアクセスする場合の前記アクセスの最終段の処理結果を、前記処理手段の予め定めた段の入力に転送する第1の転送手段と、
    前記キャッシュメモリをb段でアクセスする場合の前記アクセスの最終段の処理結果を、前記予め定めた段の入力に転送する第2の転送手段と、
    パイプライン処理される命令の前記予め定めた段の入力が、前記命令に先行する命令の前記キャッシュメモリのアクセス結果を必要とする状態を検出する検出手段とを備え、
    前記検出手段が前記状態を検出した場合に、
    前記切り替え手段が切り替えるパイプライン段数に対応して前記第1の転送手段の転送結果と前記第2の転送結果との何れかを選択し、前記予め定めた段の入力とする
    ことを特徴とするデータ処理装置。
  12. 前記切り替え手段は、
    データ処理装置が第1の動作環境にあるか第2の動作環境にあるかを指定する指定手段と、
    第1の動作環境にあると指定された場合には、前記キャッシュメモリをa段でアクセスさせ、第2の動作環境にあると指定された場合には、前記キャッシュメモリをb段でアクセスさせるパイプライン制御手段とを備え、
    前記第1の動作環境にあるか第2の動作環境にあるかは、データ処理装置に供給される動作クロックの周波数と、データ処理装置に供給される電源電圧との何れかに応じて区別される
    ことを特徴とする請求項から11のいずれかに記載のデータ処理装置。
  13. 請求項12記載の指定手段は、
    その指定内容を示すフラグを保持するフリップフロップ、その指定内容を示すデータを保持するレジスタ、その指定内容を示す論理値を入力する入力端子、その指定内容を示す内部信号の何れかである
    ことを特徴とするデータ処理装置。
JP17140097A 1997-06-27 1997-06-27 データ処理装置 Expired - Fee Related JP3541623B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP17140097A JP3541623B2 (ja) 1997-06-27 1997-06-27 データ処理装置
US09/105,212 US6161171A (en) 1997-06-27 1998-06-26 Apparatus for pipelining sequential instructions in synchronism with an operation clock

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17140097A JP3541623B2 (ja) 1997-06-27 1997-06-27 データ処理装置

Publications (2)

Publication Number Publication Date
JPH1115658A JPH1115658A (ja) 1999-01-22
JP3541623B2 true JP3541623B2 (ja) 2004-07-14

Family

ID=15922461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17140097A Expired - Fee Related JP3541623B2 (ja) 1997-06-27 1997-06-27 データ処理装置

Country Status (2)

Country Link
US (1) US6161171A (ja)
JP (1) JP3541623B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4201927B2 (ja) * 1999-08-25 2008-12-24 株式会社ルネサステクノロジ データ処理管理装置
JP3450814B2 (ja) * 2000-09-26 2003-09-29 松下電器産業株式会社 情報処理装置
US6941480B1 (en) 2000-09-30 2005-09-06 Intel Corporation Method and apparatus for transitioning a processor state from a first performance mode to a second performance mode
US7085944B1 (en) 2000-09-30 2006-08-01 Intel Corporation Power management by transmitting single multiplexed signal to multiple system components to change settings of internal performance registers in response to change in power source
JP3805314B2 (ja) 2003-02-27 2006-08-02 Necエレクトロニクス株式会社 プロセッサ
AU2005211257B2 (en) * 2004-02-09 2010-11-18 Smart Medical Systems Ltd. Endoscope assembly
US20060182149A1 (en) * 2005-02-12 2006-08-17 Ramsdale Timothy J Method and system for mobile multimedia processor supporting rate adaptation and mode selection
TW200919306A (en) * 2007-07-11 2009-05-01 Ibm Adaptive execution frequency control method for enhanced instruction throughput
CN109634667B (zh) * 2018-12-11 2023-03-14 中国电子科技集团公司第四十七研究所 一种基于时钟的双速流水线架构微处理器及其实现方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2507472B2 (ja) * 1987-09-07 1996-06-12 富士通株式会社 メモリ干渉制御方式
US5313621A (en) * 1990-05-18 1994-05-17 Zilog, Inc. Programmable wait states generator for a microprocessor and computer system utilizing it
AU2476192A (en) * 1991-08-16 1993-03-16 Multichip Technology High-performance dynamic memory system
US5590368A (en) * 1993-03-31 1996-12-31 Intel Corporation Method and apparatus for dynamically expanding the pipeline of a microprocessor
US5787488A (en) * 1993-04-22 1998-07-28 Analog Devices, Inc. Multi-phase multi-access pipeline memory system
EP0721157A1 (en) * 1994-12-12 1996-07-10 Advanced Micro Devices, Inc. Microprocessor with selectable clock frequency
US5926053A (en) * 1995-12-15 1999-07-20 National Semiconductor Corporation Selectable clock generation mode
US5815693A (en) * 1995-12-15 1998-09-29 National Semiconductor Corporation Processor having a frequency modulated core clock based on the criticality of program activity
US5778208A (en) * 1995-12-18 1998-07-07 International Business Machines Corporation Flexible pipeline for interlock removal
US5802360A (en) * 1996-05-01 1998-09-01 Lucent Technologies Inc. Digital microprocessor device having dnamically selectable instruction execution intervals

Also Published As

Publication number Publication date
JPH1115658A (ja) 1999-01-22
US6161171A (en) 2000-12-12

Similar Documents

Publication Publication Date Title
US8145885B2 (en) Apparatus for randomizing instruction thread interleaving in a multi-thread processor
US7827388B2 (en) Apparatus for adjusting instruction thread priority in a multi-thread processor
US5706459A (en) Processor having a variable number of stages in a pipeline
US5131086A (en) Method and system for executing pipelined three operand construct
KR920006275B1 (ko) 데이타 처리 장치
KR20010040959A (ko) 태스크 스위칭에 의한 제로 오버헤드 컴퓨터 인터럽트
US5590368A (en) Method and apparatus for dynamically expanding the pipeline of a microprocessor
JP2004171177A (ja) キャッシュシステムおよびキャッシュメモリ制御装置
US20100180102A1 (en) Enhancing processing efficiency in large instruction width processors
KR100471794B1 (ko) 가변파이프라인단수의데이터처리장치
JP3541623B2 (ja) データ処理装置
US6178500B1 (en) Vector packing and saturation detection in the vector permute unit
US20070260857A1 (en) Electronic Circuit
JP3790626B2 (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
WO1991014225A1 (en) Apparatus and method for providing a stall cache
JP3183844B2 (ja) 可変パイプライン段数のデータ処理装置
US5526500A (en) System for operand bypassing to allow a one and one-half cycle cache memory access time for sequential load and branch instructions
KR20050027213A (ko) 메모리 충돌들을 감소하기 위한 명령 캐시와 방법
JP3461887B2 (ja) 可変長パイプライン制御装置
US5717891A (en) Digital signal processor with caching of instructions that produce a memory conflict
JP2001092658A (ja) データ処理回路及びデータ処理装置
US6785799B1 (en) Multiprocessor with asynchronous pipeline processing of instructions, and control method thereof
KR100214644B1 (ko) 프로세서의 메모리 다중 액세스 회로
JPH07114509A (ja) メモリアクセス装置
JP3855069B2 (ja) 論理回路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040216

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: 20040309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040322

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

Free format text: PAYMENT UNTIL: 20080409

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090409

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100409

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110409

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120409

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees