[go: up one dir, main page]

JP2009026260A - 演算処理装置、演算処理方法 - Google Patents

演算処理装置、演算処理方法 Download PDF

Info

Publication number
JP2009026260A
JP2009026260A JP2007191621A JP2007191621A JP2009026260A JP 2009026260 A JP2009026260 A JP 2009026260A JP 2007191621 A JP2007191621 A JP 2007191621A JP 2007191621 A JP2007191621 A JP 2007191621A JP 2009026260 A JP2009026260 A JP 2009026260A
Authority
JP
Japan
Prior art keywords
instruction
store
load
address
execution
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
JP2007191621A
Other languages
English (en)
Other versions
JP5057054B2 (ja
Inventor
Yusuke Kobayashi
雄介 小林
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007191621A priority Critical patent/JP5057054B2/ja
Priority to US12/213,098 priority patent/US20090031118A1/en
Publication of JP2009026260A publication Critical patent/JP2009026260A/ja
Application granted granted Critical
Publication of JP5057054B2 publication Critical patent/JP5057054B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

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)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】アドレス依存性チェックの際の「処理待ち」の発生を出来るだけ解消し、メモリへのアクセスが伴う処理を高速化する演算処理技術を提供すること。
【解決手段】複数のストア命令と複数のロード命令とからなる命令群のアドレス依存性を判断し、前記ストア命令とアドレス依存性の無いロード命令を特定するコンパイラ装置bと、この命令群を受信し、アドレス依存性の無いストア命令の実行準備が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するアドレス依存性判定部c1と、アドレス依存性判定部c1から送出されてきたロード命令を実行する中央処理部c2とを有する演算処理装置。
【選択図】図1

Description

本発明は、演算処理技術に関し、特に、主記憶装置にアクセスする際の処理性能を向上させる演算処理技術に関する。
近年、情報処理装置のCPUの演算性能は、多くの演算器を実装することで、益々向上してきている。特に、最近では、CPUにおける演算性能向上のために、演算を補助するコプロセッサを使用する方式が増えている。このようなコプロセッサを使用する方式では、コプロセッサとしてSIMD方式(Single Instruction Multiple Data)の演算器が実装されており、少ない命令数で演算を実行し、演算性能を向上させる技術が採用されている。このようなコプロセッサを使用して処理性能を向上させる技術は、例えば、特許文献1等が知られている。
こうして、CPUの演算性能が大幅に向上する中、主記憶装置へのアクセス時間を短縮化する技術も提案されてきている。
例えば、特許文献2には、ストア命令とロード命令との依存性に関わるスケジューリング手法が開示されている。この特許文献2の発明では、ストアアドレス、ロードアドレスを演算する命令を区別して扱い、ロードアドレスを演算する命令を実行するときに、該ロードアドレスとストアアドレスとのアドレス依存性(主記憶装置にアドレスの重複有無)を調べ、命令間の順番を変更する技術が記載されている。特許文献2の発明によれば、主記憶装置との関係で命令演算をスケジューリングすることで、命令スループットを増大させることができる。尚、このようなストアアドレスとロードアドレスの依存性に関わるスケジューリング技術は、特許文献3でも知られている。
特開2006−048661号公報 特表2002−527798号公報 特開2006−228241号公報
ところで、こうした技術が提案されてきているものの、CPUが主記憶装置(メインメモリ)にアクセスするメモリアクセス時間の短縮化という点では、目立った性能の向上はみられなかった。その為、CPUの高い演算性能を十分に活かすことができないという問題があった。これには以下のような背景があった。
メモリアクセス技術においては、CPUの実行する命令列の中に複数のロード命令、ロードしたデータを使う複数の演算命令、及び、その演算結果を格納する複数のストア命令がある場合に、CPUの中央処理部では、ロード命令とストア命令との間におけるアドレス依存性をチェックすることになる。ここで、アドレス依存性のチェックとは、ストア命令による書込み先となる主記憶装置のアドレス(以降、ストアアドレスとも記載する)と、ロード命令による読み込み先となる主記憶装置のアドレス(以降、ロードアドレスとも記載する)との一致・不一致をチェックすることである。その際、CPUでは、チェックに要する処理の「待ち」が発生する。すなわち、上述したアドレス依存性のチェックが済むまでは、ストア命令に先行させて後続するロード命令を主記憶装置から読み出すことができず、図8に示されるように、CPU側では、ストア命令に先行させて後続するロード命令を処理することができない。この為、後続ロード命令は、ストア命令が実行されてストアアドレスが確定するのを待たなければならない。更に、ロード命令に後続する演算処理(図8ではFADと記載)も、ストア命令が実行されストアアドレスが確定するのを待たなければならず、所謂、「処理待ち」が発生してしまう。
このような、アドレス依存性のチェックによる「処理待ち」があるが故に、CPUそのものが高性能化しても、メインメモリからのロード命令の読出しがボトルネックとなり、メモリアクセスが伴う処理性能を大幅に向上させることができなかった。
例えば、コプロセッサを備え、主記憶装置との転送路の帯域も充分に確保した高速のCPUでも、主記憶装置からロード命令を読み出す際にはアドレス依存性チェックが必要であった。従って、一度に主記憶装置から読み出せるロード命令の数が限られてしまい、ロード命令の読出し処理がボトルネックとなっていた。言い換えると、ハイスペックなCPUの能力を活かしきれず、ハードウェア資源に無駄が生じていた。
そして、このアドレス依存性のチェックの際の「処理待ち」は、上述した特許文献2,3の発明を含む従来の技術でも解消することが困難であった。
特に、コプロセッサを備えたCPUにおいて、そのコプロセッサ内の資源(レジスタ)にロード命令、及びストア命令で使用するアドレスが格納されている場合には、他の問題もあった。
例えば、自プロセッサ内の資源(レジスタ等)の値が確定した後に中央処理部にレジスタの値を送出するコプロセッサを備える場合、CPUでの「処理待ち」が生じる為、CPUがコプロセッサ内レジスタの結果を反映させたメモリアクセス命令を効率よく実行しつつアドレスの依存性をチェックすることは、難しかった。
そこで、本発明は、上記課題に鑑みて発明されたものであって、本発明が解決しようとする課題は、アドレス依存性チェックの際の「処理待ち」の発生を出来るだけ解消し、メモリへのアクセスが伴う処理を高速化する演算処理技術を提供することにある。
上記課題を解決する本発明は、演算処理装置であって、複数のストア命令と複数のロード命令とからなる命令群のアドレス依存性を判断し、前記ストア命令とアドレス依存性の無いロード命令を特定する手段と、前記命令群を受信し、前記アドレス依存性の無いストア命令の実行準備が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するデータ送出手段と、前記送出されたロード命令を実行する実行手段とを有することを特徴とする。
又、上記課題を解決する本発明は、演算処理方法であって、複数のストア命令と複数のロード命令とからなる命令群のアドレス依存性を判断し、前記ストア命令とアドレス依存性の無いロード命令を特定するステップと、前記命令群を受信し、前記アドレス依存性の無いストア命令の実行準備が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するデータ送出ステップと、前記送出されたロード命令を実行する実行ステップとを有することを特徴とする。
本発明によれば、演算処理装置の処理性能を向上させることができる。その理由は、本発明は、複数のストア命令と複数のロード命令とからなる命令群に対してアドレス依存性のチェックを行うことで、アドレス依存性が無いロード命令を特定し、この特定されたロード命令を前記ストア命令よりも優先的に実行させることができるので、従来技術に比べ、より多くのロード命令を優先的に実行することができ、メモリへのアクセスが伴う処理を高速化できるからである。
次に、本発明の第1の実施の形態について、図1のブロック図を用いて説明する。
図1は、本発明の演算処理装置の全体図である。
図1を参照すると、aは本発明の演算処理装置であり、コンパイル機能を有するコンパイラ装置bと、CPUである中央処理装置cと、メインメモリの主記憶装置dとから構成される。eは、コンパイラ装置bに入力されるプログラムである。プログラムeは、C言語等の高級言語であってよいし、アセンブラ等のアセンブリ言語であってもよい。
まず、コンパイラ装置bの構成について説明する。
コンパイラ装置bは、プログラムeが入力されると、これをCPUが実行可能な形式(オブジェクトコード)へと変換する機能を有する他、プログラムeの内容を解析し、解析結果をCPUに通知する。
具体的には、コンパイラ装置bは、コンパイル機能部b1と、アドレス依存性解析部b2と、生成部b3とを有する。
コンパイル機能部b1は、入力されたプログラムeをCPUが実行可能な形式(オブジェクトコード)へと変換する。
アドレス依存性解析部b2は、プログラムe中のアドレス依存性を解析する。具体的には、ストア命令の書き込み先の主記憶装置のアドレスと、ロード命令の読み込み先の主記憶装置のアドレスとの重複有無に基づいて、複数のストア命令と複数のロード命令とからなる命令群のアドレス依存性を判断し、ストア命令とアドレス依存性の無いロード命令を特定する。
ここで、アドレス依存性とは、主記憶装置におけるロード命令のアドレス(ロードアドレス、主記憶ロードアドレスとも言う)と、主記憶装置におけるストア命令のアドレス(ストアアドレス、主記憶ストアアドレスとも言う)とが重複しているか否かの状態を示す。ロード命令とは、アドレスに応じた主記憶装置の格納場所から値を読み出す際に用いられるメモリアクセス命令であり、主記憶ロード命令と呼ばれることもある。ストア命令とは、アドレスに応じた主記憶装置の格納場所への書き込みの際に用いられるメモリアクセス命令であり、主記憶ストア命令と呼ばれることもある。
生成部b3は、アドレス依存性解析部b2で解析した結果に基づいて、受信した命令群のうちアドレス依存性の無い複数のストア命令に、アドレス依存性が無いことを示す識別情報を付加する。更に、依存性を判断した命令群の終了位置を示す終了位置情報も付加される。そして、この命令群を中央処理装置に送信する。そして、コンパイル機能部b1によって変換された命令群(オブジェクトコード)中の対応する命令列にこれらの情報を付与し、これを中央処理装置に通知する。
具体的には、生成部b3は、アドレス依存性解析部b2で解析した結果に基づいて、NST命令(識別情報)とOEND命令(終了位置情報)とを生成し、これをオブジェクトコード中の対応する命令群の命令列に付与し、中央処理装置に通知する。ここで、NST命令とは、ロード命令とのアドレス依存性が無いストア命令を特定する識別情報である。OEND命令とは、アドレス依存性を判断した命令群の終了位置を示す情報であり、この情報で示される位置迄はアドレスの依存性の解析の実施を無視することができる。このOEND命令は、中央処理装置側で、NST命令で特定されたストア命令に後続するロード命令を優先的に送出させる終了位置情報として用いられる。
中央処理装置cは、通常の命令列の実行に加え、コンパイラbから通知されたNST命令、または、OEND命令が付与された命令列を含む命令群を処理する機能を有するCPUである。
次に、中央処理装置cの構成について説明する。
図1に示されるように、中央処理装置cは、アドレス依存性判定部c1と、中央処理部c2とを有する。
アドレス依存性判定部c1は、コンパイラ装置bで生成されたNST命令とOEND命令とに基づいてアドレス依存性の有無を判定する。このアドレス依存性の有無の判定は、NST命令,OEND命令に対応するフラグを用いて行われ、その間は、アドレス同士の比較によるアドレス依存性のチェックは行われない。具体的には、NST命令を受信すると、NST命令で特定された複数のストア命令に後続する複数のロード命令を、NST命令で特定された複数のストア命令よりも優先的に送出してもよいと判定する。
すなわち、アドレス依存性判定部c1は、コンパイラ装置bから命令群を受信すると、NST命令が付加されたストア命令の実行準備が完了する迄、OEND命令よりも前のロード命令を、NST命令が付加されたストア命令よりも優先的に送出して中央処理部c2に実行させる。この一連の処理を、本明細書で「複数のロード命令の先行実行」と記載する場合がある。
続いて、アドレス依存性判定部c1の構成について、図2を用いて説明する。
図2を見ると、アドレス依存性判定部c1は、命令列を解読するデコード部c11と、この解読された命令列を命令種別毎に格納する命令バッファ部c12と、NST命令・OEND命令に基づいてアドレス依存性の有無を判定し、ロード命令をストア命令に先行して実行させるか否かを判定する判定回路c13と、判定回路c13による判定結果に基づいて命令バッファ部c12から出力する命令列を選択する命令選択部c10と、命令の追越しを許可するストア命令を管理するための追越し許可フラグバッファc14と、アドレス依存性をチェックするための比較回路c15とから構成される。
まず、デコード部c11、命令バッファ部c12、及び命令選択部c10の具体的な構成について、図2及び図3のブロック図を用いて詳細に説明する。
図3に示すように、デコード部c11は、受信した命令列の命令種別を解読する命令デコード部c111と、ロードID生成部c112と、ストアID生成部c113とを有する。
命令デコード部c111は、受信した命令群の各命令列(命令列500)の命令種別を解読し、この解読した命令を命令バッファc12に命令種別毎に格納する。また、命令デコード部c111は、NST命令を含むストア命令を受信すると、追越し許可セットフラグ“1”を追越し許可フラグバッファc14に送出する。更に、OEND命令を受信すると、追越し許可リセットフラグ“0”を追越し許可フラグバッファc14に送出する。
ロードID生成部c112は、命令デコード部c111で受信した命令がロード命令であった場合に、この命令を特定する情報であるロードIDを生成する。このロードID生成部c112は、実際は、付与カウンタ等である。
ストアID生成部c113は、命令デコード部c111で受信した命令がストア命令であった場合に、この命令を特定する情報であるストアIDを生成する。ストアID生成部c113も、付与カウンタ等である。
又、図3に示すように、命令バッファ部c12は、主記憶ロード命令を格納する主記憶ロード命令バッファc121と、主記憶ストア命令を格納する主記憶ストア命令バッファc122と、ストアIDキューc123とを有する。
主記憶ロード命令バッファc121には、生成されたロードIDとロード命令とが対応付けられて格納される。
主記憶ストア命令バッファc122には、生成されたストアIDとストア命令とが対応付けられて格納される。
ストアIDキューc123には、ストアID生成部c113で生成されたストアIDが格納される。中央処理装置の中央処理部c2からのストア実行指示504に応答して、ストアIDを出力する。ここで、ストア実行指示504とは、アドレス依存性の無いストア命令の完了を示す通知する信号である。本実施の形態では、中央処理部c2でストア実行のためのハードウェアリソースの確保が確認でき、且つ、中央処理部c2側で演算処理が終了した場合に、このストア実行指示504を送出する。ハードウェアリソースの確保確認を待たず、中央処理部c2で演算処理が終了した場合に、このストア実行指示504を通知するようにしても構わない。
命令選択部c10は、判定回路c13による判定結果に基づいて命令バッファ部c12の主記憶ロード命令バッファc121,主記憶ストア命令バッファc122から中央処理部c2へ送出する命令を選択する。
次に、図2の判定回路c13の構成について説明する。
この判定回路c13は、デコード部c11から追越し許可フラグバッファc14を介して受信した信号に基づいて、アドレス依存性有無を判定する。具体的には、判定回路c13は、まず、追越しを許可するか否かを示す追越し許可信号106を受信する。この追越し許可信号106は、命令デコード部c1111から受信した「追越し許可セットフラグ“1”」、又は「追越し許可リセットフラグ“0”」のいずれかの状態が示された信号である。そして、この追越し許可信号106の追越し許可フラグの値が“1”の場合、
“NST命令を含むストア命令”、すなわちアドレス依存性が無いストア命令をデコード部c11が受信したと判定する。
更に、ハードウェアリソースの状況等から、ロード実行準備が整ったと判定された場合、CPUからロード実行準備完了指示503を受信する。
判定回路c13は、受信した追越し許可信号106と、ロード実行準備完了指示503とに応答し、ロード命令の実行を許可するロード実行判定結果303を命令選択部c10に出力する。
図4,図5を見ると、判定回路c13の詳細な構成が示される。
図4,図5に示されるように、判定回路c13は、追越し許可フラグバッファc14に接続され、ストアアドレス/追越フラグセレクタc131と、図5のストア追越し判定キュー132と、ロード実行準備完了判定キュー133と、ロードIDキューc134と、ロード実行判定結果出力回路c135とから構成される。
追越し許可フラグバッファc14は、デコード部c11から通知されてきたストアIDと、デコード部c11から通知されてきた追越し許可フラグの値とを対応づけて格納するためのバッファである。この追越し許可フラグバッファc14には、初期値“1”が設定されている。
図4に示されるストアアドレス/追越フラグセレクタc131は、NST命令が付与されたストア命令が出力された後、該ストア命令のストアIDに対応する追越し許可フラグバッファのフラグの値を“0”にリセットする。
図5に示されるストア追越し判定キューc132は、ストアIDに対応するストア命令に後続するロード命令を、該ストア命令よりも先行して実行させてもよいか否かの判定に用いられるキューである。ストア追越し判定キュー132は、N個のFIFO(FIrstin FirstOut)形式のキュー(N:自然数)で構成され、これらN個のキューは、それぞれがストアIDに対応づけて設けられている。更に、各キューの内部にはM個のエントリ(M:自然数)が設けられている。すなわち、追越し許可フラグバッファc14からの追越し許可信号106(“0”または“1”)、または、ストア追越し判定結果107(“0”または“1”)が、ストアIDに対応するキューに格納されることになる。
図5に示されるロード実行準備完了判定キューc133は、中央処理部c12においてロード命令の実行準備が完了したかどうかを判定するのに用いられるキューである。ロード実行準備完了判定キューc133は、中央処理部c2から、ロード命令の実行準備が完了したか否かを示すロード実行準備完了指示503を受信すると、このロード実行準備完了指示503に基づいた完了識別フラグ(0または1)が、ロードIDに対応付けられて格納される。ここでは、中央処理部c12側でロード命令の実行準備が完了したことを示す完了識別フラグとして、“1”を用いる。
ロード実行判定結果出力回路c135は、ANDゲートである。ストア追越し判定キュー132から出力される「追越し許可フラグ(“0”または“1”)」の値と、ロード実行準備完了判定キューc133から出力される「完了識別フラグ(“0”または“1”)」との論理積を演算する回路である。ロード実行判定結果出力回路c135は、ここで算出した論理積の演算結果を、ロード実行判定結果として命令選択部c10に通知する。
続いて、比較回路c15の内部構成について図4,図5を用いて説明する。
比較回路c15は、アドレス依存性の解析対象範囲外の命令列を受信した場合に用いられる回路である。すなわち、OEND命令が付加された終了位置以降の、NST命令が付加されていない通常のストア命令を受信した場合に、後続するロード命令とのアドレス依存性を解析するのに用いられる。
比較回路c15は、アドレス比較器c151と、ストア命令の主記憶ストアアドレスを格納するための主記憶ストアアドレスバッファc152と、ORゲートである追越し判定結果出力回路153(図5)とを有する。
主記憶ストアアドレスバッファc152は、ストア命令の主記憶ストアアドレスを格納するために用いられるバッファである。ストアIDと主記憶ストアアドレスとが対応付けられて格納される。
アドレス比較器c151は、L個の比較器より構成される。このL個の比較器のそれぞれには、主記憶ロードアドレスが格納される。各比較器は、主記憶ストアアドレスバッファc152から受信した主記憶ストアアドレスと、命令デコード部c11から受信した主記憶ロードアドレスとを比較し、アドレス比較結果105を出力する。すなわち、比較の結果アドレスが一致しない場合には“1”を出力し、アドレスが一致する場合には“0”を出力する。
図5の追越し判定結果出力回路c153は、ORゲートである。アドレス比較器c151の各比較器から出力される「アドレス比較結果105(“0”または“1”)」の値と、判定回路c16の追越し許可フラグバッファから出力される「追越し許可信号106(“0”または“1”)」との論理和を演算する回路である。この演算結果は、「ストア追越し判定結果107」として判定回路c16のストア追越し判定キューc132に出力される。
次に、第1の実施の形態における動作について、図1〜図6を用いて詳細に説明する。
尚、以下では、図6の左例で示されるFortranプログラムのコードが、コンパイラbによって、図6の右例で示される命令列(命令列1−1〜命令列10000−4)に変換されたものとする。そして、図6の例で示される命令列を、中央処理装置cが順次読み込むものとして説明する。
また、以下では、プログラムの処理例として、図6に示される加算ループ処理を例にとって説明するが、他のプログラム内容を処理対象としても、むろん構わない。
また、ここでは、プログラムがFortranプログラムで記述されたプログラムであるとして説明するが、C言語等の他の言語で記述されたプログラムを処理の対象としても構わない。
また、ここでは、プログラムの例として高級言語であるFortranを例にとって説明するが、アセンブラ等のアセンブリ言語で記述されたプログラムを変換するようにしてもよい。この場合、プログラム作成者が、プログラム中のアドレス依存性を考慮し、NST命令、OEND命令を人手により付与してもよい。図7には、これらプログラムの種別に応じたコンパイル処理の概要フローが示される。
また、以下では、アドレス依存性を解析した対象範囲の命令群の最終位置を終了位置とし、OEND命令を付加するものとして説明するが、これに限る必要はない。中央処理装置の処理能力や主記憶ロード命令バッファの容量といったハードウェアリソースを勘案し、ロード命令数が一定命令数となるよう終了位置を決定し、OEND命令を付加するようにしてもよい。
さて、図2に示されるように、アドレス依存判定部c1が中央処理部c2から命令列500を受信すると、デコード部c11は、受信した命令列500の命令種別を判定する。ここでは、命令列500は、図6の命令列1−1に対応し、デコード部c11の命令デコード部c111によってロード命令であると判定される。
次に、図3に示されるように、命令デコード部c111が、ロードID生成部c112に対して、ロード用ID付与カウンタカウントアップ信号110を送出する。ここで、ロード用ID付与カウンタカウントアップ信号110とは、ロードID生成部c112のカウンタ値をインクリメントする信号である。ロード用ID付与カウンタカウントアップ信号110を受信したロードID生成部c112は、受信したロード命令に対応するロードID101(1−1)を生成する。そして、ロード命令は、ロードID(1−1)と関連づけられ、主記憶ロード命令バッファ121に格納される。また、ロードID101(1−1)は、ロードIDキューc134にも送出される。
続いて、ロードID101(1−1)に対応するロード命令の主記憶ロードアドレスが、比較回路c15のアドレス比較器c151に送出される。
ここで、図4を見ると、比較器c151において、主記憶ストアアドレスバッファc152から受信した主記憶ストアアドレスと、命令デコード部c11から受信した主記憶ロードアドレスとが比較され、アドレス比較結果105が出力される。ここでは、まだ主記憶ストアアドレスのエントリが無く、アドレスが一致することはないので、アドレス比較結果105は“0”として出力される。
次に、図5を見ると、追越し判定結果出力回路153によって、アドレス比較器c151から出力された「アドレス比較結果105」の値(ここでは「“0”」)と、判定回路c16の追越し許可フラグバッファc161とから出力される「追越し許可信号106」との論理和が演算される。ここで、追越し許可フラグバッファc14には、全てのエントリに初期値“1”が設定されている。この為、比較回路c15によるアドレス比較処理(アドレス依存性解析)は行われない。比較回路c15の比較結果に関わらず、追越し判定結果出力回路153による論理和の演算結果である「ストア追越し判定結果107(0)〜ストア追越し判定結果107(N)」は、ここでは全て“1”として出力されるからである。すなわち、追越し判定結果出力回路153による演算結果は“1”となる。この「ストア追越し判定結果“1”」は、ストア追越し判定キューc132に通知され、ストア追越し判定キュー132のN個のキューから出力される「追越し許可フラグ」の値は、いずれも“1”となる。
このとき、中央処理部c2でロード命令の実行準備が完了すると、中央処理部c2は、アドレス依存判定部c1のロード実行準備判定キューc133に対しロード実行準備完了指示503を送出する。ここでは、ロードID101(1−1)に対応する完了識別フラグ“1”が、ロード実行準備完了指示503としてロード実行判定結果出力回路c135に送出される。この完了識別フラグ“1”は、ロードID101(1−1)とともに、ロード実行判定結果出力回路c135に送出される。
続いて、ロード実行判定結果出力回路c135によって、各ストア追越し判定キュー132から出力される「ストア追越し判定結果」の値(ここでは、“1”)と、ロード実行準備完了判定キュー133から出力される「完了識別フラグ」の値(ここでは、“1”)」との論理積が算出される。ここでは、ロード実行判定結果“1”が命令選択部c10に通知されことになる。このとき、ロード実行判定結果「“1”」とともに、ロードID101(1−1)もあわせて命令選択部c10に通知される。
次に、図3を見ると、ロードID101(1−1)とロード実行判定結果303「“1”」とを受信した命令選択部c10は、命令バッファc12の主記憶ロード命令バッファc121に対し、ロードID101(1−1)に対応するロード命令502(1−1)の出力を指示する。そして、ロード命令502(1−1)が出力される。この出力されたロード命令502(1−1)は、中央処理部c2に渡される。これにより命令列1−1に対応するロード命令502が中央処理部c2で処理される。すなわち、V0レジスタから値“X”が読み出される。
同様にして、図6の命令列1−2に対応するロード命令が中央処理部c2で処理される。すなわち、V4レジスタから値“L”が読み出される。
続いて、中央処理部c2では、図6の命令列1−3に対応する加算処理(FAD V3<−V0+S0)を行う。尚、この処理は、メモリアクセス命令ではなく、プロセサ内で閉じられた演算処理である。従って、デコード部c11で次に受信する命令列は図6の命令列1−4になる。
次に、NST命令が付与されたストア命令を受信した場合の動作の説明に移る。
図6の命令列1−4に対応する命令列500を受信したアドレス依存性判定部c1のデコード部c11では、受信した命令列500がNST命令を含むストア命令であると判定する。
そして、図3の命令デコード部c111は、ストアID生成部c113に対して、ストア用ID付与カウンタカウントアップ信号210を送出する。ストア用ID付与カウンタカウントアップ信号210を受信したストアID生成部c113は、受信したストア命令に対応するストアID203(1−4)を生成する。生成されたストアID203(1−4)は、ストアIDキューC123に格納される。また、ストアID203(1−4)に対応するストア命令208(1−4)は、ストアID203(1−4)に対応する主記憶アドレスと関連づけられ、主記憶ストア命令バッファ122に格納される。
このとき、図4に示されるように、ストアID203(1−4)に対応するストア命令の主記憶ストアアドレス202(1−4)が、図4の主記憶ストアアドレスバッファc152に送出される。そして、主記憶ストアアドレスバッファc152では、ストアID203(1−4)とストアID203(1−4)に対応する主記憶ストアアドレスとが対応付けられて格納される。
ここで、受信した命令列500がNST命令を含むと判定した命令デコード部c11は、追越し許可フラグバッファc14に対して、追越し許可フラグセット201「フラグ値“1”」と、ストアID203(1−4)とを送出する。
図4に示されるように、追越し許可フラグバッファc14では、ストアID(ここでは、ストアID203(1−4))と追越し許可フラグ(ここでは、追越し許可フラグ“1”)とが対応付けられて格納される。更に、この追越し許可フラグ“1”は、図5のストア追越し判定キュー132のストアID203(1−4)に対応するキューに送出され、格納される。
尚、図3の主記憶ストア命令バッファ122に格納されたストア命令208(1−4)は、中央処理部c2での演算処理(図6:命令列1−3に対応する加算処理)が終了するまでは、中央処理部c2には出力されない。
さて、ここで更に、後続する命令列(図6:命令列2−1)を命令デコード部c111が受信すると、ロード命令と判定され、ロードID101(2−1)が生成される。このロード命令もロードID101(2−1)と対応づけられて主記憶ロード命令バッファc121に格納される。
このとき、図1の中央処理部c2でロード命令の実行準備が完了すると、中央処理部c2は、アドレス依存性判定部c1にロード実行準備完了指示503を送出する。ここでも、ロードID101(2−1)に対応する完了識別フラグ“1”が、ロード実行準備完了指示503を受けて、図5のロード実行判定結果出力回路c135に送出される。この完了識別フラグ“1”は、ロードID101(2−1)とともに、ロード実行判定結果出力回路c135に送出される。このときも、ロード実行判定結果出力回路c135のロード実行判定結果は“1”である。このロード実行判定結果“1”を受信した命令選択部c10では、ロードID101(2−1)に対応するロード命令502(2−1)を出力する。
以降、同様にして後続するロード命令(図6:命令列2−2,・・・10000−1,10000−2)が、待たされること無く順次出力される。
ここで、中央処理部c2での演算処理(図5:命令列1−3に対応する加算処理)が終了すると、NST命令の付与されたストア命令(命令列1−4)が、アドレス依存性判定部c1から中央処理部c2に対して出力されることになる。その具体的な動作は次の通りである。
まず、中央処理部c2で命令列1−3の演算処理が終了すると、アドレス依存性判定部c1は、ストア実行準備指示504を中央処理部c2から受信する。具体的には、図3に示されるように、ストアIDキューc123がストア実行準備指示504を受信する。ストア実行準備504に応答したストアIDキューc123は、ストアID207(1−4)を出力する。該ストアID207(1−4)は、主記憶ストア命令バッファc122に送出される。そして、命令選択部c10は、主記憶ストア命令バッファc122から、ストアID207(1−4)に対応するストア命令501(1−4)を出力する。
ストア命令501(1−4)が出力されると、図3に示されるように、ストアID207(1−4)は、ストア追越し判定キューセレクタc124にも送出される。ここで、ストア追越し判定キューセレクタc124は、ストア命令501(1−4)の出力を受けて、受信したストアID207(1−4)に対応するストア追越し判定キューc132に対し、フラグALL1セット402を送出する。フラグALL1セット402を受信した追越し判定キュー内の全てのエントリには、“1”がセットされる。このように“1”をセットすることで、後続するロード命令に「処理待ち」が発生しなくなる。更に、図4のストアアドレス/追い越しフラグセレクタc131は、受信したストアID207に対応する追い越し許可フラグバッファc14のフラグを“0”にリセットし、受信したストアID207に対応する主記憶ストアアドレスバッファc152の有効フラグを“0”にリセットする。
同様にして、中央処理部c2における次の演算処理(命令列2−3)が完了すると、NST命令が付加された次のストア命令(命令列2−4)も、命令選択部c10により出力される。以降も、同様にして後続する演算処理(図6:命令列3−3,・・・,10000−3)が完了すると、NST命令が付加されたストア命令(命令列3−4,・・・,10000−4)も出力されていく。
続いて、OEND命令を受信した場合の動作の説明に移る。
アドレス依存性判定部c1のデコード部c11は、受信した命令列500がOEND命令であることを判定すると、OEND命令の後続のNST命令を含むストア命令,ロード命令を最低1サイクル保持し、追越し許可フラグバッファc14に対し、追い越し許可フラグリセット301「“0”」を送出する。送出された追越し許可フラグリセット301により、追越し許可フラグバッファc14の全てのフラグは“0”にリセットされる。これにより、比較回路c15によるアドレス比較処理(アドレス依存性解析)が有効になる。
これ以降は、比較回路c15によって、ストア命令のアドレスとロード命令のアドレスとの比較によるアドレス依存性チェック処理が行われる。すなわち、比較回路c15によるアドレス依存性のチェックが再開される。何故なら、OEND命令の受信により追越し許可フラグバッファc14のフラグが“0”に設定されたので、以降の命令列を受信した場合、追越し判定結果出力回路c153による論理和演算の結果として得られるストア追越し判定結果107は、比較回路c15によるアドレス比較結果105のフラグの値に依存する結果となるからである。
こうして、図9に示されるように、ストア命令とアドレス依存性の無いロード命令が、優先的に出力される。
上記第1の実施の形態では、複数のストア命令と複数のロード命令とからなる命令群に対してアドレス依存性のチェックを行うことで、アドレス依存性が無いロード命令を特定し、この特定されたロード命令をストア命令よりも優先的に実行させることができる。従って、従来技術に比べ、より多くのロード命令を優先的に実行することができ、主記憶装置へのアクセスが伴う処理を高速化できる。
又、アドレス依存性を判断した命令群の終了位置までは、中央処理装置側ではアドレス同士の比較によるアドレス依存性チェックの実施をする必要が無くなるので、ロード命令の処理待ち、及び、ロード命令に後続する演算処理の処理待ちが解消され、演算処理が効率化できる。
又、中央処理装置の内部において、ストア命令が実行されてストアアドレスが確定するのをロード命令が待つ際に必要とされるバッファが不足し、命令パイプラインがビジーの状態になることを回避することができる。
又、ストア命令の数が比較器の個数(L)を超えるような命令数の多い命令群を処理するような場合であっても、「処理待ち」状態の発生を抑えることができる。何故なら、従来の構成では、ストア命令の数が比較器の個数(L)を超えるとアドレス依存性のチェックができなくなり、「処理待ち」が発生していたが、本発明では、NST命令の付加された複数のストア命令に後続するロード命令を優先的に処理する際、アドレス同士の比較によるアドレス依存性チェックは行われないので、比較器の個数による制約が無くなる為である。
又、比較器の個数は、ストア命令の数よりも少なくすることができるので、ハードウェアリソースの節約にもつながり、装置コストを抑えることができる。
次に、第2の実施の形態について、図10を用いて説明する。
図10に示されるように、第2の実施の形態の構成では、第1の実施形態に加えて、コプロセッサc3を中央処理装置cが有する。
第2の実施の形態における中央処理装置cのアドレス依存性判定部c1は、ロード命令502,ストア命令501を中央処理部c2に送出する際に、これらの命令をコプロセッサc3にも送出する。
また、第2の実施の形態における中央処理装置cでは、命令列の実行を中央コプロセッサc3でも行うことができる。
尚、命令列の処理動作については、第1の実施の形態で説明した場合と同じであるので、ここでは詳細な説明を省略する。
上記第2の実施の形態ではコプロセッサと連携して動作するアドレス依存性判定部c1を有する。この為、中央処理装置は、自装置にコプロセッサが実装されている場合であっても、アドレス依存性のチェックをせずに、NST命令を含むストア命令に後続するロード命令をOEND命令で指定された範囲で優先的に実行させることができ、メモリアクセス命令の処理効率を向上させることができる。
本発明の演算処理装置における第1の実施形態の全体ブロック図。 アドレス依存性判定部の全体構成を示すブロック図。 アドレス依存性判定部のデコード部及び命令バッファ部の内部構成を示す図。 アドレス依存性判定部の判定回路の構成を示す図。 アドレス依存性判定部の判定回路の構成を示す図。 中央処理部が実行する命令列の例を示す図。 コンパイラ装置における、プログラム種別に応じたコンパイル処理の概要フローを示す図 従来のメモリアクセスが伴う命令の処理例を示した図。 本発明におけるメモリアクセスが伴う命令処理の例を、従来の処理例と対比して示した図。 本発明の演算処理装置の第2の実施形態の全体ブロック図。
符号の説明
a 演算処理装置
b コンパイラ装置
c 中央処理装置
d 主記憶装置
e プログラム
c10 命令選択部
c11 デコード部
c12 命令バッファ部
c13 判定回路
c14 追越し許可フラグバッファ
c15 比較回路
c111 命令デコード部
c112 ロードID生成部
c113 ストアID生成部
c121 主記憶ロード命令バッファ
c122 主記憶ストア命令バッファ
c123 ストアIDキュー
c124 ストア追越し判定キューセレクタ
c131 ストアアドレス/追越フラグセレクタ
c132 ストア追越し判定キュー
c133 ロード実行準備判定キュー
c134 ロードIDキュー
c135 ロード実行判定結果出力回路
c151 アドレス比較器
c152 主記憶ストアアドレスバッファ
c153 追越し判定結果出力回路

Claims (10)

  1. 複数のストア命令と複数のロード命令とからなる命令群のアドレス依存性を判断し、前記ストア命令とアドレス依存性の無いロード命令を特定する手段と、
    前記命令群を受信し、前記アドレス依存性の無いストア命令の実行準備が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するデータ送出手段と、
    前記送出されたロード命令を実行する実行手段と
    を有することを特徴とする演算処理装置。
  2. 前記特定する手段がコンパイラ装置であり、
    前記データ送出手段及び前記実行手段が中央処理装置であることを特徴とする請求項1に記載の演算処理装置。
  3. 前記特定する手段は、アドレス依存性の無い複数のストア命令に、アドレス依存性が無いことを示す識別情報を付加し、アドレス依存性を判断した命令群の終了位置を示す終了位置情報を前記命令群に付加し、命令群を送信するように構成されており、
    前記データ送出手段は、前記命令群を受信し、前記識別情報が付加されたストア命令の実行準備が完了するまで、前記終了位置情報よりも前のロード命令を、前記識別情報の付加されたストア命令よりも優先的に前記実行手段に送出するように構成されていることを特徴とする請求項1または請求項2に記載の演算処理装置。
  4. 前記データ送出手段は、前記実行手段におけるロード命令の実行準備が完了した場合に、前記特定されたロード命令を前記ストア命令よりも優先的に送出するように構成されていることを特徴とする請求項1から請求項3のいずれかに記載の演算処理手段。
  5. 前記データ送出手段は、前記実行手段で所定の演算処理が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するように構成されていることを特徴とする請求項1から請求項4のいずれかに記載の演算処理装置。
  6. 複数のストア命令と複数のロード命令とからなる命令群のアドレス依存性を判断し、前記ストア命令とアドレス依存性の無いロード命令を特定するステップと、
    前記命令群を受信し、前記アドレス依存性の無いストア命令の実行準備が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するデータ送出ステップと、
    前記送出されたロード命令を実行する実行ステップと
    を有することを特徴とする演算処理方法。
  7. 前記特定するステップは、コンパイラ装置で行われ、
    前記データ送出ステップ及び前記実行ステップは、中央処理装置で行われることを特徴とする請求項6に記載の演算処理方法。
  8. 前記特定するステップは、アドレス依存性の無い複数のストア命令に、アドレス依存性が無いことを示す識別情報を付加し、アドレス依存性を判断した命令群の終了位置を示す終了位置情報を前記命令群に付加し、命令群を送信するステップであり、
    前記データ送出ステップは、前記命令群を受信し、前記識別情報が付加されたストア命令の実行準備が完了するまで、前記終了位置情報よりも前のロード命令を、前記識別情報の付加されたストア命令よりも優先的に送出するステップであることを特徴とする請求項6または請求項7に記載の演算処理方法。
  9. 前記データ送出ステップは、ロード命令の実行準備が完了した場合に、前記特定されたロード命令を前記ストア命令よりも優先的に送出することを特徴とする請求項6から請求項8のいずれかに記載の演算処理方法。
  10. 前記データ送出ステップは、前記実行ステップで所定の演算処理が完了するまで前記特定されたロード命令を前記ストア命令よりも優先的に送出するように構成されていることを特徴とする請求項6から請求項9のいずれかに記載の演算処理方法。
JP2007191621A 2007-07-24 2007-07-24 演算処理装置、演算処理方法 Active JP5057054B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007191621A JP5057054B2 (ja) 2007-07-24 2007-07-24 演算処理装置、演算処理方法
US12/213,098 US20090031118A1 (en) 2007-07-24 2008-06-13 Apparatus and method for controlling order of instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007191621A JP5057054B2 (ja) 2007-07-24 2007-07-24 演算処理装置、演算処理方法

Publications (2)

Publication Number Publication Date
JP2009026260A true JP2009026260A (ja) 2009-02-05
JP5057054B2 JP5057054B2 (ja) 2012-10-24

Family

ID=40296393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007191621A Active JP5057054B2 (ja) 2007-07-24 2007-07-24 演算処理装置、演算処理方法

Country Status (2)

Country Link
US (1) US20090031118A1 (ja)
JP (1) JP5057054B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010198439A (ja) * 2009-02-26 2010-09-09 Nec Corp ベクトル命令間追い越し判定装置と方法
JP2012048352A (ja) * 2010-08-25 2012-03-08 Nec Corp データ処理装置、メモリアクセス制御方法及びメモリアクセス制御プログラム
JP2018156568A (ja) * 2017-03-21 2018-10-04 株式会社東芝 コンパイル装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155946A (zh) * 2015-03-30 2016-11-23 上海芯豪微电子有限公司 基于信息推送的信息系统和方法
US11138009B2 (en) * 2018-08-10 2021-10-05 Nvidia Corporation Robust, efficient multiprocessor-coprocessor interface

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020310A (ja) * 1998-06-26 2000-01-21 Toshiba Microelectronics Corp プロセッサ
US6658559B1 (en) * 1999-12-31 2003-12-02 Intel Corporation Method and apparatus for advancing load operations

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247173B1 (en) * 1997-09-24 2001-06-12 Hewlett-Packard Company Computer compiler optimizer for reducing computer resource consumption during dependence analysis after loop unrolling
US7185338B2 (en) * 2002-10-15 2007-02-27 Sun Microsystems, Inc. Processor with speculative multithreading and hardware to support multithreading software

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020310A (ja) * 1998-06-26 2000-01-21 Toshiba Microelectronics Corp プロセッサ
US6658559B1 (en) * 1999-12-31 2003-12-02 Intel Corporation Method and apparatus for advancing load operations

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010198439A (ja) * 2009-02-26 2010-09-09 Nec Corp ベクトル命令間追い越し判定装置と方法
JP2012048352A (ja) * 2010-08-25 2012-03-08 Nec Corp データ処理装置、メモリアクセス制御方法及びメモリアクセス制御プログラム
JP2018156568A (ja) * 2017-03-21 2018-10-04 株式会社東芝 コンパイル装置

Also Published As

Publication number Publication date
JP5057054B2 (ja) 2012-10-24
US20090031118A1 (en) 2009-01-29

Similar Documents

Publication Publication Date Title
US8539166B2 (en) Reducing remote reads of memory in a hybrid computing environment by maintaining remote memory values locally
US6557095B1 (en) Scheduling operations using a dependency matrix
US10235180B2 (en) Scheduler implementing dependency matrix having restricted entries
JP2928695B2 (ja) 静的インタリーブを用いたマルチスレッドマイクロプロセッサおよびそれを備えたシステムでの命令スレッド実行方法
US6334182B2 (en) Scheduling operations using a dependency matrix
US20100107174A1 (en) Scheduler, processor system, and program generation method
US7526629B2 (en) Vector processing apparatus with overtaking function to change instruction execution order
JP5057054B2 (ja) 演算処理装置、演算処理方法
JP3773769B2 (ja) 命令のインオーダ処理を効率的に実行するスーパースケーラ処理システム及び方法
CN113934455B (zh) 指令转换方法及装置
US20090037889A1 (en) Speculative code motion for memory latency hiding
US6496924B2 (en) Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline
US7266674B2 (en) Programmable delayed dispatch in a multi-threaded pipeline
US8516223B2 (en) Dispatching instruction from reservation station to vacant instruction queue of alternate arithmetic unit
WO2014190699A1 (zh) 一种cpu指令处理方法和处理器
US12517757B2 (en) Method and apparatus for adjusting instruction pipeline, memory and storage medium
WO2026016845A1 (zh) 处理器、显卡、计算机设备以及依赖解除方法
CN120631449A (zh) 一种处理器程序地址缓冲方法及装置
US6711670B1 (en) System and method for detecting data hazards within an instruction group of a compiled computer program
EP4650962A1 (en) Instruction processing method and apparatus, processor, and computer-readable storage medium
CN116301874A (zh) 代码编译方法、电子设备及存储介质
JP3684579B2 (ja) 分散型並列計算機のプロセッサエレメント
US20070028077A1 (en) Pipeline processor, and method for automatically designing a pipeline processor
CN114327643B (zh) 机器指令预处理方法、电子设备及计算机可读存储介质
US10884738B2 (en) Arithmetic processing device and method of controlling arithmetic processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120618

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120717

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5057054

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150