Abstract:
This document discusses, among other things, systems and methods for managing the contents of NVRAM in a wagering game machine. A method copies a first data of an NVRAM module to a storage device, wherein the NVRAM module is associated with a wagering game machine and then copies a second data to the NVRAM module.

Description:
RELATED APPLICATIONS 
       [0001]    This patent application claims the benefit of priority of U.S. Provisional Patent Application Ser. No. 60/743,284 entitled “REORGANIZING OF NVRAM USING A TEMPORARY STORAGE DEVICE,” filed on Feb. 14, 2006 (Attorney Docket No. 1842.248PRV); and of U.S. Provisional Patent Application Ser. No. 60/744,969 entitled “REORGANIZING A WAGERING GAME MACHINE&#39;S NVRAM USING A TEMPORARY STORAGE DEVICE,” filed on Apr. 17, 2006 (Attorney Docket No. 1842.248PV2). 
     
    
     COPYRIGHT 
       [0002]    A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. Copyright 2006, 2007, WMS Gaming, Inc. 
       FIELD 
       [0003]    Embodiments of the inventive subject matter relate generally to wagering game machines, and more particularly, to memory management within wagering game machines. 
       BACKGROUND 
       [0004]    Wagering game machines, such as slot machines, video poker machines, and the like, have been a cornerstone of the gaming industry for several years. Generally, the popularity of such machines depends 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. Where the available gaming options include a number of competing machines and the expectation of winning at each machine is roughly the same (or believed to be the same), players are most likely attracted to the most entertaining and exciting of the machines. Consequently, shrewd operators strive to employ the most entertaining and exciting machines available because such machines attract frequent play and increase profitability for the operator. In the competitive wager gaming machine industry, there is a continuing need for manufacturers to produce new game types or to enhance entertainment and excitement associated with existing wager gaming machines. 
         [0005]    Computerized wagering games have largely replaced traditional mechanical wagering game machines such as slot machines, and are rapidly being adopted to implement computerized versions of games that are traditionally played live such as poker and blackjack. These computerized games provide many benefits to the game owner and to the gambler, including greater reliability than can be achieved with a mechanical game or human dealer, more variety, sound, and animation in presentation of a game, and a lower overall cost of production and management. 
         [0006]    One aspect of modern computerized wagering games is that a single console or cabinet is capable of providing several different games, similar to a personal computer. In certain wagering game machines, non-volatile random access memory (NVRAM) is used to store critical data. Such critical data may include game history data, accounting data, security data, player tracking data, or other game state data. Typically, modifying the set of games on a wagering game machine necessitates re-initializing or re-formatting the NVRAM and losing any existing critical data. Retaining critical data between game installations is advantageous to maintain a consistent playing environment. When installing or modifying games on a computerized wagering machine, it is desirable to effectively manage critical data to ensure game integrity. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0007]      FIG. 1  is a block diagram illustrating a wagering game machine, according to example embodiments of the invention. 
           [0008]      FIG. 2  is a block diagram illustrating a wagering game network, according to example embodiments of the invention. 
           [0009]      FIG. 3  is a flowchart illustrating generally a method of managing the contents of NVRAM, according to example embodiments of the invention. 
           [0010]      FIG. 4  is a perspective view of a wagering game machine, according to example embodiments of the invention. 
       
    
    
     DETAILED DESCRIPTION  
     Example Operating Environment 
       [0011]      FIG. 1  is a block diagram illustrating a control system  106  for a wagering game machine, according to example embodiments of the invention. As shown in  FIG. 1 , the control system  106  includes a central processing unit (CPU)  126  connected to main memory  128 , which includes a wagering game unit  132  and a non-volatile random access memory (NVRAM) management unit  136 . An NVRAM module  138  is connected to the CPU  126 . In some embodiments, the NVRAM module  138  is a battery-backed random access memory (RAM). In other embodiments, the NVRAM module  138  is a flash memory module, magnetic RAM, FeRAM, phase-change memory (PRAM), carbon nanotube technology, or other types of memory capable of preserving information when its power is off. In one embodiment, the wagering game unit  132  can receive wagers and conduct wagering games, such as video poker, video blackjack, video slots, video lottery, etc. In one embodiment, the NVRAM management unit  136  manages an NVRAM module  138 , as described herein. 
         [0012]    The CPU  126  is also connected to an input/output (I/O) bus  122 , which facilitates communication between the wagering game machine&#39;s components. The I/O bus  122  is connected to a payout mechanism  108 , primary display  110 , secondary display  112 , value input device  114 , player input device  116 , information reader  118 , wager input unit  120 , and storage unit  130 . In one embodiment, the wager input unit  120  can electronically receive wagering value (e.g., monetary value) from a player&#39;s casino account or other suitable “cashless gaming” value source. The I/O bus  122  is also connected to an external system interface  124 , which is connected to external systems  104  (e.g., wagering game networks). 
         [0013]    In one embodiment, the control system  106  can include additional peripheral devices and/or more than one of each component shown in  FIG. 1 . For example, in one embodiment, the control system  106  can include external system interfaces  124  and multiple CPUs  126 . In one embodiment, any of the components can be integrated or subdivided. Additionally, in one embodiment, the components of the control system  106  can be interconnected according to any suitable interconnection architecture (e.g., directly connected, hypercube, etc.). 
         [0014]    In one embodiment, any of the components of the control system  106  (e.g., the NVRAM management unit  136 ) can include hardware, firmware, and/or software for performing the operations described herein. Furthermore, any of the components can include machine-readable media including instructions for causing a machine to perform the operations described herein. Machine-readable media includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a wagering game machine, computer, etc.). For example, tangible machine-readable media includes read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory machines, etc. Machine-readable media also includes any media suitable for transmitting software over a network. 
         [0015]      FIG. 2  is a block diagram illustrating a wagering game network  200 , according to example embodiments of the invention. The wagering game network  200  includes a plurality of casinos  212  connected to a communications network  214 . Each of the plurality of casinos  212  includes a local area network  214 , which includes wagering game machines  202  and mobile wagering game units  204  connected to a wagering game server  206 . The wagering game machines  202 , mobile wagering game unit  204 , and wagering game server  206  can include hardware and machine-readable media including instructions for reorganizing an NVRAM module, as described herein. In one embodiment, the wagering game server  206  can perform NVRAM reorganization in concert with serving wagering games over the local area network. 
         [0016]    The wagering game machines described herein can take any suitable form, such as floor standing models, handheld mobile units, bartop models, workstation-type console models, etc. In one embodiment, the wagering game network  200  can include other network devices, such as accounting servers, wide area progressive servers, and/or other devices suitable for use in connection with embodiments of the invention. 
         [0017]    The components of each casino  212  can communicate over wired  208  and/or wireless connections  210 . Furthermore, they can employ any suitable connection technology, such as Bluetooth, 802.11, Ethernet, public switched telephone networks, SONET, etc. 
       Example Operations 
       [0018]    Typically, a game stores critical data in NVRAM. Critical data may include one or more of game outcome, credit balance, reel positions, game history, random number generator seeds, game configuration, machine configuration, player information, or other state information or information critical to the operation and record keeping in a gaming machine. The critical data is stored in NVRAM to maintain a player&#39;s game state in the case of a sudden power failure. In some embodiments, NVRAM is formatted with fixed partitions to optimize file system operations. In other embodiments, NVRAM is formatted with dynamic partitions. 
         [0019]      FIG. 3  is a flowchart illustrating generally a method  300  of managing the contents of NVRAM. At  302 , the contents of an NVRAM module  138  are copied to a temporary storage device. In an embodiment, the contents are copied using a structured copy, for example using a file system to copy files, to the temporary storage device. In an embodiment, the contents are copied using a raw copy, for example as copying an image of the NVRAM, to the temporary storage device. In an embodiment, a computer operator or administrative user initiates the copy function as a step during programming a wagering game machine. For example, the computer operator or administrative user can use a device to initiate and control the copying or alternatively, the operator or user can initiate the copying with a process or program. In some embodiments, the temporary storage device is a compact flash card containing instructions that initiate and control the copying of the contents of the NVRAM to a destination storage device. In other embodiments, a process, such as a stored program existing in the wagering game machine&#39;s main memory or in a specialized program module (e.g., a read-only memory module or a firmware module) is used to control the copying. The operator or user may initiate such a stored program using an on-screen display (e.g., an administrative menu), a specialized wired or wireless device (e.g., an administrative key fob or controller unit), or by manipulating hardware, which may reside inside a wagering game machine&#39;s cabinet (e.g., a reset button). In some embodiments, the operation that initiates the copying is sent from a server machine. The client (i.e., a wagering game machine) can receive the control signal and initiate the method  300 . In certain embodiments, security features exist to ensure that such a control signal is authentic (e.g., a secured wired or wireless channel, use of certificates, encryption schemes, or private networks). 
         [0020]    The temporary storage device can include in various embodiments, volatile or non-volatile memory, such as a hard disk, flash memory, or random access memory (RAM). In further embodiments, the temporary storage device is a removable media, such as a universal serial bus (USB) memory stick or a hot-swappable hard drive. In other embodiments, the temporary storage device includes one or more of an optical drive (e.g., CD-RW drive or DVD-RW drive) or a network storage device. 
         [0021]    In an embodiment, some or all of the data copied from the NVRAM module to the temporary storage device is compressed. In an embodiment, the transferred data is encrypted or protected by other security measures, such as a password. 
         [0022]    At  304 , the NVRAM module  138  is cleared. In an embodiment, the clearing is performed by writing zeros to every address location in the NVRAM module  138 . This may be preferred to ensure that subsequent games that access a previously used memory range are not able to intentionally or accidentally retrieve false, inconsistent, or inaccurate data related to the previous game files. In other embodiments, only enough of the NVRAM is cleared to destroy the file system. In an embodiment, clearing is performed by writing ones to certain addresses or ranges of addresses to destroy the data or file system. In an embodiment, the clearing is performed by calling another process or sending a control command to a device to clear the NVRAM. For example, the NVRAM management unit  136  can initialize and run executable code that exists in the wagering game machine&#39;s main memory  128 . In an embodiment, step  304  is optional and may not be performed. 
         [0023]    At  306 , the NVRAM management unit  136  copies data into the NVRAM module  138 . In an embodiment, the data can comprise some or all of the previous contents of the NVRAM, which are stored on the temporary storage device. In an embodiment, if a structured copy was used to copy files to the temporary storage device, then after a file system is created on the cleared NVRAM, files can be copied or moved back to the NVRAM. In contrast, in another embodiment, if a raw copy, such as an image, was used to transfer the contents of the NVRAM to the temporary storage device, then files can be read from the raw copy (e.g., image) on the temporary storage device and transferred to the NVRAM or alternatively, part or all of the raw data can be transferred to the NVRAM. In an embodiment, some or all of the data to be stored on the NVRAM module  138  is generated by a process. For example, after the NVRAM is cleared, an operator can install a new game program, where the initial steps of installation include clearing some or all of the NVRAM, formatting the NVRAM with a new file system, and then installing necessary default game files. In an embodiment, some or all of the data is copied from a source other than the temporary storage device. In an embodiment, some of all of the data copied to the NVRAM is from the temporary storage device and is either a subset or a superset of the data initially copied from the NVRAM to the temporary storage device. 
         [0024]    In certain embodiments, the data is compressed or uncompressed files, encrypted data, or executable data. For example, in order to improve the capacity efficiency of the temporary storage device, the data can be compressed after being copied to the temporary storage device and then decompressed before being copied back to the NVRAM module  138 . Alternatively, the data can be copied back to the NVRAM module  138  in a compressed state and then decompressed by a process or program that accesses the data. In some embodiments, an authentication, verification or confirmation step is inherent to the copying process. For example, after a file is copied for a storage device to the NVRAM module  138 , a process is used to calculate a checksum and compare it to a known value to verify an accurate copy. 
       Example Wagering Game Machine 
       [0025]      FIG. 4  is a perspective view of a wagering game machine, according to example embodiments of the invention. Referring to  FIG. 4 , a wagering game machine  400  is used in gaming establishments, such as casinos. According to embodiments, the wagering game machine  400  can be any type of wagering game machine and can have varying structures and methods of operation. For example, the wagering game machine  400  can be an electromechanical wagering game machine configured to play mechanical slots, or it can be an electronic wagering game machine configured to play video casino games, such as blackjack, slots, keno, poker, blackjack, roulette, etc. 
         [0026]    The wagering game machine  400  comprises a housing  412  and includes input devices, including value input devices  418  and a player input device  424 . For output, the wagering game machine  400  includes a primary display  414  for displaying information about a basic wagering game. The primary display  414  can also display information about a bonus wagering game and a progressive wagering game. The wagering game machine  400  also includes a secondary display  416  for displaying wagering game events, wagering game outcomes, and/or signage information. While some components of the wagering game machine  400  are described herein, numerous other elements can exist and can be used in any number or combination to create varying forms of the wagering game machine  400 . 
         [0027]    The value input devices  418  can take any suitable form and can be located on the front of the housing  412 . The value input devices  418  can receive currency and/or credits inserted by a player. The value input devices  418  can include coin acceptors for receiving coin currency and bill acceptors for receiving paper currency. Furthermore, the value input devices  418  can include ticket readers or barcode scanners for reading information stored on vouchers, cards, or other tangible portable storage devices. The vouchers or cards can authorize access to central accounts, which can transfer money to the wagering game machine  400 . 
         [0028]    The player input device  424  comprises a plurality of push buttons on a button panel  426  for operating the wagering game machine  400 . In addition, or alternatively, the player input device  424  can comprise a touch screen  428  mounted over the primary display  414  and/or secondary display  416 . 
         [0029]    The various components of the wagering game machine  400  can be connected directly to, or contained within, the housing  412 . Alternatively, some of the wagering game machine&#39;s components can be located outside of the housing  412 , while being communicatively coupled with the wagering game machine  400  using any suitable wired or wireless communication technology. 
         [0030]    The operation of the basic wagering game can be displayed to the player on the primary display  414 . The primary display  414  can also display a bonus game associated with the basic wagering game. The primary display  414  can include a cathode ray tube (CRT), a high resolution liquid crystal display (LCD), a plasma display, light emitting diodes (LEDs), or any other type of display suitable for use in the wagering game machine  400 . Alternatively, the primary display  414  can include a number of mechanical reels to display the outcome. In  FIG. 4 , the wagering game machine  400  is an “upright” version in which the primary display  414  is oriented vertically relative to the player. Alternatively, the wagering game machine can be a “slant-top” version in which the primary display  414  is slanted at about a thirty-degree angle toward the player of the wagering game machine  400 . In yet another embodiment, the wagering game machine  400  can be a bartop model, a mobile handheld model, or a workstation console model. 
         [0031]    A player begins playing a basic wagering game by making a wager via the value input device  418 . The player can initiate play by using the player input device&#39;s buttons or touch screen  428 . The basic game can include arranging a plurality of symbols along a payline  432 , which indicates one or more outcomes of the basic game. Such outcomes can be randomly selected in response to player input. At least one of the outcomes, which can include any variation or combination of symbols, can trigger a bonus game. 
         [0032]    In some embodiments, the wagering game machine  400  can also include an information reader  452 , which can include a card reader, ticket reader, bar code scanner, RFID transceiver, or computer readable storage medium interface. In some embodiments, the information reader  452  can be used to award complimentary services, restore game assets, track player habits, etc. 
         [0033]    In some embodiments, the wagering game machine  400  can also include an information reader, which can include a card reader, ticket reader, bar code scanner, RFID transceiver, or computer readable storage medium interface. In some embodiments, the information reader can be used to award complimentary services, restore game assets, track player habits, etc. 
         [0034]    In some embodiments, the wagering machine is a stand alone gaming device, a mobile gaming device, or a gaming device in a server-based gaming system. 
       General Comments 
       [0035]    In the above detailed description, reference is made to specific examples by way of drawings and illustrations. These embodiments, which are also referred to herein as “examples,” are described in sufficient detail to enable those skilled in the art to practice the inventive subject matter, and serve to illustrate how the inventive subject matter may be applied to various purposes or embodiments. Other embodiments are included within the inventive subject matter, as logical, mechanical, electrical, and other changes may be made to the example embodiments described herein. Features or limitations of various embodiments described herein, however essential to the example embodiments in which they are incorporated, do not limit the inventive subject matter as a whole, and any reference to the invention, its elements, operation, and application are not limiting as a whole, but serve only to define these example embodiments. The above detailed description does not, therefore, limit embodiments of the invention, which are defined only by the appended claims. 
         [0036]    Each of the embodiments described herein are contemplated as falling within the inventive subject matter, which is set forth in the following claims.