KR101901005B1 - 온-더-플라이 기술 지원 - Google Patents

온-더-플라이 기술 지원 Download PDF

Info

Publication number
KR101901005B1
KR101901005B1 KR1020157019511A KR20157019511A KR101901005B1 KR 101901005 B1 KR101901005 B1 KR 101901005B1 KR 1020157019511 A KR1020157019511 A KR 1020157019511A KR 20157019511 A KR20157019511 A KR 20157019511A KR 101901005 B1 KR101901005 B1 KR 101901005B1
Authority
KR
South Korea
Prior art keywords
error
report
document
entry
server
Prior art date
Application number
KR1020157019511A
Other languages
English (en)
Other versions
KR20150100783A (ko
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 KR20150100783A publication Critical patent/KR20150100783A/ko
Application granted granted Critical
Publication of KR101901005B1 publication Critical patent/KR101901005B1/ko

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F17/30595

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

온-더-플라이 기술 지원을 위한 정보 핸들링 시스템에 의해 수행되는 방법이 설명된다. 예시적인 방법은 에러 메시지(402)가 판독되어 이로부터 에러 코드(323)를 획득한다. 프로젝트 디렉토리(413)가 검색되어 리포트(414)를 획득하며, 이 리포트(414)는 복수의 실행 가능한 모듈들(321) 중 실패된 모듈을 나타내는 리포트를 표시하며, 이 리포트(414)는 에러 메시지(402)와 연관된다. 에러의 소스가 에러 메시지(402)로부터 식별된다. 실패된 모듈의 실패된 스테이지가 리포트(414)로부터 식별된다. 에러 메시지(402)에 대한 케이스 질의(case inquiry)(415)가 에러의 해결을 위한 문서(320)를 검색하기 위해 준비되며, 여기서 케이스 질의(415)는 실패된 스테이지를 식별한다. 네트워크가 액세스되고 케이스 질의가 네트워크를 통해 송신된다.

Description

온-더-플라이 기술 지원{ON-THE-FLY TECHNICAL SUPPORT}
본 발명은 온-더-플라이 기술 지원(on-the-fly technical support)에 관한 것이다. 보다 구체적으로, 본 발명은 에러 해결을 위한 정보를 자동으로 리트리브(retrieve)하기 위한 애플리케이션에 관한 것이다.
종전에, 사용자가 애플리케이션을 실행하는 동안 임의의 에러에 직면하는 경우, 이들은 웹-기반 키워드 검색을 수행하고 다양한 가능한 네트워킹된 데이터베이스들 중 임의의 것 내의 정보에 액세스함으로써 해결책을 확인할 수 있다. 이는 관련된 정보를 획득하기 위해 수동 사용자 입력의 여러 번의 반복들을 수반할 수 있으며, 이는 에러를 해결하기 위한 시간 소모적인 프로세스일 수 있다. 또한, 이러한 검색에 응답하여 리턴된 정보는 부합하고, 신뢰성있고 그리고/또는 신용할 수 있지 않을 수 있다. 부가적으로, 관련된 정보를 획득하기 위해 이러한 검색을 수행하기 위해 사용자에 의해 선택된 키워드들에 매우 의존할 수 있다.
이에 따라, 위에서 언급된 이슈들 중 하나 이상을 극복하는 온 디멘드 지원(on demand support)을 제공하는 것이 바람직하고 유용할 것이다.
하나 이상의 실시예들은 일반적으로 온-더-플라이 기술 지원에 관한 것이다.
온-더-플라이 기술 지원을 위한 정보 핸들링 시스템에 의해 수행되는 방법이 설명된다. 예시적인 방법은 에러 메시지가 판독되어 이로부터 에러 코드를 획득한다. 프로젝트 디렉토리가 검색되어 리포트를 획득하며, 이 리포트는 복수의 실행 가능한 모듈들 중 실패한 모듈을 나타내는 리포트를 표시하며, 이 리포트는 상기 에러 메시지와 연관된다. 에러의 소스가 상기 에러 메시지로부터 식별된다. 상기 실패한 모듈의 실패한 스테이지가 리포트로부터 식별된다. 에러 메시지에 대한 케이스 질의(case inquiry)가 상기 에러의 해결을 위한 문서를 검색하기 위해 준비되며 여기서 케이스 질의는 실패한 스테이지를 식별한다. 네트워크가 액세스되고 케이스 질의가 네트워크를 통해 송신된다.
선택적으로, 이 방법은 상기 케이스 질의에 응답하여 리트리브되는 검색의 부분을 저장하는 단계로서, 상기 부분은 상기 실패한 스테이지와 연관되는 것인, 상기 검색의 부분을 저장하는 단계 및 상기 에러 코드를 이용하여 상기 부분을 검색하는 단계를 더 포함한다.
선택적으로, 이 방법은 상기 검색으로부터 상기 부분에서 발견된 에러 코드의 매칭하는 엔트리(matching entry)를 저장하는 단계; 및 상기 매칭하는 엔트리를 윈도우에 디스플레이하는 단계를 더 포함한다.
선택적으로, 이 방법은 완료된 모듈을 나타내는 제 2 리포트를 오픈(open)하는 단계; 상기 소스를 이용하여 상기 제 2 리포트를 검색하는 단계; 상기 검색으로부터 상기 제 2 리포트에서 발견된 소스를 갖는 경고(warning)를 저장하는 단계; 상기 검색으로부터 상기 부분에서 발견된 에러 코드의 매칭하는 엔트리를 저장하는 단계; 윈도우에서의 디스플레이를 위해 상기 경고 및 상기 매칭하는 엔트리를 결합하는 단계; 및 상기 경고 및 상기 매칭하는 엔트리를 상기 윈도우에 디스플레이하는 단계를 더 포함한다.
선택적으로, 이 방법은 완료된 모듈을 나타내는 제 2 리포트를 오픈하는 단계; 상기 소스를 이용하여 상기 제 2 리포트를 검색하는 단계; 및 상기 제 2 리포트의 검색으로부터 각각의 매칭을 저장하는 단계를 더 포함한다.
선택적으로, 이 방법은 상기 케이스 질의에 응답하여 리트리브되는 문서의 부분을 저장하는 단계로서, 상기 부분은 상기 실패한 스테이지와 연관되는 것인, 상기 문서의 부분을 저장하는 단계; 상기 에러 코드를 이용하여 상기 부분을 검색하는 단계; 상기 검색으로부터 상기 부분에서 상기 에러 코드의 어떠한 매칭하는 엔트리도 발견하지 못하는 것에 응답하여, 상기 실패한 스테이지 및 상기 에러 메시지를 포함하는 웹케이스(webcase)를 개시하는 단계; 및 네트워크를 통해 상기 웹케이스를 송신하는 단계를 더 포함한다.
선택적으로, 이 방법은 완료된 모듈을 나타내는 제 2 리포트를 오픈하는 단계; 상기 소스를 이용하여 상기 제 2 리포트를 검색하는 단계; 상기 검색으로부터 상기 제 2 리포트에서 발견된 소스를 갖는 경고를 저장하는 단계; 및 상기 경고를 상기 웹케이스에 부가하는 단계를 더 포함한다.
선택적으로, 이 방법은 상기 웹케이스에 대한 타이틀을 생성하는 단계로서, 상기 타이틀은 상기 실패한 스테이지와 연관될 때 상기 실패한 모듈의 명칭 및 위치를 포함하는 것인, 상기 타이틀을 생성하는 단계; 및 상기 타이틀을 상기 웹케이스에 첨부하는 단계를 더 포함한다.
선택적으로, 상기 송신하는 단계는 상기 네트워크를 통해 사용자 포럼 어드레스 및 기술 지원 어드레스 둘 다에 상기 웹케이스를 제공하는 단계를 포함할 수 있다.
예시적인 시스템이 또한 설명된다. 이 시스템은 문서를 온라인으로 호스팅하기 위한 제 1 서버를 포함하고, 이 문서는 복수의 섹션들 및 상기 복수의 섹션들에 대한 복수의 서브섹션들을 포함한다. 복수의 서브섹션들은 하나 이상의 에러 레코드들과 연관된다. 하나 이상의 에러 레코드들은 상기 복수의 서브섹션들 하에서 발생할 수 있는 하나 이상의 에러들과 연관되는 하나 이상의 에러 코드들과 연관된다. 제 1 서버에 통신 가능하게 커플링되는 제 2 서버는 복수의 데이터베이스들을 호스팅하기 위한 시스템에 또한 포함된다. 상기 하나 이상의 에러 레코드들은 상기 하나 이상의 에러들을 해결하기 위한 관련 정보를 가져오기 위해 상기 복수의 데이터베이스들 중 적어도 하나에 대한 적어도 하나의 링크를 갖는다.
선택적으로, 이러한 시스템에서, 상기 제 1 서버는 케이스 질의의 수신에 응답하여 상기 문서를 검색하도록 프로그래밍될 수 있고, 상기 제 1 서버는 상기 케이스 질의에 응답하여 상기 서브섹션들 중 하나의 서브섹션의 카피를 생성하도록 프로그래밍될 수 있고, 상기 제 1 서버는 상기 케이스 질의를 발생시킨 클라이언트에 상기 서브섹션의 카피를 송신하도록 프로그래밍될 수 있다.
선택적으로, 상기 제 1 서버는 웹케이스에 대한 엔트리를 생성하도록 상기 문서를 업데이트하게 프로그래밍될 수 있다.
선택적으로, 상기 웹케이스는 상기 복수의 섹션들 중 하나의 섹션, 상기 복수의 서브섹션들 중 하나의 서브섹션 및 상기 하나 이상의 에러 코드들 중 하나의 에러 코드를 갖는 에러 메시지를 포함할 수 있다.
선택적으로, 상기 웹케이스는 상기 복수의 데이터베이스들 중 하나 이상의 데이터베이스에서 기술 지원 요청에 대한 제 1 링크; 및 상기 복수의 데이터베이스들 상기 하나 이상의 데이터베이스에서 커뮤니티 포럼 포스트에 대한 제 2 링크를 더 포함할 수 있다.
선택적으로, 상기 웹케이스는 상기 복수의 데이터베이스들 중 상기 하나 이상의 데이터베이스에서 문서에 대한 제 3 링크를 추가로 더 포함할 수 있다.
온-더-플라이 기술 지원을 위한 컴퓨터 프로그램 제품이 또한 설명된다. 컴퓨터 프로그램 제품은 유형의 컴퓨터-판독 가능한 저장 매체 및 유형의 컴퓨터-판독 가능한 저장 매체 상에 저장된 컴퓨터-판독 가능한 프로그램을 포함한다. 컴퓨터-판독 가능한 프로그램은 정보 핸들링 시스템에 의해 프로세싱되어 정보 핸들링 시스템으로 하여금 하기와 같은 동작들을 수행하게 한다. 애플리케이션 프로그램에 의해 생성된 에러 메시지는 에러 메시지로부터 에러 코드를 획득하도록 판독된다. 프로젝트 디렉토리는 애플리케이션 프로그램에 의해 생성된 리포트를 획득하도록 검색된다. 애플리케이션 프로그램은 복수의 실행 가능한 모듈들을 포함하고 리포트는 에러 메시지와 연관되는 복수의 실행 가능한 모듈들 중 실패한 모듈을 표시한다. 에러의 소스가 에러 메시지로부터 식별된다. 실패한 모듈의 실패한 스테이지가 리포트로부터 식별된다. 에러 메시지에 대한 케이스 질의가 에러의 해결을 위한 온라인 문서를 검색하기 위해 준비되며, 여기서 케이스 질의는 실패된 스테이지를 포함한다. 네트워크가 액세스되고 케이스 질의가 네트워크를 통해 송신된다.
첨부 도면들은 예시적인 방법들 및 시스템들을 도시한다.
그러나 첨부 도면들은 도시된 예들을 제한하는 것으로 받아들여선 안 되고 오히려 단지 설명 및 이해를 위한 것이다.
도 1은 예시적인 원주식 필드 프로그래밍 가능한 게이트 어레이(Field Programmable Gate Array; "FPGA") 아키텍처를 도시하는 단순화된 블록도이다.
도 2는 예시적인 종래의 디버그 흐름을 도시하는 블록/투시도이다.
도 3은 예시적인 온-더-플라이 기술 지원 흐름을 도시하는 블록/투시도이다.
도 4는 예시적인 디버그 흐름을 도시하는 흐름도이다.
도 5는 예시적인 웹-액세스 가능한 서버 흐름을 도시하는 흐름도이다.
도 6은 도 4의 디버그 흐름의 확장일 수 있는 예시적인 디버그 흐름을 도시하는 흐름도이다.
도 7은 예시적인 웹케이스 엔트리 생성 흐름을 도시하는 흐름도이다.
도 8은 예시적인 문서 생성 흐름을 도시하는 흐름도이다.
도 9는 다른 예시적인 웹-액세스 가능한 서버 흐름을 도시하는 흐름도이다.
도 10은 도 9의 서버 흐름에 대한 예시적인 웹케이스 흐름을 도시하는 흐름도이다.
도 11은 예시적인 컴퓨터 시스템을 도시하는 블록도이다.
하기의 설명에서, 다수의 특정한 세부사항들은 특정한 예들의 보다 완전한 설명을 제공하기 위해 기술된다. 그러나 하나 이상의 예들이 하기에 주어지는 모든 특정한 세부사항들 없이 실시될 수 있다는 것이 당업자에게 자명해야 한다. 다른 상황들에서, 잘 알려진 특징들은 하나 이상의 예들을 모호하게 하지 않도록 상세히 설명되지 않는다. 예시의 용이함을 위해, 동일한 번호 라벨들이 동일한 아이템들을 참조하도록 상이한 도면들에서 이용되지만, 대안적인 실시예들에서, 아이템들은 상이할 수 있다.
하기의 설명에서, 설명을 위해, 특정한 명명법이 본 명세서에서 개시된 다양한 진보적인 개념들의 완전한 이해를 제공하도록 기술된다. 그러나 이들 특정한 세부사항들은 본 명세서에서 개시된 다양한 진보적인 개념들을 실시하도록 요구되진 않는다는 것이 당업자에게 자명하게 될 것이다.
하기의 상세한 설명 중 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들 상의 알고리즘 및 동작들의 기호적 표현들의 견지에서 제시된다. 이들 알고리즘적 설명들 및 표현들은 자신의 성과의 본질을 다른 당업자에게 가장 효과적으로 전달하기 위해 데이터 프로세싱 분야의 당업자들에 의해 이용되는 방편이다. 알고리즘이 여기에서 그리고 일반적으로, 원하는 결과를 유도하는 단계들의 자기-부합적 시퀀스인 것으로 고려된다. 단계들은 물리적 양들의 물리적 조작들을 요구하는 것들이다. 보통, 이들 물리적 양들은 저장되고, 전달되고, 결합되고, 비교되고, 그렇지 않고 조작될 수 있는 전기 또는 자기 신호들의 형태를 취하지만, 반드시 이러한 형태를 취하는 것은 아니다. 때때로, 주로 공통 이용의 이유들로, 이들 신호들을 비트들, 값들, 엘리먼트들, 심볼들, 문자들, 용어들, 번호들 등으로서 지칭하는 것이 편리한 것으로 판명되었다.
그러나 이들 및 유사한 용어들 모두가 적절한 물리적 양들과 연관될 것이며 이들 양들에 적용되는 편리한 라벨들이란 것에 유념해야 한다. 하기의 논의로부터 명백한 것으로 달리 특별히 언급이 없으면, 설명 전체에 걸쳐서, "프로세싱하는" 또는 "컴퓨팅하는" 또는 "계산하는" 또는 "결정하는" 또는 "디스플레이하는" 등과 같은 용어들을 활용한 논의들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전자적) 양들을, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 전송 또는 디스플레이 디바이스들 내에서 물리적 양들로서 유사하게 표현되는 다른 데이터로 변형하고 조작하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 동작 및 프로세스들을 지칭한다는 것이 인지된다.
본 시스템 및 방법들은 또한 본 명세서의 동작들을 수행하기 위한 장치에 관한 것이다. 이 장치는 요구된 목적을 위해 특별히 구성될 수 있거나, 또는 이 장치는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은 플로피 디스크들, 광학 디스크들, CD-ROM들, 자기-광학 디스크들, 판독-전용 메모리들("ROM들"), 랜덤 액세스 메모리들("RAM들"), EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 명령들을 저장하기에 적합하고 컴퓨터 시스템 버스에 각각 커플링되는 임의의 타입의 매체들과 같은(그러나 이것으로 제한되지 않음) 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다.
본 명세서에서 제시되는 알고리즘 및 디스플레이들은 임의의 특정한 컴퓨터 또는 다른 장치에 고유하게 관련되지 않는다. 다양한 범용 시스템들이 본 명세서에서의 교시에 따라 프로그램들과 함께 이용될 수 있거나, 또는 이것은 요구되는 방법 단계들을 수행하기 위한 보다 특수화된 장치를 구성하기에 편리한 것으로 판명될 수 있다. 다양한 이들 시스템들의 구조는 아래의 설명으로부터 자명하게 될 것이다. 또한, 본 명세서에 포함되는 예들은 임의의 특정한 프로그래밍 언어를 참조하여 설명되지 않는다. 다양한 프로그래밍 언어들이 본 명세서에서 설명되는 바와 같은 기술들을 구현하는데 이용될 수 있다.
몇 개의 도면들에서 예시적으로 도시되는 예들을 설명하기 이전에, 일반 개론이 추가의 이해를 위해 제공된다. 아래에서 설명되는 바와 같이, 애플리케이션은 시간 소모적인 수동 검색을 방지하는데 이용될 수 있는, 온 디멘드(on demand)("온-더-플라이(on-the-fly)") 기술 지원을 제공하도록 디버거(debugger)를 포함하거나 이에 액세스할 수 있다. 이러한 디버거는 에러 메시지에 응답하여 이용되거나 인보크(invoke)되고, 그 후, 답변 레코드(answer record)가 이러한 에러에 대해 존재하는지를 결정하고, 존재하지 않는 경우 사용자에 대한 이러한 에러를 어드레싱하도록(address) 기술 지원("웹케이스(webcase)")에 대한 요청 및/또는 사용자들의 커뮤니티들에 대한 포스트(post)를 생성하도록 점검할 수 있다. 이러한 맥락에서, 에러를 디버깅하기 위한 관련 정보는, 사용자의 컴퓨터에 국부적이든 또는 사용자 컴퓨터에 액세스 가능한 온라인이든지 간에, 하나 이상의 이용 가능한 데이터베이스들로부터 자동으로 가져와질 수 있다.
위의 일반적인 이해를 유념한 채로, 온-더-플라이 지원에 대한 다양한 예시적인 디버거들이 일반적으로 아래에서 설명된다. 이들 예들 중 하나 이상은 특정한 타입의 IC를 이용하여 예시되기 때문에, 이러한 IC의 상세한 설명이 아래에 제공된다. 그러나 다른 타입들의 애플리케이션들이 본 명세서에서 설명된 예들 중 하나 이상으로부터 혜택들 받을 수 있다는 것이 이해되어야 한다.
프로그래밍 가능한 로직 디바이스들(programmable logic devices; "PLD들")은 특정한 논리 기능들을 수행하도록 프로그래밍될 수 있는 잘-알려진 타입의 집적 회로이다. 하나의 타입의 PLD인 필드 프로그래밍 가능한 게이트 어레이(field programmable gate array; "FPGA")는 통상적으로 프로그래밍 가능한 타일들의 어레이를 포함한다. 이 프로그래밍 가능한 타일들은 예를 들어, 입력/출력 블록들(input/output blocks; "lOB들"), 구성 가능한 로직 블록들(configurable logic blocks; "CLB들"), 전용 랜덤 액세스 메모리 블록들(dedicated random access memory blocks; "BRAM들"), 승산기들, 디지털 신호 프로세싱 블록들(digital signal processing blocks; "DSP들"), 프로세서들, 클록 관리자들, 지연 동기 루프들(delay lock loops; "DLL들") 등을 포함할 수 있다. 본 명세서에서 이용된 바와 같이, "포함하다" 및 "포함하는"은 제한 없는 포함을 의미한다.
각각의 프로그래밍 가능한 타일은 통상적으로 프로그래밍 가능한 상호연결 및 프로그래밍 가능한 로직 양자를 포함한다. 프로그래밍 가능한 상호연결은 통상적으로 프로그래밍 가능한 상호연결 지점들(programmable interconnect points; "PIP들")에 의해 상호연결되는 가변 길이들의 매우 다수의 상호연결 라인들을 포함한다. 프로그래밍 가능한 로직은 예를 들어, 함수 생성기들, 레지스터들, 산술 로직 등을 포함할 수 있는 프로그래밍 가능한 엘리먼트들을 이용하여 사용자 설계의 로직을 구현한다.
프로그래밍 가능한 상호연결 및 프로그래밍 가능한 로직은 통상적으로 프로그래밍 가능한 엘리먼트들이 어떻게 구성되는지를 정의하는 내부 구성 메모리 셀들 내로 구성 데이터의 스트림을 로딩함으로써 프로그래밍된다. 구성 데이터는 외부 디바이스에 의해 메모리로부터(예를 들어, 외부 PROM으로부터) 판독되거나 FPGA 내에 기록될 수 있다. 개별 메모리 셀들의 집합적 상태들은 이어서 FPGA의 기능을 결정한다.
다른 타입의 PLD는 복합 프로그래밍 가능한 로직 디바이스 또는 CPLD이다. CPLD는 상호연결 스위치 매트릭스에 의해 서로 그리고 입력/출력("I/O") 자원들에 연결된 2개 이상의 "기능 블록들"을 포함한다. CPLD의 각각의 기능 블록은 프로그래밍 가능한 로직 어레이들(programmable logic arrays; "PLA들") 및 프로그래밍 가능한 어레이 로직(programmable array logic; "PAL들") 디바이스들에서 이용되는 것들과 유사한 2-레벨 AND/OR 구조를 포함한다. CPLD들에서, 구성 데이터는 통상적으로 비-휘발성 메모리에 온칩(on-chip)에 저장된다. 몇몇 CPLD들에서, 구성 데이터는 비-휘발성 메모리에 온-칩으로 저장되고, 이어서 초기 구성(프로그래밍) 시퀀스의 부분으로서 휘발성 메모리에 다운로딩된다.
모든 이들 프로그래밍 가능한 로직 디바이스들("PLD들")에 대해, 디바이스의 기능은 그 목적을 위해 디바이스에 제공되는 데이터 비트들에 의해 제어된다. 데이터 비트들은 휘발성 메모리(예를 들어, FPGA들 및 몇몇 CPLD들에서와 같은 정적 메모리 셀들), 비-휘발성 메모리(예를 들어, 몇몇 CPLD들에서와 같은 FLASH 메모리) 또는 임의의 다른 타입의 메모리 셀에 저장될 수 있다.
다른 PLD들은 디바이스 상에서 다양한 엘리먼트들을 프로그래밍 가능하게 상호연결하는 금속 층과 같은 프로세싱 층을 적용함으로써 프로그래밍된다. 이들 PLD들은 마스크 프로그래밍 가능한 디바이스들로서 알려진다. PLD들은 또한 다른 방식들로, 예를 들어, 퓨즈(fuse) 또는 안티퓨즈 기술을 이용하여 구현될 수 있다. "PLD" 및 "프로그래밍 가능한 로직 디바이스"란 용어들은 이들 예시적인 디바이스들을 포함(그러나 이들로 제한되지 않음)하는 것은 물론 부분적으로만 프로그래밍 가능한 디바이스들을 포함한다. 예를 들어, 하나의 타입의 PLD는 하드-코딩된 트랜지스터 로직 및 하드-코딩된 트랜지스터 로직을 프로그래밍 가능하게 상호연결하는 프로그래밍 가능한 스위치 패브릭(programmable switch fabric)의 결합을 포함한다.
앞서 언급된 바와 같이, 진보된 FPGA들은 어레이에서 몇 개의 상이한 타입들의 프로그래밍 가능한 로직 블록들을 포함할 수 있다. 예를 들어, 도 1은 다중-기가비트 트랜시버들(multi-gigabit transceivers; "MGT들")(101), 구성 가능한 로직 블록들(configurable logic blocks; "CLB들")(102), 랜덤 액세스 메모리 블록들(random access memory blocks; "BRAM들")(103), 입력/출력 블록들(input/output blocks; "lOB들")(104), 구성 및 클로킹 로직(configuration and clocking logic; "CONFIG/CLOCKS")(105), 디지털 신호 프로세싱 블록들(digital signal processing blocks; "DSP들")(106), 특수한 입력/출력 블록들("I/O")(107)(예를 들어, 구성 포트들 및 클록 포트들), 디지털 클록 관리자들, 아날로그-디지털 변환기들, 시스템 모니터링 로직 등과 같은 다른 프로그래밍 가능한 로직(108)을 포함하는 매우 다수의 상이한 프로그래밍 가능한 타일들을 포함하는 FPGA 아키텍처(100)를 예시한다. 일부 FPGA들은 전용 프로세서 블록들("PROC")(110)을 또한 포함한다.
일부 FPGA들에서, 각각의 프로그래밍 가능한 타일은 각각의 인접 타일 내의 대응하는 상호연결 엘리먼트로의 및 이 대응하는 상호연결 엘리먼트로부터의 표준화된 연결들을 갖는 프로그래밍 가능한 상호연결 엘리먼트("INT")(111)를 포함한다. 그러므로 함께 도시된 프로그래밍 가능한 상호연결 엘리먼트들은 예시되는 FPGA에 대한 프로그래밍 가능한 상호연결 구조를 구현한다. 프로그래밍 가능한 상호연결 엘리먼트(111)는 또한 도 1의 상부에 포함되는 예들에 의해 도시되는 바와 같이 동일한 타일 내의 프로그래밍 가능한 로직 엘리먼트로, 및 이 프로그래밍 가능한 로직 엘리먼트로부터의 연결들을 포함한다.
예를 들어, CLB(102)는 사용자 로직 + 단일의 프로그래밍 가능한 상호연결 엘리먼트("INT")(111)를 구현하도록 프로그래밍될 수 있는 구성 가능한 로직 엘리먼트("CLE")(112)를 포함할 수 있다. BRAM(103)은 하나 이상의 프로그래밍 가능한 상호연결 엘리먼트들(111) 외에 BRAM 로직 엘리먼트(BRAM logic element; "BRL")(113)를 포함할 수 있다. 통상적으로, 타일에 포함되는 INT(111)들의 수는 타일의 높이에 의존한다. 그려진 FPGA에서, BRAM 타일은 5개의 CLB들과 동일한 높이를 갖지만, 다른 수(예를 들어, 4)가 또한 이용될 수 있다. DSP 타일(106)은 적절한 수의 프로그래밍 가능한 상호연결 엘리먼트들(111) 외에, DSP 로직 엘리먼트(DSP logic element; "DSPL")(114)를 포함할 수 있다. IOB(104)는 예를 들어, 프로그래밍 가능한 상호연결 엘리먼트(111)의 하나의 인스턴스 외에 입력/출력 로직 엘리먼트(input/output logic element; "IOL")(115)의 2개의 인스턴스들을 포함할 수 있다. 당업자들에게 자명할 바와 같이, 예를 들어, I/O 로직 엘리먼트(115)에 통상적으로 연결된 실제 입력/출력 로직 엘리먼트(115)의 영역으로 제한되지 않는다.
그려진 FPGA에서, 다이 중앙 근처의 수평 영역(도 1에서 도시됨)은 구성, 클록 및 다른 제어 로직을 위해 이용된다. 이 수평 영역 또는 컬럼으로부터 연장하는 수직 컬럼들(109)은 FPGA의 폭에 걸쳐서 클록들 및 구성 신호들을 분배하는데 이용된다.
도 1에서 예시된 아키텍처를 활용하는 몇몇 FPGA들은 FPGA의 큰 부분을 구성하는 정규의 두리기둥 구조를 붕괴시키는 부가적인 로직 블록들을 포함한다. 부가적인 로직 블록들은 프로그래밍 가능한 블록들 및/또는 전용 로직일 수 있다. 예를 들어, 프로세서 블록은 CLB들 및 BRAM들의 몇 개의 컬럼들에 걸쳐 있다.
도 1은 예시적인 FPGA 아키텍처를 단지 예시하도록 의도된다. 예를 들어, 행에서 로직 블록들의 수, 행들의 상대적 폭, 행들의 수 및 순서, 행들에 포함된 로직 블록들의 타입들, 로직 블록들의 상대적 크기 및 도 1의 상부에 포함된 상호연결/로직 구현들은 순전히 예시적이란 것에 주의한다. 예를 들어, 실제의 FPGA에서, CLB들의 2개 이상의 인접한 행은 통상적으로 사용자 로직 회로 설계의 효율적인 구현을 용이하게 하기 위해 CLB들이 나타날 때마다 포함되지만, 인접한 CLB 행들의 수는 FPGA의 전체 크기에 따라 변할 수 있다.
도 2는 예시적인 종래의 디버그 흐름(200)을 도시하는 블록/사시도이다. 컴퓨터(206)를 이용하는 사용자(205)는 소프트웨어 애플리케이션("툴")(210)을 실행할 때 에러에 직면할 수 있다. 과거에, 사용자(205)는 에러를 고치기 위한 해결 정보를 찾기 위해 하나 이상의 데이터베이스들(201 내지 203)에 대해 개별적으로 인터넷 클라우드(204)를 통해 수동으로 알아보았을 것이다. 이 예에서, 데이터베이스(201)는 예컨대, 사용자 질문들에 답변하는 기술 지원으로부터의 답변 레코드들의 웹 액세스 가능 데이터베이스일 수 있다. 기술 지원 담당자에 의해 착수되는 공개 사용자 질문들은 "트러블 티켓들(trouble tickets)", "웹케이스들(webcases)" 또는 다른 이름으로서 지칭될 수 있다. 데이터베이스(202)는 사용자 질문들에 답변하는 포스트들 및 스레드들을 갖는 하나 이상의 웹 액세스 가능 사용자 커뮤니티 포럼들일 수 있다. 마지막으로, 데이터베이스(203)는 제품의 제조에 의해 제공될 수 있는 웹 액세스 가능 문서들일 수 있다. 하나 이상의 데이터베이스들(201 내지 203)의 검색들이 도움이 되는 해결책을 제공하지 않는 경우, 사용자(205)는 일반적으로 사용자 커뮤니티에 대한 포럼 포스트 및 기술 지원에 대한 웹케이스를 수동으로 생성할 것이다.
디버그 플로우(200)는 하나 이상의 에러들을 생성할 수 있는 다양한 툴들 증 임의의 것에 대한 것일 수 있다. 제한이 아닌 예로서의 명확성을 위해, 전자 설계 자동화(electronic design automation; "EDA") 툴이 설명되지만, 다른 상황들에서, 다른 타입들의 툴들이 이용될 수 있다. EDA 툴은 사용자 회로 설계를, FPGA를 구성하기 위한 구성 정보로 변환하기 위해, 즉 이러한 FPGA의 프로그래밍 가능한 자원들을 이용한 예시화(instantiation)를 (제한 없이) 비롯해서, FPGA에서 사용자의 회로 설계를 예시화하도록 이용될 수 있다.
EDA 툴(210)이 에러를 생성하면, 사용자(205)에게는 답변 레코드들 데이터베이스(201)에서 온라인으로 답변 레코드들 또는 해결책 진술들(solution statements)을 검색하기 위한 옵션이 주어질 수 있다. 이러한 온라인 검색을 인보크하기 위해, 사용자(205)는 에러 메시지를 클릭하거나 에러 메시지를 우클릭하고 답변 레코드 옵션에서 검색을 선택할 수 있다. 이러한 온라인 검색이 인보크되면, 키워드 검색이 사용자(205)에 의해 수행될 수 있다. 이러한 검색으로부터의 결과들은 EDA 툴(210) 내의 웹페이지에 또는 별개의 윈도우에 디스플레이될 수 있다. 답변 레코드들의 이 검색이 에러를 해결하는데 사용자(205)에게 도움이 되지 않는 경우, 사용자(205)는 하나 이상의 사용자 커뮤니티 포럼 데이터베이스(202) 및/또는 문서 데이터베이스들(203)에서 하나 이상의 다른 검색들을 수행할 수 있다. 사용자는 Google, Bing, Yahoo 또는 일부 다른 검색 엔진을 이용하여 월드 와이드 웹(World Wide Web) 검색을 추가로 수행할 수 있다. 사용자(205)가 그의 에러를 해결하는데 도움을 주는데 검색들이 실패한 경우, 사용자(205)는 사용자 커뮤니티 포럼 상에 질의를 포스팅하고 그리고/또는 기술 지원팀에 대한 웹케이스를 수동으로 생성할 수 있다.
불행히도, 사용자(205)에 의한 상이한 검색 공간들의 수동 질의는 시간-소모적이다. 이러한 수동 검색은 검색을 위해 사용자에 의해 이용되는 키워드들에 관한 의존성으로 인해 검색 결과들이 부합하지 않게 할 수 있다. 또한, 해당 에러를 고치는데 관련 없을 수 있는 너무 많은 정보가 리턴될 수 있다. 부가적으로, 관련된 정보를 갖는 웹케이스의 수동 생성 및/또는 포럼 포스트는 사용자들 간에 변동될 수 있어서 부합하지 않고 그리고/또는 길어지는 해결책들을 야기한다.
도 3은 예시적인 온-더-플라이 기술 지원 흐름(300)을 도시하는 블록/사시도이다. 기술 지원 흐름(300)은 정보 핸들링 시스템으로 수행될 수 있다. 이러한 정보 핸들링 시스템은 컴퓨터(206), 서버(330), 하나 이상의 서버들(340) 및 네트워크 클라우드(204)를 포함한다. 이 예에서, 네트워크 클라우드(204)는 인터넷 클라우드이다.
컴퓨터(206)를 이용하는 사용자(205)는 소프트웨어 툴("툴")(310)을 실행할 때 에러에 직면할 수 있다. 툴(310)은 아래에서 부가적으로 상세히 설명되는 바와 같이 기술 지원 애플리케이션("디버거")을 인보크하기 위한 아이콘(311)을 포함할 수 있다. 재차, 이 예에서, 데이터베이스(201)는 예컨대, "웹케이스들"로서 알려진, 사용자 질문에 답변하는 기술 지원으로부터의 답변 레코드들의 웹 액세스 가능한 데이터베이스일 수 있다. 데이터베이스(202)는 사용자 질문들에 답변하는 포스트들 및 스레드들을 갖는 하나 이상의 웹 액세스 가능한 사용자 커뮤니티 포럼들일 수 있다. 마지막으로, 데이터베이스(203)는 제품의 제조자에 의해 제공될 수 있는 웹 액세스 가능한 문서들일 수 있다.
아이콘(311) 또는 다른 그래픽 사용자 인터페이스("GUI")가 하나 이상의 데이터베이스들을 자동으로 검색하도록 디버거(이하 "디버거(311)")를 인보크하는데 이용될 수 있다. 데이터베이스들은 컴퓨터(206)에 국부적일 수 있거나, 또는 온라인일 수 있다. 제한이 아닌 명확성을 위해, 온라인 데이터베이스들(201 내지 203)이 이용된다는 것이 가정되어야 한다. 도움이 되는 해결책이 발견되지 않는 경우, 디버거(311)는 사용자 커뮤니티에 대한 포럼 포스트 및 기술 지원에 대한 웹케이스를 자동으로 생성할 수 있다.
기술 지원 흐름(300)은 하나 이상의 에러들에 직면할 수 있는 다양한 툴들(310) 중 임의의 것에 대한 것일 수 있다. 제한이 아닌 예로서 명확성을 위해, 전자 설계 자동화("EDA") 툴이 설명되지만, 다른 상황들에서, 다른 타입들이 이용될 수 있다. 이러한 맥락에서, 기술 지원 모듈(311)은 디버거일 수 있고, 기술 지원 흐름(300)은 디버그 흐름일 수 있다.
EDA 툴(310)이 에러에 직면하면, 사용자(205)는 EDA 툴(310)의 디버거(311)를 인보크하기 위한 아이콘을 선택하여, 아래에서 부가적으로 상세히 설명되는 바와 같이 데이터베이스를 자동으로 검색할 수 있다. 다른 실시예에서, EDA 툴(310)은 에러의 생성에 응답하여 아래에서 부가적으로 상세히 설명되는 바와 같이 데이터베이스들을 자동으로 검색할 수 있다. 그러나 전문가 사용자의 경우, 전문가 사용자(205)는 각각의 생성된 에러에 응답하여 데이터베이스를 자동으로 검색하기를 원하지 않을 수 있으므로 아이콘이 보다 더 유용할 수 있다.
디버거(311)는 문서(320)에 액세스하기 위해 인터넷 클라우드(204)를 통해 서버(330)와 통신할 수 있다. 서버(330)는 보안 서버일 수 있다. 서버(330)는 문서(320)를 호스팅할 수 있다. 문서(320)는 복수의 섹션들(321)로 세분될 수 있고, 이러한 섹션들(321) 중 하나 이상은 복수의 서브섹션들(332)로 추가로 세분될 수 있다. 섹션들(321)은 EDA 툴(310)의 복수의 실행 가능한 모듈들을 위한 것일 수 있다. 섹션-서브섹션과 연관되는 하나 이상의 에러 코드들(323)은 이러한 연관된 서브섹션에 로케이팅될 수 있다.
EDA 예에 대해, 섹션들 또는 EDA 프로세스들은 다른 것들 중에서도, 구현 및 합성(synthesis)을 포함할 수 있다. 서브섹션들은 이러한 EDA 프로세스들 내의 스테이지들일 수 있다. 구현 프로세스 또는 섹션의 스테이지들 또는 서브섹션들은 예를 들어, 번역 스테이지, 맵 스테이지, 및 배치 및 루트 스테이지를 포함할 수 있다. 하드웨어 기술 언어들(Hardware Description Languages; "HDL들")은 제한 없이, Verilog, VHDL, 및 SystemC를 포함할 수 있다. 합성 프로세스 또는 섹션의 스테이지들 또는 서브섹션들은 HDL 파싱 및 퇴고 스테이지(elaboration stage), HDL 합성 스테이지, 진보된 합성 스테이지 및 저-레벨 합성 스테이지를 포함할 수 있다. 각각의 스테이지는, 일반적으로 스테이지를 실행할 때의 경합으로 인해, 이러한 스테이지에 대해 이러한 EDA 툴(310)이 생성할 수 있는 잘 알려진 에러 코드들을 포함할 수 있다.
각각의 에러 코드(323)는 그것 하에 임베딩되어 있는 연관된 정보를 가질 수 있다. 에러 코드(323) 하에 임베딩된 이러한 정보는 에러 레코드(327)를 제공하기 위해, 데이터베이스(201)에 대한 하나 이상의 온라인 답변 레코드 링크들(324), 데이터베이스(202)에 대한 하나 이상의 사용자 커뮤니티 포럼 링크들(325) 및/또는 데이터베이스(203)에 대한 하나 이상의 문서 링크들(326)을 포함할 수 있다.
서브섹션들(322)은 아래에서 부가적으로 상세히 설명되는 바와 같이 하나 이상의 에러 레코드들(327)과 연관될 수 있다. 하나 이상의 에러 레코드들(327)은 연관된 서브섹션들 또는 스테이지들(322) 하에서 발생할 수 있는 하나 이상의 에러들과 관련하여 하나 이상의 에러 코드들과 연관될 수 있다.
예를 들어, 문서(320)의 에러 레코드(327)는 ISE 합성 섹션(321), HDL 파싱 서브섹션(322), HDP 컴파일러 에러 코드(323), 답변 레코드("AR") 링크(324), 사용자 커뮤니티 포럼 링크(325), 및 웹 액세스 가능한 문서 링크(326)에 대한 예로서 도시된다. 따라서, 예를 들어, 매칭하는 온라인 답변 레코드에 대한 링크가 제공될 수 있으며, 여기서 이러한 답변 레코드는 직면한 에러를 디버깅하기 위한 충분한 정보/회피방법(workaround)을 갖는다. 답변 레코드들은 이러한 EDA 툴(310)의 제조자/생산자의 제품 애플리케이션 엔지니어들에 의해 생성될 수 있으며, 여기서 이러한 답변 레코드들은 동일한 것을 달성하도록 취해지는 해결된 에러들 및 단계들을 강조할 수 있다. 매칭하는 온라인 사용자 커뮤니티 포럼 링크에 대한 링크가 제공되며, 여기서 이러한 포럼 포스트 및 스레드들은 포럼 일원들에 의해 제공되는 다양한 지도(guidance)/디버깅 단계들을 포함할 수 있다. 이러한 포럼은 소셜 네트워킹 기술을 이용할 수 있다. 매칭하는 온라인 문서 참조에 대한 링크가 제공될 수 있으며, 이는 이러한 온라인 참조의 하나 이상의 부분들을 참조함으로써 사용자가 이러한 직면한 에러를 디버깅하는 것을 도울 수 있다.
적어도 하나의 서버(340)는 데이터베이스(201 내지 203)의 호스팅을 위해 이용될 수 있다. 에러 레코드들(327)은 데이터베이스들(201 내지 203) 중 적어도 하나에 대한 적어도 하나의 링크를 가져서, 이로부터 하나 이상의 에러들을 해결하기 위한 관련 정보를 가져 올 수 있다.
서버(330)는 케이스 질의의 수신에 응답하여 문서(320)를 검색하도록 프로그래밍될 수 있다. 케이스 질의는 에러에 응답하여 디버거(311)로부터 서버(330)로 송신될 수 있다. 보다 구체적으로, 직면한 에러에 응답하여 EDA 툴(310)에 의해 생성된 에러 메시지는 이러한 질의를 송신하는 디버거(311)에 대한 토대일 수 있다. 서버(330)는 이러한 케이스 질의에 응답하여 문서(320)의 이러한 서브섹션들(322)의 서브섹션(322)의 카피를 생성하도록 프로그래밍될 수 있다. 이러한 맥락에서, 식별된 섹션-서브섹션에서 모든 에러 코드들은 컴퓨터(206) 상에 로컬 카피(312)를 제공하도록 컴퓨터(206)에 송신될 수 있다. 이러한 로컬 카피(312)는 컴퓨터(206) 상에 저장될 수 있고 EDA 툴(310)의 윈도우(312)에 디스플레이될 수 있다. 서버(330)는 문서(320)의 서브섹션(322)의 이러한 카피를, 이러한 케이스 질의를 발생시킨 클라이언트, 예컨대, 컴퓨터(206)에 송신하도록 프로그래밍될 수 있다.
케이스 질의에 응답하기 위한 에러 레코드(327)가 문서(320)에 존재하지 않는 경우 또는 사용자가 이러한 로컬 카피에서 에러에 대한 해결책을 발견하지 못하는 경우, 디버거(311)는 웹케이스(webcase)를 개시할 수 있고, 엔트리, 즉 트러블 티켓 또는 웹케이스가 이러한 미해결 이슈에 대해 문서에서 생성될 수 있다. 서버(330)는 웹케이스에 대한 엔트리를 생성하기 위해 문서(320)를 업데이트하도록 프로그래밍될 수 있다. 제한이 아닌 예로서 명확성을 위해, 에러 레코드(329)는 웹케이스의 예이다. 에러 레코드(329)는 섹션들(312)의 섹션, 서브섹션들(322)의 서브섹션 및 에러 코드들(323)의 에러 코드를 갖는 에러 메시지를 포함할 수 있다. 에러 레코드(329)는 추가로 기술 지원이 인보크되었음을 표시하는 웹케이스 번호 및 날짜(328)를 포함할 수 있다. 에러 레코드(329)는 추가로 이러한 에러가 현재 커뮤니티 사용자 포럼에서 어드레싱되고 있다는 통지(notice)를 다른이들에 하기 위해 데이터베이스(202) 내의 커뮤니티 포럼 포스트에 대한 링크(325)를 포함할 수 있다. 에러 레코드(329)는 이러한 에러가 발생한 것과 연관된 데이터베이스들(203) 내의 문서에 대한 링크(326)를 또한 추가로 포함할 수 있다. 예시된 예를 지속하여, 합성을 실행하는 동안 에러가 발생했으며 디버거(311)는 이를 이미 식별하였고, 합성 사용자 가이드에 대한 링크가 제공될 수 있다고 가정한다. 웹케이스가 애플리케이션 엔지니어에 의해 해결되면, 이러한 애플리케이션 엔지니어는 답변 레코드에 이러한 해결책을 새로운 답변 레코드에 기록(document)하고 새로운 답변 레코드에 대한 대응하는 웹케이스 번호를 링크할 수 있다.
도 4는 정보 핸들링 시스템에 의해 수행될 수 있는 예시적인 디버그 흐름(400)을 도시하는 흐름도이다. 디버그 흐름(400)은 도 3의 온-더-플라이 기술 지원 흐름(300)에 대해 이용될 수 있다. 재차, 제한이 아닌 예로서 명확성을 위해, 디버그 흐름(400)은 EDA 툴의 이용자들에 대한 디버그 흐름이란 것이 가정되어야 한다. 도 3 및 도 4를 동시에 참조하여, 디버그 흐름(400)이 추가로 설명된다.
401에서, 직면한 에러는 툴(310)의 프로세스 또는 모듈을 정지시키는데, 즉, 이러한 툴의 흐름을 정지시킬 수 있다. 이러한 에러에 응답하여, 이러한 툴(310)은 에러 메시지(02)를 생성할 수 있다. 에러 메시지(402)에 응답하여, 403에서, 디버거(311)가 개시될 수 있다. 재차, 제한이 아닌 명확성을 위해, 사용자(205)는 툴(310)의 GUI의 디버크 아이콘을 클릭할 수 있다.
동작들(404 내지 412)은 컴퓨터(206) 상에서 실행하는 디버거(311)에 의해 수행될 수 있다. 디버거(311)는 본 명세서의 다른 곳에서 설명되는 바와 같이 유형의 컴퓨터-판독 가능한 저장 매체 상에 저장되는 컴퓨터-판독 가능한 프로그램일 수 있으며, 여기서 디버거(311)는 컴퓨터(206) 또는 컴퓨터(206)가 동작들(404 내지 412)을 수행하게 하기 위한 다른 정보 핸들링 시스템에 의해 프로세싱될 수 있다. 본 명세서에서 설명되는 다른 동작들은 도 3을 참조하여 설명된 바와 같은 정보 핸들링 시스템의 다른 컴포넌트들에 의해 수행될 수 있다.
404에서, 디버거(311)는 이러한 에러 메시지로부터 에러 코드를 획득하기 위해 툴(310)에 의해 생성되는 에러 메시지(402)를 판독한다. 디버거(311)는 추가로 이러한 에러 메시지와 연관되는 에러 콘텐츠를 획득하기 위해 이러한 에러 메시지를 판독할 수 있다
툴(310)은 현재 프로세싱되는 설계에 대한 정보 핸들링 시스템 프로젝트 디렉토리를 가질 수 있다. EDA 툴들은 의존성 흐름을 가질 수 있고, 이에 따라 EDA 툴(310)에 의해 시행되는 현재 프로세스는 현재 활동에 대한 하나 이상의 이전의 완료된 모듈들 또는 프로세스들로부터의 하나 이상의 입력들에 의존할 수 있다. 이는 디버거(311)가 실패 모듈로 범위를 좁혀가도록(narrow down) 하고 마지막 완료된 모듈은 물론, 만약 있다면, 임의의 다른 완료된 모듈들을 식별하는 것을 도울 수 있다. 예를 들어, 에러가 맵핑 프로세스에서 발생하는 경우, 디버거(311)는 합성 및 번역인 현재 활동에 대한 과거 완료된 모듈들을 식별할 수 있을 수도 있다.
405에서, 정보 핸들링 시스템 프로젝트 디렉토리(413)가 리포트를 획득하도록 검색될 수 있다. EDA 툴(310)은 현재 EDA 활동을 통해 진척될 때, 이러한 EDA 툴(310)은 완료되었든 아니든 간에, 이러한 모듈에 대한 하나 이상의 리포트들(414)의 리포트를 생성할 수 있다. 따라서, 하나 이상의 대응하는 완료된 모듈들의 하나 이상의 리포트들(414)은 물론, 실패된 모듈에 대한 리포트들(414)의 리포트가 존재할 수 있다. 리포트들 이외의 다른 파일들이 프로젝트 디렉토리(413)에 존재할 수 있다. 예를 들어, 디버거(311)는 현재 EDA 활동에 대한 최상부 모듈에 대한 요약 xml 파일을 풀 아웃(pull out)할 수 있다.
405에서, 리포트들(414)의 리포트는 EDA 툴(310)의 복수의 실행 가능한 모듈들의 실패된 모듈을 표시할 수 있다. 이에 따라, 획득된 이러한 리포트는 404에서, 판독된 에러 메시지와 연관될 수 있다. 심지어 완료된 모듈에 대한 리포트들은 하나 이상의 잠재적인 에러들의 하나 이상의 경고들을 표시할 수 있다. 완료된 또는 실패된 모듈들에 대한 것이든지 간에, 하나 이상의 요약 리포트들로부터 획득된 하나 이상의 경고들이 에러를 디버깅하는데 있어 도움이 될 수 있다.
406에서, 디버거(311)는 있는 경우, 에러와 연관되는 회로 엘리먼트들 중 하나 이상을 식별하기 위해 에러 메시지(402)를 분해(break down)할 수 있다. 이러한 회로 엘리먼트들은 예를 들어, 하나 이상의 넷(net)들, 신호들, 블록들, 포트들 및/또는 인스턴스들일 수 있고 에러 메시지에서 에러 콘텐츠의 부분일 수 있다. 이러한 회로 엘리먼트들은 일반적으로 에러의 "소스"로서 지칭된다. 즉, "소스"는 이 예에서 회로에 관하여 에러 메시지 내에 있는 것이 무엇인지를 식별할 수 있다.
407에서, 405에서 가져온 정보로, 디버거(311)는 모든 완료된 모듈들에 대해 순차적으로 리포트들(414)을 선택적으로 오픈(open)하고 "소스" 정보를 이용하여 이러한 리포트들 각각에서 키워드 검색들 수행할 수 있다. 이러한 키워드 검색으로부터 획득된 정보는 사용자가 무시하였지만 에러 메시지(402)와 연관된 에러의 원인일 수 있는 경고들을 식별하는데 이용될 수 있다.
선택적으로, 408에서, 제한 없이, 407에서의 이러한 키워드 검색으로부터, 임의의 경고들을 포함하는, 예컨대, 예를 들어, 태깅되고 예를 들어, 캐시와 같은 저장소에 저장된 히트들(hits)이 주목될 수 있다. 예를 들어, 맵 모듈에서의 에러가 pcie_0 란 명칭의 신호를 식별하는 경우, 디버거(311)는 (예를 들어, 확장자 "syr"를 갖는) 합성 모듈 리포트를 먼저 오픈하고, pcie_0와 관련된 경고들을 찾을 수 있고, 디버거(311)가 임의의 매칭하는 경고를 찾는 경우, 디버거(311)는 디버거(311) 캐시에 이러한 경고들 각각을 저장할 수 있다. 그러나, 디버거(311)가 합성 모듈에서 407의 검색으로부터 어떠한 매치들도 발견하지 못하는 경우, 디버거(311)는 번역 모듈 리포트(예를 들어, 확장자 "bid")를 오픈하고 종속성에 따라 순차적으로 프로세싱 모듈들을 지속할 수 있다.
409에서, 실패된 모듈의 리포트가 오픈된다. 410에서, 실패된 서브섹션, 또는 이러한 실패된 모듈의 페이즈(phase) 또는 스테이지가 405에서 획득된 리포트로부터 식별된다. 예를 들어, 디버거(311)는 EDA 툴(310)이 실패한 모듈에 대한 리포트 파일을 오픈하고 이러한 실패가 발생한 서브섹션, 페이즈 또는 스테이지("스테이지")에 이르기까지 스캔한다.
실패가 방생한 스테이지에 있어서, 온라인 문서(320)의 케이스 질의(415)가 이루어질 수 있으며, 이러한 케이스 질의(415)는 예를 들어, 검색될 섹션-서브섹션, 즉 예를 들어, 모듈의 실패된 스테이지를 포함한다. 선택적으로, 케이스 질의(415)는, 서버(330)가 아래에서 부가적으로 상세히 설명되는 바와 같이 온라인 문서(320)의 검색을 수행하는 구성에 대한 에러 메시지(402)로부터의 에러 코드를 포함할 수 있다.
디버거(311)는 411에서 네트워크 서버(330)에 액세스할 수 있으며, 여기서 이러한 네트워크 서버(330)는 이러한 온라인 문서(320)를 호스팅하고, 케이스 질의는 에러 메시지(402)에 대하여 412에서, 이러한 온라인 문서(320)의 대응하는 스테이지 또는 서브섹션(322)에서 검색하도록 이러한 네트워크 서버(330)에 송신될 수 있다. 이러한 온라인 문서(320)는 연관된 링크들과 함께 이전에 설명된 바와 같이 구성될 수 있으며, 각각의 섹션(321)의 각각의 서브섹션(322)에 대한 하나 이상의 알려진 에러 코드들(323)이 나열된다.
도 5는 서버(330)에 대한 예시적인 웹-액세스 가능한 서버 흐름("서버 흐름")(500)을 도시하는 흐름도이다. 즉, 서버(330)는 서버 흐름(500)의 동작을 수행하도록 하는 명령들을 실행하게 프로그래밍된 컴퓨터일 수 있다. 도 3을 동시에 참조하여, 서버 흐름(500)이 추가로 설명된다.
501에서, 서버(330)에 의해 호스팅되는 문서(320)가 제공된다. 재차, 서버(330)는 보안 서버일 수 있다. 502에서, 모듈 및 스테이지 또는 섹션 및 서브섹션을 이용하여, 412에서 송신된 케이스 질의에서, 문서(320)의 이러한 서브섹션의 검색이 수행된다. 예를 들어, 서브섹션만이 에러 코드에 대해 검색되고 후속 검색은 로컬 카피를 이용하여 클라이언트 레벨에서 행해지기 때문에 이 검색은 비교적 빠르다.
503에서, 이러한 서브섹션의 카피가 생성된다. 서브섹션(322)의 이러한 카피는 이러한 서브섹션과 연관되는 하나 이상의 에러 코드들(323)의 리스트를 포함한다. 각각의 에러 코드(323)는 콘텐츠를 포함할 수 있으며, 이는 이러한 에러 코드와 연관되는 정보를 갖는 하나 이상의 데이터베이스들에 대한 하나 이상의 링크들을 포함할 수 있다. 504에서, 이러한 카피는 예를 들어, 412에서 송신된 케이스 질의에 응답하여 컴퓨터(206)와 같은 클라이언트에 송신될 수 있다. 즉, 412에서 송신된 케이스 질의에 응답하여, 서버(330)는 이러한 클라이언트 컴퓨터(206)의 로컬 카피(312)로서 이용을 위해 문서(320)의 서브섹션을 가져와서 클라이언트 컴퓨터에 송신할 수 있다.
또한, 사용자(205)가 수행하는 디버깅은 로컬 카피의 다수의 액세스를 포함하는 반복적 활동일 수 있다. 로컬 카피(312)를 가짐으로써, 사용자(205)는 동일한 에러에 대해 계속해서 서버(330)로 돌아가야 할 필요가 없을 수 있다. 또한, 로컬 카피를 검색함으로써, 에러 코드들에 대한 검색은 서버(330)로부터 클라이언트 컴퓨터(206)로 떠넘겨질 수 있다. 부가적으로 로컬 카피(312)를 클라이언트 컴퓨터(206)에 제공함으로써, 앞서 설명된 바와 같이, 디버거(311)는 이러한 에러가 사용자(206)에 의해 재차 인식되는 경우에 웹케이스 정보를 빠르게 디스플레이할 수 있다. 개방 웹케이스에 관하여, 사용자(205)에게는 아래에서 부가적으로 상세히 설명되는 바와 같이 이러한 에러가 식별되었다고 통지될 것이다.
도 3 내지 도 6을 동시에 참조하며, 여기서 도 6은 412에서 송신된 케이스 질의에 응답하여 문서(320)의 서브섹션(322)의 로컬 카피(312)를 수신하는 것에 반응하여, 정보 핸들링 시스템에 의해 수행될 수 있는 예시적인 디버그 흐름(600)을 도시하는 흐름도이다. 디버그 흐름은 디버그 흐름(400)의 확장일 수 있다. 이러한 맥락에서, 디버그 흐름(600)의 동작들은, 아래에서 부가적으로 상세히 설명되는 바와 같이 디버거(311)에 의해 실행될 수 있다.
601에서, 서브섹션(322) 또는 온라인 문서(320)의 다른 부분은 412에서 송신된 질의 케이스에 응답하여 클라이언트 컴퓨터(206)에 의해 수신되고 로컬 카피(312)로서 저장된다. 이러한 서브섹션(322)은 EDA 툴(310)의 실패된 스테이지와 연관되고, 이러한 서브섹션(322)은 디버거(311)의 실행에 응답하여 제공된다.
602에서, 이러한 로컬 카피(312)는 에러 메시지(402)로부터 획득된 에러 코드를 이용하여 검색될 수 있다. 603에서, 에러 메시지(402)로부터 획득된 이러한 에러 코드가 이러한 로컬 카피(312)에 존재하는지가 결정된다. 603에서, 이러한 에러 코드에 대한 매칭이 이러한 로컬 카피(312)에서 발견되는 경우, 604에서, 이러한 매칭하는 엔트리가 카피되고 저장될 수 있다. 이러한 매칭하는 엔트리는 컴퓨터(206)의 캐시 메모리에 저장될 수 있다. 하나 초과의 매칭하는 엔트리가 서브섹션에서 발견될 수 있다. 이러한 예에서, 각각의 이러한 매칭하는 엔트리는 캐시 메모리에 카피되고 저장될 수 있다.
예로서 명확성을 위해, EDA 툴(310)이 도 3에서 예시적으로 도시된 바와 같이 에러(HDL 컴파일러 에러(718))로 인해 합성에 실패하는 경우, 디버거(311)는 이에 대해 a.syr 파일을 열고 EDA 툴(310)이 실패한 페이즈를 찾을 수 있다. EDA 툴(310)이 HLD 파싱에 실패하는 경우, 서버(330)는 온라인 문서(320)에서 동일한 섹션-서브섹션을 검색하고 로컬 카피(312)로서 이러한 섹션-서브섹션 하에서 완료된 콘텐츠를 리턴한다. 디버거(311)는 이러한 로컬 카피(312)에서 에러 코드(718)를 검색하고 이러한 에러 코드 하의 콘텐츠, 예를 들어, 매칭하는 답변 레코드 링크(324), 포럼 엔트리 링크(325), 및 문서 링크(326)를 리턴한다. 디버거(311)는 콘솔 윈도우 EDA 툴(310) 또는 다른 윈도우에서 연관된 데이터베이스들(201 내지 203)의 정보를 디스플레이하도록 하나 이상의 링크들(324 내지 326)을 자동으로 실행할 수 있다.
605에서, 디렉토리(413)의 완료된 리포트들로부터 408에서 획득된 모든 경고들이 604에서 저장된 모든 매칭하는 엔트리들과 연계(concatenate) 또는 다른 방식으로 결합 또는 그룹핑될 수 있고, 이러한 결과는 EDA 툴(310)의 콘솔 윈도우에서 디스플레이될 수 있다. 이 정보를 이용하여, 사용자(205)는 에러 메시지(402)의 인보크(invocation)를 야기한 에러를 디버깅할 수 있을 수 있다. 디버깅은 몇몇 시도(trial) 및 에러를 포함하는 반복적 활동일 수 있다. 이러한 에러를 해결하기 위해 모든 식별된 관련 정보를 사용자(205)에게 제공함으로써, 사용자(205)는 기술 지원 대표에 접촉하는 것에 의지할 필요 없이 스스로 이러한 에러의 원인을 고칠 가능성이 매우 높아질 수 있다.
그러나, 603에서, 에러 메시지(402)의 에러 코드에 대한 어떠한 매칭하는 엔트리도 602에서의 검색으로부터 로컬 카피(312)에서 발견되지 않는 경우, 웹케이스는 동작들(606 내지 608)을 이용하여 디버거(311)에 의해 자동으로 개시될 수 있다.
606에서, 로컬 카피(312)에서 에러 코드의 어떠한 매칭하는 엔트리도 발견하지 않는 것에 응답하여, EDA 툴(310)의 실패 모듈의 식별은 웹케이스를 제공하기 위해 에러 메시지(402) 및 408에서 저장된 임의의 그리고 모든 경고들과 연계되거나, 그렇지 않고 이들과 결합 또는 그룹핑될 수 있다. 또한, EDA 예에 대해서, 연관된 설계 파일들은 이러한 웹케이스를 제공하도록 연계될 수 있다. EDA 툴(310)의 실패 모듈의 식별은 예를 들어, 이러한 실패가 발생한 섹션(321) 및 서브섹션(322), 즉 모듈 및 스테이지를 제공함으로써 제공될 수 있다.
이에 따라, 에러 메시지(402)와 연관되는 임의의 그리고 모든 관련 정보는 기술 지원에 제공하기 위해 획득될 수 있다. 예를 들어, 이러한 웹케이스와 연관되는 설계 파일들 및 리포트들은 기술 지원 도움 데스크의 애플리케이션 엔지니어들을 위해 이러한 웹케이스에 자동으로 부착될 수 있다. 이는 에러들의 해결을 빠르게 하는 것은 물론, 에러들을 해결하는데 있어 보다 나은 부합성을 제공할 수 있다.
선택적으로, 607에서, 타이틀은 606에서 제공된 이러한 웹케이스에 대해 자동으로 생성되고 이에 첨부될 수 있다. 이러한 타이들은 모듈 명칭 및 그의 스테이지에 의해 식별된 실패 모듈의 명칭 및 위치를 포함할 수 있다. 608에서, 이러한 웹케이스(609)는 인터넷 클라우드(204)와 같은 네트워크를 통해 서버(330)에 송신될 수 있다.
도 7은 예시적인 웹케이스 엔트리 생성 흐름(700)을 도시하는 흐름도이다. 아래에서 부가적으로 상세히 설명되는 바와 같이, 웹케이스 엔트리 생성 흐름(700)은 웹케이스 엔트리 및 커뮤니티 사용자 포럼 포스트 둘 다를 생성하는 것을 포함할 수 있다.
701에서, 서버(330)는 웹케이스(609)를 수신할 수 있다. 702에서, 수신된 웹케이스(609)는 그로부터 웹케이스 번호를 생성 및 수신하도록 서버(330)에 의해 기술 지원에 송신될 수 있다. 703에서, 서버(330)는 웹케이스(609)를 이용하여 사용자 커뮤니티 포럼에 대한 포스트를 생성 및 송신할 수 있다. 웹케이스(609)의 단축된 버전은 거기서 포스트를 생성하기 위해 사용자 커뮤니티 포럼 데이터베이스(202)에 송신될 수 있다. 따라서, 웹케이스(609)는 인터넷 클라우드(204)를 통해 사용자 커뮤니티 포럼 어드레스 및 기술 지원 어드레스 둘 다에 송신될 수 있다.
704에서, 서버(330)는 웹케이스(609)에 대한 엔트리를 생성하기 위해 온라인 문서(320)를 업데이트할 수 있다. 이러한 엔트리는 웹케이스(609)에 대한 웹케이스 번호를 이용하여 기술 지원 데이터베이스(201)에 대한 링크, 사용자 커뮤니티 포럼 데이터베이스(202) 내의 웹케이스(609)와 연관되는 포스트에 대한 링크 및/또는 웹케이스(609)와 연관되는 문서에 대한 링크를 포함할 수 있다.
온라인 문서(320)에서 이러한 엔트리를 생성함으로써, 동일한 에러에 직면하는 하나 이상의 후속 사용자들은 이러한 에러가 알려진 에러이며 현재 해결중(work on)이라는 것을 인식하게 될 수 있다. 이는 다른 사용자들에 의한 에러 검색 및/또는 웹케이스 생성의 중복을 방지하는데 이용된다. 또한, 이러한 에러의 반복은 앞서 설명된 바와 같이 디버깅 정보의 제공의 자동화로 인해 부합성을 가짐으로써 미래에 더 쉽고 정확하게 어드레싱될 수 있다.
도 8은 예시적인 문서 생성 흐름(800)을 도시하는 흐름도이다. 문서 생성 흐름(800)은 도 3의 문서(320)의 생성을 위한 스크립트(820)일 수 있으며, 이러한 스크립트 또는 컴퓨터-판독 가능한 프로그램(820)은 유형의 컴퓨터-판독 가능한 저장 매체에 저장될 수 있고, 이러한 스크립트(820)는 이러한 정보 핸들링 시스템이 스크립트(820)의 동작들을 수행하게 하기 위해 정보 핸들링 시스템에 의해 프로세싱될 수 있다. 문서 생성 흐름(800)은 추가로 도 3 내지 도 8을 동시에 참조하여 추가로 설명된다.
801에서, 생성되는 문서(320)는 EDA 툴(310) 모듈들 및 스테이지들에 대응하는 섹션들(321) 및 서브섹션들(322)로 구성될 수 있다. 802에서, 이러한 서브섹션들(322) 각각은 연관된 에러 코드들(323)로 채워(populate)질 수 있다. 803에서, 개인 웹케이스 데이터베이스(도시되지 않음)에서 반복적 검색은 이러한 EDA 툴(310)에 대한 에러 코드들(323)을 갖는 비공개 상태(closed state)의 웹케이스들을 식별하도록 이러한 에러 코드들(323)을 이용하여 수행될 수 있다. 비공개 웹케이스들이 발견되는 경우, 웹케이스 번호들이 획득되고 대응하는 에러 코드 섹션들 하에서 문서(320)에 부가될 수 있다.
804에서, 공공 답변 레코드 데이터베이스(201)와 별개의 데이터베이스일 수 있는 개인 답변 레코드 데이터베이스(도시되지 않음)의 반복적 검색은 이러한 웹케이스에 링크되는 답변 레코드들에 대해 803에서 획득된 웹케이스 번호들을 이용하여 수행될 수 있다. 매칭하는 답변 레코드들은 이러한 특정한 에러들의 최상의 매칭들일 수 있다.
805에서, 804의 검색으로부터 매칭하는 답변 레코드들의 답변 레코드 번호들은 공공 답변 레코드 데이터베이스(201)에서 카피되고 검색될 수 있다. 이는 답변 레코드들이 대중 소비를 위해 해제(release)되었는지를 결정하기 위한 점검이다. 805에서 이러한 검색에 대한 공공 답변 레코드 데이터베이스(201)에서 매칭하는 답변 레코드 번호들에 대해, 806에서, 이러한 매칭하는 공공 답변 레코드 번호들은 그의 대응하는 링크들이 대응하는 에러 코드들 하에서 문서(320)로 카피되게 할 수 있다. 807에서, 대응하는 공공 답변 레코드들을 갖는, 803에서 문서(320)에 부가되는 웹케이스 번호들은 제거되고 대응하는 공공 답변 레코드 번호들로 대체될 수 있다.
808에서, 스크립트(820)는 하나 이상의 사용자 커뮤니티 포럼 데이터베이스들(202)에서 검색을 수행하고 이러한 에러 코드 하의 문서(320) 내의 각각의 대응하는 에러 코드에 대한 각각의 매칭하는 포럼 엔트리를 부가할 수 있다. 각각의 이러한 매칭하는 포럼 엔트리는, 있는 경우 이러한 에러 코드 하의, 807에서 발견된 답변 레코드 엔트리 아래에 부가될 수 있다.
809에서, 툴의 페이즈/스테이지에 응답하여 에러 코드들에 대한 관련 문서로의 링크들에 대한 웹 검색이 수행될 수 있고, 임의의 발견되는 링크들은 대응하는 에러 코드들 하에서 문서(320)에 부가될 수 있다.
디버거(311)가 EDA 툴(310)에서 새로운 에러에 직면할 때마다, 디버거(311)는 앞서 설명된 바와 같이 새로운 기술 지원 웹케이스를 제출하고 포럼 엔트리를 생성할 수 있다. 이 정보는 문서 링크들과 함께 문서(320)에서 업데이트된다.
스크립트(820)의 부분(이 부분은 별개의 스크립트로서 제공될 수 있음)은 새로운 에러들(생성된 새로운 웹케이스들을 비공개 해결 상태(closed resolution status)와 연관시킴)을 찾도록, 즉, 비공개 상태를 갖는 이러한 새로운 웹케이스에 대한 803의 검색을 수행하도록, 답변 레코드 번호들을 포함하는 대응하는 답변 레코드 세부사항들을 가져오기 위해 이러한 새로운 웹케이스들에 대해 획득된 이러한 웹케이스 번호들을 이용하여 804의 검색은 물론, 공공에게 해제된 것으로서 이러한 대응하는 답변 레코드들의 상태를 확인하도록, 공공 답변 레코드 데이터베이스(201)에서 이러한 해제된 답변 레코드들에 대한 805에서의 검색을 수행하도록 그리고 이러한 답변 레코드들로의 링크들로 문서(320)의 웹케이스 엔트리들의 업데이팅을 확인하도록, 일상적으로 실행되게 스케줄링될 수 있다. 스크립트(820)의 이러한 부분은 연관된 답변 레코드를 갖지 않는 문서(320)의 모든 에러들에 관해 수행될 수 있다.
도 9는 서버(330)에 대한 다른 예시적인 웹-액세스 가능한 서버 흐름("서버 흐름")(900)을 도시하는 흐름도이다. 도 3 내지 도 7을 동시에 참조하여, 서버 흐름(900)이 추가로 설명된다.
501에서, 문서(320)는 앞서 설명된 바와 같이 서버(330)에 의해 호스팅되는 바와 같이 온라인으로 제공될 수 있다. 902에서, 서버(330)는 412에서 송신된 웹케이스 질의(415)에서 제공되는 에러 코드로 식별된 섹션-서브섹션에서 문서(320)를 검색하며, 여기서 이러한 케이스 질의(415)는 검색 및 에러 코드에 대한 식별된 섹션-서브섹션을 포함한다. 603에서, (클라이언트 컴퓨터(206)가 디버거(311)를 실행하지만) 앞서 설명된 바와 같이 임의의 매칭하는 엔트리가 있는지가 서버(330)에 의해 결정될 수 있다. 903에서, 서버(330)는 로컬 카피(312)로서 904에서 클라이언트 컴퓨터(206)에 송신하기 위해 임의의 그리고 모든 매칭하는 엔트리들의 카피를 생성할 수 있다. 이에 따라, 이 구성에서, 서버(330)는 전체 서브섹션이 아니라, 이전에 설명된 구성과 대조적으로, 단지 식별된 서브섹션 내의 하나 이상의 매칭하는 에러 코드의 로컬 카피만을 제공하기 위해 에러 코드 검색을 수행한다.
이 예에 대해, 케이스 질의(415)는 408에서 저장된 임의의 그리고 모든 경고들을 및 에러 메시지(402)를 더 포함할 수 있다. 따라서, 603에서, 어떠한 매칭하는 엔트리도 존재하지 않는 경우, 서버(330)는 (클라이언트 컴퓨터(206)에 의해 이루어지지만) 앞서 설명된 바와 같이 동작들(606 및 선택적으로 607)을 수행할 수 있다. 서버(330)는 앞서 설명된 바와 같은 동작들(702 내지 704)을 또한 수행할 수 있다. 908에서, 서버(330)에 의해 준비되는 문서(320) 내의 웹케이스 질의는 로컬 카피(312)로서 제공하기 위해 카피되어 클라이언트 컴퓨터(206)에 송신될 수 있다. 따라서, 사용자(206)에게는, 문서(320)가 에러 메시지(402)에 응답하여 어떠한 관련 정보도 갖지 않으며, 웹케이스는 에러 메시지(402) 내의 에러 코드를 해결하기 위한 디버깅을 위해 관련 정보를 획득하도록 개시되었음이 통지될 수 있다.
도 10은 도 9의 서버 흐름(900)에 대해 디버거(311)에 대한 예시적인 웹케이스 흐름(1000)을 도시하는 흐름도이다. 1001에서, 서버 흐름(900)으로부터의 로컬 카피가 클라이언트 컴퓨터(206)에 의해 수신될 수 있다. 이러한 로컬 카피(312)는 온라인 문서(320) 내의 웹케이스 질의(29)의 카피일 수 있다. 1001에서 이러한 로컬 카피(312)의 수신 이후에, 동작(605)은 웹케이스 엔트리의 이러한 로컬 카피를 이용하여 앞서 설명된 바와 같이 수행될 수 있다.
도 11은 예시적인 컴퓨터 시스템(1100)을 도시하는 블록도이다. 컴퓨터 시스템(1100)은 음극선관(Cathode Ray Tube; "CRT") 디스플레이, 플라즈마 디스플레이, 액정 디스플레이들(Liquid Crystal Displays; "LCD"), 프로젝터들과 같은 하나 이상의 디스플레이 디바이스들(1100)에, 그리고 키보드 및 커서 포인팅 디바이스와 같은 하나 이상의 입력 디바이스들(1106)에 커플링되는 프로그래밍된 컴퓨터(1110)를 포함할 수 있다. 컴퓨터 시스템의 다른 알려진 구성들이 이용될 수 있다. 하나 이상의 다른 컴퓨터 시스템들과 그 자체의 컴퓨터 시스템들(1110)은 정보 핸들링 시스템을 제공할 수 있다.
프로그래밍된 컴퓨터(1110)는 다른 알려진 플랫폼들 중에서도, Mac OS, 자바 가상 머신(Java Virtual Machine), 실시간(Real-Time) OS 리눅스, 솔라리스(Solaris), iOS, 안드로이드 리눅스-기반(Android Linux-based) OS, Unix, 또는 Windows 운영 체제일 수 있는 알려진 운영 체제로 프로그래밍될 수 있다. 프로그래밍된 컴퓨터(1110)는 중앙 처리 장치(central processing unit; CPU)(1104), 메모리(1105), 및 입력/출력(input/output; "I/O") 인터페이스(1102)를 포함한다. CPU(1104)는 예를 들어, IBM, Intel, ARM, 및 Advanced Micro Devices로부터 입수 가능한 것과 같은 당 분야에 알려진 마이크로프로세서의 타입일 수 있다. 지원 회로들(도시되지 않음)은 캐시, 전력 공급기들, 클록 회로들, 데이터 레지스터들 등을 포함할 수 있다. 메모리(1105)는 CPU(1104)에 직접 커플링되거나 I/O, 인터페이스(1102)를 통해 커플링될 수 있다. 운영 체제의 적어도 일부는 메모리(1105)에서 개시될 수 있다. 메모리(1105)는 플래시 메모리, 랜덤 액세스 메모리, 판독 전용 메모리, 자기-저항 판독/기록 메모리, 광학 판독/기록 메모리, 캐시 메모리, 자기 판독/기록 메모리 등은 물론, 아래에서 설명되는 바와 같은 비-일시적인 신호-베어링 매체들(non-transitory signal-bearing media) 중 하나 이상을 포함할 수 있다.
I/O 인터페이스(1102)는 다른 알려진 회로들 중에서도, 칩 셋 칩들, 그래픽 프로세서들 및/또는 도우터 카드들(daughter cards)을 포함할 수 있다. 도우터 카드의 예는, 다른 알려진 회로들 중에서도, 네트워크 인터페이스 카드(network interface card; "NIC"), 디스플레이 인터페이스 카드, 모뎀 카드, 유니버셜 직렬 버스(Universal Serial Bus; "USB") 인터페이스 카드를 포함할 수 있다. 따라서, I/O 인터페이스(1102)는 종래의 키보드, 네트워크, 마우스, 디스플레이 프린터 및 데이터 파일들 등과 같은 데이터를 수신 및 전송하도록 적응된 인터페이스 회로에 커플링될 수 있다. 프로그래밍된 컴퓨터(1110)는 예를 들어, 인터페이스 생성을 위한 분배식 이용을 허용하도록 회사의 인트라넷 및/또는 인터넷과 같은 종래의 네트워크 기반설비를 통해 다수의 클라이언트 컴퓨터들, 서버 컴퓨터들, 이들의 임의의 결합에 커플링될 수 있다.
메모리(1105)는 프로그램 제품(1120)을 제공하기 위한 프로세스를 구현하도록 하나 이상의 프로그램 또는 데이터의 일부 또는 전부를 저장할 수 있다. 부가적으로, 당업자는 이들의 하나 이상의 실시예들이 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다는 것을 인지할 것이다. 이러한 구현들은 다양한 프로그램들을 독립적으로 실행하는 다수의 프로세서들 또는 프로세서 코어들 및 전용 하드웨어 또는 프로그래밍 가능한 하드웨어를 포함할 수 있다.
프로그램 제품(1120)의 하나 이상의 프로그램(들)은 물론, 그의 문서들은 본 명세서에서 설명된 기능들을 정의할 수 있고, (i) 기록 불가능한 저장 매체(예를 들어, CD-ROM 드라이브 또는 DVD 드라이브에 의해 판독 가능한 CD-ROM 또는 DVD-ROM 디스크들과 같은 컴퓨터 내의 판독-전용 메모리 디바이스들) 상에 영구적으로 저장되는 정보; 또는 (ii) 기록 가능한 저장 매체(예를 들어, 디스켓 드라이브 내의 플로피 디스크들 또는 플래시 드라이브 또는 하드-디스크 드라이브 또는 판독/기록 가능한 CD 또는 판독/기록 가능한 DVD) 상에 저장된 교체 가능한 정보를 포함(그러나 이것으로 제한되지 않음)하는, 컴퓨터-판독 가능한 매체들과 같은 다양한 비-일시적인 신호-베어링 매체들 상에 포함될 수 있다. 위의 예들은 특히 인터넷 또는 다른 네트워크들로부터 다운로딩되는 정보를 포함한다. 이러한 비-일시적인 신호-베어링 매체들은 본 발명의 기능들을 지시하는 컴퓨터-판독 가능한 명령들을 포함할 때, 본 명세서에서 설명된 기능들을 구현하도록 또한 이용될 수 있다.
EDA 툴에 대한 디버거가 설명되었지만, 이러한 온-더-플라이 기술 지원은 다른 애플리케이션들 및 이에 따라 다른 산업들에 대해 이용될 수 있다. 이러한 온-더-플라이 기술 지원은 사용자에게 제공되는 부합하는 결과들 및 관련 정보로 인해 전해질 수 있는 애플리케이션들을 이용하는데 있어 전반적인 소비자 경험을 개선하는데 유용할 수 있다. 또한 사용자에 의한 수동 검색은, 보다 시간 효율적이고 보다 정확한 자동 검색을 지지하여 제거될 수 있다. 부가적으로 중복 엔트리들은 감소되거나 제거될 수 있는데, 이는 이미 해결된 에러들을 핸들링하는데 있어 낭비되는 시간을 감소시킬 수 있다. 이러한 방법에 따라, 애플리케이션 엔지니어들 및/또는 사용자의 커뮤니티들 둘 다가 에러 해결을 위해 요구될 수 있다.
위의 내용은 예시적인 방법들 및 시스템들을 설명하였지만, 하나 이상의 양상들에 따라 다른 및 추가의 실시예들이 이어지는 청구항 및 그 등가물에 의해 결정된 본 발명의 범위로부터 벗어남 없이 창안될 수 있다. 단계들을 나열하는 청구항은 단계들의 임의의 순서를 나타내지 않는다. 상표권들은 그 각각의 소유자의 재산이다.

Claims (15)

  1. 복수의 실행 가능한 모듈들을 갖는 툴(tool)에 대한 기술 지원(technical support)을 제공하는 방법으로서, 각각의 모듈은 스테이지들(stages)을 포함하고, 상기 방법은,
    에러 메시지로부터 에러 코드를 획득하도록 상기 에러 메시지를 판독하는 단계;
    상기 복수의 실행 가능한 모듈들 중 실패된 모듈을 나타내는 제1 리포트 - 상기 제1 리포트는 상기 에러 메시지와 연관됨 - 를 획득하도록 프로젝트 디렉토리(project directory)를 검색(search)하는 단계;
    상기 제1 리포트로부터 상기 실패된 모듈의 스테이지들 중 실패된 스테이지를 식별하는 단계;
    상기 에러 메시지에 대한 케이스 질의(case inquiry) - 상기 케이스 질의는 상기 실패된 스테이지 및 상기 에러 코드를 식별함 - 를 준비하는 단계;
    상기 실패된 스테이지 및 상기 에러 코드와 매칭하는 엔트리(entry)에 대하여 문서 - 상기 문서 내의 각각의 엔트리는 스테이지, 에러 코드 및 상기 에러 코드와 연관된 데이터베이스에 대한 링크들을 특정함 - 를 검색하는 단계;
    엔트리가 상기 실패된 스테이지 및 에러 코드에 매칭하는 경우, 상기 매칭하는 엔트리를 윈도우에 디스플레이하는 단계; 및
    엔트리가 상기 실패된 스테이지 및 에러 코드에 매칭하지 않는 경우, 상기 에러 코드 및 상기 에러가 현재 어드레싱되고(addressed) 있다고 표시하는 정보에 대한 링크를 포함하는 엔트리를 상기 문서에 생성하는 단계
    를 포함하고,
    상기 판독하는 단계, 상기 프로젝트 디렉토리를 검색하는 단계, 상기 실패된 스테이지를 식별하는 단계, 상기 케이스 질의를 준비하는 단계, 상기 문서를 검색하는 단계, 상기 디스플레이하는 단계, 및 상기 생성하는 단계는, 정보 핸들링 시스템에 의해 수행되는 것인, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하는 방법.
  2. 제1항에 있어서,
    상기 케이스 질의에 응답하여 검색(retrieve)되는 문서의 부분 - 상기 부분은 상기 실패된 스테이지와 연관됨 - 을 저장하는 단계; 및
    상기 에러 코드를 이용하여 상기 부분을 검색하는 단계
    를 더 포함하는, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하는 방법.
  3. 제2항에 있어서,
    상기 에러 메시지로부터의 에러의 소스인 것으로서 상기 툴에 의해 프로세싱되는 엘리먼트(element)를 식별하는 단계;
    완료된 모듈을 나타내는 제2 리포트를 오픈(open)하는 단계;
    상기 소스를 이용하여 상기 제2 리포트를 검색하는 단계;
    상기 제2 리포트의 검색으로부터 상기 제2 리포트에서 발견된 소스를 갖는 경고(warning)를 저장하는 단계;
    상기 제2 리포트의 검색으로부터 상기 부분에서 발견된 에러 코드의 매칭하는 엔트리를 저장하는 단계;
    윈도우에서의 디스플레이를 위해 상기 경고 및 상기 매칭하는 엔트리를 결합하는 단계; 및
    상기 경고 및 상기 매칭하는 엔트리를 상기 윈도우에 디스플레이하는 단계
    를 더 포함하는, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하는 방법.
  4. 제3항에 있어서,
    완료된 모듈을 나타내는 제2 리포트를 오픈하는 단계;
    상기 소스를 이용하여 상기 제2 리포트를 검색하는 단계; 및
    상기 제2 리포트의 검색으로부터 각각의 매칭을 저장하는 단계
    를 더 포함하는, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하는 방법.
  5. 제3항에 있어서,
    완료된 모듈을 나타내는 제2 리포트를 오픈하는 단계;
    상기 소스를 이용하여 상기 제2 리포트를 검색하는 단계;
    상기 제2 리포트의 검색으로부터 상기 제2 리포트에서 발견된 상기 소스를 갖는 경고를 저장하는 단계; 및
    엔트리가 상기 실패된 스테이지 및 에러 코드에 매칭하지 않는 경우, 상기 경고를 상기 생성된 엔트리에 부가하는 단계
    를 더 포함하는, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하는 방법.
  6. 제1항에 있어서,
    상기 생성된 엔트리에 대한 타이틀 - 상기 타이틀은 상기 실패된 스테이지와 연관되는 상기 실패한 모듈의 명칭 및 위치를 포함함 - 을 생성하는 단계; 및
    상기 타이틀을 상기 생성된 엔트리에 첨부하는 단계
    를 더 포함하는, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하는 방법.
  7. 제1항에 있어서,
    네트워크를 통해 사용자 포럼 어드레스 및 기술 지원 어드레스 둘 다에 상기 생성된 엔트리를 제공하는 단계를 더 포함하는, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하는 방법.
  8. 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하기 위한 시스템으로서, 각각의 모듈은 스테이지들을 포함하고, 상기 시스템은,
    문서를 온라인으로 호스팅하기 위한 제1 서버; 및
    복수의 데이터베이스들을 호스팅하기 위한 적어도 제2 서버
    를 포함하고,
    상기 문서는 복수의 섹션들 및 상기 복수의 섹션들에 대한 복수의 서브섹션들을 포함하고,
    상기 복수의 서브섹션들은 하나 이상의 에러 레코드와 연관되고, 상기 하나 이상의 에러 레코드는 상기 복수의 서브섹션들 하에서 발생할 수 있는 하나 이상의 에러와 연관되는 하나 이상의 에러 코드와 연관되며,
    상기 제2 서버는 상기 제1 서버에 통신 가능하게 결합되고,
    상기 하나 이상의 에러 레코드는 상기 하나 이상의 에러를 해결(resolve)하기 위한 관련 정보를 가져오기(fetch) 위해 상기 복수의 데이터베이스들 중 적어도 하나에 대한 적어도 하나의 링크를 가지며,
    상기 제1 서버는 클라이언트로부터의 케이스 질의의 수신에 응답하여 상기 문서를 검색하도록 프로그래밍되고, 상기 케이스 질의는 상기 복수의 모듈들 중 하나의 모듈의 실패된 스테이지 및 에러 코드를 식별하고,
    상기 제1 서버는 상기 서브섹션에 매칭하는 케이스 질의에 응답하여 상기 서브섹션들 중 서브섹션의 카피를 생성하도록 프로그래밍되며,
    상기 제1 서버는 상기 클라이언트에 상기 서브섹션의 카피를 송신하도록 프로그래밍되는 것인, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하기 위한 시스템.
  9. 제8항에 있어서,
    상기 제1 서버는 웹케이스에 대한 엔트리를 생성하도록 상기 문서를 업데이트하게 프로그래밍되는 것인, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하기 위한 시스템.
  10. 제9항에 있어서,
    상기 웹케이스는 상기 복수의 섹션들 중의 섹션, 상기 복수의 서브섹션들 중의 서브섹션 및 상기 하나 이상의 에러 코드 중의 에러 코드를 갖는 에러 메시지를 나타내는 것인, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하기 위한 시스템.
  11. 제10항에 있어서,
    상기 웹케이스는,
    상기 복수의 데이터베이스들 중 하나 이상의 데이터베이스 내의 기술 지원 요청에 대한 제1 링크; 및
    상기 복수의 데이터베이스들 중 상기 하나 이상의 데이터베이스 내의 커뮤니티 포럼 포스트(community forum post)에 대한 제2 링크
    를 더 포함하는 것인, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하기 위한 시스템.
  12. 제11항에 있어서,
    상기 웹케이스는 상기 복수의 데이터베이스들 중 상기 하나 이상의 데이터베이스 내의 문서에 대한 제3 링크를 더 포함하는 것인, 복수의 실행 가능한 모듈들을 갖는 툴에 대한 기술 지원을 제공하기 위한 시스템.
  13. 삭제
  14. 삭제
  15. 삭제
KR1020157019511A 2012-12-19 2013-08-13 온-더-플라이 기술 지원 KR101901005B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/719,574 US9092314B2 (en) 2012-12-19 2012-12-19 On-the-fly technical support
US13/719,574 2012-12-19
PCT/US2013/054753 WO2014099046A1 (en) 2012-12-19 2013-08-13 On-the-fly technical support

Publications (2)

Publication Number Publication Date
KR20150100783A KR20150100783A (ko) 2015-09-02
KR101901005B1 true KR101901005B1 (ko) 2018-09-20

Family

ID=49083757

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157019511A KR101901005B1 (ko) 2012-12-19 2013-08-13 온-더-플라이 기술 지원

Country Status (6)

Country Link
US (1) US9092314B2 (ko)
EP (1) EP2936315B1 (ko)
JP (1) JP6091653B2 (ko)
KR (1) KR101901005B1 (ko)
CN (1) CN104871136B (ko)
WO (1) WO2014099046A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10224056B1 (en) 2013-12-17 2019-03-05 Amazon Technologies, Inc. Contingent device actions during loss of network connectivity
US10545915B2 (en) * 2015-02-02 2020-01-28 Quantum Corporation Recursive multi-threaded file system scanner for serializing file system metadata exoskeleton
US10303538B2 (en) 2015-03-16 2019-05-28 Microsoft Technology Licensing, Llc Computing system issue detection and resolution
US10796264B2 (en) 2015-09-08 2020-10-06 International Business Machines Corporation Risk assessment in online collaborative environments
US10176264B2 (en) * 2015-12-01 2019-01-08 Microsoft Technology Licensing, Llc Generating topic pages based on data sources
JP6378282B2 (ja) * 2016-10-19 2018-08-22 ファナック株式会社 修理システム、サーバ、端末装置、修理方法及びプログラム
US10636038B2 (en) * 2016-10-31 2020-04-28 International Business Machines Corporation Generating solution keyword tag clouds based on support forum post analytics
US10649833B1 (en) * 2017-07-13 2020-05-12 EMC IP Holding Company LLC Consensus-based remediation of offerings' problems
CN109285091B (zh) * 2017-07-21 2023-08-18 伊姆西Ip控股有限责任公司 服务咨询系统和方法
US20190122124A1 (en) * 2017-10-23 2019-04-25 Honeywell International Inc. System and method for cognitive troubleshooting assistance
US10649836B2 (en) * 2018-05-14 2020-05-12 Dell Products L.L.P. Detecting an error message and automatically presenting links to relevant solution pages
US11467882B2 (en) * 2018-12-21 2022-10-11 Target Brands, Inc. Methods and systems for rapid deployment of configurable computing resources
US11531970B2 (en) * 2018-12-26 2022-12-20 General Electric Company Imaging modality maintenance care package systems and methods
CN109934123B (zh) * 2019-02-23 2023-05-23 蒂姆维澳(上海)网络技术有限公司 基于ocr技术、互联网及ar技术的故障代码识别系统及方法
US11321161B2 (en) * 2020-02-07 2022-05-03 Bank Of America Corporation System for resolving heterogenous database-level application failures
US20220101115A1 (en) * 2020-09-28 2022-03-31 International Business Machines Corporation Automatically converting error logs having different format types into a standardized and labeled format having relevant natural language information
US11366742B2 (en) * 2020-11-13 2022-06-21 Fujitsu Limited Automated identification of lines of code related to errors field
US11829230B2 (en) * 2021-09-23 2023-11-28 International Business Machines Corporation Globally unique error codes for knowledge document indexing in software systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242286A1 (en) 2003-05-21 2006-10-26 Joshua Hawkins Systems and methods for controlling error reporting and resolution
KR100782854B1 (ko) 2006-08-10 2007-12-06 삼성전자주식회사 원격 사용자 인터페이스를 이용한 콘텐트 관리 방법 및장치
US20120066547A1 (en) 2010-09-13 2012-03-15 International Business Machines Corporation Problem Record Signature Generation, Classification and Search in Problem Determination

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9404078D0 (en) * 1994-03-03 1994-04-20 Int Computers Ltd Design automation method for digital electronic circuits
US6120550A (en) * 1996-10-28 2000-09-19 Altera Corporation Design file templates for implementation of logic designs
US6374261B1 (en) * 1999-04-09 2002-04-16 Avaya Technology Corp. Expert system knowledge-deficiency reduction through automated database updates from semi-structured natural language documents
US7305465B2 (en) * 2000-11-15 2007-12-04 Robert Wing Collecting appliance problem information over network and providing remote technical support to deliver appliance fix information to an end user
JP3942399B2 (ja) * 2001-10-26 2007-07-11 富士通サポートアンドサービス株式会社 ヘルプデスクシステム
US7418618B2 (en) * 2003-01-08 2008-08-26 Transpacific Ip Ltd. Error reporting and correcting method for peripheral
WO2004051520A2 (en) * 2002-11-19 2004-06-17 Prophicy Semiconductor, Inc. System and method for automated electronic device design
US7047448B2 (en) * 2002-11-21 2006-05-16 Bitfone Corporation Software self-repair toolkit for electronic devices
US7757126B2 (en) * 2007-04-20 2010-07-13 Sap Ag System and method for supporting software
JP2010066841A (ja) * 2008-09-09 2010-03-25 Hitachi Ltd ヘルプデスク支援システム
US8365019B2 (en) 2009-06-16 2013-01-29 International Business Machines Corporation System and method for incident management enhanced with problem classification for technical support services
US8161325B2 (en) 2010-05-28 2012-04-17 Bank Of America Corporation Recommendation of relevant information to support problem diagnosis
US20110302098A1 (en) * 2010-06-04 2011-12-08 Salesforce.Com, Inc. Method and system for providing answers to users of a multi-tenant database system
US8261131B2 (en) * 2010-10-15 2012-09-04 Sony Corporation Recovery from HDD failure and technical support through WWAN
US9665656B2 (en) * 2011-08-18 2017-05-30 International Business Machines Corporation Automated service solution delivery

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242286A1 (en) 2003-05-21 2006-10-26 Joshua Hawkins Systems and methods for controlling error reporting and resolution
KR100782854B1 (ko) 2006-08-10 2007-12-06 삼성전자주식회사 원격 사용자 인터페이스를 이용한 콘텐트 관리 방법 및장치
US20120066547A1 (en) 2010-09-13 2012-03-15 International Business Machines Corporation Problem Record Signature Generation, Classification and Search in Problem Determination

Also Published As

Publication number Publication date
JP2016503203A (ja) 2016-02-01
EP2936315B1 (en) 2019-02-06
CN104871136B (zh) 2017-11-07
CN104871136A (zh) 2015-08-26
WO2014099046A1 (en) 2014-06-26
JP6091653B2 (ja) 2017-03-08
EP2936315A1 (en) 2015-10-28
KR20150100783A (ko) 2015-09-02
US20140173350A1 (en) 2014-06-19
US9092314B2 (en) 2015-07-28

Similar Documents

Publication Publication Date Title
KR101901005B1 (ko) 온-더-플라이 기술 지원
KR101872748B1 (ko) 데이터 콜렉션에 대한 변경 관리 방법
US7644382B2 (en) Command-language-based functional engineering change order (ECO) implementation
US11645340B2 (en) Data store interface including application configurable format constraints for use in accessing or visualization of values stored an in-memory cache
CN109952564A (zh) 数据库系统中测试数据的形成与操纵
US20110055777A1 (en) Verification of Soft Error Resilience
US7975247B2 (en) Method and system for organizing data generated by electronic design automation tools
US10990735B2 (en) System and method for generating a cluster-based power architecture user interface
CN110659063A (zh) 软件项目重构方法、装置、计算机装置及存储介质
US20110137922A1 (en) Automatic generation of a query lineage
US11720422B1 (en) Unified container for hardware and software binaries
CN110083617A (zh) 一种ddl语句的处理方法、装置、电子设备和介质
US10726178B1 (en) Functional logic cone signature generation for circuit analysis
US8935200B2 (en) Dynamic database dump
CN114861574A (zh) 一种应用于层次化物理设计的逻辑简化方法
US8612916B1 (en) System and method for import and export of design constraints
US7742909B2 (en) Reconstruction of data from simulation models
US11755430B2 (en) Methods and systems for storing and querying log messages using log message bifurcation
US20240012803A1 (en) Mechanisms for deleting triples of a database store
US20240012802A1 (en) Mechanisms for serializing triples of a database store
US9824170B1 (en) Message filtering for electronic design automation systems
CN117785324A (zh) 低代码多数据库数据源配置方法、装置及服务器
van Blommestein Addressing Safety Critical FPGA Designs
AU2022347183A1 (en) Metadata-driven data ingestion
CN115718755A (zh) 一种可视化界面配置、数据查询的方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right