JP5233078B2 - プロセッサ及びその処理方法 - Google Patents

プロセッサ及びその処理方法 Download PDF

Info

Publication number
JP5233078B2
JP5233078B2 JP2006081483A JP2006081483A JP5233078B2 JP 5233078 B2 JP5233078 B2 JP 5233078B2 JP 2006081483 A JP2006081483 A JP 2006081483A JP 2006081483 A JP2006081483 A JP 2006081483A JP 5233078 B2 JP5233078 B2 JP 5233078B2
Authority
JP
Japan
Prior art keywords
instruction
address
instruction code
code
pipeline
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
JP2006081483A
Other languages
English (en)
Other versions
JP2007257349A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2006081483A priority Critical patent/JP5233078B2/ja
Priority to US11/497,290 priority patent/US7543135B2/en
Publication of JP2007257349A publication Critical patent/JP2007257349A/ja
Application granted granted Critical
Publication of JP5233078B2 publication Critical patent/JP5233078B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本発明は、プロセッサ及びその処理方法に関する。
図3は、プロセッサの構成例を示す図である。命令先読みバッファ302は、命令キャッシュメモリ301から命令コードを先読みして記憶する。ステージS1〜S5は、命令パイプラインを構成し、命令先読みバッファ302内の命令コードを順次パイプライン処理する。例えば、命令先読みバッファ302内の命令コードは、ステージS1ではデコード処理され、次にステージS2では実行処理され、次にステージS3ではライトバック処理される。ステージS1は命令コードI1及びそのアドレスA1を記憶し、ステージS2は命令コードI2及びそのアドレスA2を記憶し、ステージS3は命令コードI3及びそのアドレスA3を記憶し、ステージS4は命令コードI4及びそのアドレスA4を記憶し、ステージS5は命令コードI5及びそのアドレスA5を記憶する。
命令アドレスAAは、次回にステージS5に送られるアドレスである。ALU(算術論理演算装置:Arithmetic Logic Unit)304は、命令アドレスAA及びオフセットアドレスASを加算し、次回の命令アドレスAAを出力する。命令コードが4バイト命令の場合には、オフセットアドレスASは「+4」となる。命令アドレスAAを+4ずつ加算することにより、アドレス順に命令コードを実行することができる。
例外制御部303は、実行不能命令が実行されたとき等の例外処理を割り込み制御により行う。その際、現在の命令アドレスを一時退避し、例外処理終了後に退避した命令アドレスを戻し、割り込み前の処理を再開する。
また、下記の特許文献1には、CPUからコプロセッサに対して、その実行アドレスが出力されている場合は、コプロセッサ制御部によって、CPUからキャッシュメモリへのアドレス出力を遮断させ、キャッシュメモリに対してアドレス供給を行わないようにするマイクロプロセッサが記載されている。
特開2003−228483号公報
上記のプロセッサは、命令を実行する際に必ずキャッシュメモリ301又はメインメモリから命令コードを読み出す。例えば、1GHzで動作するプロセッサの場合、10億回強のメモリアクセスを行う必要があり、最近では命令キャッシュメモリ301の消費電力がプロセッサ全体の消費電力に占める割合は数十%に達している。特に、スーパスカラやVLIWといった最近の技術を使った、同時に複数の命令を実行するようなプロセッサにおいて、この問題は深刻となる。
本発明の目的は、命令キャッシュメモリから命令コードを読み出す回数を減らすことにより、命令キャッシュメモリの消費電力を削減することができるプロセッサ及びその処理方法を提供することである。
本発明の一観点によれば、命令コードをパイプライン処理するための命令パイプラインと、前記命令パイプライン内であって、デコードステージよりも下流のステージを含むステージに対応した命令パイプライン内の命令コードのアドレスと次に命令キャッシュメモリ又はメインメモリから読み出そうとする命令コードのアドレスとが同じか否かを比較する比較部と、前記命令コードのアドレスが同じときには、前記命令キャッシュメモリ及び前記メインメモリからその命令コードを読み出さず、前記命令パイプライン内の命令コードを再び前記命令パイプラインで処理するように制御する制御部とを有することを特徴とするプロセッサが提供される。
ループ処理の際に命令パイプライン内の命令コードを再利用することにより、命令キャッシュメモリから命令コードを読み出す回数を減らし、命令キャッシュメモリの消費電力を削減することができる。
図1は、本発明の実施形態によるプロセッサの構成例を示す図である。命令キャッシュメモリ101は、RAMであり、メインメモリ内の一部の命令コードを記憶する。命令先読みバッファ102は、命令キャッシュメモリ101又はメインメモリからセレクタ107を介して命令コードを先読みして記憶する。ステージS1〜S5は、命令パイプラインを構成し、命令先読みバッファ102内の命令コードを順次パイプライン処理する。例えば、命令先読みバッファ102内の命令コードは、ステージS1ではデコード処理され、次にステージS2では実行処理され、次にステージS3ではライトバック処理される。
例えば、ステージS1は命令コードI1及びそのアドレスA1を記憶し、ステージS2は命令コードI2及びそのアドレスA2を記憶し、ステージS3は命令コードI3及びそのアドレスA3を記憶し、ステージS4は命令コードI4及びそのアドレスA4を記憶し、ステージS5は命令コードI5及びそのアドレスA5を記憶する。命令アドレスAAは、次回に最初のステージS5に送られるアドレスである。
図2は、命令アドレス及び命令コードの例を示す図である。命令アドレスA1には命令コードI1が記憶され、命令アドレスA2には命令コードI2が記憶され、命令アドレスA3には命令コードI3が記憶され、命令アドレスA4には命令コードI4が記憶され、命令アドレスA5には命令コードI5が記憶され、命令アドレスA6には命令コードI6が記憶されている。これらの命令コードは、メインメモリ及び/又は命令キャッシュメモリ101に記憶されている。例えば、命令コードI6は、分岐命令(ジャンプ命令)である。命令コードI1からI5までは順次実行され、命令コードI6は命令アドレスA1へのジャンプを指示する命令である。この場合、命令コードI1からI5までを実行した後に、再び命令コードI1からI5までを実行するループ処理となる。
図1において、まず、命令コードI1からI5までのように、アドレス順に命令コードを実行する場合を説明する。セレクタ108は、オフセットアドレスASを選択し、ALU(算術論理演算装置:Arithmetic Logic Unit)104に出力する。ALU104は、命令アドレスAA及びオフセットアドレスASを加算し、新たな命令アドレスAAを出力する。その際、セレクタ109はALU104の出力を選択し、新たな命令アドレスAAを出力する。命令コードが4バイト命令の場合には、オフセットアドレスASは「+4」となる。命令アドレスAAを+4ずつ加算することにより、アドレス順に命令コードI1〜I5を実行することができる。
次に、命令コードI6が分岐命令の場合を説明する。分岐命令の分岐先アドレスの指定方法として、PC(プログラムカウンタ)相対アドレス指定(自己相対アドレス指定)及び絶対アドレス指定がある。まず、PC相対アドレス指定について説明する。説明の簡単のため、命令先読みバッファ102の容量が1個の命令コード分である場合を例に説明する。命令先読みバッファ102には命令コードI6が記憶され、それに対応する命令アドレスAAはアドレスA6である。アドレスA6は、アドレスA5に「+4」を加算したアドレスである。デコード部111は、命令先読みバッファ102から命令コードI6を読み出す。命令コードI6は、オペコード及び分岐先アドレスフィールドを有する。デコード部111は、命令コードI6のオペコードが分岐命令の場合には、分岐先アドレスフィールドの分岐先アドレスABをセレクタ108に出力する。セレクタ108は、分岐先アドレスABを選択し、ALU104に出力する。ALU104は、命令アドレスAA及び分岐アドレスABを加算し、新たな命令アドレスAAを出力する。その際、セレクタ109は、ALU104の出力を選択し、新たな命令アドレスAAとして出力する。例えば、現在の命令アドレスAAがアドレスA6であり、分岐先アドレスABが「−20」であり、ALU104はアドレスA1を出力する。
比較回路C1は、ステージS1の命令アドレスA1及びセレクタ109の出力である新たな命令アドレスAAを比較し、一致すれば1を出力し、一致しなければ0を出力する。比較回路C2は、ステージS2の命令アドレスA2及びセレクタ109の出力である新たな命令アドレスAAを比較し、一致すれば1を出力し、一致しなければ0を出力する。比較回路C3は、ステージS3の命令アドレスA3及びセレクタ109の出力である新たな命令アドレスAAを比較し、一致すれば1を出力し、一致しなければ0を出力する。比較回路C4は、ステージS4の命令アドレスA4及びセレクタ109の出力である新たな命令アドレスAAを比較し、一致すれば1を出力し、一致しなければ0を出力する。比較回路C5は、ステージS5の命令アドレスA5及びセレクタ109の出力である新たな命令アドレスAAを比較し、一致すれば1を出力し、一致しなければ0を出力する。比較回路C6は、命令先読みバッファ102の命令アドレス及びセレクタ109の出力である新たな命令アドレスAAを比較し、一致すれば1を出力し、一致しなければ0を出力する。命令先読みバッファ102には、命令コード及びそれに対応する命令アドレスが記憶されており、複数の命令コードを記憶するようにしてもよい。
命令選択制御部105は、比較回路C1〜C6の出力に応じて、セレクタ106を制御する。セレクタ106は、比較回路C1が1を出力したときにはステージS1の命令コードI1を選択し、比較回路C2が1を出力したときにはステージS2の命令コードI2を選択し、比較回路C3が1を出力したときにはステージS3の命令コードI3を選択し、比較回路C4が1を出力したときにはステージS4の命令コードI4を選択し、比較回路C5が1を出力したときにはステージS5の命令コードI5を選択し、比較回路C6が1を出力したときには命令先読みバッファ102の命令コードを選択し、セレクタ107に出力する。セレクタ107は、命令選択制御部105の制御の下、比較回路C1〜C6のいずれかが1を出力すると、セレクタ106が出力する命令コードを選択し、比較回路C1〜C6のすべてが0を出力すると、命令キャッシュ101又はメインメモリが出力する命令コードを選択し、命令先読みバッファ102に出力する。また、命令選択制御部105は、比較回路C1〜C6のいずれかが1である場合には、命令キャッシュメモリ101にアクセス抑止信号を出力する。命令キャッシュメモリ101は、アクセス抑止信号を入力すると、アクセスを行わず、消費電力を削減することができる。
例外制御部103は、実行不能命令が実行されたとき等の例外処理を割り込み制御により行う。その際、現在の命令アドレスを一時退避し、例外処理終了後に退避した命令アドレスを戻し、割り込み前の処理を再開する。
例えば、デコード部111が分岐命令コードI6をデコードし、分岐先アドレスABを出力する場合、セレクタ109の出力命令アドレスがアドレスA1と同じになる。その場合、比較回路C1が1を出力し、比較回路C2〜C6が0を出力する。セレクタ106は、ステージS1の命令コードI1を選択し、セレクタ107に出力する。セレクタ107は、セレクタ106の出力である命令コードI1を選択し、命令先読みバッファ102に出力する。命令先読みバッファ102は、その命令コードI1を記憶する。命令キャッシュメモリ101は、命令選択制御部105からアクセス抑止信号を入力し、アクセスを行わない。以上のように、命令コードI1は、既にステージS1に存在するので、それを再び先読みバッファ102に記憶させる。この際、命令キャッシュメモリ101からの読み出しが行われないので、消費電力を削減することができる。命令アドレスAAは、アドレスA1になる。
次に、セレクタ108は、オフセットアドレスASを選択し、ALU104に出力する。ALU104は、命令アドレスAA及びオフセットアドレスASを加算し、セレクタ109に出力する。例えば、命令アドレスAAはアドレスA1、オフセットアドレスASは「+4」であり、ALU104はアドレスA2を出力する。セレクタ109は、ALU104の出力を選択する。本来、ステージS1〜S5のパイプラインは命令コードをシフトするが、説明の簡単のため、図1のステージS1〜S5の状態で説明する。その場合、比較回路C2が1を出力し、比較回路C1、C3〜C6が0を出力する。セレクタ106は、ステージS2の命令コードI2を選択し、セレクタ107に出力する。セレクタ107は、セレクタ106の出力である命令コードI2を選択し、命令先読みバッファ102に出力する。命令先読みバッファ102は、その命令コードI2を記憶する。命令キャッシュメモリ101は、命令選択制御部105からアクセス抑止信号を入力し、アクセスを行わない。命令キャッシュメモリ101からの読み出しが行われないので、消費電力を削減することができる。
以上のように、分岐命令コードI6が命令アドレスA1へのジャンプ命令である場合、命令コードI1〜I5を2回実行することになる。命令コードI1〜I5は、ステージS1〜S5に存在するので、それを再利用し、命令キャッシュメモリ101のアクセスを行わない。これにより、消費電力を削減することができる。
また、命令先読みバッファ102は、複数の命令コードを記憶することができる。その場合、比較回路C6は、命令先読みバッファ102内の命令アドレス及びセレクタ109の出力命令アドレスを比較し、一致すれば1を出力し、一致しなければ0を出力する。セレクタ106は、比較回路106が1を出力したときには、命令先読みバッファ102内の命令コードを選択し、セレクタ107に出力する。
次に命令キャッシュメモリ101から読み出そうとする命令コードが既にステージS1〜S5又は命令先読みバッファ102内に存在するときには、命令キャッシュメモリ101から読み出さずに、上記の既に存在する命令コードを再利用し、命令先読みバッファ102に記憶させることができる。
次に、分岐命令の分岐先アドレスの指定方法として、絶対アドレス指定の場合を説明する。命令コードI6が分岐命令の場合、分岐先アドレスはアドレスレジスタ110に記憶されている。デコード部111は、命令コードI6が絶対アドレス指定の分岐命令であると判断すると、セレクタ109を制御する。セレクタ109は、アドレスレジスタ110に記憶されている絶対アドレスを選択し、出力する。それ以外は、上記のPC相対アドレス指定の場合の説明と同じである。
セレクタ107は、命令選択制御部105の制御の下、比較回路C1〜C6がすべて0を出力したときには、命令キャッシュメモリ101が出力する命令コードを選択し、命令先読みバッファ102に記憶させる。ステージS1〜S5及び命令先読みバッファ102内に命令コードが存在しない場合には、命令キャッシュメモリ101又はメインメモリから命令コードを読み出して、命令先読みバッファ102に記憶させる。命令先読みバッファ102内の命令コードは、ステージS1〜S5でパイプライン処理される。
本実施形態によれば、比較回路C1〜C6は、命令パイプラインのステージS1〜S5又は命令先読みバッファ102内の命令コード(命令アドレス)と次に命令キャッシュメモリ101又はメインメモリから読み出そうとする命令コード(命令アドレス)とが同じか否かを比較する。制御部105は、前記命令コードが同じときには、前記命令キャッシュメモリ101及び前記メインメモリからその命令コードを読み出さず、前記命令パイプラインのステージS1〜S5又は前記命令先読みバッファ102内の命令コードを再び前記命令パイプラインのステージS1〜S5又は前記命令先読みバッファ102で処理するように制御し、前記命令コードが異なるときには、前記命令キャッシュメモリ101又は前記メインメモリからその命令コードを読み出し、前記命令パイプラインのステージS1〜S5で処理するように制御する。デコード部111は、前記命令先読みバッファ102内の命令コードをデコードし、その命令コードが分岐命令であるときには、その分岐先アドレスを前記次に命令キャッシュメモリ又はメインメモリから読み出そうとする命令コードのアドレスとする。
プロセッサが命令コードのプログラムを実行するうち、その大半はループ処理である。ループ処理の場合、時間的に近い過去に実行した命令コードと同じ命令コードを再度実行することになる。時間的に非常に近い過去に実行した命令コードは、命令先読みバッファ102又は命令パイプラインステージS1〜S5に情報が残されている確率が高い。この特性を生かして、これから実行しようとしている命令コードのアドレスと、命令先読みバッファ102又は命令パイプラインステージS1〜S5に情報が残っている命令コードのアドレスとを比較して一致した場合に、命令キャッシュメモリ101からの読み出しを抑止して、命令先読みバッファ102又は命令パイプラインステージS1〜S5に残っている情報を使って命令実行を行う。
特に、ポーリング処理、メモリクリア、メモリ間転送といった非常に短い処理の繰り返しの場合に高い効果が得られる。命令キャッシュメモリ101を読むのに比べて、フリップフロップからの読み出しになることで、数%〜数十%の消費電力削減効果が期待できる。
命令先読みバッファ102と命令パイプラインステージS1〜S5に残っている情報を使う限りでは物量の増加もほとんど生じない。適用範囲を広げるために、さらに専用のバッファを用意する、という選択肢もある。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の実施形態によるプロセッサの構成例を示す図である。 命令アドレス及び命令コードの例を示す図である。 プロセッサの構成例を示す図である。
符号の説明
101 命令キャッシュメモリ
102 命令先読みバッファ
103 例外制御部
104 ALU
105 命令選択制御部
106〜109 セレクタ
110 アドレスレジスタ
111 デコード部

Claims (7)

  1. 命令コードをパイプライン処理するための命令パイプラインと、
    前記命令パイプライン内であって、デコードステージよりも下流のステージを含むステージに対応した命令パイプライン内の命令コードのアドレスと次に命令キャッシュメモリ又はメインメモリから読み出そうとする命令コードのアドレスとが同じか否かを比較する比較部と、
    前記命令コードのアドレスが同じときには、前記命令キャッシュメモリ及び前記メインメモリからその命令コードを読み出さず、前記命令パイプライン内の命令コードを再び前記命令パイプラインで処理するように制御する制御部と
    を有することを特徴とするプロセッサ。
  2. 前記比較部は、前記命令パイプライン内の命令コードのアドレスと次に命令キャッシュメモリ又はメインメモリから読み出そうとする命令コードのアドレスとが同じか否かを比較し、
    前記制御部は、前記命令コードのアドレスが同じときには、前記命令キャッシュメモリ及び前記メインメモリからその命令コードを読み出さず、前記命令パイプライン内の命令コードを再び前記命令パイプラインで処理するように制御することを特徴とする請求項1記載のプロセッサ。
  3. さらに、命令先読みバッファ内の命令コードをデコードし、その命令コードが分岐命令であるときには、その分岐先アドレスを前記次に命令キャッシュメモリ又はメインメモリから読み出そうとする命令コードのアドレスとして選択することを可能とするデコード部を有することを特徴とする請求項1又は2記載のプロセッサ。
  4. 前記制御部は、前記命令コードのアドレスが同じときには、前記命令キャッシュメモリにアクセス抑止信号を出力することを特徴とする請求項1〜3のいずれか1項に記載のプロセッサ。
  5. 前記制御部は、前記命令コードが異なるときには、前記命令キャッシュメモリ又は前記メインメモリからその命令コードを読み出し、前記命令パイプラインで処理するように制御することを特徴とする請求項1〜4のいずれか1項に記載のプロセッサ。
  6. 前記比較部は、前記命令パイプライン内の命令コードのアドレスと次に命令キャッシュメモリから読み出そうとする命令コードのアドレスとが同じか否かを比較し、
    前記制御部は、前記命令コードのアドレスが同じときには、前記命令キャッシュメモリからその命令コードを読み出さず、前記命令パイプライン内の命令コードを再び前記命令パイプラインで処理するように制御することを特徴とする請求項1〜5のいずれか1項に記載のプロセッサ。
  7. 命令コードをパイプライン処理するための命令パイプラインを有するプロセッサの処理方法であって、
    前記命令パイプライン内であって、デコードステージよりも下流のステージを含むステージに対応した命令パイプライン内の命令コードのアドレスと次に命令キャッシュメモリ又はメインメモリから読み出そうとする命令コードのアドレスとが同じか否かを比較する比較ステップと、
    前記命令コードのアドレスが同じときには、前記命令キャッシュメモリ及び前記メインメモリからその命令コードを読み出さず、前記命令パイプライン内の命令コードを再び前記命令パイプラインで処理する再処理ステップと
    を有することを特徴とするプロセッサの処理方法。
JP2006081483A 2006-03-23 2006-03-23 プロセッサ及びその処理方法 Expired - Fee Related JP5233078B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006081483A JP5233078B2 (ja) 2006-03-23 2006-03-23 プロセッサ及びその処理方法
US11/497,290 US7543135B2 (en) 2006-03-23 2006-08-02 Processor and method for selectively processing instruction to be read using instruction code already in pipeline or already stored in prefetch buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006081483A JP5233078B2 (ja) 2006-03-23 2006-03-23 プロセッサ及びその処理方法

Publications (2)

Publication Number Publication Date
JP2007257349A JP2007257349A (ja) 2007-10-04
JP5233078B2 true JP5233078B2 (ja) 2013-07-10

Family

ID=38631525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006081483A Expired - Fee Related JP5233078B2 (ja) 2006-03-23 2006-03-23 プロセッサ及びその処理方法

Country Status (2)

Country Link
US (1) US7543135B2 (ja)
JP (1) JP5233078B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5159258B2 (ja) * 2007-11-06 2013-03-06 株式会社東芝 演算処理装置
US9170816B2 (en) 2009-01-15 2015-10-27 Altair Semiconductor Ltd. Enhancing processing efficiency in large instruction width processors
JP2012221086A (ja) * 2011-04-06 2012-11-12 Fujitsu Semiconductor Ltd 情報処理装置
JP5863855B2 (ja) * 2014-02-26 2016-02-17 ファナック株式会社 分岐命令を高速に処理するためのインストラクションキャッシュを有するプログラマブルコントローラ

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61269735A (ja) * 1985-05-24 1986-11-29 Nec Corp 電子計算機における命令キユ−制御方式
JPH0228723A (ja) * 1988-07-18 1990-01-30 Fujitsu Ltd ループ命令実行方式
JPH05241827A (ja) * 1992-02-27 1993-09-21 Nec Ibaraki Ltd 命令バッファ制御装置
US5423048A (en) * 1992-08-27 1995-06-06 Northern Telecom Limited Branch target tagging
JP2694799B2 (ja) * 1993-09-07 1997-12-24 日本電気株式会社 情報処理装置
JPH0991136A (ja) * 1995-09-25 1997-04-04 Toshiba Corp 信号処理装置
JP3641327B2 (ja) * 1996-10-18 2005-04-20 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
JP3741870B2 (ja) * 1998-08-07 2006-02-01 富士通株式会社 命令及びデータの先読み方法、マイクロコントローラ、疑似命令検出回路
EP1050804A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Execution of instruction loops
US6618803B1 (en) * 2000-02-21 2003-09-09 Hewlett-Packard Development Company, L.P. System and method for finding and validating the most recent advance load for a given checkload
JP2003228483A (ja) 2002-02-05 2003-08-15 Matsushita Electric Ind Co Ltd マイクロプロセッサ
JP3954992B2 (ja) * 2003-06-27 2007-08-08 富士通株式会社 メモリインタフェース回路

Also Published As

Publication number Publication date
US7543135B2 (en) 2009-06-02
US20070260858A1 (en) 2007-11-08
JP2007257349A (ja) 2007-10-04

Similar Documents

Publication Publication Date Title
JP4986431B2 (ja) プロセッサ
US6832305B2 (en) Method and apparatus for executing coprocessor instructions
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
JP4864840B2 (ja) マイクロプロセッサ
JP5233078B2 (ja) プロセッサ及びその処理方法
JP5012084B2 (ja) 情報処理装置
JP4800582B2 (ja) 演算処理装置
JP4889235B2 (ja) プログラム制御プロセッサ
JP2006072961A (ja) 演算処理装置のメモリ回路
JP2006053830A (ja) 分岐予測装置および分岐予測方法
US8255672B2 (en) Single instruction decode circuit for decoding instruction from memory and instructions from an instruction generation circuit
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
WO2024029174A1 (ja) ジャンプ命令に基づくパイプライン処理を制御するプロセッサ及びプログラム記録媒体
JPH1020959A (ja) 低消費電力マイクロプロセッサ
JP2011209859A (ja) 情報処理装置
JP2007317083A (ja) マイクロプロセッサおよびパイプライン制御方法
JP2011150636A (ja) マイクロプロセッサ及びその制御方法
JP5679263B2 (ja) 情報処理装置及びマイクロ命令処理方法
JP2011141619A (ja) マイクロプロセッサ
JP2005135089A (ja) プロセッサ
JP2006235723A (ja) 命令フェッチ回路
JP2005134987A (ja) パイプライン演算処理装置
US20130305017A1 (en) Compiled control code parallelization by hardware treatment of data dependency
JP2005038278A (ja) プロセッサ及びプロセッサの処理方法
KR20000003447A (ko) 무조건 분기 명령어의 수행 시간을 줄이기 위한 분기 방법

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080731

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121218

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121225

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130311

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees