(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-03
(54)【発明の名称】アトミック性維持方法、プロセッサ及び電子機器
(51)【国際特許分類】
G06F 9/34 20180101AFI20241126BHJP
G06F 9/38 20180101ALI20241126BHJP
【FI】
G06F9/34 350Z
G06F9/38 310G
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024534618
(86)(22)【出願日】2022-12-08
(85)【翻訳文提出日】2024-06-14
(86)【国際出願番号】 CN2022137510
(87)【国際公開番号】W WO2023104146
(87)【国際公開日】2023-06-15
(31)【優先権主張番号】202111507703.X
(32)【優先日】2021-12-10
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】512110547
【氏名又は名称】▲龍▼芯中科技▲術▼股▲フン▼有限公司
【氏名又は名称原語表記】LOONGSON TECHNOLOGY CORPORATION LIMITED
【住所又は居所原語表記】Loongson Industrial Park, Building 2, Zhongguancun Environmental Protection Park, Haidian District, Beijing, China
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】ワン ウェンシアン
【テーマコード(参考)】
5B013
5B033
【Fターム(参考)】
5B013AA14
5B013DD01
5B033AA14
5B033DB09
(57)【要約】
本願は、アトミック性維持方法、プロセッサ及び電子機器を提供し、前記方法は、ベクトルアクセス記憶命令に従って1以上の正の整数であるN個のアクセス記憶操作を生成するステップと、前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップと、前記N個のアクセス記憶操作を処理するステップと、前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の処理も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じるステップと、を含む。本願は、ベクトル命令のアトミック性の維持を実現することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ベクトルアクセス記憶命令に従って、1以上の正の整数であるN個のアクセス記憶操作を生成するステップと、
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップと、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じるステップと、を含む、ことを特徴とするアトミック性維持方法。
【請求項2】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作の処理中に割り込みイベント、例外イベント、バリア命令のうちの少なくとも1つが存在しているか否かを確認するステップと、
存在している場合、前記N個のアクセス記憶操作の処理中に、前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在していると判定するステップと、を含む、ことを特徴とする請求項1に記載のアトミック性維持方法。
【請求項3】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップの前に、
前記ベクトルアクセス記憶命令の処理中に、割り込みイベントが発生したことに応答し、前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加するステップをさらに含み、
前記割り込みフラグは、前記ベクトルアクセス記憶命令の処理中に割り込みイベントが発生したことを指示するためのものである、ことを特徴とする請求項2に記載のアトミック性維持方法。
【請求項4】
前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加するステップは、
前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に対して、前記割り込みフラグを追加するステップを含む、ことを特徴とする請求項3に記載のアトミック性維持方法。
【請求項5】
前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加するステップは、
前記N個のアクセス記憶操作のすべてのアクセス記憶操作に対して、前記割り込みフラグを追加するステップを含む、ことを特徴とする請求項3に記載のアトミック性維持方法。
【請求項6】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認するステップを含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないステップは、
前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされている場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行するステップを含む、ことを特徴とする請求項3~5のいずれか1項に記載のアトミック性維持方法。
【請求項7】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認するステップを含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作はすべての処理効果を生じるステップは、
前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行するステップと、
前記N個のアクセス記憶操作の実行結果を提出するステップと、
前記N個のアクセス記憶操作の実行結果がいずれも提出終了したことが確認されると、前記割り込みイベントを処理するステップと、を含む、ことを特徴とする請求項3~5のいずれか1項に記載のアトミック性維持方法。
【請求項8】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認するステップを含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないステップは、
前記最初のアクセス記憶操作に前記割り込みフラグがマークされている場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行するステップを含む、ことを特徴とする請求項3~5のいずれか1項に記載のアトミック性維持方法。
【請求項9】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認するステップを含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作はすべての処理効果を生じるステップは、
前記最初のアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行するステップと、
前記N個のアクセス記憶操作の実行結果を提出するステップと、
前記N個のアクセス記憶操作の実行結果が提出終了したことが確認されると、前記割り込みイベントを処理するステップと、を含む、ことを特徴とする請求項3~5のいずれか1項に記載のアトミック性維持方法。
【請求項10】
前記アトミック性維持方法は、
前記N個のアクセス記憶操作のいずれにも前記割り込みフラグがマークされていない場合、前記N個のアクセス記憶操作を実行するステップと、
前記N個のアクセス記憶操作の実行結果を提出するステップと、をさらに含む、ことを特徴とする請求項3~5のいずれか1項に記載のアトミック性維持方法。
【請求項11】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認して、確認結果を得るステップと、
前記N個のアクセス記憶操作を実行するステップと、を含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないステップは、
前記確認結果は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せずに、例外イベントを報告するステップを含む、ことを特徴とする請求項2~10のいずれか1項に記載のアトミック性維持方法。
【請求項12】
前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認して、確認結果を得るステップは、
前記N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得するステップと、
各前記アクセス記憶アドレスについて例外イベントトリガーを満たす状況が存在しているか否かを確認し、存在している場合、前記Nアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していることを確認結果として決定するが、そうでない場合、前記N個のアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していないことを確認結果として決定するステップと、を含み、
前記例外イベントトリガーを満たす状況は、
いずれかの前記アクセス記憶操作のパーミッションに属性パーミッション違反がある状況、
アドレス変換テーブルにはいずれかの前記アクセス記憶アドレスも含まれていない状況、
前記ベクトルアクセス記憶命令のアクセス記憶アドレスが境界外アドレスである状況、のうちの少なくとも1つを含む、ことを特徴とする請求項11に記載のアトミック性維持方法。
【請求項13】
前記N個のアクセス記憶操作を実行するステップの後、
前記確認結果は、前記N個のアクセス記憶操作がいずれも処理中に例外イベントを発生させないことを指示する場合、前記N個のアクセス記憶操作の実行結果を提出するステップ、をさらに含む、ことを特徴とする請求項11又は12に記載のアトミック性維持方法。
【請求項14】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
バリア命令が受信されたか否かを確認するステップを含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じるステップは、
前記バリア命令を取得することに応答し、処理中のすべての前記N個のアクセス記憶操作が実行終了されて実行結果が提出されたと確認されると、前記バリア命令を処理するステップ、または
前記ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を実行せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を実行するステップを含む、ことを特徴とする請求項2~10のいずれか1項に記載のアトミック性維持方法。
【請求項15】
前記ベクトルアクセス記憶命令は、Load命令又はStore命令であり、
前記ベクトルアクセス記憶命令がLoad命令である場合に、前記N個のアクセス記憶操作を実行するステップは、
前記ベクトルアクセス記憶命令で指示されるアドレスのオペランドをメモリから指定された汎用レジスタに読み出す操作を実行するステップを含み、
前記ベクトルアクセス記憶命令がStore命令である場合に、前記N個のアクセス記憶操作を実行するステップは、
前記ベクトルアクセス記憶命令で指示されるアドレスのオペランドを指定された汎用レジスタからメモリに書き込む操作を実行するステップを含む、ことを特徴とする請求項1~14のいずれか1項に記載のアトミック性維持方法。
【請求項16】
ベクトルアクセス記憶命令を取得して、前記ベクトルアクセス記憶命令に従って、1以上の正の整数であるN個のアクセス記憶操作を生成することに用いられる復号化ユニットと、
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認すること、及び、前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じることに用いられる処理ユニットと、を含む、ことを特徴とするプロセッサ。
【請求項17】
前記処理ユニットは、具体的には、
前記N個のアクセス記憶操作の処理中に、割り込みイベント、例外イベント、バリア命令のうちの少なくとも1つが存在しているか否かを確認すること、及び、存在している場合、前記N個のアクセス記憶操作の処理中に、前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在していると判定することに用いられる、ことを特徴とする請求項16に記載のプロセッサ。
【請求項18】
前記処理ユニットは、発信ユニットを含み、
前記発信ユニットは、前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認する前に、前記ベクトルアクセス記憶命令の処理中に、割り込みイベントが発生したことに応答し、前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加することに用いられ、前記割り込みフラグは、前記ベクトルアクセス記憶命令の処理中に割り込みイベントが発生したことを指示するためのものである、ことを特徴とする請求項17に記載のプロセッサ。
【請求項19】
前記発信ユニットは、具体的には、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に対して、前記割り込みフラグを追加することに用いられる、ことを特徴とする請求項18に記載のプロセッサ。
【請求項20】
前記発信ユニットは、具体的には、前記N個のアクセス記憶操作のすべてのアクセス記憶操作に対して、前記割り込みフラグを追加することに用いられる、ことを特徴とする請求項18に記載のプロセッサ。
【請求項21】
前記発信ユニットは、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作をも発信しないことに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項22】
前記処理ユニットは、実行ユニットをさらに含み、
前記発信ユニットは、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされていると決定する場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項23】
前記処理ユニットは、実行ユニット及び提出ユニットをさらに含み、
前記発信ユニットは、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされていると決定する場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行することに用いられ、
前記提出ユニットは、前記N個のアクセス記憶操作の実行結果を提出することに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項24】
前記発信ユニットは、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認し、前記最初のアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作のいずれも発信しないことに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項25】
前記処理ユニットは、実行ユニットをさらに含み、
前記発信ユニットは、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認すること、及び、前記最初のアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項26】
前記処理ユニットは、実行ユニット及び提出ユニットをさらに含み、
前記発信ユニットは、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認すること、及び、前記最初のアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行することに用いられ、
前記提出ユニットは、前記N個のアクセス記憶操作の実行結果を提出することに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項27】
前記処理ユニットは、実行ユニット及び提出ユニットをさらに含み、
前記発信ユニットは、前記N個のアクセス記憶操作のいずれにも前記割り込みフラグがマークされていない場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記N個のアクセス記憶操作を実行することに用いられ、
前記提出ユニットは、前記N個のアクセス記憶操作の実行結果を提出することに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項28】
前記処理ユニットは、発信ユニット、実行ユニット、及び提出ユニットを含み、
前記発信ユニットは、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記N個のアクセス記憶操作を実行するとともに、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認して、確認結果を得ることに用いられ、
前記提出ユニットは、前記確認結果は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せずに、例外イベントを報告することに用いられる、ことを特徴とする請求項17に記載のプロセッサ。
【請求項29】
前記実行ユニットは、前記N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得すること、及び、各前記アクセス記憶アドレスについて例外イベントトリガーを満たす状況が存在しているか否かを確認し、存在している場合、前記Nアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していることを確認結果として決定するが、そうでない場合、前記N個のアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していないことを確認結果として決定することに用いられ、
前記例外イベントトリガーを満たす状況は、
いずれかの前記アクセス記憶操作のパーミッションに属性パーミッション違反がある状況、
アドレス変換テーブルにはいずれかの前記アクセス記憶アドレスも含まれていない状況、
前記ベクトルアクセス記憶命令のアクセス記憶アドレスが境界外アドレスである状況、のうちの少なくとも1つを含む、ことを特徴とする請求項27又は28に記載のプロセッサ。
【請求項30】
前記提出ユニットは、前記確認結果は、前記N個のアクセス記憶操作がいずれも処理中に例外イベントを発生させないことを指示する場合、前記N個のアクセス記憶操作の実行結果を提出することに用いられる、ことを特徴とする請求項29に記載のプロセッサ。
【請求項31】
前記処理ユニットは、
バリア命令が受信されたと決定されると、前記バリア命令に応答すること、及び、処理中のすべての前記N個のアクセス記憶操作が実行終了されて実行結果が提出されたと確認されると、前記バリア命令を処理すること、または
前記ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を実行せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる、ことを特徴とする請求項16に記載のプロセッサ。
【請求項32】
メモリ、及び1つ以上のプログラムを含む電子機器であって、前記1つ以上のプログラムは、前記メモリに記憶されており、請求項1~15の1つ又は複数に記載のアトミック性維持方法が1つ以上のプロセッサにより実行されるように構成されている、ことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、コンピュータ技術の分野に関し、特に、アトミック性維持方法、プロセッサ及び電子機器に関する。
【背景技術】
【0002】
命令のアトミック性とは、命令の実行開始から実行終了までの過程が中断されないという性質を指す。例えば、命令Aを例にとると、命令Aがアトミック性を持つ場合、命令Aの実行が開始されると、割り込みイベントや例外イベントなどのイベントの影響を受けず、命令Aの実行が終了するまで命令の実行を一時停止しない。
【0003】
命令の実行中に、割り込みイベントや例外イベントなどのイベントの影響を受け、命令の実行が一時中断されることがよくある。例えば、命令Bを例にとると、命令Bがアトミック性を持っていない場合、命令Bの実行中にCPUが割り込みイベントを同時に検出すると、命令Bの実行を一時中断し、当該割り込みイベントの実行を優先し、割り込みイベントの実行が終了すると命令Bの実行を再開する。割り込みイベントや例外イベントなどの影響により、命令のアトミック性が保たれなくなる。
【0004】
従来の技術においては、任意の1つのベクトル命令に対する処理では、プロセッサ内部の単一の命令の中に同一又は類似の操作が複数存在するが、ソフトウェア開発者の視点から見ると、単一のベクトル命令はCPUの最小操作ユニットであり、すなわち単一のベクトル命令はアトミック性を持つべきである。したがって、プロセッサの設計はベクトル命令の実行のアトミック性を確保する必要がある。
【0005】
実際の応用において、プロセッサが1つのベクトル命令を分割して得られた複数の操作は同時並行的に実行されており、命令の実行効率を高めるために設計した同時並行実行メカニズムはベクトル命令のアトミック性の維持にチャレンジをもたらした。加えて、命令システムには、バリア命令がさらに含まれており、バリア命令は、バリア命令の前後のアクセス記憶操作を隔離することに用いられる。一方、プロセッサの内部では、バリア命令を他のベクトル命令から分割して得られた複数の操作も同時並行的に実行される。上記の様々な要因は、ベクトル命令のアトミック性を確保することにさらなる困難をもたらしている。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願は、従来の技術において、ベクトル命令分割後の複数の操作の並列実行メカニズム、及びバリア命令とベクトル命令の並行実行メカニズムに起因してベクトル命令のアトミック性を確保できないという問題を解決するために、アトミック性維持方法、プロセッサ及び電子機器を提供する。
【課題を解決するための手段】
【0007】
上記の問題を解決するために、本願は、アトミック性維持方法を開示し、前記方法は、
ベクトルアクセス記憶命令を、1以上の正の整数であるN個のアクセス記憶操作に分割するステップと、
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップと、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じるステップと、を含む。
【0008】
上記の問題を解決するために、本願は、プロセッサをさらに開示し、前記プロセッサは、
ベクトルアクセス記憶命令を取得して、前記ベクトルアクセス記憶命令に従って、1以上の正の整数であるN個のアクセス記憶操作を生成することに用いられる復号化ユニットと、
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認すること、及び前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じることに用いられる処理ユニットと、を含む。
【0009】
上記の問題を解決するために、本願は、電子機器をさらに開示し、前記電子機器は、メモリ、及び1つ以上のプログラムを含み、1つ以上のプログラムは、メモリに記憶されており、本願における1つ又は複数のアトミック性維持方法を1つ以上のプロセッサにより処理するように構成されている。
【発明の効果】
【0010】
本願は、従来の技術に比べて、次の利点がある。
【0011】
本願の実施例により提供されるアトミック性維持方法、プロセッサ及び電子機器は、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成するとともに、N個のアクセス記憶操作の処理中にベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認し、イベントが存在している場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の処理も任意の処理効果を生じないか、又はN個のアクセス記憶操作はすべての処理効果を生じることによって、ベクトル命令のアトミック性の維持を実現することができる。
【図面の簡単な説明】
【0012】
【
図1】本願の実施例1による1つのアトミック性維持方法のステップフローチャートである。
【
図2】本願の実施例2による1つのアトミック性維持方法のステップフローチャートである。
【
図3】本願の実施例3による1つのアトミック性維持方法のステップフローチャートである。
【
図4】本願の実施例4による1つのアトミック性維持方法のステップフローチャートである。
【
図5】本願の実施例5による1つのアトミック性維持方法のステップフローチャートである。
【
図6-A】本願の実施例5による1つのプロセッサの構造ブロック図である。
【
図6-B】本願の実施例5による別のプロセッサの構造ブロック図である。
【
図7】本願の実施例6による1つの電子機器の構造ブロック図である。
【発明を実施するための形態】
【0013】
本願の上記の目的、特徴及び利点をさらに明瞭し、理解しやすくするために、以下は図面と特定の実施形態を参照して本願についてさらに詳細に説明する。
【0014】
実施例1
図1を参照すると、
図1は、本願の実施例1に係る1つのアトミック性維持方法のステップフローチャートを示している。
【0015】
本願の実施例により提供されるアトミック性維持方法は、その実行主体がCPU(CentrAl Processing Unit、中央処理装置)であってもよく、次のステップを含む。
【0016】
ステップ101では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成し、Nが1以上の正の整数である。
【0017】
本願の実施例は、ベクトルアクセス記憶操作命令の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するとともに、確認結果に従って、ベクトルアクセス記憶命令を実行するか否かを決定するか又はベクトルアクセス記憶命令の実行結果を提出して命令のアトミック性を実現するというシーンに適用され得る。
【0018】
ベクトルアクセス記憶命令は、1セットのデータに対して同じ処理を同時に実現することができ、実際の応用において、ベクトルアクセス記憶命令を受信した後、ベクトルアクセス記憶命令を復号化して、N個のアクセス記憶操作に分割することができ、Nが1以上の正の整数である。
【0019】
本例では、ベクトルアクセス記憶命令は、Load命令であってもよいし、Store命令であってもよい。
【0020】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、ステップ102を実行する。
【0021】
ステップ102では、前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認する。
【0022】
従来の技術において、ベクトルアクセス記憶命令処理のパイプラインは、1、命令取得及び復号化するステップ、すなわち、ベクトルアクセス記憶命令を取得して、ベクトルアクセス記憶命令を復号化するステップと、2、発信するステップ、すなわち、操作キューの命令を操作タイプに応じてリザーブステーションに送信するとともに、発信中にレジスタの値及び結果ステータスフィールドを読み取るステップと、3、実行するステップ、必要なオペランドがすべて準備できたら、実行するステップと、4、ライトバックするステップ、実行結果を結果バスに伝送するとともに、リザーブステーションを解放するステップと、5、提出するステップ、すなわち、キューにおける命令実行結果がライトバックされて且つ例外が発生しなかった場合に、命令の実行結果をレジスタ又はメモリにライトバックするステップと、を含むことができる。
【0023】
これに基づき、本願の実施例では、ベクトルアクセス記憶命令を処理することは、ベクトルアクセス記憶命令に対して、命令取得、復号化、発信、実行、ライトバック、及び提出のうちのいずれかの操作又は複数の操作の組み合わせを実施することを意味し、アクセス記憶操作を処理することは、アクセス記憶操作に対して、発信、実行、及び提出のうちのいずれかの操作又は複数の操作の組み合わせを実施することを含む。
【0024】
本例で言及したイベントとは、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントを指し、本例では、イベントは、割り込みイベント、例外イベント、バリア命令の検出などのイベントのうちの少なくとも1つを含むことができる。
【0025】
割り込みイベント(外部割り込みとも呼ばれる)とは、CPU実行命令外からのイベントを指す。
【0026】
例外イベントとは、CPU実行命令内部からのイベントを指す。
【0027】
バリア命令とは、異なる操作間の同期を確保するための命令を指し、例えば、バリア命令によって、load/storeアクセス記憶操作間の同期機能を完成させるとともに、load/storeアクセス記憶操作の同期対象と同期程度を指示することができる。
【0028】
ベクトルアクセス記憶命令のアトミック性とは、1つのベクトルアクセス記憶命令が実行開始から実行終了、提出完了するまで中断されないという性質を指す。
【0029】
したがって、本例では、ベクトルアクセス記憶命令をN個のアクセス記憶操作に分割した後、N個のアクセス記憶操作の処理中に、N個のアクセス記憶操作を確認し、すなわち、N個のアクセス記憶操作の処理中にベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認することができる。選択的には、アクセス記憶操作を処理することは、アクセス記憶操作に対して、発信、実行、及び発信のうちのいずれかの操作又は複数の操作の組み合わせを実施することを含む場合に、N個のアクセス記憶操作に対して、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントの確認を実施し、すなわち、N個のアクセス記憶操作を発信する過程で、N個のアクセス記憶操作を確認するか、または、N個のアクセス記憶操作を実行する過程で、N個のアクセス記憶操作を確認するか、または、N個のアクセス記憶操作を提出する過程で、N個のアクセス記憶操作を確認する。具体的には、N個のアクセス記憶操作をどの段階で確認するかは、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベント(すなわち、割り込みイベント、例外イベント、バリア命令など)のタイプに応じて決定される。
【0030】
N個のアクセス記憶操作の処理中にベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認した後、ステップ103を実行する。
【0031】
ステップ103では、前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じる。
【0032】
本願の実施例では、アクセス記憶操作が処理効果を生じないことは、アクセス記憶操作が実行されているが未だに提出されていないこと、またはアクセス記憶操作が実行されないこと、またはアクセス記憶操作が発信されないことのいずれかを指し、一方、アクセス記憶操作がすべての処理効果を生じることは、ベクトルアクセス記憶命令を分割して得たN個のアクセス記憶操作がすべて実行され、且つN個のアクセス記憶操作の実行結果がすべて提出されていることを指す。
【0033】
本願の実施例では、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しない場合、上記の命令パイプラインの処理順序に従い、N個のアクセス記憶操作を実行して、N個のアクセス記憶操作の実行結果を提出することができ、具体的には、ベクトルアクセス記憶命令がLoad命令である場合に、ベクトルアクセス記憶命令で指示されるアドレスのオペランドをメモリから指定された汎用レジスタに読み出す操作を実行することができる。一方、ベクトルアクセス記憶命令がStore命令である場合に、ベクトルアクセス記憶命令で指示されるアドレスのオペランドを指定された汎用レジスタからメモリに書き込む操作を実行することができる。
【0034】
本願の実施例では、N個のアクセス記憶操作の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在していることを確認すると、当該ベクトルアクセス記憶命令を処理せず、すなわち、ベクトルアクセス記憶命令の今回の処理を破棄してもよいし、ベクトルアクセス記憶命令の実行結果を提出せず、当該ベクトルアクセス記憶命令を実行してもよい。具体的には、第1に、N個のアクセス記憶操作に割り込みフラグがマークされていることは確認される場合には、N個のアクセス記憶操作の処理中に割り込みイベントが存在していることを示しており、この場合、当該ベクトルアクセス記憶命令の今回の実行を破棄し、すなわち、N個のアクセス記憶操作はすべて実行されないか、または、N個のアクセス記憶操作は発信されない。第2に、N個のアクセス記憶操作の処理中に例外イベントが存在している場合には、当該ベクトルアクセス記憶命令を実行するが、実行結果を提出しない。第3に、バリア命令に対して、まずバリア命令を実行し、アクセス記憶操作をすべて実行又は発信せず、バリア命令の処理が終了すると、アクセス記憶操作を実行して、実行結果を提出するようにしてもよい。当該プロセスについて、実施例2、実施例3、及び実施例4を参照して、割り込みイベント、例外イベント、及びバリア命令という3つの次元からそれぞれ詳細に説明するため、本実施例はここで詳細な説明を省略する。
【0035】
また、本願の実施例では、N個のアクセス記憶操作の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在していることを確認すると、ベクトルアクセス記憶命令をすべて実行するとともに、ベクトルアクセス記憶命令の実行結果を提出し、そして、ベクトルアクセス記憶命令がアトミック性を持たないようにする上記のイベントを処理するようにしてもよい。具体的には、第1に、N個のアクセス記憶操作に割り込みフラグがマークされていることは確認された場合には、N個のアクセス記憶操作の処理中に割り込みイベントが存在していることを示しており、この場合、N個のアクセス記憶操作を発信して実行し、この後、N個のアクセス記憶操作の実行結果を提出し、実行結果がすべて提出されると、割り込みイベントに応答する。第2に、バリア命令に対して、まず、すべてのアクセス記憶操作を発信して実行し、すべてのアクセス記憶操作の実行結果が提出されると、バリア命令を処理するようにしてもよい。例外イベントは処理待ち命令内部のイベントであるため、命令処理中に、例外イベントに遭遇すると、命令のすべての実行効果の提出は発生することがない。当該プロセスについて、実施例2、実施例3、及び実施例4を参照して、割り込みイベント及びバリア命令という2つの次元からそれぞれ詳細に説明するため、本実施例はここで詳細な説明を省略する。
【0036】
本願の実施例により提供されるアトミック性維持方法は、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成するとともに、N個のアクセス記憶操作の処理中にベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認し、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在している場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の処理も任意の処理効果を生じないか、又はN個のアクセス記憶操作はすべての処理効果を生じることによって、ベクトル命令のアトミック性の維持を実現することができ、上記の技術的解決手段を採用して、従来の技術における、ベクトル命令の並行実行メカニズム、またはバリア命令を他のベクトル命令から分割して得られた複数の操作の同時並行実行メカニズムに対して、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントに遭遇すると、アクセス記憶操作をすべて実行せず、アクセス記憶操作の実行結果をすべて提出しないか、またはアクセス記憶操作の実行結果をすべて提出することによって、1つのベクトルアクセス記憶命令には、当該ベクトルアクセス記憶命令を分割して得られたアクセス記憶操作の一部が実行効果を生じているが、アクセス記憶操作の他方の部分が実行効果を生じていないという現象は発生することがなく、ベクトル命令のアトミック性は確実に確保される。
【0037】
実施例2
図2を参照すると、
図2は、本願の実施例2に係る1つのアトミック性維持方法のステップフローチャートを示している。
【0038】
本願の実施例により提供されるアトミック性維持方法は、その実行主体がCPUであってもよく、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが割り込みイベントであることに基づき、アトミック性維持方法は、次のステップを含む。
【0039】
ステップ201では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成し、Nが1以上の正の整数である。
【0040】
本願の実施例では、ベクトルアクセス記憶命令は、1セットのデータに対して同じ処理を同時に実現することができ、実際の応用において、ベクトルアクセス記憶命令を受信した後、ベクトルアクセス記憶命令を分割して、N個のアクセス記憶操作に分割することができ、Nが1以上の正の整数である。
【0041】
本例では、ベクトルアクセス記憶命令は、Load命令であってもよいし、Store命令であってもよい。
【0042】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、ステップ202を実行する。
【0043】
ステップ202では、N個のアクセス記憶操作の処理中にベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しており、且つ当該イベントが割り込みイベントであることを確認すると、N個のアクセス記憶操作の処理中に割り込みイベントが存在していることを示すために、対応するフラグをN個のアクセス記憶操作に追加することができる。
【0044】
本願の実施例では、N個のアクセス記憶操作の処理中に割り込みイベントが存在しているか否かを確認するステップは、N個のアクセス記憶操作の発信段階において実行されてもよいし、N個のアクセス記憶操作の実行段階において実行されてもよい。
【0045】
本願の1つの特定の実現形態では、割り込みグラフのマーク方法は、ステップA1を含むことができる。
【0046】
ステップA1では、前記ベクトルアクセス記憶命令の処理中に、割り込みが発生したことに応答し、前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加する。
【0047】
実際の応用において、ベクトルアクセス記憶命令の数は膨大で、1つのベクトルアクセス記憶命令が得られると、ベクトルアクセス記憶命令は発信及び実行のためにキャッシュに追加されるようになり、ベクトルアクセス記憶命令の処理中に、ベクトルアクセス記憶命令に対して、割り込みイベントの確認を実施し、ベクトルアクセス記憶命令の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにする割り込みイベントが存在しているか否かを確認することができ、具体的に実現する際、割り込みイベントが外部イベントであるため、CPUは、ベクトルアクセス記憶命令の処理中に、割り込みリクエストが受信されたか否かをリアルタイムに確認して、確認結果に従い、ベクトルアクセス記憶命令の処理中に割り込みイベントが存在しているか否かを決定することができ、すなわち、CPUは、割り込みリクエストを受信すると、ベクトルアクセス記憶命令の処理中に割り込みイベントが存在しているという確認結果を決定する。
【0048】
当然ながら、ベクトルアクセス記憶命令の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにする割り込みイベントが存在しているか否かを、その他の方法を用いて確認することもでき、具体的には、割り込みイベントの確認方法は、業務上の必要に応じて決定されてもよく、本実施例はこれを限定しない。
【0049】
本願の実施例では、割り込みフラグは、N個のアクセス記憶操作の処理中に割り込みイベントが存在していることを指示するためのフラグとして機能することができ、具体的には、割り込みフラグの表示形態は、業務上の必要に応じて決定されてもよく、本実施例はこれを限定しない。
【0050】
さらに、N個のアクセス記憶操作の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しており、且つ当該イベントが割り込みイベントであることは確認された場合、アクセス記憶操作に割り込みフラグを追加することができる。
【0051】
具体的に実現する際、アクセス記憶操作に割り込みフラグを追加する場面は、次の2つに分けられる。
【0052】
1、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に割り込みフラグを追加する場面であり、具体的には、最初のアクセス記憶操作に割り込みフラグを追加してもよいし、最後のアクセス記憶操作に割り込みフラグを追加してもよいし、最初のアクセス記憶操作と最後のアクセス記憶操作との間にある任意の1つのアクセス記憶操作に割り込みフラグを追加してもよく(上記の最初、最後の記述は、N個のアクセス記憶操作の実行順序に従って限定されていることを理解されたい)、例えば、ベクトルアクセス記憶命令を5個のアクセス記憶操作に分割することができ、これらの5個のアクセス記憶操作の実行順序の早い順に従って順次並べ替えると、アクセス記憶操作1、アクセス記憶操作2、アクセス記憶操作3、アクセス記憶操作4、アクセス記憶操作5の順になり、割り込みフラグを追加する際、最初のアクセス記憶操作(すなわちアクセス記憶操作1)に割り込みフラグを追加してもよいし、最後のアクセス記憶操作(すなわちアクセス記憶操作5)にフラグを追加してもよいし、最初のアクセス記憶操作と最後のアクセス記憶操作との間にあるアクセス記憶操作(すなわちアクセス記憶操作2またはアクセス記憶操作3またはアクセス記憶操作4)に割り込みフラグを追加してもよい。
【0053】
N個のアクセス記憶操作のうち最初のアクセス記憶操作に割り込みフラグを追加することが好ましい。
【0054】
上述した例は、本願の実施例に係る技術的解決手段をよりよく理解するための例にすぎず、本実施例を一意に限定するものではないことを理解されたい。
【0055】
2、N個のアクセス記憶操作のすべてのアクセス記憶操作に割り込みフラグを追加する場面であり、すなわち、N個のアクセス記憶操作のいずれにも割り込みフラグを追加し、例えば、上記した例の続きとして、ベクトルアクセス記憶命令を5個のアクセス記憶操作に分割した後、これらの5個のアクセス記憶操作のいずれにも割り込みフラグを追加し、すなわち、アクセス記憶操作1、アクセス記憶操作2、アクセス記憶操作3、アクセス記憶操作4、アクセス記憶操作5のいずれにも割り込みフラグを追加してもよい。
【0056】
本願の実施例では、割り込みイベントを指示するための割り込みフラグをN個のアクセス記憶操作に追加することによって、この後のベクトルアクセス記憶命令の処理中に、当該ベクトルアクセス記憶命令がアトミック性を持っているか否かを、割り込みフラグで直感的に判定し、当該ベクトルアクセス記憶命令をどのように処理するかを決定することができる。
【0057】
ステップ203では、前記N個のアクセス記憶操作に割り込みフラグが存在しているか否かを確認する。
【0058】
本願の実施例では、上記の方法を用いて、N個のアクセス記憶操作に割り込みフラグを追加した後、N個のアクセス記憶操作に割り込みフラグがマークされているか否かを順次確認して、N個のアクセス記憶操作の処理中に割り込みイベントが存在しているか否かを決定することができる。
【0059】
N個のアクセス記憶操作に割り込みフラグを追加した後、割り込みフラグの確認方法は、次の2種類に分けられる。
【0060】
第1に、N個のアクセス記憶操作に割り込みフラグがマークされているか否かを順次確認する。
【0061】
第2に、N個のアクセス記憶操作のうちの第1のアクセス記憶操作に割り込みフラグがマークされているか否かを確認する。
【0062】
N個のアクセス記憶操作に割り込みフラグが存在していることを確認した後、ステップ204を実行する。
【0063】
N個のアクセス記憶操作のいずれにも割り込みフラグがマークされていないことを確認した後、ステップ205を実行する。
【0064】
ステップ204では、前記割り込みフラグが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じる。
【0065】
N個のアクセス記憶操作に割り込みフラグがマークされていることを確認した後、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、またはN個のアクセス記憶操作はすべての処理効果を生じ、具体的には、下記の4つの状況を参照して説明することができる。
【0066】
第1種の状況では、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に割り込みフラグがマークされていることを確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも発信又は実行せず、この場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の実行処理効果を生じず、すなわち、割り込みイベントに応答終了すると、N個のアクセス記憶操作の発信又は実行、及びN個のアクセス記憶操作の実行結果の提出を再開する。
【0067】
選択的には、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に割り込みフラグがマークされていることを、N個のアクセス記憶操作の発信段階で確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も発信せず、または、N個のアクセス記憶操作を発信するが、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも実行しないが、N個のアクセス記憶操作のいずれかのアクセス記憶操作に割り込みフラグがマークされていることを、N個のアクセス記憶操作の実行段階で確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出しない。
【0068】
第2種の状況では、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に割り込みフラグがマークされていることを確認した場合、N個のアクセス記憶操作の各アクセス記憶操作をすべて提出して実行し、N個のアクセス記憶操作の実行結果をすべて提出し、すなわち、N個のアクセス記憶操作がすべて実行完了して対応する実行結果も提出された後、割り込みイベントに応答する。
【0069】
第3種の状況では、N個のアクセス記憶操作のうちの第1のアクセス記憶操作に割り込みフラグがマークされていることを確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも発信又は実行せず、この場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じず、すなわち、割り込みイベントに応答終了すると、N個のアクセス記憶操作の発信又は実行、N個のアクセス記憶操作の実行結果の提出を再開する。
【0070】
選択的には、N個のアクセス記憶操作のうちの第1のアクセス記憶操作に割り込みフラグがマークされていることを、N個のアクセス記憶操作の発信段階で確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも発信しないか、または、N個のアクセス記憶操作を発信するが、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも実行せず、N個のアクセス記憶操作のうちの第1のアクセス記憶操作に割り込みフラグがマークされていることを、N個のアクセス記憶操作の実行段階で確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出しない。
【0071】
第4種の状況では、N個のアクセス記憶操作のうちの第1のアクセス記憶操作に割り込みフラグがマークされていることを確認した場合、N個のアクセス記憶操作の各アクセス記憶操作をすべて実行して、N個のアクセス記憶操作の実行結果をすべて提出し、すなわち、N個のアクセス記憶操作がすべて実行完了して対応する実行結果も提出された後、割り込みイベントに応答する。
【0072】
ステップ205では、前記N個のアクセス記憶操作のいずれにも前記割り込みフラグがマークされていない場合、前記N個のアクセス記憶操作を実行して、前記N個のアクセス記憶操作の実行結果を提出する。
【0073】
N個のアクセス記憶操作のいずれにも割り込みフラグがマークされていないことを確認した場合、N個のアクセス記憶操作を実行して、N個のアクセス記憶操作の実行結果を得ることができ、さらに、N個のアクセス記憶操作の実行結果を提出することができる。
【0074】
本願の実施例により提供されるアトミック性維持方法は、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成するとともに、N個のアクセス記憶操作に割り込みフラグがマークされているか否かを確認し、割り込みフラグが確認されると、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の処理も任意の処理効果を生じないか、又はN個のアクセス記憶操作はすべての処理効果を生じ、本願の技術的解決手段を採用して、ベクトルアクセス記憶操作の処理中に、割り込みイベントが発生すると、ベクトルアクセス記憶命令がすべて処理完了された後に割り込みイベントに応答すること、または割り込みイベントに応答終了した後、ベクトルアクセス記憶命令を処理することを確保することができ、これによって、ベクトルアクセス記憶命令は、割り込みイベントに影響されて、アクセス記憶操作の実行結果の一部のみが提出されていることがなく、ベクトル命令のアトミック性の維持を実現することができる。
【0075】
実施例3
図3を参照すると、
図3は、本願の実施例3に係るアトミック性維持方法のステップフローチャートを示している。
【0076】
本願の実施例により提供されるアトミック性維持方法は、その実行主体がCPUであってもよく、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが例外イベントであることに基づき、アトミック性維持方法は、次のステップを含む。
【0077】
ステップ301では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成し、Nが1以上の正の整数である。
【0078】
本願の実施例では、ベクトルアクセス記憶命令は、1セットのデータに対して同じ処理を同時に実現することができ、実際の応用において、ベクトルアクセス記憶命令を受信した後、ベクトルアクセス記憶命令を分割して、N個のアクセス記憶操作に分割することができ、Nが1以上の正の整数である。
【0079】
本例では、ベクトルアクセス記憶命令は、Load命令であってもよいし、Store命令であってもよい。
【0080】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、ステップ302を実行する。
【0081】
ステップ302では、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認して、確認結果を得る。
【0082】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認して、確認結果を得る。例外イベントの確認プロセスは、下記の特定の実現形態を参照して詳細に説明することができる。
【0083】
本願の実施例では、前記N個のアクセス記憶操作の処理中に例外イベントが存在しているか否かを確認するステップは、N個のアクセス記憶操作の実行段階において実行されてもよい。
【0084】
本願の1つの特定の実現形態では、上記のステップ302は、次のサブステップを含むことができる。
【0085】
サブステップS1では、前記N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得する。
【0086】
本願の実施例では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得することができる。
【0087】
N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得した後、サブステップS2を実行する。
【0088】
サブステップS2では、各前記アクセス記憶アドレスについて例外イベントトリガーを満たす状況が存在しているか否かを確認し、存在している場合、前記Nアクセス記憶操作の中に処理中に例外イベントを発生させるアクセス記憶操作が存在していることを確認結果として決定するが、そうでない場合、前記N個のアクセス記憶操作の中に処理中に例外イベントを発生させるアクセス記憶操作が存在していないことを確認結果として決定する。
【0089】
N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得した後、各アクセス記憶アドレスについて例外イベントトリガーを満たす状況が存在しているか否かを確認し、存在している場合、Nアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していることを確認結果として決定するが、そうでない場合、N個のアクセス記憶操作の中に処理中に例外イベントを発生させるアクセス記憶操作が存在していないことを確認結果として決定する。
【0090】
例外イベントトリガーを満たす状況は、次のいくつかの状況のうちの少なくとも1つを含む。
【0091】
1、いずれかのアクセス記憶操作のパーミッションに属性パーミッション違反がある状況であり、ここで、属性パーミッション違反は、セグメント属性パーミッション違反及びページ属性パーミッション違反を含み、属性パーミッションは主に、読み取りパーミッション、書き込みパーミッション、実行パーミッション、特権レベルパーミッションなどを指し、属性パーミッション違反は、主に、いずれかのアクセス記憶操作/ベクタアクセス記憶命令の動作が、当該アクセス記憶操作/ベクタアクセス記憶命令によってアクセスされるアドレスに対応するパーミッションと一致しているか否かを示すために使用され、一致していない場合、いずれかのアクセス記憶操作/ベクタアクセス記憶命令のパーミッションに属性パーミッション違反があると判定される。
【0092】
2、アドレス変換テーブルには、いずれかのアクセス記憶アドレスが含まれていない状況。
【0093】
3、ベクトルアクセス記憶命令のアクセス記憶アドレスは境界外アドレスである状況。
【0094】
ステップ303では、前記N個のアクセス記憶操作を実行する。
【0095】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、N個のアクセス記憶操作を実行して、N個のアクセス記憶操作の実行結果を得ることができる。
【0096】
ステップ304では、前記確認結果は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せず、例外イベントを報告する。
【0097】
例外イベントの確認結果は、N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せず、例外イベントを報告する。
【0098】
ステップ305では、前記確認結果は、前記N個のアクセス記憶操作がいずれも処理中に例外イベントを発生させないことを指示する場合、前記N個のアクセス記憶操作の実行結果を提出する。
【0099】
例外イベントの確認結果は、N個のアクセス記憶操作がいずれも処理中に例外イベントを発生させないことを指示する場合に、N個のアクセス記憶操作の実行結果を提出することができる。
【0100】
本願の実施例により提供されるアトミック性維持方法は、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成するとともに、N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認し、存在している場合、上記のN個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せず、例外イベントを報告し、本願に係る技術的解決手段を採用して、ベクトルアクセス記憶操作の処理中に、例外イベントが発生すると、例外イベントに応答するが、ベクトルアクセス記憶命令は任意の処理効果を生じないことを確保することができ、これによって、ベクトルアクセス記憶命令は、例外イベントの影響を受けてアクセス記憶操作の処理結果の一部のみが提出されていることがなく、ベクトル命令のアトミック性の維持を実現することができる。
【0101】
実施例4
図4を参照すると、
図4は、本願の実施例4に係るアトミック性維持方法のステップフローチャートを示している。
【0102】
本願の実施例により提供されるアトミック性維持方法は、その実行主体がCPUであってもよく、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントがバリア命令イベントであることに基づき、アトミック性維持方法は、次のステップを含む。
【0103】
ステップ401では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成し、Nが1以上の正の整数である。
【0104】
本願の実施例では、ベクトルアクセス記憶命令は、1セットのデータに対して同じ処理を同時に実現することができ、実際の応用において、ベクトルアクセス記憶命令を受信した後、ベクトルアクセス記憶命令を分割して、N個のアクセス記憶操作に分割することができ、Nが1以上の正の整数である。
【0105】
本例では、ベクトルアクセス記憶命令は、Load命令であってもよいし、Store命令であってもよい。
【0106】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、ステップ402を実行する。
【0107】
ステップ402では、前記N個のアクセス記憶操作の処理中にバリア命令が存在しているか否かを確認する。
【0108】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、N個のアクセス記憶操作の処理中にバリア命令が存在しているか否かを確認することができる。
【0109】
本願の実施例では、N個のアクセス記憶操作の処理中に、アトミック性に影響を及ぼすバリア命令が存在しているか否かを確認するステップは、N個のアクセス記憶操作の発信段階又は実行段階において実行されてもよい。
【0110】
ステップ403では、前記バリア命令を取得することに応答し、実行中のすべての前記N個のアクセス記憶操作がいずれも実行終了されたことを確認すると、前記バリア命令を処理するか、または
ステップ404では、前記ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を処理せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を処理する。
【0111】
N個のアクセス記憶操作の処理中にバリア命令が存在していることを確認した場合、取得されたバリア命令に応答し、実行中のすべてのN個のアクセス記憶操作がいずれも実行終了し、且つN個のアクセス記憶操作の実行結果がすべて提出されたことを確認した後、バリア命令を処理するか、または
前記ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を発信又は実行せずキャッシュし、未だに処理完了していないバリア命令が処理完了された後、N個のアクセス記憶操作を実行する。
【0112】
ここで、上記のステップ403とステップ404は、ステップ402実行後の並列選択肢であり、すなわち、ステップ402実行後、ステップ403とステップ404のいずれかのステップを選択して実行し、且つステップ403とステップ404を同時に実行しないようにすることができる。
【0113】
本願の実施例により提供されるアトミック性維持方法は、バリア命令が受信されたことが確認された後、バリア命令を取得することに応答し、処理中のすべての前記N個のアクセス記憶操作がいずれも処理完了したことを確認すると、バリア命令を処理するか、または、ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を処理せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、N個のアクセス記憶操作を処理し、本願に係る技術的解決手段を採用して、まず、バリア命令を処理し、バリア命令が処理完了された後、N個のアクセス記憶操作を処理するか、または、まず、N個のアクセス記憶操作を処理し、N個のアクセス記憶操作が実行終了し、且つ実行結果がすべて提出された後、バリア命令を処理することによって、ベクトルアクセス記憶命令は、バリア命令の影響を受けてアクセス記憶操作の実行結果の一部のみが提出されていることがなく、ベクトル命令のアトミック性の維持を実現することができる。
【0114】
実施例5
図5を参照すると、
図5は、本願の実施例5に係るアトミック性維持方法のステップフローチャートを示している。
【0115】
本願の実施例は、実施例2から実施例4に記載されている、ベクトルアクセス記憶命令のアトミック性に影響を及ぼす3つのイベントを同時にカバーする別のアトミック性維持方法を提供する。これに基づき、アトミック性維持方法は、次のステップを含む。
【0116】
ステップ501では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成し、Nが1以上の正の整数である。
【0117】
本願の実施例では、ベクトルアクセス記憶命令の定義及び復号化方法は、実施例2から実施例4と一致するため、ここで繰り返して説明しない。
【0118】
ステップ502では、N個のアクセス記憶操作の発信段階において、N個のアクセス記憶操作の処理中に割り込みイベントが存在しているか否かを確認し、存在している場合、ステップ504を実行するが、そうでない場合、ステップ503を実行する。同時に、N個のアクセス記憶操作の発信段階において、N個のアクセス記憶操作の処理中にバリア命令が存在しているか否かを確認し、存在している場合、ステップ505を実行するが、そうでない場合、ステップ503を実行する。
【0119】
ステップ503では、N個のアクセス記憶操作を発信するとともに、前記N個のアクセス記憶操作の実行段階において、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認し、存在している場合、ステップ506を実行するが、そうでない場合、ステップ507を実行する。
【0120】
ステップ504では、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも処理せず、前記割り込みイベントに応答する。
【0121】
本願の実施例では、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも処理しないことは、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも発信しないこと、または、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも実行しないことを含む。
【0122】
さらに、前記割り込みイベントに応答終了した後、前記N個のアクセス記憶操作を処理し、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも発信しない場合、前記割り込みイベントに応答終了した後、ステップ503を実行し、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも実行しない場合、前記割り込みイベントに応答終了した後、ステップ503における、前記N個のアクセス記憶操作の実行段階において、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認するステップを実行する。
【0123】
ステップ505では、前記N個のアクセス記憶操作を処理せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を処理する。
【0124】
本願の実施例では、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を処理し、すなわち、未だに処理完了していないバリア命令が処理完了された後、ステップ503を実行する。
【0125】
さらに、ステップ502及びステップ504では、割り込みイベント/バリア命令が存在している場合、まず、ステップ503を実行し、N個のアクセス記憶操作の実行結果の提出/例外イベントの報告が済んだ後、割り込みイベント/バリア命令に応答するようにしてもよい。
【0126】
ステップ506では、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも提出せずに、例外イベントを報告する。
【0127】
ステップ507では、前記N個のアクセス記憶操作を実行して、前記N個のアクセス記憶操作の実行結果を提出する。
【0128】
実施例6
図6を参照すると、
図6は、本願の実施例6に係るプロセッサの構造ブロック図を示している。
【0129】
図6-Aに示すように、本願の実施例に係るプロセッサは、
ベクトルアクセス記憶命令を取得して、前記ベクトルアクセス記憶命令に従って1以上の正の整数であるN個のアクセス記憶操作を生成することに用いられる復号化ユニット61と、
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認すること、及び前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じること、に用いられる処理ユニット62と、を含む。
【0130】
前記処理ユニット62は、具体的には、前記N個のアクセス記憶操作の処理中に、割り込みイベント、例外イベント、バリア命令のうちの少なくとも1つが存在しているか否かを確認すること、及び、存在している場合、前記N個のアクセス記憶操作の処理中に、前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在していると判定することに用いられる。
【0131】
図6-Bに示すように、プロセッサは、命令メモリ63を含み、復号化ユニットのベクトルアクセス記憶命令は命令メモリからのものであってもよい。
【0132】
選択的には、前記処理ユニット62は、発信ユニット621、実行ユニット622、及び提出ユニット623を含む。
【0133】
前記発信ユニット621は、前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認する前に、前記ベクトルアクセス記憶命令の処理中に、割り込みイベントが発生したことに応答し、前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加することに用いられ、前記割り込みフラグは、前記ベクトルアクセス記憶命令の処理中に割り込みイベントが発生したことを指示するためのものである。
【0134】
選択的には、前記発信ユニット621は、具体的には、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に対して、前記割り込みフラグを追加することに用いられる。
【0135】
選択的には、前記発信ユニット621は、具体的には、前記N個のアクセス記憶操作のすべてのアクセス記憶操作に対して、前記割り込みフラグを追加することに用いられる。
【0136】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作をも発信しないことに用いられる。
【0137】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる。
【0138】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行することに用いられ、
前記提出ユニット623は、前記N個のアクセス記憶操作の実行結果を提出することに用いられ、
プロセッサは、前記N個のアクセス記憶操作の実行結果が提出終了したことを確認すると、前記割り込みイベントを処理する。
【0139】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認し、前記最初のアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作のいずれも発信しない。
【0140】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認すること、及び、前記最初のアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる。
【0141】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認すること、及び、前記最初のアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行することに用いられ、
前記提出ユニット623は、前記N個のアクセス記憶操作の実行結果を提出することに用いられる。
【0142】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作のいずれにも前記割り込みフラグがマークされていない場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記N個のアクセス記憶操作を実行することに用いられ、
前記提出ユニット623は、前記N個のアクセス記憶操作の実行結果を提出することに用いられる。
【0143】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認し、確認結果を得るとともに、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記N個のアクセス記憶操作を実行することに用いられ、
前記提出ユニット623は、前記確認結果は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せずに、例外イベントを報告することに用いられる。
【0144】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記N個のアクセス記憶操作を実行するとともに、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認し、確認結果を得ることに用いられ、
前記提出ユニット623は、前記確認結果は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、前記N個のアクセス記憶操作の各アクセス記憶操作の実行結果をすべて提出して、例外イベントを報告することに用いられる。
【0145】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得すること、及び、各前記アクセス記憶アドレスについて例外イベントトリガーを満たす状況が存在しているか否かを確認し、存在している場合、前記Nアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していることを確認結果として決定するが、そうでない場合、前記N個のアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していないことを確認結果として決定することに用いられ、
ここで、前記例外イベントトリガーを満たす状況は、
いずれかの前記アクセス記憶操作のパーミッションに属性パーミッション違反がある状況、
アドレス変換テーブルにはいずれかの前記アクセス記憶アドレスも含まれていない状況、
前記ベクトルアクセス記憶命令のアクセス記憶アドレスが境界外アドレスである状況、といういくつかの状況のうちの少なくとも1つを含む。
【0146】
選択的には、前記提出ユニット621は、前記確認結果は、前記N個のアクセス記憶操作がいずれも処理中に例外イベントを発生させないことを指示する場合、前記N個のアクセス記憶操作の実行結果を提出することに用いられる。
【0147】
選択的には、前記処理ユニット62は、バリア命令が受信されたと決定されると、前記バリア命令に応答し、処理中のすべての前記N個のアクセス記憶操作が実行終了されて実行結果が提出されたと確認されると、前記バリア命令を処理すること、または
前記ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を実行せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる。
【0148】
選択的には、前記ベクトルアクセス記憶命令は、Load命令又はStore命令であり、前記処理ユニットは、実行ユニットをさらに含み、プロセッサは、汎用レジスタ64をさらに含み、
前記ベクトルアクセス記憶命令がLoad命令である場合に、前記実行ユニット622は、具体的には、前記ベクトルアクセス記憶命令で指示されるアドレスのオペランドをメモリから読み取ることを実行することに用いられ、前記提出ユニット623は、前記オペランドを指定された汎用レジスタ64に読み出すことに用いられ、
前記ベクトルアクセス記憶命令がStore命令である場合に、前記実行ユニット622は、具体的には、前記ベクトルアクセス記憶命令で指示されるアドレスのオペランドを指定された汎用レジスタ64から読み取ることを実行することに用いられ、前記提出ユニットは、前記オペランドをメモリに書き込むことに用いられる。
【0149】
本願の実施例におけるプロセッサは、前述した方法の実施例における対応するアトミック性維持方法を実現するために用いられ、方法の実施例に応じた有益な効果を有しているため、ここで繰り返して説明しない。
【0150】
実施例7
図7を参照すると、
図7は、本願の実施例7に係るアトミック性維持用電子機器の構造概略図を示している。
【0151】
図7に示すように、電子機器は、処理アセンブリ702、メモリ704、電源アセンブリ706、マルチメディアアセンブリ708、オーディオアセンブリ710、入力/出力(I/O)用インタフェース712、センサアセンブリ714、及び通信アセンブリ716のうちの1つ又は複数のアセンブリを含むことができる。
【0152】
処理アセンブリ702は、一般に、表示、データ通信、カメラ動作、及び記録動作に関連する動作など、電子機器の全体的な動作を制御する。処理コンポーネント702は、上述した方法のステップのすべて又は一部を完了させるために、命令を処理する1つ又は複数のプロセッサ720を含むことができる。また、処理アセンブリ702は、処理アセンブリ702と他のアセンブリとの間の相互作用を容易にするための1つ又は複数のモジュールを含むことができる。例えば、処理コンポーネント702は、マルチメディアアセンブリ708と処理アセンブリ702との間の相互作用を容易にするためのマルチメディアモジュールを含むことができる。
【0153】
メモリ704は、電子機器での操作をサポートするための様々なタイプのデータを記憶するように構成されている。このようなデータの例としては、電子機器上で操作される任意のアプリケーション又は方法の命令、連絡先データ、電話帳データ、メッセージ、画像、ビデオなどがある。メモリ704は、スタティックランダムアクセスメモリ(SRAM)、電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク、または光ディスクのような任意のタイプの揮発性又は不揮発性記憶機器、またはそれらの組み合わせによって実装され得る。
【0154】
電源アセンブリ706は、電子機器の様々なアセンブリに電力を供給する。電源アセンブリ706は、電源管理システム、1つ又は複数の電源、及び端末700に供する電力の生成、管理、及び配電に関連するその他のアセンブリを含むことができる。
【0155】
マルチメディアアセンブリ708は、前記電子機器とユーザとの間の出力インタフェースを提供するスクリーンを含む。いくつかの実施例では、スクリーンは、液晶ディスプレイ(LCD)及びタッチパネル(TP)を含み得る。スクリーンがタッチパネルを含む場合、スクリーンはユーザからの入力信号を受信するためのタッチスクリーンとして実装され得る。タッチパネルは、タッチ、スワイプ、及びタッチパネル上でのジェスチャーを感知するための1つ又は複数のタッチセンサを含む。前記タッチセンサは、タッチ又はスワイプ操作の境界を感知するだけでなく、前記タッチ又はスワイプ操作に関連する持続時間及び圧力を検出することもできる。いくつかの実施例では、マルチメディアアセンブリ708は、1つのフロントカメラ及び/又はリアカメラを含む。フロントカメラ及び/又はリアカメラは、電子機器が撮影モード又はビデオモードなどの動作モードにあるときに、外部マルチメディアデータを受信することができる。各フロントカメラ及びリアカメラは、固定式光学レンズシステムであってもよいし、焦点距離及び光学ズーム機能を有するものであってもよい。
【0156】
オーディオアセンブリ710は、オーディオ信号を出力及び/又は入力するように構成されている。例えば、オーディオアセンブリ710は、端末が通話モード、録音モード、音声認識モードなどの動作モードにあるときに、外部オーディオ信号を受信するように構成されているマイクロフォン(MIC)を含む。受信されたオーディオ信号は、さらに、メモリ704に記憶されるか、通信アセンブリ717によって送信され得る。いくつかの実施例では、オーディオアセンブリ710は、オーディオ信号を出力するためのスピーカをさらに含む。
【0157】
I/Oインタフェース712は、処理アセンブリ702と周辺インタフェースモジュールとの間のインタフェースを提供し、上記の周辺インタフェースモジュールは、キーパッド、クリックホイール、ボタンなどであってもよい。これらのボタンは、ホームボタン、音量ボタン、スタートボタン、ロックボタンを含むことができるが、これらに限定されない。
【0158】
センサアセンブリ714は、電子機器700の状態の様々な側面の評価を提供するための1つ又は複数のセンサを含む。例えば、センサアセンブリ714は、電子機器700の開/閉状態、例えば前記アセンブリが端末のディスプレイ及びキーパッドであるようなアセンブリの相対的位置決めを検出することができ、センサアセンブリ714はまた、端末又は端末の1つのアセンブリの位置の変化、電子機器に対するユーザの接触の有無、電子機器の向き又は加速/減速、及び電子機器の温度の変化を検出することができる。センサアセンブリ714は、物理的な接触が一切なくても近くの物体の存在を検出するように構成されている近接センサを含むことができる。センサアセンブリ714はまた、撮像用途に使用するためのCMOS又はCCDイメージセンサなどの光学センサを含み得る。いくつかの実施例では、当該センサアセンブリ714はさらに、加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ、または温度センサを含み得る。
【0159】
通信アセンブリ716は、電子機器と他のデバイスとの間の有線又は無線通信を容易にするように構成されている。電子機器は、WiFi、2G又は3G、またはそれらの組み合わせなどの通信規格に基づく無線ネットワークにアクセスすることができる。1つの例示的な実施例では、通信コンポーネント716は、ブロードキャストチャネルを経由して、外部のブロードキャスト管理システムからのブロードキャスト信号又はブロードキャスト関連情報を受信する。1つの例示的な実施例では、前記通信コンポーネント716は、近距離通信を容易にするための近距離通信(NFC)モジュールをさらに備える。例えば、NFCモジュールは、無線周波数識別(RFID)技術、赤外線データ協会(IrDA)技術、ウルトラワイドバンド(UWB)技術、ブルートゥース(登録商標)(BT)技術、及び他の技術に基づいて実装することができる。
【0160】
例示的な実施例では、電子機器は、上記の実施例1から実施例5に記載されているアトミック性維持方法を処理するために、1つ又は複数のアプリケーション特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラー、マイクロコントローラー、マイクロプロセッサ、または他の電子素子によって実装され得る。
【0161】
本願の実施例に係る電子機器は、前述した複数の方法の実施例における対応するアトミック性維持方法を実装するためのものであり、且つ対応する方法の実施の有益な効果を有しているため、ここでは繰り返して説明しない。
【0162】
本明細書における各実施例は漸進的に説明され、各実施例は他の実施例との相違点に焦点を当て説明を進んでおり、各実施例同士の同じ又は類似する部分は互いに参照すればよい。装置の実施例については、基本的に方法の実施例と類似しているため、説明は比較的に簡単であり、関連している箇所は、方法の実施例を参照して説明すればよい。
【0163】
以上は、本願により提供されるアトミック性維持方法、プロセッサ及び電子機器について詳細に説明した。本明細書において、本願発明の原理及び実施形態は、特定の例を適用して説明されているが、以上の実施例は、単に本願発明の方法及びその主要な構想を理解するのに役立つために説明されており、同時に、当業者であれば、本願発明の構想に基づき、特定の実施形態及びその適用範囲に変化を加えることができる。以上のように、本明細書の記載は本願発明を制限するためのものとして理解すべきではない。
【0164】
本明細書で提供されるアルゴリズムや表示は、特定のコンピュータ、電子システム、その他のデバイスと本質的に関連するものではない。様々な汎用システムも、本明細書に基づく教示と組み合わせて使用することができる。そのようなシステムを構築するために必要な構造は、上記の説明に照らして明らかである。さらに、本願は、特定のプログラミング言語を対象とするものではない。本明細書で説明されている本願の内容を実装するために、様々なプログラミング言語を利用することができ、特定の言語に関する上記の説明は、本願の最良の実施形態を開示するために提供されることを理解されたい。
【0165】
本願により提供される明細書において、大量の具体的な詳細が記載されている。しかしながら、本願の実施例は、これらの具体的な詳細がなくても実施可能であることが理解され得る。いくつかの実例では、本明細書の理解を不明瞭にしないように、公知の方法、構造及び技術は詳細に示されていない。
【0166】
同様に、本開示を簡潔にして、様々な発明の1つ又は複数の態様の理解に役立つようにするために、本願の例示的な実施例の上記の説明において、本願の様々な特徴は、単一の実施例、図面、またはそれらに関する説明にまとめられていることがあることが理解されるべきである。しかしながら、当該開示に係る方法は、特許を請求する本願が、各請求項に明示的に記載されている特徴よりも多くの特徴を必要とする意図を反映するものと解釈されるべきではない。より正確にいうと、以下の特許請求の範囲に反映されているように、本発明の態様は、先に開示された個々の実施例に係るすべての特徴よりも少ない数の特徴がある。したがって、特定の実施形態に従う特許請求の範囲は、それによってその特定の実施形態に明示的に組み込まれ、各請求項自体が本願の別個の実施例として機能する。
【0167】
当業者であれば、実施例におけるデバイス内のモジュールを適応的に変更し、当該実施例とは異なる1つ又は複数のデバイスに配置することが可能であることを理解することができる。実施例におけるモジュール又はユニット又はアセンブリを、単一のモジュール又はユニット又はアセンブリに組み合わせることが可能であり、さらに、複数のサブモジュール又はサブユニット又はサブアセンブリに分割することも可能である。このような特徴及び/又はプロセス又はユニットの少なくとも一部が相互に排他的である場合を除き、本明細書(添付の特許請求の範囲、要約及び添付図面を含む)に開示されたすべての特徴及びこのように開示された方法又はデバイスのすべてのプロセス又はユニットを、任意の組み合わせで組み合わせることができる。本明細書(添付の特許請求の範囲、要約、及び添付図面を含む)に開示された各特徴は、特に明記されていない限り、同一、等価、または類似する目的を提供する代替的な特徴によって置き換えられてもよい。
【0168】
加えて、当業者は、本明細書に記載されているいくつかの実施例は、その他の実施例に含まれているその他の特徴ではなくいくつかの特徴を含むが、異なる実施例の特徴の組み合わせは、本願の範囲内のものであり、異なる実施例を形成していることを意味することを理解することができる。例えば、以下の特許請求の範囲では、主張される実施例のいずれか1つは任意の組み合わせで使用され得る。
【0169】
本願の様々な構成要素の実施例は、ハードウェア、または1つ又は複数のプロセッサ上で実行されるソフトウェアモジュール、またはそれらの組み合わせで実装され得る。当業者は、マイクロプロセッサ又はデジタル信号プロセッサ(DSP)が、本願の実施例によるブラウザクライアントデバイスにおける構成要素の一部又はすべての機能の一部又はすべてを実装するために実際に使用され得ることを理解すべきである。また、本願は、本明細書に記載の方法の一部又は全部を実行するためのデバイス又は装置プログラム(例えば、コンピュータプログラム及びコンピュータプログラム製品)として実装され得る。本願を実装するこのようなプログラムは、コンピュータ可読媒体に格納されているものであってもよいし、1つ又は複数の信号の形態を有するものであってもよい。このような信号は、インターネットサイトからダウンロード可能であってもよいし、キャリア信号で提供されてもよいし、任意の他の形態で提供されてもよい。
【0170】
上記の実施例は、本願を説明するためのものであり、本願を限定するものではなく、当業者であれば、添付の特許請求の範囲から逸脱することなく、代替の実施例を設計することができることに留意されたい。特許請求の範囲において、括弧の間に位置する参照符号は、特許請求の範囲を限定するものとして解釈されるべきではない。用語「含む」は、特許請求の範囲に記載されていない素子又はステップの存在を排除しない。素子の前にある用語「一」又は「1つ」は、そのような素子が複数存在することを除外しない。本願は、いくつかの異なる素子を含むハードウェア、及び適切にプログラムされたコンピュータによって実装され得る。いくつかの装置を列挙している個別の請求項では、これらの装置のいくつかが、同一のハードウェアによって具現化され得る。第1、第2、第3といった用語の使用は、いかなる順序を示すものではない。これらの用語は名称として解釈されてもよい。
【0171】
本願は、2021年12月10日に中国国家知的産権局に提出された、出願番号が202111507703.Xであり、発明の名称が「アトミック性維持方法、プロセッサ及び電子機器」である中国特許出願の優先権を主張しており、その内容の全ては、本願に参照によって取り込まれる。
【手続補正書】
【提出日】2024-06-14
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
本願は、コンピュータ技術の分野に関し、特に、アトミック性維持方法、プロセッサ及び電子機器に関する。
【背景技術】
【0002】
命令のアトミック性とは、命令の実行開始から実行終了までの過程が中断されないという性質を指す。例えば、命令Aを例にとると、命令Aがアトミック性を持つ場合、命令Aの実行が開始されると、割り込みイベントや例外イベントなどのイベントの影響を受けず、命令Aの実行が終了するまで命令の実行を一時停止しない。
【0003】
命令の実行中に、割り込みイベントや例外イベントなどのイベントの影響を受け、命令の実行が一時中断されることがよくある。例えば、命令Bを例にとると、命令Bがアトミック性を持っていない場合、命令Bの実行中にCPUが割り込みイベントを同時に検出すると、命令Bの実行を一時中断し、当該割り込みイベントの実行を優先し、割り込みイベントの実行が終了すると命令Bの実行を再開する。割り込みイベントや例外イベントなどの影響により、命令のアトミック性が保たれなくなる。
【0004】
従来の技術においては、任意の1つのベクトル命令に対する処理では、プロセッサ内部の単一の命令の中に同一又は類似の操作が複数存在するが、ソフトウェア開発者の視点から見ると、単一のベクトル命令はCPUの最小操作ユニットであり、すなわち単一のベクトル命令はアトミック性を持つべきである。したがって、プロセッサの設計はベクトル命令の実行のアトミック性を確保する必要がある。
【0005】
実際の応用において、プロセッサが1つのベクトル命令を分割して得られた複数の操作は同時並行的に実行されており、命令の実行効率を高めるために設計した同時並行実行メカニズムはベクトル命令のアトミック性の維持にチャレンジをもたらした。加えて、命令システムには、バリア命令がさらに含まれており、バリア命令は、バリア命令の前後のアクセス記憶操作を隔離することに用いられる。一方、プロセッサの内部では、バリア命令を他のベクトル命令から分割して得られた複数の操作も同時並行的に実行される。上記の様々な要因は、ベクトル命令のアトミック性を確保することにさらなる困難をもたらしている。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願は、従来の技術において、ベクトル命令分割後の複数の操作の並列実行メカニズム、及びバリア命令とベクトル命令の並行実行メカニズムに起因してベクトル命令のアトミック性を確保できないという問題を解決するために、アトミック性維持方法、プロセッサ及び電子機器を提供する。
【課題を解決するための手段】
【0007】
上記の問題を解決するために、本願は、アトミック性維持方法を開示し、前記方法は、
ベクトルアクセス記憶命令を、1以上の正の整数であるN個のアクセス記憶操作に分割するステップと、
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップと、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じるステップと、を含む。
【0008】
上記の問題を解決するために、本願は、プロセッサをさらに開示し、前記プロセッサは、
ベクトルアクセス記憶命令を取得して、前記ベクトルアクセス記憶命令に従って、1以上の正の整数であるN個のアクセス記憶操作を生成することに用いられる復号化ユニットと、
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認すること、及び前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じることに用いられる処理ユニットと、を含む。
【0009】
上記の問題を解決するために、本願は、電子機器をさらに開示し、前記電子機器は、メモリ、及び1つ以上のプログラムを含み、1つ以上のプログラムは、メモリに記憶されており、本願における1つ又は複数のアトミック性維持方法を1つ以上のプロセッサにより処理するように構成されている。
【発明の効果】
【0010】
本願は、従来の技術に比べて、次の利点がある。
【0011】
本願の実施例により提供されるアトミック性維持方法、プロセッサ及び電子機器は、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成するとともに、N個のアクセス記憶操作の処理中にベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認し、イベントが存在している場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の処理も任意の処理効果を生じないか、又はN個のアクセス記憶操作はすべての処理効果を生じることによって、ベクトル命令のアトミック性の維持を実現することができる。
【図面の簡単な説明】
【0012】
【
図1】本願の実施例1による1つのアトミック性維持方法のステップフローチャートである。
【
図2】本願の実施例2による1つのアトミック性維持方法のステップフローチャートである。
【
図3】本願の実施例3による1つのアトミック性維持方法のステップフローチャートである。
【
図4】本願の実施例4による1つのアトミック性維持方法のステップフローチャートである。
【
図5】本願の実施例5による1つのアトミック性維持方法のステップフローチャートである。
【
図6-A】本願の実施例5による1つのプロセッサの構造ブロック図である。
【
図6-B】本願の実施例5による別のプロセッサの構造ブロック図である。
【
図7】本願の実施例6による1つの電子機器の構造ブロック図である。
【発明を実施するための形態】
【0013】
本願の上記の目的、特徴及び利点をさらに明瞭し、理解しやすくするために、以下は図面と特定の実施形態を参照して本願についてさらに詳細に説明する。
【0014】
実施例1
図1を参照すると、
図1は、本願の実施例1に係る1つのアトミック性維持方法のステップフローチャートを示している。
【0015】
本願の実施例により提供されるアトミック性維持方法は、その実行主体がCPU(CentrAl Processing Unit、中央処理装置)であってもよく、次のステップを含む。
【0016】
ステップ101では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成し、Nが1以上の正の整数である。
【0017】
本願の実施例は、ベクトルアクセス記憶操作命令の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するとともに、確認結果に従って、ベクトルアクセス記憶命令を実行するか否かを決定するか又はベクトルアクセス記憶命令の実行結果を提出して命令のアトミック性を実現するというシーンに適用され得る。
【0018】
ベクトルアクセス記憶命令は、1セットのデータに対して同じ処理を同時に実現することができ、実際の応用において、ベクトルアクセス記憶命令を受信した後、ベクトルアクセス記憶命令を復号化して、N個のアクセス記憶操作に分割することができ、Nが1以上の正の整数である。
【0019】
本例では、ベクトルアクセス記憶命令は、Load命令であってもよいし、Store命令であってもよい。
【0020】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、ステップ102を実行する。
【0021】
ステップ102では、前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認する。
【0022】
従来の技術において、ベクトルアクセス記憶命令処理のパイプラインは、1、命令取得及び復号化するステップ、すなわち、ベクトルアクセス記憶命令を取得して、ベクトルアクセス記憶命令を復号化するステップと、2、発信するステップ、すなわち、操作キューの命令を操作タイプに応じてリザーブステーションに送信するとともに、発信中にレジスタの値及び結果ステータスフィールドを読み取るステップと、3、実行するステップ、必要なオペランドがすべて準備できたら、命令を実行するステップと、4、ライトバックするステップ、すなわち、実行結果を結果バスに伝送するとともに、リザーブステーションを解放するステップと、5、提出するステップ、すなわち、キューにおける命令実行結果がライトバックされて且つ例外が発生しなかった場合に、命令の実行結果をレジスタ又はメモリにライトバックするステップと、を含むことができる。
【0023】
これに基づき、本願の実施例では、ベクトルアクセス記憶命令を処理することは、ベクトルアクセス記憶命令に対して、命令取得、復号化、発信、実行、ライトバック、及び提出のうちのいずれかの操作又は複数の操作の組み合わせを実施することを意味し、アクセス記憶操作を処理することは、アクセス記憶操作に対して、発信、実行、及び提出のうちのいずれかの操作又は複数の操作の組み合わせを実施することを含む。
【0024】
本例で言及したイベントとは、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントを指し、本例では、イベントは、割り込みイベント、例外イベント、バリア命令の検出などのイベントのうちの少なくとも1つを含むことができる。
【0025】
割り込みイベント(外部割り込みとも呼ばれる)とは、CPU実行命令外からのイベントを指す。
【0026】
例外イベントとは、CPU実行命令内部からのイベントを指す。
【0027】
バリア命令とは、異なる操作間の同期を確保するための命令を指し、例えば、バリア命令によって、load/storeアクセス記憶操作間の同期機能を完成させるとともに、load/storeアクセス記憶操作の同期対象と同期程度を指示することができる。
【0028】
ベクトルアクセス記憶命令のアトミック性とは、1つのベクトルアクセス記憶命令が実行開始から実行終了、提出完了するまで中断されないという性質を指す。
【0029】
したがって、本例では、ベクトルアクセス記憶命令をN個のアクセス記憶操作に分割した後、N個のアクセス記憶操作の処理中に、N個のアクセス記憶操作を確認し、すなわち、N個のアクセス記憶操作の処理中にベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認することができる。選択的には、アクセス記憶操作を処理することは、アクセス記憶操作に対して、発信、実行、及び提出のうちのいずれかの操作又は複数の操作の組み合わせを実施することを含む場合に、N個のアクセス記憶操作に対して、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントの確認を実施し、すなわち、N個のアクセス記憶操作を発信する過程で、N個のアクセス記憶操作を確認するか、または、N個のアクセス記憶操作を実行する過程で、N個のアクセス記憶操作を確認するか、または、N個のアクセス記憶操作を提出する過程で、N個のアクセス記憶操作を確認する。具体的には、N個のアクセス記憶操作をどの段階で確認するかは、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベント(すなわち、割り込みイベント、例外イベント、バリア命令など)のタイプに応じて決定される。
【0030】
N個のアクセス記憶操作の処理中にベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認した後、ステップ103を実行する。
【0031】
ステップ103では、前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じる。
【0032】
本願の実施例では、アクセス記憶操作が処理効果を生じないことは、アクセス記憶操作が実行されているが未だに提出されていないこと、またはアクセス記憶操作が実行されないこと、またはアクセス記憶操作が発信されないことのいずれかを指し、一方、アクセス記憶操作がすべての処理効果を生じることは、ベクトルアクセス記憶命令を分割して得たN個のアクセス記憶操作がすべて実行され、且つN個のアクセス記憶操作の実行結果がすべて提出されていることを指す。
【0033】
本願の実施例では、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しない場合、上記の命令パイプラインの処理順序に従い、N個のアクセス記憶操作を実行して、N個のアクセス記憶操作の実行結果を提出することができ、具体的には、ベクトルアクセス記憶命令がLoad命令である場合に、ベクトルアクセス記憶命令で指示されるアドレスのオペランドをメモリから指定された汎用レジスタに読み出す操作を実行することができる。一方、ベクトルアクセス記憶命令がStore命令である場合に、ベクトルアクセス記憶命令で指示されるアドレスのオペランドを指定された汎用レジスタからメモリに書き込む操作を実行することができる。
【0034】
本願の実施例では、N個のアクセス記憶操作の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在していることを確認すると、当該ベクトルアクセス記憶命令を処理せず、すなわち、ベクトルアクセス記憶命令の今回の処理を破棄してもよいし、ベクトルアクセス記憶命令の実行結果を提出せず、当該ベクトルアクセス記憶命令を実行してもよい。具体的には、第1に、N個のアクセス記憶操作に割り込みフラグがマークされていることは確認される場合には、N個のアクセス記憶操作の処理中に割り込みイベントが存在していることを示しており、この場合、当該ベクトルアクセス記憶命令の今回の実行を破棄し、すなわち、N個のアクセス記憶操作はすべて実行されないか、または、N個のアクセス記憶操作は発信されない。第2に、N個のアクセス記憶操作の処理中に例外イベントが存在している場合には、当該ベクトルアクセス記憶命令を実行するが、実行結果を提出しない。第3に、バリア命令に対して、まずバリア命令を実行し、アクセス記憶操作をすべて実行又は発信せず、バリア命令の処理が終了すると、アクセス記憶操作を実行して、実行結果を提出するようにしてもよい。当該プロセスについて、実施例2、実施例3、及び実施例4を参照して、割り込みイベント、例外イベント、及びバリア命令という3つの次元からそれぞれ詳細に説明するため、本実施例はここで詳細な説明を省略する。
【0035】
また、本願の実施例では、N個のアクセス記憶操作の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在していることを確認すると、ベクトルアクセス記憶命令をすべて実行するとともに、ベクトルアクセス記憶命令の実行結果を提出し、そして、ベクトルアクセス記憶命令がアトミック性を持たないようにする上記のイベントを処理するようにしてもよい。具体的には、第1に、N個のアクセス記憶操作に割り込みフラグがマークされていることは確認された場合には、N個のアクセス記憶操作の処理中に割り込みイベントが存在していることを示しており、この場合、N個のアクセス記憶操作を発信して実行し、この後、N個のアクセス記憶操作の実行結果を提出し、実行結果がすべて提出されると、割り込みイベントに応答する。第2に、バリア命令に対して、まず、すべてのアクセス記憶操作を発信して実行し、すべてのアクセス記憶操作の実行結果が提出されると、バリア命令を処理するようにしてもよい。例外イベントは処理待ち命令内部のイベントであるため、命令処理中に、例外イベントに遭遇すると、命令のすべての実行結果の提出は発生することがない。当該プロセスについて、実施例2、実施例3、及び実施例4を参照して、割り込みイベント及びバリア命令という2つの次元からそれぞれ詳細に説明するため、本実施例はここで詳細な説明を省略する。
【0036】
本願の実施例により提供されるアトミック性維持方法は、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成するとともに、N個のアクセス記憶操作の処理中にベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認し、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在している場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の処理も任意の処理効果を生じないか、又はN個のアクセス記憶操作はすべての処理効果を生じることによって、ベクトル命令のアトミック性の維持を実現することができ、上記の技術的解決手段を採用して、従来の技術における、ベクトル命令の複数の操作の並行実行メカニズム、またはバリア命令を他のベクトル命令から分割して得られた複数の操作の同時並行実行メカニズムに対して、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントに遭遇すると、アクセス記憶操作をすべて実行せず、アクセス記憶操作の実行結果をすべて提出しないか、またはアクセス記憶操作の実行結果をすべて提出することによって、1つのベクトルアクセス記憶命令には、当該ベクトルアクセス記憶命令を分割して得られたアクセス記憶操作の一部が実行効果を生じているが、アクセス記憶操作の他方の部分が実行効果を生じていないという現象は発生することがなく、ベクトル命令のアトミック性は確実に確保される。
【0037】
実施例2
図2を参照すると、
図2は、本願の実施例2に係る1つのアトミック性維持方法のステップフローチャートを示している。
【0038】
本願の実施例により提供されるアトミック性維持方法は、その実行主体がCPUであってもよく、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが割り込みイベントであることに基づき、アトミック性維持方法は、次のステップを含む。
【0039】
ステップ201では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成し、Nが1以上の正の整数である。
【0040】
本願の実施例では、ベクトルアクセス記憶命令は、1セットのデータに対して同じ処理を同時に実現することができ、実際の応用において、ベクトルアクセス記憶命令を受信した後、ベクトルアクセス記憶命令を分割して、N個のアクセス記憶操作に分割することができ、Nが1以上の正の整数である。
【0041】
本例では、ベクトルアクセス記憶命令は、Load命令であってもよいし、Store命令であってもよい。
【0042】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、ステップ202を実行する。
【0043】
ステップ202では、N個のアクセス記憶操作の処理中にベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しており、且つ当該イベントが割り込みイベントであることを確認すると、N個のアクセス記憶操作の処理中に割り込みイベントが存在していることを示すために、対応するフラグをN個のアクセス記憶操作に追加することができる。
【0044】
本願の実施例では、N個のアクセス記憶操作の処理中に割り込みイベントが存在しているか否かを確認するステップは、N個のアクセス記憶操作の発信段階において実行されてもよいし、N個のアクセス記憶操作の実行段階において実行されてもよい。
【0045】
本願の1つの特定の実現形態では、割り込みグラフのマーク方法は、ステップA1を含むことができる。
【0046】
ステップA1では、前記ベクトルアクセス記憶命令の処理中に、割り込みイベントが発生したことに応答し、前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加する。
【0047】
実際の応用において、ベクトルアクセス記憶命令の数は膨大で、1つのベクトルアクセス記憶命令が得られると、ベクトルアクセス記憶命令は発信及び実行のためにキャッシュに追加されるようになり、ベクトルアクセス記憶命令の処理中に、ベクトルアクセス記憶命令に対して、割り込みイベントの確認を実施し、ベクトルアクセス記憶命令の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにする割り込みイベントが存在しているか否かを確認することができ、具体的に実現する際、割り込みイベントが外部イベントであるため、CPUは、ベクトルアクセス記憶命令の処理中に、割り込みリクエストが受信されたか否かをリアルタイムに確認して、確認結果に従い、ベクトルアクセス記憶命令の処理中に割り込みイベントが存在しているか否かを決定することができ、すなわち、CPUは、割り込みリクエストを受信すると、ベクトルアクセス記憶命令の処理中に割り込みイベントが存在しているという確認結果を決定する。
【0048】
当然ながら、ベクトルアクセス記憶命令の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにする割り込みイベントが存在しているか否かを、その他の方法を用いて確認することもでき、具体的には、割り込みイベントの確認方法は、業務上の必要に応じて決定されてもよく、本実施例はこれを限定しない。
【0049】
本願の実施例では、割り込みフラグは、N個のアクセス記憶操作の処理中に割り込みイベントが存在していることを指示することに用いられることができ、具体的には、割り込みフラグの表示形態は、業務上の必要に応じて決定されてもよく、本実施例はこれを限定しない。
【0050】
さらに、N個のアクセス記憶操作の処理中に、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しており、且つ当該イベントが割り込みイベントであることは確認された場合、アクセス記憶操作に割り込みフラグを追加することができる。
【0051】
具体的に実現する際、アクセス記憶操作に割り込みフラグを追加する場面は、次の2つに分けられる。
【0052】
1、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に割り込みフラグを追加する場面であり、具体的には、最初のアクセス記憶操作に割り込みフラグを追加してもよいし、最後のアクセス記憶操作に割り込みフラグを追加してもよいし、最初のアクセス記憶操作と最後のアクセス記憶操作との間にある任意の1つのアクセス記憶操作に割り込みフラグを追加してもよく(上記の最初、最後の記述は、N個のアクセス記憶操作の実行順序に従って限定されていることを理解されたい)、例えば、ベクトルアクセス記憶命令を5個のアクセス記憶操作に分割することができ、これらの5個のアクセス記憶操作の実行順序の早い順に従って順次並べ替えると、アクセス記憶操作1、アクセス記憶操作2、アクセス記憶操作3、アクセス記憶操作4、アクセス記憶操作5の順になり、割り込みフラグを追加する際、最初のアクセス記憶操作(すなわちアクセス記憶操作1)に割り込みフラグを追加してもよいし、最後のアクセス記憶操作(すなわちアクセス記憶操作5)に割り込みフラグを追加してもよいし、最初のアクセス記憶操作と最後のアクセス記憶操作との間にあるアクセス記憶操作(すなわちアクセス記憶操作2またはアクセス記憶操作3またはアクセス記憶操作4)に割り込みフラグを追加してもよい。
【0053】
N個のアクセス記憶操作のうち最初のアクセス記憶操作に割り込みフラグを追加することが好ましい。
【0054】
上述した例は、本願の実施例に係る技術的解決手段をよりよく理解するための例にすぎず、本実施例を限定するものではないことを理解されたい。
【0055】
2、N個のアクセス記憶操作のすべてのアクセス記憶操作に割り込みフラグを追加する場面であり、すなわち、N個のアクセス記憶操作のいずれにも割り込みフラグを追加し、例えば、上記した例の続きとして、ベクトルアクセス記憶命令を5個のアクセス記憶操作に分割した後、これらの5個のアクセス記憶操作のいずれにも割り込みフラグを追加し、すなわち、アクセス記憶操作1、アクセス記憶操作2、アクセス記憶操作3、アクセス記憶操作4、アクセス記憶操作5のいずれにも割り込みフラグを追加してもよい。
【0056】
本願の実施例では、割り込みイベントを指示するための割り込みフラグをN個のアクセス記憶操作に追加することによって、この後のベクトルアクセス記憶命令の処理中に、当該ベクトルアクセス記憶命令がアトミック性を持っているか否かを、割り込みフラグで直感的に判定し、当該ベクトルアクセス記憶命令をどのように処理するかを決定することができる。
【0057】
ステップ203では、前記N個のアクセス記憶操作に割り込みフラグが存在しているか否かを確認する。
【0058】
本願の実施例では、上記の方法を用いて、N個のアクセス記憶操作に割り込みフラグを追加した後、N個のアクセス記憶操作に割り込みフラグがマークされているか否かを順次確認して、N個のアクセス記憶操作の処理中に割り込みイベントが存在しているか否かを決定することができる。
【0059】
N個のアクセス記憶操作に割り込みフラグを追加した後、割り込みフラグの確認方法は、次の2種類に分けられる。
【0060】
第1に、N個のアクセス記憶操作に割り込みフラグがマークされているか否かを順次確認する。
【0061】
第2に、N個のアクセス記憶操作のうちの第1のアクセス記憶操作に割り込みフラグがマークされているか否かを確認する。
【0062】
N個のアクセス記憶操作に割り込みフラグが存在していることを確認した後、ステップ204を実行する。
【0063】
N個のアクセス記憶操作のいずれにも割り込みフラグがマークされていないことを確認した後、ステップ205を実行する。
【0064】
ステップ204では、前記割り込みフラグが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じる。
【0065】
N個のアクセス記憶操作に割り込みフラグがマークされていることを確認した後、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、またはN個のアクセス記憶操作はすべての処理効果を生じ、具体的には、下記の4つの状況を参照して説明することができる。
【0066】
第1種の状況では、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に割り込みフラグがマークされていることを確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも発信又は実行せず、この場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の実行処理効果を生じず、すなわち、割り込みイベントに応答終了すると、N個のアクセス記憶操作の発信又は実行、及びN個のアクセス記憶操作の実行結果の提出を再開する。
【0067】
選択的には、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に割り込みフラグがマークされていることを、N個のアクセス記憶操作の発信段階で確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も発信せず、または、N個のアクセス記憶操作を発信するが、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも実行しないが、N個のアクセス記憶操作のいずれかのアクセス記憶操作に割り込みフラグがマークされていることを、N個のアクセス記憶操作の実行段階で確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出しない。
【0068】
第2種の状況では、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に割り込みフラグがマークされていることを確認した場合、N個のアクセス記憶操作の各アクセス記憶操作をすべて発信して実行し、N個のアクセス記憶操作の実行結果をすべて提出し、すなわち、N個のアクセス記憶操作がすべて実行完了して対応する実行結果も提出された後、割り込みイベントに応答する。
【0069】
第3種の状況では、N個のアクセス記憶操作のうちの第1のアクセス記憶操作に割り込みフラグがマークされていることを確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも発信又は実行せず、この場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じず、すなわち、割り込みイベントに応答終了すると、N個のアクセス記憶操作の発信又は実行、N個のアクセス記憶操作の実行結果の提出を再開する。
【0070】
選択的には、N個のアクセス記憶操作のうちの第1のアクセス記憶操作に割り込みフラグがマークされていることを、N個のアクセス記憶操作の発信段階で確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも発信しないか、または、N個のアクセス記憶操作を発信するが、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも実行せず、N個のアクセス記憶操作のうちの第1のアクセス記憶操作に割り込みフラグがマークされていることを、N個のアクセス記憶操作の実行段階で確認した場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出しない。
【0071】
第4種の状況では、N個のアクセス記憶操作のうちの第1のアクセス記憶操作に割り込みフラグがマークされていることを確認した場合、N個のアクセス記憶操作の各アクセス記憶操作をすべて実行して、N個のアクセス記憶操作の実行結果をすべて提出し、すなわち、N個のアクセス記憶操作がすべて実行完了して対応する実行結果も提出された後、割り込みイベントに応答する。
【0072】
ステップ205では、前記N個のアクセス記憶操作のいずれにも前記割り込みフラグがマークされていない場合、前記N個のアクセス記憶操作を実行して、前記N個のアクセス記憶操作の実行結果を提出する。
【0073】
N個のアクセス記憶操作のいずれにも割り込みフラグがマークされていないことを確認した場合、N個のアクセス記憶操作を実行して、N個のアクセス記憶操作の実行結果を得ることができ、さらに、N個のアクセス記憶操作の実行結果を提出することができる。
【0074】
本願の実施例により提供されるアトミック性維持方法は、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成するとともに、N個のアクセス記憶操作に割り込みフラグがマークされているか否かを確認し、割り込みフラグが確認されると、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の処理も任意の処理効果を生じないか、又はN個のアクセス記憶操作はすべての処理効果を生じ、本願の技術的解決手段を採用して、ベクトルアクセス記憶操作の処理中に、割り込みイベントが発生すると、ベクトルアクセス記憶命令がすべて処理完了された後に割り込みイベントに応答すること、または割り込みイベントに応答終了した後、ベクトルアクセス記憶命令を処理することを確保することができ、これによって、ベクトルアクセス記憶命令は、割り込みイベントに影響されて、アクセス記憶操作の実行結果の一部のみが提出されていることがなく、ベクトル命令のアトミック性の維持を実現することができる。
【0075】
実施例3
図3を参照すると、
図3は、本願の実施例3に係るアトミック性維持方法のステップフローチャートを示している。
【0076】
本願の実施例により提供されるアトミック性維持方法は、その実行主体がCPUであってもよく、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが例外イベントであることに基づき、アトミック性維持方法は、次のステップを含む。
【0077】
ステップ301では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成し、Nが1以上の正の整数である。
【0078】
本願の実施例では、ベクトルアクセス記憶命令は、1セットのデータに対して同じ処理を同時に実現することができ、実際の応用において、ベクトルアクセス記憶命令を受信した後、ベクトルアクセス記憶命令を分割して、N個のアクセス記憶操作に分割することができ、Nが1以上の正の整数である。
【0079】
本例では、ベクトルアクセス記憶命令は、Load命令であってもよいし、Store命令であってもよい。
【0080】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、ステップ302を実行する。
【0081】
ステップ302では、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認して、確認結果を得る。
【0082】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認して、確認結果を得る。例外イベントの確認プロセスは、下記の特定の実現形態を参照して詳細に説明することができる。
【0083】
本願の実施例では、前記N個のアクセス記憶操作の処理中に例外イベントが存在しているか否かを確認するステップは、N個のアクセス記憶操作の実行段階において実行されてもよい。
【0084】
本願の1つの特定の実現形態では、上記のステップ302は、サブステップS1及びサブステップS2を含むことができる。
【0085】
サブステップS1では、前記N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得する。
【0086】
本願の実施例では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得することができる。
【0087】
N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得した後、サブステップS2を実行する。
【0088】
サブステップS2では、各前記アクセス記憶アドレスについて例外イベントトリガーを満たす状況が存在しているか否かを確認し、存在している場合、前記N個のアクセス記憶操作の中に処理中に例外イベントを発生させるアクセス記憶操作が存在していることを確認結果として決定するが、そうでない場合、前記N個のアクセス記憶操作の中に処理中に例外イベントを発生させるアクセス記憶操作が存在していないことを確認結果として決定する。
【0089】
N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得した後、各アクセス記憶アドレスについて例外イベントトリガーを満たす状況が存在しているか否かを確認し、存在している場合、N個のアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していることを確認結果として決定するが、そうでない場合、N個のアクセス記憶操作の中に処理中に例外イベントを発生させるアクセス記憶操作が存在していないことを確認結果として決定する。
【0090】
例外イベントトリガーを満たす状況は、次のいくつかの状況のうちの少なくとも1つを含む。
【0091】
1、いずれかのアクセス記憶操作のパーミッションに属性パーミッション違反がある状況であり、ここで、属性パーミッション違反は、セグメント属性パーミッション違反及びページ属性パーミッション違反を含み、属性パーミッションは主に、読み取りパーミッション、書き込みパーミッション、実行パーミッション、特権レベルパーミッションなどを指し、属性パーミッション違反は、主に、いずれかのアクセス記憶操作/ベクタアクセス記憶命令の動作が、当該アクセス記憶操作/ベクタアクセス記憶命令によってアクセスされるアドレスに対応するパーミッションと一致しているか否かを示すために使用され、一致していない場合、いずれかのアクセス記憶操作/ベクタアクセス記憶命令のパーミッションに属性パーミッション違反があると判定される。
【0092】
2、アドレス変換テーブルには、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作のいずれかのアクセス記憶アドレスが含まれていない状況。
【0093】
3、ベクトルアクセス記憶命令のアクセス記憶アドレスは境界外アドレスである状況。
【0094】
ステップ303では、前記N個のアクセス記憶操作を実行する。
【0095】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、N個のアクセス記憶操作を実行して、N個のアクセス記憶操作の実行結果を得ることができる。
【0096】
ステップ304では、前記確認結果は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せず、例外イベントを報告する。
【0097】
例外イベントの確認結果は、N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せず、例外イベントを報告する。
【0098】
ステップ305では、前記確認結果は、前記N個のアクセス記憶操作がいずれも処理中に例外イベントを発生させないことを指示する場合、前記N個のアクセス記憶操作の実行結果を提出する。
【0099】
例外イベントの確認結果は、N個のアクセス記憶操作がいずれも処理中に例外イベントを発生させないことを指示する場合に、N個のアクセス記憶操作の実行結果を提出することができる。
【0100】
本願の実施例により提供されるアトミック性維持方法は、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成するとともに、N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認し、存在している場合、上記のN個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せず、例外イベントを報告し、本願に係る技術的解決手段を採用して、ベクトルアクセス記憶操作の処理中に、例外イベントが発生すると、例外イベントに応答するが、ベクトルアクセス記憶命令は任意の処理効果を生じないことを確保することができ、これによって、ベクトルアクセス記憶命令は、例外イベントの影響を受けてアクセス記憶操作の処理結果の一部のみが提出されていることがなく、ベクトル命令のアトミック性の維持を実現することができる。
【0101】
実施例4
図4を参照すると、
図4は、本願の実施例4に係るアトミック性維持方法のステップフローチャートを示している。
【0102】
本願の実施例により提供されるアトミック性維持方法は、その実行主体がCPUであってもよく、ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントがバリア命令イベントであることに基づき、アトミック性維持方法は、次のステップを含む。
【0103】
ステップ401では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成し、Nが1以上の正の整数である。
【0104】
本願の実施例では、ベクトルアクセス記憶命令は、1セットのデータに対して同じ処理を同時に実現することができ、実際の応用において、ベクトルアクセス記憶命令を受信した後、ベクトルアクセス記憶命令を分割して、N個のアクセス記憶操作に分割することができ、Nが1以上の正の整数である。
【0105】
本例では、ベクトルアクセス記憶命令は、Load命令であってもよいし、Store命令であってもよい。
【0106】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、ステップ402を実行する。
【0107】
ステップ402では、前記N個のアクセス記憶操作の処理中にバリア命令が存在しているか否かを確認する。
【0108】
ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成した後、N個のアクセス記憶操作の処理中にバリア命令が存在しているか否かを確認することができる。
【0109】
本願の実施例では、N個のアクセス記憶操作の処理中に、アトミック性に影響を及ぼすバリア命令が存在しているか否かを確認するステップは、N個のアクセス記憶操作の発信段階又は実行段階において実行されてもよい。
【0110】
ステップ403では、前記バリア命令を取得することに応答し、実行中のすべての前記N個のアクセス記憶操作がいずれも実行終了されたことを確認すると、前記バリア命令を処理するか、または
ステップ404では、前記ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を処理せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を処理する。
【0111】
N個のアクセス記憶操作の処理中にバリア命令が存在していることを確認した場合、取得されたバリア命令に応答し、実行中のすべてのN個のアクセス記憶操作がいずれも実行終了し、且つN個のアクセス記憶操作の実行結果がすべて提出されたことを確認した後、バリア命令を処理するか、または
前記ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を発信又は実行せずキャッシュし、未だに処理完了していないバリア命令が処理完了された後、N個のアクセス記憶操作を実行する。
【0112】
ここで、上記のステップ403とステップ404は、ステップ402実行後の並列選択肢であり、すなわち、ステップ402実行後、ステップ403とステップ404のいずれかのステップを選択して実行し、且つステップ403とステップ404を同時に実行しないようにすることができる。
【0113】
本願の実施例により提供されるアトミック性維持方法は、バリア命令が受信されたことが確認された後、バリア命令を取得することに応答し、処理中のすべての前記N個のアクセス記憶操作がいずれも処理完了したことを確認すると、バリア命令を処理するか、または、ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を処理せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、N個のアクセス記憶操作を処理し、本願に係る技術的解決手段を採用して、まず、バリア命令を処理し、バリア命令が処理完了された後、N個のアクセス記憶操作を処理するか、または、まず、N個のアクセス記憶操作を処理し、N個のアクセス記憶操作が実行終了し、且つ実行結果がすべて提出された後、バリア命令を処理することによって、ベクトルアクセス記憶命令は、バリア命令の影響を受けてアクセス記憶操作の実行結果の一部のみが提出されていることがなく、ベクトル命令のアトミック性の維持を実現することができる。
【0114】
実施例5
図5を参照すると、
図5は、本願の実施例5に係るアトミック性維持方法のステップフローチャートを示している。
【0115】
本願の実施例は、実施例2から実施例4に記載されている、ベクトルアクセス記憶命令のアトミック性に影響を及ぼす3つのイベントを同時にカバーする別のアトミック性維持方法を提供する。これに基づき、アトミック性維持方法は、次のステップを含む。
【0116】
ステップ501では、ベクトルアクセス記憶命令に従ってN個のアクセス記憶操作を生成し、Nが1以上の正の整数である。
【0117】
本願の実施例では、ベクトルアクセス記憶命令の定義及び復号化方法は、実施例2から実施例4と一致するため、ここで繰り返して説明しない。
【0118】
ステップ502では、N個のアクセス記憶操作の発信段階において、N個のアクセス記憶操作の処理中に割り込みイベントが存在しているか否かを確認し、存在している場合、ステップ504を実行するが、そうでない場合、ステップ503を実行する。同時に、N個のアクセス記憶操作の発信段階において、N個のアクセス記憶操作の処理中にバリア命令が存在しているか否かを確認し、存在している場合、ステップ505を実行するが、そうでない場合、ステップ503を実行する。
【0119】
ステップ503では、N個のアクセス記憶操作を発信するとともに、前記N個のアクセス記憶操作の実行段階において、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認し、存在している場合、ステップ506を実行するが、そうでない場合、ステップ507を実行する。
【0120】
ステップ504では、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも処理せず、前記割り込みイベントに応答する。
【0121】
本願の実施例では、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも処理しないことは、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも発信しないこと、または、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも実行しないことを含む。
【0122】
さらに、前記割り込みイベントに応答終了した後、前記N個のアクセス記憶操作を処理し、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも発信しない場合、前記割り込みイベントに応答終了した後、ステップ503を実行し、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作をも実行しない場合、前記割り込みイベントに応答終了した後、ステップ503における、前記N個のアクセス記憶操作の実行段階において、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認するステップを実行する。
【0123】
ステップ505では、前記N個のアクセス記憶操作を処理せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を処理する。
【0124】
本願の実施例では、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を処理し、すなわち、未だに処理完了していないバリア命令が処理完了された後、ステップ503を実行する。
【0125】
さらに、ステップ502及びステップ504では、割り込みイベント/バリア命令が存在している場合、まず、ステップ503を実行し、N個のアクセス記憶操作の実行結果の提出/例外イベントの報告が済んだ後、割り込みイベント/バリア命令に応答するようにしてもよい。
【0126】
ステップ506では、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せずに、例外イベントを報告する。
【0127】
ステップ507では、前記N個のアクセス記憶操作を実行して、前記N個のアクセス記憶操作の実行結果を提出する。
【0128】
実施例6
図6を参照すると、
図6は、本願の実施例6に係るプロセッサの構造ブロック図を示している。
【0129】
図6-Aに示すように、本願の実施例に係るプロセッサは、
ベクトルアクセス記憶命令を取得して、前記ベクトルアクセス記憶命令に従って1以上の正の整数であるN個のアクセス記憶操作を生成することに用いられる復号化ユニット61と、
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認すること、及び前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じること、に用いられる処理ユニット62と、を含む。
【0130】
前記処理ユニット62は、具体的には、前記N個のアクセス記憶操作の処理中に、割り込みイベント、例外イベント、バリア命令のうちの少なくとも1つが存在しているか否かを確認すること、及び、存在している場合、前記N個のアクセス記憶操作の処理中に、前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在していると判定することに用いられる。
【0131】
図6-Bに示すように、プロセッサは、命令メモリ63を含み、復号化ユニットのベクトルアクセス記憶命令は命令メモリからのものであってもよい。
【0132】
選択的には、前記処理ユニット62は、発信ユニット621、実行ユニット622、及び提出ユニット623を含む。
【0133】
前記発信ユニット621は、前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認する前に、前記ベクトルアクセス記憶命令の処理中に、割り込みイベントが発生したことに応答し、前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加することに用いられ、前記割り込みフラグは、前記ベクトルアクセス記憶命令の処理中に割り込みイベントが発生したことを指示するためのものである。
【0134】
選択的には、前記発信ユニット621は、具体的には、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に対して、前記割り込みフラグを追加することに用いられる。
【0135】
選択的には、前記発信ユニット621は、具体的には、前記N個のアクセス記憶操作のすべてのアクセス記憶操作に対して、前記割り込みフラグを追加することに用いられる。
【0136】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作をも発信しないことに用いられる。
【0137】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる。
【0138】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行することに用いられ、
前記提出ユニット623は、前記N個のアクセス記憶操作の実行結果を提出することに用いられ、
プロセッサは、前記N個のアクセス記憶操作の実行結果が提出終了したことを確認すると、前記割り込みイベントを処理する。
【0139】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認し、前記最初のアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作のいずれも発信しない。
【0140】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認すること、及び、前記最初のアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる。
【0141】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認すること、及び、前記最初のアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行することに用いられ、
前記提出ユニット623は、前記N個のアクセス記憶操作の実行結果を提出することに用いられる。
【0142】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作のいずれにも前記割り込みフラグがマークされていない場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記N個のアクセス記憶操作を実行することに用いられ、
前記提出ユニット623は、前記N個のアクセス記憶操作の実行結果を提出することに用いられる。
【0143】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認し、確認結果を得るとともに、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記N個のアクセス記憶操作を実行することに用いられ、
前記提出ユニット623は、前記確認結果は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せずに、例外イベントを報告することに用いられる。
【0144】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニット622は、前記N個のアクセス記憶操作を実行するとともに、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認し、確認結果を得ることに用いられ、
前記提出ユニット623は、前記確認結果は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、前記N個のアクセス記憶操作の各アクセス記憶操作の実行結果をすべて提出して、例外イベントを報告することに用いられる。
【0145】
選択的には、前記発信ユニット621は、前記N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得すること、及び、各前記アクセス記憶アドレスについて例外イベントトリガーを満たす状況が存在しているか否かを確認し、存在している場合、前記N個のアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していることを確認結果として決定するが、そうでない場合、前記N個のアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していないことを確認結果として決定することに用いられ、
ここで、前記例外イベントトリガーを満たす状況は、
いずれかの前記N個のアクセス記憶操作のパーミッションに属性パーミッション違反がある状況、
アドレス変換テーブルには前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作のいずれかのアクセス記憶アドレスも含まれていない状況、
前記ベクトルアクセス記憶命令のアクセス記憶アドレスが境界外アドレスである状況、といういくつかの状況のうちの少なくとも1つを含む。
【0146】
選択的には、前記提出ユニット623は、前記確認結果は、前記N個のアクセス記憶操作がいずれも処理中に例外イベントを発生させないことを指示する場合、前記N個のアクセス記憶操作の実行結果を提出することに用いられる。
【0147】
選択的には、前記処理ユニット62は、バリア命令が受信されたと決定されると、前記バリア命令に応答し、処理中のすべての前記N個のアクセス記憶操作が実行終了されて実行結果が提出されたと確認されると、前記バリア命令を処理すること、または
前記ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を実行せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる。
【0148】
選択的には、前記ベクトルアクセス記憶命令は、Load命令又はStore命令であり、前記処理ユニットは、実行ユニットをさらに含み、プロセッサは、汎用レジスタ64をさらに含み、
前記ベクトルアクセス記憶命令がLoad命令である場合に、前記実行ユニット622は、具体的には、前記ベクトルアクセス記憶命令で指示されるアドレスのオペランドをメモリから読み取ることを実行することに用いられ、前記提出ユニット623は、前記オペランドを指定された汎用レジスタ64に読み出すことに用いられ、
前記ベクトルアクセス記憶命令がStore命令である場合に、前記実行ユニット622は、具体的には、前記ベクトルアクセス記憶命令で指示されるアドレスのオペランドを指定された汎用レジスタ64から読み取ることを実行することに用いられ、前記提出ユニットは、前記オペランドをメモリに書き込むことに用いられる。
【0149】
本願の実施例におけるプロセッサは、前述した方法の実施例における対応するアトミック性維持方法を実現するために用いられ、方法の実施例に応じた有益な効果を有しているため、ここで繰り返して説明しない。
【0150】
実施例7
図7を参照すると、
図7は、本願の実施例7に係るアトミック性維持用電子機器の構造概略図を示している。
【0151】
図7に示すように、電子機器は、処理アセンブリ702、メモリ704、電源アセンブリ706、マルチメディアアセンブリ708、オーディオアセンブリ710、入力/出力(I/O)用インタフェース712、センサアセンブリ714、及び通信アセンブリ716のうちの1つ又は複数のアセンブリを含むことができる。
【0152】
処理アセンブリ702は、一般に、表示、データ通信、カメラ動作、及び記録動作に関連する動作など、電子機器の全体的な動作を制御する。処理アセンブリ702は、上述した方法のステップのすべて又は一部を完了させるために、命令を処理する1つ又は複数のプロセッサ720を含むことができる。また、処理アセンブリ702は、処理アセンブリ702と他のアセンブリとの間の相互作用を容易にするための1つ又は複数のモジュールを含むことができる。例えば、処理アセンブリ702は、マルチメディアアセンブリ708と処理アセンブリ702との間の相互作用を容易にするためのマルチメディアモジュールを含むことができる。
【0153】
メモリ704は、電子機器での操作をサポートするための様々なタイプのデータを記憶するように構成されている。このようなデータの例としては、電子機器上で操作される任意のアプリケーション又は方法の命令、連絡先データ、電話帳データ、メッセージ、画像、ビデオなどがある。メモリ704は、スタティックランダムアクセスメモリ(SRAM)、電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク、または光ディスクのような任意のタイプの揮発性又は不揮発性記憶機器、またはそれらの組み合わせによって実装され得る。
【0154】
電源アセンブリ706は、電子機器の様々なアセンブリに電力を供給する。電源アセンブリ706は、電源管理システム、1つ又は複数の電源、及び電子機器700に供する電力の生成、管理、及び配電に関連するその他のアセンブリを含むことができる。
【0155】
マルチメディアアセンブリ708は、前記電子機器とユーザとの間の出力インタフェースを提供するスクリーンを含む。いくつかの実施例では、スクリーンは、液晶ディスプレイ(LCD)及びタッチパネル(TP)を含み得る。スクリーンがタッチパネルを含む場合、スクリーンはユーザからの入力信号を受信するためのタッチスクリーンとして実装され得る。タッチパネルは、タッチ、スワイプ、及びタッチパネル上でのジェスチャーを感知するための1つ又は複数のタッチセンサを含む。前記タッチセンサは、タッチ又はスワイプ操作の境界を感知するだけでなく、前記タッチ又はスワイプ操作に関連する持続時間及び圧力を検出することもできる。いくつかの実施例では、マルチメディアアセンブリ708は、1つのフロントカメラ及び/又はリアカメラを含む。フロントカメラ及び/又はリアカメラは、電子機器が撮影モード又はビデオモードなどの動作モードにあるときに、外部マルチメディアデータを受信することができる。各フロントカメラ及びリアカメラは、固定式光学レンズシステムであってもよいし、焦点距離及び光学ズーム機能を有するものであってもよい。
【0156】
オーディオアセンブリ710は、オーディオ信号を出力及び/又は入力するように構成されている。例えば、オーディオアセンブリ710は、端末が通話モード、録音モード、音声認識モードなどの動作モードにあるときに、外部オーディオ信号を受信するように構成されているマイクロフォン(MIC)を含む。受信されたオーディオ信号は、さらに、メモリ704に記憶されるか、通信アセンブリ716によって送信され得る。いくつかの実施例では、オーディオアセンブリ710は、オーディオ信号を出力するためのスピーカをさらに含む。
【0157】
I/Oインタフェース712は、処理アセンブリ702と周辺インタフェースモジュールとの間のインタフェースを提供し、上記の周辺インタフェースモジュールは、キーパッド、クリックホイール、ボタンなどであってもよい。これらのボタンは、ホームボタン、音量ボタン、スタートボタン、ロックボタンを含むことができるが、これらに限定されない。
【0158】
センサアセンブリ714は、電子機器700の状態の様々な側面の評価を提供するための1つ又は複数のセンサを含む。例えば、センサアセンブリ714は、電子機器700の開/閉状態、例えば前記アセンブリが端末のディスプレイ及びキーパッドであるようなアセンブリの相対的位置決めを検出することができ、センサアセンブリ714はまた、端末又は端末の1つのアセンブリの位置の変化、電子機器に対するユーザの接触の有無、電子機器の向き又は加速/減速、及び電子機器の温度の変化を検出することができる。センサアセンブリ714は、物理的な接触が一切なくても近くの物体の存在を検出するように構成されている近接センサを含むことができる。センサアセンブリ714はまた、撮像用途に使用するためのCMOS又はCCDイメージセンサなどの光学センサを含み得る。いくつかの実施例では、当該センサアセンブリ714はさらに、加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ、または温度センサを含み得る。
【0159】
通信アセンブリ716は、電子機器と他のデバイスとの間の有線又は無線通信を容易にするように構成されている。電子機器は、WiFi、2G又は3G、またはそれらの組み合わせなどの通信規格に基づく無線ネットワークにアクセスすることができる。1つの例示的な実施例では、通信コンポーネント716は、ブロードキャストチャネルを経由して、外部のブロードキャスト管理システムからのブロードキャスト信号又はブロードキャスト関連情報を受信する。1つの例示的な実施例では、前記通信コンポーネント716は、近距離通信を容易にするための近距離通信(NFC)モジュールをさらに備える。例えば、NFCモジュールは、無線周波数識別(RFID)技術、赤外線データ協会(IrDA)技術、ウルトラワイドバンド(UWB)技術、ブルートゥース(登録商標)(BT)技術、及び他の技術に基づいて実装することができる。
【0160】
例示的な実施例では、電子機器は、上記の実施例1から実施例5に記載されているアトミック性維持方法を処理するために、1つ又は複数のアプリケーション特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラー、マイクロコントローラー、マイクロプロセッサ、または他の電子素子によって実装され得る。
【0161】
本願の実施例に係る電子機器は、前述した複数の方法の実施例における対応するアトミック性維持方法を実装するためのものであり、且つ対応する方法の実施の有益な効果を有しているため、ここでは繰り返して説明しない。
【0162】
本明細書における各実施例は漸進的に説明され、各実施例は他の実施例との相違点に焦点を当て説明を進んでおり、各実施例同士の同じ又は類似する部分は互いに参照すればよい。装置の実施例については、基本的に方法の実施例と類似しているため、説明は比較的に簡単であり、関連している箇所は、方法の実施例を参照して説明すればよい。
【0163】
以上は、本願により提供されるアトミック性維持方法、プロセッサ及び電子機器について詳細に説明した。本明細書において、本願発明の原理及び実施形態は、特定の例を適用して説明されているが、以上の実施例は、単に本願発明の方法及びその主要な構想を理解するのに役立つために説明されており、同時に、当業者であれば、本願発明の構想に基づき、特定の実施形態及びその適用範囲に変化を加えることができる。以上のように、本明細書の記載は本願発明を制限するためのものとして理解すべきではない。
【0164】
本明細書で提供されるアルゴリズムや表示は、特定のコンピュータ、電子システム、その他のデバイスと本質的に関連するものではない。様々な汎用システムも、本明細書に基づく教示と組み合わせて使用することができる。そのようなシステムを構築するために必要な構造は、上記の説明に照らして明らかである。さらに、本願は、特定のプログラミング言語を対象とするものではない。本明細書で説明されている本願の内容を実装するために、様々なプログラミング言語を利用することができ、特定の言語に関する上記の説明は、本願の最良の実施形態を開示するために提供されることを理解されたい。
【0165】
本願により提供される明細書において、大量の具体的な詳細が記載されている。しかしながら、本願の実施例は、これらの具体的な詳細がなくても実施可能であることが理解され得る。いくつかの実例では、本明細書の理解を不明瞭にしないように、公知の方法、構造及び技術は詳細に示されていない。
【0166】
同様に、本開示を簡潔にして、様々な発明の1つ又は複数の態様の理解に役立つようにするために、本願の例示的な実施例の上記の説明において、本願の様々な特徴は、単一の実施例、図面、またはそれらに関する説明にまとめられていることがあることが理解されるべきである。しかしながら、当該開示に係る方法は、特許を請求する本願が、各請求項に明示的に記載されている特徴よりも多くの特徴を必要とする意図を反映するものと解釈されるべきではない。より正確にいうと、以下の特許請求の範囲に反映されているように、本発明の態様は、先に開示された個々の実施例に係るすべての特徴よりも少ない数の特徴がある。したがって、特定の実施形態に従う特許請求の範囲は、それによってその特定の実施形態に明示的に組み込まれ、各請求項自体が本願の別個の実施例として機能する。
【0167】
当業者であれば、実施例におけるデバイス内のモジュールを適応的に変更し、当該実施例とは異なる1つ又は複数のデバイスに配置することが可能であることを理解することができる。実施例におけるモジュール又はユニット又はアセンブリを、単一のモジュール又はユニット又はアセンブリに組み合わせることが可能であり、さらに、複数のサブモジュール又はサブユニット又はサブアセンブリに分割することも可能である。このような特徴及び/又はプロセス又はユニットの少なくとも一部が相互に排他的である場合を除き、本明細書(添付の特許請求の範囲、要約及び添付図面を含む)に開示されたすべての特徴及びこのように開示された方法又はデバイスのすべてのプロセス又はユニットを、任意の組み合わせで組み合わせることができる。本明細書(添付の特許請求の範囲、要約、及び添付図面を含む)に開示された各特徴は、特に明記されていない限り、同一、等価、または類似する目的を提供する代替的な特徴によって置き換えられてもよい。
【0168】
加えて、当業者は、本明細書に記載されているいくつかの実施例は、その他の実施例に含まれているその他の特徴ではなくいくつかの特徴を含むが、異なる実施例の特徴の組み合わせは、本願の範囲内のものであり、異なる実施例を形成していることを意味することを理解することができる。例えば、以下の特許請求の範囲では、主張される実施例のいずれか1つは任意の組み合わせで使用され得る。
【0169】
本願の様々な構成要素の実施例は、ハードウェア、または1つ又は複数のプロセッサ上で実行されるソフトウェアモジュール、またはそれらの組み合わせで実装され得る。当業者は、マイクロプロセッサ又はデジタル信号プロセッサ(DSP)が、本願の実施例によるブラウザクライアントデバイスにおける構成要素の一部又はすべての機能の一部又はすべてを実装するために実際に使用され得ることを理解すべきである。また、本願は、本明細書に記載の方法の一部又は全部を実行するためのデバイス又は装置プログラム(例えば、コンピュータプログラム及びコンピュータプログラム製品)として実装され得る。本願を実装するこのようなプログラムは、コンピュータ可読媒体に格納されているものであってもよいし、1つ又は複数の信号の形態を有するものであってもよい。このような信号は、インターネットサイトからダウンロード可能であってもよいし、キャリア信号で提供されてもよいし、任意の他の形態で提供されてもよい。
【0170】
上記の実施例は、本願を説明するためのものであり、本願を限定するものではなく、当業者であれば、添付の特許請求の範囲から逸脱することなく、代替の実施例を設計することができることに留意されたい。特許請求の範囲において、括弧の間に位置する参照符号は、特許請求の範囲を限定するものとして解釈されるべきではない。用語「含む」は、特許請求の範囲に記載されていない素子又はステップの存在を排除しない。素子の前にある用語「一」又は「1つ」は、そのような素子が複数存在することを除外しない。本願は、いくつかの異なる素子を含むハードウェア、及び適切にプログラムされたコンピュータによって実装され得る。いくつかの装置を列挙している個別の請求項では、これらの装置のいくつかが、同一のハードウェアによって具現化され得る。第1、第2、第3といった用語の使用は、いかなる順序を示すものではない。これらの用語は名称として解釈されてもよい。
【0171】
本願は、2021年12月10日に中国国家知的産権局に提出された、出願番号が202111507703.Xであり、発明の名称が「アトミック性維持方法、プロセッサ及び電子機器」である中国特許出願の優先権を主張しており、その内容の全ては、本願に参照によって取り込まれる。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ベクトルアクセス記憶命令に従って、1以上の正の整数であるN個のアクセス記憶操作を生成するステップと、
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップと、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じるステップと、を含む、ことを特徴とするアトミック性維持方法。
【請求項2】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作の処理中に割り込みイベント、例外イベント、バリア命令のうちの少なくとも1つが存在しているか否かを確認するステップと、
存在している場合、前記N個のアクセス記憶操作の処理中に、前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在していると判定するステップと、を含む、ことを特徴とする請求項1に記載のアトミック性維持方法。
【請求項3】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップの前に、
前記ベクトルアクセス記憶命令の処理中に、割り込みイベントが発生したことに応答し、前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加するステップをさらに含み、
前記割り込みフラグは、前記ベクトルアクセス記憶命令の処理中に割り込みイベントが発生したことを指示するためのものである、ことを特徴とする請求項2に記載のアトミック性維持方法。
【請求項4】
前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加するステップは、
前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に対して、前記割り込みフラグを追加するステップを含む、ことを特徴とする請求項3に記載のアトミック性維持方法。
【請求項5】
前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加するステップは、
前記N個のアクセス記憶操作のすべてのアクセス記憶操作に対して、前記割り込みフラグを追加するステップを含む、ことを特徴とする請求項3に記載のアトミック性維持方法。
【請求項6】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認するステップを含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないステップは、
前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされている場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行するステップを含む、ことを特徴とする請求項3~5のいずれか1項に記載のアトミック性維持方法。
【請求項7】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認するステップを含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作はすべての処理効果を生じるステップは、
前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行するステップと、
前記N個のアクセス記憶操作の実行結果を提出するステップと、
前記N個のアクセス記憶操作の実行結果がいずれも提出終了したことが確認されると、前記割り込みイベントを処理するステップと、を含む、ことを特徴とする請求項3~5のいずれか1項に記載のアトミック性維持方法。
【請求項8】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認するステップを含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないステップは、
前記最初のアクセス記憶操作に前記割り込みフラグがマークされている場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行するステップを含む、ことを特徴とする請求項3~5のいずれか1項に記載のアトミック性維持方法。
【請求項9】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認するステップを含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作はすべての処理効果を生じるステップは、
前記最初のアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行するステップと、
前記N個のアクセス記憶操作の実行結果を提出するステップと、
前記N個のアクセス記憶操作の実行結果が提出終了したことが確認されると、前記割り込みイベントを処理するステップと、を含む、ことを特徴とする請求項3~5のいずれか1項に記載のアトミック性維持方法。
【請求項10】
前記アトミック性維持方法は、
前記N個のアクセス記憶操作のいずれにも前記割り込みフラグがマークされていない場合、前記N個のアクセス記憶操作を実行するステップと、
前記N個のアクセス記憶操作の実行結果を提出するステップと、をさらに含む、ことを特徴とする請求項3~5のいずれか1項に記載のアトミック性維持方法。
【請求項11】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認して、確認結果を得るステップと、
前記N個のアクセス記憶操作を実行するステップと、を含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないステップは、
前記確認結果は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せずに、例外イベントを報告するステップを含む、ことを特徴とする請求項
3~5のいずれか1項に記載のアトミック性維持方法。
【請求項12】
前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認して、確認結果を得るステップは、
前記N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得するステップと、
各前記アクセス記憶アドレスについて例外イベントトリガーを満たす状況が存在しているか否かを確認し、存在している場合、前記N
個のアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していることを確認結果として決定するが、そうでない場合、前記N個のアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していないことを確認結果として決定するステップと、を含み、
前記例外イベントトリガーを満たす状況は、
いずれかの前記
N個のアクセス記憶操作のパーミッションに属性パーミッション違反がある状況、
アドレス変換テーブルには
前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作のいずれか
のアクセス記憶アドレスも含まれていない状況、
前記ベクトルアクセス記憶命令のアクセス記憶アドレスが境界外アドレスである状況、のうちの少なくとも1つを含む、ことを特徴とする請求項11に記載のアトミック性維持方法。
【請求項13】
前記N個のアクセス記憶操作を実行するステップの後、
前記確認結果は、前記N個のアクセス記憶操作がいずれも処理中に例外イベントを発生させないことを指示する場合、前記N個のアクセス記憶操作の実行結果を提出するステップ、をさらに含む、ことを特徴とする請求項
11に記載のアトミック性維持方法。
【請求項14】
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認するステップは、
バリア命令が受信されたか否かを確認するステップを含み、
前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じるステップは、
前記バリア命令を取得することに応答し、処理中のすべての前記N個のアクセス記憶操作が実行終了されて実行結果が提出されたと確認されると、前記バリア命令を処理するステップ、または
前記ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を実行せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を実行するステップを含む、ことを特徴とする請求項
3~5のいずれか1項に記載のアトミック性維持方法。
【請求項15】
前記ベクトルアクセス記憶命令は、Load命令又はStore命令であり、
前記ベクトルアクセス記憶命令がLoad命令である場合に、前記N個のアクセス記憶操作を実行するステップは、
前記ベクトルアクセス記憶命令で指示されるアドレスのオペランドをメモリから指定された汎用レジスタに読み出す操作を実行するステップを含み、
前記ベクトルアクセス記憶命令がStore命令である場合に、前記N個のアクセス記憶操作を実行するステップは、
前記ベクトルアクセス記憶命令で指示されるアドレスのオペランドを指定された汎用レジスタからメモリに書き込む操作を実行するステップを含む、ことを特徴とする請求項
3~5のいずれか1項に記載のアトミック性維持方法。
【請求項16】
ベクトルアクセス記憶命令を取得して、前記ベクトルアクセス記憶命令に従って、1以上の正の整数であるN個のアクセス記憶操作を生成することに用いられる復号化ユニットと、
前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認すること、及び、前記イベントが存在している場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作も任意の処理効果を生じないか、又は前記N個のアクセス記憶操作はすべての処理効果を生じることに用いられる処理ユニットと、を含む、ことを特徴とするプロセッサ。
【請求項17】
前記処理ユニットは、具体的には、
前記N個のアクセス記憶操作の処理中に、割り込みイベント、例外イベント、バリア命令のうちの少なくとも1つが存在しているか否かを確認すること、及び、存在している場合、前記N個のアクセス記憶操作の処理中に、前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在していると判定することに用いられる、ことを特徴とする請求項16に記載のプロセッサ。
【請求項18】
前記処理ユニットは、発信ユニットを含み、
前記発信ユニットは、前記N個のアクセス記憶操作の処理中に前記ベクトルアクセス記憶命令がアトミック性を持たないようにするイベントが存在しているか否かを確認する前に、前記ベクトルアクセス記憶命令の処理中に、割り込みイベントが発生したことに応答し、前記N個のアクセス記憶操作の1つ又は複数に割り込みフラグを追加することに用いられ、前記割り込みフラグは、前記ベクトルアクセス記憶命令の処理中に割り込みイベントが発生したことを指示するためのものである、ことを特徴とする請求項17に記載のプロセッサ。
【請求項19】
前記発信ユニットは、具体的には、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に対して、前記割り込みフラグを追加することに用いられる、ことを特徴とする請求項18に記載のプロセッサ。
【請求項20】
前記発信ユニットは、具体的には、前記N個のアクセス記憶操作のすべてのアクセス記憶操作に対して、前記割り込みフラグを追加することに用いられる、ことを特徴とする請求項18に記載のプロセッサ。
【請求項21】
前記発信ユニットは、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作をも発信しないことに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項22】
前記処理ユニットは、実行ユニットをさらに含み、
前記発信ユニットは、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされていると決定する場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項23】
前記処理ユニットは、実行ユニット及び提出ユニットをさらに含み、
前記発信ユニットは、前記N個のアクセス記憶操作に前記割り込みフラグがマークされているか否かを順次確認すること、及び、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作に前記割り込みフラグがマークされていると決定する場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行することに用いられ、
前記提出ユニットは、前記N個のアクセス記憶操作の実行結果を提出することに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項24】
前記発信ユニットは、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認し、前記最初のアクセス記憶操作に前記割り込みフラグがマークされている場合、前記N個のアクセス記憶操作のいずれも発信しないことに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項25】
前記処理ユニットは、実行ユニットをさらに含み、
前記発信ユニットは、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認すること、及び、前記最初のアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作をキャッシュし、前記N個のアクセス記憶操作のいずれかのアクセス記憶操作を実行せず、前記割り込みイベントが処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項26】
前記処理ユニットは、実行ユニット及び提出ユニットをさらに含み、
前記発信ユニットは、前記N個のアクセス記憶操作のうち最初のアクセス記憶操作に前記割り込みフラグがマークされているか否かを確認すること、及び、前記最初のアクセス記憶操作に前記割り込みフラグがマークされていると決定した場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記N個のアクセス記憶操作の各アクセス記憶操作をすべて実行することに用いられ、
前記提出ユニットは、前記N個のアクセス記憶操作の実行結果を提出することに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項27】
前記処理ユニットは、実行ユニット及び提出ユニットをさらに含み、
前記発信ユニットは、前記N個のアクセス記憶操作のいずれにも前記割り込みフラグがマークされていない場合、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記N個のアクセス記憶操作を実行することに用いられ、
前記提出ユニットは、前記N個のアクセス記憶操作の実行結果を提出することに用いられる、ことを特徴とする請求項18~20のいずれか1項に記載のプロセッサ。
【請求項28】
前記処理ユニットは、発信ユニット、実行ユニット、及び提出ユニットを含み、
前記発信ユニットは、前記N個のアクセス記憶操作を発信することに用いられ、
前記実行ユニットは、前記N個のアクセス記憶操作を実行するとともに、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在しているか否かを確認して、確認結果を得ることに用いられ、
前記提出ユニットは、前記確認結果は、前記N個のアクセス記憶操作の中に、処理中に例外イベントを発生させるアクセス記憶操作が存在していることを指示する場合、前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作の実行結果をも提出せずに、例外イベントを報告することに用いられる、ことを特徴とする請求項17に記載のプロセッサ。
【請求項29】
前記実行ユニットは、前記N個のアクセス記憶操作の各アクセス記憶操作のアクセス記憶アドレスを取得すること、及び、各前記アクセス記憶アドレスについて例外イベントトリガーを満たす状況が存在しているか否かを確認し、存在している場合、前記N
個のアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していることを確認結果として決定するが、そうでない場合、前記N個のアクセス記憶操作の中に処理中に例外イベントを発生させるいずれかのアクセス記憶操作が存在していないことを確認結果として決定することに用いられ、
前記例外イベントトリガーを満たす状況は、
いずれかの前記
N個のアクセス記憶操作のパーミッションに属性パーミッション違反がある状況、
アドレス変換テーブルには
前記N個のアクセス記憶操作のうちのいずれかのアクセス記憶操作のいずれか
のアクセス記憶アドレスも含まれていない状況、
前記ベクトルアクセス記憶命令のアクセス記憶アドレスが境界外アドレスである状況、のうちの少なくとも1つを含む、ことを特徴とする請求項
27に記載のプロセッサ。
【請求項30】
前記提出ユニットは、前記確認結果は、前記N個のアクセス記憶操作がいずれも処理中に例外イベントを発生させないことを指示する場合、前記N個のアクセス記憶操作の実行結果を提出することに用いられる、ことを特徴とする請求項29に記載のプロセッサ。
【請求項31】
前記処理ユニットは、
バリア命令が受信されたと決定されると、前記バリア命令に応答すること、及び、処理中のすべての前記N個のアクセス記憶操作が実行終了されて実行結果が提出されたと確認されると、前記バリア命令を処理すること、または
前記ベクトルアクセス記憶命令を取得することに応答し、未だに処理完了していないバリア命令が存在している場合、前記ベクトルアクセス記憶命令によって生成されたN個のアクセス記憶操作を実行せずにキャッシュし、未だに処理完了していないバリア命令が処理完了された後、前記N個のアクセス記憶操作を実行することに用いられる、ことを特徴とする請求項16に記載のプロセッサ。
【請求項32】
メモリ、及び1つ以上のプログラムを含む電子機器であって、前記1つ以上のプログラムは、前記メモリに記憶されており、請求項
3~5の1つ又は複数に記載のアトミック性維持方法が1つ以上のプロセッサにより実行されるように構成されている、ことを特徴とする電子機器。
【手続補正3】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【国際調査報告】