JP7262520B2 - 命令を実行するための方法、装置、機器及びコンピュータ読み取り可能な記憶媒体 - Google Patents

命令を実行するための方法、装置、機器及びコンピュータ読み取り可能な記憶媒体 Download PDF

Info

Publication number
JP7262520B2
JP7262520B2 JP2021106589A JP2021106589A JP7262520B2 JP 7262520 B2 JP7262520 B2 JP 7262520B2 JP 2021106589 A JP2021106589 A JP 2021106589A JP 2021106589 A JP2021106589 A JP 2021106589A JP 7262520 B2 JP7262520 B2 JP 7262520B2
Authority
JP
Japan
Prior art keywords
address space
memory access
instruction
access instruction
memory
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.)
Active
Application number
JP2021106589A
Other languages
English (en)
Other versions
JP2021157843A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Kunlunxin Technology Beijing Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Kunlunxin Technology Beijing 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, Kunlunxin Technology Beijing Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021157843A publication Critical patent/JP2021157843A/ja
Application granted granted Critical
Publication of JP7262520B2 publication Critical patent/JP7262520B2/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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

本開示は、コンピュータ技術分野に関し、より具体的には、チップ及び人工知能分野の、命令を実行するための方法、装置、機器及びコンピュータ読み取り可能な記憶媒体に関する。
科学技術の不断な発展に伴い、プロセッサの機能は、ますます強くなってきている。これにより、科学技術業界での地位もますます重要になってきている。現在、プロセッサは、元のシングルコアからマルチコアに発展しており、その結果、プロセッサの処理効率が大幅に向上した。
また、人工知能(Artificial Intelligence、AI)技術の活発な発展に伴い、AIプロセッサの急速な発展も発展している。現在のプロセッサの計算速度は、非常に速く、メモリの読み取り及び書き込み効率を超え上回っている。したがって、プロセッサとメモリとがデータのインタラクションを行うプロセスでは、多くの解決すべき問題がまだ存在している。
プロセッサ技術の発展に伴い、現在のプロセッサの計算速度は、メモリの読み取り及び書き込み速度を上回っている。プロセッサが命令を実行するプロセスでは、プロセッサは、メモリからデータを取得することを待つことがよくある。特に、AIプロセッサでは、計算の複雑さは高くないが、処理するデータの量は非常に大きい。したがって、メモリ内のデータの伝送効率は、データ処理のボトルネックになっている。プロセッサ内部のコアの数が増える場合、この状況は、さらに深刻になる。
プロセッサがメモリにアクセスする場合、メモリにアクセスする複数の命令のそれぞれの実行時間の遅延が異なるため、そのメモリに対して実際に開始した動作は期待に応えられなくなる。この状況を回避するために、通常、メモリにアクセスする各命令の間に、メモリへのアクセスを管理するための命令(例えばフェンス(mfence)命令などが挿入される。例えば、mfence命令で各命令を隔てるため、前のメモリアクセス命令が実行され終わった場合にのみ次の命令を引き続き読み取る。しかし、このようにすることで、プロセッサの実行時間が増加し、プロセッサの効率が低下する。
上記の問題を解決するために、1つの解決策は、mfence命令を制限することである。次の命令がメモリアクセス命令ではないと判断されると、命令を正常に読み取り、次の命令がメモリアクセス命令であると判断された場合にのみプロセッサがブロックされる。しかしながら、このようにすることで、非メモリアクセス命令が実行されるようになるが、後続のメモリアクセス命令は、前のメモリアクセス命令が実行され終わるまで待機してから実行される必要があるため、プロセッサとメモリとの間のデータ処理効率は依然として低い。
上記の問題を少なくとも解決するために、本開示は、命令を実行するための方法、装置、機器及びコンピュータ読み取り可能な記憶媒体を提供し、メモリアクセス命令が占める必要のあるアドレスセグメントを動的に監視し、メモリアクセス制御命令がブロックされるとの判断を細かくし、不要なプロセッサ待機時間遅延を減らし、プロセッサの性能を向上させることができる。
第1の態様では、本開示の実施例は、実行のために第1のメモリアクセス命令を取得するステップであって、第1のメモリアクセス命令は、アクセスされるメモリの第1のアドレス間を含むステップと、メモリ内のアクセスされるアドレス間を監視するための所定の命令が検出されたことに応答して、所定の命令を実行して、第1のメモリアクセス命令によってアクセスされていない第1のアドレス間内の残りのアドレス間を取得するステップと、残りのアドレス間を、実行される第2のメモリアクセス命令に含まれる第2のアドレス間と比較するステップと、残りのアドレス間と第2のアドレス間とが少なくとも部分的にオーバーラップしていることに応答して、第2のメモリアクセス命令の実行を一時停止するステップをさらに含む、命令を実行するための方法を提供する。
第2の態様では、本開示の実施例は、実行のために第1のメモリアクセス命令を取得するように構成され、第1のメモリアクセス命令は、アクセスされるメモリの第1のアドレス間を含む取得モジュールと、メモリ内のアクセスされるアドレス間を監視するための所定の命令が検出されたことに応答して、所定の命令を実行して、第1のメモリアクセス命令によってアクセスされていない前記第1のアドレス間内の残りのアドレス間を取得するように構成される第1の実行モジュールと、残りのアドレス間を、実行される第2のメモリアクセス命令に含まれる第2のアドレス間と比較するように比較モジュールと、残りのアドレス間と第2のアドレス間とが少なくとも部分的にオーバーラップしていることに応答して、第2のメモリアクセス命令の実行を一時停止するように構成される一時停止モジュールとを含む、命令を実行するための装置を提供する。
第3の態様では、本開示の実施例は、少なくとも1つのプロセッサと、少なくともつのプロセッサに通信可能に接続されたメモリとを含み、前記メモリには少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令が少なくとも1つのプロセッサによって実行される場合、少なくとも1つのプロセッサが本開示の第1の態様に記載の方法を実行可能である電子機器を提供する。
第4の態様では、本開示の実施例は、コンピュータに本開示の第1の態様に記載の方法を実行させるためのコンピュータ命令を記憶している非一時的コンピュータ読み取り可能な記憶媒体を提供する。
第5の態様では、本開示の実施例は、コンピュータに本開示の第1の態様に記載の方法を実行させるコンピュータプログラムを提供する。
本出願の技術により、メモリアクセス命令の迅速な処理が図られる。
この発明の概要部分で説明される内容は、本開示の実施例の肝心な特徴又は重要な特徴を特定することを意図しておらず、本開示の範囲を限定することも意図していないを理解すべきである。本開示の他の特徴は、以下の説明により理解されやすくなる。
図面は、この解決手段をよりよく理解するために使用され、本出願を限定するものではない。
開示の複数の実施例を実現可能な環境100を示す概略図である。 開示のいくつかの実施例による記憶装置に記憶されたアドレス間の構成200を示す概略図である。 開示のいくつかの実施例による命令を実行するための方法300のフローチャートである。 開示のいくつかの実施例によるアドレス間の一例400を示す概略図である。 開示のいくつかの実施例による命令を実行するための装置500のブロック図である。 開示の複数の実施例を実施可能な電子機器600のブロック図である。
以下に図面を参照して本出願の例示的な実施例を説明し、理解を容易にするために、その中には本出願の実施例の様々な詳細が含まれており、それらは単なる例示するものとみなされるべきである。したがって、当業者は、本出願の範囲及び精神から逸脱することなく、ここで説明される実施例に対して様々な変更と修正を行うことができることを理解すべきである。同様に、明確及び簡潔するために、以下の説明では、周知の機能及び構成についての説明を省略する。
本開示の実施例の説明では、用語「含む」及びそれと類似する用語がオープンな包含、即ち「含むがこれに限定されない」と理解されるべきである。用語「基づく」が「少なくとも部分的に基づく」として理解されるべきである。用語「一実施例」又は「この実施例」は「少なくとも一つの実施例」として理解されるべきである。用語「第1」、[第2]などは異なるオブジェクト又は同じオブジェクトを指すことができる。以下に他の明示的及び暗黙的な定義を含む可能性がある。
プロセッサ技術の発展に伴い、現在のプロセッサの計算速度は、メモリの読み取り及び書き込み速度を上回っている。プロセッサが命令を実行するプロセスでは、プロセッサは、メモリからデータを取得することを待つことがよくある。特に、AIプロセッサでは、計算の複雑さは高くないが、処理するデータの量は非常に大きい。したがって、メモリ内のデータの伝送効率は、データ処理のボトルネックになっている。プロセッサ内部のコアの数が増える場合、この状況は、さらに深刻になる。
プロセッサがメモリにアクセスする場合、メモリにアクセスする複数の命令のそれぞれの実行時間の遅延が異なるため、そのメモリに対して実際に開始した動作は期待に応えられなくなる。この状況を回避するために、通常、メモリにアクセスする各命令の間に、メモリへのアクセスを管理するための命令(例えばフェンス(mfence)命令などが挿入される。例えば、mfence命令で各命令を隔てるため、前のメモリアクセス命令が実行され終わた場合にのみ次の命令を引き続き読み取る。しかし、このようにすることで、プロセッサの実行時間が増加し、プロセッサの効率が低下する。
上記の問題を解決するために、1つの解決策は、mfence命令を制限することである。次の命令がメモリアクセス命令ではないと判断されると、命令を正常に読み取り、次の命令がメモリアクセス命令であると判断された場合にのみプロセッサがブロックされる。しかしながら、このようにすることで、非メモリアクセス命令が実行されるようになるが、後続のメモリアクセス命令は、前のメモリアクセス命令が実行され終わるまで待機してから実行される必要があるため、プロセッサとメモリとの間のデータ処理効率は依然として低い。
上記の問題を少なくとも解決するために、本開示の実施例は、命令を実行するための改良された解決策を提案する。この解決策では、コンピューティングデバイスは、実行のために第1のメモリアクセス命令を取得し、第1のメモリアクセス命令は、アクセスされるメモリの第1のアドレス間を含む。メモリ内のアクセスされるアドレス間を監視するための所定の命令が検出された場合、コンピューティングデバイスは、所定の命令を実行して、第1のメモリアクセス命令によってアクセスされていない第1のアドレス間内の残りのアドレス間を取得する。次に、コンピューティングデバイスは、残りのアドレス間を、実行される第2のメモリアクセス命令に含まれる第2のアドレス間と比較する。残りのアドレス間と第2のアドレス間とが少なくとも部分的にオーバーラップしている場合、コンピューティングデバイスは、第2のメモリアクセス命令の実行を一時停止する。この方法により、メモリアクセス命令が占める必要のあるアドレスセグメントを動的に監視し、メモリアクセス制御命令がブロックされるとの判断を細かくし、不要なプロセッサ待機時間遅延を減らし、プロセッサの性能を向上させることができる。
図1は、本開示の複数の実施例を実現可能な環境100を示す概略図である。図1に示すように、環境100は、コンピューティングデバイス102を含む。コンピューティングデバイス102は、プログラム命令を実行するために使用され得る。
コンピューティングデバイス102は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、モバイルデバイス(携帯電話、パーソナルデジタルアシスタント(PDA)、メディアプレーヤーなど)、マルチプロセッサシステム、家庭用電化製品、小型コンピュータ、小型コンピュータ、上記のシステム又はデバイスのいずれか1つを含む分散型コンピューティング環境などを含むがこれらに限定さない。
コンピューティングデバイス102は、プロセッサ104とメモリ106とを含む。プロセッサ104は、様々なプログラムを実行することができ、かつメモリ106へのアクセスを制御することができる。
プロセッサ104は、ハードウェア中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブルロジックデバイス(CPLD)、特定用途向け集積回路(ASIC)、システムオンチップ(SoC)又はこれらの組み合わせを含むがこれらに限定されないハードウェアプロセッサを含むことができる。
図1に示すように、メモリ106にはプログラムセグメント108がある。このプログラムセグメント108には、メモリアクセス命令110、所定の命令112及びメモリアクセス命令114を含む、プロセッサ104によって実行可能なプログラム命令が記憶されている。
説明の便宜上、メモリアクセス命令110は、第1のメモリアクセス命令と呼ばれてもよく、メモリアクセス命令114は、第2のメモリアクセス命令と呼ばれてもよい。図1に示すプログラムセグメント108が、メモリアクセス命令110、所定の命令112及びメモリアクセス命令114を含むことは、単に一例に過ぎず、他の実施例では、プログラムセグメント108は、任意の数及び任意の適切なタイプの命令を含むことができる。
メモリアクセス命令110及びメモリアクセス命令114は、実行時にメモリ106にアクセスする必要のある命令である。いくつかの実施例では、メモリアクセス命令110及びメモリアクセス命令114には、アクセスされるメモリ106のアドレス間が含まれている。
いくつかの実施例では、メモリアクセス命令110及びメモリアクセス命令114は、メモリ106に対する読み取り命令、書き込み命令、又はメモリ106にアクセスするための他の任意の命令であってもよい。上記の例は、単に本開示を説明するためのものであり、本開示を具体的に限定するものではない。
所定の命令112は、メモリ106内のアクセスされるアドレス間を監視するための命令である。いくつかの実施例では、この所定の命令112は、フェンス(mfence)命令を調整した命令である。この所定の命令112が実行される場合、クロックサイクルごとにレジスタ又はキャッシュメモリをスキャンすることにより、実行中のメモリアクセス命令によってアクセスされていない残りのアドレス間を取得することができる。いくつかの実施例では、この所定の命令112の実行は、それよりも前のメモリアクセス命令の実行が終了するときに停止する。
所定の命令112の実行中に、プロセッサ104がメモリアクセス命令114を取得したときに、メモリアクセス命令114の第2のアドレス間を、取得された残りのアドレス間と比較する。2つのアドレス間がオーバーラップしているか否かを判定することにより、メモリアクセス命令114を実行するか否かを判定する。オーバーラップしている場合、メモリアクセス命令114を一時停止する必要がある。
いくつかの実施例では、所定の命令112の実行中に、記憶された残りのアドレス間は、クロックサイクルごとに更新される。取得された更新された残りのアドレス間と一時停止されたメモリアクセス命令114の第2のアドレス間とがオーバーラップしなくなると、一時停止されたメモリアクセス命令114は、再実行される。上記の例は、単に本開示を説明するためのものであり、本開示を具体的に限定するものではない。
この方法により、メモリアクセス命令が占める必要のあるアドレスセグメントを動的に監視し、メモリアクセス制御命令がブロックされるとの判断を細かくし、不要なプロセッサ待機時間遅延を減らし、プロセッサの性能を向上させることができる。
上記の図1は、本開示の複数の実施例を実現可能な環境100を示す概略図である。以下に図2を参照して、本開示のいくつかの実施例による記憶装置に記憶されたアドレス間の構成200を説明する。図2は、本開示のいくつかの実施例による記憶装置に記憶されたアドレス間の構成200の概略図を示す。
図2では、取得されたメモリアクセス命令に含まれる、アクセスされるアドレス間は、記憶装置202に記憶されている。この記憶装置202は、キャッシュメモリ又はレジスタであってもよい。図2に示すように、実行中の複数のメモリアクセス命令についてのエントリ204-1、204-2、...、204-Nが記憶されており、Nが正の整数である。説明の便宜上、これらをエントリ204と総称する。エントリ204は、フラグビット部分及びアドレス部分を含む。
アドレス部分は、メモリアクセス命令によってアクセスされるアドレス間を記憶するために使用される。フラグビットは、エントリが有効であるか否かを識別するために使用される。
メモリアクセス命令が実行される場合、メモリアクセス命令内のアドレス間は、エントリ204に記憶される。エントリ204にアドレス間が記憶された後、このエントリのフラグビットは、所定の値、例えば1に設定される。メモリアクセス命令によるアドレス間へのアクセスが実行された後、フラグビットは、第2の所定の値、例えば0に設定される。
いくつかの実施例では、メモリアクセス命令が実行されるとき、このメモリアクセス命令に対応するエントリ204内のアドレス部分は、クロックサイクルごとに更新される。その結果、更新されたアドレス部分には、アクセスされていないアドレス間のみが記憶される。所定の命令112が実行されるとき、レジスタ又はキャッシュメモリを定期的にスキャンして、アクセスされていない残りのアドレス間を決定する。
いくつかの実施例では、メモリアクセスが実行されるとき、アクセスされるアドレス間は、エントリ204に記憶される。所定の命令112が検出されかつ所定の命令112が実行される場合、エントリ204内のアドレス部分をアクセスされていない残りのアドレス間に更新し、次にレジスタ又はキャッシュメモリを定期的にスキャンして、アクセスされていない残りのアドレス間を決定する。上記の例は、単に本開示を説明するためのものであり、本開示を具体的に限定するものではない。
上記の図2は、本開示のいくつかの実施例による記憶装置に記憶されたアドレス間の構成200の概略図を示す。以下に図3を参照して本開示の実施形態による命令を実行するための方法300のフローチャートを説明する。方法300は、図1のコンピューティングデバイス102又は他の任意の適切なデバイスによって実現することができる。
ブロック302において、コンピューティングデバイスは、実行のために第1のメモリアクセス命令を取得し、第1のメモリアクセス命令は、アクセスされるメモリの第1のアドレス間を含む。
例えば、図1のコンピューティングデバイス102は、プログラムを実行するときに第1のメモリアクセス命令を取得する。次に、コンピューティングデバイス102は、この第1のメモリアクセス命令を実行する。
いくつかの実施例では、まず、コンピューティングデバイス102は、第1のメモリアクセス命令を受信し、第1のメモリアクセス命令は、アクセスされるアドレス間を含み、説明の便宜上、このアドレス間は、第1のアドレス間とも呼ばれる。この第1のメモリアクセス命令を実行するとき、コンピューティングデバイス102は、第1のアドレス間をレジスタ又はキャッシュメモリに記憶する。一例では、この第1のアドレス間をレジスタに記憶した後、対応するレジスタのフラグビットを所定の値に設定する。一例では、この第1のアドレス間は、キャッシュメモリに記憶される。この第1のアドレス間をキャッシュメモリに記憶した後、対応するフラグビットを設定して、このアドレス間がメモリアクセス命令によってアクセスされるアドレス間であることを識別する。上記の例は、単に本開示を説明するためのものであり、本開示を具体的に限定するものではない。このようにすることで、第1のアドレス間内の残りのアドレス間を速く決定することができる。
ブロック304において、コンピューティングデバイスは、メモリ内のアクセスされるアドレス間を監視するための所定の命令が検出されたか否かを判定する。図1に示すように、コンピューティングデバイス102は、メモリ内のアクセスされるアドレス間を監視するための所定の命令112を検出する。
いくつかの実施例では、メモリ内のアクセスされるアドレス間を監視するための所定の命令112が検出されない場合、後続の命令を取得し続け、そして取得された後続の命令を実行し続ける。このようにすることで、所定の命令112に遭遇しない場合、他の命令を迅速に実行することができる。
メモリ内のアクセスされるアドレス間を監視するための所定の命令112が検出された場合、ブロック306において、コンピューティングデバイスは、所定の命令112を実行して、第1のメモリアクセス命令によってアクセスされていない第1のアドレス間内の残りのアドレス間を取得する。図1に示すように、命令の実行中に所定の命令112、例えば調整されたフェンス命令に遭遇した場合、コンピューティングデバイス102は、この所定の命令112を実行する。このとき、コンピューティングデバイス102は、この所定の命令112よりも前のメモリアクセス命令によってアクセスされていない残りのアドレス間を取得することができる。
いくつかの実施例では、この所定の命令112が検出された場合、コンピューティングデバイス102は、第1のメモリアクセス命令によってアクセスされたアクセス済みアドレス間を決定する。
次に、アクセス済みアドレス間に基づいて残りのアドレス間を決定する。このようにすることで、メモリアクセス命令によってアクセスされていないアドレス間を迅速かつタイムリーに取得することができる。
一例では、第1のメモリアクセス命令が実行されるとき、第1のメモリアクセス命令によってアクセスされる第1のアドレス間は、レジスタ又はキャッシュメモリに書き込まれる。当該所定の命令112が実行されるとき、第1のメモリアクセス命令によってすでにアクセスされたアドレス間を検出し、レジスタ又はキャッシュメモリに記憶された第1のアドレス間から、すでにアクセスされたアドレス間を除去することにより、残りのアドレス間を決定する。次に、レジスタ又はキャッシュメモリ内の第1のアドレス間をアクセスされていない残りのアドレス間に更新する。代替可能に又は追加可能に、クロックサイクルごとに、第1のメモリアクセス命令によってすでにアクセスされたアドレス間に基づいて、アクセスされていない残りのアドレス間を更新する。
いくつかの例では、第1のメモリアクセス命令が実行されるとき、第1のアドレス間を保存する。メモリアクセス命令が実行されるとき、クロックサイクルごとに、この第1のアドレス間を、アクセスされていない残りのアドレス間に定期的に更新する。前記所定の命令112が実行されるとき、このレジスタ又はキャッシュメモリをスキャンして残りのアドレス間を取得する。
いくつかの実施例では、コンピューティングデバイス102は、クロックサイクルごとに残りのアドレス間を取得する。例えば、所定の命令112が実行されるとき、各クロックサイクルが終了するときに、残りのアドレス間を取得する。上記の例は、単に本開示を説明するためのものであり、本開示を具体的に限定するものではない。このようにすることで、正確な残りのアドレス間をタイムリーに取得することができる。
ブロック308において、コンピューティングデバイスは、残りのアドレス間を、実行する第2のメモリアクセス命令に含まれる第2のアドレス間と比較する。ブロック310において、コンピューティングデバイスは、残りのアドレス間と第2のアドレス間とが少なくとも部分的にオーバーラップしているか否かを判定する。
残りのアドレス間と第2のアドレス間とが少なくとも部分的にオーバーラップしているか否かを判定するとき、ブロック312において、コンピューティングデバイスは、第2のメモリアクセス命令の実行を一時停止する。オーバーラップしていると、第1のメモリアクセス命令と第2のメモリアクセス命令とが同じアドレス間にアクセスしたことを示す。データのセキュリティ及び一致性を確保するために、第2のメモリアクセス命令によるメモリへのアクセスを一時停止する必要がある。
以下に図4を参照してオーバーラップの判定プロセスを説明する。図4は、本開示のいくつかの実施例によるアドレス間の一例400の概略図を示す。図4では、アドレス間402は、第1のメモリアクセス命令によってアクセスされる残りのアドレス間である。アドレス間404は、第2のメモリアクセス命令によってアクセスされる第2のアドレス間である。図4に示すように、アドレス間402とアドレス間404とは部分的に同じであり、これは、2つのアドレス間が部分的にオーバーラップしていることを示す。図4は、単にオーバーラップを説明するための一例であり、本開示を具体的に限定するものではない。
図3に戻って説明し続ける。いくつかの実施例では、コンピューティングデバイス102は、残りのアドレス間と第2のアドレス間とのオーバーラップ間が第1のメモリアクセス命令によってアクセスされたか否かを定期的に判定する。例えば、更新された残りのアドレス間をクロックサイクルごとに取得した後、コンピューティングデバイス102は、残りのアドレス間と第2のアドレス間とのオーバーラップ間が第1のメモリアクセス命令によってアクセスされたか否かを判定する。オーバーラップ間が第1のメモリアクセス命令によってアクセスされた場合、コンピューティングデバイス102は、一時停止された第2のメモリアクセス命令実行を再開する。代替可能に又は追加可能に、第2のメモリアクセス命令内の第2のアドレス間は、さらに所定の命令よりも前に実行された他のメモリアクセス命令の残りのアドレス間とオーバーラップしている場合、第2のアドレス間とオーバーラップしているオーバーラップ間がすべてアクセスされるまで待機してから第2のメモリアクセス命令を実行する必要がある。このようにすることで、一時停止された命令をタイムリーに実行することができ、命令処理効率が向上する。
いくつかの実施例では、残りのアドレス間と第2のアドレス間とがオーバーラップしない場合、コンピューティングデバイス102は、第2のメモリアクセス命令を実行する。このようにすることで、オーバーラップしているアドレス間にアクセスしない命令がタイムリーに処理されることを確保することができ、命令処理効率が向上し、命令処理時間が削減される。
この方法により、メモリアクセス命令が占める必要のあるアドレスセグメントを動的に監視し、メモリアクセス制御命令がブロックされるとの判断を細かくし、不要なプロセッサ待機時間遅延を減らし、プロセッサの性能を向上させることができる。
図5は、本開示の実施例による命令を処理するための装置500の概略ブロック図である。図5に示すように、装置500は、実行のために第1のメモリアクセス命令を取得するように構成され、第1のメモリアクセス命令は、アクセスされるメモリの第1のアドレス間を含む取得モジュール502を含む。装置500は、メモリ内のアクセスされるアドレス間を監視するための所定の命令が検出されたことに応答して、所定の命令を実行して、第1のメモリアクセス命令によってアクセスされていない第1のアドレス間内の残りのアドレス間を取得するように構成される第1の実行モジュール504をさらに含む。装置500は、残りのアドレス間を、実行される第2のメモリアクセス命令に含まれる第2のアドレス間と比較するように構成される比較モジュール506をさらに含む。装置500は、残りのアドレス間と第2のアドレス間とが少なくとも部分的にオーバーラップしていることに応答して、第2のメモリアクセス命令の実行を一時停止するように構成される一時停止モジュール508をさらに含む。
いくつかの実施例では、装置500は、残りのアドレス間と第2のアドレス間とのオーバーラップ間が第1のメモリアクセス命令によってアクセスされたことに応答して、一時停止された第2のメモリアクセス命令実行を再開するように構成される実行継続モジュールをさらに含む。
いくつかの実施例では、装置500は、残りのアドレス間と第2のアドレス間とがオーバーラップしないことに応答して、第2のメモリアクセス命令を実行するように構成される第2の実行モジュールをさらに含む。
いくつかの実施例では、取得モジュール502は、第1のメモリアクセス命令を受信するように構成される受信モジュールと、第1のメモリアクセス命令に含まれる第1のアドレス間を決定するように構成される決定モジュールと、第1のアドレス間をレジスタ又はキャッシュメモリに記憶するように構成される記憶モジュールとを含む。
いくつかの実施例では、第1の実行モジュール504は、所定の命令が検出されたことに応答して、第1のメモリアクセス命令によってアクセスされたアクセス済みアドレス間を決定するように構成されるアクセス済みアドレス間決定サブモジュールと、アクセス済みアドレス間に基づいて残りのアドレス間を決定するように構成される第1の残りアドレス間決定サブモジュールとを含む。
いくつかの実施例では、装置500は、クロックサイクルごとに残りのアドレス間隔を取得するように構成される第2の残りアドレス間決定モジュールをさらに含む。
いくつかの実施例では、装置500は、メモリ内のアクセスされるアドレス間を監視するための所定の命令が検出されないことに応答して、取得された第3のプログラム命令を実行するように構成される取得命令実行モジュールをさらに含む。
本出願の実施例によれば、本出願は、電子機器と読み取り可能な記憶媒体とをさらに提供する。
図6は、本開示の実施例を実施可能な電子機器600の概略ブロック図である。電子機器600は、図1のコンピューティングデバイス102を実現するために使用され得る。
図に示すように、電子機器600は、読み取り専用メモリ(ROM)602に記憶されたコンピュータプログラム命令、又は記憶ユニット608からランダムアクセスメモリ(RAM)603にロードされたコンピュータプログラム命令に応じて、各種の適切な動作及び処理を実行することができるコンピューティングユニット601を含む。RAM603には、電子機器600の動作に必要な各種のプログラム及びデータも記憶されてもよい。コンピューティングユニット601、ROM602及びRAM603は、バス604を介して互いに接続する。入力/出力(I/O)インターフェース605もバス604に接続される。
キーボードやマウスなどの入力ユニット606と、様々タイプのディスプレイやスピーカーなどの出力ユニット607と、磁気ディスクや光ディスクなどの記憶ユニット608と、ネットワークカード、モデム、無線通信トランシーバなどの通信ユニット609とを含む、電子機器600内の複数のコンポーネントは、I/Oインタフェース605に接続される。通信ユニット609は、電子機器600がインターネットなどのコンピュータネットワーク及び/又は様々な電気通信ネットワークを介して他のデバイスと情報/データを交換することを許容する。
コンピューティングユニット601は、処理及びコンピューティング機能を備えた様々な汎用及び/又は専用処理コンポーネントであってもよい。コンピューティングユニット601のいくつかの例は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、様々な専用の人工知能(AI)コンピューティングチップ、機械学習モデルアルゴリズムを実行する様々なコンピューティングユニット、デジタル信号プロセッサ(DSP)、及び適切なプロセッサ、コントローラ、マイクロコントローラなどを含むがこれらに限定されない。コンピューティングユニット601は、上述した各方法及び処理、例えば方法300を実行する。例えば、いくつかの実施例では、方法300は、機械読み取り可能な媒体例えばメモリユニット608に有形で含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施例では、コンピュータプログラムの一部又は全部はROM602及び/又は通信ユニット609を介して電子機器600にロード及び/又はインストールされてもよい。コンピュータプログラムがRAM603にロードされてコンピューティングユニット601によって実行される場合、上述した方法300の一つ又は複数のステップを実行することができる。代替的に、他の実施例では、コンピューティングユニット601は、他の適切な方式(例えば、ファームウェアによって)により、方法300を実行するように構成されてもよい。
本明細書で説明された機能は、少なくとも部分的に一つ又は複数のハードウェア論理コンポーネントによって実行されてもよい。例えば、利用可能なる典型的なハードウェアロジックコンポーネントは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、プログラマブルロジックデバイス(CPLD)などを含むがこれらに限定されない。
本開示の方法を実施するためのプログラムコードは一つ又は複数のプログラミング言語のいかなる組み合わせで書かれてもよい。これらのプログラムコードが汎用コンピュータ、専用コンピュータ又はその他のプログラマブルデータ処理装置のプロセッサ又はコントローラーに提供されてもよいため、プログラムコードがプロセッサ又はコントローラーによって実行されると、フローチャート及び/又はブロック図で規定された機能/動作が実施される。プログラムコードは、完全に又は部分にマシンで実行されてもよく、独立したソフトウェアパッケージとして部分的にマシンで実行され且つ部分的にリモートマシンで実行され、又は完全にリモートマシン又はサーバーで実行される。
本開示のコンテキストでは、機械読み取り可能な媒体は、命令実行システム、装置又は機器によって用いられてもよく又はそれらと組み合わせて用いられてもよいプログラムを含み、又は記憶することができる有形の媒体であってもよい。機械読み取り可能な媒体は、機械読み取り可能な信号媒体又は機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体は、電子、磁気、光学、電磁気、赤外線、又は半導体システム、装置又は機器、又は上述した内容のいかなる適切な組み合わせを含むことができるがこれらに限定されない。機械読み取り可能な記憶媒体のより具体的な例には、一つ又は複数のワイヤに基づく電気接続、ポータブルコンピューターディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバー、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、光学ストレージデバイス、磁気ストレージデバイス、又は上記内容のいかなる適切な組み合わせが含まれる。
また、各動作は、特定の順序で説明されるが、これは、この動作が示している特定の順序又は順番で実行されることを要求し、又は、望ましい結果を取得するために、図示されるすべての動作が実行されることを要求すると理解されべきである。一定の環境において、マルチタスクと並行処理が有利である可能性がある。同様に、上記の論述にいくつかの具体的な実現の詳細が含まれているが、これらは、本開示の範囲を制限するものとして解釈されるべきではない。別個の実施例のコンテキストで説明されるいくつかの特徴はさらに単一の実現で組み合わせて実現されてもよい。逆に、単一の実現のコンテキストで説明される様々な特徴も複数の実現で別々に実施されてもよく、又はいかなる適切なサブ組み合わせで実施されてもよい。
本主題は、構成特徴及び/又は方法論理的動作に固有の言語で説明されたが、添付の特許請求の範囲で定義される主題が必ずしも上記の特定の特徴又は動作に限定されないことを理解すべきである。逆に、上述した特定の特徴及び動作は、単に特許請求の範囲を実現する例示的な形態に過ぎない。

Claims (15)

  1. コンピュータによって命令を実行するための方法であって、
    実行のために第1のメモリアクセス命令を取得するステップであって、前記第1のメモリアクセス命令は、アクセスされるメモリの第1のアドレス間を含むステップと、
    メモリ内のアクセスされるアドレス間を監視するための所定の命令が検出されたことに応答して、前記所定の命令を実行して、前記第1のメモリアクセス命令によってアクセスされていない前記第1のアドレス間内の残りのアドレス間を取得するステップと、
    第2のメモリアクセス命令が取得された場合、前記残りのアドレス間を、実行される前記第2のメモリアクセス命令に含まれる第2のアドレス間と比較するステップと、
    前記残りのアドレス間と前記第2のアドレス間とが少なくとも部分的なオーバーラップしていることに応答して、前記第2のメモリアクセス命令の実行を一時停止するステップと、
    前記残りのアドレス空間と前記第2のアドレス空間とのオーバーラップ空間が前記第1のメモリアクセス命令によってアクセスされたことに応答して、一時停止された前記第2のメモリアクセス命令の実行を再開するステップとを含む、
    ことを特徴とする命令を実行するための方法。
  2. 前記残りのアドレス間と前記第2のアドレス間とがオーバーラップしないことに応答して、前記第2のメモリアクセス命令を実行するステップをさらに含む、
    ことを特徴とする請求項1に記載の方法。
  3. 第1のメモリアクセス命令を取得するステップは、
    前記第1のメモリアクセス命令を受信するステップと、
    前記第1のメモリアクセス命令に含まれる前記第1のアドレス間を決定するステップと、
    前記第1のアドレス間をレジスタ又はキャッシュメモリに記憶するステップとを含む、
    ことを特徴とする請求項1に記載の方法。
  4. 前記残りのアドレス間を取得するステップは、
    前記所定の命令が検出されたことに応答して、前記第1のメモリアクセス命令によってアクセスされたアクセス済みアドレス間を決定するステップと、
    前記アクセス済みアドレス間に基づいて前記残りのアドレス間を決定するステップとを含む、
    ことを特徴とする請求項1に記載の方法。
  5. クロックサイクルごとに前記残りのアドレス間を取得するステップをさらに含む、
    ことを特徴とする請求項1に記載の方法。
  6. メモリ内のアクセスされるアドレス間を監視するための所定の命令が検出されていないことに応答して、取得されたのプログラム命令を実行するステップをさらに含む、
    ことを特徴とする請求項1に記載の方法。
  7. 実行のために第1のメモリアクセス命令を取得するように構成され、前記第1のメモリアクセス命令は、アクセスされるメモリの第1のアドレス間を含む取得モジュールと、
    メモリ内のアクセスされるアドレス間を監視するための所定の命令が検出されたことに応答して、前記所定の命令を実行して、前記第1のメモリアクセス命令によってアクセスされていない前記第1のアドレス間内の残りのアドレス間を取得するように構成される第1の実行モジュールと、
    第2のメモリアクセス命令が取得された場合、前記残りのアドレス間を、実行される前記第2のメモリアクセス命令に含まれる第2のアドレス間と比較するように構成される比較モジュールと、
    前記残りのアドレス間と前記第2のアドレス間とが少なくとも部分的なオーバーラップしていることに応答して、前記第2のメモリアクセス命令の実行を一時停止するように構成される一時停止モジュールと、
    前記残りのアドレス空間と前記第2のアドレス空間とのオーバーラップ空間が前記第1のメモリアクセス命令によってアクセスされたことに応答して、一時停止された前記第2のメモリアクセス命令の実行を再開するように構成される実行継続モジュールと、を含む、
    ことを特徴とする命令を実行するための装置。
  8. 前記残りのアドレス間と前記第2のアドレス間とがオーバーラップしないことに応答して、前記第2のメモリアクセス命令を実行するように構成される第2の実行モジュールをさらに含む、
    ことを特徴とする請求項に記載の装置。
  9. 前記取得モジュールは、
    前記第1のメモリアクセス命令を受信するように構成される受信モジュールと、
    前記第1のメモリアクセス命令に含まれる前記第1のアドレス間を決定するように構成される決定モジュールと、
    前記第1のアドレス間をレジスタ又はキャッシュメモリに記憶するように構成される記憶モジュールとを含む、
    ことを特徴とする請求項に記載の装置。
  10. 前記第1の実行モジュールは、
    前記所定の命令が検出されたことに応答して、前記第1のメモリアクセス命令によってアクセスされたアクセス済みアドレス間を決定するように構成されるアクセス済みアドレス間決定サブモジュールと、
    前記アクセス済みアドレス間に基づいて前記残りのアドレス間を決定するように構成される残りアドレス間決定サブモジュールとを含む、
    ことを特徴とする請求項に記載の装置。
  11. クロックサイクルごとに前記残りのアドレス間を取得するように構成される残りアドレス間決定モジュールをさらに含む、
    ことを特徴とする請求項に記載の装置。
  12. メモリ内のアクセスされるアドレス間を監視するための所定の命令が検出されないことに応答して、取得されたのプログラム命令を実行するように構成される取得命令実行モジュールをさらに含む、
    ことを特徴とする請求項に記載の装置。
  13. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに通信可能に接続されたメモリとを含み、
    前記メモリには前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令が前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサが請求項1~のいずれか一項に記載の方法を実行可能である、
    ことを特徴とする電子機器。
  14. コンピュータに請求項1~のいずれか一項に記載の方法を実行させるためのコンピュータ命令を記憶している、
    ことを特徴とする非一時的コンピュータ読み取り可能な記憶媒体。
  15. コンピュータに請求項1~のいずれか一項に記載の方法を実行させる、
    ことを特徴とするコンピュータプログラム。
JP2021106589A 2020-07-20 2021-06-28 命令を実行するための方法、装置、機器及びコンピュータ読み取り可能な記憶媒体 Active JP7262520B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010700198.X 2020-07-20
CN202010700198.XA CN111857591A (zh) 2020-07-20 2020-07-20 用于执行指令的方法、装置、设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
JP2021157843A JP2021157843A (ja) 2021-10-07
JP7262520B2 true JP7262520B2 (ja) 2023-04-21

Family

ID=73000615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021106589A Active JP7262520B2 (ja) 2020-07-20 2021-06-28 命令を実行するための方法、装置、機器及びコンピュータ読み取り可能な記憶媒体

Country Status (5)

Country Link
US (1) US11748099B2 (ja)
EP (1) EP3872629B1 (ja)
JP (1) JP7262520B2 (ja)
KR (1) KR20210097655A (ja)
CN (1) CN111857591A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857591A (zh) * 2020-07-20 2020-10-30 北京百度网讯科技有限公司 用于执行指令的方法、装置、设备和计算机可读存储介质
CN117171065B (zh) * 2023-11-02 2024-03-01 摩尔线程智能科技(北京)有限责任公司 地址管理方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001184259A (ja) 1999-12-22 2001-07-06 Nec Kofu Ltd 演算処理装置及び該装置におけるデータ転送方法
US20160110296A1 (en) 2014-10-17 2016-04-21 Sk Hynix Memory Solutions Inc. Lba blocking table for ssd controller

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3171891B2 (ja) * 1991-11-08 2001-06-04 キヤノン株式会社 表示制御装置
US7363474B2 (en) * 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
US7506132B2 (en) * 2005-12-22 2009-03-17 International Business Machines Corporation Validity of address ranges used in semi-synchronous memory copy operations
US9778949B2 (en) * 2014-05-05 2017-10-03 Google Inc. Thread waiting in a multithreaded processor architecture
CN105683922B (zh) * 2014-10-03 2018-12-11 英特尔公司 实现监视对地址的写入的指令的可扩展机制
US9921750B2 (en) * 2014-11-20 2018-03-20 Samsung Electronics Co., Ltd. Solid state drive (SSD) memory cache occupancy prediction
CN112400170A (zh) * 2018-06-24 2021-02-23 海克斯伍安全公司 配置、实施和监控可信执行环境的分离
US11635965B2 (en) * 2018-10-31 2023-04-25 Intel Corporation Apparatuses and methods for speculative execution side channel mitigation
US11055228B2 (en) * 2019-01-31 2021-07-06 Intel Corporation Caching bypass mechanism for a multi-level memory
CN111857591A (zh) * 2020-07-20 2020-10-30 北京百度网讯科技有限公司 用于执行指令的方法、装置、设备和计算机可读存储介质
US11604735B1 (en) * 2021-12-02 2023-03-14 Western Digital Technologies, Inc. Host memory buffer (HMB) random cache access

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001184259A (ja) 1999-12-22 2001-07-06 Nec Kofu Ltd 演算処理装置及び該装置におけるデータ転送方法
US20160110296A1 (en) 2014-10-17 2016-04-21 Sk Hynix Memory Solutions Inc. Lba blocking table for ssd controller

Also Published As

Publication number Publication date
JP2021157843A (ja) 2021-10-07
KR20210097655A (ko) 2021-08-09
EP3872629B1 (en) 2023-09-27
US20210342149A1 (en) 2021-11-04
EP3872629A2 (en) 2021-09-01
US11748099B2 (en) 2023-09-05
CN111857591A (zh) 2020-10-30
EP3872629A3 (en) 2022-01-05

Similar Documents

Publication Publication Date Title
US9256915B2 (en) Graphics processing unit buffer management
US11474712B2 (en) Method, apparatus, device and storage medium for managing access request
JP7262520B2 (ja) 命令を実行するための方法、装置、機器及びコンピュータ読み取り可能な記憶媒体
US8117389B2 (en) Design structure for performing cacheline polling utilizing store with reserve and load when reservation lost instructions
US7600076B2 (en) Method, system, apparatus, and article of manufacture for performing cacheline polling utilizing store with reserve and load when reservation lost instructions
US20200409703A1 (en) Methods, devices, and media for processing loop instruction set
US7581067B2 (en) Load when reservation lost instruction for performing cacheline polling
KR102287677B1 (ko) 데이터 액세스 방법, 장치, 기기 및 저장 매체
US9390015B2 (en) Method for performing cacheline polling utilizing a store and reserve instruction
US11307801B2 (en) Method, apparatus, device and storage medium for processing access request
US8219763B2 (en) Structure for performing cacheline polling utilizing a store and reserve instruction
US9697127B2 (en) Semiconductor device for controlling prefetch operation
US8601488B2 (en) Controlling the task switch timing of a multitask system
US9983874B2 (en) Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling
KR20210156759A (ko) 큐 가용성 모니터링을 위한 시스템, 방법 및 장치
WO2018076979A1 (zh) 一种指令间数据依赖的检测方法和装置
CN113342254A (zh) 数据存储装置及其操作方法
US8412862B2 (en) Direct memory access transfer efficiency
CN115269199A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
US20040168154A1 (en) Software processing method and software processing system
US7877533B2 (en) Bus system, bus slave and bus control method
JP7092783B2 (ja) ペンディング中のロード及びストアの個別トラッキング
US20110320781A1 (en) Dynamic data synchronization in thread-level speculation
CN111522600B (zh) 一种在dsp上的异构计算框架构建方法及系统
CN117063155A (zh) 检测卸载操作中的执行风险

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210628

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230411

R150 Certificate of patent or registration of utility model

Ref document number: 7262520

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150