KR102504660B1 - 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치 - Google Patents

응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치 Download PDF

Info

Publication number
KR102504660B1
KR102504660B1 KR1020180013950A KR20180013950A KR102504660B1 KR 102504660 B1 KR102504660 B1 KR 102504660B1 KR 1020180013950 A KR1020180013950 A KR 1020180013950A KR 20180013950 A KR20180013950 A KR 20180013950A KR 102504660 B1 KR102504660 B1 KR 102504660B1
Authority
KR
South Korea
Prior art keywords
interrupt
root complex
integration
debugging
central processing
Prior art date
Application number
KR1020180013950A
Other languages
English (en)
Other versions
KR20190094615A (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 삼성전자주식회사
Priority to KR1020180013950A priority Critical patent/KR102504660B1/ko
Priority to US16/058,713 priority patent/US10853214B2/en
Priority to TW107145762A priority patent/TWI752291B/zh
Priority to DE102018132807.9A priority patent/DE102018132807A1/de
Priority to CN201910001321.6A priority patent/CN110119374A/zh
Priority to SG10201900247XA priority patent/SG10201900247XA/en
Publication of KR20190094615A publication Critical patent/KR20190094615A/ko
Priority to US17/087,666 priority patent/US11366732B2/en
Application granted granted Critical
Publication of KR102504660B1 publication Critical patent/KR102504660B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Abstract

본 발명은 응용 프로세서에 관한 것이다. 본 발명의 실시 예에 따른 응용 프로세서는 중앙 처리부, 중앙 처리부의 제어에 따라 적어도 하나의 외부 장치와 통신하고, 그리고 동작 상태가 변화할 때에 상태 변화 인터럽트를 발생하도록 구성되는 루트 컴플렉스(root complex), 그리고 상태 변화 인터럽트에 따라 상태 변화 인터럽트와 연관된 적어도 하나의 구성 요소에 대해 디버깅을 수행하도록 구성되는 인터럽트 집적 및 디버그부를 포함한다.

Description

응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치{APPLICATION PROCESSOR, AUTOMOTIVE ELECTRONIC PROCESSOR, AND COMPUTING DEVICE INCLUDING APPLICATION PROCESSOR}
본 발명은 반도체 장치에 관한 것으로, 더 상세하게는 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치에 관한 것이다.
프로세서는 펌웨어, 운영체제, 응용과 같은 다양한 개체들을 실행하고, 주변 장치들을 제어하도록 구성된다. 높은 처리 속도를 달성하기 위하여, 프로세서는 PCIe (Peripheral Component Interconnect express)와 같은 고속의 인터페이스를 통해 주변 장치들과 통신하도록 구성된다.
예를 들어, 프로세서는 PCIe 기반의 루트 컴플렉스(Root Complex)를 포함하도록 제조될 수 있다. 주변 장치들은 PCIe 기반의 스위치(Switch) 또는 종말(End Point) 인터페이스를 포함하도록 제조될 수 있다.
PCIe 인터페이스는 높은 속도를 달성하는 것을 목적으로 발전되어 왔다. 그러나 근래에 저전력 설계에 대한 요구가 지속되면서, PCIe 인터페이스에도 저전력을 달성하기 위한 시도가 도입되고 있다. PCIe 인터페이스에 저전력 시도가 도입되면서, 의도하지 않은 오동작이 발생할 수 있다.
본 발명의 목적은 통신 인터페이스에서 오동작이 발생한 때에 오동작을 자동적으로 디버깅하고 복원하는 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치를 제공하는 데에 있다.
본 발명의 실시 예에 따른 응용 프로세서는 중앙 처리부, 중앙 처리부의 제어에 따라 적어도 하나의 외부 장치와 통신하고, 그리고 동작 상태가 변화할 때에 상태 변화 인터럽트를 발생하도록 구성되는 루트 컴플렉스(root complex), 그리고 상태 변화 인터럽트에 따라 상태 변화 인터럽트와 연관된 적어도 하나의 구성 요소에 대해 디버깅을 수행하도록 구성되는 인터럽트 집적 및 디버그부를 포함한다.
본 발명의 실시 예에 따른 전장 프로세서는 중앙 처리부, 중앙 처리부의 제어에 따라 적어도 하나의 외부 장치와 통신하고, 그리고 인터럽트를 발생하도록 구성되는 루트 컴플렉스(root complex), 그리고 인터럽트에 따라 인터럽트와 연관된 적어도 하나의 구성 요소에 대해 디버깅을 수행하도록 구성되는 인터럽트 집적 및 디버그부를 포함한다. 적어도 하나의 외부 장치는 브레이크 제어기, 조향 제어기, 파워 트레인 제어기, 램프 제어기, 이미지 센서, 엔진 제어기, 배터리 제어기, 와이퍼 제어기, 안전 제어기, 그리고 표시 제어기 중 적어도 하나를 포함한다.
본 발명의 실시 예에 따른 컴퓨팅 장치는 서로 통신하도록 구성되는 응용 프로세서 및 장치를 포함한다. 응용 프로세서는 중앙 처리부, 장치와 통신하도록 구성되는 루트 컴플렉스(Root Complex), 중앙 처리부와 루트 컴플렉스를 연결하는 버스, 그리고 버스를 통해 루트 컴플렉스와 통신하는 인터럽트 집적 및 디버그부를 포함한다. 장치는 루트 컴플렉스와 통신하도록 구성되는 종말(End Point) 인터페이스를 포함한다. 인터럽트 집적 및 디버그부는 루트 컴플렉스 및 종말 인터페이스의 디버깅을 수행하도록 구성된다.
본 발명에 따르면, 인터럽트 집적 및 디버그부는 루트 컴플렉스의 인터럽트에 따라 인터럽트와 연관된 적어도 하나의 장치의 디버깅을 수행할 수 있다. 따라서, 통신 인터페이스에서 오동작이 발생한 때에 자동적으로 오동작을 디버깅하는 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치가 제공된다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 장치를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 인터럽트 집적 및 디버그부의 동작 방법을 보여주는 순서도이다.
도 3은 인터럽트 집적 및 디버그부가 동작하는 예를 보여주는 상태도이다.
도 4는 루트 컴플렉스 및 종말 인터페이스의 상태 변화의 예를 보여준다.
도 5는 인터럽트 집적 및 디버그부가 디버깅 및 복원을 수행하는 예를 보여준다.
도 6은 본 발명의 실시 예에 따른 인터럽트 집적 및 디버그부가 인터럽트들을 집적하여 관리하는 예를 보여주는 순서도이다.
도 7은 본 발명의 실시 예에 따른 인터럽트 집적 및 디버그부가 디버깅, 복원 및 집적 처리를 수행하는 예를 보여주는 순서도이다.
도 8은 도 1의 컴퓨팅 장치의 응용 예를 보여준다.
도 9는 본 발명의 다른 실시 예에 따른 컴퓨팅 장치를 보여주는 블록도이다.
도 10은 본 발명의 실시 예에 따른 전장 프로세서 및 전장 장치들을 보여준다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 장치(10)를 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 장치(10)는 프로세서(100) 및 장치(200)를 포함한다. 프로세서(100)는 장치(200)와 통신할 수 있다. 프로세서(100)는 응용 프로세서, 전장 프로세서(Automotive Electronic Processor) 등과 같은 다양한 프로세서들 중 하나를 포함할 수 있다.
프로세서(100)는 중앙 처리부(110)(CPU, Central Processing Unit), 버스(120), 브릿지(130), 루트 컴플렉스(140), 인터럽트 집적 및 디버그부(150), 그리고 클럭 생성기(160)를 포함할 수 있다. 중앙 처리부(110)는 펌웨어, 운영체제, 응용과 같은 다양한 개체들을 실행할 수 있다. 중앙 처리부(110)는 프로세서(100) 또는 장치(200)의 구성 요소들을 제어할 수 있다.
중앙 처리부(110)는 제1 인터페이스(111) 및 인터럽트 제어기(113)를 포함한다. 제1 인터페이스(111)는 버스(120)와 통신하도록 구성된다. 예를 들어, 제1 인터페이스(111)는 AXI (Advanced eXtensible Interface)의 마스터 인터페이스를 포함할 수 있다.
인터럽트 제어기(113)는 인터럽트 관리자 및 디버그부(150)로부터 제2 인터럽트(IRQ2)를 수신할 수 있다. 인터럽트 제어기(113)는 제2 인터럽트(IRQ2)를 처리할 수 있다. 예를 들어, 인터럽트 제어기(113)는 현재 동작을 멈추고 제2 인터럽트(IRQ2)를 처리할 것을 중앙 처리부(110)의 코어에 요청할 수 있다.
중앙 처리부(110)의 코어가 제2 인터럽트(IRQ2)의 처리를 완료하면, 인터럽트 제어기(113)는 처리된 제2 인터럽트(IRQ2)를 제거(clear)할 수 있다. 중앙 처리부(110)의 코어는 멈춰진 동작을 재개할 수 있다. 예를 들어, 제2 인터럽트(IRQ2)는 버스(120)를 통하지 않고 인터럽트 집적 및 디버그부(150)로부터 전달될 수 있다.
버스(120)는 제1 인터페이스(111), 브릿지(130), 그리고 루트 컴플렉스(140)의 제1 인터페이스(141)와 통신하도록 구성된다. 버스(120)는 제1 인터페이스(111), 브릿지(130), 그리고 루트 컴플렉스(140)의 제1 인터페이스(141) 사이의 통신을 중개할 수 있다. 버스(120)는 AXI 버스를 포함할 수 있다.
브릿지(130)는 버스(120)의 제1 통신 방식을 제2 통신 방식으로 변경할 수 있다. 예를 들어, 제1 통신 방식은 고속의 AXI를 포함할 수 있다. 제2 통신 방식은 저속의 APB (Advanced Peripheral Bus)를 포함할 수 있다. 제1 통신 방식은 데이터 통신을 위한 고속 통신을 지원하고, 제2 통신 방식은 특수 기능 레지스터(SFR, Special Function Register)의 설정과 같은 제어 통신을 지원할 수 있다.
브릿지(130)는 제2 통신 방식에 따라 루트 컴플렉스(140)의 제2 인터페이스(142), 그리고 인터럽트 집적 및 디버그부(150)의 제2 인터페이스(152)와 통신할 수 있다.
루트 컴플렉스(140)는 버스(120)를 통해 중앙 처리부(110)와 통신하고, 그리고 장치(200)와 통신할 수 있다. 루트 컴플렉스(140)는 제1 인터페이스(141), 제2 인터페이스(142), 제어기(143), 레지스터(144), 그리고 물리 블록(145)을 포함한다.
제1 인터페이스(141)는 제1 통신 방식(예를 들어, AXI)을 이용하여 버스(120)와 통신할 수 있다. 제1 인터페이스(141)는 AXI 슬레이브 인터페이스를 포함할 수 있다. 제1 인터페이스(141)는 루트 컴플렉스(140)의 코어와 연결될 수 있다.
제2 인터페이스(142)는 제2 통신 방식(예를 들어, APB)을 이용하여 브릿지(130)와 통신할 수 있다. 제2 인터페이스(142)는 제어기(143)와 연결될 수 있다. 예를 들어, 제어기(143)는 루트 컴플렉스(140)의 코어의 입력들 및 출력들에 연결되어 입력들 및 출력들을 제어하도록 구성되는 글루 로직(glue logic)을 포함할 수 있다.
레지스터(144)는 루트 컴플렉스(140)에 명령을 전달하는 명령 레지스터, 루트 컴플렉스(140)의 다양한 구성 요소들의 상태들의 정보를 저장하는 상태 레지스터, 루트 컴플렉스(140)의 다양한 구성 요소들의 오동작 정보(예를 들어, 에러 로그)를 저장하는 오동작 레지스터 등을 포함할 수 있다.
물리 블록(145)은 정해진 규칙에 따라 장치(200)와 신호를 교환하도록 구성된다. 물리 블록(145)은 OSI (Open System Interconnection)의 물리 계층(Physical Layer)에 대응할 수 있다. 물리 블록(145)은 위상 고정 루프(146)(PLL, Phase Locked Loop)를 포함한다.
위상 고정 루프(146)는 클럭 생성기(160)로부터 제2 클럭(CLK2)을 수신할 수 있다. 위상 고정 루프(146)는 제2 클럭(CLK2)으로부터 물리 블록(145)에서 사용되는 기준 클럭(reference clock)을 생성할 수 있다.
인터럽트 집적 및 디버그부(150)는 버스(120) 및 브릿지(130)와 통신할 수 있다. 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140)로부터 제1 인터럽트(IRQ1)를 수신할 수 있다. 제1 인터럽트(IRQ1)는 제1 인터페이스(151) 및 제2 인터페이스(152)를 통하지 않는 별도의 채널을 통해 수신될 수 있다.
인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)를 관리할 수 있다. 예를 들어, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)에 따라 루트 컴플렉스(140) 및 루트 컴플렉스(140)와 연결된 장치(200)의 디버깅을 수행할 수 있다. 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1) 중 일부를 제2 인터럽트(IRQ2)로서 인터럽트 제어기(113)로 전달할 수 있다.
인터럽트 집적 및 디버그부(150)는 제1 인터페이스(151), 제2 인터페이스(152), 그리고 인터럽트 카운터(153)를 포함한다. 제1 인터페이스(151)는 제1 통신 방식(예를 들어, AXI)을 이용하여 버스(120)와 통신할 수 있다. 예를 들어, 제1 인터페이스(151)는 AXI 마스터 인터페이스를 포함할 수 있다.
인터럽트 집적 및 디버그부(150)는 버스(120)를 통해 루트 콤플렉스(140)의 제1 인터페이스(141)와 통신할 수 있다. 즉, 중앙 처리부(110)에 더하여, 인터럽트 집적 및 디버그부(150) 또한 루트 컴플렉스(140)와 연결되어 통신할 수 있다.
제2 인터페이스(152)는 제2 통신 방식(예를 들어, APB)을 이용하여 브릿지(130)와 통신할 수 있다. 제2 인터페이스(152)는 중앙 처리부(110)가 인터럽트 집적 및 디버그부(150)의 설정들을 제어하는 데에 사용될 수 있다. 인터럽트 카운터(153)는 루트 컴플렉스(140)로부터 수신되는 제1 인터럽트(IRQ1)를 카운트하는 데에 사용될 수 있다. 예를 들어, 인터럽트 카운터(153)는 제1 인터럽트(IRQ1)를 카운트하여 집적(aggregation)하는 데에 사용될 수 있다.
클럭 생성기(160)는 제1 클럭(CLK1) 및 제2 클럭(CLK2)을 생성할 수 있다. 제1 클럭(CLK1)은 중앙 처리부(110), 버스(120), 브릿지(130), 그리고 인터럽트 집적 및 디버그부(150)와 같은 프로세서(100)의 구성 요소들에 공급될 수 있다. 제2 클럭(CLK2)은 루트 컴플렉스(140)에 공급될 수 있다. 제1 클럭(CLK1)의 주파수는 제2 클럭(CLK2)의 주파수와 같거나 다를 수 있다.
장치(200)는 종말 인터페이스(201)를 통해 프로세서(100)의 루트 컴플렉스(140)와 통신할 수 있다. 장치(200)의 종말 인터페이스(201)는 레지스터(202) 및 물리 블록(203)을 포함할 수 있다.
레지스터(202)는 종말 인터페이스(201)에 명령을 전달하는 명령 레지스터, 종말 인터페이스(201)의 다양한 구성 요소들의 상태들의 정보를 저장하는 상태 레지스터 등을 포함할 수 있다.
물리 블록(203)은 정해진 규칙에 따라 루트 컴플렉스(140)의 물리 블록(145)과 신호를 교환하도록 구성된다. 물리 블록(203)은 OSI (Open System Interconnection)의 물리 계층(Physical Layer)에 대응할 수 있다. 물리 블록(203)은 위상 고정 루프(146)(PLL, Phase Locked Loop)를 포함한다.
위상 고정 루프(204)는 루트 컴플렉스(140)로부터 클럭을 수신할 수 있다. 위상 고정 루프(204)는 루트 컴플렉스(140)로부터 수신되는 클럭으로부터 물리 블록(203)에서 사용되는 기준 클럭(reference clock)을 생성할 수 있다.
이하에서, 컴퓨팅 장치(10)의 전체적인 동작이 설명된다. 중앙 처리부(110)는 제1 인터페이스(111) 및 버스(120)를 통해 루트 컴플렉스(140)의 제1 인터페이스(141)와 통신할 수 있다. 중앙 처리부(110)는 루트 컴플렉스(140)를 통해 장치(200)와 데이터를 통신할 수 있다.
중앙 처리부(110)는 제1 인터페이스(111), 버스(120) 및 브릿지(130)를 통해 루트 컴플렉스(140)의 제2 인터페이스(142)와 통신할 수 있다. 중앙 처리부(110)는 제1 인터페이스(111), 버스(120) 및 브릿지(130)를 통해 루트 컴플렉스(140)의 설정들(예를 들어, 레지스터(144)에 저장된 설정들)을 제어할 수 있다.
중앙 처리부(110)는 제1 인터페이스(111), 버스(120) 및 브릿지(130)를 통해 인터럽트 집적 및 디버그부(150)의 제2 인터페이스(152)와 통신할 수 있다. 중앙 처리부(110)는 제1 인터페이스(111), 버스(120) 및 브릿지(130)를 통해 인터럽트 집적 및 디버그부(150)의 설정들을 제어할 수 있다.
인터럽트 집적 및 디버그부(150)는 제1 인터페이스(151) 및 버스(120)를 통해 루트 컴플렉스(140)의 제1 인터페이스(141)와 통신할 수 있다. 인터럽트 집적 및 디버그부(150)는 제1 인터페이스(151) 및 버스(120)를 통해 루트 컴플렉스(140)의 코어, 물리 블록(145) 또는 제1 인터페이스(141)와 연관된 상태들(예를 들어, 레지스터(144)에 저장된 정보)을 디버깅하고, 디버깅의 결과에 따라 복원을 수행할 수 있다.
인터럽트 집적 및 디버그부(150)는 제1 인터페이스(151), 버스(120), 루트 컴플렉스(140)의 제1 인터페이스(141) 및 루트 컴플렉스(140)의 코어를 통해 장치(200)의 종말 인터페이스(201)와 통신할 수 있다. 인터럽트 집적 및 디버그부(150)는 제1 인터페이스(151), 버스(120) 및 루트 컴플렉스(140)를 통해 장치(200)의 종말 인터페이스(201)의 코어 또는 물리 블록(203)과 연관된 상태들(예를 들어, 레지스터(202)에 저장된 정보)을 디버깅하고, 디버깅의 결과에 따라 복원을 수행할 수 있다.
인터럽트 집적 및 디버그부(150)는 제1 인터페이스(151), 버스(120) 및 브릿지(130)를 통해 루트 컴플렉스(140)의 제2 인터페이스(142)와 통신할 수 있다. 인터럽트 집적 및 디버그부(150)는 제1 인터페이스(151) 및 버스(120)를 통해 루트 컴플렉스(140)의 제어기(143) 또는 제2 인터페이스(142)와 연관된 상태들(예를 들어, 레지스터(144)에 저장된 정보)을 디버깅하고, 디버깅의 결과에 따라 복원을 수행할 수 있다.
예를 들어, 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140)로부터 전달되는 제1 인터럽트(IRQ1)에 응답하여 디버깅을 수행할 수 있다. 예를 들어, 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140)의 동작 상태의 변화를 알리는 상태 변화 인터럽트 또는 오동작을 알리는 오동작 인터럽트에 응답하여 디버깅을 수행하도록 구성될 수 있다.
예를 들어, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)을 집적하도록 더 구성될 수 있다. 예를 들어, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)에 따라 루트 컴플렉스(140) 또는 종말 인터페이스(201)를 액세스(또는 스캔)하고, 미리 정해진 동작을 수행할 수 있다.
인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)를 카운트하고, 제1 인터럽트(IRQ1)를 처리(예를 들어, 클리어(clear))할 수 있다. 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)가 정해진 개수만큼 처리되면, 중앙 처리부(110)에 제2 인터럽트(IRQ2)를 전송할 수 있다. 제1 인터럽트(IRQ1)보다 적은 수의 제2 인터럽트(IRQ2)를 중앙 처리부(110)로 전달함으로써, 인터럽트 집적 및 디버그부(150)는 인터럽트 집적(interrupt aggregation)을 수행할 수 있다.
예를 들어, 인터럽트 집적 및 디버그부(150)는 미리 정해진 상태들 사이를 천이하는 상태 기계를 포함할 수 있다. 예를 들어, 인터럽트 집적 및 디버그부(150)는 미리 정해진 순서에 따라 명령들을 수행하는 시퀀서(sequencer)를 포함할 수 있다.
인터럽트 집적 및 디버그부(150)가 상태 기계 또는 시퀀서로 구현되면, 간단한 프로그램을 통해 인터럽트 집적 및 디버그부(150)의 동작 순서 또는 동작 방법이 조절될 수 있다. 따라서, 인터럽트 집적 및 디버그부(150)의 유연성이 향상된다.
도 2는 본 발명의 실시 예에 따른 인터럽트 집적 및 디버그부(150)의 동작 방법을 보여주는 순서도이다. 도 1 및 도 2를 참조하면, S110 단계에서, 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140)로부터 제1 인터럽트(IRQ1)를 수신할 수 있다.
S120 단계에서, 인터럽트 집적 및 디버그부(150)는 수신된 제1 인터럽트(IRQ1)가 디버깅을 하도록 지정된 인터럽트인지 판단할 수 있다. 예를 들어, 제1 인터럽트(IRQ1)는 다양한 종류를 가질 수 있다. 제1 인터럽트(IRQ1)의 종류들 중 일부 종류는 인터럽트 집적 및 디버그부(150)가 디버깅을 수행하도록 지정될 수 있다.
예를 들어, 지정된 인터럽트는 루트 컴플렉스(140) 또는 종말 인터페이스(201)의 동작 상태(예를 들어, 절전 상태)의 변화를 알리는 상태 변화 인터럽트를 포함할 수 있다. 지정된 인터럽트는 루트 컴플렉스(140) 또는 종말 인터페이스(201)에서 오동작이 발생하였음을 알리는 오동작 인터럽트를 포함할 수 있다.
예를 들어, 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140)의 레지스터(144) 또는 종말 인터페이스(201)의 레지스터(202) 중 인터럽트와 연관된 레지스터를 읽을 수 있다. 레지스터로부터 읽혀지는 값에 따라, 인터럽트 집적 및 디버그부(150)는 인터럽트의 종류를 판단할 수 있다.
수신된 제1 인터럽트(IRQ1)가 디버깅을 위해 지정된 인터럽트가 아니면, 인터럽트 집적 및 디버그부(150)는 S130 단계를 수행할 수 있다. S130 단계에서, 인터럽트 집적 및 디버그부(150)는 수신된 제1 인터럽트(IRQ1)를 제2 인터럽트(IRQ2)로서 중앙 처리부(110)로 통과시킬 수 있다.
수신된 제1 인터럽트(IRQ1)가 디버깅을 위해 지정된 인터럽트이면, 인터럽트 집적 및 디버그부(150)는 S140 단계를 수행할 수 있다. S140 단계에서, 인터럽트 집적 및 디버그부(150)는 인터럽트에 따라 인터럽트와 연관된 적어도 하나의 구성 요소에 대해 디버깅을 수행할 수 있다. 예를 들어, 적어도 하나의 구성 요소는 루트 컴플렉스(140) 또는 루트 컴플렉스(140)에 연결된 장치(200)를 포함할 수 있다.
예를 들어, 디버깅은 적어도 하나의 구성 요소와 연관된 레지스터(예를 들어, 144 또는 202)를 체크하는 것을 포함할 수 있다. 레지스터는 발생한 인터럽트의 종류에 대한 정보 또는 적어도 하나의 구성 요소의 동작 상태에 대한 정보를 저장할 수 있다. 레지스터를 체크함으로써, 인터럽트 집적 및 디버그부(150)는 적어도 하나의 구성 요소에서 오동작이 발생하는지 확인할 수 있다.
예를 들어, 디버깅을 수행한 후에, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)를 중앙 처리부(110)로 전달하지 않고 제거하거나 또는 제1 인터럽트(IRQ1)를 제2 인터럽트(IRQ2)로서 중앙 처리부(110)로 전달할 수 있다.
도 3은 인터럽트 집적 및 디버그부(150)가 동작하는 예를 보여주는 상태도이다. 도 1 및 도 3을 참조하면, 인터럽트 집적 및 디버그부(150)는 제1 상태(S1), 제2 상태(S2), 그리고 제3 상태(S3) 중 하나를 가질 수 있다.
제1 상태(S1)는 유휴 상태일 수 있다. 제1 인터럽트(IRQ1)로서 상태 변화 인터럽트 또는 오동작 인터럽트가 수신되지 않을 때, 인터럽트 집적 및 디버그부(150)는 제1 상태(S1)를 가질 수 있다.
인터럽트 집적 및 디버그부(150)가 제1 상태(S1)인 때에 제1 인터럽트(IRQ1)로서 상태 변화 인터럽트 또는 오동작 인터럽트가 수신되는 제1 이벤트(E1)가 발생할 수 있다. 제1 이벤트(E1)가 발생하면, 인터럽트 집적 및 디버그부(150)는 제1 상태(S1)로부터 제2 상태(S2)로 진입할 수 있다. 제2 상태(S2)는 디버깅 상태일 수 있다.
예를 들어, 인터럽트 집적 및 디버그부(150)는 상태 변화 인터럽트가 수신된 후 특정 시간이 경과한 후에 제2 상태(S2)로 진입할 수 있다. 인터럽트 집적 및 디버그부(150)가 특정 시간동안 대기함으로써, 루트 컴플렉스(140) 또는 종말 인터페이스(201)에서 상태 변화가 완료되고 적용되는 시간이 보장될 수 있다.
제2 상태(S2)에서, 인터럽트 집적 및 디버그부(150)는 인터럽트와 연관된 적어도 하나의 레지스터(예를 들어, 144 또는 202)를 체크할 수 있다. 예를 들어, 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140) 또는 종말 인터페이스(201)의 상태 정보를 저장하는 상태 레지스터를 체크할 수 있다.
다른 예로서, 인터럽트 집적 및 디버그부(150)는 오동작에 대한 정보(예를 들어, 로그)를 저장하는 루트 컴플렉스(140) 또는 종말 인터페이스(201)의 오동작 레지스터를 체크할 수 있다. 체크 결과에 따라, 인터럽트 집적 및 디버그부(150)는 제1 상태(S1) 또는 제3 상태(S3)로 진입할 수 있다.
제2 상태(S2)에서, 루트 컴플렉스(140) 또는 종말 인터페이스(201)에 오동작이 존재하지 않는 제2 이벤트(E2)가 발생하면, 인터럽트 집적 및 디버그부(150)는 제1 상태(S1)로 진입할 수 있다. 또한, 인터럽트 집적 및 디버그부(150)는 상태 변화 인터럽트 또는 오동작 인터럽트를 중앙 처리부(110)로 전달하지 않고 제거(clear)할 수 있다.
제2 상태(S2)에서, 루트 컴플렉스(140) 또는 종말 인터페이스(201)에 오동작이 존재하는 제3 이벤트(E3)가 발생하면, 인터럽트 집적 및 디버그부(150)는 제3 상태(S3)로 진입할 수 있다.
제3 상태(S3)에서, 인터럽트 집적 및 디버그부(150)는 인터럽트와 연관된 적어도 하나의 구성 요소의 복원을 수행할 수 있다. 예를 들어, 인터럽트 집적 및 디버그부(150)는 적어도 하나의 구성 요소와 연관된 레지스터를 제어할 수 있다.
예를 들어, 인터럽트 집적 및 디버그부(150)는 연관된 레지스터(예를 들어, 명령 레지스터)를 리셋 또는 초기화하거나, 연관된 레지스터(예를 들여, 명령 레지스터)에 특정한 명령을 입력함으로써 복원을 수행할 수 있다.
제3 상태(S3)에서, 복원이 수행되고 특정 시간이 경과하는 제4 이벤트(E4)가 발생하면, 인터럽트 집적 및 디버그부(150)는 제2 상태(S2)로 진입할 수 있다. 인터럽트 집적 및 디버그부(150)가 특정 시간동안 대기함으로써, 루트 컴플렉스(140) 또는 종말 인터페이스(201)에서 복원이 완료되고 적용되는 시간이 보장될 수 있다.
제2 상태(S2)에서, 오동작이 복원되었으면, 인터럽트 집적 및 디버그부(150)는 상태 변화 인터럽트 또는 오동작 인터럽트를 제거(clear)하고 제1 상태(S1)로 진입할 수 있다. 제2 상태(S2)에서, 오동작이 복원되지 않았으면, 인터럽트 집적 및 디버그부(150)는 제3 상태(S3)로 다시 진입할 수 있다.
인터럽트 집적 및 디버그부(150)가 제1 내지 제3 상태들(S1~S3) 사이를 천이하는 것은, 인터럽트 집적 및 디버그부(150)가 수행하도록 지정된 명령들의 세트에 의해 실행될 수 있다. 예를 들어, 명령들의 세트는 읽기, 반복(loop), 참의 분기(branch in true), 거짓의 분기(branch in false), 내부 레지스터의 갱신, 수정 또는 쓰기, 수정 및 쓰기 등을 포함할 수 있다.
인터럽트 집적 및 디버그부(150)는 디버깅이 지정된 제1 종류의 인터럽트에 대해, 명령들의 세트 중 제1 명령들을 수행하여 디버깅 및 복원을 수행할 수 있다. 인터럽트 집적 및 디버그부(150)는 디버깅이 지정된 제2 종류의 인터럽트에 대해, 명령들의 세트 중 제2 명령들을 수행하여 디버깅 및 복원을 수행할 수 있다.
인터럽트 집적 및 디버그부(150)가 실행하는 명령들의 세트는 제2 인터페이스(152)를 통해 수정, 추가 및 삭제될 수 있다. 인터럽트의 종류에 따라 인터럽트 집적 및 디버그부(150)가 실행하는 명령들은 제2 인터페이스(152)를 통해 수정, 추가 및 삭제될 수 있다. 따라서, 인터럽트 집적 및 디버그부(150)는 프로세서(100)가 속한 환경의 변화에 대해 높은 수준의 유연성(flexibility)을 제공할 수 있다.
상술된 바와 같이, 인터럽트 집적 및 디버그부(150)는 레지스터를 체크함으로써 루트 컴플렉스(140) 또는 종말 인터페이스(201)의 디버깅을 수행할 수 있다. 또한, 인터럽트 집적 및 디버그부(150)는 레지스터의 값을 조절함으로써, 루트 컴플렉스(140) 또는 종말 인터페이스(201)의 복원을 수행할 수 있다. 따라서, 프로세서(100) 및 컴퓨팅 장치(10)의 신뢰도가 향상된다.
또한, 복원이 성공하면, 인터럽트 집적 및 디버그부(150)는 인터럽트를 중앙 처리부(110)로 전달하지 않고 제거(clear)한다. 중앙 처리부(110)로 불필요한 인터럽트가 전달되지 않으므로, 중앙 처리부(110) 또는 인터럽트 제어기(113)의 업무 부하가 감소되고, 중앙 처리부(110)의 자원이 확보된다.
도 4는 루트 컴플렉스(140) 및 종말 인터페이스(201)의 상태 변화의 예를 보여준다. 예시적으로, PCIe 기반의 능동 상태 전력 관리(ASPM, Active State Power Management)가 수행되는 예가 도 4에 도시된다. 능동 상태 전력 관리(ASPM)는 중앙 처리부(110), 버스(120), 브릿지(130), 인터럽트 집적 및 디버그부(150)와 같은 외부 장치의 명령 또는 개입 없이, 루트 컴플렉스(140) 및 종말 인터페이스(201) 사이의 조정(coordination)에 의해 수행될 수 있다.
예를 들어, 중앙 처리부(110), 버스(120), 브릿지(130), 또는 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140) 및 종말 인터페이스(201)가 활성 상태인 것으로 인식할 수 있다. 루트 컴플렉스(140) 및 종말 인터페이스(201)는 외부의 구성 요소들에 의해 활성 상태로 인식되는 동안, 자체적으로(또는 능동적으로) 절전 모드에 진입할 수 있다.
외부의 구성 요소들이 루트 컴플렉스(140) 또는 종말 인터페이스(201)를 통해 데이터를 통신하고자 할 때, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 자체적으로(또는 능동적으로) 절전 모드로부터 복원될 수 있다. 즉, 능동 상태 전력 관리는 외부의 구성 요소들에 대해 숨겨질(hidden 또는 shadowed) 수 있다.
도 4를 참조하면, 제1 시간(T1)에 루트 컴플렉스(140) 및 종말 인터페이스(201)의 상태는 L0 상태일 수 있다. 제1 시간(T1)에, 업스트림 포트, 즉 종말 인터페이스(201)의 포트의 신호(CLKREQ#)는 로우 레벨로 구동될 수 있다. 제1 시간(T1)에, 다운스트림 포트, 즉 루트 컴플렉스(140)의 포트의 신호(CLKREQ#)는 로우 레벨로 구동되거나 제3 상태(TriState), 예를 들어 고 임피던스 상태로 구동될 수 있다.
종말 인터페이스(201)가 신호(CLKREQ#)를 로우 레벨로 구동하므로, 제1 시간(T1)에 신호(CLKREQ#)는 로우 레벨을 가질 수 있다. L0 상태에서, 루트 컴플렉스(140) 또는 종말 인터페이스(201)의 위상 고정 루프(146 또는 204)는 기준 클럭(REFCLK)을 유효하게 유지할 수 있다. 예를 들어, 위상 고정 루프(146 또는 204)는 기준 클럭(REFCLK)을 지속적으로 생성하고 출력할 수 있다.
제2 시간(T2)에, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 L1 상태로 진입할 수 있다. 예를 들어, 특정한 시간 동안 루트 컴플렉스(140) 및 종말 인터페이스(201) 사이에서 통신이 수행되지 않으면, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 L1 상태로 진입할 수 있다.
더 상세하게는, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 L1.0 상태로 진입할 수 있다. 제2 시간(T2)과 제3 시간(T3)의 사이에, 루트 컴플렉스(140)는 신호(CLKREQ#)를 제3 상태(TriState), 예를 들어 고 임피던스 상태로 구동할 수 있다. 제3 시간(T3)에, 종말 인터페이스(201)는 신호(CLKREQ#)를 제3 상태(TriState), 예를 들어 고 임피던스 상태로 구동할 수 있다.
루트 컴플렉스(140) 및 종말 인터페이스(201) 모두가 신호(CLKREQ#)를 제3 상태, 예를 들어 고 임피던스 상태로 구동하므로, 제4 시간(T4)에 신호(CLKREQ#)는 하이 레벨로 천이할 수 있다. 신호(CLKREQ#)가 하이 레벨로 천이함에 따라, 제5 시간(T5)에, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 L1.2 진입(L1.2.Entry) 상태를 거쳐 L1.2 유휴(L1.2.Idle) 상태로 진입할 수 있다.
예시적으로, 루트 컴플렉스(140) 및 종말 인터페이스(201)가 L1.2 진입(L1.2.Entry) 상태에 진입하는 것에 응답하여 또는 신호(CLKREQ#)가 하이 레벨로 천이하는 것에 응답하여, 루트 컴플렉스(140)는 제1 인터럽트(IRQ1)로서 상태 변화 인터럽트를 출력할 수 있다.
신호(CLKREQ#)가 하이 레벨로 천이하는 것에 응답하여, 또는 루트 컴플렉스(140) 및 종말 인터페이스(201)가 L1.2 진입 상태가 되는 것에 응답하여, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 기준 클럭(REFCLK)의 생성을 중지할 수 있다. 예를 들어, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 위상 고정 루프들(146, 204)을 비활성화할 수 있다.
루트 컴플렉스(140) 및 종말 인터페이스(201)가 L1.2 유휴 상태에 진입한 후, 외부의 구성 요소가 루트 컴플렉스(140) 또는 종말 인터페이스(201)를 이용하여 데이터를 통신하고자 할 수 있다. 이때, 루트 컴플렉스(140) 또는 종말 인터페이스(201)는 신호(CLKREQ#)를 이용하여 L1.2 유휴 상태로부터 복원할 것을 요청할 수 있다.
예시적으로, 제6 시간(T6)에, 루트 컴플렉스(140)는 신호(CLKREQ#)를 로우 레벨로 구동할 수 있다. 루트 컴플렉스(140)가 신호(CLKREQ#)를 로우 레벨로 구동함에 따라, 제7 시간(T7)에, 신호(CLKREQ#)가 로우 레벨로 천이할 수 있다. 신호(CLKREQ#)가 로우 레벨로 천이함에 따라, 제8 시간(T8)루트 컴플렉스(140) 및 종말 인터페이스(201)는 L1.2 종료(L1.2.Exit) 상태로 진입할 수 있다.
예시적으로, 루트 컴플렉스(140) 및 종말 인터페이스(201)가 L1.2 종료(L1.2.Exit) 상태에 진입하는 것에 응답하여 또는 신호(CLKREQ#)가 로우 레벨로 천이하는 것에 응답하여, 루트 컴플렉스(140)는 제1 인터럽트(IRQ1)로서 상태 변화 인터럽트를 출력할 수 있다.
이후에, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 L1.0 상태로 진입하고, 그리고 L1 상태를 종료할 수 있다. 루트 컴플렉스(140) 및 종말 인터페이스(201)는 L1 상태로부터 복원하는 상태로 진입할 수 있다.
루트 컴플렉스(140) 및 종말 인터페이스(201)가 L1.2 유휴(L1.2.Idle) 상태로부터 L1.0 상태로 진입하는 동안, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 기준 클럭(REFCLK)을 생성하여야 한다. 예를 들어, 신호(CLKREQ#)가 로우 레벨로 천이하는 것에 응답하여 또는 루트 컴플렉스(140) 및 종말 인터페이스(201)가 L1.2 종료(L1.2.Exit) 상태로 진입하는 것에 응답하여, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 위상 고정 루프들(146, 204)을 활성화할 수 있다.
예시적으로, 루트 컴플렉스(140) 및 종말 인터페이스(201)는 특정한 시간(TL10_REFCLK_ON) 이내에 유효한 기준 클럭들(REFCLK)을 생성하여야 한다. 그러나 위상 고정 루프들(146, 204)에서 고정(locking)이 되지 않는 오동작이 발생하여 기준 클럭들(REFCLK)이 생성되지 않을 수 있다. 예를 들어, 충격, 고온, 저온 등과 같은 환경적 요인에 의해 프로세서(100) 또는 장치(200)가 열화되면, 위상 고정 루프들(146, 204) 중 하나에서 위상이 고정되지 않는 오동작이 발생할 수 있다.
루트 컴플렉스(140) 또는 종말 인터페이스(201)에서 특정한 시간(TL10_REFCLK_ON) 이내에 기준 클럭들(REFCLK)이 생성되지 않으면, 루트 컴플렉스(140)는 링크 다운(Link Down)이 발생한 것으로 판단할 수 있다. 판단 결과에 따라, 루트 컴플렉스(140)는 루트 컴플렉스(140)의 물리 블록(145) 및 종말 인터페이스(201)의 물리 블록(203)을 리셋할 수 있다.
링크 다운(Link Down)이 발생하고, 물리 블록들(145, 203)을 리셋하는 것은 일정한 시간을 필요로 한다. 따라서, 링크 다운 및 물리 블록들(145, 203)의 리셋은 루트 컴플렉스(140) 및 종말 인터페이스(201)의 레이턴시의 저하 및 성능의 열화를 초래할 수 있다.
본 발명의 실시 예에 따른 인터럽트 집적 및 디버그부(150)는 상태 변화 인터럽트를 포함하는 제1 인터럽트(IRQ1)에 응답하여 루트 컴플렉스(140) 및 종말 인터페이스(201)의 레지스터들(144, 202)을 체크할 수 있다. 예를 들어, 인터럽트 집적 및 디버그부(150)는 위상 고정 루프들(146, 204)의 상태들의 정보를 저장하는 상태 레지스터들을 체크할 수 있다.
위상 고정 루프들(146, 204) 각각에서 고정(locking)이 성공하지 않은 것으로 체크되면, 인터럽트 집적 및 디버그부(150)는 위상 고정 루프들(146, 204) 중 고정이 성공하지 않은 위상 고정 루프를 리셋(또는 초기화)할 수 있다. 예를 들어, 인터럽트 집적 및 디버그부(150)는 레지스터들(144, 202) 중 위상 고정 루프들(146, 204)과 연관된 명령 레지스터들을 리셋(또는 초기화)하거나 또는 명령 레지스터들에 특정한 명령 값을 저장할 수 있다.
인터럽트 집적 및 디버그부(150)는 고정이 성공하지 않은 위상 고정 루프가 고정을 다시 시도하도록 제어함으로써, 위상 고정 루프들(146, 204)의 오동작들을 복원할 수 있다. 따라서, 프로세서(100) 또는 장치(200)가 열화되어도, 프로세서(100) 또는 장치(200)의 신뢰성이 보장되며 수명이 연장될 수 있다.
도 5는 인터럽트 집적 및 디버그부(150)가 디버깅 및 복원을 수행하는 예를 보여준다. 도 1 및 도 5를 참조하면, 예를 들어 신호(CLKREQ#)가 하이 레벨로 천이함에 따라, 루트 컴플렉스(140)는 제1 인터럽트(IRQ1)를 출력할 수 있다. 제1 인터럽트(IRQ1)는 루트 컴플렉스(140) 및 종말 인터페이스(201)가 L1.2 상태로 진입함을 알리는 상태 변화 인터럽트를 포함할 수 있다.
S210 단계에서, 제1 인터럽트(IRQ1)는 인터럽트 집적 및 디버그부(150)의 인터럽트 카운터(153)에 저장될 수 있다. 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)의 종류를 판단할 수 있다. 제1 인터럽트(IRQ1)가 L1.2 상태로의 진입을 알리는 상태 변화 인터럽트이면, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)를 중앙 처리부(110)로 전달하지 않고 인터럽트 카운터(153)로부터 제거(clear)할 수 있다.
신호(CLKREQ#)가 하이 레벨로 천이함에 따라, 위상 고정 루프(예를 들어, 146)는 기준 클럭(REFCLK)의 생성을 중지할 수 있다. 기준 클럭(REFCLK)의 생성이 중지됨에 따라, 레지스터(144) 중에서 위상 고정 루프(146)의 고정 성공의 정보를 저장하는 상태 레지스터(PLL_DONE)는 고정되지 않음(Unlocked)을 가리키는 하이 레벨을 저장하도록 갱신될 수 있다.
신호(CLKREQ#)가 로우 레벨로 천이함에 따라, 루트 컴플렉스(140)는 제1 인터럽트(IRQ1)를 출력할 수 있다. 제1 인터럽트(IRQ1)는 루트 컴플렉스(140) 및 종말 인터페이스(201)가 L1.2 상태를 종료함을 알리는 상태 변화 인터럽트를 포함할 수 있다.
S220 단계에서, 제1 인터럽트(IRQ1)는 인터럽트 집적 및 디버그부(150)의 인터럽트 카운터(153)에 저장될 수 있다. 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)의 종류를 판단할 수 있다. 제1 인터럽트(IRQ1)가 L1.2 상태의 종료를 알리는 상태 변화 인터럽트이면, S230 단계에서, 인터럽트 집적 및 디버그부(150)는 상태 레지스터(PLL_DONE)를 체크할 수 있다.
상태 레지스터(PLL_DONE)가 고정되지 않음을 가리키는 하이 레벨을 저장하므로, 인터럽트 집적 및 디버그부(150)는 위상 고정 루프(146) 또는 위상 고정 루프(146)와 연관된 명령 레지스터를 리셋 또는 초기화할 수 있다. 리셋 또는 초기화에 응답하여, S240 단계에서, 위상 고정 루프(146)는 기준 클럭(REFCLK)의 생성을 시작할 수 있다.
기준 클럭(REFCLK)이 생성됨에 따라, 상태 레지스터(PLL_DONE)는 고정됨(Locked)을 가리키는 로우 레벨을 저장하도록 갱신될 수 있다. S250 단계에서, 인터럽트 집적 및 디버그부(150)는 상태 레지스터(PLL_DONE)를 다시 체크할 수 있다.
상태 레지스터(PLL_DONE)가 고정됨을 가리키는 로우 레벨을 저장하므로, S260 단계에서, 인터럽트 집적 및 디버그부(150)는 인터럽트 카운터(153)로부터 제1 인터럽트(IRQ1)를 제거(clear)할 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따른 인터럽트 집적 및 디버그부(150)는 위상 고정 루프(146)의 고정 여부를 체크할 수 있다. 고정이 실패한 때에, 인터럽트 집적 및 디버그부(150)는 고정을 재시도하도록 위상 고정 루프(146)를 제어할 수 있다. 따라서, 링크 다운(Link Down)이 발생하는 것이 방지되고, 루트 컴플렉스(140) 및 종말 인터페이스(201)의 레이턴시 및 성능이 향상된다.
상술된 실시 예에서, 인터럽트 집적 및 디버그부(150)는 위상 고정 루프(146)와 연관되어 디버깅 및 복원을 수행하는 것으로 설명되었다. 그러나 인터럽트 집적 및 디버그부(150)는 위상 고정 루프(146) 외의 루트 컴플렉스(140) 및 종말 인터페이스(201)의 다른 구성 요소들에 대해서도 디버깅 및 복원을 수행할 수 있다.
예를 들어, 인터럽트 집적 및 디버그부(150)는 클럭 및 데이터 복원(CDR, Clock and Data Recovery) 블록의 고정 성공의 디버깅 및 복원, 자동 주파수 제어(AFC, Auto Frequency Control) 블록의 제어 성공의 디버깅 및 복원, 에러의 디버깅 및 복원 등과 같은 다양한 디버깅들 및 복원들을 수행할 수 있다.
도 6은 본 발명의 실시 예에 따른 인터럽트 집적 및 디버그부(150)가 인터럽트들을 집적(aggregation)하여 관리하는 예를 보여주는 순서도이다. 도 1 및 도 6을 참조하면, S310 단계에서, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)를 수신할 수 있다.
S320 단계에서, 인터럽트 집적 및 디버그부(150)는 수신된 제1 인터럽트(IRQ1)가 집적(aggregation)을 위해 지정된 인터럽트인지 판단할 수 있다. 예를 들어, 지정된 인터럽트는 데이터 인터럽트를 포함할 수 있다. 루트 컴플렉스(140)는 종말 인터페이스(201)와 데이터를 통신할 때에, 데이터 인터럽트를 출력할 수 있다. 예를 들어, 루트 컴플렉스(140)는 데이터의 트랜잭션(transaction)이 발생할 때마다 데이터 인터럽트를 출력할 수 있다.
예를 들어, 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140)의 레지스터(144) 또는 종말 인터페이스(201)의 레지스터(202) 중 인터럽트 레지스터를 체크(또는 스캔)함으로써, 제1 인터럽트(IRQ1)의 종류를 판단할 수 있다.
수신된 제1 인터럽트(IRQ1)가 집적을 위해 지정된 인터럽트가 아니면, S330 단계에서, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)를 제2 인터럽트(IRQ2)로서 중앙 처리부(110)로 통과(bypass)시킬 수 있다. 이후에, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)와 연관된 동작을 종료할 수 있다.
수신된 제1 인터럽트(IRQ1)가 집적을 위해 지정된 인터럽트이면, S330 단계에서, 인터럽트 집적 및 디버그부(150)는 인터럽트 카운터(153)의 카운트를 증가시킬 수 있다. S340 단계에서, 인터럽트 집적 및 디버그부(150)는 인터럽트의 종류에 따라 정해진 명령들을 수행하여, 루트 컴플렉스(140) 또는 종말 인터페이스(201)의 레지스터(144 또는 202)를 읽거나 쓸 수 있다. 또한, 인터럽트 집적 및 디버그부(150)는 인터럽트 레지스터의 인터럽트 값을 초기화함으로써, 제1 인터럽트(IRQ1)를 제거(clear)할 수 있다.
S330 단계에서, 인터럽트 집적 및 디버그부(150)는 인터럽트 카운터(153)의 카운트가 문턱값에 도달하는지 판단할 수 있다. 카운트가 문턱값에 도달하지 않으면, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)와 연관된 동작을 종료할 수 있다.
카운트가 문턱값에 도달하면, S360 단계가 수행된다. S360 단계에서, 인터럽트 집적 및 디버그부(150)는 제2 인터럽트(IRQ2)를 중앙 처리부(110)로 전달할 수 있다. S370 단계에서, 인터럽트 집적 및 디버그부(150)는 카운트를 초기화할 수 있다. 즉, 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140)로부터 전달되는 데이터 인터럽트들을 집적(aggregate)하여 중앙 처리부(110)로 전달할 수 있다.
장치(200)와 프로세서(100) 사이의 데이터 통신량이 증가함에 따라, 루트 컴플렉스(140)가 출력하는 데이터 인터럽트들의 수는 급증할 수 있다. 급증하는 데이터 인터럽트들을 중앙 처리부(110) 또는 인터럽트 제어기(113)가 개별적으로 처리하는 것은 중앙 처리부(110)에게 높은 업무 부하를 유발할 수 있다.
본 발명의 실시 예에 따른 인터럽트 집적 및 디버그부(150)는 데이터 인터럽트들을 집적하여 중앙 처리부(110)의 인터럽트 제어기(113)로 전달하도록 구성된다. 따라서, 중앙 처리부(110) 또는 인터럽트 제어기(113)가 데이터 인터럽트들을 집적하여 처리할 수 있으며, 중앙 처리부(110)의 업무 부하가 감소된다.
도 7은 본 발명의 실시 예에 따른 인터럽트 집적 및 디버그부(150)가 디버깅, 복원 및 집적 처리를 수행하는 예를 보여주는 순서도이다. 도 1 및 도 7을 참조하면, S410 단계에서, 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140)로부터 제1 인터럽트(IRQ1)를 수신할 수 있다.
예를 들어, 제1 인터럽트(IRQ1)는 상태 변화 인터럽트, 오동작 인터럽트, 또는 데이터 인터럽트를 포함할 수 있다. S420 단계에서, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)가 디버깅에 지정된 인터럽트인지 판단할 수 있다.
제1 인터럽트(IRQ1)가 디버깅에 지정된 인터럽트이면, 인터럽트 집적 및 디버그부(150)는 S430 단계를 수행할 수 있다. S430 단계에서, 인터럽트 집적 및 디버그부(150)는 도 2 내지 도 5를 참조하여 설명된 바와 같이 디버깅 및 복원을 수행할 수 있다.
제1 인터럽트(IRQ1)가 디버깅에 지정된 인터럽트가 아니면, 인터럽트 집적 및 디버그부(150)는 S440 단계를 수행할 수 있다. S440 단계에서, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)가 집적에 지정된 인터럽트인지 판단할 수 있다.
제1 인터럽트(IRQ1)가 집적에 지정된 인터럽트이면, S450 단계에서, 인터럽트 집적 및 디버그부(150)는 집적을 수행할 수 있다. S150 단계는 도 6의 S330 단계 내지 S370 단계와 동일하게 수행될 수 있다. 제1 인터럽트(IRQ1)가 집적이 지정된 인터럽트가 아니면, S470 단계에서, 인터럽트 집적 및 디버그부(150)는 제1 인터럽트(IRQ1)를 통과시킬 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따른 인터럽트 집적 및 디버그부(150)는 디버깅 및 복원을 수행함으로써 상태 변화 인터럽트 또는 오동작 인터럽트를 자체적으로 처리할 수 있다. 또한, 인터럽트 집적 및 디버그부(150)는 집적을 수행함으로써 데이터 인터럽트들을 집적하여 관리할 수 있다.
따라서, 루트 컴플렉스(140)에서 발생하는 인터럽트들에 대한 중앙 처리부(110)의 업무 부하가 감소되고, 중앙 처리부(110)의 자원 효율이 향상될 수 있다.
도 8은 도 1의 컴퓨팅 장치(10)의 응용 예를 보여준다. 도 8을 참조하면, 컴퓨팅 장치(10a)는 프로세서(100a) 및 장치(200)를 포함할 수 있다. 프로세서(100a) 및 장치(200)의 구성 요소들은 도 1의 프로세서(100) 및 장치(200)의 구성 요소들과 동일하다. 따라서, 중복되는 설명은 생략된다.
도 1과 비교하면, 도 8의 루트 컴플렉스(140)가 출력하는 제1 인터럽트들(IRQ1a, IRQ1b) 중 일부(IRQ1a)는 인터럽트 집적 및 디버그부(150)로 전달되고, 나머지 일부(IRQ1b)는 중앙 처리부(110)로 직접 전달될 수 있다. 일부 인터럽트들(IRQ1a)의 종류 및 나머지 일부 인터럽트들(IRQ1b)의 종류는 제2 인터페이스(142)를 통해 조절될 수 있다.
도 9는 본 발명의 다른 실시 예에 따른 컴퓨팅 장치(20)를 보여주는 블록도이다. 예를 들어, 컴퓨팅 장치(20)는 스마트폰, 스마트패드, 스마트텔레비전, 스마트시계, 웨어러블 장치 중 적어도 하나를 형성할 수 있다.
도 1 및 도 9를 참조하면, 컴퓨팅 장치(20)는 프로세서(100b), 장치들(200a), 랜덤 액세스 메모리(21), 안테나(22), 전력 관리 장치(23), 전력 공급 장치(24), 표시 장치(25), 카메라(26), 오디오 입력 장치(27), 그리고 오디오 출력 장치(28)를 포함한다.
프로세서(100b)는 응용 프로세서일 수 있다. 프로세서(100b)는 도 1 또는 도 8을 참조하여 설명된 프로세서(100 또는 100a)를 포함할 수 있다. 예를 들어, 프로세서(100a)는 도 1을 참조하여 설명된 중앙 처리부(110), 버스(120), 브릿지(130), 루트 컴플렉스(140), 인터럽트 집적 및 디버그부(150), 그리고 클럭 생성기(160)를 포함할 수 있다.
프로세서(100b)는 도 1 또는 도 8을 참조하여 설명된 프로세서(100 또는 100a)와 같이, 인터럽트에 따라 디버깅, 복원 및 집적(aggregation)을 수행할 수 있다. 도 1 또는 도 8을 참조하여 설명된 프로세서(100 또는 100a)와 달리, 프로세서(100b)는 오디오 코덱(170) 및 비디오 코덱(180)을 더 포함할 수 있다.
오디오 코덱(170)은 오디오 데이터를 생성 또는 저장하고 그리고 재생할 수 있다. 예를 들어, 오디오 코덱(300)은 오디오 입력 장치(27)에 의해 획득되는 신호를 코딩하여 오디오 데이터를 생성할 수 있다. 오디오 코덱(170)은 오디오 입력 장치(27)에 의해 생성된 오디오 데이터 또는 스토리지 장치(211a) 또는 랜덤 액세스 메모리(21)에 저장된 오디오 데이터를 디코딩하여 오디오 출력 장치(28)를 통해 재생할 수 있다.
비디오 코덱(180)은 비디오 데이터를 생성 또는 재생할 수 있다. 예를 들어, 비디오 코덱(180)은 카메라(26)에 의해 획득되는 데이터를 인코딩하여 비디오 데이터를 생성할 수 있다. 비디오 코덱(180)은 카메라(26)에 의해 생성된 비디오 데이터 또는 스토리지 장치(211a) 또는 랜덤 액세스 메모리(21)에 저장된 비디오 데이터를 디코딩하여 디스플레이 장치(25)를 통해 재생할 수 있다.
장치들(200a)은 프로세서(100b)와 통신할 수 있다. 장치들(200a)은 모뎀(210a), 스토리지 장치(211a), 그리고 뉴로모픽 장치(212a)를 포함할 수 있다. 모뎀(210a), 스토리지 장치(211a), 그리고 뉴로모픽 장치(212a)는 도 1 내지 도 7을 참조하여 설명된 바에 따라 프로세서(100b)와 통신할 수 있다.
예를 들어, 모뎀(210a), 스토리지 장치(211a), 그리고 뉴로모픽 장치(212a) 각각은 종말 인터페이스(201)를 포함하고, 종말 인터페이스(201)를 통해 프로세서(100b)와 통신할 수 있다. 프로세서(100b)의 인터럽트 집적 및 디버그부(150)는 모뎀(210a), 스토리지 장치(211a), 그리고 뉴로모픽 장치(212a) 각각의 종말 인터페이스(201)를 디버깅 및 복원할 수 있다.
모뎀(210a)은 안테나(22)를 통해 외부 장치와 통신할 수 있다. 예를 들어, 모뎀(210a)은 LTE (Long Term Evolution), 와이맥스(WiMax), GSM (Global System for Mobile communication), CDMA (Code Division Multiple Access), 블루투스(Bluetooth), NFC (Near Field Communication), 와이파이(WiFi), RFID (Radio Frequency IDentification) 등과 같은 다양한 무선 통신 방식들 중 적어도 하나에 기반하여 통신을 포함할 수 있다.
모뎀(210a)은 USB (Universal Serial Bus), SATA (Serial AT Attachment), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), 파이어와이어(Firewire), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), SDIO, UART (Universal Asynchronous Receiver Transmitter), SPI (Serial Peripheral Interface), HS-SPI (High Speed SPI), RS232, I2C (Inter-integrated Circuit), HS-I2C, I2S, (Integrated-interchip Sound), S/PDIF (Sony/Philips Digital Interface), MMC (MultiMedia Card), eMMC (embedded MMC) 등과 같은 다양한 유선 통신 방식들 중 적어도 하나에 기반하여 통신을 수행할 수 있다.
스토리지 장치(211a)는 프로세서(100b)의 보조기억장치로 사용될 수 있다. 예를 들어, 프로세서(100b)에 의해 실행되는 운영 체제 또는 다양한 응용들의 소스 코드들, 운영 체제 또는 응용들에 의해 장기적인 저장을 목적으로 생성되는 다양한 데이터가 스토리지 장치(211a)에 저장될 수 있다.
스토리지 장치(211a)는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), FeRAM (Ferroelectric RAM), RRAM (Resistive RAM) 등과 같은 불휘발성 메모리에 기반한 솔리드 스테이트 드라이브(SSD)를 포함할 수 있다.
뉴로모픽 장치(212a)는 기계 학습을 수행할 수 있다. 예를 들어, 뉴로모픽 장치(212a)는 프로세서(100b)로부터 정보를 수신하고, 정보에 기반하여 기계 학습을 수행할 수 있다. 기계 학습의 결과로, 뉴로모픽 장치(212a)는 분류자(classifier)를 생성할 수 있다.
분류자(classifier)는 특정한 정보가 입력될 때에, 특정한 정보와 연관된 결과를 분류하여 출력할 수 있다. 뉴로모픽 장치(212a)는 정보를 통해 분류를 수행하고, 분류의 결과와 실제 결과의 차이를 피드백함으로써, 기계 학습을 수행할 수 있다.
뉴로모픽 장치(212a)는 기계 학습에 의해 생성된 분류자를 구동하도록 구성될 수 있다. 뉴로모픽 장치(212a)는 프로세서(100b)로부터 특정한 정보를 수신하고, 특정한 정보와 연관된 결과를 분류할 수 있다. 뉴로모픽 장치(212a)는 분류의 결과를 프로세서(100b)로 반환할 수 있다.
뉴로모픽 장치(212a)는 다수의 병렬 연산에 적합하도록 구성될 수 있다. 예를 들어, 뉴로모픽 장치(212a)는 그래픽 처리부(GPU, Graphic Processing Unit)에 기반한 구조 또는 병렬 연산을 수행하는 데에 적합하도록 특수하게 설계된 구조를 가질 수 있다.
랜덤 액세스 메모리(21)는 프로세서(100b)의 주기억장치로 사용될 수 있다. 예를 들어, 랜덤 액세스 메모리(21)는 프로세서(100b)에 의해 처리되는 다양한 데이터 및 프로세스 코드들을 저장할 수 있다. 랜덤 액세스 메모리(21)는 DRAM (Dynamic RAM), SRAM (Static RAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), FeRAM (Ferroelectric RAM), RRAM (Resistive RAM) 등을 포함할 수 있다.
전력 관리 장치(23)는 전력 공급 장치(24)로부터 공급되는 전력을 컴퓨팅 장치(20)의 구성 요소들에 분배 또는 공급할 수 있다. 전력 관리 장치(23)는 컴퓨팅 장치(20)의 상태 또는 컴퓨팅 장치(20)에 의해 수행되는 작업의 양에 따라, 컴퓨팅 장치(20)의 구성 요소들에 분배 또는 공급되는 전력의 양을 조절할 수 있다.
예를 들어, 전력 관리 장치(23)는 컴퓨팅 장치(20) 또는 컴퓨팅 장치(20)의 구성 요소들 각각의 절전 모드를 제어할 수 있다. 전력 공급 장치(24)는 건물과 같은 인공적인 구조물에 설치된 전원 또는 휴대용 배터리를 포함할 수 있다.
표시 장치(25)는 비디오 코덱(180)에 의해 재생되는 비디오 데이터를 표시할 수 있다. 예를 들어, 표시 장치(25)는 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode), AMOLED (Active Matrix OLED), 플렉서블 디스플레이, 전자잉크 등을 포함할 수 있다.
오디오 입력 장치(27)는 외부의 소리를 오디오 데이터로 변환할 수 있다. 오디오 입력 장치(27)는 마이크로폰 등을 포함할 수 있다. 오디오 출력 장치(28)는 오디오 데이터를 소리로 변환할 수 있다. 오디오 출력 장치는 스피커, 이어폰 등을 포함할 수 있다.
상술된 실시 예에서, 오디오 코덱(170) 및 비디오 코덱(180)은 프로세서(100b)에 포함되는 것으로 설명되었다. 그러나 오디오 코덱(170) 또는 비디오 코덱(180)은 프로세서(100b)의 외부에 배치될 수 있다. 오디오 코덱(170) 또는 비디오 코덱(180)은 종말 인터페이스(201)를 포함하고, 종말 인터페이스(201)를 통해 프로세서(100b)와 통신하도록 변경될 수 있다.
예시적으로, 모뎀(210a)은 프로세서(100b)의 내부 및 외부에 분할되어 배치될 수 있다. 예를 들어, LTE를 위한 모뎀은 프로세서(100b)의 내부에 배치되고, 와이파이를 위한 모뎀은 프로세서(100b)의 외부에 장치들(200a)의 일부로 배치될 수 있다.
도 10은 본 발명의 실시 예에 따른 전장 프로세서(100c) 및 전장 장치들(200b)을 보여준다. 도 9를 참조하면, 전장 프로세서(100c)는 도 1 내지 도 8을 참조하여 설명된 프로세서(100 또는 100a)를 포함할 수 있다. 예를 들어, 전장 프로세서(100c)는 중앙 처리부, 버스(120), 브릿지(130), 루트 컴플렉스(140), 그리고 인터럽트 집적 및 디버그부(150)를 포함할 수 있다.
전장 프로세서(100c)는 루트 컴플렉스(140)를 통해 전장 장치들(200b)과 통신할 수 있다. 전장 프로세서(100c)의 인터럽트 집적 및 디버그부(150)는 루트 컴플렉스(140) 및 전장 장치들(200b) 각각의 종말 인터페이스(201)의 디버깅 및 복원을 수행할 수 있다. 전장 프로세서(100c)의 인터럽트 집적 및 디버그부(150)는 데이터 인터럽트들을 집적하여 관리할 수 있다.
전장 장치들(200b)은 브레이크 제어기(210b), 조향 제어기(211b), 파워 트레인 제어기(212b), 램프 제어기(213b), 이미지 센서(214b), 엔진 제어기(215b), 배터리 제어기(216b), 와이퍼 제어기(217b), 안전 제어기(218b), 그리고 표시 제어기(219b)를 포함할 수 있다.
브레이크 제어기(210b), 조향 제어기(211b), 파워 트레인 제어기(212b), 램프 제어기(213b), 이미지 센서(214b), 엔진 제어기(215b), 배터리 제어기(216b), 와이퍼 제어기(217b), 안전 제어기(218b), 그리고 표시 제어기(219b) 각각은 종말 인터페이스(201)를 포함하고, 종말 인터페이스(201)를 통해 전장 프로세서(100c)와 통신할 수 있다.
브레이크 제어기(210b)는 브레이크의 상태를 감지하는 센서들을 포함할 수 있다. 브레이크 제어기(210b)는 센서들의 감지 결과를 종말 인터페이스(201)를 통해 전장 프로세서(100c)로 전송할 수 있다. 브레이크 제어기(210b)는 브레이크를 제어하기 위한 제어기를 더 포함할 수 있다. 브레이크 제어기(210b)는 제어 명령을 전장 프로세서(100c)로부터 종말 인터페이스(201)를 통해 수신할 수 있다. 브레이크 제어기(210b)는 제어 명령에 따라 브레이크를 제어할 수 있다.
조향 제어기(211b)는 조향기의 상태를 감지하는 센서들을 포함할 수 있다. 조향 제어기(211b)는 센서들의 감지 결과를 종말 인터페이스(201)를 통해 전장 프로세서(100c)로 전송할 수 있다. 조향 제어기(211b)는 조향기를 제어하기 위한 제어기를 더 포함할 수 있다. 조향 제어기(211b)는 제어 명령을 전장 프로세서(100c)로부터 종말 인터페이스(201)를 통해 수신할 수 있다. 조향 제어기(211b)는 제어 명령에 따라 조향기를 제어할 수 있다.
마찬가지로, 파워 트레인 제어기(212b)는 파워 트레인에 대한 센서들의 감지 결과를 전장 프로세서(100c)로 전송할 수 있다. 파워 트레인 제어기(212b)는 전장 프로세서(100c)로부터의 제어 명령에 따라, 파워 트레인을 제어할 수 있다. 램프 제어기(213b)는 램프들에 대한 센서들의 감지 결과를 전장 프로세서(100c)로 전송할 수 있다. 램프 제어기(213b)는 전장 프로세서(100c)로부터의 제어 명령에 따라, 램프들을 제어할 수 있다.
이미지 센서(214b)는 시야 범위 내의 장면을 영상 데이터로 인코딩하고, 영상 데이터를 전장 프로세서(100c)로 전송할 수 있다. 엔진 제어기(215b)는 엔진에 대한 센서들의 감지 결과를 전장 프로세서(100c)로 전송할 수 있다. 엔진 제어기(215b)는 전장 프로세서(100c)로부터의 제어 명령에 따라, 엔진을 제어할 수 있다.
배터리 제어기(216b)는 배터리의 상태에 대한 정보를 전장 프로세서(100c)로 전송할 수 있다. 배터리 제어기(216b)는 전장 프로세서(100c)로부터의 제어 명령에 따라, 배터리의 설정을 제어할 수 있다. 와이퍼 제어기(217b)는 외부 환경(예를 들어, 우천 여부)에 대한 센서들의 감지 결과를 전장 프로세서(100c)로 전송할 수 있다. 와이퍼 제어기(217b)는 전장 프로세서(100c)로부터의 제어 명령에 따라, 와이퍼들을 제어할 수 있다.
안전 제어기(218b)는 안전벨트, 에어백, 전자 제어 서스펜션(ECS, Electronic Controlled Suspension) 등과 같은 안전 장치들에 대한 센서들의 감지 결과를 전장 프로세서(100c)로 전송할 수 있다. 다른 예로서, 안전 제어기(218b)는 외부 환경(예를 들어, 기울어짐, 낙하, 충돌 등)에 대한 감지 결과를 전장 프로세서(100c)로 전송할 수 있다. 안전 제어기(218b)는 전장 프로세서(100c)로부터의 제어 명령에 따라, 안전 장치들을 제어할 수 있다.
표시 제어기(219b)는 외부 환경(예를 들어, 조도, 이동 속도 등)에 대한 센서들의 감지 결과를 전장 프로세서(100c)로 전송할 수 있다. 전장 프로세서(100c)로부터의 제어 명령에 따라, 표시 제어기(219b)는 표시 장치의 조도를 조절하거나 표시되는 콘텐츠를 제한할 수 있다.
상술된 실시 예들에서, "블록"의 용어를 사용하여 본 발명의 실시 예들에 따른 구성 요소들이 참조되었다. "블록"은 IC (Integrated Circuit), ASIC (Application Specific IC), FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device) 등과 같은 다양한 하드웨어 장치들, 하드웨어 장치들에서 구동되는 펌웨어, 응용과 같은 소프트웨어, 또는 하드웨어 장치와 소프트웨어가 조합된 형태로 구현될 수 있다. 또한, "블록"은 IC 내의 반도체 소자들로 구성되는 회로들 또는 IP (Intellectual Property)를 포함할 수 있다.
상술된 실시 예들에서 별도로 정의되지 않더라도, 상술된 실시 예들에서 언급되는 구성 요소들은 다양한 하드웨어 장치들, 하드웨어 장치들에서 구동되는 펌웨어, 응용과 같은 소프트웨어, 또는 하드웨어 장치와 소프트웨어가 조합된 형태로, 또는 IP로 구현될 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 프로세서 110: 중앙 처리부
111: 제1 인터페이스 113: 인터럽트 제어기
120: 버스 130: 브릿지
140: 루트 컴플렉스 141: 제1 인터페이스
142: 제2 인터페이스 143: 제어기
144: 레지스터 145: 물리 블록
146: 위상 고정 루프 150: 인터럽트 집적 및 디버그부

Claims (20)

  1. 중앙 처리부;
    상기 중앙 처리부의 제어에 따라 적어도 하나의 외부 장치와 통신하고, 그리고 동작 상태가 변화할 때에 상태 변화 인터럽트를 발생하도록 구성되는 루트 컴플렉스(root complex); 그리고
    상기 상태 변화 인터럽트에 따라 상기 상태 변화 인터럽트와 연관된 적어도 하나의 구성 요소에 대해 디버깅을 수행하도록 구성되는 인터럽트 집적 및 디버그부를 포함하고,
    상기 루트 컴플렉스는 상기 루트 컴플렉스의 절전 상태가 변화할 때에 상기 상태 변화 인터럽트를 발생하는 응용 프로세서.
  2. 제1항에 있어서,
    상기 절전 상태의 변화는 능동 상태 전력 관리(ASPM, Active State Power Management)에 따른 변화를 포함하는 응용 프로세서.
  3. 제1항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 루트 컴플렉스의 레지스터들을 체크함으로써 상기 디버깅을 수행하는 응용 프로세서.
  4. 제1항에 있어서,
    상기 중앙 처리부와 연결되고, 제1 통신 방식에 따라 상기 중앙 처리부와 통신하도록 구성되는 버스; 그리고
    상기 버스와 연결되고, 상기 제1 통신 방식을 제2 통신 방식으로 변경하도록 구성되는 브릿지를 더 포함하고,
    상기 루트 컴플렉스는 상기 제1 통신 방식에 따라 상기 버스와 통신하는 제1 인터페이스 및 상기 제2 통신 방식에 따라 상기 브릿지와 통신하는 제2 인터페이스를 포함하는 응용 프로세서.
  5. 제4항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 버스 및 상기 제1 인터페이스를 통해 상기 루트 컴플렉스의 레지스터들을 체크함으로써 상기 디버깅을 수행하는 응용 프로세서.
  6. 제4항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 버스 및 상기 루트 컴플렉스를 통해 상기 루트 컴플렉스와 연결된 외부 장치의 레지스터들을 체크함으로써 상기 디버깅을 수행하는 응용 프로세서.
  7. 제4항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 버스, 상기 브릿지 및 상기 제2 인터페이스를 통해 상기 제2 인터페이스와 연관된 레지스터들을 체크함으로써 상기 디버깅을 수행하는 응용 프로세서.
  8. 제1항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 디버깅의 결과에 따라 상기 루트 컴플렉스의 오동작을 복원하도록 더 구성되는 응용 프로세서.
  9. 제8항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 디버깅의 상기 결과에 따라 상기 루트 컴플렉스의 레지스터의 값을 초기화함으로써 상기 오동작의 복원을 수행하는 응용 프로세서.
  10. 제8항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 디버깅의 상기 결과에 따라 상기 루트 컴플렉스를 통해 상기 루트 컴플렉스에 연결된 외부 장치의 레지스터의 값을 초기화함으로써 상기 오동작의 복원을 수행하는 응용 프로세서.
  11. 제1항에 있어서,
    상기 루트 컴플렉스는 위상 고정 루프를 포함하고,
    상기 디버깅은 상기 위상 고정 루프의 고정(locking)이 성공하였는지 체크하는 것을 포함하는 응용 프로세서.
  12. 제11항에 있어서,
    상기 위상 고정 루프의 상기 고정이 실패하였으면, 상기 인터럽트 집적 및 디버그부는 상기 위상 고정 루프를 초기화하는 복원을 수행하도록 더 구성되는 응용 프로세서.
  13. 제1항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 상태 변화 인터럽트를 상기 중앙 처리부로 전달하지 않고 삭제하도록 더 구성되는 응용 프로세서.
  14. 제1항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 루트 컴플렉스로부터 집적 지정 인터럽트가 수신될 때에 인터럽트 카운트를 증가시키고, 상기 인터럽트 카운트가 문턱값에 도달하면 상기 중앙 처리부로 인터럽트를 전달하도록 더 구성되는 응용 프로세서.
  15. 제1항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 루트 컴플렉스로부터 복수의 인터럽트들을 수신하고, 상기 복수의 인터럽트들 중에서 제1 인터럽트들을 상기 중앙 처리부로 전달하고, 그리고 상기 복수의 인터럽트들 중 제2 인터럽트들을 집적하는 응용 프로세서.
  16. 제15항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 제2 인터럽트들을 상기 중앙 처리부로 전달하지 않고 집적하는 응용 프로세서.
  17. 중앙 처리부;
    동작 상태가 변할 때, 상기 중앙 처리부의 제어에 따라 적어도 하나의 외부 장치와 통신하고, 그리고 인터럽트를 발생하도록 구성되는 루트 컴플렉스(root complex); 그리고
    상기 인터럽트에 따라 상기 인터럽트와 연관된 적어도 하나의 구성 요소에 대해 디버깅을 수행하도록 구성되는 인터럽트 집적 및 디버그부를 포함하고,
    상기 적어도 하나의 외부 장치는 브레이크 제어기, 조향 제어기, 파워 트레인 제어기, 램프 제어기, 이미지 센서, 엔진 제어기, 배터리 제어기, 와이퍼 제어기, 안전 제어기, 그리고 표시 제어기 중 적어도 하나를 포함하고, 그리고
    상기 인터럽트 집적 및 디버그부는 상기 인터럽트를 상기 중앙 처리부로 전달하지 않고 삭제하도록 더 구성되는 전장 프로세서.
  18. 제17항에 있어서,
    상기 인터럽트 집적 및 디버그부는 상기 디버깅의 결과에 따라 오동작의 복원을 수행하도록 더 구성되는 전장 프로세서.
  19. 서로 통신하도록 구성되는 응용 프로세서 및 장치를 포함하고,
    상기 응용 프로세서는:
    중앙 처리부;
    상기 장치와 통신하도록 구성되는 루트 컴플렉스(Root Complex);
    상기 중앙 처리부와 상기 루트 컴플렉스를 연결하는 버스; 그리고
    상기 버스를 통해 상기 루트 컴플렉스와 통신하는 인터럽트 집적 및 디버그부를 포함하고,
    상기 장치는 상기 루트 컴플렉스와 통신하도록 구성되는 종말(End Point) 인터페이스를 포함하고,
    상기 인터럽트 집적 및 디버그부는 상기 루트 컴플렉스의 상태의 변화를 가리키는 상태 변화 인터럽트에 따라 상기 루트 컴플렉스 및 상기 종말 인터페이스의 디버깅을 수행하고, 상기 루트 컴플렉스가 상기 종말 인터페이스와 통신함에 따라 데이터 인터럽트가 발생하면 인터럽트 카운트를 증가시키고, 그리고 상기 인터럽트 카운트가 문턱값에 도달하면 인터럽트를 상기 중앙 처리부로 전달하도록 구성되는 컴퓨팅 장치.
  20. 제19항에 있어서,
    상기 장치는 와이파이 모뎀, 솔리드 스테이트 드라이브, 그리고 뉴로모픽 장치 중 적어도 하나를 포함하는 컴퓨팅 장치.
KR1020180013950A 2018-02-05 2018-02-05 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치 KR102504660B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020180013950A KR102504660B1 (ko) 2018-02-05 2018-02-05 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치
US16/058,713 US10853214B2 (en) 2018-02-05 2018-08-08 Application processor, automotive electronic processor, and computing device including application processor
TW107145762A TWI752291B (zh) 2018-02-05 2018-12-18 應用處理器、汽車電子處理器、以及包含應用處理器的計算裝置
DE102018132807.9A DE102018132807A1 (de) 2018-02-05 2018-12-19 Anwendungsprozessor, elektronischer Fahrzeugprozessor und Berechnungsvorrichtung mit Anwendungsprozessor
CN201910001321.6A CN110119374A (zh) 2018-02-05 2019-01-02 应用处理器、汽车电子处理器和计算装置
SG10201900247XA SG10201900247XA (en) 2018-02-05 2019-01-11 Application processor, automotive electronic processor, and computing device including application processor
US17/087,666 US11366732B2 (en) 2018-02-05 2020-11-03 Application processor, automotive electronic processor, and computing device including application processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180013950A KR102504660B1 (ko) 2018-02-05 2018-02-05 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치

Publications (2)

Publication Number Publication Date
KR20190094615A KR20190094615A (ko) 2019-08-14
KR102504660B1 true KR102504660B1 (ko) 2023-03-02

Family

ID=67308659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180013950A KR102504660B1 (ko) 2018-02-05 2018-02-05 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치

Country Status (6)

Country Link
US (2) US10853214B2 (ko)
KR (1) KR102504660B1 (ko)
CN (1) CN110119374A (ko)
DE (1) DE102018132807A1 (ko)
SG (1) SG10201900247XA (ko)
TW (1) TWI752291B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949586B1 (en) * 2020-07-01 2021-03-16 Xilinx, Inc. Post-synthesis insertion of debug cores
US11803668B2 (en) 2021-07-30 2023-10-31 Nvidia Corporation Isolating a region of a system on a chip for safety critical operations
CN116075810A (zh) * 2021-07-30 2023-05-05 辉达公司 隔离片上系统的区域以进行安全关键性操作
US20230324978A1 (en) * 2022-04-06 2023-10-12 Hewlett-Packard Development Company, L.P. Power saving feature controls for add-in cards

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225694A (ja) 2007-03-09 2008-09-25 Ricoh Co Ltd 半導体集積回路及びエラー解析方法
JP2010122858A (ja) 2008-11-19 2010-06-03 Ricoh Co Ltd 半導体回路及び信号伝送システム
US20160187952A1 (en) 2014-12-24 2016-06-30 Intel Corporation Method and apparatus to control a link power state
US20160224442A1 (en) 2015-02-04 2016-08-04 Apple Inc. Methods and apparatus for controlled recovery of error information between independently operable processors

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511204A (en) * 1994-09-07 1996-04-23 International Business Machines Corporation Performing system tasks at power-off using system management interrupt
US6385683B1 (en) 1999-08-13 2002-05-07 Lsi Logic Corporation Methods and apparatus for raid hardware sequencing to achieve a higher performance raid architecture
US6754690B2 (en) 1999-09-16 2004-06-22 Honeywell, Inc. Method for time partitioned application scheduling in a computer operating system
JP2006139548A (ja) 2004-11-12 2006-06-01 Hitachi Global Storage Technologies Netherlands Bv メディア・ドライブ及びそのコマンド実行方法
US20080147905A1 (en) 2006-12-15 2008-06-19 Infineon Technologies Ag Method and system for generating a DMA controller interrupt
US8275975B2 (en) 2008-01-25 2012-09-25 Mtekvision Co., Ltd. Sequencer controlled system and method for controlling timing of operations of functional units
US8151145B2 (en) 2008-04-03 2012-04-03 Oracle America, Inc. Flow control timeout mechanism to detect PCI-express forward progress blockage
US8898448B2 (en) 2008-06-19 2014-11-25 Qualcomm Incorporated Hardware acceleration for WWAN technologies
CN102549555B (zh) * 2009-10-07 2015-04-22 惠普发展公司,有限责任合伙企业 主机存储器的基于通知协议的端点高速缓存
US8566495B2 (en) 2009-11-06 2013-10-22 Qualcomm Incorporated Systems, methods and apparatus for data communication
US8689028B2 (en) * 2011-07-01 2014-04-01 Intel Corporation Method and apparatus to reduce idle link power in a platform
GB2497966A (en) 2011-12-23 2013-07-03 Renesas Mobile Corp Interrupt event management
US8914566B2 (en) * 2012-06-19 2014-12-16 Teradyne, Inc. Managing interrupts
US9043457B2 (en) 2012-10-25 2015-05-26 Qualcomm Incorporated Dynamic adjustment of an interrupt latency threshold and a resource supporting a processor in a portable computing device
US9363468B2 (en) 2013-02-19 2016-06-07 American Megatrends, Inc. Vehicle video display system
EP2962210A4 (en) * 2013-02-28 2016-11-02 Intel Corp OPERATING A MECHANISM FOR ENUMERATION AND / OR CONFIGURATION OF AN INTERCONNECTION PROTOCOL FOR A DIFFERENT INTERCONNECTION PROTOCOL
JP2015064676A (ja) * 2013-09-24 2015-04-09 株式会社東芝 情報処理装置、半導体装置、情報処理方法およびプログラム
US9255968B2 (en) * 2013-11-22 2016-02-09 Altera Corporation Integrated circuit with a high-speed debug access port
US9396142B2 (en) * 2014-06-10 2016-07-19 Oracle International Corporation Virtualizing input/output interrupts
US20160124874A1 (en) 2014-10-30 2016-05-05 Sandisk Technologies Inc. Method and apparatus for interrupt coalescing
US9747245B2 (en) * 2014-12-17 2017-08-29 Intel Corporation Method, apparatus and system for integrating devices in a root complex
JP6582503B2 (ja) 2015-04-08 2019-10-02 富士通株式会社 情報処理装置
JP6617439B2 (ja) 2015-06-01 2019-12-11 日本電気硝子株式会社 ガラス物品の製造装置
KR20170032502A (ko) 2015-09-14 2017-03-23 삼성전자주식회사 스토리지 장치 및 그것의 인터럽트 발생 방법
US10860374B2 (en) 2015-09-26 2020-12-08 Intel Corporation Real-time local and global datacenter network optimizations based on platform telemetry data
US20170091013A1 (en) 2015-09-28 2017-03-30 Netapp, Inc. Pcie error reporting and throttling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225694A (ja) 2007-03-09 2008-09-25 Ricoh Co Ltd 半導体集積回路及びエラー解析方法
JP2010122858A (ja) 2008-11-19 2010-06-03 Ricoh Co Ltd 半導体回路及び信号伝送システム
US20160187952A1 (en) 2014-12-24 2016-06-30 Intel Corporation Method and apparatus to control a link power state
US20160224442A1 (en) 2015-02-04 2016-08-04 Apple Inc. Methods and apparatus for controlled recovery of error information between independently operable processors

Also Published As

Publication number Publication date
US20210049084A1 (en) 2021-02-18
TW201935258A (zh) 2019-09-01
US20190243736A1 (en) 2019-08-08
CN110119374A (zh) 2019-08-13
US11366732B2 (en) 2022-06-21
US10853214B2 (en) 2020-12-01
DE102018132807A1 (de) 2019-08-08
KR20190094615A (ko) 2019-08-14
TWI752291B (zh) 2022-01-11
SG10201900247XA (en) 2019-09-27

Similar Documents

Publication Publication Date Title
KR102504660B1 (ko) 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치
US8892944B2 (en) Handling a failed processor of multiprocessor information handling system
EP3123312B1 (en) In-system provisioning of firmware for a hardware platform
KR101832953B1 (ko) 모바일 디바이스의 어플리케이션 프로세서의 원격 시동
US9152205B2 (en) Mechanism for facilitating faster suspend/resume operations in computing systems
WO2019084916A1 (zh) 恢复fpga芯片中的逻辑的方法、系统和fpga设备
US20210081538A1 (en) Early platform hardening technology for slimmer and faster boot
US9983889B1 (en) Booting of integrated circuits
US10678623B2 (en) Error reporting and handling using a common error handler
US11686767B2 (en) System, apparatus and method for functional testing of one or more fabrics of a processor
US20150113355A1 (en) Data storage device
US20200192832A1 (en) Influencing processor governance based on serial bus converged io connection management
US10181975B2 (en) Override subsystems for rapid recovery from serial-link errors
KR101577936B1 (ko) 인텔리전트 듀얼 데이터 레이트 (ddr) 메모리 제어기
US20150333735A1 (en) Block partition to minimize power leakage
US11422896B2 (en) Technology to enable secure and resilient recovery of firmware data
US20210357202A1 (en) Firmware updating
EP3905005A1 (en) Verified high-power transition and fast charging with pre-boot scaling
KR20160128751A (ko) 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
CN114546435A (zh) 基于smm信任根的无缝smm全局驱动程序更新
US20140095859A1 (en) Apparatus and method for managing register information in a processing system
US10389851B2 (en) Performing power management during a download and execute operation
CN110008071B (zh) 一种远程调试装置及方法
WO2023010265A1 (en) Firmware update technologies
US20230144332A1 (en) Technology to automatically conduct speed switching in processor links without warm resets

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant