이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른, 오류 감내 시스템을 보여주는 블록도 이다.
도 1을 참조하면, 오류 감내 시스템(100)은 오류 감내 IP(110), 오류 관리기(120), 및 오류 복구부(130)를 포함할 수 있다. 오류 감내 IP(110)는 오류 감지기(111)를 포함할 수 있다. 오류 복구부(130)는 오류 복구 모듈(131)을 포함할 수 있다.
예로서, 오류 감내 시스템(100)은 오류를 복구하기 위한 기능을 수행하도록 구성되는 반도체 시스템일 수 있다. 오류 감내 시스템(100)은 하나의 전자 장치로 구현될 수 있다. 예로서, 오류 감내 시스템(100)은 스마트폰 및 PDA(Personal Digital Assistant)와 같은 모바일 장치 및 데스크탑(desktop) 컴퓨터, 랩탑(laptop) 컴퓨터, 및 워크스테이션(workstation)과 같은 컴퓨팅 장치 등으로 구현될 수 있다. 이 경우, 오류 감내 IP(110)는 모바일 장치 또는 컴퓨팅 장치의 구성요소로서, 프로세서, 메모리, 스토리지, 통신 장치, 및 버스 등 중 하나일 수 있다.
또는, 오류 감내 시스템(100)은 하나 이상의 전자 장치들로 구현될 수 있다. 예로서, 오류 감내 시스템(100)은 사물 인터넷 시스템을 포함할 수 있다. 이 경우, 오류 관리기(120) 및 오류 복구부(130)는 서버로 구현될 수 있다. 오류 감내 IP(110)는 단말 장치로 구현될 수 있다. 즉, 오류 감내 IP(110)는 반도체 시스템(예컨대, 오류 감내 시스템(100))의 용도, 기능, 및 동작에 따라 요구되는 고유의 또는 주어진 기능 및 동작을 수행할 수 있다.
오류 감지기(111), 오류 관리기(120), 및 오류 복구 모듈(131)은 하나 이상의 하드웨어 장치로 구현될 수 있다. 예로서, 오류 감지기(111), 오류 관리기(120), 및 오류 복구 모듈(131)은 아래에서 설명될 동작들을 수행하기 위해 하드웨어 회로(예컨대, 아날로그 회로 및 논리 회로 등)로 구형될 수 있다. 또는 예로서, 오류 감지기(111), 오류 관리기(120), 및 오류 복구 모듈(131)은 아래에서 설명될 동작들을 수행하기 위해 프로그램 코드로 구현될 수 있고, 범용 프로세서, 워크스테이션 프로세서, 어플리케이션(Application) 프로세서 등 중 하나에 의해 실행될 수 있다. 예로서, 오류 감지기(111), 오류 관리기(120), 및 오류 복구 모듈(131)은 하나 이상의 프로세서 코어들을 포함하는 전용 회로(예컨대, FPGA(Field Programmable Gate Arrays), ASICs(Application Specific Integrated Circuits) 등) 또는 SoC(System on Chip)를 포함할 수 있다.
예로서, 오류 감내 IP(110)는 오류 감내 프로세서, 오류 감내 버스, 및 오류 감내 캐시 중 적어도 하나를 포함할 수 있다(도 10 참조). 오류 감내 IP(110)는 클럭 생성기로부터 생성되는 클럭에 기초하여 동작할 수 있다(도 7 참조).
오류 감내 IP(110) 내에서 오류가 발생하는 경우, 오류 감지기(111)는 오류와 관련된 정보(이하, 오류 정보)를 획득할 수 있다. 오류는 안전 오류(safe fault) 및 심 각한 오류(severe fault)를 포함할 수 있다. 안전 오류는 오류 감내 IP(110)의 동작만으로도 복구될 수 있는 오류를 의미한다. 심각한 오류는 오류 감내 IP(110)의 동작만으로는 복구될 수 없는 오류를 의미한다. 심각한 오류는 오류 복구부(130)에 포함된 오류 복구 모듈(131)의 동작에 따라 복구될 수 있다.
오류 감지기(111)는 오류 감내 IP(110)의 상태 정보를 획득할 수 있다. 상태 정보는 오류 발생 시의 오류 감내 IP(110)에 의해 수행된 동작과 관련된 정보를 의미한다. 도 5를 참조하여, 상태 정보가 좀 더 구체적으로 설명될 것이다. 오류 발생 시 오류 감지기(111)는 상태 정보를 전달하기 위한 신호(SF)를 생성할 수 있다.
오류 감지기(111)는 오류 발생 시 오류 감내 IP(110)의 오류 발생 정보를 획득할 수 있다. 오류 발생 정보는 오류 감내 IP(110)에서 발생한 오류와 관련된 정보를 의미한다. 예로서, 오류 발생 정보는 오류 감내 IP(110)에서 발생한 오류의 종류가 안전 오류 인지 또는 심각한 오류인지 여부와 관련될 수 있다. 오류 감지기(111)는 오류 발생 정보를 전달하기 위한 신호(SF)를 생성할 수 있다.
오류 정보는 상태 정보 및 오류 발생 정보를 포함할 수 있다. 오류 감지기(111)는 상태 정보 및 오류 발생 정보의 데이터를 나타내는 신호(SF)를 오류 관리기(120)로 출력할 수 있다.
오류 관리기(120)는 오류 감내 IP(110)의 오류 감지기(111)로부터 신호(SF)를 수신할 수 있다. 오류 관리기(120)는 신호(SF)로부터 오류 감내 IP(110)의 상태 정보 및 오류 발생 정보를 획득할 수 있다. 오류 관리기(120)는 오류 발생 정보에 기초하여 오류 감내 IP(110)에서 발생한 오류의 수(안전 오류의 수 및 심각한 오류의 수)를 카운팅 할 수 있다. 예로서, 오류 관리기(120)는 오류 감내 IP(110)에서 발생한 오류의 수를 카운팅하기 위한 카운터를 포함할 수 있다.
오류 정보는 오류의 카운팅된 수를 포함할 수 있다. 오류 관리기(120)는 오류 정보(상태 정보, 오류 발생 정보, 및 오류의 카운팅된 수)를 나타내는 데이터를 저장할 수 있다. 예로서, 오류 관리기는 데이터를 저장하기 위한 레지스터를 포함할 수 있다(도 3 참조).
오류 관리기(120)는 IP 오류를 복구하기 위한 복구 방법을 결정할 수 있다. 복구 방법은 오류 감내 IP(110)의 오류를 복구하기 위해, 오류 감내 IP들 및/또는 오류 복구부(130)를 제어하기 위한 방법을 의미한다. 오류 관리기(120)는 복구 방법을 결정하기 위해, 특정 오류 정보와 관련되는 하나 이상의 복구 방법들을 제공하는 정보(이하, 복구 정보)를 사용할 수 있다. 오류 관리기(120)는 복구 방법을 결정하기 위해 복구 정보를 저장할 수 있다.
예로서, 오류 관리기(120)는 하나 이상의 복구 방법들과 관련된 데이터를 포함하는 룩업 테이블(look-uptable)을 저장할 수 있다. 예로서, 룩업 테이블의 데이터는, 외부 장치(예컨대, 사용자 인터페이스, 메모리, 및 프로세서)로부터 입력될 수 있다. 도 6 및 도 7을 참조하여, 복구 방법이 좀 더 구체적으로 설명될 것이다.
오류 관리기(120)는 오류 정보(오류 발생 정보, 상태 정보, 및 오류의 카운팅된 수), 및 룩업 테이블에 기초하여 복구 방법을 결정할 수 있다. 또는, 오류 관리기(120)는 소프트웨어를 통해 사용자로부터 입력되는 명령에 따라 복구 방법을 결정할 수 있다(도 3 참조). 오류 관리기(120)는 결정된 복구 방법에 관한 정보를 전달하기 위한 신호(RV)를 생성할 수 있다. 오류 관리기(120)는 신호(RV)를 오류 복구부(130)의 오류 복구 모듈(131)로 출력할 수 있다. 도 3을 참조하여, 오류 관리기(120)가 좀 더 구체적으로 설명될 것이다.
오류 복구 모듈(131)는 오류 관리기(120)로부터 신호(RV)를 수신할 수 있다. 오류 복구 모듈(131)은 신호(RV)에 기초하여 오류 감내 IP(110)의 오류를 복구 하기 위해, 오류 감내 시스템(100)의 동작을 제어할 수 있다. 예로서, 오류 복구 모듈(131)은 오류 감내 IP(110)의 동작을 제어할 수 있다. 또는, 오류 복구 모듈(131)은 클럭 생성기 및 리셋(reset) 모듈을 제어할 수 있다(도 7 참조).
도 2는 본 발명의 실시 예에 따른, 오류 감내 시스템을 보여주는 블록도 이다. 예로서, 도 1의 오류 감내 시스템(100)은 도 2의 오류 감내 시스템(100a)으로 구현될 수 있다.
도 2를 참조하면, 오류 감내 시스템(100a)은 다수의 오류 감내 IP들(110_1 내지 110_3), 오류 관리기(120), 및 오류 복구부(130)을 포함할 수 있다. 오류 감내 IP들(110_1 내지 110_3)은 오류 감지기들(111_1 내지 111_3)을 각각 포함할 수 있다. 오류 복구부(130)는 오류 복구 모듈(131)을 포함할 수 있다. 오류 감내 IP들(110_1 내지 110_3)들의 구성들 및 동작들은 도 1의 오류 감내 IP(110)의 구성 및 동작과 유사하므로, 이하 설명은 생략된다. 도 2는 3개 이상의 오류 감내 IP들(110_1 내지 110_3)을 포함하는 오류 감내 시스템(100a)을 도시하나, 본 발명은 하나 이상의 오류 감내 IP들을 포함하는 오류 감내 시스템의 모든 실시 예들을 포함할 수 있다.
예로서, 도 1을 참조하여 설명된 바와 같이, 오류 감내 IP들(110_1 내지 110_3) 각각은 컴퓨팅 장치 또는 모바일 장치를 구성하기 위한 구성요소일 수 있다. 오류 감지기들(111_1 내지 111_3)은 오류 감내 IP들(110_1 내지 110_3)에서 발생한 오류와 관련된 정보를 전달하기 위해, 신호들(SF1 내지 SF3)을 각각 생성할 수 있다. 신호들(SF1 내지 SF3) 각각은 도 1의 신호(SF)와 동일 또는 유사하게 구성되고 이용될 수 있다. 오류 감지기들(111_1 내지 111_3)은 신호들(SF1 내지 SF3)을 오류 관리기(120)로 각각 출력할 수 있다.
오류 관리기(120)는 신호들(SF1 내지 SF3)에 기초하여, 오류 감내 IP들(110_1 내지 110_3)에서 발생하는 오류에 대한 오류 정보를 획득할 수 있다. 예로서, 오류 관리기(120)는 오류 감내 IP들(110_1 내지 110_3) 각각의 상태 정보 및 오류 발생 정보를 획득할 수 있다.
오류 관리기(120)는 오류 감내 시스템(100a) 내의 모든 오류 감내 IP들(110_1 내지 110_3)의 오류 정보를 획득할 수 있다. 따라서, 오류 관리기(120)는, 오류 감내 IP들(110_1 내지 110_3) 각각의 동작뿐만 아니라 오류 감내 IP들(110_1 내지 110_3) 사이의 통신을 수반하는 동작을 고려하여, 복구 방법들을 결정할 수 있다. 예로서, 오류 관리기(120)는 오류 감내 IP들(110_1 내지 110_3) 사이에서 교환되는 신호들에 기초하여 복구 방법들을 결정할 수 있다.
예로서, 오류 감내 시스템(100a)의 설계자는, 오류 감내 IP들(110_1 내지 110_3) 사이의 관계에 따라 오류 감내 IP들(110_1 내지 110_3) 사이에서 전달되는 데이터를 고려하여, 오류 감내 IP들(110_1 내지 110_3) 사이의 통신을 수반하는 동작들을 포함하는 복구 방법들을 결정할 수 있다. 오류 관리기(120)는, 설계자 또는 외부 장치에 의해 결정된 복구 방법들의 데이터를 포함하는 룩업 테이블을 저장할 수 있다. 오류 관리기(120)는 신호들(SF1 내지 SF3)로부터 획득되는 오류 정보(상태 정보, 오류 발생 정보, 및 오류의 수) 및 저장된 룩업 테이블에 기초하여 복구 방법을 결정할 수 있다. 또는, 오류 관리기(120)는 소프트웨어를 통해 사용자로부터 입력되는 명령에 따라 복구 방법을 결정할 수 있다(도 3 참조).
오류 관리기(120)는 복구 방법에 관한 정보를 전달하기 위한 신호(RV)를 생성할 수 있다. 오류 관리기(120)는 신호(RV)를 오류 복구 모듈(131)로 출력할 수 있다.
도 3은 도 1 또는 도 2의 오류 관리기의 예시적인 구성을 보여주는 블록도 이다.
도 3을 참조하면, 오류 관리기(120)는 레지스터(121) 및 오류 제어기(122)를 포함할 수 있다. 레지스터(121)는 도 1의 오류 감지기(111)로부터 신호(SF)를 수신할 수 있다. 레지스터(121)는 신호(SF)에 기초하여 오류 감내 IP(110)의 상태 정보 및 오류 발생 정보를 획득할 수 있다. 레지스터(121)는 상태 정보 및 오류 발생 정보를 나타내는 데이터를 저장할 수 있다.
도 3에는 도시되지 않았으나, 오류 관리기(120)는 오류의 수를 카운팅 하기 위한 카운터를 포함할 수 있다. 카운터는 오류 발생 정보에 기초하여 오류 감내 IP(110)에서 발생한 오류의 수를 카운팅 할 수 있다. 카운터는 오류의 카운팅된 수를 전달하기 위한 신호를 레지스터(121)로 출력할 수 있다.
레지스터(121)는 카운터로부터 수신되는 신호에 기초하여 오류 감내 IP(110)에서 발생한 오류의 수를 획득할 수 있다. 예로서, 레지스터(121)는 오류 감내 IP(110)에서 발생한 안전 오류의 수를 획득할 수 있다. 또는 레지스터(121)는 오류 감내 IP(110)에서 발생한 심각한 오류의 수를 획득할 수 있다. 레지스터(121)는 오류의 수를 나타내는 데이터를 저장할 수 있다.
레지스터(121)는 오류 감내 IP(110)의 오류 정보(상태 정보, 오류 발생 정보, 및 오류의 카운팅된 수)를 전달하기 위한 신호(RS)를 생성할 수 있다. 레지스터(121)는 신호(RS)를 오류 제어기(122)로 출력할 수 있다. 오류 제어기(122)는 레지스터(121)로부터 신호(RS)를 수신할 수 있다. 오류 제어기(122)는 신호(RS)로부터 오류 감내 IP(110)의 오류 정보를 획득할 수 있다.
오류 제어기(122)는 복구 방법의 데이터를 포함하는 룩업 테이블을 저장할 수 있다. 도 5를 참조하여, 복구 방법의 데이터를 포함하는 예시적인 룩업 테이블이 구체적으로 설명될 것이다. 오류 제어기(122)는 오류 발생 정보, 오류의 카운팅된 수, 및 룩업 테이블에 기초하여, 오류 감내 IP(110)의 오류를 복구하기 위한 새로운 복구 방법을 결정할 수 있다.
결정된 복구 방법이 오류 감내 IP(110)를 리셋 시키는 동작을 포함하는 경우, 오류 제어기(122)는 상태 정보에 기초하여, 리셋된 오류 감내 IP(110)에 대한 복구 방법을 다시 결정할 수 있다. 리셋은 오류 감내 IP(110)의 동작 상태 및/또는 데이터를 초기화 시키기 위한 동작을 의미한다. 예로서, 리셋은 오류 감내 IP(110)로의 전원 공급을 제어하여(예컨대, 전원 공급을 일시적으로 차단하여), 오류 감내 IP(110)의 설정 값이 삭제되고, 오류 감내 IP(110)가 초기의 설정 값에 의해 동작하도록 제어하는 동작을 포함할 수 있다. 예로서, 리셋은 오류 감내 IP(110)에 포함된 저장 장치를 포맷하기 위한 동작을 포함할 수 있다.
이후, 오류 제어기(122)는 리셋된 오류 감내 IP(110)로 신호를 출력함으로써새로운 복구 방법에 따라 리셋된 오류 감내 IP(110)를 제어할 수 있다. 예로서, 오류 제어기(122)는 리셋된 오류 감내 IP(110)로 신호를 출력함으로써, 리셋된 오류 감내 IP(110)가 다른 구성요소들로부터 데이터를 입력 받지 않도록 리셋된 오류 감내 IP(110)를 제어할 수 있다.
오류 감내 시스템(100) 외부의 사용자(10)는 소프트웨어를 통해 레지스터(121)에 저장된 데이터에 접근할 수 있다. 예로서, 사용자(10)는 오류 관리기(120)에 접근하기 위한 소프트웨어인 오류 관리 SW(20)를 통해, 레지스터(121)에 저장된 데이터에 접근할 수 있다. 예로서, 사용자(10)는 사용자 인터페이스 장치(미도시)에 의해, 오류 관리 SW(20)를 통해 접근된 데이터와 관련된 정보를 제공받을 수 있다. 예로서, 사용자(10)는 사용자 인터페이스 장치에 의해, 오류 감내 장치(110)의 오류 정보를 제공받을 수 있다.
사용자(10)는 오류 관리 SW(20)를 통해 오류 제어기(122)의 동작을 제어할 수 있다. 예로서, 사용자(10)는 오류 관리 SW(20)를 통해 제공받은 정보에 기초하여, 오류 감내 IP(110)에 대한 복구 방법을 결정할 수 있다. 사용자(10)는 오류 관리 SW(20)를 통해, 결정된 복구 방법에 따라 오류 제어기를 제어하기 위한 명령을 입력할 수 있다. 오류 제어기(122)는 오류 관리 SW(20)를 통해 입력되는 사용자(10)의 명령에 따라 복구 방법을 결정할 수 있다.
오류 제어기(122)는 도 3을 참조하여 설명된 방법에 따라 결정된 복구 방법(신호(SF)에 기초하여 결정된 복구 방법 및/또는 사용자(10)의 명령에 따라 결정된 복구 방법)에 관한 정보를 전달하기 위한 신호(RV)를 생성할 수 있다. 오류 제어기(122)는 신호(RV)를 오류 복구부(130)의 오류 복구 모듈(131)로 출력할 수 있다.
도 3을 참조하여, 오류 관리기(120)에 의해 하나의 오류 감내 IP(110)에 대한 복구 방법을 결정하기 위한 동작이 설명되었으나, 본 발명은 오류 관리기(120)에 의해 하나 이상의 오류 감내 IP들에 대한 복구 방법들을 결정하기 위한 실시 예들을 모두 포함할 수 있다. 예로서, 오류 관리기(120)는, 도 3을 참조하여 설명된 방법과 유사한 방법에 따라 도 2의 오류 감내 IP들(110_1 내지 110_3)에 대한 복구 방법들을 결정할 수 있다.
도 4는 도 3의 레지스터에 저장된 예시적인 정보를 보여주는 블록도 이다.
도 3을 참조하여 설명된 바와 같이, 레지스터(121)는 오류 감지기(111)로부터 수신되는 신호(SF)에 기초하여, 상태 정보(INF1) 및 오류 발생 정보(INF2)를 획득할 수 있다. 또한, 레지스터(121)는 카운터로부터 수신되는 신호에 기초하여, 안전 오류의 수(INF3) 및 심각한 오류의 수(INF4)를 획득할 수 있다.
레지스터(121)는 상태 정보(INF1)를 나타내는 데이터, 오류 발생 정보(INF2)를 나타내는 데이터, 안전 오류의 수(INF3)를 나타내는 데이터, 및 심각한 오류의 수(INF4)를 나타내는 데이터를 저장할 수 있다.
상태 정보(INF1), 오류 발생 정보(INF2), 안전 오류의 수(INF3), 및 심각한 오류의 수(INF4) 각각은 하나 이상의 비트들의 데이터로 표현될 수 있다. 상태 정보(INF1)를 나타내는 데이터, 오류 발생 정보(INF2)를 나타내는 데이터, 안전 오류의 수(INF3)를 나타내는 데이터, 및 심각한 오류의 수(INF4)를 나타내는 데이터 각각은 레지스터(121)의 특정 어드레스들에 대응하는 특정 위치들에 저장될 수 있다. 이하 도 5를 참조하여, 상태 정보(INF1)가 좀 더 구체적으로 설명된다.
도 5는 도 4의 상태 정보를 나타내는 예시적인 데이터를 보여주는 표 이다.
도 5를 참조하면, 상태 정보(INF1)를 나타내는 데이터는 어드레스 1 내지 어드레스 3에 대응하는 위치들에 저장될 수 있다. 상태 정보(INF1)는, 오류 발생 시 오류 감내 IP(110)에 의해 수행된 동작과 관련된 정보(INF1_1)를 포함할 수 있다. 예로서, 정보(INF1_1)는, 특정 모듈로부터 수신되는 입력 데이터에 기초한 오류 감내 IP(110)의 연산 동작과 관련될 수 있다. 상태 정보(INF1)는, 오류 발생 시 오류 감내 IP(110)로 입력된 데이터와 관련된 정보(INF1_2)를 포함할 수 있다. 상태 정보(INF1)는, 오류 발생 시 오류 감내 IP(110)로부터 출력된 데이터와 관련된 정보(INF1_3)를 포함할 수 있다.
레지스터(121)는 어드레스 1에 대응하는 위치에 정보(INF1_1)를 나타내는 데이터를 저장할 수 있다. 레지스터(121)는 어드레스 2에 대응하는 위치에 정보(INF1_2)를 나타내는 데이터를 저장할 수 있다. 레지스터(121)는 어드레스 3에 대응하는 위치에 정보(INF1_3)를 나타내는 데이터를 저장할 수 있다.
도 3을 참조하여 설명된 바와 같이, 레지스터(121)는 상태 정보(INF1)를 전달하기 위한 신호(RS)를 오류 제어기(122)로 출력할 수 있다. 신호(RS)는 특정 어드레스 및 특정 어드레스에 저장된 데이터를 나타낼 수 있다. 신호(RS)는 어드레스 1 및 정보(INF1_1)에 대응하는 데이터를 나타낼 수 있다. 신호(RS)는 어드레스 2 및 정보(INF1_2)에 대응하는 데이터를 나타낼 수 있다. 신호(RS)는 어드레스 3 및 정보(INF1_3)에 대응하는 데이터를 나타낼 수 있다. 예로서, 어드레스가 n 비트의 데이터로 표현되고, 상태 정보(INF1)가 m 비트의 데이터로 표현된다면, 신호(RS)는 m+n 비트의 데이터로 표현될 수 있다(단, m 및 n은 자연수).
오류 발생 정보(INF2), 안전 오류의 수(INF3), 및 심각한 오류의 수(INF4)는, 상태 정보(INF1)가 레지스터(121)에 저장되는 방법과 유사한 방법에 따라 레지스터(121)에 저장될 수 있는바 이하 설명은 생략된다.
도 6은 예시적인 복구 정보와 관련하여 도 3의 오류 제어기에 저장되는 데이터를 보여주는 표 이다.
도 3을 참조하여 설명된 바와 같이, 오류 제어기(122)는 복구 방법의 데이터를 나타내는 룩업 테이블을 저장할 수 있다. 좀 더 구체적으로, 오류 제어기(122)는 오류 발생 정보에 각각 매칭된 복구 방법들과 관련된 데이터를 룩업 테이블의 형태로 저장할 수 있다.
이하, 도 2 및 도 6을 참조하여, 2개의 오류 감내 IP들(110_1 및 110_2)에서 발생한 오류들을 복구하기 위한 예시적인 복구 방법들이 설명된다. 그러나, 본 발명은 이에 한정되지 않고, 하나 이상의 오류 감내 IP들에서 발생한 오류들을 복구하기 위한 복구 방법들의 모든 실시 예들을 포함하는 것으로 이해될 것이다.
도 6의 예에서, 오류 제어기(122)는 4 비트로 표현되는 오류 발생 정보의 데이터 및 2 비트로 표현되는 복구 방법의 데이터를 저장할 수 있다.
오류 발생 정보의 4 비트 데이터는, 최상위 비트부터 순서대로 오류 감내 IP(110_1)의 안전 오류, 오류 감내 IP(110_1)의 심각한 오류, 오류 감내 IP(110_2)의 안전 오류, 및 오류 감내 IP(110_2)의 심각한 오류와 관련될 수 있다. 데이터 값 “0”은 오류가 발생하지 않았음을 나타낼 수 있다. 데이터 값 “1”은 오류가 발생했음을 나타낼 수 있다. 예로서, 데이터 값 “1001”은, 오류 감내 IP(110_1)에서 안전 오류가 발생하고, 오류 감내 IP(110_2)에서 심각한 오류가 발생했음을 나타낼 수 있다.
복구 방법의 2 비트 데이터는 4개의 복구 방법들을 나타낼 수 있다. 예로서, 데이터 값 “00”은, 오류 감내 IP(110_1)로 제공되는 클럭의 주파수를 감소시키는 동작을 포함하는 복구 방법을 나타낼 수 있다. 예로서, 데이터 값 “01”은, 오류 감내 IP(110_1)를 파워 다운시키기 위한 동작을 포함하는 복구 방법을 나타낼 수 있다. 예로서, 데이터 값 “10”은 오류 감내 IP들(110_1 및 110_2) 사이의 통신을 수반하는 복구 방법을 나타낼 수 있다. 좀 더 구체적으로, 데이터 값 “10”은 오류 감내 IP(110_2)가 오류 감내 IP(110_1)로 특정 데이터를 출력하는 동작을 포함하는 복구 방법을 나타낼 수 있다. 예로서, 데이터 값 “11”은 오류 감내 IP(110_1) 및 오류 감내 IP(110_2)를 리셋 시키기 위한 동작을 포함하는 복구 방법을 나타낼 수 있다.
다만, 본 발명의 실시 예에 따른 복구 방법들은 도 6을 참조하여 설명된 예시들로 한정되지 않고, 다양하게 변경 또는 추가될 수 있음이 이해될 것이다. 도 7을 참조하여, 복구 방법들이 좀 더 구체적으로 설명될 것이다.
특정 오류 감내 IP의 오류를 복구하는 데 있어서 오류 감내 IP들 사이의 통신을 수반하는 동작들이 고려될 경우, 오류 제어기(122)는 더 효율적인 복구 방법을 결정할 수 있다. 예로서, 오류 감내 IP(110_1)에서 발생한 오류를 복구하는 데 있어, 오류 감내 IP들(110_1 및 110_2) 사이의 통신을 수반하는 동작들이 고려되는 경우, 더 다양한 복구 방법들이 복구 정보(예컨대, 룩업 테이블)에 의해 제공될 수 있다.
예로서, 오류 감내 IP(110_1)에서 발생한 오류를 복구하기 위해서 오류 감내 IP(110_1)의 동작만이 고려되는 경우, 룩업 테이블에 의해 오류 감내 IP(110_1)를 리셋 시키는 동작을 포함하는 복구 방법만이 제공될 수 있다. 그러나, 오류 감내 IP들(110_1 및 110_2) 사이의 통신을 수반하는 동작이 고려되는 경우, 오류 감내 IP들(110_1 및 110_2) 사이에서 데이터를 교환하기 위한 동작을 포함하는 복구 방법들이 더 제공될 수 있다. 복구 정보에 의해 더 다양한 복구 방법들이 제공되는 경우, 오류 제어기(122)는 더 효율적인 복구 방법을 결정할 수 있다.
도 6을 참조하여, 룩업 테이블의 형태로 구현되는 복구 정보가 설명되었으나, 본 발명의 복구 정보는 도 6의 예시에 한정되지 않으며 다양한 다른 형태들로 구현될 수 있다. 예로서, 복구 정보는 특정 오류 발생 정보에 대응하여 특정 복구 방법을 제공할 수 있는 모든 형태들로 구현될 수 있다.
도 6을 참조하여 오류 발생 정보에 기초하여 결정되는 복구 방법들이 설명되었으나, 도 3을 참조하여 설명된 바와 같이, 본 발명은 상태 정보, 오류 발생 정보, 오류의 카운팅된 수, 및 사용자의 명령 중 적어도 하나에 기초하여 결정되는 복구 방법들의 모든 실시 예들을 포함할 수 있다.
예로서, 복구 방법은 심각한 오류의 카운팅된 수가 기준 값 이상일 경우(즉, 오류의 카운팅된 수에 기초하여), 특정 오류 감내 IP를 파워 다운(power down)시키는 동작을 포함할 수 있다. 파워 다운은 오류 감내 IP의 동작을 중단 시키기 위한 동작을 의미한다. 예로서, 파워 다운은 오류 감내 IP의 전원을 턴 오프(turn-off)시키는 동작을 포함할 수 있다. 또는, 파워 다운은 오류 감내 IP로 입력되는 모든 신호를 차단시키는 동작을 포함할 수 있다.
도 7은 도 1 또는 도 2의 오류 복구부의 예시적인 구성을 보여주는 블록도 이다.
도 7을 참조하면, 오류 복구부(130)는 오류 복구 모듈(131) 및 리셋 모듈(132)을 포함할 수 있다. 도 1 및 도 2를 참조하여 설명된 바와 같이, 오류 감내 시스템(100 또는 100a)의 오류 감내 IP들(110, 및 110_1 내지 110_3)은 클럭에 기초하여 동작할 수 있다. 도 7의 예에서, 클럭 생성기(140)는 오류 감내 IP(110_1)로 클럭(CLK1)을 출력할 수 있다. 오류 감내 IP(110_1)는 클럭(CLK1)에 기초하여 동작할 수 있다. 클럭 생성기(140)는 오류 감내 IP(110_2)로 클럭(CLK2)을 출력할 수 있다. 오류 감내 IP(110_2)는 클럭(CLK2)에 기초하여 동작할 수 있다.
오류 복구 모듈(131)은 오류 제어기(122)로부터 신호(RV)를 수신할 수 있다. 오류 복구 모듈(131)은 신호(RV)에 기초하여 복구 방법을 획득할 수 있다. 오류 복구 모듈(131)은 복구 방법에 따라, 오류 복구 시스템(100 또는 100a)의 동작들을 제어할 수 있다. 예로서, 오류 복구 모듈(131)은 오류가 발생한 오류 감내 IP와 관련되는 동작들을 제어할 수 있다. 예로서, 오류 복구 모듈(131)은 리셋 모듈(132) 및 클럭 생성기(140)를 제어함으로써, 오류 감내 IP들(110_1 및 110_2)과 관련된 동작을 제어할 수 있다. 또는, 오류 복구 모듈(131)은 오류 감내 IP들(110_1 및 110_2)의 동작을 직접 제어할 수 있다. 오류 감내 IP와 관련되는 동작은 오류 감내 IP들(110_1 및 110_2) 사이의 통신을 수반하는 동작을 포함할 수 있다.
이하, 도 7을 참조하여, 오류 복구 모듈(131)에 의해 제어되는 2개의 오류 감내 IP들(110_1 및 110_2)에 대한 실시 예가 설명될 것이다. 그러나, 본 발명은 이에 한정되지 않고, 오류 복구 모듈(131)에 의해 제어되는 하나 이상의 오류 감내 IP들에 대한 모든 실시 예들을 포함할 수 있다.
오류 복구 모듈(131)은 리셋 모듈(132)을 제어하기 위한 신호(C1)를 생성할 수 있다. 오류 복구 모듈(131)은 클럭 생성기(140)를 제어하기 위한 신호(C2)를 생성할 수 있다. 오류 복구 모듈(131)은 오류 감내 IP(110_1)를 제어하기 위한 신호(C3)를 생성할 수 있다. 오류 복구 모듈(131)은 오류 감내 IP(110_2)를 제어하기 위한 신호(C4)를 생성할 수 있다. 오류 복구 모듈(131)은 신호들(C1 내지 C4)을 리셋 모듈(132), 클럭 생성기(140), 오류 감내 IP들(110_1 및 110_2)로 각각 출력할 수 있다.
리셋 모듈(132)은 오류 복구 모듈(131)로부터 신호(C1)를 수신할 수 있다. 리셋 모듈(132)은 신호(C1)에 응답하여, 오류 감내 IP들(110_1 및 110_2) 중 적어도 하나를 리셋 시킬 수 있다. 이하, 도 6 및 도 7을 참조하여, 오류 복구부(130)에 의해 수행되는 예시적인 복구 제어 동작이 설명된다.
오류 감내 IP(110_1) 및 오류 감내 IP(110_2)에서 오류가 발생한 경우, 오류 복구 모듈(131)은 신호(RV)에 기초하여 복구 방법을 나타내는 데이터를 획득할 수 있다. 오류 복구 모듈(131)은 획득된 데이터의 데이터 값에 응답하여 복구 동작을 수행할 수 있다.
오류 복구 모듈(131)은 신호(RV)의 데이터 값 “00”에 응답하여, 클럭 생성기(140)를 제어하기 위한 신호(C2)를 출력할 수 있다. 오류 복구 모듈(131)은 신호(C2)에 의해 클럭 생성기(140)를 제어함으로써, 클럭(CLK1)의 주파수를 조정할 수 있다.
예로서, 오류 감내 IP(110_1)에서 발생한 오류는 기준 주파수와 상이한 주파수의 클럭(CLK1)에 기인할 수 있다. 클럭(CLK1)의 주파수가 기준 주파수와 상이할 경우, 클럭(CLK1)은 오류 감내 IP(110_1)로 수신되는 다른 신호들에 대해 정렬되지 못할 수 있다. 따라서, 오류 감내 IP(110_1)는 정상적으로 동작하지 못할 수 있다. 신호(C2)에 의해 클럭(CLK1)의 주파수가 조정(증가 또는 감소)됨에 따라, 클럭(CLK1)은 기준 주파수를 가질 수 있다.
또는, 오류 감내 IP(110_1)에서 발생한 오류는 과도하게 높은 주파수의 클럭(CLK1)에 기인할 수 있다. 클럭 생성기(140)는 신호(C2)에 응답하여, 클럭(CLK1)의 주파수를 적절히 낮출 수 있다. 조정된 주파수의 클럭(CLK1)에 기초하여, 오류 감내 IP(110_1)는 정상적으로 동작할 수 있다.
오류 복구 모듈(131)은 신호(RV)의 데이터 값 “01”에 응답하여, 오류 감내 IP(110_1)를 제어하기 위한 신호(C3)를 출력할 수 있다. 오류 복구 모듈(131)은 신호(C3)에 의해 오류 감내 IP(110_1)를 제어함으로써, 오류 감내 IP(110_1)를 파워 다운 시킬 수 있다.
예로서, 오류 감내 IP(110_1)에서 발생한 오류는 오류 감내 시스템(100 또는 100a)의 동작에 의해 복구되지 못할 수 있다. 오류 감내 IP(110_1)가 동작하지 않더라도, 오류 감내 시스템(100 또는 100a)은 정상적으로 동작할 수 있다. 신호(C3)에 의해 오류 감내 IP(110_1)가 파워 다운 됨에 따라, 오류 감내 IP(110_1)의 오류는 더 이상 발생하지 않을 수 있다.
오류 복구 모듈(131)은 신호(RV)의 데이터 값 “10”에 응답하여, 오류 감내 IP(110_2)를 제어하기 위한 신호(C4)를 출력할 수 있다. 오류 복구 모듈(131)은 신호(C4)에 의해, 오류 감내 IP(110_2)가 오류 감내 IP(110_1)로 특정 데이터를 출력하도록 오류 감내 IP(110_2)를 제어할 수 있다. 따라서, 오류 감내 IP(110_2)와 오류 감내 IP(110_1) 사이에서 통신을 수반하는 동작이 수행될 수 있다.
예로서, 오류 감내 IP(110_1)가 신호(C4)에 응답하여 신호(RV)의 데이터 값 “10”에 대응하는 복구 방법에 따른 동작을 수행할 수 있다. 오류 감내 IP(110_2)는 오류 감내 IP(110_1)의 동작에 대응하여, 오류 감내 IP(110_2)와 오류 감내 IP(110_1) 사이의 통신을 수반하는 동작을 수행할 수 있다. 예로서, 오류 감내 IP(110_1)는 오류 감내 IP(110_2)로 신호를 출력할 수 있다. 오류 감내 IP(110_2)는 오류 감내 IP(110_1)의 동작에 대응하여, 오류 감내 IP(110_1)로 신호를 출력할 수 있다.
예로서, 오류 감내 IP(110_1)의 오류는 최적화되지 않은 설정 값에 기인할 수 있다. 신호(C4)에 의해 오류 감내 IP(110_2)와 오류 감내 IP(110_1) 사이에서 통신이 수행됨에 따라, 오류 감내 IP(110_1)에서 발생한 오류와 관련된 데이터가 오류 감내 IP(110_2)로 전달될 수 있다. 오류 감내 IP(110_2)는 오류 감내 IP(110_1)로부터 전달된 데이터에 기초하여, 오류를 복구하기 위한 새로운 설정 값을 오류 감내 IP(110_1)로 전달할 수 있다. 전달된 새로운 설정 값에 기초하여 오류 감내 IP(110_1)가 동작함에 따라, 오류 감내 IP(110_1)에서 오류가 더 이상 발생하지 않을 수 있다.
오류 복구 모듈(131)은 신호(RV)의 데이터 값 “11”에 응답하여, 리셋 모듈(132)을 제어하기 위한 신호(C1)를 출력할 수 있다. 오류 복구 모듈(131)은 신호(C1)에 의해 리셋 모듈(132)을 제어함으로써, 오류 감내 IP(110_1) 및 오류 감내 IP(110_2)를 리셋 시킬 수 있다.
예로서, 오류 감내 IP(110_1)에 둘 이상의 명령들이 저장될 수 있다. 둘 이상의 명령들에 따른 오류 감내 IP(110_1)의 동작들은 서로 충돌할 수 있다. 신호(C1)에 의해 오류 감내 IP(110_1)가 리셋됨에 따라, 오류 감내 IP(110_1)에 저장된 명령들이 삭제될 수 있다. 따라서, 오류 감내 IP(110_1)에서 오류가 더 이상 발생하지 않을 수 있다.
신호(C1)에 의해 오류 감내 IP(110_1)가 리셋된 이후, 오류 복구 모듈(131)은 오류 제어기(122)로부터 수신되는 신호(즉, 오류 감내 IP(110_1) 및 오류 감내 IP(110_2)에 대한 상태 정보에 기초하여 결정된 복구 방법과 관련된 신호(RV))에 응답하여, 신호들(C3 및 C4) 중 적어도 하나를 생성할 수 있다. 오류 복구 모듈(131)은 신호들(C3 및 C4) 중 적어도 하나에 의해, 오류 감내 IP(110_1)의 동작을 제어할 수 있다.
예로서, 오류 복구 모듈(131)은, 오류 감내 IP(110_1)에서 다시 발생할 가능성이 높은 오류들이 발생하는 경우, 오류 감내 IP(110_1)를 리셋 시키기 위한 복구 방법(신호(RV)의 데이터 값 “11”에 대응하는 복구 방법)을 수행할 수 있다. 오류 복구 모듈(131)은, 오류의 재 발생을 방지하기 위해, 오류 감내 IP들(110_1)의 동작을 제어할 수 있다.
예로서, 도 5를 참조하면, 오류 제어기(122)는 정보(INF1_1)에 기초하여, 오류의 발생과 관련되는 오류 감내 IP(110_1)의 특정 동작에 관한 정보를 획득할 수 있다. 예로서, 오류가 발생한 때에 오류 감내 IP(110_1)에서 수행된 특정 동작에 관한 정보를 획득할 수 있다. 오류 감내 IP(110_1)에서 발생한 오류는 그 특정 동작에 기인할 수 있다. 복구 모듈(131)은 신호(C3)를 출력하여, 특정 동작이 수행되지 않도록 오류 감내 IP(110_1)를 제어할 수 있다. 따라서, 오류 감내 IP(110_1)에서 오류가 더 이상 발생하지 않을 수 있다.
도 8은 도 1 또는 도 2의 오류 감내 시스템의 예시적인 동작을 보여주는 순서도 이다.
S110 동작에서, 오류 감내 IP에서 오류가 발생할 시, 오류 감지기는 오류 감내 IP의 오류 발생 정보를 획득할 수 있다. 오류 감내 IP에서 발생하는 오류는 안전 오류 또는 심각한 오류일 수 있다. 도 6을 참조하여 설명된 바와 같이, 오류 발생 정보는, 오류 감내 IP에서 발생하는 발생한 오류가 안전 오류 인지 또는 심각한 오류인지 여부와 관련될 수 있다.
S120 동작에서, 오류 관리기는 S110 동작에서 획득된 오류 발생 정보에 기초하여, 오류 감내 IP에서 발생한 오류의 수를 카운팅 할 수 있다. 오류 관리기는 오류 감내 IP에서 발생한 안전 오류의 수를 카운팅 할 수 있다. 오류 관리기는 오류 감내 IP에서 발생한 심각한 오류의 수를 카운팅 할 수 있다.
S130 동작에서, 레지스터는 S110 동작에서 획득된 오류 발생 정보 및 S120 동작에서 오류의 카운팅된 수를 나타내는 데이터를 저장할 수 있다. 레지스터는 저장된 데이터를 나타내는 신호를 오류 제어기로 출력할 수 있다.
S140 동작에서, 오류 제어기는 레지스터로부터 수신되는 신호에 기초하여, 오류 발생 정보 및 오류의 수를 획득할 수 있다. 오류 제어기는 오류 발생 정보 및/또는 오류의 수에 각각 매칭된 복구 방법들의 데이터를 포함하는 룩업 테이블을 저장할 수 있다. 예로서, 오류 감내 시스템의 설계자는, 오류 제어기에 사전에 결정된 복구 방법들과 관련된 룩업 테이블을 저장할 수 있다. 오류 제어기는 오류 발생 정보, 오류의 수, 및 룩업 테이블에 기초하여 복구 방법을 결정할 수 있다.
S150 동작에서, 오류 복구 모듈은 S140 동작에서 결정된 복구 방법에 따라, 오류 감내 시스템을 제어하기 위한 신호들을 생성할 수 있다. 오류 복구 모듈은 신호들을 출력하여, 오류 감내 시스템의 동작을 제어할 수 있다. 예로서, 오류 복구 모듈은 특정 오류 감내 IP의 동작을 제어할 수 있다. 오류 복구 모듈은 리셋 모듈을 제어하여, 특정 오류 감내 IP를 리셋 시킬 수 있다. 오류 복구 모듈은 클럭 생성기를 제어하여, 특정 오류 감내 IP로 제공되는 클럭의 주파수를 조정할 수 있다.
도 9는 도 1 또는 도 2의 오류 감내 시스템의 예시적인 동작을 보여주는 순서도 이다.
도 9의 S220 동작 내지 S230 동작, 및 S250동작은 도 8의 S120 동작 내지 S140 동작, 및 S150 동작과 각각 유사하므로 이하 설명은 생략된다.
S210 동작에서, 오류 감내 IP에서 오류가 발생할 시, 오류 감지기는 오류 감내 IP의 상태 정보 및 오류 발생 정보를 획득할 수 있다. 오류 감내 IP에서 발생하는 오류는 안전 오류 또는 심각한 오류일 수 있다. 예로서, 도 5를 참조하여 설명된 바와 같이, 상태 정보는, 오류 발생 시 오류 감내 IP에 의해 수행된 동작과 관련된 정보, 오류 발생 시 오류 감내 IP로 입력된 데이터와 관련된 정보, 및 오류 발생 시 오류 감내 IP로부터 출력된 데이터와 관련된 정보 등을 포함할 수 있다.
S240 동작에서, 오류 제어기는 레지스터로부터 수신되는 신호에 기초하여, 상태 정보, 오류 발생 정보 및 오류의 수를 획득할 수 있다. 오류 제어기는 오류 발생 정보 및/또는 오류의 수에 각각 매칭된 복구 방법들의 데이터를 포함하는 룩업 테이블을 저장할 수 있다. 예로서, 오류 감내 시스템의 설계자는 오류 제어기에 사전에 결정된 복구 방법들과 관련되는 룩업 테이블을 저장할 수 있다. 오류 제어기는 오류 발생 정보, 오류의 수, 및 룩업 테이블에 기초하여 복구 방법을 결정할 수 있다.
S260 동작에서, 오류 제어기는 결정된 복구 방법이 특정 오류 감내 IP를 리셋 시키는 동작을 포함하는지 여부를 판별할 수 있다. 복구 방법이 특정 오류 감내 IP를 리셋 시키는 동작을 포함하니 않는 경우, 도 9의 동작은 종료될 수 있다. 복구 방법이 특정 오류 감내 IP를 리셋 시키는 동작을 포함하는 경우, S270 동작이 수행될 수 있다.
S270 동작에서, 오류 제어기는 레지스터로부터 수신되는 신호에 기초하여, 상태 정보를 획득할 수 있다. 오류 제어기는 S240 동작에서 획득된 상태 정보에 기초하여 복구 방법을 다시 결정할 수 있다.
S280 동작에서, 오류 복구 모듈은 S270 동작에서 결정된 복구 방법에 따라, 오류 감내 시스템을 제어하기 위한 신호들을 생성할 수 있다. 오류 복구 모듈은 신호들을 출력하여, S250 동작에서 리셋된 오류 감내 IP의 동작을 제어할 수 있다.
도 10은 본 발명의 실시 예에 따른, 오류 감내 시스템을 보여주는 블록도 이다.
도 10을 참조하면, 오류 감내 시스템(1000)은 오류 감내 프로세서(1100), 오류 감내 캐시들(1200 및 1300), 오류 감내 버스(1400), 오류 관리기(1500), 오류 복구부(1600), 및 다른 IP들(1700)을 포함할 수 있다. 오류 감내 프로세서(1100), 오류 감내 캐시들(1200 및 1300), 및 오류 감내 버스(1400)는 오류 감지기들(1110, 1210, 1310, 1410)을 각각 포함할 수 있다. 오류 복구부(1600)는 오류 복구 모듈(1610)을 포함할 수 있다. 다른 IP들(1700)은 반도체 시스템을 구성하기 위한 다양한 구성요소들을 포함할 수 있다. 예로서, 다른 IP들(1700)은 메모리, 스토리지, 통신 장치, 및 사용자 인터페이스 중 적어도 하나를 포함할 수 있다.
오류 감내 시스템(1000)은 도 10에 나타나지 않은 다른 구성요소들을 더 포함할 수 있다. 또는, 오류 감내 시스템(1000)은 도 10에 나타난 구성요소들 중 하나 이상을 포함하지 않을 수 있다. 오류 감내 시스템(1000)은 도 1의 오류 감내 시스템(100) 및 도 2의 오류 감내 시스템(100a) 중 적어도 하나를 포함할 수 있다. 도 10의 오류 감내 프로세서(1100), 오류 감내 캐시들(1200 및 1300), 및 오류 감내 버스(1400) 각각은 도 1의 오류 감내 IP(110) 및 도 2의 오류 감내 IP들(110_1 내지 110_3)을 포함할 수 있다. 도 10의 오류 관리기(1500)는 도 1 및 도 2의 오류 관리기(120)를 포함할 수 있다. 도 10의 오류 복구부(1600)는 도 1 및 도 2의 오류 복구부(130)를 포함할 수 있다.
오류 감지기들(1110, 1210, 1310, 1410)의 구성 및 동작은 오류 감지기(111 및 111_1 내지 111_3)를 참조하여 설명된 것과 유사하므로 이하 설명은 생략된다. 오류 관리기(1500)의 구성 및 동작은 오류 관리기(120)를 참조하여 설명된 것과 유사하므로 이하 설명은 생략된다. 오류 복구부(1600)의 구성 및 동작은 오류 복구부(130)를 참조하여 설명된 것과 유사하므로 이하 설명은 생략된다. 오류 복구 모듈(1610)의 구성 및 동작은 오류 복구 모듈(131)를 참조하여 설명된 것과 유사하므로 이하 설명은 생략된다.
오류 감내 프로세서(1100)는 오류 감내 시스템(1000)의 전반적인 동작들을 제어할 수 있다. 오류 감내 프로세서(1100)는 중앙제어장치로서 오류 감내 시스템(1000)의 동작에 필요한 연산들을 처리할 수 있다. 예로서, 오류 감내 프로세서(1100)는 오류 감내 캐시(1200)로부터 수신되는 신호(INS2)에 기초하여 오류 감내 시스템(1000)의 동작들을 제어하기 위한 데이터를 처리할 수 있다. 예로서, 신호(INS2)는 오류 감내 프로세서(1100)의 동작을 지시하는 데이터를 나타낼 수 있다. 오류 감내 프로세서(1100)는 신호(DATA1)에 기초하여, 오류 감내 캐시(1300)와 데이터를 교환할 수 있다.
예로서, 오류 감내 프로세서(1100)는 범용 프로세서, 워크스테이션 프로세서, 어플리케이션(Application) 프로세서 등 중 하나일 수 있다. 오류 감내 프로세서(1100)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어(Multi-Core)를 포함할 수 있다. 예로서, 오류 감내 프로세서(1100)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다.
오류 감내 캐시들(1200 및 1300)은 오류 감내 프로세서(1100) 및 오류 감내 버스(1400)로부터 수신되는 데이터를 임시적으로 저장할 수 있다. 예로서, 오류 감내 캐시들(1200 및 1300)은 데이터를 저장하기 위한 저장 장치를 포함할 수 있다. 오류 감내 캐시(1200)는 오류 감내 버스로부터 신호(INS1)를 수신할 수 있다. 예로서, 신호(INS1)는 오류 감내 프로세서(1100)의 동작을 지시하는 데이터를 나타낼 수 있다. 오류 감내 캐시(1200)는 신호(INS1)로부터 획득되는 데이터를 저장할 수 있다.
예로서, 오류 감내 캐시(1300)는 오류 감내 프로세서(1100)와 신호(DATA1)를 교환하고, 오류 감내 버스(1400)와 신호(DATA2)를 교환할 수 있다. 오류 감내 캐시(1300)는 신호들(DATA1 및 DATA2)에 의해 교환되는 데이터를 저장할 수 있다. 오류 감내 프로세서(1100)는 오류 감내 캐시들(1200 및 1300)을 통해 오류 감내 버스(1400)와 데이터를 교환할 수 있다.
오류 감내 버스(1400)는 오류 감내 캐시들(1200 및 1300)과 다른 IP들(1700) 사이에서 통신 경로를 제공할 수 있다. 오류 감내 캐시들(1200 및 1300)들은 오류 감내 버스(1400)를 통해 다른 IP들(1700)과 데이터를 교환할 수 있다. 오류 감내 버스(1400)는 오류 감내 시스템(1000)에서 이용되는 다양한 유형의 통신 포맷을 지원하도록 구성될 수 있다.
오류 관리기(1500)는 오류 감지기들(1110, 1210, 1310, 및 1410)로부터 수신되는 신호들에 기초하여, 오류 감내 프로세서(1100), 오류 감내 캐시들(1200 및 1300), 및 오류 감내 버스(1400)에서 발생하는 오류들에 대한 오류 정보를 획득할 수 있다. 오류 관리기(1500)는 오류 정보에 기초하여 오류들을 복구하기 위한 복구 방법들을 결정할 수 있다.
오류 복구 모듈(1610)은 오류 관리기(1500)로부터 수신되는 신호에 기초하여 복구 방법에 관한 정보를 획득할 수 있다. 오류 복구 모듈(1610)는 복구 방법에 따라, 오류 감내 프로세서(1100), 오류 감내 캐시들(1200 및 1300), 및 오류 감내 버스(1400)에서 발생한 오류들을 복구하기 위해, 오류 감내 프로세서(1100)와 오류 감내 프로세서(1100), 오류 감내 캐시들(1200 및 1300), 및 오류 감내 버스(1400) 사이의 통신들을 수반하는 동작들을 제어할 수 있다.
예로서, 오류 감내 캐시(1300)에 손실된 데이터가 저장될 수 있다. 오류 복구 모듈(1610)의 제어에 따라, 오류 감내 프로세서(1100)는, 신호(DATA1)를 통해 오류 감내 캐시(1300)에 저장된 손실된 데이터를 읽을 수 있다. 오류 감내 프로세서(1100)는 손실된 데이터를 복구하기 위해, 신호(DATA1)를 통해 새로운 데이터를 전송할 수 있다. 오류 감내 캐시(1300)는 손실된 데이터 대신 새로운 데이터를 저장할 수 있다. 따라서, 오류 감내 캐시(1300)의 오류는, 오류 감내 프로세서(1100)와 오류 감내 캐시(1300) 사이의 통신에 의해 복구될 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.