WO2006039557A2 - Gaming machine with journaling - Google Patents

Gaming machine with journaling Download PDF

Info

Publication number
WO2006039557A2
WO2006039557A2 PCT/US2005/035310 US2005035310W WO2006039557A2 WO 2006039557 A2 WO2006039557 A2 WO 2006039557A2 US 2005035310 W US2005035310 W US 2005035310W WO 2006039557 A2 WO2006039557 A2 WO 2006039557A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
database
data store
journal
nvram
Prior art date
Application number
PCT/US2005/035310
Other languages
French (fr)
Other versions
WO2006039557A3 (en
Inventor
Craig J. Sylla
Original Assignee
Wms Gaming Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wms Gaming Inc. filed Critical Wms Gaming Inc.
Priority to US11/576,270 priority Critical patent/US20070281793A1/en
Publication of WO2006039557A2 publication Critical patent/WO2006039557A2/en
Publication of WO2006039557A3 publication Critical patent/WO2006039557A3/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3241Security aspects of a gaming system, e.g. detecting cheating, device integrity, surveillance

Definitions

  • the present invention relates generally to gaming machines, and more particularly to a gaming machine that journals critical data to memory.
  • Today's gaming machine typically comprises a computerized system controlling a video display or reels that provide wagering games such as slots, video card games (poker, blackjack etc.), video keno, video bingo, video pachinko and other games typical in the gaming industry.
  • wagering games such as slots, video card games (poker, blackjack etc.), video keno, video bingo, video pachinko and other games typical in the gaming industry.
  • the popularity of such machines with players is dependent on the likelihood (or perceived likelihood) of winning money at the machine and the intrinsic entertainment value of the machine relative to other available gaming options.
  • Players also appreciate the reliability of a gaming machine, as do the casino operators. Shrewd operators consequently strive to employ the most entertaining, exciting, and reliable machines available because such machines attract frequent play and hence increase profitability to the operator.
  • RAM Random Access Memory
  • RAM is immediately accessible by the processor with no additional software required (as in the case of disk drives).
  • The.content of this memory is typically critical to the operation of the gaming machine and is continuously changing as it is read and written, as when game play occurs.
  • One drawback of RAM is that it is power dependent and does not retain the current state of the computer's operation when power is removed.
  • One aspect of the systems and methods includes a non ⁇ volatile random access memory (NVRAM).
  • NVRAM non ⁇ volatile random access memory
  • a data store is maintained on the NVRAM.
  • a journal is maintained on the NVRAM.
  • a data store manager receives data to be written to the NVRAM.
  • the journal is updated to reflect the data to be written, then the data is written to the data store.
  • the system checks the journal to see if any data remains to be committed to the data store. If so, the data is written. Normal operation is then resumed.
  • the present invention describes systems, methods, and computer-readable media of varying scope, hi addition to the aspects and advantages of the present invention described in this summary, further aspects and advantages of the invention will become apparent by reference to the drawings and by reading the detailed description that follows.
  • FIG. 1 is a perspective view of a gaming machine embodying the present invention
  • FIG. 2 is a block diagram of a gaming control system suitable for operating the gaming machine in FIG. 1 ;
  • FIG. 3 is a block diagram illustrating the interaction between the control system, a journal, and a data store of a gaming machine according to varying embodiments of the invention
  • FIGs. 4A and 4B are flowcharts illustrating methods for providing a journal for a data store on a gaming machine according to various embodiments of the invention. Detailed Description
  • FIG. 1 illustrates an exemplary gaming machine 10, also referred to as a Video Lottery Terminal (VLT), in which embodiments of the invention may be implemented.
  • gaming machine 10 is operable to conduct a wagering game such as mechanical or video slots, poker, keno, bingo, or blackjack.
  • the gaming machine 10 includes a video display 12 such as a cathode ray tube (CRT), liquid crystal display (LCD), plasma, or other type of video display known in the art.
  • a touch screen preferably overlies the display 12.
  • the gaming machine 10 is an "upright” version in which the display 12 is oriented vertically relative to a player.
  • the gaming machine may be a "slant-top” version in which the display 12 is slanted at about a thirty-degree angle toward the player.
  • the gaming machine 10 includes a plurality of possible credit receiving mechanisms 14 for receiving credits to be used for placing wagers in the game.
  • the credit receiving mechanisms 14 may, for example, include a coin acceptor, a bill acceptor, a ticket reader, and a card reader.
  • the bill acceptor and the ticket reader may be combined into a single unit.
  • the card reader may, for example, accept magnetic cards and smart (chip) cards coded with money or designating an account containing money.
  • the gaming machine 10 includes a user interface comprising a plurality of push-buttons 16, the above-noted touch screen, and other possible devices.
  • the plurality of push-buttons 16 may, for example, include one or more "bet” buttons for wagering, a "play” button for commencing play, a "collect” button for cashing out, a help" button for viewing a help screen, a "pay table” button for viewing the pay table(s), and a “call attendant” button for calling an attendant. Additional game specific buttons may be provided to facilitate play of the specific game executed on the machine.
  • the touch screen may define touch keys for implementing many of the same functions as the push-buttons.
  • Other possible user interface devices include a keyboard and a pointing device such as a mouse or trackball.
  • a processor controls operation of the gaming machine 10.
  • the processor randomly selects a game outcome from a plurality of possible outcomes and causes the display 12 to depict indicia representative of the selected game outcome.
  • slots for example mechanical or simulated slot reels are rotated and stopped to place symbols on the reels in visual association with one or more pay lines.
  • the processor awards the player with a number of credits associated with the winning outcome.
  • FIG. 2 is a block diagram of a control system suitable for operating the gaming machine 10.
  • Money/credit detector 22 signals a processor 20 when a player has inserted money, tickets, tokens, cards or other mechanism for obtaining credits for plays on the gaming machine through credit mechanisms 14.
  • the player may select any variables associated with the wagering game and place his/her wager to purchase a play of the game.
  • the processor 20 In a play of the game, the processor 20 generates at least one random event using a random number generator (RNG) and provides an award to the player for a winning outcome of the random event.
  • RNG random number generator
  • the random event may be generated by a remote computer using an RNG or pooling schema and then transmitted to the gaming machine.
  • the processor 20 operates the display 12 to represent the random event(s) and outcome(s) in a visual form that can be understood by the player.
  • the control system may include one or more additional slave control units for operating the display 12 and any secondary displays.
  • System memory 24 stores control software, operational instructions and data associated with the gaming machine, hi one embodiment, the system memory 24 comprises a separate read-only memory (ROM) and battery-backed random-access memory (RAM). However, it will be appreciated that the system memory 24 may be implemented on any of several alternative types of memory structures or may be implemented on a single memory structure.
  • ROM read-only memory
  • RAM battery-backed random-access memory
  • a payoff mechanism 26 is operable in response to instructions from the processor 20 to award a payoff to the player.
  • the payoff may, for example, be in the form of a number of credits.
  • the number of credits is determined by one or more math tables stored in the system memory 24.
  • NVRAM memory 28 in addition to system memory 24, provides storage for software and data associated with the gaming machine.
  • NVRAM 28 may comprise battery backed RAM, including battery backed SRAM (Static RAM).
  • NVRAM 28 may comprise MRAM (magnetoresistive or magnetic RAM).
  • MRAM magnetoresistive or magnetic RAM
  • MRAM is a non-volatile RAM memory technology that uses magnetic charges to store data instead of electric charges, such as those used in SRAM and DRAM technologies.
  • NVRAM 28 may be FRAM (Ferroelectric RAM). MRAM and FRAM are desirable, because they do not require battery backup in order for the memory to retain data. It should be noted that any of these memory types may also be used for general purpose memory 24.
  • system memory 24 includes one or more gaming applications 302 executable by processor 20. During their operation, gaming applications 302 may need to read and write data to system memory 24 and to a data store 306 maintained on NVRAM memory 28.
  • the data stored in data store 306 may include critical data.
  • Critical data is generally data that is maintained across reboots or power cycles for the gaming machine.
  • Critical data may also include data that must be reported to one or more of the various regulatory agencies that control gaming in a jurisdiction. Examples of critical data may include one or more of the following:
  • data store 306 is managed by a data store manager 304.
  • access to data store 306 by applications 302 is through the data store manager, as illustrated by gaming applications 302.1 - 302.3.
  • data store 306 comprises a file system.
  • Data store manager 304 may be a file system component of an operating system.
  • data store 306 and data store manager 304 comprise the "ext3" file system running under a Linux operating system.
  • data store 306 may be organized as a set of one or more data pools that may be allocated to gaming applications 302 by data store manager 304.
  • data store 306 is a database and data store manager 304 is a database manager, hi varying embodiments, data store 306 may be a relational database, a hierarchical database, an object orient database, or an XML (extensible Markup Language) database.
  • data store 306 may be a relational database, a hierarchical database, an object orient database, or an XML (extensible Markup Language) database.
  • multiple sections of NVRAM 28 may contain different data stores 306.
  • the NVRAM sections 28 and their corresponding data stores 306 may be read-only containing static data, read- write containing dynamic data, or any combination of the two.
  • Journal 308 comprises a journal for data store 306.
  • Journal 308 in effect is a staging area where data generated by a gaming application may be stored in data store 306 in a secure manner.
  • the operation of data store manager 304, data store 306 and journal 306 will be further described below with respect of FIGs. 4A and 4B.
  • FIGs. 4A and 4B are flowcharts illustrating methods for providing a gaming machine with a journal for use in storing data.
  • the methods to be performed by the control system operating environment constitute computer programs made up of computer-executable instructions. Describing the method by reference to a flowchart enables one skilled in the art to develop such programs including such instructions to carry out the method on suitable processors for gaming machines (the processor or processors of the computer executing the instructions from computer- readable media such as RAM, ROM, flash memory, CD-ROM, DVD-ROM, hard drives, floppy drives or carrier signal over a wireless or wired network).
  • the methods illustrated in FIGs. 4A and 4B are inclusive of acts that may be taken by an operating environment executing an exemplary embodiment of the invention.
  • FIG. 4A illustrates a method 400 for maintaining a data store on a gaming machine using a journal.
  • Method 400 begins by receiving data to be written to a data store (block 402).
  • the data may be critical data as described above.
  • metadata regarding the data may also be written to the journal.
  • metadata may include information as to how and where the data is to be written to the data store.
  • the metadata will typically be dependent on the underlying structure of the data store (e.g. file system, database, memory pool etc.).
  • the data is committed to the data store from the journal (block 406).
  • the data is committed in an atomic manner.
  • the data is written to the data store as a transaction in which all of the data is written or the transaction fails.
  • FIG. 4B illustrates a method 450 for checking a data store having an associated journal according to embodiments of the invention. The method begins when the data store system is initialized (block 452). The data store may be initialized as a result of the system resuming operation after a system reset or a power failure.
  • the system scans the journal to determine if any uncommitted data is in the journal (block 454). If uncommitted data remains in the journal, the data is committed to the journal (block 456). At this point, the data store is in a consistent state and ready for normal operation (block 458).
  • Systems and methods for providing a gaming machine with a data store journal have been disclosed.
  • the systems and methods disclosed provide a reliable mechanism for storing critical data that does not require redundant copies of memory. If power is suddenly interrupted or a machine reset unexpectedly occurs, a given set of data will have either been fully committed to the data store, in which case there is not a problem, or the data will be marked as not yet fully committed, in which case the data store manager can read the journal and resolve any inconsistencies between the journal and the data store.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Slot Machines And Peripheral Devices (AREA)
  • Pinball Game Machines (AREA)

Abstract

Systems and methods for operating a gaming machine having a data journal memory are disclosed. One aspect of the systems and methods includes a non-volatile random access memory (NVRAM). A data store is maintained on the NVRAM. In addition, a journal is maintained on the NVRAM. A data store manager receives data to be written to the NVRAM. The journal is updated to reflect the data to be written, then the data is written to the data store. In the event of a power loss or system reset, the system checks the journal to see if any data remains to be committed to the data store. If so, the data is written. Normal operation is then resumed.

Description

GAMING MACHINE WITH JOURNALING
Related Application This application claims the priority benefit of U.S. Provisional Application
Serial No. 60/522,446 filed October 2, 2004, the contents of which are incorporated herein by reference.
Copyright A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings that form a part of this document: Copyright 2005, WMS Gaming, Inc. All Rights Reserved.
Field
The present invention relates generally to gaming machines, and more particularly to a gaming machine that journals critical data to memory.
Background
Today's gaming machine typically comprises a computerized system controlling a video display or reels that provide wagering games such as slots, video card games (poker, blackjack etc.), video keno, video bingo, video pachinko and other games typical in the gaming industry. Generally, the popularity of such machines with players is dependent on the likelihood (or perceived likelihood) of winning money at the machine and the intrinsic entertainment value of the machine relative to other available gaming options. Players also appreciate the reliability of a gaming machine, as do the casino operators. Shrewd operators consequently strive to employ the most entertaining, exciting, and reliable machines available because such machines attract frequent play and hence increase profitability to the operator.
Currently, microprocessor-based gaming machines, as well as most microprocessor-based devices use a direct access data storage mechanism commonly referred to in the industry as Random Access Memory (RAM). RAM is immediately accessible by the processor with no additional software required (as in the case of disk drives). The.content of this memory is typically critical to the operation of the gaming machine and is continuously changing as it is read and written, as when game play occurs. One drawback of RAM is that it is power dependent and does not retain the current state of the computer's operation when power is removed.
In most critical computer applications, this information must be retained through a power cycle. Small batteries are used to maintain power to the RAM when the main power is removed. Oftentimes, gaming regulations require that this battery back-up configuration be deployed to retain game state during a power cycle. The inherent risk in deploying this type of technology rests firmly with the reliability of the batteries used. Failure due to flaws or simple power depletion will render this back-up feature useless.
In current RAM applications, access and verification is also limited. Since most memory applications only store one copy of the data, special access and addressing are not required. Programs simply read and write to the same address map and always use the same address for a given piece of information, especially critical variables.
A variety of issues are evident in the methodology and execution of RAM access and use. One issue is that if power to the gaming machine is lost, or if a reset occurs during an update of a critical value, incorrect or incomplete information may be written to memory and any backup copies may not constitute current values.
Some systems have attempted to mitigate this issue by maintaining duplicate copies of critical data in two separate memory sections. Unfortunately, this leads to increased system costs and potential decrease in system performance due to the need to copy the critical data. Summary
The above-mentioned shortcomings, disadvantages and problems are addressed by the present invention, which will be understood by reading and studying the following specification.
Systems and methods for operating a gaming machine having a data journal memory are disclosed. One aspect of the systems and methods includes a non¬ volatile random access memory (NVRAM). A data store is maintained on the NVRAM. In addition, a journal is maintained on the NVRAM. A data store manager receives data to be written to the NVRAM. The journal is updated to reflect the data to be written, then the data is written to the data store. In the event of a power loss or system reset, the system checks the journal to see if any data remains to be committed to the data store. If so, the data is written. Normal operation is then resumed. The present invention describes systems, methods, and computer-readable media of varying scope, hi addition to the aspects and advantages of the present invention described in this summary, further aspects and advantages of the invention will become apparent by reference to the drawings and by reading the detailed description that follows.
Brief Description Of The Drawings
FIG. 1 is a perspective view of a gaming machine embodying the present invention;
FIG. 2 is a block diagram of a gaming control system suitable for operating the gaming machine in FIG. 1 ;
FIG. 3 is a block diagram illustrating the interaction between the control system, a journal, and a data store of a gaming machine according to varying embodiments of the invention;
FIGs. 4A and 4B are flowcharts illustrating methods for providing a journal for a data store on a gaming machine according to various embodiments of the invention. Detailed Description
In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical and other changes may be made without departing from the scope of the present invention.
Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, refer to the action and processes of a computer system, or similar computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
In the Figures, the same reference number is used throughout to refer to an identical component which appears in multiple Figures. Signals and connections may be referred to by the same reference number or label, and the actual meaning will be clear from its use in the context of the description.
The description of the various embodiments is to be construed as exemplary only and does not describe every possible instance of the invention. Numerous alternatives could be implemented, using combinations of current or future technologies, which would still fall within the scope of the claims. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
FIG. 1 illustrates an exemplary gaming machine 10, also referred to as a Video Lottery Terminal (VLT), in which embodiments of the invention may be implemented. In some embodiments, gaming machine 10 is operable to conduct a wagering game such as mechanical or video slots, poker, keno, bingo, or blackjack. If based in video, the gaming machine 10 includes a video display 12 such as a cathode ray tube (CRT), liquid crystal display (LCD), plasma, or other type of video display known in the art. A touch screen preferably overlies the display 12. In the illustrated embodiment, the gaming machine 10 is an "upright" version in which the display 12 is oriented vertically relative to a player. Alternatively, the gaming machine may be a "slant-top" version in which the display 12 is slanted at about a thirty-degree angle toward the player.
The gaming machine 10 includes a plurality of possible credit receiving mechanisms 14 for receiving credits to be used for placing wagers in the game. The credit receiving mechanisms 14 may, for example, include a coin acceptor, a bill acceptor, a ticket reader, and a card reader. The bill acceptor and the ticket reader may be combined into a single unit. The card reader may, for example, accept magnetic cards and smart (chip) cards coded with money or designating an account containing money. In some embodiments, the gaming machine 10 includes a user interface comprising a plurality of push-buttons 16, the above-noted touch screen, and other possible devices. The plurality of push-buttons 16 may, for example, include one or more "bet" buttons for wagering, a "play" button for commencing play, a "collect" button for cashing out, a help" button for viewing a help screen, a "pay table" button for viewing the pay table(s), and a "call attendant" button for calling an attendant. Additional game specific buttons may be provided to facilitate play of the specific game executed on the machine. The touch screen may define touch keys for implementing many of the same functions as the push-buttons. Other possible user interface devices include a keyboard and a pointing device such as a mouse or trackball.
A processor controls operation of the gaming machine 10. In response to receiving a wager and a command to initiate play, the processor randomly selects a game outcome from a plurality of possible outcomes and causes the display 12 to depict indicia representative of the selected game outcome. In the case of slots for example mechanical or simulated slot reels are rotated and stopped to place symbols on the reels in visual association with one or more pay lines. If the selected outcome is one of the winning outcomes defined by a pay table, the processor awards the player with a number of credits associated with the winning outcome. FIG. 2 is a block diagram of a control system suitable for operating the gaming machine 10. Money/credit detector 22 signals a processor 20 when a player has inserted money, tickets, tokens, cards or other mechanism for obtaining credits for plays on the gaming machine through credit mechanisms 14. Using a button panel 16 and/or a touch screen 18, the player may select any variables associated with the wagering game and place his/her wager to purchase a play of the game. In a play of the game, the processor 20 generates at least one random event using a random number generator (RNG) and provides an award to the player for a winning outcome of the random event. Alternatively, the random event may be generated by a remote computer using an RNG or pooling schema and then transmitted to the gaming machine. The processor 20 operates the display 12 to represent the random event(s) and outcome(s) in a visual form that can be understood by the player. In addition to the processor 20, the control system may include one or more additional slave control units for operating the display 12 and any secondary displays.
System memory 24 stores control software, operational instructions and data associated with the gaming machine, hi one embodiment, the system memory 24 comprises a separate read-only memory (ROM) and battery-backed random-access memory (RAM). However, it will be appreciated that the system memory 24 may be implemented on any of several alternative types of memory structures or may be implemented on a single memory structure.
A payoff mechanism 26 is operable in response to instructions from the processor 20 to award a payoff to the player. The payoff may, for example, be in the form of a number of credits. The number of credits is determined by one or more math tables stored in the system memory 24.
NVRAM memory 28, in addition to system memory 24, provides storage for software and data associated with the gaming machine. hi some embodiments, NVRAM 28 may comprise battery backed RAM, including battery backed SRAM (Static RAM). In alternative embodiments, NVRAM 28 may comprise MRAM (magnetoresistive or magnetic RAM). Generally speaking, MRAM is a non-volatile RAM memory technology that uses magnetic charges to store data instead of electric charges, such as those used in SRAM and DRAM technologies. In further alternative embodiments, NVRAM 28 may be FRAM (Ferroelectric RAM). MRAM and FRAM are desirable, because they do not require battery backup in order for the memory to retain data. It should be noted that any of these memory types may also be used for general purpose memory 24. FIG. 3 is a block diagram providing further details regarding the interrelationship between the processor 20, system memory 24 and NVRAM memory 28 components in a gaming machine. In some embodiments, system memory 24 includes one or more gaming applications 302 executable by processor 20. During their operation, gaming applications 302 may need to read and write data to system memory 24 and to a data store 306 maintained on NVRAM memory 28. The data stored in data store 306 may include critical data. Critical data is generally data that is maintained across reboots or power cycles for the gaming machine. Critical data may also include data that must be reported to one or more of the various regulatory agencies that control gaming in a jurisdiction. Examples of critical data may include one or more of the following:
• Number of winning outcomes
• Payout for the machine
• Wagering details (e.g. number of lines wagered, number coins wagered etc.) • Coin-in amounts and denominations
In some embodiments, data store 306 is managed by a data store manager 304. In these embodiments, access to data store 306 by applications 302 is through the data store manager, as illustrated by gaming applications 302.1 - 302.3.
In some embodiments, data store 306 comprises a file system. Data store manager 304 may be a file system component of an operating system. In particular embodiments, data store 306 and data store manager 304 comprise the "ext3" file system running under a Linux operating system.
In alternative embodiments, data store 306 may be organized as a set of one or more data pools that may be allocated to gaming applications 302 by data store manager 304.
In further alternative embodiments, data store 306 is a database and data store manager 304 is a database manager, hi varying embodiments, data store 306 may be a relational database, a hierarchical database, an object orient database, or an XML (extensible Markup Language) database. In some embodiments, multiple sections of NVRAM 28 may contain different data stores 306. The NVRAM sections 28 and their corresponding data stores 306 may be read-only containing static data, read- write containing dynamic data, or any combination of the two.
Journal 308 comprises a journal for data store 306. Journal 308 in effect is a staging area where data generated by a gaming application may be stored in data store 306 in a secure manner. The operation of data store manager 304, data store 306 and journal 306 will be further described below with respect of FIGs. 4A and 4B.
FIGs. 4A and 4B are flowcharts illustrating methods for providing a gaming machine with a journal for use in storing data. The methods to be performed by the control system operating environment constitute computer programs made up of computer-executable instructions. Describing the method by reference to a flowchart enables one skilled in the art to develop such programs including such instructions to carry out the method on suitable processors for gaming machines (the processor or processors of the computer executing the instructions from computer- readable media such as RAM, ROM, flash memory, CD-ROM, DVD-ROM, hard drives, floppy drives or carrier signal over a wireless or wired network). The methods illustrated in FIGs. 4A and 4B are inclusive of acts that may be taken by an operating environment executing an exemplary embodiment of the invention.
FIG. 4A illustrates a method 400 for maintaining a data store on a gaming machine using a journal. Method 400 begins by receiving data to be written to a data store (block 402). The data may be critical data as described above.
Next, the data is written to a journal (block 404). In addition, metadata regarding the data may also be written to the journal. Such metadata may include information as to how and where the data is to be written to the data store. The metadata will typically be dependent on the underlying structure of the data store (e.g. file system, database, memory pool etc.).
Next, the data is committed to the data store from the journal (block 406). In some embodiments, the data is committed in an atomic manner. In other words, the data is written to the data store as a transaction in which all of the data is written or the transaction fails.
Finally, the journal is updated to indicate that the data has been committed to the data store (block 408). In some embodiments, the data is removed from the journal. In alternative embodiments, the data is marked has having been written, but may not be removed from the journal unless the journal becomes full. FIG. 4B illustrates a method 450 for checking a data store having an associated journal according to embodiments of the invention. The method begins when the data store system is initialized (block 452). The data store may be initialized as a result of the system resuming operation after a system reset or a power failure.
Next, the system scans the journal to determine if any uncommitted data is in the journal (block 454). If uncommitted data remains in the journal, the data is committed to the journal (block 456). At this point, the data store is in a consistent state and ready for normal operation (block 458).
Systems and methods for providing a gaming machine with a data store journal have been disclosed. The systems and methods disclosed provide a reliable mechanism for storing critical data that does not require redundant copies of memory. If power is suddenly interrupted or a machine reset unexpectedly occurs, a given set of data will have either been fully committed to the data store, in which case there is not a problem, or the data will be marked as not yet fully committed, in which case the data store manager can read the journal and resolve any inconsistencies between the journal and the data store.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations of the present invention.
The terminology used in this application is meant to include all of these environments. It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. Therefore, it is manifestly intended that this invention be limited only by the following claims and equivalents thereof.

Claims

ClaimsWhat is claimed is:
1. A gaming machine comprising: a processor and a system memory; a non-volatile random access memory (NVRAM); a gaming application executable by the processor and operable to generate critical data; and a data store manager operable to: receive the critical data from the gaming application, write the critical data to a journal; and commit data from the journal to a data store on the NVRAM.
2. The gaming machine of claim 1 , wherein the journal is maintained on the NVRAM.
3. The gaming machine of claim 1, wherein the journal is maintained on a second NVRAM on the gaming machine.
4. The gaming machine of claim 1, wherein the data store manager comprises a file system component and wherein the data store comprises a file system.
5. The gaming machine of claim 1 , wherein the data store manager comprises a database manager and wherein the data store comprises a database maintained by the database manager.
6. The gaming machine of claim 5, wherein the database comprises a relational database.
7. The gaming machine of claim 5, wherein the database comprises an object oriented database.
8. The gaming machine of claim 5, wherein the database comprises a hierarchical database.
9. A method for operating a gaming machine, the method comprising: receiving a set of data from a gaming application; writing the set of data to a journal; and committing the data from the journal to a data store on an NVRAM.
10. The method of claim 9, wherein the data comprises critical data.
11. The method of claim 9, wherein the journal resides on the NVRAM.
12. The method of claim 9, wherein the journal resides on a second NVRAM.
13. The method of claim 9, wherein the data store manager comprises a file system component and wherein the data store comprises a file system.
14. The method of claim 9, wherein the data store manager comprises a database manager and wherein the data store comprises a database maintained by the database manager.
15. The method of claim 14, wherein th.e database comprises a relational database.
16. The method of claim 14, wherein th.e database comprises an object oriented database.
17. The method of claim 14, wherein the database comprises a hierarchical database.
18. A method of operating a gaming machine, the method comprising: initializing the gaming machine; determining if at least one set of data exists in a journal; and if the at least one set of data exists, then committing the at least one set of data to a data store maintained in an NVRAM.
19. The method of claim 18, wherein the data comprises critical data.
20. The method of claim 18, wherein the journal resides on the NVRAM.
21. The method of claim 18, wherein the journal resides on a second NVRAM.
22. The method of claim 18, wherein the data store manager comprises a file system component and wherein the data store comprises a file system.
23. The method of claim 18, wherein the data store manager comprises a database manager and wherein the data store comprises a database maintained by the database manager.
24. The method of claim 23, wherein the database comprises a relational database.
25. The method of claim 23, wherein the database comprises an object oriented database.
26. The method of claim 23, wherein the database comprises a hierarchical database.
27. A computer-readable medium having computer executable instructions for performing a method for operating a gaming machine, the method comprising: receiving a set of data from a gaming application; writing the set of data to a journal; and committing the data from the journal to a data store on an NVRAM.
28. The computer-readable medium of claim 27, wherein the data comprises critical data.
29. The computer-readable medium of claim 27, wherein the journal resides on the NVRAM.
30. The computer-readable medium of claim 27, wherein the journal resides on a second NVRAM.
31. The computer-readable medium of claim 27, wherein the data store manager comprises a file system component and wherein the data store comprises a file system.
32. The computer-readable medium of claim 27, wherein the data store manager comprises a database manager and wherein the data store comprises a database maintained by the database manager.
33. The computer-readable medium of claim 32, wherein the database comprises a relational database.
34. The computer-readable medium of claim 32, wherein the database comprises an object oriented database.
35. The computer-readable medium of claim 32, wherein the database comprises a hierarchical database.
36. A computer-readable medium having computer executable instructions for performing a method of operating a gaming machine, the method comprising: initializing the gaming machine; determining if at least one set of data exists in a journal; and if the at least one set of data exists, then committing the at least one set of data to a data store maintained in an NVRAM.
37. The computer-readable medium of claim 36, wherein the data comprises critical data.
38. The computer-readable medium of claim 36, wherein the journal resides on the NVRAM.
39. The computer-readable medium of claim 36, wherein the journal resides on a second NVRAM.
40. The computer-readable medium of claim 36, wherein the data store manager comprises a file system component and wherein the data store comprises a file system.
41. The computer-readable medium of claim 36, wherein the data store manager comprises a database manager and wherein the data store comprises a database maintained by the database manager.
42. The computer-readable medium of claim 41 , wherein the database comprises a relational database.
43. The computer-readable medium of claim 41 , wherein the database comprises an object oriented database.
44. The computer-readable medium of claim 41 , wherein the database comprises a hierarchical database.
PCT/US2005/035310 2004-10-02 2005-09-30 Gaming machine with journaling WO2006039557A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/576,270 US20070281793A1 (en) 2004-10-02 2005-09-30 Gaming machine with journaling

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US52244604P 2004-10-02 2004-10-02
US60/522,446 2004-10-02

Publications (2)

Publication Number Publication Date
WO2006039557A2 true WO2006039557A2 (en) 2006-04-13
WO2006039557A3 WO2006039557A3 (en) 2006-07-27

Family

ID=36143109

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/035310 WO2006039557A2 (en) 2004-10-02 2005-09-30 Gaming machine with journaling

Country Status (2)

Country Link
US (1) US20070281793A1 (en)
WO (1) WO2006039557A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008048419A2 (en) * 2006-10-18 2008-04-24 Wms Gaming Inc. Control of reconfigurable gaming machines

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009102823A1 (en) * 2008-02-13 2009-08-20 Wms Gaming, Inc. Processing critical data sets in non-volatile memory
KR20100083914A (en) * 2009-01-15 2010-07-23 삼성전자주식회사 Image forming apparatus and control method the same
US9177607B2 (en) 2012-05-16 2015-11-03 Seagate Technology Llc Logging disk recovery operations in a non-volatile solid-state memory cache

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5505449A (en) * 1993-12-21 1996-04-09 Video Lottery Technologies, Inc. Video lottery system with improved site controller and validation unit
US20020115489A1 (en) * 2000-11-20 2002-08-22 Jordan Kent Wilcoxson Method and apparatus for interactive real time distributed gaming
US20020147049A1 (en) * 2001-04-10 2002-10-10 Carter Russell O. Location based mobile wagering system
US20030073495A1 (en) * 2001-10-16 2003-04-17 D'amico Michael H. Local database gaming system techniques
US20030176213A1 (en) * 2002-03-12 2003-09-18 Igt Virtual gaming peripherals for a gaming machine
US20030195033A1 (en) * 2002-04-10 2003-10-16 Gazdic Daniel J. Gaming software authentication
US20030224858A1 (en) * 2001-03-08 2003-12-04 Yoseloff Mark L. Computerized gaming system, method and apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6269382B1 (en) * 1998-08-31 2001-07-31 Microsoft Corporation Systems and methods for migration and recall of data from local and remote storage

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5505449A (en) * 1993-12-21 1996-04-09 Video Lottery Technologies, Inc. Video lottery system with improved site controller and validation unit
US20020115489A1 (en) * 2000-11-20 2002-08-22 Jordan Kent Wilcoxson Method and apparatus for interactive real time distributed gaming
US20030224858A1 (en) * 2001-03-08 2003-12-04 Yoseloff Mark L. Computerized gaming system, method and apparatus
US20020147049A1 (en) * 2001-04-10 2002-10-10 Carter Russell O. Location based mobile wagering system
US20030073495A1 (en) * 2001-10-16 2003-04-17 D'amico Michael H. Local database gaming system techniques
US20030176213A1 (en) * 2002-03-12 2003-09-18 Igt Virtual gaming peripherals for a gaming machine
US20030195033A1 (en) * 2002-04-10 2003-10-16 Gazdic Daniel J. Gaming software authentication

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008048419A2 (en) * 2006-10-18 2008-04-24 Wms Gaming Inc. Control of reconfigurable gaming machines
WO2008048419A3 (en) * 2006-10-18 2008-06-19 Wms Gaming Inc Control of reconfigurable gaming machines
US8142291B2 (en) 2006-10-18 2012-03-27 Wms Gaming, Inc. Control of reconfigurable gaming machines

Also Published As

Publication number Publication date
US20070281793A1 (en) 2007-12-06
WO2006039557A3 (en) 2006-07-27

Similar Documents

Publication Publication Date Title
US7610462B2 (en) Gaming machine with secure fault-tolerant memory
US9704341B2 (en) Method and apparatus for rewarding multiple game players for a single win
US8109823B2 (en) Gaming machine with wild symbol feature
US8113933B2 (en) Gaming machine providing multiple poker games with a push up feature
US7976382B2 (en) Casino gaming apparatus with a bonus associated with a cash out
US7896735B2 (en) Player gaming console, gaming machine, networked gaming system and method
US9117342B2 (en) Networked gaming system communication protocols and methods
US9082260B2 (en) Networked gaming system communication protocols and methods
US20060035694A1 (en) Game including a bonus award funded from a progressive pool and method of determining amount of a bonus award
US20060264256A1 (en) Gaming system with administrative interfaces for managing downloadable game components
US8075395B2 (en) Wagering game machine having image copied file system
US20090124372A1 (en) Asset management of downloadable gaming components in a gaming system
US20080108420A1 (en) Gaming device and method for playing game
US20070281793A1 (en) Gaming machine with journaling
US20090017896A1 (en) Gaming machine with auto-detect feature activation
US10930110B2 (en) Multi-cabinet game build and gaming machines using same
US20080194336A1 (en) Gaming Device with Resources Swapping
US20080096631A1 (en) Gaming Device With Error Correcting Memory
US9916716B2 (en) Gaming system and method of gaming
US20080085774A1 (en) Gaming Device with Embedded Data System
US8123621B2 (en) Storing data in wagering game systems
US20110159949A1 (en) Method of gaming, a game controller and a prize controller
AU2016201094A1 (en) A jackpot prediction controller, a gaming system and a method of gaming
WO2010096864A1 (en) A system and method for allowing a ticket to be used at a plurality of venues
AU2007200646A1 (en) Gaming Machine with Promotional Item Dispenser

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 11576270

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 11576270

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 05802845

Country of ref document: EP

Kind code of ref document: A2

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)