JP6247314B2 - Computer system and computer system control method - Google Patents
Computer system and computer system control method Download PDFInfo
- Publication number
- JP6247314B2 JP6247314B2 JP2015551349A JP2015551349A JP6247314B2 JP 6247314 B2 JP6247314 B2 JP 6247314B2 JP 2015551349 A JP2015551349 A JP 2015551349A JP 2015551349 A JP2015551349 A JP 2015551349A JP 6247314 B2 JP6247314 B2 JP 6247314B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- computer system
- processor
- data
- worker
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 41
- 238000012545 processing Methods 0.000 claims description 51
- 230000008569 process Effects 0.000 claims description 29
- 238000012360 testing method Methods 0.000 claims description 4
- 230000003068 static effect Effects 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 41
- 230000008859 change Effects 0.000 description 15
- 230000004083 survival effect Effects 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 7
- 238000001994 activation Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 5
- 230000007958 sleep Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 230000006866 deterioration Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Power Sources (AREA)
Description
本発明は、半導体メモリを備えた情報処理システム及びその制御方法に関する。特に、低消費電力かつ所定の信頼性を満たす情報処理システムを実現する技術に関する。 The present invention relates to an information processing system including a semiconductor memory and a control method thereof. In particular, the present invention relates to a technique for realizing an information processing system that satisfies low power consumption and predetermined reliability.
半導体微細化に伴い、計算機システムの性能が向上する一方で、トランジスタの特性ばらつきが増大している。この特性ばらつきは特に、SRAM(Static Random Access Memory)など記憶デバイスの信頼性を低下させ、保持データの破損などを招く原因となる。データ破損はシステムダウンなどを引き起こす可能性があるため、その補償技術が近年大きな課題となっている。SRAMのみならず、DRAM(Dynamic Random Access Memory)などの記憶デバイスにおいても同様である。例えば、DRAMにおいては記憶保持時間が小さくなる。 With the miniaturization of semiconductors, the performance of a computer system is improved, while the variation in transistor characteristics is increasing. This variation in characteristics particularly decreases the reliability of a storage device such as SRAM (Static Random Access Memory) and causes damage to retained data. Since data corruption can cause system down, compensation technology has become a major issue in recent years. The same applies to a storage device such as a DRAM (Dynamic Random Access Memory) as well as an SRAM. For example, in a DRAM, the memory holding time is reduced.
このため、記憶デバイスの信頼性を維持する技術として、特許文献1では、エラー訂正符号化(ECC)やデータの多重化により記憶したデータの誤りを訂正する技術が開示されている。また、特許文献2では、メモリチップの劣化による必要閾値電圧の違いに対応するために、メモリチップに対するデータの書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを変更して適正値に設定する技術が開示されている。
For this reason, as a technique for maintaining the reliability of the storage device,
特許文献1および特許文献2のように、全てのデータに対し、誤りを完全に訂正する場合、信頼性維持コストが増大する。例えば、ECCを適用する場合、符号化および訂正処理のために電力を消費する。また、SRAMにおいては電圧を高める、DRAMにおいてはリフレッシュレートの頻度を上げることで、動作マージンを拡大することが可能だが、消費電力も増加する。このように、記憶デバイスの信頼性維持には多大な電力コストが必要であり、半導体微細化が進むほどその信頼性維持コストは増大する。
As in
また、今後、大規模データを用いた学習・認識処理などのアプリケーションの台頭が予想されている。このようなアプリケーションでは多量の計算を行うため、大容量の記憶デバイスを必要とする。このため、記憶デバイスの大容量化に伴う信頼性維持コストの増加が、特に問題となってくる。 In the future, the rise of applications such as learning / recognition processing using large-scale data is expected. Such an application requires a large capacity storage device to perform a large amount of calculations. For this reason, the increase in the reliability maintenance cost accompanying the increase in the capacity of the storage device becomes a particular problem.
但し、学習・認識処理を応用したアプリケーションなど、一部のアプリケーションにおいては計算結果の誤差に対して強い耐性がある。例えば、人物の認識において正しい計算結果は確信度90%であるに対し、データのエラーによって確信度88%となっても、結論としてこれがAさんであるという結論に変わりが無ければ問題ない。しかしながら、記憶デバイスが高信頼であることを前提としている現在の計算機システムにおいては、プロセッサへの命令もデータも全て同様に扱うために、記憶デバイスのデータのエラーが計算機システム全体のダウンにつながる恐れがある。 However, some applications, such as an application using learning / recognition processing, have a strong resistance to calculation result errors. For example, the correct calculation result in the recognition of a person has a certainty factor of 90%, but even if the certainty factor is 88% due to a data error, there is no problem as long as there is no change in the conclusion that this is Mr. A. However, in the current computer system that assumes that the storage device is highly reliable, all the instructions and data to the processor are handled in the same way, and therefore an error in the data of the storage device may lead to a failure of the entire computer system. There is.
そこで、本発明の実施例における計算機システムでは、命令データ、ポインタなど、システム全体の制御に関わるデータであり、誤りが発生するとシステムダウンに繋がる重要度の高いデータについては、記憶デバイス内で高信頼(エラー訂正可能となるレベル)に保持する。一方、画像やテキストなどの入力データや計算の中間データなど、データに誤りが発生してもシステム全体を停止させない重要度が低いデータについては低信頼(1ビット以上のデータがECCを用いてもエラー訂正不可能となるレベル)に保持する。これにより、記憶デバイスの大部分を低信頼(言い換えれば低電力)の状態で使用しつつ、システム全体の停止など計算機システムの致命的なエラーを回避する。 Therefore, in the computer system according to the embodiment of the present invention, data relating to control of the entire system, such as instruction data and pointers, and highly important data that leads to system down if an error occurs are highly reliable in the storage device. (Level at which error correction is possible). On the other hand, low-reliability data (such as input data such as images and text) and intermediate data for calculations that do not stop the entire system even if an error occurs. At a level where error correction is impossible). As a result, a fatal error of the computer system such as the stop of the entire system can be avoided while using most of the storage device in a state of low reliability (in other words, low power).
具体的には、実施例の一例における計算機システムは、メモリと、メモリに接続された第1及び第2のプロセッサを備える。第1のプロセッサは、第1の動作状態でメモリへアクセスし、メモリにおけるデータエラー発生率が前記第1の動作状態よりも高い第2の動作状態ではメモリへのアクセスを停止する。一方、第2のプロセッサは、第2の動作状態で前記メモリへアクセスする。 Specifically, a computer system in an example of the embodiment includes a memory and first and second processors connected to the memory. The first processor accesses the memory in the first operation state, and stops accessing the memory in the second operation state in which the data error occurrence rate in the memory is higher than the first operation state. On the other hand, the second processor accesses the memory in the second operating state.
そして、第1のプロセッサは、第1の動作状態で第2のプロセッサへの作業指示内容をメモリに格納し、第2のプロセッサは、第2の動作状態でメモリに格納された作業指示内容を読み出して処理を実行する。また、第1のプロセッサは、第1の動作状態で第2のプロセッサが動作しているかを確認し、動作していない場合は、第2のプロセッサを再起動させる。 Then, the first processor stores the work instruction content to the second processor in the memory in the first operation state, and the second processor stores the work instruction content stored in the memory in the second operation state. Read and execute the process. In addition, the first processor checks whether the second processor is operating in the first operating state, and if it is not operating, restarts the second processor.
メモリがSRAMの場合は、前述の第1及び第2の動作状態はSRAMの動作電圧により決定される。この場合、第2の動作状態における動作電圧は第1の動作状態における動作電圧よりも低い。 When the memory is an SRAM, the first and second operating states described above are determined by the operating voltage of the SRAM. In this case, the operating voltage in the second operating state is lower than the operating voltage in the first operating state.
メモリがDRAMの場合は、前述の第1及び第2の動作状態はDRAMのリフレッシュレートにより決定される。この場合、第2の動作状態におけるリフレッシュレートは第1の動作状態におけるリフレッシュレートよりも低い。 When the memory is a DRAM, the first and second operating states described above are determined by the refresh rate of the DRAM. In this case, the refresh rate in the second operating state is lower than the refresh rate in the first operating state.
本発明により、所定の信頼性を維持しつつ記憶デバイスの消費電力を削減した計算機システムの提供が可能になる。 According to the present invention, it is possible to provide a computer system that reduces power consumption of a storage device while maintaining predetermined reliability.
実施例1では、SRAMの消費電力を削減したプロセッサの例を説明する。 In the first embodiment, an example of a processor in which the power consumption of the SRAM is reduced will be described.
図1は、SRAMを備えたプロセッサ10の構成を示すブロック図である。プロセッサ10は、複数のプロセッサコアを備えたマルチコアプロセッサであり、CPU110、CPU120、バス130、入出力ユニット140、SRAM150、タイマ160、電圧/周波数制御ユニット170を有している。
FIG. 1 is a block diagram illustrating a configuration of a
CPU110は、マスタ・ワーカ方式の並列処理において、マスタの役割をする演算コアであり、CPU120は、ワーカの役割をする演算コアである。CPU120は、命令キャッシュ121とロード/ストアユニット122を有する。
The
命令キャッシュ121は、命令データを格納するキャッシュメモリであり、メモリセルのトランジスタサイズが大きい、又はトランジスタ数が多いなど、低電圧動作においても高信頼に動作できるように作られている。ロード/ストアユニット122は、CPU120のデータをSRAM150へ書込む処理と、SRAM150のデータをCPU120から読出す処理を行うユニットである。
The
バス130は、プロセッサ10に存在する各モジュールを繋ぐユニットである。入出力ユニット140は、プロセッサ10と外部システムを繋ぐユニットである。SRAM150は、CPU110(マスタ)とCPU120(ワーカ)が計算に使用するデータが格納される共有メモリであり、例えば図2に示すデータを格納する。
The
タイマ160は、時間をカウントするタイマであり、CPU110から受信した低電圧設定値情報201と電圧変更間隔情報202を含む制御情報111に基づいて、電圧/周波数制御ユニット170へ電圧変更指示を含む制御情報161を出力し、CPU110へ電圧変更完了を示す情報を含む割込み情報162を出力する。
The
電圧/周波数制御ユニット170は、プロセッサ10の動作電圧および動作周波数を変更するユニットである。本実施形態では、電圧/周波数制御ユニット170により、CPU110とCPU120の電圧の制御を共通して行うが、異なる電圧/周波数制御ユニットにより独立した制御を行ってもよい。
The voltage /
図2は、SRAM150に格納されるデータの一例である。低電圧設定値情報201は、低電圧状態の動作電圧と、該動作電圧でCPU110およびCPU120が動作可能な動作周波数の情報である。電圧変更間隔情報202は、プロセッサ10の動作電圧を変更する時間間隔の情報である。アドレスオフセット情報203は、CPU110がCPU120へ割り当てるSRAM150上の記憶領域のアドレスオフセット情報である。
FIG. 2 is an example of data stored in the
タスク管理情報204は、CPU110がCPU120へ与えるタスクの管理情報であり、どのワーカ(CPU120)がどのタスクを処理していて、全体としてどれだけのタスクが完了しているかなどを示す情報である。タスクキュー205はCPU110がCPU120へ与えるタスクのキューであり、ワーカ(CPU120)はタスクキュー205のタスクが無くなるまで、タスクキュー205からタスクを受け取って処理する。
The
タスク計算結果情報206は、CPU120(ワーカ)が処理したタスクの計算結果の情報であり、計算結果の配置アドレス情報などCPU110(マスタ)が計算結果を取得するための情報である。マスタ作業データ207は、CPU110(マスタ)が処理の途中に生成するデータである。ワーカ作業データ208は、CPU120(ワーカ)が処理の途中に生成するデータである。
The task calculation result
入力データ209は、計算の対象となる入力データであり、例えば機械学習の教師データとなる画像データである。生存確認情報210は、ワーカの生存状況を確認するための情報である。目標エラー数211は、プロセッサ10がプログラム実行中の所定処理でカウントするエラーデータ数の目標値である。許容エラー数212は、プロセッサ10がプログラム実行中の所定部分の処理でカウントするエラーデータ数において、アプリケーションが許容可能な閾値である。
The
図3は、プロセッサ10において、CPU110(マスタ)とCPU120(ワーカ)により実行される並列処理の例を示すタイムチャートである。まず、CPU110(マスタ)は、標準電圧の状態で、並列処理を行う前までの処理301を行う。その後、処理302においてタスクキュー作成処理とワーカ起動処理321を行う。CPU120(ワーカ)は、ワーカ起動処理311を行い、完了したことをマスタに通知する。全てのワーカ起動完了を確認したマスタは、タイマ160に低電圧設定値情報201と電圧変更間隔情報202を設定し、スリープ処理303を行う。
FIG. 3 is a time chart illustrating an example of parallel processing executed by the CPU 110 (master) and the CPU 120 (worker) in the
タイマ160は、低電圧設定値情報201に基づいて電圧/周波数制御ユニット170へ動作電圧および動作周波数の設定値変更指示(制御情報161)を出力する。電圧/周波数制御ユニット170は、タイマ160からの設定値変更指示に基づいて動作電圧および動作周波数を変更し、プロセッサ10を低電圧の状態にする。ワーカは、タスクキュー205よりタスクを取得し、入力データ209を用いてタスク処理312を行う。ワーカは、取得したタスクの処理が完了すると、タスク計算結果の格納アドレスをタスク計算結果情報206としてSRAM150に書込み、タスクキュー205から新たなタスクを取得して処理する。ワーカは、タスクキュー205のタスクがなくなるまでこれを繰り返す。
The
タイマ160は、電圧変更間隔情報202に基づいた所定時間経過後に、電圧/周波数制御ユニット170へ標準電圧への設定値変更指示(制御情報161)を出力し、電圧変更後にマスタに割込み情報162を出力する。割込み情報162を受信したマスタは、タスクの進捗状況確認とワーカの生存状況の確認などを行う管理処理304を行う。ここで、あるワーカ(ワーカ2)が低電圧状態でのSRAM150にアクセスし、ポインタのデータが破損するなどによって停止するアクシデント313が発生していた場合、マスタはワーカ2の再起動処理322を実行する。再起動処理322においては、マスタは再起動するワーカが使用するSRAM150上のアドレス領域のオフセット値を変更する。これにより、再起動したワーカ(ワーカ2)は前回とは異なるアドレス領域にアクセスすることになるため、アクシデント313と同一の原因で停止することを回避することができる。
The
生存状況の確認は、SRAM150上の生存確認情報210のデータをワーカが定期的にカウントアップし、マスタがこれを観測するなどによって行うことができる。管理処理304において全てのタスクが完了していなければ、マスタは処理302と同様にタイマ160へ制御情報111を出力し、スリープ処理303を行う。管理処理304において全てのタスクが完了している場合は、ワーカにタスク終了通知323を通知し、後処理305を行う。
The survival status can be confirmed by periodically counting up the data of the
このようにマスタがSRAM150へアクセスする際には、常にSRAM150の電圧が標準電圧の状態であるようにすることによって、マスタが保有するデータを正しく保持することができる。また、タスクキュー205、タスク計算結果情報206と生存確認情報210はSRAM150上で三重化して保持されており、低電圧状態でも高信頼(訂正処理によって完全にデータ復元が可能である状態)にデータアクセスができる。一方、ワーカがSRAM150にアクセスする際は、SRAM150の電圧を低電圧の状態にすることにより、SRAM150の消費電力を削減することができる。
Thus, when the master accesses the
次に、CPU110(マスタ)が再起動するCPU120(ワーカ)が使用するSRAM150上のアドレス領域のデータ配置を変更する手段を、図4、図5、図6を用いて説明する。図4、図5、図6はワーカが使用するアドレス領域のデータ配置を示す図である。マスタは、ワーカ起動時にワーカが作業に使うアドレス領域を実際に割当てるサイズよりも大きく確保し、ワーカへSRAM150上のアドレス領域のオフセット値とインデックス値を設定し、ワーカが使用可能なアドレス領域を割当てる。オフセット値はワーカへ割当てるアドレス領域の物理的な先頭アドレスであり、インデックス値はワーカへ割当てたアドレス領域内の論理的な先頭アドレスである。
Next, means for changing the data arrangement of the address area on the
図4に示すように、マスタは、例えばワーカ1へはアドレス領域401を確保し、アドレス411をオフセット値(先頭アドレス)として設定することでワーカ1へアドレス領域410を割当て、残りのアドレス領域451をマージン領域とする。同様にワーカ2へはアドレス領域402を確保し、アドレス421をオフセット値として設定することでアドレス領域420を割当てる。なお、インデックス値の初期値はゼロとして設定される。マスタが有するワーカのアドレスオフセットに関する情報はアドレスオフセット情報203としてSRAM150に格納され、ワーカが有するオフセット値とインデックス値は該ワーカのロード/ストアユニット122に格納される。
As shown in FIG. 4, for example, the master allocates an
ここで、ワーカ2を再起動させる場合、図5に示すように、マスタはワーカ2のオフセット値をアドレス422に変更して再起動する。これにより、ワーカ2のデータ配置が変更されるため、同一の原因でワーカ2が何度も停止する事象を回避できる。
Here, when restarting the
オフセット値変更を行ってもワーカ2が繰り返し停止する場合、マスタは図6に示すように、ワーカ2のインデックス値を変更する。ワーカ2のロード/ストアユニット122は変更されたインデックス値に従って、アドレス領域420内でデータを配置するアドレスをリングシフトすることによってデータ配置の変更を行う。図4ではワーカ2のオフセット値がアドレス422と設定されており、インデックス値の変更に従ってアドレス422がワーカ2の論理的な先頭アドレスとなるようにアドレス変換を行った例を示している。
If the
このようにデータ配置の変更を行うことによって、再起動したワーカが過去に停止した原因と同一の原因で何度も停止を繰り返すことを回避することができる。 By changing the data arrangement in this way, it is possible to prevent the restarted worker from repeatedly stopping due to the same cause as the previous stop.
次に、図7と図8を用いて、プロセッサ10で実行される並列処理を説明する。図7はプロセッサ10のCPU110(マスタ)が行う処理のフローチャートである。まず、マスタはタスクキュー205作成処理(ステップS701)を実行する。ここで、タスクキュー205内の情報は3重化などによって高信頼化されて書込まれる。これにより、ワーカはSRAM150が低電圧状態でもタスクキュー205から正確な情報を取得できる。タスクキュー205の情報は全体に比べて非常に小さいため、3重化に伴う電力損失は非常に小さい。その後、ワーカ起動処理(ステップS702)を行い、電圧変更処理(ステップS703)としてタイマ160へ低電圧設定値情報201と電圧変更間隔情報202を設定し、スリープ処理(ステップS704)へ移行する。マスタはタイマ160から割込み情報162を受信(ステップS705)すると、スリープ処理を解除し、ステップS706へ移行してワーカ生存確認とワーカ再起動処理を行う。その後、ステップS707としてタスク管理情報204を参照し、タスク処理状況の進捗確認を行い、タスクキュー205の全てのタスクが処理されていたならば、全てのCPU120(ワーカ)に対してタスク終了通知323を出力し、ステップS710へ移行し、タスクキュー205の全てのタスクが処理されていなければ、S703へ移行するという分岐処理(ステップS708)を行う。
Next, parallel processing executed by the
ステップS710ではワーカが処理したタスクの計算結果が所定のフォーマットを満たしているかのチェックを行う。例えば、教師なし学習の一種であるK−meansクラスタリングのアルゴリズムにおいては、入力データの各要素が所属するクラスタの番号は必ずクラスタ数Kよりも小さくなる。このように、ワーカの計算結果が、計算結果として取りえる値域を満たしているかをチェックする。これにより、マスタがワーカの計算結果を配列の要素番号として使用する際などに、配列オーバフローなどシステムが停止してしまう致命的なエラーを回避することができる。なお、前記所定のフォーマットを満たしていない計算結果は破棄される。 In step S710, it is checked whether the calculation result of the task processed by the worker satisfies a predetermined format. For example, in the K-means clustering algorithm which is a kind of unsupervised learning, the number of the cluster to which each element of the input data belongs is always smaller than the number K of clusters. In this way, it is checked whether the calculation result of the worker satisfies a value range that can be taken as the calculation result. As a result, when the master uses the calculation result of the worker as the element number of the array, it is possible to avoid a fatal error that causes the system to stop such as array overflow. A calculation result that does not satisfy the predetermined format is discarded.
ステップS711では、前記所定のフォーマットを満たしていない計算結果の数が目標エラー数211に近づくように、マスタは信頼性を調整する処理を行う。信頼性の調整は低電圧設定値情報201の電圧値を変更することによって行う。破棄されたデータ数が目標エラー数211よりも大きい場合はSRAM150の信頼性を向上させるために、電圧値をより高い値へ設定する。破棄されたデータ数が目標エラー数211よりも小さい場合はSRAM150の電力効率を向上させるために、電圧値をより低い値へ設定する。また、ステップS711として、前記所定のフォーマットを満たしていない計算結果の数が許容エラー数212以上であるとき、ワーカの計算結果を全て破棄し、計算のリトライを行うためにステップS703へ移行する分岐処理を行う。プロセッサ10を備える計算機システムは、低電圧設定値情報201、目標エラー数211、および許容エラー数212をユーザが容易に設定することが可能なAPI(Application Programming Interface)を有している。なお、精度維持のために特に細やかなエラー数調整が必要ない場合、プロセッサ10を備える計算機システムはステップS711を省略することもできる。
In step S711, the master performs a process of adjusting reliability so that the number of calculation results that do not satisfy the predetermined format approaches the
図8は、図7のS702でCPU110(マスタ)により起動されたCPU120(ワーカ)が行う処理のフローチャートである。起動したワーカは、ステップS801にてタスクキュー205のタスク進捗状況を確認し、ステップS802として全タスクが完了しているならばステップS820へ移行し、未処理のタスクが残っているならばS810へ移行する。S820ではタスク終了通知323をマスタから受信するまで待機し、ワーカは処理を終了する。S810ではタスクキュー205からタスクを取得し、どのワーカがどのタスクを取得したかが分かるように、取得したタスク識別番号と自身のワーカ識別番号をタスク管理情報204へ書込む。ステップS811として取得したタスクを処理する。ステップS812として処理したタスクの計算結果をSRAM150へ出力すると共に、取得したタスクの処理が完了したことが分かるように、処理を完了したタスク識別番号と自身のワーカ識別番号をタスク管理情報204へ書込む。ここで、タスク管理情報204のデータは3重化などによって高信頼化されて書込まれる。なお、S801からS820までのフローにおいて、ワーカは所定の間隔で生存確認情報210を更新する。
FIG. 8 is a flowchart of processing performed by the CPU 120 (worker) activated by the CPU 110 (master) in S702 of FIG. The activated worker confirms the task progress status in the
以上の構成及び処理により、SRAM内の故障ビットを完全に訂正することなく、システム全体が停止することを回避した低電力なプロセッサ10を実現できる。
With the above configuration and processing, it is possible to realize the low-
次に、図9、図10、図11を用いて、プロセッサ10の低電圧設定値情報201と目標エラー数211を設定する手段を説明する。図7に示したステップS711の信頼性調整処理では、プログラム中にその目標エラー数211を設定する必要がある。プロセッサ10を含む計算機システムをユーザに提供する場合、ユーザがアプリケーションプログラムを意識して目標エラー数211などのパラメータを設定することが困難な場合がある。そのような場合、ユーザはパラメータ調整用プログラム1003を実行することにより、アプリケーションプログラムを意識することなく最適なパラメータを設定できる。パラメータ調整用プログラム1003は、ユーザが準備したパラメータ調整用のテストデータと予め設定された計算結果の精度目標値情報を用いてアプリケーションプログラムをプロセッサ10の上で実行することによって、計算結果の精度が目標値を満たす範囲で電力が最も下がる低電圧設定値情報201を取得し、さらに目標エラー数211を取得する。
Next, means for setting the low voltage
図9は、プロセッサ10を含む計算機システム1の構成例を示す図である。メモリ20は、DRAMなどで構成されるメモリである。メモリ20には図10に示す情報が格納される。入出力ユニット30は外部システムと計算機システム1を繋ぐユニットである。バス40は計算機システム1の各コンポーネントを繋ぐバスである。
FIG. 9 is a diagram illustrating a configuration example of the
図10は、メモリ20に格納されたデータの一例である。アプリケーションプログラム1001は、パラメータ調整対象となるアプリケーションプログラムである。テストデータ1002は、低電圧設定値情報201と目標エラー数211のパラメータを調整するための入力テストデータである。パラメータ調整用プログラム1003は、アプリケーションプログラム1001の最適パラメータを探索するためのプログラムである。精度目標値情報1004は、許容可能な精度劣化を規定する基準情報である。
FIG. 10 is an example of data stored in the
図11のパラメータ調整用プログラム1003のフローチャートを用いて、ユーザがアプリケーションプログラムを意識することなく、低電圧設定値情報201と目標エラー数211の設定値を取得する方法を説明する。まず、計算機システム1は正解基準データ生成(ステップS1101)を行う。正解基準データは、プロセッサ10の低電圧設定値情報201を標準電圧値として実行する(すなわち、全ての処理を標準電圧で実行する)ことによって得られる高信頼計算時における計算結果であり、低電圧動作を含む高効率計算時の計算結果と比較するために使用されるデータである。
A method for acquiring the setting values of the low voltage setting
ステップS1102で、低電圧設定値情報201のパラメータを電圧値更新幅情報1005だけ小さい値に設定する。すなわち、ここでは標準電圧よりも電圧値更新幅情報1005だけ小さい値に設定される。次にステップS1103でアプリケーションプログラム1001を実行し、低電圧動作を含む高効率計算時の計算結果を得て、ステップS1104で正解基準データとの比較を行い、高効率計算時における計算精度の劣化の度合いを示す計算精度劣化値を取得する。
In step S1102, the parameter of the low voltage
そして、ステップS1105で、前記計算精度劣化値と精度目標値情報1004を比較し、目標とする計算精度を満たしているならばステップS1102へ移行し、低電圧設定値情報201の値をさらに電圧値更新幅情報1005だけ小さい値に設定する。N回目の試行におけるステップS1105の処理において目標とする計算精度を満たしていなければ、N−1回目の試行における低電圧設定値情報201を、アプリケーションプログラム1001における低電圧設定値情報201として得る。さらに、ステップS1110にてN−1回目の試行におけるステップS710(データ健全性チェック)でカウントした破棄データ数の平均値を目標エラー数211として得る。
In step S1105, the calculated accuracy deterioration value and accuracy
以上の構成及び処理により、ユーザがアプリケーションプログラムを意識することなく、低電圧設定値情報201と目標エラー数211の設定値を取得することができ、要求された計算精度を満たしつつ消費電力を削減した計算機システム1を実現できる。なお、ここでは低電圧設定値情報201を標準電圧から徐々に低下させる例、即ち高い電圧値から徐々に低い電圧値へ変更することによって最適パラメータを得る例を示したが、低い電圧値から徐々に高い電圧値へ変更することによって最適パラメータを得ることも可能である。
With the above configuration and processing, the user can acquire the set values of the low voltage
実施例2では、DRAMの消費電力を削減した計算機システム3の例を説明する。
In the second embodiment, an example of a
図12は、本実施例における計算機システム3の構成例である。計算機システム3はプロセッサ1810、プロセッサ1820、バス40、入出力ユニット30、DRAM1830を有している。図9と同一のコンポーネントには同一の符号を付し、説明は省略する。
FIG. 12 is a configuration example of the
プロセッサ1810、プロセッサ1820はCPUなどで構成されるプロセッサである。計算機システム3は実施例1と同じくマスタ・ワーカ構成の計算を行う計算機システムであり、プロセッサ1810はマスタ、プロセッサ1820はワーカの役割を担う。メモリ1830は本発明に係るメモリであり、DRAMなど、データの揮発を防ぐためのリフレッシュを必要とする記憶デバイスで構成される。
The
メモリ1830は、図13に示すように入出力ユニット1910、制御ユニット1920、バス1940、記憶ユニット1930で構成される。 バス1940はメモリ1830内の各コンポーネントを繋ぐためのバスである。入出力ユニット1910はバス40とメモリ1830の内部とつなぐユニットであり通信プロトコルに関する処理を行う。
The
制御ユニット1920はメモリ1830の制御部であり、記憶ユニット1930へのデータ書込み及び読出し処理や、これに伴うECC処理、さらにリフレッシュ処理などを行う。制御ユニット1920は記憶ユニット1921を有する。
The
記憶ユニット1921は、図14に示すように、第1のリフレッシュレート情報2001と第2のリフレッシュレート情報2002を有する。第1のリフレッシュレート情報2001は記憶ユニット1930の高信頼領域1931のリフレッシュレートであり、第2のリフレッシュレート情報2002は低電力領域1932のリフレッシュレートである。第1のリフレッシュレート情報2001と第2のリフレッシュレート情報2002はプロセッサ1810(マスタ)から設定される。リフレッシュレートが高いほど頻繁にリフレッシュを行うので記憶ユニットの信頼性は向上するが消費電力も増加する。このため、低電力領域1932のリフレッシュレート(第1のリフレッシュレート情報2001)は高信頼領域1931のリフレッシュレート(第2のリフレッシュレート情報2002)よりも低く設定されている。
As shown in FIG. 14, the
記憶ユニット1930は、DRAMのアレイで構成される記憶デバイスであり、高信頼領域1931と低電力領域1932を有する。高信頼領域1931は保持されるデータの故障ビット数が、制御ユニット1920が実施するECCで正しく訂正可能な範囲内になるように動作を行うアドレス領域である。低電力領域1932は、保持されるデータの故障ビット数が、制御ユニット1920が実施するECCで正しく訂正可能な範囲外になるように動作を行うアドレス領域である。即ち、低電力領域1932に書込まれたデータは、読出し時に誤りを有しながらバス40に出力される。
The
高信頼領域1931が有するデータを図15に示す。図15において、図2と同一のデータには同一の符号を付し、説明を省略する。レート変更間隔情報2102はリフレッシュレートを変更する間隔の情報である。低電力領域1932が有するデータを図16に示す。図16において、図2と同一のデータには同一の符号を付し、説明を省略する。高信頼領域1931はマスタ及びワーカの双方がアクセスする領域であり、計算機システムを制御するためのデータが格納されている。一方、低信頼領域1932はワーカがアクセスする領域であり、画像やテキストなどの入力データや計算の中間データなどが格納されている。
Data included in the
次に計算機システム3の処理フローを、図17に示す計算機システム3の動作フローチャートを用いて説明する。図17において、図7と同一の要素については同一の符号を付し、詳しい説明を省略する。
Next, a processing flow of the
並列処理において、マスタはタスクキュー作成処理(ステップS701)を行い、ワーカ起動処理(ステップS702)を行って、所定時間スリープする(ステップS704)。本実施例におけるタスクキュー作成処理では、マスタは高信頼領域1931に作成したタスクキューを格納する。その後、ステップS705では、割込み情報受信や内部タイマに基づいてアクティブ状態に遷移し、ワーカ生存確認と再起動処理(ステップS706)を行い、タスク進捗確認(ステップS707)を行う。そして、全てのタスクが完了していなければステップS704へ移行し、全てのタスクが完了していたならば得られた結果に対してデータ健全性チェック(ステップS710)を行う。ステップS2311では、実施例1におけるステップS711と同様の手段で信頼性調整処理を行う。但し、実施例1における計算機システム1ではデータ信頼性(即ち、データ中の故障ビット数又は故障ビット割合)の調整を電圧変更によって行っていたが、本実施例における計算機システム3ではデータ信頼性の調整を、DRAMのリフレッシュレートの変更によって行う点が異なる(ステップS2311)。即ち、計算機システム3では低電力領域1932のリフレッシュレートを定める第2のリフレッシュレート情報2002を変更することによって信頼性調整を行う。破棄されたデータ数が目標エラー数211よりも大きい場合はDRAM1932の信頼性を向上させるために、リフレッシュレートをより高い値へ設定する。破棄されたデータ数が目標エラー数211よりも小さい場合はDRAM1932の電力効率を向上させるために、リフレッシュレートをより低い値へ設定する。
In parallel processing, the master performs task queue creation processing (step S701), performs worker activation processing (step S702), and sleeps for a predetermined time (step S704). In the task queue creation process in this embodiment, the master stores the created task queue in the
本実施例においても、S702の処理により起動したワーカは図8の一連の処理を実行するが、低信頼領域1932に格納された入力データ208を対象として処理を実行し、その処理結果であるワーカ作業データ209を低信頼領域に格納する点が実施例1とは異なる。
Also in the present embodiment, the worker activated by the processing of S702 executes the series of processing of FIG. 8, but the processing is executed on the
以上の構成及び処理により、DRAM内の故障ビットを完全に訂正することなく、システム全体が停止することを回避した低電力な計算機システム3を実現できる。大容量DRAMを用いるシステムにおいては、DRAMが消費する電力の大部分はリフレッシュのための電力であるため、本実施例における計算機システムにより、DRAMの電力を大きく削減することが可能になる。
With the above configuration and processing, it is possible to realize a low-
Claims (10)
前記第1の動作状態の前記メモリへアクセスし、前記メモリにおけるデータエラー発生率が前記第1の動作状態よりも高い前記第2の動作状態へ遷移するように設定し、前記メモリへのアクセスを停止する第1のプロセッサと、
前記第2の動作状態の前記メモリへアクセスする第2のプロセッサとを有する計算機システム。 A memory that transitions between a first operating state and a second operating state ;
Wherein said access to the memory of the first operating state, set to the data error rate in the memory is shifted to a higher second operating state than said first operation state, access to the memory A first processor to stop;
Computer system and a second processor to access the memory of the second operating state.
前記第1のプロセッサは、前記第1の動作状態において、前記第2のプロセッサへの作業指示内容を前記メモリに格納し、
前記第2のプロセッサは、前記第2の動作状態において、前記メモリから作業指示内容を読み出して処理を実行することを特徴とする計算機システム。 A computer system according to claim 1, wherein
In the first operation state , the first processor stores work instruction contents for the second processor in the memory,
In the second operation state , the second processor reads out work instruction contents from the memory and executes processing.
前記第2の動作状態は、前記メモリにおいて1ビット以上の訂正不可能なデータエラーが発生する状態であることを特徴とする計算機システム。 A computer system according to claim 2, wherein
The computer system according to claim 2, wherein the second operation state is a state in which an uncorrectable data error of 1 bit or more occurs in the memory.
テストパターンを入力データとした処理を実行した結果に基づき、前記第2の動作状態を決定することを特徴とする計算機システム。 A computer system according to claim 2, wherein
A computer system, wherein the second operation state is determined based on a result of executing processing using a test pattern as input data.
前記第2のプロセッサには、前記メモリの第1の記憶領域が使用可能な記憶領域として割り当てられており、
前記第1のプロセッサは、前記第2のプロセッサが動作しているかを確認し、動作していない場合は、前記第1の記憶領域に換えて第2の記憶領域を前記第2のプロセッサに割り当て、前記第2のプロセッサを再起動させることを特徴とする計算機システム。 A computer system according to claim 2, wherein
In the second processor, the first storage area of the memory is allocated as a usable storage area,
The first processor checks whether the second processor is operating, and if not, allocates a second storage area to the second processor instead of the first storage area A computer system, wherein the second processor is restarted.
前記第1のプロセッサは、前記第2のプロセッサの処理結果が所定の条件を満たすかを確認し、満たしていない場合は、前記第2のプロセッサに指示した作業を再実行させることを特徴とする計算機システム。 A computer system according to claim 2, wherein
The first processor checks whether a processing result of the second processor satisfies a predetermined condition, and re-executes an operation instructed to the second processor if the predetermined result is not satisfied. Computer system.
前記メモリはSRAM(Static Random Access Memory)であり、
前記第1及び前記第2の動作状態は前記メモリの動作電圧により決定され、前記第2の動作状態における動作電圧は前記第1の動作状態における動作電圧よりも低いことを特徴とする計算機システム。 A computer system according to claim 2, wherein
The memory is SRAM (Static Random Access Memory),
The computer system characterized in that the first and second operating states are determined by an operating voltage of the memory, and the operating voltage in the second operating state is lower than the operating voltage in the first operating state.
前記第1のプロセッサは、前記第1の動作状態の前記メモリへアクセスし、前記メモリにおけるデータエラー発生率が前記第1の動作状態よりも高い前記第2の動作状態へ遷移するように設定し、前記メモリへのアクセスを停止し、
前記第2のプロセッサは、前記第2の動作状態の前記メモリへアクセスする、計算機システムの制御方法。 A control method for a computer system comprising a first and a second processor and a memory that transitions between a first operating state and a second operating state ,
Said first processor, said access to the memory of the first operating state, set to the data error rate in the memory is shifted to a higher second operating state than the first operating state , Stop accessing the memory,
The second processor accesses to the memory of the second operating state, the control method of the computer system.
前記第1のプロセッサは、前記第1の動作状態において、前記第2のプロセッサへの作業指示内容を前記メモリに格納し、
前記第2のプロセッサは、前記第2の動作状態において、前記メモリから作業指示内容を読み出して処理を実行する、計算機システムの制御方法。 A control method for a computer system according to claim 8 , comprising:
In the first operation state , the first processor stores work instruction contents for the second processor in the memory,
Said second processor, said in a second operating state, performs the process by reading the work instruction contents from the memory, the control method of the computer system.
前記メモリはSRAM(Static Random Access Memory)であり、
前記第1及び前記第2の動作状態は前記メモリの動作電圧により決定され、前記第2の動作状態における動作電圧は前記第1の動作状態における動作電圧よりも低いことを特徴とする計算機システムの制御方法。 A control method for a computer system according to claim 9 , comprising:
The memory is SRAM (Static Random Access Memory),
The computer system characterized in that the first and second operation states are determined by an operation voltage of the memory, and the operation voltage in the second operation state is lower than the operation voltage in the first operation state. Control method.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/082759 WO2015083276A1 (en) | 2013-12-06 | 2013-12-06 | Information processing system and method for controlling information processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2015083276A1 JPWO2015083276A1 (en) | 2017-03-16 |
JP6247314B2 true JP6247314B2 (en) | 2017-12-13 |
Family
ID=53273068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015551349A Expired - Fee Related JP6247314B2 (en) | 2013-12-06 | 2013-12-06 | Computer system and computer system control method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6247314B2 (en) |
WO (1) | WO2015083276A1 (en) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06332931A (en) * | 1993-05-19 | 1994-12-02 | Sumitomo Electric Ind Ltd | Parallel operation processing method for lu decomposition |
JP4669673B2 (en) * | 2004-07-02 | 2011-04-13 | 株式会社リコー | Memory exclusive control device, image processing device, and image forming device |
JP5196449B2 (en) * | 2008-01-07 | 2013-05-15 | 公益財団法人新産業創造研究機構 | Semiconductor memory and program |
JP5226094B2 (en) * | 2011-02-23 | 2013-07-03 | 株式会社半導体理工学研究センター | Semiconductor memory device |
JP5568048B2 (en) * | 2011-04-04 | 2014-08-06 | 株式会社日立製作所 | Parallel computer system and program |
JP5709001B2 (en) * | 2011-09-05 | 2015-04-30 | 株式会社日立製作所 | Computer system and computer |
-
2013
- 2013-12-06 JP JP2015551349A patent/JP6247314B2/en not_active Expired - Fee Related
- 2013-12-06 WO PCT/JP2013/082759 patent/WO2015083276A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2015083276A1 (en) | 2015-06-11 |
JPWO2015083276A1 (en) | 2017-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9645829B2 (en) | Techniques to communicate with a controller for a non-volatile dual in-line memory module | |
US8417989B2 (en) | Method and system for extra redundancy in a raid system | |
US8601347B1 (en) | Flash memory device and storage control method | |
JPH11213659A (en) | Apparatus and method for control of refresh interval as well as computer | |
US10241678B2 (en) | Data storage device and data writing method capable of avoiding repeated write operation of a TLC block when interrupted | |
JP2012133642A (en) | Memory device, memory control method, and program | |
TW201430848A (en) | RAM refresh rate | |
US9513838B2 (en) | Method and apparatus for processing system command during memory backup | |
US10037172B2 (en) | Memory system and controlling method | |
US11042310B2 (en) | Reading of start-up information from different memory regions of a memory system | |
JP2019192032A (en) | Storage system and cluster structure control method | |
US10725856B2 (en) | Error correction to reduce a failure in time rate | |
US10908991B2 (en) | Bit error protection in cache memories | |
US20220012147A1 (en) | System and device for data recovery for ephemeral storage | |
CN105408869A (en) | Invoking error handler to handle uncorrectable error | |
US20170371785A1 (en) | Techniques for Write Commands to a Storage Device | |
US10346072B1 (en) | Dislocated power loss protection charge storage | |
TWI684988B (en) | Error handling method, associated data storage device and controller thereof | |
JP6247314B2 (en) | Computer system and computer system control method | |
US9454437B2 (en) | Non-volatile logic based processing device | |
CN110765041B (en) | Self-adaptive Nand Flash read-write speed adjusting system | |
US9760145B2 (en) | Saving the architectural state of a computing device using sectors | |
JP2014059831A (en) | Memory refresh device, information processing system, memory refresh method, and computer program | |
CN104167224A (en) | Method for reducing DRAM soft error | |
US9245633B2 (en) | Storage device, electronic device, and method for programming memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170404 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170524 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20171024 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171116 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6247314 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |