`Clark et al.
`
`[54]
`
`[75]
`
`DESKTOP COMPUTER HAVING A
`SINGLE-SWITCH SUSPEND/RESUME
`FUNCTION
`
`Inventors: Michael W. Clark; James L. Combs;
`Dwayne T. Crump; Jerry T. Kozel;
`Steven T. Pancoast, all of Lexington,
`Ky.
`.
`
`Assignee:
`
`International Business Machines
`Corporation, Armonk, NY.
`
`[21]
`
`Appl. No.:
`
`Filed:
`
`97,334
`Jul. 23, 1993
`
`Int. Cl.6 ........................... .. G06F 15/00; G06F 13/10
`U.S. Cl. ........................................... .. 395/750; 345/212
`Field of Search ........................... .. 395/750; 345/211,
`345/212
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,674,031
`4,823,290
`4,851,987
`4,907,150
`4,933,785
`5,021,983
`5,167,024
`5,189,647
`5,218,607
`5,269,022
`5,276,890
`5,355,501
`5,410,711
`5,410,713
`
`6/1987
`4/1989
`7/1989
`3/1990
`6/1990
`6/1994
`11/1992
`2/1993
`6/1993
`12/1993
`1/1994
`10/1994
`4/1995
`4/1995
`
`Fasack et a1. ......................... .. 364/550
`
`Morehouse et a1. .
`Nguyen et a1. ....................... .. 364/707
`Smith et a1. .......................... .. 395/375
`Suzuki et a1. .
`Saito et al. .
`Shinjo et a1. .
`
`Arai .
`
`Gross et a1. .......................... .. 395/750
`
`Stewart .
`White et a1. .
`
`|||||| |||||||||||||||| ||||| 111L115 "1!! 11911 llllllllll mm m |||||||||
`5,513,359
`Apr. 30, 1996
`
`Patent Number:
`[11]
`[45] Date of Patent:
`
`FOREIGN PATENT DOCUMENTS
`
`8/1992
`2060879
`Canada .
`0415376A2 3/1991
`European Pat. O?’. .
`0518339A2 12/1992
`European Pat. 01f. .
`0518623A2 12/1992
`European Pat. O?‘. .
`0516159A2 1211992
`European Pat. 01f. .
`0518622A1 12/1992 European Pat. 01f. .
`WO92/21081 11/ 1992 WIPO .
`
`OTHER PUBLICATIONS
`
`“Total Recall and Instant Recall,” Advertisement, Window
`Sources, vol. 1, N0. 3, Apr. 1993, p. 40.
`Primary Examiner-Jack B. Harvey
`Assistant Examiner—Je?°rey K. Seto
`Attorney, Agent, or Firm—Daniel E. McConnell; Sean T.
`Moorhead
`
`ABSTRACT
`
`[57]
`A computer system having a suspend/resume capability in
`addition to the normal operating state and the oilC state.
`Closure events of single momentary pushbutton switch
`control changes between the normal operating state, the
`suspend state, and the 01f state, depending on the value of a
`?ag. If the ?ag is set in a certain state, closure events of the
`switch cause the computer system to change back and forth
`between the normal operating state and the 00° state. If the
`?ag is set in a diiferent state, closure events of the switch
`cause the computer system to change back and forth
`between the normal operating state and the suspend state.
`The switch also controls the video subsystem of the com
`puter system such that pressing the switch blanks the video
`display terminal giving the user instantaneous feedback of
`the switch press.
`
`16 Claims, 37 Drawing Sheets
`
`T58 -USER PRESSES POWER BUTTON
`WHILE SUSPEND
`FLM} IS N01 SET
`
`160 -USER PRESSES
`POI/ER BUTTON
`
`165 —E1THER INACTMTY SUSPEND
`TIMEOUT. 0R USER PRESSES POWER
`BUTTOgl WHILE SUSPEND FLAG
`|
`SET
`
`T70-INACTMTY SUSPEND TIMEOUT
`
`ASKELADDEN 1029
`
`
`
`US. Patent
`US. Patent
`
`Apr. 30, 1996
`Apr. 30, 1996
`
`Sheet 1 of 37
`Sheet 1 of 37
`
`5,513,359
`5,513,359
`
`FIG. 1
`FIG.
`1
`
`21
`
`12
`
`H
`
`.;
`IE
`flllflllflflllllll!
`
`31
`
`13
`
`27
`
`
`
`
`US. Patent
`US. Patent
`
`Apr. 30, 1996
`Apr. 30, 1996
`
`Sheet 2 0f 37
`Sheet 2 of 37
`
`5,513,359
`5,513,359
`
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 3 0f 37
`
`5,513,359
`
`4.9
`mcRo [E
`PROCESSOR
`
`i1
`MAIH
`COPROCESSOR
`
`42'»
`
`46
`z
`
`,
`i8.
`CONIROL
`5_0
`ADDRESS uUx
`52
`“"
`DATA BUFFER
`
`Q
`CACHE CONTROLLER
`
`54
`"
`W244 5")
`BRA'FT SIP
`§_4_
`DRAM SIP
`54
`ORA-M- 5",
`
`\
`(
`53
`
`_1,
`Q5
`VIDEO CONIROLLER _{
`
`5_0
`BUS CACHE
`
`5.1
`BUFFER
`
`66 "
`
`19
`BUS CONIROLLER
`
`§§
`LATCH/BUFFER
`w/oEcoBE
`
`H
`-a
`‘*3
`
`71 \
`
`7-2
`DMA CONTROLLER
`
`-
`
`CERFRATARBRER
`
`80
`
`H
`BUFFER
`
`HM
`FIG.3A
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 4 0f 37
`
`5,513,359
`
`FIG.3B
`
`W 9 H ZQ
`
`|/0 SLOT
`
`76“
`
`lg *
`
`5
`
`|/0 SLOT
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 5 of 37
`
`5,513,359
`
`MONITOR
`
`@-
`
`§_8
`VIDEO usuom
`
`9.2
`LNIERRUPI
`CONIROLLERS
`
`RS-232
`UARTs
`
`9_6
`cuos
`NVRAM
`
`90
`
`21
`SWITCH
`
`M
`POWER
`MANAGEMENT
`
`104
`
`‘8042
`
`8.5
`ROM
`
`59
`ms DISK
`CONIROLLER
`
`i3
`cuos CLOCK
`
`1%
`PARALLEL
`ADAPIER
`
`1.92
`IIMERS
`
`5A
`8277
`DISKEITE
`ADAPTER
`
`"
`
`
`
`US. Patent
`
`Y Apr. 30, 1996
`
`Sheet 6 of 37
`
`5,513,359
`
`02 Emma a; 225m
`
`551 $5”: 52 g .585
`25% E62 $15. 9:
`
`
`
`mm w
`
`
`
`225m mwwom
`
`
`
`
`
`mwmmmE Ema: Gm 52 m_ 3.:
`
`
`
`
`
`2056 EEK mmmmwmm mum? mm"
`
`ozmmmam BE;
`
`
`
`
`
`58:; 2&8 czséTot ,
`
`#01
`
`olmm
`
`dame:
`
`ozcéwmo
`
`5.5m CEBET N2
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 7 of 37
`
`5,513,359
`
`.2 zTwz: u<
`
`
`
`89> _ ll
`
`2 26 N2 25 as ea
`
`
`3% £52 Q2 Q2 P
`
`
`D f
`
`_z
`
`Q 88§2
`
`m6;
`
`3%“ .illl as n. m- .MEQ 0%:
`
`, 5: 2258mm 2. $050
`52% NT
`5E _ a: 2 2 32 2
`[III 552 N: 3 $50 ea
`
`
`
` b D 6528 as . Z2 Z5
`
`
`
`
`
`32m: 532: 2 @292 _ Q2; < n a a” or“
`
`
`
`US. Patent
`
`M
`
`5,513,359
`
`oz28:Sm:8£898:2e#296oz3no:am,#5moz9No::N25535$36.;
`
`ozt8:eoE8
`
`nm.
`
`32.21m2:38am.w#58::28tmas“.200E:%toédmaEB:Siaé
`
`0,toS8m:m:559Ahwywwnww9_3858252mo.2m2«m2B:2AN:3«mt8:m—m.«m28:E$593:m.
`
`z“:a8:w988:6N03.8o.+.
`-E«m3no:N"x?I
`
`
`95-29345A
`
`In
`
`
`
`
`nou851855“W8I”_“$3520:
`paHv<m.m:u_P
`538:In5%E,
`
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 9 of 37
`
`5,513,359
`
`r m
`
`9::
`
`“58H wwzo xoww ¢o hlun
`
`
`
`
`84' N11 .|_ 2 $23 B
`N L Pl
`
`A
`
`432.5
`
`8>
`
`mm 2 .mmwoz
`
`may
`
`20 m U N
`<2 2.
`
`8> V A
`
`mm
`
`05$ 3% 558:
`$.01 M98
`jmc
`Q
`
`m
`
`25.
`M .
`
`m
`
`aooommgom
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 10 of 37
`
`5,513,359
`
`PRESSING THE SWITCH OR
`POWER-0N RESET
`
`PRESSINC
`THE SWITCH
`
`RELEASING THE SWITCH
`
`L7_8
`swncu
`sms 01
`
`'NORMAL 0N STATE.
`
`PRESSING THE SWICH
`
`lQQ
`swncu
`STATE H
`
`RELEASING THE SWITCH
`
`1Q
`swncu
`STATE 10
`
`'SUSPEND REQUEST STATE
`
`FIG.7
`
`
`
`U.S. Patent
`
`Apr. 30, 1996
`
`Sheet 11 of 37
`
`5,513,359
`
`Start:
`CPU Jumps to Reset Vector
`at power-up or reset.
`
`200
`
`204
`Perlarm Normal
`Power-0n N
`Self test
`
`my“
`
`Perlorm Abbreviated
`Power-0n
`Sell Test
`
`206
`PBOOI
`Routine boots N
`08
`
`05 starts executing APM
`device driver
`,308
`
`Parallel Thread
`
`05 executes cad
`indelinildy" 8 A2,")
`
`Resume Routine loads system
`from hard drive (restores
`0S APM and APM device driver
`216'“ _to memory; therefore, APM
`Is running and aware of the
`Supervisor Routine)
`
`Parallel thread
`
`220
`/
`0S resumes executing code
`_
`that was interrupted during
`the Suspend Operation and
`executes code indelinitely...
`
`Approximately every I
`212
`second, APM polls the
`Supervisor Routine tor APM N
`events.
`
`G . 8
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 12 0f 37
`
`5,513,359
`
`Supervisor Routine
`called by APM
`
`I 222
`
`225
`SET the "Suspend
`Request" APM Return N
`Code (Causes APM to
`call. the ‘Suspend
`Rautrne, Figure 10)
`
`232
`
`SH the "normal
`Resume" APM Return
`Code (causes APM to
`update certain system
`parameters) ,
`
`228
`
`Return
`ta APM
`
`234
`
`‘Ream
`0
`
`245
`
`N0
`
`Did the
`lnactrvrty
`Standby Timer
`Expire
`?
`246 Yes
`2
`Enter the
`Standby State
`
`.
`Exrt the
`Standby State
`
`M the
`Inactivity
`Suspend nme'
`Expi'e ?
`
`247
`
`Yes
`
`N° 242
`/
`
`Set the "No
`Event" APM Return
`""8
`
`SET the "Suspend
`ggggeféuugsr ‘mug
`call the Sus nd
`Routine Fr urget?)
`Z '
`g
`248
`
`Return to APM
`
`243
`
`ys
`the Standby
`State
`?
`
`M
`Reset Inactivity
`Suspe-n “mm and
`lnodmty Standby
`?mer
`
`/
`241
`
`F c 9
`
`'
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 13 0f 37
`
`5,513,359
`
`Suspend Routine,
`which is by the APM
`Routine in res onse
`to a "Suspend tgequesl"
`evenl code.
`
`250
`
`Go to Save
`252
`CPU State
`Routlne ~
`(Figure 13)
`
`R t
`ese
`Handler
`jumps here
`
`253
`
`254
`
`Was power
`button pressed
`
`Make Shadow BIOS Read/Write
`
`J60
`
`Set up Stock in segment
`COOOH
`
`J62
`
`SET the Software
`
`Suspend Flag 355
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 14 of 37
`
`5,513,359
`
`264
`
`Is 0 DMA transfer or
`hardtite transfer currentl
`underway
`
`Yes
`
`Reset Failsate Timer by
`draining the capacitor
`
`/
`
`270
`Save 8042 State by writing
`registers inta segment DOOOH ‘V
`data structure
`
`272
`Call: 8259
`Save State N
`Routine
`(Figure 15)
`
`274
`/
`Swap BIOS Data Areas & Vector
`Tables
`
`265
`2
`Make Shadow BIOS Read-Only
`
`are test“?
`~ . a e ou me
`266
`(F'qute 14)
`
`267
`
`‘
`
`Return to
`
`APM
`
`)
`
`Save timer comtroller state and
`IDE cantraller state by writing the “2,76
`values In their re rsters into
`segment DOOOH do a structure
`
`i
`
`FG.10B
`
`
`
`U.S. Patent
`
`Apr. 30, 1996
`
`‘Sheet 15 0f 37
`
`5,513,359
`
`T
`
`286
`Instruct the memor
`controller to tlush t e N
`external cache
`
`292
`Initialize IQE controller to
`put hard drive into a known N
`state.
`
`Locate Suspend File; Read
`tile size and signature.
`
`Reset taitsate timer and
`ensure switch was not
`pressed again
`
`A2197
`
`causes code
`to jump here
`
`CLEAR
`Suspend Flog F292
`in CMOS memory
`
`Cato RESET
`354
`Vector and Thereby
`restart system ~
`(does not return)
`
`Call the Fotat
`298
`Suspend Error
`Routine (task 652 N
`of ?gure 13)
`
`Locate Suspend File on
`Fixed Disk. Write signature
`phrase to harddrive.
`
`299
`
`Go to task 506
`to recover from
`partial suspend
`
`FIG.1OC
`
`
`
`U.S. Patent
`
`Apr. 30, 1996
`
`Sheet 16 of 37
`
`5,513,359
`
`Write entire 64K data
`structure in segment
`DOOOH to horddisk
`
`302
`
`Read data from system memory,
`compress, and write to butter
`#l in segment COOOH. Process
`enough data to fill butter #l
`
`Parallel threod
`(Write from Butler Routine)
`N304 307
`
`308
`
`N306
`
`Write curent butter to
`Suspend File. Moke other
`butler the current bullter.
`
`316
`
`Stort porollel threod
`interrupt-driven twin-butter
`butter-Write Routine
`t
`Read next date trom system
`memory, compress, and write to
`the butter in segment COOOH not
`currently being written to the
`Suspend File. Process enough
`data to fill that butter. Note,
`ideo memory is not commpressed.
`
`Wait for Write from
`‘lbutter Routine to finish
`writing current butter
`to Suspend File.
`312
`
`309
`
`Reset loilsote timer and
`ensure switch was not
`pressed ogoin
`
`310
`
`Done writing
`No linol butter to Suspend
`File.
`
`3' 4
`
`one processing
`all of system memory
`(main memory, extended
`memory, and video
`
`318
`Wait for Write from
`butler Routine to finish
`writing current buffer
`to Suspend File.
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 17 of 37
`
`5,513,359
`
`FIG. 10E
`
`L1 320
`
`Savethovidoocmtmllerstato,
`tmDMAoorlmllorstateJhe
`8277did¢amcomoller
`statqmtMUARTs'damsby
`wlitinglhovaiminmeir
`mpedivemgimlmo
`Wooooummm
`
`3.28
`Road16-bittimo-ltamp
`mhldl-lpoadtilmrs
`mdwritolnbugmant
`DOOOHddautmdum
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 18 of 37
`
`5,513,359
`
`FIG. 1 OF
`
`336
`Rewrite 0min! 64K data
`structure In moment
`DOOOH to huddrivo
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 19 of 37
`
`5,513,359
`
`380
`BoobUp Routine:
`CPU Jumps b Reset Vector
`at power-1p or reset
`
`FIG. HA
`
`382
`
`CPU ‘788*; 50* W
`momoly cmtmllor
`
`383
`ToslShadoWMamoryand
`copyBlOSfmmROMb
`ShadowRAM; activate
`Shadow/Memory
`
`396
`Test Remaining System RAM
`
`400
`Test and initialize auxiliary
`davicas: 8259, UARTs,
`8042, on
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 20 of 37
`
`5,513,359
`
`FIG. HB
`
`IstheSuspend
`
`Yes
`
`FIaoSErin
`
`410
`
`Test Find Disk Drive
`
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 21 of 37
`
`5,513,359
`
`0N=u££0¢3m3.
`
`.60205Baour.5.33
`
`m;
`
`
`
`as“.283wm.
`
`$0.205Em
`
`0:.0E7
`
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 22 of 37
`
`5,513,359
`
`FIG.
`
`1 2A
`
`
`16.9
`Find Suspend File on hard
`drive; mad signature and sizn
`
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 23 of 37
`
`5,513,359
`
`433
`
`
`
`
`
`Read fmm Suspend Filo 64K
`blodmonaopondingtouooment
`DOOOHandwritetoOOOOH
`
`
`
`from CMOS
`
`memory
`
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 24 of 37
`
`5,513,359
`
`480
`
`Restom 8277 diskette comollor
`
`moisten.
`
`state bywriting values 1mm segment
`DOOOH data mmszn
`
`FIG. 1 20
`
`
`
`
`524
`
`Pang
`CM-Alt-Deleta
`causes code
`
`
`
`
`
`to junp hem
`
`
`‘ h [I [.-
`bum.
`
`482
`
`
`
`
`
`RestoraDMAoontmflerstateby
`writing values {tom Segment
`DOOOH data mum to DMA
`
`
`
`commuermgism
`
`
`484
`
`Rastom UARTs' m: bywriflng
`values [mm leaner! DOOOH
`datam b UARngim
`
`4%
`Read 8K flea—Fun Smpend
`File to swam in sequent
`
`0‘; I:
`
`:
`
`_
`o ‘
`"Ag: 0 - ‘ an.
`
`.
`-
`- 5“”
`
`O
`
`I
`
`'
`
`.
`
`19.4
`Readdammunbmm
`
`cognatGOOOHnotmnfiy
`belmwduanbfiecompmu.
`“mm“.m
`memory. Processaluhodata
`inmatbufer.
`
`Fihmmbwm.
`Makedherbdferthew
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 25 of 37
`
`5,513,359
`
`
`
`
`
` Rood maidnodata [mm
`Suspend File and mite b
`
`wmmt tutor. SET flag to
`indicate finished landing.
`
`
`
`
`
`“d”
`
`FIG. 12D
`
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 26 of 37
`
`5,513,359
`
`FIG. 12E
`
` 512
`
`
`Rostom 8042 state by waiting
`values from segment DOOOH
`data chuckle to 8042 Ingmar:
`
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 27 of 37
`
`5,513,359
`
`Saw CPU Slate
`
` 55.9.0
`Routine
`
`'
`
`FIG. 1 3A
`
`E
`NOTE: APM made sequent:
`EOOOH and FOOOH maerile
`
`general moisten to the Stack
`
`balm: calling this Rwiino; APM
`also PUSHed EFLAGS to the
`Stack. disabled maskable
`inlenupts, and PUSHed all 01ml
`
`.
`
`604
`
`Synduonimtomousedatapadtet
`taonsmlhismimm
`
`betweenmwsepadm
`
`’
`6.9.6
`PushlhesiatoofANb
`“slack
`
`&
`Savali'lestatéoi‘meFloaiimPolm
`Copmceasorflfptuentnomo
`EOOOHdatam
`
`mode
`mode?
`
`610
`
`SET Flags in waned E0001
`indicating 16bit mode «32bit
`
`612
`u; the
`CPU in proiocbd
`
`Yes
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 28 of 37
`
`5,513,359
`
`
`
`
`614
`Save machinem wont
`
`
`
`and CR3 lo moment EOOW
`datum;SETTR=0md
`
`LDTR=Oandnvato
`
`
`
`646
`
`GOTO
`Como! Root
`Saved
`
`mantEOOOl-ldu
`
`Call Fatal Suspend
`Enur Routine (task 652.
`
`bum)
`
`640
`
`Jump to Fania! CPU
`Restore from Fatal
`
`
`
`
`
`
`CPUSWRW)
`
`
`
`
`FIG. 133
`
`LDTRbthosegmeriEOOOH mmm
`mm
`mmnm
`
`Save vas moisten (08.
`68. F8. and GS)tothe
`segment EOOOHdata
`strum“
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 29 of 37
`
`5,513,359
`
`FIG' 1 3C
`
`622
`
`PUSH 08. ES. FS.
`
`
`
`
`
`
`RESEThomicropmcumby
`JWPimtoflnRoutVocbflhoflod
`
`
`aW‘bIhoSuspdeafim)
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 30 of 37
`
`5,513,359
`
`FIG. 13D
`
`,,
`
`652
`
`Fatal Suspend Ennr
`
` 654
`
`RESET the Failsafe
`
`
`
`Tamer (duh (22) leaving
`'
`the video Iimal d!
`
`
`
`
`656
`
`BEEP has time:
`
`
`
`RESEI’ the Faibafe
`
`
`
`658
`
`Tumor (chain 02) leaving
`the video OW on
`
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 31 of 37
`
`5,513,359
`
`FIG. 14A
`
`7&1
`Restore CPU State
`
`Routsno
`
`19.1
`
`3mm“
`9°96
`Mode?
`
`Yes
`
`N°
`
`,
`
`:
`
`by
`
`752
`
`ammunywmmrss
`pom to
`TR
`
`madman-nae
`
`782
`Noam-PBTW
`Tabb-tcwowmm
`OEOOOHWOEFFFHm
`
`Maxim-datum
`mmmu
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 32 of 37
`
`5,513,359
`
`
`
` 714
`
`CLEARIhebmybitinthe TSS
`
`
`pointedtobylhom
`
` 764
`
`
`
`Load the Page Dinetmy Base
`Reamer (In CR3) with COOOOH
` Load Ds. ES. F8. 68. and
`$3 wilh the selector valid
`
`
`
`FIG. 14B
`
` upporhflfofESI. LDTRvaluo
`
`hbhbnerESHSI)
`
`
`
`
`LMGDTRDTRIMCRO
`mmmmm
`
`
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 33 of 37
`
`5,513,359
`
`FIG. 1 4C
`
` (0: 68. F8. 08. ES. SS. ESP.
`
`EFLAGS (mar setting the VM
`
`bit), and CS
`
`
`
`728
`
`
`Pusummmm
`Rounmmng
`
`toRESTORE_FPCP
`'
`
`784
`
`
`
`LoodCRSwifl'lfi'IeCRii
`728
`
`
`vatuehEDXloedSSwflh
`RETD to RESTORE_FPCP
`
`
`
`
`“SSVIlufmCXJood
`
`ESPwilhESPvdueinEBP
`
`
`
`
` m
`POPGS.FE. ES.“
`
`DSofflhoStadt
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 34 of 37
`
`5,513,359
`
`FIG. 14D
`
`730
`
`REST0RE__FPCP: Restore the
`mutate Floating Point
`Copmmuorfifpmoummim
`vMMMWEOOOHdata
`Man
`
`
`
`732
`POPotheStnckand
`mmmam
`
`
`
`
`
`
`GaminAPMbtho
`
`WWMW
`
`
`mommopoue
`
`MShadowRAM
`
`WEOOOHmd
`
`FOOOHmd-only
`
`740
`SET'NonnalRmne"
`APMRotthodo
`
`
`
`
`
`746
`
`POPaIlFllgtd'fmeStadt
`(petfatmodbyAPM)
`
`,
`748
`RE‘IURNbIheAPM
`cuter
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 35 of 37
`
`5,513,359
`
`FIG. 15A
`
`299
`Save 8259 Routine
`
`'
`
`&
`Save Real Time Clock
`
`periodic inlenupl values
`
`210.5
`Save all readable registers
`
`toMWEOOOH
`datum
`
`CopymebouEn‘mofpnysiaai
`mmylolheCOOOHdala
`m
`
`savioenwtinesatCGOOH
`
`£19
`Filllhobolm 1Kafphysical
`
`memorywih256mique
`
`mmmmm
`dunmylervicamminesat
`CBOOH
`
`£12
`Bulld256dtmmyintenupt
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 36 of 37
`
`5,513,359
`
`21.5
`Disable the keyboard and
`mouse intermpfl‘)
`
`FIG. 15B
`
`Tastirna'nfiisming
`orh—eewieezsaveb
`madam
`
`to segment EOOOH data
`
`32L
`Allow intenupt to be serviced
`(determines 8259 base
`
`address); save base eddies:
`
`
`
`US. Patent
`
`Apr. 30, 1996
`
`Sheet 37 of 37
`
`5,513,359
`
`92.8
`Test if interrupt is pending
`
`EOOOHdetastrucmre
`
`or in—service; save to
`
`F'G. 15C
`
`@
`Wait for
`
`interrupt to
`be
`
`serviced
`
`£3.
`Allow inten'upt to be serviced
`
`(deteflnines 8259 sieve
`
`address); save slave address
`to segment EOOOH data
`struchme
`
`inthe iheCOOOHdata
`
`834
`
`Restore lower 1K of physieel
`memorywimthevaiuessaved
`
`838
`
`Mask all interrupts
`
`
`
`1
`DESKTOP COMPUTER HAVING A
`SINGLE-SWITCH SUSPEND/RESUME
`FUNCTION
`
`5,513,359
`
`2
`
`RELATED APPLICATIONS
`
`The present application is thought to be related to the
`following pending applications:
`application Ser. No. 08/097,250, filed Jul. 26, 1993, and
`entitled “DESKTOP COMPUTER SYSTEM HAVING
`ZERO VOLT SYSTEM SUSPEND” (further identified as
`Attorney Docket No. BC9-93-016 (21322/00161));
`application Ser. No. 08/097,246, filed Jul. 23, 1993, and
`entitled “METHOD OF SAVING AND RESTORING
`THE STATE OF A CPU EXECUTING CODE IN A
`PROTECTED MODE” (further identified as Attorney
`Docket No. BC9—93-017 (21322/00162)); and
`application Ser. No. 08/097,251, filed Jul. 26, 1993, and
`entitled “DESKTOP COMPUTER SYSTEM HAVING
`MULTI—LEVEL POWER MANAGEME
`”
`(further
`identified as Attorney Docket No. BC9-93-015 (21322/
`00163)).
`
`FIELD OF THE INVENTION
`
`The present invention relates generally to computer sys»
`tem architecture and, more specifically, to a desktop com-
`puter system having a system suspend/resume capability and
`a single switch to suspend and resume the system.
`
`BACKGROUND OF THE INVENTION
`
`Personal computer systems are well known in the art.
`Personal computer systems in general, and IBM Personal
`Computers in particular, have attained widespread use for
`providing computer power to many segments of today’s
`modern society. Personal computers can typically be defined
`as a desktop, floor standing, or portable microcomputer that
`is comprised of a system unit having a single central
`processing unit (CPU) and associated volatile and non-
`volatile memory, including all RAM and BIOS ROM, a
`system monitor, a keyboard, one or more flexible diskette
`drives, a fixed disk storage drive (also known as a “hard
`drive”), a so—called “mouse” pointing device, and an
`optional printer. One of the distinguishing characteristics of
`these systems is the use of a motherboard or system planar
`to electrically connect these components together. These
`systems are designed primarily to give independent com-
`puting power to a single user and are inexpensively priced
`for purchase by individuals or small businesses. Examples
`of such personal computer systems are IBM’s PERSONAL
`COMPUTER AT and IBM’s PERSONAL SYSTEM/1 (IBM
`PS/l).
`Personal computer systems are typically used to run
`software to perform such diverse activities as word process
`ing, manipulation of data via spread—sheets, collection and
`relation of data in databases, displays of graphics, design of
`electrical or mechanical systems using system-design soft-
`ware, etc.
`
`IBM PS/ ls and PS/2s are desktop computers designed to
`be used at a single location. For example, in today’s society
`many individuals have desktop computers at their desks or
`in rooms dedicated to computer-aided tasks. Desktop com-
`puters are typically set up at a location and used by one or
`many users without ever moving the computer.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`4o
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Desktop systems may be classified into networked and
`non-networked computer systems. Networked computer
`systems are part of a larger computer system and are
`connected to other computers or servers via local area
`networks (LANs) or wide area networks (WANs). Such
`networks, using special interfaces and protocols, allow com-
`puters to share data and programs in an efiicient way.
`Desktop computer systems used in businesses are typically
`networked computer systems. Non-networked computers,
`on the other hand, are not connected to any other computers.
`Data transfer from one computer to another is accomplished
`by writing data to flexible diskettes with a computer in one
`location and reading the data with a computer at another
`location. Desktop computers used in homes are typically
`non-networked computers.
`Unlike desktop computers, which are designed to remain
`at a single site, portable computers, also known as “laptop
`computers” or “notebook computers” depending on their
`size, such as IBM’s PS/2 L40 Think Pad, are designed to be
`taken with the user and used at any number of sites. For
`example, a salesperson might use a notebook computer at
`the salesperson’s desk to generate a report on projected
`sales. If the salesman is called from the salesperson’s desk
`to a meeting, the salesperson could suspend the current task,
`pick up the notebook computer, and take it to the meeting.
`Once at the meeting, the salesperson could take out the
`computer, resume the software execution, and take notes or
`call up information during the meeting. As another example,
`a student might be writing a term paper at home until
`class-time, at which time the student could take the notebook
`computer to class to take notes.
`Portable computers are typically non-networked comput‘
`ers, although some users will connect their portable com-
`puters to an office LAN when the computer is to be used in
`the oflice.
`
`Portable computers difl°er from desktop computers in a
`number of respects. Portable computers are typically pow-
`ered by rechargeable batteries. The user will charge the
`batteries using electricity from a wall-plug, use the computer
`until the batteries need recharging, and then recharge the
`batteries. While the batteries are recharging, the portable
`computer may not be moved; the computer movement is
`limited by the length of the power cord. Thus, a computer
`having its batteries charged in effect loses its portability until
`the batteries are sufiiciently charged. Like a flashlight, or
`other battery-powered device, the more power the portable
`computer consumes, the shorter period of time the user will
`be able to use the portable computer before the batteries
`need recharging. Thus, power consumption is a factor users
`consider when purchasing a portable computer and, not
`surprisingly, a major issue in the portable computer industry.
`Therefore, the computer industry has spent much time and
`money designing portable computers that use less and less
`electrical power.
`However, there is a trade off; the low-powered computers
`use more expensive low-power components, which cannot
`execute computer commands as quickly as the faster, high-
`power components. Moreover, in addition to making use of
`more expensive components, portable systems typically use
`more complex designs, thereby adding to the cost of portable
`computer systems.
`Desktop computers, by comparison, are usually powered
`using electricity from a wall—plug; desktop computers have
`no batteries to run low (with the exception of a very small
`battery used to back up the real time clock, which can last
`for years without recharging). Consequently, desktop com-
`
`
`
`3
`
`4
`
`5,513,359
`
`puters may make use of the faster, high-power, and less
`expensive components. In short, the portable computers use
`less electrical power and are typically not as computation-
`ally powerful as desktop computers, which use more elec-
`trical power.
`In today’s energy-conscious society, simple alternatives
`exist to leaving desktop computer powered on all day. One
`alternative is a technology found in portable computers. If a
`portable computer is idle for a certain period of time, usually
`a number of minutes, the computer will automatically stop
`spinning the fixed disk within the fixed disk storage unit and
`stop generating the computer’s display. Both of these acts
`conserve power.
`
`Portable computers also have other more complicated
`ways of conserving battery-power. If the system is idle for
`a given period of time, some portable computer designs start
`turning components off in such a way that they may be
`restored with no data loss. To keep the memory from being
`lost, the portable computer has a special battery circuit to
`keep the power to the memory without power to the CPU
`and the other circuitry. The special battery circuit increases
`the cost and complexity of the printed circuit board and
`increases the number of components of the system. Another
`way to implement the suspend/resume function is to use a
`CPU that is a member of a special family of processors
`called the “SL” family. SL CPUs are designed differently
`and have special commands to allow designers to easily
`implement battery—power saving functions. However, the SL
`family is more expensive and processors from the SL family
`are typically not as computationally powerful as the standard
`processors. In addition, portable systems typically have
`expensive “shadow” registers to save the several write-only
`registers found in typical computer systems. Such special
`features add complexity and cost to the printed circuit board
`design and increase the number of components in the
`computer system. Moreover, it is generally believed that it
`is impossible to save the state of a non-SL 80386 or 80486.
`Because of the many differences between portable com-
`puters and desktop computers, consumers expect laptop and
`notebook computers to be priced higher than desktop com—
`puters. Consumers expect desktop computers to be very
`computationally powerful, yet very inexpensive. Thus, a
`desktop computer implementing a suspend/resume scheme
`using the expensive and complex techniques used in por-
`table computers would be too expensive to sell
`in the
`desktop market. Therefore, any power conservation imple-
`mentations in desktop designs typically make use of existing
`components or make use of newer components that are at
`least as powerful as standard components used in desktop
`systems.
`
`Moreover, networked and non-networked desktop sys-
`tems have different requirements. Some LAN protocols
`require LAN hardware in a computer system to remain
`powered or the network might fail. Non-networked desktop
`systems obviously have no LAN hardware, so LAN failure
`is not a problem with non-networked systems.
`It is, therefore, believed desirable to provide a desktop
`computer system with power management features similar
`or superior to portable systems.
`It is also believed desirable to provide desktop systems
`with power management capability without using the more
`complex designs and expensive components used in portable
`computer systems with similar features.
`It is also believed desirable to save the state of a non-SL
`
`80386 or 80486 without using the more complex designs
`and expensive components used in portable computer sys-
`tems with similar features.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`The EPA has promulgated guidelines for energy-efficient
`computers. The EPA set EPA Energy Star requirements for
`computer systems desiring to be considered “Green,” that is,
`energy eflicient. A computer may be labeled with the “EPA
`Energy Star” label if it has a mode in which it consumes less
`than thirty watts of power, or the monitor consumes less than
`thirty watts of power, or if both the computer and the
`monitor each consume less than thirty watts of power. The
`EPA “Memorandums of Understanding” with individual
`manufacturers set out
`the power requirements. Desktop
`computers typically are not designed with these capabilities.
`It is therefore desirable to provide a desktop computer that
`meets the “green” standard.
`It is also desirable to take into account whether a com-
`
`‘puter system is a networked or a non-networked desktop
`computer in fashioning an energy-conservation system.
`When computers are turned on, they typically go through
`a “booting” process. When a computer “boots” it first
`performs a power-on self-test (POST), which involves run—
`ning various tests to ensure that the computer is functioning
`correctly. After performing the POST, the computer typi-
`cally loads the operating system (OS), such as IBM’s
`PC-DOS. After the OS is loaded, many computers load a
`graphic user interface (GUI), such as Microsoft’s Windows.
`Then, the user must open application software and load
`working files. This entire process can take quite a bit of
`time—up to several minutes in some cases.
`Although several minutes does not seem like much time,
`to a user waiting for a computer system to boot, load the OS,
`load the GUI, and load the applications, that time is unpro-
`ductive and annoying and effectively prevents users from
`conserving power by making it very inconvenient to save
`power by turning off their computers. That is, such usability
`penalties make manual power management schemes imprac-
`tical.
`
`It is therefore desirable to provide a desktop computer
`system with power management capabilities without signifi-
`cant usability penalties. That is, it is desirable to provide a
`computer system that has a power-conservation mode and
`can later be resumed in an acceptable amount of time and in
`any event less than the amount of time it would take to
`restart the computer system.
`Occasionally, a user might leave the desktop computer
`idle while an application is executing on the computer. For
`example, if the user is using a word processing program and
`a spreadsheet program simultaneously to prepare a sales
`report'and the phone rings or the user is called away from the
`desk, the computer would still be executing the applications.
`Any effective power management implementation should be
`able to conserve power and at the same time prevent the user
`from losing data, which would occur if, for example, the
`computer powered itself off in the middle of an application.
`Moreover, current software applications do not automati-
`cally save their states in such a way that they may be
`resumed where they were interrupted.
`It is, therefore, desirable to provide a computer system
`that can enter a power—conservation mode while applications
`are executing on the system. It is further desirable to make
`such a power conservation mode transparent to the applica-
`tion software.
`
`Sometimes a user of a desktop computer might know if
`the computer will not be needed for a while. It is desirable
`to allow the user to be able to cause the computer to enter
`a power-conserving mode manually to save the power the
`computer would use while deciding that it has been idle long
`enough to warrant entering a power-saving mode.
`
`
`
`5,513,359
`
`5
`It is, therefore, desirable to allow the user to manually
`cause the desktop computer to enter a power conservation
`mode, without first having to exit applications, and be able
`to resume using the applications as though the computer was
`not turned off.
`
`Typical portable computers have a switch to control the
`power to the computer and a different switch to implement
`the suspend/resume function. This can cause user confusion
`and increases the cost and complexity of portable comput-
`ers. Thus,
`it is desirable to provide a desktop computer
`system with the above power—conservation capability with—
`out using a plurality of buttons.
`
`SUMMARY OF THE INVENTION
`
`According to the present invention, one switch is used to
`control
`the on/off and suspend/resume functions of the
`computer system. The computer system is designed with
`four states: a normal operating state, a standby state, a
`suspend state, and an off state. One switch is used to change
`between the off state, the normal operating state, and the
`suspend state.
`The normal operating state of the computer system of the
`present invention is virtually identical to the normal oper-
`ating state of any typical desktop computer. Users may use
`applications and basically treat the computer as any other.
`One difference is the presence of a power management
`driver, which runs in the background (in the BIOS and the
`operating system), transparent to the user. The portion of the
`power management driver in the operating system (OS) is
`the Advanced Power Management (APM) advanced pro—
`gramming interface written by Intel and Microsoft, which is
`now present in most operating systems written to operate on
`Intel’s 80X86 family of processors. The portion of the power
`management driver in BIOS (APM BIOS) is unique to the
`present invention and communicates with the APM OS
`driver. The APM OS driver and the APM BIOS routines
`together control the computer’s transition to and from the
`other three states.
`
`The second state, the standby state, uses less power than
`the normal operating state, yet
`leaves any applications
`executing as they would otherwise execute. In general,
`power is conserved in the standby state by placing devices
`in their respective low—power modes. For example, power is
`conserved in the standby state by ceasing the revolutions of
`the fixed disk within the hard d