KR970011216B1 - 정보 처리 시스템 - Google Patents
정보 처리 시스템 Download PDFInfo
- Publication number
- KR970011216B1 KR970011216B1 KR1019940016826A KR19940016826A KR970011216B1 KR 970011216 B1 KR970011216 B1 KR 970011216B1 KR 1019940016826 A KR1019940016826 A KR 1019940016826A KR 19940016826 A KR19940016826 A KR 19940016826A KR 970011216 B1 KR970011216 B1 KR 970011216B1
- Authority
- KR
- South Korea
- Prior art keywords
- register
- file
- address
- hibernation
- fdd
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Power Sources (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
없음.
Description
제1도는 본 발명에 따른 정보 처리 시스템의 일 예의 하드웨어 구성요소를 도시한 도면.
제2도는 상기 예의 하드웨어 구성요소를 도시한 도면.
제3도는 하이버네이션 화일(hibernation file)의 구조를 도시한 도면.
제4도는 OS 화일 시스템 또는 PM 코드에 의해서 액세스할 수 있는 드라이브의 예를 도시한 도면.
제5도는 POST 실행 단계를 도시한 플로우챠트.
제6도는 화일 작성 유틸리티(file preparation utility)의 동작 순서를 도시한 플로우챠트.
제7도는 하이버네이션/웨이크-업(wake-up)의 시퀀스(sequence)를 개략적으로 도시한 프로우챠트.
제8도는 상기 하이버네이션 화일의 세이브(save) 동작순서를 도시한 플로우챠트.
제9도는 하이 디스크상의 화일 할당 리스트(file allocation list)를 예시한 도면.
제10도는 변환후의 화일 할당 정보를 도시한 도면.
제11도는 상기 하이버네이션 화일로부터의 복원(restoration) 동작순서를 도시한 플로우챠트.
제12도는 하이버네이션 아이콘(icon)의 표시에 관계되는 동작 순서를 도시한 플로우챠트.
제13도는 상기 하이버네이션 아이콘을 포함하는 스크린을 예시한 도면.
제14도는 상기 하이버네이션 아이콘을 포함하는 스크린을 설명한 도면.
제15도는 상기 하이버네이션 아이콘의 디스클레이 동작을 상세히 도시한 플로우챠트.
제16도는 FDD 체인지 라인 애뮬레이션(change line emulation)에 관계되는 하드웨어 요소를 도시한 도면.
제17도는 상기 FDD 체인지 라인 애뮬레이션의 제1방법에 포함되는 스텝을 도시한 플로우챠트.
제18도는 상기 제1방법에서 I/O 엑세스의 트랩(trap)을 설명한 도면.
제19도는 BIOS/드라이버에서 트랩과 코드의 관계를 도시한 도면.
제20도는 상기 FDD 체인지 라인 애뮬레이션의 제2방법을 실현하기 위한 하드웨어 요소를 도시한 도면.
제21도는 상기 제2방법에 포함되는 스텝을 도시한 플로우챠트.
제22도는 상기 제2방법에 관계되는 신호의 파형도.
* 도면의 주요부분에 대한 부호의 설명
1,2,3,4,5 : 파티션10 : 메인 CPU
11 : 메모리 경로12 : 메인 메모리
13 : PM 메모리14 : 어드레스 데이타 버스
16 : 트랩 로직18 : DMAC
20 : PIC22 : PIT
24 : 직렬포트26 : 병렬포트
28 : RTC30 : CMOS
32 : ROM34 : 직렬포트버퍼
36 : 예비 밧데리38 : KMC
40 : 서브 CPU42 : 마우스
44 : KB46 : 리드
48 : 메인 밧데리50,118,120 : 신호라인
52 : 시스템 인터럽터 라인54 : 파워 컨트롤 레지스터
56 : VGA 칩58 : VRAM
60 : LCDC62 : LCD 패널
64 : DAC66 : CRT
68 : 하드 디스크장치70 : FDC
72 : FDD74 : DC/DC 컨버터
76,78,80,81 : FET82 : 파워 스위치
90 : 체인지 라인 상태 레지스터92 : 체인지 라인
94 : FD96 : 트랩 레지스터
101,102,103 : 아이콘104,105 : 아이콘 프레임
106,107 : 내측영역108 : 배경
110 : I/O 포트112 : 레지스터
114 : 어드레스 디코더116 : OR 게이트
본 발명은 저소비 전력으로 동작하는 정보 처리 시스템에 관한 것으로, 특히, 노트북 컴퓨터(notebook computer)와 같은 휴대형 정보 처리 시스템에 관한 것이다.
최근의 기술혁신에 따라서, 소형, 경량의 포터블(portable) 컴퓨터가 주류를 이루고 있는데 이 같은 포터블 컴퓨터를 옥외에서 사용하는 경우, 일반적으로 밧데리로 전력을 공급하고 있다. 그러나, 포터블 컴퓨터에 장착되는 밧데리는 소형의 것으로 제한되어 있기 때문에, 1회의 충전으로 퍼스컴(personal computer)이 동작 가능한 시간은 짧다. 이 때문에, 많은 포터블 컴퓨터의 소비전력을 줄이기 위해 다양한 연구가 실시되어 왔다.
중단(suspend)/재개(resume) 기능은 이러한 연구의 하나이다. 이들 기능에 있어서는, 일정 시간동안 I/O장치의 활동이 검출되지 않는 등의 상태가 발생하면, 컴퓨터는 중단모드로 들어간다. 중단모드에서는 모든 태스크(task)가 정지되고, 차후의 재개에 필요한 데이타가 메인 메모리에 저장된다. 중단모드에서, 메인 메모리 및 비디오 메모리(VRAM)는 전력 공급이 행해지나, CPU 등에 전력 공급은 정지된다. 그러나, 포터블 컴퓨터에 있어서, 중단/재개기능의 지원만으로 중단모드를 오래 지속하는 경우에는 밧데리 전력이 소비되어, 그 결과 메모리나 VRAM의 내용이 지워지는 문제점이 있었다.
그래서, 캠펙사(compaq company)의 LTE lite/25(컴펙 및 LTE는 컴펙 컴퓨터 코퍼레이션의 상표이다)와 같이, 하이버네이션 모드로 지원되는 포터블 컴퓨터가 사용되어 왔다. 하이버네이션 모드가 인에이블(enable)되면, 컴퓨터는 로우 밧데리(low battery) 상태로 된다. 중단모드가 일정시간 동안 지속하는 등의 상태가 발생할 때, 시스템은 차후 태스크(task)를 재개하는데 필요한 모든 데이타를 하드 디스크에 저장한 후에, 하이버네이션 모드로 들어간다. 하이버네이션 모드에서는 메모리 및 VRAM을 포함하는 시스템 전체의 파워가 오프(off)된다. 이후에 사용자가 시스템의 파워를 온(on)하면, 하드 디스크에 저장되어 있던 데이타는 메모리나 VRAM에 복원되고, 중단되었던 태스크가 자동적으로 재개된다. 파워 온에 수반되는 일련의 동작은 웨이크-업(wake-up)이라고도 한다.
종래의 정보 처리 시스템에서는, 프로피 디스크 컨트롤러(FDC) 및 플로피 디스크 드라이브(FDD)가 파워 오프되는 중단(suspend) 또는 하이버네이션 모드(hibernation mode) 동안에 플로피 디스크가 교환된 경우, 재개 또는 웨이크-업하여 FDD를 파워 온하면 FDD가 이전 플로피 디스크의 화일 할당 정보를 이용하여 새로운 플로피 디스크로 엑세스함으로써 데이타가 파괴된다는 문제점이 있었다.
본 발명은 상기외 같은 문제점을 감안한 것으로, FDC 및 FDD로의 전력공급이 정지되는 저소비 전력모드(low-consumption mode)동안에 플로피 디스크가 교환됨으로써 발생하는 데이타의 파괴를 방지하는 것을 목적으로 한다.
상기 목적을 달성하기 위해, 본 발명은 CPU, 메인 메모리, 플로피 디스크 컨트롤러(FDC) 및 플로피 디스크 드라이브(FDD)를 구비하되, 상기 FDC와 상기 FDD 사이에는 상기 플로피 디스크 드라이브에 대한 플로피 디스크의 착탈을 모니터하기 위한 것으로서 소정의 시간에서 상태가 변화하는 체인지 라인(change line)을 마련하여, 그 체인지 라인의 상태를 상기 플로피 디스크 컨트롤러중의 상태 레지스터(status register)의 플래그(flag)값에 반영시키고, 그 플래그 상태를 이용하여, 상기 플로피 디스크 컨트롤러를 통해 상기 메인 메모리에 저장되어 있는 화일 할당 정보(file allocation information)의 유효성을 판단하는 정보 처리 시스템이 있어서, (a) 소정의 제1상태가 발생했을 때, 상기 플로피 디스크 컨트롤러 및 상기 플로피 디스크 디라이브로의 전력공급을 정지하여, 저소비 전력 모드로 들어가기 위한 수단과, (b) 소정의 제2상태가 발생했을 때, 상기 플로피 디스크 컨트롤러 및 상기 플로피 디스크 드라이브로의 전력공급을 행하는 통상 동작 모드(normal operation mode)로 들어가기 위한 수단과, (c) 상기 저소비 전력 모드로부터 상기 통상 동작 모드로의 전환 후, 상기 레지스터로의 최초의 엑세스가 있었을 때, 상기 플래그의 상태를 페이크(fake)하기 위한 수단을 구비하는 것을 특징으로 한다.
상기 수단(c)은 : 내장 레지스터에 세트된 I/O 어드레스로의 엑세스를 모니터하기 위한 트랩 로직(trap logic)과; 상기 통상 동작 모드로 복귀하기 위한 일련의 처리 과정에서, 상기 트랩 로직의 레지스터에 상기 상태 레지스터를 나타내는 I/O 어드레스를 세트하기 위한 수단과; 상기 통상 동작 모드로의 복귀시, 상기 상태 레지스터로의 최초의 엑세스가 상기 트랩 로직에 의해서 트랩될 때, 상기 플래그 값을 고쳐쓰는 수단과; 상기 상태 레지스터로의 2회째 이후의 엑세스가 트랩되지 않도록 상기 트랩 로직 레지스터를 클리어하는 수단을 포함할 수도 있다.
또한, 상기 수단(c)은 : 특정한 I/O 어드레스가 할당된 레지스터와; 한 개의 입력단자는 상기 체인지 라인과 연결되고, 다른 입력단자는 상기 특정한 I/O 어드레스가 할당된 레지스터의 특정한 비트와 결합되며, 출력은 상기 상태 플래그와 공급되는 논리 게이트 수단과, 상기 통상 동작 모드로 복귀하기 위한 일련의 처리 과정에서, 상기 화일 할당 정보가 무효인 것을 나타내는 값이 상기 플래그에 세트되도록 상기 특정한 I/O 어드레스의 레지스터에 값을 세트하는 수단과, 상기 상태 레지스터로의 엑세스에 응답하여 상기 특정한 I/O 어드레스의 레지스터를 클리어(clear)하는 수단을 포함할 수도 있다.
A. 시스템 전체의 구성
제1도는 간략화된 형태로서 본 발명은 구체화한 노트북형 컴퓨터(이하, 시스템으로 한다)의 하드웨어 구성요소를 도시하고 있다.
(10)은 메인 CPU로서, 실시예에서는 메모리 컨트롤러(memory controller)가 내장되어 있는 인텔사의 80486SL을 이용하고 있다. CPU(10)는 메모리 경로(memory path)(11)를 경유헤서 메인 메모리(12) 및 PM 메모리(13)과 연락하고 있다. 메인 메모리(12)에는 BIOS, 드라이버, OS 및 애플리케이션(application)이 로드된다. 한편, PM 메모리(13)에는 하이버네이션을 포함하는 파워 메니지먼트(power managemant)를 수행하는 PM 코드(PMC) 및 그이_ 작업 데이타가 저장된다. PM 메모리는, 또한, PMC가 저장된 영역과 작업 데이타가 저장된 영역으로 나누어진다. PMC는 POR(파워 온/리셋)때에 ROM으로부터 로드된다.
서로 다른 칩(chip)을 PM 메모리와 메인 메모리에 할당하는 것, 예를 들면, PM 메모리에는 SRAM 칩을 사용하고, 메인 메모리에는 DRAM 칩을 사용하는 것도 가능하지만, 실시예에서는 80486SL의 아키텍춰(architecture)를 이용해서, 각 DRAM 칩의 특정영역을 메인 메모리(12)와, PM 메모리(13)에 할당한다.
PMC는 메인 메모리(12)와 PM 메모리(13)의 양쪽에 엑세스할 수 있다. 한편, OS나 드라이버(driver)는 PM 메모리(13)를 엑세스할 수 없다. 메인 CPU(10)가 메인 메모리(12)나 PM 메모리(13)중의 어느쪽과 통신하는가는 메모리 콘트롤러에 의해서 제어된다.
CPU(10)는 어드레스/데이타 버스(14)를 경유해서 트랩 로직(trap logic)(16), DMAC(direct memory access controller)(18), PIC(programmable interruption controller)(20), PIT(programmablel interval timer)(22), 직렬 포트(serial port)(24), 병렬 포트(parallel port)(26), RTC(real time clock)(28), CMOS(30), ROM(32)과 결하되고 있다.
트랩 로직(16)의 출력단자와 CPU(10)의 특정 핀(pin)은 시스템 인터럽터 라인(52)에 의해서 접속되어 있다. 트랩 로직(16)은 버스(14)를 항상 모니터하고 있고, 내장 레지스터에 세트된 어드레스의 엑세스를 검출할 때 시스템 인터럽터 라인(52)을 엑티브로 하며, 또한, 외부 입력단자에 입력된 신호(50)가 엑티브되었을 때에도 시스템 인터럽터 라인(52)을 엑티브로 한다.
실시예에 있어서, 인텔사의 I/O 칩 세트 82360SL을 이용하고 있다. 이것은 트랩 로직(16), DMAC(18), PIC(20), PIT(22), 직렬 포트(24), RTC(28) 및 CMOS(30)를 집약한 것이다.
82360SL에 있어서, 시스템 인터럽터 라인은 SMI(system management interruption)라고 불리고 있다. SMI가 발생하면 메모리 콘트롤러는 CPU(10)와 PM 메모리(13)과의 통신을 가능케 하여, SMI 핸들러(handler)인 PMC의 실행이 개시되게 한다. SMI 핸들러(PMC)는 SMI의 원인을 찾아내고, 그의 원인에 따라서 처리 루틴으로 점프한다.
직렬 포트(24)는 직렬 포트 버퍼(34)를 경유해서 하나 이상의 I/O 디바이스와 접속된다. 이들 I/O 디바이스에 대해서는, 포트(24)에 할당한 I/O 공간의 베이스 어드레스(base address)를 임의로 설정할 수 있다.(예를 들면, 3F8(H) 또는, 2F8(H)로)
RTC(28)와 COMS(30)는 한 개의 칩으로 장착되어 있다. 상기 칩에는 시스템의 파워가 오프일 때, 예비 밧데리(reserve battery)(36)로부터 파워가 공급된다. 예비 밧데리(36)는 코인 밧데리(coin battery)이어도 좋다.
ROM(32)에는 BIOS 코드와 PM 코드가 저장되어 있다. 시스템의 POR때에 수행되는 POST(power-on-self-test)에 의해서 PMC는 ROM(32)으로부터 PM 메모리(13)에 로드된다.
CPU(10)는 KMC(kcyboard/mouse controller)(38)를 경유해서 마우스(42) 및 키보드(kb)(44)로부터 신호를 수신한다. 본 실시예에서는 키보드(44)의 메트릭스를 모니터하는 프로세서(sub-CPU(40))가 파워 메니지먼트 기능의 일부를 담당하고 있다. 서브 CPU(40)는 키보드(44)의 메트릭스, 리드(46), 메인 밧데리(48)를 모니터해서, 이들 디바이스에 소정의 상태가 발생(예를 들면, 핫 키(hot key)가 눌려졌거나, 리드가 닫혀졌거나, 메인 밧데리(48)가 로우 밧데리(low batter)상태)된 것을 검출하면, 신호 라인(50)을 엑티브로 한다. 서브 CPU(40)는 버스(41)를 경유해서 버스(14)와 결합되어 있고, 버스(41)를 통해서 메인 CPU(10)와 하이버네이션을 포함하는 파워 메니지먼트에 관한 명령 및 데이타를 주고 받는다.
서브 CPU(40)는 각 디바이스가 파워 오프되거나, 혹은 시스템 전체가 파워 오프될 것을 지시하기 위한 신호를 파워 컨트롤 레지스터(54)에 출력하는데, 이후에 제2도를 참조하면서 상세히 설명한다.
CPU(10)는 버스(14)를 경유해서 AGA 칩(56)과 연결되어 있다. VGA 칩(56)은 디스플레이 컨트롤러로서, VRAM(58)의 내용에 따라서 정보가 표시되도록 LCDC(LCD controller)(60)를 통해서 LCD 페널(panel)(62)을 제어한다. 혹은, CRT 패널(66)과 DAC(digital analog converter)(64)를 포함하는 디스플레이 유니트를 시스템에 옵션으로서 장착할 수 있지만, 이 경우에도 CRT(66)상의 정보의 표시는 VGA 칩(56)이 제어한다.
시스템에는 외부기억장치로서 하드 디스크장치(68)와 FDC(floopy disk controller)(70)/FDD(floppy disk drive)(72)가 장착되어 있다. 하드 디스크장치(68)는 그의 개념상 하드 디스크 드라이브 및 이것에 탑재된 하드 디스크를 포함하는데, 이하에서는 하드 디스크 드라이브라고도 한다. 하이버네이션 모드로 들어 갈때에 데이타가 저장되는 화일(하이버네이션 화일)은 하드 화일에 만들어진다. 본 발명에 따르면 하드 화일을 제거했을 때에도 하이버네이션/웨이크-업 기능을 지원할 수가 있다.
이상의 하드웨어 요소외에도, 실제로는 많은 I/F(interface)가 존재(예를 들면, 하드 화일(68)과 버스(14)의 사이에는 버스 트랜시버(bus transceiver)하는데)할지라도, 이들은 당업자에게는 주지의 사항이므로, 설명을 간략히 할 목적으로 도시하지 않았다.
다음, 제2도를 참조해서 파워 온/오프 메카니즘(power on/off mechanism)을 설명한다. 메인 밧데리의 출력은 DC/DC 컨버터(74)을 경유해서 시스템 전체를 일시에 파워 오프할 수 있는 FET 스위치(76)에 입력된다. FET(76)의 출력은 메인 메모리와 VRAM에 직접 공급된다. 한편, LCD 벡라이트(LCD back-light)용 파워 입력단자에 대해서는 FET 스위치(80)을 경유해서, 직렬 포트(24)에 직결되어 있는 내장 모뎀에 대해서는 FET 스위치(81)를 경우해서, 메인 CPU(10) 및 그밖의 주변장치에 대해서는 FET 스위치(78)를 경유해서, 각각의 FET(76)의 출력이 공급된다.
이들 FET 스위치 각각은 파워 컨트롤 레지스터(54)에 대응하는 비트 셀 (bit cell)과 전기적으로 접속되어 있다. 따라서, 서브 CPU(40)가 레지스터(54)에 세트하는 값에 따라서 FET(76),(78),(80),(81)의 온/오프가 제어된다. 하이버네이션 모드에 들어갈 때에는, PMC의 지시를 받아 서브 CPU(40)가 FET(76)를 오프로 하기 위한 값을 대응하는 비트에 세트하여, 메인 메모리와 VRAM을 포함하는 시스템 전체의 파워를 오프로 한다. 중단 모드에 들어갈 때에는, PMC의 지시를 받아, 서브 CPU(40)가 FET(76)를 온으로 하고, FET(78),(80),(81)를 오프로 하기 위한 값을 레지스터(54)에 세트해서, 메인 메모리와 VRAM을 제외한 시스템의 파워를 오프로 한다.
파워 컨트롤 레지스터(54)의 클리어 단자(clear terminal)와 시스템의 파워 스위치(82)는 전기적으로 접속되어 있다. 따라서, 사용자가 시스템의 파워 스위치를 온으로 할 때에 발생하는 신호에 따라서, 레지스터(54)의 값은 리셋되고, 모든 FET 스위치가 온으로 되어 시스템 전체에 파워가 공급된다.
B. 하이버네이션 화일의 구조
제3도에 도시한 바와 같이, 본 실시예에서는 하이버네이션을 실현하기 위해서, 제어장보 블록(A), 화일 할당 정보 블록(B), PM메모리 안의 작업데이타 블록(C), VRAM의 내용 블록(D) 및 메인 메모리의 내용 블록(E)을 위한 장소를 하드 디스크상에 확보한다. 제어정보는 이후에 상술하는 시스템 구성 정보나 블록(B)~(D) 각각의 스타트 어드레스(start address) 등과 같이, 파워 온 직후에 필요로 하는 정보이다. 작업 데이타(work data)는 하이버네이션에 필요한 그밖의 데이타로서, 예를 들면, 하드 웨어 콘택스트 정보(hard ware context information)(후술함)나 각종 제어 플래그(flag)이다. 제어 플래그의 일예는 하이버네이션 모드에 들어 갈 때나 나올 때에 부져를 울릴 것인지의 여부를 선택하기 위해, 사용자에 의해서 그 값이 변경 가능한 플래그이다.
블록(A)~(E)는 물리적으로 한개의 연속적인 영역이어도 좋다. 그러나, 적어도 블록(A)은 디스크상의 고정된 장소에 존재할 필요가 있다. 그래서, 본 실시예에서는 블록(A)만은 하드 디스크의 가장 내측의 CE 실린더(예약(reserve)되나 사용자가 엑세스할 수 없는 실린더)의 선두에 배치한다. 요점은 장소가 고정되어 있으면 좋다는 것으로, 제어정보를 CE 실린더의 중간 섹타에 저장하는 것도 가능하다.
색션 C에서 상세히 설명한 바와 같이, 블록(B)~(E)는, OS의 화일 시스템을 사용하여 하드 디스크의 유저 파티션(user partition)에, 사용자 화일과 같은 차원으로, 한개의 화일 장소로 확보하기 위한 장소이다. 이 화일의 이름은 예약되는데 본 실시예에서는 PM_HIBER.BIN로 한다. 블록(B)~(E)의 길이는 가변적이다. 하이버네이션 화일에 실제로 데이타가 저장되는 시점에서, 블록(C)~(E)의 스타트 어드레스가 결정된다. 통상, 블록(B)~(E)를 구성하는 섹타는 물리적으로 하드 디스크상에 간헐적으로 존재한다. 섹타의 접속 정보는 하드 디스크상의 화일 할당 정보여역(OS가 DOS인 경우는 FAT)에 리스트 형태로 기록된다. 색션 D에서 상세히 설명한 바와 같이, PMC는 PM_HIBER.BIN을 구성하는 섹타의 접속정보를 독자적인 할당 정보로 변환해서 블록(B)에 저장한다.
C. 하이버네이션 화일의 생성
제4도 및 제6도를 참조해서 본 발명에 따른 하이버네이션 화일의 작성을 설명한다.
본 발명에 있어서, OS 화일 시스템을 이용하여 하드 화일 등의 블록 디바이스에 하이버네이션 화일을 마련한다. 이를 위해, 화일 작성 유틸리티(예를 들면, 실행가능 프로그램(EXE file))를 준비해서, 하이버네이션 화일을 작성한다. 그러나, 블록 디바이스가 다수 존재할 때, 반드시 PMC가 모든 디바이스에 직접 (OS관 리하의 드라이버/BIOS를 경유하지 않고) 엑세스 가능하다고는 할 수 없다. 왜냐하면, 유틸리티로부터는 이론적으로 동일 드라이브로 보여도, I/F(hardware)가 적당하지 않는 등의 이유로, PMC가 직접 엑세스할 수 없는 경우가 있기 때문이다.
제4도의 예에 있어서, OS 화일 시스템은 제거가능한 디스크(removable disk)(광 디스크, SSF(solid state file), SRAM 카드등), 네트워크 드라이브(remote file), RAM 디스크, 압축 파티션, SCSI 드라이브인 하드 화일(1) 및 IDE 드라이브인 하드 화일(2)의 파티션(1),(2),(3)에 대해서 엑세스가 가능하고, 이들은 유틸리티에 있어서 동일한 로직 드라이브이다.
이들 드라이브에 대해서 설명하면, 우선, 네트워크 드라이브는 네트워크를 경유해서 접속된 다른 시스템의 드라이브이다. PMC는 하이버네이션/웨이크-업을 위한 데이타 전송을 위해 엑세스할 수 없다. RAM 디스크는 가상적인 드라이브이고, PMC가 엑세스할 수 있는 I/F는 준비되지 않는다(기본적으로 RAM 디스크는 휘발성이기 때문에, 하이버네이션 모드 동안 데이타를 유지할 수가 없다).
압축 파티션은 압축된 데이타를 저장하는 드라이브로서, 특별한 알고리즘을 갖는 대응하는 드라이브가 그 드라이브에 기록될 데이타를 압축하거나 판독될 데이타를 신장한다. PMC는 상기 압축/신장 알고리즘을 이용할 수가 없다. 왜냐하면, 상기 압축 파티션에 대응하는 드라이브는 OS 관리하에서 동작하기 때문이다. 따라서, 압축 파티션은 하이버네이션 화일 작성에 부적당하다. 또한, PMC가 직접 엑세스할 수 있는 하드 화일용 I/F로서 IDE 드라이브만 준비되어 있으면, PMC는 하드 화일 1일 엑세스할 수 없다.
하드 화일 2에 만들어진 파티션(4)은 히든(hidden) 파티션이다. 파티션(5)은 OS에서 지원되지 않는 포맷의 드라이브이다. 예를 들면, OS가 DOS일 때, OS/2의 HPFS 포맷은 지원되지 않는다(OS/2는 Internationa1 Business Machines Inc.의 상표이다). 이들 파티션(4),(5)은 PMC에 있어서 엑세스가 가능할지라도, OS 화일 시스템에 있어서는 엑세스가 불가능하다.
이들 드라이브 중에는 유틸리티가 OS 화일 시스템을 조회할 때에, 하이버네이션 화일작성에 부적당한 것으로 판단되는 것도 있다. 제4도의 예에서, 네트워크 드라이브(network drive)는 그러한 것이다. 그러나, 유틸리티에 있어서, 그밖의 드라이브에 대한 PMC의 엑세스 가능성은 불명확하다.
드라이브에 할당되는 드라이브 문자(drive letter)로, 유틸리티가 하이버네이션 화일작성 드라이브를 지정하는 것을 생각할 수 있다. 그러나, 드라이브 문자는 드라이브를 지원하는 드라이브가 설치(install)되는 순서에 따라서 다르다. 또한, 부트(boot)가능한 드라이브가 복수인 경우에 할당되어진 드라이브 문자는 부트하는 드라이브가 어떤 것인가에 의해서 달라진다. 따라서, 유틸리티가 드라이브 문자를 사용해서 고정적으로 드라이브를 지정할 수 없다. 한편, PMC도 드라이브와 드라이브 문자(drive letter)의 대응관계를 알 수 없다.
본 발명은 PMC가 억세스 가능하고, 유틸리티가 하이버네이션 화일을 작성하는데 알맞은 드라이브를 다음과 같이 판별한다.
우선, 제5도를 참조해서 POR시에 수행되는 시스템 동작을 설명한다. 파워 스위치가 온(on)되거나 혹은 시스템이 리셋되면, POST 프로그램이 실행된다(스텝 502), POST가 PMC를 PM 메모리에 로드하는 것을 끝내면, 일시적으로 PMC가 실행되고, PMC가 엑세스 가능한 드라이브의 각각에서 하이버네이션 화일(PM_HIBER.BIN)을 탐색한다(스텝 503). 탐색이 끝나면, 재차 POST가 실행되고, 남은 처리를 수행한 후, 노멀 부트(normal boot) 혹은 웨이크-업을 위한 부트순서로 들어간다(스텝 504, 505).
또한, 제6도를 참조해서 하이버네이션 화일작성 유틸리티가 실행되는 스텝을 서술한다. 사용자가 코멘트(command)를 입력하거나 그래피컬 유저 인터페이스(graphical user interface)를 경유해서 지시를 부여함에 따라서 하이버네이션 화일이 인에이블되면, 화일 작성 유틸리티의 실행이 개시된다(스텝 601). 스텝(602)에서 유틸리티는 BIOS를 호출(call)해서 하이버네이션 화일에 필요한 사이즈(메인 메모리, PM 메모리의 작업 데이타 영역 및 VRAM의 사이즈의 합계)를 알아낸다.
스텝(603)에서는, PMC에 대해 필요한 사이즈 이상의 사이즈를 갖는 하이버네이션 화일(PM_HIBER.BIN)이 스텝(503)에서의 탐색에 의해 발견되었는가를 묻는다. 이같은 화일이 존재하면, 데이타를 저장하는데 이들 화일을 사용하면 좋으므로 이후의 스텝을 중단한다.
PMC의 응답이 부정적인 경우에는, OS 화일 시스템을 조회함으로써 네트워크 드라이브와 같이 부적당한 것으로서 판명되는 드라이브를 제외하고는, 유틸리티가 엑세스 가능한 드라이브 각각에 대해서 이후의 스텝을 실행한다.
우선, 선택한 드라이브의 사이즈가 상기한 필요사이즈 이상인지 아닌지를 판단한다(스텝 606). 판단 결과가 긍정적이면 OS 화일 시스템을 사용하여 상기 선택된 드라이브에 예약된 이름을 갖는 작은 화일을 일시적으로 작성하고, 일시화일이 만들어졌다는 사실을 PMC에 알린다(스텝 607). 일시화일의 이름은 PM_HIBER.BIN이어도 좋고, 그 외의 이름이어도 좋다. 또한, 만들 화일의 사이즈는 0이어도 좋다.
유틸리티로부터 상기한 사실을 알게된 PMC는 즉시 상기 일시화일의 판독을 시도해 보고, 성공한 경우에는 유틸리티에 컨퍼메이션(confirmation)을 보낸다. PMC로부터 컨퍼메이션을 받은 경우, 상기 드라이브는 PMC가 엑세스할 수 있고, 또한 사이즈적으로도 충분하다. 따라서, 유틸리티는 우선 상기 일시화일을 삭제한다. 그런 후, 상기 필요사이즈와 동일 사이즈를 갖고, 이름이 PM_HIBER.BIN인 하이버네이션 화일을 OS 화일 시스템을 이용해서 상기 드라이브에 작성한다(스텝 609).
PMC로부터 컨퍼메이션을 받지 않은 경우에는, 일시화일을 삭제하고(스텝 611), 그다음, 선택된 드라이브에 대해서 스텝(606), (607), (608)을 반복한다. 드라이브 사이즈가 불충분한 경우에는, 스텝(607), (608), (611)을 스킵(skip)한다. 어느 드라이브에 대해서도 PMC로부터 컨퍼메이션을 받을 수 없는 경우에는, 하이버네이션이 실행불가능하다는 것을, 부저를 울리거나 메시지를 디스플레이하는 등의 수단에 의해 사용자에게 알리고, 일련의 동작을 끝낸다(스텝 614).
이상의 예에서는, 하이버네이션 화일을 작성하는데 적당한 드라이브가 발견되면, 즉시 상기 드라이브에 하이버네이션 화일을 작성했다. 이것의 변형된 예로서, 모든 논리드라이브에 대해서 하이버네이션 화일작성이 적합한지 아닌지를 채크한 후, 사용자에게 적당한 드라이브를 제시하도록 해도 좋다. 이 경우에는, 사용자에게 제시된 드라이브를 선택하도록 프롬프트해서, 사용자가 선택한 드라이브에 하이버네이션 화일을 작성한다.
D. 저장/복원 시퀀스의 개요
제7도를 참조해서 하이버네이션 모드에 들어갈 때와 나올 때의 저장/복원 시퀀스의 개요를 설명한다. 도시한 스텝(701)에서 (708)까지의 처리 및 스텝(713)에서 (719)까지의 처리는 PM 메모리의 PMC를 메인 CPU가 실행하는 것에 따라서 수행된다.
우선, 저장 시퀀스에 대해서 서술한다. 제1도에 도시한 바와 같이, 서브 CPU에 의해서 소정의 상태 발생(예를 들면, 핫키(hot key)가 눌려졌거나 로우 밧데리 상태로 된 것)이 검출되면, 드라이브 로직(16)로부터 메인 CPU(10)에 시스템 인터럽트 신호가 보내진다. 이것을 트리거(trigger)로 해서 현재 실행중인 텍스트는 중단되고, 시스템 동작 지배권은 OS 또는 애프리케이션에서 PMC(trap handler)로 옮겨진다.
PMC는 시스템 인터럽트의 원인을 분석해서, 신호라인(50)을 통해서 전달된 외부현상이 원인이라고 판단한 경우, 하이버네이션 모드에 들어가기 위해 가장 동작실행 루틴으로 점프한다.
우선 PMC는 I/O 디바이스의 엑티비티(activity)의 유무를 체크한다(스텝 701). 엑티비티가 존재할 때(예를 들면, DMA가 실행되고 있을 때)에는, 소정시간(예를 들면, 10msec)의 경과 후, 재차 엑티비티의 체크를 반복해서, I/O 엑티비티가 검출되지 않을 때까지 기다린다.
I/O 엑티비티가 검출되지 않을 때, PMC는 먼저 하드웨어 콘텍스트 정보를 PM 메모리에 세이브한 다음에, 하드웨어 콘텍스트 정보를 포함하는 작업데이타 전체를 PM 메모리에서 하드 디스크장치로 세이브 한다(스텝 702). 하드웨어 콘텍스트 정보의 대표적인 것은 CPU, 인터럽트 컨트롤러, DMA 컨트롤러, 비디오 컨트롤러 등의 각 칩의 레지스터값이나 타이머의 카운트 값이다.
스텝(703)에서, PMC는 VRAM의 오리지날 데이타를 하드 디스크 장치에 전송한다. 이때 VRAM의 데이타를 압축한 다음 하드 디스크에 저장해도 좋다. 스텝(704)에서는, 하이버네이션을 위한 세이브 동작중인 것을 나타내는 아이콘 이미지를 VRAM에 기록해서 디스플레이 장치에 표시한다.
아이콘을 표시하고 있는 사이에 PMC는 메인 메모리의 오리지날 데이타를 압축한 다음 하드 디스크에 전송한다. 이때, 메인 메모리의 데이타를 압축하여 하드 디스크에 저장해도 좋다. 스텝(706)에서는, 시스템 구성정보를 CMOS로부터 하드디스크장치에 저장한다. 시스템 구성 정보의 대표적 예는 시스템(포터블 컴퓨터)본체에 접속되어 있는 오리지날 디바이스의 형태 및 개수 그리고 메인 메모리의 사이즈이다.
스텝(707)에서, PMC는 이상의 시퀀스가 경과된 것을 나타내는 하이버네이션 기호(hibernation signature)를 세트한다. 하이버네이션 기호는 2바이트의 정보이고, 제3도의 A영역에 저장되는 제어정보의 한가지 종목이다.
마지막으로 PMC는 서브 CPU에 콘멘트를 보내고, 시스템의 파워를 오프로 한다.
다음, 복원 시퀀스를 설명한다. 시스템의 파워가 온되면, 메인 CPU는 ROM에 저장되어 있는 POST(power on self test) 프로그램을 실행한다(스텝 712). POST는 다음 동작을 실행한다.
(i) 파워 오프중에 메모리가 증가되었거나 혹은 FDD의 수가 변경되어 시스템 구성이 변경된 경우에는, POST가 이것을 검출해서 직접적으로, 혹은 셋업(set-up) 프로그램을 사용하여 간접적으로 CMOS의 시스템 구성 정보를 다시 쓴다.
(ii) FDD에 관련되는 동작으로서, FDD/FDC가 정상으로 동작하는가, 하이버네이션 웨이크-업보다도 우선해서 FDD로부터 부트할 필요가 있는가, FDD가 제거되고 다른 디스크나 유니트가 장착되어 있지 않는가 등의 체크를 행한다.
(iii) PMC를 ROM에서 PM 메모리로 전송한다.
(iv) 하이버네이션 기호의 체크를 행한다.
FDD에서 부트할 필요가 있는 경우나 스텝(701)∼(708)을 경유하지 않고 파워 오프되는 경우에는, 시스템 동작 지배권을 PMC로 옮기지 않고, 노멀 부트(normal boot)를 위한 수순으로 들어간다. FDD/FDC가 정상으로 동작하지 않는 등의 하드웨어 에러가 검출될 때 시스템은 정지한다.
이와 같이, 본 발명에 있어서는, 하이버네이션 시퀀스를 경유했는지 하지 않았는지의 이력정보를 하드 디스크장치에만 남기고, 시스템의 다른 요소에는 남기지 않는다. POR시에, POST는 하드 디스크장치의 이력정보에 따라서 하이버네이션 웨이크-업인지 노멀 부트인지를 판단한다. 따라서, 제거가능한 하드 디스크장치를 운반해서, 저장동작을 수행하는 머신(machine)과 동일한 기능을 갖춘 다른 머신으로 태스크를 재개할 수 있다. 즉 동결된 시스템 환경을 자유로이 이동시킬 수 있다.
하이버네이션 기호, 즉 하이버네이션 콘텍스트의 존재가 확인되면, 시스템의 지배권은 POST에서 PMC로 이동한다. 우선, PMC는 하드 디스크와 CMOS의 시스템 구성 정보를 비교한다(스텝 713). 불일치가 검출될 때에는 아이콘 등에 의해 에러 메시지를 나타내고, 사용자에게 현재의 하이버네이션 기호를 무효로 하든지, 혹은 파워를 오프해서 변경전의 시스템 구성을 복원하든지의 어느것을 선택하도록 프롬프트한다(스텝 714). 또한, 시스템 구성의 복원을 프롬프트할 때에는 변경전의 시스템 구성을 제시해서 사용자를 안내해도 좋다.
하드 디스크장치가 제거가능한 것일 때에는, 하드 디스크에 데이타를 세이브한 때의 환경(제1환경)과 웨이크-업 때의 환경(제2환경)이 다를 가능성이 높다. 예를 들면, 제2환경쪽이 메인 메모리의 사이즈가 작다. 또한, 제1환경에서는 I/O 디바이스의 베이스 어드레스가 특정한 값일 것을 요구하는 애프리케이션이 실행되었지만, 제2환경에서는 상기 특정한 값이 아닌 것이 있다. 또한, 제1환경에서는 플로피 디스크장치를 엑세스하는 애프리케이션을 시행하였지만, 제2환경에서는 플로피 디스크 드라이브가 1대도 없는 것도 있다. 이상과 같은 경우에는, 웨이크-업 자체가 불가능하거나 재개된 태스크에 의해서 데이타가 파괴되는 등의 문제점이 발생한다. 따라서, 시스템 구성을 체크하는 기능은 중요하다.
웨이크-업 기능이 가능한 환경이 확인되었을 때, PMC는 복원(웨이크-업)중인 것을 나타내는 아이콘 이미지를 VRAM에 기록해서, 디스플레이 장치에 표시한다(스텝 715). 하이버네이션 아이콘을 표시하고 있는 사이에, PMC는 메인 메모리이 오리지날 데이타를 하드 디스크로부터 복원한다(스텝 716). 그후, 아이콘을 지우고, VRAM의 오리지날 데이타를 하드 디스크로부터 복원한다(스텝 717). 스텝(718)에서는 하드웨어 콘텍스트 정보를 포함하는 작업데이타를 PM 메모리에 복원하고, 하드웨어 콘텍스트 정보를 또한 I/O 디바이스나 CPU 레지스터 등의 어드레스에 복원한다. 마지막으로, PMC는 FDD 체인지 라인 애뮬레이션을 위한 셋팅을 행한다(스텝 719). 이상의 시퀀스 후, 시스템의 지배권은 OS 혹은 애프리케이션으로 이동하고, 중단시점에서 태스크의 실행을 재개한다.
E. 하이버네이션 화일의 세이브/복원 동작의 상세
제8도를 참조해서 하이버네이션 화일(PM_HIBER.BIN)로의 데이타의 세이브 동작(제7도의 스텝(702), (703), (705), (706), (707))을 보다 구체적으로 설명한다.
우선, PMC는 하드웨어 콘텍스트 정보를 메모리의 PMC영역에 저장한다(스텝 801). 이와 같이, 처음에 하드웨어 콘텍스트 정보를 세이브해 두면, 이후에 세이브 동작을 쉽게하기 위해 하드웨어 콘텍스트를 변경할 수 있다.
스텝(802)에서는 하드 디스크의 MBR(master boot record)을 엑세스해서 하드 디스크장치의 파티션정보(각 파티션의 스타트 어드레스와 사이즈)를 획득한다. MBR은 하드 디스크의 가장 바깥쪽으로 정의되는 실린더로서, 사용자에 의해 엑세스할 수 없는 예약된 실린더이다.
스텝(803)에 있어서, PMC는 사이즈가 소정의 값보다 작은 파티션을 제외한 각 파티션의 루트 디렉토리(route directory)의 어드레스를 획득한다. 어드레스 산출방법은 공지되어 있으므로, 상세히 설명하진 않지만, 예를 들면, OS가 DOS일 때는 파티션의 선두 가까이에 있는 NPB(BIOS parameter block)를 참조해서 상기 파티션의 루트 디렉토리의 어드레스를 산출한다.
스텝(804)에서는, 에드레스를 산출한 데렉토리를 순차 엑세스해서 예약되어 있는 화일 이름(PM_HIBER.BIN)을 탐색한다. 만일 어느 디렉토리에 있어서도 PM_HIB ER.BIN이 발견되지 않았을 때는 하이버네이션 화일의 실행을 거부하고, 이것을 부저를 울리거나 메시지를 표시하는 등에 의해 사용자에게 알린다.
PM_HIBER.BIN이 발견되었을 때는 화일 할당 리스트를 추적한다(스텝 805). 제9도는, OS가 DOS인 경우에, 4섹타를 1 클러스터(cluster)로 할 때의 화일 할당 리스트가 클러스터(100) 내지 클러스터(149)의 섹타 블록과 클럭스터(500) 내지 클러스터(549)의 섹타 블록과 클러스터(300) 내지 클러스터(399)의 섹타 블록으로 나누어져 있는 경우를 예로서 도시하고 있다. 루트 디렉토리의 PM_HIBER.BIN의 엔트리(entry)에는 최초 클러스터 번호(100)가 기술되어 있다. 이미 주지된 바와 같이, 1대 1관계로 FAT(file allocation table)가 클러스터에 마련되어 있고, FAT에는 후속 클러스터 번호(즉, FAT번호) 또는 화일의 마지막을 나타내는 특별한 번호가 기술되어 있다. 스텝(805)에서, PMC는 하드 디스크를 1회 이상 엑세스해서 200개의 FAT의 리스트를 추적한다.
스텝(806)에서, 이와 같은 방법으로 획득한 화일 할당 정보를 저장/복원에 적합한 독자적인 할당 정보로 변환한다. 제10도는 상기 변환 후의 정보의 포맷을 나타낸다. 도시한 예는 제9도에 대응한다. PMC는 일련의 섹타 블록마다 선두의 섹타 어드레스(디스크상의 물리적인 선두 섹타 어드레스로부터의 상대 어드레스)와 길이(섹타수)를 기록한 8바이트의 데이타를 생성한다. 변환후의 할당 정보는 일단 PM 메모리의 작업 데이타 영역에 버퍼된다.
재차 제8도를 참조하면, 스텝(807)에 있어서, PMC는 PM_HIBER.BIN의 화일 사이즈가 현재 장치되어 있는 VRAM, 메인 메모리 및 PM 메모리의 작업 데이타 영역의 사이즈 합계를 지원할 수 있는지의 여부를 체크한다. 예를 들면, 하이버네이션 화일을 생성한 후에 메인 메모리를 증가한 경우에는 모든 데이타를 세이브할 수 없다. 그래서, 화일 사이즈가 충분하지 않을 때는 하이버네이션의 실행을 거부하고,그 사실을 부저 등의 수단을 사용해서 사용자에게 알린다.
화일이 충분히 큰 때는, 스텝(806)에서 생성된 할당 정보 그 자체를 사용해서 할당 정보를 PM 메모리로부터 하이버네이션 화일로 세이브한다(스텝 808). 그후, 직업 데이타, VRAM의 내용, 메인 메모리의 내용을 각각 하이버네이션 화일에 세이브한다(스텝 809∼811). 이들 데이타를 하드 디스크에 전송할 때에도, PM 메모리중의 화일 할당 정보가 참조된다.
마지막으로, 제어정보를 작성해서 하드 디스크의 제어정보영역(제3도의 영역A)에 세이브한다(스텝 812, 813). 제어정보의 항목은 제3도에 도시한 블록(B), (C), (D) 각각의 스타트 어드레스, CMOS중에 있는 현재의 시스템 구성 정보 및 하이버네이션 기호이다. 상기 시스템 구성 정보에는 디바이스의 베이스 I/O 어드레스, 메인 메모리의 사이즈 및 디바이스 구성(디바이스 형태와 개수)이 포함된다. 이중, 베이스 I/O 어드레스는, 예를 들면, 직렬 포트에 접속되어 있는 디바이스 각각에 대해서, 상기 베이스 어드레스가 3F8(H) 또는 2F8(H)중의 어느쪽인가를 나타낸다.
다음, 제11도를 참조해서 하이버네이션 화일(PM_HIBER.BIN)의 데이타 복원 동작(제7도의 스텝 713, 716, 717)을 보고 구체적으로 서술한다.
하이버네이션 화일의 하드 디스크상의 위치를 알기 위해 PMC는, 우선, CE 실린더의 제어정보영역을 엑세스해서, 여기에 있는 제어정보를 읽는다(스텝 1101). 제어정보영역의 어드레스는 고정되어 있으므로 즉시 엑세스할 수 있다. 스텝(1102)에서는, 제어정보에 포함되어 있는 시스템 구성 정보를 웨이크-업 머신의 CMOS중의 시스템 구성 정보와 비교한다.
스텝(1103)에 있어서, PMC는 제어정보에 포함되어 있는 스타트 어드레스를 사용하여 하드 디스크상의 화일 할당 정보 블록을 엑세스해서, 여기에 있는 화일 할당 정보를 PM 메모리에 복원한다. 상기 화일 할당 정보를 이용하여 PMC는, 우선, 메인 메모리의 내용을 복원한 후, VRAM의 내용을 복원한다(스텝 1104, 1105). 이들 스텝에서는, 제어정보영역에 포함된 메인 메모리 블록 및 VRAM 블록의 스타트 어드레스도 이용되고 있다. 마지막으로, 하드 디스크상의 제어정보를 무효로해서, 복원 동작을 완료한다(스텝 1106). 하이버네이션 기호도 무효로 되므로, 이후에 재차 하이버네이션 모드로 들어가지 않는 한, 파워 온하면 통상의 순서로 부트된다.
또한 설명을 생략했지만, 실제로는 제8도의 스텝(810)과 (811)의 사이 및 제11도의 스텝(1103)과 (1104)의 사이에는 하이버네이션 아이콘이 있고, 제11도이 스텝(1105)와 (1106)의 사이에는 H/W 콘텍스트 정보를 복원하는 스텝이 있는 것에 주의하지 바란다.
하이버네이션 화일을 구성하는 섹타 등의 하드 디스크상 위치정보는, 다른 사용자 화일과 같이 OS의 화일 시스템에 의해 복잡한 리스트의 형태로 관리된다. 그래서, 본 발명은 하이버네이션 화일의 데이타 전송을 개시하기 전에, OS 또는 드라이버가 관리하는 복잡한 리스트를 엑세스하여, 이들 섹타의 위치정보를 획득해서, 그 정보를 독자적인 할당 정보로 변환해서 버퍼(PM 메모리)에 입력한다. 그래서, VRAM이나 메모리에서 하드 디스크장치로 데이타를 전송할 때는 화일의 섹타위치를 알기 위해, 오로지 상기 독자적인 할당 정보를 참조한다. 따라서, 하드 디스크에 데이타가 전송되는 경우에는 하드 디스크상의 FAT 영여과 같은 화일 할당 정보영역을 엑세스하지 않아 세이브동작을 고속화할 수 있다.
또한, 본 발명에서는, 세이브 동작을 수행할 때에 작성한 독자적인 하이버네이션 화일에 대한, 할당 정보를 하이버네이션 화일 일부에 기록하고, 또한 그의 스타트 어드레스를 하드 디스크상의 고정된 어드레스에 있는 블록에 기록하고 있다. 하드 디스크장치로부터 VRAM이나 메모리에 데이타를 전송할 때에는, 화일을 구성하는 섹타의 위치를 알기 위해서, 그의 화일중에 저장되어 있는 할당 정보를 참조한다. 따라서, 하드 디스크로부터 데이타가 전송되는 경우에는, 하드 디스크상의 FAT 영역과 같은 화일 공간 할당 정보영역을 엑세스하지 않아도 된다. 이와 같이해서, 웨이크-업시, 하이버네이션 화일의 할당 정보를 획득하기 위해서 하드 디스크를 엑세스하는 빈도를 최소화시킬 수 있어, 복원 동작을 고속화할 수 있다.
F. 아이콘 표시 동작
제12도를 참조해서 아이콘 표시에 관계되는 동작(제7도의 스텝 703∼705 및 스텝 715∼717)을 보다 구체적으로 서술한다.
본 발명에 있어서, 메인 메모리의 내용과 VRAM의 내용을 나누어서 관리한다. 하이버네이션 모드에 들어갈 때, PMC는 먼저 VRAM의 내용을 하이버네이션 화일에 세이브한다(스텝 1201), VRAM의 오리지날 데이타를 보존한 후, VGA 칩(비디오 콘트롤러)을 그래픽스 모드(graphics mode)로 세트하고, 아이콘의 이미지를 VRAM에 기록해서 시스템 본체에 접속된 디스플레이 장치에 표시한다(스텝 1203, 1204). 메인 메모리로부터 하드 디스크로 데이타를 전송하는 중에 아이콘의 표시는 계속된다.
웨이크-업할 때에는, VGA 칩을 그래픽스 모드로 세트하여 아이콘 이미지를 VRAM에 기록해서 디스플레이 장치에 표시한다(스텝 1205, 1206). 아이콘은 하드 디스크로부터 메인 메모리로의 데이타 전송중에 계속 표시된다(스텝 1207). VRAM의 오리지날 데이타의 복원은 그후에 수행된다(스텝 1208).
VRAM이 엑세스되는 기간(스텝 1203, 1208)동안, 아이콘은 표시되지 않는다. 그러나, 일반적으로 VRAM을 억세스하는 기간은 메인 메모리를 엑세스하는 기간(스텝1204, 1208)보다 매우 짧다. 스텝(1203), (1208)에서 아이콘이 표시되지 않는 것을 일순간이므로 실제상 문제점이 없다.
제13도에는, 스텝(1203)에서 표시되는 스크린의 일예를 도시한다. 아이콘(101)은 시스템을 나타내고 있고, 아이콘(102)은 하드 디스크장치를 나타내고 있다. 또, 아이콘(103)은 데이타 전송 방향을 나타내고 있다. 이들 아이콘은 아이콘 프레임(104), (105)에 의해서 둘러싸여 있다. 아이콘 프레임(104)의 내측 영역(106) 및 (105)의 내측 영역(107)의 색은 배경(108)과 다른 색이다.
제14도에는, 제12도의 스텝(1208)에서 표시되는 스크린의 일예를 도시한다. 아이콘(101), (102)의 위치가 교체되어 있는 것을 제외하고는, 제13도와 동일하다.
제15도를 참조해서 제12도의 스텝(1203), (1206)에서 공통적인 아이콘 작도 스텝을 구체적으로 설명한다. 우선, PMC는 VRAM 전체를 배경색의 데이타로 세트해서 스크린을 배경색으로 채운다(스텝 1501). 다음, 아이콘 프레임의 내측 영역(106), (107)을 배경색과는 다른 색으로 도포한다(스텝 1502). 제13, 14도에 도시한 바와 같이, 영역(106), (107)은 단순한 구형이므로, 프로그램(PMC)이 스크린상에서의 그들 위치를 지시하여 내부를 도포하는 것은 간단하다.
스텝(1503), (1504)에서는, 아이콘(101), (102), (103)의 이미지 데이타를 PM 메모리로부터 읽어, 그것을 VRAM에 세트한다. 아이콘 이미지는 데이타양이 적으므로, 사전에 ROM에 저장해두고, POR시에 PM 메모리에 기록하고 있다.
하이버네이션 아이콘은 정적 이미지이어도 좋지만, 하드 디스크와 메인 메모리 사이의 데이타 전송시에 정기적으로 VRAM을 엑세스하여 그의 내용을 다시 고쳐 쓰는 것에 의해, 하이버네이션 아이콘의 표시를 시간과 함께 변화시켜도 좋다. 예를 들면, 화살표 아이콘(103)을 점멸시키거나, 세이브된/복원된 데이타량을 나타내는 이미지를 시스템 아이콘(101)에 부가할 수 있다.
이상과 같이, 본 발명에 있어서는, 메인 메모리 데이타 블록과 VRAM 데이타 블록으로 나누어서 관리한다. 그리고, 하이버네이션 모드로 들어갈 때에는, 우선 VRAM의 오리지날 데이타를 저장한 후, 메인 메모리의 오리지날 데이타를 저장한다. 또한, 웨이크-업때에는 우선 메인 메모리의 오리지날 데이타를 복원한 후, VRAM의 오리지날 데이타를 복원한다. 즉, 세이브 동작시와 복원 동작시에 꽈 메인 메모리의 엑세스 순서를 달리한다.
만약, 메인 메모리 데이타와 VRAM 데이타의 블록을 구별해서 관리하지 않으면, 먼저 VRAM의 내용을 세이브하고 나서 메인 메모리의 내용을 세이브하는 경우, 웨이크-업시에 VRAM의 내용을 메인 메모리의 내용보다도 먼저 복원하지 않으면 안된다. 따라서, 하이버네이션 모드로 들어갈 때에 아이콘을 표시할 수는 있어도 웨이크-업시에는 아이콘을 표시할 수가 없다. 역으로, 먼저 메인 메모리의 내용을 세이브하고 나서 VRAM의 내용을 세이브하면, 이번에는 하이버네이션 모드로 들어갈 때에 아이콘을 표시할 수가 없다.
따라서, 하이버네이션 모드로 들어갈 때나 웨이크-업할 때 VRAM의 오리지날 데이타를 파괴하지 않고서도 아이콘을 표시하기 위해서는, 본 발명 명세서에서 제안한 바와 같이, 메인 메모리 데이타의 블록과 VRAM 데이타의 블록으로 나누어서 관리하고, 세이브 동작시와 복원 동작시에 VRAM과 메인 메모리에의 엑세스 순서를 바꾸는 것이 필요하다.
G. FDD 체인지 라인 애뮬레이션(change line emulation)
제16도 내지 제22도를 참조해서 PMC가 지원하는 FDD 체인지 라인 애뮬레이션을 설명한다.
제16도는, 제1도 중에서 FDD 체인지 라인 애뮬레이션에 관계되는 하드웨어 요소를 추출하여 도시한 것이다. 제1도에 도시되지 않았던 요소는 FDD에 삽입되는 FD(floppy disk)(94), FDD와 FDC 사이의 체인지 라인(92), FDC내의 체인지 라인 상태 레지스터(change line status register)(90) 및 트랩 로직내에서 모니터해야 할 어드레스를 저장하는 트랩 레지스터(96)이다.
플로피 디스크에 관해서는 통상 이전에 플로피 디스크에 대한 억세스가 있었는지 없었는지에 따라서 엑세스 방법이 다르다. 이미 이전에 엑세스(판독/기록)가 있었던 경우, 그때 판독한 화일 할당 정보(OS가 DOS인 경우에는 FAT)가 OS 관리하의 소정의 메모리 어드레스에 세이브된다. 따라서, 할당 정보를 새롭게 플로피 디스크로부터 판독할 필요가 없다. 이 때문에, 2회째 이후의 플로피 디스크로에 대한 엑세스가 고속화된다.
일반적으로, 메인 메모리에 있는 플로피 디스크의 할당 정보가 유효한 것인지 아닌지의 여부는 다음과 같은 구성에 의해서 판별된다. FDD와 FDC를 연결한 체인지 라인은 FDD상의 플로피 디스크의 착탈을 감시하는 전용 신호선으로서 시스템의 파워가 온되었을 때에 자동적으로 엑티브된다. 그리고 POST가 FDC를 경유해서 FDD를 엑세스해서 여기에 플로피 디스크가 있는 것을 검출했을 때에는 자동적으로 인엑티브(inactive) 상태로 되고, 플로피 디스크가 검출되지 않았을 때에는 엑티브 상태를 유지한다. 또한, 플로피 디스크가 삽입되면 엑티브되고, 삽입된 플로피 디스크가 실제로 액세스되면 자동적으로 인엑티브된다. 플로피 디스크가 빠져나오면 재차 엑티브 상태로 되돌아온다. 실시예에서는 하이(high) 상태가 엑티브에 대응하고, 로우(low) 상태가 인엑티브에 대응한다.
체인지 라인의 상태는 플래그(flag)에 의해 반영된다. I/O 어드레스 3F7(H)이 할당된 체인지 라인 상태 레지스터(제16도의 레지스터(90))의 비트 7가 그의 플래그(체인지 라인 상태 플래그)로서, 값이 1일 때 엑티브인 것을 나타내고, 값이 0일 때 인엑티브인 것을 나타낸다.
FDC를 직접 엑세스하는 것은 BIOS 또는 드라이버(예를 들면, OS가 DOS일 때는 BIOS, OS가 OS/2일 때는 드라이버)이다. BIOS/드라이버는 체인지 라인 상태 레지스터의 내용을 읽어, 상기 비트 7가 1일 때 메인 메모리중의 플로피 디스크의 할당 정보를 무효화(플레쉬)하고, 새로운 플로피 디스크의 할당 정보를 읽어낸다.
따라서, 하이버네이션 모드에 들어가는 시점에서 플로피 디스크가 FDD에 삽입되어 있고, 또한 이미 엑세스도 행해져 있는 경우에는, 상기 플로피 디스크의 화일 할당 정보가 하드 디스크에 세이브되고, 이것이 그대로 웨이크-업시에 메모리에 복원된다.
다음, 하이버네이션 모드중에 플로피 디스크의 교환이 행해진 경우를 고려하면, POST는 FDD에 플로피 디스크가 있는 것을 검출하므로, 웨이크-업 시퀀스가 종료한 시점에서 체인지 라인 신호는 인엑티브로 되어 있다. 따라서, BIOS/드라이버는 예전 플로피 디스크의 복원된 화일 할당 정보를 유효하다고 판단하고, 그 정보를 이용하여 현재 삽입되어 있는 플로피 디스크를 엑세스해서 잘못된 데이타를 판독함으로써 그 플로피 디스크의 데이타를 파괴하는 문제점이 있었다. 이와 같은 문제는 중단모드 후의 재개모드시 발생할 가능성이 있다.
중단 또는 하이버네이션중의, 매체 교환에 수반되는 문제는 카드형(card-type)의 기억매체(SSF 등)에도 존재한다. 그러나, 이 같은 매체의 경우에는 충실한 소프트웨어가 준비되어 있고, 이것을 사용해서 문제의 해결을 도모하고 있다. 즉, 카드를 시스템에 장착한 채 중단 또는 하이버네이션의 저소비 전력 모드에 들어가고, 이 모드에서 나온 경우에도 저소비 전력 모드에 들어갈 때와 같이 마치 카드가 제거된 것처럼 시스템에 대해서 페이크(fake)를 행하고, 재개 또는 웨이크-업할 때에도 마치 카드가 장착된 것처럼 시스템에 대해서 페이크를 행한다. 이러한 페이크에 응답하여 시스템은 메인 메모리에 있는 카드의 화일 할당 정보를 무효화하고 새로운 할당 정보를 획득한다. 이와 같이, 저소비 전력 모드에 들어갈 때와 나올 때, 카드에 대한 전력공급을 중단하기 위해 시스템에 대해서 소프트웨어에 의한 페이크조각을 행하고 있다.
그러나, 플로피 디스크의 경우에는, 체인지 라인 신호의 상태가 하드웨어적으로 소정의 타이밍에서 변화게 하고,. 그 상태를 CPU가 판독케하는 방식이 정착되었다. 이와 같은 기존 방식과의 조화를 도모하면서 저소비 전력 모드중에 실행된 플로피 디스크의 교환으로 인해 발생하는 상기 문제를 해결하기 위해서는, 카드형의 기억매체의 경우와는 다른 수단을 강구해야만 한다.
그래서, 본 발명에서는, 웨이크-업 또는 재개의 시퀀스 종료후에 BIOS/드라이버가 최초로 체인지 라인 상태 플래그를 체크하는 타이밍을 취함으로써 상기 상태를 페이크한다. 그리고, 플로피 디스크가 실제로 FDD에 장착된 상태일지라도 마치 제거된 것처럼 시스템에 페이크를 행해서, 플로피 디스크의 화일 할당 정보를 무효화시킨다. 구체적으로는 다음 2가지 방법이 있다.
(1) 체인지 라인 상태 레지스터의 엑세스를 트랩해서, 체인지 라인 상태 플래그의 값을 일시적으로 페이크한다.
(2) 체인지 라인 신호를 하드웨어적으로 조작 가능한 보오드(board)를 준비한다.
이하, 하이버네이션 모드에서 나오는 웨이크-업의 경우에 대해서, 상기 방법의 각각을 설명한다. 단, 본 발명은 중단 모드에서 나오는 재개의 경우에도 적용 가능하다.
(1) 최근 포터블 컴퓨터에는 I/O 엑세스를 트랩하는 메카니즘이 제공되어 있다. 그러한 메카니즘은, 제1도에 도시한 예와 같이, 인텔사의 80406SL(CPU)와 82360S L(트랩 로직)의 조합에 의해 실현된다. 82360SL중의 레지스터(제16도의 레지스터(96)에 I/O 어드레스를 설정해 두면, 80486SL에서 I/O 어드레스 억세스 명령이 나왔을 때 82306SL은 80486SL에 대해서 시스템 인터럽터(SMI)를 발생한다. 시스템 인터럽터에 응답해서 핸들러(PMC)가 인에이블된다. 인터럽터의 원인을 분석해서 소정의 I/O 어드레스의 엑세스가 원인이라고 판단하면, 트랩 루틴으로 점프한다.
통상, 트랩 메카니즘은, 파워 오프된 디바이스에 대한 엑세스 명령이 나왔을 때, 실제로 엑세스를 행하기 전에 디바이스를 파워 온하는데 이용되고 있다. 체인지 라인 상태를 페이크하는 제1의 방법은 이같은 트랩 메카니즘을 활용한다.
제17도를 참조해서 페이크 동작에 관련되는 스텝의 흐름을 설명한다. 이미 상세히 설명했듯이, 파워 온 직후에 실행되는 POST에 의해 하이버네이션 기호가 확인되면, 웨이크-업 시퀀스에 들어간다(스텝 171, 172). 체인지 라인의 상태는 파워 온 시점에서는 엑티브일지라도, POST에 의해 플로피 디스크가 FDD에 장착된 상태가 검출된 시점에서는 인엑티브로 된다.
스텝(173)에서, PMC는 체인지 라인 애뮬레이션을 위한 셋팅을 행한다. 구체적으로, 트랩 로직(16)의 레지스터(96)(제16도 참조)에 3F7(H)의 값을 세트한다. 스텝 후에 시스템의 지배권은 OS/애플리케이션으로 되돌아간다.
OS/애플리케이션 실행 재개후 최초로 플로피 디스크에 엑세스할 때, 체인지 라인 상태의 페이크가 행해진다(스텝 174). 제18도 및 제19도를 참조해서 스텝(174)을 보다 상세히 설명한다.
제19도는 BIOS/드라이버의 일부를 도시한다. 명령 MOV DX, 3F7(H)이 실행되면, CPU의 DX 레지스터에 3F7(H)가 로드된다. 명령 IN AL, DX가 실행되면, I/O 어드레스 3F7(H)이 엑세스되어 체인지 라인 상태 레지스터의 내용이 CPU의 AL 레지스터에 저장된다. 이때, 시스템 인터럽터가 발생해서 트랩 핸들러(PMC)가 실행된다. 핸드러는 시스템 인터럽터의 원인을 분석해서, I/O 어드레스 3F7(H)에 대한 엑세스의 트랩을 처리하는 루틴으로 점프한다. 루틴은 AL 레지스터의 비트 7의 값을 1로 세트하고 BIOS/드라이버로 되돌아간다. 따라서, 후속 명령 TEST AL, 80H는 레지스터 3F7 (H)의 비트 7의 값이 1로 세트되어 있다는 정보를 BIOS/드라이버에 전달한다. 이것에 응답해서 OS/드라이버는 메모리에 있는 플로피 디스크의 화일 할당 정보를 무효화한다. 그리고, 플로피 디스크상의 희망하는 화일에 대한 억세스를 위해서, 사전에 플로피 디스크의 할당 정보를 판독한다.
또한, BIOS/드라이버로 되돌아가기 직전에, PMC는 트랩 레지스터에 세트된 값을 클리어한다(제17도의 스텝 175). 따라서, 1회째 이후의 플로피 디스크에 엑세스할 때에는 체인지 라인 상태는 페이크되지 않는다.
(2) 제2의 방법은, 제20도에 도시한 바와 같이, 보오드에 하드웨어 요소를 추가함에 따라 실현된다. 추가되는 요소는 레지스터(112)를 내장하는 I/O 포트(110), I/O 어드레스 디코더(114), OR 게이트(116), 신호라인(118) 및 (120)이다. 레지스터(112)에는 특정의 I/O 어드레스(1500(H))가 할당된다. 레지스터(112)의 특정한 비트(비트 0)의 값을 나타내는 신호는 신호라인(118)을 경유해서 OR 게이트(116)의 한쪽 입력단자에 입력된다. OR 게이트(116)의 다른쪽 입력단자에는 FDD(72)로부터 체인지 라인 신호가 입력된다. OR 게이트(116)의 출력단자는 체인지 라인 상태 레지스터(90)의 비트 7의 값으로 된다. I/O 어드레스 디코더(114)는 어드레스 버스(14)를 모니터하여, 어드레스 신호 3F7(H)을 디코더해서, I/O 포트(110)에 펄스 신호를 출력한다. 디코더(114)의 출력단자는 레지스터(112)의 클리어 단자와 연결되어 있다.
제21도를 참조해서, 제2의 방법의 스텝흐름을 설명한다. 스텝(211), (212)은 제17도의 스텝(171), (172)과 같으므로 설명을 생략한다. 스텝(213)에서는, FDD 체인지 라인 애뮬레이션을 세트하기 위해, PMC가 I/O 어드레스 1500(H)에 지시해서 레지스터(112)의 비트 0의 값을 1로 세트한다. 그 결과, 제22도에 도시한 바와 같이, 체인지 라인 상태가 POST에 의한 FDC 엑세스를 위해 인엑티브 상태로 유지되나, 신호라인(118)이 엑티브로 되므로 신호라인(120)의 상태는 엑티브로 된다. 따라서, 체인지 라인 상태 레지스터(90)의 비트 7에는 1이 세트된다.
스텝(213) 이후의 시스템의 지배권은 OS/애플리케이션으로 되돌아간다. OS/애플리케이션이 실행되고 있는 사이에도, 레지스터(90)의 비트 7는 값은 1로 유지되고, 체인지 라인 상태의 페이크상태가 계속된다.
OS/애플리케이션 재개후, 플로피 디스크에 최초로 엑세스할 때에 BIOS/드라이버가 I/O 어드레스 3F7(H)을 판독하면, 비트(7)의 값은 1로 된다. 따라서, OS/드라이버는 플로피 디스크의 화일 할당 정보를 무효화한다.
어드레스 3F7(H)의 엑세스 사이클동안, 디코더(114)로부터 레지스터(112)를 클리어하는 펄스가 출력된다. 따라서, OR 게이트(116)의 입력은 모두 인엑티브로 되고, 체인지 라인 레지스터(90)의 비트 7의 상태는 인엑티브로 된다. 이와 같이, FDD 체인지 라인 애뮬레이션 리셋(스텝 214)은 제1의 방법과 다르게 하드웨어에 의해서 실행된다.
시스템에 따라서는 트랩 메카니즘을 갖지 않은 것도 있고, 또한 트랩 메카니즘이 있어도 능력이 제한되어 있는 것도 있다. 이와 같은 경우에는 제2의 방법이 유효하다.
본 발명에 따르면, FDD로의 전력공급이 정지되는 저소비 전력 모드 동안에 플로피 디스크의 교환으로 인해 발생되는 데이타의 파괴를 방지할 수 있다.
Claims (5)
- CPU, 메인 메모리, 프로피 디스크 컨트롤러(floppy disk controller, FDC) 및 플로피 디스크 드라이브(floppy disk drive, FDD)를 구비하되, 상기 FDC와 상기 FDD 사이에는 상기 FDD로부터 플로피 디스크의 착탈을 모니터하기 위한 것으로서 소정의 시간에서 상태가 변화하는 체인지 라인(chang line)을 마련하고, 그 체인지 라인의 상태를 상기 FDC 중의 상태 레지스터의 플래그 값에 반영시키고, 그 플래그를 이용하여, 상기 FDC를 경유해서 상기 메인 메모리에 저장되어 있는 화일 할당 정보의 유효성을 판단하는 정보 처리 시스템에 있어서, (a) 소정의 제1상태가 발생했을 때, 상기 FDC 및 상기 FDD로의 전력공급을 정지시켜 저소비 전력 모드(low power-consumption mode)로 들어가기 위한 수단과, (b) 소정의 제2상태가 발생했을 때, 상기 FDC 및 FDD로의 전력공급을 행하는 통상 동작 모드(normal operation mode)로 들어가기 위한 수단과, (c) 상기 저소비 전력 모드로부터 상기 통상 동작 모드로의 전환후, 상기 상태 레지스터로의 최초의 엑세스가 있을 때, 상기 플래그(flag)의 상태를 페이크(fake)하기 위한 수단을 구비하는 정보 처리 시스템.
- 제1항에 있어서, 상기 수단(c)는 ; 내장 레지스터에 세트된 I/O 어드레스의 엑세스를 모니터하기 위한 트랩 로직(trap logic)과, 상기 통상 동작 모드로 복귀하기 위한 일련의 처리 과정에서, 상기 트랩 로직의 레지스터에 상기 상태 레지스터를 나타내는 I/O 어드레스를 세트하는 수단과, 상기 통상 동작 모드로의 복귀시, 상기 상태 레지스터로의 최초의 엑세스가 상기 트랩 로직에 의해서 트랩될 때, 상기 플래그 값을 고쳐 쓰는 수단과, 상기 상태 레지스터로의 2회째 이후이 엑세스가 트랩되지 않도록 상기 트랩 로직의 레지스터를 클리어(clear)하는 수단을 포함하는 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서, 상기 수단(c)는 ; 특정한 I/O 어드레스가 할당된 레지스터와, 한개의 입력단자는 상기 체인지 라인과 연결되고, 다른 입력단자는 상기 특정한 I/O 어드레스가 할당된 레지스터의 특정한 비트와 연결되며, 출력은 상기 상태 플래그에 공급되는 논리 게이트(logic gate) 수단과, 상기 통상 동작 모드로 복귀하기 위한 일련의 처리 과정에서, 상기 화일 할당 정보가 무효한 것을 나타내는 값이 상기 플래그에 세트되도록 상기 특정한 I/O 어드레스의 레지스터에 값을 세트하는 수단과, 상기 상태 레지스터의 엑세스에 응답해서, 상기 특정한 I/O 어드레스의 레지스터를 클리어(clear)하는 수단을 포함하는 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서, 상기 저소비 전력 모드는 상기 메인 메모리로의 전력공급이 정지되는 하이버네이션 모드(hibernation mode)인 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서, 상기 저소비 전력 모드는 상기 메인 메모리로의 전력공급이 정지되는 중단 모드(suspend mode)인 것을 특징으로 하는 정보 처리 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP93-184169 | 1993-07-26 | ||
JP5184169A JP2688164B2 (ja) | 1993-07-26 | 1993-07-26 | 情報処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
KR950003999A KR950003999A (ko) | 1995-02-17 |
KR970011216B1 true KR970011216B1 (ko) | 1997-07-08 |
Family
ID=16148577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019940016826A KR970011216B1 (ko) | 1993-07-26 | 1994-07-13 | 정보 처리 시스템 |
Country Status (8)
Country | Link |
---|---|
US (1) | US5649212A (ko) |
EP (1) | EP0636979B1 (ko) |
JP (1) | JP2688164B2 (ko) |
KR (1) | KR970011216B1 (ko) |
CN (1) | CN1097237C (ko) |
BR (1) | BR9402943A (ko) |
CA (1) | CA2117391C (ko) |
DE (1) | DE69413625T2 (ko) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2310513B (en) * | 1996-02-20 | 2000-02-16 | Ibm | Computer with reduced power consumption |
US5822600A (en) * | 1996-07-19 | 1998-10-13 | Compaq Computer Corporation | Dynamic hibernation time in a computer system |
US5903773A (en) * | 1996-08-28 | 1999-05-11 | Vlsi Technology, Inc. | System to improve trapping of I/O instructions in a peripheral component interconnect bus computer system and method therefor |
US5991542A (en) * | 1996-09-13 | 1999-11-23 | Apple Computer, Inc. | Storage volume handling system which utilizes disk images |
US6401222B1 (en) | 1996-10-11 | 2002-06-04 | Phillip M. Adams | Defective floppy diskette controller detection apparatus and method |
US5983002A (en) * | 1996-10-11 | 1999-11-09 | Phillip M. Adams & Associates, L.L.C. | Defective floppy diskette controller detection apparatus and method |
US6216187B1 (en) | 1997-12-01 | 2001-04-10 | Toshiba America Information Systems, Inc. | System for powering down a portable computer in a docking station |
JP3726484B2 (ja) | 1998-04-10 | 2005-12-14 | 株式会社日立製作所 | 記憶サブシステム |
JP4240283B2 (ja) | 2002-10-10 | 2009-03-18 | ソニー株式会社 | 復号装置及び復号方法 |
CN101271426A (zh) * | 2007-03-20 | 2008-09-24 | 联想(北京)有限公司 | 一种存储设备及保护其保护分区的方法 |
US8243563B2 (en) * | 2007-08-30 | 2012-08-14 | Dell Products, Lp | Optical disc drive capable of operation in low-power mode |
KR100993817B1 (ko) * | 2007-12-21 | 2010-11-12 | 한국과학기술정보연구원 | 정보 분석 시스템 및 그 방법 |
US8219835B1 (en) * | 2008-08-27 | 2012-07-10 | Lockheed Martin Corporation | Power conservation in a data communication network |
US20100146169A1 (en) * | 2008-12-05 | 2010-06-10 | Nuvoton Technology Corporation | Bus-handling |
JP4498456B1 (ja) * | 2009-02-19 | 2010-07-07 | 株式会社東芝 | データ記憶制御装置及びデータ記憶制御方法 |
TWI431464B (zh) * | 2009-04-29 | 2014-03-21 | Micro Star Int Co Ltd | Computer system with power control and power control method |
US9747239B2 (en) * | 2014-08-25 | 2017-08-29 | Apple Inc. | Transaction filter for on-chip communications network |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4316247A (en) * | 1979-10-30 | 1982-02-16 | Texas Instruments, Inc. | Low power consumption data processing system |
SE429378B (sv) * | 1980-06-06 | 1983-08-29 | Bjorn G Karlsson | Mikrodatorbaserad elmetare |
US4920370A (en) * | 1986-03-25 | 1990-04-24 | Minolta Camera Kabushiki Kaisha | Photo signal processing apparatus |
JP2779813B2 (ja) * | 1988-09-06 | 1998-07-23 | セイコーエプソン株式会社 | コンピューター |
EP0487900A1 (en) * | 1990-11-27 | 1992-06-03 | Kabushiki Kaisha Toshiba | Portable computer resetting resume error caused from HDD loaded condition being changed and starting OS |
US5551033A (en) * | 1991-05-17 | 1996-08-27 | Zenith Data Systems Corporation | Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program |
US5305180A (en) * | 1991-06-06 | 1994-04-19 | Grid Systems Corporation | Disk drive ejector mechanism with latch and ejector and standby switch |
JPH0566883A (ja) * | 1991-09-09 | 1993-03-19 | Toshiba Corp | 座標入力装置 |
US5287503A (en) * | 1991-09-27 | 1994-02-15 | Sun Microsystems, Inc. | System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register |
US5369771A (en) * | 1991-12-23 | 1994-11-29 | Dell U.S.A., L.P. | Computer with transparent power-saving manipulation of CPU clock |
DE4309532C2 (de) * | 1992-03-25 | 1996-10-31 | Intel Corp | Verfahren zum Sichern einer Systemabbildung eines Computersystems auf einer permanenten Speichereinrichtung sowie ein Computersystem |
-
1993
- 1993-07-26 JP JP5184169A patent/JP2688164B2/ja not_active Expired - Fee Related
-
1994
- 1994-07-07 CA CA002117391A patent/CA2117391C/en not_active Expired - Fee Related
- 1994-07-13 KR KR1019940016826A patent/KR970011216B1/ko not_active IP Right Cessation
- 1994-07-14 CN CN94108594A patent/CN1097237C/zh not_active Expired - Fee Related
- 1994-07-25 DE DE69413625T patent/DE69413625T2/de not_active Expired - Fee Related
- 1994-07-25 EP EP94305489A patent/EP0636979B1/en not_active Expired - Lifetime
- 1994-07-26 BR BR9402943A patent/BR9402943A/pt not_active Application Discontinuation
-
1996
- 1996-01-11 US US08/584,994 patent/US5649212A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2688164B2 (ja) | 1997-12-08 |
JPH0784660A (ja) | 1995-03-31 |
DE69413625T2 (de) | 1999-05-27 |
EP0636979A1 (en) | 1995-02-01 |
CA2117391C (en) | 1998-08-18 |
EP0636979B1 (en) | 1998-09-30 |
KR950003999A (ko) | 1995-02-17 |
CN1097237C (zh) | 2002-12-25 |
US5649212A (en) | 1997-07-15 |
CN1104786A (zh) | 1995-07-05 |
BR9402943A (pt) | 1995-06-20 |
DE69413625D1 (de) | 1998-11-05 |
CA2117391A1 (en) | 1995-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5666540A (en) | Information processing system | |
KR970011216B1 (ko) | 정보 처리 시스템 | |
JPH07200112A (ja) | 情報処理システム | |
KR100396460B1 (ko) | 하이버네이션 기능 지원 정보 처리 시스템, 그 제어 방법 및 기록 매체 | |
JP3102455B2 (ja) | 情報処理システム | |
US20120210155A1 (en) | Storing context information prior to not supplying power to a processor | |
JPH04362717A (ja) | システム再起動装置 | |
US5680540A (en) | Suspend-to-disk system for removable hard drive | |
US20030070065A1 (en) | Suspending to nonvolatile storage | |
JPH07219848A (ja) | キャッシュ制御システム | |
JP3253881B2 (ja) | コンピュータシステムおよびそのシステムにおけるハイバネーション制御方法 | |
JP4155545B2 (ja) | コンピュータシステムおよびデータ転送制御方法 | |
EP1037133A1 (en) | Method and apparatus for alternation between instances of operating systems in computer systems | |
JPH0944418A (ja) | 情報処理システム及びその制御方法 | |
JP3238097B2 (ja) | コンピュータシステムおよびそのシステムにおけるデータセーブ制御方法 | |
JP3227628B2 (ja) | 情報処理システム | |
JP3961669B2 (ja) | コンピュータシステムおよびデータ転送制御方法 | |
EP0636980A1 (en) | Apparatus and method for hibernation file creation | |
JP2000172386A (ja) | コンピュータシステムおよびメモリ電源管理方法 | |
CA2117441C (en) | Information processing system | |
JPH0944417A (ja) | 情報処理システム及びその制御方法 | |
JP2001318744A (ja) | 情報処理装置およびそのデータセーブ制御方法 | |
JP2003345474A (ja) | コンピュータシステムおよびデータ転送制御方法 | |
JPH0395609A (ja) | パーソナルコンピュータシステム | |
JPS62242223A (ja) | 外部記憶装置の制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20010810 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |