throbber
CAC A AAA
`
`US005479639A
`
`115
`United States Patent
`5,479,639
`Ewertz et al.
`Dec. 26, 1995
`Date of Patent:
`[45]
`
`Patent Number:
`
`[11]
`
`[54]
`
`[75]
`
`COMPUTER SYSTEM WITH A PAGED
`NON-VOLATILE MEMORY
`
`Inventors: James H. Ewertz; Orville H.
`Christeson, both of Portland; Douglas
`L. Gabel, Aloha; Sean T. Murphy,
`Portland, all of Oreg.
`
`OTHER PUBLICATIONS
`
`MarkusA. Levy, “Designing with Flash Memory”, Circuit
`Cellar Ink, Dec. 1990, pp. 50-58.
`Jerry Jex, “Flash Memory BIOS For PC and Notebook
`Computers”, IEEE, 1990, pp. 692-695.
`Waite, et al., “Soul of CP/M”, Howard W. Sams and Co.,
`1983, pp. 2~7, 177-182 and 279-322.
`
`[73]
`
`Assignee:
`
`Intel Corporation, Santa Clara, Calif.
`
`(List continued on next page.)
`
`[21]
`
`Appl. No.: 279,692
`
`[22]
`
`Filed:
`
`Aug. 26, 1994
`
`Primary Examiner—Tod R. Swann
`Assistant Examiner—Hiep T. Nguyen
`Attorney, Agent, or Firm—Blakely, Sokoloff, Taylor & Zaf-
`man
`
`Related U.S. Application Data
`
`[57]
`
`ABSTRACT
`
`[63]
`
`Continuation of Ser. No. 137,376, Oct. 14, 1993, Pat. No.
`5,371,876, which is a continuation of Ser. No. 698,318, May
`10, 1991, abandoned.
`
`[51]
`[52]
`
`[58]
`
`[56]
`
`Tint, Cho eccccceesssccssecesssssseessesssssssesssssuesesees GO6F 12/02
`TS. C1. eescsessesnessseeseee 395/430; 395/479; 395/413;
`395/419; 364/DIG.1
`Field of Search 2.0.0... 364/200 MSFile,
`364/900 MSFile; 395/400, 425
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`A computer system wherein a paging technique is used to
`expand the useable non-volatile memory capacity beyond a
`fixed address space limitation. The computer system of the
`preferred embodiment includes a flash memory component
`for storing non-volatile code and data including a system
`BIOS in the upper 128K of memory. The useful BIOS
`memory space is effectively increased while maintaining the
`address boundary of the upper 128K region. The address
`space of the non-volatile memory device is logically sepa-
`rated into distinct pages of memory (Pages 1-4). Using the
`apparatus and techniques of the present invention, Page 1,
`Page 3 and Page 4 may be individually swapped into the
`address space originally occupied by Page 1 (the swappable
`page area). In the preferred embodiment, Page 2 is held
`4,153,937
`5/1979 Poland ....cesscssccsscsssssssereesueeeres 364/706
`static and thus is not used as a swap area. Each of the
`4,290,104
`9/1981 Holltey et al.
`se
`eeeseeeeeee 395/400
`swappable pages, Page 1, Page 3, and Page 4, contain
`4,374,417
`...
`2/1983 Bradley et al.
`395/400
`processing logic called swapping logic used during the
`4,441,155
`4/1984 Fletcheretal....
`395/400
`swapping or paging operation. The swapping logic operates
`4,443,847
`4/1984 Bradley et al. oes 395/425
`in conjunction with paging hardwareto effect the swapping
`4,608,632
`8/1986 Kummer ..........cscscssssesereeseees 395/425
`
`of pages into the swappable page area. The high order
`4,763,333
`8/1988 Byrd .....c..escssecssssnsesscesserneeorers 371/66
`
`processor address lines are input by a page decoder. The
`4,799,145
`......sseccsssesseerenseanes 395/700
`1/1989 Gosset all.
`4,831,522
`.........csceseeee 395/425
`5/1989 Henderson et al.
`page decoder is used to modify the address actually pre-
`
`4,862,349
`.......csccseeeesees 395/700
`4/1989 Foreman et al.
`sented to the non-volatile memory device. A page register
`
`5,034,915
`ecseeeeeeeee 395/275
`7/1991 Stymaet al...
`provides a means by which the processor mayselect a page
`
`
`5,053,990 10/1991 Kreifels et ab.ou...essere 395/425
`in non-volatile memory. In an alternative embodimentof the
`
`5/1992 Nash ......ceccssssesesesesesssenetesersane 395/400
`5,117,492
`present invention, several different forms of configuration or
`........scecceeeee 357/23.5
`5,126,808
`6/1992 Montalvo et al.
`identification information may be stored in a page of non-
`7/1992 Bertram etal. ......ccccscsecreeees 395/650
`5,134,580
`volatile memory.
`5,136,713
`8/1992 Bealkowski et al.
`.......
`cece 395/700
`5,142,680
`8/1992 Ottman et al... ecessereeneee 395/700
`5,210,875
`5/1993 Bealkowski et al. 0... 395/700
`
`
`
`
`
`
`RECOVERYB08(158)
`(Beran
`icallyprosocrest(res yy38
`‘rmertormatcain?
`"RESERVEDFoRUSERCIR)
`th
`ane
`Me
`—aesevenoesrare oar |”
`wipeoa2K)
`
`
`
`
`14 Claims, 11 Drawing Sheets
`
`
`
`ey
`
`“
`
`PAGESGon)
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`5,479,639
`Page 2
`
`OTHER PUBLICATIONS
`
`7, Apr. 1990, pp. 1-2.
`
`Waite et al., “CP/M Bible”, 1983, pp. 5-22 and 100.
`Brett Glass, “The IBM PC BIOS”, Byte, Apr. 1989, pp.
`303-310.
`Gus Venditto, “Pipeline”, PC Magazine vol. 9, No. 3, Feb.
`1990, pp. 1-3.
`Bill Machrone,“Bill Machrone”, PC Magazine, vol. 9, No.
`
`Gus Venditto, “Intel’s flash memory poised to give laptops
`their next great leap”, PC Magazine vol. 9, No. 14, Aug.
`1990, pp. 1-3.
`
`John H. Wharton, “FLASH! memory technology marches
`on”, Microprocessor Report, Aug.
`1990,
`pp.
`1-4.
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`Dec. 26, 1995
`
`Sheet 1 of 11
`
`
`
`
`
`Qd1AAQVBe10I¢BEG
`
`901
`
`5,479,639
`
`[ans
`
`U.S. Patent sng
`ssa00yWopury
`
`AIOWDIN
`
`col
`
`so1aogAejdsiq
`
`Sol
`
`IOSSO001g
`
`101
`
`
`
`ao1aaqyinduy
`
`vol
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`U.S. Patent
`
`Dec. 26, 1995
`
`Sheet 2 of 11
`
`5,479,639
`
`
`
`256 FFFFFRhti(w”™”~SCOdtC(iti‘“‘OOCOCOSN
`SWAPPING LOGIC
`OOee ee 315
`
`FIGURE 2
`
`
`
`PAGE1
`(301)
`
`316
`
`F0000h
`192K)ooee
`EFFFFh
`320
`RECOVERYBIOS(16K)
`(Electronically protected from
`erasure or modification)
`EC000h
`
`306
`
`RESERVED FOR USER (8K)
`———__FA00hdtty PAGE2
`
`RESERVED FOR SYSTEM (8K)
`(302)
`E8000h
`
`308
`
`VIDEO (32K)
`
`E0000h
`Ag ——————_—_—_—_==_=—==== SSstSsStsere2e2222 22222222222
`SWAPPING LOGIC
`
`309
`
`—----------—---
`
`310
`
`PAGE3
`(303)
`
`311
`
`SWAPPING LOGIC
`
`sian
`
`321
`
`——--—-——-——-~——~-—--+-
`
`312
`
`.
`
`PAGE4
`(304)
`
`313
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`U.S. Patent
`
`Dec. 26, 1995
`
`Sheet 3 of 11
`
`5,479,639
`
`¢wOSSAIONd de4aNDIA
`
`
`
`
`(Usd-4000002")SONVASSAAGAYYAHLO|(Ip9)Wad-40000Afg(is)witswooed|Grrmoons
`
`617SHNITSSHadqv\>
`
`
`AYOWAWFILLYTOA-NON
`
`~wadooddFOvdwOSSs00"Ud
`[OVINE
`LIZtor
`Vedandd
`aq-aaawooos|___vn_|
`a-yVIN
`
`
`
`YWALSIONadOVd
`
`viz
`
`ssayddav
`
`OZ
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`
`

`

`U.S. Patent
`
`Dec. 26, 1995
`
`Sheet 4 of 11
`
`5,479,639
`
`FIGURE 4
`
`PAGE = NEW_PAGE
`101
`
`102
`
`SWITCH_PAGE
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`U.S. Patent
`
`Dec. 26, 1995
`
`Sheet 5 of 11
`
`5,479,639
`
`FIGURE 5
`
`
`
`SW_SHADOW_OFF
`501
`
`
`
`SW_CACHE_OFF
`502
`
`
`PAGE >
`MAX_PAGE
`503
`
`
`
`
`NO - 506
`
`509
`
`PAGE_REG = PAGE_REG
`AND PAGE_REG_MASK
`OR PAGE
`507
`
`PAGE_ENTRY_TABLE
`(PAGE*2)
`508
`
`JUMP TO NEW
`PAGE
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`U.S. Patent
`
`Dec. 26, 1995
`
`Sheet 6 of 11
`
`5,479,639
`
`FIGURE6
`
`YES - 603
`
`SW_SWADOW_ON
`604
`
`PAGE= error page
`605
`
`
`606
`
`SW_CACHE_ON
`605
`
`TRUE_ENTRY_POINT
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`US. Patent
`
`Dec. 26, 1995
`
`Sheet 7 of 11
`
`5,479,639
`
`FIGURE 7a
`
`705
`
`POST Program
`(701)
`
`EFFFFh
`RECOVERYBIOS (16K)
`(Clectronically protected from
`erasure or modification)
`EC000h
`RESERVEDFOR USER(8K)
`EA000h
`RESERVED FOR SYSTEM (8K)
`E8000h
`
`VIDEO (32K)
`
`E0000h
`
`SWAPPING LOGIC
`
`(704)
`
`706 >
`
`Page 1
`
`ee
`
`age 2
`
`Swappable Page Area
`(700)
`
`F0000h
`EFFFFh
`RECOVERYBIOS(16K)
`(Electronically protected from
`erasure or modification)
`EC000h
`RESERVEDFOR USER(8K)
`EA000h
`RESERVED FOR SYSTEM (8K)
`E8000h
`
`VIDEO (32K)
`
`E0000h
`
`IPR2021-00570
`ANCORA EX2022
`
`Page 3
`
`ale
`
`Run-Time BIOS
`
`Page 4
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`U.S. Patent
`
`Dec. 26, 1995
`
`Sheet 8 of 11
`
`5,479,639
`
`705
`
`FIGURE 7b
`
`FFFFFh
`SWAPPING LOGIC
`
`(704) Page 1
`
`EFFFFh
`RECOVERYBIOS (16K)
`(Electronically protected from
`erasure or modification)
`EC000h
`
`-
`
`RESERVED FOR USER(8K)
`EAO000h
`
`RESERVED FOR SYSTEM (8K)
`E8000h
`
`VIDEO (32K)
`
`E0000h
`
`SWAPPING LOGIC
`
`Page 3
`
`Run-Time BIOS
`
`Page 4
`
`706
`
`FFFFFh
`SWAPPING LOGIC
`
`Swappable Page Area
`(700)
`
`
`
`F0000h
`EFFFFh
`RECOVERYBIOS (16K)
`(Electronically protected from
`erasure or modification)
`EC000h
`
`RESERVED FOR USER (8K)
`EA000h
`
`RESERVED FOR SYSTEM (8K)
`E8000h
`
`VIDEO (32K)
`
`E0000h
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`U.S. Patent
`
`Dec. 26, 1995
`
`5,479,639
`
`705
`
`FIGURE 7c
`
`FFFFFh
`SWAPPING LOGIC
`
`POST Program
`(701)
`
`Swappable Page Area
`(700)
`
`FO000h
`EFFFFh
`RECOVERYBIOS(16K)
`(Electronically protected from
`erasure or modification)
`EC000h
`
`(704) Sheet 9 of 11
`
`RESERVED FOR USER(8K)
`EA000h
`RESERVED FOR SYSTEM (8K)
`E8000h
`
`VIDEO (32K)
`
`E0000h
`
`EFFFFh
`RECOVERYBIOS(16K)
`(Electronically protected from
`erasure or modification)
`EC000h
`
`RESERVED FOR USER (8K)
`EAO000h
`
`RESERVED FOR SYSTEM (8K)
`E8000h
`
`VIDEO (32K)
`
`E0000h
`
`SWAPPING LOGIC
`
`Run-Time BIOS
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`al!
`Swappable Page Area POST Program
`
`ir
`ra
`tt
`to
`'
`'
`t
`i
`t
`|!
`id
`ta
`us
`‘4!et
`tri
`ittt i
`
`PL!
`i
`i
`rae t
`
`'
`i
`'
`t
`$
`'
`a
`i
`i
`i
`Page3 !
`!
`t
`i
`i
`i
`i
`’
`J
`'
`i
`t
`t
`t
`$
`t
`t
`t
`t
`alt
`o@
`=
`
`it'
`
`| tI
`
`tIt'!i
`
`IPR2021-00570
`ANCORA EX2022
`
`Pages4
`:t
`
`iIittt
`
`Run-Time BIOS
`(704)
`
`US. Patent
`
`Dec. 26, 1995
`
`Sheet 10 of 11
`
`5,479,639
`
`705
`
`FIGURE 7d
`
`FFFFFh
`SWAPPING LOGIC
`
`(700)
`
`FO000h
`EFFFEh
`RECOVERYBIOS(16K)
`(Electronically protected from
`erasure or modification)
`ECO000h
`RESERVED FOR USER (8K)
`EA000h
`RESERVEDFOR SYSTEM (8K)
`E8000h
`
`VIDEO (32K)
`
`E0000h
`
`!
`!a
`
`!t ii
`
`(701)
`
`Page 1
`
`==
`
`age2
`
`EFFFFh
`RECOVERYBIOS (16K)
`(Electronically protected from
`erasure or modification)
`ECO00h
`RESERVED FOR USER(8K)
`EAOQOOh
`RESERVEDFOR SYSTEM (8K)
`E8000h
`
`VIDEO (32K)
`
`E0000h
`SWAPPING LOGIC
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`U.S. Patent
`
`Dec. 26, 1995
`
`Sheet 11 of 11
`
`5,479,639
`
`FIGURE8
`
`COPY FLASH UPDATE ROUTINES
`TO RANDOM ACCESS MEMORY
`802
`
`
`
`SUBFUNCTION = 02 OR 82H
`CLEAR NON-VOLATILE
`MEMORY?
`803
`
`
`
`NO - 806
`
`YES - 805
`
`
`
`
`
`SUBFUNCTION = 03 OR 83H
`WRITE NON-VOLATILE
`MEMORY?
`807
`
` WRITE SLOT INFORMATION IN FLASH
`
`NON-VOLATILE MEMORY
`808
`
`
`
`NO - 813
`
`UPDATE FLASH NON-VOLATILE
`BOOKKEEPING SECTION
`
`
`
`810
`
`
`
`RELEASE FLASH UPDATE ROUTINE
`RANDOM ACCESS MEMORY
`
`811
`
`
`
`
`CONTINUE NORMAL
`- PROCESSING
`812
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`5,479,639
`
`1
`COMPUTER SYSTEM WITH A PAGED
`NON-VOLATILE MEMORY
`
`This is a continuation of application Ser. No. 08/137,376,
`filed Oct. 14, 1993, now U.S. Pat. No. 5,371,876, which is
`a continuation of Ser. No. 07/698,318, filed May 19, 1991,
`abandoned.
`
`FIELD OF THE INVENTION
`
`The present invention relates to the field of computer
`systems. Specifically, the present invention relates to the
`field of computer system architectures incorporating a non-
`volatile form of basic operating system processing logic.
`
`BACKGROUND OF THE INVENTION
`
`Manyprior art computer systemsare typically configured
`at a minimum with a processor, a random access memory
`device, and a read only memory device. Some systems, such
`as a variety of calculators, may operate with only a processor
`and a read only memory device. Read only memory devices
`(ROM)provide a non-volatile form of memory that is not
`destroyed when power is removed from the computer sys-
`tem.
`
`Prior an computer systemsare typically bootstrapped(i.e.
`powerup initialized) using the processing logic (i.e. firm-
`ware) stored within the read only memory device internal to
`the computer system. Since the read only memory device is
`non-volatile, the firmware within ROM is guaranteed to
`contain valid data or instructions; thus, the prior an computer
`system can be reliably bootstrapped using firmware within
`ROM.Many computer systems have successfully used this
`technique. One such system is the IBM Personal Computer
`(PC) developed by the IBM Corporation of Armonk, N.Y.
`Prior an versions of the IBM PC use read only memory
`devices for storage of firmware or a basic input/output
`system (BIOS) software program. The BIOSis an operating
`system that provides the lowest level of software control
`over the hardware and resources of the computer system.
`ROMstorage may also be used for non-volatile retention of
`network configuration data or application specific data.
`ROM devices in the prior art
`include basic read only
`memory devices (ROM), programmable read only memory
`devices (PROM), and erasable programmable read only
`memory devices (EPROM). Battery-backed random access
`memory devices such as CMOS RAM devices mayalso be
`used for non-volatile retention of network configuration data
`or application specific data in a computer system.
`Although ROM-based computer systems have been very
`successful in the prior art, a number of problemsexist with
`the use of these devices in a computer system. Most com-
`puter systems have a finite address space in which each of
`the computer
`system resources must operate. These
`resources include ROM, random access memory (RAM),
`input/output devices, and possibly other processors. ROM
`devices with a BIOS contained therein are typically con-
`strained to a specific address range within the addsess space
`available. In order to maintain compatibility with a particu-
`lar computer architecture, designers and developers in the
`computer industry create products in reliance on a particular
`ROM address standard. For example,
`the IBM PC AT
`architecture mandates that the ROM BIOSandother firm-
`ware based applications are limited to a 128K address space
`at the top of the first megabyte of memory. With this
`architecture, however, the ROM BIOScannot exceed 128K
`of ROM space. Within this ROM space, the BIOS must
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`35
`
`60
`
`65
`
`2
`contain processing logic for initializing and controlling
`many of the hardware systems and resources of the com-
`puter system. With the increased functionality of modern
`computer systems, the complexity of hardware systems and
`resources increases as does the quantity of BIOS code
`required to support them. Also, because of new technologies
`and capabilities such as Extended Industry Standard Archi-
`tecture (EISA) systems, flash memory and multi-language
`support for international operation of a computer system,it
`is becoming increasingly unfeasible to fit all desired BIOS
`features within the 128K boundary of the IBM PC AT
`architecture. Other varieties of computer systems typically
`have an established limit for the size of their BIOS. Even
`though the need for expanding the BIOS boundary is grow-
`ing, the boundary cannot be arbitrarily modified without
`losing compatibility with established standards.
`Thus, a means for expanding the useable BIOS memory
`space without violating established BIOS address boundary
`standards is needed.
`
`SUMMARYOF THE INVENTION
`
`The present invention is a computer system wherein a
`paging technique is used to expand the useable non-volatile
`memory capacity beyond a fixed address space limitation.
`The computer system of the preferred embodiment com-
`prises a bus for communicating information, a processor
`coupled with the bus for processing information, a random
`access memory device coupled with the bus for storing
`information and instructions for the processor, an input
`device such as an alpha numeric input device or a cursor
`control device coupled to the bus for communicating infor-
`mation and commandselections to the processor, a display
`device coupled to the bus for displaying information to a
`computer user, and a data storage device such as a magnetic
`disk and disk drive coupled with the bus for storing infor-
`mation and instructions. In addition, the computer system of
`the preferred embodimentincludes a flash memory compo-
`nent coupled to the bus for storing non-volatile code and
`data. Devices other than flash memory may be used for
`storing nonvolatile code and data. Using the present inven-
`tion, a paging technique expands the useable non-volatile
`memory capacity beyond a fixed address space limitation.
`The flash memory device used in the preferred embodi-
`ment contains four separately erasable/programmable non-
`symmetrical blocks of memory. One of these four blocks
`may be electronically locked to prevent erasure or modifi-
`cation ofits contents onceit is installed. This configuration
`allowsthe processing logic of the computer system to update
`or modify any selected block of memory without affecting
`the contents of other blocks. One memory block contains a
`normal BIOS. The BIOS comprises processing logic instruc-
`tions that are executed by the processor.
`In the preferred embodiment, the BIOS is constrained to
`the upper 128K ofthe first Mbyte of the addressable memory
`space in the computer system. Because of computer system
`design constraints and compatibility,
`the BIOS may not
`occupy locations outside of the upper 128K region. In the
`present invention, the useful BIOS memory spaceis effec-
`tively increased while maintaining the 128K boundary of the
`upper 128K region. This enlargement of the useable BIOS
`space is realized using the paging technique of the present
`invention. In the preferred embodiment, the address space of
`the non-volatile memory device is logically separated into
`four distinct 64K byte pages of memory (Pages 1-4). Using
`the apparatus and techniques of the presentiyaninn,1°870570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`5,479,639
`
`3
`1, Page 3 and Page 4 may be individually swapped into the
`address space occupied by the BIOS (the swappable page
`area). In the preferred embodiment, Page2 is held static and
`thus is not used as a swap area.
`Each of the swappable pages, Page 1, Page 3, and Page 4,
`contain processing logic called swapping logic used during
`the swapping or paging operation. The swapping logic
`operates in conjunction with paging hardware to effect the
`swapping of pages into the region occupied by the BIOS.
`The high order processor address lines are input by a page
`decoder. The page decoder is used to modify the address
`actually presented to the non-volatile memory device. A
`page register provides a means by which the processor may
`select a page in non-volatile memory.
`In an alternative embodiment of the present invention,
`several different forms of configuration or identification
`information may be stored in a page of non-volatile memory.
`Configuration information in this form may include EISA
`configuration data, other bus protocol information or net-
`work information. Identification information may include an
`Ethernet address, system serial numbers, or software license
`numbers.
`
`It is therefore an object of the present invention to provide
`a means for expanding the memory capacity for the BIOS
`while maintaining address space boundaries. It is a further
`objectof the present invention to provide a meansfor paging
`a system BIOS in a computer system. It is a further object
`of the present invention to provide a meansfor selecting a
`particular page of BIOS memory.It is a further object of the
`present invention to provide a means for swapping pages of
`BIOS. It is a further object of the present invention to
`provide a meansfor using page-resident processing logic for
`controlling the page swapping operation. It is a further
`object of the present invention to provide a means for
`maintaining at least one static page. It is a further object of
`the present invention to provide a means for storing con-
`figuration or identification information. It is a further object
`of the present invention to provide a meansfor storing and
`retrieving EISA information in flash memory.
`These and other objects of the present invention will
`becomeapparentas presented and describedin the following
`detailed description of the preferred embodiment.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is an illustration of the computer system of the
`present invention.
`FIG.2 is an illustration of the pages of BIOS usedin the
`preferred embodiment.
`FIGS. 3a and 3billustrate the paging hardware used in the
`present invention.
`FIGS. 4-6 are flow charts of the paging processing logic
`of the present invention.
`FIGS. 7a through 7dillustrate a memory map in various
`paging configurations.
`FIG. 8 illustrates processing logic for updating a flash
`memory device with EISA configuration data.
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`The present invention is a computer system wherein a
`paging technique is used to expand the useable non-volatile
`memory capacity beyonda fixed address space limitation. In
`the following description, numerous specific details are set
`forth in order to provide a thorough understanding of the
`invention, however, it will be apparent to one of ordinary
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`skill in the art that these specific details need not be used to
`practice the present
`invention. In other instances, well
`known structures, circuits, and interfaces have not been
`shownin detail in order not to unnecessarily obscure the
`present invention.
`,
`Referring to FIG. 1, a block diagram ofthe architecture of
`the computer system of the present inventionis illustrated.
`The preferred embodimentof the present invention is imple-
`mented using an 80386 or 80486 microprocessor manufac-
`tured by the Assignee of the present invention. It will be
`apparent to those of ordinary skill in the art, however, that
`alternative processors and computer system architectures
`may be employed. In general, such computer systems as
`illustrated by FIG. 1 comprise a bus 100 for communicating
`information, a processor 101 coupled with the bus for
`processing information, a random access memory device
`102 coupled with bus 100 for storing information and
`instructions for the processor 101, an input device 104 such
`as an alphanumeric input device or a cursor control device
`coupled to the bus 100 for communicating information and
`command selections to the processor 101, a display device
`105 coupled to the bus 100 for displaying information to a
`computer user, and a data storage device such as a magnetic
`disk and disk drive coupled with the bus 100 for storing
`information and instructions.
`
`In addition, the computer system of the preferred embodi-
`ment includes a read only memory component 103 coupled
`to the bus 100 for storing non-volatile code and data. In the
`preferred embodiment, read only memory device 103 is a
`flash memory component well knownin theart.
`Several types of non-volatile memory devices currently
`existing in the art may be reprogrammed without removing
`the device from a circuit board on which the device is
`installed. One class of reprogrammable nonvolatile memory
`devices is flash memory. Several different types of flash
`memory devices exist in the art. Using a dedicated set of
`electrical signals, the contents of flash memory may be
`erased and reprogrammed with new data. Many prior art
`flash memory devices only allow complete erasure and
`reprogramming of all memory locations of the device. Other
`flash memory devices, however, are partitioned into sepa-
`rately erasable and programmable blocks of memory in a
`single flash memory device. In the preferred embodimentof
`the present
`invention, such a partitioned flash memory
`device is used. In the preferred embodiment,
`two flash
`memory devices denoted 28FOOIBT are used. The
`28FOOIBT flash memory devices are 1M bit memory
`devices manufactured by the Assignee of the present inven-
`tion. It will be apparentto those skilled in the art that other
`forms of reprogrammable non-volatile memory devices may
`be used with the invention taught herein. One example of
`such a non-flash device is an electrically erasable program-
`mable read only memory (EEPROM).
`The flash memory device used in the preferred embodi-
`ment contains four separately erasable/programmable non-
`symmetrical blocks of memory. One of these four blocks
`may be electronically locked to prevent erasure or modifi-
`cation of its contents onceit is installed. This configuration
`allows the processing logic of the computer system to update
`or modify any selected block of memory withoutaffecting
`the contents of other blocks. The dynamic updating of a
`selected area of non-volatile memory is the subject of a
`co-pending patent application Ser. No. 07/695,952, filed
`May 6, 1991, and assigned to the Assignee of the present
`invention.
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`5,479,639
`
`5
`In the preferred embodiment, a basic input/output system
`(BIOS) is stored in flash memory 103. In addition, other
`system and application specific processing logic and data
`parameters may also be stored in flash memory 103. The
`following sections describe how the contents of flash
`memory 103 may be paged in a manner allowing the
`effective size of the flash memory 103 to increase without
`expanding accesses beyonda fixed address boundary.It will
`be apparent to those skilled in the art that the paged flash
`memory technique of the present invention may be used in
`a computer system using any type of non-volatile memory
`and is not limited to a system employing flash memory.
`Referring to the preferred embodimentillustrated in FIG.
`2, a paged BIOS memory map of the contents of flash
`memory 103 is depicted. In the preferred embodiment, the
`BIOSisconstrained to the upper 128K ofthe first Mbyte of
`the addressable memory space in the computer system. This
`address space is identified by region 320illustrated in FIG.
`2. In the prior art, the 128K region 320 is used for storage
`of the BIOS. The upperregion 301is used for storage of the
`normal system BIOS while the lower region 302 is used for
`storage of other logic and data such as overflow BIOS code
`and/ordata, video or other BIOS’s, set-up code or data, and
`other information or logic.
`In the present invention, the useful BIOS memory space
`is effectively increased while maintaining the 128K bound-
`ary of region 320. This enlargement of the useable BIOS
`space is realized using the paging technique of the present
`invention. In the preferred embodiment, the memory map
`illustrated in FIG. 2 is logically separated into fourdistinct
`64K byte pages of memory. These pages are denoted Page
`1 (301), Page 2 (302), Page 3 (303), and Page4 (304). Using
`the apparatus and techniques of the present invention, Page
`3 (303) and Page 4 (304) may be individually swapped into
`the address space occupied by Page 1 (301).In the preferred
`embodiment, Page 2 (302) is held static and thus is not used
`as a Swap area.
`It will be apparent to those skilled in the art that the 64K.
`byte page size of the preferred embodiment may be imple-
`mented as a different page size in order to better accommo-
`date an alternative embodiment. The techniques of the
`present invention, however, maystill be used with a different
`page size. Similarly, the preferred embodiment defines two
`swappable pages, page 3 (303) and page 4 (304), outside of
`the 128K boundary of region 320. It will be apparentto those
`skilled in the art that additional pages may be defined using
`the techniques of the present invention in order to further
`enlarge the useable area of the BIOS.
`Each of the swappable pages, Page 1 (301), Page 3 (303),
`and Page 4 (304), contain processing logic called swapping
`logic used during the swapping or paging operation. For
`example, the swapping logic for Page 1 (301) occupies a
`location in region 315. Similarly, each swappable page has
`swapping logic that resides in a fixed location relative to
`each page. The swapping logic operates in conjunction with
`paging hardware to effect the swapping of pages into the
`region occupied by Page 1
`(301). The operation of the
`swapping logic is described below in relation to the flow
`charts of FIGS. 4 and 5. The paging hardware ofthe present
`invention is described next.
`
`Referring now to FIG. 3a, a block diagram of the paging
`hardware of the present inventionisillustrated. A portion of
`the interface between processor 101 and non-volatile
`memory or flash device 103 is an address presented to flash
`memory and/or decoder logic on address lines 210. The
`address signals thus presented define the location in flash
`
`20
`
`25
`
`30
`
`40
`
`50
`
`55
`
`60
`
`65
`
`6
`memory 103 accessed by processor 101. For purposes of
`illustration, address lines 210 are shown separated into two
`components. The address signals on lines 211 comprise the
`. low-order 16 bits of the address output by processor 101.
`Higher-order address signals are output on line 212.It will
`be apparentto those skilled in the art that the number of high
`order address signals presented on line 212 depends on the
`address width of processor 101. For purposesofillustration,
`only four address signals or bits are shown online 212 in
`order to illustrate an access to the highest order location of
`flash memory 103.
`The four address lines on line 212 in the preferred
`embodimentare input by a page decoder 217. Page decoder
`217is used to modify the address actually presented to flash
`memory 103 on address lines 219. A second input to page
`decoder 217 comes from a page register 214 on line 216.
`Page register 214 provides a means by which processor 101
`may select a page in flash memory 103. Processor 101
`selects a page by outputting a binary value onlines 215 that
`corresponds to the desired page. In the preferred embodi-
`ment, the output on line 215 to page register 214 is per-
`formed using an OUTinstruction providedin the instruction
`set of processor 101. The use of an OUT instruction for
`loading an external register in this manner is well known in
`the art. Once page register 214 is loaded with a page number,
`this page number is provided to page decoder 217 on line
`216.
`
`~
`
`Page decoder 217 manipulates the address actually pre-
`sented to flash memory 103 on address lines 219 by first
`reading the high order processor address bits received on
`lines 212. If the value represented by the high order pro-
`cessor addressbits on lines 212 defines a processor access to
`the swappable page area (i.e. address range FOO00h through
`FFFFFh), page decoder 217 then reads the page number
`stored in page register 214. The page numberis used to
`replace the value of the high order processor address actu-
`ally output to flash memory 103 on address lines 219. In this
`manner, a processor access to the swappable page area can
`be redirected to a pre-determined page. If the value repre-
`sented by the high order processor address bits on lines 212
`defines a processor accessto an area of flash memory other
`than the swappable pagearea, the page decoder 217 does not
`need to read the page register and the processor address is
`passed through unmodified to the flash memory device 103.
`An example of the operation of page register 214 and page
`decoder 217isillustrated in FIG. 3b. If a value correspond-
`ing to Page 1 is loaded in page register 214 by processor 101
`and a processoraddress in the swappable page range F0000h
`through FFFFPFh is presented by processor 101 on lines 211
`and 212, high order processor address bits 16-19 output by
`processor 101 on lines 212 each take a binary value of 1,
`thereby defining an address range of FOOQOh through
`FFFFFh. Because processor 101 has accessed the swappable
`page area, page decoder 217 is enabled to read page register
`214 for the value stored therein. In this example, page
`decoder 217 reads a value corresponding to Page 1 and
`replaces the high order processor address with the Page 1
`value. Thus, a flash memory address in the range of F0000h
`through FFFFFh is presented to the flash memory 103.This
`address range (F0000h through FFFFFh) corresponds to
`Page 1 (301) illustrated in FIG. 2. Because Page 1 was
`already located in the swappable page address space, no
`other page needed to be swapped in. Thus, for the simple
`case of Page 1, the processor address was essentially passed
`through to flash memory 103, even though the page decoder
`217 still performed the address modification. This case is
`illustrated in FIG. 7a.
`
`IPR2021-00570
`ANCORA EX2022
`
`IPR2021-00570
`ANCORA EX2022
`
`

`

`5,479,639
`
`7
`In the preferred embodiment, Page 2 will never be loaded
`in page register 215, since this is a non-swappable page.
`Thus a processor access to the non-swappable address area
`(E0000h through EFFFFh) does not produce address modi-
`fication by page decoder 217. This caseis illustrated in FIG.
`Tb.
`
`Referring now to the Page 3 example illustrated in FIG.
`3b, page register 214 is loaded with a value corresponding
`to Page 3. A processor address in the swappable page range
`F0000h through FFFFFh is presented by processor 101 on
`lines 211 and 212. In this case, page decoder 217 reads the
`Page 3 value from page register 214 and replaces the high
`order processor address with the Page 3 value. This address
`modification results in a redirection of the processor address
`to a different address in flash memory 103 corresponding to
`the location of Page 3. In the example of FIG. 3b, the Page
`3 value is ODh. This value redirects the Page 3 accessto the
`flash memory address range DO000h through DFFFFh. It
`will be apparent to those skilled in the art that the processor
`memory access may be redirected to any area of flash
`memory 103. Other alternative embodiments may use a
`different Page 3 value and thereby redirect a Page 3 access
`to a different location in f

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