KR100543268B1 - 컴퓨터 시스템의 보안성을 향상시키는 보안용 코프로세서 - Google Patents

컴퓨터 시스템의 보안성을 향상시키는 보안용 코프로세서 Download PDF

Info

Publication number
KR100543268B1
KR100543268B1 KR1019997007325A KR19997007325A KR100543268B1 KR 100543268 B1 KR100543268 B1 KR 100543268B1 KR 1019997007325 A KR1019997007325 A KR 1019997007325A KR 19997007325 A KR19997007325 A KR 19997007325A KR 100543268 B1 KR100543268 B1 KR 100543268B1
Authority
KR
South Korea
Prior art keywords
control signal
delete delete
computer system
processor
control
Prior art date
Application number
KR1019997007325A
Other languages
English (en)
Other versions
KR20000071056A (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
Priority claimed from US08/799,339 external-priority patent/US5953502A/en
Application filed by 헬빅, 월터 에이. 시니어 filed Critical 헬빅, 월터 에이. 시니어
Publication of KR20000071056A publication Critical patent/KR20000071056A/ko
Application granted granted Critical
Publication of KR100543268B1 publication Critical patent/KR100543268B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/1097Boot, Start, Initialise, Power

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Alarm Systems (AREA)
  • Multi Processors (AREA)

Abstract

보안성이 향상된 컴퓨터 시스템 장치는 종래의 컴퓨터 시스템의 구조에 삽입되는 코프로세서(10)와 다중프로세서 논리 제어기(38)를 포함한다. 코프로세서와 다중프로세서 논리 제어기는 종래 컴퓨터 시스템의 CPU 사이에 삽입되어, CPU와 관련된 어떤 임계 제어 신호를 넘는 제어 신호를 가로채어 바꿔버린다. 제어 신호가 CPU와 컴퓨터 시스템 사이에서 다시 통과하게 함으로서, CPU는 분리된다. 컴퓨터 시스템의 나머지로부터 CPU 제어 신호를 고립시킴으로서, 다중프로세서 논리 제어기(38)는, 어떤 상황에서도 정상 컴퓨터 시스템 작동을 중지시킬 수 있고, 코프로세서가 컴퓨터 시스템의 어떤 펌웨어(firmware)나 소프트웨어(software)의 디지털 신호도 점검하게 한다. 그러므로 다중프로세서 논리 제어기 장치는 종래 컴퓨터 시스템의 나머지로부터 종래 컴퓨터 시스템의 CPU를 고립시켜서, CPU를 분리하여 제어할 수 있고, 컴퓨터의 나머지 시스템을 분리하여 제어할 수 있다.

Description

컴퓨터 시스템의 보안성을 향상시키는 보안용 코프로세서{SECURITY COPROCESSOR FOR ENHANCING COMPUTER SYSTEM SECURITY}
본 발명은 컴퓨터 보안성과 컴퓨터 보안성의 침해를 감지하고 방지하는 능력의 분야에 관한다.
컴퓨터 시스템은 중요한 데이터나 프로그램을 훔치거나 파괴시키려고 하는 침입자에 의해 자주 공격받는다. 보안 장치를 무력화시키고 컴퓨터 시스템 자산에 접속할 수 있는 여러 가지 기술을 가지고 있다. 침입자는 일반적으로 컴퓨터 제어 소프트웨어의 어떤 중요 부분의 내용을 변화시킨다. 한 예를 들자면, 침입된 회로가 작동할 때, 이식된 프로그램에 역작용을 일으켜서 방해 벡터 테이블의 엔트리를 변경시키는 것이다. 다른 종류의 예로서는, 하드 디스크 부트 섹터의 일부를 다시 씀으로서, BIOS 소프트웨어를 변경시키는 것을 들 수 있다. 각각의 경우에, 이식된 프로그램을 실행시키면, 침입자는 컴퓨터 시스템에 접속하게 한다.
침입을 방지하는 한가지 방법은 컴퓨터 제어 소프트웨어의 중요 부분을 포함하는 RAM이나 디스크 메모리 공간 지역을 어떤 특정 환경에서가 아니고서는 다시 쓰지 못하도록 보호하는 것이다. 몇몇 컴퓨터 구조에서, 소프트웨어 주소 공간은 두 개 이상의 보호 링으로 분할되어 있다. 예비 방지 장치는 매우 복잡한 경우가 대부분이다. 또한, 일반적으로 약한 링크를 가지기 때문에, 침입자가 상기 방지 장치의 맹점을 찾아 자신에게 유리하게 이용할 수 있다. 예를 들면, 두 개의 링 구조를 사용하는 유닉스 작동 시스템에는 외부 링에서 작용하는 프로세스에 내부 링 루트와 접속하기 위한 부분이 있다. 외부 링에서의 프로세스가 보호되는 내부 링 메모리 공간 내부의 루트 프로세스처럼 작동하기 때문에, 보호 메모리를 제어하는 컴퓨터 제어 소프트웨어의 부분이 수정될 가능성이 또한 상존한다.
프로세서의 링이 없는 리얼 어드레싱 모드(processor's ringless real addressing mode)를 사용하면서 DOS를 사용하는 IBM 호환 컴퓨터에는, 어떤 프로그램도 시스템 소프트웨어를 붕괴하지 못하게 하는 구조적 제한이 없다. 인텔 386, 또는 그 이후의 프로세서의 보호되는 리얼 어드레싱 모드를 사용할 때조차, 보호되는 모드로부터 리얼 모드에 접속할 수 있기 때문에, 보호되는 모드에서 보안 특성 설정을 회피하기 위한 뒷문이 형성된다. 앞서 말한 방법은 침입 방지를 위해 고안되었다. 그 이후에 침입을 감지하는 것은 별개의 문제이다.
침입 여부를 감지하는 한 방법은 컴퓨터 제어 소프트웨어 중 어느 중요 부분이 변경되었는가를 확인하는 것이다. 일반적으로, 파일의 변경을 감지하기 위하여, 상기 파일을 위한 디지털 신호는, 1995년 4월 17일 공개된 국립표준연구소(National Institute of Standards and Technology)의 FIPS PUB 180-1 "고정 해시 표준(Secure Hash Standard)"에서 기술되는 바와 같은 비가역성의 해싱 알고리즘과 같이, 여러 가지 기술중 한가지를 사용하여 계산된다. 상기 종류의 디지털 신호는 수정 감지 코드(MDC), 조작 인증 코드(MAC), 또는 메시지 다이 제스트와 같이 잘 공개되어 있다. 기술된 해시 표준은 고정적이라고 불린다. 이는, 주어진 메시지 다이제스트에 상응하는 메시지를 찾아내는 것과, 같은 메시지 다이제스트를 만들어내는 두 개의 다른 메시지를 찾아내는 것은 연산상으로 불가능하기 때문이다. 신뢰성있는 응용 프로그램과 시스템 소프트웨어를 확인하기 위해 수정 감지 코드를 이용하는 시스템은 미국 특허 제 5,421,006 호에서 설명되고 있다.
신뢰받고 있는 오퍼레이터는 컴퓨터 제어 소프트웨어나 데이터에서 각각의 중요한 부분을 위해 디지털 신호의 연산을 실시한다. 중요 프로그램 영역이나 컴퓨터 제어 소프트웨어는 실행 프로그램이거나 중요 시스템 데이터(즉, 데이터 엔트리 테이블)일 수 있다. 결과적인 디지털 신호 세트는 메모리 고정 영역에 저장된다. 후에, 시스템은 컴퓨터 제어 소프트웨어나 데이터에서 같은 중요 부분의 디지털 신호를 재연산함으로서, 그리고 각각의 재연산된 디지털 신호를 이에 상응하는 이전에 저장된 디지털 신호에 비교함으로서, 확인할 수 있다. 재연산된 디지털 신호가 최초연산된 디지털 신호와 다르다면, 침입에 의한 변경(intrusion tempering)의 감지를 표시하면서 에러 상황(error condition)이 사용자에게 전달된다.
그러나, 침입자가 보안 순서 자체의 작동을 변경(즉, 변경 감지 시스템을 파괴)시키지 않았다는 것은 보장할 수 없다. 예를 들어, 전원을 켤때나 시스템을 재설정할 때, 컴퓨터는 자신의 BIOS 메모리 내용을 사용하여 시스템을 가동시킨다. 이때, BIOS 메모리 내용의 변경은 확인되지 않는다. 상기 미국 특허 5,421,006 호에서, 구동 BIOS에 의해 로우딩된 부트 레코드는 확인되지만, BIOS 자체는 구동되기 전에 확인되지 않는다. 이와 유사하게, BIOS 확장부도 확인없이 작동한다. 상기 미국 특허에서도, BIOS는 ROM에 저장되는 것으로 설명된다. 그러나, 현재는 BIOS 저장을 위해 EEROM을 사용하고, 이는 전기적으로 변경가능하다. 확인없이 컴퓨터 부팅시에 BIOS와 그 확장부를 구동하는(그 이후의 신호 확인에 상관없이 구동하는) 것은 게인 엔트리에 활용되는 잠재적으로 약한 링크를 유지한다.
컴퓨터 보안성의 침해를 막는 것과 보안성의 침해를 감지하는 것은 서로 다른 것이지만 연관된 목표를 가진다. 컴퓨터 보안성의 모든 침해를 막아내는 컴퓨터 보안 시스템은, 상기 시스템이 다른 불안정한 컴퓨터에 연결되는 한, 쉽지 않은 목표로 계속 남을 것이다. 보안성 침해를 즉시, 또는 가까운 시간 내에 감지하는 것은 충분히 빨라야 한다. 그래서 어떤 파괴가 일어나기 전에, 종료 과정을 실시하고 더 이상의 엔트리를 막아야 한다. 감지, 그 자체로는 침해를 막을 수 없지만, 즉각적으로 침해를 보고함으로서, 그리고 감사 트레일(audit trail)을 제공함으로서, 피해를 최소화할 수 있다. 컴퓨터 보안성의 모든 침해를 신뢰할만하게 감지하는 감지 시스템을 제공하는 것은 매우 바람직하다. 침해를 감지하는 것은 감지 시스템에 가해지는 어떤 공격(침해)도 감지하는 것을 물론 포함한다. 이를 위해, 감지 시스템 자체는 어떤 공격에도 충분히 견뎌내어, 감지 시스템이 자신의 중요 기능(즉, 공격 감지)을 완료할 수 있게 한다.
본 발명에 따라, 코프로세서 장치가 종래의 컴퓨터 시스템의 구조에 새로운 방법으로 장착된다. 특히, 코프로세서 장치는 중앙 처리 장치(CPU)와 컴퓨터 시스템의 나머지 사이에 삽입되어, 어떤 중요한 제어 신호 라인이 둘 사이에서 지나는 것을 코프로세서가 방지하게 한다. 이러한 방식으로, 코프로세서 장치는 종래 컴퓨터 시스템의 CPU를 컴퓨터 시스템의 나머지 부분으로부터 고립시켜서, 코프로세서가 컴퓨터 시스템의 나머지 부분과 CPU 모두에 분리된 제어를 얻게 한다. 컴퓨터 시스템의 나머지 부분으로부터 CPU 제어 신호를 고립시킴으로서, 컴퓨터 시스템 내의 어떤 펌웨어나 소프트웨어가 최초로 사용되기 전에 또는 그 이후 언제라도 상기 펌웨어나 소프트웨어의 디지털 신호를 확인하기 위하여 코프로세서는 언제라도 정상적인 컴퓨터 시스템의 작동을 중지시킬 수 있다.
본 시스템은 마더 보드 위의 CPU 소켓으로부터 CPU를 제거함으로서, 그리고 ASIC, 도어터 보드(daughter board), 또는 다른 형태의 멀티-칩 모듈(MCM)을 상기 CPU 소켓에 삽입함으로서, CPU와 같은 인텔 486 마이크로프로세서 칩을 가지는 기존의 PC 시스템으로 갱신될 수 있다. 제거된 I486은 도어터 보드 위의 소켓에 다시 삽입된다. CPU로부터의 제어 신호와 CPU에 전해지는 제어 신호는 도어터 보드 위의 논리 회로를 통과한다. 상기 논리 회로는 정상 CPU 제어 신호를 가로체고 코프로세서 작동에 필요한 다른 제어 신호로 치환한다. CPU는 제어 신호가 CPU와 컴퓨터 시스템 사이에서 다시 통과하도록 복구된다. 데이터와 어드레스 신호는 CPU와 컴퓨터 시스템 사이의 도어터 보드 상의 라인을 통해 도어터 보드 위의 논리 회로까지 직접 연결된다. 미래의 시스템에서, 도어터 보드의 기능은 마더 보드에서 부분적으로 또는 전체적으로 이루어지고, 또는 상기 도어터 보드의 기능은 미래의 집적 회로 마이크로프로세서에 부분적으로 또는 전체적으로 일체화될 것이다.
도어터 보드는 RISC 마이크로프로세서 칩 형태의 코프로세서 서브시스템과 다중프로세서 논리 제어기를 또한 포함한다. 다중 프로세서 논리 제어기는, 하드웨어에 의해 제어되고 하나 이상의 필드 프로그래밍이 가능한 게이트 어레이(FPGA's)에 의해, 그리고 하나 이상의 비휘발성 메모리 IC's의 펌웨어에 의해 실행되는 유한 상태의 장치(finite state machine)이다. 다중프로세서 논리 제어기는 연관된 제어 신호 라인을 CPU와 종래 PC 컴퓨터 시스템의 나머지 부분까지/으로부터 단락시키고 다시 연결하는 시점을 결정한다. CPU가 컴퓨터 시스템의 나머지 부분으로부터 단락될 때의 시간동안, 다중프로세서 논리 제어기는 CPU와 RISC 코프로세서의 활동성을 제어하여, 컴퓨터 시스템의 구성부품의 보안성 확인을 실시하게 한다. 제어 신호 라인의 단락과 재연결은 (릴레이 등에 의해)물리적이거나 (광결합기 등에 의해)광학적이거나 (고체 상태 스위치 등에 의해)전기적이거나 (논리 게이트 등에 의해)논리적일 수 있다. (CPU까지 그리고 CPU로부터 제어 신호를 운반하는) 양방향 제어 신호 라인은 단락되어, 양방향 중 어느 한 방향에 끼워지는 제어 신호로 대치될 수 있다.
예를 들어, 도어터 보드 위의 다중프로세서 논리 제어기는 CPU 제어 신호를 찾아내어 복구시키고, RISC 코프로세서 서브시스템이 주어진 컴퓨터 파일에 대한 디지털 신호를 발생시키고 확인하도록 하기 위하여, CPU를 그 펌웨어와 함께 작동시킨다. 이를 위해, 컴퓨터 시스템의 나머지 부분을 제어하는 것은 RISC 코프로세서와 CPU 사이에서 다중프로세서 논리 제어에 의해 펌웨어에 따라 서로간에 이루어진다. 하나 이상의 디지털 신호의 확인이 종료되면, 다중프로세서 논리 제어기는 CPU와 컴퓨터 시스템의 나머지 부분 사이의 연결을 재구성하고, 상기 시스템은 정 상적인 PC 작동을 다시 시작한다.
정상적인 컴퓨터 작동 상황에서, CPU는 데이터와 제어 신호를 마더 보드로부터 정상적인 방법으로 수신한다. 신뢰받는 오퍼레이터가 요구될 경우, RISC 코프로세서는 신뢰받는 오퍼레이터가 가리키는 파일에 대한 디지털 신호를 연산한다. RISC 코프로세서는 디지털 신호를 저장한다. 보호를 위해 지적되는 전형적인 파일은 BIOS 메모리, DOS, 인터럽트 테이블(interrupt table), 및 루트 디렉토리의 자동 실행 파일(autoexec.bat)과 컨피그 시스(config.sys) 파일이다. 저장되는 디지털 신호는 컴퓨터 시스템의 안정 상태(즉, 어떤 침입이 일어나기 전에 컴퓨터 제어 소프트웨어 파일의 선택된 중요부 상태)를 나타낸다. 도어터 보드 상에서 회로의 작동은 정상 작동을 의미한다. 각 시스템이 다시 시작할 때마다 침입에 대한 새로운 회로 확인 과정이 실행된다.
전원 켜짐이나 시스템 재설정에서의 시스템 보안성 확인
이전의 침입을 감지하기 위하여, RISC 프로세서와 CPU는 전원이 켜질 때 번갈아가면서 상호 확인하는 과정을 실행한다. 도어터 보드의 다중프로세서 논리 제어기는 먼저 CPU 제어 신호 라인을 찾아내어, CPU와 도어터 보드의 RISC 프로세서모두가 스스로 테스트하는 과정을 거치도록 소프트웨어를 구동시킨다. 이때, CPU는 RISC 프로세서에게 스스로 테스트하는 과정을 거치도록 소프트웨어를 구동시키도록 명령하는 도어터 보드 플래시 램(RAM) 내에 저장된 펌웨어를 구동시킨다. 이때, CPU는 작동을 중지하고, RISC 코프로세서는 스스로 확인하는 과정과 도어터 보드 상의 메모리 테스트와 같은 다른 시스템 확인 과정을 구동한다. 이러한 테스트를 성공적으로 마친 후, RISC 코프로세서는 작동을 중지하고 CPU는 다시 작동한다. 신뢰받는 오퍼레이터가 이때 테스트된 BIOS 롬을 이전부터 가지도록 선택된다면, CPU는 RISC 코프로세서가 BIOS 테스트를 수행하도록 요청할 것이고, RISC 코프로세서가 테스트를 수행하기 위해 작동을 다시 시작하는 동안 CPU는 그 작동을 중단할 것이다.
RISC 코프로세서는 이때 마더 보드 상의 BIOS에 대한 디지털 신호를 연산하고, 도어터 보드 상에서 발생하고 저장된 BIOS에 대한 디지털 신호와 상기 신호를 비교한다. 재연산된 디지털 신호가 먼저 연산된 디지털 신호에 대해 확인 과정을 거친다면, CPU는 복구되고, 테스트를 거친 다른 신뢰받는 오퍼레이터를 구동시키거나 BIOS를 정상작동시켜서, 정상 PC 작동에 필요한 모든 다른 기계 테이블과 패러미터를 설정할 것이다.
CPU에 의한 정상 BIOS 실행의 마지막 부분에서, CPU는 컴퓨터 시스템 구성부품 중 어느 것이 BIOS 내에 구축되도록 확장부를 가지고 있는 지를 알기 위해 확인 과정을 거칠 것이고, 그 다음에 현재로 판명되는 BIOS 확장부를 실행할 것이다. BIOS 확장부 중 하나로 작동하면서, 도어터 보드 상의 다중프로세서 논리 제어기는 시스템 부팅 펌웨어를 실행하기 전에 CPU를 다시 찾아낸다. 그후, 이전에 테스트된 신뢰받는 오퍼레이터 선택에 의해 기술된 바와 같이, 도어터 보드는 DOS, 인터럽트 테이블, 자동 실행 파일 및 컨피그 시스 파일 또는 신뢰받는 오퍼레이터에 의해 미리 선택된 다른 중요 프로그램의 디지털 신호를 확인한다.
도어터 보드 다중프로세서 논리 제어기 시스템이 신뢰받는 오퍼레이터처럼 시스템 구성부품의 디지털 신호 모두를 확인한다면, CPU는 복구되고 시스템은 부팅되고 정상적으로 가동될 것이다. 이러한 점에서, 도어터 보드의 존재는 컴퓨터 시스템의 작동에 필수적이다.
신뢰받는 오퍼레이터에 의해 보호되도록 선정된 컴퓨터 바이오스 펌웨어의 어떤 부분을 변경시킨 컴퓨터 시스템 상의 어떤 공격도 그 다음의 시스템 리셋이나 전원을 켤 때의 에러 상황으로 나타날 것이다. 신뢰받는 오퍼레이터에 의해 보호되도록 선정된 어떤 중요 소프트웨어나 컴퓨터 BIOS 확장 펌웨어에 가해지는 어떤 공격도 그 다음 시스템 리셋(하드웨어 리셋이나 소프트웨어 리셋 등)에 에러 상황으로 나타날 것이다. 상기 소프트웨어 리셋이란 CTRL-ALT-DEL 키를 동시에 누르는 경우를 의미한다. 이러한 방법으로, 컴퓨터 보안성 침해를 나타내는 침입은 감지된다.
감시 작용(monitoring operation)
본 발명의 제 2 양태에 따라, 코프로세서 장치는 보안성 모니터로 사용할 수 있다. 보안성을 감시하기 위하여, 도어터 보드 상의 다중프로세서 논리 제어기는 CPU까지/로부터의 제어 데이터 및 어드레스 라인을 감시한다. 특히, 중요 프로그램이나 데이터를 함유하는 보호되는 메모리 영역에서의 쓰기 작용은 감시된다. 신뢰받는 오퍼레이터에 의해 보호되도록 선정되는 컴퓨터 제어 소프트웨어의 중요 부분이 변경되려고 시도한다면, 다중프로세서 논리 제어기는 CPU의 제어를 찾아내고, 놀람을 잠재워서, 시스템이 가동중단된다. 에러 상황이 반복되면, 시스템은 신뢰받는 오퍼레이터에 의해 다시 구동될 뿐이다. 이러한 방식으로, 컴퓨터 보안성 침해 를 나타내는 침입은 침해가 발생하기 전에 예방된다.
현 코프로세서 구조의 단일프로세서 실행
CPU, 다중프로세서 논리 제어기와 RISC 코프로세서간의 기능 분할은 매우 유동적이다. 이론상에서, 다중프로세서 논리 제어기의 몇몇 기능은 RISC 코프로세서 소프트웨어로 합쳐진다. 그러나, CPU에 전달되는 제어 신호를 물리적으로 가로채는 것은 하드웨어에서 자연적으로 구체화된다. 또한, 어드레스 버스 상의 금지된 주소의 모습에 대응하기 위해 필요한 속도 때문에, 또는 전원이 켜질 때의 제어 신호를 찾아내기 위해 필요한 속도 때문에, 다중프로세서 논리 제어기의 하드웨어 실행이 선호된다.
또한, 다중프로세서 논리 제어기의 제어하에서 CPU와 RISC 코프로세서는 작동을 변경하기 때문에(둘 중 하나가 중지하면, 다른 하나는 가동되기 때문에), CPU는 두 기능을 모두 수행하고, RISC 코프로세서는 제거된다. 이러한 경우에, 다중프로세서 논리 제어기는 PC 내의 정상 환경에서 도어터 보드 상의 보호되는 환경으로 CPU 제어를 변경시킨다. 도어터 보드 상의 선호되는 실시예에서, CPU는 RISC 코프로세서의 보안성 기능을 수행할 수 있다. 그러나, 보안성 기능과 정상 PC 사이에서 변경되는 단일 프로세서를 사용할 때의 가장 큰 장점은 단일 프로세서로 인한 경제성에 있다. RISC 코프로세서를 제거하는 것은 보안성을 감소시키고, 반면에 상업적으로 좀더 이윤을 추구할 수 있다. 높은 보안성을 얻고자 한다면, 분리되고 독립적인 코프로세서가 사용된다.
일반 코프로세서 구조
본 발명의 또다른 양태에 따라, RISC 코프로세서는 일반적 용도의 코프로세서로 사용할 수 있다. 통신은 데이터와 어드레스 라인을 통해 효과를 발휘한다. 상기 데이터와 상기 어드레스 라인은 다중프로세서 논리 제어기에 의해 감시된다. 어드레스와 데이터의 어떤 조합은 RISC 코프로세서가 특정 작업을 수행하도록 명령을 형성할 수 있다. 작업을 수행하기 위하여, 다중프로세서 제어 논리 회로는 PC의 제어를 찾아내고, 필요한 작업을 실행하는 RISC 코프로세서에 제어 신호를 전달한다. 작업을 마치면, RISC 코프로세서는 작업 결과를 CPU에서 이용가능하게 메모리 공간에 저장하며, 다중프로세서 논리 제어기를 통해 RISC 코프로세서는 PC의 제어를 CPU로 되돌린다. 선택적인 실시예에서, RISC 코프로세서는 작업결과를 RAM 메모리나 하드 디스크 공간에서 로우딩하기 위하여 어드레스와 데이터 라인을 찾아내고, 또는 CPU의 일반 레지스터 중 하나에 작업 결과를 남긴다.
RISc 코프로세서와 CPU는 분리되고 분할된 메모리 어드레스 공간을 가진다. 분할된 메모리 공간은 앞서 언급한 바와 같이, 프로세서간 통신(inter-processor communication)을 위해 사용된다. RISC 코프로세서 내의 분리된 개개의 메모리 공간은 CPU가 RISC 코프로세서에 의해 수행되는 보안성 과정을 참견할 수 없다는 것을 보장한다. CPU의 제어 라인을 가로채는 RISC 코프로세서의 능력으로 RISC 코프로세서와 CPU에 대한 분리된 메모리 어드레스 공간을 이용하는 것은 현 코프로세서 장치의 보안성의 신뢰도 수준을 높인다.
본 발명의 사용으로, 컴퓨터 시스템은 신뢰받는 오퍼레이터에 의해 설정될 수 있어서, 소프트웨어가 RISC 코프로세서에 의해 먼저 확인되지 않으면, CPU가 펌 웨어나 소프트웨어를 가동하지 않는다. 확인 과정을 시작하는 장소에 대한 기존의 문제를 해결하기 위하여, 다중프로세서 논리 제어기는 본 발명에 따라 신뢰받지 못하는 어떤 소프트웨어도 가동할 기회가 없도록 CPU의 제어를 찾아낸다. 그 후, 시스템 소프트웨어가 스테이지에서 RISC 코프로세서에 의해 확인됨에 따라, CPU는 점점 더 많은 확인된 (역시 스테이지 내의) 시스템 소프트웨어를 가동시킨다. 기존 기술에 비교할 때, 신뢰받는 오퍼레이터가 신뢰받는 상황을 선정했기 때문에 아무 것도 변한 것이 없는 모든 레벨에서, BIOS 구동의 절대 시작점 이전에서조차 시스템 소프트웨어는 확인된다.
도 1은 본 발명에 따라 보안성이 향상된 프로세서 보드의 블록 다이어그램.
도 2A와 2B는 본 발명에 따라 I486 CPU 작동을 제어하는 논리 제어기의 상태 다이어그램.
도 3은 본 발명에 따라 RISC 코프로세서 작동을 조절하는 논리 제어기의 상태 다이어그램.
도 4는 본 발명에 따르는 다중프로세서 시스템의 침해 감지 작용의 순서도.
도 5는 본 발명에 따르는 다중 프로세서 시스템의 침해 감지 작용의 순서도.
도 6과 7은 도어터 보드 플래시 램과 RISC 코프로세서, I486 CPU의 메모리 공간을 위한 메모리 위치 지도.
도 8은 본 발명에 따라 보안성이 향상된 프로세서 보드의 블록 다이어그램.
도 9는 본 발명에 따라 보안성이 향상된 프로세서 보드에 의해 가로채어지 고, 양방향으로 통과하며, 그리고 감시되는 신호의 테이블 리스팅.
도 10은 신뢰받는 오퍼레이터 인터페이스 프로그램에 의해 제공되는 선택 다이어그램.
(참조 번호 설명)
10 ... 코프로세서 24 ... CPU
26 ... 램 28,30 ... 롬
32 ... 프로세서 어드레스 버스 34 ... 프로세서 데이터 버스
36 ... 프로세서 제어 버스 8,40 ... 논리 제어기
개요
본 발명에 따라 보안서이 향상된 프로세서 보드(SEPB)를 형성하는 보안성 코프로세서를 가지는 컴퓨터의 블록 다이어그램이 도 1에 도시된다.
SEPB는 보안성 코프로세서로 프로그래밍된 RISC 코프로세서(10)(MYK-80)와 인텔 I486 CPU(24)의 2중 마이크로프로세서 장치로 이루어진다. MYK-80은 1) ARM6 RISC 마이크로프로세서와, 2) 순환 과정을 구성하는 펌웨어를 저장하기 위한 ROM과, 3) MYK-80과 외부 작용을 지지하기 위해 필요한 바와 같은 다른 논리 회로의 특정 용도 조합이다. MYK-80은 Mykotronix,Inc.에 의해 고안되었고, VLSI Technology, Inc.에서 제작한다. Mykotronix, Inc.은 MYK-80의 기술 지원과 그 문서화에 대해 책임을 가진다.
두 마이크로프로세서(10,24)와 함께, 두 세트의 롬, 즉 MOROM(28) 및 IFROM(30)이 존재한다. 상기 두 세트의 롬은 32 비트 와이드 메모리로 조직되고, 각각 MYKL-80과 Intel 80486 마이크로프로세서에 대해 특성화된 프로그램과 데이터를 가지고 있다. 또한 32 비트 와이드 램, SRAM(26)으로 조직된다. MYK-80과 I486 마이크로프로세서의 작용과 일반적인 호스트 PC 작동을 제어하는 논리 회로를 제공하는 SEPB에는 두 개의 FPGA, 즉 제어 FPGA2(40)(MYK-80C2)와 제어 FPGA1(38)(I486CTE)이 있다. 또한 추가적인 2개의 FPGA, 즉 어드레스 버스 분리 장치 FPGA(12)(SEPBABUS)와 데이터 버스 분리 장치(14)(SEPBDBSB)가 존재하며, 두 개의 FPGA는 MYK-80, I486, 그리고 각각 프로세서 어드레스 버스(32)와 프로세서 데이터 버스(34)를 경유하는 PC 전자부품 사이의 모든 통신을 제어하는 논리 회로를 제공한다. FPGA(12,14)는 서브시스템 제어 버스(18)를 통해 MYK-80이 MYK-80 서브시스템 어드레스 버스(20)를 I486 프로세서 어드레스 버스(32)와 I486 프로세서 데이터 버스(34) 각각으로부터 분리되게 한다.
현재의 호스트 PC의 보드 상에 추가물로서 설계될 때, SEPB는 보드 위에 커넥터를 가지고, 상기 커넥터는 호스트 PC의 I486 CPU의 168 핀 핀 그리드(PGA) 커넥터와 같아서, SEPB는 I486 CPU를 보지하는 동일 소켓의 호스트 PC에 접속된다. 그후, I486 CPU는 SEPB 상에 제공되는 소켓 내로 접속된다.
프로세서 어드레스 버스(32)와 프로세서 데이터 버스(34)는 연속하여 I486 CPU에 연결되고, MYK-80에 선택적으로 연결되어, FPGA(12,14)를 통해 프로세서 어드레스 버스(32) 너머로 어드레스를 전송하고, 프로세서 데이터 버스(34) 너머로 데이터를 수신한다. 그러나, I486 CPU(24)에 직접 연결된 프로세서 제어 버스(36) 의 일부는 FPGA1(38)과 FPGA2(40)에 구성된 다중프로세서 논리 제어기의 제어 하에 I486 CPU(24)로부터 FPGA(38)에 의해 분리된다. 이러한 방식으로, CPU(24)에 코프로세서로 작용하는 다중프로세서 논리 제어기는 CPU(24) 프로세서 제어 버스(부분A(36)) 신호를 가로챔으로서, 그리고 FPGA(38)의 출력에서의 다른 프로세서 제어 버스(부분A)(36A) 신호로 대치함으로서(CPU에 제어 신호를 보내기 위해 그리고 CPU로부터 제어 신호를 수신하기 위해), CPU(24)를 찾아낼 수 있다. 나머지 프로세서 제어 버스(부분B) 신호(36B)는 I486 CPU(24)에 직접 연결된다. 다중프로세서 논리 제어기는 I486이 특정 코드를 가동시키도록 하고, 작업(일반적으로 보안성에 연관된 작업)을 수행하기 위해 MYK-80 프로세서(10)를 요청하도록 한다. 전원 회로(16)와 리셋 신호(42)는 FPGA(38,40)에 연결된다.
SEPB 논리 회로에 의해 효과를 발휘하는 신호의 좀더 상세한 블록 다이어그램이 도 8과 도 9에 도시되어 있다. 도 8에서, SEPB 논리 회로(800)는 마더보드에/로부터 전달(808)되는 17 개의 신호를 가로채고, 이 신호는 프로세서에/로부터 전달(806)된다. 17 개의 가로챈 신호는 도 9의 테이블 904와 906에서 가로챈 각 측부 상에 각각 도시된다. 도 8의 67개의 신호는 SEPB 논리 회로에 의해 감시(804)된다. 이러한 67 개의 감시되는 신호는 도 9에서 테이블 904에 도시된다. 도 8의 16개의 신호는 SEPB 논리 회로에 의해 양방향 통과(802)된다. 이러한 16 개의 양방향 통과된 신호는 도 9의 테이블 902에서 도시된다.
(I486 CPU(24)와 관련하여) 종래의 호스트 PC 시스템을 구성하는 도 1의 부분은 I/OP 인터페이스(44), 인터페이스 컨트롤러(48), EISA 컨버터(50), DRAM 메모 리(54)를 가지는 확장 메모리 제어기(52), 마스터 메모리 제어기(46), 그리고 DRAM 메모리(56)를 포함한다. 코프로세서(10), SRAM 메모리(26), FROM(28), FPGA(12,14,38,40), 그리고 FROM(30)은 호스트 PC 시스템에 부가되는 요소를 포함하여, 보안성이 향상된 프로세서 보드를 형성한다. 보안성이 없는 호스트 PC가 업그레이드될 때의 상황에서, 후자의 요소는 도어터 보드의 플러그를 통해 부가된다. 그러나, 후자의 요소는 종래의 마더 보드 상에 부가될 수 있고, 또는 특정 용도의 I486 CPU로 부분적으로 또는 완전히 일체화될 수 있다.
침입 감지(도 4)
침입 감지를 위해 본 발명의 코프로세서를 사용하는 것을 도시하는 순서도가 도 4에 도시된다. 침입 감지 기능은 단계 60에서 리셋이나 전원을 켤 때 발휘되고, 도어터 보드 상의 다중프로세서 논리 제어기는 CPU의 제어 신호 라인을 찾아낸다.
먼저, 단계 62에서, 다중프로세서 논리 제어기는 CPU가 스스로 테스트를 실시하도록 요구하고, 동시에 RISC 프로세서가 스스로 테스트를 실시하도록 요구하며, 메모리나 SEPB 하드웨어와 같은 RISC SEPB 펌웨어로 프로그래밍된 다른 테스트를 실시하도록 요구한다. 상기 테스트들이 종료되면, CPU 작동이 CPU SEPB 펌웨어의 작동과 이어지면서, RISC 프로세서의 작동이 중지된다.
제어기가 CPU 펌웨어의 제 1 부분을 가동시킬 때, SRAM을 통해 RISC 프로세서에 셀프 테스트를 위한 소프트웨어를 가동시키도록 하는 요청을 통과시킨다. 이 요청이 SRAM에 전달되면, CPU는, 펌웨어의 작동을 중지시키고 RISC 프로세서의 작동을 시작하는, 작동을 시작한다. RISC 프로세서의 상기 작동으로 인해, CPU에 의 해 SRAM 내에 전달되는 요청 메시지를 가져오는 펌웨어가 작동한다. 상기 요청을 인식한 후, 필요한 테스트를 CPU는 실행한다. RISC 프로세서가 스스로 테스트를 실시하는 소프트웨어의 구동을 마친 후에, RISC는, 펌웨어의 실행을 중단하고 CPU 펌웨어의 실행을 다시 시작하는, 작동을 수행한다.
이때, 신뢰받는 오퍼레이터의 기존 사양에서, 하나 이상의 디지털 신호 확인 테스트를 수행하도록 SEPB에게 요청하는 것은 CPU SEPB FROM에 저장된다. 그리고 바람직한 디지털 신호 확인 테스트를 수행하도록 하는 요청을 CPU 펌웨어는 한번에 한 개의 메시지를 SRAM 내로 전달된다. 이전처럼, 요청이 SRAM 내로 전달되면, CPU는, 펌웨어의 실행을 중지하고 RISC 프로세서의 작동을 시작하는 작동을 수행한다. 상기 RISC 프로세서의 작동은 CPU에 의해 SRAM에 전달되는 요청 메시지를 부르는 펌웨어를 작동시키게 하고, 그후 상기 요청을 인식한 후, 필요한 디지털 신호 확인 테스트를 실시한다. RISC 프로세서가 요청된 확인 과정을 종료한 후, RISC는, 펌웨어의 실행을 중지하고 CPU 펌웨어의 실행을 개시하는, 작동을 수행한다.
CPU는 FROM에 저장된 세 개의 테스트 요청 테이블 중 첫 번째에 저장된 각각의 테스트에 대해 RISC 프로세서에 의해 수행되도록 디지털 신호 확인 테스트에 요청을 전달할 것이다. 각각의 이러한 테스트 요청에 대해, SEPB의 구성부품에 의해 수행되는 작동은 방금 언급한 경우와 동일하다.
제 1 테스트 요청 테이블에 도시된 모든 테스트가 실행된 후, CPU는 SEPB 펌웨어를 수행하여 PC의 BIOS 펌웨어를 실행할 때까지의 변환을 한다. SEPB 논리 회로는 CPU가 스스로 테스트를 수행하도록 PC가 구성되었는지 아닌지를 설치된 SEPB 를 가지지 않는 PC 내에 만들어지도록 하는 변환과 동일한 방식으로 만들어진다.
일반적으로, 설치된 SEPB를 가지는 PC에서, 단계 64에서 PC 내에 설치되는 BIOS 확장 장치 상에, 도어터 보드 상의 롬과 CPU 마더 보드 상의 BIOS 롬(또는 FROM, EEROM)의 내용에 대해 SEPB가 디지털 신호 확인 테스트를 수행하도록 신뢰받는 오퍼레이터는 시스템을 설정할 것이다.
각각의 스스로의 테스트와 디지털 신호 테스트가 실행된 후, RISC 코프로세서는 테스트 결과를 나타내는 SRAM 내에 답변 메시지를 보낸다. 검사를 거친 구성부품이 확인 테스트를 통과하면, CPU는 작동 순서를 따라 다른 테스트를 계속해야 한다. 제 1 테스트 테이블에 도시된 모든 테스트를 통과한 후, CPU는 시스템 BIOS의 실행을 CPU가 개시하도록 하는 변환 과정을 수행한다. 테스트 중 어느 하나가 실패하면, RISC 프로세서에 의해 SRAM 내로 전달되는 결과 메시지는 CPU SEPB 펌웨어에 의해 다음과 같은 명령으로 인식될 것이다. 상기 명령은 실패를 들을 수 있는 알람 신호(alarm signal)로 알리고 시스템 전원을 내리며 다시 작동을 시작하기 전에 다음의 하드 리셋 신호를 기다리는 것이다.
SEPB 논리 회로와 CPU SEPB 펌웨어가 CPU에게 시스템 BIOS를 실행하는 과정 중 하나까지 그 작동을 변환시키도록 한 후, SEPB는 완전히 PC에 전달되고, 즉 어쨋든, PC 작동에 영향을 끼치지 않으며, PC에 의해 보이지 않는다. 이 동안, 그리고 SEPB가 PC 작동에 전달되는 동안, 오직 SEPB BIOS 확장 코드만이 PC 상에서 실행되는 어떤 프로그램을 볼 수 있다. PC 내에 설치된 주변 제어기는 상기 장치에 이용가능한 정상 연결을 사용하여 PC 내의 SEPB의 존재를 감지하기 위해 PC 내의 어떤 장치의 작동을 유발하는 것을 이격된 장치가 막아내어 SEPB를 감지할 수 없다. 상기 SEPB는 다른 한편으로, CPU 신호를 계속 감시할 것이고, BIOS 확장 코드의 실시, 또는 SEPB BIOS 확장 코드의 읽기의 정상 PC 작동에 상응하는 지를 결정하기 위해 상기 CPU 신호에 연결된다. SEPB는 보안성의 침해로 보고되거나 막아내는 경우가 생길 때에 따라야만 하는지를 결정하기 위해 상기 신호를 또한 계속 감시할 것이다.
PC를 설정하기 위해 CPU가 BIOS 펌웨어를 실행시킨 후, CPU는 PC 내에 설치된 주변 제어기에 대한 BIOS 확장 펌웨어를 찾아내고 실행함으로서 시스템 설정을 마친다. SEPB 다중프로세서 논리 제어기는 상기 주변 제어기 중 하나처럼 보이려고 함으로서 CPU를 다시 찾아내고, 단계 68에서 BIOS 확장 펌웨어를 실행시킨다. PC가 SEPB BIOS 확장 펌웨어를 실행할 때, 단계 70에서 CPU 제어가 SEPB에 되돌려지게 하는 단계가 실행된다. 이때, SEPB는 RISC 프로세서가 실행해야한다고 요청해야하는 어떤 디지털 신호 확인 테스트가 있는 지를 결정하기 위하여 제 2 테스트 테이블을 찾아야 할 것이다. 이때 수행될 확인 테스트는 PC 부트 섹터 인터럽트 테이블, 자동 실행 파일, 컨피그 시스 파일, 그리고 호스트의 하드 디스크 트랙 섹터와 PC 램에 직접 접속하는 다른 중요 작동 파일의 내용에 대한 테스트이다.RISC 프로세서가 태스트를 실행하도록 요청하기 위하여, CPU는 이전처럼 SRAM 내로 요청 메시지를 보내고, SEPB 펌웨어 작동을 중지시키며, SEPB 펌웨어의 RISC 프로세서 작동을 이전처럼 개시한다. RISC 프로세서는 이전과 같이 요청된 테스트를 실행하고, 그후 이 작동을 중지시키며, 이전과 같이 CPU 작동을 재시작한다.
SEPB가 그 기능을 실행하고 있을 때, CPU, 즉 I486 및 RISC, 즉 MYK-80은 다중프로세서 논리 제어기로 실행되는 FPGA의 제어 아래에서 작동을 변경시킨다. 이는 한 개의 프로세서가 작동을 개시할 때, 다른 한 개는 작동을 중지하고, 그 역도 마찬가지인 것을 의미한다. 제 2 SEPB 테스트 테이블의 내용에 의해 요청되는 모든 테스트를 통과하면서, SEPB는 정상적으로 PC가 작동하게 하는 상태에 CPU 연결을 되돌린다.(이전과 같이, 상기 테스트 중 하나가 실패하면, PC는 전원 꺼짐 상태가 되고, 이전과 같은 시작으로부터 시스템 작동을 시작하기 위하여 하드웨어 리셋을 기다린다.
이때, PC의 작동 시스템은 단계 72에서 정상적으로 부팅된다. I486 CPU가 부팅 작동을 위해 PC에 넘겨지면, SEPB는 감시를 제외하고 다시 명백해진다.
도 4의 다이어그램은 순서도의 프로세스 단계의 위치에 의한 전후 제어를 도시한다. 중심에, 다중프로세서 논리 제어기 작동 60,62,68이 도시된다. 좌측에, CPU 단계 66, 72가 도시되고, 우측에 RISC 코프로세서 단계 64,70이 도시된다. 본 장치에서, I486 CPU로부터 오는 하드웨어 신호는 I486 CPU를 불활성화시키고 MYK-80을 활성화시키는 명령을 내린다. 마찬가지고, MYK-80 프로세서로부터 오는 다른 하드웨어 신호는 MYK-80 프로세서를 불활성화시키고, I486 CPU를 활성화시키는 명령을 내린다.
본 구조는, 프로세서가 마스터 슬레이브 장치에서 작동한다면, 다중프로세서 시스템에 서 충족될 것이다. 이 경우에 마스터 유닛에 적용된 설계는 만족스러울 것이다. 만약 프로세서가 서로 다른 다중 작업 모드에서 작용한다면, 본 SEPB의 두 개는 각각의 이러한 프로세서 유닛을 위한 신뢰받는 컴퓨팅 베이스를 제공하는데 필요할 것이다.
침입 감시(도 5)
작동시에, 다중프로세서 논리 제어기와 MYK-80 코프로세서는 트랜스패런시를 가진다. 그러나, 트랜스패런시를 가지는 경우에, 다중프로세서 논리 제어기는 감시 기능을 수행한다. 도 5는 단계 80에서 시작하는 침입 감시 기능을 도시한다. 상기 단계 80에서, 신뢰받는 오퍼레이터(TO)는 간섭으로부터 보호되는 호스트 PC의 영역을 표시한다. 다중프로세서 제어 논리 회로는, 어드레스, 데이터 및 제어 버스(32,34,36)에의 접속을 통해, 단계 82에서 CPU 메모리 공간의 어드레스 라인을 감시하고, 단계 84에서 메모리의 보호 지역의 쓰기 데이터와 같은 금지된 접속이 시도될 때, 결정된다. 침입 기도가 단계 84에서 감지되면, SEPB는 단계 86에서 소리를 내고 시스템을 전원꺼짐 상태로 할 것이다. 전원 꺼짐은 특정 침입의 실행에 의해 유발되는 I486 CPU의 정상 작동이다. 상기와 같은 명령을 가지지 않는 상기 프로세서에 대하여, 전원꺼짐은 SEPB의 다중프로세서 논리 제어기에 의해 유발될 수 있다.
I486 제어 실시
SEPB 펌웨어의 적절한 부분을 RISC 프로세서가 동작시키기 위해 I486의 SEPB 작동을 중단시키는 선택적인 방법들이 있다. 선호되는 실시예는 메모리 버스 사이클의 중간에 드는 것이다. CPU는, 버스 접속을 가짐으로서, 어드레스 버스 라인 상에 어드레스를 위치시킴으로서, 그리고 ADS# 신호를 내보냄으로서, 버스 사이클을 시작한다. I486은 버스 사이클의 결론을 중요시하는 "준비" 신호의 복귀를 기다린다. "준비"신호가 어드레싱된 PC 유닛에 의해 CPU에 전달되면, CPU가 요청한 데이터가 받아들일 준비가 되었거나, CPU에 의해 전달된 데이터가 어드레싱된 유닛에 의해 주어진다는 것을 의미한다. SEPB가 CPU를 중단시키기 위하여, CPU에 의해 작동하고 있는 SEPB 펌웨어는 다중프로세서 논리 제어기에 데이터를 보내는 "데이터 쓰기" 작용을 포함한다. 이때 SEPB 펌웨어의 CPU 작동을 중단시키기 위하여, 다중프로세서 논리 제어기는 CPU에 "준비" 신호를 다시 보내지 않는다. 대신에, 논리 제어기는 SEPB 펌웨어의 RISC 프로세서의 작용을 개시하고, 이는 RISC 클락의 발생을 다시 개시함으로서, 그리고 버스와 제어 신호를 I486이 복구시킴으로서, 이루어진다.
이러한 방식으로 CPU의 SEPB 펌웨어를 작동하는 CPU나 RISC의 펌웨어를 작동하는 RISC 프로세서 중 하나(동시에 둘은 아님)를 가지는 목적이 SEPB의 작동 기간동안 이루어진다. 다중프로세서 논리 제어기는 CPU가 "준비" 신호를 기다리고 있다는 것과 그러나 RISC 프로세서가 다중프로세서 논리 제어기가 발생시킬, 그리고 CPU에 전해질 SEPB 펌웨어를 작동시키는 것을 알고 있다고 할 때, CPU가 프로세서 어드레스 버스와 프로세서 데이터 버스의 제어를 복구시키게 하기 위한 "홀드" 신호는 높은 임피던스 상태로 버스 드라이버 회로를 넣음으로서 CPU에 의해 행해진다. 이후, 프로세서 어드레스 버스와 프로세서 데이터 버스를 자유롭게 하면서, RISC 프로세서는 PC나 SEPB의 다른 부분과 그 사이에서 데이터를 전송하고 싶을 때 마다 상기 버스들을 이용할 수 있다.
후에, RISC 프로세서 SEPB 펌웨어의 작동이 중단되고 CPU SEPB 펌웨어의 동작이 다시 개시되는 점에 RISC 프로세서 SEPB 펌웨어의 작동이 도달할 때, RISC 프로세서는 다중프로세서 논리 제어기에 신호를 보내기 위해 유사한 "데이터 쓰기" 작용을 수행한다. 상기 신호 전송은 스위칭을 일으키는 데 필요한 작동을 수행한다. 다중프로세서 논리 제어기가 이러한 특정 "데이터 쓰기" 작용을 감지할 때, 상기 제어기는 RISC 프로세서의 작동을 중단시키고, CPU를 복구시켜서, SEPB 펌웨어의 실행을 계속 일으킨다. 이는 RISC 프로세서에 대한 클락 신호?? 발생을 간단히 중단시킴으로서, "홀드" 신호의 발생을 중단시킴으로서, 그리고 CPU에 상기 신호를 보냄으로서, 그리고 "준비" 신호를 발생시키고 CPU에 상기 신호를 전달하면서 이루어진다.
CPU를 제어하는 선택적인 실행은 RISC 프로세서 클락의 경우처럼 CPU 클락을 정지시키는 것이다. 그러나, 이 접근법은 조금 제한적이다. 이는 내부 클락 속도를 증가시키기 위해 칩상에 위상 동기 루프를 가지는 CPU로 사용될 수 없기 때문이다. 클락 속도 배가를 위해 이용되는 상기 위상 동기 루프는 외부 클락이 멈춰진 후, 그리고 외부 클락이 멈춰진 후 잠시동안 계속 가동되고, 외부 클락이 개시된 후 충분한 작동 상태에 도달하기 위해 약간의 시간을 가져갔다.
CPU를 제어하기 위한 또하나의 선택적인 실시예는 마스터 CPU가 슬레이브 CPU를 중지시킬 때 다중프로세서 마스터 슬레이브 장치에서 행해지는 대로 CPU의 작동을 중단시킨다. CPU는 한 개의 인터럽트 신호를 가로챔으로서, 그리고 다른 하나의 인터럽트 신호를 치환함으로서, 또는 제어 신호에 대한 인터럽트 어드레스 또 는 다른 인터럽트 벡터를 치환함으로서, 또한 제어된다. CPU를 제어하는 다른 방법은 쓰기 스트로브 신호를 가로채는 것, 읽기 스트로브 신호를 가로채는 것을 포함하고, 앞서 언급한 바와 같이 데이터 준비 신호를 가로챔으로서 얻을 수 있다.
여기서 사용된 바와 같이, 쓰기 스트로브는 버스로의 정보 출력이 다른 어느 곳에서도 쓰여지도록 CPU가 나타내는 제어 신호 종류 중 어느 한 개이다. 예로는 어드레스 스트로브 신호, ADS#가 있고, 상기 신호는 프로세서 버스에 대한 시작 신호이다. 읽기 스트로브는 버스로부터의 정보 입력이 읽혀지도록 CPU가 나타내는 제어 신호의 종류 중 한 개이다. 데이터 준비 신호는 정보가 데이터나 어드레스 버스로부터 변위되거나 읽혀지도록 나타내는 제어 신호의 한 종류이다.
또한, CPU를 제어하는 또다른 방법은 어드레스나 데이터 라인을 가로채는 것이다. 예를 들어, 데이터 라인을 가로채는 것은 어드레싱된 메모리 공간으로부터 CPU에 정상적으로 제공되는 것과는 다른 실행 코드로 치환하게 한다. 어드레스 라인을 가로채는 것은 실행 프로그램이나 데이터에 대한 선택적인 메모리 공간에 CPU를 강제할 수 있다.
FPGA 데이터 버스 분리기 FPGA(14)(SEPBDBSB)에서 다중프로세서 논리 제어의 실시
FPGA로 설계된 데이터 버스 분리기 논리 회로는 데이터의 양방향 전송을 위한 연결부를 제공한다. SEPB I486 서브시스템은 이 유닛을 사용하여, 공유된 램(26)과 양방향으로의 전송을 종료시킨다. MYK-80은 이 유닛을 사용하여, PC의 램과 롬에, 그리고 SEPB I486 서브시스템의 플래시 롬(30)에 저장된 정보를 읽는다.
모든 데이터는 데이터 버스 출력 삼상 드라이버와 SEPBDBUS를 통해 전달되는 SEPB I486 서브시스템의 구성부품을 포함하여 전송한다. PC 메모리 서브시스템에서 MYK-80까지 전송되는 데이터는 ADS# 신호가 활성화된 후에 제 1 RDY# 신호나 BRDY#를 PC 메모리 서브시스템이 활성화시킬 때 SEPBDBUS 내에 위치한다. 래치의 출력은 MYK-80에 의해 후에 예시된다.
FPGA(14)는 ADS#이나 BRDY# 신호의 선택을 제어하는 논리 회로를 또한 포함한다. 정보 래치에 사용되는 두 신호는 PC 메모리 서브시스템에 의해 공급되었다. 이 동일 논리 회로는 어떤 회로의 일부이고, 상기 어떤 회로란, MYK-80 메모리 읽기 작동을 I486 메모리 읽기 버스 사이클로 변환시키기 위해 사용되는 ADS#, BOFF#, 및 BLAST# 신호를 발생시키는 회로이다.
버스 분리기 FPGA(12)(SEPBABUS)
어드레스 버스 분리기 논리 회로는 FPGA 상에서 또한 충족된다. 대부분의 경우에, 30개의 양방향 삼상 드라이버로 이루어진다. 어드레스들이 SEPB의 공유된 램을 어드레싱하기 위하여 I486에의해 공급될 때 어드레스들은 한방향으로 통과하고, 어드레스들이 SEPB I486 서브시스템의 플래시 메모리나 PC의 메모리를 어드레싱하기 위하여 MYK-80에 의해 공급될 때, 어드레스들은 다른 한 방향으로 통과한다.
상기 양방향 스위치 논리 회로의 예외는 어드레스의 두 개 이상의 중요한 비트를 I486과 MYK-80이 좌우하는 방법에서 그 차이를 수용하기 위해 포함된다. 워드 어드레싱과 바이트에 대한 인코딩된 어드레서 비트를 사용하는 대신에, I486은 BE0#에서 BE3#까지 네개의 신호로 상기 신호들을 대체한다. 상기 신호들을 적절히 인코딩하고 순서대로 배치함으로서, I486은 바이트, 워드, 더블워드(doubleword), 변환을 수행할 수 있다(비록 후자의 두 개의 작동 중 하나가 더블워드 바운더리의 메모리에 저장되는 아이템을 어드레싱하더라도).
MYK-80은 상기 두 개 이상의 어드레스 비트의 인코딩된 버전만을 이용하고, I/O 작동이 바이트인지 더블워드인지 결정하는 다른 신호로 상기 어드레스 비트를 증가시킨다. 상기 신호, NBWL은 바이트 변환을 형성하기에는 낮고, 더블워드 변환을 형성하기에는 높다. MYK-80의 ARM6가 16개의 비트 변환을 수행하고 있다는 것을 아는 유일한 방법은 NBWL 신호가 높고 두 개 이상의 중요한 어드레스 비트가 10b의 값을 가지는 것이다. (NBWL 신호가 높을 때 ARM6에서 다른 두 값, 01b, 11b는 생기지 않는다.)
SEPBABUS 논리 회로는 상기 간단한 룰을 충족시켜서, 적절한 SEB MYK-80 서브시스템 작동을 위해 필요한 I486 데이터 변환 작용의 서브셋을 위한 PC의 메모리 서브시스템에, 그리고 SEPB I486 서브시스템에 전송하기 위해 BE0#에서 BE3#까지의 적절한 신호를 발생시킨다.
제어 FPGA(38,40)
SEPB 다중프로세서 논리 제어기(유한 상태 기계)의 작동은 도 2A,2B,3의 상태 다이어그램에서 요약된다. SEPB 펌웨어는 도 2A,2B,3의 상태 다이어그램의 각각의 모드에 대해 한 개의 코드를 가지는 코드꾸러미로 이루어진다. 각 꾸러미는 한 개의 출구점과 한 개 의 엔트리점을 가지는 각각의 섹션에 한 개 이상의 섹션으로 이루어진다. 일련의 모드 중 각각에 대해 코드 꾸러미가 있으며, (I)로 표기되는 모드들은 도 2의 I486 모드를 말하고, (M)으로 표기되는 모드들은 도 3의 MYK-80 모드를 언급한다.
모드 형성
a. 모드 #0(I)
이 코드는 전원을 켤 때, 모드 #15(I), 코드로부터 들어간다. 상기 코드는 MYK-80이 소프트웨어 중심의 셀프 테스트를 수행하게 하고, I486의 A 테이블의 내용에 의해 형성되는 모든 테스트를 SEPB가 수행하게 한다. I486이 MYK-80에게 수행하도록 하는 각각의 작동에 대하여, I486은 모드#0(I)에서 모드#4(I)까지 변위를 일으키고, MYK-80에 의해 주어진 명령이 실행될 때까지 작동을 중지한다. 명령받은 작동이 완료된 후에, I486은 모드 #0(I)으로 돌아온다. 모드#0(I)에서 모드#4(I)까지 변환할 때, I486 코드는 모드 스위치를 유발하는 적절한 FPGA 어드레스와 함께 메모리 쓰기 명령을 실행한다. "메모리 쓰기" 버스 사이클이 I486에 의해 개시될 때, FPGA는 어드레스를 인식하고, I486에 버스 사이클 종료 RDY# 신호를 보내지 않는다. 그 결과, I486은 프로그램 실행 중 쉬게 되고, FPGA는 I486에 "홀드" 신호를 보내어, MYK-80 서브시스템이 이용하기 위해 모든 버스와 버스에 관계된 제어 신호를 자유롭게 구할 수 있다. MYK-80 서브시스템이 I486 제어기 FPGA에 "명령종료" 신호를 보낼 때, FPGA는 I486에 RDY# 신호를 보냄으로서, 그리고 홀드 신호를 복구시킴으로서, I486 프로그램 실행을 다시 시작한다. SEPB의 I486 코드 꾸러미나 지지하는 MYK-80 코드 어느 하나도 호스트 PC에 식별되지 않는다. 상기 코드 꾸러미 어느 하나도 호스트 PC에 상주하는 메모리 내용 검사 프로그램에 의해 읽혀질 수 있다. 상기 코드 꾸러미는 SEPB MYK-80의 플래시 롬과 SEPB I486의 플래시 롬에 또한 각각 저장되어, 호스트 PC를 기초로 하는 프로그램에 의해 변경될 수 없다.
MYK-80 명령 실행 사이클 중 한 사이클 동안 에러가 감지된다면, I486은 모드 #7(I)로 점프할 것이다. 모드 #7(I) 코드로의 점프는 제어 상태 기계의 모드를 I486 제어기가 변화시키게 하는 FPGA 어드레스에 달리 씀으로서 달성된다.
어떤 에러도 발견되지 않는다면, I486 코드는 PC의 시스템 초기화 코드의 실행을 변환시킨다. 이 변환은 마치 I486이 RESET과 BIST 작동을 방금 마친 것처럼 나타날 필요가 있고, 첫 번째 명령을 불러오고 있다. 이 변화를 이루기 위하여, 모드 #0(I) 코드는 제 3 FPGA 어드레스에 메모리 쓰기 명령을 실행하고, 이 명령으로 0xFFFFFFF0 바로 전의 명령 위치에 상응하는 어드레스의 I486 SEPB 플래시 롬에 위치한다. 그 결과 I486 제어기는 모드 #3(I)에 제어 상태 기계의 모드를 변화시키고, I486에 의해 주어지는 다음 명령은 시스템 초기화 펌웨어의 첫 번째 명령일 것이다.
b. 모드 #1(I)
모드 #1(I)에서 작동할 때, I486은 테스트 영역의 엔트리에 대해 "B" 테이블을 확인한다. 엔트리가 있으면, I486은 모드를 모드 #5(I)로 스위칭시키는 적절한 FPGA 어드레스를 가지는 메모리 쓰기 명령을 실행한다. I486이 MYK-80 서브시스템이 실행시키도록 명령내리는 각각의 작동에 대해, SEPB의 SRAM(26) 내의 MYK-80 서브시스템에 대한 명령 메시지를 설정하고, 모드#1(I)에서 모드 #5(I)로 변환을 일으킨다. "메모리 쓰기" 버스 사이클이 I486에 의해 시작될 때, FPGA는 홀드 신호를 I486에 보내서, 모든 버스와 버스에 연관된 제어 신호를 자유롭게 MYK-80 서브시스템이 이용하도록 한다. MYK-80이 I486 제어기 FPGA에 명령 종료 신호를 보낼 때, FPGA는 RDY# 신호를 I486에 보냄으로서, 그리고 홀드 신호를 복구시킴으로서, I486 프로그램 실행을 재시작한다.
MYK-80 명령 수행 사이클 중 한 사이클동안 에러가 감지된다면, I486은 모드 #7(I)에 대한 코드로 점프할 것이다. 모드 #7(I) 코드로의 점프는 FPGA 어드레스에 또다른 쓰기 작용에 의해 달성된다. 상기 쓰기 작용은 I486 제어기가 제어 상태 기계의 모드를 모드 #6(I)으로 변화시키게 한다. 에러가 발견되지 않으면, I486은 추가적인 테스트를 실행하여 "B" 테이블을 확인한다. 좀더 많은 테스트가 있다면, I486은 상기 과정을 반복하여 확인한다.
"B" 테이블에 더 이상의 엔트리가 없을 때, I486 코드는 SEPB의 모드 #2(I)의 부가적인 부분의 실행까지 변환을 일으킨다. 모드 #1(I)에서 모드#2(I)로의 상기 변환은 적절한 중지 명령을 실행하는 I486에 의해 이루어진다. 중지 명령이 실행되면, I486은 신호를 보내서, 버스에 연결된 모든 유닛에게 경고를 주고, 중지 명령은 특정 버스 사이클 제어 신호를 보냄으로서 실행된다. I486이 중지 명령을 수행하고 (중지 작용을 신호하는) 특정 버스 사이클 제어 신호를 보낸 것을 다중프로세서 논리 제어기가 인식할 때, 상기 다중프로세서 논리 제어기는 마스킹할 수 없는 인터럽트, NMI 신호를 발생시키고, I486에 상기 신호를 보낸다. NMI 신호의 수신에 대응하여, I486은 인터럽트 반응 목적지 어드레스(interrupt response destination address)를 불러서, 실행하고 모드 #2(I)로 작동 모드 스위칭할 다음 명령을 얻을 장소를 결정한다. 적절한 인터럽트 반응 목적지 어드레스를 부르는 데 사용되는 플래시 롬 어드레스는 테이블 C-1과 테이블 C-2에 도시되는 논리 회로에 따라 생긴다. (SEPB 코드의 상기 꾸러미는 PC에서 식별가능하지 않으며, PC 상주 메모리 내용 검사 프로그램에 의해 읽혀질 수 없다. 이 코드는 PC에서 역시 식별할 수 없으며, SEPB I486 플래시 롬에 저장되어, PC의 비 SEPB 작동에 의해 변경될 수 없다.)
c. 모드 #2(I)
SEPB BIOS 실행 코드의 초기 부분은 중지 명령의 실행에 의해 종료된다. 중지 버스 사이클은 I486 FPGA 제어기 논리 회로에 의해 인식되고, NMI 신호를 자동적으로 발생시키며, 상기 NMI 신호를 I486에 보낸다. I486은 이때 인터럽트 반응 버스 사이클을 실행하고, 인터럽트 반응 코드의 제 1 명령의 어드레스를 읽는다. 인터럽트 반응 버스 사이클을 실행하면서, I486은 어드레스 0x00000008을 이용하여 메모리 읽기 작용을 한다. SEPB I486 제어기는 작동을 인식하고 메모리 읽기를 다시 돌려서, I486에 의한 데이터 읽기가 적절한 SEPB I486 플래시 롬으로부터 생긴다. 이 어드레스가 I486에 의해 읽혀진다면, I486 제어기는 제어 상태 기계의 모드를 모드 #2(I)로 변화시킬 것이고, I486에 의해 주어지는 다음 명령은 BIOS 펌웨어의 제 2 꾸러미의 제 1 명령일 것이다. SEPB I486 코드의 이 꾸러미나 지지 MYK-80 코드는 PC에서 식별할 수 없다. 이 코드들 중 어느 하나도 호스트 PC 상주 메모리 내용 검사 프로그램에 의해 읽혀지지 않는다. 이 코드 꾸러미들은 SEPB의 플래시 롬과 SEPB MYK-80의 플래시 롬에 각각 저장되기 때문에 호스트 PC에서 식별할 수 없다. 그러므로, 상기 코드들은 PC 비-SEPB 작동에 의해 변경되지 않는다.
이 코드는 모드 #3(I) BIOS 확장 코드의 초기 세그먼트로부터 얻는다. 모드 #2(I)는 모드 #3(I)와 모드 #1(I)로부터/까지의 브리지이다. 모드 #2(I)는 SEPB가 하드 드라이브를 접속하는 데 사용된다. 테이블 엔트리가 디스크 액세스를 필요로 한다면, SEPB는 모드 #1(I)로부터 모드#2(I)까지 이동하여, 드라이브를 읽고, 모드 #1(I)(그리고 모드 #5(I))로 데이터를 확인하기 위하여 돌아온다.
SEPB가 I486의 B 테이블의 내용에 의해 형성되는 모든 테스트 실행을 완료한 후에, SEPB는 또다른 중지 명령을 실행한다. 중지 명령의 실행에 반응하여, 그리고 다중프로세서 논리 제어기에 의한 NMI 신호의 이어지는 발생에 따라, I486은 인터럽트 반은 목적지 어드레스를 불러서, 실행하고 모드 #11(I)로 작동 모드 스위칭시킬 다음 명령을 얻는 장소를 결정한다. 적절한 인터럽트 반응 목적지 어드레스를 호출하는 데 이용되는 플래시 롬 어드레스는 테이블 C-1과 테이블 C-2에서 기술되는 논리 회로에 따라 발생된다.
d. 모드 #3(I)
대부분에 대하여, 모드 #3(I)에서 실행되는 코드는 PC의 시스템 초기화 펌웨어로 이루어진다. 이 펌웨어의 실행 종료시에, 펌웨어는 0xC0000으로부터 0xE0000까지 PC의 어드레스 공간을 찾아서, BIOS 확장 장치가 시스템에 추가되는 지를 결정한다. 상기 장치가 PC 실행에 추가된다면, 제어는 BIOS 확장 장치의 코드에 주어지고, 이로 인해 부가된 서브시스템이 초기화된다.
일반적으로 모드 #3(I) 시스템 초기화 코드 실행은 적절한 BIST와 하드 리셋 을 수행하는 하드웨어를 따르는 위치 0xFFFFFFF0로부터 주어진 명령으로 시작된다. 시스템 초기화 코드나 그 코드의 일부의 실행은 오퍼레이터가 CTRL-ALT-DEL 키를 동시에 누름으로서 시스템 키보드로부터 소프트웨어 리셋 명령을 넣은 후에 시작된다. 상기 CTRL-ALT-DEL 명령이 키보드를 통해 입력되면, PC는 모드 #11(I)에서 작동할 것이지만, 모드 #3(I)에서 작동하는 동안 실행된 동일 코드를 실행할 것이다. 결과적으로, I486 제어기는 동일한 BIOS 확장 어드레스의 첫 번째 0.5KB 내의 코드에 대해 모드 #3(I)와 모드#11(I) 내의 코드의 실행을 관찰하고, SEPB가 모드 #2(I)에서 작동하도록 변환시킨다.
실행 사이클의 종료시에, 모드 #3(I)나 모드 #11(I)에서 실행된 시스템 초기화 코드는 상기 장치에 대한 BIOS 확장 어드레스 공간의 매 2KB 블록을 검사한다. 그리고 어떤 PC던지 여러개의 이러한 장치가 있다. 이러한 장치 중 하나가 SEPB이다. 실행 코드가 SEPB BIOS 확장 코드로 변환되면, 상기 변환은 서브루틴 콜의 실행에 의해 이루어진다. SEPB BIOS 확장 코드 실행의 초기 꾸러미의 실행은 모드 #3(O)에서 작동하는 SEPB와 함께 이루어진다. SEPB BIOS 확장 어드레스 공간의 첫 번째 0.5KB 내에서 발견된 코드는 I486의 스택을 적절한 상태에 놓는 데 사용되는 코드이고, 모드 #2(I)로 작동 모드를 변환시키기 위해 중지 명령을 실행하는 데 사용되는 코드이다.
SEPB의 BIOS 확장 코드는 PC에서 식별가능하고, PC 상주 메모리 내용 검사 프로그램(예를 들면, DOS 디버그 장치와 같은 프로그램)에 의해 읽혀질 수 있다. 그러나, SEPB의 BIOS 확장 코드가 SEPB I486의 플래시 롬에 저장되기 때문에, 비- SEPB 작동에 의해 변경될 수 없다.
e. 모드#4(I)
모드 #4(I)일 때, I486은 프로그램을 실행하지 않는다. I486은 진행되기 전에 종료되기 위해 FPGA 논리 회로에 그려진 주소를 가지는 메모리 쓰기 작용을 기다리는 것이다. SEPB의 MYK-80 서브시스템이 I486에 의해 명령받는 작동을 수행하기 위해 그 코드를 이때 실행한다. SEPB 코드는 PC에서 식별할 수 없고, PC 상주 메모리 내용 검사 프로그램에 의해 읽혀질 수 없다. 이 코드는 PC에서 식별할 수 없고, SEPB I486의 플래시 롬에 저장되기 때문에, PC 비-SEPB 작동에 의해 변경될 수 없다.
f. 모드 #5(I)
모드 #5(I)일 때, I486은 프로그램을 실행하고 있지 않다. I486은 계속되기 전에 종료되기 위하여 FPGA 논리 회로에 그려진 어드레스로 메모리 쓰기 작동을 기다리고 있다. SEPB의 MYK-80 서브시스템은 I486에 의해 명령받는 작동을 수행하기 위하여 그 코드를 실행하고 있다. SEPB의 코드 꾸러미는 PC에서 식별할 수 없고, PC 상주 메모리 내용 검사 프로그램에 의해 읽혀질 수 없다. 이 코드는 PC에서 식별할 수 없으며, SEPB I486의 플래시 롬에 저장되기 때문에, PC 비-SEPB 작동에 의해 변경될 수 없다.
g. 모드 #6(I)
이 모드에서 작동할 때, I486은 셧다운 명령을 실행하고 실행 코드를 중지시킨다. 셧다운 명령이 실행된 이후에, 이 상태로부터의 유일한 출구는 I486을 보내 는 것이고, PC의 나머지 부분과 SEPBDP 하드 리셋 신호를 보내는 것이다. SEPB 코드의 상기 꾸러미는 PC에서 식별불가능하고, PC 상주 메모리 내용 검사 프로그램에 의해 읽혀질 수 없다. 이 코드는 PC에서 식별불가능하고, 이 코드는 SEPB I486의 플래시 롬에 저장되기 때문에 PC 비-SEPB 작동에 의해 변경될 수 없다.
h. 모드 #7(I)
만약 I486이 모드 #(I), 모드 #1(I), 및 모드 #9(I)에서 작동한다면, 그리고 확인 과정에서 에러를 감지할 수 있다면, 모드 #7(I) 코드로 점프할 수 있고, 모드 #7(I)로 작동 모드를 스위칭할 수 있다. 이는 FPGA 논리 회로에 그려진 어드레스로 메모리 쓰기 작동을 실시함으로서 가능하다. SEPB는 적절하게 I/O 쓰기 및 읽기 작동을 실행하여, 들릴만한 알람을 울린다. 그 후, 모드는 FPGA 논리 회로에 그려진 어드레스로 또다른 메모리 쓰기 작동을 수행하는 I486 코드에 의해 모드 #6(I)으로 스위칭된다. SEPB 코드의 상기 꾸러미는 PC에서 식별불가능하고, PC 상주 메모리 내용 검사 프로그램에 의해 읽혀질 수 없다. 이 코드는 PC에서 또한 식별불가능하고, SEPB I486의 플래시 롬에 저장되기 때문에, PC 비-SEPB 작동에 의해 변경될 수 없다.
i. 모드 #9(I)
모드 #9(I)에서 작동할 때, I486은 적절한 FPGA 어드레스로 메모리 쓰기 명령을 실행하여, 모드를 모드 #13(I)으로 스위칭시킨다. 메모리 쓰기 버스 사이클이 I486에 의해 시작될 때, FPGA는 어드레스를 인식하고, I486에 버스 사이클 완료 RDY# 신호를 보내지 않는다. 그 결과로, I486은 프로그램 실행시에 쉬고, FPGA는 홀드 신호를 I486에 보내서, 모든 버스와 버스에 관계된 제어 신호를 MYK-80 서브시스템이 자유롭게 이용하도록 한다. MYK-80 서브시스템이 I486 제어기 FPGA에 명령 완료 신호를 보낼 때, FPGA는 RDY# 신호를 발생시킴으로서, 그리고 I486에 RDY# 신호를 보냄으로서, I486 프로그램 실행을 다시 시작하고 홀드 신호를 복구시킨다.
MYK-80 명령 실행 사이클 중 한 사이클 동안 에러가 감지된다면, 에러 상황은 신뢰받는 오퍼레이터로 되돌아온다.
어떤 에러도 발견되지 않으면, I486 코드는 SEPB의 모드 #10(I) 코드의 부가적 부분의 실행으로 변환시킬 것이다. 모드 #9(I)로부터 모드 #10(I)으로의 변환은 I486이 적절한 중지 명령을 실행함으로서 이루어진다. 중지 명령이 실행되면, I486은 신호를 내보내서, 버스에 연결된 모든 유닛에 경고 신호를 주고, 중지 명령은 특정 버스 사이클 제어 신호를 보냄으로서 실행된다. I486이 중지 명령을 실행하고 중지 명령을 신호하는 특정 버스 사이클 제어 신호를 보냈다는 것을 다중프로세서 논리 제어기가 인식할 때, 다중프로세서 논리 제어기는 마스킹할 수 없는 인터럽트, NMI, 신호를 발생시키고, I486에 이 신호를 내보낸다. NMI 신호를 수신함에 반응하여, I486은 인터럽트 반은 목적지 어드레스를 불러서, 실해하고 모드 #10(I)로 작동 모드를 스위칭시킬 다음 명령을 얻을 장소를 결정한다. 적절한 인터럽트 반응 목적지 어드레스를 부르는 플래시 롬 어드레스는 테이블 C-1과 테이블 C-2에 기술되는 논리 회로에 따라 발생된다. SEPB의 I486 코드의 이 꾸러미나 지지 MYK-80 코드 어느 것도 PC에서 식별불가능하다. 이 코드 꾸러미들 중 어느 것도 PC 상주 메모리 내용 검사에 의해 읽혀질 수 없다. 이 코드 꾸러미들은 SEPB I486의 플래시 롬과 SEPB MYK-80의 플래시 롬에 각각 저장되기 때문에, 이 코드 꾸러미들은 PC에서 식별불가능하고, PC 비-SEPB 작동에 의해 변경될 수 없다.
j. 모드 #10(I)
이 코드는 모드 #11(I) BIOS 확장 코드의 초기 세그먼트로부터 들어온다. 모드 #11(I) BIOS 확장 코드를 통해 사용자로부터 신뢰받는 오퍼레이터 인터페이스 프로그램내로 SEPB에 보낸 명령을 실행하는 중인 SEPB를 이 코드는 향한다. 모드 #10(I)는 모드 #2(I)와 유사하다. 즉, 명령이 직접적인 디스크 액세스를 요구한다면, SEPB는 모드 #9(I)로부터 모드 #10(I)(읽기 디스크), 모드 #9(I), 모드 #13(I)(확인 데이터)까지 이동한다. 신뢰받는 오퍼레이터가 서브시스템이 작동하는 것을 필요로 하는 각각의 작동에 대해, 모드 #10(I)는 하드 드라이브로부터의 명령을 검색하고, PC 메모리 내에 알려진 위치에 놓으며, 모드 #9(I)로 이동한다. 모드 #9(I)에서, I486은 메모리로부터의 명령을 MYK-80이 검사할 것을 요구한다. I486은 명령을 이때 실행한다.
숨겨진 SEPB BIOS 실행 코드의 제 2 부분은 중지 명령의 실행에 의해 또한 종료된다. 중지 명령이 실행되면, I486은 버스에 연결된 모든 유닛에 경고 신호를 내보내서, 중지 명령이 특정 버스 사이클 제어 신호를 보냄으로서 실행된다. I486이 중지 명령을 실행하고, 중지 작동을 신호하는 특정 버스 사이클 제어 신호를 보냈다는 것을 다중프로세서 논리 제어기가 인식할 때, 다중프로세서 논리 제어기는 NMI 신호를 발생시키고, I486에 보낸다. NMI 신호의 수신에 반응하여, I486은 인터럽트 반응 목적지 어드레스를 불러서, 실행하고 모드 #10(I)로 작동 모드를 스위칭 시킬 다음 명령을 얻을 장소를 결정한다. 적절한 인터럽트 반응 목적지 어드레스를 부르는 데 이용되는 플래시 롬 어드레스는 테이블 C-1과 테이블 C-2에 기술되는 논리 회로에 따라 발생된다. SEPB의 I486 코드의 상기 꾸러미나 지지 MYK-80 코드 중 어느 것도 PC에서 식별불가능하다. 이 코드 꾸러미들 중 어느 것도 PC 상주 메모리 내용 검사에 의해 읽혀질 수 없다. 이 코드 꾸러미는 SEPB I486의 플래시 롬과 SEPB MYK-80의 플래시 롬에 각각 저장되어 PC 비-SEPB 작동에 의해 변경될 수 없기 때문에, PC에서 식별불가능하다.
신뢰받는 오퍼레이터 인터페이스 프로그램으로부터 수신한 메시지의 내용에 의해 형성되는 작동의 수행을 SEPB가 완료한 후에, 이 코드는 또다른 중지 명령을 실행한다. 중지 명령을 실행함에 따라, I486은 인터럽트 반응 목적지 어드레스를 불러서, 실행하고 모드 #11(I)로 작동 모드를 변화시킬 다음 명령을 얻는 장소를 결정한다. 적절한 인터럽트 반응 목적지 어드레스를 부르는 데 이용되는 플래시 롬 어드레스는 테이블 C-1과 C-2에 기술되는 논리 회로에 따라 발생된다.
k. 모드 #11(I)
이 코드는 신뢰받는 오퍼레이터 인터페이스 프로그램과 SEPB 펌웨어 사이의 링크를 제공한다. 작동이 수행되어야 한다고 사용자가 요청할 때, 신뢰받는 오퍼레이터 인터페이스 프로그램은 수행되어야 할 작용을 기술하는 명령 메시지를 명확히 나타내고, PC 하드 드라이브(또는 램) 내의 표준 위치로 상기 명령 메시지를 전달할 것이다. 프로그램 콜(program Call)은 이때 구성되어, 프로그램 순서에 따라 모드 #11(I) BIOS 확장 코드로 점프한다. 모드 #11(I) BIOS 확장 코드는 모드 #10(K) 코드로 변환하여, SEPB가 명령 메시지를 읽게 한 후, 모드 #9(I)로 가서 요청된 작동을 수행한다.
신뢰받는 오퍼레이터 인터페이스 프로그램으로부터 받은 각각의 명령이 SEPB에 의해 처리된 후에, 각각의 명령은 이 모드 #11(I) BIOS 확장 코드의 제 2 부분으로 다시 변환된다. 이 코드의 실행은 실행 제어를 신뢰받는 오퍼레이터 인터페이스 프로그램으로 다시 변환하기 위해 복구 명령의 실행에 의해 종료된다. SEPB의 BIOS 확장 코드의 이 꾸러미는 PC에서 식별가능하고, PC 상주 메모리 내용 검사 프로그램(예를 들어 DOS 디버그 장치와 같은 프로그램)에 의해 읽혀질 수 있다. 그러나, 이 코드가 SEPB I486의 플래시 롬에 저장되기 때문에 PC 비-SEPB 작동에 의해 변경될 수 없다.
i. 모드 #13(I)
모드 #13(I)에서, I486은 프로그램을 실행하고 있지 않다. I486은 계속되기 전에 종료되기 위해 FPGA 논리 회로에 그려진 어드레스로 메모리 쓰기 작용을 기다리고 있다. 이 기간동안, SEPB의 MYK-80 서브시스템은 I486에 의해 명령받는 작동을 수행하기 위해 그 코드를 실행하고 있다. SEPB의 코드 꾸러미는 PC에서 식별불가능하고, PC 상주 메모리 내용 검사 프로그램에 의해 읽혀질 수 없다. 이 코드는 PC에서 식별불가능하고, SEPB I486의 플래시 롬에 저장되기 때문에, PC 비-SEPB 작동에 의해 변경될 수 없다.
m. 모드 #15(I) - 전원 켜짐
전원이 켜질 때나 오퍼레이터가 PC의 제어 패널 상의 리셋 버튼을 누를 때처 럼, 하드 리셋 신호가 발생될 때마다 이 코드는 들어온다. 이 모드에 들어갔을 때, 다중프로세서 논리 제어기가 신호를 발생시켜서, 리셋 신호가 불활성화된 후에 I486이 셀프 테스트 구축, 즉 BIST 작동을 즉시 수행하게 한다. I486이 BIST 작동을 완료한 후에, I486은 SEPB 플래시 롬에 저장된 실행 코드를 시작한다. 일반적으로, 메모리 어드레스 0xFFFFFFF0로부터 PC 시스템 초기화 코드의 첫 번째 부분을 불러냄으로서 I486은 코드 실행을 시작한다. SEPB로, 다중프로세서 논리 제어기는 코드 호출 작동을 되돌려서, SEPB 플래시 롬 내의 SEPB I486 전원 켜짐 코드 저장소로부터 이 코드를 얻는다.
이 코드 꾸러미의 네 개의 더블워드는 모드 #0(I)에 대한 코드의 엔트리 포인트로의 점프로 이루어진다. SEPB 코드의 이 꾸러미는 PC에서 식별불가능하고, PC 상주 메모리 내용 검사 프로그램에 의해 읽혀질 수 없다. 상기 코드 꾸러미는 SEPB I486의 플래시 롬에 또한 저장되어서, PC를 기초로 하는 프로그램에 의해 변경될 수 없다.
마스킹 불가능한 인터럽트 어드레스 발생
I486 제어기는 인터럽트 반응 벡터를 읽기 위하여 I486 플래시 롬에 보내지는 어드레스를 발생시키는 논리 회로를 포함한다. 이 어드레스는 다섯 개의 다른 부분으로 이루어지고, 18 비트의 길이를 가진다. I486에 의해 발생되는 여섯 개의 중요하지 않은 어드레스 비트 중 가장 중요한 네 개(예를 들어 0에서 3까지의 어드레스 비트)는 플래시 롬에 항상 직접 보내지고, 그러므로 이 경우에 2와 동일하다. I486 프로그램과 하드웨어에 의해 발생한 두 개의 중요하지 않은 어드레스 비트는 디코딩되어 메모리에 대한 4 바이트 선택 신호를 형성한다. 이 작용이 더블워드 읽기 작용이므로, 이런 신호들은 모두 활성화 상태로 놓인다.
4에서 7까지의 제 2 그룹 어드레스 비트는, I486이 인터럽트 반응 목적지 어드레스를 읽고 있을 때를 제외하면, I486 프로그램에 의해 발생된 6에서 9까지의 어드레스 비트와 동일하다. 이 후자의 경우에, 여기 네 개의 비트는 BIOS 확장 어드레스로 SEPB 내에 프로그래밍된 값과 동일하게 설정된다. 플래시 어드레스 비트 6은 BIOS 확장 어드레스 스위치 0의 세팅과 같다.
인터럽트 반응 목적지 어드레스 읽기 작용을 위해, 제 3 그룹의 어드레스 비트(8에서 10까지의 어드레스 비트)는, 중지 버스 사이클이 I486에 의해 발생되기 전에, 불려온 마지막 명령의 I486 프로그램에 의해 발생된 10에서 12까지의 어드레스 비트와 동일하게 설정된다. 이 비트들은 8개의 인터럽트(즉, 코드의 각 꾸러미 내의 중지 명령 실행)에 대한 각각의 반응을 보인다. 어드레스 공간이 각 꾸러미의 코드와 항상 동일한 것이 아님에도 불구하고 벡터의 수가 네 개나 여덟 개이도록 이 비트들은 I486에 의해 발생되는 어드레스 비트로부터 얻을 수 있다. 이는 벡터의 수가 상기 꾸러미의 코드에 대한 각 8개의 어드레스 공간에 하나씩으로 제한되어야 한다는 것을 의미한다. 테이블 C-1은 SEPB I486 논리 회로 내에 구성된 모든 조합을 도시한다.
I486 플래시 롬에 보내지는 그 다음으로 중요한 세 개의 비트의 어드레스는 I486 제어기가 발생시키는 모드 변환 정보의 인코딩이다. 개개의 값은 플래시 롬 어드레스의 세 개의 비트에 대해 모드에 따라 발생된다. 상기 모드에서 논리 회로 는 작동하고 있으며, 논리 회로는 NMI 수행의 결과로 변환한다. 테이블 C-2는 플래시 롬 어드레스 비트를 발생시키는 데 사용되는 논리 회로를 기술한다.
나머지 플래시 롬 어드레스 비트들은 하드웨어로 감겨있어서, 인터럽트 반응 목적지 어드레스 읽기 작용동안, 플래시 롬 어드레스 비트14는 0과 같고, 비트15는 1과 같으며, 비트 16은 0과 같다.
Figure 111999009478255-pct00001




Figure 111999009478255-pct00002
작용 개요
보안성이 향상된 본 프로세서 보드 또는 SEPB는 퍼스널 컴퓨터와 서버에 긍정적인 소프트웨어 배치 제어를 제공한다. 도시된 실시예에서, SEPB는 인텔 80486(I486)을 사용하는 인텔 X프레스 채시스 개인용 컴퓨터 내에 설치되어, PC의 구성부품을 자동으로, 그리고 사용자가 원하는 방식으로, 확인할 수 있게 한다.
작동시에, 호스트 PC에 전원이 공급되고 매번 호스트 PC가 리셋되는 것이 반복될 때, SEPB는 작동을 시작한다. 몇몇 I486 PC와 BIOS 조합은 하드웨어 리셋과 소프트웨어 리셋을 가진다. 상기 하드웨어 리셋은 전원을 켜거나 리셋 버튼을 누름으로서 발생되고, 상기 소프트웨어 리셋은 키보드 상의 CTRL-ALT-DEL 키를 동시에 누를 때 발생한다. 소프트웨어 리셋은 I486을 재설정하지 않지만, 대신에 시스템은 시스템 초기화에 다시 들어간다.
시스템 하드웨어 리셋에서의 SEPB는 작동 사이클의 단계 1을 수행하고, 이는 PC와 I486의 작동을 찾아내고 I486과 그 자신의 구성부품 상의 하드웨어 셀프 테스트를 수행하는 SEPB와 함께 시작한다. 하드웨어 테스트 중 어느 하나가 실패하면, SEPB는 PC의 모든 작동을 멈추게 한다. 하드웨어 테스트나 보안성 확인 테스트 중 어느 하나가 실패하면, SEPB는 PC의 모든 작동을 중지시켜서, PC를 재시작하는 유일한 방법은 PC 내에 하드웨어 리셋 신호를 발생시키는 것이다. 그리고 결과적으로, 앞서와 같이 램 상주 파일이나 PC 디스크의 테스트와 펌웨어와 PC 및 SEPB의 하드웨어의 SEPB 테스트를 다시 시작한다.
셀프 테스트를 성공적으로 완료한 후, 하지만, PC가 시스템 초기화를 실행시키기 전에, SEPB는 작동의 제 2 단계를 수행한다. 신뢰받는 오퍼레이터에 의해 이전부터 나타낸 것과 같이, PC의 펌웨어의 부분 상에, 그리고 SEPB 펌웨어의 부분 상에, 보안성 확인 테스트를 MYK-80이 수행하도록 I486 상의 SEPB 펌웨어를 실행함으로서 SEPB는 상기 과정을 수행한다. 이러한 보안성 확인 테스트가 실패하면, SEPB는 이전과 같이 PC의 모든 작동을 중지시킨다.
PC가 키보드를 사용하는 소프트웨어 리셋에에 의해 재설정되면, SEPB와 I486은 리셋되지 않는다. 결과적으로, SEPB 작동의 단계 1과 단계 2 하드웨어와 시스템 초기화 펌웨어 보안성 확인 테스트는 실행되지 않는다. 대신에 PC 시스템 초기화 작동은 다시 시작되고, SEPB의 작동은 작동 사이클에서 단계 3으로 재설정된다.
다음의 성공적인 시스템 초기화는 작동의 단계 3을 수행한다. PC의 리셋에 영향받지 않는 특정 PC 파일(PC의 작동 시스템, 디스크 부트 섹터 내용, 신뢰받는 오퍼레이터에 의해 이전부터 기술된 다른 파일들) 상에서, PC 작동 시스템(OS) 부트 이전에, 단계 3은 보안성 확인 테스트로 이루어진다. 상기 보안성 확인 테스트 중 하나라도 실패하면, SEPB는 앞서와 같이 PC의 모든 작동을 중단시킨다.
모든 확인 테스트를 통과하면, SEPB는 I486과 PC의 나머지 부분 사이의 연결을 구조화함으로서, 작동 단계 4로 들어간다. SEPB가 존재하지 않으면, PC가 수행한 바와 같이 시스템이 실행한다.
신뢰받는 오퍼레이터 인터페이스
응용 프로그램을 실행하는 것을 준비하기 위하여 PC는 세 단계를 거친다. 단계 1은 리셋과 함께 시작하는 하드웨어 초기화이고, 일반적으로 내부 셀프 테스트를 동반한다. 단계 2는 BIOS 프로그램에 의해 수행되는 시스템 초기화이다. 단계 3은 작동 시스템의 부트이다.
PC의 펌웨어와 SEPB의 펌웨어의 구성부품과 PC 디스크 하나에 저장된 파일 중 어느 것이 보호될 것인가를 신뢰받는 오퍼레이터가 구체화하기 위하여, 신뢰받는 오퍼레이터 인터페이스 프로그램에는 SEPB가 제공된다. PC의 DOS 상에서 구동되는 신뢰받는 오퍼레이터 인터페이스 프로그램은 실행될 때 신뢰받는 오퍼레이터에 편리한 메카니즘을 제공하고, 상기 메카니즘은 어느 정보 파일(BIOS, 인터럽트 테이블, DOS, 자동 실행 파일, 컨피그 시스 파일 등)이 디지털 신호로 기록될 것인가를 표시하고 상기 신호가 언제(하기의 세 단계 중 언제) 확인될 것인가를 나타낸 다.
도 10은 신뢰받는 오퍼레이터 인터페이스 프로그램에 의해 신뢰받는 오퍼레이터에 제공되는 선택을 도시한다. 위의 정보 파일 각각에 대해 중요 프로그램 영역(1002)이 선택되고, 중요 프로그램 영역에 대한 확인 기간(1004)이 선택(1004)된다. 테스트가 자동으로, 또는 PC 오퍼레이터의 시작된 요청 상에서 수동으로, 실행되도록, 신뢰받는 오퍼레이터는 구체화(1012)할 수 있다.
각각의 테스트에 대하여 신뢰받는 오퍼레이터는 다음 중 하나를 선택함으로서 테스트의 기간을 구체화(1004)할 수 있다.
a. SEPB의 작동의 단계 2의 일부로서 자동으로 테스트를 수행할 것.
(도 10의 시스템 초기화 이전과 하드웨어 테스트 이후(1006))
b. SEPB의 작동의 단계 3의 일부로서 자동으로 테스트를 수행할 것.
(도 10의 작동 시스템 부트 이전과 시스템 초기화 이후(1008))
c. 신뢰받는 오퍼레이터 인터페이스 프로그램이 실행 중일 때와 그 이후 신뢰받는 오퍼레이터가 필요로 할 때(도 10의 1010) SEPB의 작동의 단계 4 동안 테스트를 수행할 것.
신뢰받는 오퍼레이터 인터페이스 프로그램은 신뢰받는 오퍼레이터가 다음의 내용을 요청하게 하는 메카니즘을 제공한다 - 이미 발생한 디지털 신호는 테스트될 파일의 리스트로부터 지워지거나 정보 파일의 최신 배치에 상응하도록 갱신되어야 한다. 모든 기존에 나타난 보안성 확인 테스트는 취소되고 암호값을 변경시켜야 한다고 신뢰받는 오퍼레이터는 또한 요청하고, SEPB는 디지털 신호를 발생시키고 확 인하는 데 사용할 것이다.
새 사용자가 신뢰받는 오퍼레이터 인터페이스 프로그램에 자신을 증명하기 위해 사용해야 하는 승인된 사용자 이름과 개인 증명 번호 PIN을 기입함으로서 신뢰받는 오퍼레이터의 특권을 가지는 것으로 나타나는 사람과 방법을 신뢰받는 오퍼레이터는 또한 조절할 수 있다. 신뢰받는 오퍼레이터 인터페이스 프로그램을 실행할 사용자 이름 리스트로부터 기존에 기입한 사용자 이름을 신뢰받는 오퍼레이터는 또한 삭제해야할 것이다.
신뢰받는 오퍼레이터 인터페이스 프로그램을 실행하도록 한번 승인받으면, 사용자는 그가 받은 특권을 누리는 등록하지 않은 사용자를 막기 위해 언제라도 자신의 개인 증명 번호를 변화시킬 수 있다.
SEPB가 파일에 서명해야 한다고 시스템 관리자가 요구하는 편리한 방법을 제공하기 위하여, 모든 셋업 과정이 실행된 후, 신뢰받는 오퍼레이터 프로그램은 DOS 하에서 실행되도록 개발되었다. 신뢰받는 오퍼레이터 프로그램은 신뢰받는 오퍼레이터에게 인터페이스를 제공하여, 9가지의 가능한 작동 중 어느 것을 SEPB가 수행하는 것이 신뢰받는 오퍼레이터에게 바람직한지를 결정한다. 이 정보가 입력된 후, 신뢰받는 오퍼레이터 인터페이스 프로그램은 PC의 하드 디스크 내의 알려진 위치 내에 작동을 위한 데이터를 입력하고, SEPB에 대한 표준 포맷에 메시지를 준비한다. 신뢰받는 오퍼레이터 인터페이스 프로그램은 이때 SEPB BIOS 확장 프로그램을 호출한다. SEPB MYK-80 서브시스템이 PC의 램으로부터 데이터를 읽어들이고 SEPB I486 서브시스템에서 사용가능하게 만들 것을 BIOS 확장 프로그램은 요구한다. 개 별 I486과 MYK-80 SEPB 펌웨어와 SEPB BIOS 확장 프로그램의 숨겨진 부분은 요구된 작동을 수행하기 위해 적절한 단계를 통해 SEPB로 향한다.
도 6과 7에서 도시되는 바와 같이, (작동 모드에 기초하여 다중프로세서 논리 제어기에 의해 그려지는) I486 CPU와 MYK-80은 여러 가지 SEPB와 PC 메모리를 어드레싱하기 위하여 다른 메모리 어드레스 공간을 가진다. 분리된 메모리 어드레스 공간의 사용은 PC 구성부품이 SEPB 메모리 내용에 접근하는 것을 막고, CPU가 MYK-80 테이블에 접속되는 것을 막는다. 동시에 MYK-80은 모든 CPU 플래시 롬 내용, PC 램 및 롬 내용, 그리고 모든 SRAM 위치에 접속된다. 다중프로세서 논리 제어기에 의해 그려지는 CPU와 MYK-80에 대한 물리적으로 분리된 메모리 어드레스 공간의 사용은, I486 CPU의 제어 라인을 가로채는 다중프로세서 논리 제어의 능력과 조합되어, 본 코프로세서 장치의 보안성에 높은 신뢰를 안겨준다.
자동으로 수행되는 디지털 신호 확인 테스트 중 하나가 실패하면,
a) 시스템은 들을 수 있는 알람 소리를 내고,
b) PC를 셧다운시켜서 수리를 기다린다.
오퍼레이터의 요청에 따라 수행되는 디지털 신호 확인 테스트가 실패하면,
- 신뢰받는 오퍼레이터 인터페이스 프로그램은 들을 수 있는 알람 소리를 내고,
c) 시스템 모니터에 "실패" 메시지를 띄운다.
신뢰받는 오퍼레이터에 의해 요청된 디지털 신호 확인 테스트의 실행시에 실패가 생길 때, 시스템에 자동적으로 셧다운이 일어나지는 않는다.
대신에, 신뢰받는 오퍼레이터 인터페이스 프로그램은 오퍼레이터로부터의 입력을 기다리는 동안 계속 실행할 것이다.
작동
도 2와 도 3에서 도시되는 바와 같이, SEPB 상의 마이크로프로세서 서브 시스템 둘 모두는 전원켜짐/리셋 모드에서 초기 작동을 시작한다. I486 서브시스템(도 2)은 모드 #15(I)에서, MYK-80 서브시스템(도 3)은 모드 #3(M)에서 시작한다. I486 서브시스템은 I486이 내부 셀프 테스트(BIST)를 행함으로서 작동을 시작한다. 동시에, MYK-80 서브시스템은 MYK-80 내에 구성된 ARM6 마이크로프로세서와 함께 내부 셀프 테스트를 수행하면서 시작하고, 이어서 서브시스템의 구성부품을 테스트하는 몇몇 프로그램 세그먼트가 자동적으로 실행되며, MFROM(28)(도 1)으로부터 SRAM(26)에 프로그램의 구성부품 중 몇몇을 복사함으로서 SRAM(26)(도 1)을 초기화한다. MYK-80 프로그램은 서브시스템이 모드#0(M)으로 변환함으로서 불활성화되기를 명령하고, 이 모드에서 기다려서, I486 서브시스템이 모드 #1(M)로 변환하고 다시 활성화되기 전에, I486 서브시스템이 어떤 작동을 수행하도록 명령한다.
I486이 BIST 사이클을 완료할 때, I486은 모드#0(I)으로 변환하고, 시스템 확인 작동을 시작한다. 수행하는 첫 번째 작동은 SRAM(26)에 명령 메시지를 보내는 것이다. 명령 메시지를 보내고 나면, I486은 I486 서브시스템을 불활성화시키는 시스템간 레벨 명령을 실행하고, 동시에 모드 #4(I)로 변환하며, 그리고 모드 #0(M)으로부터 모드 #1(M)까지 변환을 함으로서 MYK-80을 활성화시킨다.
모드 #1(M)에서 MYK-80 서브시스템은 내부 셀프 테스트 사이클을 수행하도 록 명령하기 위해 MYK-80에 소프트웨어 인터럽트, SWI를 보내는 프로그램을 실행한다. 즉, MYK-80 셀프 테스트(STEST) 작동을 의미한다. MYK-80이 어떤 내부 작동을 수행하다가 중단되면, 서브시스템은 모드 #2(M)로 변환하고, 프로세서의 어드레스 버스와 프로세서 데이터 버스를 높은 임피던스 상태로 모두 연결한다.
MYK-80이 STEST 작동을 완료한 후에, 서브시스템이 모드 #1(M)로 복귀변환하게 된다. 이 모드에서, 서브시스템은 ARM6 일반 레지스터 중 하나로부터 STEST 작동의 결과를 읽고, I486이 읽어야 할 SRAM(26)의 표준위치내로 그 결과를 보낸다. MYK-80은 서브시스템간 레벨 명령을 실행함으로서 작동의 사이클을 완료한다. 상기 서브시스템간 레벨 명령은 모드 #0(M)으로 변환하여 서브시스템을 불활성화시키고, 모드 #0(I)으로 변환하여 I486 서브시스템을 활성화시킨다.
MYK-80 STEST 작동의 결과가 실패를 가리키면, I486은 서브시스템이 모드 #7(I)로 변환하게 하고, 알람 소리를 내며, 모드 #6(I)으로 변환되고, I486 셧다운 명령을 실행함으로서 셧다운 작동을 실행한다.
사이클이 성공적으로 완료되었다고 MYK-80 STEST 작동의 결과가 나오면, I486은 SEPB를 계속할 것이다.
BIOS 초기화 이전의 작동
MYK-80 셀프 테스트를 성공적으로 완료하면, I486은 PC의 읽기 전용 메모리의 내용을 확인하는 작동을 시작할 것이다. 이 작동을 위해, SEPB의 I486 서브시스템은 모드 #0(I)에서 펌웨어를 실행한다.
상기 작동들의 방향을 잡기 위하여, I486은 디지털 신호가 이전에 발생되는 PC의 롬과 SEPB의 롬의 섹션을 기술하는 엔트리를 포함하는 플래시 롬(30) 내의 테이블, 즉 테이블 A를 유지한다. 해싱(hashing)과 사이닝(signing)은 플래시 롬에서 MYK-80이 유지하는 테이블의 발생된 신호값으로 MYK-80에 의해 수행된다. PC의 롬의 내용과 SEPB의 롬의 내용의 동일 섹션은 다시 해싱되고, 롬의 내용이 사인될 때 생성된 신호값에 비교되는 신호값으로 PC 시스템 초기화 이전에 MYK-80에 의해 디지털 신호 확인 테스트를 거친다.
(본 SEPB 장치에서, 디지털 신호 테이블 엔트리를 저장하기 위한 MYK-80 내의 단 한 개의 테이블이 있다. 각 엔트리의 크기와 한 플래시 롬 섹터에 이 테이블을 한정하기 위한 필요로 인해, 시스템은 최대 300 신호를 가지도록 제한된다. 또한 SRAM 내의 공간 제한으로 인해 최대 파일 크기는 65KB로 제한된다. 더 큰 파일을 저장하고자 시스템을 확장하기 위하여, 많은 변화가 MYK-80 펌웨어에 가해진다. 이 변화들 중 하나는 가득찬 파일에 대한 한 개로 작동 세그먼트를 연결하는 파일의 상대적으로 작은 섹션 상에서 수행되는 보안성 해시 값의 발생을 가진다. 이는 디지털 신호의 최대 수를 감소시키고, 상기 디지털 신호의 수는 한 개의 신호 테이블에서 300개 이하로 유지된다. 이 한계를 극복하기 위하여, 세 개의 디지털 신호 테이블(하나는 A 테이블 테스트, 하나는 B 테이블 테스트, 나머지 하나는 C 테이블 테스트)을 사용할 때의 변화가, I486에 대한 플래시 롬과 MYK-80에 대한 플래시 롬이 일체화된 SEPB 플래시 롬으로 조합될 때조차, 제안되고, 검사되며, 그리고 만족스럽고 쉽게 조작가능하다고 판명되었다.)
디지털 신호 확인 작동을 수행하기 위해 MYK-80을 호출하기 전에, I486은 SRAM(26)의 적절한 위치에 적절한 명령 메시지를 보낸다. 명령 메시지를 보낸 후에, I486은 서브시스템간 레벨 명령을 실행한다. 상기 서브시슨템간 레벨 명령은 모드 #4(I)로 변환하여 I486 서브시스템을 불활성화시키고, 모드 #1(M)로 변환하여 MYK-80 서브시스템을 활성화시킨다. 디지털 신호 확인 테스트를 수행하기 위하여, MYK-80은 두 작동을 수행하도록 명령받아야 한다. 그 첫 번째는 공통 명령(설정 확인)이고, 이는 MYK-80의 플래시 롬으로부터 MYK-80의 내부 램까지 SEPB 암호값의 사본을 전달한다. SEPB가 리셋되거나 다른 셋업 확인 과정이 수행될 때까지, 그 결과는 한 개 이상의 디지털 신호 확인 테스트로 사용된다.
모드 #1(M)에서, 셋업 확인 작동에 대해, MYK-80 서브시스템은, 플래시 롬(28)으로부터 암호값을 복사하고 SRAM(26) 내의 표준 영역에 상기 값들을 넣는 프로그램을 실행한다. MYK-80 서브시스템은 MYK-80에 소프트웨어 인터럽트(SWI)를 보내서, 로우드 암호값(DSSP) 작동을 수행하게 하는 명령을 내린다.MYK-80이 이 내부 작도의 수행을 방해받을 때, 서브시스템은 모드 #2(M)로 변환하고, 프로세서 어드레스 버스와 프로세서 데이터 버스를 높은 임피던스 상태로 모두 연결한다. 암호 작동이 완료된 후, MYK-80 서브시스템은 모드 #1(M)로 복귀변환하고, ARM6 일반 레지스터 중 하나로부터 DSSP 작동의 결과를 복사하며, I486이 읽을 SRAM의 표준 위치에 그 결과를 보낸다. MYK-80은 서브시스템간 레벨 명령을 실행함으로서, 작동 사이클을 완료한다. 상기 서브시스템간 레벨 명령은 모드 #0(M)으로 변환하여 MYK-80 서브시스템을 불활성화시키고, 모드 #0(I)으로 변환하여 I486 서브시스템을 활성화시킨다.
디지털 신호 확인 작동을 수행하기 위하여, I486은 적절한 명령 메시지를 SRAM(26)의 적당한 위치에 보낸다. 명령 메시지를 보낸 후에, I486은 서브시스템간 레벨 명령을 실행한다. 상기 서브시스템간 레벨 명령은 모드 #4(I)로 변환하여 I486 서브시스템을 불활성화시키고, 모드 #1(M)로 변환하여 MYK-80 서브 시스템을 활성화시킨다. MYK-80은 PC 메모리로부터 파일의 현 내용을 읽고, SRAM(26) 내의 표준영역에 상기 파일의 내용물을 놓는다. MYK-80 펌웨어는 소프트웨어 인터럽트(SWI)를 MYK-80에 보내서, 보안성 해시 암호 작동 수행을 명령한다. MYK-80이 내부 작동 수행을 중단할 때, 서브시스템은 모드 #2(M)로 변환하고, 프로세서 어드레스 버스와 프로세서 데이터 버스를 높은 임피던스 상태로 모두 연결한다.
MYK-80이 SHA 작동을 완료한 후, 디지털 신호 확인 작동을 수행시에, MYK-80은 서브시스템이 모드 #1(M)로 복귀변환하게 한다. 이 모드에서 서브시스템은 SHA 작동의 결과를 읽고, MYK-80에 디지털 신호를 발생시키는 데 사용되는 동일 암호값으로부터 발생되는 암호 키 공용 부품(yb)과 파일의 이전에 발생된 디지털 신호값을 따라 갱신된 해시값을 보낸다. MYK-80은 입력 신호를 확인하기 위해 디지털 신호 확인(DSVER) 암호 작동을 실행하도록 명령받는다. MYK-80 펌웨어는 MYK-80에 소프트웨어 인터럽트(SWI)를 보내서, DSVER 작동을 수행하게 명령한다. MYK-80이 내부 작동 수행에 방해받으면, 서브시스템은 모드 #2(M)로 변환되고, 프로세서 어드레스 버스와 프로세서 데이터 버스를 높은 임피던스 상태로 모두 연결한다. 테스트의 결과는 I486이 읽을 SRAM(26)의 표준위치로 보내진다. MYK-80은 서브시스템간 레벨 명령을 실행함으로서 작동 사이클을 완료한다. 상기 서브시스템간 레벨 명령 은 모드 #0(M)으로 변환하여 MYK-80의 서브시스템을 불활성화시키고, 모드#0(I)으로 변환하여 I486 서브시스템을 활성화시킨다.
만약 MYK-80 디지털 신호 확인 테스트 작동의 결과가 실패로 나타난다면, I486은 알람 소리를 내고, 서브시스템이 모드 #7(I)로 변환함으로서, 그리고 다시 모드 #6(I)로 변환함으로서, 셧다운 작동을 실행한다. 모드 #6(I)에서, I486은 셧다운되고, PC 시스템이 전원꺼짐을 반복함으로서 리셋되어 사용자에 의해 PC의 피셋 버튼을 누를 때까지 유지한다.
사이클이 성공적으로 완료되었다고 MYK-80 확인 작동의 결과가 나타나면, I486은 SEPB 작동을 계속할 것이다.
I486의 테이블 A의 각각의 엔트리가 성공적으로 처리된 후에, PC 시스템 초기화 전에 확인되는 파일을 기술하도록 또다른 엔트리가 존재하는 지를 결정하기 위해 I486은 테이블을 검사할 것이다. 만약 또다른 엔트리가 존재한다면, I486은 SRAM의 적절한 위치에 확인될 파일을 기술하면서, I486은 새 명령 메시지를 보내는 이전의 작동을 반복할 것이다. I486은 MYK-80을 이전처럼 호출하여, 디지털 신호 확인 작동을 실행하고, I486이 읽을 SRAM(26)의 표준위치로 결과를 보낼 것이다.
테이블 a에 더 이상의 엔트리가 없는 것으로 확인된다면, I486은 모드 #0(I) 작동을 종료하고 모드 #3(I)로 변환할 것이다. 모드 #3(I)에서 I486은 PC에 연결되고, 그 작동은 SEPB에서 명백하다.
I486이 모드 #3(I)로 변환할 때, SEPB가 존재하지 않으면 전원켜짐 리셋 이후의 동일 방식으로 I486은 PC 롬에 들어간다. I486에 의해 수행되는 첫 번째 작동 은 어드레스 0xFFFFFFF0로부터 실행하는 명령을 부르는 것이고, BIOS의 시스템 초기화 펌웨어를 계속 실행하는 것이다.
많은 시스템에서, 시스템 초기화 ROM(플래시 롬 또는 EEPROM)의 내용이 압축된다. 시스템이 초기화될 때, BIOS는 PC 램 내로 확장된다. 초기화 이전에 시스템 초기화 코드를 어드레싱하면, 코드가 압축된 형태의 롬 내용을 볼 수 있을 것이다. 초기화 이후에 시스템 초기화 코드를 어드레싱하면, PC 램의 내용을 확장된 코드로 볼 수 있을 것이다. 초기화 이후에 시스템 초기화 코드를 사인하고 초기화 이전에 코드를 테스트하면, 테스트는 항상 실패할 것이다. 레벨 A에 대한 시스템 구성부품의 사인을 테스트가 강요하기 위해, 테스트는 수행되어야 한다. SEPB는 I486의 플래시 롬에 신뢰받는 오퍼레이터 사인 명령 정보를 저장하기 위해 수정되고, 신뢰받는 오퍼레이터는 시스템을 리셋하여 구성부품이 레벨 A에서 테스트되도록 적절한 신호를 발생시키게 하는 것을 SEPB는 고집한다.
레벨 A나 레벨 B에서 시스템 구성부품을 테스팅할 때 실패가 있다면, 시스템은 부팅되지 않을 것이다. 시스템을 리세팅하는 것은 동일한 셧다운을 일으키고, 신뢰받는 오퍼레이터에게 문제를 고칠 능력을 주지 않는다. 이 문제에 반응하여, 제 2 위치에 놓일 때 레벨 A와 레벨 B 모두를 시스템이 양방향 통과하게 하는 바이패스 점퍼(bypass jumper)를 SEPB는 가지고 OS를 부팅시킨다. 이 작동을 수행하는 것이 신뢰받는 오퍼레이터인 것을 확신하기 위하여, SEPB는 신뢰받는 오퍼레이터의 사용자 이름과 PIN을 확인하는 테스트로 레벨 B 테스트를 대치한다. 점퍼가 정위치에 있고 신뢰받는 오퍼레이터가 적절하게 인식되면, 시스템은 문제를 고착시킬 기 회를 TO에게 주면서 TO 인터페이스 프로그램이 가동되도록 부팅할 것이다.
몇가지 암호 작동에 대해서, DSSP나 확인 셋업 등과 같은 출력을 생성하지 않는 것에 대해서 일반적으로, MYK-80은 ARM6 일반 레지스터에 통과/실패 표시를 가지지 않는다. 이 경우, 펌웨어의 이 섹션의 실행이 성공적으로 완료되었다는 것을 단지 표시만 하는 준-통과/실패 표시를 SEPB는 발생시킨다.
시스템 초기화에서 SEPB 작동으로의 변환
PC가 시스템 초기화를 종료한 후에, 작동의 정상 경로는 작동 시스템을 로우딩하는 것이다. 신뢰받는 컴퓨터 시스템에 대해서, 작동 시스템은 오퍼레이터에 의해 시스템이 사용되기 전에, PC의 롬 내용 상에서 이전에 실행된 것과 마찬가지로 작동을 확인하기 위해 종속되어야만 한다. 오퍼레이팅 시스템 확인 작동을 수행하는 것은, 시스템 초기화가 완료된 이후, 그러나 OS 부팅 이전에, PC가 SEPB에 의해 다시 발견되어야 한다는 것을 요구한다.
PC 시스템에서, 실행 사이클의 끝 근처의 시스템 초기화 코드는 어드레스 COOOOh로부터 DFFFFh까지 PC의 메모리 내의 선택된 위치의 내용을 점검하여, 유일한 I/O 서비스 작동을 제공함으로서 시스템 BIOS를 확장하기 위해 펌웨어를 가지는 장치가 PC 내에 존재하는 지를 결정한다. 상기 장치에 대한 어드레스 사이의 PC의 메모리의 각 2KB 세그먼트의 시작에서 각 더블워드의 내용을 읽고 표준 관습을 따르는 지를 점검하는 시스템 초기화 코드에 의해 시스템 BIOS의 이러한 확장은 감지된다. 시스템 초기화 펌웨어가 상기 장치들 중 한 개를 발견하면, 실행 제어는 그 코드로 넘어간다. 이 코드가 실행되면, I/O 장치는 설정되고, PC 시스템 테이블의 모든 엔트리는 적절한 위치에서 발생되고 저장된다. 이 코드의 실행이 완료된 후에, 실행 제어는 BIOS 확장 장치를 위해 계속 서치를 하는 시스템 초기화 코드로 되돌려질 것이다. 모든 BIOS 확장이 감지된 후에 셋업 실행 제어가 앞서 기술된 방식으로 OS 부트 프로세스로 변환될 것이다.
SEPB의 플래시 롬에 저장된 프로그램은 BIOS 확장 장치처럼 보이도록 PC에 나타난다. SEPB BIOS 확장 코드가 시스템 초기화를 위해 실행할 때, 상기 SEPB BIOS 확장 코드는 다른 SEPB 펌웨어에 변환을 실행하여, 작동 시스템 부트 섹터 상에서와 같이, 부가적인 디지털 신호 확인 테스트가 수행될 것인지를 결정한다. 이 변환은 모드 #3(I)로부터 모드 #1(I)까지 I486 서브시스템이 스위칭하게 한다. 모드 #2(I)는 이 경우 단지 브리지이다.
모드 #1(I)에서 작동할 때, 테스트가 작동할 것인지를 I486은 결정할 것이고, 여기 이 시스템에서 정보는 테스팅되도록 위치한다. 시스템 디스크 중 하나에 위치하는 파일의 내용에서 테스트가 이루어진다면, I486 서브시스템은 BIOS 확장 모드 #2(I)의 숨겨진 부분으로 변환할 것이고, PC로부터 볼 수 없는 것과 명령할 수 있는 것에서 PC는 디스크를 읽는 작동을 수행하고 PC의 램에 파일은 놓는다. 이 변환은 데이터를 테스트하기 위하여 모드 #1(I)로 스위치 복귀를 일으킨다.
SEPB 펌웨어는 고유한 접근법을 사용하여, I486 실행 사이클에서 SEPB 프로그램(모드 #1(I) 프로그램) 실행으로부터 식별가능한 또는 숨겨진 BIOS 확장 프로그램(모드 #3(I) 또는 모드 #2(I) 프로그램) 실행까지 원하는 변환을 실시한다. 이 메카니즘은 SEPB 플래시 메모리에 저장된 프로그램에 중지 명령을 I486이 실행함으 로서 활성화된다. 중지 명령이 실행 중임에 따라, SEPB 논리 회로는 I486 서브시스템 작동모드를 원하는 대로 변경하고, 프로그램 실행을 다시 시작하기 위해 I486에 신호를 보낸다.
NMI 신호를 수신함에 따라, I486은 인터럽트 반응 벡터 페치(interrupt response vector fetch) 작동을 수행한다. 정상 PC 작동에서, I486에 의해 호출된 벡터는 위치 8h에서 PC의 램으로부터 읽혀진다. SEPB 시스템에서, 중지 명령이 SEPB 프로그램에 의해 실행된다면, 인터럽트 반응 벡터는 SEPB I486 서브시스템 플래시 롬의 적절한 위치로부터 취한다. I486은 NMI 신호에 따라, 인터럽트 벡터를 얻기 위해 참조 메모리를 가지는 8h의 어드레스를 발생시킨다. 이 어드레스는 시스템 초기화동안 BIOS에 의해 램의 최저 바이트 내에 놓이는 인터럽트 벡터 테이블을 일반적으로 언급한다. 인터럽트 벡터를 호출하는 I486 버스 사이클은 특정 버스 사이클로 하드웨어 제어 하에 일어난다.
NMI 신호가 발생되도록 중지 명령이 SEPB I486 서브시스템의 플래시 롬으로부터 실행된 것을 SEPB가 인식할 때, SEPB는 I486에 의해 발생된 인터럽트 반응 사이클을 수정하여, I486 플래시 롬 테이블 공간 내의 위치(20008h로부터 2F008h) 몇 개 세트 중 하나에 지정한다. SEPB 하드웨어에 의해 발생된 주소는 I486 펌웨어 실행에서 얻은 여러 정보(SEPB의 펌웨어의 실행을 개시하는 적절한 어드레스를 얻기 위해 SEPB의 BIOS 확장 어드레스와 I486 서브시스템의 작동 모드)를 사용함으로서 이루어진다.
인터럽트 반응 벡터는 한쌍의 넘버를 포함하는 데, 코드 세그먼트 넘버와 오 프셋 넘버이다. I486은 상기 두 넘버를 적절히 조합함으로서 생성된 어드레스에 저장되는 명령을 호출함으로서 벡터에 이 작동을 사용한다. SEPB가 프로그램 변환을 하고있을 때, 다음 명령은 SEPB 플래시 롬 코드 저장 세그먼트 내의 적절한 위치로부터 호출된다.
BIOS 초기화 이후와 OS 부트 이전 사이의 작동
SEPB 펌웨어에 되돌려지는 작동의 변환에 따라, I486은 PC 소프트웨어/펌웨어를 확인하는 작동을 다시 시작한다. 이 작동을 위해 SEPB의 I486 서브시스템은 모드 #1(I)의 펌웨어를 실행한다.
상기 작동들을 방향잡기위하여, I486은 플래시 롬의 제 2 테이블, 즉 테이블 B를 유지하고, 상기 테이블 B는 PC의 OS 디스크 부트 섹터 내용과 다른 PC 정보와 같은 엔트리 기술 아이템을 포함하며, 상기 다른 PC 정보는 이때 확인된다. 상기 작동들 모두는 생성된 디지털 신호값으로 MYK-80에 의해 이전부터 발생된 디지털 신호를 가질 것이다. 상기 생성된 디지털 신호값은 이전에 기술된 MYK-80 테이블과 동일한 테이블에 저장된다. PC의 디스크, 롬, 램 내용의 동일 섹션은 PC 시스템 초기화 이전에 MYK-80에 의해 점검될 것이며, 내용이 사인될 때 생성된 값과 같은 디지털 신호값을 여전히 가지는 것을 보장한다.
디지털 신호 확인 작동을 수행하기 위해 MYK-80을 호출하기 전에, I486은 SRAM 26의 적절한 위치에 적절한 명령 메시지를 보낸다. 명령을 보낸 후에, I486은 서브시스템간 레벨 명령을 실행하고, 상기 서브시스템간 레벨 명령은 모드 #5(I)로 변환하여 I486의 서브시스템을 불활성화시키고, 모드 #1(M)로 변환함으로서 MYK-80 서브시스템을 활성화시킨다.
모드 #1(M)에서, MYK-80 서브시스템은 소프트웨어 인터럽트, SWI를 MYK-80에 보내는 프로그램을 실행하여, 보안성 해시 암호 작동을 수행하도록 명령한다. MYK-80이 내부 작동 수행을 방해받을 때, 서브시스템은 모드 #2(M)로 변환하고 프로세서 어드레스 버스와 프로세서 데이터 버스를 높은 임피던스 상태로 모두 연결한다.
디지털 신호 확인
디지털 신호 확인 작동을 수행하기 위하여, I486은 적절한 명령 메시지를 SRAM의 적절한 위치에 보낸다. 명령 메시지를 보낸 후에, I486은 서브시스템간 레벨 명령을 실행하고, 상기 레벨 명령은 모드 #5(I)로 변환시켜 I486 서브시스템을 불활성화시키고, 모드 #1(M)로 변환시킴으로서 MYK-80 서브시스템을 활성화시킨다. MYK-80은 PC의 메모리로부터 파일의 현재 내용을 읽고, SRAM(26) 내의 표준 영역 내에 파일의 내용을 놓는다. MYK-80 펌웨어는 소프트웨어 인터럽트, SWI를 MYK-80에 보내어서, 보안성 해시(SHA) 암호 작동을 수행하도록 명령한다. MYK-80이 이 내부 작동 수행을 방해받으면, 서브시스템은 모드 #2(M)으로 변환하고, 프로세서 어드레스 버스와 프로세서 데이터 버스를 높은 임피던스 상태로 모두 연결한다.
MYK-80이 SHA 작동을 완료한 후에, 디지털 신호 확인 작동을 수행할 때, MYK-80은 서브시스템이 모드 #1(M)로 복귀변환하게 한다. 이 모드에서, MYK-80에 디지털 신호를 발생시키는 데 사용되는 동일 암호값으로부터 발생되는 암호 키 공동 구성부품(yb)과 파일의 이전부터 발생된 디지털 신호값을 따라, 서브시스템은 SHA 작동의 결과를 읽고, 갱신된 해시값을 보낸다. MYK-80은 입력 신호를 확인하기 위하여 디지털 신호 확인(DSVER) 암호 작동을 실행하도록 명령받는다. MYK-80 펌웨어는 소프트웨어 인터럽트(SWI)를 MYK-80에 보내서, DSVER 작동을 수행하도록 명령한다. MYK-80이 내부 작동 수행을 방해받으면, 서브시스템은 모드 #2(M)로 변환되고, 프로세서 어드레스 버스와 프로세서 데이터 버스를 높은 임피던스 상태로 모두 연결한다. 테스트 결과는 I486이 읽을 SRAM의 표준 위치에 전달된다. MYK-80은 서브시스템간 레벨 명령을 실행함으로서 그 작동 사이클을 완료시킨다. 상기 레벨 명령은 모드 #0(M)으로 변환하여 MYK-80의 서브시스템을 불활성화시키고, 모드 #1(I)으로 변환시킴으로서 I486 서브시스템을 활성화시킨다.
MYK-80 디지털 신호 확인 테스트 작동의 결과가 실패로 나타나면, I486은 알람 소리를 내고, 모드 #7(I)로 서브시스템을 변환하고 다시 모드 #6(I)로 변환함으로서 셧다운 작동을 실행한다.
모드 #6(I)에서, I486은 셧다운되고, PC 시스템이 전원꺼짐과 켜짐을 주기적으로 함으로서, 그리고 PC의 리셋 버튼을 사용자가 누름으로서 리셋될 때까지 유지한다.
사이클이 성공적으로 완료되었다고 MYK-80 확인 작동의 결과가 나올 경우, I486은 SEPB 작동을 계속할 것이다.
I486의 테이블 B의 각 엔트리가 성공적으로 처리된 후에, I486은 테이블을 점검하여, PC OS 부트 이전에 확인될 파일을 기술하는 또다른 엔트리가 존재하는 지를 결정한다. 또다른 엔트리가 존재한다면, I486은 확인할 파일을 기술하면서 새로운 명령 메시지를 SRAM(26)의 적당한 위치에 보내는 상기 작동을 반복한다. I486 은 이전과 같이 MYK-80을 호출하여, 확인 과정을 수행하고, SRAM(26)의 적절한 위치에 결과를 전달한다. 디스크 읽기가 필요하면, 제어기가 읽기 위해 모드 #2(I)로 이동하고, 데이터를 테스트하기 위하여 모드 #1(I)로 다시 이동한다.
테이블 B에는 확인할 더 이상의 엔트리가 없을 때, I486은 모드 #1(I) 작동을 종료하고, 모드 #2(I)를 통해 모드 #11(I)로 변환한다. 모드 #11(I)에서, I486은 PC 작동까지 복귀를 실행하고, 이 작동은 SEPB에 명백할 것이다. 즉, 모든 정상 PC OS 기능은 사용자에게 사용가능하다.
파일을 사인하는 PC와 SEPB 작동
분리된 프로그램은 오퍼레이터가 파일을 사인하고 모든 이어지는 시작 프로세스의 일부로 확인 과정을 포함하는 편리한 메카니즘을 제공한다. 이 프로그램 실행이 시작될 때, SEPB I486 서브시스템은 모드 #11(I)에서 작동할 것이다. 가동 명령의 엔트리를 따라, 프로그램은 신뢰받는 오퍼레이터와 통신할 것이다.
BIOS 확장 인터셉트 방법
목표는 시스템 BIOS가 하드웨어를 초기화한 후, 하지만 오퍼레이팅 시스템을 부팅시키기 전에, PC를 찾아내는 것이다. 이때, 시스템 BIOS는 BIOS 확장을 위한 서치를 실시한다. 만약 서치에 성공하면, BIOS 확장에 호출이 있어서, 초기화를 할 수 있다. BIOS 확장이 작업을 완료한 후, PC는 시스템 BIOS로 복귀한다.
보드 상에 SEPB BIOS 확장을 가지는 PC 확장 버스에 보드를 추가하는 것보다 선호되는 접근법은 SEPB 논리 회로에 BIOS 확장 어드레스를 할당하는 것이고, BIOS 확장을 찾을 때 I486 CPU 읽기 요청을 감시하는 것이다. 이를 위해, SEPB는 한 세 트의 스위치를 가지고, 설치자가 SEPB를 위해 사용되지 않은 표준 BIOS 확장 어드레스를 선택하게 한다. 선택적으로, 스위치는 시스템 초기화가 진행될 때 사용되지 않은 BIOS 확장 어드레스를 찾기 위해 SEPB를 프로그래밍함으로서, 그리고 사용되지 않은 BIOS 확장 어드레스에서 자동으로 설치함으로서 스위치는 제거될 수 있다.
시스템 BIOS가 SEPB BIOS 확장을 찾은 후에, 시스템 BIOS는 SEPB를 초기화하기 위해 펌웨어를 실행할 것이다. 초기화는 SEPB가 하드 디스크로부터 OS 부트 섹터를 읽고 확인할 때에 일어난다.
모든 경우에, BIOS 확장 소프트웨어가 실행될 때, SEPB 펌웨어에 접속하기 전에 사용되는 동일한 중지/인터럽트 기술을 BIOS 확장 소프트웨어는 사용할 것이다. 중지/인터럽트 작동이 SEPB에 의해 명령받을 경우, 코드는 SEPB의 플래시 롬으로부터 전달될 것이다. OS 부트 섹터 확인 작동, 파일 확인 작동, 또는 신뢰받는 오퍼레이터에 의해 요청된 작동 중 하나를 수행하기 위하여 스테이터스 정보(status information)의 조합은 SEPB를 SEPB 모드 #1(I)로 변환시킬 것이다.
그러므로, 본 발명에 따르는 시스템과 방법은 신뢰받는 컴퓨터 환경을 제공한다. 시스템 전원이 들어오거나 시스템이 리셋될 때마다 모든 소프트웨어와 펌웨어 구성부품이 사인되었을 때와 같은 신호를 가지는 것을 주장함으로서, 구성부품에 허가되지 않은 변화를 일으키는 시도는 어떤 변호가 시스템 작동에 영향을 미치기 전에 감지된다. CPU에 전해지는 어떤 제어 신호를 가로채고 대치함으로서, 본 발명의 장치는 신뢰받는 소프트웨어가 가동될 기회를 가진다는 점을 제공한다. 시스템 소프트웨어가 스테이지에서 확인되면, CPU는 점점 더 많은 확인된 시스템 소 프트웨어를 구동시킬 것이다.
디지탈 신호 확인 테스트의 각 사이클이 실행되고 통과된 후에, SEPB 논리 회로는 I486과 호스트 PC의 나머지 부분 사이의 연결을 구성하여, SEPB가 없는 것처럼 호스트 PC 시스템이 작동할 것이다. 디지털 신호 확인 테스트 사이클 중 어느 하나 동안 한 개 의 테스트된 구성부품이 실패로 나타날 경우, SEPB는 SEPB와 호스트 PC 모두에 대해 모든 작동을 중지한다. 셀프 테스트, 디지털 신호 확인 테스트, 그리고 SEPB에 의해 수행되는 시스템 제어의 모든 작동은 사용자에게 고지하지 않고 행해지며, 정상 PC 초기화와 부트 작동의 일부로서 나타난다. 이런 방식으로, 호스트 PC 시스템은 타용도로 사용될 수 없어서(신뢰받는 오퍼레이터 수리의 경우는 제외), 모든 펌웨어와 소프트웨어 구성부품이 신뢰받는 컴퓨터 시스템을 구성하는 적절한 구성으로 재구성된다.







Claims (125)

  1. 메모리(26, 28)와 중앙 프로세서 장치(24)를 포함하는 컴퓨터 시스템에서, 상기 중앙 프로세서 장치(24)는 각각 어드레스 신호들, 데이터 신호들, 그리고 상기 두 신호에 연결된 다수의 제어 신호들을 가지며, 상기 다수의 제어 신호는 각각의 다수의 제어 신호 라인(32, 34, 36)을 통하여 상기 중앙 프로세서 장치(24)로/로부터 제공되고, 상기 각각의 다수의 제어 신호 라인은 상기 다수의 제어 신호 라인 중 하나인 제 1 제어 신호 라인(36)을 포함하며, 상기 제 1 제어 신호 라인은 제 1 제어 신호를 포함하고, 상기 컴퓨터 시스템은 상기 메모리(26, 28)에 저장된 한 개 이상의 중요 프로그램 영역(critical program area)을 가지며, 이러한 상기 컴퓨터 시스템의 보안성을 향상시키는 방법은,
    - 상기 중앙 프로세서 장치(24)로부터 상기 제 1 제어 신호 라인(36)을 관련 논리 제어기(38,40)를 구비한 제 2 프로세서(10)를 향해 리디렉션(redirection)하여 상기 제 1 제어 신호를 가로채고,
    - 상기 제 1 제어 신호 대신에 상기 중앙 프로세서 장치의 제 2 제어 신호로 대체하여, 제 2 프로세서(10)가 상기 논리 제어기(38,40)에 의해 상기 중앙 프로세서 장치의 제어를 캡처(capture)하며,
    - 상기 메모리(26, 28)의 상기 중요 프로그램 영역을 상기 제 2 프로세서(10)로 확인하고,
    - 상기 중요 프로그램 영역이 확인되면 상기 제 1 제어 신호 라인을 다시 리디렉션하여, 상기 중요 프로그램 실행을 위해 상기 논리 제어기(38,40)가 상기 중앙 프로세서 유닛(24)의 제어를 해제하게 하는,
    이상의 단계들을 포함하고, 이때 상기 제 2 프로세서(10), 상기 논리 제어기(38,40), 그리고 상기 제 2 프로세서 및 상기 논리 제어기에 관련된 회로 동작이 상기 논리 제어기에 관련된 BIOS 확장부를 제외하고는 상기 컴퓨터 시스템의 모든 다른 부분에 드러나지 않으며, 이 과정이 상기 제 1 제어 신호 라인의 추가적인 리디렉션 단계 이후에 일어나는 것을 특징으로 하는, 컴퓨터 시스템의 보안성을 향상시키는 방법.
  2. 제 1 항에 있어서, 상기 중요 프로그램 영역은 입력/출력 시스템(BIOS)인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  3. 제 1 항에 있어서, 상기 중요 프로그램 영역은 인터럽트 벡터 어드레스 테이블인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  4. 제 1 항에 있어서, 상기 중요 프로그램 영역은 오퍼레이팅 시스템(DOS)인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  5. 제 1 항에 있어서, 상기 중요 프로그램 영역은 부팅시 자동으로 실행되는 파일(autoexec.bat)인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  6. 제 1 항에 있어서, 상기 중요 프로그램 영역은 시스템 구조 제어 파일(config.sys)인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  7. 제 1 항에 있어서, 상기 중요 프로그램 영역은 신뢰받는 오퍼레이터에 의해 구체화되는 프로그램이나 데이터 영역인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  8. 제 1 항에 있어서, 상기 컴퓨터 시스템은 다수의 중요 프로그램 영역을 가지며, 상기 중요 프로그램 영역이 확인된 후 제 2 중요 프로그램 영역이 확인되는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  9. 제 8 항에 있어서, 상기 제 2 중요 프로그램 영역은 인터럽트 벡터 어드레스 테이블인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  10. 제 8 항에 있어서, 상기 제 2 중요 프로그램 영역은 오퍼레이팅 시스템(DOS)인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  11. 제 8 항에 있어서, 상기 제 2 중요 프로그램 영역은 부팅시에 자동으로 실행되는 파일(autoexec.bat)인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  12. 제 8 항에 있어서, 상기 제 2 중요 프로그램 영역은 시스템 구조 제어 파일(config.sys)인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  13. 제 8 항에 있어서, 상기 제 2 중요 프로그램 영역은 신뢰받는 오퍼레이터에 의해 구체화되는 프로그램이나 데이터 영역인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  14. 제 1 항에 있어서, 상기 컴퓨터 시스템은 응용 프로그램을 실행하기 위하여 세 개의 준비 단계를 거치고, 이때, 제 1 단계는 하드웨어 내부 셀프 테스트이며, 제 2 단계는 입/출력(BIOS) 프로그램 시스템 초기화이고, 제 3 단계는 오퍼레이팅 시스템을 부팅시키는 것이며, 이때 컴퓨터 시스템의 보안성을 향상시키는 방법은,
    - 상기 하드웨어 내부 셀프 테스트 단계 이후와 상기 BIOS 프로그램 시스템 초기화 단계 이전에 상기 중요 프로그램 영역을 확인하는
    단계를 추가로 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  15. 제 1 항에 있어서, 상기 컴퓨터 시스템은 응용 프로그램을 실행하기 위하여 세 개의 준비 단계를 거치고, 이때 제 1 단계는 하드웨어 내부 셀프 테스트이며, 제 2 단계는 입/출력(BIOS) 프로그램 시스템 초기화이고, 제 3 단계는 오퍼레이팅 시스템 부팅 단계이며, 이때 컴퓨터 시스템의 보안성을 향상시키는 방법은,
    - 상기 BIOS 프로그램 시스템 초기화 단계 이후에 그리고 상기 오퍼레이팅 시스템 부팅 단계 이전에 상기 중요 프로그램 영역을 확인하는,
    단계를 추가로 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  16. 제 1 항에 있어서, 상기 컴퓨터 시스템은 응용 프로그램을 실행하기 위하여 세 개의 준비 단계를 거치고, 이때 제 1 단계는 하드웨어 내부 셀프 테스트이며, 제 2 단계는 입/출력(BIOS) 프로그램 시스템 초기화이고, 제 3 단계는 오퍼레이팅 시스템 부팅 단계이며, 이때 컴퓨터 시스템의 보안성을 향상시키는 방법은 :
    - 상기 오퍼레이팅 시스템 부팅 단계 이후 신뢰받는 오퍼레이터에 의해 요구되는 바 대로 상기 중요 프로그램 영역을 확인하는
    단계를 추가로 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  17. 메모리(26, 28)와 중앙 프로세서 장치(24)를 포함하는 컴퓨터 시스템에서, 상기 중앙 프로세서 장치(24)는 각각 어드레스 신호들, 데이터 신호들, 그리고 상기 두 신호에 연결된 다수의 제어 신호들을 가지며, 상기 다수의 제어 신호는 각각의 다수의 제어 신호 라인(32, 34, 36)을 통하여 상기 중앙 프로세서 장치로/로부터 제공되고, 상기 각각의 다수의 제어 신호 라인은 상기 다수의 제어 신호 라인 중 하나인 제 1 제어 신호 라인(36)을 포함하며, 상기 제 1 제어 신호 라인은 제 1 제어 신호를 포함하고, 상기 컴퓨터 시스템은 상기 메모리(26, 28)에 저장된 한 개 이상의 중요 프로그램 영역(critical program area)을 가지고, 이러한 상기 컴퓨터 시스템의 보안성을 향상시키는 방법은,
    - 관련 논리 제어기(38, 40)를 갖춘 제 2 프로세서(10)를 제공하고,
    - 상기 컴퓨터 시스템의 시작(부팅)을 감지하며,
    - 상기 컴퓨터 시스템의 시작(부팅)을 감지하는 상기 단계에 따라 상기 논리 제어기(38, 40)에 의해 상기 중앙 프로세서의 제어를 캡처하고,
    - 상기 메모리(26, 28) 내의 제 1 중요 프로그램 영역을 상기 제 2 프로세서(10)로 확인하며, 그리고
    - 상기 제 1 중요 프로그램 영역이 확인되면 상기 중요 프로그램을 실행하도록 상기 논리 제어기(38, 40)에 의해 상기 중앙 프로세서 장치(24)의 제어를 해제하는,
    이상의 단계들을 포함하고, 이때 상기 제 2 프로세서(10), 상기 논리 제어기(38, 40), 그리고 상기 제 2 프로세서 및 상기 논리 제어기에 관련된 회로 동작이 상기 논리 제어기에 관련된 BIOS 확장부를 제외하고는 상기 컴퓨터 시스템의 모든 다른 부분에 드러나지 않으며, 이 과정이 상기 제어 해제 단계 이후에 일어나는 것을 특징으로 하는, 컴퓨터 시스템의 보안성을 향상시키는 방법.
  18. 제 17 항에 있어서, 상기 컴퓨터 시스템의 상기 시작 감지 단계에 따라 상기 중앙 프로세서 장치(24)의 제어를 캡처하는 상기 단계는
    - 상기 중앙 프로세서 장치를 중단시키는
    단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  19. 제 17 항에 있어서, 상기 중앙 프로세서 장치는 클락 신호를 수신하기 위해 클락 신호 입력을 포함하고, 상기 컴퓨터 시스템의 상기 시작 감지 단계에 따라 상기 중앙 프로세서 장치의 제어를 캡처하는 상기 단계는
    - 상기 중앙 프로세서 장치에서 상기 클락 신호를 가로채는
    단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  20. 제 17 항에 있어서, 상기 컴퓨터 시스템 시작 감지 단계에 따라 상기 중앙 프로세서 장치의 제어를 캡처하는 상기 단계는
    - 상기 제 1 제어 신호를 가로채는
    단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  21. 제 20 항에 있어서, 상기 제 1 제어 신호를 가로채는 상기 단계는,
    - 상기 중앙 프로세서 장치(24)로부터 상기 제 1 제어 신호 라인을 상기 제 2 프로세서(10)를 향해 리디렉션하여, 상기 제 1 제어 신호를 가로채고; 그리고
    - 상기 제 1 제어 신호 대신에 상기 중앙 프로세서 장치까지/로부터의 제 2 제어 신호로, 대체하는
    단계를 포함하는 것을 특징으로 하는, 컴퓨터 시스템의 보안성을 향상시키는 방법.
  22. 제 21 항에 있어서, 상기 중요 프로그램 실행을 위해 상기 중앙 프로세서 장치의 제어를 해제하는 상기 단계는
    - 상기 중앙 프로세서 장치의 제어가 상기 논리 제어기에 의해 해제되도록 상기 제 1 제어 신호 라인을 리디렉션시키는
    단계를 추가로 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  23. 제 17 항에 있어서, 상기 컴퓨터 시스템 시작 감지 단계에 따라 상기 논리 제어기에 의해 상기 중앙 프로세서 장치의 제어를 캡처하는 단계는,
    - 인터럽트 벡터 어드레스 신호를 가로채는
    단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  24. 제 17 항에 있어서, 상기 컴퓨터 시스템 시작 감지 단계에 따라 상기 논리 제어기에 의해 상기 중앙 프로세서 장치의 제어를 캡처하는 단계는,
    - 데이터 스트로브 신호(data strobe signal)를 가로채는
    단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  25. 제 17 항에 있어서, 상기 컴퓨터 시스템 시작 감지 단계에 따라 상기 중앙 프로세서 장치의 제어를 캡처하는 단계는
    - 어드레스 스트로브 신호(address strobe signal)를 가로채는
    단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  26. 제 17 항에 있어서, 상기 컴퓨터 시스템 시작 감지 단계에 따라 상기 논리 제어기에 의해 상기 중앙 프로세서 장치의 제어를 캡처하는 단계는,
    - 데이터 준비 신호(data ready signal)를 가로채는
    단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  27. 제 17 항에 있어서, 상기 컴퓨터 시스템 시작 감지 단계는,
    - 상기 컴퓨터 시스템의 전원켜짐(power up)을 감지하는
    단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  28. 제 17 항에 있어서, 상기 컴퓨터 시스템 시작 감지 단계는,
    - 상기 컴퓨터 시스템의 하드 시스템 리세트(hard system reset)를 감지하는
    단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  29. 제 17 항에 있어서, 상기 방법은,
    - 상기 중요 프로그램 실행에 따라 상기 논리 제어기에 의해 상기 중앙 프로세서 장치의 제어를 다시 캡처하고,
    - 상기 메모리 내의 제 2 중요 프로그램 영역을 상기 제 2 프로세서로 확인하며, 그리고
    - 만약 제 2 중요 프로그램 영역이 확인되면, 상기 제 2 중요 프로그램 실행을 위해 상기 논리 제어기에 의해 상기 중앙 프로세서 장치의 제어를 해제하는
    이상의 단계를 추가로 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  30. 메모리(26, 28)와 중앙 프로세서 장치(24)를 포함하는 컴퓨터 시스템에서, 상기 중앙 프로세서 장치(24)는 각각 어드레스 신호들, 데이터 신호들, 그리고 상기 두 신호에 연결된 다수의 제어 신호들을 가지며, 상기 다수의 제어 신호는 각각의 다수의 제어 신호 라인(32, 34, 36)을 통하여 상기 중앙 프로세서 장치(24)로/로부터 제공되고, 상기 각각의 다수의 제어 신호 라인은 상기 다수의 제어 신호 라인 중 하나인 제 1 제어 신호 라인을 포함하며, 상기 제 1 제어 신호 라인(36)은 제 1 제어 신호를 포함하고, 상기 컴퓨터 시스템은 상기 메모리에 저장된 한 개 이상의 중요 프로그램 영역(critical program area)을 가지며, 이때 상기 컴퓨터 시스템의 보안성을 향상시키는 장치는,
    - 상기 중앙 프로세서 장치(24)로부터 관련 논리 제어기(38, 40)를 갖춘 제 2 프로세서(10)로 상기 제 1 제어 신호 라인(36)을 리디렉션하여 상기 제 1 제어 신호를 가로채는 리디렉션 수단,
    - 상기 논리 제어기(38, 40)에 의해 상기 중앙 프로세서 장치의 제어를 제 2 프로세서(10)가 캡처하도록, 상기 제 1 제어 신호 대신에 상기 제 2 프로세서로의/로부터의 제 2 제어 신호로 대체하는 수단,
    - 상기 메모리(26, 28) 내 상기 중요 프로그램 영역을 상기 제 2 프로세서(10)로 확인하는 수단,
    - 상기 중요 프로그램 실행을 위해 상기 논리 제어기(38, 40)에 의해 상기 중앙 프로세서 장치의 제어가 해제되도록, 상기 중요 프로그램 영역이 확인되면 상기 제 1 제어 신호 라인을 추가적으로 리디렉션시키는 리디렉션 수단
    을 포함하고, 이때 상기 제 2 프로세서, 상기 논리 제어기, 그리고 상기 제 2 프로세서 및 상기 논리 제어기에 관련된 회로 동작이 상기 논리 제어기에 관련된 BIOS 확장부를 제외하고는 상기 컴퓨터 시스템의 모든 다른 부분에 드러나지 않으며, 이 과정이 상기 제 1 제어 신호 라인의 추가적 리디렉션 이후에 일어나는 것을 특징으로 하는, 컴퓨터 시스템의 보안성을 향상시키는 장치.
  31. 메모리(26, 28)와 중앙 프로세서 장치를 포함하는 컴퓨터 시스템에서, 상기 중앙 프로세서 장치(24)는 각각 어드레스 신호들, 데이터 신호들, 그리고 상기 두 신호에 연결된 다수의 제어 신호들을 가지며, 상기 다수의 제어 신호는 각각의 다수의 제어 신호 라인(32, 34, 36)을 통하여 상기 중앙 프로세서 장치(24)로/로부터 제공되고, 상기 각각의 다수의 제어 신호 라인은 상기 다수의 제어 신호 라인 중 하나인 제 1 제어 신호 라인(36)을 포함하며, 상기 제 1 제어 신호 라인은 제 1 제어 신호를 포함하고, 상기 컴퓨터 시스템은 상기 메모리에 저장된 한 개 이상의 중요 프로그램 영역(critical program area)을 가지며, 이때 상기 컴퓨터 시스템의 보안성을 향상시키는 장치는,
    - 관련 논리 제어기(38, 40)를 갖춘 제 2 프로세서(10),
    - 상기 컴퓨터 시스템의 시작(부팅)을 감지하는 수단,
    - 상기 컴퓨터 시스템 시작 감지 수단에 따라 상기 논리 제어기에 의해 상기 중앙 프로세서 장치의 제어를 캡처하는 수단,
    - 제 2 프로세서로 상기 메모리(26, 28)내 상기 제 1 중요 프로그램 영역을 확인하는 수단,
    - 상기 제 1 중요 프로그램 영역이 확인되면 상기 중요 프로그램 실행을 위해 상기 논리 제어기(38, 40)에 의해 상기 중앙 프로세서 장치의 제어를 해제하는 수단
    을 포함하고, 이때 상기 제 2 프로세서, 상기 논리 제어기, 그리고 상기 제 2 프로세서 및 상기 논리 제어기에 관련된 회로 동작이 상기 논리 제어기에 관련된 BIOS 확장부를 제외하고는 상기 컴퓨터 시스템의 모든 다른 부분에 드러나지 않으며, 이 과정이 상기 제어 해제 단계 이후에 일어나는 것을 특징으로 하는, 컴퓨터 시스템의 보안성을 향상시키는 장치.
  32. 중앙 프로세서 장치를 포함하는 컴퓨터 시스템에서, 상기 중앙 프로세서 장치는 제 1 회로 보드 상의 제 1 소켓내로 연결되고, 상기 중앙 프로세서 장치는 각각 어드레스 신호, 데이터 신호, 그리고 상기 제 1 소켓을 통해 두 신호에 연결되는 다수의 제어 신호를 가지며, 상기 다수의 제어 신호는 각각의 다수의 제어 신호 라인을 통하여 상기 중앙 프로세서 장치로/로부터 제공되며, 상기 각각의 다수의 제어 신호 라인은 상기 다수의 제어 신호 라인 중 하나인 제 1 제어 신호 라인을 포함하고, 상기 제 1 제어 신호 라인은 제 1 제어 신호를 포함하며, 이러한 상기 컴퓨터 시스템의 보안성을 향상시키는 방법은,
    - 상기 제 1 소켓으로부터 상기 중앙 프로세서 장치를 제거하고,
    - 상기 제 1 소켓과 동등한 제 2 소켓을 가지는 제 2 회로 보드 유닛을 상기 제 1 소켓에 연결함으로서 상기 중앙 프로세서를 대체하며,
    - 상기 제 2 회로 보드 상의 상기 제 2 소켓에 상기 중앙 프로세서 장치를 연결하고, 그리고
    - 상기 제 1 제어 신호를 가로채는,
    이상의 단계로 이루어지는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  33. 제 32 항에 있어서, 상기 제 1 제어 신호를 가로채는 상기 단계는,
    - 상기 중앙 프로세서 장치로부터 상기 제 1 제어 신호 라인을 분리하고, 그리고
    - 상기 제 1 제어 신호 라인에 상기 제 2 제어 신호를 삽입함으로서 상기 제 1 제어 신호 대신에 상기 중앙 프로세서 장치로/로부터의 제 2 제어 신호로 대체하는,
    단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  34. 제 32 항에 있어서, 상기 제 1 제어 신호는 클락 신호인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  35. 제 32 항에 있어서, 상기 제 1 제어 신호는 인터럽트 신호인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  36. 제 32 항에 있어서, 상기 제 1 제어 신호는 쓰기 스트로브 신호(write strobe signal)인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  37. 제 32 항에 있어서, 상기 제 1 제어 신호는 읽기 스트로브 신호(read strobe signal)인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  38. 제 32 항에 있어서, 상기 제 1 제어 신호는 데이터 준비 신호인 것을 특징으로 하는 컴퓨터 시스템의 보안성을 향상시키는 방법.
  39. 어드레스 신호, 데이터 신호, 그리고 두 신호에 연결되는 다수의 제어 신호를 갖는 제 1프로세서(24)로서, 상기 다수의 제어 신호는 각각의 다수의 제어 신호 라인((32, 34, 36)을 통하여 상기 제 1 프로세서로/로부터 제공되며, 상기 각각의 다수의 제어 신호 라인은 상기 다수의 제어 신호 라인 중 하나인 제 1 제어 신호 라인(36)을 포함하고, 상기 제 1 제어 신호 라인은 제 1 제어 신호를 포함하는 제 1 프로세서,
    제 2 프로세서(10),
    상기 제 1 프로세서로/로부터의 상기 제 1 제어 신호를 가로채서 상기 제 1 제어 신호 대신에 제 2 제어 신호로 대체하는 장치를 포함하는 논리 제어기(38, 40)로서, 상기 논리 제어기가 상기 제 1 프로세서의 제어를 캡쳐(capture)하도록 하며, 상기 논리 제어기가 상기 제 1 프로세서(24)를 컴퓨터 시스템의 나머지 장치로부터 분리시키고, 상기 제 1프로세서(24)와 컴퓨터 시스템의 나머지 장치를 분리하여 제어 할 수 있도록 하는 논리 제어기(38, 40), 그리고
    이때, 상기 제 2 프로세서(10), 상기 논리 제어기(38, 40), 그리고 상기 제 2 프로세서 및 상기 논리 제어기에 관련된 회로 동작이 상기 논리 제어기에 관련된 BIOS 확장부를 제외하고는 상기 컴퓨터 시스템의 모든 다른 부분에 드러나지 않게 됨을 특징으로 하는, 컴퓨터 시스템의 보안성을 향상시키는 장치.
  40. 어드레스 신호, 데이터 신호, 그리고 두 신호에 연결되는 다수의 제어 신호를 갖는 제 1프로세서(24)로서, 상기 다수의 제어 신호는 각각의 다수의 제어 신호 라인(32, 34, 36)을 통하여 상기 제 1 프로세서로/로부터 제공되며, 상기 각각의 다수의 제어 신호 라인은 상기 다수의 제어 신호 라인 중 하나인 제 1 제어 신호 라인(36)을 포함하고, 상기 제 1 제어 신호 라인은 제 1 제어 신호를 포함하는 제 1 프로세서,
    상기 제 1 프로세서 유닛을 캡쳐(capture)하기 위한 다중 프로세서 논리제어기, 그리고
    제 2 프로세서로서, 상기 캡쳐링중에, 상기 다중 프로세서 논리제어기가 상기 제 2 프로세서로 제 2 메모리 어드레스 공간을 할당하고, 상기 제 2 메모리 어드레스 공간은 상기 제 1 프로세서로는 접근이 불가한 제 2 프로세서를 포함하며, 그리고
    상기 제 1 프로세서에 의한 상기 제 1 제어 신호의 수신을 막음으로써, 상기 제 1 프로세서를 상기 제 2 프로세서로부터 분리시킴에 의하여 상기 다중 프로세서 논리 제어기가 상기 제 1 프로세서를 캡쳐하도록 하고, 그리고 상기 멀티 프로세서 논리가 상기 제 2 프로세서를 선택적으로 가능하게 함을 특징으로 하는, 컴퓨터 시스템의 보안성을 향상시키는 장치.
  41. 제 40 항에 있어서, 상기 제 1 제어 신호를 가로채는 상기 단계는,
    - 상기 중앙 프로세서 장치로부터 상기 제 1 제어 신호 라인을 분리하고, 그리고
    - 상기 제 1 제어 신호 라인 상에 제 2 제어 신호를 삽입함으로서 상기 제 1 제어 신호 대신에 상기 중앙 프로세서 장치로/로부터의 제 2 제어 신호로 대체하는,
    이상의 단계를 포함하는 것을 특징으로 하는 방법.
  42. 제 40 항에 있어서, 상기 다중프로세서 논리 제어기는 상기 제 2 프로세서의 동작에 따라, 제 1 프로세서에서 상기 제 1 제어 신호를 가로채지 않음으로서 상기 중앙 프로세서 장치를 해제하는 것을 특징으로 하는 방법.
  43. 제 40 항에 있어서, 상기 다중프로세서 논리 제어기는 상기 제 2 프로세서의 동작에 따라, 상기 제 1 제어 신호를 제 1 프로세서에 다시 연결함으로서 상기 중앙 프로세서 장치를 해제하는 것을 특징으로 하는 방법.
  44. 제 1 프로세서, 제 2 프로세서, 그리고 다중프로세서 논리 제어기로 이루어지는 다중프로세서 시스템으로서,
    상기 제 1 프로세서는 다수의 터미널을 가짐으로서, 터미널에 연결되는 다수의 제 1 제어 신호를 수신하고,
    상기 다중프로세서 논리 제어기가 상기 제 1 프로세서에 의한 상기 다수의 제 1 제어 신호 중 한개 이상의 수신을 막고, 상기 다수의 제 1 제어 신호 중 상기 하나 대신에 다수의 제 2 제어 신호 중 한개 이상으로 대체하며, 그리고 상기 제 1 프로세서와 상기 제 2 프로세서를 각각 선택적으로 가능하게 할 수 있고,
    상기 수신을 막는 동안, 상기 다중프로세서 논리 제어기가 제 2 메모리 어드레스 공간을 상기 제 2 프로세서로, 그리고 제 1 메모리 어드레스 공간은 상기 제 1 프로세서로 할당하며, 그리고 상기 제 2 메모리 어드레스 공간은 상기 제 1 프로세서로 접근되지 않음을 특징으로 하는 다중 프로세서 시스템.
  45. 다수의 터미널을 가져서, 이들로 연결되는 다수의 제 1 제어 신호들 그리고 다수의 어드레스 신호들을 수신하도록 하는 제 1 프로세서,
    제 2 프로세서, 그리고 논리 제어기를 포함하며,
    상기 논리 제어기가 상기 제 1 프로세서의 사전에 정해진 어드레스 신호들 그리고 사전에 정해진 제어 신호들에 해당하는 하나 이상의 중요 프로그램 영역을 모니터하여, 상기 하나 이상의 중요 프로그램 영역을 수정하기 위한 시도를 감지하도록 하고,
    상기 논리 제어기에 응답하여 상기 하나 이상의 중요 프로그램 영역을 수정하려는 상기 시도를 감지하는 알람을 포함하며,
    상기 논리 제어기가 상기 알람에 응답하여, 하나 이상의 상기 다수의 제 1 제어 신호를 인터랍트하고, 하나 이상의 상기 다수의 제 1 제어 신호를 하나 이상의 다수의 제 2 제어 신호로 대체하도록 하므로써, 상기 논리 제어기가 상기 하나 이상의 중요 프로그램 영역을 수정하려는 시도를 감지하는 때 상기 논리 제어기가 상기 제 1 프로세서의 제어를 캡쳐하도록 하며, 그리고
    상기 논리 프로세서 그리고 이에 연결된 회로의 동작이 상기 논리 제어기에 관련된 BIOS 확장부를 제외하고는 상기 컴퓨터 시스템의 모든 다른 부분에 드러나지 않게 됨을 특징으로 하는, 다중 프로세서 시스템.
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 삭제
  99. 삭제
  100. 삭제
  101. 삭제
  102. 삭제
  103. 삭제
  104. 삭제
  105. 삭제
  106. 삭제
  107. 삭제
  108. 삭제
  109. 삭제
  110. 삭제
  111. 삭제
  112. 삭제
  113. 삭제
  114. 삭제
  115. 삭제
  116. 삭제
  117. 삭제
  118. 삭제
  119. 삭제
  120. 삭제
  121. 삭제
  122. 삭제
  123. 삭제
  124. 삭제
  125. 삭제
KR1019997007325A 1997-02-13 1998-02-10 컴퓨터 시스템의 보안성을 향상시키는 보안용 코프로세서 KR100543268B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US79930697A 1997-02-13 1997-02-13
US08/799,339 US5953502A (en) 1997-02-13 1997-02-13 Method and apparatus for enhancing computer system security
US799,306 1997-02-13
US799,339 1997-02-13
PCT/US1998/002536 WO1998036517A1 (en) 1997-02-13 1998-02-10 Security coprocessor for enhancing computer system security

Publications (2)

Publication Number Publication Date
KR20000071056A KR20000071056A (ko) 2000-11-25
KR100543268B1 true KR100543268B1 (ko) 2006-01-20

Family

ID=27122099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997007325A KR100543268B1 (ko) 1997-02-13 1998-02-10 컴퓨터 시스템의 보안성을 향상시키는 보안용 코프로세서

Country Status (6)

Country Link
EP (1) EP1013023B1 (ko)
JP (1) JP2001524229A (ko)
KR (1) KR100543268B1 (ko)
AT (1) ATE308171T1 (ko)
DE (1) DE69832082D1 (ko)
WO (1) WO1998036517A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098054A (en) * 1997-11-13 2000-08-01 Hewlett-Packard Company Method of securing software configuration parameters with digital signatures
JP4812168B2 (ja) 1999-02-15 2011-11-09 ヒューレット・パッカード・カンパニー 信用コンピューティング・プラットフォーム
DE60044844D1 (de) 1999-02-15 2010-09-30 Hewlett Packard Co Kommunikation zwischen modulen in einer rechenvorrichtung
EP1056010A1 (en) * 1999-05-28 2000-11-29 Hewlett-Packard Company Data integrity monitoring in trusted computing entity
EP1055990A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company Event logging in a computing platform
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
EP1085396A1 (en) * 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
GB9922665D0 (en) 1999-09-25 1999-11-24 Hewlett Packard Co A method of enforcing trusted functionality in a full function platform
GB2372594B (en) 2001-02-23 2004-10-06 Hewlett Packard Co Trusted computing environment
WO2002086684A2 (en) 2001-04-24 2002-10-31 Hewlett-Packard Company An information security system
JP4676696B2 (ja) * 2001-06-29 2011-04-27 セキュアー システムズ リミテッド コンピュータのためのセキュリティシステムおよび方法
GB0116568D0 (en) * 2001-07-06 2001-08-29 Ncipher Corp Ltd Firmware validation
US7103529B2 (en) * 2001-09-27 2006-09-05 Intel Corporation Method for providing system integrity and legacy environment emulation
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
GB2392262A (en) 2002-08-23 2004-02-25 Hewlett Packard Co A method of controlling the processing of data
US7200758B2 (en) * 2002-10-09 2007-04-03 Intel Corporation Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem
JP4501349B2 (ja) * 2003-03-13 2010-07-14 ソニー株式会社 システムモジュール実行装置
US8838950B2 (en) 2003-06-23 2014-09-16 International Business Machines Corporation Security architecture for system on chip
US7444523B2 (en) * 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
US7822993B2 (en) 2004-08-27 2010-10-26 Microsoft Corporation System and method for using address bits to affect encryption
US7653802B2 (en) 2004-08-27 2010-01-26 Microsoft Corporation System and method for using address lines to control memory usage
US7734926B2 (en) 2004-08-27 2010-06-08 Microsoft Corporation System and method for applying security to memory reads and writes
US9237165B2 (en) 2013-11-06 2016-01-12 Empire Technology Development Llc Malicious attack prevention through cartography of co-processors at datacenter

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5144659A (en) * 1989-04-19 1992-09-01 Richard P. Jones Computer file protection system
US5598531A (en) * 1991-05-13 1997-01-28 William Stanley Hill Method and apparatus for preventing "disease" damage in computer systems

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5121345A (en) * 1988-11-03 1992-06-09 Lentz Stephen A System and method for protecting integrity of computer data and software
US5113522A (en) * 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
GB9003890D0 (en) * 1990-02-21 1990-04-18 Rodime Plc Method and apparatus for controlling access to and corruption of information in computer systems
EP0449242A3 (en) * 1990-03-28 1992-10-28 National Semiconductor Corporation Method and structure for providing computer security and virus prevention
US5263147A (en) * 1991-03-01 1993-11-16 Hughes Training, Inc. System for providing high security for personal computers and workstations
EP0510244A1 (en) * 1991-04-22 1992-10-28 Acer Incorporated Method and apparatus for protecting a computer system from computer viruses
CA2145854A1 (en) * 1992-11-30 1994-06-09 Alan J. Eisenberg A safety critical processor and processing method for a data processing system
US5581794A (en) * 1992-12-18 1996-12-03 Amdahl Corporation Apparatus for generating a channel time-out signal after 16.38 milliseconds

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5144659A (en) * 1989-04-19 1992-09-01 Richard P. Jones Computer file protection system
US5598531A (en) * 1991-05-13 1997-01-28 William Stanley Hill Method and apparatus for preventing "disease" damage in computer systems

Also Published As

Publication number Publication date
DE69832082D1 (de) 2005-12-01
ATE308171T1 (de) 2005-11-15
WO1998036517A1 (en) 1998-08-20
EP1013023B1 (en) 2005-10-26
KR20000071056A (ko) 2000-11-25
JP2001524229A (ja) 2001-11-27
EP1013023A4 (en) 2000-10-18
EP1013023A1 (en) 2000-06-28

Similar Documents

Publication Publication Date Title
KR100543268B1 (ko) 컴퓨터 시스템의 보안성을 향상시키는 보안용 코프로세서
US6311273B1 (en) Method and apparatus for enhancing computer system security
US6564326B2 (en) Method and apparatus for enhancing computer system security
CN103718165B (zh) Bios闪存攻击保护和通知
US5012514A (en) Hard drive security system
EP3522059B1 (en) Perform security action based on inventory comparison
US20070271461A1 (en) Method for managing operability of on-chip debug capability
US5802592A (en) System and method for protecting integrity of alterable ROM using digital signatures
EP2490146B1 (en) A secure processor
JP4855679B2 (ja) サーバ管理コプロセッササブシステム内部のtcpaによる信頼性の高いプラットフォームモジュール機能のカプセル化
JP5020911B2 (ja) 安全な環境を初期化する命令を実行するシステムおよび方法
US6874087B1 (en) Integrity checking an executable module and associated protected service provider module
CN109815698B (zh) 用于执行安全动作的方法和非暂时性机器可读存储介质
JPH11506856A (ja) コンピュータ・システムにおけるウィルス保護
US20080034350A1 (en) System and Method for Checking the Integrity of Computer Program Code
WO2004015553A1 (en) Computer architecture for executing a program in a secure of insecure mode
KR20130099257A (ko) 브리지 부팅을 지원하는 플랫폼
WO2011145199A1 (ja) 外部ブートデバイス、外部ブート方法、情報処理装置及びネットワーク通信システム
KR102395258B1 (ko) 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치
KR20090078551A (ko) 이동 저장 장치에서 호스트 인증 방법, 호스트 인증을 위한정보 제공 방법, 장치, 및 기록매체
CN114064130B (zh) 具有双重安全启动的自动驾驶系统
CN113419905A (zh) 一种实现可信验证的方法及装置和安全模块
CN114692160A (zh) 计算机安全可信启动的处理方法及装置
KR101013419B1 (ko) 시스템 보호 장치 및 방법
WO1993002419A1 (en) Protection system for computers

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee