US20070004501A1 - Multi-core processing in a wagering game machine - Google Patents
Multi-core processing in a wagering game machine Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
- G07F17/3202—Hardware 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.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
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
- 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.
- The invention relates generally to computerized wagering game machines, and more specifically to multi-core processing in a computerized wagering game machine.
- 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.
- 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.
- 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.
-
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. - 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 onvideo 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 ortop 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 tovideo 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 themechanical buttons 104 in other embodiments. In some alternate examples, other devices such asvirtual 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 useridentification module interface 107, and winnings are returned such as via a returned value ticket, a stored value card, or through thecoin tray 108. Sound is also provided throughspeakers 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 afirst processor 201 and asecond 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 thesame package 203. A bus couples the processors tomemory 204, and to nonvolatile storage such as ahard disk drive 205 or nonvolatile memory. The bus also couples the processor to peripheral devices, such as a graphics interface andtouchscreen display 206, an audio channel andspeaker 207, and anetwork connection 208. - In operation, the operating system is loaded from the
nonvolatile storage 205 intomemory 204, and is executed or run on theprocessors processors - 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 thenonvolatile 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 wageringgame system bus 401 is coupled to a video processing system comprising both afirst video processor 402 and asecond video processor 403, which work together to render an image to be displayed ontouchscreen 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, eachvideo processor 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. Asystem bus 501 is coupled to avideo adapter 502 having a firstvideo processing core 503 and a secondvideo 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 thevideo interface 502 to thevideo 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.
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)
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 |
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 |
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 |
US20090275407A1 (en) * | 2008-04-30 | 2009-11-05 | Bally Gaming, Inc. | Virtualization for gaming devices |
US20090275402A1 (en) * | 2008-04-30 | 2009-11-05 | Bally Gaming, Inc. | Information distribution in gaming networks |
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)
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 |
-
2006
- 2006-05-02 US US11/381,201 patent/US20070004501A1/en not_active Abandoned
Patent Citations (12)
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)
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 |
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 |
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 |
US20090275402A1 (en) * | 2008-04-30 | 2009-11-05 | Bally Gaming, Inc. | Information distribution in gaming networks |
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 |
US20090275407A1 (en) * | 2008-04-30 | 2009-11-05 | Bally Gaming, Inc. | Virtualization for gaming devices |
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 | |
US8342935B1 (en) | Integrated display and input system | |
US11662873B2 (en) | Gaming system and gaming system processor module | |
US9005011B2 (en) | Presenting wagering game content | |
US11893852B2 (en) | Electronic gaming machines with out-of-process rendering | |
AU2002341840A1 (en) | Integrated display and input system | |
US20210264730A9 (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 | |
US20090017914A1 (en) | Interperipheral usb in a wagering game machine | |
WO2008042425A2 (en) | Shared physics engine in a wagering game system | |
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) | Game 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 |