Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Home Ownership Magazine
Party Planning Information
Article Marketing Resources
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles
Title: Mold release and anti-blocking coating for powder-free natural of synthetic rubber articles
Patent Number: 6,784,397 Issued on 08/31/2004 to Li,   et al.

Title: MRAM cell having frustrated magnetic reservoirs
Patent Number: 6,807,092 Issued on 10/19/2004 to Braun

Title: Map image processing apparatus and method for forming birds-eye view from two-dimensional map image
Patent Number: 6,900,817 Issued on 05/31/2005 to Uesugi

Title: Process of manufacturing a semiconductor device
Patent Number: 6,780,681 Issued on 08/24/2004 to Aoki

Title: Apparatus and method for providing items of value in cooperation with operation of a companion device
Patent Number: 6,990,392 Issued on 01/24/2006 to Meister,   et al.

Title: Folding baby stroller system and method
Patent Number: 6,991,248 Issued on 01/31/2006 to Valdez,   et al.

Title: Seatback audio system
Patent Number: 6,991,289 Issued on 01/31/2006 to House

Title: Shield connection structure of cable
Patent Number: 6,784,368 Issued on 08/31/2004 to Imai,   et al.

Title: Hydraulic braking system operated by an external force
Patent Number: 6,991,303 Issued on 01/31/2006 to Woll

Title: Method for solubilising asphaltenes in a hydrocarbon mixture
Patent Number: 7,122,113 Issued on 10/17/2006 to Cornelisse

Title: Apparatus for needling a non-woven material
Patent Number: 6,948,221 Issued on 09/27/2005 to Fuchs

Title: Stacked multi-chip semiconductor package improving connection reliability of stacked chips
Patent Number: 7,119,425 Issued on 10/10/2006 to Jeong,   et al.

Title: Device for displaying images by projection, comprising dichroic filters with a gradient
Patent Number: 6,956,551 Issued on 10/18/2005 to Sacre,   et al.

Title: Fish gelatin compositions containing a hydrocolloid setting system
Patent Number: 6,770,294 Issued on 08/03/2004 to Scott,   et al.

Title: Method and related circuitry for buffering output signals of a chip with even number driving circuits
Patent Number: 6,888,392 Issued on 05/03/2005 to Wei,   et al.

Title: Luminaire globe having low glare bandless seam
Patent Number: 6,796,687 Issued on 09/28/2004 to Hudak,   et al.

Title: Settee with a foldable tray-support unit
Patent Number: 6,767,056 Issued on 07/27/2004 to Tseng

Title: Wireless mobile call location and delivery for non-geographic numbers using a wireline SSP+SCP/wireless HLR interface
Patent Number: 6,909,900 Issued on 06/21/2005 to Howe

Title: Snowmobile front suspension system and method
Patent Number: 6,942,050 Issued on 09/13/2005 to Honkala,   et al.

Title: Semiconductor memory capable of being driven at low voltage and its manufacture method
Patent Number: 6,927,133 Issued on 08/09/2005 to Takahashi

Title: Hair roller with a ceramic coating
Patent Number: 6,945,255 Issued on 09/20/2005 to Kampel,   et al.

Title: Method of forming a shared global word line MRAM structure
Patent Number: 6,927,092 Issued on 08/09/2005 to Lee,   et al.

Title: Priority encoder for successive encoding of multiple matches in a CAM
Patent Number: 6,934,172 Issued on 08/23/2005 to Regev,   et al.

Title: Schottky diode
Patent Number: 6,885,077 Issued on 04/26/2005 to Dietl,   et al.

Title: Expansion unit, portable data processing apparatus and imaging device
Patent Number: 6,873,356 Issued on 03/29/2005 to Kanbe,   et al.

Title: Page information display method and device and storage medium storing program for displaying page information
Patent Number: 6,765,559 Issued on 07/20/2004 to Hayakawa

Title: Flexible orifice for wet wipes dispenser
Patent Number: 6,766,919 Issued on 07/27/2004 to Huang,   et al.

Title: Method and device for controlling the brake(s) of a device for transporting people
Patent Number: 6,766,893 Issued on 07/27/2004 to Neumann,   et al.

Title: Document printing, staging, and presentation device and associated methods
Patent Number: 6,767,093 Issued on 07/27/2004 to Martin,   et al.

Title: Electrode capture of nucleic acid
Patent Number: 6,794,130 Issued on 09/21/2004 to Pollard-Knight,   et al.

Title: Dual mode data field
Patent Number: 6,765,595 Issued on 07/20/2004 to Lee,   et al.

Title: Clip-less rasterization using line equation-based traversal
Patent Number: 6,765,575 Issued on 07/20/2004 to Voorhies,   et al.

Title: Multisample dithering with shuffle tables
Patent Number: 6,765,588 Issued on 07/20/2004 to Kirkland,   et al.

Title: Display panel
Patent Number: 6,765,630 Issued on 07/20/2004 to Nakajima,   et al.

Title: Electromagnetic valve actuation
Patent Number: 6,948,461 Issued on 09/27/2005 to Kotwicki

Title: Portable elevated platform
Patent Number: 6,948,587 Issued on 09/27/2005 to Griffiths

Title: Method for measuring channel characteristics with the internet control message protocol
Patent Number: 6,816,463 Issued on 11/09/2004 to Cooper,   et al.

Title: Fluid inspection apparatus with vibrator
Patent Number: 6,765,675 Issued on 07/20/2004 to Dragotta

Title: Projection display device
Patent Number: 6,796,659 Issued on 09/28/2004 to Schaareman,   et al.

Title: Dental floss holder and method of making a dental floss holder
Patent Number: 6,766,808 Issued on 07/27/2004 to Gwen

Title: Chemical concentration control device
Patent Number: 6,766,818 Issued on 07/27/2004 to Kashkoush,   et al.

Title: Web inspection method and device
Patent Number: 6,950,547 Issued on 09/27/2005 to Floeder,   et al.

Title: Tear-away container top
Patent Number: 6,766,941 Issued on 07/27/2004 to Tokarski

Title: Segmented weight and exerciser
Patent Number: 6,780,144 Issued on 08/24/2004 to Stevens

Title: Memory management using object pointer structure
Patent Number: 6,907,437 Issued on 06/14/2005 to Trotter

Title: Electromagnetic flowmeter for lines for conveying and distributing electrically conducting liquids
Patent Number: 6,789,432 Issued on 09/14/2004 to Guazzoni,   et al.

Title: Apparatus for reducing exposing time of an image processing system
Patent Number: 6,765,615 Issued on 07/20/2004 to Chen,   et al.

Title: Method and system for music recommendation
Patent Number: 7,081,579 Issued on 07/25/2006 to Alcalde,   et al.

Title: Method of manufacturing spring assembly
Patent Number: 7,127,792 Issued on 10/31/2006 to Wakamori,   et al.

Title: Apparatus and method for blocking television commercials with a content interrogation program
Patent Number: 6,983,481 Issued on 01/03/2006 to Fellenstein,   et al.

Title: Button
Patent Number: 7,127,780 Issued on 10/31/2006 to Kimoto

Title: Printing methods and apparatus for multi-pass printing
Patent Number: 6,938,970 Issued on 09/06/2005 to Van den Bergen

Title: Scraping method
Patent Number: 6,769,962 Issued on 08/03/2004 to Kinbara,   et al.

Title: Paint roller assembly
Patent Number: 6,941,609 Issued on 09/13/2005 to Woodruff,   et al.

Title: Apparatus for manufacturing billet for thixocasting
Patent Number: 6,942,009 Issued on 09/13/2005 to Hong

Title: Spacer for windshield wiper
Patent Number: 6,785,931 Issued on 09/07/2004 to Lee,   et al.

Title: Power control device, apparatus and method of controlling the power supplied to a discharge lamp
Patent Number: 7,141,938 Issued on 11/28/2006 to Buij,   et al.

Title: Bathing aid
Patent Number: 6,941,592 Issued on 09/13/2005 to Castillo

Title: Method and apparatus for sync hunting signals
Patent Number: 6,941,381 Issued on 09/06/2005 to McClary,   et al.

Title: Pulley and bearing assembly and a method and apparatus for inserting and fastening a bearing within a pulley
Patent Number: 6,941,651 Issued on 09/13/2005 to Radocaj

Title: Universal vacuum extension kit
Patent Number: 6,785,934 Issued on 09/07/2004 to Bruno,   et al.

Title: Real-time compensation apparatus and method for digital television receiver
Patent Number: 7,116,889 Issued on 10/03/2006 to Kweon

Title: Cable and apparatus interface environmental seal
Patent Number: 6,948,976 Issued on 09/27/2005 to Goodwin,   et al.

Title: Method and line for the continuous stretching of hides and other similar products
Patent Number: 6,957,553 Issued on 10/25/2005 to Polato

Title: Method and apparatus for providing optimal acceleration feedback
Patent Number: 7,141,946 Issued on 11/28/2006 to Rehm,   et al.

Title: Digital device for correcting the image formed on the screen of a cathode ray tube
Patent Number: 7,141,942 Issued on 11/28/2006 to Petit,   et al.

Title: Methods and apparatus for a MEMS varactor
Patent Number: 7,141,989 Issued on 11/28/2006 to Liu

Title: Mutants of MAW motifs of RecA protein homologs, methods of making them, and their uses
Patent Number: 6,774,213 Issued on 08/10/2004 to Roca

Title: Semiconductor laser with reduced temperature sensitivity
Patent Number: 6,870,178 Issued on 03/22/2005 to Asryan,   et al.

Title: Cold cathode device and vacuum gauge using same
Patent Number: 7,141,983 Issued on 11/28/2006 to Liu,   et al.

Title: Motorized light bulb changer
Patent Number: 6,941,841 Issued on 09/13/2005 to Johnson,   et al.

Title: Moisture curable, radiation curable sealant composition
Patent Number: 7,189,781 Issued on 03/13/2007 to Acevedo,   et al.

Title: Methods and apparatus for optimal voltage and frequency control of thermally limited systems
Patent Number: 7,141,953 Issued on 11/28/2006 to Cohen,   et al.

Title: Method for making a mechanical screen cylinder
Patent Number: 6,785,964 Issued on 09/07/2004 to Raphael

Title: Top for a convertible vehicle
Patent Number: 6,938,943 Issued on 09/06/2005 to Obendiek,   et al.

High performance battery backed ram interface Number:7,412,559 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

 
Web LinkGrinder.com

Top Breaking News
     Greek, Cypriot Leaders Resume Unification Talks in Nicosia by Nathan Morley
     Indonesia Tobacco Sales Grow, Raising Health Fears
     South Korea Allows Top Defector to Travel Overseas by VOA News

Title: High performance battery backed ram interface

Abstract: A disclosed gaming machine provides a gaming machine with a non-volatile memory storage device and gaming software that allows the dynamic allocation and de-allocation of memory locations in a non-volatile memory. The non-volatile memory storage devices interface to an industry standard peripheral component interface (PCI) bus commonly used in the computer industry allowing communication between a master gaming controller the non-volatile memory. The master gaming controller executes software for a non-volatile memory allocation system that enables the dynamic allocation and de-allocation of non-volatile memory locations. In addition, the non-volatile memory allocation system enables a non-volatile memory file system. With the non-volatile memory file system, critical data stored in the non-volatile memory may be accessed and modified using operating system utilities such as word processors, graphic utilities and compression utilities.

Patent Number: 7,412,559 Issued on 08/12/2008 to Stockdale,   et al.


Inventors: Stockdale; James W. (Clio, NV), LeMay; Steven G. (Reno, NV), Nelson; Dwayne R. (Las Vegas, NV)
Assignee: IGT (Reno, NV)
Appl. No.: 10/912,262
Filed: August 4, 2004


Related U.S. Patent Documents

Application NumberFiling DatePatent NumberIssue Date
09690931Oct., 20006804763

Current U.S. Class: 711/103 ; 463/43; 711/161; 711/170
Current International Class: G06F 12/00 (20060101)
Field of Search: 711/170,171,102,103 463/25,29


References Cited [Referenced By]

U.S. Patent Documents
3931504 January 1976 Jacoby
4430728 February 1984 Beitel et al.
4454594 June 1984 Heffron et al.
4607844 August 1986 Fullerton
4948138 August 1990 Pease et al.
5274827 December 1993 Haggerty et al.
5344144 September 1994 Canon
5551020 August 1996 Flax et al.
5625819 April 1997 Hoffer, Jr.
5643086 July 1997 Alcorn et al.
5680570 October 1997 Rantala et al.
5761647 June 1998 Boushy
5851149 December 1998 Xidos et al.
5968153 October 1999 Wheeler et al.
5971851 October 1999 Pascal et al.
6065148 May 2000 Obermeier et al.
6070202 May 2000 Minkoff et al.
6099408 August 2000 Schneier et al.
6104815 August 2000 Alcorn et al.
6106396 August 2000 Alcorn et al.
6149522 November 2000 Alcorn et al.
6183366 February 2001 Goldberg et al.
6205548 March 2001 Hasbun
6253374 June 2001 Dresevic et al.
6264561 July 2001 Saffari et al.
6286088 September 2001 Campbell et al.
6394907 May 2002 Rowe
6412053 June 2002 Bonola
6446257 September 2002 Pradhan et al.
6449687 September 2002 Moriya
6453319 September 2002 Mattis et al.
6454648 September 2002 Kelly et al.
6467038 October 2002 Piwonka et al.
6471591 October 2002 Crumby
6488580 December 2002 Robb
6503147 January 2003 Stockdale et al.
6589119 July 2003 Orus et al.
6609187 August 2003 Merrell et al.
6685559 February 2004 Luciano et al.
6685567 February 2004 Cockerille et al.
6704851 March 2004 Siebert
6816956 November 2004 Benayon et al.
6839823 January 2005 See et al.
6863608 March 2005 LeMay et al.
6866586 March 2005 Oberberger et al.
6874075 March 2005 Jerding et al.
6962530 November 2005 Jackson
2002/0016896 February 2002 Siebert
2002/0026566 February 2002 Awada et al.
2002/0049909 April 2002 Jackson et al.
2004/0002379 January 2004 Parrott et al.
2004/0147314 July 2004 LeMay et al.
2005/0164795 July 2005 Whitten et al.
2005/0192099 September 2005 Nguyen et al.
2007/0011427 January 2007 Nelson
2007/0174581 July 2007 Nelson
2007/0207852 September 2007 Nelson
Foreign Patent Documents
1046996 Oct., 2000 EP
1 255 234 Nov., 2002 EP
2308171 Jun., 1997 GB
WO0005652 Feb., 2000 WO

Other References

Levinthal, Adam and Barnett, Michael, "The Silicon Gaming Odyssey Slot Machine," Feb. 1997, Compon '97 Proceedings, IEEE San Jose, CA; IEEE Comput. Soc., pp. 296-301 (6 pages). cited by other .
Intel Corporation, "Flash Memory PCI Add-in Card for Embedded Systems", Application Note: AP-758, Sep. 1997 (17 pages). cited by other .
Dallas Semiconductor, "DS123: Flexible Non-volatile Controller with Lithium Battery Monitor," www.dalsemi.com, Nov. 1999 (12 pages). cited by other .
U.S. Appl. No. 09/520,405 (28 pages). cited by other .
Australian Office Action dated Sep. 30, 2005 from a Corresponding AU Application No. 79469/01 (4 pages). cited by other .
European Search Report dated Nov. 20, 2006 from corresponding EP Application No. 03752329.7 (4 pages). cited by other .
European Search Report dated Feb. 14, 2007 from corresponding EP Application No. 03752329.7 (4 pages). cited by other .
European Search Report dated Nov. 20, 2006 from corresponding EP Application No. 03752329.7. cited by other .
European Search Report dated Feb. 14, 2007 from corresponding EP Application No. 03752329.7. cited by other .
U.S. Office Action dated Jan. 4, 2005 from corresponding U.S. Appl. No. 10/243,104 (8 pages) [IGT1P036X1]. cited by other .
U.S. Office Action dated Aug. 16, 2005 from corresponding U.S. Appl. No. 10/243,104 (11 pages) [IGT1P036X1]. cited by other .
U.S. Office Action dated Jan. 17, 2006 from corresponding U.S. Appl. No. 10/243,104 (18 pages) [IGT1P036X1]. cited by other .
Notice of Allowance dated May 12, 2006 and Allowed Claims from corresponding U.S. Appl. No. 10/243,104 (6 pages) [IGT1P036X1]. cited by other .
Notice of Allowance dated Jan. 5, 2007 and Allowed Claims from corresponding U.S. Appl. No. 11/517,743 (7 pages) [IGT1P036X1C1]. cited by other .
Notice of Allowance dated May 2, 2007 and Allowed Claims from corresponding U.S. Appl. No. 11/517,743 (4 pages) [IGT1P036X1C1]. cited by other .
U.S. Office Action dated May 4, 2007 from corresponding U.S. Appl. No. 11/517,743 (6 pages) [IGT1P036X1C1]. cited by other .
Notice of Allowance dated Aug. 1, 2007 and Allowed Claims from corresponding U.S. Appl. No. 11/517,743 (4 pages) [IGT1P036X1C1]. cited by other .
U.S. Office Action dated Jun. 5, 2007 from corresponding U.S. Appl. No. 11/729,407 (7 pages) [IGT1P036X1C2]. cited by other .
Notice of Allowance dated Aug. 24, 2007 and Allowed Claims from corresponding U.S. Appl. No. 11/729,407 (4 pages) [IGT1P036X1C2]. cited by other .
Russian Advisory Action dated Sep. 10, 2007 from related Russian Application No. 2005106847, 10 pgs. (IGT1P036X1RU). cited by other .
Notice of Allowance dated Dec. 19, 2007 and Allowed Claims from corresponding U.S. Appl. No. 11/729,407 (9 pages) [IGT1P036X1C2]. cited by other .
Nelson et al., "Game Removal with Game History," U.S. Appl. No. 11/367,497 filed on Mar. 3, 2006 [IGT1P228]. cited by other.

Primary Examiner: Sparks; Donald
Assistant Examiner: Bradley; Matthew
Attorney, Agent or Firm: Weaver Austin Villeneuve & Sampson LLP

Parent Case Text



CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional application and claims priority under 35 U.S.C. .sctn. 120 from U.S. application Ser. No. 09/690,931 filed Oct. 17, 2000 now U.S. Pat. No. 6,804,763 naming Stockdale, et al. as inventors, and titled "HIGH PERFORMANCE BATTERY BACKED RAM INTERFACE," which is incorporated herein in its entirety and for all purposes.
Claims



What is claimed is:

1. A method of allocating non-volatile memory locations on a gaming machine, the method comprising: executing gaming software for generating a play of a wager-based game, said gaming software including a non-volatile memory allocation system wherein the non-volatile memory allocation system is operable to dynamically allocate and de-allocate non-volatile memory locations in a non-volatile memory and wherein the non-volatile allocation system is operable to allow the non-volatile memory locations where critical data is stored to vary over time such that the critical data stored in first non-volatile memory locations at a first time is movable to second non-volatile memory locations at a second time; receiving a wager on an outcome to the wager-based game wherein the wager is associated with an amount of cash or an indicia of credit; determining the outcome to the wager-based game; presenting the outcome to the wager-based game; receiving a request at the non-volatile memory system from a client to allocate a block of non-volatile memory locations in the non-volatile memory; assigning a node to the block of non-volatile memory; creating an NV-RAM node record; assigning a pointer to a heap block; sending a handle corresponding to the block of non-volatile memory to the client; wherein the handle allows the client to subsequently access the non-volatile memory using the non-volatile memory access system; copying critical data generated during the play of the wager-based game that is stored in a first volatile memory location to the block of non-volatile memory wherein the gaming machine is operable to determine whether a transfer of the critical data is complete; and comparing the critical data originally stored in the first volatile memory to a copy of the critical data stored in the non-volatile memory to determine a validity of the copy of the critical data.

2. The method of claim 1, further comprising: adding the assigned node to an NV-RAM node record list.

3. The method of claim 1, further comprising: updating a volatile memory look-up list.

4. The method of claim 1, further comprising: determining an amount of memory available in the non-volatile memory; comparing the amount of memory available in the non-volatile memory with an amount of non-volatile memory in the requested block; and when the amount of requested non-volatile memory exceeds the available amount of non-volatile memory, terminating the non-volatile memory request.

5. The method of claim 1, further comprising: sending critical data with the non-volatile memory allocation request to the non-volatile memory allocation system.

6. The method of claim 5, wherein the critical data is selected from the group consisting of game history information, security information, accounting information, player tracking information, wide area progressive information and game state information.

7. The method of claim 1, wherein the NV-RAM node record includes a handle, an owner handle, a name, a size, a pointer to the heap block, one or more status flags and a signature.

8. The method of claim 7, wherein the one or more status flags is selected from the group consisting of a time stamp, an access restriction and a resizing restriction.

9. The method of claim 1, further comprising: generating a signature for the NV-RAM node record.

10. The method of claim 9, wherein the signature is generated using a method selected from the group consisting of a CRC, Checksum and a hash value.

11. A method of modifying non-volatile memory locations in a gaming machine, the method comprising: executing gaming software for generating a play of a wager-based game, said gaming software including a non-volatile memory allocation system wherein the non-volatile memory allocation system is operable to dynamically allocate and de-allocate non-volatile memory locations in a non-volatile memory and wherein the non-volatile allocation system is operable to allow the non-volatile memory locations where critical data is stored to vary over time such that the critical data stored in first non-volatile memory locations at a first time is movable to second non-volatile memory locations at a second time; receiving a wager on an outcome to the wager-based game wherein the wager is associated with an amount of cash or an indicia of credit; determining the outcome to the wager-based game; presenting the outcome to the wager-based game; receiving a function request at the non-volatile memory system from a client wherein the function request includes a handle corresponding to allocated memory locations and a one or more function request modifiers; locating a NV-RAM node record corresponding to the handle; checking the status flags contained in the NV-RAM node record; and when the status flags allow the function request, executing the function request; copying critical data generated during a play of the game of chance that is stored in a first volatile memory location to the allocated memory locations wherein the gaming machine is operable to determine whether a transfer of the critical data is complete; and comparing the critical data originally stored in the first volatile memory to a copy of the critical data stored in the non-volatile memory to determine a validity of the copy of the critical data.

12. The method of claim 11, wherein the function request is selected from the group consisting of de-allocate, open, close, read, read/directory, write, resize, move, get statistics and change statistics.

13. The method of claim 11, wherein the function request modifier is selected from the group consisting of a requested size, a name, a modification restriction, an access restriction, an owner and a time stamp.

14. The method of claim 11, further comprising: when the function request is a de-allocate function request, removing the NV-RAM node record; updating an NV-RAM record list; and updating a heap block.

15. The method of claim 14, further comprising: updating a volatile memory look-up list.

16. A method of providing a new client utilizing g non-volatile memory on a gaming machine, the method comprising: executing gaming software for providing a play of a wager-based game, said gaming software including a non-volatile memory allocation system wherein the non-volatile memory allocation system is operable to dynamically allocate and de-allocate the non-volatile memory locations in a non-volatile memory and wherein the non-volatile allocation system is operable to allow the non-volatile memory locations where critical data is stored to vary over time such that the critical data stored in first non-volatile memory locations at a first time is movable to second non-volatile memory locations at a second time; receiving a wager on an outcome to the wager-based game wherein the wager is associated with an amount of cash or an indicia of credit; determining the outcome to the wager-based game; presenting the outcome to the wager-based game; determining an amount of non-volatile memory required by the new client wherein the new client is component of the gaming software used to provide the play of the wager-based game on the gaming machine; sending an allocation function request to the non-volatile memory allocation system requesting the required amount of non-volatile memory; receiving a handle from the non-volatile memory allocation system wherein the handle allows subsequent access to the requested non-volatile memory; executing the new client; sending the handle to the new client; copying critical data generated during a play of the game of chance that is stored in a first volatile memory location to the non-volatile memory associated with the handle wherein the gaming machine is operable to determine whether a transfer of the critical data is complete; and comparing the critical data originally stored in the first volatile memory to a copy of the critical data stored in the non-volatile memory to determine a validity of the copy of the critical data.

17. The method of claim 16, further comprising: determining when the required amount of non-volatile is available in the non-volatile memory; and when the required amount of memory is not available, sending an error message.

18. The method of claim 16, wherein the allocation function request includes in one or more function request modifiers.

19. The method of claim 18, wherein the function request modifiers are selected from the group consisting of a name, a modification restriction, an access restriction, an owner and a time stamp.

20. The method of claim 16, further comprising: loading a software load manager that manages an installation of the new client.

21. A method of removing a client that uses non-volatile memory on a gaming machine, the method comprising: executing gaming software for providing a play of a wager-based game, said gaming software including a non-volatile memory allocation system wherein the non-volatile memory allocation system is operable to dynamically allocate and de-allocate non-volatile memory locations in a non-volatile memory and wherein the non-volatile allocation system is operable to allow the non-volatile memory locations where critical data is stored to vary over time such that the critical data stored in first non-volatile memory locations at a first time is movable to second non-volatile memory locations at a second time; receiving a wager on an outcome to the wager-based game; determining the outcome to the wager-based game; presenting the outcome to the wager-based game; copying critical data generated during a play of the wager-based game that is stored in a first volatile memory location to non-volatile memory associated with one or more handles wherein the gaming machine is operable to determine whether a transfer of the critical data is complete; determining the client is to be removed; determining the one or more handles are associated with the client; sending one or more de-allocation requests to the non-volatile memory allocation system; and removing the client.

22. The method of claim 21, further comprising: loading a software load manager that manages a removal of the client from the gaming machine.

23. The method of claim 21, further comprising: initiating the one or more de-allocation requests by deleting one or more files in a non-volatile memory file system wherein the one or more files are utilized by the client.
Description



BACKGROUND OF THE INVENTION

This invention relates to non-volatile storage for gaming machines such as slot machines and video poker machines. More particularly, the present invention relates to hardware and methods for providing battery backed random access memory on gaming machines.

As technology in the gaming industry progresses, the traditional mechanically driven reel slot machines are being replaced with electronic counterparts having CRT, LCD video displays or the like and gaming machines such as video slot machines and video poker machines are becoming increasingly popular. Part of the reason for their increased popularity is the nearly endless variety of games that can be implemented on gaming machines utilizing advanced electronic technology. In some cases, newer gaming machines are utilizing computing architectures developed for personal computers. These video/electronic gaming advancements enable the operation of more complex games, which would not otherwise be possible on mechanical-driven gaming machines and allow the capabilities of the gaming machine to evolve with advances in the personal computing industry.

Typically, utilizing a master gaming controller, the gaming machine controls various combinations of devices that allow a player to play a game on the gaming machine and also encourage game play on the gaming machine. For example, a game played on a gaming machine usually requires a player to input money or indicia of credit into the gaming machine, indicate a wager amount, and initiate a game play. These steps require the gaming machine to control input devices, including bill validators and coin acceptors, to accept money into the gaming machine and recognize user inputs from devices, including touch screens and button pads, to determine the wager amount and initiate game play. After game play has been initiated, the gaming machine determines a game outcome, presents the game outcome to the player and may dispense an award of some type depending on the outcome of the game.

To implement the gaming features described above on a gaming machine using a components utilized in the personal computer industry, a number of requirements unique to the gaming industry must be considered. One such requirement is the storage of critical game information. Traditionally, gaming machines have been designed to store critical game information such as general accounting information (e.g. credits input the gaming machine and credits dispensed from the gaming machine) and a state of a game being played on the gaming machine using a non-volatile memory storage device. For example, game state information stored in a non-volatile memory might include the state of game currently being played on the gaming machine as well as game history information on a number of previous games played on the gaming machine that may be recalled when a malfunction such as a power failure has occurred or when a player has a dispute with the outcome of a previous game played on the gaming machine. A battery backed random access memory (RAM) is an example of a non-volatile memory storage device used previously on many types of gaming machines.

The non-volatile memory storage device may be designed to store critical game information for long periods of time. The length of period of time may be dictated by the gaming jurisdiction where the gaming machine is operated. For example, a battery backed RAM storage device may be designed to store data for a minimum of five years and even as long as seven years without replacing or maintaining the battery. Thus, to limit the battery size, cost and maintenance requirements for long storage periods, electronic RAM memory hardware with a low power consumption is required.

A typical modern video gaming machine contains several devices such as the microprocessor, RAM memory, ROM memory, mass storage devices, video display controller, sound generation hardware, etc. which share commonality with commercially available devices designed for personal computers. The typical system architecture of a modern personal computer control chipset precludes the connection of memory devices to the system bus unless those devices adhere to the strict specifications of the memory controller. All currently available control chipsets on personal computers require the use of dynamic memory devices, such as traditional Dynamic Random Access Memory (DRAM) or Synchronous DRAM. These devices consume too much DC power to allow effective use of battery technology for data backup for critical data storage requirements lasting multiple years. Thus, to utilize hardware components designed in the personal computing industry in the gaming machine, non-volatile memory storage devices compatible with personal computing hardware are needed.

The preservation of critical game information also influences the design of gaming software executed on the gaming machine. Gaming software executed on gaming machines is designed such that critical game information is not easily lost or corrupted. Therefore, gaming software is designed to prevent critical data loss in the event of software bugs, hardware failures, power failures, electrostatic discharges or tampering with the gaming machine. The implementation of the software design in the gaming software to meet critical data storage requirements may be quite complex and may require extensive of use the non-volatile memory hardware.

Traditionally, in the gaming industry, game design and the game platform design have been performed by single entities. Thus, a single gaming machine manufacturer will usually design a game and then design and manufacture a gaming machine allowing play of the game. Further, for game design on a pre-existing gaming machine, game development is usually always performed by the manufacturer of the gaming machine. The approach of the gaming industry may be contrasted with the video game industry. In the video game industry, games for a particular video game platform are typically developed by many companies different from the company that manufactures the video game platform. One trend in the gaming industry is a desire to create a game development environment similar to the video gaming industry where outside vendors may provide games to a gaming machine.

Issues involving the security, the accessibility and the efficient use of the non-volatile memory on gaming machines provide a few barriers to opening up game development to outside vendors as well as to game development in general. Traditionally, software designs for non-volatile memory utilization have used a fixed memory map approach where all of the required non-volatile memory needed to store critical data and perform critical operations are determined before the code is initialized on the gaming machine and remain fixed once the game is launched. The fixed memory approach may be inefficient because temporary non-volatile memory space, which may be required by many gaming software units for the temporary storage of data, is not used for other purposes when it is not being used by a particular gaming software unit. Typically, the amount non-volatile memory on a gaming machine is limited by the hardware requirements such as the power consumption. Thus, to ensure there is enough of the limited non-volatile memory available on the gaming machine, a game designer must be aware of all of the non-volatile memory requirements needed by the different elements of the gaming machine software and not just those utilized for the presentation of game. This requirement is a barrier to an open game design environment and, in general, slows down the game development process.

Another limitation of the fixed non-volatile memory approach is the difficulty of modifying the fixed non-volatile memory map to install new software. When a software installation requires a different amount of memory in different locations than what is available with the current fixed map on the gaming machine, the non-volatile memory is usually re-initialized to generate a new fixed map. The re-initialization of the non-volatile memory destroys all critical data stored in the non-volatile memory and is also time consuming which is undesirable to the gaming machine operator. Thus, a deployment of a new game on a gaming machine is usually an infrequent occurrence. In contrast, in the video game industry, games are frequently and easily deployed on any given platform.

Another barrier to game development and an open game development environment is the accessibility of the non-volatile memory. Currently, gaming machine software development tools do not provide easy or standard methods for allocating and determining the contents of the non-volatile memory. These deficiencies make producing error free software involving the non-volatile memory more difficult and may be deterrent to many game designers.

Finally, the fixed memory approach for non-volatile memory may be infeasible for an open game development environment because of security issues. In the fixed memory approach, it is undesirable to provide the locations in memory where critical data is stored because it increases the potential for tampering with the gaming machine. For instance, a person might alter a non-volatile memory location to illegally obtain a jackpot. Thus, for security reasons, it would be undesirable to use a fixed memory approach in an open game development environment because the locations of critical data in the non-volatile memory would have to be openly shared.

In view of the above, to improve the game development process for gaming machines, it would be desirable to provide a more accessible, less complicated, more secure and more efficient methods and apparatus of providing non-volatile memory hardware and software on a gaming machine.

SUMMARY OF THE INVENTION

This invention addresses the needs indicated above by providing a gaming machine with a non-volatile memory storage device and gaming software that allows the dynamic allocation and de-allocation of memory locations in a non-volatile memory. The non-volatile memory storage devices interface to an industry standard peripheral component interface (PCI) bus commonly used in the computer industry allowing communication between a master gaming controller and the non-volatile memory. The master gaming controller executes software for a non-volatile memory allocation system that enables the dynamic allocation and de-allocation of non-volatile memory locations. In addition, the non-volatile memory allocation system enables a non-volatile memory file system. With the non-volatile memory file system, critical data stored in the non-volatile memory may be accessed and modified using operating system utilities such as text processors, graphic utilities and compression utilities.

One aspect of the present invention provides a gaming machine with a non-volatile storage device. The gaming machine may be generally characterized as including a: 1) a master gaming controller controlling one or more games played on the gaming machine where the game played on the gaming machine is selected from the group consisting of video poker, video black jack, video pachinko, video slots, video pachinko and mechanical slots, 2) a PCI bus for communication between the master gaming controller and one or more devices connected to the PCI bus, 3) a non-volatile memory storage device that communicates with the master gaming controller via the PCI bus and 4) a non-volatile memory allocation system executed by the master gaming controller wherein the non-volatile memory allocation system dynamically allocates and de-allocates non-volatile memory locations in non-volatile memory located in the non-volatile memory storage device. In specific embodiments, the non-volatile memory is selected from the group consisting of battery-backed SRAM and flash memory where the non-volatile memory stores between about 1 Megabytes and 32 Megabytes of data. The one or more devices connected to the PCI bus may be selected from the group consisting of a gaming system extension, an audio controller and a network controller.

In specific embodiments, the gaming machine may include a main communication interface allowing communication with one or more devices located outside of the gaming machine such that the one or more devices located outside the gaming machine retrieve data stored in the non-volatile memory locations. Using the main communication interface, the gaming machine may be connected to a casino area network and a wide area progressive network. The gaming machine may also include a battery having sufficient energy to power the non-volatile storage device for at least 4 years where the non-volatile memory locations in the non-volatile storage device store critical data. Thus, information stored in the non-volatile memory locations such as critical data is preserved by the power from a battery when the gaming machine loses power. The critical data is selected from the group consisting of game history information, security information, accounting information, player tracking information, wide area progressive information, game state information or any critical game related data.

In another embodiment, the gaming machine may include a non-volatile memory file system where memory locations in the non-volatile memory correspond to one or more files and one or more directories in the non-volatile memory file system. The one or more files may contain critical data. The contents of the one or more files in the non-volatile memory file system may be accessed using a word processor, graphics utility program or other applications that need access to data contained in "files". Further, a main display connected to the gaming machine may be used to display the files and directories in the non-volatile memory file system.

Another aspect of the present invention provides a non-volatile memory storage device for storing critical data in a non-volatile memory on a gaming machine with a master gaming controller. The non-volatile memory storage device may be generally characterized as including: 1) an interface device that receives data signals from the master gaming controller in a first format and converts the data signals to one or more second formats different from said first format where the interface device may be a PCI interface device, 2) a NV-RAM controller that receives data signals in said second format from the interface device and controls access to the non-volatile memory, 3) one more non-volatile memory chips comprising the non-volatile memory that receive data signals from the interface device in the second format and store the critical data contained in the data signals in one or more memory locations on the non-volatile memory chips where the non-volatile memory chips may be battery-backed RAM or flash memory and 4) a battery that provides power to the NV-RAM controller where the battery may be a lithium battery. In specific embodiments, the non-volatile memory may utilize between about 1 and 16 non-volatile memory chips where the non-volatile memory stores between about 1 Megabytes and 32 Megabytes of critical data. Also, the master gaming controller may execute a non-volatile memory allocation system on the non-volatile memory where the non-volatile memory allocation system dynamically allocates and de-allocates memory locations in the non-volatile memory.

In another embodiment, the NV-RAM controller may monitor a battery voltage level and a power supply voltage level. The NV-RAM controller may limit access to the non-volatile memory when the power supply voltage level drops below a power supply cut-off voltage level. The power cut-off voltage level may be between about 4.25 Volts and 4.5 Volts. Further, the NV-RAM controller may select a power supply source for the non-volatile memory according to the power supply voltage level. For instance, the NV-RAM controller may select a battery power supply source for the non-volatile memory when the power supply voltage level drops below the power supply cut-off voltage. The NV-RAM controller may also direct data contained in the data signals to one of the memory chips.

Another aspect of the invention provides a method of accessing a non-volatile memory on a gaming machine with a master gaming controller and a non-volatile storage device where the non-volatile storage device includes an interface device, an NV-RAM controller, a battery and a non-volatile memory. The method may be characterized as including: 1) receiving a data signal from the master gaming controller in a first format at the interface device, 2) converting the data signal to a second format within the interface device, 3) sending the data signal in the second format to the NV-RAM controller and the non-volatile memory, 4) monitoring the power supply voltage level in the NV-RAM controller and 5) limiting access to the non-volatile memory when the power supply voltage level monitored in the NV-RAM controller drops below a power supply voltage cut-off level. In one embodiment, the method may also include one or more of the following: i) storing critical data contained in the data signal in the non-volatile memory, ii) retrieving critical data stored in the non-volatile memory, iii) sending the critical data in data signals in the second format to the interface device, iv) converting the data signals in the second format to data signals in the first format at the interface device, and v) sending the data signals in the first format to the master gaming controller. In another embodiment, the method may include a) monitoring a battery voltage level, b) when the battery voltage level drops below a battery voltage cut-off level, sending a message to the master gaming controller containing a status of the battery, c) selecting a power supply source for the non-volatile memory according to the power supply voltage level, d) when the power supply voltage level drops below a power supply cut-off voltage, selecting the battery as the power supply source for the non-volatile memory and e) decoding an address corresponding to a memory location in the non-volatile memory contained in the data signal in the first format in the interface device.

Another aspect of the present invention provides a method of allocating non-volatile memory locations on a gaming machine containing a master gaming controller executing gaming software comprising one or more clients, a non-volatile memory allocation system and a state-based transaction system. The method may be characterized as including 1) receiving a request at the non-volatile memory system from the client to allocate a block of non-volatile memory locations in the non-volatile memory for critical data transactions in the state-based transaction system, 2) assigning a node to the block of non-volatile memory, 3) creating an NV-RAM node record, 4) assigning a pointer to a heap block and 5) sending a handle corresponding to the block of non-volatile memory to the client where the handle allows the client to subsequently access the non-volatile memory using the non-volatile memory access system. The method may include one or of the following: a) adding the assigned node to an NV-RAM node record list, b) updating a volatile memory look-up list, c) determining an amount of memory available in the non-volatile memory, d) comparing the amount of memory available in the non-volatile memory with an amount of non-volatile memory in the requested block, e) when the amount of requested non-volatile memory exceeds the available amount of non-volatile memory, terminating the non-volatile memory request and f) sending critical data with the non-volatile memory allocation request to the non-volatile memory allocation system.

In specific embodiments, the method may include generating a signature for the NV-RAM node record where the signature is generated using a method selected from the group consisting of a CRC, Checksum, a hash value or other signature generating method. The NV-RAM record may include a handle, an owner handle, a name, a size, a pointer to the heap block, one or more status flags and a signature. The one or more status flags may be selected from the group consisting of a time stamp, an access restriction and a resizing restriction.

Another aspect of the present invention provides a method of modifying previously allocated non-volatile memory locations on a gaming machine containing a master gaming controller executing gaming software which may include one or more clients and a non-volatile memory allocation system. The method may be characterized as including: 1) receiving a function request at the non-volatile memory system from the client wherein the function request includes a handle corresponding to the allocated memory locations and a one or more function request modifiers, 2) locating the NV-RAM node record corresponding to the handle, 3) checking the status flags contained in the NV-RAM node record and 4) when the status flags allow the function request, executing the function request. The function request may be selected from the group consisting of de-allocate, open, close, read, read/directory, write, resize, move, get statistics, change statistics or other potential file related activities and the function request modifier is selected from the group consisting of a requested size, a name, a modification restriction, an access restriction, an owner and a time stamp. In a specific embodiment, the method may include: a) when the function request is a de-allocate function request, b) removing the NV-RAM node record, c) updating an NV-RAM record list and d) updating a heap block and e) updating a volatile memory look-up list.

Another aspect of the present invention provides a method of installing a new client requiring non-volatile memory into the gaming software on a gaming machine containing a master gaming controller executing gaming software comprised of one or more clients and a non-volatile memory allocation system. The method may be characterized as including: 1) determining an amount of non-volatile memory required by the new client, 2) sending an allocation function request to the non-volatile memory allocation system requesting the required amount of non-volatile memory, 3) receiving a handle from the non-volatile memory allocation system wherein the handle allows subsequent access to the requested non-volatile memory, 4) executing the client and 5) sending the handle to the new client. In addition, the method may include: a) determining when the required amount of non-volatile is available in the non-volatile memory and b) when the required amount of memory is not available, sending an error message. In a specific embodiment, the method may include loading a software load manager that manages an installation of the new client.

Another aspect of the present invention provides a method of storing and accessing critical data using a non-volatile memory file system on a gaming machine with a non-volatile memory storing critical data. The method may be generally characterized as including: 1) organizing blocks of memory locations in the non-volatile memory as files in the non-volatile memory file system, 2) storing the files under one or more directories, 3) selecting a first file and 4) accessing critical data stored in the first file using an operating system utility program where the operating system utility program is selected from the group consisting of a word processor and a graphical utility program. The critical data may be selected from the group consisting of game history information, security information, accounting information, player tracking information, wide area progressive information and game state information.

In specific embodiments, the method may include: a) applying a non-volatile memory file system command to the file and directories in the non-volatile memory file system where the non-volatile file system commands include renaming, moving, adding and deleting the file and directories in the non-volatile memory file system, b) displaying the files and directories in the non-volatile memory file system and critical data contained in the one or more files on a display connected to the gaming machine, c) modifying the critical data contained in the one or more files using a word processor or other text/data editor, d) compressing the critical data contained in the one or more files in the non-volatile memory file system using an operating system compression utility and e) setting an access privilege to one or more files and directories in the non-volatile memory file system.

Another aspect of the present invention provides a method of recovering a state of the gaming machine after power is lost on a gaming machine containing a master gaming controller executing gaming software comprising one or more clients and a non-volatile memory allocation system. The method may be characterized as including: 1) activating the non-volatile-memory allocation system, 2) comparing one or more data signatures, 3) determining a status of an operation that was being performed by the non-volatile memory when the power was lost and 4) when the status indicates the operation is incomplete, completing the operation. In addition, the method may include one or more of the following: a) generating one or more data signatures, b) when the one or more data signatures do not compare, sending an error message, c) building a node look-up list in volatile memory and undoing the operation and returning the gaming machine to the state prior to the operation.

Another aspect of the present invention provides a gaming machine storing critical data. The gaming machine may be characterized as including: 1) a master gaming controller controlling one or more games played on the gaming machine, 2) a non-volatile memory storage device storing critical data from the one or more games played on the gaming machine, 3) gaming software comprising one or more clients executed by the master gaming controller and 4) a non-volatile memory allocation system allocating and modifying non-volatile memory locations in the non-volatile memory storage device based upon function requests from the one or more clients where the clients may be selected from the group consisting of a bank manager, a communication manager, a virtual player tracking unit, an event manager. In addition the gaming machine may include a non-volatile memory file system where files in the non-volatile memory file system may contain critical data stored in the non-volatile memory locations.

These and other features of the present invention will be presented in more detail in the following detailed description of the invention and the associated figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective drawing of a gaming machine having a top box and other devices.

FIG. 2 is a block diagram depicting gaming machine software elements including a NV-memory manager for one embodiment of a gaming system software architecture.

FIG. 3 is a block diagram of a main processor board of a gaming machine with a non-volatile memory storage device in one embodiment of the present invention.

FIG. 4 is a block diagram of a gaming system extension 345 with a non-volatile memory storage device 355 for one embodiment of the present invention.

FIG. 5 is a block diagram of a non-volatile memory storage device 355 connected to a PCI bus in one embodiment of the present invention.

FIG. 6 is a flow chart of a method of storing critical data to the non-volatile memory for one embodiment of the present invention.

FIG. 7 is an interaction diagram between components on the main processor board and the non-volatile memory storage device during a write to the non-volatile memory storage device.

FIG. 8 is an interaction diagram between components on the main processor board and the non-volatile memory storage device during a read from the non-volatile memory storage device.

FIG. 9 is block diagram of a non-volatile memory allocation system implemented in the gaming system software for one embodiment of the present invention.

FIGS. 10A and 10B are flows charts of the non-volatile memory allocation and de-allocation processes utilizing the non-volatile memory allocation system described with reference to FIG. 9.

FIG. 11 is a flow chart of the software maintenance process involving the non-volatile memory allocation system.

FIG. 12 is a block diagram of non-volatile memory file system based upon the non-volatile memory allocation system implemented with the NV-RAM manager.

FIG. 13 is a flow chart of the power-up process involving the non-volatile memory in the gaming machine after a power failure.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Turning first to FIG. 1, a video gaming machine 2 of the present invention is shown. Machine 2 includes a main cabinet 4, which generally surrounds the machine interior (not shown) and is viewable by users. The main cabinet includes a main door 8 on the front of the machine, which opens to provide access to the interior of the machine. Attached to the main door are player-input switches or buttons 32, a coin acceptor 28, and a bill validator 30, a coin tray 38, and a belly glass 40. Viewable through the main door is a video display monitor 34 and an information panel 36. The display monitor 34 will typically be a cathode ray tube, high resolution flat-panel LCD, or other conventional electronically controlled video monitor. The information panel 36 may be a back-lit, silk screened glass panel with lettering to indicate general game information including, for example, the number of coins played. Many possible games, including traditional slot games, video slot games, video poker, and keno, may be provided with gaming machines of this invention.

The bill validator 30, coin acceptor 28, player-input switches 32, video display monitor 34, and information panel are devices used to play a game on the game machine 2. The devices are controlled by circuitry (See FIG. 3) housed inside the main cabinet 4 of the machine 2. In the operation of these devices, critical information may be generated that is stored within a non-volatile memory storage device 355 (See FIG. 3) located within the gaming machine 2. For instance, when cash or credit of indicia is deposited into the gaming machine using the bill validator 30 or the coin acceptor 28, an amount of cash or credit deposited into the gaming machine 2 may be stored within the non-volatile memory storage device 355. As another example, when important game information, such as the final position of the slot reels in a video slot game, is displayed on the video display monitor 34, game history information needed to recreate the visual display of the slot reels may be stored in the non-volatile memory storage device. The type of information stored in the non-volatile memory may be dictated by the requirements of operators of the gaming machine and regulations dictating operational requirements for gaming machines in different gaming jurisdictions. In the description that follows, hardware and methods for storing criti


Free Web Sudoku Puzzles.
Solve with your browser.
  4     7   6    
    8 5       4 3
    2            
9 5   4         6
      6   7      
1         8   2 9
            7    
8 1       6 3    
    5   4     9  
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!