`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`Dec. 26, 1995
`
`Sheet 1 of 11
`
`
`
`SOIAIASRIOISBIE
`
`901
`
`U.S. Patent sng
`ssa00yWopury
`
`AIOWDIN
`
`col
`
`so1aogAejdsiq
`
`Sol
`
`5,479,639
`
`[ans
`
`IOSSO001g
`
`101
`
`
`
`ao1aaqyinduy
`
`vol
`
`IPR2021-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`
`U.S. Patent
`
`Dec. 26, 1995
`
`Sheet 4 of 11
`
`5,479,639
`
`FIGURE 4
`
`PAGE = NEW_PAGE
`101
`
`102
`
`SWITCH_PAGE
`
`IPR2021-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`Page 3
`
`ale
`
`Run-Time BIOS
`
`Page 4
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`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-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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*8'0663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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-00663
`ANCORA EX2023
`
`IPR2021-00663
`ANCORA EX2023
`
`
`
`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