JP2016110400A - Arithmetic processing unit, and control method for arithmetic processing unit - Google Patents
Arithmetic processing unit, and control method for arithmetic processing unit Download PDFInfo
- Publication number
- JP2016110400A JP2016110400A JP2014247398A JP2014247398A JP2016110400A JP 2016110400 A JP2016110400 A JP 2016110400A JP 2014247398 A JP2014247398 A JP 2014247398A JP 2014247398 A JP2014247398 A JP 2014247398A JP 2016110400 A JP2016110400 A JP 2016110400A
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- save
- arithmetic processing
- nonvolatile memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Power Sources (AREA)
- Memory System (AREA)
Abstract
【課題】電源をオフにするまでに要する時間を短縮して待機時間を長くすることにより、消費電力をより一層低減することができる演算処理装置および演算処理装置の制御方法の提供を図る。【解決手段】演算処理に使用するデータを保持するレジスタファイル23と、プリスリープ指示Sppdに基づいて、空きのレジスタリードアクセスを使用して、前記レジスタファイル23の内容を不揮発メモリ33に退避し、前記プリスリープ指示の後に受信するスリープ指示Spdに基づいて、前記レジスタファイル23の内容を前記不揮発メモリ33に退避する処理を実行するレジスタ退避制御部1と、を有する。【選択図】図3An arithmetic processing device and a control method for the arithmetic processing device that can further reduce power consumption by shortening the time required until the power is turned off and increasing the standby time are provided. Based on a register file holding data used for arithmetic processing and a pre-sleep instruction Sppd, the contents of the register file are saved to a non-volatile memory using empty register read access. A register save control unit 1 that executes a process of saving the contents of the register file 23 to the nonvolatile memory 33 based on a sleep instruction Spd received after the pre-sleep instruction. [Selection] Figure 3
Description
本明細書で言及する実施例は、演算処理装置および演算処理装置の制御方法に関する。 The embodiments referred to in this specification relate to an arithmetic processing device and a control method for the arithmetic processing device.
近年のIoT(Internet of Things)の時代においては、例えば、スマートメータを始めとして、様々な場所にセンサーなどの小型電子機器が活用されるようになる。そのような状況下において、センシングや認識などのデータ処理は、頻繁な充電や電池交換を避けるために、間欠的に行って低消費電力で行うのが好ましい。 In the recent IoT (Internet of Things) era, for example, small electronic devices such as sensors are used in various places including smart meters. Under such circumstances, data processing such as sensing and recognition is preferably performed intermittently and with low power consumption in order to avoid frequent charging and battery replacement.
このような小型電子機器において、例えば、演算処理装置(プロセッサ)による所定の処理が完了すると、その処理結果(データ)を不揮発メモリ(不揮発性メモリ)に保存し、プロセッサの電源をオフして待機(スタンバイ:スリープ)状態にすることが行われる。すなわち、電池駆動の小型電子機器において、通常時はプロセッサの電源をオフして低消費電力化を図るノーマリーオフの技術が重要となって来ている。 In such a small electronic device, for example, when predetermined processing by the arithmetic processing unit (processor) is completed, the processing result (data) is stored in the nonvolatile memory (nonvolatile memory), the processor is turned off, and the standby is performed. (Standby: sleep) state is performed. In other words, normally-off technology for reducing power consumption by turning off the power of the processor is becoming important in battery-driven small electronic devices.
ところで、従来、消費電力を低減することのできる演算処理装置としては、様々なものが提案されている。 By the way, conventionally, various types of arithmetic processing devices that can reduce power consumption have been proposed.
上述したように、例えば、プロセッサの消費電力を低減するために、スリープ(スタンバイ)時に電源をオフにする低消費電力化の手法が知られている。ここで、スリープ時には、例えば、レジスタファイル(レジスタ)の内容といったプロセッサ内の情報を、不揮発メモリに退避させておく。 As described above, for example, in order to reduce the power consumption of the processor, a technique for reducing the power consumption is known in which the power is turned off during sleep (standby). Here, at the time of sleep, for example, information in the processor such as the contents of a register file (register) is saved in the nonvolatile memory.
しかしながら、不揮発メモリは書き込み速度が遅いため、電源をオフにするまでに長時間を要し、そのため、待機時間が短くなる。このように、待機時間が短くなると、低電力化の効果が低くなってしまう。 However, since the writing speed of the nonvolatile memory is slow, it takes a long time to turn off the power, and the standby time is shortened. Thus, when the standby time is shortened, the effect of reducing power consumption is reduced.
なお、退避時間を短縮するために、例えば、プロセッサと不揮発メモリのバンド幅を増加し、或いは、同一の半導体チップ(LSI)に混載する方法も考えられるが、面積や製造コストの増大を招くことになる。本発明の課題は、実装面積や製造コストを増大させることなく、待機処理による低電力効果を高めることである。 In order to shorten the save time, for example, a method of increasing the bandwidth of the processor and the non-volatile memory, or a method of mounting them on the same semiconductor chip (LSI) is conceivable, but this increases the area and manufacturing cost. become. The subject of this invention is improving the low power effect by standby processing, without increasing a mounting area and manufacturing cost.
一実施形態によれば、演算処理に使用するデータを保持するレジスタファイルと、レジスタ退避制御部と、を有する演算処理装置が提供される。 According to one embodiment, an arithmetic processing device is provided that includes a register file that holds data used for arithmetic processing and a register save control unit.
前記レジスタ退避制御部は、プリスリープ指示に基づいて、空きのレジスタリードアクセスを使用して、前記レジスタファイルの内容を不揮発メモリに退避し、前記プリスリープ指示の後に受信するスリープ指示に基づいて、前記レジスタファイルの内容を前記不揮発メモリに退避する処理を実行する。 The register saving control unit saves the contents of the register file in a nonvolatile memory using an empty register read access based on a pre-sleep instruction, and based on a sleep instruction received after the pre-sleep instruction, A process of saving the contents of the register file in the nonvolatile memory is executed.
開示の演算処理装置および演算処理装置の制御方法は、電源をオフにするまでに要する時間を短縮して待機時間を長くすることにより、消費電力をより一層低減することができるという効果を奏する。 The disclosed arithmetic processing device and the control method of the arithmetic processing device have an effect of further reducing power consumption by shortening the time required until the power is turned off and increasing the standby time.
まず、本実施例の演算処理装置および演算処理装置の制御方法を詳述する前に、図1および図2を参照して、演算処理装置および演算処理装置の制御方法の一例、並びに、その問題点を説明する。 First, before describing in detail the arithmetic processing device and the control method of the arithmetic processing device of the present embodiment, referring to FIG. 1 and FIG. 2, an example of the arithmetic processing device and the control method of the arithmetic processing device, and its problems Explain the point.
図1は、演算処理装置の一例を模式的に示すブロック図であり、パイプライン処理を行うVLIWプロセッサ(Very Long Instruction Word Processor)の一例を示すものである。なお、後述するように、本実施例の適用は、VLIWプロセッサに限定されるものではなく、スカラプロセッサ等に対しても適用可能なのはいうまでもない。 FIG. 1 is a block diagram schematically illustrating an example of an arithmetic processing device, and illustrates an example of a VLIW processor (Very Long Instruction Word Processor) that performs pipeline processing. As will be described later, the application of the present embodiment is not limited to the VLIW processor, and it goes without saying that the present embodiment can also be applied to a scalar processor or the like.
図1に示されるように、プロセッサ(演算処理装置)500は、命令キャッシュ21,データキャッシュ22,レジスタファイル(レジスタ)23および不揮発メモリコントローラ24を含み、5段のパイプラインステージIF,ID,EX,MA,WBを実行する。
As shown in FIG. 1, a processor (arithmetic processing unit) 500 includes an
ここで、IFは、命令のフェッチ(Instruction Fetch)ステージを示し、外部の命令メモリ31から命令キャッシュ21に保持しておいた最初(1番目)の命令を、例えば、最初のクロック(プログラムカウンタの1クロック目)でフェッチする。
Here, IF indicates an instruction fetch stage, and the first (first) instruction held in the
IDは、命令のデコード(Instruction Decode)ステージを示し、2クロック目で1番目の命令をデコード(例えば、制御信号を生成)して、レジスタファイル23をレジスタ指定子で参照する。なお、2クロック目において、IFステージでは、2番目の命令をフェッチする。
ID indicates an instruction decode stage, and the first instruction is decoded (for example, a control signal is generated) at the second clock, and the
EXは、命令の実行(EXecution)ステージを示し、3クロック目で1番目の命令を実行する(例えば、数値計算やロード/ストアのデータ、或いは、アドレスの分岐先の計算等の演算を行う)。なお、3クロック目において、IFステージでは、3番目の命令をフェッチし、IDステージでは、2番目の命令をデコードする。 EX indicates an instruction execution stage (EXecution), and the first instruction is executed at the third clock (for example, calculation such as numerical calculation, load / store data, or calculation of an address branch destination). . At the third clock, the third instruction is fetched in the IF stage, and the second instruction is decoded in the ID stage.
MAは、メモリアクセス(Memory Access)ステージを示し、4クロック目で1番目の命令によるメモリアクセスを行う。例えば、データキャッシュ22にデータを書き込み、或いは、データキャッシュ22および外部のデータメモリ32の両方にデータを書き込む(ライトスルー)等の処理を行う。なお、4クロック目において、IFステージでは、4番目の命令をフェッチし、IDステージでは、3番目の命令をデコードし、EXステージでは、2番目の命令を実行する。
MA indicates a memory access stage, and memory access is performed by the first instruction at the fourth clock. For example, processing such as writing data into the
WBは、データをレジスタに書き戻す(Write Back)ステージを示し、5クロック目で1番目の命令による結果を、レジスタファイル23に書き戻す。なお、5クロック目において、IFステージでは、5番目の命令をフェッチし、IDステージでは、4番目の命令をデコードし、EXステージでは、3番目の命令を実行し、MAステージでは、3番目の命令によるメモリアクセスを行う。
WB indicates a stage for writing data back to the register (Write Back), and the result of the first instruction is written back to the
図1では、5段のパイプラインステージIF,ID,EX,MA,WBの例が示されているが、これは単なる一例であり、異なるパイプライン段数、或いは、異なる処理ステージであってもよい。 In FIG. 1, an example of five pipeline stages IF, ID, EX, MA, and WB is shown. However, this is merely an example, and different pipeline stages or different processing stages may be used. .
図1において、参照符号31は、プロセッサ500の外部に設けられた命令メモリ、32は、データメモリ、そして、33は、不揮発メモリ(不揮発性メモリ)を示す。なお、不揮発メモリ(NVM:Non-Volatile Memory)は、例えば、消費電力を低減するために、プロセッサ500の電源をオフして待機状態としたときのデータを、不揮発メモリコントローラ24に従って格納するためのメモリである。
In FIG. 1,
プロセッサ500は、例えば、計算中のデータを保持するレジスタファイル23を持つことが一般的であり、レジスタファイル23からデータを読み出す回路には、レジスタ数対1のセレクタが設けられている。
The
また、図1に示すようなパイプラインプロセッサ500では、先行命令の実行結果をバイパスするためのレジスタバイパス回路を持つことも多く、その場合、レジスタファイル23のリードポートが増加して面積が大幅に増大する傾向がある。
In addition, the
ここで、不揮発メモリ33としては、例えば、フラッシュメモリ等が使用されるが、その不揮発メモリ33への書き込み処理は、一般的に、SRAM(Static Random Access Memory)等に書き込む場合よりも長い時間を要する。
Here, for example, a flash memory or the like is used as the
そのため、レジスタファイル23の内容を不揮発メモリ33に退避する時間が長時間となり、例えば、プロセッサ500の電源をオフにして電力を削減できる待機時間が短縮されてしまい、消費電力削減の効果が低下する。なお、図示していないが、不揮発メモリ33に退避するのは、レジスタファイル23の内容だけでなく、例えば、様々な制御レジスタの内容(値)も含むのはいうまでもない。
Therefore, it takes a long time to save the contents of the
図2は、演算処理装置の一例における制御方法を概略的に説明するための図であり、パワーダウン(スリープ)時のデータ退避処理を説明するためのものである。図2において、横軸は、時刻を示す。 FIG. 2 is a diagram for schematically explaining a control method in an example of the arithmetic processing device, and for explaining a data saving process at the time of power-down (sleep). In FIG. 2, the horizontal axis indicates time.
図2に示されるように、例えば、動作(実行)中のプロセッサ500に対して、時刻Tpdでスリープ指示(パワーダウン信号)Spdを与えると、不揮発メモリコントローラ24は、全退避期間Psavを使ってレジスタファイル23の内容を不揮発メモリ33に退避する。
As shown in FIG. 2, for example, when the sleep instruction (power down signal) Spd is given to the
スリープ期間Pslp0の後(時刻Tsの後)、時刻Tpuでスリープ解除(パワーアップ信号)Spu与えると、復帰期間Pretで、不揮発メモリ33に退避しておいたデータをレジスタファイル23に書き戻す。
After the sleep period Pslp0 (after time Ts), when the sleep release (power-up signal) Spu is given at time Tpu, the data saved in the
そして、プロセッサ500は、復帰期間Pretの後、動作を再開する。なお、レジスタファイル23(制御レジスタ)の内容の退避および復帰(書き戻し)処理は、例えば、ロード/ストア命令を用いて行うことができる。
Then, the
ここで、レジスタファイル23の内容をフラッシュメモリ等の不揮発メモリ33に書き込むには、スリープ期間Pslp0に対して長時間(退避期間Psav)を要するため、プロセッサ500をオフにして電力を削減することができるスリープ期間Pslp0は、短縮される。その結果、プロセッサ500をオフにするスリープ(パワーダウン)処理による消費電力削減の効果は、低下することになってしまう。
Here, in order to write the contents of the
なお、退避時間を短縮するために、例えば、プロセッサ500と不揮発メモリ33のバンド幅を増加する、或いは、同一の半導体チップに混載するといった対応も考えられるが、面積や製造コストの増大を招くことになり、好ましくない。
In order to shorten the save time, for example, it may be possible to increase the bandwidth of the
以下、演算処理装置および演算処理装置の制御方法の実施例を、添付図面を参照して詳述する。図3は、本実施例に係る演算処理装置を模式的に示すブロック図であり、パイプライン処理を行うVLIWプロセッサの一例を示すものである。 Hereinafter, embodiments of an arithmetic processing device and a control method for the arithmetic processing device will be described in detail with reference to the accompanying drawings. FIG. 3 is a block diagram schematically illustrating an arithmetic processing apparatus according to the present embodiment, and illustrates an example of a VLIW processor that performs pipeline processing.
なお、本実施例の適用は、VLIWプロセッサに限定されるものではなく、スカラプロセッサ(シングルスカラプロセッサ,スーパースカラプロセッサ)等に対しても幅広く適用することが可能である。 The application of the present embodiment is not limited to the VLIW processor, and can be widely applied to a scalar processor (single scalar processor, superscalar processor) or the like.
図3と前述した図1の比較から明らかなように、本実施例の演算処理装置(プロセッサ)600は、図1を参照して説明したプロセッサ500に対して、レジスタ退避制御部1を設けるようになっている。
As is clear from the comparison between FIG. 3 and FIG. 1 described above, the arithmetic processing unit (processor) 600 of this embodiment is provided with the register saving
ここで、レジスタ退避制御部1は、例えば、デコードステージID(デコーダ42)から信号を受け取り、実行ステージEX(実行部43)に信号を与え、メモリアクセスステージMA(メモリアクセス部44)から信号を受け取る。
Here, for example, the register saving
さらに、レジスタ退避制御部1は、レジスタファイル(レジスタ)23および不揮発メモリコントローラ24との間で信号を遣り取りし、不揮発メモリ33との間におけるデータの退避および書き戻し処理を制御する。
Further, the register save
なお、図示しないが、不揮発メモリ33に退避するのは、レジスタファイル23の内容だけでなく、例えば、様々な制御レジスタの内容(値)も含むのはいうまでもない。また、レジスタ退避制御部1の詳細は、図8以降を参照して、後に説明する。
Although not shown, it is needless to say that what is saved in the
図4は、本実施例に係る演算処理装置の制御方法を概略的に説明するための図であり、パワーダウン時のデータ退避処理を説明するためのものである。図4において、横軸は、時刻を示す。 FIG. 4 is a diagram for schematically explaining the control method of the arithmetic processing unit according to the present embodiment, and is for explaining the data saving process at the time of power-down. In FIG. 4, the horizontal axis indicates time.
図4と前述した図2の比較から明らかなように、本実施例に係る演算処理装置の制御方法では、時刻Tpdでスリープ指示(パワーダウン信号)Spdを与える前に、時刻Tppdでプリスリープ指示(プリパワーダウン信号)Sppdを与える。 As apparent from the comparison between FIG. 4 and FIG. 2 described above, in the control method of the arithmetic processing unit according to the present embodiment, the pre-sleep instruction is issued at time Tppd before the sleep instruction (power-down signal) Spd is given at time Tpd. (Prepower down signal) Sppd is given.
ここで、プリスリープ指示Sppdが与えられると、例えば、プロセッサ600における空きのレジスタリードアクセスを使用して、レジスタファイル23の内容を不揮発メモリ33に退避する。
Here, when the pre-sleep instruction Sppd is given, the contents of the
なお、空きのレジスタリードアクセスとしては、例えば、後に詳述するように、VLIWプロセッサで多用される、例えば、命令スケジューリングの都合から何もしない命令(NOP:No OPeration 命令)を使用することができる。 As an empty register read access, for example, as will be described in detail later, for example, an instruction (NOP: No OPeration instruction) that is frequently used in the VLIW processor, for example, for the convenience of instruction scheduling can be used. .
すなわち、時刻Tpdでスリープ指示Spdが与えられる前に、時刻Tppdでプリスリープ指示Sppdが与えられると、期間Psav1において、プロセッサ600の実行中に、徐々にレジスタファイル23から不揮発メモリ33への退避が行われる。
That is, if the pre-sleep instruction Sppd is given at the time Tppd before the sleep instruction Spd is given at the time Tpd, the saving from the
そして、時刻Tpdでスリープ指示Spdが与えられた後は、例えば、後に詳述する期間Psav2における差分退避が行われる。この差分退避は、例えば、期間Psav1では不揮発メモリ33に退避できなかった内容(データ)、或いは、時刻Tpdでスリープ指示Spdが与えられる前におけるプロセッサ600の動作により、書き換えられた(上書きされた)内容等である。
Then, after the sleep instruction Spd is given at the time Tpd, for example, differential saving is performed in a period Psav2 described in detail later. This differential saving is rewritten (overwritten) by, for example, the contents (data) that could not be saved in the
ここで、図4における差分退避期間Psav2は、通常、図2における全退避期間Psavよりも十分に短いため、本実施例によれば、図2におけるスリープ期間Pslp0を、図4におけるスリープ期間Pslp1まで延ばすことができ、消費電力を低減することが可能になる。なお、プリスリープ指示Sppdは、例えば、新たな命令、或いは、新たな外部信号として与えることができる。 Here, since the differential save period Psav2 in FIG. 4 is normally sufficiently shorter than the total save period Psav in FIG. 2, according to the present embodiment, the sleep period Pslp0 in FIG. 2 is changed to the sleep period Pslp1 in FIG. Therefore, the power consumption can be reduced. The pre-sleep instruction Sppd can be given as a new command or a new external signal, for example.
また、スリープ期間Pslp1の後の処理は、図2と同様であり、時刻Tpuでスリープ解除指示(パワーアップ信号)Spuを与えると、復帰期間Pretで、不揮発メモリ33に退避しておいたデータをレジスタファイル23に書き戻す。
The processing after the sleep period Pslp1 is the same as that in FIG. 2. When the sleep cancellation instruction (power-up signal) Spu is given at time Tpu, the data saved in the
そして、プロセッサ600は、復帰期間Pretの後、動作を再開する。なお、レジスタファイル23(制御レジスタ)の内容の退避および復帰(書き戻し)処理は、例えば、ロード/ストア命令を用いて行うことができる。
Then, the
このように、本実施例に係る演算処理装置の制御方法によれば、時刻Tpdでスリープ指示Spdを与える前に、時刻Tppdでプリスリープ指示Sppdを与えて退避処理を事前に開始することで、スリープ期間Pslp1を長くすることができる。これにより、消費電力低減の効果をより一層発揮させることが可能になる。 Thus, according to the control method of the arithmetic processing unit according to the present embodiment, before the sleep instruction Spd is given at the time Tpd, the pre-sleep instruction Sppd is given at the time Tppd and the save process is started in advance. The sleep period Pslp1 can be lengthened. As a result, the effect of reducing power consumption can be further exhibited.
図5および図6は、本実施例に係る演算処理装置の制御方法の一例を説明するための図であり、図5は、不揮発メモリ33への退避処理を説明するためのものであり、図6は、退避処理を行った後の上書き処理を説明するためのものである。
5 and 6 are diagrams for explaining an example of the control method of the arithmetic processing unit according to the present embodiment. FIG. 5 is a diagram for explaining the saving process to the
図5に示されるように、プロセッサ(演算処理装置)600がVLIWプロセッサの場合には、通常、NOP命令が多用されるため、そのNOP命令を使用して、レジスタファイル(レジスタ)23の内容を不揮発メモリ33に退避させることができる。
As shown in FIG. 5, when the processor (arithmetic processing unit) 600 is a VLIW processor, since a NOP instruction is usually used frequently, the contents of the register file (register) 23 are used by using the NOP instruction. It can be saved in the
図5の例では、プリスリープ指示Sppdが与えられた後、例えば、NOP命令(nop)を使用してレジスタv0の値を不揮発メモリ33に退避させ、退避フラグを『1』に書き換える。さらに、レジスタv0の値を不揮発メモリ33に書き込むNVM書き込み時間の後、NOP命令を使用してレジスタv1の値を不揮発メモリ33に退避させ、退避フラグを『1』に書き換える。
In the example of FIG. 5, after the pre-sleep instruction Sppd is given, for example, the value of the register v0 is saved in the
なお、プリスリープ指示Sppdからスリープ指示Spdまでの退避期間(Psav1)では退避が間に合わなかったレジスタv13〜v15の値は、スリープ指示Spdの後の退避期間(Psav2)において不揮発メモリ33に退避される。また、退避フラグは、例えば、プリスリープ指示Sppdを与えたとき、および、レジスタv1〜v15の値を不揮発メモリ33から書き戻し(復帰)したとき、全て『0』に初期化する。
Note that the values of the registers v13 to v15 that have not been saved in time during the save period (Psav1) from the pre-sleep instruction Sppd to the sleep instruction Spd are saved in the
さらに、図6に示されるように、例えば、プリスリープ指示Sppdからスリープ指示Spdまでの間におけるプロセッサ600の動作により書き換えられたレジスタv1は、ダーティフラグ(dirty)を『1』に書き換える。
Further, as shown in FIG. 6, for example, the register v1 rewritten by the operation of the
すなわち、レジスタv1の値は、期間Psav1で不揮発メモリ33に退避されるが、その後、スリープ指示Spdが与えられる前に、プロセッサ600の動作により上書きされた場合、そのレジスタv1の上書きと共に、ダーティフラグが『1』に書き換えられる。
That is, the value of the register v1 is saved in the
そして、スリープ指示Spdが与えられた後の期間(差分退避期間)Psav2において、『1』のダーティフラグを参照することで、レジスタv1の値を、再度、不揮発メモリ33に退避させて書き換え(上書き)を行う。
Then, in the period (difference saving period) Psav2 after the sleep instruction Spd is given, by referring to the dirty flag “1”, the value of the register v1 is saved again in the
これにより、例えば、期間Psav1では不揮発メモリ33に退避できなかったレジスタの値、並びに、スリープ指示Spdが与えられる前のプロセッサ600の動作で書き換えられたレジスタの値を、不揮発メモリ33に退避させることが可能になる。
Thereby, for example, the value of the register that could not be saved in the
図7は、本実施例に係る演算処理装置の制御方法による効果を説明するための図である。ここで、図7(a)は、図1および図2に示すプロセッサ500の退避処理時における消費電力の変化を示し、図7(b)は、図3および図4に示す本実施例のプロセッサ600の退避処理時における消費電力の変化を示す。
FIG. 7 is a diagram for explaining the effect of the control method of the arithmetic processing apparatus according to the present embodiment. Here, FIG. 7A shows a change in power consumption during the save process of the
図7(b)に示されるように、本実施例によれば、プロセッサ600の動作中において、スリープ指示Spdよりも前に与えられるプリスリープ指示Sppdにより、レジスタファイル23の内容が不揮発メモリ33に事前退避(CP2')される。
As shown in FIG. 7B, according to the present embodiment, during the operation of the
この事前退避に要する電力CP2'は、期間Psav1において、プロセッサ600の動作中(実行時)の電力に上積みされるため、それに対応して電源の最大電力を多少増加させるのが好ましい。
Since the power CP2 ′ required for the advance saving is added to the power during operation (during execution) of the
ここで、事前退避に要する電力CP2'は、図7(a)における退避時の電力CP0の一部CP2に対応する。従って、本実施例によれば、図7(a)の退避時の電力CP0から、図7(b)の差分退避時の電力CP1と事前退避に要する電力CP2'を減算した電力CP3を低減することが可能となる。 Here, the electric power CP2 ′ required for the advance evacuation corresponds to a part CP2 of the electric power CP0 at the time of evacuation in FIG. Therefore, according to the present embodiment, the power CP3 obtained by subtracting the power CP1 at the time of differential saving and the power CP2 ′ required for the preliminary saving in FIG. 7 (b) from the power CP0 at the time of saving shown in FIG. 7 (a) is reduced. It becomes possible.
なお、例えば、プリスリープ指示Sppdにより退避したレジスタの値が、動作中のプロセッサ600により上書きされると、再度、差分退避時に不揮発メモリ33に退避(書き込み)が行われるため、消費電力低減の効果は小さくなる。
For example, if the register value saved by the pre-sleep instruction Sppd is overwritten by the operating
ただし、例えば、32個の汎用レジスタに対して、関数の終盤で退避を指示し、関数から復帰後に待機状態に入ることを想定すると、関数の終盤では、汎用レジスタへの書き込みが少ないため、事前にほとんどのレジスタについて退避が完了すると考えられる。ここで、差分退避で退避するレジスタを4つ程度とすると、待機状態に入るまでの時間は、4/32(=1/8)程度に短縮することができる。 However, for example, if 32 general registers are instructed to be saved at the end of the function and enter the standby state after returning from the function, there are few writes to the general registers at the end of the function. In most cases, saving is considered to be completed for most registers. Here, if the number of registers saved by differential saving is about 4, the time required to enter the standby state can be shortened to about 4/32 (= 1/8).
図8は、演算処理装置の第1実施例の要部を示すブロック図であり、プロセッサ(演算処理装置)600が自動的に退避処理を制御するものを示す。すなわち、第1実施例は、デコード結果から、レジスタファイル23の空きリードポートを検知すると、その空きポートを使ってレジスタ(レジスタファイル23)の内容を不揮発メモリ(不揮発性メモリ)33に退避する。
FIG. 8 is a block diagram showing the main part of the first embodiment of the arithmetic processing unit, in which the processor (arithmetic processing unit) 600 automatically controls the saving process. That is, in the first embodiment, when an empty read port of the
図8に示されるように、レジスタ退避制御部1は、リードポート選択部11,レジスタリード制御部12,テーブル制御部13,退避情報テーブル14,NVMストア制御部15およびレジスタ番号部16を含む。
As shown in FIG. 8, the register save
ここで、参照符号41は動作モード部、42はデコーダ(デコードステージID)、43は実行部(実行ステージEX)、そして、44はメモリアクセス部(メモリアクセスステージMA)を示す。
Here,
動作モード部41は、事前退避モードか通常モードかを示すレジスタであり、事前退避が通知されると、事前退避モードとなる。そして、全レジスタ(レジスタファイル23)のデータ退避後、或いは、スリープ(待機)状態からの復帰後は、通常モードに戻る。
The
レジスタ番号部16は、退避するレジスタのインデックスを示し、事前退避モードへの移行時に初期化され、NVMストア制御部15により更新される。退避情報テーブル14は、レジスタファイル23の要素ごとに退避済フラグとダーティ(dirty)フラグを持つ。
The
ここで、退避済フラグおよびダーティフラグの初期値は『0』となっており、事前退避モードにてレジスタ退避が行なわれると、退避済フラグが『1』となり、退避後にレジスタへの書き込みが行なわれるとダーティフラグが『1』となる。そして、スリープからの復帰後、或いは、事前退避モードに入ったときに『0』に初期化される。 Here, the initial values of the saved flag and dirty flag are “0”, and if the register is saved in the pre-save mode, the saved flag is “1”, and the register is written after saving. The dirty flag becomes “1”. Then, it is initialized to “0” after returning from sleep or when entering the pre-retraction mode.
デコーダ(IDステージ)42は、レジスタ書き込みインデックスw-idx、レジスタ書き込みイネーブル信号we、レジスタ読み出しインデックスr-idxおよびレジスタ読み出しイネーブル信号reの4出力と、退避情報テーブルの状態信号statusの1入力を含む。 The decoder (ID stage) 42 includes four outputs of a register write index w-idx, a register write enable signal we, a register read index r-idx, and a register read enable signal re, and one input of a status signal status of the save information table. .
なお、レジスタ書き込みインデックスw-idxおよびイネーブル信号weは、それぞれレジスタファイル23のライトポート数分の本数がある。同様に、読み出し側に関しても、レジスタ読み出しインデックスr-idxおよびレジスタ読み出しイネーブル信号reは、それぞれレジスタファイル23のリードポート数分の本数がある。
The register write index w-idx and the enable signal we have the same number as the number of write ports of the
退避情報テーブル14の状態信号としては、レジスタ退避用のリードポートを0番目と仮定すると、0番目のレジスタ読み出しインデックスr-idx[0]に対応する退避情報テーブル14の情報を状態信号statusとして渡す。 As the status signal of the save information table 14, assuming that the register save read port is 0th, the information of the save information table 14 corresponding to the 0th register read index r-idx [0] is passed as the status signal status. .
レジスタファイル23は、読み出しインデックスr-idxと読み出しイネーブル信号reからリードポート数のデータdataを読み出す。なお、パイプラインステージ間のデータのバイパスやインターロックは、レジスタファイル23にて制御されるものとする。
The
実効部(EXステージ)43は、パイプラインプロセッサ(600)において、一般的に演算などの処理を実行するステージである。レジスタ退避制御部1は、レジスタファイル23から読み出した通常命令の実行に使用するデータdataを実効部43に渡す。
The effective section (EX stage) 43 is a stage that generally executes processing such as computation in the pipeline processor (600). The register saving
メモリアクセス部(MAステージ)44は、パイプラインプロセッサにおいて、一般的にメモリアクセスの処理を実行するステージである。レジスタ退避制御部1は、消費電力を抑えたスリープモード(パワーダウンモード)において、メモリアクセス部44から、レジスタ退避命令を使って、退避するデータdata,インデックスidxおよび退避イネーブル信号enbを受け取る。
The memory access unit (MA stage) 44 is a stage that generally executes memory access processing in a pipeline processor. The register save
リードポート選択部11は、デコーダ42から受け取ったレジスタ読み出しイネーブル信号reから、リードポートの空きポートを探す。事前退避モードの場合、空きポートiの読み出しイネーブル信号s-re[i]に『1』を出力し、それ以外は『0』を出力する。
The read
さらに、空きポートがあることを示すイネーブル信号enbに『1』を出力する。なお、空きポートがない、或いは、事前退避モードではなく通常モードの場合は、全イネーブル信号s-reおよび信号enbに『0』を出力する。 Further, “1” is output to the enable signal enb indicating that there is an empty port. If there is no empty port or the normal mode is not the pre-save mode, “0” is output to all the enable signals s-re and the signal enb.
レジスタリード制御部12は、選択されたリードポートについては退避用レジスタ番号を、それ以外についてはデコーダ42から受け取ったレジスタ読み出しインデックス番号(r-idx)を、レジスタファイル23に渡す。また、読み出しイネーブル信号reも同様である。さらに、レジスタリード制御部12は、受け取ったデータdataから退避するデータ 選択してNVMストア制御部15に渡す。
The register read
NVMストア制御部15は、事前退避モードの場合、レジスタリード制御部12から受け取ったデータdataを不揮発メモリ33にストア(格納)する。通常モードの場合は、レジスタ退避命令によってMAステージ(メモリアクセス部44)から出力されるデータを不揮発メモリ33に格納する。
The NVM
ここで、事前退避モードで書き込みを行なった際には、退避情報テーブル14に退避済フラグ(退避)を立て、レジスタ番号をインクリメントする。そして、最終のレジスタの書き込みが完了すると、動作モードを通常モードに戻す。 Here, when writing is performed in the advance save mode, the save information flag is set in the save information table 14 and the register number is incremented. When the final register write is completed, the operation mode is returned to the normal mode.
テーブル制御部13は、デコーダ42からレレジスタ書き込みインデックスw-idxおよびイネーブル信号weを受け取り、退避済のレジスタの場合にダーティフラグ(dirty)を『1』にする。また、NVMストア制御部15からの通知に従って、退避済のフラグを『1』に更新する。
The
図9は、図8に示す演算処理装置におけるリードポート選択部11の一例を示すブロック図である。図9に示されるように、リードポート選択部11は、セレクタ110、複数のインバータ1110〜111n-1、複数のアンドゲート1121〜112n-1,114,1150〜115n-1、および、オアゲート113を含む。
FIG. 9 is a block diagram showing an example of the read
リードポート選択部11は、リードイネーブル信号re[i]について、re[i]=0となる最も小さいiについて、s-re[i]=1とし、それ以外は『0』とする。また、iが存在しない場合はenb=0とし、iが存在する場合はenb=1とする。
For the read enable signal re [i], the read
ただし、動作モードが事前退避モード(pre)でない場合(通常モード:other)は、全て『0』を出力する。なお、図9に示すリードポート選択部11は、単なる例であり、様々な変形および変更が可能である。
However, when the operation mode is not the pre-save mode (pre) (normal mode: other), all output “0”. Note that the read
図10は、図8に示す演算処理装置におけるレジスタリード制御部12の一例を示すブロック図である。図10に示されるように、レジスタリード制御部12は、複数のセレクタ1200〜120n-1、複数のオアゲート1211〜121n-1,123、および、複数のアンドゲート1220〜122n-1を含む。
FIG. 10 is a block diagram showing an example of the register read
レジスタリード制御部12は、リードポート選択部11で選択されたi番目のポートのインデックスs-re[i]により退避用のレジスタインデックス(レジスタ番号)を選択し、それ以外は、デコーダ42から受け取った読み出しインデックスr-idx[i]を選択する。
The register read
さらに、レジスタリード制御部12は、選択結果のレジスタインデックスidx[i](idx[0]〜idx[n-1])からレジスタファイル23のデータdata[i](data[0]〜data[n-1])を読み出す。
Further, the register read
ここで、レジスタファイル23の読み出しイネーブル信号re[i](re[0]〜re[n-1])は、オアゲート1211〜121n-1により、デコーダ42からの読み出しイネーブル出力re[0]〜re[n-1]とリードポート選択部11の出力s-re[0]〜s-re[n-1]の論理和を取ったものとする。
Here, the read enable signal re [i] (re [0] to re [n-1]) of the
そして、レジスタリード制御部12は、読み出した結果から、i番目のポートのデータdataを抜き出してNVMストア制御部15に渡し、レジスタ読み出し結果data[0]〜data[n-1]を実行部43に渡す。なお、図10に示すレジスタリード制御部12も、単なる例であり、様々な変形および変更が可能なのはいうまでもない。
Then, the register read
図11は、図8に示す演算処理装置におけるNVMストア制御部15の一例を示すブロック図である。図11に示されるように、NVMストア制御部15は、書き込み判定部151、アドレス計算部152、インデックス更新部153、および、複数のセレクタ154〜156を含む。
FIG. 11 is a block diagram showing an example of the NVM
NVMストア制御部15は、事前退避モード(pre)の場合、レジスタリード制御部12から渡されるデータdataを、不揮発メモリコントローラ24を介して不揮発メモリ33に対して、レジスタ番号が示すアドレスaddrに書き込む。
In the pre-save mode (pre), the NVM
ただし、リードポート選択部11からの退避イネーブル信号enbが『0』(使用できるリードポートなし)、または、不揮発メモリコントローラ24からのビジー信号busyが『1』(不揮発メモリ33への書き込み中)の場合、書き込み処理をキャンセルする。
However, the save enable signal enb from the read
なお、通常モード(other)の場合、メモリアクセス部(MAステージ)44から渡されるデータdata,レジスタ番号idxおよび書き込みイネーブル信号enbに基づいて、不揮発メモリ33にデータを書き込む。
In the normal mode (other), data is written to the
また、事前退避モード(pre)でレジスタの値を不揮発メモリ33に書き込んだ場合に、テーブル制御部13にレジスタ番号(idx)と書き込み信号(save=1)を通知し、退避済のフラグを『1』に更新する。
Further, when the register value is written in the
書き込み判定部151は、リードポート選択部11からの信号enb=0(使用できるリードポートなし)、または、不揮発メモリコントローラ24から信号busy=1(不揮発メモリ33の書き込み中)の信号が通知されている場合は、出力信号enb=0を出力する。また、それ以外の場合は、出力信号enb=1を出力する。
The
アドレス計算部152は、レジスタ番号部16からのレジスタ番号idxに基づいて、書き込み先の不揮発メモリ33のアドレスaddrを計算してセレクタ156に出力する。ここで、例えば、レジスタのデータサイズが一定の場合には、レジスタ番号にバイト数を乗算(実際はシフト)して求めることができる。インデックス更新部153は、レジスタ番号部16からのレジスタ番号idxの値を『1』だけインクリメントする。
The
まず、スリープ(待機,スタンバイ)時の動作について、説明する。スリープが通知された場合、基本的に通常の命令を用いて、レジスタファイル23(制御レジスタ)の内容を、不揮発メモリ33に退避する。ただし、レジスタファイル23の内容を退避する際、退避情報テーブル14を参照し、退避済でダーティ(dirty)フラグが『0』の場合に命令をキャンセルする機能を追加するのが好ましい。
First, the operation during sleep (standby, standby) will be described. When the sleep is notified, the contents of the register file 23 (control register) are basically saved in the
次に、スリープからの復帰時の動作について、説明する。スリープからの復帰も、通常の命令を用いて、不揮発メモリ33からレジスタファイル23にデータを復帰させる。なお、不揮発メモリ33のデータを復帰する(書き戻す)手法としては、特別な拡張機能は不要である。そして、レジスタ番号部16のレジスタ番号、および、退避情報テーブル14のデータを初期化する。
Next, the operation when returning from sleep will be described. The return from sleep also returns data from the
図12は、演算処理装置の第2実施例の要部を示すブロック図であり、プログラム(アセンブリプログラム)に退避命令を挿入するものを示す。図12と前述した図8の比較から明らかなように、第2実施例では、第1実施例におけるリードポート選択部11が省略されている。なお、図12では、プリスリープ指示Sppd(事前退避)およびスリープ指示Spdが、命令により行われる場合を想定している。
FIG. 12 is a block diagram showing the main part of the second embodiment of the arithmetic processing unit, and shows what inserts a save instruction into a program (assembly program). As is clear from the comparison between FIG. 12 and FIG. 8 described above, in the second embodiment, the read
第2実施例の演算処理装置において、レジスタ退避制御部1は、プログラムを解析し、事前退避命令(Sppd)とスリープ命令(Spd)の間にレジスタ退避命令を挿入する。その際、不揮発メモリ33のレイテンシを考慮して、適切な間隔でレジスタ退避命令の挿入を行うようになっている。
In the arithmetic processing unit of the second embodiment, the register save
図13は、図12に示す演算処理装置における退避命令の挿入処理の一例を説明するためのフローチャートであり、アセンブリプログラムにおいて、事前退避命令とスリープ命令の間にレジスタ退避命令を挿入する処理を説明するためのものである。 FIG. 13 is a flowchart for explaining an example of a save instruction insertion process in the arithmetic processing unit shown in FIG. 12, and explains a process for inserting a register save instruction between a pre-save instruction and a sleep instruction in the assembly program. Is to do.
ここで、図13に示すフローチャートにおいて、入力はアセンブリプログラムとし、また、出力もアセンブリプログラムとする。なお、制約条件として、事前退避命令(プリスリープ指示Sppdに対応する命令)とスリープ命令(スリープ指示Spdに対応する命令)は、同一基本ブロック内に存在することを想定する。また、基本ブロックとは、フローチャートの中で、分岐や合流がないストレートに実行されるコード部分を指す。 Here, in the flowchart shown in FIG. 13, the input is an assembly program, and the output is also an assembly program. As a constraint condition, it is assumed that a pre-save instruction (an instruction corresponding to the pre-sleep instruction Sppd) and a sleep instruction (an instruction corresponding to the sleep instruction Spd) exist in the same basic block. Further, the basic block refers to a code portion that is executed straight in the flowchart without branching or merging.
図13に示されるように、アセンブリプログラムにおける退避命令の挿入処理が開始すると、ステップST1において、字句の解析を行った後、ステップST2に進んで、コンパイラの中間表現処理を行う。 As shown in FIG. 13, when the insertion process of the save instruction in the assembly program is started, the lexical analysis is performed in step ST1, and then the process proceeds to step ST2 to perform intermediate expression processing of the compiler.
さらに、ステップST3に進んで、未処理の基本ブロックが存在するか否かを判定する。ステップST3において、未処理の基本ブロックが存在しないと判定すると、ステップST4に進んで、アセンブリコードを出力し、アセンブリプログラムに戻る。 Furthermore, it progresses to step ST3 and it is determined whether the unprocessed basic block exists. If it is determined in step ST3 that there is no unprocessed basic block, the process proceeds to step ST4, where assembly code is output and the process returns to the assembly program.
一方、ステップST3において、未処理の基本ブロックが存在すると判定すると、ステップST5に進んで、事前退避命令が存在するか否かを判定する。ステップST5において、事前退避命令が存在すると判定すると、ステップST6に進んで、Inst=事前退避命令の次の命令とし、さらに、L=0として、ステップST7に進み、Inst=スリープ命令が成立するか否かを判定する。 On the other hand, if it is determined in step ST3 that an unprocessed basic block exists, the process proceeds to step ST5, where it is determined whether a pre-evacuation instruction exists. If it is determined in step ST5 that a pre-save instruction exists, the process proceeds to step ST6, where Inst = the instruction next to the pre-save instruction, and further, L = 0, and the process proceeds to step ST7, where Inst = sleep instruction is established. Determine whether or not.
ここで、Lは、例えば、不揮発メモリ33の書き込み時間(レイテンシ)によるウェイト(待ち)を考慮して、本来のプログラムに待ちを生じることなく、不揮発メモリ33への書き込み(退避)を行うみために導入している。
Here, for example, L considers the wait (wait) due to the write time (latency) of the
ステップST7において、Inst=スリープ命令が成立しないと判定すると、ステップST8に進んで、Inst命令に空リードポートが存在し、かつ、L≦0が成立するか否かを判定する。 If it is determined in step ST7 that Inst = sleep instruction is not established, the process proceeds to step ST8, where it is determined whether an empty read port exists in the Inst instruction and L ≦ 0 is established.
ステップST5において、事前退避命令が存在しないと判定した場合、並びに、ステップST7において、Inst=スリープ命令が成立すると判定した場合には、ステップST3に戻り、上述した処理を繰り返す。 If it is determined in step ST5 that there is no pre-save command, and if it is determined in step ST7 that Inst = sleep command is established, the process returns to step ST3 and the above-described processing is repeated.
ステップST8において、Inst命令に空リードポートが存在し、かつ、L≦0が成立すると判定すると、ステップST9に進む。ここで、ステップST8における空リードポートの存在の判定は、例えば、シングルスカラプロセッサの場合、その命令がレジスタファイル23の全てのリードポートを使用するかどうかにより判定することができる。
If it is determined in step ST8 that an empty read port exists in the Inst instruction and L ≦ 0 is satisfied, the process proceeds to step ST9. Here, for example, in the case of a single scalar processor, the presence of an empty read port in step ST8 can be determined by whether or not the instruction uses all the read ports of the
また、例えば、VLIWプロセッサの場合、命令スケジューリングの都合から何もしない命令(NOP:No OPeration)が挿入されることが多い。そこで、ステップST8における空リードポートの存在の判定は、例えば、VLIWプロセッサの場合、NOP命令が存在する場合に、空きリードポートが存在すると判定することができる。 Further, for example, in the case of a VLIW processor, an instruction (NOP: No OPeration) that does nothing is inserted for convenience of instruction scheduling. Therefore, the determination of the existence of an empty read port in step ST8 can be made, for example, in the case of a VLIW processor, that an empty read port exists when a NOP instruction exists.
そして、ステップST9において、事前退避命令を挿入し、L=不揮発メモリ33のレイテンシとして、ステップST10に進む。ここで、ステップST9における事前退避命令の挿入は、例えば、シングルスカラプロセッサの場合、実際に命令を挿入することが困難なため、例えば、命令のフォーマットを拡張する。
Then, in step ST9, a pre-save command is inserted, and the process proceeds to step ST10 as L =
すなわち、シングルスカラプロセッサの場合には、例えば、命令の実行と同時にレジスタの値を退避するか否かを示すモードビット(退避)を命令に追加し、通常時は、退避モードビットを『0』とし、退避命令を挿入する場合は、退避モードビットを『1』とする。 That is, in the case of a single scalar processor, for example, a mode bit (save) indicating whether or not the register value is saved simultaneously with the execution of the instruction is added to the instruction. When a save instruction is inserted, the save mode bit is set to “1”.
また、例えば、VLIWプロセッサの場合には、例えば、ステップST8で見つかったNOP命令を退避命令に置き換えることで、ステップST9における事前退避命令の挿入を実現することができる。 Further, for example, in the case of a VLIW processor, for example, by replacing the NOP instruction found in step ST8 with a save instruction, the advance save instruction insertion in step ST9 can be realized.
一方、ステップST8において、Inst命令に空リードポートが存在する、および、L≦0の少なくとも一方が成立しないと判定すると、ステップST11に進んで、L=L−1とした後、ステップST10に進む。ステップST10では、Inst=次の命令とし、ステップST7に戻って、上述した処理を繰り返す。 On the other hand, if it is determined in step ST8 that there is an empty read port in the Inst instruction and at least one of L ≦ 0 is not established, the process proceeds to step ST11, and after L = L−1, the process proceeds to step ST10. . In step ST10, Inst = next instruction is set, the process returns to step ST7 and the above-described processing is repeated.
そして、事前退避命令とスリープ命令が存在する基本ブロックについて、事前退避命令の次の命令からスリープ命令の前の命令まで、不揮発メモリ33への書き込みレイテンシの間隔を空けて、退避命令を挿入する。
Then, with respect to the basic block in which the pre-save instruction and the sleep instruction exist, the save instruction is inserted with an interval of the write latency to the
図14は、図8に示す演算処理装置に適用する命令フォーマットの拡張を説明するための図であり、図14(a)は、拡張前の命令フォーマットを示し、図14(b)は、拡張後の命令フォーマットを示す。図14(a)と図14(b)の比較から明らかなように、拡張後の命令フォーマットには、例えば、1ビットのモードビット(フラグ)svが追加されている。 14 is a diagram for explaining the extension of the instruction format applied to the arithmetic processing unit shown in FIG. 8, FIG. 14 (a) shows the instruction format before the extension, and FIG. 14 (b) shows the extension. The subsequent instruction format is shown. As is clear from a comparison between FIG. 14A and FIG. 14B, for example, a 1-mode bit (flag) sv is added to the expanded instruction format.
なお、全ての命令についてモードビットsvを追加すると、命令空間が逼迫する虞があるため、命令空間に余裕がない場合は、リードポートに空きがある一部の命令についてのみ命令フォーマットを拡張するようにしてもよい。 If the mode bit sv is added to all instructions, the instruction space may become tight. Therefore, if there is not enough space in the instruction space, the instruction format is expanded only for a part of the instructions that have a vacant read port. It may be.
また、モードビットsvの追加を一部の命令に限定する場合、例えば、前述したステップST8における空きリードポートの判定時には、退避モードビットを持つ命令か否かで判定することになる。 Further, when the addition of the mode bit sv is limited to a part of the instructions, for example, when determining the empty read port in the above-described step ST8, the determination is made based on whether or not the instruction has the save mode bit.
次に、事前退避命令の仕様としては、オペランドをとらない命令とし、プロセッサには、図8〜図11を参照して説明した第1実施例と同様に、レジスタ番号を格納する専用レジスタ(レジスタ番号部)16を持たせる。なお、レジスタ番号部16の動作は、前述した実施例1と同様である。
Next, the specification of the pre-save instruction is an instruction that does not take an operand, and the processor has a dedicated register (register for storing a register number) as in the first embodiment described with reference to FIGS. Number part) 16 is provided. The operation of the
そして、レジスタ番号部16でインデックスされるレジスタファイル23のデータは、レジスタファイル23から読み出して不揮発メモリ33に格納し、レジスタ番号をインクリメントする。
The data of the
ここで、例えば、シングルスカラプロセッサの場合、レジスタファイル23のリードポートに空きがある命令については、使用しないポートを固定しておく。そのため、退避命令は、固定された空きポートを利用することになる。
Here, for example, in the case of a single scalar processor, an unused port is fixed for an instruction in which the read port of the
また、VLIWプロセッサの場合、各スロットに対してリードポートが割り当てられるため、退避命令を挿入したスロットに割り当てられているリードポートを利用することになる。 In the case of the VLIW processor, since a read port is assigned to each slot, the read port assigned to the slot into which the save instruction is inserted is used.
図15は、演算処理装置の第3実施例の要部を示すブロック図であり、前述した第1実施例に対してマスク機能を追加したものに相当する。図15と前述した図8の比較から明らかなように、本第3実施例では、第1実施例の退避情報テーブル14にマスクを行う(事前退避を行なわない)レジスタ情報を格納し、例えば、マスクが『1』のレジスタについては、事前退避を行なわないようにする。 FIG. 15 is a block diagram showing the main part of the third embodiment of the arithmetic processing unit, which corresponds to a mask function added to the first embodiment described above. As is apparent from the comparison between FIG. 15 and FIG. 8 described above, in the third embodiment, register information for masking (not performing pre-save) is stored in the save information table 14 of the first embodiment. For registers whose mask is “1”, pre-saving is not performed.
すなわち、退避情報テーブル14に格納されたマスク情報(マスク信号,マスク値m)は、テーブル制御部13を介して、リードポート選択部11およびNVMストア制御部15に入力されている。
That is, the mask information (mask signal, mask value m) stored in the save information table 14 is input to the read
ここで、マスク値は、専用の命令(例えば、set pre save mask 即値)により、退避情報テーブル14に設定する。なお、即値は、各ビットが各レジスタに対応する。また、レジスタ数が多く、命令長が超過する場合には、複数命令に分割することもできる。 Here, the mask value is set in the save information table 14 by a dedicated command (for example, set pre save mask immediate value). In the immediate value, each bit corresponds to each register. Further, when the number of registers is large and the instruction length exceeds, it can be divided into a plurality of instructions.
図16は、図15に示す演算処理装置における退避情報テーブルの一例を説明するための図である。図16に示されるように、第3実施例の演算処理装置において、退避情報テーブル14には、例えば、マスク値mのフラグが設けられている。 FIG. 16 is a diagram for explaining an example of the save information table in the arithmetic processing unit shown in FIG. As shown in FIG. 16, in the arithmetic processing unit of the third embodiment, the save information table 14 is provided with a flag of a mask value m, for example.
そして、例えば、事前退避を行なわない方が好ましいレジスタv1に対しては、マスクビットを『1』に設定する。なお、事前退避を行うレジスタv0に対しては、マスクビットを『0』に設定し、上述した事前退避処理が行われるようにする。 For example, the mask bit is set to “1” for the register v1 that is preferably not pre-saved. Note that the mask bit is set to “0” for the register v0 that performs the pre-save so that the above-described pre-save process is performed.
ここで、退避情報テーブル14におけるマスクビット(m)を『1』に設定して事前退避を行なわないレジスタ(v1)としては、例えば、プロセッサ600の動作により頻繁に書き換えが行われるものが選ばれる。
Here, as the register (v1) in which the mask bit (m) in the save information table 14 is set to “1” and the advance save is not performed, for example, one that is frequently rewritten by the operation of the
図17は、図15に示す演算処理装置におけるリードポート選択部の一例を示すブロック図であり、図18は、図15に示す演算処理装置におけるNVMストア制御部の一例を示すブロック図である。レジスタ退避制御部1については、図8〜図11を参照して説明した第1実施例と相違する個所のみ説明する。
FIG. 17 is a block diagram illustrating an example of a read port selection unit in the arithmetic processing device illustrated in FIG. 15, and FIG. 18 is a block diagram illustrating an example of the NVM store control unit in the arithmetic processing device illustrated in FIG. The register saving
図17と前述した図9の比較から明らかなように、第3実施例におけるリードポート選択部11は、第1実施例のものに対して、インバータ116およびアンドゲート117が追加されている。
As is clear from the comparison between FIG. 17 and FIG. 9 described above, the read
インバータ116は、マスク値mを反転して、アンドゲート117の一方の入力に供給し、アンドゲート117は、他方の入力に与えられたセレクタ110の出力と、反転されたマスク値の論理積を取って、アンドゲート114,1150〜115n-1の一方の入力に供給する。
The
これにより、動作モード部41による動作モードが事前退避モードであっても、マスク値mが『1』の場合は、イネーブル信号enbおよび読み出しイネーブル信号s-reが『0』となる。
Thereby, even if the operation mode by the
また、図18と前述した図11の比較から明らかなように、第3実施例におけるNVMストア制御部15は、前述したテーブル制御部13から書き込み判定部151に対してマスク値(マスク情報,マスク信号)mが入力されるようになっている。
As is clear from comparison between FIG. 18 and FIG. 11 described above, the NVM
第3実施例において、書き込み判定部151には、リードポート選択部からのイネーブル信号enb、不揮発メモリコントローラ24からのビジー信号(busy)およびテーブル制御部13からのマスク値mが入力されている。
In the third embodiment, the
書き込み判定部151は、イネーブル信号enbが『0』(使用できるリードポートなし)、ビジー信号busyが『1』(書き込み中でビジー状態)、または、マスク値mが『1』(マスクする)のとき、出力信号(enb)を『0』とし、そうでなければ『1』とする。ただし、m=1の場合、レジスタ番号を更新するために、レジスタ番号のイネーブル信号(enb)としては、書き込み判定(enb)とマスク値mの信号の論理和を取る。
The
以上により、マスク値mが『1』となっているレジスタについては、プリスリープ指示Sppdを受け取っても不揮発メモリ33への事前退避を行わず、スリープ指示Spdを受け取ってから不揮発メモリ33への退避を開始する。
As described above, the registers whose mask value m is “1” are not saved in advance to the
以上において、マスクするレジスタ(事前退避を行わないレジスタ)は、例えば、プロセッサ600の動作により頻繁に書き換えが行われるレジスタが設定されるのが好ましい。すなわち、プリスリープ指示Sppdが与えられてからスリープ指示Spdが与えられるまでのプロセッサ600の動作により書き換えられる可能性が高いレジスタをマスクすることで、スリープ指示Spdの後に生じる書き換え(上書き)を削減することができる。
In the above, it is preferable to set a register that is frequently rewritten by the operation of the
これにより、プリスリープ指示Sppdによる不揮発メモリ33への事前退避では、書き換えが行われる可能性の低いレジスタ値を退避させて、書き換えの数を削減することができ、結果として、より一層の低消費電力化が期待できる。
As a result, in the pre-save to the
ここで、図15〜図18を参照して説明した第3実施例の演算処理装置は、図8〜図11の第1実施例に対してマスク処理を適用するものであるが、図12〜図14の第2実施例に対してもマスク処理を適用することができる。 Here, the arithmetic processing apparatus of the third embodiment described with reference to FIGS. 15 to 18 applies the mask processing to the first embodiment of FIGS. Mask processing can also be applied to the second embodiment of FIG.
この場合、例えば、退避情報テーブル14にマスク情報(m)が格納され、そのマスク値mは、テーブル制御部13を介してレジスタリード制御部12およびNVMストア制御部15に入力される。
In this case, for example, mask information (m) is stored in the save information table 14, and the mask value m is input to the register read
そして、例えば、マスク値mが『1』となっているレジスタについては、プリスリープ指示Sppdを受け取っても不揮発メモリ33への事前退避を行わず、スリープ指示Spdを受け取ってから不揮発メモリ33への退避を開始するように制御する。
For example, for a register whose mask value m is “1”, the pre-save instruction Sppd is not saved in advance even if the pre-sleep instruction Sppd is received, and the register to the
なお、上述した各実施例は、単なる例であり、その構成および信号の論理等は、様々な変更および変形が可能なのはいうまでもない。 It should be noted that each of the above-described embodiments is merely an example, and it goes without saying that various changes and modifications can be made in the configuration and signal logic.
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。 Although the embodiment has been described above, all examples and conditions described herein are described for the purpose of helping understanding of the concept of the invention applied to the invention and the technology. It is not intended to limit the scope of the invention. Nor does such a description of the specification indicate an advantage or disadvantage of the invention. Although embodiments of the invention have been described in detail, it should be understood that various changes, substitutions and modifications can be made without departing from the spirit and scope of the invention.
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
演算処理に使用するデータを保持するレジスタファイルと、
プリスリープ指示に基づいて、空きのレジスタリードアクセスを使用して、前記レジスタファイルの内容を不揮発メモリに退避し、
前記プリスリープ指示の後に受信するスリープ指示に基づいて、前記レジスタファイルの内容を前記不揮発メモリに退避する処理を実行するレジスタ退避制御部と、を有する、
ことを特徴とする演算処理装置。
Regarding the embodiment including the above examples, the following supplementary notes are further disclosed.
(Appendix 1)
A register file that holds the data to be used for arithmetic processing;
Based on the pre-sleep instruction, using the empty register read access, save the contents of the register file to the nonvolatile memory,
A register save control unit that executes a process of saving the contents of the register file in the nonvolatile memory based on a sleep instruction received after the pre-sleep instruction.
An arithmetic processing apparatus characterized by that.
(付記2)
前記レジスタ退避制御部は、さらに、
前記スリープ指示の後に受信するスリープ解除指示に基づいて、前記不揮発メモリに退避した内容を前記レジスタファイルに書き戻す処理を実行する、
ことを特徴とする付記1に記載の演算処理装置。
(Appendix 2)
The register save control unit further includes:
Based on a sleep release instruction received after the sleep instruction, a process of writing back the contents saved in the nonvolatile memory to the register file is executed.
The arithmetic processing apparatus according to
(付記3)
さらに、
前記レジスタファイルの内容を前記不揮発メモリに退避すると共に、前記不揮発メモリに退避した内容を前記レジスタファイルに書き戻すのを制御する不揮発メモリコントローラを有し、
前記レジスタ退避制御部は、前記不揮発メモリコントローラを介して制御を行う、
ことを特徴とする付記1または付記2に記載の演算処理装置。
(Appendix 3)
further,
A non-volatile memory controller for controlling the content of the register file to be saved in the non-volatile memory and writing back the content saved in the non-volatile memory to the register file;
The register save control unit performs control via the nonvolatile memory controller.
The arithmetic processing apparatus according to
(付記4)
前記プリスリープ指示は、命令または外部信号により行われる、
ことを特徴とする付記1乃至付記3のいずれか1項に記載の演算処理装置。
(Appendix 4)
The pre-sleep instruction is performed by an instruction or an external signal.
The arithmetic processing apparatus according to any one of
(付記5)
前記レジスタ退避制御部は、
前記プリスリープ指示に基づいた退避では退避が完了していない前記レジスタファイルの内容を、前記スリープ指示に基づいて、前記不揮発メモリに退避するように制御する、
ことを特徴とする付記1乃至付記4のいずれか1項に記載の演算処理装置。
(Appendix 5)
The register save control unit
Control to save the contents of the register file that has not been saved by the save based on the pre-sleep instruction to the nonvolatile memory based on the sleep instruction;
The arithmetic processing apparatus according to any one of
(付記6)
前記レジスタ退避制御部は、
前記不揮発メモリに退避が行われた退避情報を保持する退避情報テーブルと、
前記不揮発メモリに退避が行われた後に、前記レジスタファイルに書き換えが行われた場合、前記レジスタファイルの書き換えが行われた個所に対応する、前記退避情報テーブルにおけるフラグを書き換えるテーブル制御部と、を含む、
ことを特徴とする付記1乃至付記4のいずれか1項に記載の演算処理装置。
(Appendix 6)
The register save control unit
A save information table for holding save information saved in the nonvolatile memory;
A table control unit that rewrites the flag in the save information table corresponding to the location where the register file is rewritten when the register file is rewritten after the save to the nonvolatile memory; Including,
The arithmetic processing apparatus according to any one of
(付記7)
前記レジスタ退避制御部は、
前記退避情報テーブルにおける書き換えられたフラグに対応する、前記レジスタファイルの書き換えが行われた個所の内容を、前記スリープ指示に基づいて、前記不揮発メモリに再度退避するように制御する、
ことを特徴とする付記6に記載の演算処理装置。
(Appendix 7)
The register save control unit
Control the contents of the rewritten portion of the register file corresponding to the rewritten flag in the save information table to be saved again in the nonvolatile memory based on the sleep instruction;
The arithmetic processing apparatus according to appendix 6, wherein:
(付記8)
前記退避情報テーブルは、
前記プリスリープ指示では、前記不揮発メモリに退避させない前記レジスタファイルの内容を規定するマスク情報を含み、
前記レジスタ退避制御部は、
前記スリープ指示に基づいて、前記マスク情報で規定された前記レジスタファイルの内容を前記不揮発メモリに退避するように制御する、
ことを特徴とする付記6または付記7に記載の演算処理装置。
(Appendix 8)
The evacuation information table is
The pre-sleep instruction includes mask information that defines the contents of the register file that is not saved in the nonvolatile memory,
The register save control unit
Based on the sleep instruction, control to save the contents of the register file defined by the mask information in the nonvolatile memory,
The arithmetic processing apparatus according to appendix 6 or appendix 7, characterized in that.
(付記9)
前記プリスリープ指示に基づいて前記レジスタファイルの内容を前記不揮発メモリに退避するのは、動作中の前記演算処理装置におけるNOP命令を使用して行う、
ことを特徴とする付記1乃至付記8のいずれか1項に記載の演算処理装置。
(Appendix 9)
Saving the contents of the register file in the nonvolatile memory based on the pre-sleep instruction is performed using a NOP instruction in the arithmetic processing unit in operation.
The arithmetic processing apparatus according to any one of
(付記10)
前記演算処理装置は、
前記スリープ指示に基づいて、前記レジスタファイルの内容を前記不揮発メモリに退避した後、前記スリープ解除指示を受け取るまで、消費電力を抑えたスリープモードになる、
ことを特徴とする付記1乃至付記9のいずれか1項に記載の演算処理装置。
(Appendix 10)
The arithmetic processing unit includes:
Based on the sleep instruction, after saving the contents of the register file in the nonvolatile memory, until the sleep release instruction is received, the sleep mode with reduced power consumption is entered.
The arithmetic processing apparatus according to any one of
(付記11)
プリスリープ指示に基づいて、動作中の前記演算処理装置における空きのレジスタリードアクセスを使用して、レジスタファイルの内容を不揮発メモリに退避し、
前記プリスリープ指示の後に受信するスリープ指示に基づいて、前記不揮発メモリに退避されていない残りの前記レジスタファイルの内容を、前記不揮発メモリに退避する、
ことを特徴とする演算処理装置の制御方法。
(Appendix 11)
Based on the pre-sleep instruction, using empty register read access in the arithmetic processing unit in operation, the contents of the register file are saved in the nonvolatile memory,
Based on the sleep instruction received after the pre-sleep instruction, the content of the remaining register file that has not been saved in the nonvolatile memory is saved in the nonvolatile memory;
A control method for an arithmetic processing unit.
(付記12)
さらに、
前記スリープ指示の後に受信するスリープ解除指示に基づいて、前記不揮発メモリに退避した内容を前記レジスタファイルに書き戻す、
ことを特徴とする付記11に記載の演算処理装置の制御方法。
(Appendix 12)
further,
Based on the sleep release instruction received after the sleep instruction, the contents saved in the nonvolatile memory are written back to the register file.
The control method of the arithmetic processing unit according to
(付記13)
前記スリープ指示に基づいて前記不揮発メモリに退避する前記レジスタファイルの内容は、
前記プリスリープ指示に基づいた退避では退避が完了していない前記レジスタファイルの内容、または、
前記プリスリープ指示の後に書き換えられた前記レジスタファイルの内容である、
ことを特徴とする付記11または付記12に記載の演算処理装置の制御方法。
(Appendix 13)
The contents of the register file saved in the nonvolatile memory based on the sleep instruction are:
In the save based on the pre-sleep instruction, the contents of the register file that has not been saved, or
The contents of the register file rewritten after the pre-sleep instruction.
The control method of the arithmetic processing device according to
(付記14)
さらに、
マスク信号に基づいて、前記プリスリープ指示では、前記不揮発メモリに退避させない前記レジスタファイルの内容を規定し、
前記スリープ指示に基づいて、前記マスク信号で規定された前記レジスタファイルの内容を前記不揮発メモリに退避する、
ことを特徴とする付記11乃至付記13のいずれか1項に記載の演算処理装置の制御方法。
(Appendix 14)
further,
Based on the mask signal, the pre-sleep instruction defines the contents of the register file that is not saved in the nonvolatile memory,
Based on the sleep instruction, the contents of the register file defined by the mask signal are saved in the nonvolatile memory;
14. The method for controlling an arithmetic processing apparatus according to any one of
(付記15)
前記プリスリープ指示に基づいて前記レジスタファイルの内容を前記不揮発メモリに退避するのは、動作中の前記演算処理装置におけるNOP命令を使用して行う、
ことを特徴とする付記11乃至付記14のいずれか1項に記載の演算処理装置の制御方法。
(Appendix 15)
Saving the contents of the register file in the nonvolatile memory based on the pre-sleep instruction is performed using a NOP instruction in the arithmetic processing unit in operation.
The method for controlling an arithmetic processing apparatus according to any one of
(付記16)
前記演算処理装置は、
前記スリープ指示に基づいて、前記レジスタファイルの内容を前記不揮発メモリに退避した後、前記スリープ解除指示を受け取るまで、消費電力を抑えたスリープモードになる、
ことを特徴とする付記11乃至付記15のいずれか1項に記載の演算処理装置の制御方法。
(Appendix 16)
The arithmetic processing unit includes:
Based on the sleep instruction, after saving the contents of the register file in the nonvolatile memory, until the sleep release instruction is received, the sleep mode with reduced power consumption is entered.
The method for controlling an arithmetic processing apparatus according to any one of
1 レジスタ退避制御部
11 リードポート選択部
12 レジスタリード制御部
13 テーブル制御部
14 退避情報テーブル
15 NVMストア制御部
16 レジスタ番号部
21 命令キャッシュ
22 データキャッシュ
23 レジスタファイル(レジスタ)
24 不揮発メモリコントローラ
31 命令メモリ
32 データメモリ
33 不揮発メモリ
41 動作モード部
42 デコーダ(デコードステージID,IDステージ)
43 実行部(実行ステージEX,EXステージ)
44 メモリアクセス部(メモリアクセスステージMA,MAステージ)
500,600 演算処理装置(プロセッサ)
Spd スリープ指示(パワーダウン信号)
Sppd プリスリープ指示(プリパワーダウン信号)
Spu スリープ解除(パワーアップ信号)
DESCRIPTION OF
24
43 execution unit (execution stage EX, EX stage)
44 Memory Access Unit (Memory Access Stage MA, MA Stage)
500,600 arithmetic processing unit (processor)
Spd sleep instruction (power-down signal)
Sppd pre-sleep instruction (pre-power-down signal)
Spu Sleep release (power-up signal)
Claims (9)
プリスリープ指示に基づいて、空きのレジスタリードアクセスを使用して、前記レジスタファイルの内容を不揮発メモリに退避し、
前記プリスリープ指示の後に受信するスリープ指示に基づいて、前記レジスタファイルの内容を前記不揮発メモリに退避する処理を実行するレジスタ退避制御部と、を有する、
ことを特徴とする演算処理装置。 A register file that holds the data to be used for arithmetic processing;
Based on the pre-sleep instruction, using the empty register read access, save the contents of the register file to the nonvolatile memory,
A register save control unit that executes a process of saving the contents of the register file in the nonvolatile memory based on a sleep instruction received after the pre-sleep instruction.
An arithmetic processing apparatus characterized by that.
前記スリープ指示の後に受信するスリープ解除指示に基づいて、前記不揮発メモリに退避した内容を前記レジスタファイルに書き戻す処理を実行する、
ことを特徴とする請求項1に記載の演算処理装置。 The register save control unit further includes:
Based on a sleep release instruction received after the sleep instruction, a process of writing back the contents saved in the nonvolatile memory to the register file is executed.
The arithmetic processing apparatus according to claim 1.
前記不揮発メモリに退避が行われた退避情報を保持する退避情報テーブルと、
前記不揮発メモリに退避が行われた後に、前記レジスタファイルに書き換えが行われた場合、前記レジスタファイルの書き換えが行われた個所に対応する、前記退避情報テーブルにおけるフラグを書き換えるテーブル制御部と、を含む、
ことを特徴とする請求項1または請求項2に記載の演算処理装置。 The register save control unit
A save information table for holding save information saved in the nonvolatile memory;
A table control unit that rewrites the flag in the save information table corresponding to the location where the register file is rewritten when the register file is rewritten after the save to the nonvolatile memory; Including,
The arithmetic processing device according to claim 1 or 2, wherein
前記退避情報テーブルにおける書き換えられたフラグに対応する、前記レジスタファイルの書き換えが行われた個所の内容を、前記スリープ指示に基づいて、前記不揮発メモリに再度退避するように制御する、
ことを特徴とする請求項3に記載の演算処理装置。 The register save control unit
Control the contents of the rewritten portion of the register file corresponding to the rewritten flag in the save information table to be saved again in the nonvolatile memory based on the sleep instruction;
The arithmetic processing device according to claim 3.
前記プリスリープ指示では、前記不揮発メモリに退避させない前記レジスタファイルの内容を規定するマスク情報を含み、
前記レジスタ退避制御部は、
前記スリープ指示に基づいて、前記マスク情報で規定された前記レジスタファイルの内容を前記不揮発メモリに退避するように制御する、
ことを特徴とする請求項3または請求項4に記載の演算処理装置。 The evacuation information table is
The pre-sleep instruction includes mask information that defines the contents of the register file that is not saved in the nonvolatile memory,
The register save control unit
Based on the sleep instruction, control to save the contents of the register file defined by the mask information in the nonvolatile memory,
The arithmetic processing apparatus according to claim 3 or 4, wherein
前記プリスリープ指示の後に受信するスリープ指示に基づいて、前記不揮発メモリに退避されていない残りの前記レジスタファイルの内容を、前記不揮発メモリに退避する、
ことを特徴とする演算処理装置の制御方法。 Based on the pre-sleep instruction, using empty register read access in the arithmetic processing unit in operation, the contents of the register file are saved in the nonvolatile memory,
Based on the sleep instruction received after the pre-sleep instruction, the content of the remaining register file that has not been saved in the nonvolatile memory is saved in the nonvolatile memory;
A control method for an arithmetic processing unit.
前記スリープ指示の後に受信するスリープ解除指示に基づいて、前記不揮発メモリに退避した内容を前記レジスタファイルに書き戻す、
ことを特徴とする請求項6に記載の演算処理装置の制御方法。 further,
Based on the sleep release instruction received after the sleep instruction, the contents saved in the nonvolatile memory are written back to the register file.
The method of controlling an arithmetic processing unit according to claim 6.
前記プリスリープ指示に基づいた退避では退避が完了していない前記レジスタファイルの内容、または、
前記プリスリープ指示の後に書き換えられた前記レジスタファイルの内容である、
ことを特徴とする請求項6または請求項7に記載の演算処理装置の制御方法。 The contents of the register file saved in the nonvolatile memory based on the sleep instruction are:
In the save based on the pre-sleep instruction, the contents of the register file that has not been saved, or
The contents of the register file rewritten after the pre-sleep instruction.
The method for controlling an arithmetic processing apparatus according to claim 6 or 7, wherein:
マスク信号に基づいて、前記プリスリープ指示では、前記不揮発メモリに退避させない前記レジスタファイルの内容を規定し、
前記スリープ指示に基づいて、前記マスク信号で規定された前記レジスタファイルの内容を前記不揮発メモリに退避する、
ことを特徴とする請求項6乃至請求項8のいずれか1項に記載の演算処理装置の制御方法。 further,
Based on the mask signal, the pre-sleep instruction defines the contents of the register file that is not saved in the nonvolatile memory,
Based on the sleep instruction, the contents of the register file defined by the mask signal are saved in the nonvolatile memory;
The method for controlling an arithmetic processing apparatus according to any one of claims 6 to 8, wherein:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014247398A JP2016110400A (en) | 2014-12-05 | 2014-12-05 | Arithmetic processing unit, and control method for arithmetic processing unit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014247398A JP2016110400A (en) | 2014-12-05 | 2014-12-05 | Arithmetic processing unit, and control method for arithmetic processing unit |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2016110400A true JP2016110400A (en) | 2016-06-20 |
Family
ID=56124468
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014247398A Withdrawn JP2016110400A (en) | 2014-12-05 | 2014-12-05 | Arithmetic processing unit, and control method for arithmetic processing unit |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2016110400A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114121133A (en) * | 2020-08-27 | 2022-03-01 | 新唐科技股份有限公司 | Chip and its design method and failure analysis method |
-
2014
- 2014-12-05 JP JP2014247398A patent/JP2016110400A/en not_active Withdrawn
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114121133A (en) * | 2020-08-27 | 2022-03-01 | 新唐科技股份有限公司 | Chip and its design method and failure analysis method |
| JP2022050315A (en) * | 2020-08-27 | 2022-03-30 | 新唐科技股▲ふん▼有限公司 | Chip, design method therefor, and failure analysis method |
| JP7329568B2 (en) | 2020-08-27 | 2023-08-18 | 新唐科技股▲ふん▼有限公司 | Chip, its design method, failure analysis method, and failure analysis system |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5889986B2 (en) | System and method for selectively committing the results of executed instructions | |
| JP6030987B2 (en) | Memory control circuit | |
| KR100900364B1 (en) | Instruction execution device, instruction execution method, and computer readable memory media | |
| US20150186278A1 (en) | Runtime persistence | |
| US9170792B2 (en) | Dynamic optimization of pipelined software | |
| US20180300148A1 (en) | Apparatus and method for determining a recovery point from which to resume instruction execution following handling of an unexpected change in instruction flow | |
| US20200379772A1 (en) | Managing Load and Store Instructions for Memory Barrier Handling | |
| JP5949327B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
| CN113853584B (en) | Variable latency instruction | |
| JP4800582B2 (en) | Arithmetic processing unit | |
| JP2016110400A (en) | Arithmetic processing unit, and control method for arithmetic processing unit | |
| KR20250121607A (en) | Decoupling atomicity from operation size | |
| EP1770507A2 (en) | Pipeline processing based on RISC architecture | |
| US10514925B1 (en) | Load speculation recovery | |
| JP4607958B2 (en) | Processor and program conversion apparatus | |
| CN103425498B (en) | A kind of long instruction words command memory of low-power consumption and its method for optimizing power consumption | |
| JP5474926B2 (en) | Electric power retirement | |
| JP5414323B2 (en) | Semiconductor integrated circuit device | |
| JP6015294B2 (en) | Semiconductor integrated circuit and power consumption suppressing method | |
| US20160004536A1 (en) | Systems And Methods For Processing Inline Constants | |
| US8140831B2 (en) | Routing instructions in a processor | |
| CN120958433A (en) | Reuse of results from speculative load instructions from faulty paths | |
| JP2006048258A (en) | Data processor | |
| JP2001236228A (en) | Computer and its control method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170804 |
|
| A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20171225 |