In the gaming industry, many advances have been made in gaming machines and their electronics. The evolution has been from a mechanical device, e.g., slot machines, to totally electronic machines having computer technology contained within the gaming machine. The use of fully electronic gaming machines results in better control over their operation, the ability to offer a wide variety of games in the same machine and the ability to gather and store data, commonly referred to as critical data, regarding the operation the gaming machine. Laws in many jurisdictions require the gathering and retention of certain critical data for various periods of time up to and including several years. These data may include financial accounting information, machine and game state information, game play history, player tracking information, all configuration settings, and any other data requiring secure, long term storage.
The collection and storage of critical data can be problematic. There are two basic types of memory, volatile and non-volatile memory. The data in volatile memory disappears when the memory device is no longer powered. Non-volatile memory will retain data in storage if normal power is lost. Some non-volatile memory use a battery backup to make the memory non-volatile while other forms of memory do not require battery backup or power to retain data in memory, e.g., certain types of flash drives and so called hard drives.
In memory devices, there are various forms of RAM memory which are very effective for storing and handling information quickly. However, even though the price is being reduced, RAM memory can be relatively expensive but it is highly effective in the fast processing of memory transactions. Mass storage media is also well known, e.g., what are commonly referred to as hard drives using magnetic disk media for storage of data in a permanent manner. Although storage capacity for hard drive devices far exceeds RAM devices, memory transactions to and from hard drives require considerably more time than RAM.
The gaming machine may also include a processor such as a CPU (central processing unit) where data may be manipulated for various purposes, e.g., verification, rewriting, calculation and to provide directions for storage. Graphics and sound drivers may be included in the processor or may be separate therefrom as cards. The cards or drivers are adapted to provide signals to a display such as an LCD screen for viewing or speakers for listening by a player.
Controller devices are also provided on a gaming machine for controlling the operation thereof by a player. Also, payment means are provided, e.g., coin or paper money slots, credit card readers and the like as are known in the art.
While such gaming machines are generally well known, they do have deficiencies. One deficiency is the ability to store and verify data while allowing the gaming machine to run at high speeds with no noticeable pauses by the player. U.S. Pat. Nos. 7,111,141 and 6,804,763 address this issue by providing non-volatile RAM for data storage device which allows both for the long term storage of critical data and other data which permit operation of the gaming machine. However, long term storage of large quantities of data is difficult in such RAM storage and even though they are constructed to be non-volatile e.g., by having battery back-up, they could still fail and lose data or run out of storage space.
Thus, there is a need for an improved critical data storage and processing architecture for gaming machines.
The present invention involves the provision of a gaming machine and method of operation to effect high speed and permanent storage of gathered critical data. Critical data are first stored in a memory queue constructed from non-volatile, high speed memory device, e.g., non-volatile RAM and may be stored in a plurality of separate formats. Critical data are then transferred to secondary non-volatile permanent memory, e.g., a hard drive, capable of mass storage of data. The high speed memory device may be constructed to be redundant in separate memory devices as can be the mass data storage device.
Like numbers throughout the various figures designate, like or similar parts or operation.
As seen in
Portions of the electronics 3 are shown in
Software, including an operating system e.g., Windows, available from Microsoft, and game application software are utilized to control the various operations of the various devices including the processor 11, and the memory devices 14, 15.
The high speed memory devices 16 serve as a queue similar to a memory cache. Data can be quickly written to and read from the high speed memory via the gaming machine's circuitry. Each time a significant event such as a game commencement or a game completion occurs, the state of the gaming machine is stored (written) in critical data secure memory system 15 and often immediately retrieved (read) for a verification on accuracy. The processor 11 provides data to the memory 15 and retrieves data from the memory 15. The processor 11 may also process the information in the memory 14 for such things as accounting purposes, game scores, game outcomes, game starts, and other critical data before writing to the memory 15. The power sources 31 e.g., batteries, provide data retention power to the memory devices 16 in the event the main power is terminated thereby maintaining the information in the memory 16 secure.
As programmed, the processor 11 will from time to time extract data from the memory 14 and transfer it to the secure memory 15. However, during the process of verification, the information in the memory 14 is retained and not deleted or written over until verification is confirmed. In a preferred embodiment, each type of memory in the secure memory system 15 is structured with at least two physical banks or device components. Preferably, memory devices 16A, 16B are similarly constructed and contain copies of the same critical data to provide security for the data until verification is performed and confirmed. Furthermore, each of the memory devices 16A, 16B is similarly configured preferably in three logical sections or segments (1), (2), (3) and tested for equivalence. In memory segments 16A(1) and 16B(1), a precise copy of the critical data are held in the queue. In memory segments 16A(2) and 16B(2), an inverted copy of the critical data are maintained. Segments 16A(3) and 16B(3) contain the results of mathematical operations on the critical data such as check sums or cyclical redundancy checks (CRC's) of the data.
The queue can be addressed and accessed by the processor 11 by any conventional means, including the processor's local data and address bus, or through a standard expansion bus such as an ISA (Industry Standard Architecture) or PCI (Peripheral Component Interconnect). Because of the high speed operating nature of the memory 16, only a very short period of time, too short to be noticed by a game player, the gaming machine software can write the critical data to the queue, read it back for a check on accuracy and then continue normal operation with certainty that the critical data will not be lost.
The critical data memory system 15 described above can also be made to appear as a virtual disk by an appropriate device driver. The virtual disk may be partitioned and formatted with a file system. The resulting virtual disk is used for storage of the critical data as described above.
To the operating system and any software application running on the gaming machine 1, the virtual disk functions as an ordinary disk combining the high speed queue with a large capacity mass media memory device. The device driver software ensures that every sector that is written to the virtual disk is stored in a fault tolerant manner. The device driver also manages the task of transferring data between the queue and the permanent memory device. Additionally, when data are read from the virtual disk the device driver utilizes the redundant copies in the memory 16 queue or on the memory device 17 to detect and correct any errors or data loss that may develop.
Referring now to
In a preferred embodiment, the permanent memory 17 is a redundant memory preferably having at least two permanent memory devices 17A, 17B such as two hard disk drives. In a preferred embodiment, the two hard disk drives are a master and a slave.
Having two permanent memory devices 17 provides redundancy. The permanent memory devices may both be contained within the gaming machine 1 or one may be contained in the gaming machine 1 and one being remote or both may be remote from the gaming machine.
In the case of the permanent memory devices 17 being hard disk drives, the disk drives may be partitioned into two or more logical sections. At least one of the those sections on each of the disk drives may be dedicated to the storage of critical data. The critical data may be stored in one or more disk directories and in one or more files or subfiles in each directory in each of the hard disk memory devices. In a preferred embodiment, each of the hard disks 17A, 17B contain a plurality and preferably three identical copies of the critical data file making a total of six copies, three on each memory device 17A, 17B. In a preferred embodiment, the use of three copies on each device 17 allows for a voting scheme to be used for validating the stored critical data. When the data from at least two copies are found to match, the stored critical data are considered accurate and if necessary can be used to correct a corrupted file in either or both of the memories 17A, 17B or the memories 16A, 16B.
By the use of a plurality of permanent memory devices 17, one can be replaced in the gaming machine (or in a remote location) with no loss of historical critical data information. Additionally, one or more of the memory devices 17 may be used to contain the gaming machine 1 controller software. As such, the software can be replaced or upgraded to a newer version or replaced with the same version with no loss of historical critical data information.
The memories 16A, 16B and the memories 17A, 17B contain duplicate copies of the critical data and non critical data where appropriate, and contain multiple copies in each memory device.
The following is a description of the critical data write algorithm illustrated in
Read-backs of each section are performed to ensure accuracy. The verifier data are read back 56A, 56B and data from each of the sections are checked 55. In a similar fashion read-backs are performed on the inverted copy 58A, 58B in sequence and the non-inverted copy 59A, 59B. Any errors found in the read back data are logged as write errors in the appropriate memory section and corrected 57A, 57B, 60A, 60B, 61A, 61B.
After it has been determined that the data were properly written to the memory queue 16, a determination 62 is made if the system is able to allow a low priority task transfer of data from the queue to the memory devices 17. If the answer is yes, the device driver writes a copy 63A of the file data to the critical data disk file 1 on the master memory device 17A. The device driver then writes a copy 63B of the file data to the critical data disk file 2 on the master memory device 17A. The device driver then writes a copy 63C of the file data to the critical data disk file 3 on the master memory device 17A. Then in the same sequence, the device driver writes a copy of the file data to the critical data disk files 1, 2 and 3 on the slave memory device 17B as shown in steps 64A, 64B, and 64C.
After the data have been written to the disk files as described above, the device driver reads back file data and if needed corrects the data stored on the master and slave memory devices 17A and 17B. The device driver begins by reading back data 65A from the data disk file 3 on the master memory device 17A. If the data are incorrect an error correction 66A is performed on the critical data in disk file 3 on the master memory device 17A. The process for correcting errors is shown in
If an error is detected during a device driver critical data read operation, the system preserves all the existing, new unverified critical data. The critical data that are eventually voted out may be written over during a repair process. When critical data are read from storage the underlying data are read from one or more active memory devices, e.g., the non-volatile memory devices 16 and/or permanent memory devices 17. If there are two or more active memory devices 16, 17, their data are compared. If the data in the two or more active memory devices 16, 17 match, those sections are allowed to participate in the voting scheme. One outcome of the voting is that the data matches between the various files in the various memory devices and the critical data is accepted and provided to the operating system by the device driver. If any of the sections in the memories 16 do not match the others, a repair algorithm is run. The first stage of the repairs is finding what data should actually be stored. Sections 1 and 2 in the memory 16A are compared and then section 1 and the verifier are compared and finally section 2 and the verifier are compared. Section pairs that match participate in voting. If verifiable data are not found, the system reads the three sections from the alternate memory device 16B and repeats the voting scheme. If no verifiable data are found, the read fails. Eventually the system either determines accurate data or disables the gaming machine 1. After a data error has been detected all of the sections in the memory devices 16A, 16B are checked and repaired and the entire read procedure is repeated. If the critical data are found to be accurate, the critical data are accepted and provided to the operating system by the device driver.
If there is a third successive attempt to read data following a repair operation then the gaming machine operation is halted 80. If it is not the third attempt then the device driver reads data 81 from bank A section 1 and bank B section 1. If the data read from bank A section matches the data read from bank B section 1 then the device driver reads data 82 from bank A section 2 and bank B section 2. If data from section 2 of bank A and bank B match, then the data from bank A sections 1 and 2 are compared 84 to the data from bank B sections 1 and 2. If a match is found, then the device driver reads data 85 from bank A section 3 and bank B section 3. If the section 3 data match 86 then a comparison 87 is made to determine if the data from bank A sections 1 and 2 match the data from bank B section 3. If the answer to this comparison is yes, then the device driver provides data 88 read from sections 1 of bank A and B and has now successfully completed a read operation from the critical data virtual drive. If the answer to any of the comparisons is no, then one section may require a repair operation 89. To determine which section requires repair, the device driver first reads data 90 from bank A section 1 and bank B section 1. A determination is made 91 whether or not the data from bank A section 1 match data from bank B section 1. If a match is found, then the device driver reads data 92 from bank A section 2 and bank B section 2. If these data match 93 then a determination is made 94 if data in bank A sections 1 and 2 also match data from bank B sections 1 and 2. If the answer is yes, then an error correction procedure is performed 95 on section 3 of the memory and the entire read operation is restarted on
The repair operation shown in
Thus, there has been shown and described several embodiments of a novel invention. As is evident from the foregoing description, certain aspects of the present invention are not limited by the particular details of the examples illustrated herein, and it is therefore contemplated that other modifications and applications, or equivalents thereof, will occur to those skilled in the art. The terms “having” and “including” and similar terms as used in the foregoing specification are used in the sense of “optional” or “may include” and not as “required.” Many changes, modifications, variations and other uses and applications of the present invention will, however, become apparent to those skilled in the art after considering the specification and the accompanying drawings. All such changes, modifications, variations and other uses and applications which do not depart from the spirit and scope of the invention are deemed to be covered by the invention which is limited only by the claims which follow.