JPWO2014147780A1 - Logic processing apparatus and control method thereof - Google Patents

Logic processing apparatus and control method thereof Download PDF

Info

Publication number
JPWO2014147780A1
JPWO2014147780A1 JP2015506475A JP2015506475A JPWO2014147780A1 JP WO2014147780 A1 JPWO2014147780 A1 JP WO2014147780A1 JP 2015506475 A JP2015506475 A JP 2015506475A JP 2015506475 A JP2015506475 A JP 2015506475A JP WO2014147780 A1 JPWO2014147780 A1 JP WO2014147780A1
Authority
JP
Japan
Prior art keywords
configuration data
programmable logic
logic device
areas
configuration
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.)
Pending
Application number
JP2015506475A
Other languages
Japanese (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2014147780A1 publication Critical patent/JPWO2014147780A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/142Reconfiguring to eliminate the error

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)

Abstract

論理処理装置は、複数の領域毎にロジックをプログラム可能なプログラマブルロジックデバイス(301)と、前記プログラマブルロジックデバイスの複数の領域のうちの異なる領域を未使用領域として前記未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータを記憶するコンフィグレーションメモリ(MEM1〜MEMn)と、前記複数のコンフィグレーションデータのうちのいずれか1個を選択して前記プログラマブルロジックデバイスのロジックをプログラムさせる選択回路(303)とを有し、前記選択回路は、前記複数のコンフィグレーションデータのうちの前記プログラマブルロジックデバイスの動作に基づくエラーが発生しないコンフィグレーションデータを選択する。The logic processing device uses a programmable logic device (301) in which logic can be programmed for each of a plurality of areas, and uses an area other than the unused area as a different area among the plurality of areas of the programmable logic device. A configuration memory (MEM1 to MEMn) for storing a plurality of configuration data for realizing the same function as each other, and the programmable logic device by selecting any one of the plurality of configuration data A selection circuit (303) for programming the logic, and the selection circuit selects configuration data that does not cause an error based on the operation of the programmable logic device among the plurality of configuration data.

Description

本発明は、論理処理装置及びその処理方法に関する。   The present invention relates to a logic processing device and a processing method thereof.

自己修復機能付き情報処理装置が知られている(例えば、特許文献1参照)。論理処理部は、論理構成要素により構成され所定機能を実現する。予備論理処理部は、論理構成要素により再構成可能に構成され論理処理部の所定機能を再現しうる。データ保持手段は、論理処理部の構成データを保持する。障害検出手段は、論理処理部での障害発生を検出する。再構成手段は、障害検出手段による障害発生検出時にデータ保持手段から読み出した構成データに基づき予備論理処理部を論理処理部と同一の論理回路構成になるように再構成する。   An information processing apparatus with a self-healing function is known (see, for example, Patent Document 1). The logic processing unit is configured by logic components and realizes a predetermined function. The spare logic processing unit is configured to be reconfigurable with logic components, and can reproduce a predetermined function of the logic processing unit. The data holding unit holds the configuration data of the logic processing unit. The failure detection means detects the occurrence of a failure in the logic processing unit. The reconfiguring unit reconfigures the standby logic processing unit to have the same logic circuit configuration as the logic processing unit based on the configuration data read from the data holding unit when the failure detection is detected by the failure detecting unit.

また、複数の論理構成要素から成る回路の再構成が可能な集積回路が知られている(例えば、特許文献2参照)。機能構成部は、論理構成要素から成る所定の機能を備える複数の機能回路部と予備機能回路部とを備える。共通バスは、入出力信号をインタフェースする。第1の構成選択部は、複数の機能回路部のいずれかの故障に対応して第1の構成種別テーブルで指定される第1の構成種別データを選択する。第1のメモリは、機能回路部相互間の接続状態を指定する第1の配置配線データを記憶する。第1の転送部は、第1の配置配線データを抽出して、回路部相互間の接続と予備機能回路部の回路とを書き込む。   There is also known an integrated circuit capable of reconfiguring a circuit composed of a plurality of logic components (see, for example, Patent Document 2). The functional component includes a plurality of functional circuit units having a predetermined function composed of logical components and a spare functional circuit unit. The common bus interfaces input / output signals. The first configuration selection unit selects the first configuration type data specified in the first configuration type table corresponding to a failure of any of the plurality of functional circuit units. The first memory stores first placement and routing data that designates a connection state between the functional circuit units. The first transfer unit extracts the first placement and routing data, and writes the connection between the circuit units and the circuit of the spare function circuit unit.

また、再構成可能なディジタル論理ユニットが知られている(例えば、特許文献3参照)。複数の論理セルは、構成可能な特性を有する。メモリは、複数の論理セルの関数性に関する情報を含んだ複数のマイクロプログラムを有し、マイクロプログラムの少なくとも1つが定められたアプリケーションに関係して少なくとも論理ユニットの現在の動作中に再プログラム可能である。第1の手段は、少なくとも1つのマイクロプログラムを選択する。第2の手段は、少なくとも論理ユニットの現在の動作中に選択されたマイクロプログラムの関数性情報に応じて論理セルを構成する。   A reconfigurable digital logic unit is known (see, for example, Patent Document 3). The plurality of logic cells have configurable characteristics. The memory has a plurality of microprograms containing information about the functionality of the plurality of logic cells, and at least one of the microprograms is reprogrammable during at least the current operation of the logic unit in relation to the defined application. is there. The first means selects at least one microprogram. The second means configures the logic cell according to at least the functional information of the microprogram selected during the current operation of the logic unit.

特開平8−44581号公報JP-A-8-44581 特開2009−140353号公報JP 2009-140353 A 特表2005−510901号公報JP 2005-510901 A

情報処理装置は、論理処理部と予備論理処理部とを有する。論理処理部での障害発生を検出すると、予備論理処理部を論理処理部と同一の論理回路構成になるように再構成する。この場合、予備論理処理部に障害がある場合には、修復することができない。   The information processing apparatus includes a logic processing unit and a backup logic processing unit. When the occurrence of a failure in the logic processing unit is detected, the standby logic processing unit is reconfigured to have the same logic circuit configuration as the logic processing unit. In this case, if there is a failure in the backup logical processing unit, it cannot be repaired.

また、予備論理処理部は、複数の論路処理部のうちの最大セル数の論理処理部と同じセル数を持つ必要がある。なぜなら、予備論理処理部が論理処理部を代替するためには、予備論理処理部は論理処理部と同じセル数が必要だからである。そのため、予備論理処理部は、必要とするセル数が多くなり、非常に非効率である。また、論理処理部及び予備論理処理部にセル数の制限があるため、設計に制限がある。   Further, the spare logic processing unit needs to have the same number of cells as the logic processing unit having the maximum number of cells among the plurality of logical path processing units. This is because the spare logical processing unit needs the same number of cells as the logical processing unit in order for the spare logical processing unit to replace the logical processing unit. Therefore, the spare logic processing unit requires a large number of cells and is very inefficient. In addition, since the number of cells is limited in the logic processing unit and the backup logic processing unit, the design is limited.

本発明の目的は、短時間でプログラマブルロジックデバイスの内部故障を修復することができる論理処理装置及びその処理方法を提供することである。   An object of the present invention is to provide a logic processing apparatus and a processing method thereof that can repair an internal failure of a programmable logic device in a short time.

論理処理装置は、複数の領域毎にロジックをプログラム可能なプログラマブルロジックデバイスと、前記プログラマブルロジックデバイスの複数の領域のうちの異なる領域を未使用領域として前記未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータを記憶するコンフィグレーションメモリと、前記複数のコンフィグレーションデータのうちのいずれか1個を選択して前記プログラマブルロジックデバイスのロジックをプログラムさせる選択回路とを有し、前記選択回路は、前記複数のコンフィグレーションデータのうちの前記プログラマブルロジックデバイスの動作に基づくエラーが発生しないコンフィグレーションデータを選択する。   The logic processing apparatus includes a programmable logic device capable of programming logic for each of a plurality of areas, and a different area among the plurality of areas of the programmable logic device as an unused area and an area other than the unused area as a used area. A configuration memory that stores a plurality of configuration data for realizing the same function, and a selection circuit that selects one of the plurality of configuration data to program the logic of the programmable logic device; The selection circuit selects configuration data that does not cause an error based on the operation of the programmable logic device from among the plurality of configuration data.

コンフィグレーションメモリに複数のコンフィグレーションデータを記憶させることにより、短時間でプログラマブルロジックデバイスの内部故障を修復することができる。   By storing a plurality of configuration data in the configuration memory, an internal failure of the programmable logic device can be repaired in a short time.

図1は、第1の実施形態によるプログラマブルロジックデバイスの複数のコンフィグレーションデータの例を示す図である。FIG. 1 is a diagram illustrating an example of a plurality of configuration data of the programmable logic device according to the first embodiment. 図2は、プログラマブルロジックデバイスの修復方法を説明するための図である。FIG. 2 is a diagram for explaining a method for repairing a programmable logic device. 図3は、第1の実施形態による論理処理装置の構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of the logic processing device according to the first embodiment. 図4は、プログラマブルロジックデバイスのエラー検出方法を示す図である。FIG. 4 is a diagram illustrating an error detection method of the programmable logic device. 図5は、図3の選択回路の処理方法を示すフローチャートである。FIG. 5 is a flowchart showing a processing method of the selection circuit of FIG. 図6は、第2の実施形態による論理処理装置の構成例を示す図である。FIG. 6 is a diagram illustrating a configuration example of a logic processing device according to the second embodiment. 図7は、図6の選択回路の処理方法を示すフローチャートである。FIG. 7 is a flowchart showing a processing method of the selection circuit of FIG. 図8は、第3の実施形態による論理処理装置の構成例を示す図である。FIG. 8 is a diagram illustrating a configuration example of a logic processing device according to the third embodiment. 図9は、図8のコンフィグレーションメモリの構成例を示す図である。FIG. 9 is a diagram illustrating a configuration example of the configuration memory of FIG. 図10は、図8の選択回路の処理方法を示すフローチャートである。FIG. 10 is a flowchart showing a processing method of the selection circuit of FIG. 図11は、第4の実施形態によるプログラマブルロジックデバイスの複数のコンフィグレーションデータの例を示す図である。FIG. 11 is a diagram illustrating an example of a plurality of configuration data of the programmable logic device according to the fourth embodiment. 図12は、プログラマブルロジックデバイスの修復方法を説明するための図である。FIG. 12 is a diagram for explaining a method for repairing a programmable logic device. 図13は、第5の実施形態による論理処理装置の構成例を示す図である。FIG. 13 is a diagram illustrating a configuration example of a logic processing device according to the fifth embodiment. 図14は、第6の実施形態による論理処理装置の構成例を示す図である。FIG. 14 is a diagram illustrating a configuration example of a logic processing device according to the sixth embodiment. 図15は、コンフィグレーションデータの例を示す図である。FIG. 15 is a diagram illustrating an example of configuration data. 図16は、図14のプログラマブルロジックデバイスの一部の構成例を示す図である。FIG. 16 is a diagram illustrating a configuration example of a part of the programmable logic device of FIG. 図17は、図14のROMに記憶されるテーブルの構成例を示す図である。FIG. 17 is a diagram showing a configuration example of a table stored in the ROM of FIG. 図18は、図14の選択回路の処理方法を示すフローチャートである。FIG. 18 is a flowchart showing a processing method of the selection circuit of FIG. 図19は、図14のプロセッサの処理方法を示すフローチャートである。FIG. 19 is a flowchart showing a processing method of the processor of FIG.

(第1の実施形態)
図1は、第1の実施形態によるプログラマブルロジックデバイス(PLD)の複数のコンフィグレーションデータCF1〜CF9の例を示す図である。プログラムロジックデバイスは、例えば、FPGA(Field Programmable Gate Array)であり、プログラム可能な論理ゲートとプログラム可能な配線とを有し、再構成可能なロジックデバイスである。論理ゲートは、複数の論理セルで構成される。論理ゲート及び配線をプログラムするには、ユーザがハードウエア記述言語(HDL)などで設計を行い、コンパイルによって論理ゲートの配置及び配線情報を含むバイナリファイルを生成する。プログラマブルロジックデバイスが、このバイナリファイルを読み込んで、内部回路を生成することをコンフィグレーションと呼ぶ。また、このバイナリファイルのことをコンフィグレーションデータと呼ぶ。
(First embodiment)
FIG. 1 is a diagram illustrating an example of a plurality of configuration data CF1 to CF9 of the programmable logic device (PLD) according to the first embodiment. The program logic device is, for example, an FPGA (Field Programmable Gate Array) and has a programmable logic gate and programmable wiring, and is a reconfigurable logic device. The logic gate is composed of a plurality of logic cells. In order to program logic gates and wirings, a user designs with a hardware description language (HDL) or the like, and generates a binary file including logic gate arrangement and wiring information by compilation. A configuration in which the programmable logic device reads this binary file and generates an internal circuit is called configuration. This binary file is called configuration data.

プログラマブルロジックデバイスは、内部の論理セル領域を複数の領域R1〜R9に分割し、複数の領域R1〜R9毎にロジックをプログラム可能である。領域R1〜R9は、全ての論理セルを一切使用しない未使用領域と、論理セルを使用することができる使用領域に分けられる。本実施形態では、複数の領域R1〜R9のうちの異なる領域を未使用領域として未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータCF1〜CF9を生成する。   The programmable logic device divides an internal logic cell region into a plurality of regions R1 to R9, and can program logic for each of the plurality of regions R1 to R9. The regions R1 to R9 are divided into an unused region that does not use all the logic cells and a use region that can use the logic cells. In the present embodiment, a plurality of configuration data CF1 to CF9 are generated for realizing the same function by using different areas of the plurality of areas R1 to R9 as unused areas and areas other than the unused areas as used areas. To do.

例えば、コンフィグレーションデータCF1は、領域R1を未使用領域とし、領域R2〜R9を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF2は、領域R2を未使用領域とし、領域R1、R3〜R9を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF9は、領域R9を未使用領域とし、領域R1〜R8を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF1〜CF9は、相互に未使用領域が異なり、全領域R1〜R9に対して少なくとも1度は未使用領域が割り当てられるように生成する。図1の例では、コンフィグレーションデータCF1〜CF9は、それぞれ、1個の領域を未使用領域として、8個の領域を使用領域とする。   For example, the configuration data CF1 is data for configuring the area R1 as an unused area and the areas R2 to R9 as used areas. The configuration data CF2 is data for configuring the area R2 as an unused area and the areas R1, R3 to R9 as used areas. The configuration data CF9 is data for configuring the area R9 as an unused area and the areas R1 to R8 as used areas. The configuration data CF1 to CF9 are generated so that unused areas are different from each other, and an unused area is allocated at least once for all the areas R1 to R9. In the example of FIG. 1, the configuration data CF1 to CF9 each have one area as an unused area and eight areas as used areas.

プログラマブルロジックデバイスは、コンフィグレーションデータCF1〜CF9のうちのいずれか1つを選択することにより、任意の領域R1〜R9を未使用領域にすることができる。プログラマブルロジックデバイスは、どの領域R1〜R9で故障が起きるか予想できないため、プログラマブルロジックデバイスの故障発生時には故障個所が未使用領域に一致するコンフィグレーションデータCF1〜CF9を選択することにより、プログラマブルロジックデバイスの故障を修復する。   The programmable logic device can make any area | region R1-R9 into an unused area | region by selecting any one of the configuration data CF1-CF9. Since the programmable logic device cannot predict in which region R1 to R9 the failure will occur, the programmable logic device is selected by selecting the configuration data CF1 to CF9 whose failure location matches the unused region when the failure of the programmable logic device occurs. Repair the malfunction.

図2は、プログラマブルロジックデバイスの修復方法を説明するための図である。例えば、プログラマブルロジックデバイスの領域R2で故障が発生した例を説明する。コンフィグレーションデータCF1によりコンフィグレーションした場合、故障が発生した領域R2は使用領域であるため、プログラマブルロジックデバイスは、正常に動作することができない。これに対し、コンフィグレーションデータCF2によりコンフィグレーションした場合、故障が発生した領域R2は未使用領域であるため、プログラマブルロジックデバイスは、正常に動作することができる。このようにして、故障が発生した領域が未使用領域になるように、コンフィグレーションデータCF1〜CF9を選択することにより、プログラマブルロジックデバイスを修復することができる。   FIG. 2 is a diagram for explaining a method for repairing a programmable logic device. For example, an example in which a failure has occurred in the region R2 of the programmable logic device will be described. When the configuration data CF1 is used for configuration, the programmable logic device cannot operate normally because the region R2 where the failure has occurred is a usage region. On the other hand, when the configuration is performed by the configuration data CF2, the programmable logic device can operate normally because the region R2 where the failure has occurred is an unused region. In this way, the programmable logic device can be restored by selecting the configuration data CF1 to CF9 so that the area where the failure has occurred becomes an unused area.

図3は、第1の実施形態による論理処理装置の構成例を示す図である。論理処理装置は、プログラマブルロジックデバイス301、n個のコンフィグレーションメモリMEM1〜MEMn、及び選択回路303を有する。ここで、図1の場合、n=9である。選択回路303は、不揮発メモリ304を有する。   FIG. 3 is a diagram illustrating a configuration example of the logic processing device according to the first embodiment. The logic processing apparatus includes a programmable logic device 301, n configuration memories MEM1 to MEMn, and a selection circuit 303. Here, in the case of FIG. 1, n = 9. The selection circuit 303 has a nonvolatile memory 304.

プログラマブルロジックデバイス301は、例えばFPGAであり、n個の領域R1〜Rn毎にロジックをプログラム可能である。複数のコンフィグレーションメモリMEM1〜MEMnは、例えばROM(Read Only Memory)であり、図1のように、プログラマブルロジックデバイス301の複数の領域R1〜Rnのうちの異なる領域を未使用領域として未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータCF1〜CFnをそれぞれ記憶する。選択回路303は、不揮発メモリ304に記憶されたコンフィグレーションデータ番号に応じて、選択信号SEL1〜SELnのいずれか1個を有効にする。すなわち、選択回路303は、複数のコンフィグレーションメモリMEM1〜MEMnのうちの1個のコンフィグレーションメモリを選択する。コンフィグレーションメモリMEM1〜MEMnは、選択信号SEL1〜SELnのうちの有効の信号に応じて、複数のコンフィグレーションデータCF1〜CFnのうちのいずれか1個を、バス302を介して、プログラマブルロジックデバイス301に出力する。次に、選択回路303は、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、コンフィグレーションメモリMEM1〜MEMnのいずれかから入力したコンフィグレーションデータを基にコンフィグレーションを行う。以上のように、選択回路303は、複数のコンフィグレーションデータCF1〜CFnのうちのいずれか1個を選択してプログラマブルロジックデバイス301のロジックをプログラムさせる。次に、プログラマブルロジックデバイス301は、論理処理を行い、領域R1〜Rnのいずれかでエラーが発生した場合には、エラー信号ERを出力する。選択回路303は、エラー信号ERを検出すると、不揮発メモリ304に記憶されているコンフィグレーションデータ番号を変更し、上記と同様の動作を繰り返す。エラー信号ERが検出されなければ、不揮発メモリ304内のコンフィグレーションデータ番号は確定する。そのコンフィグレーションデータ番号に対応するコンフィグレーションデータCF1〜CFnでは、エラーが発生した領域R1〜Rnが未使用領域となっており、プログラマブルロジックデバイス301は、正常に動作することができる。また、選択回路303は、すべてのコンフィグレーションデータCF1〜CFnにおいてエラー信号ERが発生した場合には、フォルト信号FTを出力し、修復不能であることを知らせる。   The programmable logic device 301 is an FPGA, for example, and can program logic for each of the n regions R1 to Rn. The plurality of configuration memories MEM1 to MEMn are, for example, ROM (Read Only Memory), and as shown in FIG. 1, different areas among the plurality of areas R1 to Rn of the programmable logic device 301 are used as unused areas. A plurality of configuration data CF1 to CFn for realizing the same functions are stored as areas other than those used. The selection circuit 303 validates any one of the selection signals SEL1 to SELn according to the configuration data number stored in the nonvolatile memory 304. That is, the selection circuit 303 selects one configuration memory among the plurality of configuration memories MEM1 to MEMn. The configuration memories MEM <b> 1 to MEMn receive any one of the plurality of configuration data CF <b> 1 to CFn via the bus 302 in accordance with a valid signal among the selection signals SEL <b> 1 to SELn. Output to. Next, the selection circuit 303 outputs the reset signal RS to the programmable logic device 301. When the reset signal RS is input, the programmable logic device 301 performs configuration based on the configuration data input from any of the configuration memories MEM1 to MEMn. As described above, the selection circuit 303 selects any one of the plurality of configuration data CF1 to CFn to program the logic of the programmable logic device 301. Next, the programmable logic device 301 performs a logic process, and outputs an error signal ER when an error occurs in any of the regions R1 to Rn. When the selection circuit 303 detects the error signal ER, the selection circuit 303 changes the configuration data number stored in the nonvolatile memory 304 and repeats the same operation as described above. If the error signal ER is not detected, the configuration data number in the nonvolatile memory 304 is fixed. In the configuration data CF1 to CFn corresponding to the configuration data number, the regions R1 to Rn where the error has occurred are unused regions, and the programmable logic device 301 can operate normally. Further, when the error signal ER is generated in all the configuration data CF1 to CFn, the selection circuit 303 outputs a fault signal FT to notify that it cannot be repaired.

図4は、プログラマブルロジックデバイス301のエラー検出方法の一例を示す図である。プログラマブルロジックデバイス301は、内部バス400と、機能ブロック401と、機能ブロック402とを有する。機能ブロック401及び402は、それぞれ、領域R1〜Rnのうちの1個又は複数の領域で構成される。例えば、図1のコンフィグレーションデータCF1の場合、機能ブロックブロック401は、ハードディスクドライブコントローラであり、領域R2〜R5により構成される。機能ブロックブロック402は、USB(Universal Serial Bus)コントローラであり、領域R6〜R9により構成される。このように、各機能ブロック401及び402を複数の領域で構成することにより、各領域R1〜R9内の論理セルの数の制限をなくすことができる。すなわち、各領域R1〜R9内の論理セルの数は、機能ブロック401及び402のうちの最大の論理セル数にする必要がなくなる。   FIG. 4 is a diagram illustrating an example of an error detection method of the programmable logic device 301. The programmable logic device 301 includes an internal bus 400, a functional block 401, and a functional block 402. Each of the functional blocks 401 and 402 includes one or a plurality of regions among the regions R1 to Rn. For example, in the case of the configuration data CF1 in FIG. 1, the functional block block 401 is a hard disk drive controller, and is composed of areas R2 to R5. The functional block block 402 is a USB (Universal Serial Bus) controller, and is composed of regions R6 to R9. In this way, by configuring each functional block 401 and 402 with a plurality of regions, it is possible to eliminate the restriction on the number of logic cells in each region R1 to R9. That is, the number of logic cells in each of the regions R1 to R9 need not be the maximum number of logic cells in the functional blocks 401 and 402.

機能ブロック401は、フリップフロップ411及びエラー検出回路412を有する。フリップフロップ411は、例えば、論理セルの入力ノードに接続されるフリップフロップ、又は論理セルの出力ノードに接続されるフリップフロップなどであり、プログラマブルロジックデバイス301内に通常配置されている複数のフリップフロップである。フリップフロップ411は、例えば、4ビットデータ及びそのパリティビットを記憶する。エラー検出回路412は、フリップフロップ411に記憶されている4ビットデータを基にパリティビットを演算し、その演算したパリティビットとフリップフロップ411内のパリティビットが等しいときには正常と判断してエラー信号を出力せず、異なるときにはエラー信号を出力する。エラー検出回路412は、プログラマブルロジックデバイス301内のすべて又は一部のフリップフロップ411に接続される。プログラマブルロジックデバイス301は、複数のエラー検出回路412のいずれかがエラー信号を出力すると、エラー信号ERを選択回路303に出力する。   The functional block 401 includes a flip-flop 411 and an error detection circuit 412. The flip-flop 411 is, for example, a flip-flop connected to an input node of a logic cell, or a flip-flop connected to an output node of a logic cell, and a plurality of flip-flops normally arranged in the programmable logic device 301 It is. The flip-flop 411 stores, for example, 4-bit data and its parity bit. The error detection circuit 412 calculates a parity bit based on the 4-bit data stored in the flip-flop 411. When the calculated parity bit is equal to the parity bit in the flip-flop 411, the error detection circuit 412 determines that the error is normal and outputs an error signal. When it is different, an error signal is output. The error detection circuit 412 is connected to all or some of the flip-flops 411 in the programmable logic device 301. The programmable logic device 301 outputs an error signal ER to the selection circuit 303 when any of the plurality of error detection circuits 412 outputs an error signal.

機能ブロック402は、処理ブロック421及び監視部422を有する。処理ブロック421は、機能を実現するための論理処理を行うブロックである。監視部422は、スタート信号STを処理ブロック421に出力する。処理ブロック421は、スタート信号STを入力すると、論理処理を開始し、論理処理を終了すると、完了信号DNを監視部422に出力する。監視部422は、スタート信号STを出力してから規定時間内に完了信号DNを入力すれば正常と判断してエラー信号を出力せず、規定時間内に完了信号DNを入力しない場合にはエラー信号ERを出力する。   The functional block 402 includes a processing block 421 and a monitoring unit 422. The processing block 421 is a block that performs logical processing for realizing the function. The monitoring unit 422 outputs a start signal ST to the processing block 421. The processing block 421 starts the logical processing when the start signal ST is input, and outputs the completion signal DN to the monitoring unit 422 when the logical processing ends. If the completion signal DN is input within the specified time after the start signal ST is output, the monitoring unit 422 determines that it is normal and does not output the error signal. If the completion signal DN is not input within the specified time, an error occurs. The signal ER is output.

なお、機能ブロック401のエラー検出方法と機能ブロック402のエラー検出方法の2種類を説明したが、すべての機能ブロックを同じ方法でエラーを検出してもよいし、異なる方法でエラーを検出してもよい。また、その他、ECC(Error Correction Code)又はCRC(Cyclic
Redundancy Check)を用いてエラーを検出してもよい。また、フリップフロップ411は、レジスタ又はステートマシンであってもよい。
In addition, although the two types of error detection methods of the functional block 401 and the error detection method of the functional block 402 have been described, errors may be detected by the same method for all functional blocks, or errors may be detected by different methods. Also good. In addition, ECC (Error Correction Code) or CRC (Cyclic
An error may be detected using Redundancy Check. The flip-flop 411 may be a register or a state machine.

図5は、図3の選択回路303の処理方法を示すフローチャートである。例えば、論理処理装置の電源が投入されると、選択回路303は、図5の処理を行う。   FIG. 5 is a flowchart showing a processing method of the selection circuit 303 in FIG. For example, when the logic processing device is powered on, the selection circuit 303 performs the processing of FIG.

まず、ステップS501では、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出す。ここで、不揮発メモリ304に記憶されているコンフィグレーションデータ番号の初期値は、1である。   First, in step S501, the selection circuit 303 reads the configuration data number from the nonvolatile memory 304. Here, the initial value of the configuration data number stored in the nonvolatile memory 304 is 1.

次に、ステップS502では、選択回路303は、読み出したコンフィグレーションデータ番号に応じて、選択信号SEL1〜SELnのうちの1個を有効にして、残りを無効にする。例えば、コンフィグレーションデータ番号が1の場合、選択信号SEL1が有効になり、残りの選択信号SEL2〜SELnが無効になる。コンフィグレーションメモリMEM1〜MEMnのうち、選択信号SEL1〜SELnが有効であるコンフィグレーションメモリはコンフィグレーションデータをプログラマブルロジックデバイス301に出力し、選択信号SEL1〜SELnが無効であるコンフィグレーションメモリはコンフィグレーションデータを出力しない。例えば、コンフィグレーションデータ番号が1の場合、コンフィグレーションメモリMEM1がコンフィグレーションデータCF1をプログラマグルロジックデバイス301に出力する。   Next, in step S502, the selection circuit 303 enables one of the selection signals SEL1 to SELn and disables the rest according to the read configuration data number. For example, when the configuration data number is 1, the selection signal SEL1 becomes valid and the remaining selection signals SEL2 to SELn become invalid. Among the configuration memories MEM1 to MEMn, the configuration memory in which the selection signals SEL1 to SELn are valid outputs the configuration data to the programmable logic device 301, and the configuration memory in which the selection signals SEL1 to SELn are invalid is the configuration data. Is not output. For example, when the configuration data number is 1, the configuration memory MEM1 outputs the configuration data CF1 to the programmable logic device 301.

次に、ステップS503では、選択回路303は、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータに基づくコンフィグレーションを行う。その後、プログラマブルロジックデバイス301は、論理処理を行い、エラーが発生するとエラー信号ERを出力し、正常動作をすればエラー信号ERを出力しない。   Next, in step S503, the selection circuit 303 outputs the reset signal RS to the programmable logic device 301. When the reset signal RS is input, the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. Thereafter, the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs, and does not output an error signal ER when it operates normally.

次に、ステップS504では、選択回路303は、エラー信号ERを検出したか否かをチェックし、エラー信号ERが検出されれば、ステップS505に進む。   Next, in step S504, the selection circuit 303 checks whether or not the error signal ER is detected. If the error signal ER is detected, the process proceeds to step S505.

ステップS505では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号をインクリメントする。これにより、コンフィグレーションデータ番号は、1から2に変更される。   In step S505, the selection circuit 303 increments the configuration data number stored in the nonvolatile memory 304. As a result, the configuration data number is changed from 1 to 2.

次に、ステップS506では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号がnより大きいか否かをチェックする。大きくない場合には、ステップS502に戻り、変更後のコンフィグレーションデータ番号について上記の処理を繰り返す。プログラマブルロジックデバイス301が正常動作した場合には、ステップS504で、エラー信号ERが検出されず、不揮発メモリ304のコンフィグレーションデータ番号は、確定する。その結果、コンフィグレーションデータも確定し、プログラマブルロジックデバイス301の故障が修復される。次回、電源を投入した時、ステップS501において、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出すので、修復後のコンフィグレーションデータが選択され、プログラマブルロジックデバイス301は、正常に動作する。   Next, in step S506, the selection circuit 303 checks whether or not the configuration data number stored in the nonvolatile memory 304 is greater than n. If not, the process returns to step S502, and the above processing is repeated for the changed configuration data number. If the programmable logic device 301 operates normally, the error signal ER is not detected in step S504, and the configuration data number of the nonvolatile memory 304 is fixed. As a result, the configuration data is also determined, and the failure of the programmable logic device 301 is repaired. When the power is turned on next time, in step S501, the selection circuit 303 reads the configuration data number from the nonvolatile memory 304. Therefore, the repaired configuration data is selected, and the programmable logic device 301 operates normally.

ステップS506において、コンフィグレーションデータ番号がnより大きくなると、すべてのコンフィグレーションデータCF1〜CFnについてエラー信号ERが検出されたことを意味するので、ステップS507へ進む。   If the configuration data number is larger than n in step S506, it means that the error signal ER has been detected for all the configuration data CF1 to CFn, and the process proceeds to step S507.

ステップS507では、選択回路303は、フォルト信号FTを出力し、プログラマブルロジックデバイス301が修復不能であることを知らせる。フォルト信号FTが発生した後、論理処理装置は、動作を停止してもよい。また、宇宙線などによるプログラマブルロジックデバイス301の一過性のソフトエラーである可能性があるため、論理処理装置は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号を初期値に戻して、再度、上記の処理を繰り返してもよい。   In step S507, the selection circuit 303 outputs a fault signal FT to notify that the programmable logic device 301 cannot be repaired. After the fault signal FT is generated, the logic processing device may stop its operation. In addition, the programmable logic device 301 may be a temporary soft error due to cosmic rays or the like, so the logic processing device returns the configuration data number stored in the nonvolatile memory 304 to the initial value, and again The above processing may be repeated.

以上のように、選択回路303は、複数のコンフィグレーションデータCF1〜CFnのうちのプログラマブルロジックデバイス301の動作に基づくエラーが発生しないコンフィグレーションデータを選択する。具体的には、選択回路303は、複数のコンフィグレーションデータCF1〜CFnを順に選択し、プログラマブルロジックデバイス301がエラー信号ERを出力したときのコンフィグレーションデータを選択せず、プログラマブルロジックデバイス301がエラー信号ERを出力しないときのコンフィグレーションデータを選択して、プログラマブルロジックデバイス301のロジックをプログラムさせる。   As described above, the selection circuit 303 selects configuration data that does not cause an error based on the operation of the programmable logic device 301 among the plurality of configuration data CF1 to CFn. Specifically, the selection circuit 303 sequentially selects a plurality of configuration data CF1 to CFn, does not select the configuration data when the programmable logic device 301 outputs the error signal ER, and the programmable logic device 301 has an error. The configuration data when the signal ER is not output is selected, and the logic of the programmable logic device 301 is programmed.

これにより、本実施形態は、プログラマブルロジックデバイス301の故障の修復を短時間に自動で行うことができる。また、本実施形態は、未使用領域に必要な論理セル数の制限がなく、任意のサイズの領域R1〜Rnを設けることができる。また、未使用領域以外の領域は、一つのブロックとして使用できるので、回路設計を柔軟に行うことができる。また、本実施形態は、未使用領域以外の領域のブロック内に任意の大きさの機能ブロックを複数割り当てることができる。   Thereby, this embodiment can perform the repair of the failure of the programmable logic device 301 automatically in a short time. Further, in the present embodiment, there is no limit on the number of logic cells necessary for an unused area, and areas R1 to Rn of any size can be provided. In addition, since the area other than the unused area can be used as one block, circuit design can be performed flexibly. Further, according to the present embodiment, a plurality of functional blocks having an arbitrary size can be allocated in a block in an area other than an unused area.

(第2の実施形態)
図6は、第2の実施形態による論理処理装置の構成例を示す図である。論理処理装置は、例えばコンピュータシステムである。本実施形態(図6)は、第1の実施形態(図3)に対して、プロセッサ601、ROM602、RAM(Random Access Memory)603、ビデオコントローラ604、バス605、ハードディスクドライブ装置621、PCI(Peripheral Component Interconnect)エクスプレスカード622、LAN(Local Area Network)623及びUSB装置624を追加したものである。以下、本実施形態が第1の実施形態と異なる点を説明する。
(Second Embodiment)
FIG. 6 is a diagram illustrating a configuration example of a logic processing device according to the second embodiment. The logic processing device is, for example, a computer system. This embodiment (FIG. 6) is different from the first embodiment (FIG. 3) in that the processor 601, ROM 602, RAM (Random Access Memory) 603, video controller 604, bus 605, hard disk drive 621, PCI (Peripheral). Component Interconnect) Express card 622, LAN (Local Area Network) 623, and USB device 624 are added. Hereinafter, the points of the present embodiment different from the first embodiment will be described.

バス605には、プロセッサ601、ROM602、RAM603、ビデオコントローラ604及びプログラマブルロジックデバイス301が接続される。プロセッサ601は、例えば中央処理装置(CPU)である。ROM602は、ブート用プログラムなどを記憶する。RAM603は、メインメモリである。ビデオコントローラ604は、表示装置に表示するためのコントローラである。   A processor 601, ROM 602, RAM 603, video controller 604, and programmable logic device 301 are connected to the bus 605. The processor 601 is, for example, a central processing unit (CPU). The ROM 602 stores a boot program and the like. A RAM 603 is a main memory. The video controller 604 is a controller for displaying on a display device.

ハードディスクドライブ装置621は、ハードディスクにデータを記憶することができる。PCIエクスプレスカード622は、SCSI(Small Computer System Interface)などのインターフェースに変換することができる。LAN623は、ローカルエリアネットワークであり、他のネットワーク装置を接続することができる。USB装置624は、例えば、キーボード、マウス又はDVD(Digital Versatile Disc)装置である。   The hard disk drive device 621 can store data in a hard disk. The PCI express card 622 can be converted into an interface such as a small computer system interface (SCSI). The LAN 623 is a local area network and can connect other network devices. The USB device 624 is, for example, a keyboard, a mouse, or a DVD (Digital Versatile Disc) device.

プログラマブルロジックデバイス301は、例えば、コンフィグレーションにより、ハードディスクドライブコントローラ611、PCIエクスプレスコントローラ612、LANコントローラ613及びUSBコントローラ614の機能ブロックを有する。ハードディスクドライブコントローラ611は、ハードディスクドライブ装置621を制御する。PCIエクスプレスコントローラ612は、PCIエクスプレスカード622を制御する。LANコントローラ613は、LAN623を制御する。USBコントローラ614は、USB装置624を制御する。   The programmable logic device 301 has functional blocks of a hard disk drive controller 611, a PCI express controller 612, a LAN controller 613, and a USB controller 614, for example, depending on the configuration. The hard disk drive controller 611 controls the hard disk drive device 621. The PCI express controller 612 controls the PCI express card 622. The LAN controller 613 controls the LAN 623. The USB controller 614 controls the USB device 624.

プロセッサ601は、カウントアップ信号CUを選択回路303に出力することができる。選択回路303は、カウントアップ信号CUを入力すると、不揮発メモリ304に記憶されているコンフィグレーションデータ番号をインクリメントする。   The processor 601 can output the count-up signal CU to the selection circuit 303. When receiving the count-up signal CU, the selection circuit 303 increments the configuration data number stored in the nonvolatile memory 304.

プロセッサ601は、リセット信号RSをプログラマブルロジックデバイス301に出力することができる。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータを基にコンフィグレーションを行う。プログラマブルロジックデバイス301は、論理動作により、エラーが発生すると、エラー信号ERをプロセッサ601に出力する。   The processor 601 can output the reset signal RS to the programmable logic device 301. When the reset signal RS is input, the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. When an error occurs due to a logic operation, the programmable logic device 301 outputs an error signal ER to the processor 601.

プログラマブルロジックデバイス301は、内部の1個の論理セルの故障によっても、正常に動作しなくなる可能性がある。本実施形態では、コンフィグレーションデータCF1〜CFnの設定により、プログラマブルロジックデバイス301の故障を修復する。   The programmable logic device 301 may not operate normally even if one internal logic cell fails. In the present embodiment, the failure of the programmable logic device 301 is repaired by setting the configuration data CF1 to CFn.

図7は、図6の選択回路303の処理方法を示すフローチャートである。例えば、論理処理装置の電源が投入されると、選択回路303は、図7の処理を行う。   FIG. 7 is a flowchart showing a processing method of the selection circuit 303 in FIG. For example, when the logic processing apparatus is powered on, the selection circuit 303 performs the process of FIG.

まず、ステップS701では、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出す。ここで、不揮発メモリ304に記憶されているコンフィグレーションデータ番号の初期値は、1である。   First, in step S701, the selection circuit 303 reads the configuration data number from the nonvolatile memory 304. Here, the initial value of the configuration data number stored in the nonvolatile memory 304 is 1.

次に、ステップS702では、選択回路303は、読み出したコンフィグレーションデータ番号に応じて、選択信号SEL1〜SELnのうちの1個を有効にして、残りを無効にする。例えば、コンフィグレーションデータ番号が1の場合、選択信号SEL1が有効になり、残りの選択信号SEL2〜SELnが無効になる。コンフィグレーションメモリMEM1〜MEMnのうち、選択信号SEL1〜SELnが有効であるコンフィグレーションメモリはコンフィグレーションデータをプログラマブルロジックデバイス301に出力し、選択信号SEL1〜SELnが無効であるコンフィグレーションメモリはコンフィグレーションデータを出力しない。例えば、コンフィグレーションデータ番号が1の場合、コンフィグレーションメモリMEM1がコンフィグレーションデータCF1をプログラマグルロジックデバイス301に出力する。   Next, in step S702, the selection circuit 303 validates one of the selection signals SEL1 to SELn and invalidates the rest according to the read configuration data number. For example, when the configuration data number is 1, the selection signal SEL1 becomes valid and the remaining selection signals SEL2 to SELn become invalid. Among the configuration memories MEM1 to MEMn, the configuration memory in which the selection signals SEL1 to SELn are valid outputs the configuration data to the programmable logic device 301, and the configuration memory in which the selection signals SEL1 to SELn are invalid is the configuration data. Is not output. For example, when the configuration data number is 1, the configuration memory MEM1 outputs the configuration data CF1 to the programmable logic device 301.

次に、プロセッサ601は、選択回路303が次の選択信号SEL1〜SELnを有効にする時間を考慮して、必要な時間が経過後に、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータに基づくコンフィグレーションを行う。その後、プログラマブルロジックデバイス301は、論理処理を行い、エラーが発生するとエラー信号ERを出力し、正常動作をすればエラー信号ERを出力しない。プロセッサ601は、エラー信号ERを入力すると、カウントアップ信号CUを選択回路303に出力する。   Next, the processor 601 outputs the reset signal RS to the programmable logic device 301 after a necessary time has elapsed in consideration of the time during which the selection circuit 303 enables the next selection signals SEL1 to SELn. When the reset signal RS is input, the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. Thereafter, the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs, and does not output an error signal ER when it operates normally. When receiving the error signal ER, the processor 601 outputs a count-up signal CU to the selection circuit 303.

次に、ステップS703では、選択回路303は、カウントアップ信号CUを検出したか否かをチェックし、カウントアップ信号CUが検出されれば、ステップS704に進む。   Next, in step S703, the selection circuit 303 checks whether or not the count-up signal CU is detected. If the count-up signal CU is detected, the process proceeds to step S704.

ステップS704では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号をインクリメントする。これにより、コンフィグレーションデータ番号は、1から2に変更される。   In step S704, the selection circuit 303 increments the configuration data number stored in the nonvolatile memory 304. As a result, the configuration data number is changed from 1 to 2.

次に、ステップS705では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号がnより大きいか否かをチェックする。大きくない場合には、ステップS702に戻り、変更後のコンフィグレーションデータ番号について上記の処理を繰り返す。プログラマブルロジックデバイス301が正常動作した場合には、ステップS703で、カウントアップ信号CUが検出されず、不揮発メモリ304のコンフィグレーションデータ番号は、確定する。その結果、コンフィグレーションデータも確定し、プログラマブルロジックデバイス301の故障が修復される。次回、電源を投入した時、ステップS701において、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出すので、修復後のコンフィグレーションデータが選択され、プログラマブルロジックデバイス301は、正常に動作する。   In step S705, the selection circuit 303 checks whether the configuration data number stored in the nonvolatile memory 304 is greater than n. If not, the process returns to step S702, and the above processing is repeated for the changed configuration data number. If the programmable logic device 301 operates normally, the count-up signal CU is not detected in step S703, and the configuration data number of the nonvolatile memory 304 is determined. As a result, the configuration data is also determined, and the failure of the programmable logic device 301 is repaired. When the power is turned on next time, in step S701, the selection circuit 303 reads the configuration data number from the nonvolatile memory 304. Therefore, the repaired configuration data is selected, and the programmable logic device 301 operates normally.

ステップS705において、コンフィグレーションデータ番号がnより大きくなると、すべてのコンフィグレーションデータCF1〜CFnについてカウントアップ信号CUが検出されたことを意味するので、ステップS706へ進む。   If the configuration data number becomes larger than n in step S705, it means that the count-up signal CU has been detected for all the configuration data CF1 to CFn, and the process proceeds to step S706.

ステップS706では、選択回路303は、フォルト信号FTを出力し、プログラマブルロジックデバイス301が修復不能であることを知らせる。   In step S706, the selection circuit 303 outputs the fault signal FT to notify that the programmable logic device 301 cannot be repaired.

以上のように、プロセッサ601は、プログラマブルロジックデバイス301がエラー信号ERを出力したときには、選択回路303に次のコンフィグレーションデータCF1〜CFnを選択させる。本実施形態は、第1の実施形態と同様の効果を得ることができる。   As described above, when the programmable logic device 301 outputs the error signal ER, the processor 601 causes the selection circuit 303 to select the next configuration data CF1 to CFn. This embodiment can obtain the same effects as those of the first embodiment.

(第3の実施形態)
図8は、第3の実施形態による論理処理装置の構成例を示す図である。本実施形態(図8)は、第2の実施形態(図6)に対して、n個のコンフィグレーションメモリMEM1〜MEMnを1個のコンフィグレーションメモリMEMに変更した点が異なる。以下、本実施形態が第2の実施形態と異なる点を説明する。
(Third embodiment)
FIG. 8 is a diagram illustrating a configuration example of a logic processing device according to the third embodiment. This embodiment (FIG. 8) is different from the second embodiment (FIG. 6) in that n configuration memories MEM1 to MEMn are changed to one configuration memory MEM. Hereinafter, the points of the present embodiment different from the second embodiment will be described.

コンフィグレーションメモリMEMは、例えばROMであり、異なるアドレスに複数のコンフィグレーションデータCF1〜CFnをそれぞれ記憶する。選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号に応じて、上記の複数のアドレスのうちの1個のアドレスADを選択して、コンフィグレーションメモリMEMに出力する。コンフィグレーションメモリMEMは、アドレスADに記憶されているコンフィグレーションデータを、バス302を介して、プログラマブルロジックデバイス301に出力する。   The configuration memory MEM is, for example, a ROM, and stores a plurality of configuration data CF1 to CFn at different addresses. The selection circuit 303 selects one address AD among the plurality of addresses according to the configuration data number stored in the nonvolatile memory 304, and outputs the selected address AD to the configuration memory MEM. The configuration memory MEM outputs configuration data stored in the address AD to the programmable logic device 301 via the bus 302.

図9は、図8のコンフィグレーションメモリMEMの構成例を示す図である。コンフィグレーションメモリMEMは、n個のアドレスAD1〜ADnを開始アドレスとしてn個のコンフィグレーションデータCF1〜CFnをそれぞれ記憶する。コンフィグレーションメモリMEMは、アドレスADを入力し、アドレスADに記憶されているコンフィグレーションデータを、バス302を介して、プログラマブルロジックデバイス301に出力する。例えば、アドレスADがアドレスAD1の場合には、コンフィグレーションメモリMEMは、アドレスAD1に記憶されているコンフィグレーションデータCF1をプログラマブルロジックデバイス301に出力する。選択回路303は、複数のアドレスAD1〜ADnのうちの1個のアドレスを選択して出力する。   FIG. 9 is a diagram illustrating a configuration example of the configuration memory MEM in FIG. The configuration memory MEM stores n configuration data CF1 to CFn using n addresses AD1 to ADn as start addresses. The configuration memory MEM receives the address AD, and outputs the configuration data stored in the address AD to the programmable logic device 301 via the bus 302. For example, when the address AD is the address AD1, the configuration memory MEM outputs the configuration data CF1 stored in the address AD1 to the programmable logic device 301. The selection circuit 303 selects and outputs one address among the plurality of addresses AD1 to ADn.

図10は、図8の選択回路303の処理方法を示すフローチャートである。例えば、論理処理装置の電源が投入されると、選択回路303は、図10の処理を行う。   FIG. 10 is a flowchart showing a processing method of the selection circuit 303 in FIG. For example, when the logic processing apparatus is powered on, the selection circuit 303 performs the process of FIG.

まず、ステップS1001では、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出す。ここで、不揮発メモリ304に記憶されているコンフィグレーションデータ番号の初期値は、1である。   First, in step S1001, the selection circuit 303 reads the configuration data number from the nonvolatile memory 304. Here, the initial value of the configuration data number stored in the nonvolatile memory 304 is 1.

次に、ステップS1002では、選択回路303は、読み出したコンフィグレーションデータ番号に応じて、読み出し開始アドレスADを出力する。例えば、コンフィグレーションデータ番号が1の場合、読み出し開始アドレスADは、アドレスAD1になる。コンフィグレーションメモリMEMは、読み出し開始アドレスADに記憶されているコンフィグレーションデータをプログラマブルロジックデバイス301に出力する。例えば、読み出し開始アドレスADがアドレスAD1の場合、コンフィグレーションメモリMEMは、コンフィグレーションデータCF1をプログラマグルロジックデバイス301に出力する。   Next, in step S1002, the selection circuit 303 outputs a read start address AD according to the read configuration data number. For example, when the configuration data number is 1, the read start address AD is the address AD1. The configuration memory MEM outputs configuration data stored in the read start address AD to the programmable logic device 301. For example, when the read start address AD is the address AD1, the configuration memory MEM outputs the configuration data CF1 to the programmable logic device 301.

次に、プロセッサ601は、選択回路303が次の選択信号SEL1〜SELnを有効にする時間を考慮して、必要な時間が経過後に、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータに基づくコンフィグレーションを行う。その後、プログラマブルロジックデバイス301は、論理処理を行い、エラーが発生するとエラー信号ERを出力し、正常動作をすればエラー信号ERを出力しない。プロセッサ601は、エラー信号ERを入力すると、カウントアップ信号CUを選択回路303に出力する。   Next, the processor 601 outputs the reset signal RS to the programmable logic device 301 after a necessary time has elapsed in consideration of the time during which the selection circuit 303 enables the next selection signals SEL1 to SELn. When the reset signal RS is input, the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. Thereafter, the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs, and does not output an error signal ER when it operates normally. When receiving the error signal ER, the processor 601 outputs a count-up signal CU to the selection circuit 303.

次に、ステップS1003では、選択回路303は、カウントアップ信号CUを検出したか否かをチェックし、カウントアップ信号CUが検出されれば、ステップS1004に進む。   Next, in step S1003, the selection circuit 303 checks whether or not the count-up signal CU is detected. If the count-up signal CU is detected, the process proceeds to step S1004.

ステップS1004では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号をインクリメントする。これにより、コンフィグレーションデータ番号は、1から2に変更される。   In step S1004, the selection circuit 303 increments the configuration data number stored in the nonvolatile memory 304. As a result, the configuration data number is changed from 1 to 2.

次に、ステップS1005では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号がnより大きいか否かをチェックする。大きくない場合には、ステップS1002に戻り、変更後のコンフィグレーションデータ番号について上記の処理を繰り返す。プログラマブルロジックデバイス301が正常動作した場合には、ステップS1003で、カウントアップ信号CUが検出されず、不揮発メモリ304のコンフィグレーションデータ番号は、確定する。その結果、コンフィグレーションデータも確定し、プログラマブルロジックデバイス301の故障が修復される。次回、電源を投入した時、ステップS1001において、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出すので、修復後のコンフィグレーションデータが選択され、プログラマブルロジックデバイス301は、正常に動作する。   In step S1005, the selection circuit 303 checks whether the configuration data number stored in the nonvolatile memory 304 is greater than n. If not, the process returns to step S1002, and the above processing is repeated for the changed configuration data number. If the programmable logic device 301 operates normally, the count-up signal CU is not detected in step S1003, and the configuration data number of the nonvolatile memory 304 is determined. As a result, the configuration data is also determined, and the failure of the programmable logic device 301 is repaired. When the power is turned on next time, the selection circuit 303 reads the configuration data number from the nonvolatile memory 304 in step S1001, so that the configuration data after the repair is selected, and the programmable logic device 301 operates normally.

ステップS1005において、コンフィグレーションデータ番号がnより大きくなると、すべてのコンフィグレーションデータCF1〜CFnについてカウントアップ信号CUが検出されたことを意味するので、ステップS1006へ進む。   If the configuration data number is larger than n in step S1005, it means that the count-up signal CU has been detected for all the configuration data CF1 to CFn, and the process proceeds to step S1006.

ステップS1006では、選択回路303は、フォルト信号FTを出力し、プログラマブルロジックデバイス301が修復不能であることを知らせる。本実施形態は、第2の実施形態と同様の効果を得ることができる。   In step S1006, the selection circuit 303 outputs a fault signal FT to notify that the programmable logic device 301 cannot be repaired. This embodiment can obtain the same effects as those of the second embodiment.

(第4の実施形態)
図11は、第4の実施形態によるプログラマブルロジックデバイス301の複数のコンフィグレーションデータCF1〜CF36の例を示す図である。以下、本実施形態が第1〜第3の実施形態と異なる点を説明する。
(Fourth embodiment)
FIG. 11 is a diagram illustrating an example of a plurality of configuration data CF1 to CF36 of the programmable logic device 301 according to the fourth embodiment. Hereinafter, differences of the present embodiment from the first to third embodiments will be described.

プログラマブルロジックデバイス301は、内部の論理セル領域が例えば9個の領域R1〜R9に分割される。本実施形態では、9個の領域R1〜R9のうちの相互に異なる2個の領域を未使用領域として未使用領域以外の領域を使用領域として相互に同じ機能を実現するための36個のコンフィグレーションデータCF1〜CF36を生成する。   In the programmable logic device 301, an internal logic cell region is divided into, for example, nine regions R1 to R9. In the present embodiment, 36 configs for realizing the same function with each other using two different areas of the nine areas R1 to R9 as unused areas and areas other than the unused areas as used areas. Generation data CF1 to CF36.

例えば、コンフィグレーションデータCF1は、領域R1及びR2を未使用領域とし、領域R3〜R9を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF2は、領域R1及びR3を未使用領域とし、領域R2、R4〜R9を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF36は、領域R8及びR9を未使用領域とし、領域R1〜R7を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF1〜CF36は、相互に未使用領域が異なり、領域R1〜R9のうちのすべての2個の領域の組み合わせが未使用領域として割り当てられるように生成される。   For example, the configuration data CF1 is data for configuring the areas R1 and R2 as unused areas and the areas R3 to R9 as used areas. The configuration data CF2 is data for configuring the areas R1 and R3 as unused areas and the areas R2, R4 to R9 as used areas. The configuration data CF36 is data for configuring the areas R8 and R9 as unused areas and the areas R1 to R7 as used areas. The configuration data CF1 to CF36 are generated so that unused areas are different from each other, and combinations of all two areas among the areas R1 to R9 are allocated as unused areas.

プログラマブルロジックデバイス301は、コンフィグレーションデータCF1〜CF36のうちのいずれか1つを選択することにより、任意の2個の領域R1〜R9を未使用領域にすることができる。プログラマブルロジックデバイス301は、1個又は2個の領域で故障が発生した場合に、故障個所が未使用領域に一致するコンフィグレーションデータCF1〜CF36を選択することにより、プログラマブルロジックデバイス301の故障を修復する。   The programmable logic device 301 can make any two areas R1 to R9 unused areas by selecting any one of the configuration data CF1 to CF36. The programmable logic device 301 repairs the failure of the programmable logic device 301 by selecting the configuration data CF1 to CF36 whose failure location matches the unused area when a failure occurs in one or two areas. To do.

図12は、プログラマブルロジックデバイス301の修復方法を説明するための図である。例えば、プログラマブルロジックデバイス301の領域R1及びR3で故障が発生した例を説明する。コンフィグレーションデータCF1によりコンフィグレーションした場合、故障が発生した領域R3は使用領域であるため、プログラマブルロジックデバイス301は、正常に動作することができない。これに対し、コンフィグレーションデータCF2によりコンフィグレーションした場合、故障が発生した領域R1及びR3は未使用領域であるため、プログラマブルロジックデバイス301は、正常に動作することができる。このようにして、故障が発生した領域が未使用領域になるように、コンフィグレーションデータCF1〜CF36を選択することにより、プログラマブルロジックデバイス301を修復することができる。なお、未使用領域が3個以上になるように、コンフィグレーションデータを生成するようにしてもよい。   FIG. 12 is a diagram for explaining a method for repairing the programmable logic device 301. For example, an example in which a failure has occurred in the regions R1 and R3 of the programmable logic device 301 will be described. When the configuration is performed using the configuration data CF1, the programmable logic device 301 cannot operate normally because the region R3 where the failure has occurred is a usage region. On the other hand, when the configuration is performed using the configuration data CF2, the regions R1 and R3 where the failure has occurred are unused regions, so that the programmable logic device 301 can operate normally. In this way, the programmable logic device 301 can be restored by selecting the configuration data CF1 to CF36 so that the area where the failure has occurred becomes an unused area. Note that the configuration data may be generated so that there are three or more unused areas.

図11に示す通り、9個の領域R1〜R9のうちの2個の領域を未使用領域にすると、生成されるコンフィグレーションデータの組み合わせは、次式で計算することができ、36個のコンフィグレーションデータCF1〜CF36を生成すればよい。   As shown in FIG. 11, when two of the nine regions R1 to R9 are set as unused regions, a combination of generated configuration data can be calculated by the following equation. The generation data CF1 to CF36 may be generated.

/2!
=9!/{(9−2)!×2!}
=9×8/2
=36
9 C 2 = 9 P 2/ 2!
= 9! / {(9-2)! × 2! }
= 9 × 8/2
= 36

また、プログラマブルロジックデバイス301の内部をn分割し、m個の未使用領域を設定する場合、コンフィグレーションデータの組み合わせは、次式で計算することができる。   When the inside of the programmable logic device 301 is divided into n and m unused areas are set, the combination of configuration data can be calculated by the following equation.

/m!
=n!/{(n−m)!×m!}
n C m = n P m / m!
= N! / {(Nm)! × m! }

これにより、n個の領域で故障が発生しても、プログラマブルロジックデバイス301は、故障を修復し、正常に動作することができる。以上のように、未使用領域は、1個の領域でもよいし、複数の領域でもよい。   Thereby, even if a failure occurs in n regions, the programmable logic device 301 can repair the failure and operate normally. As described above, the unused area may be one area or a plurality of areas.

(第5の実施形態)
図13は、第5の実施形態による論理処理装置の構成例を示す図である。本実施形態(図13)は、第3の実施形態(図8)に対して、コンピュータ1301及び論理和(OR)回路1302を追加したものである。以下、本実施形態が第3の実施形態と異なる点を説明する。
(Fifth embodiment)
FIG. 13 is a diagram illustrating a configuration example of a logic processing device according to the fifth embodiment. In this embodiment (FIG. 13), a computer 1301 and a logical sum (OR) circuit 1302 are added to the third embodiment (FIG. 8). Hereinafter, differences of the present embodiment from the third embodiment will be described.

ハードディスクドライブ装置621、PCIエクスプレスカード622、コンピュータ1301、及びUSB装置624は、プログラマブルロジックデバイス301の出力信号を用いて処理する外部装置である。   The hard disk drive device 621, the PCI express card 622, the computer 1301, and the USB device 624 are external devices that perform processing using the output signal of the programmable logic device 301.

ハードディスクドライブコントローラ611は、プログラマブルロジックデバイス301の領域R1〜R9の一部により構成される。ハードディスクドライブコントローラ611を構成する領域R1〜R9で故障が発生すると、ハードディスクドライブ装置621は、エラーが発生し、エラー信号ER1を出力する。   The hard disk drive controller 611 is configured by a part of the regions R1 to R9 of the programmable logic device 301. When a failure occurs in the areas R1 to R9 constituting the hard disk drive controller 611, the hard disk drive device 621 generates an error and outputs an error signal ER1.

PCIエクスプレスコントローラ612は、プログラマブルロジックデバイス301の領域R1〜R9の一部により構成される。PCIエクスプレスコントローラ612を構成する領域R1〜R9で故障が発生すると、PCIエクスプレスカード622は、エラーが発生し、エラー信号ER2を出力する。   The PCI express controller 612 is configured by a part of the regions R1 to R9 of the programmable logic device 301. When a failure occurs in the areas R1 to R9 constituting the PCI express controller 612, the PCI express card 622 generates an error and outputs an error signal ER2.

コンピュータ1301は、LAN623に接続される。LANコントローラ613は、プログラマブルロジックデバイス301の領域R1〜R9の一部により構成される。LANコントローラ613を構成する領域R1〜R9で故障が発生すると、コンピュータ1301は、エラーが発生し、エラー信号ER3を出力する。   A computer 1301 is connected to the LAN 623. The LAN controller 613 is configured by a part of the regions R1 to R9 of the programmable logic device 301. When a failure occurs in the areas R1 to R9 constituting the LAN controller 613, the computer 1301 generates an error and outputs an error signal ER3.

USBコントローラ614は、プログラマブルロジックデバイス301の領域R1〜R9の一部により構成される。USBコントローラ614を構成する領域R1〜R9で故障が発生すると、USB装置624は、エラーが発生し、エラー信号ER4を出力する。   The USB controller 614 is configured by a part of the regions R1 to R9 of the programmable logic device 301. When a failure occurs in the regions R1 to R9 constituting the USB controller 614, the USB device 624 generates an error and outputs an error signal ER4.

論理和回路1302は、エラー信号ER1〜ER4の論理和信号を、エラー信号ERとしてプロセッサ601に出力する。プロセッサ601は、第3の実施形態と同様に、エラー信号ERを入力すると、カウントアップ信号CUを選択回路303に出力する。   The logical sum circuit 1302 outputs a logical sum signal of the error signals ER1 to ER4 to the processor 601 as the error signal ER. As in the third embodiment, when the error signal ER is input, the processor 601 outputs the count-up signal CU to the selection circuit 303.

選択回路303は、複数のコンフィグレーションデータCF1〜CFnのうちの外部装置621,622,624,1301がエラーを発生したコンフィグレーションデータを選択せず、複数のコンフィグレーションデータCF1〜CFnのうちの外部装置621,622,624,1301がエラーを発生しないコンフィグレーションデータを選択する。   The selection circuit 303 does not select the configuration data in which the external devices 621, 622, 624, and 1301 generated an error among the plurality of configuration data CF1 to CFn, and the external circuit 621 among the plurality of configuration data CF1 to CFn The devices 621, 622, 624, and 1301 select configuration data that does not cause an error.

プログラマブルロジックデバイス301が自己の内部故障を検出できず、ハードディスクドライブ装置621、PCIエクスプレスカード622、コンピュータ1301、又はUSB装置624の外部装置がエラーを検出する場合がある。本実施形態は、外部装置621,622,624,1301がエラーを検出した場合に、上記と同様に、コンフィグレーションデータCF1〜CFnの切り替えを行い、故障を修復する。   In some cases, the programmable logic device 301 cannot detect its own internal failure, and an external device such as the hard disk drive device 621, the PCI express card 622, the computer 1301, or the USB device 624 may detect an error. In the present embodiment, when the external devices 621, 622, 624, and 1301 detect an error, the configuration data CF1 to CFn are switched and the failure is repaired in the same manner as described above.

(第6の実施形態)
図14は、第6の実施形態による論理処理装置の構成例を示す図である。本実施形態(図14)は、第3の実施形態(図8)に対して、エラー表示レジスタ1401を追加したものである。以下、本実施形態が第3の実施形態と異なる点を説明する。
(Sixth embodiment)
FIG. 14 is a diagram illustrating a configuration example of a logic processing device according to the sixth embodiment. In this embodiment (FIG. 14), an error display register 1401 is added to the third embodiment (FIG. 8). Hereinafter, differences of the present embodiment from the third embodiment will be described.

エラー表示レジスタ1401は、プログラマブルロジックデバイス301内に設けられる。不揮発メモリ304は、バス605を介して、プロセッサ601に接続される。プロセッサ601は、不揮発メモリ304内のコンフィグレーションデータ番号を読み書きすることができる。本実施形態は、エラー表示レジスタ1401を用いて、プログラマブルロジックデバイス301内の故障領域を特定し、その故障領域を未使用領域とするコンフィグレーションデータを一度で選択する。   The error display register 1401 is provided in the programmable logic device 301. The nonvolatile memory 304 is connected to the processor 601 through the bus 605. The processor 601 can read and write the configuration data number in the nonvolatile memory 304. In the present embodiment, a failure area in the programmable logic device 301 is specified using the error display register 1401, and configuration data that sets the failure area as an unused area is selected at a time.

図15は、図1に対応し、コンフィグレーションデータCF1〜CF9の例を示す図である。コンフィグレーションデータCF1〜CF9は、それぞれ、1個の未使用領域NR及び8個の使用領域U1〜U8を有する。   FIG. 15 corresponds to FIG. 1 and shows an example of the configuration data CF1 to CF9. Each of the configuration data CF1 to CF9 has one unused area NR and eight used areas U1 to U8.

図16は、図14のプログラマブルロジックデバイス301の一部の構成例を示す図である。プログラマブルロジックデバイス301は、8個の領域R2〜R9及びエラー表示レジスタ1401を有する。領域R2〜R9は、初期のコンフィグレーションデータCF1において使用領域U1〜U8に設定されている領域である。エラー表示レジスタ1401は、8ビットのエラー信号を記憶する。各領域R1〜R9は、1個の機能ブロックを構成することが好ましい。   FIG. 16 is a diagram illustrating a configuration example of a part of the programmable logic device 301 of FIG. The programmable logic device 301 has eight regions R2 to R9 and an error display register 1401. The areas R2 to R9 are areas set as the use areas U1 to U8 in the initial configuration data CF1. The error display register 1401 stores an 8-bit error signal. Each region R1 to R9 preferably constitutes one functional block.

領域R2は、論理和回路LG2を有し、図4の複数のエラー検出回路412により出力されるエラー信号の論理和信号を、エラー信号ER2として出力する。複数のエラー検出回路412が出力するエラー信号のうちのいずれか1個でも「1」になれば、エラー信号ER2は「1」になる。エラー信号ER2は、「1」がエラー発生を示し、エラー表示レジスタ1401のビット0に書き込まれる。   The region R2 includes a logical sum circuit LG2, and outputs a logical sum signal of error signals output from the plurality of error detection circuits 412 in FIG. 4 as an error signal ER2. If any one of the error signals output from the plurality of error detection circuits 412 becomes “1”, the error signal ER2 becomes “1”. In the error signal ER2, “1” indicates that an error has occurred, and is written to bit 0 of the error display register 1401.

同様に、領域R9は、論理和回路LG9を有し、図4の複数のエラー検出回路412により出力されるエラー信号の論理和信号を、エラー信号ER9として出力する。複数のエラー検出回路412が出力するエラー信号のうちのいずれか1個でも「1」になれば、エラー信号ER9は「1」になる。エラー信号ER9は、「1」がエラー発生を示し、エラー表示レジスタ1401のビット7に書き込まれる。   Similarly, the region R9 has a logical sum circuit LG9, and outputs a logical sum signal of error signals output from the plurality of error detection circuits 412 in FIG. 4 as an error signal ER9. If any one of the error signals output from the plurality of error detection circuits 412 becomes “1”, the error signal ER9 becomes “1”. In the error signal ER9, “1” indicates that an error has occurred, and is written in bit 7 of the error display register 1401.

領域R2〜R9のエラー信号ER2〜ER9は、それぞれエラー表示レジスタ1401のビット0〜ビット7に書き込まれる。エラー表示レジスタ1401は、各領域R2〜R9のエラー検出回路412によって検出されたエラー信号ER2〜ER9を各ビットに割り当てる。プロセッサ601は、初期のコンフィグレーションデータCF1の使用時に、領域R2〜R9のエラー信号ER2〜ER9を検出した時に、エラー表示レジスタ1401に記憶されているエラー信号ER2〜ER9を読み出すことにより、使用領域U1〜U8のうちのどの領域が故障したのかを認識できる。   The error signals ER2 to ER9 in the areas R2 to R9 are written in bits 0 to 7 of the error display register 1401, respectively. The error display register 1401 assigns the error signals ER2 to ER9 detected by the error detection circuit 412 of each region R2 to R9 to each bit. The processor 601 reads the error signals ER2 to ER9 stored in the error display register 1401 when it detects the error signals ER2 to ER9 in the areas R2 to R9 when the initial configuration data CF1 is used. It is possible to recognize which region of U1 to U8 has failed.

図17は、図14のROM602に記憶されるテーブルの構成例を示す図である。テーブルは、エラー検出レジスタ1401の各ビット番号1701と、そのビット番号1701に対応する領域U1〜U8を未使用領域NRに設定しているコンフィグレーションデータCF2〜CF9の番号1702との対応関係を記憶する。例えば、エラー表示レジスタ1401のビット0が「1」の場合、故障領域U1が未使用領域NRとなるコンフィグレーションデータCF2が設定される。これにより、プロセッサ601は、エラー表示レジスタ1401に記憶されているエラー信号ER2〜ER9を基に、このテーブルによってその故障領域を未使用領域NRとするコンフィグレーションデータCF2〜CF9の番号を一意で得ることができる。   FIG. 17 is a diagram showing a configuration example of a table stored in the ROM 602 of FIG. The table stores the correspondence between each bit number 1701 of the error detection register 1401 and the number 1702 of the configuration data CF2 to CF9 in which the areas U1 to U8 corresponding to the bit number 1701 are set to the unused area NR. To do. For example, when bit 0 of the error display register 1401 is “1”, configuration data CF2 in which the failure area U1 becomes the unused area NR is set. As a result, the processor 601 uniquely obtains the numbers of the configuration data CF2 to CF9 having the failure area as the unused area NR based on the error signals ER2 to ER9 stored in the error display register 1401. be able to.

図18は、図14の選択回路303の処理方法を示すフローチャートである。例えば、論理処理装置の電源が投入されると、選択回路303は、図18の処理を行う。   FIG. 18 is a flowchart showing a processing method of the selection circuit 303 in FIG. For example, when the logic processing apparatus is powered on, the selection circuit 303 performs the process of FIG.

まず、ステップS1801では、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出す。ここで、不揮発メモリ304に記憶されているコンフィグレーションデータ番号の初期値は、1である。   First, in step S1801, the selection circuit 303 reads a configuration data number from the nonvolatile memory 304. Here, the initial value of the configuration data number stored in the nonvolatile memory 304 is 1.

次に、ステップS1802では、選択回路303は、読み出したコンフィグレーションデータ番号に応じて、読み出し開始アドレスADを出力する。例えば、コンフィグレーションデータ番号が1の場合、読み出し開始アドレスADは、アドレスAD1になる。コンフィグレーションメモリMEMは、読み出し開始アドレスADに記憶されているコンフィグレーションデータをプログラマブルロジックデバイス301に出力する。例えば、読み出し開始アドレスADがアドレスAD1の場合、コンフィグレーションメモリMEMは、コンフィグレーションデータCF1をプログラマグルロジックデバイス301に出力する。   In step S1802, the selection circuit 303 outputs a read start address AD in accordance with the read configuration data number. For example, when the configuration data number is 1, the read start address AD is the address AD1. The configuration memory MEM outputs configuration data stored in the read start address AD to the programmable logic device 301. For example, when the read start address AD is the address AD1, the configuration memory MEM outputs the configuration data CF1 to the programmable logic device 301.

次に、ステップS1803では、選択回路303は、プロセッサ601からの書き込み指示を検出したか否かをチェックする。検出した場合には、ステップS1804に進む。   In step S1803, the selection circuit 303 checks whether a write instruction from the processor 601 has been detected. If detected, the process proceeds to step S1804.

ステップS1804では、選択回路303は、プロセッサ601から書き込み指示されたコンフィグレーションデータ番号を、不揮発メモリ304に書き込む。その後、ステップS1801に戻り、上記と同様の処理を繰り返す。   In step S1804, the selection circuit 303 writes the configuration data number instructed by the processor 601 to the nonvolatile memory 304. Thereafter, the process returns to step S1801, and the same processing as described above is repeated.

図19は、図14のプロセッサ601の処理方法を示すフローチャートである。例えば、論理処理装置の電源が投入されると、プロセッサ601は、図19の処理を行う。   FIG. 19 is a flowchart showing a processing method of the processor 601 in FIG. For example, when the logic processing apparatus is powered on, the processor 601 performs the processing of FIG.

まず、ステップS1901では、プロセッサ601は、不揮発メモリ304からコンフィグレーションデータ番号を読み出す。ここで、不揮発メモリ304に記憶されているコンフィグレーションデータ番号の初期値は、1である。   First, in step S1901, the processor 601 reads the configuration data number from the nonvolatile memory 304. Here, the initial value of the configuration data number stored in the nonvolatile memory 304 is 1.

次に、ステップS1902では、プロセッサ601は、必要な時間が経過後に、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータに基づくコンフィグレーションを行う。その後、プログラマブルロジックデバイス301は、論理処理を行い、エラーが発生するとエラー信号ERを出力し、正常動作をすればエラー信号ERを出力しない。   Next, in step S1902, the processor 601 outputs a reset signal RS to the programmable logic device 301 after a necessary time has elapsed. When the reset signal RS is input, the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. Thereafter, the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs, and does not output an error signal ER when it operates normally.

次に、ステップS1903では、プロセッサ601は、エラー信号ERを検出したか否かをチェックし、エラー信号ERが検出されれば、ステップS1904に進む。エラー信号ERが検出されなければ、不揮発メモリ304に記憶されているコンフィグレーションデータ番号は、「1」の初期値に確定し、故障の修復を行う必要はない。プログラマブルロジックデバイス301は、正常に動作することができる。   Next, in step S1903, the processor 601 checks whether or not the error signal ER is detected, and if the error signal ER is detected, the process proceeds to step S1904. If the error signal ER is not detected, the configuration data number stored in the nonvolatile memory 304 is fixed to the initial value “1”, and it is not necessary to repair the failure. The programmable logic device 301 can operate normally.

ステップS1904では、プロセッサ601は、対象のコンフィグレーションデータ番号が初期値のコンフィグレーションデータ番号であるか否かをチェックする。初期値であれば、ステップS1905に進む。   In step S1904, the processor 601 checks whether or not the target configuration data number is an initial configuration data number. If it is an initial value, the process proceeds to step S1905.

ステップS1905では、プロセッサ601は、エラー表示レジスタ1401に記憶されているエラー信号ER2〜ER9を読み出す。   In step S1905, the processor 601 reads the error signals ER2 to ER9 stored in the error display register 1401.

次に、ステップS1906では、プロセッサ601は、図17のテーブルを用いて、エラーが発生した領域U1〜U8を未使用領域にするコンフィグレーションデータ番号を取得する。   Next, in step S1906, the processor 601 uses the table in FIG. 17 to obtain configuration data numbers that make the areas U1 to U8 in which errors occur unused areas.

次に、ステップS1907では、プロセッサ601は、取得したコンフィグレーションデータ番号を不揮発メモリ304に書き込み、ステップS1902に戻る。すると、選択回路303は、図18のステップS1802において、コンフィグレーションデータ番号に応じて、読み出し開始アドレスADを出力する。そして、コンフィグレーションメモリMEMは、読み出し開始アドレスADに記憶されているコンフィグレーションデータをプログラマブルロジックデバイス301に出力する。   Next, in step S1907, the processor 601 writes the acquired configuration data number in the nonvolatile memory 304, and returns to step S1902. Then, the selection circuit 303 outputs the read start address AD according to the configuration data number in step S1802 of FIG. Then, the configuration memory MEM outputs the configuration data stored in the read start address AD to the programmable logic device 301.

ステップS1902では、プロセッサ601は、必要な時間が経過後に、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータに基づくコンフィグレーションを行う。その後、プログラマブルロジックデバイス301は、論理処理を行い、エラーが発生するとエラー信号ERを出力し、正常動作をすればエラー信号ERを出力しない。通常、コンフィグレーションデータ番号は、故障領域を未使用領域とするコンフィグレーションデータ番号に変更されているので、エラー信号ERは出力されない。   In step S1902, the processor 601 outputs the reset signal RS to the programmable logic device 301 after a necessary time has elapsed. When the reset signal RS is input, the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. Thereafter, the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs, and does not output an error signal ER when it operates normally. Usually, since the configuration data number is changed to a configuration data number in which the failure area is an unused area, the error signal ER is not output.

次に、ステップS1903では、プロセッサ601は、エラー信号ERを検出したか否かをチェックし、エラー信号ERが検出されれば、ステップS1904に進む。エラー信号ERが検出されなければ、不揮発メモリ304に記憶されているコンフィグレーションデータ番号は確定し、故障の修復が終了する。プログラマブルロジックデバイス301は、正常に動作することができる。   Next, in step S1903, the processor 601 checks whether or not the error signal ER is detected, and if the error signal ER is detected, the process proceeds to step S1904. If the error signal ER is not detected, the configuration data number stored in the non-volatile memory 304 is determined, and the repair of the fault ends. The programmable logic device 301 can operate normally.

次に、ステップS1904では、プロセッサ601は、対象のコンフィグレーションデータ番号が初期値のコンフィグレーションデータ番号であるか否かをチェックする。この場合、コンフィグレーションデータ番号は、変更されており、初期値ではないので、ステップS1908に進む。   Next, in step S1904, the processor 601 checks whether or not the target configuration data number is an initial configuration data number. In this case, since the configuration data number has been changed and is not an initial value, the process proceeds to step S1908.

ステップS1908では、プロセッサ601は、フォルト信号FTを出力し、プログラマブルロジックデバイス301が修復不能であることを知らせる。   In step S1908, the processor 601 outputs a fault signal FT to notify that the programmable logic device 301 cannot be repaired.

以上のように、プログラマブルロジックデバイス301は、複数の領域R2〜R9毎にエラー信号ER2〜ER9を発生可能である。選択回路303は、プログラマブルロジックデバイス301がエラー信号を発生したときには、エラー信号を基に、プログラマブルロジックデバイス301の複数の領域R2〜R9のうちのエラー信号が発生した領域を未使用領域とするコンフィグレーションデータを選択する。   As described above, the programmable logic device 301 can generate the error signals ER2 to ER9 for each of the plurality of regions R2 to R9. When the programmable logic device 301 generates an error signal, the selection circuit 303 sets a region in which the error signal is generated among a plurality of regions R2 to R9 of the programmable logic device 301 as an unused region based on the error signal. Configuration data.

エラー表示レジスタ1401は、複数の領域R2〜R9毎のエラー信号を記憶する。選択回路303は、エラー表示レジスタ401に記憶されているエラー信号ER2〜ER9を基に、エラー信号が発生した領域を未使用領域とするコンフィグレーションデータを選択する。   The error display register 1401 stores an error signal for each of the plurality of regions R2 to R9. Based on the error signals ER2 to ER9 stored in the error display register 401, the selection circuit 303 selects configuration data in which the area where the error signal is generated is an unused area.

本実施形態は、第3の実施形態と同様の効果を得ることができる。また、本実施形態は、エラー発生後の1度のコンフィグレーションで、プログラマブルロジックデバイス301内の故障領域が未使用領域に割り当てられるため、第1〜第5の実施形態のようにコンフィグレーションを繰り返すことがなく、早急にプログラマブルロジックデバイス301の故障を修復することができる。   This embodiment can obtain the same effects as those of the third embodiment. Further, in the present embodiment, the failure area in the programmable logic device 301 is assigned to an unused area in one configuration after the occurrence of an error, so the configuration is repeated as in the first to fifth embodiments. In this case, the failure of the programmable logic device 301 can be repaired immediately.

なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。   The above-described embodiments are merely examples of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed in a limited manner. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.

コンフィグレーションメモリに複数のコンフィグレーションデータを記憶させることにより、短時間でプログラマブルロジックデバイスの内部故障を修復することができる。   By storing a plurality of configuration data in the configuration memory, an internal failure of the programmable logic device can be repaired in a short time.

本発明は、論理処理装置及びその制御方法に関する。 The present invention relates to a logic processing device and a control method thereof.

本発明の目的は、短時間でプログラマブルロジックデバイスの内部故障を修復することができる論理処理装置及びその制御方法を提供することである。 An object of the present invention is to provide a logic processing apparatus capable of repairing an internal failure of a programmable logic device section in a short time and a control method thereof.

論理処理装置は、複数の領域毎にロジックをプログラム可能な論理セル部を含むプログラマブルロジックデバイスと、互いに同じ機能を実現するとともに、前記複数の領域のうち論理セル部を使用する領域である使用領域と前記複数の領域のうち論理セル部を使用しない領域である未使用領域との配置の組み合わせが互いに異なる複数のコンフィグレーションデータを記憶するコンフィグレーションメモリと、コンフィグレーションデータ番号を記憶するデータ番号メモリ部と、前記複数のコンフィグレーションデータのうち、前記データ番号メモリ部が記憶するコンフィグレーションデータ番号に対応するいずれか一のコンフィグレーションデータを選択して前記プログラマブルロジックデバイスのロジックをプログラムさせるとともに、エラーが発生した場合、前記エラーが発生しなくなるまで前記コンフィグレーションデータ番号の変更を繰り返し、変更された前記コンフィグレーションデータ番号に対応する1個のコンフィグレーションデータを選択して前記プログラマブルロジックデバイス部のロジックをプログラムさせる選択を有するThe logic processing device realizes the same function as the programmable logic device unit including a logic cell unit capable of programming logic for each of a plurality of regions, and is a region that uses the logic cell unit among the plurality of regions. Configuration memory unit that stores a plurality of configuration data in which the combination of the arrangement of the region and the unused region that does not use the logic cell unit among the plurality of regions is different from each other , and data that stores the configuration data number The number memory unit and the configuration data corresponding to the configuration data number stored in the data number memory unit among the plurality of configuration data are selected and the logic of the programmable logic device unit is programmed. And , If an error occurs, the until no error occurs repeatedly changing the configuration data number, the programmable logic device to select one of the configuration data corresponding to the changed the configuration data number and a selection unit for programming a section of logic.

コンフィグレーションメモリに複数のコンフィグレーションデータを記憶させることにより、短時間でプログラマブルロジックデバイスの内部故障を修復することができる。 By storing a plurality of configuration data in the configuration memory unit , an internal failure of the programmable logic device unit can be repaired in a short time.

Claims (10)

複数の領域毎にロジックをプログラム可能なプログラマブルロジックデバイスと、
前記プログラマブルロジックデバイスの複数の領域のうちの異なる領域を未使用領域として前記未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータを記憶するコンフィグレーションメモリと、
前記複数のコンフィグレーションデータのうちのいずれか1個を選択して前記プログラマブルロジックデバイスのロジックをプログラムさせる選択回路とを有し、
前記選択回路は、前記複数のコンフィグレーションデータのうちの前記プログラマブルロジックデバイスの動作に基づくエラーが発生しないコンフィグレーションデータを選択することを特徴とする論理処理装置。
A programmable logic device capable of programming logic in a plurality of areas;
A configuration memory for storing a plurality of configuration data for realizing the same function with different areas among the plurality of areas of the programmable logic device as unused areas and areas other than the unused areas as used areas; ,
A selection circuit that selects any one of the plurality of configuration data and programs the logic of the programmable logic device;
The logic processing apparatus, wherein the selection circuit selects configuration data that does not cause an error based on an operation of the programmable logic device from the plurality of configuration data.
前記選択回路は、前記複数のコンフィグレーションデータを順に選択し、前記プログラマブルロジックデバイスがエラー信号を出力したときのコンフィグレーションデータを選択せず、前記プログラマブルロジックデバイスがエラー信号を出力しないときのコンフィグレーションデータを選択して、前記プログラマブルロジックデバイスのロジックをプログラムさせることを特徴とする請求項1記載の論理処理装置。   The selection circuit sequentially selects the plurality of configuration data, does not select configuration data when the programmable logic device outputs an error signal, and configuration when the programmable logic device does not output an error signal The logic processing apparatus according to claim 1, wherein data is selected to program logic of the programmable logic device. さらに、前記プログラマブルロジックデバイスがエラー信号を出力したときには、前記選択回路に次のコンフィグレーションデータを選択させるプロセッサを有することを特徴とする請求項2記載の論理処理装置。   3. The logic processing apparatus according to claim 2, further comprising a processor that causes the selection circuit to select next configuration data when the programmable logic device outputs an error signal. 前記コンフィグレーションメモリは、前記複数のコンフィグレーションデータをそれぞれ記憶する複数のコンフィグレーションメモリを有し、
前記選択回路は、前記複数のコンフィグレーションメモリのうちの1個のコンフィグレーションメモリを選択することを特徴とする請求項1記載の論理処理装置。
The configuration memory has a plurality of configuration memories each storing the plurality of configuration data,
The logic processing device according to claim 1, wherein the selection circuit selects one configuration memory from the plurality of configuration memories.
前記コンフィグレーションメモリは、異なるアドレスに前記複数のコンフィグレーションデータをそれぞれ記憶し、
前記選択回路は、前記複数のアドレスのうちの1個のアドレスを選択することを特徴とする請求項1記載の論理処理装置。
The configuration memory stores the plurality of configuration data at different addresses,
2. The logic processing device according to claim 1, wherein the selection circuit selects one address among the plurality of addresses.
前記未使用領域は、前記プログラマブルロジックデバイス内の1個又は複数の領域であることを特徴とする請求項1記載の論理処理装置。   The logic processing apparatus according to claim 1, wherein the unused area is one or a plurality of areas in the programmable logic device. さらに、前記プログラマブルロジックデバイスの出力信号を用いて処理する外部装置を有し、
前記選択回路は、前記複数のコンフィグレーションデータのうちの前記外部装置がエラーを発生したコンフィグレーションデータを選択せず、前記複数のコンフィグレーションデータのうちの前記外部装置がエラーを発生しないコンフィグレーションデータを選択することを特徴とする請求項1記載の論理処理装置。
Furthermore, it has an external device for processing using the output signal of the programmable logic device,
The selection circuit does not select configuration data in which the external device has caused an error in the plurality of configuration data, and configuration data in which the external device does not cause an error in the plurality of configuration data. The logic processing device according to claim 1, wherein the logic processing device is selected.
前記プログラマブルロジックデバイスは、前記複数の領域毎にエラー信号を発生可能であり、
前記選択回路は、前記プログラマブルロジックデバイスがエラー信号を発生したときには、前記エラー信号を基に、前記プログラマブルロジックデバイスの複数の領域のうちの前記エラー信号が発生した領域を未使用領域とするコンフィグレーションデータを選択することを特徴とする請求項1記載の論理処理装置。
The programmable logic device can generate an error signal for each of the plurality of regions,
The selection circuit is configured such that when the programmable logic device generates an error signal, an area in which the error signal is generated among a plurality of areas of the programmable logic device is set as an unused area based on the error signal. 2. The logic processing apparatus according to claim 1, wherein data is selected.
前記プログラマブルロジックデバイスは、前記複数の領域毎のエラー信号を記憶するエラー表示レジスタを有し、
前記選択回路は、前記エラー表示レジスタに記憶されているエラー信号を基に、前記エラー信号が発生した領域を未使用領域とするコンフィグレーションデータを選択することを特徴とする請求項8記載の論理処理装置。
The programmable logic device has an error display register that stores an error signal for each of the plurality of regions,
9. The logic according to claim 8, wherein the selection circuit selects configuration data in which an area where the error signal is generated is an unused area based on an error signal stored in the error display register. Processing equipment.
複数の領域毎にロジックをプログラム可能なプログラマブルロジックデバイスと、
前記プログラマブルロジックデバイスの複数の領域のうちの異なる領域を未使用領域として前記未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータを記憶するコンフィグレーションメモリとを有する論理処理装置の処理方法であって、
前記複数のコンフィグレーションデータのうちの前記プログラマブルロジックデバイスの動作に基づくエラーが発生しないコンフィグレーションデータを選択し、
前記選択されたコンフィグレーションデータを基に、前記プログラマブルロジックデバイスのロジックをプログラムさせることを特徴とする論理処理装置の処理方法。
A programmable logic device capable of programming logic in a plurality of areas;
A configuration memory for storing a plurality of configuration data for realizing the same function with different areas among the plurality of areas of the programmable logic device as unused areas and areas other than the unused areas as used areas; A processing method of a logic processing device having
Select configuration data that does not cause an error based on the operation of the programmable logic device among the plurality of configuration data,
A logic processing apparatus processing method, comprising: programming logic of the programmable logic device based on the selected configuration data.
JP2015506475A 2013-03-21 2013-03-21 Logic processing apparatus and control method thereof Pending JPWO2014147780A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/057996 WO2014147780A1 (en) 2013-03-21 2013-03-21 Logic processing device and processing method thereof

Publications (1)

Publication Number Publication Date
JPWO2014147780A1 true JPWO2014147780A1 (en) 2017-02-16

Family

ID=51579512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015506475A Pending JPWO2014147780A1 (en) 2013-03-21 2013-03-21 Logic processing apparatus and control method thereof

Country Status (2)

Country Link
JP (1) JPWO2014147780A1 (en)
WO (1) WO2014147780A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962528A (en) * 1995-08-23 1997-03-07 Fujitsu Ltd Self-recovering device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962528A (en) * 1995-08-23 1997-03-07 Fujitsu Ltd Self-recovering device

Also Published As

Publication number Publication date
WO2014147780A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
TWI773890B (en) Data storage device and parity code processing method thereof
JP5048972B2 (en) Reduce false positives in programmable device configuration error detection
EP2492917B1 (en) Error detection and correction circuitry
JP2019091519A (en) Nand type flash memory having internal ecc processing and operation method thereof
KR101561769B1 (en) Storage device and data processing method
US11334415B2 (en) Data storage device and method for sharing memory of controller thereof
JP2007293856A (en) Soft error location and sensitivity detection for programmable devices
KR20100031148A (en) Semiconductor memory device for accumulation test and system including the same
JP6290934B2 (en) Programmable device, error holding system, and electronic system apparatus
JP6282482B2 (en) Programmable circuit device and configuration information restoration method
JP5558269B2 (en) Error correction circuit for programmable logic circuit
JP2006309700A (en) Logic integrated circuit having dynamic alternate function, information processing device using the same, and dynamic alternate method of logic integrated circuit
JP2020048022A (en) Semiconductor integrated circuit and reconfigurable semiconductor system
JP2013125513A (en) Nonvolatile semiconductor memory device and management method therefor
US8966344B2 (en) Data protecting method, memory controller and memory storage device
JP6517549B2 (en) Memory controller, storage device, data transfer system, data transfer method, and data transfer program
US9575862B1 (en) Integrated circuits with error handling capabilities
US9037948B2 (en) Error correction for memory systems
WO2014147780A1 (en) Logic processing device and processing method thereof
JP2018022277A (en) Programmable logic device, information processing device, soft error recording method, and soft error recording program
CN109119126B (en) Semiconductor device and error management method
JP4582078B2 (en) Memory controller, flash memory system, and flash memory control method
JP5910356B2 (en) Electronic device, electronic device control method, and electronic device control program
JP2013187699A (en) Fpga configuration processing control circuit
JP2014137833A (en) Semiconductor memory and method of outputting number of error correction bits

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161004