JP2021144730A - 命令実行方法、装置、電子デバイス、コンピュータ可読記憶媒体、及びプログラム - Google Patents

命令実行方法、装置、電子デバイス、コンピュータ可読記憶媒体、及びプログラム Download PDF

Info

Publication number
JP2021144730A
JP2021144730A JP2021089687A JP2021089687A JP2021144730A JP 2021144730 A JP2021144730 A JP 2021144730A JP 2021089687 A JP2021089687 A JP 2021089687A JP 2021089687 A JP2021089687 A JP 2021089687A JP 2021144730 A JP2021144730 A JP 2021144730A
Authority
JP
Japan
Prior art keywords
instruction
memory
execution
memory instruction
executing
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
JP2021089687A
Other languages
English (en)
Other versions
JP7419293B2 (ja
Inventor
スー,インナン
Yingnan Xu
オウヤン,ジェン
Jian Ouyang
ドゥ,シュエリャン
Xueliang Du
アン,カン
Kang An
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021144730A publication Critical patent/JP2021144730A/ja
Application granted granted Critical
Publication of JP7419293B2 publication Critical patent/JP7419293B2/ja
Active 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Retry When Errors Occur (AREA)

Abstract

【課題】参照の局所性が従来のプロセッサより劣化したメモリモデルにおいて、プログラミングの正確性を保証して使い勝手を向上する命令実行方法及び命令の実行装置を提供する。【解決手段】命令実行方法は、メモリ命令及び非メモリ命令を含む命令シーケンスを順次実行することと、命令シーケンス内の第1メモリ命令の後にある、次のメモリ命令である第2メモリ命令の実行を開始する前に第1メモリ命令の実行完了を必要であることを決定することと、第1メモリ命令を実行する周期期間において、第2メモリ命令を実行せずに、第1メモリ命令と第2メモリ命令の間の非メモリ命令を実行することと、を含む。【効果】プロセッサ全体性能を向上させると共に、プログラミングの正確性を保証して使い勝手を向上し、人工知能のプロセッサの普及に有益である。【選択図】図2

Description

本開示はコンピュータ技術に関し、より具体的に、命令実行方法、装置、電子デバイス、コンピュータ可読記憶媒体、及びプログラムに関し、人工知能分野に適用することが可能である。
メモリモデルは、ハードウェア上のメモリモデルと言語上のメモリモデルに分けられることができ、ハードウェア設計定義又はプログラミング要件定義によって、アクセスの順序と実行順序を保証し、プログラム実行の正確性を保証する。従来のプロセッサ、及びC++のような高レベル言語は、いずれもメモリモデルをサポートする。主なメモリモデルは、順序整合性モデル、トータルストアオーダリングモデル和リラックストメモリモデル等があり、リラックストメモリモデルは性能に良い。新興の人工知能用のプロセッサ及び対応するプログラム言語は、同様にメモリモデルを定義、サポートする必要がある。人工知能のプロセッサは、1種のドメイン特定のプロセッサである。人工知能分野の特徴を対象とするメモリのアーキテクチャにおいて、最大の変化として、従来のプロセッサ内の高速キャッシュの代わりにスクラッチパッドメモリを採用しており、それによってプログラマーがデータの記憶を直接に管理することができるようになる。
具体的に、人工知能の適用場面において、参照の局所性が、従来のプロセッサより劣化しており、この場合、高速キャッシュによる性能向上が期待できず、データを使用後に直ぐに廃棄する場面において性能を逆に低下する。同時に、高速キャッシュの複雑度及びリソースの占用率が非常に高く、してみれば、高速キャッシュを取り除いて、より多くのハードウェアリソースを獲得して演算力の増加に使用したほうが合理的であり、そのため、現在、多くの人工知能のプロセッサは、非高速キャッシュのスクラッチパッドメモリ構造を使用する。スクラッチパッドメモリを採用する場合、メモリは、プログラマーによって管理するようになり、大分の人工知能は、アーキテクチャとプログラム言語上の相違で、従来のプロセッサで実現するメモリモデルシステム及び方法に完全に適用されることができない。
本開示の実施形態によれば、命令実行方法、装置、電子デバイス、及びコンピュータ可読記憶媒体を提供する。
本開示の第1様態において、命令実行方法を提供し、命令シーケンスを実行することであって、前記命令シーケンスはメモリ命令と非メモリ命令とを含み、前記シーケンス内の命令を実行することは順序に従って実行を開始することであることと、第2メモリ命令の実行を開始する前に第1メモリ命令の実行完了を必要であることを決定することであって、前記第2メモリ命令は、前記命令シーケンス内の前記第1メモリ命令の後にある、次のメモリ命令であることと、前記第1メモリ命令を実行する周期期間において、前記第2メモリ命令を実行せずに、前記第1メモリ命令と前記第2メモリ命令の間の非メモリ命令を実行することと、を含む。
本開示の第2様態において、命令の実行装置を提供し、命令シーケンスを実行するように構成され、前記命令シーケンスはメモリ命令と非メモリ命令とを含み、前記シーケンス内の命令を実行することは順序に従って実行を開始することである命令シーケンス実行モジュールと、第2メモリ命令の実行を開始する前に第1メモリ命令の実行完了を必要であることを決定するように構成され、前記第2メモリ命令は、前記命令シーケンス内の前記第1メモリ命令の後にある、次のメモリ命令である実行決定モジュールと、前記第1メモリ命令を実行する周期期間において、前記第2メモリ命令を実行せずに、前記第1メモリ命令と前記第2メモリ命令の間の非メモリ命令を実行するように構成される非メモリ命令実行モジュールと、を含む。
本開示の第3様態において、電子デバイスを提供し、少なくとも1つのプロセッサ、及び前記少なくとも1つのプロセッサに通信接続されるメモリを含み。ここで、前記メモリに前記少なくとも1つのプロセッサで実行可能な命令が記憶され、前記命令は前記少なくとも1つのプロセッサに実行され、前記少なくとも1つのプロセッサに、本開示による第1様態の方法を実行させる。
本開示の第4様態において、コンピュータ命令を記憶する、非一時的なコンピュータ可読記憶媒体を提供し、前記コンピュータ命令は、前記コンピュータに、本開示による第1様態の方法を実行させる。
本開示に提供される技術を利用して、プロセッサ全体性能を向上させると共に、プログラミングの正確性を保証して使い勝手を向上することができ、人工知能のプロセッサの普及に有利である。
なお、ここで記載されている内容は、本開示の実施形態においてキーとなっている、又は重要視されている特徴、本開示の範囲を限定しているわけではない。本開示の他の特徴は下記の明細書の記載によって理解しやすくさせる。
本開示の例示的な実施形態における命令実行方法を実現する命令実行システム100を示す図である。 本開示の実施形態における命令実行方法200を示すフローチャートである。 本開示の実施形態における命令の実行装置300を示すブロック図である。 本開示の実施形態における電子デバイス400を示すブロック図である。
図面を参照しながら本開示の例示的な実施形態をより詳しく説明することによって、本開示の上記、及び他の目的、特徴、及びメリットがより分かりやすくなり、ここで、本開示の例示的な実施形態において、同様な符号が通常同一部品を表す。なお、図面は本案をよりよく理解させるためのものであり、本開示の限定にならない。
各図面で、同様又は対応する符号が同一又は対応する部分を表す。
図面を参照しながら本開示の好ましい実施形態をより詳しく説明する。図面に本開示の好ましい実施形態を示しているが、ここで記載されている実施形態に限定せずに、異なる形態で本開示を実現することもできる。逆に、これらの実施形態を提供するのは、本開示をより分かりやすくし、本開示の範囲を完全に当業者に伝わるためである。
本文に記載されている「包括」、及び類似な表現は、オープン的な包括を意味し、即ち、「含むが、それに限定されない」意味をする。明言しない限り、「又は」という記載は、「及び/又は」を表す。「基づく」という記載は、「少なくとも一部的に基づく」ことを表す。「1つの例示的な実施形態」と「1つの実施形態」という記載は、「少なくとも1つの例示的な実施形態」を表す。「もう1つの実施形態」というのは、「少なくとも1つのもう1つの実施形態」を表す。「第1」、「第2」等々は、異なり又は同様な対象を指すことが可能である。後文において、その他の明確的な定義と暗黙的な定義を含むことができる。
上記の背景技術で説明したように、高速キャッシュは、記憶内容が複数回で使用されるケースにより適合し、しかし、人工知能の応用場面においてデータの使用回数が少ない可能性があり、ひいては一回しか使用されなく、そのため、スクラッチパッドメモリのほうがもっと相応しい。しかしこの二つのメモリの実現方式が異なる。そのため、従来のプロセッサを使用して実現されるメモリモデルシステムと方法は、人工知能のプロセッサで使用するスクラッチパッドメモリに完全に適用することができる。例えば、従来のプロセッサに高速キャッシュが存在するため、命令とデータの記憶は、プログラマーにとって、見えないことである。そのため、リラックストメモリモデルを実現するために、相関のプログラムの正確性はコンパイラによって処理される。
プロセッサ命令シーケンスを実行する場合、命令シーケンス内の命令は、順序に従って実行する。しかし、プロセッサは、必ずしも各々の命令の実行完了後に次の命令の実行を開始するとは限らない。例えば1つのプロセッサ周期開始場合第1個の命令を実行し、次のプロセッサ周期開始場合第2個の命令を実行する。それぞれの命令の命令周期が相違する可能性があり、例えば、第1個の命令の実行は10個のプロセッサ周期が必要であり、第2個の命令の実行は、1個のプロセッサ周期だけ必要があるため、実行開始の遅い命令は、其れより前で実行する命令の前に実行完了する可能性があり、この場合、プロセッサは後続命令を実行し続けることができる。そのため、プロセッサは、命令シーケンス内の命令を、乱れた順序で実行する可能性がある。
しかし、プロセッサが命令を処理する場合、厳しい実行順序で実行する必要がある命令があり、即ち、後ろの命令を、前の命令が実行完了になってから実行開始しなければならず、そうでない場合エラーが生じる。例えば、第1個の命令は、変数Aに値を代入する命令であり、第2個の命令は値を代入した後の変数Aを使用する命令である。変数Aへの値の代入後にしか、値の代入後の変数Aを正常に使用することができないため、この二つの命令の実行は、厳しい実行順序があり、即ち、第1個の命令が実行完了後に、第2個の命令を実行開始しなければならない。プロセッサ分野において、実行順序が求められる命令は、例えば、スカラロード(scalar load)命令、スカラストア(scalar store)命令、ベクトルロード(vector load)命令、ベクトルストア(vector store)命令、グローバルメモリからローカルメモリへ搬送(gm2lm)命令、及びローカルメモリからグローバルメモリへ搬送(lm2gm)命令を含む。本開示において、これらの命令はメモリ命令と称され、これらの命令以外の、実行順序が厳しく求められていない命令は、非メモリ命令と称される。
また、同じく上記の値の代入命令を例として説明すると、プログラマーが高レベル言語で上記の二つの命令をプログラミングした後に、この二つの命令がアセンブリ言語に変換された後に、これらの命令の間で複数のその他の命令が生成され得、これらの命令は、通常、非メモリ命令である。そのため、アセンブリ言語に変換された後の命令シーケンスにおいて、メモリ命令同士の間に数多くの非メモリ命令が存在する。
二つのメモリ命令が命令のセマンティックで厳しい実行順序が求められた場合、ハザード衝突が存在すると称する。ハザード衝突問題を解決するために、従来のプロセッサで使用される方法は、コンパイルで中止命令を暗黙的に付加し、例えば、fence命令を付加する。中止命令は、阻止符号の作用と似ており、中止命令を実行する場合、後続のすべの命令の実行を阻止し、特定条件を満たすときのみ、後続の命令を再開し、これらの条件は、例えば、中止命令前の特定命令又はすべての命令が実行完了になっていることを含む。
しかし、従来のプロセッサで、高速キャッシュに記憶されている命令がソフトウェア上で見えないため、ハードウェアでしかハザード衝突問題を解決することができない。また、従来のプロセッサが、中止命令を実行する場合後続のすべての命令の実行を阻止するために、そもそも実行してもハザード衝突問題にならない非メモリ命令の実行も阻止されてしまい、例えば、ハザード衝突がある二つのメモリ命令の間に、何個、何十個、何百個、ひいてはもっと多くの非メモリ命令が存在する。上記の状況があるため、従来のプロセッサにおいて、ハザード衝突問題の解決効率が低く、ハザード衝突問題を解決する場合非メモリ命令の実行効率が酷く影響される。
少なくとも上記の課題の一部を解決するために、又はその他の潜在的な1つ又は複数の課題を解決するために、本開示の実施形態は命令実行方法を提供し、この方法を使用して、メモリ命令と非メモリ命令とを含む命令シーケンスを順に実行する場合、隣接のメモリ命令の間にハザード衝突がある場合、ハードウェアとソフトウェアとの協働によって、ハザード衝突が生じる二つのメモリ命令の間の大量の非メモリ命令を実行し続けることができる。それによってプロセッサの全体性能を向上させると共に、プログラミングの正確性を保証して使い勝手を向上し、ユーザがプロセッサで命令を実行する効率、及びユーザ体験を向上させるために有利であり、しかも人工知能のプロセッサの普及に有益である。
図1は本開示の例示的な実施形態における命令実行方法を実現する命令実行システム100を示す図である。図1に示すように、命令実行システム100は、グローバルメモリ110、DMA(ダイレクトメモリアクセス)120、及びプロセッサコア130を含む。なお、命令実行システム100は拡張することができ、ここで、より多くのプロセッサコア130、ひいてはより多くのグローバルメモリ110とDMA120を含みえる。簡略化するために、図1に、単に1つのグローバルメモリ110、1つのDMA120、及び1つプロセッサコア130を示している。なお、命令実行システム100は、メモリ内の記憶内容を利用してソフトウェアレベルで可視であり且つ管理可能な任意の命令実行システムであっても良く、例えば、スクラッチパッドメモリを使用する人工知能メモリシステムであり得る。
図1に示されるプロセッサコア130はスカラモジュール131、ベクトルモジュール132、グローバルメモリモジュール133、クロスバスイッチ134、及びローカルメモリ135を含む。クロスバスイッチ134は、ローカルメモリ135、スカラモジュール131、ベクトルモジュール132、及びグローバルメモリモジュール133とデータのインタラクションを制御する。グローバルメモリモジュール133は、DMA120とグローバルメモリ110によってデータのインタラクションを行う。
スカラモジュール131は、ハザードプロセス部131−1、スカラロード部131−2及びスカラストア部131−3を含む。スカラロード部131−2は、スカラ命令のロードを処理するために用いられ、スカラストア部131−3は、スカラ命令の記憶を処理するために用いられ、ハザードプロセス部131−1は、スカラ命令のハザード衝突を処理するために用いられる。スカラ命令、例えば、スカラロード命令とスカラストア命令とを含むことができる。
ベクトルモジュール132は、ハザードプロセス部132−1、ベクトルロード部132−2及びベクトルストア部132−3を含む。ベクトルロード部132−2は、ベクトル命令のロードを処理するために用いられ、ベクトルストア部132−3じゃ、ベクトル命令の記憶を処理するために用いられ、ハザードプロセス部132−1は、ベクトル命令のハザード衝突を処理するために用いられる。ベクトル命令、例えばはベクトルロード命令とベクトルストア命令と含むことができる。
グローバルメモリモジュール133は、グローバルメモリロード部133−1とグローバルメモリ記憶部133−2を含む。グローバルメモリロード部133−1は、グローバルメモリ命令のロードを処理するために用いられ、グローバルメモリ記憶部133−2は、グローバルメモリ命令の記憶を処理するために用いられる。グローバルメモリ命令は、例えば、グローバルメモリからローカルメモリへ搬送命令、及びローカルメモリからグローバルメモリへ搬送命令を含むことができる。
本開示の実施形態によれば、命令実行システム100は制御器をさらに含むことができ、命令実行システム100の各操作を制御するために用いられる。
本開示の実施形態によれば、命令実行システム100において、例えば、スカラロード命令、スカラストア命令、ベクトルロード命令、ベクトルストア命令、グローバルメモリからローカルメモリへ搬送命令、及びローカルメモリからグローバルメモリへ搬送命令のメモリ命令は、異なるハードウェア行列を使用して実行することができ、各ハードウェア行列の間でメモリ順序整合性とプログラム順序整合性を保つ。
図2は、本開示の実施形態における命令実行方法200を示すフローチャートである。具体的に、方法200は、命令実行システム100によって実行される。なお、方法200は、図示されていない付加操作を含んでもよく、及び/又は示されている操作を省略してもよく、それに関して本開示の範囲は制限されない。
ブロック202において、命令実行システム100は命令シーケンスを実行する。本開示の実施形態によれば、命令シーケンスは上記のようなメモリ命令と非メモリ命令とを含み、命令実行システム100は、シーケンス内の命令の順序に従って各命令を実行する。
ブロック204において、命令実行システム100は第2メモリ命令の実行を開始する前に、第1メモリ命令の実行完了を必要であることを決定する。本開示の実施形態によれば、第2メモリ命令は命令シーケンスにおける第1メモリ命令の後にある、次のメモリ命令である。
本開示の幾つかの実施形態によれば、命令の実行に前後順序があるため、命令実行システム100は第1メモリ命令を実行する場合、第2メモリ命令の実行を開始する前に第1メモリ命令の実行完了を必要であることを決定する。本開示の他方の実施形態によれば、命令実行システム100は、第1メモリ命令の実行前に、第2メモリ命令の実行を開始する前に第1メモリ命令の実行完了を必要であることを決定することもできる。
人工知能のプロセッサ分野において、全てのハザード衝突がソフトウェアによって発見されるわけではない。例えば、メモリ命令に対するメモリ操作粒度はメモリ行の大きさにおける特定操作であり、同一サブシステム(例えば、スカラモジュール131とベクトルモジュール132)内部におけるロードと記憶との間のハザード衝突は、ハードウェアによって処理され、これらのメモリ命令は、スカラロード命令の間、スカラストア命令の間、ベクトルロード命令の間及びベクトルストア命令の間の命令を含む。そのため、これらのハザード衝突は、ソフトウェアにとって見えないものであり、ソフトウェアで処理することができない。
しかし、ソフトウェアで処理実行するのは効率が良く、便利であるため、本開示の実施形態において、まず、ソフトウェアでハザード衝突問題を処理し、ハザード衝突が、ソフトウェアに不可視である関係で、ソフトウェアで発見、処理することができない場合、ハードウェアによってハザード衝突を処理する。
そのため、本開示の幾つかの実施形態によれば、命令実行システム100は、第1メモリ命令と第2メモリ命令のタイプに基づいて、第2メモリ命令の実行を開始する前に第1メモリ命令の実行完了を必要であることを決定する。このケースは、例えば、メモリ操作粒度が1つのメモリ行の大きさの特定操作であることを含み、例えば、スカラロード命令の間、スカラストア命令の間、ベクトルロード命令の間及びベクトルストア命令の間のハザード衝突が挙げられる。この場合、命令シーケンスを実行するためのハードウェアによって、第2メモリ命令の実行を開始する前に第1メモリ命令の実行完了を必要であることを決定する。
ソフトウェアで処理可能な命令衝突場合、プログラマーが命令シーケンスをプログラミングする場合、ハザード衝突が生じ得ることを既知しているため、プログラマーは命令シーケンスに特定の定義された中止命令を付加して、ソフトウェアにハザード衝突の発生を把握させる。
本開示の実施形態によれば、命令シーケンスに中止命令が含まれるため、命令実行システム100は、中止命令を実行する場合、中止命令の対象とするメモリ命令を、第1メモリ命令として決定することができ、さらに、第2メモリ命令の実行を開始する前に第1メモリ命令の実行完了を必要であることを決定する。本開示の幾つかの実施形態によれば、中止命令は、何かしらのメモリ命令の直後に位置してもよく、それによって、中止命令の前のこのメモリ命令の直前の命令が第1メモリ命令であることを示す。本開示の他方の実施形態によれば、中止命令は、何かしらのメモリ命令の前の直前に位置してもよく、それによって中止命令の後ろのこのメモリ命令の直後の命令が第1メモリ命令であることを示す。この場合、ソフトウェアによって、第2メモリ命令の実行を開始する前に第1メモリ命令の実行完了を必要であることを決定する。本開示の実施形態によれば、ソフトウェアで処理するハザード衝突は、例えば異なるサブシステムの間のハザード衝突を含み、例えば、スカラモジュール131、ベクトルモジュール132、及びグローバルメモリモジュール133の間のハザード衝突が挙げられる。ソフトウェアで処理するハザード衝突は、メモリ命令に対する記憶操作粒度が複数のメモリ行の大きさの操作を含んでもよく、例えばグローバルメモリモジュール133内部のグローバルメモリのロードとグローバルメモリの記憶との間のハザード衝突が挙げられる。
ブロック206において、命令実行システム100は、第1メモリ命令を実行する周期期間で、第2メモリ命令を実行せずに、第1メモリ命令と第2メモリ命令との間の非メモリ命令を実行する。
ブロック202、204及び206における操作によって、ハザード衝突を効率よく発見することができ、ハザード衝突がある場合、ハザード衝突を招くメモリ命令を実行せず、大量の非メモリ命令を実行する。それによって、ハザード衝突の処理効率、及び命令シーケンスの処理効率を向上させることができる。
方法200は、図2に点線ブロックで示される選択可能なブロック208を含んでもよい。選択可能なブロック28において、命令実行システム100は、第1メモリ命令の実行完了に応じて、第2メモリ命令の実行を開始する。
定義されたfence命令を、本開示の実施形態における中止命令とすることを例として本開示の実施形態における中止命令の操作を説明する。
例えば、命令シーケンスは、gm2lm→fence→add、r0、r1、r2→load r3、lm→add、r0、r1、r2→……である。この命令シーケンスにおいて、gm2lmは第1メモリ命令であり、loadは第2メモリ命令であり、fenceは中止命令である。fence命令まで実行される場合、ソフトウェアは、gm2lmが第1メモリ命令であり、loadの実行開始前にgm2lmの実行を完了させる必要があることを知る。従来のプロセッサ処理によれば、この場合、fenceの後ろのすべでの命令の実行を停止する。それに対して、本開示の実施形態におけるこの例において、fence命令とload命令との間のadd、r0、r1、r2命令が依然として正常に実行する。gm2lm命令が実行完了後に、ソフトウェアは、load命令を実行するようにハードウェアに通知する。
上記の図1〜図2を参照して、それらにおいて本開示の幾つかの例示的な実施形態における命令実行方法を実現することができる命令実行システム100、及び本開示の実施形態における命令実行方法200に関する内容を記載している。なお、上記の記載は、本開示に記載されている内容をよりよく説明するためのものであり、いかなる制限をかける目的ではない。
なお、本開示の上記の各図面に使用される各コンポーネントの数と物理量の大きさは、単なる例であり、本開示の保護範囲を制限するわけではない。上記の数及び大きさは、都合によって任意設定することができ、本開示の実施形態の実施に影響を及ぼすことがない。
図1〜図2において本開示の実施形態における命令実行方法の細部を説明している。下記において、図3を参照して、命令の実行装置内の各モジュールを説明する。
図3は、本開示実施形態における命令の実行装置300を示すブロック図である。図3に示すように、命令の実行装置300は、命令シーケンスを実行するように構成され、前記命令シーケンスはメモリ命令と非メモリ命令とを含み、前記シーケンス内の命令を実行することは順序に従って実行を開始することである命令シーケンス実行モジュール310と、第2メモリ命令の実行を開始する前に第1メモリ命令の実行完了を必要であることを決定するように構成され、前記第2メモリ命令は、前記命令シーケンス内の前記第1メモリ命令の後にある、次のメモリ命令である実行決定モジュール320と、前記第1メモリ命令を実行する周期期間において、前記第2メモリ命令を実行せずに、前記第1メモリ命令と前記第2メモリ命令の間の非メモリ命令を実行するように構成される非メモリ命令実行モジュール330とを含む。
幾つかの実施形態において、ここで、前記実行決定モジュール320は、第1メモリ命令を実行する場合、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定するように構成される第1実行決定モジュール(図示せず)、を含む。
幾つかの実施形態において、ここで、前記実行決定モジュール320は、前記第1メモリ命令と前記第2メモリ命令のタイプに基づいて、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定するように構成される第2実行決定モジュール(図示せず)と、を含む。
幾つかの実施形態において、ここで、前記第2実行決定モジュールは、前記命令シーケンスを実行するためのハードウェアによって、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定するように構成される。
幾つかの実施形態において、ここで、前記命令シーケンスに中止命令が含まれ、前記実行決定モジュール320は、前記中止命令を実行する場合、前記中止命令の対応するメモリ命令を前記第1メモリ命令として決定するように構成される第1メモリ命令決定モジュール(図示せず)と、及び前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定するように構成される第3実行決定モジュール(図示せず)と、を含む。
幾つかの実施形態において、ここで、前記第3実行決定モジュールは、ソフトウェアによって、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定するように構成される。
幾つかの実施形態において、命令の実行装置300は、選択可能な第2メモリ命令実行モジュール340(図3に点線ブロックで示される)をさらに含み、第2メモリ命令実行モジュール340が、前記第1メモリ命令の前記実行が完了することに応じて、前記第2メモリ命令の実行を開始するように構成される。
本開示の実施形態によれば、本開示は、電子デバイスとコンピュータ可読記憶媒体を含む。
上記の図1〜図3を参照して、本開示の実施形態における技術案は、従来技術より幾つかのメリットがある。例えば、上記の技術案によって、メモリ命令のハザード衝突を処理する場合、ハザード衝突を生じる二つのメモリ命令の間の大量の非メモリ命令を依然として実行することができ、それによってプロセッサ全体性能を向上させると共に、プログラミングの正確性を保証して使い勝手を向上させることができ、さらにユーザがプロセッサを使用して命令を実行する効率、及びユーザ体験を向上させるために有利であり、人工知能のプロセッサの普及に有益である。さらに、上記の技術案によって、ハードウェアだけに頼らずに、ハードウェアとソフトウェアがメモリ命令のハザード衝突を協働して処理し、そのため、メモリ命令のハザード衝突の処理効率をさらに向上させることができる。
図4は、本開示の実施形態における電子デバイス400を示すブロック図である。例えば、図1に示される命令実行システム100と図3に示される命令の実行装置300は、電子デバイス400によって実施することができる。電子デバイス400は、各形式のデジタルコンピュータを指し、例えば、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、個人デジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及びその他の適合するコンピュータが挙げられる。電子デバイス400は、各形式の移動装置をさらに指し、例えば、個人デジタルアシスタント、セルラー電話、スマートフォン、ウェアラブルデバイス、及びその他の類似のコンピュータ装置が挙げられる。本出願に記載されているコンポーネント、それらの接続関係、及び機能は例示的なものに過ぎず、本開示に記載・特定されているものの実現を限定するわけではない。
如図4に示すように、当該電子デバイス400は、1つ又は複数のプロセッサ401、メモリ402、及び各部品を接続するためのインターフェースを含み、高速インターフェースと低速インターフェースを含む。各部品が異なるバスによって接続され、共通マザーボードに装着することができ、又は必要に応じて他の方式で装着することもできる。プロセッサは、電子デバイス400で実行する命令を実行することができ、メモリに記憶される命令、又は外部入力/出力装置(例えば、インターフェースにカップリングする表示デバイス)に記憶され、GUIに表示するグラフィック情報の命令を含む。その他の実施形態において、必要があれば、複数のプロセッサ及び/又は複数のバス及び複数のメモリを一緒に使用することができる。同様に、複数の電子デバイス400を接続することができ、各デバイスが各自の必要な操作を提供する(例えば、サーバアレイとしての1グループのブレードサーバ、又は、複数のプロセッサシステム)。図4では1つのプロセッサ401を例としている。
メモリ402は、本開示に提供される非一時的なコンピュータ可読記憶媒体である。ここで、当該メモリに少なくとも1つのプロセッサで実行する命令が記憶され、当該少なくとも1つのプロセッサに、本開示に提供される命令実行方法を実行させる。本開示の非一時的なコンピュータ可読記憶媒体にコンピュータ命令が記憶され、当該コンピュータ命令は、コンピュータに本開示に提供される命令実行方法を実行させる。
メモリ402は、コンピュータ可読非一時的記憶媒体として、非一時的ソフトウェアプログラムを記憶するためのものであってもよく、非一時的コンピュータは、プログラム、及びモジュールを実行することができ、例えば、本開示の実施形態における命令実行方法に対応するプログラム命令/モジュール(例えば、図3に示される命令シーケンス実行モジュール310、実行決定モジュール320、及び非メモリ命令実行モジュール330)を実行することができる。プロセッサ401は、メモリ402に記憶されている非一時的ソフトウェアプログラム、命令及びモジュールを実行することによって、サーバの各機能及びデータ処理を実行し、即ち、上記の方法実施形態における命令実行方法を実現する。
メモリ402は、プログラム記憶領域とデータ記憶領域を含み、ここで、プログラム記憶領域に、オペレーションシステム、少なくとも1つの機能に必要なアプリケーションプログラムが記憶され得、データ記憶領域に、命令実行方法による電子デバイスの使用によって生成されるデータ等が記憶され得る。また、メモリ402は、高速ランダムアクセスメモリを含み得、非一時的メモリも含み得、例えば、少なくとも1つのディスク記憶素子、フラッシュ素子、又はその他の非一時的固体メモリ素子を含む。幾つかの実施形態において、メモリ402はプロセッサ401から遠隔に設置されるメモリを選択的に含み、これらの遠隔メモリは、ネットワークによって、命令実行方法を実行する電子デバイス400に接続されることができる。上記のネットワークは、インターネット、イントラネット、ローカルエリアネットワーク、移動通信ネットワーク及びそれらの組み合わせを例として含むが、それらを限定しない。
命令実行方法を実行する電子デバイスは、入力装置403及び出力装置404をさらに含み得る。プロセッサ401、メモリ402、入力装置403、及び出力装置404は、バス又は他の方式で接続されることができ、図4ではバスによる接続を例としている。
入力装置403は入力された数字又は文字情報を受け取ることができ、命令実行方法を実行する電子デバイス400のユーザ設定及び機能制御に関連するキーボード信号入力を生成し、例えば、タッチスクリーン、テンキー、マウス、トラックプレート、タッチタブレット、インジケーター、1つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置が挙げられる。出力装置404は、表示用デバイス、照明補助装置(例えば、LED)及び触覚型フィードバック装置(例えば、振動モーター)等を含み得る。当該表示用デバイスは、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、及びプラズマディスプレイを含むが、それらを限定しない。幾つかの実施形態において、表示用デバイスは、タッチスクリーンであってもよい。
ここで記載されているシステムと技術に関する各実施形態は、デジタル電子回路システム、集積回路システム、専用ASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はこれらの組み合わせによって実現されることができる。これらの各実施形態は、1つ又は複数のコンピュータプログラムで実施することを含み得、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラミング可能なプロセッサを含むプログラミング可能なシステムにおいて、実行及び/又は解釈することができ、当該プログラミング可能なプロセッサは、専用又は汎用プログラミング可能なプロセッサであってもよく、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置から、データと命令を受け取ることができ、データと命令を当該記憶システム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも称する)はプログラミング可能なプロセッサの機械命令を含み、高級プロシージャ及び/又はオブジェクト指向のプログラム言語、及び/又はアセンブラ/機械語を利用してこれらのコンピュータプログラムを実施する。例えば、本出願に使用される、用語「機械での可読媒体」と「コンピュータ可読媒体」は、機械命令及び/又はデータをプログラミング可能なプロセッサに提供するためのコンピュータプログラム製品、デバイス、及び/又は装置(例えば、ディスク、コンパクトディスク、メモリ、プログラミング可能なロジック装置(PLD))を指しており、機械可読信号として機械命令を受け取る機械可読媒体を含む。用語「機械可読信号」は、機械命令及び/又はデータをプログラミング可能なプロセッサに提供するためのいかなる信号を指している。
ユーザとのインタラクションを提供するために、コンピュータでここに記載されているシステムと技術を実施することができ、当該コンピュータは、ユーザに情報を表示するための表示用装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニター)、及びキーボードとポインティングデバイス(例えば、マウス又はトラックボール)を備え、ユーザは、当該キーボードと当該ポインティングデバイスによって、入力をコンピュータに提供することができる。他の種類の装置は、ユーザとのインタラクションを提供するために用いられることができ、例えば、ユーザに提供するフィードバックは、いかなる形式のセンサーフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、いかなる形式(音入力、音声入力、又は触覚入力)によって、ユーザからの入力を受け取ることができる。
ここに記載されているシステムと技術を、バックグラウンド部品に含まれる計算システム(例えば、データサーバとして)、又はミドルウェア部品を含む計算システム(例えば、アプリケーションサーバ)、又はフロント部品を含む計算システム(例えば、GUI又はネットワークブラウザを有するユーザコンピュータが挙げられ、ユーザがGUI又は当該ネットワークブラウザによって、ここに記載されているシステムと技術の実施形態とインタラクションすることができる)、又はこのようなバックグラウンド部品、ミドルウェア部品、又はフロント部品のいかなる組合した計算システムで実施することができる。如何なる形式又はメディアのデジタルデータ通信(例えば、通信ネットワーク)を介して、システムの部品を互いに接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及びインターネットを含む。
コンピュータシステムは、クライアントとサーバを含み得る。通常、クライアントとサーバは、互いに離れており、通信ネットワークを介してインタラクションを行うことが一般的である。対応するコンピュータで動作することで、クライアント−サーバの関係を有するコンピュータプログラムによってクライアントとサーバの関係を生み出す。
本開示実施形態の技術案によれば、メモリ命令と非メモリ命令とを含む命令シーケンスを順に実行する場合、隣接のメモリ命令の間にハザード衝突がある場合、ハードウェアとソフトウェアとの協働によって、ハザード衝突が生じる二つのメモリ命令の間の大量の非メモリ命令を実行し続けることができる。それによってプロセッサの全体性能(処理速度及び命令の実行効率)を向上させると共に、プログラミングの正確性を保証して使い勝手を向上し、ユーザがプロセッサで命令を実行する効率、及びユーザ体験を向上させるために有利であり、しかも人工知能のプロセッサの普及に有益である。
理解すべきこととして、上記に記載されている各形式のプロセスを利用して、ステップを再度順序付け、追加又は削除することができる。本開示に開示されている技術案の期待結果を実現することさえできれば、例えば、本開示に記載されている各ステップは、平行して実行してもよく、順序付けて実行してもよく、ランダム的に実行してもよく、本開示は、其れを限定しない。
上記の具体的な実施形態は、本開示の保護範囲に対する制限にならない。当業者が、設計要件と他の要因に基づいて、改修、組合、サブ組合、代替を行うことができることは明らかである。本開示の思想と原則内での如何なる変更、等価の入れ替え及び改善等は、いずれも本発明の保護の範囲内に含まれるべきである。

Claims (17)

  1. 命令実行方法であって
    メモリ命令及び非メモリ命令を含む命令シーケンスを順次実行することと、
    前記命令シーケンス内の第1メモリ命令の後にある、次のメモリ命令である第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定することと、
    前記第1メモリ命令を実行する周期期間において、前記第2メモリ命令を実行せずに、前記第1メモリ命令と前記第2メモリ命令の間の非メモリ命令を実行することと、を含む、
    命令実行方法。
  2. 前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定することは、
    第1メモリ命令を実行するとき、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定することを含む、
    請求項1に記載の命令実行方法。
  3. 前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定することは、
    前記第1メモリ命令と前記第2メモリ命令のタイプに基づいて、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定することを含む、
    請求項1に記載の命令実行方法。
  4. 前記命令シーケンスを実行するためのハードウェアによって、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定する、
    請求項3に記載の命令実行方法。
  5. 前記命令シーケンスには、中止命令が含まれており、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定することは、
    前記中止命令を実行するとき、前記中止命令の対応するメモリ命令を前記第1メモリ命令として決定することと、
    前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定することを含む、
    請求項1に記載の命令実行方法。
  6. ソフトウェアによって、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定する、
    請求項5に記載の命令実行方法。
  7. 前記第1メモリ命令の前記実行完了に応じて、前記第2メモリ命令の実行を開始する、
    請求項1に記載の命令実行方法。
  8. 命令の実行装置であって、
    メモリ命令及び非メモリ命令を含む命令シーケンスを順次実行するように構成される命令シーケンス実行モジュールと、
    前記命令シーケンス内の第1メモリ命令の後にある、次のメモリ命令である第2メモリ命令の実行を開始する前に、前記第1メモリ命令の実行完了を必要であることを決定するように構成される実行決定モジュールと、
    前記第1メモリ命令を実行する周期期間において、前記第2メモリ命令を実行せずに、前記第1メモリ命令と前記第2メモリ命令の間の非メモリ命令を実行するように構成される非メモリ命令実行モジュールと、を備える、
    命令の実行装置。
  9. 前記実行決定モジュールは、
    第1メモリ命令を実行するとき、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定するように構成される第1実行決定モジュールを備える、
    請求項8に記載の命令の実行装置。
  10. 前記実行決定モジュールは、
    前記第1メモリ命令と前記第2メモリ命令のタイプに基づいて、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定するように構成される第2実行決定モジュールを備える、
    請求項8に記載の命令の実行装置。
  11. 前記第2実行決定モジュールは、前記命令シーケンスを実行するためのハードウェアによって、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定するように構成される、
    請求項10に記載の命令の実行装置。
  12. 前記命令シーケンスには、中止命令が含まれており、前記実行決定モジュールは、
    前記中止命令を実行するとき、前記中止命令の対応するメモリ命令を前記第1メモリ命令として決定するように構成される第1メモリ命令決定モジュールと、
    前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定するように構成される第3実行決定モジュールと、を備える、
    請求項8に記載の命令の実行装置。
  13. 前記第3実行決定モジュールは、ソフトウェアによって、前記第2メモリ命令の実行を開始する前に前記第1メモリ命令の実行完了を必要であることを決定するように構成される、
    請求項12に記載の命令の実行装置。
  14. 前記第1メモリ命令の前記実行完了に応じて、前記第2メモリ命令の実行を開始するように構成される第2メモリ命令実行モジュールをさらに備える、
    請求項8に記載の命令の実行装置。
  15. 電子デバイスであって、
    少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサに通信接続されるメモリと、を備え、
    前記メモリには、前記少なくとも1つのプロセッサにより実行可能な命令が記憶されており、前記命令は、前記少なくとも1つのプロセッサにより実行されると、前記少なくとも1つのプロセッサに、請求項1〜7のいずれか一項に記載の命令実行方法を実行させる、
    電子デバイス。
  16. コンピュータに請求項1〜7のいずれか一項に記載の命令実行方法を実行させるコンピュータ命令を記憶するための非一時的なコンピュータ可読記憶媒体。
  17. コンピュータにおいて、プロセッサにより実行されると、請求項1〜7のいずれか一項に記載の命令実行方法を実現することを特徴とするプログラム。
JP2021089687A 2020-07-20 2021-05-28 命令実行方法、装置、電子デバイス、コンピュータ可読記憶媒体、及びプログラム Active JP7419293B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010699439.3 2020-07-20
CN202010699439.3A CN111857825A (zh) 2020-07-20 2020-07-20 指令执行方法、装置、电子设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
JP2021144730A true JP2021144730A (ja) 2021-09-24
JP7419293B2 JP7419293B2 (ja) 2024-01-22

Family

ID=73000630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021089687A Active JP7419293B2 (ja) 2020-07-20 2021-05-28 命令実行方法、装置、電子デバイス、コンピュータ可読記憶媒体、及びプログラム

Country Status (5)

Country Link
US (1) US11748108B2 (ja)
EP (1) EP3819758A3 (ja)
JP (1) JP7419293B2 (ja)
KR (1) KR102543951B1 (ja)
CN (1) CN111857825A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225477A (zh) * 2022-07-19 2022-10-21 北京天融信网络安全技术有限公司 机框式设备的配置维护方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009119021A1 (ja) * 2008-03-28 2009-10-01 パナソニック株式会社 命令実行制御方法、命令フォーマット、及びプロセッサ
US20140215190A1 (en) * 2013-01-25 2014-07-31 Apple Inc. Completing load and store instructions in a weakly-ordered memory model
US20180188997A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Memory ordering in acceleration hardware

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302200A (ja) 1994-04-28 1995-11-14 Hewlett Packard Co <Hp> 順次付けロード動作および順序付け記憶動作を強制する命令を有するコンピュータのロード命令方法。
US5659721A (en) 1995-02-14 1997-08-19 Hal Computer Systems, Inc. Processor structure and method for checkpointing instructions to maintain precise state
US6463522B1 (en) * 1997-12-16 2002-10-08 Intel Corporation Memory system for ordering load and store instructions in a processor that performs multithread execution
US6871273B1 (en) * 2000-06-22 2005-03-22 International Business Machines Corporation Processor and method of executing a load instruction that dynamically bifurcate a load instruction into separately executable prefetch and register operations
JP2002251283A (ja) 2001-02-22 2002-09-06 Mitsubishi Electric Corp メモリ管理機構及びメモリ管理方法
CN101770357B (zh) 2008-12-31 2014-10-22 世意法(北京)半导体研发有限责任公司 减少处理器中的指令冲突
CN102420820B (zh) 2011-11-28 2016-06-08 杭州华三通信技术有限公司 一种集群系统中的隔离方法和装置
CN102799418B (zh) * 2012-08-07 2014-10-08 清华大学 融合了顺序和vliw的处理器体系结构及指令执行方法
US10073784B2 (en) * 2014-06-27 2018-09-11 International Business Machines Corporation Memory performance when speculation control is enabled, and instruction therefor
US9658961B2 (en) * 2014-06-27 2017-05-23 International Business Machines Corporation Speculation control for improving transaction success rate, and instruction therefor
US10489158B2 (en) 2014-09-26 2019-11-26 Intel Corporation Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores
US10474467B2 (en) * 2015-08-12 2019-11-12 International Business Machines Corporation Processor instruction sequence translation
CN107786374B (zh) 2017-10-19 2021-02-05 苏州浪潮智能科技有限公司 一种Oracle集群文件系统及其实现fence的方法
US11175916B2 (en) 2017-12-19 2021-11-16 Advanced Micro Devices, Inc. System and method for a lightweight fencing operation
US10866805B2 (en) 2018-01-03 2020-12-15 Arm Limited Speculation barrier instruction
CN108984319B (zh) 2018-06-25 2021-10-15 广州视源电子科技股份有限公司 解决操作指令冲突的方法、装置、计算机设备和存储介质
CN109450670B (zh) 2018-10-19 2022-04-01 杭州东方通信软件技术有限公司 一种人工智能模式下的指令冲突判断方法及其系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009119021A1 (ja) * 2008-03-28 2009-10-01 パナソニック株式会社 命令実行制御方法、命令フォーマット、及びプロセッサ
US20140215190A1 (en) * 2013-01-25 2014-07-31 Apple Inc. Completing load and store instructions in a weakly-ordered memory model
US20180188997A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Memory ordering in acceleration hardware

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
池井 満, IA−64プロセッサ基本講座, vol. 第1版, JPN6022024910, 25 August 2000 (2000-08-25), pages 77 - 79, ISSN: 0004952940 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225477A (zh) * 2022-07-19 2022-10-21 北京天融信网络安全技术有限公司 机框式设备的配置维护方法、装置、电子设备和存储介质
CN115225477B (zh) * 2022-07-19 2023-12-01 北京天融信网络安全技术有限公司 机框式设备的配置维护方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
EP3819758A3 (en) 2021-11-03
KR20210049725A (ko) 2021-05-06
EP3819758A2 (en) 2021-05-12
CN111857825A (zh) 2020-10-30
KR102543951B1 (ko) 2023-06-14
US20210271482A1 (en) 2021-09-02
JP7419293B2 (ja) 2024-01-22
US11748108B2 (en) 2023-09-05

Similar Documents

Publication Publication Date Title
US9977663B2 (en) Technologies for optimizing sparse matrix code with field-programmable gate arrays
JP7282823B2 (ja) メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム
US8938712B2 (en) Cross-platform virtual machine and method
US10223094B2 (en) Initializing a system on a chip
JP7170094B2 (ja) オペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム
KR20210092689A (ko) 그래프 데이터베이스의 순회 방법, 장치, 설비 및 저장매체
US11784946B2 (en) Method for improving data flow and access for a neural network processor
JP7419293B2 (ja) 命令実行方法、装置、電子デバイス、コンピュータ可読記憶媒体、及びプログラム
CN113204412A (zh) 用于任务调度的方法、电子设备和计算机存储介质
US20220075639A1 (en) Executing an application with multiple processors
JP6293910B2 (ja) 動的言語でのインラインキャッシュのためのハードウェアアクセラレーション
JP2017509950A (ja) 動的言語でのインラインキャッシュのためのハードウェアアクセラレーション
JP7265618B2 (ja) 深層学習トレーニングタスクに向けたプロセッサメモリを最適化するための方法及び装置
CN111273934B (zh) 页面更新的方法及装置
US9710235B2 (en) Generating software code
US9489246B2 (en) Method and device for determining parallelism of tasks of a program
CN111813407A (zh) 游戏开发方法、游戏运行方法、装置和电子设备
CN110851187B (zh) 显存处理方法、装置、设备和介质
CN110879744B (zh) 利用多线程执行计算图的方法和系统
JP7393404B2 (ja) コンパイル方法、コンパイル装置、電子デバイス、記憶媒体及びプログラム
CN117255100A (zh) 一种数据同步方法、装置、电子设备及可读存储介质
JP2021157805A (ja) テキスト予測方法、装置、機器及び記憶媒体
CN104331302A (zh) 一种应用更新方法、移动终端和通信系统
CN117827693A (zh) 可编程逻辑控制器地址的批量访问方法及装置
JP2012113518A (ja) コンパイラ装置、コード生成方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210528

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20211018

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20220201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220914

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221226

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20230414

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240110

R150 Certificate of patent or registration of utility model

Ref document number: 7419293

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150