[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6247314B2 - Computer system and computer system control method - Google Patents

Computer system and computer system control method Download PDF

Info

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
Application number
JP2015551349A
Other languages
Japanese (ja)
Other versions
JPWO2015083276A1 (en
Inventor
真生 濱本
真生 濱本
山岡 雅直
雅直 山岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2015083276A1 publication Critical patent/JPWO2015083276A1/en
Application granted granted Critical
Publication of JP6247314B2 publication Critical patent/JP6247314B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting 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, Patent Document 1 discloses a technique for correcting errors in data stored by error correction coding (ECC) or data multiplexing. Further, in Patent Document 2, in order to cope with a difference in necessary threshold voltage due to deterioration of a memory chip, a parameter that determines an electrical characteristic of a signal used for writing or reading data with respect to the memory chip is changed and set to an appropriate value. Technology is disclosed.

特表2008−521160Special table 2008-521160 特開2012−68825JP2012-68825A

特許文献1および特許文献2のように、全てのデータに対し、誤りを完全に訂正する場合、信頼性維持コストが増大する。例えば、ECCを適用する場合、符号化および訂正処理のために電力を消費する。また、SRAMにおいては電圧を高める、DRAMにおいてはリフレッシュレートの頻度を上げることで、動作マージンを拡大することが可能だが、消費電力も増加する。このように、記憶デバイスの信頼性維持には多大な電力コストが必要であり、半導体微細化が進むほどその信頼性維持コストは増大する。   As in Patent Document 1 and Patent Document 2, when errors are completely corrected for all data, the reliability maintenance cost increases. For example, when ECC is applied, power is consumed for encoding and correction processing. In addition, by increasing the voltage in the SRAM and increasing the frequency of the refresh rate in the DRAM, the operation margin can be expanded, but the power consumption also increases. As described above, a large amount of power cost is required to maintain the reliability of the storage device, and the reliability maintenance cost increases as the semiconductor becomes finer.

また、今後、大規模データを用いた学習・認識処理などのアプリケーションの台頭が予想されている。このようなアプリケーションでは多量の計算を行うため、大容量の記憶デバイスを必要とする。このため、記憶デバイスの大容量化に伴う信頼性維持コストの増加が、特に問題となってくる。   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.

SRAMを備えたプロセッサの構成例を示す図である。It is a figure which shows the structural example of the processor provided with SRAM. SRAMが保有するデータを示す図である。It is a figure which shows the data which SRAM has. プロセッサの並列計算処理を説明する図である。It is a figure explaining the parallel calculation processing of a processor. ワーカが使用するSRAM上のアドレス領域のデータ配置を示す図である。It is a figure which shows the data arrangement | positioning of the address area | region on SRAM which a worker uses. ワーカが使用するSRAM上のアドレス領域のデータ配置を示す図である。It is a figure which shows the data arrangement | positioning of the address area | region on SRAM which a worker uses. ワーカが使用するSRAM上のアドレス領域のデータ配置を示す図である。It is a figure which shows the data arrangement | positioning of the address area | region on SRAM which a worker uses. 並列計算処理におけるマスタの動作フローチャートを示す図である。It is a figure which shows the operation | movement flowchart of the master in parallel calculation processing. 並列計算処理におけるワーカの動作フローチャートを示す図である。It is a figure which shows the operation | movement flowchart of the worker in a parallel calculation process. 計算機システムの構成例を示す図である。It is a figure which shows the structural example of a computer system. メモリが保有するデータを示す図である。It is a figure which shows the data which a memory holds. 計算機システムのパラメータ調整用プログラムの処理フローチャートである。It is a process flowchart of the program for parameter adjustment of a computer system. 計算機システムの構成例を示す図である。It is a figure which shows the structural example of a computer system. メモリの構成例を示す図である。It is a figure which shows the structural example of a memory. メモリの制御ユニットが保有するデータを示す図である。It is a figure which shows the data which the control unit of memory has. メモリの記憶ユニットの高信頼領域が保有するデータを示す図である。It is a figure which shows the data which the high reliability area | region of the memory | storage unit of a memory holds. メモリの記憶ユニットの低電力領域が保有するデータを示す図である。It is a figure which shows the data which the low power area | region of the memory | storage unit of a memory holds. 計算機システムの動作フローチャートを示す図である。It is a figure which shows the operation | movement flowchart of a computer system.

実施例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 processor 10 including an SRAM. The processor 10 is a multi-core processor having a plurality of processor cores, and includes a CPU 110, a CPU 120, a bus 130, an input / output unit 140, an SRAM 150, a timer 160, and a voltage / frequency control unit 170.

CPU110は、マスタ・ワーカ方式の並列処理において、マスタの役割をする演算コアであり、CPU120は、ワーカの役割をする演算コアである。CPU120は、命令キャッシュ121とロード/ストアユニット122を有する。   The CPU 110 is an arithmetic core that serves as a master in the master-worker parallel processing, and the CPU 120 is an arithmetic core that serves as a worker. The CPU 120 includes an instruction cache 121 and a load / store unit 122.

命令キャッシュ121は、命令データを格納するキャッシュメモリであり、メモリセルのトランジスタサイズが大きい、又はトランジスタ数が多いなど、低電圧動作においても高信頼に動作できるように作られている。ロード/ストアユニット122は、CPU120のデータをSRAM150へ書込む処理と、SRAM150のデータをCPU120から読出す処理を行うユニットである。   The instruction cache 121 is a cache memory that stores instruction data, and is configured to be able to operate with high reliability even in a low-voltage operation, such as a large memory cell transistor size or a large number of transistors. The load / store unit 122 is a unit that performs processing for writing the data of the CPU 120 to the SRAM 150 and processing for reading the data of the SRAM 150 from the CPU 120.

バス130は、プロセッサ10に存在する各モジュールを繋ぐユニットである。入出力ユニット140は、プロセッサ10と外部システムを繋ぐユニットである。SRAM150は、CPU110(マスタ)とCPU120(ワーカ)が計算に使用するデータが格納される共有メモリであり、例えば図2に示すデータを格納する。   The bus 130 is a unit that connects modules existing in the processor 10. The input / output unit 140 is a unit that connects the processor 10 and an external system. The SRAM 150 is a shared memory in which data used for calculation by the CPU 110 (master) and the CPU 120 (worker) is stored. For example, the data shown in FIG. 2 is stored.

タイマ160は、時間をカウントするタイマであり、CPU110から受信した低電圧設定値情報201と電圧変更間隔情報202を含む制御情報111に基づいて、電圧/周波数制御ユニット170へ電圧変更指示を含む制御情報161を出力し、CPU110へ電圧変更完了を示す情報を含む割込み情報162を出力する。   The timer 160 is a timer that counts time, and based on the control information 111 including the low voltage set value information 201 and the voltage change interval information 202 received from the CPU 110, a control including a voltage change instruction to the voltage / frequency control unit 170. Information 161 is output, and interrupt information 162 including information indicating completion of voltage change is output to the CPU 110.

電圧/周波数制御ユニット170は、プロセッサ10の動作電圧および動作周波数を変更するユニットである。本実施形態では、電圧/周波数制御ユニット170により、CPU110とCPU120の電圧の制御を共通して行うが、異なる電圧/周波数制御ユニットにより独立した制御を行ってもよい。   The voltage / frequency control unit 170 is a unit that changes the operating voltage and operating frequency of the processor 10. In this embodiment, the voltage of the CPU 110 and the CPU 120 is commonly controlled by the voltage / frequency control unit 170, but independent control may be performed by different voltage / frequency control units.

図2は、SRAM150に格納されるデータの一例である。低電圧設定値情報201は、低電圧状態の動作電圧と、該動作電圧でCPU110およびCPU120が動作可能な動作周波数の情報である。電圧変更間隔情報202は、プロセッサ10の動作電圧を変更する時間間隔の情報である。アドレスオフセット情報203は、CPU110がCPU120へ割り当てるSRAM150上の記憶領域のアドレスオフセット情報である。   FIG. 2 is an example of data stored in the SRAM 150. The low voltage set value information 201 is information on an operating voltage in a low voltage state and an operating frequency at which the CPU 110 and the CPU 120 can operate at the operating voltage. The voltage change interval information 202 is time interval information for changing the operating voltage of the processor 10. The address offset information 203 is address offset information of a storage area on the SRAM 150 that the CPU 110 assigns to the CPU 120.

タスク管理情報204は、CPU110がCPU120へ与えるタスクの管理情報であり、どのワーカ(CPU120)がどのタスクを処理していて、全体としてどれだけのタスクが完了しているかなどを示す情報である。タスクキュー205はCPU110がCPU120へ与えるタスクのキューであり、ワーカ(CPU120)はタスクキュー205のタスクが無くなるまで、タスクキュー205からタスクを受け取って処理する。   The task management information 204 is task management information given to the CPU 120 by the CPU 110, and is information indicating which worker (CPU 120) is processing which task and how many tasks are completed as a whole. The task queue 205 is a queue of tasks that the CPU 110 gives to the CPU 120. The worker (CPU 120) receives and processes tasks from the task queue 205 until there are no more tasks in the task queue 205.

タスク計算結果情報206は、CPU120(ワーカ)が処理したタスクの計算結果の情報であり、計算結果の配置アドレス情報などCPU110(マスタ)が計算結果を取得するための情報である。マスタ作業データ207は、CPU110(マスタ)が処理の途中に生成するデータである。ワーカ作業データ208は、CPU120(ワーカ)が処理の途中に生成するデータである。   The task calculation result information 206 is information on the calculation result of the task processed by the CPU 120 (worker), and is information for the CPU 110 (master) to acquire the calculation result, such as arrangement address information of the calculation result. The master work data 207 is data generated by the CPU 110 (master) during the processing. The worker work data 208 is data generated by the CPU 120 (worker) during the processing.

入力データ209は、計算の対象となる入力データであり、例えば機械学習の教師データとなる画像データである。生存確認情報210は、ワーカの生存状況を確認するための情報である。目標エラー数211は、プロセッサ10がプログラム実行中の所定処理でカウントするエラーデータ数の目標値である。許容エラー数212は、プロセッサ10がプログラム実行中の所定部分の処理でカウントするエラーデータ数において、アプリケーションが許容可能な閾値である。   The input data 209 is input data to be calculated, for example, image data to be machine learning teacher data. The survival confirmation information 210 is information for confirming the worker's survival status. The target error number 211 is a target value for the number of error data that the processor 10 counts in a predetermined process during program execution. The allowable error number 212 is a threshold that the application can tolerate in the number of error data counted by the processor 10 in the processing of a predetermined part during program execution.

図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 processor 10. First, the CPU 110 (master) performs processing 301 up to the time before performing parallel processing in a standard voltage state. Thereafter, in a process 302, a task queue creation process and a worker activation process 321 are performed. The CPU 120 (worker) performs worker activation processing 311 and notifies the master of completion. The master that has confirmed the completion of all worker activations sets the low voltage set value information 201 and the voltage change interval information 202 in the timer 160, and performs the sleep process 303.

タイマ160は、低電圧設定値情報201に基づいて電圧/周波数制御ユニット170へ動作電圧および動作周波数の設定値変更指示(制御情報161)を出力する。電圧/周波数制御ユニット170は、タイマ160からの設定値変更指示に基づいて動作電圧および動作周波数を変更し、プロセッサ10を低電圧の状態にする。ワーカは、タスクキュー205よりタスクを取得し、入力データ209を用いてタスク処理312を行う。ワーカは、取得したタスクの処理が完了すると、タスク計算結果の格納アドレスをタスク計算結果情報206としてSRAM150に書込み、タスクキュー205から新たなタスクを取得して処理する。ワーカは、タスクキュー205のタスクがなくなるまでこれを繰り返す。   The timer 160 outputs an operation voltage and an operation frequency setting value change instruction (control information 161) to the voltage / frequency control unit 170 based on the low voltage setting value information 201. The voltage / frequency control unit 170 changes the operating voltage and the operating frequency based on the setting value change instruction from the timer 160, and puts the processor 10 into a low voltage state. The worker acquires a task from the task queue 205 and performs task processing 312 using the input data 209. When the processing of the acquired task is completed, the worker writes the storage address of the task calculation result to the SRAM 150 as the task calculation result information 206, and acquires and processes a new task from the task queue 205. The worker repeats this until there are no more tasks in the task queue 205.

タイマ160は、電圧変更間隔情報202に基づいた所定時間経過後に、電圧/周波数制御ユニット170へ標準電圧への設定値変更指示(制御情報161)を出力し、電圧変更後にマスタに割込み情報162を出力する。割込み情報162を受信したマスタは、タスクの進捗状況確認とワーカの生存状況の確認などを行う管理処理304を行う。ここで、あるワーカ(ワーカ2)が低電圧状態でのSRAM150にアクセスし、ポインタのデータが破損するなどによって停止するアクシデント313が発生していた場合、マスタはワーカ2の再起動処理322を実行する。再起動処理322においては、マスタは再起動するワーカが使用するSRAM150上のアドレス領域のオフセット値を変更する。これにより、再起動したワーカ(ワーカ2)は前回とは異なるアドレス領域にアクセスすることになるため、アクシデント313と同一の原因で停止することを回避することができる。   The timer 160 outputs a setting value change instruction (control information 161) to the standard voltage to the voltage / frequency control unit 170 after a predetermined time based on the voltage change interval information 202, and after the voltage change, the interrupt information 162 is sent to the master. Output. The master that has received the interrupt information 162 performs management processing 304 for confirming the progress status of the task and the survival status of the worker. Here, when a worker (worker 2) accesses the SRAM 150 in a low voltage state and an accident 313 that stops due to corruption of pointer data or the like has occurred, the master executes the restart process 322 of the worker 2 To do. In the restart process 322, the master changes the offset value of the address area on the SRAM 150 used by the worker to be restarted. As a result, the restarted worker (worker 2) accesses an address area different from the previous one, so that it is possible to avoid stopping due to the same cause as the accident 313.

生存状況の確認は、SRAM150上の生存確認情報210のデータをワーカが定期的にカウントアップし、マスタがこれを観測するなどによって行うことができる。管理処理304において全てのタスクが完了していなければ、マスタは処理302と同様にタイマ160へ制御情報111を出力し、スリープ処理303を行う。管理処理304において全てのタスクが完了している場合は、ワーカにタスク終了通知323を通知し、後処理305を行う。   The survival status can be confirmed by periodically counting up the data of the survival confirmation information 210 on the SRAM 150 and observing the data by the master. If all the tasks are not completed in the management process 304, the master outputs the control information 111 to the timer 160 and performs the sleep process 303 as in the process 302. When all the tasks are completed in the management process 304, the task end notification 323 is notified to the worker, and the post-processing 305 is performed.

このようにマスタがSRAM150へアクセスする際には、常にSRAM150の電圧が標準電圧の状態であるようにすることによって、マスタが保有するデータを正しく保持することができる。また、タスクキュー205、タスク計算結果情報206と生存確認情報210はSRAM150上で三重化して保持されており、低電圧状態でも高信頼(訂正処理によって完全にデータ復元が可能である状態)にデータアクセスができる。一方、ワーカがSRAM150にアクセスする際は、SRAM150の電圧を低電圧の状態にすることにより、SRAM150の消費電力を削減することができる。   Thus, when the master accesses the SRAM 150, the data held by the master can be correctly held by always setting the SRAM 150 voltage to the standard voltage state. Further, the task queue 205, task calculation result information 206, and survival confirmation information 210 are held in triplicate on the SRAM 150, and data is highly reliable (data can be completely restored by correction processing) even in a low voltage state. It can be accessed. On the other hand, when the worker accesses the SRAM 150, the power consumption of the SRAM 150 can be reduced by setting the voltage of the SRAM 150 to a low voltage state.

次に、CPU110(マスタ)が再起動するCPU120(ワーカ)が使用するSRAM150上のアドレス領域のデータ配置を変更する手段を、図4、図5、図6を用いて説明する。図4、図5、図6はワーカが使用するアドレス領域のデータ配置を示す図である。マスタは、ワーカ起動時にワーカが作業に使うアドレス領域を実際に割当てるサイズよりも大きく確保し、ワーカへSRAM150上のアドレス領域のオフセット値とインデックス値を設定し、ワーカが使用可能なアドレス領域を割当てる。オフセット値はワーカへ割当てるアドレス領域の物理的な先頭アドレスであり、インデックス値はワーカへ割当てたアドレス領域内の論理的な先頭アドレスである。   Next, means for changing the data arrangement of the address area on the SRAM 150 used by the CPU 120 (worker) that is restarted by the CPU 110 (master) will be described with reference to FIGS. 4, 5, and 6. 4, 5, and 6 are diagrams showing the data arrangement of the address area used by the worker. The master secures an address area that the worker uses for work when starting the worker larger than the size that is actually allocated, sets an offset value and an index value of the address area on the SRAM 150 to the worker, and allocates an address area that can be used by the worker . The offset value is the physical start address of the address area assigned to the worker, and the index value is the logical start address in the address area assigned to the worker.

図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 address area 401 to the worker 1, assigns an address area 410 to the worker 1 by setting the address 411 as an offset value (start address), and the remaining address area 451. Is a margin area. Similarly, the address area 402 is allocated to the worker 2, and the address area 420 is assigned by setting the address 421 as an offset value. The initial value of the index value is set as zero. Information regarding the address offset of the worker possessed by the master is stored in the SRAM 150 as address offset information 203, and the offset value and index value possessed by the worker are stored in the load / store unit 122 of the worker.

ここで、ワーカ2を再起動させる場合、図5に示すように、マスタはワーカ2のオフセット値をアドレス422に変更して再起動する。これにより、ワーカ2のデータ配置が変更されるため、同一の原因でワーカ2が何度も停止する事象を回避できる。   Here, when restarting the worker 2, as shown in FIG. 5, the master changes the offset value of the worker 2 to the address 422 and restarts. Thereby, since the data arrangement of the worker 2 is changed, an event in which the worker 2 stops many times due to the same cause can be avoided.

オフセット値変更を行ってもワーカ2が繰り返し停止する場合、マスタは図6に示すように、ワーカ2のインデックス値を変更する。ワーカ2のロード/ストアユニット122は変更されたインデックス値に従って、アドレス領域420内でデータを配置するアドレスをリングシフトすることによってデータ配置の変更を行う。図4ではワーカ2のオフセット値がアドレス422と設定されており、インデックス値の変更に従ってアドレス422がワーカ2の論理的な先頭アドレスとなるようにアドレス変換を行った例を示している。   If the worker 2 repeatedly stops even after changing the offset value, the master changes the index value of the worker 2 as shown in FIG. The load / store unit 122 of the worker 2 changes the data arrangement by ring-shifting the address where the data is arranged in the address area 420 according to the changed index value. FIG. 4 shows an example in which the offset value of the worker 2 is set to the address 422 and the address conversion is performed so that the address 422 becomes the logical start address of the worker 2 in accordance with the change of the index value.

このようにデータ配置の変更を行うことによって、再起動したワーカが過去に停止した原因と同一の原因で何度も停止を繰り返すことを回避することができる。   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 processor 10 will be described with reference to FIGS. 7 and 8. FIG. 7 is a flowchart of processing performed by the CPU 110 (master) of the processor 10. First, the master executes task queue 205 creation processing (step S701). Here, the information in the task queue 205 is written with high reliability by triple or the like. Thus, the worker can acquire accurate information from the task queue 205 even when the SRAM 150 is in a low voltage state. Since the information in the task queue 205 is very small compared to the whole, the power loss caused by the triple operation is very small. Thereafter, worker activation processing (step S702) is performed, low voltage set value information 201 and voltage change interval information 202 are set in the timer 160 as voltage change processing (step S703), and the process proceeds to sleep processing (step S704). When the master receives the interrupt information 162 from the timer 160 (step S705), the master cancels the sleep process, moves to step S706, and performs worker survival confirmation and worker restart processing. Thereafter, the task management information 204 is referred to in step S707 to check the progress of the task processing status. If all the tasks in the task queue 205 have been processed, the task end notification 323 is sent to all the CPUs 120 (workers). Is transferred to step S710, and if all the tasks in the task queue 205 have not been processed, branch processing (step S708) of shifting to S703 is performed.

ステップ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 target error number 211. The reliability is adjusted by changing the voltage value of the low voltage set value information 201. When the number of discarded data is larger than the target error number 211, the voltage value is set to a higher value in order to improve the reliability of the SRAM 150. When the number of discarded data is smaller than the target error number 211, the voltage value is set to a lower value in order to improve the power efficiency of the SRAM 150. In step S711, when the number of calculation results that do not satisfy the predetermined format is equal to or greater than the allowable error number 212, all of the worker calculation results are discarded, and the process proceeds to step S703 to retry the calculation. Process. The computer system including the processor 10 has an API (Application Programming Interface) that allows the user to easily set the low voltage set value information 201, the target error number 211, and the allowable error number 212. Note that if the number of errors is not particularly finely adjusted to maintain accuracy, the computer system including the processor 10 can omit step S711.

図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 task queue 205 in step S801, and proceeds to step S820 if all tasks are completed as step S802, and to S810 if unprocessed tasks remain. Transition. In S820, the process waits until the task end notification 323 is received from the master, and the worker ends the process. In S810, the task is acquired from the task queue 205, and the acquired task identification number and its own worker identification number are written in the task management information 204 so that it can be understood which worker has acquired which task. The task acquired as step S811 is processed. The calculation result of the task processed in step S812 is output to the SRAM 150, and the task identification number that has been processed and its worker identification number are written to the task management information 204 so that it can be seen that the processing of the acquired task has been completed. Include. Here, the data of the task management information 204 is written with high reliability by triple or the like. In the flow from S801 to S820, the worker updates the survival confirmation information 210 at a predetermined interval.

以上の構成及び処理により、SRAM内の故障ビットを完全に訂正することなく、システム全体が停止することを回避した低電力なプロセッサ10を実現できる。   With the above configuration and processing, it is possible to realize the low-power processor 10 that avoids the entire system from being stopped without completely correcting the failure bit in the SRAM.

次に、図9、図10、図11を用いて、プロセッサ10の低電圧設定値情報201と目標エラー数211を設定する手段を説明する。図7に示したステップS711の信頼性調整処理では、プログラム中にその目標エラー数211を設定する必要がある。プロセッサ10を含む計算機システムをユーザに提供する場合、ユーザがアプリケーションプログラムを意識して目標エラー数211などのパラメータを設定することが困難な場合がある。そのような場合、ユーザはパラメータ調整用プログラム1003を実行することにより、アプリケーションプログラムを意識することなく最適なパラメータを設定できる。パラメータ調整用プログラム1003は、ユーザが準備したパラメータ調整用のテストデータと予め設定された計算結果の精度目標値情報を用いてアプリケーションプログラムをプロセッサ10の上で実行することによって、計算結果の精度が目標値を満たす範囲で電力が最も下がる低電圧設定値情報201を取得し、さらに目標エラー数211を取得する。   Next, means for setting the low voltage set value information 201 and the target error number 211 of the processor 10 will be described with reference to FIGS. 9, 10, and 11. In the reliability adjustment process of step S711 shown in FIG. 7, it is necessary to set the target error number 211 in the program. When a computer system including the processor 10 is provided to the user, it may be difficult for the user to set parameters such as the target error number 211 in consideration of the application program. In such a case, the user can set an optimum parameter without being aware of the application program by executing the parameter adjustment program 1003. The parameter adjustment program 1003 executes the application program on the processor 10 using the test data for parameter adjustment prepared by the user and the accuracy target value information of the calculation result set in advance, thereby improving the accuracy of the calculation result. The low voltage set value information 201 in which the power is the lowest within the range satisfying the target value is acquired, and the target error number 211 is acquired.

図9は、プロセッサ10を含む計算機システム1の構成例を示す図である。メモリ20は、DRAMなどで構成されるメモリである。メモリ20には図10に示す情報が格納される。入出力ユニット30は外部システムと計算機システム1を繋ぐユニットである。バス40は計算機システム1の各コンポーネントを繋ぐバスである。   FIG. 9 is a diagram illustrating a configuration example of the computer system 1 including the processor 10. The memory 20 is a memory composed of a DRAM or the like. Information shown in FIG. 10 is stored in the memory 20. The input / output unit 30 is a unit that connects the external system and the computer system 1. The bus 40 is a bus that connects the components of the computer system 1.

図10は、メモリ20に格納されたデータの一例である。アプリケーションプログラム1001は、パラメータ調整対象となるアプリケーションプログラムである。テストデータ1002は、低電圧設定値情報201と目標エラー数211のパラメータを調整するための入力テストデータである。パラメータ調整用プログラム1003は、アプリケーションプログラム1001の最適パラメータを探索するためのプログラムである。精度目標値情報1004は、許容可能な精度劣化を規定する基準情報である。   FIG. 10 is an example of data stored in the memory 20. The application program 1001 is an application program that is a parameter adjustment target. Test data 1002 is input test data for adjusting the parameters of the low voltage set value information 201 and the target error number 211. The parameter adjustment program 1003 is a program for searching for the optimum parameter of the application program 1001. The accuracy target value information 1004 is reference information that defines allowable accuracy degradation.

図11のパラメータ調整用プログラム1003のフローチャートを用いて、ユーザがアプリケーションプログラムを意識することなく、低電圧設定値情報201と目標エラー数211の設定値を取得する方法を説明する。まず、計算機システム1は正解基準データ生成(ステップS1101)を行う。正解基準データは、プロセッサ10の低電圧設定値情報201を標準電圧値として実行する(すなわち、全ての処理を標準電圧で実行する)ことによって得られる高信頼計算時における計算結果であり、低電圧動作を含む高効率計算時の計算結果と比較するために使用されるデータである。   A method for acquiring the setting values of the low voltage setting value information 201 and the target error number 211 without the user being aware of the application program will be described using the flowchart of the parameter adjustment program 1003 in FIG. First, the computer system 1 performs correct reference data generation (step S1101). The correct reference data is a calculation result at the time of high-reliability calculation obtained by executing the low voltage set value information 201 of the processor 10 as a standard voltage value (that is, executing all processes at the standard voltage). It is data used for comparison with the calculation result at the time of high efficiency calculation including operation.

ステップS1102で、低電圧設定値情報201のパラメータを電圧値更新幅情報1005だけ小さい値に設定する。すなわち、ここでは標準電圧よりも電圧値更新幅情報1005だけ小さい値に設定される。次にステップS1103でアプリケーションプログラム1001を実行し、低電圧動作を含む高効率計算時の計算結果を得て、ステップS1104で正解基準データとの比較を行い、高効率計算時における計算精度の劣化の度合いを示す計算精度劣化値を取得する。   In step S1102, the parameter of the low voltage set value information 201 is set to a value smaller by the voltage value update width information 1005. That is, here, the voltage value update width information 1005 is set to a value smaller than the standard voltage. Next, in step S1103, the application program 1001 is executed to obtain a calculation result at the time of high efficiency calculation including low voltage operation. In step S1104, the result is compared with the correct answer reference data, and the calculation accuracy deteriorates at the time of high efficiency calculation. A calculation accuracy deterioration value indicating the degree is acquired.

そして、ステップ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 target value information 1004 are compared. If the target calculation accuracy is satisfied, the process proceeds to step S1102, and the value of the low voltage set value information 201 is further converted to a voltage value. The update width information 1005 is set to a small value. If the target calculation accuracy is not satisfied in the process of step S1105 in the Nth trial, the low voltage setting value information 201 in the N-1th trial is obtained as the low voltage setting value information 201 in the application program 1001. Further, in step S1110, an average value of the number of discarded data counted in step S710 (data integrity check) in the N-1th trial is obtained as the target error number 211.

以上の構成及び処理により、ユーザがアプリケーションプログラムを意識することなく、低電圧設定値情報201と目標エラー数211の設定値を取得することができ、要求された計算精度を満たしつつ消費電力を削減した計算機システム1を実現できる。なお、ここでは低電圧設定値情報201を標準電圧から徐々に低下させる例、即ち高い電圧値から徐々に低い電圧値へ変更することによって最適パラメータを得る例を示したが、低い電圧値から徐々に高い電圧値へ変更することによって最適パラメータを得ることも可能である。   With the above configuration and processing, the user can acquire the set values of the low voltage set value information 201 and the target error number 211 without being aware of the application program, and reduce power consumption while satisfying the required calculation accuracy. The computer system 1 can be realized. Here, an example in which the low voltage set value information 201 is gradually decreased from the standard voltage, that is, an example in which an optimum parameter is obtained by gradually changing from a high voltage value to a low voltage value is shown. It is also possible to obtain optimum parameters by changing to a higher voltage value.

実施例2では、DRAMの消費電力を削減した計算機システム3の例を説明する。   In the second embodiment, an example of a computer system 3 in which the power consumption of the DRAM is reduced will be described.

図12は、本実施例における計算機システム3の構成例である。計算機システム3はプロセッサ1810、プロセッサ1820、バス40、入出力ユニット30、DRAM1830を有している。図9と同一のコンポーネントには同一の符号を付し、説明は省略する。   FIG. 12 is a configuration example of the computer system 3 in this embodiment. The computer system 3 includes a processor 1810, a processor 1820, a bus 40, an input / output unit 30, and a DRAM 1830. The same components as those in FIG. 9 are denoted by the same reference numerals, and description thereof is omitted.

プロセッサ1810、プロセッサ1820はCPUなどで構成されるプロセッサである。計算機システム3は実施例1と同じくマスタ・ワーカ構成の計算を行う計算機システムであり、プロセッサ1810はマスタ、プロセッサ1820はワーカの役割を担う。メモリ1830は本発明に係るメモリであり、DRAMなど、データの揮発を防ぐためのリフレッシュを必要とする記憶デバイスで構成される。   The processor 1810 and the processor 1820 are processors configured by a CPU or the like. The computer system 3 is a computer system that performs the calculation of the master-worker configuration as in the first embodiment. The processor 1810 serves as a master and the processor 1820 serves as a worker. The memory 1830 is a memory according to the present invention, and is composed of a storage device such as a DRAM that requires refreshing to prevent data volatilization.

メモリ1830は、図13に示すように入出力ユニット1910、制御ユニット1920、バス1940、記憶ユニット1930で構成される。 バス1940はメモリ1830内の各コンポーネントを繋ぐためのバスである。入出力ユニット1910はバス40とメモリ1830の内部とつなぐユニットであり通信プロトコルに関する処理を行う。   The memory 1830 includes an input / output unit 1910, a control unit 1920, a bus 1940, and a storage unit 1930 as shown in FIG. A bus 1940 is a bus for connecting components in the memory 1830. The input / output unit 1910 is a unit that connects the bus 40 and the inside of the memory 1830, and performs processing related to the communication protocol.

制御ユニット1920はメモリ1830の制御部であり、記憶ユニット1930へのデータ書込み及び読出し処理や、これに伴うECC処理、さらにリフレッシュ処理などを行う。制御ユニット1920は記憶ユニット1921を有する。   The control unit 1920 is a control unit of the memory 1830, and performs data writing and reading processing to the storage unit 1930, ECC processing associated therewith, and further refresh processing. The control unit 1920 has a storage unit 1921.

記憶ユニット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 storage unit 1921 has first refresh rate information 2001 and second refresh rate information 2002. The first refresh rate information 2001 is the refresh rate of the high reliability area 1931 of the storage unit 1930, and the second refresh rate information 2002 is the refresh rate of the low power area 1932. The first refresh rate information 2001 and the second refresh rate information 2002 are set from the processor 1810 (master). The higher the refresh rate, the more frequently refreshing is performed, so the reliability of the storage unit is improved but the power consumption is also increased. For this reason, the refresh rate (first refresh rate information 2001) of the low power region 1932 is set lower than the refresh rate (second refresh rate information 2002) of the high reliability region 1931.

記憶ユニット1930は、DRAMのアレイで構成される記憶デバイスであり、高信頼領域1931と低電力領域1932を有する。高信頼領域1931は保持されるデータの故障ビット数が、制御ユニット1920が実施するECCで正しく訂正可能な範囲内になるように動作を行うアドレス領域である。低電力領域1932は、保持されるデータの故障ビット数が、制御ユニット1920が実施するECCで正しく訂正可能な範囲外になるように動作を行うアドレス領域である。即ち、低電力領域1932に書込まれたデータは、読出し時に誤りを有しながらバス40に出力される。   The storage unit 1930 is a storage device composed of an array of DRAMs, and has a high reliability area 1931 and a low power area 1932. The high-reliability area 1931 is an address area that operates so that the number of failed bits of data held is within a range that can be correctly corrected by the ECC executed by the control unit 1920. The low power area 1932 is an address area that operates so that the number of failed bits of data held is outside the range that can be correctly corrected by the ECC executed by the control unit 1920. That is, the data written in the low power region 1932 is output to the bus 40 while having an error at the time of reading.

高信頼領域1931が有するデータを図15に示す。図15において、図2と同一のデータには同一の符号を付し、説明を省略する。レート変更間隔情報2102はリフレッシュレートを変更する間隔の情報である。低電力領域1932が有するデータを図16に示す。図16において、図2と同一のデータには同一の符号を付し、説明を省略する。高信頼領域1931はマスタ及びワーカの双方がアクセスする領域であり、計算機システムを制御するためのデータが格納されている。一方、低信頼領域1932はワーカがアクセスする領域であり、画像やテキストなどの入力データや計算の中間データなどが格納されている。   Data included in the high reliability region 1931 is shown in FIG. In FIG. 15, the same data as in FIG. Rate change interval information 2102 is information on an interval for changing the refresh rate. Data included in the low power region 1932 is shown in FIG. In FIG. 16, the same data as in FIG. The high reliability area 1931 is an area accessed by both the master and the worker, and stores data for controlling the computer system. On the other hand, the low-reliability area 1932 is an area accessed by a worker, and stores input data such as images and text, intermediate data for calculation, and the like.

次に計算機システム3の処理フローを、図17に示す計算機システム3の動作フローチャートを用いて説明する。図17において、図7と同一の要素については同一の符号を付し、詳しい説明を省略する。   Next, a processing flow of the computer system 3 will be described with reference to an operation flowchart of the computer system 3 shown in FIG. In FIG. 17, the same elements as those of FIG. 7 are denoted by the same reference numerals, and detailed description thereof is omitted.

並列処理において、マスタはタスクキュー作成処理(ステップ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 high reliability area 1931. Thereafter, in step S705, the state transits to an active state based on reception of interrupt information and an internal timer, worker survival confirmation and restart processing (step S706) are performed, and task progress confirmation (step S707) is performed. If all the tasks are not completed, the process proceeds to step S704. If all the tasks are completed, a data soundness check is performed on the obtained result (step S710). In step S2311, reliability adjustment processing is performed by the same means as in step S711 in the first embodiment. However, in the computer system 1 in the first embodiment, the data reliability (that is, the number of failed bits in the data or the failure bit rate) is adjusted by changing the voltage. However, in the computer system 3 in the present embodiment, the data reliability is improved. The difference is that the adjustment is performed by changing the refresh rate of the DRAM (step S2311). That is, the computer system 3 performs the reliability adjustment by changing the second refresh rate information 2002 that determines the refresh rate of the low power region 1932. When the number of discarded data is larger than the target error number 211, the refresh rate is set to a higher value in order to improve the reliability of the DRAM 1932. When the number of discarded data is smaller than the target error number 211, the refresh rate is set to a lower value in order to improve the power efficiency of the DRAM 1932.

本実施例においても、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 input data 208 stored in the low-reliability area 1932, and the worker as the processing result is executed. The point that the work data 209 is stored in the low reliability area is different from the first embodiment.

以上の構成及び処理により、DRAM内の故障ビットを完全に訂正することなく、システム全体が停止することを回避した低電力な計算機システム3を実現できる。大容量DRAMを用いるシステムにおいては、DRAMが消費する電力の大部分はリフレッシュのための電力であるため、本実施例における計算機システムにより、DRAMの電力を大きく削減することが可能になる。   With the above configuration and processing, it is possible to realize a low-power computer system 3 that avoids the entire system from being stopped without completely correcting the failure bit in the DRAM. In a system using a large-capacity DRAM, most of the power consumed by the DRAM is for refreshing. Therefore, the computer system in this embodiment can greatly reduce the power of the DRAM.

Claims (10)

第1の動作状態と第2の動作状態との間で遷移するメモリと、
前記第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のプロセッサは、前記第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の計算機システムであって、
前記第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の計算機システムであって、
テストパターンを入力データとした処理を実行した結果に基づき、前記第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の計算機システムであって、
前記第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.
請求項2の計算機システムであって、
前記第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.
請求項2の計算機システムであって、
前記メモリは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及び第2のプロセッサと、第1の動作状態と第2の動作状態との間で遷移するメモリを備えた計算機システムの制御方法であって、
前記第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.
JP2015551349A 2013-12-06 2013-12-06 Computer system and computer system control method Expired - Fee Related JP6247314B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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