KR100239585B1 - 복구가능한 베이식 펌웨어를 가진 컴퓨터시스템 동작방법 - Google Patents

복구가능한 베이식 펌웨어를 가진 컴퓨터시스템 동작방법 Download PDF

Info

Publication number
KR100239585B1
KR100239585B1 KR1019920008421A KR920008421A KR100239585B1 KR 100239585 B1 KR100239585 B1 KR 100239585B1 KR 1019920008421 A KR1019920008421 A KR 1019920008421A KR 920008421 A KR920008421 A KR 920008421A KR 100239585 B1 KR100239585 B1 KR 100239585B1
Authority
KR
South Korea
Prior art keywords
boot memory
memory
software
rewritable nonvolatile
boot
Prior art date
Application number
KR1019920008421A
Other languages
English (en)
Other versions
KR920022093A (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 KR920022093A publication Critical patent/KR920022093A/ko
Application granted granted Critical
Publication of KR100239585B1 publication Critical patent/KR100239585B1/ko

Links

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
    • G06F9/4403Processor initialisation
    • 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
    • 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/7814Specially adapted for real time processing, e.g. comprising hardware timers
    • 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/1417Boot up procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

본 원은 플래쉬 EPROM 내의 그들 BIOS 를 운송하는 컴퓨터시스템 동작방법에 관하여 기술되어 있다. UV-EPROM은 잉여 BIOS를 운송하며, 이는 물리적 스위치에 의한 선택에 의해 BIOS 어드레스 스페이스 상으로 겹쳐질 수 있다. BIOS는 BIOS 엔트리 점에 BIOS 보존도를 체크하는 작은 코어 소프트웨어 프로그램을 포함하며, 필요시 플래쉬 EPROM의 BIOS를 다시 로딩하기 위해 제공된다(이때 플로피 디스크로부터 또는 UV-EPROM의 전체내용을 카피하는 방법을 사용한다).

Description

복구가능한 베이식 펌웨어를 가진 컴퓨터시스템 동작방법
제1도는 본 발명의 양호한 실시예의 컴퓨터시스템 내에 사용된 방식의 키부분을 도식적으로 도시한 플로우챠트.
제2도는 양호한 실시예의 컴퓨터시스템 내에 선택적 부트메모리들 간의 스위칭을 허용하게 하는 하드웨어 구조도.
〈도면의 주요부분에 대한 부호의 설명〉
210 : SLOB 220 : FLASH
230 : UV PROM 240 : NV RAM
본 발명은 컴퓨터시스템에 관한 것이다.
[부트스트랩 프로그램(bootstrap Programs)]
일단의 컴퓨터시스템은 콜드스타트(col start)이후에 프로그램실행을 시작하는 소정의 방법을 가져야 한다. CPU(프로세서)의 하드웨어 구조는 소정의 "리세트"동작을 가능하게 하며, 이때 이 공지의 전기적 상태로 모든 하드웨어 회로들이 정렬된다. 그럼에도 불구하고 하드웨어가 아니라 소프트웨어인 프로그램을 실행시켜 CPU를 시동(개시)시킬 필요성도 또한 있다. 예를들어, 초창기의 컴퓨팅에 있어서는 컴퓨터시스템을 시동할 때 "부트스트랩 로더" 프로그램에서 수동으로 판독하도록 구성되었다. 이러한 부트스트랩 프로그램은 간단한 프로그램으로서, 로드된 후 명령 시퀀스를 순차적으로 실행하는데 이들 명령 시퀀스는 목표프로그램의 시적점이 된다. 부트스트랩 프로그램은 종종 "부트" 소프트웨어로 간단하게 불리우기도 한다.
보다 최근의 예를보면, 하드웨어가 리세트된 이후에 인텔 80×86 마이크로프로세서들은 특정메모리 어드레스로 부터 프로그램 진행을 항상 시작한다(즉, 마이크로프로세서는 그 메모리 위치의 내용을 판독하고 거기에서 발견한 비트들을 마이크로프로세서 명령으로서 실행한다. 80×86 시리즈에 의해 사용된 특정 메모리 위치는 xxxFFFFOh 즉, 메모리공간 상부 아래 16비트이다. 다른 마이크로프로세서는 다른 스타팅 어드레스가 사용될 수 있지만 비슷한 원리가 적용된다). 따라서 한 브랜치(branch)(또는 조건 브랜치) 명령이 이 어드레스에서 발견될 경우, 마이크로프로세서는 어드레스가 어떻게 특정되든지 간에 그 프로그램 진행을 계속할 것이다.
따라서 이러한 초기 타켓어드레스는 매 사용기간에 대한 진입점(entry point)이 된다. 이러한 어드레스는 컴퓨터가 사용될 때마다 구동되어야만 하는 프로그램을 진행하는데 보통 사용된다.
[베이직시스템 소프트웨어]
어떤 하드웨어가 사용되는지 간에 리세트를 할 경우에 공지의 상태로 복귀하도록 자체의 진행과정을 가진다. 그러나, 소정시점에서, 이들 진행과정은 종료하고, CPU는 명령실행을 개시하기 위해 대기하게 된다.
이 시점에서, 시스템은 소프트웨어 제어하에서 다양한 오버헤드 태스크(overhead task)를 수행하며, 그 예로는 시스템구성 점검, 정상체크 등을 들 수 있다.
["베이직입력/출력 시스템"소프트웨어(BIOS)]
근대의 개인용 컴퓨터에 있어서, 초기 타켓 어드레스는 베이직 입력/출력시스템(BIOS) 프로그램에 대한 진입점으로서 통상 사용된다.
상기 BIOS 프로그램은 인터럽트 핸들링 등을 위해 핵심 주변기기와 인터페이스하는 루틴을 포함하며, 이 루틴은 빈번히 사용되는 프로그램에 해당된다(따라서, BIOS 소프트웨어는 소정등급의 머신-인디펜던스(machine - dependence)를 제공한다. 그러나 PC-급 컴퓨터에 있어서, 이러한 인디펜던스는 상용 소프트웨어에 의해 완전히 개발되지는 않았다. 많은 프로그램들은 BIOS 소프트웨어를 바이패스하며, 아래에 있는 하드웨어 어드레스들 또는 디바이스들을 직접 억세스한다. "IBM PC BIOS", 바이트, 1989년 4월호 pp. 303ff. 참조). 이들 베이직 입력/ 출력 루틴에 부가하여, "BIOS" 소프트웨어는 또한 구성(configuration) 업데이트 및 파워-온-셀프-테스트(POST) 루틴과 같은 핵심적인 오버헤드 소프트웨어를 포함한다. BIOS 소프트웨어는 또한 기기를 OS(Operating System) 소프드웨어로 띄우게 한다(시스템이 어떻게 셋업 되었는가에 따라, BIOS 소프트웨어는 프로그램 실행은 DOS, UNIX, PS/2, DOS 변형판 또는 다른 OS 시스템으로 연결한다. 그러나, OS 시스템의 선택은 본원에 기술된 발명에 특별히 관련되지 않는다)(따라서, 용어 "BIOS"는 최근에 어느 정도 널리 사용되었고, 통상은 베이직 시스템 루틴 전체를 지칭하기도 한다).
만일 BIOS 소프트웨어가 파손되면, 컴퓨터는 사용할 수 없게 된다. 따라서, BIOS 소프트웨어는 일반적으로 ROM(read-only memory)내에 저장되어 있다. 마이크로프로세서가 초기타켓 어드레스를 억세스하려 할 때 BIOS ROM으로 부터 소프트웨어를 읽어낸다.
1980년대에는 IBM 사로 부터 제공된 IBM 호환 BIOS 소프트웨어용 소스만이 있었다. 그러나 1980년대를 거치는 동안 IBM 겸용 개인용 컴퓨터가 보다 대중화 됨으로써, 수정 버전의 IBM 호환 BIOS ROM 들이 개발되었으며, 이들은 다수의 판매자에 의해 제공되었다. 1991년에는 BIOS 소프트웨어가 시스템 종속 특성을 실행하도록 변형되었는데 이것은 특히 저전력시스템 내에서 이루어진다.
BIOS 소프트웨어의 개량이란 BIOS 업그레이드를 수행하는데에 바람직하게 되는 것을 의미하기도 한다. 열정적인 사용자들은 ROM 칩 분야에 뛰어들어 이를 대체하는데 성공하였지만 대부분의 사용자들은 이러한 시도추세에는 보수적이었다.
이전까지 베이직시스템 소프트웨어를 향상하기 위한 능력을 제공하는 시도가 행하여져 왔다. 예를들어 참조문헌으로, 빙함(Bingham), D.B.에 의한 20/3/1-4(1978)의 1978 MIDCON 기술지 "호환성 있는 펌웨어의 달성"을 들 수 있는데, 이는 본원에서 참조로서 인용하였다.
소정의 제조업자들은 고품질의 BIOS 시스템을 제공하고 있다고 믿어진다. 그러나 본 발명에 알려진 바에 있어서는 BIOS를 갱신할 때 파손에 대한 보호책을 제공하는 시스템은 아직까지 없으며, 이 파손보호기술을 본 발명이 제공한다.
[비휘발성 메모리 기술]
부트소프트웨어 없이, 컴퓨터는 결코 어떠한 프로그램으로도 작동될 수 없다. 따라서 부트소프트웨어가가 파손되면 컴퓨터는 전체적으로 사용될 수 없게 할 수 있다. 그러므로, 이러한 파손방지를 위해 개인용 컴퓨터는 통상 비휘발성 메모리 칩에 BIOS 소프트웨어를 기입한다. 그러나 발빠른 시스템 개발과 갱신을 위해 새로운 BIOS 칩을 신속히 제공하거나 기존의 BIOS 칩을 갱신하는 것이 바람직하다. 수년간 반도체 장치기술의 다양한 발전은 이러한 요구를 충족시켜왔다.
가장 간단한 비휘발성 메모리중의 하나로는 마스크 ROM을 들 수 있다. 한레벨의 칩을 주문 패터닝(custom-patterning)하여 복잡한 패턴데이타는 영구적으로 엔코드 될 수 있다(예를들어, 행디코더에 의해 억세스되는 폴리실리콘 행라인 및 열디코더에 의해 억세스되는 금속열 라인을 가진 어레이는 선택적으로 식각된 콘택트홀(contact hole)을 가질 수 있어, 일 비트의 테이타가 각각의 행/열 교차점에서 엔코드된다. 이와는 달리 폴리실리콘 행라인이 금속쇼팅 스트랩에 의해 확산 열라인에 선택적으로 링크될 수도 있다). 이러한 기술때문에, 어떠한 비트의 데이타가 변할 때마다 새로운 마스크가 주어져야만 한다. 대량생산시에는 마스크 ROM은 상당히 싸지만 신속한 업그래딩에는 접합치 않다.
프로그램 가능한 읽기 전용메모리, 즉 PROM은 전기적으로 기입된다(PROM은 일반적으로 고상퓨즈(또는 앤티퓨즈)를 사용하여 만들어지며, 이는 고전류가 그것을 통과하게 될 때마다 개방(또는 쇼트)될 것이다. 따라서, 종래의 PROM의 프로그램법은 필요한 고전류를 얻도록 고전압(예를들어, 10 또는 15V)의 사용을 요한다). 그러나, 일단 데이타가 기록되면 이는 영구적이게 된다.
전체적으로 프로그램 가능한 읽기 전용 메모리 즉 EPROM은 전기적으로 기록될 수 있으며 자외선광에 의해 소거될 수 있다(EPROM은 일반적으로 플로팅게이트 애벌런치(avalanche)MOS 장치를 사용하여 제조될 수 있다. 이는 MOS 제어 게이트 및 채널간에 보삽된 부가의 절연 박막영역(플로팅 게이트)을 갖는 MOS 트랜지스터이다. 플로팅게이트 내로 전하를 공급함으로써, MOS 트랜지스터의 유효임계 전압이 변할 수 있으며, 이러한 임계전압 변화는 센스증폭기에 의해 감지된다. 셀을 기록하기 위하여, 채널은 일반적으로 제어게이트 상에 고전압을 가하여 강하게 드라이브된다. 채널내의 2차캐리어의 증가는 핫(hot)전자를 산출하며, 이 핫전자는 플로팅게이트 내로 유입된다. 따라서, 종래의 EPROM의 프로그램법은 필요한 고전류를 얻기 위하여 고전압(예를들어 10 또는 15V)의 사용을 요한다. 더우기 프로그램법은 일반적으로 아주 느린데, 예를들어 비트당 수 ms 이다. 셀을 소거하기 위하여는 자외선 광에 노출된다. 여기된 광자들은 여기된 캐리어를 여기시키며, 이는 유전층을 통하여 플로팅 게이트 상의 중성 전하로 통과될 수 있다. 따라서 EPROM은 통상 수정윈도우(quartz window)를 가진 패키지를 필요로 한다). EPROM은 매우 일반적으로 사용되는데 이는 값이 싸고 그것들의 타이밍 규격이 유사하기 때문에, EPROM은 또한 UVPROM으로도 지칭된다.
전기적으로 소거 가능한 프로그램 가능 읽기 전용메모리, 즉 EEPROM 또는 E2PROM은 전기적으로 기록되고 소거될 수 있다(EEPROM은 EPROM와 같이 일반적으로 플로팅게이트 소자이다. 그러나, EEPROM에 있어서는 기록 및 소거 동작은 터널링 효과를 보통 사용한다. 종래의 EEPROM의 프로그램법은 고전압(예를들어, 15 또는 20V)을 사용한다. 프로그램 및 소거는 일반적으로 매우 느리게, 즉 비트당 수 ms 정도로 된다. EEPROM은 EPROM 보다는 적게 사용되는데, 이들 보다 값비싸고 더 높은 전압을 요하는 경향이 있다.
EPROM의 보다 최근 변형예로는 "FLASH EPROM"이 있다. 이 소자는 EEPROM과 같이 전기적으로 소거 가능하지만 블록내에서만 가능하다. 비록 이들 소자가 EEPROM의 비트-비트 프로그램 능력을 가지지는 않지만, 많은 응용분야에서 아직도 유용하다.
다양하게 재기입 가능한 비휘발성 메모리 기술이 제안되어 왔으며, 확실한 다른 기술도 계속 제안될 것이다. 예를 들어, 1950년에 및 1960년대초의 컴퓨터는 어느정도 비휘발성이며 재기록 가능한 "코어" 메모리 기술을 사용하였다. 기술된 혁신기술은 플래쉬 EPROM에 제한되지 않으며, 다른 메모리 기술로 사용하기에 적합하다.
[부트 ROM용 안전 인-시투 업그레이드]
본 발명에 개시된 컴퓨터시스템은 여러개의 혁신적인 특징으로 포함하며, 이는 부트소프트웨어가 쉽게 업그레이드 되게 허용해주며, 부트소프트웨어의 어떠한 변형에 대하여도 보호하게 된다.
[중복부트메모리]
개시된 시스템은 주된 부트메모리로서 재기록 가능한 비휘발성 메모리를 사용한다. 부트 소프트웨어의 파손에 대한 또다른 보호책으로, 바람직한 시스템은 2개의 부트메모리를 사용한다. 하드웨어 스위치로 선택하는 것에 의해 부트소스로서 어느 것이나 접속될 수 있다.
[오버레이드(overlaid)어드레싱]
두개의 부트메모리중 어느 하나가 타켓으로 사용될 필요가 있기 때문에, 두부트메모리는 동일 어드레스에 매프(map)될 수 있다. 이는 휘발성 부트메모리에 기록하기에는 다소의 어려움이 야기된다는 점을 주지해야 한다 : 즉 만닝 휘발성 부트메머모리가 메모리 매프 내에 있지 않으면 이는 기입될 수 없다.
본 발명의 양호한 실시예에서는 이러한 어려움은 코어 소프트웨어를 RAM 밖으로 매핑하고, 다른 부트메모리를 엑세스하기 위해 어드레스 구조 변화를 명령 함으로써 피할 수 있다. 만일 하나의 부트메모리가 또다른 곳으로 복사되는 경우, 소스메모리의 내용도 반드시 복사되어야 한다.
상기에서 주지된 바와 같이 최초의 파워-업 작동에서 부트메모리 어드레스의 디폴트 매핑은 물리적 스위치에 의해 제어된다. 그러나, 그후 주변메모리 콘트롤러 칩은 부트메모리 어드레스의 매핑을 제어한다. 따라서 이러한 주변 칩에 명령을 유출함으로써, 코어 소프트웨어는 이러한 매핑을 변화시킬 수 있다.
따라서, 부트메모리에 기입하기 위해 코어 소프트웨어는 RAM으로 그 자체를 복사하고, RAM 어드레스 내로 브랜치 하도록 마이크로프로세서에게 명령한다. 부트메모리를 선택하는 비트는 그후 토글되어, 부트메머리 어드레스에 대한 기입은 다른 부트메모리로 향하게 된다(예로서, 실행된 코드의 소스가 아니 부트메모리에로). 소정데이타는 타켓 부트메모리 내로 기록될 수 있다. 주지할 것으로는 데이타의 소스가 액티브 부트메모리 내에 있을 경우, 그 코드는 부트메모리 어드레스 토글이 스위치 되기 전에 RAM 내로 기입되어야만 한다는 점이다.
[프리-포스트 소프트웨어 코어]
부트소프트웨어 내의 개시 어드레스는 작은(그리고 강하게 보호된)소프트웨어 코어가 차지하며, 이 소프트웨어는 정상체크를 행하고, 또한 부트소프트웨어가 업그레이딩 및 교체 여부에 대해 필요한 감독기능을 제공한다.
따라서, 개시된 기술혁신으로 BIOS 복구/업그레이드 인-시투를 수행하는 문제점을 해소한다(즉, 시스템으로부터 FLASH 부트메모리 ROM을 제거함이 없이). 최종사용자(또는 서비스 기술자)는 어떠한 특정 외부하드웨어 또는 소프트웨어 ROM-프로그래밍/방법 없이도 BIOS 코드를 FLASH 내로 프로그램 할 수 있다.
[소프트웨어 코어에 의해 수행된 기능]
소정의 시스템 하드리세트 후에 코어 소프트웨어는 부트소프트웨어가 파손되는지 여부, 그리고 사용자가 업그레이드 요청을 하는지의 여부를 감지한다. 만일 이러한 조건이 발생되면 코어소프트웨어는 적절한 데이타 소스로부터 FLASH 프로그래밍을 수행한다.
본 발명의 양호한 실시예에 있어서, 코어소프트웨어는 하기 3등급의 케이스를 위하여 제공된다. 이들 케이스는 다같이 모든 가능한 필드조건에 대한 대비책을 제공한다.
1. 케이스 : FLASH로 부터 리세트코드를 실행하는 동안에 시스템 BIOS 및/ 또는 비디오 BIOS에 대해 불량 체크섬(checksum)을 갖는가를 판명한다. 이러한 경우에 있어서, 파워-온-셀프-테스트 및 부팅은 불가능하며, 그러므로 부트코드는 사용자(본 발명의 양호한 실시예에 있어서, 이는 시스템샤시에 직접 장착되는 작은 4-문자 진단 디스플레이에 의해 수행된다. 이 디스플레이는 SmartVuTM으로 불리운다)로 하여금 시스템 및 비디오 BIOS 코드를 담은 디스켓을 삽입하고 FLASH를 다시 프로그램 하도록 요구한다. 시스템 및 비디오 BIOS 프로그래밍이 성공적으로 종결될 때, 사용자는 프롬프트 상에서(SmartVuTM을 통하여) 시스템을 리세트하게 된다. 보통의 POST와 부트는 반드시 뒤따라야 한다.
2. 케이스 : FLASH로부터 리세트코드를 수행하는 동안에 부트코드는 사용자 요청된 업그레이드를 지시하는 CMOS 프래그 셋팅을 감지한다(개인용 컴퓨터는 구성 파라메터를 저장하는 밧데리 백업된 CMOS 메모리를 포함한다. 시스템 설명에 있어서, 이 메모리는 "CMOS" 로서 간단히 불리운다. 그러나, 물론 비휘발성화된 구조메모리가 대신 사용될 수 있다). 부트코드는 그후 프롬프크 상에서 사용자로 하여금(SmartVu를 통하여) 업그레이드 시스템 및 비디오 BIOS 코드를 담은 디스켓을 삽압하도록 요구한다. 시스템 및 비디오 BIOS 프로그래밍이 성공적으로 종결될시에 사용자는 시스템을 리세트하게 된다(SmartVu를 통하여). 또 통상의 POST 및 부트는 반드시 뒤따라야 한다.
3. 케이스 : UVPROM으로부터 리세트코드를 실행하는 동안에 부트코드는 FLASH가 있는지 그리고 자체의 보호된 8K 부트섹터가 프로그래밍을 위해 점퍼되는가를 감지한다. UVPROM이 2차의 ROM 소자로 사용되므로 그 감지상태는 FLASH 프로그래밍에 대한 요청으로 이해되며, 상부 8K 섹터 내의 부트코드를 포함하는 UVPROM의 전체 내용은 FLASH 내로 카피된다. 전체 FLASH가 성공적으로 프로그램 될 시에 사용자는 시스템을 리세트하도록 요청된다. 만인 FLASH가 1차 ROM 소자로서 선택되는 경우 통상의 POST 및 부트는 FLASH로부터 발생되어야 한다.
[어느 부트메모리가 액티브인가를 감지하는 것]
전술한 단계는 부트코드가 실행중인 동안 어드 메모리가 코드소스인지를 CPU가 확인하도록 요구한다. 본 발명의 양호한 실시예에서는 주변 칩 내의 레지스터를 CPU가 읽게 함으로써 이루어진다.
[소프트웨어 코어 섹터의 하드웨어 보호]
양호한 재기록 가능한 부트메모리는 섹터-보호된 Flash-EPROM이다. 소프트웨어 코어를 포함하는 섹터는 점퍼에 의해 실제적으로 보호되며, 이때 소프트웨어 코어가 오버기입(overwrite)될 수 있기 전에 점퍼를 물리적으로 이동시켜야 한다. 이는 부가적인 견고성을 제공한다.
[플로피 디스크 조작]
코어소프트웨어가 플리피 디스크로부터 판독되어야 하기 때문에 이를 수행하도록 필수적인 오버헤드루틴을 포함한다. 이들 루틴들은 INT13h 하의 BIOS 기능과 일반적으로 유사하다.
이하, 본 발명은 첨부된 도면을 참조로 하여 더욱 상세히 설명될 것이다.
[양호한 하드웨어 배경]
양호한 실시예로는 80486 기초 ELSA-버스 PC 시스템이 있다. ELSA 버스의 일반적 특징은 본원에서 참조로 인용하는 글래스(Glass) "인사이드 ELSA", 1989년 11월 바이트 잡지 417pp와 ELSA 명세서에 설명되어 있다. 인텔 80486의 일반적 특징은 본원에 역시 참조로 인용하는 샬토르(Sartore), "80486 : 하드웨어 개요", 바이트 잡지 IBM 특별편집, 1989년 가을호 67pp에 기재되어 있다. 80486의 보다 상세한 배경으로는 양자 모두 본원에서 참조로 인용하는 "80486 프로그래머의 참조" 및 "80486 하드웨어 참조 매뉴얼"(양자 모두 인텔사로 부터 얻을 수 있음)에서 찾아볼 수 있을 것이다.
이러한 시스템의 많은 구조적인 특징은 현대 PC 시스템에 있어서는 공지된 것이다. 그러나 여러 개의 비통상적인 특징도 사용된다. 이들 중 한예로는 하드웨어와 소프트웨어 스위칭을 가지는 듀얼 부트메모리를 들 수 있다. 다른 주목할 만한 특징은 하기에 기술된 "SLOB" 제어기 칩의 사용이다.
[양호한 I/O 제어기 칩("SLOB")]
본 발명의 양호한 실시예에 있어서, 시스템마더보드(motherboard)는 여기에서 "SLOB"칩으로 불리우는 주문자형 칩을 포함하는데, 이는 다양하고 유익한 기능을 수행한다. 이들은 리세트제어, X-버스 트랜시버 제어 및 부트메모리의 제어 그리고 CMOS 비휘발성 메모리를 포함한다("X-버스" 또는 "익스텐션 버스"는 시스템버스의 연장이지만, 여기에 직접 접속되지는 않는다. 대신에, 데이타는 양방향성 트랜시버에 의해 S-버스로부터 시스템버스로까지 선택적으로 전달되거나 또는 이와 반대방향으로 전달된다. X-버스는 마더보드 상의 다양한 소자에 대해 손쉬운 장착요구를 제공하도록 PC 구조 내에 보통 사용된다).
[BIOS용 병렬 UVEPROM 및 FLASH-EEPROM의 사용]
본 발명의 양호한 실시예에 있어서, 소프트웨어 코어는 FLASH ROM의 보호 8K 부트섹터내 또는 128K UVPROM의 상부 8K 내에 잔류한다. 1차 ROM의 선택은 물리적 스위치를 통하여 이루어진다.
제2도는 이것이 어떻게 수행되는가의 상세도이다. SLOB 칩은 FLASH EPROM 220에 그리고 UVEPROM 230에(그리고 NVRAM240에)별도로 칩 인에이블(CE\)신호를 공급한다. 출력 인에이블라인 OE\ 는 부트 ROM 양자에 접속되며, 어드레스라인은 양자에 제공된다. 하드웨어스위치는 부트메모리가 초기 비동작 타켓인지를 규명하도록 라인 ROMIN\을 SLOB 칩에 제공한다.
[섹터-보호된 FLASH - EEPROM의 사용]
본 발명의 양호한 실시예에 있어서, FLASH EPROM은 섹터-섹터 보호만을 가진다(이 특징은 대부분의 FLASH EPROM 에서 사용가능하지 않지만 인텔사로 부터 새롭게 소개된 28FOOIB 에서는 사용이 가능하며, 이는 본 발명의 양호한 실시예에 사용된다)
본 발명의 양호한 실시예에 있어서, 8K 바이트만으로 된 한 섹터 220A가 코어소프트웨어를 위해 제공된다. 이러한 섹터는 하드웨어 점퍼에 의해 보호되므로 코어소프트웨어의 파손을 방지할 수 있다.
[하드웨어-소프트웨어 하이브리드 스위치]
플러그-인 ROM으로부터 FLASH 메모리의 자동 프로그래밍을 얻기 위하여 하드웨어는 소프트 웨어가 하나의 소스로부터 부트되어 소스들간에 토글되게 허용하는 수위칭 기구를 제공하여야만 한다. 이러한 스위칭 능력은 플러그-인 ROM으로부터 BIOS가 작동할 경우 FLASH로 부터 ELSA 구성을 엑세스 하도록 요구된다.
사용자 세트가능 하드웨어 스위치는 부트코드가 파워업 또는 콜드부트에서 호출될 부트메모리를 결정한다. 이러한 스위치는 선택된 부트소스를 인에이블 하는 하드웨어 제어논리에 의해 디코드되는 소위 ROMIN# 이라는 비트의 극성을 세트한다. 이러한 비트는 I/O 포트로부터 판독가능하고, 소프트웨어는 부트코드의 소스 즉, ROM(비트=0) 또는 FLASH(비트=1)를 결정한다. 소프트웨어는 그후 콜드부트 후에 반대상태의 ROMIN#을 가정하는 비트를 셋팅함으로써 엑세싱 ROM 또는 FLASH 간을 토글하는 능력을 가진다. 이러한 비트는 소위 ROMEN이라 하고 0일때 Flash를, 1일때 ROM을 인에이블 한다. 이러한 비트는 I/O 포트를 통하여 기입 가능함과 동시에 판독가능하다. 이 기구는 하드웨어를 ROM으로 부터 부트하게 한 후 ROM 내의 BIOS의 내용을 FLASH에 전달시킴으로써 자동적으로 FLASH 메모리 및 프로그램 FLASH의 존재여부를 판정하는 능력을 소프트웨어에 부여한다.
[양호한 메모리 제어기 칩("TRANE")
TRANE 칩으로 여기서 불리우는 칩은 주문자형 메모리 제어기이다. 일반적인 DRAM 관리기능을 수행하는 것 이외에, 이 칩은 또한 메모리 영역에 의해 선택기능을 제공하며, 그 메모리 영역은 케쉬 등에 저장된다.
[양호한 코어 소프트웨어 구조]
코어 소프트웨어의 실제 구현은 다음에 상세히 설명한다. 그러나, 인지하여야 할 것으로는 이러한 특정구성이 단지 개략, 가변적이며, 청구된 본 발명의 사상을 국한시키지 않는다는 것이다.
[기능성]
제1도는 본 발명의 양호한 실시예의 컴퓨터시스템에 사용된 키부분의 방법을 도식적으로 도시한 플로우챠트이다.
리세트로부터 80486이 먼저 실행될때 이는 리얼모드내로 실행된다(본 발명에 인용된 글래스에 의한, "보호모드", 바이트잡지 1989년 11월호 377pp 참조)(그러나 하이어드레스 비트는 높게 유지되어 프로세서는 4-기가바이트(32-bit)메모리 공간의 상부로 갈 수 있다. 프로세서는 어드레스 FFFFFFFOh를 억세스한다.
[양호한 어셈블리 언어 구현]
본 발명의 실시예에 있어서, 코어소프트웨어의 키부분의 실제 구현을 지금부터 설명한다. 하기 리스트된 어셈블리 언어는 또한 다수의 약식 코멘크를 포함한다. 이들 코멘트는 본 발명의 사상을 한정한 필요는 없지만 근본사상, 구조 및 본 발명의 양호한 실시예의 작업을 설명하는데 도움을 줄 것이다.
본 발명의 양호한 실시예에 있어서, 실제로 사용된 일부 과정을 상세히 설명한다. 물론, 본 발명의 당 업자라면 쉽게 이해하겠지만 주어진 특정 구현(구성)이 본 발명에 꼭 필수적인 것은 아니라는 것이다. 여기에 기재된 설명은 미국 특허법상의 요구에 최선을 형태로 일치토록 하는데 제공되었을 뿐이다.
[절차(procedure) 8K BOOT STRT]
128K FLASH EPROM용 8K 부트 섹터 코드내로의 파워-온-리세트 엔트리 포인트를 포함하는 절차 8K boot-스트리티스(strtis). 리세트 벡터와 함께 이 코드는 128K FLASH EPROM의 상부 8K 부트 섹터내에 위치된다. 리세트벡터는 1fffoh (물리적 ROM 어드레스)에 위치하며, 이 루틴의 시작은 leoooh (8K 부트 섹터의 시작)에 위치된다. 리세트 벡터는 이 코드에 대한 NEAR 점프를 포함하여, 논리 어드레스 0ffffe000h 에서 프로세서 리얼모드인 ROM 데이티브 모드에서 실행을 개시하게 된다. 이 절차는 제1도에 플로우챠트 내외 모든 스텝들을 실행한다.
상세하게 이들 진행은 :
- POST에 의해 나중 사용을 위한 EAX 및 DX의 상태를 세이브한다.
- DRAM 제어기(TRANE 칩, 본 실시예에서)용 베이스 어드레스를 초기화 한다.
- 인터럽트 디 세이블(NMI 및 INTR).
- 만일 워엄(Warm)부트이면, POST SHUTDOWN 루틴내로 jmp.
- 그밖에, 만일 파워-온이면, UVPROM 또는 FLASH로부터 구동되는지를 체크.
- 만일 FLASH 인 경우, BIOS가 파손되는지 또는 사용자가 업그레이드를 요청하였으면, 플래쉬를 프로그램하는 "BOOT FLASH" 진행으로 점프.
- 만일 UVPROM인 경우, FLASH가 존재하면 FLASH에 대한 UVPROM을 카피하는 "BOOT UVPROM" 코드에로 점프.
- 만일 "boot FLASH" 또는 boot UVPROM"의 어느 하나가 플래쉬를 프로그램하지 않는 경우, 제어동작은 SmartVu 메세지를 표시하고 정지하는 "do-reboot"로 복귀한다.
주해 : 이러한 코드 및 이전 부분의 POST(RESET, SHUTDOWN)간의 중복성 때문에, BIOS는 이러한 코드에 의존하지 않는다. 이는 빌드처리로 부터 이러한 모듈을 간단힌 제거함으로써 64K 비-FLAS ROM 구조에 대하여 작업 BIOS가 형성될 수 있음을 의미한다. 오리지널 64K BIOS 리세트/초기화 논리 부분은 아직 그대로 둔다.
[진행 BOOTUPROM]
진행 BOOTUVPROM은 UVPROM이 인스톨될때 수행되는 8K 파워-온 논리를 포함한다. UVPROM으로부터 콜드 부팅했을시 이 코드는 FLASH ROM을 찾도록 수행되며, 만일 존재할 경우 FLASH 내로 전체의 UVPROM 내용을 카피하도록 시도한다.
만일 FLASH 프로그래밍이 소정수의 이유 때문에 비 성공적일 경우, 예를들어 FLASH가 있지 않을 경우, 8K 부트섹터는 소디/프로그래밍 등을 위해 점프되지 않으며, 이 루틴은 POST 내로 다시 베일(bail)된다.
[절차 BOOT FLASH]
절차 BOOT FLASH는 시스템이 플래쉬로부터 부트되는 경우에 수행되는 8K 파워-온 논리를 포함한다.
스텝은 다음과 같다 :
- 시스템 및 비디오 BIOS(96K)를 체크섬(checksum)
- 체크섬이 양호하면 I로 진행
- 체크섬이 양호하면 II로 진행
I. - 사용자가 BIOS 업그레이드를 요청하는가 ?
- 만일 업그레이드가 선택되면, II로 진행
- 만일 업그레이드가 선택되지 않을 경우, 이 루틴을 행하고 정규 POST로 진행하게 된다.
II. - 끝없는 루프는 방지하도록 업그레이드 옵션을 리세트한다.
- 많은 스터프를 초기화 한다.
- 106을 초기화 하여 SmartVu를 가진다.
- Slob 초기화
- Trane 초기화 및 적어도 2meg DRAM을 취함.
- 리프레쉬 카운터 초기화
- DMA 제어를 통하여 0까지 리프레쉬 페이지를 세트
- RAM 에 코드를 카피하고 RAM으로 부터 실행
- 스택(stack)을 세트업한다.
- 타이머를 테스트하고 초기화 한다.
- DLY100에 대한 제1호출 이전에 카운트 산출한다.
- DMA 제어기를 세트업한다.
- 인트럽트 디스크렙터 데이블을 세트업한다.
- 인트럽트 제어기를 세트업한다.
- 플로피 서브시스템을 초기화한다.
- 플로리로부터 BIOS를 카피한다.
- 성공하지 못할때 에러메세지를 표시하고 정지시킨다.
- RAM 내의 유효 BIOS를 갖는가를 확인한다.
- 프로그래밍을 위한 플래쉬업을 세트한다.
- RAM 으로부터 플래쉬까지 BIOS를 카피한다.
- 성공하지 못할 때, 에러메세지를 표시하고 정지시킨다.
입력 :
네이티브-모드, 보호-모드, Trane은 자체의 I/O 어드레세를 그래브(grab) 하였다.
출력 :
정규 POST를 정지하거나 진행한다.
만일 BIOS 체크섬이 양호하고 업그레이드 요청이 없을 경우,
이 루틴은 정규 POST를 펌프한다.
만일 BIOS 체크섬이 불량이고 업그레이드 요청이 있을 경우,
이 루틴은 마지막에 정지한다.
[다른 절차]
사용된 실제 어셈블리 언어실현은 다수의 다른 절차를 포함하며, 이는 이후에 기술될 것이다. 모든 이러한 절차는 완전히 일반적이다. 그러나, 청구된 본 발명에 대하여 특정의 관련을 가지는 절차들은 아래에 기재된 바와 같다.
[INITSTUFF]
이 절차는 "SLOB" 및 "TRANE" 칩을 초기화한다.
[RAM-init]
절차 RAM-init는 8K 부트코드용 RAM 초기화를 수행하며, TRANE를 초기화하고, 메모리를 식별하여 이것을 초기화하며, 리프레쉬로 턴온하여 0-2Mb로부터 블록으로 RCRO를 포인트한다.
입력 : HSM_XX... 호스트 상태기기 초기화 테이블.
FS ...ⓐ°에 기초한 4Gb 데이타 셀렉터에 포인트 되어야 함.
bp는 리턴 어드레스를 포함한다.
주해 : 어떤 종류의 SIMM을 식별하였는가는 문제되지 않는다. 현재 테스트는 이것이 256K 비트 칩이라는 것을 가정하고 따라서 RCR을 초기화한다. 만일 이것이 1M 비트이거나 4M비트 SIMM일 경우, 이는 256킬로비트로서 프로그램되면 OK로 행하여져야 한다. 우리가 필요한 모두가 UVPROM을 카피하기 위한 128Kb의 RAM이기 때문에, 실제적으로 어떠한 크기의 SIMM 인지 상관치 않는다.
출력 :
SUCCESS ...만일 성공적일 경우, 하기로 복귀한다.
- 존재여부로서 식별되고 아래의 CMSMTPL 내에 표로 만들어진 모든 SIMM.
- CMSMTPL ... SIMM 매프를 포함하는 CMOS 바이트.
- RCROM은 2Mb의 DRAM 에 지정된다. 256K 비트 소자로서 프로그램 된 RAS용 SIMM.
- 인에이블된 리플래쉬
FAILURE ... RAM이 발견되지 않을 경우, 'fRAM'을 SmartVu에 보내고 영구 대기한다.
[$INT VL106]
절차 $int vl106은 vl106을 초기화한다. vl106은 칩이며, 다른 기능 중에서 8742 키보드 핸들러 재배치한다.
[PMODE]
이 절차는 보호 모드엔트리 루틴이다.
Inputs : DS ... "gdt-pur" 및 NULL_IDT 를 포함하는 세그멘트에 지정.
[RMODE]
이 루틴은 리얼모드에서 구동하는 플로피코드를 위해 생성된다.
Input : 없음
Outputs : 리얼모드
[PMODE 2]
이 루틴은 플로피 코드에 대해 산출된다. 이는 플로피코드가 실행된 이후에 실행을 보호루틴으로 돌아가게 스위치한다.
[서로 다른 IDT 및 GDT 테이블 ub low RAM 사용]
Input : 없음
Outputs : 보호모드
[CMOSSUM]
이 루틴은 CMOS 범위 10h에서 2Dh을 체크섬한다.
Input : DI ...NEAR 리턴 오프세트를 포함
Outputs : 없음
[FLASH MSG]
절차 FLASH_MSG는 EAX내에 SMARTVU 메세지를 표시하고, CX 세컨드를 대시하며, DI내에 NEAR 어드레스로 복귀한다.
Input : SS ...코드를 지정하는 기입가능 세그멘트
DI ...NEAR 복귀 어드레스를 포함
CX ...SMARTVU 메세지를 표시한 후 지연되는 세컨드의 수
EAX ...SmartVu 메세지를 포함.
[DELAY]
절차지연은 CX 세컨드를 대기한다. 이 절차는 CX 내에 세컨드의 계수에 의해 특정화 된 지연을 수행하도록 RTC를 사용한다. 만일 RTC 밧데리가 불량이면 DUMMY_DELAY 반복의 고정된 지연루프를 바로 실행한다.
Input : CX ...지연에 대한 세컨드의 수를 포함.
[GET SEC]
이 루틴은 RTC(실-시간클록)로부터 세컨드 계수를 판독하고 시간갱신이 진행중이면 대기한다.
Input : SI ...NEAR 복귀 어드레스를 포함.
Outputs : AL ...RTC 세컨드 계수를 포함.
[BEEP]
이 루틴은 비프이다.
Inputs : CX = 주파수
di - near 복귀 어드레스
Outputs : 없음
[INIT TIMER]
이 루틴은 타이머를 테스트하며 초기화한다.
[SETUPDMA]
절차 세트업 DMA는 정규 POST와 같이 DMA 제어기를 세트업시킨다. 그 코드는 INT13H 루틴에 어떠한 문제점도 생기지 않도록 하기 위해 동일하다.
Inputs : 네이티브모드, 보호된 모드
Outputs : 에러일 경우, 정규 POST로 하여금 에러를 보고토록 한다.
에러가 없을 경우, DMA 제어기는 INT13H 루틴을 대기한다.
[SETUPPIC]
절차 세트업 PIC는 정규 POST와 같이 PIC를 세트업시킨다. 그 코드는 INT13H 루틴에 어떠한 문제점도 생기지 않도록 하기 위해 POST 내에 사용된 것과 동일하다.
Inputs : 네이티브 모드, 보호된 모드
Outputs : PIC는 INT13H 루틴을 대기한다.
[COPY]
절차 카피는 플로피로부터 RAM 까지 새로운 BIOS를 카피한다. 그 단계는 다음과 같다 :
-파일이 존재하는지를 찾는다. 그 파일은 "DELLBIOS. BIN" 파일이름을 가진 루트디렉토리 내의 1.2M 플로피 상에 있어야 한다.
Inputs : 없음
Outputs : 에러일 경우, 캐리 프래그세트
[FILEEXIST]
절차 파일 EXIST는 루트 디렉토리에서 판독하여 파일 "DELLBIOS.BIN" 이 디렉토리내에 있는지를 찾도록 서치한다.
Inputs : 없음
Outputs : 파일이 존재하면 캐리 크리어
ax는 파일이 존재하면 제1디스트 클러스터를 가진다.
bx : dx는 파일 사이즈를 가진다.
[SETTYPE]
절차 set Type는 플로피 드라이브의 형태를 결정하고 그에 따른 드라이브 파라메터를 세트한다.
Inputs : 없음
Outputs : 파라메터가 초기화 된다.
[COPY FILE]
절차 카피 FILE은 드라이브 0으로부터 RAM까지 목표 드라이브를 카피한다.
그 단계는 다음과 같다 :
- 파일 사이즈가 예상한 것임을 확인한다.
- FAT 테이블을 읽는다.
- 파일을 DRAM 에 카피한다.
Inputs : ax는 파일의 제1디스크 클러스터를 가진다.
bx : dx는 파일 사이즈를 가진다.
es = GDTD_BUFFER.
Outputs : 에러일 경우 캐리 프레그세트
[SANITYCHECK]
절차 정상 CHECK는 카피된 BIOS가 적법한 Dell BIOS 임을 검증한다.
Inputs : BIOS(112K)는 5000 : 0000 내지 6000 : C000 까지 스팬(span) 한다.
Outputs : 적법한 BIOS를 갖지 않을 경우 캐리세트.
[NEXT]
절차 NEXT는 12-비트 FAT로부터 다음 링크를 취한다.
Inputs : ax = 현재 엔트리 번호
Outputs : ax = 체인내의 다음 소자
[REL 2ABS]
절차 REL 2ABS는 상대 섹터번호를 절대 섹터 위치로 변환한다.
Inputs : ax = 상대 섹터번호
Outputs : ch = 트랙번호
cl = 섹터번호
dh = 헤드번호
dl = 0 = 드라이브번호
[GETFAT]
절차 GETFAT는 FAT 테이블에서 판독된다.
Inputs : es = GDTD-BUFFER
Outputs : 에러일 경우 캐리세트
성공적일 경우, FAT는 4000 : 0000 내지 4000 : 0E00 까지 존재한다.
[PROMGRAM]
절차 프로그램은 플래쉬 ROM 내로 데이타를 기입한다.
Inputs : 없음
Outputs : 에러일 경우 캐리세트
[ERASE_SECTOR]
절차 ERASE_SECTOR는 아래 단계를 형성한다.
- 상태 레지스터를 클리어한다.
- 상태모드를 읽도록 FLASH를 세트한다.
- 소거용 FLASH를 세트한다.
- 소거한다.
- 상태레지스터를 판독함으로써 소거가 성공적임을 검증한다.
- 소거가 실패하면 캐리프래그를 세트한다.
- 어레이모드를 읽도록 FLASH를 세트한다.
Inputs : es : edi = 소거될 섹터의 어드레스
이 루틴을 호출하기 전에 FLASH 프로그램/소거베터가 인에이블 된다.
Outputs : 성공적일 경우, 캐리플래그 클리어
;
; 주의 !! - FLASH 프로그램 점퍼는 프로그램/소거를 위해 세트되어야 한다.
;
[PROGRAM_SECTOR]
절차 프로그램-섹터는 플래쉬 ROM의 섹터를 기록한다.
Inputs : ecx = 프로그램에 대한 바이트수
ds : esi는 데이타 개시를 지정
es : edi는 섹터 개시를 지정.
그 단계는 아래와 같다 :
- 상태 레지스터를 클리어한다.
- 상태모드를 읽도록 FLASH를 세트한다.
- 섹터를 진행, 프로그램한다.
- 캐리프래그 세트가 에러일 경우 취소한다.
- 상태레지스터를 클리어한다.
- 어레이모드를 읽도록 FLASH를 세트한다.
Outputs : 성공적일 경우, 캐리플래그 클리어
;
; 주의 !! - FLASH 프로그램 점퍼는 프로그램/소거를 위해 세트되어야 한다.
;
[ENABLE_fPROGRAM]
절차 ENABLE_fPROGRAM은 FLASH ROM 상에 프로그램/소거 동작을 하게 한다.
Inputs : 없음
Outputs : FLASH는 프로그램되거나 소거될 준비를 한다.
[DISABLE_fPROGRAM]
절차 DISABLE_fPROGRAM은 FLASH 프로그램/소거를 디세이블 한다.
Inputs : 없음
Outputs : FLASH는 프로그램 되거나 소거될 수 없다.
[USECWAIT]
절차 USECWAIT는 cx 마이크로세컨드의 지연을 일으킨다.
Inputs : cx = usec의 번호
Outputs : cx 파괴
[CLR_FLASH_STATUS]
절차 CLR_FLASH_STATUS는 FLASH 상태 레지스터를 클리어한다. 이 루틴은 새로운 스펙(spec)이 어드레스를 00000h에 플래쉬에 있게 하도록 요구하기 때문에 산출된다.
Inputs : 없음
Outputs : 플래쉬상태 레지스터가 클리어된다.
[READ_FLASH_STATUS]
절차 READ_FLASH_STATUS는 FLASH의 00000h에서 FLASH 상태 레지스터를 판독한다.
Inputs : 없음
Outputs : al 에서 FLASH 상태 레지스터를 판독
[NMI_ISR]
절차 NMI_ISR은 의사 인터럽트 조작자이며, 이는 어떠한 NMMI 인터럽트가 와도 무시한다.
[DMATST]
이 루틴은 DMA 어드레스 및 워드계수 레지스터를 테스트한다.
Inputs : CX = 테스트할 포트의 #
DX = 테스트할 제1포트
SI = 포트간의 증가분
Outputs : 플래그
AL = ?
AH = ?
CX = 0
[CALB_SPD]
절차 CALB_SPD ("캘리블레이트 속도"는 100 마이크로 세컨드 동안 계수로 DLLY_CNT 를 세트한다.
[FDISR]
절차 FDISR은 플로피 드라이브 제어기 인터럽트 조작자이다.
이 단계는 다음과 같다 :
- EOI 를 마스터 PIC로 보낸다.
- 인터럽트가 발생되었는가를 가리키도록 DRVSTAT 내에 인터럽트 비트를 세트한다.
[INT13H]
절차 INT13H는 소정의 int13h 진행 기능을 결정하여 실행한다.
[RESETFLOP]
절차 RESETFLOP는 플로피 시스펨을 리세트한다. 이는 INT13H의 일부이다.
Inputs : ah = 0
al = 드라이브수(0-3), 비트7 = 플로피용 0.
Outputs : 에러일 경우 캐리프래그세트.
ah = 상태/에러코드.
ds = ERRSTAT (FDATA) = ah
[READSECTOR]
절차 READSECTOR는 플로피로부터 al 섹트를 읽는다.
Inputs : ah = 02h
al = 섹터의 수
ch = 트랙의 수
cl = 섹터의 수
dh = 헤드의 수
dl = 드라이브의 수
es : bx = 버퍼의 어드레스
Outputs : 에러일 경우 캐리 프래그 세트
al = 전달된 섹터의 수
ah = 상태 = ERRSTAT
[SETCARRY]
절차 SETCARRY 스택상의 운반플래그를 캐리세트한다.
이는 INT13H 절차의 일부이다.
[CLRCARRY]
절차 CLRCARRY는 스택상의 운반 플래그를 클리어한다.
이는 INT13HW는 절차의 일부이다.
Inputs : 없음
Outputs : 스택상의 플래그 레지스터 내의 캐리 플래그는 클리어 된다.
인터럽트 플래그 역시 세트된다.
[DSKRESET]
진행 DSKRESET 는 플로피시스템을 리세트한다. 이는 INT13H 절차의 일부이다.
이 단계는 다음과 같다.
- 인터럽트 디스에이블
- DRVSTAT 및 ERRSTAT 클리어
- 플로피모터 상태를 취한다.
- 리세트명령 유출
- 리세트명령 턴오프
- 인터럽트 인에이블 및 리세트결과 인터럽트 대기
- 결과 검사
Inputs : dl = 드라이브 번호(0-3), bit7 = 플로피용 0
Outputs : 에러일 경우 캐리플래그 세트
ds : ERRSTAT(FDATA)=ah= 에러일 경우 에러코드 그밖에는 0.
[WAITINT]
절차 WAITINT는 FDC 인터럽트를 대기한다. 이는 INT13H 절차의 일부이다. 이 루틴은 int15h 대신에 정규대기를 사용한다.
Inputs : 없음
Outputs : 만일 타임아웃트 에러일 경우 운반 플래그를 세트하고, 그 밖에는 그렇지 않다.
ERRSTAT bit7 = 타임아웃이면 1이다.
[FDCRDY]
절차 FDCRDY 는 준비될 플로피 제어기를 대기한다.
이는 INT13H 절차의 일부이다.
Inputs : 없음
Outputs : 타임아웃이면 운반플래그를 세트한다.
[SISSTAT]
절자 SISSTAT는 임터럽트 상태를 감지한다. 이는 INT13H 절차의 일부이다.
Inputs : 없음
Outputs : 에리일 경우 캐리플래그를 세트하고, ERRSTAT 세트하여
ah = FDC 상태, 그 밖에 운반플래그는 클리어되고
al = 현재 실린더.
[WRTCMD/WRTCMDA]
절차 WRTCMD 및 WRTCMDA 는 FDC에 대한 명령을 기입하며, 이는 INT13H 절차의 일부이다.
Inputs : al = 명령
ds 는 FDATA 를 지정한다.
Outputs : 에러일 경우 운반플래그 및 ERRSTAT를 세트한다.
ah, dx 는 파괴된다.
[RSLTRD7/RSLTRD]
절차 rsltRd7 은 FDS로부터 7개의 바이트를 읽는다.
절차 rsltRd는 FDC로부터 cx 결과 바이트를 읽는다.
이들 역시 INT13H 진행의 일부이다.
Inputs : cx = 읽을 결과 바이트의 수
ds 는 FDATA 를 지정한다.
Outputs : al = FDC 상태
ah = FDC STO, 캐리가 없을 경우에만 유효
ERRSTAT bit7 = 1, 캐리가 타임아웃트 상에 세트된다.
ERRSTAT bit5 = 1, FDC 결과가 플러쉬 될 수 없을 경우 캐리가 세트된다. 예상된 것 보다 작은 결과만 사용 가능하면 캐리가 세트된다.
DSKST = FDC STO, 캐리가 없을 경우에만 유효
dx non-zero
[I82077EXIST]
절차 i82077EXIST는 i82077FDC가 인스톨 되는지를 결정한다. 이는 INT13H 절차의 일부이다.
Inputs : 없음
Outputs : i82077이 인스톨되고 FIFO가 인에이블 되는 경우 캐리 플래그세트 stk_tmp bit0는 i82077이 인스톨 되면 1이고, bit1dms FIFO가 구동되면 1이 된다.
[MLTCMD2/MLTCMD]
절차 mltCmd2는 FDC에 대한 2개의 명령을 기입한다. 절차 mltCmd는 FDC에 대한 cx 명령을 기입한다. 이들은 INT13H 절차의 일부이다.
Inputs : cx = 기입할 바이트의 수 (mltCmd)
bx = 스타팅테이블 오프세트.
Outputs : es : si = 디스크 파라메터 블록
ERRSTAT bit7 = 타임아웃트시 1이고, bit5는 제어기 에러시 1이다. 타임아웃트 또는 제어기상에 캐리플래그를 세트하고, 밖에는 세트안됨.
[DPBADR]
절차 dpbAdr은 디스크 파라메터의 어드레스를 es : di 내로 둔다. 이는 INT13H 절차의 일부이다.
Inputs : 없다
Outputs : FDC가 에러일 경우 캐리플래그를 세트하고, 그밖에는 클리어된다.
[CONFIGURE]
절차 configure 는 i82077 FDC 내의 FIFO를 인에이블하도록 콘피규 명령을 한다. 이 절차는 INT13H 절차의 일부이다.
Inputs : ah = 콘피규명령의 바이트 2
Outputs : FDC가 에러일 경우 캐리플래그를 세트하고, 그 밖에는 클리어된다.
[DSKMOT]
절차 DSKMOT는 플로피 드라이브 모터를 턴온시킨다. 이는 INT13H 절차의 일부이다.
Inputs : dl = 드라이브 번호
Outputs : 없음
[CHKCHG]
절차 chkChg 는 플로피 드라이브상에 변화라인을 체크한다.
이는 INT13H 절차의 일부이다.
Inputs : 없음
Outputs : 에러일 경우 캐리 플래그를 세트한다.
[GETDRVINFO]
절차 GETDRVINFO는 HDCFLG로 부터 드라이브 정보를 얻는다.
이는 IBT13H 절차의 일부이다.
Inputs : 없음
Outputs : 낮은 3비트의 al = 드라이브 정보
[CLRCHG]
절차 clrChg는 변화라인을 테스트하고 클리어한다. 이는 INT13H 절차의 일부이다.
Inputs : dl = 드라이브 번호
Outputs : 타임아웃이면 캐리 플래그를 세트한다.
ERRSTAT = 타임아웃 또는 변화라인에러.
[DOSEEK/DOSEEK2]
절차 doSeek 및 doSeek2는 ch에 의해 특정화된 트랙을 찾는다.
이는 INT13H 절차의 일부이다.
Inputs : ch = 찾고자하는 트랙
Outputs : 에러일 경우 캐리 플래그 및 ERRSTAT가 세트된다.
[DRIHEDSEL]
절차 driHedSelloads는 헤드(HDC)와, FDC에 대한 드라이브(DS1, DSO)
파라메터를 FDC 에 로드한다. 이는 INT13H 절차의 일부이다.
Inputs : 없음
Outputs : 없음
[INITDMA]
진행 initDMA는 플로피동작용 DMA 제어기를 초기화한다.
이는 INT13H 절차의 일부이다.
Inputs : 없음
Outputs : 에러일 경우 캐리 플래그 및 ERRSTAT를 세트한다.
[HEADSETTLE]
절차 headSettle는 세트할 헤드를 조건에 따라 기다린다. 이는 INT13H 절차의 일부이다.
Inputs : 헤드세틀 대기가 필요할 경우
Outputs : es : si는 DPB를 지정한다.
[SPINUP]
절차 SPINUP은 스핀업 할 플로피를 조건에 따라 기다린다.
이는 INT13H 절차의 일부이다.
[CHKTYP]
절차 chkTyp는 미디어 형태를 체크한다. 이 루틴은 필요시 FDMED를 증명하고 갱신하도록 판독/기업 동작 이전에 호출된다. 시도할 유효 FDMED가 남아 있지 않을 경우 캐리플래그 세트와 함께 복귀한다. 이는 INT13H 절차의 일부이다.
Inputs : FDMED, ERRSTAT(제로가 아닐 경우, 이는 재시도된다)
bx = 드라이브
Outputs :
FDMED 갱신 : ERRSTAT = 캐리플래그 = 보다 유효한 비율/단계
콤보스(combos)가 있을 경우 0이다.
FDMED 복구 : FDOPER = 0
더이상의 유효 비율/단계 콤보스가 없을 경우,
ERRSTAT 및 캐리플래그는 세트된다.
[FDTYPIF]
절차 FDTYPIF는 CMOS가 유효할 경우 CMOS로부터 플로피디스크 형태를 얻는다. 이는 INT13H 절차의 일부이다.
Inputs : 없음
Outputs : COMS가 유효하지 않을 경우 캐리플래그는 세트된다. 그밖에,
al = 드라이브 형태, 어떠한 드라이브 또는 형태가 알려지지 않을 경우 제로플래그를 세트하고, 다른 드라이브일 경우 ah non-zero의 상부.
[FDTYPE]
절차 fdTypegets는 CMOS로부터 플로피디스크 형태를 얻는다. 이는 FDTYPIF 루틴의 일부이며 INT13H 절차의 일부이다.
Inputs : 없음
Outputs : al = 드라이브 형태, 어떠한 드라이브 또는 형태가 알려지지 않을 경우 제로플래그가 세트된다.
다른 드라이브일 경우 ah non-zero의 상부
[SETRATE]
절차 SETRATE는 전달비율을 세트한다. 이는 INT13H 절차의 일부이다.
Inputs : bx = 드라이브 번호
Outputs : 비율제어 포트갱신
[CHKRES]
절차 chkRes는 FDC로부터 결과를 읽고 검사한다. 이는 INT13H 진행의 일부이다.
Inputs : 없음
Outputs : 에러일 경우 캐리 플래그를 세트한다.
al = 전달된 섹터의 수
[AFTERTRY]
절차 AFTERTRY는 비 성공적 동작 이후에 아직도 재시도가 있을 경우 제로플래그를 세트한다. 이는 INT13H 절차의 일부이다.
Inputs : 없음
Outputs : 아직도 재시도가 있을 경우 제로플래그는 세트된다.
[RESTYP]
절차 RESTYP는 알려진 FDMED [bx] 메디어를 강제하고, 호환가능 로우 비트를 복구한다. 이는 INT13H 절차의 일부이다.
Inputs : ah = FDMED [bx]의 상부 3개 비트
Outputs : FDMED [bx] 비트 4=1
[STODRVINFO]
절차 stoDrvInfo 는 HDCFLG 내로 al의 드라이브 정보를 둔다. 이는 INT13H 절차의 일부이다.
Inputs : al = 드라이브 정보
bx = 드라이브 번호
Outputs : HDCFLG의 절반내의 [bx] 드라이브 정보.
[INITFD]
절차 initFD 플로피 서브시스템과 INT13H 루틴에 의해 사용된 모든 변수를 초기화한다.
Inputs : 없음
Outputs : DRVSTAT, FMOTS, FDTIMD, ERRSTAT, DSKST, HDCFLG, FDMED, FDOPER, WTACTF, FDRATE 모두가 초기화 된다.
[DSKTEST]
절차 DSKTEST는 드라이브 형태를 테스트하고 결정한다.
Inputs : ss : bp는 디스크드라이버용 스택프레임을 지정한다.
stk-dl[bp] = 드라이브 번호
Outputs : FDMED [드라이브 #], HDCFLG를 초기화 한다.
드라이브가 없을 경우 캐리플래그는 세트된다.
[SDRVST]
진행 SDRVST는 드라이브 상태를 감지한다.
Inputs : 없음
Outputs : 캐리플래그를 세트, 에러일 경우 ERRSTAT를 세트.
캐리플래그를 크리어, 에러가 없을 경우 ah = FDC'의 STO.
트랙 0에 이를 경우 제로플래그가 세트된다.
[CKFDCFG]
절차 CKFDCFG는 실제 인스톨된 하드웨어에 대하여 플로피 구성(configuration)데이타를 검사한다.
Inputs : 바이트 ptr-stk-dl [bp] = 드라이브 번호
si는 그 드라이브번호용 미디어 형태를 지정한다.
Outputs : 서로 다른 구성일 경우 캐리세트를 행한다.
[CMREAD]
절차 CMREAD는 CMOD 레지스터를 읽는 서브루틴이다.
Inputs : AL = 읽을 CMOS 레지스터 어드레스
Outputs : AL = CMOS 레지스터 값.
인터럽트 플래그 클리어
캐리플래그 클리어
제로플래그 클리어
[CMWRT]
이는 CMOS 레지스터를 기입하는 서브루틴이다.
Inputs : AH = 기입할 CMOS 레지스터 어드레스
비트7 = 0은 NMI를 인에이블한다.
AL = CMOS 레지스터를 기입하는 값
Outputs : 인터럽트 플래그 클리어
캐리플래그 클리어
재로플래그 클리어
[DLY100]
이 절차는 100 마이크로 세컨트 동안 지연한다. 지연가능에 대한 루프계수는 DLY-CNT로부터 취한다. DLY-CNT는 ATPOST 동안 그리고 터보속도가 루틴 CALB-SPD 에의해 변화될 때마다 세트된다. 이는 입력을 취하지 않으며 출력도 없다.
[여러 변형 및 변경]
당 분야의 업자라면 본원에 기술된 개발된 개념을 다양한 분야에 응용할 수 있다는 것을 인지할 것이다. 또, 바람직한 형태로서 아주 다양한 변형이 가능하다. 따라서 전후에 제시된 변형 및 변경 형태들은 단지 일반적 범주에 속하는 것으로 이해할 수 있을 것이다. 이들 실시예들은 본 발명의 사상의 일부를 보여주기는 하지만 본 발명의 모든 변형예를 나타낼 수는 없을 것이다.
특히, 본 발명의 신규기술은 DOS 시스템에만 적용이 국환되지 않으며 80×86 마이크로프로세서를 사용한 시스템 및 CPU로서 단일 마이크로프로세서를 사용한 시스템에만 한하지도 않는다. 즉 본 발명의 신규기술은 적용가능한 일반적 구성기술을 제공하며, 컴퓨터시스템 및 높은 수행시스템 및 멀티프로세싱 시스템에도 적용가능하다.
또는 사용자 공급 BISO 코드용 소스는 플로피 드라이브일 필요는 없으며, 예를들어 테이프카드리지 또는 다이얼-인-전화 인터페이스가 대신 사용될 수 있다.
또한 플래쉬 EPROM이 제2비휘발성 부트메모리용으로서 바람직하지만 다른 비휘발성 스토리지 기술도 실용적으로 사용될 수 있다. 따라서, 본 발명의 양호한 실시예의 여러 특징은 EEPROM 밧데리-백업된 SRAM 칩, 페로일렉트릭 RAM 또는 미래기술을 사용한 시스템에 직접적으로 적용될 수 있다.
또한 양쪽 부트메모리들 모두가 필요에 따라 재기입 가능한 비휘발성 메모리 일수도 있다. 이러한 구성이 양호한 실시예보다 견고성(robustmess)이 못할지는 모르지만, 재기입 가능한 비휘발성 부트메모리를 하나만 사용하는 구성에 비해 많은 부수적인 이점을 제공한다.
당 분야의 통상의 기술을 가진 자라면 인지되는 바와 같이 본원에 개시된 혁신개념은 많은 범위에 걸친 응용에 변형되거나 변화될 수 있으며, 따라서 본 발명의 정신은 주어진 특정 실시예에만 국한되지 않는다.

Claims (20)

  1. 시스템이 하드리세트 되었을 때 마다 프로그램 가능 중앙처리장치(CPU)에 주어진 동작을 즉시 수행할 수 있는 단계를 포함하는 컴퓨터시스템을 동작시키기 위한 방법에 있어서, (1.A) 상기 CPU가 재기입 가능한 비휘발성 부트메모리로부터 소프트웨어를 실행할 경우, (1.A.i) 상기 재기입 가능한 비휘발성 부트메모리에서 베이직 시스템 소프트웨어의 체크섬 동작을 수행하되, 만일 체크섬 에러가 발생되는 경우, (1.A.i.a) 사용자로 하여금 베이직 시스템 소프트웨어용 데이타 소스를 제공토록 하며, 그 이후에, (1.A.i.b) 사용자에 의해 제공된 데이타 소스로부터 재기입 가능한 비휘발성 부트메모리를 재프로그래밍하는 단계와 : (1.Aii) 예정된 데이타 위치로부터 적어도 한개의 비트를 판독하되, 만일 상기 비트가 제1상태에 있을 경우, (1.A.ii.a) 사용자로 하여금 베이직 시스템 소프트웨어에 데이타 소스를 제공토록 하며, 그 이후에, (1.A.ii.b) 사용자에 의해 제공된 데이타소스로부터 재기입 가능한 비휘발성 부트메모리를 재프로그램밍하는 단계와 : (1.B) 상기 CPU 가 재기입 가능한 비휘발성 부트메모리와 같지 않은 제2비휘발성 부트메모리로부터 소프트웨어를 실행하고 상기 재기입 가능한 비휘발성 메모리가 현재 기입 방지(write-protected)가 되지 않은 경우, 상기 기입가능한 비휘발성 메모리의 내용을 오버 기입(overwrite)하는 단계로 이루어지는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  2. 제1항에 있어서, 상기 재기입 가능한 비휘발성 부트메모리는 필수적으로 플래쉬 EPROM으로 구성되는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  3. 제1항에 있어서, 상기 재기입 가능한 비휘발성 부트메모리는 필수적으로 전기적으로 소거가능 프로그램 가능-읽기-전용-메모리(ROM)로 구성되는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  4. 제1항에 있어서, 상기 제1휘발성 부트메모리는 필수적으로 전기적으로 소거되지 않은 프로그램 가능한 읽기-전용-메모리로 구성되는 것을 특징으로 하는 컴퓨터 시스템 동작방법.
  5. 제1항에 있어서, 상기 재기입 가능한 비휘발성 부트메모리는 섹터로 기입방지(write - protectd)되고, 코어소프트웨어는 상기 재기입 가능한 비휘발성 부트메모리의 내용중 나머지 부분과 무관하게 기입방지되는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  6. 제1항에 있어서, 상기 데이타소스는 플로피 디스크 드라이브인 것을 특징으로 하는 컴퓨터 시스템 동작방법.
  7. 제1항에 있어서,상기 단계(1.B)는 제2부트메모리의 전체 내용을 카피하여 상기 재기입 가능한 비휘발성 부트메모리의 내용을 오버기입하는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  8. 제1항에 있어서, 상기 CPU는 마이크로프로세서인 것을 특징으로 하는 컴퓨터시스템 동작방법.
  9. 제1항에 있어서, 상기 예정된 데이타 위치는 밧데리 백업된 정적메모리 내에 위치하는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  10. 상기 재기입 가능한 비휘발성 부트메모리는 섹터로 기입방지되고, 코어소프크웨어는 상기 코어 소프트웨어를 오버기입 하기 위하여 수동 변화되는 하드웨어 전기접속에 의해 상기 재기입 가능한 비휘발성 부트메모리 내용중 나머지 다른 부분과 무관하게 기입 방지되는 것을 특징으로 하는 컴퓨터시스템 동작 방법.
  11. 시스템이 파워업 변환이 있을 때 마다 마이크로프로세서 내의 주어진 동작을 즉시 수행하기 이한 단계를 구비하는 컴퓨터시스템을 동작시키기 위한 방법에 있어서, (11.A) 상기 마이크로프로세서가 재기입 가능 비휘발성 부트메모리로부터 또는 상기 재기입 가능한 부트메모리와 같지는 않지만 같은 어드레스상으로 매프될 수 있는 제2비휘발성 부트메모리로부터 부트소프트웨어르 현재 실행하는지를 확인하는 단계와 ; (11.B) 상기 마이크로프로세서가 상기 재기입 가능한 부트메모리로부터 소프트웨어를 실행하는 경우. (11.B.i) 상기 재기입 가능한 비휘발성 부트메모리에서 베이직 시스템 소프트웨어의 체크섬 동작을 수행하되, 만일 체크섬 에러가 발생되는 경우, (11.B.i.a) 사용자로 하여금 베이직 시스템 소프트웨어용 데이타 소스를 제공토록 하며, 그후 (11.B.i.b) 사용자에 의해 제공된 데이타 소스로부터 재기입 가능한 비휘발성 부트메모리를 재프로그래밍하고, 시스템을 재부팅 하도록 사용자에게 프롬프트하는 단계와, (11.B.ii) 예정된 데이타 위치로부터 적어도 하나의 비트를 판독하되 만일 상기 비트가 제1상태에 있을 경우, (11.B.ii.a) 사용자로 하여금 베이직 시스템 소프트웨어용 데이타소스를 제공하도록 프롬프트하고, 그후에 (11.b.ii.b) 사용자에 의해 제공된 데이타소스로부터 재기입 가능한 부트메모리를 재프로그램한 후 사용자로 하여금 시스템을 재부팅 하도록 프롬프트 하는 단계와 ;
    (11.B.iii) 그렇지 않을 경우 상기 재기입 가능한 부트메모리로 부터 파워-온-셀프-테스트를 실행하는 단계와, (11.C) 상기 마이크로프로세서가 상기 제2부트메모리로부터 소프트웨어를 실행하는 경우 및 상기 재기입 가능한 비휘발성 메모리가 현재 기입방지 되지 않을 경우, 상기 제2부트메모리의 전체 내용을 카피하여 상기 재기입 가능한 비휘발성 부트메모리의 내용을 오버기입 하도록 하고 이후 사용자가 시스템을 재부팅 하도록 프롬프트 하는 단계와 ; 그렇지 않을 경우 상기 제2부트메모리로부터 파워-온-셀프-테스트루틴을 실행하는 단계로 이루어지는 것을 특징으로 컴퓨터시스템 동작방법.
  12. 제11항에 있어서, 상기 재기입 가능한 비휘발성 부트메모리는 필수적으로 플래쉬 EPROM으로 구성되는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  13. 제11항에 있어서, 상기 제2비휘발성 부트메모리는 필수적으로 전기적으로 소거되지 않는 프로그램 가능-읽기-전용-메모리로 구성되는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  14. 제11항에 있어서, 상기 재기입 가능한 비휘발성 부트메모리는 섹터로 기입방지되고 코어 소프트웨어는 상기 재기입 가능한 비휘발성 부트메모리중 나머지 다른 내용부분과 무관하게 기입장지되는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  15. 제11항에 있어서, 상기 단계(11.B.iii) 이후에, 예정된 OS 소프트웨어의 실행을 착수하기 위한 추가의 단계를 포함하는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  16. 컴퓨터시스템을 동작하기 위한 방법에 있어서, (16.A) 정상동작 동안에, 메모리로부터 프로그램가능 시퀀스에서 지시를 페치할 수 있는 적어도 하나 이상의 CPU 로 순차적 지시를 실행 하는 단계와 ; (16.B) 파워복구 또는 소프트웨어리세트 명령이 발생할시에, 상기 CPU를 리셋팅 하는 단계를 포함하는 시스템리세트 동작을 초기화하는 단계와 ; (16.C) 상기 CPU를 리세팅 하는 단계 이후에 즉시, 재기입 가능한 비휘발성 부트메모리 내에 저장된 코어소프트웨어 프로그램을 상기 CPU로 실행하되, 상기 재기입 가능한 부트메모리 내의 데이타 보존상태를 테스트 하고 사용자로 하여금 파손된 경우 재기입 가능 부트메모리에 대해 대체할 데이타를 공급하도록 프롬프트하는 단계와 ; (16.D) 상기 CPU가 상기 코어 소프트웨어 프로그램을 성공적으로 실행 할 경우, 이이서 상기 CPU로 파워-온-셀프 테스트 프로그램을 실행하는 단계 및 ; (16.E)상기 CPU가 상기 파워-온-셀프-테스트 소프트웨어 프로그램을 성공적으로 실행할 경우, 이어서 OS 소프트웨어 실행을 상기 CPU가 행하도록 하는 단계로 이루어지는 것을 특징으로 하는 컴퓨터 시스템 동작방법.
  17. 제16항에 있어서, 상기 재기입 가능한 비휘발성 부트메모리는 필수적으로 플레쉬 EPROM으로 구성되는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  18. 제16항에 있어서, 상기 재기입 가능한 비휘발성 부트메모리는 필수적으로 전기적으로 소거가능한 프로그램 가능-읽기-전용-메모리로 구성되는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  19. 제16항에 있어서, 상기 제2휘발성 부트메모리는 필수적으로 전기적으로 소거되지 않는 프로그램가능 읽기-전용-메모리로 구성되는 것을 특징으로 하는 컴퓨터시스템 동작방법.
  20. 제16항에 있어서, 상기 CPU는 마이크로프로세서인 것을 특징으로 하는 컴퓨터시스템 동작방법.
KR1019920008421A 1991-05-29 1992-05-19 복구가능한 베이식 펌웨어를 가진 컴퓨터시스템 동작방법 KR100239585B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/707,121 1991-05-29
US7/707,121 1991-05-29
US07/707,121 US5388267A (en) 1991-05-29 1991-05-29 Method and apparatus for updating and restoring system BIOS functions while maintaining BIOS integrity

Publications (2)

Publication Number Publication Date
KR920022093A KR920022093A (ko) 1992-12-19
KR100239585B1 true KR100239585B1 (ko) 2000-01-15

Family

ID=24840435

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920008421A KR100239585B1 (ko) 1991-05-29 1992-05-19 복구가능한 베이식 펌웨어를 가진 컴퓨터시스템 동작방법

Country Status (5)

Country Link
US (1) US5388267A (ko)
EP (1) EP0524719B1 (ko)
JP (1) JPH06175829A (ko)
KR (1) KR100239585B1 (ko)
DE (1) DE69229765T2 (ko)

Families Citing this family (188)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872967A (en) * 1989-12-29 1999-02-16 Packard Bell Nec Method for warm boot from reset
US6009495A (en) * 1989-12-29 1999-12-28 Packard Bell Nec Protected address range in an electrically erasable programmable read only memory
US5822601A (en) * 1989-12-29 1998-10-13 Packard Bell Nec Apparatus to allow a CPU to control the relocation of code blocks for other CPUs
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
US5826075A (en) * 1991-10-16 1998-10-20 International Business Machines Corporation Automated programmable fireware store for a personal computer system
US6131159A (en) * 1992-05-08 2000-10-10 Paradyne Corporation System for downloading programs
US5634079A (en) * 1992-05-15 1997-05-27 Zenith Data Systems Corporation System for providing for a parallel port with standard signals and a flash recovery mode with second predetermined signals redefining parallel port with alternate functions
US6182187B1 (en) * 1993-04-07 2001-01-30 Compaq Computer Corporation System ROM including a flash EPROM and a ROM for storing primary boot code replacing a block flash EPROM
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
US5600801A (en) * 1993-07-15 1997-02-04 Dell Usa, L.P. Multiple function interface device for option card
DE9313005U1 (de) * 1993-08-30 1995-01-05 Siemens AG, 80333 München Elektronische Baugruppe mit wenigstens einer dezentralen Prozessoreinrichtung eines mehrprozessorgesteuerten Systems
JP3310060B2 (ja) * 1993-09-13 2002-07-29 株式会社東芝 記憶装置および同装置の制御プログラム書換え方法
US5752063A (en) * 1993-12-08 1998-05-12 Packard Bell Nec Write inhibited registers
US5764995A (en) * 1994-03-25 1998-06-09 Packard Bell Nec Write once read only registers
US6148441A (en) * 1994-04-06 2000-11-14 Dell Usa, L.P. Method for reprogramming flash ROM in a personal computer implementing an EISA bus system
GB2290890B (en) * 1994-06-29 1999-03-24 Mitsubishi Electric Corp Information processing system
US5864698A (en) * 1994-08-24 1999-01-26 Packard Bell Nec Disk based bios
US5652868A (en) * 1994-09-27 1997-07-29 International Business Machines Corporation Data processor having BIOS decryption of emulated media images
US5694583A (en) * 1994-09-27 1997-12-02 International Business Machines Corporation BIOS emulation parameter preservation across computer bootstrapping
US5797023A (en) * 1994-10-17 1998-08-18 Digital Equipment Corporation Method and apparatus for fault tolerant BIOS addressing
US5581768A (en) * 1995-02-27 1996-12-03 Intel Corporation Method and apparatus for executing applications in place from write once/seldom memories
KR0172001B1 (ko) * 1995-12-05 1999-03-30 윤종용 바이오스 메모리의 재프로그램 장치 및 그 방법
US5748940A (en) * 1995-08-17 1998-05-05 Compaq Computer Corporation Secure updating of non-volatile memory
US5822581A (en) * 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US5682528A (en) * 1995-12-22 1997-10-28 Tandem Computers Incorporated Spoon-feed initialization in a multiprocessor system
EP0790554A1 (de) * 1996-02-16 1997-08-20 Siemens Aktiengesellschaft Verfahren und Schaltungsanordnung zur Steuerung eines Firmwareladeprozesses
US5701492A (en) * 1996-03-29 1997-12-23 Canon Kabushiki Kaisha Fail-safe flashing of EPROM
KR100568641B1 (ko) * 1996-04-11 2006-04-07 가부시끼가이샤 히다치 세이사꾸쇼 디스크 드라이브 장치
KR100198382B1 (ko) * 1996-05-07 1999-06-15 윤종용 멀티-부팅 기능을 갖는 컴퓨터 장치
EP0825530A3 (en) * 1996-06-20 2004-06-02 Sharp Kabushiki Kaisha Computer apparatus having electrically rewritable nonvolatile memory, and nonvolatile semiconductor memory
JP2940480B2 (ja) 1996-07-05 1999-08-25 日本電気株式会社 コンピュータシステム
JPH1027035A (ja) * 1996-07-12 1998-01-27 Fujitsu Ltd 情報処理装置
US5805882A (en) * 1996-07-19 1998-09-08 Compaq Computer Corporation Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
US5819087A (en) * 1996-07-19 1998-10-06 Compaq Computer Corporation Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events
US5930504A (en) * 1996-07-22 1999-07-27 Intel Corporation Dynamic nonvolatile memory update in a computer system
US5793943A (en) * 1996-07-29 1998-08-11 Micron Electronics, Inc. System for a primary BIOS ROM recovery in a dual BIOS ROM computer system
US6317827B1 (en) * 1996-08-16 2001-11-13 Intel Corporation Method and apparatus for fault tolerant flash upgrading
US5938764A (en) * 1996-10-23 1999-08-17 Micron Electronics, Inc. Apparatus for improved storage of computer system configuration information
US6493788B1 (en) 1996-10-28 2002-12-10 Macronix International Co., Ltd. Processor with embedded in-circuit programming structures
US6282675B1 (en) 1997-08-06 2001-08-28 Macronix International Co., Ltd. Fault-tolerant architecture for in-circuit programming
WO1999008186A1 (en) * 1997-08-06 1999-02-18 Macronix International Co., Ltd. Fault-tolerant architecture for in-circuit programming
US6842820B2 (en) 1997-10-03 2005-01-11 Macronix International Co., Ltd. Processor with embedded in-circuit programming structures
US6151657A (en) * 1996-10-28 2000-11-21 Macronix International Co., Ltd. Processor with embedded in-circuit programming structures
US5974250A (en) * 1996-12-13 1999-10-26 Compaq Computer Corp. System and method for secure information transmission over a network
US5901285A (en) * 1996-12-18 1999-05-04 Intel Corporation Hierarchical erasure key protection for computer system data
US6122733A (en) * 1997-01-02 2000-09-19 Intel Corporation Method and apparatus for updating a basic input/output system
US6047373A (en) 1997-01-02 2000-04-04 Intel Corporation Method and apparatus for setting the operating parameters of a computer system
KR100298420B1 (ko) * 1997-03-10 2001-10-24 윤종용 롬바이오스의업데이트방법
US6748524B1 (en) 1997-04-30 2004-06-08 Gateway, Inc. Display and recordation of non-volatile memory changes
KR100258966B1 (ko) 1997-05-02 2000-06-15 윤종용 시리얼 통신을 이용한 바이오스 업그레이드 방법
US5987554A (en) * 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6269412B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Apparatus for recording information system events
US6243773B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Configuration management system for hot adding and hot replacing devices
US6163849A (en) * 1997-05-13 2000-12-19 Micron Electronics, Inc. Method of powering up or powering down a server to a maintenance state
US6134668A (en) * 1997-05-13 2000-10-17 Micron Electronics, Inc. Method of selective independent powering of portion of computer system through remote interface from remote interface power supply
US6073255A (en) * 1997-05-13 2000-06-06 Micron Electronics, Inc. Method of reading system log
US6122746A (en) * 1997-05-13 2000-09-19 Micron Electronics, Inc. System for powering up and powering down a server
US6138250A (en) * 1997-05-13 2000-10-24 Micron Electronics, Inc. System for reading system log
US6249834B1 (en) 1997-05-13 2001-06-19 Micron Technology, Inc. System for expanding PCI bus loading capacity
US6243838B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Method for automatically reporting a system failure in a server
US6122758A (en) * 1997-05-13 2000-09-19 Micron Electronics, Inc. System for mapping environmental resources to memory for program access
US6202111B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a statically loaded adapter driver
US6292905B1 (en) 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6202160B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. System for independent powering of a computer system
US6324608B1 (en) 1997-05-13 2001-11-27 Micron Electronics Method for hot swapping of network components
US6170028B1 (en) 1997-05-13 2001-01-02 Micron Electronics, Inc. Method for hot swapping a programmable network adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6247080B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US6182180B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Apparatus for interfacing buses
US6253334B1 (en) 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6266721B1 (en) 1997-05-13 2001-07-24 Micron Electronics, Inc. System architecture for remote access and control of environmental management
US6338150B1 (en) * 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6247079B1 (en) * 1997-05-13 2001-06-12 Micron Electronics, Inc Apparatus for computer implemented hot-swap and hot-add
US5892928A (en) * 1997-05-13 1999-04-06 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a dynamically loaded adapter driver
US6195717B1 (en) 1997-05-13 2001-02-27 Micron Electronics, Inc. Method of expanding bus loading capacity
US6330690B1 (en) 1997-05-13 2001-12-11 Micron Electronics, Inc. Method of resetting a server
US6148355A (en) * 1997-05-13 2000-11-14 Micron Electronics, Inc. Configuration management method for hot adding and hot replacing devices
US6269417B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Method for determining and displaying the physical slot number of an expansion bus device
US6170067B1 (en) 1997-05-13 2001-01-02 Micron Technology, Inc. System for automatically reporting a system failure in a server
US6249828B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver
US6219734B1 (en) 1997-05-13 2001-04-17 Micron Electronics, Inc. Method for the hot add of a mass storage adapter on a system including a statically loaded adapter driver
US6179486B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Method for hot add of a mass storage adapter on a system including a dynamically loaded adapter driver
US6163853A (en) * 1997-05-13 2000-12-19 Micron Electronics, Inc. Method for communicating a software-generated pulse waveform between two servers in a network
US6304929B1 (en) 1997-05-13 2001-10-16 Micron Electronics, Inc. Method for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6173346B1 (en) 1997-05-13 2001-01-09 Micron Electronics, Inc. Method for hot swapping a programmable storage adapter using a programmable processor for selectively enabling or disabling power to adapter slot in response to respective request signals
US6145098A (en) * 1997-05-13 2000-11-07 Micron Electronics, Inc. System for displaying system status
US6192434B1 (en) 1997-05-13 2001-02-20 Micron Electronics, Inc System for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6418492B1 (en) 1997-05-13 2002-07-09 Micron Electronics Method for computer implemented hot-swap and hot-add
US6134673A (en) * 1997-05-13 2000-10-17 Micron Electronics, Inc. Method for clustering software applications
US6499073B1 (en) 1997-05-13 2002-12-24 Micron Electronics, Inc. System using programmable processor for selectively enabling or disabling power to adapter in response to respective request signals
US5987536A (en) * 1997-05-22 1999-11-16 International Business Machines Corporation Computer system having flash memory bios which can be accessed while protected mode operating system is running
EP0934563A1 (en) * 1997-05-30 1999-08-11 Koninklijke Philips Electronics N.V. Failsafe method for upgrading set-top system software from a network server
GB9713094D0 (en) * 1997-06-21 1997-08-27 Philips Electronics Nv Optical disc drive
US6038689A (en) * 1997-08-21 2000-03-14 Digital Equipment Corporation Fault notification system and process using local area network
US6009524A (en) * 1997-08-29 1999-12-28 Compact Computer Corp Method for the secure remote flashing of a BIOS memory
KR19990026189A (ko) * 1997-09-23 1999-04-15 윤종용 바이오스 롬의 업데이트 방법
US5913058A (en) * 1997-09-30 1999-06-15 Compaq Computer Corp. System and method for using a real mode bios interface to read physical disk sectors after the operating system has loaded and before the operating system device drivers have loaded
US6175490B1 (en) 1997-10-01 2001-01-16 Micron Electronics, Inc. Fault tolerant computer system
US6088816A (en) * 1997-10-01 2000-07-11 Micron Electronics, Inc. Method of displaying system status
US6199173B1 (en) 1997-10-01 2001-03-06 Micron Electronics, Inc. Method for mapping environmental resources to memory for program access
US6154835A (en) * 1997-10-01 2000-11-28 Micron Electronics, Inc. Method for automatically configuring and formatting a computer system and installing software
US6263387B1 (en) 1997-10-01 2001-07-17 Micron Electronics, Inc. System for automatically configuring a server after hot add of a device
US6035420A (en) * 1997-10-01 2000-03-07 Micron Electronics, Inc. Method of performing an extensive diagnostic test in conjunction with a bios test routine
US6009541A (en) * 1997-10-01 1999-12-28 Micron Electronics, Inc. Apparatus for performing an extensive diagnostic test in conjunction with a bios test routine
US6065053A (en) * 1997-10-01 2000-05-16 Micron Electronics, Inc. System for resetting a server
US6138179A (en) * 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
US6212585B1 (en) 1997-10-01 2001-04-03 Micron Electronics, Inc. Method of automatically configuring a server after hot add of a device
US6438687B2 (en) 1997-10-30 2002-08-20 Micron Technology, Inc. Method and apparatus for improved storage of computer system configuration information
US5987605A (en) * 1998-02-28 1999-11-16 Hewlett-Packard Co. Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device
US20020069316A1 (en) * 1998-04-15 2002-06-06 Mattison Phillip E. Method and apparatus for protecting flash memory
US6298443B1 (en) 1998-04-24 2001-10-02 Dell Usa, L.P. Method and system for supplying a custom software image to a computer system
US6240519B1 (en) 1998-04-30 2001-05-29 Compaq Computer Corporation Computer method and apparatus to prompt for administrative password to flash a corrupted non-volatile memory
US6363492B1 (en) 1998-04-30 2002-03-26 Compaq Computer Corporation Computer method and apparatus to force boot block recovery
US6205503B1 (en) 1998-07-17 2001-03-20 Mallikarjunan Mahalingam Method for the hot swap and add of input/output platforms and devices
US6223234B1 (en) 1998-07-17 2001-04-24 Micron Electronics, Inc. Apparatus for the hot swap and add of input/output platforms and devices
JP3727485B2 (ja) 1999-04-02 2005-12-14 シャープ株式会社 不揮発性メモリ内蔵マイクロコンピュータ
IL129947A (en) * 1999-05-13 2003-06-24 Tadiran Telecom Business Syste Method and apparatus for downloading software into an embedded system
EP1063589A1 (en) * 1999-06-25 2000-12-27 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Device for processing data and corresponding method
US6473856B1 (en) * 1999-06-30 2002-10-29 International Business Machines Corporation Gold code backup for corrupt boot code recovery
US6715074B1 (en) * 1999-07-27 2004-03-30 Hewlett-Packard Development Company, L.P. Virus resistant and hardware independent method of flashing system bios
US6434697B1 (en) 1999-10-06 2002-08-13 Micron Technology, Inc. Apparatus for savings system configuration information to shorten computer system initialization time
US6519698B1 (en) 1999-10-06 2003-02-11 Micron Technology, Inc. Method for saving system configuration information to shorten computer system initialization time by checking the state of a chassis intrusion detection circuit
US6513114B1 (en) 1999-12-08 2003-01-28 Dell Products L.P. System and methods for providing selectable initialization sequences
US6560703B1 (en) 2000-04-18 2003-05-06 International Business Machines Corporation Redundant updatable self-booting firmware
US6732267B1 (en) 2000-09-11 2004-05-04 Dell Products L.P. System and method for performing remote BIOS updates
US6804773B1 (en) 2000-10-03 2004-10-12 Dell Products L.P. System and method for transferring information over a network
US6414513B1 (en) 2000-10-03 2002-07-02 International Business Machines Corporation Customized system-readable hardware/firmware integrated circuit version information
US6757838B1 (en) 2000-10-13 2004-06-29 Hewlett-Packard Development Company, L.P. Hardware independent implementation of computer system BIOS recovery
US6834331B1 (en) 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
US6715106B1 (en) 2000-11-10 2004-03-30 Dell Products L.P. Bios corruption detection system and method
FR2819070B1 (fr) * 2000-12-28 2003-03-21 St Microelectronics Sa Procede et dispositif de protection conte le piratage de circuits integres
US6842855B2 (en) 2001-01-26 2005-01-11 Dell Products L.P. System and method for providing information to a computer system
US6751569B2 (en) 2001-01-26 2004-06-15 Dell Products L.P. System and method for receiving information from a test apparatus
CZ300977B6 (cs) * 2001-02-26 2009-09-30 Iss Europe, Spol. S R.O. Radic se sbernicemi PCI a SCSI a výpocetní systém s elektronickým polovodicovým diskem
US7065347B1 (en) * 2001-06-27 2006-06-20 Peoplenet Communications Corporation System and method for over the air programming
US6862681B2 (en) 2001-07-16 2005-03-01 International Business Machines Corporation Method and system for master boot record recovery
US20030028799A1 (en) * 2001-07-31 2003-02-06 Cordella Robert H. Processes and systems for secure access to information resources using computer hardware
JP4840553B2 (ja) * 2001-07-31 2011-12-21 日本電気株式会社 無線通信機と、そのブートプログラム書き換え方法及びプログラム
JP4434539B2 (ja) * 2001-12-26 2010-03-17 富士通マイクロエレクトロニクス株式会社 プロセッサおよびそのブート方法
US7032106B2 (en) 2001-12-27 2006-04-18 Computer Network Technology Corporation Method and apparatus for booting a microprocessor
US7664903B2 (en) * 2002-02-25 2010-02-16 Solid Access Technologies LLC Control unit with PCI and SCSI buses and computing system with electronic semiconductor disk
US7409435B1 (en) * 2002-02-28 2008-08-05 Sprint Communications Company L.P. Integrated services hub binary file trial run process
US7080245B2 (en) * 2002-05-23 2006-07-18 Hewlett-Packard Development Company, L.P. Method and system of switching between two or more images of firmware on a host device
SG118149A1 (en) * 2002-08-02 2006-01-27 Kie James Chan Loke Program for upgrading operating systems in non-volatile memory
KR100532413B1 (ko) * 2002-12-02 2005-12-02 삼성전자주식회사 플래시 메모리 보호 장치 및 방법
US7337309B2 (en) * 2003-03-24 2008-02-26 Intel Corporation Secure online BIOS update schemes
US7246222B2 (en) 2003-04-21 2007-07-17 Hewlett-Packard Development Company, L.P. Processor type determination based on reset vector characteristics
US7322029B2 (en) * 2003-05-08 2008-01-22 American Megatrends, Inc. Method and system for recovering program code in a computer system
US20040243998A1 (en) * 2003-05-27 2004-12-02 Dell Products L.P. Method and apparatus for restoring an information handling system to a previous software state
JP3906825B2 (ja) * 2003-06-17 2007-04-18 日本電気株式会社 計算機システム、計算機システム起動方法およびプログラム
US7487345B2 (en) * 2003-10-10 2009-02-03 Dell Products L.P. Method of comparing build capability flags of replacement BIOS with boot capability flags of current BIOS to determine compatibility between BIOS revisions and installed hardware during flash update
US7397624B2 (en) 2003-11-06 2008-07-08 Seagate Technology Llc Transducers for ferroelectric storage medium
US8990366B2 (en) 2003-12-23 2015-03-24 Intel Corporation Method and apparatus for remote modification of system configuration
US7373498B2 (en) * 2003-12-23 2008-05-13 Intel Corporation Method and apparatus for updating a system configuration through an active or passive update
US8924522B2 (en) 2003-12-23 2014-12-30 Intel Corporation Method and apparatus for remote modification of system configuration setting
US7234075B2 (en) * 2003-12-30 2007-06-19 Dell Products L.P. Distributed failover aware storage area network backup of application data in an active-N high availability cluster
JP4544901B2 (ja) * 2004-04-19 2010-09-15 株式会社日立製作所 記憶制御システム及びブート制御システム
US7822937B2 (en) * 2004-05-03 2010-10-26 Gateway, Inc. Method and apparatus for modifying reserve area of disk drive or memory
KR100604877B1 (ko) 2004-07-03 2006-07-31 삼성전자주식회사 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법
FR2872603B1 (fr) 2004-07-03 2007-02-09 Samsung Electronics Co Ltd Procede et dispositif pour executer le code d'amorcage de systemes integres
JP2006099215A (ja) * 2004-09-28 2006-04-13 Toshiba Tec Corp ダウンロード基板を装着可能なコンピュータ装置
US20060236084A1 (en) * 2005-04-15 2006-10-19 Dune-Ren Wu Method and system for providing an auxiliary bios code in an auxiliary bios memory utilizing time expiry control
DE102005018910A1 (de) * 2005-04-22 2006-10-26 Endress + Hauser Gmbh + Co. Kg Verfahren zum Aufrüsten eines mikroprozessorgesteuerten Geräts mit neuem Softwarecode über ein Kommunikationsnetzwerk
TW200825705A (en) * 2006-04-26 2008-06-16 Nxp Bv Method and system for power-state transition controllers
US9047452B2 (en) * 2006-07-06 2015-06-02 Dell Products L.P. Multi-user BIOS authentication
US7634799B2 (en) 2006-07-10 2009-12-15 Dell Products L.P. Method for updating system BIOS after service event in order to support re-enablement of an O.C.U.R. device
DE102006043636A1 (de) * 2006-09-18 2008-03-27 Fujitsu Siemens Computers Gmbh Computersystem und Verfahren zum Aktualisieren von Programmcode
US7509544B2 (en) * 2007-02-26 2009-03-24 Inventec Corporation Data repair and synchronization method of dual flash read only memory
US7953987B2 (en) * 2007-03-06 2011-05-31 International Business Machines Corporation Protection of secure electronic modules against attacks
US7805598B2 (en) * 2007-05-03 2010-09-28 Dell Products L.P. Auto-detecting and auto-correcting system state changes before booting into operating systems
US9098448B2 (en) * 2007-05-29 2015-08-04 Dell Products L.P. Intelligent boot services
US8943491B2 (en) * 2008-06-26 2015-01-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Systems and methods for maintaining CRTM code
TW201030518A (en) * 2009-02-11 2010-08-16 Inventec Corp BIOS, computer device and BIOS recovery
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US20130117006A1 (en) * 2011-11-07 2013-05-09 Microsoft Corporation Simulated boot process to detect introduction of unauthorized information
US9466377B2 (en) * 2014-02-26 2016-10-11 Infineon Technologies Ag Method and device for processing an erase counter
US9424134B2 (en) * 2014-03-28 2016-08-23 Intel Corporation Boot management in a non-volatile memory system
US9983885B2 (en) 2015-05-06 2018-05-29 Elbit Systems Of America, Llc BIOS system with non-volatile data memory
TWI553490B (zh) * 2015-07-29 2016-10-11 廣達電腦股份有限公司 遠端系統配置管理方法、遠端系統配置管理系統及非暫態電腦可讀式儲存多媒體
US9742568B2 (en) 2015-09-23 2017-08-22 Dell Products, L.P. Trusted support processor authentication of host BIOS/UEFI
US20180275731A1 (en) * 2017-03-21 2018-09-27 Hewlett Packard Enterprise Development Lp Processor reset vectors
US10997296B2 (en) * 2017-03-22 2021-05-04 Oracle International Corporation System and method for restoration of a trusted system firmware state
US10802916B2 (en) * 2017-08-04 2020-10-13 Dell Products, L.P. System and method to enable rapid recovery of an operating system image of an information handling system after a malicious attack
CN108763099B (zh) * 2018-04-18 2020-05-08 华为技术有限公司 系统的启动方法、装置、电子设备和存储介质
JP7263101B2 (ja) * 2019-04-26 2023-04-24 キヤノン株式会社 情報処理装置、データ検証方法
KR20210024763A (ko) 2019-08-26 2021-03-08 에스케이하이닉스 주식회사 메모리 시스템의 동작 중 펌웨어 오류를 처리하는 방법 및 장치
CN113608769B (zh) * 2021-08-16 2024-05-03 广东亿云智控技术有限公司 一种基于多单片机并行处理及自我升级的方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4430704A (en) * 1980-01-21 1984-02-07 The United States Of America As Represented By The Secretary Of The Navy Programmable bootstrap loading system
US4663707A (en) * 1984-05-25 1987-05-05 Scientific Micro Systems, Inc. Multilevel bootstrap apparatus
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
US5136713A (en) * 1989-08-25 1992-08-04 International Business Machines Corporation Apparatus and method for decreasing the memory requirements for bios in a personal computer system
US5210875A (en) * 1989-08-25 1993-05-11 International Business Machines Corporation Initial bios load for a personal computer system
DE59109125D1 (de) * 1991-02-25 1999-06-10 Siemens Ag EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
US5473775A (en) * 1991-10-11 1995-12-05 Kabushiki Kaisha Toshiba Personal computer using flash memory as BIOS-ROM

Also Published As

Publication number Publication date
DE69229765T2 (de) 2000-03-02
EP0524719A3 (en) 1993-09-08
DE69229765D1 (de) 1999-09-16
JPH06175829A (ja) 1994-06-24
EP0524719B1 (en) 1999-08-11
EP0524719A2 (en) 1993-01-27
KR920022093A (ko) 1992-12-19
US5388267A (en) 1995-02-07

Similar Documents

Publication Publication Date Title
KR100239585B1 (ko) 복구가능한 베이식 펌웨어를 가진 컴퓨터시스템 동작방법
JP4668416B2 (ja) ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護
JP3372964B2 (ja) コンピュータシステム
JP3195988B2 (ja) 不揮発性半導体メモリ及びこれを使用したコンピュータシステム
US6317827B1 (en) Method and apparatus for fault tolerant flash upgrading
US5371876A (en) Computer system with a paged non-volatile memory
TWI515660B (zh) 韌體變量更新方法
KR100448905B1 (ko) 낸드플래쉬메모리를 시스템구동 및 저장용으로 사용하는장치
US6205548B1 (en) Methods and apparatus for updating a nonvolatile memory
US5870520A (en) Flash disaster recovery ROM and utility to reprogram multiple ROMS
US7234052B2 (en) System boot using NAND flash memory and method thereof
US7761653B2 (en) Flash micro-controller with shadow boot-loader SRAM for dual-device booting of micro-controller and host
US5878256A (en) Method and apparatus for providing updated firmware in a data processing system
US20090113196A1 (en) Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems
US7017038B1 (en) Method and system to provide first boot to a CPU system
US20030028760A1 (en) System and method for booting from a non-volatile application and file storage device
US6629192B1 (en) Method and apparatus for use of a non-volatile storage management system for PC/AT compatible system firmware
US6189070B1 (en) Apparatus and method for suspending operation to read code in a nonvolatile writable semiconductor memory
US6543008B1 (en) Computer system and program rewriting method
US6216225B1 (en) PC system having flash-ROM controlling device and method for protecting BIOS stored in flash-ROM
KR100223844B1 (ko) 옵션 자동 설정 회로
JPH0869376A (ja) Biosの書き換え制御回路
CN113157432B (zh) 一种基于RISC处理器的firmware替换方法
JPH09330216A (ja) Bios書換システム
JP2023020590A (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: 20111010

Year of fee payment: 13

EXPY Expiration of term