throbber
United States Patent [191
`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 1529
`
`

`

`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket