JP7229305B2 - 命令実行結果をライトバックするための装置及び方法、処理装置 - Google Patents

命令実行結果をライトバックするための装置及び方法、処理装置 Download PDF

Info

Publication number
JP7229305B2
JP7229305B2 JP2021116396A JP2021116396A JP7229305B2 JP 7229305 B2 JP7229305 B2 JP 7229305B2 JP 2021116396 A JP2021116396 A JP 2021116396A JP 2021116396 A JP2021116396 A JP 2021116396A JP 7229305 B2 JP7229305 B2 JP 7229305B2
Authority
JP
Japan
Prior art keywords
execution
unit
write
delay
write port
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
JP2021116396A
Other languages
English (en)
Other versions
JP2021168189A (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 JP2021168189A publication Critical patent/JP2021168189A/ja
Application granted granted Critical
Publication of JP7229305B2 publication Critical patent/JP7229305B2/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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • 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
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Description

本開示は、コンピュータ技術に関し、より具体的には、プロセッサ技術に関する。
プロセッサにおいて、一般に、プロセッサによる命令の実行効率を向上させるために、命令パイプラインが使用されている。命令パイプラインとは、1つの命令の動作を複数のステップに分割し、各ステップが専用の回路ユニットによって完成される。命令パイプラインは通常、フェッチ(IF)、デコード(ID)、実行(EXE)、ライトバック(WB)などの段階に分割される。命令が順次送信され、部分的に順不同で実行され、順不同でライトバックされるプロセッサコアでは、フェッチ段階でサイクル毎に1つの命令がフェッチされ、実行段階で異なる機能に応じて実行遅延に対応する実行ユニットに命令が入り、実行ユニットによってサイクル毎に1つの命令を実行し、最終的に計算又は実行された結果がレジスタファイルに順不同でライトバックされる。命令パイプラインにおいてライトバック効率を向上させることは、プロセッサの全体的な性能の向上に非常に重要である。
本開示は、命令実行結果をライトバックするための装置及び方法、処理装置、電子機器及び記憶媒体を提供する。
本開示の一態様によれば、命令実行結果をライトバックするための装置を提供する。当該装置は、第1の実行遅延を有する第1の実行ユニットとレジスタファイルとの間に結合され、且つ前記第1の実行ユニットから第1の実行結果を受信し、第1の書き込みアドレスに基づいて前記第1の実行結果を前記レジスタファイルにおける第1のレジスタユニットにライトバックするように構成される第1の書き込みポートと、前記第1の実行遅延とは異なる第2の実行遅延を有する第2の実行ユニットと前記レジスタファイルとの間に結合され、且つ前記第2の実行ユニットから第2の実行結果を受信し、第2の書き込みアドレスに基づいて前記第2の実行結果を前記レジスタファイルにおける第2のレジスタユニットにライトバックするように構成される第2の書き込みポートと、を含み、前記第1の書き込みポートは、前記第2の実行ユニットに結合されておらず、且つ前記第2の書き込みポートは、前記第1の実行ユニットに結合されていない。
本開示の別の態様によれば、処理装置を提供する。当該装置は、複数のレジスタユニットを含むレジスタファイルと、それぞれ命令を実行し、実行遅延で実行結果を出力するように構成される複数の実行ユニットと、複数の書き込みポートであって、各書き込みポートが、前記複数の実行ユニットの実行遅延に基づいて、対応する実行遅延を有する実行ユニットと前記複数のレジスタユニットとの間に結合され、前記対応する実行遅延を有する実行ユニットから実行結果を受信し、前記実行結果を前記複数のレジスタユニットにおける書き込みアドレスに対応するいずれかのレジスタユニットにライトバックするように構成される複数の書き込みポートと、を含む。
本開示の別の態様によれば、命令実行結果をライトバックするための方法を提供し、第1の書き込みポートを介して、第1の実行遅延を有する第1の実行ユニットから第1の実行結果を受信し、第1の書き込みアドレスに基づいて前記第1の実行結果をレジスタファイルにおける第1のレジスタユニットにライトバックするステップと、第2の書き込みポートを介して、前記第1の実行遅延とは異なる第2の実行遅延を有する第2の実行ユニットから第2の実行結果を受信し、第2の書き込みアドレスに基づいて前記第2の実行結果を前記レジスタファイルにおける第2のレジスタユニットにライトバックするステップと、を含み、前記第1の書き込みポートは、前記第2の実行ユニットに結合されておらず、且つ前記第2の書き込みポートは、前記第1の実行ユニットに結合されていない。
本開示の別の態様によれば、電子機器を提供する。当該電子機器は、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサと通信可能に接続されるメモリと、を含み、前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサが上記方法を実行できるように、前記少なくとも1つのプロセッサによって実行される。
本開示の別の態様によれば、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体を提供する。当該コンピュータ命令は、コンピュータに上記方法を実行させる。
本開示の別の態様によれば、コンピュータプログラムを提供し、前記コンピュータプログラムは、コンピュータに上記方法を実行させる。
本開示の実施例の技術案によれば、命令パイプラインにおいて書き込みポートに対してキャッシュユニットを設定し、フィードバック経路を増加することによって引き起こされる問題を解決し、パイプラインのブロックを減少し、パイプラインの効率をを著しく向上させ、リソースオーバヘッドを減少し、タイミングストレスを軽減し、かつプロセッサの周波数を向上させ、プロセッサ全体の性能を向上させることができる。
なお、本開示の概要に記載の内容は、本開示の実施例の肝心又は重要な特徴を限定することを意図しておらず、本開示の範囲を限定することも意図していない。本開示の他の特徴は、以下の説明により理解されやすくなる。
図面は、本技術案がよりよく理解されるためのものであり、本開示を限定するものではない。
従来の技術案に係る命令実行結果をライトバックするための装置のブロック図である。 従来の技術案に係る命令実行結果をライトバックするための装置のブロック図である。 本開示の実施例に係る命令実行結果をライトバックするための装置のブロック図である。 本開示の実施例に係る命令実行結果をライトバックするための装置のブロック図である。 本開示の実施例に係る命令実行結果をライトバックするための装置のブロック図である。 本開示の実施例に係る命令実行結果をライトバックするための装置のブロック図である。 本開示の実施例に係る命令実行結果をライトバックするための方法のフローチャートである。 本開示の実施例の命令実行結果をライトバックするための方法を実現するための電子機器である。
以下、本開示の例示的な実施例を図面を参照して説明し、理解を容易にするためにその中には本開示の実施例の様々な詳細を含んでおり、それらは単なる例示するものと見なされるべきである。したがって、当業者は、本開示の範囲及び趣旨から逸脱することなく、ここで説明される実施例に対して様々な変更と修正を行うことができることを理解すべきである。同様に、明確及び簡潔するために、以下の説明では、周知の機能及び構成の説明を省略する。
図1A及び図1Bは、従来の技術案に係る命令実行結果をライトバックするための装置のブロック図である。
図1Aを参照すると、プロセッサは、フェッチユニット102、デコードユニット104、実行ユニット106、108、書き込みポート114、及びレジスタファイル116を含む。フェッチユニット102は、命令をフェッチし、デコードユニット104は、フェッチされた命令をデコードし、実行ユニット106、108は、デコードされた命令を実行して、実行結果を出力し、且つ、実行結果が書き込みポート114を介してレジスタファイル116にライトバックされる。書き込みポート114は、書き込みアドレスに基づいてレジスタファイル116におけるレジスタユニット118にアクセスすることができる。
図1Aに示される技術案では、1つのレジスタファイル116は、1つの書き込みポート114を採用する。単一送信のプロセッサの場合、平均して、各サイクルごとにライトバック段階で1つの実行結果をライトバックし、且つ対応するレジスタファイル116が1つの書き込みポート116を採用する。異なる実行ユニット106、108の実行結果がレジスタファイル116にライトバックされる場合、異なる実行ユニット106、108の実行遅延が異なるため、実行結果が同時にレジスタファイル116にライトバックされる競合が発生する可能性がある。このような競合を対処するために、ライトバック段階で、N-1アービトレーションロジック又はマルチプレクサ(MUX)110が設けられ、ここで、Nは実行ユニットの数である。異なる実行ユニット106、108に対して異なる優先順位を与えて、且つ実行ユニット108に対して、キャッシュキュー112を設定することにより、現在ライトバックされていない実行結果をキャッシュキュー112に圧入し、書き込みポート114がアイドルになった後に、実行結果をデキューしてライトバック動作を完了する。キャッシュキュー112のスペースが限られ、キャッシュ・オーバーフローを回避するために、キャッシュキュー112のスペース残量を常に監視し、パイプラインのプリアンブル段階でのフェッチユニット102にフィードバックする必要がある。キャッシュキュー112のスペースが満杯になった場合、キャッシュキュー112における実行結果がライトバックを終了してスペースを解放するまで、フェッチユニット102がフェッチを一時停止する。
図1Bを参照すると、プロセッサは、フェッチユニット102、デコードユニット104、実行ユニット106、108、書き込みポート128、130及びレジスタファイル132を含む。フェッチユニット102は、命令をフェッチし、デコードユニット104は、フェッチされた命令をデコードし、実行ユニット106、108は、デコードされた命令を実行して、実行結果を出力し、且つ、実行結果が書き込みポート128、130を介してレジスタファイル132にライトバックされる。書き込みポート128は、書き込みアドレスに基づいてレジスタファイル132における第1の領域でのレジスタユニット134にアクセスすることが可能であり、書き込みポート130は、書き込みアドレスに基づいてレジスタファイル132における第2の領域でのレジスタユニット136にアクセスすることが可能である。
図1Bに示される技術案では、1つのレジスタファイル132は、複数の書き込みポート128、130を採用する。書き込みポート128、130の各書き込みポートは、複数の実行ユニット106、108によって共有される。レジスタファイル132用の書き込みポートの数が増加した後、上述した従来の技術案に比べて、アービトレーションロジック又はマルチプレクサ(MUX)120、122は、N-Mの交差構造となり、ここで、Mは、書き込みポートの数を表す。異なる実行ユニット106、108に対して異なる優先順位を与えて、且つ実行ユニット108に対して、キャッシュキュー124、126を設定することにより、現在ライトバックされていない実行結果をキャッシュキュー124、126に圧入し、書き込みポート128、130がアイドルになった後に、実行結果をデキューしてライトバック動作を完了する。キャッシュキュー124、126のスペースが限られ、キャッシュ・オーバーフローを回避するために、キャッシュキュー124、126のスペース残量を常に監視し、パイプラインのプリアンブル段階でのフェッチユニット102にフィードバックする必要がある。レジスタファイル132用の書き込みポート128、130は、それぞれアクセス可能なレジスタスペースが異なる。当該従来の技術案は、異なる機能ユニット106、108のライトバックアドレスが書き込みポート128、130に分散するシーンに対して、性能最適化効果を有するが、ライトバックアドレスが同じである場合、性能向上が欠け、且つキャッシュキュー及びフィードバックロジックの使用も避けられない。
図1Aに示される技術案では、パイプライン効率は、異なる実行ユニットに対する優先順位の設定に依存する。優先順位の選択戦略には最適解がなく、一部のアプリケーションのみに対して予期的な効果を達する可能である。しかしながら、他のアプリケーションに対しては、キャッシュキューの頻繁な満杯状態をトリガーしてパイプラインのフェッチ段階を逆圧する可能性があるため、パイプライン全体の効率を保証することが困難である。リソース上で正確さを保証するために、設定されたキャッシュキューは、主なリソースオーバヘッドであり、且つ、逆圧パイプラインのフィードバック経路の配線もプロセッサのタイミングや周波数に悪影響を与える。
図1Aに示される技術案に対して、図1Bに示される技術案は、異なる実行ユニットの書き込みアドレスが異なるシーンに対して性能最適化を有する。しかしながら、他の場合、例えば図1Bに示される技術案もキャッシュキュー及びフィードバック経路を設定する必要がある。キャッシュキューの深さは、比較的小さい可能性があるが、完全に解消できないため、リソース及び効率の観点から見れば、最適化可能なスペースが限られている。
特定のプロセッサの場合、パイプラインにおける異なる機能の実行ユニットの遅延特徴が比較的顕著である。これらの実行遅延特徴に対して、リソースを合理的に割り当て、異なる機能パイプラインのライトバック効率を向上させることは、プロセッサの全体的な性能の向上に非常に重要である。
少なくとも上記問題を解決するために、本開示の実施例は、命令パイプラインにおいてライトバック効率を向上させるための技術案を提供する。本開示の実施例によれば、1つのレジスタファィルに対して複数の書き込みポートが設けられ、複数の書き込みポートがそれぞれ各実行遅延を有する実行ユニットに対応する。複数の書き込みポートは、対応する実行遅延を有する各実行ユニットに分割されて割り当てられ、且つ、各書き込みポートが、書き込みアドレスに基づいてレジスタファイルにおける任意のレジスタユニットにアクセスすることができる。このような書き込みポートと経路配置により、性能の改善と向上が得られる。
本開示の実施例によれば、ライトバックによるパイプラインのブロックを減少し、パイプラインの効率を著しく向上させることにより、プロセッサ全体の性能を向上させることができる。さらに、本開示の実施例は、従来の技術案における正確さを保証するために必要となるキャッシュキューの使用を回避し、リソースオーバヘッドを低減し、特にレジスタビット幅が広い場合に、ハードウェアリソースの使用をより大幅に低減することができる。これにより、本開示の実施例は、プロセッサの面積の縮小及び電力消費の低減に有利である。また、本開示の実施例は、キャッシュキューに関連するフィードバック経路を除去することにより、タイミング処理の圧力を軽減し、プロセッサの周波数を向上させることができる。
以下、図面と組み合わせて、様々な実施例を参照して本開示の例示的な実施例について詳細に説明する。
図2は、本開示の実施例に係る命令実行結果をライトバックするための装置のブロック図である。図2は、命令実行結果をライトバックするための装置230を含む、命令パイプラインのための処理装置200を示す。いくつかの実施例では、処理装置200は、第1の実行ユニット206、第2の実行ユニット208、及びレジスタファィル214をさらに含むことができる。いくつかの実施例では、処理装置200は、フェッチユニット202とデコードユニット204をさらに含むことができる。
フェッチユニット202は、命令をフェッチするように構成される。デコードユニット204は、フェッチされた命令をデコードするように構成される。デコードされた異なるタイプの命令は、それぞれ対応する異なる機能の実行ユニットに入力される。
第1の実行ユニット206は、デコードされた第1のタイプの命令を受信し、当該命令を実行するように構成される。第1の実行ユニット206は、第1の実行遅延で第1の実行結果を出力するように構成される。第2の実行ユニット208は、デコードされた第2のタイプの命令を受信し、当該命令を実行するように構成される。第2の実行ユニット208は、第2の実行遅延で第2の実行結果を出力するように構成される。第1の実行遅延は、第2の実行遅延とは異なる。当業者であれば、本明細書で説明される「第1の実行遅延は、第2の実行遅延とは異なる」とは、第1の実行結果のライトバックと第2の実行結果のライトバックとが同じサイクルで発生する可能性があるために、第1の実行遅延と第2の実行遅延との間に顕著な相違があることを指すことが理解されたい。
なお、フェッチユニット202、デコードユニット204、第1の実行ユニット206、及び第2の実行ユニット208は、命令パイプラインにおけるフェッチ、デコード、実行段階にそれぞれ対応する回路ユニットである。これらの回路ユニットは、当該技術分野において公知であり、ここでは詳細な説明を省略する。
図2を参照すると、命令実行結果をライトバックするための装置230は、第1の書き込みポート210と、第2の書き込みポート212とを含む。第1の書き込みポート210及び第2の書き込みポート212は、それぞれ、第1の実行遅延を有する第1の実行ユニット206及び第2の実行遅延を有する第2の実行ユニット208に対応する。第1の書き込みポート210は、第2の実行ユニット208に結合されておらず、且つ第2の書き込みポート212は、第1の実行ユニット206に結合されていない。いくつかの実施例では、第1の書き込みポート210は、第1の実行ユニット206に割り当てられる。いくつかの実施例では、第2の書き込みポート212は、第2の実行ユニット208に割り当てられる。いくつかの実施例では、第1の書き込みポート210は、第1の実行ユニット206によって独占され、且つ、第2の書き込みポート212は、第2の実行ユニット208によって独占される。
第1の書き込みポート210は、第1の実行遅延を有する第1の実行ユニット206とレジスタファイル214との間に結合される。第1の書き込みポート210は、第1の実行ユニット206から第1の実行結果を受信し、第1の書き込みアドレスに基づいて第1の実行結果をレジスタファイル214における第1のレジスタユニットにライトバックするように構成される。第1の書き込みポート210は、第1のパス218を介してレジスタファイル214におけるすべてのレジスタユニット216に結合される。第1のパス218は、各配線がそれぞれ第1の書き込みポート210とレジスタファイル214におけるすべてのレジスタユニット216との間に結合される第1の配線セットを含む。したがって、第1の書き込みポート210を介してレジスタファイル214における任意のレジスタユニット216に直接アクセスすることができる。このようにして、第1の書き込みポート210を介して、第1の実行遅延で出力された命令実行結果をレジスタファイル214における任意のレジスタユニット216に直接ライトバックすることができ、ライトバック効率を向上させる。
第2の書き込みポート212は、第2の実行遅延を有する第2の実行ユニット206とレジスタファイル214との間に結合される。第2の書き込みポート212は、第2の実行ユニット208から第2の実行結果を受信し、第2の書き込みアドレスに基づいて第2の実行結果をレジスタファイル214における第2のレジスタユニットにライトバックするように構成される。第2の書き込みポート212は、第2のパス220を介してレジスタファイル214におけるすべてのレジスタユニット216に結合される。第2のパス220は、各配線がそれぞれ第2の書き込みポート212とレジスタファイル214におけるすべてのレジスタユニット216との間に結合される第2の配線セットを含む。したがって、第2の書き込みポート212を介してレジスタファイル214における任意のレジスタユニット216に直接アクセスすることができる。このようにして、第2の書き込みポート212を介して、第2の実行遅延で出力された命令実行結果をレジスタファイル214における任意のレジスタユニット216に直接ライトバックすることができ、ライトバック効率を向上させる。
いくつかの実施例では、処理装置200は、複数の実行ユニットを含むことができ、且つ装置230は、複数の書き込みポートを含むことができる。複数の実行ユニットは、それぞれ命令を実行し、実行遅延で実行結果をそれぞれ出力するように構成される。複数の書き込みポートは、複数の実行ユニットの実行遅延にそれぞれ対応するように構成される。複数の書き込みポートは、それぞれ対応する実行遅延を有する実行ユニットに割り当てられる。各書き込みポートは、実行ユニットの実行遅延に基づいて、対応する実行遅延を有する実行ユニットと複数のレジスタユニットとの間に結合される。各書き込みポートは、対応する実行遅延を有する実行ユニットから実行結果を受信し、当該実行結果を複数のレジスタユニットにおける書き込みアドレスに対応するいずれかのレジスタユニットにライトバックするように構成される。
本開示の実施例によれば、命令が順次送信され、部分的に順不同で実行され、順不同でライトバックされるプロセッサコアでは、フェッチ段階でサイクル毎に1つの命令がフェッチされ、実行段階で当該命令が一定の実行遅延を有する実行ユニットによって実行され、命令実行結果が当該実行遅延に対応する書き込みポートを介してレジスタファイルにライトバックされる。サイクル毎に1つの命令が実行され、且つ、各書き込みポートが対応する実行遅延を有する実行ユニットに割り当てられるため、各書き込みポートにとって、複数の命令実行結果が同時に入力されるという競合問題は存在しない。このように、従来の技術案における必要なアービトレーションロジック又はマルチプレクサ、キャッシュキュー及びフィードバック経路の使用を回避可能となる。このようにして、パイプラインのブロックを減少し、パイプラインの効率をを著しく向上させ、プロセッサ全体の性能を向上させ、キャッシュスペースの使用を回避し、リソースオーバヘッドを低減し、特にレジスタビット幅が広いシーンでは、ハードウェアリソースの使用をより大幅に低減し、プロセッサの面積及び電力消費に良い影響を与え、また、キャッシュスペースに関連するフィードバック経路を除去し、タイミングストレスを軽減し、プロセッサの周波数を向上させる。
また、1つのレジスタユニットを同時に書き込む競合問題に対して、順次送信、部分的に順不同実行、順不同ライトバックなどの当該技術分野において公知であるプロセッサの構成はすべて、競合問題を検出し、競合問題を回避するハードウェア処理構造を有する。当該競合問題は、デコード段階の処理で回避されることができる。本開示の実施例では、当該技術分野において公知である技術案における処理ロジックを直接に適用することで、追加の処理構造を必要とせずに、複数の書き込みポートが同時に同じアドレスのレジスタユニットにライトバックされる正確さの問題を回避することができる。
図3は、本開示の実施例に係る命令実行結果をライトバックするための装置のブロック図である。図3は、命令実行結果をライトバックするための装置310を含む、命令パイプラインのための処理装置300を示す。いくつかの実施例では、処理装置200に比べて、処理装置300は、第3の実行ユニット302をさらに含むことができる。いくつかの実施例では、装置230に比べて、装置310は、第3の書き込みポート304をさらに含むことができる。いくつかの実施例では、第3の書き込みポート304は、第1の実行ユニット206と第2の実行ユニット208とに結合されていない。いくつかの実施例では、第3の書き込みポート304は、第3の実行ユニット302に割り当てられる。いくつかの実施例では、第3の書き込みポート304は、第3の実行ユニット302によって独占される。
第3の実行ユニット302は、デコードされた第3のタイプの命令を受信し、当該命令を実行するように構成される。第3の実行ユニット302は、第3の実行遅延で第3の実行結果を出力するように構成される。第3の実行遅延は、第1の実行ユニット206の第1の実行遅延及び第2の実行ユニット208の第2の実行遅延とは異なる。同様に、上述した「第3の実行遅延は、第1の実行遅延及び第2の実行遅延とは異なる」とは、第3の実行結果のライトバックが第1の実行結果のライトバックまたは第2の実行結果のライトバックと同じサイクルで発生する可能性があるために、第3の実行遅延と第1の実行遅延及び第2の実行遅延との間に顕著な相違があることを指す。いくつかの実施例では、第3の実行ユニット302は、頻繁に使用される、又はそこからフェッチユニット202にフィードバックされた経路がタイミングに深刻な影響を与える実行ユニットである。
第3の書き込みポート304は、第3の実行ユニット302とレジスタファイル214との間に結合される。第3の書き込みポート304は、第3の実行ユニット302から第3の実行結果を受信し、第3の書き込みアドレスに基づいて第3の実行結果をレジスタファイル214における第3のレジスタユニットにライトバックするように構成される。第3の書き込みポート304は、第3のパス306を介してレジスタファイル214におけるすべてのレジスタユニット216に結合される。第3のパス306は、各配線がそれぞれ第3の書き込みポート304とレジスタファイル214におけるすべてのレジスタユニット216との間に結合される第3の配線セットを含む。このように、第3の書き込みポート304を介してレジスタファイル214における任意のレジスタユニット216に直接アクセスすることができる。
本開示の実施例によれば、頻繁に使用される、又はそこからフェッチユニットにフィードバックされる経路がタイミングに深刻な影響を与える実行ユニットに対して、対応する書き込みポートを追加的に割り当てる。このようにして、第3の書き込みポート304を介して、第3の実行ユニット302で出力された命令実行結果をレジスタファイル214における任意のレジスタユニット216に直接ライトバックすることができ、ライトバック効率を向上させ、プロセッサのタイミングに影響を与えなく、プロセッサの性能を向上させる。
いくつかの実施例では、処理装置300は、複数の実行ユニットを含み、複数の実行ユニットのそれぞれの実行遅延が互いに異なる。この場合、各書き込みポートが複数の実行ユニットにおける対応する1つの実行ユニットに結合される複数の書き込みポートを設けることができる。また、各書き込みポートは、レジスタファイルのいずれかのレジスタユニットにアクセスすることができる。
図4は、本開示の実施例に係る命令実行結果をライトバックするための装置のブロック図である。図4は、命令実行結果をライトバックするための装置410を含む、命令パイプラインのための処理装置400を示す。いくつかの実施例では、処理装置200に比べて、処理装置400は、第4の実行ユニット402をさらに含むことができる。
第4の実行ユニット402は、デコードされた第4のタイプの命令を受信し、当該命令を実行するように構成される。第4の実行ユニット402は、第4の実行遅延で第4の実行結果を出力するように構成される。いくつかの実施例では、第4の実行遅延と第1の実行ユニット206の第1の実行遅延は、特定の遅延値に実質的に等しい。いくつかの実施例では、第4の実行遅延は、第1の実行遅延に実質的に等しく、第4の実行結果のライトバックが第1の実行結果のライトバックと同一サイクルで発生しないように、第4の実行遅延と第1の実行遅延との間の差は、所定の範囲内にあり、所定の範囲のサイズは、1サイクルの所定のスコア値に等しくてもよい。いくつかの実施例では、第1の実行ユニット206は、整数演算のための実行ユニットであり、且つ、第4の実行ユニット402は、浮動小数点演算のための実行ユニットである。
いくつかの実施例では、第1の書き込みポート210は、第1の実行ユニット206及び第4の実行ユニット402によって共有される。また、第1の書き込みポート210は、さらに、第4の実行遅延を有する第4の実行ユニット402とレジスタファイス214との間に結合される。第1の書き込みポート210は、さらに、第4の実行ユニット402から第4の実行結果を受信し、第4の書き込みアドレスに基づいて第4の実行結果をレジスタファイル214における第4のレジスタユニットにライトバックするように構成される。
本開示の実施例によれば、実行遅延が実質的に同じである複数の実行ユニットに対して、1つの書き込みポートが共用される。同一の書き込みポートを共有する複数の実行ユニットがパイプラインによって命令を実行するため、同一サイクルで当該書き込みポートに書き込まれることは発生せず、ライトバックの正確さ問題を引き起こさない。このようにして、第1の書き込みポート210を介して、第4の実行ユニット402で出力された命令実行結果をレジスタファイル214における任意のレジスタユニット216に直接ライトバックすることができ、それにより、ライトバック効率を向上させるとともに、このような構成に必要なリソースの消費及び効率影響が小さいため、命令の処理性能を向上させる。
いくつかの実施例では、処理装置400は、複数の実行ユニットを含み、複数の実行ユニットのそれぞれの実行遅延のうちの少なくとも2つの実行遅延が特定の遅延値に実質的に等しい。この場合、複数の書き込みポートのうちの1つの書き込みポートは、複数の実行ユニットのうちの当該少なくとも2つの実行遅延を有する少なくとも2つの実行ユニットに割り当てられる。
図5は、本開示の実施例に係る命令実行結果をライトバックするための装置のブロック図である。図5は、命令実行結果をライトバックするための装置510を含む、命令パイプラインのための処理装置500を示す。いくつかの実施例では、処理装置200に比べて、処理装置500は、第5の実行ユニット502をさらに含むことができる。いくつかの実施例では、装置230に比べて、装置510は、キャッシュユニット504とマルチプレクサ(MUX)506とをさらに含むことができる。
第5の実行ユニット502は、デコードされた第5のタイプの命令を受信し、当該命令を実行するように構成される。第5の実行ユニット502は、第5の実行遅延で第5の実行結果を出力するように構成される。第5の実行遅延は、第1の実行ユニット206の第1の実行遅延及び第2の実行ユニット208の第2の実行遅延とは異なる。いくつかの実施例では、第5の実行ユニット502は、使用頻度の低い実行ユニットである。
キャッシュユニット504は、第5の実行ユニット502に結合される。キャッシュユニット504は、第5の実行ユニット502から第5の実行結果を受信するように構成される。いくつかの実施例では、キャッシュユニット504は、キャッシュキューである。キャッシュユニット504は、第5の実行結果を一時的に記憶するように構成される。いくつかの実施例では、キャッシュユニット504の深さは比較的小さい。いくつかの実施例では、キャッシュユニット504からフェッチユニット202にフィードバックするフィードバックパスを設定する必要がない。
マルチプレクサ506は、キャッシュユニット504と第2の書き込みポート212との間に結合される。マルチプレクサ506は、キャッシュユニット504から第5の実行結果を受信し、選択信号に基づいて第5の実行結果を第2の書き込みポート212に伝送することで、第2の書き込みポート212が第5の書き込みアドレスに基づいて第5の実行結果をレジスタファイル214における第5のレジスタユニットにライトバックするように構成される。いくつかの実施例では、マルチプレクサ506は、第5の実行結果をライトバックするために、第2の書き込みポート212がアイドル状態にある場合、キャッシュユニット504に一時的に記憶された第5の実行結果を第2の書き込みポート212に伝送するように構成される。いくつかの実施例では、マルチプレクサ506は、アービトレーションロジックを含むことができる。
本開示の実施例によれば、使用頻度が低く、フィードバックパスがプリアンブルのパイプラインに伝送される必要のない実行ユニットに対して、深さの小さいキャッシュユニットを設定し、他の書き込みポートを多重化する。このようにして、第2の書き込みポート212を介して、第5の実行ユニット504で出力された命令実行結果をレジスタファイル214における任意のレジスタユニット216にライトバックすることができ、書き込みポート及びレジスタユニットとの間の対応する配線を増加しない場合、ライトバック効率を確保し、プロセッサリソースの消費を減少し、プロセッサの性能を向上させる。
本開示の実施例によれば、上述した図2~図5を参照して説明された実施例における任意の構成を互いに組み合わせることにより、実行ユニットの使用頻度、消費されたハードウェアリソース及びタイミングへの影響の考慮に基づいて、書き込みポートの増加、又はキャッシュユニットとマルチプレクサの追加をバランスさせ、実行遅延の特徴に基づいて書き込みポートを共用することができる。
図6は、本開示の実施例に係る命令実行結果をライトバックするための方法600のフローチャートである。
ブロック602において、第1の書き込みポートを介して、第1の実行遅延を有する第1の実行ユニットから第1の実行結果を受信し、第1の書き込みアドレスに基づいて第1の実行結果をレジスタファイルにおける第1のレジスタユニットにライトバックする。
ブロック604において、第2の書き込みポートを介して、第1の実行遅延とは異なる第2の実行遅延を有する第2の実行ユニットから第2の実行結果を受信し、第2の書き込みアドレスに基づいて第2の実行結果をレジスタファイルにおける第2のレジスタユニットにライトバックする。第1の書き込みポートは、第2の実行ユニットに結合されておらず、且つ第2の書き込みポートは、第1の実行ユニットに結合されていない。
いくつかの実施例では、方法600は、第3の書き込みポートを介して、第1の実行遅延及び第2の実行遅延とは異なる第3の実行遅延を有する第3の実行ユニットから第3の実行結果を受信し、第3の書き込みアドレスに基づいて第3の実行結果をレジスタファイルにおける第3のレジスタユニットにライトバックするステップをさらに含むことができる。第3の書き込みポートは、第1の実行ユニット及び第2の実行ユニットに結合されていない。
いくつかの実施例では、方法600は、第1の書き込みポートを介して、第4の実行遅延を有する第4の実行ユニットから第4の実行結果を受信し、第4の書き込みアドレスに基づいて第4の実行結果をレジスタファイルにおける第4のレジスタユニットにライトバックするステップをさらに含むことができる。第4の実行遅延と第1の実行遅延との間の差は、所定の範囲内にある。
いくつかの実施例では、方法600は、キャッシュユニットを介して、第1の実行遅延及び第2の実行遅延とは異なる第5の実行遅延を有する第5の実行ユニットから第5の実行結果を受信し、マルチプレクサを介して、キャッシュユニットから第5の実行結果を受信し、選択信号に基づいて第5の実行結果を第2の書き込みポートに伝送し、第2の書き込みポートを介して、第5の書き込みアドレスに基づいて第5の実行結果をレジスタファイルにおける第5のレジスタユニットにライトバックするステップとをさらに含むことができる。第2の書き込みポートによって、マルチプレクサを介して第2の実行ユニットから第2の実行結果を受信する。
本開示の実施例によれば、電子機器及びコンピュータ読み取り可能な記憶媒体をさらに提供する。図7は、本開示の実施例に係る命令実行結果をライトバックするための方法を実現するための電子機器700のブロック図である。
本出願の実施例によれば、本出願は、コンピュータプログラムを提供し、コンピュータプログラムは、コンピュータに本出願によって提供される命令実行結果をライトバックするための方法を実行させる。
電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタルプロセッサ、携帯電話、スマートフォン、ウェアラブルデバイス、及び他の類似するコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本開示の実現を制限することを意図したものではない。さらに、電子機器は、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックデバイス(PLD)などのプログラム可能な装置を表すこともできる。
図7に示すように、当該電子機器700は、1つ又は複数のプロセッサ701と、メモリ702と、高速インターフェースと低速インターフェースを含む、各コンポーネントを接続するためのインターフェースと、を含む。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けられるか、又は必要に応じて他の方式で取り付けることができる。プロセッサ701は、電子機器700内に実行される命令を処理することができる。他の実施形態では、必要であれば、複数のプロセッサ及び/又は複数のバスを複数のメモリとともに使用することができる。同様に、複数の電子機器を接続することができ、各機器は、一部の必要な操作(例えば、サーバアレイ、1グループのブレードサーバ、又はマルチプロセッサシステムとする)を提供することができる。図7では、1つのプロセッサ701を例とする。
メモリ702は、本開示に係る非一時的なコンピュータ読み取り可能な記憶媒体である。ここで、前記メモリ702には、少なくとも1つのプロセッサが本開示に係る命令実行結果をライトバックするための方法を実行できるように、少なくとも1つのプロセッサによって実行される命令が記憶されている。本開示の非一時的なコンピュータ読み取り可能な記憶媒体には、コンピュータに本開示に係る命令実行結果をライトバックするための方法を実行させるためのコンピュータ命令が記憶されている。
メモリ702は、非一時的なコンピュータ読み取り可能な記憶媒体として、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶する。プロセッサ701は、メモリ702に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち上記方法の実施例に係る命令実行結果をライトバックするための方法を実現する。
メモリ702は、ストレージプログラム領域とストレージデータ領域とを含むことができ、ここで、ストレージプログラム領域は、オペレーティングシステム、及び少なくとも1つの機能に必要なアプリケーションプログラムを記憶することができ、ストレージデータ領域は、命令実行結果をライトバックするための方法の電子機器の使用によって作成されたデータなどを記憶することができる。また、メモリ702は、高速ランダム存取メモリを含むことができ、非一時的なメモリをさらに含むことができ、例えば、少なくとも1つのディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスである。いくつかの実施例では、メモリ702は、プロセッサ701に対して遠隔に設置されたメモリを選択的に含むことができ、これらの遠隔メモリは、ネットワークを介して命令実行結果をライトバックするための方法の電子機器に接続することができる。上記ネットワークの例としては、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びその組み合わせを含むが、これらに限定されない。
電子機器は、入力装置703と出力装置704とをさらに含むことができる。プロセッサ701、メモリ702、入力装置703、及び出力装置704は、バス705又は他の方式を介して接続することができ、図7では、バス705を介して接続することを例とする。入力装置703は、処理対象の入力情報を受信することができ、出力装置704は、処理された情報を出力することができる。
本明細書で説明されるシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向け集積回路、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現されることができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムで実施され、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械命令を含み、高レベルのプロセス及び/又はオブジェクト指向のプログラミング言語、及び/又はアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することができる。本明細書に使用されるような、「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、機器、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。「機械読み取り可能な信号」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
ユーザとのインタラクションを提供するために、コンピュータ上でここで説明されているシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置は、ユーザとのインタラクションを提供するように構成されてもよい。例えば、ユーザに提供されるフィードバックは、任意の形態のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形態(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施形態とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続されてもい。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットとを含む。
コンピュータシステムは、クライアント側とサーバとを含むことができる。クライアント側とサーバは、一般に、互いに離れており、通常通信ネットワークを介してインタラクションする。クライアント側とサーバとの関係は、対応するコンピュータ上で実行されるとともに、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生成される。
本開示の実施例の技術案によれば、レジスタファィルに対して複数の書き込みポートが設けられ、複数の書き込みポートが複数の実行ユニットの実行遅延にそれぞれ対応し、それぞれ対応する実行遅延を有する実行ユニットに割り当てられる。このようにして、実行遅延による書き込み競合が発生しないことを確保する場合、命令実行結果をライトバックする効率を向上させる。
なお、上記に示される様々な形態のフローを使用して、ステップを並べ替え、追加、又は削除することができることを理解されたい。例えば、本開示に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案が所望の結果を実現することができれば、本明細書では限定されない。
上記具体的な実施形態は、本開示の保護範囲を制限するものではない。当業者は、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。任意の本開示の精神と原則内で行われる修正、同等の置換、及び改良などは、いずれも本開示の保護範囲内に含まれるべきである。

Claims (13)

  1. 命令実行結果をライトバックするための装置であって、
    第1の実行遅延を有する第1の実行ユニットとレジスタファイルとの間に結合され、且つ前記第1の実行ユニットから第1の実行結果を受信し、第1の書き込みアドレスに基づいて前記第1の実行結果を前記レジスタファイルにおける第1のレジスタユニットにライトバックするように構成される第1の書き込みポートと、
    前記第1の実行遅延とは異なる第2の実行遅延を有する第2の実行ユニットと前記レジスタファイルとの間に結合され、且つ前記第2の実行ユニットから第2の実行結果を受信し、第2の書き込みアドレスに基づいて前記第2の実行結果を前記レジスタファイルにおける第2のレジスタユニットにライトバックするように構成される第2の書き込みポートと、を含み、
    前記第1の書き込みポートは、前記第2の実行ユニットに結合されておらず、且つ前記第2の書き込みポートは、前記第1の実行ユニットに結合されておらず、
    前記第1の書き込みポートは、さらに、第4の実行遅延を有する第4の実行ユニットと前記レジスタファイルとの間に結合され、且つ前記第4の実行ユニットから第4の実行結果を受信し、第4の書き込みアドレスに基づいて前記第4の実行結果を前記レジスタファイルにおける第4のレジスタユニットにライトバックするように構成され、
    前記第4の実行遅延は、前記第1の実行遅延と実質的に同じである
    ことを特徴とする命令実行結果をライトバックするための装置。
  2. 前記第1の書き込みポートは、前記レジスタファイルにおけるすべてのレジスタユニットに結合され、且つ前記第2の書き込みポートは、前記レジスタファイルにおけるすべてのレジスタユニットに結合される、
    ことを特徴とする請求項1に記載の装置。
  3. 前記第1の実行遅延及び前記第2の実行遅延とは異なる第3の実行遅延を有する第3の実行ユニットと前記レジスタファイルとの間に結合され、且つ前記第3の実行ユニットから第3の実行結果を受信し、第3の書き込みアドレスに基づいて前記第3の実行結果を前記レジスタファイルにおける第3のレジスタユニットにライトバックするように構成される第3の書き込みポートをさらに含み、
    前記第3の書き込みポートは、前記第1の実行ユニット及び前記第2の実行ユニットに結合されておらず、且つ前記第3の書き込みポートは、前記レジスタファイルにおけるすべてのレジスタユニットに結合される、
    ことを特徴とする請求項1に記載の装置。
  4. 前記第1の実行遅延及び前記第2の実行遅延とは異なる第5の実行遅延を有する第5の実行ユニットに結合され、且つ前記第5の実行ユニットから第5の実行結果を受信するように構成されるキャッシュユニットと、
    前記キャッシュユニットと前記第2の書き込みポートとの間に結合され、且つ前記キャッシュユニットから前記第5の実行結果を受信し、選択信号に基づいて前記第5の実行結果を前記第2の書き込みポートに伝送することで、前記第2の書き込みポートが第5の書き込みアドレスに基づいて前記第5の実行結果を前記レジスタファイルにおける第5のレジスタユニットにライトバックするように構成されるマルチプレクサと、をさらに含み、
    前記第2の書き込みポートは、前記マルチプレクサを介して前記第2の実行ユニットに結合される、
    ことを特徴とする請求項1に記載の装置。
  5. 処理装置であって、
    複数のレジスタユニットを含むレジスタファイルと、
    それぞれ命令を実行し、実行遅延で実行結果を出力するように構成される複数の実行ユニットと、
    複数の書き込みポートであって、各書き込みポートが、前記複数の実行ユニットの実行遅延に基づいて、対応する実行遅延を有する実行ユニットと前記複数のレジスタユニットとの間に結合され、前記対応する実行遅延を有する実行ユニットから実行結果を受信し、前記実行結果を前記複数のレジスタユニットにおける書き込みアドレスに対応するいずれかのレジスタユニットにライトバックするように構成される複数の書き込みポートと、を含み、
    前記複数の実行ユニットの実行遅延のうちの少なくとも2つの実行遅延は、特定の遅延値に実質的に等しく、且つ前記複数の書き込みポートのうちの1つの書き込みポートは、前記複数の実行ユニットのうちの前記少なくとも2つの実行遅延を有する少なくとも2つの実行ユニットに結合される
    ことを特徴とする処理装置。
  6. 前記複数の実行ユニットの実行遅延が互いに異なり、且つ各書き込みポートは、前記複数の実行ユニットのうちの1つの実行ユニットに結合される、
    ことを特徴とする請求項に記載の処理装置。
  7. 前記複数の実行ユニットのうちの第1の実行遅延を有する第1の実行ユニットに結合され、且つ前記第1の実行ユニットから第1の実行結果を受信するように構成されるキャッシュユニットと、
    前記キャッシュユニットと前記複数の書き込みポートのうちの第1の書き込みポートとの間に結合され、且つ前記キャッシュユニットから前記第1の実行結果を受信し、選択信号に基づいて前記第1の実行結果を前記第1の書き込みポートに伝送するように構成されるマルチプレクサと、をさらに含み、
    前記マルチプレクサは、さらに、前記複数の実行ユニットのうちの前記第1の実行遅延とは異なる第2の実行遅延を有する第2の実行ユニットに結合され、且つ前記第2の実行ユニットから第2の実行結果を受信し、前記選択信号に基づいて前記第2の実行結果を前記第1の書き込みポートに伝送するように構成される、
    ことを特徴とする請求項に記載の処理装置。
  8. 命令実行結果をライトバックするための方法であって、
    第1の書き込みポートを介して、第1の実行遅延を有する第1の実行ユニットから第1の実行結果を受信し、第1の書き込みアドレスに基づいて前記第1の実行結果をレジスタファイルにおける第1のレジスタユニットにライトバックするステップと、
    第2の書き込みポートを介して、前記第1の実行遅延とは異なる第2の実行遅延を有する第2の実行ユニットから第2の実行結果を受信し、第2の書き込みアドレスに基づいて前記第2の実行結果を前記レジスタファイルにおける第2のレジスタユニットにライトバックするステップと、
    前記第1の書き込みポートを介して、第4の実行遅延を有する第4の実行ユニットから第4の実行結果を受信し、第4の書き込みアドレスに基づいて前記第4の実行結果を前記レジスタファイルにおける第4のレジスタユニットにライトバックするステップと、を含み、
    前記第1の書き込みポートは、前記第2の実行ユニットに結合されておらず、且つ前記第2の書き込みポートは、前記第1の実行ユニットに結合されておらず、前記第4の実行遅延は、前記第1の実行遅延と実質的に同じである、
    ことを特徴とする命令実行結果をライトバックするための方法。
  9. 第3の書き込みポートを介して、前記第1の実行遅延及び前記第2の実行遅延とは異なる第3の実行遅延を有する第3の実行ユニットから第3の実行結果を受信し、第3の書き込みアドレスに基づいて前記第3の実行結果を前記レジスタファイルにおける第3のレジスタユニットにライトバックするステップをさらに含み、
    前記第3の書き込みポートは、前記第1の実行ユニット及び前記第2の実行ユニットに結合されていない、
    ことを特徴とする請求項に記載の方法。
  10. キャッシュユニットを介して、前記第1の実行遅延及び第2の実行遅延とは異なる第5の実行遅延を有する第5の実行ユニットから第5の実行結果を受信するステップと、
    マルチプレクサを介して、前記キャッシュユニットから前記第5の実行結果を受信し、選択信号に基づいて前記第5の実行結果を前記第2の書き込みポートに伝送し、前記第2の書き込みポートを介して、第5の書き込みアドレスに基づいて前記第5の実行結果を前記レジスタファイルにおける第5のレジスタユニットにライトバックするステップと、をさらに含み、
    前記第2の書き込みポートによって、前記マルチプレクサを介して前記第2の実行ユニットから前記第2の実行結果を受信する、
    ことを特徴とする請求項に記載の方法。
  11. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに通信可能に接続されるメモリと、を含み、
    前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサが請求項~1のいずれかに記載の方法を実行できるように、前記少なくとも1つのプロセッサによって実行される、
    ことを特徴とする電子機器。
  12. コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、
    前記コンピュータ命令は、コンピュータに請求項~1のいずれかに記載の方法を実行させる、
    ことを特徴とする非一時的なコンピュータ読み取り可能な記憶媒体。
  13. コンピュータプログラムであって、
    前記コンピュータプログラムは、コンピュータに請求項~1のいずれかに記載の方法を実行させる、
    ことを特徴とするコンピュータプログラム。
JP2021116396A 2020-07-15 2021-07-14 命令実行結果をライトバックするための装置及び方法、処理装置 Active JP7229305B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010681665.9A CN111857823B (zh) 2020-07-15 2020-07-15 用于写回指令执行结果的装置和方法、处理装置
CN202010681665.9 2020-07-15

Publications (2)

Publication Number Publication Date
JP2021168189A JP2021168189A (ja) 2021-10-21
JP7229305B2 true JP7229305B2 (ja) 2023-02-27

Family

ID=72984096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021116396A Active JP7229305B2 (ja) 2020-07-15 2021-07-14 命令実行結果をライトバックするための装置及び方法、処理装置

Country Status (5)

Country Link
US (1) US20210318883A1 (ja)
EP (1) EP3940531A1 (ja)
JP (1) JP7229305B2 (ja)
KR (1) KR102579097B1 (ja)
CN (1) CN111857823B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2024527818A (ja) 2021-07-21 2024-07-26 エルジー・ケム・リミテッド 重合体およびこれを用いた有機発光素子
CN116302620B (zh) * 2023-05-18 2023-08-18 珠海星云智联科技有限公司 一种支持乱序回写和并行化的命令通道

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000008555A1 (en) 1998-08-06 2000-02-17 Koninklijke Philips Electronics N.V. Data processing device
US20040093484A1 (en) 1999-06-21 2004-05-13 Pts Corporation Methods and apparatus for establishing port priority functions in a VLIW processor
US20050278510A1 (en) 2004-05-12 2005-12-15 Stmicroelectronics Limited Pseudo register file write ports

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63197217A (ja) * 1987-02-12 1988-08-16 Matsushita Electric Ind Co Ltd デ−タ処理装置
US5222240A (en) * 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
JP3435278B2 (ja) * 1996-02-02 2003-08-11 東芝マイクロエレクトロニクス株式会社 データ処理装置
US6041387A (en) * 1997-09-12 2000-03-21 Siemens Aktiengesellschaft Apparatus for read/write-access to registers having register file architecture in a central processing unit
EP1046100A1 (en) * 1998-08-06 2000-10-25 Trimedia Technologies, Inc. Data processor and method of processing data
US6279085B1 (en) * 1999-02-26 2001-08-21 International Business Machines Corporation Method and system for avoiding livelocks due to colliding writebacks within a non-uniform memory access system
WO2004084065A2 (en) * 2003-03-19 2004-09-30 Koninklijke Philips Electronics N.V. Pipelined instruction processor with data bypassing
CN101667448B (zh) * 2008-09-04 2012-11-07 奕力科技股份有限公司 存储器存取控制装置及其相关控制方法
CN106293631B (zh) * 2011-09-26 2020-04-10 英特尔公司 用于提供向量分散操作和聚集操作功能的指令和逻辑
GB2503438A (en) * 2012-06-26 2014-01-01 Ibm Method and system for pipelining out of order instructions by combining short latency instructions to match long latency instructions
GB2516864A (en) * 2013-08-02 2015-02-11 Ibm Increased instruction issue rate and latency reduction for out-of-order processing by instruction chaining and collision avoidance
US9612840B2 (en) * 2014-03-28 2017-04-04 Intel Corporation Method and apparatus for implementing a dynamic out-of-order processor pipeline
US20160313923A1 (en) * 2015-04-22 2016-10-27 Mediatek Inc. Method for accessing multi-port memory module and associated memory controller
US10318302B2 (en) * 2016-06-03 2019-06-11 Synopsys, Inc. Thread switching in microprocessor without full save and restore of register file
US20180032335A1 (en) * 2016-07-31 2018-02-01 Microsoft Technology Licensing, Llc Transactional register file for a processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000008555A1 (en) 1998-08-06 2000-02-17 Koninklijke Philips Electronics N.V. Data processing device
US20040093484A1 (en) 1999-06-21 2004-05-13 Pts Corporation Methods and apparatus for establishing port priority functions in a VLIW processor
US20050278510A1 (en) 2004-05-12 2005-12-15 Stmicroelectronics Limited Pseudo register file write ports

Also Published As

Publication number Publication date
KR20210095599A (ko) 2021-08-02
CN111857823A (zh) 2020-10-30
KR102579097B1 (ko) 2023-09-15
CN111857823B (zh) 2024-10-29
EP3940531A1 (en) 2022-01-19
JP2021168189A (ja) 2021-10-21
US20210318883A1 (en) 2021-10-14

Similar Documents

Publication Publication Date Title
EP3686741B1 (en) Backward compatibility testing of software in a mode that disrupts timing
JP7159223B2 (ja) キャッシュの競合を管理するための方法およびシステム
TWI514275B (zh) 用於以自發載入延遲與轉換至預提取來消除管線阻塞之系統及方法
JP7229305B2 (ja) 命令実行結果をライトバックするための装置及び方法、処理装置
US10970214B2 (en) Selective downstream cache processing for data access
JP2008530642A (ja) 低レイテンシーの大量並列データ処理装置
US8977835B2 (en) Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency
US11861367B2 (en) Processor with variable pre-fetch threshold
US20060277425A1 (en) System and method for power saving in pipelined microprocessors
US11656971B2 (en) Technology for dynamically tuning processor features
CN107870780B (zh) 数据处理装置和方法
US20070260857A1 (en) Electronic Circuit
US20090319762A1 (en) Dynamic reconfigurable circuit and data transmission control method
CN115269011A (zh) 指令执行单元、处理单元及相关装置和方法
KR102382751B1 (ko) 명령을 프리페치하는 방법, 장치, 기기 및 매체
JP2022548864A (ja) シャドウラッチ構成のレジスタファイルを用いたビット幅再構成
US7519794B2 (en) High performance architecture for a writeback stage
JP2024529665A (ja) マスクされたシフト加算演算
CN118672655A (zh) 指令处理装置、方法、处理器、电子设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210714

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221012

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230214

R150 Certificate of patent or registration of utility model

Ref document number: 7229305

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150