US20070004501A1 - Multi-core processing in a wagering game machine - Google Patents

Multi-core processing in a wagering game machine Download PDF

Info

Publication number
US20070004501A1
US20070004501A1 US11/381,201 US38120106A US2007004501A1 US 20070004501 A1 US20070004501 A1 US 20070004501A1 US 38120106 A US38120106 A US 38120106A US 2007004501 A1 US2007004501 A1 US 2007004501A1
Authority
US
United States
Prior art keywords
processor
wagering game
operable
processors
executing
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US11/381,201
Inventor
Christopher Brewer
Stephen Canterbury
Victor Mercado
Craig Sylla
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LNW Gaming Inc
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to US11/381,201 priority Critical patent/US20070004501A1/en
Publication of US20070004501A1 publication Critical patent/US20070004501A1/en
Assigned to SG GAMING, INC. reassignment SG GAMING, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: BALLY GAMING, INC.
Abandoned legal-status Critical Current

Links

Images

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/3202Hardware aspects of a gaming system, e.g. components, construction, architecture thereof

Definitions

  • the invention relates generally to computerized wagering game machines, and more specifically to multi-core processing in a computerized wagering game machine.
  • 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.
  • the elements of computerized wagering game systems are in many ways the same as the elements in the mechanical and table game counterparts in that they must be fair, they must provide sufficient feedback to the game player to make the game fun to play, and they must meet a variety of gaming regulations to ensure that both the machine owner and gamer are honest and fairly treated in implementing the game. Further, they must provide a gaming experience that is at least as attractive as the older mechanical gaming machine experience to the gamer, to ensure success in a competitive gaming market.
  • Computerized wagering games do not rely on the dealer or other game players to facilitate game play and to provide an entertaining game playing environment, but rely upon the presentation of the game and environment generated by the wagering game machine itself. Incorporation of audio and video features into wagering games to present the wagering game, to provide help, and to enhance the environment presented are therefore important elements in the attractiveness and commercial success of a computerized wagering game system. It is not uncommon for audio voices to provide instruction and help, and to provide commentary on the wagering game being played. Music and environmental effects are also played through speakers in some wagering game systems to enhance or complement a theme of the wagering game. These sounds typically accompany video presentation of the wagering game on a screen, which itself often includes animation, video, and three-dimensional graphics as part of presentation of the wagering game.
  • the wagering game system controls and executes impose a significant demand on the wagering game system's processor, which not only executes the operating system and wagering game software, but also performs other tasks such as verifying the integrity of the nonvolatile storage from which software is loaded.
  • the processor typically executes each of dozens of functions as a separate process, and these dozens of processes compete with one another for a share of the processor's time and capacity. Even single programs can be run as what are known as separate threads, tasks, or processes, in which each process is a distinct series of instructions to be executed in the processor. Because many processes are in process at the same time, the processor must switch between processes and manage the resources allocated to each process to make it appear as though every process is executing at the same time. But, each process is therefore only given a fraction of the processor's time, and its performance is dependent on the operation of other executing processes.
  • One example embodiment of the invention comprises a computerized wagering game system including a gaming module comprising a processor and gaming code which is operable when executed on the processor to conduct or present a wagering game on which monetary value can be wagered.
  • the wagering game system includes a multi-core processor having multiple processor cores, the multiple processor cores each operable to execute any thread executing in the multi-core processor.
  • the multiple processor cores and an operating system facilitate symmetric multiprocessing, parallel processing, or hyperthreading.
  • FIG. 1 shows a computerized wagering game machine, as may be used to practice some example embodiments of the present invention.
  • FIG. 2 is a block diagram of a wagering game system having multiple processors, consistent with some example embodiments of the present invention.
  • FIG. 3 is a flowchart of a method of operating a wagering game system having multiple processors, consistent with some example embodiments of the present invention.
  • FIG. 4 is a block diagram of a video system within a wagering game employing multiple video processors, consistent with some example embodiments of the present invention.
  • FIG. 5 is a block diagram of a video system within a wagering game employing multiple video processing cores, consistent with some example embodiments of the present invention.
  • One example embodiment of the invention seeks to improve execution of processes in a wagering game system by incorporating multiple processor cores into the wagering game system.
  • This example comprises a computerized wagering game system including a gaming module comprising a processor and gaming code which is operable when executed on the processor to conduct or present a wagering game on which monetary value can be wagered.
  • the example wagering game system also includes a multi-core processor having multiple processor cores, the multiple processor cores each operable to execute any thread executing in the multi-core processor.
  • the multiple processor cores and an operating system facilitate symmetric multiprocessing, parallel processing, or hyperthreading.
  • FIG. 1 illustrates a computerized wagering game machine, as may be used to practice some embodiments of the present invention.
  • the computerized gaming system shown generally at 100 is a video wagering game system, which displays information for at least one wagering game upon which monetary value can be wagered on video display 101 .
  • Video display 101 is in various embodiments a CRT display, a plasma display, an LCD display, a surface conducting electron emitter display, or any other type of display suitable for displaying electronically provided display information.
  • additional displays such as a bonus game display or top box display 102 are further operable to display electronically provided information to a wagering game player.
  • Alternate embodiments of the invention will have other game indicators, such as mechanical reels instead of the video graphics reels shown at 103 that comprise a part of a video slot machine wagering game.
  • a wagering game is implemented using software within the wagering game, such as through instructions stored on a machine-readable medium such as a hard disk drive or nonvolatile memory.
  • some or all of the software stored in the wagering game machine is encrypted or is verified using a hash algorithm or encryption algorithm to ensure its authenticity and to verify that it has not been altered.
  • the wagering game software is loaded from nonvolatile memory in a compact flash card, and a hash value is calculated or a digital signature is derived to confirm that the data stored on the compact flash card has not been altered.
  • the wagering game implemented via the loaded software takes various forms in different wagering game machines, including such well-known wagering games as reel slots, video poker, blackjack, craps, roulette, or hold 'em games.
  • a secondary game or bonus game is displayed on the secondary display 102 , or other information such as progressive slot information or other community game information is displayed.
  • the wagering game is played and controlled with inputs such as various buttons 104 or via a touchscreen overlay to video screen 101 .
  • the touchscreen is used in some embodiments to display virtual buttons, which can have unique functions in some embodiments, or can duplicate the functions provided by the mechanical buttons 104 in other embodiments.
  • other devices such as virtual buttons 105 on the touchscreen display or a pull arm are employed to provide other input interfaces to the game player, such as to initiate reel spin.
  • the player interface components are in this example contained within or mechanically coupled to the wagering game system, but in other embodiments will be located outside the wagering game system cabinet such as by a wired or wireless electronic connection to the wagering game system.
  • Monetary value is typically wagered on the outcome of the games, such as with tokens, coins, bills, or cards that hold monetary value.
  • the wagered value is conveyed to the machine such as through a changer 106 or a secure user identification module interface 107 , and winnings are returned such as via a returned value ticket, a stored value card, or through the coin tray 108 .
  • Sound is also provided through speakers 109 , typically including audio indicators of game play, such as reel spins, credit bang-ups, and environmental or other sound effects or music to provide entertainment consistent with a theme of the computerized wagering game.
  • the wagering game machine is coupled to a network, and is operable to use its network connection to receive wagering game data, track players and monetary value associated with a player, and to perform other such functions.
  • FIG. 2 shows an example of a computerized wagering game system comprising a first processor 201 and a second processor 202 . Both processors are coupled to one another via a bus, and in some embodiments are located on the same physical integrated circuit or in the same package 203 .
  • a bus couples the processors to memory 204 , and to nonvolatile storage such as a hard disk drive 205 or nonvolatile memory.
  • the bus also couples the processor to peripheral devices, such as a graphics interface and touchscreen display 206 , an audio channel and speaker 207 , and a network connection 208 .
  • the operating system is loaded from the nonvolatile storage 205 into memory 204 , and is executed or run on the processors 201 and 202 .
  • the processors each run a kernel, which is the core, fundamental process in an operating system.
  • the kernel's primary function is to manage the execution of other processes, and to manage their access to hardware elements such as processor time and memory space.
  • the operating system facilitates loading other software applications or processes from nonvolatile storage into memory, and execution of the software in the processors 201 and 202 .
  • the operating system is operable to manage which processes are assigned to which processor, or in some cases where a process is designed for parallel processing, coordinates execution of the same process on both processors to more efficiently complete a single process.
  • Parallel processes use synchronization techniques such as semaphores to ensure that the processors process data in order such that data needed in one processor is not changed by another processor while in use, or before it can be read.
  • data is communicated between processes through use of shared memory space in memory 204 , or through messaging between processors.
  • Symmetric multiprocessing is a term commonly used to describe a system in which two or more essentially identical processors are attached to the same memory, and are each operable to execute any process that is executable on another of the processors. It differs from parallel processing in that a single process is not executed on multiple processors, but is assigned to a single processor at a time for execution. Symmetric multiprocessing is supported in part by the operating system, which is able to manage which processes are assigned to which processors using a load balancing process so that no single processor is overworked while others remain idle.
  • some of the processes are assigned to certain processors, to ensure a certain level of processor time availability or to avoid interfering with processes running on another processor. For example, consider a wagering game system such as that of FIG. 2 that is first turned on. In this example, the operating system is loaded, and a data verification process is run on the nonvolatile storage volume 205 . In some further embodiments, data verification is run on multiple volumes to ensure that each volume has not been altered or tampered with since it was originally created and certified by gaming authorities as being fair and authentic for use in a wagering game machine. The verification process uses significant memory, nonvolatile storage, and processor resources, and can take from several minutes to twenty minutes or more.
  • the verification process in one example is executed on a dedicated processor running few if any other processes, so that it is able to use all the resources available to a processor.
  • the verification process for a single volume is spread across multiple processors such as by splitting up the volume such that each processor computes a hash value or verification value for a portion of the nonvolatile storage volume, or by executing the verification process as a parallel process.
  • Still other embodiments include verification of multiple volumes using multiple processors, where one or more processors are used for each volume.
  • the wagering game software is loaded and executed such that the wagering game can be played. But, to ensure that the software is not tampered with or altered, a verification process continues to run even during game play, and typically takes up to 20 percent of a wagering game processor's time. In some embodiments of the invention, the verification process is run on a processor other than that on which the wagering game program is executing, so that the wagering game program's execution isn't limited or hindered by the background verification process.
  • one or more of the processors support hyperthreading, or another form of multithreading, in which multiple processors appear to be present as virtual processors to the operating system for a single physical processor.
  • the physical processor has duplicates of certain architectural components used to track the execution state of a process or thread, but does not have a full second set of execution units able to conduct or execute instructions. If a process from one virtual process or set of architectural components tracking the execution state of the process is unable to execute for some period of time, such as while waiting for data to be loaded from memory or nonvolatile storage, the functional units can be used by the other virtual processor to continue execution of processes assigned to that virtual processor. Management of processes among virtual processes in such a multithreading or hyperthreading system is again managed by the operating system, which can perform load balancing or ensure that certain processes run on certain virtual processors.
  • FIG. 3 illustrates a more detailed example of execution of wagering game and related software on a multiprocessor system.
  • the dual processor wagering game system is powered on, and completes a series of power-on self tests and starts the computerized portion of the system using the BIOS code.
  • An operating system is loaded into memory from nonvolatile storage at 302 , and the kernel is executed on each of the two processors.
  • Other operating system processes such as input/output processes and a load balancing process are also typically run, and are managed by a supervisory operating system process.
  • the system launches a process on the first processor to calculate a hash value of the first volume to verify its integrity at 303 .
  • a second process is executed on the second processor to hash a second volume, or to hash a portion of the first volume while the first processor hashes the remaining portion of the first volume.
  • the hash process executes as a parallel process across both processors.
  • the wagering game system loads the gaming code and executes it on a first processor at 304 .
  • a hash process executes continuously in the background on the second processor, so that the significant load this imposes on the second processor does not limit the performance of the wagering game process, such as by slowing down rendering of complex graphics or reducing the frame rate of animations or video.
  • Assignment of processes to specific processors varies in some embodiments in that assignment can either be handled dynamically such as via a load-balancing process, or can be assigned by pre-designation, such as where certain processes are assigned to certain processors to avoid interfering with one another.
  • a load-balancing process at 305 is operable to determine which processes should be assigned to which processor to ensure that work is divided fairly between processor resources.
  • the balance of work between processors in simplest form considers the amount of processor time consumed by various processes, and assigns processes such that each processor has approximately the same utilization rate. Changes in a process's time demand on a processor can result in reassignment of one or more processes, or can affect the assignment of new processes until the workload is essentially rebalanced. More sophisticated load balancing methods consider other factors, such as the degree to which one process depends on another process for data, or the priority or importance of certain processes.
  • Some processes may be assigned to a processor or may be assigned a higher priority on a given processor due to a higher need for processor resources. For example, a network communication or a background hash calculation can be delayed for a fraction of a second while video or graphics are being rendered, but a similar delay of a fraction of a second in rendering the video or graphics would cause a visible glitch in presentation of the wagering game and cause the game to appear to be operating poorly.
  • Mutiprocessor wagering game machines can thereby use load balancing and prioritization to increase the processor time available in the wagering game system, and to improve the performance of high-priority processes.
  • FIG. 4 shows an example in which the multiple processors are video processors, and work together to render the same video image.
  • a wagering game system bus 401 is coupled to a video processing system comprising both a first video processor 402 and a second video processor 403 , which work together to render an image to be displayed on touchscreen display 404 .
  • the processors are linked together via a technology such as NVIDIA's Scalable Link Interface (SLI), ATI's Crossfire, or another bus system facilitating cooperation between video processors or video cards to produce a single image.
  • SLI Scalable Link Interface
  • ATI's Crossfire or another bus system facilitating cooperation between video processors or video cards to produce a single image.
  • each video processor 402 and 403 is coupled directly to the video display 404 via its own video channel, such as via DVI or HDMI video interfaces.
  • a single video card can be installed in a computer system initially, and a second video card can be added at a later point as an upgrade or installed as a factory option to provide enhanced video capability.
  • Some examples require multiple video-specific slots for video cards in the wagering game system, such as multiple PCI express slots, along with a separate cable or circuit board link between the two video cards.
  • Other examples use messages exchanged across the system bus or another bus to exchange data, or include multiple processors installed on the same video adapter. Further embodiments include use of more processors, such as four processor cores, or multiple video processors each having multiple processor cores, to render video for a single display.
  • FIG. 5 shows another example of using multiple video processor cores to produce a single video image, consistent with an embodiment of the invention.
  • a system bus 501 is coupled to a video adapter 502 having a first video processing core 503 and a second video processing core 504 , each of which are on the same video card.
  • the work done by each processor in rendering a video image is combined on the video card, and a single video signal is sent from the video interface 502 to the video display 505 .
  • the display is in some embodiments a high resolution display, requiring significant processing power to render a relatively high number of pixels per refresh.
  • the complexity of the video image such as a detailed rendering of a three-dimensional image, benefits from the availability of multiple video processors.
  • FIGS. 4 and 5 are combined, such as where two separate video adapters are connected via a link such as SLI, where each video processor has multiple video processor cores. This may enable the use of a greater number of video processors in a single system, further increasing the graphics performance of the wagering game system.
  • the video processors or video processing cores in some embodiments feature other processor features such as hyperthreading and multiple pipelines, as well as multiple instruction issue controllers and other such multiprocessing functions in a single processor or distributed across multiple processors.
  • the processors are special-purpose processors, such as video scalers, which perform certain functions such as scaling a video image at one resolution to be displayed on a display with another resolution.
  • video scalers which perform certain functions such as scaling a video image at one resolution to be displayed on a display with another resolution.
  • the processors may be relatively simple in design and performance, but use of multiple processors permits scaling the ability of a single processor to meet the desired performance goal.

Abstract

A computerized wagering game system includes a gaming module comprising gaming code which is operable when executed on to conduct a wagering game on which monetary value can be wagered, and a multi-core processor having multiple processor cores, the multiple processor cores each operable to execute any thread executing in the multi-core processor. In further embodiments, the multiple processor cores and an operating system facilitate symmetric multiprocessing, parallel processing, or hyperthreading.

Description

    RELATED APPLICATION
  • This application claims priority under 35 U.S.C. 119(e) from U.S. Provisional Application Ser. No. 60/694,831 filed Jun. 29, 2005, which application is incorporated herein by reference.
  • FIELD OF THE INVENTION
  • The invention relates generally to computerized wagering game machines, and more specifically to multi-core processing in a computerized wagering game machine.
  • LIMITED COPYRIGHT WAIVER
  • A portion of the disclosure of this patent document contains material to which the claim of copyright protection is made. The copyright owner has no objection to the facsimile reproduction by any person of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office file or records, but reserves all other rights whatsoever. Copyright 2006, WMS Gaming, Inc.
  • BACKGROUND
  • 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.
  • The elements of computerized wagering game systems are in many ways the same as the elements in the mechanical and table game counterparts in that they must be fair, they must provide sufficient feedback to the game player to make the game fun to play, and they must meet a variety of gaming regulations to ensure that both the machine owner and gamer are honest and fairly treated in implementing the game. Further, they must provide a gaming experience that is at least as attractive as the older mechanical gaming machine experience to the gamer, to ensure success in a competitive gaming market.
  • Computerized wagering games do not rely on the dealer or other game players to facilitate game play and to provide an entertaining game playing environment, but rely upon the presentation of the game and environment generated by the wagering game machine itself. Incorporation of audio and video features into wagering games to present the wagering game, to provide help, and to enhance the environment presented are therefore important elements in the attractiveness and commercial success of a computerized wagering game system. It is not uncommon for audio voices to provide instruction and help, and to provide commentary on the wagering game being played. Music and environmental effects are also played through speakers in some wagering game systems to enhance or complement a theme of the wagering game. These sounds typically accompany video presentation of the wagering game on a screen, which itself often includes animation, video, and three-dimensional graphics as part of presentation of the wagering game.
  • This wide variety of functions the wagering game system controls and executes impose a significant demand on the wagering game system's processor, which not only executes the operating system and wagering game software, but also performs other tasks such as verifying the integrity of the nonvolatile storage from which software is loaded. The processor typically executes each of dozens of functions as a separate process, and these dozens of processes compete with one another for a share of the processor's time and capacity. Even single programs can be run as what are known as separate threads, tasks, or processes, in which each process is a distinct series of instructions to be executed in the processor. Because many processes are in process at the same time, the processor must switch between processes and manage the resources allocated to each process to make it appear as though every process is executing at the same time. But, each process is therefore only given a fraction of the processor's time, and its performance is dependent on the operation of other executing processes.
  • It is therefore desirable to execute the various processes in a wagering game system more efficiently.
  • SUMMARY
  • One example embodiment of the invention comprises a computerized wagering game system including a gaming module comprising a processor and gaming code which is operable when executed on the processor to conduct or present a wagering game on which monetary value can be wagered. The wagering game system includes a multi-core processor having multiple processor cores, the multiple processor cores each operable to execute any thread executing in the multi-core processor. In further embodiments, the multiple processor cores and an operating system facilitate symmetric multiprocessing, parallel processing, or hyperthreading.
  • BRIEF DESCRIPTION OF THE FIGURES
  • FIG. 1 shows a computerized wagering game machine, as may be used to practice some example embodiments of the present invention.
  • FIG. 2 is a block diagram of a wagering game system having multiple processors, consistent with some example embodiments of the present invention.
  • FIG. 3 is a flowchart of a method of operating a wagering game system having multiple processors, consistent with some example embodiments of the present invention.
  • FIG. 4 is a block diagram of a video system within a wagering game employing multiple video processors, consistent with some example embodiments of the present invention.
  • FIG. 5 is a block diagram of a video system within a wagering game employing multiple video processing cores, consistent with some example embodiments of the present invention.
  • DETAILED DESCRIPTION
  • In the following detailed description of example embodiments of the invention, reference is made to specific examples by way of drawings and illustrations. These examples are described in sufficient detail to enable those skilled in the art to practice the invention, and serve to illustrate how the invention may be applied to various purposes or embodiments. Other embodiments of the invention exist and are within the scope of the invention, and logical, mechanical, electrical, and other changes may be made without departing from the subject or scope of the present invention. Features or limitations of various embodiments of the invention described herein, however essential to the example embodiments in which they are incorporated, do not limit the invention as a whole, and any reference to the invention, its elements, operation, and application do not limit the invention as a whole but serve only to define these example embodiments. The following detailed description does not, therefore, limit the scope of the invention, which is defined only by the appended claims.
  • One example embodiment of the invention seeks to improve execution of processes in a wagering game system by incorporating multiple processor cores into the wagering game system. This example comprises a computerized wagering game system including a gaming module comprising a processor and gaming code which is operable when executed on the processor to conduct or present a wagering game on which monetary value can be wagered. The example wagering game system also includes a multi-core processor having multiple processor cores, the multiple processor cores each operable to execute any thread executing in the multi-core processor. In further embodiments, the multiple processor cores and an operating system facilitate symmetric multiprocessing, parallel processing, or hyperthreading.
  • FIG. 1 illustrates a computerized wagering game machine, as may be used to practice some embodiments of the present invention. The computerized gaming system shown generally at 100 is a video wagering game system, which displays information for at least one wagering game upon which monetary value can be wagered on video display 101. Video display 101 is in various embodiments a CRT display, a plasma display, an LCD display, a surface conducting electron emitter display, or any other type of display suitable for displaying electronically provided display information. In some further embodiments, additional displays such as a bonus game display or top box display 102 are further operable to display electronically provided information to a wagering game player. Alternate embodiments of the invention will have other game indicators, such as mechanical reels instead of the video graphics reels shown at 103 that comprise a part of a video slot machine wagering game.
  • A wagering game is implemented using software within the wagering game, such as through instructions stored on a machine-readable medium such as a hard disk drive or nonvolatile memory. In some further example embodiments, some or all of the software stored in the wagering game machine is encrypted or is verified using a hash algorithm or encryption algorithm to ensure its authenticity and to verify that it has not been altered. For example, in one embodiment the wagering game software is loaded from nonvolatile memory in a compact flash card, and a hash value is calculated or a digital signature is derived to confirm that the data stored on the compact flash card has not been altered. The wagering game implemented via the loaded software takes various forms in different wagering game machines, including such well-known wagering games as reel slots, video poker, blackjack, craps, roulette, or hold 'em games. In some further embodiments, a secondary game or bonus game is displayed on the secondary display 102, or other information such as progressive slot information or other community game information is displayed.
  • The wagering game is played and controlled with inputs such as various buttons 104 or via a touchscreen overlay to video screen 101. The touchscreen is used in some embodiments to display virtual buttons, which can have unique functions in some embodiments, or can duplicate the functions provided by the mechanical buttons 104 in other embodiments. In some alternate examples, other devices such as virtual buttons 105 on the touchscreen display or a pull arm are employed to provide other input interfaces to the game player, such as to initiate reel spin. The player interface components are in this example contained within or mechanically coupled to the wagering game system, but in other embodiments will be located outside the wagering game system cabinet such as by a wired or wireless electronic connection to the wagering game system.
  • Monetary value is typically wagered on the outcome of the games, such as with tokens, coins, bills, or cards that hold monetary value. The wagered value is conveyed to the machine such as through a changer 106 or a secure user identification module interface 107, and winnings are returned such as via a returned value ticket, a stored value card, or through the coin tray 108. Sound is also provided through speakers 109, typically including audio indicators of game play, such as reel spins, credit bang-ups, and environmental or other sound effects or music to provide entertainment consistent with a theme of the computerized wagering game. In some further embodiments, the wagering game machine is coupled to a network, and is operable to use its network connection to receive wagering game data, track players and monetary value associated with a player, and to perform other such functions.
  • Operation of these various wagering game machine components, operation of the operating system and supervisory functions, and operation of the wagering game itself are controlled via software executing on one or more processors in the wagering game system. Various embodiments of the invention incorporate more than one processor, where each processor is operable to receive and execute instructions to perform the various functions necessary to operate a computerized wagering game machine.
  • The block diagram of FIG. 2 shows an example of a computerized wagering game system comprising a first processor 201 and a second processor 202. Both processors are coupled to one another via a bus, and in some embodiments are located on the same physical integrated circuit or in the same package 203. A bus couples the processors to memory 204, and to nonvolatile storage such as a hard disk drive 205 or nonvolatile memory. The bus also couples the processor to peripheral devices, such as a graphics interface and touchscreen display 206, an audio channel and speaker 207, and a network connection 208.
  • In operation, the operating system is loaded from the nonvolatile storage 205 into memory 204, and is executed or run on the processors 201 and 202. The processors each run a kernel, which is the core, fundamental process in an operating system. The kernel's primary function is to manage the execution of other processes, and to manage their access to hardware elements such as processor time and memory space. Once the operating system is loaded, the operating system facilitates loading other software applications or processes from nonvolatile storage into memory, and execution of the software in the processors 201 and 202.
  • The operating system is operable to manage which processes are assigned to which processor, or in some cases where a process is designed for parallel processing, coordinates execution of the same process on both processors to more efficiently complete a single process.
  • Parallel processes use synchronization techniques such as semaphores to ensure that the processors process data in order such that data needed in one processor is not changed by another processor while in use, or before it can be read. In addition to managing data dependencies, data is communicated between processes through use of shared memory space in memory 204, or through messaging between processors. These are but examples of some of the methods used to ensure proper execution of parallel processes in a multiprocessor system.
  • Symmetric multiprocessing is a term commonly used to describe a system in which two or more essentially identical processors are attached to the same memory, and are each operable to execute any process that is executable on another of the processors. It differs from parallel processing in that a single process is not executed on multiple processors, but is assigned to a single processor at a time for execution. Symmetric multiprocessing is supported in part by the operating system, which is able to manage which processes are assigned to which processors using a load balancing process so that no single processor is overworked while others remain idle.
  • In some symmetric multiprocessing embodiments of the invention, some of the processes are assigned to certain processors, to ensure a certain level of processor time availability or to avoid interfering with processes running on another processor. For example, consider a wagering game system such as that of FIG. 2 that is first turned on. In this example, the operating system is loaded, and a data verification process is run on the nonvolatile storage volume 205. In some further embodiments, data verification is run on multiple volumes to ensure that each volume has not been altered or tampered with since it was originally created and certified by gaming authorities as being fair and authentic for use in a wagering game machine. The verification process uses significant memory, nonvolatile storage, and processor resources, and can take from several minutes to twenty minutes or more.
  • The verification process in one example is executed on a dedicated processor running few if any other processes, so that it is able to use all the resources available to a processor. In other examples, the verification process for a single volume is spread across multiple processors such as by splitting up the volume such that each processor computes a hash value or verification value for a portion of the nonvolatile storage volume, or by executing the verification process as a parallel process. Still other embodiments include verification of multiple volumes using multiple processors, where one or more processors are used for each volume.
  • Once the volume has been verified as authentic, the wagering game software is loaded and executed such that the wagering game can be played. But, to ensure that the software is not tampered with or altered, a verification process continues to run even during game play, and typically takes up to 20 percent of a wagering game processor's time. In some embodiments of the invention, the verification process is run on a processor other than that on which the wagering game program is executing, so that the wagering game program's execution isn't limited or hindered by the background verification process.
  • In some further embodiments of the invention, one or more of the processors support hyperthreading, or another form of multithreading, in which multiple processors appear to be present as virtual processors to the operating system for a single physical processor. The physical processor has duplicates of certain architectural components used to track the execution state of a process or thread, but does not have a full second set of execution units able to conduct or execute instructions. If a process from one virtual process or set of architectural components tracking the execution state of the process is unable to execute for some period of time, such as while waiting for data to be loaded from memory or nonvolatile storage, the functional units can be used by the other virtual processor to continue execution of processes assigned to that virtual processor. Management of processes among virtual processes in such a multithreading or hyperthreading system is again managed by the operating system, which can perform load balancing or ensure that certain processes run on certain virtual processors.
  • FIG. 3 illustrates a more detailed example of execution of wagering game and related software on a multiprocessor system. At 301, the dual processor wagering game system is powered on, and completes a series of power-on self tests and starts the computerized portion of the system using the BIOS code. An operating system is loaded into memory from nonvolatile storage at 302, and the kernel is executed on each of the two processors. Other operating system processes, such as input/output processes and a load balancing process are also typically run, and are managed by a supervisory operating system process.
  • Once the operating system is loaded and the system has completed the “boot” process, other software such as driver software for peripheral devices is loaded. Next, the system launches a process on the first processor to calculate a hash value of the first volume to verify its integrity at 303. In various further embodiments, a second process is executed on the second processor to hash a second volume, or to hash a portion of the first volume while the first processor hashes the remaining portion of the first volume. In an alternate embodiment, the hash process executes as a parallel process across both processors.
  • Once the initial hash verification process is successfully complete, the wagering game system loads the gaming code and executes it on a first processor at 304. To ensure the integrity of the gaming code, a hash process executes continuously in the background on the second processor, so that the significant load this imposes on the second processor does not limit the performance of the wagering game process, such as by slowing down rendering of complex graphics or reducing the frame rate of animations or video.
  • Assignment of processes to specific processors varies in some embodiments in that assignment can either be handled dynamically such as via a load-balancing process, or can be assigned by pre-designation, such as where certain processes are assigned to certain processors to avoid interfering with one another. In this example, a load-balancing process at 305 is operable to determine which processes should be assigned to which processor to ensure that work is divided fairly between processor resources. The balance of work between processors in simplest form considers the amount of processor time consumed by various processes, and assigns processes such that each processor has approximately the same utilization rate. Changes in a process's time demand on a processor can result in reassignment of one or more processes, or can affect the assignment of new processes until the workload is essentially rebalanced. More sophisticated load balancing methods consider other factors, such as the degree to which one process depends on another process for data, or the priority or importance of certain processes.
  • Some processes may be assigned to a processor or may be assigned a higher priority on a given processor due to a higher need for processor resources. For example, a network communication or a background hash calculation can be delayed for a fraction of a second while video or graphics are being rendered, but a similar delay of a fraction of a second in rendering the video or graphics would cause a visible glitch in presentation of the wagering game and cause the game to appear to be operating poorly. Mutiprocessor wagering game machines can thereby use load balancing and prioritization to increase the processor time available in the wagering game system, and to improve the performance of high-priority processes.
  • FIG. 4 shows an example in which the multiple processors are video processors, and work together to render the same video image. In this example, a wagering game system bus 401 is coupled to a video processing system comprising both a first video processor 402 and a second video processor 403, which work together to render an image to be displayed on touchscreen display 404. In some embodiments, the processors are linked together via a technology such as NVIDIA's Scalable Link Interface (SLI), ATI's Crossfire, or another bus system facilitating cooperation between video processors or video cards to produce a single image. In this example, each video processor 402 and 403 is coupled directly to the video display 404 via its own video channel, such as via DVI or HDMI video interfaces.
  • This ability to use two independent processors to render video approximately doubles the speed at which video can be rendered, enabling significantly more complex renderings for video such as 3D graphics or animations, or for use in very high resolution displays. In some such embodiments, a single video card can be installed in a computer system initially, and a second video card can be added at a later point as an upgrade or installed as a factory option to provide enhanced video capability. Some examples require multiple video-specific slots for video cards in the wagering game system, such as multiple PCI express slots, along with a separate cable or circuit board link between the two video cards. Other examples use messages exchanged across the system bus or another bus to exchange data, or include multiple processors installed on the same video adapter. Further embodiments include use of more processors, such as four processor cores, or multiple video processors each having multiple processor cores, to render video for a single display.
  • FIG. 5 shows another example of using multiple video processor cores to produce a single video image, consistent with an embodiment of the invention. A system bus 501 is coupled to a video adapter 502 having a first video processing core 503 and a second video processing core 504, each of which are on the same video card. The work done by each processor in rendering a video image is combined on the video card, and a single video signal is sent from the video interface 502 to the video display 505. The display is in some embodiments a high resolution display, requiring significant processing power to render a relatively high number of pixels per refresh. In other embodiments, the complexity of the video image, such as a detailed rendering of a three-dimensional image, benefits from the availability of multiple video processors.
  • In some further embodiments, the concepts of FIGS. 4 and 5 are combined, such as where two separate video adapters are connected via a link such as SLI, where each video processor has multiple video processor cores. This may enable the use of a greater number of video processors in a single system, further increasing the graphics performance of the wagering game system. The video processors or video processing cores in some embodiments feature other processor features such as hyperthreading and multiple pipelines, as well as multiple instruction issue controllers and other such multiprocessing functions in a single processor or distributed across multiple processors.
  • In some further examples, the processors are special-purpose processors, such as video scalers, which perform certain functions such as scaling a video image at one resolution to be displayed on a display with another resolution. This is an example where the processors may be relatively simple in design and performance, but use of multiple processors permits scaling the ability of a single processor to meet the desired performance goal.
  • The examples presented here have shown a variety of ways in which multiprocessor wagering game systems can execute processes across multiple processors, thereby improving performance of the wagering game system. The added processor capacity enables more efficient operation of background tasks such as hashing nonvolatile storage or memory during game play, faster execution of tasks that can be divided between processors such as operating system tasks and startup hash verification, and enables dedication of greater processor resources to high priority processes such as rendering the wagering game display. 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 example embodiments of the invention described herein. It is intended that this invention be limited only by the claims, and the full scope of equivalents thereof.

Claims (22)

1. A computerized wagering game system, comprising:
a gaming module comprising gaming code which is operable to present a wagering game on which monetary value can be wagered; and
a multi-core processor having multiple processor cores, the multiple processor cores each operable to execute any thread executing in the multi-core processor.
2. The computerized wagering game system of claim 1, wherein the multiple processor cores are contained in the same integrated circuit package.
3. The computerized wagering game system of claim 1, wherein the multiple processor cores share the same memory, bus, and operating system.
4. The computerized wagering game system of claim 1, wherein the multiple processor cores are configured in a symmetric multiprocessing configuration.
5. The computerized wagering game system of claim 1, wherein two or more of the multiple processor cores are virtual processor hyperthreading cores, each of which is operable to appear to the operating system to be a logical processor.
6. The computerized wagering game system of claim 1, further comprising an operating system operable to support symmetric multiprocessing.
7. The computerized wagering game system or claim 1, wherein the multi-core processor comprises multiple video processor cores operable to render a single video image.
8. A method of operating a computerized wagering game, comprising:
presenting a wagering game on which monetary value can be wagered; and
executing an operating system operable to support symmetric multiprocessing across more than one processor in the wagering game machine.
9. The method of claim 8, further comprising emulating a hyperthreading processor as more than one logical processor in the executing operating system.
10. The method of claim 8, further comprising load-balancing two or more processes executing across the more than one processor via a load balancing process.
11. The method of claim 8, further comprising assigning specific processes to a specific processor from the more than one processor.
12. The method of claim 8, further comprising executing a process across more than one of the more than one processors through parallel processing.
13. The method of claim 8, wherein executing an operating system comprises executing the same operating system kernel on more than one of the more than one processors.
14. The method of claim 8, further comprising operating two or more wagering games within the wagering game system, each wagering game executing on its own processor.
15. The method of claim 8, further comprising assigning an authentication process to a first of the more than one processors and a wagering game program process to a processor other than the first processor.
16. A method of operating a computerized wagering game, comprising:
presenting a wagering game on which monetary value can be wagered; and
rendering a video image using multiple video processing cores.
17. A machine-readable medium with instructions stored thereon, the instructions when executed operable to cause a computerized system to:
present a wagering game upon which monetary value can be wagered; and
execute an operating system operable to support symmetric multiprocessing across two or more processors in the wagering game machine, such that processes can be assigned to more than one processor.
18. The machine-readable medium of claim 17, the instructions when executed further operable to load balance executing processes between available processors.
19. The machine-readable medium of claim 17, wherein assigning processes to more than one processor comprises assigning at least one process to a designated processor.
20. The machine-readable medium of claim 17, wherein executing the operating system comprises executing the same operating system kernel on two or more processors.
21. The machine-readable medium of claim 17, wherein the instructions when executed are further operable to load balance processes between the more than one processor.
22. The machine-readable medium of claim 17, the instructions when executed further operable to implement an authentication process executed on an assigned first of the more than one processors, and further operable to implement a wagering game program process to a processor other than the first processor.
US11/381,201 2005-06-29 2006-05-02 Multi-core processing in a wagering game machine Abandoned US20070004501A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/381,201 US20070004501A1 (en) 2005-06-29 2006-05-02 Multi-core processing in a wagering game machine

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69483105P 2005-06-29 2005-06-29
US11/381,201 US20070004501A1 (en) 2005-06-29 2006-05-02 Multi-core processing in a wagering game machine

Publications (1)

Publication Number Publication Date
US20070004501A1 true US20070004501A1 (en) 2007-01-04

Family

ID=37590325

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/381,201 Abandoned US20070004501A1 (en) 2005-06-29 2006-05-02 Multi-core processing in a wagering game machine

Country Status (1)

Country Link
US (1) US20070004501A1 (en)

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060189391A1 (en) * 2005-01-31 2006-08-24 Bird John M Gaming machine system and method
US20070243927A1 (en) * 2006-04-12 2007-10-18 Bally Gaming International, Inc. Wireless gaming environment
US20080026854A1 (en) * 2006-07-14 2008-01-31 Igt Gaming machine with modular bus
US20080153600A1 (en) * 2006-11-10 2008-06-26 Bally Gaming, Inc. Gaming system configuration change reporting
US20080154916A1 (en) * 2006-11-10 2008-06-26 Bally Gaming, Inc. Package manager service in gaming system
US20080153599A1 (en) * 2006-11-10 2008-06-26 Bally Gaming, Inc. Reporting function in gaming system environment
US20080171588A1 (en) * 2006-11-10 2008-07-17 Bally Gaming, Inc. Download and configuration server-based system and method with structured data
US20080200255A1 (en) * 2006-11-10 2008-08-21 Bally Gaming, Inc. Networked gaming environment employing different classes of gaming machines
US20090131163A1 (en) * 2006-11-10 2009-05-21 Bally Gaming, Inc. Assignment template and assignment bundle in a gaming configuration and download system
US20090131144A1 (en) * 2007-11-12 2009-05-21 Bally Gaming, Inc. Meta-option
US20090210929A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Inter-process networking for many-core operating systems
US20090275402A1 (en) * 2008-04-30 2009-11-05 Bally Gaming, Inc. Information distribution in gaming networks
US20090275407A1 (en) * 2008-04-30 2009-11-05 Bally Gaming, Inc. Virtualization for gaming devices
US20090298583A1 (en) * 2008-05-30 2009-12-03 Bally Gaming, Inc. Web pages for gaming devices
US20100016067A1 (en) * 2008-05-24 2010-01-21 Bally Gaming, Inc. Networked gaming system with enterprise accounting methods and apparatus
US20100093433A1 (en) * 2008-10-09 2010-04-15 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US20100093441A1 (en) * 2008-07-11 2010-04-15 Bally Gaming, Inc. Integration gateway
US20100099491A1 (en) * 2008-10-17 2010-04-22 Igt Post certification metering for diverse game machines
US20100125851A1 (en) * 2008-11-14 2010-05-20 Bally Gaming, Inc. Apparatus, method, and system to provide a multi-core processor for an electronic gaming machine (egm)
US20100184518A1 (en) * 2006-08-14 2010-07-22 Wms Gaming Inc. Applying graphical characteristics to graphical objects in a wagering game machine
US20100222135A1 (en) * 2007-09-26 2010-09-02 Wms Gaming Inc. Wagering game machines with non-volatile memory
US8423790B2 (en) 2008-11-18 2013-04-16 Bally Gaming, Inc. Module validation
US8667457B2 (en) 2006-11-13 2014-03-04 Bally Gaming, Inc. System and method for validating download or configuration assignment for an EGM or EGM collection
US8721431B2 (en) 2008-04-30 2014-05-13 Bally Gaming, Inc. Systems, methods, and devices for providing instances of a secondary game
US8851988B2 (en) 2008-11-14 2014-10-07 Bally Gaming, Inc. Apparatus, method, and system to provide a multiple processor architecture for server-based gaming
US8971144B2 (en) 2012-01-19 2015-03-03 Quixant Plc Hardware write-protection
US9082258B2 (en) 2006-11-13 2015-07-14 Bally Gaming, Inc. Method and system for providing download and configuration job progress tracking and display via host user interface
US9120007B2 (en) 2012-01-18 2015-09-01 Bally Gaming, Inc. Network gaming architecture, gaming systems, and related methods
US20150273329A1 (en) * 2014-04-01 2015-10-01 Sony Computer Entertainment Inc. Game Providing System
US9275512B2 (en) 2006-11-10 2016-03-01 Bally Gaming, Inc. Secure communications in gaming system
US9466172B2 (en) 2006-11-13 2016-10-11 Bally Gaming, Inc. Download and configuration management engine for gaming system
US9792770B2 (en) 2012-01-18 2017-10-17 Bally Gaming, Inc. Play for fun network gaming system and method
US10579571B2 (en) 2014-04-01 2020-03-03 Sony Interactive Entertainment Inc. Processing system and multiprocessing system
US11287939B2 (en) 2008-10-09 2022-03-29 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11385758B2 (en) 2008-10-09 2022-07-12 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4494197A (en) * 1980-12-11 1985-01-15 Seymour Troy Automatic lottery system
US5109512A (en) * 1990-05-31 1992-04-28 International Business Machines Corporation Process for dispatching tasks among multiple information processors
US5772512A (en) * 1996-07-31 1998-06-30 Clutchability, L.L.C. Electronic football game
US6067633A (en) * 1998-03-31 2000-05-23 International Business Machines Corp Design and methodology for manufacturing data processing systems having multiple processors
US6071190A (en) * 1997-05-21 2000-06-06 Casino Data Systems Gaming device security system: apparatus and method
US6149522A (en) * 1995-06-29 2000-11-21 Silicon Gaming - Nevada Method of authenticating game data sets in an electronic casino gaming system
US20010003831A1 (en) * 1998-05-29 2001-06-14 Vernon K. Boland Method and apparatus for allocating network resources and changing the allocation based on dynamic workload changes
US20010005853A1 (en) * 1999-11-09 2001-06-28 Parkes Michael A. B. Method and system for performing a task on a computer
US20020156684A1 (en) * 2000-01-10 2002-10-24 Lucinda Stone Method for using computers to facilitate and control the creating of a plurality of functions
US20030156218A1 (en) * 2001-05-24 2003-08-21 Indra Laksono Method and apparatus of multiplexing a plurality of channels in a multimedia system
US20040148528A1 (en) * 2003-01-24 2004-07-29 Silvester Kelan C. Using multiple thermal points to enable component level power and thermal management
US20040267996A1 (en) * 2003-06-27 2004-12-30 Per Hammarlund Queued locks using monitor-memory wait

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4494197A (en) * 1980-12-11 1985-01-15 Seymour Troy Automatic lottery system
US5109512A (en) * 1990-05-31 1992-04-28 International Business Machines Corporation Process for dispatching tasks among multiple information processors
US6149522A (en) * 1995-06-29 2000-11-21 Silicon Gaming - Nevada Method of authenticating game data sets in an electronic casino gaming system
US5772512A (en) * 1996-07-31 1998-06-30 Clutchability, L.L.C. Electronic football game
US6071190A (en) * 1997-05-21 2000-06-06 Casino Data Systems Gaming device security system: apparatus and method
US6067633A (en) * 1998-03-31 2000-05-23 International Business Machines Corp Design and methodology for manufacturing data processing systems having multiple processors
US20010003831A1 (en) * 1998-05-29 2001-06-14 Vernon K. Boland Method and apparatus for allocating network resources and changing the allocation based on dynamic workload changes
US20010005853A1 (en) * 1999-11-09 2001-06-28 Parkes Michael A. B. Method and system for performing a task on a computer
US20020156684A1 (en) * 2000-01-10 2002-10-24 Lucinda Stone Method for using computers to facilitate and control the creating of a plurality of functions
US20030156218A1 (en) * 2001-05-24 2003-08-21 Indra Laksono Method and apparatus of multiplexing a plurality of channels in a multimedia system
US20040148528A1 (en) * 2003-01-24 2004-07-29 Silvester Kelan C. Using multiple thermal points to enable component level power and thermal management
US20040267996A1 (en) * 2003-06-27 2004-12-30 Per Hammarlund Queued locks using monitor-memory wait

Cited By (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060189391A1 (en) * 2005-01-31 2006-08-24 Bird John M Gaming machine system and method
US9786123B2 (en) 2006-04-12 2017-10-10 Bally Gaming, Inc. Wireless gaming environment
US20070243927A1 (en) * 2006-04-12 2007-10-18 Bally Gaming International, Inc. Wireless gaming environment
US8870647B2 (en) 2006-04-12 2014-10-28 Bally Gaming, Inc. Wireless gaming environment
US20080026854A1 (en) * 2006-07-14 2008-01-31 Igt Gaming machine with modular bus
US8226488B2 (en) * 2006-07-14 2012-07-24 Igt Gaming machine with modular bus
US20100184518A1 (en) * 2006-08-14 2010-07-22 Wms Gaming Inc. Applying graphical characteristics to graphical objects in a wagering game machine
US8251825B2 (en) * 2006-08-14 2012-08-28 Wms Gaming Inc. Applying graphical characteristics to graphical objects in a wagering game machine
US8550911B2 (en) 2006-08-14 2013-10-08 Wms Gaming Inc. Applying graphical characteristics to graphical objects in a wagering game machine
US20080153599A1 (en) * 2006-11-10 2008-06-26 Bally Gaming, Inc. Reporting function in gaming system environment
US20090131163A1 (en) * 2006-11-10 2009-05-21 Bally Gaming, Inc. Assignment template and assignment bundle in a gaming configuration and download system
US9275512B2 (en) 2006-11-10 2016-03-01 Bally Gaming, Inc. Secure communications in gaming system
US9111078B2 (en) 2006-11-10 2015-08-18 Bally Gaming, Inc. Package manager service in gaming system
US8920233B2 (en) 2006-11-10 2014-12-30 Bally Gaming, Inc. Assignment template and assignment bundle in a gaming configuration and download system
US20080200255A1 (en) * 2006-11-10 2008-08-21 Bally Gaming, Inc. Networked gaming environment employing different classes of gaming machines
US8784212B2 (en) 2006-11-10 2014-07-22 Bally Gaming, Inc. Networked gaming environment employing different classes of gaming machines
US8631501B2 (en) 2006-11-10 2014-01-14 Bally Gaming, Inc. Reporting function in gaming system environment
US20080171588A1 (en) * 2006-11-10 2008-07-17 Bally Gaming, Inc. Download and configuration server-based system and method with structured data
US20080154916A1 (en) * 2006-11-10 2008-06-26 Bally Gaming, Inc. Package manager service in gaming system
US20080153600A1 (en) * 2006-11-10 2008-06-26 Bally Gaming, Inc. Gaming system configuration change reporting
US9466172B2 (en) 2006-11-13 2016-10-11 Bally Gaming, Inc. Download and configuration management engine for gaming system
US8667457B2 (en) 2006-11-13 2014-03-04 Bally Gaming, Inc. System and method for validating download or configuration assignment for an EGM or EGM collection
US9082258B2 (en) 2006-11-13 2015-07-14 Bally Gaming, Inc. Method and system for providing download and configuration job progress tracking and display via host user interface
US20100222135A1 (en) * 2007-09-26 2010-09-02 Wms Gaming Inc. Wagering game machines with non-volatile memory
US8360871B2 (en) 2007-09-26 2013-01-29 Wms Gaming Inc. Wagering game machines with non-volatile memory
US20090131144A1 (en) * 2007-11-12 2009-05-21 Bally Gaming, Inc. Meta-option
US8819124B2 (en) 2007-11-12 2014-08-26 Bally Gaming, Inc. System and method for one-way delivery of notifications from server-to-clients using modified multicasts
US20090210929A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Inter-process networking for many-core operating systems
US8800002B2 (en) 2008-02-18 2014-08-05 Microsoft Corporation Inter-process networking for many-core operating systems
US20090275407A1 (en) * 2008-04-30 2009-11-05 Bally Gaming, Inc. Virtualization for gaming devices
US9483911B2 (en) 2008-04-30 2016-11-01 Bally Gaming, Inc. Information distribution in gaming networks
US8721431B2 (en) 2008-04-30 2014-05-13 Bally Gaming, Inc. Systems, methods, and devices for providing instances of a secondary game
US20120225707A1 (en) * 2008-04-30 2012-09-06 Bally Gaming, Inc. Virtualization for gaming machines
US20090275402A1 (en) * 2008-04-30 2009-11-05 Bally Gaming, Inc. Information distribution in gaming networks
US20100016067A1 (en) * 2008-05-24 2010-01-21 Bally Gaming, Inc. Networked gaming system with enterprise accounting methods and apparatus
US8382584B2 (en) 2008-05-24 2013-02-26 Bally Gaming, Inc. Networked gaming system with enterprise accounting methods and apparatus
US20090298583A1 (en) * 2008-05-30 2009-12-03 Bally Gaming, Inc. Web pages for gaming devices
US9443377B2 (en) 2008-05-30 2016-09-13 Bally Gaming, Inc. Web pages for gaming devices
US20100093441A1 (en) * 2008-07-11 2010-04-15 Bally Gaming, Inc. Integration gateway
US8412768B2 (en) 2008-07-11 2013-04-02 Ball Gaming, Inc. Integration gateway
US11662873B2 (en) 2008-10-09 2023-05-30 Aristocrat Technologies Australia Pty. Limited Gaming system and gaming system processor module
US11249612B2 (en) 2008-10-09 2022-02-15 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US10592060B2 (en) 2008-10-09 2020-03-17 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11385758B2 (en) 2008-10-09 2022-07-12 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11281350B2 (en) 2008-10-09 2022-03-22 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US20100093433A1 (en) * 2008-10-09 2010-04-15 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11287939B2 (en) 2008-10-09 2022-03-29 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US10235832B2 (en) * 2008-10-17 2019-03-19 Igt Post certification metering for diverse game machines
US20100099491A1 (en) * 2008-10-17 2010-04-22 Igt Post certification metering for diverse game machines
US8347303B2 (en) * 2008-11-14 2013-01-01 Bally Gaming, Inc. Apparatus, method, and system to provide a multi-core processor for an electronic gaming machine (EGM)
US20100125851A1 (en) * 2008-11-14 2010-05-20 Bally Gaming, Inc. Apparatus, method, and system to provide a multi-core processor for an electronic gaming machine (egm)
US8851988B2 (en) 2008-11-14 2014-10-07 Bally Gaming, Inc. Apparatus, method, and system to provide a multiple processor architecture for server-based gaming
US8423790B2 (en) 2008-11-18 2013-04-16 Bally Gaming, Inc. Module validation
US9792770B2 (en) 2012-01-18 2017-10-17 Bally Gaming, Inc. Play for fun network gaming system and method
US10403091B2 (en) 2012-01-18 2019-09-03 Bally Gaming, Inc. Play for fun network gaming system and method
US9120007B2 (en) 2012-01-18 2015-09-01 Bally Gaming, Inc. Network gaming architecture, gaming systems, and related methods
US9666241B2 (en) 2012-01-19 2017-05-30 Quixant Plc Firmware protection and validation
US10762210B2 (en) 2012-01-19 2020-09-01 Quixant Plc Firmware protection and validation
US8971144B2 (en) 2012-01-19 2015-03-03 Quixant Plc Hardware write-protection
US10579571B2 (en) 2014-04-01 2020-03-03 Sony Interactive Entertainment Inc. Processing system and multiprocessing system
US9566514B2 (en) * 2014-04-01 2017-02-14 Sony Corporation Game providing system
US20150273329A1 (en) * 2014-04-01 2015-10-01 Sony Computer Entertainment Inc. Game Providing System

Similar Documents

Publication Publication Date Title
US20070004501A1 (en) Multi-core processing in a wagering game machine
US11662873B2 (en) Gaming system and gaming system processor module
US10347071B2 (en) Integrated display and input system
US9005011B2 (en) Presenting wagering game content
US11893852B2 (en) Electronic gaming machines with out-of-process rendering
AU2002341840A1 (en) Integrated display and input system
US11195376B2 (en) Gaming method and a gaming system
US20100173699A1 (en) Gaming device with a virtualization manager
US10530822B2 (en) System and method for reducing network dependencies for streaming content
US20100029377A1 (en) Shared physics engine in a wagering game system
US20090017914A1 (en) Interperipheral usb in a wagering game machine
US20080176614A1 (en) Gaming System, Gaming Machine and Gaming Method
CA2460127C (en) Electronic gaming apparatus having authentication data sets
US11049366B2 (en) Game machine with sorted outcomes
AU2011205032B2 (en) Gaming system and gaming system processor module
JP2024027494A (en) gaming machine
WO2019064389A1 (en) Game device and game method
AU778909B2 (en) Improved electronic gaming apparatus
CN115485043A (en) Game device, game control method, and recording medium
AU2018279016A1 (en) A gaming system, a sound controller, and a method of gaming
WO2017199321A1 (en) Game device and game control method

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: SG GAMING, INC., NEVADA

Free format text: CHANGE OF NAME;ASSIGNOR:BALLY GAMING, INC.;REEL/FRAME:051642/0103

Effective date: 20200103