KR100199020B1 - 고속병렬컴퓨터용 부트 에뮬레이션 방법 - Google Patents
고속병렬컴퓨터용 부트 에뮬레이션 방법 Download PDFInfo
- Publication number
- KR100199020B1 KR100199020B1 KR1019960062352A KR19960062352A KR100199020B1 KR 100199020 B1 KR100199020 B1 KR 100199020B1 KR 1019960062352 A KR1019960062352 A KR 1019960062352A KR 19960062352 A KR19960062352 A KR 19960062352A KR 100199020 B1 KR100199020 B1 KR 100199020B1
- Authority
- KR
- South Korea
- Prior art keywords
- boot
- firmware
- function
- device driver
- function call
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring 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)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 고속병렬컴퓨터의 MPE 보드의 EPROM에 장착될 펌웨어의 기능을 개인용 컴퓨터로 구성된 테스트베드에서 부트 에뮬레이션을 수행하는 방법에 관한 것으로, 고속 병렬컴퓨터의 부트 기능 및 펌웨어 기능을 개인용 컴퓨터로 구성된 테스트베드에서 에뮬레이션학 위한 부트 에뮬레이션 방법에 있어서, 부트 플로피 디스크에 부트 에뮬레이터 코드를 기록하여 시스템 기동과 동시에 부트 에뮬레이터 코드가 메모리에 적재되어 동작할 수 있도록 하는 제1단게와, 상기한 부트 에뮬레이터(20)의 초기화 과정에서 테이프 장치 구동기(25)를 부트 플로피 디스크로부터 추가로 적재하고, 함수 호출 테이블과 장치 구동기 테이블을 작성 관리하는 제2단계와, 펌웨어로부터 함수 호출 또는 부트 처리 요구를 받아, 부트 처리기(21)가 펌웨어 함수 호출 처리기(23)에 의해 테이프 장치 구동기(25) 및 실제 모드에서의 BIOS호출을 수행하도록 하고, 보호 모드로 복귀한 후 함수 반환값을 정리하여 함수 호출 위치로 복귀하도록 하는 제3단계로 구성된 것을 특징으로 한다.
Description
본 발명은 고속병렬컴퓨터용 브트 에뮬에이션 방법에 관한 것으로, 특히, 고속 병렬컴퓨터의 MPE(Main Processing Engine)보드의 EPROM 에 장착될 펌웨어의 기능을 개인용 컴퓨터로 구성된 테스트배드에서 부트 에뮬레이션을 수행하는 방법에 관한것이다.
일반적으로, 고속 병렬컴퓨터는 개인용 컴퓨터의 마더보드와 비슷하게 구성된 다수의 노드로 구성되어 있으며, 8개의 노드들이 하나의 클러스터를 형성하고, 이들 클러스터가 최대 16개로 구성되는 클러스터링 시스템이다. 이때, 각 노드들은 MPE보드에 XNIF(Crossbar Network Interface)에 의해 서로 연결된 구조를 가지고 있으며, 메시지 전송에 의해 노드들간의 통신을 수행하도록 되어 있다. 또한 , 각 노드는 공통으로 MPE보드를 가지고, 4개까지의 팬티움 프로 칩츨 프로세서로 사용하며, 최대 1기가 바이트의 지역 공유메모리를 가지고 있고, 2개의 직렬 포트와 1메가 바이트의 비휘발성 메모리 및 TOCD(Time-of-Day Clock)등과 같이 개인용 컴퓨터의 마더 보드가 구비한 하드웨어 자원을 대부분 사용하는 구조를 지니고 있다.
한편, 개인용 컴퓨터에서 사용하는 BIOS(Basic Input Output System)호출은, DOS(Disk Operating System)에서 사용할 경우에 제조회사가 다른 여러 종류의 확장 보드들을 사용할 수 있도록 인터페이스를 제공한다는 장점이 있는 반면에, 소프트웨어 인터럽트 처리에 의한 오버헤드로 인해 시스템의 성능을 크게 저하시키는 단점이 있다. 그러나,고속병렬컴퓨터의 펌웨어와 같이 펌웨어 호출리 보호 모드(Protected Mode)에서 직접 하드웨어를 제어하게 되면 성능이 대폭 향상된다. 즉, 하드 디스크로부터 운영체제를 부팅하는 경우에, 부팅 처리과정에서 펌웨어 호출에 의해 디스크 읽기를 요청하므로, 펌웨어 호출에 따른 오버헤드를 줄여 줌으로써, 6메가 바이트 이상이나 되는 고속병렬컴퓨터용 운영체제의 부팅 소요시간을 줄일 수 있다.
상기한 바아 같이, 고속병렬컴퓨터의 MPE 보드가 개인용 컴퓨터의 마더 보드가 갖고 있는 자원들을 많이 이용하고 있지만, 자원의 관리 및 사용방법에 있엇는 개인용 컴퓨터와 많은 차이가 있다. 개인용 컴퓨터가 BIOS와 이것을 이용하는 운영체제로 동작하는 반면에, 고속병렬컴퓨터는 보호 모드로 동작하는 펌웨어에 의해 하드 디스크로부터 운영체제를 부팅하며, 직렬 포트에 접속된 일반 터미널로 사용자와 인터페이스해야 한다.
즉, 대부분의 개인용 컴퓨터의 마더 보드와 시스템 슬롯에 추가된 장치들의 BIOS가 제공하는 하드웨어 초기화 및 장치 구동기가 실제 모드(Real Mode)에서 동작하며 DOS화일 시스템으로부터 운영체제를 부팅하는 방식이나 하드 디스크에 추가로 사용하는 UNIX화일 시스템으로부터 UNIX운영체제를 부팅하기 위해 2단계부팅 과정중에 모드 변환에 의해 처리하는 방식과는 달리, 보호 모드로만 동작하게 되어 있는 고속병렬컴퓨너의 특성과, 개인용컴퓨터의 기본인 BIOS및 추가 장착 보드의 확장 BIOS를 사용할 수 없는 고속 병렬컴퓨터에서는, 펌웨어가 모든 장치 구동기를 제공하여야 한다.
그러나, 펌웨어의 개발에는 많은 시간이 소요되며, MPE 보드가 완성되어야 시험이 가능할 뿐만 아니라, 다양한 추가 장치들에 대한 장치 구동기를 개발 하기란 매우 어려운 문제점이 있다.
결국, 본 발명은 상기한 문제점을 해결하기 위해 주어진 것으로, 본 발명의 주된 목적은, 펌웨어와 BIOS사이에 부트 에뮬레이터를 설치하여 개인용 컴퓨터를 테스트베드로 사용하면서 하드웨어 종속적인 부분을 에뮬레이션하여 고속병렬컴퓨터의 사용 환경을 제공함으로써, 고속병렬컴퓨터의 펌웨어를 개발하는 과정에서 펌웨어에 포함시킬 기능의 시험을 가능하게 함은 물론 EPROM 의 프로그래밍 과정을 줄여 주고, 고속병렬컴퓨터에 맞도록 개발된 부팅 과정 및 운영체제를 테스트베드에서 확인 및 수정하여 하드웨어가 완성 되기 이전에 시험이 가능하도록 하는, 고속병렬컴퓨터용 부트 에뮬레이션 방법을 제공함에 있다.
본 발명의 또다른 목적은, 테스트베드와 고속병렬컴퓨터의 하드웨어 자원 및 동작상의 차이점을 반영하여 복잡한 부팅 절차를 조기에 확인 고정시키고, 펌 웨어 및 부팅 과정이 운영체제에게 넘겨줄 내용들으 테스트베드에서 확인하며, 하드웨어 자원의 접근과 하드웨어 인증 시험의 조기 개발을 위한 도구를 제공할 수 있는, 고속병렬컴퓨터용 부트 에뮬레이션 방법을 제공함에 있다.
제1도는 본 발명에 따른 부트 에뮬레이터의 계층적 구조도.
제2도는 본 발명에 따른 부트 에뮬레이터의 초기화 부분에 대한 흐름도.
제3도는 본 발명에 있어서 펌웨어 함수 호출시, 부트 에뮬레이터가 하드웨어에 접근하는 절차를 나타낸 흐름도.
* 도면의 주요부분에 대한 부호의 설명
10 : 펌웨어 모니터 20 : 부트 에뮬레이터
21 : 부트 처리기 22 : 초기화
23 : 펌웨어 함수 호출기 24 : 구동기 적재기
25 : 테이프 구동기 30 : BIOS
40 : 하드웨어
상기한 목적을 달성하는, 본 발명에 따른 고속병렬컴퓨터용 부트 에뮬레이션 방법은, 고속병렬컴퓨터의 부트 기능 및 펌웨어 기능을 개인용 컴퓨터로 구성된 테스트베드에서 에뮬레이션하기 위한 부트 에뮬레이션 방법에 있어서, 부트 플로피 디스크에 부트 에뮬레이터 코드를 기록하여 시스템 기동과 동시에 부트에뮬레이터 코드가 메모리에 적재되어 동자갈 수 있도록 하는 제1단계와, 상기한 부트 에뮬레이터의 초기화 과정에서 테이프 장치 구동기를 부트 플로피 디스크로부터 추가로 적재하고, 함수 호출 테이블과 장치 구동기 테이블을 작성 관리하는 제2단계와, 펌웨어로부터 함수 호출 또는 부트 처리 요구르르 받아, 부트 처리기가 펌웨어 함수 호출 처리기에 의해 테이프 장치 구동기 및 실제모드에서의 BIOS호출을 수행하도록 하고, 보호 모드로 복귀한 후 함수 반환값을 정리하여 하수 호출 위치로 복귀하도록 하는 제3단계로 구성된 것을 특징으로 한다.
본 발명에서는, 부트 에뮬레이션 코드를 부트 플로피 디스크에 기록하여 플로피 부팅 방식에 의해 메모리에 적재되도록 하여, 쉽게 개인용 컴퓨터에서 이용할 수 있게 한다. 고속병렬컴퓨터의 펌웨어의 분량이 커짐에 따라, 일시에 에뮬레이션 코드를 적재하게되면, 플로피 디스크의 속도에 따라 에뮬레이션 코드를 적재하는데 소요되는 시간이 길어지며 개인용 컴퓨터의 메모리 운영 방식에 따라 모두 적재할 수가 없게 된다. 따라서, 본 발명에서는, 부트 에뮬레이션 코드를 초기화 및 펌웨어 함수 호출 기능, 테이프 구동기와 펌웨어 모니터로 구성되는 3단계 부팅 방법을 적용하여 각각 적재될 메모리를 분리함으로써, 필요한 기능을 선택적으로 수행시킬수 있게 한다.
이하, 본 발명의 바람직한 실시예에 따른, 고속병렬컴퓨터용 부트 에뮬레이션 방법에 대하여 첨부도면을 참조하여 보다 상세히 설명한다.
제1도는 본 발명에 다른 부트 에뮬레이터의 계층적 구조도로서, 개인용 컴퓨터의 마더 보드에 포함된 하드웨어(40) 자원과 그 하드웨어(40)를 제어하는 BIOS(30) 위에 부트 에뮬레이터(20)를 부트 플로피 디스크로부터 적재한 이후에, 고속병렬컴퓨터용 펌웨어를 소프트웨어 방식으로 탑재하여 펌웨어 모니터(10) 및 운영체제 부팅 기능을 시험하는 환경을 나타낸 것이다.
제1도에 도시된 바와 같이, 부트 에뮬레이터(20)는 부트 처리기(21), 초기화(22), 펌웨어 함수 호출 처리기(23), 구동기 적재기(24) 및 테이프 구동기(25)의 6가지의 기능에 따라 분리 구성할 수 있다. 이중에서, 부트 처리기(21)는 펌웨어의 부트 요구에 대해 고속병렬컴퓨터가 인식할 수 있는 부트 장치 번호를 장치 구동기 테이블에서 정한 테스트베드의 장치 번호로 변환하여, 펌웨어 함수 호출 처리기(23)에 디스크나 테이프로부터의 읽기 요구를 수행하는 부분이다.
제2도는 본 발명에 따른 부트 에뮬레이터의 초기화 부분에 대한 흐름도이다.
제2도에 도시된 바와 같이, 부트 에뮬레이터(20)는 보호 모드로 진입한 다음(S11), 메모리에 적재된 이후에 제어권을 개인용 컴퓨터의 ROM BIOS(30)로부터 이어받아 펌웨어 함수 호출을 위한 테이블을 작성한다(S12).
그후, 테이프 구동기(25)가 필요한지를 판별하여(S13), 시스템 설치와 같이 테이프 장치의 사용이 필요한 경우에 대해서는 테이프 장치 구동기(25)를 부트 플로피 디스크의 나머지 부분으로부터 구동기 적재기(24)를 이용하여 메모리에 읽어 들이고(S14), 장치 구동기 테이블을 작성하여 부트 장치 요구시 사용하도록 준비한다(S15). 이 과정에서 작성되는 함수 호출 테이블 및 장치 구동기 테이블은 BIOS에 의해 예약되어 있으나, 사용하지 않는 영역인 0x200번지부터 기록하여 펌웨어 함수 호출시 사용할 수 있도록 한다.
제3도는 본 발명에 있어서 펌웨어 함수 호출시 부트 에뮬레이터(20)가 BIOS(30) 및 테이프 장치 구동기(25)를 통해 하드웨어(40)에 접근하는 절차를 나타내는 흐름도이다.
제3도에 도시된 바와 같이, 펌웨어나 부트 처리기(21)에 의해 함수 호출을 받으면, 펌웨어 함수 호출 처리기(23)는 호출 함수 의 요구를 처리하기 위해, 요구 대상에 따라 BIOS 호출(CALL)이 필요한지, 아니면 테이프 장치 구동기(25)나 직접 하드웨어(40)자원에 접근해야 하는지를 판별한다(S21).
그후, BIOS 호출에 의해 함수 호출에 대한 서비스를 해야 하는경우에는, BIOS(30)가 실제 모드에서 동작하도록 되어 있으므로 실제 모드로 진입하여(S22), BIOS 호출에 의해 BIOS(30)가 제공하는 서비스를 이용하여 하드웨어(40)제어를 하고(S23), 보호 모드에서만 동작하는 펌웨어로 되돌아가기 위해 보호 모드로 복귀한다(S24). 한편, 테이프 장치 구동기(25)가 필요한 경우에는, 구동기를 호출한다(S25).
상기한 과정에 따라, 하드웨어 제어를 위한 서비스가 완료된 후에, 함수를 호출한 펌웨어로 복귀하기 전에 요구한 서비스의 결과에 대한 함수 반환값을 정리하여(S26), 함수를 호출할때 정해준 레지스터나 메모리에 반영하여 서비스를 완료 한다.
한편, 개인용 컴퓨터의 부트 장치는 플로피 디스크와 하드 디스크이나, 고속 병렬컴퓨터에는 플로피 디스크 드라이브가 없으며, 그 대신에 시스템 설치시에 사용하기 위해 4밀리 DAT(Digital Audio Tape)를 사용한다. 개인용 컴퓨터의 BIOS에는 테이프 장치에 대한 장치 구동기 및 인터페이스가 없으므로 테이프를 사용한 시스템 설치를 할 수 없다. 따라서, 본 발명에서는 이를 해결하기 위해 호스트 시스템과 직렬 포트를 이용해 테이프 장치를 에뮬레이션하거나 SCSI 장치 구동기에 테이프 장치 구동기 를 포함시키는 방식으로 해결할 수 있다. 에뮬레이션 방식이 테이프 장치 구동기는 직렬 포트를 이용하므로 접근 시간이 너무 길어 합리적인 방식을 아니지만, SCSI 장치 구동기의 개발에 앞서 시스템 설치를 확인하기 위해 사용할 수 있다.
상기한 본 발명은 부트 플로피 디스크에 에뮬레이션 코드를 담아 부팅하여 동작할 수 있도록 구성함으로써, 펌웨어를 개발하는 과정에서 기능 변경 및 추가에 따르는 EPROM프로그래밍의 복잡한 과정을 생략할 수 있다.
또한, 본 발명에서와 같이, 개인용 컴퓨터를 사용하여 테스트베드를 구성하고 부트 에뮬레이터를 이용하면, 고속병렬컴퓨터용 펌웨어 및 부트 기능을 조기에 시험하고 운영체제와의 인터페이스르 확정할 수 있으므로,고속병렬컴퓨터용 펌웨어 및 운영체제 개발으 일정르 대폭적으로 단축할 수 있을 뿐 아니라, 안정된 운영체제를 시험할 수 있는 환경을 제공할 수 있다.
Claims (1)
- 고속병렬컴퓨터의 부트 기능 및 펌웨어 기능을 개인용 컴퓨터로 구성된 테스트베드에서 에뮬레이션하기 위한 부트 에뮬레이션 방법에있어서, 부트 플로피 디스크에 부트 에뮬레이터 코드를 기록하여 시스템 기동과 동시에 부트 에뮬레이터 코드가 메모리에 적재되어 동작할 수 있도록 하는 제1단계와, 상기한 부트 에뮬레이터의초기화 과정에서 테이프 장치 구동기를 부트 플로피 디스크로부터 추가로 적재하고, 함수 호출 테이블과 장치 구동기 테이블을 작성 관리하는 제2단계와, 펌웨어로부터 함수 호출 또는 부트 처리 요구를 받아, 부트 처리기가 펌웨어 함수 호출 처리기에 의해 테이프 장치 구동기 및 실제 모드에서의 BIOS 호출을 수행하도록 하고, 보호 모드로 복귀한 후 함수 반환값을 정리하여 함수 호출 위치로 복귀하도록 하는 제3단계로 구성된 것을 특징으로 하는, 고속병렬컴퓨터용 부트 에뮬레이션 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960062352A KR100199020B1 (ko) | 1996-12-06 | 1996-12-06 | 고속병렬컴퓨터용 부트 에뮬레이션 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960062352A KR100199020B1 (ko) | 1996-12-06 | 1996-12-06 | 고속병렬컴퓨터용 부트 에뮬레이션 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980044285A KR19980044285A (ko) | 1998-09-05 |
KR100199020B1 true KR100199020B1 (ko) | 1999-06-15 |
Family
ID=19486153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960062352A KR100199020B1 (ko) | 1996-12-06 | 1996-12-06 | 고속병렬컴퓨터용 부트 에뮬레이션 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100199020B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102173158B1 (ko) | 2019-12-16 | 2020-11-03 | 이종훈 | 공장용 전등에 적용되는 높이 조절식 지주대 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100601164B1 (ko) * | 1999-01-15 | 2006-07-13 | 삼성전자주식회사 | 플래시 롬을 이용한 에뮬레이터 및 펌웨어 업그레이드 방법 |
-
1996
- 1996-12-06 KR KR1019960062352A patent/KR100199020B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102173158B1 (ko) | 2019-12-16 | 2020-11-03 | 이종훈 | 공장용 전등에 적용되는 높이 조절식 지주대 |
Also Published As
Publication number | Publication date |
---|---|
KR19980044285A (ko) | 1998-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6269409B1 (en) | Method and apparatus for concurrent execution of operating systems | |
US6874060B2 (en) | Distributed computer system including a virtual disk subsystem and method for providing a virtual local drive | |
US4787026A (en) | Method to manage coprocessor in a virtual memory virtual machine data processing system | |
US5953516A (en) | Method and apparatus for emulating a peripheral device to allow device driver development before availability of the peripheral device | |
JP4001877B2 (ja) | 入出力ファブリックにおけるハードウェア・エラーからの自動回復 | |
US5765198A (en) | Transparent relocation of real memory addresses in the main memory of a data processor | |
CA2010591C (en) | Kernels, description tables and device drivers | |
US5761458A (en) | Intelligent bus bridge for input/output subsystems in a computer system | |
US4747040A (en) | Dual operating system computer | |
US6629157B1 (en) | System and method for virtualizing the configuration space of PCI devices in a processing system | |
ES2336892T3 (es) | Sustitucion logica del control del procesador en un entorno informatico emulado. | |
US5418918A (en) | Scanning initial CD-ROM sectors for a boot record and executing said boot record to load and execute floppy disk image corresponding to the existing floppy drive | |
EP0948768B1 (en) | System for facilitating data i/o between usb input device and non-usb cognition application | |
EP1125212B1 (en) | Apparatus and method for handling peripheral device interrupts | |
JPH08249191A (ja) | ブート方法及び装置 | |
US20040221200A1 (en) | Apparatus and method for debugging a logical partition | |
US5276884A (en) | Controlling the initiation of logical systems in a data processing system with logical processor facility | |
US5710941A (en) | System for substituting protected mode hard disk driver for real mode driver by trapping test transfers to verify matching geometric translation | |
US5832246A (en) | Virtualization of the ISA bus on PCI with the existence of a PCI to ISA bridge | |
US20060294149A1 (en) | Method and apparatus for supporting memory hotplug operations using a dedicated processor core | |
KR100316190B1 (ko) | 로컬 메모리에서 패킷화된 동작 정보의 기억을 통한 입출력 성능을 증가시키기 위한 시스템 | |
KR100199020B1 (ko) | 고속병렬컴퓨터용 부트 에뮬레이션 방법 | |
EP0744051A1 (en) | I/o decoder map | |
JPS6364133A (ja) | 情報処理システム | |
JPH05120118A (ja) | アドレス範囲を拡張するための装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080303 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |