IP Library Granted Patent US 7,609,083
Granted Patent B2
US 7,609,083 · App. 12/010,596 · Granted Oct 27, 2009

Semiconductor integrated circuit device and storage apparatus having the same

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,609,083
App. No.
12/010,596
Granted
Oct 27, 2009
Kind
B2
Abstract

A semiconductor integrated circuit device includes: a first large scale integrated circuit including a plurality of first logical blocks; a programmable second large scale integrated circuit connected the first large scale integrated circuit and including a second logical block; a memory storing data for achieving the purposes of the first logical blocks; and a control unit that, when a failure is detected in any of the first logical blocks during the operation of the first large scale integrated circuit, writes the data for the faulty first logical block stored in the memory to the second logical block, and uses the second logical block in place of the faulty first logical block.

Claims (66)

1. A semiconductor integrated circuit device, comprising:

a first large scale integrated circuit including a plurality of first logical blocks;

a programmable second large scale integrated circuit connected with the first large scale integrated circuit and including a plurality of second logical blocks;

a memory storing data for achieving the purposes of the first logical blocks; and

a control unit that, when an error is detected in any of the first logical blocks during an operation of the first large scale integrated circuit, writes the data for the faulty first logical block stored in the memory to one of the second logical blocks in operating status, in which the control unit continues to operate, and uses the one of the second logical blocks in place of the faulty first logical block in the operating status, in which the control unit continues to operate, wherein

the first large scale integrated circuit checks for an error in the first logical blocks, and, if the error is detected, issues an interruption request to the control unit,

the control unit receives the interruption request, and obtains error information from a register in the first large scale integrated circuit, and analyzes the error information, the error information including an identifier (ID) of a faulty first logical block as well as content of the error,

the control unit, if the faulty first logical block cannot be replaced with the programmable second large scale integrated circuit, sends a normal error handling command to the first large scale integrated circuit for closing a relevant path of the faulty first logical block,

the first large scale integrated circuit, if receives the normal error handling command, closes the relevant path of the faulty first logical block,

the control unit, if the faulty first logical block can be replaced with the programmable second large scale integrated circuit, finds out which logical block has the error, based on analyzing the error information, and sends an address of the faulty first logical block in a location in the memory and a command for causing the programmable second large scale integrated circuit to read implementation data from the memory,

the programmable second large scale integrated circuit, if receives the address of the faulty first logical block in the location in the memory, and the command, reads the implementation data from the address of the location in the memory, and implements functions of the faulty first logical block in the one of the second logical blocks in the programmable second large scale integrated circuit, and reports completion of the implementation,

the control unit, if receives the completion of the implementation, issues to the first large scale integrated circuit a command for causing the first large scale integrated circuit to replace the faulty first logical block with the one of the second logical blocks in the programmable second large scale integrated circuit and to switch the relevant path of the faulty first logical block to the one of the second logical blocks in the programmable second large scale integrated circuit,

the first large scale integrated circuit, if receives the command for causing to replace and switch, replaces the faulty first logical block with the one of the second logical blocks in the programmable second large scale integrated circuit and switches the relevant path of the faulty first logical block to the one of the second logical blocks in the programmable second large scale integrated circuit,

the control unit, after the replacing and the switching, issues a command to the first large scale integrated circuit for causing the first large scale integrated circuit to conduct a self-test, the self-test checks whether the error is a hard error or a soft error, which corrupts data, and

the first large scale integrated circuit executes the self-test and, if the error is the soft error, stops using the one of the second logical blocks in the programmable second large scale integrated circuit and adapting using the fault first logical block, and, if the error is the hard error, continues using the one of the second logical blocks in the programmable second large scale integrated circuit.

2. The semiconductor integrated circuit device according to claim 1 , wherein:

in the first large scale integrated circuit, the first logical blocks are connected to one another via an internal bus;

the first large scale integrated circuit and the programmable second large scale integrated circuit each have an interface circuit for converting internal bus signals to serial interface signals and vice versa; and

the first large scale integrated circuit and the programmable second large scale integrated circuit are connected to each other via the interface circuits.

3. The semiconductor integrated circuit device according to claim 1 , comprising a plurality of first large scale integrated circuits, wherein:

the programmable second large scale integrated circuit is connected to the first large scale integrated circuits.

4. The semiconductor integrated circuit device according to claim 1 , comprising a plurality of the programmable second large scale integrated circuits, wherein

when two or more errors are detected in the first logical blocks during the operation of the first large scale integrated circuit, the control unit writes the data for the two or more faulty first logical blocks stored in the memory to the second logical blocks in the programmable second large scale integrated circuits respectively.

5. The semiconductor integrated circuit device according to claim 1 , comprising a plurality of first large scale integrated circuits and programmable second large scale integrated circuits, wherein

when two or more errors are detected in the first logical blocks during the operation of the first large scale integrated circuits, the control unit writes the data for the two or more faulty first logical blocks stored in the memory to the second logical blocks in the programmable second large scale integrated circuits, respectively.

6. The semiconductor integrated circuit device according to claim 1 , wherein:

some of the first logical blocks in the first large scale integrated circuit are duplicated; and

when an inconsistency is detected in the results of the processing performed by the duplicated first logical blocks during the operation of the first large scale integrated circuit, the control unit writes data for the inconsistent duplicated first logical blocks stored in the memory to the second logical blocks respectively, and uses those second logical blocks in place of the inconsistent duplicated first logical blocks.

7. The semiconductor integrated circuit device according to claim 1 , wherein:

the first large scale integrated circuit is an ASIC (Application Specific Integrated Circuit) and the programmable second large scale integrated circuit is a FPGA (Field Programmable Gate Array).

8. A storage apparatus, comprising:

a plurality of channel adapter boards each having arranged thereon a semiconductor integrated circuit device for exchanging data with an external host computer;

a plurality of disk adapter boards each having arranged thereon a semiconductor integrated circuit device for exchanging data with a plurality of external disks;

a cache board having arranged thereon a semiconductor integrated circuit device for temporarily storing the data exchanged between the host computer and the disks; and

a switch board having arranged thereon a semiconductor integrated circuit device for controlling to transfer data between the channel adapter boards, cache board, and disk adapter boards,

wherein,

each of the semiconductor integrated circuit devices arranged on the channel adapter boards, disk adapter boards, cache board, and switch board, respectively, comprises:

a first large scale integrated circuit including a plurality of first logical blocks;

a programmable second large scale integrated circuit connected with the first large scale integrated circuit and including a plurality of second logical blocks;

a memory storing data for achieving the purposes of the first logical blocks; and

a control unit that, when an error is detected in any of the first logical blocks during an operation of the first large scale integrated circuit, writes the data for the faulty first logical block stored in the memory to one of the second logical blocks in operating status, in which the control unit continues to operate, and uses the one of the second logical blocks in place of the faulty first logical block in the operating status, in which the control unit continues to operate, wherein

the first large scale integrated circuit checks for an error in the first logical blocks, and, if the error is detected, issues an interruption request to the control unit,

the control unit receives the interruption request, and obtains error information from a register in the first large scale integrated circuit, and analyzes the error information, the error information including an identifier (ID) of a faulty first logical block as well as content of the error,

the control unit, if the faulty first logical block cannot be replaced with the programmable second large scale integrated circuit, sends a normal error handling command to the first large scale integrated circuit for closing a relevant path of the faulty first logical block,

the first large scale integrated circuit, if receives the normal error handling command, closes the relevant path of the faulty first logical block,

the control unit, if the faulty first logical block can be replaced with the programmable second large scale integrated circuit, finds out which logical block has the error, based on analyzing the error information, and sends an address of the faulty first logical block in a location in the memory and a command for causing the programmable second large scale integrated circuit to read implementation data from the memory,

the programmable second large scale integrated circuit, if receives the address of the faulty first logical block in the location in the memory, and the command, reads the implementation data from the address of the location in the memory, and implements functions of the faulty first logical block in the one of the second logical blocks in the programmable second large scale integrated circuit, and reports completion of the implementation,

the control unit, if receives the completion of the implementation, issues to the first large scale integrated circuit a command for causing the first large scale integrated circuit to replace the faulty first logical block with the one of the second logical blocks in the programmable second large scale integrated circuit and to switch the relevant path of the faulty first logical block to the one of the second logical blocks in the programmable second large scale integrated circuit,

the first large scale integrated circuit, if receives the command for causing to replace and switch, replaces the faulty first logical block with the one of the second logical blocks in the programmable second large scale integrated circuit and switches the relevant path of the faulty first logical block to the one of the second logical blocks in the programmable second large scale integrated circuit,

the control unit, after the replacing and the switching, issues a command to the first large scale integrated circuit for causing the first large scale integrated circuit to conduct a self-test, the self-test checks whether the error is a hard error or a soft error, which corrupts data, and

the first large scale integrated circuit executes the self-test and, if the error is the soft error, stops using the one of the second logical blocks in the programmable second large scale integrated circuit and adapting using the fault first logical block, and, if the error is the hard error, continues using the one of the second logical blocks in the programmable second large scale integrated circuit.

9. The storage apparatus according to claim 8 , wherein:

in the first large scale integrated circuit, the first logical blocks are connected to one another via an internal bus;

the first large scale integrated circuit and the programmable second large scale integrated circuit each have an interface circuit for converting internal bus signals to serial interface signals and vice versa; and

the first large scale integrated circuit and the programmable second large scale integrated circuit are connected to each other via the interface circuits.

10. The storage apparatus according to claim 8 , comprising a plurality of first large scale integrated circuits, wherein:

the programmable second large scale integrated circuit is connected to the first large scale integrated circuits.

11. The storage apparatus according to claim 8 , comprising a plurality of the programmable second large scale integrated circuits, wherein

when two or more errors are detected in the first logical blocks during the operation of the first large scale integrated circuit, the control unit writes the data for the two or more faulty first logical blocks stored in the memory to the second logical blocks in the programmable second large scale integrated circuits respectively.

12. The storage apparatus according to claim 8 , comprising a plurality of first large scale integrated circuits and programmable second large scale integrated circuits, wherein

when two or more errors are detected in the first logical blocks during the operation of the first large scale integrated circuits, the control unit writes the data for the two or more faulty first logical blocks stored in the memory to the second logical blocks in the programmable second large scale integrated circuits, respectively.

13. The storage apparatus according to claim 8 , wherein:

some of the first logical blocks in the first large scale integrated circuit are duplicated; and

when an inconsistency is detected in the results of the processing performed by the duplicated first logical blocks during the operation of the first large scale integrated circuit, the control unit writes data for the inconsistent duplicated first logical blocks stored in the memory to the second logical blocks respectively, and uses those second logical blocks in place of the inconsistent duplicated first logical blocks.

14. The storage apparatus according to claim 8 , wherein:

the first large scale integrated circuit is an ASIC (Application Specific Integrated Circuit) and the programmable second large scale integrated circuit is a FPGA (Field Programmable Gate Array).

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT NUMBERS 10342096;10671117; 10716375; 10716376;10795407;10795408; AND 10827591 PREVIOUSLY RECORDED AT REEL: 58314 FRAME: 657. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 29, 2024
From: RAKUTEN, INC.
To: RAKUTEN GROUP, INC.
Reel/Frame 068066/0103 →
CHANGE OF NAME Recorded Dec 6, 2021
From: RAKUTEN, INC.
To: RAKUTEN GROUP, INC.
Reel/Frame 058314/0657 →
CHANGE OF ADDRESS Recorded Dec 17, 2015
From: RAKUTEN, INC.
To: RAKUTEN, INC.
Reel/Frame 037751/0006 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2014
From: GLOBAL D, LLC.
To: RAKUTEN, INC.
Reel/Frame 032503/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2014
From: HITACHI, LTD.
To: GLOBAL D, LLC
Reel/Frame 032446/0285 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2008
From: FUSEYA, TOMOKATSU
To: HITACHI, LTD.
Reel/Frame 020477/0340 →