(57)【要約】  データ処理方法、装置、及び関連製品を提供する。製品は、制御モジュールを備え、制御モジュールが、命令キャッシュユニットと、命令処理ユニットと、記憶キューユニットと、を備える。命令キャッシュユニットは、人工ニューラルネットワーク演算に関連する計算命令を記憶し、命令処理ユニットは、計算命令を解析して複数の演算命令を得、記憶キューユニットは、命令キューを記憶する。当該命令キューは、当該キューの前後順序に従って実行を待機している複数の演算命令または計算命令を含む。これにより、関連製品がニューラルネットワークモデルを演算するときの演算効率を向上させることができる。【選択図】図３ａ
2021520591.tif 000002
【特許請求の範囲】
【請求項１】
データ処理方法であって、
復号化後の第１の処理命令のオペランドにテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記記述子の内容を取得することと、
前記記述子の内容に基づいて、前記第１の処理命令を実行することと、を含むことを特徴とするデータ処理方法。
【請求項２】
請求項１に記載の方法であって、前記記述子の内容に基づいて、前記第１の処理命令を実行することは、
前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することと、
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することと、を含むことを特徴とするデータ処理方法。
【請求項３】
請求項１に記載の方法であって、
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令における記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得することと、
前記記述子の登録パラメータに基づいて、前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定することと
前記記述子の登録パラメータおよび前記第２の記憶領域に基づいて、前記記述子の内容を確定することによって、前記記述子と前記第２の記憶領域との間の対応関係を構築することと、
前記記述子の内容を前記第１の記憶領域に記憶することと、をさらに含むことを特徴とするデータ処理方法。
【請求項４】
請求項１に記載の方法であって、
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令における記述子の識別子を取得することと、
前記記述子の識別子に基づいて、前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放することと、をさらに含むことを特徴とするデータ処理方法。
【請求項５】
請求項１に記載の方法であって、
前記第１の処理命令が記述子変更命令である場合、前記第１の処理命令における記述子の、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む変更パラメータを取得することと、
前記記述子の変更パラメータに基づいて、前記記述子の更新待ち内容を確定することと、
更新待ち内容に基づいて、記述子記憶空間における前記記述子の内容、及び／又は、データ記憶空間におけるテンソルデータの内容を更新することと、をさらに含むことを特徴とするのデータ処理方法。
【請求項６】
請求項１に記載の方法であって、
前記記述子の識別子に基づいて、処理未完成の第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランドに前記記述子の識別子を有する処理命令を含む第２の処理命令が、存在するか否かを確定することと、
処理未完成の第２の処理命令が存在する場合、前記第１の処理命令をブロックまたはキャッシュすることと、をさらに含むことを特徴とするデータ処理方法。
【請求項７】
データ処理装置であって、
復号化後の第１の処理命令のオペランドにテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記記述子の内容を取得するための内容取得モジュールと、
前記記述子の内容に基づいて、前記第１の処理命令を実行するための命令実行モジュールと、を備えることを特徴とするデータ処理装置。
【請求項８】
ニューラルネットワークチップであって、
請求項７に記載のデータ処理装置を備えることを特徴とするニューラルネットワークチップ。
【請求項９】
電子デバイスであって、
請求項８に記載のニューラルネットワークチップを備えることを特徴とする電子デバイス。
【請求項１０】
ボードカードであって、
記憶デバイスと、インターフェース装置と、制御デバイスと、請求項８に記載のニューラルネットワークチップと、を備え、
ここで、前記ニューラルネットワークチップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記ニューラルネットワークチップと外部デバイスとの間のデータ伝送を実現し、
前記制御デバイスは、前記ニューラルネットワークチップの状態を監視制御する
ことを特徴とするボードカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術の分野に関し、特に、データ処理方法、装置、及び関連製品に関する。
【背景技術】
【０００２】
人工知能技術の継続的な発展に伴って、その応用分野はますます広範になり、画像認識、音声認識、自然言語処理などの分野で十分に適用されている。ただし、人工知能アルゴリズムの複雑度の増大に伴って、処理する必要のあるデータ量とデータの次元とがいずれも継続的に増加している。関連技術において、プロセッサは、一般的に、命令のパラメータを取得することでデータアドレスを確定し、次に、データアドレスに基づいてデータの読み取りと使用を完成する。これにより、技術者は、パラメータを設計するときに、データアクセスの関連パラメータ（例えば、データ間またはデータ次元間の相互関係など）を設定することによって、命令を生成してからプロセッサに伝送することでデータアクセスを完成する必要があり、当該方式はプロセッサの処理効率を低下させた。
【発明の概要】
【０００３】
本発明は、これに鑑みて、データ処理技術案を提案した。
本発明の一態様によれば、データ処理方法が提供され、当該方法は、復号化後の第１の処理命令のオペランドにテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記記述子の内容を取得することと、前記記述子の内容に基づいて、前記第１の処理命令を実行することと、を含む。
【０００４】
本発明のもう一態様によれば、データ処理装置が提供され、当該装置は、復号化後の第１の処理命令のオペランドにテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記記述子の内容を取得するための内容取得モジュールと、前記記述子の内容に基づいて、前記第１の処理命令を実行するための命令実行モジュールと、を備える。
本発明のもう一態様によれば、ニューラルネットワークチップが提供され、前記チップは、上記のデータ処理装置を含む。
本発明のもう一態様によれば、電子デバイスが提供され、前記電子デバイスは、上記のニューラルネットワークチップを含む。
【０００５】
本発明のもう一態様によれば、ボードカードを提供し、前記ボードカードは、格納記憶デバイスと、インターフェース装置と、制御デバイスと、上記のニューラルネットワークチップと、を備え、ここで、前記ニューラルネットワークチップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記ニューラルネットワークチップと外部デバイスとの間のデータ伝送を実現し、前記制御デバイスは、前記ニューラルネットワークチップの状態を監視制御するためである。
【０００６】
本発明の実施例によると、テンソル形状を示す記述子を導入することにより、復号化された処理命令のオペランドに記述子識別子が含まれる場合に、対応する記述子内容を確定し、且つ、記述子内容に基づいて当該処理命令を実行することによって、データアクセスの複雑度を低下させ、データアクセスの効率を向上させることができる。
以下の図面を参照した例示的な実施例の詳細な説明によれば、本発明の他の特徴および態様が明らかになる。
【図面の簡単な説明】
【０００７】
明細書に含まれて明細書の一部を構成する図面は、明細書と一緒に本発明の例示的な実施例、特徴、および、態様を示し、且つ、本発明の原理を解釈するために使用される。
【０００８】
【図１ａ】図１ａは、本発明の実施例に係るデータ処理方法を示すフローチャートである。
【図１ｂ】図１ｂは、本発明の実施例に係るデータ処理装置を示すブロック図である。
【図１ｃ】図１ｃは、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【図１ｄ１】図１ｄ１は、本発明の実施例に係る適用シナリオを示す模式図である。
【図１ｄ２】図１ｄ２は、本発明の実施例に係るプロセッサ操作方法を示すフローチャートである。
【図１ｅ】図１ｅは、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【図１ｆ】図１ｆは、本発明の実施例に係るデータ処理方法を示すフローチャートである。
【図１ｇ】図１ｇは、本発明の実施例に係るプロセッサ操作方法を示すフローチャートである。
【０００９】
【図２】図２は、本発明の実施例に係るデータ記憶空間を示す模式図である。
【図３ａ】図３ａは、本発明の実施例に係るデータ処理装置を示すブロック図である。
【図３ｂ】図３ｂは、本発明の実施例に係るデータ処理方法を示すフローチャートである。
【図３ｃ１】図３ｃ１は、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【図３ｃ２】図３ｃ２は、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【図３ｃ３】図３ｃ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｃ４】図３ｃ４は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｃ５】図３ｃ５は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｄ】図３ｄは、本発明の実施例に係るプロセッサ操作装置を示すブロック図である。
【図３ｅ】図３ｅは、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｆ】図３ｆは、本発明の実施例に係るデータ処理装置を示すブロック図である。
【図３ｇ】図３ｇは、本発明の実施例に係るプロセッサ操作装置を示すブロック図である。
【００１０】
【図４】図４は、本発明の実施例に係るボードカードの構成を示すブロック図である。
【図５ａ】
【図５ｂ】図５ａと図５ｂは、本発明の実施例に係るプロセッサ操作方法の適用シナリオを示す模式図である。
【図６ａ】
【図６ｂ】図６ａと図６ｂは、本発明の実施例に係るプロセッサ操作方法の適用シナリオを示す模式図である。
【図７ａ】
【図７ｂ】図７ａと図７ｂは、本発明の実施例に係るプロセッサ操作方法の適用シナリオを示す模式図である。
【図８】図８は、本発明の実施例に係るプロセッサ操作方法を示す循環バッファ記憶領域の模式図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の様々な例示的な実施例、特徴、および、態様を詳細に説明する。図面中の同じ符号は、機能が同じまたは類似の要素を示す。図面に実施例の様々な態様が示されているが、特に明記しない限り、図面は必ずしも比例して描かれているわけではない。
【００１２】
ここでの「例示的」という専門の単語は、「例、実施例、または、説明性として役立つ」ことを意味する。ここで「例示的」として説明されているいかなる実施例は、他の実施例よりも優れているまたはより優れていると解釈される必要はない。
【００１３】
また、本発明をよりよく説明するために、以下の具体的な実施形態では、多くの具体的な細かいところが与えられている。当業者は、いくつかの具体的な細かいところがないでも、本発明を同様に実施できることを理解すべきである。いくつかの実例では、本発明の要旨を強調するように、当業者にとって周知の方法、手段、要素、および、回路は、詳細には説明されていない。
【００１４】
本発明の実施例によると、データ処理方法が提供される。図１ａは、本発明の実施例に係るデータ処理方法を示すフローチャートである。図１ａに示されたように、当該データ処理方法は、以下のステップを含む。
【００１５】
ステップＳ１１ａにおいて、復号化後の第１の処理命令のオペランドにテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記記述子の内容を取得する。
ステップＳ１２ａにおいて、前記記述子の内容に基づいて、前記第１の処理命令を実行する。
【００１６】
本発明の実施例によると、テンソル形状を示す記述子を導入することにより、復号化された処理命令のオペランドに記述子識別子が含まれる場合に、対応する記述子内容を確定し、且つ、記述子内容に基づいて当該処理命令を実行することによって、データアクセスの複雑度を低下させ、データアクセスの効率を向上させることができる。
【００１７】
例を挙げると、当該データ処理方法は、プロセッサに適用でき、当該プロセッサは、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）と、専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサ、または、デジタル信号プロセッサなど）を含んでもよい。本発明は、プロセッサのタイプに対して限定しない。
【００１８】
可能な一実現形態において、処理待ちのデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよく、ここで、テンソルは、様々な形式のデータ構成方式を含んでもよい。テンソルは、異なる次元のものであってもよく、例えば、スカラーは０次元のテンソル、ベクトルは１次元のテンソル、行列は２次元または２次元以上のテンソルと見なしてもよい。テンソルの形状は、テンソルの次元やテンソルの各次元のサイズなどの情報を含む。例を挙げると、以下のテンソルの場合、
2021520591.tif 000003
【００１９】
当該テンソルの形状は、記述子によって（２、４）として記述されてもよく、すなわち、二つのパラメータによって当該テンソルが２次元テンソルであることを示し、且つ、当該テンソルの第１の次元（列）のサイズは２であり、第２の次元（行）のサイズは４である。本願は記述子がテンソル形状を示す方式を限定しないことを説明する必要がある。メモリにテンソルデータを記憶する場合、そのデータアドレス（または記憶領域）によってはテンソルデータの形状を確定できず、さらに複数のテンソルデータ間の相互関係などの関連情報も確定できないので、プロセッサのテンソルデータのアクセス効率が低くなる。
【００２０】
この場合、記述子（テンソル記述子）を導入して、テンソル（Ｎ次元のテンソルデータ）の形状を示すことができる。ここで、Ｎの値は、テンソルデータの次元数（回数）に基づいて確定してもよいし、テンソルデータの使用の必要性に基づいて設定してもよい。例えば、Ｎの値が３である場合、テンソルデータは３次元のテンソルデータであり、記述子は、当該３次元のテンソルデータの、三つの次元方向上の形状（例えば、オフセット量、サイズなど）を示すために使用できる。当業者は、実際の必要によってＮの値を設置でき、本発明はこれに対して限定しないことを理解すべきである。
【００２１】
可能な一実現形態において、記述子は、識別子や内容などを含んでもよい。記述子の識別子は、記述子を区別するために使用でき、例えば、記述子の識別子は番号である。記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータ（例えば、テンソルの各次元方向上のサイズなど）を含んでもよく、さらに、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータ（例えば、データ基準点の基準アドレス）を含んでもよい。本発明は、記述子の内容に含まれる具体的なパラメータに対して限定しない。
【００２２】
記述子を使用してテンソルデータを示す方式によって、テンソルデータの形状を表現でき、さらに、複数のテンソルデータ間の相互関係などの関連情報も確定できるので、テンソルデータに対するアクセス効率を向上させる。
【００２３】
可能な一実現形態において、処理命令が受信されると、まず処理命令を復号化（デコード）することができる。ここで、前記方法は、受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得ることをさらに含み、
【００２４】
ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードは、前記第１の処理命令に対応する処理タイプを示すために使用される。
【００２５】
この場合、第１の処理命令が復号化された後、復号化後の第１の処理命令（マイクロ命令）を得ることができる。ここで、第１の処理命令は、データアクセス命令、演算命令、記述子管理命令、および同期命令などを含んでもよい。本発明は、第１の処理命令の具体的なタイプ、および、復号化の具体的な方式に対して限定しない。
【００２６】
当該復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含むことができ、オペレーションコードは、第１の処理命令に対応する処理タイプを示すために使用され、オペランドは、処理待ちのデータを示すために使用される。例えば、当該命令は、Ａｄｄ；Ａ；Ｂのように表されることができ、ここで、Ａｄｄはオペレーションコードであり、ＡとＢはオペランドであり、当該命令はＡとＢの加算に使用される。本発明は、復号化後の命令のオペランドの数および命令の表示形式に対して限定しない。
【００２７】
可能な一実現形態において、復号化後の第１の処理命令のオペランドが記述子の識別子を含むと、当該記述子の識別子に基づいて記述子に対応する記述子記憶空間を確定でき、さらに、記述子記憶空間から記述子の内容（テンソルデータを表す形状、アドレスなどの情報を含む）を取得でき、その後、記述子の内容に基づいて第１の処理命令を実行することができる。
【００２８】
可能な一実現形態において、ステップＳ１２ａは、
前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することと、
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することと、を含んでもよい。
【００２９】
例を挙げると、記述子の内容に基づいて、第１の処理命令における記述子識別子を含むオペランドに対応するデータのデータ記憶空間におけるデータアドレスを計算し、さらに、当該データアドレスに基づいて対応する処理を実行することができる。例えば、命令Ａｄｄ；Ａ；Ｂの場合、オペランドＡとＢにそれぞれ記述子の識別子ＴＲ１とＴＲ２が含まれていると、プロセッサは、記述子の識別子ＴＲ１とＴＲ２に基づいてそれぞれＴＲ１とＴＲ２に対応する記述子記憶空間を確定し、記述子記憶空間における内容（例えば、形状パラメータとアドレスパラメータ）を読み取ることができ、記述子の内容に基づいて、データＡとＢのデータアドレスを計算することができる。例えば、Ａのメモリにおけるデータアドレス１はＡＤＤＲ６４〜ＡＤＤＲ１２７であり、Ｂのメモリにおけるデータアドレス２はＡＤＤＲ１０２３〜ＡＤＤＲ１０８７である。その後、プロセッサは、アドレス１とアドレス２からそれぞれデータを読み取って、加算（Ａｄｄ）演算を実行して、演算結果（Ａ＋Ｂ）を得ることができる。
【００３０】
可能な一実現形態において、本発明の実施例に係る方法は、関連技術のハードウェア構造によって実現できる。この場合、当該方法を適用するプロセッサは、制御ユニットと実行ユニットとを備えてもよい。制御ユニットは、制御するために使用され、例えば、メモリまたは外部から導入される命令を読み取って、命令を復号化（デコード）し、該当する部品にマイクロ操作制御信号などを送信する。実行ユニットは、具体的な命令を実行するために使用され、例えば算術論理ユニット（ａｒｉｔｈＭｅｔｉｃ ａｎｄ ｌｏｇｉｃ ｕｎｉｔ、ＡＬＵ）、メモリアクセスユニット（ＭｅＭｏｒｙ ａｃｃｅｓｓ ｕｎｉｔ、ＭＡＵ）、人工知能演算ユニット（ｎｅｕｒａｌ ｆｕｎｃｔｉｏｎａｌ ｕｎｉｔ、ＮＦＵ）などである。本発明は、実行ユニットの具体的なハードウェアタイプに対して限定しない。
【００３１】
可能な一実現形態において、制御ユニットによって命令を復号化して復号化後の第１の処理命令を得ることができ、復号化後の第１の処理命令のオペランドが記述子の識別子を含むと、制御ユニットは記述子に対応する記述子記憶空間を確定し、且つ、記述子記憶空間から記述子の内容（形状、アドレスなどの情報）を取得することができ、その後、実行ユニットが記述子の内容に基づいて第１の処理命令を実行するように、制御ユニットは記述子の内容および第１の処理命令を実行ユニットに送信することことができる。実行ユニットは、記述子の内容および第１の処理命令が受信されると、可以記述子の内容に基づいて、第１の処理命令における記述子識別子を含むオペランドに対応するデータのデータ記憶空間におけるデータアドレスを計算し、さらに、当該データアドレスに基づいて対応する処理を実行することができる。
【００３２】
例えば、命令Ａｄｄ；Ａ；Ｂの場合、オペランドＡとＢにそれぞれ記述子の識別子ＴＲ１とＴＲ２が含まれていると、制御ユニットによってＴＲ１とＴＲ２に対応する記述子記憶空間を確定し、記述子記憶空間における内容（例えば、形状パラメータとアドレスパラメータ）を読み取って実行ユニットに送信することができる。実行ユニットは、記述子の内容を受信した後、データＡとＢのデータアドレスを計算することができる。例えば、Ａのメモリにおけるアドレス１はＡＤＤＲ６４〜ＡＤＤＲ１２７であり、Ｂのメモリにおけるアドレス２はＡＤＤＲ１０２３〜ＡＤＤＲ１０８７である。その後、実行ユニットは、アドレス１とアドレス２からそれぞれデータを読み取って、加算（Ａｄｄ）演算を実行して、演算結果（Ａ＋Ｂ）を得ることができる。
【００３３】
可能な一実現形態において、関連技術のハードウェア構造を改善して、本発明の実施例に係る方法を実現することができる。例えば、記述子に関連した操作を実現するように、制御ユニットにおけるテンソル制御モジュールを設けて、例えば、記述子の登録、変更、および、取り消し、記述子内容の読み書きなど、ことができる。テンソル制御モジュールは、例えばテンソルインターフェースユニット（Ｔｅｎｓｏｒ ｉｎｔｅｒｆａｃｅ Ｕｎｉｔ、ＴＩＵ）であり、本発明は、テンソル制御モジュールの具体的なハードウェアタイプに対して限定しない。このような方式によって、専用のハードウェアによって記述子に関連した操作を実現することによって、テンソルデータのアクセス効率をさらに向上させることができる。
【００３４】
この場合、制御ユニットで復号化後の第１の処理命令のオペランドが記述子の識別子を含むと、テンソル制御モジュールによって記述子に対応する記述子記憶空間を確定でき、記述子記憶空間を確定した後、記述子記憶空間から記述子の内容（形状、アドレスなどの情報）を取得できる。その後、実行ユニットが記述子の内容に基づいて第１の処理命令を実行するように、制御ユニットは記述子の内容および第１の処理命令を実行ユニットに送信するすることができる。
【００３５】
可能な一実現形態において、テンソル制御モジュールは、例えば、記述子の登録、変更、および、取り消し、記述子内容の読み書き、データアドレスの計算およびデータアクセス命令の実行などの、記述子に関連した操作および命令の実行をさらに実現できる。この場合、制御ユニットで復号化後の第１の処理命令のオペランドが記述子の識別子を含むと、テンソル制御モジュールによって記述子に対応する記述子記憶空間を確定でき、記述子記憶空間を確定した後、記述子記憶空間から記述子の内容を取得でき、記述子の内容に基づいて、テンソル制御モジュールにより第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、データアドレスに基づいて、テンソル制御モジュールにより前記第１の処理命令に対応するデータ処理を実行できる。
【００３６】
本発明は、本発明の実施例の方法を実現するために使用する具体的なハードウェア構造に対して限定しない。
【００３７】
このような方式によって、記述子記憶空間から記述子内容を取得し、さらにデータアドレスを取得できて、アクセスするたびに命令によってアドレスを導入する必要がなく、プロセッサのデータアクセス効率を向上させた。
【００３８】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、制御ユニットの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなど）における記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、制御ユニットの内部メモリ（例えば、オンチップキャッシュ）または制御ユニットと接続された外部メモリ（オフチップメモリ）における記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【００３９】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同じ領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスはＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１は記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３は記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３は記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【００４０】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタにおける記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【００４１】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子におけるデータは、即時値にすることも、専用レジスタから取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタにおける記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュにおけるテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【００４２】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【００４３】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、実行ユニットは、記述子の内容に基づいて、オペランドに対応するデータのデータアドレスを確定し、その後、に第１の処理命令を実行できる。
【００４４】
可能な一実現形態において、記述子の識別子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【００４５】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【００４６】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスがデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間における１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスが当該データブロックのデータ記憶空間における物理アドレスである。
【００４７】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記テンソルデータのデータ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータ中の点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータマッピングの３次元空間における点または領域の位置であることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【００４８】
図２は、本発明の一実施例に係るデータ記憶空間を示す模式図である。図２に示されたように、データ記憶空間２１は、行優先の方式を使用して一つの２次元データを記憶し、（ｘ、ｙ）によって（ここで、Ｘ軸は水平方向に右向きであり、Ｙ軸は垂直方向に下向きである）表すことができ、Ｘ軸方向におけるサイズ（各行のサイズ）がｏｒｉ_ｘ（図示せず）であり、Ｙ軸方向上のサイズ（全行数）がｏｒｉ_ｙ（図示せず）であり、データ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔ（基準アドレス）が１番目のデータブロック２２の物理アドレスである。データブロック２３は、データ記憶空間２１における一部のデータであり、Ｘ軸方向におけるオフセット量２５がｏｆｆｓｅｔ_ｘで表し、Ｙ軸方向におけるオフセット量２４がｏｆｆｓｅｔ_ｙで表し、Ｘ軸方向におけるサイズがｓｉzｅ_ｘで表し、Ｙ軸方向におけるサイズがｓｉzｅ_ｙで表す。
【００４９】
可能な一実現形態において、記述子を使用してデータブロック２３を定義する場合、記述子のデータ基準点はデータ記憶空間２１の１番目のデータブロックを使用でき、記述子の基準アドレスはデータ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔであり、その後、データ記憶空間２１のＸ軸におけるサイズｏｒｉ_ｘ、Ｙ軸におけるサイズｏｒｉ_ｙ、および、データブロック２３のＹ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｙ、Ｘ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｘ、Ｘ軸方向におけるサイズｓｉzｅ_ｘおよびＹ軸方向におけるサイズｓｉzｅ_ｙと組み合わせることにより、データブロック２３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（１）を使用して記述子の内容を表すことができる。
2021520591.tif 000004
【００５０】
上記の例では、記述子が記述したのは２次元空間であるが、当業者は実際の状況に従って記述子の内容が表す次元を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【００５１】
可能な一実現形態において、前記記述子のデータ基準点の前記データ記憶空間における基準アドレス、および、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置に基づいて、前記テンソルデータの記述子の内容を確定できる。
【００５２】
例を挙げると、記述子のデータ基準点のデータ記憶空間における基準アドレスＰＡ_ｂａｓｅ、および、対角位置の二つの頂点のデータ基準点に対する位置を使用することにより、図２におけるデータブロック２３の記述子の内容を確定できる。まず、記述子のデータ基準点およびそのデータ記憶空間における基準アドレスＰＡ_ｂａｓｅを確定し、例えば、データ記憶空間２１中で一つのデータ（例えば、位置が（２、２）であるデータである）をデータ基準点として選択し、当該データのデータ記憶空間における物理アドレスを基準アドレスＰＡ_ｂａｓｅとし、その後、データブロック２３の対角位置の少なくとも二つの頂点のデータ基準点に対する位置を確定できる。例えば、左上から右下への方向の対角位置頂点のデータ基準点に対する位置を使用し、ここで、左上の頂点の相対位置は（ｘ_ｍｉｎ、ｙ_ｍｉｎ）であり、右下の頂点の相対位置は（ｘ_ｍａｘ、ｙ_ｍａｘ）であり、その後、基準アドレスＰＡ_ｂａｓｅ、左上の頂点の相対位置（ｘ_ｍｉｎ、ｙ_ｍｉｎ）、および、右下の頂点の相対位置（ｘ_ｍａｘ、ｙ_ｍａｘ）に基づいて、データブロック２３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（２）を使用して記述子の内容を表すことができる。
2021520591.tif 000005
【００５３】
上記の例では左上と右下の二つの頂点を使用して記述子の内容を確定したが、当業者は実際の必要に従って少なくとも二つの頂点の具体的な頂点を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【００５４】
可能な一実現形態において、前記記述子のデータ基準点の前記データ記憶空間における基準アドレス、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係に基づいて、前記テンソルデータの記述子の内容を確定できる。ここで、データ記述位置とデータアドレスとの間のマッピング関係は、実際の必要に従って設定でき、例えば、記述子が示すテンソルデータが３次元空間データである場合、関数ｆ(ｘ、ｙ、z)を使用することでデータ記述位置とデータアドレスとの間のマッピング関係を定義できる。
可能な一実現形態において、以下の式（３）を使用して記述子の内容を表すことができる。
2021520591.tif 000006
【００５５】
当業者は、実際の状況に従ってデータ記述位置とデータアドレスとの間のマッピング関係を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【００５６】
式（１）を使用して記述子の内容を表す場合、テンソルデータにおける任意の一つのデータ点に対して、そのデータ記述位置を(ｘｑ、ｙｑ)に設定すると、当該データ点のデータ記憶空間におけるデータアドレス
2021520591.tif 000007
は、以下の式（４）を使用して確定できる。
2021520591.tif 000008
【００５７】
このような方式によって、実行ユニットは、記述子の内容に基づいて記述子が示すテンソルデータのデータ記憶空間におけるデータアドレスを計算し、さらに、当該アドレスに基づいて処理命令に対応する処理を実行できる。
【００５８】
可能な一実現形態において、記述子の管理命令に基づいて記述子の登録、変更、および、取り消しなどの管理を実現し、且つ、これらの管理命令に対して該当するオペレーションコードを設定できる。例えば、記述子登録命令（ＴＲＣｒｅａｔ）に基づいて記述子を登録（作成）し、記述子変更命令に基づいて記述子の各パラメータ（形状、アドレスなど）を変更し、記述子取り消し命令（ＴＲＲｅｌｅａｓｅ）に基づいて記述子を取り消す（削除）ことができる。本発明は、記述子の管理命令の種類およびオペレーションコードの具体的な設定に対して限定しない。
可能な一実現形態において、前記方法は、
【００５９】
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令における記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得することと、
【００６０】
前記記述子の登録パラメータに基づいて、前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定することと、
【００６１】
前記記述子と前記第２の記憶領域との間の対応関係を構築するように、前記記述子の登録パラメータおよび前記第２の記憶領域に基づいて、前記記述子の内容を確定することと、
前記記述子の内容を前記第１の記憶領域に記憶することと、をさらに含む。
【００６２】
例を挙げると、記述子登録命令は、記述子を登録するために使用でき、当該命令には記述子の登録パラメータを含んでもよい。当該登録パラメータは、記述子の識別子（ＩＤ）、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含んでもよい。例えば、当該登録パラメータは、識別子ＴＲ０、および、テンソル形状（次元数、各次元のサイズ、オフセット量、開始データアドレスなど）を含んでもよい。本発明は、登録パラメータの具体的な内容に対して限定しない。
【００６３】
可能な一実現形態において、復号化後の第１の処理命令のオペレーションコードに基づいて当該命令が記述子登録命令であると確定する場合、第１の処理命令における登録パラメータに基づいて、該当する記述子を作成できる。ここで、制御ユニットまたはテンソル制御モジュールによって該当する記述子を作成でき、本発明はこれに対して限定しない。
【００６４】
可能な一実現形態において、まず記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定できる。
【００６５】
例を挙げると、記憶領域の中の少なくとも一つを既に予め設定したとすると、第１の記憶領域及び／又は第２の記憶領域を直接確定できる。例えば、記述子内容とテンソルデータ内容とを同じ記憶空間に記憶すると予め設定し、且つ、記述子の識別子ＴＲ０に対応する記述子の内容の記憶アドレスがＡＤＤＲ３２〜ＡＤＤＲ６３であり、テンソルデータの内容の記憶アドレスがＡＤＤＲ６４〜ＡＤＤＲ１０２３であると、この二つのアドレスが第１の記憶領域および第２の記憶領域であると直接確定できる。
【００６６】
可能な一実現形態において、記憶領域を予め設定しないと、記述子内容に対して記述子記憶空間の中で第１の記憶領域を割り当て、且つ、テンソルデータ内容に対してデータ記憶空間の中で第２の記憶領域を割り当てることができる。ここで、制御ユニットまたはテンソル制御モジュールによって記憶領域を割り当てることができる。本発明はこれに対して限定しない。
【００６７】
可能な一実現形態において、登録パラメータの中のテンソル形状および前記第２の記憶領域のデータアドレスに基づいて、テンソル形状とアドレスとの間の対応関係を構築し、さらに記述子内容を確定することによって、データ処理の際に記述子内容に基づいて対応するデータアドレスを確定することができる。記述子内容を確定した後、それを第１の記憶領域の中に記憶し、記述子の登録過程を完成できる。
【００６８】
例えば、図２に示されたテンソルデータ２３について、登録パラメータは、データ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔ（基準アドレス）、Ｘ軸方向におけるオフセット量２５（ｏｆｆｓｅｔ_ｘで表す）、Ｙ軸方向におけるオフセット量２４（ｏｆｆｓｅｔ_ｙで表す）、Ｘ軸方向におけるサイズ（ｓｉzｅ_ｘで表す）、および、Ｙ軸方向におけるサイズ（ｓｉzｅ_ｙで表す）を含んでもよい。これらのパラメータに基づいて、記述子の内容を式（１）で表すことができ、それを第１の記憶領域中に記憶することによって、記述子の登録過程を完成できる。
【００６９】
このような方式によって、記述子登録命令に基づいて記述子を自動的に作成し、記述子が示すテンソルとデータアドレスとの間の対応を実現することによって、データ処理の際に記述子内容に基づいてデータアドレスを取得でき、プロセッサのデータアクセス効率を向上させる。
可能な一実現形態において、前記方法は、
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令における記述子の識別子を取得することと、
【００７０】
前記記述子の識別子に基づいて、前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放することと、をさらに含む。
【００７１】
例を挙げると、記述子が占用された空間を解放できるように、記述子取り消し命令は、記述子を取り消し（削除）するために使用することができる。当該命令は、記述子の識別子を少なくとも含んでもよい。
【００７２】
可能な一実現形態において、復号化後の第１の処理命令のオペレーションコードに基づいて当該命令が記述子取り消し命令であると確定する場合、第１の処理命令における記述子識別子に基づいて、該当する記述子を取り消すことができる。制御ユニットまたはテンソル制御モジュールによって該当する記述子を取り消すことができる。本発明はこれに対して限定しない。
【００７３】
可能な一実現形態において、記述子の識別子に基づいて、当該記述子の記述子記憶空間における記憶領域、及び／又は、記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域を解放することによって、当該記述子の各記憶領域に対する占用を解除できる。
【００７４】
このような方式によって、記述子の使用が終了した後に記述子によって占用された空間を解放して、限られた記憶リソースを繰り返して利用できて、リソースの利用効率を向上させた。
可能な一実現形態において、前記方法は、
【００７５】
前記第１の処理命令が記述子変更命令である場合、前記第１の処理命令における記述子の、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む変更パラメータを取得することと、
前記記述子の変更パラメータに基づいて、前記記述子の更新待ち内容を確定することと、
【００７６】
更新待ち内容に基づいて、前記記述子記憶空間における前記記述子の内容、及び／又は、データ記憶空間におけるテンソルデータの内容を更新することと、をさらに含む。
【００７７】
例を挙げると、記述子変更命令は、記述子の例えば識別子、テンソル形状などの様々なパラメータを変更するために使用できる。当該命令は、変更パラメータを含むことができ、当該変更パラメータは、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む。本発明は、変更パラメータの具体的な内容に対して限定しない。
【００７８】
可能な一実現形態において、復号化後の第１の処理命令のオペレーションコードに基づいて当該命令が記述子変更命令であると確定する場合、第１の処理命令における変更パラメータに基づいて、記述子の更新待ち内容を確定でき、例えば、テンソルの次元を３次元から２次元に変更し、テンソルの一つまたは複数の次元方向におけるサイズを変更する。
【００７９】
可能な一実現形態において、更新待ち内容を確定した後、テンソルデータを変更して更新後の記述子内容が変更後のテンソルデータの形状を示すように、記述子記憶空間における記述子内容、及び／又は、データ記憶空間におけるテンソルデータの内容を更新することができる。本発明は、更新待ち内容の範囲および具体的な更新方式に対して限定しない。
【００８０】
このような方式によって、記述子とテンソルデータとの間の対応が維持できて、リソースの利用効率が向上されるように、記述子が示すテンソルデータに変更が発生された場合、記述子を直接変更することができる。
可能な一実現形態において、前記方法は、
【００８１】
前記記述子の識別子に基づいて、処理未完成の第２の処理命令であって、命令キューにおける前記第１の処理命令の前に位置し、且つ、オペランドにおける前記記述子の識別子を有する処理命令を含む第２の処理命令が、存在するか否かを確定することと、
処理未完成の第２の処理命令が存在する場合、前記第１の処理命令をブロックまたはキャッシュすることと、をさらに含む。
【００８２】
例を挙げると、記述子を設定した後、記述子に基づいて命令間の依存関係の判断を実行できる。復号化後の第１の処理命令のオペランドが記述子の識別子を含むと、当該第１の処理命令のプリアンブル命令における当該第１の処理命令と依存関係を有する命令が存在するか否かを確定できる。
【００８３】
この場合、命令キュー中の第１の処理命令の前の命令（プリアンブル命令）について、プリアンブル命令のオペランドにおける前記記述子の識別子が有すると、当該プリアンブル命令が当該第１の処理命令と依存関係を有する第２の処理命令であるとして見なすことができる。第１の処理命令のオペランドにおける複数の記述子の識別子が有する場合、各々の記述子に対応する依存関係をそれぞれ判断でき、つまり、オペランドの中に有する複数の記述子の中の少なくとも一つの記述子の識別子のプリアンブル命令を、依存関係を有する第２の処理命令とする。制御ユニット中で依存関係判断モジュールを設置することによって処理命令間の依存関係を判断でき、本発明はこれに対して限定しない。
【００８４】
可能な一実現形態において、処理未完成の第２の処理命令が存在すると、第１の処理命令は第２の処理命令が完成された後に実行する必要がある。例えば、第１の処理命令が記述子ＴＲ０に対する演算命令であり、第２の処理命令が記述子ＴＲ０に対する書き込み命令であると、第２の処理命令と第１の処理命令との間に依存関係が有する。当該第２の処理命令の実行期間に、第１の処理命令を実行することができない。また、例えば、第２の処理命令が第１の処理命令に対する同期命令（ｓｙｎｃ）を含むと、第２の処理命令と第１の処理命令との間に依存関係が有し、当該第２の処理命令の実行が完成された後に、第１の処理命令を実行する必要がある。
【００８５】
可能な一実現形態において、処理未完成の第２の処理命令が存在すると、第１の処理命令をブロックでき、すなわち、第２の処理命令の実行が完成されるまでに、第１の処理命令およびその後の他の命令の実行を一時停止してから、第１の処理命令およびその後の他の命令を実行できる。
【００８６】
可能な一実現形態において、処理未完成の第２の処理命令が存在すると、第１の処理命令をキャッシュすることができ、すなわち、第１の処理命令を予め設定したキャッシュ空間に記憶して、他の命令の実行に影響を及ぼさないようにする。第２の処理命令の実行が完成された後に、キャッシュ空間における第１の処理命令を実行する。本発明は、処理未完成の第２の処理命令が存在する場合の第１の処理命令に対する処理方式に対して限定しない。
【００８７】
このような方式によって、命令タイプによって発生された命令間の依存関係および同期命令によって発生された依存関係を確定し、依存関係を有するプリアンブル命令が未完成処理である場合、第１の処理命令をブロックまたはキャッシュすることによって、命令の実行順序を保証し、データ処理の正確性を確保できる。
可能な一実現形態において、前記方法は、
前記記述子の識別子に基づいて、操作可能状態または操作不可状態を含む、前記記述子の現在の状態を、確定することと、
前記記述子が現在操作不可状態にある場合、前記第１の処理命令をブロックまたはキャッシュすることと、をさらに含む。
【００８８】
例を挙げると、記述子の状態の対応表を設定することによって（例えば、テンソル制御モジュールに記述子の状態の対応表を記憶する）、記述子の現在の状態を表示でき、記述子の状態は操作可能状態または操作不可状態を含む。
【００８９】
可能な一実現形態において、第１の処理命令のプリアンブル命令が当前記述子に対して操作を実行している（例えば、書き込みまたは読み取り）場合、記述子の現在状態を操作不可状態に設定できる。当該状態において、第１の処理命令を実行することができなく、第１の処理命令をブロックまたはキャッシュできる。逆に、当前記述子に対して操作を実行するプリアンブル命令がない場合、記述子の現在状態を操作可能状態に設定できる。当該状態において、第１の処理命令を実行できる。
【００９０】
可能な一実現形態において、記述子内容がレジスタＴＲ（テンソルレジスタ、Ｔｅｎｓｏｒ Ｒｅｇｉｓｔｅｒ）に記憶されている場合、記述子の状態対応表にＴＲの使用状況をさらに記憶することによって、ＴＲが占用されているか解放されているかを確定し、限られたレジスタリソースの管理を実現できる。
このような方式によって、記述子の状態に基づいて命令間の依存関係を判断することによって、命令の実行順序を保証し、データ処理の正確性を確保できる。
可能な一実現形態において、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
【００９１】
ここで、ステップＳ１１ａは、前記ソースデータと前記目的データの中の少なくとも一つが記述子の識別子を含む場合、前記記述子記憶空間から前記記述子の内容を取得することを含み、
【００９２】
ここで、ステップＳ１２ａは、前記記述子の内容に基づいて、前記ソースデータの第１のデータアドレス及び／又は前記目的データの第２のデータアドレスをそれぞれ確定することと、前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込むことと、を含む。
【００９３】
例を挙げると、データアクセス命令のオペランドは、ソースデータと目的データを含み、ソースデータのデータアドレスからデータを読み取って目的データのデータアドレスに書込むために使用される。第１の処理命令がデータアクセス命令である場合、記述子に基づいてテンソルデータのアクセスを実現できる。データアクセス命令のソースデータと目的データの中の少なくとも一つが記述子の識別子を含む場合、記述子の記述子記憶空間を確定できる。
【００９４】
可能な一実現形態において、ソースデータが第１の記述子の識別子を含み、且つ、目的データが第２の記述子の識別子を含むと、第１の記述子の第１の記述子記憶空間および第２の記述子の第２の記述子記憶空間をそれぞれ確定でき、その後、第１の記述子記憶空間および第２の記述子記憶空間から第１の記述子の内容および第２の記述子の内容をそれぞれ読み取り、第１の記述子および第２の記述子の内容に基づいて、ソースデータの第１のデータアドレスおよび目的データの第２のデータアドレスをそれぞれ計算でき、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって、アクセス過程全体を完成できる。
【００９５】
例えば、ソースデータはオフチップの読み取り待ちデータである、その第１の記述子の識別子は１であり、目的データはオンチップの一つの記憶空間であり、その第２の記述子の識別子は２であってもよい。ソースデータにおける第１の記述子の識別子１および目的データにおける第２の記述子の識別子２に基づいて、記述子記憶空間から第１の記述子の内容Ｄ１および第２の記述子の内容Ｄ２をそれぞれ取得できる。ここで、第１の記述子の内容Ｄ１および第２の記述子の内容は、それぞれ以下のように表すことができる。
2021520591.tif 000009
【００９６】
第１の記述子の内容Ｄ１および第１の記述子の内容Ｄ２に基づいて、ソースデータの開始物理アドレスＰＡ３および目的データの開始物理アドレスＰＡ４をそれぞれ取得して、それぞれ以下のように表すことができる。
2021520591.tif 000010
【００９７】
ソースデータの開始物理アドレスＰＡ３と目的データの開始物理アドレスＰＡ４、および、第１の記述子の内容Ｄ１と第２の記述子の内容Ｄ２に基づいて、第１のデータアドレスおよび第２のデータアドレスをそれぞれ確定し、且つ、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって（ＩＯチャンネルを介することができる）、Ｄ１が示すテンソルデータをＤ２が示す記憶空間にロードすることを完成できる。
【００９８】
可能な一実現形態において、ソースデータのみが第１の記述子の識別子を含むと、第１の記述子の第１の記述子記憶空間を確定でき、その後、第１の記述子記憶空間から第１の記述子の内容を読み取り、第１の記述子の内容に基づいて、ソースデータの第１のデータアドレスを計算でき、命令のオペランドにおける目的データの第２のデータアドレスに基づいて、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって、アクセス過程全体を完成できる。
【００９９】
可能な一実現形態において、目的データのみが第２の記述子の識別子を含むと、第２の記述子の第２の記述子記憶空間を確定でき、その後、第２の記述子記憶空間から第２の記述子の内容を読み取り、第２の記述子の内容に基づいて、目的データの第２のデータアドレスを計算でき、命令のオペランドにおけるソースデータの第１のデータアドレスに基づいて、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって、アクセス過程全体を完成できる。
【０１００】
このような方式によって、記述子を使用してデータのアクセスを完成できて、アクセスするたびに命令によってデータアドレスを導入する必要がなく、データアクセス効率を向上させた。
【０１０１】
可能な一実現形態において、前記第１の処理命令は、演算命令を含み、ステップＳ１２ａは、
前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することと、
前記データアドレスに基づいて、前記第１の処理命令に対応する演算を実行することと、を含む。
【０１０２】
例を挙げると、第１の処理命令が演算命令である場合、記述子に基づいてテンソルデータの演算を実現できる。演算命令のオペランドにおける記述子の識別子が含まれている場合、記述子の記述子記憶空間を確定でき、その後、記述子記憶空間から記述子の内容を読み取り、記述子の内容に基づいて、オペランドに対応するデータのアドレスを計算し、さらにデータアドレスからデータを読み取って演算を実行することによって、演算過程全体を完成できる。このような方式によって、演算の際に記述子を使用してデータの読み取りを完成できて、命令によってデータアドレスを導入する必要がなく、データ演算効率を向上させた。
【０１０３】
本発明の実施例に係るデータ処理方法によると、テンソル形状を示すことができる記述子を導入することによって、データ処理命令の運行過程で記述子に基づいてデータのアドレスを確定できるようになって、ハードウェアの観点から命令生成方式が簡略化され、データアクセスの複雑度を低下させ、且つ、プロセッサアクセスデータの効率を向上させた。
【０１０４】
図３ａは、本発明の実施例に係るデータ処理装置を示すブロック図である。図３ａに示されたように、本発明は、データ処理装置をさらに提供し、当該装置は、
【０１０５】
復号化後の第１の処理命令のオペランドにテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記記述子の内容を取得するための内容取得モジュール３１ａと、前記記述子の内容に基づいて、前記第１の処理命令を実行するための命令実行モジュール３２ａと、を備える。
【０１０６】
可能な一実現形態において、前記命令実行モジュールは、前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定するためのアドレス確定サブモジュールと、前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行するためのデータ処理サブモジュールと、を備える。
【０１０７】
可能な一実現形態において、前記装置は、前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令における記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得するための第１のパラメータ取得モジュールと、前記記述子の登録パラメータに基づいて、前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定するための領域確定モジュールと、前記記述子の登録パラメータおよび前記第２の記憶領域に基づいて、前記記述子の内容を確定することによって、前記記述子と前記第２の記憶領域との間の対応関係を構築するための内容確定モジュールと、前記記述子の内容を前記第１の記憶領域に記憶するための内容記憶モジュールと、をさらに備える。
【０１０８】
可能な一実現形態において、前記装置は、前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令における記述子の識別子を取得するための識別子取得モジュールと、前記記述子の識別子に基づいて、前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放するための空間解放モジュールと、をさらに備える。
【０１０９】
可能な一実現形態において、前記装置は、前記第１の処理命令が記述子変更命令である場合、前記第１の処理命令における記述子の、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む変更パラメータを取得するための第２のパラメータ取得モジュールと、前記記述子の変更パラメータに基づいて、前記記述子の更新待ち内容を確定するための更新内容確定モジュールと、更新待ち内容に基づいて、記述子記憶空間における前記記述子の内容、及び／又は、データ記憶空間におけるテンソルデータの内容を更新するための内容更新モジュールと、をさらに備える。
【０１１０】
可能な一実現形態において、前記装置は、前記記述子の識別子に基づいて、処理未完成の第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランド中に前記記述子の識別子を有する処理命令を含む第２の処理命令が、存在するか否かを確定するための命令確定モジュールと、処理未完成の第２の処理命令が存在する場合、前記第１の処理命令をブロックまたはキャッシュするための第１の命令キャッシュモジュールと、をさらに備える。
【０１１１】
可能な一実現形態において、前記装置は、前記記述子の識別子に基づいて、操作可能状態または操作不可状態を含む、前記記述子の現在の状態を、確定するための状態確定モジュールと、前記記述子が現在操作不可状態にある場合、前記第１の処理命令をブロックまたはキャッシュするための第２の命令キャッシュモジュールと、をさらに備える。
【０１１２】
可能な一実現形態において、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、ここで、前記内容取得モジュールは、前記ソースデータと前記目的データの中の少なくとも一つが記述子の識別子を含む場合、記述子記憶空間から前記記述子の内容を取得するための内容取得サブモジュールを備え、ここで、前記命令実行モジュールは、前記記述子の内容に基づいて、前記ソースデータの第１のデータアドレス及び／又は前記目的データの第２のデータアドレスをそれぞれ確定するための第１のアドレス確定サブモジュールと、前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込むためのアクセスサブモジュールと、を備える。
【０１１３】
可能な一実現形態において、前記第１の処理命令は、演算命令を含み、ここで、前記命令実行モジュールは、前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定するための第２のアドレス確定サブモジュールと、前記データアドレスに基づいて、前記第１の処理命令に対応する演算を実行するための演算サブモジュールと、を備える。
【０１１４】
可能な一実現形態において、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、ここで、前記記述子の内容が、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０１１５】
可能な一実現形態において、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容が、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０１１６】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含み、ここで、前記テンソルデータの形状パラメータは、前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
【０１１７】
可能な一実現形態において、前記装置は、受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得るための復号化モジュールをさらに備え、ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードは、前記第１の処理命令に対応する処理タイプを示すために使用される。
可能な一実現形態において、ニューラルネットワークチップをさらに開示し、当該ニューラルネットワークチップは、上記のデータ処理装置を含む。
【０１１８】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記のニューラルネットワークチップと、を備え、ここで、前記ニューラルネットワークチップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記ニューラルネットワークチップと外部デバイスとの間のデータ伝送を実現し、前記制御デバイスは、前記ニューラルネットワークチップの状態を監視制御するためである。
【０１１９】
図４は、本発明の実施例に係るボードカードの構成を示すブロック図であり、図４を参照すると、上記のボードカードは、上記のチップ３８９に加えて、他のサポート部品を備えてもよく、当該サポート部品は、記憶デバイス３９０と、インターフェース装置３９１と、制御デバイス３９２と、を含むが、これらに限定されなく、
【０１２０】
前記記憶デバイス３９０と前記ニューラルネットワークチップとは、バスを介して接続され、データを記憶するために使用される。前記記憶デバイスは、複数グループの記憶ユニット３９３を含んでもよい。各グループの前記記憶ユニットは、前記ニューラルネットワークチップとバスを介して接続される。各グループの前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭ（英語：Ｄｏｕｂｌｅ Ｄａｔａ Ｒａｔｅ ＳＤＲＡＭ、ダブルレート同期ダイナミックランダムアクセスメモリ）であってもよいことを理解できる。
【０１２１】
ＤＤＲは、クロック周波数を上げずにＳＤＲＡＭの速度を２倍にすることができる。ＤＤＲは、クロックパルスの上がりエンジと下がりエンジでデータを読み取ることができる。ＤＤＲの速度は、標準ＳＤＲＡＭの２倍である。一つの実施例において、前記記憶装置は、４グループの前記記憶ユニットを備えてもよい。各グループの前記記憶ユニットは、複数のＤＤＲ４粒子（チップ）を備えてもよい。一つの実施例において、前記ニューラルネットワークチップの内部は、４個の７２ビットＤＤＲ４コントローラを備えてもよく、上記の７２ビットＤＤＲ４コントローラにおける６４ｂｉｔは、データ伝送に使用され、８ｂｉｔは、ＥＣＣ検証に使用される。各グループの前記記憶ユニットでＤＤＲ４-３２００粒子を使用する場合、データ伝送する理論上の帯域幅が２５６００ＭＢ/ｓに達することを理解できる。
【０１２２】
一つの実施例において、各グループの前記記憶ユニットは、複数の並列に配置されたダブルレート同期ダイナミックランダムアクセスメモリを備える。ＤＤＲは、一つのクロックサイクルでデータを２回伝送することができる。前記チップにＤＤＲを制御ためのコントローラを配置して、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用する。
【０１２３】
前記インターフェース装置は、前記ニューラルネットワークチップと電気的に接続される。前記インターフェース装置は、前記ニューラルネットワークチップと外部デバイス（例えば、サーバまたはコンピュータ）との間のデータ伝送を実現するために使用される。例えば、一つの実施例において、前記インターフェース装置は、標準ＰＣＩＥインターフェースであってもよい。例えば、処理待ちのデータは、サーバから標準ＰＣＩＥインターフェースを介して前記チップまでに伝送されて、データ移送が実現される。好もしくは、ＰＣＩＥ ３.０ Ｘ １６インターフェースを使用して伝送する場合、理論上の帯域幅が１６０００ＭＢ/ｓに達することができる。もう一つの実施例において、前記インターフェース装置は、さらに、他のインターフェースであってもよく、前記インターフェースユニットが継接続機能を実現できる限り、本願は上記の他のインターフェースの具体的な表現形式に対して限定しない。また、前記ニューラルネットワークチップの計算結果は、依然として、前記インターフェース装置によって外部デバイス（例えば、サーバ）までに伝送し返す。
【０１２４】
前記制御デバイスは、前記ニューラルネットワークチップと電気的に接続される。前記制御デバイスは、前記ニューラルネットワークチップの状態を監視制御するために使用される。具体的に、前記ニューラルネットワークチップは、前記制御デバイスとＳＰＩインターフェースを介して電気的に接続されてもよい。前記制御デバイスは、シングルチップマイクロコンピュータ（Ｍｉｃｒｏ Ｃｏｎｔｒｏｌｌｅｒ Ｕｎｉｔ、ＭＣＵ）を含んでもよい。たとえば、前記ニューラルネットワークチップは、複数の処理チップ、複数の処理コア、または、複数の処理回路を含んでもよく、複数の負荷を駆動できる。したがって、前記ニューラルネットワークチップは、複数の負荷や軽負荷などの異なる作業状態にいることができる。前記制御装置によって、前記ニューラルネットワークチップにおける複数の処理チップ、複数の処理、または、複数の処理回路の作業状態に対する調整制御を実現できる。
【０１２５】
可能な一実現形態において、電子デバイスを開示し、当該電子デバイスは上記のニューラルネットワークチップを備える。電子デバイスは、データ処理装置、ロボット、コンピュータ、プリンター、スキャナー、タブレットコンピュータ、スマート端末、携帯電話、ドライビングレコーダー、ナビゲーター、センサ、カメラヘッド、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクター、腕時計、イヤホーン、モバイルストレージ、ウェアラブルデバイス、交通ツール、家電製品、及び／又は、医療機器を含む。
【０１２６】
前記交通ツールは、飛行機、船、及び／又は、車両を含み、前記家電製品は、テレビ、エアコン、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスストーブ、および、レンジフードを含み、前記医療機器は、核磁気共鳴装置、Ｂ超音波装置、及び／又は、心電計を含む。
Ａ１、データ処理方法であって、前記方法は、
【０１２７】
復号化後の第１の処理命令のオペランドにテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記記述子の内容を取得することと、
【０１２８】
前記記述子の内容に基づいて、前記第１の処理命令を実行することと、を含む。
Ａ２、請求項Ａ１に記載の方法であって、前記記述子の内容に基づいて、前記第１の処理命令を実行することは、
【０１２９】
前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することと、
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することと、を含む。
【０１３０】
Ａ３、請求項Ａ１またはＡ２に記載の方法であって、前記方法は、
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令における記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得することと、
【０１３１】
前記記述子の登録パラメータに基づいて、前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定することと、
【０１３２】
前記記述子の登録パラメータおよび前記第２の記憶領域に基づいて、前記記述子の内容を確定することによって、前記記述子と前記第２の記憶領域との間の対応関係を構築することと、
前記記述子の内容を前記第１の記憶領域に記憶することと、をさらに含む。
【０１３３】
Ａ４、請求項Ａ１乃至Ａ３のにおけるいずれか１項に記載の方法であって、前記方法は、
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令における記述子の識別子を取得することと、
【０１３４】
前記記述子の識別子に基づいて、前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放することと、をさらに含む。
【０１３５】
Ａ５、請求項Ａ１乃至Ａ４のにおけるいずれか１項に記載の方法であって、前記方法は、
【０１３６】
前記第１の処理命令が記述子変更命令である場合、前記第１の処理命令における記述子の、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む変更パラメータを取得することと、
前記記述子の変更パラメータに基づいて、前記記述子の更新待ち内容を確定することと、
【０１３７】
更新待ち内容に基づいて、記述子記憶空間における前記記述子の内容、及び／又は、データ記憶空間におけるテンソルデータの内容を更新することと、をさらに含む。
Ａ６、請求項Ａ１乃至Ａ５の中のいずれか１項に記載の方法であって、前記方法は、
【０１３８】
前記記述子の識別子に基づいて、処理未完成の第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランドに前記記述子の識別子を有する処理命令を含む第２の処理命令が、存在するか否かを確定することと、
処理未完成の第２の処理命令が存在する場合、前記第１の処理命令をブロックまたはキャッシュすることと、をさらに含む。
【０１３９】
Ａ７、請求項Ａ１乃至Ａ６の中のいずれか１項に記載の方法であって、前記方法は、
前記記述子の識別子に基づいて、操作可能状態または操作不可状態を含む、前記記述子の現在の状態を、確定することと、
【０１４０】
前記記述子が現在操作不可状態にある場合、前記第１の処理命令をブロックまたはキャッシュすることと、をさらに含む。
【０１４１】
Ａ８、請求項Ａ１乃至Ａ７の中のいずれか１項に記載の方法であって、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
ここで、前記記述子の識別子に基づいて、前記記述子の内容を取得することは、
前記ソースデータと前記目的データの中の少なくとも一つが記述子の識別子を含む場合、記述子記憶空間から前記記述子の内容を取得することを含み、
【０１４２】
ここで、前記記述子の内容に基づいて、前記第１の処理命令を実行することは、
前記記述子の内容に基づいて、前記ソースデータの第１のデータアドレス及び／又は前記目的データの第２のデータアドレスをそれぞれ確定することと、
【０１４３】
前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込むことと、を含む。
【０１４４】
Ａ９、請求項Ａ１乃至Ａ７の中のいずれか１項に記載の方法であって、前記第１の処理命令は、演算命令を含み、ここで、前記記述子の内容に基づいて、前記第１の処理命令を実行することは、
【０１４５】
前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することと、
前記データアドレスに基づいて、前記第１の処理命令に対応する演算を実行することと、を含む。
【０１４６】
Ａ１０、請求項Ａ１乃至Ａ９の中のいずれか１項に記載の方法であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０１４７】
Ａ１１、請求項Ａ１０に記載の方法であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０１４８】
Ａ１２、請求項Ａ１１に記載の方法であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０１４９】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
【０１５０】
Ａ１３、請求項Ａ１乃至Ａ１２の中のいずれか１項に記載の方法であって、前記方法は、
受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得ることをさらに含み、
【０１５１】
ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードは、前記第１の処理命令に対応する処理タイプを示すために使用される。
Ａ１４、データ処理装置であって、前記装置は、
【０１５２】
復号化後の第１の処理命令のオペランドにテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記記述子の内容を取得するための内容取得モジュールと、
【０１５３】
前記記述子の内容に基づいて、前記第１の処理命令を実行するための命令実行モジュールと、を備える。
Ａ１５、請求項Ａ１４に記載の装置であって、前記命令実行モジュールは、
【０１５４】
前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定するためのアドレス確定サブモジュールと、
【０１５５】
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行するためのデータ処理サブモジュールと、を備える。
Ａ１６、請求項Ａ１４またはＡ１５に記載の装置であって、前記装置は、
【０１５６】
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令における記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得するための第１のパラメータ取得モジュールと、
【０１５７】
前記記述子の登録パラメータに基づいて、前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定するための領域確定モジュールと、
【０１５８】
前記記述子の登録パラメータおよび前記第２の記憶領域に基づいて、前記記述子の内容を確定することによって、前記記述子と前記第２の記憶領域との間の対応関係を構築するための内容確定モジュールと、
【０１５９】
前記記述子の内容を前記第１の記憶領域に記憶するための内容記憶モジュールと、をさらに備える。
Ａ１７、請求項Ａ１４乃至Ａ１６の中のいずれか１項に記載の装置であって、前記装置は、
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令における記述子の識別子を取得するための識別子取得モジュールと、
【０１６０】
前記記述子の識別子に基づいて、前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放するための空間解放モジュールと、をさらに備える。
Ａ１８、請求項Ａ１４乃至Ａ１７の中のいずれか１項に記載の装置であって、前記装置は、
【０１６１】
前記第１の処理命令が記述子変更命令である場合、前記第１の処理命令における記述子の、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む変更パラメータを取得するための第２のパラメータ取得モジュールと、
【０１６２】
前記記述子の変更パラメータに基づいて、前記記述子の更新待ち内容を確定するための更新内容確定モジュールと、
【０１６３】
更新待ち内容に基づいて、記述子記憶空間における前記記述子の内容、及び／又は、データ記憶空間におけるテンソルデータの内容を更新するための内容更新モジュールと、をさらに備える。
【０１６４】
Ａ１９、請求項Ａ１４乃至Ａ１８の中のいずれか１項に記載の装置であって、前記装置は、
【０１６５】
前記記述子の識別子に基づいて、処理未完成の第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランドにおける前記記述子の識別子を有する処理命令を含む第２の処理命令が、存在するか否かを確定するための命令確定モジュールと、
【０１６６】
処理未完成の第２の処理命令が存在する場合、前記第１の処理命令をブロックまたはキャッシュするための第１の命令キャッシュモジュールと、をさらに備える。
Ａ２０、請求項Ａ１４乃至Ａ１９の中のいずれか１項に記載の装置であって、前記装置は、
【０１６７】
前記記述子の識別子に基づいて、操作可能状態または操作不可状態を含む、前記記述子の現在の状態を、確定するための状態確定モジュールと、
前記記述子が現在操作不可状態にある場合、前記第１の処理命令をブロックまたはキャッシュするための第２の命令キャッシュモジュールと、をさらに備える。
【０１６８】
Ａ２１、請求項Ａ１４乃至Ａ２０の中のいずれか１項に記載の装置であって、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
ここで、前記内容取得モジュールは、
【０１６９】
前記ソースデータと前記目的データの中の少なくとも一つが記述子の識別子を含む場合、記述子記憶空間から前記記述子の内容を取得するための内容取得サブモジュールを備え、
ここで、前記命令実行モジュールは、
【０１７０】
前記記述子の内容に基づいて、前記ソースデータの第１のデータアドレス及び／又は前記目的データの第２のデータアドレスをそれぞれ確定するための第１のアドレス確定サブモジュールと、
【０１７１】
前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込むためのアクセスサブモジュールと、を備える。
Ａ２２、請求項Ａ１４乃至Ａ２０の中のいずれか１項に記載の装置であって、前記第１の処理命令は、演算命令を含み、ここで、前記命令実行モジュールは、
【０１７２】
前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定するための第２のアドレス確定サブモジュールと、
前記データアドレスに基づいて、前記第１の処理命令に対応する演算を実行するための演算サブモジュールと、を備える。
【０１７３】
Ａ２３、請求項Ａ１４乃至Ａ２２の中のいずれか１項に記載の装置であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０１７４】
Ａ２４、請求項Ａ２３に記載の装置であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０１７５】
Ａ２５、請求項Ａ２４に記載の装置であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０１７６】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
【０１７７】
Ａ２６、請求項Ａ１４乃至Ａ２５の中のいずれか１項に記載の装置であって、前記装置は、
受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得るための復号化モジュールをさらに備え、
【０１７８】
ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードは、前記第１の処理命令に対応する処理タイプを示すために使用される。
【０１７９】
Ａ２７、ニューラルネットワークチップであって、前記チップは、請求項Ａ１４乃至Ａ２６の中のいずれか１項に記載のデータ処理装置を備える。
Ａ２８、電子デバイスであって、前記電子デバイスは、請求項Ａ２７に記載のニューラルネットワークチップを備える。
【０１８０】
Ａ２９、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ２７に記載のニューラルネットワークチップと、を備え、
【０１８１】
ここで、前記ニューラルネットワークチップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記ニューラルネットワークチップと外部デバイスとの間のデータ伝送を実現し、
前記制御デバイスは、前記ニューラルネットワークチップの状態を監視制御する。
Ａ３０、請求項Ａ２９に記載のボードカードであって、
【０１８２】
前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記ニューラルネットワークチップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、
前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０１８３】
本発明の実施例によると、データ処理装置が提供される。図１ｂは、本発明の実施例に係るデータ処理装置を示すブロック図である。図１ｂに示されたように、当該データ処理装置は、制御ユニット１１ｂと実行ユニット１２ｂとを備え、前記制御ユニット１１ｂは、
【０１８４】
復号化後の第１の処理命令のオペランドがテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得し、
【０１８５】
前記実行ユニットが前記記述子の内容に基づいて前記第１の処理命令を実行するように、前記記述子の内容および前記第１の処理命令を前記実行ユニットに送信する。
【０１８６】
本発明の実施例によると、制御ユニットは第１の処理命令オペランドにおける記述子の識別子に基づいて記述子の内容を取得し、実行ユニットに記述子内容を送信することによって第１の処理命令を実行し、処理命令を実行する際に記述子に基づいてオペランドを取得できて、データアクセスの複雑度を低下させ、プロセッサのデータアクセス効率を向上させる。
【０１８７】
可能な一実現形態において、前記データ処理装置はプロセッサに適用でき、ここで、プロセッサは、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）および専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサ、または、デジタル信号プロセッサ）を含んでもよい。本発明は、プロセッサのタイプに対して限定しない。
【０１８８】
可能な一実現形態において、前記制御ユニット１１ｂは、受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得るために使用されることができ、ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードは、前記第１の処理命令に対応する処理タイプを示すために使用される。ここで、第１の処理命令は、データアクセス命令、演算命令、記述子管理命令、同期命令などを含んでもよい。本発明は、第１の処理命令の具体的なタイプに対して限定しない。
【０１８９】
可能な一実現形態において、制御ユニット１１ｂは、受信された第１の処理命令に対して復号化処理を行って後、当該命令のオペランドが記述子の識別子を含む場合、記述子の識別子に基づいて記述子記憶空間から記述子の内容を取得し、記述子の内容および第１の処理命令を実行ユニット１２ｂに送信し、実行ユニット１２ｂは、記述子の内容および第１の処理命令を受信した後、まず記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、その後、データアドレスに基づいて、第１の処理命令に対応するデータ処理を実行する。ここで、データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよく、本発明はデータアドレスのタイプに対して限定しない。
【０１９０】
可能な一実現形態において、記述子記憶空間は、制御ユニット１１ｂの内部メモリにおける記憶空間であってもよく、データ記憶空間は、制御ユニット１１ｂの内部メモリまたは制御ユニット１１ｂと接続された外部メモリにおける記憶空間であってもよい。本発明は、これに対して限定しない。
【０１９１】
可能な一実現形態において、前記記述子はＮ次元のテンソルデータの形状を示すために使用され、Ｎは正の整数であり、例えば、Ｎ=１、２、または、３である。ここで、テンソルは、様々な形式のデータ構成方式を含んでもよい。テンソルは、異なる次元のものであってもよく、例えば、スカラーは０次元のテンソル、ベクトルは１次元のテンソル、行列は２次元または２次元以上のテンソルと見なしてもよい。テンソルの形状は、テンソルの次元やテンソルの各次元のサイズなどの情報を含む。例を挙げると、以下のテンソルの場合、
2021520591.tif 000011
【０１９２】
当該テンソルの形状は、記述子によって（２、４）として記述されてもよく、すなわち、二つのパラメータによって当該テンソルが２次元テンソルであることを示し、且つ、当該テンソルの第１の次元（列）のサイズは２であり、第２の次元（行）のサイズは４である。本願は記述子がテンソル形状を示す方式を限定しないことを説明する必要がある。
【０１９３】
可能な一実現形態において、Ｎの値は、テンソルデータの次元数（回数）に基づいて確定してもよいし、テンソルデータの使用の必要性に基づいて設定してもよい。例えば、Ｎの値が３である場合、テンソルデータは３次元のテンソルデータであり、記述子は、当該３次元のテンソルデータの、三つの次元方向上の形状（例えば、オフセット量、サイズなど）を示すために使用できる。当業者は、実際の必要によってＮの値を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０１９４】
可能な一実現形態において、前記記述子は、記述子の識別子および記述子の内容を含んでもよい。ここで、記述子の識別子は、記述子を区別するために使用され、例えば、記述子の識別子はその番号であり、記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。例えば、テンソルデータは３次元データであり、当該テンソルデータの三つの次元の中で、その中の二つの次元の形状パラメータは固定されて変わらなく、その記述子の内容は当該テンソルデータのもう一つの次元を表す形状パラメータを含んでもよい。
【０１９５】
可能な一実現形態において、記述子の識別子と内容は、例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなどの、記述子記憶空間（内部メモリ）に記憶されてもよい。記述子が示すテンソルデータは、例えば、オンチップキャッシュまたはオフチップメモリなどの、データ記憶空間（内部メモリまたは外部メモリ）に記憶されてもよい。本発明は、記述子記憶空間およびデータ記憶空間の具体的な位置に対して限定しない。
【０１９６】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの同じ領域に記憶でき、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスはＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ６３を記述子記憶空間として、記述子の識別子と内容を記憶し、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３をデータ記憶空間として、記述子が示すテンソルデータを記憶できる。記述子記憶空間において、アドレスＡＤＤＲ０〜ＡＤＤＲ３１を使用して記述子の識別子を記憶し、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３を使用して記述子の内容を記憶できる。アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位であることを理解すべきである。  
【０１９７】
当業者は、実際の状況に従って記述子記憶空間、データ記憶空間、および、その具体的なアドレスを確定でき、本発明はこれに対して限定しない。
【０１９８】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に記憶できる。例えば、レジスタを記述子記憶空間として、レジスタにおける記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０１９９】
可能な一実現形態において、レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができる。例えば、レジスタの番号が０であると、記憶した記述子の識別子を０に設定する。レジスタにおける記述子が有効であると、記述子が示すテンソルデータの大きさに基づいてキャッシュ空間で一つの領域を割り当てて当該テンソルデータを記憶するために使用できる。
【０２００】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０２０１】
可能な一実現形態において、記述子の識別子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、実行ユニットは、記述子の内容に基づいて、オペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定でき、その後、第１の処理命令を実行できる。
【０２０２】
可能な一実現形態において、記述子の識別子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は当該テンソルデータのアドレスを表す一つのアドレスパラメータを含むことができ、例えば、テンソルデータの開始物理アドレス、テンソルデータの開始アドレス＋アドレスオフセット量、または、テンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０２０３】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０２０４】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスがデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間における１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスが当該データブロックのデータ記憶空間におけるアドレスである。
【０２０５】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータにおける点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータが３次元空間における点または領域の位置にマッピングすることができる。当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０２０６】
データアクセス過程で記述子を使用することによって、データ間の関連を構築することができて、データアクセスの複雑度を低下させ、命令処理効率を向上させた。
【０２０７】
可能な一実現形態において、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレス、前記データ記憶空間のＮ個の次元方向の少なくとも一つの方向上のサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、及び／又は、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量に基づいて、前記テンソルデータの記述子の内容を確定できる。
【０２０８】
図２は、本発明の実施例に係るデータ記憶空間を示す模式図である。図２に示されたように、データ記憶空間２１は、行優先の方式を使用して一つの２次元データを記憶し、（ｘ、ｙ）によって（ここで、Ｘ軸は水平方向に右向きであり、Ｙ軸は垂直方向に下向きである）表すことができ、Ｘ軸方向におけるサイズ（各行のサイズ）はｏｒｉ_ｘ（図示せず）であり、Ｙ軸方向上のサイズ（全行数）はｏｒｉ_ｙ（図示せず）であり、データ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔ（基準アドレス）は１番目のデータブロック２２の物理アドレスである。データブロック２３は、データ記憶空間２１における一部のデータであり、Ｘ軸方向におけるオフセット量２５はｏｆｆｓｅｔ_ｘで表し、Ｙ軸方向におけるオフセット量２４はｏｆｆｓｅｔ_ｙで表し、Ｘ軸方向におけるサイズはｓｉzｅ_ｘで表し、Ｙ軸方向におけるサイズはｓｉzｅ_ｙで表す。
【０２０９】
可能な一実現形態において、記述子を使用してデータブロック２３を定義する場合、記述子のデータ基準点はデータ記憶空間２１の１番目のデータブロックを使用でき、記述子の基準アドレスはデータ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔであり、その後、データ記憶空間２１のＸ軸におけるサイズｏｒｉ_ｘ、Ｙ軸におけるサイズｏｒｉ_ｙ、および、データブロック２３のＹ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｙ、Ｘ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｘ、Ｘ軸方向におけるサイズｓｉzｅ_ｘおよびＹ軸方向上のサイズｓｉzｅ_ｙと組み合わせることによって、データブロック２３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（１）を使用して記述子の内容を表すことができる。
2021520591.tif 000012
【０２１０】
上記の例では記述子が記述したのは２次元空間であるが、当業者は実際の状況に従って記述子の内容が表す次元を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０２１１】
可能な一実現形態において、前記記述子のデータ基準点の前記データ記憶空間における基準アドレス、および、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置に基づいて、前記テンソルデータの記述子の内容を確定できる。
【０２１２】
例を挙げると、記述子のデータ基準点のデータ記憶空間における基準アドレスＰＡ_ｂａｓｅ、および、対角位置の二つの頂点のデータ基準点に対する位置を使用して、図２の中のデータブロック２３の記述子の内容を確定できる。まず、記述子のデータ基準点およびそのデータ記憶空間における基準アドレスＰＡ_ｂａｓｅを確定し、例えば、データ記憶空間２１中で一つのデータ（例えば、位置が（２、２）であるデータである）をデータ基準点として選択し、当該データのデータ記憶空間における物理アドレスを基準アドレスＰＡ_ｂａｓｅとし、その後、データブロック２３の対角位置の少なくとも二つの頂点のデータ基準点に対する位置を確定できる。例えば、左上から右下への方向の対角位置頂点のデータ基準点に対する位置を使用し、ここで、左上の頂点の相対位置は（ｘ_ｍｉｎ、ｙ_ｍｉｎ）であり、右下の頂点の相対位置は（ｘ_ｍａｘ、ｙ_ｍａｘ）であり、その後、基準アドレスＰＡ_ｂａｓｅ、左上の頂点の相対位置（ｘ_ｍｉｎ、ｙ_ｍｉｎ）、および、右下の頂点の相対位置（ｘ_ｍａｘ、ｙ_ｍａｘ）に基づいて、データブロック２３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（２）を使用して記述子の内容を表すことができる。
2021520591.tif 000013
【０２１３】
上記の例では左上と右下の二つの対角位置の頂点を使用して記述子の内容を確定したが、当業者は実際の必要に従って対角位置の少なくとも二つの頂点の具体的な頂点を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０２１４】
可能な一実現形態において、前記記述子のデータ基準点の前記データ記憶空間における基準アドレス、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係に基づいて、前記テンソルデータの記述子の内容を確定できる。ここで、データ記述位置とデータアドレスとの間のマッピング関係は、実際の必要に従って設定でき、例えば、記述子が示すテンソルデータが３次元空間データである場合、関数ｆ(ｘ、ｙ、z)を使用してデータ記述位置とデータアドレスとの間のマッピング関係を定義できる。
可能な一実現形態において、以下の式（３）を使用して記述子の内容を表すことができる。
2021520591.tif 000014
【０２１５】
当業者は、実際の状況に従ってデータ記述位置とデータアドレスとの間のマッピング関係を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０２１６】
可能な一実現形態において、実行ユニット１２は、制御ユニット１１によって送信された記述子の内容および第１の処理命令を受信した場合、記述子の内容に基づいて、第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定できる。ここで、データアドレスの計算は、ハードウェアによって自動的に完成され、且つ、記述子の内容の表現方式が異なる場合、データアドレスの計算方法も異なる。本発明は、データアドレスの具体的な計算方法に対して限定しない。
【０２１７】
例えば、オペランドにおける記述子の内容が式（１）を使用して表された場合、記述子が示すテンソルデータのデータ記憶空間におけるオフセット量が、それぞれｏｆｆｓｅｔ_ｘおよびｏｆｆｓｅｔ_ｙであり、サイズがｓｉzｅ_ｘ＊ｓｉzｅ_ｙであると、当該記述子が示すテンソルデータのデータ記憶空間における開始データアドレス
2021520591.tif 000015
は、以下の式（４）を使用して確定できる。
2021520591.tif 000016
【０２１８】
上記の式（４）によって確定したデータ開始アドレス
2021520591.tif 000017
に、オフセット量ｏｆｆｓｅｔ_ｘとｏｆｆｓｅｔ_ｙ、および、記憶領域のサイズｓｉzｅ_ｘとｓｉzｅ_ｙに基づいて、記述子が示すテンソルデータのデータ記憶空間における記憶領域を確定できる。
【０２１９】
可能な一実現形態において、実行ユニット１２が制御ユニット１１によって送信された記述子の内容および第１の処理命令を受信し、オペランドが記述子のデータ記述位置をさらに含む場合、記述子の内容およびデータ記述位置に基づいて、オペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定できる。このような方式によって、記述子が示すテンソルデータにおける一部のデータ（例えば、一つまたは複数のデータ）に対して処理を実行できる。
【０２２０】
例えば、オペランドにおける記述子の内容が式（１）を使用して表された場合、記述子が示すテンソルデータのデータ記憶空間におけるオフセット量が、それぞれｏｆｆｓｅｔ_ｘとｏｆｆｓｅｔ_ｙであり、サイズがｓｉzｅ_ｘ＊ｓｉzｅ_ｙであり、オペランドに含まれた対記述子のデータ記述位置が
2021520591.tif 000018
であると、当該記述子が示すテンソルデータのデータ記憶空間におけるデータアドレス
2021520591.tif 000019
は、以下の式（５）を使用して確定できる。
2021520591.tif 000020
可能な一実現形態において、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
【０２２１】
ここで、前記制御ユニット１１ｂは、前記ソースデータが第１の記述子の識別子を含み、且つ、前記目的データが第２の記述子の識別子を含む場合、前記記述子記憶空間から前記第１の記述子の内容および前記第２の記述子の内容をそれぞれ取得し、前記第１の記述子の内容、前記第２の記述子の内容、および、前記第１の処理命令を前記実行ユニット１２ｂに送信するために使用され、
【０２２２】
ここで、前記実行ユニット１２ｂは、受信された前記第１の記述子の内容および前記第２の記述子の内容に基づいて、前記ソースデータの第１のデータアドレスおよび前記目的データの第２のデータアドレスをそれぞれ取得し、前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込むために使用される。
【０２２３】
例を挙げると、ソースデータと目的データがいずれも記述子の識別子を含む場合、ソースデータは、オフチップの１グループの読み取り待ちデータであってもよいし、その第１の記述子の識別子は１であり、目的データはオンチップの一つの記憶空間であり、その第２の記述子の識別子は２であってもよい。制御ユニット１１ｂソースデータにおける第１の記述子の識別子１および目的データにおける第２の記述子の識別子２に基づいて、記述子記憶空間から第１の記述子の内容Ｄ１および第２の記述子の内容Ｄ２をそれぞれ取得し、且つ、第１の記述子の内容Ｄ１、第２の記述子の内容Ｄ２、および、第１の処理命令を実行ユニット１２ｂに送信できる。ここで、第１の記述子の内容Ｄ１および第２の記述子の内容は、それぞれ以下のように表すことができる。
2021520591.tif 000021
【０２２４】
実行ユニット１２ｂは、受信された第１の記述子の内容Ｄ１および第１の記述子の内容Ｄ２に基づいて、ソースデータの開始物理アドレスＰＡ３および目的データの開始物理アドレスＰＡ４をそれぞれ取得して、それぞれ以下のように表すことができる。
2021520591.tif 000022
【０２２５】
実行ユニット１２ｂは、ソースデータの開始物理アドレスＰＡ３および目的データの開始物理アドレスＰＡ４、と、第１の記述子の内容Ｄ１および第２の記述子の内容Ｄ２に基づいて、第１のデータアドレスおよび第２のデータアドレスをそれぞれ確定し、その後、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込む（ＩＯチャンネルを介することができる）ことによって、Ｄ１が指すテンソルデータをＤ２が指す記憶空間にロードすることを完成でき、すなわち、データをオフチップからオンチップへのロードを完成できる。データのオンチップからオフチップへの伝送は上記の過程と類似であり、ここでは繰り返して説明しないことを理解すべきである。
【０２２６】
可能な一実現形態において、データロードの際にロードするデータの規模を設定でき、ここで、ロードデータの規模は使用の必要性または記憶空間の大きさに従って設定できる。例えば、使用の必要性に従って、データロードの際に、ロードＤ１における前の１０個のデータを設定できる。本発明は、ロードデータの具体的な規模に対して限定しない。
【０２２７】
このような方式によって記述子を使用してデータのアクセスを完成でき、記述子の内容が記述子記憶空間に記憶され、アクセスするたびに命令によってデータアドレスを導入する必要が無くなり、プロセッサのデータアクセス効率を向上させることができる。
可能な一実現形態において、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
【０２２８】
ここで、前記制御ユニット１１ｂは、前記ソースデータが第３の記述子の識別子を含む場合、前記記述子記憶空間から前記第３の記述子の内容を取得し、前記第３の記述子の内容および前記第１の処理命令を前記実行ユニット１２ｂに送信するために使用され、
【０２２９】
ここで、前記実行ユニット１２ｂは、受信された前記第３の記述子の内容に基づいて、前記ソースデータの第３のデータアドレスを取得し、前記第３のデータアドレスからデータを読み取って前記目的データのデータアドレスに書込むために使用される。
【０２３０】
例を挙げると、ソースデータと目的データがいずれも記述子の識別子を含む場合、ソースデータは、オフチップの１グループの読み取り待ちデータであってもよいし、その第１の記述子の識別子は３であり、目的データはオンチップの一つの記憶空間である。制御ユニット１１は、ソースデータにおける第３の記述子の識別子３に基づいて、記述子記憶空間から第３の記述子の内容Ｄ３を取得し、第３の記述子の内容Ｄ３および第１の処理命令を実行ユニット１２ｂに送信するために使用される。ここで、第３の記述子の内容Ｄ３は、以下のように表すことができる。
2021520591.tif 000023
実行ユニット１２ｂは、受信された第３の記述子の内容Ｄ３に基づいて、ソースデータの開始物理アドレスＰＡ５を取得でき、以下のように表す。
2021520591.tif 000024
【０２３１】
実行ユニット１２ｂは、第１の処理命令における目的データのアドレス情報に基づいて、目的データの開始物理アドレスおよび目標データのデータアドレスを計算できる。例えば、目的データのアドレス情報は、開始アドレス、および、オフセット量の汎用レジスタ番号を含み、まず汎用レジスタをアクセスしてオフセット量を取得してから、開始アドレスとオフセット量とを加算して、目的データの開始物理アドレスを得ることができ、その後、目標データのサイズに基づいて、目的データのデータアドレスを確定できる。
【０２３２】
実行ユニット１２ｂは、ソースデータの開始物理アドレスＰＡ５および第３の記述子の内容Ｄ３に基づいて、第３のデータアドレスを確定でき、その後、第３のデータアドレスからデータを読み取って目的データのデータアドレスに書込む（ＩＯチャンネルを介することができる）ことによって、Ｄ３が指すテンソルデータを目的データの記憶空間にロードすることを完成でき、すなわち、データのオフチップからオンチップへのロードを完成した。データのオンチップからオフチップへの伝送は上記の過程と類似であり、ここでは繰り返して説明しないことを理解すべきである。
可能な一実現形態において、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
【０２３３】
ここで、前記制御ユニット１１ｂは、前記目的データが第４の記述子の識別子を含む場合、前記記述子記憶空間から前記第４の記述子の内容を取得し、前記第４の記述子の内容および前記第１の処理命令を前記実行ユニット１２ｂに送信するために使用され、
【０２３４】
ここで、前記実行ユニット１２ｂは、受信された前記第４の記述子の内容に基づいて、前記目的データの第４のデータアドレスを取得し、前記ソースデータのデータアドレスからデータを読み取って前記第４のデータアドレスに書込むために使用される。
【０２３５】
例を挙げると、目的データが記述子の識別子を含む場合、ソースデータは、オフチップの１グループの読み取り待ちデータであり、目的データはオンチップの一つの記憶空間であり、その第４の記述子の識別子は４であってもよい。制御ユニット１１ｂは、目標データにおける第４の記述子の識別子４に基づいて、記述子記憶空間から第４の記述子の内容Ｄ４を取得し、第４の記述子の内容Ｄ４および第１の処理命令を実行ユニット１２ｂに送信できる。ここで、第４の記述子の内容Ｄ４は、以下のように表すことができる。
2021520591.tif 000025
実行ユニット１２ｂは、受信された第４の記述子の内容Ｄ４に基づいて、目標データの開始物理アドレスＰＡ６を取得でき、以下のように表す。
2021520591.tif 000026
【０２３６】
実行ユニット１２ｂは、第１の処理命令におけるソースデータのアドレス情報に基づいて、ソースデータの開始物理アドレスおよびソースデータのデータアドレスを計算でき、例えば、ソースデータのアドレス情報は、開始アドレス、および、オフセット量の汎用レジスタ番号を含み、まず汎用レジスタをアクセスしてオフセット量を取得してから、開始アドレスとオフセット量とを加算して、ソースデータの開始物理アドレスを得ることができ、その後、ソースデータのサイズに基づいて、ソースデータのデータアドレスを確定できる。
【０２３７】
実行ユニット１２ｂは、目標データの開始物理アドレスＰＡ６および第４の記述子の内容Ｄ４に基づいて、第４のデータアドレスを確定でき、その後、ソースデータのデータアドレスからデータを読み取って第４のデータアドレスに書込む（ＩＯチャンネルを介することができる）ことによって、ソースデータをＤ４が指す記憶空間にロードすることを完成でき、すなわち、データのオフチップからオンチップへのロードを完成した。データのオンチップからオフチップへの伝送は上記の過程と類似であり、ここでは繰り返して説明しないことを理解すべきである。
【０２３８】
可能な一実現形態において、前記第１の処理命令は、演算命令を含み、ここで、前記実行ユニットが前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することは、前記データアドレスからデータを読み取って前記演算命令に対応する演算を実行することを含んでもよい。
【０２３９】
例を挙げると、第１の処理命令が演算命令であり、且つ、演算命令のオペランドが記述子識別子を含む場合、制御ユニット１１は、記述子の識別子に基づいて、記述子記憶空間から記述子の内容を取得し、記述子の内容をおよび演算命令を実行ユニット１２に送信でき、実行ユニット１２は、受信された記述子の内容に基づいて、演算待ちデータのデータアドレスを確定し、当該データアドレスから演算待ちのデータを読み取って演算命令に対応する演算を実行する。例えば、演算命令がＡＤＤ命令であり、そのオペランドが記述子の識別子を含む場合、制御ユニット１１は、記述子の識別子に基づいて記述子の内容を取得し、且つ、記述子の内容およびＡＤＤ命令を実行ユニット１２ｂに送信でき、実行ユニット１２ｂは、記述子の内容に基づいて演算待ちのデータのデータアドレスを確定し、且つ、ＡＤＤ演算を実行できる。オペランドがオフチップデータである場合、実行ユニット１２ｂは、データアドレスに基づいて、ＩＯチャンネルを介してデータをオンチップにロードでき、その後、オペランドのオンチップにおけるデータアドレスからデータを読み取ってＡＤＤ操作を実行する。
このような方式によって、記述子を使用してデータの伝送を完成でき、プロセッサのデータアクセス効率を向上させる。
【０２４０】
本発明の実施例に係るデータ処理装置によると、データの形状を記述できる記述子を導入することによって、第１の処理命令の運行過程で記述子に基づいてデータのアドレスを確定できるようになって、ハードウェアの観点から命令生成方式が簡略化され、データアクセスの複雑度を低下させ、プロセッサアクセスデータの効率を向上させた。
【０２４１】
上記の実施例を例としてデータ処理装置を以上のように説明したが、当業者は本発明がこれに限定されないことを理解できることを説明する必要がある。実際に、ユーザは、本発明の技術案に準拠している限り、完全に個人の好み及び／又は実際の適用シナリオに従って各モジュールを柔軟に設定できる。
【０２４２】
図３ｂは、本発明の実施例に係るデータ処理方法を示すフローチャートである。図３ｂに示されたように、前記データ処理方法はプロセッサに適用され、前記方法は、以下のステップを含む。
【０２４３】
ステップＳ４１ｂ、復号化後の第１の処理命令のオペランドがテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得し、
ステップＳ４２ｂ、前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、
ステップＳ４３ｂ、前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行する。
可能な一実現形態において、ステップＳ４２ｂは、
【０２４４】
前記オペランドが前記記述子に対するデータ記述位置をさらに含む場合、前記記述子の内容および前記データ記述位置に基づいて、前記オペランドに対応するデータの前記データ記憶空間におけるデータアドレスを確定することを含んでもよい。
可能な一実現形態において、前記記述子はＮ次元のテンソルデータの形状を示すために使用され、Ｎは正の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０２４５】
可能な一実現形態において、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０２４６】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０２４７】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
可能な一実現形態において、前記基準アドレスは前記データ記憶空間の開始アドレスを含む。
可能な一実現形態において、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
【０２４８】
ここで、復号化後の第１の処理命令のオペランドが記述子の識別子を含む場合、ステップＳ４１ｂは、前記ソースデータが第１の記述子の識別子を含み、且つ、前記目的データが第２の記述子の識別子を含む場合、前記記述子記憶空間から前記第１の記述子の内容および前記第２の記述子の内容をそれぞれ取得することを含んでもよく、
【０２４９】
ここで、ステップＳ４２ｂは、前記第１の記述子の内容および前記第２の記述子の内容に基づいて、前記ソースデータの第１のデータアドレスおよび前記目的データの第２のデータアドレスをそれぞれ取得することを含んでもよく、
ここで、ステップＳ４３ｂは、前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込むことを含んでもよい。
可能な一実現形態において、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
【０２５０】
ここで、復号化後の第１の処理命令のオペランドが記述子の識別子を含む場合、ステップＳ４１ｂは、前記ソースデータが第３の記述子の識別子を含む場合、前記記述子記憶空間から前記第３の記述子の内容を取得することを含んでもよく、
ここで、ステップＳ４２ｂは、前記第３の記述子の内容に基づいて、前記ソースデータの第３のデータアドレスを取得することを含んでもよく、
ここで、ステップＳ４３ｂは、前記第３のデータアドレスからデータを読み取って前記目的データのデータアドレスに書込むことを含んでもよい。
可能な一実現形態において、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
【０２５１】
ここで、復号化後の第１の処理命令のオペランドが記述子の識別子を含む場合、ステップＳ４１ｂは、前記目的データが第４の記述子の識別子を含む場合、前記記述子記憶空間から前記第４の記述子の内容を取得することを含んでもよく、
ここで、ステップＳ４２ｂは、前記第４の記述子の内容に基づいて、前記目的データの第４のデータアドレスを取得することを含んでもよく、
ここで、ステップＳ４３ｂは、前記ソースデータのデータアドレスからデータを読み取って前記第４のデータアドレスに書込むことを含んでもよい。
可能な一実現形態において、前記第１の処理命令は、演算命令を含み、
ここで、ステップＳ４３ｂは、前記データアドレスからデータを読み取って前記演算命令に対応する演算を実行することを含んでもよい。
可能な一実現形態において、前記方法は、
受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得ることをさらに含み、
【０２５２】
ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードは、前記第１の処理命令に対応する処理タイプを示すために使用される。
【０２５３】
可能な一実現形態において、前記記述子記憶空間は前記プロセッサの内部メモリにおける記憶空間であり、前記データ記憶空間は前記プロセッサの内部メモリまたは外部メモリにおける記憶空間である。
可能な一実現形態において、人工知能チップをさらに開示し、当該人工知能チップは上記のデータ処理装置を含む。
【０２５４】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０２５５】
図４は、本発明の実施例に係るボードカードの構成を示すブロック図であり、図４を参照すると、上記のボードカードは、上記のチップ３８９に加えて、他のサポート部品を備えてもよく、当該サポート部品は、記憶デバイス３９０と、インターフェース装置３９１と、制御デバイス３９２と、を含むが、これらに限定されなく、
【０２５６】
前記記憶デバイス３９０は、前記人工知能チップとバスを介して接続され、データを記憶するために使用される。前記記憶デバイスは、複数グループの記憶ユニット３９３を含んでもよい。各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続される。各グループの前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭ（英語：Ｄｏｕｂｌｅ Ｄａｔａ Ｒａｔｅ ＳＤＲＡＭ、ダブルレート同期ダイナミックランダムアクセスメモリ）であってもよいことを理解できる。
【０２５７】
ＤＤＲは、クロック周波数を上げずにＳＤＲＡＭの速度を２倍にすることができる。ＤＤＲは、クロックパルスの上がりエンジと下がりエンジでデータを読み取ることができる。ＤＤＲの速度は、標準ＳＤＲＡＭの２倍である。一つの実施例において、前記記憶装置は、４グループの前記記憶ユニットを備えてもよい。各グループの前記記憶ユニットは、複数のＤＤＲ４粒子（チップ）を備えてもよい。一つの実施例において、前記人工知能チップの内部は、４個の７２ビットＤＤＲ４コントローラを備えてもよく、上記の７２ビットＤＤＲ４コントローラにおける６４ｂｉｔは、データ伝送に使用され、８ｂｉｔは、ＥＣＣ検証に使用される。各グループの前記記憶ユニットでＤＤＲ４-３２００粒子を使用する場合、データ伝送する理論上の帯域幅が２５６００ＭＢ/ｓに達することを理解できる。
【０２５８】
一つの実施例において、各グループの前記記憶ユニットは、複数の並列に配置されたダブルレート同期ダイナミックランダムアクセスメモリを備える。ＤＤＲは、一つのクロックサイクルでデータを２回伝送することができる。前記チップにおけるＤＤＲを制御ためのコントローラを配置して、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用する。
【０２５９】
前記インターフェース装置は、前記人工知能チップと電気的に接続される。前記インターフェース装置は、前記人工知能チップと外部デバイス（例えば、サーバまたはコンピュータ）との間のデータ伝送を実現するために使用される。例えば、一つの実施例において、前記インターフェース装置は、標準ＰＣＩＥインターフェースであってもよい。例えば、処理待ちのデータは、サーバから標準ＰＣＩＥインターフェースを介して前記チップに伝送されて、データ移送が実現される。好もしくは、ＰＣＩＥ ３.０ Ｘ １６インターフェースを使用して伝送する場合、理論上の帯域幅が１６０００ＭＢ/ｓに達することができる。もう一つの実施例において、前記インターフェース装置は、さらに、他のインターフェースであってもよく、前記インターフェースユニットがにおける継接続機能を実現できる限り、本願は上記の他のインターフェースの具体的な表現形式に対して限定しない。また、前記人工知能チップの計算結果は、依然として、前記インターフェース装置によって外部デバイス（例えば、サーバ）に伝送し返す。
【０２６０】
前記制御デバイスは、前記人工知能チップと電気的に接続される。前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。具体的に、前記人工知能チップは、前記制御デバイスとＳＰＩインターフェース介して電気的に接続できる。前記制御デバイスは、シングルチップマイクロコンピュータ（Ｍｉｃｒｏ Ｃｏｎｔｒｏｌｌｅｒ Ｕｎｉｔ、ＭＣＵ）を含んでもよい。前記人工知能チップは、複数の処理チップ、複数の処理コア、または、複数の処理回路を含んでもよく、複数の負荷を駆動できる。したがって、前記人工知能チップは、複数の負荷や軽負荷などの異なる作業状態にいることができる。前記制御装置によって前記人工知能チップにおける複数の処理チップ、複数の処理、または、複数の処理回路の作業状態に対する調整制御を実現できる。
【０２６１】
可能な一実現形態において、電子デバイスを開示し、当該電子デバイスは上記の人工知能チップを含む。電子デバイスは、データ処理装置、ロボット、コンピュータ、プリンター、スキャナー、タブレットコンピュータ、スマート端末、携帯電話、ドライビングレコーダー、ナビゲーター、センサ、カメラヘッド、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクター、腕時計、イヤホーン、モバイルストレージ、ウェアラブルデバイス、交通ツール、家電製品、及び／又は、医療機器を含む。
【０２６２】
前記交通ツールは、飛行機、船、及び／又は、車両を含み、前記家電製品は、テレビ、エアコン、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスストーブ、および、レンジフードを含み、前記医療機器は、核磁気共鳴装置、Ｂ超音波装置、及び／又は、心電計を含む。
Ａ１、データ処理装置であって、前記装置は、制御ユニットと実行ユニットとを備え、前記制御ユニットは、
【０２６３】
復号化後の第１の処理命令のオペランドがテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得し、
【０２６４】
前記実行ユニットが前記記述子の内容に基づいて前記第１の処理命令を実行するように、前記記述子の内容および前記第１の処理命令を前記実行ユニットに送信すること。
Ａ２、請求項Ａ１に記載の装置であって、前記実行ユニットは、
受信された記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行するために使用される。
【０２６５】
Ａ３、請求項Ａ２に記載の装置であって、受信された記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することは、
【０２６６】
前記オペランドが前記記述子に対するデータ記述位置をさらに含む場合、前記記述子の内容および前記データ記述位置に基づいて、前記オペランドに対応するデータの前記データ記憶空間におけるデータアドレスを確定することを含んでもよい。
【０２６７】
Ａ４、請求項Ａ１乃至Ａ３の中のいずれか１項に記載の装置であって、前記記述子はＮ次元のテンソルデータの形状を示すために使用され、Ｎは正の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０２６８】
Ａ５、請求項Ａ４に記載の装置であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０２６９】
Ａ６、請求項Ａ５に記載の装置であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０２７０】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ７、請求項Ａ６に記載の装置であって、前記基準アドレスは前記データ記憶空間の開始アドレスを含む。
【０２７１】
Ａ８、請求項Ａ２乃至Ａ７の中のいずれか１項に記載の装置であって、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
ここで、前記制御ユニットは、
【０２７２】
前記ソースデータが第１の記述子の識別子を含み、且つ、前記目的データが第２の記述子の識別子を含む場合、前記記述子記憶空間から前記第１の記述子の内容および前記第２の記述子の内容をそれぞれ取得し、
前記第１の記述子の内容、前記第２の記述子の内容、および、前記第１の処理命令を前記実行ユニットに送信するために使用され、
ここで、前記実行ユニットは、
【０２７３】
受信された前記第１の記述子の内容および前記第２の記述子の内容に基づいて、前記ソースデータの第１のデータアドレスおよび前記目的データの第２のデータアドレスをそれぞれ取得し、
前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込むために使用される。
【０２７４】
Ａ９、請求項Ａ２乃至Ａ７の中のいずれか１項に記載の装置であって、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
ここで、前記制御ユニットは、
前記ソースデータが第３の記述子の識別子を含む場合、前記記述子記憶空間から前記第３の記述子の内容を取得し、
前記第３の記述子の内容および前記第１の処理命令を前記実行ユニットに送信するために使用され、
ここで、前記実行ユニットは、
受信された前記第３の記述子の内容に基づいて、前記ソースデータの第３のデータアドレスを取得し、
前記第３のデータアドレスからデータを読み取って前記目的データのデータアドレスに書込むために使用される。
【０２７５】
Ａ１０、請求項Ａ２乃至Ａ７の中のいずれか１項に記載の装置であって、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
ここで、前記制御ユニットは、
前記目的データが第４の記述子の識別子を含む場合、前記記述子記憶空間から前記第４の記述子の内容を取得し、
前記第４の記述子の内容および前記第１の処理命令を前記実行ユニットに送信するために使用され、
ここで、前記実行ユニットは、
受信された前記第４の記述子の内容に基づいて、前記目的データの第４のデータアドレスを取得し、
前記ソースデータのデータアドレスからデータを読み取って前記第４のデータアドレスに書込むために使用される。
Ａ１１、請求項Ａ２に記載の装置であって、前記第１の処理命令は、演算命令を含み、
ここで、前記実行ユニットが前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することは、
前記データアドレスからデータを読み取って前記演算命令に対応する演算を実行することを含んでもよい。
Ａ１２、請求項Ａ１乃至Ａ１１の中のいずれか１項に記載の装置であって、前記制御ユニットは、さらに、
受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得るために使用され、
【０２７６】
ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードは、前記第１の処理命令に対応する処理タイプを示すために使用される。
【０２７７】
Ａ１３、請求項Ａ１乃至Ａ１２の中のいずれか１項に記載の装置であって、前記記述子記憶空間は、前記制御ユニットの内部メモリにおける記憶空間であり、前記データ記憶空間は、前記制御ユニットの内部メモリまたは前記制御ユニットに接続された外部メモリにおける記憶空間である。
Ａ１４、データ処理方法であって、前記方法はプロセッサに適用され、前記方法は、
【０２７８】
復号化後の第１の処理命令のオペランドがテンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得することと、
【０２７９】
前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することと、
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することと、を含んでもよい。
【０２８０】
Ａ１５、請求項Ａ１４に記載の方法であって、前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することは、
【０２８１】
前記オペランドが前記記述子に対するデータ記述位置をさらに含む場合、前記記述子の内容および前記データ記述位置に基づいて、前記オペランドに対応するデータの前記データ記憶空間におけるデータアドレスを確定することを含んでもよい。
Ａ１６、請求項Ａ１４またはＡ１５に記載の方法であって、前記記述子はＮ次元のテンソルデータの形状を示すために使用され、Ｎは正の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０２８２】
Ａ１７、請求項Ａ１６に記載の方法であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０２８３】
Ａ１８、請求項Ａ１７に記載の方法であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０２８４】
前記データ記憶空間のＮ個の次元方向の中少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ１９、請求項Ａ１８に記載の方法であって、前記基準アドレスは前記データ記憶空間の開始アドレスを含む。
【０２８５】
Ａ２０、請求項Ａ１４乃至Ａ１９の中のいずれか１項に記載の方法であって、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
【０２８６】
ここで、復号化後の第１の処理命令のオペランドが記述子の識別子を含む場合、前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得することは、前記ソースデータが第１の記述子の識別子を含み、且つ、前記目的データが第２の記述子の識別子を含む場合、前記記述子記憶空間から前記第１の記述子の内容および前記第２の記述子の内容をそれぞれ取得することを含み、
【０２８７】
ここで、前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することは、前記第１の記述子の内容および前記第２の記述子の内容に基づいて、前記ソースデータの第１のデータアドレスおよび前記目的データの第２のデータアドレスをそれぞれ取得することを含み、
【０２８８】
ここで、前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することは、前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込むことを含んでもよい。
【０２８９】
Ａ２１、請求項Ａ１４乃至Ａ１９の中のいずれか１項に記載の方法であって、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
【０２９０】
ここで、復号化後の第１の処理命令のオペランドが記述子の識別子を含む場合、前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得することは、前記ソースデータが第３の記述子の識別子を含む場合、前記記述子記憶空間から前記第３の記述子の内容を取得することを含み、
【０２９１】
ここで、前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することは、前記第３の記述子の内容に基づいて、前記ソースデータの第３のデータアドレスを取得することを含み、
【０２９２】
ここで、前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することは、前記第３のデータアドレスからデータを読み取って前記目的データのデータアドレスに書込むことを含んでもよい。
【０２９３】
Ａ２２、請求項Ａ１４乃至Ａ１９の中のいずれか１項に記載の方法であって、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
【０２９４】
ここで、復号化後の第１の処理命令のオペランドが記述子の識別子を含む場合、前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得することは、前記目的データが第４の記述子の識別子を含む場合、前記記述子記憶空間から前記第４の記述子の内容を取得することを含み、
ここで、前記記述子の内容に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することは、
前記第４の記述子の内容に基づいて、前記目的データの第４のデータアドレスを取得することを含み、
【０２９５】
ここで、前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することは、前記ソースデータのデータアドレスからデータを読み取って前記第４のデータアドレスに書込むことを含んでもよい。
Ａ２３、請求項Ａ１４に記載の方法であって、前記第１の処理命令は、演算命令を含み、
ここで、前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することは、
前記データアドレスからデータを読み取って前記演算命令に対応する演算を実行することを含んでもよい。
Ａ２４、請求項Ａ１４乃至Ａ２３の中のいずれか１項に記載の方法であって、前記方法は、
受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得ることをさらに含み、
【０２９６】
ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードは、前記第１の処理命令に対応する処理タイプを示すために使用される。
【０２９７】
Ａ２５、請求項Ａ１４乃至Ａ２４の中のいずれか１項に記載の方法であって、前記記述子記憶空間は前記プロセッサの内部メモリにおける記憶空間であり、前記データ記憶空間は前記プロセッサの内部メモリまたは外部メモリにおける記憶空間である。
Ａ２６、人工知能チップであって、前記チップは、請求項Ａ１乃至Ａ１３におけるいずれか１項に記載のデータ処理装置を備える。
Ａ２７、電子デバイスであって、前記電子デバイスは、請求項Ａ２６に記載の人工知能チップを備える。
【０２９８】
Ａ２８、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ２６に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０２９９】
Ａ２９、請求項Ａ２８に記載のボードカードであって、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、
前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０３００】
人工知能アルゴリズムの複雑度の増大に伴って、処理する必要のあるデータ量とデータの次元とがいずれも継続的に増加しており、通常、マルチコア及び／又はマルチチップのデータ処理が必要である。コア間またはチップ間のデータ同期を実行する場合、関連技術を使用する同期方式は同期オーバーヘッドがより大きく、処理効率がより低い。
【０３０１】
本発明の実施例によると、データ同期方法が提供される。図１ｃは、本発明の実施例に係るデータ同期方法を示すフローチャートである。当該データ同期方法は第１のプロセッサに適用でき、当該第１のプロセッサは、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）と、専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサ、または、デジタル信号プロセッサなど）を含んでもよい。本発明は、第１のプロセッサのタイプに対して限定しない。
図１ｃに示されたように、当該データ同期方法は、以下のステップを含む。
【０３０２】
ステップＳ１１ｃにおいて、同期待ちのテンソルデータの記述子であって、同期待ちのテンソルデータの形状を示すために使用される記述子に基づいて、前記記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を生成し、
【０３０３】
ステップＳ１２ｃにおいて、第２のプロセッサを指示して前記第２のプロセッサが前記記述子同期命令に基づいて前記同期待ちのテンソルデータを取得するようにするために使用される前記記述子同期命令を、第２のプロセッサに送信する。
【０３０４】
例を挙げると、同期待ちのデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよく、ここで、テンソルは、様々な形式のデータ構成方式を含んでもよい。テンソルは、異なる次元のものであってもよく、例えば、スカラーは０次元のテンソル、ベクトルは１次元のテンソル、行列は２次元または２次元以上のテンソルと見なしてもよい。テンソルの形状は、テンソルの次元やテンソルの各次元のサイズなどの情報を含む。例えば、テンソルの場合、
2021520591.tif 000027
【０３０５】
当該テンソルの形状は、記述子によって（２、４）として記述されてもよく、すなわち、二つのパラメータによって当該テンソルが２次元テンソルであることを示し、且つ、当該テンソルの第１の次元（列）のサイズは２であり、第２の次元（行）のサイズは４である。本発明は、記述子がテンソル形状を示す方式に対して限定しないことを説明する必要がある。メモリにテンソルデータを記憶する場合、そのデータアドレス（または記憶領域）によってはテンソルデータの形状を確定できず、さらに複数のテンソルデータ間の相互関係などの関連情報も確定できないので、プロセッサのテンソルデータのアクセス効率が低くなり、データ同期の際の複雑度もより大きい。
【０３０６】
この場合、記述子（テンソル記述子）を設定してテンソルデータ（Ｎ次元のテンソルデータ）の形状を示すことができる。ここで、Ｎの値は、テンソルデータの次元数（回数）に基づいて確定してもよいし、テンソルデータの使用の必要性に基づいて設定してもよい。例えば、Ｎの値が３である場合、テンソルデータは３次元のテンソルデータであり、記述子は、当該３次元のテンソルデータの、三つの次元方向上の形状（例えば、オフセット量、サイズなど）を示すために使用できる。当業者は、実際の必要によってＮの値を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０３０７】
可能な一実現形態において、記述子は、識別子や内容などを含んでもよい。記述子の識別子は、記述子を区別するために使用でき、例えば、記述子の識別子は番号である。記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータ（例えば、テンソルの各次元方向上のサイズなど）を含んでもよく、さらに、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータ（例えば、データ基準点の基準アドレス）を含んでもよい。本発明は、記述子の内容に含まれる具体的なパラメータに対して限定しない。記述子を使用してテンソルデータを示す方式によって、テンソルデータの形状を表現でき、さらに、複数のテンソルデータ間の相互関係などの関連情報も確定できるので、テンソルデータに対するアクセス効率を向上させることで、データ同期の際の複雑度を低下する。
【０３０８】
可能な一実現形態において、データ処理過程で、複数のプロセッサ（例えば、人工知能チップの複数のコア）間のデータ同期を実行する必要がある可能があり、例えば、プロセッサＡ１の演算結果をもう一つの演算の入力データとしてプロセッサＡ２に同期する。この場合、記述子に基づくデータ同期メカニズムを使用してデータ同期を実現できる。
【０３０９】
可能な一実現形態において、第１のプロセッサはデータ同期の送信側であり、第２のプロセッサはデータ同期の受信側である。同期待ちのテンソルデータが存在する場合、第１のプロセッサは、ステップＳ１１ｃにおいて当該テンソルデータの記述子に基づいて、記述子同期命令を生成し、ステップＳ１２ｃにおいて当該記述子同期命令を同期待ちの第２のプロセッサに送信できる。ここで、第２のプロセッサは、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）と、専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサ、または、デジタル信号プロセッサなど）を含んでもよい。第２のプロセッサが第１のプロセッサのタイプ同じまたは異なる、本発明第２のプロセッサに対するタイプに対して限定しない。
【０３１０】
可能な一実現形態において、第１のプロセッサは、第２のプロセッサに対するデータ同期を能動的に開始させることができ、例えば、第１のプロセッサが一つの演算を完成して演算結果（テンソルデータ）を得た場合、当該演算結果を使用する必要がある第２のプロセッサに対するデータ同期を能動的に開始させる。もう一つの例において、第１のプロセッサは、第２のプロセッサの同期要求に応答して、第２のプロセッサに対するデータ同期を開始させてもよく、例えば、第２のプロセッサの同期要求命令を受信した場合、第２のプロセッサに対するデータ同期を開始させてもよい。本発明は、データ同期の開始タイミングに対して限定しない。
【０３１１】
可能な一実現形態において、第１のプロセッサは、同期待ちのテンソルデータが存在すると確定した場合、当該テンソルデータの記述子を取得できる。当該記述子は、既に登録（作成）された当該テンソルデータの形状を示すための記述子であってもよいし、当該テンソルデータの形状パラメータに基づいて新たな記述子を登録（作成）してもよく、本発明はこれに対して限定しない。
【０３１２】
可能な一実現形態において、当該テンソルデータの記述子に基づいて、記述子同期命令を生成でき、当該記述子同期命令は前記記述子の識別子及び／又は前記記述子の内容を含む。第２のプロセッサに当該同期待ちのテンソルデータを示す記述子が既に登録されていると、記述子同期命令は記述子の識別子のみを含むことによって（例えば、記述子の識別子がＴＲ１である場合、記述子同期命令をＳｅｎｄ ＴＲ１で表す）、第２のプロセッサを指示して当該第２のプロセッサが当該記述子の識別子（ＴＲ１）に基づいてテンソルデータの同期を実現するようにすることができ、第２のプロセッサに当該同期待ちのテンソルデータを示す記述子が登録されていないと、記述子同期命令は記述子の内容を含むかまたは記述子の識別子と内容の両者を同時に含みことによって、第２のプロセッサを指示して当該第２のプロセッサが当該記述子の内容に基づいてテンソルデータの同期を実現するようにすることができる。本発明は、記述子同期命令に含まれる具体的な内容に対して限定しない。
【０３１３】
可能な一実現形態において、記述子同期命令を生成し後、当該記述子同期命令を第２のプロセッサに送信して、第２のプロセッサを指示して当該第２のプロセッサが前記記述子同期命令に基づいて前記同期待ちのテンソルデータを取得するようにすることができる。記述子同期命令が記述子の識別子を含むと、第２のプロセッサは、記述子の識別子に基づいて記述子の内容を取得し、さらに、記述子の内容に基づいて記述子が示すテンソルデータを取得することによって、テンソルデータの同期を実現できる。記述子同期命令が記述子の内容を含むと、第２のプロセッサは、記述子の内容に基づいて記述子が示すテンソルデータを直接取得することによって、テンソルデータの同期を実現できる。
【０３１４】
本発明の実施例に係るデータ同期方法によると、テンソルデータの形状を示す記述子を設定することによって、データ同期が必要な場合、同期待ちのテンソルデータの記述子に基づいて記述子同期命令を生成して当該命令を第２のプロセッサに送信して、第２のプロセッサを指示して当該第２のプロセッサが記述子同期命令に基づいて同期待ちのテンソルデータを取得するようにすることによって、同期オーバーヘッドを軽減し、データ同期の複雑度を低下させて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、第２のプロセッサからの記述子同期要求命令に従って、前記同期待ちのテンソルデータの記述子を確定する。
【０３１５】
例を挙げると、第１のプロセッサは、第２のプロセッサの同期要求に応答して、第２のプロセッサに対するデータ同期を開始させてもよい。ここで、第２のプロセッサからの記述子同期要求命令は、例えば、当該同期待ちのテンソルデータを示す記述子の識別子、当該同期待ちのテンソルデータのデータ特徴などの、同期待ちのテンソルデータの情報を含んでもよい。ここで、テンソルデータのデータ特徴は、テンソルデータの形状、ソース、アドレスなどの情報を含んでもよく、本発明は、記述子同期要求命令の具体的な内容に対して限定しない。第１のプロセッサは、記述子同期要求命令における情報に基づいて、同期待ちのテンソルデータの記述子を確定し、さらに記述子同期命令を生成できる。
【０３１６】
このような方式によって、第２のプロセッサの同期要求に従って同期待ちのテンソルデータの記述子を確定して、記述子同期命令を生成できることによって、不要なデータ同期を回避して、データ同期の効率を向上させた。
可能な一実現形態において、前記記述子同期要求命令は、記述子の識別子を含み、
【０３１７】
ここで、前記第２のプロセッサからの記述子同期要求命令に従って、前記同期待ちのテンソルデータの記述子を確定するステップは、前記記述子同期要求命令を解析して、前記記述子の識別子を得ることと、前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含んでもよい。
【０３１８】
例を挙げると、第１のプロセッサと第２のプロセッサにいずれも当該テンソルデータを示す記述子が既に登録されており、且つ、記述子の識別子が同じであるかまたは対応関係を有すると、記述子同期要求命令は記述子の識別子を含むことができ、例えば、記述子の識別子がＴＲ１である場合、記述子同期要求命令をＲｅｃｅｉvｅ ＴＲ１で表す。第１のプロセッサは、第２のプロセッサからの記述子同期要求命令を解析して、記述子の識別子を得ることができ、さらに記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定して、記述子同期命令を生成できる。
【０３１９】
このような方式によって、要求命令における記述子識別子に基づいて同期待ちのテンソルデータの記述子を確定して、テンソルデータの同期を実現することによって、同期の際に伝送するデータ量を軽減し、処理効率を向上させることができる。
可能な一実現形態において、前記記述子同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、
【０３２０】
ここで、前記第２のプロセッサからの記述子同期要求命令に従って、前記同期待ちのテンソルデータの記述子を確定するステップは、前記記述子同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴を得ることと、同期待ちのテンソルデータのデータ特徴に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含んでもよい。
【０３２１】
例を挙げると、第２のプロセッサに当該テンソルデータを示す記述子が登録されていないか、または、当該テンソルデータを示す記述子が既に登録されているが記述子識別子が対応関係を有さないと、記述子同期要求命令は同期待ちのテンソルデータのデータ特徴を含んでもよい。第１のプロセッサは、第２のプロセッサからの記述子同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴を得ることができ、さらに、同期待ちのテンソルデータのデータ特徴に基づいて、前記同期待ちのテンソルデータおよびその記述子を確定して、記述子同期命令を生成できる。
【０３２２】
可能な一実現形態において、同期待ちのテンソルデータのデータ特徴は、テンソルデータの形状、ソース、アドレスなどの情報を含んでもよい。例えば、当該テンソルデータのデータソースはＫ番目の送信側（Ｋ番目のプロセッサ）であり、当該テンソルデータのデータソースは番号２００の畳み込み操作の演算結果であり、当該テンソルデータのアドレスは特定のアドレス領域（例えば、アドレスＡＤＤＲ０〜ＡＤＤＲ１２７）であり、当該テンソルデータの形状は指定された形状（例えば、２０＊１０の２次元テンソル）である。当業者は、実際の状況に従って同期待ちのテンソルデータのデータ特徴を設定でき、本発明はこれに対して限定しない。
【０３２３】
可能な一実現形態において、第１のプロセッサは、当該データ特徴に基づいて、同期待ちのテンソルデータを検索して、且つ、当該同期待ちのテンソルデータの記述子を確定でき、例えば、直接取得するかまたは対応する記述子を新たに登録する。当該同期待ちのテンソルデータの記述子に基づいて、記述子同期命令を生成して送信することによって、第２のプロセッサを指示して当該第２のプロセッサが当該テンソルデータの同期を実現するようにすることができる。
【０３２４】
このような方式によって、要求命令におけるデータ特徴に基づいて同期待ちのテンソルデータの記述子を確定して、テンソルデータの同期を実現することによって、同期の際にテンソルデータ自身を伝送する必要がなく、伝送するデータ量および同期オーバーヘッドを軽減して、処理効率を向上させた。
可能な一実現形態において、前記記述子同期命令は、同期待ちのテンソルデータの記述子の内容を含み、ここで、ステップＳ１１ｃは、
【０３２５】
同期待ちのテンソルデータの記憶アドレスが共有記憶空間にある場合、前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにすることを含んでもよい。
【０３２６】
例を挙げると、複数のプロセッサ（複数のコア）は、例えば、第１のプロセッサと第２のプロセッサがいずれもアクセスできるオフチップメモリなどの、共有記憶空間を有することができる。当該共有記憶空間は、複数のコア（複数のプロセッサ）がいずれもデータをアクセスできるの記憶空間であってもよいし、一部のコア（一部のプロセッサ）がデータをアクセスできる記憶空間であってもよい。コア間の共有記憶空間を予め設定でき、本発明は、共有記憶空間の設定方式に対して限定しない。
【０３２７】
可能な一実現形態において、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にあると、第２のプロセッサも共有記憶空間からデータをアクセスできるので、第２のプロセッサは記述子の内容に基づいてテンソルデータを直接読み取って同期を実現できる。この場合、記述子同期命令は、同期待ちのテンソルデータの記述子の内容を含んでもよく、すなわち、前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成できる。第２のプロセッサは、記述子同期命令を受信した後、命令を解析して記述子の内容を得ることができるし、記述子の内容に基づいて、第２のプロセッサは同期待ちのテンソルデータのデータアドレスを確定し、且つ、共有記憶空間から前記同期待ちのテンソルデータを取得することにより、同期過程全体を実現できる。
このような方式によって、不要なデータ伝送を回避し、テンソルデータアクセス回数を削減できて、同期の処理効率を向上させた。
可能な一実現形態において、ステップＳ１１ｃは、
前記同期待ちのテンソルデータの記述子の内容を同期データ記憶空間に記憶することと、
【０３２８】
前記記述子の内容の前記同期データ記憶空間におけるアドレスに基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して前記第２のプロセッサが前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得するようにすることと、を含んでもよい。
【０３２９】
例を挙げると、複数のプロセッサ（複数のコア）は、同期データの記憶専用の、同期データ記憶空間を有することができる。当該同期データ記憶空間は、上記の共有記憶空間であってもよいし、共有記憶空間の一部であってもよいし、共有記憶空間とは異なる記憶空間であってもよく、本発明はこれに対して限定しない。
【０３３０】
可能な一実現形態において、同期データ記憶空間は、複数のコア（複数のプロセッサ）がいずれも同期データをアクセスできる記憶空間であってもよく、一部のコア（一部のプロセッサ）が同期データをアクセスできる記憶空間であってもよく、本発明はこれに対して限定しない。
【０３３１】
可能な一実現形態において、第１のプロセッサは、同期待ちのテンソルデータの記述子を確定した後、記述子の内容を同期データ記憶空間に記憶し、記述子の内容の同期データ記憶空間におけるアドレスに基づいて、記述子同期命令を生成して送信することができる。第２のプロセッサは、記述子同期命令を受信した後、命令を解析して記述子の内容の記憶アドレスを得ることができ、当該記憶アドレスに基づいて、第２のプロセッサは同期データ記憶空間から同期待ちのテンソルデータの記述子の内容を取得し、さらに記述子の内容に基づいて同期待ちのテンソルデータのデータアドレスを確定して、前記同期待ちのテンソルデータを取得することによって、同期過程全体を実現できる。
このような方式によって、同期の際のプロセッサ間のデータ伝送をもう一層削減して、同期の処理効率を向上させることができる。
可能な一実現形態において、ステップＳ１１ｃは、
同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶することと、
前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、前記同期待ちのテンソルデータの記述子を生成することと、
【０３３２】
前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにすることと、を含む。
【０３３３】
例を挙げると、第１のプロセッサは、非共有記憶空間を有してもよく、第１のプロセッサは当該非共有記憶空間におけるデータをアクセスでき、第２のプロセッサは、第１のプロセッサの非共有記憶空間をアクセスできなく、当該非共有記憶空間におけるデータをアクセスできない。同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にあると、第２のプロセッサは当該テンソルデータを直接取得できない。この場合、第１のプロセッサは、同期待ちのテンソルデータを共有記憶空間に転送記憶することによって、第２のプロセッサが当該テンソルデータをアクセスできるようにすることができる。転送記憶を完成した後、第１のプロセッサに、当該同期待ちのテンソルデータを示す記述子が登録されていないか、または、非共有記憶空間における当該テンソルデータを示す記述子が既に登録されており、且つ、当該記述子が変更不可である（例えば、操作されている）と、第１のプロセッサは前記同期待ちのテンソルデータの記述子を生成でき、すなわち、新たな記述子を登録することによって、共有記憶空間における当該テンソルデータを示すことができる。
【０３３４】
可能な一実現形態において、記述子を生成した後、第１のプロセッサは、記述子の内容に基づいて記述子同期命令を生成できる。第２のプロセッサは、記述子同期命令を受信した後、命令を解析して記述子の内容を得ることができるし、記述子の内容に基づいて、第２のプロセッサは同期待ちのテンソルデータのデータアドレスを確定し、且つ、共有記憶空間から前記同期待ちのテンソルデータを取得することにより、同期過程全体を実現できる。
【０３３５】
このような方式によって、非共有記憶空間における同期待ちのテンソルデータを能動的に共有記憶空間に転送記憶することで、第２のプロセッサが同期待ちのテンソルデータを取得できるようにすることによって、同期の際のプロセッサ間のデータ伝送を削減して、同期の処理効率を向上させることができる。
可能な一実現形態において、ステップＳ１１ｃは、
同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶することと、
前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、前記同期待ちのテンソルデータの記述子を変更することと、
【０３３６】
前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにすることと、を含む。
【０３３７】
例を挙げると、上記の記述と類似に、同期待ちのテンソルデータが第１のプロセッサの非共有記憶空間にあると、第１のプロセッサは、同期待ちのテンソルデータを共有記憶空間に転送記憶できる。転送記憶を完成した後、第１のプロセッサに非共有記憶空間における当該テンソルデータを示す記述子が既に登録されており、且つ、当該記述子変更可能である（例えば、記述子が操作されていない）と、第１のプロセッサは同期待ちのテンソルデータの記述子などを直接変更することによって、当該記述子が共有記憶空間における当該テンソルデータを示すようにすることができる。
【０３３８】
可能な一実現形態において、記述子を変更した後、第１のプロセッサは、記述子の内容に基づいて記述子同期命令を生成できる。第２のプロセッサは、記述子同期命令を受信した後、命令を解析して記述子の内容を得ることができるし、記述子の内容に基づいて、第２のプロセッサは同期待ちのテンソルデータのデータアドレスを確定し、共有記憶空間から前記同期待ちのテンソルデータを取得することにより、同期過程全体を実現できる。
【０３３９】
このような方式によって、非共有記憶空間における同期待ちのテンソルデータを能動的に共有記憶空間に転送記憶することで、同期の際のプロセッサ間のデータ伝送を削減して、同期の処理効率を向上させることができるし、また、第１のプロセッサが新たな記述子を作成する必要がなく、限られた記述子リソースを節約した。
【０３４０】
図３ｃ１は、本発明の実施例に係るデータ同期方法を示すフローチャートである。当該データ同期方法は、第２のプロセッサに適用できる。図３ｃ１に示されたように、当該データ同期方法は、以下のステップを含む。
【０３４１】
ステップＳ２１ｃにおいて、第１のプロセッサからの記述子同期命令であって、前記記述子同期命令は記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を解析して、同期待ちのテンソルデータの前記記述子であって、同期待ちのテンソルデータの形状を示すために使用される前記記述子を得、
ステップＳ２２ｃにおいて、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得する。
【０３４２】
例を挙げると、第１のプロセッサ（送信側）は、第２のプロセッサ（受信側）に対するデータ同期を能動的に開始させることができ、例えば、第１のプロセッサが一つの演算を完成して演算結果（テンソルデータ）を得た場合、当該演算結果を使用する必要がある第２のプロセッサに対するデータ同期を能動的に開始させる。
【０３４３】
可能な一実現形態において、第２のプロセッサは、第１のプロセッサからの記述子同期命令を受信した場合、当該記述子同期命令を解析して、同期待ちのテンソルデータの記述子（例えば、記述子の識別子及び／又は前記記述子の内容）を得ることができる。
【０３４４】
可能な一実現形態において、当該記述子同期命令に記述子の識別子のみが含まれていると、第２のプロセッサは、内部で当該記述子の識別子に対応する記述子の内容を検索し、さらに記述子の内容に基づいて同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
【０３４５】
可能な一実現形態において、当該記述子同期命令に記述子の識別子と内容が含まれていると、第２のプロセッサ該記述子の識別子に対応する記述子を検索し、記述子同期命令における記述子内容に基づいて、原の記述子内容を更新し、更新後の記述子内容に基づいて同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
【０３４６】
可能な一実現形態において、当該記述子同期命令に記述子の内容が含まれていると、第２のプロセッサ可記述子の内容に基づいて、当該同期待ちのテンソルデータを示す記述子を登録し、記述子の内容に基づいて同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
【０３４７】
本発明の実施例に係るデータ同期方法によると、テンソルデータの形状を示す記述子を設定することによって、記述子同期命令における同期待ちのテンソルデータを示す記述子に基づいて、同期待ちのテンソルデータを取得して、テンソルデータの同期を実現できて、同期オーバーヘッドを軽減し、データ同期の複雑度を低下させて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容を含み、ここで、ステップＳ２２ｃは、
前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することを含む。
【０３４８】
例を挙げると、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にあると、第２のプロセッサは共有記憶空間からデータをアクセスできる。この場合、記述子同期命令は、同期待ちのテンソルデータの記述子の内容を含んでもよい。第２のプロセッサは、記述子同期命令を受信した後、命令を解析して記述子の内容を得ることができるし、記述子の内容に基づいて、第２のプロセッサは同期待ちのテンソルデータのデータアドレスを確定し、共有記憶空間から前記同期待ちのテンソルデータを取得することにより、同期過程全体を実現できる。
このような方式によって、不要なデータ伝送を回避し、テンソルデータアクセス回数を削減できて、同期の処理効率を向上させた。
【０３４９】
可能な一実現形態において、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスを含み、ここで、ステップＳ２２ｃは、
【０３５０】
前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスに基づいて、前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得することと、
前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することと、を含む。
【０３５１】
例を挙げると、第１のプロセッサは、同期待ちのテンソルデータの記述子を確定した後、記述子の内容を同期データ記憶空間に記憶し、記述子の内容の同期データ記憶空間におけるアドレスに基づいて、記述子同期命令を生成して送信することができる。第２のプロセッサは、記述子同期命令を受信した後、命令を解析して記述子の内容の記憶アドレスを得ることができ、当該記憶アドレスに基づいて、第２のプロセッサは同期データ記憶空間から同期待ちのテンソルデータの記述子の内容を取得し、さらに記述子の内容に基づいて同期待ちのテンソルデータのデータアドレスを確定して、前記同期待ちのテンソルデータを取得することによって、同期過程全体を実現できる。
このような方式によって、同期の際のプロセッサ間のデータ伝送をもう一層削減して、同期の処理効率を向上させることができる。
【０３５２】
図３ｃ２は、本発明の実施例に係るデータ同期方法を示すフローチャートである。当該データ同期方法は、第２のプロセッサに適用できる。図３ｃ２に示されたように、当該データ同期方法は、以下のステップを含む。
【０３５３】
ステップＳ３１ｃにおいて、同期待ちのテンソルデータが存在する場合、第１のプロセッサを指示して前記第１のプロセッサが記述子同期要求命令に従って同期待ちのテンソルデータの前記同期待ちのテンソルデータの形状を示すために使用される記述子を送信するようにするために使用される前記記述子同期要求命令を生成し、
ステップＳ３２ｃにおいて、前記記述子同期要求命令を前記第１のプロセッサに送信する。
【０３５４】
例を挙げると、第２のプロセッサに同期待ちのテンソルデータが存在する場合、記述子同期要求命令を能動的に第１のプロセッサに送信することによって、当該同期待ちのテンソルデータを取得できる。第２のプロセッサは、例えば当該同期待ちのテンソルデータを示す記述子の識別子、当該同期待ちのテンソルデータのデータ特徴などの、同期待ちのテンソルデータの情報に基づいて、記述子同期要求命令を生成できる。本発明は、記述子同期要求命令の具体的な内容に対して限定しない。第１のプロセッサは、記述子同期要求命令における情報に基づいて、同期待ちのテンソルデータの記述子を確定し、さらに記述子同期命令を生成できる。
このような方式によって、同期する必要があるときに同期要求を能動的に開始させて、データ同期の効率を向上させることができる。
【０３５５】
可能な一実現形態において、第１のプロセッサが同期待ちのテンソルデータを確定できるように、前記記述子同期要求命令は、記述子の識別子及び／又は前記同期待ちのテンソルデータのデータ特徴を含む。ここで、テンソルデータのデータ特徴は、テンソルデータの形状、ソース、アドレスなどの情報を含んでもよい。当業者は、実際の状況に従って同期待ちのテンソルデータのデータ特徴を設定でき、本発明はこれに対して限定しない。
可能な一実現形態において、前記方法は、
【０３５６】
第１のプロセッサからの記述子同期命令であって、前記記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を解析して、同期待ちのテンソルデータの記述子を得ることと、
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することと、を含む。
【０３５７】
例を挙げると、第１のプロセッサと第２のプロセッサにいずれも当該テンソルデータを示す記述子が既に登録されており、且つ、記述子の識別子が同じであるかまたは対応関係を有すると、記述子同期要求命令は記述子の識別子を含むことができ、例えば、記述子の識別子がＴＲ１である場合、記述子同期要求命令をＲｅｃｅｉvｅ ＴＲ１で表す。第１のプロセッサは、第２のプロセッサからの記述子同期要求命令を解析して、記述子の識別子を得ることができ、さらに記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定して、記述子同期命令を生成できる。
【０３５８】
可能な一実現形態において、第２のプロセッサは、記述子同期命令を受信した場合、当該記述子同期命令を解析して、同期待ちのテンソルデータの記述子（記述子の識別子及び／又は記述子の内容）を得ることができる。当該記述子同期命令に記述子の識別子のみが含まれていると、第２のプロセッサは、内部で当該記述子の識別子に対応する記述子内容を検索し、さらに記述子内容に基づいて同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
【０３５９】
可能な一実現形態において、当該記述子同期命令に記述子の識別子と内容が含まれていると、第２のプロセッサは該記述子の識別子に対応する記述子を検索し、記述子同期命令における記述子内容に基づいて、元の記述子内容を更新し、更新後の記述子内容に基づいて同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
【０３６０】
可能な一実現形態において、当該記述子同期命令に記述子の内容が含まれていると、第２のプロセッサは可記述子の内容に基づいて、当該同期待ちのテンソルデータを示す記述子を登録し、且つ、記述子の内容に基づいて同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
このような方式によって、データ同期の複雑度を低下させて、データ同期の効率を向上させることができる。
【０３６１】
可能な一実現形態において、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容を含み、ここで、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するステップは、
前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することを含む。
【０３６２】
例を挙げると、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にあると、第２のプロセッサは共有記憶空間からデータをアクセスできる。この場合、記述子同期命令は、同期待ちのテンソルデータの記述子の内容を含んでもよい。第２のプロセッサは、記述子同期命令を受信した後、命令を解析して記述子の内容を得ることができるし、記述子の内容に基づいて、第２のプロセッサは同期待ちのテンソルデータのデータアドレスを確定し、共有記憶空間から前記同期待ちのテンソルデータを取得することにより、同期過程全体を実現できる。
このような方式によって、不要なデータ伝送を回避し、テンソルデータアクセス回数を削減できて、同期の処理効率を向上させた。
【０３６３】
可能な一実現形態において、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスを含み、ここで、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するステップは、
【０３６４】
前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスに基づいて、前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得することと、
前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することと、を含む。
【０３６５】
第１のプロセッサは、同期待ちのテンソルデータの記述子を確定した後、記述子の内容を同期データ記憶空間に記憶し、記述子の内容の同期データ記憶空間におけるアドレスに基づいて、記述子同期命令を生成して送信することができる。第２のプロセッサは、記述子同期命令を受信した後、命令を解析して記述子の内容の記憶アドレスを得ることができ、当該記憶アドレスに基づいて、第２のプロセッサは同期データ記憶空間から同期待ちのテンソルデータの記述子の内容を取得し、さらに記述子の内容に基づいて同期待ちのテンソルデータのデータアドレスを確定して、前記同期待ちのテンソルデータを取得することによって、同期過程全体を実現できる。
このような方式によって、同期の際のプロセッサ間のデータ伝送をもう一層削減して、同期の処理効率を向上させることができる。
【０３６６】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、プロセッサの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなどにおける記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、プロセッサの内部メモリ（例えば、オンチップキャッシュ）、または、プロセッサに接続された外部メモリ（オフチップメモリ）における記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【０３６７】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同じ領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスがＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１は記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３は記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３は記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０３６８】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタにおける記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０３６９】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子におけるデータは、即時値にすることも、専用レジスタ中から取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタにおける記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０３７０】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０３７１】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、プロセッサは記述子の内容に基づいてテンソルデータのデータアドレスを確定できる。
【０３７２】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０３７３】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０３７４】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスがデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間における１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスが当該データブロックのデータ記憶空間における物理アドレスである。
【０３７５】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記テンソルデータのデータ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータにおける点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータが３次元空間における点または領域の位置にマッピングされる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０３７６】
図２は、本発明の一実施例に係るデータ記憶空間を示す模式図である。図２に示されたように、データ記憶空間２１は、行優先の方式を使用して一つの２次元データを記憶し、（ｘ、ｙ）によって（ここで、Ｘ軸は水平方向に右向きであり、Ｙ軸は垂直方向に下向きである）表すことができ、Ｘ軸方向におけるサイズ（各行のサイズ）はｏｒｉ_ｘ（図示せず）であり、Ｙ軸方向上のサイズ（全行数）はｏｒｉ_ｙ（図示せず）であり、データ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔ（基準アドレス）は１番目のデータブロック２２の物理アドレスである。データブロック２３は、データ記憶空間２１における一部のデータであり、Ｘ軸方向におけるオフセット量２５はｏｆｆｓｅｔ_ｘで表し、Ｙ軸方向におけるオフセット量２４はｏｆｆｓｅｔ_ｙで表し、Ｘ軸方向におけるサイズはｓｉzｅ_ｘで表し、Ｙ軸方向におけるサイズはｓｉzｅ_ｙで表す。
【０３７７】
可能な一実現形態において、記述子を使用してデータブロック２３を定義する場合、記述子のデータ基準点はデータ記憶空間２１の１番目のデータブロックを使用でき、記述子の基準アドレスはデータ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔであり、その後、データ記憶空間２１のＸ軸におけるサイズｏｒｉ_ｘ、Ｙ軸におけるサイズｏｒｉ_ｙ、および、データブロック２３のＹ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｙ、Ｘ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｘ、Ｘ軸方向におけるサイズｓｉzｅ_ｘおよびＹ軸方向上のサイズｓｉzｅ_ｙと組み合わせて、データブロック２３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（１）を使用して記述子の内容を表すことができる。
2021520591.tif 000028
【０３７８】
上記の例では記述子が記述したのは２次元空間であるが、当業者は実際の状況に従って記述子の内容が表す次元を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０３７９】
可能な一実現形態において、前記記述子のデータ基準点の前記データ記憶空間における基準アドレス、および、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置に基づいて、前記テンソルデータの記述子の内容を確定できる。
【０３８０】
例を挙げると、記述子のデータ基準点のデータ記憶空間における基準アドレスＰＡ_ｂａｓｅ、および、対角位置の二つの頂点のデータ基準点に対する位置を使用して、図２におけるのデータブロック２３の記述子の内容を確定できる。まず、記述子のデータ基準点およびそのデータ記憶空間における基準アドレスＰＡ_ｂａｓｅを確定し、例えば、データ記憶空間２１における一つのデータ（例えば、位置が（２、２）であるデータである）をデータ基準点として選択し、当該データのデータ記憶空間における物理アドレスを基準アドレスＰＡ_ｂａｓｅとし、その後、データブロック２３の対角位置の少なくとも二つの頂点のデータ基準点に対する位置を確定できる。例えば、左上から右下への方向の対角位置頂点のデータ基準点に対する位置を使用し、ここで、左上の頂点の相対位置は（ｘ_ｍｉｎ、ｙ_Ｍｉｎ）であり、右下の頂点の相対位置は（ｘ_ｍａｘ、ｙ_ｍａｘ）であり、その後、基準アドレスＰＡ_ｂａｓｅ、左上の頂点の相対位置（ｘ_ｍｉｎ、ｙ_ｍｉｎ）、および、右下の頂点の相対位置（ｘ_ｍａｘ、ｙ_ｍａｘ）に基づいて、データブロック２３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（２）を使用して記述子の内容を表すことができる。
2021520591.tif 000029
【０３８１】
上記の例では左上と右下の二つの頂点を使用して記述子の内容を確定したが、当業者は実際の必要に従って少なくとも二つの頂点の具体的な頂点を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０３８２】
可能な一実現形態において、前記記述子のデータ基準点の前記データ記憶空間における基準アドレス、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係に基づいて、前記テンソルデータの記述子の内容を確定できる。ここで、データ記述位置とデータアドレスとの間のマッピング関係は、実際の必要に従って設定でき、例えば、記述子が示すテンソルデータが３次元空間データである場合、関数ｆ(ｘ、ｙ、z)を使用してデータ記述位置とデータアドレスとの間のマッピング関係を定義できる。
可能な一実現形態において、以下の式（３）を使用して記述子の内容を表すことができる。
2021520591.tif 000030
【０３８３】
当業者は、実際の状況に従ってデータ記述位置とデータアドレスとの間のマッピング関係を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０３８４】
式（１）を使用して記述子の内容を表す場合、テンソルデータにおける任意の一つのデータ点に対して、そのデータ記述位置を(ｘ_ｑ、ｙ_ｑ)に設定すると、当該データ点のデータ記憶空間におけるデータアドレス
2021520591.tif 000031
は、以下の式（４）を使用して確定できる。
2021520591.tif 000032
【０３８５】
このような方式によって、プロセッサは、記述子の内容に基づいて記述子が示すテンソルデータのデータ記憶空間におけるデータアドレスを計算し、さらに当該アドレスに基づいて対応する処理（例えば、データ演算、データ同期など）を実行することによって、データアクセスの複雑度を低下させて、プロセッサの処理効率を向上させることができる。
【０３８６】
図３ｃ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第１のプロセッサに適用され、図３ｃ３に示されたように、当該データ同期装置は、
【０３８７】
同期待ちのテンソルデータの記述子であって、同期待ちのテンソルデータの形状を示すために使用される記述子に基づいて、前記記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を生成するための同期命令生成モジュール５１ｃと、
【０３８８】
第２のプロセッサを指示して前記第２のプロセッサが前記記述子同期命令に基づいて前記同期待ちのテンソルデータを取得するようにするために使用される前記記述子同期命令を、第２のプロセッサに送信するための同期命令送信モジュール５２ｃと、を備える。
【０３８９】
可能な一実現形態において、前記装置は、第２のプロセッサからの記述子同期要求命令に従って、前記同期待ちのテンソルデータの記述子を確定するための第１の記述子確定モジュールをさらに備える。
可能な一実現形態において、前記記述子同期要求命令は、記述子の識別子を含み、ここで、前記第１の記述子確定モジュールは、
前記記述子同期要求命令を解析して、前記記述子の識別子を得るための第１の解析サブモジュールと、
前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第１の確定サブモジュールと、を備える。
可能な一実現形態において、前記記述子同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、ここで、前記第１の記述子確定モジュールは、
前記記述子同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴を得るための第２の解析サブモジュールと、
同期待ちのテンソルデータのデータ特徴に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第２の確定サブモジュールと、を備える。
可能な一実現形態において、前記記述子同期命令は、同期待ちのテンソルデータの記述子の内容を含み、ここで、前記同期命令生成モジュールは、
【０３９０】
同期待ちのテンソルデータの記憶アドレスが共有記憶空間にある場合、前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにするための第１の生成サブモジュールを備える。
可能な一実現形態において、前記同期命令生成モジュールは、
前記同期待ちのテンソルデータの記述子の内容を同期データ記憶空間に記憶するための第１の記憶サブモジュールと、
【０３９１】
前記記述子の内容の前記同期データ記憶空間におけるアドレスに基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して前記第２のプロセッサが前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得するようにするための第２の生成サブモジュールと、を備える。
可能な一実現形態において、前記同期命令生成モジュールは、
【０３９２】
同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶するための第２の記憶サブモジュールと、
【０３９３】
前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、前記同期待ちのテンソルデータの記述子を生成するための記述子生成サブモジュールと、
【０３９４】
前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにするための第３の生成サブモジュールと、を備える。
可能な一実現形態において、前記同期命令生成モジュールは、
【０３９５】
同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶するための第３の記憶サブモジュールと、
【０３９６】
前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、前記同期待ちのテンソルデータの記述子を変更するための記述子変更サブモジュールと、
【０３９７】
前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにするための第４の生成サブモジュールと、を備える。
【０３９８】
図３ｃ４は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第２のプロセッサに適用され、図３ｃ４に示されたように、当該データ同期装置は、
【０３９９】
第１のプロセッサからの記述子同期命令であって、前記記述子同期命令は記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を解析して、同期待ちのテンソルデータの前記記述子であって、同期待ちのテンソルデータの形状を示すために使用される前記記述子を得るための第１の解析モジュール６１ｃと、
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するための第１のデータ取得モジュール６２ｃと、を備える。
可能な一実現形態において、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容を含み、ここで、前記第１のデータ取得モジュールは、
【０４００】
前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第１のデータ取得サブモジュールを備える。
【０４０１】
可能な一実現形態において、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスを含み、ここで、前記第１のデータ取得モジュールは、
【０４０２】
前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスに基づいて、前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得するための第１の内容取得サブモジュールと、
【０４０３】
前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第２のデータ取得サブモジュールと、を備える。
【０４０４】
図３ｃ５は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第２のプロセッサに適用され、図３ｃ５に示されたように、当該データ同期装置は、
【０４０５】
同期待ちのテンソルデータが存在する場合、第１のプロセッサを指示して前記第１のプロセッサが記述子同期要求命令に従って同期待ちのテンソルデータの前記同期待ちのテンソルデータの形状を示すために使用される記述子を送信するようにするために使用される前記記述子同期要求命令を生成するための要求命令生成モジュール７１ｃと、
前記記述子同期要求命令を前記第１のプロセッサに送信するための要求命令送信モジュール７２ｃと、を備える。
可能な一実現形態において、前記記述子同期要求命令は、記述子の識別子及び／又は前記同期待ちのテンソルデータのデータ特徴を含む。
可能な一実現形態において、前記装置は、
【０４０６】
第１のプロセッサからの記述子同期命令であって、前記記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を解析して、同期待ちのテンソルデータの記述子を得るための第２の解析モジュールと、
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するための第２のデータ取得モジュールと、を備える。
可能な一実現形態において、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容を含み、ここで、前記第２のデータ取得モジュールは、
【０４０７】
前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第３のデータ取得サブモジュールを備える。
【０４０８】
可能な一実現形態において、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスを含み、ここで、前記第２のデータ取得モジュールは、
【０４０９】
前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスに基づいて、前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得するための第２の内容取得サブモジュールと、
【０４１０】
前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第４のデータ取得サブモジュールと、を備える。
可能な一実現形態において、人工知能チップをさらに開示し、前記人工知能チップは上記のデータ同期装置を備える。
【０４１１】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０４１２】
Ａ１、データ同期方法であって、前記方法は、第１のプロセッサに適用され、前記方法は、同期待ちのテンソルデータの記述子であって、同期待ちのテンソルデータの形状を示すために使用される記述子に基づいて、前記記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を生成することと、第２のプロセッサを指示して前記第２のプロセッサが前記記述子同期命令に基づいて前記同期待ちのテンソルデータを取得するようにするために使用される前記記述子同期命令を、第２のプロセッサに送信することと、を含む。
【０４１３】
Ａ２、請求項Ａ１に記載の方法であって、前記方法は、第２のプロセッサからの記述子同期要求命令に従って、前記同期待ちのテンソルデータの記述子を確定することをさらに含む。
【０４１４】
Ａ３、請求項Ａ２に記載の方法であって、前記記述子同期要求命令は、記述子の識別子を含み、ここで、前記第２のプロセッサからの記述子同期要求命令に従って、前記同期待ちのテンソルデータの記述子を確定することは、前記記述子同期要求命令を解析して、前記記述子の識別子を得ることと、前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含む。
【０４１５】
Ａ４、請求項Ａ２に記載の方法であって、前記記述子同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、ここで、前記第２のプロセッサからの記述子同期要求命令に従って、前記同期待ちのテンソルデータの記述子を確定することは、前記記述子同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴を得ることと、同期待ちのテンソルデータのデータ特徴に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含む。
【０４１６】
Ａ５、請求項Ａ１乃至Ａ４の中のいずれか１項に記載の方法であって、前記記述子同期命令は、同期待ちのテンソルデータの記述子の内容を含み、ここで、前記同期待ちのテンソルデータの記述子に基づいて、記述子同期命令を生成することは、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にある場合、前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにすることを含む。
【０４１７】
Ａ６、請求項Ａ１乃至Ａ４の中のいずれか１項に記載の方法であって、前記同期待ちのテンソルデータの記述子に基づいて、記述子同期命令を生成することは、前記同期待ちのテンソルデータの記述子の内容を同期データ記憶空間に記憶することと、前記記述子の内容の前記同期データ記憶空間におけるアドレスに基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して前記第２のプロセッサが前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得するようにすることと、を含む。
【０４１８】
Ａ７、請求項Ａ１乃至Ａ４の中のいずれか１項に記載の方法であって、前記同期待ちのテンソルデータの記述子に基づいて、記述子同期命令を生成することは、同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶することと、前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、前記同期待ちのテンソルデータの記述子を生成することと、前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにすることと、を含む。
【０４１９】
Ａ８、請求項Ａ１乃至Ａ４の中のいずれか１項に記載の方法であって、前記同期待ちのテンソルデータの記述子に基づいて、記述子同期命令を生成することは、同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶することと、前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、前記同期待ちのテンソルデータの記述子を変更することと、前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにすることと、を含む。
【０４２０】
Ａ９、データ同期方法であって、前記方法は、第２のプロセッサに適用され、前記方法は、第１のプロセッサからの記述子同期命令であって、前記記述子同期命令は記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を解析して、同期待ちのテンソルデータの前記記述子であって、同期待ちのテンソルデータの形状を示すために使用される前記記述子を得ることと、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することと、を含む。
【０４２１】
Ａ１０、請求項Ａ９に記載の方法であって、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容を含み、ここで、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することを含む。
【０４２２】
Ａ１１、請求項Ａ９に記載の方法であって、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスを含み、ここで、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することは、前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスに基づいて、前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得することと、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することと、を含む。
【０４２３】
Ａ１２、データ同期方法であって、前記方法は、第２のプロセッサに適用され、前記方法は、同期待ちのテンソルデータが存在する場合、第１のプロセッサを指示して前記第１のプロセッサが記述子同期要求命令に従って同期待ちのテンソルデータの前記同期待ちのテンソルデータの形状を示すために使用される記述子を送信するようにするために使用される前記記述子同期要求命令を生成することと、前記記述子同期要求命令を前記第１のプロセッサに送信することと、を含む。
Ａ１３、請求項Ａ１２に記載の方法であって、前記記述子同期要求命令は、記述子の識別子及び／又は前記同期待ちのテンソルデータのデータ特徴を含む。
【０４２４】
Ａ１４、請求項Ａ１２またはＡ１３に記載の方法であって、前記方法は、第１のプロセッサからの記述子同期命令であって、前記記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を解析して、同期待ちのテンソルデータの記述子を得ることと、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することと、を含む。
【０４２５】
Ａ１５、請求項Ａ１４に記載の方法であって、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容を含み、ここで、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することを含む。
【０４２６】
Ａ１６、請求項Ａ１４に記載の方法であって、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスを含み、ここで、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することは、前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスに基づいて、前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得することと、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することと、を含む。
【０４２７】
Ａ１７、データ同期装置であって、前記装置は、第１のプロセッサに適用され、前記装置は、同期待ちのテンソルデータの記述子であって、同期待ちのテンソルデータの形状を示すために使用される記述子に基づいて、前記記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を生成するための同期命令生成モジュールと、第２のプロセッサを指示して前記第２のプロセッサが前記記述子同期命令に基づいて前記同期待ちのテンソルデータを取得するようにするために使用される前記記述子同期命令を、第２のプロセッサに送信するための同期命令送信モジュールと、を備える。
【０４２８】
Ａ１８、請求項Ａ１７に記載の装置であって、前記装置は、第２のプロセッサからの記述子同期要求命令に従って、前記同期待ちのテンソルデータの記述子を確定するための第１の記述子確定モジュールをさらに備える。
【０４２９】
Ａ１９、請求項Ａ１８に記載の装置であって、前記記述子同期要求命令は、記述子の識別子を含み、ここで、前記第１の記述子確定モジュールは、前記記述子同期要求命令を解析して、前記記述子の識別子を得るための第１の解析サブモジュールと、前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第１の確定サブモジュールと、を備える。
【０４３０】
Ａ２０、請求項Ａ１８に記載の装置であって、前記記述子同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、ここで、前記第１の記述子確定モジュールは、前記記述子同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴を得るための第２の解析サブモジュールと、同期待ちのテンソルデータのデータ特徴に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第２の確定サブモジュールと、を備える。
【０４３１】
Ａ２１、請求項Ａ１７乃至Ａ２０の中のいずれか１項に記載の装置であって、前記記述子同期命令は、同期待ちのテンソルデータの記述子の内容を含み、ここで、前記同期命令生成モジュールは、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にある場合、前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにするための第１の生成サブモジュールを備える。
【０４３２】
Ａ２２、請求項Ａ１７乃至Ａ２０の中のいずれか１項に記載の装置であって、前記同期命令生成モジュールは、前記同期待ちのテンソルデータの記述子の内容を同期データ記憶空間に記憶するための第１の記憶サブモジュールと、前記記述子の内容の前記同期データ記憶空間におけるアドレスに基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して前記第２のプロセッサが前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得するようにするための第２の生成サブモジュールと、を備える。
【０４３３】
Ａ２３、請求項Ａ１７乃至Ａ２０の中のいずれか１項に記載の装置であって、前記同期命令生成モジュールは、同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶するための第２の記憶サブモジュールと、前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、前記同期待ちのテンソルデータの記述子を生成するための記述子生成サブモジュールと、前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにするための第３の生成サブモジュールと、を備える。
【０４３４】
Ａ２４、請求項Ａ１７乃至Ａ２０の中のいずれか１項に記載の装置であって、前記同期命令生成モジュールは、同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶するための第３の記憶サブモジュールと、前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、前記同期待ちのテンソルデータの記述子を変更するための記述子変更サブモジュールと、前記同期待ちのテンソルデータの記述子の内容に基づいて、記述子同期命令を生成することによって、前記第２のプロセッサを指示して、前記第２のプロセッサが前記同期待ちのテンソルデータの記述子の内容に基づいて前記共有記憶空間から前記同期待ちのテンソルデータを取得するようにするための第４の生成サブモジュールと、を備える。
【０４３５】
Ａ２５、データ同期装置であって、前記装置は、第２のプロセッサに適用され、前記装置は、第１のプロセッサからの記述子同期命令であって、前記記述子同期命令は記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を解析して、同期待ちのテンソルデータの前記記述子であって、同期待ちのテンソルデータの形状を示すために使用される前記記述子を得るための第１の解析モジュールと、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するための第１のデータ取得モジュールと、を備える。
【０４３６】
Ａ２６、請求項Ａ２５に記載の装置であって、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容を含み、ここで、前記第１のデータ取得モジュールは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第１のデータ取得サブモジュールを備える。
【０４３７】
Ａ２７、請求項Ａ２５に記載の装置であって、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスを含み、ここで、前記第１のデータ取得モジュールは、
【０４３８】
前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスに基づいて、前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得するための第１の内容取得サブモジュールと、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第２のデータ取得サブモジュールと、を備える。
【０４３９】
Ａ２８、データ同期装置であって、前記装置は、第２のプロセッサに適用され、前記装置は、同期待ちのテンソルデータが存在する場合、第１のプロセッサを指示して前記第１のプロセッサが記述子同期要求命令に従って同期待ちのテンソルデータの前記同期待ちのテンソルデータの形状を示すために使用される記述子を送信するようにするために使用される前記記述子同期要求命令を生成するための要求命令生成モジュールと、前記記述子同期要求命令を前記第１のプロセッサに送信するための要求命令送信モジュールと、を備える。
Ａ２９、請求項Ａ２８に記載の装置であって、前記記述子同期要求命令は、記述子の識別子及び／又は前記同期待ちのテンソルデータのデータ特徴を含む。
【０４４０】
Ａ３０、請求項Ａ２８またはＡ２９に記載の装置であって、前記装置は、第１のプロセッサからの記述子同期命令であって、前記記述子の識別子及び／又は前記記述子の内容を含む記述子同期命令を解析して、同期待ちのテンソルデータの記述子を得るための第２の解析モジュールと、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するための第２のデータ取得モジュールと、を備える。
【０４４１】
Ａ３１、請求項Ａ３０に記載の装置であって、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容を含み、ここで、前記第２のデータ取得モジュールは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第３のデータ取得サブモジュールを備える。
【０４４２】
Ａ３２、請求項Ａ３０に記載の装置であって、前記記述子同期命令は、前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスを含み、ここで、前記第２のデータ取得モジュールは、
【０４４３】
前記同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスに基づいて、前記同期データ記憶空間から前記同期待ちのテンソルデータの記述子の内容を取得するための第２の内容取得サブモジュールと、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第４のデータ取得サブモジュールと、を備える。
Ａ３３、人工知能チップであって、前記チップは、請求項Ａ１７乃至Ａ３２の中のいずれか１項に記載のデータ同期装置を備える。
Ａ３４、電子デバイスであって、前記電子デバイスは、請求項Ａ３３に記載の人工知能チップを備える。
【０４４４】
Ａ３５、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ３３に記載の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置にそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０４４５】
Ａ３６、請求項Ａ３５に記載のボードカードであって、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０４４６】
人工知能技術の継続的な発展に伴って、処理する必要のあるデータ量とデータの次元とがいずれも継続的に増加している。関連技術において、複数の操作が同じ記憶領域に対して操作を行う場合、前の一つの操作が完了するまで待機してから、後の一つの操作を実行する必要があり、プロセッサの処理効率を低下させた。
【０４４７】
本発明の実施例によると、プロセッサ操作方法が提供される。図１ｄ１は、本発明の実施例に係る適用シナリオを示す模式図である。ここで、プロセッサ１００は、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）であってもよいし、専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサまたはデジタル信号プロセッサなど）であってもよく、本発明は、プロセッサのタイプに対して限定しない。記憶デバイス２００は、少なくとも一つの目標記憶領域２１０を含み、ここで、目標記憶領域２１０は、記述子が示すテンソルデータの記憶領域であってもよい。プロセッサは、読み取り操作または書き込み操作を実行することで特定の目標記憶領域２１０に対するアクセスを実現でき、プロセッサが特定の目標記憶領域２１０に対する読み取り操作を実行することとは、プロセッサが記述子に基づいて当該目標記憶領域２１０におけるテンソルデータを取得することを意味することができることを理解できる。プロセッサが特定の目標記憶領域２１０に対する書き込み操作を実行することとは、プロセッサが、記述子が示すテンソルデータを当該目標記憶領域２１０に書き込むことを意味することができることを理解できる。関連技術において、プロセッサが複数の操作を並行して実行できるため、競合を回避するために、プロセッサが並行して実行する複数の操作がいずれも特定の目標記憶領域２１０に対する操作である場合、プロセッサは当該複数の操作のにおける一つのみを実行する同時に、他の操作をブロックすることによって、プロセッサの効率が低下される。本発明によって提供されるプロセッサ操作方法は、目標記憶領域２１０を複数の細粒度領域２１１にさらに区分けし、プロセッサ並行して実行する複数の操作がいずれも特定の目標記憶領域２１０に対する操作である場合、プロセッサは、当該複数の操作の対象となる細粒度領域２１１が重なるか否かを判断し、各操作の対象となる細粒度領域２１１が重ならないと、当該複数の操作を並行して実行でき、したがって、プロセッサの効率を大幅に向上させた。記憶デバイス２００は、プロセッサ内部（例えば、オンチップキャッシュまたはレジスタなど）に配置されてもよいし、プロセッサとデータ通信できるプロセッサの外部（例えば、オフチップメモリなど）に配置されてもよいことを説明する必要がある。本発明は、記憶デバイスのタイプに対して限定しない。本発明に係る操作は、プロセッサハードウェアによってサポートされる基本的な操作であってもよいし、当該基本的な操作を解析した後のマイクロ命令（例えば、要求信号など）であってもよい。本発明は、操作の具体的なタイプに対して限定しない。本発明のプロセッサは、二つの操作を並行して実行してもよいし、二つの以上の操作を並行して実行してもよく、本発明は、並行して実行する操作の数に対して限定しない。
【０４４８】
図１ｄ２は、本発明の実施例に係るプロセッサ操作方法を示すフローチャートである。前記プロセッサ操作方法は、プロセッサに適用できる。図１ｄ２に示されたように、当該プロセッサ操作方法は、以下のステップを含む。
ステップＳ１１ｄにおいて、第１の操作が記述子に対する操作である場合、前記記述子が示すテンソルデータの目標記憶領域を取得する。
【０４４９】
第１の操作は、記述子に対する読み取り操作または書き込み操作であってもよい。本発明は、第１の操作の具体的なタイプに対して限定しない。記述子は、テンソルの形状を示すために使用できる。ここで、テンソルは、様々な形式のデータ構成方式を含んでもよい。テンソルは、異なる次元のものであってもよく、例えば、スカラーは０次元のテンソル、ベクトルは１次元のテンソル、行列は２次元または２次元以上のテンソルと見なしてもよい。テンソルの形状は、テンソルの次元やテンソルの各次元のサイズなどの情報を含む。例を挙げると、以下のテンソルの場合、
2021520591.tif 000033
【０４５０】
当該テンソルの形状は、記述子によって（２、４）として記述されてもよく、すなわち、二つのパラメータによって当該テンソルが２次元テンソルであることを示し、且つ、当該テンソルの第１の次元（列）のサイズは２であり、第２の次元（行）のサイズは４である。本発明は、記述子がテンソル形状を示す方式に対して限定しないことを説明する必要がある。
【０４５１】
可能な一実現形態において、第１の操作のオペランドは、一つまたは複数の記述子であってもよい。目標記憶領域は、第１の操作のオペランドにおける一つまたは複数の記述子が示すテンソルデータの記憶領域であってもよいし、第１の操作のオペランドにおける任意の一つの記述子が示すテンソルデータの記憶空間であってもよい。目標記憶領域が位置する記憶領域全体は、プロセッサの内部メモリ（例えば、オンチップキャッシュまたはレジスタなど）であってもよいし、プロセッサに接続された外部メモリ（例えば、オフチップメモリなど）であってもよい。
【０４５２】
可能な一実現形態において、目標記憶領域は、少なくとも一つの細粒度領域を含んでもよい。ここで、細粒度領域のサイズ及び／又は数の確定方式は、ハードウェア設計に基づいて確定する方式、記述子が示すテンソルデータの関連操作に基づいて確定する方式、および、操作における関連パラメータに基づいて定義する方式のにおける一つまたは任意の組み合わせを含んでもよい。ここで、ハードウェア設計に基づいて確定する方式は、ハードウェア設計のときに細粒度領域のサイズを確定し、例えば、目標記憶領域の１行または複数行を一つの細粒度領域として確定する。記述子が示すテンソルデータの関連操作に基づいて確定する方式は、記述子が示すテンソルデータの処理要件、記憶方式、または、伝送方式などに基づいて確定する方式を含み、例えば、記述子が示すテンソルデータが一つの２次元行列データであり、その規模がＭ＊Ｑ（Ｍ、Ｑは、いずれも正の整数である）であると、記憶に占有されるバイト数が、１行Ｍバイトが合計Ｑ行あることを意味し、Ｍバイトが一つの細粒度領域であり、当該記述子が示すテンソルデータに対応する目標記憶領域がＱ個の細粒度領域を含むと、確定できる。操作における関連パラメータに基づいて定義する方式は、操作における携える細粒度のサイズ及び／又は数に基づいて、目標記憶領域を複数の細粒度領域に区分ける方式を含む。複数の細粒度領域のサイズは同一であってもよいし、互いに異なってもよいことを説明する必要がある。例えば、各細粒度領域のデータビット数は、それぞれ、６４ビット、２５６ビット、５１２ビットなどであってもよい。要件によって各細粒度領域のサイズ及び／又は数を確定できる。本発明は、これに対して限定しない。
【０４５３】
可能な一実現形態において、第１の操作が記述子に対する操作である場合、第１の操作の対象となる記述子に基づいて、当該記述子が示すテンソルデータの目標記憶領域を取得することによって、第１の操作の対象となる目標記憶領域を確定できる。
ステップＳ１２ｄにおいて、実行されている、前記目標記憶領域に対する第２の操作が、存在するか否かを判断する。
【０４５４】
ここで、第２の操作は、読み取り操作または書き込み操作であってもよく、本発明は、第２の操作の具体的なタイプに対して限定しない。第２の操作は、一つまたは複数のオペランドを含んでもよいし、第２の操作のオペランドは、記述子、即時値、テンソルデータなどの様々なデータであってもよく、本発明は、第２の操作のオペランドの具体的な数和タイプに対して限定しない。
【０４５５】
可能な一実現形態において、当該目標記憶領域の占用状態に基づいて、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断してもよい。例えば、プロセッサは、占用状態リストを照会することによって目標記憶領域が占用されているか否かを判断でき、占用されていると、判断結果は、実行されている、目標記憶領域に対する第２の操作が、存在することである。ここで、当該占用状態リストは、予め設定してメモリに記憶したものであってもよいし、プロセッサが特定のタスクを実行する前に生成して、当該タスクが完成された後にログオフするものであってもよい。当各記憶領域の占用状態に変化が発生すると、プロセッサは当該占用状態リストの内容を更新することによって、各記憶領域の占用状態を記録する。
【０４５６】
可能な一実現形態において、各操作の実行状態を照会することで、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断してもよい。例えば、各操作のオペランドに対応する記憶領域を記録し、各操作の実行状態を記録できる。目標記憶領域に対する操作の実行状態が未完成であると、判断結果は、実行されている目標操作領域に対する第２の操作が、存在することである。また、オペランドの占用状態を判断することで、オペランドに対応する目標記憶領域が占用されているか否かを確定することによって、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを確定できる。本発明は、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断するための判断根拠に対して限定しない。
【０４５７】
可能な一実現形態において、第２の操作は記述子に対する操作であってもよく、第２の操作の対象となる記述子は第１の操作の対象となる記述子と一致していてもよく、すると、第２の操作の対象となる記述子の記憶領域は目標記憶領域と一致し、第２の操作が完成されていない場合、目標記憶領域に対する第２の操作が存在し、または、第２の操作の対象となる記述子の記憶領域が目標記憶領域と重なる領域があり、第２の操作が重なる領域に対して操作すると、目標記憶領域に対する第２の操作が存在する。
【０４５８】
可能な一実現形態において、目標記憶領域に対する第１の操作を実行する前に、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断してもよい。
【０４５９】
可能な一実現形態において、第１の操作の目標記憶領域に対する実行過程で、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断してもよい。
【０４６０】
ステップＳ１３ｄにおいて、前記第２の操作が存在する場合、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域と前記第２の操作の現在の対象となる前記目標記憶領域における第２の細粒度領域との間が重なるか否かを判断する。
【０４６１】
第１の細粒度領域と第２の細粒度領域は、目標記憶領域における複数の細粒度領域における任意の細粒度領域であってもよい。目標記憶領域が位置する記憶領域全体を細粒度区分けしてもよく、すると、記憶領域全体に対する各操作の対象となる細粒度領域のサイズは一致している。
【０４６２】
各操作がオペランドの対象となる記憶領域を各操作に携える細粒度区分け情報に従って細粒度区分けを実行してもよく、すると、同じ記憶領域に対して、異なる操作は異なる粒度の細粒度区分けを実行してもよい。第１の細粒度領域は、第１の操作が目標記憶領域を区分けして得た複数の細粒度領域のにおける任意の細粒度領域であってもよく、第２の細粒度領域は、第２の操作がそのオペランドが位置する記憶領域を細粒度区分けして得た任意の細粒度領域であってもよい。第１の細粒度領域と第２の細粒度領域はサイズが異なってもよい。
【０４６３】
例えば、第１の操作は、第１の細粒度のサイズ（各細粒度領域のデータビット数）を携えてもよく、且つ、当該第１の細粒度のサイズを６４ビットに設定してもよいし、第２の操作は、第２の細粒度サイズ（例えば、各細粒度領域のデータビット数）を携えてもよく、且つ、当該第２の細粒度のサイズを２５６ビットに設定してもよい。すなわち、第１の操作を実行するときには、６４ビット毎を一つの細粒度領域に設定し、第２の操作を実行するときには、２５６ビット毎を一つの細粒度領域に設定する。また、例えば、第１の操作と第２の操作が携えた細粒度サイズ（例えば、各細粒度領域のデータビット数）は、いずれも５１２ビットである。同様に、第１の操作は第１の細粒度の数（例えば、４個に設定する）を携えてもよく、第２の操作は第２の細粒度の数（例えば、８個に設定する）を携えてもよい。すなわち、第１の操作を実行するときには、目標記憶領域を４個の細粒度領域に区分けし、第２の操作を実行するときには、目標記憶領域を８個の細粒度領域に区分けする。操作における細粒度のサイズと数のような二つのパラメータを同時に携えてもよいことを理解できる。要件によって各細粒度領域のサイズ及び／又は数を確定でき、本発明は、これに対して限定しない。
【０４６４】
目標記憶領域に対する操作が目標記憶領域における各細粒度領域に対する操作であることを理解できる。例えば、目標記憶領域Ａは、第１行から第１０行まで、各々の１行は、一つの細粒度領域であり、目標記憶領域Ａは、１０個の細粒度領域を含む。目標記憶領域Ａに対する書き込み操作を、これらの１０個の細粒度領域に対する書き込み操作として見なることができる。その実行過程は、１番目の細粒度領域（第１行）を書き込み、１番目の細粒度領域の書き込みを完成した後、２番目の細粒度領域（第２行）を書き込み、２番目の細粒度領域の書き込みを完成した後、３番目の細粒度領域（第３行）を書き込み、等々、１０番目の細粒度領域（第１０行）の書き込みを完成して、目標記憶領域Ａの書き込み操作を完成する。
【０４６５】
目標記憶領域に対する操作がある場合、操作の実行に伴い、目標記憶領域における細粒度領域の状態は、操作が既に完成された状態、操作されている状態、および、操作されていない状態を含んでもよい。操作の現在の対象となる細粒度領域の状態は、操作されている状態である。したがって、目標記憶領域に対する操作が存在すると、目標記憶領域における一つの細粒度領域に対する操作が存在し、操作されている細粒度領域が操作の現在の対象となる細粒度領域であると見なすことができる。
【０４６６】
可能な一実現形態において、第１の操作の現在の対象となる目標記憶領域における第１の細粒度領域は、実行しようとする、第１の操作の対象となる目標記憶領域における細粒度領域を含んでもよく、通常、１番目の細粒度領域である。実行されている、第１の操作の現在の対象となる目標記憶領域における細粒度領域を含んでもよく、任意の一つの細粒度領域であってもよい。第２の操作の現在の対象となる目標記憶領域における第２の細粒度領域は、実行されている、第２の操作の現在の対象となる目標記憶領域における細粒度領域であってもよく、任意の一つの細粒度領域であってもよい。
【０４６７】
可能な一実現形態において、物理アドレス、ポインター位置、細粒度領域識別子などに基づいて、第１の操作の現在の対象となる目標記憶領域における第１の細粒度領域と第２の操作の現在の対象となる目標記憶領域における第２の細粒度領域との間が重なるか否かを判断できる。例えば、各操作の現在の物理アドレスを記録し、第１の操作の現在の物理アドレスと第２の操作の現在の物理アドレス、および、物理アドレスと細粒度領域との間の対応関係に基づいて、第１の操作の現在の対象となる目標記憶領域における第１の細粒度領域および第２の操作の現在の対象となる目標記憶領域における第２の細粒度領域をそれぞれ確定し、さらに第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断できる。物理アドレスは、細粒度領域の開始アドレス、終了アドレス、設定位置アドレス、または、リアルタイム操作アドレスのにおける一つまたは任意の組み合わせを含んでもよい。また、例えば、各操作に対してポインターを設定し、ポインターが操作の現在の対象となる細粒度領域を指してもよい。第１の操作のポインター位置および第２の操作のポインター位置に基づいて、第１の操作の現在の対象となる目標記憶領域における第１の細粒度領域および第２の操作の現在の対象となる目標記憶領域における第２の細粒度領域をそれぞれ確定し、さらに、第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断できる。また、例えば、各細粒度領域に対して識別子を設定し、操作の現在の対象となる細粒度領域の識別子を記録することによって第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断してもよい。識別子は、文字、数字、または、記号の任意の組み合わせを含んでもよい。他の方式によっても第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断でき、本発明は、第１の細粒度領域と第２の細粒度領域との間が重なるか否かの判断根拠に対して限定しない。
ステップＳ１４ｄにおいて、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行する。
【０４６８】
可能な一実現形態において、第１の操作の現在の対象となる目標記憶領域における第１の細粒度領域と第２の操作の現在の対象となる目標記憶領域における第２の細粒度領域とが重ならないと、第１の細粒度領域は、第２の操作が既に操作を完成した細粒度領域であってもよいし、第２の操作が操作する必要がない細粒度領域であってもよく、この場合、第１の操作の実行は第２の操作の操作過程および操作結果に影響を発生しなく、第１の操作を実行できる。
【０４６９】
本実施例によると、第１の操作が記述子に対する操作である場合、記述子が示すテンソルデータの目標記憶領域を取得し、且つ、実行されている目標記憶領域に対する第２の操作が存在する場合、第１の操作の現在の対象となる目標記憶領域における第１の細粒度領域と第２の操作の現在の対象となる目標記憶領域における第２の細粒度領域との間が重なるか否かを判断し、両者が重ならないと、第１の操作を実行することができる。このように、第１の操作と第２の操作の現在操作する細粒度領域が重ならなければ実行できて、第１の操作と第２の操作が同時に目標記憶領域に対して操作を実行することができるようにして、プロセッサの処理効率を向上させた。
【０４７０】
可能な一実現形態において、前記方法は、前記第１の細粒度領域と前記第２の細粒度領域とが重なる場合、前記第１の操作をブロックすることをさらに含んでもよい。
【０４７１】
可能な一実現形態において、第１の細粒度領域と第２の細粒度領域とが重なることは、第１の細粒度領域と第２の細粒度領域とが完全に重なることまたは一部重なることを含む。第１の細粒度領域と第２の細粒度領域とが重なる場合、第１の操作を実行すると、第１の操作の重なる一部の領域に対する操作が、第２の操作の実行に影響を及ぼして第２の操作の操作結果が正確にならない可能があり、第１の操作の実行にも影響を及ぼして第１の操作の操作結果が正確にならない可能もある。この場合、第１の操作をブロックし、すなわち第１の操作の実行を一時停止させることができ、第２の操作の、現在の対象となる目標記憶領域における第２の細粒度領域に対する操作が完成された後、第１の操作を実行できる。つまり、第１の細粒度領域と第２の細粒度領域とが重ならないときに、第１の操作を実行する。
【０４７２】
本実施例において、第１の細粒度領域と第２の細粒度領域とが重なる場合、第１の操作をブロックすることによって、各操作の細粒度領域が重なることで発生する操作の誤りを回避し、操作結果の不正確を回避して、各操作の正確性を保証できる。
【０４７３】
図５ａと図５ｂは、本発明の実施例に係るプロセッサ操作方法の適用シナリオを示す模式図である。図５ａと図５ｂに示されたように、記憶領域全体２０ｄは、目標記憶領域２１ｄを含み、ここで、目標記憶領域２１ｄは、４個の細粒度領域に区分けされ、順に、細粒度領域２２ｄ、細粒度領域２３ｄ、細粒度領域２４ｄ、および、細粒度領域２５ｄである。
【０４７４】
図５ａに示されたように、現在書き込み操作のみを含み、書き込みポインターｗｐで書き込み操作の現在の対象となる目標記憶領域２１ｄにおける細粒度領域を表す。書き込み操作が開始されたばかりのときに、書き込みポインターｗｐは細粒度領域２２ｄを指し、まず、実行されている目標記憶領域２１ｄに対する第２の操作が存在するか否かを判断し、判断結果が第２の操作が存在しないことであると、細粒度領域２２ｄに対する書き込み操作を開始し、細粒度領域２２ｄに対する書き込み操作を完成した後に、書き込みポインターｗｐを増加させ、すなわちｗｐ＋＋させて、次の一つの細粒度領域２３ｄを指すようにして、同様の判断を行った後に、細粒度領域２３ｄに対する書き込み操作を開始し、細粒度領域２３ｄに対する書き込み操作を完成した後にした、書き込みポインターｗｐを増加させて、次の一つの細粒度領域２４ｄを指すようにして、同様の判断を行った後に、細粒度領域２４ｄに対する書き込み操作を開始する。
【０４７５】
また、図５ｂに示されたように、現在、読み取り操作と書き込み操作のような二つの操作を含み、ここで、読み取り操作は第１の操作であり、書き込み操作は第２の操作である。また、書き込み操作の書き込みポインターｗｐと読み取り操作の読み取りポインターｒｐを使用して、書き込み操作と読み取り操作との現在の対象となる細粒度領域をそれぞれ表す。
【０４７６】
読み取り操作（第１の操作）を実行する場合、実行されている目標記憶領域２１ｄに対する第２の操作が存在するか否かを判断する。判断した結果、現在実行されている目標記憶領域２１ｄに対する第２の操作書き込み操作が存在すると、さらに、読み取り操作（第１の操作）の現在の対象となる目標記憶領域２１ｄにおける第１の細粒度領域（図５ｂにおける細粒度領域２２ｄ）と書き込み操作（第２の操作）の現在の対象となる目標記憶領域２１ｄにおける第２の細粒度領域（図５ｂにおける細粒度領域２４ｄ）との間が重なるか否かを判断し、例えば、細粒度領域の番号（２２ｄおよび２４ｄ）、または、ｒｐとｗｐとの間の関係（ｒｐ=０、ｗｐ=２、ｒｐ<ｗｐ）に基づいて、第１の細粒度領域と第２の細粒度領域との間が重ならないと確定し、その後、読み取り操作（第１の操作）を実行できる。
【０４７７】
細粒度領域２２ｄに対する読み取り操作を完成した後、ｒｐを増加させ、すなわちｒｐ＋＋させて、次の一つの細粒度領域２３ｄを指すようにして、同様の判断を行った後に、第１の操作は細粒度領域２３ｄに対する操作を開始し、細粒度領域２３ｄに対する読み取り操作を完成した後に、ｒｐを増加させて次の一つの細粒度領域２４ｄを指すようにする。この場合、第１の細粒度領域と第２の細粒度領域との間が重なるか否かを続けて判断し、細粒度領域番号が同じかまたはポインターｒｐ=ｗｐであると、第１の操作の現在の対象となる目標記憶領域２１ｄにおける第１の細粒度領域と第２の操作の現在の対象となる目標記憶領域２１ｄにおける第２の細粒度領域とが重なると判断でき、すると、第１の操作を実行できなく、第１の操作をブロックする。第２の操作が細粒度領域２４ｄに対する操作を完成した後に、ｗｐが増加され、次の一つの細粒度領域２５ｄを指すと、細粒度領域の番号が異なり（２４ｄと２５ｄ）、または、ポインターｒｐ<ｗｐであり、第１の操作を実行できる。
【０４７８】
可能な一実現形態において、前記第１の操作および前記第２の操作の中で少なくとも一つの操作が書き込み操作であってもよい。すなわち、オペランドに対する操作が、書き込みの後の読み取り（第２の操作が書き込み操作であり、第１の操作が読み取り操作である）、読み取りの後の書き込み（第２の操作が読み取り操作であり、第１の操作が書き込み操作である）、または、書き込みの後の書き込み（第２の操作と第１の操作いずれもが書き込み操作である）の場合、本発明の実施例における方法を使用できる。
【０４７９】
例えば、第１の操作が記述子に対する読み取り操作であり、第２の操作が書き込み操作であると、第１の操作が読み取る必要がある記述子が示すテンソルデータは第２の操作の書き込み操作後のデータが必要であり、第２の操作の対象となる目標記憶領域における第２の細粒度領域の番号が８であると、第１の操作は番号が８前の細粒度領域のデータのみを読み取ることができる。つまり、第１の操作の現在の対象となる目標記憶領域における第１の細粒度領域が番号１〜７の細粒度領域における任意の一つであると、第１の操作を実行できる。
【０４８０】
可能な一実現形態において、第１の操作と第２の操作がいずれもが読み取り操作であると、第１の操作と第２の操作の細粒度領域間の関係は操作結果に影響を及ぼさなく、本発明の実施例における方法を使用でき、細粒度領域の判断せずに第１の操作を直接実行してもよい。
【０４８１】
本実施例において、第１の操作および第２の操作の中の少なくとも一つの操作が書き込み操作である場合、本発明の実施例の中の方法を使用することで、記述子が示すテンソルデータの目標記憶領域を一つまたは複数の細粒度領域に区分けし、且つ、細粒度領域を単位にして操作を実行することによって、読み取りの後の書き込み、書き込みの後の読み取り、書き込みの後の書き込みなどの操作が正確に実行して、正確な実行結果を得ることができるだけでなく、操作間の待機時間を短縮して、プロセッサの実行効率を向上させることができる。
【０４８２】
可能な一実現形態において、前記細粒度領域のサイズ及び／又は数は、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて確定できる。
【０４８３】
前記細粒度領域のサイズ及び／又は数の確定は、操作が生成される前に予め設定されてよいし、各操作が生成されるときにリアルタイムに確定されてもよいことを理解できる。ここで、操作の前に細粒度領域のサイズ及び／又は数を予め設定することは、予め設定された長さのデータが位置する領域、および、予め設定された次元のデータが位置する領域の中の少なくとも一つに基づいて、細粒度領域のサイズ及び／又は数を確定することを含んでもよい。設定長さのデータ和予め設定された次元のデータは、各操作のオペランドとかんけいなくてもよいし、事前に各操作のオペランドに基づいて総合的に確定してもよく、要件に従って確定できる。各操作が生成されるときに細粒度領域のサイズ及び／又は数をリアルタイムに確定することは、各操作のオペランドに基づいて設定長さのデータまたは設定次元のデータを確定することを含んでもよく、すなわち、各操作の異なるオペランドに基づいて、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つをリアルタイムに確定して、細粒度領域のサイズ及び／又は数を確定することを含んでもよい。
【０４８４】
例を挙げると、設定長さのデータが位置する領域の大きさに基づいて、細粒度領域のサイズ及び／又は数を確定できる。例えば、記述子が示すテンソルデータにおける設定長さのデータが位置する目標記憶領域のサイズに基づいて、細粒度領域のサイズを設定でき、当該領域は固定のビット幅であってもよい。例えば、記述子が示すテンソルデータＢが２０＊１０＊５の３次元データであり、目標記憶領域における記憶方式が４０＊２５（すなわち、各行が４０ビットのデータであり、合計２５行である）であると、設定長さを４０ビットに設定し、目標記憶領域の各行を一つの細粒度領域に設定し、記述子が示すテンソルデータＢの目標記憶領域を２５個の細粒度領域に区分けしてもよいし、標記憶領域の５行毎を一つの細粒度領域に設定し、記述子が示すテンソルデータＢの目標記憶領域を５個の細粒度領域に区分けしてもよい。本発明はこれに対して限定しない。
【０４８５】
設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて、目標記憶領域で細粒度領域のサイズ及び／又は数を確定してもよいし、目標記憶領域が位置する記憶領域全体で細粒度領域のサイズ及び／又は数を確定してもよいし、或いは、記憶領域全体における他の領域で細粒度領域のサイズ及び／又は数を確定してもよいことを理解できる。上記の例はそのにおける一つの状況のみを示したが、本発明は、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて、細粒度領域のサイズ及び／又は数を確定する適用区分範囲を限定しない。
【０４８６】
可能な一実現形態において、さらに、設定次元数のデータが位置する領域の大きさに基づいて、細粒度領域のサイズ及び／又は数を確定できる。例えば、記述子が示すテンソルデータＣが２０＊１０の２次元データであると、設定次元数が１次元であり、長さが２０であるデータによって、記述子が示すテンソルデータＣの目標記憶領域を１０個の細粒度領域に区分けすることができる。
【０４８７】
なお、記述子が示すテンソルデータの目標記憶領域における設定長さのデータが位置する領域の大きさ、および、設定次元のデータが位置する領域の大きさに同時に基づいて、細粒度領域のサイズ及び／又は数を確定してもよい。例えば、記述子が示すテンソルデータＣに対して、設定次元数が２次元であり、サイズが４＊２であるデータによって、細粒度領域を区分けして、記述子が示すテンソルデータＣの目標記憶領域を２５個の細粒度領域に区分けしてもよい。
当業者は、実際の状況に従って細粒度領域のサイズ及び／又は数を設定して区分けすることができ、本発明はこれに対して限定しないことを理解すべきである。
【０４８８】
本実施例において、設定長さのデータが位置する領域の大きさ及び／又は設定次元のデータが位置する領域の大きさに基づいて、前記細粒度領域のサイズ及び／又は数を確定することによって、データ特性に対して細粒度領域に対する区分けを完成して、細粒度領域区分けの柔軟性を向上させて、複数の操作を実行する効率を向上させることができ、また、細粒度領域の区分け結果が異なるオペランドの特性にもう一層合致するようにして、異なるタイプのオペランドの処理要件に適応させて、複数の操作全体の実行効率をさらに向上させることができる。
【０４８９】
可能な一実現形態において、前記細粒度領域のサイズ及び／又は数は、ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて確定されてもよい。
【０４９０】
ここで、ハードウェア計算能力は、ハードウェアの一つの計算サイクルで並行して処理するデータ量であってもよく、ハードウェア帯域幅は、データ伝送能力であってもよく、例えば、単位時間あたりに伝送するデータ量である。
【０４９１】
例を挙げると、当該プロセッサ操作方法を適用するプロセッサは、そのハードウェア計算能力が一つの計算サイクルで１００ビットのデータを並行して処理し、ハードウェア帯域幅が単位時間あたりに２００ビットのデータを伝送することであると、大きさが１０００ビットである目標記憶領域に対して、ハードウェア計算能力に基づいて当該目標記憶領域を１０個の細粒度領域に区分けしてもよいし、ここで、各々の細粒度領域は１００ビットのデータを含み、または、ハードウェア帯域幅に基づいて当該目標記憶領域を５個の細粒度領域に区分けしてもよく、ここで、各々の細粒度領域は２００ビットのデータを含む。
【０４９２】
ハードウェア計算能力およびハードウェア帯域幅は、プロセッサハードウェアによって異なり、本発明は、ハードウェア計算能力およびハードウェア帯域幅に対して限定しないことを理解すべきである。
【０４９３】
ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて、目標記憶領域で細粒度領域のサイズ及び／又は数を確定してもよいし、目標記憶領域が位置する記憶領域全体で細粒度領域のサイズ及び／又は数を確定してもよいし、或いは、記憶領域全体における他の領域で細粒度領域のサイズ及び／又は数を確定してもよいことを理解できる。上記の例はその中の一つの状況のみを示したが、本発明は、ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて、細粒度領域のサイズ及び／又は数を確定する適用区分範囲に対して限定しない。
【０４９４】
このような方式によって、プロセッサの処理能力（ハードウェア計算能力及び／又はハードウェア帯域幅）に基づいて前記細粒度領域のサイズ及び／又は数を確定できて、細粒度領域の区分け結果が異なるハードウェア使用環境の要件にもう一層合致するようにして、細粒度領域を使用して実行する操作とプロセッサの処理能力とを同期して、ハードウェアの実行効率を最大限に発揮して、プロセッサの処理効率を向上させることができる。
【０４９５】
可能な一実現形態において、前記第１の操作は、第１の処理命令における操作であってもよく、前記第２の操作は、第２の処理命令における操作であってもよく、前記第２の処理命令は、命令キュー中で前記第１の処理命令の前に位置する処理命令であってもよい。
【０４９６】
ここで、第１の処理命令と第２の処理命令は、データアクセス命令、演算命令、同期命令、および、通信命令などの一つまたは複数を含んでもよく、例えば、当該命令は読み取りおよび演算命令である。本発明は、第１の処理命令と第２の処理命令の具体的なタイプに対して限定しない。
【０４９７】
可能な一実現形態において、第１の命令は、第２の命令と依存関係を有してもよく、例えば、第１の命令が第２の命令の計算結果を使用する必要があるような依存関係を有する。第１の命令は、第２の命令と依存関係を有さないでもよい。第１の命令が第２の命令と依存関係を有する場合、本発明の実施例における方法によって、第１の命令と第２の命令と並行して実行できる。
【０４９８】
本実施例において、第１の操作と第２の操作は、異なる命令における操作であり、本発明の実施例の中の方法を利用すると、命令実行効率を向上させることができる。
【０４９９】
可能な一実現形態において、第１の操作と第２の操作は、同じ処理命令における二つの操作であってもよく、第２の操作は第１の操作と関係ないでもよいし、または、第２の操作は第１の操作の結果に基づく操作であってもよい。ここで、当該処理命令は、データアクセス命令、演算命令、同期命令、および、通信命令などの一つまたは複数を含んでもよく、例えば、当該命令が「読み取りと加算」演算命令であると、第１の操作が読み取り操作であり、第２の操作が加算演算操作である。本発明は、当該処理命令の具体的なタイプに対して限定しない。
【０５００】
可能な一実現形態において、前記方法は、前記第１の操作の現在操作している第１の細粒度領域の第１の位置情報、および、前記第２の操作の現在操作している第２の細粒度領域の第２の位置情報を記録することを含んでもよく、
ステップＳ１４ｄは、前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行することを含んでもよい。
【０５０１】
可能な一実現形態において、位置情報は、細粒度領域の識別子情報を含んでもよい。識別子情報は、数字、文字、および、記号の任意の組み合わせを含んでもよい。本発明は、これに対して限定しない。
【０５０２】
例えば、位置情報は、細粒度領域の番号情報を使用して表し、目標記憶領域を６個の細粒度領域に区分けすることができ、その番号は順に０〜５である。目標記憶領域に対する第１の操作と第２の操作を実行する場合、第１の操作の現在操作している第１の細粒度領域の第１の位置情報（例えば、番号が２である）、および、第２の操作の現在操作している第２の細粒度領域の第２の位置情報（例えば、番号が５である）をそれぞれ記録し、その後、番号情報間の関係（２<５）に基づいて、第１の位置情報と第２の位置情報とが不一致することが分かり、この場合、第１の操作を実行できる。
【０５０３】
可能な一実現形態において、位置情報は、細粒度領域のアドレス情報を含んでもよい。アドレス情報は、細粒度領域の開始アドレス情報、終了アドレス情報、細粒度領域における予め設定された位置アドレス情報、および、アドレスオフセット量情報のにおける少なくとも一つを含んでもよい。例えば、細粒度領域の位置情報は、ＡＤＤＲ１５１５〜ＡＤＤＲ１５３１である。
【０５０４】
このような方式によって、位置情報を使用して第１の細粒度領域と第２の細粒度領域とが重なるか否かを直接効率的に判断して、第１の操作を実行するか否かを確定し、プロセッサの実行効率を向上させることができる。
【０５０５】
可能な一実現形態において、前記第１の位置情報は、第１の操作の既に操作を完成した細粒度領域の第１の数を含んでもよく、前記第２の位置情報は、第２の操作の既に操作を完成した細粒度領域の第２の数を含んでもよい、
【０５０６】
前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行することは、前記第１の操作が前記第２の操作の後の操作であり、且つ、前記第１の数が前記第２の数よりも小さい場合、前記第１の操作を実行することを含んでもよい。
【０５０７】
例を挙げると、第１の操作が第２の操作の後の操作であり、その目標記憶領域が６個の細粒度領域に区分けされ、その位置情報を既に操作を完成した細粒度領域の数を使用して表すことができる。目標記憶領域に対する第１の操作と第２の操作を実行する場合、第１の操作の既に操作を完成した細粒度領域の第１の数（例えば、第１の数は３である）、および、第２の操作の既に操作を完成した細粒度領域の第２の数（例えば、第２の数は５である）をそれぞれ記録し、その後、第１の操作と第２の操作の実行順序、および、第１の数と第２の数の関係に基づいて、第１の操作が第２の操作の後の操作であり、且つ、第１の数である３が第２の数である５よりも小さいことが分かり、この場合、第１の操作を実行できる。
【０５０８】
このような方式によって、既に操作を完成した細粒度領域の数に基づいて第１の細粒度領域と第２の細粒度領域とが重なるか否かを直感的に判断し、さらに第１の操作を実行するか否かを確定できて、判断過程を簡略化して、プロセッサの実行効率を向上させることができる。
【０５０９】
可能な一実現形態において、前記目標記憶領域は、操作可能領域および操作不可領域を含んでもよく、ステップＳ１３ｄは、前記第２の操作が存在し、且つ、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域が前記操作可能領域内に位置する場合、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域と前記第２の操作の現在の対象となる前記目標記憶領域における第２の細粒度領域との間が重なるか否かを判断することを含んでもよい。
可能な一実現形態において、目標記憶領域は、一つまたは複数の操作不可領域を含んでもよいし、連続的または不連続な操作不可領域を含んでもよい。
【０５１０】
可能な一実現形態において、目標記憶領域は、一つまたは複数の操作可能領域を含んでもよいし、連続的または不連続な操作可能領域を含んでもよい。本発明は、これに対して限定しない。
【０５１１】
可能な一実現形態において、第１の操作が記述子に対する操作である場合、まず記述子が示すテンソルデータの目標記憶領域を取得し、その後、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断し、第２の操作が存在する場合、第１の操作の対象となる目標記憶領域における第１の細粒度領域が操作可能領域内に位置するか否かを判断し、第２の操作が存在し、且つ、第１の操作の対象となる目標記憶領域における第１の細粒度領域が操作可能領域内に位置する場合、その後に、第１の操作の対象となる目標記憶領域における第１の細粒度領域と第２の操作の対象となる目標記憶領域における第２の細粒度領域との間が重なるか否かを判断し、第１の細粒度領域と第２の細粒度領域との間が重ならない場合、第１の操作を実行できる。
【０５１２】
可能な一実現形態において、前記操作不可領域は、操作禁止領域および操作非禁止領域を含んでもよい。第１の操作が記述子に対する書き込み操作であり、記述子が示すテンソルデータにおける一部のデータが変更不可である場合、当該一部のデータが位置する記憶領域を操作禁止領域に設定して、当該一部のデータを誤って変更することを回避し、実行されている第２の操作が第１の操作の前のデータを読み取る読み取り操作（読み取りの後の書き込み）であると、第２の操作が位置する一つまたは複数の細粒度領域を操作非禁止領域に設定し、第２の操作が操作非禁止領域に対する読み取りを完成した後、当該操作非禁止領域を操作可能領域に変更できる。本発明は、操作不可領域の分類および区分け方式に対して限定しない。
【０５１３】
本実施例において、まず、第１の操作の細粒度領域が操作できるか否かを判断してから、異なる操作の細粒度領域間の関係を判断し、一方では判断の効率を向上させ、もう一方では指定されたデータを保護して誤操作の発生を防止でき、指定された空間に対する書き込みを禁止することで、当該空間を予め用意して、他の操作に実行に使用することによって、プロセッサが細粒度同期を実行する際の柔軟性をさらに向上させることができる。
【０５１４】
可能な一実現形態において、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域の前記操作不可領域における位置は前記第２の操作の操作位置に従って更新され、前記方法は、前記第２の操作の対象となる前記目標記憶領域における第２の細粒度領域が前記操作不可領域から移動して出た後に、前記操作不可領域の位置を更新することをさらに含んでもよい。
【０５１５】
つまり、第２の細粒度領域を含む複数の細粒度領域の操作不可領域は、第２の操作の対象となる目標記憶領域における第２の細粒度領域の更新に従って更新されなくてもよく、第２の操作の対象となる目標記憶領域における第２の細粒度領域が操作不可領域から移動して出た後に、操作不可領域の位置を更新してもよい。例えば、操作不可領域は、前記第２の細粒度領域を含むＲ個の細粒度領域（Ｒは１よりも大きい整数である）であり、現在の操作不可領域は２番目〜２＋Ｒ-１番目の細粒度領域であってよい。第２の操作が操作不可領域でＲ個の細粒度領域の実行を完成した後に、操作不可領域から移動して出ると、操作不可領域の位置は第２の操作の対象となる細粒度領域の位置に従って更新され、更新後の操作不可領域は２＋Ｒ番目〜２＋Ｒ＋Ｒ-１番目の細粒度領域を含む。ここで、Ｒの大きさは、要件に従って任意に確定できる。
【０５１６】
図６ａと図６ｂは、本発明の実施例に係るプロセッサ操作方法の適用シナリオを示す模式図である。図６ａに示されたように、目標記憶領域３０ｄは、８個の細粒度領域を含み、ここで、操作可能領域は、５個の細粒度領域（細粒度領域３１ｄ、細粒度領域３５ｄ、細粒度領域３６ｄ、細粒度領域３７ｄ、および、細粒度領域３８ｄ）を含み、操作不可領域Ｍ０は、３個の細粒度領域（細粒度領域３２ｄ、細粒度領域３３ｄ、および、細粒度領域３４ｄ）を含む。ここで、第２の操作の現在の対象となる目標記憶領域３０ｄにおける第２の細粒度領域は、細粒度領域３２ｄである。
【０５１７】
第２の操作が細粒度領域３２ｄに対する操作の実行を完成した後、第２の操作の現在の対象となる目標記憶領域３０ｄにおける第２の細粒度領域は細粒度領域３３ｄであり、このとき、第２の操作の現在の対象となる目標記憶領域３０ｄにおける第２の細粒度領域（細粒度領域３３ｄ）が操作不可領域から移動して出なく、操作不可領域の位置を更新しないし、第２の操作が細粒度領域３３ｄに対する操作の実行を完成した後、第２の操作の現在の対象となる目標記憶領域３０ｄにおける第２の細粒度領域は細粒度領域３４ｄであり、このとき、第２の操作の現在の対象となる目標記憶領域３０ｄにおける第２の細粒度領域（細粒度領域３４ｄ）が操作不可領域から依然として移動して出なく、操作不可領域の位置を更新しないし、第２の操作が細粒度領域３４ｄに対する操作の実行を完成した後、第２の操作の現在の対象となる目標記憶領域３０における第２の細粒度領域は細粒度領域３５ｄであり、このとき、第２の操作の現在の対象となる目標記憶領域３０ｄにおける第２の細粒度領域（細粒度領域３５ｄ）は操作不可領域から既に移動して出たから、操作不可領域の位置を細粒度領域３５ｄ、３６ｄ、および、３７ｄ）に更新する。本発明は、操作不可領域の大きさに対して限定しないことを説明する必要がある。
【０５１８】
図６ｂに示されたように、操作不可領域の位置を更新した後、目標記憶領域３０ｄにおいて、操作可能領域は、５個の細粒度領域（細粒度領域３１ｄ、細粒度領域３２ｄ、細粒度領域３３ｄ、細粒度領域３４ｄ、および、細粒度領域３８ｄ）を含み、操作不可領域Ｍ０は、３個の細粒度領域（細粒度領域３５ｄ、細粒度領域３６ｄ、および、細粒度領域３７ｄ）を含む。
このような方式によって、操作不可領域の位置をリアルタイムに更新する必要がなく、操作不可領域の更新によって発生されるオーバーヘッドを削減できる。
【０５１９】
可能な一実現形態において、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域は、前記操作不可領域内の設定位置に位置し、前記操作不可領域の位置は、前記第２の操作の操作位置に従って更新されてもよい。
【０５２０】
つまり、操作不可領域が前記第２の細粒度領域を含む複数の細粒度領域である場合、第２の細粒度領域の操作不可領域における位置（例えば、中間位置、最後位置など）を設定し、操作不可領域の位置が第２の操作の操作位置に従って更新されてもよい。例えば、操作不可領域は、前記第２の細粒度領域を含むＲ個の細粒度領域であり、現在の操作不可領域は２番目〜２＋Ｒ-１番目の細粒度領域であり、第２の細粒度領域の操作不可領域内の設定位置がＳ番目（ここで、Ｓ≦Ｒである）であってもよい。第２の操作が現在の対象となる細粒度領域に対する操作の実行を完成した後、第２の操作は次の一つの細粒度領域に対する操作の実行を開始し、このとき、操作不可領域の位置が第２の操作の操作位置に従って更新され、更新後の操作不可領域は２＋１番目〜２＋Ｒ番目の細粒度領域を含む。ここで、Ｒの大きさおよびＳの値は、要件に従って確定できる。本発明は、操作不可領域が含む細粒度領域の数、および、第２の細粒度領域の操作不可領域内での位置に対していずれも限定しない。
【０５２１】
図７ａと図７ｂは、本発明の実施例に係るプロセッサ操作方法の適用シナリオを示す模式図である。図７ａに示されたように、目標記憶領域４０は、８個の細粒度領域を含み、ここで、操作可能領域は、５個の細粒度領域（細粒度領域４１、細粒度領域４５、細粒度領域４６、細粒度領域４７、および、細粒度領域４８）を含み、操作不可領域Ｍ１は、３個の細粒度領域（細粒度領域４２、細粒度領域４３、および、細粒度領域４４）を含む。ここで、第２の操作の現在の対象となる目標記憶領域４０における第２の細粒度領域設定を操作不可領域Ｍ１に位置する２番目の細粒度領域に設定し、つまり、細粒度領域４３に設定する。
【０５２２】
第２の操作が細粒度領域４３に対する操作の実行を完成した後、第２の操作の現在の対象となる目標記憶領域４０における第２の細粒度領域は細粒度領域４４であり、このとき、操作不可領域の位置が第２の操作の操作位置に従って更新されて、第２の操作の現在の対象となる目標記憶領域４０における第２の細粒度領域が操作不可領域Ｍ１の２番目の細粒度領域に位置するようにする。
【０５２３】
図７ｂに示されたように、操作不可領域の位置を更新した後、目標記憶領域４０において、操作可能領域は、５個の細粒度領域（細粒度領域４１、細粒度領域４２、細粒度領域４６、細粒度領域４７、および、細粒度領域４８）を含み、操作不可領域Ｍ１は、３個の細粒度領域（細粒度領域４３、細粒度領域４４、および、細粒度領域４５）を含む。
【０５２４】
このような方式によって、操作不可領域の位置をリアルタイムに更新して、細粒度処理の同期程度を向上させ、データ同期処理の効率をさらに向上させることができる。
【０５２５】
可能な一実現形態において、前記目標記憶領域は、循環バッファ記憶領域を含んでもよい。前記循環バッファ記憶領域は、データの循環記憶のために使用できる。
【０５２６】
図８は、本発明の実施例に係るプロセッサ操作方法を示す循環バッファ記憶領域の模式図である。図８に示されたように、目標記憶領域５０は、循環バッファ記憶領域５１を含み、そのアドレスは、ｓｔａｒｔ_ａｄｄｒ〜ｅｎｄ_ａｄｄｒである。
【０５２７】
例えば、第２の操作は、書き込み操作であり、オペランドを循環バッファ記憶領域５１に書き込むことができ、そのアドレスポインターｐｏｉｎｔは、開始アドレスｓｔａｒｔ_ａｄｄｒから始めて、終了アドレスｅｎｄ_ａｄｄｒまで、順に、下へデータを記憶し、すなわち、循環バッファ記憶領域５１の記憶空間を完全に埋め、このとき、アドレスポインターｐｏｉｎｔは、ｓｔａｒｔ_ａｄｄｒにジャンプして戻って、当該アドレスが同期する必要がある第１の操作によって使用が完了されたか否かを判断し、使用が完了された場合、データを当該アドレスに記憶して、元のデータを上書きし、その後アドレスポインターｐｏｉｎｔは、ｅｎｄ_ａｄｄｒまで、順に、下へ移動し、この場合、データを再び上書きし、上記の過程を循環できる。
【０５２８】
本実施例において、循環バッファ記憶領域を使用してデータを記憶すると、データ記憶空間を節約できるだけでなく、記憶空間利用率も向上させることができる。
【０５２９】
可能な一実現形態において、循環バッファ記憶領域を複数の細粒度領域に区分けすることができる。各々の細粒度領域ごとに、リスト、フラグビット、または、他の方式によって、細粒度領域におけるデータが上書きできるか否かを管理でき、例えば、上書きフラグビットを設定することで、細粒度領域におけるデータが上書きできるか否かを表すことができる。
【０５３０】
例を挙げると、第１の操作は読み取り操作であり、第２の操作は書き込み操作であり、すなわち、書き込みの後の読み取りであると、書き込みポインターｗｐおよび読み取りポインターｒｐが第２の操作と第１の操作の現在の対象となる細粒度領域をそれぞれ表すようにすることができる。第２の操作の現在の対象となる第２の細粒度領域の上書きフラグビットが上書きできることである場合、第２の操作を実行して、データを書き込むことができ、データの書き込みを完成した後、当該第２の細粒度領域の上書きフラグビットを上書きできないことに設定し、ｗｐ＋＋させ、第２の操作の現在の対象となる第２の細粒度領域が次の一つの細粒度領域であり、ｗｐ＞ｅｎｄ_ａｄｄｒであると、ｗｐ=ｓｔａｒｔ_ａｄｄｒであるし、第１の操作の現在の対象となる第１の細粒度領域と第２の細粒度領域との間が重ならなく、且つ、第１の細粒度領域の上書きフラグビットが上書きできないことである場合、第１の操作を実行でき、データを読み取り、データの読み取りを完成した後、当該第１の細粒度領域の上書きフラグビットを上書きできることに設定し、ｒｐ＋＋させ、第１の操作の現在の対象となる第１の細粒度領域が次の一つの細粒度領域であり、ｒｐ＞ｅｎｄ_ａｄｄｒであると、ｒｐ=ｓｔａｒｔ_ａｄｄｒであるし、第１の細粒度領域と第２の細粒度領域とが重なる場合、すなわち、ｒｐ=ｗｐである場合、第１の操作を実行できなく、第２の操作が現在の対象となる第２の細粒度領域に対する操作が完成するまでに待機した後、第１の操作を実行できる。
【０５３１】
本実施例において、循環バッファアクセス領域を複数の細粒度領域に区分けすることによって、複数の操作が循環バッファ記憶領域に対して同時に操作するようにして、プロセッサの処理効率を向上させることができる。
【０５３２】
可能な一実現形態において、前記細粒度領域は、状態識別子を含んでもよく、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含んでもよく、
【０５３３】
ステップＳ１４ｄは、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断することと、完成状態であると、前記第１の操作を実行することと、を含んでもよい。
【０５３４】
可能な一実現形態において、細粒度領域は、状態識別子を含んでもよく、状態識別子は、操作細粒度領域の完成状態または未完成状態を含んでもよい。例えば、状態識別子は、０と１を使用して表すことができ、ここで、０が操作細粒度領域の未完成状態を表し、１が操作細粒度領域の完成状態を表し、あるいは、０が操作細粒度領域の完成状態を表し、１が操作細粒度領域の未完成状態を表してもよい。本発明は、状態識別子の表現方式に対して限定しない。
【０５３５】
可能な一実現形態において、第２の操作は目標記憶領域を既に操作を完成した細粒度領域の状態識別子を完成状態に設定し、操作されていないまたは操作されている細粒度領域の状態識別子を未完成状態に設定する。さらに、既に操作を完成した細粒度領域における一部の細粒度領域の状態識別子を完成状態に設定し、他の細粒度領域を未完成状態に設定してもよい。例えば、第２の操作が５個の細粒度領域の操作を既に完成した場合、前からの３個の細粒度領域の状態識別子を完成状態に設定し、他の細粒度領域を未完成状態に設定してもよい。
【０５３６】
可能な一実現形態において、実行されている目標記憶領域に対する第２の操作が存在する場合、第１の操作の現在の対象となる第１の細粒度領域および第２の操作の現在の対象となる第２の細粒度領域に対して、第１の細粒度領域と第２の細粒度領域との間が重ならないと確定した後、第１の細粒度領域の状態識別子が完成状態であるか否かを判断し、第１の細粒度領域の状態識別子が完成状態であると、第１の操作を実行できる。
【０５３７】
本実施例において、細粒度領域は状態識別子を含み、第１の細粒度領域と第２の細粒度領域との間が重ならない場合、第１の細粒度領域の状態識別子に基づいて、第１の操作が実行できるか否かを確定することによって、プロセッサの処理効率を向上させる同時に、データ処理の正確性を向上させることができる。
【０５３８】
可能な一実現形態において、前記細粒度領域は、状態識別子を含んでもよく、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含んでもよく、
【０５３９】
ステップＳ１４ｄは、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断することと、完成状態であると、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することと、を含んでもよい。
【０５４０】
つまり、実行されている目標記憶領域に対する第２の操作が存在する場合、第１の操作の現在の対象となる第１の細粒度領域および第２の操作の現在の対象となる第２の細粒度領域に対して、第１の細粒度領域の状態識別子が完成状態であると確定した後、第１の細粒度領域と第２の細粒度領域との間の重なり関係に基づいて、第１の操作が実行できるか否かを確定し、第１の細粒度領域と第２の細粒度領域との間が重ならない場合、第１の操作を実行できる。
【０５４１】
本実施例において、細粒度領域は状態識別子を含み、第１の細粒度領域の状態識別子が完成状態であると確定した後、第１の細粒度領域と第２の細粒度領域との間の重なり関係に基づいて、第１の操作が実行できるか否かを確定することによって、データ処理の正確性を向上させる同時に、プロセッサの処理効率を向上させることができる。
可能な一実現形態において、前記第２の操作は、前記記述子に対する操作である。
【０５４２】
つまり、第２の操作のオペランドと第１の操作のオペランドとが同じであり、すなわち、第２の操作と第１の操作は、同じ記述子に対する操作であり、第２の操作のオペランドの記憶領域と目標記憶領域とが完全に重なる。記述子が示すテンソルデータの目標記憶領域を複数の細粒度領域に区分けした後、本発明の実施例における方法によって、各操作の実行結果に影響を及ぼせずに、同じ記述子を操作する二つの操作並行して実行できる。
【０５４３】
可能な一実現形態において、第２の操作のオペランドと第１の操作のオペランドとが同じである場合、操作の実行プロセスに基づいて第１の細粒度領域と第２の細粒度領域をそれぞれ確定できる。
【０５４４】
可能な一実現形態において、目標記憶領域に対する第１の操作を実行する前に、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断する場合、第１の操作の現在の対象となる目標記憶領域における第１の細粒度領域が、第１の操作が実行しようとする目標記憶領域における細粒度領域である。例えば、目標記憶領域に対する第１の操作を実行する前に、第１の操作の現在の対象となる目標記憶領域における第１の細粒度領域は、通常、目標記憶領域の１番目の細粒度領域である。このとき、第１の細粒度領域に対する第１の操作が、まだ実行していない。実行されている第２の操作の現在の対象となる目標記憶領域における第２の細粒度領域は、第２の操作の実行プロセスと関連されてもよい。第２の操作の実行も開始したばかりであると、第２の細粒度領域は目標記憶領域の１番目の細粒度領域であってもよい。このとき、第１の細粒度領域と第２の細粒度領域とが重なる。第２の操作が１番目の細粒度領域の操作を既に完成し、現在の対象となる目標記憶領域における第２の細粒度領域がＰ番目の細粒度領域（Ｐは１よりも大きい整数である）であると、第１の細粒度領域と第２の細粒度領域とが重ならない。
【０５４５】
可能な一実現形態において、第１の操作の目標記憶領域に対する操作過程で、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断する場合、第１の操作の実行プロセスに基づいて第１の細粒度領域を確定し、第２の操作の実行プロセスに基づいて第２の細粒度領域を確定し、さらに、第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断できる。第１の細粒度領域と第２の細粒度領域との間が重ならない場合、第１の操作を実行できる。
【０５４６】
可能な一実現形態において、各操作の実行過程のテンポが一致していると、目標記憶領域に対する第１の操作を実行する前にのみ、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断し、且つ、第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断できる。ここで、テンポが一致していることは、細粒度領域のサイズが同じである場合、二つの操作の一つの細粒度領域に対する操作期間が同じであることを意味する。
【０５４７】
可能な一実現形態において、各操作の実行過程のテンポが不一致しないまたは一致しているか否かを確定できないと、第１の操作の目標記憶領域に対する操作過程で、現在の対象となる目標記憶領域における第１の細粒度領域の操作を完成するたびに、続けて、実行されている、目標操作領域に対する第２の操作が、存在するか否かを判断し、さらに、続けて第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断することによって、第１の操作を続けて実行できるか否かを確定できる。
【０５４８】
本実施例において、第２の操作のオペランドと第１の操作のオペランドとが同じである場合、本発明の実施例の中の方法を使用して、同じ記述子に対する二つまたは複数の操作の並行する実行を実現し、または、各操作の実行プロセスに基づいて各操作の現在の対象となる細粒度領域を確定して、第１の細粒度領域と第２の細粒度領域との間が重ならない場合、第１の操作を実行することによって、各操作の実行効果に影響を及ぼせずに、同じ記述子に対する二つまたは複数の操作を並行して実行するようにして、プロセッサの実行効率を向上させることができる。
可能な一実現形態において、前記第２の操作のオペランドの記憶領域は、前記目標記憶領域と重なる。
【０５４９】
可能な一実現形態において、第２の操作のオペランドの記憶領域が目標記憶領域と重なり、且つ、第２の操作が重なる領域に対する操作を実行している場合、第２の操作のオペランドの記憶領域と目標記憶領域をそれぞれ複数の細粒度領域を区分けするか、または、目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けし、その後、本発明の実施例の中の方法によって、重なる領域における細粒度領域を判断して、第１の操作を実行できるか否かを確定ことによって、各操作の実行結果に影響を及ぼせずに、オペランドの記憶領域が重なる領域の二つの操作を並行して実行できるようにする。
【０５５０】
可能な一実現形態において、第２の操作が記述子に対する操作であり、且つ、第２の操作の対象となる記述子と第１の操作の対象となる記述子とが異なる場合、記述子を作成するときに記述子が示すテンソルデータの記憶領域の重なりを許可するか否かに基づいて、第２の操作のオペランドの記憶領域と目標記憶領域とが重なる可能があるか否かを確定できる。
【０５５１】
可能な一実現形態において、記述子を作成するときに、記述子が示すテンソルデータの記憶領域の重なりを不可すると、第２の操作の対象となる記述子と第１の操作の対象となる記述子とが異なる場合、第２の操作の対象となる記述子が示すテンソルデータの記憶領域と目標記憶領域とが重ならなく、第１の操作と第２の操作の細粒度領域の間が重なりなくなり、異なる記述子に対する操作に対して細粒度領域の判断する必要がない。
【０５５２】
可能な一実現形態において、記述子を作成するときに、記述子が示すテンソルデータの記憶領域の重なりを許可すると、第２の操作の対象となる記述子と第１の操作の対象となる記述子とが異なる場合、第２の操作の対象となる記述子の記憶領域と第１の操作の対象となる記述子が示す目標記憶領域とが重なりが存在する可能があり、このとき、本発明の実施例の中の方法を使用することによって、重なる領域の異なる記述子に対する二つの操作を並行して実行できるようにする。
【０５５３】
本実施例において、第２の操作のオペランドの記憶領域と目標記憶領域とが重なる場合、本発明の実施例の中の方法を使用して二つまたは複数の操作の並行する実行を実現して、プロセッサの実行効率を向上させることができる。
可能な一実現形態において、前記方法は、目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けすることをさらに含んでもよい。
【０５５４】
可能な一実現形態において、目標記憶領域は、記憶装置の記憶領域全体中の一部の記憶領域または全部の記憶領域であり、前記記憶領域全体が予め設定した複数の細粒度領域を含んでもよい。
【０５５５】
例えば、目標記憶領域が位置する記憶領域全体がＲＡＭ１であり、ＲＡＭ１は予め設定したＭ個の細粒度領域(Ｍは正の整数である)を含んでもよい。目標記憶領域は、ＲＡＭ１でＲＡＭ１におけるｎ個の細粒度領域(ｎは正の整数である、且つ、ｎ≦Ｍである)を占用してもよい。目標記憶領域は、特定の細粒度領域における一部の領域を含んでもよいことを説明する必要がある。上記の例のＲＡＭ１において、各々の細粒度領域が記憶領域全体ＲＡＭ１における１行であり、各行が１００ビットであると仮定する。目標記憶領域は、前の（ｎ-１）個の完全な細粒度領域を含み、また、最後一つの細粒度領域の一部の領域をさらに含んでもよく、例えば、ＲＡＭ１におけるｎ行目（ｎ番目の細粒度領域）における前の８０個のビットを含んでもよい。
【０５５６】
可能な一実現形態において、記憶装置の記憶領域全体を複数の細粒度領域に区分けする場合、記憶領域全体における任意の目標記憶領域に対する任意の操作の場合、第１の操作の対象となる記述子が示すテンソルデータの目標記憶領域か、第２の操作のオペランドの記憶領域と目標記憶領域とが重なる領域かに関わらず、いずれも、記憶領域全体の細粒度区分け結果に基づいて、目標記憶領域または重なる領域における細粒度領域を確定できる。任意の操作の任意のオペランドの記憶領域全体における記憶領域は、同じサイズの細粒度領域を有する。
【０５５７】
可能な一実現形態において、記憶装置のハードウェア特性に基づいて、記憶領域全体の細粒度領域のサイズ及び／又は数を確定でき、すなわち、記憶装置のハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて、記憶領域全体の細粒度領域のサイズ及び／又は数を確定できる。
【０５５８】
本実施例において、目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けし、記憶領域全体における任意の目標記憶領域に対する任意の操作の場合、いずれも、同じ細粒度サイズに従って実行できるし、異なる操作を本発明の実施例の中の方法に従って並行する場合、より便利に同期させて、操作の並行度を向上させ、プロセッサの処理効率をさらに向上させることができる。
可能な一実現形態において、前記方法は、
第１の操作中に携える第１の細粒度区分け情報に基づいて、前記目標記憶領域を複数の細粒度領域に区分けすることと、
【０５５９】
第２の操作中に携える第２の細粒度区分け情報に基づいて、前記第２の操作のオペランドの記憶領域を複数の細粒度領域に区分けすることと、をさらに含んでもよい。
【０５６０】
可能な一実現形態において、操作中に細粒度区分け情報を携え、細粒度区分け情報は細粒度のサイズ及び／又は数を含んでもよい。異なる操作は、異なる細粒度区分け情報を携えてもよい。同一のタイプの操作は、同一の細粒度区分け情報を携えてもよい。操作中のオペランドの設定位置に細粒度区分け情報を携えてもよいし、オペレーションコードまたはオペランドの中に細粒度区分けするか否かの識別子情報を携えてもよい。本発明は、細粒度区分け情報における内容および表現方式に対して限定しない。
【０５６１】
可能な一実現形態において、第１の操作中に携える第１の細粒度区分け情報に基づいて、目標記憶領域を複数の第１の細粒度領域を区分けする。第１の操作の対象となる記述子が示すテンソルデータが位置する記憶領域全体における他の領域に対しては、細粒度の区分けを実行しなくてもよいし、他の操作に携える細粒度区分け情報に基づいて細粒度の区分けを実行してもよい。本発明は、これに対して限定しない。
【０５６２】
ことを理解できるのは、第２の操作のオペランドと第１の操作の対象となる記述子が示すテンソルデータと一致している場合、第２の操作のオペランドの記憶領域と目標記憶領域とが完全に重なる。第１の細粒度区分け情報と第２の細粒度区分け情報とは、一致してもよいし、不一致してもよい。第１の細粒度区分け情報と第２の細粒度区分け情報とが不一致している場合、目標記憶領域は同時に第２の細粒度区分け情報に基づいて細粒度区分けを実行してもよい。すなわち、目標記憶領域に対して、異なる操作は異なるサイズまたは数の複数の細粒度領域に区分けすることができる。このとき、第１の操作の現在の対象となる目標記憶領域における第１の細粒度領域の物理アドレス、および、第２の操作の現在の対象となる前記目標記憶領域における第２の細粒度領域の間の物理アドレスに基づいて、第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断し、判断結果に基づいて第１の操作と第２の操作を並行して実行できる。
【０５６３】
可能な一実現形態において、各操作に携える細粒度区分け情報は、設定長さの操作データが位置する領域、および、設定次元数のオペランドが位置する領域の中の少なくとも一つに基づいて確定した前記細粒度領域のサイズ及び／又は数を含んでもよく、細粒度の区分け結果が操作におけるオペランドのタイプまたは属性にもう一層合致するようにする。
【０５６４】
本実施例において、第１の操作に携える第１の細粒度区分け情報に基づいて、目標記憶領域を複数の細粒度領域に区分けし、第２の操作に携える第２の細粒度区分け情報に基づいて、第２の操作のオペランドの記憶領域を複数の細粒度領域に区分けする。操作に携える細粒度区分け情報に基づいて細粒度の区分けすることによって、細粒度の区分け結果が各操作の処理要件にもう一層合致するようにし、操作の並行がもう一層柔軟にすることができる。
【０５６５】
当業者は、実際の状況に従って目標記憶領域に対して細粒度領域を区分けするか設定することができ、本発明はこれに対して限定しないことを理解すべきである。
【０５６６】
可能な一実現形態において、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用でき、Ｎは、ゼロ以上の整数であり、ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含んでもよい。
【０５６７】
可能な一実現形態において、記述子は、Ｎ次元のテンソルデータの形状を示すために使用できる。ここで、Ｎの値は、テンソルデータの次元数（回数）に基づいて確定してもよいし、テンソルデータの使用の必要性に基づいて設定してもよい。例えば、テンソルデータは３次元データであり、Ｎの値は３（次元数に基づいて確定する）であってもよいし、記述子は当該テンソルデータの三つの次元方向上の形状（例えば、オフセット量、サイズなど）を示すために使用できる。当業者は、実際の必要によってＮの値を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０５６８】
可能な一実現形態において、記述子は、識別子や内容などを含んでもよい。記述子の識別子は、記述子を区別するために使用でき、例えば、記述子の識別子は番号である。記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータ（例えば、テンソルの各次元方向上のサイズなど）を含んでもよい。本発明は、記述子の内容に含まれる具体的な形状パラメータに対して限定しない。
【０５６９】
本実施例において、記述子を使用してテンソルデータの形状を示し、記述子が示すテンソルデータの形状に基づいて複数のテンソルデータ間の相互関係を確定できて、プロセッサのアクセス効率を向上させることができる。
【０５７０】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、制御ユニットの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなどにおける記憶空間であってもよい。記述子が示すテンソルデータの目標記憶領域は、前記制御ユニットの内部メモリ（例えば、オンチップキャッシュ）または前記制御ユニットに接続された外部メモリ（オフチップメモリ）における記憶空間であってもよい。目標記憶領域におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間および目標記憶領域の位置およびデータアドレスのタイプに対して限定しない。
【０５７１】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同じ領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスはＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１は記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３は記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３は記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０５７２】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域にそれぞれ記憶されてもよく、例えば、レジスタを記述子記憶空間として、レジスタに記述子の識別子および内容を記憶し、オンチップキャッシュを記憶領域全体として、記述子が示すテンソルデータを記憶してもよい。
【０５７３】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子におけるデータは、即時値にすることも、専用レジスタ中から取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタにおける記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０５７４】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０５７５】
可能な一実現形態において、記述子の識別子に対応する記憶領域のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに対して単独の記憶領域を区分けすることができ、各テンソルデータの記憶領域における開始アドレスは記述子の識別子と１対１に対応される。このような場合、記述子の識別子および対応関係に基づいて、記述子が示すテンソルデータの目標記憶領域を直接確定できる。
【０５７６】
可能な一実現形態において、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。
【０５７７】
可能な一実現形態において、記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、アドレスは、例えば、テンソルデータの開始アドレス、アドレスオフセット量、レジスタアドレス、または、他のアドレスであってもよく、本発明は、アドレスタイプに対して限定しない。例えば、アドレスはテンソルデータの開始アドレスであってもよく、記述子の識別子に対応する記憶領域のデータアドレスが固定アドレスである場合、記述子が示すＮ次元テンソルデータの開始アドレスが固定アドレスであるし、記述子の識別子に対応する記憶領域のデータアドレスが可変アドレスである場合、記述子が示すＮ次元テンソルデータの開始アドレスは、その具体的な記憶領域に基づいて確定できる。本発明はこれに対して限定しない。
【０５７８】
可能な一実現形態において、記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例を挙げると、テンソルデータは３次元データであり、記述子を使用して当該テンソルデータのアドレスを示すことができ、記述子の内容は、当該テンソルデータのアドレスを表す一つのアドレスパラメータ（例えば、テンソルデータの開始アドレス）を含んでもよいし、当該テンソルデータのアドレスの複数のアドレスパラメータ（例えば、テンソルデータの開始アドレス＋アドレスオフセット量、または、テンソルデータの各次元に基づくアドレスパラメータである）を含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０５７９】
本実施例において、記述子を使用してテンソルデータのアドレスを示し、記述子が示すテンソルデータのアドレスに基づいて、複数のテンソルデータ間の相互関係を確定できて、プロセッサのアクセス効率を向上させることができる。
【０５８０】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の、前記テンソルデータが位置する記憶領域全体における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０５８１】
前記テンソルデータが位置する記憶領域全体のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
【０５８２】
可能な一実現形態において、テンソルデータのアドレスパラメータは、記述子のデータ基準点のテンソルデータが位置する記憶領域全体における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０５８３】
可能な一実現形態において、基準アドレスは、記憶領域全体の開始アドレスを含んでもよい。記述子のデータ基準点が記憶領域全体の１番目のデータブロックである場合、記述子の基準アドレスが記憶領域全体の開始アドレスである。記述子のデータ基準点が記憶領域全体における１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスが当該データブロックの記憶領域全体における物理アドレスである。
【０５８４】
可能な一実現形態において、テンソルデータの形状パラメータは、テンソルデータが位置する記憶領域全体のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータにおける点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータがの３次元空間における点または領域の位置にマッピングされることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０５８５】
図２に示されたように、記憶領域全体２１は、行優先の方式を使用して一つの２次元データを記憶し、（ｘ、ｙ）によって（ここで、Ｘ軸は水平方向に右向きであり、Ｙ軸は垂直方向に下向きである）表すことができ、Ｘ軸方向におけるサイズ（各行のサイズ）はｏｒｉ_ｘ（図示せず）であり、Ｙ軸方向上のサイズ（全行数）はｏｒｉ_ｙ（図示せず）であり、記憶領域全体２１の開始アドレスＰＡ_ｓｔａｒｔ（基準アドレス）は１番目のデータブロック２２の物理アドレスである。データブロック２３は、記憶領域全体２１におけるテンソルデータであり、Ｘ軸方向におけるオフセット量２５はｏｆｆｓｅｔ_ｘで表し、Ｙ軸方向におけるオフセット量２４はｏｆｆｓｅｔ_ｙで表し、Ｘ軸方向におけるサイズはｓｉzｅ_ｘで表し、Ｙ軸方向におけるサイズはｓｉzｅ_ｙで表す。
【０５８６】
可能な一実現形態において、記述子を使用してデータブロック２３を定義する場合、記述子のデータ基準点は記憶領域全体２１の１番目のデータブロックを使用でき、記述子の基準アドレスは記憶領域全体２１の開始アドレスＰＡ_ｓｔａｒｔであり、その後、記憶領域全体２１のＸ軸におけるサイズｏｒｉ_ｘ、Ｙ軸におけるサイズｏｒｉ_ｙ、データブロック２３のＹ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｙ、Ｘ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｘ、Ｘ軸方向におけるサイズｓｉzｅ_ｘ、および、Ｙ軸方向上のサイズｓｉzｅ_ｙを組み合わせて、データブロック２３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（１）を使用して記述子の内容を表すことができる。
2021520591.tif 000034
【０５８７】
上記の例では記述子が記述したのは２次元空間であるが、当業者は実際の状況に従って記述子の内容が表す次元を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０５８８】
可能な一実現形態において、記述子のデータ基準点の記憶領域全体における基準アドレス、および、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点のデータ基準点に対する位置に基づいて、前記テンソルデータの記述子の内容を確定できる。
【０５８９】
例を挙げると、記述子のデータ基準点の記憶領域全体における基準アドレスＰＡ_ｂａｓｅ、および、対角位置の二つの頂点のデータ基準点に対する位置を使用して、図２におけるデータブロック２３の記述子の内容を確定できる。まず、記述子のデータ基準点およびその記憶領域全体における基準アドレスＰＡ_ｂａｓｅを確定し、例えば、記憶領域全体２１で一つのデータ（例えば、位置が（２、２）であるデータである）をデータ基準点として選択し、当該データの記憶領域全体２１における物理アドレスを基準アドレスＰＡ_ｂａｓｅとして設定し、その後、データブロック２３の対角位置の少なくとも二つの頂点のデータ基準点に対する位置を確定でき、例えば、左上から右下への方向の対角位置頂点のデータ基準点に対する位置を使用し、ここで、左上の頂点の相対位置は（ｘ_ｍｉｎ、ｙ_ｍｉｎ）であり、右下の頂点の相対位置は（ｘ_ｍａｘ、ｙ_ｍａｘ）であり、その後、基準アドレスＰＡ_ｂａｓｅ、左上の頂点の相対位置（ｘ_ｍｉｎ、ｙ_ｍｉｎ）、および、右下の頂点の相対位置（ｘ_ｍａｘ、ｙ_ｍａｘ）に基づいて、データブロック７３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（２）を使用して記述子の内容を表すことができる。
2021520591.tif 000035
【０５９０】
上記の例では左上と右下の二つの頂点を使用して記述子の内容を確定したが、当業者は実際の必要に従って少なくとも二つの頂点の具体的な頂点を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０５９１】
可能な一実現形態において、記述子のデータ基準点の記憶領域全体における基準アドレス、および、記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係に基づいて、前記テンソルデータの記述子の内容を確定する。ここで、データ記述位置とデータアドレスとの間のマッピング関係は、実際の必要に従って設定でき、例えば、記述子が示すテンソルデータが３次元空間データである場合、関数ｆ(ｘ、ｙ、z)を使用してデータ記述位置とデータアドレスとの間のマッピング関係を定義できる。
可能な一実現形態において、以下の式（３）を使用して記述子の内容を表すことができる。
2021520591.tif 000036
【０５９２】
当業者は、実際の状況に従ってデータ記述位置とデータアドレスとの間のマッピング関係を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０５９３】
本実施例において、テンソルデータの基準アドレスおよび少なくとも一つの形状参考を使用して記述子の内容を確定することによって、各操作の処理要件に従って異なる記述子を使用できる。
【０５９４】
可能な一実現形態において、記述子の識別子に基づいて、記述子の記述子記憶空間における位置を確定し、さらに記述子記憶空間から記述子の内容を取得できるし、その後、記述子の内容に基づいて、記述子が示すテンソルデータの記憶領域全体におけるデータアドレスを確定できる。ここで、データアドレスの計算は、ハードウェアによって自動的に完成するか、または、ソフトウェア方式によって実現できる。記述子の内容が異なる場合、記述子が示すテンソルデータの記憶領域全体におけるデータアドレスの計算方式が互いに異なってもよい。
【０５９５】
例を挙げると、式（１）を使用して記述子の内容を表す場合、記述子が示すテンソルデータの記憶領域全体におけるオフセット量はそれぞれｏｆｆｓｅｔ_ｘおよびｏｆｆｓｅｔ_ｙであり、サイズがｓｉzｅ_ｘ＊ｓｉzｅ_ｙであると、当該記述子が示すテンソルデータの記憶領域全体における開始データアドレス
2021520591.tif 000037
は、以下の式（４）を使用して確定できる。
2021520591.tif 000038
【０５９６】
記述子が示すテンソルデータの中の任意の一つのデータ点に対して、そのデータ記述位置を
2021520591.tif 000039
に設定すると、当該データ点の記憶領域全体におけるデータアドレス
2021520591.tif 000040
は、以下の式（５）を使用して確定できる。
2021520591.tif 000041
当業者は、実際の状況に従って確定データアドレスの計算方法、本発明はこれに対して限定しないことを理解すべきである。
【０５９７】
本実施例において、記述子の識別子に基づいて、記述子の内容を取得し、記述子の内容に基づいて、記述子が示すテンソルデータの記憶領域全体におけるデータアドレスを確定し、データアドレスに基づいて、記述子が示すテンソルデータの目標記憶領域を確定できる。このような方式によって、データアクセス過程中で記述子を使用して、データアクセスの複雑度を低下させて、プロセッサの処理効率を向上させることができる。
【０５９８】
上記の実施例を例としてプロセッサ操作方法を説明したが、当業者は本発明がこれに限定されないことを理解できることを説明する必要がある。実際に、ユーザは、本発明の技術案に合致する限り、完全に、個人の好み及び／又は実際の適用シナリオに従って各ステップを柔軟に設定できる。
図３ｄは、本発明の実施例に係るプロセッサ操作装置を示すブロック図である。図３ｄに示されたように、前記プロセッサ操作装置は、
第１の操作が記述子に対する操作である場合、前記記述子が示すテンソルデータの目標記憶領域を取得するための領域確定モジュール８１と、
実行されている、前記目標記憶領域に対する第２の操作が、存在するか否かを判断するための操作判断モジュール８２と、
【０５９９】
前記第２の操作が存在する場合、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域と前記第２の操作の現在の対象となる前記目標記憶領域における第２の細粒度領域との間が重なるか否かを判断するための重なり判断モジュール８３と、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行するための実行モジュール８４と、を備える。
【０６００】
可能な一実現形態において、前記装置は、前記第１の細粒度領域と前記第２の細粒度領域とが重なる場合、前記第１の操作をブロックするための実行制御モジュールをさらに備える。
可能な一実現形態において、前記第１の操作および前記第２の操作の中の少なくとも一つの操作は、書き込み操作である。
【０６０１】
可能な一実現形態において、前記細粒度領域のサイズ及び／又は数は、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて確定する。
【０６０２】
可能な一実現形態において、前記細粒度領域のサイズ及び／又は数は、ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて確定する。
【０６０３】
可能な一実現形態において、前記第１の操作は、第１の処理命令における操作であり、前記第２の操作は、第２の処理命令における操作であり、前記第２の処理命令は、命令キュー中で前記第１の処理命令の前に位置する処理命令である。
【０６０４】
可能な一実現形態において、前記装置は、前記第１の操作の現在操作している第１の細粒度領域の第１の位置情報、および、前記第２の操作の現在操作している第２の細粒度領域の第２の位置情報を記録するための位置記録モジュールをさらに備え、
【０６０５】
前記実行モジュール８４は、前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行するための第１の実行サブモジュールを備える。
【０６０６】
可能な一実現形態において、前記第１の位置情報は、第１の操作の既に操作を完成した細粒度領域の第１の数を含み、前記第２の位置情報は、第２の操作の既に操作を完成した細粒度領域の第２の数を含み、
【０６０７】
前記第１の実行サブモジュールは、さらに、前記第１の操作が前記第２の操作の後の操作であり、且つ、前記第１の数が前記第２の数よりも小さい場合、前記第１の操作を実行する。
【０６０８】
可能な一実現形態において、前記目標記憶領域は、操作可能領域および操作不可領域を含み、前記重なり判断モジュール８３は、前記第２の操作が存在し、且つ、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域が前記操作可能領域内に位置する場合、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域と前記第２の操作の現在の対象となる前記目標記憶領域における第２の細粒度領域との間が重なるか否かを判断するための判断サブモジュールを備える。
【０６０９】
可能な一実現形態において、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域の前記操作不可領域における位置は前記第２の操作の操作位置に従って更新され、前記装置は、前記第２の操作の対象となる前記目標記憶領域における第２の細粒度領域が前記操作不可領域から移動して出た後に、前記操作不可領域の位置を更新するための更新モジュールを備える。
【０６１０】
可能な一実現形態において、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域は、前記操作不可領域内の設定位置に位置し、前記操作不可領域の位置は、前記第２の操作の操作位置に従って更新される。
可能な一実現形態において、前記目標記憶領域が、循環バッファ記憶領域を含む。
【０６１１】
可能な一実現形態において、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、前記実行モジュール８４は、
【０６１２】
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断するための第１の状態判断サブモジュールと、
前記第１の細粒度領域の状態識別子が完成状態である場合、前記第１の操作を実行するための第２の実行サブモジュールと、を備える。
【０６１３】
可能な一実現形態において、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、前記実行モジュール８４は、
前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断するための第２の状態判断サブモジュールと、
【０６１４】
前記第１の細粒度領域の状態識別子が完成状態であり、且つ、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行するための第３の実行サブモジュールと、を備える。
可能な一実現形態において、前記第２の操作は、前記記述子に対する操作である。
可能な一実現形態において、前記第２の操作のオペランドの記憶領域は、前記目標記憶領域と重なる。
可能な一実現形態において、前記装置は、目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けするための第１の設定モジュールをさらに備える。
可能な一実現形態において、前記装置は、
第１の操作に携える第１の細粒度区分け情報に基づいて、前記目標記憶領域を複数の細粒度領域に区分けするための第２の設定モジュールと、
【０６１５】
第２の操作に携える第２の細粒度区分け情報に基づいて、前記第２の操作のオペランドの記憶領域を複数の細粒度領域に区分けするための第３の設定モジュールと、をさらに備える。
【０６１６】
可能な一実現形態において、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０６１７】
可能な一実現形態において、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０６１８】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の、前記テンソルデータが位置する記憶領域全体における基準アドレスを含み、ここで、前記テンソルデータの形状パラメータは、前記テンソルデータが位置する記憶領域全体のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
可能な一実現形態において、人工知能チップをさらに開示し、前記人工知能チップは、上記のプロセッサ操作装置を備える。
【０６１９】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置にそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０６２０】
可能な一実現形態において、前記記憶デバイスは、複数のグループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
Ａ１、プロセッサ操作方法であって、前記方法は、
第１の操作が記述子に対する操作である場合、前記記述子が示すテンソルデータの目標記憶領域を取得することと、
実行されている、前記目標記憶領域に対する第２の操作が、存在するか否かを判断することと、
【０６２１】
前記第２の操作が存在する場合、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域と前記第２の操作の現在の対象となる前記目標記憶領域における第２の細粒度領域との間が重なるか否かを判断することと、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することと、を含む。
Ａ２、請求項Ａ１に記載の方法であって、前記方法は、
前記第１の細粒度領域と前記第２の細粒度領域とが重なる場合、前記第１の操作をブロックすることをさらに含む。
Ａ３、請求項Ａ１に記載の方法であって、前記第１の操作および前記第２の操作の中の少なくとも一つの操作は、書き込み操作である。
【０６２２】
Ａ４、請求項Ａ１に記載の方法であって、前記細粒度領域のサイズ及び／又は数は、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて確定する。
【０６２３】
Ａ５、請求項Ａ１に記載の方法であって、前記細粒度領域のサイズ及び／又は数は、ハードウェア計算能力、および、ハードウェア帯域幅のにおｌけるの少なくとも一つに基づいて確定する。
【０６２４】
Ａ６、請求項Ａ１に記載の方法であって、前記第１の操作は、第１の処理命令における操作であり、前記第２の操作は、第２の処理命令における操作であり、前記第２の処理命令は、命令キュー中で前記第１の処理命令の前に位置する処理命令である。
Ａ７、請求項Ａ１乃至Ａ６の中のいずれか１項に記載の方法であって、前記方法は、
【０６２５】
前記第１の操作の現在操作している第１の細粒度領域の第１の位置情報、および、前記第２の操作の現在操作している第２の細粒度領域の第２の位置情報を記録する、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することは、
前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行することを含む。
【０６２６】
Ａ８、請求項Ａ７に記載の方法であって、前記第１の位置情報は、第１の操作の既に操作を完成した細粒度領域の第１の数を含み、前記第２の位置情報は、第２の操作の既に操作を完成した細粒度領域の第２の数を含み、
前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行することは、
前記第１の操作が前記第２の操作の後の操作であり、且つ、前記第１の数が前記第２の数よりも小さい場合、前記第１の操作を実行することを含む。
【０６２７】
Ａ９、請求項Ａ１に記載の方法であって、前記目標記憶領域は、操作可能領域および操作不可領域を含み、前記第２の操作が存在する場合、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域と前記第２の操作の現在の対象となる前記目標記憶領域における第２の細粒度領域との間が重なるか否かを判断することは、
【０６２８】
前記第２の操作が存在し、且つ、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域が前記操作可能領域内に位置する場合、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域と前記第２の操作の現在の対象となる前記目標記憶領域における第２の細粒度領域との間が重なるか否かを判断することを含む。
【０６２９】
Ａ１０、請求項Ａ９に記載の方法であって、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域の前記操作不可領域における位置は前記第２の操作の操作位置に従って更新され、前記方法は、
【０６３０】
前記第２の操作の対象となる前記目標記憶領域における第２の細粒度領域が前記操作不可領域から移動して出た後に、前記操作不可領域の位置を更新することをさらに含む。
【０６３１】
Ａ１１、請求項Ａ９に記載の方法であって、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域は、前記操作不可領域内の設定位置に位置し、
前記操作不可領域の位置は、前記第２の操作の操作位置に従って更新される。
Ａ１２、請求項Ａ１に記載の方法であって、前記目標記憶領域が、循環バッファ記憶領域を含む。
【０６３２】
Ａ１３、請求項Ａ１に記載の方法であって、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することは、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断することと、
完成状態であると、前記第１の操作を実行することと、を含む。
【０６３３】
Ａ１４、請求項Ａ１に記載の方法であって、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することは、
前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断することと、
完成状態であると、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することと、を含む。
Ａ１５、請求項Ａ１に記載の方法であって、前記第２の操作は、前記記述子に対する操作である。
Ａ１６、請求項Ａ１に記載の方法であって、前記第２の操作のオペランドの記憶領域は、前記目標記憶領域と重なる。
Ａ１７、請求項Ａ１乃至Ａ１６の中のいずれか１項に記載の方法であって、前記方法は、
目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けすることをさらに含む。
Ａ１８、請求項Ａ１乃至Ａ１７の中のいずれか１項に記載の方法であって、前記方法は、
第１の操作に携える第１の細粒度区分け情報に基づいて、前記目標記憶領域を複数の細粒度領域に区分けすることと、
第２の操作に携える第２の細粒度区分け情報に基づいて、前記第２の操作のオペランドの記憶領域を複数の細粒度領域に区分けすることと、をさらに含む。
Ａ１９、請求項Ａ１に記載の方法であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０６３４】
Ａ２０、請求項Ａ１９に記載の方法であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０６３５】
Ａ２１、請求項Ａ２０に記載の方法であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の、前記テンソルデータが位置する記憶領域全体における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０６３６】
前記テンソルデータが位置する記憶領域全体のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ２２、プロセッサ操作装置であって、前記装置は、
第１の操作が記述子に対する操作である場合、前記記述子が示すテンソルデータの目標記憶領域を取得するための領域確定モジュールと、
実行されている、前記目標記憶領域に対する第２の操作が、存在するか否かを判断するための操作判断モジュールと、
【０６３７】
前記第２の操作が存在する場合、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域と前記第２の操作の現在の対象となる前記目標記憶領域における第２の細粒度領域との間が重なるか否かを判断するための重なり判断モジュールと、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行するための実行モジュールと、を備える。
Ａ２３、請求項Ａ２２に記載の装置であって、前記装置は、
前記第１の細粒度領域と前記第２の細粒度領域とが重なる場合、前記第１の操作をブロックするための実行制御モジュールをさらに備える。
Ａ２４、請求項Ａ２２に記載の装置であって、前記第１の操作および前記第２の操作の中の少なくとも一つの操作は、書き込み操作である。
【０６３８】
Ａ２５、請求項Ａ２２に記載の装置であって、前記細粒度領域のサイズ及び／又は数は、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて確定する。
【０６３９】
Ａ２６、請求項Ａ２２に記載の装置であって、前記細粒度領域のサイズ及び／又は数は、ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて確定する。
【０６４０】
Ａ２７、請求項Ａ２２に記載の装置であって、前記第１の操作は、第１の処理命令における操作であり、前記第２の操作は、第２の処理命令中の操作であり、前記第２の処理命令は、命令キュー中で前記第１の処理命令の前に位置する処理命令である。
Ａ２８、請求項Ａ２２乃至Ａ２７の中のいずれか１項に記載の装置であって、前記装置は、
【０６４１】
前記第１の操作の現在操作している第１の細粒度領域の第１の位置情報、および、前記第２の操作の現在操作している第２の細粒度領域の第２の位置情報を記録するための位置記録モジュールをさらに備え、
前記実行モジュールは、
前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行するための第１の実行サブモジュールを備える。
【０６４２】
Ａ２９、請求項Ａ２８に記載の装置であって、前記第１の位置情報は、第１の操作の既に操作を完成した細粒度領域の第１の数を含み、前記第２の位置情報は、第２の操作の既に操作を完成した細粒度領域の第２の数を含み、
前記第１の実行サブモジュールは、さらに、
前記第１の操作が前記第２の操作の後の操作であり、且つ、前記第１の数が前記第２の数よりも小さい場合、前記第１の操作を実行する。
Ａ３０、請求項Ａ２２に記載の装置であって、前記目標記憶領域は、操作可能領域および操作不可領域を含み、前記重なり判断モジュールは、
【０６４３】
前記第２の操作が存在し、且つ、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域が前記操作可能領域内に位置する場合、前記第１の操作の現在の対象となる前記目標記憶領域における第１の細粒度領域と前記第２の操作の現在の対象となる前記目標記憶領域における第２の細粒度領域との間が重なるか否かを判断するための判断サブモジュールを備える。
【０６４４】
Ａ３１、請求項Ａ３０に記載の装置であって、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域の前記操作不可領域における位置は、前記第２の操作の操作位置に従って更新され、前記装置は、
【０６４５】
前記第２の操作の対象となる前記目標記憶領域における第２の細粒度領域が前記操作不可領域から移動して出た後に、前記操作不可領域の位置を更新するための更新モジュールを備える。
【０６４６】
Ａ３２、請求項Ａ３０に記載の装置であって、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域は、前記操作不可領域内の設定位置に位置し、
前記操作不可領域の位置は、前記第２の操作の操作位置に従って更新される。
Ａ３３、請求項Ａ２２に記載の装置であって、前記目標記憶領域が、循環バッファ記憶領域を含む。
【０６４７】
Ａ３４、請求項Ａ２２に記載の装置であって、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、
前記実行モジュールは、
【０６４８】
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断するための第１の状態判断サブモジュールと、
前記第１の細粒度領域の状態識別子が完成状態である場合、前記第１の操作を実行するための第２の実行サブモジュールと、を備える。
【０６４９】
Ａ３５、請求項Ａ２２に記載の装置であって、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、
前記実行モジュールは、
前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断するための第２の状態判断サブモジュールと、
【０６５０】
前記第１の細粒度領域の状態識別子が完成状態であり、且つ、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行するための第３の実行サブモジュールと、を備える。
Ａ３６、請求項Ａ２２に記載の装置であって、前記第２の操作は、前記記述子に対する操作である。
Ａ３７、請求項Ａ２２に記載の装置であって、前記第２の操作のオペランドの記憶領域は、前記目標記憶領域と重なる。
Ａ３８、請求項Ａ２２乃至Ａ３７の中のいずれか１項に記載の装置であって、前記装置は、
目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けするための第１の設定モジュールをさらに備える。
Ａ３９、請求項Ａ２２乃至Ａ３７の中のいずれか１項に記載の装置であって、前記装置は、
第１の操作に携える第１の細粒度区分け情報に基づいて、前記目標記憶領域を複数の細粒度領域に区分けするための第２の設定モジュールと、
【０６５１】
第２の操作に携える第２の細粒度区分け情報に基づいて、前記第２の操作のオペランドの記憶領域を複数の細粒度領域に区分けするための第３の設定モジュールと、をさらに備える。
Ａ４０、請求項Ａ２２に記載の装置であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０６５２】
Ａ４１、請求項Ａ４０に記載の装置であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０６５３】
Ａ４２、請求項Ａ４１に記載の装置であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の、前記テンソルデータが位置する記憶領域全体における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０６５４】
前記テンソルデータが位置する記憶領域全体のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ４３、人工知能チップであって、前記チップは、請求項Ａ２２乃至Ａ４２の中のいずれか１項に記載のプロセッサ操作装置を備える。
Ａ４４、電子デバイスであって、前記電子デバイスは、請求項Ａ４３に記載の人工知能チップを備える。
【０６５５】
Ａ４５、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ４３に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０６５６】
Ａ４６、請求項Ａ４５に記載のボードカードであって、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップにバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、
前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０６５７】
人工知能アルゴリズムの複雑度の増大に伴って、処理する必要のあるデータ量とデータの次元とがいずれも継続的に増加しており、通常、マルチコア及び／又はマルチチップのデータ処理が必要である。コア間またはチップ間のデータ同期を実行する場合、関連技術を使用する同期方式は同期オーバーヘッドがより大きく、処理効率がより低い。
【０６５８】
本発明の実施例によると、データ同期方法が提供される。図１ｅは、本発明の実施例に係るデータ同期方法を示すフローチャートである。当該データ同期方法は、プロセッサに適用でき、当該プロセッサは、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）と、専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサ、または、デジタル信号プロセッサなど）を含んでもよい。本発明は、プロセッサのタイプに対して限定しない。
図１ｅに示されたように、当該データ同期方法は、以下のステップを含む。
【０６５９】
ステップＳ１１ｅにおいて、復号化後の処理命令が記述子同期命令であると、前記処理命令における記述子であって、同期待ちのテンソルデータの形状を示すための記述子の、同期情報を取得し、
ステップＳ１２ｅにおいて、前記同期情報に基づいて、前記処理命令を実行する。
【０６６０】
例を挙げると、同期待ちのデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよく、ここで、テンソルは、様々な形式のデータ構成方式を含んでもよい。テンソルは、異なる次元のものであってもよく、例えば、スカラーは０次元のテンソル、ベクトルは１次元のテンソル、行列は２次元または２次元以上のテンソルと見なしてもよい。テンソルの形状は、テンソルの次元やテンソルの各次元のサイズなどの情報を含む。例えば、テンソルの場合、
2021520591.tif 000042
【０６６１】
当該テンソルの形状は、記述子によって（２、４）として記述されてもよく、すなわち、二つのパラメータによって当該テンソルが２次元テンソルであることを示し、且つ、当該テンソルの第１の次元（列）のサイズが２であり、第２の次元（行）のサイズが４である。本発明は、記述子がテンソル形状を示す方式に対して限定しないことを説明する必要がある。メモリにテンソルデータを記憶する場合、そのデータアドレス（または記憶領域）によってはテンソルデータの形状を確定できず、さらに複数のテンソルデータ間の相互関係などの関連情報も確定できないので、プロセッサのテンソルデータのアクセス効率が低くなり、データ同期の際の複雑度もより大きい。
【０６６２】
この場合、記述子（テンソル記述子）を設定してテンソルデータ（Ｎ次元のテンソルデータ）の形状を示すことができる。ここで、Ｎの値は、テンソルデータの次元数（回数）に基づいて確定してもよいし、テンソルデータの使用の必要性に基づいて設定してもよい。例えば、Ｎの値が３である場合、テンソルデータは３次元のテンソルデータであり、記述子は、当該３次元のテンソルデータの、三つの次元方向上の形状（例えば、オフセット量、サイズなど）を示すために使用できる。当業者は、実際の必要によってＮの値を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０６６３】
可能な一実現形態において、記述子は、識別子や内容などを含んでもよい。記述子の識別子は、記述子を区別するために使用でき、例えば、記述子の識別子は番号である。記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータ（例えば、テンソルの各次元方向上のサイズなど）を含んでもよく、さらに、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータ（例えば、データ基準点の基準アドレス）を含んでもよい。本発明は、記述子の内容に含まれる具体的なパラメータに対して限定しない。
【０６６４】
記述子を使用してテンソルデータを示す方式によって、テンソルデータの形状を表現でき、さらに、複数のテンソルデータ間の相互関係などの関連情報も確定できるので、テンソルデータに対するアクセス効率を向上させることで、データ同期の際の複雑度を低下する。
【０６６５】
データ処理過程で、現在のプロセッサＡ１（例えば、人工知能チップにおけるプロセッサコア）におけるテンソルデータに対してデータ同期を実行する必要がある可能があり、例えば、もう一つのプロセッサＡ０における一つの演算の演算結果をプロセッサＡ１におけるもう一つの演算の入力データとして同期する必要がある。この場合、記述子同期命令を使用してデータ同期を実現できる。すなわち、同期待ちのテンソルデータが存在する場合、同期データの送信側（例えば、もう一つのプロセッサＡ０）は、記述子同期命令をプロセッサＡ１に送信することによって、現在のプロセッサＡ１がデータ同期するように指示することができる。
可能な一実現形態において、ステップＳ１１ｅの前に、前記方法は、
受信された処理命令を復号化して、復号化後の処理命令を得ることをさらに含み、
ここで、前記復号化後の処理命令は、オペレーションコードを含み、前記オペレーションコードは、同期処理を実行するように指示するために使用される。
【０６６６】
例を挙げると、現在のプロセッサＡ１は処理命令が受信されると、処理命令を復号化（解析）して、復号化後の処理命令を得ることができる。当該復号化後の処理命令は、オペレーションコードおよびオペランドを少なくとも含んでもよく、オペレーションコードは、前記処理命令に対応する処理タイプを示すために使用され、オペランドは、処理待ちのデータを示すために使用される。処理命令は、データアクセス命令、演算命令、記述子管理命令、同期命令などを含んでもよい。本発明は、処理命令の具体的なタイプおよび復号化の具体的な方式に対して限定しない。
【０６６７】
可能な一実現形態において、復号化後の処理命令のオペレーションコードが記述子同期処理の実行を指示すると、当該処理命令が記述子同期命令であると確定できる。復号化後の処理命令が記述子同期命令であると、プロセッサは、ステップＳ１１ｅで前記処理命令における記述子の同期情報を取得することで、記述子が示す同期待ちのテンソルデータを同期できる。
【０６６８】
可能な一実現形態において、記述子の同期情報は、例えば、前記記述子の識別子および前記記述子の内容の中の少なくとも一つを含んでもよい。プロセッサに当該同期待ちのテンソルデータを示す記述子が既に登録されており、且つ、変更する必要がないと、記述子同期命令における同期情報は記述子の識別子（例えば、記述子の識別子がＴＲ１である場合、記述子同期命令をＳｅｎｄ ＴＲ１で表す）のみを含んでもよく、プロセッサは、処理命令における当該記述子の識別子（ＴＲ１）に基づいてテンソルデータの同期を実現するようにすることができるし、プロセッサに当該同期待ちのテンソルデータを示す記述子を登録されていないと、記述子同期命令における同期情報は記述子の内容を含んでもよく、プロセッサは、処理命令における記述子内容に基づいてテンソルデータの同期を実現するようにすることができるし、プロセッサに当該同期待ちのテンソルデータを示す記述子が既に登録されているが、記述子の内容を変更する必要があると、記述子同期命令における同期情報は記述子の識別子と内容の両者を同時に含んでもよく、プロセッサは、処理命令における記述子識別子と内容に基づいてテンソルデータの同期を実現できる。本発明は、記述子の同期情報に含まれている具体的な内容に対して限定しない。
【０６６９】
可能な一実現形態において、記述子同期命令の同期情報を得た後、プロセッサは、ステップＳ１２ｅで同期情報に基づいて当該処理命令を実行（記述子同期命令）して、テンソルデータの同期を実現できる。
【０６７０】
本発明の実施例に係るデータ同期方法によると、テンソルデータの形状を示す記述子を設定することによって、復号化後の処理命令が記述子同期命令であるとき、処理命令における記述子の同期情報を取得し、記述子の同期情報に基づいて命令を実行してテンソルデータの同期を実現できて、同期オーバーヘッドを軽減して、データ同期の効率を向上させることができる。
可能な一実現形態において、ステップＳ１２ｅは、
【０６７１】
前記記述子が示すテンソルデータの記憶領域が共有記憶空間にある場合、前記同期情報に基づいて前記共有記憶空間から前記テンソルデータを取得することを含んでもよい。
【０６７２】
例を挙げると、複数のプロセッサ（複数のコア）は、共有記憶空間を有することができ、例えば、プロセッサＡ０とプロセッサＡ１は、いずれもアクセスできるオフチップメモリである。当該共有記憶空間は、複数のコア（複数のプロセッサ）がいずれもデータをアクセスできる記憶空間であってもよいし、一部のコア（一部のプロセッサ）がデータをアクセスできる記憶空間であってもよい。コア間の共有記憶空間を予め設定でき、本発明は、共有記憶空間の設定方式に対して限定しない。
【０６７３】
可能な一実現形態において、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にあると、現在のプロセッサＡ１も共有記憶空間からデータをアクセスできるので、プロセッサＡ１は記述子の内容に基づいてテンソルデータを直接読み取って同期を実現できる。
【０６７４】
可能な一実現形態において、記述子同期要求命令における同期情報が記述子の識別子のみを含むと、例えば、記述子の識別子がＴＲ１であり、記述子同期要求命令がＳｅｎｄ ＴＲ１を表すと、プロセッサＡ１は、内部で当該記述子の識別子に対応する記述子内容を検索し、さらに記述子内容に基づいて共有記憶空間からにおける同期待ちのテンソルデータを取得することによって、同期過程全体を実現できる。
【０６７５】
可能な一実現形態において、当該記述子同期命令における同期情報が記述子の識別子と内容を含むと、プロセッサＡ１は、当該記述子の識別子に対応する記述子を検索し、且つ、記述子同期命令における記述子内容に基づいて、元の記述子内容を更新し、さらに更新後の記述子内容に基づいて共有記憶空間から同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
【０６７６】
可能な一実現形態において、当該記述子同期命令における同期情報が記述子の内容のみを含むと、プロセッサＡ１は、記述子の内容に基づいて、当該同期待ちのテンソルデータを示す記述子を登録し、且つ、記述子の内容に基づいて共有記憶空間から同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
【０６７７】
このような方式によって、記述子同期命令における記述子の同期情報に基づいて、記述子が示す同期待ちのテンソルデータを取得して、テンソルデータの同期を実現できて、不要なデータ伝送を回避し、テンソルデータのアクセス回数を削減して、同期の処理効率を向上させることができる。
【０６７８】
可能な一実現形態において、複数のプロセッサ（複数のコア）は、同期データの記憶専用の、同期データ記憶空間を有することができる。当該同期データ記憶空間は、上記の共有記憶空間であってもよいし、共有記憶空間の一部であってもよいし、共有記憶空間とは異なる記憶空間であってもよく、本発明はこれに対して限定しない。
【０６７９】
可能な一実現形態において、同期データ記憶空間は、複数のコア（複数のプロセッサ）がいずれもが同期データをアクセスできる記憶空間であってもよいし、一部のコア（一部のプロセッサ）が同期データをアクセスできる記憶空間であってもよく、本発明はこれに対して限定しない。
【０６８０】
可能な一実現形態において、当該記述子同期命令における同期情報が同期待ちのテンソルデータの記述子の内容の同期データ記憶空間におけるアドレスを含むと、プロセッサＡ１は、当該アドレスに基づいて、同期データ記憶空間から同期待ちのテンソルデータの記述子の内容を取得し、記述子の内容に基づいて記述子を登録し、同期待ちのテンソルデータのデータアドレスを確定し、さらに前記同期待ちのテンソルデータを取得することによって、同期過程全体を実現できる。
このような方式によって、同期の際のプロセッサ間のデータ伝送をもう一層削減して、同期の処理効率を向上させることができる。
【０６８１】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、プロセッサの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなどにおける記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、プロセッサの内部メモリ（例えば、オンチップキャッシュ）、または、プロセッサに接続された外部メモリ（オフチップメモリ）における記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【０６８２】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同じ領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスがＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１は記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３は記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３は記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０６８３】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタに記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０６８４】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子におけるデータは、即時値にすることも、専用レジスタから取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタにおける記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０６８５】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０６８６】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、プロセッサは記述子の内容に基づいてテンソルデータのデータアドレスを確定できる。
【０６８７】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０６８８】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０６８９】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスがデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間における１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスが当該データブロックのデータ記憶空間における物理アドレスである。
【０６９０】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記テンソルデータのデータ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータの中の点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータマッピングの３次元空間における点または領域の位置であることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０６９１】
図２は、本発明の一実施例に係るデータ記憶空間を示す模式図である。図２に示されたように、データ記憶空間２１は、行優先の方式を使用して一つの２次元データを記憶し、（ｘ、ｙ）によって（ここで、Ｘ軸は水平方向に右向きであり、Ｙ軸は垂直方向に下向きである）表すことができ、Ｘ軸方向におけるサイズ（各行のサイズ）はｏｒｉ_ｘ（図示せず）であり、Ｙ軸方向上のサイズ（全行数）はｏｒｉ_ｙ（図示せず）であり、データ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔ（基準アドレス）は１番目のデータブロック２２の物理アドレスである。データブロック２３は、データ記憶空間２１における一部のデータであり、Ｘ軸方向におけるオフセット量２５はｏｆｆｓｅｔ_ｘで表し、Ｙ軸方向におけるオフセット量２４はｏｆｆｓｅｔ_ｙで表し、Ｘ軸方向におけるサイズはｓｉzｅ_ｘで表し、Ｙ軸方向におけるサイズはｓｉzｅ_ｙで表す。
【０６９２】
可能な一実現形態において、記述子を使用してデータブロック２３を定義する場合、記述子のデータ基準点はデータ記憶空間２１の１番目のデータブロックを使用でき、記述子の基準アドレスはデータ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔであり、その後、データ記憶空間２１のＸ軸におけるサイズｏｒｉ_ｘ、Ｙ軸におけるサイズｏｒｉ_ｙ、および、データブロック２３のＹ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｙ、Ｘ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｘ、Ｘ軸方向におけるサイズｓｉzｅ_ｘおよびＹ軸方向上のサイズｓｉzｅ_ｙと組み合わせて、データブロック２３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（１）を使用して記述子の内容を表すことができる。
2021520591.tif 000043
【０６９３】
上記の例では記述子が記述したのは２次元空間であるが、当業者は実際の状況に従って記述子の内容が表す次元を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０６９４】
可能な一実現形態において、前記記述子のデータ基準点の前記データ記憶空間における基準アドレス、および、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置に基づいて、前記テンソルデータの記述子の内容を確定できる。
【０６９５】
例を挙げると、記述子のデータ基準点のデータ記憶空間における基準アドレスＰＡ_ｂａｓｅ、および、対角位置の二つの頂点のデータ基準点に対する位置を使用して、図２の中のデータブロック２３の記述子の内容を確定できる。まず、記述子のデータ基準点およびそのデータ記憶空間における基準アドレスＰＡ_ｂａｓｅを確定し、例えば、データ記憶空間２１における一つのデータ（例えば、位置が（２、２）であるデータである）をデータ基準点として選択し、当該データのデータ記憶空間における物理アドレスを基準アドレスＰＡ_ｂａｓｅとし、その後、データブロック２３の対角位置の少なくとも二つの頂点のデータ基準点に対する位置を確定できる。例えば、左上から右下への方向の対角位置頂点のデータ基準点に対する位置を使用し、ここで、左上の頂点の相対位置は（ｘ_ｍｉｎ、ｙ_ｍｉｎ）であり、右下の頂点の相対位置は（ｘ_ｍａｘ、ｙ_ｍａｘ）であり、その後、基準アドレスＰＡ_ｂａｓｅ、左上の頂点の相対位置（ｘ_ｍｉｎ、ｙ_ｍｉｎ）、および、右下の頂点の相対位置（ｘ_ｍａｘ、ｙ_ｍａｘ）に基づいて、データブロック２３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（２）を使用して記述子の内容を表すことができる。
2021520591.tif 000044
【０６９６】
上記の例では左上と右下の二つの頂点を使用して記述子の内容を確定したが、当業者は実際の必要に従って少なくとも二つの頂点の具体的な頂点を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０６９７】
可能な一実現形態において、前記記述子のデータ基準点の前記データ記憶空間における基準アドレス、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係に基づいて、前記テンソルデータの記述子の内容を確定できる。ここで、データ記述位置とデータアドレスとの間のマッピング関係は、実際の必要に従って設定でき、例えば、記述子が示すテンソルデータが３次元空間データである場合、関数ｆ(ｘ、ｙ、z)を使用してデータ記述位置とデータアドレスとの間のマッピング関係を定義できる。
可能な一実現形態において、以下の式（３）を使用して記述子の内容を表すことができる。
2021520591.tif 000045
【０６９８】
当業者は、実際の状況に従ってデータ記述位置とデータアドレスとの間のマッピング関係を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０６９９】
式（１）を使用して記述子の内容を表す場合、テンソルデータの中の任意の一つのデータ点に対して、そのデータ記述位置を
2021520591.tif 000046
に設定すると、当該データ点のデータ記憶空間におけるデータアドレス
2021520591.tif 000047
は、以下の式（４）を使用して確定できる。
2021520591.tif 000048
【０７００】
このような方式によって、プロセッサは、記述子の内容に基づいて記述子が示すテンソルデータのデータ記憶空間におけるデータアドレスを計算し、さらに当該アドレスに基づいて対応する処理（例えば、データ演算、データ同期など）を実行することによって、データアクセスの複雑度を低下させて、プロセッサの処理効率を向上させることができる。
【０７０１】
図３ｅは、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、プロセッサに適用でき、図３ｅに示されたように、当該データ同期装置は、
【０７０２】
復号化後の処理命令が記述子同期命令であると、前記処理命令中の記述子であって、同期待ちのテンソルデータの形状を示すための記述子の、同期情報を取得するための同期情報取得モジュール３１ｅと、
前記同期情報に基づいて、前記処理命令を実行するための命令実行モジュール３２ｅと、を備える。
可能な一実現形態において、前記同期情報は、前記記述子の識別子および前記記述子の内容の中の少なくとも一つを含んでもよい。
【０７０３】
可能な一実現形態において、前記命令実行モジュールは、前記記述子が示すテンソルデータの記憶領域が共有記憶空間にある場合、前記同期情報に基づいて前記共有記憶空間から前記テンソルデータを取得するためのデータ取得サブモジュールを備える。
【０７０４】
可能な一実現形態において、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０７０５】
可能な一実現形態において、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０７０６】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。
可能な一実現形態において、前記テンソルデータの形状パラメータは、
【０７０７】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
【０７０８】
可能な一実現形態において、前記装置は、受信された処理命令を復号化して、復号化後の処理命令を得るための復号化モジュールを備え、ここで、前記復号化後の処理命令は、オペレーションコードを含み、前記オペレーションコードは、同期処理を実行するように指示するために使用される。
可能な一実現形態において、人工知能チップをさらに開示し、前記人工知能チップは上記のデータ同期装置を備える。
【０７０９】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
Ａ１、データ同期方法であって、前記方法は、
【０７１０】
復号化後の処理命令が記述子同期命令であると、前記処理命令中の記述子であって、同期待ちのテンソルデータの形状を示すための記述子の、同期情報を取得することと、
前記同期情報に基づいて、前記処理命令を実行することと、を含む。
Ａ２、請求項Ａ１に記載の方法であって、前記同期情報は、前記記述子の識別子および前記記述子の内容の中の少なくとも一つを含んでもよい。
Ａ３、請求項Ａ１またはＡ２に記載の方法であって、前記同期情報に基づいて、前記処理命令を実行することは、
【０７１１】
前記記述子が示すテンソルデータの記憶領域が共有記憶空間にある場合、前記同期情報に基づいて前記共有記憶空間から前記テンソルデータを取得することを含む。
【０７１２】
Ａ４、請求項Ａ１乃至Ａ３の中のいずれか１項に記載の方法であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０７１３】
Ａ５、請求項Ａ４に記載の方法であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０７１４】
Ａ６、請求項Ａ５に記載の方法であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。
Ａ７、請求項Ａ６に記載の方法であって、前記テンソルデータの形状パラメータは、
【０７１５】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ８、請求項Ａ１乃至Ａ７の中のいずれか１項に記載の方法であって、前記方法は、
受信された処理命令を復号化して、復号化後の処理命令を得ることをさらに含み、
ここで、前記復号化後の処理命令は、オペレーションコードを含み、前記オペレーションコードは、同期処理を実行するように指示するために使用される。
Ａ９、データ同期装置であって、前記装置は、
【０７１６】
復号化後の処理命令が記述子同期命令であると、前記処理命令中の記述子であって、同期待ちのテンソルデータの形状を示すための記述子の、同期情報を取得するための同期情報取得モジュールと、
前記同期情報に基づいて、前記処理命令を実行するための命令実行モジュールと、を備える。
Ａ１０、請求項Ａ９に記載の装置であって、前記同期情報は、前記記述子の識別子および前記記述子の内容の中の少なくとも一つを含む。
Ａ１１、請求項Ａ９またはＡ１０に記載の装置であって、前記命令実行モジュールは、
【０７１７】
前記記述子が示すテンソルデータの記憶領域が共有記憶空間にある場合、前記同期情報に基づいて前記共有記憶空間から前記テンソルデータを取得するためのデータ取得サブモジュールを備える。
【０７１８】
Ａ１２、請求項Ａ９乃至Ａ１１の中のいずれか１項に記載の装置であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０７１９】
Ａ１３、請求項Ａ１２に記載の装置であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０７２０】
Ａ１４、請求項Ａ１３に記載の装置であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。
Ａ１５、請求項Ａ１４に記載の装置であって、前記テンソルデータの形状パラメータは、
【０７２１】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ１６、請求項Ａ９乃至Ａ１５の中のいずれか１項に記載の装置であって、前記装置は、
受信された処理命令を復号化して、復号化後の処理命令を得るための復号化モジュールを備え、
ここで、前記復号化後の処理命令は、オペレーションコードを含み、前記オペレーションコードは、同期処理を実行するように指示するために使用される。
Ａ１７、人工知能チップであって、前記チップは、請求項Ａ９乃至Ａ１６の中のいずれか１項に記載のデータ同期装置を備える。
Ａ１８、電子デバイスであって、前記電子デバイスは、請求項Ａ１７に記載の人工知能チップを備える。
【０７２２】
Ａ１９、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項１７に記載の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置にそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
Ａ２０、請求項Ａ１９に記載のボードカードであって、
【０７２３】
前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
【０７２４】
前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用され、前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０７２５】
人工知能技術の継続的な発展に伴って、処理する必要のあるデータ量とデータの次元とがいずれも継続的に増加している。関連技術において、プロセッサは、一般的に、命令のパラメータを取得してデータアドレスを確定し、次に、データアドレスに基づいて命令間の依存関係を判断する。このような命令間の依存関係を判断するのは、オペランドを計算するデータアドレスの方式によって、プロセッサの処理効率を低下させた。
【０７２６】
本発明の実施例によると、データ処理方法が提供される。図１ｆは、本発明の実施例に係るデータ処理方法を示すフローチャートである。図１ｆに示されたように、当該データ処理方法は、以下のステップを含む。
【０７２７】
ステップＳ１１ｆにおいて、復号化後の第１の処理命令のオペランドが、テンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記第１の処理命令が実行できるか否かを判断し、
ステップＳ１２ｆにおいて、前記第１の処理命令が実行できる場合、前記記述子の識別子に基づいて、前記第１の処理命令に対応するデータ処理を実行する。
【０７２８】
可能な一実現形態において、当該データ処理方法は、プロセッサに適用できる。プロセッサは、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）と、専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサ、または、デジタル信号プロセッサなど）を含んでもよい。本発明は、プロセッサのタイプに対して限定しない。
【０７２９】
可能な一実現形態において、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードは、前記第１の処理命令に対応する処理タイプを示すために使用される。ここで、第１の処理命令は、データアクセス命令、演算命令、記述子管理命令、および、同期通信命令などを含んでもよい。本発明は、第１の処理命令の具体的なタイプに対して限定しない。
【０７３０】
可能な一実現形態において、処理待ちのデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよく、ここで、テンソルは、様々な形式のデータ構成方式を含んでもよい。テンソルは、異なる次元のものであってもよく、例えば、スカラーは０次元のテンソル、ベクトルは１次元のテンソル、行列は２次元または２次元以上のテンソルと見なしてもよい。テンソルの形状は、テンソルの次元やテンソルの各次元のサイズなどの情報を含む。例を挙げると、以下のテンソルの場合、
2021520591.tif 000049
【０７３１】
当該テンソルの形状は、記述子によって（２、４）として記述されてもよく、すなわち、二つのパラメータによって当該テンソルが２次元テンソルであることを示し、且つ、当該テンソルの第１の次元（列）のサイズは２であり、第２の次元（行）のサイズは４である。本願は記述子がテンソル形状を示す方式を限定しないことを説明する必要がある。メモリにテンソルデータを記憶する場合、そのデータアドレス（または記憶領域）によってはテンソルデータの形状を確定できず、さらに複数のテンソルデータ間の相互関係などの関連情報も確定できないので、プロセッサのテンソルデータのアクセス効率が低くなる。
【０７３２】
可能な一実現形態において、記述子は、Ｎ次元のテンソルデータの形状を示すために使用できる、Ｎは、ゼロ以上の整数である。ここで、Ｎの値は、テンソルデータの次元数（回数）に基づいて確定してもよいし、テンソルデータの使用の必要性に基づいて設定してもよい。例えば、Ｎの値が３である場合、テンソルデータは３次元データであり、記述子は当該テンソルデータの三つの次元方向上の形状（例えば、オフセット量、サイズなど）を示すために使用できる。当業者は、実際の必要によってＮの値を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０７３３】
可能な一実現形態において、記述子は、識別子や内容などを含んでもよい。記述子の識別子は、記述子を区別するために使用でき、例えば、記述子の識別子は番号である。記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータ（例えば、テンソルの各次元方向上のサイズなど）を含んでもよく、さらに、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータ（例えば、データ基準点の基準アドレス）を含んでもよい。本発明は、記述子の内容に含まれる具体的なパラメータに対して限定しない。
【０７３４】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、制御ユニットの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなどにおける記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、前記制御ユニットの内部メモリ（例えば、オンチップキャッシュ）、または、前記制御ユニットに接続された外部メモリ（オフチップメモリ）における記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【０７３５】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同じ領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスはＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１は記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３は記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３は記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０７３６】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタにおける記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０７３７】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子のデータは、即時値にすることも、専用レジスタから取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタの記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０７３８】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０７３９】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、制御ユニットは記述子の内容に基づいて、テンソル制御モジュールによって、オペランドに対応するデータのデータアドレスを確定し、その後、第１の処理命令を実行する。
【０７４０】
可能な一実現形態において、記述子の識別子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを示すとき、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０７４１】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記データ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０７４２】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスがデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間における１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスは、当該データブロックのデータ記憶空間における物理アドレスである。
【０７４３】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記データ記憶空間のＮ個の次元方向の中少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータの中の点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータはマッピングの３次元空間における点または領域の位置にマッピングすることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０７４４】
可能な一実現形態において、可以ステップＳ１１ｆにおいて、復号化後の第１の処理命令のオペランドが記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記第１の処理命令が実行できるか否かを判断する。ここで、記述子の識別子が同じであるか否かは、記述子が示すテンソルデータが同じであるか否かを表すことができる。データの記憶アドレスと比較すると、記述子の識別子がもっと簡単であり、記述子の識別子に基づいて同様に当該記述子を操作するプリアンブル命令が存在するか否かを判断する過程も、データの記憶アドレスに基づいてプリアンブル命令が存在するか否かを判断する過程と比較すると、もっと簡単で効果的であり、ここで、プリアンブル命令は第１の処理命令と依存関係を有する処理命令であってもよい。
【０７４５】
可能な一実現形態において、記述子の識別子および予め設定した実行条件に基づいて第１の処理命令が実行できるか否かを判断できる。例えば、レジスタを使用して記述子の識別子を記憶する場合、ここで、各レジスタはそれぞれ一つの記述子識別子を記憶し、同じレジスタをアクセスする複数の命令は命令投入順に従って実行できるため、命令キュー中の第１の処理命令の前の、同じレジスタをアクセスする命令がすべて完成されたか否かを判断できるし、同じレジスタをアクセスする命令の実行が完成された後、第１の処理命令が実行できると確定できる。予め設定した実行条件は、まず必要な記述子を登録すること、記述子の使用が完了されないと可取り消しできないことなどを含んでもよい。本発明は、予め設定した実行条件に対して限定しない。
【０７４６】
可能な一実現形態において、ステップＳ１１ｆは、前記記述子の識別子に基づいて、処理未完成の第２の処理命令が存在するか否かを判断することを含んでもよく、前記第２の処理命令は、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランドにおける前記記述子の識別子を有する処理命令を含み、第２の処理命令が存在しない場合、前記第１の処理命令が実行できると確定する。
【０７４７】
つまり、第１の処理命令のオペランドが記述子の識別子を含む場合、記述子の識別子に基づいて、命令キューが存在するか否かを第１の処理命令の前の、オペランドにおける当該記述子の識別子を有する第２の処理命令を確定でき、検索された第２の処理命令を第１の処理命令と依存関係を有する処理命令とする。第１の処理命令のオペランドにおける複数の記述子の識別子が有する場合、各々の記述子に対応する依存関係をそれぞれ判断でき、つまり、オペランドに有する複数の記述子の中の少なくとも一つの記述子の識別子のプリアンブル命令を、依存関係を有する第２の処理命令とする。
処理未完成の第２の処理命令が存在する場合、第１の処理命令は実行できないし、第２の処理命令が存在しない場合、第１の処理命令は実行できる。
【０７４８】
例を挙げると、第１の処理命令のオペランドが少なくとも一つの記述子の識別子を含む場合、未実行完成の第２の処理命令が存在するか否かを判断する場合、オペランドが含むすべての記述子の識別子を判断し、第１の処理命令のオペランド中に、第２の処理命令のオペランドにおける記述子の識別子と同一な記述子の識別子が少なくとも一つ存在する場合、第１の処理命令と第２の処理命令とが依存関係を有し、第２の処理命令の実行が未完成である場合、第１の処理命令を実行できない。
【０７４９】
例えば、第１の処理命令がＡＤＤ；ＴＲ１０；ＴＲ１１；ＴＲ１２であり、第２の処理命令がＡＤＤ；ＴＲ１０；ＴＲ１１；ＴＲ１２である場合、第１の処理命令と第２の操作命令のオペランドにおける記述子の識別子が完全に同一であると、第１の処理命令と第２の処理命令とが依存関係を有する。第２の処理命令の実行が未完成である場合、第１の処理命令を実行できない。
【０７５０】
第１の処理命令がＡＤＤ；ＴＲ１０；ＴＲ１１；ＴＲ１３であり、第２の処理命令がＡＤＤ；ＴＲ１０；ＴＲ１１；ＴＲ１２である場合、第１の処理命令と第２の操作命令のオペランド中で二つの記述子の識別子（ＴＲ１０和ＴＲ１１）が同一であると、第１の処理命令と第２の処理命令とが依存関係を有する。第２の処理命令の実行が未完成である場合、第１の処理命令を実行できない。
【０７５１】
第１の処理命令がＡＤＤ；ＴＲ１０；ＴＲ１２；ＴＲ１３であり、第２の処理命令がＡＤＤ；ＴＲ１０；ＴＲ１４；ＴＲ１５である場合、第１の処理命令と第２の操作命令のオペランド中で一つの記述子の識別子（ＴＲ１０）が同一であると、第１の処理命令と第２の処理命令とが依存関係を有する。第２の処理命令の実行が未完成である場合、第１の処理命令を実行できない。
【０７５２】
第１の処理命令がＡＤＤ；ＴＲ１０；ＴＲ１１；ＴＲ１２であり、第２の処理命令がＡＤＤ；ＴＲ１３；ＴＲ１４；ＴＲ１５である場合、第１の処理命令と第２の操作命令のオペランドにおける記述子の識別子が完全に異なると、第１の処理命令と第２の処理命令とが依存関係を有さない。第２の処理命令の実行が未完成である場合、第１の処理命令を実行できる。
【０７５３】
第１の処理命令がＳＵＭ；ＴＲ１０であり、第２の処理命令がＳＵＭ；ＴＲ１０である場合、第１の処理命令と第２の操作命令のオペランドにおける記述子の識別子が完全に同一であると、第１の処理命令と第２の処理命令とが依存関係を有する。第２の処理命令の実行が未完成である場合、第１の処理命令を実行できない。
【０７５４】
このような方式によって、記述子の識別子に基づいて命令が実行できるか否かを直接判断でき、命令に含まれたオペランドのベースアドレスおよび操作範囲を複数回取得して、命令中のオペランドのデータアドレスおよび操作範囲を計算し得る必要がなく、プロセッサによる命令が実行できるか否かの判断の複雑度を低下し、命令中のオペランドのデータアドレスの分析過程を簡略化して、プロセッサの実行効率を向上させることができる。
可能な一実現形態において、前記第１の処理命令および前記第２の処理命令の中の少なくとも一つは、前記記述子に対する書き込み操作を含む。
【０７５５】
例えば、第１の処理命令が記述子ＴＲ２に対する読み取り命令であり、第２の処理命令も記述子ＴＲ２に対する読み取り命令であると、すなわち、第１の処理命令と第２の処理命令がいずれも記述子ＴＲ２に対する書き込み操作を含まないと、第１の処理命令を実行できる。第２の処理命令がＴＲ２に対する書き込み命令であると、第２の処理命令の処理が未完成である場合、第１の処理命令を実行できない。
【０７５６】
このような方式によって、一つの記述子が複数の命令操作を同時に許可することによって、命令の同時実行効率を向上させて、プロセッサの処理効率を向上させることができる。
【０７５７】
可能な一実現形態において、前記第１の処理命令のオペランドは、少なくとも一つの記述子の識別子を含んでもよく、ステップＳ１１ｆは、前記少なくとも一つの記述子の識別子に基づいて、登録状態または未登録状態を含む、各記述子の第１の状態を、それぞれ確定することと、各記述子の第１の状態がいずれも既に登録状態である場合、前記第１の処理命令が実行できると確定することと、を含んでもよい。つまり、オペランドが含むすべての記述子の状態がいずれも既に登録である場合、第１の処理命令は実行できる。
【０７５８】
例えば、第１の処理命令のオペランドは、二つの記述子の識別子ＴＲ３およびＴＲ４を含む。記述子の識別子ＴＲ３およびＴＲ４に基づいて、ＴＲ３およびＴＲ４の状態（既に登録または未登録）を確定でき、ＴＲ３およびＴＲ４中の少なくとも一つの状態が未登録である場合、第１の処理命令を実行できないし、このとき、記述子登録命令を呼び出してＴＲ３及び／又はＴＲ４を登録でき、登録が成功した後にＴＲ３及び／又はＴＲ４の状態を既に登録に変更する。記述子ＴＲ３およびＴＲ４の状態がいずれも既に登録である場合、第１の処理命令を実行できる。
【０７５９】
可能な一実現形態において、記述子の第１の状態は、様々な表現方式を有してもよい。例えば、記述子中で第１のフラグビットを設定して第１の状態を表わすことができ、例えば、レジスタに記述子の識別子を記憶でき、レジスタの最上位を第１のフラグビットとして使用し、上位から始めて記述子の関連情報を記憶する。状態対応表を設定してもよく、記述子の第１の状態を状態対応表に書き込む。当業者は、実際の必要に従って第１の状態の表現方式を設定でき、本発明はこれに対して限定しない。
【０７６０】
このような方式によって、記述子の第１の状態に基づいて命令が実行できるか否かを判断することによって、プロセッサによる命令が実行できるか否かの判断の複雑度を低下させた。取り消し操作を例にすると、当該記述子が間もなく取り消しされる場合、当該状態を変更するだけで操作を完成でき、記述子の関連記憶領域をクリアする必要がなく、また、他の記述子がこの空間を使用する場合、当該領域を直接上書きすればよい。演算操作を例にすると、まず、当該オペレータの状態を直接判断し、当該オペレータが無効である場合、第１の状態によって当該命令が実行できないことを判断することによって、さらなる判断を実行することなく当該命令をブロックできる。
【０７６１】
可能な一実現形態において、前記第１の処理命令のオペランドは、少なくとも一つの記述子の識別子を含んでもよく、ステップＳ１１ｆは、前記少なくとも一つの記述子の識別子に基づいて、操作可能状態または操作不可状態を含む、各記述子の第２の状態を、それぞれ確定することと、各記述子の第２の状態がいずれも操作可能状態である場合、前記第１の処理命令が実行できると確定することと、を含んでもよい。
【０７６２】
例を挙げると、第１の処理命令のプリアンブル命令が当前記述子に対して操作を実行している（例えば、書き込みまたは読み取り）場合、記述子の現在状態が操作不可状態である。当該状態において、第１の処理命令を実行することができなく、第１の処理命令をブロックまたはキャッシュできる。逆に、当前記述子に対して操作を実行するプリアンブル命令がない場合、記述子の現在状態を操作可能状態に設定できる。当該状態において、第１の処理命令を実行できる。
【０７６３】
可能な一実現形態において、当該記述子を操作するプリアンブル命令が二つ以上である場合、操作可能状態を「０」で表し、操作不可状態を「１」で表し、すべてのプリアンブル命令の操作が完了された後に、第２の状態のフラグビット置が「０」であり、そうではない場合は「１」であるし、または、操作可能状態を「０」で表し、操作不可状態を「Ｎ」で表し、Ｎは操作当該記述子のプリアンブル命令の数であり、フラグビットの値が０になるまでに、一つのプリアンブル命令の操作が完了されるとＮ-１させ、当該記述子の第２の状態が操作可能状態になる。本発明は、状態の具体的な表現方式に対して限定しない。
【０７６４】
可能な一実現形態において、記述子の第２の状態は、操作可能状態または操作不可状態を含んでもよく、ここで、第２の状態は、様々な方式によって表すことができる。例えば、記述子に第２のフラグビットを設定することで第２の状態を表してもよいし、記述子の第２の状態を状態対応表に書き込んでもよい。ここで、状態対応表をレジスタに記憶して、ハードウェア方式によって状態対応表における第１の状態および第２の状態に対する判断を実現できる。当業者は、実際の必要に従って第２の状態の表現方式を設定でき、本発明はこれに対して限定しない。
【０７６５】
このような方式によって、記述子の第２の状態に基づいて命令が操作できるか否かを判断することによって、プロセッサによる命令操作できるか否かの判断の複雑度を低下させることができる。演算操作を例にすると、当該命令に関する記述子の第２の状態が操作可能状態であるか否かを直接判断し、当該命令に関する操作データに対してオペランドのベースアドレスおよび操作範囲を取得する必要がなくなって、演算の実際操作領域を取得してから、領域間が重なるか否かを判断して、当該命令が操作可能状態であるか否かの結果を得る。
【０７６６】
可能な一実現形態において、ステップＳ１１ｆによって第１の処理命令が実行できるかを確定する場合、ステップＳ１２ｆにおいて、前記記述子の識別子に基づいて、前記第１の処理命令に対応するデータ処理を実行できる。つまり、第１の処理命令が実行できる場合、記述子の識別子に基づいて、記述子が示すテンソルデータのデータアドレスを計算して得た後に、データアドレスからテンソルデータを読み取り、第１の処理命令に対応するデータ処理を実行できる。
【０７６７】
可能な一実現形態において、記述子の識別子に基づいて、記述子が示すテンソルデータのデータアドレスを直接得ることができ、例えば、記述子の内容がテンソルデータのデータアドレスである場合、計算せずに、記述子記憶空間からデータアドレスを直接読み取り、データアドレスからテンソルデータ読み取って、第１の処理命令に対応するデータ処理を実行できる。
【０７６８】
可能な一実現形態において、ステップＳ１２ｆは、前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得することと、前記記述子の内容に基づいて、前記オペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することと、前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することと、を含んでもよい。
【０７６９】
本実施例において、第１の処理命令が実行できる場合、オペランドにおける記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得できる。つまり、記述子の識別子に基づいて、記述子の記述子記憶空間における位置を確定し、さらに記述子記憶空間から記述子の内容を取得できる。したがって、ソフトウェアプログラミングの複雑度を低下させることができ、ソフトウェア側でハードウェア側のデータ記憶方式を了解する必要がなく、ハードウェアの実際の記憶アドレスを計算する必要がない同時に、命令の複雑度を低下させることができ、複数回使用したパラメータ（例えば、記述子中の内容）を使用するたびに命令に書き込む必要がなくなった。
【０７７０】
記述子の内容を取得した後、記述子の内容に基づいて、オペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定できる。ここで、データアドレスの計算は、ハードウェアによって自動的に完成するか、または、ソフトウェア方式によって実現できる。記述子の内容が異なる場合、オペランドに対応するデータのデータ記憶空間におけるデータアドレスの計算方式は互いに異なってもよい。本発明は、データアドレスの計算方式に対して限定しない。
【０７７１】
例えば、式（１）を使用して記述子の内容を表す場合、テンソルデータ中の任意の一つのデータ点に対して、そのデータ記述位置を(ｘ_ｑ、ｙ_ｑ)に設定すると、当該データ点のデータ記憶空間におけるデータアドレス
2021520591.tif 000050
は、以下の式（４）を使用して確定できる。
2021520591.tif 000051
【０７７２】
オペランドに対応するデータのデータ記憶空間におけるデータアドレスを得た後、データアドレスに基づいて、第１の処理命令に対応するデータ処理を実行できる。
【０７７３】
例を挙げると、第１の処理命令が演算命令ＡＤＤ；Ａ；Ｂである場合、オペランドＡとＢが記述子の識別子ＴＲ５およびＴＲ６をそれぞれ含むと、ＴＲ５およびＴＲ６に基づいて、記述子記憶空間から記述子ＴＲ５およびＴＲ６の内容（例えば、形状パラメータとアドレスパラメータ）それぞれ取得できるし、その後、記述子ＴＲ５およびＴＲ６の内容に基づいて、データＡとＢのデータアドレスをそれぞれ計算し、データＡのデータ記憶空間におけるアドレス１はＡＤＤＲ６４〜ＡＤＤＲ１２７であり、データＢのデータ記憶空間におけるアドレス２はＡＤＤＲ１０２３〜ＡＤＤＲ１０８７である。その後、アドレス１とアドレス２からデータをそれぞれ読み取り、加算（ＡＤＤ）演算を実行して、演算結果（Ａ＋Ｂ）を得ることができる。
【０７７４】
可能な一実現形態において、前記方法は、前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令における記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得することと、前記記述子の登録パラメータに基づいて、前記第１の処理命令が実行できるか否かを判断することと、前記第１の処理命令が実行できる場合、前記第１の処理命令を実行することと、さらに含んでもよい。
【０７７５】
本実施例において、第１の処理命令が記述子登録命令である場合、第１の処理命令から記述子の登録パラメータを取得でき、ここで、登録パラメータは、記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含んでもよいし、その後、記述子の登録パラメータに基づいて、第１の処理命令が実行できるか否かを判断すると、記述子の登録パラメータに基づいて、記述子が登録できるか否かを判断できる。例えば、記述子の識別子が占用されているかまたは記述子記憶空間が不足な場合、記述子の登録に成功できない。当業者は、実際の状況に従って登録パラメータに対する判断を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０７７６】
可能な一実現形態において、前記記述子の登録パラメータに基づいて、前記第１の処理命令が実行できるか否かを判断することは、前記記述子の識別子が占用されていないこと、前記記述子の内容を記憶する第１の記憶領域が占用されていないこと、および、前記記述子が示すテンソルデータを記憶する第２の記憶領域が占用されていないことの中の少なくとも一つを満たす場合、前記第１の処理命令が実行できると確定することを含んでもよい。つまり、登録パラメータが、記述子の識別子が占用されていないこと、第１の記憶領域が占用されていないこと、または、第２の記憶領域が占用されていないことの中の少なくとも一つを満たす場合、第１の処理命令を実行できる。
【０７７７】
第１の処理命令が実行できる場合、前記第１の処理命令を実行する（記述子登録命令）。例えば、まず記述子の内容の記述子記憶空間における第１の記憶領域、および、記述子が示すテンソルデータの内容のデータ記憶領域における第２の記憶領域を確定し、その後、登録パラメータおよび第２の記憶領域に基づいて、記述子の内容を確定でき、すなわち、記述子と第２の記憶領域との間の対応関係を構築し、その後、記述子の内容を第１の記憶領域に記憶して、記述子の登録を完成できる。
【０７７８】
可能な一実現形態において、前記方法は、前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令の記述子の識別子に基づいて、処理未完成の第４の処理命令であって、命令キュー中の、オペランドが前記記述子の識別子を含む処理命令である第４の処理命令が、存在するか否かを判断することと、処理未完成の第４の処理命令が存在しない場合、前記第１の処理命令を実行することと、をさらに含む。
【０７７９】
本実施例において、第１の処理命令が記述子取り消し命令である場合、記述子の識別子に基づいて命令キュー中にオペランドが記述子の識別子を含む第４の処理命令があるか否かを判断し、処理未完成の第４の処理命令が存在する場合、第１の処理命令を実行できないし、処理未完成の第４の処理命令が存在しない場合、第１の処理命令である記述子取り消し命令を実行でき、このとき、記述子の記述子記憶空間における記憶領域、および、記述子が示すデータのデータ記憶空間における記憶領域をそれぞれ解放できる。
【０７８０】
例を挙げると、第１の処理命令が記述子取り消し命令であり、取り消しの記述子の識別子がＴＲ７であると、まず、命令キュー中でオペランドがＴＲ７を含む第４の処理命令があるか否かを検索し、例えば、命令キュー中にＴＲ７に対する演算命令および読み取り命令のような二つの第４の処理命令があり、その後、この二つの第４の処理命令（ＴＲ７に対する演算命令および読み取り命令）の実行が完成されたか否かを判断し、この二つの第４の処理命令の実行がいずれも完成されていない場合、第１の処理命令（記述子取り消し命令）を実行できないし、二つの第４の処理命令の実行がいずれも完成された場合、第１の処理命令は実行できる。その後、第１の処理命令（記述子取り消し命令）を実行して、ＴＲ７の記述子記憶空間における記憶領域、および、ＴＲ６が示すデータのデータ記憶空間における記憶領域をそれぞれ解放できる。
【０７８１】
可能な一実現形態において、第１の処理命令が記述子取り消し命令である場合、記述子の識別子に基づいて、記述子の第１の状態が既に登録されているか否かを確定できる。記述子の第１の状態が既に登録である場合、第１の処理命令（記述子取り消し命令）を実行できる。逆に、第１の処理命令（記述子取り消し命令）を実行できない。すなわち、オペランドの記述子が既に登録状態である場合にのみ、記述子取り消し命令を実行できる。
【０７８２】
可能な一実現形態において、前記方法は、前記第１の処理命令が実行できない場合、前記第１の処理命令をブロックまたはキャッシュすることをさらに含んでもよい。つまり、第１の処理命令が実行できない場合、第１の処理命令をブロックし、第２の処理命令の実行が完成されるまでに、第１の処理命令およびその後の他の命令の実行を一時停止してから、第２の処理命令の実行が完成され、第１の処理命令およびその後の他の命令を実行できるし、さらに、第１の処理命令をキャッシュすることができ、第１の処理命令を予め設定したキャッシュ空間に記憶して、他の命令の実行に影響を及ぼさないようし、第２の処理命令の実行が完成された後に、キャッシュ空間における第１の処理命令を実行できる。本発明は、第１の処理命令が実行できない場合の処理方式に対して限定しない。
【０７８３】
本発明の実施例のデータ処理方法によると、既に復号化された処理命令のオペランドが記述子の識別子を含む場合、記述子の識別子に基づいて命令が実行できるか否かを判断し、命令が実行できる場合、記述子の識別子に基づいて命令に対応するデータ処理を実行することによって、プロセッサによる命令が実行できるか否かの判断の複雑度を低下させて、プロセッサの処理効率を向上させることができる。
【０７８４】
上記の実施例を例としてデータ処理方法を上記に説明したが、当業者は本発明がこれに限定されないことを理解できることを説明する必要がある。実際に、ユーザは、本発明の技術案に合致する限り、完全に、個人の好み及び／又は実際の適用シナリオに従って各ステップを柔軟に設定できる。
図３ｆは、本発明の実施例に係るデータ処理装置を示すブロック図である。図３ｆに示されたように、前記データ処理装置は、
【０７８５】
復号化後の第１の処理命令のオペランドが、テンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記第１の処理命令が実行できるか否かを判断するための判断モジュール３１ｆと、
【０７８６】
前記第１の処理命令が実行できる場合、前記記述子の識別子に基づいて、前記第１の処理命令に対応するデータ処理を実行するための実行モジュール３２ｆと、を備える。
【０７８７】
可能な一実現形態において、前記実行モジュール３２ｆは、前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得するための内容取得サブモジュールと、前記記述子の内容に基づいて、前記オペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定するためのアドレス確定サブモジュールと、前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行するための第１の実行サブモジュールと、備える。
【０７８８】
可能な一実現形態において、前記判断モジュール３１ｆは、前記記述子の識別子に基づいて、処理未完成の第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランドに前記記述子の識別子を有する処理命令を含む第２の処理命令が、存在するか否かを判断するための命令判断サブモジュールと、第２の処理命令が存在しない場合、前記第１の処理命令が実行できると確定するための第１の実行確定サブモジュールと、を備える。
可能な一実現形態において、前記第１の処理命令および前記第２の処理命令の中の少なくとも一つは、前記記述子に対する書き込み操作を含む。
【０７８９】
可能な一実現形態において、前記第１の処理命令のオペランドは、少なくとも一つの記述子の識別子を含み、ここで、前記判断モジュール３１ｆは、前記少なくとも一つの記述子の識別子に基づいて、登録状態または未登録状態を含む、各記述子の第１の状態を、それぞれ確定するための第１の状態確定サブモジュールと、各記述子の第１の状態がいずれも既に登録状態である場合、前記第１の処理命令が実行できると確定するための第２の実行確定サブモジュールと、を備える。
【０７９０】
可能な一実現形態において、前記第１の処理命令のオペランドは、少なくとも一つの記述子の識別子を含み、ここで、前記判断モジュール３１ｆは、前記少なくとも一つの記述子の識別子に基づいて、操作可能状態または操作不可状態を含む、各記述子の第２の状態を、それぞれ確定するための第２の状態確定サブモジュールと、各記述子の第２の状態がいずれも操作可能状態である場合、前記第１の処理命令が実行できると確定するための第３の実行確定サブモジュールと、を備える。
【０７９１】
可能な一実現形態において、前記装置は、前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令における記述子の識別子に基づいて、処理未完成の第４の処理命令であって、命令キューの、オペランドが前記記述子の識別子を含む処理命令である第４の処理命令が、存在するか否かを判断するための取り消し判断モジュールと、処理未完成の第４の処理命令が存在しない場合、前記第１の処理命令を実行するための取り消し実行モジュールと、をさらに備える。
【０７９２】
可能な一実現形態において、前記装置は、前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令の記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得するためのパラメータ取得モジュールと、前記記述子の登録パラメータに基づいて、前記第１の処理命令が実行できるか否かを判断するための登録判断モジュールと、前記第１の処理命令が実行できる場合、前記第１の処理命令を実行するための登録実行モジュールと、さらに備える。
【０７９３】
可能な一実現形態において、前記登録判断モジュールは、前記記述子の識別子が占用されていないこと、前記記述子の内容を記憶する第１の記憶領域が占用されていないこと、および、前記記述子が示すテンソルデータを記憶する第２の記憶領域が占用されていないことの中の少なくとも一つを満たす場合、前記第１の処理命令が実行できると確定するための条件判断サブモジュールを備える。
【０７９４】
可能な一実現形態において、前記装置は、前記第１の処理命令が実行できない場合、前記第１の処理命令をブロックまたはキャッシュするための実行制御モジュールをさらに備える。
【０７９５】
可能な一実現形態において、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０７９６】
可能な一実現形態において、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０７９７】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含み、ここで、前記テンソルデータの形状パラメータは、前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
可能な一実現形態において、人工知能チップをさらに開示し、当該人工知能チップは上記のデータ処理装置を含む。
Ａ１、データ処理方法であって、前記方法は、
【０７９８】
復号化後の第１の処理命令のオペランドが、テンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記第１の処理命令が実行できるか否かを判断することと、
前記第１の処理命令が実行できる場合、前記記述子の識別子に基づいて、前記第１の処理命令に対応するデータ処理を実行することと、を含む。
Ａ２、請求項Ａ１に記載の方法であって、前記記述子の識別子に基づいて、前記第１の処理命令に対応するデータ処理を実行することは、
前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得することと、
前記記述子の内容に基づいて、前記オペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定することと、
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行することと、を含む。
Ａ３、請求項Ａ１に記載の方法であって、前記記述子の識別子に基づいて、前記第１の処理命令が実行できるか否かを判断することは、
【０７９９】
前記記述子の識別子に基づいて、処理未完成の第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランドに前記記述子の識別子を有する処理命令を含む第２の処理命令が、存在するか否かを判断することと、
第２の処理命令が存在しない場合、前記第１の処理命令が実行できると確定することと、を含む。
Ａ４、請求項Ａ３に記載の方法であって、前記第１の処理命令および前記第２の処理命令の中の少なくとも一つは、前記記述子に対する書き込み操作を含む。
Ａ５、請求項Ａ１に記載の方法であって、前記第１の処理命令のオペランドは、少なくとも一つの記述子の識別子を含み、
ここで、前記記述子の識別子に基づいて、前記第１の処理命令が実行できるか否かを判断することは、
前記少なくとも一つの記述子の識別子に基づいて、登録状態または未登録状態を含む、各記述子の第１の状態を、それぞれ確定することと、
各記述子の第１の状態がいずれも既に登録状態である場合、前記第１の処理命令が実行できると確定することと、を含む。
Ａ６、請求項Ａ１に記載の方法であって、前記第１の処理命令のオペランドは、少なくとも一つの記述子の識別子を含み、
ここで、前記記述子の識別子に基づいて、前記第１の処理命令が実行できるか否かを判断することは、
前記少なくとも一つの記述子の識別子に基づいて、操作可能状態または操作不可状態を含む、各記述子の第２の状態を、それぞれ確定することと、
各記述子の第２の状態がいずれも操作可能状態である場合、前記第１の処理命令が実行できると確定することと、を含む。
Ａ７、請求項Ａ１乃至Ａ６の中のいずれか１項に記載の方法であって、前記方法は、
【０８００】
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令の記述子の識別子に基づいて、処理未完成の第４の処理命令であって、命令キュー中の、オペランドが前記記述子の識別子を含む処理命令である第４の処理命令が、存在するか否かを判断することと、
処理未完成の第４の処理命令が存在しない場合、前記第１の処理命令を実行することと、をさらに含む。
Ａ８、請求項Ａ１乃至Ａ７の中のいずれか１項に記載の方法であって、前記方法は、
【０８０１】
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令の記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得することと、
前記記述子の登録パラメータに基づいて、前記第１の処理命令が実行できるか否かを判断することと、
前記第１の処理命令が実行できる場合、前記第１の処理命令を実行することと、さらに含む。
Ａ９、請求項Ａ８に記載の方法であって、前記記述子の登録パラメータに基づいて、前記第１の処理命令が実行できるか否かを判断することは、
【０８０２】
前記記述子の識別子が占用されていないこと、前記記述子の内容を記憶する第１の記憶領域が占用されていないこと、および、前記記述子が示すテンソルデータを記憶する第２の記憶領域が占用されていないことの中の少なくとも一つを満たす場合、前記第１の処理命令が実行できると確定することを含む。
Ａ１０、請求項Ａ１乃至Ａ９の中のいずれか１項に記載の方法であって、前記方法は、
前記第１の処理命令が実行できない場合、前記第１の処理命令をブロックまたはキャッシュすることをさらに含む。
Ａ１１、請求項Ａ１に記載の方法であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０８０３】
Ａ１２、請求項Ａ１１に記載の方法であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０８０４】
Ａ１３、請求項Ａ１２に記載の方法であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０８０５】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ１４、データ処理装置であって、前記装置は、
【０８０６】
復号化後の第１の処理命令のオペランドが、テンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記第１の処理命令が実行できるか否かを判断するための判断モジュールと、
【０８０７】
前記第１の処理命令が実行できる場合、前記記述子の識別子に基づいて、前記第１の処理命令に対応するデータ処理を実行するための実行モジュールと、を備える。
Ａ１５、請求項Ａ１４に記載の装置であって、前記実行モジュールは、
前記記述子の識別子に基づいて、記述子記憶空間から前記記述子の内容を取得するための内容取得サブモジュールと、
前記記述子の内容に基づいて、前記オペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定するためのアドレス確定サブモジュールと、
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行するための第１の実行サブモジュールと、備える。
Ａ１６、請求項Ａ１４に記載の装置であって、前記判断モジュールは、
【０８０８】
前記記述子の識別子に基づいて、処理未完成の第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランドに前記記述子の識別子を有する処理命令を含む第２の処理命令が、存在するか否かを判断するための命令判断サブモジュールと、
第２の処理命令が存在しない場合、前記第１の処理命令が実行できると確定するための第１の実行確定サブモジュールと、を備える。
【０８０９】
Ａ１７、請求項Ａ１６に記載の装置であって、前記第１の処理命令および前記第２の処理命令の中の少なくとも一つは、前記記述子に対する書き込み操作を含む。
Ａ１８、請求項Ａ１４に記載の装置であって、前記第１の処理命令のオペランドは、少なくとも一つの記述子の識別子を含み、
ここで、前記判断モジュールは、
【０８１０】
前記少なくとも一つの記述子の識別子に基づいて、登録状態または未登録状態を含む、各記述子の第１の状態を、それぞれ確定するための第１の状態確定サブモジュールと、
各記述子の第１の状態がいずれも既に登録状態である場合、前記第１の処理命令が実行できると確定するための第２の実行確定サブモジュールと、を備える。
Ａ１９、請求項Ａ１４に記載の装置であって、前記第１の処理命令のオペランドは、少なくとも一つの記述子の識別子を含み、
ここで、前記判断モジュールは、
【０８１１】
前記少なくとも一つの記述子の識別子に基づいて、操作可能状態または操作不可状態を含む、各記述子の第２の状態を、それぞれ確定するための第２の状態確定サブモジュールと、
各記述子の第２の状態がいずれも操作可能状態である場合、前記第１の処理命令が実行できると確定するための第３の実行確定サブモジュールと、を備える。
Ａ２０、請求項Ａ１４乃至Ａ１９の中のいずれか１項に記載の装置であって、前記装置は、
【０８１２】
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令中の記述子の識別子に基づいて、処理未完成の第４の処理命令であって、命令キュー中の、オペランドが前記記述子の識別子を含む処理命令である第４の処理命令が、存在するか否かを判断するための取り消し判断モジュールと、
処理未完成の第４の処理命令が存在しない場合、前記第１の処理命令を実行するための取り消し実行モジュールと、をさらに備える。
Ａ２１、請求項Ａ１４乃至Ａ２０の中のいずれか１項に記載の装置であって、前記装置は、
【０８１３】
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令の記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得するためのパラメータ取得モジュールと、
前記記述子の登録パラメータに基づいて、前記第１の処理命令が実行できるか否かを判断するための登録判断モジュールと、
前記第１の処理命令が実行できる場合、前記第１の処理命令を実行するための登録実行モジュールと、さらに備える。
Ａ２２、請求項Ａ２１に記載の装置であって、前記登録判断モジュールは、
【０８１４】
前記記述子の識別子が占用されていないこと、前記記述子の内容を記憶する第１の記憶領域が占用されていないこと、および、前記記述子が示すテンソルデータを記憶する第２の記憶領域が占用されていないことの中の少なくとも一つを満たす場合、前記第１の処理命令が実行できると確定するための条件判断サブモジュールを備える。
Ａ２３、請求項Ａ１４乃至Ａ２２の中のいずれか１項に記載の装置であって、前記装置は、
前記第１の処理命令が実行できない場合、前記第１の処理命令をブロックまたはキャッシュするための実行制御モジュールをさらに備える。
Ａ２４、請求項Ａ１４に記載の装置であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０８１５】
Ａ２５、請求項Ａ２４に記載の装置であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０８１６】
Ａ２６、請求項Ａ２５に記載の装置であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０８１７】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ２７、人工知能チップであって、前記チップは、請求項Ａ１４乃至Ａ２６の中のいずれか１項に記載のデータ処理装置を備える。
Ａ２８、電子デバイスであって、前記電子デバイスは、請求項Ａ２７に記載の人工知能チップを備える。
【０８１８】
Ａ２９、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ２７に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０８１９】
Ａ３０、請求項Ａ２９に記載のボードカードであって、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップにバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、
前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０８２０】
人工知能技術の継続的な発展に伴って、処理する必要のあるデータ量とデータの次元とがいずれも継続的に増加している。関連技術において、複数の操作が同じ記憶領域に対して操作を行う場合、前の一つの操作が完了するまで待機してから、後の一つの操作を実行する必要があり、プロセッサの処理効率を低下させた。
本発明の実施例によると、プロセッサ操作方法が提供される。
図１ｇは、本発明の実施例に係るプロセッサ操作方法を示すフローチャートである。前記プロセッサ操作方法は、プロセッサに適用できる。
図１ｇに示されたように、当該プロセッサ操作方法は、以下のステップを含む。
【０８２１】
ステップＳ１１ｇにおいて、第１の操作が少なくとも一つの細粒度領域を含む目標記憶領域に対する操作である場合、実行されている、前記目標記憶領域に対する第２の操作が、存在するか否かを判断する。
【０８２２】
ここで、第１の操作は、読み取り操作または書き込み操作であってもよく、類似に、第２の操作も、読み取り操作または書き込み操作であってもよい。本発明は、第１の操作と第２の操作の具体的なタイプに対して限定しない。一つの操作は、一つまたは複数のオペランドを含んでもよい。目標記憶領域は、第１の操作と第２の操作の一つまたは複数のオペランドに対応する記憶領域であってもよい。目標記憶領域が位置する記憶領域全体は、プロセッサの内部メモリ（例えば、オンチップキャッシュまたはレジスタなど）であってもよいし、プロセッサに接続された外部メモリ（例えば、オフチップメモリなど）であってもよい。
【０８２３】
可能な一実現形態において、第１の操作及び／又は第２の操作は、一つまたは複数のオペランドを含んでもよく、目標記憶領域は、第１の操作および第２の操作の中の任意のオペランドに対応する記憶領域であってもよい。目標記憶領域は、第１の操作の中の少なくとも一つのオペランド、および、第２の操作の中の少なくとも一つのオペランドに、共同に対応する記憶領域である。例えば、第１の操作の第１のオペランドおよび第２の操作の第２のオペランドの場合、第１のオペランドは、第１の操作中の任意のオペランドであってもよく、第２のオペランドは、第２の操作中の任意のオペランドであってもよい。第１のオペランドおよび第２のオペランドが同一のオペランドである場合、目標記憶領域は、第１のオペランドの記憶領域または第２の操作の記憶領域であってもよい。第１のオペランドの記憶領域と第２のオペランドの記憶領域とが重なる領域である場合、目標記憶領域は重なる領域である。
【０８２４】
可能な一実現形態において、目標記憶領域は、少なくとも一つの細粒度領域を含む。ここで、細粒度領域のサイズ及び／又は数の確定方式は、ハードウェア設計に基づいて確定する方式、目標オペランドの関連操作に基づいて確定する方式、操作の関連パラメータに基づいて定義する方式の中の一つまたは任意の組み合わせを含んでもよい。ここで、ハードウェア設計に基づいて確定する方式は、ハードウェア設計のときに細粒度領域のサイズを確定し、例えば、記憶領域の１行または複数行を一つの細粒度領域に確定する。目標オペランドの関連操作に基づいて確定する方式は、目標オペランドの処理要件、記憶方式、または、伝送方式などに基づいて確定する方式を含み、例えば、目標オペランドが一つの２次元行列データであり、その規模がＭ＊Ｎ（Ｍ、Ｎは、いずれも正の整数である）であると、記憶に占有されるバイト数が、１行Ｍバイトが合計Ｎ行あることを意味し、Ｍバイトが一つの細粒度領域であり、当該目標オペランドに対応する目標記憶領域がＮ個の細粒度領域を含むと、確定できる。操作の関連パラメータに基づいて定義する方式は、操作に携える細粒度のサイズ及び／又は数に基づいて、目標記憶領域を複数の細粒度領域に区分ける方式を含む。第１の操作の第１のオペランドと第２の操作の第２のオペランドとが当該目標記憶領域に共同に対応される場合、第１の操作と第２の操作は目標記憶領域で複数の細粒度領域を区分けして、本発明の実施例の方法を使用できる。
【０８２５】
複数の細粒度領域のサイズは同一であってもよいし、互いに異なってもよいことを説明する必要がある。例えば、第１の操作は、第１の細粒度のサイズ（各細粒度領域のデータバイト数）を携えてもよく、当該第１の細粒度のサイズを６４バイトに設定してもよいし、第２の操作は、第２の細粒度サイズ（例えば、各細粒度領域のデータバイト数）を携えてもよく、当該第２の細粒度のサイズを２５６バイトに設定してもよい。すなわち、第１の操作を実行するときには、６４バイト毎を一つの細粒度領域に設定し、第２の操作を実行するときには、２５６バイト毎を一つの細粒度領域に設定する。また、例えば、第１の操作と第２の操作が携えた細粒度サイズ（例えば、各細粒度領域のデータバイト数）は、いずれも５１２バイトである。同様に、第１の操作は第１の細粒度の数（例えば、４個に設定する）を携えてもよく、第２の操作は第２の細粒度の数（例えば、８個に設定する）を携えてもよい。すなわち、第１の操作を実行するときには、目標記憶領域を４個の細粒度領域に区分けし、第２の操作を実行するときには、目標記憶領域を８個の細粒度領域に区分けする。操作中で細粒度のサイズと数のような二つのパラメータを同時に携えてもよいことを理解できる。要件によって各細粒度領域のサイズ及び／又は数を確定でき、本発明は、これに対して限定しない。
【０８２６】
可能な一実現形態において、当該目標記憶領域の占用状態に基づいて、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断してもよい。例えば、プロセッサは、占用状態リストを照会することによって目標記憶領域が占用されているか否かを判断でき、占用されていると、判断結果は、実行されている、目標記憶領域に対する第２の操作が、存在することである。ここで、当該占用状態リストは、予め設定してメモリに記憶したものであってもよいし、プロセッサが特定のタスクを実行する前に生成して、当該タスクが完成された後にログオフするものであってもよい。当各記憶領域の占用状態に変化が発生すると、プロセッサは当該占用状態リストの内容を更新して各記憶領域の占用状態を記録する。
【０８２７】
可能な一実現形態において、各操作の実行状態を照会することで、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断してもよい。例えば、各操作のオペランドに対応する記憶領域を記録し、各操作の実行状態を記録できる。目標記憶領域に対する操作の実行状態が未完成であると、判断結果は、実行されている目標操作領域に対する第２の操作が、存在することである。また、オペランドの占用状態を判断することで、オペランドに対応する目標記憶領域が占用されているか否かを確定することによって、実行されている、目標操作領域に対する第２の操作が、存在するか否かを確定できる。本発明は、実行されている、目標操作領域に対する第２の操作が、存在するか否かを判断する判断根拠に対して限定しない。
【０８２８】
可能な一実現形態において、目標記憶領域に対する第１の操作を実行する前に、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断してもよい。
【０８２９】
可能な一実現形態において、第１の操作の目標記憶領域に対する実行過程で、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断してもよい。
【０８３０】
ステップＳ１２ｇにおいて、前記第２の操作が存在する場合、前記第１の操作の現在の対象となる第１の細粒度領域と前記第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断する。
【０８３１】
第１の細粒度領域と第２の細粒度領域は、目標記憶領域の複数の細粒度領域の任意の細粒度領域であってもよい。目標記憶領域に対する操作が目標記憶領域の各細粒度領域に対する操作であることを理解できる。例えば、目標記憶領域Ａは、第１行から第１０行であり、各々の１行は、一つの細粒度領域であり、目標記憶領域Ａは、１０個の細粒度領域を含む。目標記憶領域Ａに対する書き込み操作を、これら１０個の細粒度領域に対する書き込み操作として見なることができる。その実行過程は、１番目の細粒度領域（第１行）を書き込み、１番目の細粒度領域の書き込みを完成した後、２番目の細粒度領域（第２行）を書き込み、２番目の細粒度領域の書き込みを完成した後、３番目の細粒度領域（第３行）を書き込み、等々、１０番目の細粒度領域（第１０行）の書き込みを完成して、目標記憶領域Ａの書き込み操作を完成する。
【０８３２】
目標記憶領域に対する操作がある場合、操作の実行に伴い、目標記憶領域の細粒度領域の状態は、操作が既に完成された状態、操作されている状態、および、操作されていない状態を含んでもよい。操作の現在の対象となる細粒度領域の状態は、操作されている状態である。したがって、目標記憶領域に対する操作が存在すると、目標記憶領域の一つの細粒度領域に対する操作が存在し、操作されている細粒度領域が操作の現在の対象となる細粒度領域であると見なすことができる。
【０８３３】
可能な一実現形態において、第１の操作の現在の対象となる第１の細粒度領域は、実行しようとする第１の操作の対象となる細粒度領域を含んでもよく、通常、１番目の細粒度領域である。実行されている第１の操作の現在の対象となる細粒度領域を含んでもよく、任意の一つの細粒度領域であってもよい。第２の操作の現在の対象となる第２の細粒度領域は、実行されている第２の操作の現在の対象となる細粒度領域であってもよく、任意の一つの細粒度領域であってもよい。
【０８３４】
可能な一実現形態において、目標記憶領域に対する第１の操作を実行する前に、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断する場合、第１の操作の現在の対象となる第１の細粒度領域が第１の操作が実行しようとする細粒度領域である。例えば、目標記憶領域に対する第１の操作を実行する前に、第１の操作の現在の対象となる第１の細粒度領域は、通常、目標記憶領域の１番目の細粒度領域である。このとき、第１の操作は、まだ第１の細粒度領域に対する操作を実行していない。実行されている第２の操作の現在の対象となる第２の細粒度領域は、第２の操作の実行プロセスに関連されてもよい。第２の操作の実行も開始したばかりであると、第２の細粒度領域は目標記憶領域の１番目の細粒度領域であってもよい。このとき、第１の細粒度領域と第２の細粒度領域とが重なる。第２の操作が１番目の細粒度領域の操作を既に完成し、現在の対象となる第２の細粒度領域がＰ番目の細粒度領域（Ｐは１よりも大きい整数である）であると、第１の細粒度領域と第２の細粒度領域とが重ならない。
【０８３５】
可能な一実現形態において、第１の操作の目標記憶領域に対する操作過程で、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断する場合、第１の操作の実行プロセスに基づいて第１の細粒度領域を確定し、第２の操作の実行プロセスに基づいて第２の細粒度領域を確定し、さらに、第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断できる。
【０８３６】
可能な一実現形態において、各操作の実行過程のテンポが一致していると、目標記憶領域に対する第１の操作を実行する前にのみ、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断し、且つ、第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断できる。ここで、テンポが一致していることは、細粒度領域のサイズが同じである場合、二つの操作の一つの細粒度領域に対する操作期間が同じであることを意味する。
【０８３７】
可能な一実現形態において、各操作の実行過程のテンポが不一致しているかまたは一致しているか否かを確定できないと、第１の操作の目標記憶領域に対する操作過程で、現在の対象となる第１の細粒度領域の操作を完成するたびに、続けて、実行されている、目標操作領域に対する第２の操作が、存在するか否かを判断し、続けて、第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断することによって、第１の操作を続けて実行できるか否かを確定できる。
【０８３８】
可能な一実現形態において、可物理アドレス、ポインター位置、細粒度領域識別子などに基づいて、第１の操作の現在の対象となる第１の細粒度領域と第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断する。例えば、各操作の現在の物理アドレスを記録し、第１の操作の現在の物理アドレスと第２の操作の現在の物理アドレス、および、物理アドレスと細粒度領域との間の対応関係に基づいて、第１の操作の現在の対象となる第１の細粒度領域、および、第２の操作の現在の対象となる第２の細粒度領域をそれぞれ確定し、さらに、第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断できる。物理アドレスは、細粒度領域の開始アドレス、終了アドレス、設定位置アドレス、または、リアルタイム操作アドレスの中の一つまたは任意の組み合わせを含んでもよい。また、例えば、各操作に対してポインターを設定し、ポインターが操作の現在の対象となる細粒度領域を指してもよい。第１の操作のポインター位置および第２の操作のポインター位置に基づいて、第１の操作の現在の対象となる第１の細粒度領域、および、第２の操作の現在の対象となる第２の細粒度領域をそれぞれ確定し、さらに、第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断できる。また、例えば、各細粒度領域に対して識別子を設定し、操作の現在の対象となる細粒度領域の識別子を記録することによって第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断してもよい。識別子は、文字、数字、または、記号の任意の組み合わせを含んでもよい。他の方式によっても第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断でき、本発明は、第１の細粒度領域と第２の細粒度領域との間が重なるか否かの判断根拠に対して限定しない。
ステップＳ１３ｇにおいて、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行する。
【０８３９】
可能な一実現形態において、第１の操作の現在の対象となる第１の細粒度領域と第２の操作の現在の対象となる第２の細粒度領域とが重ならないと、第１の細粒度領域が第２の操作が既に操作を完成した細粒度領域であってもよいし、第２の操作が操作する必要がない細粒度領域であってもよく、この場合、第１の操作の実行は第２の操作の操作過程および操作結果に影響を発生しなく、第１の操作を実行できる。
【０８４０】
本実施例によると、第１の操作の対象となる目標記憶領域が少なくとも一つの細粒度領域を含み、且つ、実行されている、目標記憶領域に対する第２の操作が、存在する場合、第１の操作の現在の対象となる第１の細粒度領域と第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断し、両者が重ならないと、第１の操作を実行する。このように、第１の操作と第２の操作は、現在の対象となる細粒度領域が重ならないと実行でき、第１の操作と第２の操作が同時に目標記憶領域に対して操作を実行することができるようにして、プロセッサの処理効率を向上させることができる。
【０８４１】
可能な一実現形態において、前記方法は、前記第１の細粒度領域と前記第２の細粒度領域とが重なる場合、前記第１の操作をブロックすることをさらに含んでもよい。
【０８４２】
可能な一実現形態において、第１の細粒度領域と第２の細粒度領域とが重なることは、第１の細粒度領域と第２の細粒度領域とが完全に重なることまたは一部重なることを含む。第１の細粒度領域と第２の細粒度領域とが重なる場合、第１の操作を実行すると、第１の操作の重なる一部の領域に対する操作が、第２の操作の実行に影響を及ぼして第２の操作の操作結果が正確にならない可能があり、第１の操作の実行にも影響を及ぼして第１の操作の操作結果が正確にならない可能もある。この場合、第１の操作をブロックし、すなわち第１の操作の実行を一時停止させることができ、第２の操作の、現在の対象となる第２の細粒度領域に対する操作が完成された後、第１の操作を実行できる。すなわち、第１の細粒度領域と第２の細粒度領域とが重ならないときに、第１の操作を実行する。
【０８４３】
本実施例において、第１の細粒度領域と第２の細粒度領域とが重なる場合、第１の操作をブロックすることによって、各操作の細粒度領域が重なることで発生する操作の誤りを回避し、操作結果の不正確を回避して、各操作の正確性を保証できる。
【０８４４】
図５ａと図５ｂは、本発明の実施例に係るプロセッサ操作方法の適用シナリオを示す模式図である。図５ａと図５ｂに示されたように、記憶領域全体２０ｄは、目標記憶領域２１ｄを含み、ここで、目標記憶領域２１ｄは、４個の細粒度領域に区分けされ、順に、細粒度領域２２ｄ、細粒度領域２３ｄ、細粒度領域２４ｄ、および、細粒度領域２５ｄである。
【０８４５】
図５ａに示されたように、現在、書き込み操作のみを含み、書き込みポインターｗｐで書き込み操作の現在の対象となる細粒度領域を表す。書き込み操作が開始されたばかりのときに、書き込みポインターｗｐは細粒度領域２２ｄを指し、まず、実行されている目標記憶領域２１ｄに対する第２の操作が存在するか否かを判断し、判断結果が第２の操作が存在しないことであると、細粒度領域２２ｄに対する書き込み操作を開始し、細粒度領域２２ｄに対する書き込み操作を完成した後に、書き込みポインターｗｐを増加させ、すなわちｗｐ＋＋させて、次の一つの細粒度領域２３ｄを指すようにして、同様の判断を行った後に、細粒度領域２３ｄに対する書き込み操作を開始し、細粒度領域２３ｄに対する書き込み操作を完成した後、書き込みポインターｗｐを増加させて、次の一つの細粒度領域２４ｄを指すようにして、同様の判断を行った後に、細粒度領域２４ｄに対する書き込み操作を開始する。
【０８４６】
また、図５ｂに示されたように、現在、読み取り操作と書き込み操作のような二つの操作を含み、ここで、読み取り操作は第１の操作であり、書き込み操作は第２の操作である。また、書き込み操作の書き込みポインターｗｐと読み取り操作の読み取りポインターｒｐを使用して、書き込み操作と読み取り操作の現在の対象となる細粒度領域をそれぞれ表す。
【０８４７】
読み取り操作（第１の操作）を実行する場合、実行されている目標記憶領域２１ｄに対する第２の操作が存在するか否かを判断する。判断を経て、現在、第２の操作書き込み操作が存在すると、さらに、読み取り操作（第１の操作）の現在の対象となる第１の細粒度領域（図５ｂの中の細粒度領域２２ｄ）と書き込み操作（第２の操作）の現在の対象となる第２の細粒度領域（図５ｂの中の細粒度領域２４ｄ）との間が重なるか否かを判断し、例えば、細粒度領域の番号（２２ｄおよび２４ｄ）、または、ｒｐとｗｐとの間の関係（ｒｐ=０、ｗｐ=２、ｒｐ<ｗｐ）に基づいて、第１の細粒度領域と第２の細粒度領域との間が重ならないと確定し、その後、読み取り操作（第１の操作）を実行できる。
【０８４８】
細粒度領域２２ｄに対する読み取り操作を完成した後、ｒｐを増加させ、すなわちｒｐ＋＋させて、次の一つの細粒度領域２３ｄを指すようにして、同様の判断を行った後に、第１の操作の細粒度領域２３ｄに対する操作を開始し、細粒度領域２３ｄに対する読み取り操作を完成した後に、ｒｐを増加させて次の一つの細粒度領域２４ｄを指すようにする。この場合、続けて第１の細粒度領域と第２の細粒度領域との間が重なるか否かを判断し、細粒度領域番号が同じかまたはポインターｒｐ=ｗｐであると、第１の操作の現在の対象となる第１の細粒度領域と第２の操作の現在の対象となる第２の細粒度領域とが重なると判断でき、すると、第１の操作を実行できなく、第１の操作をブロックする。第２の操作が細粒度領域２４ｄに対する操作を完成した後に、ｗｐを増加させ、次の一つの細粒度領域２５ｄを指すと、ｒｐ<ｗｐであり、第１の操作を実行できる。
【０８４９】
可能な一実現形態において、前記第１の操作および前記第２の操作の中の少なくとも一つの操作が書き込み操作であってもよい。すなわち、目標データの操作が、書き込みの後の読み取り（第２の操作が書き込み操作であり、第１の操作が読み取り操作である）、読み取りの後の書き込み（第２の操作が読み取り操作であり、第１の操作が書き込み操作である）、または、書き込みの後の書き込み（第２の操作と第１の操作いずれもが書き込み操作である）である場合、本発明の実施例の方法を使用できる。
【０８５０】
例えば、第１の操作が読み取り操作であり、第２の操作が書き込み操作であり、第１の操作が読み取る必要がある目標オペランドが第２の操作の書き込み操作後のデータであり、第２の操作の対象となる第２の細粒度領域の番号が８であると、第１の操作は番号が８前の細粒度領域のデータのみを読み取ることができる。つまり、第１の操作の現在の対象となる第１の細粒度領域が番号１〜７の細粒度領域のの任意の一つであると、第１の操作を実行できる。
【０８５１】
可能な一実現形態において、第１の操作と第２の操作がいずれも読み取り操作であると、第１の操作と第２の操作の細粒度領域間の関係は操作結果に影響を及ぼさなく、本発明の実施例方法を使用でき、細粒度領域の判断せずに第１の操作を直接実行してもよい。
【０８５２】
本実施例において、第１の操作および第２の操作の中の少なくとも一つの操作が書き込み操作である場合、本発明の実施例の方法を使用することで、目標記憶領域を一つまたは複数の細粒度領域に区分けし、細粒度領域を単位にして操作を実行することによって、読み取りの後の書き込み、書き込みの後の読み取り、書き込みの後の書き込みなどの操作が正確に実行して、正確な実行結果を得ることができるだけでなく、操作間の待機時間を短縮して、プロセッサの実行効率を向上させることができる。
【０８５３】
可能な一実現形態において、前記細粒度領域のサイズ及び／又は数は、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて確定できる。
【０８５４】
前記細粒度領域のサイズ及び／又は数の確定は、操作が生成される前に予め設定されてよいし、各操作が生成されるときにリアルタイムに確定されてもよいことを理解できる。ここで、操作の前に細粒度領域のサイズ及び／又は数を予め設定することは、予め設定された長さのデータが位置する領域、および、予め設定された次元のデータが位置する領域の中の少なくとも一つ基づいて、細粒度領域のサイズ及び／又は数を確定することを含んでもよい。設定長さのデータ和予め設定された次元のデータは、各操作のオペランドとかんけいなくてもよいし、事前に各操作のオペランドに基づいて総合的に確定してもよく、要件に従って確定できる。各操作が生成されるときに細粒度領域のサイズ及び／又は数をリアルタイムに確定することは、各操作のオペランドに基づいて設定長さのデータまたは設定次元のデータを確定することを含んでもよく、すなわち、各操作の異なるオペランドに基づいて、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つをリアルタイムに確定して、細粒度領域のサイズ及び／又は数を確定することを含んでもよい。
【０８５５】
例を挙げると、設定長さのデータが位置する領域の大きさに基づいて、細粒度領域のサイズ及び／又は数を確定できる。例えば、目標オペランドの設定長さのデータが位置する記憶領域のサイズに基づいて、細粒度領域のサイズを設定でき、当該領域は固定のビット幅であってもよい。例えば、目標オペランドＢが２０＊１０＊５の３次元データであり、目標記憶領域における記憶方式が４０＊２５（すなわち、各行が４０ビットのデータであり、合計２５行である）であると、設定長さを４０ビットに設定し、目標記憶領域の各行を一つの細粒度領域に設定して、目標オペランドＢの記憶領域を２５個の細粒度領域に区分けしてもよいし、記憶領域の５行毎を一つの細粒度領域に設定して、目標オペランドＢの記憶領域を５個の細粒度領域に区分けしてもよい。本発明はこれに対して限定しない。
【０８５６】
設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて、目標記憶領域で細粒度領域のサイズ及び／又は数を確定してもよいし、目標記憶領域が位置する記憶領域全体で細粒度領域のサイズ及び／又は数を確定してもよいし、或いは、記憶領域全体の他の領域で細粒度領域のサイズ及び／又は数を確定してもよいことを理解できる。上記の例はその中の一つの状況を示したが、本発明は、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて、細粒度領域のサイズ及び／又は数を確定する処理の適用区分範囲を限定しない。
【０８５７】
可能な一実現形態において、設定次元数のデータが位置する領域の大きさに基づいて、細粒度領域のサイズ及び／又は数を確定できる。例えば、目標オペランドＣが２０＊１０の２次元データであると、設定次元数が１次元であり、長さが２０であるデータによって、目標オペランドＣの記憶領域を１０個の細粒度領域に区分けする。
【０８５８】
なお、目標オペランドの記憶領域の設定長さのデータが位置する領域の大きさ、および、設定次元のデータが位置する領域の大きさに同時に基づいて、細粒度領域のサイズ及び／又は数を確定できる。例えば、目標オペランドＣに対して、設定次元数が２次元であり、サイズが４＊２であるデータによって、細粒度領域を区分けして、目標オペランドＣの記憶領域を２５個の細粒度領域に区分けすることができる。
当業者は、実際の状況に従って細粒度領域のサイズ及び／又は数を設定して区分けすることができ、本発明はこれに対して限定しないことを理解すべきである。
【０８５９】
本実施例において、設定長さのデータが位置する領域の大きさ及び／又は設定次元のデータが位置する領域の大きさに基づいて、前記細粒度領域のサイズ及び／又は数を確定することによって、データ特性に対して細粒度領域に対する区分けを完成して、細粒度領域区分けの柔軟性を向上させて、複数の操作を実行する効率を向上させることができ、また、細粒度領域の区分け結果が異なるオペランドの特性にもう一層合致するようにして、異なるタイプオペランドの処理要件に適応させて、複数の操作全体の実行効率をさらに向上させることができる。
【０８６０】
可能な一実現形態において、前記細粒度領域のサイズ及び／又は数は、ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて確定されてもよい。
【０８６１】
ここで、ハードウェア計算能力は、ハードウェアの一つの計算サイクルで並行して処理するデータ量であってもよく、ハードウェア帯域幅は、データ伝送能力であってもよく、例えば、単位時間あたりに伝送するデータ量である。
【０８６２】
例を挙げると、当該プロセッサ操作方法を適用するプロセッサは、そのハードウェア計算能力が一つの計算サイクルで１００ビットのデータを並行して処理し、ハードウェア帯域幅が単位時間あたりに２００ビットのデータを伝送することであると、大きさが１０００ビットである目標記憶領域に対して、ハードウェア計算能力に基づいて当該目標記憶領域を１０個の細粒度領域に区分けしてもよいし、ここで、各々の細粒度領域は１００ビットのデータを含み、または、ハードウェア帯域幅に基づいて当該目標記憶領域を５個の細粒度領域に区分けしてもよく、ここで、各々の細粒度領域は２００ビットのデータを含む。
【０８６３】
ハードウェア計算能力およびハードウェア帯域幅は、プロセッサハードウェアによって異なり、本発明は、ハードウェア計算能力およびハードウェア帯域幅に対して限定しないことを理解すべきである。
【０８６４】
ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて、目標記憶領域で細粒度領域のサイズ及び／又は数を確定してもよいし、目標記憶領域が位置する記憶領域全体で細粒度領域のサイズ及び／又は数を確定してもよいし、或いは、記憶領域全体の他の領域で細粒度領域のサイズ及び／又は数を確定してもよいことを理解できる。上記の例はその中の一つの状況のみを示したが、本発明は、ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて、細粒度領域のサイズ及び／又は数を確定する処理の適用区分範囲に対して限定しない。
【０８６５】
このような方式によって、プロセッサの処理能力（ハードウェア計算能力及び／又はハードウェア帯域幅）に基づいて前記細粒度領域のサイズ及び／又は数を確定できて、細粒度領域の区分け結果が異なるハードウェア使用環境の要件にもう一層合致するようにして、細粒度領域を使用して実行する操作とプロセッサの処理能力とを同期して、ハードウェアの実行効率を最大限に発揮して、プロセッサの処理効率を向上させることができる。
【０８６６】
可能な一実現形態において、前記第１の操作は、第１の処理命令の操作であってもよく、前記第２の操作は、第２の処理命令の操作であってもよく、前記第２の処理命令は、命令キュー中で前記第１の処理命令の前に位置する処理命令であってもよい。
【０８６７】
ここで、第１の処理命令と第２の処理命令は、データアクセス命令、演算命令、同期命令、および、通信命令などの一つまたは複数を含んでもよく、例えば、当該命令は読み取りおよび演算命令である。本発明は、第１の処理命令と第２の処理命令の具体的なタイプに対して限定しない。
【０８６８】
可能な一実現形態において、第１の命令は、第２の命令と依存関係を有してもよく、例えば、第１の命令が第２の命令の計算結果を使用する必要があるような依存関係を有する。第１の命令は、第２の命令と依存関係を有さないでもよい。第１の命令が第２の命令と依存関係を有する場合、本発明の実施例の方法によって、第１の命令と第２の命令と並行して実行できる。
本実施例において、第１の操作と第２の操作は、異なる命令の操作であり、本発明の実施例の方法を利用すると、命令実行効率を向上させることができる。
【０８６９】
可能な一実現形態において、第１の操作と第２の操作は、同じ処理命令の二つの操作であってもよく、第２の操作は第１の操作と関係ないでもよいし、または、第２の操作は第１の操作の結果に基づく操作であってもよい。ここで、当該処理命令は、データアクセス命令、演算命令、同期命令、および、通信命令などの一つまたは複数を含んでもよく、例えば、当該命令が「読み取りと加算」演算命令であると、第１の操作が読み取り操作であり、第２の操作が加算演算操作である。本発明は、当該処理命令の具体的なタイプに対して限定しない。
【０８７０】
可能な一実現形態において、前記方法は、前記第１の操作の現在操作している第１の細粒度領域の第１の位置情報、および、前記第２の操作の現在操作している第２の細粒度領域の第２の位置情報を記録することを含んでもよく、
ステップＳ１３ｇは、前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行することを含んでもよい。
【０８７１】
可能な一実現形態において、位置情報は、細粒度領域の識別子情報を含んでもよい。識別子情報は、数字、文字、および、記号の任意の組み合わせを含んでもよい。本発明は、これに対して限定しない。
【０８７２】
例えば、位置情報は、細粒度領域の番号情報を使用して表し、目標記憶領域は６個の細粒度領域に区分けされることができ、その番号は順に０〜５である。目標記憶領域に対する第１の操作と第２の操作を実行する場合、第１の操作の現在操作している第１の細粒度領域の第１の位置情報（例えば、番号が２である）、および、第２の操作の現在操作している第２の細粒度領域の第２の位置情報（例えば、番号が５である）をそれぞれ記録し、その後、番号情報間の関係（２<５）に基づいて、第１の位置情報と第２の位置情報とが不一致することが分かり、このとき、第１の操作を実行する。
【０８７３】
可能な一実現形態において、位置情報は、細粒度領域のアドレス情報を含んでもよい。アドレス情報は、細粒度領域の開始アドレス情報、終了アドレス情報、細粒度領域の予め設定された位置アドレス情報、および、アドレスオフセット量情報の中の少なくとも一つを含んでもよい。例えば、細粒度領域の位置情報は、ＡＤＤＲ１５〜ＡＤＤＲ３１である。
【０８７４】
このような方式によって、位置情報を使用して第１の細粒度領域と第２の細粒度領域とが重なるか否かを直接効率的に判断して、第１の操作を実行するか否かを確定し、プロセッサの実行効率を向上させることができる。
【０８７５】
可能な一実現形態において、前記第１の位置情報は、第１の操作の既に操作を完成した細粒度領域の第１の数を含んでもよく、前記第２の位置情報は、第２の操作の既に操作を完成した細粒度領域の第２の数を含んでもよい、
【０８７６】
前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行することは、前記第１の操作が前記第２の操作の後の操作であり、且つ、前記第１の数が前記第２の数よりも小さい場合、前記第１の操作を実行することを含んでもよい。
【０８７７】
例を挙げると、第１の操作が第２の操作の後の操作であり、その目標記憶領域が６個の細粒度領域に区分けされ、その位置情報を既に操作を完成した細粒度領域の数を使用して表すことができる。目標記憶領域に対する第１の操作と第２の操作を実行する場合、第１の操作の既に操作を完成した細粒度領域の第１の数（例えば、第１の数は３である）、および、第２の操作の既に操作を完成した細粒度領域の第２の数（例えば、第２の数は５である）をそれぞれ記録し、その後、第１の操作と第２の操作の実行順序、および、第１の数と第２の数の関係に基づいて、第１の操作が第２の操作の後の操作であり、且つ、第１の数である３が第２の数である５よりも小さいことが分かり、このとき、第１の操作を実行する。
【０８７８】
このような方式によって、既に操作を完成した細粒度領域の数に基づいて第１の細粒度領域と第２の細粒度領域とが重なるか否かを直感的に判断し、さらに第１の操作を実行するか否かを確定できて、判断過程を簡略化して、プロセッサの実行効率を向上させることができる。
【０８７９】
可能な一実現形態において、前記目標記憶領域は、操作可能領域および操作不可領域を含んでもよく、ステップＳ１２ｇは、前記第２の操作が存在し、且つ、前記第１の操作の現在の対象となる第１の細粒度領域が前記操作可能領域内に位置する場合、前記第１の操作の現在の対象となる第１の細粒度領域と前記第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断することをさらに含んでもよい。
可能な一実現形態において、目標記憶領域は、一つまたは複数の操作不可領域を含んでもよいし、連続的または不連続な操作不可領域を含んでもよい。
【０８８０】
可能な一実現形態において、目標記憶領域は、一つまたは複数の操作可能領域を含んでもよいし、連続的または不連続な操作可能領域を含んでもよい。本発明は、これに対して限定しない。
【０８８１】
可能な一実現形態において、第１の操作が目標記憶領域に対する操作である場合、まず、実行されている、目標記憶領域に対する第２の操作が、存在するか否かを判断し、第２の操作が存在する場合、第１の操作の対象となる第１の細粒度領域が操作可能領域内に位置するか否かを判断でき、第２の操作が存在し、且つ、第１の操作の対象となる第１の細粒度領域が操作可能領域内に位置する場合、その後、第１の操作の対象となる第１の細粒度領域と第２の操作の対象となる第２の細粒度領域との間が重なるか否かを判断でき、第１の細粒度領域と第２の細粒度領域との間が重ならない場合、第１の操作を実行できる。
【０８８２】
可能な一実現形態において、前記操作不可領域は、操作禁止領域および操作非禁止領域を含んでもよい。第１の操作が書き込み操作であり、目標オペランドの一部のデータが変更不可である場合、当該一部のデータが位置する記憶領域を操作禁止領域に設定して、当該一部のデータを誤って変更することを回避し、実行されている第２の操作が第１の操作の前のデータを読み取る読み取り操作（読み取りの後の書き込み）であると、第２の操作が位置する一つまたは複数の細粒度領域を操作非禁止領域に設定し、第２の操作が操作非禁止領域に対する読み取りを完成した後、当該操作非禁止領域を操作可能領域に変更できる。本発明は、操作不可領域の分類および区分け方式に対して限定しない。
【０８８３】
本実施例において、まず、第１の操作の細粒度領域が操作できるか否かを判断してから、異なる操作の細粒度領域間の関係を判断し、一方では判断の効率を向上させ、もう一方では指定されたデータを保護して誤操作の発生を防止でき、指定された空間に対する書き込みを禁止することで、当該空間を予め用意して、他の操作に実行に使用することによって、プロセッサが細粒度同期を実行する際の柔軟性をさらに向上させることができる。
【０８８４】
可能な一実現形態において、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域の前記操作不可領域における位置は、前記第２の操作の操作位置に従って更新され、前記方法は、前記第２の操作の対象となる第２の細粒度領域が前記操作不可領域から移動して出た後、前記操作不可領域の位置を更新することをさらに含んでもよい。
【０８８５】
つまり、第２の細粒度領域を含む操作不可領域は、第２の操作の対象となる第２の細粒度領域の更新に従って更新されなくてもよく、第２の操作の対象となる第２の細粒度領域が操作不可領域から移動して出た後、操作不可領域の位置を更新する。例えば、操作不可領域は、前記第２の細粒度領域を含むＱ個の細粒度領域（Ｑは１よりも大きい整数である）であり、現在の操作不可領域は、２番目〜２＋Ｑ-１番目の細粒度領域を含む。第２の操作が操作不可領域内でＱ個の細粒度領域の実行を完成した後に、操作不可領域から移動して出ると、操作不可領域の位置は第２の操作の対象となる細粒度領域の位置に従って更新され、更新後の操作不可領域は、２＋Ｑ番目〜２＋Ｑ＋Ｑ-１番目の細粒度領域を含む。ここで、Ｑの大きさは、要件に従って任意に確定できる。
【０８８６】
図６ａと図６ｂは、本発明の実施例に係るプロセッサ操作方法の適用シナリオを示す模式図である。図６ａに示されたように、目標記憶領域３０ｄは、８個の細粒度領域を含み、ここで、操作可能領域は、５個の細粒度領域（細粒度領域３１ｄ、細粒度領域３５ｄ、細粒度領域３６ｄ、細粒度領域３７ｄ、および、細粒度領域３８ｄ）を含み、操作不可領域Ｍ０は、３個の細粒度領域（細粒度領域３２ｄ、細粒度領域３３ｄ、および、細粒度領域３４ｄ）を含む。ここで、第２の操作の現在の対象となる第２の細粒度領域は、細粒度領域３２である。
【０８８７】
第２の操作が細粒度領域３２ｄに対する操作の実行を完成した後、第２の操作の現在の対象となる第２の細粒度領域は細粒度領域３３ｄであり、このとき、第２の操作の現在の対象となる第２の細粒度領域（細粒度領域３３ｄ）が操作不可領域から移動して出なく、操作不可領域の位置を更新しないし、第２の操作が細粒度領域３３ｄに対する操作の実行を完成した後、第２の操作の現在の対象となる第２の細粒度領域は細粒度領域３４ｄであり、このとき、第２の操作の現在の対象となる第２の細粒度領域（細粒度領域３４ｄ）が操作不可領域から依然として移動して出なく、操作不可領域の位置を更新しないし、第２の操作が細粒度領域３４ｄに対する操作の実行を完成した後、第２の操作の現在の対象となる第２の細粒度領域は細粒度領域３５ｄであり、このとき、第２の操作の現在の対象となる第２の細粒度領域（細粒度領域３５ｄ）操作不可領域から既に移動して出たから、操作不可領域の位置を細粒度領域（３５ｄ、３６ｄ和３７ｄ）に更新する。本発明は、操作不可領域の大きさに対して限定しないことを説明する必要がある。
【０８８８】
図６ｂに示されたように、操作不可領域の位置を更新した後、在目標記憶領域３０ｄにおける操作可能領域は、５個の細粒度領域（細粒度領域３１ｄ、細粒度領域３２ｄ、細粒度領域３３ｄ、細粒度領域３４ｄ、および、細粒度領域３８ｄ）を含み、操作不可領域Ｍ０は、３個の細粒度領域（細粒度領域３５ｄ、細粒度領域３６ｄ、および、細粒度領域３７ｄ）を含む。
このような方式によって、操作不可領域の位置をリアルタイムに更新する必要がなく、操作不可領域の更新によって発生されるオーバーヘッドを削減できる。
【０８８９】
可能な一実現形態において、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域は、前記操作不可領域内の設定位置に位置し、前記操作不可領域の位置は、前記第２の操作の操作位置に従って更新されてもよい。
【０８９０】
つまり、操作不可領域が前記第２の細粒度領域を含む複数の細粒度領域である場合、第２の細粒度領域を操作不可領域の位置（例えば、中間位置、最後位置など）を設定し、操作不可領域の位置が第２の操作の操作位置に従って更新されてもよい。例えば、操作不可領域は、前記第２の細粒度領域を含むＱ個の細粒度領域であり、現在の操作不可領域は、２番目〜２＋Ｑ-１番目の細粒度領域を含み、第２の細粒度領域の操作不可領域内の設定位置は、Ｒ番目（ここでＲ≦Ｑ）であってもよい。第２の操作が現在の対象となる細粒度領域に対する操作の実行を完成した後、第２の操作は次の一つの細粒度領域に対する操作の実行を開始し、このとき、操作不可領域の位置が第２の操作の操作位置に従って更新されてもよく、更新後の操作不可領域は、２＋１番目〜２＋Ｑ番目の細粒度領域を含む。ここで、Ｑの大きさおよびＲの値は、要件に従って確定できる。本発明は、操作不可領域が含む細粒度領域の数、および、第２の細粒度領域の操作不可領域内での位置に対していずれも限定しない。
【０８９１】
図７ａと図７ｂは、本発明の実施例に係るプロセッサ操作方法の適用シナリオを示す模式図である。図７ａに示されたように、目標記憶領域４０は、８個の細粒度領域を含み、ここで、操作可能領域は、５個の細粒度領域（細粒度領域４１、細粒度領域４５、細粒度領域４６、細粒度領域４７、および、細粒度領域４８）を含み、操作不可領域Ｍ１は、３個の細粒度領域（細粒度領域４２、細粒度領域４３、および、細粒度領域４４）を含む。ここで、第２の操作の現在の対象となる第２の細粒度領域設定を操作不可領域Ｍ１に位置する２番目の細粒度領域に設定し、つまり、細粒度領域４３に設定する。
【０８９２】
第２の操作が細粒度領域４３に対する操作の実行を完成した後、第２の操作の現在の対象となる第２の細粒度領域は細粒度領域４４であり、このとき、操作不可領域の位置が第２の操作の操作位置に従って更新されることによって、第２の操作の現在の対象となる第２の細粒度領域が操作不可領域Ｍ１の２番目の細粒度領域に位置するようにする。
【０８９３】
図７ｂに示されたように、操作不可領域の位置を更新した後の目標記憶領域４０で、操作可能領域は、５個の細粒度領域（細粒度領域４１、細粒度領域４２、細粒度領域４６、細粒度領域４７、および、細粒度領域４８）を含み、操作不可領域Ｍ１は、３個の細粒度領域（細粒度領域４３、細粒度領域４４、および、細粒度領域４５）を含む。
【０８９４】
このような方式によって、操作不可領域の位置をリアルタイムに更新して、細粒度処理の同期程度を向上させ、データ同期処理の効率をさらに向上させることができる。
【０８９５】
可能な一実現形態において、前記目標記憶領域は、循環バッファ記憶領域を含んでもよい。前記循環バッファ記憶領域は、データの循環記憶のために使用できる。
【０８９６】
図８は、本発明の実施例に係るプロセッサ操作方法を示す循環バッファ記憶領域の模式図である。図８に示されたように、目標記憶領域５０は、循環バッファ記憶領域５１を含み、そのアドレスは、ｓｔａｒｔ_ａｄｄｒ〜ｅｎｄ_ａｄｄｒである。
【０８９７】
例えば、第２の操作が書き込み操作であり、目標オペランドを循環バッファ記憶領域５１に書き込みことができ、そのアドレスポインターｐｏｉｎｔは、ｓｔａｒｔ_ａｄｄｒから開始して、ｅｎｄ_ａｄｄｒまで、順に、下へデータを記憶し、すなわち、循環バッファ記憶領域５１の記憶空間を完全に埋め、このとき、アドレスポインターｐｏｉｎｔは、ｓｔａｒｔ_ａｄｄｒにジャンプして戻って、当該アドレスが同期する必要がある第１の操作によって使用が完了されたか否かを判断し、使用が完了された場合、データを当該アドレスに記憶して、元のデータを上書きし、その後アドレスポインターｐｏｉｎｔは順に下へ移動し、直到ｅｎｄ_ａｄｄｒ、このとき、データを再び上書きし、上記の過程を循環できる。
【０８９８】
本実施例において、循環バッファ記憶領域を使用してデータを記憶すると、データ記憶空間を節約できるだけでなく、記憶空間使用効率も向上させることができる。
【０８９９】
可能な一実現形態において、循環バッファ記憶領域を複数の細粒度領域に区分けすることができる。各々の細粒度領域ごとに、リスト、フラグビット、または、他の方式によって、細粒度領域のデータが上書きできるか否かを管理でき、例えば、上書きフラグビットを設定することで、細粒度領域のデータが上書きできるか否かを表すことができる。
【０９００】
例を挙げると、第１の操作は読み取り操作であり、第２の操作は書き込み操作であり、すなわち、書き込みの後の読み取りであると、書き込みポインターｗｐおよび読み取りポインターｒｐが第２の操作と第１の操作の現在の対象となる細粒度領域をそれぞれ表すようにすることができる。第２の操作の現在の対象となる第２の細粒度領域の上書きフラグビットが上書きできることである場合、第２の操作を実行して、データを書き込むことができ、データの書き込みを完成した後、当該第２の細粒度領域の上書きフラグビットを上書きできないことに設定し、ｗｐ＋＋させ、第２の操作の現在の対象となる第２の細粒度領域が次の一つの細粒度領域であり、ｗｐ＞ｅｎｄ_ａｄｄｒであると、ｗｐ=ｓｔａｒｔ_ａｄｄｒであるし、第１の操作の現在の対象となる第１の細粒度領域と第２の細粒度領域との間が重ならなく、且つ、第１の細粒度領域の上書きフラグビットが上書きできないことである場合、第１の操作を実行でき、データを読み取り、データの読み取りを完成した後、当該第１の細粒度領域の上書きフラグビットを上書きできることに設定し、ｒｐ＋＋させ、第１の操作の現在の対象となる第１の細粒度領域が次の一つの細粒度領域であり、ｒｐ＞ｅｎｄ_ａｄｄｒであると、ｒｐ=ｓｔａｒｔ_ａｄｄｒであるし、第１の細粒度領域と第２の細粒度領域とが重なる場合、すなわち、ｒｐ=ｗｐである場合、第１の操作を実行できなく、第２の操作が現在の対象となる第２の細粒度領域に対する操作が完成するまでに待機した後、第１の操作を実行できる。
【０９０１】
本実施例において、循環バッファアクセス領域を複数の細粒度領域に区分けすることによって、複数の操作が循環バッファ記憶領域に対して同時に操作するようにして、プロセッサの処理効率を向上させることができる。
【０９０２】
可能な一実現形態において、前記細粒度領域は、状態識別子を含んでもよく、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含んでもよく、
【０９０３】
ステップＳ１３ｇは、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断することと、完成状態であると、前記第１の操作を実行することと、を含んでもよい。
【０９０４】
可能な一実現形態において、細粒度領域は、状態識別子を含んでもよく、状態識別子は、細粒度領域に対する操作の完成状態または未完成状態を含んでもよい。例えば、状態識別子は、０と１を使用して表すことができ、ここで、０が細粒度領域に対する操作が未完成状態にあることを表し、１が細粒度領域に対する操作が完成状態にあることを表し、または、０が細粒度領域に対する操作が完成状態にあることを表し、１が細粒度領域に対する操作が未完成状態にあることを表してもよい。本発明は、状態識別子の表現方式に対して限定しない。
【０９０５】
可能な一実現形態において、第２の操作は目標記憶領域を既に操作を完成した細粒度領域の状態識別子を完成状態に設定し、操作されていないまたは操作されている細粒度領域の状態識別子を未完成状態に設定する。さらに、既に操作を完成した細粒度領域における一部の細粒度領域の状態識別子を完成状態に設定し、他の細粒度領域を未完成状態に設定してもよい。例えば、第２の操作が５個の細粒度領域の操作を既に完成した場合、前から３個の細粒度領域の状態識別子を完成状態に設定し、他の細粒度領域を未完成状態に設定してもよい。
【０９０６】
可能な一実現形態において、実行されている目標記憶領域に対する第２の操作が存在する場合、第１の操作の現在の対象となる第１の細粒度領域および第２の操作の現在の対象となる第２の細粒度領域に対して、第１の細粒度領域と第２の細粒度領域との間が重ならないと確定した後、第１の細粒度領域の状態識別子が完成状態であるか否かを判断し、第１の細粒度領域の状態識別子が完成状態であると、第１の操作を実行できる。
【０９０７】
本実施例において、細粒度領域は状態識別子を含み、第１の細粒度領域と第２の細粒度領域との間が重ならない場合、第１の細粒度領域の状態識別子に基づいて、第１の操作が実行できるか否かを確定することによって、プロセッサの処理効率を向上させる同時に、データ処理の正確性を向上させることができる。
【０９０８】
可能な一実現形態において、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、ステップＳ１３ｇは、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断することと、完成状態であると、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することと、を含んでもよい。
【０９０９】
つまり、実行されている目標記憶領域に対する第２の操作が存在する場合、第１の操作の現在の対象となる第１の細粒度領域および第２の操作の現在の対象となる第２の細粒度領域に対して、第１の細粒度領域の状態識別子が完成状態であると確定した後、第１の細粒度領域と第２の細粒度領域との間の重なり関係に基づいて、第１の操作が実行できるか否かを確定する。第１の細粒度領域と第２の細粒度領域との間が重ならない場合、第１の操作を実行できる。
【０９１０】
本実施例において、細粒度領域は状態識別子を含み、第１の細粒度領域の状態識別子が完成状態であると確定した後、第１の細粒度領域と第２の細粒度領域との間の重なり関係に基づいて、第１の操作が実行できるか否かを確定することによって、データ処理の正確性を向上させる同時に、プロセッサの処理効率を向上させることができる。
【０９１１】
可能な一実現形態において、前記第１の操作と前記第２の操作の目標のオペランドは、一致しており、前記目標記憶領域は、前記目標オペランドの記憶領域である。
【０９１２】
可能な一実現形態において、第１の操作の目標オペランドと第２の操作の目標オペランドとが一致している場合、目標記憶領域は、一つの目標オペランドの記憶領域であってもよい。当該目標オペランドの記憶領域が、目標記憶領域である。目標記憶領域を複数の細粒度領域に区分けした後、本発明の実施例の方法によって、各操作の実行結果に影響を及ぼせずに、同一の目標オペランドを操作する二つの操作を並行して実行するようにすることができる。
【０９１３】
本実施例において、本発明の実施例の方法を使用して、同一のオペランドに対する二つの操作の並行する実行を実現して、プロセッサの実行効率を向上させることができる。
【０９１４】
可能な一実現形態において、前記目標記憶領域は、第１の操作第１のオペランドの第１の記憶領域と第２の操作第２のオペランドの第２の記憶領域との間の重なる領域である。
【０９１５】
可能な一実現形態において、二つのオペランドの記憶領域に重なる領域が存在する場合、目標記憶領域が重なる領域である。二つの操作の記憶領域の重なる領域を複数の細粒度領域に区分けして、本発明の実施例の方法によって、各操作の実行結果に影響を及ぼせずに、オペランドの記憶領域が重なる領域を有する二つの操作を並行して実行するようにすることができる。
【０９１６】
本実施例において、二つの操作のオペランドの記憶領域が重なる場合、本発明の実施例の方法を使用して、二つの操作の並行する実行を実現して、プロセッサの実行効率を向上させることができる。
可能な一実現形態において、前記方法は、目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けすることをさらに含んでもよい。
【０９１７】
可能な一実現形態において、目標記憶領域は、記憶装置の記憶領域全体の一部の記憶領域または全部の記憶領域であり、前記記憶領域全体が予め設定した複数の細粒度領域を含んでもよい。
【０９１８】
例えば、目標記憶領域が位置する記憶領域全体がＲＡＭ１であり、ＲＡＭ１は予め設定したＭ個の細粒度領域(Ｍは正の整数である)を含んでもよい。目標記憶領域は、ＲＡＭ１でＲＡＭ１のｎ個の細粒度領域(ｎは正の整数である、且つ、ｎ≦Ｍである)を占用してもよい。目標記憶領域は、特定の細粒度領域における一部の領域を含んでもよいことを説明する必要がある。上記の例のＲＡＭ１において、各々の細粒度領域が記憶領域全体ＲＡＭ１の１行であり、各行が１００ビットであると仮定する。目標記憶領域は、前の（ｎ-１）個の完全な細粒度領域を含み、また、最後一つの細粒度領域の一部の領域をさらに含んでもよく、例えば、ＲＡＭ１のｎ行目（ｎ番目の細粒度領域）の前の８０個のビットを含んでもよい。
【０９１９】
可能な一実現形態において、記憶装置の記憶領域全体を複数の細粒度領域に区分けする場合、記憶領域全体の任意の目標記憶領域に対する任意の操作の場合、目標記憶領域が第１の操作と第２の操作の同一の目標オペランドの記憶領域であるか、目標記憶領域が第１の操作における第１のオペランドの記憶領域と第２の操作における第２のオペランドの記憶領域との重なる領域であるかに関わらず、いずれも、記憶領域全体の細粒度区分け結果に基づいて、目標記憶領域における細粒度領域を確定できる。任意の操作の任意のオペランドの記憶領域全体における記憶領域は、同じサイズの細粒度領域を有する。
【０９２０】
可能な一実現形態において、記憶装置のハードウェア特性に基づいて、記憶領域全体の細粒度領域のサイズ及び／又は数を確定でき、すなわち、記憶装置のハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて、記憶領域全体の細粒度領域のサイズ及び／又は数を確定できる。
【０９２１】
本実施例において、目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けし、記憶領域全体の任意の目標記憶領域に対する任意の操作の場合、いずれも、同じ細粒度サイズに従って実行できるし、異なる操作を本発明の実施例の方法に従って並行して実行すると、より便利に同期させて、操作の並行度を向上させ、プロセッサの処理効率をさらに向上させることができる。
可能な一実現形態において、前記方法は、
第１の操作に携える第１の細粒度区分け情報に基づいて、前記第１の操作における第１のオペランドの第１の記憶領域を複数の細粒度領域に区分けすることと、
【０９２２】
第２の操作に携える第２の細粒度区分け情報に基づいて、前記第２の操作における第２のオペランドの第２の記憶領域を複数の細粒度領域に区分けすることと、をさらに含んでもよい。
【０９２３】
可能な一実現形態において、操作に細粒度区分け情報を携え、細粒度区分け情報は細粒度のサイズ及び／又は数を含んでもよい。異なる操作は、異なる細粒度区分け情報を携えてもよい。同一のタイプの操作は、同一の細粒度区分け情報を携えてもよい。操作のオペランドの設定位置に細粒度区分け情報を携えてもよいし、オペレーションコードまたはオペランドに細粒度区分けするか否かの識別子情報を携えてもよい。本発明は、細粒度区分け情報の内容および表現方式に対して限定しない。
【０９２４】
可能な一実現形態において、第１の操作に携える第１の細粒度区分け情報に基づいて、第１のオペランドの第１の記憶領域を複数の第１の細粒度領域を区分けする。第１のオペランドが位置する記憶領域全体の他の領域に対しては、細粒度の区分けを実行しなくてもよいし、他の操作に携える細粒度区分け情報に基づいて細粒度の区分けを実行してもよい。本発明は、これに対して限定しない。
【０９２５】
第２の操作の第２のオペランドと第１の操作の第１のオペランドとが一致していると、第１の記憶領域と第２の記憶領域とが完全に重なることを理解できる。第１の細粒度区分け情報と第２の細粒度区分け情報とは、一致してもよいし、不一致してもよい。第１の細粒度区分け情報と第２の細粒度区分け情報とが不一致している場合、第１の記憶領域を第２の細粒度区分け情報に同時に従って細粒度区分けすることができる。すなわち、同一の記憶領域に対して、異なる操作は、異なるサイズまたは数の複数の細粒度領域に区分けすることができる。このとき、第１の操作の現在の対象となる第１の細粒度領域の物理アドレス、および、第２の操作の現在前記の対象となる第２の細粒度領域の間の物理アドレスに基づいて、第１の細粒度領域と第２の細粒度領域とが重なるか否かを判断し、判断結果に基づいて第１の操作と第２の操作を並行して実行できる。
【０９２６】
可能な一実現形態において、各操作に携える細粒度区分け情報は、設定長さの操作データが位置する領域、および、設定次元数のオペランドが位置する領域の中の少なくとも一つに基づいて確定した前記細粒度領域のサイズ及び／又は数を含んでもよく、細粒度の区分け結果が操作のオペランドのタイプまたは属性にもう一層合致するようにする。
【０９２７】
本実施例において、第１の操作に携える第１の細粒度区分け情報に基づいて、前記第１の操作における第１のオペランドの第１の記憶領域を複数の細粒度領域に区分けすることと、第２の操作に携える第２の細粒度区分け情報に基づいて、前記第２の操作における第２のオペランドの第２の記憶領域を複数の細粒度領域に区分けすることと、をさらに含んでもよい。操作に携える細粒度区分け情報に基づいて細粒度の区分けすることによって、細粒度の区分け結果が各操作の処理要件にもう一層合致するようにし、操作の並行がもう一層柔軟にすることができる。
【０９２８】
当業者は、実際の状況に従って目標記憶領域に対して細粒度領域を区分けするか設定することができ、本発明はこれに対して限定しないことを理解すべきである。
【０９２９】
上記の実施例を例としてプロセッサ操作方法を上記に説明したが、当業者は本発明がこれに限定されないことを理解できることを説明する必要がある。実際に、ユーザは、本発明の技術案に合致する限り、完全に、個人の好み及び／又は実際の適用シナリオに従って各ステップを柔軟に設定できる。
図３ｇは、本発明の実施例に係るプロセッサ操作装置を示すブロック図である。図３ｇに示されたように、前記プロセッサ操作装置は、
【０９３０】
第１の操作が少なくとも一つの細粒度領域を含む目標記憶領域に対する操作である場合、実行されている、前記目標記憶領域に対する第２の操作が、存在するか否かを判断するための操作判断モジュール７１ｇと、
【０９３１】
前記第２の操作が存在する場合、前記第１の操作の現在の対象となる第１の細粒度領域と前記第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断するための重なり判断モジュール７２ｇと、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行するための実行モジュール７３ｇと、を備える。
【０９３２】
可能な一実現形態において、前記装置は、前記第１の細粒度領域と前記第２の細粒度領域とが重なる場合、前記第１の操作をブロックするための実行制御モジュールをさらに備える。
可能な一実現形態において、前記第１の操作および前記第２の操作の中の少なくとも一つの操作は、書き込み操作である。
【０９３３】
可能な一実現形態において、前記細粒度領域のサイズ及び／又は数は、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて確定する。
【０９３４】
可能な一実現形態において、前記細粒度領域のサイズ及び／又は数は、ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて確定する。
【０９３５】
可能な一実現形態において、前記第１の操作は、第１の処理命令中操作であり、前記第２の操作は、第２の処理命令中の操作であり、前記第２の処理命令は、命令キュー中で前記第１の処理命令の前に位置する処理命令である。
【０９３６】
可能な一実現形態において、前記装置は、前記第１の操作の現在操作している第１の細粒度領域の第１の位置情報、および、前記第２の操作の現在操作している第２の細粒度領域の第２の位置情報を記録するための位置記録モジュールをさらに備え、前記実行モジュール７３は、前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行するための第１の実行サブモジュールを備える。
【０９３７】
可能な一実現形態において、前記第１の位置情報は、第１の操作の既に操作を完成した細粒度領域の第１の数を含み、前記第２の位置情報は、第２の操作の既に操作を完成した細粒度領域の第２の数を含み、第１の実行サブモジュールは、さらに、前記第１の操作が前記第２の操作の後の操作であり、且つ、前記第１の数が前記第２の数よりも小さい場合、前記第１の操作を実行する。
【０９３８】
可能な一実現形態において、前記目標記憶領域は、操作可能領域および操作不可領域を含み、前記重なり判断モジュール７２は、前記第２の操作が存在し、且つ、前記第１の操作の現在の対象となる第１の細粒度領域が前記操作可能領域内に位置する場合、前記第１の操作の現在の対象となる第１の細粒度領域と前記第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断するための判断サブモジュールを備える。
【０９３９】
可能な一実現形態において、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域の前記操作不可領域における位置は、前記第２の操作の操作位置に従って更新され、前記装置は、
【０９４０】
前記第２の操作の対象となる第２の細粒度領域が前記操作不可領域から移動して出た後、前記操作不可領域の位置を更新するための更新モジュールをさらに備える。
【０９４１】
可能な一実現形態において、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域は、前記操作不可領域内の設定位置に位置し、前記操作不可領域の位置は、前記第２の操作の操作位置に従って更新する。
可能な一実現形態において、前記目標記憶領域が、循環バッファ記憶領域を含む。
可能な一実現形態において、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、
【０９４２】
前記実行モジュール７３ｇは、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断するための第１の状態判断サブモジュールと、前記第１の細粒度領域の状態識別子が完成状態である場合、前記第１の操作を実行するための第２の実行サブモジュールと、を備える。
可能な一実現形態において、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、
【０９４３】
前記実行モジュール７３ｇは、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断するための第２の状態判断サブモジュールと、前記第１の細粒度領域の状態識別子が完成状態であり、且つ、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行するための第３の実行サブモジュールと、を備える。
【０９４４】
可能な一実現形態において、前記第１の操作と前記第２の操作の目標のオペランドは、一致しており、前記目標記憶領域は、前記目標オペランドの記憶領域である。
【０９４５】
可能な一実現形態において、前記目標記憶領域は、第１の操作における第１のオペランドの第１の記憶領域と第２の操作における第２のオペランドの第２の記憶領域との間の重なる領域である。
可能な一実現形態において、前記装置は、目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けするための第１の設定モジュールをさらに備える。
可能な一実現形態において、前記装置は、 
【０９４６】
第１の操作に携える第１の細粒度区分け情報に基づいて、前記第１の操作における第１のオペランドの第１の記憶領域を複数の細粒度領域に区分けするための第２の設定モジュールと、
【０９４７】
第２の操作に携える第２の細粒度区分け情報に基づいて、前記第２の操作における第２のオペランドの第２の記憶領域を複数の細粒度領域に区分けするための第３の設定モジュールと、をさらに備える。
可能な一実現形態において、人工知能チップをさらに開示し、前記人工知能チップは、上記のプロセッサ操作装置を備える。
【０９４８】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０９４９】
可能な一実現形態において、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、前記人工知能チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
Ａ１、プロセッサ操作方法であって、前記方法は、
【０９５０】
第１の操作が少なくとも一つの細粒度領域を含む目標記憶領域に対する操作である場合、実行されている、前記目標記憶領域に対する第２の操作が、存在するか否かを判断することと、
【０９５１】
前記第２の操作が存在する場合、前記第１の操作の現在の対象となる第１の細粒度領域と前記第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断することと、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することと、を含む。
Ａ２、請求項Ａ１に記載の方法であって、前記方法は、
前記第１の細粒度領域と前記第２の細粒度領域とが重なる場合、前記第１の操作をブロックすることをさらに含む。
Ａ３、請求項Ａ１に記載の方法であって、前記第１の操作および前記第２の操作の中の少なくとも一つの操作は、書き込み操作である。
【０９５２】
Ａ４、請求項Ａ１に記載の方法であって、前記細粒度領域のサイズ及び／又は数は、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて確定する。
【０９５３】
Ａ５、請求項Ａ１に記載の方法であって、前記細粒度領域のサイズ及び／又は数は、ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて確定する。
【０９５４】
Ａ６、請求項Ａ１に記載の方法であって、前記第１の操作は、第１の処理命令の操作であり、前記第２の操作は、第２の処理命令の操作であり、前記第２の処理命令は、命令キュー中で前記第１の処理命令の前に位置する処理命令である。
Ａ７、請求項Ａ１乃至Ａ６の中のいずれか１項に記載の方法であって、前記方法は、
【０９５５】
前記第１の操作の現在操作している第１の細粒度領域の第１の位置情報、および、前記第２の操作の現在操作している第２の細粒度領域の第２の位置情報を記録することをさらに含み、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することは、
前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行することを含む。
【０９５６】
Ａ８、請求項Ａ７に記載の方法であって、前記第１の位置情報は、第１の操作の既に操作を完成した細粒度領域の第１の数を含み、前記第２の位置情報は、第２の操作の既に操作を完成した細粒度領域の第２の数を含み、
前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行することは、
前記第１の操作が前記第２の操作の後の操作であり、且つ、前記第１の数が前記第２の数よりも小さい場合、前記第１の操作を実行することを含む。
【０９５７】
Ａ９、請求項Ａ１に記載の方法であって、前記目標記憶領域は、操作可能領域および操作不可領域を含み、前記第２の操作が存在する場合、前記第１の操作の現在の対象となる第１の細粒度領域と前記第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断することは、
【０９５８】
前記第２の操作が存在し、且つ、前記第１の操作の現在の対象となる第１の細粒度領域が前記操作可能領域内に位置する場合、前記第１の操作の現在の対象となる第１の細粒度領域と前記第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断することをさらに含む。
【０９５９】
Ａ１０、請求項Ａ９に記載の方法であって、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域の前記操作不可領域における位置は、前記第２の操作の操作位置に従って更新され、前記方法は、
前記第２の操作の対象となる第２の細粒度領域が前記操作不可領域から移動して出た後、前記操作不可領域の位置を更新することをさらに含む。
【０９６０】
Ａ１１、請求項Ａ９に記載の方法であって、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域は、前記操作不可領域内の設定位置に位置し、
前記操作不可領域の位置は、前記第２の操作の操作位置に従って更新される。
Ａ１２、請求項Ａ１に記載の方法であって、前記目標記憶領域が、循環バッファ記憶領域を含む。
【０９６１】
Ａ１３、請求項Ａ１に記載の方法であって、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することは、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断することと、
完成状態であると、前記第１の操作を実行することと、を含む。
【０９６２】
Ａ１４、請求項Ａ１に記載の方法であって、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することは、
前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断することと、
完成状態であると、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行することと、を含む。
【０９６３】
Ａ１５、請求項Ａ１に記載の方法であって、前記第１の操作と前記第２の操作の目標のオペランドは、一致しており、前記目標記憶領域は、前記目標オペランドの記憶領域である。
【０９６４】
Ａ１６、請求項Ａ１に記載の方法であって、前記目標記憶領域は、第１の操作の第１のオペランドの第１の記憶領域と第２の操作第２のオペランドの第２の記憶領域との間の重なる領域である。
Ａ１７、請求項Ａ１乃至Ａ１６の中のいずれか１項に記載の方法であって、前記方法は、
目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けすることをさらに含む。
Ａ１８、請求項Ａ１乃至Ａ１７の中のいずれか１項に記載の方法であって、前記方法は、
第１の操作に携える第１の細粒度区分け情報に基づいて、前記第１の操作の第１のオペランドの第１の記憶領域を複数の細粒度領域に区分けすることと、
【０９６５】
第２の操作に携える第２の細粒度区分け情報に基づいて、前記第２の操作の第２のオペランドの第２の記憶領域を複数の細粒度領域に区分けすることと、をさらに含む。
Ａ１９、プロセッサ操作装置であって、前記装置は、
【０９６６】
第１の操作が少なくとも一つの細粒度領域を含む目標記憶領域に対する操作である場合、実行されている、前記目標記憶領域に対する第２の操作が、存在するか否かを判断するための操作判断モジュールと、
【０９６７】
前記第２の操作が存在する場合、前記第１の操作の現在の対象となる第１の細粒度領域と前記第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断するための重なり判断モジュールと、
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行するための実行モジュールと、を備える。
Ａ２０、請求項Ａ１９に記載の装置であって、前記装置は、
前記第１の細粒度領域と前記第２の細粒度領域とが重なる場合、前記第１の操作をブロックするための実行制御モジュールをさらに備える。
Ａ２１、請求項Ａ１９に記載の装置であって、前記第１の操作および前記第２の操作の中の少なくとも一つの操作は、書き込み操作である。
【０９６８】
Ａ２２、請求項Ａ１９に記載の装置であって、前記細粒度領域のサイズ及び／又は数は、設定長さのデータが位置する領域、および、設定次元数のデータが位置する領域の中の少なくとも一つに基づいて確定する。
【０９６９】
Ａ２３、請求項Ａ１９に記載の装置であって、前記細粒度領域のサイズ及び／又は数は、ハードウェア計算能力、および、ハードウェア帯域幅の中の少なくとも一つに基づいて確定する。
【０９７０】
Ａ２４、請求項Ａ１９に記載の装置であって、前記第１の操作は、第１の処理命令の操作であり、前記第２の操作は、第２の処理命令の操作であり、前記第２の処理命令は、命令キュー中で前記第１の処理命令の前に位置する処理命令である。
Ａ２５、請求項Ａ１９乃至Ａ２４の中のいずれか１項に記載の装置であって、前記装置は、
【０９７１】
前記第１の操作の現在操作している第１の細粒度領域の第１の位置情報、および、前記第２の操作の現在操作している第２の細粒度領域の第２の位置情報を記録するための位置記録モジュールをさらに備え、
前記実行モジュールは、
前記第１の位置情報と前記第２の位置情報とが不一致していると、前記第１の操作を実行するための第１の実行サブモジュールを備える。
【０９７２】
Ａ２６、請求項Ａ２５に記載の装置であって、前記第１の位置情報は、第１の操作の既に操作を完成した細粒度領域の第１の数を含み、前記第２の位置情報は、第２の操作の既に操作を完成した細粒度領域の第２の数を含み、
前記第１の実行サブモジュールは、さらに、
前記第１の操作が前記第２の操作の後の操作であり、且つ、前記第１の数が前記第２の数よりも小さい場合、前記第１の操作を実行する。
Ａ２７、請求項Ａ１９に記載の装置であって、前記目標記憶領域は、操作可能領域および操作不可領域を含み、前記重なり判断モジュールは、
【０９７３】
前記第２の操作が存在し、且つ、前記第１の操作の現在の対象となる第１の細粒度領域が前記操作可能領域内に位置する場合、前記第１の操作の現在の対象となる第１の細粒度領域と前記第２の操作の現在の対象となる第２の細粒度領域との間が重なるか否かを判断するための判断サブモジュールを備える。
【０９７４】
Ａ２８、請求項Ａ２７に記載の装置であって、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域の前記操作不可領域における位置は、前記第２の操作の操作位置に従って更新され、前記装置は、
【０９７５】
前記第２の操作の対象となる第２の細粒度領域が前記操作不可領域から移動して出た後、前記操作不可領域の位置を更新するための更新モジュールをさらに備える。
【０９７６】
Ａ２９、請求項Ａ２７に記載の装置であって、前記操作不可領域は、前記第２の細粒度領域を含む複数の細粒度領域であり、且つ、前記第２の細粒度領域は、前記操作不可領域内の設定位置に位置し、
前記操作不可領域の位置は、前記第２の操作の操作位置に従って更新される。
Ａ３０、請求項Ａ１９に記載の装置であって、前記目標記憶領域が、循環バッファ記憶領域を含む。
【０９７７】
Ａ３１、請求項Ａ１９に記載の装置であって、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、
前記実行モジュールは、
【０９７８】
前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断するための第１の状態判断サブモジュールと、
前記第１の細粒度領域の状態識別子が完成状態である場合、前記第１の操作を実行するための第２の実行サブモジュールと、を備える。
【０９７９】
Ａ３２、請求項Ａ１９に記載の装置であって、前記細粒度領域は、状態識別子を含み、前記状態識別子は、前記細粒度領域に対する操作の完成状態または未完成状態を含み、
前記実行モジュールは、
前記第１の細粒度領域の状態識別子が完成状態であるか否かを判断するための第２の状態判断サブモジュールと、
【０９８０】
前記第１の細粒度領域の状態識別子が完成状態であり、且つ、前記第１の細粒度領域と前記第２の細粒度領域との間が重ならない場合、前記第１の操作を実行するための第３の実行サブモジュールと、を備える。
【０９８１】
Ａ３３、請求項Ａ１９に記載の装置であって、前記第１の操作と前記第２の操作の目標のオペランドは、一致しており、前記目標記憶領域は、前記目標オペランドの記憶領域である。
【０９８２】
Ａ３４、請求項Ａ１９に記載の装置であって、前記目標記憶領域は、第１の操作の第１のオペランドの第１の記憶領域と第２の操作の第２のオペランドの第２の記憶領域との間の重なる領域である。
Ａ３５、請求項Ａ１９乃至Ａ３４の中のいずれか１項に記載の装置であって、前記装置は、
目標記憶領域が位置する記憶領域全体を複数の細粒度領域に区分けするための第１の設定モジュールをさらに備える。
Ａ３６、請求項Ａ１９乃至Ａ３５の中のいずれか１項に記載の装置であって、前記装置は、
【０９８３】
第１の操作に携える第１の細粒度区分け情報に基づいて、前記第１の操作の第１のオペランドの第１の記憶領域を複数の細粒度領域に区分けするための第２の設定モジュールと、
【０９８４】
第２の操作に携える第２の細粒度区分け情報に基づいて、前記第２の操作の第２のオペランドの第２の記憶領域を複数の細粒度領域に区分けするための第３の設定モジュールと、をさらに備える。
Ａ３７、人工知能チップであって、前記人工知能チップは、請求項Ａ１９乃至Ａ３６の中のいずれか１項に記載のプロセッサ操作装置を備える。
Ａ３８、電子デバイスであって、前記電子デバイスは、請求項Ａ３７に記載の人工知能チップを備える。
【０９８５】
Ａ３９、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ３７に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０９８６】
Ａ４０、請求項Ａ３９に記載のボードカードであって、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
前記人工知能チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、
前記インターフェース装置は、標準ＰＣＩＥインターフェースである。  
【０９８７】
以上、本発明の各実施例を既に説明したが、上記の説明は例示的なのものであり、網羅的なものではなく、開示された各実施例に限定されるない。当業者にとって、説明された各実施例の範囲および精神から逸脱することなく、多くの修正および変更はいずれも明らかである。本明細書で所用される用語の選択は、各実施例の原理、実際の適用、または、市場における技術の改善を最もよく解釈すること、または、当業者が本明細書に開示される各実施例を理解できるようにすることを意図している。
【図１ａ】
2021520591.tif 000052
【図１ｂ】
2021520591.tif 000053
【図１ｃ】
2021520591.tif 000054
【図１ｄ１】
2021520591.tif 000055
【図１ｄ２】
2021520591.tif 000056
【図１ｅ】
2021520591.tif 000057
【図１ｆ】
2021520591.tif 000058
【図１ｇ】
2021520591.tif 000059
【図２】
2021520591.tif 000060
【図３ａ】
2021520591.tif 000061
【図３ｂ】
2021520591.tif 000062
【図３ｃ１】
2021520591.tif 000063
【図３ｃ２】
2021520591.tif 000064
【図３ｃ３】
2021520591.tif 000065
【図３ｃ４】
2021520591.tif 000066
【図３ｃ５】
2021520591.tif 000067
【図３ｄ】
2021520591.tif 000068
【図３ｅ】
2021520591.tif 000069
【図３ｆ】
2021520591.tif 000070
【図３ｇ】
2021520591.tif 000071
【図４】
2021520591.tif 000072
【図５ａ】
2021520591.tif 000073
【図５ｂ】
2021520591.tif 000074
【図６ａ】
2021520591.tif 000075
【図６ｂ】
2021520591.tif 000076
【図７ａ】
2021520591.tif 000077
【図７ｂ】
2021520591.tif 000078
【図８】
2021520591.tif 000079
2021520591.tif 000080
2021520591.tif 000081
2021520591.tif 000082
2021520591.tif 000083
2021520591.tif 000084
2021520591.tif 000085
2021520591.tif 000086
2021520591.tif 000087
2021520591.tif 000088
2021520591.tif 000089
2021520591.tif 000090
2021520591.tif 000091
2021520591.tif 000092
2021520591.tif 000093
2021520591.tif 000094
2021520591.tif 000095
2021520591.tif 000096
2021520591.tif 000097
2021520591.tif 000098
2021520591.tif 000099
【手続補正書】
【提出日】令和2年11月18日(2020.11.18)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１ａ】
2021520591.tif 000100
【図１ｂ】
2021520591.tif 000101
【図１ｃ】
2021520591.tif 000102
【図１ｄ１】
2021520591.tif 000103
【図１ｄ２】
2021520591.tif 000104
【図１ｅ】
2021520591.tif 000105
【図１ｆ】
2021520591.tif 000106
【図１ｇ】
2021520591.tif 000107
【図２】
2021520591.tif 000108
【図３ａ】
2021520591.tif 000109
【図３ｂ】
2021520591.tif 000110
【図３ｃ１】
2021520591.tif 000111
【図３ｃ２】
2021520591.tif 000112
【図３ｃ３】
2021520591.tif 000113
【図３ｃ４】
2021520591.tif 000114
【図３ｃ５】
2021520591.tif 000115
【図３ｄ】
2021520591.tif 000116
【図３ｅ】
2021520591.tif 000117
【図３ｆ】
2021520591.tif 000118
【図３ｇ】
2021520591.tif 000119
【図４】
2021520591.tif 000120
【図５ａ】
2021520591.tif 000121
【図５ｂ】
2021520591.tif 000122
【図６ａ】
2021520591.tif 000123
【図６ｂ】
2021520591.tif 000124
【図７ａ】
2021520591.tif 000125
【図７ｂ】
2021520591.tif 000126
【図８】
2021520591.tif 000127
【国際調査報告】
2021520591.tif 000128
2021520591.tif 000129
2021520591.tif 000130
2021520591.tif 000131