JPH09503876A - データ処理命令の実行 - Google Patents

データ処理命令の実行

Info

Publication number
JPH09503876A
JPH09503876A JP7509618A JP50961895A JPH09503876A JP H09503876 A JPH09503876 A JP H09503876A JP 7509618 A JP7509618 A JP 7509618A JP 50961895 A JP50961895 A JP 50961895A JP H09503876 A JPH09503876 A JP H09503876A
Authority
JP
Japan
Prior art keywords
instruction
data processing
data
memory
memory access
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.)
Granted
Application number
JP7509618A
Other languages
English (en)
Other versions
JP3553946B2 (ja
Inventor
ビビアン ジャガー,デビッド
Original Assignee
アドバンスド リスク マシーンズ リミテッド
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 アドバンスド リスク マシーンズ リミテッド filed Critical アドバンスド リスク マシーンズ リミテッド
Publication of JPH09503876A publication Critical patent/JPH09503876A/ja
Application granted granted Critical
Publication of JP3553946B2 publication Critical patent/JP3553946B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards

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)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Executing Machine-Instructions (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 連続するデータ処理命令が実行されるデータ処理装置は、1つまたはそれ以上の命令に対応して、データメモリにアクセスするとともに、各メモリアクセスが無効か否かを検出する手段を含むメモリアクセス手段と、前に実行された命令により発生する装置の処理状態に対応しかつ各命令の実行中に動作して、その命令を実行すべきか否かを検出する条件テスト手段と、メモリアクセス手段が、先行命令によって開始されたメモリアクセスが無効であることを検出するか、あるいは前記条件テスト手段が現在の命令を実行すべきではないことを検出するか、のいずれかの場合、メモリアクセス手段と条件テスト手段とに対応して、現在の命令の完全実行を防止する条件付き制御手段と、を含んでいる。

Description

【発明の詳細な説明】 データ処理命令の実行 発明の背景 発明の分野 本発明はデータ処理命令の実行に関する。 従来技術の説明 ある種のデータプロセッサには中央処理装置(CPU)が含まれており、 CPUは現在実行中のデータ処理命令の制御のもとに、中間のメモリ管理ユニッ トを介して、ランダムアクセスメモリ(RAM)の中に格納されているデータに アクセスすることができる。かかるデータプロセッサについて以前に提案した例 は、1993年にアドバンスト・リスク・マシンズ社(Advanced RISC Machines Limited)が発行したARM6データシートに説明されているARM6プロセッ サである。 メモリアクセス中にメモリ管理ユニットは、現在のメモリアクセスを完了でき ないことを示す、異常終了(abort)信号を発生させることができる。異常終了 信号はいろいろな理由で発生する。一例を挙げると、メモリアクセスの異常終了 は、仮想記憶メモリを使用しているデータ処理システムで発生することがあるが 、かかるデータ処理システムにおいては、RAMと低速のディスク記憶装置との 間でデータが交換されるので、アドレス指定できるメモリ空間が、実装されてい るRAMの量より大きいという錯覚が起こる。このようなシステムにおいて、要 求された仮想アドレスに対応するデータが、現在、RAMではなくディスク記憶 装置に保持されていると、これらのデータにアクセスできるまでに遅延時間が発 生するが、この遅延時間中にそのデータをディスク記憶装置からRAMに転送し なければならない。この場合、現在のメモリアクセスは異常終了し、それらのデ ータに対するアクセスは後で試行される。 メモリ管理ユニットから供給される異常終了信号は、失敗したメモリアクセス を開始した命令の実行を中止するにはあまりにも遅れて発生するが、次のデータ 処理命令の実行、すなわち、失敗したメモリアクセスを開始した命令の後のデー タ処理命令の実行を解除するためには使用できる。このことは有用である。その 理由は、後続の命令は正常動作中のメモリアクセスに依存できるからである。 失敗したメモリアクセスを開始した命令の直後の命令の実行を解除するために 異常終了信号を使用すると、異常終了信号のタイミングに厳しい条件が要求され る。これに替る方法として、直後の命令の実行が完了した後その命令の実行結果 を「元に戻す(undo)」複雑なメカニズムを備えなくてはならない。 添付図面の第1図は、以前に提案し、上に引用したデータプロセッサによるデ ータ書込み動作中(本動作中にデータがRAMに書込まれる)の、異常終了信号 のタイミング条件の概略を示すタイムチャートである。 第1図を参照すると、クロック信号は、データプロセッサによるデータ処理命 令の実行を制御している。データ書込み動作が開始されると、データプロセッサ は、メモリ管理ユニットにメモリアドレス20を供給するとともに、クロック信 号の半サイクル後で、そのアドレスに書込まれるデータ30を出力する。 (たとえば、そのアドレスに対応するデータは仮想メモリシステムのディスク 記憶装置の中に保持されているため)メモリアドレス20が無効であることをメ モリ管理ユニットが検出すると、メモリ管理ユニットは異常終了信号40を発生 させ、この信号をデータプロセッサに供給する。 (通常)書込むべきデータがデータバスに載せられてしまった後は、メモリ管 理ユニットからの応答を待つ必要がないから、データ書込み命令の次の命令は直 ちに実行される。したがって、直後の命令を解除するのに間に合うように異常終 了信号が到着するには、以前に提案し、上に引用したデータプロセッサは、書込 むべきデータを出力するよりもクロック信号の半サイクル前に、異常終了信号が 有効でなければならない。 このタイミングの制約を実現させることは実際には困難なので、(メモリ管理 ユニットの電力消費を大きくして)メモリ管理ユニットを非常に速く動作させな ければならない。 また、以前に提案し、上に引用したデータプロセッサは、このデータプロセッ サの全命令セットを条件付きで実行する。これは、最大4つの処理フラグの現在 の状態を、各命令に含まれている条件コードによって定義される各状態と比較す ることにより達成される。この比較は命令の実行と並行して行われる。条件コー ドによって指定された条件と処理フラグの状態が一致しないと、命令の完全実行 を防止する。 発明の要約 本発明は、連続するデータ処理命令が実行されるデータ処理装置を提供する。 このデータ処理装置は以下に述べる手段を含んでいる。すなわち、1つまたはそ れ以上の命令に対応してデータメモリにアクセスするとともに、各メモリアクセ スが無効か否かを検出する手段を含むメモリアクセス手段と、前に実行した命令 によって発生する装置の処理状態に対応しかつ各命令の実行中に動作して、その 命令を実行すべきか否かを検出する条件テスト手段と、メモリアクセス手段が、 先行命令によって開始されたメモリアクセスが無効であることを検出するか、あ るいは条件テスト手段が現在の命令を実行すべきではないことを検出するか、の いずれかの場合、メモリアクセス手段と条件テスト手段とに対応して、現在の命 令の完全実行を防止する条件付き制御手段(conditional control means)とを 含んでいる。 本発明によるデータ処理装置においては、完全条件付きの命令セットが使用さ れており、各命令の完全実行を条件付きで防止するメカニズムは、メモリ異常終 了を処理するためにも使用されている。したがって、各命令の実行中に、その命 令を実行すべきか否かを条件テスト手段が検出すると同時に、先行命令によって 開始されたメモリアクセスに関係するメモリ異常終了信号を受信してよい。これ により、各命令に対するメモリ異常終了を、以前に提案し上に引用したデータプ ロセッサに考慮されていた時間よりも後で処理してよいことになる。 好適実施例において、本装置は、データ処理装置の現在の処理状態を示すデー タを格納する1つまたはそれ以上の処理フラグを含み、各命令には、実行すべき その命令に必要な処理フラグの状態を定義する条件コードが含まれており、条件 テスト手段は、各命令の条件コードによって定義される処理フラグの必要な状態 を処理フラグの現在の状態と比較する。条件コードは、特定の処理フラグを特定 の論理状態にセットすべきこと、あるいはその処理フラグの状態が、現在の命令 を実行すべきか否かに影響を与えないことを指定することができる。極端な場合 、どの処理フラグの状態にも無関係に、特定の命令を実行すべきことを指定する 条件コードがあり得る。 処理フラグは、本装置の処理状態に関する各種機能を指定することができる。 好適実施例において、本装置には、 (i)装置の先行データ処理動作により負の結果が発生したか否か、 (ii)装置の先行データ処理動作によりゼロの結果が発生したか否か、 (iii)装置の先行データ処理動作により桁上げビットがセットされたか否か 、 (iv)装置の先行データ処理動作中に算術演算のオーバーフローが発生したか 否か、 を表す4つの処理フラグが含まれている。 望ましくは、メモリアクセス手段は、メモリアドレスをデータメモリに送信す る手段と、引き続きデータをデータメモリに転送する手段あるいは引き続きデー タメモリからデータを受信する手段とを含んでいる。 条件付き制御手段がメモリアクセス手段と条件テスト手段との両方に対して好 都合に応答するようにするためには、メモリアクセス手段は異常終了信号を発生 させてメモリアクセスが無効であることを示すこと、条件テスト手段は条件不良 制御信号(condition failure control signal)を発生させて現在の命令を実行 すべきではないことを示すこと、および本装置は条件制御手段に供給する組合わ せ制御信号を発生するため異常終了制御信号と条件不良制御信号とを組合わせる 手段を備えることが望ましい。 簡潔で有利な実施例においては、組合わせる手段は論理和ゲートを含んでいる 。 便利な実施例においては、装置のデータ処理動作はクロック信号によって制御 される。 第2の側面から見ると、本発明は上に定義した装置を含む集積回路を提供する 。 第3の側面から見ると、本発明はデータ処理方法を提供する。このデータ処理 方法においては、連続するデータ処理命令は条件付きで実行され、この方法は、 1つまたはそれ以上の命令に応答してデータメモリにアクセするステップと、各 命令の実行中に、前に実行した命令により発生する装置の処理状態に依存して、 その命令を実行すべきか否かを検出するステップと、先行命令によって開始され たメモリアクセスが無効であること、あるいは現在の命令を実行すべきではない こと、のいずれかが検出された場合、現在の命令の完全実行を防止するステップ と、を含んでいる。 図面の簡単な説明 添付の図面を参照し、例を示すという方法で本発明を説明する。なお全図面に ついて、同じ部分は同じ参照符号で示されている。 第1図は、以前に提案したデータプロセッサによるデータ書込み動作中の異常 終了信号のタイミング条件の概略を示すタイムチャートである。 第2図は、本発明の実施例によるデータ処理装置の概略を示すブロック図であ る。 第3図は、中央処理装置の概略を示すブロック図である。 第4図は、第2図のデータ処理装置によるデータ書込み動作中の異常終了信号 のタイミング条件の概略を示すタイムチャートである。 好適実施例の説明 つぎに第2図を参照すると、本発明の実施例によるデータ処理装置の概略を示 すブロック図が示されている。本装置は中央処理装置(CPU)100、メモリ 管理ユニット(MMU)110、ランダムアクセスメモリ(RAM)120を含 んでいる。CPU100とMMU110とは、メモリアドレスを交換するアドレ スバス130とデータを交換するデータバス140で接続されている。また、失 敗したメモリアクセスあるいは無効なメモリアクセスを示す異常終了信号を運ぶ 異常終了制御ライン150も、MMU110からCPU100に用意されている 。 クロック信号はCPU100とMMU110とに供給され、両ユニットの動作 を制御する。各データ処理命令は、(その命令の性質によって決まる)クロック 信号の特定数のサイクル中にCPU100によって実行され、MMU110によ るメモリアクセスはクロック信号に同期して実行される。 MMU110はCPU100とクロック信号の制御のもとに動作して、RAM 120に格納されているデータにアクセスする。したがって、MMUは複数のア ドレス・データ・ライン160によりRAMに接続される。 第3図は、中央処理装置100の一部の概略を示すブロック図である。CPU 100は、処理動作およびメモリ動作が実質的に連続して実行されることを可能 にする命令パイプライン方式(instruction pipelining)を使用している。普通 、1つのデータ処理命令が実行されている間に、その命令の次の命令は解読中で あり、第3の命令はメモリからフェッチされている。この装置は、3段パイプラ イン(three-stage execution pipeline)と呼ばれている。 CPU100の第3図に示す部分において、メモリからフェッチされて解読さ れているデータ処理命令が転送されて実行される。データ処理命令は32ビット のデータ語であり、その内のビット28からビット31は4ビットの条件フィー ルド(condition field)を形成する。残りのビット(ビット0からビット27 )は、その命令に対応して実行される演算を定義し、ある場合には、演算が実行 されるオペランドを定義する。 条件フィールド(ビット28からビット31)が条件テスタ200に送られる と、条件テスタ200は、この条件フィールドのビットを所定の16個の条件コ ードと比較する。この16個の条件コードは、Nフラグ、Zフラグ、Cフラグ、 Vフラグと呼ばれ、4個のプロセッサフラグ210の1つまたはそれ以上のフラ グの状態を定義する。これらのフラグは、前に実行した命令により発生するCP U100の処理状態を表す。 Nフラグは、前に実行したCPU100の算術演算の負の結果を表し、Zフラ グは、前に実行したCPU100の演算のゼロ(等しい)結果を表し、Cフラグ は、前に実行したCPU100の演算中に桁上げビットがセットされたか否かを 表し、Vフラグは、前に実行したCPU100の演算中に算術演算のオーバーフ ローが発生したことを示す。 条件フィールドの4ビットの間の関係と、Nフラグ、Zフラグ、Cフラグ、V フラグに適用される条件とを下表に示す。 条件テスタ200は、現在の命令の条件フィールドのどのビットがセットされ ているかに依存して、上に示したフラグの状態をテストする。この比較は、現在 の命令の実行中に行われる。適切なフラグが、条件フィールドが指定した状態に セットされているときにかぎり、現在の命令の実行を完了することが可能になる 。 AL(常に成立する)条件が指定されると、フラグに関係なく命令が実行され る。NV(常に成立しない)条件コードは、フラグ210の状態に関係なく命令 の実行を防止する。 条件テスタ200は、現在の命令を完全に実行すべきか否かを示す出力信号2 20を発生させる。出力信号220は、異常終了制御ライン150を介し、OR ゲート230を使用して、MMU110からCPU100に供給される異常終了 信号と組合わされる。したがって、条件テスタ200が現在の命令を完全に実行 すべきではないことを示しているか、あるいはMMU110が異常終了信号を立 ち上げているかのいずれかの場合、ORゲート230の出力がセットされる。 命令実行ユニット240は、各命令の実行すべき演算を定義するビット0から ビット27と、ある場合には、演算が実行されるオペランドを受信する。現在の 命令の実行中に(つまり、条件テスタ200とORゲート230の伝搬遅延と処 理遅延の後で)、現在の命令を完全に実行すべきか否かを示すORゲート230 の出力を受信する。ORゲート230が現在の命令を完全に実行すべきではない ことを示している場合、装置に付随するレジスタの場所やメモリの場所をどれも 変更せずに、この命令は解除される。 条件テスタ200と命令実行ユニット240は、以前に提案し、上に引用した ARM6プロセッサの対応する構成部品と同じ形式にすることができる。 第3図の装置を使用した結果、異常終了信号に対する厳しいタイミングは大幅 に緩和されるので、先行命令によって開始されたメモリアクセスに関する異常終 了信号は、各命令の実行中、後の段階でセットすることができる。 命令フェッチ動作が失敗した結果として異常終了信号が受信された場合、その 命令は、上に述べた3段階命令パイプラインの後の段階で廃棄されるだけである 。 メモリから読出されたデータが適切なプロセッサレジスタにロードされるため の時間を与えるために、データ読出し動作の後にはメモリをアクセスしない(内 部)プロセッササイクルが続く。したがって、データ読出し動作が失敗した結果 として異常終了信号が受信された場合、読出し動作の後に続く内部サイクルは、 MMU110がメモリから供給したいかなるデータ(このデータには殆んどエラ ーがある)も無視し、(たとえばプロセッサレジスタなど)意図していた場所に 格納しないようにするため時間を与える。 命令の実行とデータ書込み動作に対する異常終了信号の受信とのタイミング関 係が、第4図に示されているが、本図中にはアドレスバス130とデータバス1 40の状態とともに、CPU100による命令の実行を制御するクロック信号3 00が示されている。 データ書込み動作を開始するため、CPU100はアドレスバスにアドレス3 10を載せる。クロック信号300の半サイクル後に、CPU100はデータバ スにデータ320を載せる。この状態になると、CPU100は、クロック信号 300の次のサイクル中に次の命令を実行することができる。 (第4図に330で示すように)異常終了信号が受信された場合、あるいは条 件テスタ200が、次の命令を実行すべきではないと決定した場合(データがデ ータバスに載せられていて、340で示される後の半サイクル中に、条件テスタ 200がこれを決定する)、データ320がデータバスに載せられると同時に、 次の命令の実行は中止される。 添付の図面を参照して、本発明の判りやすい実施例を詳細に説明してきたが、 本発明はこれらの詳細な実施例に限定されるものではないこと、さらには当業者 ならば、添付の請求の範囲に定義される本発明の範囲から逸脱せずに、各種の変 更や修正ができる。
【手続補正書】特許法第184条の8 【提出日】1995年9月7日 【補正内容】 この形式のプロセッサを説明する別の文献には、論文、「ARM6:高性能低 消費電力マクロセル(ARM6: High Performance Low Power Consumption Macroce ll)」M.Muller、COMPCON、1993年春期号、頁80から頁8 7、がある。本論文には、上に引用したARM6のメモリ異常終了機能と条件付 き命令実行機能が説明されている。 発明の要約 本発明は、連続するデータ処理命令がパイプライン方式によって実行されるデ ータ処理装置を提供する。このデータ処理装置は、1つまたはそれ以上の命令に 対応してデータメモリにアクセスするとともに、各メモリアクセスが無効か否か を検出する手段を含むメモリアクセス手段と、前に実行した命令によって発生す る装置の処理状態に対応しかつ各命令の実行中に動作して、その命令を実行すベ きか否かを検出する条件テスト手段とを含み、メモリアクセス手段と条件テスト 手段とに応答して、メモリアクセス手段が、先行命令によって開始されたメモリ アクセスが無効であることを検出するか、あるいは条件テスト手段が、現在の命 令を実行すべきではないことを検出するか、のいずれかの場合、現在の命令の完 全実行を防止する条件付き制御手段を含むことを特徴としている。 本発明によるデータ処理装置においては、完全条件付きの命令セットが使用さ れており、各命令の完全実行を条件付きで防止するメカニズムは、メモリ異常終 了を処理するためにも使用されている。したがって、各命令の実行中に、その命 令を実行すべきか否かを条件テスト手段が検出すると同時に、先行命令によって 開始されたメモリアクセスに関係するメモリ異常終了信号を受信してよい。これ により、各命令に対するメモリ異常終了を、以前に提案し上に引用したデータプ ロセッサに考慮されていた時間よりも後で処理してよいことになる。 好適実施例において、本装置は、データ処理装置の現在の処理状態を示すデー タを格納する1つまたはそれ以上の処理フラグを含み、各命令には、実行すべき その命令に必要な処理フラグの状態を定義する条件コードが含まれており、条件 テスト手段は、各命令の条件コードによって定義される処理フラグの必要な状態 を処理フラグの現在の状態と比較する。条件コードは、特定の処理フラグを特定 の論理状態にセットすべきこと、あるいはその処理フラグの状態が、現在の命令 を実行すべきか否かに影響を与えないことを指定することができる。極端な場合 、条件コードは、どの処理フラグの状態にも無関係に、特定の命令を実行すべき ことを指定することができる。 処理フラグは、本装置の処理状態に関する各種機能を指定することができる。 好適実施例において、本装置には、 (i)装置の先行データ処理動作により負の結果が発生したか否か、 (ii)装置の先行データ処理動作によりゼロの結果が発生したか否か、 (iii)装置の先行データ処理動作により桁上げビットがセットされたか否か 、 (iv)装置の先行データ処理動作中に算術演算のオーバーフローが発生したか 否か、 を表す4つの処理フラグが含まれている。 望ましくは、メモリアクセス手段は、メモリアドレスをデータメモリに送信す る手段と、引き続きデータをデータメモリに転送する手段あるいは引き続きデー タメモリからデータを受信する手段とを含んでいる。 条件付き制御手段がメモリアクセス手段と条件テスト手段との両方に対して好 都合に応答するようにするためには、メモリアクセス手段は異常終了信号を発生 させてメモリアクセスが無効であることを示すこと、条件テスト手段は条件不良 制御信号(condition failure control signal)を発生させて現在の命令を実行 すべきではないことを示すこと、および本装置は条件制御手段に供給する組合わ せ制御信号を発生するため異常終了制御信号と条件不良制御信号とを組合せる手 段を備えることが望ましい。 簡潔で有利な実施例においては、組合わせる手段は論理和ゲートを含んでいる 。 便利な実施例においては、装置のデータ処理動作はクロック信号によって制御 される。 第2の側面から見ると、本発明は上に定義した装置を含む集積回路を提供する 。 第3の側面から見ると、本発明はデータ処理方法を提供する。このデータ処理 方法においては、連続するデータ処理命令はパイプライン方式で実行され、1つ またはそれ以上の命令に応答してデータメモリにアクセスするステップと、各メ モリアクセスが無効か否かを検出するステップと、各命令の実行中に、前に実行 した命令によって発生する装置の処理状態に依存して、その命令を実行すべきか 否かを検出するステップとを含み、先行命令によって開始されたメモリアクセス が無効であること、あるいは現在の命令を実行すべきではないこと、のいずれか が検出された場合、現在の命令の完全実行を防止するステップを含むことを特徴 としている。 図面の簡単な説明 添付の図面を参照して例を示すという方法で本発明を説明する。なお全図面に ついて、同じ部分は同じ参照符号で示されている。 第1図は、以前に提案したデータプロセッサによるデータ書込み動作中の異常 終了信号のタイミング条件の概略を示すタイムチャートである。 第2図は、本発明の実施例によるデータ処理装置の概略を示すブロック図であ る。 第3図は、中央処理装置の概略を示すブロック図である。 第4図は、第2図のデータ処理装置によるデータ書込み動作中の異常終了信号 のタイミング条件の概略を示すタイムチャートである。 好適実施例の説明 つぎに第2図を参照すると、本発明の実施例によるデータ処理装置の概略を示 すブロック図が示されている。本装置は中央処理装置(CPU)100、メモリ 管理ユニット(MMU)110、ランダムアクセスメモリ(RAM)120を含 んでいる。CPU100とMMU110とは、メモリアドレスを交換するアドレ スバス130とデータを交換するデータバス140で接続されている。また、失 敗したメモリアクセスあるいは無効なメモリアクセスを示す異常終了信号を運ぶ 異常終了制御ライン150も、MMU110からCPU100に用意されている 。 クロック信号はCPU100とMMU110に供給され、両ユニットの動作を 制御する。各データ処理命令は、(その命令の性質に依存する)クロック信号の 特定数のサイクル中にCPU100によって実行され、MMU110によるメモ リアクセスはクロック信号に同期して実行される。 請求の範囲 1.連続したデータ処理命令がパイプライン方式で実行されるデータ処理装置 (100、110、120)であって、 1つまたはそれ以上の前記命令に対応して、データメモリにアクセスするメモ リアクセス手段(110)であって、各メモリアクセスが無効か否かを検出する 手段を含む前記モリアクセス手段(110)と、 前に実行された命令により発生する、前記装置の処理状態に対応しかつ各命令 の実行中に動作して、その命令を実行すべきか否かを検出する条件テスト手段( 200)と、 を含み、 前記メモリアクセス手段(110)が、先行命令によって開始されたメモリア クセスが無効であることを検出するか、あるいは前記条件テスト手段(200) が現在の命令を実行すべきではないことを検出するか、のいずれかの場合、前記 メモリアクセス手段(110)と前記条件テスト手段(200)とに応答して、 現在の命令の完全実行を防止する条件付き制御手段(230、240)、 を含むことを特徴とするデータ処理装置。 2.請求項1において、 前記データ処理装置は自己の現在の処理状態を示すデータを格納する1つまた はそれ以上の処理フラグ(NZCV)を含み、 各命令は、実行すべきその命令に必要な前記処理フラグの状態を定義する条件 コード(ビット28からビット31)を含み、 前記条件テスト手段(200)は、各命令の条件コードによって定義される処 理フラグの必要な状態を、前記処理フラグの現在の状態と比較する、 データ処理装置。 3.請求項2において、 (i)前記装置の先行データ処理動作により負の結果(N)が発生したか否か、 (ii)前記装置の先行データ処理動作によりゼロの結果(Z)が発生したか否 か、 (iii)前記装置の先行データ処理動作により桁上げビットがセットされた( C)か否か、 (iv)前記装置の先行データ処理動作中に算術演算のオーバーフローが発生し た(V)か否か、 を表す4個の処理フラグを含む、データ処理装置。 4.請求項1から請求項3のいずれか1つにおいて、前記メモリアクセス手段 (110)は、 メモリアドレスを前記データメモリ(120)に送信する手段と、 引き続きデータを前記データメモリに送信する手段、あるいは引き続きデータ を前記データメモリから受信する手段と、 を含む、データ処理装置。 5.請求項1から請求項4のいずれか1つにおいて、 前記メモリアクセス手段(110)は、異常終了制御信号(150)を発生さ せて、メモリアクセスが無効であることを示し、 前記条件テスト手段(200)は、条件不良制御信号(220)を発生させて 、前記現在の命令を実行すべきではないことを示し、 前記装置は、前記条件制御手段(240)に供給する組合わせ制御信号を発生 するため前記異常終了制御信号と前記条件不良制御信号とを組合せる手段(23 0)を含む、 データ処理装置。 6.請求項5において、前記組合わせる手段(230)は、論理和ゲートを含 む、データ処理装置。 7.請求項1から請求項6のいずれか1つにおいて、装置のデータ処理動作は 、クロック信号によって制御される、データ処理装置。 8.請求項1から請求項7のいずれか1つに記載の装置を含む集積回路。 9.連続するデータ処理命令が、パイプライン方式で実行されるデータ処理方 法であって、 1つまたはそれ以上の前記命令に対応してデータメモリにアクセスするステッ プ(110)と、 各メモリアクセスが無効か否かを検出するステップ(110)と、 各命令の実行中に、前に実行した命令によって発生する前記装置の処理状態に 依存して、その命令を実行すべきか否かを検出するステップ(200)と、 を含み、 先行命令によって開始されたメモリアクセスが無効であること、あるいは現在 の命令を実行すべきではないこと、のいずれかが検出された場合、現在の命令の 完全実行を防止するステップ(230、240)、 を含む、データ処理方法。

Claims (1)

  1. 【特許請求の範囲】 1.連続するデータ処理命令が実行されるデータ処理装置であって、 1つまたはそれ以上の前記命令に対応して、データメモリにアクセスするメモ リアクセス手段であって、各メモリアクセスが無効か否かを検出する手段を含む 前記メモリアクセス手段と、 前に実行された命令により発生する前記装置の処理状態に対応し、かつ各命令 の実行中に動作して、その命令を実行すべきか否かを検出する条件テスト手段と 、 前記メモリアクセス手段が、先行命令によって開始されたメモリアクセスが無 効であることを検出するか、あるいは前記条件テスト手段が現在の命令を実行す べきではないことを検出するか、のいずれかの場合、前記メモリアクセス手段と 前記条件テスト手段とに応答して、現在の命令の完全実行を防止する条件付き制 御手段と、 を含む、データ処理装置。 2.請求項1において、 前記データ処理装置は、自己の現在の処理状態を示すデータを格納する1つま たはそれ以上の処理フラグを含み、 各命令は、実行すべきその命令に必要な前記処理フラグの状態を定義する条件 コードを含み、 前記条件テスト手段は、各命令の条件コードによって定義される処理フラグの 必要な状態を、前記処理フラグの現在の状態と比較する、 データ処理装置。 3.請求項2において、 (i)前記装置の先行データ処理動作により負の結果が発生したか否か、 (ii)前記装置の先行データ処理動作によりゼロの結果が発生したか否か、 (iii)前記装置の先行データ処理動作により桁上げビットがセットされたか 否か、 (iv)前記装置の先行データ処理動作中に算術演算のオーバーフローが発生し たか否か、 を表す4個の処理フラグを含む、データ処理装置。 4.請求項1から請求項3のいずれか1つにおいて、前記メモリアクセス手段 は、 メモリアドレスを前記データメモリに送信する手段と、 引き続きデータを前記データメモリに送信する手段、あるいは引き続きデータ を前記データメモリから受信する手段と、 を含む、データ処理装置。 5.請求項1から請求項4のいずれか1つにおいて、 前記メモリアクセス手段は、異常終了制御信号を発生させて、前記メモリアク セスは無効であることを示し、 前記条件テスト手段は、条件不良制御信号を発生させて、現在の命令を実行す べきではないことを示し、 前記装置は、前記条件制御手段に供給する組合わせ制御信号を発生するため前 記異常終了制御信号と前記条件不良制御信号とを組合せる手段を含む、 データ処理装置。 6.請求項5において、前記組合わせる手段は、論理和ゲートを含む、データ 処理装置。 7.請求項1から請求項6のいずれか1つにおいて、前記装置のデータ処理動 作はクロック信号によって制御される、データ処理装置。 8.請求項1から請求項7のいずれか1つに記載の装置を含む集積回路。 9.連続するデータ処理命令が条件付きで実行されるデータ処理方法であって 、 1つまたはそれ以上の前記命令に対応してデータメモリにアクセスするステッ プと、 各メモリアクセスが無効か否かを検出するステップと、 各命令の実行中に、前に実行した命令によって発生する前記装置の処理状態に 依存して、その命令を実行すべきか否かを検出するステップと、 先行命令によって開始されたメモリアクセスが無効であること、あるいは現在 の命令を実行すべきではないこと、のいずれかが検出された場合、現在の命令の 完全実行を防止するステップと、 を含む、データ処理方法。
JP50961895A 1993-09-23 1994-08-16 データ処理命令の実行 Expired - Lifetime JP3553946B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9319662A GB2282245B (en) 1993-09-23 1993-09-23 Execution of data processing instructions
GB9319662.4 1993-09-23
PCT/GB1994/001793 WO1995008801A1 (en) 1993-09-23 1994-08-16 Execution of data processing instructions

Publications (2)

Publication Number Publication Date
JPH09503876A true JPH09503876A (ja) 1997-04-15
JP3553946B2 JP3553946B2 (ja) 2004-08-11

Family

ID=10742425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50961895A Expired - Lifetime JP3553946B2 (ja) 1993-09-23 1994-08-16 データ処理命令の実行

Country Status (13)

Country Link
US (1) US5961633A (ja)
EP (1) EP0721619B1 (ja)
JP (1) JP3553946B2 (ja)
KR (1) KR100335785B1 (ja)
CN (1) CN1099633C (ja)
DE (1) DE69414592T2 (ja)
GB (1) GB2282245B (ja)
IL (1) IL110799A (ja)
IN (1) IN189692B (ja)
MY (1) MY121544A (ja)
RU (1) RU2137182C1 (ja)
TW (1) TW332266B (ja)
WO (1) WO1995008801A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049368A (ja) * 1996-07-30 1998-02-20 Mitsubishi Electric Corp 条件実行命令を有するマイクロプロセッサ
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
JP4511461B2 (ja) * 2002-12-12 2010-07-28 エイアールエム リミテッド データ処理システムでの処理動作マスキング
US20040230781A1 (en) * 2003-05-16 2004-11-18 Via-Cyrix, Inc. Method and system for predicting the execution of conditional instructions in a processor
US8056072B2 (en) 2005-10-31 2011-11-08 Microsoft Corporation Rebootless display driver upgrades
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9146742B2 (en) 2011-04-07 2015-09-29 Via Technologies, Inc. Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA
US8880857B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor
CN103907089B (zh) 2011-04-07 2017-07-07 威盛电子股份有限公司 一种乱序执行微处理器中的有条件加载指令
US9292470B2 (en) 2011-04-07 2016-03-22 Via Technologies, Inc. Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US9336180B2 (en) 2011-04-07 2016-05-10 Via Technologies, Inc. Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
US9128701B2 (en) 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
US9043580B2 (en) 2011-04-07 2015-05-26 Via Technologies, Inc. Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA)
US9032189B2 (en) 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US8880851B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
US8924695B2 (en) 2011-04-07 2014-12-30 Via Technologies, Inc. Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
US9317288B2 (en) 2011-04-07 2016-04-19 Via Technologies, Inc. Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE789583A (fr) * 1971-10-01 1973-02-01 Sanders Associates Inc Appareil de controle de programme pour machine de traitement del'information
GB1480209A (en) * 1974-07-03 1977-07-20 Data Loop Ltd Digital computers
JPS54107645A (en) * 1978-02-13 1979-08-23 Hitachi Ltd Information processor
SU1259260A1 (ru) * 1985-02-20 1986-09-23 Военный Инженерный Краснознаменный Институт Им.А.Ф.Можайского Устройство управлени выборкой команд
JPS6247746A (ja) * 1985-08-27 1987-03-02 Fujitsu Ltd 割り込み制御方式
US4864496A (en) * 1987-09-04 1989-09-05 Digital Equipment Corporation Bus adapter module for interconnecting busses in a multibus computer system
JPH01229326A (ja) * 1988-03-09 1989-09-13 Toshiba Corp 情報処理装置
JPH01310443A (ja) * 1988-06-09 1989-12-14 Nec Corp 情報処理装置
US5202967A (en) * 1988-08-09 1993-04-13 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
JPH0335323A (ja) * 1989-06-30 1991-02-15 Toshiba Corp 命令実行制御方式

Also Published As

Publication number Publication date
MY121544A (en) 2006-02-28
WO1995008801A1 (en) 1995-03-30
IL110799A (en) 1997-09-30
DE69414592T2 (de) 1999-05-06
GB9319662D0 (en) 1993-11-10
RU2137182C1 (ru) 1999-09-10
EP0721619A1 (en) 1996-07-17
GB2282245B (en) 1998-04-15
EP0721619B1 (en) 1998-11-11
JP3553946B2 (ja) 2004-08-11
TW332266B (en) 1998-05-21
GB2282245A (en) 1995-03-29
CN1134193A (zh) 1996-10-23
KR960705271A (ko) 1996-10-09
IL110799A0 (en) 1994-11-11
KR100335785B1 (ko) 2002-11-30
IN189692B (ja) 2003-04-12
DE69414592D1 (de) 1998-12-17
CN1099633C (zh) 2003-01-22
US5961633A (en) 1999-10-05

Similar Documents

Publication Publication Date Title
JPH09503876A (ja) データ処理命令の実行
JP4045062B2 (ja) ロード命令を実行する方法、プロセッサ、およびシステム
US4811215A (en) Instruction execution accelerator for a pipelined digital machine with virtual memory
EP0377990B1 (en) Data processing systems
JP2505950B2 (ja) ハ―ドウェア支援ブレ―クポイント・システム
JP3509067B2 (ja) ストア命令転送方法およびプロセッサ
JP2539199B2 (ja) デジタルプロセッサ制御装置
US6895475B2 (en) Prefetch buffer method and apparatus
US20020184460A1 (en) Methods and apparatus for combining a plurality of memory access transactions
EP0394624A2 (en) Multiple sequence processor system
KR19990072272A (ko) 로드/로드검출및재정렬방법
JPH1083305A (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
US5987570A (en) Performing overlapping burst memory accesses and interleaved memory accesses on cache misses
US5367648A (en) General purpose memory access scheme using register-indirect mode
US6249880B1 (en) Method and apparatus for exhaustively testing interactions among multiple processors
JPH0410102B2 (ja)
US5287483A (en) Prefetched operand storing system for an information processor
JPS605987B2 (ja) 記憶制御装置
EP1121630A1 (en) Calendar clock caching in a multiprocessor system
EP0374598B1 (en) Control store addressing from multiple sources
EP0550976A2 (en) Memory accessing device using address pipeline
JP3214613B2 (ja) マイクロプロセッサ及びデータ処理システム
JP2894438B2 (ja) パイプライン処理装置
JP2594140B2 (ja) データ駆動型データ処理装置
WO1997014099A1 (en) Digital signal processor with caching of instructions that produce a memory conflict

Legal Events

Date Code Title Description
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: 20040406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040506

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100514

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100514

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110514

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120514

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term