KR20190114747A - 프로세서 모니터링 소프트웨어를 지원하기 위한 임베디드 비휘발성 랜덤 액세스 메모리를 갖는 프로세서 - Google Patents

프로세서 모니터링 소프트웨어를 지원하기 위한 임베디드 비휘발성 랜덤 액세스 메모리를 갖는 프로세서 Download PDF

Info

Publication number
KR20190114747A
KR20190114747A KR1020190022615A KR20190022615A KR20190114747A KR 20190114747 A KR20190114747 A KR 20190114747A KR 1020190022615 A KR1020190022615 A KR 1020190022615A KR 20190022615 A KR20190022615 A KR 20190022615A KR 20190114747 A KR20190114747 A KR 20190114747A
Authority
KR
South Korea
Prior art keywords
processor
random access
memory
access memory
reliability
Prior art date
Application number
KR1020190022615A
Other languages
English (en)
Inventor
브루스 퀘르바흐
크리스토퍼 코너
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20190114747A publication Critical patent/KR20190114747A/ko

Links

Images

Classifications

    • 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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • 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)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Microcomputers (AREA)
  • Power Sources (AREA)

Abstract

방법이 설명된다. 이 방법은 프로세서의 신뢰성, 전력 소비 및 성능을 모니터링하는 단계, 및 프로세서의 신뢰성, 전력 소비 및 성능 데이터를 프로세서의 반도체 칩에 통합된 임베디드 비휘발성 랜덤 액세스 메모리에 기입하는 단계를 포함한다.

Description

프로세서 모니터링 소프트웨어를 지원하기 위한 임베디드 비휘발성 랜덤 액세스 메모리를 갖는 프로세서{PROCESSOR HAVING EMBEDDED NON-VOLATILE RANDOM ACCESS MEMORY TO SUPPORT PROCESSOR MONITORING SOFTWARE}
본 발명의 분야는 일반적으로 컴퓨팅 과학에 관한 것으로, 보다 구체적으로는 프로세서 모니터링 소프트웨어를 지원하기 위한 임베디드 비휘발성 랜덤 액세스 메모리를 갖는 프로세서에 관한 것이다.
현대의 프로세서들은 프로세서의 예측된 장애 시간(신뢰성), 전력 소비, 및 런타임 성능 중 하나 이상을 모니터링하도록 설계된 저수준 소프트웨어를 통상 실행한다.
예를 들어, 그러한 저수준 소프트웨어는 프로세서에 대한 장애율 및/또는 예상 프로세서 수명을 결정하는 신뢰성 수학식들을 실행할 수 있다. 유사하게, 저수준 소프트웨어는 또한 프로세서의 인가된 공급 전압(들), 전류 인출(들), 및/또는 온도(들)로부터 프로세서의 전력 소비를 결정할 수 있다. 런타임 성능의 경우에, 대량의 통계 및/또는 다른 정보가 전형적으로 프로세서에 의해 생성되어, 그의 런타임 성능(예를 들어, 에러 로그들, 단위 시간당 실행되는 명령어들, 단위 시간당 메모리 액세스들 등)의 특성을 "보고"한다.
문제는 신뢰성, 전력 소비, 및 런타임 성능 소프트웨어 프로그램들 각각이 어떤 방식으로 비휘발성 메모리 또는 스토리지에 의존할 수 있다는 것이다. 예를 들어, 신뢰성 및 전력 소비 계산들의 경우에, 신뢰성 및/또는 전력 소비 수학식들에 나타나는 특정 계수들에 대한 값들은 그 제조 동안 프로세서에 대해 행해진 파라메트릭 측정들에 기초하여 프로세서에 대해 고유하게 결정될 수 있다.
그 다음, 이러한 계수들은 프로세서로 전달되고, 프로세서가 그 내에 통합되는 컴퓨터의 BIOS(basic input/output system) 비휘발성 메모리에 임베디드된다. 런타임 동안, 이들 계수는 BIOS로부터 호출되어 신뢰성 및 전력 소비 수학식들이 적절히 실행될 수 있도록 한다. 더욱이, 신뢰성, 전력 소비 및 성능 통계 알고리즘들 중 임의의 것은 데이터를 지속시키기 위해 (전력 차단 이벤트의 경우에 손실되지 않을 것을 보장하기 위해) 비휘발성 메모리에 그들의 결과들을 저장할 수 있다.
여기서, 프로세서 반도체 칩으로부터 물리적으로 분리되는 비휘발성 메모리(예컨대, BIOS 플래시 메모리 칩 또는 비휘발성 대용량 스토리지 디바이스(예를 들어, 하드 디스크 드라이브, SSD(solid state drive) 등))에 대한 의존성은 구현의 비효율성 및 증가된 장애 위험성에 대응한다.
예를 들어, 프로세서가 자주 비휘발성 메모리에서의 계수들에 대한 액세스를 필요로 하는 경우, 프로세서는 물리적으로 개별 비휘발성 메모리로부터 계수들을 수신하기 위해 상당한 양의 시간을 대기하는데 허비할 수 있다. 부가적으로, 많은 양의 정보가 프로세서 또는 시스템 메모리로부터 비휘발성 메모리로 물리적으로 전달될 필요가 있기 때문에, 신뢰성, 전력 소비 또는 성능 통계 중 어느 것의 보고도 시스템 내에서 트래픽 혼잡을 도입할 수 있다. 또한, 정보가 비휘발성 메모리에 기입될 수 있기 전에 전달 동안 전력 차단이 발생하는 경우, 정보는 손실될 것이다. 그런 이벤트의 경우, 보수적인 신뢰성 추측들이 이루어져야 하는데, 이는 디바이스가 현실보다 더 비관적일 가능성이 있는 신뢰성 추측들을 취할 것이라는 점을 의미한다. 이후, 허용된 최대 성능은 그에 응답하여 해로운 방향으로 감소될 것이다.
이하 도면들과 연계된 이하의 상세한 설명으로부터 본 발명의 더 나은 이해가 얻어질 수 있다.
도 1은 임베디드 NVRAM을 갖는 프로세서를 도시한다.
도 2는 임베디드 NVRAM을 사용하는 신뢰성 모니터링 시스템을 도시한다.
도 3은 임베디드 NVRAM을 사용하는 전력 소비 모니터링 시스템을 도시한다.
도 4는 임베디드 NVRAM을 사용하는 성능 모니터링 시스템을 도시한다.
도 5는 수행하는 방법을 도시한다.
도 6은 프로세서 반도체 칩상의 임베디드 NVRAM으로 다양한 모니터링 작업을 수행할 수 있는 컴퓨팅 시스템을 도시한다.
도 1은 프로세서(100)상에서 실행되는 임의의 저수준의 신뢰성, 전력 소비 또는 성능 모니터링 소프트웨어 프로그램에 의해 활용되는 정보를 저장하는 데 사용되는 임베디드 비휘발성 메모리(101)(예를 들어, 임베디드 비휘발성 랜덤 액세스 메모리(eNVRAM))의 영역을 포함하도록 프로세서 반도체 칩(100)이 설계된 개선된 접근법을 도시한다.
여기서, 본 기술 분야에 공지된 바와 같이, 현대의 프로세서 반도체 칩은 전형적으로 완전한 컴퓨팅 시스템의 다른 컴포넌트들을 포함한다. 예를 들어, 도 1에 보이는 바와 같이, 프로세서 반도체 칩(100)은 전형적으로 다수의 중앙 처리 장치(CPU) 프로세싱 코어들(102_1 내지 102_N)(소프트웨어 프로그램 코드 명령어들을 실행함), (컴퓨터 시스템의 주 메모리와 인터페이스하기 위한) 주 메모리 제어기(103), (컴퓨팅 시스템의 주변 장치(예를 들어, 디스플레이, 키보드, 프린터, 비휘발성 대용량 저장 장치, 네트워크 인터페이스들(예를 들어, 이더넷 인터페이스 및/또는 무선 네트워크 인터페이스)) 등과 인터페이스하기 위한) 주변 장치 제어 허브 (104), 및 가능하게는 (그래픽 프로세싱 유닛(GPU) 및/또는 디지털 신호 처리기(DSP)와 같이) CPU 코어들로부터 특화된 및/또는 수치 집약적인 계산을 오프로드 (offload)하기 위한 특수 목적 프로세서(도 1에 묘사되지 않음)를 포함한다.
중요한 것은, 앞서 언급한 바와 같이, 도 1의 개선된 프로세서 반도체 칩(100)이 비휘발성 랜덤 액세스 메모리(NVRAM)(101)가 임베디드된 영역을 포함한다는 것이다. 수년 동안, 반도체 칩 제조 산업은, FeRAM(Ferroelectric random access memory), 유전체 랜덤 액세스 메모리, ReRAM(resistive random access memory), 멤리스터 랜덤 액세스 메모리, 상 변화 랜덤 액세스 메모리, 3차원 크로스포인트 랜덤 액세스 메모리, MRAM(magnetic random access memory), STT-MRAM(spin-torque transfer magnetic random access memory) 등과 같은 새롭게 부상하는 비휘발성 메모리 기술들에 대해 연구하고 있다.
다수의 이러한 기술들은 도 1에 묘사된 바와 같은 프로세서 반도체 칩(100)을 제조하는 데 사용되는 제조 공정과 같은 고밀도 로직 회로 제조 공정에 통합될 수 있다. 예를 들어, 부상하고 있는 비휘발성 메모리의 저장 셀들은 상이한 저항 상태들을 저장할 수 있고(셀은 그것이 1 또는 0으로 프로그래밍 되었는지에 의존하여 더 높은 저항 또는 더 낮은 저항을 드러냄) 반도체 기판 위의 반도체 칩의 야금(metallurgy)에 존재할 수 있다.
여기서, 예를 들어, 저장 셀은 직교 지향된 금속 배선들 사이에 상주할 수 있고, 3차원 크로스 포인트 구조체는 반도체 칩의 야금에 셀들 및 그들의 연관된 직교 배선을 적층함으로써 실현될 수 있다. 또한, 액세스 그래뉼래리티들은 (전통적으로 큰 섹터로만 또는 블록 기반 액세스들로만 데이터에 액세스하는) 전통적인 비휘발성 스토리지보다 훨씬 더 미세한 그래뉼래리티일 수 있다. 즉, 부상하고 있는 비휘발성 메모리는 메모리에 적용되는 어드레스 값당 바이트 레벨 그래뉼래리티 또는 그의 어떤 적당한 배수에서 데이터 액세스들을 지원할 수 있는 진정한 랜덤 액세스 메모리로서 작용하도록 설계될 수 있다.
프로세서(100)가 임베디드(온-다이) 비휘발성 랜덤 액세스 메모리(101)를 갖는 경우, 아키텍처적으로 더 콤팩트한 솔루션이 앞서 논의된 런타임 신뢰성 분석, 런타임 전력 소비 모니터링 및/또는 런타임 성능 모니터링 루틴들 중 임의의 것에 대해 실현될 수 있다. 도 2, 3 및 4는 제각기 그러한 솔루션들의 고수준 묘사들을 제공한다.
도 2는 신뢰성 모델들(211) 및 조합 모델(222)이 프로세서(200)의 로컬 임베디드 NVRAM(201)에 유지되는 신뢰성 모니터링 시스템을 도시한다. 여기서, 본 기술 분야에 공지된 바와 같이, 반도체 칩의 열화는 그 기본 물리적 메커니즘의 이해로부터 수학적으로 모델링될 수 있다. 예를 들어, 유전체 재료의 열화는 절연 파괴 또는 마모의 물리학의 이해로부터 수학적으로 모델링될 수 있다. 다양한 실시예에서, 프로세서의 장애율 또는 예상 장애 시간(예를 들어, 절연 파괴, 임계 전압 변동, 누설 전류, 고유 전하 손실, 일렉트로마이그레이션, 다이/패키지 크랙, (예를 들어, 외부 메모리 디바이스들에 대한) 판독 방해 등)을 결정하는데 있어서 고려될 각각의 상이한 물리적 열화 메커니즘에 대해 별개의 신뢰성 물리 모델이 인스턴스화된다. 따라서, 예를 들어, 물리 신뢰성 모델들(221) 중 첫번째 것은 절연 파괴 모델에 대응할 수 있고, 물리 신뢰성 모델들(221) 중 두번째 것은 임계 전압 변동 모델 등에 대응할 수 있다.
실시예에서, 각각의 신뢰성 물리 모델은 그 특정 장애 메커니즘에 대한 열화를 계산하는 데 사용되는 수학식 표현(들)의 디지털 표현으로 구성된다(대안적으로 실제 수학식은 열화의 특성화를 계산하는 신뢰성 소프트웨어에서 표현될 수 있다). 위에서 언급된 바와 같이, 각각의 수학적 표현은 특성화하도록 설계된 어떠한 열화 메커니즘이든지 이것의 기본적인 물리학의 이해로부터 도출된다. 추가적으로, 표현들은 그 제조 동안 프로세서 칩으로부터 수집되는 파라메트릭 데이터(예를 들어, 도펀트 농도들, 재료 두께들/폭들, 저항들 등)로부터 결정되는 계수들 또는 다른 상수들을 포함할 수 있다. 이러한 계수들은 NVRAM(201)에 저장되는 이들의 적절한 신뢰성 물리 모델에 포함된다.
다양한 실시예들에서, 신뢰성 모니터링 정보는 또한 조합 모델(222)을 포함한다. 여기서, 각각의 프로세서의 컴포넌트들에 대해 신뢰성 계산들이 개별적으로 이루어질 수 있다. 즉, 예를 들어, 개별적인 신뢰성 계산이 각각의 개별 CPU 코어(202_1, 202_2, ... 202_N), 주 메모리 제어기(203), 주변 장치 제어 허브(204) 등은 물론이고, 프로세서의 더 큰 컴퓨팅 시스템의 다른 컴포넌트들(예를 들어, 주 메모리 제어기(203)에 결합되는 컴퓨터의 시스템 메모리의 메모리 디바이스들)에 대해 이루어질 수 있다. 이러한 신뢰성 계산들 각각은 그 제각기 컴포넌트에 대한 장애율 및/또는 예상 장애 시간(예를 들어, 메모리 제어기(203)에 대한 장애율 및/또는 예상 장애 시간, 주변 장치 제어 허브(204)에 대한 장애율 및/또는 예상 장애 시간, 개별적으로 CPU 코어들 각각에 대한 개별 장애율 및/또는 예상 장애, 등등)을 개별적으로 결정할 수 있다.
여기서, 임의의 특정 컴포넌트의 장애의 성향은 그것의 스트레스(얼마나 실질적으로 그것이 이용되는지)의 함수이다. 더욱이, 프로세서(200)는 전형적으로 그들의 사용에 기초하여 상이한 컴포넌트들에 대한 공급 전압들 및/또는 클록 주파수들을 스로틀링할 전력 관리 하드웨어 및/또는 소프트웨어를 또한 포함한다(더 큰 활용을 견뎌내는 컴포넌트들은 더 큰 공급 전압 및/또는 클록 주파수들을 공급받고, 더 적은 활용을 견뎌내는 컴포넌트들은 더 적은 공급 전압들 및/또는 클록 주파수를 공급받음). 여기서, 더 높은 공급 전압들 및 더 높은 클록 주파수들은 일반적으로 더 높은 레벨의 스트레스 및 연관된 열화에 대응한다.
상이한 컴포넌트들이 다양한 활용률 및 그에 대응하여 상이한 스트레스 레벨들을 가질 수 있기 때문에, 상이한 컴포넌트들은 상이한 정도의 열화 및 연관된 장애 시간들을 나타낼 수 있다. 따라서, 상이한 컴포넌트들이 그들의 활용에 기초하여 상이하게 열화될 수 있다는 사실을 반영하기 위해, 다양한 실시예들에서 각각의 컴포넌트에 대해 개별적으로 별개의 신뢰성 계산들이 행해진다.
이와 같이, 다양한 실시예들에서, 조합 모델(222)은 각각의 프로세서 컴포넌트의 열화를 개별적으로 결정하기 위한 수학식(들)의 디지털 표현들을 포함하고, 그렇게 하기 위해 전술한 물리 신뢰성 모델들(221)을 이용한다.
조합 모델(222)은 또한 각각의 상이한 컴포넌트들에 대해 개별적으로 수행되는 별개의 계산들로부터 전체로서 프로세서(200)에 대한 전체 장애율 및/또는 예상 장애 시간을 결정하기 위해 사용되는 표현(들)의 바이너리 표현들을 포함할 수 있다. 예를 들어, 마르코프 체인 모델(Markov chain model)은 다양한 프로세서 컴포넌트들에 걸쳐 이루어진 신뢰성 계산들의 모음으로부터 전체적으로 프로세서(200)의 전체 장애율 또는 예상 장애 시간 상태를 표현하는데 사용될 수 있다. 대안적으로, 이러한 수학적 표현들 중 적어도 일부는 신뢰성 소프트웨어의 프로그램 코드에 통합될 수 있다. 그러나, 다시 말해, 칩 제조 시에 결정되거나 또는 그러한 수학적 표현들이 의존하는 프로세서 런타임 동안 측정되는 계수들 또는 다른 값들은 조합 모델(222)에 유지된다.
즉, 상이한 컴포넌트들에 대한 계산들을 개별적으로 지원하기 위해, 조합 모델(222)은 각각의 컴포넌트에 특유한 모니터링된 데이터(예를 들어, 특정 클록 주파수들의 시간 내구성, 특정 공급 전압들의 시간 내구성, 온도 등)를 포함할 수 있다. 따라서, 물리 신뢰성 모델들(221)은 정적 정보(디바이스 제조 동안 결정되고 프로세서에 프로그래밍되는 수학식들 및 파라미터들)를 포함할 수 있는 반면, 대조적으로, 조합 모델(222)은 프로세서(200)의 수명 동안 상이한 컴포넌트들의 사용들을 추적/특성화하는 동적 정보를 포함할 수 있다.
무관하게, 다양한 실시예들에서, 물리 신뢰성 모델들(221) 및 조합 모델들(222) 둘 다에 대한 수학적 표현들의 디지털 표현들, 제조 동안 프로세서에 프로그래밍되는 정적 계수 값들 및 조합 모델(222)에 의해 활용되는 동적 사용 데이터는 프로세서의 임베디드 NVRAM(201)에 유지될 수 있다.
위에서 설명된 바와 같이, 신뢰성 소프트웨어는 필요에 따라 신뢰성 모델들 중 특정한 것들의 내용들을 호출함으로써 프로세서의 개별 컴포넌트들에 대한 장애율들 및/또는 예상 수명들을 주기적으로 결정하고, 이어서 조합 모델(222)의 내용들을 호출함으로써 프로세서(200)에 대한 전체 장애율 및/또는 예상 수명을 결정한다. 후속 계산들에 필요한 임의의 계산들의 결과들은 임베디드 NVRAM(201)에 지속적으로 되돌려 저장된다. 특히, NVRAM(201)의 국지성 때문에, 모델들(221, 222)에 액세스하는 시간 및 임의의 데이터를 지속하는 시간은 모델들 및 지속된 데이터를 프로세서 칩으로부터 떨어져 유지하는 접근법들과 비교하여 극적으로 감소된다.
다양한 실시예들에서, 임베디드 NVRAM(201)의 어드레스 공간은 신뢰성 소프트웨어의 사용을 위해 (적어도 부분적으로) 예약된다. 즉, 임베디드 NVRAM(201)은, 예를 들어, 그 특정 데이터 구조들(예를 들어, 물리 신뢰성 모델들(221) 또는 조합 모델(222)에 대해 앞서 논의한 내용들 중 임의의 것)을 판독/기입하기 위해, 신뢰성 소프트웨어가 이해하기로는 이것이 액세스하기 위한 허가를 갖는 주 메모리(이는 프로세서 칩(200)의 외부에 있고 주 메모리 제어기(203)에 결합됨)와는 상이한 특수 메모리 리소스로서 간주될 수 있다.
따라서, 다양한 실시예들에서, 프로세서의 CPU 코어들(202) 중 하나 이상의 것의 명령어 세트 아키텍처는 주 메모리 또는 다른 메모리가 아니라 임베디드 NVRAM(201)을 타겟으로 하는 특수 메모리 액세스 명령어들을 포함한다. 이와 같이, 다양한 실시예에서, 신뢰성 소프트웨어는 주 메모리로부터 주로 그 제각기의 명령어들을 실행하지만(프로그램 코드 명령어들은 주 메모리에 상주함), 프로그램 코드는 임베디드 NVRAM(201)을 타겟으로 하는 특수 판독 명령어로 그 데이터의 적어도 일부에 대해 NVRAM(201)에 액세스하기 위해 기입된다. 추가의 실시예들에서, 신뢰성 소프트웨어는 임베디드 NVRAM(201)을 타겟으로 하는 또 다른 특수 기입 명령어로 임의의 그러한 데이터를 업데이트/지속하기 위해 NVRAM(201)에 기입할 수 있다.
여기서, 임베디드 NVRAM(201)을 타겟으로 하는 메모리 액세스 명령어의 특수한 속성은, 메모리 액세스가 주 메모리가 아니라 임베디드 NVRAM(201)으로 안내될 것을 특정하는 특별한 오피코드 또는 즉치 피연산자로 프로세서의 CPU 코어들(202)의 명령어 세트 아키텍처의 명령어 포맷에 설계될 수 있다. 대안적으로, NVRAM(201)의 어드레스 공간은 주 메모리 어드레스 공간의 특권 영역으로서 보일 수 있다. 이 경우에, NVRAM(201)은 명목적 메모리 액세스 명령어로 액세스될 수 있지만 신뢰성 소프트웨어는 그것에 액세스하기 위해 특별한 특권 상태를 부여받아야 한다. 또한, 프로세서 반도체 칩상에서 전적으로 완료되는 명목적 메모리 액세스 명령어가 실행된다는 점에 유의한다.
다양한 실시예들에 따르면, 임의의 영구/정적 수학식 모델들 및 연관된 계수들 또는 상수들 등은 디바이스 제조 공정의 일부로서 임베디드 NVRAM(201)에 직접 프로그래밍된다. 이와 같이, 프로세서의 더 큰 컴퓨팅 시스템이 부팅될 때마다, 그것은 BIOS 또는 대용량 스토리지로부터 모델들 및 계수들/상수들을 로드할 필요가 없다. 대안적인 실시예들에서, NVRAM(201)은 시스템 부트-업 동안 BIOS로부터 로드될 수 있다. 이 둘의 조합도 가능하다. 예를 들어, 주 메모리 디바이스들과 같은, 프로세서(200) 외부에 있는 컴포넌트들에 대한 신뢰성 모델 및/또는 계수 데이터는 BIOS로부터 임베디드 NVRAM(201)으로 로드될 수 있다.
도 3은 전력 소비 소프트웨어에 의해 프로세서의 전력 소비를 결정하기 위해 사용되는 런타임 측정 데이터가 임베디드 NVRAM(301)에 유지되는 전력 소비 모니터링 시스템을 도시한다. 도 3의 전력 소비 모니터링 시스템은 도 2의 신뢰성 모니터링 시스템과 공존할 수 있고, 여기서 양 시스템은 임베디드 NVRAM(201/301)을 이용할 수 있다(신뢰성 모니터링 시스템은 NVRAM(201/301)의 제1 부분을 제공받을 수 있고, 전력 소비 모니터링 시스템은 NVRAM(201/301)의 제2 부분을 제공받을 수 있음).
특히, 전력 소비 측정들은 신뢰성 평가 측정들보다 더 빈번하게 이루어진다. 즉, 신뢰성 평가들이 주기적으로(예를 들어, 시간별로, 매일, 주별로) 행해질 수 있는 반면, 대조적으로, 프로세서의 전력 소비는 프로세서의 런타임 동안에 연속적으로 (또는 더 작은 주기적 시간 증분들로) 모니터링될 수 있다.
프로세서(300)의 전력 소비는 프로세서 내의 특정 전압 공급 노드들에서의 공급 전압 및 전류 인출(current draw)의 명시적 측정들로부터 결정될 수 있거나, 또는 다른 런타임 측정들 또는 이들의 일부 조합으로부터 명시적으로 계산될 수 있다. 후자(런타임 측정들로부터의 명시적 계산)의 경우에, 일반적으로, 임의의 프로세서 컴포넌트의 활용은 그것의 전력 소비와 상관될 수 있다. 예를 들어, 시간 윈도우에 걸친 CPU 코어(202)의 전력 소비는 시간 윈도우에 걸쳐서 그것이 얼마나 많은 명령어들을 실행하는지에 상관될 수 있다. 마찬가지로, 시간 윈도우에 걸친 메모리 제어기(203)의 전력 소비는 메모리 제어기(203)가 시간 윈도우 내에서 수신하는 메모리 판독/기입 요청들이 얼마나 많은지에 상관될 수 있다.
이와 같이, 위에서 논의된 신뢰성 계산들과 유사하게, 전력 소비 모니터링 시스템은 특정 컴포넌트의 전력 소비를 결정하는 계산들에 사용하기 위한 프로그래밍된 및/또는 지속된 값들을 포함하는 개별 프로세서 컴포넌트들에 대한 전력 소비 모델들을 포함할 수 있다. 또한, 다양한 컴포넌트들의 전력 소비를, 프로세서 전력 소비를 전체적으로 결정하기 위한 집합 모델에 통합하기 위해 전력 소비 조합 모델이 또한 존재할 수 있다.
무관하게, 도 3에 묘사된 바와 같이, (예컨대, 인텔 프로세서 또는 유사한 프로세서에서의 모델 특정 레지스터들(MSR들)과 같은) 특수 제어 레지스터들(330)이 런타임 전력 소비 결정 소프트웨어의 사용을 위해 예약될 수 있다. 여기서, 예를 들어, 프로세서(300) 내의 하나 이상의 특정 공급 노드들 및/또는 기준 노드들에서의 공급 전압들 및/또는 전류 인출들, 프로세서(300)의 내부 온도 판독들, 및/또는 전력 소비를 계산하는 데 사용되는 특정 런타임 통계들(예를 들어, 제1 CPU 코어(302_1)에 의해 실행되는 명령어들을 카운트하는 제1 카운터, 제2 CPU 코어(302_2)에 의해 실행되는 명령어들을 카운트하는 제2 카운터, 메모리 제어기(303)에 의해 수신되는 판독 요청들을 카운트하는 제3 카운터, 메모리 제어기(303)에 의해 수신되는 기입 요청들을 카운트하는 제4 카운터 등)은 프로세서의 하드웨어에 의해 특수 제어 레지스터들(330)에 보고된다.
예를 들어, 전압 및/또는 전류 측정 회로는 아날로그-투-디지털 컨버터들(ADC)에 결합될 수 있고, 이것은 이후 제어 레지스터들(330) 내의 특정 레지스터 공간에 기입한다. 마찬가지로, 다이 온도를 측정하는 열전쌍 회로들이 제어 레지스터들(330) 내의 다른 특정 레지스터 공간에 결합될 수 있고 및 그 카운트 값들 각각이 특정 프로세서 컴포넌트(예를 들어, 특정 CPU 코어, 메모리 제어기 등)의 활용을 반영하는 카운터 회로들이 제어 레지스터들(330) 내의 또 다른 특정 레지스터 공간에 결합될 수 있다. 전력 소비 모니터링 소프트웨어는, 특정 프로세서 컴포넌트들의 전력 소비를 결정하고, 전체적으로 프로세서의 전력 소비를 결정하고 및/또는 프로세서 외부의 컴포넌트들(예를 들어, 주 메모리 디바이스들)의 전력 소비를 결정하여, 예를 들어 프로세서의 더 큰 컴퓨팅 시스템의 전력 소비가 결정될 수 있도록 하기 위해서 제어 레지스터들(330)을 참조한다.
전력 소비 소프트웨어가 특정 전력 소비 결과들 및/또는 메타데이터 및/또는 이들 계산들과 연관된 중간 데이터 값들(예를 들어, 타임스탬프들)을 결정하면, 그러한 결과들/데이터는 마찬가지로 제어 레지스터들(330) 내의 특정 레지스터 공간에 기입될 수 있어서, 소프트웨어가 나중에 이들을 참조하고 및/또는 예를 들어, 전력 관련 경고 플래그의 경우에 이들을 운영 체제 또는 가상 머신 모니터에 보고할 수 있도록 한다. 중요하게는, 이들 제어 레지스터들(330) 중 임의의 것/모두의 내용은 임베디드 NVRAM(301)에 지속(백업)될 수 있다. 다시 말하면, 백업을 실시하기 위해 소프트웨어에 의해 특수 명령어가 실행될 수 있다.
즉, 예를 들어, 전력 관리 소프트웨어를 실행하는 CPU 코어(들)의 명령어 세트 아키텍처는 제어 레지스터들(330) 내의 위치로부터 내용을 판독하고 그 내용을 (내용을 지속하기 위해) NVRAM(301)에 기입하는 명령어의 정의를 포함할 수 있다. 명령어의 포맷은 이동될 데이터가 위치되는 제어 레지스터의 어드레스 및 데이터가 기입될 NVRAM 어드레스 둘 다를 피연산자들로서 포함할 수 있다. 제어 레지스터는 모든 프로세서 코어들에 전역적 가시성을 가질 수 있다는 점에 유의한다. 대안적으로, 전역적으로 가시적인 제어 레지스터가 아니라, 특수 명령어는 (예를 들어, CPU 코어에 국지적이고 아마도 CPU 코어에 전용인) 일반적인 레지스터 공간에서의 정보를 임베디드 NVRAM(301)에 커밋할 수 있다.
또 다른 실시예들에서, 프로세서의 하드웨어는 특정 제어 레지스터들의 내용을 NVRAM에 자동으로 기입하고 그에 의해 명령어를 명시적으로 실행할 필요성을 회피하는 특수 로직 회로를 포함할 수 있다. 여기서, 그러한 하드웨어는, 제어 레지스터가 새로운 데이터에 의해, 제한된 수의 업데이트들 후에, 주기적으로는 상당히 높은 주파수로, 기타 등등으로 기입될 때마다 NVRAM에 대한 데이터 백업을 트리거할 수 있다.
백업이 명령어 실행을 통해 또는 하드웨어로 자동으로 발생하는지에 관계없이, 새로운 데이터가 처음에 제어 레지스터(330)에서 실현될 때와 동일한 데이터가 임베디드 NVRAM(301)에 백업될 때 사이의 "타임-오브-플라이트(time-of-flight)가 동일한/유사한 데이터가 전통적인 외부 비휘발성 메모리 또는 스토리지에 백업될 것을 요구하는 다른 솔루션들에 비해 매우 작다는 점에 유의한다. 이와 같이, 시스템의 주 데이터 경로들에 의한 트래픽 혼잡이 줄어들 뿐만 아니라 임계 장애가 발생하기 전에 데이터가 NVRAM(301)에 안전하게 기입되지 않을 가능성도 매우 희박하다. 이와 같이, 대부분의 (또는 대부분의 전부) 시나리오들에서의 임베디드 NVRAM(301)은 중요한 장애 직전의 그 신뢰성 및/또는 전력 소비 데이터의 최종 상태를 안전하게 포함한다. 프로세서가 심각한 즉각적 장애를 겪는다면, 프로세서 자체의 임베디드 NVRAM(301)은 그 장애 직전의 프로세서에 대한 가장 최근의 모니터링 데이터를 포함할 것이다.
또 다른 실시예들에서, 제어 레지스터 공간(330)은 완전히 회피되고 및 전력 소비 관련 모니터링 데이터는 프로세서의 전력 소비를 결정하기 위해 사용되는 파라미터들을 내부적으로 측정하는 하드웨어에 의해 (제어 레지스터 공간(330)이 아니라 임베디드 NVRAM(301)에 직접 기입된다(예를 들어, 전압/전류 측정 회로들 및 ADC들, 열전쌍 회로들, 카운터들 등이 NVRAM에 결합된다). 마찬가지로, 전력 소비 결정 소프트웨어는 그 결과들을, 제어 레지스터 공간(330)이 아니라 (예를 들어, NVRAM에 액세스하는 특수한 명령어로) 임베디드 NVRAM에 직접 기입한다.
도 4는 프로세서 성능 모니터링 시스템을 도시한다. 다양한 실시예들에서, 성능 모니터링 시스템은, 프로세서의 다른 런타임 측정들이 하드웨어에 의해 이루어지고 소프트웨어에 의해 활용되는 것을 제외하고는, 모든 면에서 바로 위에서 논의된 전력 소비 측정 시스템과 유사하다. 예를 들어, 다양한 실시예들에서, 성능 모니터링 시스템은 다음 중 하나 이상을 측정한다: 1) 각각의 CPU 코어에 대한 시간 윈도우당 명령어들; 2) 각각의 CPU 코어에 대한 적용된 클록 주파수; 3) 프로세서 인터커넥션 네트워크(450) 대역폭/활용; 4) 메모리 제어기로부터 기인하는 각각의 DDR 메모리 채널에 대한 메모리 채널 대역폭; 5) 각각의 메모리 채널에 대한 메모리 판독 요청들의 수; 6) 각각의 메모리 채널에 대한 메모리 기입 요청들의 수; 7) 메모리 제어기(503)에 대한 메모리 판독 요청들의 수; 8) 메모리 제어기에 대한 메모리 기입 요청들의 수; 9) 메모리 제어기 클록 주파수; 10) 각각의 CPU 코어에 대한 로컬 캐시(L1) 히트들 및 미스들; 11) 최종 레벨 캐시(451)에 대한 히트들 및 미스들; 12) 프로세서 인터커넥션 네트워크(450)의 프로세서로부터 주변 장치 제어 허브(404)에 의해 수신되는 아웃바운드 요청들의 수; 13) 프로세서 인터커넥션 네트워크(450)에게 주변 장치 제어 허브(404)에 의해 제공되는 인바운드 요청들의 수; 기타 등등.
여기서, 적절한 파라미터들을 추적하는 다양한 회로들(예를 들어, 카운터들)은 그들의 출력 값들을 제어 레지스터 공간(430), 임베디드 NVRAM(401), 또는 이들의 어떤 조합에 기입한다. 제어 레지스터 공간(430)에 유지되는 통계들은 또한 NVRAM(401)에 라이트백되거나 다른 방식으로 지속될 수 있다. NVRAM(401)에 대한/로부터의 이러한 통계의 기입/판독은 (전술한 바와 같이) 특수 명령어들의 실행에 의해 수행될 수 있거나 (적어도 NVRAM에의 기입들에 대해) 특수화된 하드웨어에서 자동으로 수행될 수 있다. CPU 코어들(402) 중 하나 이상에서 실행되는 모니터링 소프트웨어는, 예를 들어, 측정된 통계 값들을 최대 실링(ceiling) 레벨들 또는 최소 플로어(floor) 레벨들과 비교함으로써 프로세서가 올바르게 동작하고 있는지를 결정한다. 모니터링 소프트웨어는 제어 레지스터들(430), 임베디드 NVRAM(401), 또는 이 둘의 어떤 조합으로부터 통계에 액세스할 수 있다. 모니터링 소프트웨어로부터의 임의의 결과 또는 출력 데이터는 제어 레지스터 공간(430) 또는 임베디드 NVRAM(401)에 기입될 수 있다. 제어 레지스터 공간(430)에 기입된 임의의 출력 데이터는 임베디드 NVRAM(401)에 백업되거나 다른 방식으로 지속될 수 있다.
성능 모니터링 시스템은 라이브 통계로 프로세서 동작을 모니터링할 뿐만아니라 임의의 프로세서 에러 또는 장애 동작을 플래깅(flagging)하는 목적을 서빙한다. 여기서, 예를 들어, 다양한 프로세서 에러들 및/또는 에러 메시지들과 연관된 값들(예를 들어, 프로그램 카운터 값)을 기록하는 에러 로그들이 에러 보고 처리의 일부로서 임베디드 NVRAM(401)에 기입될 수 있다. 에러 로그들 및/또는 에러 관련 값들을 임베디드 NVRAM(401)에 기록하는 것은 프로세서로부터 예를 들어, BIOS 비휘발성 또는 대용량 스토리지에게 외부적으로 에러 로그들 및 에러 값들을 보고하는 전통적인 처리들과 극명하게 대비된다. 이러한 값들을 임베디드 NVRAM(401)에 저장하는 것은 에러들에 대한 더 빠른 응답 시간들을 초래할 것인데, 그 이유는 다운스트림 반응성 프로세싱(이것은 통상적으로 프로세서상에서 실행되는 소프트웨어임)이 데이터에 대한 로컬 액세스를 갖기 때문이다.
장애 분석 목적을 위해, 임베디드 NVRAM(201, 301, 401)은 프로세서의 CPU 코어에 의한 프로그램 코드의 실행에 의한 것이 아닌 임베디드 NVRAM(201, 301, 401)으로부터의 데이터의 판독을 적어도 제공하는 "백도어" 포트(260, 360, 460)를 또한 포함할 수 있다. 여기서, 예를 들어, 프로세서는 정상 메커니즘들에 의한 임베디드 NVRAM에의 액세스를 막는 일부 종류의 중요한 장애를 겪을 수 있다. 백도어 포트(201, 301, 401)에 의해, 프로세서가 임베디드 NVRAM에 성공적으로 기입할 수 있었던 최종 업데이트를 포함하는 임베디드 NVRAM의 전체 내용들이 여전히 액세스될 수 있어서, 잠재적으로 바로 장애의 순간까지의 프로세서의 동작의 이력이 상세히 연구될 수 있도록 한다.
또한, 모니터링 소프트웨어 프로그램들 중 임의의 것이 인공 지능 구조(예를 들어, 시뮬레이팅된 또는 에뮬레이트된 신경망)를 포함할 수 있어서 모니터링 기능들을 개선하기 위해 (예를 들어, 명시적 수학식이 예측하는 것보다 더 초기에 문제를 인식하기 위해) 어떤 형태의 머신 러닝이 실행되도록 한다는 것을 유의한다. 또한, 전술한 임의의 명령어들은 명령어를 실행하는 처리 코어(들)와 연관되는 다양한 ISA(instruction set architecture) 포맷들(예를 들어, Intel x86, ARM, SAM8, IBM Power, NVidia Fermi 등)과 호환될 수 있다.
도 5는 전술한 방법을 도시한다. 이 방법은 프로세서(501)의 신뢰성, 전력 소비 및 성능을 모니터링하는 단계, 및 프로세서의 신뢰성, 전력 소비 및 성능 데이터를 프로세서의 반도체 칩(502)에 통합된 임베디드 비휘발성 랜덤 액세스 메모리에 기입하는 단계를 포함한다.
도 6은 컴퓨팅 시스템(600)(예컨대, 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터, 서버 컴퓨터 등)의 예시적인 묘사를 제공한다. 도 6에서 관찰되는 바와 같이, 기본 컴퓨팅 시스템(600)은 중앙 프로세싱 유닛(601)(예컨대, 복수의 범용 프로세싱 코어(615_1 내지 615_X)를 포함할 수 있음) 및 다중-코어 프로세서 또는 애플리케이션 프로세서상에 배치된 주 메모리 제어기(617), 시스템 메모리(602), 디스플레이(603)(예컨대, 터치스크린, 평판 패널), 로컬 유선 포인트-투-포인트 링크(예컨대, USB) 인터페이스(604), (이더넷 인터페이스 및/또는 셀룰러 모뎀 서브시스템과 같은) 다양한 네트워크 I/O 기능들(605), 무선 로컬 영역 네트워크(예컨대, WiFi) 인터페이스(606), 무선 포인트-투-포인트 링크(예컨대, 블루투스) 인터페이스(607) 및 GPS(Global Positioning System) 인터페이스(608), 다양한 센서들(609_1 내지 609_Y), 하나 이상의 카메라(610), 배터리(611), 전력 관리 제어 유닛(612), 스피커 및 마이크로폰(613), 그리고 오디오 코더/디코더(614)를 포함할 수 있다.
애플리케이션 프로세서 또는 다중-코어 프로세서(650)는 그 CPU(601) 내의 하나 이상의 범용 처리 코어들(615), 하나 이상의 그래픽 처리 유닛들(616), 메모리 관리 기능(617)(예를 들어, 메모리 제어기), 및 I/O 제어 기능(618)을 포함할 수 있다. 범용 프로세싱 코어들(615)은 통상적으로 컴퓨팅 시스템의 운영 체제 및 애플리케이션 소프트웨어를 실행한다. 그래픽 프로세싱 유닛(616)은 통상적으로, 예컨대, 디스플레이(603)상에 제시되는 그래픽 정보를 생성하기 위해 그래픽 집약적 기능들을 실행한다. 메모리 제어 기능(617)은 데이터를 시스템 메모리(602)에/그로부터 기입/판독하기 위해 시스템 메모리(602)와 인터페이싱한다. 전력 관리 제어 유닛(612)은 일반적으로 시스템(600)의 전력 소비를 제어한다.
터치스크린 디스플레이(603), 통신 인터페이스들(604 내지 507), GPS 인터페이스(608), 센서들(609), 카메라(들)(610), 및 스피커/마이크로폰 코덱(613, 614) 각각은 모두, 적절한 경우, 통합된 주변 디바이스(예컨대, 하나 이상의 카메라(610))도 포함하는 전체 컴퓨팅 시스템에 대한 다양한 형태의 I/O(입력 및/또는 출력)로 볼 수 있다. 구현에 의존하여, 이들 I/O 컴포넌트들 중 다양한 것들은 애플리케이션 프로세서/다중-코어 프로세서(650)상에 통합될 수 있거나, 또는 다이 외부에 또는 애플리케이션 프로세서/다중-코어 프로세서(650)의 패키지 외부에 위치될 수 있다. 컴퓨팅 시스템은 또한 시스템의 대용량 스토리지 컴포넌트일 수 있는 비휘발성 스토리지(620)를 포함한다.
프로세서(650)는 또한 CPU 코어들(615) 중 하나 이상상에서 실행되는 다양한 모니터링 프로그램들의 전체 동작을 개선하기 위해 전술한 바와 같은 임베디드 NVRAM을 포함할 수 있다.
본 발명의 실시예들은 위에 제시된 바와 같은 다양한 프로세스들을 포함할 수 있다. 이러한 프로세스들은 머신 실행 가능 명령어들로 구체화될 수 있다. 이 명령어들은 범용 또는 특수 목적 프로세서로 하여금 특정 프로세스들을 수행하도록 야기하는데 사용될 수 있다. 대안적으로, 이 프로세스들은 프로세스들을 수행하기 위한 하드 와이어드 로직 회로 또는 프로그램 가능 로직 회로(예를 들어, FPGA(field programmable gate array), PLD(programmable logic device))를 포함하는 특정/커스텀 하드웨어 컴포넌트들에 의해, 또는 프로그래밍된 컴퓨터 컴포넌트들 및 커스텀 하드웨어 컴포넌트들의 임의의 조합에 의해 수행될 수 있다.
본 발명의 요소들은 머신 실행 가능 명령어들을 저장하기 위한 머신 판독 가능 매체로서 또한 제공될 수 있다. 이 머신 판독 가능 매체는, 이에 제한되는 것은 아니지만, 플로피 디스켓들, 광 디스크들, CD-ROM들, 및 광자기 디스크들, 플래시 메모리, ROM들, RAM들, EPROM들, EEPROM들, 자기 또는 광 카드들, 전자 명령어들을 저장하기에 적합한 전파 매체 또는 다른 타입의 미디어/머신 판독 가능 매체를 포함할 수 있다. 예를 들어, 본 발명은 통신 링크(예를 들어, 모뎀 또는 네트워크 접속)를 통해 반송파 또는 다른 전파 매체에서 구현되는 데이터 신호들에 의해 원격 컴퓨터(예를 들어, 서버)로부터 요청 컴퓨터(예를 들어, 클라이언트)에 전송될 수 있는 컴퓨터 프로그램으로서 다운로드될 수 있다.
전술한 명세서에서, 본 발명은 그 특정한 예시적인 실시예들을 참조하여 설명되었다. 그러나, 첨부 청구항들에 제시되는 바와 같이 본 발명의 더 광범위한 사상 및 범위를 벗어나지 않고도 다양한 수정들 및 변경들이 그에 대해 이루어질 수 있다는 점이 명백할 것이다. 따라서, 명세서 및 도면들은 제한적인 것이 아니라 예시적인 의미로 고려되어야 한다.

Claims (20)

  1. 반도체 칩상에 구현되는 프로세서의 하나 이상의 프로세싱 코어에 의해 처리될 때, 방법이 수행되도록 야기하는 프로그램 코드를 포함하는 머신 판독 가능 매체로서, 상기 방법은:
    상기 프로세서의 신뢰성, 전력 소비 및 성능을 모니터링하는 단계;
    상기 프로세서의 신뢰성, 전력 소비 및 성능 데이터를 상기 반도체 칩에 통합된 임베디드 비휘발성 랜덤 액세스 메모리에 기입하는 단계를 포함하는, 머신 판독 가능 매체.
  2. 제1항에 있어서, 상기 기입하는 단계는 상기 임베디드 비휘발성 랜덤 액세스 메모리를 타겟으로 하는 메모리 기입 명령어를 실행하는 단계를 포함하는, 머신 판독 가능 매체.
  3. 제2항에 있어서, 상기 임베디드 비휘발성 랜덤 액세스 메모리는 상기 메모리 기입 명령어의 오피코드 및 즉치 피연산자 중 적어도 하나에서 상기 메모리 기입 명령어의 타겟으로서 표현되는, 머신 판독 가능 매체.
  4. 제1항에 있어서, 상기 임베디드 비휘발성 메모리의 어드레스 공간이 특권화되는, 머신 판독 가능 매체.
  5. 제1항에 있어서, 상기 기입하는 단계는 제어 레지스터의 내용들을 판독하는 단계 및 상기 임베디드 비휘발성 랜덤 액세스 메모리에 상기 내용들을 기입하는 단계를 포함하는, 머신 판독 가능 매체.
  6. 제1항에 있어서, 상기 방법은 상기 프로세서의 제어 레지스터 공간으로부터 상기 신뢰성, 전력 소비 및 성능 데이터를 판독하는 단계를 포함하는, 머신 판독 가능 매체.
  7. 제1항에 있어서, 상기 방법은 상기 임베디드 비휘발성 메모리로부터 상기 신뢰성, 전력 소비 및 성능 데이터를 판독하는 단계를 포함하는, 머신 판독 가능 매체.
  8. 장치로서:
    프로세서를 포함하고, 상기 프로세서는:
    복수의 프로세싱 코어;
    주 메모리에 인터페이싱하는 주 메모리 제어기;
    주변 장치 제어 허브;
    임베디드 비휘발성 랜덤 액세스 메모리; 및
    상기 임베디드 비휘발성 랜덤 액세스 메모리에 결합되는 하나 이상의 제어 레지스터를 포함하는, 장치.
  9. 제8항에 있어서, 상기 프로세싱 코어들 중 적어도 하나의 프로세싱 코어의 명령어 세트 아키텍처가 데이터를 상기 임베디드 비휘발성 랜덤 액세스 메모리에 기입하는 명령어를 지원하는, 장치.
  10. 제9항에 있어서, 상기 임베디드 비휘발성 랜덤 액세스 메모리는 상기 명령어의 오피코드 및 즉치 피연산자 중 적어도 하나에서 상기 기입의 타겟으로서 표현되는, 장치.
  11. 제8항에 있어서, 상기 임베디드 비휘발성 랜덤 액세스 메모리는 상이한 타입들의 장애 메커니즘들에 대한 물리 신뢰성 모델들 및 상기 프로세서의 상이한 컴포넌트들의 장애율들을 결정하기 위한 조합 모델을 저장하는, 장치.
  12. 제8항에 있어서, 상기 프로세서는 상기 하나 이상의 제어 레지스터의 내용을 상기 임베디드 비휘발성 랜덤 액세스 메모리에 자동으로 기입하는 로직 회로를 포함하는, 장치.
  13. 제8항에 있어서, 상기 임베디드 비휘발성 랜덤 액세스 메모리에 대한 백도어 인터페이스를 포함하는, 장치.
  14. 방법으로서:
    프로세서의 신뢰성, 전력 소비 및 성능을 모니터링하는 단계;
    상기 프로세서의 신뢰성, 전력 소비 및 성능 데이터를 프로세서 반도체 칩에 통합된 임베디드 비휘발성 랜덤 액세스 메모리에 기입하는 단계를 포함하는, 방법.
  15. 제14항에 있어서, 상기 기입하는 단계는 상기 임베디드 비휘발성 랜덤 액세스 메모리를 타겟으로 하는 메모리 기입 명령어를 실행하는 단계를 포함하는, 방법.
  16. 제15항에 있어서, 상기 임베디드 비휘발성 랜덤 액세스 메모리는 상기 메모리 기입 명령어의 오피코드 및 즉치 피연산자 중 적어도 하나에서 상기 메모리 기입 명령어의 타겟으로서 표현되는, 방법.
  17. 제14항에 있어서, 상기 임베디드 비휘발성 메모리의 어드레스 공간은 특권화되는, 방법.
  18. 제14항에 있어서, 상기 기입하는 단계는 제어 레지스터의 내용들을 판독하는 단계 및 상기 임베디드 비휘발성 랜덤 액세스 메모리에 상기 내용들을 기입하는 단계를 포함하는, 방법.
  19. 제14항에 있어서, 상기 방법은 상기 프로세서의 제어 레지스터 공간으로부터 상기 신뢰성, 전력 소비 및 성능 데이터를 판독하는 단계를 포함하는, 방법.
  20. 제14항에 있어서, 상기 방법은 상기 임베디드 비휘발성 메모리로부터 상기 신뢰성, 전력 소비 및 성능 데이터를 판독하는 단계를 포함하는, 방법.
KR1020190022615A 2018-03-30 2019-02-26 프로세서 모니터링 소프트웨어를 지원하기 위한 임베디드 비휘발성 랜덤 액세스 메모리를 갖는 프로세서 KR20190114747A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/940,966 2018-03-30
US15/940,966 US11074151B2 (en) 2018-03-30 2018-03-30 Processor having embedded non-volatile random access memory to support processor monitoring software

Publications (1)

Publication Number Publication Date
KR20190114747A true KR20190114747A (ko) 2019-10-10

Family

ID=65229752

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190022615A KR20190114747A (ko) 2018-03-30 2019-02-26 프로세서 모니터링 소프트웨어를 지원하기 위한 임베디드 비휘발성 랜덤 액세스 메모리를 갖는 프로세서

Country Status (4)

Country Link
US (1) US11074151B2 (ko)
KR (1) KR20190114747A (ko)
CN (1) CN110321264A (ko)
DE (1) DE102019102886A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10878100B2 (en) 2018-10-17 2020-12-29 Intel Corporation Secure boot processor with embedded NVRAM
JP7288189B2 (ja) * 2019-05-29 2023-06-07 富士通株式会社 ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置
CN113326072B (zh) * 2021-05-24 2023-11-24 北京计算机技术及应用研究所 一种飞腾服务器平台下基于非易失内存的实时监控方法
CN113722136A (zh) * 2021-08-11 2021-11-30 浪潮(山东)计算机科技有限公司 一种服务器故障处理方法、系统、电子设备及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747817B2 (en) 2006-06-28 2010-06-29 Unity Semiconductor Corporation Performing data operations using non-volatile third dimension memory
US8438578B2 (en) * 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
US7984286B2 (en) 2008-06-25 2011-07-19 Intel Corporation Apparatus and method for secure boot environment
US20090327741A1 (en) 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8694761B2 (en) 2008-12-31 2014-04-08 Vincent Zimmer System and method to secure boot both UEFI and legacy option ROM's with common policy engine
US8402208B2 (en) 2009-10-06 2013-03-19 Dell Products L.P. Configurable memory controller/memory module communication system
US20110145934A1 (en) * 2009-10-13 2011-06-16 Miron Abramovici Autonomous distributed programmable logic for monitoring and securing electronic systems
EP2372538A1 (en) * 2010-03-23 2011-10-05 ST-Ericsson SA Processing IC with embedded non volatile memory
US8276018B2 (en) * 2010-04-30 2012-09-25 International Business Machines Corporation Non-volatile memory based reliability and availability mechanisms for a computing device
KR20120085968A (ko) 2011-01-25 2012-08-02 삼성전자주식회사 컴퓨팅 시스템의 부팅 방법 및 이를 수행하는 컴퓨팅 시스템
US9015455B2 (en) 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
WO2013048485A1 (en) 2011-09-30 2013-04-04 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
DE112013006462T5 (de) 2013-03-15 2015-10-01 Intel Corporation Eingebettete Magnettunnelkontakte umfassender Logikchip
KR102099191B1 (ko) 2013-03-15 2020-05-15 인텔 코포레이션 내장된 자기 터널 접합을 포함하는 로직 칩
US9021154B2 (en) 2013-09-27 2015-04-28 Intel Corporation Read training a memory controller
EP3049937A4 (en) 2013-09-27 2017-05-17 Intel Corporation Cache operations for memory management
US9318694B2 (en) 2013-12-26 2016-04-19 Intel Corporation Methods of forming a magnetic random access memory etch spacer and structures formed thereby
US20170069054A1 (en) * 2015-09-04 2017-03-09 Intel Corporation Facilitating efficient scheduling of graphics workloads at computing devices
US20170160338A1 (en) 2015-12-07 2017-06-08 Intel Corporation Integrated circuit reliability assessment apparatus and method
US10067718B2 (en) 2016-09-23 2018-09-04 Advanced Micro Devices, Inc. Multi-purpose register pages for read training
US10163502B2 (en) 2016-12-30 2018-12-25 Intel Corporation Selective performance level modes of operation in a non-volatile memory
US10474384B2 (en) * 2017-02-10 2019-11-12 Dell Products, Lp System and method for providing a back door communication path between channels on dual-channel DIMMs
US11264094B2 (en) 2018-03-05 2022-03-01 Intel Corporation Memory cell including multi-level sensing

Also Published As

Publication number Publication date
CN110321264A (zh) 2019-10-11
US20190042383A1 (en) 2019-02-07
DE102019102886A1 (de) 2019-10-02
US11074151B2 (en) 2021-07-27

Similar Documents

Publication Publication Date Title
KR20190114747A (ko) 프로세서 모니터링 소프트웨어를 지원하기 위한 임베디드 비휘발성 랜덤 액세스 메모리를 갖는 프로세서
US11386203B2 (en) Detection of compromised storage device firmware
US8151094B2 (en) Dynamically estimating lifetime of a semiconductor device
KR101012445B1 (ko) 반도체 기억 장치
KR101385872B1 (ko) 호스트로부터의 메모리 장치의 부팅
KR102553539B1 (ko) 고체 상태 드라이브에서 가비지 수집 리소스 할당을 적응시키는 메커니즘
BR112013003850B1 (pt) aparelho e método de buffer de escrita de combinação com medidas de esvaziamento dinamicamente ajustáveis.
US10437691B1 (en) Systems and methods for caching in an erasure-coded system
US10141955B2 (en) Method and apparatus for selective and power-aware memory error protection and memory management
US11194517B2 (en) Method and apparatus for storage device latency/bandwidth self monitoring
US9336082B2 (en) Validating persistent memory content for processor main memory
US10387340B1 (en) Managing a nonvolatile medium based on read latencies
US10141071B2 (en) Predictive count fail byte (CFBYTE) for non-volatile memory
US20190146699A1 (en) Dynamic configuration of compressed virtual memory
US20170337083A1 (en) Dynamic tuning of multiprocessor/multicore computing systems
US20110238897A1 (en) Memory system, personal computer, and method of controlling the memory system
US20230129647A1 (en) Distribution of quantities of an increased workload portion into buckets representing operations
US9891863B2 (en) Handling shingled magnetic recording (SMR) drives in a tiered storage system
JP7183844B2 (ja) 情報処理装置、方法、およびプログラム
US11822418B2 (en) System and method for power consumption management
US11080059B1 (en) Reducing firmware size and increasing firmware performance
US20240111432A1 (en) Erasure coding implementation with reduced parity calculation overhead
US10073138B2 (en) Early detection of reliability degradation through analysis of multiple physically unclonable function circuit codes
WO2023137317A1 (en) Memory wear leveling
TW201942742A (zh) 履歷記憶裝置、履歷記憶方法及履歷記憶程式產品

Legal Events

Date Code Title Description
E902 Notification of reason for refusal