KR100824462B1 - 하드웨어 호환성을 식별하고, 안정된 소프트웨어 이미지를가능하게 하는 방법 및 장치 - Google Patents

하드웨어 호환성을 식별하고, 안정된 소프트웨어 이미지를가능하게 하는 방법 및 장치 Download PDF

Info

Publication number
KR100824462B1
KR100824462B1 KR1020047021044A KR20047021044A KR100824462B1 KR 100824462 B1 KR100824462 B1 KR 100824462B1 KR 1020047021044 A KR1020047021044 A KR 1020047021044A KR 20047021044 A KR20047021044 A KR 20047021044A KR 100824462 B1 KR100824462 B1 KR 100824462B1
Authority
KR
South Korea
Prior art keywords
value
register
revision
processor
hardware component
Prior art date
Application number
KR1020047021044A
Other languages
English (en)
Other versions
KR20050006294A (ko
Inventor
제프리 라베
알버토 마티네즈
세라핀 가르시아
재키 웬셀
Original Assignee
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20050006294A publication Critical patent/KR20050006294A/ko
Application granted granted Critical
Publication of KR100824462B1 publication Critical patent/KR100824462B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

개정판 ID 레지스터를 통해 프로세서에 의해 판독될 수 있는 실제 스테핑 개정판 ID 값 또는 호환가능 개정판 ID 값을 선택하는 방법이 개시된다.
컴퓨터 시스템, 하드웨어 컴포넌트, 개정판 ID 레지스터, 프로세서, 로직

Description

하드웨어 호환성을 식별하고, 안정된 소프트웨어 이미지를 가능하게 하는 방법 및 장치{METHOD AND APPARATUS FOR IDENTIFYING HARDWARE COMPATIBILITY AND ENABLING STABLE SOFTWARE IMAGES}
하드웨어 및 소프트웨어의 개정판들(revisions) 간의 호환성을 식별하고, 하드웨어 및 소프트웨어의 상이한 개정판들의 상이한 조합들의 사용을 단순화하기 위한 방법 및 장치가 개시된다.
최근에, 컴퓨터를 포함한 복잡한 전자 장치들의 사용 편의성을 향상시키기 위한 노력으로서, 특정 하드웨어 컴포넌트를 식별하는 정보를 제공하는 소프트웨어 판독가능 레지스터의 사용이 증가하고 있다. 이러한 식별 정보는, 보통 식별 코드로서 기능하는 숫자를 포함하는 소정 형태의 2진 값인, 제조 개정판 및 설계 레벨과 같은 하드웨어 개정판 정보를 포함하는 경향이 있다.
또한, 최근에 사용의 편의성을 향상시키기 위한 노력으로서, 복잡한 전자 장치들의 동작을 제어하는 운영 체제 및 기타 소프트웨어는, 존재하는 하드웨어 개정판을 지원하는 데 필요한 소프트웨어 개정판이 설치되어 있음을 보장하기 위하여, 하드웨어 개정판 정보(예를 들어, 2진 값)를 제공하는 판독 레지스터들의 이용을 증가시켜 왔다. 이것은 종종, 특정 하드웨어 장치와 통신하여 그 기능을 적절히 이용하기 위하여 운영 체제가 필요로 하는 장치 드라이버의 필요한 개정판이 존재하는 지를 검사하기 위해 행해진다. 운영 체제는 종종, 장치 드라이버와 같은 소프트웨어가 사용될 수 있도록 하기 위하여 그에 대한 개정판이 필요하지만 존재하지 않다는 것을 발견한 경우에, 필요한 소프트웨어를 요청하는 메시지를 사용자에게 제공하도록 설계된다.
사용의 편의성을 향상시키기 위한 상기 방법은 이로운 효과를 가졌다. 이러한 방법을 사용하지 않을 경우, 사용자(또는 사용자를 지원하는 기술자)는 스스로, 임의의 주어진 전자 장치 내의 특정 하드웨어 컴포넌트를 지원하는 데 필요한 소프트웨어가 제공됨을 보장하기 위한 조치를 취해야 했다. 이것은 종종, 사용자 또는 기술자가 하드웨어 컴포넌트 및 이에 수반되는 소프트웨어에 대해 상당히 상세한 수준까지 알 것을 요구한다. 그러나, 상기한 사용 편의성 향상 방법은 많은 사용자들이 그렇게 상세한 지식을 가질 필요가 없게 만들었으며, 또한 많은 경우에 많은 사용자들이 다른 사람들에 의해 제공되는 지원에 크게 의존할 필요가 없게 만들었다.
그러나, 상기 사용 편의성 향상 방법은 이전에 존재하지 않았던 하드웨어 컴포넌트 및 소프트웨어의 사용에 대한 새로운 복잡성을 추가하였다. 시간이 지나 하드웨어가 오래 되거나 사용됨에 따라, 다양한 하드웨어 컴포넌트들은 낡고 교체를 필요로 하게 된다. 종종, 구식 하드웨어 컴포넌트는, 설계 및 기능 등 여러 면에서 거의 유사한 새로운 하드웨어 컴포넌트로 교체되는 것이 가능한데, 이러한 새로운 하드웨어 컴포넌트에 의한 구식 하드웨어 컴포넌트의 교체는 사용자 또는 기 술자에게 아직 존재하지 않는 임의의 소프트웨어를 제공할 것을 요구하여서는 안된다. 그러나, 제조자는 일반적으로 개조 없이 똑같은 하드웨어 컴포넌트를 계속 제조하지는 않는다. 하드웨어 제조자는 시간이 지남에 따라, 제조 비용을 줄이거나 전력 소모를 줄이거나 물리적인 크기를 줄이지 못하는 경우에도 하드웨어의 설계를 개량 또는 변경하거나, 새로운 하드웨어를 사용하기 위해 새로운 소프트웨어의 설치를 필요로 하지 않는 많은 다른 가능한 변경을 행하는 경향이 있다. 불행하게도, 제조자가 이러한 개량을 행함에 따라, 하드웨어가 새롭게 개정되었음을 나타내도록 소프트웨어에 의해 판독된 레지스터들 내에 포함된 하나 이상의 값을 변경함으로써, 이러한 개량이 이루어졌다는 사실을 반영하는 것이 바람직하게 된다.
소프트웨어 판독가능 레지스터들이 특정 하드웨어 컴포넌트가, 교체되고 있는 하드웨어 컴포넌트보다 새로운 하드웨어 개정판을 나타낸다는 사실을 반영하는 것은 바람직하지만, 이것은 종종, 레지스터들을 판독하는 소프트웨어가 개정판에서 변경의 표시를 만나고, 이어서 새로운 하드웨어 컴포넌트가 올바르게 동작하기 위해 새로운 소프트웨어가 실제로 필요한지의 여부에 관계 없이 사용자 또는 기술자에게 새로운 하드웨어 개정판을 지원할 수 있는 더 새로운 소프트웨어 개정판을 설치해 줄 것을 요청하는 결과를 낳게 된다. 바꾸어 말하면, 사용자는 새로운 하드웨어 컴포넌트를 설치하여 고장난 구식 하드웨어 컴포넌트를 교체한 후에, 이 새로운 하드웨어 컴포넌트가 교체된 하드웨어 컴포넌트와 기능 면에서 동일한 경우에도 새로운 소프트웨어가 설치되어야 한다는 것을 지시하는 메시지를 운영 체제로부터 받게 된다.
이것은 사용자에게 불편한 것으로 입증되었으며, 또한 조직 내부의 많은 사용자들을 지원하는 담당자가 있는 회사 또는 기타 큰 조직의 경우에 이것은 불필요한 소프트웨어의 제공에 대한 요구에 직면한 사용자들의 요구를 충족시키기 위하여 시간 및/또는 기타 자원들을 소모하여야 한다는 관점에서 매우 비효율적이라는 것이 입증되었다.
이하 청구되는 바의 본 발명의 목적, 특징 및 이점들은 첨부된 도면들을 참조한 아래의 상세한 설명으로부터 당업자에게 자명할 것이다.
도 1a 및 도 1b는 하드웨어 개정판 정보를 제공하는 일 실시예의 레지스터의 어드레스 맵 및 개략도.
도 2는 컴퓨터 시스템과 상호작용하는 하드웨어 컴포넌트의 일 실시예의 블록도.
도 3a 및 도 3b는 컴퓨터 시스템의 실시예들의 블록도.
도 4는 하드웨어 개정판을 식별하는 값을 선택하는 방법의 일 실시예의 흐름도.
설명을 위하여, 그리고 아래의 설명에 대한 철저한 이해를 제공하기 위하여 많은 세부 사항이 설명되지만, 이러한 특정 세부 사항은 이하 청구되는 바의 본 발명을 실시하기 위하여 요구되지 않는다는 것이 이 분야의 당업자에게는 자명할 것이다.
하드웨어 및 소프트웨어의 개정판들 간의 호환성을 식별하고, 하드웨어 및 소프트웨어의 상이한 개정판들의 상이한 조합들의 사용을 단순화하기 위한 방법 및 장치가 개시된다. 구체적으로, 일 실시예는 하드웨어 컴포넌트를 특정 소프트웨어와 함께 더욱 편리하게 사용할 수 있도록 하기 위하여 하드웨어 컴포넌트의 개정판을 식별하는 데 사용되는 값을 다수의 레지스터로부터 선택하는 것과 관련된다. 그러나, 레지스터들에 저장되고 판독되는 값들을 참조하여 실시예들이 설명되지만, 이하에 청구되는 본 발명은 값들을 저장하고 판독하는 다른 방법 또는 하드웨어 컴포넌트의 개정판을 특정하는 데 사용되는 다른 식별 형태도 포함한다.
도 1a 및 도 1b는 각각 하드웨어 개정판 정보를 제공하는 레지스터들의 일 실시예의 어드레스 맵 및 개략도이다. 어드레스 맵(100a)은 선택 로직부(100b)를 포함하는 하드웨어 컴포넌트를 식별하기 위해 소프트웨어에 의해 사용되는 소수의 레지스터들의 어드레스 위치들을 나타낸다. 구체적으로, 당업자가 알고 있듯이, 어드레스 맵(100a)은 주지의 주변 컴포넌트 상호접속 또는 "PCI" 버스의 사양에 따르는 하드웨어 컴포넌트에 대한 어드레스 위치들의 체계를 나타낸다. 어드레스 00h의 벤더 ID 레지스터(130)는 하드웨어 컴포넌트의 제조자를 식별하는 16 비트 2진 값을 제공하기 위하여 소프트웨어에 의해 판독된다. 어드레스 02h의 장치 ID 레지스터(132)는 하드웨어 컴포넌트가 무엇인지를 식별하는 16 비트 2진 값을 제공한다. 개정판 ID 레지스터(126)는 하드웨어 컴포넌트의 개정판 레벨을 식별하는 8 비트 2진 값을 제공한다. 물론, 이들 특정 비트 크기는 설명을 쉽게 하기 위한 예로서만 제공되는 것이며, 제한적인 것은 아니다.
선택 로직부(100b)는 선택 로직부(100b)를 포함하는 하드웨어 컴포넌트의 개정판 레벨을 식별하기 위하여 개정판 ID 레지스터(126)로부터 소프트웨어에 의해 판독되는 개정판 ID 값을 선택하는데 사용된다. 선택 로직부(100b)를 포함하는 하드웨어 컴포넌트의 실제 개정판 레벨을 식별하는 값은 스테핑 개정판 ID 레지스터(stepping revision ID register; 122)에 의해 유지된다. 하드웨어 컴포넌트가 유사한 소프트웨어를 실행시킬 만큼 충분한 호환성을 가지는 하드웨어의 개정판 레벨을 식별하는 값은 호환 가능 개정판 ID 레지스터(124)에 의해 유지된다. 스테핑 개정판 ID 레지스터(122) 및 호환 가능 개정판 ID 레지스터(124) 양자 모두는 멀티플렉서(120)의 입력들에 결합되고, 이 멀티플렉서의 출력은 개정판 ID 레지스터(126)에 결합된다. 일회 기입 레지스터(write-once register; 110) 및 보안 키 값 레지스터(security key value register; 112)는 비교기(114)의 입력들에 결합되고, 이 비교기의 출력은 멀티플렉서(120)의 선택 입력에 결합된다.
이 실시예에서, 많은 가능한 방법들 중 임의의 방법으로 일회 기입 레지스터(110)에 하나의 값이 기입되고, 이어서 비교기(114)는 이 값을 보안 키 값 레지스터(112)에 의해 유지되고 있는 보안 키 값과 비교한다. 두 값이 일치할 경우, 비교기(114)의 출력이 변경되어, 멀티플렉서(120)는 소프트웨어가 이후 개정판 ID 레지스터(126)로부터 판독할 수 있는 값으로서 스테핑 개정판 ID 레지스터에 의해 유지되는 값을 제공하는 대신에 호환 가능 개정판 ID 레지스터에 의해 유지되는 값을 제공한다. 일회 기입 레지스터(110)의 명칭이 제시하듯이, 일회 기입 레지스터(110)는 로직부(110b)를 포함하는 하드웨어 컴포넌트의 정상 동작 동안에 단 일회 만 기입되도록 설계되어 있다. 이러한 제한은 소프트웨어가 나중에 개정판 ID 레지스터(126)로부터 판독할 수 있는 값을 변경할 수 있는 기회를 단 한번 제공하기 위한 하나의 보안 형태의 일부이다. 일회 기입 레지스터(110)에 기입된 값이 보안 키 값 레지스터(112)에 의해 유지되고 있는 값과 일치하지 않는 경우, 소프트웨어가 나중에 개정판 ID 레지스터(126)로부터 판독할 수 있는 값을 변경할 기회는 사라진다.
선택 로직부(100b)를 포함하는 하드웨어 컴포넌트의 설계에 따라, 멀티플렉서(120)는, 하드웨어 컴포넌트가 정상적인 사용을 위해 초기화되도록 재설정될 때마다, 스테핑 개정판 ID 레지스터(122)에 유지되는 값을 소프트웨어 판독 개정판 ID 레지스터(126)에 제공하도록 재설정될 수 있다. 또한, 정상적인 사용을 위해 하드웨어 컴포넌트가 재설정되면 소프트웨어가 나중에 개정판 ID 레지스터(126)로부터 판독할 수 있는 값을 변경하기 위하여 일회 기입 레지스터(110)에 의해 제공되는 한번의 기회를 갱신할 수 있다. 더욱이, 일회 기입 레지스터(110)에 하나의 값을 기입하는 많은 방법 중 하나일 수 있지만, 이 실시예의 한 변형례에서는 소프트웨어가 실제로 하나의 값을 개정판 ID 레지스터(126)에 기입할 때 그 값이 일회 기입 레지스터(110)에 기입된다.
당업자가 쉽게 이해하는 바와 같이, 보안 키 값 레지스터(112), 스테핑 개정판 ID 레지스터(122) 및 호환 가능 개정판 ID 레지스터(124)를 구현하기 위하여, 그리고 이들 레지스터에 각자 유지하는 값들을 제공하기 위하여 많은 가능한 방법들이 이용될 수 있다. 이러한 방법들은 여러 방법들 중에서 하드 와이어링, 판독 전용 메모리 장치의 사용, 선택 로직부(100b)를 포함하는 하드웨어 컴포넌트의 정상적인 사용 전의 다른 소프트웨어에 의한 일회의 사전 프로그래밍, 또는 회로 기판 상에 실장된 레지스터들을 통해 고전압 또는 저전압에 집적 회로의 핀들을 선택적으로 결합시키는 것 등을 포함하지만 이에 제한되지는 않는다. 구체적으로, 호환 가능 개정판 ID 레지스터(124)는 소프트웨어에 의해 기입 가능한 레지스터 또는 소프트웨어 유틸리티를 통해 사용자(또는 기술자)에 의해 다시 프로그래밍될 수 있는 불휘발성 재 프로그래밍 가능 저장 장치로서 구현될 수 있다.
더욱이, 당업자가 이해하듯이, 보안 키 값 및 그에 수반되는 보안 키 값 레지스터(112)의 사용은 소프트웨어 판독 개정판 ID 레지스터(126)에 제공될 값을 선택하는 데 필요한 액세스를 제한하기 위해 사용할 수 있는 많은 가능한 방법들 중 하나일 뿐이다. 구체적으로, 선택을 행할 수 있는 하나의 소프트웨어가 존재하여 선택을 행하고, 이루어진 선택을 다른 소프트웨어가 단지 판독만을 할 수 있도록 할 수 있다. 하나의 소프트웨어가 선택을 행하는 데 필요한 액세스를 가지고 다른 소프트웨어는 갖지 않는 방식은, 다른 소프트웨어가 액세스를 갖는 것, 즉 OS에 의해 할당되는 허가를 받는 것을 방지하는 하드웨어 설계일 수 있는데, 이에 의해 상기 하나의 소프트웨어가 상기 다른 소프트웨어보다 높은 우선 순위로 또는 또 다른 방식으로 실행된다. 또한, 하나의 소프트웨어가 다른 소프트웨어로부터 분리된 프로세서에서 실행될 수도 있다. 구체적으로, 하나의 소프트웨어는 다른 소프트웨어에 의한 정상적인 사용을 위해 하드웨어 컴포넌트들을 준비시키는 부분으로서 컴퓨터 시스템일 수 있는 하드웨어 컴포넌트들을 구성하는 데 사용되는 개별 마이크로 컨트롤러에서 실행될 수 있다.
또한, 당업자들이 이해하듯이, 개정판 ID 레지스터(126)로부터 프로세서에 의해 판독될 수 있는 값 선택의 래칭이 많은 방법 중 임의의 방법에 의해 수행될 수 있다. 구체적으로, 전술한 설명은 하나의 값을 래치하고 그 값을 보안 키 값 레지스터(112)에 의해 유지되는 보안 키 값과의 비교를 위해 제공하기 위하여 일회 기입 레지스터를 사용한다는 것에 중심을 두고 있다. 이러한 일회 기입 레지스터(110)에 기입된 값의 래칭은 일회 기입 레지스터(110)에 의해 비교기(114)에 제공되는 값이 래치 후에 일정하게 유지되어, 멀티플렉서(120)로의 비교기(114)의 출력이 일정하게 유지되고, 이에 따라 개정판 ID 레지스터(126)로부터 판독될 수 있는 선택 값이 효과적으로 래치된다는 것을 의미한다. 그러나, 비교기(114)의 출력이 멀티플렉서(120)에 도달하기 전에 래치(도시되지 않음)를 통과하여 비교기(114)의 출력 자체가 래치될 수도 있다. 이것은 전체적인 회로 복잡성을 줄이기 위하여 기입된 다 비트 값을 래치하는 일회 기입 레지스터(110)에 대한 바람직한 대안이라 할 수 있다.
도 1a 및 도 1b에 도시된 실시예가 PCI 버스의 요건에 따르지만, 이하에 청구되는 본 발명은 그에 제한되지 않으며, 다른 버스 표준 또는 전체적으로 다른 형태의 하드웨어와 함께 사용되는 실시예들이 가능하다는 것을 당업자에게는 자명할 것이다.
도 2는 컴퓨터 시스템과 그의 하드웨어 컴포넌트들 중 하나와의 사이의 상호작용을 나타내는 실시예의 블록도이다. 하드웨어 컴포넌트(200)는 컴퓨터 시스템 (250)의 한 컴포넌트이며, 버스 접속기들(288) 중 하나를 통해, 아마도 컴퓨터 시스템(250)의 사용자에 의해 또는 사용자를 지원하는 기술자에 의해 컴퓨터 시스템(250)의 나머지 컴포넌트와 결합될 수 있다. 하드웨어 컴포넌트(200)는 스테핑 개정판 ID 레지스터(222) 또는 호환 가능 개정판 ID 레지스터(224)에 의해 제공되는 값을 취할 수 있는 개정판 ID 레지스터(226)를 포함한다. 하드웨어 컴포넌트(200)는 또한 초기화 소프트웨어(228)를 저장하는 반도체 장치를 포함할 수 있다.
컴퓨터 시스템(250)은 하드웨어 컴포넌트(200) 외에 컴퓨터 시스템(250)의 설계 또는 의도 목적에 따라 메모리 제어기(260), I/O 제어기(270), 버스 제어기(280) 및 그래픽 제어기(290) 중 하나 이상에 결합될 수 있는 프로세서(259)를 더 포함한다. 메모리 제어기(260)는 메모리(268)에도 결합되고, I/O 제어기(270)는 키보드(278) 및/또는 마우스(279)를 포함할 수 있는 하나 이상의 장치에도 결합되며, 버스 제어기(280)는 버스 접속기들(288)에도 결합되고, 그래픽 제어기(290)는 디스플레이(298)에도 결합된다. 더욱이, 컴퓨터 시스템(250)은 초기화 소프트웨어(258)도 포함할 수 있다.
초기화 소프트웨어(228 및/또는 258)는 ROM 장치, EPROM 장치 또는 기타 재기입이 가능한 플래시 메모리 장치 또는 백업 배터리를 구비한 RAM과 같은 불휘발성 메모리 장치와 같은 메모리 장치 등의 한 형태의 반도체 장치에 저장될 수 있다. 이와 달리, 초기화 소프트웨어(229 및/또는 258)는 다양한 이용가능 디스크, 테이프 또는 기타 형태의 기계 액세스 가능 매체 중 하나에 저장될 수도 있다.
주어진 시간에, 예를 들어 컴퓨터 시스템(250)이 시동될 때, 컴퓨터 시스템 (250)이 재설정될 때, 그리고/또는 컴퓨터 시스템(250)의 하드웨어 컴포넌트들의 구성이 변경될 때(가능하게는 하드웨어 컴포넌트(200)와 같은 하드웨어 컴포넌트의 추가 또는 제거에 의해), 컴퓨터 시스템(250)이 정상적인 사용을 위해 준비되어 있는지를 검사하기 위하여, 그리고/또는 정상적인 사용을 위해 컴퓨터 시스템(250)을 준비시키기 위하여 초기화 소프트웨어가 실행된다. 초기화 소프트웨어(258)는 프로세서(259)가 하나 이상의 하드웨어 컴포넌트의 존재 또는 상태를 질의하게 할 수 있으며, 그리고/또는 프로세서(259)가 하나 이상의 테스트를 행하게 할 수 있다.
이 실시예의 한 변형례에 있어서, 소프트웨어(258)는 프로세서(259)(또는 가능하게는 컴퓨터 시스템(250) 내의 몇몇 다른 프로세서)가 하드웨어 컴포넌트(200)의 존재를 검출하도록 하며, 하드웨어 컴포넌트(200)와 상호작용하도록 기입되었을 수 있다. 정말로 초기화 소프트웨어가 특히 하드웨어 컴포넌트(200)와 상호작용하도록 기입되었다면, 초기화 소프트웨어(258)는 후속적으로 개정판 ID 레지스터(226)로부터 판독될 수 있는 값을 제공하기 위하여 스테핑 개정판 ID 레지스터(222) 또는 호환 가능 개정판 ID 레지스터(224)를 선택하도록 기입될 수 있다. 그러면, 초기화 소프트웨어(258)는 프로세서(259)(또는 다른 프로세서)가 도 1b의 선택 로직부(100b)에 대해 충분히 설명된 것과 유사한 방법을 이용하거나 다양한 다른 가능한 방법들 중 하나를 이용하여 하드웨어 컴포넌트(200) 내의 이 값의 선택을 제어하는 로직부에 액세스하게 한다.
이 실시예의 한 변형례에서, 하드웨어 컴포넌트(200)와 함께 포함된 초기화 소프트웨어(258)는 하드웨어 컴포넌트(200)와 상호작용하도록 기입되었으며, 개정판 ID 레지스터(226)로부터 후에 판독될 수 있는 값을 제공하기 위하여 스테핑 개정판 ID 레지스터(222) 또는 호환 가능 개정판 ID 레지스터(224)를 선택하도록 기입되었을 수 있다. 그러하다면, 초기화 소프트웨어(228)는 프로세서(259)(또는 다른 프로세서)가 도 1b의 선택 로직부(100b)에 대해 충분히 설명된 것과 유사한 방법을 이용하거나 다양한 다른 가능한 방법들 중 하나를 이용하여 하드웨어 컴포넌트(200) 내의 이 값의 선택을 제어하는 로직부에 액세스하게 한다.
개정판 ID 레지스터(226)로부터 후에 판독될 값의 선택이 이루어지게 하는 것이 초기화 소프트웨어 228 또는 258이던지 간에 실제 값의 선택은 다양한 가능한 요소들 중 하나에 의존할 수 있다. 일 실시예에서, 스테핑 개정판 ID 레지스터(222) 또는 호환 가능 개정판 ID 레지스터(224)로부터의 값들 중 하나 또는 다른 하나가 선택될 때 특정 운영 체제 또는 다른 소프트웨어에 수반되는 문제들이 아주 빈번히 발생한다는 것이 초기화 소프트웨어(228) 또는 초기화 소프트웨어(258)를 만드는 사람들에게 알려질 수 있다. 결과적으로, 초기화 소프트웨어(228 또는 258)를 만드는 사람들은 소정의 방식으로 값들의 선택을 제한하거나, 상기 문제들을 일으키는 것으로 알려진 값의 선택을 완전히 방지하도록 초기화 소프트웨어(228 또는 258)를 준비할 수 있다. 이것은 바람직한 선택을 초기화 소프트웨어(228 또는 258)에 "하드 코딩"하거나 적어도 바람직한 선택을 디폴트로 함으로써 행해질 수 있다.
다른 실시예에서, 컴퓨터 시스템(250)의 사용자(또는 사용자를 지원하는 기술자)는 초기화 소프트웨어(228 또는258)의 제작자에 의해 특정 운영 체제 또는 다 른 소프트웨어가 컴퓨터 시스템(250)과 함께 정상적으로 사용되는 것에 따르는 값을 선택하는 방법을 제공 받는다. 이 실시예에서, 초기화 소프트웨어(228 또는 258)는 프로세서(259)(또는 다른 프로세서)로 하여금 사용자 또는 기술자가 선택을 행할 수 있도록 하는 그래픽 제어기(290) 및 디스플레이(298)를 통해 볼 수 있는 소정 형태의 온 스크린 메뉴를 제공하게 할 수 있다. 이것은 사용자 또는 기술자가 컴퓨터(250) 상에 설치하기 위해 선택할 수 있는 많은 가능한 운영 체제 또는 기타 소프트웨어가 존재하는 경우에 바람직할 수 있다. 소정의 운영 체제들 및 기타 소프트웨어는 불안정 또는 오동작할 수 있거나, 이용가능한 값들 중 특정 값이 선택된 경우 바람직하지 않게 새로운 드라이버 소프트웨어 개정판을 요구할 수 있으나, 이러한 문제들은 다른 값의 선택으로 방지될 수 있다. 또한, 사용자 또는 기술자는 구식 하드웨어 컴포넌트를 하드웨어 컴포넌트(200)로 교체할 수 있고, 하드웨어 컴포넌트(200)는 구식 하드웨어 컴포넌트와 같은 방식으로 사용될 수 있도록 설계되며, 하드웨어 컴포넌트(200)가 구식 하드웨어 컴포넌트에 의해 제공되는 것과 동일한 값, 또는 적어도 사용자 또는 기술자가 다른 소프트웨어 개정판에 대한 요구를 받거나 기타 바람직하지 않은 결과를 피하는 효과를 갖는 값을 소프트웨어에 제공하도록 하는 값이 선택되는 한 하드웨어 컴포넌트(200)는 구식 하드웨어 컴포넌트와 함께 사용된 소프트웨어를 교체하지 않고 사용될 수 있다.
또 다른 실시예에서, 사용자 또는 기술자에 의한 선택이 허용되는 경우, 사용자 또는 기술자는 구식 하드웨어 컴포넌트를 하드웨어 컴포넌트(200)로 교체할 수 있으며, 하드웨어 컴포넌트(200)는 교체된 구식 하드웨어 컴포넌트와 다르거나 그 보다 많은 광범위한 능력을 제공할 수 있다. 그러나, 사용자 또는 기술자는 이러한 다르거나 더 많은 광범위한 능력을 이용하기를 원하지 않을 수 있으며, 단순히 구식 하드웨어 컴포넌트가 사용된 것과 동일한 방식으로 하드웨어 컴포넌트(200)를 사용하기를 원할 수 있고, 따라서 하드웨어 컴포넌트(200)가 구식 하드웨어 컴포넌트에 의해 제공된 것과 동일한 값, 또는 적어도 사용자 또는 기술자가 다른 소프트웨어 개정판에 대한 요구를 받거나 기타 바람직하지 않은 결과를 피하는 효과를 갖는 값을 소프트웨어에 제공하도록 하는 값을 선택하는 것이 바람직할 수 있다.
예를 들어 하드웨어 컴포넌트(200)가 구식 100메가비트/초 네트워크 카드 대신 설치되고 있는 경우, 또는 하드웨어 컴포넌트(200)가 구식 스테레오 전용 오디오 카드 대신 설치되고 있는 서라운드 사운드 가능 오디오 카드인 경우 운영 체제 또는 기타 소프트웨어에 의해 질의될 때 개정판 ID 레지스터(226)에 의해 제공되는 값들의 선택이 사용자 또는 기술자에게 제공되는 것이 바람직할 수 있다. 교체된 구식 네트워크 또는 오디오 카드의 제조자는 단순히 그러한 유형의 구식 카드를 더 이상 만들지 않으면 되고, 새로운 유형의 카드만이 이용될 수 있지만, 컴퓨터 시스템(250)의 사용자(또는 사용자를 지원하는 기술자)는 구형 대신에 새로운 하드웨어 컴포넌트(200)를 설치하기를 원할 수 있고 컴퓨터를 전에 했던 것과 똑 같이 계속 동작시킬 수 있다. 따라서, 구형에 의해 제공되는 값과 일치하거나 소정의 방식으로 동등한 개정판 ID 레지스터(226)에 대한 값을 선택하는 것은 운영 체제 또는 기타 소프트웨어가 이제 새로운 능력을 가진 새로운 하드웨어가 존재한다는 지시를 받는 것을 방지하게 된다.
하드웨어 컴포넌트(200)의 제조자가 실제로 여러 곳에서 동일한 유형의 하드웨어를 제조하지만, 여러 곳에서의 제조 공정의 차이 또는 기타 기능과 관계 없는 비교적 사소한 사항 때문에 스테핑 개정판 ID 레지스터(222)에 의해 제공되는 값들이 다를 때 사용자 또는 기술자에게 값들의 선택을 제공하는 것이 바람직할 수 있는 다른 특정 상황이 있을 수 있다. 하드웨어 컴포넌트(200)의 모든 변형이 이들이 제조되는 곳에 관계 없이 동일한 값을 제공하도록 값들을 선택하는 것이 바람직할 수 있다.
더욱이, 이들 실시예에서 또는 다른 실시예에서, 2개의 값 이상이 선택될 수 있다. 구체적으로, 하나 이상의 호환 가능 개정판 ID 레지스터(224)가 있을 수 있고, 이들 각각은 여러 상이한 운영 체제 또는 소프트웨어의 사용에 바람직할 수 있는 다른 값을 제공할 수 있다.
도 3a는 컴퓨터 시스템의 일 실시예의 블록도이다. 전반적으로 도 2의 컴퓨터 시스템(250)에 대응하는 방식으로, 컴퓨터 시스템(350)은 컴퓨터 시스템(350)의 설계 또는 의도된 목적에 따라 메모리 제어기(360), I/O 제어기(370) 버스 제어기(380) 및 그래픽 제어기(390) 중 하나 이상에 결합될 수 있는 프로세서(359)를 포함한다. 메모리 제어기(360)는 메모리(368)에도 결합되고, I/O 제어기(370)는 키 보드(378) 및/또는 마우스(379)를 포함할 수 있는 하나 이상의 I/O 장치에도 결합되며, 버스 제어기(380)는 버스 접속기들(388)에도 결합되고, 그래픽 제어기(390)는 디스플레이(398)에도 결합된다. 그러나, 컴퓨터 시스템(250)과 달리, 컴퓨터 시스템(350)의 프로세서(359) 및 메모리 제어기 중 하나 또는 둘은 선택 가능한 값들을 갖는 개정판 ID 레지스터들을 가질 수 있다. 구체적으로, 도 3에 도시된 바와 같이, 프로세서(359)는 스테핑 개정판 ID 레지스터(352) 및 호환 가능 ID 레지스터(354)와 함께 개정판 ID 레지스터(356)를 가질 수 있고, 마찬가지로 메모리 제어기(360)는 스테핑 개정판 ID 레지스터(362) 및 호환 가능 ID 레지스터(364)와 함께 개정판 ID 레지스터(366)를 가질 수 있다. 컴퓨터 시스템(350)은 또한 초기화 소프트웨어(358)를 포함할 수 있다.
도 2의 컴퓨터 시스템(250)의 경우에서와 같이, 컴퓨터 시스템(350)에서도, 초기화 소프트웨어(358)는 ROM 장치, EPROM 장치, 또는 플래시 메모리 장치 또는 백업 배터리를 구비한 RAM 장치와 같은 불휘발성 메모리 장치와 같은 기타 재기입 가능 메모리 장치 등의 반도체 장치에 저장될 수 있다. 또한, 초기화 소프트웨어(358)는 다양한 이용 가능한 디스크, 테이프 또는 기타 저장 매체 기반 장치들에 저장될 수 있다.
주어진 시간에, 예를 들어 컴퓨터 시스템(350)이 시동될 때, 컴퓨터 시스템(350)이 재설정될 때, 그리고/또는 컴퓨터 시스템(350)의 하드웨어 컴포넌트들의 구성이 변경될 때(가능하게는 하드웨어 컴포넌트의 추가 또는 제거에 의해), 컴퓨터 시스템(350)이 정상적인 사용을 위해 준비되어 있는지를 검사하기 위하여, 그리고/또는 정상적인 사용을 위해 컴퓨터 시스템(350)을 준비시키기 위하여 초기화 소프트웨어가 실행된다. 초기화 소프트웨어(358)는 프로세서(359)가 하나 이상의 하드웨어 컴포넌트의 존재 또는 상태를 질의하게 할 수 있으며, 그리고/또는 프로세 서(359)가 하나 이상의 테스트를 행하게 할 수 있다.
초기화 소프트웨어(358)는 프로세서(359)(또는 가능하게는 컴퓨터 시스템(350) 내의 몇몇 다른 프로세서)가 프로세서(359) 및/또는 메모리 제어기(360)의 특정 개정판의 존재를 검출하게 할 수 있다. 초기화 소프트웨어(358)는 개정판 ID 레지스터(356)로부터 후에 판독될 수 있는 값을 제공하기 위해 프로세서(359)의 스테핑 개정판 ID 레지스터(352) 또는 호환 가능 개정판 ID 레지스터((354)를 선택하거나 개정판 ID 레지스터(366)로부터 후에 판독될 수 있는 값을 제공하기 위해 메모리 제어기(360)의 스테핑 개정판 ID 레지스터(362) 또는 호환 가능 개정판 ID 레지스터(364)를 선택하도록 기입되었을 수 있다. 그러면, 초기화 소프트웨어(358)는 프로세서(359)(또는 다른 프로세서)가 이들 값의 선택을 제어하는 로직부에 액세스하여 적당히 선택을 행할 수 있게 한다.
도 2의 컴퓨터 시스템(250)에서와 같이, 개정판 ID 레지스터들(356 및/또는 366) 중 하나 또는 다른 하나로부터 후에 판독될 수 있는 값의 실제 선택은 다양한 가능한 요소들 중 하나에 따라 이루어질 수 있다. 이들 요소들은 특정 값들이 선택되거나 선택되지 않을 경우의 잠재적인 문제들 또는 오동작에 대한 초기화 소프트웨어(358)의 제조자들의 일부의 지식이거나, 사용자에게 남겨지거나 기술자가 사용자가 행하도록 지원하는 선택일 수 있다. 도 2의 초기화 소프트웨어(228, 258)와 관련하여 앞서 설명한 바와 같이, 초기화 소프트웨어(358)는 사용자 또는 기술자에게 값들의 선택을 제공할 수 있으며, 이러한 값들의 선택은 그래픽 제어기(390) 및/또는 디스플레이(398)를 통해 표시되는 메뉴를 통해, 또는 기타 다양한 방법으로 제공될 수 있다.
컴포넌트들의 오동작 또는 심지어 전에 설치된 프로세서보다 빠른 프로세서(359)로 컴퓨터 시스템(350)을 업그레이드하려는 단순한 소망은 교체되는 구식 하드웨어 컴포넌트와 다른 값을 갖는 스테핑 개정판 ID 레지스터를 구비한 새로운 하드웨어 컴포넌트가 도입되는 상황을 제공할 수 있지만, 운영 체제 또는 기타 특정 소프트웨어가 하드웨어 컴포넌트들의 변경을 인식하지 못하게 하는 것이 바람직할 수 있다. 어떠한 이유에서건 사용자 또는 기술자가 사용하기를 원하지 않는 명령 세트 또는 기타 기능에 대한 추가를 또한 제공하는 더 빠른 프로세서(359)가 설치될 수 있고, 따라서 사용자 또는 기술자는 구식 프로세서에 의해 제공되는 값을 모방하는 개정판 ID 레지스터(356)로부터 후에 판독될 수 있는 값을 선택할 수 있다. 컴포넌트들의 오동작은 새로운 메모리 제어기(360)가 구형 대신 설치될 것을 요구할 수 있지만, 메모리 제조자(360)는 다이 크기를 줄였거나 교체된 것에 비해 메모리 제어기(360)의 기능에 영향을 미치지 않는 소정의 다른 변경을 행하였을 수 있으므로, 메모리 제어기(360)는 운영 체제 또는 기타 소프트웨어가 불안정하거나 동작할 수 없게 하거나 다른 값이 선택되지 않는 경우 소프트웨어 갱신 또는 다른 소프트웨어 개정판을 요구하게 하는 개정판 ID 레지스터(366) 내의 개정판 ID 값을 운영 체제 또는 기타 소프트웨어에 제공할 수 있다.
개정판 ID 레지스터(356 또는 366) 중 하나 또는 둘로부터 후에 판독될 수 있는 값들의 선택을 제공하는 특정 상황은 컴퓨터 시스템(350)이 단체 설정과 같은 것에 사용되는 많은 컴퓨터들 중 하나인 경우일 수 있다. 컴퓨터 시스템(350)을 포함하여 이러한 곳에 사용되는 컴퓨터들은 모두 동일 소스로부터 모두 구매되는 동일한 구성을 가질 수 있지만, 시간이 지남에 따라 이들 컴퓨터에 사용되는 하나 이상의 컴포넌트의 제조자들에 의해 행해지는 사소한 개량으로 인하여 이들 컴퓨터의 하나 이상의 컴포넌트의 개정판 ID 값은 적어도 스테핑 개정판 ID 레지스터들에 의해 제공되는 값들이 모든 경우에 사용될 때에는 모두 동일할 수 없다. 이것은 그러한 곳에서 각 소프트웨어의 특정 개정판들로 이루어지는 공통 소프트웨어 세트를 사용하려는 소망을 어렵게 할 수 있다. 이러한 컴퓨터들 중 적어도 일부의 하나 이상의 컴포넌트 내의 호환 가능 개정판 ID 레지스터로부터 값을 선택할 수 있는 것이 그러한 공통 소프트웨어 세트를 사용할 수 있게 하기 위해 필요할 수 있다.
도 3b는 컴퓨터 시스템의 형태의 다른 실시예의 블록도이다. 구체적으로, 도 3b의 컴퓨터 시스템(350)은 제2 프로세서, 즉 프로세서(357)가 추가된 것을 제외하고는 도 3a의 컴퓨터 시스템(350)과 실질적으로 동일하다. 프로세서(357)는 컴퓨터 시스템(350)의 기능을 구성 및/또는 모니터링하는 것을 돕는 데 사용된다. 프로세서(357)는 단일 집적 회로 내에 그 자신의 초기화 코드를 포함하는 다량의 메모리를 포함하는 마이크로컨트롤러로 구현될 수 있다. 프로세서(357)는 컴퓨터 시스템(350)의 동작 상태를 중앙 모니터링 컴퓨터 시스템을 포함한 컴퓨터 시스템(350) 외부의 다른 장치들에게 중계하는 데 사용되는 하나 이상의 통신 포트를 구비할 수 있다.
이 실시예에서, 프로세서(357)는 그 자신의 초기화 코드에 의해 프로세서 (359) 및/또는 메모리 제어기(360)의 특정 개정판의 존재를 검출할 수 있다. 이어서, 프로세서(357)는 개정판 ID 레지스터(356)로부터 후에 판독될 값을 제공하기 위하여 프로세서(359)의 스테핑 개정판 ID 레지스터(352) 또는 호환 가능 개정판 ID 레지스터(354)를 선택하거나 개정판 ID 레지스터(366)로부터 후에 판독될 값을 제공하기 위하여 메모리 제어기(360)의 스테핑 개정판 ID 레지스터(362) 또는 호환 가능 개정판 ID 레지스터(364)를 선택할 수 있다. 이어서, 프로세서(357)는 개정판 ID 레지스터(256 및/또는 366)를 통해 프로세서(359)에 의해 나중에 실행되는 소프트웨어에 의해 선택된 값들이 판독될 수 있게 한다.
프로세서(357)와 같은 다른 프로세서가 개정판 ID 레지스터(356 및/또는 366)에 대한 값들을 선택하는 데 필요한 로직부에 액세스하는 실시예에서는 로직부가 프로세서(359)에 의해 액세스될 수 없도록 설계되거나 구성될 수 있다. 더욱이, 프로세서(357)는 컴퓨터 시스템(350)의 사용자 또는 이러한 사용자를 지원하는 기술자가 온 스크린 매우 또는 다른 방법을 이용하여 개정판 ID 레지스터(356 및/또는 366)를 통해 판독될 수 있는 값들을 선택할 수 있는 기회를 제공하기 위하여 프로세서(359)에 의해 사용될 수도 있는 로직부를 통해 직간접적으로 그래픽 제어기(390)에 액세스할 수 있다.
프로세서(359) 및 메모리 제어기(360)가 도 3a 및 도 3b에서 개정판 ID 레지스터, 스테핑 개정판 ID 레지스터 및 호환 가능 개정판 ID 레지스터를 갖는 것으로 도시되었지만, 이들은 설명을 위해 예로서 제공되는 것들이라는 것을 당업자들은 쉽게 이해할 것이다. 구체적으로, 컴퓨터 시스템(350)의 다른 컴포넌트들이 프로 세서(259) 및/또는 메모리 제어기(360) 내에 존재하는 특징들 외에 또는 대신에 추가 특징들을 가질 수 있다는 것을 당업자들은 쉽게 이해할 것이다.
도 4는 초기화 소프트웨어에 의해 행해지는 초기화 방법의 일 실시예의 흐름도이다. 410에서, 컴퓨터 시스템은 시동되거나 재설정되며, 412에서 초기화 소프트웨어가 프로세서에 의해 실행되기 시작한다. 420에서, 초기화 소프트웨어는 프로세서가 개정판 ID 레지스터를 찾도록 하며, 422에서 프로세서로 하여금 스테핑 개정판 ID 레지스터 내에 유지된 값이 사용되어야 하는지의 여부에 관하여 이루어진 선택의 표시(초기화 소프트웨어 자체에 하드 코딩되거나 소정의 다른 소스로부터의)를 로딩하게 한다. 430에서 스테핑 개정판 ID 레지스터 내의 값이 사용되어야 하고, 440에서 스테핑 개정판 ID 레지스터 내의 값이 사용되는 데 어떠한 동작도 필요하지 않은 경우, 초기화 소프트웨어는 프로세서가 개정판 ID에 대한 값들에 관해 어떠한 동작도 취하지 않게 한다. 그러나, 440에서 스테핑 개정판 ID 레지스터 내의 값이 사용되는 데 동작이 필요한 경우, 초기화 소프트웨어는 442에서 추가적인 동작을 취한다. 430에서 스테핑 개정판 ID 레지스터에 유지된 값이 사용되지 않아야 하는 경우, 호환 가능 개정판 ID 레지스터로부터의 값이 사용되고, 450에서 호환 가능 개정판 ID 레지스터의 값을 사용하기 위한 동작이 취해진다.
일 실시예에서는 442 또는 450에서 도 1에 관련하여 설명된 것과 유사한 방법으로 원하는 값이 선택될 수 있도록 보안 키 값이 레지스터에 기입되어야 할 수 있다. 또한, 초기화 소프트웨어만이 개정판 ID 레지스터로부터 판독될 수 있는 값의 선택을 행할 수 있는 것을 보장하기 위한 다른 보안 방법이 이용될 수 있다.
본 발명은 바람직한 실시예와 관련하여 설명되었다. 전술한 설명에 비추어 다양한 대안, 수정, 변형 및 이용이 당업자들에게 자명할 것이다. 이하 청구되는 본 발명은 컴퓨터 시스템을 포함한 디지탈 전자 시스템의 다양한 컴포넌트들의 개정판을 식별하는 것을 지원 실시될 수 있지만 이에 한하지는 않는다는 것을 당업자들은 이해할 것이다. 실시예들이 레지스터들을 사용하고 스테핑 개정판 ID 값이 디폴트로 사용되는 것으로 설명되었지만, 값들 또는 다른 형태의 개정판 레벨 식별자를 유지, 저장 및/또는 제공하기 위해 다른 형태의 하드웨어가 사용될 수 있으며, 다른 개정판 ID 값들의 변형이 사용자 , 사용자를 지원하는 기술자 및/또는 다른 형태의 소프트웨어에 의해 소정의 부적합한 동작이 취해지지 않는 경우에 사용될 디폴트 값이 될 수 있다는 것을 당업자들을 알 것이다. 또한, 실시예들은 하드웨어 컴포넌트의 개정판 레벨을 기술하는 값의 선택에 중점을 두고 설명되었지만, 이들 실시예와 관련하여 설명된 방법들은 또한 장치 ID 값들 및/또는 장치 ID 레지스터들을 포함하는 하드웨어 컴포넌트들의 식별의 다른 양태들에도 적용될 수 있으며, 또한 이에 제한되는 것은 아니다.

Claims (24)

  1. 프로세서에 의해 판독될 수 있고, 제1 하드웨어 컴포넌트의 식별 값을 저장하기 위한 개정판 ID 레지스터(revision ID register);
    상기 제1 하드웨어 컴포넌트의 실제 스테핑 개정판 레벨(actual stepping revision level)을 나타내는 값을 유지하기 위한 스테핑 개정판 ID 레지스터;
    상기 제1 하드웨어 컴포넌트의 소프트웨어와 동일한 소프트웨어가 사용될 수 있는 제2 하드웨어 컴포넌트의 스테핑 개정판 레벨을 나타내는 값을 유지하기 위한 호환 가능 개정판 ID 레지스터; 및
    보안 키 값을 유지하기 위한 보안 키 값 레지스터, 및 일회 기입 레지스터(write-once register)를 포함하는 선택 로직부
    를 포함하는 장치로서,
    상기 프로세서는, 제1 프로세서에 의한 상기 선택 로직부의 제어를 가능하게 하기 위하여, 초기화 소프트웨어에 의해 상기 보안 키 값에 일치하는 값을 상기 일회 기입 레지스터에 기입하게 되고,
    상기 선택 로직부는 상기 보안 키 값과 상기 일회 기입 레지스터 내의 상기 값이 일치하는 경우에는 상기 호환 가능 개정판 ID 레지스터로부터의 상기 값을 선택하거나, 상기 보안 키 값과 상기 일회 기입 레지스터 내의 값이 일치하지 않는 경우에는 상기 스테핑 개정판 ID 레지스터로부터의 상기 값을 선택하고,
    상기 선택되는 값은 상기 프로세서에 의해 판독될 수 있는
    장치.
  2. 제1항에 있어서, 상기 초기화 소프트웨어를 저장하기 위한 저장 장치를 더 포함하고, 상기 선택 로직부는 상기 초기화 소프트웨어를 실행하는 상기 프로세서에 응답하는 장치.
  3. 제1항에 있어서, 상기 선택 로직부는 집적 회로 내의 멀티플렉서를 포함하고, 상기 스테핑 개정판 ID 레지스터 내에 유지되는 상기 값은 불변인 장치.
  4. 제3항에 있어서, 상기 호환가능 개정판 ID 레지스터 내에 유지되는 상기 값은 불변인 장치.
  5. 제1항에 있어서, 상기 개정판 ID 레지스터의 로직 어드레스 위치는 상기 제1 하드웨어 컴포넌트의 PCI 어드레스 공간 내에 위치하고 상기 프로세서에 의해 판독 가능한 장치.
  6. 제1항에 있어서, 상기 스테핑 개정판 ID 레지스터에 유지되는 상기 실제 스테핑 개정판 레벨은 상기 제1 하드웨어 컴포넌트가 상기 제2 하드웨어 컴포넌트에 의해 제공되는 기능들 외에 적어도 하나의 추가 기능을 제공함을 나타내고, 상기 적어도 하나의 추가 기능은 상기 제2 하드웨어 컴포넌트에 사용되는 소프트웨어가 상기 제1 하드웨어 컴포넌트에서 사용되는 데에는 필요하지 않은 장치.
  7. 삭제
  8. 프로세서;
    상기 프로세서에 결합되고, 상기 프로세서에 의해 실행 가능한 초기화 소프트웨어를 구성하는 명령들을 저장하기 위한 메모리;
    상기 프로세서에 의해 판독될 수 있고, 제1 하드웨어 컴포넌트의 식별 값을 저장하기 위한 개정판 ID 레지스터;
    상기 제1 하드웨어 컴포넌트의 실제 스테핑 개정판 레벨을 나타내는 값을 유지하기 위한 스테핑 개정판 ID 레지스터;
    상기 제1 하드웨어 컴포넌트의 소프트웨어와 동일한 소프트웨어가 사용될 수 있는 제2 하드웨어 컴포넌트의 스테핑 개정판 레벨을 나타내는 값을 유지하기 위한 호환 가능 개정판 ID 레지스터; 및
    보안 키 값을 유지하기 위한 보안 키 값 레지스터, 및 일회 기입 레지스터를 포함하는 선택 로직부
    를 포함하는 컴퓨터 시스템으로서,
    상기 프로세서는, 제1 프로세서에 의한 상기 선택 로직부의 제어를 가능하게 하기 위하여, 초기화 소프트웨어에 의해 상기 보안 키 값에 일치하는 값을 상기 일회 기입 레지스터에 기입하게 되고,
    상기 선택 로직부는 상기 보안 키 값과 상기 일회 기입 레지스터 내의 상기 값이 일치하는 경우에는 상기 호환 가능 개정판 ID 레지스터로부터의 상기 값을 선택하거나, 상기 보안 키 값과 상기 일회 기입 레지스터 내의 값이 일치하지 않는 경우에는 상기 스테핑 개정판 ID 레지스터로부터의 상기 값을 선택하고,
    상기 선택되는 값은 상기 프로세서에 의해 판독될 수 있는
    컴퓨터 시스템.
  9. 제8항에 있어서, 상기 선택 로직부는 상기 초기화 소프트웨어의 명령들을 실행하는 상기 프로세서에 응답하는 컴퓨터 시스템.
  10. 제8항에 있어서, 상기 선택 로직부는 집적 회로 내의 멀티플렉서를 포함하고, 상기 스테핑 개정판 ID 레지스터 내에 유지되는 상기 값은 불변인 컴퓨터 시스템.
  11. 제10항에 있어서, 상기 호환가능 개정판 ID 레지스터 내에 유지되는 상기 값은 불변인 컴퓨터 시스템.
  12. 제8항에 있어서, 상기 개정판 ID 레지스터의 로직 어드레스 위치는 상기 제1 하드웨어 컴포넌트의 PCI 어드레스 공간 내에 위치하고 상기 프로세서에 의해 판독될 수 있는 컴퓨터 시스템.
  13. 제8항에 있어서, 상기 스테핑 개정판 ID 레지스터에 유지되는 상기 실제 스테핑 개정판 레벨은 상기 제1 하드웨어 컴포넌트가 상기 제2 하드웨어 컴포넌트에 의해 제공되는 기능들 외에 적어도 하나의 추가 기능을 제공함을 나타내고, 상기 적어도 하나의 추가 기능은 상기 제2 하드웨어 컴포넌트에 사용되는 소프트웨어가 상기 제1 하드웨어 컴포넌트에 사용되는 데에는 필요하지 않은 컴퓨터 시스템.
  14. 삭제
  15. 제8항에 있어서, 상기 제1 하드웨어 컴포넌트는 상기 프로세서 내에 포함되는 컴퓨터 시스템.
  16. 제1 프로세서;
    제2 프로세서;
    상기 제1 및 제2 프로세서들에 결합되고, 초기화 소프트웨어를 구성하는 명령들을 저장하기 위한 메모리;
    상기 제1 프로세서에 의해 판독될 수 있고, 제1 하드웨어 컴포넌트의 식별 값을 저장하기 위한 개정판 ID 레지스터 개정판 ID 레지스터;
    상기 제1 하드웨어 컴포넌트의 실제 스테핑 개정판 레벨을 나타내는 값을 유지하기 위한 스테핑 개정판 ID 레지스터;
    상기 제1 하드웨어 컴포넌트의 소프트웨어와 동일한 소프트웨어가 사용될 수 있는 제2 하드웨어 컴포넌트의 스테핑 개정판 레벨을 나타내는 값을 유지하기 위한 호환 가능 개정판 ID 레지스터; 및
    보안 키 값을 유지하기 위한 보안 키 값 레지스터, 및 일회 기입 레지스터를 포함하는 선택 로직부
    를 포함하는 컴퓨터 시스템으로서,
    상기 프로세서는, 상기 제1 프로세서에 의한 상기 선택 로직부의 제어를 가능하게 하기 위하여, 초기화 소프트웨어에 의해 상기 보안 키 값에 일치하는 값을 상기 일회 기입 레지스터에 기입하게 되고,
    상기 선택 로직부는 상기 보안 키 값과 상기 일회 기입 레지스터 내의 상기 값이 일치하는 경우에는 상기 호환 가능 개정판 ID 레지스터로부터의 상기 값을 선택하거나, 상기 보안 키 값과 상기 일회 기입 레지스터 내의 값이 일치하지 않는 경우에는 상기 스테핑 개정판 ID 레지스터로부터의 상기 값을 선택하고,
    상기 선택되는 값은 상기 제1 프로세서에 의해 판독될 수 있는
    컴퓨터 시스템.
  17. 제16항에 있어서, 상기 선택 로직부는, 상기 초기화 소프트웨어의 명령들을 실행하는 상기 제2 프로세서에 의해 제어되는 컴퓨터 시스템.
  18. 제16항에 있어서, 상기 개정판 ID 레지스터의 로직 어드레스 위치는 상기 제1 하드웨어 컴포넌트의 PCI 어드레스 공간 내에 위치하고 상기 제1 및 제2 프로세서들에 의해 판독될 수 있는 컴퓨터 시스템.
  19. 제16항에 있어서, 상기 제1 하드웨어 컴포넌트는 상기 제1 프로세서 내에 포함되는 컴퓨터 시스템.
  20. 선택 로직부에 대한 액세스를 얻기 위해 보안 키 값을 사용하는 단계 - 상기 선택 로직부는 상기 보안 키 값을 저장하기 위한 보안 키 값 레지스터, 및 일회 기입 값을 저장하기 위한 일회 기입 레지스터를 포함하고, 상기 저장된 일회 기입 값이 상기 저장된 보안 키 값과 일치하는 경우에는 상기 선택 로직부가 이네이블됨 -;
    제1 하드웨어 컴포넌트의 실제 스테핑 개정판 레벨을 나타내는 값을 유지하는 스테핑 개정판 ID 레지스터로부터, 또는 상기 제1 하드웨어 컴포넌트의 소프트웨어와 동일한 소프트웨어가 사용될 수 있는 제2 하드웨어 컴포넌트의 스테핑 개정판 레벨을 나타내는 값을 유지하는 적어도 하나의 호환가능 개정판 ID 레지스터들 중 하나로부터 값을 선택하기 위하여 상기 선택 로직부를 사용하는 단계 - 상기 보안 키 값과 상기 일회 기입 값이 일치하는 경우에는 상기 호환 가능 개정판 ID 레지스터로부터의 상기 값이 선택되고, 상기 보안 키 값과 상기 일회 기입 값이 일치하지 않는 경우에는 상기 스테핑 개정판 ID 레지스터로부터의 상기 값이 선택됨 -; 및
    프로세서가 개정판 ID 레지스터를 통해 상기 선택된 값을 판독할 때 상기 선택된 값이 상기 프로세서에 의해 판독될 수 있도록 하는 단계
    를 포함하는 방법.
  21. 제20항에 있어서, 상기 보안 키를 사용하는 단계 및 상기 선택 로직부를 사용하는 단계는, 기계 액세스 가능 매체 상에 저장된 초기화 소프트웨어의 명령들을 실행하는 상기 프로세서에 의해 행해지는 방법.
  22. 제20항에 있어서, 값을 선택하기 위하여 상기 선택 로직부가 사용된 후 소프트웨어의 명령들을 실행하는 상기 프로세서에 의한 상기 선택 로직부에 대한 액세스를 거부하는 단계를 더 포함하는 방법.
  23. 기계의 프로세서에 의해 실행될 때, 상기 기계가
    선택 로직부에 대한 액세스를 얻기 위해 보안 키를 사용하게 하고 - 상기 선택 로직부는 상기 보안 키 값을 저장하기 위한 보안 키 값 레지스터, 및 일회 기입 값을 저장하기 위한 일회 기입 레지스터를 포함하고, 상기 저장된 일회 기입 값이 상기 저장된 보안 키 값과 일치하는 경우에는 상기 선택 로직부가 이네이블됨 -;
    제1 하드웨어 컴포넌트의 실제 스테핑 개정판 레벨을 나타내는 값을 유지하는 스테핑 개정판 ID 레지스터로부터, 또는 상기 제1 하드웨어 컴포넌트의 소프트웨어와 동일한 소프트웨어가 사용될 수 있는 제2 하드웨어 컴포넌트의 스테핑 개정판 레벨을 나타내는 값을 유지하는 적어도 하나의 호환가능 개정판 ID 레지스터들 중 하나로부터 값을 선택하기 위하여 상기 선택 로직부를 사용하게 하며 - 상기 보안 키 값과 상기 일회 기입 값이 일치하는 경우에는 상기 호환 가능 개정판 ID 레지스터로부터의 상기 값이 선택되고, 상기 보안 키 값과 상기 일회 기입 값이 일치하지 않는 경우에는 상기 스테핑 개정판 ID 레지스터로부터의 상기 값이 선택됨 -;
    상기 프로세서가 개정판 ID 레지스터를 통해 상기 선택된 값을 판독할 때 상기 선택된 값이 상기 프로세서에 의해 판독될 수 있도록 하게 하는
    명령들을 포함하는 기계 액세스 가능 매체.
  24. 제23항에 있어서, 값을 선택하기 위하여 상기 선택 로직부가 사용된 후 상기 프로세서의 상기 선택 로직부에 대한 추가 액세스가 거부되는 기계 액세스 가능 매체.
KR1020047021044A 2002-06-28 2003-06-20 하드웨어 호환성을 식별하고, 안정된 소프트웨어 이미지를가능하게 하는 방법 및 장치 KR100824462B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/187,222 US7100032B2 (en) 2002-06-28 2002-06-28 Method and apparatus for identifying hardware compatibility and enabling stable software images
US10/187,222 2002-06-28
PCT/US2003/019543 WO2004003737A2 (en) 2002-06-28 2003-06-20 Method and apparatus for identifying hardware compatibility and enabling stable software images

Publications (2)

Publication Number Publication Date
KR20050006294A KR20050006294A (ko) 2005-01-15
KR100824462B1 true KR100824462B1 (ko) 2008-04-22

Family

ID=29780018

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047021044A KR100824462B1 (ko) 2002-06-28 2003-06-20 하드웨어 호환성을 식별하고, 안정된 소프트웨어 이미지를가능하게 하는 방법 및 장치

Country Status (8)

Country Link
US (1) US7100032B2 (ko)
EP (1) EP1523709A2 (ko)
JP (1) JP2005531085A (ko)
KR (1) KR100824462B1 (ko)
CN (1) CN1678995B (ko)
AU (1) AU2003253670A1 (ko)
TW (1) TWI229793B (ko)
WO (1) WO2004003737A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076643B2 (en) * 2003-01-28 2006-07-11 Hewlett-Packard Development Company, L.P. Method and apparatus for providing revision identification numbers
US20050262337A1 (en) * 2004-05-24 2005-11-24 Siemens Vdo Automotive Corporation Method and device for determining flash software compatibility with hardware
CN100356320C (zh) * 2004-12-20 2007-12-19 上海贝尔阿尔卡特股份有限公司 用于选择多版本软件的方法和选择设备
CN100551088C (zh) * 2006-02-23 2009-10-14 华为技术有限公司 一种检测升级软件与机顶盒硬件兼容性的方法
DE102006062216A1 (de) 2006-12-22 2008-06-26 Robert Bosch Gmbh Kraftstoffinjektor
US8683579B2 (en) * 2010-12-14 2014-03-25 Microsoft Corporation Software activation using digital licenses
SG194245A1 (en) * 2012-04-17 2013-11-29 ZingMobile Pte Ltd A method for real-time synchronization between a device and host servers
CN104156309B (zh) * 2014-07-29 2016-10-05 深圳市腾讯计算机系统有限公司 终端应用的兼容性检测方法、装置及服务器
EP3289684A4 (en) * 2015-04-29 2018-12-19 Hewlett-Packard Development Company, L.P. Connector element information detections
US10659852B2 (en) * 2017-07-20 2020-05-19 Hewlett-Packard Development Company, L.P. Connector element information detections
CN114780154B (zh) * 2022-04-19 2024-01-30 北京航天发射技术研究所 一种兼容不同生产厂家主控板硬件状态的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577232A (en) * 1991-06-17 1996-11-19 Sun Microsystems, Inc. Method and apparatus for allowing computer circuitry to function with updated versions of computer software
US5809329A (en) * 1994-05-27 1998-09-15 Microsoft Corporation System for managing the configuration of a computer system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1022386C (zh) * 1990-11-17 1993-10-13 太原重型机械学院 环状工件的液压胀形装置
US5454078A (en) * 1992-08-07 1995-09-26 International Business Machines Corporation System for sharing name among network adapters by, dynamically linking adapters having same logical name and maintaining linked state of remaining adapters
US5812858A (en) * 1994-09-16 1998-09-22 Cirrus Logic, Inc. Method and apparatus for providing register and interrupt compatibility between non-identical integrated circuits
US5802365A (en) 1995-05-05 1998-09-01 Apple Computer, Inc. Dynamic device matching using driver candidate lists
US6330608B1 (en) * 1997-03-31 2001-12-11 Stiles Inventions L.L.C. Method and system of a computer system for establishing communications between a service provider and a central service factory and registry in a computer system
WO1999066413A1 (en) 1998-06-18 1999-12-23 Aristocrat Technologies Australia Pty Ltd Method of linking devices to gaming machines
US6457069B1 (en) * 1998-07-23 2002-09-24 Compaq Information Technologies Group, L.P. Method and apparatus for providing support for dynamic resource assignment and configuration of peripheral devices when enabling or disabling plug-and-play aware operating systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577232A (en) * 1991-06-17 1996-11-19 Sun Microsystems, Inc. Method and apparatus for allowing computer circuitry to function with updated versions of computer software
US5809329A (en) * 1994-05-27 1998-09-15 Microsoft Corporation System for managing the configuration of a computer system

Also Published As

Publication number Publication date
CN1678995B (zh) 2010-05-26
EP1523709A2 (en) 2005-04-20
TW200406677A (en) 2004-05-01
JP2005531085A (ja) 2005-10-13
WO2004003737A2 (en) 2004-01-08
US20040003224A1 (en) 2004-01-01
TWI229793B (en) 2005-03-21
KR20050006294A (ko) 2005-01-15
WO2004003737A3 (en) 2005-02-17
AU2003253670A1 (en) 2004-01-19
US7100032B2 (en) 2006-08-29
CN1678995A (zh) 2005-10-05

Similar Documents

Publication Publication Date Title
CN110032405B (zh) 系统开机码存储器管理方法、存储器装置与应用其的电子系统
US5768568A (en) System and method for initializing an information processing system
CN104850762B (zh) 防止计算机的动作不良的方法、计算机程序以及计算机
US5748980A (en) System for configuring a computer system
US5325532A (en) Automatic development of operating system boot image
US6009520A (en) Method and apparatus standardizing use of non-volatile memory within a BIOS-ROM
US6658562B1 (en) Method, system, and program for customizing a basic input/output system (“BIOS”) configuration according to the type of user
US6944867B2 (en) Method for providing a single preloaded software image with an ability to support multiple hardware configurations and multiple types of computer systems
US8943302B2 (en) Method of flashing bios using service processor and computer system using the same
US11042365B2 (en) Firmware updating method and electronic device using the same
US7039799B2 (en) Methods and structure for BIOS reconfiguration
KR100824462B1 (ko) 하드웨어 호환성을 식별하고, 안정된 소프트웨어 이미지를가능하게 하는 방법 및 장치
CN105637521B (zh) 一种数据处理方法及智能终端
CN115658160B (zh) 基于多核异构soc的多操作系统升级方法、装置及系统
CN113254286B (zh) 一种服务器的日志输出方法、系统及相关装置
US6405311B1 (en) Method for storing board revision
EP2372565A1 (en) Method for managing USB devices
US6598157B1 (en) Dynamic boot block control by boot configuration determination and subsequent address modification
WO2022199622A1 (zh) 一种电子设备的启动程序的运行方法和电子设备
JP2002366501A (ja) 周辺デバイス、コンピュータシステム、及びインストーラプログラム
US20220398103A1 (en) Multi-boot system and method for a baseboard management controller (bmc)
CN112527341B (zh) 一种车机系统升级方法、车机系统及计算机存储介质
US20050160319A1 (en) System and method for detecting and reporting resource conflicts
US10635818B1 (en) Blocking runtime firmware variable access
CN115344313B (zh) 安卓系统分区的挂载方法、电子设备和机器可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment
FPAY Annual fee payment
LAPS Lapse due to unpaid annual fee