JP5467172B1 - 情報処理システム、および情報処理方法 - Google Patents

情報処理システム、および情報処理方法 Download PDF

Info

Publication number
JP5467172B1
JP5467172B1 JP2013192635A JP2013192635A JP5467172B1 JP 5467172 B1 JP5467172 B1 JP 5467172B1 JP 2013192635 A JP2013192635 A JP 2013192635A JP 2013192635 A JP2013192635 A JP 2013192635A JP 5467172 B1 JP5467172 B1 JP 5467172B1
Authority
JP
Japan
Prior art keywords
instruction
information
processor
executed
processors
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.)
Active
Application number
JP2013192635A
Other languages
English (en)
Other versions
JP2015060341A (ja
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP2013192635A priority Critical patent/JP5467172B1/ja
Application granted granted Critical
Publication of JP5467172B1 publication Critical patent/JP5467172B1/ja
Priority to US14/268,446 priority patent/US9342359B2/en
Publication of JP2015060341A publication Critical patent/JP2015060341A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Advance Control (AREA)

Abstract

【課題】プロセッサが部分的にでも障害を負った場合、当該プロセッサを有効に利用して、プログラムの実行ができなかった。
【解決手段】1以上の命令を実行できる2以上のプロセッサと、2以上の各プロセッサが実行できる命令または実行できない命令を特定する情報である実行可否情報を2以上の各プロセッサごとに格納し得る実行可否情報格納部と、プログラムを実行する際に、実行可否情報を参照し、2以上のプロセッサのうち、プログラムを実行するために必要な1以上の各命令を実行できるプロセッサを決定し、決定したプロセッサに命令を実行させる制御部とを具備する情報処理システムにより、プロセッサが部分的に障害を負った場合でも、当該プロセッサを有効に利用して、プログラムの実行を継続できる。
【選択図】図1

Description

本発明は、プロセッサの障害に頑強な情報処理システム等に関するものである。
従来、複数の処理装置(プロセッサと言っても良い)と、システムコントローラと、障害発生時にログ情報の収集を行う機能を有するサービスプロセッサとを備えるデータ処理システムがあった。そして、データ処理システムを構成する複数の各処理装置は、障害発生時に、その障害が、他の全ての装置に影響を与える障害か、あるいは、障害を生じた装置のみが影響を受ける障害かを判定する手段を備える。また、システムコントローラは、この判定結果が障害を生じた装置のみに影響を与える障害であった場合に、当該装置の動作のみを停止させる手段を備える。さらに、サービスプロセッサは、障害に関連のない装置の動作を停止させることなく、停止した障害装置のみのログ情報の採取を行うことを特徴とする(特許文献1参照)。
特許第2956849号公報
しかしながら、従来技術においては、プロセッサが部分的に障害を負った場合には、プロセッサ全体を停止させる構成にしており、部分的にプロセッサを利用して、効率的にプログラムを実行できなかった。
本第一の発明の情報処理システムは、実行対象のプログラムを格納し得るプログラム格納部と、1以上の命令を実行できる2以上のプロセッサと、2以上の各プロセッサが実行できる命令または実行できない命令を特定する情報である実行可否情報を2以上の各プロセッサごとに格納し得る実行可否情報格納部と、プログラムを実行する際に、実行可否情報格納部に格納されている実行可否情報を参照し、2以上のプロセッサのうち、プログラムを実行するために必要な1以上の各命令を実行できるプロセッサを決定し、決定したプロセッサに命令を実行させる制御部とを具備する情報処理システムである。
かかる構成により、すべてのプロセッサが部分的に障害を負った場合でも、プログラムの実行を継続できる。
また、本第二の発明の情報処理システムは、第一の発明に対して、2以上の各プロセッサが実行できる命令または実行できない命令を検査し、プロセッサごとに実行可否情報を取得し、実行可否情報格納部に蓄積する診断部をさらに具備する情報処理システムである。
かかる構成により、プロセッサの障害状況を自動的に取得できる。
また、本第三の発明の情報処理システムは、第一または第二の発明に対して、2以上の各プロセッサは、各プロセッサにおける命令の実行結果を保持するレジスタを具備し、2以上の各プロセッサの2以上のレジスタが格納している実行結果は、2以上の各プロセッサにより共有される情報処理システムである。
かかる構成により、プロセッサが部分的に障害を負った場合でも、正常にプログラムの実行を継続できる。
また、本第四の発明の情報処理システムは、第一から第三いずれかの発明に対して、1以上の各命令に対応する命令長に関する情報である命令長情報を格納し得る遅延マップ格納部と、制御部が実行させている命令に対応する命令長情報を取得し、命令長情報に対応する時間だけウエイトする遅延カウンタ部とをさらに具備する情報処理システムである。
かかる構成により、プロセッサが部分的に障害を負った場合でも、正常にプログラムの実行を継続できる。
また、本第五の発明の情報処理システムは、第四の発明に対して、2以上の各プロセッサに対応付いて、遅延マップ格納部および遅延カウンタ部が存在し、遅延カウンタ部は、制御部が命令を実行させているプロセッサに対応する遅延マップ格納部から、制御部が実行させている命令に対応する命令長情報を取得し、命令長情報に対応する時間だけウエイトする情報処理システムである。
かかる構成により、プロセッサが部分的に障害を負った場合でも、正常にプログラムの実行を継続できる。
また、本第六の発明の情報処理システムは、第一から第五いずれかの発明に対して、実行可否情報は、1または2以上の命令を含む命令グループごとに、命令グループに含まれる命令が実行できるか否かを示す情報である情報処理システムである。
かかる構成により、命令実行可否の管理が簡易になる。
また、本第七の発明の情報処理システムは、第一から第六いずれかの発明に対して、実行可否情報格納部は、一のプロセッサに対応する実行可否情報を格納している記憶媒体である2以上の実行可否情報記憶手段を具備する情報処理システムである。
かかる構成により、プロセッサが部分的に障害を負った場合でも、正常にプログラムの実行を継続できる。
また、本第八の発明の情報処理システムは、第一から第六いずれかの発明に対して、実行可否情報格納部は、2以上の各プロセッサに対応する2以上の実行可否情報を格納している一の記憶媒体である情報処理システムである。
かかる構成により、プロセッサが部分的に障害を負った場合でも、正常にプログラムの実行を継続できる。
また、本第九の発明の情報処理システムは、第一から第八いずれかの発明に対して、実行可否情報格納部に格納されている1以上の実行可否情報を出力する実行可否情報出力部をさらに具備する情報処理システムである。
また、本第十の発明の情報処理システムは、第一から第九いずれかの発明に対して、制御部は、一の命令を実行するプロセッサを決定する場合に、当該一の命令の直前の命令を実行したプロセッサに対応する実行可否情報を参照し、前記プロセッサが前記一の命令が実行可能である場合には、前記プロセッサを前記一の命令を実行するプロセッサとして決定し、当該決定した前記プロセッサに命令を実行させる情報処理システムである。
かかる構成により、高速な処理が可能となる。
本発明による情報処理システムによれば、プロセッサが部分的に障害を負った場合でも、当該プロセッサを有効に利用して、プログラムの実行を継続できる。
実施の形態における情報処理システム1のブロック図 同情報処理システム1の動作について説明するフローチャート 同情報処理システム1の具体的な構成図 同情報処理システム1の具体的な構成図 同情報処理システム1の動作を説明する図 同情報処理システム1の他のブロック図
以下、情報処理システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
本実施の形態において、1または2以上の命令を実行できる2以上のプロセッサと、各プロセッサの命令の実行可否を示す実行可否情報を保持する記録媒体とを具備し、実行可能な命令を有するプロセッサを利用してプログラムの実行を遂行する情報処理システムについて説明する。なお、本実施の形態において、実行可否情報を保持する記録媒体は、プロセッサごとに存在しても良いし、複数のプロセッサに対して一つでも良い。なお、複数のプロセッサのうちの一部のプロセッサは、すべての命令を実行できなくなっても良い。
また、本実施の形態において、情報処理システムは、各プロセッサの命令の実行可否を診断する診断部を具備しても良い。
また、本実施の形態の情報処理システムにおいて、通常、レジスタ内の実行結果は、複数のプロセッサで共有される。
また、本実施の形態の情報処理システムにおいて、通常、後述する遅延マップ格納部と、遅延カウンタ部とを有する。
さらに、本実施の形態において、実行可否情報を出力する情報処理システムについて説明する。
図1は、本実施の形態における情報処理システム1のブロック図である。情報処理システム1は、プログラム格納部11、実行可否情報格納部12、1または2以上の遅延マップ格納部13、2以上のプロセッサ14、制御部15、1または2以上の遅延カウンタ部16、診断部17、および実行可否情報出力部18を備える。
また、実行可否情報格納部12は、1または2以上の実行可否情報記憶手段121を備える。実行可否情報格納部12は、例えば、プロセッサ14ごとに、実行可否情報記憶手段121を備えても良いし、複数のプロセッサ14に対して一の実行可否情報記憶手段121を備えても良い。さらに、各プロセッサ14は、例えば、レジスタ141を備える。また、複数のプロセッサ14に対して一のレジスタ141を備えても良い。
プログラム格納部11は、実行対象のプログラムを格納し得る。また、プログラム格納部11は、割込み処理ルーチン、後述する制御部15を構成するソフトウェア、または後述する診断部17を構成するソフトウェア等も格納されていても良い。なお、実行対象のプログラムとは、例えば、アプリケーションプログラムであるが、OS等の基本ソフトウェアでも良い。
プログラム格納部11は、ROM等の不揮発性の記録媒体が好適であるが、RAM等の揮発性の記録媒体でも実現可能である。
プログラム格納部11に実行対象のプログラム等が記憶される過程は問わない。例えば、記録媒体を介してプログラム等がプログラム格納部11で記憶されるようになってもよく、通信回線等を介して送信されたプログラム等がプログラム格納部11で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたプログラム等がプログラム格納部11で記憶されるようになってもよい。
実行可否情報格納部12は、2以上の実行可否情報を格納し得る。実行可否情報格納部12は、通常、2以上の各プロセッサに対応する2以上の実行可否情報を格納している。実行可否情報は、プロセッサ14が実行できる命令または実行できない命令を特定する情報である。つまり、実行可否情報は、例えば、実行できない命令の命令識別子の集合である。ただし、実行可否情報は、実行できる命令の命令識別子の集合等でも良い。また、実行可否情報は、例えば、実行できない命令の命令識別子と実行できる命令の命令識別子の集合等でも良い。さらに具体的には、実行可否情報は、例えば、実行できる命令のオペコード、または実行できない命令のオペコードの集合である。なお、命令は、通常、オペコードとオペランドを有する。例えば、命令「LDA #$AB」の「LDA」はオペコードであり、「#$AB」はオペランドである。
また、実行可否情報は、プロセッサ14が実行できる命令グループ、または実行できない命令グループを特定する情報であっても良い。かかる場合、実行可否情報は、例えば、実行できない命令グループのグループ識別子の集合である。ただし、実行可否情報は、実行できる命令グループのグループ識別子の集合等でも良い。また、実行可否情報は、例えば、実行できないグループのグループ識別子と実行できるグループのグループ識別子の集合等でも良い。なお、命令グループは、1または2以上の命令の集合である。ただし、少なくとも一の命令グループは、2以上の命令の集合である。また、一の命令グループは、2以上の類似する命令が属することは好適である。
ここで、命令は、例えば、機械語命令である。命令は、例えば、アセンブラ命令、マシンコード、マクロ命令等でも良い。つまり、命令の種類等は問わない。命令は、例えば、6502プロセッサでは、JMP、JSR、RTS、BNE、LDA、STA、ASL、ROR、ADC等である。JMPはジャンプ命令、JSRはサブルーチンコールの命令、RTSはサブルーチンからのリターン命令である。また、BNEは比較およびジャンプを行なう命令、LDAとSTAとはレジスタへの書き込みに関する命令、ASLとRORとはシフト関連の命令、ADCは算術加算命令、MOVEはデータ移動命令である。
実行可否情報は、例えば、プロセッサを識別するプロセッサ識別子と対応付けて実行可否情報格納部12に格納されている。また、実行可否情報は、例えば、プロセッサと直接、接続されている。
また、実行可否情報は、例えば、対応するプロセッサの命令ごとに1ビットを保持している。そして、例えば、処理対象の命令に対応するビットがオンであるプロセッサがアクティブになる。
実行可否情報記憶手段121は、一のプロセッサ14に対応する実行可否情報を格納している記憶媒体である。実行可否情報記憶手段121は、通常、プロセッサに対応付けられて存在する。なお、実行可否情報は、通常、後述する診断部17のより蓄積された情報である。
実行可否情報格納部12、および実行可否情報記憶手段121は、通常、不揮発性の記録媒体で実現されるが、揮発性の記録媒体で実現されても良い。実行可否情報格納部12等は、例えば、RAM、フラッシュ等のEEPROM等である。
遅延マップ格納部13は、1以上の各命令に対応する命令長に関する情報である命令長情報を格納し得る。命令長情報は、通常、クロック数であるが、他の情報でも良い。命令長情報は、通常、命令に対応付いて管理される。
遅延マップ格納部13は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。遅延マップ格納部13に命令長情報が記憶される過程は問わない。例えば、記録媒体を介して命令長情報が遅延マップ格納部13で記憶されるようになってもよく、通信回線等を介して送信された命令長情報が遅延マップ格納部13で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された命令長情報が遅延マップ格納部13で記憶されるようになってもよい。
プロセッサ14は、1以上の命令を実行できる。また、プロセッサ14は、CPUであることが好適であるが、MPU、GPU、FPU、DSP、PPU、周辺装置用プロセッサ、またはデータ通信プロセッサ等でも良く、広く解する。また、一のプロセッサ14が、CPU、GPU等の複数のプロセッサを含んでいても良い。
2以上の各プロセッサ14は、例えば、各プロセッサにおける命令の実行結果を保持する1以上のレジスタ141を具備する。ただし、2以上の各プロセッサ14は、1以上のすべてのレジスタを共有しても良い。なお、2以上の各プロセッサ14は、同じプロセッサ14であっても、異なるプロセッサ14であっても良い。
また、プロセッサ14が実行できる2以上の命令は、2以上の命令グループを構成していても良い。一の命令グループは、1または2以上の命令が属する。
また、2以上のプロセッサ14は、並列処理が可能なプロセッサでも良い。
レジスタ141は、2以上の各プロセッサ14における命令の実行結果を保持する。つまり、プロセッサ14が処理を行なった結果を、プロセッサ14はレジスタ141に書き込む。
制御部15は、プログラムを実行する際に、実行可否情報格納部12に格納されている実行可否情報を参照し、2以上のプロセッサ14のうち、プログラムを実行するために必要な1以上の各命令を実行できるプロセッサ14を決定し、決定したプロセッサ14に命令を実行させる。
制御部15は、プログラムを実行する際に、実行可否情報格納部12に格納されている実行可否情報を参照し、実行対象の一の命令、または実行対象の一の命令グループの命令を実行できるプロセッサ14を選択し、当該選択したプロセッサ14に命令を実行させる。
制御部15は、一の命令を実行するプロセッサ14を決定する場合に、当該一の命令の直前の命令を実行したプロセッサ14に対応する実行可否情報を参照し、前記プロセッサ14が前記一の命令が実行可能である場合には、前記プロセッサ14を前記一の命令を実行するプロセッサ14として決定し、当該決定した前記プロセッサ14に命令を実行させる。
なお、制御部15は、後述する診断部17の診断結果に基づいて、命令を実行する一のプロセッサ14のみをアクティブにするなどしても良い。かかる場合、アクティブなプロセッサ14が命令を実行する。また、診断部17の診断結果に応じて、一のプロセッサ14がアクティブになる場合、当該アクティブにする処理は、ここでは制御部15が行う、とする。また、この処理は、診断部17が行っても良い。
遅延カウンタ部16は、制御部15が実行させている命令に対応する命令長情報を取得し、命令長情報に対応する時間だけウエイトする。また、遅延カウンタ部16は、制御部15が命令を実行させているプロセッサ14に対応する遅延マップ格納部13から、制御部15が実行させている命令に対応する命令長情報を取得し、命令長情報に対応する時間だけウエイトしても良い。なお、遅延カウンタ部16は、遅延カウンタにより実現され得る。
診断部17は、2以上の各プロセッサが実行できる命令または実行できない命令を検査し、プロセッサ14ごとに実行可否情報を取得し、実行可否情報格納部12に蓄積する。また、診断部17は、2以上の各プロセッサが実行できる命令グループまたは実行できない命令グループを検査し、プロセッサ14ごとに実行可否情報を取得し、実行可否情報格納部12に蓄積しても良い。ここで、蓄積とは、例えば、出力ポートへの出力や、ラッチ、フラッシング、EEPROMへの書き込み等によって実現される。
診断部17は、例えば、割込みルーチンにより、継続的に機能する。継続的とは、通常、定期的という意味であるが、不定期でも良い。定期的とは、通常、同一間隔である。診断部17は、例えば、毎秒10回実行される。
実行可否情報出力部18は、実行可否情報格納部12に格納されている1以上の実行可否情報を出力する。実行可否情報出力部18が実行可否情報を出力するタイミングは問わない。実行可否情報出力部18は、図示しない手段が出力指示を受け付けた場合に、実行可否情報を出力しても良いし、実行可否情報出力部18が自発的に実行可否情報を出力しても良い。ここで、出力とは、例えば、表示デバイスへの出力である。また、実行可否情報出力部18は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。実行可否情報出力部18は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理システム1の動作について、図2のフローチャートを用いて説明する。
(ステップS201)制御部15は、プログラム格納部11の実行対象のプログラムを読み込む。なお、プログラムの実行は、複数の命令を実行することにより実現される。
(ステップS202)制御部15は、カウンタiに1を代入する。
(ステップS203)制御部15は、読み込んだプログラムの中に、i番目の命令が存在するか否かを判断する。i番目の命令が存在すればステップS204に行き、存在しなければ処理を終了する。
(ステップS204)制御部15は、i番目の命令を取得する。
(ステップS205)制御部15は、カウンタjに1を代入する。
(ステップS206)制御部15は、情報処理システム1の中に、j番目のプロセッサが存在するか否かを判断する。j番目のプロセッサが存在すればステップS207に行き、存在しなければステップS214に行く。
(ステップS207)制御部15は、実行可否情報格納部12から、j番目のプロセッサに対応する実行可否情報を取得する。ここで、制御部15は、j番目のプロセッサの、i番目の命令に対応する実行可否情報のみを取得することは好適である。
(ステップS208)制御部15は、ステップS207で取得した実行可否情報を用いて、j番目のプロセッサにおいて、i番目の命令が実行可能であるか否かを判断する。実行可能である場合はステップS209に行き、実行可能でない場合はステップS213に行く。
(ステップS209)制御部15は、j番目のプロセッサに、i番目の命令の実行を指示する。なお、ここで、j番目のプロセッサがi番目の命令を実行し、実行結果をレジスタ141に書き込む。なお、レジスタ141は、j番目のプロセッサに対応するレジスタ141であることが好適であるが、複数のプロセッサ14が共有しているレジスタ141でも良い。
(ステップS210)遅延カウンタ部16は、j番目のプロセッサのi番目の命令に対応する命令長情報を、遅延マップ格納部13から取得する。なお、i番目の命令に対応する命令長情報は、プロセッサごとに異なっても良いし、同じでも良い。
(ステップS211)遅延カウンタ部16は、ステップS210で取得した命令長情報に対応する時間、ウエイトする。さらに具体的には、例えば、遅延カウンタ部16は、命令の処理が完了するまでのクロックサイクルの総量だけウエイトする。
(ステップS212)制御部15は、カウンタiを1、インクリメントする。ステップS203に戻る。
(ステップS213)制御部15は、カウンタjを1、インクリメントする。ステップS206に戻る。
(ステップS214)制御部15は、エラーメッセージを出力する。処理を終了する。
なお、図2のフローチャートにおいて、図示しないが、例えば、割り込みにより、継続的に、診断部17が2以上の各プロセッサが実行できる命令または実行できない命令を検査し、プロセッサ14ごとに実行可否情報を取得し、実行可否情報格納部12に蓄積することは好適である。
また、図2のフローチャートのS206における1番目のプロセッサを、先の命令((i−1)番目の命令)を実行したプロセッサとすることは好適である。つまり、命令を実行したプロセッサをカレントのプロセッサとして、カレントのプロセッサを極力変えないように、命令を実行していくことは好適である。
また、図2のフローチャートにおいて、実行可否情報出力部18は、実行可否情報格納部12に格納されている1以上の実行可否情報を出力することは好適である。
また、図2のフローチャートにおいて、カウンタiが存在した。しかし、情報処理システム1が1命令ずつ読み出し、当該読み出した1命令を処理するものである場合など、カウンタiは不要である。
また、図2のフローチャートにおいて、カウンタjが存在した。しかし、情報処理システム1が、命令の実行可能な一つのプロセッサ14のみがアクティブになる構成である場合、カウンタjは不要である。
さらに、図2のフローチャートにおいて、ステップS203において、i番目の命令が存在しなければ処理が終了した。しかし、情報処理システム1は、処理を終了しなくても良い。つまり、例えば、情報処理システム1は、次の命令を受け付けるまで、ウエイトしても良い。
以下、本実施の形態における情報処理システム1の具体的な構成や動作等について説明する。
情報処理システム1の目的は、多重に設置されたCPUコアを用いて、コンピュータ・システムの有用性およびハードウェア耐障害性を高めることである。通常、完全なCPUは、ハードウェア障害が発生した場合には、使用不可能である。また、多くの障害が発生した場合、システムを実行するためのCPUが存在しないことは問題である。しかし、本情報処理システム1は、この問題点において従来のシステムとは異なっている。つまり、情報処理システム1において、例えば、CPUは、小さく、独立した命令グループにスライスされている。なお、命令グループは、同様の命令の組み合わせである。また、情報処理システム1において、フォールト・マップにおける障害を追跡し、部分的に損傷したCPUを使用して、データ処理を行なう。例えば、情報処理システム1が2つのCPUを有する場合、本システムの利点は、両方のCPUが部分的に障害を有する場合でも、処理を継続できることである。また、両方のCPUから破損していない残りの命令に関して、フルスピードでプログラムの実行を継続できる。
なお、上記において、CPUとは、プロセッサ14の一種である。フォールト・マップとは、実行可否情報の一例である。
以下、情報処理システム1の2つの具体例を説明する。
(具体例1)
具体例1において、情報処理システム1の構成図は図3である。具体例1において、情報処理システム1は、3つのプロセッサ14を具備する。
図3のROM(A1)は、プログラム格納部11に対応する。また、ROM(A1)は、診断部17を実現するプログラムを含む。また、診断部17のプログラムは、図3のA8の割り込みルーチンにより実現され得る。
また、図3において、メモリ(A2)は、実行可否情報格納部12、および遅延マップ格納部13に対応する。図3の遅延カウンタ(A3)は図1の遅延カウンタ部16である。また、CPU(A4)プロセッサ14に対応する。図3のA5はバスであり、レジスタの情報の共有のための仕組みである。図3のA6はデータバスである。また、A7は割り込み信号を示す。A8は診断部17に対応する。また、上記の診断ルーチンは診断部17に対応する。さらに、図1の実行可否情報出力部18は、図3には図示されていない。また、上記の欠陥マップは、実行可否情報に対応する。
コンピュータシステムの有用性を向上させるために、複数のCPUコアは一つのシステムバスにより接続されている。図3において、ROM(A1)には、アプリケーションソフトウェア、および割り込み処理ルーチン(A8)が格納されている。また、揮発性または不揮発性メモリ(A2)は、ROM(A1)から送付される各マシンコード命令をイネーブル信号に変換するために使用される。メモリのアドレスラインは、プロセッサのデータバスに接続されている。そして、イネーブル信号を受信した一のCPUがアクティブになり、他のCPUについて、アドレスラインとデータラインとが受動維持の状態(ノンアクティブ)となる。複数の各命令は異なる長さを有するので、メモリ(A2)は、すべての命令のCPU(A4)における実行に必要なクロック数の情報(上記の命令長情報)を有している。そして、クロック数を用いて、プログラムの処理を続行するために別のCPUがアクティブになる前に、一のCPU上で、すべての命令が確実に実行される。つまり、このクロック数は、不揮発性メモリ(A2)の遅延マップから遅延カウンタ(A3)に渡される。そして、遅延カウンタ(A3)は、すべてのCPUの同じシステムクロックを受信している間、クロック数が0になるまでカウントダウンする。また、レジスタに格納されている実行の結果は、CPU間(A4)で共有される。実行結果の共有は、CPU(A4)をバス(A5)で結合することにより可能である。また、単にレジスタを集中させるためにレジスタを接続する。あるいは、信頼性を向上させるために、様々な場所で存在するレジスタのデータ(プロセッサ6502の場合は、アキュムレータ、Xレジスタ、Yレジスタ、プログラムカウンタ、スタックポインタ,ステータスレジスタなど)を、少なくともすべてのマシン命令の実行後に同期させても良い。共有レジスタは、次のマシンコード命令が任意の利用可能なCPUが実行するために必要である。
小さな障害が情報処理システム1内のさまざまな部分に発生した場合、唯一の機能的な命令ユニットがアクティブになる。また、診断ルーチンは、例えば、割り込みシステム(A7)によって、毎秒10回実行される。割り込みシステム(A7)は、一CPU上で一つの命令がまだ機能しているか否かを確認するための高速なテストを実行する。これは、すべてのCPUコア上のすべての命令に対して、繰り返し実施される。例えば、1つのCPUが100命令を実行でき、情報処理システム1に3つのCPUが存在する場合、それはすべてのCPUコア内のすべての命令の機能を確認する300のNMIがかかる。これらのテスト結果は、各テストの後に、CPUによって示される出力ポートやラッチを経由して、マップメモリ(A2)内に書き込まれる。図3において、矢印31は、マップ更新や書き込みのオペレーションを簡略化したものである。また、図3において、I/0ポートは、図示しない。また、図3において、O〜Oは、出力ラインを示す。
例えば、入力ポートを介して、欠陥マップを取得することは、障害の種類についての詳細な情報を得ることができる。これは、私たちは完全なCPUシステムの障害を予測するのに役立つ。つまり、実行可否情報は、ユーザに警告するために使用することができる。また、実行可否情報は、システム再設計における部分CPUコア当たりの命令の量を最適化するために使用できる。また、障害が発生する可能性が低い命令は、スペースを節約するために、将来のCPUコアから一部省略することができる。そして、さらに信頼性を高めるために、この確保されたスペースを用いて、多くのCPUコアを追加できる。
(具体例2)
具体例2において、情報処理システム1の構成図は図4である。具体例2において、情報処理システム1は、2つのプロセッサ14を具備する。
図4において、B1はROMであり、プログラム格納部11、診断部17に対応する。つまり、ROM(B1)には、実行対象のプログラム、診断部17を構成するソフトウェア等が格納されている。
また、B2はRAMまたはEEPROM(例えば、フラッシュメモリ)であり、実行可否情報格納部12、遅延マップ格納部13に対応する。つまり、RAM等(B2)には、実行可否情報、命令長情報が格納されている。
また、B3は遅延カウンタであり、遅延カウンタ部16に対応する。遅延カウンタ(B3)は、RAM等(B2)の命令長情報を用いて、必要なクロック数だけ、ウエイトする。
また、B4は、ここではCPUであり、プロセッサ14に対応する。さらに、B5は、インバータであり、CPUを切替える機能を有し、制御部15に該当する。なお、CPU1が実行不可である場合、CPU2は実行可能である。
また、B6は、例えば、16ビットのアドレスバスであり、B7は、例えば、8ビットのデータバスである。さらに、B8は、CPUのレジスタに格納される各CPUの実行結果を同期させるためのバスである。
本具体例に示すように、2つだけのコア(プロセッサ14)が使用される場合、このシステムの安価なバージョンが可能である。本具体例では、唯一のマップメモリが実装されている。
図4の情報処理システムにおいて、一のCPUコア(B4)が一の命令を実行できない場合は、診断ルーチン(B11)は、マップメモリ(B2内)の欠陥フラグ(実行可否情報)を、当該一のCPUコアが一の命令または当該一の命令を含む命令グループを実行できない旨の情報に書き換える。そして、同時に、インバータ(B5)を用いて、他方のCPUコアにおいて当該一の命令、または当該一の命令を含む命令グループをアクティブにする。
なお、両方のCPUコアにおいて、同一の命令または命令グループが実行できない障害を有する場合、システムは動作せず、回復不可能である。
そして、かかる場合、設計を効率的に行なうには、その単一の命令を他の命令に対して独立のグループとする。このような設計により、物理的は破損(オープン、ショート)により、一命令に対する障害が発生した場合でも、他の命令の実行に影響を与えにくくなることを意味する。
また、例えば、図4の情報処理システム1において、2つの各CPUコア(core1,core2)のうち、core1が「JMP」「JSR」命令が実行不可であり、core2が「LDA」「STA」命令が実行不可であることを示す実行可否情報が、RAM等(B2)に格納されていた、とする(図5参照)。
かかる場合、図5に示すように、情報処理システム1は、core1、またはcore2を用いて、すべての命令を実行できる。つまり、例えば、「JMP」命令を実行する場合は、core2が使用され、「LDA」命令を実行する場合は、core1が使用される。
以上、本実施の形態によれば、すべてのプロセッサが部分的に障害を負った場合でも、プログラムの実行を継続でき得る。
なお、本実施の形態において、情報処理システム1は、プログラム格納部11、実行可否情報格納部12、2以上のプロセッサ14、制御部15だけでも良い。かかる場合、情報処理システム1において、一のプロセッサで命令実行中に、他のプロセッサにおいて、十分な長さのクロック数だけウエイトするようにすれば良い。また、かかる場合、実行可否情報は外部から与えられる。かかる場合の情報処理システム1のブロック図を図6に示す。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
以上のように、本発明にかかる情報処理システムは、プロセッサが部分的に障害を負った場合でも、プログラムの実行を継続できるという効果を有し、情報処理システム等として有用である。
1 情報処理システム
11 プログラム格納部
12 実行可否情報格納部
13 遅延マップ格納部
14 プロセッサ
15 制御部
16 遅延カウンタ部
17 診断部
18 実行可否情報出力部
121 実行可否情報格納手段
141 レジスタ

Claims (11)

  1. 実行対象のプログラムを格納し得るプログラム格納部と、
    1以上の命令を実行できる2以上のプロセッサと、
    前記2以上の各プロセッサが実行できる命令または実行できない命令を特定する情報である実行可否情報を前記2以上の各プロセッサごとに格納し得る実行可否情報格納部と、
    前記プログラムを実行する際に、前記実行可否情報格納部に格納されている実行可否情報を参照し、前記2以上のプロセッサのうち、前記プログラムを実行するために必要な1以上の各命令を実行できるプロセッサを決定し、当該決定したプロセッサに命令を実行させる制御部とを具備する情報処理システム。
  2. 前記2以上の各プロセッサが実行できる命令または実行できない命令を検査し、プロセッサごとに実行可否情報を取得し、前記実行可否情報格納部に蓄積する診断部をさらに具備する請求項1記載の情報処理システム。
  3. 前記2以上の各プロセッサは、各プロセッサにおける命令の実行結果を保持するレジスタを具備し、
    前記2以上の各プロセッサの2以上のレジスタが格納している前記実行結果は、前記2以上の各プロセッサにより共有される請求項1または請求項2記載の情報処理システム。
  4. 前記1以上の各命令に対応する命令長に関する情報である命令長情報を格納し得る遅延マップ格納部と、
    前記制御部が前記プロセッサに実行させている命令に対応する命令長情報を取得し、当該命令長情報に対応する時間だけウエイトする遅延カウンタ部とをさらに具備する請求項1から請求項3いずれか一項に記載の情報処理システム。
  5. 前記2以上の各プロセッサに対応付いて、前記遅延マップ格納部および前記遅延カウンタ部が存在し、
    前記遅延カウンタ部は、
    前記制御部が命令を実行させているプロセッサに対応する遅延マップ格納部から、前記制御部が実行させている命令に対応する命令長情報を取得し、当該命令長情報に対応する時間だけウエイトする請求項4記載の情報処理システム。
  6. 前記実行可否情報は、
    1または2以上の命令を含む命令グループごとに、当該命令グループに含まれる命令が実行できるか否かを示す情報である請求項1から請求項5いずれか一項に記載の情報処理システム。
  7. 前記実行可否情報格納部は、
    1つのプロセッサに対応する実行可否情報を格納している記憶媒体である2以上の実行可否情報記憶手段を具備する請求項1から請求項6いずれか一項に記載の情報処理システム。
  8. 前記実行可否情報格納部は、
    2以上の各プロセッサに対応する2以上の実行可否情報を格納している1つの記憶媒体である請求項1から請求項6いずれか一項に記載の情報処理システム。
  9. 前記実行可否情報格納部に格納されている1以上の実行可否情報を出力する実行可否情報出力部をさらに具備する請求項1から請求項8いずれか一項に記載の情報処理システム。
  10. 前記制御部は、
    1つの命令を実行するプロセッサを決定する場合に、当該1つの命令の直前の命令を実行したプロセッサに対応する実行可否情報を参照し、前記プロセッサが前記1つの命令が実行可能である場合には、前記プロセッサを前記1つの命令を実行するプロセッサとして決定し、当該決定した前記プロセッサに命令を実行させる請求項1から請求項9いずれか一項に記載の情報処理システム。
  11. 記録媒体に、
    実行対象のプログラムと、
    2以上の各プロセッサが実行できる命令または実行できない命令を特定する情報である実行可否情報を前記2以上の各プロセッサごとに格納しており、
    制御部により実現され得る情報処理方法であって、
    前記制御部が、前記プログラムを実行する際に、前記実行可否情報を参照し、前記2以上のプロセッサのうち、前記プログラムを実行するために必要な1以上の各命令を実行できるプロセッサを決定し、当該決定したプロセッサに命令を実行させる制御ステップを具備する情報処理方法。
JP2013192635A 2013-09-18 2013-09-18 情報処理システム、および情報処理方法 Active JP5467172B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013192635A JP5467172B1 (ja) 2013-09-18 2013-09-18 情報処理システム、および情報処理方法
US14/268,446 US9342359B2 (en) 2013-09-18 2014-05-02 Information processing system and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013192635A JP5467172B1 (ja) 2013-09-18 2013-09-18 情報処理システム、および情報処理方法

Publications (2)

Publication Number Publication Date
JP5467172B1 true JP5467172B1 (ja) 2014-04-09
JP2015060341A JP2015060341A (ja) 2015-03-30

Family

ID=50619496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013192635A Active JP5467172B1 (ja) 2013-09-18 2013-09-18 情報処理システム、および情報処理方法

Country Status (2)

Country Link
US (1) US9342359B2 (ja)
JP (1) JP5467172B1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6231445A (ja) * 1985-07-31 1987-02-10 Nec Corp 保守診断装置
JPS6259816B2 (ja) * 1982-07-30 1987-12-12 Fujitsu Ltd
JPH0137779B2 (ja) * 1982-01-27 1989-08-09 Hitachi Ltd
JPH08328866A (ja) * 1995-06-05 1996-12-13 Fujitsu Ltd プログラムローディング方法
JP2956849B2 (ja) * 1989-12-08 1999-10-04 株式会社日立製作所 データ処理システム
JP2009301479A (ja) * 2008-06-17 2009-12-24 Fujitsu Microelectronics Ltd マイクロコンピュータ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6259816A (ja) 1985-09-11 1987-03-16 Hitachi Ltd ウインドウ内容変更監視機構
TWI335541B (en) * 2004-02-18 2011-01-01 Ibm Grid computing system, management server, processing server, control method, control program and recording medium
JP4584324B2 (ja) * 2008-05-22 2010-11-17 ルネサスエレクトロニクス株式会社 データ処理システム、及びコンポーネント管理方法
WO2012120655A1 (ja) * 2011-03-08 2012-09-13 富士通株式会社 スケジューリング方法およびスケジューリングシステム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0137779B2 (ja) * 1982-01-27 1989-08-09 Hitachi Ltd
JPS6259816B2 (ja) * 1982-07-30 1987-12-12 Fujitsu Ltd
JPS6231445A (ja) * 1985-07-31 1987-02-10 Nec Corp 保守診断装置
JP2956849B2 (ja) * 1989-12-08 1999-10-04 株式会社日立製作所 データ処理システム
JPH08328866A (ja) * 1995-06-05 1996-12-13 Fujitsu Ltd プログラムローディング方法
JP2009301479A (ja) * 2008-06-17 2009-12-24 Fujitsu Microelectronics Ltd マイクロコンピュータ

Also Published As

Publication number Publication date
US20150082083A1 (en) 2015-03-19
US9342359B2 (en) 2016-05-17
JP2015060341A (ja) 2015-03-30

Similar Documents

Publication Publication Date Title
US10877766B2 (en) Embedded scheduling of hardware resources for hardware acceleration
US8527812B2 (en) Information processing device
EP2787444B1 (en) Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
JP6032510B2 (ja) 入出力エラー封じ込めイベント後のリカバリ
JP2005339561A (ja) 関連アプリケーションに対するトラック・データ・クロスリファレンスを保存する方法及び装置
JP2014182813A (ja) 命令エミュレーションプロセッサ、方法、およびシステム
JP6005392B2 (ja) ルーティングのための方法及び装置
US10423795B2 (en) Method, checking device, and system for determining security of a processor
US7966536B2 (en) Method and apparatus for automatic scan completion in the event of a system checkstop
JP6360665B2 (ja) ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法
JP2010044578A (ja) マルチコアプロセッサ
US9767048B2 (en) Initializing I/O devices
JP2009175960A (ja) 仮想マルチプロセッサシステム
JP5467172B1 (ja) 情報処理システム、および情報処理方法
US10423421B2 (en) Opportunistic utilization of redundant ALU
US8135960B2 (en) Multiprocessor electronic circuit including a plurality of processors and electronic data processing system
US20130205171A1 (en) First and second memory controllers for reconfigurable computing apparatus, and reconfigurable computing apparatus capable of processing debugging trace data
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
US20180349253A1 (en) Error handling for device programmers and processors
CN114780283B (zh) 一种故障处理的方法及装置
US20220229932A1 (en) Method for performing multi-system log access management, associated system on chip integrated circuit and non-transitory computer-readable medium
JP2014182676A (ja) ログ採取装置、演算装置、およびログ採取方法
EP4167069A1 (en) System, method, and device for accessing device program on storage device
JP2013025440A (ja) 情報処理装置および障害処理方法
JP2009271597A (ja) プロセッサ

Legal Events

Date Code Title Description
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: 20140117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140127

R150 Certificate of patent or registration of utility model

Ref document number: 5467172

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250