IP Library Granted Patent US 7,610,462
Granted Patent B2
US 7,610,462 · App. 11/575,358 · Granted Oct 27, 2009

Gaming machine with secure fault-tolerant memory

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,610,462
App. No.
11/575,358
Granted
Oct 27, 2009
Kind
B2
Abstract

A gaming machine includes two persistent random access memory sections. Critical data written to one memory section is copied to the other. Systems and methods for managing the two memory sections may include a transaction engine executable on a gaming machine processor. Alternatively, the transaction engine may execute or on a memory controller implemented as an Application Specific Integrated Circuit, a separate processor, or programmable logic. A transaction state may be used to determine which of the copies in the two memory sections is valid.

Claims (57)

1. A gaming machine comprising:

a processor;

a system memory communicably coupled to the processor;

a persistent memory controller;

a persistent memory coupled to the persistent memory controller, the persistent memory comprising a first nonvolatile memory and a second nonvolatile memory; and

a transaction engine operable to:

manage a plurality of blocks in the first nonvolatile memory and the second nonvolatile memory, each of the blocks having a transaction state indicator, the transaction state indicator having a value, wherein the value indicates that the block in the first nonvolatile memory is valid, the block in the second nonvolatile memory is valid, or that the block in both the first nonvolatile memory and the second nonvolatile memory is valid,

write data for a transaction to the persistent memory, the data occupying one or more of the plurality of blocks in one of the first nonvolatile memory and the second nonvolatile memory,

copy the data between the first nonvolatile memory and the second nonvolatile memory, and

update the value of the transaction state indicator for the one or more of the plurality of blocks.

2. The gaming machine of claim 1 , wherein the first nonvolatile memory and the second nonvolatile memory comprise nonvolatile RAM (random access memory).

3. The gaming machine of claim 2 , wherein the nonvolatile RAM comprises a battery backup RAM.

4. The gaming machine of claim 2 , wherein the nonvolatile RAM comprises MRAM (magnetoresistive RAM).

5. The gaming machine of claim 2 , wherein the nonvolatile RAM comprise FRAM (ferromagnetic RAM).

6. The gaming machine of claim 1 , wherein the transaction engine is executed by the processor.

7. The gaming machine of claim 1 , wherein the transaction engine is executed by the memory controller.

8. The gaming machine of claim 1 , wherein the memory controller comprises an ASIC (Application Specific Integrated Circuit).

9. The gaming machine of claim 1 , wherein the memory controller includes at least one processor.

10. The gaming machine of claim 1 , wherein the memory controller comprises programmable logic.

11. The gaming machine of claim 1 , wherein the first nonvolatile memory is mapped to be accessible to the processor and the second nonvolatile memory is not mapped to be accessible to the processor.

12. The gaming machine of claim 1 , further comprising a plurality of transaction spaces allocated within the first nonvolatile memory.

13. A method for maintaining fault-tolerant memory in a gaming machine, the method comprising:

initializing a plurality of blocks in a first nonvolatile memory and a second nonvolatile memory, each of the blocks having a transaction state indicator, the transaction state indicator having a value, wherein the value indicates that the block in the first nonvolatile memory is valid, the block in the second nonvolatile memory is valid, or that the block in both the first nonvolatile memory and the second nonvolatile memory is valid;

initiating a transaction, said transaction including critical data;

upon committing the transaction, writing the critical data to the first nonvolatile memory, the data occupying one or more of the plurality of blocks in one of the first nonvolatile memory and the second nonvolatile memory;

copying the critical data between the first nonvolatile memory and the second nonvolatile memory; and

updating the value of the transaction state indicator for the one or more of the plurality of blocks.

14. The method of claim 13 , further comprising copying the critical data from a cache to the first nonvolatile memory.

15. The method of claim 13 , further comprising:

setting the transaction state indicator to indicate that the critical data in the second nonvolatile memory is valid prior to writing the critical data to the first nonvolatile memory; and

setting the transaction state indicator to indicate that the critical data in the first nonvolatile memory is valid after writing the critical data to the first nonvolatile memory.

16. The method of claim 15 , further comprising setting the transaction state indicator to indicate that the critical data in the first nonvolatile memory and the second nonvolatile memory are both valid.

17. The method of claim 13 , further comprising:

setting a transaction depth indicator to indicate the beginning of the transaction upon initiating the transaction; and

setting the transaction depth indicator to indicate the completion of the transaction upon committing the transaction.

18. The method of claim 13 , further comprising:

mapping a plurality of transaction spaces to the first nonvolatile memory, each of the transaction spaces having a transaction depth indicator;

setting the transaction depth indicator for a transaction space to indicate the beginning of the transaction using the transaction space upon initiating the transaction; and

setting the transaction depth indicator for the transaction space to indicate the completion of the transaction for the transaction space upon committing the transaction.

19. A computer-readable medium having stored thereon computer executable instructions for causing one or more processors to perform a method for maintaining fault-tolerant memory in a gaming machine, the method comprising:

initializing a plurality of blocks in a first nonvolatile memory and a second nonvolatile memory, each of the blocks having a transaction state indicator, the transaction state indicator having a value, wherein the value indicates that the block in the first nonvolatile memory is valid, the block in the second nonvolatile memory is valid, or that the block in both the first nonvolatile memory and the second nonvolatile memory is valid;

initiating a transaction, said transaction including critical data;

upon committing the transaction, writing the critical data to a first nonvolatile memory, the data occupying one or more of the plurality of blocks in one of the first nonvolatile memory and the second nonvolatile memory;

copying the critical data between the first nonvolatile memory and the second nonvolatile memory; and

updating the value of the transaction state indicator for the one or more of the plurality of blocks.

20. The computer-readable medium of claim 19 , wherein the method further comprises copying the critical data from a cache to the first nonvolatile memory.

21. The computer-readable medium of claim 19 , wherein the method further comprises:

setting the transaction state indicator to indicate that the critical data in the second nonvolatile memory is valid prior to writing the critical data to the first nonvolatile memory; and

setting the transaction state indicator to indicate that the critical data in the first nonvolatile memory is valid after writing the critical data to the first nonvolatile memory.

22. The computer-readable medium of claim 21 , wherein the method further comprises setting the transaction state indicator to indicate that the critical data in the first nonvolatile memory and the second nonvolatile memory are both valid.

23. The computer-readable medium of claim 19 , wherein the method further comprises:

setting a transaction depth indicator to indicate the beginning of the transaction upon initiating the transaction; and

setting the transaction depth indicator to indicate the completion of the transaction upon committing the transaction.

24. The computer-readable medium of claim 19 , wherein the method further comprises:

mapping a plurality of transaction spaces to the first nonvolatile memory, each of the transaction spaces having a transaction depth indicator;

setting the transaction depth indicator for a transaction space to indicate the beginning of the transaction using the transaction space upon initiating the transaction; and

setting the transaction depth indicator for the transaction space to indicate the completion of the transaction for the transaction space upon committing the transaction.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Apr 21, 2022
From: BANK OF AMERICA, N.A.
To: SCIENTIFIC GAMES INTERNATIONAL, INC.; WMS GAMING INC.; BALLY GAMING, INC.; DON BEST SPORTS CORPORATION
Reel/Frame 059756/0397 →
CHANGE OF NAME Recorded Jan 20, 2020
From: BALLY GAMING, INC.
To: SG GAMING, INC.
Reel/Frame 051643/0253 →
RELEASE OF SECURITY INTEREST IN PATENTS (RELEASES REEL/FRAME 034530/0318) Recorded Nov 5, 2018
From: DEUTSCHE BANK TRUST COMPANY AMERICAS
To: SCIENTIFIC GAMES INTERNATIONAL, INC.; BALLY GAMING, INC.; WMS GAMING INC.
Reel/Frame 047924/0701 →
MERGER Recorded Jul 29, 2015
From: WMS GAMING INC.
To: BALLY GAMING, INC.
Reel/Frame 036225/0201 →
SECURITY AGREEMENT Recorded Dec 4, 2014
From: BALLY GAMING, INC; SCIENTIFIC GAMES INTERNATIONAL, INC; WMS GAMING INC.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT
Reel/Frame 034530/0318 →
SECURITY AGREEMENT Recorded Dec 18, 2013
From: SCIENTIFIC GAMES INTERNATIONAL, INC.; WMS GAMING INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031847/0110 →