Casinos and other forms of gaming comprise a growing multi-billion dollar industry that has experienced a marked shift over the past few decades to the extensive use of gaming machines, and in particular electronic and microprocessor based gaming machines. In a typical gaming machine, such as a video poker or slot machine, a game play is first initiated through a player wager of money, credit or other indicia, whereupon the gaming machine determines a game outcome, presents the game outcome to the player and then potentially dispenses an award of some type, including a monetary award, depending on the game outcome. Although this process is generally true for both mechanical and electronic gaming machines, the electronic machines tend to be more popular with players and thus more lucrative for casinos for a number of reasons, such as increased game varieties, more attractive and dynamic presentations and the ability to award larger jackpots.
Electronic gaming machines can include various hardware and software components to provide a wide variety of game types and game playing capabilities, with such hardware and software components being generally well known in the art. A typical electronic gaming machine can include hardware devices and peripherals such as, for example, bill validators, coin acceptors, card readers, keypads, buttons, levers, touch screens, coin hoppers, ticket printers, player tracking units and the like. A gaming machine can also have various audio and visual display components, such as, for example, speakers, display panels, belly and top glasses, exterior cabinet artwork, lights, and top box dioramas, as well as any number of video displays of various types to show game play and other assorted information, with such video display types including, for example, a cathode ray tube (“CRT”), a liquid crystal display (“LCD”), a light emitting diode (“LED”), a flat panel display and a plasma display, among others. Software components can include, for example, boot and initialization routines, various game play programs and subroutines, credit and payout routines, image and audio generation programs, various component modules and a random number generator, among others.
In addition, an electronic gaming machine typically includes a central processing unit (“CPU”) or master gaming controller (“MGC”) that controls various processes and combinations of hardware and software devices, such as components and processes that encourage game play, allow a player to play a game on the gaming machine, run the game itself, and control payouts and other awards. In addition to the many other processors within a gaming machine, this MGC or CPU in particular is associated with and can have access to a wide variety of memory or storage devices, many of which are of different types. Such memory or storage devices can include, for example, various types of random access memory (“RAM”), such as static RAM (“SRAM”) dynamic RAM (“DRAM”), synchronous DRAM (“SDRAM”), battery backed and other types of non-volatile RAM (“NVRAM”) and various forms of flash and cache RAM, among others, as well as numerous types of read only memory (“ROM”), such as a programmable ROM (“PROM”), including erasable PROM (“EPROM”) and electrically erasable PROM (“EEPROM”), a compact disc (“CD”), a digital video disc (“DVD”) and specific portions of hard drives, among others.
Instructions and other computer code for gaming machine peripherals and components are typically stored in some form of ROM by design, by regulatory requirement, or both. Many ROM devices for electronic gaming machines and their peripherals must currently be programmed externally from the gaming machine or peripheral, and then installed into the gaming machine or peripheral once they are programmed. This standard process has several major drawbacks. For one, special equipment is usually required to program the ROM devices at special programming voltages. In addition, most ROM devices cannot be reprogrammed “in circuit,” and must therefore be removed from the gaming machine for any reprogramming or updating, which then usually requires some disassembly of other gaming machine components just to gain access to the ROM device. Furthermore, ROM devices must typically be completely erased prior to reprogramming, which can in itself be a time consuming process. Hence, current programming and updating parameters for many gaming machine ROM devices can be problematic or inconvenient at best.
As is generally known, many forms of ROM tend to be relatively slow in terms of access speeds, particularly with respect to many SRAM and DRAM type devices. For example, many EPROM and EEPROM type devices have access speeds on the order of about 8 to 33 MHz, while SRAM and DRAM type devices have access speeds that are typically around 133 to 800 MHz or higher. Even faster ROM devices, such as CD-ROMs and hard drives tend to run at access speeds in the vicinity of about 100 MHz, which are still significantly lower than those of many RAM type devices. Since many gaming machine programs and processes, including much or all of the initialization, authentication and other boot, startup or similarly sensitive processes, must be stored on ROM devices for a variety of reasons, such as for security purposes, these processes tend to be relatively slow in terms of the length of time taken to run with respect to the amounts of actual memory used in the processes. In fact, modern gaming machines typically load and run many resources each time that they are powered up or otherwise go through a boot process. Depending on the amount and size of the resources that must be loaded, this process tends to take upwards of several minutes to complete, with such times generally increasing as gaming machines become more sophisticated and complex.
Although the majority of the resources that are loaded do not change while the gaming machine is in use, it remains a requirement in many jurisdictions, and is still otherwise customary, to store these boot programs and other sensitive routines in the relatively slower ROM devices. In fact, many such programs and routines are copied into DRAM or some other faster storage component during the boot process, such that these programs can be accessed and operate faster as the program is first executed and/or repeatedly accessed during normal gaming machine operations. For example, most or all authentication code is currently stored in one or more EPROMs in the gaming machine. During the boot process, this authentication code is copied and loaded into gaming machine DRAM for further future use, since EPROMs are so relatively slow. Other programs and processes are similarly copied, potentially authenticated, and then stored in a relatively faster SRAM, DRAM or other storage location for future use. Although such designs are known to be standard within the gaming machine industry, it is inherently inefficient to require multiple storage units and allotments of memory space for multiple copies of the same exact programs.
While existing systems and methods for providing system architectures and memory devices in electronic gaming machines and systems have been adequate, improvements are usually welcomed and encouraged. In view of many of the above legacy features and their inherent inefficiencies, it would be desirable to have more efficient, more accessible, less complicated and yet more secure apparatuses, systems and methods of providing non-volatile memory within an electronic gaming machine.
Further, many electronic gaming machines also include some form of powered down or powered off logging, such that certain noteworthy events can be detected while the main power to the gaming machine is down or off. If provided, such events are typically recorded by a “tell-tale board” or other similar logging device that is powered by a separate battery. Such a device is usually adapted to monitor for a select few offline activities, such as the opening of the main door, bill door, drop door, brain box or card cage door and/or other critical doors or accesses of a gaming machine, such that a casino or other gaming machine operator can be notified if such events have occurred while the main power to the gaming machine has been down or off. Appropriate security measures or other action may then be taken in such cases where such critical accesses have been made during a power down or off period, as is generally known in the art.
Although useful, the overall capabilities of such tell-tale boards or logging devices can be limited due to limited power supplies for operating the logging device and maintaining the storage of any data recorded until the main power to the machine is restored. Many convenient forms of storage, such as DRAM, require a constant refresh to maintain storage, and thus tend to be quite costly and impractical in battery powered situations. DRAM tends to drain a battery over time, resulting in situations where the stability of recorded data is not guaranteed for lengthy time periods. Thus, other forms of storage tend to be used for tell-tale boards, with flash RAM being a popular choice due to its ability to hold data without constant power refreshing. Flash RAM has drawbacks too though, as it typically requires page writes, which require longer cycles and more power. Due to concerns over limited finite power supplies and the relatively large amounts of power required to monitor events and record data offline, tell-tale boards and other logging devices are typically designed only to record actual “yes” or “no” data with respect to critical offline events, with other pertinent data such as dates, times, number of occurrences and other details not being recorded. When full power is then restored to the gaming machine, it is usually only known that a given door was opened at least once during the time that power was off.
While existing systems and methods of using logging and storage devices to track and record powered down and off events in electronic gaming machines and systems have been adequate, improvements are usually welcomed and encouraged. In view of the foregoing, it would be desirable for such logging and storage devices within electronic gaming machines and systems to have more versatility, at least with respect to greater storage capacities and recording options, but without creating any expected corresponding increases in the levels of power needed for such features.
In addition, many gaming machine operators, manufacturers and gaming jurisdictions require some level of power-hit tolerance and electrostatic discharge (“ESD”) tolerance in gaming machines, particularly with respect to any “safe storage” method of backing up critical gaming machine data. Such critical data can include, for example, a state and outcome of a current game, various meter readings, machine settings, logs, and so forth, some or all of which can be stored using a non-volatile memory “safe storage” device, such that stored data can be recalled whenever a malfunction, power failure, player dispute or other similar event occurs. A battery backed RAM is one an example of such a non-volatile memory “safe storage” device (i.e., NVRAM) used on many types of gaming machines for these purposes. Another possible solution for NVRAM issues is to use EEPROMs, which can maintain their memory without a constant power supply. EEPROM use does have other drawbacks though, as EEPROMs tend to have long access times, usually require software drivers to facilitate access, and can fail after tens to hundreds of thousands of writes, such that EEPROMs are generally not used as safe storage devices.
Rather, many NVRAMs designed to store critical game information for long periods of time typically require some form of battery or power backup to preserve the non-volatile nature of the device. While many such batteries are designed to last for a number of years, the need to replace any battery eventually can lead to a number of issues, including the consequences of critical lost data if such a replacement is not made in a timely manner. Also, the use of batteries as a backup source of power can severely restrict the types and amounts of memory that can be used for such purposes. As noted above, the relatively high power requirements of SRAM or DRAM make such types of units virtually impossible to use in conjunction with a battery as a practical matter. As a result, the actual storage space available for a battery backed RAM device is relatively limited. Furthermore, as in the case of many ROM devices, the access speeds for a typical battery backed RAM device are relatively slow when compared to those for SRAM, DRAM and many other RAM type devices. Also, many typical battery backed fixed memory approaches for non-volatile memory can be problematic for a variety of other reasons, such as in the instance of an open game development environment, due of security issues.
Other issues also arise with respect to the use of NVRAM as safe storage for critical gaming machine events and data. Such use of battery backed RAM or other NVRAM devices as safe storage is typically duplicative, in that the same or similar data is stored elsewhere at the gaming machine for regular gaming machine operations, such as on volatile DRAM. Of course, duplicative storage is inherently inefficient, and can sometimes cause discrepancies in instances where a recording is made at one storage device and main power is lost before an identical or similar recording is made at the other recording device. For example, a specific game state that is recorded to DRAM can occasionally be lost in the split-second that it takes to also record that specific game state to NVRAM. Recording to a safe storage device also typically involves some form of encryption or checksum process for security purposes, which can add to overall inefficiencies in the process.
In addition, multiple state related items may need to be recorded to various devices, such as permanent and transient meters within the gaming machine. For example, many electronic gaming machines are equipped with one set of meters and storage devices that are MGC or main processor board based, and another separate set of meters and storage devices that are main cabinet or physical terminal based. This distinction becomes significant where the MGC, main processor board or “brain box” contents are removed from a gaming machine and replaced with another. The former set of meters and storage devices would migrate with the outgoing components, while the latter set of meters and storage devices would remain with the “back plane” of the gutted or modified gaming machine. As noted above, using multiple devices to record the same or similar items can be inefficient, and the level of such inefficiency increasing where the number of devices and types of processes used increases.
While existing systems and methods of providing “safe storage” devices to record specific states in electronic gaming machines and systems have been adequate, improvements are usually welcomed and encouraged. In view of the foregoing, it would be desirable for such safe storage devices and techniques to involve greater storage capacities, and be more reliable and efficient, at least with respect to the number of devices used, the complexity of the various safe storage procedures used, and the reliability of gaming machine state data being stored to and recovered from both safe storage and regular use devices.