KR20020005416A - 현장 프로그램이 가능한 게이트 배열의 증분 재구성에의한 온라인 내고장성 동작 - Google Patents

현장 프로그램이 가능한 게이트 배열의 증분 재구성에의한 온라인 내고장성 동작 Download PDF

Info

Publication number
KR20020005416A
KR20020005416A KR1020010031617A KR20010031617A KR20020005416A KR 20020005416 A KR20020005416 A KR 20020005416A KR 1020010031617 A KR1020010031617 A KR 1020010031617A KR 20010031617 A KR20010031617 A KR 20010031617A KR 20020005416 A KR20020005416 A KR 20020005416A
Authority
KR
South Korea
Prior art keywords
programmable gate
field programmable
gate array
programmable logic
logic block
Prior art date
Application number
KR1020010031617A
Other languages
English (en)
Inventor
아브라모비치마이론
스트라우드찰즈이
에머트존엠
Original Assignee
추후기재
에이저 시스템즈 가디언 코포레이션
유니버시티 오브 켄터키 리서치 파운데이션
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 추후기재, 에이저 시스템즈 가디언 코포레이션, 유니버시티 오브 켄터키 리서치 파운데이션 filed Critical 추후기재
Publication of KR20020005416A publication Critical patent/KR20020005416A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]
    • G01R31/318519Test of field programmable gate arrays [FPGA]
    • 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
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality

Abstract

정상온라인동작중에 증분재구성을 이용하는 현장에서 프로그래밍이 가능한 게이트배열(FPGAs)의 내고장성동작방법은 FPGA를 초기자체시험영역과 작업영역으로의 재구성하는 것을 포함한다.
자체시험영역내에서 FPGA의 프로그래밍 가능 논리블록(PLBs)이 고장을 확인하기 위하여 시험되며, PLBs내에서 하나 또는 다수의 고장을 탐지하는 즉시 고장성PLBs는 유리되고 이들의 동작모드전체가 철저히 시험된다.
부분적인 고장성PLBs는 동작의 고장성모드가 PLBs의 비고장성시스템기능의 수행을 방해하지 않는 한 저감능력으로 동작을 계속하도록 되어 있다. 초기자체시험영역내의 프로그래밍 가능 논리블록을 시험 후에 FPGA는 작업영역의 일부가 후속의 자체시험영역이 되고 적어도 초기자체시험영역의 일부가 작업영역의 그 부분을 대치하도록 재구성된다.
환언하면 자체시험영역은 전체FPGA가 시험을 완료할 때까지 또는 계속적으로 시험 및 재구성의 단계를 반복하면서 FPGA주위를 조사(roving)한다.
초기자체시험영역을 재배치하기전에 초기자체시험영역은 재구성되어 사용불가고장성PLBs를 예비PLBs로 대치한다. 예비PLB는 초기에 작업영역전체에 할당된다. 구체적으로, 작업영역내의 각 동작PLB는 인접한 선호예비PLB가 할당된다. 선택예비를 이용한 FPGA의 미리 설정된 구성이 고장성PLBs를 피하기 위하여 사용된다. 초기할당예비가 사용 불가할 때에는 작업영역내의 PLBs의 후속부분이 예비로서 할당되고 새로운 대치구성이 결정된다. 예비PLBs의 수량이 시간이 경과함에 따라서 감소됨에 따라서 추가예비PLBs는 어떤 시점에서 자체시험영역으로부터 반드시 제거된다.
이와 같은 방법으로 자체시험영역의 시험 및 조사능력(roving capabilities) 또한 불가피하게 감소된다. 결과적으로 조사, 시험 및 FPGA의 동작까지도 끝난다.

Description

현장 프로그램이 가능한 게이트 배열의 증분 재구성에 의한 온라인 내고장성 동작{ON-LINE FAULT TOLERANT OPERATION VIA INCREMENTAL RECONFIGURATION OF FIELD PROGRAMMABLE GATE ARRAYS}
본 발명은 일반적으로 집적회로장치분야 그 중에서도 특히 현장에서 프로그래밍 가능한 게이트배열(field programmable gate array) 의 온라인 내고장성 동작 (on-line fault tolerant operation)에 관한 것이다.
현장프로그래밍이 가능한 게이트배열(FPGA)은 프로그래밍 가능 경로망 (programmable routing network)과 프로그래밍이 가능 입/출력셀(programmable input/output cells)에 의하여 상호 연결된 프로그래밍이 가능한 논리블록(logic blocks)의 배열로 구성되어 있는 집적회로의 한가지 타입이다. 논리블록, 경로망 및 입/출력셀의 프로그래밍을 선택적으로 완료하여 소요시스템에 어느 특수한 적용을 위한 동작/기능을 제공하기 위하여 이에 관한 한가지 구성을 설정하는데 필요한 연결을 한다.
본 발명자들은 최근에 장치(device), 기판(board)과 시스템레벨에서 FPGA (field programmable gate array)의 프로그래밍이 가능한 논리블록배열 및 프로그래밍 가능 경로망을 내장하여 자체시험하는 방법을 개발하였다. 이러한 방법은 미국특허번호 제5,991,907호와 제6,003,150호 및 계류중에 있는 미국특허출원번호 제09/059,552호 및 제09/109,123호에서 다루고 있다. 이들 특허출원의 모든 내용이참증으로 여기에 수록되어 있다.
이러한 오프라인 시험방법에 더하여 본 발명자들은 또한 최근에 FPGA의 프로그래밍이 가능한 논리블록과 프로그래밍이 가능한 연결망(interconnect network)의 시험방법과 내고장성 동작방법을 개발하였다. 이러한 방법은 상세히 현재 계류 중에 있는 미국특허출원번호 제09/261,776호, 제09/405,958호, 제09/406,219호 및 미국 가출원번호 제60/156,189호에서 상세히 다루고 있다. 이들 특허출원의 모든 내용은 또한 참증에 의하여 여기에 통합되어 있다.
FPGA의 내고장성동작은 적응적인(adaptive) 전산시스템이 항상 시스템동작을 환경변화에 적응하기 위한 재구성 가능 하드웨어에 흔히 의존하는 장기간의 우주탐사, 원격통신망라우터(telecommunication network routers) 또는 원격장치와 같은 고신뢰도와 고효용성의 적용에 있어서 대단히 중요하다. 이러한 적용에 있어서 FPGA 하드웨어는 지속적으로 동작해야 하며 시험, 정비 또는 보수를 위하여 간단히 오프라인(off-line)으로 할 수는 없다.
고장이 이러한 시스템의 FPGA하드웨어에서 탐지될 때 당해 고장은 신속히 유리(isolate)시켜야 하며 FPGA자원은 축소된 용량상태로 계속 동작하거나 또는 고장 원을 피하기 위하여 재구성하여야 한다. 따라서 필요시에 FPGA자원의 시험과 재구성은 동시에 동적(dynamic)내고장성방법에 의하여 정상시스템동작으로 행하여지지 않으면 안된다.
본 발명에 따라서 증분재구성(incremental reconfiguration)을 활용하여 현장프로그래밍이 가능한 게이트배열을 동작시키는 내고장성방법(fault tolerant method)은 정상적인 온라인(on-line) 동작중에 수행된다. FPGA자원은 작업영역과 초기자체시험영역으로 재구성된다. 작업영역은 시험을 통하여 FPGA의 정상적인 동작을 유지한다. 그러나 초기 및 그 후의 자체시험 영역내에서 프로그래밍이 가능한 논리블록이 각기 시험된다. 처음에는 FPGA의 모든 자원은 제작시험을 통하여 결정된 바와같이 결함이 없는 것으로 생각된다.
자체시험영역내에서 예비로 할당된 것을 포함하는 각 프로그래밍이 가능한 논리블록이 시험되는 데 철저히 하는 게 바람직하다. 시험되는 각 프로그래밍이 가능한 논리블록의 고장상태데이터가 생성되어 저장된다. 본 발명에 의한 방법의 중요한 관점에 따라서 각 프로그래밍이 가능한 논리블록에 대한 고장상태데이터는 부분적으로 고장프로그래밍이 가능한 논리블록의 활용을 재구성하는 데 사용되어 비고장성 시스템기능의 수행을 계속하거나, 또는 FPGA의 재구성에 사용되어 고장프로그래밍이 가능한 논리블록을 완전히 저지한다. 부분적으로 고장프로그래밍이 가능한 논리블록의 활용을 재구성함으로서 이들 블록은 특정한 동작모드에 대하여 축소되었으나 허용 가능한 용량으로 계속 동작하도록 허용된다.
초기 자체시험영역내에 위치한 각 프로그래밍이 가능한 논리블록의 시험이 완료되면, FPGA는 재구성되어서 작업영역의 일부는 후속적인 자체시험영역이 되며 초기시험영역은 작업영역의 일부가 된다. 환언하면 시험영역은 작업영역의 각 부분 또는 전체 FPGA가 후속적인 자체영역으로서 재구성되고 시험되고 필요하면 프로그래밍이 가능한 논리블록을 시험하고 FPGA를 재구성하는 과정들을 되풀이 하면서 각프로그래밍이 가능한 논리블록의 활용이 재구성될 때 까지 FPGA를 조사(rove around)한다. 유리하게도 FPGA의 정상적인 동작은 시험의 전과정을 통하여 작업영역내에서 계속되며 자체시험영역내에서 행하여지는 시험에 의하여 중단되지 않는다.
초기 및 후속의 자체시험영역을 재배치하기 전에 FPGA는 증분으로 재구성되어 유리하게 예비프로그래밍이 가능한 논리블록을 배치하게 되어 있다. 본 발명에 따르는 방법에 따라서 작업영역프로그래밍이 가능한 논리블록의 일부는 초기에 작업(mission)이 각각의 유관프로그래밍이 가능한 논리블록을 위하여 개시되기 전에 미리 설정 또는 미리 컴파일(compile)된 내고장성대치구성을 가진 예비로서 할당 된다. 바람직한 것으로는 이 초기에 할당된 예비와 이와 유관한 미리 컴파일된 대치구성은 가능한 한 증분재구성과정에서 먼저 활용된다.
만약, 미사용고장프로그래밍이 가능한 논리블록의 수 또는 위치가 초기에 할당된 예비고장프로그래밍이 가능한 논리블록을 대치할 수 없는 상태일 때에는 작업영역프로그래밍이 가능한 논리블록의 후속부분이 예비로서 할당되며 새로운 내고장성대치구성이 계산(compute)된다. 초기에 미리 계산된 대치구성이 시간을 감안하여 새로운 대치구성에 비하여 바람직할지라도 후속의 예비를 재 할당하고, 새로운 대치구성을 계산하는 데 소요되는 추가 시간은 FPGA의 연속동작을 현저히 방해하지 않는다. 상기에서 언급한 바와 같이 FPGA의 정상적인 동작은 시험의 전과정을 통하여 작업영역내에서 계속된다.
자체시험영역이 시험과정과 증분으로 프로그래밍 가능 논리블록의 활용을 재구성하는 과정을 되풀이 하면서 FPGA주위를 조사함에 따라서 존재하는 예비프로그래밍이 가능한 논리불록개수는 시간이 경과함에 따라 비사용고장프로그래밍 가능 논리블록이 대치되면서 시간이 경과함에 따라 감소한다. 본 발명의 다른 중요한 관점에 따라서 추가적인 예비프로그래밍 가능 논리블록은 어떤 점에서 반드시 자체시험영역으로부터 제거된다. 이와 같은 방법으로 자체시험영역의 시험 및 조사능력 또한 불가피하게 감소된다. 결국에는 FPGA의 조사, 시험 및 동작까지도 끝나게 된다. 그러나 유리하게도 본 발명에 따르는 증분재구성을 활용한 온라인 내고장성동작의 방법은 FPGA의 정상적인 동작을 작업영역에서 계속하도록 하면서 실시간 대치구성의 필요성을 지연시키며,이에 따라 가능한 한 오래동안 예비로서 자체시험영역으로부터 프로그래밍 가능 논리블록의 사용을 지연시킨다.
이제 본 발명의 바람직한 실시 예를 상세히 참조하고 그 중의 한가지 예를 첨부도면에서 설명한다.
도 1은 내고장성온라인동작에 대한 현장프로그래밍 가능 게이트배열을 시험하고 증분으로 재구성하기 위한 장치의 블록도;
도 2는 초기의 수직 및 수평자체시험영역과 작업영역으로 재구성된 시험중인 FPGA의 실례이며 시험중인 FPGA의 정상적인 동작은 전 시험기간 중에도 계속된다;
도 3은 시험중인 FPGA의 실례이며 작업영역은 후속의 수직 및 수평자체시험영역에 의한 4개의 불연속영역으로 분활 된다;
도 4a와 4b는 시험중인 FPGA의 초기자체시험영역의 조사(roving)를 보여주는 순서도;
도 5는 수평 및 수직의 자체시험영역으로 분할된 프로그래밍 가능 논리블록 및 4개의 불연속영역으로 분할된 작업영역을 가진 8x8배열을 가진 FPGA의 물리적 좌표의 실례;
도 6은 도 5의 분활작업영역의 대표적인 수직좌표계의 실례;
도 7은 예비프로그래밍 가능 논리블록의 바람직한 할당을 보여주는 FPGA의 인접 12x12 작업영역의 실례;
도 8은 예비프로그래밍 가능 논리블록의 대안할당을 보여주는 FPGA의 12x12 인접작업영역의 실례이다;
대표적인 현장프로그래밍이 가능한 게이트배열(FPGA)은 일반적으로 프로그래밍 가능 경로망과 프로그래밍이 가능한 입력/출력셀 또는 경계스캔포트(boundary- scan ports)(대부분의 FPGAs는 경계스캔(boundary-scan mechanism) 기구의 특징을 가진다)에 의하여 연결된 프로그래밍 가능논리블록의 한 배열로 구성되어 있다. 그러한 구조는 예컨대 Xilinx XC4000구성이 가능한 논리블록과 ALTERA FLEX 8000논리소자에서 Lucent ORCA프로그래밍 가능기능단위(function units)의 특징을 가진다. 본 발명에 따라서 증분재구성을 사용하여 FPGA를 동작시키는 내고장성방법은 정상온라인동작중에 수행된다.
도 1의 블록도에 도시한 바와 같이 시험중인 FPGA(10)의 내고장성동작과 증분에 의한 재구성은 시험과 재구성컨트롤러(12)에 의하여 조정되는 것이 바람직하다. 현재 시판되고 있는 FPGAs는 그 구성메모리에 내부접근(internal access)을 허용하지 않기 때문에 바람직한 실시 예에서 외부시험과 재구성 컨트롤러(12)가 사용된다. 따라서 공지된 타입의 구성역컴파일러 툴(configuration decompiler tool)을 사용하여 컨트롤러(12)를 사용하기 위한 FPGA자원의 의도된 기능 또는 동작모드를 결정하는데 활용한다. 대안으로는 이러한 정보가 설계단계에서 추출되어 컨트롤러 (12)에 제공되도록 할 수 있다. 여하한 컨트롤러(예컨대 FPGA의 내부나 외부)라도 그의 구성메모리에 내부접근을 허용하는 FPGA가 사용될 수 있으며 단순한 시험과 재구성 컨트롤러는 여러 FPGAs를 조정할 수 있다는 점을 당업자는 알 것이다. 하지만 본 발명의 현 바람직한 실시예의 설명을 위하여서는 일대일의 컨트롤러 대 FPGA비를 사용하였다.
바람직한 컨트롤러(12)는 유관한 내고장성대치구성을 비롯한 시험, 진단 및 내고장성 기능뿐 아니라 다양한 FPGA 동작구성과 부분적구성을 저장하기 위한 저장매체 또는 메모리(14)와 교신하는 매입형(embedded) 마이크로프로세서에서 실시 가능하다. 동작에 있어서 컨트롤러(12)는 액세스(access)가 시험중인 FPGA(10)의 정상기능에 대하여 투명하도록 하는 공지의 방법으로 시험중인 FPGA(10)를 비롯한 시스템플랫폼에 액세스 한다.
유리하게도 이러한 접근은 시험중인 FPGA(10)의 정상온라인 동작중에 완전한시험과 내고장성 동작을 위한 증분재구성을 허용한다. 컨트롤러(12)와 메모리(14)는 또한 시험에 사용된 사용상태 데이터(예컨대 기능상태, 비사용예비상태, 예비상태) 및 시험된 각 프로그래밍 가능 논리블록(PLB)에 대한 고장상태 데이터(예컨대 무고장상태, 하자상태 또는 일부 사용가능상태)를 교환 저장한다. 이러한 데이터는 일부고장PLB의 허용기능을 재구성하며 다음에 사용불가고장PLBs를 방지하기 위하여 시험중인 FPGA(10)를 증분으로 재구성하는 데 사용된다. 용법의 활용과 고장상태 데이터는 이하에서 보다 상세하게 설명한다.
도 2에 도시되어 있는 바와 같이 시험중인 FPGA(10)는 초기에 컨트롤러(12)에 의하여 초기 자체시험영역(16)과 작업영역(18)으로 구성된다. 상기와 같이,시험중인 FPGA(10)의 정상동작은 시험의 전과정중 작업영역(18)내에서 유지된다. 본 바람직한 방법에 따라서 초기자체시험영역(16)은 수직자체시험영역(20)과 수평자체시험영역(22)을 포함한다. 시험의 전과정중 수직자체시험영역(20)과 수평자체시험영역(22)은 시험중인 FPGA(10)주위를 단속적으로 조사(rove)한다. PLBs를 시험하기 위하여서는 한 개의 자체시험영역만이 필요하지만 필요한 경우 시험중인 FPGA(10)의 프로그래밍 가능 경로망을 시험하기 위하여 자체시험영역(20 및 22) 두 개 모두를 필요로 하게 된다.
시험중 임의 부여된 시간에서 2개의 자체시험영역(20 및 22)의 위치에 따라서 작업영역(18)은 인접해 있을 수 있거나, 또는 도 3에 도시되어 있는 바와 같이 2개나 4개의 불연속영역(19)으로 분할될 수 있다. 자체시험영역(20 및 22)에서 PLBs시험에 적응하기 위하여 수직자체시험영역(20)의 수직와이어세그먼트와 수평자체시험영역(22)의 수평와이어세그먼트는 모두 시험중인 FPGA(10)가 동작하는 동안에 유보 또는 사용불가로 지정된다. 이와 같은 방법으로 작업영역(18)의 불연속영역(19)의 PLBs 사이의 연결은 수직자체시험영역(20)을 통하여 수평와이어세그먼트와 수평자체시험영역(22)을 통하여 수직와이어세그먼트를 사용하여 이루어질 수 있다.
초기 자체시험영역(20 및 22)내에서 PLBs(투명성을 위하여 도시되어 있지 않음)는 각각 철저히 시험된다. 시험중인 각 PLBs의 고장상태 데이터는 시험결과의 함수로서 생성된다. 유리하게도 PLBs의 이러한 유형의 철저한 시험결과 명백한 고장모델가정의 필요 없이도 최대고장범위를 얻게 된다. 따라서 FPGA의 PLBs의 본 선호된 시험방법은 확실히 고장시물레이숀을 실시할 필요 없이 PLBs의 개별고장 및 다중고장을 비롯한 모든 고장을 탐지할 수 있다.
일반적으로 본 발명의 철저한 방법은 피드백을 제공하는 브리징(bridging)과 같은 PLBs내의 다수의 상태를 증가시키지 않는 모든 고장을 탐지한다. PLBs내의 상태 수를 증가시키는 대부분의 고장이 본 시험방법으로 탐지된다 해도 모든 그러한 고장의 탐지를 보장할 수는 없다. PLBs의 이러한 유형의 철저한 시험방법은 여기에서 인용 참조한 미국특허출원번호 제09/405,958호에 상세하게 명시되어 있다.
도 4a와 4b에 순서적으로 도시한 바와 같이 시험중인 FPGA(10)는 초기자체시험영역(예 수직자체시험영역 20)중의 어느 하나에 위치한 각 PLBs의 시험과 시험중의 FPGA(10)의 여하한 소요증분에 의한 재구성도 완료하면 재구성된다. 특히 시험중의 FPGA(10)는 초기작업영역(18)의 부분(24)을 형성하는 PLBs의 기능이 초기자체시험영역(20)을 형성하는 PLBs에 복사되도록 재구성된다. 완료가 되면 작업영역 (18)의 복사된 부분(24)은 후속의 자체시험영역(26)이 되며 초기자체시험영역(20)은 도 4b에 도시되어 있는 바와 같이 작업영역(18)의 불연속영역(28)을 형성한다. 바람직한 것은 작업영역(18)의 인접부분(24)의 프로그래밍된 기능은 재배치되거나 더 구체적으로 말하자면 초기자체시험영역(20)에 복사되며 작업영역(18)의 인접부 (24)는 이제 도 4b에 도시되어 있는 바와 같이 다음의 자체시험영역(26)으로서 재구성된다. 자체시험영역의 조사(roving)와 FPGA(10)의 재구성에 대한 본 선호된 방법은 여기에서 인용 참조통합된 미국특허출원번호 제09/405,958호에 상세히 명시되어 있다.
본 선호된 실시 예에서 시험중의 FPGA(10)의 시험, 조사 및 재구성 중에 시스템기능을 조정하기 위하여 전체 FPGA를 지시하는 물리적좌표계와 시험중의 FPGA의 작업영역(18)을 지시하는 수직좌표계가 사용됨이 바람직하다. 위에서 상술한 바와 같이 시험중의 FPGA(10)는 PLB의 NxN 배열을 포함하며 여기에서 PLB의 물리적인 위치는 그의 행과 열로 주어진다. N=8인 FPGA에 대한 물리적좌표계(30)의 한가지 예가 도 5에 도시되어 있다. 수평자체시험영역(20)은 물리적 FPGA 행 i∈ {1,3,5,...,N-1}에 의하여 정의되며 수직자체시험영역(22)의 위치는 물리적 FPGA 열 j∈ {1,3,5,...,N-1}에 의하여 정의된다. 보다 구체적으로 말하면 수평자체시험영역(20)은 행 i=5 및 i+1 = 6을 사용하여 도시되고 수직자체시험영역(22)은 행 j = 5 및 j+1 = 6을 사용하여 도시되어 있다.
선행 기술에 널리 공지되어 있는 기술에 따라서 FPGA의 시스템기능은 각 논리셀기능이 PLB(34)(도 5에서 사각형으로 표시)에 의하여 제공되는 한 조의 논리셀로 사상(map)된다. 본 선호된 방법에 있어서 시험중인 FPGA(10)는 조사(roving)하는 수평 및 수직자체시험영역(20 및 22)과 작업영역(18)으로 분활되어 있으며 여기에서 시스템기능이 상주(reside)하며 자체시험영역(20 및 22)과 작업영역(18)은 주기적으로 변한다. 위에서 보다 상세히 논한 바와 같이 작업영역(18)은 자체시험영역(20 및 22)에 의하여 도 5에서 지정된 숫자(36, 38, 40 및 42)로 불연속영역으로 분할될 수 있다. 그러므로 조사하는 자체시험영역(20 및 22)과는 무관한 시스템기능의 구조(framework)를 제공하기 위하여 가상(virtual)좌표계(32)를 사용하여 마치 자체시험영역(20 및 22)이 존재하지 않는 것처럼 시험중의 FPGA(10)를 설명 한다.
N=8인 FPGA에 대한 가상(virtual)좌표계(32)의 한가지 예가 도 6에 도시되어 있다. 가상좌표계(32)는 가상논리셀(44)의 배열 (N-2) x (N-2)이다(일반적으로 빈 사각형으로 표시). 본 선호된 발명에 따르는 방법에 따라서 가상좌표계(32) 또는 가상셀배열이 가상논리셀(44)의 사상, 배치 및 루팅(routing)과 예비의 할당에 사용된다. 보다 구체적으로 말하면 논리셀기능은 가상논리셀(44)에 사상(map)되는 데 그것은 후에 작업가상논리셀(46)이라고 칭한다.
작업가상논리셀(46)은 자체시험영역(20 및 22)의 위치에 따라서 물리적좌표계(30)내에서 4개의 다른 PLBs에 이르기까지 상주(reside)할 수 있다. 환언하면 자체시험영역(20 및 22)의 위치가 변화하는 것 처럼 물리적좌표계(30)내에서 가상논리셀(44)의 배치도 달라질 것이다. 예컨대 가상좌표계(32)(도 6에 도시)의 6행4열에 위치한 가상논리셀(44)은 6열4행의 PLB(35)상에 수평자체시험영역(20)의 본 배치로 인하여 물리적좌표계(30)(도5에 도시)의 8행4열내 에 위치한 PLB(33)내에 물리적으로 상주하게 될 것이다. 비사용가상논리셀(44)은 시험중인 FPGA(10)의 내고장성대치구성을 위하여 사용된 예비가상논리셀(48)로서 할당된다. 이러한 재배치 구성을 제공하기 위하여 역사상(reverse mapping)을 사용하여 시험 중에 동일한 물리적 PLB(34)를 점할 수 있는 가상셀(44)을 결정한다.
자체시험영역(20 및 22)중의 어느 하나에 적어도 어느 한 고장PLB를 탐지하는 즉시 자체시험영역(20 및 22)의 조사가 고장PLBs를 유리시키고 이들의 동작고장모드를 확인하기 위하여 처음에 중단된다. 동작의 고장모드는 컨트롤러(12)에 의하여 고장상태데이터로서 기록되어 비고장시스템기능의 계속시행을 위하여 부분적인 고장PLBs를 재구성하거나 또는 고장PLBs를 모두 피하기 위하여 시험중인 FPGA(10)를 재구성하는데 있어서 후에 사용하기 위하여 메모리(14)에 저장된다. 고장PLBs를 유리하고 이들 고장동작모드를 탐지하는 본 서호된 방법은 여기에서 인용 참조통합된 미국특허 가출원번호 제60/156,189호에서 상세하게 설명되어 있다.
고장PLBs를 유리하고 동작의 이들 고장모드를 확인하면 본 제기된 발명에 따르는 방법에 따라 다음의 단계는 작업영역(18)내에서 정상시스템동작 및 자체시험영역(20 및 / 또는 22)중의 어느 하나 또는 바람직하기로는 양자 모두 내에서 시험을 계속할 수 있다. 유리된 고장PLBs 가 PLBs의 2행2열내 에 위치, 즉 고장PLBs가 전적으로 자체영역(20 및 22)의 둘 중에 어느 하나내에 포함될 수 있으면 이 때 자체시험영역(20 또는 22)중 어느 하나는 계속 조사/시험을 계속할 수 있다. 이와 같은 방법으로 두 자체시험영역(20 및 22)은 자체시험영역(20 또는 22)중의 어느 하나가 시험중인 FPGA(10)의 적당한 재구성이 완료될 때까지 유리된 고장PLBs를 다루는 한 교차방식으로 조사/시험을 계속한다. 유리하게도 이것은 재구성 과정중에 시험중인 FPGA(10)의 PLBs의 완전한 시험이 계속되도록 허용한다. 유리된 고장PLBs가 PLBs의 2행2열 군내에 들어있지 않으면, 즉 고장PLBs가 고장을 탐지하기 위하여 단지 당초에 사용된 자체시험영역에 의하여만 다루어 질 수 있으면 이 때 이러한 특수자체시험영역은 PLBs의 조사 및 시험이 잔여자체시험영역에서 더 계속되는 동안에 잠시 정지상태로 되어야 한다.
상기와 같이 고장상태영역(PLBs동작의 고장모드를 알리는)이 최초로 사용되어 무고장시스템기능의 수행을 계속하기 위하여 부분적인 고장PLBs를 재구성한다. 부분적인 고장PLB는 다른 기능적 요구를 가진 작업영역(18)내에서 4개에 이르는 다른 PLBs에 의하여 수용될 수 있음으로, 부분적인 고장PLB는 각각의 가능한 PLB의 소요기능을 수행할 수 있어야 한다. 부분적인 고장PLB가 동작에 관한 그의 고장이 없는 모드를 사용하여 각각의 가능한 PLB의 소요기능을 정확히 수행할 수 있으면, 대치 또는 예비 PLB는 필요 없게 된다. 만약 부분적인 고장PLB가 예컨대 고장플립플롭(flip-flop)회로를 가지면, 부분적인 고장PLB는 부분적인 고장PLB에 의하여 수행될 수 있는 시스템기능이 결합 가능하거나 또는 램(RAM)으로서 LUT/RAM을 사용할 때마다 부분사용가능PLB로서 사용 가능하다. 유리부분고장PLBs 모두가 그들 모든 4개의 각 가능한 PLB기능을 위한 부분고장PLBs 역할을 할 수 있으면(자체시험영역의 배치에 따라), 시험중인 FPGA(10)에 아무런 변경도 필요 없으며 조사/시험과정이진행되어도 되게 된다.
유리하게도 시험 중에 탐지된 고장의 영향을 받는 부분고장PLBs를 재구성함으로서 부분고장논리블록이 특정동작모드를 위한 허용 가능한 범위의 계속 점차 감소되는 용량으로 동작하게 되어 있다. 이러한 유형의 PLBs의 내고장성동작은 여기에서 인용 참조통합된 미국특허 출원번호 제09/261,776호에 상세히 명시되어 있다.
초기 자체시험영역(20 또는 22)중에 어느 하나를 재배치하기전에 시험중인 FPGA(10)와 특히 작업영역(18)의 일부가 되는 초기자체시험영역은 여하한 사용불가고장PLBs 가 시스템기능에 의하여 사용되는 것을 피하기 위하여 재구성되지 않으면 안 된다. 본 발명에 따르는 방법의 광범위한 관점에 따라서 작업영역(18)내의 PLBs부분집합은 초기에 각 합동작용 PLB을 위하여 미리 설정 또는 미리 계산된 대치구성을 가진 예비로서 할당된다. 바람직하기로는 각 예비PLB는 대치될 사용불가고장PLB로서 작업영역(18)의 동일한 2행2열부분내에서 초기에 제한 수용되어 있다. 이와 같은 방법으로 내고장성재구성은 공지된 방법으로 2가지의 부분구성을 병합함으로서 자체시험영역의 재배치와 더불어 이루어 질 수 있다. 본 선호된 방법에 따라서 예비의 할당이 상기 가상좌표계(32)를 사용하여 이루어져서 시험중인 FPGA (10)전과정을 통하여 균일하게 예비가상논리셀(48)을 분배하게 되며, 한편으로 이러한 예비와 각논리기능이 상주하는 PLB가 고장이 나서 사용할 수 없을 때 대치시킬 작업가상논리셀(46)사이의 거리를 최소화 하기 위한 시도를 하게 된다.
도 7에 도시된 가장 바람직한 경우에 있어서 적어도 하나의 예비PLB(52)(빈 사각형으로 표시)는 시스템기능 또는 작업PLB(50)(메운 사각형으로 표시)에 의하여사용되는 각 PLB에 인접하여 위치한다. 이것은 적어도 가상좌표계(32)내에 가상 논리셀44의 20%가 가상예비(48)로 유보될 때 항상 가능하다. 환언하면, 시험중인 FPGA(10)내 작업영역 PLB사용이 80%보다 작으면 각 작업영역PLB(50)은 적어도 하나의 예비PLB(52)에 인접하도록 배치 가능하다.
이러한 분배를 이루기 위하여서는 FPGA의 설계가 적어도 작업영역 PLBs의 20%가 예비PLBs로 남겨지도록 제한된다. 잘 공지된 바와 같이 이것은 대표적인 PLB사용이 보다 많이 사용하면 라우트(route)를 정하는 설계가 곤란하게 됨으로 비내고장성 적용에 대해서도 80%이하로 하기 때문에 과대하지 않다. 이러한 제한이 충족되면 시스템기능으로부터 전환된 논리셀기능은 각 작업영역PLB(50)이 적어도 한 개의 예비PLB에 인접하게 배치되도록 사상(mapping)이 가능하다. 도 7은 FPGA의 인접(contiguous)연속 12x12 작업영역(54)의 그러한 배치를 설명하고 있다.
표준설계툴(tool)로하여금 균일하게 분배된 예비 PLBs를 생성하도록 하기 위하여 예비PLBs(52)의 위치는 초기에 표준배치 알고리즘을 실시하기 전에 모조PLBs를 선 배치함으로서 남겨둔다. 각 작업영역PLB(50)을 위하여 인접예비PLB(52)가 그의 바람직한 대치로서 택하여지며 이에 대응하는 내고장성재구성은 임무(mission)개시전에 미리 계산(compute)된다. 도 7에 도시된 바와 같이 추가 변두리예비 (additional edge spare)PLBs(56)(소문자 e를 포함하는 사각형으로 표시)은 작업영역(54)의 변두리에 따라 배치된 모든 작업PLBs(50), 또한 인접한 예비PLBs가 예비PLBs(52)이거나 또는 변두리예비PLBs(56)이건 간에 인접예비PLB를 가지도록 작업영역(54)의 변두리에 따라서 필요하다. 물론 대안의 예비PLB 할당구성이 본 발명의 광범위한 교시에 따라서 사용 가능하다. 예컨대 도 8은 92%이하의 PLB이용을 가진 인접 12x12 작업영역(60)이 없을 경우 위의 개념을 설명한다. 이러한 대안시나리오에서 각 작업PLB(62)는 예비PLB(64)나 또는 변두리예비PLB(66)로부터 한 개 작업PLB(62) 이상 떨어져 있지 않는다.
사용불가PLB가 그의 선할당 대치예비PLB로 대치된 후에 동일한 대치예비PLB에 의존하는 잔여선계산 내고장성대치구성은 그러한 특수예비가 더 이상 존재하지 않으며 재 계산되어야 함으로 무효가 된다.
이와 유사하게 자체시험영역내의 사용불가고장PLBs의 수 또는 위치가 당초 할당예비PLBs와 이들에 따르는 선계산내고장성대치구성을 사용할 수 없도록 하면 작업영역내에 위치한 PLBs의 후속부분은 예비PLBs로 할당되어서 모든 고장PLBs가 모순되지 않는 예비PLB대치를 가지도록 해야 한다. 잔여작업PLBs가 작업영역의 동일부분내에 기타 인접 및 비사용예비PLBs를 가지면 이러한 예비PLBs중의 어느 하나는 새로이 선호된 예비PLB와 계산된 새로운 내고장성 대치구성으로 선정된다. 이러한 계산(computations)은 후속되는 조사/시험 중에 컨트롤러(12)에 의하여 이루어진다. 또한 계산시간은 내고장성대치구성이 다음고장의 발생 및 탐지 후에만 필요하게 됨으로 전반적시스템 동작에 대하여 중요하지 않다.
더 이상 기타 인접예비PLBs가 없으면 작업영역의 동일부분내에 잔유하는 작업PLB에 가장 근접한 예비PLB가 사용된다. 이것은 작업PLB와 가장 근접한 비사용 예비PLB 사이에 위치한 인근작업PLB를 가장 근접한 미사용PLB 쪽으로 이동(shift) 시킴으로서 이루어진다. 이와 같은 방법으로 새로운 예비PLB는 고장이 나서 사용할수 없게 된 것으로 확인된 작업PLB를 대치하는 데 사용할 수 있도록 생성된다. PLBs의 이동(shifting)은 위에서 설명한 바와 같이 증분재구성에 의하여 이루어 진다.
시간 관계상 대치구성의 실시간 계산에 비하여 초기 선계산내고장성 대치구성이 바람직 한 것이지만 후속예비PLBs를 재 할당하고 새로운 대치구성을 계산하기 위하여 소요되는 추가시간은 FPGA의 연속적 동작을 현저히 방해하지 않는다. 위에서 언급한 바와 같이 FPGA의 정상적인 동작은 작업영역내에서 계속되며 어떤 시험(some testing)은 후속 예비PLBs의 재할당 및 내고장성 대치구성의 계산의 전과정중 잔여자체시험영역에서 계속할 수 있다.
상기 본 발명에 따르는 방법에 따라서 후속의 자체시험영역은 이와 유사하게 철저히 시험되며 각 PLB의 고장상태데이터가 생성된다. 또한 후속 시험영역내에서 각 PLB를 시험하여 재구성하는 단계가 이 때 반복된다. 이것은 후속 자체시험영역과 그의 PLBs가 시험되고 모든 고장PLBs가 유리되어 확인되고 시험중인 FBGA(10)가 필요시 내고장성동작을 위하여 재구성됨에 따라서 작업영역(18)의 각 부분 또는 시험중인 전체FPGA(10)가 재구성될 때까지 계속된다. 환언하면 FPGA(10)이 동작하는 한 자체시험영역은 PLBs를 시험하는 단계를 반복하고 시험중인 FPGA(10)를 재구성하면서 지속적으로 시험중인 FPGA(10)주위를 조사(rove)한다. 또한 시험중인 FPGA (10)의 정상동작은 자체시험영역내에서 행해진 진행중인 시험에 의하여 중단없이 지속된다.
자체시험영역이 PLBs를 시험하는 단계를 반복하고 FPGA를 재구성하면서 시험중인 FPGA(10)주위를 조사함에 따라서 예비PLBs의 수량은 사용불가고장PLBs가 대치됨에 따라 시간이 경과하면서 불가피하게 감소할 것이다. 본 발명의 다른 중요한 관점에 따라서 추가예비PLBs는 이 때 자체시험영역으로부터 할당되며 필요한 내고장성 대치구성은 사용불가고장PLBs를 대치하여 사용하기위한 필요한 내고장성 대치구성이 계산된다. 따라서 반드시 자체시험영역의 시험 및 조사능력은 역시 어떤 시점에서 조사와 시험 그리고 마침내 시험중인 FPGA(10)의 동작이 끝날 때까지 불가피하게 감소된다. 바람직하기로는 자체시험영역의 예비PLBs는 적어도 한 개의 자체시험영역이 가능한 한 오래동안 조사와 시험을 계속할 수 있도록 선택된다.
요컨대 증분재구성을 이용하는 내고장성동작의 방법은 FPGA재원을 작업영역 (18)과 자체시험영역(20 및 22)으로 구성함으로서 시험중인 FPGA(10)의 정상적인 온라인동작중에 이루어진다. 작업영역(18)은 PLBs의 시험과 FPGA의 재구성의 전과정을 통하여 시험중인 FPGA(10)의 정상적 동작을 유지한다. 초기 및 후속의 자체시험영역내에서 PLBs가 철저히 시험되며 필요시에는 이들의 이용이 조정된다. 사용불가PLBs는 예비PLBs로 증분적으로 대치된다. 바람직한 것으로, 예비PLBs는 선호예비PLBs로서 할당된 작업영역PLBs의 일부, 필요한 만큼의 예비PLBs로 할당된 작업영역PLB의 후속부분 및 끝으로 자체시험영역의 한 개 또는 2개 내에 있는 PLBs로부터 선택된다. 따라서 증분재구성을 이용한 내고장성 온라인동작의 본 발명에 따르는 방법은 시험중인 FPGA(10)의 정상동작을 유지하는 동안에 내고장성 대치구성의 실시간 계산에 대한 필요성과 가능한 한 오래 예비로서 자체시험영역으로부터 PLBs의 후속사용을 지연시킨다.
본 발명의 바람직한 실시예의 상기 설명은 실례와 명시를 목적으로 제공되어 있다. 그것은 여기에 공개된 형식 그것만으로 본 발명의 전모를 설명하였다 하거나 발명을 제한할 의도는 없다. 상기의 교시에 비추어 명백한 수정 또는 변경이 가능하다. 본 실시 예를 선정하여 설명한 것은 본 발명의 원리에 관한 최선의 설명과 그의 실제적인 적용을 제공함으로서 당업자중의 어느 하나로 하여금 다양한 실시 예에서 본 발명을 이용하여 그와 같은 다양한 변경을 가하여 의도한 특수사용에 적용할 수 있게 한 것이다. 모든 그러한 수정과 변형은 이들이 공정하게 법적으로 형평하게 부여되는 전체효과에 따라서 해석될 때 첨부 청구항들에 의하여 정해진 바와 같은 본 발명의 범위 내에 들어 있다.

Claims (26)

  1. 정상온라인동작중에 증분재구성을 이용한 현장프로그래밍이 가능한 게이트배열의 내고장성동작의 방법은 다음의 단계를 포함한다:
    상기 현장프로그래밍 가능 게이트배열을 초기자체시험영역과 작업영역으로 구성하며 상기 작업영역은 현장프로그래밍 가능 게이트어레이의 정상적 동작을 유지하며;
    고장에 대한 상기 자체시험영역내에 위치한 하나의 프로그래밍 가능 논리블록을 시험하며;
    상기 시험단계중에 고장으로 확인된 하나의 프로그래밍 가능 논리블록을 대치하기 위하여 하나의 예비프로그래밍 가능 논리블록을 이용하는 상기 시험단계의 결과의 기능으로서 현장프로그래밍 가능 게이트배열의 새로운 구성을 결정하며;
    상기 새 구성에 따라 상기 현장프로그래밍 가능 게이트배열의 적어도일부를 재구성한 방법.
  2. 제1항에 있어서, 예비로 상기 작업영역내에서 현장프로그래밍 가능 게이트 배열의 하나의 프로그래밍 가능 논리블록을 할당하는 단계를 포함하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  3. 제2항에 있어서, 현장프로그래밍 가능 게이트배열의 새로운 구성을 결정하는단계는 각각의 할당된 예비에 대한 상기 현장프로그래밍 가능 게이트배열을 위하여 하나의 새로운 구성을 선 계산(precomputing) 하는 것을 포함하며;
    상기 시험단계의 결과의 기능으로서 상기 새로운 구성중의 어느 하나를 택하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  4. 제3항에 있어서, 하나의 예비를 할당하는 단계는 상기 작업영역의 각 잔여프로그래밍 가능 논리블록이 상기 하나의 예비에 인접하게 위치하도록 상기 작업영역으로부터 상기 하나의 예비프로그래밍 가능 논리블록을 선택하는 것을 포함하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  5. 제4항에 있어서, 하나의 예비를 할당하는 단계는 각 인접프로그래밍 가능 논리블록에 대한 선택예비로서 상기 하나의 예비지정을 포함하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  6. 제2항에 있어서, 새로운 구성을 정할 수 없을 때 예비로서 상기 작업영역내에서 현장프로그래밍 가능 게이트배열의 어느 하나의 후속 프로그래밍 가능 논리블록을 재 할당하는 단계를 포함하는 방법 및;
    상기 하나의 고장프로그래밍 가능 논리블록을 대치하기 위하여 상기 하나의 후속예비를 이용하는 상기 시험단계의 결과의 기능으로서 현장프로그래밍 가능 게이트배열의 하나의 추가적인 새로운 구성을 결정하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  7. 제6항에 있어서, 현장프로그래밍 가능 게이트배열의 상기 재구성부는 최초에 상기 하나의 고장프로그래밍 가능 논리블록에 인접한 현장프로그래밍 가능 게이트배열의 일부로 제한되며;
    상기 재구성단계가 완료될 때까지 현장프로그래밍 가능 게이트배열의 상기 초기제한부분을 확대시키는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  8. 제2항에 있어서, 상기 작업영역예비를 거의 다 사용한 후에 예비로서 상기 자체시험영역내에서 현장프로그래밍 가능 게이트배열의 하나의 프로그래밍 가능 논리블록을 이용하는 단계를 포함하는 현장에서 프로그래밍이 가능한 게이트 배열 방법.
  9. 정상적 온라인동작중에 증분재구성을 이용하는 현장프로그래밍 가능 게이트배열의 내고장성동작의 방법은 다음을 포함한다:
    상기 현장프로그래밍 가능 게이트배열을 2개의 초기자체시험영역과 한 개의 작업영역으로 구성하며, 상기 작업영역은 현장프로그래밍 가능 게이트배열의 정상동작을 유지하며;
    예비로서 상기 작업영역의 하나의 프로그래밍 가능 논리블록을 할당하며;
    상기 초기자체시험영역중의 어느 하나내에 위치한 프로그래밍 가능 논리블록을 시험하며;
    상기 시험단계의 결과와 상기 하나의 예비를 이용하는 현장프로그래밍 가능 게이트배열의 새로운 구성을 결정하며;
    상기 새로운 구성에 따라 현장프로그래밍 가능 게이트배열에의 일부를 재구성하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  10. 제9항에 있어서, 시험단계는 상기 시험단계중에 고장으로 확인된 하나의 프로그래밍 가능 논리블록의 유리를 포함하며;
    상기 유리된 고장프로그래밍 가능 논리블록의 하나의 동작모드의 존재를 탐지하며;
    상기 재구성단계는 상기 탐지된 동작의 고장모드가 상기 고장프로그래밍 가능 논리블록중의 어느 하나의 프로그램된 동작을 방지할때만 실시되며,
    일부 고장프로그래밍 가능 논리블록은 현장프로그래밍 가능 게이트배열의 내고장성동작을 제공하기 위하여 더 이용이 가능한 현장에서 프로그래밍이 가능한 게이트 배열방법.
  11. 제9항에 있어서, 적어도 상기 초기자체시험영역중의 어느 하나를 자체시험타일로 세분하는 단계를 포함하며;
    적어도 하나의 고장프로그래밍 가능 논리블록을 유리하기 위하여 상기 자체시험영역타일내에 위치한 프로그래밍 가능 논리블록을 별도 시험하며;
    상기 하나의 고장프로그래밍 가능 논리블록이 유리될 때까지 세분 및 별도의 시험의 단계를 반복하며;
    하나의 동작의 고장모드의 존재의 탐지에 충분한 상기 하나의 유리된 프로그래밍 가능 논리블록에 시험패턴을 적용하며;
    상기 재구성단계는 상기동작의 탐지된 고장모드가 상기 하나의 유리된 프로그래밍 가능 논리블록의 프로그램된 동작을 방해할 때에 한해서 수행되며;
    일부고장프로그래밍 가능 논리블록은 현장프로그래밍 가능 게이트배열에의 내고장성동작을 제공하기 위하여 더 이용이 가능한 현장에서 프로그래밍이 가능한 게이트 배열방법.
  12. 제9항에 있어서, 적어도 하나의 예비를 할당하는 단계는 상기 작업영역의 각 잔여프로그래밍 가능 논리블록이 상기 적어도 하나의 예비에 인접되어 위치하도록 상기 작업영역으로부터 상기 예비프로그래밍 가능 논리블록의 선택을 포함하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  13. 제12항에 있어서, 현장프로그래밍 가능 게이트배열의 새로운 구성을 결정하는 단계는 상기 적어도 하나의 예비에 대한 상기 현장프로그래밍 가능 게이트배열을 위한 적어도 하나의 새로운 구성의 선 계산(precomputing)을 포함하며;
    상기 시험단계의 결과의 기능으로서 상기 새로운 구성중의 어느 하나를 선택하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  14. 제13항에 있어서, 적어도 하나의 예비를 할당하는 단계는 각 인접프로그래밍 가능 논리블록을 위하여 선택된 예비로서 상기 예비의 지정을 포함하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  15. 제13항에 있어서, 새로운 구성이 결정될 수 없을 때 예비로서 상기 작업영역내에서 현장프로그래밍 가능 게이트배열의 하나의 후속프로그래밍가능 논리블록을 재할당하는 단계를 포함하며;
    상기 적어도 하나의 고장프로그래밍 가능 논리블록을 대치하기 위하여 상기 하나의 후속 예비를 이용하는 현장프로그래밍 가능 게이트배열의 하나의 추가적인 새로운 구성을 결정하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  16. 제12항에 있어서, 상기 고장프로그래밍 가능 논리블록중의 2개가 동일선호예비에 할당되어 있는지를 확인하는 단계를 포함하며;
    새로운 구성을 확인할 수 없을 때에 예비로서 상기 작업영역내에 상기 현장프로그래밍 가능 게이트배열의 하나의 후속프로그래밍 가능 논리블록을 재 할당하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  17. 제16항에 있어서, 현장프로그래밍 가능 게이트배열의 상기 재구성 부는 초기에 상기 하나의 고장프로그래밍 가능 논리블록에 가장 근접한 현장프로그래밍 가능게이트배열의 한 부분으로 제한되며;
    상기 재구성단계를 수용하기 위하여 현장프로그래밍 가능 게이트배열의 상기 초기제한부분을 확대시키는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  18. 제9항에 있어서, 또한 예비로서 상기 초기자체시험영역중의 적어도 하나에 현장프로그래밍 가능 게이트배열의 적어도 하나의 프로그래밍 가능논리블록을 할당하는 단계를 포함하며;
    상기 확인단계에서 상기 하나의 자체시험영역예비를 이용하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  19. 제10항에 있어서, 상기 작업영역의 일부가 후속의 자체시험영역이 되며 상기 초기자체시험영역의 일부는 상기 작업영역의 일부가 되도록 현장프로그래밍 가능 게이트배열을 재구성하는 단계를 포함하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  20. 제19항에 있어서, 상기 프로그래밍 가능 논리블록을 시험하는 단계는 상기 고장프로그래밍 가능 논리블록을 유리하며 현장프로그래밍 가능 게이트어레이의 재구성이 연속적으로 반복되는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  21. 증분재구성을 이용하는 현장프로그래밍 가능 게이트배열의 내고장성온라인동작은 다음의 단계를 포함한다;
    현장프로그래밍 가능 게이트배열을 초기자체시험영역과 작업영역으로 구성하고 상기 작업영역은 현장프로그래밍 가능 게이트배열의 정상적 동작을 유지하며;
    상기 고장을 확인하기위하여 상기 자체시험영역내에 위치한 하나의 프로그래밍 가능 논리블록을 시험하며;
    예비로 할당되어 있는 하나의 현장프로그래밍 가능 게이트배열을 이용하는 상기 시험단계중에 고장으로 확인된 하나의 프로그래밍 가능 논리블록을 대치하기 위한 상기 시험단계의 결과의 기능으로서 현장프로그래밍 가능 게이트배열을 재구성하며;
    상기 하나의 예비는 상기 초기작업영역과 그 다음에 상기 자체시험영역에서 선택하는 것이 바람직한 현장에서 프로그래밍이 가능한 게이트 배열방법.
  22. 제21항에 있어서, 시험단계는 상기 하나의 고장프로그래밍 가능 논리블록의 유리를 포함하며;
    상기 유리된 고장프로그래밍 가능 논리블록의 동작에 대한 하나의 고장모드의 존재를 탐지하며;
    상기 재구성단계는 상기 동작의 탐지된 고장모드가 상기 고장프로그래밍 가능 논리블록의 하나의 프로그래밍된 동작을 방해할 때에 한해서 수행되며;
    부분고장프로그래밍 가능 논리블록은 현장프로그래밍 가능 게이트배열의 내고장성동작을 제공하기 위하여 더 사용이 가능한 현장에서 프로그래밍이 가능한 게이트 배열방법.
  23. 제22항에 있어서, 상기 재구성단계에서 사용하기 위한 상기 하나의 예비프로그래밍 가능 논리블록을 이용하는 현장프로그래밍 가능 게이트배열의 하나의 새로운 구성을 결정하는 단계를 포함하는 현장에서 프로그래밍이 가능한 게이트 배열방법.
  24. 현장프로그래밍 가능 게이트배열의 프로그래밍 가능 논리블록을 시험하고 증분재구성을 이용한 현장프로그래밍 가능 게이트배열의 내고장성온라인동작을 지원하기 위한 장치는:
    (a) 상기 현장프로그래밍 가능 게이트배열을 초기자체시험영역과 작업영역으로 구성하고, 상기 작업영역은 현장프로그래밍 가능 게이트배열의 정상동작을 유지하며,
    (b) 고장을 확인하기 위한 자체시험영역내에 위치한 프로그래밍 가능 논리블록의 시험,
    (c) 고장으로 확인된 적어도 하나의 프로그래밍 가능 논리블록을 대치하기 위한 적어도 하나의 예비프로그래밍 가능 논리블록을 이용하는 시험의 결과의 기능으로서 현장프로그래밍 가능 게이트배열의 새로운 구성의 결정하며,
    (d) 상기 새로운 구성에 따라서 현장프로그래밍 가능 게이트배열의 적어도 일부의 재구성을 위한 현장에서 프로그래밍이 가능한 게이트 배열과 교신하는 컨트롤러를 포함한 것.
  25. 현장프로그래밍 가능 게이트배열의 프로그래밍 가능 논리블록을 시험하고 제24항의 증분재구성을 이용하는 현장프로그래밍 가능 게이트배열의 내고장성온라인동작의 지원하는 장치로 복수개의 시험구성과 시험중인 각 프로그래밍 가능 논리블록의 어법(usage) 및 고장상태데이터 및 새로운 구성을 저장하기 위한 상기 컨트롤러와 교신하는 저장매체를 포함하는 장치.
  26. 현장에서 프로그래밍이 가능한 게이트배열은 다음을 포함한다:
    복수개의 프로그래밍 가능 논리블록;
    상기 프로그래밍 가능 논리블록을 상호 연결하는 복수개의 프로그래밍 가능 논리블록라우팅(routing)재원;
    상기 자체시험영역내 및 현장프로그래밍 가능 게이트배열의 시험 및 증분재 구성중에 현장프로그래밍 가능 게이트배열의 정상동작을 유지하기 위한 초기작업영역내에서의 상기 프로그래밍 가능 논리블록시험을 위한 하나의 초기자체시험영역으로서 최초에 구성되어 있는 하나의 초기자체시험영역으로 최초 구성되는 상기 프로그래밍 가능 논리블록 및 상기 프로그래밍 가능 라우팅재원; 및
    상기 시험단계중에 고장으로 확인된 하나의 프로그래밍 가능 논리블록을 대치하기 위한 하나의 예비프로그래밍 가능 논리블록을 이용하는 상기시험의 결과로서 후속하여 재구성되는 상기 프로그래밍 가능 논리블록 및 상기 프로그래밍 가능라우팅재원.
KR1020010031617A 2000-07-06 2001-06-07 현장 프로그램이 가능한 게이트 배열의 증분 재구성에의한 온라인 내고장성 동작 KR20020005416A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/611,449 2000-07-06
US09/611,449 US6530049B1 (en) 2000-07-06 2000-07-06 On-line fault tolerant operation via incremental reconfiguration of field programmable gate arrays

Publications (1)

Publication Number Publication Date
KR20020005416A true KR20020005416A (ko) 2002-01-17

Family

ID=24449063

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010031617A KR20020005416A (ko) 2000-07-06 2001-06-07 현장 프로그램이 가능한 게이트 배열의 증분 재구성에의한 온라인 내고장성 동작

Country Status (5)

Country Link
US (1) US6530049B1 (ko)
EP (1) EP1170666A3 (ko)
JP (1) JP2002050957A (ko)
KR (1) KR20020005416A (ko)
TW (1) TW518462B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108107352A (zh) * 2017-12-06 2018-06-01 中国电子产品可靠性与环境试验研究所 Fpga器件测试系统及方法

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004003582A1 (en) * 2002-07-01 2004-01-08 University Of North Carolina At Charlotte Methods for delay-fault testing in field-programmable gate arrays
US7340644B2 (en) 2002-12-02 2008-03-04 Marvell World Trade Ltd. Self-reparable semiconductor and method thereof
US20060001669A1 (en) 2002-12-02 2006-01-05 Sehat Sutardja Self-reparable semiconductor and method thereof
US7185225B2 (en) 2002-12-02 2007-02-27 Marvell World Trade Ltd. Self-reparable semiconductor and method thereof
US8775112B2 (en) 2003-09-15 2014-07-08 Nvidia Corporation System and method for increasing die yield
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8775997B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US7685485B2 (en) * 2003-10-30 2010-03-23 Altera Corporation Functional failure analysis techniques for programmable integrated circuits
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US7478261B2 (en) * 2005-09-13 2009-01-13 M2000 Reconfigurable circuit with redundant reconfigurable cluster(s)
US7389460B1 (en) 2005-11-14 2008-06-17 University Of Central Florida Research Foundation, Inc. Runtime-competitive fault handling for reconfigurable logic devices
JP4457083B2 (ja) * 2006-03-28 2010-04-28 富士通株式会社 リコンフィグラブルデバイス搭載ボードのセルフテスト装置および方法
US7702978B2 (en) * 2006-04-21 2010-04-20 Altera Corporation Soft error location and sensitivity detection for programmable devices
US7661050B2 (en) * 2007-05-04 2010-02-09 International Business Machines Corporation Method and system for formal verification of partial good self test fencing structures
US8724483B2 (en) 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
US7906984B1 (en) 2008-02-26 2011-03-15 The United States Of America As Represented By The Secretary Of The Air Force Relocatable field programmable gate array bitstreams for fault tolerance
IT1392913B1 (it) * 2008-12-30 2012-04-02 St Microelectronics Srl Metodo per implementare variazioni di funzionalita' di un layout di progetto di un dispositivo integrato, in particolare un sistema su singolo chip o system-on-chip mediante celle di riempimento programmabili tramite maschera
KR101043431B1 (ko) 2010-02-11 2011-06-22 삼성중공업 주식회사 Fpga 소자를 이용한 오류 정보 저장 장치
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
CN101826045B (zh) * 2010-05-28 2011-12-28 哈尔滨工业大学 一种可重构星载计算机永久性故障电路的在线修复方法
US8718079B1 (en) 2010-06-07 2014-05-06 Marvell International Ltd. Physical layer devices for network switches
US8447553B1 (en) 2010-07-22 2013-05-21 Kevin Roe Expert system reliability assistance for electronics
CN102779079B (zh) * 2011-05-12 2014-11-12 中国科学院空间科学与应用研究中心 一种用于长期在轨工作的星载sram型fpga的配置方法及系统
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
JP6430541B2 (ja) 2015-01-28 2018-11-28 株式会社日立製作所 フィールドプログラマブルゲートアレイ
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US10795742B1 (en) * 2016-09-28 2020-10-06 Amazon Technologies, Inc. Isolating unresponsive customer logic from a bus
US10223317B2 (en) 2016-09-28 2019-03-05 Amazon Technologies, Inc. Configurable logic platform
WO2018154703A1 (ja) * 2017-02-24 2018-08-30 株式会社日立製作所 異常診断システム
CN116736072B (zh) * 2023-05-04 2024-03-26 国能智深(天津)控制技术有限公司 卡件测试控制方法、装置、设备及存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4414669A (en) 1981-07-23 1983-11-08 General Electric Company Self-testing pipeline processors
US4757503A (en) 1985-01-18 1988-07-12 The University Of Michigan Self-testing dynamic ram
USRE34445E (en) 1985-01-18 1993-11-16 University Of Michigan Self-testing dynamic RAM
US5081297A (en) 1986-05-06 1992-01-14 Grumman Aerospace Corporation Software reconfigurable instrument with programmable counter modules reconfigurable as a counter/timer, function generator and digitizer
US4817093A (en) 1987-06-18 1989-03-28 International Business Machines Corporation Method of partitioning, testing and diagnosing a VLSI multichip package and associated structure
US5179561A (en) 1988-08-16 1993-01-12 Ntt Data Communications Systems Corporation Totally self-checking checker
US5090015A (en) 1989-02-06 1992-02-18 Motorola, Inc. Programmable array logic self-checking system
US5051996A (en) 1989-03-27 1991-09-24 The United States Of America As Represented By The United States Department Of Energy Built-in-test by signature inspection (bitsi)
US5361264A (en) 1989-07-03 1994-11-01 Raytheon Company Mode programmable VLSI data registers
US5107208A (en) 1989-12-19 1992-04-21 North American Philips Corporation System for partitioning and testing submodule circuits of an integrated circuit
JPH04218785A (ja) * 1990-12-19 1992-08-10 Advantest Corp Ic試験装置
US5260946A (en) 1991-06-03 1993-11-09 Hughes Missile Systems Company Self-testing and self-configuration in an integrated circuit
US5278841A (en) 1991-10-30 1994-01-11 International Business Machines Corporation Method and apparatus for diagnosing net interconnect faults using echo pulsed signals
US5347519A (en) 1991-12-03 1994-09-13 Crosspoint Solutions Inc. Preprogramming testing in a field programmable gate array
US5475624A (en) 1992-04-30 1995-12-12 Schlumberger Technologies, Inc. Test generation by environment emulation
JP2922060B2 (ja) * 1992-07-27 1999-07-19 富士通株式会社 半導体記憶装置
US5425036A (en) 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
US5430734A (en) 1993-02-12 1995-07-04 Metalithic Systems, Inc. Fault-tolerant waferscale integrated circuit device and method
CH688425A5 (fr) 1993-05-24 1997-09-15 Suisse Electronique Microtech Circuit électronique organisé en réseau matriciel de cellules.
US5488612A (en) 1993-10-04 1996-01-30 International Business Machines, Corporation Method and apparatus for field testing field programmable logic arrays
US5867507A (en) 1995-12-12 1999-02-02 International Business Machines Corporation Testable programmable gate array and associated LSSD/deterministic test methodology

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108107352A (zh) * 2017-12-06 2018-06-01 中国电子产品可靠性与环境试验研究所 Fpga器件测试系统及方法

Also Published As

Publication number Publication date
TW518462B (en) 2003-01-21
EP1170666A2 (en) 2002-01-09
EP1170666A3 (en) 2002-06-26
US6530049B1 (en) 2003-03-04
JP2002050957A (ja) 2002-02-15

Similar Documents

Publication Publication Date Title
KR20020005416A (ko) 현장 프로그램이 가능한 게이트 배열의 증분 재구성에의한 온라인 내고장성 동작
US6631487B1 (en) On-line testing of field programmable gate array resources
US6973608B1 (en) Fault tolerant operation of field programmable gate arrays
US6874108B1 (en) Fault tolerant operation of reconfigurable devices utilizing an adjustable system clock
US7549081B2 (en) Processor array
US6304989B1 (en) Built-in spare row and column replacement analysis system for embedded memories
Abramovici et al. Roving STARs: an integrated approach to on-line testing, diagnosis, and fault tolerance for FPGAs in adaptive computing systems
CN105005512B (zh) 堆叠式存储器中的错误校正
CA2271251C (en) Method and apparatus for testing field programmable gate arrays
US6167558A (en) Method for tolerating defective logic blocks in programmable logic devices
Lakamraju et al. Tolerating operational faults in cluster-based FPGAs
US6256758B1 (en) Fault tolerant operation of field programmable gate arrays
US9726716B2 (en) Configurable vertical integration
Roychowdhury et al. Efficient algorithms for reconfiguration in VLSI/WSI arrays
US6574761B1 (en) On-line testing of the programmable interconnect network in field programmable gate arrays
US6966020B1 (en) Identifying faulty programmable interconnect resources of field programmable gate arrays
US6115300A (en) Column redundancy based on column slices
US6550030B1 (en) On-line testing of the programmable logic blocks in field programmable gate arrays
KR20160074211A (ko) 포스트 패키지 리페어 장치
Lach et al. Algorithms for efficient runtime fault recovery on diverse FPGA architectures
US6029260A (en) Memory analyzing apparatus
Konoura et al. Implications of reliability enhancement achieved by fault avoidance on dynamically reconfigurable architectures
Bartzick et al. Design of a fault tolerant FPGA
US20040120713A1 (en) Method and apparatus for providing sparing capacity for optical switches
Kamiura et al. On variable-shift-based fault compensation of fuzzy controllers

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid