KR20010102853A - 서로 다른 동작 모드를 이용하는 어댑터 구성 루틴들을실행하기 위한 방법 및 시스템 - Google Patents

서로 다른 동작 모드를 이용하는 어댑터 구성 루틴들을실행하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20010102853A
KR20010102853A KR1020010020238A KR20010020238A KR20010102853A KR 20010102853 A KR20010102853 A KR 20010102853A KR 1020010020238 A KR1020010020238 A KR 1020010020238A KR 20010020238 A KR20010020238 A KR 20010020238A KR 20010102853 A KR20010102853 A KR 20010102853A
Authority
KR
South Korea
Prior art keywords
configuration
routine
configuration routines
auxiliary
routines
Prior art date
Application number
KR1020010020238A
Other languages
English (en)
Other versions
KR100416166B1 (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 KR20010102853A publication Critical patent/KR20010102853A/ko
Application granted granted Critical
Publication of KR100416166B1 publication Critical patent/KR100416166B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

하나 이상의 제1 비휘발성 메모리와, 하나 이상의 제2 비휘발성 메모리와, 적어도 제1 및 제2 동작 모드를 지원하는 처리 리소스를 포함하는 데이타 처리 시스템을 구성하기 위한 방법이 제1 동작 모드의 활성화와 더불어 시작한다. 그 다음, 제2 동작 모드를 이용하는 하나 이상의 보조 구성 루틴(secondary configuration routine)들이 하나 이상의 제2 비휘발성 메모리 내에서 발견된다. 그리고, 이들 보조 구성 루틴들을 식별케하는 리스트가 저장된다. 이 리스트가 저장되고 난 후, 제1 동작 모드를 이용하는 하나 이상의 주 구성 루틴(primary configuration routine)들이 하나 이상의 제1 비휘발성 메모리에 위치하여 실행된다. 또한, 주 구성 루틴들중 어느것에도 대응하지 않은 모든 보조 구성 루틴들이 따로 구분되어 진다(demarcate). 그 후, 제1 동작 모드 대신에 제2 동작 모드가 활성화된다. 그리고, 따로 구분되어진 보조 구성 루틴들이 실행된다. 실시예에서, 주 구성 루틴들은 시스템 메모리로부터 얻어지고, 보조 구성 루틴들은 어댑터 메모리로부터 얻어진다. 그리고, 하나 이상의 주 구성 루틴들이 하나 이상의 대응하는 보조 구성 루틴들을 대신하여 실행된다.

Description

서로 다른 동작 모드를 이용하는 어댑터 구성 루틴들을 실행하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR EXECUTING ADAPTER CONFIGURATION ROUTINES UTILIZING DIFFERENT OPERATING MODES}
본 발명은 일반적으로 데이타 처리 시스템(data processing system)에 관한 것으로, 보다 구체적으로는, 다양한 하드웨어 구성 요소를 수용하도록 데이타 처리 시스템을 구성하기 위한 방법 및 시스템에 관한 것이다. 더욱 더 구체적으로는, 본 발명은 이 데이타 처리 시스템의 디폴트 동작 모드(default operating mode)가 아닌 다른 동작 모드를 위해 설계된 어댑터 카드 구성 루틴(adapter card configuring routine)을 지원하기 위한 방법 및 시스템에 관련되어 있다.
개인용 컴퓨터와 같은 범용 데이타 처리 시스템이 개시 또는 재개시될 때, 이 데이타 처리 시스템의 처리 리소스(processing resources)는 시동 루틴(startup routine)을 자동으로 실행함으로써 시스템이 유용한 작업을 할 수 있도록 준비시킨다. 전형적으로 시동 루틴은 시스템의 다양한 하드웨어 구성 요소들을 테스트한 다음, 이들 하드웨어 요소들이 운영체제나 응용 프로그램과 같은 소프트웨어에 의해 이용될 수 있도록 하드웨어 구성 요소들을 구성(configure)한다. 시동시에 하드웨어 구성 요소들을 자동으로 구성하는 프로세스는 하드웨어 요소들의 "초기화"라고도 알려져 있다. 또한, 시동 루틴은 소정의 요소들의 수동 구성(manual configuration)을 제공할 수도 있다; 그러나, 본 명세서는 자동 구성 프로세스에 중점을 두고 있다.
대개 시동 루틴들은 일반적으로 ROM이라 알려진 비휘발성 메모리에 저장된다. 따라서, 이와 같은 시동 루틴들은 "펌웨어(firmware)"라 간주된다. 특히, 전형적인 종래의 개인용 컴퓨터 환경에서, 처리 리소스들은 컴퓨터 마더보드 상에 위치하는 전자적으로 소거가능하고, 프로그램가능하며, 판독전용인 메모리(EEPROM)모듈로부터 시동 루틴을 얻는다. 시스템의 EEPROM에 포함된 시동 코드(즉, 주 시동 루틴)은, 서로 다른 다양한 어댑터 카드들을 포함한 서로 다른 하드웨어 구성 요소들을 갖는 시스템을 구성하는데에도 이용될 수 있도록, 일반적으로 융통성있게 설계된다(이후부터, 상기 주 시동 루틴을 포함하는 비휘발성 메모리는 간단히 시스템 ROM이라 언급될 것이다). 그러나, 시스템 ROM으로부터 명령어를 얻는 것외에도, 처리 리소스들은 어댑터 카드 자체로부터 구성 명령어(configuration instruction)들을 얻을 수도 있다.
어댑터 카드로부터의 구성 명령어들은 ROM 스캔이라 알려진 프로세스를 통해 얻어진다. ROM 스캔시에, 주 시동 루틴은 구성 루틴(즉, 어댑터 코드)을 찾기 위해 (존재한다면) 각각의 어댑터 카드 상의 ROM을 검색한다. 이와 같은 코드가 발견될 때마다, 주 시동 루틴은 어댑터 코드에게 제어를 임시적으로 넘겨준다. 그러면, 어댑터 코드는, 해당 어댑터를 지원하기 위해 필요하다면 시스템 구성을 변경하고 주 시동 루틴으로 제어를 되돌린다. 이러한 시동 방법은, 폭넓게 다양한 시스템 하드웨어의 지원을 용이하게 해주는 한편, 주 시동 루틴의 융통성을 극대화시킨다.
어댑터 코드와 시동 루틴이 동일한 동작 모드를 이용하도록 기록되어 있을 때, 상기 방법은 잘 동작한다. 예를 들어, 오늘날 제조되는 대부분의 개인용 컴퓨터들은 "IA-32 모드"(IA는 인텔 아키텍쳐를 상징하고, 32는 32-비트 어드레스가 지원됨을 상징한다)라 알려진 디폴트 동작 모드를 이용한다. 따라서, 이와 같은 시스템을 위한 주 시동 루틴과 어댑터 코드는 IA-32 모드를 실행하도록 설계된다.
그러나, 컴퓨터 기술의 진보로 인해 새로운 동작 모드가 채택될 때, 어댑터 코드 호환성에 관련된 문제가 발생한다. 예를 들어, 최근의 진보는, 레거시 IA-32 동작 모드가 아니라 "IA-64 모드"라 알려진 새로운 디폴트 동작 모드를 이용하는 데이타 처리 시스템의 도입을 초래했다. IA-32 모드와 IA-64 모드간의 한 차이점은 IA-64 모드는 64-비트 어드레스를 지원한다는 것이다. IA-64 모드의 채택에 관련된 한 문제점은 대부분의 어댑터 카드상의 구성 코드는 IA-32 모드용으로 설계되어 있기 때문에, 결과적으로 IA-64 모드에서 실행될 수 없다는 것이다. 또한, IA-64 코드를 갖는 어댑터 카드들은, IA-64 모드로 시동하는 시스템들이 도입된 후 상당한 시간이 경과한 후에나 널리 이용될 것으로 예측된다.
따라서, 시스템의 디폴트 동작 모드가 아닌 다른 동작 모드에서 어댑터 코드를 실행하기 위한 방법 및 시스템이 필요하다. 또한, 새로운 동작 모드에서 구성되는 어댑터 카드들과 더불어 레거시 어댑터 코드를 갖는 어댑터 카드를 지원하기 위한 방법 및 시스템이 필요하다. 나아가, 이러한 시스템과 방법들은, 이들이 시동 프로세스도 역시 최적화한다면, 추가적인 혜택을 실현할 것이다.
본 발명에 따르면, 하나 이상의 제1 비휘발성 메모리와, 하나 이상의 제2 비휘발성 메모리와, 적어도 제1 및 제2 동작 모드를 지원하는 처리 리소스를 포함하는 데이타 처리 시스템을 구성하기 위한 방법이 제1 동작 모드의 활성화와 더불어 시작한다. 그 다음, 제2 동작 모드를 이용하는 하나 이상의 보조 구성 루틴(secondary configuration routine)들이 하나 이상의 제2 비휘발성 메모리에서발견된다. 그리고, 이들 보조 구성 루틴들을 식별케하는 리스트가 저장된다. 리스트가 저장되고 난 후, 제1 동작 모드를 이용하는 하나 이상의 주 구성 루틴(primary configuration routine)들이 하나 이상의 제1 비휘발성 메모리에 위치하여 실행된다. 또한, 주 구성 루틴들중 어느것에도 대응하지 않은 모든 보조 구성 루틴들은 따로 구분되어진다(demarcate). 그 후, 제1 동작 모드 대신에 제2 동작 모드가 활성화된다. 그리고, 따로 구분되어진 보조 구성 루틴들이 실행된다.
실시예에서, 주 구성 루틴들은 시스템 메모리로부터 얻어지고, 보조 구성 루틴들은 어댑터 메모리로부터 얻어진다. 그리고, 하나 이상의 주 구성 루틴들이 하나 이상의 대응하는 보조 구성 루틴들을 대신하여 실행된다.
본 발명의 모든 목적, 특징, 및 이점들이 이하의 상세한 설명으로부터 명백해질 것이다.
도 1은 본 발명에 따라 서로 다른 동작 모드를 이용하는 어댑터 구성 루틴들을 실행하기 위한 설비를 갖춘 데이타 처리 시스템의 실시예의 블럭도.
도 2는 도 1에 도시된 시스템의 메모리 어드레스 공간에 저장된 예시적인 구조물 세트.
도 3a 및 3b는 본 발명에 따라 서로 다른 동작 모드를 이용하는 어댑터 구성 루틴들을 실행하기 위한 예시적인 프로세스의 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
200 : 데이타 처리 시스템
210 : 시스템 버스
218 : PCI 로컬 버스
224 : ISA 버스
도면들을 참조하여, 특히, 도 1을 참조하면, 본 발명에 따라 서로 다른 동작 모드를 이용하는 어댑터 구성 루틴들을 실행하기 위한 설비를 갖춘 예시적인 데이타 처리 시스템(200)의 블럭도가 도시되어 있다. 데이타 처리 시스템(200)은 중앙 처리 장치(CPU, 212)에 접속된 시스템 버스(210)을 포함하는 개인용 컴퓨터로서 도시되어 있다. 본 발명에 따르면, CPU(212)는 적어도 2개의 동작 모드를 지원한다. 실시예에서, 이들 동작 모드들은 종래의 잘 알려진 IA-32 모드와, 최근의 IA-64 모드이다.
시스템 버스(210)도 역시 PCI(Peripheral Component Interconnect) 호스트브리지(220)을 통해 PCI 로컬 버스(218)에 접속된다. PCI 로컬 버스(218)은 확장 버스 브리지(222)를 통해 ISA 버스(224)에 접속된다. 랜덤 액세스 메모리(RAM, 216)과 시스템 ROM(214)도 역시 PCI 호스트 브리지(220)에 접속된다. 사용자 입력을 받아들이기 위한 키보드(230) 및 마우스(232)는 (적절한 어댑터를 통해) ISA 버스(224)에 접속된다.
PCI 로컬 버스(218)도 역시 (하나 이상의 디스크 드라이브(226)과 같은) 추가적인 비휘발성 데이타 저장 장치 및 하나 이상의 어댑터 카드에 접속된다. 본 발명에 따르면, 이들 카드들 중 적어도 하나는 레거시 동작 모드에서 실행하는 구성 루틴을 갖는 ROM을 포함한다. 또한, 데이타 처리 시스템(200)은 새로운 동작 모드에서 실행하는 구성 루틴을 갖는 하나 이상의 어댑터 카드들을 포함할 수 있다. 실시예에서, IA-32 모드는 레거시 모드이고 IA-64 모드는 새로운 동작 모드이다. 따라서 레거시 구성 루틴들은 IA-32 구성 루틴(IA-32 어댑터 코드)이라 알려져 있고, 새로운 동작 모드에서 실행하는 구성 루틴들은 IA-64 구성 루틴(또는 IA-64 어댑터 코드)라 알려져 있다.
실시예에서, 어떠한 구성 루틴도 포함하고 있지 않은 오디오 어댑터(240)과, IA-32 구성 루틴(242)를 포함하는 네트워크 어댑터(241)과, IA-64 구성 루틴(252)를 포함하는 그래픽 어댑터(250)이 PCI 로컬 버스(218)에 접속되어 있다. 오디오 어댑터(240)과 그래픽 어댑터(250)은, 각각 스피커(244)를 통해 오디오 출력을 제어하고 디스플레이 장치(254)를 통해 시각 출력(visual output)을 제어한다. 네트워크 어댑터(241)은, 데이타 처리 시스템(200)이 (도시되지 않은) 근거리통신망(LAN) 내의 다른 컴퓨터들과 같은 다른 장치들과 통신하기 위한 포트(port)를 제공한다.
상술한 하드웨어 및 소프트웨어에 추가하여, 데이타 처리 시스템(200)은 시스템 ROM(214)에 저장되는 주 시동 루틴(260)을 포함한다. 시스템이 부팅될 때, (즉, 개시 또는 재개시될 때) 접속되어 있는 많은 구성 요소들이 함께 동작하도록 준비시키기 위해 주 시동 루틴(260)이 자동으로 로딩되어 처리 리소스들(즉, CPU(212))에 의해 실행된다. 실시예에서, 주 시동 루틴(260)은 디폴트 동작 모드로서의 IA-64 모드에서 동작을 자동으로 개시한다. 결과적으로, 성능을 최적화하기 위해, 주 시동 루틴(260)은 1차적으로 IA-64 모드에서 실행되도록 설계되어 있다. 그러나, 데이타 처리 시스템(200)은 새로운 동작 모드를 이용하는 구성 루틴들을 갖는 어댑터 카드들뿐만 아니라 레거시 구성 루틴들을 갖는 어댑터 카드들을 이용할 수 있도록 하는 것이 유익하다. 따라서, 주 시동 루틴(260)은 IA-32 어댑터 코드에 대한 지원도 포함한다.
서로 다른 동작 모드들용으로 기록된 구성 루틴들을 갖는 어댑터 카드들을 수용하기 위한 간단하긴 하지만 비효율적인 방법은, ROM 스캔시에 서로 다른 동작 모드를 갖는 어댑터 코드가 검출될 때마다 동작 모드를 변경하는 주 시동 루틴을 이용하는 것이다. 그러나, 동작 모드의 변경은 대단히 시간 집중형의 작업이기 때문에, 동작 모드를 변경하는 횟수를 최소화하는 것이 바람직할 것이다.
따라서, 이하에 보다 상세히 기술되는 바와 같이, 본 발명은 서로 다른 처리 모드들용으로 기록된 구성 루틴들을 갖는 어댑터 카드들을 관리하기 위한 보다 효율적인 프로세스 --동작 모드의 변경 횟수를 최소화하는 프로세스-- 를 제공한다. 또한, 본 발명은 레거시 구성 루틴(예를 들어, IA-32) 대신에 새로운 구성 루틴(예를 들어, IA-64)을 실행하기 위한 메카니즘을 포함한다. 따라서, 이 메카니즘은 어댑터 카드가 (어댑터 카드의 온보드 구성 루틴에 비해) 갱신된 구성 루틴을 통해 구성될 수 있도록 해준다. 또한, 이 메카니즘은 구성 루틴이 없는 어댑터 카드들에 구성 루틴이 (사실상) 추가될 수 있도록 해준다. 나아가, 어떤 경우에는, 이 메카니즘은 전체 구성 프로세스가 새로운 처리 모드에서 수행될 수 있도록 허용함으로써 효율을 최대화한다. 그러나, 이 프로세스를 상세히 다루기 이전에, 이 프로세스의 실시예에서 이용되는 데이타 구조물중 일부를 소개하는 것이 도움이 될 것이다.
결과적으로, 이제 도 2를 역시 참조하면, 실시예에 따라 데이타 처리 시스템(200)을 구성하는 프로세스에서 이용되는 다양한 데이타 구조물들의 위치를 도시하는 메모리도(300)이 도시되어 있다. 도시된 바와 같이, 4 기가바이트(GB) 메모리 어드레스 바로 아래에 ROM(214)에 매핑되는 512 킬로바이트(KB) 영역의 메모리 어드레스가 있다. 따라서, ROM(214)의 내용은 FFF80000(h)에서 시작하는 메모리 어드레스를 참조하여 액세스될 수 있다. 또한, 768 KB에서 시작하는 128KB 메모리 어드레스 영역은 어댑터 ROM(310)에 매핑되어 있다. 결과적으로, (네트워크 어댑터(241)로부터의) IA-32 구성 루틴(242)와 (그래픽 어댑터(250)으로부터의) IA-64 구성 루틴(252)는 128 KB 범위에 나타난다.
도 1 및 2에 도시된 바와 같이, 주 시동 루틴(260)에 추가하여, 시스템ROM(214)는 하나 이상의 추가 구성 루틴(270)을 포함할 수도 있다. 이하에서 보다 상세히 기술되는 바와 같이, 각각의 추가 구성 루틴(270)은, 레거시 어댑터 카드상의 IA-32 구성 루틴을 대신하여 실행되는 대체 구성 루틴(replacement configuration routine)으로서 역할하거나, 온보드 구성 루틴을 가지고 있지 않은 어댑터 카드를 구성하기 위해 (IA-64 모드로) 실행되는 보강 구성 루틴(enhancement configuration routine)으로서 역할할 수도 있다. 메모리 매핑 전략으로 인해, 주 시동 루틴(260)과 하나 이상의 추가 구성 루틴(270) 모두 FFF80000(h)에서 시작하는 512 KB 내에 나타난다. 또한, 시스템 ROM(214)가 모든 원하는 추가 구성 루틴(270)을 수용하기에 불충분한 공간을 포함한다면, FFF80000(h) 바로 아래의 메모리 어드레스를 통해 액세스될 수 있는 (보조 비휘발성 저장 장치와 같은) 하드웨어상에 하나 이상의 추가 구성 루틴(270)이 제공된다.
이제 도 3a 및 3b를 참조하면, 본 발명에 따라 구성 루틴들을 서로 다른 동작 모드에서 실행시키기 위한 예시적인 프로세스가 도시되어 있다. 이 프로세스는, CPU(212)가 주 시동 루틴(260)을 IA-64 모드로 실행하도록 만드는 데이타 처리 시스템의 개시 또는 재개시와 더불어 블럭(400)에서 시작한다. 예를 들어, CPU(212)는, 시스템 ROM(214)으로 매핑된 메모리 어드레스로부터의 128 KB 코드 조각을 RAM(216)에--구체적으로는, 어드레스 896KB에서 시작하는 메모리 범위 내에-- 복사함으로써 주 시동 루틴(260)의 실행을 개시한다. 블럭(410)에 도시된 바와 같이, 구성 프로세스의 초기 단계의 일부로서, 주 시동 루틴(260)은 파워-온-셀프-테스트(POST)를 실행하여 하드웨어 요소들이 적절히 동작하는지를 검사한다.
하드웨어가 테스트되고 코드 조각(320)이 1MB 어드레스 이하에 저장된 후에, 주 시동 루틴(320)은 블럭(420)에 도시된 바와 같이 어댑터 코드를 찾기 위해 어댑터 ROM(310)을 스캐닝한다. 예를 들어, 주 시동 루틴(260)은 (16진 55AA와 같은) 소정의 값을 찾기 위해 선정된 간격으로 메모리의 세그먼트들을 검사할 것이다. 그 다음, 프로세스는 블럭(422)로 넘어간다. 여기서, 주 시동 루틴(260)은 구성 루틴들이 발견되었는지를 판별한다. 발견되었다면, 블럭(424)에 도시된 바와 같이 주 시동 루틴(260)은 이 구성 루틴이 IA-32 모드로 실행되도록 설계되었는지를 판별한다. 만일 그렇다면, 블럭(426)에 도시된 바와 같이, 주 시동 루틴(260)은 구성 루틴을 즉시 호출하지 않고 그 대신, 발견된 루틴을 식별케하는 RAM(216)의 IA-32 구성 루틴(330)의 리스트(이후부터는 레거시 리스트라 언급함)에 한 레코드를 저장한다. 특히, 저장된 레코드는 구성 루틴의 시작 어드레스를 포함하며 어댑터의 PCI 장치 식별자(ID)를 포함할 수도 있다. 이 레코드는 어댑터의 PCI 서브시스템 ID와 PCI 서브시스템 벤더 ID도 역시 포함한다. 이 ID들은 종래 기술에 공지된 바와 같이 해당 어댑터 카드에 대한 채널을 나열함(enumerating)으로써 얻어진다. 예를 들어, 주 시동 루틴(260)이 IA-32 구성 루틴(242)를 발견한다면, 이 루틴에 대한 소정의 레코드가 저장될 것이다.
그러나, 구성 루틴이 IA-32 구성 루틴이 아니라면, 이 구성 루틴은 IA-64 모드에서 실행되도록 설계된 것으로 간주되고, 따라서, 블럭(428)에 도시된 바와 같이, 주 시동 루틴(260)은 이 루틴이 (IA-64 모드로) 실행되도록 한다. 예를 들어, IA-64 구성 루틴(252)가 발견되면, 주 시동 루틴(260)은 이 루틴을 호출할 것이다.발견된 구성 루틴이 실행된 후에, 제어는 주 시동 루틴(260)으로 되돌아가고, 주 시동 루틴은 어댑터 ROM(310) 내에 또 다른 구성 루틴이 발견될 수 있는지를 판별하기 위해 블럭(422)로 되돌아감으로써 구성 루틴들의 검색을 계속할 것이다.
일단 블럭(422)에서 어댑터 ROM(310)이 처리할 더 이상의 구성 루틴을 포함하고 있지 않다고 판별되면, 프로세스는 도면에서 (A)로 표시된 부분을 따라 블럭(440)으로 넘어간다. 블럭(440)에 도시된 바와 같이, 그 다음, 주 시동 루틴(260)은, 예를 들어 소정의 위치 또는 위치들을 검사하고, 및/또는 특정의 코드 또는 서명을 찾기 위해 스캐닝함으로써, 추가 구성 루틴을 찾기 위해 시스템 ROM(214)의 스캐닝을 시작한다. 그 다음 프로세스는 블럭(442)로 간다. 여기서 주 시동 루틴(260)은 추가 구성 루틴이 발견되었는지를 판별한다. 만일 그렇다면, 블럭(444)에 도시된 바와 같이 발견된 루틴이 실행되어 대응하는 어댑터 카드를 구성한다. 또한, 블럭(446)에 도시된 바와 같이, 주 시동 루틴(260)은, 레거시 리스트(330)이 IA-64 코드를 사용하여 구성된 어댑터 카드에 대한 레코드를 포함하는지를 판별한다. 만일 그렇다면, 블럭(448)에 도시된 바와 같이 이 카드에 대한 레코드가 레거시 리스트(330)으로부터 제거된다. 그 다음, 레코드가 제거된 후에, 또는 레거시 리스트(330)이 이러한 레코드를 가지고 있지 않다고 판별된 후에, 주 시동 루틴(260)은 블럭(442)로 되돌아가 시스템 ROM(214)로부터 다음 추가 루틴을 처리하기 시작한다.
일단 주 시동 루틴(260)이 처리할 더 이상의 추가 루틴이 없다고 판별하면, 프로세스는 블럭(460)으로 간다. 그 다음, 블럭(460)에 도시된 바와 같이, 주 시동 루틴(260)은 레거시 리스트(330)이 비어 있는지를 판별한다. 만일 그렇다면, 프로세스는 블럭(462)로 가고, 여기서 주 시동 루틴(260)은 데이타 처리 시스템(200)이 운영 체제를 부트시키도록 만든다. 그 다음, 블럭(464)에 도시된 바와 같이 프로세스가 종료한다.
그러나, 블럭(460)에서 레거시 리스트(330)이 비어있지 않다고 판별되면, 블럭(466)에 도시된 바와 같이 주 시동 루틴(260)은 동작 모드가 IA-64 모드로부터 IA-32 모드로 바뀌도록 만든다. 그 다음, 레거시 리스트(330)에서 확인된 모든 루틴들이 실행된 후, 마지막 구성 루틴으로부터 제어가 복귀하고, 상술한 바와 같이 운영 체제가 부팅되기 이전에 블럭(470)에 도시된 바와 같이, 주 시동 루틴(260)은 동작 모드를 IA-64 모드로 되돌린다.
결과적으로, 어떠한 추가 구성 루틴도 시스템 ROM(214)에 존재하고 있지 않다해도, 본 발명은, 하나 이상의 IA-32 구성 루틴이 실행되어야 하는때조차도 단 한번만 IA-32 모드로 전환함으로써 부트 프로세스의 효율을 최적화한다. 또한, 시스템 ROM(214)가 (네트워크 어댑터(241), SCSI 디스크 드라이브를 데이타 처리시스템(200)에 접속시키기 위한 SCSI 카드등과 같은) 레거시 어댑터카드용의 추가 구성 루틴을 탑재(flash)했다면, 본 발명은 어댑터 카드 상에 존재하는 IA-32 루틴 대신에 추가 루틴을 이용한다. 따라서, 본 발명은 레거시 어댑터 카드를 실제로 수정하지 않고도 레거시 어댑터 카드에 대한 구성 루틴이 사실상 개선되도록 해준다. 또한, 본 발명은 시스템 ROM(214)가 시스템의 IA-32 구성 루틴들 모두에 대응하는 추가 구성 루틴으로 채워져 있다면 IA-64 모드로 전환할 필요가 없도록 해준다.
나아가, 본 발명은 이전의 구성 루틴을 가지고 있지 않은 어댑터 카드에 대해 추가 구성 루틴의 실행을 제공한다. 따라서, 본 발명은, 본 발명이 없다면 단순하게 디폴트 기본 입력/출력 시스템(BIOS) 설정에 따라 구성되어야 하는 어댑터 카드에 대해, 구성 설정의 커스터마이징을 제공한다.
본 발명이 실시예를 참조하여 특정적으로 도시되고 기술되었지만, 본 발명의 정신과 범위를 벗어나지 않고도 그 형식과 세부사항에서 다양한 수정이 이루어질 수 있다는 것을 당업자는 이해할 것이다. 예를 들어, 실시예에서 다양한 메모리들이 소정의 메모리 어드레스로 매핑되고 있지만, 이러한 매핑은 본 발명의 정신을 벗어나지 않고 용이하게 변경될 수 있다. 예를 들어, 시스템 ROM(214)가 (32 비트로 어드레싱할 수 있는 최대 메모리 양에 해당하는) 4GB 바로 아래의 메모리 어드레스로 매핑되고 있는 것으로 도시되고 있지만, (64 비트 시스템과 같은) 다른 아키텍쳐의 시스템에서, 이 시스템 ROM은 더 상위의 영역으로 매핑될 수도 있다.
마찬가지로, 추가 구성 루틴을 액세스하기 위해 메모리 어드레스 공간에서의 추가 영역이 식별될 수 있다.
또한, 시스템 ROM(214)는 EEPROM으로 기술되고 있지만, 이를 대신하여, 또는 이에 추가하여, (컴팩트 플래시 카드와 같은) 다른 메모리 기술이 이용될 수도 있다. 또한, 데이타 처리 시스템(200)은 하나의 CPU를 가진 개인용 컴퓨터로서 기술되었지만, 복수개의 CPU를 갖는 데이타 처리 시스템을 포함한 다른 아키텍쳐도 마찬가지로 본 발명이 적용될 수 있다. 마찬가지로, 실시에에서의 어댑터 카드들은 PCI 어댑터 카드이지만, 다른 버스 아키텍쳐용으로 설계된 카드를 이용할 수도 있다. 따라서, 본 발명이 설명된 특정의 아키텍쳐에만 한정되는 것이 아님을 당업자는 이해할 것이다.
시스템의 디폴트 동작 모드가 아닌 다른 동작 모드에서 어댑터 코드를 실행하기 위한 방법 및 시스템이 제공되며, 새로운 동작 모드에서 구성되는 어댑터 카드들과 더불어 레거시 어댑터 코드를 갖는 어댑터 카드를 지원하기 위한 방법 및 시스템이 제공된다.

Claims (23)

  1. 하나 이상의 제1 비휘발성 메모리와, 하나 이상의 제2 비휘발성 메모리와, 적어도 제1 및 제2 동작 모드를 지원하는 처리 리소스를 포함하는 데이타 처리 시스템을 구성하기 위한 방법에 있어서,
    상기 제1 동작 모드를 활성화하는 단계와,
    상기 하나 이상의 제2 비휘발성 메모리 내에서, 상기 제2 동작 모드를 이용하는 하나 이상의 보조 구성 루틴(secondary configuration routine)을 발견하는 단계와,
    상기 하나 이상의 보조 구성 루틴을 식별케하는 리스트를 저장하는 단계와,
    상기 하나 이상의 제1 비휘발성 메모리내에서, 상기 제1 동작 모드를 이용하는 하나 이상의 주 구성 루틴(primary configuration routine)의 위치를 파악하는 단계와,
    상기 하나 이상의 주 구성 루틴을 실행하는 단계와,
    상기 하나 이상의 주 구성 루틴들중 어떠한 것에도 대응하지 않는 상기 하나 이상의 보조 구성 루틴들중 적어도 하나를 구분해 두는 단계와,
    상기 발견, 저장, 위치파악, 실행, 및 구분 단계이후에만 상기 제1 동작 모드로부터 상기 제2 동작 모드로 전환하는 단계와,
    상기 구분해둔 보조 구성 루틴을 그 다음에 실행하는 단계
    를 포함하는 데이타 처리 시스템 구성 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 제2 비휘발성 메모리는 하나 이상의 어댑터 메모리를 포함하고,
    상기 하나 이상의 보조 구성 루틴을 발견하는 상기 단계는, 상기 하나 이상의 보조 구성 루틴을 찾기 위해 상기 하나 이상의 어댑터 메모리를 검색하는 단계를 포함하는 데이타 처리 시스템 구성 방법.
  3. 제1항에 있어서,
    상기 하나 이상의 제1 비휘발성 메모리는 시스템 메모리를 포함하고,
    상기 하나 이상의 주 구성 루틴의 위치를 파악하는 상기 단계는, 상기 하나 이상의 주 구성 루틴을 찾기 위해 상기 시스템 메모리를 검색하는 단계를 포함하는 데이타 처리 시스템 구성 방법.
  4. 제1항에 있어서,
    상기 하나 이상의 주 구성 루틴은 하나 이상의 대체 구성 루틴(replacement configuration routine)을 포함하고,
    상기 구분 단계는 상기 하나 이상의 대체 구성 루틴의 각각과, 대응하는 보조 구성 루틴을 정합시키는 단계를 포함하고,
    상기 구분해둔 보조 구성 루틴을 실행하는 단계는, 상기 대체 구성 루틴들중 어느것과도 정합하지 않는 보조 구성 루틴만을 실행하는 단계를 포함하는 데이타 처리 시스템 구성 방법.
  5. 제1항에 있어서, 상기 저장 단계는 상기 하나 이상의 보조 구성 루틴들의 각각에 대한 어드레스와 장치 식별자를 기록하는 단계를 포함하는 데이타 처리 시스템 구성 방법.
  6. 제1항에 있어서,
    상기 구분해둔 보조 구성 루틴을 실행하는 단계 이후에 상기 제1 동작 모드로 다시 전환하는 단계와,
    그 후, 운영 체제를 로딩하는 단계
    를 더 포함하는 데이타 처리 시스템 구성 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 주 구성 루틴은 적어도 하나의 IA-64 구성 루틴을 포함하고,
    상기 하나 이상의 보조 구성 루틴은 적어도 하나의 IA-32 구성 루틴을 포함하고,
    상기 하나 이상의 주 구성 루틴의 위치를 파악하는 단계는 상기 적어도 하나의 IA-64 구성 루틴의 위치를 파악하는 단계를 포함하고,
    상기 하나 이상의 보조 구성 루틴을 발견하는 단계는 상기 적어도 하나의 IA-32 구성 루틴을 발견하는 단계를 포함하는 데이타 처리 시스템 구성 방법.
  8. 데이타 처리 시스템에 있어서,
    적어도 제1 및 제2 동작 모드를 지원하며 하나 이상의 제1 비휘발성 메모 및 제2 비휘발성 메모리와 통신하는 처리 리소스와,
    상기 제1 비휘발성 메모리 및 제2 비휘발성 메모리에 각각 저장된 하나 이상의 주 구성 루틴 및 하나 이상의 보조 구성 루틴과,
    상기 하나 이상의 보조 구성 루틴을 발견하는 스캐닝 로직과,
    상기 하나 이상의 보조 구성 루틴을 식별케하는 리스트를 저장하는 저장 로직과,
    상기 처리 리소스가 상기 주 구성 루틴을 실행하도록 만드는 주 실행 로직과,
    상기 주 구성 루틴들 중 어떠한 것에도 대응하지 않는 모든 보조 구성 루틴들을 구분해두는 구분 로직과,
    상기 스캐닝 로직과, 상기 저장 로직과, 상기 주 실행 로직과, 상기 구분 로직이 실행되는 동안 상기 제1 동작 모드를 유지하는 시동 루틴과,
    상기 스캐닝 로직과, 상기 저장 로직과, 상기 주 실행 로직과, 상기 구분 로직이 실행되고 난 이후에 상기 구분해둔 보조 구성 루틴들이 제2 동작 모드에서 실행되도록 만드는 보조 실행 로직
    을 포함하는 데이타 처리 시스템.
  9. 제8항에 있어서, 상기 하나 이상의 보조 메모리는 상기 하나 이상의 보조 구성 루틴을 포함하는 하나 이상의 어댑터 메모리를 포함하는 데이타 처리 시스템.
  10. 제8항에 있어서, 상기 하나 이상의 제1 비휘발성 메모리는 상기 하나 이상의 주 구성 루틴을 포함하는 시스템 메모리를 포함하는 데이타 처리 시스템.
  11. 제8항에 있어서,
    상기 하나 이상의 주 구성 루틴은 하나 이상의 대체 구성 루틴을 포함하고,
    상기 구분 로직은 상기 하나 이상의 대체 구성 루틴들의 각각과, 대응하는 보조 구성 루틴을 정합시키며,
    상기 보조 실행 로직은 상기 처리 리소스가 상기 대체 구성 루틴들중 어느 것에도 정합되지 않는 보조 구성 루틴들만 실행하도록 만드는 데이타 처리 시스템.
  12. 제8항에 있어서, 상기 저장 로직은 상기 하나 이상의 보조 구성 루틴들 각각에 대한 어드레스 및 장치 식별자를 저장하는 데이타 처리 시스템.
  13. 제8항에 있어서,
    상기 시동 루틴은, 상기 구분해둔 보조 구성 루틴들이 실행된 후에 상기 데이타 처리 시스템을 상기 제1 동작 모드로 되돌리며,
    상기 시동 루틴은 그 이후에 상기 데이타 처리 시스템이 운영 체제를 로딩하도록 만드는 데이타 처리 시스템.
  14. 제8항에 있어서,
    상기 하나 이상의 주 구성 루틴은 적어도 하나의 IA-64 구성 루틴을 포함하며,
    상기 하나 이상의 보조 구성 루틴은 적어도 하나의 IA-32 구성 루틴을 포함하는 데이타 처리 시스템.
  15. 적어도 제1 및 제2 동작 모드를 지원하는 처리 리소스와, 하나 이상의 제1 비휘발성 메모리와, 하나 이상의 제2 비휘발성 메모리를 갖는 데이타 처리 시스템을 구성하기 위한 프로그램 제품에 있어서,
    상기 제2 동작 모드를 이용하는 하나 이상의 보조 구성 루틴을 발견하는 스캐닝 로직과,
    상기 하나 이상의 보조 구성 루틴을 식별하는 리스트를 저장하는 저장 로직과,
    상기 처리 리소스가 하나 이상의 주 구성 루틴을 실행하도록 만드는 주 실행 로직과,
    상기 하나 이상의 주 구성 루틴들 중 어느 것에도 대응하지 않는 상기 모든보조 구성 루틴들을 구분해두는 구분 로직과,
    상기 스캐닝 로직과, 상기 저장 로직과, 상기 주 실행 로직과, 상기 구분 로직이 실행되는 동안 상기 처리 리소스를 상기 제1 동작 모드로 유지하는 시동 루틴-상기 시동 루틴은 상기 스캐닝 로직과, 상기 저장 로직과, 상기 주 실행 로직과, 상기 구분 로직을 포함함-과,
    상기 스캐닝 로직과, 상기 저장 로직과, 상기 주 실행 로직과, 상기 구분 로직이 실행된 이후에 상기 구분된 보조 구성 루틴들이 상기 제2 동작 모드에서 실행되도록 만드는 상기 시동 루틴 내부의 보조 실행 로직과,
    상기 시동 루틴을 인코딩한 컴퓨터 이용가능 매체
    를 포함하는 프로그램 제품.
  16. 제15항에 있어서,
    상기 하나 이상의 제2 비휘발성 메모리는 하나 이상의 어댑터 메모리를 포함하고,
    상기 스캐닝 로직은 상기 하나 이상의 어댑터 메모리를 스캐닝함으로써 상기 하나 이상의 보조 구성 루틴을 발견하는 프로그램 제품.
  17. 제15항에 있어서,
    상기 하나 이상의 제1 비휘발성 메모리는 시스템 메모리를 포함하고,
    상기 주 실행 로직은, 상기 처리 리소스가 상기 시스템 메모리로부터 상기하나 이상의 주 구성 루틴을 얻도록 만드는 프로그램 제품.
  18. 제15항에 있어서,
    상기 하나 이상의 주 구성 루틴은 하나 이상의 대체 구성 루틴들을 포함하고,
    상기 구분 로직은 상기 하나 이상의 대체 구성 루틴들의 각각을 이에 대응하는 보조 구성 루틴과 정합시키며,
    상기 보조 실행 로직은, 상기 처리 리소스가 상기 대체 구성 루틴들중 어떠한 것과도 정합하지 않는 보조 구성 루틴들만을 실행하도록 만드는 프로그램 제품.
  19. 제15항에 있어서, 상기 저장 로직은 상기 하나 이상의 보조 구성 루틴들 각각에 대하여 어드레스 및 장치 식별자를 저장하는 프로그램 제품.
  20. 제15항에 있어서, 상기 시동 루틴은,
    상기 구분해 둔 보조 구성 루틴들이 실행된 후에 상기 데이타 처리 시스템을 상기 제1 동작 모드로 되돌려놓는 되바꿈 로직(swap back logic)과,
    상기 처리 모드가 상기 제1 동작 모드로 되돌려지고 난후에 상기 데이타 처리 시스템이 운영 체제를 로드하도록 만드는 운영 체제 개시 로직
    을 포함하는 프로그램 제품.
  21. 제15항에 있어서,
    상기 하나 이상의 주 구성 루틴은 적어도 하나의 IA-64 구성 루틴을 포함하고,
    상기 하나 이상의 보조 구성 루틴은 적어도 하나의 IA-32 구성 루틴을 포함하고,
    상기 주 실행 로직은, 상기 처리 리소스가 상기 적어도 하나의 IA-64 구성 루틴을 샐행하도록 만들며,
    상기 보조 실행 로직은, 상기 처리 리소스가 상기 적어도 하나의 IA-32 구성 루틴을 실행하도록 만드는 프로그램 제품.
  22. 데이타 처리 시스템에 있어서,
    제1 및 제2 동작 모드를 지원하는 처리 리소스와,
    하나 이상의 주 구성 루틴과 하나 이상의 보조 구성 루틴을 포함하는 메모리와,
    상기 처리 리소스가 상기 제1 동작 모드를 유지하고 있는 동안 상기 주 구성 루틴들 모두를 실행하기 위한 수단과,
    상기 주 구성 루틴들중 어떠한 것에도 대응하지 않는 상기 보조 구성 루틴들을 판별하기 위한 수단과,
    상기 제1 동작 모드로부터 상기 제2 동작 모드로 전환하기 위한 수단과,
    상기 주 구성 루틴들중 어느 것에도 대응하지 않는 상기 하나 이상의 보조구성 루틴들을 상기 제2 동작 모드에서 실행하기 위한 수단
    을 포함하는 데이타 처리 시스템.
  23. 제22항에 있어서, 상기 메모리는,
    상기 주 구성 루틴들을 포함하는 시스템 메모리와,
    상기 보조 구성 루틴들을 포함하는 어댑터 메모리
    를 포함하는 데이타 처리 시스템.
KR10-2001-0020238A 2000-05-08 2001-04-16 서로 다른 동작 모드를 이용하는 어댑터 구성 루틴들을실행하기 위한 방법 및 시스템 KR100416166B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/566,836 US6601163B1 (en) 2000-05-08 2000-05-08 Method and system for executing adapter configuration routines utilizing different operating modes
US09/566,836 2000-05-08

Publications (2)

Publication Number Publication Date
KR20010102853A true KR20010102853A (ko) 2001-11-16
KR100416166B1 KR100416166B1 (ko) 2004-01-24

Family

ID=24264575

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0020238A KR100416166B1 (ko) 2000-05-08 2001-04-16 서로 다른 동작 모드를 이용하는 어댑터 구성 루틴들을실행하기 위한 방법 및 시스템

Country Status (3)

Country Link
US (1) US6601163B1 (ko)
JP (1) JP3693240B2 (ko)
KR (1) KR100416166B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2003016996A1 (ja) * 2001-08-21 2004-12-09 古河電気工業株式会社 ラマン増幅方法
KR100572325B1 (ko) * 2003-12-17 2006-04-19 삼성전자주식회사 이온 주입 장치 및 이를 이용한 이온 주입 방법
US7405949B2 (en) * 2005-12-09 2008-07-29 Samsung Electronics Co., Ltd. Memory system having point-to-point (PTP) and point-to-two-point (PTTP) links between devices
KR100846569B1 (ko) * 2006-06-14 2008-07-15 매그나칩 반도체 유한회사 Mems 소자의 패키지 및 그 제조방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497497A (en) 1989-11-03 1996-03-05 Compaq Computer Corp. Method and apparatus for resetting multiple processors using a common ROM
EP0591437B1 (en) 1991-06-26 1997-10-01 AST RESEARCH, Inc. Multiprocessor distributed initialization and self-test system
US5481709A (en) * 1992-06-22 1996-01-02 International Business Machines Corporation Method and apparatus for providing a modular ABIOS device support layer in a computer system
US5341494A (en) 1993-02-12 1994-08-23 Compaq Computer Corporation Memory accessing system with an interface and memory selection unit utilizing write protect and strobe signals
JP3274604B2 (ja) * 1996-04-26 2002-04-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 周辺デバイスの自動イネーブル方法
US6480952B2 (en) * 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
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
US6163764A (en) * 1998-10-12 2000-12-19 Intel Corporation Emulation of an instruction set on an instruction set architecture transition
US6128731A (en) * 1998-10-21 2000-10-03 Silicon Graphics, Inc. Advanced boot sequence for an +86 computer system that maintains expansion card device compatibility
US6081890A (en) * 1998-11-30 2000-06-27 Intel Corporation Method of communication between firmware written for different instruction set architectures
US6282596B1 (en) * 1999-03-25 2001-08-28 International Business Machines Corporation Method and system for hot-plugging a processor into a data processing system

Also Published As

Publication number Publication date
JP2002024024A (ja) 2002-01-25
JP3693240B2 (ja) 2005-09-07
KR100416166B1 (ko) 2004-01-24
US6601163B1 (en) 2003-07-29

Similar Documents

Publication Publication Date Title
US6282647B1 (en) Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
US5854905A (en) Extensible bios for boot support of devices on multiple hierarchical buses
US6496893B1 (en) Apparatus and method for swapping devices while a computer is running
US5768568A (en) System and method for initializing an information processing system
US6725178B2 (en) Use of hidden partitions in a storage device for storing BIOS extension files
US5835760A (en) Method and arrangement for providing BIOS to a host computer
US7617391B2 (en) Method and apparatus for dynamically selecting one of multiple firmware images for booting an I/O controller
US6308264B1 (en) Dual use master boot record
US5701477A (en) Method and apparatus for master boot record shadowing
JP5167387B2 (ja) メモリフラグメンテーションの低減
EP1485797B1 (en) Boot process
EP1378830B1 (en) Operating system selector and data storage drive
IE20070400A1 (en) Method and system for uniquely identifying peripheral component devices
US20070038685A1 (en) Computer system and a booting method of the same
US20070005871A1 (en) Using a block device interface to invoke device controller functionality
US7376821B2 (en) Data processing system and method
US20190068772A1 (en) Computer system and method thereof for bluetooth data sharing between uefi firmware and os
US6910113B2 (en) Executing large device firmware programs
KR100416166B1 (ko) 서로 다른 동작 모드를 이용하는 어댑터 구성 루틴들을실행하기 위한 방법 및 시스템
US20050027908A1 (en) Support for non-standard device
US7103767B2 (en) Method and apparatus to support legacy master boot record (MBR) partitions
US7162568B2 (en) Apparatus and method for flash ROM management
US9086895B1 (en) Controlling hardware driver selection
JP2003525494A (ja) コンピュータの動作中に装置をスワップするための装置および方法
JP2005071345A (ja) デバイスのバス機能へのコンフィギュレーション可能マッピング

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

Payment date: 20121226

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20131219

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20151218

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee